Function at 0x4e8890
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x3c
mov ebp, dword [edx + 0x3c]
cmp ebp, 3
jbe 0x4e8952
mov edi, dword [edx + 0x40]
movzx ecx, byte [edi + 1]
movzx ebx, byte [edi + 2]
shl ecx, 8
shl ebx, 0x10
or ecx, ebx
movzx ebx, byte [edi]
or ecx, ebx
mov ebx, ecx
mov esi, ecx
not ebx
shr esi, 4
and ebx, 1
and esi, 1
mov byte [eax + 0x28], bl
mov ebx, ecx
shr ebx, 1
and ebx, 7
mov byte [esp + 0x10], bl
mov byte [eax + 0x29], bl
mov ebx, esi
mov byte [eax + 0x2a], bl
mov ebx, ecx
shr ebx, 5
cmp byte [esp + 0x10], 3
mov dword [esp + 0x14], ebx
mov dword [eax + 0x2c], ebx
ja 0x4e8932
mov ebx, esi
test bl, bl
je 0x4e8972
and ecx, 1
mov ebx, eax
lea esi, [ebp - 3]
jne 0x4e8992
cmp esi, 6
jbe 0x4e89c0
cmp byte [edi + 3], 0x9d
je 0x4e8a90
mov dword [ebx], 3
mov dword [ebx + 8], str.Bad_code_word
xor ebp, ebp
mov dword [ebx + 4], 0
jmp 0x4e8948
mov dword [eax], 3
mov dword [eax + 8], str.Incorrect_keyframe_parameters.
xor ebp, ebp
mov dword [eax + 4], 0
add esp, 0x3c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [eax], 7
mov dword [eax + 8], str.Truncated_header.
xor ebp, ebp
mov dword [eax + 4], 0
add esp, 0x3c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [eax], 4
mov dword [eax + 8], str.Frame_not_displayable.
xor ebp, ebp
mov dword [eax + 4], 0
add esp, 0x3c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [edi + 3]
mov dword [esp + 0x10], eax
cmp esi, dword [esp + 0x14]
jae 0x4e8a10
mov eax, dword [ebx]
test eax, eax
jne 0x4e8a00
mov dword [ebx], 7
mov dword [ebx + 8], str.bad_partition_length
xor ebp, ebp
mov dword [ebx + 4], 0
jmp 0x4e8948
mov dword [eax], 7
mov dword [eax + 8], str.cannot_parse_picture_header
xor ebp, ebp
mov dword [eax + 4], 0
jmp 0x4e8948
mov eax, 7
mov edx, dword [ebx]
test edx, edx
jne 0x4e8a00
mov dword [ebx], eax
mov dword [ebx + 8], str.cannot_parse_partitions
mov dword [ebx + 4], 0
lea esi, [esi]
lea edi, [edi]
xor ebp, ebp
jmp 0x4e8948
mov eax, dword [esp + 0x14]
lea edi, [ebx + 0xc]
mov dword [esp], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 4], eax
call fcn.0050bb70
cmp byte [ebx + 0x28], 0
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x14], eax
jne 0x4e8c97
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0050bbe0
test eax, eax
mov dword [ebx + 0x68], eax
jne 0x4e8c20
mov dword [ebx + 0x6c], 0
mov ebp, dword [ebx + 0x24]
test ebp, ebp
je 0x4e8b84
mov ecx, dword [ebx]
test ecx, ecx
jne 0x4e8a00
mov dword [ebx], 3
mov dword [ebx + 8], str.cannot_parse_segment_header
xor ebp, ebp
mov dword [ebx + 4], 0
jmp 0x4e8948
cmp byte [edi + 4], 1
jne 0x4e891a
cmp byte [edi + 5], 0x2a
jne 0x4e891a
movzx eax, byte [edi + 7]
movzx ecx, byte [edi + 6]
shl eax, 8
or ecx, eax
and cx, 0x3fff
mov word [ebx + 0x30], cx
movzx eax, byte [edi + 7]
movzx ecx, cx
shr al, 6
mov byte [ebx + 0x34], al
movzx eax, byte [edi + 9]
shl eax, 8
mov esi, eax
movzx eax, byte [edi + 8]
or eax, esi
lea esi, [ebp - 0xa]
and ax, 0x3fff
mov word [ebx + 0x32], ax
mov word [esp + 0x14], ax
movzx eax, byte [edi + 9]
shr al, 6
mov byte [ebx + 0x35], al
lea eax, [edi + 0xa]
lea edi, [ecx + 0xf]
mov dword [esp + 0x10], eax
movzx eax, word [esp + 0x14]
sar edi, 4
mov dword [ebx + 0x120], edi
lea edi, [eax + 0xf]
sar edi, 4
mov dword [ebx + 0x124], edi
mov dword [edx + 4], eax
mov dword [edx + 0x58], eax
mov dword [edx + 0x64], eax
mov dword [edx + 0x10], eax
lea eax, [ebx + 0x388]
mov dword [edx], ecx
mov dword [edx + 0x48], 0
mov dword [edx + 0x54], 0
mov dword [edx + 0x4c], 0
mov dword [edx + 0x50], ecx
mov dword [edx + 0x5c], 0
mov dword [edx + 0x60], ecx
mov dword [edx + 0xc], ecx
mov dword [esp], eax
call fcn.0050d8b0
mov eax, dword [ebx + 0x2c]
mov dword [ebx + 0x68], 0
mov dword [ebx + 0x6c], 0
mov dword [ebx + 0x70], 1
mov dword [ebx + 0x74], 0
mov dword [ebx + 0x78], 0
mov dword [esp + 0x14], eax
jmp 0x4e8999
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0050bbe0
mov dword [ebx + 0x38], eax
mov dword [esp + 4], 6
mov dword [esp], edi
call fcn.0050bbe0
mov dword [ebx + 0x3c], eax
mov dword [esp + 4], 3
mov dword [esp], edi
call fcn.0050bbe0
mov dword [ebx + 0x40], eax
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0050bbe0
test eax, eax
mov dword [ebx + 0x44], eax
jne 0x4e8e7e
mov eax, dword [ebx + 0x3c]
test eax, eax
je 0x4e8bec
mov edx, dword [ebx + 0x38]
xor eax, eax
test edx, edx
sete al
add eax, 1
mov dword [ebx + 0x904], eax
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x4e8cc2
mov ecx, dword [ebx]
test ecx, ecx
jne 0x4e8a00
mov dword [ebx], 3
mov dword [ebx + 8], str.cannot_parse_filter_header
mov dword [ebx + 4], 0
jmp 0x4e8948
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0050bbe0
mov dword [ebx + 0x6c], eax
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0050bbe0
test eax, eax
jne 0x4e8df6
mov eax, dword [ebx + 0x6c]
xor ebp, ebp
test eax, eax
je 0x4e8a5e
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0050bbe0
test eax, eax
mov edx, 0xffffffff
je 0x4e8c83
mov dword [esp + 4], 8
mov dword [esp], edi
call fcn.0050bbe0
mov edx, eax
mov byte [ebx + ebp + 0x388], dl
add ebp, 1
cmp ebp, 3
jne 0x4e8c58
jmp 0x4e8a5e
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0050bbe0
mov byte [ebx + 0x36], al
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0050bbe0
mov byte [ebx + 0x37], al
jmp 0x4e8a3c
mov dword [esp + 4], 2
mov dword [esp], edi
mov ebp, esi
sub ebp, dword [esp + 0x14]
call fcn.0050bbe0
mov edx, 1
mov ecx, eax
shl edx, cl
lea ecx, [edx - 1]
mov dword [esp + 0x18], ebp
lea eax, [ecx + ecx*2]
mov dword [esp + 0x1c], ecx
mov dword [ebx + 0x138], ecx
cmp ebp, eax
jb 0x4e89db
mov ebp, dword [esp + 0x14]
add ebp, dword [esp + 0x10]
lea edx, [ebp + eax]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
sub edx, eax
test ecx, ecx
mov eax, edx
lea edx, [ebx + 0x13c]
mov dword [esp + 0x20], edx
je 0x4e8d97
mov ecx, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], ebx
mov esi, eax
mov ebx, ecx
mov dword [esp + 0x18], edx
mov edi, edx
nop
movzx eax, byte [ebp + 1]
shl eax, 8
mov ecx, eax
movzx eax, byte [ebp + 2]
shl eax, 0x10
or eax, ecx
movzx ecx, byte [ebp]
mov dword [esp + 4], edi
mov dword [esp], ebx
or eax, ecx
cmp esi, eax
cmovbe eax, esi
add ebp, 3
add ebx, 0x1c
mov dword [esp + 8], eax
mov dword [esp + 0x14], eax
call fcn.0050bb70
mov eax, dword [esp + 0x14]
add edi, eax
sub esi, eax
cmp dword [esp + 0x18], ebp
jne 0x4e8d40
mov dword [esp + 0x14], edi
mov eax, esi
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 8], eax
mov ebp, dword [esp + 0x14]
imul eax, dword [esp + 0x1c], 0x1c
mov dword [esp + 4], ebp
add eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.0050bb70
add esi, dword [esp + 0x10]
cmp ebp, esi
jae 0x4e8f0f
mov dword [esp], ebx
call fcn.0050d5d0
cmp byte [ebx + 0x28], 0
jne 0x4e8f19
cmp dword [ebx], 0
jne 0x4e8a00
mov dword [ebx], 4
mov dword [ebx + 8], str.Not_a_key_frame.
xor ebp, ebp
mov dword [ebx + 4], 0
jmp 0x4e8948
mov dword [esp + 4], 1
mov dword [esp], edi
xor ebp, ebp
call fcn.0050bbe0
mov dword [ebx + 0x70], eax
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0050bbe0
xor edx, edx
test eax, eax
jne 0x4e8e56
mov byte [ebx + ebp + 0x74], dl
add ebp, 1
cmp ebp, 4
jne 0x4e8e0b
xor ebp, ebp
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0050bbe0
xor edx, edx
test eax, eax
jne 0x4e8e6a
mov byte [ebx + ebp + 0x78], dl
add ebp, 1
cmp ebp, 4
jne 0x4e8e2f
jmp 0x4e8c4b
mov dword [esp + 4], 7
mov dword [esp], edi
call fcn.0050bce0
mov edx, eax
jmp 0x4e8e21
mov dword [esp + 4], 6
mov dword [esp], edi
call fcn.0050bce0
mov edx, eax
jmp 0x4e8e45
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0050bbe0
test eax, eax
je 0x4e8bd8
xor edx, edx
mov dword [esp + 0x18], esi
mov esi, edx
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0050bbe0
test eax, eax
jne 0x4e8ef9
add esi, 1
cmp esi, 4
jne 0x4e8e9e
xor edx, edx
mov esi, edx
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0050bbe0
test eax, eax
jne 0x4e8ee3
add esi, 1
cmp esi, 4
jne 0x4e8ebe
mov esi, dword [esp + 0x18]
jmp 0x4e8bd8
mov dword [esp + 4], 6
mov dword [esp], edi
call fcn.0050bce0
mov dword [ebx + esi*4 + 0x58], eax
jmp 0x4e8ed2
mov dword [esp + 4], 6
mov dword [esp], edi
call fcn.0050bce0
mov dword [ebx + esi*4 + 0x48], eax
jmp 0x4e8eb2
mov eax, 5
jmp 0x4e89e0
mov dword [esp + 4], 1
mov dword [esp], edi
mov ebp, 1
call fcn.0050bbe0
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.0050e380
mov dword [ebx + 4], 1
jmp 0x4e8948