Function at 0x401000
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
sub esp, 0x400
push ebx
push ebp
mov ebp, dword [esp + 0x40c]
push esi
xor esi, esi
push edi
xor eax, eax
mov dword [esp + eax*4 + 0x10], eax
inc eax
cmp eax, 0x100
jl 0x401015
xor ecx, ecx
lea edi, [ecx + 2]
xor edx, edx
mov eax, ecx
mov ebx, 0x14
div ebx
movzx eax, byte [edx + 0x413744]
add eax, dword [esp + ecx*4 + 0x10]
add esi, eax
and esi, 0x800000ff
jns 0x40104e
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 ebx
movzx edx, byte [edx + 0x413744]
add edx, esi
add edx, dword [esp + ecx*4 + 0x14]
mov esi, edx
and esi, 0x800000ff
jns 0x401087
dec esi
or esi, 0xffffff00
inc esi
mov al, byte [esp + ecx*4 + 0x14]
mov edx, dword [esp + esi*4 + 0x10]
movzx eax, al
mov dword [esp + ecx*4 + 0x14], edx
mov dword [esp + esi*4 + 0x10], eax
xor edx, edx
mov eax, edi
div ebx
movzx edx, byte [edx + 0x413744]
add edx, dword [esp + ecx*4 + 0x18]
add esi, edx
and esi, 0x800000ff
jns 0x4010bd
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 ebx
movzx edx, byte [edx + 0x413744]
add edx, dword [esp + ecx*4 + 0x1c]
add esi, edx
and esi, 0x800000ff
jns 0x4010f4
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 0x401026
lea eax, [ebp + 1]
mov edi, 0x17c3
inc ecx
and ecx, 0x800000ff
jns 0x401132
dec ecx
or ecx, 0xffffff00
inc ecx
mov edx, dword [esp + ecx*4 + 0x10]
add esi, edx
and esi, 0x800000ff
jns 0x401148
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
add byte [eax], al
invalid
jns 0x40116d
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 0x401186
dec ecx
or ecx, 0xffffff00
inc ecx
mov edx, dword [esp + ecx*4 + 0x10]
add esi, edx
and esi, 0x800000ff
jns 0x40119c
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 0x4011c1
dec ebx
or ebx, 0xffffff00
inc ebx
movzx edx, byte [esp + ebx*4 + 0x10]
xor byte [eax], dl
inc ecx
and ecx, 0x800000ff
jns 0x4011d9
dec ecx
or ecx, 0xffffff00
inc ecx
mov edx, dword [esp + ecx*4 + 0x10]
add esi, edx
and esi, 0x800000ff
jns 0x4011ef
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 0x401214
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 0x40122d
dec ecx
or ecx, 0xffffff00
inc ecx
mov edx, dword [esp + ecx*4 + 0x10]
add esi, edx
and esi, 0x800000ff
invalid