Function at 0x46520f
Capabilities:
Read .ini file

Disassembly:
push 0x14
mov eax, 0x4d8988
call fcn.004becb0
lea edi, [esi + 0x20]
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
push edi
mov dword [ebp - 0x1c], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebp - 4], ebx
push dword [ebp + 0x10]
lea ecx, [ebp - 0x18]
call fcn.004024df
mov byte [ebp - 4], 1
push dword [ebp + 0xc]
lea ecx, [ebp - 0x14]
call fcn.004024df
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 2
call fcn.004025dd
call fcn.00499991
push eax
lea ecx, [ebp - 0x10]
call fcn.004727f7
mov byte [ebp - 4], 3
cmp byte [ebp + 0x14], bl
jne 0x4652bb
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x14]
lea ecx, [esi + 4]
call fcn.004a7c0b
test eax, eax
je 0x4652bb
mov eax, dword [ebp - 0x10]
cmp dword [eax - 0xc], ebx
je 0x4652bb
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x10]
push eax
call fcn.0040228a
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.004027b0
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.004027b0
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.004027b0
push edi
jmp 0x46549d
push 0x2000
push ebx
mov edi, 0x587cd0
push edi
call fcn.004be850
add esp, 0xc
push dword [esi + 0x38]
push 0x1000
push edi
push 0x523938
push dword [ebp + 0xc]
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x10]
call fcn.004025dd
cmp word [0x587cd0], 0x22
jne 0x465304
push 0x20
pop eax
mov word [0x587cd0], ax
cmp word [0x587cd0], bx
je 0x465362
push edi
lea ecx, [ebp - 0x10]
call fcn.004026bd
push 0x54a164
push 0x54d6c0
lea eax, [ebp - 0x10]
push eax
call fcn.00415abb
push 0x54d6c8
push 0x54d6cc
lea eax, [ebp - 0x10]
push eax
call fcn.00415abb
push 0x54d6d4
push 0x54d6d8
lea eax, [ebp - 0x10]
push eax
call fcn.00415abb
push 0x526790
push 0x54d6e0
lea eax, [ebp - 0x10]
push eax
call fcn.00415abb
lea ebx, [ebp - 0x10]
call fcn.0040f5c6
mov ebx, eax
call fcn.0040f613
push dword [ebp + 0xc]
lea ecx, [ebp + 0xc]
call fcn.004024df
lea edi, [ebp + 0xc]
mov byte [ebp - 4], 4
call fcn.00415c5a
push str.string111
mov ecx, edi
call fcn.004107fc
test eax, eax
je 0x4653b8
push str.string134
mov ecx, edi
call fcn.004107fc
test eax, eax
je 0x4653b8
push str.string129
mov ecx, edi
call fcn.004107fc
test eax, eax
jne 0x4653e5
cmp dword [0x585970], 0
jne 0x4653dd
mov eax, dword [0x585980]
cmp dword [eax - 0xc], 0
je 0x4653e5
push eax
push str._877__340_9240
lea eax, [ebp - 0x10]
push eax
call fcn.00415abb
jmp 0x4653e5
lea ecx, [ebp - 0x10]
call fcn.004025dd
push str.string72
lea ecx, [ebp + 0xc]
call fcn.004107fc
test eax, eax
je 0x465407
push str.string66
lea ecx, [ebp + 0xc]
call fcn.004107fc
test eax, eax
jne 0x46544a
call fcn.00499991
push eax
lea ecx, [ebp + 0x10]
call fcn.004727f7
mov byte [ebp - 4], 5
call fcn.00473c2b
push eax
lea eax, [ebp + 0x10]
push 0x526688
push eax
call fcn.00402967
mov edi, dword [ebp + 0x10]
add esp, 0xc
push edi
push 0x54d76c
lea eax, [ebp - 0x10]
push eax
call fcn.00415abb
lea ecx, [edi - 0x10]
call fcn.004027b0
mov byte [ebp - 4], 3
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.004027b0
cmp byte [ebp + 0x14], 0
jne 0x46546d
push dword [ebp - 0x10]
lea ecx, [esi + 4]
push dword [ebp - 0x14]
call fcn.0040fbfa
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x10]
push eax
call fcn.0040228a
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.004027b0
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.004027b0
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.004027b0
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp + 8]
call fcn.004bed88
ret 0x10