Function at 0x140003850
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 r15, qword [rbp + 0xa8]
test r15b, 0xf
je 0x1400038ad
mov r12d, 1
xor r15d, r15d
xor eax, eax
mov qword [rcx], r15
mov qword [rcx + 8], r12
mov qword [rcx + 0x10], rax
mov rax, rcx
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rsi, rcx
test r15, r15
je 0x1400038e6
js 0x140003fbe
mov rdi, r9
mov rbx, r8
mov r14, rdx
movzx eax, byte [0x14039b191]
mov edx, 1
mov rcx, r15
call fcn.140003640
test rax, rax
je 0x140003fc3
mov r12, rax
jmp 0x1400038f5
mov rdi, r9
mov rbx, r8
mov r14, rdx
mov r12d, 1
mov rdx, qword [rbp + 0xa0]
mov rcx, r12
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
test r15, r15
je 0x140003ed2
movzx eax, byte [r14 + 0x1e4]
shr al, 1
mov byte [rbp + 0x2e], al
mov eax, dword [r14 + 0xf4]
mov dword [rbp - 8], eax
mov eax, dword [r14 + 0xf8]
mov dword [rbp - 4], eax
mov eax, dword [r14 + 0xfc]
mov dword [rbp], eax
mov eax, dword [r14 + 0x100]
mov dword [rbp + 4], eax
mov rax, r15
shr rax, 4
add r14, 0x120
mov qword [rbp - 0x28], r14
xor r8d, r8d
mov qword [rbp - 0x10], rsi
mov r14, rbx
mov qword [rbp - 0x18], r12
nop word cs:[rax + rax]
cmp r8, 0xfffffffffffffff0
je 0x140003f8e
mov qword [rbp - 0x48], rdi
mov qword [rbp - 0x38], r14
lea rcx, [r8 + 0x10]
mov qword [rbp - 0x20], rcx
cmp rcx, r15
ja 0x140003fa5
dec rax
mov qword [rbp - 0x30], rax
mov edx, dword [r12 + r8]
mov ebx, dword [r12 + r8 + 4]
bswap edx
xor edx, dword [rbp - 8]
bswap ebx
xor ebx, dword [rbp - 4]
mov ecx, dword [r12 + r8 + 8]
bswap ecx
xor ecx, dword [rbp]
mov qword [rbp - 0x40], r8
mov eax, dword [r12 + r8 + 0xc]
bswap eax
xor eax, dword [rbp + 4]
mov r9d, 0x3c
mov r8, qword [rbp - 0x28]
mov qword [rbp + 0x20], r8
movzx r8d, byte [rbp + 0x2e]
mov byte [rbp + 0x2f], r8b
lea r13, [0x14038d0a0]
lea r12, [0x14038d4b8]
nop word [rax + rax]
mov qword [rbp - 0x58], r9
mov r11d, eax
movzx edi, ch
movzx esi, ah
mov qword [rbp + 0x10], rsi
movzx r8d, cl
mov qword [rbp + 8], r8
mov esi, ecx
movzx r8d, al
mov qword [rbp + 0x18], r8
shr eax, 0x18
shr ecx, 0xe
and ecx, 0x3fc
mov ecx, dword [rcx + r12]
xor ecx, dword [r13 + rax*4]
mov eax, edx
shr eax, 0x18
shr r11d, 0xe
and r11d, 0x3fc
mov r15d, dword [r11 + r12]
xor r15d, dword [r13 + rax*4]
lea r9, [0x14038d8b8]
xor r15d, dword [r9 + rdi*4]
movzx r14d, bl
mov eax, ebx
mov r8d, ebx
movzx edi, bh
mov r11, rdi
shr eax, 0x18
mov ebx, edx
shr ebx, 0xe
and ebx, 0x3fc
movzx edi, dh
movzx r10d, dl
mov edx, dword [rbx + r12]
xor edx, dword [r13 + rax*4]
mov rax, qword [rbp + 0x10]
xor edx, dword [r9 + rax*4]
shr esi, 0x18
shr r8d, 0xe
and r8d, 0x3fc
mov ebx, dword [r8 + r12]
xor ebx, dword [r13 + rsi*4]
xor ebx, dword [r9 + rdi*4]
xor ecx, dword [r9 + r11*4]
lea r8, [0x14038dcb8]
xor r15d, dword [r8 + r14*4]
mov rax, qword [rbp + 8]
xor edx, dword [r8 + rax*4]
mov rax, qword [rbp + 0x18]
xor ebx, dword [r8 + rax*4]
xor ecx, dword [r8 + r10*4]
mov rax, qword [rbp + 0x20]
xor r15d, dword [rax - 0x1c]
xor edx, dword [rax - 0x18]
xor ebx, dword [rax - 0x14]
xor ecx, dword [rax - 0x10]
movzx eax, byte [rbp + 0x2f]
dec al
je 0x140003bf0
mov byte [rbp + 0x2f], al
movzx esi, ch
movzx eax, bl
mov qword [rbp + 8], rax
mov r14d, ecx
movzx eax, bh
mov qword [rbp + 0x10], rax
mov r10, r8
mov r11d, ebx
movzx eax, cl
mov qword [rbp + 0x18], rax
shr ecx, 0x18
shr ebx, 0xe
and ebx, 0x3fc
mov eax, dword [rbx + r12]
xor eax, dword [r13 + rcx*4]
mov ecx, edx
shr ecx, 0x18
mov r8d, r15d
shr r8d, 0xe
and r8d, 0x3fc
mov ebx, dword [r8 + r12]
xor ebx, dword [r13 + rcx*4]
movzx ecx, dl
mov qword [rbp - 0x50], rcx
mov ecx, edx
movzx edi, dh
lea r8, [0x14038d8b8]
xor ebx, dword [r8 + rsi*4]
mov edx, r15d
mov r9d, r15d
shr r9d, 0x18
shr r14d, 0xe
and r14d, 0x3fc
movzx esi, dh
movzx r15d, dl
mov edx, dword [r14 + r12]
xor edx, dword [r13 + r9*4]
mov r9, qword [rbp + 0x10]
xor edx, dword [r8 + r9*4]
shr r11d, 0x18
shr ecx, 0xe
and ecx, 0x3fc
mov ecx, dword [rcx + r12]
xor ecx, dword [r13 + r11*4]
xor ecx, dword [r8 + rsi*4]
xor eax, dword [r8 + rdi*4]
mov r8, qword [rbp + 8]
xor ebx, dword [r10 + r8*4]
mov r8, qword [rbp - 0x50]
xor edx, dword [r10 + r8*4]
mov r8, qword [rbp + 0x18]
xor ecx, dword [r10 + r8*4]
xor eax, dword [r10 + r15*4]
mov r8, qword [rbp + 0x20]
xor ebx, dword [r8 - 8]
xor edx, dword [r8 - 0xc]
xor ecx, dword [r8 - 4]
xor eax, dword [r8]
lea r10, [r8 + 0x20]
mov r9, qword [rbp - 0x58]
add r9, 0xfffffffffffffff8
mov qword [rbp + 0x20], r10
cmp r9, 4
ja 0x1400039f0
jmp 0x140003ef7
movzx eax, dl
movzx esi, bh
lea rdi, [0x14038e130]
movzx r8d, byte [rsi + rdi]
mov r9d, ecx
shr r9d, 0x10
movzx r9d, r9b
movzx r9d, byte [r9 + rdi]
movzx eax, byte [rax + rdi]
shl eax, 0x18
shl r8d, 0x10
or r8d, eax
mov r10d, r15d
mov eax, r15d
shr eax, 0x18
movzx eax, byte [rax + rdi]
shl r9d, 8
or r9d, r8d
or r9d, eax
mov r15, qword [rbp + 0x20]
mov eax, dword [r15 - 0xc]
bswap eax
xor eax, r9d
mov r12, qword [rbp - 0x18]
mov r14, qword [rbp - 0x40]
mov dword [r12 + r14], eax
mov eax, edx
shr eax, 0x18
movzx eax, byte [rax + rdi]
mov r8d, r10d
shr r8d, 0x10
movzx r8d, r8b
movzx r8d, byte [r8 + rdi]
movzx r9d, bl
movzx r9d, byte [r9 + rdi]
shl r9d, 0x18
shl r8d, 8
or r8d, eax
movzx eax, ch
movzx eax, byte [rax + rdi]
shl eax, 0x10
or r8d, r9d
or r8d, eax
mov r13d, dword [r15 - 8]
bswap r13d
xor r13d, r8d
mov dword [r12 + r14 + 4], r13d
mov r8d, edx
shr r8d, 0x10
movzx r8d, r8b
movzx r9d, byte [r8 + rdi]
mov r8d, ebx
shr r8d, 0x18
movzx r8d, byte [r8 + rdi]
shl r9d, 8
or r9d, r8d
movzx r8d, cl
movzx r8d, byte [r8 + rdi]
shl r8d, 0x18
or r9d, r8d
mov eax, r10d
movzx esi, ah
movzx r8d, byte [rsi + rdi]
shl r8d, 0x10
or r9d, r8d
mov r8d, dword [r15 - 4]
bswap r8d
xor r8d, r9d
mov dword [r12 + r14 + 8], r8d
shr ecx, 0x18
movzx r9d, byte [rcx + rdi]
shr ebx, 0x10
movzx r11d, bl
movzx esi, r10b
movzx ecx, dh
movzx edx, byte [r11 + rdi]
shl edx, 8
or edx, r9d
movzx r9d, byte [rsi + rdi]
shl r9d, 0x18
or edx, r9d
movzx ecx, byte [rcx + rdi]
shl ecx, 0x10
or edx, ecx
mov ecx, dword [r15]
bswap ecx
xor ecx, edx
mov dword [r12 + r14 + 0xc], ecx
mov r11, qword [rbp - 0x48]
test r11, r11
je 0x140003f12
mov r9, qword [rbp - 0x38]
movzx edx, byte [r9]
xor byte [r12 + r14], dl
cmp r11, 1
je 0x140003f16
movzx edx, byte [r9 + 1]
xor byte [r12 + r14 + 1], dl
cmp r11, 2
je 0x140003f1d
movzx edx, byte [r9 + 2]
xor byte [r12 + r14 + 2], dl
cmp r11, 3
je 0x140003f24
movzx edx, byte [r9 + 3]
xor byte [r12 + r14 + 3], dl
cmp r11, 4
je 0x140003f2b
movzx edx, byte [r9 + 4]
xor dl, r13b
mov byte [r12 + r14 + 4], dl
cmp r11, 5
je 0x140003f32
mov edx, r13d
shr edx, 8
xor dl, byte [r9 + 5]
mov byte [r12 + r14 + 5], dl
cmp r11, 6
je 0x140003f39
mov edx, r13d
shr edx, 0x10
xor dl, byte [r9 + 6]
mov byte [r12 + r14 + 6], dl
cmp r11, 7
je 0x140003f40
shr r13d, 0x18
xor r13b, byte [r9 + 7]
mov byte [r12 + r14 + 7], r13b
cmp r11, 8
je 0x140003f47
movzx eax, byte [r9 + 8]
xor al, r8b
mov byte [r12 + r14 + 8], al
cmp r11, 9
je 0x140003f4e
mov eax, r8d
shr eax, 8
xor al, byte [r9 + 9]
mov byte [r12 + r14 + 9], al
cmp r11, 0xa
je 0x140003f55
mov eax, r8d
shr eax, 0x10
xor al, byte [r9 + 0xa]
mov byte [r12 + r14 + 0xa], al
cmp r11, 0xb
je 0x140003f5c
shr r8d, 0x18
xor r8b, byte [r9 + 0xb]
mov byte [r12 + r14 + 0xb], r8b
cmp r11, 0xc
je 0x140003f63
movzx eax, byte [r9 + 0xc]
xor al, cl
mov byte [r12 + r14 + 0xc], al
cmp r11, 0xd
je 0x140003f6a
mov eax, ecx
shr eax, 8
xor al, byte [r9 + 0xd]
mov byte [r12 + r14 + 0xd], al
cmp r11, 0xe
je 0x140003f71
mov eax, ecx
shr eax, 0x10
xor al, byte [r9 + 0xe]
mov byte [r12 + r14 + 0xe], al
cmp r11, 0xf
je 0x140003f78
shr ecx, 0x18
xor cl, byte [r9 + 0xf]
mov byte [r12 + r14 + 0xf], cl
add r14, qword [rbp + 0xa0]
mov edi, 0x10
mov r8, qword [rbp - 0x20]
mov rax, qword [rbp - 0x30]
test rax, rax
mov r15, qword [rbp + 0xa8]
jne 0x140003970
cmp r15, 0x10
jae 0x140003edc
mov rax, r15
jmp 0x140003eee
xor eax, eax
mov rcx, rsi
jmp 0x14000388b
movzx ecx, byte [r15 + r12 - 1]
xor eax, eax
mov rdx, r15
sub rdx, rcx
cmovae rax, rdx
mov rcx, qword [rbp - 0x10]
jmp 0x14000388b
lea r8, str.C:Users_rdp.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov ecx, 4
mov edx, 4
call fcn.14001eee0
jmp 0x140003fbc
xor ecx, ecx
jmp 0x140003f7d
mov ecx, 1
jmp 0x140003f7d
mov ecx, 2
jmp 0x140003f7d
mov ecx, 3
jmp 0x140003f7d
mov ecx, 4
jmp 0x140003f7d
mov ecx, 5
jmp 0x140003f7d
mov ecx, 6
jmp 0x140003f7d
mov ecx, 7
jmp 0x140003f7d
mov ecx, 8
jmp 0x140003f7d
mov ecx, 9
jmp 0x140003f7d
mov ecx, 0xa
jmp 0x140003f7d
mov ecx, 0xb
jmp 0x140003f7d
mov ecx, 0xc
jmp 0x140003f7d
mov ecx, 0xd
jmp 0x140003f7d
mov ecx, 0xe
jmp 0x140003f7d
mov ecx, 0xf
lea r8, str.C:Users_rdp.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov rdx, rcx
call fcn.14001eee0
jmp 0x140003fbc
lea r8, str.C:Users_rdp.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov rcx, 0xfffffffffffffff0
xor edx, edx
call fcn.14001f230
jmp 0x140003fbc
lea r8, str.C:Users_rdp.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov rcx, qword [rbp - 0x20]
mov rdx, qword [rbp + 0xa8]
call fcn.14001f220
ud2
call fcn.140016ed0
mov ecx, 1
mov rdx, r15
call fcn.14001ecb0
int3