Function at 0x14003cae0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
movaps xmmword [rsp + 0x70], xmm6
mov qword [rsp + 0x68], rdx
mov rax, qword [rcx + 0x30]
test rax, rax
je 0x14003cc9c
mov rdi, qword [rcx + 0x20]
imul r15, rax, 0xa8
add r15, rdi
lea r12, [rsp + 0x40]
xor r14d, r14d
movabs rbp, 0x6c7967656e657261
movabs rsi, 0x646f72616e646f6d
movabs r13, 0x7465646279746573
xorps xmm6, xmm6
lea rbx, [rsp + 0x20]
nop word cs:[rax + rax]
movabs rax, 0x736f6d6570736575
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], r13
movups xmmword [r12 + 0x10], xmm6
movups xmmword [r12], xmm6
mov qword [r12 + 0x20], 0
mov rcx, rdi
mov rdx, rbx
call fcn.14003f030
lea rcx, [rdi + 0x50]
mov rdx, rbx
call fcn.14003f030
mov rax, qword [rsp + 0x30]
mov r9, qword [rsp + 0x50]
shl r9, 0x38
or r9, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x20]
add r8, rax
rol rax, 0xd
xor rcx, r9
xor rax, r8
rol r8, 0x20
mov rdx, qword [rsp + 0x28]
add rdx, rcx
rol rcx, 0x10
xor rcx, rdx
add r8, rcx
rol rcx, 0x15
add rdx, rax
rol rax, 0x11
xor rcx, r8
xor rax, rdx
rol rdx, 0x20
xor r8, r9
add r8, rax
rol rax, 0xd
xor rax, r8
rol r8, 0x20
xor rdx, 0xff
add rdx, rcx
rol rcx, 0x10
xor rcx, rdx
add r8, rcx
rol rcx, 0x15
add rdx, rax
rol rax, 0x11
xor rax, rdx
rol rdx, 0x20
xor rcx, r8
add r8, rax
rol rax, 0xd
xor rax, r8
rol r8, 0x20
add rdx, rcx
rol rcx, 0x10
xor rcx, rdx
add r8, rcx
rol rcx, 0x15
add rdx, rax
rol rax, 0x11
xor rax, rdx
rol rdx, 0x20
xor rcx, r8
add r8, rax
rol rax, 0xd
add rdx, rcx
rol rcx, 0x10
xor rax, r8
xor rcx, rdx
rol rcx, 0x15
add rdx, rax
rol rax, 0x11
xor rax, r14
mov r14, rdx
rol r14, 0x20
xor r14, rax
xor r14, rcx
xor r14, rdx
add rdi, 0xa8
cmp rdi, r15
jne 0x14003cb50
jmp 0x14003cc9f
xor r14d, r14d
mov rdi, qword [rsp + 0x68]
add qword [rdi + 0x30], 8
mov qword [rsp + 0x20], r14
mov r8, qword [rdi + 0x40]
test r8, r8
je 0x14003cd44
mov r10d, 8
mov edx, 8
sub rdx, r8
cmp rdx, 8
cmovb r10, rdx
xor r9d, r9d
xor eax, eax
cmp r10, 4
mov ecx, r14d
cmovae r9, rcx
setae al
lea rcx, [rax*4 + 1]
shl rax, 2
cmp rcx, r10
jae 0x14003cd0c
movzx r11d, word [rsp + rax + 0x20]
lea ecx, [rax*8]
shl r11, cl
or r9, r11
or rax, 2
cmp rax, r10
jae 0x14003cd22
movzx r10d, byte [rsp + rax + 0x20]
shl eax, 3
mov ecx, eax
shl r10, cl
or r9, r10
lea ecx, [r8*8]
shl r9, cl
or r9, qword [rdi + 0x38]
mov qword [rdi + 0x38], r9
cmp r8, 8
jbe 0x14003cd48
add r8, 8
jmp 0x14003ce89
xor edx, edx
jmp 0x14003cd9c
mov r8, qword [rdi + 0x18]
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi]
add rax, rcx
rol rcx, 0xd
xor r8, r9
xor rcx, rax
rol rax, 0x20
mov r10, qword [rdi + 8]
add r10, r8
rol r8, 0x10
xor r8, r10
add rax, r8
rol r8, 0x15
xor r8, rax
add r10, rcx
rol rcx, 0x11
mov qword [rdi + 0x18], r8
xor rcx, r10
rol r10, 0x20
mov qword [rdi + 0x10], rcx
mov qword [rdi + 8], r10
xor rax, r9
mov qword [rdi], rax
mov eax, 8
sub rax, rdx
mov r8d, eax
and r8d, 7
and rax, 0xfffffffffffffff8
cmp rdx, rax
jae 0x14003ce23
mov rcx, qword [rdi]
mov r9, qword [rdi + 8]
mov r11, qword [rdi + 0x18]
mov r10, qword [rdi + 0x10]
nop word cs:[rax + rax]
add rcx, r10
rol r10, 0xd
mov rsi, qword [rsp + rdx + 0x20]
xor r10, rcx
rol rcx, 0x20
xor r11, rsi
add r9, r11
rol r11, 0x10
xor r11, r9
add rcx, r11
rol r11, 0x15
add r9, r10
rol r10, 0x11
xor r10, r9
rol r9, 0x20
xor r11, rcx
xor rcx, rsi
add rdx, 8
cmp rdx, rax
jb 0x14003cdd0
mov qword [rdi + 0x18], r11
mov qword [rdi + 0x10], r10
mov qword [rdi + 8], r9
mov qword [rdi], rcx
cmp r8d, 3
jbe 0x14003ce41
mov r9d, dword [rsp + rdx + 0x20]
mov eax, 4
mov rcx, rax
or rcx, 1
cmp rcx, r8
jb 0x14003ce52
jmp 0x14003ce6d
xor r9d, r9d
xor eax, eax
mov rcx, rax
or rcx, 1
cmp rcx, r8
jae 0x14003ce6d
lea rcx, [rax + rdx]
movzx r10d, word [rsp + rcx + 0x20]
lea ecx, [rax*8]
shl r10, cl
or r9, r10
or rax, 2
cmp rax, r8
jae 0x14003ce85
add rdx, rax
movzx edx, byte [rsp + rdx + 0x20]
shl eax, 3
mov ecx, eax
shl rdx, cl
or r9, rdx
mov qword [rdi + 0x38], r9
mov qword [rdi + 0x40], r8
movaps xmm6, xmmword [rsp + 0x70]
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rsi, rdx
mov rdi, rcx
lea rbx, [rsp + 0x20]
nop word cs:[rax + rax]
movzx r14d, byte [rdi]
mov qword [rsp + 0x20], r14
mov r8d, 8
mov rcx, rsi
mov rdx, rbx
call fcn.14001b780
cmp r14, 6
jne 0x14003f0a7
mov rdi, qword [rdi + 8]
mov rcx, qword [rdi + 0x50]
mov rdx, qword [rdi + 0x60]
call fcn.140048190
mov r8, rdx
mov rcx, rsi
mov rdx, rax
call fcn.14001b780
mov byte [rsp + 0x20], 0xff
mov r8d, 1
mov rcx, rsi
mov rdx, rbx
call fcn.14001b780
jmp 0x14003f050
lea rax, [0x14003f1a8]
movsxd rcx, dword [rax + r14*4]
add rcx, rax
jmp rcx
movzx eax, byte [rdi + 1]
mov byte [rsp + 0x20], al
jmp 0x14003f101
mov rax, qword [rdi + 8]
test rax, rax
je 0x14003f0d3
cmp eax, 1
jne 0x14003f182
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x20]
mov r8d, 8
jmp 0x14003f195
mov rdx, qword [rdi + 8]
mov r8, qword [rdi + 0x18]
mov rcx, rsi
call fcn.14001b780
mov byte [rsp + 0x20], 0xff
lea rdx, [rsp + 0x20]
mov r8d, 1
mov rcx, rsi
call fcn.14001b780
jmp case.0x14003f0b5.0
mov rbx, qword [rdi + 8]
mov rdi, qword [rdi + 0x18]
mov qword [rsp + 0x20], rdi
lea rdx, [rsp + 0x20]
mov r8d, 8
mov rcx, rsi
call fcn.14001b780
test rdi, rdi
je case.0x14003f0b5.0
shl rdi, 4
lea rdi, [rdi + rdi*4]
nop word cs:[rax + rax]
lea r14, [rbx + 0x50]
mov rcx, rbx
mov rdx, rsi
call fcn.14003f030
mov rbx, r14
add rdi, 0xffffffffffffffb0
jne 0x14003f150
jmp case.0x14003f0b5.0
add rdi, 8
mov rcx, rdi
mov rdx, rsi
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
jmp 0x14003cae0
mov dword [rsp + 0x20], 3
lea rdx, [rsp + 0x20]
mov r8d, 4
mov rcx, rsi
call fcn.14001b780
nop
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret