Function at 0x1400786a0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x168
call fcn.1400a59c0
sub rsp, rax
lea rbp, [rsp + 0x50]
and rbp, 0xffffffffffffffe0
mov rax, qword [0x14011e770]
xor rax, rsp
mov qword [rbp + 0x100], rax
mov rax, qword [rsp + 0x1d8]
mov rbx, rdx
movsxd rdi, dword [rsp + 0x1d0]
xor r15d, r15d
mov qword [rbp + 0x30], rcx
mov esi, r15d
mov qword [rbp + 0x20], r8
mov r14d, r15d
mov qword [rbp + 0x38], rdx
mov r8d, 0x267
lea ecx, [rdi + rdi*2]
mov qword [rbp + 0x18], r9
shl ecx, 9
lea rdx, [0x140112dd8]
add ecx, 0x40
mov qword [rbp + 0x68], rax
call fcn.140037280
mov qword [rbp + 0x60], rax
test rax, rax
je 0x140078eb0
imul ecx, edi, 0x21
lea rdx, [0x140112df8]
mov r8d, 0x269
call fcn.140037280
mov qword [rbp + 8], rax
mov rsi, rax
test rax, rax
je 0x140078ead
lea ecx, [rdi*8]
mov r8d, 0x26a
lea rdx, [0x140112e18]
call fcn.140037280
mov qword [rbp + 0x10], rax
mov r13, rax
test rax, rax
je 0x140078ea8
mov rcx, qword [rbp + 0x60]
mov r12, rdi
mov rax, rcx
mov qword [rbp + 0x58], rdi
and eax, 0x3f
mov qword [rbp + 0x40], r15
sub rcx, rax
mov eax, r15d
add rcx, 0x40
mov dword [rbp], eax
mov qword [rbp + 0x28], rcx
test edi, edi
jle 0x140078ba1
mov rdi, qword [rbp + 0x20]
mov rbx, r13
mov r12, qword [rbp + 0x18]
sub rdi, r13
sub r12, r13
mov qword [rbp + 0x48], r15
mov qword [rbp + 0x18], r12
mov qword [rbp + 0x50], rbx
mov qword [rbp + 0x20], rdi
nop dword [rax]
cdqe
lea r13, [rax + rax*2]
shl r13, 9
add r13, rcx
mov rcx, qword [rdi + rbx]
call fcn.1400438b0
cmp eax, 0x100
jg 0x1400787f7
mov rdi, qword [rdi + rbx]
cmp dword [rdi + 0x10], 0
je 0x140078836
mov r12, qword [rbp + 0x68]
mov rcx, r12
call fcn.1400637c0
mov rdi, rax
test rax, rax
je 0x140078b25
mov rax, qword [rbp + 0x20]
mov r9, r12
mov r8, qword [rbp + 0x30]
mov rcx, rdi
add r8, 0x10
mov rdx, qword [rax + rbx]
call fcn.14007b240
test eax, eax
je 0x140078b7e
mov r12, qword [rbp + 0x18]
mov qword [rbx], rdi
mov r9d, r15d
mov ecx, dword [rdi + 8]
mov rax, r15
shl ecx, 3
test ecx, ecx
jle 0x1400788dc
lea r8, [rsi + r14]
mov ecx, r9d
test r9d, r9d
jns 0x14007885d
lea ecx, [r9 + 7]
sar ecx, 3
add r9d, 8
movsxd rdi, ecx
mov rcx, qword [rbx]
mov rdx, qword [rcx]
mov rdx, qword [rdx + rdi*8]
mov byte [r8 + rax], dl
mov rcx, rdx
shr rcx, 8
mov byte [r8 + rax + 1], cl
mov rcx, rdx
shr rcx, 0x10
mov byte [r8 + rax + 2], cl
shr rdx, 0x18
mov byte [r8 + rax + 3], dl
shr rdx, 8
mov byte [r8 + rax + 4], dl
mov rcx, rdx
shr rcx, 8
mov byte [r8 + rax + 5], cl
mov rcx, rdx
shr rdx, 0x18
mov byte [r8 + rax + 7], dl
shr rcx, 0x10
mov byte [r8 + rax + 6], cl
add rax, 8
mov rcx, qword [rbx]
mov edx, dword [rcx + 8]
shl edx, 3
cmp r9d, edx
jl 0x140078851
cmp rax, 0x21
jge 0x1400788ef
lea rdi, [r14 + rax]
mov ecx, 0x21
add rdi, rsi
sub rcx, rax
xor eax, eax
rep stosb byte [rdi], al
mov rdx, qword [r12 + rbx]
cmp dword [rdx + 0x10], 4
jg 0x140078b03
xor eax, eax
mov rcx, r13
mov qword [r13], rax
mov qword [r13 + 8], rax
mov qword [r13 + 0x10], rax
mov qword [r13 + 0x18], rax
movsxd r8, dword [rdx + 0x10]
mov rdx, qword [rdx + 8]
shl r8, 3
call sub.VCRUNTIME140.dll_memcpy
mov rdx, qword [r12 + rbx]
lea rcx, [r13 + 0x20]
cmp dword [rdx + 0x28], 4
jg 0x140078b03
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
movsxd r8, dword [rdx + 0x28]
mov rdx, qword [rdx + 0x20]
shl r8, 3
call sub.VCRUNTIME140.dll_memcpy
mov rdx, qword [r12 + rbx]
lea rcx, [r13 + 0x40]
cmp dword [rdx + 0x40], 4
jg 0x140078b03
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
movsxd r8, dword [rdx + 0x40]
mov rdx, qword [rdx + 0x38]
shl r8, 3
call sub.VCRUNTIME140.dll_memcpy
mov rdx, r13
lea rcx, [r13 + 0x60]
call fcn.14001b480
mov r8, r13
lea rdx, [r13 + 0x60]
lea rcx, [r13 + 0xc0]
call fcn.14001b7a0
lea rdx, [r13 + 0x60]
lea rcx, [r13 + 0x120]
call fcn.14001b480
lea rdx, [r13 + 0xc0]
lea rcx, [r13 + 0x1e0]
call fcn.14001b480
lea rdx, [r13 + 0x120]
lea rcx, [r13 + 0x2a0]
call fcn.14001b480
lea rdx, [r13 + 0x1e0]
lea rcx, [r13 + 0x420]
call fcn.14001b480
mov r8, r13
lea rdx, [r13 + 0x120]
lea rcx, [r13 + 0x180]
call fcn.14001b7a0
mov r8, r13
lea rdx, [r13 + 0x1e0]
lea rcx, [r13 + 0x240]
call fcn.14001b7a0
lea rcx, [r13 + 0x300]
mov r8, r13
lea rdx, [r13 + 0x2a0]
call fcn.14001b7a0
lea rcx, [r13 + 0x480]
mov r8, r13
lea rdx, [r13 + 0x420]
call fcn.14001b7a0
lea rdx, [r13 + 0x240]
lea rcx, [r13 + 0x4e0]
call fcn.14001b480
lea rdx, [r13 + 0x180]
lea rcx, [r13 + 0x360]
call fcn.14001b480
mov r8, r13
lea rdx, [r13 + 0x4e0]
lea rcx, [r13 + 0x540]
call fcn.14001b7a0
lea rcx, [r13 + 0x3c0]
mov r8, r13
lea rdx, [r13 + 0x360]
call fcn.14001b7a0
lea rcx, [r13 + 0x5a0]
mov r8, r13
lea rdx, [r13 + 0x540]
call fcn.14001b7a0
mov eax, dword [rbp]
xor r15d, r15d
mov rcx, qword [rbp + 0x40]
inc eax
mov r14, qword [rbp + 0x48]
inc rcx
mov rbx, qword [rbp + 0x50]
add r14, 0x21
mov r12, qword [rbp + 0x58]
add rbx, 8
mov rsi, qword [rbp + 8]
mov dword [rbp], eax
mov qword [rbp + 0x40], rcx
mov qword [rbp + 0x48], r14
mov qword [rbp + 0x50], rbx
cmp rcx, r12
jge 0x140078b9d
mov rcx, qword [rbp + 0x28]
mov r12, qword [rbp + 0x18]
mov rdi, qword [rbp + 0x20]
jmp 0x1400787d0
mov edx, 0xf2
mov dword [rsp + 0x20], 0x29c
lea r9, [0x140112e78]
mov ecx, 0x10
lea r8d, [rdx - 0x60]
call fcn.140038ac0
mov rsi, qword [rbp + 8]
mov r14, qword [rbp + 0x10]
mov rax, qword [rbp + 0x60]
test rax, rax
je 0x140078b3e
mov rcx, rax
call fcn.1400371e0
test rsi, rsi
je 0x140078b4b
mov rcx, rsi
call fcn.1400371e0
test r14, r14
je 0x140078b58
mov rcx, r14
call fcn.1400371e0
mov eax, r15d
mov rcx, qword [rbp + 0x100]
xor rcx, rsp
call fcn.1400a4f20
add rsp, 0x168
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x10
mov dword [rsp + 0x20], 0x27b
lea r9, [0x140112e58]
mov edx, 0xf2
lea r8d, [rcx - 0xd]
jmp 0x140078b20
mov rbx, qword [rbp + 0x38]
movzx edx, byte [rsi + 0x1f]
mov eax, 0x3f
shr edx, 6
mov r14d, 0xff
and edx, 0x3f
mov dword [rbp], r14d
sub eax, edx
mov ecx, edx
shr ecx, 5
dec ecx
not ecx
and eax, ecx
not ecx
and ecx, edx
mov rdx, qword [rbp + 0x28]
or eax, ecx
mov rcx, rbx
mov r8d, eax
and eax, 1
shr r8d, 1
add r8d, eax
btr r8d, 0x1f
call fcn.14001ada0
nop word [rax + rax]
cmp r14d, 0xff
mov eax, r15d
sete al
mov esi, eax
cmp rsi, r12
jge 0x140078d45
lea ecx, [r14 - 1]
mov r14, qword [rbp + 8]
mov r13d, ecx
shr ecx, 3
and r13d, 7
mov qword [rbp + 0x30], rcx
imul r15, rsi, 0x21
lea eax, [rcx + 1]
sub r12, rsi
mov qword [rbp + 0x38], rax
nop dword [rax]
add rax, r15
movzx edx, byte [rax + r14]
lea rax, [r15 + rcx]
movzx ecx, byte [rax + r14]
shl edx, 8
or edx, ecx
mov ecx, r13d
shr edx, cl
mov ecx, 0x3f
and edx, 0x3f
sub ecx, edx
mov edi, edx
shr edi, 5
dec edi
not edi
and ecx, edi
mov eax, edi
not eax
and edi, 1
and eax, edx
or ecx, eax
mov eax, ecx
and ecx, 1
shr eax, 1
add eax, ecx
lea rcx, [rbp + 0x80]
lea edi, [rdi + rax*2]
movsxd rax, esi
mov r8d, edi
shr r8d, 1
lea rdx, [rax + rax*2]
shl rdx, 9
add rdx, qword [rbp + 0x28]
call fcn.14001ada0
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0xe0]
call fcn.14001a240
movdqu xmm0, xmmword [rbp + 0xe0]
mov eax, edi
lea r8, [rbp + 0x80]
and eax, 1
mov rdx, rbx
neg rax
mov rcx, rbx
movq xmm4, rax
not rax
punpcklqdq xmm4, xmm4
movdqa xmm2, xmm4
pand xmm2, xmm0
movdqu xmm0, xmmword [rbp + 0xf0]
movq xmm3, rax
punpcklqdq xmm3, xmm3
pand xmm4, xmm0
movdqa xmm1, xmm3
pand xmm3, xmmword [rbp + 0xb0]
pand xmm1, xmmword [rbp + 0xa0]
pxor xmm4, xmm3
pxor xmm2, xmm1
movdqa xmmword [rbp + 0xb0], xmm4
movdqa xmmword [rbp + 0xa0], xmm2
call fcn.14001b7a0
mov rax, qword [rbp + 0x38]
inc esi
mov rcx, qword [rbp + 0x30]
add r15, 0x21
sub r12, 1
jne 0x140078c30
mov r14d, dword [rbp]
xor r15d, r15d
mov r12, qword [rbp + 0x58]
add r14d, 0xfffffffb
mov rdx, rbx
mov rcx, rbx
mov dword [rbp], r14d
call fcn.14001b480
mov rdx, rbx
mov rcx, rbx
call fcn.14001b480
mov rdx, rbx
mov rcx, rbx
call fcn.14001b480
mov rdx, rbx
mov rcx, rbx
call fcn.14001b480
mov rdx, rbx
mov rcx, rbx
call fcn.14001b480
cmp r14d, 5
jae 0x140078bf0
mov rsi, qword [rbp + 8]
test r12, r12
jle 0x140078e9d
mov r13, qword [rbp + 0x28]
mov r14, rsi
nop dword [rax]
nop word [rax + rax]
movzx edx, byte [r14]
mov ecx, 0x3f
and edx, 0x1f
add edx, edx
sub ecx, edx
mov edi, edx
shr edi, 5
dec edi
not edi
and ecx, edi
mov eax, edi
not eax
and edi, 1
and eax, edx
or ecx, eax
mov eax, ecx
and ecx, 1
shr eax, 1
add eax, ecx
lea rcx, [rbp + 0x80]
lea edi, [rdi + rax*2]
movsxd rax, r15d
mov r8d, edi
shr r8d, 1
lea rdx, [rax + rax*2]
shl rdx, 9
add rdx, r13
call fcn.14001ada0
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0xe0]
call fcn.14001a240
movdqa xmm0, xmmword [rbp + 0xa0]
lea r8, [rbp + 0x80]
movdqu xmm1, xmmword [rbp + 0xe0]
mov eax, edi
mov rdx, rbx
movdqu xmm2, xmmword [rbp + 0xf0]
and eax, 1
mov rcx, rbx
neg rax
movq xmm4, rax
not rax
punpcklqdq xmm4, xmm4
pand xmm1, xmm4
pand xmm2, xmm4
movq xmm3, rax
punpcklqdq xmm3, xmm3
pand xmm0, xmm3
pxor xmm1, xmm0
movdqa xmm0, xmmword [rbp + 0xb0]
pand xmm0, xmm3
movdqa xmmword [rbp + 0xa0], xmm1
pxor xmm2, xmm0
movdqa xmmword [rbp + 0xb0], xmm2
call fcn.14001b7a0
inc r15d
lea r14, [r14 + 0x21]
sub r12, 1
jne 0x140078db0
mov r15d, 1
jmp 0x140078b29
mov r14, rax
jmp 0x140078eb0
mov rsi, rax
mov ecx, 0x10
mov dword [rsp + 0x20], 0x26b
lea r9, [0x140112e38]
mov edx, 0xf2
lea r8d, [rcx + 0x31]
call fcn.140038ac0
jmp 0x140078b2d