Function at 0x40f2e6
Capabilities:
Encrypt data using rc4 prga

Disassembly:
dec eax
enter 0x34b, 0xffffffffffffffed
pushal
dec edi
int 0x74
jbe 0x40f287
ja 0x40f289
xor byte [edi - 0x78], dh
mov byte [eax - 0x775412a0], cl
mov byte [ebx + 0x60], cl
pushal
pushal
xor bl, ah
mov byte [eax + 0x77769e61], cl
ja 0x40f205
add esp, dword [ecx + ebx*8 - 0x25]
add ecx, ebp
test byte [ebx], cl
dec eax
test byte [ecx], al
int 0x74
in al, dx
add edx, dword [ebp - 0x77777778]
add ecx, dword [ebx - 0x7777d414]
mov byte [eax + 0x380cd03], cl
aad 0x84
add esp, ebp
je 0x40f251
jmp 0x40f2c4
push 0x804a41d3
mov al, dl
ror dword [edi], 1
mov word [edi + esi*2 + 0x6403dd68], gs
fstpnce st(1), st(0)
fcmovnu st(0), st(6)
fucompi st(4)
add edi, dword [ebp - 0x77777778]
add ebp, edi
je 0x40f2c0
int 0x70
invalid
mov byte [edi - 3], dh
ja 0x40f278
test byte [edi - 3], dh
jo 0x40f2f7
std
and byte [eax - 0xf], 0x93
mov dword [eax + 0x384cd03], ecx
add ecx, ebp
test byte [ebx], al
enter 0xb8c, 0x68
jne 0x40f294
lds eax, [ecx + eax + 0x3ec8cc9]
mov ch, 0x88
mov byte [eax + 0x74d50388], cl
add dword [ebx - 0x776afe14], esi
mov byte [eax - 0x2c292878], cl
inc ecx
dec edx
leave
mov esp, gs
add esi, dword [ebp - 0x77777778]
add edx, ebp
je 0x40f2a2
mov bl, 0xec
in al, dx
add dword [ebp - 0x77777778], edx
xlatb
salc
rol dword [ecx + 0x4a], cl
or byte [eax + 0xb6403dd], 0x64
sbb bl, 0xde
sbb bl, 0xde
fbstp tbyte [ecx + eax - 0x33]
je 0x40f279
dec eax
fcomp st(0)
fcomp st(0)
ja 0x40f2c1
fdiv dword [edi - 3]
je 0x40f33d
std
pushfd
ja 0x40f2c7
cwde
ja 0x40f2ca
test byte [edi - 3], dh
and byte [eax - 0x4a], 0xff
mov byte [eax + 0x1a84c0b], cl
int 0x70
xlatb
add ebp, ecx
jo 0x40f2b4
salc
rol dword [ebx], cl
int 0x70
add ebp, dword [ebp - 0x2b]
dec ebx
fidiv word [ebx + eax - 4]
lodsb al, byte [esi]
test byte [ebx], al
mov byte [eax - 0x299fb945], 0x79
salc
jns 0x40f36c
ja 0x40f36d
ja 0x40f2d9
loop 0x40f280
mov dh, bl
fidiv word [edi - 2]
ja 0x40f2f9
pushfd
ja 0x40f2fc
test dl, ah
mov byte [edi - 4], dh
lodsb al, byte [esi]
lodsb al, byte [esi]
ja 0x40f305
invalid
cwde
ja 0x40f306
lodsb al, byte [esi]
lodsb al, byte [esi]
pushal
mov edi, edi
mov byte [eax - 0x2957b3f5], cl
dec ebx
fld qword [ebx]
or esp, dword fs:[eax + esi*4 - 0x25]
or ebp, esi
sub byte [ebx - 0x2777777], 0x9a
xor byte [edi], dh
jnp 0x40f2f2
mov byte [ebx], al
lds eax, [ecx + eax - 0x37b74477]
popal
cmp byte [eax - 0x12f47778], cl
push eax
mov byte [edi - 0x33], cl
push esp
int 0x54
arpl word [ebx - 0x38], di
mov byte [ecx], ch
jo 0x40f399
retf 0x588
mov ebx, 0x68cd0149
add ecx, ebp
nop
add ebp, ecx
insb byte es:[edi], dx
add ecx, ebp
test byte [ecx], al
int 0x60
add ecx, ebp
xchg esp, eax
add ebp, ecx
add ecx, ebp
test al, 1
int 0x78
or ebp, ebp
js 0x40f374
in eax, dx
jl 0x40f2f4
or ebp, ebp
in eax, dx
jo 0x40f2f8
or ebp, ebp
je 0x40f2fc
add ebp, ebp
jl 0x40f379
in eax, 0x70
in al, dx
jo 0x40f367
sub dword [eax + 0x1888888], ecx
int 0x50
add eax, 0x2bec50cd
mov byte [eax - 0x32b07778], cl
inc eax
mov dword [eax - 0x32fc7778], ecx
add byte [ecx], 0xcd
inc esp
add ecx, ebp
cwde
add ebp, ecx
pop eax
pushal
mov byte [edx + 0x8038888], bh
or byte [eax - 0x32fe7778], cl
pop esp
add eax, 0x3d844cd
int 0x80
ja 0x40f36e
ja 0x40f395
pop esp
rcl ecx, 1
or ebp, ebp
inc eax
mov byte [ebx], cl
cmc
je 0x40f34b
cld
lahf
in al, dx
add edx, dword [ebp - 0x77777778]
add ecx, dword [ebx + 0x150d503]
mov ebp, esp
add dword [ebp - 0x77777778], edx
arpl word [ecx - 0x13af32fd], ax
sub ecx, dword [eax + 0x3888888]
int 0x40
rol dword [ecx + 0x4b], cl
fld qword [ebx]
fstpnce st(3), st(0)
je 0x40f3f5
int 0x84
add eax, eax
cmp byte [ebx - 0x229f7b3b], 0x78
ja 0x40f476
rol byte [eax + 0x6084c5bb], 0xdd
js 0x40f475
ja 0x40f403
add ecx, ebp
add byte [ebx], 0xc8
int 0x80
add ecx, eax
enter 0xb8c, 0x68
out dx, al
cld
cdq
add ecx, ebp
test byte [edi - 0x38], cl
lodsb al, byte [esi]
mov dword [eax + 0x48bb8888], ecx
enter 0xffffffffffffe463, 0x63
mov word [ebx], cs
push 0x399fcee
int 0x84
dec edi
enter 0xffffffffffff89ac, 0xffffffffffffff88
mov byte [eax + 0x63c848bb], cl
in al, 0x63
mov byte [eax - 0x37b74478], cl
arpl sp, sp
arpl dx, sp
loop 0x40f3a6
loop 0x40f3fe
mov dword [ebx], eax
int 0x84
ja 0x40f41a
add ecx, ebp
test byte [edi - 8], dh
nop
add ecx, ebp
test byte [edi - 8], dh
pushfd
add ecx, ebp
test byte [edi - 8], dh
test dl, ah
mov byte [edi - 3], dh
cwde
add ecx, ebp
test byte [edi - 8], dh
cwde
ja 0x40f439
and byte [eax + 0x5a], 0xfd
mov byte [eax + 0x3a84c0b], cl
int 0x84
or esi, eax
lodsb al, byte [esi]
mov ch, bh
xor dword [edi - 3], 0xffffff80
ja 0x40f450
xor byte [edi - 3], 0x84
pushal
lea esi, [esi + 0x77]
test byte [eax - 0x73], ah
jbe 0x40f4cf
ja 0x40f43c
mov dl, ah
mov dl, ah
mov dl, ah
mov dl, ah
mov byte [0xe0d874cd], al
stosd dword es:[edi], eax
mov dword [eax + 0x762d6088], ecx
ja 0x40f4e8
or ecx, dword [esp + edx*4 + 3]
int 0x74
add edx, ebp
test byte [ebx], al
je 0x40f47b
aad 0x84
add ebp, ebx
xchg esp, eax
add esp, ebx
test al, 0x77
push 0xd3c848bb
inc ecx
dec ebx
fld qword [ebx]
fstpnce st(3), st(0)
invalid
jmp 0x40f411
or byte [ebx], 0xf5
or esi, ebp
test byte [eax - 0x32fcbd0b], cl
pushfd
into
add dword [eax + 0x190cd03], edi
nop
mov bl, 0xd7
test bh, bh
invalid
lea esp, [eax - 0x22]
dec byte [eax - 0x1cb1fc78]
dec eax
pushfd
mov ecx, ebp
je 0x40f4ce
salc
rol dword [ecx + 0x4b], cl
add ecx, esp
lodsb al, byte [esi]
sbb dh, 3
cld
lodsb al, byte [esi]
add byte [ecx], 0x8e
pushal
adc dword [eax + 0x8038888], edi
adc byte [eax - 0x31fe7778], cl
mov word [eax + 3], fs
mov eax, 0x38018888
adc byte [eax + 0x4e038888], cl
salc
dec ebx
pushal
hlt