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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xc8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x40], 0xfffffffffffffffe
mov rdi, rcx
mov rsi, qword [rbp + 0xb8]
test sil, 0xf
je 0x14000238f
mov qword [rdi], 0
mov qword [rdi + 8], 1
mov qword [rdi + 0x10], 0
jmp 0x1400029dd
test rsi, rsi
je 0x1400023e3
js 0x140002a89
mov r15, r9
mov r14, r8
mov rbx, rdx
movzx eax, byte [0x14002b181]
mov edx, 1
mov rcx, rsi
call fcn.140002170
test rax, rax
je 0x140002a8e
mov r12, rax
mov rdx, qword [rbp + 0xb0]
mov rcx, rax
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
cmp rsi, 0x10
jae 0x1400023f0
mov rax, rsi
jmp 0x1400029d2
mov r12d, 1
xor eax, eax
jmp 0x1400029d2
mov qword [rbp - 0x10], rdi
mov rcx, rsi
shr rcx, 4
mov eax, dword [rbx + 0xf4]
mov dword [rbp - 8], eax
mov eax, dword [rbx + 0xf8]
mov dword [rbp - 4], eax
mov eax, dword [rbx + 0xfc]
mov dword [rbp], eax
mov eax, dword [rbx + 0x100]
mov dword [rbp + 4], eax
movzx eax, byte [rbx + 0x1e4]
shr al, 1
mov byte [rbp + 0x3f], al
mov qword [rbp - 0x28], rbx
lea rax, [rbx + 0x120]
mov qword [rbp - 0x30], rax
mov eax, 0x10
lea r10, [0x1400212c0]
lea r11, [0x1400216c0]
xor edx, edx
mov qword [rbp - 0x18], r12
nop word cs:[rax + rax]
mov qword [rbp - 0x50], r15
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x20], rax
cmp rax, rsi
ja 0x140002a70
dec rcx
mov qword [rbp - 0x38], rcx
mov ecx, dword [r12 + rdx]
mov ebx, dword [r12 + rdx + 4]
bswap ecx
xor ecx, dword [rbp - 8]
bswap ebx
xor ebx, dword [rbp - 4]
mov eax, dword [r12 + rdx + 8]
bswap eax
xor eax, dword [rbp]
mov qword [rbp - 0x48], rdx
mov edx, dword [r12 + rdx + 0xc]
bswap edx
xor edx, dword [rbp + 4]
mov r9d, 0x3c
mov r8, qword [rbp - 0x30]
mov qword [rbp + 0x18], r8
movzx r8d, byte [rbp + 0x3f]
mov byte [rbp + 0x20], r8b
lea r14, [0x140020aa8]
lea r12, [0x140020ec0]
nop dword [rax]
mov qword [rbp - 0x58], r9
movzx esi, ah
movzx r8d, al
mov qword [rbp + 0x28], r8
mov r13d, eax
shr eax, 0x10
movzx eax, al
mov r15d, edx
movzx edi, dh
mov qword [rbp + 8], rdi
movzx r8d, dl
mov qword [rbp + 0x30], r8
shr edx, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r14 + rdx*4]
mov edx, ecx
shr edx, 0x18
shr r15d, 0x10
movzx r15d, r15b
mov edi, dword [r12 + r15*4]
xor edi, dword [r14 + rdx*4]
xor edi, dword [r10 + rsi*4]
movzx edx, bl
mov qword [rbp + 0x10], rdx
mov esi, ebx
mov r15d, ebx
movzx edx, bh
mov r9, rdx
shr esi, 0x18
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
movzx edx, ch
movzx r8d, cl
mov ebx, dword [r12 + rbx*4]
xor ebx, dword [r14 + rsi*4]
mov rcx, qword [rbp + 8]
xor ebx, dword [r10 + rcx*4]
shr r13d, 0x18
shr r15d, 0x10
movzx ecx, r15b
mov ecx, dword [r12 + rcx*4]
xor ecx, dword [r14 + r13*4]
xor ecx, dword [r10 + rdx*4]
xor eax, dword [r10 + r9*4]
mov rdx, qword [rbp + 0x10]
xor edi, dword [r11 + rdx*4]
mov rdx, qword [rbp + 0x28]
xor ebx, dword [r11 + rdx*4]
mov rdx, qword [rbp + 0x30]
xor ecx, dword [r11 + rdx*4]
xor eax, dword [r11 + r8*4]
mov rdx, qword [rbp + 0x18]
xor edi, dword [rdx - 0x1c]
xor ebx, dword [rdx - 0x18]
xor ecx, dword [rdx - 0x14]
xor eax, dword [rdx - 0x10]
movzx edx, byte [rbp + 0x20]
dec dl
je 0x1400026a0
mov byte [rbp + 0x20], dl
movzx esi, ch
movzx edx, cl
mov qword [rbp + 0x28], rdx
mov r13d, ecx
shr ecx, 0x10
movzx ecx, cl
mov r9d, eax
movzx edx, ah
mov qword [rbp + 8], rdx
movzx edx, al
mov qword [rbp + 0x30], rdx
shr eax, 0x18
mov edx, dword [r12 + rcx*4]
xor edx, dword [r14 + rax*4]
mov eax, edi
mov r8d, edi
shr eax, 0x18
shr r9d, 0x10
movzx ecx, r9b
mov ecx, dword [r12 + rcx*4]
xor ecx, dword [r14 + rax*4]
movzx eax, bl
mov qword [rbp + 0x10], rax
mov eax, ebx
mov r15d, ebx
movzx edi, bh
xor ecx, dword [r10 + rsi*4]
shr eax, 0x18
mov ebx, r8d
shr ebx, 0x10
movzx r9d, bl
mov ebx, r8d
movzx esi, bh
movzx r8d, bl
mov ebx, dword [r12 + r9*4]
xor ebx, dword [r14 + rax*4]
mov rax, qword [rbp + 8]
xor ebx, dword [r10 + rax*4]
shr r13d, 0x18
shr r15d, 0x10
movzx eax, r15b
mov eax, dword [r12 + rax*4]
xor eax, dword [r14 + r13*4]
xor eax, dword [r10 + rsi*4]
xor edx, dword [r10 + rdi*4]
mov r9, qword [rbp + 0x10]
xor ecx, dword [r11 + r9*4]
mov r9, qword [rbp + 0x28]
xor ebx, dword [r11 + r9*4]
mov r9, qword [rbp + 0x30]
xor eax, dword [r11 + r9*4]
xor edx, dword [r11 + r8*4]
mov r8, qword [rbp + 0x18]
xor ecx, dword [r8 - 0xc]
xor ebx, dword [r8 - 8]
xor eax, dword [r8 - 4]
xor edx, dword [r8]
lea r13, [r8 + 0x20]
mov r9, qword [rbp - 0x58]
add r9, 0xfffffffffffffff8
mov qword [rbp + 0x18], r13
cmp r9, 4
ja 0x1400024d0
jmp 0x1400029b0
mov edx, eax
movzx esi, ah
mov qword [rbp + 0x20], rsi
movzx r8d, al
mov qword [rbp + 0x28], r8
shr eax, 0x18
lea r13, [0x140021b50]
movzx eax, byte [rax + r13]
mov dword [rbp + 0x30], eax
movzx esi, ch
movzx r8d, cl
mov r9d, ecx
shr ecx, 0x10
movzx r11d, cl
shr edx, 0x10
movzx ecx, dl
movzx edx, byte [rcx + r13]
mov eax, edi
mov ecx, edi
shr ecx, 0x18
movzx ecx, byte [rcx + r13]
movzx edi, bl
movzx edi, byte [rdi + r13]
shl edi, 0x18
shl edx, 8
or edx, ecx
or edx, edi
mov edi, eax
movzx ecx, ah
movzx r14d, al
movzx esi, byte [rsi + r13]
shl esi, 0x10
or edx, esi
mov r10, qword [rbp + 0x18]
mov esi, dword [r10 - 0xc]
bswap esi
xor esi, edx
mov r12, qword [rbp - 0x18]
mov rax, qword [rbp - 0x48]
mov dword [r12 + rax], esi
mov edx, ebx
mov r15d, ebx
movzx esi, bh
shr edx, 0x18
movzx edx, byte [rdx + r13]
shr edi, 0x10
movzx edi, dil
movzx edi, byte [rdi + r13]
shl edi, 8
or edi, edx
movzx edx, byte [r8 + r13]
shl edx, 0x18
or edi, edx
mov rdx, qword [rbp + 0x20]
movzx edx, byte [rdx + r13]
shl edx, 0x10
or edi, edx
mov edx, dword [r10 - 8]
bswap edx
xor edx, edi
mov rdi, rax
shr r9d, 0x18
movzx r8d, byte [r9 + r13]
shr r15d, 0x10
movzx r9d, r15b
movzx r9d, byte [r9 + r13]
shl r9d, 8
or r9d, r8d
mov rax, qword [rbp + 0x28]
movzx r8d, byte [rax + r13]
shl r8d, 0x18
or r9d, r8d
movzx ecx, byte [rcx + r13]
shl ecx, 0x10
or r9d, ecx
mov ecx, dword [r10 - 4]
bswap ecx
xor ecx, r9d
movzx r8d, byte [r11 + r13]
shl r8d, 8
add r8d, dword [rbp + 0x30]
movzx eax, byte [r14 + r13]
shl eax, 0x18
or r8d, eax
movzx eax, byte [rsi + r13]
shl eax, 0x10
or r8d, eax
mov eax, dword [r10]
bswap eax
xor eax, r8d
mov dword [r12 + rdi + 4], edx
mov dword [r12 + rdi + 8], ecx
mov dword [r12 + rdi + 0xc], eax
mov r10, qword [rbp - 0x50]
test r10, r10
je 0x1400029f4
mov r9, qword [rbp - 0x40]
movzx r8d, byte [r9]
xor byte [r12 + rdi], r8b
cmp r10, 1
je 0x1400029f8
movzx r8d, byte [r9 + 1]
xor byte [r12 + rdi + 1], r8b
cmp r10, 2
je 0x1400029ff
movzx r8d, byte [r9 + 2]
xor byte [r12 + rdi + 2], r8b
cmp r10, 3
je 0x140002a06
movzx r8d, byte [r9 + 3]
xor byte [r12 + rdi + 3], r8b
cmp r10, 4
je 0x140002a0d
movzx r8d, byte [r9 + 4]
xor r8b, dl
mov byte [r12 + rdi + 4], r8b
cmp r10, 5
je 0x140002a14
mov r8d, edx
shr r8d, 8
xor r8b, byte [r9 + 5]
mov byte [r12 + rdi + 5], r8b
cmp r10, 6
je 0x140002a1b
mov r8d, edx
shr r8d, 0x10
xor r8b, byte [r9 + 6]
mov byte [r12 + rdi + 6], r8b
cmp r10, 7
je 0x140002a22
shr edx, 0x18
xor dl, byte [r9 + 7]
mov byte [r12 + rdi + 7], dl
cmp r10, 8
je 0x140002a29
movzx edx, byte [r9 + 8]
xor dl, cl
mov byte [r12 + rdi + 8], dl
cmp r10, 9
je 0x140002a30
mov edx, ecx
shr edx, 8
xor dl, byte [r9 + 9]
mov byte [r12 + rdi + 9], dl
cmp r10, 0xa
je 0x140002a37
mov edx, ecx
shr edx, 0x10
xor dl, byte [r9 + 0xa]
mov byte [r12 + rdi + 0xa], dl
cmp r10, 0xb
je 0x140002a3e
shr ecx, 0x18
xor cl, byte [r9 + 0xb]
mov byte [r12 + rdi + 0xb], cl
cmp r10, 0xc
je 0x140002a45
movzx ecx, byte [r9 + 0xc]
xor cl, al
mov byte [r12 + rdi + 0xc], cl
cmp r10, 0xd
je 0x140002a4c
mov ecx, eax
shr ecx, 8
xor cl, byte [r9 + 0xd]
mov byte [r12 + rdi + 0xd], cl
cmp r10, 0xe
je 0x140002a53
mov ecx, eax
shr ecx, 0x10
xor cl, byte [r9 + 0xe]
mov byte [r12 + rdi + 0xe], cl
cmp r10, 0xf
je 0x140002a5a
shr eax, 0x18
xor al, byte [r9 + 0xf]
mov byte [r12 + rdi + 0xf], al
add rdi, qword [rbp + 0xb0]
mov rdx, qword [rbp - 0x20]
lea rax, [rdx + 0x10]
mov r15d, 0x10
mov r14, rdi
mov rcx, qword [rbp - 0x38]
test rcx, rcx
mov rsi, qword [rbp + 0xb8]
lea r10, [0x1400212c0]
lea r11, [0x1400216c0]
jne 0x140002460
mov rax, qword [rbp - 0x28]
cmp byte [rax + 0x1e8], 0
je 0x1400029cb
movzx ecx, byte [rsi + r12 - 1]
xor eax, eax
mov rdx, rsi
sub rdx, rcx
cmovae rax, rdx
jmp 0x1400029ce
lea r8, str.C:Usersdrishal.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
mov ecx, 4
mov edx, 4
call fcn.14001dd60
jmp 0x140002a87
mov rax, rsi
mov rdi, qword [rbp - 0x10]
mov qword [rdi], rsi
mov qword [rdi + 8], r12
mov qword [rdi + 0x10], rax
mov rax, rdi
add rsp, 0xc8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor ecx, ecx
jmp 0x140002a5f
mov ecx, 1
jmp 0x140002a5f
mov ecx, 2
jmp 0x140002a5f
mov ecx, 3
jmp 0x140002a5f
mov ecx, 4
jmp 0x140002a5f
mov ecx, 5
jmp 0x140002a5f
mov ecx, 6
jmp 0x140002a5f
mov ecx, 7
jmp 0x140002a5f
mov ecx, 8
jmp 0x140002a5f
mov ecx, 9
jmp 0x140002a5f
mov ecx, 0xa
jmp 0x140002a5f
mov ecx, 0xb
jmp 0x140002a5f
mov ecx, 0xc
jmp 0x140002a5f
mov ecx, 0xd
jmp 0x140002a5f
mov ecx, 0xe
jmp 0x140002a5f
mov ecx, 0xf
lea r8, str.C:Usersdrishal.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
mov rdx, rcx
call fcn.14001dd60
jmp 0x140002a87
lea r8, str.C:Usersdrishal.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
mov rcx, qword [rbp - 0x20]
mov rdx, qword [rbp + 0xb8]
call fcn.14001e110
ud2
call fcn.1400172b0
mov ecx, 1
mov rdx, rsi
call fcn.14001db00
int3