Function at 0x42d7df
Capabilities:
Identify system language via api

Disassembly:
mov eax, 0x431c4d
call fcn.0042f2d0
sub esp, 0x98
movsx eax, word [0x43abe2]
push ebx
push esi
push edi
push eax
push 0x33a3ffff
call fcn.004118af
mov dword [0x43abf8], eax
movsx eax, byte [0x43abce]
push eax
push 0x6421ffff
call fcn.00411706
movsx eax, byte [0x43abd0]
or eax, dword [0x43abec]
add esp, 0x10
push 0x7545ffff
mov dword [0x43abf4], eax
call dword [sym.imp.USER32.dll_IsWindow]
push 0xa71fffff
mov word [0x43abe2], ax
push dword [0x43abe8]
call fcn.00411864
mov ecx, dword [0x43ac04]
mov word [0x43abe4], ax
mov eax, dword [0x43abec]
lea eax, [eax + ecx + 0x41280001]
mov dword [0x43abec], eax
call fcn.00402132
movsx eax, word [0x43abd8]
push 0x4bfffff
push eax
call fcn.00411706
add word [0x43abe4], ax
xor ebx, ebx
lea eax, [ebp - 0x48]
push ebx
push eax
call fcn.004202ad
push 0x4e77ffff
push 0xce85ffff
mov dword [ebp - 4], ebx
call fcn.004117ef
push 1
mov byte [0x43abca], al
pop esi
lea eax, [ebp - 0x48]
push eax
mov word [0x43abe4], si
call fcn.0042c8b8
movsx eax, word [0x43abe2]
push 0x2d67ffff
push eax
call fcn.00411864
add dword [0x43abf0], eax
add esp, 0x2c
call dword [sym.imp.USER32.dll_GetForegroundWindow]
cmp dword [ebp - 0x40], ebx
mov byte [0x43abc9], al
je 0x42dfa7
push 0x47
call fcn.00415e1f
push 0x48
call fcn.00415e1f
mov eax, dword [0x43ac00]
pop ecx
imul eax, eax, 0x6e81ffff
inc dword [0x43abf4]
cmp byte [0x43abcf], bl
pop ecx
mov dword [0x43abfc], eax
je 0x42d92d
cmp dword [0x43abf4], ebx
mov dword [0x43abec], esi
jne 0x42d933
mov dword [0x43abec], ebx
push ebx
push 0x59
call fcn.00415e1f
pop ecx
call eax
mov edi, dword [0x43442c]
push 0xfffffffffffffffc
pop esi
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, 3
and eax, esi
call fcn.0042f2f0
mov ecx, esp
push ebx
push ebx
mov edx, edi
call fcn.0042b788
push eax
push 0x47
call fcn.00415e1f
pop ecx
call eax
mov edi, eax
cmp edi, ebx
mov dword [ebp - 0x28], edi
je 0x42dfa7
push 0x48
call fcn.00415e1f
pop ecx
call eax
cmp eax, 0xcb
je 0x42dfa7
call dword [sym.imp.USER32.dll_GetInputState]
inc edi
mov dword [0x43ac0c], eax
push edi
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov edi, dword [0x43442c]
mov dword [ebp - 0x14], eax
pop ecx
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, 3
and eax, esi
call fcn.0042f2f0
mov ecx, esp
push dword [ebp - 0x28]
mov edx, edi
push dword [ebp - 0x14]
call fcn.0042b788
push eax
push 0x47
call fcn.00415e1f
pop ecx
call eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [0x43abcd], al
xor eax, eax
cmp byte [0x43abd0], bl
push 0xffffffffffffffff
setne al
mov word [0x43abd2], ax
call dword [sym.imp.USER32.dll_IsCharLowerA]
add word [0x43abd6], ax
mov al, byte [ebp - 0xd]
push ebx
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x68], 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 - 0x14]
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea ecx, [ebp - 0x68]
push dword [ebp - 0x14]
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 [ebp - 0x14]
mov byte [ebp - 4], 1
call fcn.0042f224
xor eax, eax
cmp dword [0x43abf8], ebx
pop ecx
setne al
add byte [0x43abcb], al
mov al, byte [ebp - 0xd]
push ebx
lea ecx, [ebp - 0x58]
mov byte [ebp - 0x58], 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 eax, byte [0x43abc9]
push 0x13cdffff
push eax
mov byte [ebp - 4], 2
call fcn.004117b3
add dword [0x43ac04], eax
push dword [0x434430]
lea eax, [ebp - 0x58]
push eax
call fcn.004151aa
add esp, 0x10
test eax, eax
je 0x42df7f
push 0x253ffff
push 0xa1dbffff
call fcn.00411706
add word [0x43abd4], ax
mov al, byte [ebp - 0xd]
pop ecx
mov byte [ebp - 0x24], al
pop ecx
push ebx
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_]
mov edi, dword [0x434434]
mov byte [ebp - 4], 3
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, 3
and eax, esi
call fcn.0042f2f0
mov ecx, esp
mov edx, edi
call fcn.0042b788
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push edi
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__::append_char_const___unsigned_int_]
mov edi, dword [0x434438]
or byte [0x43abcb], 0xff
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, 3
and eax, esi
call fcn.0042f2f0
mov ecx, esp
mov edx, edi
call fcn.0042b788
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push edi
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__::append_char_const___unsigned_int_]
mov edi, dword [0x43443c]
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, 3
and eax, esi
call fcn.0042f2f0
mov ecx, esp
mov edx, edi
call fcn.0042b788
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push edi
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__::append_char_const___unsigned_int_]
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea ecx, [ebp - 0x24]
push dword [eax]
lea eax, [ebp - 0x48]
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_]
mov edi, dword [0x434440]
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, 3
and eax, esi
call fcn.0042f2f0
mov ecx, esp
mov edx, edi
call fcn.0042b788
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push edi
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__::append_char_const___unsigned_int_]
movsx eax, byte [0x43abc8]
push 0x189bffff
push eax
call fcn.004117ef
mov edi, dword [0x434444]
mov word [0x43abdc], ax
pop ecx
mov al, byte [edi]
pop ecx
add al, 0x76
movzx eax, al
add eax, 3
and eax, esi
call fcn.0042f2f0
mov ecx, esp
mov edx, edi
call fcn.0042b788
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push edi
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__::append_char_const___unsigned_int_]
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea ecx, [ebp - 0x24]
push dword [eax]
lea eax, [ebp - 0x48]
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_]
mov edi, dword [0x434448]
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, 3
and eax, esi
call fcn.0042f2f0
mov ecx, esp
mov edx, edi
call fcn.0042b788
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push edi
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__::append_char_const___unsigned_int_]
mov edi, dword [0x43444c]
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, 3
and eax, esi
call fcn.0042f2f0
mov ecx, esp
mov edx, edi
call fcn.0042b788
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push edi
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__::append_char_const___unsigned_int_]
movsx eax, byte [0x43abca]
push eax
movsx eax, byte [0x43abd0]
push eax
call fcn.00411864
add dword [0x43abe8], eax
push 0x7de3ffff
movsx eax, word [0x43abd2]
push eax
call fcn.004116b5
mov edi, dword [0x434450]
mov byte [0x43abcf], al
add esp, 0x10
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, 3
and eax, esi
call fcn.0042f2f0
mov ecx, esp
mov edx, edi
call fcn.0042b788
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push edi
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__::append_char_const___unsigned_int_]
movsx eax, byte [0x43abc8]
push eax
push dword [0x43abf8]
call fcn.004118af
cmp dword [0x43abec], ebx
mov dword [0x43abf8], eax
setne al
mov byte [0x43abcf], al
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00414d0c
add esp, 0x10
test eax, eax
je 0x42df70
movsx eax, byte [0x43abc9]
push eax
push dword [0x43abec]
call fcn.00411864
mov word [0x43abe0], ax
mov al, byte [0x43abcb]
dec al
push 0xaf91ffff
push 0xf55ffff
mov byte [0x43abc8], al
call fcn.00411706
mov edi, dword [0x434454]
mov dword [0x43ac04], eax
add esp, 0x10
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, 3
and eax, esi
call fcn.0042f2f0
mov ecx, esp
mov edx, edi
call fcn.0042b788
mov edi, eax
mov al, byte [ebp - 0xd]
push ebx
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x38], 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 edi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push edi
lea ecx, [ebp - 0x38]
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 eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 4
push dword [eax]
lea eax, [ebp - 0x58]
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_]
mov edi, dword [0x434458]
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, 3
and eax, esi
call fcn.0042f2f0
mov ecx, esp
mov edx, edi
call fcn.0042b788
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push edi
lea ecx, [ebp - 0x38]
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_]
push 0x32bdffff
push 0x31b7ffff
call fcn.004117b3
add word [0x43abd4], ax
xor eax, eax
cmp byte [0x43abd0], bl
mov dword [ebp - 0xa4], 0x3c
mov dword [ebp - 0x9c], ebx
setne al
add word [0x43abd8], ax
movsx eax, word [0x43abd6]
push eax
movsx eax, byte [0x43abca]
push eax
call fcn.00411864
add esp, 0x10
add word [0x43abd8], 0xfffe
mov byte [0x43abcd], al
mov edi, dword [0x43445c]
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, 3
and eax, esi
call fcn.0042f2f0
mov ecx, esp
mov edx, edi
call fcn.0042b788
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x64]
cmp eax, ebx
jne 0x42de72
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 0x81d3ffff
push 0x2c91ffff
mov dword [ebp - 0x94], eax
call fcn.00411775
add word [0x43abde], ax
mov eax, dword [ebp - 0x34]
pop ecx
cmp eax, ebx
pop ecx
jne 0x42de9c
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 dword [0x43ac0c]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], ebx
push 0x3467ffff
call fcn.004118af
pop ecx
mov dword [0x43abf4], eax
pop ecx
mov dword [ebp - 0x88], ebx
mov ecx, dword [0x43ac04]
mov dword [ebp - 0xa0], 0x40
or ecx, eax
add dword [0x43abf8], ecx
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
push dword [0x43ac04]
mov word [0x43abda], ax
push 0x2e07ffff
call fcn.00411738
pop ecx
mov word [0x43abd4], ax
pop ecx
lea eax, [ebp - 0xa4]
push eax
push 0x19
call fcn.00415e1f
pop ecx
call eax
xor eax, eax
cmp byte [0x43abca], bl
push ebx
push 0x44
setne al
mov dword [0x43abfc], eax
call fcn.00415e1f
pop ecx
call eax
push eax
push 0x5c
call fcn.00415e1f
pop ecx
call eax
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_IsCharUpperA]
add word [0x43abda], ax
movsx eax, byte [0x43abce]
push eax
push dword [0x43ac08]
call fcn.00411738
pop ecx
mov dword [0x43abfc], eax
pop ecx
mov byte [ebp - 4], 3
push 1
lea ecx, [ebp - 0x38]
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 1
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 2
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.KERNEL32.dll_GetVersion]
push 1
lea ecx, [ebp - 0x58]
mov dword [0x43ac08], eax
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_]
push 1
lea ecx, [ebp - 0x68]
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_]
push 0xb101ffff
push 0x9891ffff
call fcn.0041181a
add byte [0x43abcc], al
or dword [ebp - 4], 0xffffffff
pop ecx
pop ecx
push 1
lea ecx, [ebp - 0x48]
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]
lea esp, [ebp - 0xb0]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret