Function at 0x40c1f0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x568f47
mov eax, dword fs:[0]
push eax
sub esp, 0x128
mov eax, dword [0x5d4050]
xor eax, ebp
mov dword [ebp - 0x18], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x1c], edi
mov ebx, dword [ebp + 8]
mov dword [ebp - 4], 0
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x38], 0xf
mov dword [ebp - 0x3c], 0
mov byte [ebp - 0x4c], 0
lea esi, [edi + 0x28]
mov byte [ebp - 4], 1
cmp dword [esi + 0x14], 0x10
jb 0x40c259
mov ecx, dword [esi]
jmp 0x40c25b
mov ecx, esi
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x14], 0x10
jb 0x40c266
mov eax, dword [eax]
push eax
push 5
push str.InstallFinishType
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebx + 4], eax
test eax, eax
jne 0x40c38a
cmp dword [esi + 0x14], 0x10
jb 0x40c28a
mov ecx, dword [esi]
jmp 0x40c28c
mov ecx, esi
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x14], 0x10
jb 0x40c297
mov eax, dword [eax]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push 0
push str.InstallFinishRegistryValueType
push ecx
call eax
mov dword [ebx + 8], eax
cmp dword [esi + 0x14], 0x10
jb 0x40c2b4
mov eax, dword [esi]
jmp 0x40c2b6
mov eax, esi
lea ecx, [ebp - 0x4c]
push ecx
mov ecx, dword [edi + 0xc]
push 0x5afb08
push str.InstallFinishRegistryPath
push eax
call fcn.00402250
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
cmovae eax, dword [ebp - 0x4c]
push eax
lea eax, [ebx + 0xc]
push 0x104
push eax
call fcn.0054ac11
add esp, 0xc
cmp dword [esi + 0x14], 0x10
jb 0x40c2f4
mov eax, dword [esi]
jmp 0x40c2f6
mov eax, esi
lea ecx, [ebp - 0x4c]
push ecx
mov ecx, dword [edi + 0xc]
push 0x5afb08
push str.InstallFinishRegistryValueName
push eax
call fcn.00402250
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
cmovae eax, dword [ebp - 0x4c]
push eax
lea eax, [ebx + 0x110]
push 0x104
push eax
call fcn.0054ac11
add esp, 0xc
cmp dword [esi + 0x14], 0x10
jb 0x40c337
mov eax, dword [esi]
jmp 0x40c339
mov eax, esi
lea ecx, [ebp - 0x4c]
push ecx
mov ecx, dword [edi + 0xc]
push 0x5afb08
push str.InstallFinishRegistryValue
push eax
call fcn.00402250
cmp dword [ebp - 0x3c], 0
jne 0x40c365
push 2
push 0x5b06bc
lea ecx, [ebp - 0x4c]
call fcn.00402bf0
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
cmovae eax, dword [ebp - 0x4c]
push eax
lea eax, [ebx + 0x214]
push 0x104
push eax
call fcn.0054ac11
add esp, 0xc
jmp 0x40cc62
cmp eax, 1
jne 0x40c4a5
mov dword [ebx + 8], 0
cmp dword [esi + 0x14], 0x10
jb 0x40c3a4
mov eax, dword [esi]
jmp 0x40c3a6
mov eax, esi
lea ecx, [ebp - 0x4c]
push ecx
mov ecx, dword [edi + 0xc]
push 0x5afb08
push str.VendorProductKey
push eax
call fcn.00402250
lea eax, [ebp - 0x4c]
mov edx, str.HKEY_LOCAL_MACHINESoftware_
push eax
lea ecx, [ebp - 0x64]
call fcn.004110e0
add esp, 4
push str.InstAll
mov edx, eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x34]
call fcn.00403ac0
add esp, 4
mov byte [ebp - 4], 4
cmp dword [ebp - 0x50], 0x10
jb 0x40c3fc
push dword [ebp - 0x64]
call fcn.00421c08
add esp, 4
cmp dword [ebp - 0x20], 0x10
lea eax, [ebp - 0x34]
mov dword [ebp - 0x50], 0xf
cmovae eax, dword [ebp - 0x34]
push eax
lea eax, [ebx + 0xc]
mov dword [ebp - 0x54], 0
push 0x104
push eax
mov byte [ebp - 0x64], 0
call fcn.0054ac11
add esp, 0xc
cmp dword [esi + 0x14], 0x10
jb 0x40c435
mov eax, dword [esi]
jmp 0x40c437
mov eax, esi
lea ecx, [ebp - 0x4c]
push ecx
mov ecx, dword [edi + 0xc]
push 0x5afb08
push str.Version
push eax
call fcn.00402250
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
cmovae eax, dword [ebp - 0x4c]
push eax
lea eax, [ebx + 0x110]
push 0x104
push eax
call fcn.0054ac11
add esp, 0xc
lea eax, [ebx + 0x214]
push 0x5b0704
push 0x104
push eax
call fcn.0054ac11
add esp, 0xc
mov byte [ebp - 4], 1
cmp dword [ebp - 0x20], 0x10
jb 0x40cc62
push dword [ebp - 0x34]
call fcn.00421c08
add esp, 4
jmp 0x40cc62
cmp eax, 2
jne 0x40c867
cmp dword [esi + 0x14], 0x10
jb 0x40c4b8
mov ecx, dword [esi]
jmp 0x40c4ba
mov ecx, esi
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x14], 0x10
jb 0x40c4c5
mov eax, dword [eax]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push 0
push str.InstallProcessCount
push ecx
call eax
mov ebx, eax
mov eax, dword [ebp - 0x98]
mov dword [eax + 0x318], ebx
test ebx, ebx
jle 0x40cc5c
mov dword [ebp - 0x50], 0xf
mov dword [ebp - 0x54], 0
mov byte [ebp - 0x64], 0
mov dword [ebp - 0x20], 0xf
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x34], 0
mov edx, ebx
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xe0]
call fcn.00417c00
push eax
mov edx, str.InstallProcess
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xb0]
call fcn.0040a7c0
add esp, 4
push str.ClassName
mov edx, eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x94]
call fcn.00403ac0
add esp, 4
cmp dword [ebp - 0x9c], 0x10
jb 0x40c568
push dword [ebp - 0xb0]
call fcn.00421c08
add esp, 4
mov dword [ebp - 0x9c], 0xf
mov dword [ebp - 0xa0], 0
mov byte [ebp - 0xb0], 0
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0xcc], 0x10
jb 0x40c59e
push dword [ebp - 0xe0]
call fcn.00421c08
add esp, 4
cmp dword [ebp - 0x80], 0x10
lea eax, [ebp - 0x94]
mov dword [ebp - 0xcc], 0xf
cmovae eax, dword [ebp - 0x94]
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0xd0], 0
mov byte [ebp - 0xe0], 0
jb 0x40c5d4
mov ecx, dword [esi]
jmp 0x40c5d6
mov ecx, esi
lea edx, [ebp - 0x64]
push edx
push 0x5afb08
push eax
push ecx
mov ecx, dword [edi + 0xc]
call fcn.00402250
mov edx, ebx
lea ecx, [ebp - 0xf8]
call fcn.00417c00
push eax
mov edx, str.InstallProcess
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x128]
call fcn.0040a7c0
add esp, 4
push str.CaptionName
mov edx, eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xc8]
call fcn.00403ac0
mov edi, eax
add esp, 4
lea eax, [ebp - 0x94]
cmp eax, edi
je 0x40c66b
cmp dword [ebp - 0x80], 0x10
jb 0x40c647
push dword [ebp - 0x94]
call fcn.00421c08
add esp, 4
push edi
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x80], 0xf
mov dword [ebp - 0x84], 0
mov byte [ebp - 0x94], 0
call fcn.004028b0
cmp dword [ebp - 0xb4], 0x10
jb 0x40c682
push dword [ebp - 0xc8]
call fcn.00421c08
add esp, 4
cmp dword [ebp - 0x114], 0x10
mov dword [ebp - 0xb4], 0xf
mov dword [ebp - 0xb8], 0
mov byte [ebp - 0xc8], 0
jb 0x40c6b4
push dword [ebp - 0x128]
call fcn.00421c08
add esp, 4
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0xe4], 0x10
mov dword [ebp - 0x114], 0xf
mov dword [ebp - 0x118], 0
mov byte [ebp - 0x128], 0
jb 0x40c6ea
push dword [ebp - 0xf8]
call fcn.00421c08
add esp, 4
cmp dword [ebp - 0x80], 0x10
lea eax, [ebp - 0x94]
cmovae eax, dword [ebp - 0x94]
cmp dword [esi + 0x14], 0x10
jb 0x40c705
mov ecx, dword [esi]
jmp 0x40c707
mov ecx, esi
lea edx, [ebp - 0x34]
push edx
push 0x5afb08
push eax
push ecx
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ecx + 0xc]
call fcn.00402250
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x64]
mov dword [ebp - 0xfc], 0xf
push eax
lea ecx, [ebp - 0x110]
mov dword [ebp - 0x100], 0
mov byte [ebp - 0x110], 0
call fcn.00402ac0
push 0xffffffffffffffff
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x34]
push 0
push eax
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0xe4], 0xf
mov dword [ebp - 0xe8], 0
mov byte [ebp - 0xf8], 0
call fcn.00402ac0
mov edi, dword [ebp - 0x98]
lea eax, [ebp - 0x110]
push eax
mov byte [ebp - 4], 0xf
lea ecx, [edi + 0x31c]
call fcn.00411260
push eax
add eax, 0x10
push eax
push ecx
lea eax, [ebp - 0x130]
push eax
lea ecx, [edi + 0x31c]
call fcn.00411290
cmp dword [ebp - 0xe4], 0x10
jb 0x40c7c8
push dword [ebp - 0xf8]
call fcn.00421c08
add esp, 4
cmp dword [ebp - 0xfc], 0x10
mov dword [ebp - 0xe4], 0xf
mov dword [ebp - 0xe8], 0
mov byte [ebp - 0xf8], 0
jb 0x40c7fa
push dword [ebp - 0x110]
call fcn.00421c08
add esp, 4
cmp dword [ebp - 0x80], 0x10
jb 0x40c80e
push dword [ebp - 0x94]
call fcn.00421c08
add esp, 4
cmp dword [ebp - 0x20], 0x10
mov dword [ebp - 0x80], 0xf
mov dword [ebp - 0x84], 0
mov byte [ebp - 0x94], 0
jb 0x40c837
push dword [ebp - 0x34]
call fcn.00421c08
add esp, 4
mov byte [ebp - 4], 1
cmp dword [ebp - 0x50], 0x10
mov dword [ebp - 0x20], 0xf
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x34], 0
jb 0x40c85e
push dword [ebp - 0x64]
call fcn.00421c08
add esp, 4
mov edi, dword [ebp - 0x1c]
dec ebx
jmp 0x40c4e3
cmp eax, 3
jne 0x40c90a
cmp dword [esi + 0x14], 0x10
jb 0x40c87a
mov ecx, dword [esi]
jmp 0x40c87c
mov ecx, esi
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x14], 0x10
jb 0x40c887
mov eax, dword [eax]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push 0xffff
push str.InstallFinishMessageType
push ecx
call eax
mov dword [ebx + 0x324], eax
test eax, eax
jne 0x40c8c2
push str.InstaAll_INSTALL_FINISH
lea eax, [ebx + 0x328]
push 0x104
push eax
call fcn.0054ac11
add esp, 0xc
jmp 0x40cc62
cmp dword [esi + 0x14], 0x10
jb 0x40c8cc
mov eax, dword [esi]
jmp 0x40c8ce
mov eax, esi
lea ecx, [ebp - 0x4c]
push ecx
mov ecx, dword [edi + 0xc]
push 0x5afb08
push str.InstallFinishMessage
push eax
call fcn.00402250
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
cmovae eax, dword [ebp - 0x4c]
push eax
lea eax, [ebx + 0x328]
push 0x104
push eax
call fcn.0054ac11
add esp, 0xc
jmp 0x40cc62
cmp eax, 6
jne 0x40cc62
cmp dword [esi + 0x14], 0x10
jb 0x40c91d
mov eax, dword [esi]
jmp 0x40c91f
mov eax, esi
lea ecx, [ebp - 0x4c]
push ecx
mov ecx, dword [edi + 0xc]
push str.setup.exe
push str.InstallFinishProcessName
push eax
call fcn.00402250
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
cmovae eax, dword [ebp - 0x4c]
push eax
lea eax, [ebx + 0x430]
push 0x104
push eax
call fcn.0054ac11
add esp, 0xc
cmp dword [esi + 0x14], 0x10
jb 0x40c960
mov ecx, dword [esi]
jmp 0x40c962
mov ecx, esi
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x14], 0x10
jb 0x40c96d
mov eax, dword [eax]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push 0
push str.InstallProcessCount
push ecx
call eax
mov ebx, eax
mov eax, dword [ebp - 0x98]
mov dword [eax + 0x318], ebx
jmp 0x40c990
test ebx, ebx
jle 0x40cc5c
mov dword [ebp - 0x50], 0xf
mov dword [ebp - 0x54], 0
mov byte [ebp - 0x64], 0
mov dword [ebp - 0x20], 0xf
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x34], 0
mov edx, ebx
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0xc8]
call fcn.00417c00
push eax
mov edx, str.InstallProcess
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x128]
call fcn.0040a7c0
add esp, 4
push str.ClassName
mov edx, eax
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x7c]
call fcn.00403ac0
add esp, 4
cmp dword [ebp - 0x114], 0x10
jb 0x40ca12
push dword [ebp - 0x128]
call fcn.00421c08
add esp, 4
mov dword [ebp - 0x114], 0xf
mov dword [ebp - 0x118], 0
mov byte [ebp - 0x128], 0
mov byte [ebp - 4], 0x16
cmp dword [ebp - 0xb4], 0x10
jb 0x40ca48
push dword [ebp - 0xc8]
call fcn.00421c08
add esp, 4
cmp dword [ebp - 0x68], 0x10
lea eax, [ebp - 0x7c]
mov dword [ebp - 0xb4], 0xf
cmovae eax, dword [ebp - 0x7c]
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0xb8], 0
mov byte [ebp - 0xc8], 0
jb 0x40ca78
mov ecx, dword [esi]
jmp 0x40ca7a
mov ecx, esi
lea edx, [ebp - 0x64]
push edx
push 0x5afb08
push eax
push ecx
mov ecx, dword [edi + 0xc]
call fcn.00402250
mov edx, ebx
lea ecx, [ebp - 0xf8]
call fcn.00417c00
push eax
mov edx, str.InstallProcess
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0xb0]
call fcn.0040a7c0
add esp, 4
push str.CaptionName
mov edx, eax
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0xe0]
call fcn.00403ac0
mov edi, eax
add esp, 4
lea eax, [ebp - 0x7c]
cmp eax, edi
je 0x40cb00
cmp dword [ebp - 0x68], 0x10
jb 0x40cae5
push dword [ebp - 0x7c]
call fcn.00421c08
add esp, 4
push edi
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x68], 0xf
mov dword [ebp - 0x6c], 0
mov byte [ebp - 0x7c], 0
call fcn.004028b0
cmp dword [ebp - 0xcc], 0x10
jb 0x40cb17
push dword [ebp - 0xe0]
call fcn.00421c08
add esp, 4
cmp dword [ebp - 0x9c], 0x10
mov dword [ebp - 0xcc], 0xf
mov dword [ebp - 0xd0], 0
mov byte [ebp - 0xe0], 0
jb 0x40cb49
push dword [ebp - 0xb0]
call fcn.00421c08
add esp, 4
mov byte [ebp - 4], 0x16
cmp dword [ebp - 0xe4], 0x10
mov dword [ebp - 0x9c], 0xf
mov dword [ebp - 0xa0], 0
mov byte [ebp - 0xb0], 0
jb 0x40cb7f
push dword [ebp - 0xf8]
call fcn.00421c08
add esp, 4
cmp dword [ebp - 0x68], 0x10
lea eax, [ebp - 0x7c]
cmovae eax, dword [ebp - 0x7c]
cmp dword [esi + 0x14], 0x10
jb 0x40cb94
mov ecx, dword [esi]
jmp 0x40cb96
mov ecx, esi
lea edx, [ebp - 0x34]
push edx
push 0x5afb08
push eax
push ecx
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ecx + 0xc]
call fcn.00402250
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x110]
call fcn.004111d0
mov edi, dword [ebp - 0x98]
push eax
mov byte [ebp - 4], 0x19
lea ecx, [edi + 0x31c]
call fcn.00411260
push eax
add eax, 0x10
push eax
push ecx
lea eax, [ebp - 0x130]
push eax
lea ecx, [edi + 0x31c]
call fcn.00411290
lea ecx, [ebp - 0x110]
call fcn.004023a0
cmp dword [ebp - 0x68], 0x10
jb 0x40cc09
push dword [ebp - 0x7c]
call fcn.00421c08
add esp, 4
cmp dword [ebp - 0x20], 0x10
mov dword [ebp - 0x68], 0xf
mov dword [ebp - 0x6c], 0
mov byte [ebp - 0x7c], 0
jb 0x40cc2c
push dword [ebp - 0x34]
call fcn.00421c08
add esp, 4
mov byte [ebp - 4], 1
cmp dword [ebp - 0x50], 0x10
mov dword [ebp - 0x20], 0xf
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x34], 0
jb 0x40cc53
push dword [ebp - 0x64]
call fcn.00421c08
add esp, 4
mov edi, dword [ebp - 0x1c]
dec ebx
jmp 0x40c990
mov ebx, dword [ebp - 0x98]
cmp dword [esi + 0x14], 0x10
jb 0x40cc6a
mov esi, dword [esi]
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x14], 0x10
jb 0x40cc75
mov eax, dword [eax]
push eax
push 0x78
push str.InstallFinishTimeOutSecond
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebx + 0x42c], eax
lea ecx, [ebp - 0x34]
push 9
xor eax, eax
mov dword [ebp - 0x20], 7
push str.REINSTALL
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
call fcn.00403360
mov byte [ebp - 4], 0x1a
mov ecx, dword [0x5e0630]
test ecx, ecx
jne 0x40cced
push 4
call fcn.00421bdb
add esp, 4
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x1b
test eax, eax
je 0x40cce1
mov ecx, eax
mov dword [eax], 0
call fcn.004051a0
mov ecx, eax
jmp 0x40cce3
xor ecx, ecx
mov byte [ebp - 4], 0x1a
mov dword [0x5e0630], ecx
cmp dword [ebp - 0x20], 8
lea eax, [ebp - 0x34]
mov esi, dword [ecx]
mov ecx, esi
cmovae eax, dword [ebp - 0x34]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
push eax
call fcn.00415d40
mov eax, dword [ebp - 0x1c]
cmp eax, dword [esi + 0x1c]
setne bl
cmp dword [ebp - 0x20], 8
jb 0x40cd27
push dword [ebp - 0x34]
call fcn.00421c08
add esp, 4
test bl, bl
je 0x40cd4d
mov ecx, dword [ebp - 0x98]
mov eax, dword [ecx + 0x42c]
add eax, eax
cmp dword [ecx + 4], 4
mov dword [ecx + 0x42c], eax
jne 0x40cd4d
shr eax, 1
mov dword [ecx + 0x42c], eax
cmp dword [ebp - 0x38], 0x10
jb 0x40cd5e
push dword [ebp - 0x4c]
call fcn.00421c08
add esp, 4
mov al, 1
jmp 0x40cd6a
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.00549fe1
mov esp, ebp
pop ebp
ret 4