Function at 0x18013dfd0
Capabilities:
Encode data using xor

Disassembly:
jmp 0x18013dfd0
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
mov ebx, 0x80
mov byte [rcx], 0
cmp edx, ebx
mov eax, ebx
mov r10, rcx
mov rdi, r8
cmovle eax, edx
mov ecx, 0x400
test r9d, r9d
cdqe
mov r11d, ecx
cmovg r11d, r9d
cmp r11d, ecx
cmovg r11d, ecx
test rax, rax
jle 0x18013e030
mov rdx, r10
sub rdi, r10
mov r8, rax
nop word [rax + rax]
movzx ecx, byte [rdi + rdx]
mov byte [rdx], cl
lea rdx, [rdx + 1]
sub r8, 1
jne 0x18013e020
movzx edx, byte [rax + r10 - 1]
lea rdi, [0x18022fb30]
cmp rax, rbx
jge 0x18013e06d
mov r8, r10
nop word [rax + rax]
movzx ecx, byte [r8]
lea r8, [r8 + 1]
add ecx, edx
movzx edx, cl
movzx edx, byte [rdx + rdi]
mov byte [rax + r10], dl
inc rax
cmp rax, rbx
jl 0x18013e050
lea r9d, [r11 + 7]
mov eax, 0xff
sar r9d, 3
neg r11d
sub ebx, r9d
and r11d, 7
movzx ecx, r11b
movsxd r8, ebx
sar eax, cl
lea rdx, [r8 + r10]
mov ecx, eax
movzx eax, byte [rdx]
and rcx, rax
movzx eax, byte [rcx + rdi]
mov byte [rdx], al
test ebx, ebx
je 0x18013e0c9
movsxd r9, r9d
nop word [rax + rax]
movzx ecx, byte [r9 + rdx - 1]
lea rdx, [rdx - 1]
xor rcx, rax
movzx eax, byte [rcx + rdi]
mov byte [rdx], al
sub r8, 1
jne 0x18013e0b0
lea rdx, [r10 + 0xfc]
mov r8d, 2
add r10, 0x7e
nop word [rax + rax]
movzx eax, byte [r10]
movzx ecx, byte [r10 + 1]
shl ecx, 8
or ecx, eax
mov dword [rdx], ecx
movzx eax, byte [r10 - 2]
movzx ecx, byte [r10 - 1]
shl ecx, 8
or ecx, eax
mov dword [rdx - 4], ecx
movzx eax, byte [r10 - 4]
movzx ecx, byte [r10 - 3]
shl ecx, 8
or ecx, eax
mov dword [rdx - 8], ecx
movzx eax, byte [r10 - 6]
movzx ecx, byte [r10 - 5]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0xc], ecx
movzx eax, byte [r10 - 8]
movzx ecx, byte [r10 - 7]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x10], ecx
movzx eax, byte [r10 - 0xa]
movzx ecx, byte [r10 - 9]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x14], ecx
movzx eax, byte [r10 - 0xc]
movzx ecx, byte [r10 - 0xb]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x18], ecx
movzx eax, byte [r10 - 0xe]
movzx ecx, byte [r10 - 0xd]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x1c], ecx
movzx eax, byte [r10 - 0x10]
movzx ecx, byte [r10 - 0xf]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x20], ecx
movzx eax, byte [r10 - 0x12]
movzx ecx, byte [r10 - 0x11]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x24], ecx
movzx eax, byte [r10 - 0x14]
movzx ecx, byte [r10 - 0x13]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x28], ecx
movzx eax, byte [r10 - 0x16]
movzx ecx, byte [r10 - 0x15]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x2c], ecx
movzx eax, byte [r10 - 0x18]
movzx ecx, byte [r10 - 0x17]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x30], ecx
movzx eax, byte [r10 - 0x1a]
movzx ecx, byte [r10 - 0x19]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x34], ecx
movzx eax, byte [r10 - 0x1c]
movzx ecx, byte [r10 - 0x1b]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x38], ecx
movzx ecx, byte [r10 - 0x1d]
movzx eax, byte [r10 - 0x1e]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x3c], ecx
movzx ecx, byte [r10 - 0x1f]
movzx eax, byte [r10 - 0x20]
lea rdx, [rdx - 0x80]
shl ecx, 8
lea r10, [r10 - 0x40]
or ecx, eax
mov dword [rdx + 0x40], ecx
movzx eax, byte [r10 + 0x1e]
movzx ecx, byte [r10 + 0x1f]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x3c], ecx
movzx eax, byte [r10 + 0x1c]
movzx ecx, byte [r10 + 0x1d]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x38], ecx
movzx eax, byte [r10 + 0x1a]
movzx ecx, byte [r10 + 0x1b]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x34], ecx
movzx eax, byte [r10 + 0x18]
movzx ecx, byte [r10 + 0x19]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x30], ecx
movzx eax, byte [r10 + 0x16]
movzx ecx, byte [r10 + 0x17]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x2c], ecx
movzx eax, byte [r10 + 0x14]
movzx ecx, byte [r10 + 0x15]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x28], ecx
movzx eax, byte [r10 + 0x12]
movzx ecx, byte [r10 + 0x13]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x24], ecx
movzx eax, byte [r10 + 0x10]
movzx ecx, byte [r10 + 0x11]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x20], ecx
movzx eax, byte [r10 + 0xe]
movzx ecx, byte [r10 + 0xf]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x1c], ecx
movzx eax, byte [r10 + 0xc]
movzx ecx, byte [r10 + 0xd]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x18], ecx
movzx eax, byte [r10 + 0xa]
movzx ecx, byte [r10 + 0xb]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x14], ecx
movzx eax, byte [r10 + 8]
movzx ecx, byte [r10 + 9]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x10], ecx
movzx eax, byte [r10 + 6]
movzx ecx, byte [r10 + 7]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0xc], ecx
movzx eax, byte [r10 + 4]
movzx ecx, byte [r10 + 5]
shl ecx, 8
or ecx, eax
mov dword [rdx + 8], ecx
movzx ecx, byte [r10 + 3]
movzx eax, byte [r10 + 2]
shl ecx, 8
or ecx, eax
mov dword [rdx + 4], ecx
sub r8, 1
jne 0x18013e0e0
mov rbx, qword [rsp + 8]
mov rdi, qword [rsp + 0x10]
ret