Function at 0x14001a160
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, 0xa8
mov qword [rsp + 0x58], rdx
mov rsi, qword [rsp + 0x118]
xor eax, eax
mov edi, 1
test rsi, rsi
je 0x14001a85a
mov rbx, r8
mov edx, esi
mov r8d, 0
and edx, 0xf
jne 0x14001a865
mov qword [rsp + 0x70], rcx
test rsi, rsi
js 0x14001a9e2
mov r14, r9
mov rax, qword [0x1400f2fa8]
movzx eax, byte [rax]
mov r13d, 1
mov edx, 1
mov rcx, rsi
call sym.__rust_alloc
test rax, rax
je 0x14001a9e5
mov rdi, rax
mov rdx, qword [rsp + 0x110]
mov rcx, rax
mov r8, rsi
call sym.memcpy
mov rcx, rsi
shr rcx, 4
mov rax, qword [rsp + 0x58]
mov edx, dword [rax + 0xf4]
mov dword [rsp + 0x54], edx
mov edx, dword [rax + 0xf8]
mov dword [rsp + 0x50], edx
mov edx, dword [rax + 0xfc]
mov dword [rsp + 0x4c], edx
mov edx, dword [rax + 0x100]
mov dword [rsp + 0x48], edx
movzx edx, byte [rax + 0x1e4]
shr dl, 1
mov byte [rsp + 0x27], dl
add rax, 0x120
mov qword [rsp + 0x78], rax
lea r8, [0x1400cc890]
lea r10, [0x1400cd0a8]
lea r9, [0x1400cd4a8]
xor r11d, r11d
mov qword [rsp + 0x60], rdi
nop word [rax + rax]
cmp r11, 0xfffffffffffffff0
je 0x14001a9ad
mov qword [rsp + 0x98], r14
mov qword [rsp + 0x88], rbx
lea rax, [r11 + 0x10]
mov qword [rsp + 0x68], rax
cmp rax, rsi
ja 0x14001a9c4
dec rcx
mov qword [rsp + 0x80], rcx
mov eax, dword [rdi + r11]
mov edx, dword [rdi + r11 + 4]
bswap eax
xor eax, dword [rsp + 0x54]
bswap edx
xor edx, dword [rsp + 0x50]
mov ebx, dword [rdi + r11 + 8]
bswap ebx
xor ebx, dword [rsp + 0x4c]
mov qword [rsp + 0x90], r11
mov ecx, dword [rdi + r11 + 0xc]
bswap ecx
xor ecx, dword [rsp + 0x48]
mov esi, 0x3c
mov r11, qword [rsp + 0x78]
mov qword [rsp + 0x38], r11
movzx r11d, byte [rsp + 0x27]
mov byte [rsp + 0x30], r11b
lea r11, [0x1400ccca8]
nop dword [rax + rax]
mov qword [rsp + 0xa0], rsi
mov rdi, r9
mov r15d, ecx
movzx ebp, bh
movzx esi, ch
mov qword [rsp + 0x40], rsi
movzx r9d, bl
mov qword [rsp + 0x28], r9
mov r13d, ebx
movzx r12d, cl
shr ecx, 0x18
shr ebx, 0xe
and ebx, 0x3fc
mov ebx, dword [rbx + r11]
xor ebx, dword [r8 + rcx*4]
mov ecx, eax
shr ecx, 0x18
shr r15d, 0xe
and r15d, 0x3fc
mov rsi, r8
mov r8d, dword [r15 + r11]
xor r8d, dword [rsi + rcx*4]
xor r8d, dword [r10 + rbp*4]
movzx r14d, dl
mov r15d, edx
mov r10d, edx
movzx ecx, dh
shr r15d, 0x18
mov edx, eax
shr edx, 0xe
and edx, 0x3fc
movzx ebp, ah
movzx r9d, al
mov eax, dword [rdx + r11]
xor eax, dword [rsi + r15*4]
lea rdx, [0x1400cd0a8]
mov r15, qword [rsp + 0x40]
xor eax, dword [rdx + r15*4]
shr r13d, 0x18
shr r10d, 0xe
and r10d, 0x3fc
mov edx, dword [r10 + r11]
xor edx, dword [rsi + r13*4]
lea r10, [0x1400cd0a8]
xor edx, dword [r10 + rbp*4]
lea rbp, [0x1400cd0a8]
xor ebx, dword [rbp + rcx*4]
xor r8d, dword [rdi + r14*4]
mov rcx, qword [rsp + 0x38]
xor r8d, dword [rcx - 0x1c]
mov r10d, r8d
mov r8, qword [rsp + 0x28]
xor eax, dword [rdi + r8*4]
xor eax, dword [rcx - 0x18]
xor edx, dword [rdi + r12*4]
xor edx, dword [rcx - 0x14]
xor ebx, dword [rdi + r9*4]
xor ebx, dword [rcx - 0x10]
movzx ecx, byte [rsp + 0x30]
dec cl
je 0x14001a510
mov byte [rsp + 0x30], cl
movzx ecx, bh
mov r8, rcx
movzx ecx, dl
mov qword [rsp + 0x28], rcx
mov r12d, ebx
movzx ecx, dh
mov r15, rcx
mov r13d, edx
movzx r14d, bl
shr ebx, 0x18
shr edx, 0xe
and edx, 0x3fc
mov ecx, dword [rdx + r11]
xor ecx, dword [rsi + rbx*4]
mov r9d, eax
shr r9d, 0x18
mov ebx, eax
mov eax, r10d
mov edx, r10d
shr edx, 0xe
and edx, 0x3fc
mov edx, dword [rdx + r11]
xor edx, dword [rsi + r9*4]
movzx r9d, bl
mov r10d, ebx
movzx esi, bh
xor edx, dword [rbp + r8*4]
mov ebx, eax
shr ebx, 0x18
shr r12d, 0xe
and r12d, 0x3fc
movzx ebp, ah
movzx r8d, al
mov eax, dword [r12 + r11]
lea r12, [0x1400cc890]
xor eax, dword [r12 + rbx*4]
lea rbx, [0x1400cd0a8]
xor eax, dword [rbx + r15*4]
shr r13d, 0x18
shr r10d, 0xe
and r10d, 0x3fc
mov ebx, dword [r10 + r11]
lea r10, [0x1400cc890]
xor ebx, dword [r10 + r13*4]
lea r10, [0x1400cd0a8]
xor ebx, dword [r10 + rbp*4]
lea r10, [0x1400cd0a8]
xor ecx, dword [r10 + rsi*4]
mov rsi, qword [rsp + 0x28]
xor edx, dword [rdi + rsi*4]
mov rsi, qword [rsp + 0x38]
xor edx, dword [rsi - 8]
xor eax, dword [rdi + r9*4]
xor eax, dword [rsi - 0xc]
xor ebx, dword [rdi + r14*4]
xor ebx, dword [rsi - 4]
xor ecx, dword [rdi + r8*4]
lea r8, [0x1400cc890]
xor ecx, dword [rsi]
lea r14, [rsi + 0x20]
mov rsi, qword [rsp + 0xa0]
add rsi, 0xfffffffffffffff8
mov qword [rsp + 0x38], r14
cmp rsi, 4
mov r9, rdi
ja 0x14001a2f0
jmp 0x14001a887
mov ecx, ebx
movzx esi, bh
mov qword [rsp + 0x30], rsi
movzx r8d, bl
mov qword [rsp + 0x28], r8
shr ebx, 0x18
lea r14, [0x1400cda70]
movzx r8d, byte [rbx + r14]
mov dword [rsp + 0x40], r8d
movzx esi, dh
movzx r9d, dl
mov r15d, edx
shr edx, 0x10
movzx r13d, dl
mov ebx, r10d
mov r8d, r10d
mov edx, r10d
movzx ebp, bh
movzx r12d, bl
movzx r10d, al
movzx esi, byte [rsi + r14]
shr ecx, 0x10
movzx ecx, cl
movzx ecx, byte [rcx + r14]
movzx r10d, byte [r10 + r14]
shl r10d, 0x18
shl esi, 0x10
or esi, r10d
shl ecx, 8
or ecx, esi
mov esi, eax
mov r10d, eax
movzx eax, ah
shr r8d, 0x18
movzx r8d, byte [r8 + r14]
or ecx, r8d
mov rbx, qword [rsp + 0x38]
mov r8d, dword [rbx - 0xc]
bswap r8d
xor r8d, ecx
mov rdi, qword [rsp + 0x60]
mov r11, qword [rsp + 0x90]
mov dword [rdi + r11], r8d
shr esi, 0x18
movzx ecx, byte [rsi + r14]
shr edx, 0x10
movzx edx, dl
movzx r8d, byte [rdx + r14]
shl r8d, 8
or r8d, ecx
movzx ecx, byte [r9 + r14]
shl ecx, 0x18
or r8d, ecx
mov rcx, qword [rsp + 0x30]
movzx ecx, byte [rcx + r14]
shl ecx, 0x10
or r8d, ecx
mov edx, dword [rbx - 8]
bswap edx
xor edx, r8d
mov dword [rdi + r11 + 4], edx
shr r10d, 0x10
movzx ecx, r10b
movzx r8d, byte [rcx + r14]
shr r15d, 0x18
movzx ecx, byte [r15 + r14]
mov r9, qword [rsp + 0x28]
movzx r9d, byte [r9 + r14]
shl r9d, 0x18
movzx r10d, byte [rbp + r14]
shl r10d, 0x10
shl r8d, 8
or r8d, ecx
or r8d, r9d
or r8d, r10d
mov ecx, dword [rbx - 4]
bswap ecx
xor ecx, r8d
mov dword [rdi + r11 + 8], ecx
movzx r8d, byte [r13 + r14]
movzx r9d, byte [r12 + r14]
shl r9d, 0x18
movzx eax, byte [rax + r14]
shl eax, 0x10
shl r8d, 8
add r8d, dword [rsp + 0x40]
or r8d, r9d
or r8d, eax
mov eax, dword [rbx]
bswap eax
xor eax, r8d
mov dword [rdi + r11 + 0xc], eax
mov r10, qword [rsp + 0x98]
test r10, r10
je 0x14001a8ad
mov r9, qword [rsp + 0x88]
movzx r8d, byte [r9]
xor byte [rdi + r11], r8b
cmp r10, 1
mov rsi, qword [rsp + 0x118]
je 0x14001a8c0
movzx r8d, byte [r9 + 1]
xor byte [rdi + r11 + 1], r8b
cmp r10, 2
je 0x14001a8ce
movzx r8d, byte [r9 + 2]
xor byte [rdi + r11 + 2], r8b
cmp r10, 3
je 0x14001a8dc
movzx r8d, byte [r9 + 3]
xor byte [rdi + r11 + 3], r8b
cmp r10, 4
je 0x14001a8ea
movzx r8d, byte [r9 + 4]
xor r8b, dl
mov byte [rdi + r11 + 4], r8b
cmp r10, 5
je 0x14001a8f8
mov r8d, edx
shr r8d, 8
xor r8b, byte [r9 + 5]
mov byte [rdi + r11 + 5], r8b
cmp r10, 6
je 0x14001a906
mov r8d, edx
shr r8d, 0x10
xor r8b, byte [r9 + 6]
mov byte [rdi + r11 + 6], r8b
cmp r10, 7
je 0x14001a914
shr edx, 0x18
xor dl, byte [r9 + 7]
mov byte [rdi + r11 + 7], dl
cmp r10, 8
je 0x14001a925
movzx edx, byte [r9 + 8]
xor dl, cl
mov byte [rdi + r11 + 8], dl
cmp r10, 9
je 0x14001a936
mov edx, ecx
shr edx, 8
xor dl, byte [r9 + 9]
mov byte [rdi + r11 + 9], dl
cmp r10, 0xa
je 0x14001a947
mov edx, ecx
shr edx, 0x10
xor dl, byte [r9 + 0xa]
mov byte [rdi + r11 + 0xa], dl
cmp r10, 0xb
je 0x14001a958
shr ecx, 0x18
xor cl, byte [r9 + 0xb]
mov byte [rdi + r11 + 0xb], cl
cmp r10, 0xc
je 0x14001a969
movzx ecx, byte [r9 + 0xc]
xor cl, al
mov byte [rdi + r11 + 0xc], cl
cmp r10, 0xd
je 0x14001a97a
mov ecx, eax
shr ecx, 8
xor cl, byte [r9 + 0xd]
mov byte [rdi + r11 + 0xd], cl
cmp r10, 0xe
je 0x14001a98b
mov ecx, eax
shr ecx, 0x10
xor cl, byte [r9 + 0xe]
mov byte [rdi + r11 + 0xe], cl
cmp r10, 0xf
je 0x14001a99c
shr eax, 0x18
xor al, byte [r9 + 0xf]
mov byte [rdi + r11 + 0xf], al
add r11, qword [rsp + 0x110]
mov r14d, 0x10
mov rbx, r11
mov r11, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x80]
test rcx, rcx
lea r8, [0x1400cc890]
lea r10, [0x1400cd0a8]
lea r9, [0x1400cd4a8]
jne 0x14001a260
cmp rsi, 0x10
mov rcx, qword [rsp + 0x70]
jb 0x14001a85f
mov rax, qword [rsp + 0x58]
cmp byte [rax + 0x1e8], 0
je 0x14001a85f
movzx eax, byte [rsi + rdi - 1]
xor r8d, r8d
mov rdx, rsi
sub rdx, rax
cmovae r8, rdx
mov rax, rsi
jmp 0x14001a865
xor r8d, r8d
jmp 0x14001a865
mov rax, rsi
mov r8, rsi
mov qword [rcx], rax
mov qword [rcx + 8], rdi
mov qword [rcx + 0x10], r8
mov rax, rcx
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 4
mov rsi, qword [rsp + 0x118]
mov rdi, qword [rsp + 0x60]
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
mov rdx, rcx
call sym.core::panicking::panic_bounds_check::hc59ada7dadd9fb7c
jmp 0x14001a9e0
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
mov rsi, qword [rsp + 0x118]
xor ecx, ecx
jmp 0x14001a8a0
mov ecx, 1
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
jmp 0x14001a8a0
mov ecx, 2
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
jmp 0x14001a8a0
mov ecx, 3
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
jmp 0x14001a8a0
mov ecx, 4
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
jmp 0x14001a8a0
mov ecx, 5
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
jmp 0x14001a8a0
mov ecx, 6
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
jmp 0x14001a8a0
mov ecx, 7
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
jmp 0x14001a8a0
mov ecx, 8
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
jmp 0x14001a8a0
mov ecx, 9
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
jmp 0x14001a8a0
mov ecx, 0xa
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
jmp 0x14001a8a0
mov ecx, 0xb
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
jmp 0x14001a8a0
mov ecx, 0xc
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
jmp 0x14001a8a0
mov ecx, 0xd
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
jmp 0x14001a8a0
mov ecx, 0xe
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
jmp 0x14001a8a0
mov ecx, 0xf
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
jmp 0x14001a8a0
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
mov rcx, 0xfffffffffffffff0
xor edx, edx
call sym.core::slice::index::slice_index_order_fail::hf943cfe51be07c4a
jmp 0x14001a9e0
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
mov rcx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x118]
mov rdx, rsi
call sym.core::slice::index::slice_end_index_len_fail::ha4157f6c56c31a58
ud2
xor r13d, r13d
mov rcx, r13
mov rdx, rsi
call sym.alloc::raw_vec::handle_error::hb4a2c97b2f2cc7c5
mov rbx, rax
mov r8d, 1
mov rcx, rdi
mov rdx, rsi
call sym.__rust_dealloc
mov rcx, rbx
call sym._Unwind_Resume
int3