Function at 0x1400dc8ef
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
xor ebp, ebp
test rcx, rcx
je 0x1400dccd9
mov r15, r8
test r8, r8
je 0x1400dccd9
mov r13, rdx
mov rsi, rcx
test rdx, rdx
je 0x1400dc962
mov rcx, r15
call fcn.140184350
mov rdi, rax
mov rcx, r13
call fcn.140184350
mov rbp, rax
mov eax, dword [rsi + 0x30]
mov qword [rsp + 0x28], rsi
mov rsi, qword [rsi + 0x10]
cmp rsi, 0x80
jne 0x1400dc983
mov dword [rsp + 0x20], eax
mov rcx, r13
mov edx, ebp
mov r8, r15
mov r9d, edi
call fcn.1400dcd48
jmp 0x1400dc997
mov rcx, rsi
mov rdx, r15
mov r8d, 0xffffffff
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1400dc125
mov dword [rsp + 0x20], eax
mov rcx, r13
mov edx, ebp
mov r8, r15
mov r9d, edi
call fcn.1400dceec
mov ebx, eax
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x48], rdi
lea eax, [rdi + rbp]
inc eax
mov dword [rsp + 0x34], eax
mov ebp, ebx
xor r12d, r12d
mov rax, rbp
xor edx, edx
div rsi
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax + 8]
mov rax, rdx
mov qword [rsp + 0x40], rdx
shl rdx, 5
cmp dword [rcx + rdx + 0x14], 0
mov edi, ebx
je 0x1400dca2f
lea r14, [rcx + rdx]
mov rax, qword [rcx + rdx]
cmp dword [rcx + rdx + 0x18], edi
sete cl
xor r12d, r12d
test rax, rax
je 0x1400dca39
mov esi, dword [rsp + 0x34]
mov rbx, qword [rsp + 0x28]
test cl, 1
je 0x1400dca18
cmp dword [r14 + 0x10], esi
jne 0x1400dca18
mov r8, qword [r14 + 8]
mov rcx, r13
mov rdx, r15
call fcn.14007f5d4
test eax, eax
jne 0x1400dca5f
mov rax, qword [r14]
mov r14, rax
inc r12d
mov rax, qword [rax]
cmp dword [r14 + 0x18], edi
sete cl
test rax, rax
jne 0x1400dc9f7
jmp 0x1400dca42
xor r14d, r14d
mov rbx, qword [rsp + 0x28]
jmp 0x1400dca68
mov esi, dword [rsp + 0x34]
mov rbx, qword [rsp + 0x28]
test cl, cl
je 0x1400dca68
cmp dword [r14 + 0x10], esi
jne 0x1400dca68
mov r8, qword [r14 + 8]
mov rcx, r13
mov rdx, r15
call fcn.14007f5d4
test eax, eax
je 0x1400dca68
mov rbp, qword [r14 + 8]
jmp 0x1400dccd9
mov rsi, qword [rbx + 0x28]
test rsi, rsi
mov qword [rsp + 0x60], r15
mov dword [rsp + 0x5c], edi
je 0x1400dcb93
mov qword [rsp + 0x40], rbp
cmp qword [rbx + 0x10], 0x80
mov rbp, qword [rsi + 0x10]
mov qword [rsp + 0x38], r13
mov ebx, edi
jne 0x1400dcac1
cmp rbp, 0x80
je 0x1400dcaea
mov eax, dword [rsi + 0x30]
mov dword [rsp + 0x20], eax
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x50]
mov r8, r15
mov r9, qword [rsp + 0x48]
call fcn.1400dceec
jmp 0x1400dcae8
cmp rbp, 0x80
jne 0x1400dcaea
mov eax, dword [rsi + 0x30]
mov dword [rsp + 0x20], eax
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x50]
mov r8, r15
mov r9, qword [rsp + 0x48]
call fcn.1400dcd48
mov ebx, eax
mov eax, ebx
xor edx, edx
div rbp
mov rcx, qword [rsi + 8]
shl rdx, 5
cmp dword [rcx + rdx + 0x14], 0
je 0x1400dcb79
lea rbp, [rcx + rdx]
mov rax, qword [rcx + rdx]
cmp dword [rcx + rdx + 0x18], ebx
sete cl
test rax, rax
mov esi, dword [rsp + 0x34]
je 0x1400dcb4f
test cl, 1
je 0x1400dcb3b
cmp dword [rbp + 0x10], esi
jne 0x1400dcb3b
mov r8, qword [rbp + 8]
mov rcx, qword [rsp + 0x38]
mov rdx, r15
call fcn.14007f5d4
test eax, eax
jne 0x1400dcb70
mov rax, qword [rbp]
mov rbp, rax
inc r12d
mov rax, qword [rax]
cmp dword [rbp + 0x18], ebx
sete cl
test rax, rax
jne 0x1400dcb18
test cl, cl
je 0x1400dcb79
cmp dword [rbp + 0x10], esi
jne 0x1400dcb79
mov r8, qword [rbp + 8]
mov r13, qword [rsp + 0x38]
mov rcx, r13
mov rdx, r15
call fcn.14007f5d4
test eax, eax
je 0x1400dcb7e
mov rbp, qword [rbp + 8]
jmp 0x1400dccd9
mov r13, qword [rsp + 0x38]
mov rax, qword [rsp + 0x40]
xor edx, edx
mov rbx, qword [rsp + 0x28]
div qword [rbx + 0x10]
mov qword [rsp + 0x40], rdx
mov rcx, qword [rsp + 0x48]
mov rdi, rbx
mov r15, qword [rbx + 0x20]
mov rax, qword [rsp + 0x50]
lea r8, [rax + rcx]
test r15, r15
je 0x1400dcc0d
mov rdi, rcx
lea edx, [r8 + 1]
xor ecx, ecx
xor esi, esi
mov rbp, qword [r15 + 8]
mov rax, qword [r15 + 0x10]
sub rax, rbp
cmp rax, rdx
ja 0x1400dcc6b
mov rax, qword [r15 + 0x18]
cmp rax, rsi
cmova rsi, rax
mov rbx, qword [r15]
add rcx, rax
mov r15, rbx
test rbx, rbx
jne 0x1400dcbb8
mov rax, qword [rsp + 0x28]
mov rdx, qword [rax + 0x38]
test rdx, rdx
je 0x1400dcbfc
cmp rcx, rdx
ja 0x1400dccd7
test rsi, rsi
mov rcx, rdi
je 0x1400dcc0d
mov rdi, rcx
shl rsi, 2
jmp 0x1400dcc15
mov rdi, rcx
mov esi, 0x3e8
lea eax, [r8*4 + 4]
cmp rsi, rax
cmovb rsi, rax
lea rcx, [rsi + 0x30]
call qword [case.0x1400878dc.1]
test rax, rax
je 0x1400dccd7
mov r15, rax
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], 0
add rax, 0x28
mov qword [r15 + 8], rax
lea rax, [r15 + rsi + 0x28]
mov qword [r15 + 0x10], rax
mov rcx, qword [rsp + 0x28]
mov rax, qword [rcx + 0x20]
mov qword [r15], rax
mov qword [rcx + 0x20], r15
mov rbp, qword [r15 + 8]
mov esi, dword [rsp + 0x50]
mov rcx, rbp
mov rdx, r13
mov r8, rsi
call fcn.1401667e0
mov rax, qword [r15 + 8]
add rax, rsi
inc rax
mov qword [r15 + 8], rax
mov byte [rax - 1], 0x3a
mov rcx, qword [r15 + 8]
mov esi, edi
mov rdx, qword [rsp + 0x60]
mov r8, rsi
call fcn.1401667e0
mov rax, qword [r15 + 8]
add rax, rsi
inc rax
mov qword [r15 + 8], rax
mov byte [rax - 1], 0
inc qword [r15 + 0x20]
test rbp, rbp
je 0x1400dccd7
test r14, r14
je 0x1400dcced
mov ecx, 0x20
call qword [case.0x1400878dc.1]
test rax, rax
mov rcx, qword [rsp + 0x28]
jne 0x1400dccfe
xor ebp, ebp
mov rax, rbp
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [rsp + 0x40]
shl rax, 5
mov rcx, qword [rsp + 0x28]
add rax, qword [rcx + 8]
xor edx, edx
mov qword [rax + 8], rbp
mov ebx, dword [rsp + 0x34]
mov dword [rax + 0x10], ebx
mov qword [rax], rdx
mov dword [rax + 0x14], 1
mov edx, dword [rsp + 0x5c]
mov dword [rax + 0x18], edx
test r14, r14
je 0x1400dcd24
mov qword [r14], rax
inc dword [rcx + 0x18]
cmp r12d, 4
jb 0x1400dccd9
mov rax, qword [rcx + 0x10]
cmp rax, 0xaaa
ja 0x1400dccd9
add rax, rax
lea rdx, [rax + rax*2]
call fcn.1400dc5c9
jmp 0x1400dccd9