Function at 0x140003840
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 qword [rbp - 0x28], rcx
mov r15, qword [rbp + 0xa8]
mov r12d, 1
test r15b, 0xf
je 0x1400038a2
xor r15d, r15d
xor ecx, ecx
mov rax, qword [rbp - 0x28]
mov qword [rax], r15
mov qword [rax + 8], r12
mov qword [rax + 0x10], rcx
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
test r15, r15
js 0x140003f7d
je 0x14000387a
mov rdi, r9
mov rbx, r8
mov r14, rdx
movzx eax, byte [0x1401f2b41]
mov esi, 1
mov edx, 1
mov rcx, r15
call fcn.140003630
test rax, rax
je 0x140003f7f
mov r12, rax
mov rdx, qword [rbp + 0xa0]
mov rcx, rax
mov r8, r15
call fcn.14002a3e0
mov rax, r15
shr rax, 4
mov ecx, dword [r14 + 0xf4]
mov dword [rbp - 0x10], ecx
mov ecx, dword [r14 + 0xf8]
mov dword [rbp - 0xc], ecx
mov ecx, dword [r14 + 0xfc]
mov dword [rbp - 8], ecx
mov ecx, dword [r14 + 0x100]
mov dword [rbp - 4], ecx
movzx ecx, byte [r14 + 0x1e4]
shr cl, 1
mov byte [rbp + 0x2f], cl
add r14, 0x120
mov qword [rbp - 0x30], r14
xor r8d, r8d
mov qword [rbp - 0x18], r12
nop dword [rax + rax]
mov qword [rbp - 0x50], rdi
mov qword [rbp - 0x40], rbx
lea rcx, [r8 + 0x10]
mov qword [rbp - 0x20], rcx
cmp rcx, r15
ja 0x140003ee8
dec rax
mov qword [rbp - 0x38], rax
mov ecx, dword [r12 + r8]
mov eax, dword [r12 + r8 + 4]
bswap ecx
xor ecx, dword [rbp - 0x10]
bswap eax
xor eax, dword [rbp - 0xc]
mov edx, dword [r12 + r8 + 8]
bswap edx
xor edx, dword [rbp - 8]
mov qword [rbp - 0x48], r8
mov ebx, dword [r12 + r8 + 0xc]
bswap ebx
xor ebx, dword [rbp - 4]
mov r9d, 0x3c
mov r8, qword [rbp - 0x30]
mov qword [rbp + 0x10], r8
movzx r8d, byte [rbp + 0x2f]
mov byte [rbp + 0x18], r8b
nop word cs:[rax + rax]
mov qword [rbp - 0x58], r9
mov r10d, ebx
movzx esi, dh
mov r11, rsi
movzx esi, bh
mov qword [rbp], rsi
movzx r8d, dl
mov qword [rbp + 0x20], r8
mov r15d, edx
movzx r8d, bl
mov qword [rbp + 8], r8
shr ebx, 0x18
shr edx, 0xe
and edx, 0x3fc
lea r13, [0x1401dc950]
mov edx, dword [rdx + r13]
lea r12, [0x1401dc538]
xor edx, dword [r12 + rbx*4]
mov esi, ecx
shr esi, 0x18
shr r10d, 0xe
and r10d, 0x3fc
mov edi, dword [r10 + r13]
xor edi, dword [r12 + rsi*4]
lea r8, [0x1401dcd50]
xor edi, dword [r8 + r11*4]
movzx r10d, al
mov r14d, eax
mov r11d, eax
movzx ebx, ah
shr r14d, 0x18
mov eax, ecx
shr eax, 0xe
and eax, 0x3fc
movzx esi, ch
movzx r9d, cl
mov eax, dword [rax + r13]
xor eax, dword [r12 + r14*4]
mov rcx, qword [rbp]
xor eax, dword [r8 + rcx*4]
shr r15d, 0x18
shr r11d, 0xe
and r11d, 0x3fc
mov ecx, dword [r11 + r13]
xor ecx, dword [r12 + r15*4]
xor ecx, dword [r8 + rsi*4]
xor edx, dword [r8 + rbx*4]
lea r8, [0x1401dd150]
xor edi, dword [r8 + r10*4]
mov r10, qword [rbp + 0x20]
xor eax, dword [r8 + r10*4]
mov r10, qword [rbp + 8]
xor ecx, dword [r8 + r10*4]
xor edx, dword [r8 + r9*4]
mov r9, qword [rbp + 0x10]
xor edi, dword [r9 - 0x1c]
xor eax, dword [r9 - 0x18]
xor ecx, dword [r9 - 0x14]
xor edx, dword [r9 - 0x10]
movzx r9d, byte [rbp + 0x18]
dec r9b
je 0x140003bd0
mov byte [rbp + 0x18], r9b
mov r10d, edx
movzx esi, ch
mov r11, rsi
movzx esi, dh
mov qword [rbp], rsi
movzx r8d, cl
mov qword [rbp + 0x20], r8
mov r15d, ecx
movzx r8d, dl
mov qword [rbp + 8], r8
shr edx, 0x18
shr ecx, 0xe
and ecx, 0x3fc
lea r8, [0x1401dc950]
mov ebx, dword [rcx + r8]
lea r14, [0x1401dc538]
xor ebx, dword [r14 + rdx*4]
mov edx, edi
shr edx, 0x18
shr r10d, 0xe
and r10d, 0x3fc
mov ecx, dword [r10 + r8]
xor ecx, dword [r14 + rdx*4]
movzx r9d, al
mov r13d, eax
mov r10d, eax
movzx esi, ah
lea r12, [0x1401dcd50]
xor ecx, dword [r12 + r11*4]
shr r13d, 0x18
mov edx, edi
mov eax, edi
shr eax, 0xe
and eax, 0x3fc
movzx edi, dh
movzx r11d, dl
mov eax, dword [rax + r8]
xor eax, dword [r14 + r13*4]
mov rdx, qword [rbp]
xor eax, dword [r12 + rdx*4]
shr r15d, 0x18
shr r10d, 0xe
and r10d, 0x3fc
mov edx, dword [r10 + r8]
xor edx, dword [r14 + r15*4]
xor edx, dword [r12 + rdi*4]
xor ebx, dword [r12 + rsi*4]
lea r13, [0x1401dd150]
xor ecx, dword [r13 + r9*4]
mov r8, qword [rbp + 0x20]
xor eax, dword [r13 + r8*4]
mov r8, qword [rbp + 8]
xor edx, dword [r13 + r8*4]
xor ebx, dword [r13 + r11*4]
mov r9, qword [rbp + 0x10]
xor ecx, dword [r9 - 0xc]
xor eax, dword [r9 - 8]
xor edx, dword [r9 - 4]
xor ebx, dword [r9]
lea r13, [r9 + 0x20]
mov r9, qword [rbp - 0x58]
add r9, 0xfffffffffffffff8
mov qword [rbp + 0x10], r13
cmp r9, 4
ja 0x1400039b0
jmp 0x140003ecd
mov r9d, edx
movzx esi, dh
mov qword [rbp + 0x18], rsi
movzx r8d, dl
mov qword [rbp + 0x20], r8
shr edx, 0x18
lea r13, [0x1401dd580]
movzx r14d, byte [rdx + r13]
movzx edx, ch
movzx r15d, cl
mov esi, ecx
shr ecx, 0x10
movzx r8d, cl
shr r9d, 0x10
movzx ecx, r9b
movzx r11d, byte [rcx + r13]
mov ebx, edi
mov ecx, edi
shr ecx, 0x18
movzx ecx, byte [rcx + r13]
movzx r9d, al
movzx r9d, byte [r9 + r13]
shl r9d, 0x18
shl r11d, 8
or r11d, ecx
or r11d, r9d
movzx ecx, bh
movzx r9d, bl
movzx edx, byte [rdx + r13]
shl edx, 0x10
or r11d, edx
mov r10, qword [rbp + 0x10]
mov edx, dword [r10 - 0xc]
bswap edx
xor edx, r11d
mov r12, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x48]
mov dword [r12 + rbx], edx
mov edx, eax
mov r11d, eax
movzx eax, ah
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 [r15 + r13]
shl edx, 0x18
or edi, edx
mov rdx, qword [rbp + 0x18]
movzx edx, byte [rdx + r13]
shl edx, 0x10
or edi, edx
mov edx, dword [r10 - 8]
bswap edx
xor edx, edi
shr esi, 0x18
movzx esi, byte [rsi + r13]
shr r11d, 0x10
movzx r11d, r11b
movzx r11d, byte [r11 + r13]
shl r11d, 8
or r11d, esi
mov rsi, qword [rbp + 0x20]
movzx esi, byte [rsi + r13]
shl esi, 0x18
or r11d, esi
movzx ecx, byte [rcx + r13]
shl ecx, 0x10
or r11d, ecx
mov ecx, dword [r10 - 4]
bswap ecx
xor ecx, r11d
movzx r8d, byte [r8 + r13]
shl r8d, 8
or r8d, r14d
movzx r9d, byte [r9 + r13]
shl r9d, 0x18
or r8d, r9d
movzx eax, byte [rax + r13]
shl eax, 0x10
or r8d, eax
mov eax, dword [r10]
bswap eax
xor eax, r8d
mov dword [r12 + rbx + 4], edx
mov dword [r12 + rbx + 8], ecx
mov dword [r12 + rbx + 0xc], eax
mov r11, qword [rbp - 0x50]
test r11, r11
je 0x140003f40
mov r10, qword [rbp - 0x40]
movzx r8d, byte [r10]
xor byte [r12 + rbx], r8b
cmp r11, 1
mov r15, qword [rbp + 0xa8]
je 0x140003f16
movzx r8d, byte [r10 + 1]
xor byte [r12 + rbx + 1], r8b
cmp r11, 2
je 0x140003f44
movzx r8d, byte [r10 + 2]
xor byte [r12 + rbx + 2], r8b
cmp r11, 3
je 0x140003f4b
movzx r8d, byte [r10 + 3]
xor byte [r12 + rbx + 3], r8b
cmp r11, 4
je 0x140003f1d
movzx r8d, byte [r10 + 4]
xor r8b, dl
mov byte [r12 + rbx + 4], r8b
cmp r11, 5
je 0x140003f24
mov r8d, edx
shr r8d, 8
xor r8b, byte [r10 + 5]
mov byte [r12 + rbx + 5], r8b
cmp r11, 6
je 0x140003f2b
mov r8d, edx
shr r8d, 0x10
xor r8b, byte [r10 + 6]
mov byte [r12 + rbx + 6], r8b
cmp r11, 7
je 0x140003f52
shr edx, 0x18
xor dl, byte [r10 + 7]
mov byte [r12 + rbx + 7], dl
cmp r11, 8
je 0x140003f67
movzx edx, byte [r10 + 8]
xor dl, cl
mov byte [r12 + rbx + 8], dl
cmp r11, 9
je 0x140003f01
mov edx, ecx
shr edx, 8
xor dl, byte [r10 + 9]
mov byte [r12 + rbx + 9], dl
cmp r11, 0xa
je 0x140003f08
mov edx, ecx
shr edx, 0x10
xor dl, byte [r10 + 0xa]
mov byte [r12 + rbx + 0xa], dl
cmp r11, 0xb
je 0x140003f59
shr ecx, 0x18
xor cl, byte [r10 + 0xb]
mov byte [r12 + rbx + 0xb], cl
cmp r11, 0xc
je 0x140003f32
movzx ecx, byte [r10 + 0xc]
xor cl, al
mov byte [r12 + rbx + 0xc], cl
cmp r11, 0xd
je 0x140003f60
mov ecx, eax
shr ecx, 8
xor cl, byte [r10 + 0xd]
mov byte [r12 + rbx + 0xd], cl
cmp r11, 0xe
je 0x140003f39
mov ecx, eax
shr ecx, 0x10
xor cl, byte [r10 + 0xe]
mov byte [r12 + rbx + 0xe], cl
cmp r11, 0xf
je 0x140003f0f
shr eax, 0x18
xor al, byte [r10 + 0xf]
mov byte [r12 + rbx + 0xf], al
add rbx, qword [rbp + 0xa0]
mov edi, 0x10
mov r8, qword [rbp - 0x20]
mov rax, qword [rbp - 0x38]
test rax, rax
jne 0x140003940
cmp r15, 0x10
jae 0x140003eb6
mov rcx, r15
jmp 0x14000387f
movzx eax, byte [r15 + r12 - 1]
xor ecx, ecx
mov rdx, r15
sub rdx, rax
cmovae rcx, rdx
jmp 0x14000387f
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov ecx, 4
mov edx, 4
call fcn.14002bcb4
jmp 0x140003f7b
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov rcx, qword [rbp - 0x20]
mov rdx, qword [rbp + 0xa8]
call fcn.14002bf80
jmp 0x140003f7b
mov ecx, 9
jmp 0x140003f6c
mov ecx, 0xa
jmp 0x140003f6c
mov ecx, 0xf
jmp 0x140003f6c
mov ecx, 1
jmp 0x140003f6c
mov ecx, 4
jmp 0x140003f6c
mov ecx, 5
jmp 0x140003f6c
mov ecx, 6
jmp 0x140003f6c
mov ecx, 0xc
jmp 0x140003f6c
mov ecx, 0xe
jmp 0x140003f6c
xor ecx, ecx
jmp 0x140003f6c
mov ecx, 2
jmp 0x140003f6c
mov ecx, 3
jmp 0x140003f6c
mov ecx, 7
jmp 0x140003f6c
mov ecx, 0xb
jmp 0x140003f6c
mov ecx, 0xd
jmp 0x140003f6c
mov ecx, 8
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov rdx, rcx
call fcn.14002bcb4
ud2
xor esi, esi
lea r8, str.C:UsersAdministrator.rustup_toolchains_nightly_x86_64_pc_windows_msvclib_rustlib_src_rustlibrary_alloc_src_slice.rsH
mov rcx, rsi
mov rdx, r15
call fcn.14002ba63
int3