Function at 0x14005f570
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r13
mov rbp, rsp
sub rsp, 0x68
mov r10, r8
mov r13d, edx
mov rdi, rcx
test dl, 0xf
je 0x14005f5a4
mov esi, 1
mov eax, esi
add rsp, 0x68
pop r13
pop rdi
pop rsi
pop rbp
ret
lea eax, [r9 - 0x10]
test eax, 0xffffffe7
jne 0x14005f8f8
cmp r9d, 0x28
je 0x14005f8f8
cmp qword [rbp + 0x60], 0
jne 0x14005f5db
cmp dword [rbp + 0x58], r13d
jae 0x14005f5f4
mov esi, 3
mov eax, esi
add rsp, 0x68
pop r13
pop rdi
pop rsi
pop rbp
ret
lea eax, [rdx - 0x10]
cmp dword [rbp + 0x58], eax
jae 0x14005f5f4
mov esi, 3
mov eax, esi
add rsp, 0x68
pop r13
pop rdi
pop rsi
pop rbp
ret
mov qword [rsp + 0xa0], rbx
lea rcx, [rbp - 0x30]
mov qword [rsp + 0x60], r12
mov r8d, r9d
mov qword [rsp + 0x58], r14
mov rdx, r10
mov qword [rsp + 0x50], r15
call fcn.14005e920
mov r14, qword [rbp + 0x50]
lea rcx, [rbp - 0x30]
mov r8, r14
mov rdx, rdi
call fcn.14005eee0
mov r8, qword [rbp + 0x48]
xor esi, esi
lea r12d, [rsi + 0x10]
test r8, r8
je 0x14005f685
lea rax, [r8 + 0xf]
lea rcx, [r14 + 0xf]
cmp r14, rax
ja 0x14005f673
cmp rcx, r8
jb 0x14005f673
sub r8, r14
lea rax, [rsi + r14]
mov edx, r12d
sub rdx, rsi
nop dword [rax + rax]
movzx ecx, byte [rax + r8]
xor byte [rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x14005f660
jmp 0x14005f685
movdqu xmm0, xmmword [r14]
movdqu xmm1, xmmword [r8]
xorps xmm1, xmm0
movdqu xmmword [r14], xmm1
mov r15d, r13d
shr r15d, 4
dec r15d
cmp r15d, 1
jbe 0x14005f746
mov rsi, qword [rbp + 0x28]
lea r13d, [r15 - 1]
movsxd rax, r12d
lea rcx, [rbp - 0x30]
lea rdi, [rax + r14]
lea rbx, [rax + rsi]
mov r8, rdi
mov rdx, rbx
call fcn.14005eee0
movzx eax, byte [rbx - 0x10]
add r12d, 0x10
xor byte [rdi], al
movzx eax, byte [rbx - 0xf]
xor byte [rdi + 1], al
movzx eax, byte [rbx - 0xe]
xor byte [rdi + 2], al
movzx eax, byte [rbx - 0xd]
xor byte [rdi + 3], al
movzx eax, byte [rbx - 0xc]
xor byte [rdi + 4], al
movzx eax, byte [rbx - 0xb]
xor byte [rdi + 5], al
movzx eax, byte [rbx - 0xa]
xor byte [rdi + 6], al
movzx eax, byte [rbx - 9]
xor byte [rdi + 7], al
movzx eax, byte [rbx - 8]
xor byte [rdi + 8], al
movzx eax, byte [rbx - 7]
xor byte [rdi + 9], al
movzx eax, byte [rbx - 6]
xor byte [rdi + 0xa], al
movzx eax, byte [rbx - 5]
xor byte [rdi + 0xb], al
movzx eax, byte [rbx - 4]
xor byte [rdi + 0xc], al
movzx eax, byte [rbx - 3]
xor byte [rdi + 0xd], al
movzx eax, byte [rbx - 2]
xor byte [rdi + 0xe], al
movzx eax, byte [rbx - 1]
xor byte [rdi + 0xf], al
sub r13, 1
jne 0x14005f6a1
mov r13d, dword [rbp + 0x30]
xor esi, esi
mov rdi, qword [rbp + 0x28]
lea r12d, [rsi + 0x10]
shl r15d, 4
xorps xmm0, xmm0
mov ebx, r15d
mov r15, qword [rsp + 0x50]
movups xmmword [rbp - 0x40], xmm0
cmp r13d, 0x10
jbe 0x14005f800
lea rdx, [rbx + rdi]
lea r8, [rbp - 0x40]
lea rcx, [rbp - 0x30]
call fcn.14005eee0
lea eax, [rbx - 0x10]
mov ecx, eax
movzx eax, byte [rax + rdi]
xor byte [rbp - 0x40], al
movzx eax, byte [rcx + rdi + 1]
xor byte [rbp - 0x3f], al
movzx eax, byte [rcx + rdi + 2]
xor byte [rbp - 0x3e], al
movzx eax, byte [rcx + rdi + 3]
xor byte [rbp - 0x3d], al
movzx eax, byte [rcx + rdi + 4]
xor byte [rbp - 0x3c], al
movzx eax, byte [rcx + rdi + 5]
xor byte [rbp - 0x3b], al
movzx eax, byte [rcx + rdi + 6]
xor byte [rbp - 0x3a], al
movzx eax, byte [rcx + rdi + 7]
xor byte [rbp - 0x39], al
movzx eax, byte [rcx + rdi + 8]
xor byte [rbp - 0x38], al
movzx eax, byte [rcx + rdi + 9]
xor byte [rbp - 0x37], al
movzx eax, byte [rcx + rdi + 0xa]
xor byte [rbp - 0x36], al
movzx eax, byte [rcx + rdi + 0xb]
xor byte [rbp - 0x35], al
movzx eax, byte [rcx + rdi + 0xc]
xor byte [rbp - 0x34], al
movzx eax, byte [rcx + rdi + 0xd]
xor byte [rbp - 0x33], al
movzx eax, byte [rcx + rdi + 0xe]
xor byte [rbp - 0x32], al
movzx eax, byte [rbp - 0x31]
xor al, byte [rcx + rdi + 0xf]
mov edi, dword [rbp + 0x58]
mov byte [rbp - 0x31], al
jmp 0x14005f823
mov r8d, r13d
lea rcx, [rbp - 0x40]
mov rdx, r14
call sub.VCRUNTIME140.dll_memcpy
mov edi, dword [rbp + 0x58]
xor edx, edx
mov r8d, edi
mov rcx, r14
call sub.VCRUNTIME140.dll_memset
movzx eax, byte [rbp - 0x31]
mov rcx, qword [rbp + 0x60]
mov rdx, rbx
test rcx, rcx
je 0x14005f890
movzx r8d, al
sub r12d, r8d
mov dword [rcx], r8d
cmp r8d, 0x10
ja 0x14005f889
mov edx, esi
test al, al
je 0x14005f868
nop word [rax + rax]
mov eax, send
sub eax, edx
movzx ecx, byte [rbp + rax - 0x40]
cmp ecx, r8d
jne 0x14005f889
inc edx
cmp edx, r8d
jb 0x14005f850
lea eax, [rbx + r12]
cmp edi, eax
jb 0x14005f882
mov r8d, r12d
lea rcx, [r14 + rbx]
lea rdx, [rbp - 0x40]
call sub.VCRUNTIME140.dll_memcpy
jmp 0x14005f899
mov esi, 3
jmp 0x14005f899
mov esi, 4
jmp 0x14005f899
movups xmm0, xmmword [rbp - 0x40]
movups xmmword [rdx + r14], xmm0
mov rcx, qword [rbp - 0x30]
mov r14, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov rbx, qword [rsp + 0xa0]
test rcx, rcx
je 0x14005f8fd
mov rdx, qword [rbp - 0x20]
mov rax, rcx
sub rdx, rcx
and rdx, 0xfffffffffffffff0
cmp rdx, 0x1000
jb 0x14005f8e7
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14005f8e7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400b0be8
mov eax, esi
add rsp, 0x68
pop r13
pop rdi
pop rsi
pop rbp
ret
mov esi, 2
mov eax, esi
add rsp, 0x68
pop r13
pop rdi
pop rsi
pop rbp
ret