Function at 0x10008928
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
and dword [ebp - 0x10], 0
mov dword [ebp - 0x18], 0xc89
cmp dword [ebp - 0x18], 0x2098
jle 0x100089d2
int 0xb9
invalid
mov dword [ebp - 0xc], 0x1f
jmp 0x100089e2
mov eax, dword [ebp - 0xc]
dec eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jl 0x10008ba3
mov dword [ebp - 0x1c], 0x915
cmp dword [ebp - 0x1c], 0x1d4b
jle 0x10008ac3
dec edx
int 0x19
xchg ecx, eax
out 0x67, eax
push edi
stosd dword es:[edi], eax
mov byte [ecx - 0x2166bc41], cl
mov cl, 0xcd
fmulp st(0)
out dx, eax
pop ebx
xchg ebx, eax
cli
pop ebx
sbb al, 0xb8
inc ebp
jno 0x10008a23
xor byte [ecx], al
cmp edi, dword [ebx - 0x713e5133]
jb 0x10008a14
invalid
movsd dword es:[edi], dword [esi]
jo 0x10008a3a
cmp bh, bl
inc ecx
scasb al, byte es:[edi]
or eax, 0xa89f995a
push ebp
pushfd
stosd dword es:[edi], eax
popal
and bx, word [ebx]
sti
fld qword [esi + 0x3b]
mov byte [ebx], 0x92
push ebp
fld dword [ebp + 0x10]
fdivr dword [ebp - 0x11]
test dword [0x23710441], esp
push ebx
xor eax, 0x3ad06cb1
int1
iretd
xor eax, eax
inc eax
mov ecx, dword [ebp - 0xc]
shl eax, cl
and eax, dword [ebp + 8]
je 0x10008ad6
mov byte [ebp - 1], 1
jmp 0x10008ada
mov byte [ebp - 1], 0
mov al, byte [ebp - 1]
mov byte [ebp - 3], al
xor eax, eax
inc eax
mov ecx, dword [ebp - 0xc]
shl eax, cl
and eax, dword [ebp + 0xc]
je 0x10008af3
mov byte [ebp - 2], 1
jmp 0x10008af7
mov byte [ebp - 2], 0
mov al, byte [ebp - 2]
mov byte [ebp - 4], al
movzx eax, byte [ebp - 3]
movzx ecx, byte [ebp - 4]
and eax, ecx
je 0x10008b0f
and dword [ebp - 0x14], 0
jmp 0x10008b1c
movzx eax, byte [ebp - 3]
movzx ecx, byte [ebp - 4]
or eax, ecx
mov dword [ebp - 0x14], eax
mov al, byte [ebp - 0x14]
mov byte [ebp - 5], al
mov eax, dword [ebp - 0x10]
shl eax, 1
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], 0xd7
cmp dword [ebp - 0x20], 0x1bad
jle 0x10008b94
lcall 0x2018, 0xe1a099af
movsd dword es:[edi], dword [esi]
jno 0x10008b64
outsd dx, dword [esi]
cmp eax, 0x97af7571
hlt
mov ah, 0x23
inc ebp
push esi
pop edx
jno 0x10008bc5
or dh, byte ss:[ebp + 0x51]
and ch, byte [edx + 0x52f4d0e7]
adc ah, byte [ebp + 0x7a]
lodsb al, byte [esi]
jno 0x10008bd0
arpl word [edx + esi*4 + 0x590f0841], ax
loop 0x10008b85
fsub dword [0xb6126fe4]
and eax, 0xb6126fe4
stosd dword es:[edi], eax
inc ebx
cdq
xor edx, dword [edx + 0x67631362]
stosd dword es:[edi], eax
movzx eax, byte [ebp - 5]
or eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
jmp 0x100089db
mov dword [ebp - 0x24], 0x7ce
cmp dword [ebp - 0x24], 0x2468
jle 0x10008c93
int 0xda
lodsd eax, dword [esi]
movsb byte es:[edi], byte [esi]
mov dword [edx + edx + 0x3ca66f61], ebp
ror byte [esi], 1
xchg edx, eax
lodsb al, byte [esi]
mov bl, 0x41
pop ss
xchg edx, eax
out 0x94, eax
salc
aaa
std
jge 0x10008c2d
pop esp
int1
pop es
rcpps xmm4, xmmword [esi - 0x56]
mov byte [0xb6dd803c], al
popal
dec ebx
movsb byte es:[edi], byte [esi]
mov esp, 0x167be1b7
mov edi, 0xaaf222e0
sbb al, 0x92
fnstenv [edx + ebx*4]
adc eax, 0x1b5b8486
jns 0x10008c53
clc
push 0xffffffffffffffa9
cmpsb byte [esi], byte es:[edi]
or byte [edi - 0x1e], bh
dec ebx
mov edx, 0xc8f82502
retf 0x742d
clc
enter 0x2dca, 0x74
add dword [edi - 0xd62cdf7], esp
and ch, byte [ebx + 0x5d17a2a4]
cli
aad 0x96
dec edx
push ebp
or al, 0x64
mov al, byte [0x949c10e2]
dec edx
outsb dx, byte [esi]
or ebp, ebp
sub dword [esi + 0x1e4e88b], eax
dec edi
dec esi
mov byte [0xe3d30643], al
shl dword [esi - 0x66], 1
cmc
retf 0x52c2
jecxz 0x10008c00
lcall 0x52c2, 0xcaf5
mov al, byte [0xe328b98c]
cmp esi, ebx
or dh, bh
stosd dword es:[edi], eax
mov edi, 0x30c83f
imul edx, dword [ebp - 0x73], 0xfffffffc
mov al, byte [0x7001aaab]
mov dword [0xddec2604], eax
fild qword [edi]
das
stosb byte es:[edi], al
outsb dx, byte [esi]
imul esp, dword [edi + 0x5403820f], 0x56
ljmp 0xbf
mov eax, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret