Function at 0x140003a60
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, 0xb8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x30], 0xfffffffffffffffe
mov rdi, rcx
mov rsi, qword [rbp + 0xa8]
test sil, 0xf
je 0x140003aa6
mov qword [rdi], 1
xorps xmm0, xmm0
movups xmmword [rdi + 8], xmm0
jmp 0x1400040de
test rsi, rsi
je 0x140003afa
js 0x1400041a4
mov r15, r9
mov rbx, r8
mov r14, rdx
movzx eax, byte [0x140032161]
mov edx, 1
mov rcx, rsi
call fcn.1400036b0
test rax, rax
je 0x1400041ab
mov r13, rax
mov rdx, qword [rbp + 0xa0]
mov rcx, rax
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
cmp rsi, 0x10
jae 0x140003b07
mov rax, rsi
jmp 0x1400040d3
mov r13d, 1
xor eax, eax
jmp 0x1400040d3
mov qword [rbp - 0x28], rdi
mov rcx, rsi
shr rcx, 4
mov eax, dword [r14 + 0xf4]
mov dword [rbp - 0x18], eax
mov eax, dword [r14 + 0xf8]
mov dword [rbp - 0x14], eax
mov eax, dword [r14 + 0xfc]
mov dword [rbp - 0x10], eax
mov eax, dword [r14 + 0x100]
mov dword [rbp - 0xc], eax
movzx eax, byte [r14 + 0x1e4]
shr al, 1
mov byte [rbp + 0x2f], al
add r14, 0x120
mov eax, 0x10
lea r12, [0x140023f80]
lea r11, [0x140024380]
xor edx, edx
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x30], r14
nop dword [rax + rax]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x58], r15
mov qword [rbp - 0x48], rbx
lea rax, [rdx + 0x10]
cmp rax, rsi
ja 0x14000418c
dec rcx
mov qword [rbp - 0x38], rcx
mov eax, dword [r13 + rdx]
mov ebx, dword [r13 + rdx + 4]
bswap eax
xor eax, dword [rbp - 0x18]
bswap ebx
xor ebx, dword [rbp - 0x14]
mov ecx, dword [r13 + rdx + 8]
bswap ecx
xor ecx, dword [rbp - 0x10]
mov qword [rbp - 0x50], rdx
mov edx, dword [r13 + rdx + 0xc]
bswap edx
xor edx, dword [rbp - 0xc]
mov r8d, 0x3c
mov qword [rbp + 8], r14
movzx r9d, byte [rbp + 0x2f]
mov byte [rbp + 0x10], r9b
lea r14, [0x140023768]
lea r15, [0x140023b80]
nop dword [rax]
mov qword [rbp - 0x60], r8
movzx edi, ch
movzx r8d, cl
mov qword [rbp + 0x18], r8
mov r8d, ecx
mov qword [rbp], r8
shr ecx, 0x10
movzx ecx, cl
mov r8d, edx
movzx esi, dh
mov qword [rbp - 8], rsi
movzx r10d, dl
mov qword [rbp + 0x20], r10
shr edx, 0x18
mov ecx, dword [r15 + rcx*4]
xor ecx, dword [r14 + rdx*4]
mov edx, eax
shr edx, 0x18
shr r8d, 0x10
movzx r8d, r8b
mov esi, dword [r15 + r8*4]
xor esi, dword [r14 + rdx*4]
xor esi, dword [r12 + rdi*4]
mov r13, r11
movzx r10d, bl
mov r8d, ebx
mov edi, ebx
movzx edx, bh
mov r9, rdx
shr r8d, 0x18
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
movzx edx, ah
mov r11, r12
movzx r12d, al
mov ebx, dword [r15 + rbx*4]
xor ebx, dword [r14 + r8*4]
mov rax, qword [rbp - 8]
xor ebx, dword [r11 + rax*4]
mov r8, qword [rbp]
shr r8d, 0x18
shr edi, 0x10
movzx eax, dil
mov eax, dword [r15 + rax*4]
xor eax, dword [r14 + r8*4]
xor eax, dword [r11 + rdx*4]
xor ecx, dword [r11 + r9*4]
xor esi, dword [r13 + r10*4]
mov rdx, qword [rbp + 0x18]
xor ebx, dword [r13 + rdx*4]
mov rdx, qword [rbp + 0x20]
xor eax, dword [r13 + rdx*4]
xor ecx, dword [r13 + r12*4]
mov rdx, qword [rbp + 8]
xor esi, dword [rdx - 0x1c]
xor ebx, dword [rdx - 0x18]
xor eax, dword [rdx - 0x14]
xor ecx, dword [rdx - 0x10]
movzx edx, byte [rbp + 0x10]
dec dl
je 0x140003dc0
mov byte [rbp + 0x10], dl
movzx edx, ah
mov r8, rdx
movzx edx, al
mov qword [rbp + 0x18], rdx
mov edx, eax
mov qword [rbp], rdx
shr eax, 0x10
movzx eax, al
mov r9d, ecx
movzx edx, ch
mov qword [rbp - 8], rdx
movzx edx, cl
mov qword [rbp + 0x20], rdx
shr ecx, 0x18
mov edx, dword [r15 + rax*4]
xor edx, dword [r14 + rcx*4]
mov ecx, esi
shr ecx, 0x18
shr r9d, 0x10
movzx eax, r9b
mov eax, dword [r15 + rax*4]
xor eax, dword [r14 + rcx*4]
movzx r9d, bl
mov ecx, ebx
mov r12d, 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 [r15 + r8*4]
xor ebx, dword [r14 + rcx*4]
mov rcx, qword [rbp - 8]
xor ebx, dword [r11 + rcx*4]
mov r8, qword [rbp]
shr r8d, 0x18
shr r12d, 0x10
movzx ecx, r12b
mov ecx, dword [r15 + rcx*4]
xor ecx, dword [r14 + r8*4]
xor ecx, dword [r11 + rsi*4]
xor edx, dword [r11 + rdi*4]
xor eax, dword [r13 + r9*4]
mov r9, qword [rbp + 0x18]
xor ebx, dword [r13 + r9*4]
mov r9, qword [rbp + 0x20]
xor ecx, dword [r13 + r9*4]
xor edx, dword [r13 + r10*4]
mov r8, qword [rbp + 8]
xor eax, dword [r8 - 0xc]
xor ebx, dword [r8 - 8]
xor ecx, dword [r8 - 4]
xor edx, dword [r8]
lea r10, [r8 + 0x20]
mov r8, qword [rbp - 0x60]
add r8, 0xfffffffffffffff8
mov qword [rbp + 8], r10
cmp r8, 4
mov r12, r11
mov r11, r13
ja 0x140003be0
jmp 0x1400040f5
mov edx, ecx
movzx edi, ch
mov qword [rbp + 0x10], rdi
movzx r8d, cl
mov qword [rbp + 0x18], r8
shr ecx, 0x18
lea r10, [0x140024810]
movzx ecx, byte [rcx + r10]
mov dword [rbp + 0x20], ecx
movzx edi, ah
movzx r8d, al
mov r11d, 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 r15d, bl
movzx r15d, byte [r15 + r10]
shl r15d, 0x18
shl edx, 8
or edx, ecx
or edx, r15d
mov r15d, esi
movzx ecx, ah
movzx r12d, al
movzx edi, byte [rdi + r10]
shl edi, 0x10
or edx, edi
mov r9, qword [rbp + 8]
mov edi, dword [r9 - 0xc]
bswap edi
xor edi, edx
mov r13, qword [rbp - 0x20]
mov rsi, qword [rbp - 0x50]
mov dword [r13 + rsi], edi
mov edx, ebx
mov edi, ebx
movzx ebx, bh
shr edx, 0x18
movzx edx, byte [rdx + r10]
shr r15d, 0x10
movzx r15d, r15b
movzx r15d, byte [r15 + r10]
shl r15d, 8
or r15d, edx
movzx edx, byte [r8 + r10]
shl edx, 0x18
or r15d, edx
mov rax, qword [rbp + 0x10]
movzx edx, byte [rax + r10]
shl edx, 0x10
or r15d, edx
mov edx, dword [r9 - 8]
bswap edx
xor edx, r15d
shr r11d, 0x18
movzx r8d, byte [r11 + r10]
shr edi, 0x10
movzx r11d, dil
movzx r11d, byte [r11 + r10]
shl r11d, 8
or r11d, r8d
mov rax, qword [rbp + 0x18]
movzx r8d, byte [rax + r10]
shl r8d, 0x18
or r11d, r8d
movzx ecx, byte [rcx + r10]
shl ecx, 0x10
or r11d, ecx
mov ecx, dword [r9 - 4]
bswap ecx
xor ecx, r11d
movzx r8d, byte [r14 + r10]
shl r8d, 8
add r8d, dword [rbp + 0x20]
movzx eax, byte [r12 + r10]
shl eax, 0x18
or r8d, eax
movzx eax, byte [rbx + r10]
shl eax, 0x10
or r8d, eax
mov eax, dword [r9]
bswap eax
xor eax, r8d
mov dword [r13 + rsi + 4], edx
mov dword [r13 + rsi + 8], ecx
mov dword [r13 + rsi + 0xc], eax
mov r10, qword [rbp - 0x58]
test r10, r10
je 0x140004110
mov r9, qword [rbp - 0x48]
movzx r8d, byte [r9]
xor byte [r13 + rsi], r8b
cmp r10, 1
je 0x140004114
movzx r8d, byte [r9 + 1]
xor byte [r13 + rsi + 1], r8b
cmp r10, 2
je 0x14000411b
movzx r8d, byte [r9 + 2]
xor byte [r13 + rsi + 2], r8b
cmp r10, 3
je 0x140004122
movzx r8d, byte [r9 + 3]
xor byte [r13 + rsi + 3], r8b
cmp r10, 4
je 0x140004129
movzx r8d, byte [r9 + 4]
xor r8b, dl
mov byte [r13 + rsi + 4], r8b
cmp r10, 5
je 0x140004130
mov r8d, edx
shr r8d, 8
xor r8b, byte [r9 + 5]
mov byte [r13 + rsi + 5], r8b
cmp r10, 6
je 0x140004137
mov r8d, edx
shr r8d, 0x10
xor r8b, byte [r9 + 6]
mov byte [r13 + rsi + 6], r8b
cmp r10, 7
je 0x14000413e
shr edx, 0x18
xor dl, byte [r9 + 7]
mov byte [r13 + rsi + 7], dl
cmp r10, 8
je 0x140004145
movzx edx, byte [r9 + 8]
xor dl, cl
mov byte [r13 + rsi + 8], dl
cmp r10, 9
je 0x14000414c
mov edx, ecx
shr edx, 8
xor dl, byte [r9 + 9]
mov byte [r13 + rsi + 9], dl
cmp r10, 0xa
je 0x140004153
mov edx, ecx
shr edx, 0x10
xor dl, byte [r9 + 0xa]
mov byte [r13 + rsi + 0xa], dl
cmp r10, 0xb
je 0x14000415a
shr ecx, 0x18
xor cl, byte [r9 + 0xb]
mov byte [r13 + rsi + 0xb], cl
cmp r10, 0xc
je 0x140004161
movzx ecx, byte [r9 + 0xc]
xor cl, al
mov byte [r13 + rsi + 0xc], cl
cmp r10, 0xd
je 0x140004168
mov ecx, eax
shr ecx, 8
xor cl, byte [r9 + 0xd]
mov byte [r13 + rsi + 0xd], cl
cmp r10, 0xe
je 0x14000416f
mov ecx, eax
shr ecx, 0x10
xor cl, byte [r9 + 0xe]
mov byte [r13 + rsi + 0xe], cl
cmp r10, 0xf
je 0x140004176
shr eax, 0x18
xor al, byte [r9 + 0xf]
mov byte [r13 + rsi + 0xf], al
mov rbx, rsi
add rbx, qword [rbp + 0xa0]
mov rax, qword [rbp - 0x40]
mov rdx, rax
add rax, 0x10
mov r15d, 0x10
mov rcx, qword [rbp - 0x38]
test rcx, rcx
mov rsi, qword [rbp + 0xa8]
mov r14, qword [rbp - 0x30]
lea r12, [0x140023f80]
lea r11, [0x140024380]
jne 0x140003b70
movzx ecx, byte [rsi + r13 - 1]
xor eax, eax
mov rdx, rsi
sub rdx, rcx
cmovae rax, rdx
mov rdi, qword [rbp - 0x28]
mov qword [rdi], r13
mov qword [rdi + 8], rsi
mov qword [rdi + 0x10], rax
mov rax, rdi
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea r8, str.C:Users.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov ecx, 4
mov edx, 4
call fcn.140020670
jmp 0x1400041a2
xor ecx, ecx
jmp 0x14000417b
mov ecx, 1
jmp 0x14000417b
mov ecx, 2
jmp 0x14000417b
mov ecx, 3
jmp 0x14000417b
mov ecx, 4
jmp 0x14000417b
mov ecx, 5
jmp 0x14000417b
mov ecx, 6
jmp 0x14000417b
mov ecx, 7
jmp 0x14000417b
mov ecx, 8
jmp 0x14000417b
mov ecx, 9
jmp 0x14000417b
mov ecx, 0xa
jmp 0x14000417b
mov ecx, 0xb
jmp 0x14000417b
mov ecx, 0xc
jmp 0x14000417b
mov ecx, 0xd
jmp 0x14000417b
mov ecx, 0xe
jmp 0x14000417b
mov ecx, 0xf
lea r8, str.C:Users.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov rdx, rcx
call fcn.140020670
jmp 0x1400041a2
lea r8, str.C:Users.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov rcx, rax
mov rdx, qword [rbp + 0xa8]
call fcn.140020a20
ud2
call fcn.1400188b0
ud2
mov ecx, 1
mov rdx, rsi
call fcn.140020440
ud2