Function at 0x4bc790
Capabilities:
Read .ini file

Disassembly:
sub esp, 0xc
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x10]
test eax, eax
lea ebp, [esi + 0x10]
mov dword [esp + 0x10], esi
je 0x4bc7d6
mov ecx, dword [eax]
shr ecx, 8
test ecx, ecx
je 0x4bc7d6
test eax, eax
je 0x4bc7b7
add eax, 4
jmp 0x4bc7b9
xor eax, eax
cmp byte [eax], 0
je 0x4bc7d6
mov ecx, ebp
call fcn.0049d350
mov eax, dword [ebp]
test eax, eax
je 0x4bc7d1
add eax, 4
jmp 0x4bc7d3
xor eax, eax
mov byte [eax], 0
mov ecx, esi
call fcn.004bb560
mov al, byte [esi + 0xc]
test al, al
je 0x4bcb11
mov eax, dword [ebp]
test eax, eax
push edi
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
je 0x4bc806
mov eax, dword [eax]
shr eax, 8
cmp eax, 0x1000
jae 0x4bc91a
push 0
push 0x1001
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], 0
call fcn.0049d1f0
mov esi, dword [ebp]
mov eax, dword [esp + 0x10]
cmp esi, eax
je 0x4bc8c5
test esi, esi
je 0x4bc88c
mov ecx, dword [esi]
and ecx, 0xff
cmp ecx, 0x80
jae 0x4bc885
push esi
call edi
and eax, 0xff
cmp eax, 0x7f
jne 0x4bc871
mov edx, dword [esi]
and edx, 0xff
cmp edx, 0x80
jae 0x4bc86c
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x4bc871
mov eax, 0xff
test eax, eax
jne 0x4bc881
mov eax, dword [ebp]
push eax
call fcn.00499410
add esp, 4
mov eax, dword [esp + 0x10]
mov dword [ebp], 0
test eax, eax
mov dword [ebp], eax
je 0x4bc91a
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
jae 0x4bc8ba
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x4bc8c1
mov ecx, ebp
call fcn.0049d350
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4bc91a
mov edx, dword [eax]
and edx, 0xff
cmp edx, 0x80
mov esi, eax
jae 0x4bc91a
push eax
call edi
and eax, 0xff
cmp eax, 0x7f
jne 0x4bc909
mov eax, dword [esi]
and eax, 0xff
cmp eax, 0x80
jae 0x4bc904
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x4bc909
mov eax, 0xff
test eax, eax
jne 0x4bc91a
mov ecx, dword [esp + 0x10]
push ecx
call fcn.00499410
add esp, 4
mov edx, dword [esp + 0x1c]
test edx, edx
mov dword [esp + 0xc], 0
je 0x4bc941
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 + 0x14]
call fcn.0049d9d0
lea ecx, [esp + 0xc]
call fcn.0049d350
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4bc963
lea esi, [eax + 4]
or ecx, 0xffffffff
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
jmp 0x4bc967
xor esi, esi
xor ecx, ecx
xor eax, eax
test ecx, ecx
jbe 0x4bc9cd
lea ecx, [ecx]
mov dl, byte [eax + esi]
test dl, dl
je 0x4bc9cd
cmp dl, 0x80
jb 0x4bc9b8
cmp dl, 0xe0
jae 0x4bc994
mov dl, byte [eax + esi + 1]
and dl, 0xc0
cmp dl, 0x80
jne 0x4bc9cd
mov edx, 2
jmp 0x4bc9c7
cmp dl, 0xf0
jae 0x4bc9b8
mov dl, byte [eax + esi + 1]
and dl, 0xc0
cmp dl, 0x80
jne 0x4bc9cd
mov dl, byte [eax + esi + 2]
and dl, 0xc0
cmp dl, 0x80
jne 0x4bc9cd
mov edx, 3
jmp 0x4bc9c7
cmp byte [eax + esi], 0x5b
mov edx, 1
jne 0x4bc9c7
mov byte [eax + esi], 0x28
add eax, edx
cmp eax, ecx
jb 0x4bc970
lea ecx, [esp + 0xc]
call fcn.0049d350
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4bc9f1
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 0x4bc9f5
xor edx, edx
xor esi, esi
xor eax, eax
test esi, esi
pop edi
jbe 0x4bca5d
lea esp, [esp]
mov cl, byte [eax + edx]
test cl, cl
je 0x4bca5d
cmp cl, 0x80
jb 0x4bca48
cmp cl, 0xe0
jae 0x4bca24
mov cl, byte [eax + edx + 1]
and cl, 0xc0
cmp cl, 0x80
jne 0x4bca5d
mov ecx, 2
jmp 0x4bca57
cmp cl, 0xf0
jae 0x4bca48
mov cl, byte [eax + edx + 1]
and cl, 0xc0
cmp cl, 0x80
jne 0x4bca5d
mov cl, byte [eax + edx + 2]
and cl, 0xc0
cmp cl, 0x80
jne 0x4bca5d
mov ecx, 3
jmp 0x4bca57
cmp byte [eax + edx], 0x5d
mov ecx, 1
jne 0x4bca57
mov byte [eax + edx], 0x29
add eax, ecx
cmp eax, esi
jb 0x4bca00
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
test eax, eax
je 0x4bca6d
lea esi, [eax + 4]
jmp 0x4bca6f
xor esi, esi
mov ecx, ebp
call fcn.0049d350
mov eax, dword [ebp]
test eax, eax
je 0x4bca82
lea ecx, [eax + 4]
jmp 0x4bca84
xor ecx, ecx
mov eax, dword [esp + 8]
test eax, eax
je 0x4bca91
add eax, 4
jmp 0x4bca93
xor eax, eax
push esi
push 0x1000
push ecx
mov ecx, dword [esp + 0x28]
push 0x6b6e10
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push ebp
call fcn.004bc610
mov eax, dword [esp + 0xc]
add esp, 4
test eax, eax
je 0x4bcb11
mov edx, dword [eax]
and edx, 0xff
cmp edx, 0x80
mov esi, eax
jae 0x4bcb11
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x7f
jne 0x4bcb00
mov eax, dword [esi]
and eax, 0xff
cmp eax, 0x80
jae 0x4bcafb
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x4bcb00
mov eax, 0xff
test eax, eax
jne 0x4bcb11
mov ecx, dword [esp + 8]
push ecx
call fcn.00499410
add esp, 4
pop esi
xor eax, eax
pop ebp
add esp, 0xc
ret 8