Function at 0x4bcb20
Capabilities:
Read .ini file

Disassembly:
sub esp, 8
push ebx
push esi
mov ebx, ecx
call fcn.004bb560
mov al, byte [ebx + 0xc]
test al, al
jne 0x4bcb40
pop esi
mov eax, 9
pop ebx
add esp, 8
ret 4
mov eax, dword [ebx + 0x10]
test eax, eax
push ebp
lea ebp, [ebx + 0x10]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
je 0x4bcb62
mov eax, dword [eax]
shr eax, 8
cmp eax, 0x4000
jae 0x4bcc76
push 0
push 0x4001
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
call fcn.0049d1f0
mov esi, dword [ebp]
mov eax, dword [esp + 0x14]
cmp esi, eax
je 0x4bcc21
test esi, esi
je 0x4bcbe8
mov ecx, dword [esi]
and ecx, 0xff
cmp ecx, 0x80
jae 0x4bcbe1
push esi
call edi
and eax, 0xff
cmp eax, 0x7f
jne 0x4bcbcd
mov edx, dword [esi]
and edx, 0xff
cmp edx, 0x80
jae 0x4bcbc8
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x4bcbcd
mov eax, 0xff
test eax, eax
jne 0x4bcbdd
mov eax, dword [ebp]
push eax
call fcn.00499410
add esp, 4
mov eax, dword [esp + 0x14]
mov dword [ebp], 0
test eax, eax
mov dword [ebp], eax
je 0x4bcc76
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
jae 0x4bcc16
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x4bcc1d
mov ecx, ebp
call fcn.0049d350
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4bcc76
mov edx, dword [eax]
and edx, 0xff
cmp edx, 0x80
mov esi, eax
jae 0x4bcc76
push eax
call edi
and eax, 0xff
cmp eax, 0x7f
jne 0x4bcc65
mov eax, dword [esi]
and eax, 0xff
cmp eax, 0x80
jae 0x4bcc60
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x4bcc65
mov eax, 0xff
test eax, eax
jne 0x4bcc76
mov ecx, dword [esp + 0x14]
push ecx
call fcn.00499410
add esp, 4
mov edx, dword [esp + 0x1c]
test edx, edx
mov dword [esp + 0x10], 0
je 0x4bcc9d
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x18]
call fcn.0049d9d0
lea ecx, [esp + 0x10]
call fcn.0049d350
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4bccbf
lea esi, [eax + 4]
or ecx, 0xffffffff
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
jmp 0x4bccc3
xor esi, esi
xor ecx, ecx
xor eax, eax
test ecx, ecx
jbe 0x4bcd2d
lea esp, [esp]
mov dl, byte [eax + esi]
test dl, dl
je 0x4bcd2d
cmp dl, 0x80
jb 0x4bcd18
cmp dl, 0xe0
jae 0x4bccf4
mov dl, byte [eax + esi + 1]
and dl, 0xc0
cmp dl, 0x80
jne 0x4bcd2d
mov edx, 2
jmp 0x4bcd27
cmp dl, 0xf0
jae 0x4bcd18
mov dl, byte [eax + esi + 1]
and dl, 0xc0
cmp dl, 0x80
jne 0x4bcd2d
mov dl, byte [eax + esi + 2]
and dl, 0xc0
cmp dl, 0x80
jne 0x4bcd2d
mov edx, 3
jmp 0x4bcd27
cmp byte [eax + esi], 0x5b
mov edx, 1
jne 0x4bcd27
mov byte [eax + esi], 0x28
add eax, edx
cmp eax, ecx
jb 0x4bccd0
lea ecx, [esp + 0x10]
call fcn.0049d350
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4bcd51
lea edx, [eax + 4]
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
jmp 0x4bcd55
xor edx, edx
xor esi, esi
xor eax, eax
test esi, esi
jbe 0x4bcdbd
nop
lea esp, [esp]
mov cl, byte [eax + edx]
test cl, cl
je 0x4bcdbd
cmp cl, 0x80
jb 0x4bcda8
cmp cl, 0xe0
jae 0x4bcd84
mov cl, byte [eax + edx + 1]
and cl, 0xc0
cmp cl, 0x80
jne 0x4bcdbd
mov ecx, 2
jmp 0x4bcdb7
cmp cl, 0xf0
jae 0x4bcda8
mov cl, byte [eax + edx + 1]
and cl, 0xc0
cmp cl, 0x80
jne 0x4bcdbd
mov cl, byte [eax + edx + 2]
and cl, 0xc0
cmp cl, 0x80
jne 0x4bcdbd
mov ecx, 3
jmp 0x4bcdb7
cmp byte [eax + edx], 0x5d
mov ecx, 1
jne 0x4bcdb7
mov byte [eax + edx], 0x29
add eax, ecx
cmp eax, esi
jb 0x4bcd60
mov eax, dword [ebx + 4]
test eax, eax
je 0x4bcdc9
lea esi, [eax + 4]
jmp 0x4bcdcb
xor esi, esi
mov ecx, ebp
call fcn.0049d350
mov eax, dword [ebp]
test eax, eax
pop edi
pop ebp
je 0x4bcde0
lea ecx, [eax + 4]
jmp 0x4bcde2
xor ecx, ecx
mov eax, dword [esp + 8]
test eax, eax
je 0x4bcdef
add eax, 4
jmp 0x4bcdf1
xor eax, eax
push esi
push 0x4000
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionA]
test eax, eax
mov eax, dword [esp + 8]
jne 0x4bce6d
test eax, eax
je 0x4bce60
mov edx, dword [eax]
and edx, 0xff
cmp edx, 0x80
mov esi, eax
jae 0x4bce60
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x7f
jne 0x4bce4f
mov eax, dword [esi]
and eax, 0xff
cmp eax, 0x80
jae 0x4bce4a
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x4bce4f
mov eax, 0xff
test eax, eax
jne 0x4bce60
mov ecx, dword [esp + 8]
push ecx
call fcn.00499410
add esp, 4
pop esi
mov eax, 9
pop ebx
add esp, 8
ret 4
test eax, eax
je 0x4bcec6
mov edx, dword [eax]
and edx, 0xff
cmp edx, 0x80
mov esi, eax
jae 0x4bcec6
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x7f
jne 0x4bceb5
mov eax, dword [esi]
and eax, 0xff
cmp eax, 0x80
jae 0x4bceb0
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x4bceb5
mov eax, 0xff
test eax, eax
jne 0x4bcec6
mov ecx, dword [esp + 8]
push ecx
call fcn.00499410
add esp, 4
pop esi
xor eax, eax
pop ebx
add esp, 8
ret 4