Function at 0x18008ff72
Capabilities:
Log keystrokes via polling

Disassembly:
jmp 0x180167c20
push rbp
push rsi
push rdi
sub rsp, 0x7d0
lea rbp, [rsp + 0x30]
lea rdi, [rsp + 0x30]
mov ecx, 0x158
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rax, qword [0x18023b1c0]
xor rax, rbp
mov qword [rbp + 0x798], rax
lea rcx, [0x1802568a1]
call fcn.1800910cf
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [rbp + 4], eax
movzx eax, byte [0x180242930]
test eax, eax
jne 0x180167c77
jmp 0x1801684ef
movzx eax, byte [0x180242934]
test eax, eax
je 0x180167ccc
lea rcx, str.FirstPersonCamera
call fcn.18008e0c8
mov qword [rbp + 0x28], rax
cmp qword [rbp + 0x28], 0
je 0x180167ccc
lea rdx, str.Camera
mov rcx, qword [rbp + 0x28]
call fcn.18008f7de
mov qword [rbp + 0x48], rax
cmp qword [rbp + 0x48], 0
je 0x180167ccc
movss xmm2, dword [0x18020c9f8]
lea rdx, str.set_fieldOfView
mov rcx, qword [rbp + 0x48]
call fcn.18008f20c
movzx eax, byte [0x180242935]
test eax, eax
je 0x180167ebb
lea rax, [rbp + 0x68]
lea rcx, [0x180242a00]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
movzx eax, byte [0x180242936]
test eax, eax
je 0x180167d41
movss xmm0, dword [0x1801ba420]
movss dword [rsp + 0x20], xmm0
movss xmm3, dword [0x180242a18]
movss xmm2, dword [0x180242a14]
movss xmm1, dword [0x180242a10]
lea rcx, [rbp + 0x554]
call fcn.18009157f
lea rcx, [rbp + 0x68]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
call fcn.18008e749
mov qword [rbp + 0x778], rax
lea rcx, [rbp + 0x68]
call fcn.18008fd1a
mov dword [rbp + 0x780], eax
movss xmm0, dword [0x18020c9fc]
mulss xmm0, dword [0x1801c776c]
movss xmm1, dword [0x180242a48]
subss xmm1, dword [0x18020c9fc]
addss xmm1, xmm0
movaps xmm0, xmm1
movss xmm2, dword [0x180242a4c]
movaps xmm1, xmm0
lea rcx, [rbp + 0x584]
call fcn.18008feaf
mov qword [rbp + 0x788], rax
movss xmm0, dword [0x180242a48]
subss xmm0, dword [0x18020c9fc]
movss xmm2, dword [0x180242a4c]
movaps xmm1, xmm0
lea rcx, [rbp + 0x5a4]
call fcn.18008feaf
mov qword [rbp + 0x790], rax
movss xmm0, dword [0x1801ed870]
movss dword [rsp + 0x20], xmm0
mov r9d, dword [rbp + 0x780]
mov r8, qword [rbp + 0x788]
mov rdx, qword [rbp + 0x790]
mov rcx, qword [rbp + 0x778]
call fcn.18008e519
call fcn.18008e749
mov qword [rbp + 0x778], rax
lea rcx, [rbp + 0x68]
call fcn.18008fd1a
mov dword [rbp + 0x780], eax
movss xmm0, dword [0x18020c9fc]
mulss xmm0, dword [0x1801c776c]
movss xmm1, dword [0x180242a4c]
subss xmm1, dword [0x18020c9fc]
addss xmm1, xmm0
movaps xmm0, xmm1
movaps xmm2, xmm0
movss xmm1, dword [0x180242a48]
lea rcx, [rbp + 0x5c4]
call fcn.18008feaf
mov qword [rbp + 0x788], rax
movss xmm0, dword [0x180242a4c]
subss xmm0, dword [0x18020c9fc]
movaps xmm2, xmm0
movss xmm1, dword [0x180242a48]
lea rcx, [rbp + 0x5e4]
call fcn.18008feaf
mov qword [rbp + 0x790], rax
movss xmm0, dword [0x1801ed870]
movss dword [rsp + 0x20], xmm0
mov r9d, dword [rbp + 0x780]
mov r8, qword [rbp + 0x788]
mov rdx, qword [rbp + 0x790]
mov rcx, qword [rbp + 0x778]
call fcn.18008e519
movzx eax, byte [0x18020c9f1]
test eax, eax
je 0x180167f74
call fcn.18008e749
mov qword [rbp + 0x778], rax
mov dword [rsp + 0x20], 0xff
mov r9d, 0xff
mov r8d, 0xff
mov edx, 0xff
lea rcx, [rbp + 0x604]
call fcn.18008f1bc
mov rcx, rax
call fcn.18008fd1a
mov dword [rbp + 0x780], eax
movss xmm0, dword [0x18020ca04]
movss dword [rbp + 0x784], xmm0
movss xmm2, dword [0x180242a4c]
movss xmm1, dword [0x180242a48]
lea rcx, [rbp + 0x634]
call fcn.18008feaf
mov qword [rbp + 0x788], rax
movss xmm0, dword [0x1801ba420]
movss dword [rsp + 0x28], xmm0
mov dword [rsp + 0x20], 0x168
mov r9d, dword [rbp + 0x780]
movss xmm2, dword [rbp + 0x784]
mov rdx, qword [rbp + 0x788]
mov rcx, qword [rbp + 0x778]
call fcn.18008f36a
lea rcx, [0x180242a50]
call fcn.18008f0ae
test rax, rax
jbe 0x180168279
mov dword [rbp + 0x94], 0
jmp 0x180167fa3
mov eax, dword [rbp + 0x94]
inc eax
mov dword [rbp + 0x94], eax
movsxd rax, dword [rbp + 0x94]
mov qword [rbp + 0x778], rax
lea rcx, [0x180242a50]
call fcn.18008f0ae
mov rcx, qword [rbp + 0x778]
cmp rcx, rax
jae 0x180168279
movsxd rax, dword [rbp + 0x94]
mov rdx, rax
lea rcx, [0x180242a50]
call fcn.18008ea64
cmp qword [rax], 0
jne 0x180167feb
jmp 0x180167f95
mov eax, dword [rbp + 0x94]
mov dword [0x180242940], eax
movsxd rax, dword [0x180242940]
mov rdx, rax
lea rcx, [0x180242a50]
call fcn.18008ea64
mov rcx, qword [rax]
call fcn.18008ebf4
mov qword [rbp + 0x778], rax
lea rdx, [rbp + 0xb8]
mov rcx, qword [rbp + 0x778]
call fcn.180090fb2
movzx eax, byte [0x180242931]
test eax, eax
je 0x180168274
lea rax, [rbp + 0xe8]
lea rcx, [rbp + 0xb8]
mov rdi, rax
mov rsi, rcx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
movss xmm0, dword [rbp + 0xec]
subss xmm0, dword [0x1801c7720]
movss dword [rbp + 0xec], xmm0
lea rcx, [rbp + 0x118]
call fcn.18008ef37
lea rax, [rbp + 0x730]
lea rcx, [rbp + 0xe8]
mov rdi, rax
mov rsi, rcx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rdx, [rbp + 0x118]
lea rcx, [rbp + 0x730]
call fcn.18008fa18
movzx eax, al
test eax, eax
je 0x180168274
lea rax, [rbp + 0x138]
lea rcx, [0x180242a28]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
movzx eax, byte [0x180242932]
test eax, eax
je 0x180168122
movss xmm0, dword [0x1801ba420]
movss dword [rsp + 0x20], xmm0
movss xmm3, dword [0x180242a18]
movss xmm2, dword [0x180242a14]
movss xmm1, dword [0x180242a10]
lea rcx, [rbp + 0x654]
call fcn.18009157f
lea rcx, [rbp + 0x138]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
mov eax, dword [0x18020ca08]
mov dword [rbp + 0x774], eax
cmp dword [rbp + 0x774], 1
je 0x180168149
cmp dword [rbp + 0x774], 2
je 0x1801681e1
jmp 0x180168274
call fcn.18008fd1f
mov qword [rbp + 0x778], rax
lea rcx, [rbp + 0x138]
call fcn.18008fd1a
mov dword [rbp + 0x780], eax
movss xmm2, dword [rbp + 0x11c]
movss xmm1, dword [rbp + 0x118]
lea rcx, [rbp + 0x684]
call fcn.18008feaf
mov qword [rbp + 0x788], rax
movss xmm2, dword [0x180242a24]
movss xmm1, dword [0x180242a48]
lea rcx, [rbp + 0x6a4]
call fcn.18008feaf
mov qword [rbp + 0x790], rax
movss xmm0, dword [0x1801ed878]
movss dword [rsp + 0x20], xmm0
mov r9d, dword [rbp + 0x780]
mov r8, qword [rbp + 0x788]
mov rdx, qword [rbp + 0x790]
mov rcx, qword [rbp + 0x778]
call fcn.18008e519
jmp 0x180168274
call fcn.18008fd1f
mov qword [rbp + 0x778], rax
lea rcx, [rbp + 0x138]
call fcn.18008fd1a
mov dword [rbp + 0x780], eax
movss xmm2, dword [rbp + 0x11c]
movss xmm1, dword [rbp + 0x118]
lea rcx, [rbp + 0x6c4]
call fcn.18008feaf
mov qword [rbp + 0x788], rax
movss xmm2, dword [0x180242a4c]
movss xmm1, dword [0x180242a48]
lea rcx, [rbp + 0x6e4]
call fcn.18008feaf
mov qword [rbp + 0x790], rax
movss xmm0, dword [0x1801ed878]
movss dword [rsp + 0x20], xmm0
mov r9d, dword [rbp + 0x780]
mov r8, qword [rbp + 0x788]
mov rdx, qword [rbp + 0x790]
mov rcx, qword [rbp + 0x778]
call fcn.18008e519
jmp 0x180167f95
movzx eax, byte [0x180242933]
test eax, eax
je 0x1801684d4
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x1801684d4
mov rcx, qword [0x180242948]
call fcn.18008ebf4
mov qword [rbp + 0x778], rax
lea rdx, [rbp + 0x168]
mov rcx, qword [rbp + 0x778]
call fcn.180090fb2
movss xmm3, dword [rbp + 0x170]
movss xmm2, dword [rbp + 0x16c]
movss xmm1, dword [rbp + 0x168]
lea rcx, [rbp + 0x198]
call fcn.18008fce8
xor edx, edx
lea rcx, [0x180242a50]
call fcn.18008ea64
mov rcx, qword [rax]
call fcn.18008ebf4
mov qword [rbp + 0x1c8], rax
lea rdx, [rbp + 0x1e8]
mov rcx, qword [rbp + 0x1c8]
call fcn.180090fb2
movss xmm0, dword [0x1801b7c9c]
movss dword [rbp + 0x214], xmm0
lea rcx, [rbp + 0x238]
call fcn.18008ef37
mov dword [rbp + 0x254], 0
jmp 0x18016834c
mov eax, dword [rbp + 0x254]
inc eax
mov dword [rbp + 0x254], eax
movsxd rax, dword [rbp + 0x254]
mov qword [rbp + 0x778], rax
lea rcx, [0x180242a50]
call fcn.18008f0ae
mov rcx, qword [rbp + 0x778]
cmp rcx, rax
jae 0x180168499
movsxd rax, dword [rbp + 0x254]
mov rdx, rax
lea rcx, [0x180242a50]
call fcn.18008ea64
mov rcx, qword [rax]
call fcn.18008ebf4
mov qword [rbp + 0x778], rax
lea rdx, [rbp + 0x704]
mov rcx, qword [rbp + 0x778]
call fcn.180090fb2
lea rcx, [rbp + 0x760]
mov rdi, rcx
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rdx, [rbp + 0x238]
lea rcx, [rbp + 0x760]
call fcn.18008fa18
movzx eax, al
test eax, eax
je 0x180168494
movsxd rax, dword [rbp + 0x254]
mov rdx, rax
lea rcx, [0x180242a50]
call fcn.18008ea64
mov rcx, qword [rax]
call fcn.18008ebf4
mov qword [rbp + 0x278], rax
lea rdx, [rbp + 0x298]
mov rcx, qword [rbp + 0x278]
call fcn.180090fb2
movss xmm3, dword [rbp + 0x2a0]
movss xmm2, dword [rbp + 0x29c]
movss xmm1, dword [rbp + 0x298]
lea rcx, [rbp + 0x2c8]
call fcn.18008fce8
lea rdx, [rbp + 0x198]
lea rcx, [rbp + 0x2c8]
call fcn.1800915b1
movss dword [rbp + 0x2f4], xmm0
movss xmm0, dword [rbp + 0x214]
comiss xmm0, dword [rbp + 0x2f4]
jbe 0x180168494
movss xmm0, dword [rbp + 0x2f4]
movss dword [rbp + 0x214], xmm0
mov rax, qword [rbp + 0x278]
mov qword [0x180242958], rax
mov rax, qword [rbp + 0x278]
mov qword [rbp + 0x1c8], rax
jmp 0x18016833e
cmp qword [rbp + 0x1c8], 0
je 0x1801684d4
cvttss2si eax, dword [0x18020ca00]
mov dword [rsp + 0x20], eax
movss xmm3, dword [0x180242a24]
movss xmm2, dword [0x180242a20]
movss xmm1, dword [rbp + 0x23c]
movss xmm0, dword [rbp + 0x238]
call fcn.18008f239
mov eax, dword [0x180242ec4]
mov ecx, dword [rbp + 4]
sub ecx, eax
mov eax, ecx
cmp eax, 5
jbe 0x1801684ef
mov eax, dword [rbp + 4]
mov dword [0x180242ec4], eax
lea rcx, [rbp - 0x30]
lea rdx, [0x1801c9f70]
call fcn.180090873
mov rcx, qword [rbp + 0x798]
xor rcx, rbp
call fcn.18008f743
lea rsp, [rbp + 0x7a0]
pop rdi
pop rsi
pop rbp
ret