Function at 0x140307c00
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov r13, r9
mov qword [rsp + 0xd0], rcx
mov rcx, r9
mov r14, rdx
mov rsi, r8
call fcn.1400b88b0
mov rcx, r13
call fcn.1400b8a90
mov rbx, rax
test rax, rax
jne 0x140307c4c
jmp 0x140307c79
mov rcx, rbx
call fcn.1400bb470
test eax, eax
je 0x140307ca0
mov rcx, rsi
call fcn.1400b9f20
mov qword [rsp + 0x28], r13
xor r9d, r9d
mov rcx, rbx
mov dword [rsp + 0x20], 0
lea edx, [rax - 1]
mov r8d, 0xffffffff
call fcn.1400beca0
test eax, eax
jne 0x140307c40
xor r12d, r12d
mov rcx, r13
call fcn.1400b89f0
mov eax, r12d
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x20], r13
mov r9, rsi
mov r8, rbx
mov rdx, r14
mov rcx, qword [rsp + 0xd0]
mov r12d, eax
call fcn.1403074f0
test eax, eax
je 0x140307c79
mov rcx, r13
call fcn.1400b88b0
mov rcx, r13
call fcn.1400b8a90
mov rcx, r13
mov qword [rsp + 0x38], rax
call fcn.1400b8a90
mov rcx, r13
mov qword [rsp + 0x48], rax
call fcn.1400b8a90
mov rcx, r13
mov qword [rsp + 0x30], rax
call fcn.1400b8a90
mov qword [rsp + 0x40], rax
test rax, rax
je 0x140307d30
mov rdi, qword [rsp + 0x30]
mov rdx, qword [rsp + 0xd0]
mov r8, rsi
mov rcx, rdi
call fcn.140306d20
test eax, eax
je 0x140307d30
mov rcx, rdi
call fcn.1400bb470
test eax, eax
je 0x140307d3d
nop dword [rax + rax]
mov rcx, r13
call fcn.1400b89f0
jmp 0x140307c7c
mov r15, qword [rsp + 0x40]
mov rdx, rsi
mov rcx, r15
call fcn.1400ba830
test rax, rax
je 0x140307d30
mov rcx, rdi
call fcn.1400b9f20
mov rcx, r15
mov dword [rsp + 0x54], eax
call fcn.1400b9f20
mov r15d, dword [rsi + 8]
mov rcx, rdi
mov dword [rsp + 0x58], eax
mov edx, r15d
mov dword [rsp + 0x50], r15d
call fcn.1400bb680
test rax, rax
je 0x140307d30
mov rax, rdi
mov r10d, dword [rsp + 0x54]
mov rdi, qword [rdi]
movsxd rdx, dword [rax + 8]
cmp r15d, edx
jle 0x140307dbf
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x54], r10d
lea ecx, [rax - 1]
mov eax, ecx
lea rcx, [rdi + rdx*8]
sub eax, edx
xor edx, edx
lea r8, [rax*8 + 8]
call sub.msvcrt.dll_memset
mov r10d, dword [rsp + 0x54]
mov rdx, qword [rsp + 0x30]
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x54], r10d
mov rcx, qword [rsp + 0x38]
mov dword [rdx + 8], eax
mov edx, eax
call fcn.1400bb680
mov r10d, dword [rsp + 0x54]
test rax, rax
je 0x140307d30
mov r14, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x50]
mov rbp, qword [r14]
mov qword [rbp], 1
cmp r15d, 1
jle 0x1403081f8
lea r8d, [r15 - 1]
xor edx, edx
lea rcx, [rbp + 8]
mov dword [rsp + 0x78], r10d
mov dword [rsp + 0x54], r8d
shl r8, 3
call sub.msvcrt.dll_memset
mov dword [r14 + 8], r15d
mov rcx, qword [rsp + 0x48]
mov edx, r15d
call fcn.1400bb680
mov r10d, dword [rsp + 0x78]
test rax, rax
je 0x140307d30
mov rax, qword [rsp + 0x48]
mov r15, qword [rax]
mov eax, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x50]
mov dword [rsp + 0x78], r10d
test ecx, ecx
lea r8, [rax*8 + 8]
mov eax, 8
mov rcx, r15
cmovle r8, rax
xor edx, edx
call sub.msvcrt.dll_memset
mov r10d, dword [rsp + 0x78]
mov edx, dword [rsp + 0x50]
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x70], rbx
mov dword [rsp + 0x7c], r12d
mov dword [rax + 8], edx
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0xe8], r13
mov r13d, dword [rsp + 0x58]
mov r9, qword [rax]
mov eax, edx
mov qword [rsp + 0xe0], rsi
shr eax, 1
sub eax, 1
add rax, 1
shl rax, 4
mov rcx, rax
mov eax, edx
and eax, 0xfffffffe
mov rsi, rcx
movsxd r14, eax
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x54]
shl r14, 3
shl rax, 3
mov qword [rsp + 0x60], rax
lea eax, [rdx - 2]
add rax, 2
mov qword [rsp + 0x68], rax
nop
mov rcx, qword [rdi]
test r10d, r10d
je 0x1403080f8
test cl, 1
je 0x140308142
cmp r10d, 0x40
jle 0x140308078
cmp r10d, r13d
jge 0x140307f57
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
mov eax, r10d
mov r10d, r13d
mov r13d, eax
mov rbp, r15
mov rdi, r9
mov rax, rdx
mov r15, qword [rbx]
mov r9, qword [rdx]
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x40], rax
mov rax, rbx
mov rbx, qword [rsp + 0x48]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rbx
mov eax, dword [rsp + 0x50]
test eax, eax
jle 0x140308004
lea rax, [r9 + 8]
lea rdx, [rdi + 0xf]
cmp rbp, rax
setne cl
cmp rdi, rax
setne al
and eax, ecx
cmp dword [rsp + 0x54], 1
seta cl
and eax, ecx
lea rcx, [r15 + 8]
cmp rbp, rcx
setne cl
and eax, ecx
mov rcx, rdx
sub rcx, rbp
cmp rcx, 0x1e
seta cl
test al, cl
je 0x140308116
sub rdx, r15
cmp rdx, 0x1e
jbe 0x140308116
xor eax, eax
nop dword [rax + rax]
movdqu xmm0, xmmword [rdi + rax]
movdqu xmm1, xmmword [r9 + rax]
pxor xmm0, xmm1
movups xmmword [rdi + rax], xmm0
movdqu xmm0, xmmword [rbp + rax]
movdqu xmm2, xmmword [r15 + rax]
pxor xmm0, xmm2
movups xmmword [rbp + rax], xmm0
add rax, 0x10
cmp rax, rsi
jne 0x140307fb8
mov ebx, dword [rsp + 0x50]
cmp dword [rsp + 0x78], ebx
je 0x140308004
mov rax, qword [r9 + r14]
xor qword [rdi + r14], rax
mov rax, qword [r15 + r14]
xor qword [rbp + r14], rax
cmp r10d, r13d
jne 0x140307ef0
mov edx, r13d
lea eax, [r13 + 0x3e]
sub edx, 1
cmovns eax, edx
sar eax, 6
movsxd rdx, eax
mov ebx, eax
mov rcx, qword [rdi + rdx*8]
test rcx, rcx
jne 0x140308058
test eax, eax
je 0x14030805b
lea ecx, [rax - 1]
sub rdx, 2
movsxd rax, ecx
mov ecx, ecx
sub rdx, rcx
jmp 0x14030804d
sub rax, 1
cmp rax, rdx
je 0x1403081e9
mov rcx, qword [rdi + rax*8]
mov ebx, eax
test rcx, rcx
je 0x140308040
shl ebx, 6
mov qword [rsp + 0x58], r9
call fcn.1400b9e60
mov r9, qword [rsp + 0x58]
lea r10d, [rax + rbx]
jmp 0x140307ef0
cmp rcx, 1
jne 0x140307f0f
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x70]
mov r12d, dword [rsp + 0x7c]
mov rsi, qword [rsp + 0xe0]
mov rcx, rdi
mov r13, qword [rsp + 0xe8]
call fcn.1400bb840
mov rcx, qword [rsp + 0xd0]
mov rdx, rdi
call fcn.1400ba830
test rax, rax
je 0x140307d30
mov rcx, r13
xor r12d, r12d
call fcn.1400b89f0
mov qword [rsp + 0x20], r13
mov r9, rsi
mov r8, rbx
mov rdx, qword [rsp + 0xd0]
mov rcx, rdx
call fcn.1403074f0
test eax, eax
setne r12b
jmp 0x140307c7c
test rcx, rcx
jne 0x140308078
mov r13, qword [rsp + 0xe8]
mov rcx, r13
call fcn.1400b89f0
jmp 0x140307c79
mov ecx, dword [rsp + 0x54]
xor eax, eax
nop dword [rax]
mov rdx, qword [r9 + rax*8]
xor qword [rdi + rax*8], rdx
mov rdx, qword [r15 + rax*8]
xor qword [rbp + rax*8], rdx
mov rdx, rax
add rax, 1
cmp rdx, rcx
jne 0x140308120
jmp 0x140308004
mov rax, qword [rsp + 0xe0]
mov r11, qword [rbp]
mov edx, dword [rsp + 0x54]
mov rbx, qword [rax]
and r11d, 1
neg r11
mov r8, qword [rbx]
and r8, r11
xor r8, qword [rbp]
test edx, edx
jle 0x1403081f0
mov qword [rsp + 0x58], r14
mov r12, qword [rsp + 0x68]
mov eax, 1
nop dword [rax]
mov rdx, rcx
mov rcx, qword [rdi + rax*8]
shr rdx, 1
mov r14, rcx
shl r14, 0x3f
or rdx, r14
mov qword [rdi + rax*8 - 8], rdx
mov rdx, r8
mov r8, qword [rbx + rax*8]
shr rdx, 1
and r8, r11
xor r8, qword [rbp + rax*8]
mov r14, r8
shl r14, 0x3f
or rdx, r14
mov qword [rbp + rax*8 - 8], rdx
add rax, 1
cmp rax, r12
jne 0x140308180
mov rax, qword [rsp + 0x60]
mov r14, qword [rsp + 0x58]
lea rdx, [rdi + rax]
add rax, rbp
shr rcx, 1
shr r8, 1
sub r10d, 1
mov qword [rdx], rcx
mov qword [rax], r8
jmp 0x140307ef0
xor ebx, ebx
jmp 0x14030805b
mov rax, rbp
mov rdx, rdi
jmp 0x1403081d4
mov rax, r14
mov r14d, dword [rsp + 0x50]
mov r15, qword [rsp + 0x48]
mov dword [rsp + 0x54], r10d
mov dword [rax + 8], r14d
mov edx, r14d
mov rcx, r15
call fcn.1400bb680
test rax, rax
je 0x140307d30
cmp r14d, 1
mov r15, qword [r15]
mov r10d, dword [rsp + 0x54]
je 0x14030823d
lea eax, [r14 - 1]
mov dword [rsp + 0x54], eax
jmp 0x140307e7c
mov dword [rsp + 0x54], 0
jmp 0x140307e4d