Function at 0x4099e0
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 0x4099f2
mov cl, 1
mov eax, 0x454cd0
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, 0x454cf8
mov byte [esp + 0x10], cl
jl 0x409a32
mov dword [0x4570f8], 0x63
mov dword [0x455e84], 0
mov esi, 1
mov edi, 0x4570fc
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 + 0x455cf8], esi
inc esi
cmp edi, 0x4574f8
jl 0x409a7e
xor ecx, ecx
mov al, byte [ecx + 0x4570f8]
mov bl, byte [ecx + 0x455cf8]
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 + 0x456cf8], eax
shl edx, 0x18
shr eax, 8
or edx, eax
mov eax, edx
mov dword [ecx + 0x4568f8], edx
shl eax, 0x18
shr edx, 8
or eax, edx
mov edx, eax
mov dword [ecx + 0x4564f8], eax
shl edx, 0x18
shr eax, 8
or edx, eax
test bl, bl
mov dword [ecx + 0x4560f8], edx
je 0x409ba4
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 0x409bac
mov dword [esp + 0x18], 0
test bl, bl
je 0x409bdf
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 0x409be1
xor ebp, ebp
test bl, bl
je 0x409c14
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 0x409c16
xor edi, edi
test bl, bl
je 0x409c45
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 0x409c47
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 + 0x4558f4], edx
shl eax, 0x18
shr edx, 8
or eax, edx
mov edx, eax
mov dword [ecx + 0x4554f4], eax
shl edx, 0x18
shr eax, 8
or edx, eax
mov eax, edx
mov dword [ecx + 0x4550f4], edx
shl eax, 0x18
shr edx, 8
or eax, edx
cmp ecx, 0x400
mov dword [ecx + 0x454cf4], eax
jl 0x409ae5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20c
ret