Function at 0x405730
Capabilities:
Create process on windows
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x12c
mov eax, dword [0x41b004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
push edi
push 0x41d330
push 0x41d128
push 0x41d004
lea eax, [ebp - 0x110]
push str._s_s_s
push eax
call esi
add esp, 0x14
push str..ini
lea ecx, [ebp - 0x110]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathRenameExtensionA]
lea edx, [ebp - 0x110]
push edx
push 0x104
push 0x41d434
push 0x417c64
push str.InstallFold
push str.INSTALL
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [0x41d434], 0x2a
jne 0x4057f9
lea eax, [ebp - 0x110]
push eax
mov ecx, eax
push 0x418660
push ecx
call esi
mov eax, dword [0x41cd90]
add esp, 0xc
push 0x30
push 0x41d22c
lea edx, [ebp - 0x110]
push edx
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [0x41cd90]
push ecx
call dword [sym.imp.USER32.dll_DestroyWindow]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040aabb
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
lea edx, [ebp - 0x110]
push edx
push 0
push str.Mode
push str.INSTALL
call esi
mov dword [0x41d114], eax
lea eax, [ebp - 0x110]
push eax
push 0
push str.shortcut
push str.INSTALL
call esi
lea ecx, [ebp - 0x110]
push ecx
push 0
push str.IsOpenReadme
push str.INSTALL
mov dword [0x41d10c], eax
call esi
mov edx, dword [0x41cd8c]
mov esi, dword [0x41cd90]
push 0x6f
push edx
mov dword [0x41d110], eax
call dword [sym.imp.USER32.dll_LoadBitmapA]
mov ebx, dword [sym.imp.USER32.dll_GetDC]
push esi
mov dword [0x4233ac], eax
call ebx
mov edi, eax
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push edi
push esi
mov dword [0x4233a8], eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [0x4233ac]
mov ecx, dword [0x4233a8]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [0x4233ac]
lea edx, [ebp - 0x12c]
push edx
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
mov ecx, dword [0x41cda0]
mov esi, dword [ebp - 0x128]
xor eax, eax
mov dword [0x4233c4], ecx
mov ecx, dword [0x41cdb0]
mov dword [0x4233c0], eax
mov dword [0x4233b0], eax
lea eax, [ecx*4]
lea edi, [eax + ecx]
mov dword [0x4233bc], edi
mov dword [0x4233b4], eax
sub edi, eax
mov eax, dword [0x41cd90]
push eax
mov dword [0x4233b8], esi
mov dword [ebp - 0x114], eax
call ebx
push edi
mov ebx, eax
push esi
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push ebx
mov dword [0x42338c], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [0x423388], eax
xor eax, eax
mov dword [0x423390], eax
mov dword [0x423394], eax
mov dword [0x423398], esi
mov dword [0x42339c], edi
push ebx
mov edx, dword [ebp - 0x114]
push edx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [0x42338c]
mov ecx, dword [0x423388]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [0x41cd90]
push eax
mov dword [ebp - 0x114], eax
call dword [sym.imp.USER32.dll_GetDC]
push edi
mov ebx, eax
push esi
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push ebx
mov dword [0x4233cc], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov edx, dword [ebp - 0x114]
mov dword [0x4233c8], eax
xor eax, eax
push ebx
push edx
mov dword [0x4233d0], eax
mov dword [0x4233d4], eax
mov dword [0x4233d8], esi
mov dword [0x4233dc], edi
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [0x4233cc]
mov ecx, dword [0x4233c8]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [0x4233c0]
mov ecx, dword [0x4233c4]
mov edx, dword [0x423388]
push 0
push 0xffffff
push 0
push 0
push edx
mov dword [0x4233a0], eax
mov dword [0x4233a4], ecx
mov dword [0x4233e0], eax
mov dword [0x4233e4], ecx
call dword [sym.imp.GDI32.dll_ExtFloodFill]
push 0x2710
push 0
push 0x41e474
call fcn.0040fab0
add esp, 0xc
call fcn.00405320
test eax, eax
jne 0x405a31
call fcn.004046b0
mov eax, dword [0x41cd90]
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040aabb
mov esp, ebp
pop ebp
ret
call fcn.00404150
test eax, eax
jne 0x405a64
mov ecx, dword [0x41cd90]
push 0x20
push 0x41d22c
push 0x4186b0
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040aabb
mov esp, ebp
pop ebp
ret
call fcn.00404000
call fcn.004037d0
call fcn.004039f0
lea edx, [ebp - 0x110]
push edx
push 0x4186d0
push str.IsInstall
push str.INSTALL
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov eax, dword [0x4233cc]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
push eax
call esi
mov ecx, dword [0x4233c8]
mov edi, dword [sym.imp.GDI32.dll_DeleteDC]
push ecx
call edi
mov edx, dword [0x42338c]
push edx
call esi
mov eax, dword [0x423388]
push eax
call edi
mov ecx, dword [0x4233ac]
push ecx
call esi
mov edx, dword [0x4233a8]
push edx
call edi
mov eax, dword [0x41cd90]
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
push 0
push 0x41d22c
push 0x4186e0
push eax
call esi
mov eax, dword [0x41cd88]
test eax, eax
je 0x405b03
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x41cd88], 0
push str.Setup.exe
push 0x41d434
lea ecx, [ebp - 0x110]
push 0x417c5c
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 5
lea edx, [ebp - 0x110]
push edx
call dword [sym.imp.KERNEL32.dll_WinExec]
cmp eax, 0x1f
ja 0x405b46
push 0x30
push 0x41d22c
push 0x418704
push 0
call esi
call fcn.00403650
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040aabb
mov esp, ebp
pop ebp
ret