Function at 0x180118250
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 [0x180191040]
xor rax, rsp
mov qword [rbp + 0x1c0], rax
mov ecx, 0x73
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1801182c8
mov rcx, qword [0x180199fb0]
test rcx, rcx
je 0x1801182c8
call fcn.18010b100
test rax, rax
je 0x1801182c8
cmp byte [0x180199c5d], 0
sete dl
mov byte [0x180199c5d], dl
mov rcx, qword [0x180199fb0]
call fcn.18010afe0
cmp byte [0x180199c5e], 0
je 0x1801182de
movss xmm0, dword [0x18017d73c]
call fcn.180066660
mov ecx, 0x71
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1801182f2
call fcn.180066da0
mov ecx, 0x74
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180118306
call fcn.180065cf0
mov ecx, 0x75
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180118321
movzx ecx, byte [0x180199c48]
call fcn.180065af0
cmp byte [0x180199c3c], 0
je 0x18011836a
mov byte [0x1801b9112], 1
movss xmm6, dword [0x180199c60]
call fcn.180060510
test rax, rax
jne 0x18011834b
mov byte [0x180199c3c], al
jmp 0x1801183ab
mov rax, qword [rax + 0x30]
test rax, rax
je 0x1801183ab
mov rax, qword [rax + 0x298]
test rax, rax
je 0x1801183ab
movss dword [rax + 0x3c8], xmm6
jmp 0x1801183ab
cmp byte [0x1801b9112], 0
je 0x1801183ab
mov byte [0x1801b9112], 0
call fcn.180060510
test rax, rax
jne 0x18011838c
mov byte [0x180199c3c], al
jmp 0x1801183ab
mov rax, qword [rax + 0x30]
test rax, rax
je 0x1801183ab
mov rax, qword [rax + 0x298]
test rax, rax
je 0x1801183ab
mov dword [rax + 0x3c8], 0x3f800000
cmp byte [0x180199c44], 0
je 0x1801183ee
mov byte [0x1801b9110], 1
mov eax, dword [0x180199c70]
lea ecx, [rax + rax*4]
add ecx, ecx
mov rax, qword [0x180199fb0]
test rax, rax
je 0x180118429
mov rdx, qword [rax + 0x628]
test rdx, rdx
je 0x180118429
cmp dword [rdx + 0x12c], ecx
je 0x180118429
mov dword [rdx + 0x12c], ecx
jmp 0x180118429
cmp byte [0x1801b9110], 0
je 0x180118429
mov byte [0x1801b9110], 0
mov rax, qword [0x180199fb0]
test rax, rax
je 0x180118429
mov rcx, qword [rax + 0x628]
test rcx, rcx
je 0x180118429
cmp dword [rcx + 0x12c], 1
je 0x180118429
mov dword [rcx + 0x12c], 1
cmp byte [0x180199c45], 0
je 0x18011846c
mov byte [0x1801b9111], 1
mov eax, dword [0x180199c74]
lea ecx, [rax + rax*4]
add ecx, ecx
mov rax, qword [0x180199fb0]
test rax, rax
je 0x1801184a7
mov rdx, qword [rax + 0x628]
test rdx, rdx
je 0x1801184a7
cmp dword [rdx + 0x130], ecx
je 0x1801184a7
mov dword [rdx + 0x130], ecx
jmp 0x1801184a7
cmp byte [0x1801b9111], 0
je 0x1801184a7
mov byte [0x1801b9111], 0
mov rax, qword [0x180199fb0]
test rax, rax
je 0x1801184a7
mov rcx, qword [rax + 0x628]
test rcx, rcx
je 0x1801184a7
cmp dword [rcx + 0x130], 1
je 0x1801184a7
mov dword [rcx + 0x130], 1
cmp byte [0x180199c78], 0
jne 0x1801184cf
cmp byte [0x180199c3d], 0
jne 0x1801184cf
cmp byte [0x180199c3c], 0
jne 0x1801184cf
cmp byte [0x180199c5d], 0
je 0x180118597
mov rbx, qword [0x180199fb0]
xor edx, edx
mov rcx, rbx
call fcn.1801090b0
mov rcx, rbx
call fcn.180109ae0
or byte [rax + 0x4ad], 1
cmp byte [0x180199c3d], 0
je 0x180118597
movss xmm6, dword [0x180199c60]
mov rax, qword [0x180199fb0]
test rax, rax
je 0x180118597
mov rcx, rax
call fcn.180109ae0
test rax, rax
je 0x180118597
movaps xmm0, xmm6
mulss xmm0, dword [0x18017d74c]
movss dword [rax + 0x1fc], xmm0
movaps xmm1, xmm6
mulss xmm1, dword [0x18017d714]
movss dword [rax + 0x1e8], xmm1
movss dword [rax + 0x1ec], xmm1
mulss xmm6, dword [0x18017d730]
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 [0x180199c4c], r14b
je 0x180118696
movss xmm6, dword [0x180199c90]
mov qword [rbp + 0x1a0], r14
mov qword [rbp + 0x1a8], r14
lea rcx, [rbp + 0x1a0]
call fcn.1800606f0
mov eax, dword [rbp + 0x1a8]
test eax, eax
je 0x180118696
mov rdi, qword [rbp + 0x1a0]
mov esi, eax
mov rcx, qword [0x1801b8fe0]
nop word [rax + rax]
mov rbx, qword [rdi]
test rbx, rbx
je 0x180118688
test rcx, rcx
jne 0x180118657
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.180062230
nop
lea rcx, [rbp + 0x1a0]
call fcn.1801085e0
mov qword [0x1801b8fe0], rax
lea rcx, [rbp + 0x1a0]
call fcn.180062370
mov rcx, qword [0x1801b8fe0]
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x180118688
cmp rax, rcx
je 0x180118670
mov rax, qword [rax + 0x40]
test rax, rax
jne 0x180118660
jmp 0x180118688
xorps xmm3, xmm3
xorps xmm2, xmm2
movaps xmm1, xmm6
mov rcx, rbx
call fcn.180066350
mov rcx, qword [0x1801b8fe0]
add rdi, 8
sub rsi, 1
jne 0x1801185f0
cmp byte [0x180199c58], 0
je 0x1801186b2
movss xmm1, dword [0x180199c68]
mov ecx, dword [0x180199c6c]
call fcn.180065890
cmp byte [0x180199c46], 0
je 0x1801186c0
call fcn.180066110
cmp byte [0x180199c47], 0
je 0x1801186ce
call fcn.180065f00
cmp byte [0x180199c78], 0
je 0x180118727
call fcn.180060510
test rax, rax
jne 0x1801186e9
mov byte [0x180199c78], al
jmp 0x180118727
mov rax, qword [0x180199fb0]
test rax, rax
je 0x18011886f
mov rcx, rax
call fcn.18010b100
test rax, rax
jne 0x180118727
xor ecx, ecx
call fcn.18010b340
test rax, rax
jne 0x180118727
cmp qword [0x540], rax
jne 0x180118727
mov dword [0x154], 0x4b18967f
mov rax, qword [0x180199fb0]
test rax, rax
je 0x18011886f
mov rcx, qword [rax + 0x800]
test rcx, rcx
je 0x18011886f
call fcn.18010bbe0
test rax, rax
je 0x18011886f
mov rax, qword [0x180199fb0]
mov rdi, qword [rax + 0x800]
mov rdx, qword [0x1801b8ee0]
test rdx, rdx
jne 0x180118806
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.180062230
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.180062230
nop
lea r8, [rsp + 0x30]
lea rdx, [rbp + 0x1a0]
mov rcx, rbx
call fcn.180108b50
mov qword [0x1801b8ee0], rax
lea rcx, [rbp + 0x1a0]
call fcn.180062370
nop
lea rcx, [rsp + 0x30]
call fcn.180062370
mov rdx, qword [0x1801b8ee0]
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 [0x1801b8ee0]
mov dword [rax + 0xb0], ebx
cmp byte [rbp + 0x190], 0
je 0x18011886f
cmp byte [0x180199c49], 0
sete bl
mov rcx, qword [0x180199fb0]
mov rcx, qword [rcx + 0x800]
call fcn.18010bbe0
mov byte [rax + 0x362], bl
movzx r8d, byte [0x180199c4f]
movzx r10d, byte [0x180199c4e]
test r10b, r10b
jne 0x18011888d
test r8b, r8b
je 0x180118a2a
mov rax, qword [0x180199fb0]
test rax, rax
je 0x180118a2a
mov r9, qword [rax + 0x628]
test r9, r9
je 0x180118a2a
mov rdi, qword [r9 + 0x108]
test rdi, rdi
je 0x180118a2a
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 0x1801188d0
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
mov rax, qword [rax + 0x10]
mov qword [rcx + 0x10], rax
test r10b, r10b
je 0x180118944
mov byte [r9 + 0xa2], r10b
movzx r8d, byte [0x180199c4f]
test r8b, r8b
je 0x180118a2a
mov rdx, qword [0x1801b9050]
test rdx, rdx
jne 0x1801189e6
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.180062230
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.180062230
nop
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.180108b50
mov qword [0x1801b9050], rax
lea rcx, [rsp + 0x30]
call fcn.180062370
nop
lea rcx, [rsp + 0x50]
call fcn.180062370
mov rdx, qword [0x1801b9050]
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 [0x1801b9050]
mov dword [rax + 0xb0], ebx
cmp byte [0x180199c4d], 0
je 0x180118b63
mov rax, qword [0x180199fb0]
test rax, rax
je 0x180118b63
mov rdi, qword [rax + 0x628]
test rdi, rdi
je 0x180118b63
mov rdi, qword [rdi + 0x108]
test rdi, rdi
je 0x180118b63
mov rdx, qword [0x1801b9040]
test rdx, rdx
jne 0x180118b00
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.180062230
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.180062230
nop
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.180108b50
mov qword [0x1801b9040], rax
lea rcx, [rsp + 0x50]
call fcn.180062370
nop
lea rcx, [rsp + 0x30]
call fcn.180062370
mov rdx, qword [0x1801b9040]
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 [0x1801b9040]
mov dword [rax + 0xb0], ebx
cmp qword [rbp + 0x198], 0x7fffffff
jge 0x180118b63
mov dword [rbp + 0x198], 0x7fffffff
lea rdx, [rbp + 0x198]
mov rcx, qword [0x180199fb0]
call fcn.1801099c0
mov rcx, qword [rbp + 0x1c0]
xor rcx, rsp
call fcn.1801258e0
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