Function at 0x401000
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Manually build aes constants

Disassembly:
sub esp, 0x20c
push ebx
push ebp
mov cl, 1
push esi
push edi
xor eax, eax
mov byte [esp + 0x10], cl
mov edx, dword [esp + 0x10]
mov byte [esp + eax + 0x11c], cl
and edx, 0xff
mov bl, cl
mov byte [esp + edx + 0x1c], al
mov dl, cl
and dl, 0x80
inc eax
neg dl
sbb dl, dl
and edx, 0x1b
shl bl, 1
xor dl, bl
xor cl, dl
cmp eax, 0x100
mov byte [esp + 0x10], cl
jl 0x401012
mov cl, 1
mov eax, 0x415a90
mov byte [esp + 0x10], cl
mov edx, dword [esp + 0x10]
add eax, 4
and edx, 0xff
shl edx, 0x18
mov dword [eax - 4], edx
mov dl, cl
and dl, 0x80
neg dl
sbb dl, dl
and edx, 0x1b
shl cl, 1
xor cl, dl
cmp eax, 0x415ab8
mov byte [esp + 0x10], cl
jl 0x401052
mov dword [0x413290], 0x63
mov dword [0x41481c], 0
mov esi, 1
mov edi, 0x413294
xor eax, eax
lea ecx, [esp + 0x21b]
mov al, byte [esp + esi + 0x1c]
add edi, 4
sub ecx, eax
mov dl, byte [ecx]
mov al, dl
mov cl, dl
shr al, 7
shl cl, 1
or al, cl
mov cl, al
xor dl, al
shr cl, 7
shl al, 1
or cl, al
mov al, cl
xor dl, cl
shr al, 7
shl cl, 1
or al, cl
mov cl, al
xor dl, al
shr cl, 7
shl al, 1
or cl, al
xor cl, dl
xor cl, 0x63
mov byte [esp + 0x10], cl
mov eax, dword [esp + 0x10]
and eax, 0xff
mov dword [edi - 4], eax
mov dword [eax*4 + 0x414690], esi
inc esi
cmp edi, 0x413690
jl 0x40109e
xor ecx, ecx
mov al, byte [ecx + 0x413290]
mov bl, byte [ecx + 0x414690]
mov dl, al
mov byte [esp + 0x10], al
and dl, 0x80
neg dl
sbb dl, dl
and edx, 0x1b
shl al, 1
xor dl, al
mov byte [esp + 0x14], dl
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
and edx, 0xff
and esi, 0xff
mov byte [esp + 0x14], bl
mov eax, esi
shl eax, 8
xor eax, edx
shl eax, 8
xor eax, edx
shl eax, 8
xor eax, esi
mov esi, dword [esp + 0x14]
xor eax, edx
mov edx, eax
mov dword [ecx + 0x413690], eax
shl edx, 0x18
shr eax, 8
or edx, eax
mov eax, edx
mov dword [ecx + 0x413a90], edx
shl eax, 0x18
shr edx, 8
or eax, edx
mov edx, eax
mov dword [ecx + 0x413e90], eax
shl edx, 0x18
shr eax, 8
or edx, eax
test bl, bl
mov dword [ecx + 0x414290], edx
je 0x4011c4
mov eax, esi
xor edx, edx
and eax, 0xff
mov edi, 0xff
mov dl, byte [esp + eax + 0x1c]
mov eax, edx
mov edx, dword [esp + 0x27]
and edx, 0xff
add eax, edx
cdq
idiv edi
xor eax, eax
mov al, byte [esp + edx + 0x11c]
mov dword [esp + 0x18], eax
jmp 0x4011cc
mov dword [esp + 0x18], 0
test bl, bl
je 0x4011ff
mov edx, esi
xor eax, eax
and edx, 0xff
mov edi, 0xff
mov al, byte [esp + edx + 0x1c]
mov edx, dword [esp + 0x29]
and edx, 0xff
add eax, edx
cdq
idiv edi
xor eax, eax
mov al, byte [esp + edx + 0x11c]
mov ebp, eax
jmp 0x401201
xor ebp, ebp
test bl, bl
je 0x401234
mov edx, esi
xor eax, eax
and edx, 0xff
mov edi, 0xff
mov al, byte [esp + edx + 0x1c]
mov edx, dword [esp + 0x25]
and edx, 0xff
add eax, edx
cdq
idiv edi
xor eax, eax
mov al, byte [esp + edx + 0x11c]
mov edi, eax
jmp 0x401236
xor edi, edi
test bl, bl
je 0x401265
mov edx, dword [esp + 0x2a]
and esi, 0xff
xor eax, eax
and edx, 0xff
mov al, byte [esp + esi + 0x1c]
mov esi, 0xff
add eax, edx
cdq
idiv esi
xor eax, eax
mov al, byte [esp + edx + 0x11c]
jmp 0x401267
xor eax, eax
shl eax, 8
xor eax, edi
mov edi, dword [esp + 0x18]
shl eax, 8
xor eax, ebp
add ecx, 4
shl eax, 8
mov edx, eax
xor edx, edi
mov eax, edx
mov dword [ecx + 0x414a8c], edx
shl eax, 0x18
shr edx, 8
or eax, edx
mov edx, eax
mov dword [ecx + 0x414e8c], eax
shl edx, 0x18
shr eax, 8
or edx, eax
mov eax, edx
mov dword [ecx + 0x41528c], edx
shl eax, 0x18
shr edx, 8
or eax, edx
cmp ecx, 0x400
mov dword [ecx + 0x41568c], eax
jl 0x401105
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20c
ret