Function at 0x42e926
Capabilities:
Identify system language via api

Disassembly:
mov eax, 0x432c51
call fcn.00430710
sub esp, 0x98
movsx eax, word [0x43ac88]
push ebx
push esi
push edi
push eax
push 0x1445ffff
call fcn.0040af32
mov word [0x43ac82], ax
push 0x3d25ffff
movsx eax, byte [0x43ac7e]
push eax
call fcn.0040b0f0
push dword [0x43aca0]
mov dword [0x43acb4], eax
push 0xfa2bffff
call fcn.0040b037
add word [0x43ac88], ax
push dword [0x43acb0]
movsx eax, word [0x43ac82]
push eax
call fcn.0040b0f0
add esp, 0x20
mov dword [0x43acac], eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push dword [0x43ac9c]
mov word [0x43ac8a], ax
movsx eax, word [0x43ac8c]
push eax
call fcn.0040af32
mov dword [0x43aca0], eax
call fcn.0041655f
mov al, byte [0x43ac8c]
push 1
imul byte [0x43aca0]
add byte [0x43ac7b], al
movsx eax, word [0x43ac82]
imul eax, eax, 0x9153ffff
mov dword [0x43acb4], eax
movsx ax, byte [0x43ac80]
neg eax
mov word [0x43ac8e], ax
lea eax, [ebp - 0x48]
push eax
call fcn.00422e98
add esp, 0x10
mov al, byte [0x43ac7d]
xor esi, esi
push eax
mov dword [ebp - 4], esi
call dword [sym.imp.USER32.dll_IsCharAlphaA]
mov byte [0x43ac79], al
lea eax, [ebp - 0x48]
push eax
call fcn.004231b5
movsx eax, byte [0x43ac7b]
imul eax, eax, 0xf25fffff
mov dword [esp], 0x2ad7ffff
push dword [0x43aca8]
mov dword [0x43acb0], eax
call fcn.0040b087
add dword [0x43aca8], eax
push 0xbe5fffff
push 0x3edfffff
call fcn.0040b087
add esp, 0x10
cmp dword [ebp - 0x40], esi
mov dword [0x43aca8], eax
je 0x42f1ab
push 0x45
call fcn.0040f588
push 0x46
call fcn.0040f588
movsx eax, byte [0x43ac7b]
push eax
push 0xe63dffff
call fcn.0040afcb
add byte [0x43ac7c], al
movsx eax, byte [0x43ac78]
push eax
push 0x9787ffff
call fcn.0040b002
add esp, 0x18
mov dword [0x43aca0], eax
push esi
push 0x58
call fcn.0040f588
pop ecx
call eax
mov edi, dword [0x4352cc]
push 3
pop ebx
mov al, byte [edi]
push 0xfffffffffffffffc
add al, 0x76
pop esi
movzx eax, al
add eax, ebx
and eax, esi
call fcn.00430730
mov eax, esp
push 0
push 0
push edi
push eax
call fcn.0042d836
pop ecx
pop ecx
push eax
push 0x45
call fcn.0040f588
pop ecx
call eax
mov edi, eax
test edi, edi
mov dword [ebp - 0x18], edi
je 0x42f1ab
push 0x46
call fcn.0040f588
pop ecx
call eax
cmp eax, 0xcb
je 0x42f1ab
push 0xdd1bffff
push 0x583ffff
call fcn.0040b002
push dword [0x43acac]
add word [0x43ac94], ax
push 0x9ffffff
call fcn.0040b037
add esp, 0x10
mov word [0x43ac8c], ax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
inc edi
mov byte [0x43ac79], al
push edi
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov edi, dword [0x4352cc]
mov dword [ebp - 0x14], eax
pop ecx
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, ebx
and eax, esi
call fcn.00430730
mov eax, esp
push dword [ebp - 0x18]
push dword [ebp - 0x14]
push edi
push eax
call fcn.0042d836
pop ecx
pop ecx
push eax
push 0x45
call fcn.0040f588
pop ecx
call eax
movsx eax, byte [0x43ac7a]
push 0x8b97ffff
push eax
call fcn.0040b002
add word [0x43ac8c], ax
push 0x7583ffff
push 0xefe9ffff
call fcn.0040af94
add dword [0x43ac9c], eax
mov al, byte [0x43acbc]
or al, byte [0x43ac7d]
add esp, 0x10
xor edi, edi
lea ecx, [ebp - 0x68]
mov byte [0x43ac7c], al
mov al, byte [ebp - 0xd]
push edi
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.00430672
push dword [0x43aca8]
push 0x9199ffff
call fcn.0040b0f0
add byte [0x43ac7c], al
push 0x9989ffff
movsx eax, byte [0x43ac7b]
push eax
call fcn.0040b002
add esp, 0x14
mov dword [0x43acb0], eax
mov al, byte [ebp - 0xd]
lea ecx, [ebp - 0x58]
push edi
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 [0x43ac7e]
push eax
push 0x6c1ffff
mov byte [ebp - 4], 2
call fcn.0040af32
add dword [0x43aca4], eax
mov al, byte [0x43ac92]
sub byte [0x43ac7b], al
push dword [0x4352d0]
lea eax, [ebp - 0x58]
push eax
call fcn.0040ea26
add esp, 0x10
test eax, eax
je 0x42f157
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
push dword [0x43aca8]
movzx eax, ax
push 0x7c9ffff
mov dword [0x43ac9c], eax
call fcn.0040b087
pop ecx
mov word [0x43ac8e], ax
mov al, byte [ebp - 0xd]
pop ecx
push edi
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x28], 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_]
mov edi, dword [0x4352d4]
mov byte [ebp - 4], bl
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, ebx
and eax, esi
call fcn.00430730
mov eax, esp
push edi
push eax
call fcn.0042d836
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x28]
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__::append_char_const___unsigned_int_]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edi, dword [0x4352d8]
add dword [0x43acbc], eax
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, ebx
and eax, esi
call fcn.00430730
mov eax, esp
push edi
push eax
call fcn.0042d836
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x28]
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__::append_char_const___unsigned_int_]
mov edi, dword [0x4352dc]
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, ebx
and eax, esi
call fcn.00430730
mov eax, esp
push edi
push eax
call fcn.0042d836
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x28]
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__::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 - 0x28]
push dword [eax]
lea eax, [ebp - 0x48]
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__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov edi, dword [0x4352e0]
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, ebx
and eax, esi
call fcn.00430730
mov eax, esp
push edi
push eax
call fcn.0042d836
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x28]
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__::append_char_const___unsigned_int_]
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov edi, dword [0x4352e4]
add word [0x43ac8a], ax
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, ebx
and eax, esi
call fcn.00430730
mov eax, esp
push edi
push eax
call fcn.0042d836
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x28]
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__::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 - 0x28]
push dword [eax]
lea eax, [ebp - 0x48]
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__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov edi, dword [0x4352e8]
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, ebx
and eax, esi
call fcn.00430730
mov eax, esp
push edi
push eax
call fcn.0042d836
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x28]
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__::append_char_const___unsigned_int_]
mov edi, dword [0x4352ec]
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, ebx
and eax, esi
call fcn.00430730
mov eax, esp
push edi
push eax
call fcn.0042d836
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x28]
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__::append_char_const___unsigned_int_]
push 0x21e1ffff
push 0xea19ffff
call fcn.0040af32
push 0x5c15ffff
push 0xa203ffff
mov byte [0x43ac7b], al
call fcn.0040afcb
push 0x129bffff
mov word [0x43ac90], ax
push dword [0x43acac]
call fcn.0040aeeb
mov edi, dword [0x4352f0]
add dword [0x43aca4], eax
add esp, 0x18
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, ebx
and eax, esi
call fcn.00430730
mov eax, esp
push edi
push eax
call fcn.0042d836
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x28]
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__::append_char_const___unsigned_int_]
push dword [0x43acb0]
push 0xb10dffff
call fcn.0040b002
mov word [0x43ac8e], ax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.0040e79b
add esp, 0x10
test eax, eax
je 0x42f148
movsx eax, word [0x43ac8e]
push 0xdc9ffff
push eax
call fcn.0040afcb
push dword [0x43aca4]
mov byte [0x43ac7d], al
push 0xe3b1ffff
call fcn.0040aeeb
mov edi, dword [0x4352f4]
mov word [0x43ac92], ax
add esp, 0x10
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, ebx
and eax, esi
call fcn.00430730
mov eax, esp
push edi
push eax
call fcn.0042d836
pop ecx
mov edi, eax
mov al, byte [ebp - 0xd]
pop ecx
push 0
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 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__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov edi, dword [0x4352f8]
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, ebx
and eax, esi
call fcn.00430730
mov eax, esp
push edi
push eax
call fcn.0042d836
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x38]
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__::append_char_const___unsigned_int_]
movsx eax, word [0x43ac88]
push 0x13b3ffff
push eax
call fcn.0040b0ac
add byte [0x43ac7a], al
and dword [ebp - 0x9c], 0
pop ecx
mov dword [ebp - 0xa4], 0x3c
pop ecx
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov cx, word [0x43ac8a]
mov edi, dword [0x4352fc]
dec cx
add ax, cx
mov word [0x43ac86], ax
mov al, byte [edi]
add al, 0x76
movzx eax, al
add eax, ebx
and eax, esi
call fcn.00430730
mov eax, esp
push edi
push eax
call fcn.0042d836
pop ecx
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x64]
pop ecx
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]
test eax, eax
mov dword [ebp - 0x94], ecx
je 0x42f05b
mov dword [ebp - 0x94], eax
movsx eax, byte [0x43ac7e]
and eax, dword [0x43acbc]
push 1
pop esi
mov dword [ebp - 0x90], ecx
mov dword [0x43acb4], eax
mov word [0x43ac8a], si
movsx eax, word [0x43ac90]
or eax, dword [0x43aca0]
add dword [0x43aca8], eax
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x42f09d
mov dword [ebp - 0x90], eax
and dword [ebp - 0x8c], 0
push 0x5171ffff
push dword [0x43acb8]
call fcn.0040b0f0
add word [0x43ac94], ax
and dword [ebp - 0x88], 0
movsx eax, byte [0x43ac80]
push eax
mov dword [ebp - 0xa0], 0x40
push dword [0x43ac9c]
call fcn.0040b037
add word [0x43ac92], ax
add esp, 0x10
lea eax, [ebp - 0xa4]
push eax
push 0x18
call fcn.0040f588
pop ecx
call eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
add byte [0x43ac7d], al
mov ax, word [0x43aca0]
or ax, word [0x43ac94]
push 0xc151ffff
push dword [0x43ac9c]
add word [0x43ac8e], ax
call fcn.0040b037
pop ecx
mov word [0x43ac8e], ax
pop ecx
call fcn.004163cf
lea eax, [ebp - 0x18]
push 0x438160
push eax
mov dword [ebp - 0x18], esi
call sub.MSVCRT.dll__CxxThrowException
push 1
lea ecx, [ebp - 0x28]
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_]
cmp byte [0x43ac7d], 0
setne al
mov byte [0x43ac7e], al
movsx eax, byte [0x43ac7a]
push eax
push dword [0x43acac]
call fcn.0040afcb
xor eax, eax
pop ecx
cmp word [0x43ac86], ax
pop ecx
push 1
lea ecx, [ebp - 0x58]
setne al
mov word [0x43ac82], ax
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_]
and byte [ebp - 4], 0
push 1
lea ecx, [ebp - 0x68]
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 0x3de5ffff
push 0xcb0dffff
call fcn.0040b0f0
add dword [0x43acac], eax
or word [0x43ac84], 0xffff
sub dword [0x43ac98], 0x40480001
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