Function at 0x44ed80
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0xc
test eax, eax
push ebp
push esi
push edi
jge 0x44edaf
mov ecx, dword [0x10b3dd0]
mov edx, dword [esp + 0x1c]
inc eax
shl eax, 5
sub ecx, eax
push ecx
push edx
call fcn.0044ed00
add esp, 8
pop edi
pop esi
pop ebp
add esp, 0xc
ret
mov ecx, dword [0x10b3dc8]
lea eax, [eax + eax*2]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
lea ebp, [ecx + eax*4]
mov eax, dword [ecx + eax*4]
mov cl, byte [eax + 0x10]
cmp cl, 3
jae 0x44ede2
and ecx, 0xff
shl ecx, 2
fld dword [ecx + esi]
fsub dword [eax + 0xc]
fld dword [ecx + edi]
jmp 0x44ee0d
fld dword [esi + 8]
fmul dword [eax + 8]
fld dword [esi + 4]
fmul dword [eax + 4]
faddp st(1)
fld dword [esi]
fmul dword [eax]
faddp st(1)
fsub dword [eax + 0xc]
fld dword [edi + 8]
fmul dword [eax + 8]
fld dword [edi + 4]
fmul dword [eax + 4]
faddp st(1)
fld dword [edi]
fmul dword [eax]
faddp st(1)
fsub dword [eax + 0xc]
fld st(1)
fcomp qword [0x54ed98]
fnstsw ax
and eax, 0x100
jne 0x44ee58
fcom qword [0x54ed98]
fnstsw ax
and eax, 0x100
jne 0x44ee58
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 4]
push edi
push esi
push edx
mov edx, dword [esp + 0x28]
push eax
fstp st(0)
push ecx
push edx
fstp st(0)
call fcn.0044ed80
add esp, 0x18
pop edi
pop esi
pop ebp
add esp, 0xc
ret
fld st(1)
fcomp qword [0x54eda8]
fnstsw ax
test ah, 5
jp 0x44ee9c
fcom qword [0x54eda8]
fnstsw ax
test ah, 5
jp 0x44ee9c
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [ebp + 8]
push edi
push esi
push eax
mov eax, dword [esp + 0x28]
push ecx
fstp st(0)
push edx
push eax
fstp st(0)
call fcn.0044ed80
add esp, 0x18
pop edi
pop esi
pop ebp
add esp, 0xc
ret
fld st(1)
fcomp st(1)
push ebx
fld st(1)
fnstsw ax
test ah, 5
jp 0x44eedc
fsubrp st(1)
mov ebx, 1
fdivr qword [0x54e488]
fxch st(1)
fadd qword [0x54ed98]
fmulp st(1)
fst dword [esp + 0x30]
fcom dword [0x54e4d0]
fnstsw ax
test ah, 5
jp 0x44ef1b
fstp st(0)
fld dword [0x54e4d0]
jmp 0x44ef32
fcomp st(1)
xor ebx, ebx
fnstsw ax
and eax, 0x4100
jne 0x44ef0f
fld st(1)
fsubrp st(1)
fdivr qword [0x54e488]
fld st(1)
fsub qword [0x54ed98]
fld st(1)
fmulp st(1)
fstp dword [esp + 0x30]
fxch st(1)
fadd qword [0x54ed98]
fmulp st(1)
jmp 0x44eec5
fstp st(0)
mov dword [esp + 0x30], 0
jmp 0x44ef2a
fcom dword [0x54e504]
fnstsw ax
and eax, 0x4100
jne 0x44ef32
fstp st(0)
fld dword [0x54e504]
fld dword [edi]
fsub dword [esi]
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x10]
push ecx
push esi
fmul st(1)
push ecx
mov ecx, dword [esp + 0x2c]
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]
fld dword [esp + 0x38]
fsub dword [esp + 0x34]
mov eax, dword [ebp + ebx*4 + 4]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fmul st(1)
fadd dword [esp + 0x34]
fstp dword [esp]
push edx
push eax
fstp st(0)
push ecx
call fcn.0044ed80
fstp dword [esp + 0x3c]
fld dword [esp + 0x48]
fcom dword [0x54e4d0]
add esp, 0x18
fnstsw ax
test ah, 5
jp 0x44efb4
fstp st(0)
fld dword [0x54e4d0]
jmp 0x44efcb
fcom dword [0x54e504]
fnstsw ax
and eax, 0x4100
jne 0x44efcb
fstp st(0)
fld dword [0x54e504]
fld dword [edi]
fsub dword [esi]
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x10]
push edi
push edx
fmul st(1)
mov edx, dword [esp + 0x28]
push eax
push ecx
xor ebx, 1
fadd dword [esi]
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]
fld dword [esp + 0x44]
fmul st(1)
mov ecx, dword [ebp + ebx*4 + 4]
fadd dword [esp + 0x38]
fstp dword [esp]
push ecx
push edx
fstp st(0)
call fcn.0044ed80
fadd dword [esp + 0x3c]
add esp, 0x18
pop ebx
pop edi
pop esi
pop ebp
add esp, 0xc
ret