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

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x1d0
push ebx
xor ebx, ebx
cmp eax, ebx
je 0x1001191c
mov eax, dword [esp + 0x1dc]
cmp eax, ebx
je 0x1001191c
cmp eax, 0x10
jb 0x10011907
test al, 0xf
jne 0x10011907
push ebp
push esi
push edi
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x39]
mov byte [esp + 0x38], bl
mov byte [esp + 0x10], bl
rep stosd dword es:[edi], eax
mov dword [esp + 0x11], eax
mov dword [esp + 0x15], eax
mov dword [esp + 0x19], eax
mov dword [esp + 0x1d], eax
mov dword [esp + 0x21], eax
mov word [esp + 0x25], ax
mov byte [esp + 0x27], al
mov eax, dword [esp + 0x1f0]
cmp eax, ebx
je 0x10011737
mov dword [eax], ebx
mov edx, dword [esp + 0x1f8]
mov ecx, 0x21
cmp edx, 0x21
ja 0x1001174a
mov ecx, edx
mov ebp, dword [esp + 0x1f4]
mov eax, ecx
mov esi, ebp
lea edi, [esp + 0x38]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
mov byte [esp + 0x5c], bl
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x1f
lea edi, [esp + 0x5d]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor ecx, ecx
xor eax, eax
cmp eax, edx
jb 0x10011783
xor eax, eax
test ecx, ecx
jne 0x10011793
mov bl, byte [eax + ebp]
add bl, 5
mov byte [esp + 0x5c], bl
jmp 0x1001179e
mov bl, byte [esp + ecx + 0x5b]
xor bl, byte [eax + ebp]
mov byte [esp + ecx + 0x5c], bl
inc ecx
inc eax
cmp ecx, 0x80
jb 0x1001177d
mov ecx, dword [esp + 0x39]
lea eax, [esp + 0x5c]
and ecx, 0xff
shr ecx, 3
lea esi, [esp + ecx + 0x5c]
mov edx, esi
sub edx, eax
cmp edx, 0x10
jge 0x100117ca
lea esi, [esp + 0x5c]
lea ecx, [esp + 0x28]
xor ebp, ebp
xor eax, eax
sub esi, ecx
lea ecx, [esp + eax + 0x28]
inc eax
cmp eax, 0x10
mov dl, byte [esi + ecx]
mov byte [ecx], dl
jb 0x100117d4
mov eax, dword [esp + 0x38]
and eax, 0xff
shr eax, 3
lea edx, [esp + eax + 0x5c]
lea eax, [esp + 0x5c]
mov ecx, edx
sub ecx, eax
cmp ecx, 0x20
jge 0x10011804
lea edx, [esp + 0x5c]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0xe0]
mov dword [esp + 0xdc], ebp
rep stosd dword es:[edi], eax
mov dword [esp + 0xe8], edx
lea edx, [esp + 0xdc]
lea ecx, [esp + 0x28]
push edx
mov dword [esp + 0xe4], 0xc0
mov dword [esp + 0xe8], 1
mov dword [esp + 0xf0], ecx
call fcn.10011b20
mov esi, dword [esp + 0x1e8]
push 0x10
lea eax, [esp + 0x18]
push esi
lea ecx, [esp + 0xe8]
push eax
push ecx
call fcn.10012050
add esp, 0x14
add esi, 0x10
xor eax, eax
xor ecx, ecx
cmp ecx, 8
jl 0x1001187d
xor ecx, ecx
mov dl, byte [eax + 0x10013258]
mov bl, byte [esp + ecx + 0x10]
xor dl, bl
mov byte [esp + eax + 0x5c], dl
inc eax
inc ecx
cmp eax, 0x80
jb 0x10011876
lea edx, [esp + 0xdc]
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x28]
push edx
mov dword [esp + 0xe4], 0x80
mov dword [esp + 0xe8], ebp
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], ecx
call fcn.10011b20
mov eax, dword [esp + 0x1ec]
mov ecx, dword [esp + 0x1f0]
add eax, 0xfffffff0
lea edx, [esp + 0xe0]
push eax
push esi
push ecx
push edx
call fcn.100121a0
mov ecx, dword [esp + 0x204]
add esp, 0x14
cmp ecx, ebp
pop edi
pop esi
pop ebp
je 0x10011929
mov dword [ecx], eax
pop ebx
add esp, 0x1d0
ret
mov eax, dword [esp + 0x1e4]
cmp eax, ebx
je 0x10011929
mov dword [eax], ebx
pop ebx
add esp, 0x1d0
ret
mov eax, dword [esp + 0x1e4]
cmp eax, ebx
je 0x10011929
mov dword [eax], ebx
pop ebx
add esp, 0x1d0
ret