Function at 0x4188e5
Capabilities:
Identify system language via api

Disassembly:
mov eax, 0x431f9e
call fcn.00430710
sub esp, 0xc
movsx eax, word [0x43ac88]
push ebx
push esi
push edi
push eax
push 0x1445ffff
call fcn.0040af32
mov word [0x43ac82], ax
push 0x3d25ffff
movsx eax, byte [0x43ac7e]
push eax
call fcn.0040b0f0
push dword [0x43aca0]
mov dword [0x43acb4], eax
push 0xfa2bffff
call fcn.0040b037
add word [0x43ac88], ax
add esp, 0x18
mov edi, 0x43b158
push edi
push 0x40
mov dword [ebp - 0x14], edi
call fcn.0040f588
pop ecx
call eax
movsx eax, word [0x43ac82]
push dword [0x43acb0]
and dword [ebp - 4], 0
push eax
call fcn.0040b0f0
pop ecx
mov dword [0x43acac], eax
pop ecx
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push dword [0x43ac9c]
mov word [0x43ac8a], ax
movsx eax, word [0x43ac8c]
push eax
call fcn.0040af32
cmp byte [ebp + 8], 0
pop ecx
pop ecx
mov ebx, 0x43b148
mov ecx, eax
mov eax, 0x43b130
mov dword [0x43aca0], ecx
jne 0x4189aa
mov eax, ebx
mov esi, dword [eax + 4]
mov al, byte [0x43ac8c]
imul cl
add byte [0x43ac7b], al
movsx eax, word [0x43ac82]
imul eax, eax, 0x9153ffff
mov dword [0x43acb4], eax
movsx ax, byte [0x43ac80]
neg eax
mov word [0x43ac8e], ax
cmp byte [ebp + 8], 0
mov eax, 0x43b130
jne 0x4189e9
mov eax, ebx
cmp esi, dword [eax + 8]
je 0x418ad6
mov al, byte [0x43ac7d]
push eax
call dword [sym.imp.USER32.dll_IsCharAlphaA]
mov byte [0x43ac79], al
mov eax, dword [esi]
cmp byte [eax + 0x54], 0
je 0x418a7b
movsx eax, byte [0x43ac7b]
imul eax, eax, 0xf25fffff
push 0x2ad7ffff
mov dword [0x43acb0], eax
push dword [0x43aca8]
call fcn.0040b087
add dword [0x43aca8], eax
push 0xbe5fffff
push 0x3edfffff
call fcn.0040b087
add esp, 0x10
mov dword [0x43aca8], eax
mov ecx, dword [esi]
push 0x12
call fcn.00410db1
cmp byte [ebp + 8], 0
mov ecx, 0x43b130
jne 0x418a60
mov ecx, ebx
push esi
call fcn.00418c64
cmp byte [ebp + 8], 0
mov eax, 0x43b130
jne 0x418a73
mov eax, ebx
mov esi, dword [eax + 4]
jmp 0x4189dc
push dword [0x43aca8]
push 0x9199ffff
call fcn.0040b0f0
add byte [0x43ac7c], al
push 0x9989ffff
movsx eax, byte [0x43ac7b]
push eax
call fcn.0040b002
mov dword [0x43acb0], eax
add esi, 4
movsx eax, byte [0x43ac7e]
push eax
push 0x6c1ffff
call fcn.0040af32
add dword [0x43aca4], eax
mov al, byte [0x43ac92]
add esp, 0x18
sub byte [0x43ac7b], al
jmp 0x4189dc
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
push dword [0x43aca8]
movzx eax, ax
push 0x7c9ffff
mov dword [0x43ac9c], eax
call fcn.0040b087
pop ecx
mov word [0x43ac8e], ax
pop ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
add dword [0x43acbc], eax
push 0x74
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
mov byte [ebp - 4], 1
je 0x418b27
push dword [ebp + 8]
call fcn.004118fb
jmp 0x418b29
xor eax, eax
and byte [ebp - 4], 0
mov dword [ebp - 0x10], eax
call dword [sym.imp.USER32.dll_GetActiveWindow]
add word [0x43ac8a], ax
cmp byte [ebp + 8], 0
je 0x418bad
push 0x21e1ffff
push 0xea19ffff
call fcn.0040af32
push 0x5c15ffff
push 0xa203ffff
mov byte [0x43ac7b], al
call fcn.0040afcb
push 0x129bffff
mov word [0x43ac90], ax
push dword [0x43acac]
call fcn.0040aeeb
add dword [0x43aca4], eax
add esp, 0x18
lea eax, [ebp - 0x10]
mov ecx, 0x43b130
push eax
call fcn.00418f55
push dword [0x43acb0]
push 0xb10dffff
call fcn.0040b002
pop ecx
mov word [0x43ac8e], ax
pop ecx
jmp 0x418c05
movsx eax, word [0x43ac8e]
push 0xdc9ffff
push eax
call fcn.0040afcb
push dword [0x43aca4]
mov byte [0x43ac7d], al
push 0xe3b1ffff
call fcn.0040aeeb
add esp, 0x10
mov word [0x43ac92], ax
lea eax, [ebp - 0x10]
mov ecx, 0x43b148
push eax
call fcn.00418f55
movsx eax, word [0x43ac88]
push 0x13b3ffff
push eax
call fcn.0040b0ac
add byte [0x43ac7a], al
pop ecx
pop ecx
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov cx, word [0x43ac8a]
mov esi, dword [ebp - 0x10]
dec cx
push edi
add ax, cx
mov word [0x43ac86], ax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret