Function at 0x18011fa90
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 - 0x1d8]
sub rsp, 0x2d0
movaps xmmword [rax - 0x18], xmm6
mov rax, qword [0x18019d040]
xor rax, rsp
mov qword [rbp + 0x1b8], rax
mov ecx, 0x73
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor r14d, r14d
test al, 1
je 0x18011fbb6
mov rcx, qword [0x1801a6050]
test rcx, rcx
je 0x18011fbb6
call fcn.180110500
test rax, rax
je 0x18011fbb6
cmp byte [0x1801a5cfd], r14b
sete dl
mov byte [0x1801a5cfd], dl
mov rcx, qword [0x1801a6050]
call fcn.1801103e0
mov rax, qword [0x1801a6050]
mov rcx, qword [rax + 0x320]
cmp byte [0x1801a5cfd], r14b
je 0x18011fb83
mov byte [rcx + 0x1a4], 5
mov rax, qword [0x1801a6050]
mov rcx, qword [rax + 0x320]
mov dword [rcx + 0x1f4], 0x4788b800
xor edx, edx
mov rcx, qword [0x1801a6050]
call fcn.18010e280
mov rcx, qword [0x1801a6050]
test rcx, rcx
je 0x18011fb76
call fcn.180110500
mov rcx, rax
call fcn.180110610
jmp 0x18011fbb6
mov rax, r14
mov rcx, rax
call fcn.180110610
jmp 0x18011fbb6
mov byte [rcx + 0x1a4], r14b
mov dl, 1
mov rcx, qword [0x1801a6050]
call fcn.18010e280
mov rcx, qword [0x1801a6050]
test rcx, rcx
je 0x18011fbab
call fcn.180110500
jmp 0x18011fbae
mov rax, r14
mov rcx, rax
call fcn.180110930
cmp byte [0x1801a5cfe], r14b
je 0x18011fbcc
movss xmm0, dword [0x180188758]
call fcn.18006c2b0
mov ecx, 0x71
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18011fbe0
call fcn.18006c9f0
mov ecx, 0x74
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18011fbf4
call fcn.18006b920
mov ecx, 0x75
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18011fc0f
movzx ecx, byte [0x1801a5ce8]
call fcn.18006b720
cmp byte [0x1801a5cdc], r14b
je 0x18011fc59
mov byte [0x1801c70d4], 1
movss xmm6, dword [0x1801a5d00]
call fcn.1800652b0
test rax, rax
jne 0x18011fc3a
mov byte [0x1801a5cdc], r14b
jmp 0x18011fc9b
mov rax, qword [rax + 0x30]
test rax, rax
je 0x18011fc9b
mov rax, qword [rax + 0x298]
test rax, rax
je 0x18011fc9b
movss dword [rax + 0x3c8], xmm6
jmp 0x18011fc9b
cmp byte [0x1801c70d4], r14b
je 0x18011fc9b
mov byte [0x1801c70d4], r14b
call fcn.1800652b0
test rax, rax
jne 0x18011fc7c
mov byte [0x1801a5cdc], r14b
jmp 0x18011fc9b
mov rax, qword [rax + 0x30]
test rax, rax
je 0x18011fc9b
mov rax, qword [rax + 0x298]
test rax, rax
je 0x18011fc9b
mov dword [rax + 0x3c8], 0x3f800000
cmp byte [0x1801a5ce4], r14b
je 0x18011fcde
mov byte [0x1801c70d2], 1
mov eax, dword [0x1801a5d10]
lea ecx, [rax + rax*4]
add ecx, ecx
mov rax, qword [0x1801a6050]
test rax, rax
je 0x18011fd19
mov rdx, qword [rax + 0x628]
test rdx, rdx
je 0x18011fd19
cmp dword [rdx + 0x12c], ecx
je 0x18011fd19
mov dword [rdx + 0x12c], ecx
jmp 0x18011fd19
cmp byte [0x1801c70d2], r14b
je 0x18011fd19
mov byte [0x1801c70d2], r14b
mov rax, qword [0x1801a6050]
test rax, rax
je 0x18011fd19
mov rcx, qword [rax + 0x628]
test rcx, rcx
je 0x18011fd19
cmp dword [rcx + 0x12c], 1
je 0x18011fd19
mov dword [rcx + 0x12c], 1
cmp byte [0x1801a5ce5], r14b
je 0x18011fd5c
mov byte [0x1801c70d3], 1
mov eax, dword [0x1801a5d14]
lea ecx, [rax + rax*4]
add ecx, ecx
mov rax, qword [0x1801a6050]
test rax, rax
je 0x18011fd97
mov rdx, qword [rax + 0x628]
test rdx, rdx
je 0x18011fd97
cmp dword [rdx + 0x130], ecx
je 0x18011fd97
mov dword [rdx + 0x130], ecx
jmp 0x18011fd97
cmp byte [0x1801c70d3], r14b
je 0x18011fd97
mov byte [0x1801c70d3], r14b
mov rax, qword [0x1801a6050]
test rax, rax
je 0x18011fd97
mov rcx, qword [rax + 0x628]
test rcx, rcx
je 0x18011fd97
cmp dword [rcx + 0x130], 1
je 0x18011fd97
mov dword [rcx + 0x130], 1
cmp byte [0x1801a5d18], r14b
jne 0x18011fdb2
cmp byte [0x1801a5cdd], r14b
jne 0x18011fdb2
cmp byte [0x1801a5cdc], r14b
je 0x18011fdec
mov rbx, qword [0x1801a6050]
xor edx, edx
mov rcx, rbx
call fcn.18010e160
mov rcx, rbx
call fcn.18010ecb0
or byte [rax + 0x4ad], 1
cmp byte [0x1801a5cdd], r14b
je 0x18011fdec
mov byte [0x1801c70d0], 1
movss xmm0, dword [0x1801a5d00]
jmp 0x18011fe04
cmp byte [0x1801c70d0], r14b
je 0x18011fe09
mov byte [0x1801c70d0], r14b
movss xmm0, dword [0x180188590]
call fcn.18006b270
cmp byte [0x1801a5cec], r14b
je 0x18011ff06
movss xmm6, dword [0x1801a5d30]
mov qword [rbp + 0x198], r14
mov qword [rbp + 0x1a0], r14
lea rcx, [rbp + 0x198]
call fcn.180065490
mov eax, dword [rbp + 0x1a0]
test eax, eax
je 0x18011ff06
mov rdi, qword [rbp + 0x198]
mov esi, eax
mov rcx, qword [0x1801c6f78]
nop word [rax + rax]
mov rbx, qword [rdi]
test rbx, rbx
je 0x18011fef8
test rcx, rcx
jne 0x18011fec7
xorps xmm0, xmm0
movups xmmword [rbp + 0x198], xmm0
mov qword [rbp + 0x1a8], r14
mov qword [rbp + 0x1b0], r14
lea r8d, [rcx + 0x13]
lea rdx, str.PalMonsterCharacter
lea rcx, [rbp + 0x198]
call fcn.180066fd0
nop
lea rcx, [rbp + 0x198]
call fcn.18010d690
mov qword [0x1801c6f78], rax
lea rcx, [rbp + 0x198]
call fcn.180067110
mov rcx, qword [0x1801c6f78]
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x18011fef8
cmp rax, rcx
je 0x18011fee0
mov rax, qword [rax + 0x40]
test rax, rax
jne 0x18011fed0
jmp 0x18011fef8
xorps xmm3, xmm3
xorps xmm2, xmm2
movaps xmm1, xmm6
mov rcx, rbx
call fcn.18006bf80
mov rcx, qword [0x1801c6f78]
add rdi, 8
sub rsi, 1
jne 0x18011fe60
cmp byte [0x1801a5cf8], 0
je 0x18011ff22
movss xmm1, dword [0x1801a5d08]
mov ecx, dword [0x1801a5d0c]
call fcn.18006b4d0
cmp byte [0x1801a5ce6], 0
je 0x18011ff30
call fcn.18006bd40
cmp byte [0x1801a5ce7], 0
je 0x18011ff3e
call fcn.18006bb30
cmp byte [0x1801a5d18], 0
je 0x18011ff97
call fcn.1800652b0
test rax, rax
jne 0x18011ff59
mov byte [0x1801a5d18], al
jmp 0x18011ff97
mov rax, qword [0x1801a6050]
test rax, rax
je 0x18012000b
mov rcx, rax
call fcn.180110500
test rax, rax
jne 0x18011ff97
xor ecx, ecx
call fcn.180110820
test rax, rax
jne 0x18011ff97
cmp qword [0x540], rax
jne 0x18011ff97
mov dword [0x154], 0x4b18967f
mov rax, qword [0x1801a6050]
test rax, rax
je 0x18012000b
cmp byte [0x1801a5ce9], 0
je 0x18012000b
mov rcx, qword [rax + 0x7f8]
test rcx, rcx
je 0x180120077
call fcn.1801111a0
test rax, rax
je 0x180120077
mov rcx, qword [0x1801a6050]
mov rcx, qword [rcx + 0x7f8]
call fcn.1801112b0
test al, al
je 0x180120077
cmp byte [0x1801a5ce9], 0
sete bl
mov rcx, qword [0x1801a6050]
mov rcx, qword [rcx + 0x7f8]
call fcn.1801111a0
mov byte [0x1801c70d1], 1
jmp 0x180120071
cmp byte [0x1801c70d1], 0
je 0x180120077
mov rax, qword [0x1801a6050]
cmp qword [rax + 0x7f8], 0
je 0x180120077
mov rcx, qword [rax + 0x7f8]
call fcn.1801111a0
test rax, rax
je 0x180120077
mov rcx, qword [0x1801a6050]
mov rcx, qword [rcx + 0x7f8]
call fcn.1801112b0
test al, al
je 0x180120077
cmp byte [0x1801a5ce9], 0
sete bl
mov rcx, qword [0x1801a6050]
mov rcx, qword [rcx + 0x7f8]
call fcn.1801111a0
mov byte [0x1801c70d1], 0
mov byte [rax + 0x362], bl
movzx r8d, byte [0x1801a5cef]
movzx r10d, byte [0x1801a5cee]
test r10b, r10b
jne 0x180120095
test r8b, r8b
je 0x18012023a
mov rax, qword [0x1801a6050]
test rax, rax
je 0x18012023a
mov r9, qword [rax + 0x628]
test r9, r9
je 0x18012023a
mov rdi, qword [r9 + 0x108]
test rdi, rdi
je 0x18012023a
lea rax, [rdi + 0x270]
lea rcx, [rsp + 0x70]
mov edx, 4
nop word [rax + rax]
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 0x1801200e0
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
mov rax, qword [rax + 0x10]
mov qword [rcx + 0x10], rax
test r10b, r10b
je 0x180120154
mov byte [r9 + 0xa2], r10b
movzx r8d, byte [0x1801a5cef]
test r8b, r8b
je 0x18012023a
mov rdx, qword [0x1801c7010]
test rdx, rdx
jne 0x1801201f6
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.180066fd0
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.180066fd0
nop
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.18010dc00
mov qword [0x1801c7010], rax
lea rcx, [rsp + 0x30]
call fcn.180067110
nop
lea rcx, [rsp + 0x50]
call fcn.180067110
mov rdx, qword [0x1801c7010]
mov rax, qword [rbp + 0x80]
mov qword [rbp + 0x198], 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 + 0x198]
mov rcx, rdi
call r9
mov rax, qword [0x1801c7010]
mov dword [rax + 0xb0], ebx
cmp byte [0x1801a5ced], 0
je 0x18012036a
mov rax, qword [0x1801a6050]
test rax, rax
je 0x18012036a
mov rcx, qword [rax + 0x628]
test rcx, rcx
je 0x18012036a
mov rdi, qword [rcx + 0x108]
mov rdx, qword [0x1801c7000]
test rdx, rdx
jne 0x180120307
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.180066fd0
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.180066fd0
nop
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.18010dc00
mov qword [0x1801c7000], rax
lea rcx, [rsp + 0x50]
call fcn.180067110
nop
lea rcx, [rsp + 0x30]
call fcn.180067110
mov rdx, qword [0x1801c7000]
mov qword [rbp + 0x190], r14
mov ebx, dword [rdx + 0xb0]
mov eax, ebx
bts eax, 0xa
mov dword [rdx + 0xb0], eax
mov rax, qword [rdi]
lea r8, [rbp + 0x190]
mov rcx, rdi
call qword [rax + 0x260]
mov rax, qword [0x1801c7000]
mov dword [rax + 0xb0], ebx
cmp qword [rbp + 0x190], 0x7fffffff
jge 0x18012036a
mov dword [rbp + 0x190], 0x7fffffff
lea rdx, [rbp + 0x190]
mov rcx, qword [0x1801a6050]
call fcn.18010eb90
mov rcx, qword [rbp + 0x1b8]
xor rcx, rsp
call fcn.18012d370
lea r11, [rsp + 0x2d0]
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