Function at 0x140013880
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], r9
mov dword [rsp + 0x10], edx
mov qword [r11 + 8], rcx
push rbp
push rsi
push r13
mov rbp, rsp
sub rsp, 0x80
mov rsi, rcx
mov r13, r8
mov rcx, qword [rbp + 0x70]
lea rax, [rcx - 4]
cmp rax, 0xc
ja 0x140013d18
test cl, 1
jne 0x140013d18
mov qword [r11 + 0x18], rbx
mov rbx, qword [rbp + 0x40]
lea rax, [rbx - 7]
cmp rax, 6
ja 0x140013d11
mov qword [r11 - 0x20], rdi
lea eax, [rcx + 0xfe]
shl al, 2
lea rcx, [rbp - 0x4f]
mov qword [r11 - 0x38], r15
and al, 0xf8
mov r15d, recv
mov r8, rbx
sub r15b, bl
mov rdx, r9
lea edi, [r15 - 1]
or al, dil
or al, 0x40
mov byte [rbp - 0x50], al
call fcn.140035790
xor dl, dl
mov r8, r13
test r15b, r15b
je 0x14001393d
nop word [rax + rax]
movzx eax, dl
mov ecx, recv
sub ecx, eax
inc dl
movsxd rax, ecx
mov byte [rbp + rax - 0x50], r8b
shr r8, 8
cmp dl, r15b
jb 0x140013920
test r8, r8
je 0x14001394c
mov eax, 0xfffffff3
jmp 0x140013cf3
xor eax, eax
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x68], r14
xor r12d, r12d
mov r14d, reloc.WS2_32.dll_recv
mov qword [rbp - 0x40], rax
mov ecx, r12d
mov qword [rbp - 0x38], rax
mov edx, r14d
nop
movzx eax, byte [rbp + rcx - 0x50]
xor byte [rbp + rcx - 0x40], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140013970
lea rax, [rbp + 0x50]
mov r8, r14
lea r9, [rbp - 0x40]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x40]
mov rcx, rsi
call fcn.1400140b0
test eax, eax
jne 0x140013ce9
mov rcx, qword [rbp + 0x48]
xor eax, eax
mov qword [rbp - 0x48], rax
mov rdx, r14
mov qword [rbp - 0x50], rax
mov word [rbp - 0x50], 0xd00
mov eax, dword [rcx + 8]
movsd xmm0, qword [rcx]
mov dword [rbp - 0x46], eax
movzx eax, byte [rcx + 0xc]
mov rcx, r12
mov byte [rbp - 0x42], al
movsd qword [rbp - 0x4e], xmm0
nop word [rax + rax]
movzx eax, byte [rbp + rcx - 0x50]
xor byte [rbp + rcx - 0x40], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1400139e0
lea rax, [rbp + 0x50]
mov r8, r14
lea r9, [rbp - 0x40]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x40]
mov rcx, rsi
call fcn.1400140b0
test eax, eax
jne 0x140013ce9
mov rdx, qword [rbp + 0x38]
lea rcx, [rbp - 0x2f]
mov r8, rbx
mov byte [rbp - 0x30], dil
call fcn.140035790
lea rcx, [rbp - 0x2f]
movzx r8d, r15b
add rcx, rbx
xor edx, edx
call fcn.140036450
mov rsi, qword [rbp + 0x58]
mov rdi, qword [rbp + 0x60]
mov byte [rbp - 0x21], 1
test r13, r13
je 0x140013c74
nop dword [rax]
nop word [rax + rax]
cmp r13, r14
mov rbx, r13
cmova rbx, r14
cmp dword [rbp + 0x28], r12d
jne 0x140013ac8
xor eax, eax
lea rcx, [rbp - 0x50]
mov r8, rbx
mov qword [rbp - 0x50], rax
mov rdx, rsi
mov qword [rbp - 0x48], rax
call fcn.140035790
mov rcx, r12
mov rdx, r14
nop
movzx eax, byte [rbp + rcx - 0x50]
xor byte [rbp + rcx - 0x40], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140013a90
mov rcx, qword [rbp + 0x20]
lea rax, [rbp + 0x50]
lea r9, [rbp - 0x40]
mov qword [rsp + 0x20], rax
mov r8, r14
lea rdx, [rbp - 0x40]
call fcn.1400140b0
test eax, eax
jne 0x140013ce9
mov rcx, qword [rbp + 0x20]
lea rax, [rbp + 0x50]
lea r9, [rbp - 0x50]
mov qword [rsp + 0x20], rax
mov r8, r14
lea rdx, [rbp - 0x30]
call fcn.1400140b0
test eax, eax
jne 0x140013ce9
xor dl, dl
cmp rbx, 0x40
jb 0x140013bb1
lea eax, [rbx - 1]
movzx ecx, al
lea rax, [rbp - 0x50]
add rax, rcx
lea r8, [rcx + rdi]
cmp rdi, rax
ja 0x140013b1c
lea rax, [rbp - 0x50]
cmp r8, rax
jae 0x140013bb1
lea rax, [rcx + rsi]
cmp rdi, rax
ja 0x140013b2e
cmp r8, rsi
jae 0x140013bb1
mov r8, rbx
and r8, 0xffffffffffffffc0
mov rax, r12
mov r9b, 0x20
nop dword [rax + rax]
movdqu xmm0, xmmword [rbp + rax - 0x50]
add dl, 0x40
movdqu xmm1, xmmword [rax + rsi]
pxor xmm1, xmm0
movdqu xmmword [rax + rdi], xmm1
lea eax, [r9 - 0x10]
movzx ecx, al
movzx eax, r9b
movdqu xmm0, xmmword [rbp + rcx - 0x50]
movdqu xmm1, xmmword [rcx + rsi]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rbp + rax - 0x50]
movdqu xmmword [rcx + rdi], xmm1
movdqu xmm1, xmmword [rax + rsi]
pxor xmm1, xmm0
movdqu xmmword [rax + rdi], xmm1
lea eax, [r9 + 0x10]
add r9b, 0x40
movzx ecx, al
movzx eax, dl
movdqu xmm1, xmmword [rcx + rsi]
movdqu xmm0, xmmword [rbp + rcx - 0x50]
pxor xmm1, xmm0
movdqu xmmword [rcx + rdi], xmm1
cmp rax, r8
jb 0x140013b40
movzx eax, dl
cmp rax, rbx
jae 0x140013bd5
nop dword [rax]
movzx ecx, byte [rax + rsi]
inc dl
xor cl, byte [rbp + rax - 0x50]
mov byte [rax + rdi], cl
movzx eax, dl
cmp rax, rbx
jb 0x140013bc0
cmp dword [rbp + 0x28], 1
jne 0x140013c38
xor eax, eax
lea rcx, [rbp - 0x50]
mov r8, rbx
mov qword [rbp - 0x50], rax
mov rdx, rdi
mov qword [rbp - 0x48], rax
call fcn.140035790
mov rcx, r12
mov rdx, r14
nop word [rax + rax]
movzx eax, byte [rbp + rcx - 0x50]
xor byte [rbp + rcx - 0x40], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140013c00
mov rcx, qword [rbp + 0x20]
lea rax, [rbp + 0x50]
lea r9, [rbp - 0x40]
mov qword [rsp + 0x20], rax
mov r8, r14
lea rdx, [rbp - 0x40]
call fcn.1400140b0
test eax, eax
jne 0x140013ce9
add rdi, rbx
add rsi, rbx
sub r13, rbx
xor dl, dl
test r15b, r15b
je 0x140013c6b
nop dword [rax + rax]
movzx eax, dl
mov ecx, recv
sub ecx, eax
movsxd rax, ecx
add byte [rbp + rax - 0x30], 1
jne 0x140013c6b
inc dl
cmp dl, r15b
jb 0x140013c50
test r13, r13
jne 0x140013a60
xor dl, dl
test r15b, r15b
je 0x140013c99
nop dword [rax + rax]
movzx eax, dl
mov ecx, recv
sub ecx, eax
inc dl
movsxd rax, ecx
mov byte [rbp + rax - 0x30], r12b
cmp dl, r15b
jb 0x140013c80
mov rcx, qword [rbp + 0x20]
lea rax, [rbp + 0x50]
lea r9, [rbp - 0x50]
mov qword [rsp + 0x20], rax
mov r8, r14
lea rdx, [rbp - 0x30]
call fcn.1400140b0
test eax, eax
jne 0x140013ce9
nop word [rax + rax]
movzx eax, byte [rbp + r12 - 0x50]
xor byte [rbp + r12 - 0x40], al
lea r12, [r12 + 1]
sub r14, 1
jne 0x140013cc0
mov r8, qword [rbp + 0x70]
lea rdx, [rbp - 0x40]
mov rcx, qword [rbp + 0x68]
call fcn.140035790
xor eax, eax
mov r14, qword [rsp + 0x68]
mov r12, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
mov r15, qword [rsp + 0x60]
mov rbx, qword [rsp + 0xb0]
add rsp, 0x80
pop r13
pop rsi
pop rbp
ret
mov eax, 0xfffffff3
jmp 0x140013cfd
mov eax, 0xfffffff3
add rsp, 0x80
pop r13
pop rsi
pop rbp
ret