Function at 0x140022440
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rsi
mov qword [r11 + 0x18], rdi
mov qword [r11 + 0x20], r12
push r13
push r14
push r15
sub rsp, 0x220
mov rax, qword [0x14011f060]
xor rax, rsp
mov qword [rsp + 0x210], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x1a8], xmm0
lea r14, [rsp + 0x238]
movabs r12, 0xff00ff00ff00ff00
mov qword [r11 - 0x88], r12
mov qword [r11 - 0x80], r14
mov rax, qword [r14]
xor rax, r12
mov qword [r11 - 0x90], rax
xor r13d, r13d
mov qword [r14], r13
mov rcx, qword [0x140128560]
call fcn.140013710
mov rdi, rax
cmp byte [0x1401271e8], r13b
je 0x14002250a
mov rdx, qword [0x140128560]
add rdx, 0x8f8
call fcn.14003f960
cmp eax, 4
je 0x140022501
mov dword [rsp + 0x38], 4
mov rdx, qword [0x140128560]
add rdx, 0x8f8
lea r9d, [r13 + 4]
lea r8, [rsp + 0x38]
call fcn.140011640
mov byte [0x140128397], 1
jmp 0x140022555
cmp byte [0x140128397], 0
je 0x140022555
mov rdx, qword [0x140128560]
add rdx, 0x8f8
call fcn.14003f960
cmp eax, 4
jne 0x14002254e
mov dword [rsp + 0x38], 1
mov rdx, qword [0x140128560]
add rdx, 0x8f8
mov r9d, eax
lea r8, [rsp + 0x38]
call fcn.140011640
mov byte [0x140128397], 0
cmp byte [0x1401271e2], 0
je 0x1400225fe
movd xmm0, dword [0x14012839c]
cvtdq2ps xmm0, xmm0
ucomiss xmm0, dword [0x1401271e4]
jp 0x14002257c
je 0x1400225fe
mov qword [rsp + 0x60], 0x3ac4730
mov qword [rsp + 0x68], 0xb8
mov ecx, reloc.WS2_32.dll_recv
call fcn.1400e2620
mov qword [rsp + 0xe0], rax
lea rbx, [rax + 0x10]
mov qword [rsp + 0xf0], rbx
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rsp + 0x60]
mov rcx, rax
call sub.VCRUNTIME140.dll_memmove
mov qword [rsp + 0xe8], rbx
lea r8, [rsp + 0xe0]
mov rdx, qword [0x140128520]
call fcn.14003fe90
mov r9d, 4
lea r8, [0x1401271e4]
mov rdx, rax
call fcn.140011640
cvttss2si eax, dword [0x1401271e4]
mov dword [0x14012839c], eax
cmp byte [0x1401271ee], 0
je 0x14002262c
mov dword [rsp + 0x178], 0
lea rdx, [rdi + 0xd0]
mov r9d, 4
lea r8, [rsp + 0x178]
call fcn.140011640
cmp byte [0x1401271ed], 0
je 0x140022646
mov byte [0x140128396], 1
movss xmm0, dword [0x14010a860]
jmp 0x14002265e
cmp byte [0x140128396], 0
je 0x140022681
mov byte [0x140128396], 0
movss xmm0, dword [0x14010a87c]
movss dword [rsp + 0x150], xmm0
mov r9d, 4
lea r8, [rsp + 0x150]
lea rdx, [rdi + 0x8c]
call fcn.140011640
cmp byte [0x14012722a], 0
je 0x14002277a
movss xmm0, dword [0x140127158]
ucomiss xmm0, dword [0x140127148]
jp 0x1400226cb
jne 0x1400226cb
movss xmm0, dword [0x14012715c]
ucomiss xmm0, dword [0x14012714c]
jp 0x1400226cb
jne 0x1400226cb
movss xmm0, dword [0x140127160]
ucomiss xmm0, dword [0x140127150]
jp 0x1400226cb
je 0x14002277a
mov rdx, qword [0x140128520]
add rdx, 0x3a8d358
call fcn.14003f960
lea rdx, [rax + 0xb8]
call fcn.14003f960
mov rdx, rax
call fcn.14003f960
lea rdx, [rax + 0x10]
call fcn.14003f960
lea rdx, [rax + 0x20]
call fcn.14003f960
mov rbx, rax
test rax, rax
je 0x14002277a
lea rdx, [rax + 0x50]
call fcn.14003f960
lea rdx, [rax + 0x28]
call fcn.14003f960
lea rdx, [rax + 0x10]
call fcn.14003f960
mov r9d, reloc.WS2_32.dll_recv
lea r8, [0x140127148]
mov rdx, rax
call fcn.140011640
lea rdx, [rbx + 0x58]
call fcn.14003f960
lea rdx, [rax + 0x28]
call fcn.14003f960
lea rdx, [rax + 0x10]
call fcn.14003f960
mov r9d, reloc.WS2_32.dll_recv
lea r8, [0x140127148]
mov rdx, rax
call fcn.140011640
movups xmm0, xmmword [0x140127148]
movups xmmword [0x140127158], xmm0
mov ecx, dword [0x1401270f8]
call qword [sym.imp.USER32.dll_GetKeyState]
shr ax, 0xf
and al, 1
mov byte [0x1401270e9], al
cmp byte [0x1401271ec], 0
je 0x140022849
mov ecx, dword [0x1401270fc]
call qword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x140022849
mov qword [rsp + 0x1c0], 0x3a87040
mov qword [rsp + 0x1c8], 0xb8
mov ecx, reloc.WS2_32.dll_recv
call fcn.1400e2620
mov qword [rsp + 0x40], rax
lea rbx, [rax + 0x10]
mov qword [rsp + 0x50], rbx
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rsp + 0x1c0]
mov rcx, rax
call sub.VCRUNTIME140.dll_memmove
mov qword [rsp + 0x48], rbx
lea r8, [rsp + 0x40]
mov rdx, qword [0x140128520]
call fcn.14003fe90
movss xmm0, dword [0x14010a920]
movss dword [rsp + 0x90], xmm0
lea rdx, [rax + 0x18]
mov r9d, 4
lea r8, [rsp + 0x90]
call fcn.140011640
mov dword [0x140128398], 0x1e
jmp 0x1400228e3
movd xmm0, dword [0x140128398]
cvtdq2ps xmm0, xmm0
ucomiss xmm0, dword [0x14011f0dc]
jp 0x140022863
je 0x1400228e3
mov qword [rsp + 0x1c0], 0x3a87040
mov qword [rsp + 0x1c8], 0xb8
mov ecx, reloc.WS2_32.dll_recv
call fcn.1400e2620
lea rbx, [rax + 0x10]
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x40], rax
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rsp + 0x1c0]
mov rcx, rax
call sub.VCRUNTIME140.dll_memmove
mov qword [rsp + 0x48], rbx
lea r8, [rsp + 0x40]
mov rdx, qword [0x140128520]
call fcn.14003fe90
mov r9d, 4
lea r8, [0x14011f0dc]
lea rdx, [rax + 0x18]
call fcn.140011640
cvttss2si eax, dword [0x14011f0dc]
mov dword [0x140128398], eax
mov rcx, qword [0x140128560]
call fcn.1400137b0
mov rdi, rax
cmp byte [0x1401271f0], 0
je 0x14002293d
mov rcx, qword [0x140128560]
call fcn.140013670
mov rbx, rax
test rax, rax
je 0x14002293d
mov rcx, rdi
call fcn.140012450
test al, al
je 0x14002293d
mov byte [rsp + 0x128], 1
lea rdx, [rbx + 0x3b0]
mov r9d, 1
lea r8, [rsp + 0x128]
call fcn.140011640
mov rcx, qword [0x140128560]
call fcn.140013aa0
mov rdi, rax
test rax, rax
je 0x1400232bd
lea rdx, [rsp + 0x158]
mov rcx, rax
call fcn.140013300
nop
mov rsi, qword [rsp + 0x168]
test rsi, rsi
je 0x1400232af
movabs rcx, 0x7ffffffffffffffe
mov r14d, 7
cmp byte [0x140127110], 0
je 0x140022b24
mov qword [rsp + 0x70], r13
mov qword [rsp + 0x80], r13
mov qword [rsp + 0x88], r13
lea r15, [rsp + 0x158]
cmp qword [rsp + 0x170], 8
cmovae r15, qword [rsp + 0x158]
cmp rsi, 8
jae 0x1400229d7
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x70], xmm0
mov ebx, r14d
jmp 0x140022a05
mov rbx, rsi
or rbx, r14
cmp rbx, rcx
cmova rbx, rcx
lea rdx, [rbx + 1]
call fcn.14000a310
mov qword [rsp + 0x70], rax
lea r8, [rsi*2 + 2]
mov rdx, r15
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x88], rbx
lea rcx, [rsp + 0x70]
call fcn.1400207a0
movzx ebx, al
mov rcx, rdi
call fcn.140013260
mov rsi, rax
test bl, bl
je 0x140022b24
lea rdx, [rax + 0x2a8]
call fcn.14003fd60
movss xmm1, dword [0x14010a888]
comiss xmm1, xmm0
jbe 0x140022b24
mov dword [rsp + 0x180], 0x40400000
mov r9d, 4
lea r8, [rsp + 0x180]
lea rdx, [rsi + 0x2a8]
call fcn.140011640
mov dword [rsp + 0x120], 0x3f800000
lea rdx, [rsi + 0x2ac]
mov r9d, 4
lea r8, [rsp + 0x120]
call fcn.140011640
mov byte [rsp + 0x130], 0
lea rdx, [rsi + 0x2b1]
mov r9d, 1
lea r8, [rsp + 0x130]
call fcn.140011640
mov byte [rsp + 0x138], 0
lea rdx, [rsi + 0x2eb]
mov r9d, 1
lea r8, [rsp + 0x138]
call fcn.140011640
mov byte [rsp + 0x140], 1
lea rdx, [rsi + 0x2a0]
mov r9d, 1
lea r8, [rsp + 0x140]
call fcn.140011640
mov byte [rsp + 0x118], 1
lea rdx, [rsi + 0x2e8]
mov r9d, 1
lea r8, [rsp + 0x118]
call fcn.140011640
lea rdx, [rsp + 0xf8]
mov rcx, rdi
call fcn.140013300
mov rcx, rax
call fcn.140011800
test al, al
je 0x1400232a7
mov rcx, rdi
call fcn.140013260
mov rbx, rax
test rax, rax
je 0x1400232a7
movabs rsi, 0x8fbdb4b62b167486
mov rdi, 0xffffffffffffffff
movabs r15, 0x69e2d9335502b719
cmp byte [0x14012711c], 0
je 0x140022e8a
movabs rax, 0x69ccd944556db77b
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0xa0], rcx
movabs rax, 0x8fcdb4db2b7974e5
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0xa8], rax
movabs rax, 0xe0b3f60b442025fc
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0xb0], rax
movabs r12, 0x325eed30e2526ea8
mov qword [rsp + 0x30], r12
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0x30], r15
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x1d0], rax
mov qword [rsp + 0x30], rsi
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x1d8], rax
movabs rax, 0xe0d7f66544552593
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x1e0], rax
mov qword [rsp + 0x30], r12
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x1e8], rax
vmovdqu ymm0, ymmword [rsp + 0xa0]
vpxor ymm1, ymm0, ymmword [rsp + 0x1d0]
vmovdqu ymmword [rsp + 0xa0], ymm1
lea rcx, [rsp + 0xa0]
mov rax, rdi
vzeroupper
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x140022c70
lea rcx, [rsp + 0x158]
cmp qword [rsp + 0x170], 8
cmovae rcx, qword [rsp + 0x158]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xa0]
mov rdx, qword [rsp + 0x168]
call fcn.140009df0
cmp rax, rdi
je 0x140022d1c
mov dword [rsp + 0x188], 0
lea rdx, [rbx + 0x3b8]
mov r9d, 4
lea r8, [rsp + 0x188]
call fcn.140011640
mov dword [rsp + 0x190], 0x49742400
lea rdx, [rbx + 0x3bc]
mov r9d, 4
lea r8, [rsp + 0x190]
call fcn.140011640
mov dword [rsp + 0x198], 0x49742400
lea rdx, [rbx + 0x3c8]
lea r8, [rsp + 0x198]
jmp 0x140022e7f
movabs rax, 0x69ccd944556db77b
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0xc0], rax
movabs rax, 0x8fc9b4d82b6374ee
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0xc8], rax
movabs rax, 0xe0d7f602443b25fa
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0x30], r12
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0x30], r15
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x1f0], rax
mov qword [rsp + 0x30], rsi
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x1f8], rax
movabs rax, 0xe0d7f66544552593
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x200], rax
mov qword [rsp + 0x30], r12
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x208], rax
vmovdqu ymm0, ymmword [rsp + 0xc0]
vpxor ymm1, ymm0, ymmword [rsp + 0x1f0]
vmovdqu ymmword [rsp + 0xc0], ymm1
lea rcx, [rsp + 0xc0]
mov rax, rdi
vzeroupper
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x140022e00
lea rcx, [rsp + 0x158]
cmp qword [rsp + 0x170], 8
cmovae rcx, qword [rsp + 0x158]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xc0]
mov rdx, qword [rsp + 0x168]
call fcn.140009df0
cmp rax, rdi
je 0x140022e8a
mov byte [rsp + 0x148], 1
lea rdx, [rbx + 0x3a8]
mov r9d, 1
lea r8, [rsp + 0x148]
call fcn.140011640
mov dword [rsp + 0x1a0], 0x3f800000
lea rdx, [rbx + 0x3ac]
lea r8, [rsp + 0x1a0]
mov r9d, 4
call fcn.140011640
cmp byte [0x14012711d], 0
je 0x140022fad
movabs rax, 0x6983d958556db77c
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x30], rsi
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x30], r15
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0x30], rsi
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x1c8], rax
movdqa xmm0, xmmword [rsp + 0x60]
pxor xmm0, xmmword [rsp + 0x1c0]
movdqa xmmword [rsp + 0x60], xmm0
lea rax, [rsp + 0x60]
nop dword [rax]
inc rdi
cmp word [rax + rdi*2], 0
jne 0x140022f00
lea rcx, [rsp + 0x158]
cmp qword [rsp + 0x170], 8
cmovae rcx, qword [rsp + 0x158]
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x60]
mov rdx, qword [rsp + 0x168]
call fcn.140009df0
cmp rax, 0xffffffffffffffff
je 0x140022fad
mov dword [rsp + 0x120], 0x3f800000
lea rdx, [rbx + 0x3bc]
mov r9d, 4
lea r8, [rsp + 0x120]
call fcn.140011640
mov dword [rsp + 0x120], 0x3f800000
lea rdx, [rbx + 0x3a8]
mov r9d, 4
lea r8, [rsp + 0x120]
call fcn.140011640
mov byte [rsp + 0x118], 1
lea rdx, [rbx + 0x3b8]
mov r9d, 1
lea r8, [rsp + 0x118]
call fcn.140011640
cmp byte [0x140127122], 0
je 0x140023086
lea rdx, [rbx + 0x2f8]
call fcn.14003fe00
mov r15, rax
lea rdx, [rax + 0x80]
call fcn.14003fe00
mov r12, rax
test r15, r15
jne 0x140022fe6
test rax, rax
je 0x140023086
mov qword [rsp + 0x70], r13
mov qword [rsp + 0x80], r13
mov qword [rsp + 0x88], r13
mov rsi, qword [rsp + 0x168]
lea rdi, [rsp + 0x158]
cmp qword [rsp + 0x170], 8
cmovae rdi, qword [rsp + 0x158]
cmp rsi, 8
jae 0x14002302d
movups xmm0, xmmword [rdi]
movups xmmword [rsp + 0x70], xmm0
jmp 0x140023066
mov r14, rsi
or r14, 7
movabs rax, 0x7ffffffffffffffe
cmp r14, rax
cmova r14, rax
lea rdx, [r14 + 1]
call fcn.14000a310
mov qword [rsp + 0x70], rax
lea r8, [rsi*2 + 2]
mov rdx, rdi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x88], r14
mov r8, r12
mov rdx, r15
lea rcx, [rsp + 0x70]
call fcn.14001e7b0
mov esi, 9
cmp byte [0x14012711e], 0
je 0x1400231d2
mov dword [rsp + 0x120], 0xc0a00000
lea rdx, [rbx + 0x308]
lea r9d, [rsi - 5]
lea r8, [rsp + 0x120]
call fcn.140011640
mov dword [rsp + 0x120], 0xc0a00000
lea rdx, [rbx + 0x30c]
lea r9d, [rsi - 5]
lea r8, [rsp + 0x120]
call fcn.140011640
mov dword [rsp + 0x120], 0
lea rdx, [rbx + 0x348]
lea r9d, [rsi - 5]
lea r8, [rsp + 0x120]
call fcn.140011640
mov dword [rsp + 0x120], 0
lea rdx, [rbx + 0x34c]
lea r9d, [rsi - 5]
lea r8, [rsp + 0x120]
call fcn.140011640
mov dword [rsp + 0x120], 0
lea rdx, [rbx + 0x314]
lea r9d, [rsi - 5]
lea r8, [rsp + 0x120]
call fcn.140011640
mov dword [rsp + 0x120], 0
lea rdx, [rbx + 0x320]
lea r9d, [rsi - 5]
lea r8, [rsp + 0x120]
call fcn.140011640
mov dword [rsp + 0x120], 0
lea rdx, [rbx + 0x310]
lea r9d, [rsi - 5]
lea r8, [rsp + 0x120]
call fcn.140011640
lea rdx, [rbx + 0x398]
call fcn.14003f960
test rax, rax
je 0x1400231d2
lea rdx, [rax + 0x10]
call fcn.14003f960
test rax, rax
je 0x1400231d2
lea rdi, [rax + 0x20]
mov r14d, esi
mov rdx, rdi
call fcn.14003f960
test rax, rax
je 0x1400231c8
mov rcx, rax
call fcn.140023300
add rdi, 8
sub r14, 1
jne 0x1400231b3
cmp byte [0x14012711f], 0
je 0x14002321f
lea rdx, [rbx + 0x398]
call fcn.14003f960
test rax, rax
je 0x14002321f
lea rdx, [rax + 0x10]
call fcn.14003f960
test rax, rax
je 0x14002321f
lea rdi, [rax + 0x20]
nop
mov rdx, rdi
call fcn.14003f960
test rax, rax
je 0x140023215
mov rcx, rax
call fcn.1400233e0
add rdi, 8
sub rsi, 1
jne 0x140023200
cmp byte [0x140127111], 0
je 0x14002324a
mov byte [rsp + 0x118], 1
lea rdx, [rbx + 0x2a0]
mov r9d, 1
lea r8, [rsp + 0x118]
call fcn.140011640
cmp byte [0x140127112], 0
je 0x14002329d
mov dword [rsp + 0x120], 0
lea rdx, [rbx + 0x2f0]
mov r9d, 4
lea r8, [rsp + 0x120]
call fcn.140011640
mov dword [rsp + 0x120], 0
lea rdx, [rbx + 0x2f4]
mov r9d, 4
lea r8, [rsp + 0x120]
call fcn.140011640
movabs r12, 0xff00ff00ff00ff00
lea r14, [rsp + 0x238]
lea rcx, [rsp + 0x158]
call fcn.1400076a0
nop
mov rax, qword [rsp + 0x1a8]
xor rax, r12
mov qword [r14], rax
mov rcx, qword [rsp + 0x210]
xor rcx, rsp
call fcn.1400e2360
lea r11, [rsp + 0x220]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
ret