Function at 0x10054b50
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 0x14]
sub esp, 0x1c
push esi
push edi
mov esi, ecx
cmp edx, 2
jle 0x10054b6c
mov edi, 2
mov dword [ebp - 0xc], edi
jmp 0x10054b71
mov edi, edx
mov dword [ebp - 0xc], edx
cmp dword [ebp + 8], 0
je 0x10054cf9
movzx ecx, word [esi + 0x178]
movzx eax, word [esi + 0x24]
push ebx
cmp ax, cx
je 0x10054be4
xor eax, ecx
movzx eax, ax
mov ebx, 1
test edi, edi
jle 0x10054bd9
mov dword [ebp - 0x10], eax
lea eax, [esi + 0x148]
mov dword [ebp - 4], eax
mov dword [ebp - 8], edi
lea esp, [esp]
test dword [ebp - 0x10], ebx
je 0x10054bcc
mov ecx, dword [eax + 0x10]
mov edx, dword [eax]
push ecx
push 0
push edx
call fcn.100c6660
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 0x14]
add esp, 0xc
add eax, 4
rol ebx, 1
dec dword [ebp - 8]
mov dword [ebp - 4], eax
jne 0x10054bb0
movzx eax, word [esi + 0x24]
mov word [esi + 0x178], ax
mov ebx, 1
mov ecx, edi
shl ebx, cl
movzx eax, ax
dec ebx
test eax, ebx
jne 0x10054c1c
mov ecx, dword [ebp + 0x10]
imul ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
add ecx, ecx
add ecx, ecx
push ecx
push edx
push eax
call fcn.100c6090
add esp, 0xc
pop ebx
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0x14
mov ebx, dword [ebp + 0xc]
cmp edx, 2
jle 0x10054c3c
mov ecx, dword [ebp + 0x10]
imul ecx, edx
mov edx, dword [ebp + 8]
add ecx, ecx
add ecx, ecx
push ecx
push edx
push ebx
call fcn.100c6090
add esp, 0xc
mov dword [ebp - 4], 1
test edi, edi
jle 0x10054cf8
mov ecx, dword [ebp + 8]
fld1
mov edx, ebx
lea eax, [esi + 0x168]
sub ecx, ebx
mov dword [ebp - 8], edx
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], edi
jmp 0x10054c6b
mov ecx, dword [ebp - 0x14]
movzx eax, word [esi + 0x24]
add ecx, edx
test dword [ebp - 4], eax
jne 0x10054d03
mov ebx, dword [ebp + 0x10]
shr ebx, 2
lea eax, [edi*4]
test ebx, ebx
je 0x10054cb8
add eax, eax
add eax, eax
mov dword [ebp + 8], eax
fld dword [ecx]
lea eax, [edi + edi]
fstp dword [edx]
fld dword [ecx + edi*4]
fstp dword [edx + edi*4]
fld dword [ecx + eax*4]
fstp dword [edx + eax*4]
lea eax, [edi + edi*2]
fld dword [ecx + eax*4]
fstp dword [edx + eax*4]
mov eax, dword [ebp + 8]
add ecx, eax
add edx, eax
dec ebx
jne 0x10054c92
mov eax, dword [ebp + 0x10]
and eax, 3
je 0x10054cd3
lea ebx, [edi*4]
sub edx, ecx
fld dword [ecx]
fstp dword [edx + ecx]
add ecx, ebx
dec eax
jne 0x10054cc9
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
add edx, 4
add ebx, 4
rol ecx, 1
dec dword [ebp - 0x10]
mov dword [ebp - 8], edx
mov dword [ebp + 0xc], ebx
mov dword [ebp - 4], ecx
jne 0x10054c68
fstp st(0)
pop ebx
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov dword [ebp + 0x18], eax
test eax, eax
je 0x10054cd6
mov eax, dword [ebp + 0x18]
mov edi, dword [ebx - 8]
mov dword [ebp + 8], eax
mov eax, dword [ebx - 0x20]
mov ebx, dword [ebx]
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 0x18]
add ebx, edi
lea eax, [eax + edi*4]
mov edi, dword [ebp - 0x18]
cmp ebx, edi
jbe 0x10054d3d
mov ebx, dword [ebp + 0xc]
sub edi, dword [ebx - 8]
mov ebx, edi
mov dword [ebp + 8], ebx
jmp 0x10054d40
mov ebx, dword [ebp + 8]
xor edi, edi
cmp ebx, 4
jl 0x10054e22
mov edi, dword [ebp + 0x14]
add ebx, 0xfffffffc
shr ebx, 2
inc ebx
mov dword [ebp - 0x18], ebx
add edi, edi
add ebx, ebx
add edi, edi
add ebx, ebx
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x18]
fld dword [ecx]
add ecx, edi
fld st(1)
add eax, 0x10
fsub dword [esi + 0x134]
fmul st(1)
fld dword [eax - 0x10]
fmul dword [esi + 0x134]
faddp st(1)
fstp dword [edx]
add edx, edi
fld dword [esi + 0x138]
fmul dword [eax - 0x10]
faddp st(1)
fstp dword [eax - 0x10]
fld dword [ecx]
add ecx, edi
fld st(1)
fsub dword [esi + 0x134]
fmul st(1)
fld dword [eax - 0xc]
fmul dword [esi + 0x134]
faddp st(1)
fstp dword [edx]
add edx, edi
fld dword [eax - 0xc]
fmul dword [esi + 0x138]
faddp st(1)
fstp dword [eax - 0xc]
fld dword [ecx]
add ecx, edi
fld st(1)
fsub dword [esi + 0x134]
fmul st(1)
fld dword [eax - 8]
fmul dword [esi + 0x134]
faddp st(1)
fstp dword [edx]
add edx, edi
fld dword [eax - 8]
fmul dword [esi + 0x138]
faddp st(1)
fstp dword [eax - 8]
fld dword [ecx]
add ecx, edi
fld st(1)
fsub dword [esi + 0x134]
fmul st(1)
fld dword [esi + 0x134]
fmul dword [eax - 4]
faddp st(1)
fstp dword [edx]
add edx, edi
dec ebx
fld dword [esi + 0x138]
fmul dword [eax - 4]
faddp st(1)
fstp dword [eax - 4]
jne 0x10054d66
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp + 8]
cmp edi, ebx
jae 0x10054e60
sub ebx, edi
fld dword [ecx]
mov edi, dword [ebp + 0x14]
fld st(1)
add edi, edi
fsub dword [esi + 0x134]
add edi, edi
add ecx, edi
add eax, 4
fmul st(1)
fld dword [eax - 4]
fmul dword [esi + 0x134]
faddp st(1)
fstp dword [edx]
add edx, edi
dec ebx
fld dword [esi + 0x138]
fmul dword [eax - 4]
faddp st(1)
fstp dword [eax - 4]
jne 0x10054e28
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
add dword [ebx - 8], edi
mov eax, dword [ebx - 8]
cmp eax, dword [ebx]
jb 0x10054e77
mov dword [ebx - 8], 0
sub dword [ebp + 0x18], edi
jne 0x10054d10
mov edi, dword [ebp - 0xc]
jmp 0x10054cd6