Function at 0x14002d670
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 0x14002d6bf
mov qword [rdi], 0
mov qword [rdi + 8], 1
mov qword [rdi + 0x10], 0
jmp 0x14002dd11
test rsi, rsi
je 0x14002d713
js 0x14002ddbc
mov r15, r9
mov r14, r8
mov rbx, rdx
movzx eax, byte [0x140073181]
mov edx, 1
mov rcx, rsi
call fcn.14000a0a0
test rax, rax
je 0x14002ddc1
mov r12, rax
mov rdx, qword [rbp + 0xb0]
mov rcx, rax
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
cmp rsi, 0x10
jae 0x14002d720
mov rax, rsi
jmp 0x14002dd06
mov r12d, 1
xor eax, eax
jmp 0x14002dd06
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 - 0x20], rbx
lea rax, [rbx + 0x120]
mov qword [rbp - 0x28], rax
mov eax, 0x10
lea r13, [0x14005aac0]
lea r11, [0x14005aec0]
xor edx, edx
mov qword [rbp - 0x18], r12
nop word cs:[rax + rax]
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x50], r15
lea rax, [rdx + 0x10]
cmp rax, rsi
ja 0x14002dda4
mov qword [rbp - 0x40], r14
dec rcx
mov qword [rbp - 0x30], rcx
mov eax, dword [r12 + rdx]
mov ebx, dword [r12 + rdx + 4]
bswap eax
xor eax, dword [rbp - 8]
bswap ebx
xor ebx, dword [rbp - 4]
mov ecx, dword [r12 + rdx + 8]
bswap ecx
xor ecx, 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 - 0x28]
mov qword [rbp + 0x18], r8
movzx r8d, byte [rbp + 0x3f]
mov byte [rbp + 0x20], r8b
lea r14, [0x14005a2a8]
lea r12, [0x14005a6c0]
mov qword [rbp - 0x58], r9
movzx edi, ch
movzx r8d, cl
mov qword [rbp + 0x28], r8
mov r8d, ecx
mov qword [rbp + 0x10], r8
shr ecx, 0x10
movzx ecx, cl
mov r8d, edx
movzx esi, dh
mov qword [rbp + 8], rsi
movzx r10d, dl
mov qword [rbp + 0x30], r10
shr edx, 0x18
mov ecx, dword [r12 + rcx*4]
xor ecx, dword [r14 + rdx*4]
mov edx, eax
shr edx, 0x18
shr r8d, 0x10
movzx r8d, r8b
mov esi, dword [r12 + r8*4]
xor esi, dword [r14 + rdx*4]
xor esi, dword [r13 + rdi*4]
mov r15, r11
movzx r10d, bl
mov r8d, ebx
mov edx, ebx
movzx edi, bh
mov r9, rdi
shr r8d, 0x18
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
movzx edi, ah
mov r11, r13
movzx r13d, al
mov ebx, dword [r12 + rbx*4]
xor ebx, dword [r14 + r8*4]
mov rax, qword [rbp + 8]
xor ebx, dword [r11 + rax*4]
mov r8, qword [rbp + 0x10]
shr r8d, 0x18
shr edx, 0x10
movzx eax, dl
mov eax, dword [r12 + rax*4]
xor eax, dword [r14 + r8*4]
xor eax, dword [r11 + rdi*4]
xor ecx, dword [r11 + r9*4]
xor esi, dword [r15 + r10*4]
mov rdx, qword [rbp + 0x28]
xor ebx, dword [r15 + rdx*4]
mov rdx, qword [rbp + 0x30]
xor eax, dword [r15 + rdx*4]
xor ecx, dword [r15 + r13*4]
mov rdx, qword [rbp + 0x18]
xor esi, dword [rdx - 0x1c]
xor ebx, dword [rdx - 0x18]
xor eax, dword [rdx - 0x14]
xor ecx, dword [rdx - 0x10]
movzx edx, byte [rbp + 0x20]
dec dl
je 0x14002d9d0
mov byte [rbp + 0x20], dl
movzx edx, ah
mov r8, rdx
movzx edx, al
mov qword [rbp + 0x28], rdx
mov edx, eax
mov qword [rbp + 0x10], rdx
shr eax, 0x10
movzx eax, al
mov r9d, ecx
movzx edx, ch
mov qword [rbp + 8], rdx
movzx edx, cl
mov qword [rbp + 0x30], rdx
shr ecx, 0x18
mov edx, dword [r12 + rax*4]
xor edx, dword [r14 + rcx*4]
mov ecx, esi
shr ecx, 0x18
shr r9d, 0x10
movzx eax, r9b
mov eax, dword [r12 + rax*4]
xor eax, dword [r14 + rcx*4]
movzx r9d, bl
mov ecx, ebx
mov r13d, ebx
movzx edi, bh
xor eax, dword [r11 + r8*4]
shr ecx, 0x18
mov ebx, esi
shr ebx, 0x10
movzx r8d, bl
mov ebx, esi
movzx esi, bh
movzx r10d, bl
mov ebx, dword [r12 + r8*4]
xor ebx, dword [r14 + rcx*4]
mov rcx, qword [rbp + 8]
xor ebx, dword [r11 + rcx*4]
mov r8, qword [rbp + 0x10]
shr r8d, 0x18
shr r13d, 0x10
movzx ecx, r13b
mov ecx, dword [r12 + rcx*4]
xor ecx, dword [r14 + r8*4]
xor ecx, dword [r11 + rsi*4]
xor edx, dword [r11 + rdi*4]
xor eax, dword [r15 + r9*4]
mov r9, qword [rbp + 0x28]
xor ebx, dword [r15 + r9*4]
mov r9, qword [rbp + 0x30]
xor ecx, dword [r15 + r9*4]
xor edx, dword [r15 + r10*4]
mov r8, qword [rbp + 0x18]
xor eax, dword [r8 - 0xc]
xor ebx, dword [r8 - 8]
xor ecx, dword [r8 - 4]
xor edx, dword [r8]
lea r10, [r8 + 0x20]
mov r9, qword [rbp - 0x58]
add r9, 0xfffffffffffffff8
mov qword [rbp + 0x18], r10
cmp r9, 4
mov r13, r11
mov r11, r15
ja 0x14002d800
jmp 0x14002dce4
mov edx, ecx
movzx edi, ch
mov qword [rbp + 0x20], rdi
movzx r8d, cl
mov qword [rbp + 0x28], r8
shr ecx, 0x18
lea r10, [0x14005b4a0]
movzx ecx, byte [rcx + r10]
mov dword [rbp + 0x30], ecx
movzx edi, ah
movzx r8d, al
mov r9d, eax
shr eax, 0x10
movzx r14d, al
shr edx, 0x10
movzx ecx, dl
movzx edx, byte [rcx + r10]
mov eax, esi
mov ecx, esi
shr ecx, 0x18
movzx ecx, byte [rcx + r10]
movzx r11d, bl
movzx r11d, byte [r11 + r10]
shl r11d, 0x18
shl edx, 8
or edx, ecx
or edx, r11d
mov r11d, esi
movzx ecx, ah
movzx r15d, al
movzx edi, byte [rdi + r10]
shl edi, 0x10
or edx, edi
mov rsi, qword [rbp + 0x18]
mov edi, dword [rsi - 0xc]
bswap edi
xor edi, edx
mov r12, qword [rbp - 0x18]
mov r13, qword [rbp - 0x48]
mov dword [r12 + r13], edi
mov edx, ebx
mov edi, ebx
movzx ebx, bh
shr edx, 0x18
movzx edx, byte [rdx + r10]
shr r11d, 0x10
movzx r11d, r11b
movzx r11d, byte [r11 + r10]
shl r11d, 8
or r11d, edx
movzx edx, byte [r8 + r10]
shl edx, 0x18
or r11d, edx
mov rax, qword [rbp + 0x20]
movzx edx, byte [rax + r10]
shl edx, 0x10
or r11d, edx
mov edx, dword [rsi - 8]
bswap edx
xor edx, r11d
shr r9d, 0x18
movzx r8d, byte [r9 + r10]
shr edi, 0x10
movzx r9d, dil
movzx r9d, byte [r9 + r10]
shl r9d, 8
or r9d, r8d
mov rax, qword [rbp + 0x28]
movzx r8d, byte [rax + r10]
shl r8d, 0x18
or r9d, r8d
movzx ecx, byte [rcx + r10]
shl ecx, 0x10
or r9d, ecx
mov ecx, dword [rsi - 4]
bswap ecx
xor ecx, r9d
movzx r8d, byte [r14 + r10]
shl r8d, 8
add r8d, dword [rbp + 0x30]
movzx eax, byte [r15 + r10]
shl eax, 0x18
or r8d, eax
movzx eax, byte [rbx + r10]
shl eax, 0x10
or r8d, eax
mov eax, dword [rsi]
bswap eax
xor eax, r8d
mov dword [r12 + r13 + 4], edx
mov dword [r12 + r13 + 8], ecx
mov dword [r12 + r13 + 0xc], eax
mov r10, qword [rbp - 0x50]
test r10, r10
je 0x14002dd28
mov r9, qword [rbp - 0x40]
movzx r8d, byte [r9]
xor byte [r12 + r13], r8b
cmp r10, 1
je 0x14002dd2c
movzx r8d, byte [r9 + 1]
xor byte [r12 + r13 + 1], r8b
cmp r10, 2
je 0x14002dd33
movzx r8d, byte [r9 + 2]
xor byte [r12 + r13 + 2], r8b
cmp r10, 3
je 0x14002dd3a
movzx r8d, byte [r9 + 3]
xor byte [r12 + r13 + 3], r8b
cmp r10, 4
je 0x14002dd41
movzx r8d, byte [r9 + 4]
xor r8b, dl
mov byte [r12 + r13 + 4], r8b
cmp r10, 5
je 0x14002dd48
mov r8d, edx
shr r8d, 8
xor r8b, byte [r9 + 5]
mov byte [r12 + r13 + 5], r8b
cmp r10, 6
je 0x14002dd4f
mov r8d, edx
shr r8d, 0x10
xor r8b, byte [r9 + 6]
mov byte [r12 + r13 + 6], r8b
cmp r10, 7
je 0x14002dd56
shr edx, 0x18
xor dl, byte [r9 + 7]
mov byte [r12 + r13 + 7], dl
cmp r10, 8
je 0x14002dd5d
movzx edx, byte [r9 + 8]
xor dl, cl
mov byte [r12 + r13 + 8], dl
cmp r10, 9
je 0x14002dd64
mov edx, ecx
shr edx, 8
xor dl, byte [r9 + 9]
mov byte [r12 + r13 + 9], dl
cmp r10, 0xa
je 0x14002dd6b
mov edx, ecx
shr edx, 0x10
xor dl, byte [r9 + 0xa]
mov byte [r12 + r13 + 0xa], dl
cmp r10, 0xb
je 0x14002dd72
shr ecx, 0x18
xor cl, byte [r9 + 0xb]
mov byte [r12 + r13 + 0xb], cl
cmp r10, 0xc
je 0x14002dd79
movzx ecx, byte [r9 + 0xc]
xor cl, al
mov byte [r12 + r13 + 0xc], cl
cmp r10, 0xd
je 0x14002dd80
mov ecx, eax
shr ecx, 8
xor cl, byte [r9 + 0xd]
mov byte [r12 + r13 + 0xd], cl
cmp r10, 0xe
je 0x14002dd87
mov ecx, eax
shr ecx, 0x10
xor cl, byte [r9 + 0xe]
mov byte [r12 + r13 + 0xe], cl
cmp r10, 0xf
je 0x14002dd8e
shr eax, 0x18
xor al, byte [r9 + 0xf]
mov byte [r12 + r13 + 0xf], al
mov r14, r13
add r14, qword [rbp + 0xb0]
mov rax, qword [rbp - 0x38]
mov rdx, rax
add rax, 0x10
mov r15d, 0x10
mov rcx, qword [rbp - 0x30]
test rcx, rcx
mov rsi, qword [rbp + 0xb8]
lea r13, [0x14005aac0]
lea r11, [0x14005aec0]
jne 0x14002d790
mov rax, qword [rbp - 0x20]
cmp byte [rax + 0x1e8], 0
je 0x14002dcff
movzx ecx, byte [rsi + r12 - 1]
xor eax, eax
mov rdx, rsi
sub rdx, rcx
cmovae rax, rdx
jmp 0x14002dd02
lea r8, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
mov ecx, 4
mov edx, 4
call fcn.140051b80
jmp 0x14002ddba
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 0x14002dd93
mov ecx, 1
jmp 0x14002dd93
mov ecx, 2
jmp 0x14002dd93
mov ecx, 3
jmp 0x14002dd93
mov ecx, 4
jmp 0x14002dd93
mov ecx, 5
jmp 0x14002dd93
mov ecx, 6
jmp 0x14002dd93
mov ecx, 7
jmp 0x14002dd93
mov ecx, 8
jmp 0x14002dd93
mov ecx, 9
jmp 0x14002dd93
mov ecx, 0xa
jmp 0x14002dd93
mov ecx, 0xb
jmp 0x14002dd93
mov ecx, 0xc
jmp 0x14002dd93
mov ecx, 0xd
jmp 0x14002dd93
mov ecx, 0xe
jmp 0x14002dd93
mov ecx, 0xf
lea r8, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
mov rdx, rcx
call fcn.140051b80
jmp 0x14002ddba
lea r8, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.7.0_srclib.rs
mov rcx, rax
mov rdx, qword [rbp + 0xb8]
call fcn.140051f70
ud2
call fcn.140047b00
mov ecx, 1
mov rdx, rsi
call fcn.140051860
int3