Function at 0x18001a2cb
Capabilities:
Log keystrokes via polling

Disassembly:
jmp 0x180045b90
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
sub rsp, 0x7b0
lea rbp, [rsp + 0x40]
lea rdi, [rsp + 0x40]
mov ecx, 0x14c
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x7d8]
mov rax, qword [0x180065040]
xor rax, rbp
mov qword [rbp + 0x768], rax
lea rcx, [0x1800721de]
call fcn.18001b45a
nop
mov rax, qword [rbp + 0x790]
movzx eax, byte [rax + 0x68]
test eax, eax
je 0x18004682e
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x30]
cmp qword [rax], 0
je 0x180045c91
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x30]
mov rdx, qword [rax]
lea rcx, str.Local_Player:__p
call fcn.18001aab9
nop
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x30]
mov rax, qword [rax]
add rax, 0x338
mov qword [rbp + 8], rax
mov rax, qword [rbp + 8]
cvtss2sd xmm0, dword [rax + 8]
mov rax, qword [rbp + 8]
cvtss2sd xmm1, dword [rax + 4]
mov rax, qword [rbp + 8]
cvtss2sd xmm2, dword [rax]
movsd qword [rbp + 0x758], xmm2
movaps xmm3, xmm0
movq r9, xmm3
movaps xmm2, xmm1
movq r8, xmm2
movsd xmm0, qword [rbp + 0x758]
movaps xmm1, xmm0
movq rdx, xmm1
lea rcx, str.Local_Player_Position:__f__f__f
call fcn.18001aab9
nop
call fcn.18001a5b4
mov qword [rbp + 0x28], rax
mov rax, qword [rbp + 0x790]
mov rax, qword [rax]
mov qword [rbp + 0x758], rax
lea rdx, [rbp + 0x48]
mov rcx, qword [rbp + 0x758]
call fcn.18001accb
nop
mov eax, dword [rbp + 0x4c]
mov dword [rsp + 0x20], eax
mov r9d, dword [rbp + 0x48]
mov r8d, dword [rbp + 0x2c]
mov edx, dword [rbp + 0x28]
lea rcx, str.Mouse:__d__d__Menu:__d__d
call fcn.18001aab9
nop
mov rax, qword [rbp + 0x790]
movzx eax, byte [rax + 0xd0]
test eax, eax
je 0x180045e51
mov dword [rbp + 0x64], 0
jmp 0x180045d02
mov eax, dword [rbp + 0x64]
inc eax
mov dword [rbp + 0x64], eax
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x18]
mov qword [rbp + 0x758], rax
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x18]
mov rax, qword [rax]
mov rax, qword [rax + 0x28]
mov qword [rbp + 0x760], rax
xor edx, edx
mov rcx, qword [rbp + 0x758]
call qword [rbp + 0x760]
cmp dword [rbp + 0x64], eax
jge 0x180045e4c
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x18]
mov qword [rbp + 0x758], rax
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x18]
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
mov qword [rbp + 0x760], rax
mov edx, dword [rbp + 0x64]
mov rcx, qword [rbp + 0x758]
call qword [rbp + 0x760]
mov qword [rbp + 0x88], rax
cmp qword [rbp + 0x88], 0
je 0x180045e47
lea rax, [rbp + 0xa8]
mov rcx, qword [rbp + 0x88]
mov rdi, rax
lea rsi, [rcx + 0x428]
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
xorps xmm0, xmm0
movss dword [rbp + 0x644], xmm0
xorps xmm0, xmm0
movss dword [rbp + 0x648], xmm0
xorps xmm0, xmm0
movss dword [rbp + 0x64c], xmm0
lea rdx, [rbp + 0x644]
lea rcx, [rbp + 0xa8]
call fcn.18001b00e
movzx eax, al
test eax, eax
je 0x180045e04
jmp 0x180045cfa
cvtss2sd xmm0, dword [rbp + 0xb0]
cvtss2sd xmm1, dword [rbp + 0xac]
cvtss2sd xmm2, dword [rbp + 0xa8]
movsd qword [rsp + 0x28], xmm0
movsd qword [rsp + 0x20], xmm1
movaps xmm3, xmm2
movq r9, xmm3
mov r8, qword [rbp + 0x88]
mov edx, dword [rbp + 0x64]
lea rcx, str.Entity__d:__p__Pos:__f__f__f
call fcn.18001aab9
nop
jmp 0x180045cfa
jmp 0x18004600a
mov qword [rbp + 0xd8], 0
mov dword [rbp + 0xf4], 0
jmp 0x180045e76
mov eax, dword [rbp + 0xf4]
inc eax
mov dword [rbp + 0xf4], eax
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x18]
mov qword [rbp + 0x758], rax
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x18]
mov rax, qword [rax]
mov rax, qword [rax + 0x28]
mov qword [rbp + 0x760], rax
xor edx, edx
mov rcx, qword [rbp + 0x758]
call qword [rbp + 0x760]
cmp dword [rbp + 0xf4], eax
jge 0x18004600a
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x18]
mov qword [rbp + 0x758], rax
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x18]
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
mov qword [rbp + 0x760], rax
mov edx, dword [rbp + 0xf4]
mov rcx, qword [rbp + 0x758]
call qword [rbp + 0x760]
mov qword [rbp + 0x118], rax
cmp qword [rbp + 0x118], 0
je 0x180045fe8
mov rax, qword [rbp + 0x118]
add rax, 0x3704
mov qword [rbp + 0x138], rax
mov rax, qword [rbp + 0x118]
mov rax, qword [rax]
mov rcx, qword [rbp + 0x790]
mov rcx, qword [rcx + 8]
mov rcx, qword [rcx + 0x50]
cmp qword [rax], rcx
jne 0x180045fe8
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rbp + 0x138]
movsx eax, byte [rcx + rax]
test eax, eax
je 0x180045fe8
lea rax, [rbp + 0x158]
mov rcx, qword [rbp + 0x118]
mov rdi, rax
lea rsi, [rcx + 0x338]
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
cvtss2sd xmm0, dword [rbp + 0x160]
cvtss2sd xmm1, dword [rbp + 0x15c]
cvtss2sd xmm2, dword [rbp + 0x158]
movsd qword [rsp + 0x30], xmm0
movsd qword [rsp + 0x28], xmm1
movsd qword [rsp + 0x20], xmm2
mov r9, qword [rbp + 0x138]
mov r8, qword [rbp + 0x118]
mov edx, dword [rbp + 0xf4]
lea rcx, str.Entity__d:__p__Name:__s__Pos:__f__f__f
call fcn.18001aab9
nop
mov rax, qword [rbp + 0xd8]
inc rax
mov qword [rbp + 0xd8], rax
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x38]
movsxd rax, dword [rax]
cmp qword [rbp + 0xd8], rax
jb 0x180046005
jmp 0x18004600a
jmp 0x180045e68
mov rax, qword [rbp + 0x790]
movzx eax, byte [rax + 0x138]
test eax, eax
je 0x180046828
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x30]
mov rax, qword [rax]
movss xmm0, dword [rax + 0x318]
movss dword [rbp + 0x184], xmm0
movss xmm0, dword [rbp + 0x184]
subss xmm0, dword [0x1800577d0]
movss dword [rbp + 0x1a4], xmm0
movss xmm0, dword [rbp + 0x184]
subss xmm0, dword [0x1800577cc]
movss dword [rbp + 0x1c4], xmm0
xorps xmm0, xmm0
comiss xmm0, dword [rbp + 0x184]
jbe 0x180046096
movss xmm0, dword [rbp + 0x184]
addss xmm0, dword [0x1800577d4]
movss dword [rbp + 0x184], xmm0
xorps xmm0, xmm0
comiss xmm0, dword [rbp + 0x1a4]
jbe 0x1800460ba
movss xmm0, dword [rbp + 0x1a4]
addss xmm0, dword [0x1800577d4]
movss dword [rbp + 0x1a4], xmm0
xorps xmm0, xmm0
comiss xmm0, dword [rbp + 0x1c4]
jbe 0x1800460de
movss xmm0, dword [rbp + 0x1c4]
addss xmm0, dword [0x1800577d4]
movss dword [rbp + 0x1c4], xmm0
movss xmm0, dword [rbp + 0x184]
mulss xmm0, dword [0x1800577c4]
movss dword [rbp + 0x184], xmm0
movss xmm0, dword [rbp + 0x1a4]
mulss xmm0, dword [0x1800577c4]
movss dword [rbp + 0x1a4], xmm0
movss xmm0, dword [rbp + 0x1c4]
mulss xmm0, dword [0x1800577c4]
movss dword [rbp + 0x1c4], xmm0
movss xmm0, dword [rbp + 0x184]
call qword [sym.imp.ucrtbased.dll_cosf]
movss dword [rbp + 0x1e8], xmm0
movss xmm0, dword [rbp + 0x184]
call qword [sym.imp.ucrtbased.dll_sinf]
movss dword [rbp + 0x1ec], xmm0
movss xmm0, dword [rbp + 0x1a4]
call qword [sym.imp.ucrtbased.dll_cosf]
movss dword [rbp + 0x208], xmm0
movss xmm0, dword [rbp + 0x1a4]
call qword [sym.imp.ucrtbased.dll_sinf]
movss dword [rbp + 0x20c], xmm0
movss xmm0, dword [rbp + 0x1c4]
call qword [sym.imp.ucrtbased.dll_cosf]
movss dword [rbp + 0x228], xmm0
movss xmm0, dword [rbp + 0x1c4]
call qword [sym.imp.ucrtbased.dll_sinf]
movss dword [rbp + 0x22c], xmm0
lea rcx, [rbp + 0x1e8]
call fcn.18001a938
nop
lea rcx, [rbp + 0x208]
call fcn.18001a938
nop
lea rcx, [rbp + 0x228]
call fcn.18001a938
nop
mov eax, 0x104
mov eax, eax
mov ecx, dword [0x18006608c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
mov eax, dword [rax + rcx]
cmp dword [0x180065fe4], eax
jle 0x180046242
lea rcx, [0x180065fe4]
call fcn.18001b270
cmp dword [0x180065fe4], 0xffffffff
jne 0x180046242
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x30]
mov rax, qword [rax]
lea rcx, [0x180065fd8]
mov rdi, rcx
lea rsi, [rax + 0x338]
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rcx, [0x180065fe4]
call fcn.18001b2e3
nop
mov ecx, 0x73
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 1
test eax, eax
je 0x18004627f
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x30]
mov rax, qword [rax]
lea rcx, [0x180065fd8]
mov rdi, rcx
lea rsi, [rax + 0x338]
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
lea rcx, [rbp + 0x6b0]
lea rdx, [0x180065fd8]
mov rdi, rcx
mov rsi, rdx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov r8, qword [rax + 0x40]
lea rdx, [rbp + 0x248]
lea rcx, [rbp + 0x6b0]
call fcn.18001af41
movzx eax, al
test eax, eax
je 0x180046828
xorps xmm0, xmm0
movss dword [rbp + 0x268], xmm0
xorps xmm0, xmm0
movss dword [rbp + 0x26c], xmm0
xorps xmm0, xmm0
movss dword [rbp + 0x270], xmm0
mov ecx, 0x64
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 2
imul rcx, rcx, 0
mov word [rbp + rcx + 0x298], ax
mov ecx, 0x66
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 2
imul rcx, rcx, 1
mov word [rbp + rcx + 0x298], ax
mov ecx, 0x68
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 2
imul rcx, rcx, 2
mov word [rbp + rcx + 0x298], ax
mov ecx, 0x62
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 2
imul rcx, rcx, 3
mov word [rbp + rcx + 0x298], ax
mov ecx, 0x71
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 1
test eax, eax
je 0x180046399
movzx eax, byte [0x180065fe8]
test eax, eax
jne 0x180046382
mov dword [rbp + 0x754], 1
jmp 0x18004638c
mov dword [rbp + 0x754], 0
movzx eax, byte [rbp + 0x754]
mov byte [0x180065fe8], al
movzx eax, byte [0x180065fe8]
test eax, eax
je 0x180046445
mov eax, 2
imul rax, rax, 0
movsx eax, word [rbp + rax + 0x298]
and eax, 1
test eax, eax
je 0x1800463ce
mov eax, dword [0x180065fec]
inc eax
mov dword [0x180065fec], eax
mov eax, 2
imul rax, rax, 1
movsx eax, word [rbp + rax + 0x298]
and eax, 1
test eax, eax
je 0x1800463f4
mov eax, dword [0x180065fec]
dec eax
mov dword [0x180065fec], eax
mov eax, 2
imul rax, rax, 2
movsx eax, word [rbp + rax + 0x298]
and eax, 1
test eax, eax
je 0x18004641a
mov eax, dword [0x180065ff0]
inc eax
mov dword [0x180065ff0], eax
mov eax, 2
imul rax, rax, 3
movsx eax, word [rbp + rax + 0x298]
and eax, 1
test eax, eax
je 0x180046440
mov eax, dword [0x180065ff0]
dec eax
mov dword [0x180065ff0], eax
jmp 0x1800464dd
mov eax, 2
imul rax, rax, 0
movsx eax, word [rbp + rax + 0x298]
and eax, 1
test eax, eax
je 0x18004646b
mov eax, dword [0x180065ff4]
dec eax
mov dword [0x180065ff4], eax
mov eax, 2
imul rax, rax, 1
movsx eax, word [rbp + rax + 0x298]
and eax, 1
test eax, eax
je 0x180046491
mov eax, dword [0x180065ff4]
inc eax
mov dword [0x180065ff4], eax
mov eax, 2
imul rax, rax, 2
movsx eax, word [rbp + rax + 0x298]
and eax, 1
test eax, eax
je 0x1800464b7
mov eax, dword [0x180065ff8]
inc eax
mov dword [0x180065ff8], eax
mov eax, 2
imul rax, rax, 3
movsx eax, word [rbp + rax + 0x298]
and eax, 1
test eax, eax
je 0x1800464dd
mov eax, dword [0x180065ff8]
dec eax
mov dword [0x180065ff8], eax
cvtsi2ss xmm0, dword [0x180065fec]
movss xmm1, dword [rbp + 0x208]
mulss xmm1, xmm0
movaps xmm0, xmm1
movss xmm1, dword [rbp + 0x268]
addss xmm1, xmm0
movaps xmm0, xmm1
movss dword [rbp + 0x268], xmm0
cvtsi2ss xmm0, dword [0x180065fec]
movss xmm1, dword [rbp + 0x20c]
mulss xmm1, xmm0
movaps xmm0, xmm1
movss xmm1, dword [rbp + 0x26c]
addss xmm1, xmm0
movaps xmm0, xmm1
movss dword [rbp + 0x26c], xmm0
cvtsi2ss xmm0, dword [0x180065ff0]
movss xmm1, dword [rbp + 0x270]
addss xmm1, xmm0
movaps xmm0, xmm1
movss dword [rbp + 0x270], xmm0
mov ecx, 0x72
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 1
test eax, eax
je 0x18004659f
mov r8d, dword [0x180065ff0]
mov edx, dword [0x180065fec]
lea rcx, str.Left_multiplier_position:__d___Z_Offset_Position:__d
call fcn.18001ac67
nop
mov r8d, dword [0x180065ff8]
mov edx, dword [0x180065ff4]
lea rcx, str.Width_Multiplier:__d__HeightOffset__d
call fcn.18001ac67
nop
mov r8d, dword [0x180065ff0]
mov edx, dword [0x180065fec]
lea rcx, str.Left_multiplier_position:__d___Z_Offset_Position:__d
call fcn.18001aab9
nop
mov r8d, dword [0x180065ff8]
mov edx, dword [0x180065ff4]
lea rcx, str.Width_Multiplier:__d__HeightOffset__d
call fcn.18001aab9
nop
lea r8, [rbp + 0x268]
lea rdx, [rbp + 0x2b8]
lea rcx, [0x180065fd8]
call fcn.18001b39c
nop
cvtsi2ss xmm0, dword [0x180065ff4]
movss xmm1, dword [rbp + 0x228]
mulss xmm1, xmm0
movaps xmm0, xmm1
movss dword [rbp + 0x664], xmm0
cvtsi2ss xmm0, dword [0x180065ff4]
movss xmm1, dword [rbp + 0x22c]
mulss xmm1, xmm0
movaps xmm0, xmm1
movss dword [rbp + 0x668], xmm0
xorps xmm0, xmm0
movss dword [rbp + 0x66c], xmm0
lea r8, [rbp + 0x664]
lea rdx, [rbp + 0x2e8]
lea rcx, [rbp + 0x2b8]
call fcn.18001b39c
nop
xorps xmm0, xmm0
movss dword [rbp + 0x684], xmm0
xorps xmm0, xmm0
movss dword [rbp + 0x688], xmm0
cvtsi2ss xmm0, dword [0x180065ff8]
movss dword [rbp + 0x68c], xmm0
lea r8, [rbp + 0x684]
lea rdx, [rbp + 0x318]
lea rcx, [rbp + 0x2b8]
call fcn.18001adc5
nop
lea rax, [rbp + 0x3a4]
mov rdi, rax
xor eax, eax
mov ecx, 3
rep stosb byte [rdi], al
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
lea rcx, [rbp + 0x6e0]
lea rdx, [rbp + 0x2b8]
mov rdi, rcx
mov rsi, rdx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov r8, qword [rax + 0x40]
lea rdx, [rbp + 0x348]
lea rcx, [rbp + 0x6e0]
call fcn.18001af41
mov ecx, 1
imul rcx, rcx, 0
mov byte [rbp + rcx + 0x3a4], al
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
lea rcx, [rbp + 0x710]
lea rdx, [rbp + 0x2e8]
mov rdi, rcx
mov rsi, rdx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov r8, qword [rax + 0x40]
lea rdx, [rbp + 0x388]
lea rcx, [rbp + 0x710]
call fcn.18001af41
mov ecx, 1
imul rcx, rcx, 1
mov byte [rbp + rcx + 0x3a4], al
mov rax, qword [rbp + 0x790]
mov rax, qword [rax + 8]
lea rcx, [rbp + 0x740]
lea rdx, [rbp + 0x318]
mov rdi, rcx
mov rsi, rdx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov r8, qword [rax + 0x40]
lea rdx, [rbp + 0x368]
lea rcx, [rbp + 0x740]
call fcn.18001af41
mov ecx, 1
imul rcx, rcx, 2
mov byte [rbp + rcx + 0x3a4], al
mov eax, 1
imul rax, rax, 0
movzx eax, byte [rbp + rax + 0x3a4]
test eax, eax
jne 0x1800467cc
mov eax, 1
imul rax, rax, 1
movzx eax, byte [rbp + rax + 0x3a4]
test eax, eax
jne 0x1800467cc
mov eax, 1
imul rax, rax, 2
movzx eax, byte [rbp + rax + 0x3a4]
test eax, eax
je 0x180046828
mov eax, dword [rbp + 0x348]
mov ecx, dword [rbp + 0x388]
sub ecx, eax
mov eax, ecx
mov dword [rbp + 0x3c4], eax
mov eax, dword [rbp + 0x34c]
mov ecx, dword [rbp + 0x36c]
sub ecx, eax
mov eax, ecx
mov dword [rbp + 0x3e4], eax
mov dword [rsp + 0x28], 0xffffffff
mov dword [rsp + 0x20], 1
mov r9d, dword [rbp + 0x3e4]
mov r8d, dword [rbp + 0x3c4]
mov edx, dword [rbp + 0x34c]
mov ecx, dword [rbp + 0x348]
call fcn.18001a668
nop
call fcn.18001a253
nop
lea rcx, [rbp - 0x40]
lea rdx, [0x18005ad90]
call fcn.18001b126
mov rcx, qword [rbp + 0x768]
xor rcx, rbp
call fcn.18001a9dd
lea rsp, [rbp + 0x770]
pop rdi
pop rsi
pop rbp
ret