Function at 0x6d001624
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x20
cmp dword [ebp + 8], 0
je 0x6d001637
cmp dword [ebp + 0xc], 0
jne 0x6d001641
mov eax, 0xffffffff
jmp 0x6d001834
mov eax, dword [ebp + 0xc]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0xc]
add eax, 0xb0
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], 0
jmp 0x6d0016d2
mov eax, dword [ebp - 0x10]
shl eax, 2
mov edx, eax
mov eax, dword [ebp + 8]
add eax, edx
movzx eax, byte [eax]
movzx eax, al
shl eax, 0x18
mov edx, eax
mov eax, dword [ebp - 0x10]
shl eax, 2
lea ecx, [eax + 1]
mov eax, dword [ebp + 8]
add eax, ecx
movzx eax, byte [eax]
movzx eax, al
shl eax, 0x10
or edx, eax
mov eax, dword [ebp - 0x10]
shl eax, 2
lea ecx, [eax + 2]
mov eax, dword [ebp + 8]
add eax, ecx
movzx eax, byte [eax]
movzx eax, al
shl eax, 8
mov ecx, edx
or ecx, eax
mov eax, dword [ebp - 0x10]
shl eax, 2
lea edx, [eax + 3]
mov eax, dword [ebp + 8]
add eax, edx
movzx eax, byte [eax]
movzx edx, al
mov eax, dword [ebp - 0x10]
lea ebx, [eax*4]
mov eax, dword [ebp - 8]
add eax, ebx
or edx, ecx
mov dword [eax], edx
add dword [ebp - 0x10], 1
cmp dword [ebp - 0x10], 3
jle 0x6d00165b
mov dword [ebp - 0x14], 0
jmp 0x6d0017ca
mov eax, dword [ebp - 8]
mov edx, dword [eax]
mov eax, dword [ebp - 8]
add eax, 0xc
mov eax, dword [eax]
shr eax, 0x10
movzx eax, al
movzx eax, byte [eax + str.cw]
movzx eax, al
shl eax, 0x18
mov ecx, eax
mov eax, dword [ebp - 8]
add eax, 0xc
mov eax, dword [eax]
shr eax, 8
movzx eax, al
movzx eax, byte [eax + str.cw]
movzx eax, al
shl eax, 0x10
and eax, 0xff0000
xor ecx, eax
mov eax, dword [ebp - 8]
add eax, 0xc
mov eax, dword [eax]
movzx eax, al
movzx eax, byte [eax + str.cw]
movzx eax, al
shl eax, 8
movzx eax, ax
xor ecx, eax
mov eax, dword [ebp - 8]
add eax, 0xc
mov eax, dword [eax]
shr eax, 0x18
movzx eax, byte [eax + str.cw]
movzx eax, al
xor eax, ecx
mov ecx, edx
xor ecx, eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax*4 + 0x6d005060]
mov eax, dword [ebp - 8]
add eax, 0x10
xor edx, ecx
mov dword [eax], edx
mov eax, dword [ebp - 8]
add eax, 4
mov ecx, dword [eax]
mov eax, dword [ebp - 8]
add eax, 0x10
mov edx, dword [eax]
mov eax, dword [ebp - 8]
add eax, 0x14
xor edx, ecx
mov dword [eax], edx
mov eax, dword [ebp - 8]
add eax, 8
mov ecx, dword [eax]
mov eax, dword [ebp - 8]
add eax, 0x14
mov edx, dword [eax]
mov eax, dword [ebp - 8]
add eax, 0x18
xor edx, ecx
mov dword [eax], edx
mov eax, dword [ebp - 8]
add eax, 0xc
mov ecx, dword [eax]
mov eax, dword [ebp - 8]
add eax, 0x18
mov edx, dword [eax]
mov eax, dword [ebp - 8]
add eax, 0x1c
xor edx, ecx
mov dword [eax], edx
add dword [ebp - 8], 0x10
add dword [ebp - 0x14], 1
cmp dword [ebp - 0x14], 9
jle 0x6d0016e4
mov eax, dword [ebp + 0xc]
add eax, 0xa0
mov dword [ebp - 8], eax
mov dword [ebp - 0x18], 0
jmp 0x6d001829
mov dword [ebp - 0x1c], 0
jmp 0x6d001817
mov eax, dword [ebp - 0x1c]
lea edx, [eax*4]
mov eax, dword [ebp - 8]
add eax, edx
mov edx, dword [ebp - 0x1c]
lea ecx, [edx*4]
mov edx, dword [ebp - 0xc]
add edx, ecx
mov eax, dword [eax]
mov dword [edx], eax
add dword [ebp - 0x1c], 1
cmp dword [ebp - 0x1c], 3
jle 0x6d0017f1
sub dword [ebp - 8], 0x10
add dword [ebp - 0xc], 0x10
add dword [ebp - 0x18], 1
cmp dword [ebp - 0x18], 0xa
jle 0x6d0017e8
mov eax, 0
mov ebx, dword [ebp - 4]
leave
ret