Function at 0x180035050
Capabilities:
Encode data using xor

Disassembly:
test r8, r8
je 0x1800357e5
mov r11, rsp
push rbp
sub rsp, 0x310
mov rax, qword [0x1802953c0]
xor rax, rsp
mov qword [rsp + 0x2e0], rax
mov qword [r11 + 0x10], rbx
mov rbp, rcx
mov qword [r11 + 0x18], rsi
mov qword [r11 + 0x20], rdi
mov qword [r11 - 0x10], r12
mov qword [r11 - 0x18], r13
mov qword [rsp + 0x10], rcx
xor ecx, ecx
mov qword [r11 - 0x20], r14
mov qword [r11 - 0x28], r15
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x58], rdx
mov dword [rsp], ecx
nop dword [rax]
mov r9d, ecx
lea r11, [rsp + 0x70]
shl r9d, 7
mov r10d, 3
add r9, rdx
nop word [rax + rax]
lea eax, [r10*8 - 0x18]
movzx edx, byte [rax + r9 + 1]
mov ecx, eax
movzx eax, byte [rax + r9]
shl rax, 8
or rdx, rax
shl rdx, 8
movzx eax, byte [rcx + r9 + 2]
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 - 0x10]
mov qword [r11 - 0x10], rdx
movzx edx, byte [rax + r9]
shl rdx, 8
mov ecx, eax
movzx eax, byte [rax + r9 + 1]
or rdx, rax
shl rdx, 8
movzx eax, byte [rcx + r9 + 2]
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 - 8]
mov qword [r11 - 8], rdx
movzx edx, byte [rax + r9 + 1]
mov ecx, eax
movzx eax, byte [rax + r9]
shl rax, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 2]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8]
mov qword [r11], rdx
movzx edx, byte [rax + r9 + 1]
mov ecx, eax
movzx eax, byte [rax + r9]
shl rax, 8
or rdx, rax
shl rdx, 8
movzx eax, byte [rcx + r9 + 2]
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 + 8]
mov qword [r11 + 8], rdx
movzx edx, byte [rax + r9 + 1]
mov ecx, eax
movzx eax, byte [rax + r9]
shl rax, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 2]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 + 0x10]
mov qword [r11 + 0x10], rdx
movzx edx, byte [rax + r9]
shl rdx, 8
mov ecx, eax
movzx eax, byte [rax + r9 + 1]
or rdx, rax
shl rdx, 8
movzx eax, byte [rcx + r9 + 2]
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 + 0x18]
mov qword [r11 + 0x18], rdx
movzx edx, byte [rax + r9 + 1]
mov ecx, eax
movzx eax, byte [rax + r9]
shl rax, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 2]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
lea r11, [r11 + 0x40]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 + 0x20]
mov qword [r11 - 0x20], rdx
lea r10d, [r10 + 8]
movzx edx, byte [rax + r9 + 1]
mov ecx, eax
movzx eax, byte [rax + r9]
shl rax, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 2]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10 - 3]
mov qword [r11 - 0x18], rdx
cmp eax, 0x10
jb 0x1800350d0
mov rbx, qword [rsp + 0xd0]
lea rax, [rsp + 0xd0]
mov esi, 0x10
nop dword [rax]
mov r11, qword [rax - 0x68]
lea rax, [rax + 0x20]
mov rdx, rbx
mov r10, r11
ror rdx, 0x13
mov rcx, r11
ror rcx, 1
ror r10, 8
xor r10, rcx
mov rcx, r11
shr rcx, 7
xor r10, rcx
mov rcx, rbx
rol rcx, 3
xor rdx, rcx
shr rbx, 6
xor rdx, rbx
add r10, rdx
add r10, qword [rax - 0x90]
add r10, qword [rax - 0x48]
mov qword [rax - 0x10], r10
mov rbx, qword [rax - 0x80]
mov r8, qword [rax - 0x18]
mov r9, rbx
ror r9, 8
mov rdx, r8
ror rdx, 0x13
mov rcx, rbx
ror rcx, 1
xor r9, rcx
mov rcx, rbx
shr rcx, 7
xor r9, rcx
mov rcx, r8
rol rcx, 3
xor rdx, rcx
shr r8, 6
xor rdx, r8
mov rcx, r10
add r9, rdx
rol rcx, 3
add r9, qword [rax - 0x40]
mov r8, r10
add r11, r9
ror r8, 0x13
xor r8, rcx
mov qword [rax - 8], r11
mov rdi, qword [rax - 0x78]
mov r9, r11
ror r9, 0x13
mov rdx, rdi
ror rdx, 8
mov rcx, rdi
ror rcx, 1
xor rdx, rcx
shr r10, 6
xor r8, r10
mov rcx, rdi
shr rcx, 7
xor rdx, rcx
mov rcx, r11
add r8, rdx
rol rcx, 3
add r8, qword [rax - 0x38]
xor r9, rcx
add rbx, r8
shr r11, 6
mov qword [rax], rbx
xor r9, r11
mov r8, qword [rax - 0x70]
mov rdx, r8
mov rcx, r8
ror rdx, 8
ror rcx, 1
xor rdx, rcx
shr r8, 7
xor rdx, r8
add r9, rdx
add r9, qword [rax - 0x30]
add r9, rdi
mov qword [rax + 8], r9
sub rsi, 1
jne 0x180035470
mov rax, qword [rbp + 0x10]
mov qword [rsp + 8], rax
mov r11, rax
mov rax, qword [rbp + 0x18]
mov qword [rsp + 0x18], rax
mov rdi, rax
mov rax, qword [rbp + 0x20]
mov qword [rsp + 0x20], rax
mov r14, rax
mov rax, qword [rbp + 0x28]
mov qword [rsp + 0x28], rax
mov r9, rax
mov rax, qword [rbp + 0x30]
mov qword [rsp + 0x30], rax
mov rbx, rax
mov rax, qword [rbp + 0x38]
mov qword [rsp + 0x38], rax
mov r15, rax
mov rax, qword [rbp + 0x40]
mov qword [rsp + 0x40], rax
mov r12, rax
mov rax, qword [rbp + 0x48]
lea ebp, [rsi + 0x28]
mov qword [rsp + 0x48], rax
mov r13, rax
nop word [rax + rax]
mov r8, rbx
lea rsi, [rsi + 0x10]
rol r8, 0x17
mov rax, rbx
ror rax, 0x12
mov rcx, rbx
xor r8, rax
not rcx
and rcx, r12
mov rax, rbx
ror rax, 0xe
mov r10, r11
xor r8, rax
rol r10, 0x1e
mov rax, r15
and rax, rbx
xor rcx, rax
lea rax, [0x180206b90]
add r8, rcx
mov rcx, rdi
add r8, qword [rsi + rax - 0x10]
xor rcx, r14
add r8, qword [rsp + rsi + 0x50]
and rcx, r11
add r8, r13
mov rax, r11
ror rax, 0x1c
add r9, r8
xor r10, rax
mov r13, r15
mov rax, r11
rol rax, 0x19
xor r10, rax
mov rax, rdi
and rax, r14
xor rcx, rax
mov rax, r9
ror rax, 0xe
add r10, rcx
add r10, r8
mov rcx, r9
not rcx
mov r8, r9
ror r8, 0x12
and rcx, r15
xor r8, rax
mov rdx, r10
ror rdx, 0x1c
mov rax, r9
rol rax, 0x17
mov r15, r9
xor r8, rax
mov rax, r9
and rax, rbx
mov r9, rdi
xor rcx, rax
lea rax, [0x180206b90]
add r8, rcx
mov rcx, rdi
add r8, qword [rsp + rsi + 0x58]
xor rcx, r11
add r8, qword [rsi + rax - 8]
and rcx, r10
add r8, r12
mov rax, r10
rol rax, 0x19
mov r12, rbx
xor rdx, rax
mov rax, r10
rol rax, 0x1e
xor rdx, rax
lea rbx, [r14 + r8]
mov rax, rdi
mov r14, r11
and rax, r11
mov rdi, r10
xor rcx, rax
add rdx, rcx
lea r11, [rdx + r8]
sub rbp, 1
jne 0x180035600
mov rbp, qword [rsp + 0x10]
mov rax, qword [rsp + 8]
mov ecx, dword [rsp]
add rax, r11
mov rdx, qword [rsp + 0x58]
inc ecx
mov qword [rbp + 0x10], rax
mov rax, qword [rsp + 0x18]
add rax, r10
mov dword [rsp], ecx
mov qword [rbp + 0x18], rax
mov rax, qword [rsp + 0x20]
add rax, r14
mov qword [rbp + 0x20], rax
mov rax, qword [rsp + 0x28]
add rax, r9
mov qword [rbp + 0x28], rax
mov rax, qword [rsp + 0x30]
add rax, rbx
mov qword [rbp + 0x30], rax
mov rax, qword [rsp + 0x38]
add rax, r15
mov qword [rbp + 0x38], rax
mov rax, qword [rsp + 0x40]
add rax, r12
mov qword [rbp + 0x40], rax
mov rax, qword [rsp + 0x48]
add rax, r13
mov qword [rbp + 0x48], rax
mov eax, ecx
cmp rax, qword [rsp + 0x50]
jb 0x1800350b0
mov r15, qword [rsp + 0x2f0]
mov r14, qword [rsp + 0x2f8]
mov r13, qword [rsp + 0x300]
mov r12, qword [rsp + 0x308]
mov rdi, qword [rsp + 0x338]
mov rsi, qword [rsp + 0x330]
mov rbx, qword [rsp + 0x328]
mov rcx, qword [rsp + 0x2e0]
xor rcx, rsp
call fcn.1801e6af0
add rsp, 0x310
pop rbp
ret