Function at 0x40adaf
Capabilities:
Identify system language via api

Disassembly:
mov eax, 0x42f8a2
call fcn.0042e9c0
sub esp, 0x28
push ebx
push esi
push edi
mov dword [ebp - 0x14], ecx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push 0xf46dffff
push 0xb565ffff
mov dword [0x438c44], eax
call fcn.0040a933
add byte [0x438c1b], al
mov al, byte [0x438c22]
and al, byte [0x438c1e]
pop ecx
xor ebx, ebx
pop ecx
mov byte [0x438c1a], al
xor edi, edi
or byte [0x438c18], 0xff
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov esi, dword [0x432d98]
mov byte [0x438c1f], al
mov dword [0x438c3c], 0x70a0001
mov al, byte [esi]
sub al, 3
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042e9e0
mov eax, esp
push esi
push eax
call fcn.0042bd2b
pop ecx
mov esi, eax
mov al, byte [ebp - 0xd]
pop ecx
push ebx
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x24], al
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 - 0x24]
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_]
lea eax, [ebp - 0x34]
push edi
push eax
mov dword [ebp - 4], ebx
call fcn.00404e72
pop ecx
pop ecx
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]
lea ecx, [ebp - 0x24]
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__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 1
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], bl
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 [0x438c22]
push 0xb14bffff
push eax
call fcn.0040a8f9
add byte [0x438c1b], al
movsx eax, word [0x438c22]
push eax
movsx eax, byte [0x438c18]
push eax
call fcn.0040aac5
add esp, 0x10
dec byte [0x438c20]
mov word [0x438c32], ax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
add byte [0x438c1a], al
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x24]
push eax
call fcn.0040afa1
mov esi, eax
movsx eax, word [0x438c34]
push eax
push 0xe77ffff
call fcn.0040aa18
add word [0x438c30], ax
movsx eax, word [0x438c24]
push eax
movsx eax, byte [0x438c1c]
push eax
call fcn.0040aac5
mov dword [0x438c44], eax
push 0xe69fffff
push 0x418fffff
call fcn.0040aa83
add byte [0x438c1c], al
add esp, 0x18
cmp esi, ebx
jne 0x40af4e
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x24]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
inc edi
cmp edi, 0x10
jl 0x40adf8
jmp 0x40af5d
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x24]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
cmp dword [0x438c50], ebx
je 0x40af71
cmp word [0x438c26], bx
je 0x40af71
push 1
pop ebx
movsx eax, byte [0x438c19]
mov ecx, dword [0x438c40]
add word [0x438c2e], bx
sub ecx, eax
lea esp, [ebp - 0x40]
add dword [0x438c38], ecx
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret