Function at 0x4056c0
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x1f44
call fcn.00412a70
push ebx
push ebp
push esi
mov ebp, ecx
push edi
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 [0x426bcc]
test eax, eax
jne 0x4056fa
mov eax, 0x41d59c
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push eax
lea eax, [esp + 0xfb8]
push 0x3e8
push eax
push 0x426c34
push str.DlgMainTitle
push str.Uninstall_Dialog
call ebx
lea ecx, [esp + 0xfb4]
lea esi, [ebp + 0x490]
push ecx
call fcn.0041255c
add esp, 4
mov edi, eax
mov ecx, esi
push 1
push edi
call fcn.00409450
test al, al
je 0x405766
mov eax, dword [esi + 4]
lea edx, [esp + 0xfb4]
push edi
push edx
push eax
call fcn.00401b80
mov ecx, dword [esi + 4]
mov dword [esi + 8], edi
add esp, 0xc
mov word [ecx + edi*2], 0
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 [0x426bcc]
test eax, eax
jne 0x40578a
mov eax, 0x41d59c
push eax
lea edx, [esp + 0x18]
push 0x3e8
push edx
push 0x426c34
push str.DlgCancelInstall
push str.Uninstall_Dialog
call ebx
lea eax, [esp + 0x14]
lea esi, [ebp + 0x4a0]
push eax
call fcn.0041255c
add esp, 4
mov edi, eax
mov ecx, esi
push 1
push edi
call fcn.00409450
test al, al
je 0x4057e7
mov edx, dword [esi + 4]
lea ecx, [esp + 0x14]
push edi
push ecx
push edx
call fcn.00401b80
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 [0x426bcc]
test eax, eax
jne 0x405811
mov eax, 0x41d59c
push eax
lea ecx, [esp + 0x7e8]
push 0x3e8
push ecx
push 0x426c34
push str.DlgCloseMx2Fail
push str.Uninstall_Dialog
call ebx
lea edx, [esp + 0x7e4]
lea edi, [ebp + 0x4b0]
push edx
call fcn.0041255c
add esp, 4
mov esi, eax
mov ecx, edi
push 1
push esi
call fcn.00409450
test al, al
je 0x40588b
mov eax, dword [edi + 4]
lea ecx, [esp + 0x7e4]
test esi, esi
jbe 0x40587f
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 0x405868
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 + 0x1786]
mov word [esp + 0x1784], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [0x426bcc]
test eax, eax
jne 0x4058b5
mov eax, 0x41d59c
push eax
lea ecx, [esp + 0x1788]
push 0x3e8
push ecx
push 0x426c34
push str.DlgUninstallFailed
push str.Uninstall_Dialog
call ebx
lea edx, [esp + 0x1784]
lea edi, [ebp + 0x520]
push edx
call fcn.0041255c
mov esi, eax
add esp, 4
cmp esi, 0x7ffffffd
jbe 0x4058f9
call fcn.00412297
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x405927
mov al, byte [ecx - 1]
test al, al
je 0x405927
cmp al, 0xff
je 0x405927
test esi, esi
jne 0x405954
dec al
push esi
mov byte [ecx - 1], al
mov ecx, edi
call fcn.00409580
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1f44
ret
test esi, esi
jne 0x40593f
push 1
mov ecx, edi
call fcn.00409580
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1f44
ret
mov eax, dword [edi + 0xc]
cmp eax, 0x1f
ja 0x40594b
cmp eax, esi
jae 0x40595c
push 1
mov ecx, edi
call fcn.00409580
push esi
mov ecx, edi
call fcn.0040a9f0
mov eax, dword [edi + 4]
lea ecx, [esp + 0x1784]
test esi, esi
jbe 0x40597b
mov edx, esi
mov bx, word [ecx]
add ecx, 2
mov word [eax], bx
add eax, 2
dec edx
jne 0x40596c
mov eax, dword [edi + 4]
mov dword [edi + 8], esi
pop edi
mov word [eax + esi*2], 0
pop esi
pop ebp
pop ebx
add esp, 0x1f44
ret