Function at 0x407db0
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x2ee4
call fcn.00417fe0
push ebx
push ebp
push esi
mov ebp, ecx
push edi
mov ecx, 0x1f3
xor eax, eax
lea edi, [esp + 0x1f56]
mov word [esp + 0x1f54], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [0x42c43c]
test eax, eax
jne 0x407dea
mov eax, 0x422470
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push eax
lea eax, [esp + 0x1f58]
push 0x3e8
push eax
push 0x42c54c
push str.DlgMainTitle
push str.Install_Dialog
call ebx
lea ecx, [esp + 0x1f54]
lea esi, [ebp + 0x494]
push ecx
call fcn.00417a8e
add esp, 4
mov edi, eax
mov ecx, esi
push 1
push edi
call fcn.0040ce00
test al, al
je 0x407e52
mov eax, dword [esi + 4]
lea edx, [esp + 0x1f54]
push edi
push edx
push eax
call fcn.00401be0
add esp, 0xc
mov ecx, esi
push edi
call fcn.0040cd60
mov ecx, 0x1f3
xor eax, eax
lea edi, [esp + 0xfb6]
mov word [esp + 0xfb4], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [0x42c43c]
test eax, eax
jne 0x407e7c
mov eax, 0x422470
push eax
lea ecx, [esp + 0xfb8]
push 0x3e8
push ecx
push 0x42c54c
push str.DlgCancelInstall
push str.Install_Dialog
call ebx
lea edx, [esp + 0xfb4]
lea esi, [ebp + 0x4a4]
push edx
call fcn.00417a8e
add esp, 4
mov edi, eax
mov ecx, esi
push 1
push edi
call fcn.0040ce00
test al, al
je 0x407ede
mov ecx, dword [esi + 4]
lea eax, [esp + 0xfb4]
push edi
push eax
push ecx
call fcn.00401be0
add esp, 0xc
mov ecx, esi
push edi
call fcn.0040cd60
mov ecx, 0x1f3
xor eax, eax
lea edi, [esp + 0x16]
mov word [esp + 0x14], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [0x42c43c]
test eax, eax
jne 0x407f02
mov eax, 0x422470
push eax
lea edx, [esp + 0x18]
push 0x3e8
push edx
push 0x42c54c
push str.DlgDirInvalid
push str.Install_Dialog
call ebx
lea eax, [esp + 0x14]
lea esi, [ebp + 0x4b4]
push eax
call fcn.00417a8e
add esp, 4
mov edi, eax
mov ecx, esi
push 1
push edi
call fcn.0040ce00
test al, al
je 0x407f5f
mov edx, dword [esi + 4]
lea ecx, [esp + 0x14]
push edi
push ecx
push edx
call fcn.00401be0
mov eax, dword [esi + 4]
mov dword [esi + 8], edi
add esp, 0xc
mov word [eax + edi*2], 0
mov ecx, 0x1f3
xor eax, eax
lea edi, [esp + 0x7e6]
mov word [esp + 0x7e4], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [0x42c43c]
test eax, eax
jne 0x407f89
mov eax, 0x422470
push eax
lea ecx, [esp + 0x7e8]
push 0x3e8
push ecx
push 0x42c54c
push str.DlgCloseMx2Fail
push str.Install_Dialog
call ebx
lea edx, [esp + 0x7e4]
lea esi, [ebp + 0x4c4]
push edx
call fcn.00417a8e
add esp, 4
mov edi, eax
mov ecx, esi
push 1
push edi
call fcn.0040ce00
test al, al
je 0x407fef
mov ecx, dword [esi + 4]
lea eax, [esp + 0x7e4]
push edi
push eax
push ecx
call fcn.00401be0
mov edx, dword [esi + 4]
mov dword [esi + 8], edi
add esp, 0xc
mov word [edx + edi*2], 0
mov ecx, 0x1f3
xor eax, eax
lea edi, [esp + 0x1786]
mov word [esp + 0x1784], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [0x42c43c]
test eax, eax
jne 0x408019
mov eax, 0x422470
push eax
lea eax, [esp + 0x1788]
push 0x3e8
push eax
push 0x42c54c
push str.DlgSelectDir
push str.Install_Dialog
call ebx
lea ecx, [esp + 0x1784]
lea edi, [ebp + 0x4d4]
push ecx
call fcn.00417a8e
add esp, 4
mov esi, eax
mov ecx, edi
push 1
push esi
call fcn.0040ce00
test al, al
je 0x408093
mov eax, dword [edi + 4]
lea ecx, [esp + 0x1784]
test esi, esi
jbe 0x408087
mov dword [esp + 0x10], esi
mov dx, word [ecx]
add ecx, 2
mov word [eax], dx
mov edx, dword [esp + 0x10]
add eax, 2
dec edx
mov dword [esp + 0x10], edx
jne 0x408070
mov eax, dword [edi + 4]
mov dword [edi + 8], esi
mov word [eax + esi*2], 0
mov ecx, 0x1f3
xor eax, eax
lea edi, [esp + 0x2726]
mov word [esp + 0x2724], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [0x42c43c]
test eax, eax
jne 0x4080bd
mov eax, 0x422470
push eax
lea ecx, [esp + 0x2728]
push 0x3e8
push ecx
push 0x42c54c
push str.DlgInstallFailed
push str.Install_Dialog
call ebx
lea edx, [esp + 0x2724]
lea esi, [ebp + 0x4e4]
push edx
call fcn.00417a8e
add esp, 4
mov ecx, esi
mov edi, eax
call fcn.0040e660
cmp eax, edi
jae 0x408104
call fcn.004177a5
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x408132
mov al, byte [ecx - 1]
test al, al
je 0x408132
cmp al, 0xff
je 0x408132
test edi, edi
jne 0x40815f
dec al
push edi
mov byte [ecx - 1], al
mov ecx, esi
call fcn.0040cf30
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2ee4
ret
test edi, edi
jne 0x40814a
push 1
mov ecx, esi
call fcn.0040cf30
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2ee4
ret
mov eax, dword [esi + 0xc]
cmp eax, 0x1f
ja 0x408156
cmp eax, edi
jae 0x408167
push 1
mov ecx, esi
call fcn.0040cf30
push edi
mov ecx, esi
call fcn.0040e670
mov ecx, dword [esi + 4]
lea eax, [esp + 0x2724]
push edi
push eax
push ecx
call fcn.00401be0
mov edx, dword [esi + 4]
add esp, 0xc
mov dword [esi + 8], edi
mov word [edx + edi*2], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2ee4
ret