Function at 0x140008e40
Capabilities:
Encode data using xor

Disassembly:
test r8, r8
je 0x1400098a2
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push r13
lea rbp, [rax - 0x228]
sub rsp, 0x318
mov qword [rax - 0x18], rbx
mov r13, rcx
mov qword [rax - 0x20], rsi
xor ecx, ecx
mov qword [rax - 0x28], rdi
mov qword [rax - 0x30], r12
mov qword [rax - 0x38], r14
mov qword [rax - 0x40], r15
mov dword [rbp + 0x248], 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 + 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 - 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]
mov ecx, eax
movzx eax, byte [rax + r9 + 1]
shl rdx, 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 + 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 + 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 0x140008eb0
mov eax, 0xe
nop dword [rax]
lea ecx, [rax - 0xd]
mov r9, qword [rsp + rcx*8 + 0x60]
mov ecx, eax
mov rdx, r9
ror rdx, 8
mov r14, qword [rsp + rcx*8 + 0x60]
mov r15, r14
mov rcx, r14
ror rcx, 0x13
ror r15, 0x3d
xor r15, rcx
mov rcx, r14
shr rcx, 6
xor r15, rcx
mov rcx, r9
ror rcx, 1
xor rdx, rcx
mov rcx, r9
shr rcx, 7
xor rdx, rcx
lea ecx, [rax - 0xe]
add r15, rdx
add r15, qword [rsp + rcx*8 + 0x60]
lea ecx, [rax - 5]
add r15, qword [rsp + rcx*8 + 0x60]
lea ecx, [rax + 2]
mov qword [rsp + rcx*8 + 0x60], r15
lea ecx, [rax - 0xc]
mov r10, qword [rsp + rcx*8 + 0x60]
lea ecx, [rax + 1]
mov rsi, qword [rsp + rcx*8 + 0x60]
mov rdx, r10
ror rdx, 8
mov r8, rsi
ror r8, 0x3d
mov rcx, rsi
ror rcx, 0x13
xor r8, rcx
mov rcx, rsi
shr rcx, 6
xor r8, rcx
mov rcx, r10
ror rcx, 1
xor rdx, rcx
mov rcx, r10
shr rcx, 7
xor rdx, rcx
lea ecx, [rax - 4]
add r8, rdx
mov rdx, r15
ror rdx, 0x3d
add r8, qword [rsp + rcx*8 + 0x60]
lea ecx, [rax + 3]
add r9, r8
mov qword [rsp + rcx*8 + 0x60], r9
mov rdi, r9
lea ecx, [rax - 0xb]
mov r11, qword [rsp + rcx*8 + 0x60]
mov r8, r11
mov rcx, r11
ror rcx, 1
ror r8, 8
xor r8, rcx
mov rcx, r11
shr rcx, 7
xor r8, rcx
mov rcx, r15
ror rcx, 0x13
xor rdx, rcx
mov rcx, r15
shr rcx, 6
xor rdx, rcx
lea ecx, [rax - 3]
add r8, rdx
add r8, qword [rsp + rcx*8 + 0x60]
lea ecx, [rax + 4]
add r10, r8
mov qword [rsp + rcx*8 + 0x60], r10
lea ecx, [rax - 0xa]
mov rbx, qword [rsp + rcx*8 + 0x60]
ror rdi, 0x3d
mov r8, r10
mov rcx, r9
ror rcx, 0x13
mov rdx, rbx
xor rdi, rcx
ror r8, 0x3d
ror rdx, 8
mov rcx, rbx
ror rcx, 1
xor rdx, rcx
shr r9, 6
xor rdi, r9
mov rcx, rbx
shr rcx, 7
xor rdx, rcx
lea ecx, [rax - 2]
add rdi, rdx
add rdi, qword [rsp + rcx*8 + 0x60]
lea ecx, [rax + 5]
add rdi, r11
mov qword [rsp + rcx*8 + 0x60], rdi
lea ecx, [rax - 9]
mov r11, qword [rsp + rcx*8 + 0x60]
mov rcx, r10
ror rcx, 0x13
mov rdx, r11
xor r8, rcx
shr r10, 6
xor r8, r10
ror rdx, 8
mov rcx, r11
mov r10, rdi
ror rcx, 1
xor rdx, rcx
ror r10, 0x3d
mov rcx, r11
shr rcx, 7
xor rdx, rcx
lea ecx, [rax - 1]
add r8, rdx
add r8, qword [rsp + rcx*8 + 0x60]
lea ecx, [rax + 6]
add rbx, r8
mov qword [rsp + rcx*8 + 0x60], rbx
mov rdx, rbx
lea ecx, [rax - 8]
ror rdx, 0x3d
mov r9, qword [rsp + rcx*8 + 0x60]
mov r8, r9
mov rcx, r9
ror rcx, 1
ror r8, 8
xor r8, rcx
mov rcx, r9
shr rcx, 7
xor r8, rcx
mov rcx, rdi
ror rcx, 0x13
xor r10, rcx
shr rdi, 6
xor r10, rdi
lea edi, [rax + 8]
lea rcx, [r11 + r8]
add r10, rcx
lea ecx, [rax + 7]
add r10, r14
mov qword [rsp + rcx*8 + 0x60], r10
lea ecx, [rax - 7]
mov r11, qword [rsp + rcx*8 + 0x60]
mov r8, r11
mov rcx, r11
ror rcx, 1
ror r8, 8
xor r8, rcx
mov rcx, r11
shr rcx, 7
xor r8, rcx
mov rcx, rbx
ror rcx, 0x13
xor rdx, rcx
shr rbx, 6
xor rdx, rbx
lea rcx, [r9 + r8]
add rdx, rcx
mov r8, r10
add rdx, rsi
ror r8, 0x3d
mov qword [rsp + rdi*8 + 0x60], rdx
lea ecx, [rax - 6]
mov r9, qword [rsp + rcx*8 + 0x60]
add eax, 9
mov rcx, r10
mov rdx, r9
ror rcx, 0x13
xor r8, rcx
ror rdx, 8
shr r10, 6
mov rcx, r9
ror rcx, 1
xor r8, r10
xor rdx, rcx
shr r9, 7
xor rdx, r9
lea rcx, [r11 + r8]
add rdx, rcx
lea ecx, [rdi + 2]
add rdx, r15
mov qword [rsp + rax*8 + 0x60], rdx
mov eax, edi
cmp ecx, 0x50
jb 0x140009240
mov rax, qword [r13 + 8]
xor edi, edi
mov qword [rsp + 0x18], rax
mov rsi, rax
mov rax, qword [r13 + 0x10]
mov qword [rsp + 0x20], rax
mov r14, rax
mov rax, qword [r13 + 0x18]
mov qword [rsp + 0x28], rax
mov r11, rax
mov rax, qword [r13 + 0x20]
mov qword [rsp + 0x30], rax
mov rbx, rax
mov rax, qword [r13 + 0x28]
mov qword [rsp + 0x38], rax
mov r15, rax
mov rax, qword [r13 + 0x30]
mov qword [rsp + 0x40], rax
mov r12, rax
mov rax, qword [r13 + 0x38]
mov qword [rsp + 8], rax
mov qword [rsp + 0x48], rax
mov rax, qword [r13 + 0x40]
mov r13, qword [rsp + 8]
mov r8, rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x10], 0x10
jmp 0x140009554
mov r8, qword [rsp]
mov rdx, r15
mov rax, r15
ror rax, 0x12
mov rcx, r15
ror rdx, 0x29
not rcx
xor rdx, rax
and rcx, r13
mov rax, r15
mov r9, r14
ror rax, 0xe
xor r9, r11
xor rdx, rax
and r9, rsi
mov rax, r12
and rax, r15
xor rcx, rax
lea rax, [0x1400a44b0]
add rdx, rcx
mov rcx, rsi
add rdx, qword [rdi + rax]
mov rax, rsi
add rdx, qword [rsp + rdi + 0x60]
ror rax, 0x22
add rdx, r8
ror rcx, 0x27
xor rcx, rax
mov rax, rsi
ror rax, 0x1c
xor rcx, rax
lea r10, [rbx + rdx]
mov rax, r14
mov rbx, r14
and rax, r11
xor rbx, rsi
xor r9, rax
lea rax, [rdx + rcx]
mov rdx, r10
add r9, rax
ror rdx, 0x29
and rbx, r9
mov rax, r10
ror rax, 0x12
mov rcx, r10
xor rdx, rax
not rcx
and rcx, r12
mov rax, r10
ror rax, 0xe
xor rdx, rax
mov rax, r10
and rax, r15
xor rcx, rax
lea rax, [0x1400a44b0]
add rdx, rcx
mov rcx, r9
add rdx, qword [rdi + rax + 8]
mov rax, r9
add rdx, qword [rsp + rdi + 0x68]
ror rax, 0x22
add rdx, r13
ror rcx, 0x27
xor rcx, rax
mov rax, r9
ror rax, 0x1c
xor rcx, rax
lea r8, [r11 + rdx]
mov rax, r14
mov qword [rsp], r8
and rax, rsi
xor rbx, rax
lea rax, [rdx + rcx]
mov rdx, r8
add rbx, rax
ror rdx, 0x29
mov rax, r8
ror rax, 0x12
xor rdx, rax
mov rax, r8
ror rax, 0xe
xor rdx, rax
mov rcx, r8
mov rax, r10
and rax, r8
not rcx
and rcx, r15
mov r11, r9
xor rcx, rax
xor r11, rsi
add rdx, rcx
lea rax, [0x1400a44b0]
add rdx, qword [rdi + rax + 0x10]
and r11, rbx
add rdx, qword [rsp + rdi + 0x70]
mov rax, rbx
ror rax, 0x22
add rdx, r12
mov rcx, rbx
ror rcx, 0x27
xor rcx, rax
mov rax, rbx
ror rax, 0x1c
lea r13, [r14 + rdx]
xor rcx, rax
mov r8, r13
ror r8, 0x29
mov rax, r9
and rax, rsi
mov r14, r9
xor r11, rax
xor r14, rbx
lea rax, [rdx + rcx]
mov rcx, r13
add r11, rax
not rcx
and rcx, r10
and r14, r11
mov rax, r13
mov rdx, r11
ror rax, 0x12
xor r8, rax
ror rdx, 0x27
mov rax, r13
ror rax, 0xe
xor r8, rax
mov rax, r13
and rax, qword [rsp]
xor rcx, rax
lea rax, [0x1400a44b0]
add r8, rcx
add r8, qword [rdi + rax + 0x18]
mov rax, r11
add r8, qword [rsp + rdi + 0x78]
ror rax, 0x22
add r8, r15
xor rdx, rax
mov rax, r11
ror rax, 0x1c
xor rdx, rax
mov rax, r9
and rax, rbx
lea r12, [rsi + r8]
xor r14, rax
mov rcx, r12
not rcx
and rcx, qword [rsp]
lea rax, [r8 + rdx]
add r14, rax
mov r8, r12
ror r8, 0x29
mov rax, r12
ror rax, 0x12
xor r8, rax
mov rax, r12
ror rax, 0xe
xor r8, rax
mov rax, r12
and rax, r13
xor rcx, rax
lea rax, [0x1400a44b0]
add r8, rcx
add r8, qword [rdi + rax + 0x20]
add r8, qword [rbp + rdi - 0x80]
lea rdi, [rdi + 0x28]
add r8, r10
mov rdx, r14
ror rdx, 0x27
mov rax, r14
ror rax, 0x22
mov rsi, r11
xor rdx, rax
xor rsi, rbx
and rsi, r14
lea r15, [r9 + r8]
mov rax, r14
ror rax, 0x1c
xor rdx, rax
mov rax, r11
and rax, rbx
xor rsi, rax
lea rax, [r8 + rdx]
add rsi, rax
sub qword [rsp + 0x10], 1
jne 0x140009550
mov rax, qword [rsp + 0x18]
mov ecx, dword [rbp + 0x248]
add rax, rsi
mov rdx, qword [rbp + 0x238]
inc ecx
mov qword [rsp + 8], r13
mov r13, qword [rbp + 0x230]
mov dword [rbp + 0x248], ecx
mov qword [r13 + 8], rax
mov rax, qword [rsp + 0x20]
add rax, r14
mov qword [r13 + 0x10], rax
mov rax, qword [rsp + 0x28]
add rax, r11
mov qword [r13 + 0x18], rax
mov rax, qword [rsp + 0x30]
add rax, rbx
mov qword [r13 + 0x20], rax
mov rax, qword [rsp + 0x38]
add rax, r15
mov qword [r13 + 0x28], rax
mov rax, qword [rsp + 0x40]
add rax, r12
mov qword [r13 + 0x30], rax
mov rax, qword [rsp + 8]
add rax, qword [rsp + 0x48]
mov qword [r13 + 0x38], rax
mov rax, qword [rsp]
add rax, qword [rsp + 0x50]
mov qword [r13 + 0x40], rax
mov eax, ecx
cmp rax, qword [rbp + 0x240]
jb 0x140008e90
mov r15, qword [rsp + 0x2e8]
mov r14, qword [rsp + 0x2f0]
mov r12, qword [rsp + 0x2f8]
mov rdi, qword [rsp + 0x300]
mov rsi, qword [rsp + 0x308]
mov rbx, qword [rsp + 0x310]
add rsp, 0x318
pop r13
pop rbp
ret