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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x140
mov edi, ecx
mov ecx, dword [ebp + 0x14]
mov eax, dword [0x101db764]
mov ebx, dword [ebp + 0x18]
mov esi, ecx
xor eax, ebp
or esi, ebx
mov dword [esp + 0x138], eax
je 0x1003034b
cmp ecx, 0xa
mov eax, ebx
sbb eax, 0
jl 0x10030d55
mov eax, ecx
mov dword [esp + 0xc], edx
or eax, ebx
sete byte [esp + 6]
xor edx, edx
xor eax, eax
inc edx
push edx
push eax
push eax
push edi
mov esi, ecx
call fcn.1002daa0
add esp, 0x10
add esi, 0xfffffff6
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], edx
adc ebx, 0xffffffff
xor eax, eax
inc eax
push eax
xor eax, eax
push eax
push eax
mov dword [esp + 0xc], edi
push edi
call fcn.1002daa0
add esp, 0x10
mov edi, eax
mov ecx, edx
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], ebx
sub edi, dword [esp + 0x40]
sbb ecx, dword [esp + 0x3c]
cmp edi, esi
sbb ecx, ebx
jl 0x100303bc
mov cl, byte [esp + 6]
mov ebx, dword [esp]
test cl, cl
jne 0x100303c3
push 0
push edx
push eax
jmp 0x10030bce
mov ebx, dword [esp]
mov cl, byte [esp + 6]
mov esi, edx
mov dword [esp + 8], eax
mov byte [esp + 6], cl
push 0
push 0xa
push ebx
call fcn.1002eaae
add esp, 0xc
test eax, eax
js 0x10030bc7
mov eax, 0xa
lea edi, [esp + 0x76]
push eax
push edi
push ebx
call fcn.1002e17d
add esp, 0xc
mov ecx, 0xa
cmp eax, ecx
jne 0x10030bc7
push dword [ebp + 0xc]
push edi
call fcn.10030258
add esp, 8
test eax, eax
je 0x10030d6b
movzx eax, byte [esp + 0x7c]
movzx ecx, byte [esp + 0x7d]
movzx edi, byte [esp + 0x7f]
mov bl, byte [esp + 0x79]
xor esi, esi
and eax, 0x7f
and ecx, 0x7f
and edi, 0x7f
shl eax, 0x15
shl ecx, 0xe
or ecx, eax
movzx eax, byte [esp + 0x7e]
and eax, 0x7f
shl eax, 7
or eax, ecx
or edi, eax
movzx eax, byte [esp + 0x7b]
mov dword [esp + 0x20], eax
push 1
push esi
push esi
push dword [esp + 0xc]
call fcn.1002daa0
mov ecx, ebx
add esp, 0x10
mov ebx, eax
mov eax, ecx
mov dword [esp + 8], edi
mov dword [esp + 0x58], esi
mov dword [esp + 0x54], esi
mov byte [esp + 7], cl
add ebx, edi
adc edx, esi
add al, 0xfd
cmp al, 2
jae 0x100304ae
test byte [esp + 0x20], 0x40
mov al, 1
mov dword [esp + 0x24], 0xa
mov dword [esp + 0x30], str.COMM
mov dword [esp + 0x44], eax
jne 0x100304e7
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
jmp 0x10030556
cmp cl, 2
jne 0x10030598
test byte [esp + 0x20], 0x40
mov edi, dword [esp]
jne 0x1003059b
mov dword [esp + 0x24], 6
mov dword [esp + 0x30], 0x1019ded4
mov dword [esp + 0x44], 0
mov dword [esp + 0x18], 0
jmp 0x10030556
mov edi, dword [esp]
xor eax, eax
mov esi, 0xfffffffc
mov dword [esp + 0x1c], edx
mov dword [esp + 0x34], ebx
mov ebx, eax
shl ebx, 7
push edi
call fcn.1002e14d
add esp, 4
and eax, 0x7f
or eax, ebx
inc esi
jne 0x100304f9
cmp byte [esp + 7], 4
mov ebx, dword [esp + 0x34]
lea esi, [eax - 4]
cmovne esi, eax
test esi, esi
js 0x10030603
mov eax, esi
sar eax, 0x1f
push eax
push esi
mov edi, dword [esp + 8]
push edi
call fcn.1002df4c
add esp, 0xc
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x1c]
mov ecx, 1
mov dword [esp + 0x18], ecx
add eax, 0xfffffffc
sub eax, esi
mov dword [esp + 8], eax
js 0x1003059b
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x1c], edx
cmp dword [esp + 8], eax
jge 0x100305f5
cmp byte [esp + 7], 4
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
setne al
test byte [esp + 0x20], 0x10
mov edi, ebx
mov esi, edx
sete cl
or cl, al
add edi, 0xa
adc esi, 0
test cl, cl
cmove edx, esi
cmove ebx, edi
mov edi, dword [esp]
xor esi, esi
push esi
push edx
push ebx
push edi
call fcn.1002daa0
add esp, 0x10
push dword [esp + 0x58]
call sym.ffmpeg.dll_av_free
add esp, 4
push esi
call sym.ffmpeg.dll_av_free
add esp, 4
push 1
push esi
push esi
push edi
call fcn.1002daa0
add esp, 0x10
mov esi, eax
mov ecx, edx
mov ebx, edi
sub esi, dword [esp + 0x40]
sbb ecx, dword [esp + 0x3c]
cmp esi, dword [esp + 0x48]
sbb ecx, dword [esp + 0x4c]
mov cl, byte [esp + 6]
setl ch
or ch, cl
jne 0x100303c3
jmp 0x100303b3
lea edi, [esp + 0x6b]
mov dword [esp + 0x2c], 0
jmp 0x10030668
mov edi, dword [esp]
mov edx, dword [esp + 0x1c]
jmp 0x1003059b
lea esi, [esp + 0x64]
mov ecx, dword [esp + 0x10]
mov edx, ebx
push esi
lea eax, [esp + 0x64]
push eax
call fcn.100313dd
add esp, 8
test eax, eax
js 0x1003064e
mov eax, dword [esp + 0x60]
test eax, eax
je 0x10030b8d
push dword [esp + 0x28]
push eax
push dword [esp + 0x78]
push dword [esp + 0x18]
call sym.ffmpeg.dll_av_dict_set
add esp, 0x10
jmp 0x10030b8d
test byte [esp + 0x28], 4
je 0x10030b8d
lea eax, [esp + 0x70]
push eax
call fcn.10053962
jmp 0x10030b8a
cmp byte [esp + 0x44], 0
je 0x1003075a
mov esi, 4
push esi
push edi
push dword [esp + 8]
call fcn.1002e17d
add esp, 0xc
cmp eax, esi
jl 0x1003056c
mov ebx, dword [esp]
mov byte [esp + 0x6f], 0
push ebx
call fcn.1002e4af
add esp, 4
cmp byte [esp + 7], 3
mov esi, eax
je 0x100307bc
cmp esi, 0x80
jb 0x100307bc
cmp esi, dword [esp + 8]
jae 0x10030793
push 1
xor edi, edi
push edi
push edi
push ebx
call fcn.1002daa0
add esp, 0x10
mov dword [esp + 0x38], edx
lea ecx, [esi + 6]
push edi
mov edi, eax
push ecx
push ebx
call fcn.1002eaae
add esp, 0xc
test eax, eax
jne 0x1003056c
mov ecx, esi
mov eax, esi
mov ebx, esi
shr ecx, 1
and eax, 0x7f
shr ebx, 3
and ecx, 0x3f80
and ebx, 0xfe00000
or ecx, eax
mov eax, esi
shr eax, 2
and eax, 0x1fc000
or eax, ecx
mov ecx, dword [esp]
or ebx, eax
lea edx, [edi + ebx + 2]
call fcn.100311cc
cmp eax, 1
je 0x10030740
mov ecx, dword [esp]
lea edx, [edi + 2]
add edx, esi
call fcn.100311cc
cmp eax, 1
mov ebx, esi
jne 0x1003056c
push 0
push dword [esp + 0x3c]
push edi
mov edi, dword [esp + 0xc]
push edi
call fcn.1002daa0
add esp, 0x10
mov esi, ebx
mov ebx, edi
jmp 0x100307bc
mov esi, 3
push esi
push edi
push dword [esp + 8]
call fcn.1002e17d
add esp, 0xc
cmp eax, esi
jl 0x1003056c
xor ebx, ebx
mov byte [esp + 0x6e], 0
push dword [esp]
call fcn.1002e478
add esp, 4
mov esi, eax
mov dword [esp + 0x10], 0
jmp 0x100307ce
mov ecx, esi
mov eax, esi
mov edx, esi
shr esi, 3
shr ecx, 1
shr edx, 2
and eax, 0x7f
and esi, 0xfe00000
and ecx, 0x3f80
and edx, 0x1fc000
or ecx, eax
or edx, ecx
or esi, edx
push ebx
call fcn.1002e453
add esp, 4
mov ebx, eax
and eax, 2
mov dword [esp + 0x10], eax
cmp esi, sym.ffmpeg.dll_Ordinal_0
ja 0x1003056c
mov eax, dword [esp + 8]
sub eax, dword [esp + 0x24]
sub eax, esi
mov dword [esp + 8], eax
js 0x1003056c
push 1
xor edi, edi
push edi
push edi
push dword [esp + 0xc]
call fcn.1002daa0
add esp, 0x10
add eax, esi
adc edx, edi
test esi, esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x50], edx
je 0x1003081b
test bl, 1
jne 0x10030824
lea edi, [esp + 0x6b]
jmp 0x1003083f
lea edi, [esp + 0x6b]
jmp 0x10030ba3
cmp esi, 4
lea edi, [esp + 0x6b]
jb 0x1003056c
push dword [esp]
call fcn.1002e4af
add esp, 4
add esi, 0xfffffffc
test bl, 0xc
je 0x10030859
push 0
push esi
mov ebx, dword [esp + 8]
push ebx
call fcn.1002df4c
add esp, 0xc
jmp 0x10030b90
mov al, byte [esp + 0x6b]
cmp al, 0x54
je 0x100308c1
cmp dword [esp + 0x6b], 0x544c5355
je 0x100308c1
mov byte [esp + 0x14], al
push dword [esp + 0x30]
push edi
call fcn.1016bef0
add esp, 8
mov ebx, dword [esp + 0xc]
test eax, eax
je 0x10030942
cmp dword [ebp + 0x10], 0
mov al, byte [esp + 0x14]
je 0x100308b1
mov edx, dword [esp + 0x18]
mov ecx, edi
call fcn.10030de7
mov dword [esp + 0x2c], eax
test eax, eax
mov al, byte [esp + 0x14]
jne 0x100308c5
mov dword [esp + 0x2c], 0
mov ebx, dword [esp]
test al, al
jne 0x10030b90
jmp 0x10030bb6
mov ebx, dword [esp + 0xc]
cmp byte [esp + 0x20], 0
js 0x100308db
cmp dword [esp + 0x10], 0
jne 0x100308db
mov ecx, dword [esp]
jmp 0x10030982
push esi
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x60]
push eax
call fcn.10053c99
add esp, 0xc
mov ebx, dword [esp + 0x58]
test ebx, ebx
je 0x10030b8d
push esi
push ebx
push dword [esp + 8]
call fcn.1002e17d
add esp, 0xc
cmp eax, esi
jne 0x10030b8d
test esi, esi
je 0x1003094b
add esi, ebx
lea ecx, [ebx + 1]
mov edx, ecx
mov ch, byte [ebx]
lea eax, [ebx + 1]
cmp eax, esi
mov byte [edx - 1], ch
je 0x1003094d
cmp byte [ebx], 0xff
jne 0x10030937
cmp byte [ebx + 1], 0
jne 0x10030937
add ebx, 2
mov eax, ebx
lea ecx, [edx + 1]
cmp eax, esi
mov ebx, eax
jne 0x10030919
jmp 0x1003094d
mov al, byte [esp + 0x14]
jmp 0x100308c5
mov edx, ebx
mov eax, dword [esp + 0x58]
mov ecx, edx
mov ebx, edx
xor edx, edx
sub ecx, eax
push edx
push edx
push edx
push edx
push edx
push ecx
push eax
lea eax, [esp + 0x9c]
mov esi, eax
push eax
call fcn.1002d76f
add esp, 0x20
sub ebx, dword [esp + 0x58]
mov ecx, esi
mov al, byte [esp + 0x6b]
mov esi, ebx
mov ebx, dword [esp + 0xc]
cmp al, 0x54
jne 0x10030997
mov edx, esi
push edi
push ebx
call fcn.10031259
add esp, 8
jmp 0x10030b8d
cmp dword [esp + 0x6b], 0x544c5355
je 0x100309d9
mov dword [esp + 0x10], ecx
push dword [esp + 0x30]
push edi
call fcn.1016bef0
add esp, 8
test eax, eax
je 0x10030acf
push dword [esp + 0x18]
push dword [ebp + 0x10]
push edi
push esi
push dword [esp + 0x20]
push dword [ebp + 8]
mov eax, dword [esp + 0x44]
call dword [eax + 8]
add esp, 0x18
jmp 0x10030b8d
xor ebx, ebx
test esi, esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], ebx
jle 0x10030b6c
push ecx
mov ebx, ecx
call fcn.1002e14d
add esp, 4
mov dword [esp + 0x14], eax
lea eax, [esi - 1]
mov dword [esp + 0x64], eax
mov eax, 3
push eax
lea eax, [esp + 0x74]
push eax
mov dword [esp + 0x18], ebx
push ebx
call fcn.1002e17d
add esp, 0xc
mov ecx, 3
cmp eax, ecx
jl 0x10030b6a
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
add esi, 0xfffffffc
mov byte [esp + 0x73], 0
mov dword [esp + 0x64], esi
lea esi, [esp + 0x64]
mov edx, ebx
push esi
lea eax, [esp + 0x64]
push eax
call fcn.100313dd
add esp, 8
test eax, eax
js 0x10030b6a
mov ecx, dword [esp + 0x10]
mov edx, ebx
push esi
lea eax, [esp + 0x60]
push eax
call fcn.100313dd
add esp, 8
test eax, eax
mov ebx, 0
js 0x10030b6c
mov eax, dword [esp + 0x60]
mov ecx, 0x10180768
mov edx, 0x1019deef
cmp byte [eax], 0
cmovne ecx, edx
mov edx, 0x10180768
cmove eax, edx
lea edx, [esp + 0x70]
push edx
push ecx
push eax
push str.lyrics__s_s_s
call fcn.1004db9f
add esp, 0x10
test eax, eax
je 0x10030b6c
mov esi, eax
push 0
push dword [esp + 0x60]
push eax
push dword [esp + 0x18]
call sym.ffmpeg.dll_av_dict_set
add esp, 0x10
mov ebx, esi
jmp 0x10030b6c
cmp esi, 4
mov dword [esp + 0x64], esi
mov dword [esp + 0x70], str.comment
jl 0x10030b8d
mov ebx, dword [esp + 0x10]
push ebx
call fcn.1002e14d
add esp, 4
mov dword [esp + 0x14], eax
push ebx
call fcn.1002e3a9
add esp, 4
mov ecx, ebx
mov ebx, dword [esp + 0x14]
add esi, 0xfffffffc
lea eax, [esp + 0x64]
mov dword [esp + 0x64], esi
mov edx, ebx
push eax
lea eax, [esp + 0x64]
push eax
call fcn.100313dd
add esp, 8
test eax, eax
js 0x10030b8d
mov eax, dword [esp + 0x60]
mov dword [esp + 0x28], 0x18
test eax, eax
je 0x1003060c
cmp byte [eax], 0
lea esi, [esp + 0x64]
jne 0x10030b59
lea eax, [esp + 0x60]
push eax
call fcn.10053962
add esp, 4
mov eax, dword [esp + 0x60]
test eax, eax
je 0x10030610
mov dword [esp + 0x70], eax
mov dword [esp + 0x28], 0x1c
jmp 0x10030610
xor ebx, ebx
push dword [esp + 0x60]
call sym.ffmpeg.dll_av_free
add esp, 4
push dword [esp + 0x5c]
call sym.ffmpeg.dll_av_free
add esp, 4
push ebx
call sym.ffmpeg.dll_av_free
add esp, 4
mov ebx, dword [esp]
push 0
push dword [esp + 0x54]
push dword [esp + 0x40]
push ebx
call fcn.1002daa0
add esp, 0x10
mov eax, dword [esp + 0x24]
cmp dword [esp + 8], eax
jge 0x10030668
jmp 0x1003056c
push 0
push esi
push ebx
call fcn.1002df4c
add esp, 0xc
jmp 0x1003056c
push 0
push esi
push dword [esp + 0x10]
push ebx
call fcn.1002daa0
add esp, 0x10
mov ebx, dword [esp + 0xc]
xor edi, edi
push 0x1019da34
push edi
push ebx
call fcn.10037324
add esp, 0xc
push 0x1019de84
push edi
push ebx
call fcn.10037324
add esp, 0xc
push 0x1019db08
push edi
push ebx
call fcn.10037324
add esp, 0xc
xorps xmm0, xmm0
mov byte [esp + 0x90], 0
mov edx, str.TYER
movaps xmmword [esp + 0x80], xmm0
mov ecx, dword [ebx]
call fcn.10031705
test eax, eax
jne 0x10030c41
mov ecx, dword [ebx]
mov edx, 0x1019df24
call fcn.10031705
test eax, eax
je 0x10030d55
lea esi, [esp + 0x80]
push 5
push dword [eax + 4]
push esi
call fcn.1004da92
add esp, 0xc
push edi
push edi
push str.TYER
push ebx
call sym.ffmpeg.dll_av_dict_set
add esp, 0x10
push edi
push edi
push 0x1019df24
push ebx
call sym.ffmpeg.dll_av_dict_set
add esp, 0x10
mov ecx, dword [ebx]
mov edx, str.TDAT
call fcn.10031705
test eax, eax
jne 0x10030c9a
mov ecx, dword [ebx]
mov edx, 0x1019df2d
call fcn.10031705
test eax, eax
je 0x10030d3a
mov eax, dword [eax + 4]
lea ecx, [esp + 0x84]
push eax
add eax, 2
push eax
push str.__.2s__.2s
push 0xd
push ecx
call fcn.10006cfc
add esp, 0x14
xor edi, edi
push edi
push edi
push str.TDAT
push ebx
call sym.ffmpeg.dll_av_dict_set
add esp, 0x10
push edi
push edi
push 0x1019df2d
push ebx
call sym.ffmpeg.dll_av_dict_set
add esp, 0x10
mov ecx, dword [ebx]
mov edx, str.TIME
call fcn.10031705
test eax, eax
jne 0x10030cfb
mov ecx, dword [ebx]
mov edx, 0x1019df41
call fcn.10031705
test eax, eax
je 0x10030d3a
mov eax, dword [eax + 4]
lea edx, [esp + 0x8a]
lea ecx, [eax + 2]
push ecx
push eax
push str.__.2s:_.2s
push 7
push edx
call fcn.10006cfc
add esp, 0x14
push edi
push edi
push str.TIME
push ebx
call sym.ffmpeg.dll_av_dict_set
add esp, 0x10
push edi
push edi
push 0x1019df41
push ebx
call sym.ffmpeg.dll_av_dict_set
add esp, 0x10
cmp byte [esp + 0x80], 0
je 0x10030d55
push 0
push esi
push str.date
push ebx
call sym.ffmpeg.dll_av_dict_set
add esp, 0x10
mov ecx, dword [esp + 0x138]
xor ecx, ebp
call fcn.1015e65c
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0
push esi
push dword [esp + 0x10]
push dword [esp + 0xc]
jmp 0x10030bcf