Function at 0x180008750
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rbx
push r12
push r13
push r14
push r15
sub rsp, 0x2f0
mov rax, qword [0x18003a7d8]
xor rax, rsp
mov qword [rsp + 0x2c0], rax
mov r12d, dword [rsp + 0x350]
mov rax, qword [rsp + 0x348]
mov r14, qword [rsp + 0x340]
mov r13, qword [rsp + 0x358]
mov rbx, qword [rsp + 0x360]
mov qword [rsp + 0x58], r9
mov r15, r8
mov byte [rsp + 0x40], dl
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rax
cmp r12d, 0x18
ja 0x180008aa0
mov qword [r11 - 0x30], rbp
mov qword [r11 - 0x38], rsi
mov qword [r11 - 0x40], rdi
lea rsi, [rcx + 0x4b4]
xor ebp, ebp
cmp dword [rsi + 0x134], r12d
jne 0x180008814
mov rdx, r15
mov rcx, rsi
call fcn.1800153e0
test al, al
je 0x180008814
mov rcx, qword [rsi + 0x102]
cmp rcx, qword [r14]
jne 0x180008807
mov rcx, qword [rsi + 0x10a]
cmp rcx, qword [r14 + 8]
jne 0x180008807
xor eax, eax
jmp 0x18000880c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x180008ac1
inc ebp
add rsi, 0x178
cmp ebp, 4
jb 0x1800087d2
mov rcx, qword [rsp + 0x58]
lea rdx, [rsp + 0xc0]
mov r8d, 0x200
call fcn.1800185e0
xor eax, eax
mov ecx, r12d
mov r8d, 1
lea rdi, [rsp + 0xc0]
mov r9d, 0x10
shl r8d, cl
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov dword [rsp + 0x38], r8d
lea rax, [rsp + 0x80]
mov qword [rsp + 0x30], rax
not rcx
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x28], rax
lea rdx, [rcx - 1]
lea rax, [rsp + 0x60]
lea rcx, [rsp + 0xc0]
mov r8, r14
mov qword [rsp + 0x20], rax
call fcn.180008510
lea rcx, [rsp + 0xc0]
mov edx, 0x200
call fcn.1800152b0
mov rsi, qword [rsp + 0x48]
mov rdx, r15
mov ecx, dword [rsi + 0xa94]
mov r8d, 0x102
mov rax, rcx
and eax, 3
imul rax, rax, 0x178
lea rdi, [rax + rsi + 0x4b4]
lea eax, [rcx + 1]
mov dword [rsi + 0xa94], eax
mov rcx, rdi
mov dword [rdi + 0x134], r12d
call fcn.180026260
mov rax, qword [r14]
lea rdx, [rsp + 0x60]
mov qword [rdi + 0x102], rax
mov rax, qword [r14 + 8]
lea rcx, [rdi + 0x112]
mov qword [rdi + 0x10a], rax
mov rax, qword [rdx]
xor r9d, r9d
mov qword [rcx], rax
mov rax, qword [rdx + 8]
mov r8b, 1
mov qword [rcx + 8], rax
mov rax, qword [rdx + 0x10]
mov qword [rcx + 0x10], rax
mov rax, qword [rdx + 0x18]
lea rdx, [rsp + 0x80]
mov qword [rcx + 0x18], rax
mov rax, qword [rdx]
mov qword [rdi + 0x138], rax
mov rax, qword [rdx + 8]
mov qword [rdi + 0x140], rax
mov rax, qword [rdx + 0x10]
mov qword [rdi + 0x148], rax
mov rax, qword [rdx + 0x18]
lea rdx, [rsp + 0xa0]
mov qword [rdi + 0x150], rax
mov rax, qword [rdx]
mov qword [rdi + 0x158], rax
mov rax, qword [rdx + 8]
mov qword [rdi + 0x160], rax
mov rax, qword [rdx + 0x10]
mov qword [rdi + 0x168], rax
mov rax, qword [rdx + 0x18]
lea edx, [r9 + 0x20]
mov qword [rdi + 0x170], rax
call fcn.180015140
mov rbp, qword [rsp + 0x2e8]
test r13, r13
je 0x1800089d7
lea rcx, [rsp + 0xa0]
mov rax, qword [rcx]
mov qword [r13], rax
mov rax, qword [rcx + 8]
mov qword [r13 + 8], rax
mov rax, qword [rcx + 0x10]
mov qword [r13 + 0x10], rax
mov rax, qword [rcx + 0x18]
mov qword [r13 + 0x18], rax
test rbx, rbx
je 0x180008a56
xor eax, eax
lea rdx, [rsp + 0x81]
mov edi, 2
lea r8d, [rax + 8]
mov qword [rbx], rax
nop word [rax + rax]
movzx eax, byte [rdx - 1]
lea rcx, [rdi - 2]
add rdx, 4
and ecx, 7
xor byte [rcx + rbx], al
movzx eax, byte [rdx - 4]
lea rcx, [rdi - 1]
and ecx, 7
xor byte [rcx + rbx], al
movzx eax, byte [rdx - 3]
mov rcx, rdi
and ecx, 7
xor byte [rcx + rbx], al
movzx eax, byte [rdx - 2]
lea rcx, [rdi + 1]
and ecx, 7
add rdi, 4
xor byte [rcx + rbx], al
sub r8, 1
jne 0x180008a00
lea edx, [r8 + 0x20]
lea rcx, [rsp + 0x80]
call fcn.1800152b0
mov rax, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x2d8]
test rax, rax
je 0x180008a89
movzx edx, byte [rsp + 0x40]
lea rcx, [rsi + 0xa9c]
lea r8, [rsp + 0x60]
mov r9d, 0x100
mov qword [rsp + 0x20], rax
call fcn.1800149b0
lea rcx, [rsp + 0x60]
mov edx, 0x20
call fcn.1800152b0
mov rsi, qword [rsp + 0x2e0]
mov rcx, qword [rsp + 0x2c0]
xor rcx, rsp
call fcn.180025eb0
add rsp, 0x2f0
pop r15
pop r14
pop r13
pop r12
pop rbx
ret
xor r9d, r9d
lea rcx, [rsi + 0x112]
xor r8d, r8d
lea edx, [r9 + 0x20]
call fcn.180015140
mov rax, qword [rsi + 0x112]
lea r11, [rsp + 0x60]
mov qword [r11], rax
mov rax, qword [rsi + 0x11a]
xor r9d, r9d
mov qword [r11 + 8], rax
mov rax, qword [rsi + 0x122]
lea rcx, [rsi + 0x112]
mov qword [r11 + 0x10], rax
mov rax, qword [rsi + 0x12a]
lea edx, [r9 + 0x20]
mov r8b, 1
mov qword [r11 + 0x18], rax
call fcn.180015140
mov rax, qword [rsi + 0x138]
lea rdx, [rsp + 0x80]
mov qword [rdx], rax
mov rax, qword [rsi + 0x140]
lea rcx, [rsp + 0xa0]
mov qword [rdx + 8], rax
mov rax, qword [rsi + 0x148]
mov qword [rdx + 0x10], rax
mov rax, qword [rsi + 0x150]
mov qword [rdx + 0x18], rax
mov rax, qword [rsi + 0x158]
mov qword [rcx], rax
mov rax, qword [rsi + 0x160]
mov qword [rcx + 8], rax
mov rax, qword [rsi + 0x168]
mov qword [rcx + 0x10], rax
mov rax, qword [rsi + 0x170]
mov rsi, qword [rsp + 0x48]
mov qword [rcx + 0x18], rax
jmp 0x1800089a3