Function at 0x180066e60
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
mov rax, qword [0x1800b7040]
xor rax, rsp
mov qword [rbp - 0x20], rax
mov r12, qword [0x1803d9c50]
movsd xmm0, qword [0x18040b0a8]
movsd qword [rsp + 0x30], xmm0
mov eax, dword [0x18040b0b0]
mov dword [rsp + 0x38], eax
mov r8d, 0x2f
lea rdx, [rsp + 0x60]
mov rcx, r12
call fcn.1800666f0
movsd xmm0, qword [rax]
movsd qword [rsp + 0x20], xmm0
mov eax, dword [rax + 8]
mov dword [rsp + 0x28], eax
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
call fcn.180066d30
test al, al
je 0x180066f3f
mov r8d, 0x2f
lea rdx, [rsp + 0x60]
mov rcx, r12
call fcn.1800666f0
movsd xmm0, qword [rax]
movsd qword [0x18040b0a8], xmm0
mov eax, dword [rax + 8]
mov dword [0x18040b0b0], eax
mov ecx, dword [0x1803d9a14]
mov rax, qword gs:[0x58]
mov esi, 4
mov rdi, qword [rax + rcx*8]
mov eax, dword [rdi + rsi]
cmp dword [0x180410114], eax
jle 0x180066f94
lea rcx, [0x180410114]
call fcn.180091038
cmp dword [0x180410114], 0xffffffff
jne 0x180066f94
mov ecx, 0x3a1e5c61
call fcn.18005e4d0
mov qword [0x1804101e0], rax
lea rcx, [0x180410114]
call fcn.180090fcc
mov r8d, 0x2f
lea rdx, [rbp - 0x30]
mov rcx, r12
call fcn.1800666f0
mov eax, dword [rdi + rsi]
cmp dword [0x180410114], eax
jle 0x180066fe3
lea rcx, [0x180410114]
call fcn.180091038
cmp dword [0x180410114], 0xffffffff
jne 0x180066fe3
mov ecx, 0x3a1e5c61
call fcn.18005e4d0
mov qword [0x1804101e0], rax
lea rcx, [0x180410114]
call fcn.180090fcc
mov rax, qword [0x1804101e0]
mov rcx, qword [rax + 0xb8]
mov rbx, qword [rcx]
xorps xmm10, xmm10
mov dword [rsp + 0x70], 0
test rbx, rbx
jne 0x18006700c
lea rbx, [rsp + 0x70]
jmp 0x180067050
mov eax, dword [rdi + rsi]
cmp dword [0x18040fd28], eax
jle 0x180067049
lea rcx, [0x18040fd28]
call fcn.180091038
cmp dword [0x18040fd28], 0xffffffff
jne 0x180067049
mov ecx, 0xc566d10
call fcn.180060450
mov qword [0x18040fb90], rax
lea rcx, [0x18040fd28]
call fcn.180090fcc
add rbx, qword [0x18040fb90]
mov ecx, dword [0x1804102f0]
test ecx, ecx
je 0x18006706c
sub ecx, 1
je 0x18006706c
cmp ecx, 1
je 0x18006706c
movss xmm0, dword [rsp + 0x74]
jmp 0x180067072
call qword [0x1804102e8]
subss xmm0, dword [rbx]
cvtss2sd xmm0, xmm0
subsd xmm0, qword [0x1800aac00]
xorps xmm6, xmm6
cvtsd2ss xmm6, xmm0
mov eax, dword [rdi + rsi]
cmp dword [0x180410114], eax
jle 0x1800670c6
lea rcx, [0x180410114]
call fcn.180091038
cmp dword [0x180410114], 0xffffffff
jne 0x1800670c6
mov ecx, 0x3a1e5c61
call fcn.18005e4d0
mov qword [0x1804101e0], rax
lea rcx, [0x180410114]
call fcn.180090fcc
mov rax, qword [0x1804101e0]
mov rcx, qword [rax + 0xb8]
mov rbx, qword [rcx]
movss xmm7, dword [0x1800aac9c]
test rbx, rbx
jne 0x1800670ec
xorps xmm0, xmm0
jmp 0x1800671d2
mov eax, dword [rdi + rsi]
cmp dword [0x180410300], eax
jle 0x180067129
lea rcx, [0x180410300]
call fcn.180091038
cmp dword [0x180410300], 0xffffffff
jne 0x180067129
mov ecx, 0xac5e6f4b
call fcn.180060450
mov qword [0x18040fec0], rax
lea rcx, [0x180410300]
call fcn.180090fcc
mov rax, qword [0x18040fec0]
mov ecx, dword [rdi + rsi]
cmp qword [rax + rbx], 0
je 0x180067189
cmp dword [0x18040fc18], ecx
jle 0x180067177
lea rcx, [0x18040fc18]
call fcn.180091038
cmp dword [0x18040fc18], 0xffffffff
jne 0x180067177
mov ecx, 0x9e8772e4
call fcn.18005ed40
mov rcx, qword [rax]
mov qword [0x18040fef8], rcx
lea rcx, [0x18040fc18]
call fcn.180090fcc
mov rax, qword [0x18040fef8]
mov rcx, rbx
call rax
mulss xmm0, xmm7
jmp 0x1800671d2
cmp dword [0x18040fc18], ecx
jle 0x1800671c6
lea rcx, [0x18040fc18]
call fcn.180091038
cmp dword [0x18040fc18], 0xffffffff
jne 0x1800671c6
mov ecx, 0x9e8772e4
call fcn.18005ed40
mov rcx, qword [rax]
mov qword [0x18040fef8], rcx
lea rcx, [0x18040fc18]
call fcn.180090fcc
mov rax, qword [0x18040fef8]
mov rcx, rbx
call rax
addss xmm6, dword [0x1800aab34]
addss xmm6, dword [0x1800aab54]
mulss xmm6, dword [0x1800aac14]
mulss xmm6, xmm0
addss xmm6, dword [0x1800aab50]
subss xmm6, dword [0x1800aab3c]
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x68], xmm1
xor r15d, r15d
mov r13d, r15d
mov qword [rbp - 0x58], r15
test r12, r12
je 0x1800672b5
mov eax, dword [rdi + rsi]
cmp dword [0x18040fe0c], eax
jle 0x180067256
lea rcx, [0x18040fe0c]
call fcn.180091038
cmp dword [0x18040fe0c], 0xffffffff
jne 0x180067256
mov ecx, 0x6d5c7dd2
call fcn.180060450
mov qword [0x1804101f8], rax
lea rcx, [0x18040fe0c]
call fcn.180090fcc
mov rax, qword [0x1804101f8]
mov rbx, qword [rax + r12]
test rbx, rbx
je 0x1800672b5
mov eax, dword [rdi + rsi]
cmp dword [0x180410270], eax
jle 0x1800672a6
lea rcx, [0x180410270]
call fcn.180091038
cmp dword [0x180410270], 0xffffffff
jne 0x1800672a6
mov ecx, 0x3fc4366
call fcn.18005ed40
mov rcx, qword [rax]
mov qword [0x1804102d0], rcx
lea rcx, [0x180410270]
call fcn.180090fcc
mov rdx, rbx
lea rcx, [rbp - 0x50]
call qword [0x1804102d0]
jmp 0x1800672cd
mov qword [rbp - 0x50], 0
mov dword [rbp - 0x48], 0
test r12, r12
je 0x180067369
mov eax, dword [rdi + rsi]
cmp dword [0x18040fe0c], eax
jle 0x18006730a
lea rcx, [0x18040fe0c]
call fcn.180091038
cmp dword [0x18040fe0c], 0xffffffff
jne 0x18006730a
mov ecx, 0x6d5c7dd2
call fcn.180060450
mov qword [0x1804101f8], rax
lea rcx, [0x18040fe0c]
call fcn.180090fcc
mov rax, qword [0x1804101f8]
mov rbx, qword [rax + r12]
test rbx, rbx
je 0x180067369
mov eax, dword [rdi + rsi]
cmp dword [0x18041025c], eax
jle 0x18006735a
lea rcx, [0x18041025c]
call fcn.180091038
cmp dword [0x18041025c], 0xffffffff
jne 0x18006735a
mov ecx, 0x28985755
call fcn.18005ed40
mov rcx, qword [rax]
mov qword [0x180410370], rcx
lea rcx, [0x18041025c]
call fcn.180090fcc
mov rdx, rbx
lea rcx, [rbp - 0x40]
call qword [0x180410370]
jmp 0x180067378
mov qword [rbp - 0x40], 0
mov dword [rbp - 0x38], 0
mov esi, r15d
mov r14d, r15d
comiss xmm7, xmm6
seta r14b
inc r14d
movss xmm13, dword [0x1800ab2e0]
movss xmm9, dword [0x1800aacb8]
movss xmm12, dword [0x1800aae30]
movss xmm11, dword [0x1800aae0c]
mov rbx, qword [rbp - 0x60]
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
movss xmm1, dword [0x18040f858]
addss xmm1, dword [0x1800aab64]
movss dword [0x18040f858], xmm1
movss xmm7, dword [0x18040f7b0]
addss xmm7, dword [0x1800aab64]
movss dword [0x18040f7b0], xmm7
comiss xmm1, xmm9
jb 0x1800673f9
subss xmm1, xmm9
movss dword [0x18040f858], xmm1
comiss xmm7, xmm9
jb 0x18006740c
subss xmm7, xmm9
movss dword [0x18040f7b0], xmm7
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
movaps xmm8, xmm0
mulss xmm8, dword [0x1800aac60]
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
mulss xmm0, dword [0x1800aac60]
movss xmm1, dword [0x18040f810]
cmp byte [0x18040f830], 0
jne 0x1800674b9
comiss xmm1, dword [0x1800aac18]
jae 0x1800674b9
addss xmm1, dword [0x1800aab50]
movss dword [0x18040f810], xmm1
mov byte [0x18040f830], 0
xorps xmm0, xmm13
subss xmm0, xmm10
addss xmm0, xmm10
subss xmm1, xmm10
addss xmm1, xmm10
xorps xmm8, xmm13
subss xmm8, xmm10
addss xmm8, xmm10
movss dword [rsp + 0x20], xmm8
movss dword [rsp + 0x24], xmm1
movss dword [rsp + 0x28], xmm0
cmp rbx, r13
je 0x1800674d5
movss dword [rbx], xmm8
movss dword [rbx + 4], xmm1
movss dword [rbx + 8], xmm0
add rbx, 0xc
mov qword [rbp - 0x60], rbx
jmp 0x1800674ee
mov byte [0x18040f830], 1
comiss xmm12, xmm1
jae 0x18006745b
addss xmm1, xmm11
movss dword [0x18040f810], xmm1
jmp 0x180067462
lea r8, [rsp + 0x20]
mov rdx, rbx
lea rcx, [rbp - 0x68]
call fcn.180088d70
mov r13, qword [rbp - 0x58]
mov rbx, qword [rbp - 0x60]
add esi, r14d
cmp esi, 4
jl 0x1800673b0
mov rcx, qword [0x1803d9b90]
add rcx, r12
movabs rdx, 0x7fffffff0000
cmp rcx, 0x40000
jbe 0x180067523
lea rax, [rcx + 8]
cmp rax, rdx
jae 0x180067523
mov r15, qword [rcx]
mov rcx, qword [0x1803d9ba0]
add rcx, r15
cmp rcx, 0x40000
jbe 0x1800675e2
lea rax, [rcx + 8]
cmp rax, rdx
jae 0x1800675e2
mov rcx, qword [rcx]
add rcx, 0x198
cmp rcx, 0x40000
jbe 0x1800675e2
lea rax, [rcx + 8]
cmp rax, rdx
jae 0x1800675e2
mov rsi, qword [rcx]
test rsi, rsi
je 0x1800675e2
mov r15d, 4
mov eax, dword [rdi + r15]
cmp dword [0x18040fd88], eax
jle 0x1800675b6
lea rcx, [0x18040fd88]
call fcn.180091038
cmp dword [0x18040fd88], 0xffffffff
jne 0x1800675b6
mov ecx, 0x56e64b7d
call fcn.18005ed40
mov rcx, qword [rax]
mov qword [0x18040fc68], rcx
lea rcx, [0x18040fd88]
call fcn.180090fcc
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x38], 0
mov r9, rsi
lea r8, [rsp + 0x30]
mov rdx, qword [0x18040fc68]
lea rcx, [rsp + 0x40]
call fcn.180087d90
jmp 0x1800675f9
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x48], 0
mov r15d, 4
movsd xmm6, qword [rsp + 0x40]
mov r14d, dword [rsp + 0x48]
mov eax, dword [rdi + r15]
cmp dword [0x180410114], eax
jle 0x180067642
lea rcx, [0x180410114]
call fcn.180091038
cmp dword [0x180410114], 0xffffffff
jne 0x180067642
mov ecx, 0x3a1e5c61
call fcn.18005e4d0
mov qword [0x1804101e0], rax
lea rcx, [0x180410114]
call fcn.180090fcc
mov rax, qword [0x1804101e0]
mov rcx, qword [rax + 0xb8]
mov rsi, qword [rcx]
test rsi, rsi
je 0x1800676fb
mov eax, dword [rdi + r15]
cmp dword [0x18040fe0c], eax
jle 0x18006769a
lea rcx, [0x18040fe0c]
call fcn.180091038
cmp dword [0x18040fe0c], 0xffffffff
jne 0x18006769a
mov ecx, 0x6d5c7dd2
call fcn.180060450
mov qword [0x1804101f8], rax
lea rcx, [0x18040fe0c]
call fcn.180090fcc
mov rax, qword [0x1804101f8]
mov rsi, qword [rsi + rax]
test rsi, rsi
je 0x1800676fb
mov eax, dword [rdi + r15]
cmp dword [0x1804101a0], eax
jle 0x1800676eb
lea rcx, [0x1804101a0]
call fcn.180091038
cmp dword [0x1804101a0], 0xffffffff
jne 0x1800676eb
mov ecx, 0xf3daab4b
call fcn.18005ed40
mov rcx, qword [rax]
mov qword [0x1804101c0], rcx
lea rcx, [0x1804101a0]
call fcn.180090fcc
mov rdx, rsi
lea rcx, [rsp + 0x20]
call qword [0x1804101c0]
jmp 0x18006770c
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x28], 0
movsd qword [rsp + 0x30], xmm6
mov dword [rsp + 0x38], r14d
movsd xmm0, qword [rsp + 0x20]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [rsp + 0x28]
mov dword [rsp + 0x58], eax
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.180066d30
mov r15, qword [rbp - 0x68]
test al, al
jne 0x180067aed
mov rsi, r15
cmp r15, rbx
je 0x180067aed
nop dword [rax]
nop word [rax + rax]
movsd xmm1, qword [rsi]
movss xmm9, dword [rbp - 0x28]
addss xmm9, dword [rsi + 8]
movss xmm8, dword [rbp - 0x2c]
movaps xmm0, xmm1
shufps xmm0, xmm0, 0x55
addss xmm8, xmm0
movss xmm7, dword [rbp - 0x30]
addss xmm7, xmm1
movss dword [rsp + 0x30], xmm7
movss dword [rsp + 0x34], xmm8
movss dword [rsp + 0x38], xmm9
mov r8d, 0x2f
lea rdx, [rsp + 0x78]
mov rcx, r12
call fcn.1800666f0
movsd xmm0, qword [rax]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [rax + 8]
mov dword [rsp + 0x58], eax
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.180066d30
test al, al
je 0x18006793a
mov edx, 4
mov eax, dword [rdi + rdx]
cmp dword [0x180410114], eax
jle 0x180067821
lea rcx, [0x180410114]
call fcn.180091038
cmp dword [0x180410114], 0xffffffff
jne 0x18006781c
mov ecx, 0x3a1e5c61
call fcn.18005e4d0
mov qword [0x1804101e0], rax
lea rcx, [0x180410114]
call fcn.180090fcc
mov edx, 4
mov rax, qword [0x1804101e0]
mov rcx, qword [rax + 0xb8]
mov r14, qword [rcx]
test r14, r14
je 0x1800678dd
mov eax, dword [rdi + rdx]
cmp dword [0x18040fe0c], eax
jle 0x18006787d
lea rcx, [0x18040fe0c]
call fcn.180091038
cmp dword [0x18040fe0c], 0xffffffff
jne 0x180067878
mov ecx, 0x6d5c7dd2
call fcn.180060450
mov qword [0x1804101f8], rax
lea rcx, [0x18040fe0c]
call fcn.180090fcc
mov edx, 4
mov rax, qword [0x1804101f8]
mov r14, qword [r14 + rax]
test r14, r14
je 0x1800678dd
mov eax, dword [rdi + rdx]
cmp dword [0x1804101a0], eax
jle 0x1800678cd
lea rcx, [0x1804101a0]
call fcn.180091038
cmp dword [0x1804101a0], 0xffffffff
jne 0x1800678cd
mov ecx, 0xf3daab4b
call fcn.18005ed40
mov rcx, qword [rax]
mov qword [0x1804101c0], rcx
lea rcx, [0x1804101a0]
call fcn.180090fcc
mov rdx, r14
lea rcx, [rsp + 0x20]
call qword [0x1804101c0]
jmp 0x1800678ee
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x28], 0
movaps xmm0, xmm7
unpcklps xmm0, xmm8
movsd qword [rsp + 0x40], xmm0
movss dword [rsp + 0x48], xmm9
movsd xmm0, qword [rsp + 0x20]
movsd qword [rsp + 0x60], xmm0
mov eax, dword [rsp + 0x28]
mov dword [rsp + 0x68], eax
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x60]
call fcn.180066d30
test al, al
jne 0x18006794c
mov ecx, dword [0x1803d9ce0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18006794c
add rsi, 0xc
cmp rsi, rbx
jne 0x180067760
jmp 0x180067aed
mov r8d, 0x2f
lea rdx, [rsp + 0x78]
mov rcx, r12
call fcn.1800666f0
movsd xmm6, qword [rax]
mov esi, dword [rax + 8]
mov edx, 4
mov eax, dword [rdi + rdx]
cmp dword [0x180410114], eax
jle 0x1800679ad
lea rcx, [0x180410114]
call fcn.180091038
cmp dword [0x180410114], 0xffffffff
jne 0x1800679a8
mov ecx, 0x3a1e5c61
call fcn.18005e4d0
mov qword [0x1804101e0], rax
lea rcx, [0x180410114]
call fcn.180090fcc
mov edx, 4
mov rax, qword [0x1804101e0]
mov rcx, qword [rax + 0xb8]
mov rbx, qword [rcx]
test rbx, rbx
je 0x180067a69
mov eax, dword [rdi + rdx]
cmp dword [0x18040fe0c], eax
jle 0x180067a09
lea rcx, [0x18040fe0c]
call fcn.180091038
cmp dword [0x18040fe0c], 0xffffffff
jne 0x180067a04
mov ecx, 0x6d5c7dd2
call fcn.180060450
mov qword [0x1804101f8], rax
lea rcx, [0x18040fe0c]
call fcn.180090fcc
mov edx, 4
mov rax, qword [0x1804101f8]
mov rbx, qword [rbx + rax]
test rbx, rbx
je 0x180067a69
mov eax, dword [rdi + rdx]
cmp dword [0x1804101a0], eax
jle 0x180067a59
lea rcx, [0x1804101a0]
call fcn.180091038
cmp dword [0x1804101a0], 0xffffffff
jne 0x180067a59
mov ecx, 0xf3daab4b
call fcn.18005ed40
mov rcx, qword [rax]
mov qword [0x1804101c0], rcx
lea rcx, [0x1804101a0]
call fcn.180090fcc
mov rdx, rbx
lea rcx, [rsp + 0x20]
call qword [0x1804101c0]
jmp 0x180067a7a
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x28], 0
movsd qword [rsp + 0x60], xmm6
mov dword [rsp + 0x68], esi
movsd xmm0, qword [rsp + 0x20]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [rsp + 0x28]
mov dword [rsp + 0x58], eax
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x50]
call fcn.180066d30
test al, al
je 0x180067ad5
mov r8d, 0x2f
lea rdx, [rsp + 0x78]
mov rcx, r12
call fcn.1800666f0
movsd xmm0, qword [rax]
movsd qword [0x18040b0a8], xmm0
mov eax, dword [rax + 8]
mov dword [0x18040b0b0], eax
jmp 0x180067aed
movaps xmm0, xmm7
unpcklps xmm0, xmm8
movsd qword [0x18040b0a8], xmm0
movss dword [0x18040b0b0], xmm9
test r15, r15
je 0x180067b47
sub r13, r15
movabs rax, 0x2aaaaaaaaaaaaaab
imul r13
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*2]
shl rdx, 2
mov rax, r15
cmp rdx, 0x1000
jb 0x180067b3f
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180067b3f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r15
call fcn.18009145c
mov rcx, qword [rbp - 0x20]
xor rcx, rsp
call fcn.180090f70
lea r11, [rsp + 0x170]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret