Function at 0x14001585a
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov rsi, qword [rsp + 0x128]
test sil, 0xf
je 0x140015891
and qword [rcx], 0
mov qword [rcx + 8], 1
and qword [rcx + 0x10], 0
jmp 0x140015e78
mov rbx, r9
mov rdi, rdx
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x80], rcx
mov rdx, qword [rsp + 0x120]
lea rcx, [rsp + 0x60]
mov r8, rsi
call sym.alloc::slice::__impl__T__::to_vec::h22ba44f666d011b9
shr rsi, 4
mov eax, dword [rdi + 0xf4]
mov dword [rsp + 0x4c], eax
mov eax, dword [rdi + 0xf8]
mov dword [rsp + 0x48], eax
mov eax, dword [rdi + 0xfc]
mov dword [rsp + 0x44], eax
mov eax, dword [rdi + 0x100]
mov dword [rsp + 0x40], eax
mov al, byte [rdi + 0x1e4]
shr al, 1
dec al
mov byte [rsp + 0x2f], al
mov qword [rsp + 0x78], rdi
lea rax, [rdi + 0x120]
mov qword [rsp + 0x88], rax
xor edx, edx
sub rsi, 1
jb 0x140015e2e
mov qword [rsp + 0x98], rsi
lea r8, [rdx + 0x10]
lea rcx, [rsp + 0x60]
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0xa0], r8
lea r9, str.C:Users1.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
call sym.__alloc::vec::Vec_T_A__as_core::ops::index::IndexMut_I__::index_mut::h230f16361a588ff8
cmp rdx, 3
jbe 0x140015ebe
cmp rdx, 7
jbe 0x140015ecf
cmp rdx, 0xb
jbe 0x140015ee0
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x30], rdx
cmp rdx, 0xf
jbe 0x140015ef1
mov r8d, dword [rax]
bswap r8d
xor r8d, dword [rsp + 0x4c]
mov edx, dword [rax + 4]
bswap edx
xor edx, dword [rsp + 0x48]
mov r9d, dword [rax + 8]
mov qword [rsp + 0xb0], rax
mov r10d, dword [rax + 0xc]
bswap r9d
xor r9d, dword [rsp + 0x44]
bswap r10d
xor r10d, dword [rsp + 0x40]
mov eax, 0x3c
mov r13, qword [rsp + 0x88]
mov cl, byte [rsp + 0x2f]
mov byte [rsp + 0x2e], cl
cmp rax, 4
jbe 0x140015e8f
mov qword [rsp + 0x38], rax
mov r11d, r8d
shr r11d, 0x18
mov esi, r10d
shr esi, 0xe
mov r15d, 0x3fc
and esi, r15d
lea rdi, [0x1400b8060]
mov r12d, dword [rsi + rdi]
mov qword [rsp + 0x58], r13
lea r13, [0x1400b7c48]
xor r12d, dword [r13 + r11*4]
mov r11d, r9d
shr r11d, 8
mov eax, 0xff
and r11d, eax
lea rbx, [0x1400b8460]
xor r12d, dword [rbx + r11*4]
mov r11d, edx
and r11d, eax
lea rcx, [0x1400b8860]
xor r12d, dword [rcx + r11*4]
mov r11d, edx
shr r11d, 0x18
mov esi, r8d
shr esi, 0xe
and esi, r15d
mov ebp, dword [rsi + rdi]
xor ebp, dword [r13 + r11*4]
mov r11d, r10d
shr r11d, 8
and r11d, eax
xor ebp, dword [rbx + r11*4]
mov r11d, r9d
and r11d, eax
xor ebp, dword [rcx + r11*4]
mov r11d, r9d
shr r11d, 0x18
mov esi, edx
shr esi, 0xe
and esi, r15d
mov r14d, dword [rsi + rdi]
xor r14d, dword [r13 + r11*4]
mov r11d, r8d
shr r11d, 8
and r11d, eax
xor r14d, dword [rbx + r11*4]
mov r11d, r10d
and r11d, eax
xor r14d, dword [rcx + r11*4]
shr r10d, 0x18
shr r9d, 0xe
and r9d, r15d
mov esi, dword [r9 + rdi]
xor esi, dword [r13 + r10*4]
mov r13, qword [rsp + 0x58]
shr edx, 8
and edx, eax
xor esi, dword [rbx + rdx*4]
and r8d, eax
xor esi, dword [rcx + r8*4]
xor r12d, dword [r13 - 0x1c]
xor ebp, dword [r13 - 0x18]
xor r14d, dword [r13 - 0x14]
xor esi, dword [r13 - 0x10]
mov al, byte [rsp + 0x2e]
sub al, 1
jb 0x140015bd4
cmp qword [rsp + 0x38], 8
je 0x140015ea5
mov byte [rsp + 0x2e], al
mov r8d, ebp
shr r8d, 0x18
mov edx, r12d
shr edx, 0xe
and edx, r15d
lea rdi, [0x1400b8060]
mov edx, dword [rdx + rdi]
lea r11, [0x1400b7c48]
xor edx, dword [r11 + r8*4]
mov r8d, esi
shr r8d, 8
mov eax, 0xff
and r8d, eax
lea rbx, [0x1400b8460]
xor edx, dword [rbx + r8*4]
mov r8d, r14d
and r8d, eax
lea rcx, [0x1400b8860]
xor edx, dword [rcx + r8*4]
mov r9d, r12d
shr r9d, 0x18
mov r8d, esi
shr r8d, 0xe
and r8d, r15d
mov r8d, dword [r8 + rdi]
xor r8d, dword [r11 + r9*4]
mov r9d, r14d
shr r9d, 8
and r9d, eax
xor r8d, dword [rbx + r9*4]
mov r9d, ebp
and r9d, eax
xor r8d, dword [rcx + r9*4]
mov r10d, r14d
shr r10d, 0x18
mov r9d, ebp
shr r9d, 0xe
and r9d, r15d
mov r9d, dword [r9 + rdi]
xor r9d, dword [r11 + r10*4]
mov r10d, r12d
shr r10d, 8
and r10d, eax
xor r9d, dword [rbx + r10*4]
mov r10d, esi
and r10d, eax
xor r9d, dword [rcx + r10*4]
shr esi, 0x18
shr r14d, 0xe
and r14d, r15d
mov r10d, dword [r14 + rdi]
xor r10d, dword [r11 + rsi*4]
shr ebp, 8
and ebp, eax
xor r10d, dword [rbx + rbp*4]
and r12d, eax
mov rax, qword [rsp + 0x38]
xor r10d, dword [rcx + r12*4]
xor edx, dword [r13 - 8]
xor r8d, dword [r13 - 0xc]
xor r9d, dword [r13 - 4]
xor r10d, dword [r13]
add r13, 0x20
add rax, 0xfffffffffffffff8
jmp 0x1400159be
cmp qword [rsp + 0x38], 8
mov r15, qword [rsp + 0xb0]
je 0x140015eb5
mov eax, ebp
mov edx, 0xff
and eax, edx
lea rbx, [0x1400b8f00]
movzx eax, byte [rax + rbx]
shl eax, 0x18
mov ecx, r14d
shr ecx, 8
and ecx, edx
movzx ecx, byte [rcx + rbx]
shl ecx, 0x10
or ecx, eax
mov eax, esi
shr eax, 0x10
and eax, edx
movzx eax, byte [rax + rbx]
shl eax, 8
or eax, ecx
mov ecx, r12d
shr ecx, 0x18
movzx edi, byte [rcx + rbx]
or edi, eax
bswap edi
xor edi, dword [r13 - 0xc]
lea rax, str.C:Users1.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
mov qword [rsp + 0x20], rax
mov edx, 4
xor ecx, ecx
mov r8, r15
mov r9, qword [rsp + 0x30]
call sym._ZN106__LT_core..ops..range..Range_LT_usize_GT__u20_as_u20_core..slice..index..SliceIndex_LT__u5b_T_u5d__GT__GT_9index_mut17h8
mov rcx, rax
mov r8d, edi
call sym.libaes::put_u32::hf2573ed93c48996e
mov eax, ebp
shr eax, 0x18
mov r9, rbx
movzx eax, byte [rax + rbx]
mov ecx, r12d
shr ecx, 0x10
mov r8d, 0xff
and ecx, r8d
movzx ebx, byte [rcx + rbx]
mov ecx, r14d
and ecx, r8d
mov edx, esi
shr edx, 8
and edx, r8d
movzx edx, byte [rdx + r9]
movzx ecx, byte [rcx + r9]
shl ecx, 0x18
shl edx, 0x10
shl ebx, 8
or ebx, eax
or ebx, edx
or ebx, ecx
bswap ebx
xor ebx, dword [r13 - 8]
lea rax, str.C:Users1.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
mov qword [rsp + 0x20], rax
mov ecx, 4
mov edx, 8
mov r8, r15
mov rdi, qword [rsp + 0x30]
mov r9, rdi
call sym._ZN106__LT_core..ops..range..Range_LT_usize_GT__u20_as_u20_core..slice..index..SliceIndex_LT__u5b_T_u5d__GT__GT_9index_mut17h8
mov rcx, rax
mov r8d, ebx
call sym.libaes::put_u32::hf2573ed93c48996e
mov eax, esi
mov edx, 0xff
and eax, edx
lea r8, [0x1400b8f00]
movzx eax, byte [rax + r8]
shl eax, 0x18
mov ecx, r12d
shr ecx, 8
and ecx, edx
movzx ecx, byte [rcx + r8]
shl ecx, 0x10
or ecx, eax
mov eax, ebp
shr eax, 0x10
and eax, edx
movzx eax, byte [rax + r8]
shl eax, 8
or eax, ecx
mov ecx, r14d
shr ecx, 0x18
movzx ebx, byte [rcx + r8]
or ebx, eax
bswap ebx
xor ebx, dword [r13 - 4]
lea rax, str.C:Users1.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
mov qword [rsp + 0x20], rax
mov ecx, 8
mov edx, 0xc
mov r8, r15
mov r9, rdi
call sym._ZN106__LT_core..ops..range..Range_LT_usize_GT__u20_as_u20_core..slice..index..SliceIndex_LT__u5b_T_u5d__GT__GT_9index_mut17h8
mov rcx, rax
mov r8d, ebx
call sym.libaes::put_u32::hf2573ed93c48996e
shr esi, 0x18
lea rdx, [0x1400b8f00]
movzx eax, byte [rsi + rdx]
shr r14d, 0x10
mov ecx, 0xff
and r14d, ecx
movzx esi, byte [r14 + rdx]
and r12d, ecx
shr ebp, 8
and ebp, ecx
movzx ecx, byte [rbp + rdx]
movzx edx, byte [r12 + rdx]
shl edx, 0x18
shl ecx, 0x10
shl esi, 8
or esi, eax
or esi, ecx
or esi, edx
bswap esi
mov rax, qword [rsp + 0x58]
xor esi, dword [rax]
lea rax, str.C:Users1.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
mov qword [rsp + 0x20], rax
mov ecx, 0xc
mov edx, 0x10
mov r8, r15
mov r9, rdi
call sym._ZN106__LT_core..ops..range..Range_LT_usize_GT__u20_as_u20_core..slice..index..SliceIndex_LT__u5b_T_u5d__GT__GT_9index_mut17h8
mov rcx, rax
mov r8d, esi
call sym.libaes::put_u32::hf2573ed93c48996e
mov rcx, r15
mov rdx, rdi
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x90]
call sym.libaes::xor_with_iv::h64e1ae6ba38af81c
mov rax, qword [rsp + 0xa8]
cmp rax, 0xfffffffffffffff0
je 0x140015f07
mov rdx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0xa0]
cmp rcx, rdx
ja 0x140015f1c
add rax, qword [rsp + 0x120]
mov qword [rsp + 0x50], rax
mov ebx, 0x10
mov rdx, rcx
mov rsi, qword [rsp + 0x98]
jmp 0x140015909
mov rax, qword [rsp + 0x78]
cmp byte [rax + 0x1e8], 0
je 0x140015e5f
mov rax, qword [rsp + 0x70]
cmp rax, 0x10
jb 0x140015e5f
mov rcx, qword [rsp + 0x68]
movzx ecx, byte [rax + rcx - 1]
xor edx, edx
sub rax, rcx
cmovae rdx, rax
mov qword [rsp + 0x70], rdx
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x80]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rsp + 0x60]
movups xmmword [rcx], xmm0
mov rax, rcx
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.C:Users1.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
mov ecx, 4
mov edx, 4
call sym.core::panicking::panic_bounds_check::h646967d06236d449
lea r8, str.Pg_v_
xor ecx, ecx
xor edx, edx
call sym.core::panicking::panic_bounds_check::h646967d06236d449
lea r8, str.C:Users1.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
jmp 0x140015eac
lea r8, str.C:Users1.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
mov ecx, 4
call sym.core::slice::index::slice_end_index_len_fail::h0369f756e1733715
lea r8, str.C:Users1.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
mov ecx, 8
call sym.core::slice::index::slice_end_index_len_fail::h0369f756e1733715
lea r8, str.C:Users1.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
mov ecx, 0xc
call sym.core::slice::index::slice_end_index_len_fail::h0369f756e1733715
lea r8, str.C:Users1.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
mov ecx, 0x10
mov rdx, qword [rsp + 0x30]
call sym.core::slice::index::slice_end_index_len_fail::h0369f756e1733715
lea r8, str.C:Users1.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
mov rcx, 0xfffffffffffffff0
xor edx, edx
call sym.core::slice::index::slice_index_order_fail::hd57c410096a6c542
lea r8, str.C:Users1.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
call sym.core::slice::index::slice_end_index_len_fail::h0369f756e1733715
int3