Function at 0x140028290
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0x90
mov r13, rdx
mov rsi, rcx
cmp byte [rcx + 0x5d], 0
jne 0x14002840a
mov r8, qword [rcx + 8]
mov r11, qword [rcx + 0x10]
sub r11, r8
cmp r11, 2
jb 0x14002840a
movzx ebx, byte [r8]
movzx r15d, bl
shr r15b, 7
mov byte [rbp - 0x25], r15b
and ebx, 0xf
mov dword [rbp - 0x21], ebx
movzx edx, byte [r8 + 1]
movzx eax, dl
shr al, 7
movzx r14d, al
movzx edi, r14b
mov byte [rbp - 0x24], r14b
and edx, 0x7f
mov dword [rbp - 0x1d], edx
xor ecx, ecx
mov eax, 8
cmp edx, 0x7f
cmove ecx, eax
mov eax, 2
mov r12d, 4
cmp edx, 0x7e
cmove eax, r12d
add ecx, eax
lea eax, [rcx + r14*4]
mov dword [rbp - 0x29], eax
mov r9d, eax
cmp r11, rax
jb 0x14002840a
xor ecx, ecx
cmp edx, 0x7e
jae 0x140028358
mov r10d, edx
mov qword [rbp - 0x19], r10
mov ecx, 2
jmp 0x14002842f
jne 0x140028377
movzx r10d, byte [r8 + 2]
shl r10, 8
movzx eax, byte [r8 + 3]
or r10, rax
mov qword [rbp - 0x19], r10
mov rcx, r12
jmp 0x14002842f
cmp edx, 0x7f
jne 0x14002842b
movzx r10d, byte [r8 + 2]
shl r10, 8
movzx eax, byte [r8 + 3]
or r10, rax
shl r10, 8
movzx eax, byte [r8 + 4]
or r10, rax
shl r10, 8
movzx eax, byte [r8 + 5]
or r10, rax
shl r10, 8
movzx eax, byte [r8 + 6]
or r10, rax
shl r10, 8
movzx eax, byte [r8 + 7]
or r10, rax
shl r10, 8
movzx eax, byte [r8 + 8]
or r10, rax
shl r10, 8
movzx eax, byte [r8 + 9]
or r10, rax
mov qword [rbp - 0x19], r10
mov ecx, 0xa
jge 0x14002842f
mov byte [rsi + 0x5d], 1
mov ecx, 2
call fcn.14005ec28
mov rcx, rax
lea rdx, str.ERROR:_Frame_has_invalid_frame_length._Closing._n
call fcn.140027cb0
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov r10, qword [rbp - 0x19]
test r14b, r14b
je 0x140028459
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 0x140028460
mov dword [rbp - 0x11], 0
lea r12, [r9 + r10]
cmp r11, r12
jb 0x14002840a
cmp ebx, 2
jbe 0x14002868c
cmp ebx, 9
jne 0x140028649
test dil, dil
je 0x1400284b2
xor eax, eax
test r10, r10
je 0x1400284b2
nop word [rax + rax]
mov r8, qword [rsi + 8]
add r8, rax
movzx edx, byte [r8 + r9]
mov rcx, rax
and ecx, 3
xor dl, byte [rbp + rcx - 0x11]
mov byte [r8 + r9], dl
inc rax
cmp rax, r10
jne 0x140028490
mov r15, qword [rsi + 8]
add r15, r9
lea r14, [r15 + r10]
xorps xmm0, xmm0
movups xmmword [rbp + 0xf], xmm0
cmp r15, r14
jne 0x1400284e3
xor r8d, r8d
mov qword [rbp + 0x1f], r8
mov r10d, recv
mov qword [rbp + 0x27], r10
mov byte [rbp + 0xf], r8b
jmp 0x1400285d6
sub r14, r15
mov qword [rbp + 0x1f], 0
mov qword [rbp + 0x27], setsockopt
movabs rax, 0x7fffffffffffffff
cmp r14, rax
ja 0x1400288a2
mov edi, recv
cmp r14, rdi
jbe 0x1400285a7
mov rdi, r14
or rdi, 0xf
cmp rdi, rax
jbe 0x140028536
mov rdi, rax
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x14002856e
cmp rdi, 0x16
mov eax, socket
cmovb rdi, rax
lea rcx, [rdi + 1]
test rcx, rcx
jne 0x140028558
xor eax, eax
mov qword [rbp + 0xf], rax
mov qword [rbp + 0x27], rdi
jmp 0x1400285ab
cmp rcx, 0x1000
jb 0x140028598
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14002889c
mov rcx, rax
call fcn.14004589c
mov rcx, rax
test rax, rax
je 0x140028890
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
mov qword [rbp + 0xf], rax
mov qword [rbp + 0x27], rdi
jmp 0x1400285ab
call fcn.14004589c
mov qword [rbp + 0xf], rax
mov qword [rbp + 0x27], rdi
jmp 0x1400285ab
mov rax, qword [rbp + 0xf]
lea rbx, [rbp + 0xf]
cmp rdi, 0xf
cmova rbx, rax
mov r8, r14
mov rdx, r15
mov rcx, rbx
call fcn.140076950
mov qword [rbp + 0x1f], r14
mov byte [rbx + r14], 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, rsi
call fcn.140029400
nop
mov rdx, qword [rbp + 0x27]
cmp rdx, 0xf
jbe 0x1400287e2
inc rdx
mov rcx, qword [rbp + 0xf]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400287dd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140028890
jmp 0x1400287dd
cmp ebx, 0xa
je 0x1400287e2
cmp ebx, 8
jne 0x140028665
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
jmp 0x1400287e2
mov ecx, 2
call fcn.14005ec28
mov rcx, rax
lea rdx, str.ERROR:_Got_unexpected_WebSocket_message._n
call fcn.140027cb0
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
jmp 0x1400287e2
xor ebx, ebx
test dil, dil
je 0x1400286c2
mov r8d, ebx
test r10, r10
je 0x1400286c2
nop dword [rax + rax]
mov rdx, qword [rsi + 8]
add rdx, r9
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, r10
jne 0x1400286a0
lea r14, [rsi + 0x38]
mov r8, qword [rsi + 8]
add r8, r9
mov r9, r8
sub r9, r8
add r9, r10
mov rdx, qword [rsi + 0x40]
mov rcx, r14
call fcn.14001e5e0
test r15b, r15b
je 0x1400287e2
mov rax, qword [r13]
mov r15, qword [rax]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x29], xmm0
mov qword [rbp - 0x19], rbx
mov rdx, qword [r14 + 8]
sub rdx, qword [r14]
je 0x140028746
movabs rax, 0x7fffffffffffffff
cmp rdx, rax
ja 0x1400288a8
lea rcx, [rbp - 0x29]
call fcn.14001c490
mov rdi, qword [rbp - 0x29]
mov rbx, qword [r14 + 8]
mov rdx, qword [r14]
sub rbx, rdx
mov r8, rbx
mov rcx, rdi
call fcn.140076950
lea rax, [rdi + rbx]
mov qword [rbp - 0x21], rax
xor ebx, ebx
lea rdx, [rbp - 0x29]
mov rcx, r13
call r15
nop
mov rcx, qword [rbp - 0x29]
test rcx, rcx
je 0x14002878b
mov rdx, qword [rbp - 0x19]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140028786
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002888a
call fcn.140045884
mov rcx, qword [r14]
cmp rcx, qword [rsi + 0x40]
je 0x140028798
mov qword [rsi + 0x40], rcx
lea rax, [rbp - 9]
cmp rax, r14
je 0x1400287e2
mov qword [r14], rbx
mov qword [r14 + 8], rbx
mov rdx, qword [r14 + 0x10]
mov qword [r14 + 0x10], rbx
test rcx, rcx
je 0x1400287e2
sub rdx, rcx
cmp rdx, 0x1000
jb 0x1400287dd
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140028896
mov rcx, r8
call fcn.140045884
mov rdi, qword [rsi + 8]
lea rdx, [r12 + rdi]
cmp rdi, rdx
je 0x140028809
mov rbx, qword [rsi + 0x10]
sub rbx, rdx
mov r8, rbx
mov rcx, rdi
call fcn.140076950
lea rax, [rbx + rdi]
mov qword [rsi + 0x10], rax
mov r8, qword [rsi + 8]
mov r11, qword [rsi + 0x10]
sub r11, r8
cmp r11, 2
jb 0x14002840a
movzx ebx, byte [r8]
movzx r15d, bl
shr r15b, 7
mov byte [rbp - 0x25], r15b
and ebx, 0xf
mov dword [rbp - 0x21], ebx
movzx edx, byte [r8 + 1]
movzx eax, dl
shr al, 7
movzx r14d, al
movzx edi, r14b
mov byte [rbp - 0x24], r14b
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
mov r12d, 4
cmove eax, r12d
add ecx, eax
lea eax, [rcx + r14*4]
mov dword [rbp - 0x29], eax
mov r9d, eax
cmp r11, rax
jae 0x140028340
jmp 0x14002840a
call fcn.14005e594
int3
call fcn.14005e594
int3
call fcn.14005e594
int3
call fcn.140001640
int3
call fcn.1400017c0
int3
call fcn.140014730
int3