Function at 0x401000
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
sub esp, 0x400
push ebx
push ebp
push esi
mov ebx, eax
xor esi, esi
push edi
xor eax, eax
mov dword [esp + eax*4 + 0x10], eax
inc eax
cmp eax, 0x100
jl 0x401010
xor ecx, ecx
lea edi, [ecx + 2]
xor edx, edx
mov eax, ecx
mov ebp, 9
div ebp
movzx eax, byte [edx + ebx]
add eax, dword [esp + ecx*4 + 0x10]
add esi, eax
and esi, 0x800000ff
jns 0x401046
dec esi
or esi, 0xffffff00
inc esi
mov al, byte [esp + ecx*4 + 0x10]
mov edx, dword [esp + esi*4 + 0x10]
mov dword [esp + ecx*4 + 0x10], edx
movzx eax, al
mov dword [esp + esi*4 + 0x10], eax
xor edx, edx
lea eax, [edi - 1]
div ebp
movzx edx, byte [edx + ebx]
add edx, esi
add edx, dword [esp + ecx*4 + 0x14]
mov esi, edx
and esi, 0x800000ff
jns 0x40107c
dec esi
or esi, 0xffffff00
inc esi
mov al, byte [esp + ecx*4 + 0x14]
mov edx, dword [esp + esi*4 + 0x10]
mov dword [esp + ecx*4 + 0x14], edx
movzx eax, al
mov dword [esp + esi*4 + 0x10], eax
xor edx, edx
mov eax, edi
div ebp
movzx edx, byte [edx + ebx]
add edx, esi
add edx, dword [esp + ecx*4 + 0x18]
mov esi, edx
and esi, 0x800000ff
jns 0x4010b1
dec esi
or esi, 0xffffff00
inc esi
mov al, byte [esp + ecx*4 + 0x18]
mov edx, dword [esp + esi*4 + 0x10]
movzx eax, al
mov dword [esp + ecx*4 + 0x18], edx
mov dword [esp + esi*4 + 0x10], eax
xor edx, edx
lea eax, [edi + 1]
div ebp
movzx edx, byte [edx + ebx]
add edx, dword [esp + ecx*4 + 0x1c]
add esi, edx
and esi, 0x800000ff
jns 0x4010e5
dec esi
or esi, 0xffffff00
inc esi
mov al, byte [esp + ecx*4 + 0x1c]
mov edx, dword [esp + esi*4 + 0x10]
mov dword [esp + ecx*4 + 0x1c], edx
movzx eax, al
add edi, 4
add ecx, 4
cmp edi, 0x102
mov dword [esp + esi*4 + 0x10], eax
jl 0x401021
mov ebp, dword [esp + 0x414]
lea eax, [ebp + 1]
mov edi, 0x24b
lea esp, [esp]
inc ecx
and ecx, 0x800000ff
jns 0x401131
dec ecx
or ecx, 0xffffff00
inc ecx
mov edx, dword [esp + ecx*4 + 0x10]
add esi, edx
and esi, 0x800000ff
jns 0x401147
dec esi
or esi, 0xffffff00
inc esi
mov ebx, dword [esp + esi*4 + 0x10]
movzx edx, dl
mov dword [esp + ecx*4 + 0x10], ebx
mov dword [esp + esi*4 + 0x10], edx
mov ebx, dword [esp + ecx*4 + 0x10]
add ebx, edx
and ebx, 0x800000ff
jns 0x40116c
dec ebx
or ebx, 0xffffff00
inc ebx
movzx edx, byte [esp + ebx*4 + 0x10]
xor byte [eax - 1], dl
inc ecx
and ecx, 0x800000ff
jns 0x401185
dec ecx
or ecx, 0xffffff00
inc ecx
mov edx, dword [esp + ecx*4 + 0x10]
add esi, edx
and esi, 0x800000ff
jns 0x40119b
dec esi
or esi, 0xffffff00
inc esi
mov ebx, dword [esp + esi*4 + 0x10]
movzx edx, dl
mov dword [esp + ecx*4 + 0x10], ebx
mov dword [esp + esi*4 + 0x10], edx
mov ebx, dword [esp + ecx*4 + 0x10]
add ebx, edx
and ebx, 0x800000ff
jns 0x4011c0
dec ebx
or ebx, 0xffffff00
inc ebx
movzx edx, byte [esp + ebx*4 + 0x10]
xor byte [eax], dl
inc ecx
and ecx, 0x800000ff
jns 0x4011d8
dec ecx
or ecx, 0xffffff00
inc ecx
mov edx, dword [esp + ecx*4 + 0x10]
add esi, edx
and esi, 0x800000ff
jns 0x4011ee
dec esi
or esi, 0xffffff00
inc esi
mov ebx, dword [esp + esi*4 + 0x10]
movzx edx, dl
mov dword [esp + ecx*4 + 0x10], ebx
mov dword [esp + esi*4 + 0x10], edx
mov ebx, dword [esp + ecx*4 + 0x10]
add ebx, edx
and ebx, 0x800000ff
jns 0x401213
dec ebx
or ebx, 0xffffff00
inc ebx
movzx edx, byte [esp + ebx*4 + 0x10]
xor byte [eax + 1], dl
inc ecx
and ecx, 0x800000ff
jns 0x40122c
dec ecx
or ecx, 0xffffff00
inc ecx
mov edx, dword [esp + ecx*4 + 0x10]
add esi, edx
and esi, 0x800000ff
jns 0x401242
dec esi
or esi, 0xffffff00
inc esi
mov ebx, dword [esp + esi*4 + 0x10]
movzx edx, dl
mov dword [esp + ecx*4 + 0x10], ebx
mov dword [esp + esi*4 + 0x10], edx
mov ebx, dword [esp + ecx*4 + 0x10]
add ebx, edx
and ebx, 0x800000ff
jns 0x401267
dec ebx
or ebx, 0xffffff00
inc ebx
movzx edx, byte [esp + ebx*4 + 0x10]
xor byte [eax + 2], dl
add eax, 4
sub edi, 1
jne 0x401120
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x400
ret