Function at 0x6c379f30
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x36c
mov edx, dword [esp + 0x380]
mov ebp, dword [esp + 0x384]
cmp dword [edx + 0x6de9c], 5
je 0x6c37a1a4
mov eax, dword [ebp + 8]
mov edi, dword [ebp]
mov ebx, dword [ebp + 0x10]
mov edx, eax
mov ecx, eax
shr edx, 3
and ecx, 7
movzx edx, byte [edi + edx]
mov dword [esp + 0x34], edi
shl edx, cl
xor ecx, ecx
cmp eax, ebx
setl cl
add eax, ecx
test dl, dl
mov dword [ebp + 8], eax
jns 0x6c37a160
xor edx, edx
mov dword [esp + 0x38], ebp
lea esi, [esp + 0x48]
mov ebp, edx
jmp 0x6c379fd5
lea ecx, [edx - 2]
cmp ecx, 1
jbe 0x6c37a0b5
cmp edx, 6
je 0x6c37a0b5
cmp edx, 4
je 0x6c37a0b5
cmp edx, 6
ja 0x6c37a12b
test edx, edx
lea esi, [esi]
je 0x6c37a337
add ebp, 1
add esi, 0xc
cmp ebp, 0x42
je 0x6c37a340
mov edi, dword [esp + 0x34]
mov edx, eax
mov ecx, eax
shr edx, 3
and ecx, 7
mov edx, dword [edi + edx]
mov edi, dword [esp + 0x38]
bswap edx
shl edx, cl
shr edx, 0x17
movzx ecx, byte [edx + 0x6c577b80]
add eax, ecx
movzx ecx, byte [edx + 0x6c577980]
cmp eax, ebx
cmova eax, ebx
mov dword [edi + 8], eax
movzx edx, cl
and ecx, 0xfffffffd
cmp cl, 1
mov dword [esi], edx
jne 0x6c379f94
mov ecx, dword [esp + 0x380]
mov edi, eax
shr edi, 3
mov ecx, dword [ecx + 0x6e378]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x34]
mov edi, dword [ecx + edi]
mov ecx, eax
and ecx, 7
bswap edi
shl edi, cl
cmp edi, 0x7ffffff
ja 0x6c37a180
mov ecx, edi
add eax, 0x20
or ecx, 1
bsr ecx, ecx
xor ecx, 0x1f
mov dword [esp + 0x2c], ecx
mov ecx, 0x1f
sub ecx, dword [esp + 0x2c]
lea ecx, [ecx + ecx - 0x1f]
sub eax, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x38]
cmp eax, ebx
cmova eax, ebx
mov dword [ecx + 8], eax
movzx ecx, byte [esp + 0x2c]
shr edi, cl
sub edi, 1
mov ecx, dword [esp + 0x3c]
sub ecx, edi
mov edi, dword [esp + 0x380]
sub ecx, 1
mov edi, dword [edi + 0x6e37c]
mov dword [esp + 0x30], edi
sub edi, 1
and ecx, edi
mov dword [esi + 4], ecx
lea ecx, [edx - 2]
cmp ecx, 1
ja 0x6c379fa0
mov ecx, dword [esp + 0x34]
mov edi, eax
shr edi, 3
mov edi, dword [ecx + edi]
mov ecx, eax
and ecx, 7
bswap edi
shl edi, cl
shr edi, 0x17
movzx ecx, byte [edi + 0x6c577b80]
add eax, ecx
mov ecx, dword [esp + 0x38]
cmp eax, ebx
cmova eax, ebx
mov dword [ecx + 8], eax
movzx ecx, byte [edi + 0x6c577980]
cmp ecx, 0x1f
ja 0x6c37a350
cmp ecx, 0xf
jbe 0x6c37a11f
cmp ecx, 0x10
jne 0x6c37a102
cmp edx, 4
nop
je 0x6c37a11f
cmp edx, 2
jne 0x6c37a350
mov edi, dword [esp + 0x380]
cmp dword [edi + 0x2afbc], 3
je 0x6c37a350
cmp edx, 6
mov dword [esi + 8], ecx
jbe 0x6c379fbb
mov dword [esp + 0xc], edx
mov dword [esp + 8], str.illegal_memory_management_control_operation__d_n
mov edx, dword [esp + 0x380]
mov dword [esp + 4], 0x10
mov eax, dword [edx]
mov dword [esp], eax
call sub.avutil_52.dll_av_log
add esp, 0x36c
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [esp + 0x388]
test edi, edi
jne 0x6c37a297
xor eax, eax
add esp, 0x36c
pop ebx
pop esi
pop edi
pop ebp
ret
shr edi, 0x17
movzx ecx, byte [edi + 0x6c577b80]
movzx edi, byte [edi + 0x6c577980]
add eax, ecx
mov ecx, dword [esp + 0x38]
cmp eax, ebx
cmova eax, ebx
mov dword [ecx + 8], eax
jmp 0x6c37a087
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov ebx, dword [ebp]
add eax, 1
cmp eax, edx
cmova eax, edx
mov ecx, eax
shr ecx, 3
mov dword [ebp + 8], eax
movzx ebx, byte [ebx + ecx]
mov ecx, eax
and ecx, 7
shl ebx, cl
cmp edx, eax
setg dl
mov ecx, ebx
movzx edx, dl
xor ebx, ebx
add eax, edx
test cl, cl
mov dword [ebp + 8], eax
js 0x6c37a280
mov esi, dword [esp + 0x388]
test esi, esi
je 0x6c37a220
mov edi, dword [esp + 0x380]
lea esi, [esp + 0x48]
mov ecx, 0xc6
xor eax, eax
add edi, 0x80f1c
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x380]
mov dword [edx + 0x81234], ebx
add esp, 0x36c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0x380]
mov eax, dword [edx + 0x81234]
cmp ebx, eax
jne 0x6c37a30b
mov ecx, edx
add ecx, 0x80f1c
test ebx, ebx
jle 0x6c37a16f
mov esi, dword [edx + 0x80f1c]
xor eax, eax
mov edi, dword [esp + 0x48]
lea edx, [esp + 0x48]
cmp esi, edi
je 0x6c37a270
jmp 0x6c37a2d4
mov esi, dword [ecx + 0xc]
add ecx, 0xc
mov edi, dword [edx + 0xc]
add edx, 0xc
cmp esi, edi
jne 0x6c37a2d6
add eax, 1
cmp ebx, eax
jne 0x6c37a260
jmp 0x6c37a16f
mov dword [esp + 0x48], 6
mov bl, 1
mov dword [esp + 0x50], 0
jmp 0x6c37a1e1
mov ecx, dword [esp + 0x388]
mov edx, dword [esp + 0x380]
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.6c3786c0
test eax, eax
jns 0x6c37a16f
mov ecx, dword [esp + 0x380]
mov edx, dword [ecx]
test byte [edx + 0x2b8], 8
je 0x6c37a16f
jmp 0x6c37a171
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], esi
mov dword [esp + 8], str.MMCO_opcode___d___d__at__d_mismatches_between_slices_n
mov dword [esp + 4], 0x10
mov dword [esp], 0
call sub.avutil_52.dll_av_log
mov edx, dword [esp + 0x380]
mov eax, dword [edx + 0x81234]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], str.Inconsistent_MMCO_state_between_slices___d___d__n
mov dword [esp + 4], 0x10
mov eax, dword [edx]
mov dword [esp], eax
call sub.avutil_52.dll_av_log
mov eax, 0xbebbb1b7
jmp 0x6c37a171
mov ebx, ebp
jmp 0x6c37a1e1
mov ebx, 0x42
jmp 0x6c37a1e1
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0x6c57dda0
jmp 0x6c37a137