Function at 0x14000da10
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
cmp byte [rcx + 0x5d], 0
mov rdi, rcx
mov r14, rdx
jne 0x14000dbd8
mov rbp, qword [rcx + 8]
mov r8, qword [rcx + 0x10]
sub r8, rbp
cmp r8, 1
jbe 0x14000dbd8
nop dword [rax + rax]
movzx eax, byte [rbp + 1]
movzx r13d, byte [rbp]
mov esi, eax
mov ebx, eax
mov edx, r13d
shr ebx, 5
and esi, 0x7f
and edx, 0xf
and ebx, 4
cmp sil, 0x7e
je 0x14000de30
xor ecx, ecx
cmp sil, 0x7f
sete cl
lea ebx, [rbx + rcx*8 + 2]
movsxd rbx, ebx
cmp r8, rbx
jb 0x14000dbd8
cmp sil, 0x7d
ja 0x14000de70
movzx esi, sil
mov r10d, 5
mov ecx, 3
mov r9d, 4
mov r11d, 2
lea r12, [rsi + rbx]
test al, al
js 0x14000dbf0
cmp r8, r12
jb 0x14000dbd8
cmp dl, 2
jbe 0x14000dc75
cmp dl, 9
je 0x14000def0
cmp dl, 0xa
je 0x14000e240
cmp dl, 8
je 0x14000e400
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rdx, str.ERROR:_Got_unexpected_WebSocket_message._n
mov rcx, rax
call sym.fprintf__iobuf__char_const__::_
cmp dword [rdi + 0x58], 1
jbe 0x14000dc90
mov dword [rdi + 0x58], 0
xor eax, eax
mov ecx, 6
mov dword [rsp + 0x50], 0x8088
mov word [rsp + 0x54], ax
call sym.operator_new_unsigned_long_long_
mov rdx, qword [rdi + 0x28]
lea rcx, [rdi + 0x20]
mov rbx, rax
lea r9, [rax + 6]
mov qword [rsp + 0x90], rax
mov eax, dword [rsp + 0x50]
mov r8, rbx
mov qword [rsp + 0xa0], r9
mov dword [rbx], eax
movzx eax, word [rsp + 0x54]
mov qword [rsp + 0x98], r9
mov word [rbx + 4], ax
call method.void_std::vector_unsigned_char__std::allocator_unsigned_char___::_M_range_insert___gnu_cxx::__normal_iterator_unsigned_char__std::vector_unsigned_char__std.allocator_unsigned_char__________gnu_cxx::__normal_iterator_unsigned_char__std::vector_uns
mov rcx, rbx
mov edx, 6
call sym.operator_delete_void__unsigned_long_long_
mov rcx, qword [rdi + 8]
mov rax, qword [rdi + 0x10]
add r12, rcx
mov rbp, rcx
mov r8, rax
sub r8, r12
cmp r12, rax
je 0x14000dbb8
cmp r8, 1
jle 0x14000e470
mov rdx, r12
call sym.memmove
mov rax, qword [rdi + 0x10]
mov rcx, rbp
mov rbp, qword [rdi + 8]
mov r8, rax
sub r8, r12
add rcx, r8
cmp rcx, rax
je 0x14000dca0
mov qword [rdi + 0x10], rcx
sub rcx, rbp
mov r8, rcx
cmp rcx, 1
ja 0x14000da50
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx r10d, byte [rbp + r10]
movzx r9d, byte [rbp + r9]
movzx ecx, byte [rbp + rcx]
movzx eax, byte [rbp + r11]
shl r10d, 8
or r10d, r9d
shl r10d, 8
or r10d, ecx
movzx ecx, al
shl r10d, 8
or r10d, ecx
mov dword [rsp + 0x88], r10d
cmp r8, r12
jb 0x14000dbd8
cmp dl, 2
ja 0x14000dea0
test rsi, rsi
je 0x14000dc75
xor byte [rbp + rbx], al
mov eax, 1
cmp rsi, 1
je 0x14000dc71
nop dword [rax]
mov rcx, rax
lea rdx, [rbx + rax]
add rax, 1
add rdx, qword [rdi + 8]
and ecx, 3
movzx ecx, byte [rsp + rcx + 0x88]
xor byte [rdx], cl
cmp rsi, rax
jne 0x14000dc50
mov rbp, qword [rdi + 8]
lea r8, [rbp + rbx]
mov rdx, qword [rdi + 0x40]
lea rcx, [rdi + 0x38]
lea r9, [r8 + rsi]
call method.void_std::vector_unsigned_char__std::allocator_unsigned_char___::_M_range_insert___gnu_cxx::__normal_iterator_unsigned_char__std::vector_unsigned_char__std.allocator_unsigned_char__________gnu_cxx::__normal_iterator_unsigned_char__std::vector_uns
test r13b, r13b
js 0x14000dcb8
mov rcx, qword [rdi + 8]
jmp 0x14000db80
sub rax, rbp
mov r8, rax
cmp rax, 1
ja 0x14000da50
jmp 0x14000dbd8
mov rax, qword [r14]
pxor xmm0, xmm0
mov r13, qword [rax]
mov rax, qword [rdi + 0x40]
movaps xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], 0
sub rax, qword [rdi + 0x38]
mov rbp, rax
je 0x14000e2a0
js 0x14000e57b
mov rcx, rax
call sym.operator_new_unsigned_long_long_
mov rdx, qword [rdi + 0x38]
mov rbx, qword [rdi + 0x40]
movq xmm0, rax
mov rsi, rax
lea rax, [rax + rbp]
sub rbx, rdx
punpcklqdq xmm0, xmm0
mov qword [rsp + 0x60], rax
movaps xmmword [rsp + 0x50], xmm0
lea rbp, [rsi + rbx]
cmp rbx, 1
jle 0x14000e5c3
mov r8, rbx
mov rcx, rsi
call sym.memmove
lea rax, [sym._anonymous_namespace_::_RealWebSocket::_dispatch_easywsclient::Callback_Imp_::CallbackAdapter::operator___std::vector_unsigned_char__std::allocator_unsigned_char____const_]
mov qword [rsp + 0x58], rbp
cmp r13, rax
jne 0x14000e538
lea r13, [rsp + 0xa0]
mov qword [rsp + 0x48], rbx
lea r15, [rsp + 0x90]
mov qword [rsp + 0x90], r13
mov qword [rsp + 0x98], 0
cmp rbx, 0xf
ja 0x14000e2b8
mov rdx, r13
cmp rsi, rbp
je 0x14000ddad
lea rax, [rbx - 1]
cmp rax, 6
ja 0x14000e2f7
xor eax, eax
nop dword [rax]
movzx ecx, byte [rsi + rax]
mov byte [rdx + rax], cl
add rax, 1
cmp rax, rbx
jne 0x14000dd90
mov rbx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x90]
mov qword [rsp + 0x98], rbx
mov byte [rdx + rbx], 0
mov rcx, qword [r14 + 8]
mov rdx, r15
mov rax, qword [rcx]
call qword [rax]
mov rcx, qword [rsp + 0x90]
cmp rcx, r13
je 0x14000dde3
mov rax, qword [rsp + 0xa0]
lea rdx, [rax + 1]
call sym.operator_delete_void__unsigned_long_long_
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14000ddfa
mov rdx, qword [rsp + 0x60]
sub rdx, rcx
call sym.operator_delete_void__unsigned_long_long_
mov rcx, qword [rdi + 0x38]
pxor xmm0, xmm0
mov rdx, qword [rdi + 0x48]
mov qword [rdi + 0x48], 0
movups xmmword [rdi + 0x38], xmm0
test rcx, rcx
je 0x14000dc90
sub rdx, rcx
call sym.operator_delete_void__unsigned_long_long_
mov rcx, qword [rdi + 8]
jmp 0x14000db80
add ebx, 4
movsxd rbx, ebx
cmp r8, rbx
jb 0x14000dbd8
movzx esi, word [rbp + 2]
mov r10d, 7
mov ecx, 5
mov r9d, 6
mov r11d, 4
rol si, 8
movzx esi, si
jmp 0x14000dab4
mov rsi, qword [rbp + 2]
bswap rsi
test rsi, rsi
js 0x14000e622
mov r10d, 0xd
mov r9d, 0xc
mov ecx, 0xb
mov r11d, 0xa
jmp 0x14000dab4
cmp dl, 9
jne 0x14000dadb
test rsi, rsi
je 0x14000e563
xor byte [rbp + rbx], al
mov eax, 1
cmp rsi, 1
je 0x14000e580
nop dword [rax]
mov rcx, rax
lea rdx, [rbx + rax]
add rax, 1
add rdx, qword [rdi + 8]
and ecx, 3
movzx ecx, byte [rsp + rcx + 0x88]
xor byte [rdx], cl
cmp rsi, rax
jne 0x14000dec8
mov rbp, qword [rdi + 8]
nop dword [rax]
lea r10, [rbp + rbx]
lea r13, [rsp + 0xa0]
mov qword [rsp + 0x98], 0
mov qword [rsp + 0x90], r13
mov r9, r10
lea r11, [r10 + rsi]
lea r15, [rsp + 0x90]
mov qword [rsp + 0x50], rsi
cmp rsi, 0xf
ja 0x14000e0e0
cmp r11, r10
je 0x14000e5b4
lea rax, [rsi - 1]
mov rdx, r13
cmp rax, 6
ja 0x14000e136
xor eax, eax
nop dword [rax + rax]
movzx ecx, byte [r9 + rax]
mov byte [rdx + rax], cl
add rax, 1
cmp rsi, rax
jne 0x14000df50
mov rsi, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x90]
add rdx, rsi
mov qword [rsp + 0x98], rsi
mov byte [rdx], 0
mov rbp, qword [rsp + 0x90]
mov dword [rsp + 0x48], 0x78563412
mov rbx, qword [rsp + 0x98]
movzx r15d, word [rsp + 0x98]
rol r15w, 8
cmp dword [rdi + 0x58], 1
jbe 0x14000e0b1
pxor xmm0, xmm0
mov byte [rsp + 0x47], 0
mov eax, 2
mov qword [rsp + 0x60], 0
movaps xmmword [rsp + 0x50], xmm0
cmp rbx, 0x7d
ja 0x14000e288
movzx edx, byte [rdi + 0x5c]
lea r8, [rsp + 0x47]
lea edx, [rax + rdx*4]
lea rax, [rsp + 0x50]
movsxd rdx, edx
mov rcx, rax
mov qword [rsp + 0x28], rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___._M_fill_assign_unsigned_long_long__unsigned_char_const_
mov rsi, qword [rsp + 0x50]
mov byte [rsi], 0x8a
movzx eax, byte [rdi + 0x5c]
cmp rbx, 0x7d
ja 0x14000e250
shl eax, 7
or eax, ebx
mov byte [rsi + 1], al
cmp byte [rdi + 0x5c], 0
jne 0x14000e490
lea r15, [rdi + 0x20]
mov rdx, qword [rdi + 0x28]
mov r9, qword [rsp + 0x58]
mov r8, rsi
mov rcx, r15
call method.void_std::vector_unsigned_char__std::allocator_unsigned_char___::_M_range_insert___gnu_cxx::__normal_iterator_unsigned_char__std::vector_unsigned_char__std.allocator_unsigned_char__________gnu_cxx::__normal_iterator_unsigned_char__std::vector_uns
mov rdx, qword [rdi + 0x28]
lea r9, [rbp + rbx]
mov r8, rbp
mov rcx, r15
call sym.std::vector_unsigned_char__std::allocator_unsigned_char___::_M_range_insert___gnu_cxx::__normal_iterator_char__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_______
mov rdx, qword [rsp + 0x60]
mov rax, qword [rdi + 0x20]
sub rdx, rsi
cmp byte [rdi + 0x5c], 0
je 0x14000e0a1
mov r8, qword [rdi + 0x28]
sub r8, rax
sub r8, rbx
test rbx, rbx
je 0x14000e0a1
xor byte [rax + r8], 0x12
mov eax, 1
cmp rbx, 1
je 0x14000e0a1
nop dword [rax + rax]
mov r9, rax
lea rcx, [r8 + rax]
add rax, 1
add rcx, qword [rdi + 0x20]
and r9d, 3
movzx r9d, byte [rsp + r9 + 0x48]
xor byte [rcx], r9b
cmp rbx, rax
jne 0x14000e080
mov rcx, rsi
call sym.operator_delete_void__unsigned_long_long_
mov rbp, qword [rsp + 0x90]
cmp rbp, r13
je 0x14000dc90
mov rax, qword [rsp + 0xa0]
mov rcx, rbp
lea rdx, [rax + 1]
call sym.operator_delete_void__unsigned_long_long_
mov rcx, qword [rdi + 8]
jmp 0x14000db80
lea rax, [rsp + 0x50]
xor r8d, r8d
mov rcx, r15
mov qword [rsp + 0x38], r10
mov rdx, rax
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x28], r11
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::_M_create_unsigned_long_long__unsigned_long_long_
mov r11, qword [rsp + 0x28]
mov r10, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x90], rax
mov rdx, rax
lea rax, [rsi - 1]
cmp r11, r10
mov r9, qword [rsp + 0x30]
mov qword [rsp + 0xa0], rcx
je 0x14000e550
lea r8, [rbp + rbx + 1]
mov rcx, rdx
sub rcx, r8
cmp rcx, 0xe
jbe 0x14000df49
cmp rax, 0xe
jbe 0x14000e5b9
mov rcx, rsi
xor eax, eax
and rcx, 0xfffffffffffffff0
nop
movdqu xmm1, xmmword [r10 + rax]
movups xmmword [rdx + rax], xmm1
add rax, 0x10
cmp rcx, rax
jne 0x14000e160
lea r9, [r10 + rcx]
lea rax, [rdx + rcx]
cmp rsi, rcx
je 0x14000df61
sub rsi, rcx
lea r8, [rsi - 1]
cmp r8, 6
jbe 0x14000e1af
mov r8, qword [r10 + rcx]
mov qword [rdx + rcx], r8
mov rdx, rsi
and rdx, 0xfffffffffffffff8
add r9, rdx
add rax, rdx
and esi, 7
je 0x14000df61
movzx edx, byte [r9]
mov byte [rax], dl
lea rdx, [r9 + 1]
cmp r11, rdx
je 0x14000df61
movzx edx, byte [r9 + 1]
mov byte [rax + 1], dl
lea rdx, [r9 + 2]
cmp r11, rdx
je 0x14000df61
movzx edx, byte [r9 + 2]
mov byte [rax + 2], dl
lea rdx, [r9 + 3]
cmp r11, rdx
je 0x14000df61
movzx edx, byte [r9 + 3]
mov byte [rax + 3], dl
lea rdx, [r9 + 4]
cmp r11, rdx
je 0x14000df61
movzx edx, byte [r9 + 4]
mov byte [rax + 4], dl
lea rdx, [r9 + 5]
cmp r11, rdx
je 0x14000df61
movzx edx, byte [r9 + 5]
mov byte [rax + 5], dl
lea rdx, [r9 + 6]
cmp r11, rdx
je 0x14000df61
movzx edx, byte [r9 + 6]
mov byte [rax + 6], dl
jmp 0x14000df61
mov rcx, rbp
jmp 0x14000db80
cmp rbx, 0xffff
ja 0x14000e4a0
cmp al, 1
mov word [rsi + 2], r15w
sbb eax, eax
and eax, 0xffffff80
sub eax, 2
mov byte [rsi + 1], al
cmp byte [rdi + 0x5c], 0
je 0x14000e01b
mov dword [rsi + 4], 0x78563412
jmp 0x14000e01b
cmp rbx, 0x10000
sbb eax, eax
and eax, 0xfffffffa
add eax, 0xa
jmp 0x14000dfd2
mov qword [rsp + 0x60], 0
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x14000dd2d
lea rax, [rsp + 0x50]
lea rdx, [rsp + 0x48]
xor r8d, r8d
mov rcx, r15
mov qword [rsp + 0x28], rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::_M_create_unsigned_long_long__unsigned_long_long_
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x90], rax
mov rdx, rax
lea rax, [rbx - 1]
mov qword [rsp + 0xa0], rcx
cmp rsi, rbp
je 0x14000e55b
lea r8, [rsi + 1]
mov rcx, rdx
sub rcx, r8
cmp rcx, 0xe
jbe 0x14000dd8b
cmp rax, 0xe
jbe 0x14000e615
mov rcx, rbx
xor eax, eax
and rcx, 0xfffffffffffffff0
nop
movdqu xmm2, xmmword [rsi + rax]
movups xmmword [rdx + rax], xmm2
add rax, 0x10
cmp rax, rcx
jne 0x14000e320
lea rax, [rsi + rcx]
lea r8, [rdx + rcx]
cmp rcx, rbx
je 0x14000dda0
sub rbx, rcx
lea r9, [rbx - 1]
cmp r9, 6
jbe 0x14000e36e
mov r9, qword [rsi + rcx]
mov qword [rdx + rcx], r9
mov rdx, rbx
and rdx, 0xfffffffffffffff8
add rax, rdx
add r8, rdx
and ebx, 7
je 0x14000dda0
movzx edx, byte [rax]
mov byte [r8], dl
lea rdx, [rax + 1]
cmp rbp, rdx
je 0x14000dda0
movzx edx, byte [rax + 1]
mov byte [r8 + 1], dl
lea rdx, [rax + 2]
cmp rbp, rdx
je 0x14000dda0
movzx edx, byte [rax + 2]
mov byte [r8 + 2], dl
lea rdx, [rax + 3]
cmp rbp, rdx
je 0x14000dda0
movzx edx, byte [rax + 3]
mov byte [r8 + 3], dl
lea rdx, [rax + 4]
cmp rbp, rdx
je 0x14000dda0
movzx edx, byte [rax + 4]
mov byte [r8 + 4], dl
lea rdx, [rax + 5]
cmp rbp, rdx
je 0x14000dda0
movzx edx, byte [rax + 5]
mov byte [r8 + 5], dl
lea rdx, [rax + 6]
cmp rbp, rdx
je 0x14000dda0
movzx eax, byte [rax + 6]
mov byte [r8 + 6], al
jmp 0x14000dda0
cmp dword [rdi + 0x58], 1
jbe 0x14000e240
mov dword [rdi + 0x58], 0
xor edx, edx
mov ecx, 6
mov word [rsp + 0x54], dx
mov dword [rsp + 0x50], 0x8088
call sym.operator_new_unsigned_long_long_
mov rdx, qword [rdi + 0x28]
lea rcx, [rdi + 0x20]
mov rbx, rax
lea r9, [rax + 6]
mov qword [rsp + 0x90], rax
mov eax, dword [rsp + 0x50]
mov r8, rbx
mov qword [rsp + 0xa0], r9
mov dword [rbx], eax
movzx eax, word [rsp + 0x54]
mov qword [rsp + 0x98], r9
mov word [rbx + 4], ax
call method.void_std::vector_unsigned_char__std::allocator_unsigned_char___::_M_range_insert___gnu_cxx::__normal_iterator_unsigned_char__std::vector_unsigned_char__std.allocator_unsigned_char__________gnu_cxx::__normal_iterator_unsigned_char__std::vector_uns
jmp 0x14000db6f
jne 0x14000dbb8
movzx eax, byte [r12]
mov byte [rcx], al
mov rax, qword [rdi + 0x10]
mov rbp, qword [rdi + 8]
mov r8, rax
sub r8, r12
jmp 0x14000dbb8
mov dword [rsi + 2], 0x78563412
jmp 0x14000e01b
cmp al, 1
mov r11, rbx
mov rax, rbx
mov r10, rbx
sbb edx, edx
shr r11, 0x10
and eax, 0xff00
mov r9, rbx
movzx r11d, r11b
shr r10, 0x18
mov r8, rbx
mov rcx, rbx
or rax, r11
movzx r10d, r10b
shr r9, 0x20
and edx, 0xffffff80
shl rax, 8
movzx r9d, r9b
shr r8, 0x28
sub edx, 1
or rax, r10
movzx r8d, r8b
shr rcx, 0x30
movzx edx, dl
shl rax, 8
movzx ecx, cl
mov byte [rsi + 9], bl
or rax, r9
shl rax, 8
or rax, r8
shl rax, 8
or rax, rcx
shld rax, rbx, 8
shl rax, 8
or rax, rdx
mov qword [rsi + 1], rax
cmp byte [rdi + 0x5c], 0
je 0x14000e01b
mov dword [rsi + 0xa], 0x78563412
jmp 0x14000e01b
lea rax, [rsp + 0x50]
mov rcx, r14
mov qword [rsp + 0x28], rax
mov rdx, rax
call r13
jmp 0x14000dde3
mov rsi, rcx
add rdx, rsi
jmp 0x14000df71
mov rbx, rcx
jmp 0x14000ddad
lea r13, [rsp + 0xa0]
mov qword [rsp + 0x90], r13
mov rdx, r13
jmp 0x14000df71
call sym.std::__throw_bad_alloc__
lea r13, [rsp + 0xa0]
add rbx, qword [rdi + 8]
mov qword [rsp + 0x98], 0
mov qword [rsp + 0x90], r13
mov r9, rbx
mov rdx, r13
mov qword [rsp + 0x50], 1
jmp 0x14000df49
mov rdx, r13
jmp 0x14000e553
mov rax, rdx
xor ecx, ecx
jmp 0x14000e191
jne 0x14000dd2d
movzx eax, byte [rdx]
mov qword [rsp + 0x58], rbp
mov byte [rsi], al
lea rax, [sym._anonymous_namespace_::_RealWebSocket::_dispatch_easywsclient::Callback_Imp_::CallbackAdapter::operator___std::vector_unsigned_char__std::allocator_unsigned_char____const_]
cmp r13, rax
jne 0x14000e538
lea r13, [rsp + 0xa0]
lea r15, [rsp + 0x90]
mov qword [rsp + 0x98], 0
mov qword [rsp + 0x90], r13
mov qword [rsp + 0x48], 1
jmp 0x14000dd75
mov rax, rsi
mov r8, rdx
xor ecx, ecx
jmp 0x14000e350
mov ecx, 2
mov byte [rdi + 0x5d], 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rdx, str.ERROR:_Frame_has_invalid_frame_length._Closing._n
mov rcx, rax
call sym.fprintf__iobuf__char_const__::_
cmp dword [rdi + 0x58], 1
jbe 0x14000dbd8
mov dword [rdi + 0x58], 0
xor ecx, ecx
mov word [rsp + 0x74], cx
mov ecx, 6
mov dword [rsp + 0x70], 0x8088
call sym.operator_new_unsigned_long_long_
mov rdx, qword [rdi + 0x28]
lea rcx, [rdi + 0x20]
mov rbx, rax
lea r9, [rax + 6]
mov qword [rsp + 0x90], rax
mov eax, dword [rsp + 0x70]
mov r8, rbx
mov qword [rsp + 0xa0], r9
mov dword [rbx], eax
movzx eax, word [rsp + 0x74]
mov qword [rsp + 0x98], r9
mov word [rbx + 4], ax
call method.void_std::vector_unsigned_char__std::allocator_unsigned_char___::_M_range_insert___gnu_cxx::__normal_iterator_unsigned_char__std::vector_unsigned_char__std.allocator_unsigned_char__________gnu_cxx::__normal_iterator_unsigned_char__std::vector_uns
mov edx, 6
mov rcx, rbx
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.operator_delete_void__unsigned_long_long_