Function at 0x42bb20
Capabilities:
Read .ini file

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x44a051
push eax
mov dword fs:[0], esp
sub esp, 0x114
push esi
mov esi, ecx
call fcn.0042aeb0
push 0x104
lea eax, [esp + 0x18]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jbe 0x42bb76
lea ecx, [esi + 0x14]
push ecx
lea edx, [esi + 0xc]
push edx
push str..EXE
lea eax, [esp + 0x20]
push eax
mov ecx, esi
call fcn.0042b980
test eax, eax
jne 0x42bb8e
xor eax, eax
pop esi
mov ecx, dword [esp + 0x114]
mov dword fs:[0], ecx
add esp, 0x120
ret
push ebx
lea ebx, [esi + 0x18]
push ebx
lea ecx, [esi + 0x10]
push ecx
push str..INI
lea edx, [esp + 0x24]
push edx
mov ecx, esi
call fcn.0042b980
test eax, eax
jne 0x42bbc3
pop ebx
pop esi
mov ecx, dword [esp + 0x114]
mov dword fs:[0], ecx
add esp, 0x120
ret
push ebp
push edi
call fcn.0043cb83
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
lea ebp, [eax + 0x10]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x12c], 0
call fcn.0043cb83
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
push eax
lea edi, [esi + 4]
push edi
push 0x44b62a
lea ecx, [esp + 0x2c]
push ecx
mov ecx, esi
mov byte [esp + 0x13c], 1
call fcn.0042b980
test eax, eax
jne 0x42bc81
mov byte [esp + 0x12c], al
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42bc41
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [ebp - 0x10]
mov dword [esp + 0x12c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42bc66
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
xor eax, eax
mov ecx, dword [esp + 0x124]
pop edi
pop ebp
pop ebx
pop esi
mov dword fs:[0], ecx
add esp, 0x120
ret
push 5
push 0
lea eax, [esp + 0x1c]
push eax
mov ecx, edi
call fcn.00401730
push eax
mov ecx, edi
mov byte [esp + 0x130], 2
call fcn.00401e30
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x12c], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42bcc7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebx]
push eax
push 0x104
lea edi, [esi + 8]
push 0x104
mov ecx, edi
call fcn.004017b0
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push eax
push 0x44b62a
push str.PDL_NAME
push str.Profiles
call ebp
mov edx, dword [edi]
test edx, edx
mov dword [esp + 0x1c], eax
jne 0x42bd04
xor ecx, ecx
jmp 0x42bd21
mov ecx, edx
lea eax, [ecx + 1]
mov dword [esp + 0x14], eax
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42bd10
sub ecx, dword [esp + 0x14]
js 0x42be1c
cmp ecx, dword [edx - 8]
jg 0x42be1c
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [edx - 0xc], ecx
mov edx, dword [edi]
mov byte [ecx + edx], 0
ja 0x42bd52
lea ecx, [esp + 0x10]
call fcn.00401400
lea ecx, [esp + 0x18]
call fcn.00401400
jmp 0x42bc66
mov eax, dword [ebx]
push eax
push 0x104
lea edi, [esi + 0x88]
push 0x104
mov ecx, edi
call fcn.004017b0
push eax
push 0x44b62a
push str.ModelDir
push str.MasterInstManualPath
call ebp
push 0xffffffffffffffff
mov ecx, edi
call fcn.0040bce0
mov eax, dword [ebx]
push eax
push 0x104
lea edi, [esi + 0x8c]
push 0x104
mov ecx, edi
call fcn.004017b0
push eax
push 0x44b62a
push str.InstallDir
push str.MasterInstManualPath
call ebp
push 0xffffffffffffffff
mov ecx, edi
call fcn.0040bce0
mov ebx, dword [ebx]
push ebx
push 0x104
lea edi, [esi + 0x90]
push 0x104
mov ecx, edi
call fcn.004017b0
push eax
push 0x44b62a
push str.IndexFile
push str.MasterInstManualPath
call ebp
push 0xffffffffffffffff
mov ecx, edi
call fcn.0040bce0
mov ecx, esi
call fcn.0042b6c0
test eax, eax
lea ecx, [esp + 0x10]
je 0x42bd3f
call fcn.00401400
lea ecx, [esp + 0x18]
call fcn.00401400
mov eax, 1
jmp 0x42bc68
push 0x80070057
call fcn.004010c0
int3