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

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
cdq
and edx, 3
push ebx
push esi
lea esi, [edx + eax]
mov eax, dword [ebp + 8]
cdq
and edx, 3
add eax, edx
sar eax, 2
sar esi, 2
push edi
mov dword [ebp - 4], esi
mov dword [ecx + 0x3e8], eax
mov edx, eax
cmp eax, esi
jg 0x467c00
mov edx, esi
add edx, 6
mov dword [ecx + 0x3ec], edx
cmp eax, 8
jne 0x467c24
mov dword [ecx + 0x3c0], 0x466b00
mov dword [ecx + 0x3c4], 0x4676a0
jmp 0x467c58
cmp eax, 6
jne 0x467c3f
mov dword [ecx + 0x3c0], 0x466720
mov dword [ecx + 0x3c4], 0x4672c0
jmp 0x467c58
cmp eax, 4
jne 0x467c58
mov dword [ecx + 0x3c0], 0x4664a0
mov dword [ecx + 0x3c4], 0x467030
inc edx
imul edx, eax
xor edi, edi
mov ebx, 1
test edx, edx
jle 0x467da2
lea edx, [esi*4]
mov eax, ecx
sub eax, edx
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0xc]
add eax, 2
mov dword [ebp - 8], eax
cmp edi, esi
jge 0x467ca9
movzx edx, byte [eax - 2]
movzx esi, byte [eax - 1]
shl edx, 8
or edx, esi
movzx esi, byte [eax]
shl edx, 8
or edx, esi
movzx esi, byte [eax + 1]
shl edx, 8
or edx, esi
jmp 0x467d7b
mov eax, edi
cdq
idiv dword [ebp - 4]
mov esi, dword [ecx + edi*4 - 4]
test edx, edx
jne 0x467d1a
mov eax, esi
shr eax, 0x10
and eax, 0xff
movzx edx, byte [eax + str.cw]
xor edx, ebx
mov eax, esi
shr eax, 8
and eax, 0xff
movzx eax, byte [eax + str.cw]
shl edx, 8
or edx, eax
mov eax, esi
and eax, 0xff
movzx eax, byte [eax + str.cw]
shl edx, 8
or edx, eax
shr esi, 0x18
movzx esi, byte [esi + str.cw]
shl edx, 8
or esi, edx
mov edx, ebx
and dl, 0x80
movsx eax, dl
neg eax
sbb eax, eax
and ebx, 0x7f
and eax, 0x1b
add ebx, ebx
xor ebx, eax
jmp 0x467d71
cmp edx, 4
jne 0x467d71
cmp dword [ebp - 4], 6
jle 0x467d71
mov edx, esi
shr edx, 0x10
and edx, 0xff
movzx eax, byte [edx + str.cw]
mov edx, esi
shr edx, 0x18
movzx edx, byte [edx + str.cw]
shl edx, 8
or eax, edx
mov edx, esi
shr edx, 8
and edx, 0xff
movzx edx, byte [edx + str.cw]
shl eax, 8
and esi, 0xff
movzx esi, byte [esi + str.cw]
or eax, edx
shl eax, 8
or esi, eax
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov eax, dword [ebp - 8]
xor edx, esi
add dword [ebp + 8], 4
mov esi, dword [ebp - 4]
mov dword [ecx + edi*4], edx
mov edx, dword [ecx + 0x3ec]
inc edx
imul edx, dword [ecx + 0x3e8]
inc edi
add eax, 4
mov dword [ebp - 8], eax
cmp edi, edx
jl 0x467c82
xor esi, esi
cmp dword [ecx + 0x3ec], esi
jl 0x467e66
xor edx, edx
cmp dword [ecx + 0x3e8], edx
jle 0x467e59
mov edi, edi
mov ebx, dword [ecx + 0x3ec]
mov eax, dword [ecx + 0x3e8]
mov edi, ebx
sub edi, esi
imul edi, eax
add edi, edx
mov edi, dword [ecx + edi*4]
mov dword [ebp + 8], edi
test esi, esi
je 0x467e40
cmp esi, ebx
je 0x467e40
mov ebx, edi
shr edi, 8
shr ebx, 0x10
and edi, 0xff
movzx edi, byte [edi + str.cw]
and ebx, 0xff
movzx ebx, byte [ebx + str.cw]
mov ebx, dword [ebx*4 + 0x4dfba8]
xor ebx, dword [edi*4 + 0x4dffa8]
mov edi, dword [ebp + 8]
shr edi, 0x18
movzx edi, byte [edi + str.cw]
xor ebx, dword [edi*4 + 0x4df7a8]
mov edi, dword [ebp + 8]
and edi, 0xff
movzx edi, byte [edi + str.cw]
xor ebx, dword [edi*4 + 0x4e03a8]
mov edi, ebx
imul eax, esi
add eax, edx
inc edx
mov dword [ecx + eax*4 + 0x1e0], edi
cmp edx, dword [ecx + 0x3e8]
jl 0x467dc0
inc esi
cmp esi, dword [ecx + 0x3ec]
jle 0x467db0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret