Function at 0x180021720
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 [0x180126408]
xor rax, rsp
mov qword [rbp - 0x20], rax
cmp byte [0x1801a1b2d], 0
je 0x180022444
xor r14d, r14d
mov dword [0x180140698], r14d
mov dword [0x1801406a8], r14d
movabs rsi, 0xd80958fc74e988a6
mov qword [0x1801a4b50], rsi
call fcn.180036910
mov ecx, dword [rax]
mov dword [0x1801406a8], r14d
movabs rax, 0x3a87e44bb9a01d54
mov qword [0x1801a4b50], rax
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], ecx
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
lea rax, [rbp - 0x50]
mov qword [0x180140778], rax
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], 1
mov rax, qword [rbp - 0x80]
mov qword [0x180140780], rax
mov dword [0x180140698], 3
call fcn.180036910
mov dword [0x180140698], r14d
mov dword [0x1801406a8], r14d
movabs r13, 0x4f8644af03d0e0d6
mov qword [0x1801a4b50], r13
call fcn.180036910
mov dword [0x180140698], r14d
mov dword [0x1801406a8], r14d
mov qword [0x1801a4b50], rsi
call fcn.180036910
mov ebx, dword [rax]
mov dword [0x1801406a8], r14d
movabs rax, 0x837765a25378f0bb
mov qword [0x1801a4b50], rax
mov qword [0x180140770], r14
mov dword [0x180140698], 1
call fcn.180036910
movups xmm1, xmmword [rax]
movsd xmm6, qword [rax + 0x10]
movsd qword [rbp - 0x28], xmm6
mulss xmm6, dword [0x1800f6f74]
mulss xmm1, dword [0x1800f6f74]
xorps xmm8, xmm8
cvtss2sd xmm8, xmm1
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
andps xmm1, xmmword [0x1800fb340]
cvtss2sd xmm6, xmm6
cvtps2pd xmm7, xmm1
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
xorps xmm1, xmmword [0x1800fb370]
xorps xmm2, xmm2
cvtss2sd xmm2, xmm1
mulsd xmm2, xmm7
cvtpd2ps xmm11, xmm2
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
cvtps2pd xmm2, xmm1
mulsd xmm2, xmm7
cvtpd2ps xmm12, xmm2
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
xorps xmm13, xmm13
cvtsd2ss xmm13, xmm0
mov dword [0x180140698], r14d
mov dword [0x1801406a8], r14d
movabs rax, 0x14d6f5678d8f1b37
mov qword [0x1801a4b50], rax
call fcn.180036910
movups xmm7, xmmword [rax]
movsd xmm9, qword [rax + 0x10]
mov dword [0x180140698], r14d
mov dword [0x1801406a8], r14d
mov qword [0x1801a4b50], rsi
call fcn.180036910
mov ecx, dword [rax]
mov dword [0x1801406a8], r14d
movabs rax, 0x3fef770d40960d5a
mov qword [0x1801a4b50], rax
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], ecx
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], 1
mov rax, qword [rbp - 0x80]
mov qword [0x180140778], rax
mov dword [0x180140698], 2
call fcn.180036910
movups xmm1, xmmword [rax]
movsd xmm2, qword [rax + 0x10]
movaps xmm0, xmm1
subss xmm0, xmm7
xorps xmm3, xmm3
cvtss2sd xmm3, xmm0
shufps xmm1, xmm1, 0xaa
movaps xmm8, xmm7
shufps xmm8, xmm7, 0xaa
subss xmm1, xmm8
cvtss2sd xmm1, xmm1
movsd qword [rbp - 0x28], xmm2
movsd qword [rbp - 0x28], xmm9
subss xmm2, xmm9
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
mulsd xmm1, xmm1
mulsd xmm3, xmm3
addsd xmm3, xmm1
addsd xmm3, xmm0
xorps xmm0, xmm0
ucomisd xmm0, xmm3
ja 0x180021a10
sqrtpd xmm0, xmm3
jmp 0x180021a18
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
cvtsd2ss xmm0, xmm0
addss xmm0, dword [0x1800f72ac]
movaps xmm6, xmm11
mulss xmm6, xmm0
addss xmm6, xmm7
movaps xmm7, xmm12
mulss xmm7, xmm0
addss xmm7, xmm8
movaps xmm8, xmm13
mulss xmm8, xmm0
addss xmm8, xmm9
mov dword [0x180140698], r14d
mov dword [0x1801406a8], r14d
mov qword [0x1801a4b50], r13
call fcn.180036910
mov ecx, dword [rax]
mov dword [0x1801406a8], r14d
movabs rdi, 0x57fff03e423a4c0b
mov qword [0x1801a4b50], rdi
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], ecx
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov dword [0x180140698], 1
call fcn.180036910
mov dword [0x1801406a8], r14d
mov qword [0x1801a4b50], rdi
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], ebx
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov dword [0x180140698], 1
call fcn.180036910
mov dword [rbp - 0x48], 8
mov dword [rbp - 0x44], 0x10b8
mov dword [rbp - 0x40], 0x10a8
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r14
mov ecx, 0xc
call fcn.1800c2658
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], rax
lea rbx, [rax + 0xc]
mov qword [rbp - 0x60], rbx
mov r8d, 0xc
lea rdx, [rbp - 0x48]
mov rcx, rax
call sub.VCRUNTIME140.dll_memmove
mov qword [rbp - 0x68], rbx
lea rax, [rbp - 0x70]
mov qword [rbp - 0x80], rax
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x38]
call fcn.1800265d0
mov rdx, rax
mov rcx, qword [0x1801a2428]
call fcn.180032510
test rax, rax
jne 0x180021d83
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x180021b93
mov rax, qword [rbp - 0x60]
sub rax, rcx
sar rax, 2
lea rdx, [rax*4]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180021b8e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180021dd2
call fcn.1800c2650
mov dword [0x180140698], r14d
mov dword [0x1801406a8], r14d
mov qword [0x1801a4b50], rsi
call fcn.180036910
mov ecx, dword [rax]
mov dword [0x1801406a8], r14d
movabs rax, 0xf0a4f1bbf4fa7497
mov qword [0x1801a4b50], rax
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], ecx
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], r14d
mov rax, qword [rbp - 0x80]
mov qword [0x180140778], rax
mov dword [0x180140698], 2
call fcn.180036910
mov dword [0x180140698], r14d
mov dword [0x1801406a8], r14d
mov qword [0x1801a4b50], rsi
call fcn.180036910
mov ecx, dword [rax]
mov dword [0x1801406a8], r14d
movabs rax, 0xdf993ee5e90aba25
mov qword [0x1801a4b50], rax
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], ecx
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], r14d
mov rax, qword [rbp - 0x80]
mov qword [0x180140778], rax
mov dword [0x180140698], 2
call fcn.180036910
mov dword [0x180140698], r14d
mov dword [0x1801406a8], r14d
mov qword [0x1801a4b50], rsi
call fcn.180036910
mov ecx, dword [rax]
mov dword [0x1801406a8], r14d
movabs rax, 0xb128377056a54e2a
mov qword [0x1801a4b50], rax
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], ecx
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], r14d
mov rax, qword [rbp - 0x80]
mov qword [0x180140778], rax
mov dword [0x180140698], 2
call fcn.180036910
mov dword [rbp - 0x80], 8
mov dword [rbp - 0x7c], 0x280
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r14
mov ecx, 8
call fcn.1800c2658
mov qword [rbp - 0x70], rax
lea rdx, [rax + 8]
mov qword [rbp - 0x60], rdx
mov rcx, qword [rbp - 0x80]
mov qword [rax], rcx
mov qword [rbp - 0x68], rdx
lea rax, [rbp - 0x70]
mov qword [rbp - 0x58], rax
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x38]
call fcn.1800265d0
mov rdx, rax
mov rcx, qword [0x1801a2428]
call fcn.180032510
movss xmm9, dword [0x1800f8218]
test rax, rax
jne 0x180021dd9
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x180021e25
mov rdx, qword [rbp - 0x60]
sub rdx, rcx
and rdx, 0xfffffffffffffffc
mov rax, rcx
cmp rdx, 0x1000
jb 0x180021d79
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180021e13
call fcn.1800c2650
jmp 0x180021e25
mov dword [rax], 0x20
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x180021b93
mov rax, qword [rbp - 0x60]
sub rax, rcx
sar rax, 2
lea rdx, [rax*4]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180021b8e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180021b8e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
movss xmm10, dword [rax]
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x180021e1f
mov rdx, qword [rbp - 0x60]
sub rdx, rcx
and rdx, 0xfffffffffffffffc
mov rax, rcx
cmp rdx, 0x1000
jb 0x180021e1a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180021e1a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800c2650
comiss xmm9, xmm10
jb 0x180021e6d
mov dword [rbp - 0x80], 8
mov dword [rbp - 0x7c], 0x280
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r14
mov ecx, 8
call fcn.1800c2658
mov qword [rbp - 0x70], rax
lea rdx, [rax + 8]
mov qword [rbp - 0x60], rdx
mov rcx, qword [rbp - 0x80]
mov qword [rax], rcx
mov qword [rbp - 0x68], rdx
movaps xmm1, xmm9
lea rcx, [rbp - 0x70]
call fcn.180026100
mov dword [0x180140698], r14d
mov dword [0x1801406a8], r14d
mov qword [0x1801a4b50], r13
call fcn.180036910
mov esi, dword [rax]
mov dword [0x1801406a8], r14d
movabs rax, 0x50fac3a3e030a6e1
mov qword [0x1801a4b50], rax
mov qword [rbp - 0x80], r14
mov eax, dword [0x1801a39c4]
mov dword [rbp - 0x80], eax
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov dword [0x180140698], 1
call fcn.180036910
mov ecx, dword [rax]
mov dword [0x1801406a8], r14d
movabs rdi, 0x9a9112a0fe9a4713
mov qword [0x1801a4b50], rdi
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], ecx
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov qword [0x180140778], r14
mov dword [0x180140698], 2
call fcn.180036910
mov ebx, dword [rax]
mov dword [0x1801406a8], r14d
movabs r15, 0xb69317bf5e782347
mov qword [0x1801a4b50], r15
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], ebx
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov dword [0x180140698], 1
call fcn.180036910
mov dword [0x1801406a8], r14d
movabs r12, 0x1bf60a500e28887
mov qword [0x1801a4b50], r12
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], ebx
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov dword [0x180140698], 1
call fcn.180036910
cmp dword [rax], 0
jne 0x180022444
mov dword [0x180140698], r14d
mov dword [0x1801406a8], r14d
mov qword [0x1801a4b50], r13
call fcn.180036910
mov ecx, dword [rax]
mov dword [0x1801406a8], r14d
movabs rax, 0x2975c866e6713290
mov qword [0x1801a4b50], rax
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], ecx
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
lea rax, [rbp - 0x78]
mov qword [0x180140778], rax
mov dword [0x180140698], 2
call fcn.180036910
cmp dword [rax], 0
je 0x180022444
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180022444
mov dword [0x1801406a8], r14d
movabs rax, 0x3fef770d40960d5a
mov qword [0x1801a4b50], rax
mov qword [rbp - 0x80], r14
mov eax, dword [rbp - 0x78]
mov dword [rbp - 0x80], eax
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov qword [0x180140778], r14
mov dword [0x180140698], 2
call fcn.180036910
mov dword [0x1801406a8], r14d
movabs rax, 0x524ac5ecea15343e
mov qword [0x1801a4b50], rax
mov qword [rbp - 0x80], r14
mov eax, dword [rbp - 0x78]
mov dword [rbp - 0x80], eax
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov dword [0x180140698], 1
call fcn.180036910
cmp dword [rax], 0
je 0x180022123
mov dword [0x1801406a8], r14d
movabs rax, 0x997abd671d25ca0b
mov qword [0x1801a4b50], rax
mov qword [rbp - 0x80], r14
mov eax, dword [rbp - 0x78]
mov dword [rbp - 0x80], eax
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], 1
mov rax, qword [rbp - 0x80]
mov qword [0x180140778], rax
mov dword [0x180140698], 2
call fcn.180036910
cmp dword [rax], 0
je 0x180022123
mov dword [0x1801406a8], r14d
mov qword [0x1801a4b50], rdi
mov qword [rbp - 0x80], r14
mov eax, dword [rbp - 0x78]
mov dword [rbp - 0x80], eax
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov qword [0x180140778], r14
mov dword [0x180140698], 2
call fcn.180036910
mov edi, dword [rax]
mov dword [rbp - 0x78], edi
jmp 0x180022126
mov edi, dword [rbp - 0x78]
mov dword [0x1801406a8], r14d
mov qword [0x1801a4b50], r15
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], edi
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov dword [0x180140698], 1
call fcn.180036910
mov ebx, r14d
nop dword [rax + rax]
mov dword [0x1801406a8], r14d
mov qword [0x1801a4b50], r12
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], edi
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov dword [0x180140698], 1
call fcn.180036910
cmp dword [rax], 0
jne 0x1800221e7
call qword [sym.imp.WINMM.dll_timeGetTime]
mov dword [0x1801a24c0], eax
mov rcx, qword [0x1801a24c8]
call qword [sym.imp.KERNEL32.dll_SwitchToFiber]
mov dword [0x1801406a8], r14d
mov qword [0x1801a4b50], r15
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], edi
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov dword [0x180140698], 1
call fcn.180036910
inc ebx
cmp ebx, 0x32
jle 0x180022160
mov dword [0x1801406a8], r14d
movabs rax, 0x6ac7003fa6e5575e
mov qword [0x1801a4b50], rax
mov qword [rbp - 0x80], r14
mov eax, dword [rbp - 0x78]
mov dword [rbp - 0x80], eax
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov dword [0x180140698], 1
call fcn.180036910
movabs rbx, 0xe83d4f9ba2a38914
movabs rdi, 0x8e2530aa8ada980e
cmp dword [rax], 0
je 0x1800222b5
mov dword [0x1801406a8], r14d
mov qword [0x1801a4b50], rbx
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], esi
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov dword [0x180140698], 1
call fcn.180036910
movss xmm0, dword [rax]
mov dword [0x1801406a8], r14d
mov qword [0x1801a4b50], rdi
mov qword [rbp - 0x80], r14
mov eax, dword [rbp - 0x78]
mov dword [rbp - 0x80], eax
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov qword [rbp - 0x80], r14
movss dword [rbp - 0x80], xmm0
mov rax, qword [rbp - 0x80]
mov qword [0x180140778], rax
mov dword [0x180140698], 2
call fcn.180036910
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r14d
movaps xmm3, xmm8
movaps xmm2, xmm7
movaps xmm1, xmm6
mov ecx, dword [rbp - 0x78]
call fcn.1800292d0
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180022444
mov dword [0x1801406a8], r14d
movabs rax, 0xe65f427eb70ab1ed
mov qword [0x1801a4b50], rax
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], 0xffffffff
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
lea rax, str.Foot_Swish
mov qword [0x180140778], rax
mov qword [rbp - 0x80], r14
mov eax, dword [rbp - 0x78]
mov dword [rbp - 0x80], eax
mov rax, qword [rbp - 0x80]
mov qword [0x180140780], rax
lea rax, str.docks_heist_finale_2a_sounds
mov qword [0x180140788], rax
mov qword [0x180140790], r14
mov qword [0x180140798], r14
mov dword [0x180140698], 6
call fcn.180036910
mov dword [0x1801406a8], r14d
mov qword [0x1801a4b50], rbx
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x80], esi
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov dword [0x180140698], 1
call fcn.180036910
movss xmm0, dword [rax]
mov dword [0x1801406a8], r14d
mov qword [0x1801a4b50], rdi
mov qword [rbp - 0x80], r14
mov eax, dword [rbp - 0x78]
mov dword [rbp - 0x80], eax
mov rax, qword [rbp - 0x80]
mov qword [0x180140770], rax
mov qword [rbp - 0x80], r14
movss dword [rbp - 0x80], xmm0
mov rax, qword [rbp - 0x80]
mov qword [0x180140778], rax
mov dword [0x180140698], 2
call fcn.180036910
movss xmm0, dword [0x1800f8ca0]
mulss xmm13, xmm0
mulss xmm12, xmm0
mulss xmm11, xmm0
mov dword [rsp + 0x70], 1
mov dword [rsp + 0x68], r14d
mov dword [rsp + 0x58], 1
mov dword [rsp + 0x50], r14d
mov dword [rsp + 0x48], r14d
xorps xmm0, xmm0
movss dword [rsp + 0x40], xmm0
movss dword [rsp + 0x38], xmm0
movss dword [rsp + 0x30], xmm0
movss dword [rsp + 0x28], xmm13
movss dword [rsp + 0x20], xmm12
movaps xmm3, xmm11
mov edx, dword [rbp - 0x78]
call fcn.180028a50
mov rcx, qword [rbp - 0x20]
xor rcx, rsp
call fcn.1800c22b0
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