Function at 0x14002da50
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x78
lea eax, [r9*8]
mov rsi, r8
mov r8, rdx
mov rbx, rcx
test rcx, rcx
je 0x14002ded0
test rdx, rdx
je 0x14002ded0
movzx ecx, byte [rcx]
cmp cl, 3
je 0x14002da91
cmp byte [rdx], 0
je 0x14002ded0
cdq
and edx, 0x7f
lea r14d, [rdx + rax]
mov edx, ecx
sar r14d, 7
mov dword [rsp + 0x64], r14d
sub edx, 1
je 0x14002de8b
sub edx, 1
je 0x14002ddd1
cmp edx, 1
jne 0x14002ded0
mov eax, dword [rbx + 5]
mov ecx, dword [rbx + 1]
mov dword [rsp + 0x44], eax
mov eax, dword [rbx + 9]
mov dword [rsp + 0x48], eax
mov eax, dword [rbx + 0xd]
mov dword [rsp + 0x4c], eax
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x60], r14d
test r14d, r14d
jle 0x14002debc
movzx ecx, byte [rsp + 0x49]
lea rdx, [r8 + 0x30]
movzx ebp, byte [rsp + 0x4f]
movzx r15d, byte [rsp + 0x4e]
movzx r14d, byte [rsp + 0x4b]
mov byte [rsp + 0x38], cl
movzx ecx, byte [rsp + 0x47]
mov byte [rsp + 0x2c], cl
movzx ecx, byte [rsp + 0x45]
mov qword [rsp + 0xb8], r12
movzx r12d, byte [rsp + 0x4d]
mov byte [rsp + 0x28], cl
movzx ecx, byte [rsp + 0x43]
mov qword [rsp + 0x70], r13
movzx r13d, al
movzx eax, byte [rsp + 0x4a]
mov byte [rsp + 0x3a], al
movzx eax, byte [rsp + 0x48]
mov byte [rsp + 0x30], al
movzx eax, byte [rsp + 0x46]
mov byte [rsp + 0x2a], al
movzx eax, byte [rsp + 0x44]
mov byte [rsp + 0x24], al
movzx eax, byte [rsp + 0x42]
mov byte [rsp + 0x20], al
movzx eax, byte [rsp + 0x40]
mov byte [rsp + 0x22], cl
movzx ecx, byte [rsp + 0x41]
mov byte [rsp + 0xb0], al
mov qword [rsp + 0x68], rdx
mov byte [rsp + 0xc8], cl
movzx ebx, byte [rsp + 0x3a]
xor edi, edi
nop word [rax + rax]
movaps xmm0, xmmword [rsp + 0x40]
lea rcx, [rsp + 0x50]
mov r8, rdx
movdqa xmmword [rsp + 0x50], xmm0
lea rdx, [rsp + 0x50]
call fcn.14002eac0
movzx ecx, byte [rsp + 0xc8]
movzx r10d, bl
movzx eax, byte [rsp + 0xb0]
movzx r11d, byte [rsp + 0x38]
add al, al
shr cl, 7
or cl, al
shr r11b, 7
movzx eax, byte [rsp + 0xc8]
mov byte [rsp + 0xb0], cl
add al, al
mov byte [rsp + 0x40], cl
movzx ecx, byte [rsp + 0x20]
shr cl, 7
or cl, al
shr r10b, 7
movzx eax, byte [rsp + 0x20]
mov byte [rsp + 0xc8], cl
add al, al
mov byte [rsp + 0x41], cl
movzx ecx, byte [rsp + 0x22]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x22]
mov byte [rsp + 0x20], cl
add al, al
mov byte [rsp + 0x42], cl
movzx ecx, byte [rsp + 0x24]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x24]
mov byte [rsp + 0x22], cl
add al, al
mov byte [rsp + 0x43], cl
movzx ecx, byte [rsp + 0x28]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x28]
mov byte [rsp + 0x24], cl
add al, al
mov byte [rsp + 0x44], cl
movzx ecx, byte [rsp + 0x2a]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x2a]
add al, al
mov byte [rsp + 0x28], cl
mov byte [rsp + 0x45], cl
movzx ecx, byte [rsp + 0x2c]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x2c]
add al, al
mov byte [rsp + 0x2a], cl
mov byte [rsp + 0x46], cl
movzx ecx, byte [rsp + 0x30]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x30]
add al, al
mov byte [rsp + 0x2c], cl
or r11b, al
mov byte [rsp + 0x47], cl
movzx eax, byte [rsp + 0x38]
movzx ecx, r14b
add al, al
shr cl, 7
or r10b, al
mov byte [rsp + 0x30], r11b
movzx eax, bl
mov byte [rsp + 0x48], r11b
add al, al
mov byte [rsp + 0x38], r10b
mov byte [rsp + 0x49], r10b
movzx ebx, cl
or bl, al
mov r8d, edi
movzx ecx, r13b
shr r8, 3
shr cl, 7
movzx eax, r14b
add al, al
mov byte [rsp + 0x4a], bl
movzx r14d, cl
movzx r9d, dil
movzx edx, byte [r8 + rsi]
or r14b, al
movzx ecx, r12b
mov byte [rsp + 0x4b], r14b
shr cl, 7
movzx eax, r13b
add al, al
movzx r13d, cl
or r13b, al
movzx ecx, r15b
shr cl, 7
movzx eax, r12b
add al, al
mov byte [rsp + 0x4c], r13b
movzx r12d, cl
and r9b, 7
or r12b, al
movzx ecx, bpl
shr cl, 7
movzx eax, r15b
add al, al
mov byte [rsp + 0x4d], r12b
movzx r15d, cl
inc edi
or r15b, al
mov ecx, 7
sub cl, r9b
mov byte [rsp + 0x4e], r15b
shr dl, cl
movzx eax, bpl
add al, al
and dl, 1
movzx ebp, dl
movzx ecx, r9b
mov rdx, qword [rsp + 0x68]
or bpl, al
movzx eax, byte [rsp + 0x50]
and al, 0x80
mov byte [rsp + 0x4f], bpl
shr al, cl
mov rcx, qword [rsp + 0xd0]
xor byte [r8 + rcx], al
cmp edi, 0x80
jl 0x14002db90
mov byte [rsp + 0x3a], bl
mov ebx, dword [rsp + 0x60]
dec ebx
mov dword [rsp + 0x60], ebx
test ebx, ebx
jg 0x14002db83
mov r14d, dword [rsp + 0x64]
mov r13, qword [rsp + 0x70]
mov r12, qword [rsp + 0xb8]
shl r14d, 7
mov eax, r14d
add rsp, 0x78
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
lea r15, [r8 + 0x30]
mov rcx, rsi
mov r8, r15
lea rdx, [rsp + 0x50]
call fcn.14002e690
mov rcx, qword [rsp + 0xd0]
lea ebp, [r14 - 1]
mov eax, dword [rsp + 0x50]
xor eax, dword [rbx + 1]
mov dword [rcx], eax
mov eax, dword [rsp + 0x54]
xor eax, dword [rbx + 5]
mov dword [rcx + 4], eax
mov eax, dword [rsp + 0x58]
xor eax, dword [rbx + 9]
mov dword [rcx + 8], eax
mov eax, dword [rsp + 0x5c]
xor eax, dword [rbx + 0xd]
mov dword [rcx + 0xc], eax
test ebp, ebp
jle 0x14002debc
lea rdi, [rsi - 0xc]
sub rsi, rcx
sub rsi, 0x14
lea rbx, [rcx + 0x14]
nop
lea rcx, [rsi + rbx]
mov r8, r15
lea rdx, [rsp + 0x50]
call fcn.14002e690
mov eax, dword [rsp + 0x50]
lea rbx, [rbx + 0x10]
xor eax, dword [rdi - 4]
lea rdi, [rdi + 0x10]
mov dword [rbx - 0x14], eax
dec ebp
mov eax, dword [rsp + 0x54]
xor eax, dword [rdi - 0x10]
mov dword [rbx - 0x10], eax
mov eax, dword [rsp + 0x58]
xor eax, dword [rdi - 0xc]
mov dword [rbx - 0xc], eax
mov eax, dword [rsp + 0x5c]
xor eax, dword [rdi - 8]
mov dword [rbx - 8], eax
test ebp, ebp
jg 0x14002de30
shl r14d, 7
mov eax, r14d
add rsp, 0x78
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov ebx, r14d
test r14d, r14d
jle 0x14002debc
mov rdi, qword [rsp + 0xd0]
lea rbp, [r8 + 0x30]
nop
mov r8, rbp
mov rdx, rdi
mov rcx, rsi
call fcn.14002e690
add rsi, 0x10
add rdi, 0x10
dec ebx
test ebx, ebx
jg 0x14002dea0
shl r14d, 7
mov eax, r14d
add rsp, 0x78
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov eax, 0xfffffffb
add rsp, 0x78
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret