Function at 0x1400ec967
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov ebp, 0xffffff9a
test rcx, rcx
je 0x1400ecbf5
mov r12, rcx
mov rdi, qword [rcx + 0x110]
test rdi, rdi
je 0x1400ecbf5
cmp qword [rdi], 0
je 0x1400ecbf0
xor ebp, ebp
test r8d, r8d
je 0x1400ecbf5
mov qword [rdi + 0x18], rdx
mov dword [rdi + 0x20], r8d
mov ecx, r8d
mov rax, qword [rdi + 0x98]
mov ebx, dword [rdi + 0x10]
mov rdx, rbx
add rdx, rax
cmp rdx, rcx
jae 0x1400ec9e1
cmp dword [rdi + 0x118], 0
je 0x1400ec9e1
add eax, ebx
mov dword [rdi + 0x20], eax
je 0x1400ecbf5
lea rax, [rdi + 8]
mov qword [rsp + 0x28], rax
lea rax, [rdi + 0xa8]
mov qword [rsp + 0x30], rax
lea r13, [r12 + 0x120]
xor r14d, r14d
mov r15d, 0xfffd
test ebx, ebx
je 0x1400eca63
mov eax, dword [rdi + 0x108]
test eax, eax
je 0x1400eca22
cmp dword [rdi + 0x118], 0
je 0x1400ecb87
test ebx, ebx
jne 0x1400eca34
cmp qword [rdi + 0x98], 0
je 0x1400ecc0f
mov eax, dword [rdi + 0x20]
cmp eax, ebx
cmovb ebx, eax
test ebx, ebx
je 0x1400ecb39
mov esi, ebx
xor eax, eax
mov rcx, qword [rdi + 8]
mov rdx, qword [rdi + 0x18]
mov cl, byte [rcx + rax]
mov byte [rdx + rax], cl
inc rax
cmp rsi, rax
jne 0x1400eca48
jmp 0x1400ecb3b
mov rbx, qword [rdi + 0x98]
test rbx, rbx
je 0x1400ecbe9
mov eax, 0x4000
cmp rbx, rax
cmovae rbx, rax
mov rdx, qword [rdi + 0x100]
mov r8, qword [rdi + 0x110]
add r8, qword [rdi + 0x60]
mov rcx, qword [rsp + 0x30]
xor r9d, r9d
call fcn.1400ef551
mov ebp, 0xffffffff
test eax, eax
jne 0x1400ecbf5
mov rdx, qword [rdi + 0x100]
mov r8, qword [rdi]
mov rcx, qword [rdi + 0xe0]
mov r9d, ebx
call qword [rdi + 0xb0]
cmp eax, ebx
jne 0x1400ecbf5
cmp dword [r12 + 0x118], 0
je 0x1400ecb1f
xor esi, esi
mov eax, dword [r12 + 0x128]
and eax, r15d
lea ecx, [rax + 2]
xor eax, 3
imul eax, ecx
shr eax, 8
mov rcx, qword [rdi]
xor al, byte [rcx + rsi]
mov byte [rcx + rsi], al
movsx ebp, al
mov rdx, qword [r12 + 0x130]
mov rcx, r13
mov r8d, ebp
call fcn.1400ec917
mov rax, qword [rdi]
mov byte [rax + rsi], bpl
inc rsi
cmp rbx, rsi
jne 0x1400ecada
add qword [rdi + 0x60], rbx
sub qword [rdi + 0x98], rbx
mov rax, qword [rdi]
mov qword [rdi + 8], rax
mov dword [rdi + 0x10], ebx
jmp 0x1400eca0b
xor esi, esi
add qword [rdi + 0x88], rsi
mov rdx, qword [rdi + 0x18]
mov ecx, dword [rdi + 0x90]
mov r8d, ebx
call fcn.1400c7ec4
mov dword [rdi + 0x90], eax
sub qword [rdi + 0xa0], rsi
sub dword [rdi + 0x10], ebx
sub dword [rdi + 0x20], ebx
add qword [rdi + 0x18], rsi
add qword [rdi + 8], rsi
add dword [rdi + 0x24], ebx
add r14d, ebx
cmp dword [rdi + 0x20], 0
je 0x1400ecc08
mov ebx, dword [rdi + 0x10]
jmp 0x1400eca07
cmp eax, 0xc
je 0x1400ecb75
mov esi, dword [rdi + 0x24]
mov rbp, qword [rdi + 0x18]
mov rcx, qword [rsp + 0x28]
mov edx, 2
call fcn.140035614
mov ebx, eax
test eax, eax
js 0x1400ecbb5
cmp qword [rdi + 0x28], 0
mov eax, 0xfffffffd
cmovne ebx, eax
mov rdx, rbp
mov ebp, dword [rdi + 0x24]
mov ecx, dword [rdi + 0x90]
sub rbp, rsi
add qword [rdi + 0x88], rbp
mov r8d, ebp
call fcn.1400c7ec4
mov dword [rdi + 0x90], eax
sub qword [rdi + 0xa0], rbp
add r14d, ebp
test ebx, ebx
je 0x1400ecb75
jmp 0x1400ecc14
xor ebx, ebx
jmp 0x1400eca0b
mov ebp, 0xffffff9c
mov eax, ebp
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ebx, r14d
mov ebp, ebx
jmp 0x1400ecbf5
mov ebp, r14d
jmp 0x1400ecbf5
mov ebp, r14d
cmp ebx, 1
je 0x1400ecbf5
jmp 0x1400ecc0b