Function at 0x140015900
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rax - 0x218]
sub rsp, 0x300
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm9
movaps xmmword [rax - 0x68], xmm10
movaps xmmword [rax - 0x78], xmm11
movaps xmmword [rax - 0x88], xmm12
movaps xmmword [rax - 0x98], xmm13
movaps xmmword [rax - 0xa8], xmm14
movaps xmmword [rax - 0xb8], xmm15
mov rax, qword [0x140093440]
xor rax, rsp
mov qword [rbp + 0x150], rax
mov rdi, qword [0x1400931f0]
mov r15, qword [0x1400931f8]
cmp rdi, r15
je 0x1400164ef
xor r12d, r12d
movss xmm13, dword [0x14007df44]
nop word [rax + rax]
movups xmm0, xmmword [rdi]
movups xmmword [rsp + 0x60], xmm0
movaps xmmword [rbp + 0x70], xmm0
movups xmm15, xmmword [rdi + 0x10]
movups xmm10, xmmword [rdi + 0x20]
movups xmm14, xmmword [rdi + 0x30]
mov r8d, 0x6e
movq rsi, xmm15
mov rdx, rsi
lea rcx, [rsp + 0x70]
call fcn.14001c530
movups xmm8, xmmword [rsp + 0x70]
movaps xmmword [rbp + 0x10], xmm8
movsd xmm12, qword [rbp - 0x80]
movsd qword [rbp + 0x20], xmm12
lea rdx, [rbp + 0x10]
lea rcx, [rbp + 0x50]
call fcn.14001f5e0
xor r8d, r8d
mov rdx, rsi
lea rcx, [rbp + 0xd0]
call fcn.14001c530
movups xmm0, xmmword [rbp + 0xd0]
movaps xmmword [rbp + 0x110], xmm0
movsd xmm1, qword [rbp + 0xe0]
movsd qword [rbp + 0x120], xmm1
lea rdx, [rbp + 0x110]
lea rcx, [rbp + 0x40]
call fcn.14001f5e0
movaps xmm2, xmm12
addsd xmm2, qword [0x14007df88]
movaps xmm1, xmm8
unpckhpd xmm1, xmm8
movaps xmm0, xmm8
unpcklpd xmm0, xmm1
movaps xmmword [rbp + 0x110], xmm0
movsd qword [rbp - 0x80], xmm2
movsd qword [rbp + 0x120], xmm2
lea rdx, [rbp + 0x110]
lea rcx, [rbp + 0x30]
call fcn.14001f5e0
movsd xmm11, qword [rbp + 0x38]
movaps xmm0, xmm11
movsd xmm9, qword [rbp + 0x48]
subsd xmm0, xmm9
andps xmm0, xmmword [0x14007e170]
cvtpd2ps xmm0, xmm0
movss dword [rsp + 0x40], xmm0
movaps xmm7, xmm0
mulss xmm7, dword [0x14007df40]
xorps xmm0, xmm0
movups xmmword [rbp + 0xf8], xmm0
lea rcx, [rsi + 0x2e0]
call fcn.140009320
movaps xmm6, xmm0
lea rcx, [rsi + 0x2e8]
call fcn.140009320
addss xmm0, dword [0x14007df3c]
movups xmm2, xmmword [0x140093110]
comiss xmm0, xmm6
jb 0x140015af2
movups xmmword [rbp + 0xf8], xmm2
movups xmm0, xmmword [0x140093120]
jmp 0x140015b07
movups xmm0, xmmword [0x140093130]
movups xmmword [rbp + 0xf8], xmm0
movups xmm0, xmmword [0x140093140]
movups xmmword [rsp + 0x48], xmm0
movsd xmm6, qword [rbp + 0x30]
cmp byte [0x1400940ca], 0
je 0x140015b77
movdqa xmmword [rbp + 0x10], xmm0
movups xmm1, xmmword [0x140093150]
movdqa xmmword [rsp + 0x70], xmm1
cvttss2si r9d, dword [rsp + 0x40]
cvttss2si r8d, xmm7
cvttsd2si edx, xmm11
mulss xmm7, xmm13
cvtps2pd xmm0, xmm7
movaps xmm1, xmm6
subsd xmm1, xmm0
cvttsd2si ecx, xmm1
mov dword [rsp + 0x30], 2
lea rax, [rbp + 0x10]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
call fcn.140017d50
movups xmm2, xmmword [0x140093110]
cmp byte [0x1400940cb], 0
je 0x140015ba8
movaps xmmword [rbp + 0x110], xmm8
movsd qword [rbp + 0x120], xmm12
movdqa xmmword [rsp + 0x70], xmm2
lea rdx, [rbp + 0x110]
lea rcx, [rsp + 0x70]
call fcn.140018110
cmp byte [0x1400940cc], 0
je 0x140015bd1
movups xmm0, xmmword [0x140093160]
movdqa xmmword [rsp + 0x70], xmm0
mov r8d, 2
lea rdx, [rsp + 0x70]
mov rcx, rsi
call fcn.140018420
movsd xmm12, qword [rbp + 0x40]
cmp byte [0x1400940cd], 0
je 0x140015c51
call fcn.140036960
mov rbx, rax
lea rcx, [0x140093170]
call fcn.140033b00
cvtpd2ps xmm1, xmm9
cvtpd2ps xmm0, xmm12
movss dword [rbp - 0x68], xmm0
movss dword [rbp - 0x64], xmm1
movd xmm2, dword [0x1400940e0]
cvtdq2ps xmm2, xmm2
subss xmm2, dword [0x14007dfb8]
movd xmm0, dword [0x1400940e4]
cvtdq2ps xmm0, xmm0
movss dword [rbp - 0x60], xmm0
movss dword [rbp - 0x5c], xmm2
movss xmm0, dword [0x14007df48]
movss dword [rsp + 0x20], xmm0
mov r9d, eax
lea r8, [rbp - 0x68]
lea rdx, [rbp - 0x60]
mov rcx, rbx
call fcn.14004b440
cmp byte [0x1400940ce], 0
je 0x140015d78
mov rdx, qword [rsp + 0x60]
lea rcx, [rbp + 0x110]
call fcn.14001c7d0
nop
lea rdx, [rbp + 0x110]
cmp qword [rbp + 0x128], 0xf
cmova rdx, qword [rbp + 0x110]
movss xmm0, dword [0x14007e008]
movss dword [rsp + 0x20], xmm0
xor r9d, r9d
xor r8d, r8d
lea rcx, [rbp + 0xc8]
call fcn.140032aa0
lea rbx, [rbp + 0x110]
cmp qword [rbp + 0x128], 0xf
cmova rbx, qword [rbp + 0x110]
movups xmm8, xmmword [0x140093180]
subsd xmm11, qword [0x14007df80]
movss xmm0, dword [rbp + 0xcc]
mulss xmm0, xmm13
cvtps2pd xmm1, xmm0
subsd xmm11, xmm1
cvtpd2ps xmm7, xmm11
movss xmm0, dword [rbp + 0xc8]
mulss xmm0, xmm13
cvtps2pd xmm1, xmm0
subsd xmm6, xmm1
cvtpd2ps xmm6, xmm6
call fcn.140036c10
movdqa xmmword [rsp + 0x60], xmm8
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x60]
unpcklps xmm6, xmm7
movq r8, xmm6
movss xmm11, dword [0x14007dfc0]
movaps xmm1, xmm11
mov rcx, rax
call fcn.1400198e0
nop
mov rdx, qword [rbp + 0x128]
cmp rdx, 0xf
jbe 0x140015d81
inc rdx
mov rcx, qword [rbp + 0x110]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015d71
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140016557
call fcn.140075518
jmp 0x140015d81
movss xmm11, dword [0x14007dfc0]
cmp byte [0x1400940cf], 0
je 0x140015e50
shufps xmm14, xmm14, 0xaa
xorps xmm2, xmm2
cvtss2sd xmm2, xmm14
movq r8, xmm2
lea rdx, str._.f_M
lea rcx, [rbp + 0x110]
call fcn.14000b830
movss xmm0, dword [0x14007e008]
movss dword [rsp + 0x20], xmm0
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x110]
lea rcx, [rbp + 0xc0]
call fcn.140032aa0
movups xmm8, xmmword [0x140093190]
movss xmm0, dword [rbp + 0xc0]
mulss xmm0, xmm13
cvtps2pd xmm1, xmm0
subsd xmm12, xmm1
cvtpd2ps xmm7, xmm12
addsd xmm9, qword [0x14007df80]
movss xmm0, dword [rbp + 0xc4]
mulss xmm0, xmm13
cvtps2pd xmm1, xmm0
subsd xmm9, xmm1
cvtpd2ps xmm6, xmm9
call fcn.140036c10
movdqa xmmword [rsp + 0x60], xmm8
lea rcx, [rbp + 0x110]
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x60]
unpcklps xmm7, xmm6
movq r8, xmm7
movaps xmm1, xmm11
mov rcx, rax
call fcn.1400198e0
cmp byte [0x1400940d0], 0
je 0x140015fa3
movsd xmm0, qword [0x1400931d8]
mulsd xmm0, qword [0x14007df78]
divsd xmm0, qword [0x14007dfb0]
cvtpd2ps xmm6, xmm0
movaps xmm1, xmm10
subsd xmm1, qword [0x1400931b8]
xorps xmm9, xmm9
cvtsd2ss xmm9, xmm1
unpckhpd xmm10, xmm10
subsd xmm10, qword [0x1400931c0]
xorps xmm8, xmm8
cvtsd2ss xmm8, xmm10
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
movaps xmm7, xmm0
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
movaps xmm10, xmm0
xorps xmm10, xmmword [0x14007e190]
movaps xmm11, xmm10
mulss xmm11, xmm8
movaps xmm1, xmm7
mulss xmm1, xmm9
addss xmm11, xmm1
xorps xmm11, xmmword [0x14007e190]
mulss xmm10, xmm9
mulss xmm7, xmm8
subss xmm10, xmm7
movaps xmm1, xmm10
mulss xmm1, xmm10
movaps xmm0, xmm11
mulss xmm0, xmm11
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x140015f18
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x140015f20
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
divss xmm11, xmm0
divss xmm10, xmm0
movss xmm6, dword [0x1400930e4]
addss xmm6, dword [0x14007dfb8]
movups xmm0, xmmword [rbp + 0xf8]
movdqa xmmword [rsp + 0x60], xmm0
movaps xmm1, xmm11
movaps xmm0, xmm10
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2f
movaps xmm2, xmm0
xorps xmm1, xmm1
cvtsi2ss xmm1, dword [0x1400940e0]
mulss xmm1, xmm13
movaps xmm0, xmm6
mulss xmm0, xmm10
addss xmm1, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [0x1400940dc]
mulss xmm0, xmm13
mulss xmm6, xmm11
addss xmm0, xmm6
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
movss xmm3, dword [0x14007dfd0]
call fcn.140017b20
cmp byte [0x1400940d1], 0
je 0x1400162e4
mov qword [rbp - 0x58], 0
mov dword [rbp - 0x50], 0x41200000
mov dword [rbp - 0x4c], 0x42700000
lea r8, [rbp - 0x58]
xor edx, edx
lea rcx, [rbp - 0x50]
call fcn.140044220
mov dword [rbp - 0x48], 0x43480000
mov dword [rbp - 0x44], 0x43480000
xor edx, edx
lea rcx, [rbp - 0x48]
call fcn.140044260
xor edx, edx
mov r8d, 0x2b
lea rcx, str.radar
call fcn.14002f2d0
lea rcx, [rbp + 0xb8]
call fcn.140037950
lea rcx, [rbp + 0xb0]
call fcn.140037970
call fcn.140037900
mov rbx, rax
movss xmm7, dword [0x14007df48]
movaps xmm1, xmm7
mov ecx, 5
call fcn.140036b30
movss xmm2, dword [rbp + 0xb0]
mulss xmm2, xmm13
addss xmm2, dword [rbp + 0xb8]
movss dword [rbp - 0x40], xmm2
movss xmm0, dword [rbp + 0xb4]
movss xmm1, dword [rbp + 0xbc]
addss xmm0, xmm1
movss dword [rbp - 0x3c], xmm0
movss dword [rbp - 0x38], xmm2
movss dword [rbp - 0x34], xmm1
movss dword [rsp + 0x20], xmm7
mov r9d, eax
lea r8, [rbp - 0x40]
lea rdx, [rbp - 0x38]
mov rcx, rbx
call fcn.14004b440
call fcn.140037900
mov rbx, rax
movaps xmm1, xmm7
mov ecx, 5
call fcn.140036b30
movss xmm0, dword [rbp + 0xb0]
movss xmm2, dword [rbp + 0xb8]
addss xmm0, xmm2
movss dword [rbp - 0x30], xmm0
movss xmm1, dword [rbp + 0xb4]
mulss xmm1, xmm13
addss xmm1, dword [rbp + 0xbc]
movss dword [rbp - 0x2c], xmm1
movss dword [rbp - 0x28], xmm2
movss dword [rbp - 0x24], xmm1
movss dword [rsp + 0x20], xmm7
mov r9d, eax
lea r8, [rbp - 0x30]
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.14004b440
call fcn.140037900
mov rbx, rax
movaps xmm1, xmm7
mov ecx, 5
call fcn.140036b30
movss xmm1, dword [rbp + 0xb8]
movss dword [rbp - 0x20], xmm1
movss xmm2, dword [rbp + 0xbc]
movss dword [rbp - 0x1c], xmm2
movss xmm0, dword [rbp + 0xb0]
mulss xmm0, xmm13
addss xmm0, xmm1
movss dword [rbp - 0x18], xmm0
movss xmm1, dword [rbp + 0xb4]
mulss xmm1, xmm13
addss xmm1, xmm2
movss dword [rbp - 0x14], xmm1
movss dword [rsp + 0x20], xmm7
mov r9d, eax
lea r8, [rbp - 0x20]
lea rdx, [rbp - 0x18]
mov rcx, rbx
call fcn.14004b440
call fcn.140037900
mov rbx, rax
movaps xmm1, xmm7
mov ecx, 5
call fcn.140036b30
movss xmm3, dword [rbp + 0xb0]
movaps xmm0, xmm3
addss xmm0, dword [rbp + 0xb8]
movss dword [rbp - 0x10], xmm0
movss xmm2, dword [rbp + 0xbc]
movss dword [rbp - 0xc], xmm2
mulss xmm3, xmm13
addss xmm3, dword [rbp + 0xb8]
movss dword [rbp - 8], xmm3
movss xmm0, dword [rbp + 0xb4]
mulss xmm0, xmm13
addss xmm0, xmm2
movss dword [rbp - 4], xmm0
movss dword [rsp + 0x20], xmm7
mov r9d, eax
lea r8, [rbp - 0x10]
lea rdx, [rbp - 8]
mov rcx, rbx
call fcn.14004b440
call fcn.140037900
mov rbx, rax
movdqa xmm0, xmmword [0x14007e150]
movups xmmword [rbp + 0x60], xmm0
lea rcx, [rbp + 0x60]
call fcn.140033b00
movss xmm0, dword [rbp + 0xb0]
mulss xmm0, xmm13
addss xmm0, dword [rbp + 0xb8]
movss dword [rbp], xmm0
movss xmm1, dword [rbp + 0xb4]
mulss xmm1, xmm13
addss xmm1, dword [rbp + 0xbc]
movss dword [rbp + 4], xmm1
mov dword [rsp + 0x20], 0x40
mov r9d, eax
movss xmm6, dword [0x14007df70]
movaps xmm2, xmm6
lea rdx, [rbp]
mov rcx, rbx
call fcn.140049ea0
mov dword [rsp + 0x40], r12d
movups xmm0, xmmword [rbp + 0xd0]
movaps xmmword [rbp + 0x110], xmm0
movsd xmm0, qword [rbp + 0xe0]
movsd qword [rbp + 0x120], xmm0
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x58]
lea rcx, [rbp + 0x110]
call fcn.14001f420
call fcn.140037900
mov rbx, rax
lea rcx, [rbp + 0xf8]
call fcn.140033b00
movd xmm0, dword [rsp + 0x58]
cvtdq2ps xmm0, xmm0
movss dword [rbp - 0x70], xmm0
movd xmm1, dword [rsp + 0x40]
cvtdq2ps xmm1, xmm1
movss dword [rbp - 0x6c], xmm1
mov dword [rsp + 0x20], 0x40
mov r9d, eax
movaps xmm2, xmm6
lea rdx, [rbp - 0x70]
mov rcx, rbx
call fcn.140049ea0
call fcn.140034ac0
jmp 0x1400162ec
movss xmm7, dword [0x14007df48]
mov rcx, qword [0x140094108]
add rcx, 0x348
cmp byte [0x1400940d5], 0
je 0x140016321
mov eax, dword [0x1400940c0]
mov dword [0x140093030], eax
call fcn.1400094d0
movd xmm6, dword [0x140093030]
cvtdq2ps xmm6, xmm6
jmp 0x140016330
mov dword [0x140093030], r12d
xorps xmm6, xmm6
call fcn.1400094d0
lea rcx, [rax + 0x2a8]
movaps xmm1, xmm6
call fcn.14000b9a0
mov r14, qword [rbp + 0x78]
cmp byte [0x1400940d4], 0
je 0x14001637e
test r14, r14
je 0x14001637e
test rsi, rsi
je 0x14001637e
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rcx, qword [0x140094110]
add rcx, 0x68
test ax, ax
je 0x140016376
xorps xmm1, xmm1
jmp 0x140016379
movaps xmm1, xmm7
call fcn.14000b9a0
cmp byte [0x1400940d6], 0
je 0x140016461
psrldq xmm15, 8
movq rbx, xmm15
test rbx, rbx
je 0x140016461
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140016461
movups xmm0, xmmword [0x1400931b8]
movaps xmmword [rbp + 0x110], xmm0
movsd xmm1, qword [0x1400931c8]
movsd qword [rbp + 0x120], xmm1
mov dword [rbp + 0xf1], r12d
mov word [rbp + 0xf5], r12w
mov byte [rbp + 0xf7], 0
mov dword [rbp + 0xd0], 0xe5d9a1
mov rcx, qword [0x140093080]
add rcx, rbx
mov qword [rbp + 0xd8], rcx
lea rax, [rbp + 0x110]
mov qword [rbp + 0xe0], rax
mov qword [rbp + 0xe8], 0x18
mov eax, dword [0x140093c98]
mov dword [rbp + 0xd4], eax
mov byte [rbp + 0xf0], 1
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
mov r9d, 0x28
lea r8, [rbp + 0xd0]
mov edx, 0x228ca4
mov rcx, qword [0x140093d30]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [0x1400940e4]
movsd xmm2, qword [rbp + 0x50]
subsd xmm2, xmm0
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [0x1400940e8]
movsd xmm0, qword [rbp + 0x58]
subsd xmm0, xmm1
mulsd xmm0, xmm0
mulsd xmm2, xmm2
addsd xmm0, xmm2
cvtpd2ps xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x1400164aa
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x1400164b2
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss xmm1, dword [0x1400930e4]
comiss xmm1, xmm0
jb 0x1400164e2
movss xmm1, dword [0x140094128]
comiss xmm1, xmm0
jbe 0x1400164e2
movss dword [0x140094128], xmm0
mov qword [0x140094130], rsi
mov qword [0x140094138], r14
add rdi, 0x40
cmp rdi, r15
jne 0x1400159a0
mov rcx, qword [rbp + 0x150]
xor rcx, rsp
call fcn.1400758e0
lea r11, [rsp + 0x300]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
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]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3