Function at 0x404650
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43b240
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x44d7b0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x200
mov dword [ebp - 0x18], 0
mov esi, 0x44334c
mov edi, 0x443510
call fcn.00428b6e
add esp, 4
mov ebx, eax
call fcn.0040e423
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4046b2
push 0x80004005
call fcn.00401ba0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x14], eax
mov ecx, 0x44334c
mov dword [ebp - 4], 0
test ecx, 0xffff0000
jne 0x4046ee
movzx esi, si
push esi
call fcn.0040e80f
test eax, eax
je 0x4046fb
push esi
push eax
lea ecx, [ebp - 0x14]
call fcn.00405410
jmp 0x4046fb
push 0x44334c
lea ecx, [ebp - 0x14]
call fcn.00404f60
mov dword [ebp - 4], 1
call fcn.0040e423
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40471c
push 0x80004005
call fcn.00401ba0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x18], eax
mov ecx, 0x443510
mov byte [ebp - 4], 2
test ecx, 0xffff0000
jne 0x404755
movzx esi, di
push esi
call fcn.0040e80f
test eax, eax
je 0x404762
push esi
push eax
lea ecx, [ebp - 0x18]
call fcn.00405410
jmp 0x404762
push 0x443510
lea ecx, [ebp - 0x18]
call fcn.00404f60
mov byte [ebp - 4], 3
call fcn.0040e423
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x404780
push 0x80004005
call fcn.00401ba0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x10], eax
mov ecx, str.Config
mov byte [ebp - 4], 4
test ecx, 0xffff0000
jne 0x4047bb
mov eax, ecx
movzx esi, ax
push esi
call fcn.0040e80f
test eax, eax
je 0x4047c8
push esi
push eax
lea ecx, [ebp - 0x10]
call fcn.00405410
jmp 0x4047c8
push str.Config
lea ecx, [ebp - 0x10]
call fcn.00404f60
mov edx, dword [ebp + 0xc]
push edx
push 0x100
mov byte [ebp - 4], 3
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
push ebx
push edi
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404807
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404827
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40484a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.0040e423
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x404864
push 0x80004005
call fcn.00401ba0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
mov edi, dword [ebp + 8]
add eax, 0x10
mov dword [edi], eax
mov dword [ebp - 4], 5
test ebx, ebx
je 0x4048a0
test ebx, 0xffff0000
jne 0x4048a0
movzx esi, bx
push esi
call fcn.0040e80f
test eax, eax
je 0x4048a8
push esi
push eax
mov ecx, edi
call fcn.00404100
jmp 0x4048a8
push ebx
mov ecx, edi
call fcn.00405940
push ebx
call fcn.0042843c
add esp, 4
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret