Function at 0x466cf0
Capabilities:
Encrypt data using aes
Encrypt data using rc4 ksa
Encrypt data using rc4 prga
Reference aes constants

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x1d0
push ebx
xor ebx, ebx
cmp eax, ebx
push edi
je 0x466f2c
cmp dword [esp + 0x1e0], ebx
je 0x466f2c
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x31]
mov byte [esp + 0x30], bl
rep stosd dword es:[edi], eax
mov dword [esp + 9], eax
mov byte [esp + 8], bl
mov dword [esp + 0xd], eax
mov dword [esp + 0x11], eax
mov dword [esp + 0x15], eax
mov dword [esp + 0x19], eax
mov word [esp + 0x1d], ax
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x1e8]
cmp eax, ebx
je 0x466d52
mov dword [eax], ebx
mov edx, dword [esp + 0x1f0]
mov ecx, 0x21
cmp edx, 0x21
ja 0x466d65
mov ecx, edx
push ebp
mov ebp, dword [esp + 0x1f0]
mov eax, ecx
push esi
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 0x466da0
xor eax, eax
mov bl, byte [eax + ebp]
add bl, 2
mov byte [esp + ecx + 0x5c], bl
inc ecx
inc eax
cmp ecx, 0x80
jb 0x466d9a
mov ecx, dword [esp + 0x39]
xor ebp, ebp
and ecx, 0xff
shr ecx, 3
xor esi, esi
lea edi, [esp + ecx + 0x5c]
call fcn.0046fbbf
cdq
mov ecx, 0xff
idiv ecx
inc esi
cmp esi, 8
mov byte [esp + esi + 0xf], dl
jl 0x466dc9
mov edx, edi
lea eax, [esp + 0x5c]
sub edx, eax
cmp edx, 0x10
jge 0x466df1
lea edi, [esp + 0x5c]
mov esi, edi
lea ecx, [esp + 0x28]
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 0x466dfb
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 0x466e2b
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], 0x80
mov dword [esp + 0xe8], 1
mov dword [esp + 0xf0], ecx
call fcn.004673b0
mov esi, dword [esp + 0x1f0]
push 8
lea eax, [esp + 0x18]
push esi
lea ecx, [esp + 0xe8]
push eax
push ecx
call fcn.00467580
mov edi, eax
add esp, 0x14
add esi, edi
xor eax, eax
xor ecx, ecx
cmp ecx, 8
jl 0x466ea5
xor ecx, ecx
mov dl, byte [eax + 0x73d100]
mov bl, byte [esp + ecx + 0x10]
xor dl, bl
mov byte [esp + eax + 0x5c], dl
inc eax
inc ecx
cmp eax, 0x20
jl 0x466e9e
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.004673b0
mov eax, dword [esp + 0x1ec]
mov ecx, dword [esp + 0x1e8]
push eax
push esi
lea edx, [esp + 0xe8]
push ecx
push edx
call fcn.00467580
mov ecx, dword [esp + 0x204]
add esp, 0x14
cmp ecx, ebp
pop esi
pop ebp
je 0x466f39
add eax, edi
pop edi
mov dword [ecx], eax
pop ebx
add esp, 0x1d0
ret
mov eax, dword [esp + 0x1e8]
cmp eax, ebx
je 0x466f39
mov dword [eax], ebx
pop edi
pop ebx
add esp, 0x1d0
ret