Function at 0x140001330
Capabilities:
Encrypt data using aes
Inspect section memory permissions
Reference aes constants

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0x40
mov r8, rcx
mov dword [rsp], 0x1000000
movzx ecx, byte [rcx]
lea r10, [rdx + 4]
shl ecx, 8
lea rbp, str.cw
mov dword [rax - 0x44], 0x2000000
mov ebx, 5
mov dword [rax - 0x40], 0x4000000
mov dword [rax - 0x3c], 0x8000000
mov dword [rax - 0x38], 0x10000000
mov dword [rax - 0x34], 0x20000000
mov dword [rax - 0x30], 0x40000000
mov dword [rax - 0x2c], 0x80000000
mov dword [rax - 0x28], 0x1b000000
mov dword [rax - 0x24], 0x36000000
mov dword [rax - 0x20], 0x6c000000
mov dword [rax - 0x1c], 0xd8000000
mov dword [rax - 0x18], 0xab000000
mov dword [rax - 0x14], 0x4d000000
mov dword [rax - 0x10], 0x9a000000
movzx eax, byte [r8 + 1]
or ecx, eax
movzx eax, byte [r8 + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 3]
shl ecx, 8
or ecx, eax
mov dword [rdx], ecx
movzx eax, byte [r8 + 5]
movzx ecx, byte [r8 + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 6]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 7]
shl ecx, 8
or ecx, eax
mov dword [r10], ecx
movzx eax, byte [r8 + 9]
movzx ecx, byte [r8 + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0xb]
shl ecx, 8
or ecx, eax
mov dword [rdx + 8], ecx
movzx eax, byte [r8 + 0xd]
movzx ecx, byte [r8 + 0xc]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0xe]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0xf]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0xc], ecx
nop word [rax + rax]
mov r11d, dword [r10 + 8]
lea eax, [rbx - 1]
cdq
mov r9d, r11d
and edx, 3
add eax, edx
mov edi, eax
and eax, 3
sar edi, 2
cmp eax, edx
jne 0x14000150b
ror r9d, 0x18
mov edx, r9d
mov ecx, r9d
shr rcx, 0x14
and ecx, 0xf
mov eax, r9d
shr rax, 0x10
and eax, 0xf
shl rcx, 4
add rcx, rax
mov eax, edx
shr rax, 8
and eax, 0xf
movzx r9d, byte [rcx + rbp]
mov ecx, edx
shr rcx, 0xc
and ecx, 0xf
shl r9d, 0x10
shl rcx, 4
add rcx, rax
movzx eax, byte [rcx + rbp]
mov ecx, edx
shl eax, 8
add r9d, eax
shr rcx, 4
and ecx, 0xf
mov eax, edx
and eax, 0xf
shl rcx, 4
add rcx, rax
shr rdx, 0x18
movzx eax, byte [rcx + rbp]
add r9d, eax
movzx eax, byte [rdx + rbp]
shl eax, 0x18
add r9d, eax
lea eax, [rbx - 2]
test eax, eax
jns 0x140001502
add eax, 3
sar eax, 2
cdqe
xor r9d, dword [rsp + rax*4]
xor r9d, dword [r10 - 4]
mov eax, ebx
cdq
mov dword [r10 + 0xc], r9d
and edx, 3
mov ecx, r9d
add eax, edx
mov esi, eax
and eax, 3
sar esi, 2
cmp eax, edx
jne 0x1400015a4
ror ecx, 0x18
mov r8d, ecx
shr rcx, 0x14
mov eax, r8d
shr rax, 0x10
and ecx, 0xf
and eax, 0xf
shl rcx, 4
add rcx, rax
mov edx, r8d
shr rdx, 0xc
mov eax, r8d
shr rax, 8
and edx, 0xf
and eax, 0xf
shl rdx, 4
movzx ecx, byte [rcx + rbp]
add rdx, rax
shl ecx, 0x10
movzx eax, byte [rdx + rbp]
mov edx, r8d
shl eax, 8
add ecx, eax
shr rdx, 4
mov eax, r8d
and edx, 0xf
and eax, 0xf
shl rdx, 4
add rdx, rax
shr r8, 0x18
movzx eax, byte [rdx + rbp]
add ecx, eax
movzx eax, byte [r8 + rbp]
shl eax, 0x18
add ecx, eax
movsxd rax, edi
xor ecx, dword [rsp + rax*4]
xor ecx, dword [r10]
lea eax, [rbx + 1]
cdq
mov dword [r10 + 0x10], ecx
and edx, 3
add eax, edx
mov edi, eax
and eax, 3
sar edi, 2
cmp eax, edx
jne 0x14000163a
ror ecx, 0x18
mov r8d, ecx
shr rcx, 0x14
mov eax, r8d
shr rax, 0x10
and ecx, 0xf
and eax, 0xf
shl rcx, 4
add rcx, rax
mov edx, r8d
shr rdx, 0xc
mov eax, r8d
shr rax, 8
and edx, 0xf
and eax, 0xf
shl rdx, 4
movzx ecx, byte [rcx + rbp]
add rdx, rax
shl ecx, 0x10
movzx eax, byte [rdx + rbp]
mov edx, r8d
shl eax, 8
add ecx, eax
shr rdx, 4
mov eax, r8d
and edx, 0xf
and eax, 0xf
shl rdx, 4
add rdx, rax
shr r8, 0x18
movzx eax, byte [rdx + rbp]
add ecx, eax
movzx eax, byte [r8 + rbp]
shl eax, 0x18
add ecx, eax
movsxd rax, esi
xor ecx, dword [rsp + rax*4]
xor ecx, dword [r10 + 4]
lea eax, [rbx + 2]
cdq
mov dword [r10 + 0x14], ecx
and edx, 3
add eax, edx
mov esi, eax
and eax, 3
sar esi, 2
cmp eax, edx
jne 0x1400016d1
ror ecx, 0x18
mov r8d, ecx
shr rcx, 0x14
mov eax, r8d
shr rax, 0x10
and ecx, 0xf
and eax, 0xf
shl rcx, 4
add rcx, rax
mov edx, r8d
shr rdx, 0xc
mov eax, r8d
shr rax, 8
and edx, 0xf
and eax, 0xf
shl rdx, 4
movzx ecx, byte [rcx + rbp]
add rdx, rax
shl ecx, 0x10
movzx eax, byte [rdx + rbp]
mov edx, r8d
shl eax, 8
add ecx, eax
shr rdx, 4
mov eax, r8d
and edx, 0xf
and eax, 0xf
shl rdx, 4
add rdx, rax
shr r8, 0x18
movzx eax, byte [rdx + rbp]
add ecx, eax
movzx eax, byte [r8 + rbp]
shl eax, 0x18
add ecx, eax
movsxd rax, edi
xor ecx, dword [rsp + rax*4]
xor r11d, ecx
lea eax, [rbx + 3]
mov dword [r10 + 0x18], r11d
and eax, 0x80000003
jge 0x1400016e9
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
jne 0x14000176c
ror r11d, 0x18
mov edx, r11d
mov ecx, r11d
shr rcx, 0x14
and ecx, 0xf
mov eax, r11d
shr rax, 0x10
and eax, 0xf
shl rcx, 4
add rcx, rax
mov eax, edx
shr rax, 8
and eax, 0xf
movzx r11d, byte [rcx + rbp]
mov ecx, edx
shr rcx, 0xc
and ecx, 0xf
shl r11d, 0x10
shl rcx, 4
add rcx, rax
movzx eax, byte [rcx + rbp]
mov ecx, edx
shl eax, 8
add r11d, eax
shr rcx, 4
mov eax, edx
and ecx, 0xf
and eax, 0xf
shl rcx, 4
add rcx, rax
shr rdx, 0x18
movzx eax, byte [rcx + rbp]
add r11d, eax
movzx eax, byte [rdx + rbp]
shl eax, 0x18
add r11d, eax
movsxd rax, esi
xor r11d, dword [rsp + rax*4]
xor r9d, r11d
add ebx, 5
mov dword [r10 + 0x1c], r9d
add r10, 0x14
cmp ebx, 0x2c
jle 0x140001460
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x40
pop r14
ret