Function at 0x180037950
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rdi
lea rbp, [rsp - 0x4f]
sub rsp, 0xf8
cmp byte [0x1803181b7], 0
mov rdi, rcx
je 0x18003798a
cmp byte [0x1803182fd], 0
je 0x18003798a
test rcx, rcx
je 0x180037983
mov dword [rcx + 0x8a0], 0x3cf5c28f
mov byte [0x1803182fd], 0
test rdi, rdi
jne 0x1800379a1
xor ecx, ecx
add rsp, 0xf8
pop rdi
pop rbp
jmp qword [0x180318af8]
cmp byte [0x1803181ae], 0
mov qword [rsp + 0x118], rbx
mov qword [rsp + 0x120], rsi
mov qword [rsp + 0xf0], r13
movabs r13, 0x7fffffff0000
mov qword [rsp + 0xe8], r14
mov qword [rsp + 0xe0], r15
movaps xmmword [rsp + 0xd0], xmm6
xorps xmm6, xmm6
je 0x180037b6f
add rcx, 0x6a0
cmp rcx, 0x40000
jbe 0x1800385fd
lea rax, [rcx + 8]
cmp rax, r13
jae 0x1800385fd
mov rcx, qword [rcx]
add rcx, 0x20
cmp rcx, 0x40000
jbe 0x1800385fd
lea rax, [rcx + 8]
cmp rax, r13
jae 0x1800385fd
mov rcx, qword [rcx]
add rcx, 0x10
cmp rcx, 0x40000
jbe 0x1800385fd
lea rax, [rcx + 8]
cmp rax, r13
jae 0x1800385fd
mov rbx, qword [rcx]
test rbx, rbx
je 0x1800385fd
movd xmm0, dword [0x1802cdb38]
cvtdq2ps xmm0, xmm0
mov qword [rsp + 0x128], r12
addss xmm0, dword [0x1802cd9f4]
cvttss2si eax, xmm0
mov dword [0x1802cdb38], eax
mov edx, eax
mov esi, eax
mov r9d, eax
mov r14d, eax
mov r8d, eax
mov r15d, eax
mov r10d, eax
mov r12d, eax
cmp eax, 0x3e7
jl 0x180037abd
mov eax, 0xfffffc19
mov dword [0x1802cdb38], eax
mov edx, eax
mov esi, eax
mov r9d, eax
mov r14d, eax
mov r8d, eax
mov r15d, eax
mov r10d, eax
mov r12d, eax
mov r11d, dword [0x1803181a8]
test r11d, r11d
jne 0x180037ae1
mov ecx, 0x64
mov edx, esi
mov dword [0x1802cdb34], ecx
mov r9d, r14d
mov r8d, r15d
mov r10d, r12d
jmp 0x180037ae7
mov ecx, dword [0x1802cdb34]
mov r12, qword [rsp + 0x128]
cmp r11d, 1
jne 0x180037b06
mov ecx, 0xffffff9c
mov edx, r9d
mov dword [0x1802cdb34], ecx
mov r8d, r10d
cmp r11d, 2
jne 0x180037b17
xor ecx, ecx
mov edx, r8d
mov dword [0x1802cdb34], ecx
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movd xmm2, eax
ucomiss xmm0, xmm6
movd xmm1, ecx
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
movss dword [rbp - 0x71], xmm0
movss dword [rbp - 0x6d], xmm1
movss dword [rbp - 0x69], xmm2
jne 0x180037b4a
ucomiss xmm1, xmm6
jne 0x180037b4a
ucomiss xmm2, xmm6
je 0x180037b6f
lea rcx, [rbx + 0x18]
cmp rcx, 0x40000
jbe 0x180037b6f
lea rax, [rcx + 0xc]
cmp rax, r13
jae 0x180037b6f
movsd xmm0, qword [rbp - 0x71]
mov eax, dword [rbp - 0x69]
movsd qword [rcx], xmm0
mov dword [rcx + 8], eax
cmp byte [0x1803181b6], 0
je 0x180037e10
call fcn.180018870
mov r8d, 0x2f
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.180018240
movsd xmm0, qword [rax]
movsd qword [0x180318678], xmm0
mov eax, dword [rax + 8]
mov dword [0x180318680], eax
call fcn.180018870
mov r8d, 0x2e
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.180018240
movsd xmm0, qword [rax]
movsd qword [0x1803187e8], xmm0
mov eax, dword [rax + 8]
mov dword [0x1803187f0], eax
call fcn.180018870
mov r8d, 0x16
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.180018240
movsd xmm0, qword [rax]
movsd qword [0x1803188b0], xmm0
mov eax, dword [rax + 8]
mov dword [0x1803188b8], eax
call fcn.180018870
mov r8d, 0x12
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.180018240
movsd xmm0, qword [rax]
movsd qword [0x1803187b8], xmm0
mov eax, dword [rax + 8]
mov dword [0x1803187c0], eax
call fcn.180018870
mov r8d, 0x18
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.180018240
movsd xmm0, qword [rax]
movsd qword [0x180318658], xmm0
mov eax, dword [rax + 8]
mov dword [0x180318660], eax
call fcn.180018870
mov r8d, 0x19
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.180018240
movsd xmm0, qword [rax]
movsd qword [0x180318698], xmm0
mov eax, dword [rax + 8]
mov dword [0x1803186a0], eax
call fcn.180018870
mov r8d, 0x1a
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.180018240
movsd xmm0, qword [rax]
movsd qword [0x180318900], xmm0
mov eax, dword [rax + 8]
mov dword [0x180318908], eax
call fcn.180018870
mov r8d, 0x37
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.180018240
movsd xmm0, qword [rax]
movsd qword [0x180318758], xmm0
mov eax, dword [rax + 8]
mov dword [0x180318760], eax
call fcn.180018870
mov r8d, 0x38
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.180018240
movsd xmm0, qword [rax]
movsd qword [0x1803187c8], xmm0
mov eax, dword [rax + 8]
mov dword [0x1803187d0], eax
call fcn.180018870
mov r8d, 0x39
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.180018240
movsd xmm0, qword [rax]
movsd qword [0x180318778], xmm0
mov eax, dword [rax + 8]
mov dword [0x180318780], eax
call fcn.180018870
mov r8d, 6
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.180018240
movsd xmm0, qword [rax]
movsd qword [0x1803188f0], xmm0
mov eax, dword [rax + 8]
mov dword [0x1803188f8], eax
call fcn.180018870
mov r8d, 2
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.180018240
movsd xmm0, qword [rax]
movsd qword [0x180318748], xmm0
mov eax, dword [rax + 8]
mov dword [0x180318750], eax
call fcn.180018870
mov r8d, 3
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.180018240
movsd xmm0, qword [rax]
movsd qword [0x180318798], xmm0
mov eax, dword [rax + 8]
mov dword [0x1803187a0], eax
call fcn.180018870
mov r8d, 0xe
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.180018240
movsd xmm0, qword [rax]
movsd qword [0x180318638], xmm0
mov eax, dword [rax + 8]
mov dword [0x180318640], eax
call fcn.180018870
mov r8d, 0xf
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.180018240
movsd xmm0, qword [rax]
movsd qword [0x180318648], xmm0
mov eax, dword [rax + 8]
mov dword [0x180318650], eax
call fcn.180018870
mov r14d, dword [0x180317fc4]
mov rbx, rax
mov qword [rbp - 0x79], 0
mov r15d, 4
test rax, rax
jne 0x180037e38
lea rsi, [rbp - 0x79]
jmp 0x180037e8d
mov rax, qword gs:[0x58]
mov rcx, qword [rax + r14*8]
mov eax, dword [r15 + rcx]
cmp dword [0x180319838], eax
jle 0x180037e83
lea rcx, [0x180319838]
call fcn.180110174
cmp dword [0x180319838], 0xffffffff
jne 0x180037e83
mov ecx, 0xc4cdd477
call fcn.18000d780
lea rcx, [0x180319838]
mov qword [0x180319840], rax
call fcn.180110114
mov rsi, qword [0x180319840]
add rsi, rbx
mov rax, qword gs:[0x58]
mov rbx, qword [rax + r14*8]
mov eax, dword [rbx + r15]
cmp dword [0x180319838], eax
jle 0x180037ed8
lea rcx, [0x180319838]
call fcn.180110174
cmp dword [0x180319838], 0xffffffff
jne 0x180037ed8
mov ecx, 0xc4cdd477
call fcn.18000d780
lea rcx, [0x180319838]
mov qword [0x180319840], rax
call fcn.180110114
mov rax, qword [0x180319840]
mov rcx, qword [rax + rdi]
cmp rcx, qword [rsi]
jne 0x1800385fd
movaps xmmword [rsp + 0xb0], xmm8
mov rcx, rdi
movaps xmmword [rsp + 0x90], xmm10
movaps xmmword [rsp + 0x80], xmm11
movaps xmmword [rsp + 0x70], xmm12
call fcn.1800159b0
mov rsi, rax
test rax, rax
jne 0x180037f26
mov qword [rbp - 0x71], rax
mov dword [rbp - 0x69], eax
jmp 0x180037f8d
mov eax, dword [rbx + r15]
cmp dword [0x180319278], eax
jle 0x180037f67
lea rcx, [0x180319278]
call fcn.180110174
cmp dword [0x180319278], 0xffffffff
jne 0x180037f67
mov ecx, 0x56e64b7d
call fcn.18000a8e0
mov rcx, qword [rax]
mov qword [0x180319188], rcx
lea rcx, [0x180319278]
call fcn.180110114
mov rdx, qword [0x180319188]
lea r8, [rbp - 0x59]
mov r9, rsi
mov qword [rbp - 0x59], 0
lea rcx, [rbp - 0x71]
mov dword [rbp - 0x51], 0
call fcn.180061d00
movaps xmmword [rsp + 0xc0], xmm7
mov rcx, rdi
movaps xmmword [rsp + 0xa0], xmm9
call fcn.180017fa0
mov rcx, qword [rax]
add rcx, 0x1b8
cmp rcx, 0x40000
jbe 0x180037fec
lea rax, [rcx + 0xc]
cmp rax, r13
jae 0x180037fec
movsd xmm9, qword [rcx]
ucomiss xmm9, xmm6
movss xmm12, dword [rcx + 8]
movaps xmm7, xmm9
shufps xmm7, xmm7, 0x55
movsd qword [rbp - 0x49], xmm9
jne 0x180037ff7
ucomiss xmm7, xmm6
jne 0x180037ff7
ucomiss xmm12, xmm6
jne 0x180037ff7
xorps xmm9, xmm9
xorps xmm7, xmm7
xorps xmm12, xmm12
mov rcx, rdi
call fcn.1800159b0
mov rsi, rax
test rax, rax
jne 0x180038010
mov qword [rbp - 0x49], rax
mov dword [rbp - 0x41], eax
jmp 0x180038077
mov eax, dword [rbx + r15]
cmp dword [0x180319278], eax
jle 0x180038051
lea rcx, [0x180319278]
call fcn.180110174
cmp dword [0x180319278], 0xffffffff
jne 0x180038051
mov ecx, 0x56e64b7d
call fcn.18000a8e0
lea rcx, [0x180319278]
mov rdx, qword [rax]
mov qword [0x180319188], rdx
call fcn.180110114
mov rdx, qword [0x180319188]
lea r8, [rbp - 0x59]
mov r9, rsi
mov qword [rbp - 0x59], 0
lea rcx, [rbp - 0x49]
mov dword [rbp - 0x51], 0
call fcn.180061d00
mov rcx, rdi
call fcn.180017fa0
cmp byte [0x1803181c0], 0
movss xmm10, dword [rbp - 0x71]
movss xmm8, dword [rbp - 0x6d]
movss xmm11, dword [rbp - 0x69]
je 0x18003827f
movss xmm1, dword [0x180318094]
subss xmm1, dword [0x1802a2e58]
movss xmm0, dword [0x180318270]
comiss xmm0, xmm1
jb 0x1800380e7
mov ecx, dword [0x180318204]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1800380e7
movss xmm8, dword [rbp - 0x6d]
comiss xmm8, xmm7
jae 0x1800380e3
subss xmm8, dword [0x1802a2904]
jmp 0x1800380e7
movaps xmm8, xmm7
cmp byte [0x1803181c0], 0
je 0x18003827f
movss xmm1, dword [0x180318058]
movss xmm7, dword [0x1802a2e28]
movss xmm0, dword [0x180318090]
subss xmm1, xmm7
comiss xmm0, xmm1
jb 0x18003812e
mov ecx, dword [0x180318204]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18003812e
movaps xmm10, xmm9
movaps xmm11, xmm12
cmp byte [0x1803181c0], 0
je 0x18003827f
mov ecx, dword [0x180318204]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x180038165
movss xmm1, dword [0x180318058]
movss xmm0, dword [0x180318090]
subss xmm1, xmm7
comiss xmm0, xmm1
jae 0x1800381a8
cmp byte [0x1803181c0], 0
je 0x18003827f
mov ecx, dword [0x180318204]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18003827f
movss xmm1, dword [0x180318094]
subss xmm1, dword [0x1802a2e58]
movss xmm0, dword [0x180318270]
comiss xmm0, xmm1
jb 0x18003827f
mov rcx, rdi
call fcn.180017f20
movss dword [rbp - 0x59], xmm10
movss dword [rbp - 0x55], xmm8
movss dword [rbp - 0x51], xmm11
mov rsi, qword [rax]
test rsi, rsi
je 0x18003827f
mov eax, dword [rbx + r15]
cmp dword [0x1803193f0], eax
jle 0x18003820f
lea rcx, [0x1803193f0]
call fcn.180110174
cmp dword [0x1803193f0], 0xffffffff
jne 0x18003820f
mov ecx, 0x39c30ce6
call fcn.18000a8e0
lea rcx, [0x1803193f0]
mov rdx, qword [rax]
mov qword [0x180318b80], rdx
call fcn.180110114
mov eax, dword [rbx + r15]
cmp dword [0x180319210], eax
mov r14, qword [0x180318b80]
jle 0x180038254
lea rcx, [0x180319210]
call fcn.180110174
cmp dword [0x180319210], 0xffffffff
jne 0x180038254
mov ecx, 0x3a1e5c61
call fcn.180009800
lea rcx, [0x180319210]
mov qword [0x180319490], rax
call fcn.180110114
mov eax, dword [rbp - 0x51]
lea rdx, [rbp - 0x49]
movsd xmm0, qword [rbp - 0x59]
mov rcx, rsi
mov dword [rbp - 0x41], eax
mov rax, qword [0x180319490]
movsd qword [rbp - 0x49], xmm0
mov r8, qword [rax + 0xb8]
mov r8, qword [r8]
call r14
cmp byte [0x1803181b3], 0
movss xmm12, dword [0x1802a2960]
je 0x180038438
mov ecx, dword [0x1803181f8]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1800382bf
cmp byte [0x1803181b3], al
je 0x180038438
cmp dword [0x1803181f8], 0
jne 0x180038438
movss xmm0, dword [0x1803172bc]
comiss xmm0, dword [0x1802a2e20]
jb 0x180038428
mov rcx, rdi
call fcn.1800183c0
mov rcx, rdi
movaps xmm11, xmm0
call fcn.180018450
mov rcx, rdi
movaps xmm10, xmm0
call fcn.180017fa0
mov rcx, qword [rax]
add rcx, 0x1b8
cmp rcx, 0x40000
jbe 0x180038339
lea rax, [rcx + 0xc]
cmp rax, r13
jae 0x180038339
movsd xmm7, qword [rcx]
ucomiss xmm7, xmm6
movss xmm8, dword [rcx + 8]
movaps xmm9, xmm7
shufps xmm9, xmm9, 0x55
movsd qword [rbp - 0x49], xmm7
jne 0x180038344
ucomiss xmm9, xmm6
jne 0x180038344
ucomiss xmm8, xmm6
jne 0x180038344
xorps xmm9, xmm9
xorps xmm8, xmm8
xorps xmm7, xmm7
mov rcx, rdi
call fcn.1800159b0
lea rdx, [rbp - 0x59]
mov rcx, rax
call fcn.180015850
mov ecx, dword [0x180319110]
subss xmm10, xmm11
movaps xmm0, xmm11
subss xmm11, dword [0x1802a2874]
addss xmm9, dword [rax + 4]
addss xmm7, dword [rax]
addss xmm8, dword [rax + 8]
mulss xmm9, xmm12
mulss xmm7, xmm12
mulss xmm8, xmm12
addss xmm0, xmm9
addss xmm10, xmm9
subss xmm0, dword [0x1802a28f4]
test ecx, ecx
je 0x1800383b5
sub ecx, 1
je 0x1800383b5
cmp ecx, 1
je 0x1800383b5
movzx eax, byte [rbp + 0x67]
jmp 0x1800383f9
mov rax, qword [0x180319108]
lea rdx, [rbp - 0x49]
mov r9d, 0x59a12101
movss dword [rbp - 0x49], xmm7
movaps xmm2, xmm11
movss dword [rbp - 0x45], xmm10
lea rcx, [rbp - 0x59]
movss dword [rbp - 0x41], xmm8
movss dword [rbp - 0x59], xmm7
movss dword [rbp - 0x55], xmm0
movss dword [rbp - 0x51], xmm8
mov dword [rsp + 0x20], 1
call rax
test al, al
je 0x180038420
mov rcx, rdi
call fcn.180017f20
mov rcx, rdi
mov rbx, qword [rax]
call fcn.180018020
mov rcx, rbx
mov rdx, qword [rax]
call fcn.180017560
xorps xmm0, xmm0
jmp 0x180038428
movss xmm0, dword [0x1803172bc]
addss xmm0, dword [0x1802a2ab4]
movss dword [0x1803172bc], xmm0
cmp byte [0x1803181c3], 0
je 0x1800385cb
cmp byte [0x1803181a5], 0
je 0x1800385cb
movss xmm0, dword [0x1803172a8]
comiss xmm0, dword [0x1802a2e20]
jb 0x1800385bb
mov rcx, rdi
call fcn.1800183c0
mov rcx, rdi
movaps xmm11, xmm0
call fcn.180018450
mov rcx, rdi
movaps xmm10, xmm0
call fcn.180017fa0
mov rcx, qword [rax]
add rcx, 0x1b8
cmp rcx, 0x40000
jbe 0x1800384cc
lea rax, [rcx + 0xc]
cmp rax, r13
jae 0x1800384cc
movsd xmm7, qword [rcx]
ucomiss xmm7, xmm6
movss xmm8, dword [rcx + 8]
movaps xmm9, xmm7
shufps xmm9, xmm9, 0x55
movsd qword [rbp - 0x49], xmm7
jne 0x1800384d7
ucomiss xmm9, xmm6
jne 0x1800384d7
ucomiss xmm8, xmm6
jne 0x1800384d7
xorps xmm9, xmm9
xorps xmm8, xmm8
xorps xmm7, xmm7
mov rcx, rdi
call fcn.1800159b0
lea rdx, [rbp - 0x59]
mov rcx, rax
call fcn.180015850
mov ecx, dword [0x180319110]
subss xmm10, xmm11
movaps xmm0, xmm11
subss xmm11, dword [0x1802a2874]
addss xmm9, dword [rax + 4]
addss xmm7, dword [rax]
addss xmm8, dword [rax + 8]
mulss xmm9, xmm12
mulss xmm7, xmm12
mulss xmm8, xmm12
addss xmm0, xmm9
addss xmm10, xmm9
subss xmm0, dword [0x1802a28f4]
test ecx, ecx
je 0x180038548
sub ecx, 1
je 0x180038548
cmp ecx, 1
je 0x180038548
movzx eax, byte [rbp + 0x67]
jmp 0x18003858c
mov rax, qword [0x180319108]
lea rdx, [rbp - 0x49]
mov r9d, 0x59a12101
movss dword [rbp - 0x49], xmm7
movaps xmm2, xmm11
movss dword [rbp - 0x45], xmm10
lea rcx, [rbp - 0x59]
movss dword [rbp - 0x41], xmm8
movss dword [rbp - 0x59], xmm7
movss dword [rbp - 0x55], xmm0
movss dword [rbp - 0x51], xmm8
mov dword [rsp + 0x20], 1
call rax
test al, al
je 0x1800385b3
mov rcx, rdi
call fcn.180017f20
mov rcx, rdi
mov rbx, qword [rax]
call fcn.180018020
mov rcx, rbx
mov rdx, qword [rax]
call fcn.180017560
xorps xmm0, xmm0
jmp 0x1800385bb
movss xmm0, dword [0x1803172a8]
addss xmm0, dword [0x1802a2ab4]
movss dword [0x1803172a8], xmm0
movaps xmm9, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xc0]
movaps xmm10, xmmword [rsp + 0x90]
movaps xmm8, xmmword [rsp + 0xb0]
movaps xmm11, xmmword [rsp + 0x80]
movaps xmm12, xmmword [rsp + 0x70]
mov rcx, rdi
movaps xmm6, xmmword [rsp + 0xd0]
mov r15, qword [rsp + 0xe0]
mov r14, qword [rsp + 0xe8]
mov r13, qword [rsp + 0xf0]
mov rsi, qword [rsp + 0x120]
mov rbx, qword [rsp + 0x118]
add rsp, 0xf8
pop rdi
pop rbp
jmp qword [0x180318af8]