Function at 0x1400aca60
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x4b8
mov r14, r9
mov r12, r8
mov rsi, rdx
mov rdx, rcx
mov rbx, qword [r9 + 0x18]
mov qword [rsp + 0x60], rbx
imul r13, rbx, 0x23
add r13, 0x40
je 0x1400acad3
xor edi, edi
mov rax, r13
shr rax, 0x3c
sete al
jne 0x1400ad047
lea r15, [r13*8]
mov dil, al
shl rdi, 3
test r15, r15
je 0x1400acada
mov rcx, r15
mov rbp, rdx
mov rdx, rdi
call fcn.14000ddb0
mov rdx, rbp
test rax, rax
jne 0x1400acae6
jmp 0x1400ad04e
mov eax, 8
jmp 0x1400acae6
mov rax, rdi
test rax, rax
je 0x1400ad04e
mov qword [rsp + 0x88], r12
mov ecx, eax
and ecx, 0x3f
mov r8d, 0x40
sub r8, rcx
shr r8, 3
mov qword [rsp + 0x80], r13
sub r13, r8
jb 0x1400ad01e
lea r12, [rax + r8*8]
test r12b, 0x3f
jne 0x1400ad01e
mov rcx, rbx
shl rcx, 5
sub r13, rcx
jb 0x1400ad01e
sub r13, rbx
jb 0x1400ad01e
cmp r13, rbx
jb 0x1400ad01e
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x48], rax
cmp rbx, rsi
jne 0x1400ad022
mov qword [rsp + 0x78], rcx
lea r15, [r12 + rcx*8]
lea rbp, [r15 + rbx*8]
sub r13, rsi
mov rdi, rbx
lea rbx, [rsi*8]
mov rcx, rbp
mov qword [rsp + 0x70], rdx
mov r8, rbx
call fcn.14012ca80
cmp r13, rsi
jb 0x1400ad01e
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x68], rdi
lea rbp, [rbp + rdi*8]
mov r13, qword [r14 + 0x10]
mov rcx, rbp
mov rdx, r13
mov qword [rsp + 0x50], rbx
mov r8, rbx
call fcn.14012ca80
test rsi, rsi
je 0x1400ad01e
mov rcx, rsi
shl rcx, 6
cmp rsi, 4
mov rbx, qword [rsp + 0x58]
jae 0x1400acbcd
xor eax, eax
jmp 0x1400acc40
mov rax, rsi
and rax, 0xfffffffffffffffc
mov rdx, qword [rsp + 0x68]
shl rdx, 8
mov r8, qword [rsp + 0x40]
lea rdx, [rdx + r8*8]
mov r8, qword [rsp + 0x48]
add rdx, r8
add rdx, 0x10
xor r8d, r8d
pcmpeqd xmm0, xmm0
nop dword [rax]
movdqu xmm1, xmmword [r13 + r8*8]
movdqu xmm2, xmmword [r13 + r8*8 + 0x10]
pxor xmm1, xmm0
pxor xmm2, xmm0
movdqu xmmword [rdx + r8*8 - 0x10], xmm1
movdqu xmmword [rdx + r8*8], xmm2
add r8, 4
cmp rax, r8
jne 0x1400acc00
cmp rax, rsi
je 0x1400acc58
nop word cs:[rax + rax]
mov rdx, qword [r13 + rax*8]
not rdx
mov qword [r15 + rax*8], rdx
lea rdx, [rax + 1]
mov rax, rdx
cmp rsi, rdx
jne 0x1400acc40
or byte [r15], 1
sub rcx, qword [r14 + 0x20]
je 0x1400acc96
mov rax, qword [r15 + rsi*8 - 8]
shl rax, cl
shr rax, cl
mov qword [r15 + rsi*8 - 8], rax
cmp rcx, 2
mov edi, 1
cmovae rdi, rcx
nop
mov rcx, r15
mov rdx, r15
mov r8, r13
mov r9, rsi
call fcn.140113fc0
dec rdi
jne 0x1400acc80
mov qword [rsp + 0x40], r13
mov rcx, r15
mov rdx, rsi
mov r8, r12
xor r9d, r9d
call fcn.1400b13b0
mov rcx, r15
mov rdx, rbx
mov r8, qword [rsp + 0x50]
call fcn.14012ca80
mov r9d, 1
mov rcx, r15
mov rdx, rsi
mov r8, r12
call fcn.1400b13b0
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r14
mov rcx, r15
mov rdx, r15
mov r8, r15
mov r9, rbp
call fcn.1400ad100
mov r9d, 2
mov rcx, r15
mov rdx, rsi
mov r8, r12
call fcn.1400b13b0
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r14
mov rcx, r15
mov rdx, r15
mov r8, r15
mov r9, rbp
call fcn.1400ad100
mov r9d, 4
mov rcx, r15
mov rdx, rsi
mov r8, r12
call fcn.1400b13b0
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r14
mov rcx, r15
mov rdx, r15
mov r8, r15
mov r9, rbp
call fcn.1400ad100
mov r9d, 8
mov rcx, r15
mov rdx, rsi
mov r8, r12
call fcn.1400b13b0
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r14
mov rcx, r15
mov rdx, r15
mov r8, r15
mov r9, rbp
call fcn.1400ad100
mov r9d, 0x10
mov rcx, r15
mov rdx, rsi
mov r8, r12
call fcn.1400b13b0
xor eax, eax
mov r13d, 3
nop word cs:[rax + rax]
test al, 1
je 0x1400acdc0
inc r13
je 0x1400ace65
cmp r13, 0x1f
ja 0x1400ace65
mov rdi, r13
inc r13
jmp 0x1400acddb
cmp r13, 0x20
mov rax, r13
adc rax, 0
mov rdi, r13
cmp r13, 0x20
mov r13, rax
jae 0x1400ace65
lea rax, [rdi - 1]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r14
mov rcx, r15
mov rdx, rbx
mov r8, r12
mov r9, rbp
call fcn.1400ae3c0
mov rcx, r15
mov rdx, rsi
mov r8, r12
mov r9, rdi
call fcn.1400b13b0
mov al, 1
cmp rdi, 0xf
ja 0x1400acda0
nop dword [rax + rax]
lea rbx, [rdi + rdi]
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r14
mov rcx, r15
mov rdx, r15
mov r8, r15
mov r9, rbp
call fcn.1400ad100
mov rcx, r15
mov rdx, rsi
mov r8, r12
mov r9, rbx
call fcn.1400b13b0
cmp rdi, 7
mov rdi, rbx
jbe 0x1400ace20
mov rbx, qword [rsp + 0x58]
mov al, 1
jmp 0x1400acda0
mov rax, qword [rsp + 0x88]
mov rdi, qword [rax]
mov r13, qword [rax + 8]
mov qword [rsp + 0xb8], r12
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], rbp
mov qword [rsp + 0xd0], rsi
mov qword [rsp + 0xd8], r14
lea rax, [rsp + 0x60]
mov qword [rsp + 0xe0], rax
test r13, r13
je 0x1400ad01e
mov rcx, r13
shl rcx, 6
movabs rdx, 0xcccccccccccccccd
mov rax, rcx
mul rdx
shr rdx, 2
lea rax, [rdx + rdx*4]
sub rcx, rax
mov eax, 0x40
sub rax, rcx
test rcx, rcx
mov ebx, 0x3b
cmovne rbx, rax
mov rcx, qword [rdi + r13*8 - 8]
xor edx, edx
mov r8, rbx
call fcn.1401141e0
add rbx, 0xfffffffffffffffb
mov qword [rsp + 0x90], rbx
mov rdx, qword [rsp + 0x60]
mov rcx, r15
mov r8, r12
mov r9, rax
call fcn.1400b13e0
mov qword [rsp + 0x98], 0
lea rcx, [rdi + r13*8]
lea rax, [rsp + 0x98]
mov qword [rsp + 0xa0], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0xa8], rax
lea rax, [rsp + 0xb8]
mov qword [rsp + 0xb0], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
mov rdx, rdi
mov r8, r15
mov r9, rsi
call fcn.140096bb0
cmp rdx, rsi
mov rdi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x50]
jne 0x1400ad036
mov rcx, rdi
mov rdx, rax
call fcn.14012ca80
lea rcx, [rsp + 0xc0]
mov r8d, 0x3f8
xor edx, edx
call fcn.14012d200
mov qword [rsp + 0xb8], 1
cmp rsi, 0x81
mov rbx, qword [rsp + 0x80]
mov r9, qword [rsp + 0x40]
jae 0x1400ad01e
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r14
lea r8, [rsp + 0xb8]
mov rcx, rdi
mov rdx, rdi
call fcn.1400ad100
test rbx, rbx
je 0x1400ad004
shl rbx, 3
mov r8d, 8
mov rcx, qword [rsp + 0x48]
mov rdx, rbx
call fcn.14000dd90
mov rax, rdi
mov rdx, rsi
add rsp, 0x4b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
lea r8, str..cargo_registry_srcindex.crates.io_6f17d22bba15001f_ring_0.17.7_src_arithmetic_bigint.rs
mov rcx, rbx
mov rdx, rsi
call fcn.1400f4aa0
ud2
lea r8, str..cargo_registry_srcindex.crates.io_6f17d22bba15001f_ring_0.17.7_src_arithmetic_bigint.rs
mov rcx, rsi
call fcn.1400f4aa0
ud2
call fcn.1400f4aa0
ud2
mov rcx, r15
mov rdx, rdi
call fcn.140130c60
ud2