Function at 0x140058bf0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x228
movdqa xmmword [rsp + 0x210], xmm6
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0xe0], rcx
movzx eax, byte [r9 + 0xa8]
dec al
movzx ecx, al
cmp cl, 3
ja 0x140059597
mov r14, r9
lea rax, [0x1401d4160]
mov r13d, dword [rax + rcx*4]
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 0
lea rcx, [rsp + 0x30]
call sym.alloc::raw_vec::RawVec_T_A_::grow_one::h783528d51b53b758
mov rax, qword [rsp + 0x38]
mov byte [rax], 1
mov qword [rsp + 0x40], 1
cmp qword [rsp + 0x30], 1
jne 0x140058c8a
lea rcx, [rsp + 0x30]
call sym.alloc::raw_vec::RawVec_T_A_::grow_one::h783528d51b53b758
mov rax, qword [rsp + 0x38]
mov byte [rax + 1], 1
mov qword [rsp + 0x40], 2
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x50], 4
mov qword [rsp + 0x58], 0
cmp qword [rsp + 0x70], 0
je 0x1400595a8
mov rax, qword [rsp + 0x78]
mov esi, dword [rax]
lea rcx, [rsp + 0x48]
call sym.alloc::raw_vec::RawVec_T_A_::grow_one::h21261a28c9acf7de
mov rax, qword [rsp + 0x50]
mov dword [rax], esi
mov qword [rsp + 0x58], 1
cmp qword [rsp + 0x70], 1
je 0x1400595b5
mov rax, qword [rsp + 0x78]
mov esi, dword [rax + 4]
cmp qword [rsp + 0x48], 1
jne 0x140058d0a
lea rcx, [rsp + 0x48]
call sym.alloc::raw_vec::RawVec_T_A_::grow_one::h21261a28c9acf7de
mov rax, qword [rsp + 0x50]
mov dword [rax + 4], esi
mov qword [rsp + 0x58], 2
mov r8, qword [r14 + 0x80]
mov rax, qword [r14 + 0x88]
mov qword [rsp + 0x28], rax
lea rax, [r8 + rax*4]
mov qword [rsp + 0x88], rax
lea rax, [r8 - 4]
mov qword [rsp + 0x98], rax
lea rax, [r8 - 8]
mov qword [rsp + 0x90], rax
mov eax, 2
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x68], r8
mov r14, r8
mov dword [rsp + 0x60], r13d
jmp 0x140058d97
mov rax, qword [rsp + 0x50]
mov dword [rax + rsi*4], ebx
lea rax, [rsp + 0x58]
inc rsi
mov qword [rax], rsi
mov dl, 1
xor eax, eax
mov rcx, qword [rsp + 0xe8]
mov r14, qword [rsp + 0xf8]
test dl, 1
je 0x140058dd0
xor eax, eax
cmp r14, qword [rsp + 0x88]
setne dl
je 0x140059249
mov al, dl
lea rdx, [rcx + rax]
lea r8, [r14 + rax*4]
test r14, r14
jne 0x140058e07
jmp 0x140059249
mov rdx, qword [rsp + 0x88]
sub rdx, r14
shr rdx, 2
cmp rdx, rax
jbe 0x140059249
lea rdx, [rcx + rax]
inc rdx
add rcx, rax
lea r8, [r14 + rax*4]
add r8, 4
lea r14, [r14 + rax*4]
test r14, r14
je 0x140059249
mov qword [rsp + 0xf8], r8
mov qword [rsp + 0x80], rcx
lea rax, str.smallerbigger
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], 7
cmp rcx, qword [rsp + 0x28]
jae 0x14005951f
mov rax, qword [rsp + 0x68]
mov r9d, dword [rax + rcx*4]
mov dword [rsp + 0x64], r9d
test rcx, rcx
je 0x14005937e
mov rax, qword [rsp + 0x68]
lea rdi, [rax + rcx*4]
lea rsi, [rcx*4]
lea rbx, [rcx*4 - 4]
mov r11d, 4
sub r11, rsi
mov rbp, r11
mov r10, rbx
xor r15d, r15d
mov r8, rsi
xor r12d, r12d
nop word cs:[rax + rax]
cmp r9d, dword [rax]
ja 0x140058ec0
add rax, 4
inc r12
add r8, 0xfffffffffffffffc
add r15, 4
add r10, 0xfffffffffffffffc
add rbp, 4
cmp rax, rdi
jne 0x140058e90
jmp 0x14005937e
mov qword [rsp + 0xf0], r14
mov qword [rsp + 0xe8], rdx
mov rax, qword [rsp + 0x68]
lea r13, [rax + r12*4]
cmp r13, rdi
je 0x140058f28
shr r8, 2
dec r8
mov rax, qword [rsp + 0x90]
lea r14, [rax + rsi]
mov rdx, qword [rsp + 0x98]
nop dword [rax]
mov eax, dword [rdx + rsi]
cmp r9d, eax
ja 0x140059180
dec r8
add r15, 4
add rdx, 0xfffffffffffffffc
add r10, 0xfffffffffffffffc
add rbp, 4
add r14, 0xfffffffffffffffc
cmp rsi, r15
jne 0x140058f00
mov eax, dword [r13]
xor r8d, r8d
add r8, r12
mov qword [rsp + 0x80], rcx
lea rdx, [0x1401d413f]
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0xa8], 6
mov dword [rsp + 0x64], r9d
xor r15d, r15d
mov rbp, rsi
xor r12d, r12d
mov rdx, qword [rsp + 0x68]
nop dword [rax + rax]
cmp r9d, dword [rdx]
jb 0x140058fa0
add rdx, 4
inc r12
add rbp, 0xfffffffffffffffc
add r15, 4
add rbx, 0xfffffffffffffffc
add r11, 4
cmp rdx, rdi
jne 0x140058f70
jmp 0x14005937e
mov rdx, qword [rsp + 0x68]
lea r13, [rdx + r12*4]
cmp r13, rdi
je 0x140058ff9
shr rbp, 2
dec rbp
mov rdx, qword [rsp + 0x90]
lea r10, [rdx + rsi]
mov rdx, qword [rsp + 0x98]
nop dword [rax]
mov r14d, dword [rdx + rsi]
cmp r9d, r14d
jb 0x1400591d0
dec rbp
add r15, 4
add rdx, 0xfffffffffffffffc
add rbx, 0xfffffffffffffffc
add r11, 4
add r10, 0xfffffffffffffffc
cmp rsi, r15
jne 0x140058fd0
mov r14d, dword [r13]
xor ebp, ebp
mov r13d, dword [rsp + 0x60]
mov rdi, qword [rsp + 0x58]
cmp r8, rdi
jae 0x14005953b
add rbp, r12
cmp rbp, rdi
jae 0x14005955a
mov r9, qword [rsp + 0x50]
mov r10d, dword [r9 + r8*4]
mov esi, dword [r9 + rbp*4]
mov rdx, qword [rsp + 0xf0]
mov edx, dword [rdx]
mov r11d, r14d
sub r11d, eax
sub esi, r10d
js 0x140059070
cmp r14d, eax
je 0x14005954c
sub edx, eax
imul edx, esi
mov eax, edx
xor edx, edx
div r11d
mov esi, eax
add esi, r10d
cmp rcx, qword [rsp + 0x70]
jb 0x140059094
jmp 0x140059528
cmp r14d, eax
je 0x14005954c
sub eax, edx
imul eax, esi
xor edx, edx
div r11d
sub r10d, eax
mov esi, r10d
cmp rcx, qword [rsp + 0x70]
jae 0x140059528
mov rax, qword [rsp + 0x78]
mov ebx, dword [rax + rcx*4]
mov r14d, r13d
sub r14d, esi
cmp r14d, esi
mov r15d, esi
cmovl r15d, r14d
test ebx, ebx
jle 0x140059130
mov rax, qword [rsp + 0x40]
cmp r8, rax
jae 0x14005956b
mov rax, qword [rsp + 0x38]
mov byte [rax + r8], 1
mov rax, qword [rsp + 0x40]
cmp rbp, rax
jae 0x14005957c
mov rax, qword [rsp + 0x38]
mov byte [rax + rbp], 1
mov rdi, qword [rsp + 0x40]
cmp rdi, qword [rsp + 0x30]
jne 0x1400590f9
lea rcx, [rsp + 0x30]
call sym.alloc::raw_vec::RawVec_T_A_::grow_one::h783528d51b53b758
add r15d, r15d
mov rax, qword [rsp + 0x38]
mov byte [rax + rdi], 1
inc rdi
mov qword [rsp + 0x40], rdi
cmp ebx, r15d
jge 0x140059220
mov eax, ebx
and eax, 1
neg eax
xor eax, ebx
sar eax, 1
add eax, esi
mov ebx, eax
jmp 0x14005922a
cmp rdi, qword [rsp + 0x48]
jne 0x140059146
lea rcx, [rsp + 0x48]
call sym.alloc::raw_vec::RawVec_T_A_::grow_one::h21261a28c9acf7de
mov r9, qword [rsp + 0x50]
mov dword [r9 + rdi*4], esi
inc rdi
mov qword [rsp + 0x58], rdi
mov rsi, qword [rsp + 0x40]
cmp rsi, qword [rsp + 0x30]
jne 0x140059168
lea rcx, [rsp + 0x30]
call sym.alloc::raw_vec::RawVec_T_A_::grow_one::h783528d51b53b758
mov rax, qword [rsp + 0x38]
mov byte [rax + rsi], 0
lea rax, [rsp + 0x40]
jmp 0x140058d7d
lea rdx, [rcx*4 - 4]
cmp rdx, r15
je 0x140058f2f
shr r10, 2
dec r10
jmp 0x1400591b1
dec r10
add r14, 0xfffffffffffffffc
add rbp, 4
je 0x140058f2f
mov edx, dword [r14]
cmp r9d, edx
jbe 0x1400591a0
cmp eax, edx
cmovbe eax, edx
cmovbe r8, r10
jmp 0x1400591a0
add rsi, 0xfffffffffffffffc
cmp rsi, r15
je 0x140058fff
shr rbx, 2
dec rbx
mov r13d, dword [rsp + 0x60]
jmp 0x140059201
dec rbx
add r10, 0xfffffffffffffffc
add r11, 4
je 0x140059004
mov edx, dword [r10]
cmp r9d, edx
jae 0x1400591f0
cmp edx, r14d
cmovb r14d, edx
cmovbe rbp, rbx
jmp 0x1400591f0
cmp r14d, esi
jg 0x14005922a
not ebx
add ebx, r13d
mov rsi, qword [rsp + 0x58]
cmp rsi, qword [rsp + 0x48]
jne 0x140058d70
lea rcx, [rsp + 0x48]
call sym.alloc::raw_vec::RawVec_T_A_::grow_one::h21261a28c9acf7de
jmp 0x140058d70
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x140059337
mov rdx, qword [rsp + 0x50]
dec r13d
lea rcx, [rax - 1]
movabs r8, 0x3fffffffffffffff
and r8, rcx
mov rcx, rdx
cmp r8, 7
jb 0x140059310
inc r8
mov r9, r8
and r9, 0xfffffffffffffff8
lea rcx, [rdx + r9*4]
movd xmm0, r13d
pshufd xmm0, xmm0, 0
xor r10d, r10d
movdqa xmm1, xmmword [0x1401d3d60]
movdqa xmm2, xmm0
pxor xmm2, xmm1
nop dword [rax + rax]
movdqu xmm3, xmmword [rdx + r10*4]
movdqu xmm4, xmmword [rdx + r10*4 + 0x10]
movdqa xmm5, xmm3
pxor xmm5, xmm1
pcmpgtd xmm5, xmm2
movdqa xmm6, xmm0
pand xmm6, xmm5
pandn xmm5, xmm3
por xmm5, xmm6
movdqa xmm3, xmm4
pxor xmm3, xmm1
pcmpgtd xmm3, xmm2
movdqa xmm6, xmm0
pand xmm6, xmm3
pandn xmm3, xmm4
por xmm3, xmm6
movdqu xmmword [rdx + r10*4], xmm5
movdqu xmmword [rdx + r10*4 + 0x10], xmm3
add r10, 8
cmp r9, r10
jne 0x1400592b0
cmp r8, r9
je 0x140059337
lea rax, [rdx + rax*4]
nop word cs:[rax + rax]
mov edx, dword [rcx]
cmp r13d, edx
cmovb edx, r13d
mov dword [rcx], edx
lea rdx, [rcx + 4]
mov rcx, rdx
cmp rdx, rax
jne 0x140059320
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0xe0]
mov qword [rax + 0x10], rcx
movups xmm0, xmmword [rsp + 0x48]
movups xmmword [rax], xmm0
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rax + 0x18], xmm0
mov rcx, qword [rsp + 0x40]
mov qword [rax + 0x28], rcx
movaps xmm6, xmmword [rsp + 0x210]
add rsp, 0x228
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [rsp + 0x80]
mov qword [rsp + 0xb0], rax
lea rax, [sym.core::fmt::num::imp::__impl_core::fmt::Display_for_u64_::fmt::h57e859256a3b26f6]
mov qword [rsp + 0xb8], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0xc0], rax
lea rax, [sym.__T_as_core::fmt::Display_::fmt::h62ee72f0a72eb4e5]
mov qword [rsp + 0xc8], rax
lea rax, [rsp + 0x64]
mov qword [rsp + 0xd0], rax
lea rax, [sym.core::fmt::num::__impl_core::fmt::LowerHex_for_i32_::fmt::h6e2970a311b54283]
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0x100], 2
mov qword [rsp + 0x110], 2
mov qword [rsp + 0x120], 0
mov qword [rsp + 0x128], 0x20
mov byte [rsp + 0x130], 3
mov qword [rsp + 0x138], 2
mov qword [rsp + 0x148], 2
mov qword [rsp + 0x158], 1
mov qword [rsp + 0x160], 0x20
mov byte [rsp + 0x168], 3
mov qword [rsp + 0x170], 2
mov qword [rsp + 0x180], 2
mov qword [rsp + 0x190], 0
mov qword [rsp + 0x198], 0x20
mov byte [rsp + 0x1a0], 3
mov qword [rsp + 0x1a8], 2
mov qword [rsp + 0x1b8], 0
mov qword [rsp + 0x1c0], 8
mov qword [rsp + 0x1c8], 2
movabs rax, 0x800000020
mov qword [rsp + 0x1d0], rax
mov byte [rsp + 0x1d8], 3
lea rax, str.No_index_y____found_where_v_y__is__than_v____0x_
mov qword [rsp + 0x1e0], rax
lea rax, [rsp + 0xb0]
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x1e0]
mov qword [rcx + 8], 5
mov qword [rcx + 0x20], rdx
mov qword [rcx + 0x28], 4
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], 3
lea rdx, [0x1401d4120]
call sym.core::panicking::panic_fmt::h50bba86df16ca19f
jmp 0x140059595
lea r8, [0x1401d4080]
jmp 0x14005958b
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea r8, [0x1401d41e8]
jmp 0x14005958b
mov rcx, r8
mov qword [rsp + 0x28], rdi
lea r8, [0x1401d41b8]
jmp 0x14005958b
lea rcx, [0x1401d4148]
call sym.core::panicking::panic_const::panic_const_div_by_zero::he646465697827225
jmp 0x140059595
mov rcx, rbp
mov qword [rsp + 0x28], rdi
lea r8, [0x1401d41d0]
jmp 0x14005958b
mov rcx, r8
mov qword [rsp + 0x28], rax
lea r8, [0x1401d4200]
jmp 0x14005958b
mov rcx, rbp
mov qword [rsp + 0x28], rax
lea r8, [0x1401d4218]
mov rdx, qword [rsp + 0x28]
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
ud2
lea r8, [0x1401d4170]
mov edx, 4
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, [0x1401d4188]
xor ecx, ecx
xor eax, eax
jmp 0x1400595c6
lea r8, [0x1401d41a0]
mov ecx, 1
mov eax, 1
mov qword [rsp + 0x28], rax
jmp 0x14005958b