Function at 0x1400c9910
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push r12
push r13
push r14
sub rsp, 0xb0
mov rax, qword [0x1409b0280]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov r12, qword [rsp + 0x100]
mov r13d, r9d
mov esi, dword [rsp + 0x118]
mov r9, rcx
mov ecx, dword [rsp + 0x108]
mov r14, r8
mov r10d, edx
call fcn.1400bfa60
mov ebp, eax
test eax, eax
js 0x1400c9c63
mov eax, dword [rsp + 0x120]
lea ecx, [rax - 1]
and ecx, 7
mov dword [rsp + 0x30], ecx
jne 0x1400c9980
mov byte [r14], 0
inc r14
dec r13d
mov qword [rsp + 0x98], r15
cmp esi, 0xffffffff
jne 0x1400c99a0
mov esi, ebp
cmp eax, 0x400
jne 0x1400c99b1
cmp ebp, 0x40
jne 0x1400c99b1
lea esi, [rbp - 2]
jmp 0x1400c99b1
cmp esi, ebp
jg 0x1400c9c56
cmp esi, 0xffffffff
jl 0x1400c9c56
mov r15d, r13d
lea eax, [rsi + 2]
sub r15d, ebp
cmp r15d, eax
jl 0x1400c9c56
mov qword [rsp + 0xa8], rbx
xor eax, eax
mov qword [rsp + 0xa0], rdi
mov r8, r10
lea rdi, [r14 + 8]
mov qword [r14], rax
mov rcx, rdi
lea rbx, [rdi + r10]
mov rdx, r9
dec r15d
call fcn.140195690
test esi, esi
jle 0x1400c9a28
mov r8d, esi
lea rdx, [rsp + 0x40]
mov rcx, r12
call fcn.1400d8890
mov r9d, eax
test eax, eax
jne 0x1400c9c41
movsxd r12, esi
lea rdx, [rsp + 0x40]
mov r8, r12
mov rcx, rbx
call fcn.140195690
add rbx, r12
jmp 0x1400c9a2b
movsxd r12, esi
mov ecx, dword [rsp + 0x108]
sub ebx, r14d
movsxd rax, r15d
mov r8d, ebx
mov rdx, r14
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x20], ebp
lea rdi, [rax + r14]
mov r9, rdi
call fcn.1400bfb80
mov r9d, eax
test eax, eax
jne 0x1400c9c41
mov ecx, dword [rsp + 0x110]
lea eax, [r13 - 1]
mov byte [rax + r14], 0xbc
sub ecx, 1
je 0x1400c9aa2
sub ecx, 1
je 0x1400c9a9b
sub ecx, 1
je 0x1400c9a94
cmp ecx, 0x17
je 0x1400c9a8d
mov r9d, 0xffffff53
jmp 0x1400c9c41
mov ecx, 4
jmp 0x1400c9aa7
mov ecx, 8
jmp 0x1400c9aa7
mov ecx, 7
jmp 0x1400c9aa7
mov ecx, 6
mov r9, r14
mov dword [rsp + 0x20], r15d
mov r8d, ebp
mov rdx, rdi
call fcn.1400c93d0
mov r9d, eax
test eax, eax
jne 0x1400c9c41
mov rdx, qword [rsp + 0x38]
mov eax, 1
mov ecx, dword [rsp + 0x30]
sub rdx, r12
add rdx, r14
shl al, cl
dec al
xor r8d, r8d
and byte [r14], al
xor byte [rdx - 1], 1
test esi, esi
jle 0x1400c9c14
cmp esi, 8
jb 0x1400c9c14
lea eax, [rsi - 1]
movsxd rcx, eax
lea rax, [rsp + 0x40]
add rax, rcx
lea r10, [rcx + rdx]
cmp rdx, rax
ja 0x1400c9b1d
lea rax, [rsp + 0x40]
cmp r10, rax
jae 0x1400c9c14
cmp esi, 0x40
jb 0x1400c9bc8
mov ecx, esi
and ecx, 0x8000003f
jge 0x1400c9b37
dec ecx
or ecx, 0xffffffc0
inc ecx
mov eax, esi
sub eax, ecx
lea r10, [rsp + 0x40]
movsxd rdi, eax
lea r11, [rsp + 0x50]
sub r10, rdx
sub r11, rdx
lea rcx, [rdx + 0x20]
mov rbx, 0xffffffffffffffe0
sub rbx, rdx
nop dword [rax]
movdqu xmm0, xmmword [rcx - 0x20]
add r8d, 0x40
movdqu xmm1, xmmword [rcx + r10 - 0x20]
movdqu xmm2, xmmword [rcx + r10]
lea rcx, [rcx + 0x40]
xorps xmm1, xmm0
lea rax, [rcx + rbx]
movdqu xmmword [rcx - 0x60], xmm1
movdqu xmm0, xmmword [rcx - 0x50]
movdqu xmm1, xmmword [rcx + r11 - 0x60]
xorps xmm1, xmm0
movdqu xmmword [rcx - 0x50], xmm1
movdqu xmm0, xmmword [rcx - 0x40]
movdqu xmm1, xmmword [rcx + r11 - 0x40]
xorps xmm2, xmm0
movdqu xmmword [rcx - 0x40], xmm2
movdqu xmm0, xmmword [rcx - 0x30]
xorps xmm1, xmm0
movdqu xmmword [rcx - 0x30], xmm1
cmp rax, rdi
jl 0x1400c9b60
mov eax, esi
and al, 0x3f
cmp al, 8
jb 0x1400c9c14
mov eax, esi
and eax, 0x80000007
jge 0x1400c9bd8
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, esi
sub ecx, eax
movsxd rax, r8d
lea r10, [rsp + 0x40]
movsxd r11, ecx
sub r10, rdx
lea rcx, [rax + rdx]
nop
movq xmm0, qword [rcx]
add r8d, 8
movq xmm1, qword [rcx + r10]
xorps xmm1, xmm0
movq qword [rcx], xmm1
add rcx, 8
mov rax, rcx
sub rax, rdx
cmp rax, r11
jl 0x1400c9bf0
movsxd rcx, r8d
movsxd r8, esi
cmp rcx, r8
jge 0x1400c9c41
lea r10, [rsp + 0x40]
sub r10, rdx
lea rax, [rcx + rdx]
sub r8, rcx
nop
movzx ecx, byte [rax + r10]
xor byte [rax], cl
lea rax, [rax + 1]
sub r8, 1
jne 0x1400c9c30
mov rdi, qword [rsp + 0xa0]
mov eax, r9d
mov rbx, qword [rsp + 0xa8]
jmp 0x1400c9c5b
mov eax, 0xffffff06
mov r15, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.14015a1f0
add rsp, 0xb0
pop r14
pop r13
pop r12
pop rsi
pop rbp
ret