/* This file was automatically created by * Reverse Engineering Compiler 1.5f (C) Giampiero Caprino (Feb 29 2000) * Input file: 'llssupport.o' */ /* Procedure: 0x00000000 - 0x000000D7 * Argument size: 4 * Local size: 8 * Save regs size: 16 */ LLDSendSetSecurityID(A1c) /* unknown */ void A1c; { /* unknown */ void ebx; /* unknown */ void V10; /* unknown */ void esi; /* unknown */ void edi; /* unknown */ void V14; L0000000c(); if(*HomeRF == HomeRF) { ebx = 197121; esi = 0; while(1) { ecx = -1; edi = A1c; eax = 0; asm("cld"); asm("repne scasb"); if(esi >= !ecx - 1) { break; } eax = *(esi + A1c) * ebx; V14 = ebx; eax = -2147483263; asm("imul ebx"); ebx = ebx + edx >> 23; V10 = V14; V10 = V10 >> 31; ebx = ebx - V10; V10 = ebx; V10 = V10 << 22; V10 = V10 - ebx; V10 = ebx + V10 * 4; ebx = V14 - V10; esi = esi + 1; } ebx = ebx | 196608; eax = (ebx & 983040) >> 16; *HomeRF = al; *L00000001 = ebx >> 8; *L00000002 = bl; ebx = L000000aa(); } else { (save)HomeRF; (save)A1c; CalculateNWID(); ebx = L000000be(); esp = esp + 8; } L000000c8(); return(bl & 255); } /* Procedure: 0x000000D8 - 0x000000DF * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L000000D8() { esi = esi + HomeRF; } /* Procedure: 0x000000E0 - 0x00000214 * Argument size: 8 * Local size: 12 * Save regs size: 16 */ CalculateNWID(A20, A24) /* unknown */ void A20; /* unknown */ void A24; { /* unknown */ void ebx; /* unknown */ void V10; /* unknown */ void ebp; /* unknown */ void esi; /* unknown */ void edi; /* unknown */ void V14; /* unknown */ void V18; esi = A20; edx = 1; if(*(esi + 9) == HomeRF) { ebx = 0; do { al = *(ebx + esi) + 208; if(al > 7) { goto L00000130; } ebx = ebx + 1; } while(ebx <= 3); L00000107: if(*(esi + 4) != 32) { goto L000001a0; } ebx = 5; do { if(*(ebx + esi) + 208 > 7) { goto L000001a0; } ebx = ebx + 1; } while(ebx <= 8); goto L00000136; esi = esi + HomeRF; L00000130: edx = 0; goto L00000107; } edx = 0; L00000136: if(edx != 0) { dl = *esi << 5; al = *(esi + 1) + 208 << 2; dl = dl + al; eax = *(esi + 2) + -48 >> 1; ecx = A24; *ecx = dl + al; dl = *(esi + 2) << 7; dl = dl + ( *(esi + 3) << 4); al = *(esi + 5) + 208 + *(esi + 5) + 208; dl = dl + al; *(ecx + 1) = dl + ( *(esi + 6) + -48 >> 2); dl = *(esi + 6) << 6; dl = dl + ( *(esi + 7) + 208 << 3); *(ecx + 2) = dl + *(esi + 8) + 208; goto L0000020d; esi = esi + HomeRF; } L000001a0: ebp = 0; edi = esi; ecx = A24; ebx = 0; *ecx = HomeRF; *(ecx + 1) = HomeRF; *(ecx + 2) = HomeRF; V18 = 8; V14 = ecx + 2; do { esi = V18 - ebx; V10 = A24; do { if(ebp == 0) { if(*edi != HomeRF) { goto L000001dd; } } ebp = 1; goto L000001f9; L000001dd: eax = *edi & 255; edx = eax; ecx = ebx; edx = edx << cl; ecx = esi; al = (eax >> cl) + dl; edi = edi + 1; *V10 = *V10 + al; L000001f9: V10 = V10 + 1; } while(V10 <= V14); ebx = ebx + 1; } while(ebx <= 6); L0000020d: } /* Procedure: 0x00000215 - 0x0000021F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L00000215() { esi = esi + HomeRF; edi = edi + HomeRF; } /* Procedure: 0x00000220 - 0x000002F6 * Argument size: 24 * Local size: 0 * Save regs size: 0 */ LLDSendProximPacket(A4, A8, Ac, A10, A14, A18) /* unknown */ void A4; /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; /* unknown */ void A14; /* unknown */ void A18; { /* unknown */ void Vfffffffe; esp = esp - 4; (save)ebp; (save)A18; (save)esi; (save)A14; A14 = esi + 30; *(A4 + 6) = bx; *(A4 + 12) = 30; A14 = A10; edx = A4 + 14; *(A4 + 14) = *A14; *(edx + 4) = *(A14 + 4); *(A4 + 20) = *HomeRF; ax = *L00000004; *(A4 + 24) = ax; Vfffffffe = esi + 16; ax = Vfffffffe >> 8; *(edx + 12) = al; *(edx + 13) = bl; *(edx + 14) = 170; *(edx + 15) = 170; *(edx + 16) = 3; *(edx + 17) = HomeRF; *(edx + 18) = 32; *(edx + 19) = 166; *(edx + 20) = HomeRF; *(edx + 21) = 1; *(edx + 22) = 112; *(edx + 23) = 114; *(edx + 24) = 111; *(edx + 25) = 120; *(edx + 26) = bl; *(edx + 27) = 1; *(edx + 28) = A18 >> 8; *(edx + 29) = A18; eax = A4 + 48; *(A4 + 8) = eax; *(A4 + 48) = 1; *(eax + 4) = A8; *( *(A4 + 8) + 8) = Ac; eax = L000002e5(A4) & 255; (restore)A14; (restore)esi; (restore)A18; (restore)ebp; (restore)A4; } /* Procedure: 0x000002F7 - 0x000002FF * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L000002F7() { edi = edi + HomeRF; } /* DEST BLOCK NOT FOUND: 00000318 -> 00000321 */ /* Procedure: 0x00000300 - 0x00000320 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ LLDMakeAPList(A4) /* unknown */ void A4; { *HomeRF = 255; *HomeRF = A4; if(L00000312() == 0) { goto L00000321; } *HomeRF = 255; } /* Procedure: 0x00000321 - 0x0000032F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L00000321() { return; esi = esi + HomeRF; edi = edi + HomeRF; } /* Procedure: 0x00000330 - 0x00000348 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ LLDStopAPSearch(A4) /* unknown */ void A4; { *HomeRF = A4; *HomeRF = HomeRF; *HomeRF = 255; } /* Procedure: 0x00000349 - 0x0000034F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L00000349() { esi = esi + HomeRF; } /* Procedure: 0x00000350 - 0x00000383 * Argument size: 4 * Local size: 0 * Save regs size: 8 */ LLDPrintAPList(Ac) /* unknown */ void Ac; { /* unknown */ void esi; /* unknown */ void edi; edi = Ac; esi = HomeRF; *edi = HomeRF; eax = ( *HomeRF & 255) + ( *HomeRF & 255) * 8 + ( *HomeRF & 255) + ( *HomeRF & 255) * 8; ecx = eax >> 2; asm("cld"); asm("rep movsd"); if(!(al & 2)) { *edi = *esi; edi = edi + 4; esi = esi + 4; } if(!(al & 1)) { *edi = *esi; edi = edi + 1; esi = esi + 1; } } /* Procedure: 0x00000384 - 0x0000038F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L00000384() { esi = esi + HomeRF; edi = edi + HomeRF; } /* DEST BLOCK NOT FOUND: 000003a6 -> 000003e9 */ /* DEST BLOCK NOT FOUND: 000003c8 -> 000003e9 */ /* DEST BLOCK NOT FOUND: 000003ce -> 000003e9 */ /* Procedure: 0x00000390 - 0x000003E8 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ LLDRawProcess(A4) /* unknown */ void A4; { cl = *A4; if(cl == 99) { al = *(A4 + 2); if(al == 2) { if(*(A4 + 3) != HomeRF) { goto L000003E9; } *HomeRF = 255; return; } if(al == 1) { *HomeRF = *(A4 + 6); *HomeRF = 255; return; } } if(cl != 97) { goto L000003E9; } if(*(A4 + 2) != 21) { goto L000003E9; } *HomeRF = *(A4 + 4); al = *(A4 + 5); *HomeRF = al; *HomeRF = 255; } /* Procedure: 0x000003E9 - 0x000003EF * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L000003E9() { return; esi = esi + HomeRF; } /* Procedure: 0x000003F0 - 0x00000436 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ GetCountryCode() { /* unknown */ void Vfffffffc; esp = esp - 4; *HomeRF = HomeRF; *esp = 65; *esp = ( *esp | 1409024) & 1409279; L00000416( & Vfffffffc, 4); if(al == 0) { eax = L00000427(HomeRF); } else { eax = 254; } (restore)ecx; } extern /* addr: 00000437 */ /* Procedure: 0x00000437 - 0x00000000 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L00000437() /* address size */ /* 0x00000000 0 */ /* unknown */ void HomeRF; /* 0x00000000 0 */ /* unknown */ void LLDSendSetSecurityID; /* 0x00000000 0 */ /* unknown */ void SendEnableEEPROMWrite; /* 0x00000000 0 */ /* unknown */ void LLDSecurityID; /* 0x00000000 0 */ /* unknown */ void SendSetSecurityID; /* 0x00000000 0 */ /* unknown */ void SendDisableEEPROMWrite; /* 0x00000000 0 */ /* unknown */ void LLDNodeAddress; /* 0x00000000 0 */ /* unknown */ void LLDSendProximPkt; /* 0x00000000 0 */ /* unknown */ void LLDSearchTime; /* 0x00000000 0 */ /* unknown */ void LLDDomain; /* 0x00000000 0 */ /* unknown */ void SendSearchContinue; /* 0x00000000 0 */ /* unknown */ void LLDNeedReset; /* 0x00000000 0 */ /* unknown */ void LLDNumMastersFound; /* 0x00000000 0 */ /* unknown */ void LLDRawSend; /* 0x00000000 0 */ /* unknown */ void WaitFlagSet; /* 0x000000e0 320 */ /* unknown */ void CalculateNWID; /* 0x00000220 224 */ /* unknown */ void LLDSendProximPacket; /* 0x00000300 48 */ /* unknown */ void LLDMakeAPList; /* 0x00000330 32 */ /* unknown */ void LLDStopAPSearch; /* 0x00000350 64 */ /* unknown */ void LLDPrintAPList; /* 0x00000390 96 */ /* unknown */ void LLDRawProcess; /* 0x000003f0 0 */ /* unknown */ void GetCountryCode; #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