Function at 0xb014ae
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov dx, 0x30f0
mov edx, dword [esp]
not dx
jmp 0xb01899
jmp 0xb01926
mov cl, byte [ecx]
call 0xb01466
lea esp, [esp + 4]
mov byte [eax + esi + 0x18], cl
push esi
jmp 0xb014a3
lea esp, [esp + 4]
inc eax
call 0xb014ae
fld dword [ebx - 0x137cfd3c]
adc ch, bl
sbb ebx, esi
rep outsd dx, dword [esi]
aad 0xb
xor eax, 0x9596880e
scasb al, byte es:[edi]
jb 0xb014fb
sbb esi, dword [edx + 0x6d]
mov dword [esp], esp
lea esp, [esp + 8]
jmp 0xb0147c
and al, 2
jmp 0xb01a8c
inc eax
sub al, 0x4d
xor eax, 0xa15ca6d
mov dword [reloc.KERNEL32.dll_FlushFileBuffers], eax
mov dword cs:[esi], esi
cmpsb byte [esi], byte es:[edi]
cmpsb byte ss:[esi], byte es:[edi]
mov esi, 0x2a75d6ba
add eax, dword [edx]
add ch, byte [edx]
dec ebx
or eax, edi
loopne 0xb014ec
sub al, byte [esi]
daa
sbb dword [ebx - 0x50], ecx
xchg esi, eax
mov edi, 0xbc48c7a7
mov ecx, 0xdf5242eb
dec edx
je 0xb01522
cmpsd dword [esi], dword es:[edi]
invalid
sbb dl, byte [eax - 0x37]
pop esi
jb 0xb01599
cmp byte [ecx + 0x41], bl
jg 0xb0150a
sbb eax, dword [ecx]
stc
mov esi, 0x4d63475f
test al, 0x1d
std
fisttp qword [ecx + 0x2d]
cmp al, 0x12
fstp dword [ebp + 0x72]
sbb dword [ebx], 0x8d88243c
fcomp dword [eax]
dec edi
xchg edx, eax
sbb al, 4
out dx, al
cmp al, 0x97
push es
pop ecx
fbstp tbyte [esi]
pop edi
sub dl, byte fs:[ebx + edx]
sub dword [edx + 0x3e], ecx
sbb eax, 0x80ba4d20
mov eax, dword [reloc.KERNEL32.dll_FlushFileBuffers]
and byte [eax], cl
xchg ebp, eax
cmp al, 0xaf
scasb al, byte es:[edi]
loopne 0xb01595
aam 0xfe
jb 0xb0159a
mov dl, byte [ecx - 0x3368203d]
pop ss
add byte [ebp + 0x27435b65], ah
sbb esp, 0x83fdaad8
fcmovu st(0), st(2)
rcr byte [esi], 1
push ds
invalid
scasb al, byte es:[edi]
into
pop ebx
cmpsb byte [esi], byte es:[edi]
pop es
sti
cmp dl, ch
ror byte [ebx], cl
mov ebx, 0xbc8b6b16
xchg byte [ebx - 0x732e0dd8], bh
mov ebx, 0x8cd1f228
xor ebp, ebp
xor dword [edx + 0x3a], edx
stosb byte es:[edi], al
xchg edi, eax
loop 0xb015c9
push ecx
or al, 0x26
push cs
fisub dword [edi + edi*4 - 0x1d]
inc ebp
mov cl, 0x95
jnp 0xb0155c
jbe 0xb01612
mov esi, 0xc5ddbc78
push edx
add eax, 0xdfa71e50
xchg esp, eax
jl 0xb01635
mov esp, 0x552c5dd
push eax
push ds
cmpsd dword [esi], dword es:[edi]
fist word [esp + edi*2 + 0x5715ba60]
popfd
invalid
mov edx, 0xf09d5715
jbe 0xb015a9
int 0x2a
sbb al, 0x40
xchg ebx, eax
pop ecx
jp 0xb0156e
test al, 0xbd
ljmp 0xefec
stc
outsb dx, byte [esi]
imul ebx, dword [ebx - reloc.KERNEL32.dll_FlushFileBuffers], 0x514af4d4
cli
aam 0xf4
dec edx
push ecx
pop ss
je 0xb015bf
or eax, 0xeb03b2fd
sti
std
pop eax
add eax, 0xa5bb5b75
jg 0xb015f1
xor esi, dword [ebp + reloc.KERNEL32.dll_FlushFileBuffers]
in eax, dx
sub edi, dword [edi + eax*8 + 0x1d]
push ebx
xchg byte [ebx], cl
add eax, dword [reloc.KERNEL32.dll_FlushFileBuffers]
jo 0xb015f8
add eax, 0xc77c2bed
sbb eax, 0xf30b8653
add eax, dword [reloc.KERNEL32.dll_FlushFileBuffers]
lodsb al, byte [esi]
in eax, 0x21
pop ds
xchg edi, eax
push edi
add byte [edx - 0x75], ch
mov eax, 0x4dca2825
adc esi, dword [ecx]
jl 0xb0165a
push eax
jmp 0xb0160d
push cs
out dx, al
or byte [eax], al
push ds
mov ecx, 0xb4db39ac
lcall 0x691e, 0xcd8fa786
sub al, 0xff
sub al, 0xad
xchg ebp, eax
retf 0xdd82
or edx, ebx
cmc
and bl, dl
push esi
jmp 0xb01830
shl edx, 8
or edx, ebx
bsr ebx, eax
neg bx
jmp 0xb0181a
sub esp, 0xf
sub esp, 4
lea esp, [esp + 3]
shl edx, 8
jmp 0xb017e4
movzx ebx, byte [eax - 2]
jmp 0xb01870
mov esi, eax
add esi, reloc.KERNEL32.dll_FlushFileBuffers
movzx ebx, byte [esi]
pop esi
jmp 0xb017ec
push ebp
mov ebp, eax
movzx ebx, byte [ebp]
pop ebp
jmp 0xb0180b
lea esp, [esp + 2]
jmp 0xb0187a
shl edx, 8
cmc
or edx, ebx
push ax
jmp 0xb0185a
push ecx
mov ecx, ecx
lea ecx, [ecx*4]
jmp 0xb018c2
movzx edx, byte [eax + 1]
not bh
lea ebx, [eax + ecx]
mov ebx, 0xd02b5457
lea ebx, [eax + 0x7c]
jmp 0xb01850
pushal
jmp 0xb018f6
lea ecx, [ecx + ebp]
add ecx, 0xffffffc0
mov dword [ecx], edx
pop ecx
jmp 0xb018ac
add eax, 4
cmp ecx, 0x10
jb 0xabe901
jmp 0xb01915
push word [esp]
push dword [esp + 2]
pushfd
lea esp, [esp + 2]
jmp 0xb018ff
lea esp, [esp + 0x30]
inc ecx
clc
clc
jmp 0xb018d0
lea esp, [esp + 0xc]
jmp 0xb0193c
lea ecx, [esi + 8]
mov eax, 0xb824c56
setl al
lea eax, [ebp - 0x40]
pushfd
jmp 0xb018de
test edi, edi
jmp 0xb0194d
call 0xad9387
pushal
xor eax, eax
lea esp, [esp + 0x20]
jmp 0xabe97f
jne 0xabe8d1
mov ebx, esi
push eax
lea esp, [esp + 4]
jmp 0xb01a41
lea eax, [esi + 0x1a]
jmp 0xabe901
pop ebx
jmp 0xabea13
lea esp, [esp + 0x20]
jne 0xabe97f
not cx
xor ecx, ecx
jmp 0xb0196d