Function at 0x4b9e40
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x559e4e
mov eax, dword fs:[0]
push eax
sub esp, 0xe4
mov eax, dword [0x5df7e4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xe4], 0
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x5e8278]
cmp eax, dword [ecx + 4]
jg 0x4ba244
mov eax, dword [0x5e827c]
cmp dword [eax - 0xc], 0
jne 0x4ba1f9
mov dword [ebp - 4], 2
lea ecx, [ebp - 0xdc]
call fcn.004b9be0
mov byte [ebp - 4], 3
push 0x5c
push dword [ebp - 0xdc]
call fcn.0052a53d
mov esi, eax
add esp, 8
mov eax, dword [ebp - 0xdc]
test esi, esi
jne 0x4b9eeb
or esi, 0xffffffff
jmp 0x4b9eef
sub esi, eax
sar esi, 1
push 0x2f
push eax
call fcn.0052a53d
add esp, 8
test eax, eax
jne 0x4b9f03
or eax, 0xffffffff
jmp 0x4b9f0b
sub eax, dword [ebp - 0xdc]
sar eax, 1
cmp esi, eax
lea ecx, [ebp - 0xdc]
cmovg eax, esi
inc eax
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.004babf0
mov dword [ebp - 0xe4], 2
mov byte [ebp - 4], 2
or ebx, 0xffffffff
mov ecx, dword [ebp - 0xdc]
mov eax, ebx
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
test eax, eax
jg 0x4b9f7d
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4ba28f
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x4ba28f
push 0
push dword [edx + 4]
call esi
push 0xc8
lea eax, [ebp - 0xd8]
push 0
push eax
call fcn.0052a280
push 0x5be29c
lea eax, [ebp - 0xe0]
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.004baa80
add esp, 0x18
mov byte [ebp - 4], 5
push dword [eax]
lea eax, [ebp - 0xd8]
push 0x64
push eax
push 0x5bd23c
push str.Version
push str.Common
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov byte [ebp - 4], 2
mov eax, ebx
mov ecx, dword [ebp - 0xdc]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x4ba015
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4ba298
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x4ba298
push 0
push dword [edx + 4]
call esi
lea ecx, [ebp - 0xd8]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4ba020
sub ecx, edx
sar ecx, 1
jne 0x4ba089
mov eax, dword [ebp - 0xe0]
mov edi, dword [0x5e827c]
add edi, 0xfffffff0
lea edx, [eax - 0x10]
cmp edx, edi
je 0x4ba19a
cmp dword [edi + 0xc], 0
jl 0x4ba076
mov ecx, dword [edx]
cmp ecx, dword [edi]
jne 0x4ba076
push edx
call fcn.004bbb10
add esp, 4
mov ecx, edi
mov esi, eax
call fcn.004b98a0
lea eax, [esi + 0x10]
mov dword [0x5e827c], eax
jmp 0x4ba19a
push dword [eax - 0xc]
mov ecx, 0x5e827c
push eax
call fcn.004bbc70
jmp 0x4ba19a
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0xe0]
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.004baa80
mov byte [ebp - 4], 7
push 0x5be298
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.004baa80
add esp, 0x18
mov byte [ebp - 4], 8
mov ecx, dword [eax]
mov edi, dword [0x5e827c]
add edi, 0xfffffff0
lea edx, [ecx - 0x10]
cmp edx, edi
je 0x4ba10e
cmp dword [edi + 0xc], 0
jl 0x4ba100
mov eax, dword [edx]
cmp eax, dword [edi]
jne 0x4ba100
push edx
call fcn.004bbb10
add esp, 4
mov ecx, edi
mov esi, eax
call fcn.004b98a0
lea eax, [esi + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [0x5e827c], eax
jmp 0x4ba10e
push dword [ecx - 0xc]
push ecx
mov ecx, 0x5e827c
call fcn.004bbc70
mov byte [ebp - 4], 7
mov eax, ebx
mov ecx, dword [ebp - 0xdc]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x4ba154
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4ba2a1
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x4ba2a1
push 0
push dword [edx + 4]
call esi
mov byte [ebp - 4], 2
mov eax, ebx
mov ecx, dword [ebp - 0xe8]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x4ba19a
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4ba2aa
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x4ba2aa
push 0
push dword [edx + 4]
call esi
mov eax, 2
mov dword [ebp - 0xe4], eax
and eax, 0xfffffffd
mov dword [ebp - 0xe4], eax
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0xe0]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x4ba1f9
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4ba2b3
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x4ba2b3
push 0
push dword [edx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [0x5e827c]
add eax, 0xfffffff0
push eax
call fcn.004bbb10
mov ecx, dword [ebp - 0xec]
add esp, 4
add eax, 0x10
mov dword [ecx], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0xe4], 1
mov eax, ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005121be
mov esp, ebp
pop ebp
ret
push 0x5e8278
call fcn.005120ca
add esp, 4
cmp dword [0x5e8278], 0xffffffff
jne 0x4b9ea5
mov dword [ebp - 4], 1
mov ecx, 0x5e827c
call fcn.004baf80
push 0x5697e0
call fcn.00511f12
mov byte [ebp - 4], 0
push 0x5e8278
call fcn.00512080
add esp, 8
jmp 0x4b9ea5
mov ecx, edx
call edi
jmp 0x4b9f7d
mov ecx, edx
call edi
jmp 0x4ba015
mov ecx, edx
call edi
jmp 0x4ba154
mov ecx, edx
call edi
jmp 0x4ba19a
mov ecx, edx
call esi
jmp 0x4ba1f9