/* This file was automatically created by * Reverse Engineering Compiler 1.5f (C) Giampiero Caprino (Feb 29 2000) * Input file: 'lldsend.o' */ /* Procedure: 0x00000000 - 0x000003E9 * Argument size: 8 * Local size: 0 * Save regs size: 0 */ LLDPacketizeSend(A4, A8) /* unknown */ void A4; /* unknown */ void A8; { /* unknown */ void Vfffffffc; /* unknown */ void Vfffffffd; /* unknown */ void Vfffffffe; /* unknown */ void Vffffffff; esp = esp - 4; (save)ebp; (save)A4; (save)esi; (save)ebx; L00000014(); esi = A8; L0000001f(115, 2, 80, 2); if(*InLLDSend == 255) { ebx = L00000039(); L00000047(); L00000053(); L0000005f(); L0000006b(110, 132, 69, 132, 101, 132, 82, 132, InLLDSend); L0000007a(); L00000086(); L00000092(); L0000009e(110, 132, 97, 132, 114, 132, 116, 132); L000000ad(116, 132); if(ebx == 0) { L000000c0(); L000000cc(); L000000d8(76, 132, 73, 132, 78, 132); eax = 0; } else { *(ebx + 4) = A4; *(ebx + 8) = bp; L000000f4(InLLDSend, ebx); eax = 0; } } else { *InLLDSend = 255; L0000010a(); L0000010f(); dl = *(A4 + 2); Vffffffff = dl; if(Vffffffff <= HeaderBytes2) { L00000127(); Vffffffff = Vffffffff + 48; Vffffffff = Vffffffff + 208; L0000013f(Vffffffff & 255, 2, *A4 & 255, 2); } else { if(Vffffffff <= 19) { if(*A4 == 65) { if(Vffffffff != 17) { if(Vffffffff != 19) { goto L00000166; } } al = 14; } else { L00000166: al = 2; } ebx = al & 255; (save)ebx; (save) *A4 & 255; L00000173(); (save)ebx; (save)49; L0000017b(); (save)ebx; Vffffffff = Vffffffff + 38; eax = Vffffffff & 255; Vffffffff = Vffffffff + 218; } else { (save)2; (save) *A4 & 255; L0000019a(); (save)2; (save)50; L000001a3(); (save)2; Vffffffff = Vffffffff + 28; eax = Vffffffff & 255; Vffffffff = Vffffffff + 228; } (save)eax; L000001bb(); esp = esp + 24; } if(Vffffffff == 6) { if(*A4 == 65) { goto L000001ef; } } al = *InLLDSend & 239; *InLLDSend = al; Vfffffffd = *InLLDSend; Vfffffffc = *InLLDSend; L000001eb(); L000001ef: if(!(esi & HeaderBytes1)) { esi = esi + 1; } ebx = si & 65535; L00000208(ebx, *InLLDSend & 255); Vfffffffe = al; if(Vfffffffe == 2) { (save)132; (save)78; L00000222(); (save)132; (save)65; L0000022e(); (save)132; (save)75; L0000023a(); L0000023f(); esp = esp + 24; if(*InLLDSend == InLLDSend) { goto L000002ec; } *InLLDSend = 255; goto L000002ec; } if(Vfffffffe == 255) { L0000026f(); L0000027b(); L00000287(); L00000293(76, 132, 73, 132, 65, 132, 70, 132); L000002a2(); L000002ae(); L000002ba(69, 132, 82, 132, 85, 132); *InLLDSend = 255; goto L000002ec; esi = esi + InLLDSend; } (save) *InLLDSend & 255; (save)ebx; (save)A4; L000002dc(); L000002e1(); Vfffffffe = al; esp = esp + 12; L000002ec: if(*InLLDSend != InLLDSend) { Vfffffffd = Vfffffffd | 16; Vfffffffc = Vfffffffc | 128; } (save)Vfffffffc & 255; (save)Vfffffffd & 255; L0000030e(); L00000313(); (save)2; *InLLDSend = InLLDSend; (save)69; L00000323(); (save)2; (save)80; L0000032c(); (save)2; (save)115; L00000335(); esp = esp + 32; if(Vfffffffe == InLLDSend) { ebx = L0000034d(InLLDSend); if(ebx != 0) { if(*(ebx + 8) == InLLDSend) { (save)3; (save)82; L0000036a(); (save)3; (save)81; L00000373(); (save)3; (save)83; L0000037c(); (save) *(ebx + 4); LLDSend(); Vfffffffe = al; esp = esp + 28; } else { L00000397(); L000003a0(); L000003a9(); L000003b2(83, 3, 80, 3, 81, 3, 82, 3); InLLDSend( *(ebx + 4), *(ebx + 8) & 65535); Vfffffffe = al; } L000003d7(InLLDSend, ebx); } } eax = Vfffffffe & 255; } (restore)ebx; (restore)esi; (restore)A4; (restore)ebp; (restore)ecx; } /* Procedure: 0x000003EA - 0x000003EF * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L000003EA() { esi = esi + InLLDSend; } /* Procedure: 0x000003F0 - 0x00000409 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ LLDSendProximPkt(A4) /* unknown */ void A4; { LLDSend(A4); if(al == 255) { return(HeaderBytes1); } return(0); } /* Procedure: 0x0000040A - 0x0000040F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L0000040A() { esi = esi + InLLDSend; } /* Procedure: 0x00000410 - 0x00000410 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ testing() { } /* DEST BLOCK NOT FOUND: 00000411 -> 00000420 */ /* Procedure: 0x00000411 - 0x0000041F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L00000411() { goto LLDSend; } /* Procedure: 0x00000420 - 0x000011A1 * Argument size: 4 * Local size: 52 * Save regs size: 16 */ LLDSend(A48) /* unknown */ void A48; { /* unknown */ void ebx; /* unknown */ void ebp; /* unknown */ void esi; /* unknown */ void V12; /* unknown */ void edi; /* unknown */ void V18; /* unknown */ void V1e; /* unknown */ void V22; /* unknown */ void V23; /* unknown */ void V24; /* unknown */ void V2b; /* unknown */ void V2c; /* unknown */ void V2f; /* unknown */ void V30; /* unknown */ void V31; /* unknown */ void V33; /* unknown */ void V34; /* unknown */ void V38; /* unknown */ void V3c; /* unknown */ void V40; L0000042c(83, 116); V1e = *(A48 + 6) - 1; if(V1e > 1513) { *InLLDSend = *InLLDSend + 1; L00000459(); L00000462(); L0000046b(); eax = L00000474(76, 4, 100, 4, 97, 4, 66, 4); eax = L00000480(); eax = L00000489(); ecx = A48; eax = *(ecx + 7) & 255; V18 = eax; eax = L0000049e(); eax = A48; ecx = *(eax + 6) & 255; V18 = ecx; L000004b3(ecx, 4, eax, 4, 110, 4, 101, 4); eax = A48; if(IsTxProximPacket(eax) != 0) { ecx = A48; if(*(ecx - 4) == 1164395879) { (save)ecx; L000004dc(); goto L000004fd; } eax = A48; eax = L000004ea(eax, 3); } else { eax = L000004f9(A48); L000004fd: } eax = 0; } else { L00000508(); V24 = eax; L00000511(); if(*InLLDSend == 255) { L0000052a(); L00000536(); L00000542(); L0000054e(110, 132, 69, 132, 101, 132, 82, 132); L0000055d(); L00000569(); eax = L00000575(); eax = L00000581(110, 132, 97, 132, 114, 132, 116, 132); L00000590(); L0000059a(InLLDSend, 116, 132); ebx = eax; if(ebx == 0) { (save)132; (save)78; eax = L000005b3(); (save)132; (save)73; eax = L000005bf(); (save)132; (save)76; L000005cb(); eax = A48; (save)eax; esp = esp + 28; if(IsTxProximPacket() != 0) { ecx = A48; if(*(ecx - 4) == 1164395879) { (save)ecx; L000005f1(); goto L00000612; } eax = A48; eax = L000005ff(eax, 4); } else { ecx = A48; eax = L0000060e(ecx); L00000612: } *InLLDSend = *InLLDSend + 1; (save)V24; eax = L00000621(); goto L00000ec5; esi = esi + InLLDSend; } ecx = A48; *(ebx + 4) = ecx; *(ebx + 8) = InLLDSend; (save)ebx; (save)InLLDSend; eax = L00000644(); goto L00000858; esi = esi + InLLDSend; } *InLLDSend = 255; if(*InLLDSend != InLLDSend) { ecx = A48; if(IsTxProximPacket(ecx) != 0) { eax = A48; if(*(eax - 4) == 1164395879) { (save)eax; eax = L00000682(); goto L000006ad; } ecx = A48; eax = L00000690(ecx, 5); goto L000006ad; esi = esi + InLLDSend; } eax = L000006a6(A48); L000006ad: *InLLDSend = *InLLDSend + 1; *InLLDSend = InLLDSend; ecx = V24; (save)ecx; eax = L000006c0(); goto L00000ec5; esi = esi + InLLDSend; } eax = L000006d1(); eax = A48; V2f = InLLDSend; if(*(eax + 12) != InLLDSend) { esi = eax + 14; goto L000006fa; esi = esi + InLLDSend; } esi = *( *(A48 + 8) + 4); L000006fa: eax = *esi; V34 = eax; V38 = *(esi + 4); eax = & V33; esi = & V34; eax = L00000714(); L00000722(V33 & 255, HeaderBytes1, esi, eax); edx = V33 & 255; ebx = edx << 6; ebp = ebx + InLLDSend; if(*InLLDSend == InLLDSend) { L0000074e(); L00000757(); L00000760(); L00000769(83, 4, 116, 4, 111, 4, 78, 4); L00000775(); L0000077e(); L00000787(99, 4, 110, 4, 121, 4); if(*InLLDSend != InLLDSend) { *InLLDSend = InLLDSend; eax = L000007a0(); if(al != 0) { eax = L000007ad(); eax = L000007b6(49, 4, 84, 4); *InLLDSend = 255; } *InLLDSend = 255; } *InLLDSend = *InLLDSend + 1; eax = A48; if(IsTxProximPacket(eax) != 0) { ecx = A48; if(*(ecx - 4) == 1164395879) { (save)ecx; eax = L000007f3(); goto L0000081b; esi = esi + InLLDSend; } eax = A48; eax = L00000808(eax, 7); } else { ecx = A48; eax = L00000817(ecx); L0000081b: } *InLLDSend = InLLDSend; eax = V24; (save)eax; eax = L0000082b(); } else { if(*(ebx + 48) == InLLDSend) { if(*(ebx + 49) == InLLDSend) { goto L00000870; } } (save)edx; (save)A48; eax = L0000084d(); *InLLDSend = InLLDSend; L00000858: eax = V24; (save)eax; eax = L0000085e(); eax = 0; esp = esp + 12; goto L0000119a; esi = esi + InLLDSend; L00000870: eax = L00000871(); *(ebx + 49) = 255; dl = *(ebx + 17); if(dl == 0) { if(*InLLDSend == InLLDSend) { goto L00000a1d; } eax = V34; V3c = eax; V40 = V38; V2f = HeaderBytes1; goto L00000a1d; } if(dl == HeaderBytes1) { if(*InLLDSend != InLLDSend) { L000008c3(); if(eax - *(ebx + 24) > 2400) { *(ebx + 17) = InLLDSend; *(ebx + 24) = InLLDSend; goto L00000a1d; esi = esi + InLLDSend; } (save)5; (save)66; L000008f5(); (save)5; (save)80; L000008fe(); (save)5; (save)107; L00000907(); (save)5; (save)116; } else { L00000916(); L0000091f(); L00000928(); L00000931(116, 5, 107, 5, 80, 5, 66, 5); (save)5; (save)80; L0000093d(); (save)5; (save)101; eax = L00000946(); (save)5; (save)101; eax = L0000094f(); (save)5; (save)114; } eax = L00000958(); V2f = HeaderBytes1; esp = esp + 32; if(*(ebx + 16) != InLLDSend) { V2f = 3; } eax = *(ebp + 10); V3c = eax; V40 = *(ebp + 14); } else { if(dl == 2) { L00000991(); if(eax - *(ebx + 24) > 2400) { *(ebx + 17) = InLLDSend; *(ebx + 21) = InLLDSend; *(ebx + 24) = InLLDSend; goto L00000a1d; } L000009c5(); L000009ce(); L000009d7(); L000009e0(115, 5, 105, 5, 68, 5, 66, 5); eax = L000009ec(); eax = L000009f5(); eax = L000009fe(116, 5, 107, 5, 80, 5); V2f = 2; edi = & V3c; ecx = HeaderBytes1; eax = -1; asm("cld"); asm("rep stosd"); *edi = eax; edi = edi + 4; } } L00000a1d: *InLLDSend = InLLDSend; eax = L00000a27(); *InLLDSend = ax; if(*InLLDSend != InLLDSend) { *(ebp + 18) = 3; eax = L00000a3f(); *(ebp + 22) = ax; } if(*(ebp + 18) == 3) { ecx = A48; if(*(ecx + 6) > *InLLDSend) { eax = L00000a5e(); if(eax - *(ebp + 22) <= 200) { ecx = & V3c; V18 = ecx; (save)ecx; (save)esi; eax = V2f & 255; V18 = eax; ecx = eax; (save)ecx; eax = V33 & 255; V18 = eax; ecx = V18; (save)ecx; eax = A48; (save)eax; eax = LLDTxFragments(); bl = al; *InLLDSend = InLLDSend; (save)V24; eax = L00000aac(); eax = bl & 255; esp = esp + 24; goto L0000119a; } *(ebp + 18) = InLLDSend; *(ebp + 22) = InLLDSend; } } if(*(ebp + 19) != InLLDSend) { V18 = *(ebp + 26); *(ebp + 26) = V18 + 1; V18 = V18 + 1; if(V18 > 20) { goto L00000b17; } L00000aec(); L00000af5(); L00000afe(); eax = L00000b07(75, 15, 83, 15, 70, 15, 66, 15); *InLLDSend = InLLDSend; } else { L00000b17: *(ebp + 19) = InLLDSend; *(ebp + 26) = InLLDSend; 0; if(*(ebp + 27) != HeaderBytes1) { *(ebp + 27) = InLLDSend; } if(*(ebp + 17) == 2) { goto L00000b41; } if(!( *(ebp + 4) & HeaderBytes1)) { L00000b41: *(ebp + 27) = *(ebp + 27) - 1; } } (save)2; (save)66; eax = L00000b49(); (save)2; (save)48; eax = L00000b52(); (save)5; V18 = *InLLDSend & 255; (save) *InLLDSend & 255; L00000b68(); L00000b6d(); eax = L00000b72(); cl = *InLLDSend; V23 = cl; al = *InLLDSend; V22 = al; eax = L00000b8b(); esi = InLLDSend; *InLLDSend = 66; edi = InLLDSend; *(esi + 2) = InLLDSend; *(esi + 3) = InLLDSend; V12 = InLLDSend; esp = esp + 24; edx = *InLLDSend & 255; if(*(edx + InLLDSend) != 255) { ebx = edi; do { ax = V12; V12 = V12 + 1; if(ax > 127) { break; } do { al = *InLLDSend + 1 & 127; *InLLDSend = al; } while(al > 124); } while(*((al & 255) + ebx) != 255); } al = V33; *(edx + edi) = al; al = *InLLDSend; *(ebp + 3) = al; *(esi + HeaderBytes1) = al; do { al = *InLLDSend + 1 & 127; *InLLDSend = al; } while(al > 124); *(esi + 8) = InLLDSend; if(V2f != InLLDSend) { *(esi + HeaderBytes2) = 128; al = V2f + 254; if(al <= HeaderBytes1) { *(esi + HeaderBytes2) = 192; } } else { *(esi + HeaderBytes2) = InLLDSend; } if(V2f != 2) { if(V34 & HeaderBytes1) { goto L00000c4c; } } *(esi + HeaderBytes2) = *(esi + HeaderBytes2) | 64; L00000c4c: al = *(ebp + 36); *(esi + 10) = al; *(esi + 11) = InLLDSend; if(V2f == 2) { *(esi + 5) = 112; } else { *(esi + 5) = 240; } if(V2f == 2) { L00000c6e: if(*InLLDSend == HeaderBytes1) { goto L00000ca5; } goto L00000cb0; esi = esi + InLLDSend; } if(V2f == HeaderBytes1) { if(V3c & HeaderBytes1) { goto L00000c6e; } } if(V2f == InLLDSend) { if(V34 & HeaderBytes1) { goto L00000cb6; } if(*InLLDSend == HeaderBytes1) { L00000ca5: *(esi + 4) = 129; goto L00000cc2; esi = esi + InLLDSend; } L00000cb0: *(esi + 4) = 128; } else { L00000cb6: cl = *InLLDSend | 160; *(esi + 4) = cl; } L00000cc2: eax = A48; bx = *(eax + 6); if(bx <= 59) { V2c = 60; V2c = V2c - bx; ebx = 60; } else { V2c = InLLDSend; } if(V2f != InLLDSend) { ebx = ebx + 12; } ebx = ebx + 4; V18 = bx; V18 = V18 >> 8; *(esi + 6) = V18; *(esi + 7) = bl; eax = A48; bx = *(eax + 6); if(bx <= 59) { ebx = 60; } bx = bx + 12; if(V2f != InLLDSend) { ebx = ebx + 12; } if(!(bl & HeaderBytes1)) { ebx = ebx + 1; } *(ebp + 28) = InLLDSend; eax = *InLLDSend & 255; bl = L00000d47(bx & 65535, eax); if(bl == HeaderBytes1) { goto L00000ed0; } *InLLDSend = InLLDSend; *InLLDSend = L00000d61(); *(ebp + 49) = InLLDSend; *(ebp + 3) = 255; eax = *InLLDSend & 255; *(eax + edi) = 255; if(*InLLDSend != InLLDSend) { V23 = V23 | 16; V22 = V22 | 128; } eax = V22 & 255; (save)eax; (save)V23 & 255; L00000da1(); L00000da6(); *InLLDSend = InLLDSend; esp = esp + 8; if(bl == 2) { (save)4; (save)78; L00000dbe(); (save)4; (save)97; L00000dc7(); (save)4; (save)107; eax = L00000dd0(); eax = L00000dd5(); eax = L00000dda(); edx = eax; (save)HeaderBytes1; ecx = dx & 65535; eax = ecx; (save)50; V18 = ecx; (save)eax; ecx = V33 & 255; V18 = ecx; eax = ecx; (save)eax; (save)A48; eax = L00000e03(); esp = esp + 44; eax = V24; eax = L00000e10(eax); eax = HeaderBytes1; goto L0000119a; } L00000e26(); L00000e2f(); L00000e38(); L00000e41(108, 4, 105, 4, 97, 4, 70, 4); (save)4; (save)117; L00000e4d(); (save)4; (save)114; L00000e56(); (save)4; (save)101; eax = L00000e5f(); (save)A48; esp = esp + 28; if(IsTxProximPacket() != 0) { if(*(A48 - 4) == 1164395879) { (save)eax; L00000e85(); goto L00000eab; esi = esi + InLLDSend; } eax = L00000e98(A48, 8); } else { L00000ea7(A48); L00000eab: } *InLLDSend = *InLLDSend + 1; eax = L00000eba(V24); *InLLDSend = 255; } L00000ec5: eax = 0; goto L0000119a; L00000ed0: eax = L00000edd(esi, 12, *InLLDSend & 255); if(V2f != InLLDSend) { eax = *InLLDSend & 255; (save)eax; (save)6; (save) & V3c; eax = L00000efc(); (save) *InLLDSend & 255; (save)6; (save)InLLDSend; eax = L00000f11(); esp = esp + 24; } eax = A48; bx = *(eax + 12); if(!(bl & HeaderBytes1)) { V2b = 255; ebx = ebx - 1; al = *((bx & 65535) + eax + 14); V30 = al; goto L00000f45; esi = esi + InLLDSend; } V2b = InLLDSend; L00000f45: if(bx != 0) { eax = *InLLDSend & 255; eax = bx & 65535; L00000f62(A48 + 14, eax, eax); } edx = *(A48 + 8); edi = 0; if(0 < *edx) { esi = esi + InLLDSend; do { eax = (di & 65535) << 3; esi = *(eax + edx + 4); bx = *(eax + edx + 8); if(bx != 0) { if(V2b != InLLDSend) { V31 = *esi & 255; esi = esi + 1; ebx = ebx - 1; L00000fb8( & V30, 2, *InLLDSend & 255); } if(bl & HeaderBytes1) { V2b = InLLDSend; } else { V2b = 255; ebx = ebx - 1; al = *((bx & 65535) + esi); V30 = al; } if(bx != 0) { L00000ff3(esi, bx & 65535, *InLLDSend & 255); } } edx = *(A48 + 8); di = di + 1; } while(di < *edx); } if(V2b != InLLDSend) { edx = & V30; *(edx + HeaderBytes1) = InLLDSend; L00001028(edx, 2, *InLLDSend & 255); if(V2c == InLLDSend) { goto L00001084; } V2c = V2c - 1; } if(V2c != InLLDSend) { edx = V2c & 65535; ecx = edx >> 2; edi = InLLDSend; eax = 0; asm("cld"); asm("rep stosd"); if(!(dl & 2)) { *edi = eax; edi = edi + 4; } if(!(dl & HeaderBytes1)) { *edi = al; edi = edi + 1; } eax = *InLLDSend & 255; V18 = eax; L0000107d(InLLDSend, edx, V18); } L00001084: L00001085(); if(al == 0) { *InLLDSend = *InLLDSend + 1; } *(ebp + 56) = A48; *InLLDSend = L0000109b(); *InLLDSend = 255; V23 = V23 | 16; V22 = V22 | 128; eax = V22 & 255; V18 = eax; (save)V18; ecx = V23 & 255; V18 = ecx; (save)V18; L000010d2(); L000010d7(); *InLLDSend = InLLDSend; 0; (save)V24; L000010f4(); (save)116; (save)69; L000010fd(); (save)116; (save)83; L00001106(); (save)InLLDSend; ebx = L00001110(); esp = esp + 32; if(ebx != 0) { if(*(ebx + 8) == InLLDSend) { (save)6; (save)82; L00001129(); (save)6; (save)81; L00001132(); (save)6; (save)83; L0000113b(); (save) *(ebx + 4); LLDSend(); esp = esp + 28; goto L0000118a; esi = esi + InLLDSend; } L00001155(); L0000115e(); L00001167(); L00001170(83, 6, 80, 6, 81, 6, 82, 6); InLLDSend( *(ebx + 4), *(ebx + 8) & 65535); L0000118a: L00001191(InLLDSend, ebx); } eax = 0; } L0000119a: } /* Procedure: 0x000011A2 - 0x000011AF * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L000011A2() { esi = esi + InLLDSend; edi = edi + InLLDSend; } /* Procedure: 0x000011B0 - 0x0000186E * Argument size: 60 * Local size: 40 * Save regs size: 16 */ LLDTxFragments(A3c, A40, A44, A48, A4c, A64, A66, A74) /* unknown */ void A3c; /* unknown */ void A40; /* unknown */ void A44; /* unknown */ void A48; /* unknown */ void A4c; /* unknown */ void A64; /* unknown */ void A66; /* unknown */ void A74; { /* unknown */ void ebx; /* unknown */ void V10; /* unknown */ void ebp; /* unknown */ void esi; /* unknown */ void edi; /* unknown */ void V16; /* unknown */ void V18; /* unknown */ void V1d; /* unknown */ void V1e; /* unknown */ void V20; /* unknown */ void V27; /* unknown */ void V28; /* unknown */ void V29; /* unknown */ void V2a; /* unknown */ void V2c; /* unknown */ void V2e; /* unknown */ void V30; /* unknown */ void V36; /* unknown */ void V37; cl = A40; V37 = cl; V36 = A44; L000011cc(); eax = L000011d5(49, 2, 66, 2); V20 = V37 & 255; ebx = V20 << 6; edi = ebx + InLLDSend; V30 = edi; if(*InLLDSend != 255) { edi = A3c; eax = L0000121a(edi, V20, L00001201() & 65535, 100, HeaderBytes1); *(ebx + 49) = InLLDSend; eax = 255; } else { cl = *InLLDSend; V28 = cl; V27 = *InLLDSend; L00001247(); edi = A3c; if(*(edi + 12) > 1538) { *InLLDSend = *InLLDSend + 1; L00001266(); L0000126f(); L00001278(); L00001281(67, 4, 100, 4, 97, 4, 66, 4); L0000128d(); L00001296(); L0000129f(); L000012a8(101, 4, 76, 4, 121, 4, 112, 4); eax = L000012b4(); eax = L000012c1(); L000012ce(); IsTxProximPacket(edi, *(edi + 12) & 255, 4, *(edi + 13) & 255, 4, 110, 4); if(al != 0) { if(*(edi - 4) == 1164395879) { (save)edi; L000012ea(); goto L0000130e; } L000012f8(A3c, 3); } else { edi = A3c; eax = L0000130a(edi); L0000130e: } } else { ecx = A3c; esi = ecx + 14; edi = InLLDSend; eax = *(ecx + 12) & 65535; edx = eax >> 2; ecx = edx; asm("cld"); asm("rep movsd"); if(!(al & 2)) { *edi = *esi; edi = edi + 4; esi = esi + 4; } if(!(al & HeaderBytes1)) { *edi = *esi; edi = edi + 1; esi = esi + 1; } ecx = A3c; edi = A3c; V2c = *(ecx + 12); V2e = InLLDSend; edx = *(edi + 8); goto L00001485; goto L00001360; L00001379: *InLLDSend = *InLLDSend + 1; L00001382(); L0000138b(); L00001394(); L0000139d(67, 4, 100, 4, 97, 4, 66, 4); L000013a9(); L000013b2(); L000013bb(); L000013c4(101, 4, 76, 4, 121, 4, 112, 4); (save)4; (save)110; eax = L000013d0(); (save)4; (save) *(ebx + 5) & 255; eax = L000013dd(); (save)4; (save) *(ebx + 4) & 255; L000013ea(); edi = A74; (save)edi; IsTxProximPacket(); esp = esp + 28; if(al != 0) { ecx = A74; if(*(ecx - 4) == 1164395879) { (save)ecx; L0000140e(); } else { edi = A74; L0000141c(edi, 3); } } else { eax = L0000142e(A74); goto L000017fc; esi = esi + InLLDSend; goto L00001440; L00001485: while(1) { cx = V2e; if(cx >= *edx) { break; } L00001360: ebx = edx + (A66 & 65535) * 8 + 4; if(*(ebx + 4) > 1538) { goto L00001379; } L00001440: edx = *(ebx + 4) & 65535; eax = A64 & 65535; ebp = eax + InLLDSend; esi = *ebx; eax = edx >> 2; ecx = eax; edi = ebp; asm("cld"); asm("rep movsd"); if(!(dl & 2)) { *edi = *esi; edi = edi + 4; esi = esi + 4; } if(!(dl & HeaderBytes1)) { *edi = *esi; edi = edi + 1; esi = esi + 1; } A64 = A64 + *(ebx + 4); ecx = A74; A66 = A66 + 1; edx = *(ecx + 8); } edi = A3c; ecx = *(edi + 6) + -12; V2a = cx; eax = V2a; *InLLDSend = *InLLDSend / *InLLDSend; if(( *InLLDSend % *InLLDSend & 65535) != 0) { al = al + 1; } *(V30 + 28) = al; V29 = *(edi + 36); V2c = 12; V2e = HeaderBytes1; ecx = al & 255; V1e = cx; V16 = V1e; if(V2e > V16) { goto L00001824; } esi = InLLDSend; al = al - 1; V1d = al; V18 = V36 & 255; do { *(esi + HeaderBytes1) = *InLLDSend; *InLLDSend = 66; *(esi + 2) = InLLDSend; *(esi + 3) = InLLDSend; if(V36 != 2) { *(esi + 5) = 240; } else { *(esi + 5) = 112; } if(V36 != 2) { L00001540: if(V36 != HeaderBytes1) { goto L00001550; } if(!( *A4c & HeaderBytes1)) { L00001550: if(V36 == InLLDSend) { if(!( *A48 & HeaderBytes1)) { goto L00001560; } } al = *InLLDSend; if(al != 3) { *(esi + 4) = al | 32; goto L0000158b; } *(esi + 4) = 34; goto L0000158b; L00001560: if(*InLLDSend != HeaderBytes1) { goto L00001570; } else { goto L00001569; } } } if(*InLLDSend == HeaderBytes1) { L00001569: *(esi + 4) = HeaderBytes1; } else { L00001570: *(esi + 4) = InLLDSend; } L0000158b: if(V2e == V1e) { *(esi + 4) = *(esi + 4) | 128; } *(esi + 10) = V29; *(esi + 11) = V1d << 4 | V2e - 1; if(V2e == V16) { *(( *InLLDSend & 255) + InLLDSend) = V37; *(V30 + 3) = *InLLDSend; } do { al = *InLLDSend + 1 & 127; *InLLDSend = al; } while(*InLLDSend > 124); eax = L00001603(V2e + 47 & 255, 12); ax = *InLLDSend; if(V2a >= ax) { L00001620: edx = eax; } else { dx = V2a; } V2a = V2a - dx; *(esi + HeaderBytes2) = InLLDSend; if(!(dl & HeaderBytes1)) { edx = edx + 1; *(esi + HeaderBytes2) = HeaderBytes1; } if(V36 != InLLDSend) { *(esi + HeaderBytes2) = *(esi + HeaderBytes2) | 128; edx = edx + 12; } edx = edx + 16; *(esi + 6) = edx >> 8; *(esi + 7) = dl; edx = edx + 8; bl = LLDSendFragments(InLLDSend, V2c & 65535, dx & 65535, V18, A4c); if(bl != 0) { *InLLDSend = InLLDSend; L0000168c(); *InLLDSend = ax; if(*InLLDSend != InLLDSend) { V28 = V28 | 16; V27 = V27 | 128; } ebp = V27 & 255; ecx = V28 & 255; V10 = ecx; L000016bd(V10, ebp); *(V30 + 3) = 255; eax = *InLLDSend & 255; *(eax + InLLDSend) = 255; if(bl == 2) { goto L000016e4; } L00001760: if(bl == 255) { goto L0000176d; } } V2c = V2c + *InLLDSend; V2e = V2e + 1; } while(V2e <= V1e); goto L00001824; esi = esi + InLLDSend; goto L00001540; goto L00001570; goto L00001620; L000016e4: (save)4; (save)78; L000016e9(); (save)4; (save)97; L000016f2(); (save)4; (save)107; L000016fb(); (save)HeaderBytes1; (save)50; (save)L00001700() & 65535; (save)V20; (save)A3c; L00001719(); *(V30 + 49) = InLLDSend; esp = esp + 44; if(*InLLDSend != InLLDSend) { V28 = V28 | 16; V27 = V27 | 128; ebp = V27 & 255; V10 = V28 & 255; } (save)ebp; (save)V10; L00001751(); eax = 255; goto L00001864; goto L00001760; L0000176d: L0000176e(); L00001777(); L00001780(); L00001789(108, 4, 105, 4, 97, 4, 70, 4); (save)4; (save)117; L00001795(); (save)4; (save)114; L0000179e(); (save)4; (save)101; L000017a7(); (save)A3c; IsTxProximPacket(); esp = esp + 28; if(al != 0) { edi = A3c; if(*(edi - 4) == 1164395879) { (save)edi; L000017cb(); goto L000017ec; } L000017d9(A3c, 8); } else { L000017e8(A3c); L000017ec: } *InLLDSend = *InLLDSend + 1; *InLLDSend = 255; } } L000017fc: eax = 255; goto L00001867; L00001824: edi = V30; *(edi + 56) = A3c; *(edi + 49) = 255; L00001834(); *InLLDSend = ax; *InLLDSend = 255; V28 = V28 | 16; V27 = V27 | 128; L0000185e(V28 & 255, V27 & 255); eax = 0; L00001864: } L00001867: } /* Procedure: 0x0000186F - 0x0000186F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L0000186F() { } stack space not deallocated on return /* Procedure: 0x00001870 - 0x00001A22 * Argument size: 36 * Local size: 0 * Save regs size: 0 */ LLDSendFragments(A10, A11, A12, A18, A1a, A1c, A20, A24, A30) /* unknown */ void A10; /* unknown */ void A11; /* unknown */ void A12; /* unknown */ void A18; /* unknown */ void A1a; /* unknown */ void A1c; /* unknown */ void A20; /* unknown */ void A24; /* unknown */ void A30; { esp = esp - 4; (save)ebp; (save)A20; (save)esi; (save)ebx; A12 = A1c; A11 = A24; (save)12; (save)66; L00001891(); (save)12; (save)50; L0000189a(); ebp = L0000189f(); esp = esp + 16; esi = di & 65535; goto L000018be; goto L000018b0; L000018be: do { L000018c9(esi, *InLLDSend & 255); A18 = al; if(A10 == 255) { goto L00001a11; } if(A10 == 2) { L000018e7(); L000018f0(); L000018f9(); L00001902(); L0000190b(75, 2, 65, 2, 78, 2, 70, 2); ebx = L00001913(); L0000191a(); L0000191f(); L00001924(); L0000192a(ebx); } if(A10 == HeaderBytes1) { break; } L000018b0: L000018b1(); } while(ax - bp <= 600); if(A10 == 2) { if(*InLLDSend == 100) { *InLLDSend = 99; } eax = 2; goto L00001a1d; esi = esi + InLLDSend; } *InLLDSend = 100; L00001978(InLLDSend, 12, *InLLDSend & 255); if(A11 != InLLDSend) { (save) *InLLDSend & 255; (save)6; (save)A30; L00001997(); (save) *InLLDSend & 255; (save)6; (save)InLLDSend; L000019ac(); esp = esp + 24; } L000019c4(A20, 12, *InLLDSend & 255); dx = A20 + -24; if(A11 != InLLDSend) { edx = A20 + -36; } (save) *InLLDSend & 255; (save)dx & 65535; (save)(A1a & 65535) + A20; L000019f9(); L000019fe(); A1c = al; eax = A1c & 255; esp = esp + 12; goto L00001a1d; L00001a11: *InLLDSend = 100; eax = 255; L00001a1d: (restore)ebx; (restore)esi; (restore)A20; (restore)ebp; (restore)ecx; } /* Procedure: 0x00001A23 - 0x00001A2F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L00001A23() { esi = esi + InLLDSend; edi = edi + InLLDSend; } /* Procedure: 0x00001A30 - 0x00001A4A * Argument size: 8 * Local size: 0 * Save regs size: 0 */ LLDRawSend(A4, A8) /* unknown */ void A4; /* unknown */ void A8; { return(InLLDSend(A4, A8 & 65535) & 255); } /* Procedure: 0x00001A4B - 0x00001A4F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L00001A4B() { esi = esi + InLLDSend; } /* Procedure: 0x00001A50 - 0x00001CCE * Argument size: 16 * Local size: 28 * Save regs size: 12 */ LLDTxRoamNotify(A2c, A30, A34, A38) /* unknown */ void A2c; /* unknown */ void A30; /* unknown */ void A34; /* unknown */ void A38; { /* unknown */ void ebp; /* unknown */ void esi; /* unknown */ void edi; /* unknown */ void V1e; /* unknown */ void V20; /* unknown */ void V26; ecx = 6; (save)ebx; edi = InLLDSend; esi = A30; V26 = A38; asm("cld"); asm("repe cmpsb"); if(!(al & InLLDSend)) { L00001a80(); L00001a89(); L00001a92(); L00001a9b(105, 6, 116, 6, 111, 6, 78, 6); (save)6; (save)102; L00001aa7(); (save)6; (save)121; L00001ab0(); *InLLDSend = 255; L00001abc(); *InLLDSend = ax; ebx = InLLDSend; ebp = V26 & 65535; eax = ebp + 156; esp = esp + 16; if(eax <= 59) { V1e = 60; goto L00001b01; esi = esi + InLLDSend; } V1e = V26; V1e = V1e + 168; L00001b01: *ebx = 66; *(ebx + 2) = InLLDSend; *(ebx + HeaderBytes1) = 125; *(ebx + 3) = InLLDSend; *(ebx + 4) = *InLLDSend | 160; *(ebx + 5) = 240; V20 = (V1e & 65535) + 16 >> 8; *(ebx + 6) = V20; al = V1e + 16; *(ebx + 7) = al; *(ebx + 8) = InLLDSend; *(ebx + HeaderBytes2) = 160; *(ebx + 10) = 125; *(ebx + 11) = InLLDSend; *(ebx + 12) = *A2c; *(ebx + 16) = *(A2c + 4); ecx = *InLLDSend; *(ebx + 18) = ecx; dx = *L00000004; *(ebx + 22) = dx; *(ebx + 24) = *A30; edi = ebx + 42; *(ebx + 28) = *(A30 + 4); *(ebx + 30) = ecx; *(ebx + 34) = dx; *(ebx + 36) = 129; *(ebx + 37) = 55; *(ebx + 38) = 65535; *(ebx + 40) = InLLDSend; *(ebx + 41) = 44; ecx = HeaderBytes1; eax = 0; asm("cld"); asm("rep stosd"); *edi = eax; edi = edi + 4; *(ebx + 48) = *A30; *(ebx + 52) = *(A30 + 4); *(ebx + 54) = 134; *(ebx + 55) = 75; *(ebx + 56) = InLLDSend; *(ebx + 60) = *InLLDSend; *(ebx + 64) = *L00000004; *(ebx + 66) = 134; *(ebx + 67) = 75; if(V26 > 1538) { *InLLDSend = *InLLDSend + 1; L00001c11(); L00001c1a(); L00001c23(); L00001c2c(67, 4, 100, 4, 97, 4, 66, 4); L00001c38(); L00001c41(); L00001c4a(); L00001c53(101, 4, 76, 4, 121, 4, 112, 4); eax = L00001c5f(); L00001c75(); eax = L00001c83(V26 & 255, 4, V26 >> 8 & 255, 4, 110, 4); goto L00001cc7; esi = esi + InLLDSend; } edi = ebx + 68; ecx = ebp >> 2; esi = A34; eax = ebp; asm("cld"); asm("rep movsd"); if(!(al & 2)) { *edi = *esi; edi = edi + 4; esi = esi + 4; } if(!(al & HeaderBytes1)) { *edi = *esi; edi = edi + 1; esi = esi + 1; } V1e = V1e + 24; esi = V1e & 65535; V20 = esi; eax = InLLDSend(ebx, V20); } L00001cc7: (restore)ebx; } /* Procedure: 0x00001CCF - 0x00001CCF * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L00001CCF() { } /* Procedure: 0x00001CD0 - 0x0000252D * Argument size: 4 * Local size: 16 * Save regs size: 16 */ HandleTransmitComplete(A24) /* unknown */ void A24; { /* unknown */ void ebx; /* unknown */ void V10; /* unknown */ void ebp; /* unknown */ void esi; /* unknown */ void edi; /* unknown */ void V14; /* unknown */ void V18; /* unknown */ void V1c; *InLLDSend = *InLLDSend + 1; edi = A24; eax = L00001ce2(); V18 = eax; eax = L00001ceb(); if(*(edi + 5) >= InLLDSend) { edx = InLLDSend; eax = *(edi + 5) & 255; bl = *(eax + InLLDSend); if(bl >= 0) { goto L00001d50; } } L00001d0b(); L00001d14(); L00001d1d(); L00001d26(78, 14, 85, 14, 79, 14, 66, 14); (save)14; (save)68; L00001d32(); (save)14; (save)82; eax = L00001d3b(); (save)14; (save)89; eax = L00001d44(); (save)V18; goto L00001d9c; L00001d50: if(bl == 255) { L00001d5a(); L00001d63(); L00001d6c(); L00001d75(111, 14, 78, 14, 111, 14, 78, 14); (save)14; (save)100; L00001d81(); (save)14; (save)101; eax = L00001d8a(); (save)14; (save)35; eax = L00001d93(); esi = V18; (save)esi; L00001d9c: eax = L00001d9d(); esp = esp + 28; goto L00002526; esi = esi + InLLDSend; } *(eax + edx) = 255; *InLLDSend = InLLDSend; *InLLDSend = 255; L00001dc3(); *InLLDSend = ax; V14 = bl & 255; ebx = V14 << 6; esi = ebx + InLLDSend; V10 = esi; ebp = *(ebx + 56); *(ebx + 56) = InLLDSend; *(ebx + 49) = InLLDSend; if(ebp == 0) { (save)4; (save)84; eax = L00001e06(); (save)4; (save)50; eax = L00001e0f(); *InLLDSend = 255; (save)V18; L00001e20(); esp = esp + 20; goto L00002526; esi = esi + InLLDSend; } al = *(edi + 4); if(al > HeaderBytes1) { if(al <= 8) { if(al == *(ebx + 28)) { goto L00001ef0; } } L00001e50(); L00001e59(); L00001e62(); L00001e6b(67, 4, 82, 4, 82, 4, 69, 4); L00001e77(70, 4); if(*InLLDSend != InLLDSend) { *(ebx + 28) = InLLDSend; *(ebx + 36) = *(ebx + 36) + 1; eax = L00001e9a(); if(IsTxProximPacket(ebp, V14) != 0) { if(*(ebp - 4) == 1164395879) { (save)ebp; eax = L00001eb6(); goto L00002526; } (save)HeaderBytes2; goto L00001fd8; } (save)ebp; eax = L00001ec9(); } else { *(ebx + 28) = InLLDSend; *(ebx + 49) = InLLDSend; eax = LLDSend(ebp); goto L00002526; esi = esi + InLLDSend; L00001ef0: *(ebx + 28) = InLLDSend; eax = edi + 6; edx = *(edi + 4) & 255; ebx = 0; if(dx > 0) { do { cl = *eax & 191; eax = eax + 1; if(cl - 1 <= HeaderBytes1) { bl = HeaderBytes1; } edx = edx - 1; eax = eax + 1; } while(dx > 0); } if(bl == 0) { esi = V10; *(esi + 36) = *(esi + 36) + 1; (save)V14; L00001f2d(); *InLLDSend = InLLDSend; *InLLDSend = *InLLDSend + 1; *InLLDSend = *InLLDSend + 1; (save)ebp; esp = esp + 8; if(IsTxProximPacket() != 0) { if(*(ebp - 4) == 1164395879) { (save)ebp; eax = L00001f5c(); goto L00002526; } (save)InLLDSend; goto L00001fd8; esi = esi + InLLDSend; } (save)ebp; L00001f72(); goto L00002526; esi = esi + InLLDSend; } al = *InLLDSend; *InLLDSend = al + 1; if(al != 10) { if(*InLLDSend == InLLDSend) { goto L00001ff1; } } *InLLDSend = InLLDSend; *(V10 + 36) = *(V10 + 36) + 1; L00001fb1(); IsTxProximPacket(ebp, V14); if(al != 0) { if(*(ebp - 4) == 1164395879) { (save)ebp; eax = L00001fcd(); goto L00002526; } (save)2; L00001fd8: (save)ebp; eax = L00001fda(); esp = esp + 8; goto L00002526; } (save)ebp; eax = L00001fe8(); goto L00002526; L00001ff1: *(V10 + 49) = InLLDSend; eax = LLDSend(ebp); } } else { cl = *(edi + 6); V1c = cl; if(cl < 0) { if(cl & HeaderBytes1) { goto L000020a4; } if(*(ebx + 18) != 3) { *(ebx + 18) = InLLDSend; } *(ebx + 20) = InLLDSend; *(ebx + 19) = InLLDSend; if(*(ebx + 17) == 2) { *(ebx + 17) = InLLDSend; *(ebx + 21) = InLLDSend; } else { *(ebx + 60) = 255; } esi = V10; *(esi + 49) = InLLDSend; *(esi + 36) = *(esi + 36) + 1; (save)V14; L0000206b(); *InLLDSend = *InLLDSend + 1; *InLLDSend = *InLLDSend + 1; (save)ebp; IsTxProximPacket(); esp = esp + 8; if(al == 0) { goto L00002510; } if(*(ebp - 4) != 1164395879) { goto L00002500; } (save)ebp; L0000209b(); } else { L000020a4: al = V1c & 129; if(al == 128) { if(!(V1c & 64)) { if(*InLLDSend == InLLDSend) { if(*InLLDSend == InLLDSend) { edi = InLLDSend; esi = InLLDSend; ecx = 6; asm("cld"); asm("repe cmpsb"); if(!(al & InLLDSend)) { L000020e6(); *InLLDSend = HeaderBytes1; } } } } esi = V10; al = *(V10 + 27); *(esi + 27) = al + 1; if(al == HeaderBytes1) { *(esi + 19) = 255; *(esi + 27) = InLLDSend; } ecx = V10; if(*(ecx + 17) == 2) { *(ecx + 17) = InLLDSend; *(ecx + 21) = 255; } else { *(V10 + 60) = 255; } ecx = V10; *(ecx + 20) = InLLDSend; *(ecx + 49) = InLLDSend; *(ecx + 36) = *(ecx + 36) + 1; (save)V14; L00002140(); *InLLDSend = *InLLDSend + 1; *InLLDSend = *InLLDSend + 1; (save)ebp; IsTxProximPacket(); esp = esp + 8; if(al == 0) { goto L00002510; } if(*(ebp - 4) != 1164395879) { goto L00002500; } (save)ebp; L00002170(); goto L00002519; esi = esi + InLLDSend; } al = V1c & 143; if(al == 2) { L00002193(); L0000219c(); L000021a5(); L000021b6( *(V10 + 18) & 255, 4, 75, 4, 67, 4, 65, 4); ecx = V10; if(*(ecx + 19) != InLLDSend) { *(ecx + 26) = InLLDSend; *(ecx + 27) = InLLDSend; } esi = V10; al = *(esi + 18); if(al != 3) { *(esi + 18) = al + 1; if(al == 2) { L000021e6(); *(esi + 22) = ax; } } esi = V10; *(esi + 49) = InLLDSend; *InLLDSend = *InLLDSend + 1; if(*InLLDSend != InLLDSend) { *(esi + 36) = *(esi + 36) + 1; L0000220e(); IsTxProximPacket(ebp, V14); if(al == 0) { goto L00002510; } if(*(ebp - 4) == 1164395879) { (save)ebp; L0000222e(); goto L00002519; } (save)2; goto L00002502; } *InLLDSend = *InLLDSend + 1; LLDSend(ebp); } else { if(al == HeaderBytes1) { L0000225e(); L00002267(); L00002270(); L00002281( *(V10 + 20) & 255, 14, 83, 14, 84, 14, 67, 14); ecx = V10; if(*(ecx + 19) != InLLDSend) { *(ecx + 26) = InLLDSend; *(ecx + 27) = InLLDSend; } esi = V10; if(*(esi + 18) != 3) { *(esi + 18) = InLLDSend; } esi = V10; al = *(V10 + 20); *(esi + 20) = al + 1; al = al + 1; *InLLDSend = *InLLDSend + 1; if(al <= *InLLDSend) { if(al != 2) { goto L000022dc; } if(*(esi + 60) != InLLDSend) { L000022dc: if(*InLLDSend != InLLDSend) { ecx = V10; *(ecx + 49) = InLLDSend; *(ecx + 36) = *(ecx + 36) + 1; L000022f6(); IsTxProximPacket(ebp, V14); if(al == 0) { goto L00002510; } if(*(ebp - 4) == 1164395879) { (save)ebp; L00002316(); goto L00002519; } (save)HeaderBytes1; goto L00002502; } *InLLDSend = *InLLDSend + 1; if(al == HeaderBytes1) { *(V10 + 49) = InLLDSend; LLDSend(ebp); goto L00002519; } (save)InLLDSend; (save)10; (save)L00002349() & 65535; (save)V14; (save)ebp; L0000235a(); *(V10 + 49) = InLLDSend; esp = esp + 20; goto L00002519; } } if(*InLLDSend == InLLDSend) { ecx = V10; *(ecx + 49) = InLLDSend; *(ecx + 36) = *(ecx + 36) + 1; L0000238a(); IsTxProximPacket(ebp, V14); if(al == 0) { goto L00002510; } if(*(ebp - 4) == 1164395879) { (save)ebp; L000023aa(); goto L00002519; } (save)HeaderBytes1; goto L00002502; esi = esi + InLLDSend; } L000023c1(); esi = V10; *(esi + 24) = ax; *(esi + 17) = 2; if(*InLLDSend != InLLDSend) { *(esi + 49) = InLLDSend; *(esi + 36) = *(esi + 36) + 1; L000023e7(); IsTxProximPacket(ebp, V14); if(al == 0) { goto L00002510; } if(*(ebp - 4) == 1164395879) { (save)ebp; L00002407(); goto L00002519; } (save)HeaderBytes1; goto L00002502; } *(V10 + 49) = InLLDSend; *InLLDSend = *InLLDSend + 1; LLDSend(ebp); } else { L00002435(); L0000243e(); L00002447(); L00002450(110, 4, 107, 4, 110, 4, 85, 4); L0000245c(); L00002465(); L0000246e(); L00002477(65, 4, 110, 4, 119, 4, 111, 4); L00002483(); L0000248c(); L0000249a(V1c & 255, 4, 107, 4, 99, 4); ecx = V10; if(*(ecx + 18) != 3) { *(ecx + 18) = InLLDSend; } esi = V10; *(esi + 20) = InLLDSend; *(esi + 19) = InLLDSend; if(*(esi + 17) == 2) { *(esi + 17) = InLLDSend; *(esi + 21) = InLLDSend; } ecx = V10; *(ecx + 49) = InLLDSend; *(ecx + 36) = *(ecx + 36) + 1; L000024da(); IsTxProximPacket(ebp, V14); if(al != 0) { if(*(ebp - 4) == 1164395879) { (save)ebp; L000024f6(); goto L00002519; esi = esi + InLLDSend; } L00002500: (save)InLLDSend; L00002502: (save)ebp; L00002504(); esp = esp + 8; goto L00002519; esi = esi + InLLDSend; } L00002510: L00002512(ebp); } } } L00002519: eax = L0000251f(V18); } L00002526: } /* Procedure: 0x0000252E - 0x0000252F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L0000252E() { } /* Procedure: 0x00002530 - 0x0000263E * Argument size: 4 * Local size: 44 * Save regs size: 16 */ IsTxProximPacket(A40) /* unknown */ void A40; { /* unknown */ void ebx; /* unknown */ void V10; /* unknown */ void ebp; /* unknown */ void esi; /* unknown */ void edi; /* unknown */ void V17; /* unknown */ void V18; /* unknown */ void V1a; /* unknown */ void V1c; if(*(A40 + 6) <= 29) { eax = 0; goto L00002637; esi = esi + InLLDSend; } V1a = 30; if(*(A40 + 12) >= 30) { ebp = 30; V1a = InLLDSend; } else { ebp = eax; V1a = V1a - bp; } eax = bp & 65535; ebx = & V1c; V10 = ebx; esi = A40 + 14; ecx = eax >> 2; edi = V10; asm("cld"); asm("rep movsd"); if(!(al & 2)) { *edi = *esi; edi = edi + 4; esi = esi + 4; } if(!(al & HeaderBytes1)) { *edi = *esi; edi = edi + 1; esi = esi + 1; } V18 = bp; V17 = InLLDSend; if(V1a != InLLDSend) { do { edx = *(A40 + 8); ecx = V17 & 255; if(*(edx + ecx * 8 + 8) < V1a) { L000025e0: ebp = eax; V1a = V1a - bp; } else { bp = V1a; V1a = InLLDSend; } ebx = bp & 65535; eax = V18 & 65535; edx = edx + 4; edi = V10 + eax; esi = *(edx + ecx * 8); ecx = ebx >> 2; asm("cld"); asm("rep movsd"); if(!(bl & 2)) { *edi = *esi; edi = edi + 4; esi = esi + 4; } if(!(bl & HeaderBytes1)) { *edi = *esi; edi = edi + 1; esi = esi + 1; } V18 = V18 + bp; V17 = V17 + 1; } while(V1a != InLLDSend); goto L00002625; esi = esi + InLLDSend; goto L000025e0; } L00002625: eax = IsProximPacket(V10) & 255; L00002637: } /* Procedure: 0x0000263F - 0x0000263F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L0000263F() { } /* Procedure: 0x00002640 - 0x00002679 * Argument size: 4 * Local size: 0 * Save regs size: 8 */ IsProximPacket(Ac) /* unknown */ void Ac; { /* unknown */ void esi; /* unknown */ void edi; esi = InLLDSend; eax = Ac; edi = eax + 14; ecx = 8; asm("cld"); asm("repe cmpsb"); if(!(al & InLLDSend)) { esi = InLLDSend; edi = eax + 22; ecx = 4; asm("cld"); asm("repe cmpsb"); if(al & InLLDSend) { goto L00002675; } eax = HeaderBytes1; } else { L00002675: eax = 0; } } extern /* addr: 0000267A */ /* Procedure: 0x0000267A - 0x00000000 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L0000267A() /* address size */ /* 0x00000000 0 */ /* unknown */ void InLLDSend; /* 0x00000000 0 */ /* unknown */ void LLDPacketizeSend; /* 0x00000000 0 */ /* unknown */ void OutChar; /* 0x00000000 0 */ /* unknown */ void RemoveReEntrantHead; /* 0x00000000 0 */ /* unknown */ void AddToReEntrantList; /* 0x00000000 0 */ /* unknown */ void PushRFNCInt; /* 0x00000000 0 */ /* unknown */ void DisableRFNCInt; /* 0x00000000 0 */ /* unknown */ void ControlValue; /* 0x00000000 0 */ /* unknown */ void StatusValue; /* 0x00000000 0 */ /* unknown */ void SetWakeupBit; /* 0x00000000 0 */ /* unknown */ void LLDTransferMode; /* 0x00000000 0 */ /* unknown */ void TxRequest; /* 0x00000000 0 */ /* unknown */ void ClearNAK; /* 0x00000000 0 */ /* unknown */ void LLDOEMCustomer; /* 0x00000000 0 */ /* unknown */ void TxData; /* 0x00000000 0 */ /* unknown */ void EndOfTx; /* 0x00000000 0 */ /* unknown */ void ClearWakeupBit; /* 0x00000000 0 */ /* unknown */ void PopRFNCInt; /* 0x00000000 0 */ /* unknown */ void LLDTooBigTxLen; /* 0x00000000 0 */ /* unknown */ void OutHex; /* 0x00000000 0 */ /* unknown */ void LLDFreeInternalTXBuffer; /* 0x00000000 0 */ /* unknown */ void LLSSendProximPktComplete; /* 0x00000000 0 */ /* unknown */ void LLSSendComplete; /* 0x00000000 0 */ /* unknown */ void PreserveFlag; /* 0x00000000 0 */ /* unknown */ void DisableInterrupt; /* 0x00000000 0 */ /* unknown */ void LLDNoReEntrantDrp; /* 0x00000000 0 */ /* unknown */ void RestoreFlag; /* 0x00000000 0 */ /* unknown */ void LLDSendDisabledDrp; /* 0x00000000 0 */ /* unknown */ void EnableInterrupt; /* 0x00000000 0 */ /* unknown */ void LLDGetEntry; /* 0x00000000 0 */ /* unknown */ void NodeTable; /* 0x00000000 0 */ /* unknown */ void LLDSyncState; /* 0x00000000 0 */ /* unknown */ void LLDInactivityTimeOut; /* 0x00000000 0 */ /* unknown */ void LLDSendKeepAlive; /* 0x00000000 0 */ /* unknown */ void LLDOutSyncDrp; /* 0x00000000 0 */ /* unknown */ void LLDAddToQueue; /* 0x00000000 0 */ /* unknown */ void LLDBridgeFlag; /* 0x00000000 0 */ /* unknown */ void LLDPeerToPeerFlag; /* 0x00000000 0 */ /* unknown */ void LLSGetCurrentTime; /* 0x00000000 0 */ /* unknown */ void LLDForceFrag; /* 0x00000000 0 */ /* unknown */ void LLDFragSize; /* 0x00000000 0 */ /* unknown */ void LLDTxMode; /* 0x00000000 0 */ /* unknown */ void LLDTxModeSave; /* 0x00000000 0 */ /* unknown */ void LLDMapTable; /* 0x00000000 0 */ /* unknown */ void LLDAddToTimedQueue; /* 0x00000000 0 */ /* unknown */ void LLDFailureDrp; /* 0x00000000 0 */ /* unknown */ void LLDNodeAddress; /* 0x00000000 0 */ /* unknown */ void LLDSent; /* 0x00000000 0 */ /* unknown */ void LLDTicksToSniff; /* 0x00000000 0 */ /* unknown */ void LLDSniffCount; /* 0x00000000 0 */ /* unknown */ void LLDBadCopyLen; /* 0x00000000 0 */ /* unknown */ void LLDNAKTime; /* 0x00000000 0 */ /* unknown */ void LLDRoamResponse; /* 0x00000000 0 */ /* unknown */ void LLDRoamResponseTmr; /* 0x00000000 0 */ /* unknown */ void LLDSentCompleted; /* 0x00000000 0 */ /* unknown */ void LLDNoRetries; /* 0x00000000 0 */ /* unknown */ void LLDPullFromQueue; /* 0x00000000 0 */ /* unknown */ void LLDTxFragRetries; /* 0x00000000 0 */ /* unknown */ void FramesXmitFrag; /* 0x00000000 0 */ /* unknown */ void FramesXmit; /* 0x00000000 0 */ /* unknown */ void FramesXmitQFSK; /* 0x00000000 0 */ /* unknown */ void LLDRoamingState; /* 0x00000000 0 */ /* unknown */ void LLDRoamingFlag; /* 0x00000000 0 */ /* unknown */ void LLDMSTAAddr; /* 0x00000000 0 */ /* unknown */ void LLDRoam; /* 0x00000000 0 */ /* unknown */ void FramesXmitBFSK; /* 0x00000000 0 */ /* unknown */ void FramesACKError; /* 0x00000000 0 */ /* unknown */ void LLDReSent; /* 0x00000000 0 */ /* unknown */ void FramesCTSError; /* 0x00000000 0 */ /* unknown */ void LLDCTSRetries; /* 0x00000001 0 */ /* unknown */ void HeaderBytes1; /* 0x00000009 0 */ /* unknown */ void HeaderBytes2; /* 0x000003f0 32 */ /* unknown */ void LLDSendProximPkt; /* 0x00000410 16 */ /* unknown */ void testing; /* 0x00000420 3472 */ /* unknown */ void LLDSend; /* 0x000011b0 1728 */ /* unknown */ void LLDTxFragments; /* 0x00001870 448 */ /* unknown */ void LLDSendFragments; /* 0x00001a30 32 */ /* unknown */ void LLDRawSend; /* 0x00001a50 640 */ /* unknown */ void LLDTxRoamNotify; /* 0x00001cd0 2144 */ /* unknown */ void HandleTransmitComplete; /* 0x00002530 272 */ /* unknown */ void IsTxProximPacket; /* 0x00002640 0 */ /* unknown */ void IsProximPacket; #if 0 /* auxiliary information */ # Current option values: option: +asmflush option: -compactcalls option: +compactexprs option: +compactifs option: +compset option: -dfoproc option: -disasmonly option: -displaylabels option: +doblocks option: +docase option: +dofor option: +doifs option: +dointrinsics option: +doloops option: +donullgotos option: +dopackloops option: +dopackstmt option: -doremlabs option: +dosimplify option: -dosort option: +dostmts option: +doswitch option: +dowhile option: -dumpaddrs option: -dumpcall option: -dumpcomments option: -dumpdfo option: +dumpdoms option: -dumpsblocks option: -dumpsets option: -dumpsizes option: -dumpstmtid option: +fatcase option: -flag16 option: +fullscreen option: -genpattern option: -help option: -hexconst option: -html option: +insertlabels option: -int16 option: +int32 option: -interactive option: +locals option: -nohtmltabs option: -nostackoffs option: -objdump option: -okclone option: -outprocs option: -outrefs option: -overrule option: +rdonly option: -showblocks option: -showjump option: -showlabel option: -showprotosym option: -showreg option: -showstring option: -silent option: +simplifyexprs option: -strallregions option: -traceall option: -tracesets option: +types option: +usesymtab option: -validatebr option: -validatereg option: +validatestr #endif