Function at 0x14001fdb0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x158
mov rsi, qword [sym.imp.msvcrt.dll__kbhit]
mov rbx, qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rbp, qword [sym.imp.KERNEL32.DLL_Sleep]
lea rdi, [rsp + 0x5f]
and rdi, 0xffffffffffffffe0
jmp 0x14001fe71
mov ecx, 5
call rbx
test eax, 0x8001
jne 0x14001ff60
mov ecx, 6
call rbx
test eax, 0x8001
jne 0x140020060
mov ecx, 0x10
call rbx
test ax, ax
js 0x140020170
mov ecx, 0x11
call rbx
test ax, ax
js 0x140020270
mov ecx, 0x12
call rbx
test ax, ax
js 0x140020360
mov ecx, 1
call rbx
test eax, 0x8001
jne 0x140020420
mov ecx, 2
call rbx
test eax, 0x8001
jne 0x140020520
mov ecx, 4
call rbx
test eax, 0x8001
jne 0x140020620
mov ecx, 0x12c
call rbp
call rsi
test eax, eax
je 0x14001fde0
call qword [sym.imp.msvcrt.dll__getch]
movabs rsi, 0x4ed22d1ffe28dccd
movabs r10, 0x3db75f6fde51b986
lea rdi, [rsp + 0x20]
vmovq xmm5, r10
vmovq xmm4, rsi
movabs r8, 0x9f2bd4ca2c181385
movabs rcx, 0x9f2bd4ea167c76f6
vpinsrq xmm3, xmm5, r8, 1
vpinsrq xmm1, xmm4, rcx, 1
mov rcx, rdi
mov ebx, eax
vpxor xmm2, xmm3, xmm1
vmovdqu xmmword [rsp + 0x20], xmm2
call sub.msvcrt.dll_strlen
mov rbp, qword [0x1400ea160]
mov rdx, rdi
mov r8, rax
mov rcx, rbp
call fcn.1400d2ef0
mov r11, qword [rbp]
mov byte [rsp + 0x30], bl
mov rdx, qword [r11 - 0x18]
cmp qword [rdx + rbp + 0x10], 0
je 0x140020720
mov rcx, rbp
lea rdx, [rsp + 0x30]
mov r8d, 1
call fcn.1400d2ef0
mov rbp, rax
mov rax, qword [rbp]
mov r9, qword [rax - 0x18]
mov rsi, qword [rbp + r9 + 0xf0]
test rsi, rsi
je 0x1400208ed
cmp byte [rsi + 0x38], 0
je 0x140020730
movsx edx, byte [rsi + 0x43]
mov rcx, rbp
call fcn.14008aa40
mov rcx, rax
call fcn.14008ac20
mov eax, ebx
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
ret
movabs rax, 0x4ed22d1ffe28dccd
movabs r8, 0x3e30c205562095df
movabs rdx, 0xc8a0d7a8d5db380
movabs rcx, 0x4c40e22c3d43f4bd
vmovq xmm4, r8
vmovq xmm3, rax
movabs rbp, 0x9f2bd4ea167c76f6
movabs rsi, 0xfbefcf8ed6adb88
vmovq xmm5, rcx
vpinsrq xmm2, xmm3, rbp, 1
movabs r9, 0xb70be58479080283
movabs r10, 0xfbefc9c8819a8ed
vpinsrq xmm1, xmm4, rsi, 1
vmovq xmm4, rdx
add rdi, 0xe0
vinserti128 ymm0, ymm2, xmm1, 1
vpinsrq xmm3, xmm5, r10, 1
vpinsrq xmm1, xmm4, r9, 1
vinserti128 ymm2, ymm1, xmm3, 1
vpxor ymm0, ymm0, ymm2
vmovdqu ymmword [rdi], ymm0
mov rcx, rdi
vzeroupper
call sub.msvcrt.dll_strlen
mov rdx, rdi
mov rdi, qword [0x1400ea160]
mov r8, rax
mov rcx, rdi
call fcn.1400d2ef0
mov rbx, qword [rdi]
mov r11, qword [rbx - 0x18]
mov rbp, qword [r11 + rdi + 0xf0]
test rbp, rbp
je 0x1400208ed
cmp byte [rbp + 0x38], 0
je 0x140020761
movsx edx, byte [rbp + 0x43]
mov rcx, rdi
mov ebx, 5
call fcn.14008aa40
mov rcx, rax
call fcn.14008ac20
mov eax, ebx
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
ret
movabs rbp, 0xc8a0d7a8d5db380
movabs r11, 0x1754b0642152fab9
movabs rsi, 0xb70be68479080283
movabs rbx, 0x6bdb8f8b8818aba8
vmovq xmm1, r11
vmovq xmm3, rbp
movabs rdx, 0x4ed22d1ffe28dccd
movabs rcx, 0x3e30c205562095df
vmovq xmm5, rcx
vpinsrq xmm2, xmm3, rsi, 1
movabs r9, 0x9f2bd4ea167c76f6
movabs r10, 0xfbefcf8ed6adb88
vpinsrq xmm4, xmm1, rbx, 1
vmovq xmm1, rdx
mov rcx, rdi
vpinsrq xmm3, xmm1, r9, 1
vinserti128 ymm0, ymm2, xmm4, 1
vpinsrq xmm4, xmm5, r10, 1
vinserti128 ymm2, ymm3, xmm4, 1
vpxor xmm5, xmm5, xmm5
vpxor ymm0, ymm0, ymm2
vmovdqu xmmword [rdi + 0x20], xmm5
vmovdqu ymmword [rdi], ymm0
vzeroupper
call sub.msvcrt.dll_strlen
mov rdx, rdi
mov rdi, qword [0x1400ea160]
mov r8, rax
mov rcx, rdi
call fcn.1400d2ef0
mov rax, qword [rdi]
mov r8, qword [rax - 0x18]
mov rbp, qword [r8 + rdi + 0xf0]
test rbp, rbp
je 0x1400208ed
cmp byte [rbp + 0x38], 0
je 0x140020793
movsx edx, byte [rbp + 0x43]
mov rcx, rdi
mov ebx, 6
call fcn.14008aa40
mov rcx, rax
call fcn.14008ac20
mov eax, ebx
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
ret
movabs rax, 0x2bb90d6b9841b49e
movabs r8, 0x3e30c205562095bb
movabs rsi, 0xfa58a78f640c568f
movabs rbx, 0xfbefcf8ed6adb88
vmovq xmm4, r8
vmovq xmm2, rax
movabs rdx, 0x4ed22d1ffe28dccd
movabs rcx, 0x3e30c205562095df
vpinsrq xmm0, xmm2, rsi, 1
vpinsrq xmm3, xmm4, rbx, 1
vmovq xmm4, rdx
movabs r10, 0x9f2bd4ea167c76f6
vmovq xmm1, rcx
vinserti128 ymm5, ymm0, xmm3, 1
add rdi, 0xc0
vpinsrq xmm3, xmm1, rbx, 1
vpinsrq xmm2, xmm4, r10, 1
vinserti128 ymm0, ymm2, xmm3, 1
vpxor ymm5, ymm5, ymm0
vmovdqu ymmword [rdi], ymm5
mov rcx, rdi
vzeroupper
call sub.msvcrt.dll_strlen
mov rdx, rdi
mov rdi, qword [0x1400ea160]
mov r8, rax
mov rcx, rdi
call fcn.1400d2ef0
mov r9, qword [rdi]
mov rbp, qword [r9 - 0x18]
mov rsi, qword [rbp + rdi + 0xf0]
test rsi, rsi
je 0x1400208ed
cmp byte [rsi + 0x38], 0
je 0x1400207c5
movsx edx, byte [rsi + 0x43]
mov rcx, rdi
mov ebx, 0x10
call fcn.14008aa40
mov rcx, rax
call fcn.14008ac20
mov eax, ebx
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
ret
movabs r11, 0x37b7463f925aa88e
movabs rbp, 0x3e30c205562095df
movabs rax, 0x4ed22d1ffe28dccd
movabs r8, 0xfb4ea799730e06d6
vmovq xmm2, r11
vmovq xmm1, rax
movabs r10, 0xfbefcf8ed6adb88
movabs rcx, 0x9f2bd4ea167c76f6
vmovq xmm0, rbp
add rdi, 0xa0
vpinsrq xmm5, xmm0, r10, 1
vpinsrq xmm4, xmm1, rcx, 1
vpinsrq xmm0, xmm2, r8, 1
vinserti128 ymm3, ymm4, xmm5, 1
vinserti128 ymm5, ymm0, xmm5, 1
vpxor ymm1, ymm3, ymm5
vmovdqu ymmword [rdi], ymm1
mov rcx, rdi
vzeroupper
call sub.msvcrt.dll_strlen
mov rdx, rdi
mov rdi, qword [0x1400ea160]
mov r8, rax
mov rcx, rdi
call fcn.1400d2ef0
mov rsi, qword [rdi]
mov rdx, qword [rsi - 0x18]
mov rbx, qword [rdx + rdi + 0xf0]
test rbx, rbx
je 0x1400208ed
cmp byte [rbx + 0x38], 0
je 0x1400207f6
movsx edx, byte [rbx + 0x43]
mov rcx, rdi
mov ebx, 0x11
call fcn.14008aa40
mov rcx, rax
call fcn.14008ac20
mov eax, ebx
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
ret
movabs r10, 0x6eab4874de5cb08c
movabs rbx, 0x4ed22d1ffe28dccd
lea rdi, [rsp + 0x30]
movabs r11, 0x9f4fb19965190486
vmovq xmm3, r10
vmovq xmm1, rbx
movabs r8, 0x9f2bd4ea167c76f6
mov rcx, rdi
vpinsrq xmm5, xmm3, r11, 1
vpinsrq xmm4, xmm1, r8, 1
vpxor xmm2, xmm4, xmm5
vmovdqu xmmword [rsp + 0x30], xmm2
call sub.msvcrt.dll_strlen
mov rbp, qword [0x1400ea160]
mov rdx, rdi
mov r8, rax
mov rcx, rbp
call fcn.1400d2ef0
mov rax, qword [rbp]
mov rcx, qword [rax - 0x18]
mov rsi, qword [rcx + rbp + 0xf0]
test rsi, rsi
je 0x1400208ed
cmp byte [rsi + 0x38], 0
je 0x140020827
movsx edx, byte [rsi + 0x43]
mov rcx, rbp
mov ebx, 0x12
call fcn.14008aa40
mov rcx, rax
call fcn.14008ac20
mov eax, ebx
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
ret
movabs rsi, 0x4ed22d1ffe28dccd
movabs r8, 0x3e30c205562095df
movabs r11, 0x9f2bd4ea167c76f6
movabs rbx, 0xfbefcf8ed6adb88
vmovq xmm3, r8
vmovq xmm5, rsi
movabs rdx, 0x3bbd403f8a4eb981
movabs rbp, 0x5b43b1602450b5b1
vpinsrq xmm2, xmm5, r11, 1
vpinsrq xmm4, xmm3, rbx, 1
movabs r9, 0xf05fa09f745c1385
movabs r10, 0xfbefcf8ed6adbec
vinserti128 ymm0, ymm2, xmm4, 1
vmovq xmm4, rdx
sub rdi, 0xffffffffffffff80
vmovq xmm1, rbp
vpinsrq xmm5, xmm4, r9, 1
vpinsrq xmm3, xmm1, r10, 1
vinserti128 ymm2, ymm5, xmm3, 1
vpxor ymm0, ymm0, ymm2
vmovdqu ymmword [rdi], ymm0
mov rcx, rdi
vzeroupper
call sub.msvcrt.dll_strlen
mov rdx, rdi
mov rdi, qword [0x1400ea160]
mov r8, rax
mov rcx, rdi
call fcn.1400d2ef0
mov rax, qword [rdi]
mov rcx, qword [rax - 0x18]
mov rbp, qword [rcx + rdi + 0xf0]
test rbp, rbp
je 0x1400208ed
cmp byte [rbp + 0x38], 0
je 0x140020858
movsx edx, byte [rbp + 0x43]
mov rcx, rdi
mov ebx, 1
call fcn.14008aa40
mov rcx, rax
call fcn.14008ac20
mov eax, ebx
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
ret
movabs rdx, 0x4ed22d1ffe28dccd
movabs r8, 0x3e30c205562095df
movabs r11, 0x9f2bd4ea167c76f6
movabs rax, 0xfbefcf8ed6adb88
vmovq xmm2, rdx
vmovq xmm4, r8
movabs rbp, 0x21bf0d6b964fb59f
movabs rcx, 0x4d43a7772600fbb0
vpinsrq xmm1, xmm2, r11, 1
vpinsrq xmm5, xmm4, rax, 1
movabs rsi, 0xeb5fa18836190583
movabs r10, 0xfbefcf8ed6abfed
vinserti128 ymm0, ymm1, xmm5, 1
add rdi, 0x60
vmovq xmm5, rbp
vmovq xmm3, rcx
vpinsrq xmm4, xmm3, r10, 1
vpinsrq xmm2, xmm5, rsi, 1
vinserti128 ymm1, ymm2, xmm4, 1
vpxor ymm0, ymm0, ymm1
vmovdqu ymmword [rdi], ymm0
mov rcx, rdi
vzeroupper
call sub.msvcrt.dll_strlen
mov rdx, rdi
mov rdi, qword [0x1400ea160]
mov r8, rax
mov rcx, rdi
call fcn.1400d2ef0
mov r9, qword [rdi]
mov rbx, qword [r9 - 0x18]
mov rbp, qword [rbx + rdi + 0xf0]
test rbp, rbp
je 0x1400208ed
cmp byte [rbp + 0x38], 0
je 0x14002088a
movsx edx, byte [rbp + 0x43]
mov rcx, rdi
mov ebx, 2
call fcn.14008aa40
mov rcx, rax
call fcn.14008ac20
mov eax, ebx
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
ret
movabs rax, 0x4ed22d1ffe28dccd
movabs r8, 0x3e30c205562095df
movabs rdx, 0x23f248739a4cb580
movabs rcx, 0x4d55b075764efaab
vmovq xmm3, r8
vmovq xmm2, rax
movabs r11, 0x9f2bd4ea167c76f6
movabs rsi, 0xfbefcf8ed6adb88
vmovq xmm5, rdx
vpinsrq xmm0, xmm2, r11, 1
movabs r9, 0xeb5eb6ca730f0399
movabs r10, 0xfbefcf8ed0ebefb
vmovq xmm4, rcx
vpinsrq xmm1, xmm3, rsi, 1
add rdi, 0x40
vinserti128 ymm3, ymm0, xmm1, 1
vpinsrq xmm2, xmm4, r10, 1
vpinsrq xmm1, xmm5, r9, 1
vinserti128 ymm0, ymm1, xmm2, 1
vpxor ymm3, ymm3, ymm0
vmovdqu ymmword [rdi], ymm3
mov rcx, rdi
vzeroupper
call sub.msvcrt.dll_strlen
mov rdx, rdi
mov rdi, qword [0x1400ea160]
mov r8, rax
mov rcx, rdi
call fcn.1400d2ef0
mov rbx, qword [rdi]
mov rbp, qword [rbx - 0x18]
mov rsi, qword [rbp + rdi + 0xf0]
test rsi, rsi
je 0x1400208ed
cmp byte [rsi + 0x38], 0
je 0x1400208bc
movsx edx, byte [rsi + 0x43]
mov rcx, rdi
mov ebx, 4
call fcn.14008aa40
mov rcx, rax
call fcn.14008ac20
mov eax, ebx
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
ret
movsx edx, bl
mov rcx, rbp
call fcn.14008aa40
jmp 0x14001ff1b
mov rcx, rsi
call fcn.14003ce70
mov r10, qword [rsi]
lea r8, [0x14003d660]
mov edx, 0xa
mov rdi, qword [r10 + 0x30]
cmp rdi, r8
je 0x14001ff42
mov rcx, rsi
call rdi
movsx edx, al
jmp 0x14001ff42
mov rcx, rbp
call fcn.14003ce70
mov rdx, qword [rbp]
lea r9, [0x14003d660]
mov rax, qword [rdx + 0x30]
mov edx, 0xa
cmp rax, r9
je 0x14002003d
mov rcx, rbp
call rax
movsx edx, al
jmp 0x14002003d
mov rcx, rbp
call fcn.14003ce70
mov rsi, qword [rbp]
lea r11, [0x14003d660]
mov edx, 0xa
mov rbx, qword [rsi + 0x30]
cmp rbx, r11
je 0x14002013f
mov rcx, rbp
call rbx
movsx edx, al
jmp 0x14002013f
mov rcx, rsi
call fcn.14003ce70
mov r11, qword [rsi]
lea r8, [0x14003d660]
mov edx, 0xa
mov rax, qword [r11 + 0x30]
cmp rax, r8
je 0x140020243
mov rcx, rsi
call rax
movsx edx, al
jmp 0x140020243
mov rcx, rbx
call fcn.14003ce70
mov r9, qword [rbx]
lea r11, [0x14003d660]
mov edx, 0xa
mov rbp, qword [r9 + 0x30]
cmp rbp, r11
je 0x14002032e
mov rcx, rbx
call rbp
movsx edx, al
jmp 0x14002032e
mov rcx, rsi
call fcn.14003ce70
mov rdx, qword [rsi]
lea r9, [0x14003d660]
mov rbx, qword [rdx + 0x30]
mov edx, 0xa
cmp rbx, r9
je 0x1400203f1
mov rcx, rsi
call rbx
movsx edx, al
jmp 0x1400203f1
mov rcx, rbp
call fcn.14003ce70
mov rdx, qword [rbp]
lea r9, [0x14003d660]
mov rsi, qword [rdx + 0x30]
mov edx, 0xa
cmp rsi, r9
je 0x1400204fa
mov rcx, rbp
call rsi
movsx edx, al
jmp 0x1400204fa
mov rcx, rbp
call fcn.14003ce70
mov rsi, qword [rbp]
lea rcx, [0x14003d660]
mov edx, 0xa
mov rax, qword [rsi + 0x30]
cmp rax, rcx
je 0x1400205fa
mov rcx, rbp
call rax
movsx edx, al
jmp 0x1400205fa
mov rcx, rsi
call fcn.14003ce70
mov rdx, qword [rsi]
lea r9, [0x14003d660]
mov rax, qword [rdx + 0x30]
mov edx, 0xa
cmp rax, r9
je 0x1400206fa
mov rcx, rsi
call rax
movsx edx, al
jmp 0x1400206fa
call fcn.1400de720
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push rdi
push rsi
push rbx
sub rsp, 0x50
mov r8d, 0x12
mov rbx, rcx
mov rsi, rdx
call fcn.1400209e0
mov r8d, 0x10
mov edi, eax
mov rdx, rsi
mov rcx, rbx
call fcn.1400209e0
cmp edi, 2
jg 0x140020940
cmp eax, 3
jg 0x140020940
add rsp, 0x50
pop rbx
pop rsi
pop rdi
ret
mov dword [rsp + 0x40], 0x19
mov dword [rsp + 0x38], 0xec
mov dword [rsp + 0x30], 0xc8
mov r9d, 0xfa
mov dword [rsp + 0x28], 0xec
mov dword [rsp + 0x20], 0xc8
mov r8d, 0xc8
mov rdx, rsi
mov rcx, rbx
call fcn.140020c60
cmp eax, 3
jg 0x140020935
mov rdx, rsi
mov rcx, rbx
call fcn.140020e90
test eax, eax
jg 0x140020935
mov rbx, qword [sym.imp.USER32.dll_keybd_event]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0x4f
call rbx
mov ecx, 1
call qword [sym.imp.KERNEL32.DLL_Sleep]
xor r9d, r9d
mov r8d, 2
xor edx, edx
mov ecx, 0x4f
mov rax, rbx
add rsp, 0x50
pop rbx
pop rsi
pop rdi
jmp rax