Function at 0x401000
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xde8
push edi
mov dword [ebp - 0x638], 0
mov dword [ebp - 0x63c], 0
mov dword [ebp - 0x210], 0
mov byte [ebp - 0x624], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x623]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x624]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00402289
add esp, 8
lea edx, [ebp - 0x624]
push edx
mov eax, dword [ebp - 0x210]
push eax
call fcn.004021bc
add esp, 8
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push str.ZenographicsSetup
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [ebp - 0x638], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x63c], eax
lea ecx, [ebp - 0x414]
call fcn.00407e8e
mov dword [ebp - 0x51c], 0
mov byte [ebp - 0x208], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x207]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [ebp - 0x314], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x313]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x104
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0xd74], eax
mov ecx, dword [ebp - 0xd74]
mov dword [ebp - 0x640], ecx
mov dword [ebp - 0x628], 0
mov dword [ebp - 0x520], 0
mov edx, dword [ebp - 0x640]
push edx
call fcn.00401f14
add esp, 4
mov eax, dword [ebp - 0x640]
push eax
push str._WinMain__Inf_Name___s
call fcn.00407a82
add esp, 8
mov ecx, dword [ebp - 0x640]
push ecx
push 0x104
lea edx, [ebp - 0x208]
push edx
push 0x4100e0
push 0x4100f0
push 0x4100fc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x208]
push eax
push str._WinMain__Resource_dll___s
call fcn.00407a82
add esp, 8
lea ecx, [ebp - 0x624]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jne 0x401195
lea edx, [ebp - 0x208]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x51c], eax
jmp 0x401298
mov byte [ebp - 0x94c], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x94b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [ebp - 0x848], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x847]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [ebp - 0x744], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x743]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x410120
mov eax, dword [ebp - 0x3ec]
push eax
push 0x41012c
lea ecx, [ebp - 0x744]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea edx, [ebp - 0x744]
push edx
push 0x104
lea eax, [ebp - 0x848]
push eax
push 0x410134
lea ecx, [ebp - 0x624]
push ecx
push 0x41013c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [ebp - 0x208]
push edx
lea eax, [ebp - 0x848]
push eax
mov ecx, dword [ebp - 0x3ec]
push ecx
push 0x410148
lea edx, [ebp - 0x94c]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
lea eax, [ebp - 0x94c]
push eax
push str._WinMain__Language_Path___s
call fcn.00407a82
add esp, 8
lea ecx, [ebp - 0x94c]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x51c], eax
cmp dword [ebp - 0x51c], 0
jne 0x401298
lea edx, [ebp - 0x208]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x51c], eax
push 0x104
push 0
lea eax, [ebp - 0x208]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
mov byte [ebp - 0x634], 0
xor ecx, ecx
mov dword [ebp - 0x633], ecx
mov dword [ebp - 0x62f], ecx
mov byte [ebp - 0x62b], cl
lea edx, [ebp - 0x634]
push edx
push 0
push 0
push 0
mov eax, dword [ebp - 0x640]
push eax
call dword [sym.imp.MSVCRT.dll__splitpath]
add esp, 0x14
push 0x410170
lea ecx, [ebp - 0x634]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x4013c9
push 8
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0xd7c], eax
cmp dword [ebp - 0xd7c], 0
je 0x401333
mov edx, dword [ebp - 0x640]
push edx
mov ecx, dword [ebp - 0xd7c]
call fcn.00408560
mov dword [ebp - 0xdd0], eax
jmp 0x40133d
mov dword [ebp - 0xdd0], 0
mov eax, dword [ebp - 0xdd0]
mov dword [ebp - 0xd78], eax
mov ecx, dword [ebp - 0xd78]
mov dword [ebp - 0x950], ecx
lea edx, [ebp - 0x208]
push edx
push 0x410178
push 0
push 0
push 0
push 0
push 0x410180
push 0
mov eax, dword [ebp - 0x950]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x950]
call dword [edx + 0x40]
mov eax, dword [ebp - 0x950]
mov dword [ebp - 0xd84], eax
mov ecx, dword [ebp - 0xd84]
mov dword [ebp - 0xd80], ecx
cmp dword [ebp - 0xd80], 0
je 0x4013bd
push 1
mov edx, dword [ebp - 0xd80]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xd80]
call dword [eax + 0x18]
mov dword [ebp - 0xdd4], eax
jmp 0x4013c7
mov dword [ebp - 0xdd4], 0
jmp 0x4013f1
mov ecx, dword [ebp - 0x640]
push ecx
push 0x104
lea edx, [ebp - 0x208]
push edx
push str.ZSetup
push 0x410190
push 0x410198
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x208]
push eax
push str._s_Setup
lea ecx, [ebp - 0x314]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov byte [ebp - 0x518], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x517]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [ebp - 0x104], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x103]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea edx, [ebp - 0x314]
push edx
lea eax, [ebp - 0x518]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str.ZSetup_Installer
lea ecx, [ebp - 0x104]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [ebp - 0x314]
push edx
push str._WinMain__Setup_Name___s
call fcn.00407a82
add esp, 8
push 0x3b0
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0xd8c], eax
cmp dword [ebp - 0xd8c], 0
je 0x4014c5
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x640]
push ecx
lea edx, [ebp - 0x104]
push edx
lea eax, [ebp - 0x518]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0xd8c]
call fcn.0040286b
mov dword [ebp - 0xdd8], eax
jmp 0x4014cf
mov dword [ebp - 0xdd8], 0
mov edx, dword [ebp - 0xdd8]
mov dword [ebp - 0xd88], edx
mov eax, dword [ebp - 0xd88]
mov dword [ebp - 0x20c], eax
push 0x40e2a0
mov ecx, dword [ebp - 0x20c]
call fcn.00402b04
test eax, eax
jne 0x401587
mov ecx, dword [ebp - 0x640]
mov dword [ebp - 0xd90], ecx
mov edx, dword [ebp - 0xd90]
push edx
call fcn.0040c57c
add esp, 4
mov eax, dword [ebp - 0x20c]
mov dword [ebp - 0xd98], eax
mov ecx, dword [ebp - 0xd98]
mov dword [ebp - 0xd94], ecx
cmp dword [ebp - 0xd94], 0
je 0x401550
push 1
mov ecx, dword [ebp - 0xd94]
call fcn.00402350
mov dword [ebp - 0xddc], eax
jmp 0x40155a
mov dword [ebp - 0xddc], 0
mov edx, dword [ebp - 0x51c]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 0xd9c], 1
lea ecx, [ebp - 0x414]
call fcn.00407ffa
mov eax, dword [ebp - 0xd9c]
jmp 0x40196a
mov eax, dword [ebp - 0x20c]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00401971
add esp, 8
mov edx, dword [ebp - 0x640]
push edx
push 0x10
push str.RequiredMemory
push 0x4101ec
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x628], eax
mov eax, dword [ebp - 0x628]
push eax
push str._WinMain__Required_Memory___d
call fcn.00407a82
add esp, 8
cmp dword [ebp - 0x628], 0
je 0x401736
mov ecx, dword [ebp - 0x628]
push ecx
lea ecx, [ebp - 0x414]
call fcn.004080b9
test eax, eax
jne 0x401736
lea ecx, [ebp - 0xa5c]
call fcn.00408228
mov byte [ebp - 0xa54], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0xa53]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [ebp - 0xb60], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0xb5f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x104
lea edx, [ebp - 0xa54]
push edx
push 0x469
mov eax, dword [ebp - 0x51c]
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x104
lea ecx, [ebp - 0xb60]
push ecx
push 2
mov edx, dword [ebp - 0x51c]
push edx
call dword [sym.imp.USER32.dll_LoadStringA]
cmp dword [ebp - 0x210], 0
je 0x401693
push 0x180030
lea eax, [ebp - 0xb60]
push eax
lea ecx, [ebp - 0xa54]
push ecx
lea ecx, [ebp - 0xa5c]
call fcn.0040824c
jmp 0x4016ae
push 0x30
lea edx, [ebp - 0xb60]
push edx
lea eax, [ebp - 0xa54]
push eax
lea ecx, [ebp - 0xa5c]
call fcn.0040824c
mov ecx, dword [ebp - 0x640]
mov dword [ebp - 0xda0], ecx
mov edx, dword [ebp - 0xda0]
push edx
call fcn.0040c57c
add esp, 4
mov eax, dword [ebp - 0x20c]
mov dword [ebp - 0xda8], eax
mov ecx, dword [ebp - 0xda8]
mov dword [ebp - 0xda4], ecx
cmp dword [ebp - 0xda4], 0
je 0x4016ff
push 1
mov ecx, dword [ebp - 0xda4]
call fcn.00402350
mov dword [ebp - 0xde0], eax
jmp 0x401709
mov dword [ebp - 0xde0], 0
mov edx, dword [ebp - 0x51c]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 0xdac], 1
lea ecx, [ebp - 0x414]
call fcn.00407ffa
mov eax, dword [ebp - 0xdac]
jmp 0x40196a
mov dword [ebp - 0x628], 0
mov eax, dword [ebp - 0x640]
push eax
push 5
push str.RequiredHD
push 0x410220
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x628], eax
mov ecx, dword [ebp - 0x628]
push ecx
push str._WinMain__Required_Hard_Drive_Space___d
call fcn.00407a82
add esp, 8
cmp dword [ebp - 0x628], 0
je 0x4018dc
mov edx, dword [ebp - 0x628]
push edx
lea ecx, [ebp - 0x414]
call fcn.004080de
test eax, eax
jne 0x4018dc
lea ecx, [ebp - 0xc6c]
call fcn.00408228
mov byte [ebp - 0xc64], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0xc63]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [ebp - 0xd70], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0xd6f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x104
lea eax, [ebp - 0xc64]
push eax
push 0x46a
mov ecx, dword [ebp - 0x51c]
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x104
lea edx, [ebp - 0xd70]
push edx
push 2
mov eax, dword [ebp - 0x51c]
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
cmp dword [ebp - 0x210], 0
je 0x401839
push 0x180030
lea ecx, [ebp - 0xd70]
push ecx
lea edx, [ebp - 0xc64]
push edx
lea ecx, [ebp - 0xc6c]
call fcn.0040824c
jmp 0x401854
push 0x30
lea eax, [ebp - 0xd70]
push eax
lea ecx, [ebp - 0xc64]
push ecx
lea ecx, [ebp - 0xc6c]
call fcn.0040824c
mov edx, dword [ebp - 0x640]
mov dword [ebp - 0xdb0], edx
mov eax, dword [ebp - 0xdb0]
push eax
call fcn.0040c57c
add esp, 4
mov ecx, dword [ebp - 0x20c]
mov dword [ebp - 0xdb8], ecx
mov edx, dword [ebp - 0xdb8]
mov dword [ebp - 0xdb4], edx
cmp dword [ebp - 0xdb4], 0
je 0x4018a5
push 1
mov ecx, dword [ebp - 0xdb4]
call fcn.00402350
mov dword [ebp - 0xde4], eax
jmp 0x4018af
mov dword [ebp - 0xde4], 0
mov eax, dword [ebp - 0x51c]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 0xdbc], 1
lea ecx, [ebp - 0x414]
call fcn.00407ffa
mov eax, dword [ebp - 0xdbc]
jmp 0x40196a
mov ecx, dword [ebp - 0x640]
mov dword [ebp - 0xdc0], ecx
mov edx, dword [ebp - 0xdc0]
push edx
call fcn.0040c57c
add esp, 4
mov ecx, dword [ebp - 0x20c]
call fcn.00404d4b
mov eax, dword [ebp - 0x20c]
mov dword [ebp - 0xdc8], eax
mov ecx, dword [ebp - 0xdc8]
mov dword [ebp - 0xdc4], ecx
cmp dword [ebp - 0xdc4], 0
je 0x401938
push 1
mov ecx, dword [ebp - 0xdc4]
call fcn.00402350
mov dword [ebp - 0xde8], eax
jmp 0x401942
mov dword [ebp - 0xde8], 0
mov edx, dword [ebp - 0x51c]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 0xdcc], 1
lea ecx, [ebp - 0x414]
call fcn.00407ffa
mov eax, dword [ebp - 0xdcc]
pop edi
mov esp, ebp
pop ebp
ret 0x10