Function at 0x18008dec0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x308]
sub rsp, 0x3e0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm8
mov rax, qword [0x180150028]
xor rax, rsp
mov qword [rbp + 0x2b0], rax
mov rdi, rcx
mov rax, qword [rcx + 0x78]
cmp byte [rax], 0
je 0x18008df76
xor esi, esi
cmp byte [0x1801530b6], sil
je 0x18008df92
cmp byte [rcx + 0x568], sil
je 0x18008df57
mov dword [0x180150288], 0x10
mov qword [0x18015028c], 2
mov qword [0x180150298], rsi
lea r8d, [rsi + 0x28]
lea rdx, [0x180150280]
lea ecx, [rsi + 1]
call qword [sym.imp.USER32.dll_SendInput]
mov byte [rdi + 0x568], sil
mov ecx, dword [0x180150278]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx ecx, byte [0x1801530b6]
test ax, ax
cmove ecx, esi
mov byte [0x1801530b6], cl
mov qword [rbp + 0x290], 0x64
lea rcx, [rbp + 0x290]
call fcn.18008ef60
jmp 0x18008e85a
mov ecx, dword [0x180152b34]
mov rax, qword gs:[0x58]
mov edx, 4
mov rcx, qword [rax + rcx*8]
mov eax, dword [rdx + rcx]
cmp dword [0x180154900], eax
jle 0x18008dfe9
lea rcx, [0x180154900]
call fcn.1800d2898
cmp dword [0x180154900], 0xffffffff
jne 0x18008dfe9
mov qword [0x180154908], rsi
lea rcx, [0x180154908]
call fcn.18008dc70
lea rcx, [0x180154900]
call fcn.1800d2838
mov ecx, dword [0x180150278]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ebx, 0x8000
test bx, ax
je 0x18008e00a
movzx eax, byte [0x1801530b5]
test al, al
jne 0x18008e017
cmp byte [0x1801530b4], sil
je 0x18008e7bc
call fcn.18008eaf0
mov r12d, 0x80000000
cmp byte [0x1801530b4], sil
jne 0x18008e270
lea rbx, [rdi + 0x518]
mov qword [rbp + 0x290], rbx
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x18008e053
mov ecx, eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
nop
lea rdx, [rsp + 0x30]
mov rcx, qword [rdi + 0x180]
call fcn.18009b430
mov r12, rax
lea r14, [rdi + 0x190]
sub r12, r14
mov r15d, 0x1b
nop word [rax + rax]
lea rdx, [r12 + r14]
mov rcx, r14
call fcn.1800725c0
add r14, 0x20
sub r15, 1
jne 0x18008e080
lea r9, [fcn.180066400]
lea edx, [r15 + 0x20]
lea r8d, [r15 + 0x1b]
lea rcx, [rsp + 0x30]
call fcn.1800d2b24
nop
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
lea rcx, [rdi - 8]
call fcn.18008e8a0
call fcn.180066640
mov rcx, qword [rdi + 0x510]
sub rcx, 2
mov qword [rbp + 0x290], rcx
lea rcx, str._chest_stealer__Looting__items
mov qword [rbp + 0x2a0], rcx
mov qword [rbp + 0x2a8], 0x20
movaps xmm0, xmmword [rbp + 0x2a0]
movdqa xmmword [rbp + 0x2a0], xmm0
lea r9, [rbp + 0x290]
lea rdx, [rbp + 0x2a0]
mov rcx, rax
call fcn.1800833d0
mov rdx, qword [rdi + 0x508]
mov rcx, qword [rdi + 0x500]
dec rcx
mov rax, rdx
shr rax, 2
and rcx, rax
mov rax, qword [rdi + 0x4f8]
and edx, 3
mov rax, qword [rax + rcx*8]
mov ecx, dword [rax + rdx*4]
mov dword [0x180150268], ecx
sub qword [rdi + 0x510], 1
jne 0x18008e15c
mov qword [rdi + 0x508], rsi
jmp 0x18008e163
inc qword [rdi + 0x508]
mov dword [0x1801530b0], 1
mov qword [0x180150288], 0x10
mov dword [0x180150290], esi
mov qword [0x180150298], rsi
mov r8d, 0x28
lea rdx, [0x180150280]
lea ecx, [r8 - 0x27]
call qword [sym.imp.USER32.dll_SendInput]
mov byte [rdi + 0x568], 1
lea rcx, [0x180153390]
call fcn.180066000
mov r8d, eax
mov eax, 0x86186187
mul r8d
mov ecx, r8d
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 4
cmp ecx, 0xc30c30c
jae 0x18008e1a3
mov eax, 0x86186187
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
imul eax, eax, 0x15
sub r8d, eax
lea edx, [r8 - 0x7fffffe2]
mov r12d, 0x80000000
lea eax, [rdx + r12]
lea ecx, [rdx - 0x80000000]
cmp edx, r12d
cmovae ecx, eax
movsxd rax, ecx
mov qword [rbp + 0x290], rax
lea rcx, [rbp + 0x290]
call fcn.18008ef60
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x18008e239
imul rax, rax, 0x64
jmp 0x18008e257
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rcx, rcx, 0x3b9aca00
add rax, rcx
mov qword [0x180154908], rax
lea rcx, [0x1801530a8]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov ebx, 0x8000
cmp dword [0x180150268], 0xffffffff
je 0x18008e775
cmp dword [0x1801530b0], 1
jle 0x18008e2d4
mov ecx, dword [0x180150278]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test bx, ax
jne 0x18008e2b7
mov ecx, 0x45
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test bx, ax
jne 0x18008e2b7
mov ecx, 0x1b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test bx, ax
je 0x18008e2d4
mov dword [0x1801530b0], esi
mov ecx, 0xffffffff
mov dword [0x180150268], ecx
mov byte [0x1801530b6], 1
jmp 0x18008e853
movsxd rax, dword [0x180150268]
lea rbx, [0x180152fd0]
mov rbx, qword [rbx + rax*8]
mov qword [rbp + 0x290], rbx
xorps xmm0, xmm0
movups xmmword [rbp + 0x2a0], xmm0
lea rdx, [rbp + 0x2a0]
mov rcx, qword [0x1801530b8]
call qword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
jne 0x18008e31f
lea ecx, [rax - 1]
mov qword [rbp + 0x298], 0xffffffffffffffff
jmp 0x18008e34f
mov eax, dword [0x18015026c]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
add ecx, dword [rbp + 0x2a0]
mov dword [rbp + 0x298], ecx
mov eax, dword [0x180150270]
cdq
sub eax, edx
sar eax, 1
add eax, dword [rbp + 0x2a4]
mov dword [rbp + 0x29c], eax
mov rax, qword [rbp + 0x298]
lea r15d, [rcx + rbx]
mov dword [rbp + 0x290], r15d
shr rax, 0x20
mov r14d, dword [rbp + 0x294]
add r14d, eax
mov dword [rbp + 0x294], r14d
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x18008e394
imul rcx, rax, 0x64
jmp 0x18008e3b5
cqo
idiv rbx
mov r8, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
mov rcx, rax
imul rax, r8, 0x3b9aca00
add rcx, rax
sub rcx, qword [0x180154908]
movabs rax, 0x431bde82d7b634db
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
xorps xmm1, xmm1
cvtsi2ss xmm1, rdx
movd xmm0, dword [0x180150274]
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x18008e5ac
mov edx, r14d
mov ecx, r15d
call qword [sym.imp.USER32.dll_SetCursorPos]
nop
lea rcx, [0x180153390]
call fcn.180066000
mov ecx, eax
mov eax, 0xba2e8ba3
mul ecx
shr edx, 3
cmp edx, 0x1745d174
jae 0x18008e400
mov eax, 0xba2e8ba3
mul ecx
shr edx, 3
imul eax, edx, 0xb
sub ecx, eax
lea edx, [rcx - 0x7fffffce]
lea eax, [rdx + r12]
lea ecx, [rdx - 0x80000000]
cmp edx, r12d
cmovae ecx, eax
movsxd rax, ecx
mov qword [rbp + 0x298], rax
lea rcx, [rbp + 0x298]
call fcn.18008ef60
movsxd rbx, r14d
mov r9, rbx
mov edx, 0x204
mov r8d, 0x2000000
mov rcx, qword [0x1801530b8]
call qword [sym.imp.USER32.dll_PostMessageW]
nop dword [rax]
lea rcx, [0x180153390]
call fcn.180066000
mov ecx, eax
mov eax, 0x38e38e39
mul ecx
shr edx, 3
cmp edx, 0x71c71c7
jae 0x18008e480
mov eax, 0x38e38e39
mul ecx
shr edx, 3
lea eax, [rdx + rdx*8]
shl eax, 2
sub ecx, eax
lea edx, [rcx - 0x7fffffdd]
lea eax, [rdx + r12]
lea ecx, [rdx - 0x80000000]
cmp edx, r12d
cmovae ecx, eax
movsxd rax, ecx
mov qword [rbp + 0x298], rax
lea rcx, [rbp + 0x298]
call fcn.18008ef60
mov r9, rbx
xor r8d, r8d
mov edx, 0x205
mov rcx, qword [0x1801530b8]
call qword [sym.imp.USER32.dll_PostMessageW]
mov rax, qword [rbp + 0x290]
mov qword [0x1801530a8], rax
mov rdx, qword [rdi + 0x508]
mov rcx, qword [rdi + 0x500]
dec rcx
mov rax, rdx
shr rax, 2
and rcx, rax
mov rax, qword [rdi + 0x4f8]
and edx, 3
mov rax, qword [rax + rcx*8]
mov ecx, dword [rax + rdx*4]
mov dword [0x180150268], ecx
sub qword [rdi + 0x510], 1
jne 0x18008e549
mov qword [rdi + 0x508], rsi
jmp 0x18008e550
inc qword [rdi + 0x508]
inc dword [0x1801530b0]
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x18008e580
imul rax, rax, 0x64
mov qword [0x180154908], rax
mov al, 1
jmp 0x18008e801
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rcx, rcx, 0x3b9aca00
add rax, rcx
mov qword [0x180154908], rax
mov al, 1
jmp 0x18008e801
mov dword [rbp + 0x290], 0x3f800000
xorps xmm8, xmm8
mov dword [rsp + 0x20], 0
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x18008e5e0
imul rcx, rax, 0x64
jmp 0x18008e5fe
cqo
idiv rbx
mov r8, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rcx, r8, 0x3b9aca00
add rcx, rax
sub rcx, qword [0x180154908]
movabs rax, 0x431bde82d7b634db
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
xorps xmm1, xmm1
cvtsi2ss xmm1, rdx
movd xmm0, dword [0x180150274]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [rbp + 0x298], xmm1
lea rcx, [rsp + 0x20]
lea rax, [rbp + 0x298]
comiss xmm8, xmm1
cmovbe rcx, rax
lea rax, [rbp + 0x290]
comiss xmm1, dword [0x180137684]
cmovbe rax, rcx
movss xmm0, dword [rax]
movss dword [rbp + 0x298], xmm0
movd xmm6, dword [0x1801530a8]
cvtdq2ps xmm6, xmm6
mov dword [rsp + 0x20], 0x3f800000
mov dword [rbp + 0x290], 0
lea rcx, [rbp + 0x290]
lea rax, [rbp + 0x298]
comiss xmm8, xmm0
cmovbe rcx, rax
lea rax, [rsp + 0x20]
comiss xmm0, dword [0x180137684]
cmovbe rax, rcx
movss xmm5, dword [rax]
movss dword [rbp + 0x298], xmm0
movd xmm3, dword [0x1801530ac]
cvtdq2ps xmm3, xmm3
mov dword [rsp + 0x20], 0x3f800000
mov dword [rbp + 0x290], 0
lea rcx, [rbp + 0x290]
lea rax, [rbp + 0x298]
comiss xmm8, xmm0
cmovbe rcx, rax
lea rax, [rsp + 0x20]
comiss xmm0, dword [0x180137684]
cmovbe rax, rcx
movss xmm1, dword [rax]
movaps xmm0, xmm1
addss xmm0, xmm1
movss xmm4, dword [0x1801376e4]
movaps xmm2, xmm4
subss xmm2, xmm0
mulss xmm1, xmm1
mulss xmm2, xmm1
movd xmm0, r14d
cvtdq2ps xmm0, xmm0
subss xmm0, xmm3
mulss xmm2, xmm0
addss xmm2, xmm3
cvttss2si edx, xmm2
movaps xmm0, xmm5
addss xmm0, xmm5
subss xmm4, xmm0
mulss xmm5, xmm5
mulss xmm4, xmm5
movd xmm0, r15d
cvtdq2ps xmm0, xmm0
subss xmm0, xmm6
mulss xmm4, xmm0
addss xmm4, xmm6
cvttss2si ecx, xmm4
call qword [sym.imp.USER32.dll_SetCursorPos]
mov al, 1
jmp 0x18008e801
cmp byte [rdi + 0x568], 0
je 0x18008e7b8
mov dword [0x180150288], 0x10
mov qword [0x18015028c], 2
mov qword [0x180150298], rsi
mov r8d, 0x28
lea rdx, [0x180150280]
lea ecx, [r8 - 0x27]
call qword [sym.imp.USER32.dll_SendInput]
mov byte [rdi + 0x568], 0
mov al, 1
jmp 0x18008e801
cmp byte [rdi + 0x568], sil
je 0x18008e7ff
mov dword [0x180150288], 0x10
mov qword [0x18015028c], 2
mov qword [0x180150298], rsi
mov r8d, 0x28
lea rdx, [0x180150280]
lea ecx, [r8 - 0x27]
call qword [sym.imp.USER32.dll_SendInput]
mov byte [rdi + 0x568], sil
xor al, al
mov byte [0x1801530b4], al
cmp dword [0x180150268], 0xffffffff
jne 0x18008e85a
cmp byte [rdi + 0x568], 0
je 0x18008e853
mov dword [0x180150288], 0x10
mov qword [0x18015028c], 2
mov qword [0x180150298], rsi
mov r8d, 0x28
lea rdx, [0x180150280]
lea ecx, [r8 - 0x27]
call qword [sym.imp.USER32.dll_SendInput]
mov byte [rdi + 0x568], 0
mov byte [0x1801530b4], 0
mov rcx, qword [rbp + 0x2b0]
xor rcx, rsp
call fcn.1800d26f0
lea r11, [rsp + 0x3e0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm8, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret