Function at 0x42a5c7
Capabilities:
Identify system language via api

Disassembly:
mov eax, 0x431d45
call fcn.0042f6e0
sub esp, 0x63c
movsx ax, byte [0x43bbc9]
push ebx
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
inc eax
mov word [0x43bbda], ax
call edi
push dword [ebp + 8]
lea ecx, [ebp - 0xb0]
mov word [0x43bbda], ax
call fcn.0042ac38
movsx eax, word [0x43bbdc]
xor ebx, ebx
push 0x9dbffff
push eax
mov dword [ebp - 4], ebx
call fcn.004118a0
add dword [0x43bbf4], eax
mov al, byte [0x43bbe0]
imul byte [0x43bbcd]
add byte [0x43bbce], al
pop ecx
pop ecx
lea eax, [ebp - 0x240]
push eax
push 0x101
push 0x6a
call fcn.00415e0d
pop ecx
call eax
mov eax, dword [0x43bbec]
push 0xdccdffff
push 0xc67bffff
lea ecx, [eax - 1]
add word [0x43bbe4], cx
mov ecx, dword [0x43bc00]
or ecx, eax
add word [0x43bbd6], cx
call fcn.00411820
add word [0x43bbd6], ax
mov eax, dword [ebp - 0x7c]
pop ecx
cmp eax, ebx
pop ecx
jne 0x42a68d
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 eax
push 0x6c
call fcn.00415e0d
pop ecx
call eax
cmp byte [0x43bbca], bl
mov esi, eax
mov byte [0x43bbce], 1
jne 0x42a6b8
cmp dword [0x43bbe8], ebx
mov word [0x43bbe0], bx
je 0x42a6c1
mov word [0x43bbe0], 1
mov eax, dword [0x43bbf4]
push 0x6b
imul eax, dword [0x43bbec]
mov word [0x43bbe4], ax
call fcn.00415e0d
pop ecx
call eax
push 0xa473ffff
push 0x778bffff
call fcn.00411820
mov dword [0x43bc08], eax
push 0x8a9fffff
movsx eax, word [0x43bbd2]
push eax
call fcn.0041172e
add byte [0x43bbcd], al
add esp, 0x10
cmp esi, ebx
je 0x42a983
mov eax, dword [esi + 0xc]
cmp dword [eax], ebx
je 0x42a983
mov dword [0x43bc00], 0xe80bffff
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
movsx eax, word [0x43bbd2]
push eax
push 0x1fa1ffff
call fcn.004117d2
push 0x358bffff
push 0x3b13ffff
mov word [0x43bbe4], ax
call fcn.004118a0
add esp, 0x10
mov dword [0x43bbfc], eax
mov al, byte [ebp + 0xb]
lea ecx, [ebp - 0x20]
push ebx
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 eax, word [0x43bbdc]
sub eax, 0x20960001
push 0x1935ffff
push 0x1b57ffff
mov byte [ebp - 4], 1
mov dword [0x43bc0c], eax
call fcn.004116de
add byte [0x43bbd1], 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
pop ecx
push dword [eax]
lea eax, [ebp - 0x80]
lea ecx, [ebp - 0x20]
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__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
movsx ax, byte [0x43bbcf]
movsx cx, byte [0x43bbce]
sub eax, ecx
mov word [0x43bbd4], ax
mov ax, word [0x43bc0c]
or ax, word [0x43bbd6]
add word [0x43bbda], ax
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
jne 0x42a7eb
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 [ebp - 0x18]
push eax
lea eax, [ebp - 0x648]
push eax
call fcn.0042b4fb
movsx eax, byte [0x43bbc9]
sub eax, 0x2d140001
or word [0x43bbdc], 0xffff
mov dword [0x43bbf8], eax
lea eax, [ebp - 0x10]
push 4
push eax
lea eax, [ebp - 0x648]
push eax
call fcn.0042b7a2
movsx eax, word [0x43bbd2]
push 0x7051ffff
push eax
call fcn.004116ab
mov esi, dword [0x435414]
mov dword [0x43bbf4], eax
add esp, 0x20
mov al, byte [esi]
add al, 0x5f
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042f700
mov eax, dword [ebp - 0x10]
mov ecx, esp
mov edx, eax
shr edx, 0x18
push edx
xor edx, edx
mov dl, byte [ebp - 0xe]
push edx
xor edx, edx
mov dl, ah
and eax, 0xff
push edx
push eax
mov edx, esi
call fcn.0042b9bf
push eax
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
mov al, byte [ebp + 0xb]
add esp, 0x18
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x30], al
push ebx
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea eax, [ebp - 0x50]
push eax
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x30]
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]
or byte [0x43bbd0], 0xff
mov esi, dword [ebp + 8]
mov byte [ebp - 4], 2
push dword [eax]
lea eax, [ebp - 0xb0]
mov ecx, esi
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__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__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]
mov ecx, esi
push dword [eax]
lea eax, [ebp - 0x30]
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_]
add dword [0x43bbf0], 0x2b860001
call edi
movzx eax, ax
add dword [0x43bbe8], eax
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, esi
push dword [eax]
lea eax, [ebp - 0x70]
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 eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, esi
push dword [eax]
lea eax, [ebp - 0x60]
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_]
cmp word [0x43bbda], bx
jne 0x42a93d
cmp dword [0x43bbf0], ebx
mov byte [0x43bbd1], bl
je 0x42a944
mov byte [0x43bbd1], 1
movsx eax, byte [0x43bbce]
push 0x8959ffff
push eax
call fcn.00411856
pop ecx
mov byte [0x43bbcf], al
pop ecx
mov byte [0x43bbcb], 1
push 1
lea ecx, [ebp - 0x30]
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 - 0x20]
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_]
mov bl, 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xb0]
call fcn.0041352c
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x654]
mov al, bl
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret