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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x24
mov dword [ebp - 0x1c], 0
jmp 0x5faaf0
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 0x7fc040]
mov byte [ebp - 0x15], al
movzx eax, byte [ebp - 0x15]
lea ebx, [eax*8]
movzx eax, byte [ebp - 0x15]
sar eax, 5
mov ecx, eax
and ecx, 1
mov edx, ecx
shl edx, 2
add edx, ecx
lea eax, [edx*8]
sub eax, edx
shl eax, 2
add eax, ecx
shl eax, 1
add eax, ecx
xor ebx, eax
movzx eax, byte [ebp - 0x15]
sar eax, 5
mov ecx, eax
and ecx, 2
mov edx, ecx
shl edx, 2
add edx, ecx
lea eax, [edx*8]
sub eax, edx
shl eax, 2
add eax, ecx
shl eax, 1
add eax, ecx
xor ebx, eax
movzx eax, byte [ebp - 0x15]
sar eax, 5
mov ecx, eax
and ecx, 4
mov edx, ecx
shl edx, 2
add edx, ecx
lea eax, [edx*8]
sub eax, edx
shl eax, 2
add eax, ecx
shl eax, 1
add eax, ecx
mov esi, ebx
xor esi, eax
movzx eax, byte [ebp - 0x15]
lea ebx, [eax*4]
movzx eax, byte [ebp - 0x15]
sar eax, 6
mov ecx, eax
and ecx, 1
mov eax, ecx
shl eax, 2
add eax, ecx
lea edx, [eax*8]
sub edx, eax
shl edx, 2
add edx, ecx
shl edx, 1
lea eax, [edx + ecx]
xor ebx, eax
movzx eax, byte [ebp - 0x15]
sar eax, 6
mov ecx, eax
and ecx, 2
mov eax, ecx
shl eax, 2
add eax, ecx
lea edx, [eax*8]
sub edx, eax
shl edx, 2
add edx, ecx
shl edx, 1
lea eax, [edx + ecx]
xor eax, ebx
mov edx, esi
xor edx, eax
movzx eax, byte [ebp - 0x15]
xor eax, edx
mov esi, eax
shl esi, 8
movzx eax, byte [ebp - 0x15]
lea ebx, [eax*8]
movzx eax, byte [ebp - 0x15]
sar eax, 5
mov ecx, eax
and ecx, 1
mov eax, ecx
shl eax, 2
add eax, ecx
lea edx, [eax*8]
sub edx, eax
shl edx, 2
add edx, ecx
shl edx, 1
lea eax, [edx + ecx]
xor ebx, eax
movzx eax, byte [ebp - 0x15]
sar eax, 5
mov ecx, eax
and ecx, 2
mov eax, ecx
shl eax, 2
add eax, ecx
lea edx, [eax*8]
sub edx, eax
shl edx, 2
add edx, ecx
shl edx, 1
lea eax, [edx + ecx]
xor ebx, eax
movzx eax, byte [ebp - 0x15]
sar eax, 5
mov ecx, eax
and ecx, 4
mov eax, ecx
shl eax, 2
add eax, ecx
lea edx, [eax*8]
sub edx, eax
shl edx, 2
add edx, ecx
shl edx, 1
lea eax, [edx + ecx]
mov edx, ebx
xor edx, eax
movzx eax, byte [ebp - 0x15]
xor eax, edx
shl eax, 0x10
mov edi, esi
or edi, eax
movzx eax, byte [ebp - 0x15]
lea ebx, [eax*8]
movzx eax, byte [ebp - 0x15]
sar eax, 5
mov ecx, eax
and ecx, 1
mov eax, ecx
shl eax, 2
add eax, ecx
lea edx, [eax*8]
sub edx, eax
shl edx, 2
add edx, ecx
shl edx, 1
lea eax, [edx + ecx]
xor ebx, eax
movzx eax, byte [ebp - 0x15]
sar eax, 5
mov ecx, eax
and ecx, 2
mov eax, ecx
shl eax, 2
add eax, ecx
lea edx, [eax*8]
sub edx, eax
shl edx, 2
add edx, ecx
shl edx, 1
lea eax, [edx + ecx]
xor ebx, eax
movzx eax, byte [ebp - 0x15]
sar eax, 5
mov ecx, eax
and ecx, 4
mov eax, ecx
shl eax, 2
add eax, ecx
lea edx, [eax*8]
sub edx, eax
shl edx, 2
add edx, ecx
shl edx, 1
lea eax, [edx + ecx]
mov esi, ebx
xor esi, eax
movzx eax, byte [ebp - 0x15]
lea ebx, [eax*4]
movzx eax, byte [ebp - 0x15]
sar eax, 6
mov ecx, eax
and ecx, 1
mov eax, ecx
shl eax, 2
add eax, ecx
lea edx, [eax*8]
sub edx, eax
shl edx, 2
add edx, ecx
shl edx, 1
lea eax, [edx + ecx]
xor ebx, eax
movzx eax, byte [ebp - 0x15]
sar eax, 6
mov ecx, eax
and ecx, 2
mov eax, ecx
shl eax, 2
add eax, ecx
lea edx, [eax*8]
sub edx, eax
shl edx, 2
add edx, ecx
shl edx, 1
lea eax, [edx + ecx]
xor eax, ebx
xor esi, eax
movzx eax, byte [ebp - 0x15]
lea ebx, [eax + eax]
mov al, byte [ebp - 0x15]
shr al, 7
movzx ecx, al
mov eax, ecx
shl eax, 2
add eax, ecx
lea edx, [eax*8]
sub edx, eax
shl edx, 2
add edx, ecx
shl edx, 1
lea eax, [edx + ecx]
xor eax, ebx
xor eax, esi
shl eax, 0x18
or eax, edi
mov dword [ebp - 0x14], eax
mov edi, dword [ebp - 0x1c]
movzx eax, byte [ebp - 0x15]
lea ebx, [eax*8]
movzx eax, byte [ebp - 0x15]
sar eax, 5
mov ecx, eax
and ecx, 1
mov eax, ecx
shl eax, 2
add eax, ecx
lea edx, [eax*8]
sub edx, eax
shl edx, 2
add edx, ecx
shl edx, 1
lea eax, [edx + ecx]
xor ebx, eax
movzx eax, byte [ebp - 0x15]
sar eax, 5
mov ecx, eax
and ecx, 2
mov eax, ecx
shl eax, 2
add eax, ecx
lea edx, [eax*8]
sub edx, eax
shl edx, 2
add edx, ecx
shl edx, 1
lea eax, [edx + ecx]
xor ebx, eax
movzx eax, byte [ebp - 0x15]
sar eax, 5
mov ecx, eax
and ecx, 4
mov eax, ecx
shl eax, 2
add eax, ecx
lea edx, [eax*8]
sub edx, eax
shl edx, 2
add edx, ecx
shl edx, 1
lea eax, [edx + ecx]
mov esi, ebx
xor esi, eax
movzx eax, byte [ebp - 0x15]
lea ebx, [eax + eax]
mov al, byte [ebp - 0x15]
shr al, 7
movzx ecx, al
mov eax, ecx
shl eax, 2
add eax, ecx
lea edx, [eax*8]
sub edx, eax
shl edx, 2
add edx, ecx
shl edx, 1
lea eax, [edx + ecx]
xor eax, ebx
mov edx, esi
xor edx, eax
movzx eax, byte [ebp - 0x15]
xor eax, edx
or eax, dword [ebp - 0x14]
mov edx, 0
mov ecx, eax
mov ebx, edx
mov ebx, ecx
mov ecx, 0
mov eax, dword [ebp - 0x14]
mov edx, 0
mov esi, ecx
or esi, eax
mov dword [ebp - 0x30], esi
mov esi, ebx
or esi, edx
mov dword [ebp - 0x2c], esi
movzx eax, byte [ebp - 0x15]
mov edx, 0
mov ecx, dword [ebp - 0x30]
or ecx, eax
mov dword [ebp - 0x28], ecx
mov esi, dword [ebp - 0x2c]
or esi, edx
mov dword [ebp - 0x24], esi
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
mov dword [edi*8 + 0x8e6660], eax
mov dword [edi*8 + 0x8e6664], edx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xff
setle al
test al, al
jne 0x5fa737
mov byte [0x8e6e70], 1
add esp, 0x24
pop ebx
pop esi
pop edi
leave
ret