Function at 0x140330030
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.140298b70
mov rcx, r13
call fcn.140298d40
mov rbx, rax
test rax, rax
jne 0x14033007c
jmp 0x14033009c
mov rcx, rbx
call fcn.1401a2160
test eax, eax
je 0x1403300c0
mov rcx, rsi
call fcn.1401a0930
xor r9d, r9d
mov r8d, 0xffffffff
mov rcx, rbx
lea edx, [rax - 1]
call fcn.1402a1380
test eax, eax
jne 0x140330070
xor r12d, r12d
mov rcx, r13
call fcn.140298ca0
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.14032ff50
test eax, eax
je 0x14033009c
mov rcx, r13
call fcn.140298b70
mov rcx, r13
call fcn.140298d40
mov rcx, r13
mov qword [rsp + 0x38], rax
call fcn.140298d40
mov rcx, r13
mov qword [rsp + 0x48], rax
call fcn.140298d40
mov rcx, r13
mov qword [rsp + 0x30], rax
call fcn.140298d40
mov qword [rsp + 0x40], rax
test rax, rax
je 0x140330150
mov rdi, qword [rsp + 0x30]
mov rdx, qword [rsp + 0xd0]
mov r8, rsi
mov rcx, rdi
call fcn.14032f130
test eax, eax
je 0x140330150
mov rcx, rdi
call fcn.1401a2160
test eax, eax
je 0x14033015d
nop dword [rax + rax]
mov rcx, r13
call fcn.140298ca0
jmp 0x14033009f
mov r15, qword [rsp + 0x40]
mov rdx, rsi
mov rcx, r15
call fcn.1401a1000
test rax, rax
je 0x140330150
mov rcx, rdi
call fcn.1401a0930
mov rcx, r15
mov dword [rsp + 0x54], eax
call fcn.1401a0930
mov r15d, dword [rsi + 8]
mov rcx, rdi
mov dword [rsp + 0x58], eax
mov edx, r15d
mov dword [rsp + 0x50], r15d
call fcn.1401a2360
test rax, rax
je 0x140330150
mov rax, rdi
mov r10d, dword [rsp + 0x54]
mov rdi, qword [rdi]
movsxd rdx, dword [rax + 8]
cmp r15d, edx
jle 0x1403301df
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 fcn.14042d780
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.1401a2360
mov r10d, dword [rsp + 0x54]
test rax, rax
je 0x140330150
mov r14, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x50]
mov rbp, qword [r14]
mov qword [rbp], 1
cmp r15d, 1
jle 0x140330618
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 fcn.14042d780
mov dword [r14 + 8], r15d
mov rcx, qword [rsp + 0x48]
mov edx, r15d
call fcn.1401a2360
mov r10d, dword [rsp + 0x78]
test rax, rax
je 0x140330150
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 fcn.14042d780
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 0x140330518
test cl, 1
je 0x140330562
cmp r10d, 0x40
jle 0x140330498
cmp r10d, r13d
jge 0x140330377
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 0x140330424
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 0x140330536
sub rdx, r15
cmp rdx, 0x1e
jbe 0x140330536
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 0x1403303d8
mov ebx, dword [rsp + 0x50]
cmp dword [rsp + 0x78], ebx
je 0x140330424
mov rax, qword [r9 + r14]
xor qword [rdi + r14], rax
mov rax, qword [r15 + r14]
xor qword [rbp + r14], rax
cmp r10d, r13d
jne 0x140330310
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 0x140330478
test eax, eax
je 0x14033047b
lea ecx, [rax - 1]
sub rdx, 2
movsxd rax, ecx
mov ecx, ecx
sub rdx, rcx
jmp 0x14033046d
sub rax, 1
cmp rax, rdx
je 0x140330609
mov rcx, qword [rdi + rax*8]
mov ebx, eax
test rcx, rcx
je 0x140330460
shl ebx, 6
mov qword [rsp + 0x58], r9
call fcn.1401a0870
mov r9, qword [rsp + 0x58]
lea r10d, [rax + rbx]
jmp 0x140330310
cmp rcx, 1
jne 0x14033032f
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.1401a24f0
mov rcx, qword [rsp + 0xd0]
mov rdx, rdi
call fcn.1401a1000
test rax, rax
je 0x140330150
mov rcx, r13
xor r12d, r12d
call fcn.140298ca0
mov qword [rsp + 0x20], r13
mov r9, rsi
mov r8, rbx
mov rdx, qword [rsp + 0xd0]
mov rcx, rdx
call fcn.14032ff50
test eax, eax
setne r12b
jmp 0x14033009f
test rcx, rcx
jne 0x140330498
mov r13, qword [rsp + 0xe8]
mov rcx, r13
call fcn.140298ca0
jmp 0x14033009c
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 0x140330540
jmp 0x140330424
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 0x140330610
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 0x1403305a0
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 0x140330310
xor ebx, ebx
jmp 0x14033047b
mov rax, rbp
mov rdx, rdi
jmp 0x1403305f4
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.1401a2360
test rax, rax
je 0x140330150
cmp r14d, 1
mov r15, qword [r15]
mov r10d, dword [rsp + 0x54]
je 0x14033065d
lea eax, [r14 - 1]
mov dword [rsp + 0x54], eax
jmp 0x14033029c
mov dword [rsp + 0x54], 0
jmp 0x14033026d