Function at 0x140004620
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 rsi, qword [rbp + 0xa8]
test sil, 0xf
je 0x14000466c
mov qword [rcx], 0
mov qword [rcx + 8], 1
mov qword [rcx + 0x10], 0
jmp 0x140004ce0
mov r12, r9
mov rbx, r8
mov r15, rdx
test rsi, rsi
mov qword [rbp - 0x28], rcx
je 0x1400046a8
js 0x140004dc9
mov edx, 1
mov rcx, rsi
call fcn.140004270
mov rdi, rax
test rax, rax
jne 0x1400046ad
mov edx, 1
mov rcx, rsi
call fcn.140024160
ud2
mov edi, 1
mov rdx, qword [rbp + 0xa0]
mov rcx, rdi
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [r15 + 0xf4]
mov dword [rbp - 0x10], eax
mov eax, dword [r15 + 0xf8]
mov dword [rbp - 0xc], eax
mov eax, dword [r15 + 0xfc]
mov dword [rbp - 8], eax
mov eax, dword [r15 + 0x100]
mov dword [rbp - 4], eax
movzx eax, byte [r15 + 0x1e4]
shr al, 1
mov byte [rbp + 0x2f], al
add r15, 0x120
lea r14, [0x140027970]
xor eax, eax
xor ecx, ecx
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x30], r15
test al, 1
je 0x140004740
nop word cs:[rax + rax]
add rcx, 0xf
jb 0x140004cb0
cmp rcx, rsi
jae 0x140004cb0
lea rax, [rcx + 1]
jmp 0x140004753
cmp rcx, rsi
mov rax, rcx
adc rax, 0
cmp rcx, rsi
jae 0x140004cb0
lea rdx, [rcx + 0x10]
cmp rcx, 0xffffffffffffffef
ja 0x140004da3
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x58], r12
mov qword [rbp - 0x48], rbx
cmp rdx, rsi
ja 0x140004db1
lea rax, [rdi + rcx]
mov qword [rbp - 0x50], rax
mov esi, dword [rdi + rcx]
mov ebx, dword [rdi + rcx + 4]
bswap esi
xor esi, dword [rbp - 0x10]
bswap ebx
xor ebx, dword [rbp - 0xc]
mov edx, dword [rdi + rcx + 8]
bswap edx
xor edx, dword [rbp - 8]
mov qword [rbp - 0x38], rcx
mov eax, dword [rdi + rcx + 0xc]
bswap eax
xor eax, dword [rbp - 4]
mov ecx, 0x3c
mov r8, r15
movzx r9d, byte [rbp + 0x2f]
mov byte [rbp + 0x20], r9b
lea r15, [0x140028588]
nop dword [rax]
mov qword [rbp - 0x20], rcx
mov qword [rbp - 0x60], r8
movzx edi, dh
movzx ecx, dl
mov qword [rbp], rcx
mov r12d, edx
shr edx, 0x10
movzx edx, dl
mov r13d, eax
movzx ecx, ah
mov qword [rbp + 0x10], rcx
movzx ecx, al
mov qword [rbp + 8], rcx
shr eax, 0x18
lea r10, [0x140027d88]
mov ecx, dword [r10 + rdx*4]
xor ecx, dword [r14 + rax*4]
mov edx, esi
mov eax, esi
shr eax, 0x18
shr r13d, 0x10
movzx r13d, r13b
mov r8d, dword [r10 + r13*4]
xor r8d, dword [r14 + rax*4]
lea rax, [0x140028188]
xor r8d, dword [rax + rdi*4]
movzx r9d, bl
mov qword [rbp + 0x18], r9
mov r13d, ebx
mov r9d, ebx
movzx edi, bh
shr r13d, 0x18
mov ebx, esi
shr ebx, 0x10
movzx ebx, bl
movzx esi, dh
movzx r11d, dl
mov edx, dword [r10 + rbx*4]
xor edx, dword [r14 + r13*4]
mov rbx, qword [rbp + 0x10]
xor edx, dword [rax + rbx*4]
shr r12d, 0x18
shr r9d, 0x10
movzx r9d, r9b
mov ebx, dword [r10 + r9*4]
xor ebx, dword [r14 + r12*4]
xor ebx, dword [rax + rsi*4]
xor ecx, dword [rax + rdi*4]
mov rax, qword [rbp + 0x18]
xor r8d, dword [r15 + rax*4]
mov rax, qword [rbp]
xor edx, dword [r15 + rax*4]
mov rax, qword [rbp + 8]
xor ebx, dword [r15 + rax*4]
mov r13, qword [rbp - 0x60]
xor ecx, dword [r15 + r11*4]
xor r8d, dword [r13 - 0x1c]
mov r9, r8
xor edx, dword [r13 - 0x18]
xor ebx, dword [r13 - 0x14]
xor ecx, dword [r13 - 0x10]
movzx eax, byte [rbp + 0x20]
dec al
je 0x1400049b0
mov byte [rbp + 0x20], al
movzx eax, bh
mov qword [rbp], rax
movzx eax, bl
mov qword [rbp + 8], rax
mov r8d, ebx
shr ebx, 0x10
movzx eax, bl
mov r10d, ecx
movzx edi, ch
movzx r11d, cl
mov qword [rbp + 0x10], r11
shr ecx, 0x18
lea r11, [0x140027d88]
mov eax, dword [r11 + rax*4]
xor eax, dword [r14 + rcx*4]
movzx ecx, dl
mov qword [rbp + 0x18], rcx
mov esi, edx
shr esi, 0x18
mov rcx, r9
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [r11 + rbx*4]
xor ebx, dword [r14 + rsi*4]
mov esi, edx
movzx edx, dh
mov r11, rdx
lea r9, [0x140028188]
xor ebx, dword [r9 + rdi*4]
mov edi, ecx
shr r8d, 0x18
shr esi, 0x10
movzx edx, sil
movzx esi, ch
movzx r12d, cl
lea rcx, [0x140027d88]
mov edx, dword [rcx + rdx*4]
xor edx, dword [r14 + r8*4]
xor edx, dword [r9 + rsi*4]
xor eax, dword [r9 + r11*4]
mov rcx, qword [rbp]
mov esi, dword [r9 + rcx*4]
mov rcx, qword [rbp + 0x18]
xor esi, dword [r15 + rcx*4]
shr r10d, 0x10
movzx r10d, r10b
lea rcx, [0x140027d88]
xor esi, dword [rcx + r10*4]
shr edi, 0x18
xor esi, dword [r14 + rdi*4]
mov rcx, qword [rbp + 8]
xor ebx, dword [r15 + rcx*4]
mov rcx, qword [rbp + 0x10]
xor edx, dword [r15 + rcx*4]
xor eax, dword [r15 + r12*4]
xor esi, dword [r13 - 0xc]
xor ebx, dword [r13 - 8]
xor edx, dword [r13 - 4]
xor eax, dword [r13]
mov rcx, qword [rbp - 0x20]
add rcx, 0xfffffffffffffff8
lea r8, [r13 + 0x20]
cmp rcx, 4
ja 0x1400047c0
jmp 0x140004cf7
cmp qword [rbp - 0x20], 8
je 0x140004d12
mov rax, rcx
mov rdi, rdx
mov rcx, r9
mov r10d, eax
mov r12d, eax
mov esi, eax
mov rax, r9
mov edx, eax
mov r14d, eax
shr eax, 8
movzx eax, al
mov qword [rbp + 0x20], rax
mov r9d, ebx
mov eax, ebx
shr ebx, 0x10
movzx r11d, bl
mov rcx, rdi
mov edi, ecx
movzx ebx, dil
shr r9d, 8
movzx r9d, r9b
lea r8, [0x1400289a0]
movzx r9d, byte [r9 + r8]
movzx ebx, byte [rbx + r8]
shl ebx, 0x18
shl r9d, 0x10
or r9d, ebx
mov r15d, ecx
shr ecx, 8
movzx ebx, cl
shr r10d, 0x10
movzx ecx, r10b
movzx ecx, byte [rcx + r8]
shl ecx, 8
or ecx, r9d
mov r9, rdx
shr r9, 0x18
movzx r9d, byte [r9 + r8]
or ecx, r9d
bswap ecx
xor ecx, dword [r13 - 0xc]
bswap ecx
mov r9, qword [rbp - 0x50]
mov dword [r9], ecx
shr r14d, 0x10
movzx ecx, r14b
movzx r10d, byte [rcx + r8]
shr rdi, 0x18
movzx ecx, byte [rdi + r8]
shl r10d, 8
or r10d, ecx
movzx ecx, al
movzx ecx, byte [rcx + r8]
shl ecx, 0x18
or r10d, ecx
shr r12d, 8
movzx ecx, r12b
movzx ecx, byte [rcx + r8]
shl ecx, 0x10
or r10d, ecx
bswap r10d
xor r10d, dword [r13 - 8]
bswap r10d
mov dword [r9 + 4], r10d
shr r15d, 0x10
movzx ecx, r15b
movzx ecx, byte [rcx + r8]
shr rax, 0x18
movzx eax, byte [rax + r8]
shl ecx, 8
or ecx, eax
movzx eax, sil
movzx eax, byte [rax + r8]
shl eax, 0x18
or ecx, eax
mov rax, qword [rbp + 0x20]
movzx eax, byte [rax + r8]
shl eax, 0x10
or ecx, eax
bswap ecx
xor ecx, dword [r13 - 4]
bswap ecx
mov dword [r9 + 8], ecx
movzx eax, byte [r11 + r8]
mov r11, r9
shr rsi, 0x18
movzx r9d, byte [rsi + r8]
shl eax, 8
or eax, r9d
movzx edx, dl
movzx edx, byte [rdx + r8]
shl edx, 0x18
or eax, edx
movzx edx, byte [rbx + r8]
shl edx, 0x10
or eax, edx
bswap eax
xor eax, dword [r13]
bswap eax
mov dword [r11 + 0xc], eax
mov r9, qword [rbp - 0x58]
test r9, r9
je 0x140004d27
mov r8, qword [rbp - 0x48]
movzx edx, byte [r8]
xor byte [r11], dl
cmp r9, 1
je 0x140004d2b
movzx edx, byte [r8 + 1]
xor byte [r11 + 1], dl
cmp r9, 2
je 0x140004d32
movzx edx, byte [r8 + 2]
xor byte [r11 + 2], dl
cmp r9, 3
je 0x140004d39
movzx edx, byte [r8 + 3]
xor byte [r11 + 3], dl
cmp r9, 4
je 0x140004d40
movzx edx, byte [r8 + 4]
xor dl, r10b
mov byte [r11 + 4], dl
cmp r9, 5
je 0x140004d47
mov edx, r10d
shr edx, 8
xor dl, byte [r8 + 5]
mov byte [r11 + 5], dl
cmp r9, 6
je 0x140004d4e
mov edx, r10d
shr edx, 0x10
xor dl, byte [r8 + 6]
mov byte [r11 + 6], dl
cmp r9, 7
je 0x140004d55
shr r10d, 0x18
xor r10b, byte [r8 + 7]
mov byte [r11 + 7], r10b
cmp r9, 8
je 0x140004d5c
movzx edx, byte [r8 + 8]
xor dl, cl
mov byte [r11 + 8], dl
cmp r9, 9
je 0x140004d63
mov edx, ecx
shr edx, 8
xor dl, byte [r8 + 9]
mov byte [r11 + 9], dl
cmp r9, 0xa
je 0x140004d6a
mov edx, ecx
shr edx, 0x10
xor dl, byte [r8 + 0xa]
mov byte [r11 + 0xa], dl
cmp r9, 0xb
je 0x140004d71
shr ecx, 0x18
xor cl, byte [r8 + 0xb]
mov byte [r11 + 0xb], cl
cmp r9, 0xc
je 0x140004d78
movzx ecx, byte [r8 + 0xc]
xor cl, al
mov byte [r11 + 0xc], cl
cmp r9, 0xd
je 0x140004d7f
mov ecx, eax
shr ecx, 8
xor cl, byte [r8 + 0xd]
mov byte [r11 + 0xd], cl
cmp r9, 0xe
je 0x140004d86
mov ecx, eax
shr ecx, 0x10
xor cl, byte [r8 + 0xe]
mov byte [r11 + 0xe], cl
cmp r9, 0xf
je 0x140004d8d
shr eax, 0x18
xor al, byte [r8 + 0xf]
mov byte [r11 + 0xf], al
mov rbx, qword [rbp - 0x38]
add rbx, qword [rbp + 0xa0]
mov r12d, 0x10
mov al, 1
mov rcx, qword [rbp - 0x40]
mov rsi, qword [rbp + 0xa8]
mov rdi, qword [rbp - 0x18]
mov r15, qword [rbp - 0x30]
lea r14, [0x140027970]
test al, 1
je 0x140004740
jmp 0x140004720
mov rax, rsi
cmp rsi, 0x10
jb 0x140004cd1
movzx ecx, byte [rsi + rdi - 1]
xor eax, eax
mov rdx, rsi
sub rdx, rcx
cmovae rax, rdx
cmp rax, rsi
cmovae rax, rsi
mov rcx, qword [rbp - 0x28]
mov qword [rcx], rsi
mov qword [rcx + 8], rdi
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
lea r8, str.C:Usersmikulas.hrdlicka.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov ecx, 4
mov edx, 4
call fcn.140024330
jmp 0x140004dc7
lea r8, str.C:Usersmikulas.hrdlicka.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
xor ecx, ecx
xor edx, edx
call fcn.140024330
jmp 0x140004dc7
xor ecx, ecx
jmp 0x140004d92
mov ecx, 1
jmp 0x140004d92
mov ecx, 2
jmp 0x140004d92
mov ecx, 3
jmp 0x140004d92
mov ecx, 4
jmp 0x140004d92
mov ecx, 5
jmp 0x140004d92
mov ecx, 6
jmp 0x140004d92
mov ecx, 7
jmp 0x140004d92
mov ecx, 8
jmp 0x140004d92
mov ecx, 9
jmp 0x140004d92
mov ecx, 0xa
jmp 0x140004d92
mov ecx, 0xb
jmp 0x140004d92
mov ecx, 0xc
jmp 0x140004d92
mov ecx, 0xd
jmp 0x140004d92
mov ecx, 0xe
jmp 0x140004d92
mov ecx, 0xf
lea r8, str.C:Usersmikulas.hrdlicka.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov rdx, rcx
call fcn.140024330
jmp 0x140004dc7
lea r8, str.C:Usersmikulas.hrdlicka.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
call fcn.140024680
jmp 0x140004dc7
lea r8, str.C:Usersmikulas.hrdlicka.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov rcx, rdx
mov rdx, qword [rbp + 0xa8]
call fcn.140024670
ud2
call fcn.14001bc10
ud2