Function at 0x1801175e0
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 [0x18018f040]
xor rax, rsp
mov qword [rbp + 0x1c0], rax
mov ecx, 0x73
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180117658
mov rcx, qword [0x180197a10]
test rcx, rcx
je 0x180117658
call fcn.18010a490
test rax, rax
je 0x180117658
cmp byte [0x1801976bd], 0
sete dl
mov byte [0x1801976bd], dl
mov rcx, qword [0x180197a10]
call fcn.18010a370
cmp byte [0x1801976be], 0
je 0x18011766e
movss xmm0, dword [0x18017aee4]
call fcn.180066200
mov ecx, 0x71
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180117682
call fcn.180066940
mov ecx, 0x74
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180117696
call fcn.180065890
mov ecx, 0x75
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1801176b1
movzx ecx, byte [0x1801976a8]
call fcn.180065690
cmp byte [0x18019769c], 0
je 0x1801176fa
mov byte [0x1801b6b12], 1
movss xmm6, dword [0x1801976c0]
call fcn.1800604c0
test rax, rax
jne 0x1801176db
mov byte [0x18019769c], al
jmp 0x18011773b
mov rax, qword [rax + 0x30]
test rax, rax
je 0x18011773b
mov rax, qword [rax + 0x298]
test rax, rax
je 0x18011773b
movss dword [rax + 0x3c8], xmm6
jmp 0x18011773b
cmp byte [0x1801b6b12], 0
je 0x18011773b
mov byte [0x1801b6b12], 0
call fcn.1800604c0
test rax, rax
jne 0x18011771c
mov byte [0x18019769c], al
jmp 0x18011773b
mov rax, qword [rax + 0x30]
test rax, rax
je 0x18011773b
mov rax, qword [rax + 0x298]
test rax, rax
je 0x18011773b
mov dword [rax + 0x3c8], 0x3f800000
cmp byte [0x1801976a4], 0
je 0x18011777e
mov byte [0x1801b6b10], 1
mov eax, dword [0x1801976d0]
lea ecx, [rax + rax*4]
add ecx, ecx
mov rax, qword [0x180197a10]
test rax, rax
je 0x1801177b9
mov rdx, qword [rax + 0x628]
test rdx, rdx
je 0x1801177b9
cmp dword [rdx + 0x12c], ecx
je 0x1801177b9
mov dword [rdx + 0x12c], ecx
jmp 0x1801177b9
cmp byte [0x1801b6b10], 0
je 0x1801177b9
mov byte [0x1801b6b10], 0
mov rax, qword [0x180197a10]
test rax, rax
je 0x1801177b9
mov rcx, qword [rax + 0x628]
test rcx, rcx
je 0x1801177b9
cmp dword [rcx + 0x12c], 1
je 0x1801177b9
mov dword [rcx + 0x12c], 1
cmp byte [0x1801976a5], 0
je 0x1801177fc
mov byte [0x1801b6b11], 1
mov eax, dword [0x1801976d4]
lea ecx, [rax + rax*4]
add ecx, ecx
mov rax, qword [0x180197a10]
test rax, rax
je 0x180117837
mov rdx, qword [rax + 0x628]
test rdx, rdx
je 0x180117837
cmp dword [rdx + 0x130], ecx
je 0x180117837
mov dword [rdx + 0x130], ecx
jmp 0x180117837
cmp byte [0x1801b6b11], 0
je 0x180117837
mov byte [0x1801b6b11], 0
mov rax, qword [0x180197a10]
test rax, rax
je 0x180117837
mov rcx, qword [rax + 0x628]
test rcx, rcx
je 0x180117837
cmp dword [rcx + 0x130], 1
je 0x180117837
mov dword [rcx + 0x130], 1
cmp byte [0x1801976d8], 0
jne 0x18011785f
cmp byte [0x18019769d], 0
jne 0x18011785f
cmp byte [0x18019769c], 0
jne 0x18011785f
cmp byte [0x1801976bd], 0
je 0x180117927
mov rbx, qword [0x180197a10]
xor edx, edx
mov rcx, rbx
call fcn.1801086a0
mov rcx, rbx
call fcn.1801090d0
or byte [rax + 0x4ad], 1
cmp byte [0x18019769d], 0
je 0x180117927
movss xmm6, dword [0x1801976c0]
mov rax, qword [0x180197a10]
test rax, rax
je 0x180117927
mov rcx, rax
call fcn.1801090d0
test rax, rax
je 0x180117927
movaps xmm0, xmm6
mulss xmm0, dword [0x18017aef4]
movss dword [rax + 0x1fc], xmm0
movaps xmm1, xmm6
mulss xmm1, dword [0x18017aebc]
movss dword [rax + 0x1e8], xmm1
movss dword [rax + 0x1ec], xmm1
mulss xmm6, dword [0x18017aed8]
movss dword [rax + 0xfc0], xmm6
movss dword [rax + 0xfc4], xmm6
movss dword [rax + 0x1f0], xmm1
movss dword [rax + 0xff0], xmm1
movss dword [rax + 0xff4], xmm1
movss dword [rax + 0xfcc], xmm1
movss dword [rax + 0xfdc], xmm1
movss dword [rax + 0x1f4], xmm1
xor r14d, r14d
cmp byte [0x1801976ac], r14b
je 0x180117a26
movss xmm6, dword [0x1801976f0]
mov qword [rbp + 0x1a0], r14
mov qword [rbp + 0x1a8], r14
lea rcx, [rbp + 0x1a0]
call fcn.1800606a0
mov eax, dword [rbp + 0x1a8]
test eax, eax
je 0x180117a26
mov rdi, qword [rbp + 0x1a0]
mov esi, eax
mov rcx, qword [0x1801b69e0]
nop word [rax + rax]
mov rbx, qword [rdi]
test rbx, rbx
je 0x180117a18
test rcx, rcx
jne 0x1801179e7
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.1800621e0
nop
lea rcx, [rbp + 0x1a0]
call fcn.180107e80
mov qword [0x1801b69e0], rax
lea rcx, [rbp + 0x1a0]
call fcn.180062320
mov rcx, qword [0x1801b69e0]
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x180117a18
cmp rax, rcx
je 0x180117a00
mov rax, qword [rax + 0x40]
test rax, rax
jne 0x1801179f0
jmp 0x180117a18
xorps xmm3, xmm3
xorps xmm2, xmm2
movaps xmm1, xmm6
mov rcx, rbx
call fcn.180065ef0
mov rcx, qword [0x1801b69e0]
add rdi, 8
sub rsi, 1
jne 0x180117980
cmp byte [0x1801976b8], 0
je 0x180117a42
movss xmm1, dword [0x1801976c8]
mov ecx, dword [0x1801976cc]
call fcn.180065430
cmp byte [0x1801976a6], 0
je 0x180117a50
call fcn.180065cb0
cmp byte [0x1801976a7], 0
je 0x180117a5e
call fcn.180065aa0
cmp byte [0x1801976d8], 0
je 0x180117ab7
call fcn.1800604c0
test rax, rax
jne 0x180117a79
mov byte [0x1801976d8], al
jmp 0x180117ab7
mov rax, qword [0x180197a10]
test rax, rax
je 0x180117bff
mov rcx, rax
call fcn.18010a490
test rax, rax
jne 0x180117ab7
xor ecx, ecx
call fcn.18010a6d0
test rax, rax
jne 0x180117ab7
cmp qword [0x540], rax
jne 0x180117ab7
mov dword [0x154], 0x4b18967f
mov rax, qword [0x180197a10]
test rax, rax
je 0x180117bff
mov rcx, qword [rax + 0x800]
test rcx, rcx
je 0x180117bff
call fcn.18010af70
test rax, rax
je 0x180117bff
mov rax, qword [0x180197a10]
mov rdi, qword [rax + 0x800]
mov rdx, qword [0x1801b68e0]
test rdx, rdx
jne 0x180117b96
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.1800621e0
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.1800621e0
nop
lea r8, [rsp + 0x30]
lea rdx, [rbp + 0x1a0]
mov rcx, rbx
call fcn.1801083f0
mov qword [0x1801b68e0], rax
lea rcx, [rbp + 0x1a0]
call fcn.180062320
nop
lea rcx, [rsp + 0x30]
call fcn.180062320
mov rdx, qword [0x1801b68e0]
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 [0x1801b68e0]
mov dword [rax + 0xb0], ebx
cmp byte [rbp + 0x190], 0
je 0x180117bff
cmp byte [0x1801976a9], 0
sete bl
mov rcx, qword [0x180197a10]
mov rcx, qword [rcx + 0x800]
call fcn.18010af70
mov byte [rax + 0x362], bl
movzx r8d, byte [0x1801976af]
movzx r10d, byte [0x1801976ae]
test r10b, r10b
jne 0x180117c1d
test r8b, r8b
je 0x180117dba
mov rax, qword [0x180197a10]
test rax, rax
je 0x180117dba
mov r9, qword [rax + 0x628]
test r9, r9
je 0x180117dba
mov rdi, qword [r9 + 0x108]
test rdi, rdi
je 0x180117dba
lea rax, [rdi + 0x270]
lea rcx, [rsp + 0x70]
mov edx, 4
nop
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 0x180117c60
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
mov rax, qword [rax + 0x10]
mov qword [rcx + 0x10], rax
test r10b, r10b
je 0x180117cd4
mov byte [r9 + 0xa2], r10b
movzx r8d, byte [0x1801976af]
test r8b, r8b
je 0x180117dba
mov rdx, qword [0x1801b6a50]
test rdx, rdx
jne 0x180117d76
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.1800621e0
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.1800621e0
nop
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.1801083f0
mov qword [0x1801b6a50], rax
lea rcx, [rsp + 0x30]
call fcn.180062320
nop
lea rcx, [rsp + 0x50]
call fcn.180062320
mov rdx, qword [0x1801b6a50]
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 [0x1801b6a50]
mov dword [rax + 0xb0], ebx
cmp byte [0x1801976ad], 0
je 0x180117ef3
mov rax, qword [0x180197a10]
test rax, rax
je 0x180117ef3
mov rdi, qword [rax + 0x628]
test rdi, rdi
je 0x180117ef3
mov rdi, qword [rdi + 0x108]
test rdi, rdi
je 0x180117ef3
mov rdx, qword [0x1801b6a40]
test rdx, rdx
jne 0x180117e90
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.1800621e0
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.1800621e0
nop
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.1801083f0
mov qword [0x1801b6a40], rax
lea rcx, [rsp + 0x50]
call fcn.180062320
nop
lea rcx, [rsp + 0x30]
call fcn.180062320
mov rdx, qword [0x1801b6a40]
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 [0x1801b6a40]
mov dword [rax + 0xb0], ebx
cmp qword [rbp + 0x198], 0x7fffffff
jge 0x180117ef3
mov dword [rbp + 0x198], 0x7fffffff
lea rdx, [rbp + 0x198]
mov rcx, qword [0x180197a10]
call fcn.180108fb0
mov rcx, qword [rbp + 0x1c0]
xor rcx, rsp
call fcn.1801252b0
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