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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x28c
mov esi, dword [ebp + 8]
add esi, 0x1988
test byte [0x77e4c0], 1
je 0x669f40
emms
xor eax, eax
mov edx, esi
mov dword [edx + 0x18], 0
mov ebx, 1
mov ecx, 1
mov dword [esi + eax*4 + 0x188], ebx
xor edi, edi
mov ebx, 1
mov dword [esi + eax*8 + 0x160], ecx
xor ecx, ecx
mov dword [esi + eax*8 + 0x164], edi
mov edi, 1
mov dword [esi + eax*8 + 0x138], ebx
xor ebx, ebx
mov dword [esi + eax*8 + 0x13c], ecx
mov ecx, 1
mov dword [esi + eax*8 + 0x110], edi
xor edi, edi
mov dword [esi + eax*8 + 0x114], ebx
xor ebx, ebx
mov dword [esi + eax*8 + 0xe8], ecx
mov ecx, 0x40827000
mov dword [edx + 0x1c], 0x4089d000
mov dword [edx + 0x20], 0
mov dword [edx + 0x24], 0x3ff00000
mov dword [edx + 0x28], 0x9999999a
mov dword [edx + 0x2c], 0x3fd99999
add edx, 0x18
mov dword [esi + eax*8 + 0xec], edi
mov dword [esi + eax*8 + 0xb8], ebx
mov dword [esi + eax*8 + 0xbc], ecx
inc eax
cmp eax, 4
jle 0x669f44
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov edx, dword [edx + 0x38]
fild dword [eax + 0x254]
test dh, 4
fstp qword [esi + 0x10]
je 0x66a4d2
mov eax, dword [eax + 0x120]
mov ebx, 0xffffffff
jmp 0x66a02a
inc eax
mov ecx, 0x3b
inc ebx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00404fa0
test eax, eax
jne 0x66a017
mov edx, dword [ebp + 8]
mov edi, dword [edx + 0x40]
mov edx, 0xffffffff
add ebx, edi
lea eax, [ebx - 1]
cmp eax, 0x1c71c6f
ja 0x66a7df
lea ecx, [ebx + ebx*8]
shl ecx, 3
mov dword [esp], ecx
call fcn.0045c300
mov dword [esi + 8], eax
mov edx, eax
xor ecx, ecx
mov dword [esi + 4], ebx
mov eax, ebx
cmp ebx, 0
jmp 0x66a0ad
mov dword [edx + 0x28], 2
mov ebx, dword [ebp + 8]
inc ecx
mov dword [edx], 2
mov dword [edx + 0x2c], 0x436c0000
mov eax, dword [ebx + 0xa4]
mov dword [edx + 4], 0x436c0000
add eax, 0xa
mov dword [edx + 0x14], eax
mov edi, dword [ebx + 0xa4]
lea eax, [edi + edi*4]
lea ebx, [eax + eax*4]
shl ebx, 2
mov dword [edx + 0x34], ebx
mov eax, dword [esi + 4]
add edx, 0x48
cmp eax, ecx
jg 0x66a068
mov ecx, dword [ebp + 8]
xor edi, edi
mov dword [ebp - 0x20c], edi
mov edx, dword [ecx]
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x1b4], edx
mov ebx, dword [edx + 0x120]
mov edx, dword [ecx + 0x40]
mov dword [ebp - 0x208], ebx
sub eax, edx
cmp eax, 0
jle 0x66a1d8
mov edi, 0x3b
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x208]
mov dword [esp], eax
call fcn.00404fa0
test eax, eax
mov edi, eax
je 0x66a100
mov byte [eax], 0
inc edi
lea edx, [ebp - 0x13c]
mov eax, 0x6f0798
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov ebx, dword [ebp - 0x208]
mov dword [esp], ebx
call fcn.00673f71
mov ecx, dword [ebp - 0x13c]
mov ebx, eax
mov edx, dword [esi + 8]
lea eax, [ecx + ecx*8]
lea eax, [edx + eax*8]
lea ecx, [eax + 0x18]
mov dword [esp + 0x38], ecx
lea edx, [eax + 0x3c]
lea ecx, [eax + 0x38]
mov dword [esp + 0x34], edx
lea edx, [eax + 0x34]
mov dword [esp + 0x30], ecx
lea ecx, [eax + 0x30]
mov dword [esp + 0x2c], edx
lea edx, [eax + 0x44]
mov dword [esp + 0x28], ecx
lea ecx, [eax + 0x40]
mov dword [esp + 0x24], edx
lea edx, [eax + 0x14]
mov dword [esp + 0x20], ecx
lea ecx, [eax + 8]
mov dword [esp + 0x1c], edx
lea edx, [eax + 0x10]
mov dword [esp + 0x18], ecx
lea ecx, [eax + 0xc]
mov dword [esp + 0x14], edx
lea edx, [eax + 4]
mov dword [esp + 0x10], ecx
mov ecx, str._in:_d_out:_d_type:_d_q:_f_itex:_d_ptex:_d_mv:_d_misc:_d_fcode:_d_bcode:_d_mc_var:_d_var:_d_icount:_d_skipcount:_d_hbits:_d
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov edx, dword [ebp - 0x208]
mov dword [esp], edx
call fcn.00673f71
lea eax, [ebx + eax]
cmp eax, 0xe
jne 0x66b1e9
mov dword [ebp - 0x208], edi
mov edx, dword [ebp + 8]
mov edi, dword [esi + 4]
inc dword [ebp - 0x20c]
mov ecx, dword [edx + 0x40]
sub edi, ecx
cmp edi, dword [ebp - 0x20c]
jg 0x66a0df
mov ebx, dword [edx]
mov dword [ebp - 0x1b4], ebx
cld
mov ecx, dword [ebp - 0x1b4]
mov edx, 0xa
lea edi, [ebp - 0x48]
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x148], ecx
mov ebx, dword [ecx + 0x24]
mov ecx, edx
push eax
xor eax, eax
fild dword [esp]
mov dword [esp], ebx
xor ebx, ebx
fild dword [esp]
rep stosd dword es:[edi], eax
mov ecx, edx
lea edi, [ebp - 0xa8]
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 8]
fdivp st(1)
fdivr qword [0x6f0928]
fild dword [edi + 0x14]
mov edi, dword [esi + 4]
mov dword [esp], edi
fild dword [esp]
add esp, 4
fmulp st(1)
fdivrp st(1)
fstp qword [esp]
call fcn.006727c0
fld dword [0x6f08e0]
mov dword [ebp - 0x154], edx
mov ecx, dword [ebp - 0x1b4]
mov dword [ebp - 0x158], eax
xor eax, eax
fmul dword [ecx + 0x60]
fnstcw word [ebp - 0x13e]
movzx edx, word [ebp - 0x13e]
mov dword [ebp - 0x160], eax
xor eax, eax
mov dword [ebp - 0x15c], ebx
or dx, 0xc00
mov word [ebp - 0x140], dx
fldcw word [ebp - 0x140]
fistp dword [ebp - 0x164]
fldcw word [ebp - 0x13e]
mov dword [ebp - 0x14c], eax
or dword [ebp - 0x164], 1
cmp edi, 0
jle 0x66a80e
mov ebx, dword [esi + 8]
jmp 0x66a391
fstp dword [ebp - 0xdc]
fild dword [ebx + 0xc]
fmul dword [ebx + 4]
fld dword [ebp - 0xdc]
faddp st(1)
fstp dword [esp]
call fcn.00672820
mov dword [esi + edi*8 + 0xec], edx
mov dword [esi + edi*8 + 0xe8], eax
mov edi, dword [ebx]
mov ecx, dword [esi + edi*8 + 0x114]
mov edx, dword [esi + edi*8 + 0x110]
push ecx
push edx
fild qword [esp]
add esp, 8
test ecx, ecx
js 0x66a803
fstp dword [ebp - 0xdc]
fild dword [ebx + 0x10]
fld dword [ebx + 4]
fld dword [ebp - 0xdc]
fxch st(1)
fst dword [ebp - 0x17c]
fmulp st(2)
faddp st(1)
fstp dword [esp]
call fcn.00672820
mov dword [esi + edi*8 + 0x110], eax
mov ecx, dword [ebx]
mov eax, dword [ebx + 8]
mov dword [esi + edi*8 + 0x114], edx
cdq
add dword [esi + ecx*8 + 0x138], eax
adc dword [esi + ecx*8 + 0x13c], edx
inc dword [esi + ecx*4 + 0x188]
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x28]
add eax, edx
push eax
mov edi, dword [ebx + 8]
mov eax, dword [ebx + 0x14]
fild dword [esp]
add esp, 4
add eax, edi
fmul dword [ebp - 0x17c]
cdq
mov edi, dword [esi + 4]
add dword [ebp + ecx*8 - 0xa8], eax
adc dword [ebp + ecx*8 - 0xa4], edx
add ebx, 0x48
inc dword [ebp - 0x14c]
fadd qword [ebp + ecx*8 - 0x48]
cmp edi, dword [ebp - 0x14c]
fstp qword [ebp + ecx*8 - 0x48]
jle 0x66a80e
mov edi, dword [ebx]
mov edx, dword [esi + edi*8 + 0xec]
mov dword [ebx + 0x28], edi
mov eax, dword [esi + edi*8 + 0xe8]
push edx
push eax
fild qword [esp]
add esp, 8
test edx, edx
jns 0x66a2a9
fadd dword [0x6f08e4]
jmp 0x66a2a9
fld xword [ebp - 0x1e8]
mov edi, dword [ebp - 0x154]
test edi, edi
js 0x66afbc
fstp qword [ebp - 0xe8]
fld qword [ebp - 0xe8]
fld qword [ebp - 0x170]
fucompp
fnstsw ax
sahf
jbe 0x66a3fe
fld qword [ebp - 0x160]
fsub qword [ebp - 0x218]
fstp qword [ebp - 0x160]
fld qword [ebp - 0x218]
fmul dword [0x6f08f8]
fld qword [0x6f08f0]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
fstp qword [ebp - 0x218]
sahf
ja 0x66ab32
mov edx, dword [ebp - 0x174]
mov dword [esp], edx
call fcn.0045e850
mov ecx, dword [ebp - 0x178]
mov dword [esp], ecx
call fcn.0045e850
fld xword [ebp - 0x1e8]
mov ebx, dword [ebp - 0x154]
test ebx, ebx
js 0x66b0c7
fstp qword [ebp - 0xe8]
fld qword [ebp - 0xe8]
fdivr qword [ebp - 0x170]
fnstcw word [ebp - 0x13e]
movzx edi, word [ebp - 0x13e]
or di, 0xc00
mov word [ebp - 0x140], di
fsub qword [0x6f0928]
fldcw word [ebp - 0x140]
fistp dword [ebp - 0x144]
fldcw word [ebp - 0x13e]
fld qword [0x6f0900]
mov eax, dword [ebp - 0x144]
cdq
xor eax, edx
sub eax, edx
push eax
fild dword [esp]
add esp, 4
fucompp
fnstsw ax
sahf
ja 0x66b0ae
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
test dh, 4
je 0x66a4d2
mov eax, dword [ecx]
cmp dword [eax + 0x78], 1
je 0x66b21d
test dh, 4
jne 0x66a7dd
fld qword [0x6f0908]
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx]
fst qword [esi + 0x90]
fst qword [esi + 0x98]
fld dword [ecx + 0x154]
fxch st(1)
fst qword [ebp - 0x1f0]
fst qword [esi + 0xa0]
fst qword [ebp - 0x1a0]
fstp qword [esi + 0xa8]
fldz
fxch st(1)
fucompp
fnstsw ax
sahf
jp 0x66a523
je 0x66a7dd
xor edi, edi
fld1
jmp 0x66a69f
fld st(0)
xor eax, eax
mov edx, dword [esi + ebx*8 + 0xec]
fmul qword [0x6f0918]
fxch st(1)
mov dword [ebp - 0x12c], eax
mov eax, dword [esi + ebx*8 + 0xe8]
xor ecx, ecx
fmul qword [0x6f0920]
fxch st(1)
mov dword [ebp - 0x100], ecx
fldcw word [ebp - 0x140]
fistp dword [ebp - 0x128]
fldcw word [ebp - 0x13e]
fldcw word [ebp - 0x140]
fistp dword [ebp - 0x130]
fldcw word [ebp - 0x13e]
push edx
push eax
fild qword [esp]
add esp, 8
test edx, edx
js 0x66a7d0
fstp dword [ebp - 0xdc]
fild dword [ebp - 0x12c]
fmul dword [0x6f08dc]
fld dword [ebp - 0xdc]
faddp st(1)
fstp dword [esp]
call fcn.00672820
mov dword [esi + ebx*8 + 0xec], edx
mov ecx, dword [esi + ebx*8 + 0x114]
mov edx, dword [esi + ebx*8 + 0x110]
mov dword [esi + ebx*8 + 0xe8], eax
push ecx
push edx
fild qword [esp]
add esp, 8
test ecx, ecx
js 0x66a7f8
fstp dword [ebp - 0xdc]
fild dword [ebp - 0x128]
fmul dword [0x6f08dc]
fld dword [ebp - 0xdc]
faddp st(1)
fstp dword [esp]
call fcn.00672820
mov dword [esi + ebx*8 + 0x110], eax
mov eax, dword [ebp - 0x130]
mov dword [esi + ebx*8 + 0x114], edx
cdq
add dword [esi + ebx*8 + 0x138], eax
adc dword [esi + ebx*8 + 0x13c], edx
lea edx, [ebp - 0x138]
inc dword [esi + ebx*4 + 0x188]
mov dword [esp + 8], edi
inc edi
fld qword [ebp - 0x1a0]
fdiv qword [ebp - 0x1f0]
fstp qword [esp]
mov eax, dword [ebp + 8]
call fcn.00668310
fstp st(0)
mov edx, dword [ebp + 8]
fld1
mov ecx, dword [edx]
fild dword [edx + 0x14]
mov eax, dword [ecx + 0x20]
mov ebx, dword [ecx + 0x24]
push eax
fild dword [esp]
mov dword [esp], ebx
fild dword [esp]
add esp, 4
cmp edi, 0x707
fdivp st(1)
fdivr st(2)
fdivp st(1)
fadd qword [esi + 0xa8]
fst qword [ebp - 0x1a0]
fstp qword [esi + 0xa8]
jg 0x66a7db
fld qword [esi + 0xa0]
fstp qword [ebp - 0x1f0]
push edi
mov ebx, dword [ebp + 8]
fild dword [esp]
fdiv dword [0x6f0910]
faddp st(1)
fmul dword [ecx + 0x154]
mov ecx, dword [ebx + 0xa4]
mov dword [esp], ecx
mov edx, dword [ebx + 0xc]
fild dword [esp]
add esp, 4
mov ebx, edx
add ebx, 3
fmulp st(1)
js 0x66a7f0
mov eax, edi
sar ebx, 2
cdq
idiv ebx
mov eax, 1
test edx, edx
je 0x66a6f8
mov edx, dword [ebp + 8]
mov eax, edi
mov ebx, dword [edx + 0x40]
cdq
inc ebx
idiv ebx
cmp edx, 1
sbb eax, eax
add eax, 3
mov dword [ebp - 0x138], eax
mov edx, 2
mov ebx, dword [ebp - 0x138]
mov dword [ebp - 0x110], ebx
push ecx
fild dword [esp]
add esp, 4
fnstcw word [ebp - 0x13e]
movzx eax, word [ebp - 0x13e]
mov dword [ebp - 0xf8], edx
mov edx, 1
mov dword [ebp - 0x104], ecx
or ax, 0xc00
fmul st(1)
mov word [ebp - 0x140], ax
mov eax, 1
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp + 8]
fdiv dword [0x6f0914]
mov dword [ebp - 0x124], edx
mov dword [ebp - 0x134], 0x436c0000
fldcw word [ebp - 0x140]
fistp dword [ebp - 0x108]
fldcw word [ebp - 0x13e]
cmp dword [eax + 0x81c], 1
jne 0x66a530
mov dword [ebp - 0x100], ecx
xor edx, edx
mov eax, dword [esi + ebx*8 + 0xe8]
mov dword [ebp - 0x128], edx
mov edx, dword [esi + ebx*8 + 0xec]
xor ecx, ecx
fldcw word [ebp - 0x140]
fistp dword [ebp - 0x12c]
fldcw word [ebp - 0x13e]
mov dword [ebp - 0x130], ecx
push edx
push eax
fild qword [esp]
add esp, 8
test edx, edx
jns 0x66a594
lea esi, [esi]
fadd dword [0x6f08e4]
jmp 0x66a594
fstp st(0)
xor edx, edx
add esp, 0x28c
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
lea ebx, [edx + 6]
jmp 0x66a6d3
fadd dword [0x6f08e4]
jmp 0x66a5e2
fadd dword [0x6f08e4]
jmp 0x66a2f3
mov eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0x94]
add eax, dword [ebp - 0xa0]
adc edx, dword [ebp - 0x9c]
add eax, dword [ebp - 0x90]
adc edx, dword [ebp - 0x8c]
cmp dword [ebp - 0x154], edx
ja 0x66a873
jb 0x66a844
cmp dword [ebp - 0x158], eax
jae 0x66a873
mov ebx, str.requested_bitrate_is_to_low_n
xor esi, esi
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x1b4]
mov dword [esp], eax
call fcn.0045dc30
mov edx, 0xffffffff
add esp, 0x28c
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
push edx
fldz
push eax
mov ecx, dword [ebp - 0x154]
fild qword [esp]
add esp, 8
test ecx, ecx
fld qword [ebp - 0x40]
fld qword [ebp - 0x38]
fld dword [0x6f08e8]
fxch st(2)
fstp qword [ebp - 0x1a8]
fild qword [ebp - 0x158]
fxch st(3)
fstp xword [ebp - 0x1c8]
fld qword [ebp - 0x30]
fxch st(1)
fstp qword [ebp - 0x1b0]
fstp qword [ebp - 0x1d0]
fld dword [0x6f08e4]
fxch st(2)
fstp xword [ebp - 0x1e8]
js 0x66afc7
test edx, edx
js 0x66a9ba
fstp st(1)
mov ecx, dword [ebp - 0x1b4]
fadd st(1), st(0)
fldz
fld dword [ecx + 0x14c]
fld st(3)
fxch st(1)
fucom st(2)
fnstsw ax
fstp st(2)
sahf
jae 0x66a8f9
fxch st(1)
fchs
fxch st(1)
mov edx, dword [ebp - 0x1b4]
fld st(3)
fmulp st(2)
fld dword [edx + 0x74]
fldz
fxch st(3)
fadd dword [edx + 0x150]
fxch st(1)
fucom st(3)
fnstsw ax
fstp st(3)
sahf
jae 0x66a921
fxch st(2)
fchs
fxch st(2)
fld xword [ebp - 0x1c8]
fld st(5)
mov ebx, dword [ebp - 0x1b4]
fld xword [ebp - 0x1e8]
fxch st(1)
fmulp st(5)
fxch st(4)
fadd dword [ebx + 0xfc]
fxch st(1)
fstp qword [ebp - 0xe8]
fld qword [ebp - 0x1a8]
fld qword [ebp - 0xe8]
fxch st(5)
fstp qword [ebp - 0xe8]
fdiv st(2)
faddp st(4)
fld qword [ebp - 0x1b0]
fdiv st(6)
faddp st(4)
fld qword [ebp - 0x1d0]
fdiv st(1)
faddp st(4)
fld qword [ebp - 0xe8]
fucomp st(4)
fnstsw ax
fstp st(3)
sahf
jbe 0x66a98e
fstp st(1)
fxch st(3)
fsub st(2)
fld st(0)
fxch st(4)
fxch st(3)
fmul qword [0x6f0930]
fld qword [0x6f08f0]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
jbe 0x66b231
fstp st(1)
fstp st(1)
jmp 0x66a8d4
fstp st(1)
fstp st(1)
fstp st(1)
mov ebx, dword [ebp - 0x1b4]
fadd st(2), st(0)
fldz
fld dword [ebx + 0x14c]
fld st(4)
fxch st(1)
fucom st(2)
fnstsw ax
fstp st(2)
sahf
jae 0x66a9dd
fxch st(1)
fchs
fxch st(1)
mov ecx, dword [ebp - 0x1b4]
fld st(4)
fmulp st(2)
fld dword [ecx + 0x74]
fldz
fxch st(3)
fadd dword [ecx + 0x150]
fxch st(1)
fucom st(3)
fnstsw ax
fstp st(3)
sahf
jae 0x66aa05
fxch st(2)
fchs
fxch st(2)
fld qword [ebp - 0x1a8]
fld st(6)
mov edx, dword [ebp - 0x1b4]
fmulp st(4)
fdiv st(1)
fld xword [ebp - 0x1c8]
fxch st(4)
fadd dword [edx + 0xfc]
fxch st(4)
fadd st(6)
fstp qword [ebp - 0xe8]
fld qword [ebp - 0xe8]
faddp st(1)
fld qword [ebp - 0x1b0]
fdiv st(7)
faddp st(1)
fld qword [ebp - 0x1d0]
fdiv st(4)
faddp st(1)
fld xword [ebp - 0x1e8]
fstp qword [ebp - 0x258]
fld qword [ebp - 0x258]
fucompp
fnstsw ax
sahf
jbe 0x66aa6e
fstp st(1)
fxch st(4)
fsub st(2)
fld st(0)
fxch st(5)
fxch st(3)
fmul qword [0x6f0930]
fld qword [0x6f08f0]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
ja 0x66a9b4
fstp st(0)
fstp st(3)
fstp st(3)
fxch st(1)
fstp qword [ebp - 0x68]
xor ebx, ebx
fstp qword [ebp - 0x70]
fstp qword [ebp - 0x60]
jmp 0x66aad2
fstp qword [ebp - 0xe8]
fld qword [ebp + ebx*8 - 0x78]
fdivr qword [ebp + ebx*8 - 0x48]
fld qword [ebp - 0xe8]
faddp st(1)
fstp qword [esp]
call fcn.006727c0
mov dword [ebp + ebx*8 - 0xd8], eax
mov dword [ebp + ebx*8 - 0xd4], edx
inc ebx
cmp ebx, 4
jg 0x66aaf4
mov ecx, dword [ebp + ebx*8 - 0xa4]
mov edx, dword [ebp + ebx*8 - 0xa8]
push ecx
push edx
fild qword [esp]
add esp, 8
test ecx, ecx
jns 0x66aaa0
fadd dword [0x6f08e4]
jmp 0x66aaa0
lea eax, [edi*8]
mov dword [esp], eax
call fcn.0045e7c0
mov dword [ebp - 0x174], eax
mov ebx, dword [esi + 4]
shl ebx, 3
mov dword [esp], ebx
call fcn.0045e7c0
fld dword [0x6f08e8]
mov dword [ebp - 0x178], eax
mov edi, dword [esi + 4]
fstp qword [ebp - 0x218]
mov dword [ebp - 0x21c], edi
fld qword [ebp - 0x160]
mov ebx, dword [ebp + 8]
fldz
fxch st(1)
fadd qword [ebp - 0x218]
fxch st(1)
fstp qword [ebp - 0x170]
mov edi, dword [ebx]
xor ebx, ebx
fstp qword [ebp - 0x160]
mov ecx, dword [edi + 0x144]
mov edx, ecx
shr edx, 0x1f
add ecx, edx
sar ecx, 1
push ecx
fild dword [esp]
add esp, 4
cmp dword [ebp - 0x21c], 0
fstp qword [esi + 0x10]
jle 0x66abaf
xor edi, edi
mov edx, dword [esi + 8]
mov dword [esp + 8], ebx
fld qword [ebp - 0x160]
add edx, edi
add edi, 0x48
fstp qword [esp]
mov eax, dword [ebp + 8]
call fcn.00668310
mov ecx, dword [ebp - 0x174]
mov eax, dword [esi + 4]
fstp qword [ecx + ebx*8]
inc ebx
cmp eax, ebx
mov dword [ebp - 0x21c], eax
jg 0x66ab7b
mov ebx, dword [ebp - 0x21c]
dec ebx
js 0x66ac8b
mov ecx, dword [ebp + 8]
lea eax, [ebx + ebx*8]
mov edx, dword [esi + 8]
shl eax, 3
mov edi, dword [ecx]
fldz
add eax, edx
fld st(0)
mov dword [ebp - 0x220], edi
lea edi, [eax + 0x28]
fld qword [esi + 0xc8]
mov ecx, dword [edi]
mov edx, dword [esi + 0x19c]
mov eax, dword [ebp - 0x174]
cmp ecx, 1
mov dword [ebp - 0x24c], edx
fld qword [eax + ebx*8]
fld qword [esi + edx*8 + 0xb8]
je 0x66af6c
fstp st(2)
cmp ecx, 3
je 0x66af1c
fstp st(1)
cmp dword [ebp - 0x24c], ecx
sete al
cmp ecx, 1
setne dl
or eax, edx
test al, 1
je 0x66ac62
fld qword [esi + ecx*8 + 0xb8]
mov edx, dword [ebp - 0x220]
imul eax, dword [edx + 0x6c], 0x76
push eax
fild dword [esp]
add esp, 4
fld st(0)
fadd st(2)
fxch st(3)
fucom st(3)
fnstsw ax
sahf
ja 0x66af91
fstp st(3)
fsubp st(1)
fucom st(1)
fnstsw ax
sahf
ja 0x66af65
fstp st(0)
fst qword [esi + ecx*8 + 0xb8]
cmp ecx, 3
je 0x66ac74
mov dword [esi + 0x19c], ecx
mov ecx, dword [ebp - 0x174]
sub edi, 0x48
fstp qword [ecx + ebx*8]
dec ebx
jns 0x66abd9
fstp st(0)
fstp st(0)
xor ebx, ebx
cmp dword [ebp - 0x21c], 0
mov dword [ebp - 0x224], ebx
jle 0x66a3bf
mov eax, dword [ebp - 0x164]
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x200], ebx
mov ecx, dword [ebp - 0x164]
mov dword [ebp - 0x204], edi
shr eax, 0x1f
add eax, ecx
sar eax, 1
lea edx, [eax + eax*8]
shl edx, 3
mov dword [ebp - 0x18c], eax
neg edx
mov dword [ebp - 0x1fc], edx
mov eax, dword [ebp - 0x200]
fldz
mov ecx, dword [esi + 8]
fst qword [ebp - 0x188]
mov edi, dword [ebp - 0x164]
add eax, ecx
mov edx, dword [eax + 0x28]
test edi, edi
mov dword [ebp - 0x180], edx
jle 0x66ada6
mov ebx, dword [ebp - 0x204]
mov edx, dword [ebp - 0x1fc]
mov edi, dword [ebp - 0x18c]
add edx, ebx
mov ebx, dword [ebp - 0x224]
mov dword [ebp - 0x1f8], edx
sub ebx, edi
mov edi, dword [ebp - 0x164]
lea esi, [esi]
mov edx, dword [ebp - 0x224]
mov eax, ebx
fldz
sub eax, edx
push eax
mov ecx, dword [ebp - 0x148]
fild dword [esp]
add esp, 4
fld dword [ecx + 0x60]
fucom st(2)
fnstsw ax
fstp st(2)
sahf
jp 0x66b1c0
jne 0x66b1c0
fstp st(0)
fstp st(0)
fld1
test ebx, ebx
js 0x66ad90
cmp dword [esi + 4], ebx
jle 0x66ad90
mov eax, dword [esi + 8]
mov edx, dword [ebp - 0x1f8]
mov ecx, dword [ebp - 0x180]
cmp dword [edx + eax + 0x28], ecx
je 0x66af41
mov esi, esi
lea edi, [edi]
fstp st(0)
add dword [ebp - 0x1f8], 0x48
inc ebx
dec edi
jne 0x66ad30
mov edi, dword [esi + 4]
mov dword [ebp - 0x21c], edi
fdiv qword [ebp - 0x188]
mov eax, dword [ebp - 0x224]
mov ebx, dword [ebp - 0x178]
add dword [ebp - 0x204], 0x48
add dword [ebp - 0x200], 0x48
fstp qword [ebx + eax*8]
inc eax
cmp dword [ebp - 0x21c], eax
mov dword [ebp - 0x224], eax
jg 0x66acd7
xor edi, edi
cmp dword [ebp - 0x21c], 0
jle 0x66a3bf
xor edx, edx
mov dword [ebp - 0x1f4], edx
jmp 0x66aead
mov edx, dword [ebx + 0xc]
inc edi
mov ecx, dword [ebx + 0x10]
add ecx, edx
inc ecx
push ecx
fild dword [esp]
add esp, 4
fmul dword [ebx + 4]
fild dword [ebx + 8]
fxch st(1)
fdiv qword [ebp - 0x198]
faddp st(1)
fild dword [ebx + 0x14]
fnstcw word [ebp - 0x13e]
movzx eax, word [ebp - 0x13e]
or ax, 0xc00
mov word [ebp - 0x140], ax
faddp st(1)
fldcw word [ebp - 0x140]
fist dword [esp + 4]
fldcw word [ebp - 0x13e]
mov edx, dword [ebp + 8]
mov dword [esp], edx
fstp qword [ebp - 0x238]
call fcn.00668130
shl eax, 3
push eax
fild dword [esp]
add esp, 4
fld qword [ebp - 0x238]
faddp st(1)
fld qword [ebp - 0x170]
fstp qword [esp]
fstp qword [ebp - 0x238]
call fcn.006727c0
fld qword [ebp - 0x238]
fadd qword [ebp - 0x170]
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], edx
mov ebx, dword [esi + 4]
add dword [ebp - 0x1f4], 0x48
fstp qword [ebp - 0x170]
cmp ebx, edi
mov dword [ebp - 0x21c], ebx
jle 0x66a3bf
mov edx, dword [esi + 8]
mov ebx, dword [ebp - 0x1f4]
mov dword [esp + 8], edi
mov ecx, dword [ebp - 0x178]
add ebx, edx
mov edx, ebx
fld qword [ecx + edi*8]
fstp qword [esp]
mov eax, dword [ebp + 8]
call fcn.00668840
fstp dword [ebp - 0xdc]
fld dword [ebp - 0xdc]
fst qword [ebp - 0x198]
fld qword [ebp - 0x198]
fxch st(1)
fstp dword [ebx + 0x2c]
fldz
fucompp
fnstsw ax
sahf
jb 0x66adf8
mov dword [esp], 0
mov ecx, str.qp_0.0_n
xor eax, eax
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
call fcn.0045dc30
jmp 0x66adf8
mov edx, dword [ebp - 0x220]
fld dword [edx + 0x74]
fucom st(4)
fnstsw ax
sahf
jbe 0x66af8a
fstp st(1)
mov eax, dword [ebp - 0x220]
fmulp st(1)
fadd dword [eax + 0xfc]
jmp 0x66ac13
mov ecx, dword [ebp - 0x174]
fld qword [ecx + ebx*8]
fmul st(1)
fxch st(1)
fadd qword [ebp - 0x188]
fxch st(2)
faddp st(1)
fxch st(1)
fstp qword [ebp - 0x188]
jmp 0x66ad92
fstp st(1)
jmp 0x66ac62
fstp st(0)
mov eax, dword [ebp - 0x220]
fld st(2)
fld dword [eax + 0x14c]
fucom st(4)
fnstsw ax
sahf
ja 0x66af9a
cmp edx, 2
je 0x66af9a
fstp st(0)
fstp st(0)
jmp 0x66ac11
fstp st(0)
fstp st(0)
jmp 0x66ac60
fstp st(2)
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
jae 0x66afa9
fchs
mov edx, dword [ebp - 0x220]
fmulp st(1)
fadd dword [edx + 0x150]
jmp 0x66ac13
fadd dword [0x6f08e4]
jmp 0x66a3d3
test edx, edx
jns 0x66afd6
jmp 0x66b0e6
fstp st(1)
fstp st(1)
fstp st(1)
mov ebx, dword [ebp - 0x1b4]
fadd st(2), st(0)
fldz
fld dword [ebx + 0x14c]
fld st(4)
fxch st(1)
fucom st(2)
fnstsw ax
fstp st(2)
sahf
jae 0x66aff9
fxch st(1)
fchs
fxch st(1)
mov ecx, dword [ebp - 0x1b4]
fld st(4)
fmulp st(2)
fld dword [ecx + 0x74]
fldz
fxch st(3)
fadd dword [ecx + 0x150]
fxch st(1)
fucom st(3)
fnstsw ax
fstp st(3)
sahf
jae 0x66b021
fxch st(2)
fchs
fxch st(2)
fld st(5)
mov edx, dword [ebp - 0x1b4]
fmulp st(3)
fld xword [ebp - 0x1c8]
fxch st(3)
fadd dword [edx + 0xfc]
fxch st(3)
fstp qword [ebp - 0xe8]
fld qword [ebp - 0x1a8]
fld qword [ebp - 0xe8]
fxch st(1)
fdiv st(2)
faddp st(1)
fld qword [ebp - 0x1b0]
fdiv st(7)
faddp st(1)
fld qword [ebp - 0x1d0]
fdiv st(4)
faddp st(1)
fld xword [ebp - 0x1e8]
fadd st(6)
fstp qword [ebp - 0xe8]
fld qword [ebp - 0xe8]
fucompp
fnstsw ax
sahf
jbe 0x66b08c
fstp st(1)
fxch st(4)
fsub st(2)
fld st(0)
fxch st(5)
fxch st(3)
fmul qword [0x6f0930]
fld qword [0x6f08f0]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
ja 0x66afd0
jmp 0x66aa8b
mov ecx, str.Error:_2pass_curve_failed_to_converge_n
xor ebx, ebx
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov esi, dword [ebp + 8]
mov eax, dword [esi]
jmp 0x66a859
fstp st(0)
fld dword [0x6f08e4]
fld xword [ebp - 0x1e8]
faddp st(1)
jmp 0x66a455
fstp st(1)
fstp st(1)
fstp st(1)
mov ecx, dword [ebp - 0x1b4]
fadd st(2), st(0)
fldz
fld dword [ecx + 0x14c]
fld st(4)
fxch st(1)
fucom st(2)
fnstsw ax
fstp st(2)
sahf
jae 0x66b109
fxch st(1)
fchs
fxch st(1)
mov edx, dword [ebp - 0x1b4]
fld st(4)
fmulp st(2)
fld dword [edx + 0x74]
fldz
fxch st(3)
fadd dword [edx + 0x150]
fxch st(1)
fucom st(3)
fnstsw ax
fstp st(3)
sahf
jae 0x66b131
fxch st(2)
fchs
fxch st(2)
fld st(5)
mov ebx, dword [ebp - 0x1b4]
fmulp st(3)
fld xword [ebp - 0x1c8]
fxch st(3)
fadd dword [ebx + 0xfc]
fxch st(3)
fadd st(5)
fstp qword [ebp - 0xe8]
fld qword [ebp - 0x1a8]
fld qword [ebp - 0xe8]
fxch st(1)
fdiv st(2)
faddp st(1)
fld qword [ebp - 0x1b0]
fdiv st(7)
faddp st(1)
fld qword [ebp - 0x1d0]
fdiv st(4)
faddp st(1)
fld xword [ebp - 0x1e8]
fadd st(6)
fstp qword [ebp - 0xe8]
fld qword [ebp - 0xe8]
fucompp
fnstsw ax
sahf
jbe 0x66b19e
fstp st(1)
fxch st(4)
fsub st(2)
fld st(0)
fxch st(5)
fxch st(3)
fmul qword [0x6f0930]
fld qword [0x6f08f0]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
ja 0x66b0e0
jmp 0x66aa8b
fld st(0)
fxch st(2)
fmul st(0)
fxch st(2)
fchs
fmulp st(1)
fdivrp st(1)
fstp qword [esp]
fstp qword [ebp - 0x248]
call fcn.00675440
fld qword [ebp - 0x248]
fxch st(1)
jmp 0x66ad65
mov dword [esp + 0x10], eax
xor edx, edx
mov edi, str.statistics_are_damaged_at_line__d__parser_out_d_n
mov eax, dword [ebp - 0x20c]
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov ecx, dword [ebp + 8]
mov esi, dword [ecx]
mov dword [esp], esi
call fcn.0045dc30
mov edx, 0xffffffff
jmp 0x66a866
mov edi, str.XviD_ratecontrol_requires_libavcodec_compiled_with_XviD_support_n
xor edx, edx
mov dword [esp + 8], edi
mov dword [esp + 4], edx
jmp 0x66a859
fstp st(0)
fstp st(3)
fxch st(2)
fxch st(1)
jmp 0x66aa91