Function at 0x404c20
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
movzx eax, word [0x493482]
xor eax, 0x55d07325
mov word [0x493482], ax
or ecx, 0xffffffff
fld qword [0x4737e8]
fsub dword [0x4a6ca0]
fstp qword [0x4737e8]
add word [0x498806], cx
mov dx, word [0x498806]
movsx eax, dx
sub eax, 0x4aebcf59
cmp eax, 0x802e97f3
jl 0x404c7b
mov edx, dword [0x455770]
imul edx, edx, 0x27f0c68c
mov dword [0x455770], edx
jmp 0x404cbd
fld dword [0x4ae4d0]
fmul qword [0x4601d8]
fld dword [0x4a5b10]
fld dword [0x4ae4d0]
fsub qword [0x43ab38]
fstp dword [0x4ae4d0]
fxch st(1)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jp 0x404cbd
fld dword [0x49ea4c]
fmul qword [0x4719e0]
fstp qword [0x4719e0]
cmp dword [ebp + 8], 0
push ebx
mov ebx, 1
je 0x404ebc
push esi
push edi
lea edi, [ebp + 8]
jmp 0x404ce0
mov ax, word [0x496ed8]
mov edx, dword [0x44068c]
mov esi, dword [ebp + 8]
cwde
add eax, eax
or edx, eax
or edx, 0x44580e2b
add esi, 8
mov dword [0x44068c], edx
cmp dword [esi], 0
je 0x404dc0
mov eax, dword [0x447b78]
cmp eax, 0x14ce076b
jge 0x404d47
mov eax, dword [0x4522a0]
mov edx, dword [0x43eecc]
and eax, 0xe6848911
not edx
cmp edx, eax
je 0x404d41
mov eax, dword [0x4527c8]
mov edx, dword [0x43d360]
add dword [0x43d360], ecx
jmp 0x404d47
mov ax, word [0x494d46]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov eax, dword [esi]
add edx, edx
add edx, edx
push edx
push 0
push eax
call fcn.004267f0
fld dword [0x4a5744]
fmul dword [0x4ad958]
add esp, 0xc
fsub dword [0x4b1068]
fld dword [0x4b31f0]
fmul dword [0x4b0350]
fcompi st(1)
fstp st(0)
jb 0x404d9a
dec word [0x48d51a]
mov cx, word [0x48d51a]
movsx eax, cx
add dword [0x450694], eax
mov edx, dword [esi]
push edx
call fcn.004218b0
mov ax, word [0x48ff2a]
mov ecx, dword [0x445810]
cwde
sar eax, 1
imul ecx, eax
add esp, 4
mov dword [0x445810], ecx
or ecx, 0xffffffff
add dword [0x446544], ebx
mov eax, dword [0x446544]
or eax, 0x60d49360
add dword [0x4507b8], eax
mov edx, dword [ebp + 8]
mov dword [edx], ebx
movzx eax, word [0x4933e8]
mov edx, dword [ebp + 8]
imul eax, eax, 0x8125a875
mov word [0x4933e8], ax
mov dword [edx + 4], 0
add dword [0x44e888], ecx
mov eax, dword [0x44e888]
movzx edx, word [0x493fdc]
add eax, 0x5f26f62d
xor edx, eax
mov eax, dword [edi + 4]
mov word [0x493fdc], dx
mov dword [esi], 0
add edi, 4
fld dword [0x4a5af4]
fmul qword [0x46a570]
fadd dword [0x4a461c]
fmul dword [0x4a88e8]
mov dword [ebp + 8], eax
fstp dword [0x4a88e8]
fld dword [0x4b0620]
fld dword [0x4b41e4]
fcompi st(1)
fstp st(0)
jbe 0x404eb0
fld dword [0x4ac3f4]
fld dword [0x4b1944]
fld dword [0x4b0d88]
fmul dword [0x4a5ca4]
fsubp st(1)
fld dword [0x4b0d88]
fsub qword [0x43ab38]
fstp dword [0x4b0d88]
fxch st(1)
fcompi st(1)
fstp st(0)
jb 0x404eb0
mov dx, word [0x49904a]
movsx eax, dx
mov edx, dword [0x44a1ac]
and edx, eax
or edx, 0x22e1dc60
mov dword [0x4547a8], edx
add word [0x49904a], bx
cmp dword [ebp + 8], 0
jne 0x404ce0
pop edi
pop esi
mov ax, word [0x48df46]
mov ecx, dword [0x44e378]
mov edx, dword [0x456a18]
cwde
sub eax, ecx
lea eax, [edx + eax + 0x366bc6e]
mov word [0x48df46], ax
add dword [0x456a18], ebx
add dword [0x44e378], ebx
movzx ecx, word [0x491328]
and ecx, 0x8415cc7f
mov word [0x491328], cx
pop ebx
pop ebp
ret