Function at 0x421c90
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x58a382
mov eax, dword fs:[0]
push eax
sub esp, 0x410
mov eax, dword [0x5f01b4]
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
lea eax, [ebp - 0x20c]
mov edi, ecx
push eax
mov dword [ebp - 0x41c], edi
mov esi, edx
call fcn.00402170
mov dword [ebp - 4], 0
test esi, esi
js 0x421f81
cmp esi, dword [edi + 0x5b8]
jge 0x421f81
imul esi, esi, 0x1fc
add esi, dword [edi + 0x5b4]
lea ecx, [ebp - 0x408]
push ecx
mov eax, esi
lea edi, [ebp - 0x20c]
call fcn.004028c0
lea ecx, [ebp - 0x408]
call fcn.004026e0
call fcn.0046b8a8
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x421d34
push 0x80004005
call fcn.004020e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x414], eax
mov byte [ebp - 4], 1
call fcn.0046b8a8
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x421d64
push 0x80004005
call fcn.004020e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x40c], eax
mov byte [ebp - 4], 2
call fcn.0046b8a8
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x421d94
push 0x80004005
call fcn.004020e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0x418], ebx
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x14c]
push ecx
lea edx, [ebp - 0x414]
push 0x5bdb78
push edx
call fcn.004056c0
add esp, 0xc
lea esi, [ebp - 0x410]
call fcn.00435540
push eax
lea ecx, [ebp - 0x40c]
mov byte [ebp - 4], 4
call fcn.00402070
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x410]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x421e06
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.BrTrouble.ini
lea ecx, [ebp - 0x40c]
push ecx
lea edx, [ebp - 0x410]
push edx
call fcn.00404ea0
add esp, 0xc
push eax
lea ecx, [ebp - 0x40c]
mov byte [ebp - 4], 5
call fcn.00402070
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x410]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x421e57
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
mov edi, 0x2711
sub eax, edi
or eax, ecx
jge 0x421e7f
push edi
lea ecx, [ebp - 0x418]
call fcn.00401e80
mov ebx, dword [ebp - 0x418]
mov esi, dword [ebp - 0x40c]
mov ecx, dword [ebp - 0x414]
push esi
push 0x2710
push ebx
push 0x5bda14
push ecx
push str.DisplayOff
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp dword [ebx - 8], edi
jl 0x421f77
mov dword [ebx - 0xc], edi
mov byte [ebx + 0x2711], 0
test eax, eax
jne 0x421eea
mov edi, dword [ebp - 0x41c]
call fcn.00421f90
cmp eax, 1
jne 0x421eea
sub esp, 0x1fc
mov edx, esp
mov dword [ebp - 0x41c], esp
lea eax, [ebp - 0x20c]
push eax
push edx
call fcn.00402fc0
call fcn.00454430
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x421f0a
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 0x421f2a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x414]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x421f50
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x20c]
call fcn.004026e0
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.0055db96
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.004020e0
call fcn.0046c980
int3