Function at 0x423650
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x506f58
push eax
mov eax, 0x182c
mov dword fs:[0], esp
call fcn.004bdb50
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0x14]
push edi
push 0x55d4e0
mov eax, dword [esi]
lea ecx, [ebp - 0x10]
push ebx
push ecx
mov dword [ebp + 0x14], eax
call fcn.004e20cc
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
mov eax, dword [eax]
push edx
mov ecx, dword [edi]
push 0
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 0xffffffff
lea ecx, [ebp - 0x10]
sete byte [ebp + 0x17]
call fcn.004e1e27
mov al, byte [ebp + 0x17]
test al, al
je 0x42372b
mov eax, dword [esi]
push 0x55d4fc
lea ecx, [ebp + 0x14]
push ebx
push ecx
mov dword [ebp + 0xc], eax
call fcn.004e20cc
mov edx, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, dword [edi]
push edx
push 0x800
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
lea ecx, [ebp + 0x14]
mov dword [ebp + 0xc], eax
call fcn.004e1e27
mov eax, dword [ebp + 0xc]
mov esi, dword [esi]
mov ebx, dword [ebx]
mov edi, dword [edi]
inc eax
push esi
mov esi, dword [ebp + 8]
push eax
push eax
mov ecx, esi
call fcn.004e226c
push eax
push 0x5705d0
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push 0xffffffffffffffff
mov ecx, esi
mov edi, eax
call fcn.004e22bc
xor ecx, ecx
cmp ecx, edi
sbb eax, eax
neg eax
jmp 0x4238d7
mov ecx, 0x1ff
xor eax, eax
lea edi, [ebp - 0x837]
mov byte [ebp - 0x838], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x55d4e0
lea edx, [ebp + 0x14]
stosb byte es:[edi], al
mov edi, dword [esi]
push ebx
push edx
call fcn.004e20cc
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax]
push edi
push 0
mov ecx, dword [ecx]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edi, eax
lea ecx, [ebp + 0x14]
mov dword [ebp - 0x10], edi
call fcn.004e1e27
mov esi, dword [esi]
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebx]
push esi
mov eax, dword [edx]
lea ecx, [ebp - 0x838]
push edi
push ecx
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStructW]
test eax, eax
je 0x4238d5
test edi, edi
je 0x4238d5
mov edx, dword [ebp - 0x837]
mov eax, dword [ebp - 0x838]
push edx
lea ecx, [ebp + 0x10]
push eax
push ecx
call fcn.00423c80
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov dword [ebp - 4], 0
test eax, eax
mov edi, eax
je 0x4237e9
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [eax + eax + 2]
mov eax, esi
add eax, 3
and al, 0xfc
call fcn.004bdb50
mov eax, esp
push esi
push edi
push eax
call fcn.004e24a6
push eax
push 2
lea ecx, [ebp - 0x38]
call fcn.00403920
mov ebx, dword [ebp - 0x836]
mov ecx, 0x200
xor eax, eax
lea edi, [ebp - 0x1038]
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x10]
and ebx, 0xff
cmp edi, 3
mov byte [ebp - 4], 1
jbe 0x42383f
xor esi, esi
lea edx, [ebp + esi - 0x1038]
lea eax, [ebp + esi - 0x835]
push edx
push eax
lea ecx, [ebp - 0x38]
call fcn.00404210
add esi, 0x10
lea ecx, [esi + 3]
cmp ecx, edi
jb 0x42381d
lea edi, [ebp - 0x1038]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x1038]
repne scasb al, byte es:[edi]
not ecx
dec ecx
sub edx, ebx
lea edi, [ebp - 0x1837]
mov byte [ebp - 0x1838], al
mov byte [ecx + edx], al
mov ecx, 0x1ff
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x1838]
push 0x800
lea ecx, [ebp - 0x1038]
push eax
push ecx
call fcn.004ae200
add esp, 0xc
lea edx, [ebp - 0x1838]
lea ecx, [ebp - 0x14]
push edx
call fcn.004e1ef0
mov ecx, dword [ebp + 8]
push eax
mov byte [ebp - 4], 2
call fcn.004e1f6e
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 1
call fcn.004e1e27
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0
call fcn.00403b40
lea ecx, [ebp + 0x10]
mov dword [ebp - 4], 0xffffffff
call fcn.004e1e27
mov eax, 1
jmp 0x4238d7
xor eax, eax
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x1844]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret