Function at 0x458494
Capabilities:
Read .ini file

Disassembly:
push 0x18
mov eax, 0x4ce840
call fcn.004ae920
mov ebx, dword [ebp + 8]
and dword [ebp - 0x20], 0
lea esi, [ebx + 0x20]
push esi
mov dword [ebp - 0x20], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push dword [ebp + 0x14]
and dword [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.0040253e
mov byte [ebp - 4], 1
push dword [ebp + 0x10]
lea ecx, [ebp - 0x18]
call fcn.0040253e
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call fcn.0040266c
call fcn.0048b151
push eax
lea ecx, [ebp - 0x10]
call fcn.00402821
mov byte [ebp - 4], 3
push dword [ebp + 0x10]
lea ecx, [ebp - 0x14]
call fcn.0040253e
mov edi, 0x534ca4
push edi
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 4
call fcn.0040c68e
test eax, eax
je 0x458533
push str.SAFEPC_A361
lea ecx, [ebp - 0x14]
call fcn.0040c68e
test eax, eax
je 0x458533
push str.SAFEPC_A366
lea ecx, [ebp - 0x14]
call fcn.0040c68e
test eax, eax
jne 0x458537
mov byte [ebp + 0x18], 1
cmp byte [ebp + 0x18], 0
jne 0x458597
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x18]
lea ecx, [ebx + 4]
call fcn.004994a5
test eax, eax
je 0x458597
mov eax, dword [ebp - 0x10]
cmp dword [eax - 0xc], 0
je 0x458597
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x10]
push eax
call fcn.00402582
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00402883
push esi
jmp 0x45878e
push 0x2000
push 0
mov esi, 0x56b788
push esi
call fcn.004ae4c0
add esp, 0xc
push dword [ebx + 0x38]
push 0x1000
push esi
push 0x5229b8
push dword [ebp + 0x10]
push dword [ebp + 0x14]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x10]
call fcn.0040266c
cmp word [0x56b788], 0x22
jne 0x4585e1
push 0x20
pop eax
mov word [0x56b788], ax
cmp word [0x56b788], 0
je 0x458640
push esi
lea ecx, [ebp - 0x10]
call fcn.0040274c
push 0x531e04
push 0x534cec
lea eax, [ebp - 0x10]
push eax
call fcn.00411974
push 0x534cf4
push 0x534cf8
lea eax, [ebp - 0x10]
push eax
call fcn.00411974
push 0x534d00
push 0x534d04
lea eax, [ebp - 0x10]
push eax
call fcn.00411974
push 0x5257bc
push 0x534d0c
lea eax, [ebp - 0x10]
push eax
call fcn.00411974
lea ebx, [ebp - 0x10]
call fcn.0040c520
mov ebx, eax
call fcn.0040c56d
push edi
lea ecx, [ebp - 0x14]
call fcn.0040c68e
test eax, eax
je 0x45867e
push str.SAFEPC_A361
lea ecx, [ebp - 0x14]
call fcn.0040c68e
test eax, eax
je 0x45867e
push str.SAFEPC_A366
lea ecx, [ebp - 0x14]
call fcn.0040c68e
test eax, eax
jne 0x4586d2
mov eax, dword [0x56962c]
xor ebx, ebx
cmp eax, ebx
jne 0x458690
mov eax, dword [0x56963c]
jmp 0x4586b2
cmp eax, 4
jne 0x45869c
mov eax, dword [0x569644]
jmp 0x4586b2
cmp eax, 5
jne 0x4586a8
mov eax, dword [0x569648]
jmp 0x4586b2
cmp eax, 7
jne 0x4586c8
mov eax, dword [0x56964c]
cmp dword [eax - 0xc], ebx
je 0x4586d4
push eax
push str._844__944_0918
lea eax, [ebp - 0x10]
push eax
call fcn.00411974
jmp 0x4586d4
lea ecx, [ebp - 0x10]
call fcn.0040266c
jmp 0x4586d4
xor ebx, ebx
push str.SAFEPC_A560
lea ecx, [ebp - 0x14]
call fcn.0040c68e
test eax, eax
je 0x4586f6
push str.SAFEPC_A558
lea ecx, [ebp - 0x14]
call fcn.0040c68e
test eax, eax
jne 0x45873d
call fcn.0048b151
push eax
lea ecx, [ebp + 0x10]
call fcn.00402821
mov byte [ebp - 4], 5
call fcn.00461085
push eax
lea eax, [ebp + 0x10]
push 0x52513c
push eax
call fcn.00402a45
mov esi, dword [ebp + 0x10]
add esp, 0xc
push esi
push 0x534d64
lea eax, [ebp - 0x10]
push eax
call fcn.00411974
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 4
call fcn.00402883
cmp byte [ebp + 0x18], bl
jne 0x458753
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
push dword [ebp - 0x18]
add ecx, 4
call fcn.00411f0c
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x10]
push eax
call fcn.00402582
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00402883
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp + 0xc]
call fcn.004ae9f8
ret 0x14