Function at 0x18008cff0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x100
call fcn.180090180
sub rsp, rax
mov rax, qword [0x18012c3a8]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0x168]
xor r13d, r13d
movsxd r12, dword [rsp + 0x160]
mov ebx, 0xffffffff
mov rsi, qword [rsp + 0x180]
mov ebp, edx
mov qword [rsp + 0x60], rax
mov r14d, r13d
mov rax, qword [rsp + 0x178]
mov edi, r13d
movsxd r15, r9d
mov qword [rsp + 0x58], r8
mov dword [rsp + 0x44], edx
mov qword [rsp + 0x68], rcx
mov dword [rsp + 0x40], r12d
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x38], r13
test rax, rax
jne 0x18008d087
call fcn.18008af20
mov qword [rsp + 0x50], rax
test rsi, rsi
mov rcx, rax
cmove rsi, rax
mov qword [rsp + 0x48], rsi
call fcn.180078d50
movsxd rsi, eax
test ebp, ebp
jle 0x18008d4f9
test r15d, r15d
jle 0x18008d4f9
cmp r12d, r15d
jl 0x18008d499
lea ecx, [rsi*2 + 2]
cmp r12d, ecx
jl 0x18008d499
mov ebp, r12d
lea rdx, [0x18012ff50]
sub ebp, esi
mov r8d, 0x9b
dec ebp
mov ecx, ebp
call fcn.1800742d0
mov r8d, 0x9c
lea rdx, [0x18012ff51]
mov ecx, r12d
mov rdi, rax
call fcn.1800742d0
mov qword [rsp + 0x38], rax
mov r13, rax
test rdi, rdi
je 0x18008d47d
test rax, rax
je 0x18008d47d
mov r8, r12
xor edx, edx
mov rcx, rax
mov rbx, r12
call fcn.1800abaa0
mov rdx, qword [rsp + 0x58]
sub rbx, r15
mov r8, r15
lea rcx, [rbx + r13]
call fcn.1800ab630
movzx r12d, byte [r13]
lea r15, [r13 + 1]
mov rax, qword [rsp + 0x48]
lea rcx, [rsp + 0x70]
dec r12d
mov qword [rsp + 0x20], rax
inc r13
shr r12d, 0x1f
add r13, rsi
mov r9d, ebp
mov r8, r13
mov edx, esi
neg r12d
mov rbx, rsi
call fcn.18008c980
test eax, eax
jne 0x18008d4be
xor edx, edx
test esi, esi
jle 0x18008d241
cmp esi, 0x40
jb 0x18008d241
lea eax, [rsi - 1]
movsxd rcx, eax
lea r8, [rsp + 0x70]
add r8, rcx
lea rax, [rcx + r15]
lea rcx, [rsp + 0x70]
cmp rcx, rax
ja 0x18008d1b1
cmp r8, r15
jae 0x18008d241
mov ecx, esi
and ecx, 0x8000003f
jge 0x18008d1c2
dec ecx
or ecx, 0xffffffc0
inc ecx
mov eax, esi
xor r8d, r8d
sub eax, ecx
mov rcx, r15
movsxd r9, eax
lea rax, [rsp + 0x70]
sub rcx, rax
nop word [rax + rax]
lea rax, [rsp + 0x70]
add edx, 0x40
add rax, r8
add r8, 0x40
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + rcx]
pxor xmm1, xmm0
movdqu xmmword [rax], xmm1
movdqu xmm0, xmmword [rax + 0x10]
movdqu xmm1, xmmword [rax + rcx + 0x10]
pxor xmm1, xmm0
movdqu xmmword [rax + 0x10], xmm1
movdqu xmm0, xmmword [rax + 0x20]
movdqu xmm1, xmmword [rax + rcx + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax + 0x20], xmm1
movdqu xmm0, xmmword [rax + 0x30]
movdqu xmm1, xmmword [rax + rcx + 0x30]
pxor xmm1, xmm0
movdqu xmmword [rax + 0x30], xmm1
cmp r8, r9
jl 0x18008d1e0
movsxd rdx, edx
cmp rdx, rbx
jge 0x18008d277
lea rax, [rsp + 0x70]
sub r15, rax
nop dword [rax]
nop word [rax + rax]
lea rcx, [rsp + 0x70]
add rcx, rdx
inc rdx
movzx eax, byte [rcx + r15]
xor byte [rcx], al
cmp rdx, rbx
jl 0x18008d260
mov rax, qword [rsp + 0x48]
lea r8, [rsp + 0x70]
mov r9d, esi
mov qword [rsp + 0x20], rax
mov edx, ebp
mov rcx, rdi
call fcn.18008c980
test eax, eax
jne 0x18008d4be
xor r8d, r8d
test ebp, ebp
jle 0x18008d350
cmp ebp, 0x40
jb 0x18008d350
lea eax, [rbp - 1]
movsxd rcx, eax
lea rax, [rcx + r13]
lea rdx, [rcx + rdi]
cmp rdi, rax
ja 0x18008d2cb
cmp rdx, r13
jae 0x18008d350
mov ecx, ebp
and ecx, 0x8000003f
jge 0x18008d2dc
dec ecx
or ecx, 0xffffffc0
inc ecx
mov eax, ebp
mov rdx, r13
sub eax, ecx
mov rcx, rdi
movsxd r9, eax
sub rdx, rdi
nop dword [rax]
movdqu xmm0, xmmword [rcx]
add r8d, 0x40
movdqu xmm1, xmmword [rdx + rcx]
pxor xmm1, xmm0
movdqu xmmword [rcx], xmm1
movdqu xmm0, xmmword [rcx + 0x10]
movdqu xmm1, xmmword [rdx + rcx + 0x10]
pxor xmm1, xmm0
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmm0, xmmword [rcx + 0x20]
movdqu xmm1, xmmword [rdx + rcx + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rcx + 0x20], xmm1
movdqu xmm0, xmmword [rcx + 0x30]
movdqu xmm1, xmmword [rdx + rcx + 0x30]
pxor xmm1, xmm0
movdqu xmmword [rcx + 0x30], xmm1
add rcx, 0x40
mov rax, rcx
sub rax, rdi
cmp rax, r9
jl 0x18008d2f0
movsxd rax, r8d
movsxd r15, ebp
cmp rax, r15
jge 0x18008d381
sub r13, rdi
lea rcx, [rax + rdi]
mov rdx, r15
sub rdx, rax
nop dword [rax + rax]
movzx eax, byte [rcx + r13]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x18008d370
mov rax, qword [rsp + 0x50]
lea r8, [rsp + 0xb0]
movsxd rdx, dword [rsp + 0x170]
xor r13d, r13d
mov rcx, qword [rsp + 0x60]
xor r9d, r9d
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rax
call fcn.18007af30
test eax, eax
je 0x18008d4be
mov r8, rbx
lea rdx, [rsp + 0xb0]
mov rcx, rdi
call fcn.18006f560
mov r9d, r13d
lea ecx, [rax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
neg ecx
and r12d, ecx
cmp rbx, r15
jge 0x18008d439
nop word [rax + rax]
movzx r8d, byte [rbx + rdi]
mov ecx, r9d
not ecx
mov eax, r8d
xor eax, 1
inc rbx
lea edx, [rax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
neg edx
and ecx, edx
or r9d, edx
mov eax, ecx
and ecx, esi
not eax
inc esi
and r14d, eax
lea eax, [r8 - 1]
shr eax, 0x1f
or r14d, ecx
neg eax
or eax, r9d
and r12d, eax
cmp rbx, r15
jl 0x18008d3f0
test r12d, r9d
je 0x18008d49d
inc r14d
mov ebx, ebp
sub ebx, r14d
cmp dword [rsp + 0x44], ebx
jge 0x18008d468
xor r9d, r9d
mov dword [rsp + 0x20], r13d
mov edx, 0xa1
lea ecx, [r9 + 4]
lea r8d, [r9 + 0x6d]
call fcn.180075230
jmp 0x18008d49d
mov rcx, qword [rsp + 0x68]
movsxd rdx, r14d
add rdx, rdi
movsxd r8, ebx
call fcn.1800ab630
jmp 0x18008d4c2
xor r9d, r9d
mov dword [rsp + 0x20], r14d
mov edx, 0xa1
lea ecx, [r9 + 4]
lea r8d, [r9 + 0x41]
call fcn.180075230
jmp 0x18008d4c7
mov ebp, dword [rsp + 0x40]
xor r9d, r9d
mov dword [rsp + 0x20], r13d
mov edx, 0xa1
lea ecx, [r9 + 4]
lea r8d, [r9 + 0x79]
call fcn.180075230
mov ebx, 0xffffffff
jmp 0x18008d4c2
mov ebx, dword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
test rdi, rdi
je 0x18008d4df
movsxd rdx, ebp
mov rcx, rdi
call fcn.1800788d0
mov rcx, rdi
call fcn.180074230
test r13, r13
je 0x18008d4f9
movsxd rdx, dword [rsp + 0x40]
mov rcx, r13
call fcn.1800788d0
mov rcx, r13
call fcn.180074230
mov eax, ebx
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.18008f850
mov rbx, qword [rsp + 0x148]
add rsp, 0x100
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret