Function at 0x401a98
Capabilities:
Create process on windows
Extract resource via kernel32 functions
Read .ini file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff004
push eax
add esp, 0xfffffd68
push ebx
push esi
push edi
mov ebx, str.src_bootstrpinit.cpp
mov eax, dword [ebp + 8]
mov dword [0x41c104], eax
mov edx, dword [0x41c104]
mov dword [0x41c108], edx
call fcn.004028ca
xor ecx, ecx
mov cl, al
imul esi, ecx, 0x64
call fcn.004028ca
movzx eax, ax
sar eax, 8
and al, 0xff
xor edx, edx
mov dl, al
add esi, edx
cmp esi, 0x190
jl 0x401af2
mov byte [0x4171fc], 1
push 0x104
call fcn.00413068
pop ecx
mov dword [0x41c10c], eax
push pe_nt_image_headers32
call fcn.00413068
pop ecx
mov dword [0x41c110], eax
push pe_nt_image_headers32
call fcn.00413068
pop ecx
mov dword [0x41c114], eax
push 0x30c
call fcn.00413068
pop ecx
mov dword [0x41c118], eax
push 3
call fcn.00413068
pop ecx
mov dword [0x41c11c], eax
push 0x100
call fcn.00413068
pop ecx
mov dword [0x41c120], eax
push 0x104
call fcn.00413068
pop ecx
mov dword [0x41c124], eax
push 0x104
call fcn.00413068
pop ecx
mov dword [0x41c128], eax
push 0x40
call fcn.00413068
pop ecx
mov dword [0x41c12c], eax
push 0x103
lea ecx, [ebp - 0x110]
push ecx
push dword [0x41c104]
call sub.KERNEL32.DLL_GetModuleFileNameA
push 0
push 0
push dword [0x41c120]
push dword [0x41c11c]
lea eax, [ebp - 0x110]
push eax
call fcn.0040e3c4
add esp, 0x14
push dword [0x41c120]
push dword [0x41c11c]
lea edx, [ebx + 0x16]
push edx
push dword [0x41c10c]
call sub.USER32.DLL_wsprintfA
add esp, 0x10
lea ecx, [ebx + 0x1b]
push ecx
call sub.KERNEL32.DLL_LoadLibraryA
mov dword [0x41c444], eax
call fcn.004028d0
test eax, eax
jne 0x401bee
xor eax, eax
jmp 0x40266a
xor edi, edi
xor eax, eax
mov dword [0x41c234], eax
mov eax, 3
push eax
call fcn.00410d54
pop ecx
sub eax, 0x4c
jne 0x401c24
push 0x41c234
lea edx, [ebx + 0x2d]
push edx
push dword [0x41c100]
call fcn.0040e484
add esp, 0xc
mov edi, 1
lea eax, [ebx + 0x28]
push eax
push dword [0x41ca50]
push dword [0x41ca88]
call fcn.00401918
add esp, 0xc
cmp eax, 0xffffffff
jne 0x401bfc
call fcn.00403aa4
push 0
push 3
lea edx, [ebp - 0x110]
push edx
call fcn.004042a9
mov esi, eax
test esi, esi
jne 0x401c8e
call fcn.00403abe
push eax
lea eax, [ebx + 0x33]
push eax
push dword [0x41c110]
call sub.USER32.DLL_wsprintfA
add esp, 0xc
push 0x10
lea edx, [ebx + 0x6c]
push edx
push dword [0x41c110]
push 0
call sub.USER32.DLL_MessageBoxA
xor eax, eax
jmp 0x40266a
push 0
push dword [0x41c128]
lea edx, [ebx + 0x7d]
push edx
push esi
call fcn.004054e8
test eax, eax
jne 0x401cd9
call fcn.00403abe
push eax
lea ecx, [ebx + 0x87]
push ecx
push dword [0x41c110]
call sub.USER32.DLL_wsprintfA
add esp, 0xc
push 0x10
lea eax, [ebx + 0xbc]
push eax
push dword [0x41c110]
push dword [0x41c238]
call sub.USER32.DLL_MessageBoxA
push dword [0x41c128]
lea edx, [ebx + 0xcd]
push edx
push 0x41c130
call sub.USER32.DLL_wsprintfA
add esp, 0xc
push 0x41c130
push 0
lea ecx, [ebx + 0xe0]
push ecx
lea eax, [ebx + 0xda]
push eax
call sub.KERNEL32.DLL_GetPrivateProfileIntA
mov dword [0x417200], eax
test edi, edi
jne 0x401d65
push 0x41c130
push 0x100
lea edx, [ebp - 0x434]
push edx
lea ecx, [ebx + 0x100]
push ecx
lea eax, [ebx + 0xef]
push eax
lea edx, [ebx + 0xe9]
push edx
call sub.KERNEL32.DLL_GetPrivateProfileStringA
lea ecx, [ebp - 4]
push ecx
lea eax, [ebx + 0x101]
push eax
lea edx, [ebp - 0x434]
push edx
call fcn.0040e484
add esp, 0xc
call sub.KERNEL32.DLL_GetUserDefaultLCID
mov dword [0x41c234], eax
push dword [0x41c234]
lea ecx, [ebx + 0x107]
push ecx
lea eax, [ebp - 0x234]
push eax
call sub.USER32.DLL_wsprintfA
add esp, 0xc
push 0x41c130
push 0x100
lea edx, [ebp - 0x334]
push edx
lea ecx, [ebx + 0x115]
push ecx
lea eax, [ebp - 0x234]
push eax
lea edx, [ebx + 0x10c]
push edx
call sub.KERNEL32.DLL_GetPrivateProfileStringA
lea ecx, [ebp - 0x334]
push ecx
call sub.KERNEL32.DLL_lstrlenA
test eax, eax
jne 0x401e20
mov eax, dword [0x41c234]
cmp eax, dword [ebp - 4]
je 0x401e20
test byte [0x41c235], 0xfb
je 0x401e20
and dword [0x41c234], 0x4ff
push dword [0x41c234]
lea edx, [ebx + 0x116]
push edx
lea ecx, [ebp - 0x234]
push ecx
call sub.USER32.DLL_wsprintfA
add esp, 0xc
push 0x41c130
push 0x100
lea eax, [ebp - 0x334]
push eax
lea edx, [ebx + 0x124]
push edx
lea ecx, [ebp - 0x234]
push ecx
lea eax, [ebx + 0x11b]
push eax
call sub.KERNEL32.DLL_GetPrivateProfileStringA
lea edx, [ebp - 0x334]
push edx
call sub.KERNEL32.DLL_lstrlenA
test eax, eax
jne 0x401ed8
mov ecx, dword [ebp - 4]
mov dword [0x41c234], ecx
push dword [0x41c234]
lea eax, [ebx + 0x125]
push eax
lea edx, [ebp - 0x234]
push edx
call sub.USER32.DLL_wsprintfA
add esp, 0xc
push 0x41c130
push 0x100
lea ecx, [ebp - 0x334]
push ecx
lea eax, [ebx + 0x133]
push eax
lea edx, [ebp - 0x234]
push edx
lea ecx, [ebx + 0x12a]
push ecx
call sub.KERNEL32.DLL_GetPrivateProfileStringA
cmp dword [ebp - 4], 0
jne 0x401ed8
push 0x41c130
push 0x20
lea eax, [ebp - 0x234]
push eax
lea edx, [ebx + 0x13d]
push edx
push 0
lea ecx, [ebx + 0x134]
push ecx
call sub.KERNEL32.DLL_GetPrivateProfileStringA
push 0x41c130
push 0x100
lea eax, [ebp - 0x334]
push eax
lea edx, [ebx + 0x147]
push edx
lea ecx, [ebp - 0x234]
push ecx
lea eax, [ebx + 0x13e]
push eax
call sub.KERNEL32.DLL_GetPrivateProfileStringA
cmp dword [0x417200], 0
je 0x401f36
push 0
push dword [0x41c128]
lea edx, [ebx + 0x148]
push edx
push esi
call fcn.004054e8
test eax, eax
jne 0x401f36
call fcn.00403abe
push eax
lea ecx, [ebx + 0x155]
push ecx
push dword [0x41c110]
call sub.USER32.DLL_wsprintfA
add esp, 0xc
push 0x10
lea eax, [ebx + 0x18d]
push eax
push dword [0x41c110]
push dword [0x41c238]
call sub.USER32.DLL_MessageBoxA
xor eax, eax
jmp 0x40266a
lea edx, [ebp - 0x234]
push edx
push dword [0x41c12c]
call sub.KERNEL32.DLL_lstrcpyA
test edi, edi
jne 0x402154
lea ecx, [ebp - 0x234]
push ecx
lea eax, [ebx + 0x19e]
push eax
lea edx, [ebp - 0x214]
push edx
call sub.USER32.DLL_wsprintfA
add esp, 0xc
push 0
push dword [0x41c128]
lea ecx, [ebp - 0x214]
push ecx
push esi
call fcn.004054e8
test eax, eax
jne 0x402027
lea eax, [ebp - 0x214]
push eax
call fcn.00403abe
push eax
lea edx, [ebx + 0x1a9]
push edx
push dword [0x41c110]
call sub.USER32.DLL_wsprintfA
add esp, 0x10
push 0x10
lea ecx, [ebx + 0x1d7]
push ecx
push dword [0x41c110]
push dword [0x41c238]
call sub.USER32.DLL_MessageBoxA
lea eax, [ebx + 0x1e8]
push eax
lea edx, [ebp - 0x214]
push edx
call sub.KERNEL32.DLL_lstrcpyA
push 0
push dword [0x41c128]
lea ecx, [ebp - 0x214]
push ecx
push esi
call fcn.004054e8
test eax, eax
jne 0x402027
call fcn.00403abe
push eax
lea eax, [ebx + 0x1f4]
push eax
push dword [0x41c110]
call sub.USER32.DLL_wsprintfA
add esp, 0xc
push 0x10
lea edx, [ebx + 0x22b]
push edx
push dword [0x41c110]
push dword [0x41c238]
call sub.USER32.DLL_MessageBoxA
lea ecx, [ebp - 0x214]
push ecx
call fcn.00402d18
test eax, eax
jne 0x402059
push 0x10
lea eax, [ebx + 0x26a]
push eax
lea edx, [ebx + 0x23c]
push edx
push dword [0x41c238]
call sub.USER32.DLL_MessageBoxA
xor eax, eax
jmp 0x40266a
push 0x41c130
push 0x400
lea edx, [ebp - 0x834]
push edx
lea ecx, [ebx + 0x284]
push ecx
push 0
lea eax, [ebx + 0x27b]
push eax
call sub.KERNEL32.DLL_GetPrivateProfileStringA
lea edx, [ebp - 0x834]
push edx
call sub.KERNEL32.DLL_lstrlenA
test eax, eax
je 0x402121
lea ecx, [ebp - 0x834]
push ecx
call sub.KERNEL32.DLL_lstrlenA
cmp byte [ebp + eax - 0x833], 0
je 0x402121
cmp dword [0x417200], 0
je 0x4020b9
mov eax, 5
jmp 0x4020be
mov eax, 3
push dword [0x41c12c]
push 0x402fa4
push 0
movzx edx, ax
push edx
push dword [0x41c104]
call fcn.00402e00
dec eax
je 0x402121
dec eax
je 0x4020e2
jmp 0x4020e9
xor eax, eax
jmp 0x40266a
call sub.KERNEL32.DLL_GetLastError
push eax
lea edx, [ebx + 0x285]
push edx
push dword [0x41c110]
call sub.USER32.DLL_wsprintfA
add esp, 0xc
push 0x10
lea ecx, [ebx + 0x2c0]
push ecx
push dword [0x41c110]
push 0
call sub.USER32.DLL_MessageBoxA
xor eax, eax
jmp 0x40266a
call fcn.00402d81
lea edx, [ebp - 0x214]
push edx
push dword [0x41c128]
lea ecx, [ebx + 0x2d1]
push ecx
push dword [0x41c110]
call sub.USER32.DLL_wsprintfA
add esp, 0x10
push dword [0x41c110]
call fcn.0040f410
pop ecx
push dword [0x41c12c]
lea eax, [ebx + 0x2d7]
push eax
lea edx, [ebp - 0x214]
push edx
call sub.USER32.DLL_wsprintfA
add esp, 0xc
push 0
push dword [0x41c128]
lea ecx, [ebp - 0x214]
push ecx
push esi
call fcn.004054e8
test eax, eax
jne 0x4021cc
lea eax, [ebp - 0x214]
push eax
call fcn.00403abe
push eax
lea edx, [ebx + 0x2e2]
push edx
push dword [0x41c110]
call sub.USER32.DLL_wsprintfA
add esp, 0x10
push 0x10
lea ecx, [ebx + 0x310]
push ecx
push dword [0x41c110]
push dword [0x41c238]
call sub.USER32.DLL_MessageBoxA
xor eax, eax
jmp 0x40266a
lea edx, [ebp - 0x214]
push edx
call fcn.00402d18
test eax, eax
jne 0x40221f
lea ecx, [ebp - 0x214]
push ecx
call fcn.00403abe
push eax
lea eax, [ebx + 0x321]
push eax
push dword [0x41c110]
call sub.USER32.DLL_wsprintfA
add esp, 0x10
push 0x10
lea edx, [ebx + 0x349]
push edx
push dword [0x41c110]
push dword [0x41c238]
call sub.USER32.DLL_MessageBoxA
xor eax, eax
jmp 0x40266a
push esi
call fcn.004043f7
cmp dword [ebp + 0xc], 0
je 0x402277
push pe_nt_image_headers32
push dword [0x41c110]
push 2
push dword [0x41c104]
call fcn.00402e6d
push pe_nt_image_headers32
push dword [0x41c114]
push 3
push dword [0x41c104]
call fcn.00402e6d
push 0x30
push dword [0x41c114]
push dword [0x41c110]
push 0
call sub.USER32.DLL_MessageBoxA
xor eax, eax
jmp 0x40266a
lea edx, [ebx + 0x362]
push edx
lea ecx, [ebx + 0x35a]
push ecx
push dword [0x41c104]
call fcn.00401290
add esp, 0xc
lea eax, [ebx + 0x363]
push eax
call sub.USER32.DLL_RegisterWindowMessageA
mov dword [0x41c0bc], eax
cmp dword [0x417200], 0
je 0x4022ca
push 0
push 0x401108
push 0
push 4
push dword [0x41c104]
call fcn.00402e8e
mov dword [0x41c238], eax
jmp 0x4022e5
push 0
push 0x401108
push 0
push 1
push dword [0x41c104]
call fcn.00402e8e
mov dword [0x41c238], eax
push 5
push dword [0x41c238]
call sub.USER32.DLL_ShowWindow
push 0x4035b4
push 3
lea edx, [ebp - 0x110]
push edx
call fcn.004042a9
mov esi, eax
mov dword [0x41796c], 2
test esi, esi
jne 0x40234d
call fcn.00403abe
push eax
lea eax, [ebx + 0x37c]
push eax
push dword [0x41c110]
call sub.USER32.DLL_wsprintfA
add esp, 0xc
push 0x10
lea edx, [ebx + 0x3b5]
push edx
push dword [0x41c110]
push 0
call sub.USER32.DLL_MessageBoxA
xor eax, eax
jmp 0x40266a
push 0
push dword [0x41c128]
lea edx, [ebx + 0x3c6]
push edx
push esi
call fcn.004054e8
test eax, eax
jne 0x40239b
call fcn.00403abe
push eax
lea ecx, [ebx + 0x3d2]
push ecx
push dword [0x41c110]
call sub.USER32.DLL_wsprintfA
add esp, 0xc
push 0x10
lea eax, [ebx + 0x409]
push eax
push dword [0x41c110]
push dword [0x41c238]
call sub.USER32.DLL_MessageBoxA
inc dword [0x417968]
push dword [0x41c12c]
lea edx, [ebx + 0x41a]
push edx
lea ecx, [ebp - 0x938]
push ecx
call sub.USER32.DLL_wsprintfA
add esp, 0xc
push dword [0x41c128]
lea eax, [ebx + 0x426]
push eax
lea edx, [ebp - 0xa3c]
push edx
call sub.USER32.DLL_wsprintfA
add esp, 0xc
lea ecx, [ebx + 0x436]
push ecx
lea eax, [ebp - 0xa3c]
push eax
call fcn.00405e4c
mov edi, eax
test edi, edi
je 0x402406
push edi
push 0
lea eax, [ebp - 0x938]
push eax
push esi
call fcn.004054e8
test eax, eax
jne 0x402442
lea edx, [ebp - 0x938]
push edx
call fcn.00403abe
push eax
lea ecx, [ebx + 0x43a]
push ecx
push dword [0x41c110]
call sub.USER32.DLL_wsprintfA
add esp, 0x10
push 0x10
lea eax, [ebx + 0x468]
push eax
push dword [0x41c110]
push dword [0x41c238]
call sub.USER32.DLL_MessageBoxA
test edi, edi
je 0x40244c
push edi
call fcn.00405eeb
inc dword [0x417968]
push esi
call fcn.004043f7
push 0x104
push 3
push dword [0x41c104]
call sub.KERNEL32.DLL_FindResourceA
mov esi, eax
push esi
push dword [0x41c104]
call sub.KERNEL32.DLL_SizeofResource
mov dword [ebp - 8], eax
push esi
push dword [0x41c104]
call sub.KERNEL32.DLL_LoadResource
mov esi, eax
push esi
call sub.KERNEL32.DLL_LockResource
mov dword [ebp - 0xc], eax
push pe_nt_image_headers32
push dword [0x41c110]
push 8
push dword [0x41c104]
call fcn.00402e6d
push dword [0x41c128]
lea eax, [ebx + 0x479]
push eax
push 0x41c340
call sub.USER32.DLL_wsprintfA
add esp, 0xc
push 0
push 0x41c340
call sub.KERNEL32.DLL__lcreat
mov edi, eax
push dword [ebp - 8]
push dword [ebp - 0xc]
push edi
call sub.KERNEL32.DLL__lwrite
push edi
call sub.KERNEL32.DLL__lclose
push esi
call sub.KERNEL32.DLL_FreeResource
push 0x104
lea eax, [ebp - 0x1044]
push eax
push 9
push dword [0x41c104]
call fcn.00402e6d
lea edx, [ebp - 0x1044]
push edx
push dword [0x41c128]
lea ecx, [ebx + 0x486]
push ecx
lea eax, [ebp - 0xb40]
push eax
call sub.USER32.DLL_wsprintfA
add esp, 0x10
push pe_nt_image_headers32
lea edx, [ebp - 0xd40]
push edx
push 7
push dword [0x41c104]
call fcn.00402e6d
push dword [ebp + 0x10]
call sub.KERNEL32.DLL_lstrlenA
test eax, eax
je 0x40256d
lea ecx, [ebx + 0x48c]
push ecx
lea eax, [ebp - 0xd40]
push eax
call sub.KERNEL32.DLL_lstrcatA
push dword [ebp + 0x10]
lea edx, [ebp - 0xd40]
push edx
call sub.KERNEL32.DLL_lstrcatA
lea ecx, [ebp - 0x110]
push ecx
lea eax, [ebp - 0xd40]
push eax
lea edx, [ebp - 0xf40]
push edx
call sub.USER32.DLL_wsprintfA
add esp, 0xc
mov esi, 0x417228
lea edi, [ebp - 0x1088]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0xf40]
push eax
lea edx, [ebp - 0xb40]
push edx
lea ecx, [ebx + 0x48e]
push ecx
lea eax, [ebp - 0x1298]
push eax
call sub.USER32.DLL_wsprintfA
add esp, 0x10
lea edx, [ebp - 0x1098]
push edx
lea ecx, [ebp - 0x1088]
push ecx
push 0
push 0
push 0x20
push 0
push 0
push 0
lea eax, [ebp - 0x1298]
push eax
lea edx, [ebp - 0xb40]
push edx
call sub.KERNEL32.DLL_CreateProcessA
test eax, eax
jne 0x402642
push pe_nt_image_headers32
push dword [0x41c114]
push 5
push dword [0x41c104]
call fcn.00402e6d
call sub.KERNEL32.DLL_GetLastError
push eax
lea ecx, [ebp - 0x1298]
push ecx
push dword [0x41c114]
push dword [0x41c110]
call sub.USER32.DLL_wsprintfA
add esp, 0x10
push 0x10
push 0
push dword [0x41c110]
push 0
call sub.USER32.DLL_MessageBoxA
jmp 0x402659
call fcn.00403633
push 0xfa
push dword [ebp - 0x1098]
call sub.KERNEL32.DLL_WaitForSingleObject
cmp eax, 0x102
je 0x40263d
push dword [0x41c128]
call fcn.004026ff
pop ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret