Function at 0x140007eb0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x30], rdx
cmp r8, qword [rsp + 0xe0]
jne 0x140008235
mov rbx, r8
test r8, r8
je 0x1400081d3
mov r14, rcx
lea rax, [rcx + 0x40]
mov qword [rsp + 0x60], rax
mov rdx, qword [rsp + 0x30]
lea rax, [rdx + rbx]
mov qword [rsp + 0x70], rax
mov rcx, qword [rsp + 0x38]
lea rax, [rcx + rbx]
mov qword [rsp + 0x68], rax
mov r8, qword [r14 + 0x30]
mov rax, qword [r14 + 0x38]
lea r9, [rcx + 0x10]
mov qword [rsp + 0x48], r9
lea r9, [rdx + 0x10]
mov qword [rsp + 0x40], r9
add rdx, 3
mov qword [rsp + 0x58], rdx
add rcx, 3
mov qword [rsp + 0x50], rcx
xor r12d, r12d
mov qword [rsp + 0x28], rbx
jmp 0x140007f5c
add r12, r13
cmp r12, rbx
jae 0x1400081d3
cmp rax, r8
jne 0x140007fc0
mov qword [r14 + 0x38], 0
mov rdx, qword [r14]
mov r9, qword [r14 + 0x18]
mov rax, qword [r14 + 0x28]
mov qword [r14 + 0x30], rax
movzx ecx, byte [r14 + 0x130]
cmp rcx, 0xf
jae 0x14000821a
mov r8, qword [rsp + 0x60]
call sym.rust_crypto_aesni_encrypt_block
mov rax, qword [r14 + 0x10]
test rax, rax
je 0x140007fc0
mov rcx, qword [r14]
inc byte [rcx + rax - 1]
jne 0x140007fc0
nop word cs:[rax + rax]
cmp rax, 1
je 0x140007fc0
inc byte [rcx + rax - 2]
lea rax, [rax - 1]
je 0x140007fb0
mov r8, qword [r14 + 0x30]
mov rcx, qword [r14 + 0x38]
mov rax, r8
sub rax, rcx
mov r13, rbx
sub r13, r12
cmp rax, r13
cmovb r13, rax
mov rax, r13
add rax, rcx
jb 0x1400081e4
mov rdx, qword [r14 + 0x28]
cmp rax, rdx
ja 0x1400081f5
mov rdx, qword [r14 + 0x18]
mov qword [r14 + 0x38], rax
cmp r12, rbx
ja 0x140008206
mov r9, qword [rsp + 0x30]
lea r10, [r9 + r12]
mov r9, qword [rsp + 0x38]
lea r11, [r9 + r12]
mov r9, qword [rsp + 0x70]
sub r9, r10
cmp r13, r9
cmovb r9, r13
mov rsi, qword [rsp + 0x68]
sub rsi, r11
cmp r9, rsi
cmovb rsi, r9
test rsi, rsi
je 0x140007f50
lea r15, [rdx + rcx]
cmp r13, 8
jae 0x140008090
xor esi, esi
mov rdi, rsi
not rdi
add rdi, r13
mov rbx, r13
and rbx, 3
je 0x1400080c0
nop dword [rax]
movzx ebp, byte [r10 + rsi]
xor bpl, byte [r15 + rsi]
lea r9, [rsi + 1]
mov byte [r11 + rsi], bpl
mov rsi, r9
dec rbx
jne 0x140008060
cmp rdi, 3
mov rbx, qword [rsp + 0x28]
jb 0x140007f50
jmp 0x1400080d2
mov r9, r11
sub r9, r15
cmp r9, 0x20
jb 0x140008048
mov r9, r11
sub r9, r10
mov esi, 0
cmp r9, 0x20
jb 0x14000804a
cmp r13, 0x20
jae 0x14000813e
xor esi, esi
jmp 0x1400081a4
mov r9, rsi
cmp rdi, 3
mov rbx, qword [rsp + 0x28]
jb 0x140007f50
mov r10, qword [rsp + 0x58]
add r10, r12
mov r11, qword [rsp + 0x50]
add r11, r12
add rcx, rdx
add rcx, 3
nop dword [rax]
movzx edx, byte [r10 + r9 - 3]
xor dl, byte [rcx + r9 - 3]
mov byte [r11 + r9 - 3], dl
movzx edx, byte [r10 + r9 - 2]
xor dl, byte [rcx + r9 - 2]
mov byte [r11 + r9 - 2], dl
movzx edx, byte [r10 + r9 - 1]
xor dl, byte [rcx + r9 - 1]
mov byte [r11 + r9 - 1], dl
movzx edx, byte [r10 + r9]
xor dl, byte [rcx + r9]
mov byte [r11 + r9], dl
lea rdx, [r9 + 4]
mov r9, rdx
cmp r13, rdx
jne 0x1400080f0
jmp 0x140007f50
mov rsi, r13
and rsi, 0xffffffffffffffe0
lea r9, [rdx + rcx]
add r9, 0x10
mov rdi, qword [rsp + 0x48]
add rdi, r12
mov rbx, qword [rsp + 0x40]
add rbx, r12
xor ebp, ebp
nop
movups xmm0, xmmword [r9 + rbp - 0x10]
movups xmm1, xmmword [r9 + rbp]
movups xmm2, xmmword [rbx + rbp - 0x10]
xorps xmm2, xmm0
movups xmm0, xmmword [rbx + rbp]
xorps xmm0, xmm1
movups xmmword [rdi + rbp - 0x10], xmm2
movups xmmword [rdi + rbp], xmm0
add rbp, 0x20
cmp rsi, rbp
jne 0x140008160
cmp r13, rsi
mov rbx, qword [rsp + 0x28]
je 0x140007f50
test r13b, 0x18
je 0x14000804a
mov r9, rsi
mov rsi, r13
and rsi, 0xfffffffffffffff8
nop
mov rdi, qword [r10 + r9]
xor rdi, qword [r15 + r9]
mov qword [r11 + r9], rdi
add r9, 8
cmp rsi, r9
jne 0x1400081b0
cmp r13, rsi
je 0x140007f50
jmp 0x14000804a
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str._home_theo_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_buffer.rsP
mov rdx, rax
call dbg.slice_index_order_fail
ud2
lea r8, str._home_theo_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_buffer.rsP
mov rcx, rax
call dbg.slice_end_index_len_fail
ud2
lea r8, str._home_theo_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_blockmodes.rs
mov rcx, r12
mov rdx, rbx
call dbg.slice_start_index_len_fail
ud2
shl rcx, 4
add rcx, 0x10
lea r8, str._home_theo_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_aesni.rsAES_NI_not_supported_on_this_architecture._If_you_are_using_the_MSVC_toolchain__this_is_because_the_AES_NI_methods_have_not_been_ported__yet
mov edx, 0xf0
call dbg.slice_end_index_len_fail
ud2
lea rcx, [0x14012b370]
lea r8, str._home_theo_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_blockmodes.rs
mov edx, 0x2d
call dbg.panic
ud2