Function at 0x404a30
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x130
mov eax, dword [0x41f060]
xor eax, esp
mov dword [esp + 0x12c], eax
push ebp
push 0x7f00
xor ebp, ebp
push ebp
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [esp + 0x50], eax
mov eax, dword [0x4275c0]
lea ecx, [esp + 0x34]
push ecx
mov dword [esp + 0x38], 0x30
mov dword [esp + 0x50], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], str.Minimal_installer_class
mov dword [esp + 0x58], 0x10
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], 3
mov dword [esp + 0x40], 0x4048e0
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
call dword [sym.imp.USER32.dll_RegisterClassExA]
test ax, ax
jne 0x404ac4
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x12c]
xor ecx, esp
call fcn.0040a476
add esp, 0x130
ret
push ebx
push esi
push 0x426780
lea edx, [esp + 0xd8]
push str._s_Setup
push edx
call fcn.0040a6c6
mov eax, dword [0x4275c0]
add esp, 0xc
push ebp
mov esi, dword [sym.imp.USER32.dll_CreateWindowExA]
push eax
push ebp
push ebp
push 0x190
push 0x190
push 0x80000000
push 0x80000000
push 0xa0000
lea ecx, [esp + 0xf8]
push ecx
push str.Minimal_installer_class
push ebp
call esi
push ebp
lea edx, [esp + 0x30]
push edx
push ebp
push 0x30
mov dword [0x4275cc], eax
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
mov ecx, dword [0x4275cc]
lea eax, [esp + 0x1c]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x28]
push 5
sub eax, dword [esp + 0x34]
push ebp
add eax, dword [esp + 0x40]
push ebp
cdq
sub eax, edx
sar eax, 1
push eax
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x34]
sub eax, dword [esp + 0x3c]
add eax, dword [esp + 0x44]
cdq
sub eax, edx
mov edx, dword [0x4275cc]
sar eax, 1
push eax
push ebp
push edx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [0x4275cc]
mov ebx, dword [sym.imp.USER32.dll_GetClientRect]
push 0x4275e0
push eax
call ebx
push 0x42544d50
call fcn.004018d0
add esp, 4
test eax, eax
jne 0x404d1c
mov ecx, dword [0x426498]
push edi
push ecx
push 4
lea edx, [esp + 0x20]
push 1
push edx
call fcn.0040a459
mov eax, dword [0x426498]
push eax
push 4
lea ecx, [esp + 0x2c]
push 1
push ecx
call fcn.0040a459
mov edx, dword [0x426498]
push edx
push 4
lea eax, [esp + 0x38]
push 1
push eax
call fcn.0040a459
mov ecx, dword [esp + 0x40]
push ecx
call fcn.0040ac73
mov edx, dword [0x426498]
mov edi, eax
mov eax, dword [esp + 0x44]
push edx
push eax
push 1
push edi
call fcn.0040a459
mov ecx, dword [0x4275c0]
mov edx, dword [0x4275cc]
mov eax, dword [0x4275e0]
add esp, 0x44
push ebp
push ecx
mov ecx, dword [0x4275e8]
push 0x3e9
push edx
mov edx, dword [0x4275e4]
push 0x32
sub ecx, eax
push ecx
push edx
push eax
push 0x5000000d
push 0x4192b9
push str.static
push ebp
call esi
push 0x426480
push eax
mov dword [0x4275dc], eax
call ebx
mov eax, dword [0x4275dc]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push 0x2c
lea ecx, [esp + 0x74]
mov ebx, eax
push ebp
push ecx
mov dword [0x4275d8], ebx
call fcn.0040a790
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x74], edx
mov ecx, 1
mov edx, 0x20
push ebp
mov dword [esp + 0x7c], eax
mov dword [esp + 0x74], 0x28
mov word [esp + 0x80], cx
mov word [esp + 0x82], dx
mov dword [esp + 0x84], ebp
push ebp
lea eax, [esp + 0x24]
push eax
push ebp
lea ecx, [esp + 0x80]
push ecx
push ebx
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov edx, dword [0x4275d8]
push edx
mov ebx, eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push ebx
push eax
mov dword [0x426768], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, eax
add eax, eax
push eax
push ecx
push edx
push edi
call fcn.004022d0
push edi
call fcn.0040ab96
mov eax, dword [0x4275d8]
mov ecx, dword [0x4275dc]
add esp, 0x14
push eax
push ecx
call dword [sym.imp.USER32.dll_ReleaseDC]
pop edi
mov edx, dword [0x4275c0]
mov eax, dword [0x4275cc]
mov ecx, dword [0x4275e8]
push ebp
push edx
mov edx, dword [0x4275e4]
push 0x3ea
push eax
mov eax, dword [0x4275e0]
push 0xf
sub ecx, eax
push ecx
add edx, 0x32
push edx
push eax
push 0x50000000
push 0x4192b9
push str.static
push ebp
call esi
mov eax, dword [0x4275c0]
mov ecx, dword [0x4275cc]
mov edx, dword [0x4275e4]
push ebp
push eax
push 0x3ea
push ecx
push 0xf
push 0xc8
add edx, 0x32
push edx
push 0xa
push 0x50000000
push 0x4192b9
push str.static
push ebp
call esi
push 0x11
mov dword [0x421658], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
lea ecx, [esp + 0x98]
push ecx
push 0x3c
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
lea edx, [esp + 0x98]
push edx
mov dword [esp + 0xac], 0x2bc
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
push ebp
push eax
mov dword [0x426774], eax
mov eax, dword [0x421658]
push 0x30
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [0x4275c0]
mov edx, dword [0x4275cc]
mov eax, dword [0x4275e0]
push ebp
push ecx
mov ecx, dword [0x4275e8]
push 0x3eb
push edx
mov edx, dword [0x4275e4]
push 2
sub ecx, eax
push ecx
add edx, 0x41
push edx
push eax
push 0x50001000
push 0x4192b9
push str.static
push ebp
call esi
mov eax, dword [0x4275c0]
mov ecx, dword [0x4275cc]
push ebp
push eax
push 0x3ec
mov eax, dword [0x4275e0]
mov edx, dword [0x4275e8]
push ecx
mov ecx, dword [0x4275ec]
push 2
sub edx, eax
push edx
add ecx, 0xffffffd8
push ecx
push eax
push 0x50001000
push 0x4192b9
push str.static
push ebp
call esi
push ebp
mov dword [0x42649c], ebp
call fcn.004023d0
mov edx, dword [0x4275c8]
mov eax, dword [0x4275cc]
add esp, 4
push edx
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [0x4275cc]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ecx, dword [esp + 0x138]
pop esi
pop ebx
pop ebp
xor ecx, esp
mov eax, 1
call fcn.0040a476
add esp, 0x130
ret