Function at 0x1800357a0
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, [rax - 0xb8]
sub rsp, 0x190
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
movaps xmmword [rax - 0xb8], xmm14
movaps xmmword [rax - 0xc8], xmm15
mov rax, qword [0x18008b0c0]
xor rax, rsp
mov qword [rbp - 0x20], rax
cmp qword [0x18008e238], 0
je 0x180035fd1
mov rax, qword [0x18008de18]
xor r12d, r12d
mov qword [rax + 0x1d18], r12
mov qword [rax + 0x1d20], r12
mov dword [rax + 0x1d0c], 1
movd xmm1, dword [0x18008e32c]
cvtdq2ps xmm1, xmm1
movd xmm0, dword [0x18008e328]
cvtdq2ps xmm0, xmm0
or dword [rax + 0x1d08], 3
movss dword [rax + 0x1d28], xmm0
movss dword [rax + 0x1d2c], xmm1
mov dword [rax + 0x1d10], 1
xor edx, edx
mov r8d, 0x287
lea rcx, str.Overlay
call fcn.18000be70
mov rdi, qword [0x18008e300]
mov rbx, qword [0x18008e2f8]
xorps xmm15, xmm15
cmp rbx, rdi
je 0x1800359b5
movaps xmm0, xmmword [0x18007dd80]
movaps xmmword [rbp - 0x60], xmm0
movss xmm15, dword [0x18007dc3c]
nop dword [rax]
movups xmm6, xmmword [rbx]
movups xmmword [rbp - 0x40], xmm6
movsd xmm0, qword [rbx + 0x10]
movsd qword [rbp - 0x30], xmm0
mov qword [rsp + 0x40], r12
mov dword [rsp + 0x48], r12d
movsd xmm0, qword [rbp - 0x34]
movsd qword [rsp + 0x70], xmm0
mov eax, dword [rbp - 0x2c]
mov dword [rsp + 0x78], eax
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x70]
mov rcx, qword [0x18008e358]
call fcn.180030ae0
mov qword [rbp - 0x78], r12
mov dword [rbp - 0x70], r12d
movsd qword [rsp + 0x50], xmm6
psrldq xmm6, 8
movd dword [rsp + 0x58], xmm6
lea r8, [rbp - 0x78]
lea rdx, [rsp + 0x50]
mov rcx, qword [0x18008e358]
call fcn.180030ae0
mov rcx, qword [0x18008de18]
mov rax, qword [rcx + 0x1c10]
mov byte [rax + 0x90], 1
mov rax, qword [rcx + 0x1c10]
mov r10, qword [rax + 0x268]
lea rcx, [rbp - 0x60]
call fcn.180003ee0
movss xmm0, dword [rsp + 0x40]
movss dword [rbp - 0x80], xmm0
movss xmm1, dword [rsp + 0x44]
movss dword [rbp - 0x7c], xmm1
movss xmm0, dword [rbp - 0x78]
movss dword [rsp + 0x60], xmm0
movss xmm1, dword [rbp - 0x74]
movss dword [rsp + 0x64], xmm1
movss dword [rsp + 0x20], xmm15
mov r9d, eax
lea r8, [rbp - 0x80]
lea rdx, [rsp + 0x60]
mov rcx, r10
call fcn.180020660
add rbx, 0x18
cmp rbx, rdi
jne 0x1800358c0
xorps xmm15, xmm15
movss xmm12, dword [0x18007dce8]
cmp byte [0x18008de11], r12b
je 0x180035ce9
lea rdx, [rbp - 0x78]
call fcn.180030df0
nop
mov rdi, qword [rbp - 0x78]
mov r15, qword [rbp - 0x70]
cmp rdi, r15
je 0x180035ca4
movabs r13, 0xfffffffffffe
movss xmm8, dword [0x18007dc98]
movss xmm9, dword [0x18007dc80]
movss xmm13, dword [0x18007dcf4]
movss xmm14, dword [0x18007dc34]
movss xmm10, dword [0x18007dc08]
movss xmm11, dword [0x18007dcb0]
nop word [rax + rax]
mov rbx, qword [rdi]
cmp rbx, qword [0x18008e238]
je 0x180035c93
mov rcx, qword [0x18008e3a0]
mov rax, qword [rcx]
mov rdx, qword [rax + 0xd0]
call rdx
mov rsi, rax
mov rcx, qword [rbx]
mov rdx, qword [rcx + 8]
lea rcx, [rdx - 1]
cmp rcx, r13
ja 0x180035a70
mov rcx, rbx
call rdx
mov rdx, rax
jmp 0x180035a73
mov rdx, r12
mov rax, qword [rsi]
mov r8, qword [rax + 0x18]
mov rcx, rsi
call r8
mov rsi, rax
test rax, rax
je 0x180035c93
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x180]
mov rcx, rax
call rdx
test al, al
jne 0x180035c93
lea rdx, [rbp - 0x40]
mov rcx, rsi
call fcn.180031230
nop
lea r8, str.Bip01_Neck
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.180030c00
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x48], 0
movsd xmm0, qword [rsp + 0x50]
movsd qword [rsp + 0x70], xmm0
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x78], eax
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x70]
mov rcx, qword [0x18008e358]
call fcn.180030ae0
test al, al
je 0x180035c58
lea rcx, str.Game.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
add rax, 0x1fdfc
call rax
mov r14, rax
lea rcx, str.Game.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea rsi, [rax + 0x26a8]
mov rcx, qword [rbx]
mov rdx, qword [rcx + 8]
lea rcx, [rdx - 1]
cmp rcx, r13
ja 0x180035b4a
mov rcx, rbx
call rdx
jmp 0x180035b4d
mov rax, r12
mov edx, eax
mov rcx, r14
call rsi
lea rdx, [rbp - 0x60]
mov rcx, rbx
cmp eax, 2
jne 0x180035b80
movaps xmm0, xmmword [0x18007dd80]
movaps xmmword [rbp - 0x60], xmm0
call fcn.180035140
movaps xmm0, xmmword [0x18007dd80]
jmp 0x180035b97
movaps xmm0, xmmword [0x18007dd90]
movaps xmmword [rbp - 0x60], xmm0
call fcn.180035140
movaps xmm0, xmmword [0x18007dd90]
movss xmm6, dword [rsp + 0x44]
movaps xmmword [rbp - 0x60], xmm0
movss xmm7, dword [rsp + 0x40]
movss dword [rsp + 0x20], xmm8
lea r9, [rbp - 0x60]
movaps xmm2, xmm9
movaps xmm1, xmm6
movaps xmm0, xmm7
call fcn.18003d230
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x60]
call fcn.180037a30
mov rbx, rax
lea rdx, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rdx, qword [rbp - 0x40]
mov rcx, qword [0x18008de18]
test rdx, rdx
jne 0x180035bf1
movaps xmm0, xmm15
jmp 0x180035c3b
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rdx
movss dword [rsp + 0x20], xmm13
movaps xmm3, xmm12
movss xmm2, dword [rcx + 0x1980]
lea rdx, [rsp + 0x60]
mov rcx, qword [rcx + 0x1978]
call fcn.180024000
movss xmm0, dword [rsp + 0x60]
addss xmm0, xmm14
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x60], xmm0
mulss xmm0, xmm10
subss xmm7, xmm0
subss xmm6, xmm11
mov r8, rbx
movaps xmm1, xmm6
movaps xmm0, xmm7
call fcn.18003d330
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 0xf
jbe 0x180035c93
inc rdx
mov rcx, qword [rbp - 0x40]
cmp rdx, 0x1000
mov rax, rcx
jb 0x180035c8e
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180036042
call fcn.18003ea7c
add rdi, 8
cmp rdi, r15
jne 0x180035a30
mov rdi, qword [rbp - 0x78]
test rdi, rdi
je 0x180035ce9
mov rax, qword [rbp - 0x68]
sub rax, rdi
sar rax, 3
lea rdx, [rax*8]
mov rax, rdi
cmp rdx, 0x1000
jb 0x180035ce1
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003603c
mov rcx, rdi
call fcn.18003ea7c
cmp qword [0x18008e238], 0
je 0x180035fcc
cmp byte [0x18008de13], 0
je 0x180035fcc
mov ecx, 9
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180035edb
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], rax
lea rdx, [rbp - 0x60]
call fcn.180030df0
nop
movd xmm8, dword [0x18008de34]
cvtdq2ps xmm8, xmm8
mov eax, dword [0x18008e32c]
cdq
sub eax, edx
sar eax, 1
movd xmm10, eax
cvtdq2ps xmm10, xmm10
mov eax, dword [0x18008e328]
cdq
sub eax, edx
sar eax, 1
movd xmm11, eax
cvtdq2ps xmm11, xmm11
mov rsi, r12
mov r14, qword [rbp - 0x58]
mov rbx, qword [rbp - 0x60]
cmp rbx, r14
je 0x180035e9e
movsd xmm9, qword [0x18007dc58]
mov rdi, qword [rbx]
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x48], 0
movsd xmm0, qword [rdi + 0xdc]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [rdi + 0xe4]
mov dword [rsp + 0x58], eax
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x50]
mov rcx, qword [0x18008e358]
call fcn.180030ae0
test al, al
je 0x180035e4f
movss xmm0, dword [rsp + 0x40]
subss xmm0, xmm11
cvtps2pd xmm0, xmm0
movaps xmm1, xmm9
call fcn.180067350
movaps xmm6, xmm0
movss xmm1, dword [rsp + 0x48]
subss xmm1, xmm15
cvtps2pd xmm0, xmm1
movaps xmm1, xmm9
call fcn.180067350
movaps xmm7, xmm0
movss xmm1, dword [rsp + 0x44]
subss xmm1, xmm10
cvtps2pd xmm0, xmm1
movaps xmm1, xmm9
call fcn.180067350
addsd xmm7, xmm6
addsd xmm7, xmm0
xorps xmm0, xmm0
ucomisd xmm0, xmm7
ja 0x180035e30
xorps xmm0, xmm0
sqrtsd xmm0, xmm7
jmp 0x180035e38
movaps xmm0, xmm7
call fcn.1800690e8
cvtsd2ss xmm0, xmm0
comiss xmm0, xmm8
ja 0x180035e4f
comiss xmm12, xmm0
jbe 0x180035e4f
movaps xmm12, xmm0
mov rsi, rdi
add rbx, 8
cmp rbx, r14
jne 0x180035d81
test rsi, rsi
je 0x180035e9a
mov rcx, qword [0x18008e238]
mov dword [rbp - 0x80], r12d
mov rax, qword [rcx]
mov r9, qword [rax + 0x128]
movsd xmm0, qword [rsi + 0xdc]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [rsi + 0xe4]
mov dword [rsp + 0x58], eax
lea r8, [rbp - 0x80]
lea rdx, [rsp + 0x50]
call r9
mov rbx, qword [rbp - 0x60]
test rbx, rbx
je 0x180035edb
mov rdx, qword [rbp - 0x50]
sub rdx, rbx
and rdx, 0xfffffffffffffff8
mov rax, rbx
cmp rdx, 0x1000
jb 0x180035ed3
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180036036
mov rcx, rbx
call fcn.18003ea7c
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov eax, dword [0x18008de34]
test eax, eax
jle 0x180035f78
movd xmm0, eax
cvtdq2ps xmm0, xmm0
call fcn.180033110
mov qword [0x18008de38], rax
test rax, rax
je 0x180035f70
lea r8, str.Bip01_Neck
lea rdx, [rsp + 0x70]
mov rcx, rax
call fcn.180030c00
mov qword [rbp - 0x78], 0
mov dword [rbp - 0x70], 0
movsd xmm0, qword [rax]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [rax + 8]
mov dword [rsp + 0x58], eax
lea r8, [rbp - 0x78]
lea rdx, [rsp + 0x50]
mov rcx, qword [0x18008e358]
call fcn.180030ae0
cmp byte [0x18008de12], 0
je 0x180035f70
movss xmm1, dword [rbp - 0x74]
movss xmm0, dword [rbp - 0x78]
call fcn.180034d70
nop dword [rax]
mov eax, dword [0x18008de34]
jmp 0x180035f7f
mov qword [0x18008de38], r12
movaps xmm0, xmmword [0x18007dd90]
movaps xmmword [rbp - 0x60], xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mov eax, dword [0x18008e32c]
cdq
sub eax, edx
sar eax, 1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mov eax, dword [0x18008e328]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm3, dword [0x18007dc3c]
movss dword [rsp + 0x20], xmm3
lea r9, [rbp - 0x60]
call fcn.18003d230
call fcn.18000e170
mov rcx, qword [rbp - 0x20]
xor rcx, rsp
call fcn.18003ea20
lea r11, [rsp + 0x190]
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]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.180045d04
int3
call fcn.180045d04
nop
call fcn.180045d04
nop
int3