Function at 0x180005978
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 - 0x218]
sub rsp, 0x2f0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm8
mov rax, qword [0x180059040]
xor rax, rsp
mov qword [rbp + 0x1c0], rax
xor r13d, r13d
cmp qword [0x180059ff8], r13
je 0x180006048
movabs rdx, 0xc934a55913099c6d
movabs rcx, 0x958eb808648f9f6a
mov qword [rbp + 0x1b0], rdx
movabs rax, 0xa771d1377660f00e
mov qword [rsp + 0x20], rax
movabs rax, 0x958ecb6d0dfbf61e
mov qword [rsp + 0x28], rax
movabs rax, 0xbe40c017767afd2f
movaps xmm0, xmmword [rsp + 0x20]
mov qword [rbp + 0x1b8], rcx
xorps xmm0, xmmword [rbp + 0x1b0]
mov qword [rsp + 0x20], rax
movabs rax, 0x95ebd46a05e4ed05
mov qword [rsp + 0x28], rax
movdqa xmmword [rbp + 0x170], xmm0
movaps xmm0, xmmword [rsp + 0x20]
mov qword [rbp + 0x1b0], rdx
lea rdx, [0x18004e742]
mov qword [rbp + 0x1b8], rcx
lea rcx, [rsp + 0x20]
xorps xmm0, xmmword [rbp + 0x1b0]
movdqa xmmword [rsp + 0x20], xmm0
call fcn.18000fd10
xor r8d, r8d
lea rdx, [rbp + 0x170]
mov rcx, rax
call fcn.1800106b4
lea rdx, [rbp + 0x1b0]
mov qword [rbp + 0x1b0], r13
mov rcx, rax
call qword [0x18005a320]
mov rcx, qword [rbp + 0x1b0]
movabs rbx, 0x7ffffeff0001
lea rax, [rcx - 0xffffef]
cmp rax, rbx
ja 0x180006048
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x180006048
lea rax, [rcx - 0xffffd7]
cmp rax, rbx
ja 0x180006048
mov rcx, qword [rcx + 0x28]
test rcx, rcx
je 0x180006048
lea rax, [rcx - 0xffffe7]
cmp rax, rbx
ja 0x180006048
mov r12, qword [rcx + 0x18]
test r12, r12
je 0x180006048
mov esi, dword [rcx + 0x10]
test esi, esi
je 0x180006048
movss xmm8, dword [0x1800542ac]
mov r14d, r13d
mov r15d, r13d
movabs rdx, 0xffffffff00000001
movabs r8, 0xefffffff00000001
mov rdi, qword [r12 + r15*8 + 0x20]
test rdi, rdi
je 0x180006027
lea rax, [rdi + rdx]
cmp rax, r8
ja 0x180005b4f
mov rdx, qword [rdi]
test rdx, rdx
je 0x180005b4f
mov rdx, qword [rdx + 0x10]
jmp 0x180005b56
lea rdx, [0x18004e742]
xorps xmm0, xmm0
mov qword [rbp + 0x180], r13
movups xmmword [rbp + 0x170], xmm0
mov qword [rbp + 0x188], r13
or r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], r13b
jne 0x180005b72
lea rcx, [rbp + 0x170]
call fcn.18001f878
lea rax, [rdi - 0xffffef]
cmp rax, rbx
ja 0x180005fd6
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x180005fd6
lea rax, [rcx - 0xffffcf]
cmp rax, rbx
ja 0x180005fd6
mov rdx, qword [rcx + 0x30]
test rdx, rdx
je 0x180005fd6
lea rax, [rdx - 0xffffcf]
cmp rax, rbx
ja 0x180005fd6
mov rcx, qword [rdx + 0x30]
test rcx, rcx
je 0x180005fd6
lea rax, [rcx - 0xfffff7]
cmp rax, rbx
ja 0x180005fd6
mov rdx, qword [rcx + 8]
test rdx, rdx
je 0x180005fd6
lea rax, [rdx - 0xffffc7]
cmp rax, rbx
ja 0x180005fd6
mov rbx, qword [rdx + 0x38]
test rbx, rbx
je 0x180005fd6
movabs rax, 0xffffffff00000001
movabs rcx, 0xefffffff00000001
add rax, rdi
cmp rax, rcx
ja 0x180005c42
mov rdx, qword [rdi]
test rdx, rdx
je 0x180005c42
mov rdx, qword [rdx + 0x10]
jmp 0x180005c49
lea rdx, [0x18004e742]
xorps xmm0, xmm0
mov qword [rbp + 0x1a0], r13
movups xmmword [rbp + 0x190], xmm0
mov qword [rbp + 0x1a8], r13
or r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], r13b
jne 0x180005c65
lea rcx, [rbp + 0x190]
call fcn.18001f878
movsd xmm0, qword [rbx + 0x90]
lea rcx, [rsp + 0x20]
mov ebx, dword [rbx + 0x98]
movsd qword [rbp + 0x1b0], xmm0
call fcn.180004260
movd xmm1, ebx
movss xmm3, dword [rax]
movss xmm0, dword [rax + 4]
subss xmm0, dword [rbp + 0x1b4]
subss xmm3, dword [rbp + 0x1b0]
movss xmm2, dword [rax + 8]
subss xmm2, xmm1
mulss xmm0, xmm0
mulss xmm3, xmm3
mulss xmm2, xmm2
addss xmm0, xmm3
addss xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
xor r8d, r8d
lea rdx, str.CollectibleEntity
lea rcx, [rbp + 0x190]
movaps xmm6, xmm0
call fcn.18001ed24
cmp rax, 0xffffffffffffffff
je 0x180005dbc
cmp byte [0x18005a090], r13b
je 0x180005dbc
comiss xmm8, xmm6
jbe 0x180005dbc
comiss xmm6, dword [0x180054234]
jbe 0x180005dbc
mov ecx, dword [0x18005a004]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180005dbc
lea rdx, str.Pickup
lea rcx, [rbp + 0x50]
call fcn.180014e3c
lea rcx, [rsp + 0x30]
mov edx, 2
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx + 0x10], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx + 0x20], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx + 0x30], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx + 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx + 0x50], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx + 0x60], xmm0
lea rcx, [rcx + 0x80]
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x180005d4f
movups xmm0, xmmword [rax]
mov rax, qword [rax + 0x10]
lea rdx, [rsp + 0x30]
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], rax
mov rcx, rdi
call fcn.180018094
xor r8d, r8d
lea rdx, str.DroppedItem
lea rcx, [rbp + 0x190]
call fcn.18001ed24
cmp rax, 0xffffffffffffffff
je 0x180005e9c
cmp byte [0x18005a090], r13b
je 0x180005e9c
comiss xmm8, xmm6
jbe 0x180005e9c
comiss xmm6, dword [0x180054234]
jbe 0x180005e9c
mov ecx, dword [0x18005a004]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180005e9c
lea rdx, str.Pickup
lea rcx, [rbp + 0x50]
call fcn.180014e3c
lea rcx, [rsp + 0x30]
mov edx, 2
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx + 0x10], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx + 0x20], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx + 0x30], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx + 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx + 0x50], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx + 0x60], xmm0
lea rcx, [rcx + 0x80]
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x180005e2f
movups xmm0, xmmword [rax]
mov rax, qword [rax + 0x10]
lea rdx, [rsp + 0x30]
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], rax
mov rcx, rdi
call fcn.180018094
xor r8d, r8d
lea rdx, str.ItemPickup
lea rcx, [rbp + 0x190]
call fcn.18001ed24
cmp rax, 0xffffffffffffffff
je 0x180005f7c
cmp byte [0x18005a090], r13b
je 0x180005f7c
comiss xmm8, xmm6
jbe 0x180005f7c
comiss xmm6, dword [0x180054234]
jbe 0x180005f7c
mov ecx, dword [0x18005a004]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180005f7c
lea rdx, str.Pickup
lea rcx, [rbp + 0x50]
call fcn.180014e3c
lea rdx, [rsp + 0x30]
mov ecx, 2
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rdx + 0x10], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rdx + 0x20], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rdx + 0x30], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rdx + 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rdx + 0x50], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rdx + 0x60], xmm0
lea rdx, [rdx + 0x80]
movups xmmword [rdx - 0x10], xmm1
sub rcx, 1
jne 0x180005f0f
movups xmm0, xmmword [rax]
mov rax, qword [rax + 0x10]
mov rcx, rdi
movups xmmword [rdx], xmm0
mov qword [rdx + 0x10], rax
lea rdx, [rsp + 0x30]
call fcn.180018094
mov rdx, qword [rbp + 0x1a8]
cmp rdx, 0xf
jbe 0x180005fbd
mov rcx, qword [rbp + 0x190]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180005fb8
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180006041
call fcn.18004c210
mov qword [rbp + 0x1a0], r13
mov qword [rbp + 0x1a8], 0xf
mov byte [rbp + 0x190], r13b
mov rdx, qword [rbp + 0x188]
cmp rdx, 0xf
jbe 0x180006013
mov rcx, qword [rbp + 0x170]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000600e
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180006041
call fcn.18004c210
movabs r8, 0xefffffff00000001
movabs rdx, 0xffffffff00000001
inc r14d
inc r15
cmp r14d, esi
jae 0x180006048
movabs rbx, 0x7ffffeff0001
jmp 0x180005b2a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, qword [rbp + 0x1c0]
xor rcx, rsp
call fcn.18004c1f0
lea r11, [rsp + 0x2f0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm8, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret