Function at 0x140006020
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 rdi, rcx
mov rsi, qword [rsp + 0x118]
test sil, 0xf
je 0x140006057
mov qword [rdi], 1
xorps xmm0, xmm0
movups xmmword [rdi + 8], xmm0
jmp 0x1400066d4
test rsi, rsi
je 0x1400060b4
setns al
js 0x14000682d
mov r15, r9
mov rbx, r8
mov r14, rdx
movzx r13d, al
mov rax, qword [0x141511d08]
movzx eax, byte [rax]
mov rcx, rsi
mov rdx, r13
call sym.__rust_alloc
test rax, rax
je 0x140006834
mov rbp, rax
mov rdx, qword [rsp + 0x110]
mov rcx, rax
mov r8, rsi
call sym.memcpy
cmp rsi, 0x10
jae 0x1400060c0
mov rax, rsi
jmp 0x1400066c9
mov ebp, 1
xor eax, eax
jmp 0x1400066c9
mov qword [rsp + 0x68], rdi
mov rcx, rsi
shr rcx, 4
mov eax, dword [r14 + 0xf4]
mov dword [rsp + 0x5c], eax
mov eax, dword [r14 + 0xf8]
mov dword [rsp + 0x58], eax
mov eax, dword [r14 + 0xfc]
mov dword [rsp + 0x54], eax
mov eax, dword [r14 + 0x100]
mov dword [rsp + 0x50], eax
movzx eax, byte [r14 + 0x1e4]
shr al, 1
mov byte [rsp + 0x27], al
add r14, 0x120
mov eax, 0x10
lea r11, [0x1414dc1f8]
xor r8d, r8d
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x70], r14
nop word cs:[rax + rax]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x98], r15
mov qword [rsp + 0x88], rbx
lea rax, [r8 + 0x10]
cmp rax, rsi
ja 0x140006811
dec rcx
mov qword [rsp + 0x78], rcx
mov eax, dword [rbp + r8]
mov edx, dword [rbp + r8 + 4]
bswap eax
xor eax, dword [rsp + 0x5c]
bswap edx
xor edx, dword [rsp + 0x58]
mov ecx, dword [rbp + r8 + 8]
bswap ecx
xor ecx, dword [rsp + 0x54]
mov qword [rsp + 0x90], r8
mov ebx, dword [rbp + r8 + 0xc]
bswap ebx
xor ebx, dword [rsp + 0x50]
mov r8d, 0x3c
mov qword [rsp + 0x40], r14
movzx r9d, byte [rsp + 0x27]
mov byte [rsp + 0x38], r9b
lea r12, [0x1414db9e0]
lea r13, [0x1414dbdf8]
lea r15, [0x1414dc5f8]
nop dword [rax]
mov qword [rsp + 0xa0], r8
movzx edi, ch
movzx r8d, cl
mov qword [rsp + 0x30], r8
mov r14d, ecx
shr ecx, 0x10
movzx ecx, cl
mov r8d, ebx
movzx esi, bh
mov qword [rsp + 0x48], rsi
movzx r10d, bl
mov qword [rsp + 0x28], r10
shr ebx, 0x18
mov ecx, dword [r13 + rcx*4]
xor ecx, dword [r12 + rbx*4]
mov ebx, eax
shr ebx, 0x18
shr r8d, 0x10
movzx r8d, r8b
mov ebp, dword [r13 + r8*4]
xor ebp, dword [r12 + rbx*4]
xor ebp, dword [r11 + rdi*4]
movzx r9d, dl
mov edi, edx
mov ebx, edx
movzx edx, dh
mov r8, rdx
shr edi, 0x18
mov edx, eax
shr edx, 0x10
movzx edx, dl
movzx esi, ah
mov r10, r11
movzx r11d, al
mov edx, dword [r13 + rdx*4]
xor edx, dword [r12 + rdi*4]
mov rax, qword [rsp + 0x48]
xor edx, dword [r10 + rax*4]
shr r14d, 0x18
shr ebx, 0x10
movzx eax, bl
mov eax, dword [r13 + rax*4]
xor eax, dword [r12 + r14*4]
xor eax, dword [r10 + rsi*4]
xor ecx, dword [r10 + r8*4]
xor ebp, dword [r15 + r9*4]
mov r8, qword [rsp + 0x40]
xor ebp, dword [r8 - 0x1c]
mov rsi, qword [rsp + 0x30]
xor edx, dword [r15 + rsi*4]
xor edx, dword [r8 - 0x18]
mov r9, qword [rsp + 0x28]
xor eax, dword [r15 + r9*4]
xor eax, dword [r8 - 0x14]
xor ecx, dword [r15 + r11*4]
xor ecx, dword [r8 - 0x10]
movzx r8d, byte [rsp + 0x38]
dec r8b
je 0x1400063b0
mov byte [rsp + 0x38], r8b
movzx edi, ah
movzx r8d, al
mov qword [rsp + 0x30], r8
mov esi, eax
shr eax, 0x10
movzx eax, al
mov r8d, ecx
movzx ebx, ch
mov qword [rsp + 0x48], rbx
movzx r9d, cl
mov qword [rsp + 0x28], r9
shr ecx, 0x18
mov ebx, dword [r13 + rax*4]
xor ebx, dword [r12 + rcx*4]
mov ecx, ebp
mov r9d, ebp
shr ecx, 0x18
shr r8d, 0x10
movzx eax, r8b
mov eax, dword [r13 + rax*4]
xor eax, dword [r12 + rcx*4]
movzx r14d, dl
mov ecx, edx
mov r11d, edx
movzx ebp, dh
xor eax, dword [r10 + rdi*4]
shr ecx, 0x18
mov edx, r9d
shr edx, 0x10
movzx r8d, dl
mov edx, r9d
movzx edi, dh
movzx r9d, dl
mov edx, dword [r13 + r8*4]
xor edx, dword [r12 + rcx*4]
mov rcx, qword [rsp + 0x48]
xor edx, dword [r10 + rcx*4]
shr esi, 0x18
shr r11d, 0x10
movzx ecx, r11b
mov ecx, dword [r13 + rcx*4]
xor ecx, dword [r12 + rsi*4]
xor ecx, dword [r10 + rdi*4]
xor ebx, dword [r10 + rbp*4]
xor eax, dword [r15 + r14*4]
mov r8, qword [rsp + 0x40]
xor eax, dword [r8 - 0xc]
mov r11, qword [rsp + 0x30]
xor edx, dword [r15 + r11*4]
xor edx, dword [r8 - 8]
mov r11, qword [rsp + 0x28]
xor ecx, dword [r15 + r11*4]
xor ecx, dword [r8 - 4]
xor ebx, dword [r15 + r9*4]
xor ebx, dword [r8]
lea r14, [r8 + 0x20]
mov r8, qword [rsp + 0xa0]
add r8, 0xfffffffffffffff8
mov qword [rsp + 0x40], r14
cmp r8, 4
mov r11, r10
ja 0x1400061c0
jmp 0x1400066eb
mov edi, ecx
movzx esi, ch
mov qword [rsp + 0x38], rsi
movzx r8d, cl
mov qword [rsp + 0x30], r8
shr ecx, 0x18
lea r14, [0x1414dcbd8]
movzx ecx, byte [rcx + r14]
mov dword [rsp + 0x28], ecx
movzx ecx, ah
movzx r9d, al
mov r10d, eax
shr eax, 0x10
movzx r13d, al
mov eax, ebp
mov r11d, ebp
mov r8d, ebp
movzx esi, ah
mov r15, rsi
movzx r12d, al
shr edi, 0x10
movzx edi, dil
movzx ebp, byte [rdi + r14]
shr r11d, 0x18
movzx r11d, byte [r11 + r14]
movzx edi, dl
movzx edi, byte [rdi + r14]
shl edi, 0x18
shl ebp, 8
or ebp, r11d
or ebp, edi
mov r11d, edx
mov eax, edx
movzx edi, dh
movzx ecx, byte [rcx + r14]
shl ecx, 0x10
or ebp, ecx
mov rsi, qword [rsp + 0x40]
mov ecx, dword [rsi - 0xc]
bswap ecx
xor ecx, ebp
mov rbp, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x90]
mov dword [rbp + rbx], ecx
shr r11d, 0x18
movzx ecx, byte [r11 + r14]
shr r8d, 0x10
movzx edx, r8b
movzx r11d, byte [rdx + r14]
shl r11d, 8
or r11d, ecx
movzx ecx, byte [r9 + r14]
shl ecx, 0x18
or r11d, ecx
mov rcx, qword [rsp + 0x38]
movzx ecx, byte [rcx + r14]
shl ecx, 0x10
or r11d, ecx
mov edx, dword [rsi - 8]
bswap edx
xor edx, r11d
mov dword [rbp + rbx + 4], edx
shr r10d, 0x18
movzx ecx, byte [r10 + r14]
shr eax, 0x10
movzx eax, al
movzx eax, byte [rax + r14]
mov r8, qword [rsp + 0x30]
movzx r8d, byte [r8 + r14]
shl r8d, 0x18
movzx r10d, byte [r15 + r14]
shl r10d, 0x10
shl eax, 8
or eax, ecx
or eax, r8d
or eax, r10d
mov ecx, dword [rsi - 4]
bswap ecx
xor ecx, eax
mov dword [rbp + rbx + 8], ecx
movzx r8d, byte [r13 + r14]
movzx eax, byte [r12 + r14]
shl eax, 0x18
movzx r9d, byte [rdi + r14]
shl r9d, 0x10
shl r8d, 8
add r8d, dword [rsp + 0x28]
or r8d, eax
or r8d, r9d
mov eax, dword [rsi]
bswap eax
xor eax, r8d
mov dword [rbp + rbx + 0xc], eax
mov r10, qword [rsp + 0x98]
test r10, r10
je 0x140006711
mov r9, qword [rsp + 0x88]
movzx r8d, byte [r9]
xor byte [rbp + rbx], r8b
cmp r10, 1
mov rsi, qword [rsp + 0x118]
je 0x140006724
movzx r8d, byte [r9 + 1]
xor byte [rbp + rbx + 1], r8b
cmp r10, 2
je 0x140006732
movzx r8d, byte [r9 + 2]
xor byte [rbp + rbx + 2], r8b
cmp r10, 3
je 0x140006740
movzx r8d, byte [r9 + 3]
xor byte [rbp + rbx + 3], r8b
cmp r10, 4
je 0x14000674e
movzx r8d, byte [r9 + 4]
xor r8b, dl
mov byte [rbp + rbx + 4], r8b
cmp r10, 5
je 0x14000675c
mov r8d, edx
shr r8d, 8
xor r8b, byte [r9 + 5]
mov byte [rbp + rbx + 5], r8b
cmp r10, 6
je 0x14000676a
mov r8d, edx
shr r8d, 0x10
xor r8b, byte [r9 + 6]
mov byte [rbp + rbx + 6], r8b
cmp r10, 7
je 0x140006778
shr edx, 0x18
xor dl, byte [r9 + 7]
mov byte [rbp + rbx + 7], dl
cmp r10, 8
je 0x140006789
movzx edx, byte [r9 + 8]
xor dl, cl
mov byte [rbp + rbx + 8], dl
cmp r10, 9
je 0x14000679a
mov edx, ecx
shr edx, 8
xor dl, byte [r9 + 9]
mov byte [rbp + rbx + 9], dl
cmp r10, 0xa
je 0x1400067ab
mov edx, ecx
shr edx, 0x10
xor dl, byte [r9 + 0xa]
mov byte [rbp + rbx + 0xa], dl
cmp r10, 0xb
je 0x1400067bc
shr ecx, 0x18
xor cl, byte [r9 + 0xb]
mov byte [rbp + rbx + 0xb], cl
cmp r10, 0xc
je 0x1400067cd
movzx ecx, byte [r9 + 0xc]
xor cl, al
mov byte [rbp + rbx + 0xc], cl
cmp r10, 0xd
je 0x1400067de
mov ecx, eax
shr ecx, 8
xor cl, byte [r9 + 0xd]
mov byte [rbp + rbx + 0xd], cl
cmp r10, 0xe
je 0x1400067ef
mov ecx, eax
shr ecx, 0x10
xor cl, byte [r9 + 0xe]
mov byte [rbp + rbx + 0xe], cl
cmp r10, 0xf
je 0x140006800
shr eax, 0x18
xor al, byte [r9 + 0xf]
mov byte [rbp + rbx + 0xf], al
add rbx, qword [rsp + 0x110]
mov rax, qword [rsp + 0x80]
mov r8, rax
add rax, 0x10
mov r15d, 0x10
mov rcx, qword [rsp + 0x78]
test rcx, rcx
mov r14, qword [rsp + 0x70]
lea r11, [0x1414dc1f8]
jne 0x140006130
movzx ecx, byte [rsi + rbp - 1]
xor eax, eax
mov rdx, rsi
sub rdx, rcx
cmovae rax, rdx
mov rdi, qword [rsp + 0x68]
mov qword [rdi], rbp
mov qword [rdi + 8], rsi
mov qword [rdi + 0x10], rax
mov rax, rdi
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 rbp, qword [rsp + 0x60]
lea r8, [0x1414dcbc0]
mov rdx, rcx
call dbg.panic_bounds_check
jmp 0x14000682b
lea r8, [0x1414da900]
mov rsi, qword [rsp + 0x118]
xor ecx, ecx
jmp 0x140006704
mov ecx, 1
lea r8, [0x1414da900]
jmp 0x140006704
mov ecx, 2
lea r8, [0x1414da900]
jmp 0x140006704
mov ecx, 3
lea r8, [0x1414da900]
jmp 0x140006704
mov ecx, 4
lea r8, [0x1414da900]
jmp 0x140006704
mov ecx, 5
lea r8, [0x1414da900]
jmp 0x140006704
mov ecx, 6
lea r8, [0x1414da900]
jmp 0x140006704
mov ecx, 7
lea r8, [0x1414da900]
jmp 0x140006704
mov ecx, 8
lea r8, [0x1414da900]
jmp 0x140006704
mov ecx, 9
lea r8, [0x1414da900]
jmp 0x140006704
mov ecx, 0xa
lea r8, [0x1414da900]
jmp 0x140006704
mov ecx, 0xb
lea r8, [0x1414da900]
jmp 0x140006704
mov ecx, 0xc
lea r8, [0x1414da900]
jmp 0x140006704
mov ecx, 0xd
lea r8, [0x1414da900]
jmp 0x140006704
mov ecx, 0xe
lea r8, [0x1414da900]
jmp 0x140006704
mov ecx, 0xf
lea r8, [0x1414da900]
jmp 0x140006704
lea r8, [0x1414da8b8]
mov rcx, rax
mov rsi, qword [rsp + 0x118]
mov rdx, rsi
call dbg.slice_end_index_len_fail
ud2
call dbg.capacity_overflow
ud2
mov rcx, r13
mov rdx, rsi
call dbg.handle_alloc_error
ud2