Function at 0x40b147
Capabilities:
Identify system language via api

Disassembly:
sub esp, 0x10
movsx eax, word [0x43ac88]
push ebp
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
mov edi, dword [esp + 0x38]
add word [0x43ac88], ax
push edi
call sub.MSVCRT.dll_strlen
push dword [0x43acb0]
mov esi, eax
movsx eax, word [0x43ac82]
push eax
call fcn.0040b0f0
mov ebp, dword [sym.imp.USER32.dll_GetForegroundWindow]
add esp, 0x24
mov dword [0x43acac], eax
call ebp
push dword [0x43ac9c]
mov word [0x43ac8a], ax
movsx eax, word [0x43ac8c]
push eax
call fcn.0040af32
pop ecx
and dword [esp + 0x10], 0
pop ecx
mov ecx, eax
mov al, byte [0x43ac8c]
imul cl
add byte [0x43ac7b], al
mov dword [0x43aca0], ecx
movsx eax, word [0x43ac82]
imul eax, eax, 0x9153ffff
mov dword [0x43acb4], eax
movsx ax, byte [0x43ac80]
neg eax
test esi, esi
mov word [0x43ac8e], ax
jle 0x40b3f2
add esi, 3
add edi, 2
shr esi, 2
push ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], esi
mov al, byte [0x43ac7d]
push eax
call dword [sym.imp.USER32.dll_IsCharAlphaA]
mov edi, dword [esp + 0x14]
mov byte [0x43ac79], al
mov dword [esp + 0x18], 2
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
xor ebx, ebx
mov dword [0x43aca8], eax
xor esi, esi
movsx eax, byte [0x43ac7b]
push eax
push 0xe63dffff
call fcn.0040afcb
add byte [0x43ac7c], al
movsx eax, byte [0x43ac78]
push eax
push 0x9787ffff
call fcn.0040b002
mov dword [0x43aca0], eax
mov al, byte [edi + esi]
push 0xdd1bffff
push 0x583ffff
shl ebx, 4
mov byte [esp + 0x3c], al
call fcn.0040b002
push dword [0x43acac]
add word [0x43ac94], ax
push 0x9ffffff
call fcn.0040b037
add esp, 0x20
mov word [0x43ac8c], ax
call ebp
mov byte [0x43ac79], al
mov al, byte [esp + 0x24]
cmp al, 0x30
jl 0x40b317
cmp al, 0x39
jg 0x40b317
movsx eax, al
lea ebx, [ebx + eax - 0x30]
jmp 0x40b326
cmp al, 0x61
jl 0x40b326
cmp al, 0x66
jg 0x40b326
movsx eax, al
lea ebx, [ebx + eax - 0x57]
movsx eax, byte [0x43ac7a]
push 0x8b97ffff
push eax
call fcn.0040b002
add word [0x43ac8c], ax
push 0x7583ffff
push 0xefe9ffff
call fcn.0040af94
add dword [0x43ac9c], eax
mov al, byte [0x43acbc]
or al, byte [0x43ac7d]
add esp, 0x10
inc esi
cmp esi, 2
mov byte [0x43ac7c], al
jl 0x40b293
test ebx, ebx
jle 0x40b3d6
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
mov eax, dword [esp + 0x20]
inc dword [esp + 0x20]
mov byte [eax + 0x43acc0], bl
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
dec edi
dec edi
dec dword [esp + 0x18]
jne 0x40b250
add dword [esp + 0x14], 4
dec dword [esp + 0x1c]
jne 0x40b233
pop ebx
mov eax, dword [esp + 0xc]
and byte [eax + 0x43acc0], 0
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
pop edi
pop esi
mov eax, 0x43acc0
pop ebp
add esp, 0x10
ret 4