Function at 0x140002440
Capabilities:
Encrypt data using aes

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x48
mov dword [rsp + 0x28], 0
cmp qword [rsp + 0x50], 0
je 0x14000246a
cmp qword [rsp + 0x60], 0
jne 0x140002474
mov eax, 0xffffffff
jmp 0x140002f1c
cmp dword [rsp + 0x58], 0x80
je 0x14000249c
cmp dword [rsp + 0x58], 0xc0
je 0x14000249c
cmp dword [rsp + 0x58], 0x100
je 0x14000249c
mov eax, 0xfffffffe
jmp 0x140002f1c
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x30], rax
cmp dword [rsp + 0x58], 0x80
jne 0x1400024c1
mov rax, qword [rsp + 0x60]
mov dword [rax + 0xf0], 0xa
jmp 0x1400024eb
cmp dword [rsp + 0x58], 0xc0
jne 0x1400024dc
mov rax, qword [rsp + 0x60]
mov dword [rax + 0xf0], SafeArrayLock
jmp 0x1400024eb
mov rax, qword [rsp + 0x60]
mov dword [rax + 0xf0], SafeArrayLock
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x50]
movzx eax, byte [rcx + rax]
shl eax, 0x18
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx]
shl ecx, 0x10
xor eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx]
shl ecx, 8
xor eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x50]
movzx eax, byte [rcx + rax + 4]
shl eax, 0x18
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 4]
shl ecx, 0x10
xor eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 4]
shl ecx, 8
xor eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 4]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x50]
movzx eax, byte [rcx + rax + 8]
shl eax, 0x18
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 8]
shl ecx, 0x10
xor eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 8]
shl ecx, 8
xor eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 8]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x50]
movzx eax, byte [rcx + rax + 0xc]
shl eax, 0x18
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0xc]
shl ecx, 0x10
xor eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0xc]
shl ecx, 8
xor eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0xc]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
cmp dword [rsp + 0x58], 0x80
jne 0x14000283e
xor eax, eax
cmp eax, 1
je 0x14000283e
mov eax, 4
imul rax, rax, 3
mov rcx, qword [rsp + 0x30]
mov eax, dword [rcx + rax]
mov dword [rsp + 0x24], eax
mov eax, 4
imul rax, rax, 0
mov ecx, dword [rsp + 0x24]
shr ecx, 0x10
and ecx, 0xff
mov ecx, ecx
lea rdx, str.ccccwwww
mov ecx, dword [rdx + rcx*4]
and ecx, 0xff000000
mov rdx, qword [rsp + 0x30]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, dword [rsp + 0x24]
shr ecx, 8
and ecx, 0xff
mov ecx, ecx
lea rdx, str.ccccwwww
mov ecx, dword [rdx + rcx*4]
and ecx, 0xff0000
xor eax, ecx
mov ecx, dword [rsp + 0x24]
and ecx, 0xff
mov ecx, ecx
lea rdx, str.ccccwwww
mov ecx, dword [rdx + rcx*4]
and ecx, 0xff00
xor eax, ecx
mov ecx, dword [rsp + 0x24]
shr ecx, 0x18
mov ecx, ecx
lea rdx, str.ccccwwww
mov ecx, dword [rdx + rcx*4]
and ecx, 0xff
xor eax, ecx
movsxd rcx, dword [rsp + 0x28]
lea rdx, [0x1401d0ef0]
xor eax, dword [rdx + rcx*4]
mov ecx, 4
imul rcx, rcx, 4
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 1
mov ecx, 4
imul rcx, rcx, 4
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x30]
mov ecx, dword [r8 + rcx]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 5
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 2
mov ecx, 4
imul rcx, rcx, 5
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x30]
mov ecx, dword [r8 + rcx]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 6
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 3
mov ecx, 4
imul rcx, rcx, 6
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x30]
mov ecx, dword [r8 + rcx]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 7
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
cmp dword [rsp + 0x28], 0xa
jne 0x14000282b
xor eax, eax
jmp 0x140002f1c
mov rax, qword [rsp + 0x30]
add rax, 0x10
mov qword [rsp + 0x30], rax
jmp 0x1400026a5
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x50]
movzx eax, byte [rcx + rax + 0x10]
shl eax, 0x18
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x10]
shl ecx, 0x10
xor eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x10]
shl ecx, 8
xor eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x10]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 4
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x50]
movzx eax, byte [rcx + rax + 0x14]
shl eax, 0x18
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x14]
shl ecx, 0x10
xor eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x14]
shl ecx, 8
xor eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x14]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 5
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
cmp dword [rsp + 0x58], 0xc0
jne 0x140002b29
xor eax, eax
cmp eax, 1
je 0x140002b29
mov eax, 4
imul rax, rax, 5
mov rcx, qword [rsp + 0x30]
mov eax, dword [rcx + rax]
mov dword [rsp + 0x24], eax
mov eax, 4
imul rax, rax, 0
mov ecx, dword [rsp + 0x24]
shr ecx, 0x10
and ecx, 0xff
mov ecx, ecx
lea rdx, str.ccccwwww
mov ecx, dword [rdx + rcx*4]
and ecx, 0xff000000
mov rdx, qword [rsp + 0x30]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, dword [rsp + 0x24]
shr ecx, 8
and ecx, 0xff
mov ecx, ecx
lea rdx, str.ccccwwww
mov ecx, dword [rdx + rcx*4]
and ecx, 0xff0000
xor eax, ecx
mov ecx, dword [rsp + 0x24]
and ecx, 0xff
mov ecx, ecx
lea rdx, str.ccccwwww
mov ecx, dword [rdx + rcx*4]
and ecx, 0xff00
xor eax, ecx
mov ecx, dword [rsp + 0x24]
shr ecx, 0x18
mov ecx, ecx
lea rdx, str.ccccwwww
mov ecx, dword [rdx + rcx*4]
and ecx, 0xff
xor eax, ecx
movsxd rcx, dword [rsp + 0x28]
lea rdx, [0x1401d0ef0]
xor eax, dword [rdx + rcx*4]
mov ecx, 4
imul rcx, rcx, 6
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 1
mov ecx, 4
imul rcx, rcx, 6
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x30]
mov ecx, dword [r8 + rcx]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 7
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 2
mov ecx, 4
imul rcx, rcx, 7
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x30]
mov ecx, dword [r8 + rcx]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 8
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 3
mov ecx, 4
imul rcx, rcx, 8
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x30]
mov ecx, dword [r8 + rcx]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 9
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
cmp dword [rsp + 0x28], 8
jne 0x140002aaa
xor eax, eax
jmp 0x140002f1c
mov eax, 4
imul rax, rax, 4
mov ecx, 4
imul rcx, rcx, 9
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x30]
mov ecx, dword [r8 + rcx]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 0xa
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 5
mov ecx, 4
imul rcx, rcx, 0xa
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x30]
mov ecx, dword [r8 + rcx]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 0xb
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov rax, qword [rsp + 0x30]
add rax, 0x18
mov qword [rsp + 0x30], rax
jmp 0x140002924
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x50]
movzx eax, byte [rcx + rax + 0x18]
shl eax, 0x18
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x18]
shl ecx, 0x10
xor eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x18]
shl ecx, 8
xor eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x18]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 6
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x50]
movzx eax, byte [rcx + rax + 0x1c]
shl eax, 0x18
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x1c]
shl ecx, 0x10
xor eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x1c]
shl ecx, 8
xor eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x1c]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 7
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
cmp dword [rsp + 0x58], 0x100
jne 0x140002f1a
xor eax, eax
cmp eax, 1
je 0x140002f1a
mov eax, 4
imul rax, rax, 7
mov rcx, qword [rsp + 0x30]
mov eax, dword [rcx + rax]
mov dword [rsp + 0x24], eax
mov eax, 4
imul rax, rax, 0
mov ecx, dword [rsp + 0x24]
shr ecx, 0x10
and ecx, 0xff
mov ecx, ecx
lea rdx, str.ccccwwww
mov ecx, dword [rdx + rcx*4]
and ecx, 0xff000000
mov rdx, qword [rsp + 0x30]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, dword [rsp + 0x24]
shr ecx, 8
and ecx, 0xff
mov ecx, ecx
lea rdx, str.ccccwwww
mov ecx, dword [rdx + rcx*4]
and ecx, 0xff0000
xor eax, ecx
mov ecx, dword [rsp + 0x24]
and ecx, 0xff
mov ecx, ecx
lea rdx, str.ccccwwww
mov ecx, dword [rdx + rcx*4]
and ecx, 0xff00
xor eax, ecx
mov ecx, dword [rsp + 0x24]
shr ecx, 0x18
mov ecx, ecx
lea rdx, str.ccccwwww
mov ecx, dword [rdx + rcx*4]
and ecx, 0xff
xor eax, ecx
movsxd rcx, dword [rsp + 0x28]
lea rdx, [0x1401d0ef0]
xor eax, dword [rdx + rcx*4]
mov ecx, 4
imul rcx, rcx, 8
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 1
mov ecx, 4
imul rcx, rcx, 8
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x30]
mov ecx, dword [r8 + rcx]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 9
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 2
mov ecx, 4
imul rcx, rcx, 9
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x30]
mov ecx, dword [r8 + rcx]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 0xa
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 3
mov ecx, 4
imul rcx, rcx, 0xa
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x30]
mov ecx, dword [r8 + rcx]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 0xb
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
cmp dword [rsp + 0x28], 7
jne 0x140002d95
xor eax, eax
jmp 0x140002f1c
mov eax, 4
imul rax, rax, 0xb
mov rcx, qword [rsp + 0x30]
mov eax, dword [rcx + rax]
mov dword [rsp + 0x24], eax
mov eax, 4
imul rax, rax, 4
mov ecx, dword [rsp + 0x24]
shr ecx, 0x18
mov ecx, ecx
lea rdx, str.ccccwwww
mov ecx, dword [rdx + rcx*4]
and ecx, 0xff000000
mov rdx, qword [rsp + 0x30]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, dword [rsp + 0x24]
shr ecx, 0x10
and ecx, 0xff
mov ecx, ecx
lea rdx, str.ccccwwww
mov ecx, dword [rdx + rcx*4]
and ecx, 0xff0000
xor eax, ecx
mov ecx, dword [rsp + 0x24]
shr ecx, 8
and ecx, 0xff
mov ecx, ecx
lea rdx, str.ccccwwww
mov ecx, dword [rdx + rcx*4]
and ecx, 0xff00
xor eax, ecx
mov ecx, dword [rsp + 0x24]
and ecx, 0xff
mov ecx, ecx
lea rdx, str.ccccwwww
mov ecx, dword [rdx + rcx*4]
and ecx, 0xff
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 0xc
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 5
mov ecx, 4
imul rcx, rcx, 0xc
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x30]
mov ecx, dword [r8 + rcx]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 0xd
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 6
mov ecx, 4
imul rcx, rcx, 0xd
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x30]
mov ecx, dword [r8 + rcx]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 0xe
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 7
mov ecx, 4
imul rcx, rcx, 0xe
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x30]
mov ecx, dword [r8 + rcx]
mov eax, dword [rdx + rax]
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 0xf
mov rdx, qword [rsp + 0x30]
mov dword [rdx + rcx], eax
call fcn.140176d60
test eax, eax
je 0x140002ef9
mov byte [rsp + 0x20], 1
jmp 0x140002efe
mov byte [rsp + 0x20], 0
movzx eax, byte [rsp + 0x20]
mov byte [rsp + 0x21], al
mov rax, qword [rsp + 0x30]
add rax, 0x20
mov qword [rsp + 0x30], rax
jmp 0x140002c0f
xor eax, eax
add rsp, 0x48
ret