Function at 0x1401507e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rax, qword [0x140264330]
xor rax, rsp
mov qword [rsp + 0x48], rax
movzx ebp, byte [rcx]
mov r15, qword [rcx + 0x28]
mov r12, qword [rcx + 0x30]
mov rsi, r9
mov r14, r8
mov rdi, rdx
mov rbx, rcx
mov byte [rsp + 0x20], bpl
mov qword [rsp + 0x28], r15
test bpl, 0x40
jne 0x140150838
lea rdx, [rcx + 0x10]
mov r8, r12
call r15
inc qword [rbx + 0x20]
movzx eax, bpl
mov r8d, reloc.WS2_32.dll_ntohs
xor ebp, ebp
and eax, 7
mov r13d, r8d
mov ecx, ebp
sub r13d, eax
mov byte [rbx], al
mov dword [rsp + 0x24], r13d
cmp r13d, r8d
jae 0x140150886
mov edx, r13d
add rdx, rbx
sub r8d, r13d
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx]
mov byte [rdx], bpl
lea rdx, [rdx + 1]
or rcx, rax
shl rcx, 8
dec r8
jne 0x140150870
movzx eax, byte [rbx + 0xf]
mov byte [rbx + 0xf], 1
or rcx, rax
cmp rcx, rsi
je 0x14015089e
or eax, 0xffffffff
jmp 0x140150a66
lea rax, [rsi + 0xf]
or rax, 8
shr rax, 3
add qword [rbx + 0x20], rax
movabs rax, 0x2000000000000000
cmp qword [rbx + 0x20], rax
jbe 0x1401508c8
mov eax, 0xfffffffe
jmp 0x140150a66
cmp rsi, 0x10
jb 0x14015095e
mov r13, qword [rsp + 0x28]
mov r15, rsi
mov rbp, r12
shr r15, 4
imul rax, r15, 0xfffffffffffffff0
add rsi, rax
nop dword [rax + rax]
mov rax, qword [rdi]
lea rdx, [rbx + 0x10]
lea rcx, [rbx + 0x10]
xor qword [rbx + 0x10], rax
mov rax, qword [rdi + 8]
mov r8, rbp
xor qword [rbx + 0x18], rax
call r13
lea rdx, [rsp + 0x38]
mov r8, rbp
mov rcx, rbx
call r13
mov eax, 8
dec eax
inc byte [rax + rbx + 8]
jne 0x14015092c
test eax, eax
jne 0x140150920
mov rax, qword [rdi]
add r14, 0x10
add rdi, 0x10
xor rax, qword [rsp + 0x38]
mov qword [r14 - 0x10], rax
mov rax, qword [rsp + 0x40]
xor rax, qword [rdi - 8]
mov qword [r14 - 8], rax
dec r15
jne 0x1401508f0
mov r13d, dword [rsp + 0x24]
mov r15, qword [rsp + 0x28]
xor ebp, ebp
test rsi, rsi
je 0x140150a25
mov edx, ebp
mov rcx, rbp
nop dword [rax]
movzx eax, byte [rcx + rdi]
inc edx
xor byte [rcx + rbx + 0x10], al
mov ecx, edx
cmp rcx, rsi
jb 0x140150970
lea rcx, [rbx + 0x10]
mov r8, r12
mov rdx, rcx
call r15
lea rdx, [rsp + 0x38]
mov r8, r12
mov rcx, rbx
call r15
mov edx, ebp
cmp rsi, 0x10
jb 0x1401509ff
lea eax, [rsi - 1]
mov ecx, eax
lea r8, [rax + r14]
lea rax, [rsp + 0x38]
add rax, rcx
cmp r14, rax
ja 0x1401509c4
lea rax, [rsp + 0x38]
cmp r8, rax
jae 0x1401509ff
lea rax, [rcx + rdi]
cmp r14, rax
ja 0x1401509d2
cmp r8, rdi
jae 0x1401509ff
mov rax, rsi
mov rcx, rsi
and eax, 0xf
sub rcx, rax
nop
movdqu xmm1, xmmword [rdi + rbp]
movdqu xmm0, xmmword [rsp + rbp + 0x38]
add edx, 0x10
pxor xmm1, xmm0
movdqu xmmword [r14 + rbp], xmm1
mov ebp, edx
cmp rbp, rcx
jb 0x1401509e0
mov ecx, edx
cmp rcx, rsi
jae 0x140150a25
nop word [rax + rax]
movzx eax, byte [rcx + rdi]
inc edx
xor al, byte [rsp + rcx + 0x38]
mov byte [rcx + r14], al
mov ecx, edx
cmp rcx, rsi
jb 0x140150a10
cmp r13d, 0x10
jae 0x140150a3d
mov ecx, reloc.WS2_32.dll_recv
mov edi, r13d
add rdi, rbx
sub ecx, r13d
xor eax, eax
rep stosb byte [rdi], al
lea rdx, [rsp + 0x38]
mov r8, r12
mov rcx, rbx
call r15
mov rax, qword [rsp + 0x38]
xor qword [rbx + 0x10], rax
mov rax, qword [rsp + 0x40]
xor qword [rbx + 0x18], rax
movzx eax, byte [rsp + 0x20]
mov byte [rbx], al
xor eax, eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1401bb2c0
mov rbx, qword [rsp + 0x98]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret