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

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
push edi
mov edi, eax
mov esi, ecx
lea ebp, [edi + 1]
lea edx, [esi + 3]
sub esi, edi
mov ecx, ebp
mov edi, 4
lea ebx, [ebx]
movzx eax, byte [edx - 3]
mov byte [ecx - 1], al
movzx eax, byte [esi + ecx]
mov byte [ecx], al
movzx eax, byte [edx - 1]
mov byte [ecx + 1], al
movzx eax, byte [edx]
mov byte [ecx + 2], al
add edx, 4
add ecx, 4
sub edi, 1
jne 0x1001ebd0
lea ecx, [edi + 5]
mov eax, ebp
lea ebx, [ebx]
movzx edx, byte [eax + 0xb]
mov byte [esp + 0x10], dl
movzx edx, byte [eax + 0xc]
mov byte [esp + 0x11], dl
movzx edx, byte [eax + 0xd]
lea esi, [ecx - 1]
mov byte [esp + 0x12], dl
mov dl, byte [eax + 0xe]
mov edi, esi
and edi, 3
mov byte [esp + 0x13], dl
jne 0x1001ec76
movzx ebx, byte [esp + 0x10]
movzx ebx, byte [ebx + 0x1005a7b0]
shr esi, 2
mov dword [esp + 0x14], eax
mov al, byte [esi + 0x100643f8]
movzx esi, byte [esp + 0x12]
mov byte [esp + 0x13], bl
movzx ebx, byte [esp + 0x11]
xor al, byte [ebx + 0x1005a7b0]
movzx ebx, byte [esi + 0x1005a7b0]
movzx edx, dl
mov dl, byte [edx + 0x1005a7b0]
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x14]
mov byte [esp + 0x11], bl
mov byte [esp + 0x12], dl
mov dl, byte [eax - 1]
xor dl, byte [esp + 0x10]
mov byte [esp + 0x10], dl
movzx ebx, byte [esp + 0x10]
mov byte [eax + 0xf], dl
mov dl, byte [eax]
xor dl, byte [esp + 0x11]
mov byte [esp + 0x10], bl
mov byte [esp + 0x11], dl
movzx ebx, byte [esp + 0x11]
mov byte [eax + 0x10], dl
mov dl, byte [eax + 1]
xor dl, byte [esp + 0x12]
mov byte [esp + 0x11], bl
mov byte [esp + 0x12], dl
movzx ebx, byte [esp + 0x12]
mov byte [eax + 0x11], dl
mov dl, byte [eax + 2]
xor dl, byte [esp + 0x13]
mov byte [esp + 0x12], bl
mov byte [eax + 0x12], dl
mov byte [esp + 0x13], dl
test cl, 3
jne 0x1001ed1c
movzx esi, byte [esp + 0x10]
movzx ebx, byte [esi + 0x1005a7b0]
mov esi, ecx
shr esi, 2
mov dword [esp + 0x14], eax
mov al, byte [esi + 0x100643f8]
movzx esi, byte [esp + 0x12]
mov byte [esp + 0x13], bl
movzx ebx, byte [esp + 0x11]
xor al, byte [ebx + 0x1005a7b0]
movzx ebx, byte [esi + 0x1005a7b0]
movzx edx, dl
mov dl, byte [edx + 0x1005a7b0]
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x14]
mov byte [esp + 0x11], bl
mov byte [esp + 0x12], dl
mov dl, byte [eax + 3]
xor dl, byte [esp + 0x10]
mov byte [esp + 0x10], dl
movzx ebx, byte [esp + 0x10]
mov byte [eax + 0x13], dl
mov dl, byte [eax + 4]
xor dl, byte [esp + 0x11]
mov byte [esp + 0x10], bl
mov byte [esp + 0x11], dl
movzx ebx, byte [esp + 0x11]
mov byte [eax + 0x14], dl
mov dl, byte [eax + 5]
xor dl, byte [esp + 0x12]
mov byte [esp + 0x11], bl
mov byte [esp + 0x12], dl
movzx ebx, byte [esp + 0x12]
mov byte [eax + 0x15], dl
mov dl, byte [eax + 6]
xor dl, byte [esp + 0x13]
mov byte [esp + 0x12], bl
lea ebx, [ecx + 1]
mov byte [eax + 0x16], dl
mov byte [esp + 0x13], dl
test bl, 3
jne 0x1001edc7
movzx esi, byte [esp + 0x10]
movzx ebx, byte [esi + 0x1005a7b0]
lea esi, [ecx + 1]
shr esi, 2
mov dword [esp + 0x14], eax
mov al, byte [esi + 0x100643f8]
movzx esi, byte [esp + 0x12]
mov byte [esp + 0x13], bl
movzx ebx, byte [esp + 0x11]
xor al, byte [ebx + 0x1005a7b0]
movzx ebx, byte [esi + 0x1005a7b0]
movzx edx, dl
mov dl, byte [edx + 0x1005a7b0]
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x14]
mov byte [esp + 0x11], bl
mov byte [esp + 0x12], dl
mov dl, byte [eax + 7]
xor dl, byte [esp + 0x10]
mov byte [esp + 0x10], dl
movzx ebx, byte [esp + 0x10]
mov byte [eax + 0x17], dl
mov dl, byte [eax + 8]
xor dl, byte [esp + 0x11]
mov byte [esp + 0x10], bl
mov byte [esp + 0x11], dl
movzx ebx, byte [esp + 0x11]
mov byte [eax + 0x18], dl
mov dl, byte [eax + 9]
xor dl, byte [esp + 0x12]
mov byte [esp + 0x11], bl
mov byte [esp + 0x12], dl
movzx ebx, byte [esp + 0x12]
mov byte [eax + 0x19], dl
mov dl, byte [eax + 0xa]
xor dl, byte [esp + 0x13]
mov byte [esp + 0x12], bl
lea ebx, [ecx - 2]
mov byte [eax + 0x1a], dl
mov byte [esp + 0x13], dl
test bl, 3
jne 0x1001ee72
movzx esi, byte [esp + 0x10]
movzx ebx, byte [esi + 0x1005a7b0]
lea esi, [ecx + 2]
shr esi, 2
mov dword [esp + 0x14], eax
mov al, byte [esi + 0x100643f8]
movzx esi, byte [esp + 0x12]
mov byte [esp + 0x13], bl
movzx ebx, byte [esp + 0x11]
xor al, byte [ebx + 0x1005a7b0]
movzx ebx, byte [esi + 0x1005a7b0]
movzx edx, dl
mov dl, byte [edx + 0x1005a7b0]
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x14]
mov byte [esp + 0x11], bl
mov byte [esp + 0x12], dl
mov dl, byte [eax + 0xb]
xor dl, byte [esp + 0x10]
mov byte [esp + 0x10], dl
movzx ebx, byte [esp + 0x10]
mov byte [eax + 0x1b], dl
mov dl, byte [eax + 0xc]
xor dl, byte [esp + 0x11]
mov byte [esp + 0x10], bl
mov byte [esp + 0x11], dl
movzx ebx, byte [esp + 0x11]
mov byte [eax + 0x1c], dl
mov dl, byte [eax + 0xd]
xor dl, byte [esp + 0x12]
mov byte [esp + 0x11], bl
mov byte [esp + 0x12], dl
movzx ebx, byte [esp + 0x12]
mov byte [eax + 0x1d], dl
mov dl, byte [eax + 0xe]
xor dl, byte [esp + 0x13]
mov byte [esp + 0x12], bl
mov byte [eax + 0x1e], dl
mov byte [esp + 0x13], dl
test edi, edi
jne 0x1001ef12
movzx esi, byte [esp + 0x10]
movzx ebx, byte [esi + 0x1005a7b0]
movzx edi, byte [esp + 0x11]
lea esi, [ecx + 3]
shr esi, 2
mov byte [esp + 0x13], bl
movzx ebx, byte [esi + 0x100643f8]
xor bl, byte [edi + 0x1005a7b0]
movzx esi, byte [esp + 0x12]
movzx edx, dl
mov dl, byte [edx + 0x1005a7b0]
mov byte [esp + 0x10], bl
movzx ebx, byte [esi + 0x1005a7b0]
mov byte [esp + 0x11], bl
mov byte [esp + 0x12], dl
movzx edx, byte [eax + 0xf]
xor dl, byte [esp + 0x10]
add ecx, 5
mov byte [eax + 0x1f], dl
movzx edx, byte [eax + 0x10]
xor dl, byte [esp + 0x11]
add eax, 0x14
mov byte [eax + 0xc], dl
movzx edx, byte [eax - 3]
xor dl, byte [esp + 0x12]
mov byte [eax + 0xd], dl
movzx edx, byte [eax - 2]
xor dl, byte [esp + 0x13]
mov byte [eax + 0xe], dl
lea edx, [ecx - 1]
cmp edx, 0x2c
jb 0x1001ec00
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret