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

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, r9
call fcn.1400040a0
movzx ecx, byte [rsi + 0xf0]
test rcx, rcx
je 0x140004a3a
shl rcx, 2
xor edx, edx
nop word [rax + rax]
cmp rdx, 0x3c
jae 0x140004a47
cmp rcx, 0x3c
jae 0x140004a50
mov eax, dword [rsi + rdx*4]
mov r8d, dword [rsi + rcx*4]
mov dword [rsi + rdx*4], r8d
mov dword [rsi + rcx*4], eax
lea rax, [rcx + 1]
cmp rax, 0x3c
jae 0x140004a59
mov eax, dword [rsi + rdx*4 + 4]
mov r8d, dword [rsi + rcx*4 + 4]
mov dword [rsi + rdx*4 + 4], r8d
mov dword [rsi + rcx*4 + 4], eax
lea rax, [rcx + 2]
cmp rax, 0x3c
jae 0x140004a71
mov eax, dword [rsi + rdx*4 + 8]
mov r8d, dword [rsi + rcx*4 + 8]
mov dword [rsi + rdx*4 + 8], r8d
mov dword [rsi + rcx*4 + 8], eax
lea rax, [rcx + 3]
cmp rax, 0x3b
ja 0x140004a7a
mov eax, dword [rsi + rdx*4 + 0xc]
mov r8d, dword [rsi + rcx*4 + 0xc]
mov dword [rsi + rdx*4 + 0xc], r8d
mov dword [rsi + rcx*4 + 0xc], eax
add rdx, 4
add rcx, 0xfffffffffffffffc
cmp rdx, rcx
jb 0x140004840
movzx r14d, byte [rsi + 0xf0]
cmp r14b, 2
jb 0x140004a3a
dec r14b
mov ecx, 7
lea r15, [0x1400a49e8]
lea r8, [0x1400a4eb0]
lea r9, [0x1400a52c8]
lea r10, [0x1400a56c8]
lea r11, [0x1400a5ac8]
cmp rcx, 0x3f
je 0x140004a90
mov eax, dword [rsi + rcx*4 - 0xc]
mov rdi, rax
mov rbx, rax
shr rbx, 0x18
movzx ebx, byte [r15 + rbx*4]
shr rdi, 0xe
and edi, 0x3fc
movzx edi, byte [rdi + r15]
mov edi, dword [r9 + rdi*4]
xor edi, dword [r8 + rbx*4]
movzx ebx, ah
movzx ebx, byte [r15 + rbx*4]
xor edi, dword [r10 + rbx*4]
movzx eax, al
movzx eax, byte [r15 + rax*4]
xor edi, dword [r11 + rax*4]
mov edx, dword [rsi + rcx*4 - 8]
mov rax, rdx
movzx ebp, dh
mov rbx, rdx
shr rbx, 0x18
movzx ebx, byte [r15 + rbx*4]
shr rax, 0xe
and eax, 0x3fc
movzx eax, byte [rax + r15]
mov eax, dword [r9 + rax*4]
xor eax, dword [r8 + rbx*4]
movzx edx, dl
movzx ebx, byte [r15 + rbp*4]
xor eax, dword [r10 + rbx*4]
mov dword [rsi + rcx*4 - 0xc], edi
movzx edx, byte [r15 + rdx*4]
xor eax, dword [r11 + rdx*4]
mov dword [rsi + rcx*4 - 8], eax
mov ebx, dword [rsi + rcx*4 - 4]
mov rax, rbx
mov rdx, rbx
shr rdx, 0x18
movzx edx, byte [r15 + rdx*4]
shr rax, 0xe
and eax, 0x3fc
movzx eax, byte [rax + r15]
mov eax, dword [r9 + rax*4]
xor eax, dword [r8 + rdx*4]
movzx edx, bh
movzx edx, byte [r15 + rdx*4]
xor eax, dword [r10 + rdx*4]
movzx edx, bl
movzx edx, byte [r15 + rdx*4]
xor eax, dword [r11 + rdx*4]
mov dword [rsi + rcx*4 - 4], eax
mov ebx, dword [rsi + rcx*4]
mov rax, rbx
mov rdx, rbx
shr rdx, 0x18
movzx edx, byte [r15 + rdx*4]
shr rax, 0xe
and eax, 0x3fc
movzx eax, byte [rax + r15]
mov eax, dword [r9 + rax*4]
xor eax, dword [r8 + rdx*4]
movzx edx, bh
movzx edx, byte [r15 + rdx*4]
xor eax, dword [r10 + rdx*4]
movzx edx, bl
movzx edx, byte [r15 + rdx*4]
xor eax, dword [r11 + rdx*4]
mov dword [rsi + rcx*4], eax
add rcx, 4
dec r14b
jne 0x140004910
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
jmp 0x140004a60
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
jmp 0x140004a65
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov ecx, 0x3c
mov edx, 0x3c
call fcn.140022010
ud2
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
jmp 0x140004a81
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov edx, 0x3c
mov rcx, rax
call fcn.140022010
ud2
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
xor ecx, ecx
xor edx, edx
call fcn.140022010
ud2