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

Disassembly:
push ebp
push edi
xor ebp, ebp
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x18]
test eax, eax
jne 0x47285e
mov edi, dword [esp + 0x38]
test edi, edi
jne 0x472768
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], str.from
mov eax, dword [esi + 4]
mov eax, dword [eax]
mov dword [esp + 0xc], str.Input
mov dword [esp + 8], str._s__d___s___s__s:_n
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
call fcn.00891920
mov ebx, dword [esi + 0x484]
test ebx, ebx
je 0x472883
mov dword [esp], ebx
call fcn.0087b560
cmp eax, 1
je 0x4727c8
mov edx, 0xc37273
mov eax, ebx
call fcn.00470560
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x472883
mov edx, dword [esi + 0x47c]
xor ebx, ebx
test edx, edx
je 0x4725e9
mov dword [esp + 0x30], ebp
mov edi, dword [esp + 0x2c]
jmp 0x4724eb
mov edx, 0xc36dcf
mov eax, ebp
call fcn.00470560
add ebx, 1
cmp dword [esi + 0x47c], ebx
jbe 0x4725e5
mov eax, dword [esi + 0x480]
mov ebp, dword [eax + ebx*4]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 8], str.____Chapter__d:_d:
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00891920
fild dword [ebp + 4]
fild dword [ebp + 8]
fdivp st(1)
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fild qword [ebp + 0x10]
mov dword [esp + 8], str.start__f_
mov dword [esp + 4], 0x20
mov dword [esp], 0
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fmulp st(1)
fstp qword [esp + 0xc]
call fcn.00891920
fild dword [ebp + 4]
fild dword [ebp + 8]
fdivp st(1)
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fild qword [ebp + 0x18]
mov dword [esp + 8], str.end__f_n
mov dword [esp + 4], 0x20
mov dword [esp], 0
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fmulp st(1)
fstp qword [esp + 0xc]
call fcn.00891920
mov ebp, dword [ebp + 0x20]
test ebp, ebp
je 0x4724dc
mov dword [esp], ebp
call fcn.0087b560
cmp eax, 1
jne 0x4724d0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc36c88
mov dword [esp], ebp
call fcn.0087b580
test eax, eax
je 0x4724d0
add ebx, 1
cmp dword [esi + 0x47c], ebx
ja 0x4724eb
mov ebp, dword [esp + 0x30]
mov eax, dword [esi + 0x460]
test eax, eax
je 0x472856
mov dword [esp + 0x30], 0
mov edx, dword [esi + 0x464]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
lea edi, [eax*4]
mov dword [esp + 4], 0xc372ea
mov eax, dword [edx + eax*4]
mov eax, dword [eax + 0x14]
mov dword [esp], eax
call fcn.0087b580
test eax, eax
je 0x472830
mov eax, dword [eax + 4]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x464]
mov eax, dword [eax + edi]
mov eax, dword [eax]
mov dword [esp + 8], str.__Program__d__s_n
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.00891920
mov edx, dword [esi + 0x464]
mov eax, dword [edx + edi]
mov ebx, dword [eax + 0x14]
test ebx, ebx
je 0x4726ae
mov dword [esp], ebx
call fcn.0087b560
cmp eax, 1
je 0x4727f5
mov edx, 0xc36dcf
mov eax, ebx
call fcn.00470560
mov edx, dword [esi + 0x464]
mov eax, dword [edx + edi]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x4726fa
xor ebx, ebx
mov esi, esi
lea edi, [edi]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x2c]
mov edx, dword [eax + ebx*4]
mov eax, dword [esp + 0x38]
mov dword [esp], eax
mov eax, esi
call fcn.00470720
mov edx, dword [esi + 0x464]
lea eax, [edx + edi]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + ebx*4]
add ebx, 1
mov byte [ebp + ecx], 1
mov eax, dword [eax]
mov ecx, dword [eax + 0x10]
cmp ecx, ebx
ja 0x4726c0
add dword [esp + 0x30], 1
add dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x30]
cmp dword [esi + 0x460], eax
ja 0x472611
mov eax, dword [esi + 0x18]
cmp dword [esp + 0x3c], eax
jb 0x47283a
xor ebx, ebx
test eax, eax
mov edi, dword [esp + 0x38]
jne 0x472737
jmp 0x472758
add ebx, 1
cmp ebx, eax
jae 0x472758
cmp byte [ebp + ebx], 0
jne 0x472730
mov ecx, dword [esp + 0x2c]
mov edx, ebx
mov eax, esi
mov dword [esp], edi
add ebx, 1
call fcn.00470720
mov eax, dword [esi + 0x18]
cmp ebx, eax
jb 0x472737
mov dword [esp + 0x70], ebp
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.008940b0
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], 0xc3730e
mov eax, dword [esi + 8]
mov eax, dword [eax]
mov dword [esp + 0xc], str.Output
mov dword [esp + 8], str._s__d___s___s__s:_n
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
call fcn.00891920
mov ebx, dword [esi + 0x484]
test ebx, ebx
je 0x4724b0
mov dword [esp], ebx
call fcn.0087b560
cmp eax, 1
jne 0x472498
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc36c88
mov dword [esp], ebx
call fcn.0087b580
test eax, eax
jne 0x4724a4
jmp 0x472498
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc36c88
mov dword [esp], ebx
call fcn.0087b580
test eax, eax
je 0x472699
mov edx, dword [esi + 0x464]
mov eax, dword [edx + edi]
jmp 0x4726ae
mov eax, 0xc36ca6
jmp 0x472649
mov dword [esp + 8], str.__No_Program_n
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00891920
mov eax, dword [esi + 0x18]
jmp 0x472720
mov dword [esp], eax
call fcn.00894240
mov edx, dword [esi + 0x18]
mov ebp, eax
test edx, edx
je 0x47242c
test eax, eax
jne 0x47242c
add esp, 0x5c
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 fcn.00891920
mov ebx, dword [esi + 0x42c]
mov ecx, dword [esi + 0x428]
lea edx, [ebx - 0x80000000]
or edx, ecx
je 0x472b95
cmp ebx, 0x7fffffff
jge 0x472b62
mov eax, 0x1388
xor edx, edx
add eax, ecx
mov dword [esp + 8], 0xf4240
mov dword [esp + 0xc], 0
adc edx, ebx
mov dword [esp], eax
mov dword [esp + 0x30], eax
mov dword [esp + 4], edx
mov dword [esp + 0x34], edx
call fcn.00bd0e70
mov edi, eax
mov eax, 0x88888889
mov dword [esp + 8], 0xf4240
imul edi
mov ebx, edi
mov eax, dword [esp + 0x30]
sar ebx, 0x1f
mov dword [esp + 0xc], 0
mov dword [esp + 0x3c], ebx
add edx, edi
mov dword [esp], eax
sar edx, 5
sub edx, ebx
mov ebx, edx
mov edx, dword [esp + 0x34]
mov dword [esp + 4], edx
call fcn.00bd0fb0
mov ecx, eax
mov edx, 0x68db8bad
mov dword [esp + 8], str._02d:_02d:_02d._02d
mov eax, ecx
sar ecx, 0x1f
mov dword [esp + 4], 0x20
imul edx
mov dword [esp], 0
imul eax, ebx, 0x3c
sar edx, 0xc
sub edx, ecx
mov dword [esp + 0x18], edx
mov edx, edi
sub edx, eax
mov eax, 0x88888889
mov dword [esp + 0x14], edx
imul ebx
mov eax, ebx
sar eax, 0x1f
add edx, ebx
sar edx, 5
sub edx, eax
imul eax, edx, 0x3c
mov edx, ebx
sub edx, eax
mov eax, edi
mov dword [esp + 0x10], edx
mov edx, 0x91a2b3c5
imul edx
lea eax, [edx + edi]
sar eax, 0xb
sub eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
call fcn.00891920
mov eax, dword [esi + 0x424]
add eax, 0x80000000
or eax, dword [esi + 0x420]
je 0x472ad3
mov dword [esp + 8], str.__start:
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00891920
mov eax, dword [esi + 0x420]
mov edi, dword [esi + 0x424]
mov dword [esp + 8], 0xf4240
mov dword [esp + 0xc], 0
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x40], eax
call fcn.00bd0e70
mov dword [esp + 0x3c], eax
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x44], edx
sar edx, 0x1f
mov dword [esp + 8], 0xf4240
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0xf4240
xor edi, edx
mov dword [esp + 0x14], 0
mov eax, edi
sub eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
call fcn.00bd0fb0
mov edi, edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
sar edi, 0x1f
mov dword [esp + 8], 0xf4240
mov dword [esp + 0xc], 0
mov ecx, edi
mov edi, dword [esp + 0x40]
xor edi, ecx
mov eax, edi
mov edi, dword [esp + 0x44]
xor edi, ecx
sub eax, ecx
mov edx, edi
mov dword [esp], eax
sbb edx, ecx
mov dword [esp + 4], edx
call fcn.00892690
mov ecx, dword [esp + 0x30]
mov edx, 0xc37271
test ecx, ecx
js 0x472aa7
mov edx, 0xc36ca6
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], str._s_d._06d
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0x10], eax
call fcn.00891920
mov dword [esp + 8], str.__bitrate:
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00891920
mov eax, dword [esi + 0x434]
mov edx, dword [esi + 0x430]
mov edi, eax
or edi, edx
je 0x472b77
mov dword [esp + 8], 0x3e8
mov dword [esp + 0xc], 0
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00bd0e70
mov dword [esp + 8], str._I64d_kb_s
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00891920
mov dword [esp + 8], 0xc36c79
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00891920
jmp 0x4724b0
xor eax, eax
xor edx, edx
cmp ecx, 0xffffec77
ja 0x4728cc
jmp 0x4728c5
mov dword [esp + 8], 0xc37255
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00891920
jmp 0x472b41
mov dword [esp + 8], 0xc37255
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00891920
jmp 0x4729a6