Function at 0x100222a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x6c
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x80]
mov dword [esp + 0x34], 0
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x50], eax
mov eax, dword [edi + 0x18]
test eax, eax
jne 0x10022715
mov esi, dword [esp + 0x50]
mov dword [esp + 0x1c], ebx
test esi, esi
jne 0x100224f8
mov dword [esp + 0x18], str.from
mov eax, dword [edi + 4]
mov eax, dword [eax]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], str.Input
mov dword [esp + 0x14], eax
mov dword [esp + 8], str._s__d___s___s__s:_n
mov dword [esp + 4], 0x20
mov dword [esp], 0
call sub.avutil_59.dll_av_log
mov ebx, dword [edi + 0x90]
test ebx, ebx
je 0x1002273c
mov dword [esp], ebx
call sub.avutil_59.dll_av_dict_count
cmp eax, 1
je 0x10022550
mov dword [esp], 0x20
mov ecx, 0x10086903
mov edx, str.Metadata
mov eax, ebx
call fcn.1001ff90
mov ebx, dword [esp + 0x50]
test ebx, ebx
je 0x1002273c
mov ebx, dword [edi + 0x28]
test ebx, ebx
jne 0x100225b4
mov ecx, dword [edi + 0x78]
test ecx, ecx
je 0x10022490
xor edx, edx
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], edx
lea esi, [esi]
mov eax, dword [edi + 0x7c]
mov edx, dword [esp + 0x38]
mov esi, dword [eax + edx*4]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.name
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sub.avutil_59.dll_av_dict_get
mov edx, 0x1008620b
test eax, eax
je 0x100223c9
mov edx, dword [eax + 4]
mov dword [esp + 0x10], edx
mov eax, dword [esi]
mov dword [esp + 8], str.__Program__d__s_n
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x20
mov dword [esp], 0
call sub.avutil_59.dll_av_log
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x1002241f
mov dword [esp], ebx
call sub.avutil_59.dll_av_dict_count
cmp eax, 1
je 0x100226e8
mov dword [esp], 0x20
mov ecx, 0x10086219
mov edx, str.Metadata
mov eax, ebx
call fcn.1001ff90
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1002246d
xor ebx, ebx
lea esi, cs:[esi]
mov eax, dword [esi + 0xc]
mov ecx, 0xffffffff
mov edx, dword [eax + ebx*4]
mov eax, dword [esp + 0x50]
mov dword [esp + 8], 0x20
mov dword [esp], ebp
mov dword [esp + 4], eax
mov eax, edi
call fcn.10020270
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x34]
mov eax, dword [eax + ebx*4]
add ebx, 1
mov byte [ecx + eax], 1
mov eax, dword [esi + 0x10]
cmp ebx, eax
jb 0x10022430
add dword [esp + 0x40], eax
add dword [esp + 0x38], 1
mov eax, dword [esp + 0x38]
cmp eax, dword [edi + 0x78]
jb 0x10022390
mov edx, dword [esp + 0x40]
cmp edx, dword [edi + 0x18]
jb 0x10022b81
mov eax, dword [edi + 0x20]
xor ebx, ebx
test eax, eax
je 0x100224bc
mov esi, ebx
mov ebx, dword [esp + 0x50]
nop
mov dword [esp + 4], ebx
mov edx, dword [esp + 0x34]
mov ecx, esi
mov eax, edi
mov dword [esp], ebp
add esi, 1
call fcn.10021480
cmp esi, dword [edi + 0x20]
jb 0x100224a0
mov eax, dword [edi + 0x18]
xor ebx, ebx
test eax, eax
je 0x100224dd
lea esi, [esi]
mov ecx, dword [esp + 0x34]
cmp byte [ecx + ebx], 0
je 0x10022580
add ebx, 1
cmp ebx, eax
jb 0x100224c8
mov eax, dword [esp + 0x34]
mov dword [esp + 0x80], eax
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.1006c9b0
mov dword [esp + 0x18], 0x100868cb
mov eax, dword [edi + 8]
mov eax, dword [eax]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], str.Output
mov dword [esp + 0x14], eax
mov dword [esp + 8], str._s__d___s___s__s:_n
mov dword [esp + 4], 0x20
mov dword [esp], 0
call sub.avutil_59.dll_av_log
mov ebx, dword [edi + 0x90]
test ebx, ebx
je 0x10022366
mov dword [esp], ebx
call sub.avutil_59.dll_av_dict_count
cmp eax, 1
jne 0x10022342
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x100861eb
mov dword [esp], ebx
call sub.avutil_59.dll_av_dict_get
test eax, eax
jne 0x1002235a
jmp 0x10022342
mov eax, dword [esp + 0x50]
mov dword [esp], ebp
mov edx, ebx
mov ecx, 0xffffffff
mov dword [esp + 8], 0x20
add ebx, 1
mov dword [esp + 4], eax
mov eax, edi
call fcn.10020270
mov eax, dword [edi + 0x18]
cmp ebx, eax
jb 0x100224c8
jmp 0x100224dd
mov dword [esp + 8], str.__Chapters:_n
mov dword [esp + 4], 0x20
mov dword [esp], 0
call sub.avutil_59.dll_av_log
mov edx, dword [edi + 0x28]
test edx, edx
je 0x10022371
xor ebx, ebx
jmp 0x10022604
mov dword [esp], 0x20
mov ecx, 0x10086227
mov edx, str.Metadata
mov eax, esi
call fcn.1001ff90
add ebx, 1
cmp ebx, dword [edi + 0x28]
jae 0x10022371
mov eax, dword [edi + 0x2c]
mov esi, dword [eax + ebx*4]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 8], str.____Chapter__d:_d:
mov dword [esp + 4], 0x20
mov dword [esp], 0
call sub.avutil_59.dll_av_log
fild dword [esi + 8]
fild dword [esi + 0xc]
fdivp st(1)
fstp qword [esp + 0x38]
fld qword [esp + 0x38]
fild qword [esi + 0x10]
mov dword [esp + 8], str.start__f_
mov dword [esp + 4], 0x20
fmulp st(1)
mov dword [esp], 0
fstp qword [esp + 0xc]
call sub.avutil_59.dll_av_log
fild dword [esi + 8]
fild dword [esi + 0xc]
fdivp st(1)
fstp qword [esp + 0x38]
fld qword [esp + 0x38]
fild qword [esi + 0x18]
mov dword [esp + 8], str.end__f_n
mov dword [esp + 4], 0x20
fmulp st(1)
mov dword [esp], 0
fstp qword [esp + 0xc]
call sub.avutil_59.dll_av_log
mov esi, dword [esi + 0x20]
test esi, esi
je 0x100225f8
mov dword [esp], esi
call sub.avutil_59.dll_av_dict_count
cmp eax, 1
jne 0x100225e0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x100861eb
mov dword [esp], esi
call sub.avutil_59.dll_av_dict_get
test eax, eax
jne 0x100225f8
jmp 0x100225e0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x100861eb
mov dword [esp], ebx
call sub.avutil_59.dll_av_dict_get
test eax, eax
jne 0x1002241f
jmp 0x10022407
mov dword [esp], eax
call sub.avutil_59.dll_av_mallocz
mov edx, dword [edi + 0x18]
mov dword [esp + 0x34], eax
test edx, edx
je 0x100222da
test eax, eax
jne 0x100222da
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], str.__Duration:
mov dword [esp + 4], 0x20
mov dword [esp], 0
call sub.avutil_59.dll_av_log
mov ebx, dword [edi + 0x44]
mov ecx, dword [edi + 0x40]
mov edx, ebx
mov eax, ecx
xor edx, 0x80000000
or eax, edx
je 0x10022ba2
mov eax, 0xffffec77
cmp eax, ecx
mov eax, 0x7fffffff
sbb eax, ebx
jge 0x10022b73
lea eax, [esp + 0x58]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0xf4240
mov dword [esp + 0xc], 0
mov dword [esp + 0x54], edi
call fcn.10073db0
mov esi, edx
mov ecx, eax
mov ebx, edx
sar esi, 0x1f
mov eax, esi
and esi, 0xfffffff2
and eax, 0xd
mov dword [esp + 0x38], eax
mov eax, ecx
and eax, 0xfffffff
mov edi, eax
mov eax, ecx
shrd eax, edx, 0x1c
mov edx, ebx
and eax, 0xfffffff
shr edx, 0x18
add eax, edi
add eax, edx
mov edx, dword [esp + 0x38]
add eax, edx
mov edi, eax
mov eax, 0x88888889
mul edi
shr edx, 3
mov eax, edx
shl eax, 4
sub eax, edx
mov edx, edi
sub edx, eax
mov eax, ecx
add edx, esi
mov esi, edx
mov edi, edx
mov edx, ebx
mov ebx, 0xeeeeeeef
sar edi, 0x1f
sub eax, esi
mov dword [esp + 0x40], esi
sbb edx, edi
mov dword [esp + 0x44], edi
mov edi, 0xf
imul ecx, edx, 0xeeeeeeef
imul edx, eax, 0xeeeeeeee
add ecx, edx
mul ebx
mov dword [esp + 0x3c], edx
add dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov esi, edx
sar esi, 0x1f
xor eax, esi
mov ebx, esi
sub eax, esi
xor edx, edx
and eax, 3
xor edx, esi
xor eax, esi
sub eax, esi
sbb edx, esi
imul ecx, edx, 0xf
mul edi
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x40]
adc ecx, dword [esp + 0x44]
and ebx, 3
xor esi, esi
mov dword [esp + 0x48], edx
mov eax, ebx
mov edx, esi
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x3c]
shrd eax, edx, 2
sar edx, 2
mov dword [esp + 0x4c], ecx
mov esi, edx
mov ecx, eax
mov ebx, edx
sar esi, 0x1f
mov eax, esi
and esi, 0xfffffff2
and eax, 0xd
mov edi, eax
mov eax, ecx
and eax, 0xfffffff
mov dword [esp + 0x38], eax
mov eax, ecx
shrd eax, edx, 0x1c
mov edx, dword [esp + 0x38]
and eax, 0xfffffff
add eax, edx
mov edx, ebx
shr edx, 0x18
add eax, edx
add eax, edi
mov edi, eax
mov eax, 0x88888889
mul edi
shr edx, 3
mov eax, edx
shl eax, 4
sub eax, edx
mov edx, edi
sub edx, eax
mov eax, ecx
add edx, esi
mov esi, edx
mov edi, edx
mov edx, ebx
mov ebx, 0xeeeeeeef
sar edi, 0x1f
sub eax, esi
mov dword [esp + 0x40], esi
sbb edx, edi
mov dword [esp + 0x44], edi
mov edi, 0xf
imul ecx, edx, 0xeeeeeeef
imul edx, eax, 0xeeeeeeee
add ecx, edx
mul ebx
mov dword [esp + 0x3c], edx
add dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov esi, edx
sar esi, 0x1f
xor eax, esi
mov ebx, esi
sub eax, esi
xor edx, edx
and eax, 3
xor edx, esi
xor eax, esi
sub eax, esi
sbb edx, esi
imul ecx, edx, 0xf
mul edi
add edx, ecx
add eax, dword [esp + 0x40]
adc edx, dword [esp + 0x44]
and ebx, 3
xor esi, esi
mov dword [esp + 0x40], eax
mov eax, ebx
mov dword [esp + 0x44], edx
add eax, dword [esp + 0x38]
mov edx, esi
mov ebx, eax
adc edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x58]
mov dword [esp + 8], 0x2710
mov esi, edx
shrd ebx, edx, 2
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xc], 0
mov dword [esp], eax
sar esi, 2
mov dword [esp + 4], edx
call fcn.10073ad0
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], esi
mov dword [esp + 8], str._02lld:_02lld:_02lld._02lld
mov dword [esp + 4], 0x20
mov dword [esp], 0
call sub.avutil_59.dll_av_log
mov edi, dword [esp + 0x54]
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + 0x38]
xor eax, 0x80000000
or edx, eax
jne 0x10022a9c
mov dword [esp + 8], str.__bitrate:
mov dword [esp + 4], 0x20
mov dword [esp], 0
call sub.avutil_59.dll_av_log
mov ecx, dword [edi + 0x48]
mov edx, dword [edi + 0x4c]
mov eax, ecx
or eax, edx
jne 0x10022a5a
mov dword [esp + 8], 0x100868ad
mov dword [esp + 4], 0x20
mov dword [esp], 0
call sub.avutil_59.dll_av_log
mov dword [esp + 8], 0x100861bb
mov dword [esp + 4], 0x20
mov dword [esp], 0
call sub.avutil_59.dll_av_log
jmp 0x10022366
mov dword [esp + 8], 0x3e8
mov dword [esp + 0xc], 0
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.10073ad0
mov dword [esp + 8], str._lld_kb_s
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 4], 0x20
mov dword [esp], 0
call sub.avutil_59.dll_av_log
jmp 0x10022a39
mov dword [esp + 8], str.__start:
mov dword [esp + 4], 0x20
mov dword [esp], 0
call sub.avutil_59.dll_av_log
mov ebx, dword [edi + 0x3c]
mov eax, dword [edi + 0x38]
lea edx, [esp + 0x58]
mov dword [esp + 0x10], edx
mov dword [esp + 8], 0xf4240
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.10073db0
mov dword [esp + 0x10], 0xf4240
mov ecx, eax
mov dword [esp + 0x14], 0
neg ecx
mov dword [esp + 8], 0xf4240
adc edx, 0
mov dword [esp + 0xc], 0
neg edx
cmovns eax, ecx
mov ecx, dword [esp + 0x58]
mov esi, eax
mov edx, ecx
mov eax, dword [esp + 0x5c]
neg edx
adc eax, 0
neg eax
cmovs eax, dword [esp + 0x5c]
cmovs edx, ecx
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.avutil_59.dll_av_rescale
test ebx, ebx
mov ecx, 0x1008620b
mov dword [esp + 0x10], esi
mov edx, eax
mov eax, 0x100868c9
mov dword [esp + 8], str._s_d._06d
cmovns eax, ecx
mov dword [esp + 0x14], edx
mov dword [esp + 4], 0x20
mov dword [esp + 0xc], eax
mov dword [esp], 0
call sub.avutil_59.dll_av_log
jmp 0x100229f5
add ecx, 0x1388
adc ebx, 0
jmp 0x10022784
mov dword [esp + 8], str.__No_Program_n
mov dword [esp + 4], 0x20
mov dword [esp], 0
call sub.avutil_59.dll_av_log
jmp 0x10022490
mov dword [esp + 8], 0x100868ad
mov dword [esp + 4], 0x20
mov dword [esp], 0
call sub.avutil_59.dll_av_log
jmp 0x100229e2