Function at 0x140098970
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0x70]
mov qword [rbp], 0xfffffffffffffffe
movabs rax, 0x100000000
cmp rdx, rax
ja 0x140098c16
mov rbx, r9
mov r12, r8
mov r14, rdx
mov r15, rcx
mov rax, qword [rbp + 0x78]
lea r13, [rax + 4]
mov rax, r13
not rax
shr rax, 0x3f
mov qword [rbp - 0x38], rax
lea rax, [rcx + 1]
mov qword [rbp - 0x48], rax
lea rax, [rcx + 0x10]
mov qword [rbp - 0x40], rax
xor eax, eax
mov qword [rbp - 0x28], rax
mov dword [rbp - 4], 0
xor eax, eax
mov qword [rbp - 0x20], rax
xor eax, eax
mov qword [rbp - 0x18], rax
xor esi, esi
mov qword [rbp - 0x10], r13
jmp 0x140098a15
mov r8d, 1
mov rcx, r13
mov r13, qword [rbp - 0x10]
mov rdx, r13
call fcn.1400648d0
cmp rsi, r14
jae 0x140098bcf
test r13, r13
je 0x140098bef
js 0x140098c0f
mov rdi, rbx
mov rcx, r13
mov rdx, qword [rbp - 0x38]
call fcn.1400648f0
test rax, rax
je 0x140098be0
mov r13, rax
mov rbx, qword [rbp + 0x78]
cmp rbx, 0xfffffffffffffffc
jae 0x140098bf5
mov rcx, r13
mov rdx, qword [rbp + 0x70]
mov r8, rbx
call fcn.1401aa2f0
movzx eax, byte [rbp - 0x28]
shl eax, 0x18
movzx ecx, byte [rbp - 4]
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rbp - 0x20]
shl eax, 8
or eax, ecx
movzx ecx, byte [rbp - 0x18]
or ecx, eax
mov dword [r13 + rbx], ecx
mov rbx, rdi
mov rax, qword [rdi + 0x18]
mov qword [rbp - 0x30], r13
mov rcx, r12
mov rdx, r13
mov r8, qword [rbp - 0x10]
call rax
mov rax, qword [rbx + 0x20]
mov qword [rbp - 0x30], r13
mov rcx, r12
call rax
test rdx, rdx
je 0x140098b80
mov r9, rsi
not r9
add r9, r14
lea rcx, [rdx - 1]
cmp r9, rcx
mov r8, rcx
cmovb r8, r9
inc r8
cmp r8, 0x20
jb 0x140098afc
lea r10, [r15 + rsi]
cmp r9, rcx
cmovb rcx, r9
lea r9, [rax + rcx]
inc r9
cmp r10, r9
jae 0x140098b2c
mov r9, qword [rbp - 0x48]
add r9, rsi
add rcx, r9
cmp rax, rcx
jae 0x140098b2c
xor ecx, ecx
inc rcx
nop word cs:[rax + rax]
movzx r8d, byte [rax + rcx - 1]
xor byte [r15 + rsi], r8b
inc rsi
cmp rcx, rdx
jae 0x140098b80
inc rcx
cmp rsi, r14
jb 0x140098b10
jmp 0x140098b80
mov rcx, r8
and rcx, 0xffffffffffffffe0
mov r9, qword [rbp - 0x40]
add r9, rsi
add rsi, rcx
xor r10d, r10d
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 0x140098b40
cmp r8, rcx
jne 0x140098afe
nop word cs:[rax + rax]
mov rcx, qword [rbp - 0x28]
inc cl
mov qword [rbp - 0x28], rcx
jne 0x140098bb3
mov ecx, dword [rbp - 4]
inc cl
mov dword [rbp - 4], ecx
jne 0x140098bb3
mov rcx, qword [rbp - 0x20]
add cl, 1
mov qword [rbp - 0x20], rcx
mov rcx, qword [rbp - 0x18]
adc cl, 0
mov qword [rbp - 0x18], rcx
mov dword [rbp - 4], 0
test rdx, rdx
je 0x140098a00
mov r8d, 1
mov rcx, rax
call fcn.1400648d0
jmp 0x140098a00
add rsp, 0x78
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rbp - 0x10]
call fcn.1401d8540
ud2
mov r13d, 1
mov qword [rbp - 0x30], r13
lea r8, [0x140226608]
mov rcx, qword [rbp + 0x78]
mov rdx, qword [rbp - 0x10]
call fcn.1401d8ca0
ud2
call fcn.1401539a0
ud2
lea rcx, str.assertion_failed:_out.len___as_u64___MAX_LENC:Userscompile_bamboo.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rsa_0.7.2_src_algorithms.rs
lea r8, [0x1402265f0]
mov edx, 0x2d
call fcn.1401d87e0
ud2