Function at 0x180016d40
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbp
push rbx
push rdi
push r13
push r14
push r15
lea rbp, [r11 - 0x48]
sub rsp, 0x118
mov r14, qword [0x1801aeab8]
mov rdi, r8
movaps xmmword [r11 - 0x58], xmm7
mov r13, rcx
movaps xmmword [r11 - 0x68], xmm8
movaps xmmword [r11 - 0x78], xmm9
mov rax, qword [r14 + 0x1af0]
movaps xmmword [r11 - 0x88], xmm10
movaps xmmword [r11 - 0x98], xmm11
movaps xmmword [r11 - 0xa8], xmm12
mov byte [rax + 0x80], 1
mov rbx, qword [r14 + 0x1af0]
movaps xmmword [r11 - 0xb8], xmm13
movaps xmmword [r11 - 0xc8], xmm14
mov qword [rsp + 0x48], r14
cmp byte [rbx + 0x83], 0
jne 0x180017964
movsxd rax, dword [rbx + 0xc0]
xor edx, edx
mov r8, qword [rbx + 0xc8]
movaps xmmword [r11 - 0x48], xmm6
mov r8d, dword [r8 + rax*4 - 4]
call fcn.180026140
mov r15d, eax
mov dword [rbp + 0x58], eax
cmp dword [r14 + 0x1b38], eax
jne 0x180016dff
mov dword [r14 + 0x1b3c], eax
cmp dword [r14 + 0x1b78], r15d
jne 0x180016e10
mov byte [r14 + 0x1b7c], 1
mov rcx, r13
cmp r13, 0xffffffffffffffff
jae 0x180016e3d
nop dword [rax]
movzx edx, byte [rcx]
test dl, dl
je 0x180016e3d
lea rax, [rcx + 1]
cmp dl, 0x23
jne 0x180016e34
cmp byte [rax], dl
je 0x180016e3d
mov rcx, rax
cmp rax, 0xffffffffffffffff
jb 0x180016e20
movss xmm1, dword [r14 + 0x19a8]
xorps xmm11, xmm11
cmp r13, rcx
jne 0x180016e55
xorps xmm14, xmm14
jmp 0x180016e9f
movss xmm0, dword [0x18008ca64]
lea rdx, [rbp + 0x68]
mov qword [rsp + 0x30], rcx
movaps xmm2, xmm1
mov rcx, qword [r14 + 0x19a0]
mov qword [rsp + 0x28], r13
movss dword [rsp + 0x20], xmm0
call fcn.1800450d0
movss xmm0, dword [rbp + 0x68]
addss xmm0, dword [0x18008c8b8]
movss xmm1, dword [rbp + 0x6c]
cvttss2si eax, xmm0
movd xmm14, eax
cvtdq2ps xmm14, xmm14
movss xmm3, dword [r14 + 0x1594]
mulss xmm3, dword [0x18008c928]
addss xmm3, xmm1
call fcn.180030a50
mov rdx, qword [rdi]
lea rcx, [rbp + 0x68]
movaps xmm2, xmm0
call fcn.180030ac0
movss xmm6, dword [rbx + 0xd0]
lea rcx, [rsp + 0x68]
movss xmm9, dword [rbx + 0xd4]
movaps xmm12, xmm6
movdqa xmm0, xmmword [0x18008cc10]
movaps xmm13, xmm9
addss xmm12, dword [rbp + 0x68]
addss xmm13, dword [rbp + 0x6c]
movaps xmm10, xmm14
movss dword [rsp + 0x58], xmm6
addss xmm10, dword [r14 + 0x15a8]
movss dword [rsp + 0x5c], xmm9
movss dword [rsp + 0x60], xmm12
movss dword [rsp + 0x64], xmm13
movups xmmword [rsp + 0x68], xmm0
addss xmm10, xmm6
call fcn.180027300
movss xmm0, dword [r14 + 0x1598]
movaps xmm7, xmm12
unpcklps xmm7, xmm13
movaps xmm8, xmm10
unpcklps xmm8, xmm9
movq rdx, xmm7
movq rcx, xmm8
movss dword [rsp + 0x20], xmm0
mov r8d, eax
movsd qword [rsp + 0x70], xmm7
mov r9b, 1
movsd qword [rsp + 0x68], xmm8
call fcn.180027a00
movaps xmm1, xmm13
lea rcx, [rsp + 0x40]
subss xmm1, xmm9
movaps xmm0, xmm12
subss xmm0, xmm6
movss dword [rsp + 0x44], xmm1
movss xmm1, dword [r14 + 0x1594]
movss dword [rsp + 0x40], xmm0
call fcn.180028be0
xor r8d, r8d
lea rcx, [rsp + 0x58]
mov edx, r15d
call fcn.180028d00
movaps xmm6, xmmword [rsp + 0x100]
test al, al
je 0x180017964
mov qword [rsp + 0x160], rsi
mov rcx, rbx
xor esi, esi
mov qword [rsp + 0x110], r12
cmp dword [r14 + 0x1b38], r15d
mov edx, esi
sete dl
call fcn.180029060
mov edx, r15d
lea rcx, [rsp + 0x68]
movzx edi, al
call fcn.180028f20
test al, al
je 0x18001703e
mov rcx, qword [0x1801aeab8]
mov dword [rcx + 0x1b24], r15d
mov byte [rcx + 0x1b28], sil
test r15d, r15d
je 0x180017026
cmp dword [rcx + 0x1b2c], r15d
je 0x180017026
mov qword [rcx + 0x1b30], rsi
mov dword [r14 + 0x1f78], 1
cmp byte [r14 + 0x420], sil
je 0x18001703e
mov al, 1
jmp 0x180017040
xor al, al
test dil, dil
jne 0x180017062
test al, al
jne 0x180017062
cmp byte [r14 + 0x420], sil
je 0x1800170a8
cmp dword [r14 + 0x1b38], r15d
jne 0x1800170a8
call fcn.180028b30
jmp 0x1800170a8
cmp dword [r14 + 0x1b38], r15d
je 0x180017095
xor eax, eax
lea rcx, [r14 + 0x14c]
mov dword [r14 + 0x138], eax
xor edx, edx
mov r8d, 0x200
mov byte [r14 + 0x13c], al
call sub.VCRUNTIME140.dll_memset
mov dword [0x1801ad72c], esi
mov rdx, rbx
mov ecx, r15d
call fcn.180028a60
mov rcx, rbx
call fcn.1800306a0
mov ebx, dword [0x1801ad72c]
xor r12b, r12b
cmp dword [r14 + 0x1b38], r15d
jne 0x180017329
mov edi, esi
mov r15d, 5
lea rsi, [r14 + 0x138]
mov r13d, 6
cmp byte [rsi], 0
jne 0x180017103
mov ecx, r15d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x180017103
mov ecx, r13d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x180017103
mov rdx, qword [0x1801aeab8]
xor r10d, r10d
jmp 0x1800171a5
mov ecx, edi
test edi, edi
je 0x180017121
sub ecx, 1
je 0x18001711a
cmp ecx, 1
jne 0x180017126
mov ebx, 4
jmp 0x180017126
mov ebx, 2
jmp 0x180017126
mov ebx, 1
mov ecx, r13d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, r15d
cmovne ebx, r13d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rdx, qword [0x1801aeab8]
mov r12b, 1
test ax, ax
cmovne ebx, r15d
mov ecx, dword [rdx + 0x1b38]
test ecx, ecx
setne al
xor r10d, r10d
mov byte [rdx + 0x1b44], al
test ecx, ecx
je 0x180017177
mov dword [rdx + 0x1b40], r10d
mov word [rdx + 0x1b46], r10w
mov dword [rdx + 0x1b38], r10d
mov byte [rdx + 0x1b45], 0
mov qword [rdx + 0x1b68], r10
mov byte [rdx + 0x1b48], 0
mov qword [rdx + 0x1b4c], 0
mov qword [rdx + 0x1b58], r10
inc edi
inc rsi
cmp edi, r13d
jle 0x1800170d3
mov r15d, dword [rbp + 0x58]
mov r13, qword [rbp + 0x50]
test r12b, r12b
jne 0x1800172a6
mov r8d, 8
lea r9, [r14 + 0x155]
cmp byte [r9 - 1], 0
je 0x180017231
mov ecx, dword [rdx + 0x1b38]
mov ebx, r8d
test ecx, ecx
mov r12b, 1
setne al
mov byte [rdx + 0x1b44], al
test ecx, ecx
je 0x180017203
mov dword [rdx + 0x1b40], r10d
mov word [rdx + 0x1b46], 0
mov dword [rdx + 0x1b38], r10d
mov byte [rdx + 0x1b45], 0
mov qword [rdx + 0x1b68], r10
mov byte [rdx + 0x1b48], 0
mov qword [rdx + 0x1b4c], 0
mov qword [rdx + 0x1b58], r10
cmp byte [r9], 0
je 0x180017291
mov ecx, dword [rdx + 0x1b38]
lea ebx, [r8 + 1]
test ecx, ecx
mov r12b, 1
setne al
mov byte [rdx + 0x1b44], al
test ecx, ecx
je 0x180017263
mov dword [rdx + 0x1b40], r10d
mov word [rdx + 0x1b46], 0
mov dword [rdx + 0x1b38], r10d
mov byte [rdx + 0x1b45], 0
mov qword [rdx + 0x1b68], r10
mov byte [rdx + 0x1b48], 0
mov qword [rdx + 0x1b4c], 0
mov qword [rdx + 0x1b58], r10
add r8d, 2
add r9, 2
cmp r8d, 0xa5
jle 0x1800171d1
movsxd rax, dword [rdx + 0x74]
test eax, eax
js 0x180017323
movss xmm0, dword [rdx + rax*4 + 0x4a0]
ucomiss xmm0, xmm11
jne 0x1800172c1
mov al, 1
jmp 0x1800172c3
xor al, al
test al, al
je 0x180017323
mov dword [0x1801ad72c], r10d
mov ecx, dword [rdx + 0x1b38]
test ecx, ecx
setne al
mov byte [rdx + 0x1b44], al
test ecx, ecx
je 0x1800172f3
mov dword [rdx + 0x1b40], r10d
mov word [rdx + 0x1b46], 0
mov dword [rdx + 0x1b38], r10d
mov byte [rdx + 0x1b45], 0
mov qword [rdx + 0x1b68], r10
mov byte [rdx + 0x1b48], 0
mov qword [rdx + 0x1b4c], 0
mov qword [rdx + 0x1b58], r10
jmp 0x180017329
mov dword [0x1801ad72c], ebx
movdqa xmm0, xmmword [0x18008cc20]
lea rcx, [rsp + 0x68]
movups xmmword [rsp + 0x68], xmm0
lea rdi, str.None
call fcn.180027300
movss xmm0, dword [r14 + 0x1598]
mov r8d, eax
mov r9b, 1
movss dword [rsp + 0x20], xmm0
movq rdx, xmm7
movq rcx, xmm8
call fcn.180027a00
mov eax, dword [0x1801ad72c]
test eax, eax
je 0x1800176e0
cmp dword [r14 + 0x1b38], r15d
je 0x1800176ed
dec eax
cmp eax, 0x9f
ja case.0x1800173ae.3
lea rdx, [0x180000000]
cdqe
movzx eax, byte [rdx + rax + 0x17abc]
mov ecx, dword [rdx + rax*4 + 0x179ac]
add rcx, rdx
jmp rcx
lea rdi, str.control
jmp 0x18001782a
lea rdi, str.shift
jmp 0x18001782a
lea rdi, [0x180060868]
jmp 0x18001782a
lea rdi, [0x18006086c]
jmp 0x18001782a
lea rdi, str.mouse_1
jmp 0x18001782a
lea rdi, str.mouse_2
jmp 0x18001782a
lea rdi, str.mouse_3
jmp 0x18001782a
lea rdi, str.mouse_4
jmp 0x18001782a
lea rdi, str.mouse_5
jmp 0x18001782a
lea rdi, str.page_up
jmp 0x18001782a
lea rdi, str.page_down
jmp 0x18001782a
lea rdi, [0x1800608ac]
jmp 0x18001782a
lea rdi, str.home
jmp 0x18001782a
lea rdi, str.left_arrow
jmp 0x18001782a
lea rdi, str.up_arrow
jmp 0x18001782a
lea rdi, str.right_arrow
jmp 0x18001782a
lea rdi, str.down_arrow
jmp 0x18001782a
lea rdi, str.insert
jmp 0x18001782a
lea rdi, str.delete
jmp 0x18001782a
lea rdi, str.abcdefghijklmnopqrstuvwxyz
jmp 0x18001782a
lea rdi, [0x180060908]
jmp 0x18001782a
lea rdi, [0x18006090c]
jmp 0x18001782a
lea rdi, [0x180060910]
jmp 0x18001782a
lea rdi, [0x180060914]
jmp 0x18001782a
lea rdi, [0x180060918]
jmp 0x18001782a
lea rdi, [0x18006091c]
jmp 0x18001782a
lea rdi, [0x180060920]
jmp 0x18001782a
lea rdi, [0x180060924]
jmp 0x18001782a
lea rdi, [0x180060928]
jmp 0x18001782a
lea rdi, [0x18006092c]
jmp 0x18001782a
lea rdi, [0x180060930]
jmp 0x18001782a
lea rdi, [0x180060934]
jmp 0x18001782a
lea rdi, [0x180060938]
jmp 0x18001782a
lea rdi, [0x18006093c]
jmp 0x18001782a
lea rdi, [0x180060940]
jmp 0x18001782a
lea rdi, [0x180060944]
jmp 0x18001782a
lea rdi, [0x180060948]
jmp 0x18001782a
lea rdi, [0x18006094c]
jmp 0x18001782a
lea rdi, [0x180060950]
jmp 0x18001782a
lea rdi, [0x180060954]
jmp 0x18001782a
lea rdi, [0x180060958]
jmp 0x18001782a
lea rdi, [0x18006095c]
jmp 0x18001782a
lea rdi, [0x180060960]
jmp 0x18001782a
lea rdi, [0x180060964]
jmp 0x18001782a
lea rdi, [0x180060968]
jmp 0x18001782a
lea rdi, str.numpad_0
jmp 0x18001782a
lea rdi, str.numpad_1
jmp 0x18001782a
lea rdi, str.numpad_2
jmp 0x18001782a
lea rdi, str.numpad_3
jmp 0x18001782a
lea rdi, str.numpad_4
jmp 0x18001782a
lea rdi, str.numpad_5
jmp 0x18001782a
lea rdi, str.numpad_6
jmp 0x18001782a
lea rdi, str.numpad_7
jmp 0x18001782a
lea rdi, str.numpad_8
jmp 0x18001782a
lea rdi, str.numpad_9
jmp 0x18001782a
lea rdi, [0x180060a0c]
jmp 0x18001782a
lea rdi, [0x180060a10]
jmp 0x18001782a
lea rdi, [0x180060a14]
jmp 0x18001782a
lea rdi, [0x180060a18]
jmp 0x18001782a
lea rdi, [0x180060a1c]
jmp 0x18001782a
lea rdi, [0x180060a20]
jmp 0x18001782a
lea rdi, [0x180060a24]
jmp 0x18001782a
lea rdi, [0x180060a28]
jmp 0x18001782a
lea rdi, [0x180060a2c]
jmp 0x18001782a
lea rdi, [0x180060a30]
jmp 0x18001782a
lea rdi, [0x180060a34]
jmp 0x18001782a
lea rdi, [0x180060a38]
jmp 0x18001782a
lea rdi, str.unknown
jmp 0x18001782a
cmp dword [r14 + 0x1b38], r15d
jne 0x18001782a
lea rcx, [rbp + 0x58]
lea rdi, str.Press
call fcn.180006700
mov rbx, qword [rbp + 0x58]
movabs rax, 0x7ffffffffb3b4bff
cmp rbx, rax
jge 0x180017719
add rbx, 0x4c4b400
jmp 0x180017723
movabs rbx, 0x7fffffffffffffff
movabs r15, 0xb2f4fc0794908cf3
movabs r13, 0x4e94914f0000
movabs r14, 0x431bde82d7b634db
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rsi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
mov rcx, rax
cmp rsi, 0x989680
jne 0x180017762
imul rax, rcx, 0x64
jmp 0x1800177d3
cmp rsi, 0x16e3600
jne 0x1800177b5
mov rax, r15
imul rcx
lea r8, [rcx + rdx]
sar r8, 0x18
mov rax, r8
shr rax, 0x3f
add r8, rax
imul rax, r8, 0x16e3600
sub rcx, rax
mov rax, r15
imul rcx, rcx, 0x3b9aca00
imul rcx
lea rax, [rcx + rdx]
sar rax, 0x18
mov rcx, rax
shr rcx, 0x3f
add rax, rcx
imul rcx, r8, 0x3b9aca00
jmp 0x1800177d0
cqo
idiv rsi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rsi
imul rcx, rcx, 0x3b9aca00
add rax, rcx
cmp rax, rbx
jge 0x180017821
mov rcx, rbx
sub rcx, rax
cmp rcx, r13
jl 0x1800177f2
mov ecx, 0x5265c00
call sub.api_ms_win_core_synch_l1_2_0.dll_Sleep
jmp 0x180017741
mov rax, r14
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xf4240
cmp rax, rcx
jge 0x180017815
inc rdx
mov ecx, edx
call sub.api_ms_win_core_synch_l1_2_0.dll_Sleep
jmp 0x180017741
mov r14, qword [rsp + 0x48]
mov r13, qword [rbp + 0x50]
movss dword [rsp + 0x48], xmm10
movaps xmm0, xmm10
movss dword [rsp + 0x4c], xmm9
movaps xmm1, xmm9
mov rsi, rdi
addss xmm0, dword [rbp + 0x68]
addss xmm1, dword [rbp + 0x6c]
movss dword [rsp + 0x50], xmm0
movss xmm0, dword [r14 + 0x1590]
movss dword [rsp + 0x54], xmm1
subss xmm12, xmm0
movss xmm1, dword [r14 + 0x1594]
addss xmm10, xmm0
subss xmm13, xmm1
movaps xmm0, xmm9
addss xmm0, xmm1
movss dword [rbp + 0x68], xmm12
movss dword [rbp + 0x58], xmm10
movss dword [rbp + 0x6c], xmm13
movss dword [rbp + 0x5c], xmm0
cmp rdi, 0xffffffffffffffff
jae 0x1800178bd
nop
movzx ecx, byte [rsi]
test cl, cl
je 0x1800178bd
lea rax, [rsi + 1]
cmp cl, 0x23
jne 0x1800178b4
cmp byte [rax], cl
je 0x1800178bd
mov rsi, rax
cmp rax, 0xffffffffffffffff
jb 0x1800178a0
cmp esi, edi
je 0x180017922
mov rbx, qword [0x1801aeab8]
lea rdx, [rsp + 0x48]
mov qword [rsp + 0x38], rdx
lea rax, [r14 + 0x15dc]
mov qword [rsp + 0x30], rax
lea r8, [rbp + 0x68]
mov qword [rsp + 0x28], 0
lea rdx, [rbp + 0x58]
mov rcx, qword [rbx + 0x1af0]
mov r9, rdi
mov qword [rsp + 0x20], rsi
mov rcx, qword [rcx + 0x2b0]
call fcn.180027570
cmp byte [rbx + 0x3008], 0
je 0x180017922
mov r8, rsi
lea rcx, [rbp + 0x58]
mov rdx, rdi
call fcn.1800367b0
comiss xmm14, xmm11
mov rsi, qword [rsp + 0x160]
jbe 0x180017956
addss xmm9, dword [r14 + 0x1594]
movss xmm0, dword [rsp + 0x58]
mov r9b, 1
xor r8d, r8d
mov rdx, r13
unpcklps xmm0, xmm9
movq rcx, xmm0
call fcn.1800273e0
movzx eax, r12b
mov r12, qword [rsp + 0x110]
jmp 0x180017966
xor al, al
lea r11, [rsp + 0x118]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
movaps xmm13, xmmword [r11 - 0x88]
movaps xmm14, xmmword [r11 - 0x98]
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rbx
pop rbp
ret