Function at 0x14009b650
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x10], rdx
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0x90
mov r13, rdx
mov r14, rcx
cmp byte [rcx + 0x5d], 0
jne 0x14009b7ce
mov r8, qword [rcx + 8]
mov r9, qword [rcx + 0x10]
sub r9, r8
cmp r9, 2
jb 0x14009b7ce
movzx r10d, byte [r8]
movzx edi, r10b
shr dil, 7
mov byte [rbp - 0x25], dil
and r10d, 0xf
mov dword [rbp - 0x21], r10d
movzx edx, byte [r8 + 1]
movzx eax, dl
shr al, 7
movzx ebx, al
movzx r11d, bl
mov byte [rbp - 0x24], bl
and edx, 0x7f
mov dword [rbp - 0x1d], edx
xor ecx, ecx
mov eax, 8
cmp edx, 0x7f
cmove ecx, eax
mov eax, 2
mov r15d, 4
cmp edx, 0x7e
cmove eax, r15d
add ecx, eax
lea eax, [rcx + rbx*4]
mov dword [rbp - 0x29], eax
mov r12d, eax
cmp r9, rax
jb 0x14009b7ce
xor ecx, ecx
cmp edx, 0x7e
jae 0x14009b71b
mov esi, edx
mov qword [rbp - 0x19], rsi
mov ecx, 2
jmp 0x14009b7f3
jne 0x14009b73a
movzx esi, byte [r8 + 2]
shl rsi, 8
movzx eax, byte [r8 + 3]
or rsi, rax
mov qword [rbp - 0x19], rsi
mov rcx, r15
jmp 0x14009b7f3
cmp edx, 0x7f
jne 0x14009b7ef
movzx esi, byte [r8 + 2]
shl rsi, 8
movzx eax, byte [r8 + 3]
or rsi, rax
shl rsi, 8
movzx eax, byte [r8 + 4]
or rsi, rax
shl rsi, 8
movzx eax, byte [r8 + 5]
or rsi, rax
shl rsi, 8
movzx eax, byte [r8 + 6]
or rsi, rax
shl rsi, 8
movzx eax, byte [r8 + 7]
or rsi, rax
shl rsi, 8
movzx eax, byte [r8 + 8]
or rsi, rax
shl rsi, 8
movzx eax, byte [r8 + 9]
or rsi, rax
mov qword [rbp - 0x19], rsi
mov ecx, 0xa
jge 0x14009b7f3
mov byte [r14 + 0x5d], 1
mov ecx, 2
call fcn.14010ffa4
mov rcx, rax
lea rdx, str.ERROR:_Frame_has_invalid_frame_length._Closing._n
call fcn.14009afb0
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x30]
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov rsi, qword [rbp - 0x19]
test bl, bl
je 0x14009b81c
movzx eax, byte [rcx + r8]
mov byte [rbp - 0x11], al
movzx eax, byte [rcx + r8 + 1]
mov byte [rbp - 0x10], al
movzx eax, byte [rcx + r8 + 2]
mov byte [rbp - 0xf], al
movzx eax, byte [rcx + r8 + 3]
mov byte [rbp - 0xe], al
jmp 0x14009b823
mov dword [rbp - 0x11], 0
lea rax, [r12 + rsi]
cmp r9, rax
jb 0x14009b7ce
cmp r10d, 2
jbe 0x14009ba4d
cmp r10d, 9
jne 0x14009ba08
test r11b, r11b
je 0x14009b871
xor eax, eax
test rsi, rsi
je 0x14009b871
nop dword [rax]
lea r8, [rax + r12]
add r8, qword [r14 + 8]
movzx edx, byte [r8]
mov rcx, rax
and ecx, 3
xor dl, byte [rbp + rcx - 0x11]
mov byte [r8], dl
inc rax
cmp rax, rsi
jne 0x14009b850
mov r13, qword [r14 + 8]
add r13, r12
lea r15, [rsi + r13]
xorps xmm0, xmm0
movups xmmword [rbp + 0xf], xmm0
cmp r13, r15
jne 0x14009b8a2
xor r8d, r8d
mov qword [rbp + 0x1f], r8
mov r10d, recv
mov qword [rbp + 0x27], r10
mov byte [rbp + 0xf], r8b
jmp 0x14009b995
sub r15, r13
mov qword [rbp + 0x1f], 0
mov qword [rbp + 0x27], recv
movabs rax, 0x7fffffffffffffff
cmp r15, rax
ja 0x14009bc58
mov edi, recv
cmp r15, rdi
jbe 0x14009b966
mov rdi, r15
or rdi, 0xf
cmp rdi, rax
jbe 0x14009b8f5
mov rdi, rax
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x14009b92d
cmp rdi, 0x16
mov eax, socket
cmovb rdi, rax
lea rcx, [rdi + 1]
test rcx, rcx
jne 0x14009b917
xor eax, eax
mov qword [rbp + 0xf], rax
mov qword [rbp + 0x27], rdi
jmp 0x14009b96a
cmp rcx, 0x1000
jb 0x14009b957
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14009bc52
mov rcx, rax
call fcn.1401088fc
mov rcx, rax
test rax, rax
je 0x14009bc46
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
mov qword [rbp + 0xf], rax
mov qword [rbp + 0x27], rdi
jmp 0x14009b96a
call fcn.1401088fc
mov qword [rbp + 0xf], rax
mov qword [rbp + 0x27], rdi
jmp 0x14009b96a
mov rax, qword [rbp + 0xf]
lea rbx, [rbp + 0xf]
cmp rdi, 0xf
cmova rbx, rax
mov r8, r15
mov rdx, r13
mov rcx, rbx
call fcn.14013b1c0
mov qword [rbp + 0x1f], r15
mov byte [rbx + r15], 0
mov r10, qword [rbp + 0x27]
mov r8, qword [rbp + 0x1f]
lea rcx, [rbp + 0xf]
cmp r10, 0xf
cmova rcx, qword [rbp + 0xf]
add rcx, r8
lea r9, [rbp + 0xf]
cmp r10, 0xf
cmova r9, qword [rbp + 0xf]
mov qword [rsp + 0x20], rcx
mov edx, 0xa
mov rcx, r14
call fcn.14009c7d0
nop
mov rdx, qword [rbp + 0x27]
cmp rdx, 0xf
jbe 0x14009bb92
inc rdx
mov rcx, qword [rbp + 0xf]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009bb8d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009bc46
jmp 0x14009bb8d
cmp r10d, 0xa
je 0x14009bb9c
cmp r10d, 8
jne 0x14009ba26
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x30]
jmp 0x14009bb9c
mov ecx, 2
call fcn.14010ffa4
mov rcx, rax
lea rdx, str.ERROR:_Got_unexpected_WebSocket_message._n
call fcn.14009afb0
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x30]
jmp 0x14009bb9c
test r11b, r11b
je 0x14009ba82
xor r8d, r8d
test rsi, rsi
je 0x14009ba82
nop word [rax + rax]
mov rdx, qword [r14 + 8]
add rdx, r12
movzx ecx, byte [rdx + r8]
mov rax, r8
and eax, 3
xor cl, byte [rbp + rax - 0x11]
mov byte [rdx + r8], cl
inc r8
cmp r8, rsi
jne 0x14009ba60
lea r15, [r14 + 0x38]
mov r8, qword [r14 + 8]
add r8, r12
mov r9, r8
sub r9, r8
add r9, rsi
mov rdx, qword [r14 + 0x40]
mov rcx, r15
call fcn.14009cd90
test dil, dil
je 0x14009bb96
mov rax, qword [r13]
mov r13, qword [rax]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x29], xmm0
xor ebx, ebx
mov qword [rbp - 0x19], rbx
mov rdx, qword [r15 + 8]
sub rdx, qword [r15]
je 0x14009baf5
lea rcx, [rbp - 0x29]
call fcn.14009ab10
mov rdi, qword [rbp - 0x29]
mov rbx, qword [r15 + 8]
mov rdx, qword [r15]
sub rbx, rdx
mov r8, rbx
mov rcx, rdi
call fcn.14013b1c0
lea rax, [rdi + rbx]
mov qword [rbp - 0x21], rax
xor ebx, ebx
lea rdx, [rbp - 0x29]
mov rcx, qword [rbp + 0x6f]
call r13
nop
mov rcx, qword [rbp - 0x29]
test rcx, rcx
je 0x14009bb3b
mov rdx, qword [rbp - 0x19]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009bb36
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009bc40
call fcn.140108b78
mov rcx, qword [r15]
cmp rcx, qword [r14 + 0x40]
je 0x14009bb48
mov qword [r14 + 0x40], rcx
lea rax, [rbp - 9]
cmp rax, r15
je 0x14009bb92
mov qword [r15], rbx
mov qword [r15 + 8], rbx
mov rdx, qword [r15 + 0x10]
mov qword [r15 + 0x10], rbx
test rcx, rcx
je 0x14009bb92
sub rdx, rcx
cmp rdx, 0x1000
jb 0x14009bb8d
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14009bc4c
mov rcx, r8
call fcn.140108b78
mov r13, qword [rbp + 0x6f]
mov r15d, 4
mov rdi, qword [r14 + 8]
lea rdx, [rdi + r12]
add rdx, rsi
cmp rdi, rdx
je 0x14009bbc6
mov rbx, qword [r14 + 0x10]
sub rbx, rdx
mov r8, rbx
mov rcx, rdi
call fcn.14013b1c0
lea rax, [rbx + rdi]
mov qword [r14 + 0x10], rax
mov r8, qword [r14 + 8]
mov r9, qword [r14 + 0x10]
sub r9, r8
cmp r9, 2
jb 0x14009b7ce
movzx r10d, byte [r8]
movzx edi, r10b
shr dil, 7
mov byte [rbp - 0x25], dil
and r10d, 0xf
mov dword [rbp - 0x21], r10d
movzx edx, byte [r8 + 1]
movzx eax, dl
shr al, 7
movzx ebx, al
movzx r11d, bl
mov byte [rbp - 0x24], bl
and edx, 0x7f
mov dword [rbp - 0x1d], edx
xor ecx, ecx
cmp edx, 0x7f
mov eax, 8
cmove ecx, eax
mov eax, 2
cmp edx, 0x7e
cmove eax, r15d
add ecx, eax
lea eax, [rcx + rbx*4]
mov dword [rbp - 0x29], eax
mov r12d, eax
cmp r9, rax
jae 0x14009b704
jmp 0x14009b7ce
call fcn.14011d348
int3
call fcn.14011d348
int3
call fcn.14011d348
int3
call fcn.14002ab40
int3
call fcn.1400661f0
int3