Function at 0x401bd0
Capabilities:
Read .ini file

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x47887b
push eax
mov dword fs:[0], esp
sub esp, 0x90c
push ebp
mov ebp, dword [esp + 0x920]
test ebp, ebp
je 0x401ead
mov al, byte [0x494b70]
push ebx
push esi
push edi
mov byte [esp + 0x14], al
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x15]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x494f68
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x120]
push 0x400
push ecx
push str.English
push 0x48e194
push str.System
call ebx
lea edx, [esp + 0x11c]
lea eax, [esp + 0x14]
push edx
push 0x494e60
push str._sLanguage_s.ini
push eax
call fcn.004585a3
mov ecx, dword [0x492aec]
add esp, 0x10
mov dword [esp + 0x10], ecx
lea edx, [esp + 0x10]
mov ecx, ebp
push edx
mov dword [esp + 0x928], 0
call fcn.0046c268
push 0x48e174
push 0x48e170
lea ecx, [esp + 0x18]
call fcn.004685e6
push 0x48e16c
push 0x48e168
lea ecx, [esp + 0x18]
call fcn.004685e6
mov al, byte [0x494b70]
mov ecx, 0xff
mov byte [esp + 0x51c], al
xor eax, eax
lea edi, [esp + 0x51d]
lea edx, [esp + 0x51c]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x14]
stosb byte es:[edi], al
mov eax, dword [esp + 0x10]
push ecx
push 0x400
push edx
push eax
push eax
push str.String
call ebx
mov al, byte [esp + 0x51c]
test al, al
je 0x401d67
mov esi, dword [esp + 0x10]
lea eax, [esp + 0x51c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401d1b
test cl, cl
je 0x401d17
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401d1b
add eax, 2
add esi, 2
test cl, cl
jne 0x401cf7
xor eax, eax
jmp 0x401d20
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x401d67
lea eax, [esp + 0x51c]
lea ecx, [esp + 0x10]
push eax
call fcn.0046ec3b
push 0x48e170
push 0x48e174
lea ecx, [esp + 0x18]
call fcn.004685e6
push 0x48e168
push 0x48e16c
lea ecx, [esp + 0x18]
call fcn.004685e6
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, ebp
call fcn.0046e118
mov edx, dword [ebp + 0x1c]
push 5
push edx
call dword [sym.imp.USER32.dll_GetWindow]
push eax
call fcn.0046b873
mov ebp, eax
test ebp, ebp
je 0x401e96
lea eax, [esp + 0x10]
mov ecx, ebp
push eax
call fcn.0046c268
push 0x48e174
push 0x48e170
lea ecx, [esp + 0x18]
call fcn.004685e6
push 0x48e16c
push 0x48e168
lea ecx, [esp + 0x18]
call fcn.004685e6
mov cl, byte [0x494b70]
xor eax, eax
mov byte [esp + 0x11c], cl
mov ecx, 0xff
lea edi, [esp + 0x11d]
lea edx, [esp + 0x14]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push edx
lea eax, [esp + 0x120]
push 0x400
push eax
mov eax, dword [esp + 0x1c]
push eax
push eax
push str.String
call ebx
mov al, byte [esp + 0x11c]
test al, al
je 0x401e7a
mov esi, dword [esp + 0x10]
lea eax, [esp + 0x11c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401e2e
test cl, cl
je 0x401e2a
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401e2e
add eax, 2
add esi, 2
test cl, cl
jne 0x401e0a
xor eax, eax
jmp 0x401e33
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x401e7a
lea eax, [esp + 0x11c]
lea ecx, [esp + 0x10]
push eax
call fcn.0046ec3b
push 0x48e170
push 0x48e174
lea ecx, [esp + 0x18]
call fcn.004685e6
push 0x48e168
push 0x48e16c
lea ecx, [esp + 0x18]
call fcn.004685e6
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, ebp
call fcn.0046e118
mov edx, dword [ebp + 0x1c]
push 2
push edx
call dword [sym.imp.USER32.dll_GetWindow]
push eax
call fcn.0046b873
mov ebp, eax
test ebp, ebp
jne 0x401d83
lea ecx, [esp + 0x10]
mov dword [esp + 0x924], 0xffffffff
call fcn.0046eab2
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x910]
pop ebp
mov dword fs:[0], ecx
add esp, 0x918
ret