Function at 0x180047450
Capabilities:
Create thread
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
sub rsp, 0x60
mov rax, qword [0x18006c3c0]
xor rax, rsp
mov qword [rsp + 0x50], rax
xor ebp, ebp
cmp byte [0x18006e230], bpl
jne 0x180047498
mov qword [rsp + 0x28], rbp
lea r8, [0x1800160c0]
xor r9d, r9d
mov dword [rsp + 0x20], ebp
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov byte [0x18006e230], 1
mov r8, qword [0x18006cfb8]
mov dword [rsp + 0x40], 0x43a00000
mov dword [rsp + 0x44], 0x43700000
mov rax, qword [r8 + 0x3ed8]
mov byte [rax + 0x98], 1
mov rax, qword [r8 + 0x3ed8]
movss xmm0, dword [rax + 0x18]
subss xmm0, dword [rax + 0x64]
movss xmm2, dword [rax + 0x1c]
subss xmm2, dword [rax + 0x68]
addss xmm0, dword [0x1800629c4]
addss xmm2, dword [0x180062984]
movss dword [rax + 0xe0], xmm0
movss dword [rax + 0xe4], xmm2
movss xmm1, dword [rax + 0xf8]
maxss xmm1, xmm0
movss xmm0, dword [rax + 0xfc]
maxss xmm0, xmm2
movss dword [rax + 0xf8], xmm1
movss dword [rax + 0xfc], xmm0
mov rax, qword [r8 + 0x3ed8]
mov byte [rax + 0x98], 1
mov rax, qword [r8 + 0x3ed8]
movsxd rcx, dword [rax + 0xd0]
mov rax, qword [rax + 0xd8]
mov ebx, dword [rax + rcx*4 - 4]
cmp dword [r8 + 0x3f0c], ebx
jne 0x180047563
lea r8, [0x180060a3e]
mov edx, 0xb
mov ecx, ebx
call fcn.18001de20
lea r8, [rsp + 0x40]
mov edx, ebx
lea rcx, [0x180060a3e]
call fcn.18003f140
mov rcx, qword [0x18006cfb8]
lea rdx, [0x18006d0e6]
mov rax, qword [rcx + 0x3ed8]
mov byte [rax + 0x98], 1
mov rax, qword [rcx + 0x3ed8]
lea rcx, str.Glide
movss xmm0, dword [rax + 0x18]
subss xmm0, dword [rax + 0x64]
movss xmm2, dword [rax + 0x1c]
subss xmm2, dword [rax + 0x68]
addss xmm0, dword [0x1800628f8]
addss xmm2, dword [0x1800628c0]
movss dword [rax + 0xe0], xmm0
movss dword [rax + 0xe4], xmm2
movss xmm1, dword [rax + 0xf8]
maxss xmm1, xmm0
movss xmm0, dword [rax + 0xfc]
maxss xmm0, xmm2
movss dword [rax + 0xf8], xmm1
movss dword [rax + 0xfc], xmm0
call fcn.180034f50
test al, al
je 0x18004760f
call fcn.180043920
call fcn.1800436f0
lea rdx, [0x18006d10d]
lea rcx, str.Glide_UP
call fcn.180034f50
test al, al
je 0x180047634
cmp byte [0x18006d10d], bpl
setne byte [0x18006d10d]
mov rcx, qword [0x18006cfb8]
mov rax, qword [rcx + 0x3ed8]
mov byte [rax + 0x98], 1
mov rax, qword [rcx + 0x3ed8]
lea rcx, str.Glide_Keybind
movss xmm0, dword [rax + 0x18]
subss xmm0, dword [rax + 0x64]
movss xmm2, dword [rax + 0x1c]
subss xmm2, dword [rax + 0x68]
addss xmm0, dword [0x18006293c]
addss xmm2, dword [0x18006298c]
movss dword [rax + 0xe0], xmm0
movss dword [rax + 0xe4], xmm2
movss xmm1, dword [rax + 0xf8]
maxss xmm1, xmm0
movss xmm0, dword [rax + 0xfc]
maxss xmm0, xmm2
movss dword [rax + 0xf8], xmm1
movss dword [rax + 0xfc], xmm0
call fcn.1800336a0
cmp byte [0x18006e563], bpl
mov rcx, qword [0x18006cfb8]
mov qword [rsp + 0x40], rbp
mov rax, qword [rcx + 0x3ed8]
mov byte [rax + 0x98], 1
mov rax, qword [rcx + 0x3ed8]
movss xmm0, dword [rax + 0x18]
subss xmm0, dword [rax + 0x64]
movss xmm2, dword [rax + 0x1c]
subss xmm2, dword [rax + 0x68]
addss xmm0, dword [0x180062948]
addss xmm2, dword [0x180062990]
movss dword [rax + 0xe0], xmm0
movss dword [rax + 0xe4], xmm2
movss xmm1, dword [rax + 0xf8]
maxss xmm1, xmm0
movss xmm0, dword [rax + 0xfc]
maxss xmm0, xmm2
movss dword [rax + 0xf8], xmm1
movss dword [rax + 0xfc], xmm0
jne 0x180047774
movsxd rax, dword [0x18006d5ac]
lea rcx, str.TusAta
lea rdx, [rsp + 0x40]
mov rcx, qword [rcx + rax*8]
call fcn.180033eb0
test al, al
je 0x180047767
mov byte [0x18006e563], 1
jmp 0x180047774
cmp byte [0x18006e563], bpl
je 0x18004786a
mov qword [rsp + 0x70], rsi
lea rdx, [rsp + 0x40]
lea rcx, str.Tus_Ata
mov qword [rsp + 0x78], rdi
call fcn.180033eb0
lea rcx, [rsp + 0x40]
call fcn.180040c50
mov rbx, qword [rsp + 0x40]
movabs rax, 0x7ffffffffff0bdbe
cmp rbx, rax
jg 0x1800477b6
add rbx, 0xf4240
jmp 0x1800477c0
movabs rbx, 0x7fffffffffffffff
movabs rdi, 0x4e94914effff
movabs rsi, 0x431bde82d7b634db
lea rcx, [rsp + 0x40]
call fcn.180040c50
mov rax, qword [rsp + 0x40]
cmp rbx, rax
je 0x18004782d
jl 0x18004782d
mov rcx, rbx
sub rcx, rax
cmp rcx, rdi
jg 0x180047821
mov rax, rsi
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xf4240
cmp rax, rcx
jge 0x180047818
inc rdx
mov ecx, edx
call sub.KERNEL32.dll_Sleep
jmp 0x1800477d4
mov ecx, 0x5265c00
call sub.KERNEL32.dll_Sleep
jmp 0x1800477d4
mov rsi, qword [rsp + 0x70]
lea rbx, [0x18005efc0]
lea rdi, [0x18005f258]
mov ecx, dword [rbx]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18004785c
mov eax, dword [rbx]
mov dword [0x18006d5ac], eax
mov byte [0x18006e563], bpl
add rbx, 4
cmp rbx, rdi
jne 0x180047840
mov rdi, qword [rsp + 0x78]
mov rcx, qword [0x18006cfb8]
mov rax, qword [rcx + 0x3ed8]
mov byte [rax + 0x98], 1
mov rax, qword [rcx + 0x3ed8]
cmp byte [rax + 0x9b], bpl
jne 0x1800478a6
movss xmm1, dword [0x180062a74]
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x40], rbp
call fcn.180017030
mov dword [rsp + 0x30], ebp
lea rax, [rsp + 0x48]
lea rbx, str._.2f
mov dword [rsp + 0x48], 0x3f800000
mov qword [rsp + 0x28], rbx
lea r9, [rsp + 0x40]
lea r8, [0x18006c490]
mov qword [rsp + 0x20], rax
mov edx, 8
mov dword [rsp + 0x40], 0x3d8f5c29
lea rcx, str.Glide_UP
call fcn.180036d60
lea rax, [rsp + 0x40]
mov dword [rsp + 0x30], ebp
mov qword [rsp + 0x28], rbx
lea r9, [rsp + 0x48]
lea r8, [0x18006c480]
mov qword [rsp + 0x20], rax
mov edx, 8
mov dword [rsp + 0x40], 0xbf000000
lea rcx, str.Glide
mov dword [rsp + 0x48], 0xbd4ccccd
call fcn.180036d60
call fcn.180010ca0
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1800554f0
mov rbx, qword [rsp + 0x80]
add rsp, 0x60
pop rbp
ret