Function at 0x401d00
Capabilities:
Enumerate files on windows
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44059b
mov eax, dword fs:[0]
push eax
mov eax, 0x1d54
call fcn.0042f1d0
mov eax, dword [0x454688]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1d60], ecx
mov dword [ebp - 0x228], 1
mov eax, dword [ebp - 0x1d60]
mov dword [eax + 0x4f98], 0
mov ecx, dword [ebp - 0x1d60]
mov dword [ecx + 0x4f9c], 1
mov dword [ebp - 0x650], 0
mov ecx, dword [ebp - 0x1d60]
call fcn.004033f0
test eax, eax
je 0x401d8a
mov edx, dword [ebp - 0x1d60]
mov dword [edx + 0x4f98], 1
jmp 0x401d9a
mov eax, dword [ebp - 0x1d60]
mov dword [eax + 0x4f98], 0
mov ecx, dword [ebp - 0x1d60]
cmp dword [ecx + 0x53b8], 0
jne 0x401dc3
mov ecx, dword [ebp - 0x1d60]
call fcn.00403050
test eax, eax
jne 0x401dc3
mov eax, dword [ebp - 0x228]
jmp 0x402efe
mov edx, dword [ebp - 0x1d60]
add edx, 0x2c
push edx
push 0x209
mov eax, dword [ebp - 0x1d60]
add eax, 0x4fa4
push eax
call fcn.004016e0
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x2c
push ecx
push 0x104
mov edx, dword [ebp - 0x1d60]
add edx, 0x852
push edx
push 0
push str.ProductName
push str.Setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x401e60
push 0x104
mov eax, dword [ebp - 0x1d60]
add eax, 0x852
push eax
push 0x6a
mov ecx, dword [ebp - 0x1d60]
call fcn.00401040
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
mov ecx, dword [ebp - 0x1d60]
movzx edx, word [ecx + 0x852]
test edx, edx
jne 0x401e60
mov dword [ebp - 0x228], 0
mov eax, dword [ebp - 0x1d60]
add eax, 0x2c
push eax
push 0x105
lea ecx, [ebp - 0x10b4]
push ecx
push 0
push str.ProductFile
push str.Setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x401ea3
mov dword [ebp - 0x228], 0
jmp 0x401ec0
lea edx, [ebp - 0x10b4]
push edx
push 0x105
mov eax, dword [ebp - 0x1d60]
add eax, 0x43e
push eax
call fcn.00401730
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x2c
push ecx
push 0x105
lea edx, [ebp - 0x10b4]
push edx
push 0
push 0x4490d4
push str.Setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x401f03
mov dword [ebp - 0x228], 0
jmp 0x401f21
lea eax, [ebp - 0x10b4]
push eax
push 0x105
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x648
push ecx
call fcn.00401730
mov edx, dword [ebp - 0x1d60]
add edx, 0x2c
push edx
push 0x104
mov eax, dword [ebp - 0x1d60]
add eax, 0xc62
push eax
push 0
push 0x449114
push str.Setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x401f67
mov dword [ebp - 0x228], 0
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x2c
push ecx
push 0x209
mov edx, dword [ebp - 0x1d60]
add edx, 0x1074
push edx
push 0
push str.Supplement
push 0x4490a4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x4020ad
mov dword [ebp - 0x1d54], 0
push 0x24c
push 0
lea eax, [ebp - 0x1d50]
push eax
call fcn.0042cd90
add esp, 0xc
mov ecx, dword [ebp - 0x1d60]
add ecx, 0xe6a
push ecx
push 0x105
lea edx, [ebp - 0x10b4]
push edx
call fcn.004016e0
push str.Supplement.msi
push 0x105
lea eax, [ebp - 0x10b4]
push eax
call fcn.00401730
lea ecx, [ebp - 0x1d54]
push ecx
lea edx, [ebp - 0x10b4]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x1d58], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
je 0x40209e
cmp dword [ebp - 0x1d58], 0xffffffff
je 0x40209e
cmp dword [ebp - 0x1d58], 0xffffffff
jne 0x402041
jmp 0x40209e
lea eax, [ebp - 0x1d28]
push eax
push 0x209
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x1074
push ecx
call fcn.00401730
push 0x449220
push 0x209
mov edx, dword [ebp - 0x1d60]
add edx, 0x1074
push edx
call fcn.00401730
mov dword [ebp - 0x228], 1
lea eax, [ebp - 0x1d54]
push eax
mov ecx, dword [ebp - 0x1d58]
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
jmp 0x402016
mov edx, dword [ebp - 0x1d58]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x402124
mov eax, dword [ebp - 0x1d60]
add eax, 0xe6a
push eax
push 0x105
lea ecx, [ebp - 0x10b4]
push ecx
call fcn.004016e0
push 0x449224
push 0x105
lea edx, [ebp - 0x10b4]
push edx
call fcn.00401730
mov eax, dword [ebp - 0x1d60]
add eax, 0x1074
push eax
push 0x105
lea ecx, [ebp - 0x10b4]
push ecx
call fcn.00401730
lea edx, [ebp - 0x10b4]
push edx
push 0x209
mov eax, dword [ebp - 0x1d60]
add eax, 0x1074
push eax
call fcn.004016e0
mov dword [ebp - 0x228], 1
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x2c
push ecx
push 0
push str.SilentProgress
push str.Setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x868], eax
push 0x44923c
push 0x105
lea edx, [ebp - 0x14d4]
push edx
call fcn.004016e0
mov eax, dword [ebp - 0x1d60]
add eax, 0x3104
push eax
push 0x105
lea ecx, [ebp - 0x14d4]
push ecx
call fcn.00401730
mov edx, dword [ebp - 0x1d60]
add edx, 0x2c
push edx
push 0x209
mov eax, dword [ebp - 0x1d60]
add eax, 0x1486
push eax
push 0
lea ecx, [ebp - 0x14d4]
push ecx
push 0x449064
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x4021e2
push 0x449244
push 0x209
mov edx, dword [ebp - 0x1d60]
add edx, 0x1486
push edx
call fcn.004016e0
mov dword [ebp - 0x228], 1
jmp 0x40227c
mov eax, dword [ebp - 0x1d60]
add eax, 0x1898
push eax
push 0x105
lea ecx, [ebp - 0x10b4]
push ecx
call fcn.004016e0
mov edx, dword [ebp - 0x1d60]
add edx, 0x1486
push edx
push 0x105
lea eax, [ebp - 0x10b4]
push eax
call fcn.00401730
lea ecx, [ebp - 0x10b4]
push ecx
push 0x209
mov edx, dword [ebp - 0x1d60]
add edx, 0x1486
push edx
call fcn.004016e0
mov eax, dword [ebp - 0x1d60]
add eax, 0x1486
push eax
mov ecx, dword [ebp - 0x1d60]
call fcn.00403160
test eax, eax
jne 0x402272
push 0x449250
push 0x209
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x1486
push ecx
call fcn.004016e0
mov dword [ebp - 0x228], 1
push str.MSXML6
push 0x105
lea edx, [ebp - 0x18f4]
push edx
call fcn.004016e0
mov eax, dword [ebp - 0x1d60]
add eax, 0x3104
push eax
push 0x105
lea ecx, [ebp - 0x18f4]
push ecx
call fcn.00401730
mov edx, dword [ebp - 0x1d60]
add edx, 0x2c
push edx
push 0x209
mov eax, dword [ebp - 0x1d60]
add eax, 0x20bc
push eax
push 0
lea ecx, [ebp - 0x18f4]
push ecx
push 0x449064
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x402318
push 0x44926c
push 0x209
mov edx, dword [ebp - 0x1d60]
add edx, 0x20bc
push edx
call fcn.004016e0
mov dword [ebp - 0x228], 1
jmp 0x4023bd
mov eax, dword [ebp - 0x1d60]
add eax, 0x1898
push eax
push 0x105
lea ecx, [ebp - 0x10b4]
push ecx
call fcn.004016e0
mov edx, dword [ebp - 0x1d60]
add edx, 0x20bc
push edx
push 0x105
lea eax, [ebp - 0x10b4]
push eax
call fcn.00401730
lea ecx, [ebp - 0x10b4]
push ecx
push 0x209
mov edx, dword [ebp - 0x1d60]
add edx, 0x20bc
push edx
call fcn.004016e0
mov eax, dword [ebp - 0x1d60]
add eax, 0x20bc
push eax
mov ecx, dword [ebp - 0x1d60]
call fcn.00403160
test eax, eax
jne 0x4023a8
push 0x449278
push 0x209
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x20bc
push ecx
call fcn.004016e0
mov ecx, dword [ebp - 0x1d60]
call fcn.00403a10
mov dword [ebp - 0x228], 1
push str.ProductCode
push 0x105
lea edx, [ebp - 0x864]
push edx
call fcn.004016e0
mov eax, dword [ebp - 0x1d60]
add eax, 0x2c
push eax
push 0x209
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x24ce
push ecx
push 0
lea edx, [ebp - 0x864]
push edx
push str.WATransform
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x402437
push 0x44929c
push 0x209
mov eax, dword [ebp - 0x1d60]
add eax, 0x24ce
push eax
call fcn.004016e0
mov dword [ebp - 0x228], 1
push str.ProductLanguage
push 0x105
lea ecx, [ebp - 0xa7c]
push ecx
call fcn.004016e0
mov edx, dword [ebp - 0x1d60]
add edx, 0x2c
push edx
push 0x209
mov eax, dword [ebp - 0x1d60]
add eax, 0x28e0
push eax
push 0
lea ecx, [ebp - 0xa7c]
push ecx
push str.Setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x4024b1
push 0x4492c8
push 0x209
mov edx, dword [ebp - 0x1d60]
add edx, 0x28e0
push edx
call fcn.004016e0
mov dword [ebp - 0x228], 1
lea ecx, [ebp - 0xea0]
call fcn.00404ed0
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x1d60]
add eax, 0x28e0
push eax
push 0x4492d4
lea ecx, [ebp - 0xea0]
push ecx
call fcn.00405fe0
add esp, 0xc
push str.LanguageMST
push 0x105
lea edx, [ebp - 0x64c]
push edx
call fcn.004016e0
mov eax, dword [ebp - 0x1d60]
add eax, 0x2c
push eax
push 0x209
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x2cf2
push ecx
push 0
lea edx, [ebp - 0x64c]
push edx
push str.Setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x40255d
push 0x4492f4
push 0x209
mov eax, dword [ebp - 0x1d60]
add eax, 0x2cf2
push eax
call fcn.004016e0
mov dword [ebp - 0x228], 1
mov dword [ebp - 0x228], 1
push str.InstMsi
push 0x105
lea ecx, [ebp - 0x1b04]
push ecx
call fcn.004016e0
mov edx, dword [ebp - 0x1d60]
add edx, 0x3104
push edx
push 0x105
lea eax, [ebp - 0x1b04]
push eax
call fcn.00401730
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x2c
push ecx
push 0x209
mov edx, dword [ebp - 0x1d60]
add edx, 0x1caa
push edx
push 0
lea eax, [ebp - 0x1b04]
push eax
push 0x449064
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x402605
push 0x449310
push 0x209
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x1caa
push ecx
call fcn.004016e0
mov dword [ebp - 0x228], 1
jmp 0x4026ab
mov edx, dword [ebp - 0x1d60]
add edx, 0x1898
push edx
push 0x105
lea eax, [ebp - 0x10b4]
push eax
call fcn.004016e0
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x1caa
push ecx
push 0x105
lea edx, [ebp - 0x10b4]
push edx
call fcn.00401730
lea eax, [ebp - 0x10b4]
push eax
push 0x209
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x1caa
push ecx
call fcn.004016e0
mov edx, dword [ebp - 0x1d60]
add edx, 0x1caa
push edx
mov ecx, dword [ebp - 0x1d60]
call fcn.00403160
test eax, eax
jne 0x402696
push 0x44931c
push 0x209
mov eax, dword [ebp - 0x1d60]
add eax, 0x1caa
push eax
call fcn.004016e0
mov ecx, dword [ebp - 0x1d60]
call fcn.00404100
mov dword [ebp - 0x228], 1
push str.RuntimeName
push 0x105
lea ecx, [ebp - 0x16e4]
push ecx
call fcn.004016e0
mov edx, dword [ebp - 0x1d60]
add edx, 0x2c
push edx
push 0x105
mov eax, dword [ebp - 0x1d60]
add eax, 0x330c
push eax
push 0
lea ecx, [ebp - 0x16e4]
push ecx
push 0x449064
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x402727
push 0x449340
push 0x105
mov edx, dword [ebp - 0x1d60]
add edx, 0x330c
push edx
call fcn.004016e0
mov dword [ebp - 0x228], 1
jmp 0x402731
mov dword [ebp - 0x228], 1
push str.RuntimeFolder
push 0x105
lea eax, [ebp - 0x224]
push eax
call fcn.004016e0
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x2c
push ecx
push 0x209
mov edx, dword [ebp - 0x1d60]
add edx, 0x3b30
push edx
push 0
lea eax, [ebp - 0x224]
push eax
push 0x449064
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x4027ae
push 0x449368
push 0x209
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x3b30
push ecx
call fcn.004016e0
mov dword [ebp - 0x228], 1
jmp 0x402812
mov edx, dword [ebp - 0x1d60]
add edx, 0x1898
push edx
push 0x105
lea eax, [ebp - 0x10b4]
push eax
call fcn.004016e0
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x3b30
push ecx
push 0x105
lea edx, [ebp - 0x10b4]
push edx
call fcn.00401730
lea eax, [ebp - 0x10b4]
push eax
push 0x209
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x3b30
push ecx
call fcn.004016e0
mov dword [ebp - 0x228], 1
push str.RuntimeCode
push 0x105
lea edx, [ebp - 0x12c4]
push edx
call fcn.004016e0
mov eax, dword [ebp - 0x1d60]
add eax, 0x3104
push eax
push 0x105
lea ecx, [ebp - 0x12c4]
push ecx
call fcn.00401730
mov edx, dword [ebp - 0x1d60]
add edx, 0x2c
push edx
push 0x104
mov eax, dword [ebp - 0x1d60]
add eax, 0x3516
push eax
push 0
lea ecx, [ebp - 0x12c4]
push ecx
push 0x449064
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x4028ab
push 0x44938c
push 0x104
mov edx, dword [ebp - 0x1d60]
add edx, 0x3516
push edx
call fcn.004016e0
mov dword [ebp - 0x228], 1
jmp 0x4028b5
mov dword [ebp - 0x228], 1
push str.RuntimeFile
push 0x105
lea eax, [ebp - 0xe9c]
push eax
call fcn.004016e0
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x3104
push ecx
push 0x105
lea edx, [ebp - 0xe9c]
push edx
call fcn.00401730
mov eax, dword [ebp - 0x1d60]
add eax, 0x2c
push eax
push 0x209
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x371e
push ecx
push 0
lea edx, [ebp - 0xe9c]
push edx
push 0x449064
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x402952
push 0x4493b0
push 0x209
mov eax, dword [ebp - 0x1d60]
add eax, 0x371e
push eax
call fcn.004016e0
mov dword [ebp - 0x228], 1
jmp 0x402a43
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x1898
push ecx
push 0x105
lea edx, [ebp - 0x10b4]
push edx
call fcn.004016e0
mov eax, dword [ebp - 0x1d60]
add eax, 0x371e
push eax
push 0x105
lea ecx, [ebp - 0x10b4]
push ecx
call fcn.00401730
lea edx, [ebp - 0x10b4]
push edx
push 0x209
mov eax, dword [ebp - 0x1d60]
add eax, 0x371e
push eax
call fcn.004016e0
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x371e
push ecx
mov ecx, dword [ebp - 0x1d60]
call fcn.00403160
test eax, eax
jne 0x4029e4
push 0x4493bc
push 0x209
mov edx, dword [ebp - 0x1d60]
add edx, 0x371e
push edx
call fcn.004016e0
jmp 0x402a39
mov ecx, dword [ebp - 0x1d60]
call fcn.004043e0
mov eax, dword [ebp - 0x1d60]
add eax, 0x3b30
push eax
push 0x209
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x4fa4
push ecx
call fcn.004016e0
push str.Setup.ini
push 0x209
mov edx, dword [ebp - 0x1d60]
add edx, 0x4fa4
push edx
call fcn.00401730
mov ecx, dword [ebp - 0x1d60]
call fcn.004045f0
mov dword [ebp - 0x228], 1
push str.SQLCLR32
push 0x105
lea eax, [ebp - 0xc8c]
push eax
call fcn.004016e0
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x2c
push ecx
push 0x209
mov edx, dword [ebp - 0x1d60]
add edx, 0x4354
push edx
push 0
lea eax, [ebp - 0xc8c]
push eax
push 0x449064
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x402ac3
push 0x4493f4
push 0x209
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x4354
push ecx
call fcn.004016e0
mov dword [ebp - 0x228], 1
jmp 0x402b5e
mov edx, dword [ebp - 0x1d60]
add edx, 0x1898
push edx
push 0x105
lea eax, [ebp - 0x10b4]
push eax
call fcn.004016e0
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x4354
push ecx
push 0x105
lea edx, [ebp - 0x10b4]
push edx
call fcn.00401730
lea eax, [ebp - 0x10b4]
push eax
push 0x209
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x4354
push ecx
call fcn.004016e0
mov edx, dword [ebp - 0x1d60]
add edx, 0x4354
push edx
mov ecx, dword [ebp - 0x1d60]
call fcn.00403160
test eax, eax
jne 0x402b54
push 0x449400
push 0x209
mov eax, dword [ebp - 0x1d60]
add eax, 0x4354
push eax
call fcn.004016e0
mov dword [ebp - 0x228], 1
push str.SQLCLR64
push 0x105
lea ecx, [ebp - 0xc8c]
push ecx
call fcn.004016e0
mov edx, dword [ebp - 0x1d60]
add edx, 0x2c
push edx
push 0x209
mov eax, dword [ebp - 0x1d60]
add eax, 0x4766
push eax
push 0
lea ecx, [ebp - 0xc8c]
push ecx
push 0x449064
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x402bdd
push 0x449420
push 0x209
mov edx, dword [ebp - 0x1d60]
add edx, 0x4766
push edx
call fcn.004016e0
mov dword [ebp - 0x228], 1
jmp 0x402c77
mov eax, dword [ebp - 0x1d60]
add eax, 0x1898
push eax
push 0x105
lea ecx, [ebp - 0x10b4]
push ecx
call fcn.004016e0
mov edx, dword [ebp - 0x1d60]
add edx, 0x4766
push edx
push 0x105
lea eax, [ebp - 0x10b4]
push eax
call fcn.00401730
lea ecx, [ebp - 0x10b4]
push ecx
push 0x209
mov edx, dword [ebp - 0x1d60]
add edx, 0x4766
push edx
call fcn.004016e0
mov eax, dword [ebp - 0x1d60]
add eax, 0x4766
push eax
mov ecx, dword [ebp - 0x1d60]
call fcn.00403160
test eax, eax
jne 0x402c6d
push 0x44942c
push 0x209
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x4766
push ecx
call fcn.004016e0
mov dword [ebp - 0x228], 1
mov ecx, dword [ebp - 0x1d60]
call fcn.00403db0
mov edx, dword [ebp - 0x1d60]
add edx, 0x2c
push edx
push 0x209
mov eax, dword [ebp - 0x1d60]
add eax, 0x3f42
push eax
push 0
push str.Patch
push 0x449064
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x402ce9
push 0x449444
push 0x209
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x3f42
push ecx
call fcn.004016e0
mov dword [ebp - 0x228], 1
jmp 0x402d84
mov edx, dword [ebp - 0x1d60]
add edx, 0x1898
push edx
push 0x105
lea eax, [ebp - 0x10b4]
push eax
call fcn.004016e0
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x3f42
push ecx
push 0x105
lea edx, [ebp - 0x10b4]
push edx
call fcn.00401730
lea eax, [ebp - 0x10b4]
push eax
push 0x209
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x3f42
push ecx
call fcn.004016e0
mov edx, dword [ebp - 0x1d60]
add edx, 0x3f42
push edx
mov ecx, dword [ebp - 0x1d60]
call fcn.00403160
test eax, eax
jne 0x402d7a
push 0x449450
push 0x209
mov eax, dword [ebp - 0x1d60]
add eax, 0x3f42
push eax
call fcn.004016e0
mov dword [ebp - 0x228], 1
mov ecx, dword [ebp - 0x1d60]
call fcn.00403b50
push str.PrerequisiteChecker
push 0x105
lea ecx, [ebp - 0x43c]
push ecx
call fcn.004016e0
mov edx, dword [ebp - 0x1d60]
add edx, 0x2c
push edx
push 0x209
mov eax, dword [ebp - 0x1d60]
add eax, 0x4b78
push eax
push 0
lea ecx, [ebp - 0x43c]
push ecx
push 0x449064
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x650], 0
jne 0x402e0e
push 0x449484
push 0x209
mov edx, dword [ebp - 0x1d60]
add edx, 0x4b78
push edx
call fcn.004016e0
mov dword [ebp - 0x228], 1
jmp 0x402ea8
mov eax, dword [ebp - 0x1d60]
add eax, 0x1898
push eax
push 0x105
lea ecx, [ebp - 0x10b4]
push ecx
call fcn.004016e0
mov edx, dword [ebp - 0x1d60]
add edx, 0x4b78
push edx
push 0x105
lea eax, [ebp - 0x10b4]
push eax
call fcn.00401730
lea ecx, [ebp - 0x10b4]
push ecx
push 0x209
mov edx, dword [ebp - 0x1d60]
add edx, 0x4b78
push edx
call fcn.004016e0
mov eax, dword [ebp - 0x1d60]
add eax, 0x4b78
push eax
mov ecx, dword [ebp - 0x1d60]
call fcn.00403160
test eax, eax
jne 0x402e9e
push 0x449490
push 0x209
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x4b78
push ecx
call fcn.004016e0
mov dword [ebp - 0x228], 1
push 0xffffffffffffffff
push 0
mov ecx, dword [ebp - 0x1d60]
call fcn.0040c4f9
push 0xffffffffffffffff
push 0
mov ecx, dword [ebp - 0x1d60]
add ecx, 0x14
call fcn.0040c4f9
mov ecx, dword [ebp - 0x1d60]
call fcn.004045f0
mov edx, dword [ebp - 0x1d60]
mov eax, dword [edx + 0x4f98]
mov dword [ebp - 0x1d5c], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xea0]
call fcn.00401130
mov eax, dword [ebp - 0x1d5c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00429c7e
mov esp, ebp
pop ebp
ret