Function at 0x6b7310
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
mov r13, r9
mov qword [rsp + 0xe0], rcx
mov rcx, r9
mov r14, rdx
mov rsi, r8
call fcn.00621f00
mov rcx, r13
call fcn.006220e0
mov rbx, rax
test rax, rax
jne 0x6b735c
jmp 0x6b737c
mov rcx, rbx
call fcn.0052e680
test eax, eax
je 0x6b73a0
mov rcx, rsi
call fcn.0052ce70
xor r9d, r9d
mov r8d, 0xffffffff
mov rcx, rbx
lea edx, [rax - 1]
call fcn.0062a500
test eax, eax
jne 0x6b7350
xor r12d, r12d
mov rcx, r13
call fcn.00622030
mov eax, r12d
add rsp, 0x98
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 + 0xe0]
mov r12d, eax
call fcn.006b7230
test eax, eax
je 0x6b737c
mov rcx, r13
call fcn.00621f00
mov rcx, r13
call fcn.006220e0
mov rcx, r13
mov qword [rsp + 0x40], rax
call fcn.006220e0
mov rcx, r13
mov qword [rsp + 0x50], rax
call fcn.006220e0
mov rcx, r13
mov qword [rsp + 0x38], rax
call fcn.006220e0
mov qword [rsp + 0x48], rax
test rax, rax
je 0x6b7430
mov rdi, qword [rsp + 0x38]
mov rdx, qword [rsp + 0xe0]
mov r8, rsi
mov rcx, rdi
call fcn.006b5970
test eax, eax
je 0x6b7430
mov rcx, rdi
call fcn.0052e680
test eax, eax
je 0x6b743d
nop dword [rax + rax]
mov rcx, r13
call fcn.00622030
jmp 0x6b737f
mov r15, qword [rsp + 0x48]
mov rdx, rsi
mov rcx, r15
call fcn.0052d510
test rax, rax
je 0x6b7430
mov rcx, rdi
call fcn.0052ce70
mov rcx, r15
mov dword [rsp + 0x5c], eax
call fcn.0052ce70
mov r15d, dword [rsi + 8]
mov rcx, rdi
mov dword [rsp + 0x60], eax
mov edx, r15d
mov dword [rsp + 0x58], r15d
call fcn.0052e860
test rax, rax
je 0x6b7430
mov rax, rdi
mov r10d, dword [rsp + 0x5c]
mov rdi, qword [rdi]
movsxd rdx, dword [rax + 8]
cmp r15d, edx
jle 0x6b74bf
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x5c], 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 + 0x5c]
mov rdx, qword [rsp + 0x38]
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x5c], r10d
mov rcx, qword [rsp + 0x40]
mov dword [rdx + 8], eax
mov edx, eax
call fcn.0052e860
mov r10d, dword [rsp + 0x5c]
test rax, rax
je 0x6b7430
mov r14, qword [rsp + 0x40]
mov r15d, dword [rsp + 0x58]
mov rbp, qword [r14]
mov qword [rbp], 1
cmp r15d, 1
jle 0x6b7920
lea r8d, [r15 - 1]
xor edx, edx
lea rcx, [rbp + 8]
mov dword [rsp + 0x88], r10d
mov dword [rsp + 0x5c], r8d
shl r8, 3
call sub.msvcrt.dll_memset
mov dword [r14 + 8], r15d
mov rcx, qword [rsp + 0x50]
mov edx, r15d
call fcn.0052e860
mov r10d, dword [rsp + 0x88]
test rax, rax
je 0x6b7430
mov rax, qword [rsp + 0x50]
mov r15, qword [rax]
mov eax, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x58]
mov dword [rsp + 0x88], 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 + 0x88]
mov eax, dword [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x80], rbx
mov dword [rsp + 0x8c], r12d
mov dword [rdx + 8], eax
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0xf0], rsi
mov esi, dword [rsp + 0x60]
mov r9, qword [rdx]
mov edx, eax
shr eax, 1
mov qword [rsp + 0xf8], r13
shl rax, 4
mov rcx, rax
mov eax, edx
and edx, 0xfffffffe
sub eax, 2
movsxd r14, edx
mov dword [rsp + 0x88], edx
mov r13, rcx
lea rdx, [rax*8 + 8]
add rax, 2
shl r14, 3
mov qword [rsp + 0x70], rdx
mov edx, dword [rsp + 0x5c]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x68], rdx
nop dword [rax + rax]
mov rcx, qword [rdi]
test r10d, r10d
je 0x6b7820
test cl, 1
je 0x6b786a
cmp r10d, 0x40
jle 0x6b7798
cmp r10d, esi
jge 0x6b766e
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
mov eax, r10d
mov r10d, esi
mov esi, eax
mov rbp, r15
mov rdi, r9
mov rax, rdx
mov r15, qword [rbx]
mov r9, qword [rdx]
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0x48], rax
mov rax, rbx
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x40], rbx
mov eax, dword [rsp + 0x58]
test eax, eax
jle 0x6b771f
lea rax, [r9 + 8]
lea rdx, [rdi + 0xf]
cmp rax, rdi
setne cl
cmp rax, rbp
setne al
and eax, ecx
cmp dword [rsp + 0x5c], 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
mov eax, 0
je 0x6b783e
sub rdx, r15
cmp rdx, 0x1e
jbe 0x6b783e
nop dword [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 r13, rax
jne 0x6b76d0
mov ebx, dword [rsp + 0x58]
cmp dword [rsp + 0x88], ebx
je 0x6b771f
mov rax, qword [r9 + r14]
xor qword [rdi + r14], rax
mov rax, qword [r15 + r14]
xor qword [rbp + r14], rax
cmp r10d, esi
jne 0x6b7608
mov edx, esi
lea eax, [rsi + 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 0x6b7965
test eax, eax
je 0x6b777b
lea ecx, [rax - 1]
sub rdx, 2
movsxd rax, ecx
mov ecx, ecx
sub rdx, rcx
jmp 0x6b776d
sub rax, 1
cmp rdx, rax
je 0x6b7911
mov rcx, qword [rdi + rax*8]
test rcx, rcx
je 0x6b7760
mov ebx, eax
shl ebx, 6
mov qword [rsp + 0x60], r9
call fcn.0052cda0
mov r9, qword [rsp + 0x60]
lea r10d, [rax + rbx]
jmp 0x6b7608
cmp rcx, 1
jne 0x6b7627
mov rdi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x80]
mov r12d, dword [rsp + 0x8c]
mov rsi, qword [rsp + 0xf0]
mov rcx, rdi
mov r13, qword [rsp + 0xf8]
call fcn.0052e9f0
mov rcx, qword [rsp + 0xe0]
mov rdx, rdi
call fcn.0052d510
test rax, rax
je 0x6b7430
mov rcx, r13
xor r12d, r12d
call fcn.00622030
mov qword [rsp + 0x20], r13
mov r9, rsi
mov r8, rbx
mov rdx, qword [rsp + 0xe0]
mov rcx, rdx
call fcn.006b7230
test eax, eax
setne r12b
jmp 0x6b737f
test rcx, rcx
jne 0x6b7798
mov r13, qword [rsp + 0xf8]
mov rcx, r13
call fcn.00622030
jmp 0x6b737c
mov rcx, qword [rsp + 0x68]
nop dword [rax + 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 0x6b7848
jmp 0x6b771f
mov rax, qword [rsp + 0xf0]
mov r11, qword [rbp]
mov edx, dword [rsp + 0x5c]
mov rbx, qword [rax]
and r11d, 1
neg r11
mov r8, qword [rbx]
and r8, r11
xor r8, qword [rbp]
test edx, edx
jle 0x6b7918
mov qword [rsp + 0x60], r13
mov r12, qword [rsp + 0x78]
mov eax, 1
nop dword [rax]
mov rdx, rcx
mov rcx, qword [rdi + rax*8]
shr rdx, 1
mov r13, rcx
shl r13, 0x3f
or rdx, r13
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 r13, r8
shl r13, 0x3f
or rdx, r13
mov qword [rbp + rax*8 - 8], rdx
add rax, 1
cmp rax, r12
jne 0x6b78a8
mov rax, qword [rsp + 0x70]
mov r13, qword [rsp + 0x60]
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 0x6b7608
xor ebx, ebx
jmp 0x6b777b
mov rax, rbp
mov rdx, rdi
jmp 0x6b78fc
mov rax, r14
mov r14d, dword [rsp + 0x58]
mov r15, qword [rsp + 0x50]
mov dword [rsp + 0x5c], r10d
mov dword [rax + 8], r14d
mov edx, r14d
mov rcx, r15
call fcn.0052e860
test rax, rax
je 0x6b7430
cmp r14d, 1
mov r15, qword [r15]
mov r10d, dword [rsp + 0x5c]
je 0x6b796d
lea eax, [r14 - 1]
mov dword [rsp + 0x5c], eax
jmp 0x6b7588
shl ebx, 6
jmp 0x6b777b
mov dword [rsp + 0x5c], 0
jmp 0x6b7553