Function at 0x1400017d0
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rbp
push rsi
mov rbp, rsp
sub rsp, 0x58
mov rax, qword [0x140045028]
xor rax, rsp
mov qword [rbp - 0x20], rax
mov qword [r11 + 8], rbx
lea r10, [rbp - 0x3e]
mov qword [r11 + 0x20], r12
mov esi, 4
mov qword [r11 - 0x18], r13
mov rbx, rcx
mov qword [r11 - 0x20], r14
mov r13, r9
mov qword [r11 - 0x28], r15
mov r9, r8
mov r11d, esi
mov qword [rbp - 0x58], r8
add rdx, 8
nop dword [rax + rax]
movzx eax, byte [rdx - 8]
lea rdx, [rdx + 1]
mov byte [r10 - 2], al
lea r10, [r10 + 4]
movzx eax, byte [rdx - 5]
mov byte [r10 - 5], al
movzx eax, byte [rdx - 1]
mov byte [r10 - 4], al
movzx eax, byte [rdx + 3]
mov byte [r10 - 3], al
sub r11, 1
jne 0x140001820
lea rcx, [rbp - 0x3e]
mov r8, rsi
lea rdx, [r13 + 8]
nop dword [rax]
movzx eax, byte [rdx - 8]
lea rdx, [rdx + 1]
xor byte [rcx - 2], al
lea rcx, [rcx + 4]
movzx eax, byte [rdx - 5]
xor byte [rcx - 5], al
movzx eax, byte [rdx - 1]
xor byte [rcx - 4], al
movzx eax, byte [rdx + 3]
xor byte [rcx - 3], al
sub r8, 1
jne 0x140001860
mov r12d, dword [rbx + 4]
lea r10, [0x140000000]
mov r14d, 1
lea r15d, [r12 - 1]
cmp r15d, r14d
jb 0x140001af7
mov qword [rsp + 0x78], rdi
nop
lea rdx, [rbp - 0x3e]
mov r8, rsi
nop word [rax + rax]
movzx eax, byte [rdx - 2]
lea rdx, [rdx + 4]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + r10 + 0x3e960]
mov byte [rdx - 6], al
movzx eax, byte [rdx - 5]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + r10 + 0x3e960]
mov byte [rdx - 5], al
movzx eax, byte [rdx - 4]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + r10 + 0x3e960]
mov byte [rdx - 4], al
movzx eax, byte [rdx - 3]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + r10 + 0x3e960]
mov byte [rdx - 3], al
sub r8, 1
jne 0x1400018c0
movzx eax, byte [rbp - 0x3b]
lea r15, [0x140000000]
mov byte [rbp - 0x4c], al
xorps xmm0, xmm0
movzx eax, byte [rbp - 0x3a]
xor r10d, r10d
mov byte [rbp - 0x4b], al
movzx eax, byte [rbp - 0x39]
mov byte [rbp - 0x4a], al
movzx eax, byte [rbp - 0x3c]
mov byte [rbp - 0x49], al
mov eax, dword [rbp - 0x4c]
mov dword [rbp - 0x3c], eax
movzx eax, byte [rbp - 0x36]
mov byte [rbp - 0x48], al
movzx eax, byte [rbp - 0x35]
mov byte [rbp - 0x47], al
movzx eax, byte [rbp - 0x38]
mov byte [rbp - 0x46], al
movzx eax, byte [rbp - 0x37]
mov byte [rbp - 0x45], al
mov eax, dword [rbp - 0x48]
mov dword [rbp - 0x38], eax
movzx eax, byte [rbp - 0x31]
mov byte [rbp - 0x50], al
movzx eax, byte [rbp - 0x34]
mov byte [rbp - 0x4f], al
movzx eax, byte [rbp - 0x33]
mov byte [rbp - 0x4e], al
movzx eax, byte [rbp - 0x32]
mov byte [rbp - 0x4d], al
mov eax, dword [rbp - 0x50]
mov dword [rbp - 0x34], eax
movups xmmword [rbp - 0x30], xmm0
movzx r9d, byte [rbp + r10 - 0x30]
lea rdi, [r15 + 0x3e950]
movzx eax, byte [rbp + r10 - 0x2d]
xor r8d, r8d
add rdi, r10
nop word [rax + rax]
movzx ecx, byte [rdi + r8]
movzx r11d, r9b
movzx r9d, byte [rbp + r8*4 - 0x40]
mov ebx, ecx
cmp cl, 1
jne 0x140001a06
movzx ecx, byte [rbp + r8*4 - 0x3f]
xor r9b, r11b
xor byte [rbp + r10 - 0x2f], cl
movzx ecx, byte [rbp + r8*4 - 0x3e]
xor byte [rbp + r10 - 0x2e], cl
xor al, byte [rbp + r8*4 - 0x3d]
jmp 0x140001a6d
movzx ecx, byte [rbp + r8*4 - 0x3f]
mov rdx, rbx
shl rdx, 8
add rdx, r9
movzx r9d, r11b
xor r9b, byte [rdx + r15 + 0x3ea70]
mov rdx, rbx
shl rdx, 8
add rdx, rcx
movzx ecx, byte [rdx + r15 + 0x3ea70]
xor byte [rbp + r10 - 0x2f], cl
mov rcx, rbx
movzx edx, byte [rbp + r8*4 - 0x3e]
shl rcx, 8
add rdx, rcx
shl rbx, 8
movzx ecx, byte [rdx + r15 + 0x3ea70]
xor byte [rbp + r10 - 0x2e], cl
movzx ecx, byte [rbp + r8*4 - 0x3d]
add rcx, rbx
xor al, byte [rcx + r15 + 0x3ea70]
inc r8
mov byte [rbp + r10 - 0x30], r9b
mov byte [rbp + r10 - 0x2d], al
cmp r8, rsi
jb 0x1400019d0
add r10, rsi
cmp r10, 0x10
jb 0x1400019b1
movups xmm0, xmmword [rbp - 0x30]
mov eax, r14d
lea rdx, [r13 + 8]
shl eax, 4
lea rcx, [rbp - 0x3e]
movups xmmword [rbp - 0x40], xmm0
add rdx, rax
lea r15d, [r12 - 1]
mov r8, rsi
movzx eax, byte [rdx - 8]
lea rdx, [rdx + 1]
xor byte [rcx - 2], al
lea rcx, [rcx + 4]
movzx eax, byte [rdx - 5]
xor byte [rcx - 5], al
movzx eax, byte [rdx - 1]
xor byte [rcx - 4], al
movzx eax, byte [rdx + 3]
xor byte [rcx - 3], al
sub r8, 1
jne 0x140001ab1
inc r14d
lea r10, [0x140000000]
cmp r14d, r15d
jbe 0x1400018b0
mov r9, qword [rbp - 0x58]
mov rdi, qword [rsp + 0x78]
mov r15, qword [rsp + 0x40]
lea rdx, [rbp - 0x3e]
mov r14, qword [rsp + 0x48]
mov r8, rsi
mov rbx, qword [rsp + 0x70]
nop dword [rax]
movzx eax, byte [rdx - 2]
lea rdx, [rdx + 4]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + r10 + 0x3e960]
mov byte [rdx - 6], al
movzx eax, byte [rdx - 5]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + r10 + 0x3e960]
mov byte [rdx - 5], al
movzx eax, byte [rdx - 4]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + r10 + 0x3e960]
mov byte [rdx - 4], al
movzx eax, byte [rdx - 3]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + r10 + 0x3e960]
mov byte [rdx - 3], al
sub r8, 1
jne 0x140001b10
movzx eax, byte [rbp - 0x3b]
lea rcx, [rbp - 0x3e]
mov byte [rbp - 0x50], al
add r13, 8
movzx eax, byte [rbp - 0x3a]
mov r8, rsi
mov byte [rbp - 0x4f], al
movzx eax, byte [rbp - 0x39]
mov byte [rbp - 0x4e], al
movzx eax, byte [rbp - 0x3c]
mov byte [rbp - 0x4d], al
mov eax, dword [rbp - 0x50]
mov dword [rbp - 0x3c], eax
movzx eax, byte [rbp - 0x36]
mov byte [rbp - 0x50], al
movzx eax, byte [rbp - 0x35]
mov byte [rbp - 0x4f], al
movzx eax, byte [rbp - 0x38]
mov byte [rbp - 0x4e], al
movzx eax, byte [rbp - 0x37]
mov byte [rbp - 0x4d], al
mov eax, dword [rbp - 0x50]
mov dword [rbp - 0x38], eax
movzx eax, byte [rbp - 0x31]
mov byte [rbp - 0x50], al
movzx eax, byte [rbp - 0x34]
mov byte [rbp - 0x4f], al
movzx eax, byte [rbp - 0x33]
shl r12d, 4
mov byte [rbp - 0x4e], al
movzx eax, byte [rbp - 0x32]
mov edx, r12d
mov r12, qword [rsp + 0x88]
add rdx, r13
mov r13, qword [rsp + 0x50]
mov byte [rbp - 0x4d], al
mov eax, dword [rbp - 0x50]
mov dword [rbp - 0x34], eax
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx - 8]
lea rdx, [rdx + 1]
xor byte [rcx - 2], al
lea rcx, [rcx + 4]
movzx eax, byte [rdx - 5]
xor byte [rcx - 5], al
movzx eax, byte [rdx - 1]
xor byte [rcx - 4], al
movzx eax, byte [rdx + 3]
xor byte [rcx - 3], al
sub r8, 1
jne 0x140001c20
lea rcx, [r9 + 8]
lea rdx, [rbp - 0x3e]
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx - 2]
lea rdx, [rdx + 4]
mov byte [rcx - 8], al
lea rcx, [rcx + 1]
movzx eax, byte [rdx - 5]
mov byte [rcx - 5], al
movzx eax, byte [rdx - 4]
mov byte [rcx - 1], al
movzx eax, byte [rdx - 3]
mov byte [rcx + 3], al
sub rsi, 1
jne 0x140001c60
mov rcx, qword [rbp - 0x20]
xor rcx, rsp
call fcn.14000cef0
add rsp, 0x58
pop rsi
pop rbp
ret