Function at 0x679490
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ecx
mov ecx, dword [esp + 8]
push ebx
push ebp
mov ebp, dword [0x91d3f0]
push esi
mov ebx, 1
push edi
mov dword [esp + 0x10], ebx
lea esi, [ebp + 0x7b8]
mov eax, dword [esi + 0x8c0]
test eax, eax
jl 0x679510
movzx eax, byte [ecx + 0xd8]
movzx edx, byte [ecx + 0xd7]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
imul eax, eax, 0x110
mov edx, dword [eax + 0xeb6620]
shr edx, 0x1a
mov eax, 0xffffff6c
sub eax, edx
lea edi, [eax + eax*8]
shl edi, 4
mov eax, 0xb30f6353
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fcomp dword [esi]
fnstsw ax
test ah, 0x41
jnp 0x67987b
mov eax, dword [esi + 0x8c4]
test eax, eax
jl 0x679573
movzx eax, byte [ecx + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [ecx + 0xd7]
lea edx, [eax + edx*8]
imul edx, edx, 0x110
mov edx, dword [edx + 0xeb6620]
shr edx, 0x1a
mov eax, 0xffffff6c
sub eax, edx
lea edi, [eax + eax*8]
shl edi, 4
mov eax, 0xb30f6353
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fcomp dword [esi + 4]
fnstsw ax
test ah, 0x41
jnp 0x67985c
mov eax, dword [esi + 0x8c8]
test eax, eax
jl 0x6795d6
movzx eax, byte [ecx + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [ecx + 0xd7]
lea edx, [eax + edx*8]
imul edx, edx, 0x110
mov edx, dword [edx + 0xeb6620]
shr edx, 0x1a
mov eax, 0xffffff6c
sub eax, edx
lea edi, [eax + eax*8]
shl edi, 4
mov eax, 0xb30f6353
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fcomp dword [esi + 8]
fnstsw ax
test ah, 0x41
jnp 0x67985f
mov eax, dword [esi + 0x8cc]
test eax, eax
jl 0x679639
movzx eax, byte [ecx + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [ecx + 0xd7]
lea edx, [eax + edx*8]
imul edx, edx, 0x110
mov edx, dword [edx + 0xeb6620]
shr edx, 0x1a
mov eax, 0xffffff6c
sub eax, edx
lea edi, [eax + eax*8]
shl edi, 4
mov eax, 0xb30f6353
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fcomp dword [esi + 0xc]
fnstsw ax
test ah, 0x41
jnp 0x679864
mov eax, dword [esi + 0x8d0]
test eax, eax
jl 0x67969c
movzx eax, byte [ecx + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [ecx + 0xd7]
lea edx, [eax + edx*8]
imul edx, edx, 0x110
mov edx, dword [edx + 0xeb6620]
shr edx, 0x1a
mov eax, 0xffffff6c
sub eax, edx
lea edi, [eax + eax*8]
shl edi, 4
mov eax, 0xb30f6353
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fcomp dword [esi + 0x10]
fnstsw ax
test ah, 0x41
jnp 0x679869
mov eax, dword [esi + 0x8d4]
test eax, eax
jl 0x6796ff
movzx eax, byte [ecx + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [ecx + 0xd7]
lea edx, [eax + edx*8]
imul edx, edx, 0x110
mov edx, dword [edx + 0xeb6620]
shr edx, 0x1a
mov eax, 0xffffff6c
sub eax, edx
lea edi, [eax + eax*8]
shl edi, 4
mov eax, 0xb30f6353
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fcomp dword [esi + 0x14]
fnstsw ax
test ah, 0x41
jnp 0x67986e
mov eax, dword [esi + 0x8d8]
test eax, eax
jl 0x679762
movzx eax, byte [ecx + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [ecx + 0xd7]
lea edx, [eax + edx*8]
imul edx, edx, 0x110
mov edx, dword [edx + 0xeb6620]
shr edx, 0x1a
mov eax, 0xffffff6c
sub eax, edx
lea edi, [eax + eax*8]
shl edi, 4
mov eax, 0xb30f6353
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fcomp dword [esi + 0x18]
fnstsw ax
test ah, 0x41
jnp 0x679873
mov eax, dword [esi + 0x8dc]
test eax, eax
jl 0x6797c5
movzx eax, byte [ecx + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [ecx + 0xd7]
lea edx, [eax + edx*8]
imul edx, edx, 0x110
mov edx, dword [edx + 0xeb6620]
shr edx, 0x1a
mov eax, 0xffffff6c
sub eax, edx
lea edi, [eax + eax*8]
shl edi, 4
mov eax, 0xb30f6353
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fcomp dword [esi + 0x1c]
fnstsw ax
test ah, 0x41
jnp 0x679878
add ebx, 8
add esi, 0x20
cmp ebx, 0x79
jl 0x6794ae
cmp ebx, 0x80
mov dword [esp + 0x10], ebx
jge 0x67987f
lea edi, [ebp + ebx*4 + 0x7b4]
jmp 0x6797f0
mov eax, dword [edi + 0x8c0]
test eax, eax
jl 0x67984e
movzx eax, byte [ecx + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [ecx + 0xd7]
lea edx, [eax + edx*8]
imul edx, edx, 0x110
mov edx, dword [edx + 0xeb6620]
shr edx, 0x1a
mov eax, 0xffffff6c
sub eax, edx
lea esi, [eax + eax*8]
shl esi, 4
mov eax, 0xb30f6353
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fcomp dword [edi]
fnstsw ax
test ah, 0x41
jnp 0x67987b
inc ebx
add edi, 4
cmp ebx, 0x80
jl 0x6797f0
jmp 0x67987b
inc ebx
jmp 0x67987b
add ebx, 2
jmp 0x67987b
add ebx, 3
jmp 0x67987b
add ebx, 4
jmp 0x67987b
add ebx, 5
jmp 0x67987b
add ebx, 6
jmp 0x67987b
add ebx, 7
mov dword [esp + 0x10], ebx
mov edx, dword [ebp + ebx*4 + 0xb34]
mov eax, dword [ebp + ebx*4 + 0x434]
push edx
mov edx, dword [ecx + 0x2cc]
push eax
mov eax, dword [ecx + 0x2c4]
push edx
push eax
call fcn.00644340
fsqrt
add esp, 0x10
call fcn.0043bd30
cmp eax, 0x60
pop edi
pop esi
pop ebp
pop ebx
jle 0x6798be
sub eax, 0x60
mov dword [esp + 8], eax
jmp 0x6798c6
mov dword [esp + 8], 0
fild dword [esp + 8]
mov ecx, dword [0x91cfa8]
fmul dword [ecx + 0x48]
fidiv dword [esp]
add esp, 4
jmp fcn.0043bd30