Function at 0x140260160
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push r15
sub rsp, 0x78
mov rax, qword [0x14039e2e8]
xor rax, rsp
mov qword [rsp + 0x40], rax
cmp dword [rcx], 0
mov rsi, r9
mov r15d, r8d
mov qword [rsp + 0x28], rcx
mov rbx, rdx
mov rbp, rcx
jne 0x1402605c4
cmp dword [rcx + 8], 0
jne 0x1402605c4
test rdx, rdx
je 0x1402605bd
test r8d, r8d
jle 0x1402605bd
mov ecx, dword [rcx + 4]
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x58], r14
mov r14d, r8d
shr r14d, 4
test ecx, ecx
je 0x14026053c
cmp ecx, 1
je 0x1402601f6
mov eax, 0xffffffff
mov rdi, qword [rsp + 0x70]
mov r14, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1402654f0
add rsp, 0x78
pop r15
pop rsi
pop rbp
pop rbx
ret
lea rdx, [rbp + 0xc]
mov edi, r14d
test r14d, r14d
je 0x140260249
mov eax, dword [rbx]
mov r8, rsi
xor eax, dword [rdx]
mov rcx, rbp
mov dword [rsp + 0x30], eax
mov eax, dword [rbx + 4]
xor eax, dword [rdx + 4]
mov dword [rsp + 0x34], eax
mov eax, dword [rbx + 8]
xor eax, dword [rdx + 8]
mov dword [rsp + 0x38], eax
mov eax, dword [rbx + 0xc]
xor eax, dword [rdx + 0xc]
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x3c], eax
call fcn.14025f5b0
mov rdx, rsi
add rbx, 0x10
add rsi, 0x10
dec edi
test edi, edi
jg 0x140260202
shl r14d, 4
xor r9d, r9d
mov r11d, r14d
sub r11d, r15d
mov r15d, reloc.WS2_32.dll_recv
add r11d, 0x10
mov r8d, r15d
sub r8d, r11d
test r8d, r8d
jle 0x1402603fb
cmp r8d, 8
jb 0x1402603fb
lea eax, [r8 - 1]
movsxd rcx, eax
lea r10, [rsp + 0x30]
add r10, rcx
lea rdi, [rsp + 0x30]
lea rax, [rcx + rdx]
cmp rdi, rax
ja 0x14026029f
cmp r10, rdx
jae 0x1402603fb
lea rax, [rcx + rbx]
lea rcx, [rsp + 0x30]
cmp rcx, rax
ja 0x1402602b6
cmp r10, rbx
jae 0x1402603fb
mov qword [rsp + 0x68], r12
cmp r8d, 0x40
jb 0x1402603a1
mov ecx, r8d
mov qword [rsp + 0x60], r13
and ecx, 0x8000003f
jge 0x1402602dc
dec ecx
or ecx, 0xffffffc0
inc ecx
mov eax, r8d
sub eax, ecx
mov r10, rbx
cdqe
lea rdi, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r12, [rsp + 0x40]
sub r10, rdx
lea r13, [rsp + 0x50]
sub rdi, rdx
sub r12, rdx
lea rcx, [rdx + 0x10]
sub r13, rdx
mov rbp, 0xfffffffffffffff0
sub rbp, rdx
nop dword [rax]
nop dword [rax + rax]
movdqu xmm0, xmmword [rcx - 0x10]
add r9d, 0x40
movdqu xmm1, xmmword [r10 + rcx - 0x10]
movdqu xmm2, xmmword [rcx + r10]
lea rcx, [rcx + 0x40]
pxor xmm1, xmm0
lea rax, [rcx + rbp]
movdqu xmm0, xmmword [rcx - 0x40]
movdqu xmmword [rdi + rcx - 0x50], xmm1
pxor xmm2, xmm0
movdqu xmm0, xmmword [rcx - 0x30]
movdqu xmm1, xmmword [r10 + rcx - 0x30]
movdqu xmmword [rcx + rdi - 0x40], xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rcx - 0x20]
movdqu xmm2, xmmword [r10 + rcx - 0x20]
movdqu xmmword [r12 + rcx - 0x40], xmm1
pxor xmm2, xmm0
movdqu xmmword [rcx + r13 - 0x40], xmm2
cmp rax, qword [rsp + 0x20]
jl 0x140260320
mov r13, qword [rsp + 0x60]
mov eax, r8d
mov rbp, qword [rsp + 0x28]
and al, 0x3f
cmp al, 8
jb 0x1402603f6
jmp 0x1402603a7
mov r10, rbx
sub r10, rdx
mov eax, r8d
and eax, 0x80000007
jge 0x1402603b8
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, r8d
lea rdi, [rsp + 0x30]
sub ecx, eax
movsxd rax, r9d
movsxd r12, ecx
sub rdi, rdx
lea rcx, [rax + rdx]
nop
movq xmm1, qword [rcx + r10]
add r9d, 8
movq xmm0, qword [rcx]
pxor xmm1, xmm0
movq qword [rcx + rdi], xmm1
add rcx, 8
mov rax, rcx
sub rax, rdx
cmp rax, r12
jl 0x1402603d0
mov r12, qword [rsp + 0x68]
movsxd rax, r9d
lea r9, [rsp + 0x30]
sub r9, rdx
movsxd rdi, r8d
cmp rax, rdi
jge 0x140260434
sub rbx, rdx
lea rcx, [rax + rdx]
mov r10, rdi
sub r10, rax
nop dword [rax + rax]
movzx eax, byte [rcx + rbx]
xor al, byte [rcx]
mov byte [rcx + r9], al
lea rcx, [rcx + 1]
sub r10, 1
jne 0x140260420
cmp r8d, r15d
jge 0x140260501
cmp r11d, 0x40
jb 0x140260501
lea rcx, [rsp + 0x30]
add rcx, rdi
lea rax, [rdx + 0xf]
lea r10, [rdi + rdx]
cmp rcx, rax
ja 0x14026046a
lea rax, [rsp + 0x3f]
cmp rax, r10
jae 0x140260501
movsx eax, r11b
movd xmm2, eax
punpcklbw xmm2, xmm2
punpcklwd xmm2, xmm2
pshufd xmm2, xmm2, 0
mov eax, r11d
and eax, 0x8000003f
jge 0x140260490
dec eax
or eax, 0xffffffc0
inc eax
lea rcx, [r10 + 0x20]
sub r15d, eax
lea r10, [rsp + 0x40]
movsxd rdi, r15d
sub r10, rdx
mov rbx, 0xffffffffffffffe0
sub rbx, rdx
nop dword [rax]
movdqu xmm0, xmmword [rcx - 0x20]
add r8d, 0x40
movdqu xmm1, xmmword [rcx - 0x10]
lea rcx, [rcx + 0x40]
pxor xmm0, xmm2
lea rax, [rcx + rbx]
pxor xmm1, xmm2
movdqu xmmword [r9 + rcx - 0x60], xmm0
movdqu xmm0, xmmword [rcx - 0x40]
movdqu xmmword [r10 + rcx - 0x60], xmm1
pxor xmm0, xmm2
movdqu xmm1, xmmword [rcx - 0x30]
movdqu xmmword [rcx + r9 - 0x40], xmm0
pxor xmm1, xmm2
movdqu xmmword [rcx + r10 - 0x40], xmm1
cmp rax, rdi
jl 0x1402604b0
movsxd r8, r8d
cmp r8, 0x10
jge 0x1402605a4
lea rax, [rsp + 0x30]
sub rdx, rax
nop word [rax + rax]
lea rcx, [rsp + 0x30]
movzx eax, r11b
add rcx, r8
inc r8
xor al, byte [rcx + rdx]
mov byte [rcx], al
cmp r8, 0x10
jl 0x140260520
jmp 0x1402605a4
mov edi, r14d
test r14d, r14d
je 0x14026056c
nop dword [rax]
nop dword [rax + rax]
mov r8, rsi
mov rdx, rbx
mov rcx, rbp
call fcn.14025f5b0
add rbx, 0x10
add rsi, 0x10
dec edi
test edi, edi
jg 0x140260550
shl r14d, 4
lea rcx, [rsp + 0x30]
mov edi, r14d
mov rdx, rbx
sub edi, r15d
mov r15d, reloc.WS2_32.dll_recv
add edi, 0x10
sub r15d, edi
movsxd r8, r15d
call sub.VCRUNTIME140.dll_memcpy
movsxd r8, edi
lea rcx, [rsp + 0x40]
sub rcx, r8
mov edx, edi
call sub.VCRUNTIME140.dll_memset
mov r8, rsi
lea rdx, [rsp + 0x30]
mov rcx, rbp
call fcn.14025f5b0
lea eax, [r14 + 0x10]
jmp 0x1402601d5
xor eax, eax
jmp 0x1402601df
mov eax, 0xfffffffb
jmp 0x1402601df