Function at 0x140087260
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 8], rcx
push rbp
lea rbp, [rax - 0x1e8]
sub rsp, 0x2e0
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x38], xmm8
movaps xmmword [rax - 0x48], xmm9
movaps xmmword [rax - 0x58], xmm10
movaps xmmword [rax - 0x68], xmm11
movaps xmmword [rax - 0x78], xmm12
mov rbx, rdx
xorps xmm6, xmm6
mov qword [rbp - 0x30], 0
add rdx, 0x58
movss xmm2, dword [rdx + 8]
movss xmm1, dword [rdx + 4]
movss xmm0, dword [rdx]
movss dword [rbp - 0x28], xmm0
movss dword [rbp - 0x24], xmm1
movss dword [rbp - 0x20], xmm2
mov byte [rbp - 0x1c], 0
mov qword [rbp - 0x18], 0
movss xmm2, dword [rbx + 0x6c]
movss xmm1, dword [rbx + 0x68]
movss xmm0, dword [rbx + 0x64]
movss dword [rbp - 0x10], xmm0
movss dword [rbp - 0xc], xmm1
movss dword [rbp - 8], xmm2
mov byte [rbp - 4], 0
mov qword [rbp], 0
movss xmm2, dword [rbx + 0x78]
movss xmm1, dword [rbx + 0x74]
movss xmm0, dword [rbx + 0x70]
movss dword [rbp + 8], xmm0
movss dword [rbp + 0xc], xmm1
movss dword [rbp + 0x10], xmm2
mov byte [rbp + 0x14], 0
mov qword [rbp + 0x18], 0
movss xmm2, dword [rbx + 0x84]
movss xmm1, dword [rbx + 0x80]
movss xmm0, dword [rbx + 0x7c]
movss dword [rbp + 0x20], xmm0
movss dword [rbp + 0x24], xmm1
movss dword [rbp + 0x28], xmm2
mov byte [rbp + 0x2c], 0
mov qword [rbp + 0x30], 0
movss xmm2, dword [rbx + 0x90]
movss xmm1, dword [rbx + 0x8c]
movss xmm0, dword [rbx + 0x88]
movss dword [rbp + 0x38], xmm0
movss dword [rbp + 0x3c], xmm1
movss dword [rbp + 0x40], xmm2
mov byte [rbp + 0x44], 0
mov qword [rbp + 0x48], 0
movss xmm2, dword [rbx + 0x9c]
movss xmm1, dword [rbx + 0x98]
movss xmm0, dword [rbx + 0x94]
movss dword [rbp + 0x50], xmm0
movss dword [rbp + 0x54], xmm1
movss dword [rbp + 0x58], xmm2
mov byte [rbp + 0x5c], 0
mov qword [rbp + 0x60], 0
movss xmm2, dword [rbx + 0xa8]
movss xmm1, dword [rbx + 0xa4]
movss xmm0, dword [rbx + 0xa0]
movss dword [rbp + 0x68], xmm0
movss dword [rbp + 0x6c], xmm1
movss dword [rbp + 0x70], xmm2
mov byte [rbp + 0x74], 0
mov qword [rbp + 0x78], 0
movss xmm2, dword [rbx + 0xb4]
movss xmm1, dword [rbx + 0xb0]
movss xmm0, dword [rbx + 0xac]
movss dword [rbp + 0x80], xmm0
movss dword [rbp + 0x84], xmm1
movss dword [rbp + 0x88], xmm2
mov byte [rbp + 0x8c], 0
mov qword [rbp + 0x90], 0
movss xmm2, dword [rbx + 0x114]
movss xmm1, dword [rbx + 0x110]
movss xmm0, dword [rbx + 0x10c]
movss dword [rbp + 0x98], xmm0
movss dword [rbp + 0x9c], xmm1
movss dword [rbp + 0xa0], xmm2
mov byte [rbp + 0xa4], 0
lea rax, [rbp - 0x30]
mov qword [rbp + 0x1f0], rax
movss xmm2, dword [0x140376020]
movss xmm3, dword [0x14037601c]
movss xmm4, dword [0x140376018]
movss xmm5, dword [0x140376014]
movss dword [rsp + 0x40], xmm5
movss dword [rsp + 0x44], xmm4
movss dword [rsp + 0x48], xmm3
movss dword [rsp + 0x4c], xmm2
movd xmm0, dword [0x1403760c0]
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [rbx + 0x34]
jb 0x1400874e2
movss xmm2, dword [0x140376050]
movss xmm3, dword [0x14037604c]
movss xmm4, dword [0x140376048]
movss xmm5, dword [0x140376044]
jmp 0x140087536
mov rax, qword [0x140376340]
cmp qword [rbx], rax
jne 0x140087510
movss xmm2, dword [0x140376040]
movss xmm3, dword [0x14037603c]
movss xmm4, dword [0x140376038]
movss xmm5, dword [0x140376034]
jmp 0x140087536
cmp byte [rbx + 0x2c], 0
je 0x14008754e
movss xmm2, dword [0x140376030]
movss xmm3, dword [0x14037602c]
movss xmm4, dword [0x140376028]
movss xmm5, dword [0x140376024]
movss dword [rsp + 0x40], xmm5
movss dword [rsp + 0x44], xmm4
movss dword [rsp + 0x48], xmm3
movss dword [rsp + 0x4c], xmm2
movups xmm0, xmmword [0x140376054]
movups xmmword [rsp + 0x70], xmm0
movups xmm0, xmmword [0x140376064]
movups xmmword [rbp - 0x80], xmm0
movups xmm0, xmmword [0x140376074]
movups xmmword [rsp + 0x60], xmm0
movups xmm0, xmmword [0x140376084]
movups xmmword [rbp - 0x70], xmm0
movups xmm0, xmmword [0x140376094]
movups xmmword [rsp + 0x50], xmm0
mov rcx, qword [0x1403760a8]
mov rax, qword [0x1403760b0]
sub rax, rcx
sar rax, 2
test rax, rax
je 0x140087c63
cmp dword [rcx], 0
je 0x1400875c3
movss dword [rsp + 0x70], xmm5
movss dword [rsp + 0x74], xmm4
movss dword [rsp + 0x78], xmm3
movss dword [rsp + 0x7c], xmm2
cmp rax, 1
jbe 0x140087c63
cmp dword [rcx + 4], 0
je 0x1400875e7
movss dword [rbp - 0x80], xmm5
movss dword [rbp - 0x7c], xmm4
movss dword [rbp - 0x78], xmm3
movss dword [rbp - 0x74], xmm2
cmp rax, 2
jbe 0x140087c63
cmp dword [rcx + 8], 0
je 0x14008760f
movss dword [rsp + 0x60], xmm5
movss dword [rsp + 0x64], xmm4
movss dword [rsp + 0x68], xmm3
movss dword [rsp + 0x6c], xmm2
cmp rax, 3
jbe 0x140087c63
movups xmm7, xmmword [rsp + 0x40]
cmp dword [rcx + 0xc], 0
je 0x14008762b
movdqa xmm10, xmm7
jmp 0x140087630
movups xmm10, xmmword [rbp - 0x70]
cmp rax, 4
jbe 0x140087c63
cmp dword [rcx + 0x10], 0
jne 0x140087645
movups xmm7, xmmword [rsp + 0x50]
cmp byte [0x14037600c], 0
je 0x140087674
lea rcx, [rbp + 0xb0]
call fcn.1400114d0
movdqa xmmword [rsp + 0x50], xmm7
lea r8, [rsp + 0x50]
mov rdx, rax
lea rcx, reloc.WS2_32.dll_bind
call fcn.14008a770
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x1f0]
call fcn.140086f20
test al, al
je 0x140087c2f
cvttss2si ecx, dword [rsp + 0x50]
mov dword [rsp + 0x40], ecx
cvttss2si edx, dword [rsp + 0x58]
mov dword [rsp + 0x44], edx
movss xmm0, dword [rsp + 0x54]
subss xmm0, dword [rsp + 0x50]
cvttss2si r8d, xmm0
mov dword [rsp + 0x48], r8d
movss xmm1, dword [rsp + 0x5c]
subss xmm1, dword [rsp + 0x58]
cvttss2si r9d, xmm1
mov dword [rsp + 0x4c], r9d
movss xmm9, dword [0x140315494]
movss xmm7, dword [0x140315444]
cmp byte [0x14037600f], 0
je 0x14008780c
movss xmm1, dword [rbx + 0x3c]
maxss xmm1, xmm6
minss xmm1, dword [0x14031559c]
mulss xmm1, dword [0x1403154d4]
movss xmm0, dword [0x1403155e4]
subss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mulss xmm2, dword [0x1403153c0]
lea eax, [r9 + rdx]
movd xmm4, eax
cvtdq2ps xmm4, xmm4
movd xmm1, r8d
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm7
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm3, dword [0x140375f4c]
cvtdq2ps xmm3, xmm3
mov eax, dword [0x140375f48]
cdq
sub eax, edx
sar eax, 1
movd xmm5, eax
cvtdq2ps xmm5, xmm5
mov dword [rsp + 0x50], 0x3f48c8ca
mov dword [rsp + 0x54], 0x3f48c8ca
mov dword [rsp + 0x58], 0x3f48c8ca
movss dword [rsp + 0x5c], xmm2
movss dword [rbp + 0x1f0], xmm1
movss dword [rbp + 0x1f4], xmm4
movss dword [rbp + 0x1f8], xmm5
movss dword [rbp + 0x1fc], xmm3
comiss xmm5, xmm6
jb 0x14008780c
comiss xmm3, xmm6
jb 0x14008780c
movss xmm2, dword [0x140315620]
comiss xmm5, xmm2
ja 0x14008780c
movss xmm0, dword [0x140315618]
comiss xmm3, xmm0
ja 0x14008780c
comiss xmm1, xmm6
jb 0x14008780c
comiss xmm4, xmm6
jb 0x14008780c
comiss xmm1, xmm2
ja 0x14008780c
comiss xmm4, xmm0
ja 0x14008780c
mov rax, qword [0x140376238]
mov r10, qword [rax]
lea rcx, [rsp + 0x50]
call fcn.1400bbad0
movss dword [rsp + 0x20], xmm9
mov r9d, eax
lea r8, [rbp + 0x1f0]
lea rdx, [rbp + 0x1f8]
mov rcx, r10
call fcn.1400d4050
cmp byte [0x140375ffb], 0
je 0x14008782f
movups xmm0, xmmword [rsp + 0x70]
movdqa xmmword [rsp + 0x50], xmm0
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x40]
call fcn.140089b40
movss xmm2, dword [rbx + 0x34]
movd xmm0, dword [0x1403760c0]
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm0
jbe 0x140087868
movss xmm3, dword [rbx + 0x38]
lea rdx, [rsp + 0x40]
call fcn.140089df0
movss xmm2, dword [rbx + 0x30]
comiss xmm2, xmm9
jb 0x140087868
lea rdx, [rsp + 0x40]
call fcn.14008a380
movups xmm8, xmmword [rbp - 0x80]
cmp dword [0x140376008], 0
jne 0x1400879db
cmp byte [0x140376010], 0
jne 0x140087890
cmp byte [0x140376011], 0
je 0x1400879db
cmp byte [0x140375ce0], 0
je 0x14008798a
mov rax, qword [rbx]
cmp qword [0x140376348], rax
jne 0x14008798a
movaps xmm3, xmmword [0x140315950]
mov qword [rbp - 0x60], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x58], reloc.WS2_32.dll_ntohs
movsd xmm0, qword [str.SELECTED_PLAYER]
movsd qword [rbp - 0x70], xmm0
mov eax, dword [0x14030f490]
mov dword [rbp - 0x68], eax
movzx eax, word [0x14030f494]
mov word [rbp - 0x64], ax
movzx eax, byte [0x14030f496]
mov byte [rbp - 0x62], al
mov byte [rbp - 0x61], 0
movss xmm0, dword [0x140352b24]
movd xmm2, dword [rsp + 0x44]
cvtdq2ps xmm2, xmm2
addss xmm0, xmm0
subss xmm2, xmm0
movd xmm1, dword [rsp + 0x48]
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm7
movd xmm0, dword [rsp + 0x40]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movdqa xmmword [rsp + 0x50], xmm3
mov byte [rsp + 0x30], 1
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x70]
mov rcx, qword [0x140376238]
call fcn.1400f40b0
nop
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x14008798a
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140087985
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140087985
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14007e124
movdqa xmmword [rsp + 0x50], xmm8
lea r9, [rbx + 8]
movd xmm2, dword [rsp + 0x44]
cvtdq2ps xmm2, xmm2
subss xmm2, dword [0x140352b24]
movd xmm1, dword [rsp + 0x48]
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm7
movd xmm0, dword [rsp + 0x40]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
mov byte [rsp + 0x30], 1
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov rcx, qword [0x140376238]
call fcn.1400f40b0
movdqa xmmword [rsp + 0x50], xmm8
movdqa xmmword [rbp - 0x70], xmm10
movups xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x60]
lea r8, [rsp + 0x40]
mov rdx, rbx
lea rcx, reloc.WS2_32.dll_bind
call fcn.140087ca0
cmp byte [0x140375fb4], 0
je 0x140087c2f
movss xmm2, dword [0x140375ccc]
movss xmm0, dword [0x14031563c]
comiss xmm2, xmm0
jbe 0x140087a76
movss xmm1, dword [0x1403153d4]
comiss xmm2, xmm1
jae 0x140087a76
movss xmm2, dword [0x140375cd0]
comiss xmm2, xmm0
jbe 0x140087a76
comiss xmm2, xmm1
jae 0x140087a76
movss xmm2, dword [0x140375cd4]
comiss xmm2, xmm0
jbe 0x140087a76
comiss xmm2, xmm1
jb 0x140087c2f
mov rax, qword [0x140376340]
cmp qword [rbx], rax
jne 0x140087c2f
mov ecx, dword [0x140375f5c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140087c2f
movss xmm10, dword [0x140375ccc]
movss xmm11, dword [0x140375cd0]
movss xmm12, dword [0x140375cd4]
movups xmm0, xmmword [0x140375ce4]
movaps xmmword [rbp - 0x70], xmm0
movups xmm1, xmmword [0x140375cf4]
movaps xmmword [rbp - 0x60], xmm1
movups xmm0, xmmword [0x140375d04]
movaps xmmword [rbp - 0x50], xmm0
movups xmm1, xmmword [0x140375d14]
movaps xmmword [rbp - 0x40], xmm1
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x70]
call qword [sym.imp.d3dx9_43.dll_D3DXMatrixTranspose]
movss xmm2, dword [rbp - 0x3c]
mulss xmm2, xmm11
movss xmm0, dword [rbp - 0x40]
mulss xmm0, xmm10
addss xmm2, xmm0
movss xmm1, dword [rbp - 0x38]
mulss xmm1, xmm12
addss xmm2, xmm1
addss xmm2, dword [rbp - 0x34]
mov ecx, dword [0x140375f4c]
mov eax, dword [0x140375f48]
comiss xmm2, dword [0x1403153f0]
ja 0x140087b39
xorps xmm8, xmm8
jmp 0x140087bdf
movaps xmm4, xmm9
divss xmm4, xmm2
movss xmm5, dword [rbp - 0x5c]
mulss xmm5, xmm11
movss xmm0, dword [rbp - 0x60]
mulss xmm0, xmm10
addss xmm5, xmm0
movss xmm1, dword [rbp - 0x58]
mulss xmm1, xmm12
addss xmm5, xmm1
addss xmm5, dword [rbp - 0x54]
mulss xmm5, xmm4
xorps xmm2, xmm2
cvtsi2ss xmm2, ecx
movaps xmm8, xmm2
mulss xmm8, xmm7
movss xmm3, dword [rbp - 0x4c]
mulss xmm3, xmm11
movss xmm0, dword [rbp - 0x50]
mulss xmm0, xmm10
addss xmm3, xmm0
movss xmm1, dword [rbp - 0x48]
mulss xmm1, xmm12
addss xmm3, xmm1
addss xmm3, dword [rbp - 0x44]
mulss xmm3, xmm4
mulss xmm3, xmm7
mulss xmm3, xmm2
addss xmm3, xmm7
subss xmm8, xmm3
movaps xmm6, xmm5
addss xmm6, xmm9
mulss xmm6, xmm7
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mulss xmm6, xmm0
addss xmm6, xmm7
addss xmm6, xmm5
cdq
sub eax, edx
sar eax, 1
movd xmm3, eax
cvtdq2ps xmm1, xmm3
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movups xmm0, xmmword [0x140375fb8]
movaps xmmword [rsp + 0x50], xmm0
mov byte [rsp + 0x28], 0
lea r9, [rsp + 0x50]
movaps xmm0, xmm6
unpcklps xmm0, xmm8
movq r8, xmm0
unpcklps xmm1, xmm2
movq rdx, xmm1
mov rcx, qword [0x140376238]
call fcn.1400f3f70
lea r11, [rsp + 0x2e0]
mov rbx, qword [r11 + 0x20]
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]
mov rsp, r11
pop rbp
ret
call fcn.1400119b0
int3