Function at 0x51aeb0
Capabilities:
Identify system language via api

Disassembly:
mov rax, rsp
sub rsp, 0x1a8
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rsi, rcx
lea rcx, [rsp + 0x48]
call fcn.0050f5a0
mov rcx, rax
lea rdx, [rsp + 0x20]
call fcn.0050f6a0
nop
lea rcx, [rsi + 0x70]
mov rdx, rax
call qword [sym.imp.msvcp60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64____ptr64]
nop
lea rcx, [rsp + 0x20]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.0051a4d0
nop
lea rcx, [rsi + 0x90]
mov rdx, rax
call qword [sym.imp.msvcp60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64____ptr64]
nop
lea rcx, [rsp + 0x20]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
lea rcx, [rsp + 0x20]
call fcn.0050cca0
nop
lea rcx, [rsi + 0xb0]
mov rdx, rax
call qword [sym.imp.msvcp60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64____ptr64]
nop
lea rcx, [rsp + 0x20]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
cmp qword [rsi + 0xd0], 0
jne 0x51af6a
call fcn.00516e00
mov qword [rsi + 0xd0], rax
call fcn.00516e40
mov qword [rsi + 0xd8], rax
lea rcx, [rsp + 0x20]
call fcn.00516c90
nop
lea rcx, [rsi + 0xe0]
mov rdx, rax
call qword [sym.imp.msvcp60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64____ptr64]
nop
lea rcx, [rsp + 0x20]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
lea rcx, [rsp + 0x20]
call fcn.00516d10
nop
lea rcx, [rsi + 0x100]
mov rdx, rax
call qword [sym.imp.msvcp60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64____ptr64]
nop
lea rcx, [rsp + 0x20]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
lea rcx, [rsp + 0x20]
call fcn.0050cd70
nop
lea rcx, [rsi + 0x120]
mov rdx, rax
call fcn.0051a700
nop
mov rbx, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
cmp rbx, rdi
je 0x51b007
nop
mov rcx, rbx
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
add rbx, 0x20
cmp rbx, rdi
jne 0x51aff0
mov rbx, qword [rsp + 0x28]
mov rcx, rbx
call sub.MFC42u.dll_CMonthCalCtrl::SetFirstDayOfWeek
call qword [sym.imp.KERNEL32.dll_GetACP]
mov dword [rsi + 0x140], eax
call qword [sym.imp.KERNEL32.dll_GetACP]
mov edx, eax
lea rcx, [rsp + 0x20]
call fcn.0050c9c0
nop
lea rcx, [rsi + 0x148]
mov rdx, rax
call qword [sym.imp.msvcp60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64____ptr64]
nop
lea rcx, [rsp + 0x20]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
lea rcx, [rsi + 0x168]
lea rdx, [0x00696f70]
call qword [sym.imp.msvcp60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const____ptr64____ptr64]
xor ecx, ecx
call qword [sym.imp.msvcrt.dll_time]
mov dword [rsi + 0x188], eax
cmp word [rsi + 0x18c], 0
jne 0x51b083
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov word [rsi + 0x18c], ax
mov rbx, qword [rsp + 0x1b8]
mov rsi, qword [rsp + 0x1c0]
mov rdi, qword [rsp + 0x1c8]
add rsp, 0x1a8
ret