/* This file was automatically created by * Reverse Engineering Compiler 1.6a (C) Giampiero Caprino (Dec 8 2002) * Input file: 'sensor.dll' */ /* Procedure: 0x10001000 - 0x10001157 * Argument size: 12 * Local size: 0 * Save regs size: 0 */ L10001000(A4, A8) /* unknown */ void A4; /* unknown */ void A8; { /* unknown */ void Vfffffe94; /* unknown */ void Vfffffeb8; /* unknown */ void Vffffff00; eax = A8; (save)esi; if(!(esp = esp - 336)) { if(eax = eax - 1) { goto L10001149; } (save)0; (save)128; (save)3; (save)0; (save)3; (save)-1073741824; (save)"\\.\SHOCKMGR"; *L1000AF44 = A4; eax = *__imp__CreateFileA(); *L1000AF48 = eax; if(eax == -1) { L10001A80( & Vfffffe94, "Sensor.DLL: SHOCKMGR Open Error: Return DWORD = %d\n", *__imp__GetLastError()); *L1000AF48 = 0; } (save)20; (save)64; eax = *__imp__LocalAlloc(); esi = __imp__CloseHandle; *L1000AF60 = eax; if(eax != 0) { (save)1; (save)eax; if(*__imp__InitializeSecurityDescriptor() != 0) { (save)0; (save)0; (save)1; (save) *L1000AF60; if(*__imp__SetSecurityDescriptorDacl() != 0) { goto L100010ba; } } } eax = *L1000AF48; if(eax != 0) { (save)eax; *esi(); } L100010ba: (save)"Global\H8ECInfoIF"; (save)0; (save)0x1000af38; *L1000AF38 = 12; *L1000AF3C = *L1000AF60; *L1000AF40 = 1; eax = *__imp__CreateMutexA(); *L1000AF4C = eax; if(eax == -1) { eax = *L1000AF48; if(eax != 0) { (save)eax; *esi(); } } (save) *L1000AF48; (save)"Sensor.DLL: DLL_PROCESS_ATTACH completes: (ShockDriverHandle: %X)\n"; (save) & Vfffffeb8; } else { eax = *L1000AF48; esi = __imp__CloseHandle; if(eax != 0) { (save)eax; *__imp__CloseHandle(); } eax = *L1000AF4C; if(eax != 0) { (save)eax; *esi(); } (save) *L1000AF48; (save)"Sensor.DLL: DLL_PROCESS_DETACH completes (ShockDriverHandle:%X)\n"; (save) & Vffffff00; } L10001A80(); esp = esp + 12; L10001149: (restore)esi; esp = esp + 336; return(1); } /* Procedure: 0x10001158 - 0x1000115F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10001158() { } stack space not deallocated on return /* Procedure: 0x10001160 - 0x100011AF * Argument size: 16 * Local size: 0 * Save regs size: 0 */ L10001160(A4, A8, A10) /* unknown */ void A4; /* unknown */ void A8; /* unknown */ void A10; { eax = *L1000AF48; esp = esp - 8; (save)esi; esi = 0; if(eax != 0) { (save)0; (save) & A4; (save)4; (save) & A10; (save)0; (save)0; if(*__imp__DeviceIoControl(eax, 472040) != 0 && A4 == 4) { (restore)esi; *A10 = A8; return(1); } } eax = esi; (restore)esi; esp = esp + 8; } stack space not deallocated on return /* Procedure: 0x100011B0 - 0x10001208 * Argument size: 8 * Local size: 0 * Save regs size: 0 */ L100011B0(A4, A8) /* unknown */ void A4; /* unknown */ void A8; { esp = esp - 256; (save)esi; (save)1000; (save)A4; esi = 0; eax = *__imp__WaitForSingleObject(); if(eax != 0 && eax != 128) { if(eax == -1) { L10001A80( & A8, "Sensor.DLL: WAIT_FAILED: extended error code: %d\n", *__imp__GetLastError()); } eax = esi; (restore)esi; esp = esp + 256; return; } (restore)esi; esp = esp + 256; return(1); } /* Procedure: 0x10001209 - 0x1000120F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10001209() { } stack space not deallocated on return /* Procedure: 0x10001210 - 0x1000125F * Argument size: 8 * Local size: 0 * Save regs size: 4 */ L10001210(Ac, A10) /* unknown */ void Ac; /* unknown */ void A10; { /* unknown */ void ecx; edx = *L1000AF48; eax = 0; ecx = ~Ac; asm("sbb ecx,ecx"); *esp = eax; ecx = (ecx & 4) + 472052; if(edx != 0) { if(*__imp__DeviceIoControl(edx, ecx, 0, 0, & Ac, 4, & A10, eax) == 0 || Ac != 4) { return(0); } eax = *esp; } } /* Procedure: 0x10001260 - 0x1000129F * Argument size: 4 * Local size: 0 * Save regs size: 0 */ ShockproofSetAutoDisable(A4) /* unknown */ void A4; { eax = 0; ecx = A4; == ? L10001277 : ; if(!(ecx = ecx - 1)) { return(0); } edx = 472020; goto L1000127c; edx = 472024; L1000127c: ecx = *L1000AF48; if(ecx != 0) { eax = *__imp__DeviceIoControl(ecx, edx, 0, 0, 0, 0, & A4, 0); } } stack space not deallocated on return /* Procedure: 0x100012A0 - 0x100012FA * Argument size: 4 * Local size: 0 * Save regs size: 0 */ ShockproofGetAutoDisable(A4, A8, A10) /* unknown */ void A4; /* unknown */ void A8; /* unknown */ void A10; { eax = *L1000AF48; esp = esp - 8; (save)esi; esi = 0; if(eax != 0) { (save)0; (save) & A4; (save)4; (save) & A10; (save)0; (save)0; if(*__imp__DeviceIoControl(eax, 472016) != 0 && A4 == 4) { (restore)esi; 0 = 0; *A10 = 0; return(1); } } eax = esi; (restore)esi; esp = esp + 8; } /* Procedure: 0x100012FB - 0x100012FF * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L100012FB() { } stack space not deallocated on return /* Procedure: 0x10001300 - 0x1000134D * Argument size: 4 * Local size: 0 * Save regs size: 0 */ ShockproofControl(A4, A8) /* unknown */ void A4; /* unknown */ void A8; { ecx = *L1000AF48; eax = 0; if(ecx != 0) { (save)0; if(A4 != 0) { return(*__imp__DeviceIoControl(ecx, 472044, 0, 0, 0, 0, & A8)); } eax = *__imp__DeviceIoControl(ecx, 472048, 0, 0, 0, 0, & A8); } } /* Procedure: 0x1000134E - 0x1000134F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L1000134E() { } stack space not deallocated on return /* Procedure: 0x10001350 - 0x100014C3 * Argument size: 4 * Local size: 160 * Save regs size: 12 */ ShockproofGetVersion(Ab8, Abc, Ad8, Adc, Ae0, A15c) /* unknown */ void Ab8; /* unknown */ void Abc; /* unknown */ void Ad8; /* unknown */ void Adc; /* unknown */ void Ae0; /* unknown */ void A15c; { /* unknown */ void ebx; /* unknown */ void esi; /* unknown */ void edi; ecx = 6; eax = 0; esi = " / 1.30 May 14 2004 (DLL)"; edi = & Abc; ebx = 0; asm("rep movsd"); *edi = *esi; edi = edi + 4; esi = esi + 4; *edi = *esi; edi = edi + 1; esi = esi + 1; ecx = 32; edi = & Ad8; asm("rep stosd"); eax = *L1000AF48; if(eax != 0) { (save)ebx; (save) & Ab8; (save)128; (save) & Ae0; (save)ebx; (save)ebx; (save)472000; (save)eax; if(*__imp__DeviceIoControl() == 0) { goto L100014b6; } edi = & Abc; ecx = ecx | -1; eax = 0; asm("repne scasb"); ecx = !ecx - 1; eax = 127 - ecx; ecx = Ab8; if(ecx > eax) { goto L100014b6; } edi = "ShockManager is not running"; ecx = ecx | -1; eax = 0; asm("repne scasb"); if(L10001AE0("ShockManager is not running", & Adc, !ecx - 1) != 0) { edi = & Abc; ecx = ecx | -1; eax = 0; edx = & Ad8; asm("repne scasb"); ecx = !ecx; esi = edi - ecx; ebx = ecx; edi = edx; ecx = ecx | -1; asm("repne scasb"); ecx = ebx; edi = edi - 1; ecx = ecx >> 2; asm("rep movsd"); ecx = ebx & 3; asm("rep movsb"); } edi = & Ad8; ecx = ecx | -1; eax = 0; esi = & Ad8; asm("repne scasb"); edi = A15c; ecx = !ecx; eax = ecx; ecx = ecx >> 2; asm("rep movsd"); ecx = eax; eax = 1; ecx = ecx & 3; asm("rep movsb"); return; } edi = "ShockManager is not running (Device Open failure)\n"; ecx = ecx | -1; eax = 0; edx = & Ad8; asm("repne scasb"); ecx = !ecx; edi = edi - ecx; eax = ecx; esi = edi; edi = edx; ecx = ecx >> 2; asm("rep movsd"); ecx = eax; eax = 0; ecx = ecx & 3; asm("rep movsb"); edi = & Ad8; ecx = ecx | -1; asm("repne scasb"); edi = A15c; esi = & Ad8; ecx = !ecx; edx = ecx; eax = 1; ecx = ecx >> 2; asm("rep movsd"); ecx = edx & 3; asm("rep movsb"); esp = esp + 160; return; L100014b6: eax = ebx; esp = esp + 160; } /* Procedure: 0x100014C4 - 0x100014CF * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L100014C4() { } stack space not deallocated on return /* Procedure: 0x100014D0 - 0x10001538 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ ShockproofGetUnloadCnt(A4, A8, Ac, A10, A1c) /* unknown */ void A4; /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; /* unknown */ void A1c; { eax = *L1000AF48; esp = esp - 20; (save)esi; esi = 0; if(eax != 0) { (save)0; (save) & A4; (save)16; if(*__imp__DeviceIoControl(eax, 472012, 0, 0, & A10) != 0 && A4 == 16) { eax = A1c; (restore)esi; *eax = A8; *(eax + 4) = Ac; *(eax + 8) = Ac; *(eax + 12) = A10; return(1); } } eax = esi; (restore)esi; esp = esp + 20; } /* Procedure: 0x10001539 - 0x1000153F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10001539() { } /* Procedure: 0x10001540 - 0x1000154F * Argument size: 4 * Local size: 0 * Save regs size: 0 */ ShockproofGetShockStatus(A4) /* unknown */ void A4; { return(L10001160(A4)); } stack space not deallocated on return /* Procedure: 0x10001550 - 0x100015AA * Argument size: 4 * Local size: 0 * Save regs size: 0 */ ShockproofGetSlaveCPUinfo(A4, A8, Ac, A10, A14) /* unknown */ void A4; /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; /* unknown */ void A14; { eax = *L1000AF48; esp = esp - 12; (save)esi; esi = 0; if(eax != 0) { (save)0; (save) & A4; (save)8; (save) & A10; (save)0; if(*__imp__DeviceIoControl(eax, 472028, 0) != 0 && A4 == 8) { eax = A14; (restore)esi; *eax = A8; *(eax + 4) = Ac; return(1); } } eax = esi; (restore)esi; esp = esp + 12; } /* Procedure: 0x100015AB - 0x100015AF * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L100015AB() { } stack space not deallocated on return /* Procedure: 0x100015B0 - 0x100015E6 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ ShockproofGetAccelerometerMutex() { eax = L100011B0( *L1000AF4C); if(eax == 0) { return; } if(L10001210(1) == 0) { *__imp__ReleaseMutex( *L1000AF4C); return(0); } return(1); } /* Procedure: 0x100015E7 - 0x100015EF * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L100015E7() { } stack space not deallocated on return /* Procedure: 0x100015F0 - 0x10001606 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ ShockproofReleaseAccelerometerMutex() { L10001210(0); return(*__imp__ReleaseMutex( *L1000AF4C)); } /* Procedure: 0x10001607 - 0x1000160F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10001607() { } stack space not deallocated on return /* Procedure: 0x10001610 - 0x1000166A * Argument size: 4 * Local size: 0 * Save regs size: 0 */ ShockproofGetAccelerometerData(A4, Ac, A10, A34) /* unknown */ void A4; /* unknown */ void Ac; /* unknown */ void A10; /* unknown */ void A34; { eax = *L1000AF48; esp = esp - 40; (save)esi; esi = 0; if(eax != 0) { (save)0; (save) & A4; (save)36; (save) & A10; (save)0; (save)0; (save)472060; (save)eax; if(*__imp__DeviceIoControl() != 0 && A4 == 36) { (save)A34; ecx = 5; esi = & Ac; asm("rep movsd"); (restore)A34; (restore)esi; esp = esp + 40; return(1); } } eax = esi; (restore)esi; esp = esp + 40; } /* Procedure: 0x1000166B - 0x1000166F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L1000166B() { } stack space not deallocated on return /* Procedure: 0x10001670 - 0x100016CA * Argument size: 4 * Local size: 0 * Save regs size: 0 */ ShockproofGetAccelerometerDataEx(A4, Ac, A10, A34) /* unknown */ void A4; /* unknown */ void Ac; /* unknown */ void A10; /* unknown */ void A34; { eax = *L1000AF48; esp = esp - 40; (save)esi; esi = 0; if(eax != 0) { (save)0; (save) & A4; (save)36; (save) & A10; (save)0; (save)0; (save)472060; (save)eax; if(*__imp__DeviceIoControl() != 0 && A4 == 36) { (save)A34; ecx = 9; esi = & Ac; asm("rep movsd"); (restore)A34; (restore)esi; esp = esp + 40; return(1); } } eax = esi; (restore)esi; esp = esp + 40; } /* Procedure: 0x100016CB - 0x100016CF * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L100016CB() { } stack space not deallocated on return /* Procedure: 0x100016D0 - 0x10001729 * Argument size: 4 * Local size: 264 * Save regs size: 0 */ ShockproofInformPMevent(A10c, A110, A114, A11c, A214) /* unknown */ void A10c; /* unknown */ void A110; /* unknown */ void A114; /* unknown */ void A11c; /* unknown */ void A214; { (save)esi; (save)0; (save) & A110; (save)0; (save)0; A11c = A214; (save)4; (save) & A11c; (save)472008; (save) *L1000AF48; esi = *__imp__DeviceIoControl(); L10001A80( & A114, "Sensor.DLL: ShockproofInformPMevent is called (%X)\n", A10c); eax = esi; (restore)esi; } stack space not deallocated on return /* Procedure: 0x1000172A - 0x1000183A * Argument size: 44 * Local size: 0 * Save regs size: 0 */ L1000172A(A4, A14, A2c) /* unknown */ void A4; /* unknown */ void A14; /* unknown */ void A2c; { eax = *L1000AF48; esp = esp - 272; if(eax != 0 && *L1000AF54 != 0 && *L1000AF5C != 0 && *L1000AF58 != 0) { L10001A80( & A14, "Sensor.DLL: ShockDriverHandle:%X = Request to terminate async thread\n", eax); ecx = esp; (save)0; (save)ecx; (save)0; (save)0; (save)12; (save) & A4; (save)472004; (save) *L1000AF48; A2c = 1; *__imp__DeviceIoControl(); (save) *L1000AF58; *__imp__SetEvent(); (save)10000; (save) *L1000AF5C; if(*__imp__WaitForSingleObject() == -1) { L10001A80( & A14, "Sensor.DLL: WAIT_FAILED: extended error code: %d\n", *__imp__GetLastError()); } (save)esi; esi = __imp__CloseHandle; (save) *L1000AF5C; *__imp__CloseHandle(); (save) *L1000AF58; *esi(); (save) *L1000AF54; *esi(); L10001A80( & A14, "Sensor.DLL: ShockDriverHandle:%X = Complete to terminate async thread\n", *L1000AF48); (restore)esi; esp = esp + 272; return(1); } esp = esp + 272; return(1); } /* Procedure: 0x1000183B - 0x1000183F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L1000183B() { } stack space not deallocated on return /* Procedure: 0x10001840 - 0x100018C6 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ ShockproofManualSensitivitySetting(A8, Ac, A10, A18, A1c) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; /* unknown */ void A18; /* unknown */ void A1c; { eax = *L1000AF48; esp = esp - 12; (save)A18; (save)edi; edi = 0; if(eax != 0) { (save)0; (save) & A1c; if(*A18 != 1) { goto L100018a2; } (save)12; (save) & A10; (save)0; if(*__imp__DeviceIoControl(eax, 472064, 0) != 0 && A18 == 12) { *A18 = A8; *(A18 + 4) = Ac; *(A18 + 8) = A10; (restore)edi; (restore)A18; return(1); L100018a2: (save)0; (save)0; (save)12; eax = *__imp__DeviceIoControl(eax, 472068, A18); (restore)edi; (restore)A18; return; } } eax = edi; (restore)edi; (restore)A18; esp = esp + 12; } /* Procedure: 0x100018C7 - 0x100018CF * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L100018C7() { } /* Procedure: 0x100018D0 - 0x100018F8 * Argument size: 0 * Local size: 0 * Save regs size: 4 */ ShockproofInvokeSnooze() { /* unknown */ void V0; /* unknown */ void ecx; ecx = *L1000AF48; eax = 0; if(ecx != 0) { eax = *__imp__DeviceIoControl(ecx, 472072, 0, 0, 0, 0, & V0, 0); } } /* Procedure: 0x100018F9 - 0x100018FF * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L100018F9() { } stack space not deallocated on return /* Procedure: 0x10001900 - 0x10001986 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ ShockproofSnoozeSetting(A8, Ac, A10, A18, A1c) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; /* unknown */ void A18; /* unknown */ void A1c; { eax = *L1000AF48; esp = esp - 12; (save)A18; (save)edi; edi = 0; if(eax != 0) { (save)0; (save) & A1c; if(*A18 != 1) { goto L10001962; } (save)12; (save) & A10; (save)0; if(*__imp__DeviceIoControl(eax, 472076, 0) != 0 && A18 == 12) { *A18 = A8; *(A18 + 4) = Ac; *(A18 + 8) = A10; (restore)edi; (restore)A18; return(1); L10001962: (save)0; (save)0; (save)12; eax = *__imp__DeviceIoControl(eax, 472080, A18); (restore)edi; (restore)A18; return; } } eax = edi; (restore)edi; (restore)A18; esp = esp + 12; } /* Procedure: 0x10001987 - 0x1000198F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10001987() { } stack space not deallocated on return /* Procedure: 0x10001990 - 0x10001A12 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ ShockproofEnableDisableSnooze(A8, Ac, A14, A18) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A14; /* unknown */ void A18; { eax = *L1000AF48; esp = esp - 8; (save)A14; (save)edi; edi = 0; if(eax != 0) { (save)0; if(*A14 != 1) { goto L100019e9; } (save) & A18; (save)8; (save) & Ac; (save)0; (save)0; if(*__imp__DeviceIoControl(eax, 472084) != 0 && A14 == 8) { *A14 = A8; *(A14 + 4) = Ac; (restore)edi; (restore)A14; return(1); L100019e9: (save) & A18; (save)0; (save)0; (save)8; (save)A14; eax = *__imp__DeviceIoControl(eax, 472088); (restore)edi; (restore)A14; return; } } eax = edi; (restore)edi; (restore)A14; esp = esp + 8; } /* Procedure: 0x10001A13 - 0x10001A1F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10001A13() { } stack space not deallocated on return /* Procedure: 0x10001A20 - 0x10001A7C * Argument size: 4 * Local size: 0 * Save regs size: 0 */ ShockproofCallSMAPIBIOS(A8, A10, A24) /* unknown */ void A8; /* unknown */ void A10; /* unknown */ void A24; { eax = *L1000AF48; esp = esp - 24; (save)esi; esi = 0; (save)edi; if(eax != 0) { (save)0; (save) & A24; if(*__imp__DeviceIoControl(eax, 472092, A24, 24, & A10, 24) != 0 && A24 == 24) { ecx = 6; esi = & A8; asm("rep movsd"); (restore)edi; (restore)esi; return(1); } } eax = esi; (restore)edi; (restore)esi; esp = esp + 24; } /* Procedure: 0x10001A7D - 0x10001A7F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10001A7D() { } /* Procedure: 0x10001A80 - 0x10001AD1 * Argument size: -20 * Local size: 32 * Save regs size: 0 */ L10001A80(A8, Ac, A10) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; { /* unknown */ void Vffffffe0; /* unknown */ void Vffffffe4; /* unknown */ void Vffffffe8; /* unknown */ void Vffffffec; eax = A8; (save)esi; Vffffffe8 = eax; Vffffffe0 = Vffffffe8; Vffffffec = 66; Vffffffe4 = 2147483647; esi = L10001DD9( & Vffffffe0, Ac, & A10); if(!(Vffffffe4 = Vffffffe4 - 1)) { *Vffffffe0 = 0; } else { L10001CC1(0, & Vffffffe0); } eax = esi; (restore)esi; } /* Procedure: 0x10001AD2 - 0x10001ADF * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10001AD2() { } /* Procedure: 0x10001AE0 - 0x10001B17 * Argument size: 12 * Local size: 0 * Save regs size: 12 */ L10001AE0(A8, Ac, A10) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; { /* unknown */ void ebx; /* unknown */ void edi; ecx = A10; asm("jecxz 0x10001b11"); ebx = ecx; Ac = A8; eax = 0; asm("repne scasb"); ecx = ~ecx + ebx; edi = Ac; asm("repe cmpsb"); al = *(Ac - 1); ecx = 0; if(al <= *(edi - 1)) { == ? L10001b11 : ; ecx = -2; } ecx = !ecx; return(ecx); } /* Procedure: 0x10001B18 - 0x10001BF0 * Argument size: 12 * Local size: 0 * Save regs size: 0 */ L10001B18(A8) /* unknown */ void A8; { eax = A8; if(eax == 1) { *L1000AF80 = *__imp__GetVersion(); if(L1000304A(1) != 0) { ecx = *L1000AF81 & 255; eax = *L1000AF80 & 255; *L1000AF80 = *L1000AF80 >> 16; *L1000AF88 = eax; *L1000AF8C = ecx; *L1000AF84 = ( *L1000AF88 << 8) + *L1000AF8C; if(L10002701() != 0) { goto L10001b7c; } L100030A7(); } L10001b78: eax = 0; goto L10001bee; L10001b7c: *L1000C658 = *__imp__GetCommandLineA(); *L1000AF6C = L10002DA3(); L1000288D(); L10002B56(); L10002A9D(); L100025E3(); *L1000AF68 = *L1000AF68 + 1; } else { ecx = 0; if(eax == 0) { if(*L1000AF68 <= 0) { goto L10001b78; } *L1000AF68 = *L1000AF68 - 1; if(*L1000AFB8 == 0) { L10002621(); } L10002A49(); L10002755(); L100030A7(); } else { if(eax == 3) { L100027ED(ecx); } } } eax = 1; L10001bee: } /* Procedure: 0x10001BF1 - 0x10001C8D * Argument size: 12 * Local size: 0 * Save regs size: 4 */ __entry_point__(A8, Ac, A10) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; { (save)esi; esi = Ac; (save)A10; if(esi == 0) { *L1000AF68 :: 0; } else { if(esi != 1 && esi != 2) { goto L10001c39; } eax = *L1000C65C; if(eax != 0) { (save)A10; (save)esi; (save)A8; if(*eax() == 0) { goto L10001c35; } } } if(L10001B18(A8, esi, A10) == 0) { L10001c35: eax = 0; } else { L10001c39: eax = L10001000(A8, esi, A10); Ac = eax; if(esi == 1) { if(eax != 0) { goto L10001c84; } L10001B18(A8, eax, A10); } if(esi == 0 || esi == 3) { eax = L10001B18(A8, esi, A10); if(eax == 0) { Ac = Ac & eax; } if(Ac != 0) { eax = *L1000C65C; if(eax != 0) { Ac = *eax(A8, esi, A10); } } } L10001c84: eax = Ac; } (restore)A10; (restore)esi; } /* Procedure: 0x10001C8E - 0x10001CC0 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10001C8E(A4) /* unknown */ void A4; { eax = *L1000AF74; if(eax == 1 || eax == 0 && *L1000AF78 == 1) { L1000314F(); } L10003188(); return(*L10008280(255, A4)); } /* Procedure: 0x10001CC1 - 0x10001DD8 * Argument size: 8 * Local size: 0 * Save regs size: 8 */ L10001CC1(A8, Ac) /* unknown */ void A8; /* unknown */ void Ac; { /* unknown */ void ebx; /* unknown */ void esi; esi = Ac; eax = *(esi + 12); ebx = *(esi + 16); if(!(al & 130)) { if(al & 64) { goto L10001dcd; } if(!(al & 1)) { *(esi + 4) = 0; if(al & 16) { goto L10001dcd; } ecx = *(esi + 8); *esi = ecx; *(esi + 12) = al & 254; } *(esi + 4) = 0; Ac = 0; ( *(esi + 12) & 239 | 2) & 268; if(!( *(esi + 12) = *(esi + 12) & 239 | 2)) { if(esi != 0x10008368 && esi != 0x10008388) { goto L10001d2c; } if(L100035E7(ebx) == 0) { L10001d2c: L100035A3(esi); } } (save)edi; if(!( *(esi + 12) & 264)) { eax = *(esi + 8); edi = *esi - eax; *esi = eax + 1; edi :: 0; if(!( *(esi + 4) = *(esi + 24) - 1)) { Ac = L100033B3(ebx, eax, edi); } else { if(ebx != -1) { ecx = ebx; eax = ebx; ecx = ecx >> 5; eax = eax & 31; ecx = *(ecx * 4 + 268485952); eax = ecx + (eax + eax * 8) * 4; } else { eax = 0x10008290; } if(!( *(eax + 4) & 32)) { L100032DB(ebx, 0, 2); } } eax = *(esi + 8); *eax = A8; } else { (save)1; (restore)edi; eax = L100033B3(ebx, & A8, edi); Ac = eax; } (restore)edi; if(Ac != edi) { *(esi + 12) = *(esi + 12) | 32; goto L10001dd2; } eax = A8 & 255; } else { L10001dcd: al = al | 32; *(esi + 12) = eax; L10001dd2: eax = eax | -1; } } /* Procedure: 0x10001DD9 - 0x100024F9 * Argument size: 12 * Local size: 584 * Save regs size: 12 */ L10001DD9(A8, Ac, A10) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; { /* unknown */ void ebx; /* unknown */ void esi; /* unknown */ void edi; /* unknown */ void Vfffffdb8; /* unknown */ void Vfffffdb9; /* unknown */ void Vffffffb7; /* unknown */ void Vffffffb8; /* unknown */ void Vffffffbc; /* unknown */ void Vffffffc0; /* unknown */ void Vffffffc4; /* unknown */ void Vffffffc8; /* unknown */ void Vffffffcc; /* unknown */ void Vffffffd0; /* unknown */ void Vffffffd4; /* unknown */ void Vffffffd8; /* unknown */ void Vffffffdc; /* unknown */ void Vffffffe0; /* unknown */ void Vffffffe4; /* unknown */ void Vffffffea; /* unknown */ void Vffffffeb; /* unknown */ void Vffffffec; /* unknown */ void Vfffffff0; /* unknown */ void Vfffffff4; /* unknown */ void Vfffffff8; /* unknown */ void Vfffffffc; /* unknown */ void Vfffffffd; edi = Ac; esi = 0; bl = *edi; bl :: 0; Vfffffff4 = 0; Vffffffec = 0; if(!(Ac = edi + 1)) { ecx = Vfffffff0; for(edx = 0; 1; edx = 0) { if(Vffffffec < edx) { goto L100024f2; } if(bl < 32 || bl > 120) { eax = 0; } else { eax = bl; eax = *(eax + __imp__MultiByteToWideChar) & 15; } eax = *(esi + eax * 8 + 268464392) >> 4; Vffffffd0 = eax; if(eax <= 7) { goto *(eax * 4 + 0x100024fa)[L10001f78, L10001e4e, L10001e69, L10001eb5, L10001eec, L10001ef4, L10001f29, L10001fbc, ]goto ( *(eax * 4 + 0x100024fa)); Vfffffff0 = Vfffffff0 | -1; Vffffffcc = edx; Vffffffd8 = edx; Vffffffe0 = edx; Vffffffe4 = edx; Vfffffffc = edx; Vffffffdc = edx; } L100024e1: edi = Ac; bl = *edi; bl :: 0; if(!(Ac = edi + 1)) { goto L100024f2; } ecx = Vfffffff0; esi = Vffffffd0; } if(!(eax = bl - 32)) { if(!(eax = eax - 3)) { if(!(eax = eax - 8)) { if(!(eax = eax - 1 - 1)) { if(eax = eax - 3) { goto L100024e1; } Vfffffffc = Vfffffffc | 8; goto L100024e1; } Vfffffffc = Vfffffffc | 4; goto L100024e1; } Vfffffffc = Vfffffffc | 1; goto L100024e1; } Vfffffffc = Vfffffffc | 128; goto L100024e1; } Vfffffffc = Vfffffffc | 2; goto L100024e1; if(bl == 42) { eax = L100025B8( & A10); Vffffffe0 = eax; if(eax >= 0) { goto L100024e1; } Vfffffffc = Vfffffffc | 4; eax = ~eax; L10001ed5: Vffffffe0 = eax; goto L100024e1; } ecx = bl; eax = ecx + (Vffffffe0 + Vffffffe0 * 4) * 2 - 48; goto L10001ed5; Vfffffff0 = edx; goto L100024e1; if(bl == 42) { eax = L100025B8( & A10); Vfffffff0 = eax; if(eax >= 0) { goto L100024e1; } Vfffffff0 = Vfffffff0 | -1; goto L100024e1; } eax = ecx + ecx * 4; Vfffffff0 = bl + eax * 2 - 48; goto L100024e1; if(bl != 73) { if(bl != 104) { if(bl != 108) { if(bl != 119) { goto L100024e1; } Vfffffffd = Vfffffffd | 8; goto L100024e1; } Vfffffffc = Vfffffffc | 16; goto L100024e1; } Vfffffffc = Vfffffffc | 32; goto L100024e1; } if(*edi == 54 && *(edi + 1) == 52) { Vfffffffd = Vfffffffd | 128; Ac = edi + 1 + 1; goto L100024e1; } Vffffffd0 = edx; Vffffffdc = edx; if(!( *( *L100085E8 + (bl & 255) * 2 + 1) & 128)) { L1000251A(bl, A8, & Vffffffec); bl = *edi; Ac = edi + 1; } L1000251A(bl, A8, & Vffffffec); goto L100024e1; eax = bl; if(eax <= 103) { if(eax < 101) { if(eax > 88) { goto L100020c5; } == ? L10002258 : ; if(eax = eax - 67) { goto L10002088; } if(!(eax = eax - 1 - 1) && !(eax = eax - 1 - 1)) { if(eax = eax - 12) { goto L100023e3; } if(!(Vfffffffc & 2096)) { Vfffffffd = Vfffffffd | 8; } L10002006: esi = Vfffffff0; if(esi == -1) { esi = 2147483647; } ecx = L100025B8( & A10); Vfffffff8 = ecx; if(Vfffffffc & 2064) { goto L1000222c; } if(ecx == 0) { ecx = *L10008288; Vfffffff8 = ecx; } Vffffffdc = 1; eax = ecx; L10002044: edx = esi; esi = esi - 1; if(edx == 0 || *eax == 0) { goto L10002223; } eax = eax + 1 + 1; goto L10002044; } Vffffffcc = 1; bl = bl + 32; } Vfffffffc = Vfffffffc | 64; edi = & Vfffffdb8; Vfffffff8 = edi; if(ecx < edx) { Vfffffff0 = 6; goto L10002159; L10002088: if(!(Vfffffffc & 2096)) { Vfffffffd = Vfffffffd | 8; } L10002094: (save) & A10; if(!(Vfffffffc & 2064)) { (save)L100025D5(); (save) & Vfffffdb8; eax = L100037EB(); esp = esp + 12; Vfffffff4 = eax; if(Vfffffff4 >= 0) { goto L100020ee; } Vffffffd8 = 1; goto L100020ee; L100020c5: if(eax = eax - 90) { goto L100020fc; } if(eax = eax - 9) { goto L10002094; } if(eax = eax - 1) { goto L100022be; } goto L100023e3; } L100025B8(); (restore)ecx; Vfffffdb8 = al; Vfffffff4 = 1; L100020ee: Vfffffff8 = & Vfffffdb8; goto L100023e3; L100020fc: eax = L100025B8( & A10); if(eax != 0) { ecx = *(eax + 4); if(ecx == 0) { goto L1000213d; } if(!(Vfffffffd & 8)) { Vfffffff8 = ecx; Vfffffff4 = *eax >> 1; Vffffffdc = 1; goto L100023e3; } Vffffffdc = 0; Vfffffff8 = ecx; eax = *eax; goto L100023e0; } L1000213d: eax = *L10008284; Vfffffff8 = eax; (save)Vfffffff8; } else { != ? 0x10002159 : ; if(bl == 103) { Vfffffff0 = 1; } L10002159: eax = A10 + 8; A10 = eax; Vffffffb8 = *(eax - 8); Vffffffbc = *(eax - 4); *L100085d0( & Vffffffb8, & Vfffffdb8, bl, Vfffffff0, Vffffffcc); if(!(esi = Vfffffffc & 128) && Vfffffff0 == 0) { *L100085dc( & Vfffffdb8); } if(bl == 103 && esi == 0) { *L100085d4( & Vfffffdb8); } if(Vfffffdb8 == 45) { Vfffffffd = Vfffffffd | 1; edi = & Vfffffdb9; Vfffffff8 = edi; } (save)edi; } eax = L10003770(); (restore)ecx; } else { if(!(eax = eax - 105)) { if(!(eax = eax - 5)) { if(!(eax = eax - 1)) { if(!(eax = eax - 1)) { if(eax = eax - 3) { goto L10002006; } if(eax = eax - 1 - 1) { goto L100022c2; } if(eax = eax - 3) { goto L100023e3; } Vffffffd4 = 39; goto L1000225f; L10002223: eax = eax - ecx >> 1; goto L100023e0; L1000222c: if(ecx == 0) { ecx = *L10008284; Vfffffff8 = ecx; } eax = ecx; L1000223b: edx = esi; esi = esi - 1; if(edx != 0 && *eax != 0) { eax = eax + 1; goto L1000223b; } eax = eax - ecx; goto L100023e0; } Vfffffff0 = 8; Vffffffd4 = 7; L1000225f: Vfffffff4 = 16; if(Vfffffffc & 128) { goto L100022c9; } Vffffffea = 48; Vffffffe4 = 2; Vffffffeb = Vffffffd4 + 81; goto L100022c9; } Vfffffff4 = 8; if(Vfffffffc & 128) { goto L100022c9; } Vfffffffd = Vfffffffd | 2; goto L100022c9; } eax = L100025B8( & A10); *eax = !(Vfffffffc & 32) ? Vffffffec : Vffffffec; Vffffffd8 = 1; goto L100024e1; } L100022be: Vfffffffc = Vfffffffc | 64; L100022c2: Vfffffff4 = 10; L100022c9: if(!(Vfffffffd & 128)) { eax = L100025C5( & A10); } else { if(!(Vfffffffc & 32)) { (save) & A10; if(!(Vfffffffc & 64)) { L100025B8(); (restore)ecx; eax = ax; L100022f4: asm("cdq"); goto L1000231c; } L100025B8(); (restore)ecx; eax = ax & 65535; goto L100022f4; } (save) & A10; if(!(Vfffffffc & 64)) { eax = L100025B8(); (restore)ecx; goto L100022f4; } eax = L100025B8(); (restore)ecx; edx = 0; } L1000231c: if(!(Vfffffffc & 64)) { if(edx > 0) { goto L1000233d; } < ? L1000232c : ; if(eax >= 0) { goto L1000233d; } eax = ~eax; asm("adc edx,+0x0"); esi = eax; edx = ~edx; Vfffffffd = Vfffffffd | 1; edi = edx; } else { L1000233d: esi = eax; edi = edx; } if(!(Vfffffffd & 128)) { edi = 0; } if(Vfffffff0 < 0) { Vfffffff0 = 1; } else { Vfffffffc = Vfffffffc & -9; } if(!(eax = esi | edi)) { Vffffffe4 = 0; } Vfffffff8 = & Vffffffb7; L1000236d: eax = Vfffffff0; Vfffffff0 = Vfffffff0 - 1; if(eax > 0 || !(eax = esi | edi)) { eax = Vfffffff4; asm("cdq"); Vffffffc0 = eax; Vffffffc4 = edx; ebx = L10003920(esi, edi, eax, edx) + 48; esi = L100038B0(esi, edi, Vffffffc0, Vffffffc4); edi = edx; if(ebx > 57) { ebx = ebx + Vffffffd4; } eax = Vfffffff8; Vfffffff8 = Vfffffff8 - 1; *eax = bl; goto L1000236d; } eax = & Vffffffb7 - Vfffffff8; Vfffffff8 = Vfffffff8 + 1; Vfffffff4 = eax; if(Vfffffffd & 2 || *Vfffffff8 == 48 && eax != 0) { goto L100023e3; } Vfffffff8 = Vfffffff8 - 1; eax = eax + 1; *Vfffffff8 = 48; } L100023e0: Vfffffff4 = eax; L100023e3: if(Vffffffd8 != 0) { goto L100024e1; } ebx = Vfffffffc; if(!(bl & 64)) { if(!(bh & 1)) { Vffffffea = 45; goto L10002414; } if(!(bl & 1)) { Vffffffea = 43; goto L10002414; } if(!(bl & 2)) { Vffffffea = 32; L10002414: Vffffffe4 = 1; } } esi = Vffffffe0 - Vffffffe4 - Vfffffff4; if(!(bl & 12)) { L1000254F(32, esi, A8, & Vffffffec); } L10002580( & Vffffffea, Vffffffe4, A8, & Vffffffec); if(!(bl & 8) && !(bl & 4)) { L1000254F(48, esi, A8, & Vffffffec); } if(Vffffffdc != 0) { if(Vfffffff4 <= 0) { goto L100024b4; } eax = Vfffffff4; ebx = Vfffffff8; edi = eax - 1; L10002482: ax = *ebx; ebx = ebx + 1; (save)eax; ebx = ebx + 1; eax = L100037EB( & Vffffffc8); (restore)ecx; if(eax > 0) { L10002580( & Vffffffc8, eax, A8, & Vffffffec); eax = edi; edi = edi - 1; if(eax != 0) { goto L10002482; } } } else { L100024b4: L10002580(Vfffffff8, Vfffffff4, A8, & Vffffffec); } if(Vfffffffc & 4) { goto L100024e1; } L1000254F(32, esi, A8, & Vffffffec); goto L100024e1; } L100024f2: return(Vffffffec); } /* Procedure: 0x100024FA - 0x10002519 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L100024FA() { } /* Procedure: 0x1000251A - 0x1000254E * Argument size: 12 * Local size: 0 * Save regs size: 0 */ L1000251A(A8, Ac, A10) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; { if(!( *(Ac + 4) = *(Ac + 4) - 1)) { edx = *Ac; al = A8; *edx = al; *Ac = *Ac + 1; A10 = *edx & 255; } else { A10 = L10001CC1(A8, Ac); } if(A10 == -1) { *A10 = *A10 | -1; return; } *A10 = *A10 + 1; } /* Procedure: 0x1000254F - 0x1000257F * Argument size: 16 * Local size: 0 * Save regs size: 8 */ L1000254F(Ac, A10, A14, A18) /* unknown */ void Ac; /* unknown */ void A10; /* unknown */ void A14; /* unknown */ void A18; { /* unknown */ void edi; edi = A10; eax = edi; edi = edi - 1; do { eax = L1000251A(Ac, A14, A18); if(*A18 == -1) { break; } eax = edi; edi = edi - 1; } while(eax > 0); } /* Procedure: 0x10002580 - 0x100025B7 * Argument size: 16 * Local size: 0 * Save regs size: 4 */ L10002580(A8, Ac, A10, A14) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; /* unknown */ void A14; { /* unknown */ void ebx; ebx = Ac; eax = ebx; ebx = ebx - 1; (save)esi; (save)A14; if(eax > 0) { esi = A8; do { eax = *esi; esi = esi + 1; eax = L1000251A(eax, A10, A14); if(*A14 == -1) { break; } eax = ebx; ebx = ebx - 1; } while(eax > 0); } (restore)A14; (restore)esi; } /* Procedure: 0x100025B8 - 0x100025C4 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L100025B8(A4) /* unknown */ void A4; { *A4 = *A4 + 4; return(*( *A4 - 4)); } /* Procedure: 0x100025C5 - 0x100025D4 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L100025C5(A4) /* unknown */ void A4; { eax = A4; *eax = *eax + 8; ecx = *eax; eax = *(ecx - 8); edx = *(ecx - 4); } /* Procedure: 0x100025D5 - 0x100025E2 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L100025D5(A4) /* unknown */ void A4; { eax = A4; *eax = *eax + 4; eax = *eax; return(*(eax - 4)); } /* Procedure: 0x100025E3 - 0x1000260F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L100025E3() { eax = *L1000C654; if(eax != 0) { *eax(); } L100026E7(); return(L100026E7(0x10008000, 0x10008004, 0x10008008, 0x10008014)); } /* Procedure: 0x10002610 - 0x10002620 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10002610(A4) /* unknown */ void A4; { return(L10002630(A4, 1, 0)); } /* Procedure: 0x10002621 - 0x1000262F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10002621() { return(L10002630(0, 0, 1)); } stack space not deallocated on return /* Procedure: 0x10002630 - 0x100026D4 * Argument size: 16 * Local size: 0 * Save regs size: 4 */ L10002630(Ac, A10, A18) /* unknown */ void Ac; /* unknown */ void A10; /* unknown */ void A18; { /* unknown */ void edi; L100026D5(); edi = 1; if(*L1000AFBC == 1) { (save)Ac; (save) *__imp__GetCurrentProcess(); *__imp__TerminateProcess(); } (save)ebx; *L1000AFB8 = edi; *L1000AFB4 = A18; if(A10 == 0) { eax = *L1000C650; if(eax != 0) { (save)esi; esi = *L1000C64C - 4; if(esi >= eax) { do { eax = *esi; if(eax != 0) { *eax(); } esi = esi - 4; } while(esi >= *L1000C650); } (restore)esi; } L100026E7(0x10008018, 0x10008020); } L100026E7(0x10008024, 0x10008028); (restore)ebx; if(ebx != 0) { return(L100026DE()); } *L1000AFBC = edi; return(*__imp__ExitProcess(Ac)); } /* Procedure: 0x100026D5 - 0x100026DD * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L100026D5() { return(L10003A2A(13)); } /* Procedure: 0x100026DE - 0x100026E6 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L100026DE() { return(L10003A8B(13)); } /* Procedure: 0x100026E7 - 0x10002700 * Argument size: 8 * Local size: 0 * Save regs size: 4 */ L100026E7(A8, Ac) /* unknown */ void A8; /* unknown */ void Ac; { /* unknown */ void esi; for(esi = A8; esi < Ac; esi = esi + 4) { eax = *esi; if(eax != 0) { eax = *eax(); } } } stack space not deallocated on return /* Procedure: 0x10002701 - 0x10002754 * Argument size: 0 * Local size: 0 * Save regs size: 4 */ L10002701() { /* unknown */ void esi; L10003995(); eax = *__imp__TlsAlloc(); *L1000828C = eax; if(eax != -1) { (save)116; esi = L10003AA0(1); (restore)ecx; if(esi != 0) { (save)esi; (save) *L1000828C; if(*__imp__TlsSetValue() != 0) { L10002773(esi); *(esi + 4) = *(esi + 4) | -1; (save)1; *esi = *__imp__GetCurrentThreadId(); (restore)eax; return; } } } return(0); } /* DEST BLOCK NOT FOUND: 10002762 -> 10002772 */ stack space not deallocated on return /* Procedure: 0x10002755 - 0x10002772 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10002755() { L100039BE(); if(*L1000828C != -1) { eax = *__imp__TlsFree(eax); *L1000828C = *L1000828C | -1; } } /* Procedure: 0x10002773 - 0x10002785 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10002773(A4) /* unknown */ void A4; { *(A4 + 80) = 0x100088c0; *(A4 + 20) = 1; } stack space not deallocated on return /* Procedure: 0x10002786 - 0x100027EC * Argument size: 0 * Local size: 0 * Save regs size: 8 */ L10002786() { /* unknown */ void esi; /* unknown */ void edi; (save) *L1000828C; edi = *__imp__GetLastError(); esi = *__imp__TlsGetValue(); if(esi == 0) { (save)116; esi = L10003AA0(1); (restore)ecx; if(esi != 0) { (save)esi; (save) *L1000828C; if(*__imp__TlsSetValue() == 0) { goto L100027d9; } L10002773(esi); *(esi + 4) = *(esi + 4) | -1; *esi = *__imp__GetCurrentThreadId(); } else { L100027d9: L10001C8E(16); } } *__imp__SetLastError(edi); return(esi); } /* DEST BLOCK NOT FOUND: 100027f5 -> 1000288c */ stack space not deallocated on return /* Procedure: 0x100027ED - 0x1000288C * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L100027ED(A8) /* unknown */ void A8; { if(*L1000828C != -1) { (save)esi; esi = A8; if(esi == 0) { (save)eax; esi = *__imp__TlsGetValue(); if(esi == 0) { goto L1000287d; } } eax = *(esi + 36); if(eax != 0) { L10003BDD(eax); } eax = *(esi + 40); if(eax != 0) { L10003BDD(eax); } eax = *(esi + 48); if(eax != 0) { L10003BDD(eax); } eax = *(esi + 56); if(eax != 0) { L10003BDD(eax); } eax = *(esi + 64); if(eax != 0) { L10003BDD(eax); } eax = *(esi + 68); if(eax != 0) { L10003BDD(eax); } eax = *(esi + 80); if(eax != 0x100088c0) { L10003BDD(eax); } L10003BDD(esi); L1000287d: eax = *__imp__TlsSetValue( *L1000828C, 0); (restore)esi; } } /* Procedure: 0x1000288D - 0x10002A48 * Argument size: 0 * Local size: 72 * Save regs size: 12 */ L1000288D() { /* unknown */ void ebx; /* unknown */ void esi; /* unknown */ void edi; /* unknown */ void Vffffffb8; /* unknown */ void Vffffffea; /* unknown */ void Vffffffec; /* unknown */ void Vfffffffc; esi = L10003CC6(1152); if(esi == 0) { L10001C8E(27); } *L1000C540 = esi; *L1000C640 = 32; for(eax = esi + 1152; esi < eax; eax = *L1000C540 + 1152) { *(esi + 4) = 0; *esi = *esi | -1; *(esi + 8) = 0; *(esi + 5) = 10; esi = esi + 36; } (save) & Vffffffb8; *__imp__GetStartupInfoA(); if(Vffffffea != 0) { eax = Vffffffec; if(eax != 0) { edi = *eax; ebx = eax + 4; Vfffffffc = ebx + edi; eax = 2048; if(edi >= 2048) { edi = 2048; } if(*L1000C640 < edi) { esi = 268485956; do { eax = L10003CC6(1152); if(eax == 0) { goto L10002975; } *L1000C640 = *L1000C640 + 32; *esi = eax; for(ecx = eax + 1152; eax < ecx; ecx = ecx + 1152) { *(eax + 4) = 0; *eax = *eax | -1; *(eax + 8) = 0; *(eax + 5) = 10; ecx = *esi; eax = eax + 36; } esi = esi + 4; } while(*L1000C640 < edi); goto L1000297b; L10002975: edi = *L1000C640; } L1000297b: esi = 0; if(edi > 0) { do { ecx = *Vfffffffc; if(ecx != -1) { al = *ebx; if(!(al & 1)) { if(al & 8) { goto L100029a0; } (save)ecx; if(*__imp__GetFileType() != 0) { L100029a0: ecx = esi; eax = esi; ecx = ecx >> 5; eax = eax & 31; ecx = *(ecx * 4 + 268485952); eax = ecx + (eax + eax * 8) * 4; *eax = *Vfffffffc; *(eax + 4) = *ebx; } } } Vfffffffc = Vfffffffc + 4; esi = esi + 1; ebx = ebx + 1; } while(esi < edi); } } } ebx = 0; do { ecx = *L1000C540; eax = ebx + ebx * 8; *(ecx + eax * 4) :: -1; if(esi = ecx + eax * 4) { *(esi + 4) = *(esi + 4) | 128; } else { *(esi + 4) = 129; if(ebx != 0) { eax = ~(ebx - 1); asm("sbb eax,eax"); eax = eax + -11; } else { eax = -10; } (save)eax; edi = *__imp__GetStdHandle(); if(edi == -1) { goto L10002a1d; } (save)edi; eax = *__imp__GetFileType(); if(eax == 0) { goto L10002a1d; } eax = eax & 255; *esi = edi; if(eax == 2) { goto L10002a1d; } if(eax == 3) { *(esi + 4) = *(esi + 4) | 8; goto L10002a32; L10002a1d: *(esi + 4) = *(esi + 4) | 64; } } L10002a32: ebx = ebx + 1; } while(ebx < 3); return(*__imp__SetHandleCount( *L1000C640)); } /* Procedure: 0x10002A49 - 0x10002A9C * Argument size: 0 * Local size: 0 * Save regs size: 12 */ L10002A49() { /* unknown */ void ebx; /* unknown */ void esi; /* unknown */ void edi; esi = 268485952; do { eax = *esi; if(eax != 0) { edi = eax; if(edi < eax + 1152) { ebx = edi + 12; do { if(*(ebx - 4) != 0) { (save)ebx; *__imp__DeleteCriticalSection(); } eax = *esi; edi = edi + 36; eax = eax + 1152; ebx = ebx + 36; } while(edi < eax); } eax = L10003BDD( *esi); *esi = 0; } esi = esi + 4; } while(esi < 268486208); } /* Procedure: 0x10002A9D - 0x10002B55 * Argument size: 0 * Local size: 0 * Save regs size: 4 */ L10002A9D() { /* unknown */ void ebx; ebx = 0; (save)esi; (save)edi; if(*L1000C648 == 0) { L100042C8(); } esi = *L1000AF6C; for(edi = 0; 1; esi = esi + L10003770(esi) + 1) { al = *esi; if(al == bl) { break; } if(al != 61) { edi = edi + 1; } } esi = L10003CC6(edi * 4 + 4); *L1000AF9C = esi; if(esi == ebx) { L10001C8E(9); } edi = *L1000AF6C; if(*edi != bl) { (save)ebp; do { ebp = L10003770(edi) + 1; if(*edi != 61) { eax = L10003CC6(ebp); *esi = eax; if(eax == ebx) { L10001C8E(9); } (save)edi; L10003E00( *esi); esi = esi + 4; (restore)ecx; } edi = edi + ebp; } while(*edi != bl); (restore)ebp; } *L1000AF6C = ebx; *esi = ebx; (restore)edi; (restore)esi; *L1000C644 = 1; return(L10003BDD( *L1000AF6C)); } /* Procedure: 0x10002B56 - 0x10002BEE * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10002B56() { (save)ecx; (save)ecx; (save)ebx; ebx = 0; (save)esi; (save)edi; if(*L1000C648 == 0) { L100042C8(); } esi = 0x1000afc0; (save)260; (save)0x1000afc0; (save)ebx; *__imp__GetModuleFileNameA(); eax = *L1000C658; *L1000AFAC = esi; edi = esi; if(*eax != bl) { edi = eax; } (save)ebp - 8; (save)ebp - 4; (save)ebx; (save)ebx; (save)edi; L10002BEF(); eax = *(ebp - 8); (save)eax + *(ebp - 4) * 4; esi = L10003CC6(); esp = esp + 24; if(esi == ebx) { L10001C8E(8); } L10002BEF(edi, esi, esi + *(ebp - 4) * 4, ebp - 4, ebp - 8); eax = *(ebp - 4) - 1; *L1000AF94 = esi; (restore)edi; (restore)esi; *L1000AF90 = eax; (restore)ebx; } /* Procedure: 0x10002BEF - 0x10002DA2 * Argument size: 20 * Local size: 0 * Save regs size: 0 */ L10002BEF(A8, Ac, A10, A14, A18) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; /* unknown */ void A14; /* unknown */ void A18; { ecx = A18; (save)ebx; (save)esi; *ecx = 0; esi = A10; (save)edi; edi = Ac; *A14 = 1; A14 = A8; if(edi != 0) { *edi = esi; edi = edi + 4; Ac = edi; } if(*A14 == 34) { while(1) { dl = *(A14 + 1); A14 = A14 + 1; if(dl == 34 || dl == 0) { break; } if(!( *((dl & 255) + 268481537) & 4)) { *ecx = *ecx + 1; if(esi != 0) { *esi = *A14; esi = esi + 1; A14 = A14 + 1; } } *ecx = *ecx + 1; if(esi == 0) { continue; } *esi = *A14; esi = esi + 1; } *ecx = *ecx + 1; if(esi != 0) { *esi = 0; esi = esi + 1; } if(*A14 == 34) { A14 = A14 + 1; } } else { do { *ecx = *ecx + 1; if(esi != 0) { *esi = *A14; esi = esi + 1; } dl = *A14; A14 = A14 + 1; if(!( *((dl & 255) + 268481537) & 4)) { *ecx = *ecx + 1; if(esi != 0) { bl = *A14; *esi = bl; esi = esi + 1; } A14 = A14 + 1; } if(dl == 32) { break; } if(dl == 0) { goto L10002c9a; } } while(dl != 9); if(dl == 0) { L10002c9a: A14 = A14 - 1; } else { if(esi != 0) { *(esi - 1) = 0; } } } for(A18 = 0; *A14 != 0; *ecx = *ecx + 1) { while(1) { dl = *A14; if(dl != 32 && dl != 9) { break; } A14 = A14 + 1; } if(*A14 == 0) { break; } if(edi != 0) { *edi = esi; edi = edi + 4; Ac = edi; } for(*A14 = *A14 + 1; 1; A14 = A14 + 1) { A8 = 1; for(ebx = 0; *A14 == 92; ebx = ebx + 1) { A14 = A14 + 1; } if(*A14 == 34) { if(!(bl & 1)) { edi = 0; if(A18 != 0) { *(A14 + 1) :: 34; if(!(edx = A14 + 1)) { goto L10002d07; } } A8 = edi; goto L10002d0e; L10002d07: A14 = edx; L10002d0e: edi = Ac; A18 = 0 & 255; } ebx = ebx >> 1; } edx = ebx; ebx = ebx - 1; if(edx != 0) { ebx = ebx + 1; do { if(esi != 0) { *esi = 92; esi = esi + 1; } *ecx = *ecx + 1; } while(ebx = ebx - 1); } dl = *A14; if(dl == 0 || A18 == 0 && (dl == 32 || dl == 9)) { break; } if(A8 != 0) { if(esi == 0) { if(!( *((dl & 255) + 268481537) & 4)) { A14 = A14 + 1; *ecx = *ecx + 1; } } else { if(!( *((dl & 255) + 268481537) & 4)) { *esi = dl; esi = esi + 1; A14 = A14 + 1; *ecx = *ecx + 1; } *esi = *A14; esi = esi + 1; } *ecx = *ecx + 1; } } if(esi != 0) { *esi = 0; esi = esi + 1; } } if(edi != 0) { *edi = 0; } (restore)edi; (restore)esi; (restore)ebx; *A14 = *A14 + 1; } stack space not deallocated on return /* Procedure: 0x10002DA3 - 0x10002ED4 * Argument size: 40 * Local size: 0 * Save regs size: 8 */ L10002DA3(A18, A2c, A3c) /* unknown */ void A18; /* unknown */ void A2c; /* unknown */ void A3c; { /* unknown */ void ecx; /* unknown */ void ecx; eax = *L1000B0C4; (save)A18; (save)ebp; ebp = __imp__GetEnvironmentStringsW; (save)esi; (save)edi; A18 = 0; esi = 0; edi = 0; if(eax == 0) { esi = *__imp__GetEnvironmentStringsW(); if(esi != A18) { *L1000B0C4 = 1; goto L10002dfa; } edi = *__imp__GetEnvironmentStrings(); if(edi == A18) { goto L10002ecc; } *L1000B0C4 = 2; } else { if(eax == 1) { L10002dfa: if(esi == A18) { esi = *ebp(); if(esi == A18) { goto L10002ecc; } } eax = esi; if(*esi != bx) { L10002e11: do { eax = eax + 1 + 1; if(*eax != bx) { goto L10002e11; } eax = eax + 1 + 1; } while(*eax != bx); } eax = eax - esi; edi = __imp__WideCharToMultiByte; (save)A18; (save)A18; eax = (eax >> 1) + 1; (save)A18; (save)A18; (save)eax; (save)esi; (save)A18; (save)A18; A3c = eax; ebp = *__imp__WideCharToMultiByte(); if(ebp != A18) { eax = L10003CC6(ebp); A18 = eax; if(eax != A18) { (save)A18; (save)A18; (save)ebp; (save)eax; (save)A2c; (save)esi; (save)A18; (save)A18; if(*edi() == 0) { L10003BDD(A18); A18 = A18; } } } (save)esi; *__imp__FreeEnvironmentStringsW(); eax = A18; goto L10002ece; } if(eax != 2) { goto L10002ecc; } } if(edi == A18) { edi = *__imp__GetEnvironmentStrings(); if(edi == A18) { goto L10002ecc; } } eax = edi; if(*edi != bl) { L10002e96: do { eax = eax + 1; if(*eax != bl) { goto L10002e96; } eax = eax + 1; } while(*eax != bl); } ebp = eax - edi + 1; esi = L10003CC6(ebp); if(esi == A18) { esi = 0; } else { L100042F0(esi, edi, ebp); } *__imp__FreeEnvironmentStringsA(edi); eax = esi; goto L10002ece; L10002ecc: eax = 0; L10002ece: (restore)edi; (restore)esi; (restore)ebp; (restore)A18; } stack space not deallocated on return /* Procedure: 0x10002ED5 - 0x10002F01 * Argument size: 4 * Local size: 0 * Save regs size: 4 */ L10002ED5(Ac) /* unknown */ void Ac; { *Ac = 0; eax = *__imp__GetModuleHandleA(0); if(*eax == 23117) { ecx = *(eax + 60); if(ecx != 0) { eax = eax + ecx; *Ac = *(eax + 26); *(Ac + 1) = *(eax + 27); } } } /* Procedure: 0x10002F02 - 0x10003049 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10002F02() { eax = 4652; L100049A0(); (save)ebx; (save)ebp + -152; *(ebp + -152) = 148; if(*__imp__GetVersionExA() != 0) { if(*(ebp + -136) != 2 || *(ebp + -148) < 5) { goto L10002f45; } eax = 1; } else { L10002f45: (save)4240; (save)ebp + -4652; (save)268464532; if(*__imp__GetEnvironmentVariableA() == 0) { goto L10003034; } ebx = 0; ecx = ebp + -4652; if(*(ebp + -4652) != 0) { do { al = *ecx; if(al >= 97 && al <= 122) { *ecx = al - 32; } ecx = ecx + 1; } while(*ecx != bl); } if(L10001AE0(268464508, ebp + -4652, 22) == 0) { eax = ebp + -4652; } else { (save)260; (save)ebp + -412; (save)ebx; *__imp__GetModuleFileNameA(); *(ebp + -412) :: bl; if(!(ecx = ebp + -412)) { do { al = *ecx; if(al >= 97 && al <= 122) { *ecx = al - 32; } ecx = ecx + 1; } while(*ecx != bl); } eax = L10004920(ebp + -4652, ebp + -412); } if(eax == ebx) { goto L10003034; } (save)44; eax = L10004860(eax); (restore)ecx; if(eax == ebx) { goto L10003034; } eax = eax + 1; ecx = eax; if(*eax != bl) { do { if(*ecx != 59) { ecx = ecx + 1; } else { *ecx = bl; } } while(*ecx != bl); } eax = L10004625(eax, ebx, 10); if(eax != 2 && eax != 3 && eax != 1) { L10003034: eax = L10002ED5(ebp - 4); *(ebp - 4) :: 6; asm("sbb eax,eax"); eax = eax + 3; } } (restore)ebx; } stack space not deallocated on return /* Procedure: 0x1000304A - 0x100030A6 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L1000304A(A8) /* unknown */ void A8; { (save)0; (save)4096; 0 = 0; (save)0; eax = *__imp__HeapCreate(); *L1000C524 = eax; if(eax != 0) { eax = L10002F02(); *L1000C528 = eax; if(eax == 3) { eax = L100049CF(1016); } else { if(eax != 2) { goto L100030a3; } eax = L10005220(); } if(eax != 0) { goto L100030a3; } *__imp__HeapDestroy( *L1000C524); } return(0); L100030a3: return(1); } stack space not deallocated on return /* Procedure: 0x100030A7 - 0x1000314E * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L100030A7() { eax = *L1000C528; (save)esi; (save)edi; if(eax == 3) { (save)ebx; ebx = 0; (save)ebp; ebp = __imp__HeapFree; if(*L1000B2D8 > 0) { edi = __imp__VirtualFree; esi = *L1000B2DC + 12; do { (save)16384; (save)1048576; (save) *esi; *edi(); (save)32768; (save)0; (save) *esi; *edi(); (save) *(esi + 4); (save)0; (save) *L1000C524; *ebp(); esi = esi + 20; ebx = ebx + 1; } while(ebx < *L1000B2D8); } (save) *L1000B2DC; (save)0; (save) *L1000C524; *ebp(); (restore)ebp; (restore)ebx; } else { if(eax == 2) { edi = 0x10008a50; esi = 0x10008a50; do { eax = *(esi + 16); if(eax != 0) { (save)32768; (save)0; (save)eax; *__imp__VirtualFree(); } esi = *esi; } while(esi != edi); } } (restore)edi; (restore)esi; return(*__imp__HeapDestroy( *L1000C524)); } /* DEST BLOCK NOT FOUND: 1000315b -> 10003187 */ /* DEST BLOCK NOT FOUND: 10003164 -> 10003187 */ /* Procedure: 0x1000314F - 0x10003187 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L1000314F() { eax = *L1000AF74; if(eax == 1 || eax == 0 && *L1000AF78 == 1) { L10003188(252); eax = *L1000B0C8; if(eax != 0) { *eax(); } eax = L10003188(255); } } /* Procedure: 0x10003188 - 0x100032DA * Argument size: -416 * Local size: 420 * Save regs size: 0 */ L10003188(A8) /* unknown */ void A8; { /* unknown */ void Vfffffe5c; /* unknown */ void Vffffff60; edx = A8; ecx = 0; eax = 0x100082b8; do { if(edx == *eax) { break; } eax = eax + 8; ecx = ecx + 1; } while(eax < 0x10008348); (save)esi; esi = ecx << 3; if(edx == *(esi + 0x100082b8)) { eax = *L1000AF74; if(eax == 1 || eax == 0 && *L1000AF78 == 1) { goto L100032b2; } if(edx != 252) { (save)260; (save) & Vfffffe5c; (save)0; if(*__imp__GetModuleFileNameA() == 0) { L10003E00( & Vfffffe5c, 268465284); } (save)edi; edi = & Vfffffe5c; if(L10003770( & Vfffffe5c) + 1 > 60) { (save) & Vfffffe5c; (save)3; edi = L10003770() + & Vfffffe5c - 59; (save)268465280; (save)edi; L100058D0(); esp = esp + 16; } (save)268465252; (save) & Vffffff60; L10003E00(); (save)edi; (save) & Vffffff60; L10003E10(); (save)268465248; (save) & Vffffff60; L10003E10(); (save) *(esi + 0x100082bc); (save) & Vffffff60; L10003E10(); (save)73744; (save)268465208; (save) & Vffffff60; eax = L10005844(); esp = esp + 44; (restore)edi; goto L100032d8; L100032b2: esi = esi + 0x100082bc; eax = *__imp__WriteFile( *__imp__GetStdHandle(), -12, *esi, L10003770( *esi), & A8, 0); } } L100032d8: (restore)esi; } /* Procedure: 0x100032DB - 0x1000333F * Argument size: 12 * Local size: 0 * Save regs size: 4 */ L100032DB(A8, Ac, A10) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; { if(A8 < *L1000C640) { ecx = A8; eax = A8; ecx = ecx >> 5; eax = eax & 31; ecx = *(ecx * 4 + 268485952); if(!( *(ecx + (eax + eax * 8) * 4 + 4) & 1)) { (save)edi; L10005B14(); edi = L10003340(); L10005B73(A8, A8, Ac, A10, A8); eax = edi; (restore)edi; return; } } *(L10005A41()) = 9; eax = L10005A4A(); *eax = 0; return(eax | -1); } /* Procedure: 0x10003340 - 0x100033B2 * Argument size: 12 * Local size: 0 * Save regs size: 4 */ L10003340(A8, Ac, A10) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; { /* unknown */ void esi; esi = A8; (save)edi; eax = L10005AD2(esi); if(eax == -1) { eax = L10005A41(); *eax = 9; } else { (save)A10; (save)0; (save)Ac; (save)eax; edi = *__imp__SetFilePointer(); eax = edi == -1 ? *__imp__GetLastError() : 0; if(eax == 0) { goto L10003391; } eax = L100059CE(eax); } eax = eax | -1; goto L100033b0; L10003391: ecx = esi; esi = esi & 31; ecx = ecx >> 5; eax = esi; ecx = *(ecx * 4 + 268485952); eax = eax + eax * 8; *(ecx + eax * 4 + 4) = *(ecx + eax * 4 + 4) & 253; eax = ecx + eax * 4 + 4; eax = edi; L100033b0: (restore)edi; } /* Procedure: 0x100033B3 - 0x10003417 * Argument size: 12 * Local size: 0 * Save regs size: 4 */ L100033B3(A8, Ac, A10) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; { if(A8 < *L1000C640) { ecx = A8; eax = A8; ecx = ecx >> 5; eax = eax & 31; ecx = *(ecx * 4 + 268485952); if(!( *(ecx + (eax + eax * 8) * 4 + 4) & 1)) { (save)edi; L10005B14(); edi = L10003418(); L10005B73(A8, A8, Ac, A10, A8); eax = edi; (restore)edi; return; } } *(L10005A41()) = 9; eax = L10005A4A(); *eax = 0; return(eax | -1); } /* Procedure: 0x10003418 - 0x100035A2 * Argument size: 12 * Local size: 1044 * Save regs size: 12 */ L10003418(A8, Ac, A10) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; { /* unknown */ void ebx; /* unknown */ void esi; /* unknown */ void edi; /* unknown */ void Vfffffbec; /* unknown */ void Vfffffff0; /* unknown */ void Vfffffff4; /* unknown */ void Vfffffff8; /* unknown */ void Vfffffffc; edi = 0; Vfffffff8 = 0; Vfffffff0 = 0; if(A10 == 0) { L10003431: eax = 0; } else { ebx = (A8 >> 5) * 4 + 268485952; eax = *ebx; esi = (A8 & 31) + (A8 & 31) * 8 << 2; if(!( *(eax + esi + 4) & 32)) { L10003340(A8, edi, 2); } eax = *ebx + esi; if(!( *(eax + 4) & 128)) { Vfffffffc = Ac; A8 = edi; if(A10 <= edi) { goto L10003572; } do { eax = & Vfffffbec; do { if(Vfffffffc - Ac >= A10) { break; } ecx = Vfffffffc; Vfffffffc = Vfffffffc + 1; cl = *ecx; if(cl == 10) { Vfffffff0 = Vfffffff0 + 1; *eax = 13; eax = eax + 1; } *eax = cl; eax = eax + 1; ecx = eax; } while(ecx - & Vfffffbec < 1024); edi = eax; edi = edi - & Vfffffbec; (save)0; (save) & Vfffffff4; (save)edi; (save) & Vfffffbec; (save) *( *ebx + esi); if(*__imp__WriteFile() == 0) { goto L1000352c; } eax = Vfffffff4; Vfffffff8 = Vfffffff8 + eax; } while(eax >= edi && Vfffffffc - Ac < A10); L100034fe: edi = 0; L10003500: eax = Vfffffff8; if(eax != edi) { goto L1000359b; } if(A8 == edi) { goto L10003572; } esi = 5; if(A8 != 5) { goto L10003564; } *(L10005A41()) = 9; eax = L10005A4A(); *eax = esi; goto L1000356d; L1000352c: A8 = *__imp__GetLastError(); goto L100034fe; } (save)edi; (save) & Vfffffff4; (save)A10; (save)Ac; (save) *eax; if(*__imp__WriteFile() != 0) { A8 = edi; Vfffffff8 = Vfffffff4; goto L10003500; } A8 = *__imp__GetLastError(); goto L10003500; L10003564: eax = L100059CE(A8); L1000356d: eax = eax | -1; goto L1000359e; L10003572: if(!( *( *ebx + esi + 4) & 64) && *Ac == 26) { goto L10003431; } *(L10005A41()) = 28; eax = L10005A4A(); *eax = edi; goto L1000356d; L1000359b: eax = eax - Vfffffff0; } L1000359e: } /* Procedure: 0x100035A3 - 0x100035E6 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L100035A3(A4) /* unknown */ void A4; { *L1000B0CC = *L1000B0CC + 1; eax = L10003CC6(4096); *(A4 + 8) = eax; if(eax != 0) { *(A4 + 12) = *(A4 + 12) | 8; *(A4 + 24) = 4096; } else { *(A4 + 12) = *(A4 + 12) | 4; *(A4 + 8) = A4 + 20; *(A4 + 24) = 2; } eax = *(A4 + 8); *(A4 + 4) = 0; *A4 = eax; return(*A4); } /* Procedure: 0x100035E7 - 0x1000360F * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L100035E7(A4) /* unknown */ void A4; { eax = A4; if(eax >= *L1000C640) { return(0); } ecx = eax; eax = eax & 31; ecx = ecx >> 5; eax = eax + eax * 8; return(*( *(ecx * 4 + 268485952) + eax * 4 + 4) & 64); } /* Procedure: 0x10003610 - 0x100036B7 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10003610() { eax = *L1000C520; (save)esi; (save)20; (restore)esi; if(eax == 0) { eax = 512; } else { if(eax >= esi) { goto L1000362f; } eax = esi; } *L1000C520 = eax; L1000362f: (save)4; eax = L10003AA0(eax); *L1000B508 = eax; (restore)ecx; if(*L1000B508 == 0) { (save)4; *L1000C520 = esi; eax = L10003AA0(esi); *L1000B508 = eax; (restore)ecx; if(*L1000B508 == 0) { L10001C8E(26); } } ecx = 0; eax = 0x10008348; do { *(ecx + *L1000B508) = eax; eax = eax + 32; ecx = ecx + 4; } while(eax < 0x100085c8); ecx = 0; edx = 0x10008358; do { esi = ecx; eax = ecx; esi = esi >> 5; eax = eax & 31; esi = *(esi * 4 + 268485952); eax = *(esi + (eax + eax * 8) * 4); if(eax == -1 || eax == 0) { *edx = *edx | -1; } edx = edx + 32; ecx = ecx + 1; } while(edx < 0x100083b8); (restore)esi; } /* DEST BLOCK NOT FOUND: 100036c6 -> 10005b95 */ /* Procedure: 0x100036B8 - 0x100036CB * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L100036B8() { eax = L10005CA0(); if(*L1000AFB4 != 0) { goto L10005b95; } } stack space not deallocated on return /* Procedure: 0x100036CC - 0x100036FA * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L100036CC(A4) /* unknown */ void A4; { ecx = 0x10008348; if(A4 >= 0x10008348 && A4 <= 0x100085a8) { return(L10003A2A((A4 - 0x10008348 >> 5) + 28)); } return(*__imp__EnterCriticalSection(A4 + 32)); } stack space not deallocated on return /* Procedure: 0x100036FB - 0x1000371D * Argument size: 8 * Local size: 0 * Save regs size: 0 */ L100036FB(A4, A8) /* unknown */ void A4; /* unknown */ void A8; { if(A4 < 20) { return(L10003A2A(A4 + 28)); } return(*__imp__EnterCriticalSection(A8 + 32)); } stack space not deallocated on return /* Procedure: 0x1000371E - 0x1000374C * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L1000371E(A4) /* unknown */ void A4; { ecx = 0x10008348; if(A4 >= 0x10008348 && A4 <= 0x100085a8) { return(L10003A8B((A4 - 0x10008348 >> 5) + 28)); } return(*__imp__LeaveCriticalSection(A4 + 32)); } stack space not deallocated on return /* Procedure: 0x1000374D - 0x1000376F * Argument size: 8 * Local size: 0 * Save regs size: 0 */ L1000374D(A4, A8) /* unknown */ void A4; /* unknown */ void A8; { if(A4 < 20) { return(L10003A8B(A4 + 28)); } return(*__imp__LeaveCriticalSection(A8 + 32)); } /* Procedure: 0x10003770 - 0x100037EA * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10003770(A4) /* unknown */ void A4; { ecx = A4; if(!(ecx & 3)) { do { al = *ecx; ecx = ecx + 1; if(al == 0) { goto L100037c3; } } while(ecx & 3); } while(1) { eax = *ecx; edx = 2130640639 + eax; eax = eax ^ -1 ^ edx; ecx = ecx + 4; if(eax & -2130640640) { continue; } eax = *(ecx - 4); if(al == 0) { goto L100037e1; } if(ah == 0) { goto L100037d7; } if(eax & 16711680) { goto L100037cd; } if(eax & -16777216) { break; } } L100037c3: eax = ecx - 1; ecx = A4; return(eax - ecx); L100037cd: eax = ecx - 2; ecx = A4; return(eax - ecx); L100037d7: eax = ecx - 3; ecx = A4; return(eax - ecx); L100037e1: eax = ecx - 4; return(eax - A4); } /* Procedure: 0x100037EB - 0x10003843 * Argument size: 8 * Local size: 0 * Save regs size: 12 */ L100037EB(A8, Ac) /* unknown */ void A8; /* unknown */ void Ac; { /* unknown */ void ebx; /* unknown */ void esi; /* unknown */ void edi; esi = 268481220; (save)268481220; *__imp__InterlockedIncrement(); edi = __imp__InterlockedDecrement; ebx = 0; if(*L1000B2C0 != 0) { (save)esi; *__imp__InterlockedDecrement(); L10003A2A(19); ebx = 1; } (save)Ac; Ac = L10003844(A8); (restore)ecx; if(ebx != 0) { L10003A8B(19); } else { *edi(esi); } return(Ac); } /* Procedure: 0x10003844 - 0x100038AF * Argument size: 8 * Local size: 0 * Save regs size: 0 */ L10003844(A8, Ac) /* unknown */ void A8; /* unknown */ void Ac; { eax = A8; if(eax == 0) { return; } if(*L1000B158 == 0) { if(Ac > 255) { goto L1000389d; } (save)1; *eax = cl; (restore)eax; return; } A8 = 0; (save) & A8; (save)0; (save) *L1000ACF4; (save)eax; (save)1; (save) & Ac; (save)544; (save) *L1000B168; eax = *__imp__WideCharToMultiByte(); if(eax == 0 || A8 != 0) { L1000389d: eax = L10005A41(); *eax = 42; eax = eax | -1; } return; asm("int3"); asm("int3"); asm("int3"); } /* Procedure: 0x100038B0 - 0x1000391F * Argument size: 16 * Local size: 0 * Save regs size: 8 */ L100038B0(Ac, A10, A14, A18) /* unknown */ void Ac; /* unknown */ void A10; /* unknown */ void A14; /* unknown */ void A18; { /* unknown */ void ebx; /* unknown */ void esi; eax = A18; if(eax == 0) { edx = 0; ecx = A14 / A14; edx = ecx % ecx; eax = Ac; edx = ecx / ecx % ecx / ecx; edx = A10; } else { ecx = eax; ebx = A14; edx = A10; eax = Ac; do { ecx = ecx >> 1; asm("rcr ebx,1"); edx = edx >> 1; asm("rcr eax,1"); } while(ecx != 0); edx = ebx / ebx % ebx / ebx; esi = eax; asm("mul dword [esp+0x18]"); ecx = eax; eax = A14; asm("mul esi"); if(!(edx = edx + ecx) && edx <= A10) { < ? L1000390f : ; if(eax <= Ac) { goto L1000390f; } } esi = esi - 1; L1000390f: edx = 0; eax = esi; } return; asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); } /* Procedure: 0x10003920 - 0x10003994 * Argument size: 16 * Local size: 0 * Save regs size: 4 */ L10003920(A8, Ac, A10, A14) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; /* unknown */ void A14; { /* unknown */ void ebx; eax = A14; if(eax == 0) { eax = Ac; edx = 0; ecx = A10 / A10; edx = ecx % ecx; eax = A8; eax = ecx / ecx % ecx / ecx; edx = 0; } else { ecx = eax; ebx = A10; edx = Ac; eax = A8; do { ecx = ecx >> 1; asm("rcr ebx,1"); edx = edx >> 1; asm("rcr eax,1"); } while(ecx != 0); edx = ebx / ebx % ebx / ebx; ecx = eax; asm("mul dword [esp+0x14]"); asm("xchg eax,ecx"); asm("mul dword [esp+0x10]"); if(!(edx = edx + ecx) && edx <= Ac) { < ? L10003982 : ; if(eax <= A8) { goto L10003982; } } eax = eax - A10; asm("sbb edx,[esp+0x14]"); L10003982: eax = eax - A8; asm("sbb edx,[esp+0xc]"); edx = ~edx; eax = ~eax; asm("sbb edx,+0x0"); } } stack space not deallocated on return /* Procedure: 0x10003995 - 0x100039BD * Argument size: 0 * Local size: 0 * Save regs size: 4 */ L10003995() { /* unknown */ void esi; *__imp__InitializeCriticalSection(); *__imp__InitializeCriticalSection(); *__imp__InitializeCriticalSection(); return(*__imp__InitializeCriticalSection( *L10008804, *L10008824, *L10008834, *L10008844)); } stack space not deallocated on return /* Procedure: 0x100039BE - 0x10003A29 * Argument size: 0 * Local size: 0 * Save regs size: 8 */ L100039BE() { /* unknown */ void esi; /* unknown */ void edi; edi = __imp__DeleteCriticalSection; esi = 0x10008800; do { eax = *esi; if(eax != 0 && esi != 0x10008844 && esi != 0x10008834 && esi != 0x10008824 && esi != 0x10008804) { (save)eax; *edi(); L10003BDD( *esi); } esi = esi + 4; } while(esi < 0x100088c0); *edi(); *edi(); *edi(); return(*edi( *L10008804, *L10008844, *L10008834, *L10008824)); } /* Procedure: 0x10003A2A - 0x10003A8A * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10003A2A(A8) /* unknown */ void A8; { eax = A8; (save)esi; *(eax * 4 + 0x10008800) :: 0; if(!(esi = eax * 4 + 0x10008800)) { (save)edi; edi = L10003CC6(24); if(edi == 0) { L10001C8E(17); } L10003A2A(17); (save)edi; if(*esi == 0) { *__imp__InitializeCriticalSection(); *esi = edi; } else { L10003BDD(); (restore)ecx; } L10003A8B(17); (restore)edi; } eax = *__imp__EnterCriticalSection( *esi); (restore)esi; } /* Procedure: 0x10003A8B - 0x10003A9F * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10003A8B(A8) /* unknown */ void A8; { return(*__imp__LeaveCriticalSection( *(A8 * 4 + 0x10008800))); } /* DEST BLOCK NOT FOUND: 10003af1 -> 10003b9f */ /* DEST BLOCK NOT FOUND: 10003b8b -> 10003bcb */ /* Procedure: 0x10003AA0 - 0x10003B38 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10003AA0() { (save)ebp; ebp = esp; (save)-1; (save)268465312; (save)0x10005ed0; (save) *%fs:0x0]; *%fs:0x0] = esp; esp = esp - 24; (save)ebx; (save)esi; (save)edi; esi = *(ebp + 8); *(ebp + 12) = *(ebp + 12) * esi; *(ebp + 12) = esi; *(ebp - 28) = esi; if(esi <= -32) { ebx = 0; if(esi == 0) { esi = 1; } esi = esi + 15 & -16; *(ebp + 12) = esi; } else { ebx = 0; } *(ebp - 32) = ebx; if(esi > -32) { goto L10003b9f; } if(*L1000C528 != 3) { goto L10003b42; } edi = *(ebp - 28); if(edi > *L1000B2E0) { goto L10003b88; } L10003A2A(9); *(ebp - 4) = ebx; *(ebp - 32) = L10004D6B(edi); *(ebp - 4) = *(ebp - 4) | -1; L10003B39(); if(*(ebp - 32) == ebx) { goto L10003b8d; } (save) *(ebp - 28); goto L10003b7c; ebx = 0; esi = *(ebp + 12); } /* DEST BLOCK NOT FOUND: 10003bb5 -> 10003aeb */ /* DEST BLOCK NOT FOUND: 10003bbb -> 10003bce */ /* Procedure: 0x10003B39 - 0x10003BC1 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10003B39() { return(L10003A8B(9)); if(eax == 2 && esi <= *L1000AA74) { L10003A2A(9); *(ebp - 4) = 1; *(ebp - 32) = L10005518(esi >> 4); *(ebp - 4) = *(ebp - 4) | -1; L10003BC2(); if(*(ebp - 32) == ebx) { goto L10003b8d; } (save)esi; (save)ebx; (save) *(ebp - 32); L10005D80(); esp = esp + 12; } if(*(ebp - 32) != ebx) { goto L10003bcb; } L10003b8d: (save)esi; (save)8; (save) *L1000C524; *(ebp - 32) = *__imp__HeapAlloc(); if(*(ebp - 32) != ebx || *L1000B174 == ebx) { goto L10003bcb; } if(L10005D56(esi) != 0) { goto L10003aeb; } goto L10003bce; ebx = 0; esi = *(ebp + 12); } stack space not deallocated on return /* Procedure: 0x10003BC2 - 0x10003BDC * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10003BC2() { return(L10003A8B(9)); eax = *(ebp - 32); *%fs:0x0] = *(ebp - 16); (restore)edi; (restore)esi; (restore)ebx; esp = ebp; (restore)ebp; } /* DEST BLOCK NOT FOUND: 10003c05 -> 10003cb7 */ /* DEST BLOCK NOT FOUND: 10003c98 -> 10003cb7 */ /* Procedure: 0x10003BDD - 0x10003C46 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10003BDD() { (save)ebp; ebp = esp; (save)-1; (save)268465336; (save)0x10005ed0; (save) *%fs:0x0]; *%fs:0x0] = esp; esp = esp - 24; (save)ebx; (save)esi; (save)edi; if(*(ebp + 8) == 0) { goto L10003cb7; } if(*L1000C528 != 3) { goto L10003c50; } L10003A2A(9); *(ebp - 4) = 0; eax = L10004A17(esi); *(ebp - 28) = eax; if(eax != 0) { L10004A42(eax, esi); } *(ebp - 4) = *(ebp - 4) | -1; L10003C47(); *(ebp - 28) :: 0; goto L10003c98; } /* DEST BLOCK NOT FOUND: 10003c98 -> 10003cb7 */ /* Procedure: 0x10003C47 - 0x10003C9E * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10003C47() { return(L10003A8B(9)); if(eax != 2) { goto L10003ca8; } L10003A2A(9); *(ebp - 4) = 1; eax = L1000547C(esi, ebp - 40, ebp - 32); *(ebp - 36) = eax; if(eax != 0) { L100054D3( *(ebp - 40), *(ebp - 32), eax); } *(ebp - 4) = *(ebp - 4) | -1; L10003C9F(); if(*(ebp - 36) != 0) { goto L10003cb7; } (save) *(ebp + 8); goto L10003ca9; } /* Procedure: 0x10003C9F - 0x10003CC5 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10003C9F() { return(L10003A8B(9)); (save)esi; eax = *__imp__HeapFree( *L1000C524, 0); *%fs:0x0] = *(ebp - 16); (restore)edi; (restore)esi; (restore)ebx; (restore)ebp; } /* Procedure: 0x10003CC6 - 0x10003CD7 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10003CC6(A4) /* unknown */ void A4; { return(L10003CD8(A4, *L1000B174)); } /* DEST BLOCK NOT FOUND: 10003ceb -> 10003d03 */ /* DEST BLOCK NOT FOUND: 10003cf1 -> 10003d03 */ /* Procedure: 0x10003CD8 - 0x10003D03 * Argument size: 8 * Local size: 0 * Save regs size: 0 */ L10003CD8(A4, A8) /* unknown */ void A4; /* unknown */ void A8; { if(A4 <= -32) { do { if(L10003D04(A4) != 0 || A8 == eax) { goto L10003d03; } } while(L10005D56(A4) != 0); } eax = 0; L10003d03: } /* DEST BLOCK NOT FOUND: 10003d66 -> 10003df1 */ /* Procedure: 0x10003D04 - 0x10003D6A * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10003D04() { (save)ebp; ebp = esp; (save)-1; (save)268465360; (save)0x10005ed0; (save) *%fs:0x0]; *%fs:0x0] = esp; esp = esp - 12; (save)ebx; (save)esi; (save)edi; if(*L1000C528 != 3) { goto L10003d74; } esi = *(ebp + 8); if(esi > *L1000B2E0) { goto L10003dd3; } L10003A2A(9); *(ebp - 4) = 0; *(ebp - 28) = L10004D6B(esi); *(ebp - 4) = *(ebp - 4) | -1; L10003D6B(); eax = *(ebp - 28); if(eax == 0) { goto L10003dd3; } goto L10003df1; } /* DEST BLOCK NOT FOUND: 10003dc2 -> 10003df1 */ /* Procedure: 0x10003D6B - 0x10003DC9 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10003D6B() { return(L10003A8B(9)); if(eax != 2) { goto L10003dd3; } eax = *(ebp + 8); esi = eax != 0 ? eax + 15 & -16 : 16; *(ebp + 8) = esi; if(esi <= *L1000AA74) { L10003A2A(9); *(ebp - 4) = 1; *(ebp - 28) = L10005518(esi >> 4); *(ebp - 4) = *(ebp - 4) | -1; L10003DCA(); if(*(ebp - 28) != 0) { goto L10003df1; } } (save)esi; goto L10003de3; esi = *(ebp + 8); } /* Procedure: 0x10003DCA - 0x10003DFF * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10003DCA() { return(L10003A8B(9)); eax = *(ebp + 8); if(eax == 0) { eax = 1; } (save)eax + 15 & 240; eax = *__imp__HeapAlloc( *L1000C524, 0); *%fs:0x0] = *(ebp - 16); (restore)edi; (restore)esi; (restore)ebx; (restore)ebp; } /* DEST BLOCK NOT FOUND: 10003e05 -> 10003e71 */ /* Procedure: 0x10003E00 - 0x10003E0F * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10003E00(A4) /* unknown */ void A4; { (save)A4; goto L10003e71; } /* Procedure: 0x10003E10 - 0x10003EEF * Argument size: 8 * Local size: 0 * Save regs size: 0 */ L10003E10(A4, A8) /* unknown */ void A4; /* unknown */ void A8; { ecx = A4; (save)edi; if(!(ecx & 3)) { do { al = *ecx; ecx = ecx + 1; if(al == 0) { goto L10003e5f; } } while(ecx & 3); } while(1) { eax = *ecx; edx = 2130640639 + eax; eax = eax ^ -1 ^ edx; ecx = ecx + 4; if(eax & -2130640640) { continue; } eax = *(ecx - 4); if(al == 0) { goto L10003e6e; } if(ah == 0) { goto L10003e69; } if(eax & 16711680) { goto L10003e64; } if(eax & -16777216) { break; } } L10003e5f: edi = ecx - 1; goto L10003e71; L10003e64: edi = ecx - 2; goto L10003e71; L10003e69: edi = ecx - 3; goto L10003e71; L10003e6e: edi = ecx - 4; L10003e71: ecx = A8; if(!(ecx & 3)) { do { dl = *ecx; ecx = ecx + 1; if(dl == 0) { goto L10003ee8; } *edi = dl; edi = edi + 1; } while(ecx & 3); } while(1) { eax = *ecx; edx = 2130640639 + eax; eax = eax ^ -1 ^ edx; edx = *ecx; ecx = ecx + 4; if(!(eax & -2130640640)) { if(dl == 0) { goto L10003ee8; } if(dh == 0) { goto L10003edf; } if(edx & 16711680) { goto L10003ed2; } if(edx & -16777216) { break; } } *edi = edx; edi = edi + 4; } *edi = edx; (restore)edi; return(A4); L10003ed2: *edi = dx; *(edi + 2) = 0; (restore)edi; return(A4); L10003edf: *edi = dx; (restore)edi; return(A4); L10003ee8: *edi = dl; (restore)edi; return(A4); } /* Procedure: 0x10003EF0 - 0x1000409C * Argument size: 4 * Local size: 24 * Save regs size: 12 */ L10003EF0(A8) /* unknown */ void A8; { /* unknown */ void ebx; /* unknown */ void esi; /* unknown */ void edi; /* unknown */ void Vffffffe8; /* unknown */ void Vffffffee; /* unknown */ void Vffffffef; /* unknown */ void Vfffffffc; L10003A2A(25); ebx = L1000409D(A8); (restore)ecx; A8 = ebx; if(ebx == *L1000B2E4) { L10003f17: esi = 0; } else { if(ebx != 0) { edx = 0; eax = 0x10008958; do { if(*eax == ebx) { goto L10003fa5; } eax = eax + 48; edx = edx + 1; } while(eax < 0x10008a48); (save) & Vffffffe8; eax = *__imp__GetCPInfo(ebx); esi = 1; if(eax == 1) { (save)64; *L1000B504 = 0; eax = 0; edi = 268481536; Vffffffe8 :: 1; asm("rep stosd"); *edi = al; *L1000B2E4 = ebx; if(!(edi = edi + 1)) { if(Vffffffee != 0) { ecx = & Vffffffef; do { dl = *ecx; if(dl == 0) { break; } eax = *(ecx - 1) & 255; for(edx = dl & 255; 1; eax = eax + 1) { if(eax > edx) { goto L1000402f; } *(eax + 268481537) = *(eax + 268481537) | 4; } goto L10003fa5; L1000402f: ecx = ecx + 1 + 1; } while(*(ecx - 1) != 0); goto L1000403b; L10003fa5: Vfffffffc = 0; ecx = 64; eax = 0; edi = 268481536; esi = edx + edx * 2; asm("rep stosd"); esi = esi << 4; *edi = al; edi = edi + 1; ebx = esi + 0x10008968; do { ecx = ebx; if(*ebx != 0) { do { dl = *(ecx + 1); if(dl == 0) { break; } eax = *ecx & 255; edi = dl & 255; if(eax <= edi) { dl = *(Vfffffffc + 0x10008950); do { *(eax + 268481537) = *(eax + 268481537) | dl; eax = eax + 1; } while(eax <= edi); } ecx = ecx + 1 + 1; } while(*ecx != 0); } Vfffffffc = Vfffffffc + 1; ebx = ebx + 8; } while(Vfffffffc < 4); eax = A8; *L1000B2FC = 1; *L1000B2E4 = eax; eax = L100040E7(eax); esi = esi + 0x1000895c; edi = 268481264; *L1000B2F0 = *esi; edi = edi + 4; esi = esi + 4; *edi = *esi; edi = edi + 4; esi = esi + 4; *L1000B504 = eax; *edi = *esi; edi = edi + 4; esi = esi + 4; goto L10004081; } L1000403b: eax = esi; do { *(eax + 268481537) = *(eax + 268481537) | 8; eax = eax + 1; } while(eax < 255); *L1000B504 = L100040E7(ebx); *L1000B2FC = esi; } else { *L1000B2FC = 0; } *L1000B2F0 = 0; *L1000B2F4 = 0; *L1000B2F8 = 0; edi = 268481276; goto L10004081; } if(*L1000B130 == 0) { goto L1000408b; } } L1000411A(); L10004081: L10004143(); goto L10003f17; L1000408b: esi = esi | -1; } L10003A8B(25); return(esi); } /* DEST BLOCK NOT FOUND: 100040ab -> 100040bd */ /* DEST BLOCK NOT FOUND: 100040b7 -> 100040bd */ /* Procedure: 0x1000409D - 0x100040B6 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L1000409D(A4) /* unknown */ void A4; { *L1000B130 = 0; if(A4 != -2) { goto L100040bd; } *L1000B130 = 1; } /* DEST BLOCK NOT FOUND: 100040c0 -> 100040d2 */ /* DEST BLOCK NOT FOUND: 100040cc -> 100040d2 */ /* Procedure: 0x100040B7 - 0x100040CB * Argument size: 0 * Local size: 0 * Save regs size: 0 */ GetOEMCP() { goto ( *__imp__GetOEMCP); if(eax != -3) { goto L100040d2; } *L1000B130 = 1; } /* DEST BLOCK NOT FOUND: 100040d5 -> 100040e6 */ /* Procedure: 0x100040CC - 0x100040E6 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ GetACP() { goto ( *__imp__GetACP); if(eax == -4) { eax = *L1000B168; *L1000B130 = 1; } } /* Procedure: 0x100040E7 - 0x10004119 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L100040E7(A4) /* unknown */ void A4; { if(!(eax = A4 - 932)) { if(!(eax = eax - 4)) { if(!(eax = eax - 13)) { if(!(eax = eax - 1)) { return(0); } return(1028); } return(1042); } return(2052); } return(1041); } /* Procedure: 0x1000411A - 0x10004142 * Argument size: 0 * Local size: 0 * Save regs size: 4 */ L1000411A() { /* unknown */ void edi; ecx = 64; eax = 0; edi = 268481536; asm("rep stosd"); *edi = al; edi = edi + 1; *L1000B2E4 = 0; *L1000B2FC = 0; *L1000B504 = 0; *L1000B2F0 = 0; *L1000B2F4 = 0; *L1000B2F8 = 0; edi = 268481276; return(0); } /* Procedure: 0x10004143 - 0x100042C7 * Argument size: -1300 * Local size: 1300 * Save regs size: 0 */ L10004143() { /* unknown */ void Vfffffaec; /* unknown */ void Vfffffcec; /* unknown */ void Vfffffdec; /* unknown */ void Vfffffeec; /* unknown */ void Vffffffec; /* unknown */ void Vfffffff2; /* unknown */ void Vfffffff3; (save)esi; (save) & Vffffffec; (save) *L1000B2E4; if(*__imp__GetCPInfo() == 1) { eax = 0; esi = 256; do { *(ebp + eax + -276) = al; eax = eax + 1; } while(eax < esi); al = Vfffffff2; Vfffffeec = 32; if(al != 0) { (save)ebx; (save)edi; edx = & Vfffffff3; do { ecx = *edx & 255; eax = al & 255; if(eax <= ecx) { ecx = ecx - eax; edi = ebp + eax + -276; ecx = ecx + 1; eax = 538976288; ebx = ecx; ecx = ecx >> 2; asm("rep stosd"); ecx = ebx & 3; asm("rep stosb"); } edx = edx + 1 + 1; al = *(edx - 1); } while(al != 0); (restore)edi; (restore)ebx; } L100061F7(); L10005FA8(); L10005FA8( *L1000B504, 512, & Vfffffeec, esi, & Vfffffcec, esi, *L1000B2E4, 0, *L1000B504, esi, & Vfffffeec, esi, & Vfffffdec, esi, *L1000B2E4, 0, 1, & Vfffffeec, esi, & Vfffffaec, *L1000B2E4, *L1000B504, 0); eax = 0; ecx = & Vfffffaec; do { dx = *ecx; if(dl & 1) { if(dl & 2) { *(eax + 268481280) = 0; goto L10004273; } *(eax + 268481537) = *(eax + 268481537) | 32; dl = *(ebp + eax + -788); } else { *(eax + 268481537) = *(eax + 268481537) | 16; dl = *(ebp + eax + -532); } *(eax + 268481280) = dl; L10004273: eax = eax + 1; ecx = ecx + 1 + 1; } while(eax < esi); } else { eax = 0; esi = 256; do { if(eax < 65 || eax > 90) { if(eax < 97 || eax > 122) { *(eax + 268481280) = 0; goto L100042c0; } *(eax + 268481537) = *(eax + 268481537) | 32; cl = al - 32; } else { *(eax + 268481537) = *(eax + 268481537) | 16; cl = al + 32; } *(eax + 268481280) = cl; L100042c0: eax = eax + 1; } while(eax < esi); } (restore)esi; } /* Procedure: 0x100042C8 - 0x100042EF * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L100042C8() { if(*L1000C648 == 0) { eax = L10003EF0(-3); *L1000C648 = 1; } return; asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); } /* DEST BLOCK NOT FOUND: 10004370 -> 1247cb77 */ /* Procedure: 0x100042F0 - 0x10004624 * Argument size: 19 * Local size: 0 * Save regs size: 8 */ L100042F0(A1, A8, Ac, A10) /* unknown */ void A1; /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; { /* unknown */ void esi; /* unknown */ void edi; esi = Ac; ecx = A10; edi = A8; eax = ecx; edx = ecx; eax = eax + esi; if(edi <= esi || edi >= eax) { if(!(edi & 3)) { ecx = ecx >> 2; edx = edx & 3; if(ecx < 8) { goto L1000434c; } asm("rep movsd"); goto *(edx * 4 + 0x10004438)[L10004448, L10004450, L1000445c, L10004470, ]goto ( *(edx * 4 + 0x10004438)); } eax = edi; edx = 3; if(!(ecx = ecx - 4)) { eax = eax & 3; ecx = ecx + eax; goto ( *(eax * 4 + 0x10004350)); } goto ( *(ecx * 4 + 0x10004448)); L1000434c: goto *(ecx * 4 + 0x100043cc)[L1000442f, L1000441c, L10004414, L1000440c, L10004404, L100043fc, L100043f4, L100043ec, ]goto ( *(ecx * 4 + 0x100043cc)); asm("pusha"); *eax = *eax + dl; *(ebx + 1) = es; asm("adc [eax+0x23100043],dh"); asm("ror dword [edx+0x8a078806],1"); esi = esi + 1; *(eax + 1183449415) = *(eax + 1183449415) + ecx; al = al + cl; goto L1247cb77; esi = esi + 3; edi = edi + 3; if(ecx < 8) { goto L1000434c; } asm("rep movsd"); goto *(edx * 4 + 0x10004438)[L10004448, L10004450, L1000445c, L10004470, ]goto ( *(edx * 4 + 0x10004438)); edx = edx & ecx; al = *esi; *edi = al; al = *(esi + 1); ecx = ecx >> 2; *(edi + 1) = al; esi = esi + 2; edi = edi + 2; if(ecx < 8) { goto L1000434c; } asm("rep movsd"); goto *(edx * 4 + 0x10004438)[L10004448, L10004450, L1000445c, L10004470, ]goto ( *(edx * 4 + 0x10004438)); edx = edx & ecx; al = *esi; *edi = al; esi = esi + 1; ecx = ecx >> 2; edi = edi + 1; if(ecx < 8) { goto L1000434c; } asm("rep movsd"); goto *(edx * 4 + 0x10004438)[L10004448, L10004450, L1000445c, L10004470, ]goto ( *(edx * 4 + 0x10004438)); eax = *(esi + ecx * 4 - 28); *(edi + ecx * 4 - 28) = eax; eax = *(esi + ecx * 4 - 24); *(edi + ecx * 4 - 24) = eax; eax = *(esi + ecx * 4 - 20); *(edi + ecx * 4 - 20) = eax; eax = *(esi + ecx * 4 - 16); *(edi + ecx * 4 - 16) = eax; eax = *(esi + ecx * 4 - 12); *(edi + ecx * 4 - 12) = eax; eax = *(esi + ecx * 4 - 8); *(edi + ecx * 4 - 8) = eax; eax = *(esi + ecx * 4 - 4); *(edi + ecx * 4 - 4) = eax; eax = ecx * 4; esi = esi + eax; edi = edi + eax; goto *(edx * 4 + 0x10004438)[L10004448, L10004450, L1000445c, L10004470, ]goto ( *(edx * 4 + 0x10004438)); return(A8); al = *esi; *edi = al; esp = ebp; return(A8); al = *esi; *edi = al; al = *(esi + 1); *(edi + 1) = al; esp = ebp; return(A8); al = *esi; *edi = al; al = *(esi + 1); *(edi + 1) = al; al = *(esi + 2); *(edi + 2) = al; esp = ebp; return(A8); } esi = ecx + esi - 4; edi = ecx + edi - 4; if(!(edi & 3)) { ecx = ecx >> 2; edx = edx & 3; if(ecx >= 8) { asm("std"); asm("rep movsd"); asm("cld"); goto *(edx * 4 + 0x100045d0)[L100045e0, L100045e8, L100045f8, L1000460c, ]goto ( *(edx * 4 + 0x100045d0)); } L100044b0: ecx = ~ecx; goto *(ecx * 4 + 0x10004580)[L100045c7, ]goto ( *(ecx * 4 + 0x10004580)); } eax = edi; edx = 3; if(ecx >= 4) { eax = eax & 3; ecx = ecx - eax; goto ( *(eax * 4 + 0x100044d8)); } goto *(ecx * 4 + 0x100045d0)[L100045e0, L100045e8, L100045f8, L1000460c, ]goto ( *(ecx * 4 + 0x100045d0)); eax = L18104525(); ebp = & A1; *eax = *eax + dl; *ebp = *ebp ^ al; asm("adc [edx+0xd1230346],cl"); *(edi + 3) = al; esi = esi - 1; ecx = ecx >> 2; edi = edi - 1; if(ecx < 8) { goto L100044b0; } asm("std"); asm("rep movsd"); asm("cld"); goto *(edx * 4 + 0x100045d0)[L100045e0, L100045e8, L100045f8, L1000460c, ]goto ( *(edx * 4 + 0x100045d0)); al = *(esi + 3); edx = edx & ecx; *(edi + 3) = al; al = *(esi + 2); ecx = ecx >> 2; *(edi + 2) = al; esi = esi - 2; edi = edi - 2; if(ecx < 8) { goto L100044b0; } asm("std"); asm("rep movsd"); asm("cld"); goto *(edx * 4 + 0x100045d0)[L100045e0, L100045e8, L100045f8, L1000460c, ]goto ( *(edx * 4 + 0x100045d0)); al = *(esi + 3); edx = edx & ecx; *(edi + 3) = al; al = *(esi + 2); *(edi + 2) = al; al = *(esi + 1); ecx = ecx >> 2; *(edi + 1) = al; esi = esi - 3; edi = edi - 3; if(ecx < 8) { goto L100044b0; } asm("std"); asm("rep movsd"); asm("cld"); goto *(edx * 4 + 0x100045d0)[L100045e0, L100045e8, L100045f8, L1000460c, ]goto ( *(edx * 4 + 0x100045d0)); *ebp & al; asm("adc [ebp+eax*2+0x45941000],cl"); *eax = *eax + dl; asm("pushf"); ebp = & A1; *eax = *eax + dl; *edi = *esi; edi = edi + 1; esi = esi + 1; ebp = & A1; *eax = *eax + dl; al = *esi; esi = esi + 1; ebp = & A1; *eax = *eax + dl; *L00000045 = *L00000045 + dl; *(edi + ecx * 4 + 28) = *(esi + ecx * 4 + 28); *(edi + ecx * 4 + 24) = *(esi + ecx * 4 + 24); *(edi + ecx * 4 + 20) = *(esi + ecx * 4 + 20); *(edi + ecx * 4 + 16) = *(esi + ecx * 4 + 16); *(edi + ecx * 4 + 12) = *(esi + ecx * 4 + 12); *(edi + ecx * 4 + 8) = *(esi + ecx * 4 + 8); *(edi + ecx * 4 + 4) = *(esi + ecx * 4 + 4); eax = ecx * 4; esi = esi + eax; edi = edi + eax; goto *(edx * 4 + 0x100045d0)[L100045e0, L100045e8, L100045f8, L1000460c, ]goto ( *(edx * 4 + 0x100045d0)); return(A8); *(edi + 3) = *(esi + 3); esp = ebp; return(A8); *(edi + 3) = *(esi + 3); *(edi + 2) = *(esi + 2); esp = ebp; return(A8); *(edi + 3) = *(esi + 3); *(edi + 2) = *(esi + 2); al = *(esi + 1); *(edi + 1) = al; esp = ebp; return(A8); } /* Procedure: 0x10004625 - 0x1000463B * Argument size: 12 * Local size: 0 * Save regs size: 0 */ L10004625(A4, A8, Ac) /* unknown */ void A4; /* unknown */ void A8; /* unknown */ void Ac; { return(L1000463C(A4, A8, Ac, 0)); } /* Procedure: 0x1000463C - 0x10004840 * Argument size: 16 * Local size: 12 * Save regs size: 4 */ L1000463C(A8, Ac, A10, A14) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; /* unknown */ void A14; { /* unknown */ void ebx; /* unknown */ void Vfffffff4; /* unknown */ void Vfffffff8; /* unknown */ void Vfffffffc; Vfffffff8 = 0; (save)esi; (save)edi; edi = A8; bl = *edi; esi = edi + 1; for(Vfffffffc = esi; 1; esi = esi + 1) { if(*L1000ACF4 <= 1) { eax = bl & 255; eax = *( *L100085E8 + eax * 2) & 8; } else { eax = L1000647B(bl & 255, 8); } if(eax == 0) { break; } bl = *esi; } Vfffffffc = esi; if(bl == 45) { A14 = A14 | 2; } else { if(bl != 43) { goto L1000469d; } } bl = *esi; esi = esi + 1; Vfffffffc = esi; L1000469d: eax = A10; if(eax >= 0) { if(eax == 1 || eax > 36) { goto L10004831; } (save)16; (restore)ecx; if(eax == 0) { if(bl != 48) { A10 = 10; goto L10004701; } al = *esi; if(al != 120 && al != 88) { A10 = 8; goto L10004701; } A10 = ecx; } if(A10 == ecx && bl == 48) { al = *esi; if(al == 120) { goto L100046f9; } if(al == 88) { L100046f9: bl = *(esi + 1); Vfffffffc = esi + 1 + 1; } } L10004701: eax = eax | -1; edx = 0; A10 = A10 / A10; edx = A10 % A10; edi = 259; for(Vfffffff4 = eax; 1; bl = *eax) { *L1000ACF4 :: 1; if(esi = bl & 255) { eax = *L100085E8; eax = *(eax + esi * 2) & 4; } else { eax = L1000647B(esi, 4); } if(eax == 0) { if(*L1000ACF4 <= 1) { eax = *L100085E8; eax = *(eax + esi * 2) & edi; } else { eax = L1000647B(esi, edi); } if(eax == 0) { break; } eax = L10006340(bl); ecx = eax - 55; } else { ecx = bl - 48; } if(ecx >= A10) { break; } esi = Vfffffff8; A14 = A14 | 8; if(esi >= Vfffffff4) { != ? 0x10004791 : ; eax = eax | -1; edx = 0; A10 = A10 / A10; if(ecx > A10 % A10) { goto L10004791; } } A10 = A10 * esi; Vfffffff8 = esi + ecx; goto L100047a0; L10004791: A14 = A14 | 4; L100047a0: eax = Vfffffffc; Vfffffffc = Vfffffffc + 1; } eax = A14; Vfffffffc = Vfffffffc - 1; ebx = Ac; if(!(al & 8)) { if(ebx != 0) { Vfffffffc = A8; } Vfffffff8 = 0; } else { esi = 2147483647; if(al & 4) { goto L100047ee; } if(!(al & 1)) { if(!(eax = eax & 2) && Vfffffff8 > -2147483648) { goto L100047ee; } if(eax == 0 && Vfffffff8 > esi) { L100047ee: *(L10005A41()) = 34; if(!(A14 & 1)) { Vfffffff8 = Vfffffff8 | -1; } else { al = ~(A14 & 2); asm("sbb eax,eax"); Vfffffff8 = ~eax + esi; } } } } if(ebx != 0) { *ebx = Vfffffffc; } if(!(A14 & 2)) { Vfffffff8 = ~Vfffffff8; } eax = Vfffffff8; } else { L10004831: eax = Ac; if(eax != 0) { *eax = edi; } eax = 0; } (restore)edi; (restore)esi; } /* DEST BLOCK NOT FOUND: 1000487d -> 10004850 */ stack space not deallocated on return /* Procedure: 0x10004860 - 0x1000491F * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10004860(A8) /* unknown */ void A8; { eax = A8 & 255; (save)ebx; ebx = eax; eax = eax << 8; edx = A8; if(!(edx & 3)) { L10004878: cl = *edx; edx = edx + 1; if(cl == bl) { goto L10004850; } if(cl == 0) { goto L100048d4; } if(edx & 3) { goto L10004878; } } ebx = ebx | eax; (save)edi; eax = ebx; (save)esi; ebx = ebx << 16 | eax; L10004896: ecx = *edx; eax = ecx; ecx = ecx ^ ebx; esi = 2130640639 + eax; edi = 2130640639 + ecx; ecx = ecx ^ -1; eax = eax ^ -1; ecx = ecx ^ edi; eax = eax ^ esi; edx = edx + 4; if(!(ecx = ecx & -2130640640)) { if((eax = eax & -2130640640) || !(eax = eax & 16843008) && (esi = esi & -2147483648)) { goto L10004896; } L100048d2: (restore)esi; (restore)edi; L100048d4: (restore)ebx; return(0); } eax = *(edx - 4); if(al != bl) { if(al == 0) { goto L100048d2; } if(ah != bl) { if(ah == 0) { goto L100048d2; } eax = eax >> 16; if(al != bl) { if(al == 0) { goto L100048d2; } if(ah != bl) { if(ah == 0) { goto L100048d2; } goto L10004896; } (restore)esi; (restore)edi; eax = edx - 1; (restore)ebx; return; } eax = edx - 2; (restore)esi; (restore)edi; (restore)ebx; return; } eax = edx - 3; (restore)esi; (restore)edi; (restore)ebx; return; } eax = edx - 4; (restore)esi; (restore)edi; (restore)ebx; return; asm("int3"); asm("int3"); asm("int3"); asm("int3"); } /* DEST BLOCK NOT FOUND: 1000498e -> 10004866 */ /* Procedure: 0x10004920 - 0x1000499F * Argument size: 8 * Local size: 0 * Save regs size: 0 */ L10004920(A4, A8) /* unknown */ void A4; /* unknown */ void A8; { ecx = A8; (save)edi; (save)ebx; (save)esi; dl = *ecx; edi = A4; if(dl != 0) { dh = *(ecx + 1); if(dh != 0) { L10004938: esi = edi; ecx = A8; al = *edi; esi = esi + 1; if(al != dl) { if(al == 0) { goto L10004954; } L10004949: al = *esi; esi = esi + 1; L1000494c: if(al != dl) { if(al != 0) { goto L10004949; } L10004954: (restore)esi; (restore)ebx; (restore)edi; return(0); } } al = *esi; esi = esi + 1; if(al != dh) { goto L1000494c; } edi = esi - 1; L10004964: ah = *(ecx + 2); if(ah == 0) { goto L10004993; } al = *esi; esi = esi + 2; if(al != ah) { goto L10004938; } al = *(ecx + 3); if(al == 0) { goto L10004993; } ah = *(esi - 1); ecx = ecx + 2; if(al == ah) { goto L10004964; } goto L10004938; } (restore)esi; (restore)ebx; (restore)edi; eax = dl & 255; goto L10004866; L10004993: eax = edi - 1; (restore)esi; (restore)ebx; (restore)edi; return; } eax = edi; (restore)esi; (restore)ebx; (restore)edi; } stack space not deallocated on return /* Procedure: 0x100049A0 - 0x100049CE * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L100049A0(A8) /* unknown */ void A8; { (save)ecx; ecx = & A8; do { ecx = ecx - 4096; eax = eax - 4096; *ecx & eax; } while(eax >= 4096); ecx = ecx - eax; eax = esp; *ecx & eax; esp = ecx; ecx = *eax; eax = *(eax + 4); (save)eax; } stack space not deallocated on return /* Procedure: 0x100049CF - 0x10004A16 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L100049CF(A4) /* unknown */ void A4; { eax = *__imp__HeapAlloc( *L1000C524, 0, 320); *L1000B2DC = eax; if(eax == 0) { return; } *L1000B2D4 = 0; *L1000B2D8 = 0; (save)1; *L1000B2D0 = eax; *L1000B2E0 = A4; *L1000B2C8 = 16; (restore)eax; } /* DEST BLOCK NOT FOUND: 10004a38 -> 10004a41 */ /* Procedure: 0x10004A17 - 0x10004A41 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10004A17(A4) /* unknown */ void A4; { eax = *L1000B2DC; for(ecx = eax + ( *L1000B2D8 + *L1000B2D8 * 4) * 4; eax < ecx; eax = eax + 20) { if(A4 - *(eax + 12) < 1048576) { goto L10004a41; } } eax = 0; L10004a41: } /* Procedure: 0x10004A42 - 0x10004D6A * Argument size: -5 * Local size: 16 * Save regs size: 0 */ L10004A42(A8, Ac, Af) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void Af; { /* unknown */ void Vfffffff0; /* unknown */ void Vfffffff4; /* unknown */ void Vfffffff8; /* unknown */ void Vfffffffc; ecx = A8; (save)ebx; (save)esi; esi = Ac; eax = *(ecx + 16); (save)edi; edi = esi; esi = esi + -4; edi = edi - *(ecx + 12) >> 15; ecx = edi; 516 = ecx * ecx; Vfffffff0 = ecx + eax + 324; ecx = *esi - 1; Vfffffffc = ecx; if(!(cl & 1)) { edx = *(ecx + esi); ebx = ecx + esi; Vfffffff4 = edx; Vfffffff8 = *(esi - 4); Ac = ebx; if(!(Vfffffff4 & 1)) { edx = (edx >> 4) - 1; if(edx > 63) { edx = 63; } if(*(ebx + 4) == *(ebx + 8)) { if(edx < 32) { ecx = edx; ebx = -2147483648 >> cl; ecx = edx + eax + 4; ebx = !ebx; *(eax + edi * 4 + 68) = *(eax + edi * 4 + 68) & ebx; if(!( *ecx = *ecx - 1)) { *A8 = *A8 & ebx; } } else { ecx = edx - 32; ebx = -2147483648 >> cl; ecx = edx + eax + 4; ebx = !ebx; *(eax + edi * 4 + 196) = *(eax + edi * 4 + 196) & ebx; if(!( *ecx = *ecx - 1)) { *(A8 + 4) = *(A8 + 4) & ebx; } } ecx = Vfffffffc; ebx = Ac; } else { ecx = Vfffffffc; } edx = *(ebx + 8); ebx = *(ebx + 4); ecx = ecx + Vfffffff4; *(edx + 4) = ebx; edx = Ac; Vfffffffc = ecx; ebx = *(edx + 4); *(ebx + 8) = *(edx + 8); } edx = (ecx >> 4) - 1; if(edx > 63) { edx = 63; } if(!(Vfffffff4 = Vfffffff8 & 1)) { esi = esi - Vfffffff8; (save)63; Ac = esi; ebx = (Vfffffff8 >> 4) - 1; (restore)esi; if(ebx > esi) { ebx = esi; } ecx = ecx + Vfffffff8; Vfffffffc = ecx; edx = (ecx >> 4) - 1; if(edx > esi) { edx = esi; } if(ebx != edx) { ecx = Ac; if(*(ecx + 4) == *(ecx + 8)) { if(ebx >= 32) { goto L10004b8d; } esi = !(-2147483648 >> ebx); *(eax + edi * 4 + 68) = *(eax + edi * 4 + 68) & esi; if(!( *(ebx + eax + 4) = *(ebx + eax + 4) - 1)) { *A8 = *A8 & esi; goto L10004bac; L10004b8d: ecx = ebx - 32; esi = !(-2147483648 >> cl); *(eax + edi * 4 + 196) = *(eax + edi * 4 + 196) & esi; if(!( *(ebx + eax + 4) = *(ebx + eax + 4) - 1)) { *(A8 + 4) = *(A8 + 4) & esi; } } } L10004bac: ecx = Ac; esi = *(ecx + 8); *(esi + 4) = *(ecx + 4); ecx = Ac; esi = *(ecx + 4); *(esi + 8) = *(ecx + 8); } esi = Ac; } else { ebx = A8; } if(Vfffffff4 != 0 || ebx != edx) { ecx = Vfffffff0; ebx = *(ecx + edx * 8 + 4); ecx = ecx + edx * 8; *(esi + 4) = ebx; *(esi + 8) = ecx; *( *(esi + 8) + 4) = esi; *( *(esi + 4) + 8) = esi; if(*(esi + 4) == *(esi + 8)) { cl = *(edx + eax + 4); edx :: 32; Af = cl; *(edx + eax + 4) = cl; if(!(cl = Af + 1)) { if(Af == 0) { ecx = edx; ebx = -2147483648 >> cl; *A8 = *A8 | ebx; } ebx = -2147483648 >> edx; *(eax + edi * 4 + 68) = *(eax + edi * 4 + 68) | ebx; } else { if(Af == 0) { ecx = edx - 32; ebx = -2147483648 >> cl; *(A8 + 4) = *(A8 + 4) | ebx; } ecx = edx - 32; edx = -2147483648 >> cl; *(eax + edi * 4 + 196) = *(eax + edi * 4 + 196) | edx; } } } eax = Vfffffffc; *esi = eax; *( *esi + esi - 4) = *esi; eax = Vfffffff0; if(!( *eax = *eax - 1)) { eax = *L1000B2D4; if(eax != 0) { esi = __imp__VirtualFree; ecx = ( *L1000B2CC << 15) + *(eax + 12); ebx = 32768; (save)16384; (save)32768; (save)ecx; *__imp__VirtualFree(); *( *L1000B2D4 + 8) = *( *L1000B2D4 + 8) | -2147483648 >> *L1000B2CC; *( *( *L1000B2D4 + 16) + *L1000B2CC * 4 + 196) = 0; *( *( *L1000B2D4 + 16) + 67) = *( *( *L1000B2D4 + 16) + 67) - 1; eax = *L1000B2D4; if(*( *(eax + 16) + 67) == 0) { *(eax + 4) = *(eax + 4) & -2; eax = *L1000B2D4; } if(*(eax + 8) == -1) { (save)ebx; (save)0; (save) *(eax + 12); *esi(); (save) *( *L1000B2D4 + 16); (save)0; (save) *L1000C524; *__imp__HeapFree(); eax = *L1000B2D4; L100064F0(eax, eax + 20, ( *L1000B2D8 + *L1000B2D8 * 4 << 2) - eax + *L1000B2DC - 20); *L1000B2D8 = *L1000B2D8 - 1; if(A8 > *L1000B2D4) { A8 = A8 - 20; } *L1000B2D0 = *L1000B2DC; } } eax = A8; *L1000B2CC = edi; *L1000B2D4 = eax; } } (restore)edi; (restore)esi; (restore)ebx; } /* Procedure: 0x10004D6B - 0x10005073 * Argument size: -13 * Local size: 20 * Save regs size: 0 */ L10004D6B(A8, Ab) /* unknown */ void A8; /* unknown */ void Ab; { /* unknown */ void Vffffffec; /* unknown */ void Vfffffff0; /* unknown */ void Vfffffff4; /* unknown */ void Vfffffff8; /* unknown */ void Vfffffffc; edx = *L1000B2DC; (save)ebx; (save)esi; (save)edi; edi = edx + ( *L1000B2D8 + *L1000B2D8 * 4) * 4; eax = A8; Vfffffffc = edi; ecx = eax + 23 & -16; Vfffffff0 = ecx; ecx = (Vfffffff0 >> 4) - 1; if(ecx < 32) { esi = (esi | -1) >> cl; Vfffffff8 = Vfffffff8 | -1; Vfffffff4 = esi; } else { ecx = ecx + -32; eax = eax | -1; esi = 0; Vfffffff4 = 0; Vfffffff8 = eax >> cl; } eax = *L1000B2D0; ebx = eax; A8 = ebx; if(ebx < edi) { do { ecx = *(ebx + 4); edi = *ebx; ecx = ecx & Vfffffff8; if(ecx = ecx | edi & esi) { break; } ebx = ebx + 20; A8 = ebx; } while(ebx < Vfffffffc); } if(ebx == Vfffffffc) { for(ebx = edx; 1; ebx = ebx + 20) { A8 = ebx; if(ebx >= eax) { break; } ecx = *(ebx + 4); edi = *ebx; ecx = ecx & Vfffffff8; if(ecx = ecx | edi & esi) { break; } } if(ebx != eax) { goto L10004e60; } while(ebx < Vfffffffc && *(ebx + 8) == 0) { ebx = ebx + 20; A8 = ebx; } if(ebx == Vfffffffc) { for(ebx = edx; 1; ebx = ebx + 20) { A8 = ebx; if(ebx >= eax || *(ebx + 8) != 0) { break; } } if(ebx == eax) { ebx = L10005074(); A8 = ebx; if(ebx == 0) { goto L10004e59; } } } eax = L10005125(ebx); *( *(ebx + 16)) = eax; if(*( *(ebx + 16)) != -1) { goto L10004e60; } L10004e59: eax = 0; } else { L10004e60: *L1000B2D0 = ebx; eax = *(ebx + 16); edx = *eax; Vfffffffc = edx; if(edx != -1) { ecx = *(eax + edx * 4 + 196); edi = *(eax + edx * 4 + 68); ecx = ecx & Vfffffff8; if(ecx = ecx | edi & esi) { goto L10004ebe; } } edx = *(eax + 196); esi = *(eax + 68); edx = edx & Vfffffff8; esi = esi & Vfffffff4; Vfffffffc = 0; ecx = eax + 68; esi = Vfffffff4; if(!(edx = edx | esi)) { do { Vfffffffc = Vfffffffc + 1; edx = *(ecx + 132) & Vfffffff8; ecx = ecx + 4; } while(edx = edx | esi & *ecx); } edx = Vfffffffc; L10004ebe: ecx = edx; edi = 0; 516 = ecx * ecx; Vfffffff4 = ecx + eax + 324; if(!(ecx = *(eax + edx * 4 + 68) & esi)) { (save)32; ecx = *(eax + edx * 4 + 196) & Vfffffff8; (restore)edi; } while(ecx >= 0) { ecx = ecx << 1; edi = edi + 1; } edx = *(Vfffffff4 + edi * 8 + 4); ecx = *edx - Vfffffff0; Vfffffff8 = ecx; esi = (ecx >> 4) - 1; if(esi > 63) { esi = 63; } if(esi != edi) { if(*(edx + 4) == *(edx + 8)) { if(edi < 32) { ebx = -2147483648 >> edi; ecx = Vfffffffc; edi = eax + edi + 4; ebx = !ebx; Vffffffec = ebx; *(eax + ecx * 4 + 68) = Vffffffec & *(eax + ecx * 4 + 68); if(*edi = *edi - 1) { goto L10004f7b; } ebx = A8; *ebx = *ebx & Vffffffec; } else { ecx = edi - 32; ebx = -2147483648 >> cl; edi = eax + edi + 4; ecx = eax + Vfffffffc * 4 + 196; ebx = !ebx; *ecx = *ecx & ebx; Vffffffec = ebx; if(!( *edi = *edi - 1)) { ebx = A8; *(ebx + 4) = *(ebx + 4) & Vffffffec; } else { L10004f7b: ebx = A8; } } } ecx = *(edx + 8); *(ecx + 4) = *(edx + 4); ecx = *(edx + 4); *(ecx + 8) = *(edx + 8); if(Vfffffff8 == 0) { goto L1000502e; } ecx = Vfffffff4; edi = *(ecx + esi * 8 + 4); ecx = ecx + esi * 8; *(edx + 4) = edi; *(edx + 8) = ecx; *( *(edx + 8) + 4) = edx; *( *(edx + 4) + 8) = edx; if(*(edx + 4) == *(edx + 8)) { cl = *(esi + eax + 4); Ab = cl; if(esi < 32) { cl = cl + 1; *(esi + eax + 4) = cl; if(Ab == 0) { ecx = esi; *ebx = *ebx | -2147483648 >> cl; } edi = -2147483648 >> esi; *(eax + Vfffffffc * 4 + 68) = *(eax + Vfffffffc * 4 + 68) | edi; } else { cl = cl + 1; *(esi + eax + 4) = cl; if(Ab == 0) { ecx = esi - 32; *(ebx + 4) = *(ebx + 4) | -2147483648 >> cl; } edi = eax + Vfffffffc * 4 + 196; ecx = esi - 32; *edi = *edi | -2147483648 >> cl; } } ecx = Vfffffff8; } if(ecx != 0) { *edx = ecx; *(ecx + edx - 4) = ecx; goto L10005031; L1000502e: ecx = Vfffffff8; } L10005031: esi = Vfffffff0; edx = edx + ecx; ecx = esi + 1; *edx = ecx; *(edx + esi - 4) = *edx; esi = Vfffffff4; ecx = *esi; ecx :: 0; if(!( *esi = ecx + 1) && ebx == *L1000B2D4 && Vfffffffc == *L1000B2CC) { *L1000B2D4 = 0; } *eax = Vfffffffc; eax = edx + 4; } (restore)edi; (restore)esi; (restore)ebx; } stack space not deallocated on return /* Procedure: 0x10005074 - 0x10005124 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10005074() { eax = *L1000B2D8; ecx = *L1000B2C8; (save)esi; (save)edi; edi = 0; if(eax == ecx) { (save)ecx + ecx * 4 + 80 << 2; (save) *L1000B2DC; (save)0; (save) *L1000C524; eax = *__imp__HeapReAlloc(); if(eax == edi) { goto L10005107; } *L1000B2C8 = *L1000B2C8 + 16; *L1000B2DC = eax; eax = *L1000B2D8; } (save)16836; (save)8; (save) *L1000C524; esi = *L1000B2DC + (eax + eax * 4) * 4; eax = *__imp__HeapAlloc(); *(esi + 16) = eax; if(eax != edi) { (save)4; (save)8192; (save)1048576; (save)edi; eax = *__imp__VirtualAlloc(); *(esi + 12) = eax; if(eax != edi) { goto L1000510b; } *__imp__HeapFree( *L1000C524, edi, *(esi + 16)); } L10005107: eax = 0; goto L10005122; L1000510b: *(esi + 8) = *(esi + 8) | -1; *esi = edi; *(esi + 4) = edi; *L1000B2D8 = *L1000B2D8 + 1; *( *(esi + 16)) = *( *(esi + 16)) | -1; eax = esi; L10005122: (restore)edi; (restore)esi; } /* Procedure: 0x10005125 - 0x1000521F * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10005125(A8) /* unknown */ void A8; { (save)ecx; ecx = A8; (save)ebx; (save)esi; (save)edi; esi = *(ecx + 16); eax = *(ecx + 8); for(ebx = 0; eax >= 0; ebx = ebx + 1) { eax = eax << 1; } eax = ebx; (save)63; 516 = eax * eax; (restore)edx; eax = eax + esi + 324; *(ebp - 4) = eax; do { *(eax + 8) = eax; *(eax + 4) = eax; eax = eax + 8; } while(edx = edx - 1); edi = (ebx << 15) + *(ecx + 12); eax = *__imp__VirtualAlloc(edi, 32768, 4096, 4); if(eax == 0) { eax = eax | -1; } else { edx = edi + 28672; if(edi <= edx) { eax = edi + 16; do { *(eax - 8) = *(eax - 8) | -1; *(eax + 4076) = *(eax + 4076) | -1; *(eax - 4) = 4080; *eax = eax + 4092; *(eax + 4) = eax + -4100; *(eax + 4072) = 4080; eax = eax + 4096; } while(eax - 16 <= edx); } eax = *(ebp - 4); ecx = edi + 12; eax = eax + 504; edi = 1; *(eax + 4) = ecx; *(ecx + 8) = eax; ecx = edx + 12; *(eax + 8) = ecx; *( *(eax + 8) + 4) = eax; *(esi + ebx * 4 + 68) = 0; *(esi + ebx * 4 + 196) = 1; al = *(esi + 67); cl = al + 1; eax = A8; *(esi + 67) = cl; if(al == 0) { *(eax + 4) = *(eax + 4) | 1; } *(eax + 8) = *(eax + 8) & !(-2147483648 >> ebx); eax = ebx; } (restore)edi; (restore)esi; (restore)ebx; } stack space not deallocated on return /* Procedure: 0x10005220 - 0x10005363 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10005220() { (save)ebx; (save)ebp; (save)esi; (save)edi; if(*L10008A60 == -1) { esi = 0x10008a50; } else { (save)8224; (save)0; (save) *L1000C524; esi = *__imp__HeapAlloc(); if(esi == 0) { goto L1000535d; } } ebp = __imp__VirtualAlloc; (save)4; (save)8192; (save)4194304; (save)0; edi = *__imp__VirtualAlloc(); if(edi != 0) { (save)4; ebx = 65536; (save)4096; (save)65536; (save)edi; if(*ebp() != 0) { eax = 0x10008a50; if(esi == 0x10008a50) { if(*L10008A50 == 0) { *L10008A50 = 0x10008a50; } if(*L10008A54 == 0) { *L10008A54 = eax; } } else { *esi = eax; *(esi + 4) = *L10008A54; *L10008A54 = esi; *( *(esi + 4)) = esi; } eax = edi + 4194304; ecx = esi + 152; *(esi + 20) = eax; eax = esi + 24; *(esi + 12) = ecx; *(esi + 16) = edi; *(esi + 8) = eax; ebp = 0; ecx = 241; do { edx = 0; ebp :: 16; asm("setnl dl"); edx = (edx - 1 & ecx) - 1; ebp = ebp + 1; *eax = edx; *(eax + 4) = ecx; eax = eax + 8; } while(ebp < 1024); for(L10005D80(edi, 0, ebx); edi < *(esi + 16) + ebx; edi = edi + 4096) { *(edi + 248) = *(edi + 248) | 255; *edi = edi + 8; *(edi + 4) = 240; } eax = esi; goto L1000535f; } (save)32768; (save)0; (save)edi; *__imp__VirtualFree(); } if(esi != 0x10008a50) { *__imp__HeapFree( *L1000C524, 0, esi); } L1000535d: eax = 0; L1000535f: (restore)edi; (restore)esi; (restore)ebp; (restore)ebx; } stack space not deallocated on return /* Procedure: 0x10005364 - 0x100053B9 * Argument size: 4 * Local size: 0 * Save regs size: 4 */ L10005364(Ac) /* unknown */ void Ac; { (save)32768; (save)0; (save) *(Ac + 16); eax = *__imp__VirtualFree(); if(*L1000AA70 == Ac) { eax = *(Ac + 4); *L1000AA70 = eax; } if(Ac != 0x10008a50) { eax = *(Ac + 4); *eax = *Ac; eax = *Ac; *(eax + 4) = *(Ac + 4); return(*__imp__HeapFree( *L1000C524, 0, Ac)); } *L10008A60 = *L10008A60 | -1; } /* Procedure: 0x100053BA - 0x1000547B * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L100053BA(A8) /* unknown */ void A8; { (save)ecx; (save)ebx; (save)esi; esi = *L10008A54; (save)edi; do { if(*(esi + 16) != -1) { *(ebp - 4) = 0; edi = esi + 8208; ebx = 4190208; do { if(*edi == 240) { (save)16384; (save)4096; (save)ebx + *(esi + 16); eax = *__imp__VirtualFree(); if(eax != 0) { *edi = *edi | -1; *L1000B134 = *L1000B134 - 1; eax = *(esi + 12); if(eax == 0 || eax > edi) { *(esi + 12) = edi; } *(ebp - 4) = *(ebp - 4) + 1; if(A8 = A8 - 1) { break; } } } ebx = ebx - 4096; edi = edi - 8; } while(ebx >= 0); ecx = esi; esi = *(esi + 4); if(*(ebp - 4) != 0 && *(ecx + 24) == -1) { (save)1; eax = ecx + 32; (restore)edx; do { if(*eax != -1) { break; } edx = edx + 1; eax = eax + 8; } while(edx < 1024); if(edx == 1024) { eax = L10005364(ecx); } } } } while(esi != *L10008A54 && A8 > 0); (restore)edi; (restore)esi; (restore)ebx; } /* Procedure: 0x1000547C - 0x100054D2 * Argument size: 12 * Local size: 0 * Save regs size: 0 */ L1000547C(A4, A8, Ac) /* unknown */ void A4; /* unknown */ void A8; /* unknown */ void Ac; { eax = A4; edx = 0x10008a50; (save)esi; ecx = 0x10008a50; while(eax <= *(ecx + 16) || eax >= *(ecx + 20)) { ecx = *ecx; if(ecx == edx) { goto L100054cf; } } if(!(al & 15)) { esi = eax; edx = 256; if((esi & 4095) >= 256) { *A8 = ecx; cx = eax & 61440; *Ac = ecx; eax = eax - ecx - 256; (restore)esi; return((eax >> 4) + ecx + 8); } } L100054cf: (restore)esi; return(0); } /* DEST BLOCK NOT FOUND: 100054fe -> 10005517 */ /* DEST BLOCK NOT FOUND: 1000550d -> 10005517 */ /* Procedure: 0x100054D3 - 0x10005517 * Argument size: 12 * Local size: 0 * Save regs size: 0 */ L100054D3(A4, A8, Ac) /* unknown */ void A4; /* unknown */ void A8; /* unknown */ void Ac; { eax = A4; eax = eax + (A8 - *(eax + 16) >> 12) * 8 + 24; *eax = *eax + ( *Ac & 255); *Ac = 0; *(eax + 4) = 241; if(*eax == 240) { *L1000B134 = *L1000B134 + 1; if(*L1000B134 == 32) { eax = L100053BA(16); } } } /* Procedure: 0x10005518 - 0x1000571F * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10005518(A8) /* unknown */ void A8; { (save)ecx; (save)ecx; (save)ebx; (save)esi; esi = *L1000AA70; (save)edi; while(1) { edx = *(esi + 16); if(edx == -1) { ebx = A8; } else { edi = *(esi + 8); ecx = esi + 8216; eax = (edi - esi - 24 >> 3 << 12) + edx; *(ebp - 4) = eax; if(edi >= ecx) { ebx = A8; } else { do { ecx = *edi; ebx = A8; if(ecx >= ebx && *(edi + 4) > ebx) { eax = L10005720(eax, ecx, ebx); if(eax != 0) { goto L100055e3; } eax = *(ebp - 4); *(edi + 4) = ebx; } edi = edi + 8; ecx = esi + 8216; eax = eax + 4096; *(ebp - 4) = eax; } while(edi < ecx); } eax = *(esi + 8); ecx = *(esi + 16); edi = esi + 24; *(ebp - 8) = eax; *(ebp - 4) = ecx; if(edi < eax) { do { eax = *edi; if(eax >= ebx && *(edi + 4) > ebx) { eax = L10005720( *(ebp - 4), eax, ebx); if(eax != 0) { goto L100055e3; } *(edi + 4) = ebx; } *(ebp - 4) = *(ebp - 4) + 4096; edi = edi + 8; } while(edi < *(ebp - 8)); } } esi = *esi; if(esi == *L1000AA70) { goto L100055f3; } } L100055e3: *L1000AA70 = esi; *edi = *edi - ebx; *(esi + 8) = edi; goto L1000571b; L100055f3: eax = 0x10008a50; edi = 0x10008a50; while(*(edi + 16) == -1 || *(edi + 12) == 0) { edi = *edi; if(edi == eax) { goto L100056e7; } } ebx = *(edi + 12); *(ebp - 4) = 0; esi = ebx; eax = ebx; esi = (esi - edi - 24 >> 3 << 12) + *(edi + 16); if(*ebx == -1) { do { if(*(ebp - 4) >= 16) { break; } eax = eax + 8; *(ebp - 4) = *(ebp - 4) + 1; } while(*eax == -1); } (save)4; eax = *(ebp - 4) << 12; (save)4096; (save)eax; (save)esi; *(ebp - 8) = eax; if(*__imp__VirtualAlloc() == esi) { L10005D80(esi, *(ebp - 8), 0); edx = *(ebp - 4); ecx = ebx; if(edx > 0) { eax = esi + 4; *(ebp - 4) = edx; do { *(eax + 244) = *(eax + 244) | 255; *(eax - 4) = eax + 4; *eax = 240; *ecx = 240; *(ecx + 4) = 241; eax = eax + 4096; ecx = ecx + 8; } while(*(ebp - 4) = *(ebp - 4) - 1); } *L1000AA70 = edi; for(eax = edi + 8216; 1; ecx = ecx + 8) { if(ecx >= eax) { goto L100056c4; } if(*ecx == -1) { break; } } ecx :: eax; L100056c4: asm("sbb eax,eax"); *(edi + 12) = eax & ecx; *(esi + 8) = A8; *(edi + 8) = ebx; *ebx = *ebx - eax; *(esi + 4) = *(esi + 4) - eax; ecx = esi + eax + 8; eax = esi + 256; *esi = ecx; goto L1000571b; L100056e7: eax = L10005220(); if(eax == 0) { goto L10005719; } ecx = *(eax + 16); *(ecx + 8) = bl; *L1000AA70 = eax; *ecx = ecx + ebx + 8; *(ecx + 4) = 240 - ebx; *(eax + 24) = *(eax + 24) - (bl & 255); eax = ecx + 256; } else { L10005719: eax = 0; } L1000571b: (restore)edi; (restore)esi; (restore)ebx; } /* Procedure: 0x10005720 - 0x10005843 * Argument size: 12 * Local size: 0 * Save regs size: 0 */ L10005720(A8, Ac, A10) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; { (save)ecx; ecx = A8; (save)ebx; (save)esi; esi = *(ecx + 4); (save)edi; edi = *ecx; ebx = ecx + 248; *(ebp - 4) = edi; eax = edi; A8 = ebx; if(esi >= A10) { *edi = dl; if(edi + A10 < ebx) { *ecx = *ecx + A10; *(ecx + 4) = *(ecx + 4) - A10; } else { *(ecx + 4) = 0; *ecx = ecx + 8; } eax = edi + 8; } else { esi = esi + edi; if(*esi != 0) { eax = esi; } if(eax + A10 < ebx) { do { bl = *eax; if(bl != 0) { eax = eax + (bl & 255); } else { (save)1; ebx = eax + 1; for((restore)esi; *ebx == 0; esi = esi + 1) { ebx = ebx + 1; } if(esi >= A10) { goto L100057dc; } if(eax != *(ebp - 4)) { Ac = Ac - esi; if(Ac < A10) { goto L1000583d; } else { goto L100057a4; } } *(ecx + 4) = esi; L100057a4: edi = *(ebp - 4); eax = ebx; } } while(eax + A10 < A8); } for(esi = ecx + 8; 1; esi = ebx) { if(esi >= edi || esi + A10 >= A8) { goto L1000583d; } al = *esi; if(al != 0) { esi = esi + (al & 255); continue; } (save)1; ebx = esi + 1; for((restore)eax; 1; eax = eax + 1) { if(*ebx != 0) { goto L100057fd; } ebx = ebx + 1; } break; L100057fd: if(eax >= A10) { goto L10005814; } Ac = Ac - eax; if(Ac < A10) { goto L1000583d; } } L100057dc: ebx = eax + A10; if(ebx < A8) { *ecx = ebx; *(ecx + 4) = esi - A10; } else { *(ecx + 4) = 0; *ecx = ecx + 8; } *eax = dl; eax = eax + 8; goto L10005833; L10005814: ebx = esi + A10; if(ebx < A8) { *ecx = ebx; *(ecx + 4) = eax - A10; } else { *(ecx + 4) = 0; *ecx = ecx + 8; } *esi = dl; eax = esi + 8; } L10005833: 15 = ecx * ecx; eax = (eax << 4) - ecx; goto L1000583f; L1000583d: eax = 0; L1000583f: (restore)edi; (restore)esi; (restore)ebx; } stack space not deallocated on return /* Procedure: 0x10005844 - 0x100058CF * Argument size: 4 * Local size: 0 * Save regs size: 4 */ L10005844(A1c) /* unknown */ void A1c; { /* unknown */ void ebx; ebx = 0; (save)esi; (save)edi; if(*L1000B138 == 0) { (save)268465432; edi = *__imp__LoadLibraryA(); if(edi == ebx) { goto L100058c9; } esi = __imp__GetProcAddress; (save)268465420; (save)edi; eax = *__imp__GetProcAddress(); *L1000B138 = eax; if(eax == 0) { goto L100058c9; } (save)268465404; (save)edi; (save)268465384; (save)edi; *L1000B13C = *esi(); *L1000B140 = *esi(); } eax = *L1000B13C; if(eax != 0) { ebx = *eax(); if(ebx != 0) { eax = *L1000B140; if(eax != 0) { (save)ebx; ebx = *eax(); } } } eax = *L1000b138(ebx, A1c, A1c, A1c); L100058c5: (restore)edi; (restore)esi; return; L100058c9: eax = 0; goto L100058c5; asm("int3"); asm("int3"); asm("int3"); } /* Procedure: 0x100058D0 - 0x100059CD * Argument size: 12 * Local size: 0 * Save regs size: 0 */ L100058D0(A4, A8, Ac) /* unknown */ void A4; /* unknown */ void A8; /* unknown */ void Ac; { ecx = Ac; (save)edi; if(ecx != 0) { (save)esi; (save)ebx; ebx = ecx; esi = A8; edi = A4; if(!(esi & 3)) { ecx = ecx >> 2; != ? 0x10005961 : ; } else { do { al = *esi; esi = esi + 1; *edi = al; edi = edi + 1; if(ecx = ecx - 1) { goto L10005922; } if(al == 0) { goto L1000592a; } } while(esi & 3); ebx = ecx; ecx = ecx >> 2; != ? 0x10005961 : ; L10005910: if(ebx = ebx & 3) { goto L10005922; } } do { al = *esi; esi = esi + 1; *edi = al; edi = edi + 1; if(al == 0) { goto L1000594e; } } while(ebx = ebx - 1); L10005922: (restore)ebx; (restore)esi; (restore)edi; return(A4); L1000592a: if(!(edi & 3)) { do { *edi = al; edi = edi + 1; if(ecx = ecx - 1) { goto L100059c6; } } while(edi & 3); } ebx = ecx; ecx = ecx >> 2; != ? 0x100059b7 : ; L1000594b: *edi = al; edi = edi + 1; L1000594e: if(ebx = ebx - 1) { goto L1000594b; } (restore)ebx; (restore)esi; } (restore)edi; return(A4); L10005959: *edi = edx; edi = edi + 4; if(ecx = ecx - 1) { goto L10005910; } eax = *esi; edx = 2130640639 + eax; eax = eax ^ -1 ^ edx; edx = *esi; esi = esi + 4; if(eax & -2130640640) { goto L10005959; } if(dl != 0) { if(dh != 0) { if(!(edx & 16711680)) { if(edx & -16777216) { goto L10005959; } *edi = edx; } else { edx = edx & 65535; *edi = edx; } } else { edx = edx & 255; *edi = edx; } } else { edx = 0; *edi = 0; } edi = edi + 4; eax = 0; if(!(ecx = ecx - 1)) { eax = 0; L100059b9: *edi = eax; edi = edi + 4; if(ecx = ecx - 1) { goto L100059b9; } } if(ebx = ebx & 3) { goto L1000594b; } L100059c6: (restore)ebx; (restore)esi; (restore)edi; return(A4); } /* Procedure: 0x100059CE - 0x10005A40 * Argument size: 4 * Local size: 0 * Save regs size: 4 */ L100059CE(A8) /* unknown */ void A8; { /* unknown */ void esi; ecx = A8; esi = 0; *(L10005A4A()) = ecx; eax = 0x1000aa80; do { if(ecx == *eax) { goto L10005a07; } eax = eax + 8; esi = esi + 1; } while(eax < 0x1000abe8); if(ecx >= 19 && ecx <= 36) { eax = L10005A41(); *eax = 13; return; L10005a07: eax = L10005A41(); ecx = *(esi * 8 + 0x1000aa84); *eax = ecx; return; } if(ecx >= 188 && ecx <= 202) { eax = L10005A41(); *eax = 8; return; } eax = L10005A41(); *eax = 22; } /* Procedure: 0x10005A41 - 0x10005A49 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10005A41() { return(L10002786() + 8); } /* Procedure: 0x10005A4A - 0x10005A52 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10005A4A() { return(L10002786() + 12); } /* Procedure: 0x10005A53 - 0x10005AD1 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10005A53(A4) /* unknown */ void A4; { ecx = A4; (save)esi; (save)edi; if(ecx < *L1000C640) { edi = (ecx >> 5) * 4 + 268485952; esi = (ecx & 31) + (ecx & 31) * 8; eax = *edi; esi = esi << 2; eax = eax + esi; if(*(eax + 4) & 1 || *eax == -1) { goto L10005ab9; } if(*L1000AF78 == 1) { eax = 0; ecx = ecx; == ? L10005aa6 : ; if(ecx = ecx - 1) { goto L10005aa1; } if(!(ecx = ecx - 1)) { (save)0; (save)-12; goto L10005aa9; L10005aa1: (save)eax; (save)-11; goto L10005aa9; (save)eax; (save)-10; L10005aa9: *__imp__SetStdHandle(); } } *( *edi + esi) = *( *edi + esi) | -1; eax = 0; } else { L10005ab9: *(L10005A41()) = 9; eax = L10005A4A(); *eax = 0; eax = eax | -1; } (restore)edi; (restore)esi; } /* Procedure: 0x10005AD2 - 0x10005B13 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10005AD2(A4) /* unknown */ void A4; { eax = A4; if(eax < *L1000C640) { ecx = eax; eax = eax & 31; ecx = ecx >> 5; eax = eax + eax * 8; ecx = *(ecx * 4 + 268485952); *(ecx + eax * 4 + 4) & 1; if(!(eax = ecx + eax * 4)) { return(*eax); } } *(L10005A41()) = 9; eax = L10005A4A(); *eax = 0; return(eax | -1); } stack space not deallocated on return /* Procedure: 0x10005B14 - 0x10005B72 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10005B14(A4) /* unknown */ void A4; { eax = A4; (save)ebx; ecx = eax; eax = eax & 31; ecx = ecx >> 5; (save)esi; (save)edi; esi = *(ecx * 4 + 268485952); ebx = ecx * 4 + 268485952; edi = eax + eax * 8 << 2; esi = esi + edi; if(*(esi + 8) == 0) { L10003A2A(17); if(*(esi + 8) == 0) { (save)esi + 12; *__imp__InitializeCriticalSection(); *(esi + 8) = *(esi + 8) + 1; } L10003A8B(17); } eax = *__imp__EnterCriticalSection( *ebx + edi + 12); (restore)edi; (restore)esi; (restore)ebx; } stack space not deallocated on return /* Procedure: 0x10005B73 - 0x10005C15 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10005B73(A4) /* unknown */ void A4; { eax = A4; ecx = eax; eax = eax & 31; ecx = ecx >> 5; eax = eax + eax * 8; return(*__imp__LeaveCriticalSection( *(ecx * 4 + 268485952) + eax * 4 + 12)); (save)ebx; (save)edi; ebx = 0; L10003A2A(2); edi = 3; if(*L1000C520 > 3) { (save)esi; L10005bad: esi = edi << 2; eax = *(esi + *L1000B508); if(eax != 0) { if(!( *(eax + 12) & 131) && L10006825(eax) != -1) { ebx = ebx + 1; } if(edi >= 20) { (save) *(esi + *L1000B508) + 32; *__imp__DeleteCriticalSection(); L10003BDD( *(esi + *L1000B508)); *(esi + *L1000B508) = 0; } } edi = edi + 1; if(edi < *L1000C520) { goto L10005bad; } (restore)esi; } L10003A8B(2); eax = ebx; (restore)edi; (restore)ebx; } /* Procedure: 0x10005C16 - 0x10005C43 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10005C16(A4) /* unknown */ void A4; { (save)A4; eax = L10005C44(A4); if(eax != 0) { eax = eax | -1; (restore)A4; return; } if(!( *(A4 + 13) & 64)) { eax = ~(L100068A2( *(A4 + 16))); (restore)A4; asm("sbb eax,eax"); return; } (restore)A4; return(0); } /* Procedure: 0x10005C44 - 0x10005C9F * Argument size: 4 * Local size: 0 * Save regs size: 8 */ L10005C44(Ac) /* unknown */ void Ac; { /* unknown */ void ebx; ebx = 0; (save)edi; if(( *(Ac + 12) & 3) == 2 && !(ax & 264)) { eax = *(Ac + 8); edi = *Ac - eax; if(edi > 0) { if(L100033B3( *(Ac + 16), eax, edi) != edi) { goto L10005c8a; } eax = *(Ac + 12); if(!(al & 128)) { *(Ac + 12) = al & 253; goto L10005c91; L10005c8a: *(Ac + 12) = *(Ac + 12) | 32; ebx = ebx | -1; } } } L10005c91: *(Ac + 4) = 0; *Ac = *(Ac + 8); (restore)edi; return(ebx); } /* Procedure: 0x10005CA0 - 0x10005CA8 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10005CA0() { return(L10005CA9(1)); } /* Procedure: 0x10005CA9 - 0x10005D4C * Argument size: 4 * Local size: 0 * Save regs size: 12 */ L10005CA9(A10) /* unknown */ void A10; { /* unknown */ void ebx; /* unknown */ void esi; /* unknown */ void edi; ebx = 0; edi = 0; L10003A2A(2); esi = 0; if(*L1000C520 > 0) { do { eax = *( *L1000B508 + esi * 4); if(eax != 0 && !( *(eax + 12) & 131)) { L100036FB(esi, eax); eax = *( *L1000B508 + esi * 4); ecx = *(eax + 12); if(!(cl & 131)) { if(A10 == 1) { goto L10005cfa; } if(A10 == 0 && !(cl & 2)) { eax = L10005C16(eax); if(eax == -1) { edi = edi | eax; goto L10005d1d; L10005cfa: if(L10005C16(eax) != -1) { ebx = ebx + 1; } } } } L10005d1d: L1000374D(esi, *( *L1000B508 + esi * 4)); } esi = esi + 1; } while(esi < *L1000C520); } L10003A8B(2); eax = ebx; if(A10 != 1) { eax = edi; } } /* Procedure: 0x10005D4D - 0x10005D55 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10005D4D() { return(L10001C8E(2)); } /* Procedure: 0x10005D56 - 0x10005D70 * Argument size: 4 * Local size: 0 * Save regs size: 0 */ L10005D56(A4) /* unknown */ void A4; { eax = *L1000B170; if(eax != 0 && *eax(A4) != 0) { return(1); } return(0); } /* Procedure: 0x10005D71 - 0x10005D7F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10005D71() { } /* Procedure: 0x10005D80 - 0x10005DD7 * Argument size: 12 * Local size: 0 * Save regs size: 0 */ L10005D80(A4, A8, Ac) /* unknown */ void A4; /* unknown */ void A8; /* unknown */ void Ac; { edx = Ac; ecx = A4; if(edx != 0) { eax = A8 & 255; (save)edi; edi = ecx; if(edx >= 4) { if(!(ecx = ~ecx & 3)) { edx = edx - ecx; do { *edi = al; edi = edi + 1; } while(ecx = ecx - 1); } ecx = eax; eax = (eax << 8) + ecx; ecx = eax; eax = (eax << 16) + ecx; ecx = edx; ecx = ecx >> 2; if(!(edx = edx & 3)) { asm("rep stosd"); if(edx == 0) { goto L10005dcd; } } } do { *edi = al; edi = edi + 1; } while(edx = edx - 1); L10005dcd: (restore)edi; return(A4); } return(A4); } /* Procedure: 0x10005DD8 - 0x10005DF7 * Argument size: 4 * Local size: 0 * Save regs size: 16 */ L10005DD8(A8) /* unknown */ void A8; { /* unknown */ void ebx; /* unknown */ void ebp; /* unknown */ void esi; /* unknown */ void edi; return(RtlUnwind(A8, 0x10005df0, 0, 0)); } /* DEST BLOCK NOT FOUND: 10005e08 -> 10005e19 */ /* Procedure: 0x10005DF8 - 0x10005E19 * Argument size: 16 * Local size: 0 * Save regs size: 0 */ L10005DF8(A4, A8, A10) /* unknown */ void A4; /* unknown */ void A8; /* unknown */ void A10; { eax = 1; if(!( *(A4 + 4) & 6)) { *A10 = A8; eax = 3; } } /* Procedure: 0x10005E1A - 0x10005E81 * Argument size: 8 * Local size: 0 * Save regs size: 12 */ L10005E1A(A10, A14) /* unknown */ void A10; /* unknown */ void A14; { /* unknown */ void ebx; /* unknown */ void esi; /* unknown */ void edi; /* unknown */ void Vfffffff8; (save)A10; (save)-2; (save)0x10005df8; (save) *%fs:0x0]; *%fs:0x0] = esp; while(1) { eax = A10; ebx = *(eax + 8); esi = *(eax + 12); if(esi == -1 || esi == A14) { break; } esi = esi + esi * 2; ecx = *(ebx + esi * 4); Vfffffff8 = ecx; *(eax + 12) = Vfffffff8; if(*(ebx + esi * 4 + 4) == 0) { eax = *(ebx + esi * 4 + 8); L10005EAE(257); *(ebx + esi * 4 + 8)(); } } (restore) *%fs:0x0]; esp = esp + 12; } /* DEST BLOCK NOT FOUND: 10005e92 -> 10005ea4 */ /* DEST BLOCK NOT FOUND: 10005e9d -> 10005ea4 */ /* Procedure: 0x10005E82 - 0x10005EA4 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10005E82() { eax = 0; if(*( *%fs:0x0] + 4) == 0x10005df8 && *(ecx + 8) == *( *(ecx + 12) + 12)) { eax = 1; } } /* DEST BLOCK NOT FOUND: 10005eac -> 10005eb8 */ /* Procedure: 0x10005EA5 - 0x10005EAD * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10005EA5() { (save)ebx; (save)ecx; ebx = 0x1000ad00; goto L10005eb8; } /* Procedure: 0x10005EAE - 0x10005EC5 * Argument size: 4 * Local size: 0 * Save regs size: 8 */ L10005EAE() { /* unknown */ void ecx; /* unknown */ void ebx; ebx = 0x1000ad00; ecx = *(ebp + 8); *(ebx + 8) = ecx; *(ebx + 4) = eax; *(ebx + 12) = ebp; } stack space not deallocated on return /* Procedure: 0x10005EC6 - 0x10005F8C * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10005EC6() { asm("int3"); asm("int3"); (save)esi; ebx = ebx + 1; dh = dh ^ *eax; (restore)eax; ebx = ebx + 1; *eax = *eax ^ dh; (save)ebp; ebp = esp; esp = esp - 8; (save)ebx; (save)esi; (save)edi; (save)ebp; asm("cld"); ebx = *(ebp + 12); eax = *(ebp + 8); if(!( *(eax + 4) & 6)) { *(ebp - 8) = eax; *(ebp - 4) = *(ebp + 16); *(ebx - 4) = ebp - 8; esi = *(ebx + 12); for(edi = *(ebx + 8); 1; esi = *(edi + (esi + esi * 2) * 4)) { if(esi == -1) { goto L10005f69; } ecx = esi + esi * 2; if(*(edi + ecx * 4 + 4) != 0) { (save)esi; (save)ebp; ebp = ebx + 16; eax = *(edi + ecx * 4 + 4)(); (restore)ebp; (restore)esi; ebx = *(ebp + 12); if(eax != 0) { >= ? 0x10005f62 : ; edi = *(ebx + 8); L10005DD8(ebx); ebp = ebx + 16; L10005E1A(ebx, esi); eax = *(edi + (esi + esi * 2) * 4 + 8); L10005EAE(1); *(ebx + 12) = *(edi + ecx * 4); *(edi + ecx * 4 + 8)(); } } edi = *(ebx + 8); } eax = 0; goto L10005f85; L10005f69: eax = 1; } else { (save)ebp; ebp = ebx + 16; L10005E1A(ebx, -1); (restore)ebp; eax = 1; } L10005f85: (restore)ebp; (restore)edi; (restore)esi; (restore)ebx; esp = ebp; (restore)ebp; } /* Procedure: 0x10005F8D - 0x10005FA7 * Argument size: 4 * Local size: 0 * Save regs size: 4 */ L10005F8D(A8) /* unknown */ void A8; { /* unknown */ void ebp; ebp = *A8; return(L10005E1A( *(A8 + 24), *(A8 + 28))); } stack space not deallocated on return /* Procedure: 0x10005FA8 - 0x100061CB * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10005FA8() { (save)ebp; ebp = esp; (save)-1; (save)268465456; (save)0x10005ed0; (save) *%fs:0x0]; *%fs:0x0] = esp; esp = esp - 28; (save)ebx; (save)esi; (save)edi; *(ebp - 24) = esp; edi = 0; if(*L1000B178 == 0) { (save)0; (save)0; ebx = 1; (save)1; (save)268465448; esi = 256; (save)256; (save)0; if(*__imp__LCMapStringW() != 0) { *L1000B178 = ebx; } else { (save)edi; (save)edi; (save)ebx; (save)268465444; (save)esi; (save)edi; if(*__imp__LCMapStringA() == 0) { goto L10006136; } *L1000B178 = 2; } } if(*(ebp + 20) > edi) { *(ebp + 20) = L100061CC( *(ebp + 16), *(ebp + 20)); } eax = *L1000B178; if(eax == 2) { (save) *(ebp + 28); (save) *(ebp + 24); (save) *(ebp + 20); (save) *(ebp + 16); (save) *(ebp + 12); (save) *(ebp + 8); eax = *__imp__LCMapStringA(); } else { if(eax == 1) { if(*(ebp + 32) == edi) { *(ebp + 32) = *L1000B168; } (save)edi; (save)edi; (save) *(ebp + 20); (save) *(ebp + 16); eax = ~( *(ebp + 36)); asm("sbb eax,eax"); (save)(eax & 8) + 1; (save) *(ebp + 32); ebx = *__imp__MultiByteToWideChar(); *(ebp - 28) = ebx; if(ebx != edi) { *(ebp - 4) = edi; al = ebx + ebx + 3 & 252; L100049A0(); *(ebp - 24) = esp; *(ebp - 36) = esp; *(ebp - 4) = *(ebp - 4) | -1; goto L100060cb; return(1); esp = *(ebp - 24); edi = 0; *(ebp - 36) = 0; *(ebp - 4) = *(ebp - 4) | -1; ebx = *(ebp - 28); L100060cb: if(*(ebp - 36) != edi) { (save)ebx; (save) *(ebp - 36); (save) *(ebp + 20); (save) *(ebp + 16); (save)1; (save) *(ebp + 32); if(*__imp__MultiByteToWideChar() != 0) { (save)edi; (save)edi; (save)ebx; (save) *(ebp - 36); (save) *(ebp + 12); (save) *(ebp + 8); esi = *__imp__LCMapStringW(); *(ebp - 40) = esi; if(esi != edi) { if(*(ebp + 13) & 4) { goto L1000614a; } if(*(ebp + 28) == edi || esi <= *(ebp + 28) && *__imp__LCMapStringW( *(ebp + 8), *(ebp + 12), *(ebp - 36), ebx, *(ebp + 24), *(ebp + 28)) != 0) { goto L100061c5; } } } } } } L10006136: eax = 0; } L10006138: esp = ebp - 56; *%fs:0x0] = *(ebp - 16); (restore)edi; (restore)esi; (restore)ebx; (restore)ebp; return; L1000614a: *(ebp - 4) = 1; al = esi + esi + 3 & 252; L100049A0(); *(ebp - 24) = esp; ebx = esp; *(ebp - 32) = ebx; *(ebp - 4) = *(ebp - 4) | -1; goto L1000617e; return(1); esp = *(ebp - 24); edi = 0; ebx = 0; *(ebp - 4) = *(ebp - 4) | -1; esi = *(ebp - 40); L1000617e: if(ebx == edi) { goto L10006136; } (save)esi; (save)ebx; (save) *(ebp - 28); (save) *(ebp - 36); (save) *(ebp + 12); (save) *(ebp + 8); if(*__imp__LCMapStringW() == 0) { goto L10006136; } (save)edi; (save)edi; if(*(ebp + 28) == edi) { (save)edi; (save)edi; } else { (save) *(ebp + 28); (save) *(ebp + 24); } (save)esi; (save)ebx; (save)544; (save) *(ebp + 32); esi = *__imp__WideCharToMultiByte(); if(esi == edi) { goto L10006136; } L100061c5: eax = esi; goto L10006138; } /* Procedure: 0x100061CC - 0x100061F6 * Argument size: 8 * Local size: 0 * Save regs size: 0 */ L100061CC(A4, A8) /* unknown */ void A4; /* unknown */ void A8; { eax = A4; A8 :: 0; (save)esi; if(!(ecx = A8 - 1)) { do { if(*eax == 0) { break; } eax = eax + 1; esi = ecx; ecx = ecx - 1; } while(esi != 0); } (restore)esi; if(*eax == 0) { return(eax - A4); } return(A8); } stack space not deallocated on return /* Procedure: 0x100061F7 - 0x1000633F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L100061F7() { (save)ebp; ebp = esp; (save)-1; (save)268465480; (save)0x10005ed0; (save) *%fs:0x0]; *%fs:0x0] = esp; esp = esp - 24; (save)ebx; (save)esi; (save)edi; *(ebp - 24) = esp; eax = *L1000B17C; ebx = 0; if(eax == 0) { (save)ebp - 28; esi = 1; (save)1; (save)268465448; (save)1; if(*__imp__GetStringTypeW() != 0) { eax = esi; } else { (save)ebp - 28; (save)esi; (save)268465444; (save)esi; (save)ebx; if(*__imp__GetStringTypeA() == 0) { goto L1000632c; } eax = 2; } *L1000B17C = eax; } if(eax == 2) { eax = *(ebp + 28); if(eax == ebx) { eax = *L1000B158; } (save) *(ebp + 20); (save) *(ebp + 16); (save) *(ebp + 12); (save) *(ebp + 8); (save)eax; eax = *__imp__GetStringTypeA(); } else { if(eax == 1) { if(*(ebp + 24) == ebx) { *(ebp + 24) = *L1000B168; } (save)ebx; (save)ebx; (save) *(ebp + 16); (save) *(ebp + 12); eax = ~( *(ebp + 32)); asm("sbb eax,eax"); (save)(eax & 8) + 1; (save) *(ebp + 24); eax = *__imp__MultiByteToWideChar(); *(ebp - 32) = eax; if(eax == ebx) { goto L1000632c; } *(ebp - 4) = ebx; edi = eax + eax; al = edi + 3 & 252; L100049A0(); *(ebp - 24) = esp; esi = esp; *(ebp - 36) = esi; L10005D80(esi, ebx, edi); goto L100062fb; return(1); esp = *(ebp - 24); ebx = 0; esi = 0; L100062fb: *(ebp - 4) = *(ebp - 4) | -1; if(esi == ebx) { goto L1000632c; } (save) *(ebp - 32); (save)esi; (save) *(ebp + 16); (save) *(ebp + 12); (save)1; (save) *(ebp + 24); eax = *__imp__MultiByteToWideChar(); if(eax == ebx) { goto L1000632c; } eax = *__imp__GetStringTypeW( *(ebp + 8), esi, eax, *(ebp + 20)); } else { L1000632c: eax = 0; } } esp = ebp - 52; *%fs:0x0] = *(ebp - 16); (restore)edi; (restore)esi; (restore)ebx; (restore)ebp; } /* Procedure: 0x10006340 - 0x100063AE * Argument size: 8 * Local size: 0 * Save regs size: 4 */ L10006340(A4, A8) /* unknown */ void A4; /* unknown */ void A8; { /* unknown */ void ebx; ebx = 0; if(*L1000B158 == 0) { A4 = A8; if(A4 < 97 || A4 > 122) { goto L100063ad; } return(A4 - 32); } (save)esi; esi = 268481220; (save)edi; (save)268481220; *__imp__InterlockedIncrement(); edi = __imp__InterlockedDecrement; if(*L1000B2C0 != ebx) { (save)esi; *__imp__InterlockedDecrement(); L10003A2A(19); ebx = 1; } A4 = L100063AF(A4); if(ebx != 0) { L10003A8B(19); } else { *edi(esi); } (restore)edi; (restore)esi; L100063ad: } /* Procedure: 0x100063AF - 0x1000647A * Argument size: 6 * Local size: 0 * Save regs size: 0 */ L100063AF(A8, A9, Aa) /* unknown */ void A8; /* unknown */ void A9; /* unknown */ void Aa; { (save)ecx; (save)ebx; if(*L1000B158 == 0) { eax = A8; if(eax >= 97 && eax <= 122) { eax = eax - 32; } } else { ebx = A8; if(ebx < 256) { if(*L1000ACF4 > 1) { eax = L1000647B(ebx, 2); } else { eax = *L100085E8; eax = *(eax + ebx * 2) & 2; } if(eax != 0) { goto L1000640d; } L10006409: eax = ebx; } else { L1000640d: eax = ebx >> 8; if(!( *( *L100085E8 + (al & 255) * 2 + 1) & 128)) { Aa = 0; A8 = al; A9 = bl; (save)2; } else { A9 = 0; A8 = bl; (save)1; } (restore)eax; eax = L10005FA8( *L1000B158, 512, & A8, eax, ebp - 4, 3, 0, 1); if(eax == 0) { goto L10006409; } if(eax == 1) { eax = *(ebp - 4) & 255; } else { eax = *(ebp - 3) & 255; ecx = *(ebp - 4) & 255; eax = eax << 8 | ecx; } } } (restore)ebx; } /* Procedure: 0x1000647B - 0x100064EF * Argument size: 8 * Local size: 0 * Save regs size: 0 */ L1000647B(A8, Aa, Ac) /* unknown */ void A8; /* unknown */ void Aa; /* unknown */ void Ac; { (save)ecx; eax = A8; if(eax + 1 <= 256) { eax = *( *L100085E8 + eax * 2) & 65535; } else { ecx = eax; (save)esi; ecx = ecx >> 8; (restore)esi; if(!( *( *L100085E8 + (cl & 255) * 2 + 1) & 128)) { *(ebp - 2) = 0; *(ebp - 4) = cl; *(ebp - 3) = al; (save)2; } else { *(ebp - 3) = 0; *(ebp - 4) = al; (save)1; } (restore)eax; eax = L100061F7(1, ebp - 4, eax, & Aa, 0, 0, 1); if(eax == 0) { return; } eax = Aa & 65535; } eax = eax & Ac; esp = ebp; } /* DEST BLOCK NOT FOUND: 10006570 -> 1247ed77 */ /* Procedure: 0x100064F0 - 0x100067E6 * Argument size: 12 * Local size: 0 * Save regs size: 8 */ L100064F0(A8, Ac, A10) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; { /* unknown */ void esi; /* unknown */ void edi; esi = Ac; ecx = A10; edi = A8; eax = ecx; edx = ecx; eax = eax + esi; if(edi <= esi || edi >= eax) { if(!(edi & 3)) { ecx = ecx >> 2; edx = edx & 3; if(ecx < 8) { goto L1000654c; } asm("rep movsd"); goto *(edx * 4 + 0x10006638)[L10006648, L10006650, L1000665c, L10006670, ]goto ( *(edx * 4 + 0x10006638)); } eax = edi; edx = 3; if(!(ecx = ecx - 4)) { eax = eax & 3; ecx = ecx + eax; goto ( *(eax * 4 + 0x10006550)); } goto ( *(ecx * 4 + 0x10006648)); L1000654c: goto *(ecx * 4 + 0x100065cc)[L1000662f, L1000661c, L10006614, L1000660c, L10006604, L100065fc, L100065f4, L100065ec, ]goto ( *(ecx * 4 + 0x100065cc)); asm("pusha"); *%gs:eax] = *%gs:eax] + dl; *ebp = fs; asm("adc [eax+0x23100065],dh"); asm("ror dword [edx+0x8a078806],1"); esi = esi + 1; *(eax + 1183449415) = *(eax + 1183449415) + ecx; al = al + cl; goto L1247ed77; esi = esi + 3; edi = edi + 3; if(ecx < 8) { goto L1000654c; } asm("rep movsd"); goto *(edx * 4 + 0x10006638)[L10006648, L10006650, L1000665c, L10006670, ]goto ( *(edx * 4 + 0x10006638)); edx = edx & ecx; al = *esi; *edi = al; al = *(esi + 1); ecx = ecx >> 2; *(edi + 1) = al; esi = esi + 2; edi = edi + 2; if(ecx < 8) { goto L1000654c; } asm("rep movsd"); goto *(edx * 4 + 0x10006638)[L10006648, L10006650, L1000665c, L10006670, ]goto ( *(edx * 4 + 0x10006638)); edx = edx & ecx; al = *esi; *edi = al; esi = esi + 1; ecx = ecx >> 2; edi = edi + 1; if(ecx < 8) { goto L1000654c; } asm("rep movsd"); goto *(edx * 4 + 0x10006638)[L10006648, L10006650, L1000665c, L10006670, ]goto ( *(edx * 4 + 0x10006638)); eax = *(esi + ecx * 4 - 28); *(edi + ecx * 4 - 28) = eax; eax = *(esi + ecx * 4 - 24); *(edi + ecx * 4 - 24) = eax; eax = *(esi + ecx * 4 - 20); *(edi + ecx * 4 - 20) = eax; eax = *(esi + ecx * 4 - 16); *(edi + ecx * 4 - 16) = eax; eax = *(esi + ecx * 4 - 12); *(edi + ecx * 4 - 12) = eax; eax = *(esi + ecx * 4 - 8); *(edi + ecx * 4 - 8) = eax; eax = *(esi + ecx * 4 - 4); *(edi + ecx * 4 - 4) = eax; eax = ecx * 4; esi = esi + eax; edi = edi + eax; goto *(edx * 4 + 0x10006638)[L10006648, L10006650, L1000665c, L10006670, ]goto ( *(edx * 4 + 0x10006638)); return(A8); al = *esi; *edi = al; esp = ebp; return(A8); al = *esi; *edi = al; al = *(esi + 1); *(edi + 1) = al; esp = ebp; return(A8); al = *esi; *edi = al; al = *(esi + 1); *(edi + 1) = al; al = *(esi + 2); *(edi + 2) = al; esp = ebp; return(A8); } esi = ecx + esi - 4; edi = ecx + edi - 4; if(!(edi & 3)) { ecx = ecx >> 2; edx = edx & 3; if(ecx >= 8) { asm("std"); asm("rep movsd"); asm("cld"); goto *(edx * 4 + 0x100067d0)[L100067e0, L100067e8, L100067f8, L1000680c, ]goto ( *(edx * 4 + 0x100067d0)); } L100066b0: ecx = ~ecx; goto *(ecx * 4 + 0x10006780)[L100067c7, ]goto ( *(ecx * 4 + 0x10006780)); } eax = edi; edx = 3; if(ecx >= 4) { ecx = ecx - (eax & 3); goto ( *(eax * 4 + 0x100066d8)); } goto *(ecx * 4 + 0x100067d0)[L100067e0, L100067e8, L100067f8, L1000680c, ]goto ( *(ecx * 4 + 0x100067d0)); eax = L18106747(); *(bx + si) = *(bx + si) + dl; *edi = *edi ^ ah; asm("adc [edx+0xd1230346],cl"); *(edi + 3) = al; esi = esi - 1; ecx = ecx >> 2; edi = edi - 1; if(ecx < 8) { goto L100066b0; } asm("std"); asm("rep movsd"); asm("cld"); goto *(edx * 4 + 0x100067d0)[L100067e0, L100067e8, L100067f8, L1000680c, ]goto ( *(edx * 4 + 0x100067d0)); al = *(esi + 3); edx = edx & ecx; *(edi + 3) = al; al = *(esi + 2); ecx = ecx >> 2; *(edi + 2) = al; esi = esi - 2; edi = edi - 2; if(ecx < 8) { goto L100066b0; } asm("std"); asm("rep movsd"); asm("cld"); goto *(edx * 4 + 0x100067d0)[L100067e0, L100067e8, L100067f8, L1000680c, ]goto ( *(edx * 4 + 0x100067d0)); al = *(esi + 3); edx = edx & ecx; *(edi + 3) = al; al = *(esi + 2); *(edi + 2) = al; al = *(esi + 1); ecx = ecx >> 2; *(edi + 1) = al; esi = esi - 3; edi = edi - 3; if(ecx < 8) { goto L100066b0; } asm("std"); asm("rep movsd"); asm("cld"); goto *(edx * 4 + 0x100067d0)[L100067e0, L100067e8, L100067f8, L1000680c, ]goto ( *(edx * 4 + 0x100067d0)); *edi & ah; asm("adc [edi+0x67941000],cl"); *eax = *eax + dl; asm("pushf"); *(bx + si) = *(bx + si) + dl; *edi = *esi; edi = edi + 1; esi = esi + 1; *(bx + si) = *(bx + si) + dl; al = *esi; *(bx + esi + 1) = *(bx + esi + 1) + dl; *L00000067 = *L00000067 + dl; *(edi + ecx * 4 + 28) = *(esi + ecx * 4 + 28); *(edi + ecx * 4 + 24) = *(esi + ecx * 4 + 24); *(edi + ecx * 4 + 20) = *(esi + ecx * 4 + 20); *(edi + ecx * 4 + 16) = *(esi + ecx * 4 + 16); *(edi + ecx * 4 + 12) = *(esi + ecx * 4 + 12); *(edi + ecx * 4 + 8) = *(esi + ecx * 4 + 8); *(edi + ecx * 4 + 4) = *(esi + ecx * 4 + 4); eax = ecx * 4; esi = esi + eax; edi = edi + eax; goto *(edx * 4 + 0x100067d0)[L100067e0, L100067e8, L100067f8, L1000680c, ]goto ( *(edx * 4 + 0x100067d0)); return(A8); } stack space not deallocated on return /* Procedure: 0x100067E7 - 0x100067F4 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L100067E7() { *(edi + 3) = *(esi + 3); eax = *(ebp + 8); (restore)esi; (restore)edi; esp = ebp; (restore)ebp; } stack space not deallocated on return /* Procedure: 0x100067F5 - 0x1000680A * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L100067F5() { *(edi + 3) = *(esi + 3); *(edi + 2) = *(esi + 2); eax = *(ebp + 8); (restore)esi; (restore)edi; esp = ebp; (restore)ebp; } stack space not deallocated on return /* Procedure: 0x1000680B - 0x10006824 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L1000680B() { *(edi + 3) = *(esi + 3); *(edi + 2) = *(esi + 2); *(edi + 1) = *(esi + 1); eax = *(ebp + 8); (restore)esi; (restore)edi; esp = ebp; (restore)ebp; } /* Procedure: 0x10006825 - 0x10006855 * Argument size: 4 * Local size: 0 * Save regs size: 4 */ L10006825(A8) /* unknown */ void A8; { (save)edi; edi = edi | -1; if(!( *(A8 + 12) & 64)) { *(A8 + 12) = 0; } else { L100036CC(A8); (save)A8; edi = L10006856(); L1000371E(A8); } eax = edi; (restore)edi; } /* Procedure: 0x10006856 - 0x100068A1 * Argument size: 4 * Local size: 0 * Save regs size: 4 */ L10006856(A8) /* unknown */ void A8; { (save)edi; edi = edi | -1; if(!( *(A8 + 12) & 131)) { (save)A8; edi = L10005C44(A8); L10006B2A(); (save) *(A8 + 16); esp = esp + 12; if(L10006A4A() < 0) { edi = edi | -1; } else { eax = *(A8 + 28); if(eax != 0) { L10003BDD(eax); *(A8 + 28) = 0; } } } *(A8 + 12) = 0; eax = edi; (restore)edi; } stack space not deallocated on return /* Procedure: 0x100068A2 - 0x10006934 * Argument size: 4 * Local size: 0 * Save regs size: 4 */ L100068A2(Ac) /* unknown */ void Ac; { (save)esi; (save)edi; if(Ac < *L1000C640) { edi = (Ac >> 5) * 4 + 268485952; esi = (Ac & 31) + (Ac & 31) * 8; eax = *edi; esi = esi << 2; if(*(eax + esi + 4) & 1) { goto L10006923; } L10005B14(Ac); if(!( *( *edi + esi + 4) & 1)) { (save)L10005AD2(Ac); esi = *__imp__FlushFileBuffers() == 0 ? *__imp__GetLastError() : 0; if(esi == 0) { goto L10006918; } *(L10005A4A()) = esi; } *(L10005A41()) = 9; esi = esi | -1; L10006918: L10005B73(Ac); eax = esi; } else { L10006923: eax = L10005A41(); *eax = 9; eax = eax | -1; } (restore)edi; (restore)esi; } stack space not deallocated on return /* Procedure: 0x10006935 - 0x10006A0D * Argument size: 8 * Local size: 0 * Save regs size: 0 */ L10006935(A4, A8) /* unknown */ void A4; /* unknown */ void A8; { asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); edx = A4; ecx = A8; if(!(edx & 3)) { L10006950: do { eax = *edx; if(al != *ecx) { goto L10006984; } if(al == 0) { break; } if(ah != *(ecx + 1)) { goto L10006984; } if(ah == 0) { break; } eax = eax >> 16; if(al != *(ecx + 2)) { goto L10006984; } if(al == 0) { break; } if(ah != *(ecx + 3)) { goto L10006984; } ecx = ecx + 4; edx = edx + 4; } while(ah != 0); L10006980: return(0); L10006984: asm("sbb eax,eax"); return((eax << 1) + 1); } if(!(edx & 1)) { al = *edx; edx = edx + 1; if(al != *ecx) { goto L10006984; } ecx = ecx + 1; if(al == 0) { goto L10006980; } if(edx & 2) { goto L10006950; } } ax = *edx; edx = edx + 2; if(al != *ecx) { goto L10006984; } if(al == 0) { goto L10006980; } if(ah != *(ecx + 1)) { goto L10006984; } if(ah == 0) { goto L10006980; } ecx = ecx + 2; goto L10006950; asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); (save)ebp; ebp = esp; (save)esi; (save)0; (save)0; (save)0; (save)0; (save)0; (save)0; (save)0; (save)0; for(edx = *(ebp + 12); *edx != 0; asm("bts [esp],eax");) { edx = edx + 1; } esi = *(ebp + 8); ecx = ecx | -1; L100069f8: ecx = ecx + 1; if(*esi != 0) { asm("bt [esp],eax"); if(esi = esi + 1) { goto L100069f8; } } eax = ecx; esp = esp + 32; (restore)esi; esp = ebp; (restore)ebp; } stack space not deallocated on return /* Procedure: 0x10006A0E - 0x10006A49 * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10006A0E() { asm("int3"); asm("int3"); (save)ebp; ebp = esp; (save)esi; (save)0; (save)0; (save)0; (save)0; (save)0; (save)0; (save)0; (save)0; for(edx = *(ebp + 12); *edx != 0; asm("bts [esp],eax");) { edx = edx + 1; } esi = *(ebp + 8); do { if(*esi == 0) { goto L10006a44; } asm("bt [esp],eax"); } while(esi = esi + 1); eax = esi - 1; L10006a44: esp = esp + 32; (restore)esi; esp = ebp; (restore)ebp; } /* Procedure: 0x10006A4A - 0x10006AA6 * Argument size: 4 * Local size: 0 * Save regs size: 4 */ L10006A4A(A8) /* unknown */ void A8; { if(A8 < *L1000C640) { ecx = A8; eax = A8; ecx = ecx >> 5; eax = eax & 31; ecx = *(ecx * 4 + 268485952); if(!( *(ecx + (eax + eax * 8) * 4 + 4) & 1)) { (save)edi; L10005B14(A8); (save)A8; edi = L10006AA7(); L10005B73(A8); eax = edi; (restore)edi; return; } } *(L10005A41()) = 9; eax = L10005A4A(); *eax = 0; return(eax | -1); } stack space not deallocated on return /* Procedure: 0x10006AA7 - 0x10006B29 * Argument size: 4 * Local size: 0 * Save regs size: 4 */ L10006AA7(Ac) /* unknown */ void Ac; { /* unknown */ void esi; esi = Ac; (save)edi; if(L10005AD2(esi) != -1) { if(esi == 1 || esi == 2) { edi = L10005AD2(2); (restore)ecx; if(L10005AD2(1) == edi) { goto L10006af5; } } (save)L10005AD2(esi); if(*__imp__CloseHandle() != 0) { goto L10006af5; } edi = *__imp__GetLastError(); } else { L10006af5: edi = 0; } L10005A53(esi); eax = esi; esi = esi & 31; eax = *((eax >> 5) * 4 + 268485952); *(eax + (esi + esi * 8) * 4 + 4) = 0; eax = edi != 0 ? L100059CE(edi) | -1 : 0; (restore)edi; } /* Procedure: 0x10006B2A - 0x10006B54 * Argument size: 4 * Local size: 0 * Save regs size: 4 */ L10006B2A(A8) /* unknown */ void A8; { eax = *(A8 + 12); if(!(al & 131) && !(al & 8)) { L10003BDD( *(A8 + 8)); *(A8 + 12) = *(A8 + 12) & 64503; eax = 0; *A8 = 0; *(A8 + 8) = 0; *(A8 + 4) = 0; } } stack space not deallocated on return /* Procedure: 0x10006B55 - 0x10006C2F * Argument size: 0 * Local size: 0 * Save regs size: 0 */ L10006B55() { asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); asm("int3"); (save)ebp; ebp = esp; (save)edi; (save)esi; (save)ebx; esi = *(ebp + 12); edi = *(ebp + 8); eax = 268480848; if(*L1000B158 == 0) { al = 255; L10006b7c: do { if(al == 0) { goto L10006bae; } al = *esi; esi = esi + 1; ah = *edi; edi = edi + 1; if(ah == al) { goto L10006b7c; } al = al - 65; al :: 26; asm("sbb cl,cl"); cl = cl & 32; al = al + cl + 65; asm("xchg ah,al"); al = al - 65; al :: 26; asm("sbb cl,cl"); cl = cl & 32; } while(al == al + cl + 65); asm("sbb al,al"); asm("sbb al,0xff"); L10006bae: eax = al; } else { asm("lock inc dword [0x1000b2c4]"); if(*L1000B2C0 <= 0) { (save)0; } else { asm("lock dec dword [0x1000b2c4]"); eax = L10003A2A(19); *esp = 1; } eax = 255; ebx = 0; L10006be4: do { if(al == 0) { goto L10006c0f; } al = *esi; esi = esi + 1; bl = *edi; edi = edi + 1; if(al == bl) { goto L10006be4; } (save)eax; ebx = L10006D31(ebx); eax = L10006D31(); esp = esp + 4; } while(bl == al); asm("sbb eax,eax"); asm("sbb eax,-0x1"); L10006c0f: ebx = eax; (restore)eax; if(eax == 0) { asm("lock dec dword [0x1000b2c4]"); } else { L10003A8B(19); } eax = ebx; } (restore)ebx; (restore)esi; (restore)edi; esp = ebp; (restore)ebp; } /* Procedure: 0x10006C30 - 0x10006D30 * Argument size: 12 * Local size: 0 * Save regs size: 12 */ L10006C30(A8, Ac, A10) /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; { /* unknown */ void ebx; /* unknown */ void esi; /* unknown */ void edi; ecx = A10; if(ecx != 0) { esi = A8; edi = Ac; eax = 268480848; if(*L1000B158 != 0) { goto L10006ca1; } bh = 65; bl = 90; dh = 32; do { ah = *esi; al = *edi; if(ah == 0 || al == 0) { break; } esi = esi + 1; edi = edi + 1; if(ah >= bh && ah <= bl) { ah = ah + dh; } if(al >= bh && al <= bl) { al = al + dh; } if(ah != al) { goto L10006c8f; } } while(ecx = ecx - 1); ecx = 0; if(ah != al) { L10006c8f: ecx = -1; < ? L10006d2a : ; ecx = ~LFFFFFFFF; goto L10006d2a; L10006ca1: asm("lock inc dword [0x1000b2c4]"); if(*L1000B2C0 <= 0) { (save)0; } else { asm("lock dec dword [0x1000b2c4]"); ebx = ecx; eax = L10003A2A(19); *esp = 1; ecx = ebx; } eax = 0; ebx = 0; do { al = *esi; bl = *edi; if(eax == 0 || ebx == 0) { break; } esi = esi + 1; edi = edi + 1; (save)ecx; (save)eax; ebx = L10006D31(ebx); eax = L10006D31(); esp = esp + 4; (restore)ecx; if(eax != ebx) { goto L10006d05; } } while(ecx = ecx - 1); ecx = 0; if(eax != ebx) { L10006d05: ecx = -1; < ? L10006d0e : ; ecx = ~LFFFFFFFF; } (restore)eax; if(eax == 0) { asm("lock dec dword [0x1000b2c4]"); } else { ebx = ecx; L10003A8B(19); ecx = ebx; } } } L10006d2a: return(ecx); } /* Procedure: 0x10006D31 - 0x10006DFB * Argument size: 6 * Local size: 0 * Save regs size: 0 */ L10006D31(A8, A9, Aa) /* unknown */ void A8; /* unknown */ void A9; /* unknown */ void Aa; { (save)ecx; (save)ebx; (save)esi; (save)edi; if(*L1000B158 == 0) { eax = A8; if(eax >= 65 && eax <= 90) { eax = eax + 32; } } else { ebx = A8; edi = 256; (save)1; (restore)esi; if(ebx < 256) { if(*L1000ACF4 > esi) { eax = L1000647B(ebx, esi); } else { eax = *L100085E8; eax = *(eax + ebx * 2) & esi; } if(eax != 0) { goto L10006d92; } L10006d8e: eax = ebx; } else { L10006d92: eax = ebx >> 8; if(!( *( *L100085E8 + (al & 255) * 2 + 1) & 128)) { Aa = 0; (save)2; A8 = al; A9 = bl; (restore)eax; } else { A9 = 0; A8 = bl; eax = esi; } eax = L10005FA8( *L1000B158, edi, & A8, eax, ebp - 4, 3, 0, esi); if(eax == 0) { goto L10006d8e; } if(eax == esi) { eax = *(ebp - 4) & 255; } else { eax = *(ebp - 3) & 255; ecx = *(ebp - 4) & 255; eax = eax << 8 | ecx; } } } (restore)edi; (restore)esi; (restore)ebx; } /* Procedure: 0x10006DFC - 0x10006E33 * Argument size: 16 * Local size: 0 * Save regs size: 0 */ L10006DFC(A4, A8, Ac, A10) /* unknown */ void A4; /* unknown */ void A8; /* unknown */ void Ac; /* unknown */ void A10; { asm("int3"); asm("int3"); asm("int3"); asm("int3"); eax = A8; if(!(Ac = A10 | eax)) { eax = A4; asm("mul ecx"); return; } (save)ebx; asm("mul ecx"); ebx = eax; eax = A4; asm("mul dword [esp+0x14]"); ebx = ebx + eax; eax = A4; asm("mul ecx"); edx = edx + ebx; (restore)ebx; } /* DEST BLOCK NOT FOUND: 10006e34 -> 10006e19 */ /* Procedure: 0x10006E34 - 0x10006FFF * Argument size: 0 * Local size: 0 * Save regs size: 0 */ RtlUnwind() { goto ( *__imp__RtlUnwind); *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; *eax = *eax + al; } /* address size */ /* 0x10001260 0 */ /* unknown */ void ShockproofSetAutoDisable; /* 0x100012a0 0 */ /* unknown */ void ShockproofGetAutoDisable; /* 0x10001300 0 */ /* unknown */ void ShockproofControl; /* 0x10001350 0 */ /* unknown */ void ShockproofGetVersion; /* 0x100014d0 0 */ /* unknown */ void ShockproofGetUnloadCnt; /* 0x10001540 0 */ /* unknown */ void ShockproofGetShockStatus; /* 0x10001550 0 */ /* unknown */ void ShockproofGetSlaveCPUinfo; /* 0x100015b0 0 */ /* unknown */ void ShockproofGetAccelerometerMutex; /* 0x100015f0 0 */ /* unknown */ void ShockproofReleaseAccelerometerMutex; /* 0x10001610 0 */ /* unknown */ void ShockproofGetAccelerometerData; /* 0x10001670 0 */ /* unknown */ void ShockproofGetAccelerometerDataEx; /* 0x100016d0 0 */ /* unknown */ void ShockproofInformPMevent; /* 0x10001840 0 */ /* unknown */ void ShockproofManualSensitivitySetting; /* 0x100018d0 0 */ /* unknown */ void ShockproofInvokeSnooze; /* 0x10001900 0 */ /* unknown */ void ShockproofSnoozeSetting; /* 0x10001990 0 */ /* unknown */ void ShockproofEnableDisableSnooze; /* 0x10001a20 0 */ /* unknown */ void ShockproofCallSMAPIBIOS; /* 0x10001bf1 0 */ /* unknown */ void __entry_point__; /* 0x100040b7 0 */ /* unknown */ void GetOEMCP; /* 0x100040cc 0 */ /* unknown */ void GetACP; /* 0x10006e34 0 */ /* unknown */ void RtlUnwind; /* 0x10007000 0 */ /* unknown */ void __imp__SetSecurityDescriptorDacl; /* 0x10007004 0 */ /* unknown */ void __imp__InitializeSecurityDescriptor; /* 0x1000700c 0 */ /* unknown */ void __imp__GetLastError; /* 0x10007010 0 */ /* unknown */ void __imp__CreateFileA; /* 0x10007014 0 */ /* unknown */ void __imp__DeviceIoControl; /* 0x10007018 0 */ /* unknown */ void __imp__LocalAlloc; /* 0x1000701c 0 */ /* unknown */ void __imp__ReleaseMutex; /* 0x10007020 0 */ /* unknown */ void __imp__SetEvent; /* 0x10007024 0 */ /* unknown */ void __imp__CloseHandle; /* 0x10007028 0 */ /* unknown */ void __imp__WaitForSingleObject; /* 0x1000702c 0 */ /* unknown */ void __imp__CreateMutexA; /* 0x10007030 0 */ /* unknown */ void __imp__GetCommandLineA; /* 0x10007034 0 */ /* unknown */ void __imp__GetVersion; /* 0x10007038 0 */ /* unknown */ void __imp__ExitProcess; /* 0x1000703c 0 */ /* unknown */ void __imp__TerminateProcess; /* 0x10007040 0 */ /* unknown */ void __imp__GetCurrentProcess; /* 0x10007044 0 */ /* unknown */ void __imp__GetCurrentThreadId; /* 0x10007048 0 */ /* unknown */ void __imp__TlsSetValue; /* 0x1000704c 0 */ /* unknown */ void __imp__TlsAlloc; /* 0x10007050 0 */ /* unknown */ void __imp__TlsFree; /* 0x10007054 0 */ /* unknown */ void __imp__SetLastError; /* 0x10007058 0 */ /* unknown */ void __imp__TlsGetValue; /* 0x1000705c 0 */ /* unknown */ void __imp__SetHandleCount; /* 0x10007060 0 */ /* unknown */ void __imp__GetStdHandle; /* 0x10007064 0 */ /* unknown */ void __imp__GetFileType; /* 0x10007068 0 */ /* unknown */ void __imp__GetStartupInfoA; /* 0x1000706c 0 */ /* unknown */ void __imp__DeleteCriticalSection; /* 0x10007070 0 */ /* unknown */ void __imp__GetModuleFileNameA; /* 0x10007074 0 */ /* unknown */ void __imp__FreeEnvironmentStringsA; /* 0x10007078 0 */ /* unknown */ void __imp__FreeEnvironmentStringsW; /* 0x1000707c 0 */ /* unknown */ void __imp__WideCharToMultiByte; /* 0x10007080 0 */ /* unknown */ void __imp__GetEnvironmentStrings; /* 0x10007084 0 */ /* unknown */ void __imp__GetEnvironmentStringsW; /* 0x10007088 0 */ /* unknown */ void __imp__GetModuleHandleA; /* 0x1000708c 0 */ /* unknown */ void __imp__GetEnvironmentVariableA; /* 0x10007090 0 */ /* unknown */ void __imp__GetVersionExA; /* 0x10007094 0 */ /* unknown */ void __imp__HeapDestroy; /* 0x10007098 0 */ /* unknown */ void __imp__HeapCreate; /* 0x1000709c 0 */ /* unknown */ void __imp__VirtualFree; /* 0x100070a0 0 */ /* unknown */ void __imp__HeapFree; /* 0x100070a4 0 */ /* unknown */ void __imp__WriteFile; /* 0x100070a8 0 */ /* unknown */ void __imp__SetFilePointer; /* 0x100070ac 0 */ /* unknown */ void __imp__EnterCriticalSection; /* 0x100070b0 0 */ /* unknown */ void __imp__LeaveCriticalSection; /* 0x100070b4 0 */ /* unknown */ void __imp__InterlockedDecrement; /* 0x100070b8 0 */ /* unknown */ void __imp__InterlockedIncrement; /* 0x100070bc 0 */ /* unknown */ void __imp__InitializeCriticalSection; /* 0x100070c0 0 */ /* unknown */ void __imp__HeapAlloc; /* 0x100070c4 0 */ /* unknown */ void __imp__GetCPInfo; /* 0x100070c8 0 */ /* unknown */ void __imp__GetACP; /* 0x100070cc 0 */ /* unknown */ void __imp__GetOEMCP; /* 0x100070d0 0 */ /* unknown */ void __imp__VirtualAlloc; /* 0x100070d4 0 */ /* unknown */ void __imp__HeapReAlloc; /* 0x100070d8 0 */ /* unknown */ void __imp__GetProcAddress; /* 0x100070dc 0 */ /* unknown */ void __imp__LoadLibraryA; /* 0x100070e0 0 */ /* unknown */ void __imp__SetStdHandle; /* 0x100070e4 0 */ /* unknown */ void __imp__RtlUnwind; /* 0x100070e8 0 */ /* unknown */ void __imp__MultiByteToWideChar; /* 0x100070ec 0 */ /* unknown */ void __imp__LCMapStringA; /* 0x100070f0 0 */ /* unknown */ void __imp__LCMapStringW; /* 0x100070f4 0 */ /* unknown */ void __imp__GetStringTypeA; /* 0x100070f8 0 */ /* unknown */ void __imp__GetStringTypeW; /* 0x100070fc 0 */ /* unknown */ void __imp__FlushFileBuffers; /* 0x10007d38 0 */ /* unknown */ void __statebuf; #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: +insertlabels option: -int16 option: +int32 option: -interactive option: -isvb5 option: +locals 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: -stackalign16 option: -stackalign4 option: -stackalign8 option: -strallregions option: -traceall option: -tracesets option: +types option: -usesymtab option: -validatebr option: -validatereg option: +validatestr #endif