Function at 0x41af30
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0xc
push ebp
mov ebp, dword [esp + 0x14]
fld dword [ebp + 0xd4]
push esi
fcomp dword [esp + 0x20]
push edi
fnstsw ax
test ah, 0x41
jne 0x41b247
mov eax, dword [esp + 0x20]
test eax, eax
jge 0x41af77
mov ecx, dword [0xa61ea4]
lea eax, [eax + eax*2 + 3]
shl eax, 3
sub ecx, eax
push ecx
push ebp
call fcn.0041a370
add esp, 8
pop edi
pop esi
pop ebp
add esp, 0xc
ret
lea edx, [eax + eax*2]
mov eax, dword [0xa61e9c]
lea edx, [eax + edx*4]
mov eax, dword [edx]
xor ecx, ecx
mov cl, byte [eax + 0x10]
cmp cl, 3
mov dword [esp + 0x1c], edx
jae 0x41afb9
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
and ecx, 0xff
fld dword [esi + ecx*4]
fsub dword [eax + 0xc]
fld dword [edi + ecx*4]
fsub dword [eax + 0xc]
fstp dword [esp + 0x2c]
fld dword [ebp + ecx*4 + 0x94]
jmp 0x41b00b
mov esi, dword [esp + 0x2c]
fld dword [esi + 4]
mov edi, dword [esp + 0x30]
fmul dword [eax + 4]
fld dword [esi + 8]
fmul dword [eax + 8]
faddp st(1)
fld dword [esi]
fmul dword [eax]
faddp st(1)
fsub dword [eax + 0xc]
fld dword [edi + 4]
fmul dword [eax + 4]
fld dword [edi + 8]
fmul dword [eax + 8]
faddp st(1)
fld dword [edi]
fmul dword [eax]
faddp st(1)
fsub dword [eax + 0xc]
mov eax, dword [ebp + 0xc8]
test eax, eax
fstp dword [esp + 0x2c]
je 0x41b005
fld dword [0x4bc2d8]
jmp 0x41b00b
fld dword [0x4bc3c0]
fld st(0)
fadd dword [0x4bc318]
fld st(2)
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x41b051
fld dword [esp + 0x2c]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 1
jne 0x41b053
mov ecx, dword [esp + 0x28]
fstp st(0)
mov eax, dword [esp + 0x24]
fstp st(0)
push edi
push esi
push ecx
mov ecx, dword [edx + 4]
push eax
push ecx
push ebp
call fcn.0041af30
add esp, 0x18
pop edi
pop esi
pop ebp
add esp, 0xc
ret
fstp st(0)
fld st(0)
fchs
fsub dword [0x4bc318]
fld st(2)
fcomp st(1)
fnstsw ax
test ah, 1
je 0x41b09b
fld dword [esp + 0x2c]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 1
je 0x41b09d
mov eax, dword [esp + 0x28]
fstp st(0)
mov ecx, dword [esp + 0x24]
fstp st(0)
mov edx, dword [edx + 8]
push edi
push esi
push eax
push ecx
push edx
push ebp
call fcn.0041af30
add esp, 0x18
pop edi
pop esi
pop ebp
add esp, 0xc
ret
fstp st(0)
fld st(1)
push ebx
fcomp dword [esp + 0x30]
fld st(1)
fnstsw ax
test ah, 1
je 0x41b0f5
fsub dword [esp + 0x30]
mov ebx, 1
fdivr qword [0x4bc370]
fld st(1)
fadd st(3)
fadd qword [0x4bc3a8]
fld st(1)
fmulp st(1)
fstp dword [esp + 0x30]
fxch st(2)
fsub st(1)
fadd qword [0x4bc3a8]
fxch st(2)
fmulp st(2)
fstp st(0)
fcom dword [0x4bc2d8]
fnstsw ax
test ah, 1
je 0x41b144
fstp st(0)
fld dword [0x4bc2d8]
jmp 0x41b159
fcomp dword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x41b132
fld st(1)
xor ebx, ebx
fsub dword [esp + 0x30]
fdivr qword [0x4bc370]
fld st(2)
fsub st(2)
fsub qword [0x4bc3a8]
fld st(1)
fmulp st(1)
fstp dword [esp + 0x30]
fxch st(1)
faddp st(2)
fxch st(1)
fadd qword [0x4bc3a8]
fxch st(1)
fmulp st(1)
jmp 0x41b0de
fstp st(0)
xor ebx, ebx
fstp st(0)
mov dword [esp + 0x30], ebx
fld dword [0x4bc318]
jmp 0x41b159
fcom dword [0x4bc318]
fnstsw ax
test ah, 0x41
jne 0x41b159
fstp st(0)
fld dword [0x4bc318]
fld dword [edi]
mov edx, dword [esp + 0x20]
fsub dword [esi]
lea eax, [esp + 0x10]
push eax
push esi
fmul st(1)
push ecx
mov ecx, dword [esp + 0x34]
fadd dword [esi]
fstp dword [esp + 0x1c]
fld dword [edi + 4]
fsub dword [esi + 4]
fmul st(1)
fadd dword [esi + 4]
fstp dword [esp + 0x20]
fld dword [edi + 8]
fsub dword [esi + 8]
fmul st(1)
fadd dword [esi + 8]
fstp dword [esp + 0x24]
mov eax, dword [edx + ebx*4 + 4]
fld dword [esp + 0x38]
fsub dword [esp + 0x34]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fmul st(1)
fadd dword [esp + 0x34]
fstp dword [esp]
push ecx
push eax
fstp st(0)
push ebp
call fcn.0041af30
fld dword [esp + 0x48]
fcom dword [0x4bc2d8]
add esp, 0x18
fnstsw ax
test ah, 1
je 0x41b1d7
fstp st(0)
fld dword [0x4bc2d8]
jmp 0x41b1ec
fcom dword [0x4bc318]
fnstsw ax
test ah, 0x41
jne 0x41b1ec
fstp st(0)
fld dword [0x4bc318]
fld dword [edi]
mov edx, dword [esp + 0x2c]
fsub dword [esi]
mov eax, dword [esp + 0x20]
push edi
lea ecx, [esp + 0x14]
fmul st(1)
push ecx
push edx
fadd dword [esi]
push ecx
xor ebx, 1
fstp dword [esp + 0x20]
fld dword [edi + 4]
fsub dword [esi + 4]
fmul st(1)
fadd dword [esi + 4]
fstp dword [esp + 0x24]
fld dword [edi + 8]
fsub dword [esi + 8]
fmul st(1)
fadd dword [esi + 8]
fstp dword [esp + 0x28]
mov ecx, dword [eax + ebx*4 + 4]
fld dword [esp + 0x44]
fmul st(1)
fadd dword [esp + 0x38]
fstp dword [esp]
push ecx
push ebp
fstp st(0)
call fcn.0041af30
add esp, 0x18
pop ebx
pop edi
pop esi
pop ebp
add esp, 0xc
ret