Function at 0x18006ca24
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rdi
push rbp
lea rbp, [rax - 0x118]
sub rsp, 0x210
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x38], xmm8
movaps xmmword [rax - 0x48], xmm10
movaps xmmword [rax - 0x58], xmm11
movaps xmmword [rax - 0x68], xmm12
movaps xmmword [rax - 0x78], xmm13
movaps xmmword [rax - 0x88], xmm14
mov rax, qword [0x1800b13a8]
xor rax, rsp
mov qword [rbp + 0x80], rax
mov rdx, qword [0x1800c2c60]
xor edi, edi
test rdx, rdx
je 0x18006d4f1
call fcn.180010a4c
test eax, eax
je 0x18006cab2
lea ecx, [rdi + 0x73]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18006caed
cmp byte [0x1800b9489], dil
sete al
mov byte [0x1800b9489], al
jmp 0x18006caf3
mov edx, 0xbd
xor ecx, ecx
call fcn.1800107c4
mov ebx, 0xcb
test eax, eax
je 0x18006cad2
mov edx, ebx
call fcn.18001080c
test eax, eax
jne 0x18006caa0
mov edx, 0xbd
call fcn.18001080c
test eax, eax
je 0x18006caed
mov edx, ebx
xor ecx, ecx
call fcn.1800107c4
test eax, eax
jmp 0x18006ca9e
mov al, byte [0x1800b9489]
test al, al
je 0x18006d4c0
movss xmm0, dword [0x1800b143c]
movss dword [0x1800b1468], xmm0
movss xmm1, dword [0x1800b1450]
movss dword [0x1800b146c], xmm1
call fcn.18006bd88
mov rcx, qword [0x1800c2c60]
mov rax, qword [0x1800c2c58]
dec rax
add rcx, rax
mov rax, qword [0x1800c2c50]
dec rax
and rcx, rax
mov rax, qword [0x1800c2c48]
mov rcx, qword [rax + rcx*8]
mov dword [rcx + 8], edi
mov rdx, qword [0x1800c2c60]
mov rax, qword [0x1800c2c58]
dec rax
add rdx, rax
mov rcx, qword [0x1800c2c50]
lea rax, [rcx - 1]
and rax, rdx
mov r8, qword [0x1800c2c48]
mov rax, qword [r8 + rax*8]
cmp qword [rax + 0x10], rdi
je 0x18006cb90
lea rax, [rcx - 1]
and rax, rdx
mov rax, qword [r8 + rax*8]
call qword [rax + reloc.WS2_32.dll_recv]
mov dword [rsp + 0x70], 2
lea rdx, [rsp + 0x70]
movabs rcx, 0x2e04b7b46a3670e5
call fcn.18007876c
movups xmm0, xmmword [0x1800b8720]
movdqu xmmword [rsp + 0x70], xmm0
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
movss xmm3, dword [0x1800a3e00]
movss xmm2, dword [0x1800b1430]
movss xmm1, dword [0x1800b1450]
movss xmm0, dword [0x1800b143c]
call fcn.180012480
movups xmm6, xmmword [0x1800b2f60]
movss xmm8, dword [0x1800b1450]
subss xmm8, dword [0x1800a3de8]
movss xmm7, dword [0x1800b143c]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x68], recv
mov r8d, 0xa
mov qword [rsp + 0x60], r8
lea rdx, str.Purge_v4.0
lea rcx, [rsp + 0x50]
call qword [sym.imp.VCRUNTIME140.dll_memmove]
mov byte [rsp + 0x5a], dil
movdqu xmmword [rsp + 0x70], xmm6
mov byte [rsp + 0x40], dil
mov byte [rsp + 0x38], dil
mov byte [rsp + 0x30], 1
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
movss xmm14, dword [0x1800a3e38]
movss dword [rsp + 0x20], xmm14
mov r9d, 1
movaps xmm2, xmm8
movaps xmm1, xmm7
lea rcx, [rsp + 0x50]
call fcn.1800121e4
xor edx, edx
mov r8d, 0xf8
lea rcx, [rbp - 0x80]
call sub.VCRUNTIME140.dll_memset
lea rcx, [rbp - 0x80]
call fcn.180076498
nop
mov rcx, qword [0x1800c2c60]
mov rax, qword [0x1800c2c58]
dec rax
add rcx, rax
mov rax, qword [0x1800c2c50]
dec rax
and rcx, rax
mov rax, qword [0x1800c2c48]
mov rcx, qword [rax + rcx*8]
mov edx, dword [rcx]
lea rcx, [rbp - 0x70]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
mov rcx, rax
lea rdx, [0x1800a2e4c]
call fcn.1800775e0
mov rdx, qword [0x1800c2c60]
mov rcx, qword [0x1800c2c58]
dec rcx
add rdx, rcx
mov rcx, qword [0x1800c2c50]
dec rcx
and rdx, rcx
mov rcx, qword [0x1800c2c48]
mov rdx, qword [rcx + rdx*8]
mov edx, dword [rdx + 8]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
mov r8, qword [0x1800c2c60]
mov rax, qword [0x1800c2c58]
dec rax
add r8, rax
mov r9, qword [0x1800c2c50]
lea rax, [r9 - 1]
and rax, r8
mov r10, qword [0x1800c2c48]
mov rdx, qword [r10 + rax*8]
lea rax, [r9 - 1]
and rax, r8
mov rax, qword [r10 + rax*8]
mov ecx, dword [rax + 4]
movups xmm7, xmmword [0x1800b1ad0]
lea rax, [r9 - 1]
movss xmm12, dword [0x1800a3dec]
movss xmm0, dword [0x1800b1450]
movss xmm13, dword [0x1800a3dd4]
movss xmm6, dword [0x1800b1430]
movss xmm11, dword [0x1800a3e2c]
and rax, r8
addss xmm0, xmm13
mulss xmm6, xmm11
mov rax, qword [r10 + rax*8]
addss xmm0, xmm13
addss xmm6, dword [0x1800b143c]
subss xmm6, dword [0x1800a3db0]
cmp dword [rdx + 8], ecx
lea rdx, [rsp + 0x50]
jle 0x18006d069
mov ecx, dword [rax + 4]
inc ecx
movd xmm8, ecx
cvtdq2ps xmm8, xmm8
mulss xmm8, xmm12
addss xmm8, xmm0
subss xmm8, dword [0x1800a3dbc]
lea rcx, [rbp - 0x80]
call fcn.180076340
movdqu xmmword [rsp + 0x70], xmm7
mov byte [rsp + 0x40], dil
mov byte [rsp + 0x38], 1
mov byte [rsp + 0x30], dil
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x28], rcx
movss xmm10, dword [0x1800a3e14]
movss dword [rsp + 0x20], xmm10
mov ebx, 4
mov r9d, ebx
movaps xmm2, xmm8
movaps xmm1, xmm6
mov rcx, rax
call fcn.1800121e4
movups xmm8, xmmword [0x1800b1ad0]
mov r9, qword [0x1800c2c60]
mov rax, qword [0x1800c2c58]
dec rax
add r9, rax
mov rdx, qword [0x1800c2c50]
lea rax, [rdx - 1]
and rax, r9
mov r8, qword [0x1800c2c48]
mov rax, qword [r8 + rax*8]
mov ecx, dword [rax + 4]
inc ecx
movd xmm7, ecx
cvtdq2ps xmm7, xmm7
mulss xmm7, xmm12
movss xmm0, dword [0x1800b1450]
addss xmm0, xmm13
addss xmm0, xmm13
addss xmm7, xmm0
subss xmm7, dword [0x1800a3dbc]
movss xmm0, dword [0x1800b1430]
mulss xmm0, xmm11
movss xmm6, dword [0x1800b143c]
subss xmm6, xmm0
addss xmm6, dword [0x1800a3db0]
dec rdx
and rdx, r9
mov rdx, qword [r8 + rdx*8]
add rdx, 0x18
lea rcx, [rsp + 0x50]
call fcn.180076924
movdqu xmmword [rsp + 0x70], xmm8
mov byte [rsp + 0x40], dil
mov byte [rsp + 0x38], dil
mov byte [rsp + 0x30], dil
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x28], rcx
movss dword [rsp + 0x20], xmm10
mov r9d, ebx
movaps xmm2, xmm7
movaps xmm1, xmm6
mov rcx, rax
call fcn.1800121e4
mov rcx, qword [0x1800c2c60]
mov rax, qword [0x1800c2c58]
dec rax
add rcx, rax
mov rax, qword [0x1800c2c50]
dec rax
and rcx, rax
mov rax, qword [0x1800c2c48]
mov rcx, qword [rax + rcx*8]
mov eax, dword [rcx + 4]
inc eax
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm12
movss xmm0, dword [0x1800b1450]
addss xmm0, xmm13
addss xmm0, xmm13
addss xmm1, xmm0
movups xmm0, xmmword [0x1800b21e8]
movdqu xmmword [rsp + 0x70], xmm0
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
movaps xmm3, xmm12
movss xmm2, dword [0x1800b1430]
movss xmm0, dword [0x1800b143c]
call fcn.180012480
mov rcx, qword [0x1800c2c60]
mov rax, qword [0x1800c2c58]
dec rax
add rcx, rax
mov rax, qword [0x1800c2c50]
dec rax
and rcx, rax
mov rax, qword [0x1800c2c48]
mov rcx, qword [rax + rcx*8]
mov eax, dword [rcx + 4]
inc eax
movd xmm3, eax
cvtdq2ps xmm3, xmm3
mulss xmm3, xmm12
movss xmm0, dword [0x1800b1450]
addss xmm0, xmm13
addss xmm0, xmm13
addss xmm3, xmm0
movups xmm0, xmmword [0x1800b8730]
movdqu xmmword [rsp + 0x70], xmm0
movss dword [rsp + 0x38], xmm14
movss dword [rsp + 0x30], xmm14
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
xorps xmm6, xmm6
movss dword [rsp + 0x20], xmm6
movss xmm2, dword [0x1800b143c]
lea rdx, str.shop_arrows_upanddown
lea rcx, str.commonmenu
call fcn.1800119a0
mov r8, qword [0x1800c2c60]
mov rax, qword [0x1800c2c58]
dec rax
add r8, rax
mov rdx, qword [0x1800c2c50]
lea rax, [rdx - 1]
and rax, r8
mov rcx, qword [0x1800c2c48]
mov rax, qword [rcx + rax*8]
movd xmm3, dword [rax + 4]
lea rax, [rdx - 1]
and rax, r8
mov rax, qword [rcx + rax*8]
movd xmm1, dword [rax + 4]
jmp 0x18006d309
mov ecx, dword [rax + 8]
inc ecx
movd xmm8, ecx
cvtdq2ps xmm8, xmm8
mulss xmm8, xmm12
addss xmm8, xmm0
subss xmm8, dword [0x1800a3dbc]
lea rcx, [rbp - 0x80]
call fcn.180076340
movdqu xmmword [rsp + 0x70], xmm7
mov byte [rsp + 0x40], dil
mov byte [rsp + 0x38], 1
mov byte [rsp + 0x30], dil
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x28], rcx
movss xmm10, dword [0x1800a3e14]
movss dword [rsp + 0x20], xmm10
mov ebx, 4
mov r9d, ebx
movaps xmm2, xmm8
movaps xmm1, xmm6
mov rcx, rax
call fcn.1800121e4
movups xmm8, xmmword [0x1800b1ad0]
mov r9, qword [0x1800c2c60]
mov rax, qword [0x1800c2c58]
dec rax
add r9, rax
mov rdx, qword [0x1800c2c50]
lea rax, [rdx - 1]
and rax, r9
mov r8, qword [0x1800c2c48]
mov rax, qword [r8 + rax*8]
mov ecx, dword [rax + 8]
inc ecx
movd xmm7, ecx
cvtdq2ps xmm7, xmm7
mulss xmm7, xmm12
movss xmm0, dword [0x1800b1450]
addss xmm0, xmm13
addss xmm0, xmm13
addss xmm7, xmm0
subss xmm7, dword [0x1800a3dbc]
movss xmm0, dword [0x1800b1430]
mulss xmm0, xmm11
movss xmm6, dword [0x1800b143c]
subss xmm6, xmm0
addss xmm6, dword [0x1800a3db0]
dec rdx
and rdx, r9
mov rdx, qword [r8 + rdx*8]
add rdx, 0x18
lea rcx, [rsp + 0x50]
call fcn.180076924
movdqu xmmword [rsp + 0x70], xmm8
mov byte [rsp + 0x40], dil
mov byte [rsp + 0x38], dil
mov byte [rsp + 0x30], dil
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x28], rcx
movss dword [rsp + 0x20], xmm10
mov r9d, ebx
movaps xmm2, xmm7
movaps xmm1, xmm6
mov rcx, rax
call fcn.1800121e4
mov rax, qword [0x1800c2c60]
mov r8, qword [0x1800c2c50]
dec r8
dec rax
add rax, qword [0x1800c2c58]
and r8, rax
mov rax, qword [0x1800c2c48]
mov rcx, qword [rax + r8*8]
mov eax, dword [rcx + 8]
inc eax
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm12
movss xmm0, dword [0x1800b1450]
addss xmm0, xmm13
addss xmm0, xmm13
addss xmm1, xmm0
movups xmm0, xmmword [0x1800b21e8]
movdqu xmmword [rsp + 0x70], xmm0
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
movaps xmm3, xmm12
movss xmm2, dword [0x1800b1430]
movss xmm0, dword [0x1800b143c]
call fcn.180012480
mov rax, qword [0x1800c2c60]
mov r8, qword [0x1800c2c50]
dec r8
dec rax
add rax, qword [0x1800c2c58]
and r8, rax
mov rax, qword [0x1800c2c48]
mov rcx, qword [rax + r8*8]
mov eax, dword [rcx + 8]
inc eax
movd xmm3, eax
cvtdq2ps xmm3, xmm3
mulss xmm3, xmm12
movss xmm0, dword [0x1800b1450]
addss xmm0, xmm13
addss xmm0, xmm13
addss xmm3, xmm0
movups xmm0, xmmword [0x1800b8730]
movdqu xmmword [rsp + 0x70], xmm0
movss dword [rsp + 0x38], xmm14
movss dword [rsp + 0x30], xmm14
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
xorps xmm6, xmm6
movss dword [rsp + 0x20], xmm6
movss xmm2, dword [0x1800b143c]
lea rdx, str.shop_arrows_upanddown
lea rcx, str.commonmenu
call fcn.1800119a0
mov r8, qword [0x1800c2c60]
mov rax, qword [0x1800c2c58]
dec rax
add r8, rax
mov rdx, qword [0x1800c2c50]
lea rax, [rdx - 1]
and rax, r8
mov rcx, qword [0x1800c2c48]
mov rax, qword [rcx + rax*8]
movd xmm3, dword [rax + 8]
lea rax, [rdx - 1]
and rax, r8
mov rax, qword [rcx + rax*8]
movd xmm1, dword [rax + 8]
cvtdq2ps xmm1, xmm1
movss xmm0, dword [0x1800b1450]
mulss xmm1, xmm12
addss xmm0, xmm13
mulss xmm1, xmm11
addss xmm1, xmm0
movups xmm0, xmmword [0x1800b21d8]
lea rax, [rsp + 0x70]
cvtdq2ps xmm3, xmm3
movdqu xmmword [rsp + 0x70], xmm0
mov qword [rsp + 0x20], rax
mulss xmm3, xmm12
movss xmm2, dword [0x1800b1430]
addss xmm1, xmm12
movss xmm0, dword [0x1800b143c]
call fcn.180012480
mov r8, qword [0x1800c2c60]
mov rax, qword [0x1800c2c58]
dec rax
add r8, rax
mov r9, qword [0x1800c2c50]
lea rax, [r9 - 1]
and rax, r8
mov r10, qword [0x1800c2c48]
mov rdx, qword [r10 + rax*8]
lea rax, [r9 - 1]
and rax, r8
mov rax, qword [r10 + rax*8]
mov ecx, dword [rax + 4]
lea rax, [r9 - 1]
and rax, r8
cmp dword [rdx], ecx
jle 0x18006d3ce
mov rax, qword [r10 + rax*8]
movd xmm1, dword [rax + 4]
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm12
movss xmm0, dword [0x1800b1450]
addss xmm0, dword [0x1800a3df4]
subss xmm0, xmm13
jmp 0x18006d3f3
mov rcx, qword [r10 + rax*8]
movss xmm1, dword [0x1800b1450]
addss xmm1, dword [0x1800a3df4]
subss xmm1, xmm13
movd xmm0, dword [rcx]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm12
addss xmm1, xmm0
movss dword [0x1800b9464], xmm1
movss xmm0, dword [0x1800b9334]
subss xmm0, xmm1
cvtps2pd xmm0, xmm0
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_fabs]
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
divss xmm2, dword [0x1800b14dc]
movss xmm0, dword [0x1800b9464]
movss xmm1, dword [0x1800b9334]
comiss xmm0, xmm1
jbe 0x18006d445
ucomiss xmm2, xmm6
jp 0x18006d43f
je 0x18006d445
addss xmm1, xmm2
jmp 0x18006d455
comiss xmm1, xmm0
jbe 0x18006d45d
ucomiss xmm2, xmm6
jp 0x18006d451
je 0x18006d45d
subss xmm1, xmm2
movss dword [0x1800b9334], xmm1
movups xmm0, xmmword [0x1800b1c70]
movdqu xmmword [rsp + 0x70], xmm0
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
movaps xmm3, xmm12
movss xmm2, dword [0x1800b1430]
movss xmm0, dword [0x1800b143c]
call fcn.180012480
movss xmm0, dword [0x1800b1468]
movss dword [0x1800b143c], xmm0
movss xmm1, dword [0x1800b146c]
movss dword [0x1800b1450], xmm1
lea rcx, [rbp + 0x18]
call fcn.180076420
lea rcx, [rbp + 0x18]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
mov byte [0x1800b9f6b], dil
mov byte [0x1800b9330], dil
mov byte [0x1800b9f99], dil
mov byte [0x1800b937f], dil
mov byte [0x1800b95b9], dil
mov byte [0x1800b9300], dil
mov rdx, qword [0x1800c2c60]
cmp byte [0x1800b14ba], dil
je 0x18006d5ac
lea rax, [rdx + 1]
mov rcx, qword [0x1800c2c50]
cmp rcx, rax
ja 0x18006d521
call fcn.180089610
mov rdx, qword [0x1800c2c60]
mov rcx, qword [0x1800c2c50]
dec rcx
mov rax, rcx
and rax, qword [0x1800c2c58]
mov qword [0x1800c2c58], rax
lea rbx, [rax + rdx]
and rbx, rcx
mov rcx, qword [0x1800c2c48]
cmp qword [rcx + rbx*8], rdi
jne 0x18006d565
mov ecx, 0x38
call fcn.18008e304
mov rcx, qword [0x1800c2c48]
mov qword [rcx + rbx*8], rax
mov rcx, qword [0x1800c2c48]
mov rcx, qword [rcx + rbx*8]
mov eax, dword [0x1800b2208]
mov dword [rcx], eax
mov eax, dword [0x1800b220c]
mov dword [rcx + 4], eax
mov eax, dword [0x1800b2210]
mov dword [rcx + 8], eax
mov rax, qword [0x1800b2218]
mov qword [rcx + 0x10], rax
add rcx, 0x18
lea rdx, [0x1800b2220]
call fcn.180076924
inc qword [0x1800c2c60]
mov byte [0x1800b14ba], dil
mov rcx, qword [rbp + 0x80]
xor rcx, rsp
call fcn.18008e040
lea r11, [rsp + 0x210]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm10, xmmword [r11 - 0x40]
movaps xmm11, xmmword [r11 - 0x50]
movaps xmm12, xmmword [r11 - 0x60]
movaps xmm13, xmmword [r11 - 0x70]
movaps xmm14, xmmword [r11 - 0x80]
mov rsp, r11
pop rbp
ret