Function at 0x180056cf0
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
sub rsp, 0x68
cmp byte [0x180132298], 0
je 0x180056495
mov qword [r11 + 0x18], rsi
movabs rsi, 0x142671fb0
mov rsi, qword [rsi]
test rsi, rsi
je 0x18005648d
movabs rax, 0x142670d80
mov rax, qword [rax]
test rax, rax
je 0x18005648d
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x18005648d
cmp qword [rcx + 0x130], 0
je 0x18005648d
mov qword [r11 + 8], rbx
mov rbx, qword [rax + 0x60]
test rbx, rbx
je 0x180056488
mov rbx, qword [rbx + 0x540]
mov qword [r11 + 0x10], rbp
movabs rbp, 0xefffffffeffff
lea rax, [rbx - 0x10000]
cmp rax, rbp
ja 0x180056483
mov rcx, qword [rbx]
lea rax, [rcx - 0x10000]
cmp rax, rbp
ja 0x180056483
mov qword [r11 - 8], r14
movabs r14, 0xfffffffebfffffff
lea rax, [rcx + r14]
cmp rax, 0xffffffd
ja 0x18005647e
mov rcx, rbx
mov qword [r11 + 0x20], rdi
call fcn.18004fea0
mov rdi, rax
lea rcx, [rax - 0x10000]
cmp rcx, rbp
ja 0x180056476
mov rax, qword [rax]
lea rcx, [rax - 0x10000]
cmp rcx, rbp
ja 0x180056476
lea rcx, [rax + r14]
cmp rcx, 0xffffffd
ja 0x180056476
mov rcx, qword [rdi + 0x140]
lea rax, [rcx - 0x10000]
cmp rax, rbp
ja 0x180056476
movss xmm1, dword [rcx + 0x20]
xorps xmm0, xmm0
comiss xmm1, xmm0
seta al
test al, al
je 0x180056476
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x20]
test al, al
je 0x180056476
mov rcx, qword [rbx + 0x14c0]
lea rax, [rcx - 0x10000]
cmp rax, rbp
ja 0x180056476
mov rdx, qword [rcx]
lea rax, [rdx - 0x10000]
cmp rax, rbp
ja 0x180056476
lea rax, [rdx + r14]
cmp rax, 0xffffffd
ja 0x180056476
mov rcx, qword [rcx + 0x30]
lea rax, [rcx - 0x10000]
cmp rax, rbp
ja 0x180056476
mov rdx, qword [rcx]
lea rax, [rdx - 0x10000]
cmp rax, rbp
ja 0x180056476
lea rax, [rdx + r14]
cmp rax, 0xffffffd
ja 0x180056476
mov eax, dword [rcx + 0xe8]
sub eax, 0x3c
cmp eax, 1
ja 0x180056476
mov rbx, qword [rsi + 8]
test rbx, rbx
je 0x180056476
add rbx, 4
je 0x180056476
mov rax, qword [rdi]
mov rcx, rdi
movaps xmmword [rsp + 0x40], xmm8
movaps xmmword [rsp + 0x30], xmm9
call qword [rax + 0x1e8]
movss xmm1, dword [0x18011be60]
movss xmm2, dword [0x18011b5dc]
movsd xmm9, qword [rax]
movss xmm8, dword [rax + 8]
movaps xmm0, xmm9
andps xmm0, xmm1
movaps xmm3, xmm9
comiss xmm2, xmm0
shufps xmm3, xmm3, 0x55
jbe 0x180056363
movaps xmm0, xmm3
andps xmm0, xmm1
comiss xmm2, xmm0
jbe 0x180056363
movaps xmm0, xmm8
andps xmm0, xmm1
comiss xmm2, xmm0
ja 0x18005646a
movsd xmm1, qword [0x18011b6d8]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm3
movaps xmmword [rsp + 0x50], xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [0x18011b6d8]
movaps xmm7, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm9
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [0x18011b6d8]
addsd xmm7, xmm0
cvtps2pd xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm7, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm7
ja 0x1800563bf
xorps xmm0, xmm0
sqrtsd xmm0, xmm7
jmp 0x1800563c7
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
mulsd xmm0, qword [0x18011b6e8]
movsd xmm1, qword [0x18011b748]
movsd xmm2, qword [0x18011b740]
movaps xmm7, xmmword [rsp + 0x50]
comisd xmm1, xmm0
jbe 0x180056404
comisd xmm0, xmm2
jbe 0x180056404
xor eax, eax
mov dword [rbx + 8], 0x3f800000
mov dword [rbx + 0x200], eax
mov dword [rbx + 0x40], eax
jmp 0x18005645a
comisd xmm0, xmmword [0x18011b750]
jb 0x180056443
xor eax, eax
mov dword [rbx + 0xc], 0x3f800000
mov dword [rbx + 0x200], eax
mov dword [rbx + 0x40], eax
mov dword [rbx], 0xbf800000
mov dword [rbx + 0x1d8], 0xbf800000
mov dword [rbx + 0xe8], 0x3f800000
mov dword [rbx + 0x44], 0x3f800000
jmp 0x18005646a
comisd xmm2, xmm0
jb 0x18005646a
mov dword [rbx + 0x200], 0x3f800000
mov dword [rbx + 0x40], 0x3f800000
mov dword [rbx + 0x1d8], 0x3f800000
mov dword [rbx], 0x3f800000
movaps xmm8, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x30]
mov rdi, qword [rsp + 0x88]
mov r14, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x80]
add rsp, 0x68
ret
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 8], rcx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x30
movaps xmmword [rsp + 0x20], xmm6
movaps xmm6, xmm1
call fcn.180057d60
cmp byte [0x1801320a0], 0
movabs rdi, 0x1423717c0
je 0x180056d37
mov rax, qword [rdi]
test rax, rax
je 0x180056d37
mov byte [rax + 0x54], 1
xor ebx, ebx
movabs rsi, 0xefffffffeffff
cmp byte [0x180132099], bl
movabs rbp, 0x142671fb0
movabs r15, 0x142670d80
movabs r12, 0xfffffffebfffffff
je 0x180056ded
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
sub rax, qword [0x180139870]
movsxd rcx, dword [0x18013209c]
cmp rax, rcx
jbe 0x180056ded
mov rax, qword [r15]
test rax, rax
je 0x180056ded
mov rcx, qword [rax + 0x60]
test rcx, rcx
je 0x180056ded
mov rcx, qword [rcx + 0x540]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja 0x180056ded
mov rcx, qword [rcx]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja 0x180056ded
lea rax, [rcx + r12]
cmp rax, 0xffffffd
ja 0x180056ded
mov rax, qword [rbp]
test rax, rax
je 0x180056ded
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x180056ded
add rcx, 4
je 0x180056ded
mov dword [rcx + 0x78], ebx
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov qword [0x180139870], rax
cmp byte [0x1801320a1], bl
je 0x180056e06
mov rax, qword [rdi]
test rax, rax
je 0x180056e06
mov byte [rax + 0x5d], bl
mov dword [rax + 0x55], ebx
mov byte [rax + 0x59], bl
cmp byte [0x180132098], bl
movabs r14, 0x1423b2ec8
je case.default.0x180056f21
mov rax, qword [r15]
test rax, rax
je case.default.0x180056f21
mov rcx, qword [rax + 0x60]
test rcx, rcx
je case.default.0x180056f21
mov rcx, qword [rcx + 0x540]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja case.default.0x180056f21
mov rdx, qword [rcx]
lea rax, [rdx - 0x10000]
cmp rax, rsi
ja case.default.0x180056f21
lea rax, [rdx + r12]
cmp rax, 0xffffffd
ja case.default.0x180056f21
call fcn.18004fea0
lea rcx, [rax - 0x10000]
cmp rcx, rsi
ja case.default.0x180056f21
mov rdx, qword [rax]
lea rcx, [rdx - 0x10000]
cmp rcx, rsi
ja case.default.0x180056f21
lea rcx, [rdx + r12]
cmp rcx, 0xffffffd
ja case.default.0x180056f21
mov rcx, qword [rax + 0x140]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja case.default.0x180056f21
movss xmm1, dword [rcx + 0x20]
xorps xmm0, xmm0
comiss xmm1, xmm0
seta al
test al, al
je case.default.0x180056f21
mov rax, qword [r14]
test rax, rax
je case.default.0x180056f21
mov rdx, qword [rax + 0x78]
test rdx, rdx
je case.default.0x180056f21
mov rdx, qword [rdx + 8]
test rdx, rdx
je case.default.0x180056f21
mov rcx, qword [rax + 0x138]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja case.default.0x180056f21
movsxd rax, dword [rcx + 0x80]
cmp eax, 0x14
ja case.default.0x180056f21
lea r8, [0x180000000]
movzx eax, byte [r8 + rax + 0x57148]
mov ecx, dword [r8 + rax*4 + 0x57144]
add rcx, r8
jmp rcx
mov qword [rdx + 0x440], 0x42c80000
cmp byte [0x1801320a2], bl
je 0x180057041
mov rax, qword [r15]
test rax, rax
je 0x180057041
mov rdi, qword [rax + 0x60]
test rdi, rdi
je 0x180057041
mov rdi, qword [rdi + 0x540]
test rdi, rdi
je 0x180057041
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x20]
test al, al
je 0x180057041
mov rcx, qword [rdi + 0x14c0]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja 0x180057041
mov rcx, qword [rcx]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja 0x180057041
lea rax, [rcx + r12]
cmp rax, 0xffffffd
ja 0x180057041
mov rcx, qword [r14]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja 0x180057041
mov rdx, qword [rcx]
lea rax, [rdx - 0x10000]
cmp rax, rsi
ja 0x180057041
lea rax, [rdx + r12]
cmp rax, 0xffffffd
ja 0x180057041
cmp dword [rcx + 0x1a0], 0xffffffff
jne 0x180057041
mov rdi, qword [rbp]
test rdi, rdi
je 0x180057041
mov rax, qword [rdi + 0x58]
test rax, rax
je 0x180057041
mov rdx, qword [rax + 0x10]
test rdx, rdx
je 0x180057041
movss xmm0, dword [rcx + 0x1b0]
comiss xmm0, dword [0x1801320a4]
jb 0x180057019
mov byte [rdx + 0x110], bl
jmp 0x180057041
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x180057041
mov rax, qword [rdi + 8]
test rax, rax
je 0x180057041
add rax, 4
je 0x180057041
mov dword [rax + 0x28], 0x3f800000
call fcn.1800564a0
cmp byte [0x18013206c], bl
je 0x18005711c
mov rax, qword [r15]
test rax, rax
je 0x18005710f
mov rdi, qword [rax + 0x60]
test rdi, rdi
je 0x18005710f
mov rdx, qword [0x180132448]
cmp qword [0x180132440], rdx
cmovne rdx, qword [0x180132440]
mov qword [0x180132448], rdx
nop dword [rax + rax]
mov rax, qword [rdi + 0x548]
mov rcx, qword [rbx + rax]
mov qword [rsp + 0x60], rcx
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja 0x180057102
test rcx, rcx
je 0x180057102
mov r8, qword [rcx]
lea rax, [r8 - 0x10000]
cmp rax, rsi
ja 0x180057102
test r8, r8
je 0x180057102
lea rax, [r8 + r12]
cmp rax, 0xffffffd
ja 0x180057102
cmp rdx, qword [0x180132450]
je 0x1800570f1
mov qword [rdx], rcx
mov rdx, qword [0x180132448]
add rdx, 8
mov qword [0x180132448], rdx
jmp 0x180057102
lea r8, [rsp + 0x60]
call fcn.1800515c0
mov rdx, qword [0x180132448]
add rbx, 8
cmp rbx, 0x230
jl 0x180057090
call fcn.180050940
movaps xmm0, xmm6
call fcn.180050e90
call fcn.180057160
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
jmp 0x180056120