Function at 0x14000b0d0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
sub rsp, 0x90
mov rax, qword [0x1400f7080]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rax, qword [0x1401e1a90]
xor esi, esi
movaps xmmword [rsp + 0x60], xmm8
mov rbx, rcx
test rax, rax
je 0x14000b10c
mov rcx, qword [rax + 0xa0]
jmp 0x14000b10f
mov rcx, rsi
cmp qword [rcx + 0x18], rsi
jne 0x14000b130
test rax, rax
je 0x14000b130
mov rcx, qword [rax + 0xa0]
test rcx, rcx
je 0x14000b130
cmp qword [rcx], rsi
je 0x14000b130
call fcn.14004a500
call fcn.14004af10
call fcn.140026520
cmp qword [0x1401e1f38], rsi
je 0x14000b1ca
cmp byte [0x1400f70d5], sil
je 0x14000b184
cmp dword [0x1400f70cc], esi
jne 0x14000b184
lea rcx, [0x1400f70c0]
call fcn.140001f50
test rax, rax
je 0x14000b184
lea rcx, [0x1400f70c0]
call fcn.140001f50
mov rdx, rax
lea rcx, [0x1400f70c0]
call fcn.140002570
cmp qword [0x1401e1f38], rsi
je 0x14000b1ca
cmp byte [0x1400f70fd], sil
je 0x14000b1ca
cmp dword [0x1400f70f4], esi
jne 0x14000b1ca
lea rcx, [0x1400f70c0]
call fcn.140001f50
test rax, rax
je 0x14000b1ca
lea rcx, [0x1400f70c0]
call fcn.140002970
mov rdx, rax
lea rcx, [0x1400f70c0]
call fcn.140002f90
call fcn.1400035e0
cmp qword [0x1401e1f38], rsi
je 0x14000b1f5
mov rcx, rax
call fcn.140003a60
cmp qword [0x1401e1f38], rsi
je 0x14000b1f5
lea rcx, [0x1400f7110]
call fcn.140006530
mov rax, qword gs:[0x58]
mov edx, 4
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x1401e1f18], eax
jle 0x14000b23f
lea rcx, [0x1401e1f18]
call fcn.1400c8b40
cmp dword [0x1401e1f18], 0xffffffff
jne 0x14000b23f
lea rcx, [0x1401e1f18]
mov qword [0x1401e1f00], rsi
mov dword [0x1401e1f08], esi
call fcn.1400c8ad4
lea rcx, [0x1401e1f00]
mov qword [rsp + 0xa8], rdi
call fcn.140006c70
cmp byte [0x1400f70d8], sil
movss xmm8, dword [0x1400e3adc]
je 0x14000b323
mov rax, qword [0x1401e1a90]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax + 0x4878]
mov rcx, qword [rcx]
call fcn.140025b60
mov ecx, dword [rbx + 0xe8]
xorps xmm0, xmm0
movd xmm2, dword [0x1400f70c0]
xorps xmm1, xmm1
cvtdq2ps xmm2, xmm2
mov rdi, rax
cvtsi2ss xmm0, rcx
mov ecx, dword [rbx + 0xec]
cvtsi2ss xmm1, rcx
movss dword [rsp + 0x40], xmm0
movss xmm0, dword [0x1400e3aa4]
comiss xmm0, xmm2
movss dword [rsp + 0x44], xmm1
ja 0x14000b323
subss xmm2, xmm0
mov dword [rsp + 0x28], 0x1ff
movss xmm0, dword [0x1400e3b68]
lea rdx, [rsp + 0x40]
xorps xmm3, xmm3
movss dword [rsp + 0x20], xmm0
mov rcx, rax
call fcn.140043b30
mov r8d, dword [rdi + 0x78]
mov r9d, 0xffffffff
mov rdx, qword [rdi + 0x80]
mov rcx, rdi
movss dword [rsp + 0x28], xmm8
mov dword [rsp + 0x20], 1
call fcn.1400420d0
mov dword [rdi + 0x78], esi
call fcn.1400035e0
cmp byte [rax + 0xd], sil
je 0x14000b4bb
mov eax, dword [rbx + 0xe4]
shr eax, 1
movaps xmmword [rsp + 0x80], xmm6
xorps xmm6, xmm6
movaps xmmword [rsp + 0x70], xmm7
xorps xmm7, xmm7
cvtsi2ss xmm7, rax
mov eax, dword [rbx + 0xe0]
shr eax, 1
cvtsi2ss xmm6, rax
call fcn.1400035e0
subss xmm6, dword [rax + 0x10]
mov eax, dword [rbx + 0xe4]
shr eax, 1
movss dword [rsp + 0x44], xmm7
movss dword [rsp + 0x40], xmm6
xorps xmm6, xmm6
cvtsi2ss xmm6, rax
call fcn.1400035e0
lea r8, str.Foreground
mov edx, 1
movss xmm1, dword [rax + 0x10]
xorps xmm0, xmm0
mov eax, dword [rbx + 0xe0]
addss xmm1, xmm8
shr eax, 1
cvtsi2ss xmm0, rax
mov rax, qword [0x1401e1a90]
mov rcx, qword [rax + 0x4878]
addss xmm0, xmm1
mov rcx, qword [rcx]
unpcklps xmm0, xmm6
movsd qword [rsp + 0x48], xmm0
call fcn.140025b60
movss xmm7, dword [0x1400e3b28]
lea r8, [rsp + 0x48]
mov r9d, 0xffffffff
movss dword [rsp + 0x20], xmm7
lea rdx, [rsp + 0x40]
mov rcx, rax
call fcn.1400444d0
mov eax, dword [rbx + 0xe4]
xorps xmm6, xmm6
shr eax, 1
cvtsi2ss xmm6, rax
call fcn.1400035e0
subss xmm6, dword [rax + 0x10]
mov eax, dword [rbx + 0xe0]
xorps xmm0, xmm0
shr eax, 1
movss dword [rsp + 0x44], xmm6
cvtsi2ss xmm0, rax
movss dword [rsp + 0x40], xmm0
call fcn.1400035e0
xorps xmm2, xmm2
lea r8, str.Foreground
mov edx, 1
movss xmm0, dword [rax + 0x10]
mov eax, dword [rbx + 0xe4]
addss xmm0, xmm8
shr eax, 1
cvtsi2ss xmm2, rax
mov eax, dword [rbx + 0xe0]
shr eax, 1
addss xmm2, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
mov rax, qword [0x1401e1a90]
mov rcx, qword [rax + 0x4878]
movaps xmm1, xmm0
unpcklps xmm1, xmm2
mov rcx, qword [rcx]
movsd qword [rsp + 0x48], xmm1
call fcn.140025b60
mov r9d, 0xffffffff
movss dword [rsp + 0x20], xmm7
lea r8, [rsp + 0x48]
mov rcx, rax
lea rdx, [rsp + 0x40]
call fcn.1400444d0
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x80]
mov ecx, reloc.WLDAP32.dll_Ordinal_46
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14000b4dc
call qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov rcx, rax
xor edx, edx
call qword [sym.imp.USER32.dll_ShowWindow]
mov ecx, reloc.WLDAP32.dll_Ordinal_45
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14000b500
call qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov rcx, rax
mov edx, 5
call qword [sym.imp.USER32.dll_ShowWindow]
mov ecx, reloc.WLDAP32.dll_Ordinal_35
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14000b51f
cmp byte [rbx + 0x158], sil
sete al
mov byte [rbx + 0x158], al
cmp byte [rbx + 0x158], sil
je 0x14000b538
mov rcx, rbx
call fcn.14005d0c0
mov r8d, 0xa0
jmp 0x14000b53e
mov r8d, 0x800a0
mov rcx, qword [rbx + 0x50]
mov edx, 0xffffffec
call qword [sym.imp.USER32.dll_SetWindowLongA]
movzx eax, byte [rbx + 0x158]
mov rcx, qword [0x1401e1a90]
mov byte [rcx + 0x78], al
movzx eax, byte [rbx + 0x158]
mov byte [rcx + 0xd9], al
call fcn.140028180
mov rcx, qword [rbx + 8]
xor r8d, r8d
mov rax, qword [rcx]
lea edx, [r8 + 7]
call qword [rax + 0x1c8]
mov rcx, qword [rbx + 8]
xor r8d, r8d
mov rax, qword [rcx]
lea edx, [r8 + 0x1b]
call qword [rax + 0x1c8]
mov rcx, qword [rbx + 8]
xor r8d, r8d
mov edx, 0xae
mov rax, qword [rcx]
call qword [rax + 0x1c8]
mov rcx, qword [rbx + 8]
mov r9d, 1
mov dword [rsp + 0x30], esi
xor r8d, r8d
movss dword [rsp + 0x28], xmm8
xor edx, edx
mov dword [rsp + 0x20], esi
mov rax, qword [rcx]
call qword [rax + 0x158]
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
call qword [rax + 0x148]
movaps xmm8, xmmword [rsp + 0x60]
test eax, eax
js 0x14000b61e
call fcn.140028530
mov rax, qword [0x1401e1a90]
mov rcx, qword [rax + 0x4878]
mov rcx, qword [rcx]
add rcx, 0x48
cmp byte [rcx], sil
cmove rcx, rsi
call fcn.140049f50
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
call qword [rax + 0x150]
mov rcx, qword [rbx + 8]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rsi
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x88]
cmp eax, 0x88760868
jne 0x14000b6f3
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
call qword [rax + Ordinal_26]
cmp eax, 0x88760869
jne 0x14000b6f3
mov rdi, qword [0x1401e1a90]
test rdi, rdi
je 0x14000b6bd
mov rdi, qword [rdi + 0xa0]
test rdi, rdi
je 0x14000b6bd
cmp qword [rdi], rsi
je 0x14000b6bd
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x14000b688
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov qword [rdi + 8], rsi
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x14000b69b
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov qword [rdi + 0x10], rsi
mov rcx, qword [rdi + 0x18]
test rcx, rcx
je 0x14000b6bd
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rax, qword [0x1401e1a90]
mov qword [rdi + 0x18], rsi
mov rcx, qword [rax + 0x58]
mov qword [rcx + 8], rsi
mov rcx, qword [rbx + 8]
lea rdx, [rbx + 0xa0]
mov rax, qword [rcx]
call qword [rax + 0x80]
mov rax, qword [0x1401e1a90]
test rax, rax
je 0x14000b6f3
mov rax, qword [rax + 0xa0]
test rax, rax
je 0x14000b6f3
cmp qword [rax], rsi
je 0x14000b6f3
call fcn.14004a500
mov rdi, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1400c8a00
mov rbx, qword [rsp + 0xb0]
add rsp, 0x90
pop rsi
ret