Function at 0x140044d00
Capabilities:
Get keyboard layout

Disassembly:
mov byte [rsp + 0x20], r9b
mov byte [rsp + 0x18], r8b
push rbx
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x48
movzx ebx, r8b
xor r8d, r8d
mov rsi, rdx
mov qword [rsp + 0x28], rdx
mov rdi, rcx
movzx r15d, r8w
mov r12d, r8d
mov dword [rsp + 0x24], r8d
mov word [rsp + 0x22], r8w
test bl, bl
je 0x140044d49
cmp byte [rcx + 0x64], r8b
je 0x140044d49
mov cl, 1
jmp 0x140044d4b
xor cl, cl
mov byte [rsp + 0x80], cl
mov r13, rdx
cmp word [rdx], r8w
je 0x1400450fa
movzx esi, byte [rsp + 0x98]
mov qword [rsp + 0x40], rbp
movzx ebp, byte [rsp + 0xa0]
mov qword [rsp + 0x38], r14
movzx r14d, byte [rsp + 0x90]
mov edx, 0x7d
nop word [rax + rax]
mov word [rsp + 0x20], r8w
movzx eax, word [r13]
cmp eax, 0x7b
je 0x140044df0
cmp eax, 0x7d
je 0x140044e3a
test cl, cl
je 0x140044dba
inc r12d
mov dword [rsp + 0x24], r12d
jmp 0x140044e3a
xor ecx, ecx
mov word [rsp + 0x20], ax
mov byte [rsp + 0x88], 0
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x20]
mov r9, rax
mov r8b, 1
call fcn.140019df0
movzx r12d, al
jmp 0x140044fca
lea rbx, [r13 + 2]
mov rcx, rbx
call fcn.140109434
mov rbp, rax
test rax, rax
je 0x140044e22
sub rax, r13
sar rax, 1
dec rax
jne 0x140044ec2
add rbp, 2
cmp word [rbp], 0x7d
je 0x140044ec8
movzx ecx, byte [rsp + 0x80]
movzx ebx, byte [rsp + 0x90]
mov edx, 0x7d
xor r8d, r8d
movzx ebp, byte [rsp + 0xa0]
add r13, 2
cmp word [r13], 0
jne 0x140044d90
mov r14, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x28]
test r12d, r12d
je 0x1400450fa
mov eax, dword [rdi + 0x30]
cmp r12d, eax
jbe 0x140045083
test eax, eax
je 0x140044e83
mov rcx, qword [rdi + 0x28]
call fcn.140108f48
lea ecx, [r12 + r12 + 2]
call fcn.1401084ac
mov qword [rdi + 0x28], rax
test rax, rax
jne 0x14004507f
lea r8, [0x1401295d4]
lea rdx, str.Out_of_memory.
lea rcx, [0x1401712e0]
call fcn.1400a5580
add rsp, 0x48
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
cmp rax, 1
jne 0x140044ee9
movzx ecx, byte [rsp + 0x80]
test cl, cl
je 0x140044ee1
inc r12d
mov dword [rsp + 0x24], r12d
jmp 0x140044e2a
movzx eax, word [rbx]
mov word [rsp + 0x20], ax
xor eax, eax
xor ecx, ecx
mov word [rbp], ax
mov byte [rsp + 0x88], al
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
lea rdx, [rsp + 0x88]
mov r8b, 1
mov rcx, rbx
mov r9, rax
call fcn.140019df0
movzx r12d, al
test al, al
je 0x140044fa0
movzx ebx, word [rbx]
test ebx, 0xffffff80
jne 0x140044f3e
mov edx, 2
mov ecx, ebx
call fcn.140109968
test eax, eax
je 0x140044f3e
and ebx, 0xffffffdf
cmp bx, 0x56
jne 0x140044f6f
movzx ebx, word [r13 + 4]
test ebx, 0xffffff80
jne 0x140044f64
mov edx, 2
mov ecx, ebx
call fcn.140109968
test eax, eax
je 0x140044f64
and ebx, 0xffffffdf
cmp bx, 0x4b
jne 0x140044f6f
mov r14b, 1
jmp 0x140044f72
xor r14b, r14b
cmp qword [rdi + 0x10], 0
je 0x140044fac
test r14b, r14b
jne 0x140044fac
mov dl, 1
movzx ecx, r12b
call fcn.14001a4d0
movzx r15d, ax
test ax, ax
je 0x140044fac
mov eax, 0x100
xor r15w, ax
xor r12b, r12b
jmp 0x140044fac
mov rcx, rbx
call fcn.140019cf0
movzx r15d, ax
movzx ebx, byte [rsp + 0x90]
mov r13d, 0x7d
mov word [rbp], r13w
mov r13, rbp
movzx ebp, byte [rsp + 0xa0]
test r12b, r12b
je 0x14004503f
movzx ecx, word [rsp + 0x20]
test cx, cx
je 0x140045003
test bl, bl
je 0x140045003
call qword [sym.imp.USER32.dll_IsCharAlphaW]
test eax, eax
jne 0x140045003
test byte [rsp + 0x88], 0x30
movzx eax, r12b
je 0x140044ffc
or byte [rax + rdi + 0x74], 1
jmp 0x14004503f
or byte [rax + rdi + 0x74], 2
jmp 0x14004503f
movzx ecx, r12b
movzx ebx, sil
not bl
movzx eax, bl
and al, byte [rcx + rdi + 0x74]
or al, bpl
mov byte [rcx + rdi + 0x74], al
test sil, sil
je 0x14004503f
test r14b, r14b
jne 0x14004503f
xor edx, edx
movzx ecx, r12b
call fcn.14001a4d0
test ax, ax
je 0x14004503f
movzx eax, ax
and byte [rax + rdi + 0x174], bl
mov r12d, dword [rsp + 0x24]
movzx ebx, byte [rsp + 0x90]
mov edx, 0x7d
test r15w, r15w
je 0x140045072
movzx ecx, r15w
movzx eax, sil
not al
and al, byte [rcx + rdi + 0x174]
or al, bpl
mov byte [rcx + rdi + 0x174], al
movzx ecx, byte [rsp + 0x80]
jmp 0x140044e37
mov dword [rdi + 0x30], r12d
cmp word [rsi], 0
mov rbx, qword [rdi + 0x28]
je 0x1400450f3
mov r13d, 0x7d
movzx eax, word [rsi]
cmp eax, 0x7b
je 0x1400450a9
cmp eax, r13d
je 0x1400450e9
mov word [rbx], ax
add rbx, 2
jmp 0x1400450e9
lea rdi, [rsi + 2]
mov edx, r13d
mov rcx, rdi
call fcn.140109434
mov r11, rax
test rax, rax
je 0x1400450e9
cmp rax, rdi
jne 0x1400450d2
cmp word [rax + 2], r13w
lea rcx, [rax + 2]
cmove r11, rcx
lea rax, [rsi + 4]
cmp r11, rax
jne 0x1400450e6
movzx eax, word [rdi]
add rbx, 2
mov word [rbx - 2], ax
mov rsi, r11
add rsi, 2
cmp word [rsi], 0
jne 0x140045093
xor eax, eax
mov word [rbx], ax
jmp 0x140045119
test bl, bl
je 0x140045119
cmp dword [rdi + 0x30], 0
je 0x14004510e
mov rax, qword [rdi + 0x28]
mov word [rax], r8w
jmp 0x140045119
lea rax, [0x1401295d4]
mov qword [rdi + 0x28], rax
mov eax, 1
add rsp, 0x48
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret