Function at 0x4076ce
Capabilities:
Identify system language via api

Disassembly:
mov eax, 0x42f5d0
call fcn.0042e9c0
sub esp, 0x24
and dword [ebp - 0x10], 0
push ebx
push esi
push edi
push 0x527ffff
push 0xe167ffff
call fcn.0040a933
mov esi, dword [ebp + 0x10]
pop ecx
pop ecx
mov byte [0x438c19], al
mov ecx, dword [esi + 4]
mov eax, dword [esi + 8]
test ecx, ecx
jne 0x40770b
mov ecx, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
push 0
push ecx
mov ecx, dword [ebp + 0xc]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_first_not_of_char_const___unsigned_int__unsigned_int_const]
mov edi, eax
movsx eax, byte [0x438c1a]
push eax
movsx eax, word [0x438c26]
push eax
call fcn.0040a8f9
inc word [0x438c28]
mov byte [0x438c1f], al
movsx eax, word [0x438c28]
push eax
movsx eax, word [0x438c24]
push eax
call fcn.0040aa4f
add word [0x438c2c], ax
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
add esp, 0x10
test eax, eax
jne 0x407769
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push ecx
mov ecx, dword [ebp + 0xc]
push edi
push eax
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_first_of_char_const___unsigned_int__unsigned_int_const]
mov ebx, eax
mov al, byte [ebp + 0xf]
mov byte [ebp - 0x20], al
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 1
call dword [sym.imp.USER32.dll_GetInputState]
mov ax, word [0x438c38]
mov dword [0x438c48], 0xc651fffe
mov word [0x438c2a], ax
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov eax, dword [eax]
cmp eax, ebx
jne 0x4077be
cmp eax, edi
je 0x40788a
push 0x766bffff
push 0xd707ffff
call fcn.0040aa83
mov byte [0x438c1b], al
pop ecx
mov eax, ebx
pop ecx
mov ecx, dword [ebp + 0xc]
sub eax, edi
push eax
lea eax, [ebp - 0x30]
push edi
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__::substr_unsigned_int__unsigned_int_]
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 2
call fcn.00409584
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 1
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [0x438c34]
dec al
mov byte [0x438c1d], al
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
test eax, eax
jne 0x40781e
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push ecx
mov ecx, dword [ebp + 0xc]
push ebx
push eax
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_first_not_of_char_const___unsigned_int__unsigned_int_const]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
push 0x486dffff
push 0x3a65ffff
mov word [0x438c28], ax
call fcn.0040a96f
mov word [0x438c2e], ax
push 0x606dffff
movsx eax, word [0x438c34]
push eax
call fcn.0040a8f9
mov word [0x438c2e], ax
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
add esp, 0x10
test eax, eax
jne 0x407877
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push ecx
mov ecx, dword [ebp + 0xc]
push edi
push eax
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_first_of_char_const___unsigned_int__unsigned_int_const]
mov ebx, eax
jmp 0x4077ab
push 0x1ab1ffff
push 0x314dffff
call fcn.0040ab0e
mov dword [0x438c48], eax
movsx eax, byte [0x438c20]
push eax
push 0xc609ffff
call fcn.0040a9de
mov ecx, dword [ebp + 8]
add esp, 0x10
mov dword [0x438c38], eax
lea eax, [ebp - 0x20]
push eax
call fcn.00409320
mov dword [ebp - 0x10], 1
and byte [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.00409388
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret