Function at 0x180001088
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x20], rsi
mov qword [rax + 0x18], r8
push rdi
push r12
push r13
push r14
push r15
cmp byte [rcx + 8], 0
mov r12, r8
mov rbp, rcx
je 0x18000148b
movzx ebx, byte [rdx]
lea r15, [0x180000000]
movsxd r14, dword [rbp + 0x3d4]
mov r9d, 1
add rdx, r9
shl ebx, 0x18
movzx eax, byte [rdx]
add rdx, r9
shl eax, 0x10
or ebx, eax
movzx eax, byte [rdx]
add rdx, r9
shl eax, 8
or ebx, eax
movzx eax, byte [rdx]
add rdx, r9
or ebx, eax
xor ebx, dword [rcx + 0x1ec]
movzx edi, byte [rdx]
add rdx, r9
shl edi, 0x18
movzx eax, byte [rdx]
add rdx, r9
shl eax, 0x10
or edi, eax
movzx eax, byte [rdx]
add rdx, r9
shl eax, 8
or edi, eax
movzx eax, byte [rdx]
add rdx, r9
or edi, eax
xor edi, dword [rcx + 0x1f0]
movzx esi, byte [rdx]
add rdx, r9
shl esi, 0x18
movzx eax, byte [rdx]
add rdx, r9
shl eax, 0x10
or esi, eax
movzx eax, byte [rdx]
add rdx, r9
shl eax, 8
or esi, eax
movzx eax, byte [rdx]
add rdx, r9
or esi, eax
xor esi, dword [rcx + 0x1f4]
movzx ecx, byte [rdx]
add rdx, r9
shl ecx, 0x18
movzx eax, byte [rdx]
movzx r8d, byte [rdx + r9]
shl r8d, 8
shl eax, 0x10
or ecx, eax
movzx eax, byte [rdx + r9 + 1]
or r8d, eax
or r8d, ecx
xor r8d, dword [rbp + 0x1f8]
cmp r14, r9
jle 0x1800012ce
lea r15, [rbp + 0x214]
lea r13, [r14 - 1]
lea r12, [0x180000000]
movsxd r9, r8d
movsxd r11, ebx
movsxd r10, esi
mov rax, r11
sar rax, 0x18
movzx edx, al
mov rax, r9
sar rax, 0x10
movzx ecx, al
mov rax, r10
sar rax, 8
mov ebx, dword [r12 + rdx*4 + 0x6900]
movsxd r8, edi
xor ebx, dword [r12 + rcx*4 + 0x43f0]
movzx ecx, al
movzx eax, r8b
xor ebx, dword [r12 + rcx*4 + 0x53f0]
xor ebx, dword [r12 + rax*4 + 0x64f0]
mov rax, r11
xor ebx, dword [r15 - 8]
sar rax, 0x10
movzx edx, al
mov rax, r8
sar rax, 0x18
movzx ecx, al
mov rax, r9
sar rax, 8
mov edi, dword [r12 + rdx*4 + 0x43f0]
xor edi, dword [r12 + rcx*4 + 0x6900]
movzx ecx, al
movzx eax, r10b
xor edi, dword [r12 + rcx*4 + 0x53f0]
xor edi, dword [r12 + rax*4 + 0x64f0]
mov rax, r11
xor edi, dword [r15 - 4]
sar rax, 8
movzx edx, al
mov rax, r8
sar rax, 0x10
movzx ecx, al
mov rax, r10
sar r8, 8
mov esi, dword [r12 + rdx*4 + 0x53f0]
sar rax, 0x18
xor esi, dword [r12 + rcx*4 + 0x43f0]
movzx ecx, al
movzx eax, r9b
sar r9, 0x18
sar r10, 0x10
xor esi, dword [r12 + rcx*4 + 0x6900]
xor esi, dword [r12 + rax*4 + 0x64f0]
xor esi, dword [r15]
lea r15, [r15 + 0x20]
movzx ecx, r8b
movzx eax, r9b
mov r8d, dword [r12 + rcx*4 + 0x53f0]
xor r8d, dword [r12 + rax*4 + 0x6900]
movzx eax, r10b
xor r8d, dword [r12 + rax*4 + 0x43f0]
movzx eax, r11b
xor r8d, dword [r12 + rax*4 + 0x64f0]
xor r8d, dword [r15 - 0x1c]
sub r13, 1
jne 0x180001197
mov r12, qword [rsp + 0x40]
lea r15, [0x180000000]
shl r14, 5
movsxd r10, r8d
movsxd r11, ebx
movsxd r9, esi
mov rax, r11
mov edx, dword [r14 + rbp + 0x1ec]
sar rax, 0x18
movzx ecx, al
mov eax, edx
sar eax, 0x18
movsxd r8, edi
xor al, byte [rcx + r15 + 0x42f0]
mov byte [r12], al
mov rax, r10
sar rax, 0x10
movzx ecx, al
mov eax, edx
sar eax, 0x10
xor al, byte [rcx + r15 + 0x42f0]
mov byte [r12 + 1], al
mov rax, r9
sar rax, 8
movzx ecx, al
mov eax, edx
sar eax, 8
xor al, byte [rcx + r15 + 0x42f0]
mov byte [r12 + 2], al
movzx eax, r8b
xor dl, byte [rax + r15 + 0x42f0]
mov rax, r8
sar rax, 0x18
movzx ecx, al
mov byte [r12 + 3], dl
mov edx, dword [r14 + rbp + 0x1f0]
mov eax, edx
sar eax, 0x18
xor al, byte [rcx + r15 + 0x42f0]
mov byte [r12 + 4], al
mov rax, r11
sar rax, 0x10
movzx ecx, al
mov eax, edx
sar eax, 0x10
xor al, byte [rcx + r15 + 0x42f0]
mov byte [r12 + 5], al
mov rax, r10
sar rax, 8
movzx ecx, al
mov eax, edx
sar eax, 8
xor al, byte [rcx + r15 + 0x42f0]
mov byte [r12 + 6], al
movzx eax, r9b
xor dl, byte [rax + r15 + 0x42f0]
mov rax, r9
sar rax, 0x18
movzx ecx, al
mov byte [r12 + 7], dl
mov edx, dword [r14 + rbp + 0x1f4]
mov eax, edx
sar eax, 0x18
xor al, byte [rcx + r15 + 0x42f0]
mov byte [r12 + 8], al
mov rax, r8
sar rax, 0x10
movzx ecx, al
mov eax, edx
sar eax, 0x10
xor al, byte [rcx + r15 + 0x42f0]
mov byte [r12 + 9], al
mov rax, r11
sar rax, 8
movzx ecx, al
mov eax, edx
sar eax, 8
xor al, byte [rcx + r15 + 0x42f0]
mov byte [r12 + 0xa], al
movzx eax, r10b
xor dl, byte [rax + r15 + 0x42f0]
mov byte [r12 + 0xb], dl
mov edx, dword [r14 + rbp + 0x1f8]
mov eax, edx
sar r10, 0x18
sar eax, 0x18
movzx ecx, r10b
sar r9, 0x10
sar r8, 8
xor al, byte [rcx + r15 + 0x42f0]
mov byte [r12 + 0xc], al
mov eax, edx
sar eax, 0x10
movzx ecx, r9b
xor al, byte [rcx + r15 + 0x42f0]
mov byte [r12 + 0xd], al
mov eax, edx
sar eax, 8
movzx ecx, r8b
xor al, byte [rcx + r15 + 0x42f0]
mov byte [r12 + 0xe], al
movzx eax, r11b
xor dl, byte [rax + r15 + 0x42f0]
mov byte [r12 + 0xf], dl
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x48]
pop r15
pop r14
pop r13
pop r12
pop rdi
ret