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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1c
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov dword [esp + 8], 0
mov esi, dword [eax]
mov ebx, dword [eax + 4]
lea edi, [edx + 0xf0]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x14], edi
bswap esi
bswap ebx
xor esi, dword [edx + 0xf0]
xor ebx, dword [edx + 0xf4]
bswap ecx
bswap eax
xor ecx, dword [edx + 0xf8]
xor eax, dword [edx + 0xfc]
mov edx, dword [edx + 0x1e0]
mov dword [esp + 0x18], edx
sub edx, 2
mov dword [esp], ecx
mov dword [esp + 0x10], edx
mov edx, ebx
mov ebx, esi
mov esi, edx
jmp 0x401db2
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 4]
add ebp, 1
mov dword [esp + 8], ebp
mov dword [esp], edx
mov ecx, esi
mov edx, ebx
add edi, 0x10
movzx ebp, cl
shr edx, 0x18
mov edx, dword [edx*4 + 0x424cc0]
xor edx, dword [ebp*4 + 0x4220c0]
mov ebp, eax
shr ebp, 0x10
xor edx, dword [edi]
mov ecx, ebp
movzx ebp, cl
mov ecx, dword [esp]
xor edx, dword [ebp*4 + 0x4228c0]
movzx ebp, ch
mov ecx, esi
xor edx, dword [ebp*4 + 0x4224c0]
movzx ebp, byte [esp]
shr ecx, 0x18
mov dword [esp + 4], edx
mov edx, dword [ecx*4 + 0x424cc0]
xor edx, dword [ebp*4 + 0x4220c0]
mov ebp, ebx
shr ebp, 0x10
xor edx, dword [edi + 4]
mov ecx, ebp
movzx ebp, cl
xor edx, dword [ebp*4 + 0x4228c0]
movzx ebp, ah
mov ecx, dword [ebp*4 + 0x4224c0]
movzx ebp, al
shr eax, 0x18
mov eax, dword [eax*4 + 0x424cc0]
xor ecx, edx
mov edx, dword [esp]
mov dword [esp + 0xc], ecx
shr edx, 0x18
mov edx, dword [edx*4 + 0x424cc0]
xor edx, dword [ebp*4 + 0x4220c0]
mov ebp, esi
shr ebp, 0x10
xor edx, dword [edi + 8]
mov ecx, ebp
movzx ebp, cl
mov ecx, dword [esp]
xor edx, dword [ebp*4 + 0x4228c0]
movzx ebp, bh
movzx ebx, bl
xor eax, dword [ebx*4 + 0x4220c0]
xor edx, dword [ebp*4 + 0x4224c0]
shr ecx, 0x10
xor eax, dword [edi + 0xc]
mov ebp, dword [esp + 8]
movzx ecx, cl
xor eax, dword [ecx*4 + 0x4228c0]
mov ecx, esi
movzx esi, ch
xor eax, dword [esi*4 + 0x4224c0]
mov esi, dword [esp + 0x10]
cmp ebp, esi
jne 0x401da0
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 0xc]
shr ebx, 0x18
add ecx, 0xfffffff
mov esi, dword [ebx*4 + 0x4248c0]
shl ecx, 4
mov ebx, ebp
add ecx, dword [esp + 0x14]
movzx ebx, bl
movzx ebx, byte [ebx*4 + 0x4248c0]
and esi, 0xff000000
mov edi, dword [ecx + 0x10]
xor esi, ebx
xor edi, esi
mov esi, eax
shr esi, 0x10
mov ebx, esi
movzx ebx, bl
mov esi, dword [ebx*4 + 0x4248c0]
movzx ebx, dh
mov ebx, dword [ebx*4 + 0x4248c0]
and esi, 0xff0000
xor esi, edi
and ebx, 0xff00
mov edi, dword [esp + 0x34]
xor ebx, esi
bswap ebx
mov dword [edi], ebx
mov ebx, ebp
mov edi, dword [ecx + 0x14]
shr ebx, 0x18
mov esi, dword [ebx*4 + 0x4248c0]
movzx ebx, dl
movzx ebx, byte [ebx*4 + 0x4248c0]
and esi, 0xff000000
xor esi, ebx
mov ebx, dword [esp + 4]
xor edi, esi
shr ebx, 0x10
movzx ebx, bl
mov esi, dword [ebx*4 + 0x4248c0]
movzx ebx, ah
mov ebx, dword [ebx*4 + 0x4248c0]
and esi, 0xff0000
xor esi, edi
and ebx, 0xff00
mov edi, dword [esp + 0x34]
xor ebx, esi
bswap ebx
mov dword [edi + 4], ebx
mov edi, edx
movzx ebx, al
shr edi, 0x18
movzx ebx, byte [ebx*4 + 0x4248c0]
shr eax, 0x18
mov esi, dword [edi*4 + 0x4248c0]
mov edi, dword [ecx + 0x18]
mov eax, dword [eax*4 + 0x4248c0]
and esi, 0xff000000
xor esi, ebx
and eax, 0xff000000
xor edi, esi
mov esi, ebp
shr esi, 0x10
mov ebx, esi
movzx ebx, bl
mov esi, dword [ebx*4 + 0x4248c0]
mov ebx, dword [esp + 4]
movzx ebx, bh
and esi, 0xff0000
mov ebx, dword [ebx*4 + 0x4248c0]
xor esi, edi
mov edi, dword [esp + 0x34]
and ebx, 0xff00
xor ebx, esi
bswap ebx
mov dword [edi + 8], ebx
mov ebx, eax
movzx eax, byte [esp + 4]
movzx eax, byte [eax*4 + 0x4248c0]
xor eax, ebx
xor eax, dword [ecx + 0x1c]
shr edx, 0x10
mov ebx, ebp
movzx edx, dl
mov ecx, eax
mov eax, dword [edx*4 + 0x4248c0]
movzx edx, bh
mov edx, dword [edx*4 + 0x4248c0]
and eax, 0xff0000
xor eax, ecx
and edx, 0xff00
xor eax, edx
bswap eax
mov dword [edi + 0xc], eax
add esp, 0x1c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret