Function at 0x180093ce0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0xb0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
xor esi, esi
lea r15, [0x1802ecad0]
cmp byte [0x1802ec134], sil
jne 0x180093d8b
mov dword [0x1802ecb28], 0xff
lea ecx, [rsi + 8]
call fcn.180194670
mov qword [rax], r15
mov qword [rsp + 0xe0], rax
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], esi
mov r9, rax
lea r8, [0x18009a460]
xor edx, edx
xor ecx, ecx
call fcn.1801a5dec
mov qword [rsp + 0x60], rax
test rax, rax
je 0x1800942c6
cmp dword [rsp + 0x68], esi
je 0x1800942bb
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x70]
call fcn.180192ec4
test eax, eax
jne 0x1800942bb
mov byte [0x1802ec134], 1
mov qword [rsp + 0xf0], r15
mov rcx, r15
call fcn.180191104
test eax, eax
jne 0x1800942b0
mov eax, dword [0x1802ecb1c]
cmp eax, 0x7fffffff
je 0x18009429d
mov dword [0x1802ed8c4], 0
mov word [0x1802ed8c8], 0
mov byte [0x1802ed8ca], 0
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, qword [0x1802ec848]
cmp rax, qword [rcx]
jne 0x180093dfb
mov ecx, reloc.WS2_32.dll_WSAStartup
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180093dfb
mov al, 1
jmp 0x180093dfd
xor al, al
mov byte [0x1802ed8c4], al
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rdx, qword [0x1802ec848]
cmp rax, qword [rdx]
jne 0x180093e29
mov ecx, 8
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180093e29
mov al, 1
jmp 0x180093e2b
xor al, al
mov byte [0x1802ed8c5], al
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, qword [0x1802ec848]
cmp rax, qword [rcx]
jne 0x180093e57
mov ecx, recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180093e57
mov al, 1
jmp 0x180093e59
xor al, al
mov byte [0x1802ed8c6], al
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, qword [0x1802ec848]
cmp rax, qword [rcx]
jne 0x180093e85
mov ecx, 0x26
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180093e85
mov al, 1
jmp 0x180093e87
xor al, al
mov byte [0x1802ed8c7], al
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, qword [0x1802ec848]
cmp rax, qword [rcx]
jne 0x180093eb3
mov ecx, 0x28
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180093eb3
mov al, 1
jmp 0x180093eb5
xor al, al
mov byte [0x1802ed8c8], al
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, qword [0x1802ec848]
cmp rax, qword [rcx]
jne 0x180093ee1
mov ecx, 0x25
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180093ee1
mov al, 1
jmp 0x180093ee3
xor al, al
mov byte [0x1802ed8c9], al
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, qword [0x1802ec848]
cmp rax, qword [rcx]
jne 0x180093f0f
mov ecx, 0x27
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180093f0f
mov al, 1
jmp 0x180093f11
xor al, al
mov byte [0x1802ed8ca], al
call fcn.1800946a0
call fcn.180093b30
movss xmm6, dword [0x1802ecbd0]
movss xmm8, dword [0x180278ccc]
mulss xmm6, xmm8
addss xmm6, dword [0x1802ed8cc]
movss xmm0, dword [0x1802ecb44]
divss xmm0, dword [0x1802ecbdc]
addss xmm0, dword [0x1802ecb3c]
cvtps2pd xmm0, xmm0
subsd xmm0, qword [0x180278d48]
cvtpd2ps xmm7, xmm0
lea rcx, str.Textures
call fcn.1800931d0
lea rcx, str.Textures
test eax, eax
je 0x180093fc2
mov dword [rsp + 0x58], esi
mov dword [rsp + 0x50], esi
mov dword [rsp + 0x48], esi
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x38], esi
xorps xmm0, xmm0
movss dword [rsp + 0x30], xmm0
movss xmm1, dword [0x180278be4]
movss dword [rsp + 0x28], xmm1
movss dword [rsp + 0x20], xmm1
movaps xmm3, xmm6
movaps xmm2, xmm7
lea rdx, str.arrows
call fcn.180093330
jmp 0x180093fc7
call fcn.180093180
cmp byte [0x1802eca70], 0
je 0x180094270
mov edx, 0x1b
call fcn.1800479f0
movss xmm0, dword [0x1802ecb40]
movss dword [0x1802ed8cc], xmm0
call fcn.180094c90
mov rdi, qword [0x1802ed8f0]
cmp qword [0x1802ed8e8], rdi
je 0x18009426a
mov rdi, qword [rdi - 8]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x20]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
mov rdx, rdi
call fcn.180095130
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x30]
test rax, rax
je 0x180094193
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x30]
mov rbp, qword [0x1802ecb58]
cmp rax, rbp
ja 0x180094058
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x30]
mov rbp, rax
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + 0x30]
cmp rax, qword [0x1802ecb58]
jbe 0x1800940a4
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + 0x38]
cmp rax, qword [0x1802ecb58]
jb 0x1800940a4
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x38]
mov rsi, rax
mov eax, 1
sub rax, qword [0x1802ecb58]
add rsi, rax
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + 0x38]
lea rbp, [rax + 1]
movss xmm6, dword [0x1802ed8cc]
mov rbx, rsi
cmp rsi, rbp
jae 0x180094193
lea r14, [rbp - 1]
movss xmm2, dword [0x1802ecbd0]
nop dword [rax]
nop dword [rax + rax]
movaps xmm1, xmm2
mulss xmm1, xmm8
addss xmm1, xmm6
cvtps2pd xmm0, xmm1
cmp rbx, rsi
jne 0x1800940ec
movsd qword [0x1802ec2b8], xmm0
cmp rbx, r14
jne 0x1800940f9
movsd qword [0x1802ec2b0], xmm0
movzx r8d, byte [0x1802ecbf3]
movzx r9d, byte [0x1802ecbf2]
mov ecx, dword [0x1802ecbf0]
mov eax, ecx
shr eax, 8
movzx edx, al
movzx eax, cl
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x30], r9d
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x20], eax
movaps xmm3, xmm2
movss xmm2, dword [0x1802ecb44]
movss xmm0, dword [0x1802ecb3c]
call fcn.180093210
movss xmm2, dword [0x1802ecbd0]
addss xmm6, xmm2
inc rbx
cmp rbx, rbp
jb 0x1800940d0
cmp rsi, rbp
jae 0x180094193
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x38]
cmp rsi, rax
sete bl
mov rax, qword [rdi]
mov rdx, rsi
mov rcx, rdi
call qword [rax + 0x28]
movzx r8d, bl
mov rdx, rax
mov rcx, r15
call fcn.180095410
inc rsi
cmp rsi, rbp
jb 0x180094161
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x30]
cmp rax, qword [0x1802ecb58]
jbe 0x18009426a
movss xmm3, dword [0x1802ecbf4]
movaps xmm1, xmm3
mulss xmm1, xmm8
addss xmm1, dword [0x1802ed8cc]
movzx r8d, byte [0x1802ecc03]
movzx r9d, byte [0x1802ecc02]
mov ecx, dword [0x1802ecc00]
mov eax, ecx
shr eax, 8
movzx edx, al
movzx eax, cl
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x30], r9d
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x20], eax
movss xmm2, dword [0x1802ecb44]
movss xmm0, dword [0x1802ecb3c]
call fcn.180093210
mov rbx, qword [0x1802ed8f0]
cmp qword [0x1802ed8e8], rbx
je 0x18009423d
mov rbx, qword [rbx - 8]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x38]
test rax, rax
je 0x18009423d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x38]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x30]
lea rdx, [rsp + 0xe0]
lea rcx, [rsp + 0xe8]
call fcn.1800934b0
movss xmm0, dword [0x1802ed8cc]
addss xmm0, dword [0x1802ecbf4]
movss dword [0x1802ed8cc], xmm0
call fcn.180096b40
nop
mov rcx, r15
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop rdi
pop rsi
pop rbp
jmp fcn.180191128
dec eax
mov dword [0x1802ecb1c], eax
mov ecx, 6
call fcn.180193098
int3
mov ecx, 5
call fcn.180193098
nop
mov ecx, 1
call fcn.180193098
nop
mov dword [rsp + 0x68], esi
mov ecx, 6
call fcn.180193098
int3