Function at 0x140031d80
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
lea rbp, [rsp - 0x180]
sub rsp, 0x280
mov rax, qword [0x140093070]
xor rax, rsp
mov qword [rbp + 0xb0], rax
mov rcx, qword [0x1400968b8]
add rcx, 0x9c9f3b0
call fcn.140039110
mov qword [0x1400969a0], rax
lea rcx, [rax + 0x188]
call fcn.140039110
test rax, rax
je 0x14003268c
lea rcx, [rax + 0x38]
call fcn.140039110
test rax, rax
je 0x14003268c
mov rcx, rax
call fcn.140039110
mov qword [0x140096948], rax
test rax, rax
je 0x14003268c
lea rcx, [rax + 0x30]
call fcn.140039110
mov qword [0x1400969a8], rax
test rax, rax
je 0x14003268c
lea rcx, [rax + 0x2a0]
call fcn.140039110
mov qword [0x140096a18], rax
test rax, rax
je 0x14003268c
lea rcx, [rax + 0x130]
call fcn.140039110
mov qword [0x140096990], rax
test rax, rax
je 0x14003268c
mov rcx, qword [0x140096a18]
test rcx, rcx
je 0x140031e67
add rcx, 0x18
call fcn.1400392f0
mov dword [0x140096924], eax
mov rcx, qword [0x1400969a0]
add rcx, 0x30
call fcn.140039110
mov qword [0x140096928], rax
test rax, rax
je 0x14003268c
mov rcx, qword [0x140096a18]
add rcx, 0x240
mov qword [rsp + 0x270], r13
call fcn.140039110
mov r13, rax
test rax, rax
je 0x140032684
mov eax, dword [0x140096a08]
lea r8, [rbp + 0x30]
mov dword [rbp + 0x34], eax
xor r9d, r9d
mov eax, dword [0x140096930]
xor edx, edx
mov dword [rbp + 0x38], eax
xor ecx, ecx
mov rax, qword [0x140096928]
add rax, 0xa0
mov qword [rsp + 0x298], rsi
mov qword [rbp + 0x48], rax
lea rax, [rbp + 0x68]
mov qword [rsp + 0x278], r12
xor r12d, r12d
mov qword [rbp + 0x58], rax
mov dword [rbp + 0x68], r12d
mov word [rbp + 0x31], r12w
mov byte [rbp + 0x33], r12b
mov qword [rbp + 0x3c], r12
mov dword [rbp + 0x44], r12d
mov qword [rbp + 0x50], 4
mov qword [rbp + 0x60], 0x1337
mov byte [rbp + 0x30], 3
mov qword [rsp + 0x20], r12
call qword [0x140096a00]
mov rcx, qword [0x140096928]
add rcx, 0x98
call fcn.140039110
mov rsi, rax
test rax, rax
je 0x140032674
mov ecx, dword [rbp + 0x68]
test ecx, ecx
je 0x140032674
mov qword [rsp + 0x290], rbx
mov qword [rsp + 0x260], r15
mov r15d, ecx
movaps xmmword [rsp + 0x200], xmm11
movss xmm11, dword [0x140088698]
movaps xmmword [rsp + 0x1f0], xmm12
xorps xmm12, xmm12
movaps xmmword [rsp + 0x1e0], xmm13
movss xmm13, dword [0x1400886d4]
movaps xmmword [rsp + 0x1d0], xmm14
movss xmm14, dword [0x140088710]
movaps xmmword [rsp + 0x1c0], xmm15
movsd xmm15, qword [0x1400887a8]
mov qword [rsp + 0x2a0], rdi
mov qword [rsp + 0x268], r14
movaps xmmword [rsp + 0x250], xmm6
movaps xmmword [rsp + 0x240], xmm7
movaps xmmword [rsp + 0x230], xmm8
movaps xmmword [rsp + 0x220], xmm9
movaps xmmword [rsp + 0x210], xmm10
mov rcx, rsi
call fcn.140039110
mov rbx, rax
lea rcx, [rax + 0x18]
call fcn.1400392f0
cmp eax, dword [0x140096924]
jne 0x1400325ee
lea rcx, [rbx + 0x130]
call fcn.140039110
lea rcx, [rbx + 0x280]
call fcn.140039110
lea rcx, [r13 + 0xed8]
mov rdi, rax
call fcn.1400392f0
lea rcx, [rbx + 0x240]
mov r14d, eax
call fcn.140039110
lea rcx, [rax + 0xed8]
call fcn.1400392f0
mov r8d, 0x42
lea rcx, [rsp + 0x50]
mov rdx, rdi
mov ebx, eax
call fcn.14002f7a0
mov eax, dword [0x140096a08]
lea r8, [rbp + 0x30]
movss xmm0, dword [0x140096a88]
xor r9d, r9d
movss xmm1, dword [0x140096a8c]
xor edx, edx
mov dword [rbp + 0x34], eax
xor ecx, ecx
mov eax, dword [0x140096930]
mov dword [rbp + 0x38], eax
mov rax, qword [0x140096990]
add rax, 0x11c
movss dword [0x140096aa8], xmm0
movss xmm0, dword [0x140096a90]
mov qword [rbp + 0x48], rax
lea rax, [rsp + 0x40]
mov qword [rbp + 0x58], rax
movss dword [0x140096aac], xmm1
movss dword [0x140096ab0], xmm0
mov qword [rsp + 0x40], r12
mov dword [rsp + 0x48], r12d
mov word [rbp + 0x31], r12w
mov byte [rbp + 0x33], r12b
mov qword [rbp + 0x3c], r12
mov dword [rbp + 0x44], r12d
mov qword [rbp + 0x50], 0xc
mov qword [rbp + 0x60], 0x1337
mov byte [rbp + 0x30], 3
mov qword [rsp + 0x20], r12
call qword [0x140096a00]
movss xmm0, dword [rsp + 0x40]
movss xmm1, dword [rsp + 0x44]
movss xmm2, dword [rsp + 0x48]
movss xmm3, dword [rsp + 0x50]
movss xmm4, dword [rsp + 0x54]
subss xmm3, xmm0
movss dword [0x140096a98], xmm0
subss xmm4, xmm1
movss xmm0, dword [rsp + 0x58]
subss xmm0, xmm2
movss dword [0x140096a9c], xmm1
movss dword [0x140096aa0], xmm2
mulss xmm3, xmm3
mulss xmm4, xmm4
mulss xmm0, xmm0
addss xmm4, xmm3
addss xmm4, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm4
ja 0x14003217d
xorps xmm6, xmm6
sqrtss xmm6, xmm4
jmp 0x140032188
movaps xmm0, xmm4
call fcn.140069808
movaps xmm6, xmm0
divss xmm6, dword [0x140088758]
mov r8d, 2
lea rcx, [rbp + 0x10]
mov rdx, rdi
call fcn.14002f7a0
xor r8d, r8d
lea rcx, [rbp - 0x78]
mov rdx, rdi
call fcn.14002f7a0
lea rdx, [rbp - 0x60]
mov eax, dword [rbp - 0x70]
lea rcx, [rbp - 0x20]
mov dword [rbp - 0x58], eax
movsd xmm1, qword [rbp - 0x78]
movsd qword [rbp - 0x60], xmm1
call fcn.140031890
movsd xmm0, qword [rsp + 0x50]
lea rdx, [rbp - 0x50]
mov eax, dword [rsp + 0x58]
lea rcx, [rbp + 0x20]
movsd qword [rbp - 0x50], xmm0
mov dword [rbp - 0x48], eax
call fcn.140031890
xor r8d, r8d
mov byte [0x1400968aa], 1
mov rdx, rdi
lea rcx, [rbp - 0x40]
movsd xmm0, qword [rax]
movsd qword [0x140096ab8], xmm0
mov eax, dword [rax + 8]
mov dword [0x140096ac0], eax
call fcn.14002f7a0
movsd xmm0, qword [rbp - 0x40]
lea rdx, [rbp - 0x30]
mov eax, dword [rbp - 0x38]
lea rcx, [rbp - 0x10]
movsd qword [rbp - 0x30], xmm0
mov dword [rbp - 0x28], eax
call fcn.140031890
cmp r14d, ebx
je 0x1400325ee
cmp byte [0x140094230], r12b
je 0x1400322ab
xorps xmm2, xmm2
lea rdx, str.Player___2.fm
cvtss2sd xmm2, xmm6
lea rcx, [rbp + 0x70]
movq r8, xmm2
call fcn.140039390
movss xmm0, dword [0x140096abc]
lea rax, [rbp + 0x70]
subss xmm0, dword [0x140088734]
cvttss2si edx, dword [0x140096ab8]
mov qword [rsp + 0x30], rax
lea r9, [0x140093e90]
mov byte [rsp + 0x28], 1
mov byte [rsp + 0x20], 1
cvttss2si r8d, xmm0
movss xmm0, dword [0x140088730]
movd ecx, xmm0
call fcn.14002f990
cmp byte [0x14009422f], r12b
je 0x140032349
movss xmm3, dword [rbp - 0x20]
movss xmm2, dword [rbp - 0x1c]
cvtps2pd xmm0, xmm3
cvtps2pd xmm1, xmm2
comisd xmm0, xmmword [0x1400886e8]
jb 0x140032349
movsd xmm4, qword [0x140088708]
comisd xmm4, xmm0
jb 0x140032349
comisd xmm1, xmm15
jb 0x140032349
movsd xmm0, qword [0x140088700]
comisd xmm0, xmm1
jb 0x140032349
movaps xmm0, xmmword [0x140088e60]
lea rcx, [rbp]
movups xmmword [rbp], xmm0
mov dword [rsp + 0x60], 0x44700000
movss dword [rbp + 0x68], xmm3
movss dword [rbp + 0x6c], xmm2
mov dword [rsp + 0x64], 0x44848000
call fcn.140002cd0
mov rcx, qword [0x1400968b0]
lea r8, [rbp + 0x68]
add rcx, 0x1cc8
movss dword [rsp + 0x20], xmm11
mov r9d, eax
lea rdx, [rsp + 0x60]
call fcn.14001cba0
cmp byte [0x14009422c], r12b
movss xmm10, dword [rbp - 0xc]
movss xmm9, dword [rbp - 0x10]
je 0x1400323e9
movss xmm1, dword [0x140096abc]
lea r8, [rsp + 0x68]
mov rcx, qword [0x1400968b0]
lea rdx, [rsp + 0x70]
movaps xmm2, xmm10
movss dword [rsp + 0x30], xmm11
subss xmm2, xmm1
mov dword [rsp + 0x28], 0xf
addss xmm1, xmm14
movss dword [rsp + 0x74], xmm10
add rcx, 0x1cc8
movss dword [rsp + 0x20], xmm12
mov r9d, 0xffffffff
movaps xmm0, xmm2
mulss xmm2, dword [0x140088654]
divss xmm0, xmm13
movss dword [rsp + 0x6c], xmm1
addss xmm0, dword [0x140096ab8]
movss dword [rsp + 0x68], xmm0
movaps xmm0, xmm9
subss xmm0, xmm2
movss dword [rsp + 0x70], xmm0
call fcn.14001cd20
cmp byte [0x140094210], r12b
je 0x140032566
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14003241a
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140032566
movss xmm5, dword [0x140096a20]
movss xmm1, dword [0x140094218]
movss xmm3, dword [0x140096ab8]
movss xmm2, dword [0x140096abc]
movss xmm4, dword [0x1400969fc]
cvtps2pd xmm5, xmm5
cvtps2pd xmm1, xmm1
movaps xmm0, xmm5
cvtps2pd xmm7, xmm3
subsd xmm0, xmm1
cvtps2pd xmm8, xmm2
comisd xmm7, xmm0
cvtps2pd xmm4, xmm4
jb 0x140032576
addsd xmm5, xmm1
comisd xmm5, xmm7
jb 0x140032576
movaps xmm0, xmm4
subsd xmm0, xmm1
comisd xmm8, xmm0
jb 0x140032576
addsd xmm4, xmm1
comisd xmm4, xmm8
jb 0x140032576
movss xmm0, dword [0x140094220]
comiss xmm0, xmm6
jbe 0x140032576
cmp byte [0x140094210], r12b
je 0x140032576
mov ecx, 0x28
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1400324d4
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140032566
movss xmm5, dword [0x140096a20]
movss xmm1, dword [0x140094218]
movss xmm3, dword [0x140096ab8]
movss xmm2, dword [0x140096abc]
movss xmm4, dword [0x1400969fc]
cvtps2pd xmm5, xmm5
cvtps2pd xmm1, xmm1
movaps xmm0, xmm5
cvtps2pd xmm7, xmm3
subsd xmm0, xmm1
cvtps2pd xmm8, xmm2
comisd xmm7, xmm0
cvtps2pd xmm4, xmm4
jb 0x140032576
addsd xmm5, xmm1
comisd xmm5, xmm7
jb 0x140032576
movaps xmm0, xmm4
subsd xmm0, xmm1
comisd xmm8, xmm0
jb 0x140032576
addsd xmm4, xmm1
comisd xmm4, xmm8
jb 0x140032576
movss xmm0, dword [0x140094220]
comiss xmm0, xmm6
jbe 0x140032576
cvttss2si eax, xmm3
mov byte [0x1400968a9], 1
mov dword [0x1400969b4], eax
cvttss2si eax, xmm2
mov dword [0x1400969b0], eax
jmp 0x140032576
movss xmm2, dword [0x140096abc]
movss xmm3, dword [0x140096ab8]
cmp byte [0x14009422d], r12b
je 0x1400325ee
mov rcx, qword [0x1400968b0]
lea r8, [rsp + 0x78]
movaps xmm1, xmm10
mov dword [rsp + 0x28], 0xf
subss xmm1, xmm2
movss dword [rbp - 0x7c], xmm10
addss xmm2, xmm14
movss dword [rsp + 0x20], xmm12
add rcx, 0x1cc8
lea rdx, [rbp - 0x80]
mov r9d, 0xb4282828
movaps xmm0, xmm1
mulss xmm1, dword [0x140088650]
divss xmm0, xmm13
subss xmm9, xmm1
movss dword [rsp + 0x7c], xmm2
addss xmm0, xmm3
movss dword [rbp - 0x80], xmm9
movss dword [rsp + 0x78], xmm0
call fcn.14001ce50
add rsi, 8
sub r15, 1
jne 0x140031ff8
movaps xmm15, xmmword [rsp + 0x1c0]
movaps xmm14, xmmword [rsp + 0x1d0]
movaps xmm13, xmmword [rsp + 0x1e0]
movaps xmm12, xmmword [rsp + 0x1f0]
movaps xmm11, xmmword [rsp + 0x200]
movaps xmm10, xmmword [rsp + 0x210]
movaps xmm9, xmmword [rsp + 0x220]
movaps xmm8, xmmword [rsp + 0x230]
movaps xmm7, xmmword [rsp + 0x240]
movaps xmm6, xmmword [rsp + 0x250]
mov r15, qword [rsp + 0x260]
mov r14, qword [rsp + 0x268]
mov rdi, qword [rsp + 0x2a0]
mov rbx, qword [rsp + 0x290]
mov r12, qword [rsp + 0x278]
mov rsi, qword [rsp + 0x298]
mov r13, qword [rsp + 0x270]
mov rcx, qword [rbp + 0xb0]
xor rcx, rsp
call fcn.14003c8e0
add rsp, 0x280
pop rbp
ret