Function at 0x18008f2d0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
sub rsp, 0xf8
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov qword [rax - 8], r12
mov qword [rax - 0x10], r13
mov qword [rax - 0x18], r14
mov qword [rax - 0x20], r15
mov rbx, rcx
lea ecx, [rdx + 7]
mov eax, edx
mov edx, 8
shr ecx, 3
and eax, 7
mov rdi, r8
cmove eax, edx
xor r15d, r15d
cmp ecx, 1
mov dword [rsp + 0x30], ecx
lea r12d, [rdx + 4]
mov dword [rsp + 0x2c], r15d
mov dword [rsp + 0x34], r15d
mov dword [rsp + 0x28], r15d
mov r14d, r15d
mov dword [rsp + 0x38], eax
jbe 0x18008f4ee
add ecx, 0xfffffffe
mov esi, r15d
mov dword [rsp + 0x20], ecx
je 0x18008f4ee
mov rax, qword [rsp + 0x40]
mov r13d, dword [rsp + 0x64]
mov ebp, dword [rsp + 0x60]
nop
nop
test esi, esi
mov r8d, dword [rbx]
mov r14d, dword [rbx + 4]
mov r15d, r8d
mov dword [rsp + 0x28], r8d
jne 0x18008f46f
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x48]
mov word [rdi + 0x10], si
mov rcx, qword [rbx]
mov dword [rdi + 0x12], eax
lea rax, [rsp + 0x48]
shr rax, 0x20
mov qword [rsp + 0x48], rcx
mov rcx, rdi
mov word [rdi + 0x16], 2
mov word [rdi + 0x3e], si
mov dword [rdi + 0x5c], eax
call fcn.18008e5f0
mov rax, qword [rsp + 0x48]
lea r8, [rsp + 0x64]
mov qword [rbx], rax
mov rax, qword [rsp + 0x50]
lea r10d, [rsi + 5]
mov qword [rsp + 0x40], rax
mov r9d, dword [rsp + 0x44]
mov word [rdi + 0x16], si
mov dword [rsp + 0x60], eax
nop
nop
nop
mov ecx, dword [r8 - 4]
add r8, 0x14
lea edx, [rcx + r9]
and ecx, 0x1f
mov dword [r8 - 0x14], edx
mov edx, eax
ror edx, cl
xor dword [rsp + 0x64], edx
mov ecx, dword [r8 - 0x14]
lea edx, [rcx + r9]
and ecx, 0x1f
mov dword [r8 - 0x10], edx
mov edx, eax
ror edx, cl
xor dword [rsp + 0x64], edx
mov ecx, dword [r8 - 0x10]
lea edx, [rcx + r9]
and ecx, 0x1f
mov dword [r8 - 0xc], edx
mov edx, eax
ror edx, cl
xor dword [rsp + 0x64], edx
mov ecx, dword [r8 - 0xc]
lea edx, [rcx + r9]
and ecx, 0x1f
mov dword [r8 - 8], edx
mov edx, eax
ror edx, cl
xor dword [rsp + 0x64], edx
mov ecx, dword [r8 - 8]
lea edx, [rcx + r9]
and ecx, 0x1f
mov dword [r8 - 4], edx
mov r13d, dword [rsp + 0x64]
mov edx, eax
ror edx, cl
xor r13d, edx
dec r10
mov dword [rsp + 0x64], r13d
jne 0x18008f3e0
mov ebp, dword [rsp + 0x60]
jmp 0x18008f4bd
mov r11d, r12d
mov r9d, r14d
lea r10, [rsp + 0xc0]
nop
sub r8d, dword [r10 + 4]
mov ecx, r9d
sub r10, 8
shr ecx, 7
and ecx, 0x1f
ror r8d, cl
xor r8d, r9d
add r9d, dword [r10 + 8]
mov ecx, r8d
shr ecx, 4
and ecx, 0x1f
ror r9d, cl
xor r9d, r8d
add r11d, 0xffffffff
jne 0x18008f480
sub r8d, r13d
sub r9d, ebp
mov dword [rbx + 4], r9d
mov dword [rbx], r8d
mov ecx, dword [rsp + 0x34]
inc esi
add rbx, 8
xor dword [rbx - 8], ecx
mov ecx, dword [rsp + 0x2c]
mov dword [rsp + 0x34], r15d
xor dword [rbx - 4], ecx
cmp esi, dword [rsp + 0x20]
mov dword [rsp + 0x2c], r14d
jb 0x18008f360
mov eax, dword [rsp + 0x38]
xor r15d, r15d
jmp 0x18008f4f7
mov r13d, dword [rsp + 0x64]
mov ebp, dword [rsp + 0x60]
test eax, eax
mov dword [rsp + 0x20], r15d
mov esi, r15d
mov dword [rsp + 0x24], r15d
je 0x18008f522
lea rdx, [rbx + 8]
lea rcx, [rsp + 0x20]
mov r8d, eax
call fcn.180005f30
mov esi, dword [rsp + 0x24]
mov r15d, dword [rsp + 0x20]
mov r11d, dword [rsp + 0x30]
cmp r11d, 1
jne 0x18008f55f
mov rax, rbx
mov rcx, rdi
mov word [rdi + 0x10], 0
shr rax, 0x20
mov word [rdi + 0x16], 1
mov word [rdi + 0x3e], 0
mov dword [rdi + 0x5c], eax
mov dword [rdi + 0x12], ebx
call fcn.18008e5f0
mov word [rdi + 0x16], 0
jmp 0x18008f69a
cmp r11d, 2
jne 0x18008f599
mov rax, rbx
mov rcx, rdi
mov word [rdi + 0x10], 0
shr rax, 0x20
mov word [rdi + 0x16], 1
mov word [rdi + 0x3e], 0
mov dword [rdi + 0x5c], eax
mov dword [rdi + 0x12], ebx
call fcn.18008e5f0
mov r11d, dword [rsp + 0x30]
mov word [rdi + 0x16], 0
jmp 0x18008f5f4
mov edx, dword [rbx]
mov r8d, dword [rbx + 4]
mov r10d, r12d
lea r9, [rsp + 0xc0]
nop
nop
sub edx, dword [r9 + 4]
mov ecx, r8d
sub r9, 8
shr ecx, 7
and ecx, 0x1f
ror edx, cl
xor edx, r8d
add r8d, dword [r9 + 8]
mov ecx, edx
shr ecx, 4
and ecx, 0x1f
ror r8d, cl
xor r8d, edx
add r10d, 0xffffffff
jne 0x18008f5b0
sub edx, r13d
sub r8d, ebp
cmp r11d, 1
mov dword [rbx], edx
mov dword [rbx + 4], r8d
jbe 0x18008f69a
xor r15d, dword [rbx]
xor esi, dword [rbx + 4]
mov eax, dword [rsp + 0x38]
test eax, eax
mov dword [rsp + 0x20], r15d
mov dword [rsp + 0x24], esi
je 0x18008f63c
lea r8, [rsp + 0x20]
mov r9, rbx
lea rcx, [rbx + 8]
sub r9, r8
mov r8, rax
lea rdx, [rsp + 0x20]
movzx eax, byte [rcx]
inc rcx
inc rdx
dec r8
mov byte [r9 + rdx - 1], al
movzx eax, byte [rdx - 1]
mov byte [rcx - 1], al
jne 0x18008f622
cmp r11d, 2
je 0x18008f52d
mov edx, dword [rbx]
mov r8d, dword [rbx + 4]
lea r9, [rsp + 0xc0]
nop
nop
nop
sub edx, dword [r9 + 4]
mov ecx, r8d
sub r9, 8
shr ecx, 7
and ecx, 0x1f
ror edx, cl
xor edx, r8d
add r8d, dword [r9 + 8]
mov ecx, edx
shr ecx, 4
and ecx, 0x1f
ror r8d, cl
xor r8d, edx
add r12d, 0xffffffff
jne 0x18008f660
sub edx, r13d
sub r8d, ebp
mov dword [rbx + 4], r8d
mov dword [rbx], edx
mov eax, dword [rsp + 0x28]
mov r15, qword [rsp + 0xd8]
mov r13, qword [rsp + 0xe8]
xor dword [rbx], eax
xor dword [rbx + 4], r14d
mov r12, qword [rsp + 0xf0]
mov r14, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0x100]
mov rdi, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x110]
mov rbp, qword [rsp + 0x108]
add rsp, 0xf8
ret