Function at 0x1401ecc70
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0x80]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rcx
movsxd rax, dword [0x14036bd48]
mov ecx, dword [0x14036bd44]
test rdx, rdx
je 0x1401ecd18
mov r9, rdx
lea rdx, [0x14036bd48]
add rax, rdx
mov edx, dword [0x140457284]
lea r12d, [rdx + 1]
mov dword [0x140457284], r12d
mov rdi, r8
xor r13d, r13d
test edx, r12d
mov qword [rbp - 0x28], rdx
jne 0x1401eccf0
test ecx, ecx
jle 0x1401eccf0
xor edx, edx
xor r13d, r13d
nop
movsxd r8, edx
add r8, rax
xor r13d, dword [r8]
add edx, 4
cmp edx, ecx
jl 0x1401ecce0
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], 0xf
mov byte [rbp - 0x20], 0
cmp rdi, 0xf
jbe 0x1401ecd2c
lea rcx, [rbp - 0x20]
mov rdx, rdi
call fcn.1400733f0
jmp 0x1401ecd44
cmp qword [rsi + 0x20], 0x10
jb 0x1401ecdb3
mov rax, qword [rsi + 8]
jmp 0x1401ecdb7
mov qword [rbp - 0x10], rdi
lea rcx, [rbp - 0x20]
mov rdx, r9
mov r8, rdi
call fcn.1403414a0
mov byte [rbp + rdi - 0x20], 0
mov r15, qword [rbp - 0x10]
cmp qword [rbp - 8], 0x10
jb 0x1401ecd55
mov r14, qword [rbp - 0x20]
jmp 0x1401ecd59
lea r14, [rbp - 0x20]
lea rbx, [rbp - 0x48]
cmp r15, 0xf
ja 0x1401ecd71
movups xmm0, xmmword [r14]
movups xmmword [rbx], xmm0
mov edi, 0xf
jmp 0x1401ecdf0
mov rdi, r15
or rdi, 0xf
add rdi, qword [0x140491768]
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
cmovae rdi, rax
cmp rdi, 0xfff
jb 0x1401ecdc7
lea rcx, [rdi + 0x28]
call fcn.14031953c
mov rcx, rax
add rcx, 0x27
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x1401ecdd3
lea rax, [rsi + 8]
mov qword [rsi + 0x18], 0
mov byte [rax], 0
jmp 0x1401ecf0a
lea rcx, [rdi + 1]
call fcn.14031953c
mov rcx, rax
mov qword [rbp - 0x48], rcx
mov rax, r15
xor rax, 1
mov edx, r15d
and edx, 1
lea r8, [rax + rdx*2]
mov rdx, r14
call fcn.1403414a0
mov qword [rbp - 0x38], r15
mov qword [rbp - 0x30], rdi
lea rax, [0x14035c428]
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x50]
cmp rax, rsi
je 0x1401ece7e
lea r14, [rsi + 8]
test r15, r15
je 0x1401ece38
cmp rdi, 0x10
jb 0x1401ece1f
mov rbx, qword [rbp - 0x48]
mov rax, qword [rsi + 0x20]
cmp rax, r15
jae 0x1401ece57
mov rcx, r14
mov rdx, r15
mov r9, rbx
call fcn.1400733f0
jmp 0x1401ece7a
mov rax, qword [0x140490db8]
add rax, qword [rsi + 0x20]
cmp rax, 0x10
jb 0x1401ece4d
mov r14, qword [rsi + 8]
mov qword [rsi + 0x18], 0
jmp 0x1401ece76
cmp rax, 0x10
jb 0x1401ece61
mov r14, qword [rsi + 8]
mov qword [rsi + 0x18], r15
mov rcx, r14
mov rdx, rbx
mov r8, r15
call fcn.1403414a0
add r14, r15
mov byte [r14], 0
mov rdi, qword [rbp - 0x30]
cmp rdi, 0x10
jb 0x1401ecec2
mov rdx, qword [rbp - 0x48]
lea r8, [rdi + 1]
cmp r8, 0x1000
jb 0x1401eceb0
mov rax, qword [rdx - 8]
sub rdx, rax
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x1401ecf21
add rdi, 0x28
mov r8, rdi
mov rdx, rax
mov dword [rsp + 0x20], 0xfaf5f4c4
xor ecx, ecx
xor r9d, r9d
call fcn.1400ed740
mov rax, qword [rbp - 8]
cmp rax, 0x10
jb 0x1401ecf0a
mov rdx, qword [rbp - 0x20]
lea r8, [rax + 1]
cmp r8, 0x1000
jb 0x1401ecef8
mov rcx, qword [rdx - 8]
sub rdx, rcx
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x1401ecf26
add rax, 0x28
mov r8, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0xfaf5f4c4
xor ecx, ecx
xor r9d, r9d
call fcn.1400ed740
mov rax, rsi
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.1402f9bec
mov rdx, qword [rbp - 0x28]
and edx, r12d
mov eax, dword [0x14036bd78]
xor ecx, ecx
cmp edx, 1
sbb ecx, ecx
sub eax, r13d
and eax, ecx
add dword [0x1404902e4], eax
call fcn.1402f9bec
int3