Function at 0x40ea26
Capabilities:
Identify system language via api

Disassembly:
mov eax, 0x43192e
call fcn.00430710
sub esp, 0x20
push ebx
push esi
push edi
xor ebx, ebx
xor esi, esi
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
push ebx
push ebx
push 0x35
call fcn.0040f588
pop ecx
call eax
mov edi, eax
cmp edi, ebx
je 0x40ebb9
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
add dword [0x43acbc], eax
lea eax, [edi + 1]
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov esi, eax
call dword [sym.imp.USER32.dll_GetActiveWindow]
add word [0x43ac8a], ax
push esi
push edi
push 0x35
call fcn.0040f588
pop ecx
call eax
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
mov al, byte [ebp + 0xf]
add esp, 0x18
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
push ebx
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push dword [0x43acb0]
mov dword [ebp - 4], ebx
push 0xb10dffff
call fcn.0040b002
push esi
mov word [0x43ac8e], ax
call fcn.00430672
movsx eax, word [0x43ac8e]
push 0xdc9ffff
push eax
call fcn.0040afcb
push dword [0x43aca4]
mov byte [0x43ac7d], al
push 0xe3b1ffff
call fcn.0040aeeb
push dword [ebp + 0xc]
mov word [0x43ac92], ax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0040efdb
add esp, 0x28
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov byte [ebp - 4], 1
push dword [ecx]
mov ecx, dword [ebp + 8]
push ebx
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 1
lea ecx, [ebp - 0x2c]
pop esi
mov byte [ebp - 4], bl
push esi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
movsx eax, word [0x43ac88]
push 0x13b3ffff
push eax
call fcn.0040b0ac
add byte [0x43ac7a], al
or dword [ebp - 4], 0xffffffff
pop ecx
pop ecx
push esi
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov cx, word [0x43ac8a]
pop edi
dec cx
add ax, cx
mov ecx, dword [ebp - 0xc]
mov word [0x43ac86], ax
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret