Function at 0x41ff15
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x268
push edi
mov dword [ebp - 0x5c], 4
mov eax, dword [ebp + 0x18]
mov dword [eax], 0
mov ecx, dword [ebp + 0x14]
and ecx, 0xff
test ecx, ecx
je 0x41ff61
mov edx, dword [ebp + 0x14]
and edx, 0xff
cmp edx, 1
je 0x41ff61
mov eax, dword [ebp + 0x14]
and eax, 0xff
cmp eax, 2
je 0x41ff61
mov eax, 1
jmp 0x420091
xor ecx, ecx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], ecx
mov ecx, 0x80
xor eax, eax
lea edi, [ebp - 0x268]
rep stosd dword es:[edi], eax
mov byte [ebp - 0x68], 0xff
mov byte [ebp - 0x67], 0xa3
mov byte [ebp - 0x66], 0
mov dl, byte [ebp + 0xc]
mov byte [ebp - 0x65], dl
mov al, byte [ebp + 0x10]
mov byte [ebp - 0x64], al
mov ecx, dword [ebp + 0x10]
shr ecx, 8
mov byte [ebp - 0x63], cl
mov edx, dword [ebp + 0x10]
shr edx, 0x10
mov byte [ebp - 0x62], dl
mov eax, dword [ebp + 0x10]
shr eax, 0x18
mov byte [ebp - 0x61], al
mov cl, byte [ebp + 0x14]
mov byte [ebp - 0x60], cl
push 0
push 0
push 1
push 0
call dword [0x4cd298]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x41ffe5
adc byte [eax + 0x4d8b9c45], cl
adc cl, al
jmp 0x9d8f87a4
mov byte [0x506413], 1
push eax
add byte [ecx], al
mov byte [0x506414], 0
xor eax, eax
mov al, byte [0x506413]
jmp 0x420091
mov ecx, 0x14
xor eax, eax
lea edi, [ebp - 0x58]
rep stosd dword es:[edi], eax
mov byte [ebp - 0x58], 2
mov byte [ebp - 0x55], 0x48
mov dl, byte [0x5063ef]
mov byte [esi + 0x57f506fe], al
jbe 0x41ff8f
popal
sbb dword gs:[ebx], eax
ror dword [esi + 0x3e], cl
sbb eax, 0x7f47226c
or al, 0x66
in al, 0x34
fbld tbyte [esi]
sbb byte [esi + 0x564988c3], bh
sub ah, al
or eax, 0x76ec13b9
jg 0x41ffce
inc eax
push cs
out dx, eax
sbb eax, 0xd1b3ed33
mov al, 0x16
mov edx, dword [ebx - 0x5a]
salc
and eax, 0x9b32a694
cmp bl, ah
popfd
dec eax
inc byte [ebp + 0x13]
mov byte [eax - 0xe], bl
lodsb al, byte [esi]
mov esp, dword [eax - 0x49]
dec esp
jmp 0x82836705
in al, 0x33
aaa
or al, byte [esp + esi*4 + 0x40]
mov ah, 0x40
inc edx
fisttp dword [0xfbcbb5b4]
aad 0x73
popfd
mov cl, 0x44
sal dword [ecx + 0x36ae8ee4], cl
cmp dword [edi], ebp
or bl, byte [esi]
or ah, byte [edi + eax*8 - 0x1a062a1]
add edi, dword [edx + 0x69]
mov al, 0x51
lahf
clc
shl dword [eax + edx*2], cl
pop ss
cmp al, 0xca
sbb edi, edi
das
cld
bound esi, qword [edx + 0x4d]
adc al, 0x87
cld
xchg esp, edi
jge 0x4200cb
pushfd
sub ebx, dword [edi - 0x3d]
xor eax, 0xf3e02dbc
stc
add eax, dword [edi]
js 0x42012b
ret
mov eax, 0xee17f27e
popal
dec esp
pushfd
out 0x23, al
mov eax, dword [esi]
lodsb al, byte ds:[esi]
invalid
mov esp, 0xb4d91b14
cdq
mov cl, 0x5e
and dl, byte [esp + esi*4]
scasb al, byte es:[edi]
leave
js 0x4200d2
out 0x83, eax
leave
xchg ebx, eax
push ebx
fmul qword [esi + eax*2]
mov esi, 0x8a472203
sbb ah, byte [edx + 0x1c]
shl eax, 0x51
mov edi, 0x2b4d3a80
ffree st(3)
inc eax
and dl, byte [edi]
cmp eax, 0x7483c02b
sub ecx, esp
std
adc bh, byte [0x90ce6e93]
test dword [ebp + 0x37], eax
push edi
sub al, 0x68
daa
and byte [eax + 0x6e], al
les esp, [esi + 0x12]
mov eax, 0x25937e17
not dword [eax - 0x6fbf2bc0]
push esi
int 0xb3
lds ebp, [edi + 0x629bbebe]
fsub qword [edx]
mov esi, ebp
call ebx
or dh, byte [esi + 0x647c54d6]
dec ebp
insd dword es:[edi], dx
and al, byte [ebp + 0x64]
pop ebx
pop ss
cmp byte [0x2accd5d3], dh
jo 0x4201b3
cmp byte [edx], 0x4d
sub ebx, ebp
ret
inc ebx
adc esp, dword [ecx + ebx*2]
pop edx
mov eax, 0x385f0cf4
lds esp, [ebx - 0x2957eb90]
pushfd
mov al, 0x6c
jne 0x42014e
fbstp tbyte [esi + 0x2a61c35f]
loopne 0x42021b
mov cl, 0x21
nop
fcmovne st(0), st(5)
lcall 0x56f1, 0x27e75004
out 0xb0, eax
call dword [ecx]
jg 0x4201d6
shr dword [esi], 0xb
xor cl, byte [ecx]
push ss
or dword [esi], edx
push esp
xchg esp, eax
wait
fiadd word [esi + 0x42]
push ebx
dec ecx
daa
invalid
xchg byte [ebx], cl
dec eax
pushfd
push ebp
xchg ah, cl
fistp dword [ebx - 0x589d01c8]
inc edx
jbe 0x42023a
push eax
invalid
aaa
insd dword es:[edi], dx
add byte [ecx - 0x4c], dh
test dword [edi + 0x7d], esp
push ebp
fldcw word [edx + 0x53]
mov ebx, 0x84f9cc43
out dx, eax
push esi
inc ecx
and dword [0xc6beca27], 0x74
cwde
mov ebx, 0xdb213466
inc ebx
sbb byte [edi - 0x16], dl
in al, 0x9e
cld
cld
sbb ebp, dword [esi - 0x53a0e1b4]
push edi
lcall 0xa9ed, 0x81e9cd98
cmpsd dword [esi], dword es:[edi]
push edi
js 0x4202a5
aam 0xb5
rol byte [ecx], 1
or byte [eax - 0x11], dl
test eax, 0xe6772aac
sub dword [esi], eax
nop
xor al, 0xdc
jb 0x42027e
cmc
sub eax, 0x3ff7208f
mov esp, 0x1410bb02
out dx, eax
sbb al, 0xfa
loopne 0x420231
adc cl, byte [ebx + 0x7f]
adc byte [edi - 0x15], al
push cs
aam 0xb8
xor byte [ebp + 0x5b], cl
mov bh, 0x1f
pop esp
out 0x59, eax
dec ecx
adc al, 0xf4
xor cl, bl
inc ecx
enter 0x13e3, 0xffffffffffffff90
inc edx
test al, 0x51
cmpsb byte [esi], byte es:[edi]
invalid
invalid