Function at 0x1401785a4
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
cmp dword [rcx + 8], 0
mov esi, r8d
mov r9d, edx
mov rdi, rcx
mov ebx, 1
jne 0x1401785f7
mov dword [rbp - 0x28], r9d
mov dword [rbp - 0x2c], r9d
mov dword [rbp - 0x30], r9d
mov dword [rbp - 0x20], r8d
mov dword [rbp - 0x24], r8d
mov dword [rbp - 0x1c], 0x1010020
jmp 0x1401787f1
mov r8d, 0x20
cmp dword [rcx + 8], ebx
jne 0x140178660
mov rdx, qword [rcx]
cmp word [rdx + 0x14], r8w
jne 0x140178660
cmp r9d, dword [rdx]
jne 0x14017861e
mov dword [rdx + 0x10], esi
mov dword [rdx + 0xc], esi
mov al, bl
jmp 0x140178818
mov eax, dword [rdx]
mov r8d, 0x1f
xor eax, r9d
mov ecx, r8d
js 0x140178640
or r12d, 0xffffffff
mov eax, dword [rdx]
add ecx, r12d
xor eax, r9d
shr eax, cl
test bl, al
je 0x140178632
sub r8w, cx
mov rax, r9
mov word [rdx + 0x14], r8w
shr rax, cl
and rax, rbx
mov dword [rdx + rax*4 + 0xc], esi
mov dword [rdx + rax*4 + 4], r9d
jmp 0x140178816
mov r13, qword [rcx]
xor r15d, r15d
or r12d, 0xffffffff
mov r10d, r8d
mov eax, r15d
lea rcx, [rax + rax*2]
lea r14, [rcx*8]
add r14, r13
movzx edx, word [r14 + 0x14]
sub r10d, edx
cmp r10d, r8d
je 0x1401786c3
mov r11d, r9d
mov ecx, r10d
shr r11d, cl
cmp edx, r8d
je 0x1401786a5
mov ecx, edx
mov eax, ebx
shl eax, cl
sub eax, ebx
and r11d, eax
mov r15d, dword [r14]
mov ecx, r10d
shr r15d, cl
cmp edx, r8d
je 0x1401786be
mov ecx, edx
mov eax, ebx
shl eax, cl
sub eax, ebx
and r15d, eax
cmp r11d, r15d
jne 0x1401786f2
add r10d, r12d
mov r11, r9
mov ecx, r10d
shr r11, cl
and r11, rbx
cmp byte [r11 + r14 + 0x16], 0
mov r15d, dword [r14 + r11*4 + 4]
je 0x14017866d
cmp r9d, r15d
jne 0x14017878d
mov dword [r14 + r11*4 + 0xc], esi
jmp 0x140178617
lea r8d, [rdx - 1]
lea ecx, [r8 + r10]
jmp 0x140178702
add r8d, r12d
add ecx, r12d
mov eax, dword [r14]
xor eax, r9d
shr eax, cl
test bl, al
je 0x1401786fc
movups xmm0, xmmword [r14]
sub dx, r8w
lea ecx, [r8 + r10]
mov eax, ebx
sub dx, bx
movups xmmword [rbp - 0x30], xmm0
movsd xmm0, qword [r14 + 0x10]
mov word [r14 + 0x14], dx
movsd qword [rbp - 8], xmm0
mov word [rbp - 4], r8w
mov r8d, r9d
shr r8d, cl
and r8d, ebx
sub eax, r8d
mov ecx, eax
mov dword [r14 + r8*4 + 0xc], esi
mov byte [r8 + r14 + 0x16], bl
mov byte [rax + r14 + 0x16], 0
mov dword [r14 + r8*4 + 4], r9d
mov eax, dword [rdi + 8]
mov dword [r14 + rcx*4 + 4], eax
mov rcx, rdi
call fcn.14017843c
mov eax, dword [rdi + 8]
movups xmm0, xmmword [rbp - 0x30]
lea rcx, [rax + rax*2]
mov rax, qword [rdi]
movups xmmword [rax + rcx*8], xmm0
movsd xmm0, qword [rbp - 8]
movsd qword [rax + rcx*8 + 0x10], xmm0
jmp 0x140178813
lea r13d, [r10 - 1]
jmp 0x140178796
add r13d, r12d
mov eax, r15d
mov ecx, r13d
xor eax, r9d
shr eax, cl
test bl, al
je 0x140178793
mov eax, dword [r14 + r11*4 + 0xc]
mov edx, r9d
shr edx, cl
sub r10w, r13w
and edx, ebx
mov byte [r11 + r14 + 0x16], 0
mov ecx, ebx
sub ecx, edx
sub r10w, bx
mov dword [rbp + rdx*4 - 0x24], esi
mov dword [rbp + rcx*4 - 0x24], eax
mov eax, dword [rdi + 8]
mov byte [rbp + rcx - 0x1a], bl
mov byte [rbp + rdx - 0x1a], bl
mov dword [rbp + rdx*4 - 0x2c], r9d
mov dword [rbp - 0x30], r15d
mov dword [rbp + rcx*4 - 0x2c], r15d
mov rcx, rdi
mov word [rbp - 0x1c], r10w
mov dword [r14 + r11*4 + 4], eax
call fcn.14017843c
mov eax, dword [rdi + 8]
movups xmm0, xmmword [rbp - 0x30]
movsd xmm1, qword [rbp - 0x20]
lea rcx, [rax + rax*2]
mov rax, qword [rdi]
movups xmmword [rax + rcx*8], xmm0
movsd qword [rax + rcx*8 + 0x10], xmm1
add dword [rdi + 8], ebx
xor al, al
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret