Function at 0x1400d1580
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x88
mov rbp, qword [rsp + 0xe8]
mov rsi, rcx
mov rcx, rbp
mov r14d, r9d
mov edi, edx
mov r13d, 1
call fcn.1400617e0
movsxd r12, eax
test eax, eax
jns 0x1400d15d2
xor eax, eax
add rsp, 0x88
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov qword [rsp + 0x80], r15
call fcn.1400ec2d0
mov r15, rax
test rax, rax
je 0x1400d18c8
mov qword [rsp + 0xc0], rbx
mov rbx, qword [rsp + 0xf8]
test rsi, rsi
jne 0x1400d160b
lea rsi, [0x1401a4de0]
xor edi, edi
jmp 0x1400d161d
cmp edi, 0xffffffff
jne 0x1400d161d
or rdi, 0xffffffffffffffff
inc rdi
cmp byte [rsi + rdi], 0
jne 0x1400d1614
mov r9, rbp
mov qword [rsp + 0x20], 0
mov r8d, edi
mov rdx, rsi
mov rcx, r15
call fcn.1400ec480
test eax, eax
je 0x1400d189f
call fcn.1400ec2d0
mov rsi, rax
test rax, rax
je 0x1400d189f
mov eax, dword [rsp + 0xf0]
test eax, eax
je 0x1400d18ab
nop
cmp eax, r12d
mov byte [rsp + 0x33], r13b
mov edi, eax
mov rdx, r15
cmovg edi, r12d
mov eax, r13d
shr eax, 0x18
mov rcx, rsi
mov byte [rsp + 0x30], al
mov eax, r13d
shr eax, 0x10
mov byte [rsp + 0x31], al
mov eax, r13d
shr eax, 8
mov byte [rsp + 0x32], al
call fcn.1400ec140
mov rcx, rsi
test eax, eax
je 0x1400d189a
mov rdx, qword [rsp + 0xd0]
movsxd r8, r14d
call fcn.1400ec700
test eax, eax
je 0x1400d1897
mov r8d, 4
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.1400ec700
test eax, eax
je 0x1400d1897
xor r8d, r8d
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.1400ec3e0
test eax, eax
je 0x1400d1897
movsxd r14, edi
lea rdx, [rsp + 0x40]
mov r8, r14
mov rcx, rbx
call fcn.140174c80
mov ebp, 1
cmp dword [rsp + 0xe0], ebp
jle 0x1400d1870
mov rdx, r15
mov rcx, rsi
call fcn.1400ec140
mov rcx, rsi
test eax, eax
je 0x1400d189a
mov r8, r12
lea rdx, [rsp + 0x40]
call fcn.1400ec700
test eax, eax
je 0x1400d1897
xor r8d, r8d
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.1400ec3e0
test eax, eax
je 0x1400d1897
xor r9d, r9d
test edi, edi
jle 0x1400d182d
cmp edi, 0x40
jb 0x1400d182d
lea eax, [rdi - 1]
movsxd rcx, eax
lea rax, [rsp + 0x40]
add rax, rcx
lea rdx, [rcx + rbx]
cmp rbx, rax
ja 0x1400d178e
lea rax, [rsp + 0x40]
cmp rdx, rax
jae 0x1400d182d
mov ecx, edi
and ecx, 0x8000003f
jge 0x1400d179f
dec ecx
or ecx, 0xffffffc0
inc ecx
mov eax, edi
lea rdx, [rsp + 0x50]
sub eax, ecx
lea r8, [rsp + 0x60]
lea rcx, [rsp + 0x40]
movsxd r11, eax
sub rcx, rbx
lea r10, [rsp + 0x70]
sub rdx, rbx
sub r8, rbx
sub r10, rbx
mov rax, rbx
nop dword [rax]
movdqu xmm0, xmmword [rax]
add r9, 0x40
movdqu xmm1, xmmword [rcx + rax]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x40], xmm1
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rdx + rax - 0x40]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x30], xmm1
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm1, xmmword [r8 + rax - 0x40]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x20], xmm1
movdqu xmm0, xmmword [rax - 0x10]
movdqu xmm1, xmmword [r10 + rax - 0x40]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x10], xmm1
cmp r9, r11
jl 0x1400d17d0
cmp r9, r14
jge 0x1400d1861
lea r8, [rsp + 0x40]
mov rdx, r14
sub r8, rbx
lea rax, [r9 + rbx]
sub rdx, r9
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [r8 + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x1400d1850
inc ebp
cmp ebp, dword [rsp + 0xe0]
jl 0x1400d1712
mov eax, dword [rsp + 0xf0]
inc r13d
sub eax, edi
add rbx, r14
mov dword [rsp + 0xf0], eax
test eax, eax
je 0x1400d18ab
mov r14d, dword [rsp + 0xd8]
jmp 0x1400d1660
mov rcx, rsi
call fcn.1400ec250
mov rcx, r15
call fcn.1400ec250
xor eax, eax
jmp 0x1400d18c0
mov rcx, rsi
call fcn.1400ec250
mov rcx, r15
call fcn.1400ec250
mov eax, 1
mov rbx, qword [rsp + 0xc0]
mov r15, qword [rsp + 0x80]
add rsp, 0x88
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret