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

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov rsi, r9
call fcn.140004200
movzx ecx, byte [rsi + 0xf0]
test rcx, rcx
je 0x140004b5b
shl rcx, 2
xor edx, edx
nop dword [rax]
cmp rdx, 0x3c
jae 0x140004b6a
cmp rcx, 0x3c
jae 0x140004b82
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 0x140004b95
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 0x140004bad
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, 0x3c
jae 0x140004bc3
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 0x140004980
movzx r15d, byte [rsi + 0xf0]
cmp r15b, 2
jb 0x140004b5b
dec r15b
mov ecx, 7
lea rdx, [0x1400232a0]
lea r8, [0x140023768]
lea r9, [0x140023b80]
lea r10, [0x140023f80]
lea r11, [0x140024380]
cmp rcx, 0x3f
je 0x140004bd9
mov ebx, dword [rsi + rcx*4 - 0xc]
mov edi, ebx
mov r14d, ebx
shr r14d, 0x18
movzx r14d, byte [rdx + r14*4]
shr edi, 0x10
movzx edi, dil
movzx edi, byte [rdx + rdi*4]
mov edi, dword [r9 + rdi*4]
xor edi, dword [r8 + r14*4]
movzx ebp, bh
movzx r14d, byte [rdx + rbp*4]
xor edi, dword [r10 + r14*4]
movzx ebx, bl
movzx ebx, byte [rdx + rbx*4]
xor edi, dword [r11 + rbx*4]
mov ebx, dword [rsi + rcx*4 - 8]
mov ebp, ebx
movzx eax, bh
mov r14d, ebx
shr r14d, 0x18
movzx r14d, byte [rdx + r14*4]
shr ebp, 0x10
movzx r12d, bpl
movzx r12d, byte [rdx + r12*4]
mov ebp, dword [r9 + r12*4]
xor ebp, dword [r8 + r14*4]
movzx ebx, bl
movzx eax, byte [rdx + rax*4]
xor ebp, dword [r10 + rax*4]
mov dword [rsi + rcx*4 - 0xc], edi
movzx eax, byte [rdx + rbx*4]
xor ebp, dword [r11 + rax*4]
mov dword [rsi + rcx*4 - 8], ebp
mov ebx, dword [rsi + rcx*4 - 4]
mov eax, ebx
mov edi, ebx
shr edi, 0x18
movzx edi, byte [rdx + rdi*4]
shr eax, 0x10
movzx eax, al
movzx eax, byte [rdx + rax*4]
mov eax, dword [r9 + rax*4]
xor eax, dword [r8 + rdi*4]
movzx edi, bh
movzx edi, byte [rdx + rdi*4]
xor eax, dword [r10 + rdi*4]
movzx edi, bl
movzx edi, byte [rdx + rdi*4]
xor eax, dword [r11 + rdi*4]
mov dword [rsi + rcx*4 - 4], eax
mov ebx, dword [rsi + rcx*4]
mov eax, ebx
mov edi, ebx
shr edi, 0x18
movzx edi, byte [rdx + rdi*4]
shr eax, 0x10
movzx eax, al
movzx eax, byte [rdx + rax*4]
mov eax, dword [r9 + rax*4]
xor eax, dword [r8 + rdi*4]
movzx edi, bh
movzx edi, byte [rdx + rdi*4]
xor eax, dword [r10 + rdi*4]
movzx edi, bl
movzx edi, byte [rdx + rdi*4]
xor eax, dword [r11 + rdi*4]
mov dword [rsi + rcx*4], eax
add rcx, 4
dec r15b
jne 0x140004a50
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea r8, str.C:Users.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov ecx, 0x3c
mov edx, 0x3c
call fcn.140020670
ud2
lea r8, str.C:Users.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov edx, 0x3c
call fcn.140020670
ud2
lea r8, str.C:Users.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov ecx, 0x3c
mov edx, 0x3c
call fcn.140020670
ud2
lea r8, str.C:Users.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov edx, 0x3c
mov rcx, rax
call fcn.140020670
ud2
lea r8, str.C:Users.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov edx, 0x3c
mov rcx, rax
call fcn.140020670
ud2
lea r8, str.C:Users.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
xor ecx, ecx
xor edx, edx
call fcn.140020670
ud2