Function at 0x1400af990
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
movabs rax, 0x100000000
cmp rdx, rax
ja 0x1400afc19
mov r15, rdx
test rdx, rdx
je 0x1400afc08
mov rbp, qword [rsp + 0xc8]
add rbp, 4
mov qword [rsp + 0x40], rbp
je 0x1400afc33
js 0x1400afc3b
cmp qword [rsp + 0xc8], 0xfffffffffffffffb
ja 0x1400afc42
mov r14, r9
mov rbx, r8
mov r12, rcx
lea rax, [rcx + 1]
mov qword [rsp + 0x50], rax
lea rax, [rcx + 0x10]
mov qword [rsp + 0x48], rax
xor eax, eax
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x24], 0
xor eax, eax
mov qword [rsp + 0x30], rax
xor eax, eax
mov qword [rsp + 0x28], rax
xor edi, edi
jmp 0x1400afa4f
mov r8d, 1
mov rcx, r13
mov rbp, qword [rsp + 0x40]
mov rdx, rbp
call sym.__rust_dealloc
cmp rdi, r15
jae 0x1400afc08
mov rsi, r14
mov edx, 1
mov rcx, rbp
call sym.__rust_alloc_zeroed
test rax, rax
je 0x1400afc57
mov r13, rax
mov rcx, rax
mov rdx, qword [rsp + 0xc0]
mov r14, qword [rsp + 0xc8]
mov r8, r14
call sym.memcpy
movzx eax, byte [rsp + 0x38]
shl eax, 0x18
movzx ecx, byte [rsp + 0x24]
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x30]
shl eax, 8
or eax, ecx
movzx ecx, byte [rsp + 0x28]
or ecx, eax
mov dword [r13 + r14], ecx
mov rcx, rbx
mov rdx, r13
mov r8, rbp
mov r14, rsi
call qword [rsi + 0x18]
mov rcx, rbx
call qword [r14 + 0x20]
test rdx, rdx
je 0x1400afbb0
cmp rdi, r15
jae 0x1400afbb0
mov r9, rdi
not r9
add r9, r15
lea rcx, [rdx - 1]
cmp r9, rcx
mov r8, rcx
cmovb r8, r9
inc r8
cmp r8, 0x20
jb 0x1400afb1d
lea r10, [r12 + rdi]
cmp r9, rcx
cmovb rcx, r9
lea r9, [rax + rcx]
inc r9
cmp r10, r9
jae 0x1400afb4c
mov r9, qword [rsp + 0x50]
add r9, rdi
add rcx, r9
cmp rax, rcx
jae 0x1400afb4c
xor ecx, ecx
inc rcx
nop word cs:[rax + rax]
movzx r8d, byte [rax + rcx - 1]
xor byte [r12 + rdi], r8b
inc rdi
cmp rcx, rdx
jae 0x1400afbb0
inc rcx
cmp rdi, r15
jb 0x1400afb30
jmp 0x1400afbb0
mov rcx, r8
and rcx, 0xffffffffffffffe0
mov r9, qword [rsp + 0x48]
add r9, rdi
add rdi, rcx
xor r10d, r10d
nop word cs:[rax + rax]
movups xmm0, xmmword [rax + r10]
movups xmm1, xmmword [rax + r10 + 0x10]
movups xmm2, xmmword [r9 + r10 - 0x10]
xorps xmm2, xmm0
movups xmm0, xmmword [r9 + r10]
xorps xmm0, xmm1
movups xmmword [r9 + r10 - 0x10], xmm2
movups xmmword [r9 + r10], xmm0
add r10, 0x20
cmp rcx, r10
jne 0x1400afb70
cmp r8, rcx
jne 0x1400afb1f
nop dword [rax]
mov rcx, qword [rsp + 0x38]
inc cl
mov qword [rsp + 0x38], rcx
jne 0x1400afbec
mov ecx, dword [rsp + 0x24]
inc cl
mov dword [rsp + 0x24], ecx
jne 0x1400afbec
mov rcx, qword [rsp + 0x30]
add cl, 1
mov qword [rsp + 0x30], rcx
mov rcx, qword [rsp + 0x28]
adc cl, 0
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x24], 0
test rdx, rdx
je 0x1400afa30
mov r8d, 1
mov rcx, rax
call sym.__rust_dealloc
jmp 0x1400afa30
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, str.assertion_failed:_out.len___as_u64___MAX_LEN_home_user_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rsa_0.7.2_src_algorithms.rs
lea r8, [0x1401ff5e0]
mov edx, 0x2d
call dbg.panic
ud2
mov r13d, 1
jmp 0x1400afc66
call dbg.capacity_overflow
ud2
mov edx, 1
mov rcx, rbp
call sym.__rust_alloc_zeroed
mov r13, rax
test rax, rax
jne 0x1400afc66
mov ecx, 1
mov rdx, rbp
call dbg.handle_alloc_error
ud2
lea r8, [0x1401ff5f8]
mov rcx, qword [rsp + 0xc8]
mov rdx, rbp
call dbg.slice_end_index_len_fail
ud2