Function at 0x140018b68
Capabilities:
Get keyboard layout
Identify system language via api

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x4a0
mov rbp, rcx
lea rcx, [rax - 0x228]
mov r13d, edx
call fcn.1400195d4
xor r15d, r15d
lea rdx, [0x140004be0]
lea rax, [0x140004d80]
lea rcx, [rsp + 0x320]
mov qword [rsp + 0x300], r15
mov qword [rsp + 0x2a0], rdx
mov qword [rsp + 0x308], r15
mov qword [rsp + 0x310], r15
mov qword [rsp + 0x2a8], rax
call fcn.1400195d4
lea rdx, [0x140004cb0]
lea rax, [0x140004d80]
lea rcx, [rsp + 0xb0]
mov qword [rsp + 0x320], rdx
mov qword [rsp + 0x380], r15
mov qword [rsp + 0x388], r15
mov qword [rsp + 0x328], rax
call fcn.1400195d4
lea rcx, [rsp + 0x110]
call qword [sym.imp.DUI70.dll_public:_void___cdecl_DirectUI::IDataEntry::constructor_void____ptr64]
lea rax, [0x140004e70]
lea rcx, [rsp + 0x1b0]
mov qword [rsp + 0xb0], rax
lea rax, [0x140004d80]
mov qword [rsp + 0x118], r15
mov qword [rsp + 0xb8], rax
lea rax, [0x140004f40]
mov qword [rsp + 0x120], r15
mov dword [rsp + 0x128], r15d
mov dword [rsp + 0x12c], r15d
mov qword [rsp + 0x130], r15
mov qword [rsp + 0x110], rax
mov dword [rsp + 0x138], r15d
mov dword [rsp + 0x13c], r15d
mov dword [rsp + 0x140], r15d
call fcn.1400195d4
lea rdx, [0x140004da0]
lea rax, [0x140004d80]
lea rcx, [0x140005110]
mov qword [rsp + 0x1b0], rdx
mov qword [rsp + 0x210], r15
mov qword [rsp + 0x218], r15
mov qword [rsp + 0x220], r15
mov qword [rsp + 0x1b8], rax
mov qword [rsp + 0x228], r15
mov qword [rsp + 0x230], r15
mov qword [rsp + 0x238], r15
mov qword [rsp + 0x240], r15
mov qword [rsp + 0x248], r15
mov qword [rsp + 0x250], r15
mov dword [rsp + 0x258], r15d
mov qword [rsp + 0x260], r15
mov qword [rsp + 0x268], r15
mov qword [rsp + 0x270], r15
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rcx, rax
mov edx, 0x94
mov rdi, rax
call qword [sym.imp.USER32.dll_LoadBitmapW]
mov edx, 0x93
mov rcx, rdi
mov rbx, rax
call qword [sym.imp.USER32.dll_LoadBitmapW]
mov rdi, rax
cmp rax, r15
je 0x140018dde
cmp rbx, r15
je 0x140018dde
lea r8, [rsp + 0x280]
lea edx, [r15 + 0x20]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_GetObjectW]
mov edx, dword [rsp + 0x284]
mov ecx, dword [rsp + 0x288]
mov dword [rsp + 0x278], edx
mov dword [rsp + 0x27c], ecx
or esi, 0xffffffff
mov dl, 7
mov rcx, rbx
xor r9d, r9d
mov r8d, esi
mov byte [rsp + 0x28], r15b
mov byte [rsp + 0x20], r15b
call qword [sym.imp.DUI70.dll_public:_static_class_DirectUI::Value____ptr64___cdecl_DirectUI::Value::CreateGraphic_struct_HBITMAP______ptr64__unsigned_char__unsigned_int__bool__bool__bool_]
xor r9d, r9d
mov r8d, esi
mov dl, 7
mov rcx, rdi
mov byte [rsp + 0x28], r15b
mov qword [rsp + 0x260], rax
mov byte [rsp + 0x20], r15b
call qword [sym.imp.DUI70.dll_public:_static_class_DirectUI::Value____ptr64___cdecl_DirectUI::Value::CreateGraphic_struct_HBITMAP______ptr64__unsigned_char__unsigned_int__bool__bool__bool_]
mov qword [rsp + 0x268], rax
lea rcx, [rsp + 0x390]
call fcn.1400195d4
lea rdx, [0x140004f60]
lea rax, [0x140004d80]
lea rcx, [rsp + 0x430]
mov qword [rsp + 0x390], rdx
mov qword [rsp + 0x398], rax
mov qword [rsp + 0x3f0], r15
mov qword [rsp + 0x3f8], r15
mov qword [rsp + 0x400], r15
mov qword [rsp + 0x408], r15
mov qword [rsp + 0x410], r15
mov dword [rsp + 0x428], r15d
call fcn.1400195d4
lea rax, [0x140004d80]
lea rdx, [0x140005030]
mov qword [rsp + 0x438], rax
mov rax, qword [0x140036100]
lea rcx, [0x140036100]
mov qword [rsp + 0x430], rdx
call qword [rax + 0x18]
lea rcx, [0x140037010]
lea rbx, [rax + 0x18]
mov edx, 0xcf
mov esi, r15d
mov qword [rsp + 0x70], rbx
call fcn.1400177ec
mov edi, 0x8000ffff
mov r14d, 0x80070000
cmp eax, r15d
jne 0x140018ebe
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r15d
je 0x140018f11
movzx esi, ax
or esi, r14d
cmp eax, r15d
cmovle esi, eax
cmp esi, r15d
jl 0x140018f21
lea rcx, [0x140037020]
mov edx, 0xd0
call fcn.1400177ec
cmp eax, r15d
jne 0x140018eeb
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r15d
je 0x140018f11
movzx esi, ax
or esi, r14d
cmp eax, r15d
cmovle esi, eax
cmp esi, r15d
jl 0x140018f21
lea rcx, [0x140037018]
mov edx, 0xd1
call fcn.1400177ec
cmp eax, r15d
jne 0x140018f21
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r15d
jne 0x140018f15
mov esi, edi
jmp 0x140018f21
movzx esi, ax
or esi, r14d
cmp eax, r15d
cmovle esi, eax
mov r14d, 0x11c
lea rcx, [rbp + 0x58]
xor edx, edx
mov r8, r14
call sub.msvcrt.dll_memset
lea rcx, [rbp + 0x58]
mov dword [rbp + 0x58], r14d
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp eax, r15d
jne 0x140018f6e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r14d, 0x80070000
cmp eax, r15d
jne 0x140018f60
mov esi, edi
jmp 0x140019011
movzx esi, ax
or esi, r14d
cmp eax, r15d
cmovle esi, eax
jmp 0x140018f74
mov r14d, 0x80070000
cmp esi, r15d
jl 0x140019011
mov eax, dword [rbp + 0x64]
mov r9d, dword [rbp + 0x60]
mov r8d, dword [rbp + 0x5c]
lea rcx, [rbp + 0x178]
lea rdx, [0x140004088]
mov dword [rsp + 0x20], eax
call fcn.1400181c8
movzx r9d, word [rbp + 0x16e]
movzx r8d, word [rbp + 0x16c]
lea rcx, [rbp + 0x180]
lea rdx, [0x1400040a0]
call fcn.1400181c8
xor edx, edx
lea r8, [rsp + 0x4e8]
lea ecx, [rdx + 0x1b]
xor r9d, r9d
call qword [sym.imp.USER32.dll_SystemParametersInfoW]
cmp eax, r15d
jne 0x140018ff8
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r15d
je 0x140018f59
movzx esi, ax
or esi, r14d
cmp eax, r15d
cmovle esi, eax
cmp esi, r15d
jl 0x140019011
cmp dword [rsp + 0x4e8], r15d
mov eax, r15d
sete al
mov dword [rbp + 0x1a8], eax
cmp esi, r15d
mov qword [rbp + 0x50], r15
jl 0x14001942c
xor edx, edx
lea rcx, [rsp + 0x78]
lea r8d, [rdx + 0x30]
call sub.msvcrt.dll_memset
xor edx, edx
lea rcx, [rsp + 0x150]
lea r8d, [rdx + 0x60]
call sub.msvcrt.dll_memset
lea rcx, [rbp + 0x1b0]
mov edx, 0xca
call fcn.1400177ec
cmp eax, r15d
jne 0x140019075
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r15d
jne 0x140019069
mov esi, edi
jmp 0x14001942c
movzx esi, ax
or esi, r14d
cmp eax, r15d
cmovle esi, eax
cmp esi, r15d
jl 0x14001942c
mov rdx, qword [0x140036668]
lea rcx, [rsp + 0x2a0]
call qword [sym.imp.DUI70.dll_public:_long_int___cdecl_DirectUI::TaskPage::DUICreatePropertySheetPage_struct_HINSTANCE______ptr64____ptr64]
cmp eax, r15d
mov esi, eax
jl 0x14001942c
mov rax, qword [rsp + 0x2c0]
mov rdx, qword [0x140036668]
lea rcx, [rsp + 0x320]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x2f0], rbp
mov dword [rsp + 0x2fc], r15d
call qword [sym.imp.DUI70.dll_public:_long_int___cdecl_DirectUI::TaskPage::DUICreatePropertySheetPage_struct_HINSTANCE______ptr64____ptr64]
cmp eax, r15d
mov esi, eax
jl 0x14001942c
mov rax, qword [rsp + 0x340]
mov rdx, qword [0x140036668]
lea rcx, [rsp + 0x1b0]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x370], rbp
mov dword [rsp + 0x37c], 1
call qword [sym.imp.DUI70.dll_public:_long_int___cdecl_DirectUI::TaskPage::DUICreatePropertySheetPage_struct_HINSTANCE______ptr64____ptr64]
cmp eax, r15d
mov esi, eax
jl 0x14001942c
mov rax, qword [rsp + 0x1d0]
mov rdx, qword [0x140036668]
lea rcx, [rsp + 0xb0]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x200], rbp
mov dword [rsp + 0x20c], 2
call qword [sym.imp.DUI70.dll_public:_long_int___cdecl_DirectUI::TaskPage::DUICreatePropertySheetPage_struct_HINSTANCE______ptr64____ptr64]
cmp eax, r15d
mov esi, eax
jl 0x14001942c
mov rax, qword [rsp + 0xd0]
mov rdx, qword [0x140036668]
lea rcx, [rsp + 0x390]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x100], rbp
mov dword [rsp + 0x10c], 3
call qword [sym.imp.DUI70.dll_public:_long_int___cdecl_DirectUI::TaskPage::DUICreatePropertySheetPage_struct_HINSTANCE______ptr64____ptr64]
cmp eax, r15d
mov esi, eax
jl 0x14001942c
mov rax, qword [rsp + 0x3b0]
mov rdx, qword [0x140036668]
lea rcx, [rsp + 0x430]
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x3e0], rbp
mov dword [rsp + 0x3ec], 4
call qword [sym.imp.DUI70.dll_public:_long_int___cdecl_DirectUI::TaskPage::DUICreatePropertySheetPage_struct_HINSTANCE______ptr64____ptr64]
cmp eax, r15d
mov esi, eax
jl 0x14001942c
mov rax, qword [rsp + 0x450]
mov rcx, qword [0x140036668]
mov edx, 0x12c
mov qword [rsp + 0xa0], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x480], rbp
mov qword [rsp + 0x188], rax
mov rax, qword [rbp + 0x1b0]
mov dword [rsp + 0x48c], 5
mov dword [rsp + 0x150], 0x60
mov dword [rsp + 0x154], 0x4004022
mov qword [rsp + 0x160], rcx
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x158], r15
mov dword [rsp + 0x178], 6
mov dword [rsp + 0x180], r15d
call qword [sym.imp.USER32.dll_LoadIconW]
mov dword [rbp + 0x1bc], r13d
mov qword [rsp + 0x168], rax
cmp r13d, r15d
je 0x1400192fe
lea rcx, [rbp + 8]
xor edx, edx
call fcn.1400173d8
cmp eax, r15d
jne 0x140019309
lea rcx, [rsp + 0x70]
mov edx, 0xd7
call fcn.14000c9f4
cmp eax, r15d
jne 0x1400192cb
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rbx, qword [rsp + 0x70]
cmp eax, r15d
je 0x140019062
movzx esi, ax
or esi, r14d
cmp eax, r15d
cmovle esi, eax
jmp 0x140019309
mov rbx, qword [rsp + 0x70]
cmp rbx, r15
jne 0x1400192da
mov ecx, r15d
jmp 0x1400192ec
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
dec rcx
mov r8d, ecx
lea rcx, [rbp + 0x1c0]
mov rdx, rbx
call fcn.14000cd0c
mov dword [rsp + 0x180], 5
cmp esi, r15d
jl 0x14001942c
lea rcx, [rsp + 0x150]
call qword [sym.imp.COMCTL32.dll_PropertySheetW]
cmp rax, 0xffffffffffffffff
jne 0x140019347
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r15d
jne 0x14001933b
mov esi, 0x8000ffff
jmp 0x14001942c
movzx esi, ax
or esi, r14d
cmp eax, r15d
cmovle esi, eax
cmp esi, r15d
jl 0x14001942c
lea rcx, [0x140036ec0]
call fcn.140020404
mov rax, qword [rbp + 0x18]
mov edx, r15d
jmp 0x140019373
cmp dword [rax + 0x1a8], r15d
je 0x140019370
inc edx
mov rax, qword [rax]
cmp rax, r15
jne 0x140019365
mov eax, dword [0x140036e04]
add dword [0x140036e0c], edx
mov dword [0x140036e04], r15d
add dword [0x140036e08], eax
call fcn.140026e4c
cmp dword [0x140036eac], r15d
je 0x140019409
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
xor ecx, ecx
movzx edi, ax
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
mov ecx, 2
movzx r9d, ax
mov eax, dword [0x140036e5c]
lea edx, [rcx + 4]
mov dword [rsp + 0x68], eax
mov eax, dword [0x140036e58]
mov dword [rsp + 0x60], ecx
mov dword [rsp + 0x58], eax
mov eax, dword [0x140036e0c]
mov dword [rsp + 0x50], ecx
mov dword [rsp + 0x48], eax
mov eax, dword [0x140036e08]
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], ecx
mov r8d, ecx
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], ecx
mov ecx, 0x5d2
call fcn.140026f08
mov dword [0x140036e08], r15d
mov dword [0x140036e04], r15d
mov dword [0x140036e0c], r15d
mov dword [0x140036e58], r15d
mov dword [0x140036e5c], r15d
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
cmp eax, r15d
jg 0x140019448
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
lea rcx, [rsp + 0x430]
call qword [sym.imp.DUI70.dll_public_virtual:_void___cdecl_DirectUI::TaskPage::destructor_void____ptr64]
lea rcx, [rsp + 0x390]
call qword [sym.imp.DUI70.dll_public_virtual:_void___cdecl_DirectUI::TaskPage::destructor_void____ptr64]
lea rcx, [rsp + 0x1b0]
call fcn.14001ad30
lea rax, [0x140004d80]
lea rdx, [0x140004e70]
mov qword [rsp + 0xb8], rax
lea rax, [0x140004f40]
lea rcx, [rsp + 0x110]
mov qword [rsp + 0x110], rax
mov qword [rsp + 0xb0], rdx
call qword [sym.imp.DUI70.dll_public_virtual:_void___cdecl_DirectUI::IDataEntry::destructor_void____ptr64]
lea rcx, [rsp + 0xb0]
call qword [sym.imp.DUI70.dll_public_virtual:_void___cdecl_DirectUI::TaskPage::destructor_void____ptr64]
lea rcx, [rsp + 0x320]
call qword [sym.imp.DUI70.dll_public_virtual:_void___cdecl_DirectUI::TaskPage::destructor_void____ptr64]
lea rcx, [rsp + 0x2a0]
call qword [sym.imp.DUI70.dll_public_virtual:_void___cdecl_DirectUI::TaskPage::destructor_void____ptr64]
lea r11, [rsp + 0x4a0]
mov eax, esi
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret