Function at 0x42b777
Capabilities:
Identify system language via api

Disassembly:
mov eax, 0x42edaa
call fcn.0042c5b0
sub esp, 0x80
push ebx
push esi
mov esi, dword [0x438308]
push edi
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
mov esi, eax
mov al, byte [ebp - 0xd]
xor ebx, ebx
lea ecx, [ebp - 0x28]
push ebx
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_]
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x28]
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, byte [0x437bea]
push 0x865fffff
push eax
mov dword [ebp - 4], ebx
call fcn.0040ffe3
push 0x8869ffff
mov byte [0x437beb], al
push dword [0x437c0c]
call fcn.0040ff4b
add word [0x437bfa], ax
push 0xe6abffff
push dword [0x437c1c]
call fcn.0040ff78
add dword [0x437c0c], eax
push 0x45
mov byte [0x437bef], 0xfe
call fcn.0041448a
add esp, 0x1c
call eax
push eax
push 0x30
call fcn.0041448a
pop ecx
call eax
mov edi, eax
mov dword [0x437c1c], 1
movsx eax, byte [0x437be9]
push eax
push 0x2e67ffff
call fcn.0041004e
add word [0x437c00], ax
pop ecx
movsx ax, byte [0x437bf0]
dec eax
cmp edi, ebx
pop ecx
mov word [0x437bfe], ax
je 0x42ba1c
movsx ax, byte [0x437be9]
inc word [0x437c04]
mov word [0x437bfe], ax
movsx eax, word [0x437c04]
push 0x6701ffff
push eax
call fcn.0040ff4b
pop ecx
mov word [0x437bf4], ax
pop ecx
lea eax, [ebp - 0x14]
push eax
push ebx
push ebx
push 2
push edi
push 0x31
mov dword [ebp - 0x14], ebx
call fcn.0041448a
pop ecx
call eax
mov al, byte [0x437c18]
push eax
call dword [sym.imp.USER32.dll_IsCharAlphaA]
push dword [ebp - 0x14]
add dword [0x437c28], eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
inc byte [0x437bed]
mov esi, eax
movsx eax, word [0x437bfe]
push 0xfd67ffff
push eax
call fcn.0040fede
add dword [0x437c10], eax
add esp, 0xc
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x14]
push esi
push 2
push edi
push 0x31
call fcn.0041448a
pop ecx
call eax
push dword [0x437c2c]
push 0xb77dffff
call fcn.0040ffc6
pop ecx
mov word [0x437c00], ax
pop ecx
push edi
push 0x2e
call fcn.0041448a
pop ecx
call eax
movsx eax, word [0x437c00]
imul eax, eax, 0x71bbffff
add dword [0x437c10], eax
push dword [0x437c2c]
movsx eax, word [0x437c04]
push eax
call fcn.00410092
mov byte [0x437beb], al
push esi
movsx eax, al
or eax, dword [0x437c18]
add dword [0x437c14], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x28]
push eax
push esi
push dword [ebp - 0x20]
push ebx
call dword [sym.imp.MSVCP60.dll_public:_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::compare_unsigned_int__unsigned_int__char_const___unsigned_int_const]
cmp eax, ebx
jne 0x42b9dc
call dword [sym.imp.USER32.dll_GetForegroundWindow]
add word [0x437bfe], ax
mov al, byte [0x437c20]
sub al, byte [0x437c2c]
add byte [0x437bee], al
movsx eax, word [0x437bf8]
push eax
push 0xc4ffffff
call fcn.00410092
add word [0x437c00], ax
push esi
call fcn.0042c504
push 0x480bffff
push 0x60b7ffff
call fcn.0040fede
add esp, 0x14
mov byte [0x437be8], al
jmp 0x42bd95
movsx ax, byte [0x437be9]
sub dword [0x437c14], 0x50fffff
dec eax
add word [0x437bf6], ax
push 0x73edffff
call dword [sym.imp.USER32.dll_IsMenu]
add word [0x437c04], ax
push esi
call fcn.0042c504
mov eax, dword [0x437c2c]
pop ecx
neg eax
mov word [0x437bfc], ax
movsx eax, byte [0x437bed]
mov ecx, 0x94c3ffff
sub ecx, eax
movsx eax, word [0x437bf8]
push eax
mov dword [0x437c14], ecx
push dword [0x437c10]
call fcn.0040fede
add word [0x437bfc], ax
push 0x44
pop esi
lea eax, [ebp - 0x8c]
push esi
push ebx
push eax
call sub.MSVCRT.dll_memset
push 0x510fffff
push 0x51adffff
mov dword [0x437c24], 1
call fcn.0040ffe3
mov byte [0x437be9], al
mov dword [ebp - 0x8c], esi
movsx eax, byte [0x437bee]
push eax
push 0xcba3ffff
call fcn.0040ffc6
mov byte [0x437be8], al
push 0x10
lea eax, [ebp - 0x48]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0x30
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov byte [0x437bf1], al
mov al, byte [0x437c08]
or al, byte [0x437bea]
mov byte [0x437be8], al
call edi
mov dword [0x437c2c], eax
mov eax, dword [ebp - 0x24]
cmp eax, ebx
jne 0x42bad9
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 ebx
push 0x10000000
push ebx
push ebx
push ebx
push eax
push 0x2f
call fcn.0041448a
pop ecx
call eax
mov dword [ebp - 0x18], eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx eax, ax
push 0x2379ffff
push 0x71edffff
mov dword [0x437c28], eax
call fcn.004100bc
push 0x967ffff
mov byte [0x437be9], al
push dword [0x437c28]
call fcn.0040ff1a
add byte [0x437bea], al
mov eax, dword [ebp - 0x24]
add esp, 0x10
cmp eax, ebx
jne 0x42bb37
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]
mov dword [ebp - 0x84], eax
push 0x521ffff
movsx eax, byte [0x437bef]
push eax
call fcn.0040ff78
add dword [0x437c1c], eax
pop ecx
movsx eax, byte [0x437bf0]
and eax, 0x9197ffff
pop ecx
mov dword [0x437c28], eax
mov dword [ebp - 0x60], 7
call dword [sym.imp.USER32.dll_GetCursor]
add word [0x437c00], ax
push 0x869ffff
movsx eax, byte [0x437bec]
push eax
call fcn.0041004e
add dword [0x437c14], eax
mov al, byte [0x437be8]
sub byte [0x437bea], al
pop ecx
mov esi, 0x4d2
pop ecx
mov dword [ebp - 0x7c], esi
call edi
add word [0x437c00], ax
mov dword [ebp - 0x78], esi
movsx eax, byte [0x437bf0]
push eax
push 0xfe0bffff
call fcn.0041004e
add byte [0x437beb], al
mov eax, 0x14e
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
movsx eax, word [0x437bfc]
add dword [0x437c1c], 0x24540000
push eax
push dword [0x437c10]
call fcn.00410016
mov byte [0x437bea], al
push 0x7ec9ffff
movsx eax, byte [0x437bec]
push eax
call fcn.0040fede
add byte [0x437bea], al
mov ax, word [0x437c02]
push 0x76e1ffff
inc ax
push dword [0x437c1c]
mov word [0x437bfc], ax
mov word [ebp - 0x5c], bx
call fcn.0040ff78
mov dword [0x437c08], eax
push 1
movsx ax, byte [0x437beb]
inc eax
add word [0x437c04], ax
lea eax, [ebp - 0x38]
push eax
call fcn.0041f32a
movsx ax, byte [0x437bf1]
dec eax
mov byte [ebp - 4], 1
mov word [0x437bf2], ax
movsx eax, byte [0x437bef]
push eax
push 0x29ffff
call fcn.0040ff4b
mov word [0x437bf4], ax
mov eax, dword [0x437c28]
sub eax, dword [0x437c20]
add esp, 0x30
mov word [0x437bf8], ax
call fcn.00401f57
mov eax, dword [ebp - 0x34]
or word [0x437bfa], 0xffff
cmp eax, ebx
jne 0x42bcac
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]
lea ecx, [ebp - 0x48]
push ecx
lea ecx, [ebp - 0x8c]
push ecx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push ebx
push 0x3d
call fcn.0041448a
pop ecx
call eax
test eax, eax
je 0x42bd5b
mov al, byte [0x437c02]
push 0x3a98
inc al
push 0x59
add byte [0x437be9], al
movsx eax, word [0x437c00]
and eax, 0x9befffff
add dword [0x437c14], eax
call fcn.0041448a
pop ecx
call eax
movsx eax, word [0x437bf4]
push eax
movsx eax, word [0x437c04]
push eax
call fcn.0040ff78
mov dword [0x437c14], eax
mov eax, dword [0x437c24]
pop ecx
and eax, 0xbcedffff
add dword [0x437c28], eax
pop ecx
call fcn.00401e55
test al, al
jne 0x42bd4a
push ebx
push 0x43
call fcn.0041448a
pop ecx
call eax
push eax
push 0x5b
call fcn.0041448a
pop ecx
call eax
mov eax, dword [0x437c28]
and eax, 0x3871ffff
mov dword [0x437c14], eax
jmp 0x42bd60
call fcn.00401e55
push dword [ebp - 0x18]
push 0x2e
call fcn.0041448a
pop ecx
call eax
movsx eax, word [0x437c04]
push eax
push 0xb8abffff
call fcn.0041004e
add dword [0x437c20], eax
pop ecx
pop ecx
mov byte [ebp - 4], bl
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_]
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x28]
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 - 0x98]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret