Function at 0x6c4a9a00
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x11c
mov ebx, dword [esp + 0x130]
mov ebp, dword [esp + 0x130]
cmp dword [ebx + 0x964], 1
mov ecx, dword [ebp + 0xd98]
mov eax, dword [ebp + 0xb8]
sbb ebx, ebx
mov edx, dword [ebp + 0x95c]
not ebx
add ebx, 2
mov esi, dword [ecx + 0x1c]
mov byte [esp + 0x20], bl
mov ebx, dword [esp + 0x130]
mov eax, dword [eax + 0x674]
mov edi, dword [ebx + 0x16a4]
mov ebx, dword [ecx + 0x40]
mov ebp, dword [eax + edx*4]
mov edx, 0x5397829d
mov eax, dword [ebx + 8]
mul edx
shr edx, 7
cmp edi, edx
jae 0x6c4a9dbe
cmp esi, ebp
jle 0x6c4a9aa3
imul edi, edi, 0x188
mov eax, ebp
lea edx, [ebp*4]
mov dword [esp + 0x14], ebp
jmp 0x6c4a9a89
mov ebx, dword [ecx + 0x40]
mov ebx, dword [ebx + 4]
add eax, 1
mov ebp, dword [ecx + 0x18]
add ebx, edi
mov dword [ebp + edx], ebx
add edx, 4
cmp eax, esi
jne 0x6c4a9a86
mov ebp, dword [esp + 0x14]
mov eax, dword [ecx + 0x18]
mov ebx, dword [esp + 0x130]
mov eax, dword [eax + ebp*4]
mov dword [ecx + 0x14], eax
mov eax, dword [ebx + 0x644]
add eax, dword [ebx + 0x708]
add eax, dword [ebx + 0x890]
test eax, eax
je 0x6c4a9e05
mov ebp, ebx
mov ebx, dword [esp + 0x130]
add ebp, 0xbc4
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x130]
lea esi, [esp + 0x4c]
mov dword [esp + 0x14], 0
movzx eax, byte [esp + 0x14]
add ebx, 0xac0
mov dword [esp + 0x34], ebx
add ebp, 0x958
mov dword [esp + 0x10], esi
mov dword [esp + 0x38], ebp
mov edi, dword [esp + 0x10]
mov ecx, 0x31
mov byte [esp + 0x3f], al
xor eax, eax
imul ebp, dword [esp + 0x14], 0xc4
mov dword [esp + 0x48], 3
rep stosd dword es:[edi], eax
xor edi, edi
mov ebx, dword [esp + 0x130]
mov eax, dword [ebx + 0xd98]
mov ebx, dword [esp + 0x14]
mov edx, dword [eax + 0x14]
mov eax, ebx
xor eax, 1
and eax, 1
add ebp, edx
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x40], ebx
mov ebp, dword [ebp]
mov dword [esp + 0x18], ebp
cmp edi, dword [esp + 0x18]
jae 0x6c4a9c10
lea esi, [esi]
mov edx, dword [esp + 0x14]
xor ebp, ebp
mov ebx, edi
mov edi, ebp
imul edx, edx, 0xc4
mov ebp, dword [esp + 0x130]
lea ecx, [ebp + edx + 0x580]
mov esi, dword [ecx + 0xc4]
test esi, esi
jle 0x6c4a9be9
cmp ebx, 0xf
jg 0x6c4a9be9
xor eax, eax
cmp edi, 2
sete al
add ecx, 0x44
mov ebp, eax
add esi, ebx
lea edx, [esp + ebx*4 + 0x8c]
mov eax, ebx
jmp 0x6c4a9bd2
add ecx, 4
add edx, 4
cmp eax, 0x10
je 0x6c4a9bf7
mov ebx, dword [ecx]
mov dword [edx], ebx
mov ebx, dword [ecx - 0x40]
mov dword [esp + eax*4 + 0x4c], ebx
add eax, 1
cmp eax, esi
mov dword [edx + 0x40], ebp
jne 0x6c4a9bc7
mov ebx, eax
add edi, 1
cmp edi, 3
je 0x6c4a9c04
mov edx, dword [esp + edi*4 + 0x40]
jmp 0x6c4a9b8a
add edi, 1
mov ebx, 0x10
cmp edi, 3
jne 0x6c4a9bf1
mov edi, ebx
cmp edi, dword [esp + 0x18]
jb 0x6c4a9b80
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10c], eax
cmp byte [ebx + edx + 0x268], 0
je 0x6c4a9d28
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x6c4a9ca9
mov ebp, dword [esp + 0x34]
mov eax, dword [ebp]
cmp eax, edi
jge 0x6c4a9cf6
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebp + 0xc0]
mov edx, ebp
mov ebp, dword [esp + 0x38]
shl esi, 5
add edx, 0x40
sub esi, ecx
add ebx, ecx
lea esi, [ebp + esi*4]
jmp 0x6c4a9c7e
mov eax, dword [esi + ecx*4 + 0x168]
add edx, 4
cmp eax, edi
jge 0x6c4a9cec
mov ebp, dword [esp + eax*4 + 0x8c]
add ecx, 1
cmp ecx, ebx
mov dword [edx], ebp
mov ebp, dword [esp + eax*4 + 0x4c]
mov eax, dword [esp + eax*4 + 0xcc]
mov dword [edx - 0x40], ebp
mov dword [edx + 0x40], eax
jne 0x6c4a9c70
mov eax, dword [esp + 0x1c]
mov dword [eax + 0xc0], ecx
mov ebx, dword [esp + 0x130]
movzx edx, byte [esp + 0x3f]
cmp byte [ebx + 0xbd3], dl
je 0x6c4a9d96
add dword [esp + 0x14], 1
movzx eax, byte [esp + 0x14]
add dword [esp + 0x30], 4
sub dword [esp + 0x34], 0xffffff80
cmp byte [esp + 0x20], al
ja 0x6c4a9b10
add esp, 0x11c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x1c]
mov dword [eax + 0xc0], ecx
mov ebx, dword [esp + 0x130]
mov dword [esp + 8], str.Invalid_reference_index._n
mov dword [esp + 4], 0x10
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sub.avutil_52.dll_av_log
mov eax, 0xbebbb1b7
add esp, 0x11c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [esp + 0x1c]
lea esi, [esp + 0x4c]
mov eax, 0xc4
test edi, 1
jne 0x6c4a9dce
test edi, 2
jne 0x6c4a9df1
mov ecx, eax
xor edx, edx
shr ecx, 2
test al, 2
rep movsd dword es:[edi], dword [esi]
jne 0x6c4a9d85
test al, 1
jne 0x6c4a9d7c
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x30]
mov eax, dword [edx + 0xc0]
cmp dword [ebx], eax
cmovbe eax, dword [ebx]
mov dword [edx + 0xc0], eax
jmp 0x6c4a9ca9
movzx eax, byte [esi + edx]
mov byte [edi + edx], al
jmp 0x6c4a9d5e
movzx edx, word [esi]
test al, 1
mov word [edi], dx
mov edx, 2
je 0x6c4a9d5e
jmp 0x6c4a9d7c
mov ebp, dword [esp + 0x1c]
mov eax, dword [ebx + 0xbd4]
cmp eax, dword [ebp + 0xc0]
jae 0x6c4a9cc1
mov edx, dword [ebx + 0xd98]
mov eax, dword [ebp + eax*4]
mov dword [edx + 0x24], eax
jmp 0x6c4a9cc1
add esp, 0x11c
mov eax, 0xbebbb1b7
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, byte [esp + 0x4c]
lea esi, [esp + 0x4d]
mov byte [edi], al
mov edi, dword [esp + 0x1c]
mov eax, 0xc3
add edi, 1
test edi, 2
je 0x6c4a9d4d
movzx edx, word [esi]
sub eax, 2
add esi, 2
mov word [edi], dx
add edi, 2
jmp 0x6c4a9d4d
mov dword [esp + 8], str.Zero_refs_in_the_frame_RPS._n
mov dword [esp + 4], 0x10
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sub.avutil_52.dll_av_log
mov eax, 0xbebbb1b7
jmp 0x6c4a9d1d