Function at 0x140004b70
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 rdi, qword [rsp + 0x128]
test dil, 0xf
je 0x140004ba7
mov qword [rcx], 1
xorps xmm0, xmm0
movups xmmword [rcx + 8], xmm0
mov rax, rcx
jmp 0x14000524c
mov r14, r9
mov rbp, r8
mov rsi, rdx
test rdi, rdi
mov qword [rsp + 0x70], rcx
je 0x140004be7
setns al
js 0x1400053af
movzx r13d, al
mov rcx, rdi
mov rdx, r13
call sym.__rust_alloc
mov rbx, rax
test rax, rax
jne 0x140004bec
mov rcx, rdi
mov rdx, r13
call dbg.handle_alloc_error
ud2
mov ebx, 1
mov rdx, qword [rsp + 0x120]
mov rcx, rbx
mov r8, rdi
call sym.memcpy
mov eax, dword [rsi + 0xf4]
mov dword [rsp + 0x6c], eax
mov eax, dword [rsi + 0xf8]
mov dword [rsp + 0x68], eax
mov eax, dword [rsi + 0xfc]
mov dword [rsp + 0x64], eax
mov eax, dword [rsi + 0x100]
mov dword [rsp + 0x60], eax
movzx eax, byte [rsi + 0x1e4]
shr al, 1
mov byte [rsp + 0x2f], al
add rsi, 0x120
lea r11, [0x14013a748]
xor eax, eax
xor ecx, ecx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x78], rsi
test al, 1
je 0x140004c80
nop word cs:[rax + rax]
add rcx, 0xf
jb 0x14000521b
cmp rcx, rdi
jae 0x14000521b
lea rax, [rcx + 1]
jmp 0x140004c93
cmp rcx, rdi
mov rax, rcx
adc rax, 0
cmp rcx, rdi
jae 0x14000521b
lea rdx, [rcx + 0x10]
cmp rcx, 0xffffffffffffffef
ja 0x140005385
mov qword [rsp + 0x88], rax
mov qword [rsp + 0xa0], r14
mov qword [rsp + 0x90], rbp
cmp rdx, rdi
ja 0x140005393
lea rax, [rbx + rcx]
mov qword [rsp + 0x98], rax
mov ebp, dword [rbx + rcx]
mov edi, dword [rbx + rcx + 4]
bswap ebp
xor ebp, dword [rsp + 0x6c]
bswap edi
xor edi, dword [rsp + 0x68]
mov edx, dword [rbx + rcx + 8]
bswap edx
xor edx, dword [rsp + 0x64]
mov qword [rsp + 0x80], rcx
mov ebx, dword [rbx + rcx + 0xc]
bswap ebx
xor ebx, dword [rsp + 0x60]
mov ecx, 0x3c
mov r12, rsi
movzx eax, byte [rsp + 0x2f]
mov byte [rsp + 0x40], al
lea r15, [0x14013ab60]
lea r9, [0x14013af60]
lea r10, [0x14013b360]
nop word cs:[rax + rax]
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0xb0], r12
movzx esi, dh
movzx eax, dl
mov qword [rsp + 0x58], rax
mov r12d, edx
shr edx, 0x10
movzx ecx, dl
mov r13d, ebx
movzx eax, bh
mov qword [rsp + 0x48], rax
movzx eax, bl
mov qword [rsp + 0x50], rax
shr ebx, 0x18
mov eax, dword [r15 + rcx*4]
xor eax, dword [r11 + rbx*4]
mov edx, ebp
mov ebx, ebp
shr ebx, 0x18
shr r13d, 0x10
movzx ebp, r13b
mov r8d, dword [r15 + rbp*4]
xor r8d, dword [r11 + rbx*4]
xor r8d, dword [r9 + rsi*4]
mov ecx, edi
movzx r13d, cl
mov ebp, edi
mov ebx, edi
movzx edi, ch
shr ebp, 0x18
mov ecx, edx
shr edx, 0x10
movzx edx, dl
movzx esi, ch
movzx r14d, cl
mov ecx, dword [r15 + rdx*4]
xor ecx, dword [r11 + rbp*4]
mov rdx, qword [rsp + 0x48]
xor ecx, dword [r9 + rdx*4]
shr r12d, 0x18
shr ebx, 0x10
movzx edx, bl
mov edx, dword [r15 + rdx*4]
xor edx, dword [r11 + r12*4]
xor edx, dword [r9 + rsi*4]
xor eax, dword [r9 + rdi*4]
xor r8d, dword [r10 + r13*4]
mov r13, qword [rsp + 0xb0]
xor r8d, dword [r13 - 0x1c]
mov rsi, qword [rsp + 0x58]
xor ecx, dword [r10 + rsi*4]
xor ecx, dword [r13 - 0x18]
mov rsi, qword [rsp + 0x50]
xor edx, dword [r10 + rsi*4]
xor edx, dword [r13 - 0x14]
xor eax, dword [r10 + r14*4]
xor eax, dword [r13 - 0x10]
movzx ebx, byte [rsp + 0x40]
dec bl
je 0x140004f10
mov byte [rsp + 0x40], bl
movzx esi, dh
mov qword [rsp + 0x58], rsi
movzx esi, dl
mov qword [rsp + 0x50], rsi
mov r12d, edx
shr edx, 0x10
movzx edx, dl
mov esi, eax
movzx ebp, ah
movzx edi, al
mov qword [rsp + 0x48], rdi
shr eax, 0x18
mov ebx, dword [r15 + rdx*4]
xor ebx, dword [r11 + rax*4]
movzx eax, cl
mov qword [rsp + 0xa8], rax
mov edi, ecx
shr edi, 0x18
mov edx, r8d
shr edx, 0x10
movzx edx, dl
mov eax, dword [r15 + rdx*4]
xor eax, dword [r11 + rdi*4]
mov edx, ecx
movzx ecx, ch
mov r14, rcx
mov edi, r8d
xor eax, dword [r9 + rbp*4]
shr r12d, 0x18
shr edx, 0x10
movzx ecx, dl
mov rdx, r8
movzx ebp, dh
movzx r8d, dl
mov edx, dword [r15 + rcx*4]
xor edx, dword [r11 + r12*4]
xor edx, dword [r9 + rbp*4]
xor ebx, dword [r9 + r14*4]
mov rcx, qword [rsp + 0x58]
mov ecx, dword [r9 + rcx*4]
mov rbp, qword [rsp + 0xa8]
xor ecx, dword [r10 + rbp*4]
shr esi, 0x10
movzx ebp, sil
shr edi, 0x18
xor ecx, dword [r15 + rbp*4]
xor ecx, dword [r11 + rdi*4]
xor ecx, dword [r13 - 0xc]
mov ebp, ecx
mov rcx, qword [rsp + 0x50]
xor eax, dword [r10 + rcx*4]
xor eax, dword [r13 - 8]
mov edi, eax
mov rax, qword [rsp + 0x48]
xor edx, dword [r10 + rax*4]
xor edx, dword [r13 - 4]
xor ebx, dword [r10 + r8*4]
xor ebx, dword [r13]
mov rcx, qword [rsp + 0x38]
add rcx, 0xfffffffffffffff8
lea r12, [r13 + 0x20]
cmp rcx, 4
ja 0x140004d30
jmp 0x140005260
cmp qword [rsp + 0x38], 8
je 0x140005286
mov rbp, rcx
mov r12d, eax
mov r14d, eax
mov r10d, eax
mov r15d, r8d
mov edi, r8d
shr r8d, 8
movzx eax, r8b
mov qword [rsp + 0x40], rax
mov ecx, edx
mov esi, edx
shr edx, 0x10
movzx eax, dl
mov qword [rsp + 0x38], rax
mov rax, rbp
mov ebx, eax
mov r9d, eax
shr eax, 8
movzx r8d, al
movzx eax, bl
shr ecx, 8
movzx ecx, cl
lea rdx, [0x14013b8c8]
movzx ecx, byte [rcx + rdx]
movzx eax, byte [rax + rdx]
shl eax, 0x18
shl ecx, 0x10
or ecx, eax
shr r12d, 0x10
movzx eax, r12b
movzx eax, byte [rax + rdx]
shl eax, 8
or eax, ecx
mov rcx, r15
shr rcx, 0x18
movzx ecx, byte [rcx + rdx]
or eax, ecx
bswap eax
xor eax, dword [r13 - 0xc]
bswap eax
mov r12, qword [rsp + 0x98]
mov dword [r12], eax
shr edi, 0x10
movzx eax, dil
movzx ebp, byte [rax + rdx]
shr rbx, 0x18
movzx eax, byte [rbx + rdx]
shl ebp, 8
or ebp, eax
movzx eax, sil
movzx eax, byte [rax + rdx]
shl eax, 0x18
shr r14d, 8
movzx ecx, r14b
movzx ecx, byte [rcx + rdx]
shl ecx, 0x10
or ebp, eax
or ebp, ecx
bswap ebp
xor ebp, dword [r13 - 8]
movzx ebx, r15b
bswap ebp
mov dword [r12 + 4], ebp
shr r9d, 0x10
movzx eax, r9b
movzx ecx, byte [rax + rdx]
shr rsi, 0x18
movzx eax, byte [rsi + rdx]
movzx edi, r10b
movzx edi, byte [rdi + rdx]
shl edi, 0x18
mov rsi, qword [rsp + 0x40]
movzx esi, byte [rsi + rdx]
shl esi, 0x10
shl ecx, 8
or ecx, eax
or ecx, edi
or ecx, esi
bswap ecx
xor ecx, dword [r13 - 4]
bswap ecx
mov dword [r12 + 8], ecx
mov rax, qword [rsp + 0x38]
movzx eax, byte [rax + rdx]
shr r10, 0x18
movzx esi, byte [r10 + rdx]
movzx ebx, byte [rbx + rdx]
shl ebx, 0x18
movzx edi, byte [r8 + rdx]
shl edi, 0x10
shl eax, 8
or eax, esi
or eax, ebx
or eax, edi
bswap eax
xor eax, dword [r13]
bswap eax
mov dword [r12 + 0xc], eax
mov rsi, qword [rsp + 0xa0]
test rsi, rsi
je 0x14000528f
mov r8, qword [rsp + 0x90]
movzx ebx, byte [r8]
xor byte [r12], bl
cmp rsi, 1
je 0x1400052a7
movzx ebx, byte [r8 + 1]
xor byte [r12 + 1], bl
cmp rsi, 2
je 0x1400052ae
movzx ebx, byte [r8 + 2]
xor byte [r12 + 2], bl
cmp rsi, 3
je 0x1400052b5
movzx ebx, byte [r8 + 3]
xor byte [r12 + 3], bl
cmp rsi, 4
je 0x1400052bc
movzx ebx, byte [r8 + 4]
xor bl, bpl
mov byte [r12 + 4], bl
cmp rsi, 5
je 0x1400052c3
mov edx, ebp
shr edx, 8
xor dl, byte [r8 + 5]
mov byte [r12 + 5], dl
cmp rsi, 6
mov rdi, qword [rsp + 0x128]
mov rbx, qword [rsp + 0x30]
je 0x1400052de
mov edx, ebp
shr edx, 0x10
xor dl, byte [r8 + 6]
mov byte [r12 + 6], dl
cmp rsi, 7
je 0x1400052ec
shr ebp, 0x18
xor bpl, byte [r8 + 7]
mov byte [r12 + 7], bpl
cmp rsi, 8
je 0x1400052fd
movzx edx, byte [r8 + 8]
xor dl, cl
mov byte [r12 + 8], dl
cmp rsi, 9
je 0x14000530e
mov edx, ecx
shr edx, 8
xor dl, byte [r8 + 9]
mov byte [r12 + 9], dl
cmp rsi, 0xa
je 0x14000531f
mov edx, ecx
shr edx, 0x10
xor dl, byte [r8 + 0xa]
mov byte [r12 + 0xa], dl
cmp rsi, 0xb
je 0x140005330
shr ecx, 0x18
xor cl, byte [r8 + 0xb]
mov byte [r12 + 0xb], cl
cmp rsi, 0xc
je 0x140005341
movzx ecx, byte [r8 + 0xc]
xor cl, al
mov byte [r12 + 0xc], cl
cmp rsi, 0xd
je 0x140005352
mov ecx, eax
shr ecx, 8
xor cl, byte [r8 + 0xd]
mov byte [r12 + 0xd], cl
cmp rsi, 0xe
je 0x140005363
mov ecx, eax
shr ecx, 0x10
xor cl, byte [r8 + 0xe]
mov byte [r12 + 0xe], cl
cmp rsi, 0xf
je 0x140005374
shr eax, 0x18
xor al, byte [r8 + 0xf]
mov byte [r12 + 0xf], al
mov rbp, qword [rsp + 0x80]
add rbp, qword [rsp + 0x120]
mov r14d, 0x10
mov al, 1
mov rcx, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x78]
test al, 1
je 0x140004c80
jmp 0x140004c60
mov rbp, rdi
cmp rdi, 0x10
jb 0x14000523c
movzx ecx, byte [rdi + rbx - 1]
xor ebp, ebp
mov rdx, rdi
sub rdx, rcx
cmovae rbp, rdx
cmp rbp, rdi
cmovae rbp, rdi
mov rax, qword [rsp + 0x70]
mov qword [rax], rbx
mov qword [rax + 8], rdi
mov qword [rax + 0x10], rbp
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 4
mov rdi, qword [rsp + 0x128]
mov rbx, qword [rsp + 0x30]
lea r8, str._home_kali_.cargo_registry_src_github.com_1ecc6299db9ec823_libaes_0.6.5_src_lib.rs
mov rdx, rcx
call dbg.panic_bounds_check
jmp 0x1400053ad
lea r8, str._home_kali_.cargo_registry_src_github.com_1ecc6299db9ec823_libaes_0.6.5_src_lib.rs
jmp 0x140005296
lea r8, str._home_kali_.cargo_registry_src_github.com_1ecc6299db9ec823_libaes_0.6.5_src_lib.rs
mov rdi, qword [rsp + 0x128]
mov rbx, qword [rsp + 0x30]
xor ecx, ecx
jmp 0x140005279
mov ecx, 1
jmp 0x1400052c8
mov ecx, 2
jmp 0x1400052c8
mov ecx, 3
jmp 0x1400052c8
mov ecx, 4
jmp 0x1400052c8
mov ecx, 5
lea r8, str._home_kali_.cargo_registry_src_github.com_1ecc6299db9ec823_libaes_0.6.5_src_lib.rs
mov rdi, qword [rsp + 0x128]
mov rbx, qword [rsp + 0x30]
jmp 0x140005279
mov ecx, 6
lea r8, str._home_kali_.cargo_registry_src_github.com_1ecc6299db9ec823_libaes_0.6.5_src_lib.rs
jmp 0x140005279
mov ecx, 7
lea r8, str._home_kali_.cargo_registry_src_github.com_1ecc6299db9ec823_libaes_0.6.5_src_lib.rs
jmp 0x140005279
mov ecx, 8
lea r8, str._home_kali_.cargo_registry_src_github.com_1ecc6299db9ec823_libaes_0.6.5_src_lib.rs
jmp 0x140005279
mov ecx, 9
lea r8, str._home_kali_.cargo_registry_src_github.com_1ecc6299db9ec823_libaes_0.6.5_src_lib.rs
jmp 0x140005279
mov ecx, 0xa
lea r8, str._home_kali_.cargo_registry_src_github.com_1ecc6299db9ec823_libaes_0.6.5_src_lib.rs
jmp 0x140005279
mov ecx, 0xb
lea r8, str._home_kali_.cargo_registry_src_github.com_1ecc6299db9ec823_libaes_0.6.5_src_lib.rs
jmp 0x140005279
mov ecx, 0xc
lea r8, str._home_kali_.cargo_registry_src_github.com_1ecc6299db9ec823_libaes_0.6.5_src_lib.rs
jmp 0x140005279
mov ecx, 0xd
lea r8, str._home_kali_.cargo_registry_src_github.com_1ecc6299db9ec823_libaes_0.6.5_src_lib.rs
jmp 0x140005279
mov ecx, 0xe
lea r8, str._home_kali_.cargo_registry_src_github.com_1ecc6299db9ec823_libaes_0.6.5_src_lib.rs
jmp 0x140005279
mov ecx, 0xf
lea r8, str._home_kali_.cargo_registry_src_github.com_1ecc6299db9ec823_libaes_0.6.5_src_lib.rs
jmp 0x140005279
lea r8, str._home_kali_.cargo_registry_src_github.com_1ecc6299db9ec823_libaes_0.6.5_src_lib.rs
call dbg.slice_index_order_fail
jmp 0x1400053ad
lea r8, str._home_kali_.cargo_registry_src_github.com_1ecc6299db9ec823_libaes_0.6.5_src_lib.rs
mov rcx, rdx
mov rdi, qword [rsp + 0x128]
mov rdx, rdi
call dbg.slice_end_index_len_fail
ud2
call dbg.capacity_overflow
ud2