Function at 0x180002790
Capabilities:
Encode data using xor

Disassembly:
test r9, r9
je 0x180002b4c
mov r11, rsp
push rbp
push r12
push r13
push r14
mov rbp, rsp
sub rsp, 0x58
mov rax, qword [0x180006008]
xor rax, rsp
mov qword [rbp - 0x28], rax
mov qword [r11 + 8], rbx
lea rax, [rdx + 0xf]
mov qword [r11 - 0x28], rsi
mov r14, r9
mov qword [r11 - 0x30], rdi
mov r13, rdx
mov qword [r11 - 0x38], r15
mov r12, rcx
mov r15d, 1
mov qword [rbp - 0x58], r8
sub r15, rdx
mov qword [rbp - 0x48], rdx
mov qword [rbp - 0x50], r15
mov qword [rbp - 0x40], rcx
nop
lea rcx, [rbp - 0x38]
cmp rcx, rax
ja 0x18000280d
lea rax, [rbp - 0x29]
cmp rax, r13
jb 0x18000280d
movups xmm0, xmmword [r13]
movups xmmword [rbp - 0x38], xmm0
jmp 0x180002820
movups xmm0, xmmword [r13]
movups xmmword [rbp - 0x38], xmm0
nop word [rax + rax]
mov ebx, dword [r12 + 4]
mov r15d, 4
mov r11d, dword [r12]
mov r8d, ebx
xor r8d, dword [rbp - 0x34]
mov edi, dword [r12 + 8]
mov edx, r8d
mov esi, dword [r12 + 0xc]
mov r9d, esi
mov ecx, dword [rbp - 0x38]
mov r12d, r8d
mov eax, dword [rbp - 0x30]
xor ecx, r11d
xor eax, edi
mov dword [rbp - 0x34], r8d
xor r9d, dword [rbp - 0x2c]
mov dword [rbp - 0x2c], r9d
mov r13d, r9d
mov r10d, r9d
nop word [rax + rax]
add eax, r9d
shr edx, 0x1b
add ecx, r8d
shr r13d, 0x18
mov r8d, r12d
mov r9d, r10d
shl r8d, 5
or r8d, edx
shl r9d, 8
xor r8d, ecx
or r9d, r13d
xor r9d, eax
ror ecx, 0x10
lea edx, [r8 + rax]
ror r8d, 0x19
lea eax, [rcx + r9]
xor r8d, edx
ror r9d, 0x13
xor r9d, eax
ror edx, 0x10
lea ecx, [rax + r8]
ror r8d, 0x1b
xor r8d, ecx
ror ecx, 0x10
lea eax, [rdx + r9]
ror r9d, 0x18
xor r9d, eax
lea edx, [rax + r8]
ror r8d, 0x19
xor r8d, edx
ror edx, 0x10
lea eax, [rcx + r9]
ror r9d, 0x13
xor r9d, eax
lea ecx, [rax + r8]
ror r8d, 0x1b
xor r8d, ecx
ror ecx, 0x10
lea eax, [rdx + r9]
ror r9d, 0x18
xor r9d, eax
lea edx, [rax + r8]
ror r8d, 0x19
xor r8d, edx
ror edx, 0x10
lea eax, [rcx + r9]
ror r9d, 0x13
xor r9d, eax
lea ecx, [rax + r8]
ror r8d, 0x1b
xor r8d, ecx
ror ecx, 0x10
lea eax, [rdx + r9]
ror r9d, 0x18
xor r9d, eax
add eax, r8d
add ecx, r9d
ror r8d, 0x19
xor r8d, eax
ror r9d, 0x13
xor r9d, ecx
ror eax, 0x10
mov edx, r8d
mov r12d, r8d
mov r13d, r9d
mov r10d, r9d
sub r15, 1
jne 0x180002870
mov r10, qword [rbp - 0x58]
xor ebx, r8d
mov r15, qword [rbp - 0x50]
xor edi, eax
mov r13, qword [rbp - 0x48]
xor r11d, ecx
mov r12, qword [rbp - 0x40]
xor esi, r9d
cmp r14, 0x10
mov dword [rbp - 0x38], r11d
mov r8d, r14d
mov dword [rbp - 0x34], ebx
mov eax, 0x10
mov dword [rbp - 0x30], edi
cmova r8d, eax
mov dword [rbp - 0x2c], esi
xor edx, edx
test r8d, r8d
jle 0x180002abf
cmp r8d, 8
jb 0x180002abf
lea eax, [r8 - 1]
movsxd rcx, eax
lea rax, [rbp - 0x38]
add rax, rcx
lea r9, [rcx + r10]
cmp r10, rax
ja 0x1800029ce
lea rax, [rbp - 0x38]
cmp r9, rax
jae 0x180002abf
cmp r8d, 0x40
jb 0x180002a75
mov ecx, r8d
and ecx, 0x8000003f
jge 0x1800029ea
dec ecx
or ecx, 0xffffffc0
inc ecx
mov eax, r8d
sub eax, ecx
mov r9, r10
movsxd rbx, eax
neg r9
lea rcx, [rbp - 0x38]
add rcx, r9
lea r11, [rbp - 0x28]
add r11, r9
lea rax, [r10 + 0x20]
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x20]
add rdx, 0x40
movdqu xmm1, xmmword [rcx + rax - 0x20]
movdqu xmm2, xmmword [rcx + rax]
lea rax, [rax + 0x40]
xorps xmm1, xmm0
movdqu xmmword [rax - 0x60], xmm1
movdqu xmm0, xmmword [rax - 0x50]
movdqu xmm1, xmmword [r11 + rax - 0x60]
xorps xmm1, xmm0
movdqu xmmword [rax - 0x50], xmm1
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmm1, xmmword [r11 + rax - 0x40]
xorps xmm2, xmm0
movdqu xmmword [rax - 0x40], xmm2
movdqu xmm0, xmmword [rax - 0x30]
xorps xmm1, xmm0
movdqu xmmword [rax - 0x30], xmm1
cmp rdx, rbx
jl 0x180002a10
mov eax, r8d
and al, 0x3f
cmp al, 8
jb 0x180002abf
jmp 0x180002a7b
mov r9, r10
neg r9
mov ecx, r8d
and ecx, 0x80000007
jge 0x180002a8d
dec ecx
or ecx, 0xfffffff8
inc ecx
mov eax, r8d
sub eax, ecx
lea r11, [rbp - 0x38]
movsxd rcx, eax
add r11, r9
lea rax, [rdx + r10]
movq xmm0, qword [rax]
add rdx, 8
movq xmm1, qword [rax + r11]
lea rax, [rax + 8]
xorps xmm1, xmm0
movq qword [rax - 8], xmm1
cmp rdx, rcx
jl 0x180002aa0
movsxd r11, r8d
cmp rdx, r11
jge 0x180002af1
lea r9, [rbp - 0x38]
mov r8, r11
sub r9, r10
lea rcx, [rdx + r10]
sub r8, rdx
nop dword [rax + rax]
movzx eax, byte [rcx + r9]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x180002ae0
sub r14, r11
lea rcx, [r13 + 0xf]
add r10, r11
mov qword [rbp - 0x58], r10
nop
add byte [rcx], 1
jne 0x180002b11
dec rcx
lea rax, [r15 + rcx]
test rax, rax
jg 0x180002b00
lea rax, [r13 + 0xf]
test r14, r14
jne 0x1800027f0
mov r15, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rbp - 0x28]
xor rcx, rsp
call fcn.180003040
add rsp, 0x58
pop r14
pop r13
pop r12
pop rbp
ret