Function at 0x18011ddf0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
push rbp
lea rbp, [rax - 0x1e8]
sub rsp, 0x2e0
movaps xmmword [rax - 0x18], xmm6
mov rax, qword [0x18019a040]
xor rax, rsp
mov qword [rbp + 0x1c0], rax
mov ecx, 0x73
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor r14d, r14d
test al, 1
je 0x18011de92
mov rcx, qword [0x1801a3020]
test rcx, rcx
je 0x18011de92
call fcn.18010ffc0
test rax, rax
je 0x18011de92
cmp byte [0x1801a2ccd], r14b
sete dl
mov byte [0x1801a2ccd], dl
mov rcx, qword [0x1801a3020]
call fcn.18010fea0
cmp byte [0x1801a2ccd], r14b
je 0x18011de92
mov rcx, qword [0x1801a3020]
test rcx, rcx
je 0x18011de87
call fcn.18010ffc0
jmp 0x18011de8a
mov rax, r14
mov rcx, rax
call fcn.180110310
cmp byte [0x1801a2cce], r14b
je 0x18011dea8
movss xmm0, dword [0x180186180]
call fcn.18006c2b0
mov ecx, 0x71
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18011debc
call fcn.18006c9f0
mov ecx, 0x74
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18011ded0
call fcn.18006b920
mov ecx, 0x75
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18011deeb
movzx ecx, byte [0x1801a2cb8]
call fcn.18006b720
cmp byte [0x1801a2cac], r14b
je 0x18011df35
mov byte [0x1801c4059], 1
movss xmm6, dword [0x1801a2cd0]
call fcn.180064f50
test rax, rax
jne 0x18011df16
mov byte [0x1801a2cac], r14b
jmp 0x18011df77
mov rax, qword [rax + 0x30]
test rax, rax
je 0x18011df77
mov rax, qword [rax + 0x298]
test rax, rax
je 0x18011df77
movss dword [rax + 0x3c8], xmm6
jmp 0x18011df77
cmp byte [0x1801c4059], r14b
je 0x18011df77
mov byte [0x1801c4059], r14b
call fcn.180064f50
test rax, rax
jne 0x18011df58
mov byte [0x1801a2cac], r14b
jmp 0x18011df77
mov rax, qword [rax + 0x30]
test rax, rax
je 0x18011df77
mov rax, qword [rax + 0x298]
test rax, rax
je 0x18011df77
mov dword [rax + 0x3c8], 0x3f800000
mov edi, 1
cmp byte [0x1801a2cb4], r14b
je 0x18011dfbf
mov byte [0x1801c405a], dil
mov eax, dword [0x1801a2ce0]
lea ecx, [rax + rax*4]
add ecx, ecx
mov rax, qword [0x1801a3020]
test rax, rax
je 0x18011dff5
mov rdx, qword [rax + 0x628]
test rdx, rdx
je 0x18011dff5
cmp dword [rdx + 0x12c], ecx
je 0x18011dff5
mov dword [rdx + 0x12c], ecx
jmp 0x18011dff5
cmp byte [0x1801c405a], r14b
je 0x18011dff5
mov byte [0x1801c405a], r14b
mov rax, qword [0x1801a3020]
test rax, rax
je 0x18011dff5
mov rcx, qword [rax + 0x628]
test rcx, rcx
je 0x18011dff5
cmp dword [rcx + 0x12c], edi
je 0x18011dff5
mov dword [rcx + 0x12c], edi
cmp byte [0x1801a2cb5], r14b
je 0x18011e038
mov byte [0x1801c4058], dil
mov eax, dword [0x1801a2ce4]
lea ecx, [rax + rax*4]
add ecx, ecx
mov rax, qword [0x1801a3020]
test rax, rax
je 0x18011e06e
mov rdx, qword [rax + 0x628]
test rdx, rdx
je 0x18011e06e
cmp dword [rdx + 0x130], ecx
je 0x18011e06e
mov dword [rdx + 0x130], ecx
jmp 0x18011e06e
cmp byte [0x1801c4058], r14b
je 0x18011e06e
mov byte [0x1801c4058], r14b
mov rax, qword [0x1801a3020]
test rax, rax
je 0x18011e06e
mov rcx, qword [rax + 0x628]
test rcx, rcx
je 0x18011e06e
cmp dword [rcx + 0x130], edi
je 0x18011e06e
mov dword [rcx + 0x130], edi
cmp byte [0x1801a2ce8], r14b
jne 0x18011e096
cmp byte [0x1801a2cad], r14b
jne 0x18011e096
cmp byte [0x1801a2cac], r14b
jne 0x18011e096
cmp byte [0x1801a2ccd], r14b
je 0x18011e1e5
mov rbx, qword [0x1801a3020]
xor edx, edx
mov rcx, rbx
call fcn.18010df70
mov rcx, rbx
call fcn.18010e9a0
or byte [rax + 0x4ad], dil
cmp byte [0x1801a2cad], r14b
je 0x18011e1e5
movss xmm6, dword [0x1801a2cd0]
mov rax, qword [0x1801a3020]
test rax, rax
je 0x18011e1e5
mov rcx, rax
call fcn.18010e9a0
mov r8, rax
test rax, rax
je 0x18011e1e5
cvttss2si edx, xmm6
mov ecx, edx
cmp byte [0x1801a2cad], r14b
cmove ecx, edi
mulss xmm6, dword [0x180186190]
movss dword [rax + 0x1fc], xmm6
cmp byte [0x1801a2cad], r14b
cmove ecx, edi
imul eax, ecx, 0x15e
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [r8 + 0x1f4], xmm0
cmp byte [0x1801a2cae], r14b
cmove ecx, edi
imul eax, ecx, 0x15e
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [r8 + 0x1e8], xmm0
movss dword [r8 + 0x1ec], xmm0
imul eax, ecx, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [r8 + 0xfc0], xmm0
shl ecx, 0xb
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [r8 + 0xfc4], xmm0
mov eax, edx
cmp byte [0x1801a2caf], r14b
cmove eax, edi
imul eax, eax, 0x15e
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [r8 + 0x1f0], xmm0
mov eax, edx
cmp byte [0x1801a2cb0], r14b
cmove eax, edi
imul eax, eax, 0x15e
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [r8 + 0xff0], xmm0
cmp byte [0x1801a2cb1], r14b
cmove edx, edi
imul eax, edx, 0x15e
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [r8 + 0xff4], xmm0
cmp byte [0x1801a2cbc], r14b
je 0x18011e2d8
movss xmm6, dword [0x1801a2d00]
mov qword [rbp + 0x1a0], r14
mov qword [rbp + 0x1a8], r14
lea rcx, [rbp + 0x1a0]
call fcn.180065130
mov eax, dword [rbp + 0x1a8]
test eax, eax
je 0x18011e2d8
mov rdi, qword [rbp + 0x1a0]
mov esi, eax
mov rcx, qword [0x1801c3f18]
mov rbx, qword [rdi]
test rbx, rbx
je 0x18011e2ca
test rcx, rcx
jne 0x18011e299
xorps xmm0, xmm0
movups xmmword [rbp + 0x1a0], xmm0
mov qword [rbp + 0x1b0], r14
mov qword [rbp + 0x1b8], r14
lea r8d, [rcx + 0x13]
lea rdx, str.PalMonsterCharacter
lea rcx, [rbp + 0x1a0]
call fcn.180066c70
nop
lea rcx, [rbp + 0x1a0]
call fcn.18010d4a0
mov qword [0x1801c3f18], rax
lea rcx, [rbp + 0x1a0]
call fcn.180066db0
mov rcx, qword [0x1801c3f18]
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x18011e2ca
cmp rax, rcx
je 0x18011e2b2
mov rax, qword [rax + 0x40]
test rax, rax
jne 0x18011e2a2
jmp 0x18011e2ca
xorps xmm3, xmm3
xorps xmm2, xmm2
movaps xmm1, xmm6
mov rcx, rbx
call fcn.18006bf80
mov rcx, qword [0x1801c3f18]
add rdi, 8
sub rsi, 1
jne 0x18011e232
cmp byte [0x1801a2cc8], 0
je 0x18011e2f4
movss xmm1, dword [0x1801a2cd8]
mov ecx, dword [0x1801a2cdc]
call fcn.18006b4d0
cmp byte [0x1801a2cb6], 0
je 0x18011e302
call fcn.18006bd40
cmp byte [0x1801a2cb7], 0
je 0x18011e310
call fcn.18006bb30
cmp byte [0x1801a2ce8], 0
je 0x18011e369
call fcn.180064f50
test rax, rax
jne 0x18011e32b
mov byte [0x1801a2ce8], al
jmp 0x18011e369
mov rax, qword [0x1801a3020]
test rax, rax
je 0x18011e4b1
mov rcx, rax
call fcn.18010ffc0
test rax, rax
jne 0x18011e369
xor ecx, ecx
call fcn.180110200
test rax, rax
jne 0x18011e369
cmp qword [0x540], rax
jne 0x18011e369
mov dword [0x154], 0x4b18967f
mov rax, qword [0x1801a3020]
test rax, rax
je 0x18011e4b1
mov rcx, qword [rax + 0x800]
test rcx, rcx
je 0x18011e4b1
call fcn.180110b80
test rax, rax
je 0x18011e4b1
mov rax, qword [0x1801a3020]
mov rdi, qword [rax + 0x800]
mov rdx, qword [0x1801c3e20]
test rdx, rdx
jne 0x18011e448
mov rbx, qword [rdi + 0x10]
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
lea r8d, [rdx + 8]
lea rdx, str.CanShoot
lea rcx, [rsp + 0x30]
call fcn.180066c70
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x1a0], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x1b0], xmm1
mov r8d, 0x13
lea rdx, str.PalShooterComponent
lea rcx, [rbp + 0x1a0]
call fcn.180066c70
nop
lea r8, [rsp + 0x30]
lea rdx, [rbp + 0x1a0]
mov rcx, rbx
call fcn.18010da10
mov qword [0x1801c3e20], rax
lea rcx, [rbp + 0x1a0]
call fcn.180066db0
nop
lea rcx, [rsp + 0x30]
call fcn.180066db0
mov rdx, qword [0x1801c3e20]
mov byte [rbp + 0x190], 0
mov ebx, dword [rdx + 0xb0]
mov eax, ebx
bts eax, 0xa
mov dword [rdx + 0xb0], eax
mov rax, qword [rdi]
mov r9, qword [rax + 0x260]
lea r8, [rbp + 0x190]
mov rcx, rdi
call r9
mov rax, qword [0x1801c3e20]
mov dword [rax + 0xb0], ebx
cmp byte [rbp + 0x190], 0
je 0x18011e4b1
cmp byte [0x1801a2cb9], 0
sete bl
mov rcx, qword [0x1801a3020]
mov rcx, qword [rcx + 0x800]
call fcn.180110b80
mov byte [rax + 0x362], bl
movzx r8d, byte [0x1801a2cbf]
movzx r10d, byte [0x1801a2cbe]
test r10b, r10b
jne 0x18011e4cf
test r8b, r8b
je 0x18011e66a
mov rax, qword [0x1801a3020]
test rax, rax
je 0x18011e66a
mov r9, qword [rax + 0x628]
test r9, r9
je 0x18011e66a
mov rdi, qword [r9 + 0x108]
test rdi, rdi
je 0x18011e66a
lea rax, [rdi + 0x270]
lea rcx, [rsp + 0x70]
mov edx, 4
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
lea rcx, [rcx + 0x80]
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
lea rax, [rax + 0x80]
sub rdx, 1
jne 0x18011e510
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
mov rax, qword [rax + 0x10]
mov qword [rcx + 0x10], rax
test r10b, r10b
je 0x18011e584
mov byte [r9 + 0xa2], r10b
movzx r8d, byte [0x1801a2cbf]
test r8b, r8b
je 0x18011e66a
mov rdx, qword [0x1801c3fb0]
test rdx, rdx
jne 0x18011e626
mov rbx, qword [rdi + 0x10]
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x60], xmm1
lea r8d, [rdx + 0xb]
lea rdx, str.SetShieldHP
lea rcx, [rsp + 0x50]
call fcn.180066c70
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 0x1f
lea rdx, str.PalIndividualCharacterParameter
lea rcx, [rsp + 0x30]
call fcn.180066c70
nop
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.18010da10
mov qword [0x1801c3fb0], rax
lea rcx, [rsp + 0x30]
call fcn.180066db0
nop
lea rcx, [rsp + 0x50]
call fcn.180066db0
mov rdx, qword [0x1801c3fb0]
mov rax, qword [rbp + 0x80]
mov qword [rbp + 0x1a0], rax
mov ebx, dword [rdx + 0xb0]
mov eax, ebx
bts eax, 0xa
mov dword [rdx + 0xb0], eax
mov rax, qword [rdi]
mov r9, qword [rax + 0x260]
lea r8, [rbp + 0x1a0]
mov rcx, rdi
call r9
mov rax, qword [0x1801c3fb0]
mov dword [rax + 0xb0], ebx
cmp byte [0x1801a2cbd], 0
je 0x18011e7a7
mov rax, qword [0x1801a3020]
test rax, rax
je 0x18011e7a7
mov rdi, qword [rax + 0x628]
test rdi, rdi
je 0x18011e7a7
mov rdi, qword [rdi + 0x108]
mov rdx, qword [0x1801c3fa0]
test rdx, rdx
jne 0x18011e737
mov rbx, qword [rdi + 0x10]
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
lea r8d, [rdx + 5]
lea rdx, str.GetHP
lea rcx, [rsp + 0x30]
call fcn.180066c70
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x60], xmm1
mov r8d, 0x1f
lea rdx, str.PalIndividualCharacterParameter
lea rcx, [rsp + 0x50]
call fcn.180066c70
nop
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.18010da10
mov qword [0x1801c3fa0], rax
lea rcx, [rsp + 0x50]
call fcn.180066db0
nop
lea rcx, [rsp + 0x30]
call fcn.180066db0
mov rdx, qword [0x1801c3fa0]
mov qword [rbp + 0x198], r14
mov ebx, dword [rdx + 0xb0]
mov eax, ebx
bts eax, 0xa
mov dword [rdx + 0xb0], eax
mov rax, qword [rdi]
lea r8, [rbp + 0x198]
mov rcx, rdi
call qword [rax + 0x260]
mov rax, qword [0x1801c3fa0]
mov dword [rax + 0xb0], ebx
cmp qword [rbp + 0x198], 0x7fffffff
jge 0x18011e79a
mov dword [rbp + 0x198], 0x7fffffff
lea rdx, [rbp + 0x198]
mov rcx, qword [0x1801a3020]
call fcn.18010e880
lea rdx, [rsp + 0x70]
mov rcx, rdi
call fcn.18010f030
mov rcx, qword [rbp + 0x1c0]
xor rcx, rsp
call fcn.18012b510
lea r11, [rsp + 0x2e0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop rbp
ret