Function at 0x14000dfa4
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
movsxd rbp, dword [rsp + 0x90]
mov rsi, r9
movsxd r14, dword [rsp + 0x88]
mov r9d, r8d
mov r15, qword [rsp + 0x80]
xor r8d, r8d
mov rdi, rdx
mov r11, rcx
mov rbx, rbp
mov r10, r14
test r9d, r9d
je 0x14000e4e3
sub r9d, 1
je 0x14000e344
sub r9d, 1
je 0x14000e330
sub r9d, 1
je 0x14000e09f
cmp r9d, 1
jne 0x14000e4f1
test ebp, ebp
jle 0x14000e046
mov rdx, rsi
mov r9, rdi
sub rdx, r15
mov rcx, r15
sub r9, r15
mov r8d, ebp
mov al, byte [rdx + rcx]
add al, byte [rcx]
mov byte [r9 + rcx], al
inc rcx
sub rbx, 1
jne 0x14000e034
cmp ebp, 2
jle 0x14000e07c
cmp r14d, 4
jle 0x14000e07c
movsxd rax, r8d
lea ebx, [r14 - 3]
cmp ebp, 4
mov dword [rsp + 0x20], ebp
cmove ebx, r14d
mov r9d, ebx
lea rdx, [rax + rsi]
sub r9d, r8d
lea rcx, [rax + rdi]
lea r8, [rax + r15]
call qword [r11 + reloc.WS2_32.dll_htonl]
mov r8d, ebx
movsxd rax, r8d
sub r14d, r8d
mov r9d, r14d
mov dword [rsp + 0x20], ebp
lea r8, [rax + r15]
lea rdx, [rax + rsi]
lea rcx, [rax + rdi]
call fcn.14000d05c
jmp 0x14000e4f1
mov r9, r15
mov r11, rdi
sub r9, rsi
sub r11, rsi
test ebp, ebp
jle 0x14000e0cd
mov rcx, rsi
mov rdx, rbx
mov r8d, ebp
mov al, byte [r9 + rcx]
shr al, 1
add al, byte [rcx]
mov byte [r11 + rcx], al
inc rcx
sub rdx, 1
jne 0x14000e0b8
movsxd rcx, r8d
cmp ebp, 1
jne 0x14000e11b
movzx r12d, byte [rdi]
lea eax, [r14 - 1]
cdqe
cmp rcx, rax
jg 0x14000e2ee
sub rax, rcx
lea rdx, [rcx + rsi]
lea rbp, [rax + 1]
add r8d, ebp
movzx ecx, byte [r9 + rdx]
movzx eax, byte [rdx]
add ecx, r12d
sar ecx, 1
add ecx, eax
movzx r12d, cl
mov byte [r11 + rdx], r12b
inc rdx
sub rbp, 1
jne 0x14000e0f6
jmp 0x14000e2ee
cmp ebp, 2
jne 0x14000e18b
movzx r12d, byte [rdi]
lea eax, [r14 - 2]
movzx r13d, byte [rdi + 1]
cdqe
cmp rcx, rax
jg 0x14000e2ee
sub rax, rcx
lea rdx, [rcx + rsi + 1]
shr rax, 1
lea rbp, [rax + 1]
lea r8d, [r8 + rbp*2]
movzx eax, byte [rdx - 1]
movzx ecx, byte [r9 + rdx - 1]
add ecx, r12d
sar ecx, 1
add ecx, eax
movzx r12d, cl
mov byte [r11 + rdx - 1], r12b
movzx ecx, byte [rdx + r9]
movzx eax, byte [rdx]
add ecx, r13d
sar ecx, 1
add ecx, eax
movzx r13d, cl
mov byte [rdx + r11], r13b
lea rdx, [rdx + 2]
sub rbp, 1
jne 0x14000e14b
jmp 0x14000e2ee
cmp ebp, 3
jne 0x14000e22f
movzx ebp, byte [rdi]
lea eax, [r14 - 3]
movzx r12d, byte [rdi + 1]
movzx r13d, byte [rdi + 2]
movsxd rdx, eax
cmp rcx, rdx
jg 0x14000e2ee
sub rdx, rcx
lea r14, [rcx + rsi + 1]
movabs rax, 0xaaaaaaaaaaaaaaab
mul rdx
shr rdx, 1
inc rdx
lea eax, [rdx + r8]
lea r8d, [rax + rdx*2]
movzx eax, byte [r14 - 1]
movzx ecx, byte [r14 + r9 - 1]
add ecx, ebp
sar ecx, 1
add ecx, eax
movzx ebp, cl
mov byte [r14 + r11 - 1], bpl
movzx eax, byte [r14]
movzx ecx, byte [r14 + r9]
add ecx, r12d
sar ecx, 1
add ecx, eax
movzx r12d, cl
mov byte [r14 + r11], r12b
movzx ecx, byte [r9 + r14 + 1]
movzx eax, byte [r14 + 1]
lea r14, [r14 + 3]
add ecx, r13d
sar ecx, 1
add ecx, eax
movzx r13d, cl
mov byte [r11 + r14 - 2], r13b
sub rdx, 1
jne 0x14000e1d4
jmp 0x14000e2ee
cmp ebp, 4
jne 0x14000e2ee
movzx eax, byte [rdi + 3]
movzx ebp, byte [rdi]
movzx r12d, byte [rdi + 1]
movzx r13d, byte [rdi + 2]
mov dword [rsp + 0x70], eax
lea eax, [r14 - 4]
movsxd rdx, eax
cmp rcx, rdx
jg 0x14000e2ee
mov r15d, dword [rsp + 0x70]
lea r14, [rcx + rsi + 1]
sub rdx, rcx
shr rdx, 2
inc rdx
lea r8d, [r8 + rdx*4]
movzx eax, byte [r14 - 1]
movzx ecx, byte [r14 + r9 - 1]
add ecx, ebp
sar ecx, 1
add ecx, eax
movzx ebp, cl
mov byte [r14 + r11 - 1], bpl
movzx eax, byte [r14]
movzx ecx, byte [r14 + r9]
add ecx, r12d
sar ecx, 1
add ecx, eax
movzx r12d, cl
mov byte [r14 + r11], r12b
movzx eax, byte [r14 + 1]
movzx ecx, byte [r14 + r9 + 1]
lea r14, [r14 + 4]
add ecx, r13d
sar ecx, 1
add ecx, eax
movzx r13d, cl
mov byte [r14 + r11 - 3], r13b
movzx ecx, byte [r14 + r9 - 2]
movzx eax, byte [r14 - 2]
add ecx, r15d
sar ecx, 1
add ecx, eax
movzx r15d, cl
mov byte [r14 + r11 - 2], r15b
sub rdx, 1
jne 0x14000e275
mov r15, qword [rsp + 0x80]
movsxd rax, r8d
cmp rax, r10
jge 0x14000e4f1
mov r8, rdi
lea rdx, [rax + r15]
sub r8, rbx
sub rsi, r15
sub r8, r15
sub rdi, r15
sub r10, rax
movzx ecx, byte [r8 + rdx]
movzx eax, byte [rdx]
add ecx, eax
shr ecx, 1
add cl, byte [rdx + rsi]
mov byte [rdx + rdi], cl
inc rdx
sub r10, 1
jne 0x14000e310
jmp 0x14000e4f1
mov r9d, r14d
mov r8, r15
mov rdx, rsi
mov rcx, rdi
call qword [r11]
jmp 0x14000e4f1
mov r9, rsi
sub r9, rdi
test ebp, ebp
jle 0x14000e366
mov rcx, rdi
mov rdx, rbx
mov r8d, ebp
mov al, byte [rcx + r9]
mov byte [rcx], al
inc rcx
sub rdx, 1
jne 0x14000e357
movsxd rcx, r8d
cmp ebp, 4
jne 0x14000e3b7
mov r8d, dword [rdi]
cmp rcx, r10
jge 0x14000e4f1
lea r11, [rcx + rdi]
mov esi, 0x7f7f7f7f
mov edx, dword [r11 + r9]
mov eax, r8d
and eax, esi
mov ecx, edx
xor edx, r8d
and ecx, esi
add ecx, eax
and edx, 0x80808080
mov r8d, ecx
xor r8d, edx
mov dword [r11], r8d
add r11, rbx
mov rax, r11
sub rax, rdi
cmp rax, r10
jl 0x14000e383
jmp 0x14000e4f1
cmp ebp, 1
jne 0x14000e3f4
movzx ebp, byte [rdi]
lea eax, [r14 - 1]
movsxd r11, eax
cmp rcx, r11
jg 0x14000e4b5
sub r11, rcx
lea rdx, [rcx + rdi]
inc r11
add r8d, r11d
movzx eax, byte [rdx + r9]
add ebp, eax
mov byte [rdx], bpl
inc rdx
sub r11, 1
jne 0x14000e3dc
jmp 0x14000e4b5
cmp ebp, 2
jne 0x14000e446
movzx ebp, byte [rdi]
lea eax, [r14 - 2]
movzx r15d, byte [rdi + 1]
movsxd r11, eax
cmp rcx, r11
jg 0x14000e4b5
sub r11, rcx
lea rdx, [rcx + rdi + 1]
shr r11, 1
inc r11
lea r8d, [r8 + r11*2]
movzx eax, byte [r9 + rdx - 1]
add ebp, eax
mov byte [rdx - 1], bpl
movzx eax, byte [rdx + r9]
add r15d, eax
mov byte [rdx], r15b
lea rdx, [rdx + 2]
sub r11, 1
jne 0x14000e423
jmp 0x14000e4b5
cmp ebp, 3
jne 0x14000e4b5
movzx ebp, byte [rdi]
lea eax, [r14 - 3]
movzx r15d, byte [rdi + 1]
movzx r12d, byte [rdi + 2]
movsxd rdx, eax
cmp rcx, rdx
jg 0x14000e4b5
sub rdx, rcx
lea r11, [rcx + rdi + 1]
movabs rax, 0xaaaaaaaaaaaaaaab
mul rdx
shr rdx, 1
inc rdx
lea eax, [rdx + r8]
lea r8d, [rax + rdx*2]
movzx eax, byte [r11 + r9 - 1]
add ebp, eax
mov byte [r11 - 1], bpl
movzx eax, byte [r11 + r9]
add r15d, eax
mov byte [r11], r15b
movzx eax, byte [r9 + r11 + 1]
lea r11, [r11 + 3]
add r12d, eax
mov byte [r11 - 2], r12b
sub rdx, 1
jne 0x14000e487
movsxd rax, r8d
cmp rax, r10
jge 0x14000e4f1
mov rdx, rdi
lea rcx, [rax + rsi]
sub rdx, rbx
sub rdi, rsi
sub rdx, rsi
sub r10, rax
mov al, byte [rdx + rcx]
add al, byte [rcx]
mov byte [rdi + rcx], al
inc rcx
sub r10, 1
jne 0x14000e4d0
jmp 0x14000e4f1
mov r8, r10
mov rdx, rsi
mov rcx, rdi
call sub.ntdll.dll_memcpy
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret