Function at 0x41bb0f
Capabilities:
Identify system language via api

Disassembly:
mov eax, 0x42e52d
call fcn.0042c930
sub esp, 0x10
mov eax, dword [0x439148]
inc byte [0x438bec]
push ebx
xor ebx, ebx
cmp eax, ebx
push esi
je 0x41bb7c
cmp byte [0x438398], bl
jne 0x41bb7c
cmp dword [eax + 4], ebx
je 0x41bb7c
mov eax, dword [0x438c14]
push 0xacf5ffff
and eax, dword [0x438c24]
add dword [0x438c08], eax
movsx eax, word [0x438bfe]
push eax
call fcn.0041020b
pop ecx
mov byte [0x438beb], al
pop ecx
mov eax, dword [0x439148]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [eax + 4]
jmp 0x41be34
push dword [0x438c20]
push 0x5653ffff
call fcn.0041003a
add dword [0x438c2c], eax
cmp dword [ebp + 8], ebx
pop ecx
pop ecx
je 0x41be00
cmp byte [0x438398], bl
je 0x41be00
cmp dword [0x439148], ebx
je 0x41be00
push edi
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov word [0x438bfc], ax
movsx eax, byte [0x438bee]
push eax
movsx eax, word [0x438c00]
push eax
call fcn.004100c8
add word [0x438c02], ax
pop ecx
pop ecx
call dword [sym.imp.USER32.dll_GetInputState]
add dword [0x438c20], eax
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], 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 dword [ebp + 0xc]
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea ecx, [ebp - 0x1c]
push dword [ebp + 0xc]
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_]
mov esi, 0x43839c
mov dword [ebp - 4], ebx
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__::append_char_const___unsigned_int_]
mov eax, dword [0x438c1c]
push 0x82a3ffff
inc eax
add word [0x438c00], ax
movsx eax, word [0x438c00]
push eax
call fcn.00410246
push dword [ebp + 0x10]
mov byte [0x438bef], al
xor eax, eax
cmp dword [0x438c28], ebx
setne al
add word [0x438bfe], ax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp + 0x10]
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_char_const___unsigned_int_]
mov ax, word [0x438c00]
mov ecx, 0x439150
add word [0x438bfe], ax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.0041cb6c
movsx cx, byte [0x438bf1]
mov eax, dword [0x438c08]
and ecx, eax
push eax
mov word [0x438c00], cx
call dword [sym.imp.USER32.dll_IsCharAlphaA]
push dword [0x438c14]
mov byte [0x438bea], al
push dword [0x438c2c]
call fcn.00410167
add dword [0x438c10], eax
mov eax, dword [0x439154]
mov edi, dword [ebp + 0xc]
pop ecx
cmp edi, eax
pop ecx
je 0x41bdd5
movsx eax, word [0x438c02]
push 0x249dffff
push eax
call fcn.004100c8
add byte [0x438bef], al
mov esi, dword [edi + 0x40]
movsx eax, word [0x438bfc]
push eax
push 0xb0a9ffff
call fcn.00410246
mov dword [0x438c1c], eax
mov eax, dword [edi + 0x44]
add esp, 0x10
cmp esi, eax
je 0x41bd72
push 0xd581ffff
push 0x2c0bffff
call fcn.0041003a
add byte [0x438bee], al
pop ecx
pop ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
add dword [0x438c10], eax
mov eax, dword [ebp + 8]
inc byte [0x438bef]
cmp dword [esi + 4], eax
je 0x41bd72
movsx eax, byte [0x438bec]
push 0x368dffff
push eax
call fcn.00410246
add esi, 8
pop ecx
mov dword [0x438c2c], eax
cmp esi, dword [edi + 0x44]
pop ecx
jne 0x41bd20
push dword [0x438c20]
push 0xacffffff
call fcn.004101be
add byte [0x438be8], al
mov al, byte [0x438c24]
inc al
pop ecx
add byte [0x438be8], al
cmp esi, dword [edi + 0x44]
pop ecx
je 0x41bdd5
movsx eax, byte [0x438bed]
push eax
sub esi, 8
push dword [0x438c1c]
call fcn.004101be
add byte [0x438bee], al
movsx eax, word [0x438bf8]
push eax
push 0x1d9bffff
call fcn.004101be
add esp, 0x10
add byte [0x438bf0], al
mov ebx, dword [esi]
mov eax, dword [0x438c2c]
mov ecx, dword [0x438c20]
or dword [ebp - 4], 0xffffffff
push 1
lea eax, [eax + ecx - 0x7815ffff]
lea ecx, [ebp - 0x1c]
mov dword [0x438c2c], eax
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 eax, ebx
pop edi
jmp 0x41be34
mov al, byte [0x438c1c]
push dword [ebp + 0xc]
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
dec al
add byte [0x438bf0], al
call esi
call dword [sym.imp.USER32.dll_GetFocus]
push dword [ebp + 0x10]
add word [0x438bf4], ax
push dword [ebp + 0xc]
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0xc]
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0xc