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

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp + 8]
movzx eax, byte [edx + ecx]
mov ecx, 1
imul edx, ecx, 0
mov ecx, dword [ebp + 8]
mov al, byte [eax + str.cw]
mov byte [ecx + edx], al
mov ecx, 1
shl ecx, 2
mov edx, dword [ebp + 8]
movzx eax, byte [edx + ecx]
mov ecx, 1
shl ecx, 2
mov edx, dword [ebp + 8]
mov al, byte [eax + str.cw]
mov byte [edx + ecx], al
mov ecx, 1
shl ecx, 3
mov edx, dword [ebp + 8]
movzx eax, byte [edx + ecx]
mov ecx, 1
shl ecx, 3
mov edx, dword [ebp + 8]
mov al, byte [eax + str.cw]
mov byte [edx + ecx], al
mov ecx, 1
imul edx, ecx, 0xc
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + edx]
mov edx, 1
imul eax, edx, 0xc
mov edx, dword [ebp + 8]
mov cl, byte [ecx + str.cw]
mov byte [edx + eax], cl
mov edx, 1
shl edx, 0
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + edx]
mov dl, byte [ecx + str.cw]
mov byte [ebp - 1], dl
mov eax, 1
imul ecx, eax, 5
mov edx, dword [ebp + 8]
movzx eax, byte [edx + ecx]
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp + 8]
mov al, byte [eax + str.cw]
mov byte [edx + ecx], al
mov ecx, 1
imul edx, ecx, 9
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + edx]
mov edx, 1
imul eax, edx, 5
mov edx, dword [ebp + 8]
mov cl, byte [ecx + str.cw]
mov byte [edx + eax], cl
mov edx, 1
imul eax, edx, 0xd
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + eax]
mov eax, 1
imul ecx, eax, 9
mov eax, dword [ebp + 8]
mov dl, byte [edx + str.cw]
mov byte [eax + ecx], dl
mov eax, 1
imul ecx, eax, 0xd
mov edx, dword [ebp + 8]
mov al, byte [ebp - 1]
mov byte [edx + ecx], al
mov ecx, 1
imul edx, ecx, 0xa
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + edx]
mov dl, byte [ecx + str.cw]
mov byte [ebp - 1], dl
mov eax, 1
shl eax, 1
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + eax]
mov eax, 1
imul ecx, eax, 0xa
mov eax, dword [ebp + 8]
mov dl, byte [edx + str.cw]
mov byte [eax + ecx], dl
mov eax, 1
shl eax, 1
mov ecx, dword [ebp + 8]
mov dl, byte [ebp - 1]
mov byte [ecx + eax], dl
mov eax, 1
imul ecx, eax, 0xe
mov edx, dword [ebp + 8]
movzx eax, byte [edx + ecx]
mov cl, byte [eax + str.cw]
mov byte [ebp - 1], cl
mov edx, 1
imul eax, edx, 6
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + eax]
mov eax, 1
imul ecx, eax, 0xe
mov eax, dword [ebp + 8]
mov dl, byte [edx + str.cw]
mov byte [eax + ecx], dl
mov eax, 1
imul ecx, eax, 6
mov edx, dword [ebp + 8]
mov al, byte [ebp - 1]
mov byte [edx + ecx], al
mov ecx, 1
imul edx, ecx, 0xf
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + edx]
mov dl, byte [ecx + str.cw]
mov byte [ebp - 1], dl
mov eax, 1
imul ecx, eax, 0xb
mov edx, dword [ebp + 8]
movzx eax, byte [edx + ecx]
mov ecx, 1
imul edx, ecx, 0xf
mov ecx, dword [ebp + 8]
mov al, byte [eax + str.cw]
mov byte [ecx + edx], al
mov ecx, 1
imul edx, ecx, 7
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + edx]
mov edx, 1
imul eax, edx, 0xb
mov edx, dword [ebp + 8]
mov cl, byte [ecx + str.cw]
mov byte [edx + eax], cl
mov edx, 1
imul eax, edx, 3
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + eax]
mov eax, 1
imul ecx, eax, 7
mov eax, dword [ebp + 8]
mov dl, byte [edx + str.cw]
mov byte [eax + ecx], dl
mov eax, 1
imul ecx, eax, 3
mov edx, dword [ebp + 8]
movzx eax, byte [ebp - 1]
mov byte [edx + ecx], al
mov ecx, 8
imul edx, ecx, 0
mov eax, 8
imul ecx, eax, 0
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov edi, dword [eax + edx]
xor edi, dword [esi + ecx]
mov edx, dword [eax + edx + 4]
xor edx, dword [esi + ecx + 4]
mov eax, 8
imul ecx, eax, 0
mov eax, dword [ebp + 8]
mov dword [eax + ecx], edi
mov dword [eax + ecx + 4], edx
mov ecx, 8
shl ecx, 0
mov edx, 8
shl edx, 0
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov edi, dword [eax + ecx]
xor edi, dword [esi + edx]
mov ecx, dword [eax + ecx + 4]
xor ecx, dword [esi + edx + 4]
mov edx, 8
shl edx, 0
mov eax, dword [ebp + 8]
mov dword [eax + edx], edi
mov dword [eax + edx + 4], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret