Function at 0x18005a8e0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xd0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
cmp byte [0x1800775f4], 1
jne 0x18005b215
mov rax, qword [0x180078c88]
mov dword [rax + 0x4150], 0x3f666666
or dword [rax + 0x40f0], 0x42
mov dword [rax + 0x4114], 0x44480000
mov dword [rax + 0x4118], 0x44020000
mov r12d, 1
mov dword [rax + 0x40f8], r12d
movabs rax, 0x835177ece7aaad38
mov qword [rbp - 0x59], rax
movabs rax, 0x3a6a7c9cceaff038
mov qword [rbp - 0x51], rax
movabs r14, 0xa334058d90c8c275
mov qword [rbp - 0x49], r14
movabs rsi, 0x3a6a7c9cfcfdb46a
mov qword [rbp - 0x41], rsi
movdqa xmm0, xmmword [rbp - 0x59]
pxor xmm0, xmmword [rbp - 0x49]
movdqa xmmword [rbp - 0x59], xmm0
mov r8d, 0x4013b
lea rdx, [0x1800775f4]
lea rcx, [rbp - 0x59]
call fcn.18001c3b0
test al, al
je 0x18005b210
movabs rdi, 0xa35177ece7aaad38
mov qword [rbp - 0x49], rdi
mov qword [rbp - 0x41], rsi
mov qword [rbp - 0x29], r14
mov qword [rbp - 0x21], rsi
movdqa xmm0, xmmword [rbp - 0x49]
pxor xmm0, xmmword [rbp - 0x29]
movdqa xmmword [rbp - 0x49], xmm0
mov rbx, qword [0x180078c88]
xor r15d, r15d
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r15
lea rax, [rbp - 0x49]
mov qword [rsp + 0x28], rax
movss xmm9, dword [0x180065358]
movss dword [rsp + 0x20], xmm9
movss xmm3, dword [0x180065348]
movss xmm2, dword [rbx + 0x3d50]
lea rdx, [rbp + 0x67]
mov rcx, qword [rbx + 0x3d48]
call fcn.1800432f0
movss xmm0, dword [rbp + 0x67]
addss xmm0, dword [0x180065210]
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mov rax, qword [rbx + 0x3fe0]
movss xmm3, dword [rax + 0x50]
mov byte [rax + 0xcd], r12b
mov rax, qword [rbx + 0x3fe0]
movss xmm2, dword [rax + 0x4c]
subss xmm2, dword [rax + 0x9c]
addss xmm2, dword [0x18006528c]
subss xmm3, xmm1
mulss xmm3, dword [0x1800651d4]
movss xmm0, dword [rax + 0x48]
subss xmm0, dword [rax + 0x98]
addss xmm3, xmm0
movss dword [rax + 0x118], xmm3
movss dword [rax + 0x11c], xmm2
movss xmm1, dword [rax + 0x134]
maxss xmm1, xmm2
movss xmm0, dword [rax + 0x130]
maxss xmm0, xmm3
movss dword [rax + 0x130], xmm0
movss dword [rax + 0x134], xmm1
mov qword [rbp - 0x49], rdi
mov qword [rbp - 0x41], rsi
mov qword [rbp - 0x29], r14
mov qword [rbp - 0x21], rsi
movdqa xmm0, xmmword [rbp - 0x49]
pxor xmm0, xmmword [rbp - 0x29]
movdqa xmmword [rbp - 0x49], xmm0
lea rcx, [rbp - 0x49]
call fcn.18004acc0
mov rbx, qword [0x180078c88]
mov rax, qword [rbx + 0x3fe0]
mov byte [rax + 0xcd], r12b
mov rax, qword [rbx + 0x3fe0]
xorps xmm8, xmm8
cmp byte [rax + 0xd0], r15b
jne 0x18005ab36
mov qword [rbp + 0x67], r15
movaps xmm1, xmm9
lea rcx, [rbp + 0x67]
call fcn.180020550
mov rbx, qword [0x180078c88]
mov rax, qword [rbx + 0x3fe0]
cmp byte [rax + 0xd0], r15b
jne 0x18005ab5f
mov eax, dword [rax + 0x1d4]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18004c9c0
mov rbx, qword [0x180078c88]
lea rcx, [rbx + 0x4190]
movss xmm1, dword [rbx + 0x3954]
movss xmm0, dword [rbx + 0x3958]
mov dword [rbp - 0x59], 0xe
movss dword [rbp - 0x55], xmm1
movss dword [rbp - 0x51], xmm0
lea rdx, [rbp - 0x59]
call fcn.180033660
mov dword [rbx + 0x3954], 0x40e00000
mov dword [rbx + 0x3958], 0x40e00000
mov rcx, qword [0x180078c88]
mov rax, qword [rcx + 0x3fe0]
mov byte [rax + 0xcd], r12b
mov rax, qword [rcx + 0x3fe0]
movss xmm0, dword [rax + 0x4c]
subss xmm0, dword [rax + 0x9c]
addss xmm0, dword [0x1800652dc]
movss xmm2, dword [rax + 0x48]
subss xmm2, dword [rax + 0x98]
addss xmm2, dword [0x180065278]
movss dword [rax + 0x118], xmm2
movss dword [rax + 0x11c], xmm0
movss xmm1, dword [rax + 0x134]
maxss xmm1, xmm0
movss xmm0, dword [rax + 0x130]
maxss xmm0, xmm2
movss dword [rax + 0x130], xmm0
movss dword [rax + 0x134], xmm1
call fcn.180020a10
mov dword [rbp + 0x67], 0x431d0000
mov dword [rbp + 0x6b], 0x420c0000
movabs rax, 0xa33471ecf2a5ad36
mov qword [rbp - 0x49], rax
mov qword [rbp - 0x41], rsi
mov qword [rbp - 0x29], r14
mov qword [rbp - 0x21], rsi
movdqa xmm0, xmmword [rbp - 0x49]
pxor xmm0, xmmword [rbp - 0x29]
movdqa xmmword [rbp - 0x49], xmm0
cmp dword [0x180078cb0], r15d
sete cl
lea r9, [rbp + 0x67]
lea r8, [rbp - 0x49]
lea rdx, [0x180064238]
call fcn.18000d200
mov ecx, dword [0x180078cb0]
test al, al
cmovne ecx, r15d
mov dword [0x180078cb0], ecx
mov dword [rbp + 0x67], 0x431d0000
mov dword [rbp + 0x6b], 0x420c0000
movabs rax, 0xd75a60e0f5bead38
mov qword [rbp - 0x49], rax
movabs rax, 0x3a6a7c9cfcfdb419
mov qword [rbp - 0x41], rax
mov qword [rbp - 0x29], r14
mov qword [rbp - 0x21], rsi
movdqa xmm0, xmmword [rbp - 0x49]
pxor xmm0, xmmword [rbp - 0x29]
movdqa xmmword [rbp - 0x49], xmm0
cmp ecx, r12d
sete cl
lea r9, [rbp + 0x67]
lea r8, [rbp - 0x49]
lea rdx, str.BADCFEH
call fcn.18000d200
mov ecx, dword [0x180078cb0]
test al, al
cmovne ecx, r12d
mov dword [0x180078cb0], ecx
mov dword [rbp + 0x67], 0x431d0000
mov dword [rbp + 0x6b], 0x420c0000
movabs rax, 0xa34769ece5bbab23
mov qword [rbp - 0x49], rax
mov qword [rbp - 0x41], rsi
mov qword [rbp - 0x29], r14
mov qword [rbp - 0x21], rsi
movdqa xmm0, xmmword [rbp - 0x49]
pxor xmm0, xmmword [rbp - 0x29]
movdqa xmmword [rbp - 0x49], xmm0
cmp ecx, 2
sete cl
lea r9, [rbp + 0x67]
lea r8, [rbp - 0x49]
lea rdx, [0x180064248]
call fcn.18000d200
mov ecx, dword [0x180078cb0]
mov edx, 2
test al, al
cmovne ecx, edx
mov dword [0x180078cb0], ecx
mov dword [rbp + 0x67], 0x431d0000
mov dword [rbp + 0x6b], 0x420c0000
movabs rax, 0xa33477e8e9a9ae25
mov qword [rbp - 0x49], rax
mov qword [rbp - 0x41], rsi
mov qword [rbp - 0x29], r14
mov qword [rbp - 0x21], rsi
movdqa xmm0, xmmword [rbp - 0x49]
pxor xmm0, xmmword [rbp - 0x29]
movdqa xmmword [rbp - 0x49], xmm0
cmp ecx, 3
sete cl
lea r9, [rbp + 0x67]
lea r8, [rbp - 0x49]
lea rdx, [0x180064240]
call fcn.18000d200
mov ecx, dword [0x180078cb0]
mov edx, 3
test al, al
cmovne ecx, edx
mov dword [0x180078cb0], ecx
mov dword [rbp + 0x67], 0x431d0000
mov dword [rbp + 0x6b], 0x420c0000
movabs rax, 0xa33405fff5a0b63a
mov qword [rbp - 0x49], rax
mov qword [rbp - 0x41], rsi
mov qword [rbp - 0x29], r14
mov qword [rbp - 0x21], rsi
movdqa xmm0, xmmword [rbp - 0x49]
pxor xmm0, xmmword [rbp - 0x29]
movdqa xmmword [rbp - 0x49], xmm0
cmp ecx, 4
sete cl
lea r9, [rbp + 0x67]
lea r8, [rbp - 0x49]
lea rdx, [0x180064244]
call fcn.18000d200
mov ecx, dword [0x180078cb0]
mov edx, 4
test al, al
cmovne ecx, edx
mov dword [0x180078cb0], ecx
mov dword [rbp + 0x67], 0x431d0000
mov dword [rbp + 0x6b], 0x420c0000
movabs rax, 0xa33462e4f6a6ad36
mov qword [rbp - 0x49], rax
mov qword [rbp - 0x41], rsi
mov qword [rbp - 0x29], r14
mov qword [rbp - 0x21], rsi
movdqa xmm0, xmmword [rbp - 0x49]
pxor xmm0, xmmword [rbp - 0x29]
movdqa xmmword [rbp - 0x49], xmm0
cmp ecx, 5
sete cl
lea r9, [rbp + 0x67]
lea r8, [rbp - 0x49]
lea rdx, [0x18006423c]
call fcn.18000d200
mov ecx, dword [0x180078cb0]
mov edx, 5
test al, al
cmovne ecx, edx
mov dword [0x180078cb0], ecx
mov rcx, qword [0x180078c60]
call fcn.18001f6a0
lea rcx, [0x18005fcd8]
call fcn.18004acc0
mov rcx, qword [0x180078c88]
mov rax, qword [rcx + 0x3fe0]
mov byte [rax + 0xcd], r12b
mov rax, qword [rcx + 0x3fe0]
movss xmm0, dword [rax + 0x4c]
subss xmm0, dword [rax + 0x9c]
addss xmm0, dword [0x180065314]
movss xmm2, dword [rax + 0x48]
subss xmm2, dword [rax + 0x98]
addss xmm2, dword [0x180065298]
movss dword [rax + 0x118], xmm2
movss dword [rax + 0x11c], xmm0
movss xmm1, dword [rax + 0x134]
maxss xmm1, xmm0
movss xmm0, dword [rax + 0x130]
maxss xmm0, xmm2
movss dword [rax + 0x130], xmm0
movss dword [rax + 0x134], xmm1
lea rdx, [0x1800781b0]
lea rcx, [rbp - 0x49]
call fcn.1800095f0
nop
mov r8, rax
lea rcx, [rbp - 0x29]
call fcn.1800597d0
nop
cmp qword [rax + 0x18], 0x10
jb 0x18005af55
mov rax, qword [rax]
mov rcx, rax
call fcn.18004acc0
nop
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x18005af9c
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005af97
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18005af97
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18005bb5c
movdqa xmm0, xmmword [0x1800653e0]
movdqu xmmword [rbp - 0x19], xmm0
mov byte [rbp - 0x29], 0
mov rdx, qword [rbp - 0x31]
cmp rdx, 0x10
jb 0x18005afeb
inc rdx
mov rcx, qword [rbp - 0x49]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005afe6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18005afe6
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18005bb5c
call fcn.18001f740
call fcn.180020b40
mov rbx, qword [0x180078c88]
movsxd rax, dword [rbx + 0x4190]
lea rcx, [rax + rax*2]
mov rdx, qword [rbx + 0x4198]
movsxd rax, dword [rdx + rcx*4 - 0xc]
lea r9, [rax + rax*2]
lea rsi, [0x18005fe90]
mov r8d, dword [rsi + r9*4 + 8]
cmp dword [rsi + r9*4], 8
jne 0x18005b05f
mov eax, dword [rsi + r9*4 + 4]
cmp eax, 1
jne 0x18005b042
mov eax, dword [rdx + rcx*4 - 8]
mov dword [r8 + rbx + 0x3908], eax
jmp 0x18005b05f
cmp eax, 2
jne 0x18005b05f
mov eax, dword [rdx + rcx*4 - 8]
mov dword [r8 + rbx + 0x3908], eax
mov eax, dword [rdx + rcx*4 - 4]
mov dword [r8 + rbx + 0x390c], eax
dec dword [rbx + 0x4190]
movss xmm6, dword [0x180065218]
mov edi, dword [0x180078cb0]
mov eax, dword [0x180078cac]
cmp edi, eax
jne 0x18005b082
movaps xmm1, xmm6
jmp 0x18005b086
movaps xmm1, xmm9
movss xmm0, dword [rbx + 0x18]
mulss xmm0, dword [0x180065268]
mulss xmm0, xmm1
addss xmm0, dword [0x180078cb4]
comiss xmm8, xmm0
jbe 0x18005b0aa
xorps xmm7, xmm7
jmp 0x18005b0b1
movaps xmm7, xmm6
minss xmm7, xmm0
movss dword [0x180078cb4], xmm7
cmp edi, eax
jne 0x18005b0c1
movaps xmm9, xmm6
movss xmm0, dword [0x180065318]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
mulss xmm0, dword [rbx + 0x18]
mulss xmm0, xmm9
addss xmm0, dword [0x180078cb8]
comiss xmm8, xmm0
jbe 0x18005b0eb
xorps xmm6, xmm6
jmp 0x18005b0ef
minss xmm6, xmm0
movss dword [0x180078cb8], xmm6
ucomiss xmm7, xmm8
jp 0x18005b10d
jne 0x18005b10d
ucomiss xmm6, xmm8
jp 0x18005b10d
jne 0x18005b10d
mov dword [0x180078cac], edi
mov rax, qword [rbx + 0x3fe0]
mov byte [rax + 0xcd], 1
mov rax, qword [rbx + 0x3fe0]
movss xmm0, dword [rax + 0x48]
subss xmm0, dword [rax + 0x98]
addss xmm0, dword [0x180065308]
movss xmm3, dword [rax + 0x4c]
subss xmm3, dword [rax + 0x9c]
addss xmm3, dword [0x1800652e0]
movss dword [rax + 0x118], xmm0
movss dword [rax + 0x11c], xmm3
movss xmm2, dword [rax + 0x130]
maxss xmm2, xmm0
movss xmm0, dword [rax + 0x134]
maxss xmm0, xmm3
movss dword [rax + 0x130], xmm2
movss dword [rax + 0x134], xmm0
mulss xmm7, dword [rbx + 0x3908]
movaps xmm1, xmm7
xor ecx, ecx
call fcn.180010e20
cmp dword [0x180078cac], 0
jne 0x18005b1a4
call fcn.18005a290
mov rcx, qword [0x180078c88]
movsxd rax, dword [rcx + 0x4190]
lea rdx, [rax + rax*2]
mov r8, qword [rcx + 0x4198]
movsxd rax, dword [r8 + rdx*4 - 0xc]
lea r10, [rax + rax*2]
mov r9d, dword [rsi + r10*4 + 8]
cmp dword [rsi + r10*4], 8
jne 0x18005b20a
mov eax, dword [rsi + r10*4 + 4]
cmp eax, 1
jne 0x18005b1eb
mov eax, dword [r8 + rdx*4 - 8]
mov dword [r9 + rcx + 0x3908], eax
jmp 0x18005b20a
cmp eax, 2
jne 0x18005b20a
mov eax, dword [r8 + rdx*4 - 8]
mov dword [r9 + rcx + 0x3908], eax
mov eax, dword [r8 + rdx*4 - 4]
mov dword [r9 + rcx + 0x390c], eax
dec dword [rcx + 0x4190]
call fcn.18001f080
mov ecx, 0x2d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18005b232
cmp byte [0x1800775f4], 0
sete byte [0x1800775f4]
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret