Function at 0x411b88
Capabilities:
Identify system language via api

Disassembly:
mov eax, 0x430b91
call fcn.0042f6e0
sub esp, 0x14
push ebx
push esi
push edi
mov dword [ebp - 0x10], ecx
push dword [0x43bbf4]
push 0x373bffff
call fcn.004116ab
push dword [0x43bc0c]
mov byte [0x43bbce], al
push dword [0x43bbf4]
call fcn.004117aa
mov word [0x43bbe4], ax
add esp, 0x10
movsx ax, byte [0x43bbd0]
sub eax, dword [0x43bc00]
push 0
lea ecx, [ebp - 0x20]
add word [0x43bbdc], ax
mov al, byte [ebp + 0xb]
mov byte [ebp - 0x20], 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_]
movsx ax, byte [0x43bbca]
and dword [ebp - 4], 0
inc eax
add word [0x43bbd2], ax
movsx eax, word [0x43bbda]
push eax
push 0xfc8bffff
call fcn.00411820
mov esi, dword [ebp + 8]
add dword [0x43bbf4], eax
pop ecx
mov eax, dword [esi + 0x18]
pop ecx
mov ecx, dword [ebp - 0x10]
add eax, esi
push eax
call fcn.0041191f
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push edi
lea ecx, [ebp - 0x20]
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 0xdecfffff
push 0xfca7ffff
call fcn.004117aa
add byte [0x43bbcb], al
mov edi, dword [esi + 0x10]
movsx eax, byte [0x43bbcf]
push eax
add edi, esi
movsx eax, byte [0x43bbc8]
push eax
call fcn.00411856
add byte [0x43bbcd], al
mov eax, dword [0x43bbf4]
or eax, 0x9561ffff
xor ecx, ecx
add dword [0x43bbf0], eax
mov ebx, dword [esi + 0x14]
mov eax, dword [0x43bc08]
add ebx, esi
push dword [0x43bc04]
mov byte [0x43bbcb], al
test eax, eax
movsx ax, byte [0x43bbd0]
mov word [0x43bbd6], ax
movsx eax, word [0x43bbe2]
setne cl
add byte [0x43bbcd], cl
push eax
call fcn.004116ab
mov esi, dword [ebp - 0x10]
add esp, 0x18
mov dword [0x43bc04], eax
cmp dword [esi + 8], 0
jne 0x411d50
cmp byte [edi], 0
je 0x411d50
push 0x607ffff
push 0xcc3dffff
call fcn.004117d2
push edi
mov dword [0x43bbe8], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
mov ecx, esi
push eax
push edi
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_]
sub dword [0x43bbf4], 0x46560000
push 0x574dffff
push 0x23d1ffff
call fcn.00411856
push 0x5961ffff
push 0xef43ffff
mov byte [0x43bbcd], al
call fcn.00411856
add dword [0x43bc08], eax
movsx eax, word [0x43bbd6]
push eax
push 0x42dffff
call fcn.004118e8
add esp, 0x18
mov word [0x43bbd4], ax
and byte [0x43bbc9], 0
cmp dword [esi + 0x18], 0
jne 0x411ddb
cmp byte [ebx], 0
je 0x411ddb
call dword [sym.imp.USER32.dll_GetForegroundWindow]
add dword [0x43bbf0], eax
push ebx
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push ebx
lea ecx, [esi + 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__::assign_char_const___unsigned_int_]
movsx eax, word [0x43bbe0]
push eax
push 0x13c9ffff
call fcn.004117d2
add dword [0x43bbe8], eax
movsx eax, byte [0x43bbd0]
push eax
push 0xeba5ffff
call fcn.004116ab
mov word [0x43bbdc], ax
xor eax, eax
cmp byte [0x43bbce], al
setne al
mov word [0x43bbe0], ax
movsx eax, byte [0x43bbc9]
push eax
push 0xa709ffff
call fcn.0041172e
add esp, 0x18
mov dword [0x43bbe8], eax
mov al, byte [0x43bbd8]
sub al, byte [0x43bc04]
mov byte [0x43bbce], al
cmp dword [esi + 0x28], 0
jne 0x411e75
cmp dword [ebp - 0x18], 0
je 0x411e75
push 0xcd3fffff
push 0x98ffffff
call fcn.004116de
pop ecx
mov byte [0x43bbc8], al
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
pop ecx
lea ecx, [esi + 0x20]
push dword [eax]
lea eax, [ebp - 0x20]
push 0
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_]
movsx ax, byte [0x43bbce]
add ax, word [0x43bbe0]
add word [0x43bbd2], ax
movsx eax, word [0x43bbda]
push eax
movsx eax, byte [0x43bbd0]
push eax
call fcn.004117d2
mov byte [0x43bbc9], al
movsx eax, word [0x43bbd4]
push eax
movsx eax, word [0x43bbd8]
push eax
call fcn.004117aa
add esp, 0x10
mov word [0x43bbe4], ax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx eax, ax
add dword [0x43bc0c], eax
movsx eax, byte [0x43bbd1]
push eax
push dword [0x43bbe8]
call fcn.00411856
or byte [0x43bbd1], 0xff
or dword [ebp - 4], 0xffffffff
pop ecx
mov byte [0x43bbcf], al
pop ecx
push 1
lea ecx, [ebp - 0x20]
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 ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 4