Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* This file has been generated by the Hex-Rays decompiler.
- Copyright (c) 2009 Hex-Rays <[email protected]>
- Detected compiler: Visual C++
- */
- #include <windows.h>
- #include <defs.h>
- //-------------------------------------------------------------------------
- // Data declarations
- extern _UNKNOWN sub_4011EB; // weak
- extern _UNKNOWN sub_40137A; // weak
- extern _UNKNOWN sub_401427; // weak
- extern _UNKNOWN sub_4015E3; // weak
- extern _UNKNOWN sub_401D9A; // weak
- extern _UNKNOWN sub_40351C; // weak
- extern _UNKNOWN loc_40358E; // weak
- extern _UNKNOWN sub_40373C; // weak
- extern _UNKNOWN sub_403A58; // weak
- extern _UNKNOWN sub_403AE0; // weak
- extern _UNKNOWN sub_403D33; // weak
- extern _UNKNOWN sub_403F54; // weak
- extern _UNKNOWN sub_404124; // weak
- extern _UNKNOWN sub_404344; // weak
- extern _UNKNOWN sub_404490; // weak
- extern _UNKNOWN sub_404564; // weak
- extern _UNKNOWN sub_40466B; // weak
- extern _UNKNOWN sub_404713; // weak
- extern _UNKNOWN sub_404870; // weak
- extern _UNKNOWN sub_404914; // weak
- extern _UNKNOWN sub_404BA5; // weak
- extern _UNKNOWN sub_404C7E; // weak
- extern _UNKNOWN sub_404DAD; // weak
- extern _UNKNOWN loc_404DC6; // weak
- extern _UNKNOWN sub_404EDA; // weak
- extern _UNKNOWN sub_405096; // weak
- extern _UNKNOWN sub_40517E; // weak
- extern _UNKNOWN sub_4053D7; // weak
- extern _UNKNOWN sub_405561; // weak
- extern _UNKNOWN sub_405687; // weak
- extern _UNKNOWN sub_40570E; // weak
- extern _UNKNOWN sub_405A2C; // weak
- extern _UNKNOWN sub_405D02; // weak
- extern _UNKNOWN sub_405D51; // weak
- extern _UNKNOWN sub_405FCC; // weak
- extern _UNKNOWN sub_406000; // weak
- extern _UNKNOWN sub_4061AC; // weak
- extern _UNKNOWN sub_406363; // weak
- extern _UNKNOWN sub_4064BB; // weak
- extern _UNKNOWN sub_406AF7; // weak
- extern _UNKNOWN sub_406BF0; // weak
- extern _UNKNOWN sub_406C4C; // weak
- extern _UNKNOWN sub_406D7F; // weak
- extern _UNKNOWN sub_406E73; // weak
- extern _UNKNOWN sub_406F63; // weak
- extern _UNKNOWN sub_407157; // weak
- extern _UNKNOWN sub_4072C5; // weak
- extern _UNKNOWN sub_4076AE; // weak
- extern _UNKNOWN sub_408434; // weak
- extern _UNKNOWN sub_4085C5; // weak
- extern _UNKNOWN sub_408753; // weak
- extern _UNKNOWN sub_40886F; // weak
- extern _UNKNOWN sub_40A3D6; // weak
- extern _UNKNOWN sub_40A562; // weak
- extern _UNKNOWN sub_40AA65; // weak
- extern _UNKNOWN loc_40AD9B; // weak
- extern _UNKNOWN sub_40AE49; // weak
- extern _UNKNOWN loc_40B7E2; // weak
- extern _UNKNOWN unk_40C169; // weak
- extern _UNKNOWN unk_40C175; // weak
- extern _UNKNOWN unk_40C181; // weak
- extern _UNKNOWN unk_40C1D5; // weak
- extern _UNKNOWN unk_40C21D; // weak
- extern char aOpenscmanagera[15]; // weak
- extern char aCreateservicea[15]; // weak
- extern char aStartservicea[14]; // weak
- extern char aRegclosekey[12]; // weak
- extern char aCreatetoolhelp[25]; // weak
- //-------------------------------------------------------------------------
- // Function declarations
- int __cdecl locret_401639(int); // weak
- void __cdecl sub_40356B();
- void __cdecl sub_403587();
- int loc_405AF2(); // weak
- // void *__usercall sub_405B88<eax>(int a1<eax>, const CHAR *a2, const CHAR *a3);
- // void *__usercall sub_4068ED<eax>(int a1<eax>, const CHAR *a2, const CHAR *a3);
- // HMODULE __usercall sub_406F42<eax>(int a1<eax>, int a2<ebx>, int a3<ebp>, int a4<esi>, const CHAR *a5);
- int __cdecl loc_406F87(int, int); // weak
- LSTATUS __cdecl sub_406FE7(HKEY a1, const CHAR *a2, DWORD a3, REGSAM a4, HKEY *a5);
- void __cdecl sub_40728E();
- int __far loc_407295(); // weak
- // HMODULE __usercall sub_408135<eax>(int a1<ebx>, int a2<esi>, const CHAR *a3);
- LPSTR __cdecl sub_4081C7(CHAR *a1, const CHAR *a2);
- LPSTR __cdecl sub_408291(char a1);
- void __cdecl sub_40848F();
- // HMODULE __usercall sub_408806<eax>(int a1<eax>, int a2<ebx>, int a3<ebp>, const CHAR *a4);
- // void __usercall sub_40881E(int a1<eax>);
- int loc_408822(); // weak
- BOOL __cdecl sub_40A069(void *a1, DWORD a2, BOOL a3, HANDLE *a4);
- int __stdcall sub_40A5AA(_DWORD, _DWORD); // weak
- // HMODULE __usercall sub_40A710<eax>(int a1<eax>, int a2<edx>, int a3<edi>, const CHAR *a4);
- // HMODULE __userpurge sub_40A896<eax>(int a1<eax>, int a2<ebx>, int a3<ebp>, int a4<esi>, const CHAR *a5, int a6, int a7, int a8, int a9, int a10, int a11, int a12, int a13, int a14, int a15, int a16, int a17, int a18, int a19, int a20, int a21, int a22, int a23, int a24, int a25, int a26, int a27, int a28, int a29, int a30, int a31, int a32, int a33, int a34, int a35, int a36, int a37, int a38, int a39, int a40, int a41, int a42, int a43, int a44, int a45, int a46, int a47, int a48, int a49, int a50, int a51, int a52, int a53, int a54, int a55, int a56, int a57, int a58, int a59, int a60, int a61, int a62, int a63);
- // DWORD __usercall sub_40AD3F<eax>(int a1<eax>, SC_HANDLE a2, int a3, int a4);
- void __cdecl sub_40AD94();
- // int except_handler3(); weak
- int __cdecl sub_40B9A0();
- // LSTATUS __stdcall RegQueryValueExA(HKEY hKey, LPCSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData);
- // BOOL __stdcall DeleteService(SC_HANDLE hService);
- // BOOL __stdcall OpenThreadToken(HANDLE ThreadHandle, DWORD DesiredAccess, BOOL OpenAsSelf, PHANDLE TokenHandle);
- // LSTATUS __stdcall RegOpenKeyExA(HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult);
- // DWORD __stdcall GetLastError();
- // LPSTR __stdcall lstrcatA(LPSTR lpString1, LPCSTR lpString2);
- // LPSTR __stdcall lstrcpyA(LPSTR lpString1, LPCSTR lpString2);
- // HMODULE __stdcall LoadLibraryA(LPCSTR lpLibFileName);
- // HMODULE __stdcall GetModuleHandleA(LPCSTR lpModuleName);
- // FARPROC __stdcall GetProcAddress(HMODULE hModule, LPCSTR lpProcName);
- //----- (004011EB) --------------------------------------------------------
- #error "4011F6: positive sp value has been found (funcsize=3)"
- //----- (0040137A) --------------------------------------------------------
- int sub_40137A(...)
- {
- JUMPOUT(a1, 0, *(unsigned int *)locret_401639);
- return GetProcAddress(*(HMODULE *)(&a2 + 2), *(LPCSTR *)(&a2 + 6));
- }
- // 401639: using guessed type int __cdecl locret_401639(int);
- //----- (00401427) --------------------------------------------------------
- #error "401438: positive sp value has been found (funcsize=5)"
- //----- (00401568) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (004015E3) --------------------------------------------------------
- #error "4015F1: positive sp value has been found (funcsize=5)"
- //----- (004016F8) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (00401D9A) --------------------------------------------------------
- #error "401DA5: positive sp value has been found (funcsize=3)"
- //----- (0040314A) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (0040329D) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (004032AB) --------------------------------------------------------
- #error "FFFFFFFF: function frame is wrong (funcsize=0)"
- //----- (0040351C) --------------------------------------------------------
- #error "403533: positive sp value has been found (funcsize=6)"
- //----- (0040356B) --------------------------------------------------------
- void __cdecl sub_40356B()
- {
- JUMPOUT(loc_40B7E2);
- }
- //----- (00403587) --------------------------------------------------------
- void __cdecl sub_403587()
- {
- JUMPOUT(loc_40358E);
- }
- //----- (004035DA) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (0040373C) --------------------------------------------------------
- #error "403747: positive sp value has been found (funcsize=3)"
- //----- (00403A4A) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (00403A58) --------------------------------------------------------
- #error "403A63: positive sp value has been found (funcsize=3)"
- //----- (00403AE0) --------------------------------------------------------
- #error "403AEB: positive sp value has been found (funcsize=3)"
- //----- (00403BED) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (00403D33) --------------------------------------------------------
- #error "403D3E: positive sp value has been found (funcsize=3)"
- //----- (00403F54) --------------------------------------------------------
- #error "403F5F: positive sp value has been found (funcsize=3)"
- //----- (00403FF9) --------------------------------------------------------
- #error "FFFFFFFF: function frame is wrong (funcsize=0)"
- //----- (00404124) --------------------------------------------------------
- #error "40412F: positive sp value has been found (funcsize=3)"
- //----- (00404344) --------------------------------------------------------
- #error "40434F: positive sp value has been found (funcsize=3)"
- //----- (00404490) --------------------------------------------------------
- #error "40449B: positive sp value has been found (funcsize=3)"
- //----- (00404564) --------------------------------------------------------
- int sub_404564(...)
- {
- void *result; // eax@2
- if ( a1 )
- result = GetProcAddress(*(HMODULE *)(&a2 + 2), *(LPCSTR *)(&a2 + 6));
- else
- result = LoadLibraryA(*(LPCSTR *)(&a2 + 2));
- return result;
- }
- //----- (0040466B) --------------------------------------------------------
- #error "404676: positive sp value has been found (funcsize=3)"
- //----- (00404713) --------------------------------------------------------
- #error "40471E: positive sp value has been found (funcsize=3)"
- //----- (00404870) --------------------------------------------------------
- int sub_404870(...)
- {
- void *result; // eax@2
- if ( a1 )
- result = GetProcAddress(*(HMODULE *)(&a2 + 2), *(LPCSTR *)(&a2 + 6));
- else
- result = LoadLibraryA(*(LPCSTR *)(&a2 + 2));
- return result;
- }
- //----- (00404914) --------------------------------------------------------
- #error "40491F: positive sp value has been found (funcsize=3)"
- //----- (00404B97) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (00404BA5) --------------------------------------------------------
- #error "404BB0: positive sp value has been found (funcsize=3)"
- //----- (00404C7E) --------------------------------------------------------
- #error "404C89: positive sp value has been found (funcsize=3)"
- //----- (00404DAD) --------------------------------------------------------
- #error "404DB8: positive sp value has been found (funcsize=3)"
- //----- (00404EDA) --------------------------------------------------------
- #error "404EE5: positive sp value has been found (funcsize=3)"
- //----- (00405096) --------------------------------------------------------
- #error "4050A1: positive sp value has been found (funcsize=3)"
- //----- (0040517E) --------------------------------------------------------
- #error "405189: positive sp value has been found (funcsize=3)"
- //----- (004052FF) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (0040530D) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (004053D7) --------------------------------------------------------
- #error "4053E2: positive sp value has been found (funcsize=3)"
- //----- (00405561) --------------------------------------------------------
- #error "40556C: positive sp value has been found (funcsize=3)"
- //----- (00405687) --------------------------------------------------------
- #error "405692: positive sp value has been found (funcsize=3)"
- //----- (0040570E) --------------------------------------------------------
- #error "405719: positive sp value has been found (funcsize=3)"
- //----- (00405A2C) --------------------------------------------------------
- #error "405A37: positive sp value has been found (funcsize=3)"
- //----- (00405B88) --------------------------------------------------------
- void *__usercall sub_405B88<eax>(int a1<eax>, const CHAR *a2, const CHAR *a3)
- {
- void *result; // eax@2
- if ( a1 )
- result = GetProcAddress((HMODULE)a2, a3);
- else
- result = LoadLibraryA(a2);
- return result;
- }
- //----- (00405D02) --------------------------------------------------------
- #error "405D0D: positive sp value has been found (funcsize=3)"
- //----- (00405D51) --------------------------------------------------------
- #error "405D5C: positive sp value has been found (funcsize=3)"
- //----- (00405FBE) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (00405FCC) --------------------------------------------------------
- #error "405FD7: positive sp value has been found (funcsize=3)"
- //----- (00406000) --------------------------------------------------------
- #error "40600B: positive sp value has been found (funcsize=3)"
- //----- (004061AC) --------------------------------------------------------
- #error "4061B7: positive sp value has been found (funcsize=3)"
- //----- (00406363) --------------------------------------------------------
- #error "40636E: positive sp value has been found (funcsize=3)"
- //----- (004064BB) --------------------------------------------------------
- #error "4064C6: positive sp value has been found (funcsize=3)"
- //----- (004068ED) --------------------------------------------------------
- void *__usercall sub_4068ED<eax>(int a1<eax>, const CHAR *a2, const CHAR *a3)
- {
- void *result; // eax@2
- if ( a1 )
- result = GetProcAddress((HMODULE)a2, a3);
- else
- result = LoadLibraryA(a2);
- return result;
- }
- //----- (004069EF) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (00406AF7) --------------------------------------------------------
- #error "406B02: positive sp value has been found (funcsize=3)"
- //----- (00406BF0) --------------------------------------------------------
- #error "406BFB: positive sp value has been found (funcsize=3)"
- //----- (00406C4C) --------------------------------------------------------
- #error "406C57: positive sp value has been found (funcsize=3)"
- //----- (00406D7F) --------------------------------------------------------
- int sub_406D7F(...)
- {
- JUMPOUT(a1, 0, *(unsigned int *)loc_406F87);
- return RegQueryValueExA(
- *(HKEY *)&a2[2],
- *(LPCSTR *)&a2[6],
- *(LPDWORD *)&a2[10],
- *(LPDWORD *)&a2[14],
- *(LPBYTE *)&a2[18],
- *(LPDWORD *)&a2[22]);
- }
- // 406F87: using guessed type int __cdecl loc_406F87(int, int);
- //----- (00406E73) --------------------------------------------------------
- #error "406E7E: positive sp value has been found (funcsize=3)"
- //----- (00406F42) --------------------------------------------------------
- HMODULE __usercall sub_406F42<eax>(int a1<eax>, int a2<ebx>, int a3<ebp>, int a4<esi>, const CHAR *a5)
- {
- int v6; // [sp+8h] [bp-3Ch]@1
- int v7; // [sp+Ch] [bp-38h]@1
- int v8; // [sp+1Ch] [bp-28h]@1
- int v9; // [sp+20h] [bp-24h]@1
- int v10; // [sp+24h] [bp-20h]@1
- int *v11; // [sp+28h] [bp-1Ch]@1
- int v12; // [sp+2Ch] [bp-18h]@1
- int (*v13)(); // [sp+30h] [bp-14h]@1
- int v14; // [sp+34h] [bp-10h]@1
- int v15; // [sp+38h] [bp-Ch]@1
- int v16; // [sp+3Ch] [bp-8h]@1
- *(_DWORD *)(a3 - 8) = a2;
- v16 = a3;
- v15 = -1;
- v14 = (int)&unk_40C1D5;
- v13 = except_handler3;
- v12 = a1;
- v7 = a2;
- v6 = a4;
- v11 = &v6;
- v8 = *(_DWORD *)"RegCloseKey";
- v9 = *(_DWORD *)&aRegclosekey[4];
- v10 = *(_DWORD *)&aRegclosekey[8];
- return GetModuleHandleA(a5);
- }
- // 40B7EE: using guessed type int except_handler3();
- //----- (00406F63) --------------------------------------------------------
- #error "406F6A: positive sp value has been found (funcsize=2)"
- //----- (00406FE7) --------------------------------------------------------
- LSTATUS __cdecl sub_406FE7(HKEY a1, const CHAR *a2, DWORD a3, REGSAM a4, HKEY *a5)
- {
- __asm { popfw }
- return RegOpenKeyExA(a1, a2, a3, a4, a5);
- }
- // 406FE7: could not find valid save-restore pair for edi
- //----- (00407157) --------------------------------------------------------
- #error "40715D: positive sp value has been found (funcsize=2)"
- //----- (0040728E) --------------------------------------------------------
- void __cdecl sub_40728E()
- {
- JUMPOUT(*(int *)loc_407295);
- }
- // 407295: using guessed type int __far loc_407295();
- //----- (004072C5) --------------------------------------------------------
- #error "4072CC: positive sp value has been found (funcsize=2)"
- //----- (004076AE) --------------------------------------------------------
- #error "4076B9: positive sp value has been found (funcsize=3)"
- //----- (00408135) --------------------------------------------------------
- HMODULE __usercall sub_408135<eax>(int a1<ebx>, int a2<esi>, const CHAR *a3)
- {
- int v3; // ST10_4@1
- int v13; // [sp+20h] [bp-40h]@1
- int v14; // [sp+24h] [bp-3Ch]@1
- int v15; // [sp+34h] [bp-2Ch]@1
- int v16; // [sp+38h] [bp-28h]@1
- int v17; // [sp+3Ch] [bp-24h]@1
- __int16 v18; // [sp+40h] [bp-20h]@1
- int v19; // [sp+42h] [bp-1Eh]@1
- int v20; // [sp+48h] [bp-18h]@1
- int (*v21)(); // [sp+4Ch] [bp-14h]@1
- _BYTE v22[6]; // [sp+4Eh] [bp-12h]@1
- int v23; // [sp+54h] [bp-Ch]@1
- int v24; // [sp+58h] [bp-8h]@1
- __asm { popfw }
- v24 = v3;
- v23 = -1;
- *(_DWORD *)&v22[2] = &unk_40C175;
- v21 = except_handler3;
- v20 = a2;
- __asm { pushfw }
- v19 = 4211974;
- __asm { popfw }
- v14 = a1;
- v13 = a2;
- *(int *)((char *)&v19 + 2) = (int)&v13;
- v15 = *(_DWORD *)"CreateServiceA";
- v16 = *(_DWORD *)&aCreateservicea[4];
- v17 = *(_DWORD *)&aCreateservicea[8];
- v18 = *(_WORD *)&aCreateservicea[12];
- LOBYTE(v19) = aCreateservicea[14];
- return GetModuleHandleA(a3);
- }
- // 40B7EE: using guessed type int except_handler3();
- //----- (004081C7) --------------------------------------------------------
- LPSTR __cdecl sub_4081C7(CHAR *a1, const CHAR *a2)
- {
- return lstrcpyA(a1, a2);
- }
- //----- (00408291) --------------------------------------------------------
- LPSTR __cdecl sub_408291(char a1)
- {
- __asm { popfw }
- return lstrcatA(*(LPSTR *)(&a1 + 2), *(LPCSTR *)(&a1 + 6));
- }
- //----- (00408434) --------------------------------------------------------
- #error "40843F: positive sp value has been found (funcsize=3)"
- //----- (0040848F) --------------------------------------------------------
- void __cdecl sub_40848F()
- {
- JUMPOUT(*(unsigned int *)loc_405AF2);
- }
- // 405AF2: using guessed type int loc_405AF2();
- //----- (00408520) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (0040852E) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (004085C5) --------------------------------------------------------
- #error "4085C5: positive sp value has been found (funcsize=0)"
- //----- (00408729) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (00408737) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (00408745) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (00408753) --------------------------------------------------------
- #error "40875E: positive sp value has been found (funcsize=3)"
- //----- (00408806) --------------------------------------------------------
- HMODULE __usercall sub_408806<eax>(int a1<eax>, int a2<ebx>, int a3<ebp>, const CHAR *a4)
- {
- int v4; // ST06_4@1
- int v10; // [sp+4h] [bp-40h]@1
- int v11; // [sp+8h] [bp-3Ch]@1
- int v12; // [sp+18h] [bp-2Ch]@1
- int v13; // [sp+1Ch] [bp-28h]@1
- int v14; // [sp+20h] [bp-24h]@1
- __int16 v15; // [sp+24h] [bp-20h]@1
- int *v16; // [sp+28h] [bp-1Ch]@1
- int v17; // [sp+2Ch] [bp-18h]@1
- int (*v18)(); // [sp+30h] [bp-14h]@1
- int v19; // [sp+34h] [bp-10h]@1
- int v20; // [sp+38h] [bp-Ch]@1
- int v21; // [sp+3Ch] [bp-8h]@1
- __asm { popfw }
- v21 = a3;
- v20 = -1;
- v19 = (int)&unk_40C181;
- v18 = except_handler3;
- v17 = a1;
- v11 = a2;
- v10 = v4;
- v16 = &v10;
- v12 = *(_DWORD *)"StartServiceA";
- v13 = *(_DWORD *)&aStartservicea[4];
- v14 = *(_DWORD *)&aStartservicea[8];
- v15 = *(_WORD *)&aStartservicea[12];
- return GetModuleHandleA(a4);
- }
- // 40B7EE: using guessed type int except_handler3();
- //----- (0040881E) --------------------------------------------------------
- void __usercall sub_40881E(int a1<eax>)
- {
- if ( !a1 )
- JUMPOUT(*(int *)loc_408822);
- JUMPOUT(loc_404DC6);
- }
- // 408822: using guessed type int loc_408822();
- //----- (0040886F) --------------------------------------------------------
- #error "408878: positive sp value has been found (funcsize=3)"
- //----- (00409F38) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (0040A069) --------------------------------------------------------
- BOOL __cdecl sub_40A069(void *a1, DWORD a2, BOOL a3, HANDLE *a4)
- {
- __asm { popfw }
- return OpenThreadToken(a1, a2, a3, a4);
- }
- //----- (0040A3D6) --------------------------------------------------------
- #error "40A3E1: positive sp value has been found (funcsize=3)"
- //----- (0040A562) --------------------------------------------------------
- #error "40A590: call analysis failed (funcsize=17)"
- //----- (0040A5AA) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (0040A674) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (0040A710) --------------------------------------------------------
- HMODULE __usercall sub_40A710<eax>(int a1<eax>, int a2<edx>, int a3<edi>, const CHAR *a4)
- {
- int v4; // ST22_4@1
- __int64 v10; // [sp+18h] [bp-52h]@1
- int v11; // [sp+22h] [bp-48h]@1
- char v12; // [sp+32h] [bp-38h]@1
- char *v13; // [sp+4Eh] [bp-1Ch]@1
- int v14; // [sp+52h] [bp-18h]@1
- int (*v15)(); // [sp+56h] [bp-14h]@1
- int v16; // [sp+5Ah] [bp-10h]@1
- int v17; // [sp+5Eh] [bp-Ch]@1
- int v18; // [sp+62h] [bp-8h]@1
- __asm { popfw }
- v18 = v4;
- v17 = -1;
- v16 = (int)&unk_40C21D;
- v15 = except_handler3;
- v14 = a1;
- v11 = a2;
- v13 = (char *)&v10 + 6;
- memcpy(&v12, "CreateToolhelp32Snapshot", 4 * a3 + 1);
- return GetModuleHandleA(a4);
- }
- // 40B7EE: using guessed type int except_handler3();
- //----- (0040A896) --------------------------------------------------------
- HMODULE __userpurge sub_40A896<eax>(int a1<eax>, int a2<ebx>, int a3<ebp>, int a4<esi>, const CHAR *a5, int a6, int a7, int a8, int a9, int a10, int a11, int a12, int a13, int a14, int a15, int a16, int a17, int a18, int a19, int a20, int a21, int a22, int a23, int a24, int a25, int a26, int a27, int a28, int a29, int a30, int a31, int a32, int a33, int a34, int a35, int a36, int a37, int a38, int a39, int a40, int a41, int a42, int a43, int a44, int a45, int a46, int a47, int a48, int a49, int a50, int a51, int a52, int a53, int a54, int a55, int a56, int a57, int a58, int a59, int a60, int a61, int a62, int a63)
- {
- int v73; // [sp+1Eh] [bp-40h]@1
- int v74; // [sp+22h] [bp-3Ch]@1
- int v75; // [sp+32h] [bp-2Ch]@1
- int v76; // [sp+36h] [bp-28h]@1
- int v77; // [sp+3Ah] [bp-24h]@1
- __int16 v78; // [sp+3Eh] [bp-20h]@1
- char v79; // [sp+40h] [bp-1Eh]@1
- int *v80; // [sp+42h] [bp-1Ch]@1
- int v81; // [sp+46h] [bp-18h]@1
- int (*v82)(); // [sp+4Ah] [bp-14h]@1
- int v83; // [sp+4Eh] [bp-10h]@1
- int v84; // [sp+52h] [bp-Ch]@1
- int v85; // [sp+56h] [bp-8h]@1
- __asm { popfw }
- v85 = a3;
- v84 = -1;
- v83 = (int)&unk_40C169;
- v82 = except_handler3;
- v81 = a1;
- v74 = a2;
- v73 = a4;
- v80 = &v73;
- v75 = *(_DWORD *)"OpenSCManagerA";
- v76 = *(_DWORD *)&aOpenscmanagera[4];
- v77 = *(_DWORD *)&aOpenscmanagera[8];
- v78 = *(_WORD *)&aOpenscmanagera[12];
- v79 = aOpenscmanagera[14];
- return GetModuleHandleA(a5);
- }
- // 40B7EE: using guessed type int except_handler3();
- //----- (0040A972) --------------------------------------------------------
- #error "FFFFFFFF: function frame is wrong (funcsize=0)"
- //----- (0040AA65) --------------------------------------------------------
- #error "40AA70: positive sp value has been found (funcsize=3)"
- //----- (0040AB80) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (0040AD3F) --------------------------------------------------------
- DWORD __usercall sub_40AD3F<eax>(int a1<eax>, SC_HANDLE a2, int a3, int a4)
- {
- DWORD result; // eax@2
- if ( a1 )
- result = DeleteService(a2);
- else
- result = GetLastError();
- return result;
- }
- //----- (0040AD94) --------------------------------------------------------
- void __cdecl sub_40AD94()
- {
- JUMPOUT(loc_40AD9B);
- }
- //----- (0040AE1F) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (0040AE49) --------------------------------------------------------
- #error "40AE71: positive sp value has been found (funcsize=9)"
- //----- (0040AFBB) --------------------------------------------------------
- #error "FFFFFFFF: positive sp value has been found (funcsize=0)"
- //----- (0040B004) --------------------------------------------------------
- #error "FFFFFFFF: function frame is wrong (funcsize=0)"
- //----- (0040B9A0) --------------------------------------------------------
- int __cdecl sub_40B9A0()
- {
- return 0;
- }
- #error "There were 77 decompilation failure(s) on 100 function(s)"
Advertisement
Add Comment
Please, Sign In to add comment