Function at 0x10006240
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rdx, qword [rcx + 0x40]
mov r9, qword [rcx + 0x50]
cmp r9, rdx
ja 0x1000648b
mov rsi, rcx
mov r8, qword [rcx + 0x30]
mov rax, qword [rcx + 0x128]
mov qword [rcx + 0x50], 0
mov qword [rcx + 0x128], 0
test rax, rax
je 0x1000649c
mov rdx, qword [rsi + 0x140]
mov r15, qword [rsi + 0x148]
mov r14, rdx
sub r14, r15
jb 0x100064b6
mov rcx, qword [rsi + 0x138]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rcx
cmp rdx, rcx
ja 0x100064c7
mov rcx, qword [rsi + 0x130]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x38], rax
lea r13, [rax + r15]
mov rbx, qword [rsi]
mov rbp, qword [rsi + 0x10]
lea rcx, [rsi + 0x70]
mov rdi, qword [rsi + 0x58]
mov r12, qword [rsi + 0x68]
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x40], r8
mov rdx, r8
mov qword [rsp + 0x48], r9
mov r8, r9
mov r9, rdi
call fcn.10013830
cmp r12, rbp
cmovae r12, rbp
cmp r12, r14
cmovae r12, r14
test r12, r12
je 0x100063c8
cmp r12, 8
jae 0x10006328
xor eax, eax
jmp 0x100063b0
cmp r12, 0x20
jae 0x10006332
xor eax, eax
jmp 0x10006385
mov rax, r12
and rax, 0xffffffffffffffe0
mov rcx, qword [rsp + 0x38]
add rcx, r15
add rcx, 0x10
xor edx, edx
nop word [rax + rax]
movups xmm0, xmmword [rdi + rdx]
movups xmm1, xmmword [rdi + rdx + 0x10]
movups xmm2, xmmword [rbx + rdx]
xorps xmm2, xmm0
movups xmm0, xmmword [rbx + rdx + 0x10]
xorps xmm0, xmm1
movups xmmword [rcx + rdx - 0x10], xmm2
movups xmmword [rcx + rdx], xmm0
add rdx, 0x20
cmp rax, rdx
jne 0x10006350
cmp r12, rax
je 0x100063c8
test r12b, 0x18
je 0x100063b0
mov rcx, rax
mov rax, r12
and rax, 0xfffffffffffffff8
nop
mov rdx, qword [rbx + rcx]
xor rdx, qword [rdi + rcx]
mov qword [r13 + rcx], rdx
add rcx, 8
cmp rax, rcx
jne 0x10006390
cmp r12, rax
je 0x100063c8
nop dword [rax + rax]
movzx ecx, byte [rbx + rax]
xor cl, byte [rdi + rax]
mov byte [r13 + rax], cl
lea rcx, [rax + 1]
mov rax, rcx
cmp r12, rcx
jne 0x100063b0
mov r15, qword [rsi + 0x18]
mov rdi, qword [rsi + 0x28]
test rbp, rbp
je 0x100063f9
mov rdx, qword [rsp + 0x48]
mov rcx, rdx
sub rcx, rbp
jb 0x100064df
mov rdx, qword [rsp + 0x40]
add rdx, rcx
mov rcx, rbx
mov r8, rbp
call sub.ntdll.dll_memcpy
test rdi, rdi
je 0x1000641b
mov rcx, r14
sub rcx, rdi
jb 0x100064ed
add r13, rcx
mov rcx, r15
mov rdx, r13
mov r8, rdi
call sub.ntdll.dll_memcpy
mov r8, qword [rsi + 0x150]
test r8, r8
je 0x1000643f
cmp qword [rsi + 0x158], 0
je 0x1000643f
mov rcx, qword [0x100cf0d0]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov rax, qword [rsp + 0x38]
mov qword [rsi + 0x150], rax
mov rax, qword [rsp + 0x50]
mov qword [rsi + 0x158], rax
mov rax, qword [rsp + 0x28]
mov qword [rsi + 0x160], rax
mov rax, qword [rsp + 0x30]
mov qword [rsi + 0x168], rax
mov qword [rsi + 0x170], 0
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.C:Users001.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_buffer.rs
mov rcx, r9
call fcn.1000e630
ud2
lea rcx, str.called__Option::unwrap____on_a__None__value_rustc_eb26296b556cef10fb713a38f3d16b9886080f26library_alloc_srccollections_btree_navigate.rsIndex_out_of_bounds
lea r8, str.C:Users001.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_blockmodes.rs
mov edx, 0x2b
call fcn.1000ea10
ud2
lea r8, str.C:Users001.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_buffer.rs
mov rcx, r15
call fcn.1000f090
ud2
lea r8, str.C:Users001.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_buffer.rs
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
call fcn.1000e630
ud2
lea r8, str.C:Users001.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_blockmodes.rs
call fcn.1000e5b0
ud2
lea r8, str.C:Users001.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_blockmodes.rs
mov rdx, r14
call fcn.1000e5b0
ud2