Function at 0x1400f2e40
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push r13
push r14
sub rsp, 0x98
mov rax, qword [0x1409c0280]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0xe0]
mov r13d, r9d
mov esi, dword [rsp + 0xf8]
mov r9, rcx
mov ecx, dword [rsp + 0xe8]
mov r14, r8
mov r10d, edx
mov qword [rsp + 0x38], rax
call fcn.1400df580
mov ebp, eax
test eax, eax
js 0x1400f3158
mov qword [rsp + 0x80], r12
mov r12d, dword [rsp + 0x100]
dec r12d
and r12d, 7
jne 0x1400f2eb5
mov byte [r14], r12b
inc r14
dec r13d
cmp esi, 0xffffffff
jne 0x1400f2ebe
mov esi, ebp
jmp 0x1400f2ecf
cmp esi, ebp
jg 0x1400f314b
cmp esi, 0xffffffff
jl 0x1400f314b
mov ecx, r13d
lea eax, [rsi + 2]
sub ecx, ebp
cmp ecx, eax
jl 0x1400f314b
mov qword [rsp + 0x90], rbx
xor eax, eax
mov qword [rsp + 0x88], rdi
mov r8, r10
mov qword [rsp + 0x78], r15
lea rdi, [r14 + 8]
lea r15d, [rcx - 1]
mov qword [r14], rax
mov rcx, rdi
mov dword [rsp + 0x30], r15d
mov rdx, r9
mov rbx, r10
call fcn.14016a6b0
add rdi, rbx
test esi, esi
jle 0x1400f2f53
mov rcx, qword [rsp + 0x38]
lea rdx, [rsp + 0x40]
mov r8d, esi
call fcn.1400f8ef0
mov r10d, eax
test eax, eax
jne 0x1400f3131
movsxd rbx, esi
lea rdx, [rsp + 0x40]
mov r8, rbx
mov rcx, rdi
call fcn.14016a6b0
add rdi, rbx
jmp 0x1400f2f56
movsxd rbx, esi
mov ecx, dword [rsp + 0xe8]
sub edi, r14d
movsxd r15, r15d
mov r8d, edi
mov rdx, r14
mov dword [rsp + 0x20], ebp
lea r9, [r15 + r14]
call fcn.1400df690
mov r10d, eax
test eax, eax
jne 0x1400f3131
mov ecx, dword [rsp + 0xf0]
lea eax, [r13 - 1]
mov byte [rax + r14], 0xbc
lea rdx, [r15 + r14]
mov eax, dword [rsp + 0x30]
mov r9, r14
mov r8d, ebp
mov dword [rsp + 0x20], eax
call fcn.1400f2990
mov r10d, eax
test eax, eax
jne 0x1400f3131
sub r15, rbx
mov ecx, r12d
mov eax, 1
lea rdx, [r15 + r14]
shl al, cl
xor r8d, r8d
dec al
and byte [r14], al
xor byte [rdx - 1], 1
test esi, esi
jle 0x1400f3105
cmp esi, 8
jb 0x1400f3105
lea eax, [rsi - 1]
movsxd rcx, eax
lea rax, [rsp + 0x40]
add rax, rcx
lea r9, [rdx + rcx]
cmp rdx, rax
ja 0x1400f3006
lea rax, [rsp + 0x40]
cmp r9, rax
jae 0x1400f3105
cmp esi, 0x40
jb 0x1400f30bc
mov ecx, esi
and ecx, 0x8000003f
jge 0x1400f3020
dec ecx
or ecx, 0xffffffc0
inc ecx
mov eax, esi
sub eax, ecx
lea r9, [rsp + 0x40]
movsxd rbp, eax
lea r11, [rsp + 0x50]
sub r9, rdx
sub r11, rdx
lea rcx, [rdx + 0x20]
mov rdi, 0xffffffffffffffe0
sub rdi, rdx
nop word [rax + rax]
movdqu xmm0, xmmword [rcx - 0x20]
add r8d, 0x40
movdqu xmm1, xmmword [rcx + r9 - 0x20]
movdqu xmm2, xmmword [rcx + r9]
lea rcx, [rcx + 0x40]
pxor xmm1, xmm0
lea rax, [rcx + rdi]
movdqu xmmword [rcx - 0x60], xmm1
movdqu xmm0, xmmword [rcx - 0x50]
movdqu xmm1, xmmword [rcx + r11 - 0x60]
pxor xmm1, xmm0
movdqu xmmword [rcx - 0x50], xmm1
movdqu xmm0, xmmword [rcx - 0x40]
movdqu xmm1, xmmword [rcx + r11 - 0x40]
pxor xmm2, xmm0
movdqu xmmword [rcx - 0x40], xmm2
movdqu xmm0, xmmword [rcx - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rcx - 0x30], xmm1
cmp rax, rbp
jl 0x1400f3050
mov eax, esi
and al, 0x3f
cmp al, 8
jb 0x1400f3105
mov eax, esi
and eax, 0x80000007
jge 0x1400f30cc
dec eax
or eax, 0xfffffff8
inc eax
sub esi, eax
movsxd rcx, r8d
add rcx, rdx
movsxd r11, esi
lea r9, [rsp + 0x40]
sub r9, rdx
nop
movq xmm0, qword [rcx]
add r8d, 8
movq xmm1, qword [rcx + r9]
pxor xmm1, xmm0
movq qword [rcx], xmm1
add rcx, 8
mov rax, rcx
sub rax, rdx
cmp rax, r11
jl 0x1400f30e0
movsxd rcx, r8d
cmp rcx, rbx
jge 0x1400f3131
lea r8, [rsp + 0x40]
sub r8, rdx
lea rax, [rcx + rdx]
sub rbx, rcx
nop dword [rax]
movzx ecx, byte [rax + r8]
xor byte [rax], cl
lea rax, [rax + 1]
sub rbx, 1
jne 0x1400f3120
mov r15, qword [rsp + 0x78]
mov eax, r10d
mov rdi, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x90]
jmp 0x1400f3150
mov eax, 0xffffff06
mov r12, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.140167e90
add rsp, 0x98
pop r14
pop r13
pop rsi
pop rbp
ret