Function at 0x8f6bf0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x178
mov r8d, 1
movzx ebp, byte [rdx + 0x38]
mov rax, qword [rdx + 0x30]
movdqu xmm2, xmmword [rdx]
movdqu xmm3, xmmword [rdx + 0x10]
movdqu xmm4, xmmword [rdx + 0x20]
mov rdi, rbp
lea r9, [rsp + 0x30]
mov qword [rsp + 0x60], rax
lea rbx, [rcx + 0x40]
mov eax, ebp
mov r12, rcx
mov rdx, r9
and eax, 0x7f
mov rcx, rbx
mov qword [rsp + 0x28], r9
lea r15, [r12 + 0x80]
lea r14, [r12 + 0xc0]
movaps xmmword [rsp + 0x30], xmm2
movaps xmmword [rsp + 0x40], xmm3
movaps xmmword [rsp + 0x50], xmm4
mov byte [rsp + 0x68], al
call fcn.008fa9e0
xor edx, edx
mov rcx, r12
mov r13, rax
movzx eax, byte [rsp + 0x68]
add rax, 0xffffffffffffffff
adc rdx, 0xffffffffffffffff
and edi, 0x80
mov rsi, rdx
mov rdx, rbx
call fcn.008f9de0
mov r8, r12
lea rdx, [0x023f4660]
mov rcx, r15
call fcn.008fa700
mov r8d, 0x98a9
mov rdx, r12
mov rcx, r14
call fcn.008f9d20
mov r8, r14
lea rdx, [0x023f46a0]
mov rcx, r14
call fcn.008fa700
mov r8, r14
lea rdx, [0x023f4660]
mov rcx, r14
call fcn.008fa700
mov r8, r14
mov rdx, r15
mov rcx, r12
call fcn.008f9720
mov rdx, r12
mov rcx, r14
call fcn.008fa240
mov r8, r15
mov rdx, r14
mov rcx, r12
and r13, rax
and rsi, r13
lea r13, [rsp + 0x130]
mov qword [rsp + 0x20], rsi
call fcn.008f9720
movdqa xmm5, xmmword [r12]
mov rcx, r13
movdqa xmm2, xmmword [r12 + 0x10]
movdqa xmm3, xmmword [r12 + 0x20]
movdqa xmm4, xmmword [r12 + 0x30]
movaps xmmword [rsp + 0x130], xmm5
movaps xmmword [rsp + 0x140], xmm2
movaps xmmword [rsp + 0x150], xmm3
movaps xmmword [rsp + 0x160], xmm4
call fcn.008fa520
mov rax, rdi
xor edx, edx
mov r8, r12
mov rcx, qword [rsp + 0x130]
and ecx, 1
neg rcx
add rax, 0xffffffffffffffff
adc rdx, 0xffffffffffffffff
mov rbp, rdx
lea rdx, [0x023f46a0]
xor rbp, rcx
mov rcx, r13
call fcn.008fa700
movd xmm5, ebp
mov r9, qword [rsp + 0x28]
xor edx, edx
pshufd xmm1, xmm5, 0
nop dword [rax + rax]
movdqa xmm0, xmmword [r12 + rdx]
pxor xmm0, xmmword [r13 + rdx]
pand xmm0, xmm1
pxor xmm0, xmmword [r12 + rdx]
movaps xmmword [r12 + rdx], xmm0
add rdx, 0x10
cmp rdx, 0x40
jne 0x8f6da0
movdqa xmm2, xmmword [0x023f4660]
movdqa xmm3, xmmword [0x023f4670]
lea rsi, [rsp + 0xf0]
lea rbp, [rsp + 0x70]
movdqa xmm4, xmmword [0x023f4680]
mov rdx, r12
mov rcx, rsi
mov qword [rsp + 0x28], r9
movdqa xmm5, xmmword [0x023f4690]
lea rdi, [rsp + 0xb0]
movaps xmmword [r12 + 0x80], xmm2
movaps xmmword [r12 + 0x90], xmm3
movaps xmmword [r12 + 0xa0], xmm4
movaps xmmword [r12 + 0xb0], xmm5
call fcn.008f9de0
mov rdx, rbx
mov rcx, rbp
call fcn.008f9de0
mov r8, rbp
mov rdx, rsi
mov rcx, r13
call fcn.008fa7f0
mov r8, r12
mov rdx, rbx
mov rcx, r14
call fcn.008fa7f0
mov rdx, r14
mov rcx, rdi
call fcn.008f9de0
mov r8, r13
mov rdx, rdi
mov rcx, rdi
call fcn.008fa700
mov r8, rsi
mov rdx, rbp
mov rcx, r14
call fcn.008fa700
mov rdx, r15
mov rcx, r12
call fcn.008f9de0
mov r8, r12
mov rdx, r12
mov rcx, r15
call fcn.008fa7f0
mov r8, r13
mov rdx, r15
mov rcx, rbp
call fcn.008fa700
mov r8, rdi
mov rdx, rbp
mov rcx, r12
call fcn.008f9720
mov r8, rbp
mov rdx, r14
mov rcx, r15
call fcn.008f9720
mov r8, r13
mov rdx, r14
mov rcx, rbx
call fcn.008f9720
mov r8, r13
mov rdx, rdi
mov rcx, r14
call fcn.008f9720
mov edx, 0x40
mov rcx, rbp
call fcn.008fac10
mov edx, 0x40
mov rcx, rdi
call fcn.008fac10
mov edx, 0x40
mov rcx, rsi
call fcn.008fac10
mov edx, 0x40
mov rcx, r13
call fcn.008fac10
mov r9, qword [rsp + 0x28]
mov edx, 0x39
mov rcx, r9
call fcn.008fac10
mov rcx, r12
call fcn.008f5860
test rax, rax
jne 0x8f6f37
cmp qword [rsp + 0x20], 0xffffffffffffffff
je 0x8f6f50
mov eax, dword [rsp + 0x20]
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, 0x4f3
lea rdx, [0x023eee60]
lea rcx, str.API_NS_point_valid__p___succ
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x8f6f37