Function at 0x42f680
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sbb edx, dword [esi - 0x7f]
fidivr word [ebx - 0x1830d1f7]
sbb byte [esi - 0x53118e7a], ch
out 0x18, eax
scasb al, byte es:[edi]
xchg byte [ecx - 0x12], dh
lodsb al, byte [esi]
dec ebp
and ah, ah
push ss
inc eax
insb byte es:[edi], dx
push eax
sbb eax, 0x1a5b3ba8
jno 0x42f63a
push 0x78
js 0x42f5b9
shl dword [edi], cl
fadd dword [edx]
jnp 0x42f604
insb byte es:[edi], dx
fcomp dword [edx - 0x590d7878]
stc
ljmp 0xe82
add eax, 0x647a15e3
adc dword [ebx - 0x38], 0xe7dda74
and bh, ah
and ecx, dword [edx - 0x72]
mul dl
movsb byte es:[edi], byte [esi]
cli
sbb ch, byte [esi - 0x45]
daa
pop dword [ecx - 0x27945777]
lcall 0xa8c, 0x2f439b71
jno 0x42f5c1
inc ebx
das
mov word [edx], cs
in eax, dx
aaa
stosd dword es:[edi], eax
jp 0x42f6ac
test byte [ebx], ah
insb byte es:[edi], dx
mov dh, 0x5d
invalid
outsd dx, dword [esi]
adc edi, edi
mov al, byte [0xaba0a7d7]
pop ecx
rol dword [ebx], cl
xor byte [ebx + ebp], ch
add esi, dword [eax]
sub al, 0x2b
pop es
or eax, 0x87d983e8
or dword [esi], ecx
ret
insd dword es:[edi], dx
inc ebx
lodsb al, byte [esi]
fadd qword [edi + ebp*2 - 0x5a]
lodsb al, byte [esi]
aam 0x2f
in eax, 0xc6
outsd dx, dword [esi]
mov edi, 0x40455d07
jg 0x42f644
xlatb
jae 0x42f624
out 0x18, eax
push edx
cli
arpl word [ebp - 0x777e288f], si
push ds
outsd dx, dword [esi]
nop
nop
nop
push ebp
mov ebp, esp
add esp, 0xffffffe0
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x48]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x40]
mov al, byte [eax]
dec al
je 0x42f6ba
dec al
je 0x42f727
dec al
je 0x42f78e
add dh, bh
enter 0xffffffffffff840f, 0xffffffffffffff86
add dword [eax], eax
add cl, ch
pop esp
add al, byte [eax]
add byte [ebx + 0x408bfc45], cl
and al, 0x40
dec al
je 0x42f83b
jmp 0x42f916
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
inc eax
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x20]
sub edx, eax
jb 0x42f916
inc edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x24]
mov edx, dword [ebp - 4]
movzx edx, byte [edx + 0x48]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + edx*4 + 0x40]
mov al, byte [edx + eax]
mov edx, dword [ebp - 4]
movzx edx, byte [edx + 0x48]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + edx*4 + 0x40]
mov ecx, dword [ebp - 0x1c]
add al, byte [edx + ecx]
and al, 0xff
mov edx, dword [ebp - 4]
movzx edx, byte [edx + 0x48]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + edx*4 + 0x40]
mov ecx, dword [ebp - 0x1c]
mov byte [edx + ecx], al
inc dword [ebp - 0x1c]
dec dword [ebp - 0x20]
jne 0x42f6d6
jmp 0x42f916
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
test eax, eax
jbe 0x42f916
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x48]
xor al, 1
and eax, 0x7f
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x40]
mov edx, dword [ebp - 0x1c]
mov al, byte [eax + edx]
mov edx, dword [ebp - 4]
movzx edx, byte [edx + 0x48]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + edx*4 + 0x40]
mov ecx, dword [ebp - 0x1c]
add al, byte [edx + ecx]
and al, 0xff
mov edx, dword [ebp - 4]
movzx edx, byte [edx + 0x48]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + edx*4 + 0x40]
mov ecx, dword [ebp - 0x1c]
mov byte [esp + edi*4], al
leave
lea ecx, [ecx + esi*4]
lea edi, [ecx*8 + 0x5bb7a8]
mov esi, dword [edi + 4]
mov edx, dword [esi + 4]
mov dword [edi + 4], edx
mov dword [edx], edi
cmp edi, edx
add al, 0x8b
push esi
add al, 0x89
push edi
add al, 0x89
cmp bh, byte [ecx]
xlatb
jne 0x42f7b2
mov edx, 0xfffffffe
rol edx, cl
and dword [eax*4 + 0x5bb728], edx
jne 0x42f7b2
btr dword [0x5bb724], eax
mov edi, 0xfffffff0
and edi, dword [esi - 4]
cmp edi, 0x10a60
jb 0x42f82e
mov edx, edi
movzx edi, word [ebx + 0x1a]
sub edx, edi
lea eax, [edi + esi]
lea ecx, [edx + 3]
mov dword [eax - 4], ecx
mov dword [edx + eax - 8], edx
call fcn.0042f436
jmp 0x42f833
and byte [edi + esi - 4], 0xf7
lea ecx, [edi + 6]
mov dword [esi - 4], ecx
xor eax, eax
mov byte [0x5bb718], al
mov dword [esi], ebx
mov dword [esi + 8], eax
mov dword [esi + 0xc], 1
mov dword [ebx + 0x10], esi
lea eax, [esi + 0x20]
movzx ecx, word [ebx + 2]
lea edx, [ecx + eax]
mov dword [ebx + 8], edx
add edi, esi
sub edi, ecx
mov dword [ebx + 0xc], edi
mov byte [ebx], 0
mov dword [eax - 4], esi
pop edi
pop esi
pop ebx
ret
jb 0x42f932
mov eax, dword [0x5bb71c]
sub eax, ebx
mov dword [0x5bb71c], eax
mov dword [0x5bb720], ecx
or ebx, 2
mov dword [eax - 4], ebx
jmp 0x42f939
mov eax, ebx
call fcn.0042f502
mov byte [0x5bb718], 0
pop ebx
ret