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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x85c
mov ebx, dword [esp + 0x870]
mov eax, ebx
call fcn.00663f8e
mov eax, dword [ebx + 0xc]
cmp eax, 0xb
jle 0x664142
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Requested_input_sample_format__d_is_invalid_n
mov ebp, 0xffffffea
mov dword [esp + 4], 0x10
mov dword [esp], ebx
call fcn.0056b9c0
jmp 0x664ba1
mov eax, dword [ebx + 0x14]
cmp eax, 0xb
jle 0x664170
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Requested_output_sample_format__d_is_invalid_n
mov ebp, 0xffffffea
mov dword [esp + 4], 0x10
mov dword [esp], ebx
call fcn.0056b9c0
jmp 0x664ba1
mov eax, dword [ebx + 0x28]
test eax, eax
jg 0x66419d
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Requested_input_sample_rate__d_is_invalid_n
mov ebp, 0xffffffea
mov dword [esp + 4], 0x10
mov dword [esp], ebx
call fcn.0056b9c0
jmp 0x664ba1
mov eax, dword [ebx + 0x2c]
test eax, eax
jg 0x6641ca
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Requested_output_sample_rate__d_is_invalid_n
mov ebp, 0xffffffea
mov dword [esp + 4], 0x10
mov dword [esp], ebx
call fcn.0056b9c0
jmp 0x664ba1
mov eax, dword [ebx + 0x5c]
mov esi, dword [ebx + 0x68]
mov edi, dword [ebx + 0x6c]
mov edx, dword [ebx + 0x74]
mov dword [ebx + 0x30e8], eax
mov eax, dword [ebx + 0x58]
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x24], edx
mov dword [ebx + 0x2c88], eax
mov eax, dword [ebx + 0x60]
mov dword [ebx + 0x50], eax
mov eax, dword [ebx + 0x70]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x78]
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 0x7c]
mov dword [ebx + 0x80], eax
mov dword [esp], esi
mov dword [esp + 4], edi
call fcn.0055bc00
cmp eax, 0x40
jle 0x66424e
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x1c]
mov dword [esp + 8], str.Input_channel_layout_0x_llx_is_invalid_or_unsupported._n
mov dword [esp + 4], 0x18
mov dword [esp], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.0056b9c0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
mov eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0055bc00
cmp eax, 0x40
jle 0x664299
mov eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov dword [esp + 8], str.Output_channel_layout_0x_llx_is_invalid_or_unsupported._n
mov dword [esp + 4], 0x18
mov dword [esp], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.0056b9c0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
cmp dword [ebx + 0x54], 0
jne 0x6642ba
cmp dword [ebx + 0x50], 0
mov dword [ebx + 0x3488], 0x714a40
jne 0x6642dc
mov eax, dword [ebx + 0x2c88]
mov dword [ebx + 0x50], eax
jmp 0x6642dc
mov dword [esp + 8], str.Requested_resampling_engine_is_unavailable_n
mov dword [esp + 4], 0x10
mov ebp, 0xffffffea
mov dword [esp], ebx
call fcn.0056b9c0
jmp 0x664ba1
mov esi, dword [ebx + 0x50]
test esi, esi
je 0x664325
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x18]
mov edi, eax
or edi, edx
je 0x66432d
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.0055bc00
cmp esi, eax
je 0x664325
mov dword [esp + 8], str.Input_channel_layout_has_a_different_number_of_channels_than_the_number_of_used_channels__ignoring_layout_n
mov dword [esp + 4], 0x18
mov dword [esp], ebx
call fcn.0056b9c0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
mov eax, dword [ebx + 0x1c]
or eax, dword [ebx + 0x18]
jne 0x66433e
mov eax, dword [ebx + 0x50]
mov dword [esp], eax
call fcn.0055bc90
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], edx
mov eax, dword [ebx + 0x24]
or eax, dword [ebx + 0x20]
jne 0x66435a
mov eax, dword [ebx + 0x30e8]
mov dword [esp], eax
call fcn.0055bc90
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], edx
mov edi, dword [ebx + 0x1c]
cmp dword [ebx + 0x24], edi
mov eax, dword [ebx + 0x20]
jne 0x664385
cmp eax, dword [ebx + 0x18]
jne 0x664385
fld1
fld dword [ebx + 0x40]
fucompi st(1)
fstp st(0)
jp 0x664385
jne 0x664385
xor eax, eax
cmp dword [ebx + 0x2b80], 0
setne al
jmp 0x66438a
mov eax, 1
cmp dword [ebx + 0x10], 0xffffffff
mov dword [ebx + 0x2b7c], eax
jne 0x664453
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
call fcn.0057d8d0
cmp eax, 2
jg 0x6643c6
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
call fcn.0057d8d0
cmp eax, 2
jg 0x6643c6
mov dword [ebx + 0x10], 6
jmp 0x664453
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
call fcn.0057d8d0
cmp eax, 2
jg 0x6643ed
cmp dword [ebx + 0x2b7c], 0
jne 0x6643ed
mov eax, dword [ebx + 0x28]
cmp dword [ebx + 0x2c], eax
jne 0x6643ed
test byte [ebx + 0x30], 1
je 0x6643ba
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
call fcn.0057d800
cmp eax, 7
jne 0x664433
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
call fcn.0057d800
cmp eax, 7
jne 0x664433
cmp dword [ebx + 0x2b7c], 0
jne 0x664433
mov eax, dword [ebx + 0x28]
cmp dword [ebx + 0x2c], eax
jne 0x664433
test byte [ebx + 0x30], 1
jne 0x664433
cmp dword [ebx + 0x54], 1
je 0x664433
mov dword [ebx + 0x10], 7
jmp 0x664453
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
call fcn.0057d8d0
cmp eax, 4
jg 0x66444c
mov dword [ebx + 0x10], 8
jmp 0x664453
mov dword [ebx + 0x10], 9
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.0057d5b0
mov dword [esp + 8], str.Using__s_internally_between_filters_n
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x30
mov dword [esp], ebx
call fcn.0056b9c0
mov eax, dword [ebx + 0x10]
lea edx, [eax - 6]
cmp edx, 3
jbe 0x6644b8
cmp eax, 0xb
je 0x6644b8
mov dword [esp], eax
mov ebp, 0xffffffea
call fcn.0057d5b0
mov dword [esp + 8], str.Requested_sample_format__s_is_not_supported_internally__s16p_s32p_s64p_fltp_dblp_are_supported_n
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x10
mov dword [esp], ebx
call fcn.0056b9c0
jmp 0x664ba1
mov edx, dword [ebx + 0xc]
lea eax, [ebx + 0x2b84]
mov dword [esp + 0x48], eax
call fcn.00664075
mov edx, dword [ebx + 0x14]
lea eax, [ebx + 0x2fe4]
mov dword [esp + 0x48], eax
call fcn.00664075
mov edx, dword [ebx + 0x2b74]
mov eax, dword [ebx + 0x2b70]
fldz
lea ecx, [edx - 0x80000000]
or ecx, eax
mov ecx, dword [ebx + 0x2c]
je 0x66454c
fld dword [ebx + 0x2b6c]
fucompi st(1)
jp 0x66451f
jne 0x66451f
fld dword [0x713a58]
fld dword [ebx + 0x2b5c]
fucompi st(1)
fstp st(0)
jb 0x66451f
mov dword [ebx + 0x2b6c], 0x3f800000
mov edi, ecx
sar edi, 0x1f
mov esi, edi
imul esi, eax
imul edx, ecx
add esi, edx
mul ecx
add edx, esi
mov dword [ebx + 0x3458], eax
mov dword [ebx + 0x3460], eax
mov dword [ebx + 0x345c], edx
mov dword [ebx + 0x3464], edx
jmp 0x664560
mov dword [ebx + 0x3460], 0
mov dword [ebx + 0x3464], 0x80000000
fld dword [ebx + 0x2b6c]
fucomi st(1)
fstp st(1)
jp 0x66456e
je 0x6645a3
fld dword [0x713a58]
fld dword [ebx + 0x2b5c]
fucompi st(1)
fstp st(0)
jb 0x66458a
mov dword [ebx + 0x2b5c], 0x3a83126f
fld xword [0x713a60]
fxch st(1)
fucomi st(1)
fstp st(1)
jbe 0x6645a7
fidiv dword [ebx + 0x28]
fstp dword [ebx + 0x2b68]
jmp 0x6645a9
fstp st(0)
jmp 0x6645a9
fstp st(0)
mov edx, dword [ebx + 0x28]
mov eax, dword [ebx + 0x3488]
cmp ecx, edx
jne 0x6645c0
test byte [ebx + 0x30], 1
je 0x664660
mov esi, dword [ebx + 0x2b30]
mov dword [esp + 0x3c], esi
mov esi, dword [ebx + 0x2b58]
mov dword [esp + 0x38], esi
fld qword [ebx + 0x2b50]
fstp qword [esp + 0x30]
fld qword [ebx + 0x2b48]
fstp qword [esp + 0x28]
mov esi, dword [ebx + 0x2b40]
mov dword [esp + 0x24], esi
mov esi, dword [ebx + 0x10]
mov dword [esp + 0x20], esi
fld qword [ebx + 0x2b38]
fstp qword [esp + 0x18]
mov esi, dword [ebx + 0x2b2c]
mov dword [esp + 0x14], esi
mov esi, dword [ebx + 0x2b28]
mov dword [esp + 0x10], esi
mov esi, dword [ebx + 0x2b24]
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp + 0xc], esi
mov edx, dword [ebx + 0x3484]
mov dword [esp], edx
call dword [eax]
test eax, eax
mov dword [ebx + 0x3484], eax
jne 0x66466c
mov dword [esp + 8], str.Failed_to_initialize_resampler_n
mov dword [esp + 4], 0x10
mov ebp, 0xfffffff4
mov dword [esp], ebx
call fcn.0056b9c0
jmp 0x664ba1
lea edx, [ebx + 0x3484]
mov dword [esp], edx
call dword [eax + 4]
mov eax, dword [ebx + 0x10]
sub eax, 6
cmp eax, 3
jbe 0x6646a2
cmp dword [ebx + 0x3484], 0
je 0x6646a2
mov dword [esp + 8], str.Resampling_only_supported_with_internal_s16p_s32p_fltp_dblp_n
mov dword [esp + 4], 0x10
mov esi, 0xffffffea
mov dword [esp], ebx
call fcn.0056b9c0
jmp 0x664b98
cmp dword [ebx + 0x2c88], 0
jne 0x6646c3
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x1c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0055bc00
mov dword [ebx + 0x2c88], eax
cmp dword [ebx + 0x50], 0
jne 0x6646d2
mov eax, dword [ebx + 0x2c88]
mov dword [ebx + 0x50], eax
cmp dword [ebx + 0x30e8], 0
jne 0x6646f3
mov eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0055bc00
mov dword [ebx + 0x30e8], eax
mov eax, dword [ebx + 0x2c88]
mov ecx, dword [ebx + 0x18]
mov edx, dword [ebx + 0x1c]
test eax, eax
jne 0x664746
or edx, ecx
je 0x664724
mov dword [esp + 0x14], 0x12d
mov dword [esp + 0x10], str.libswresample_swresample.c
mov dword [esp + 0xc], str._s__in_ch_layout
jmp 0x66489d
mov dword [esp + 8], str.Input_channel_count_and_layout_are_unset_n
mov dword [esp + 4], 0x10
mov esi, 0xffffffea
mov dword [esp], ebx
call fcn.0056b9c0
jmp 0x664b98
lea esi, [esp + 0x50]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x400
lea edi, [esp + 0x450]
mov dword [esp], esi
call fcn.0055bba0
mov eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov eax, dword [ebx + 0x30e8]
mov dword [esp + 4], 0x400
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.0055bba0
mov eax, dword [ebx + 0x24]
mov edx, dword [ebx + 0x20]
mov ecx, eax
or ecx, edx
je 0x6647e7
mov ebp, dword [ebx + 0x30e8]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.0055bc00
cmp ebp, eax
je 0x6647e7
mov eax, dword [ebx + 0x30e8]
mov dword [esp + 0xc], edi
mov esi, 0xffffffea
mov dword [esp + 8], str.Output_channel_layout__s_mismatches_specified_channel_count__d_n
mov dword [esp + 4], 0x10
mov dword [esp], ebx
mov dword [esp + 0x10], eax
call fcn.0056b9c0
jmp 0x664b98
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x18]
mov ecx, eax
or ecx, edx
je 0x664833
mov ebp, dword [ebx + 0x50]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.0055bc00
cmp eax, ebp
je 0x664833
mov eax, dword [ebx + 0x50]
mov dword [esp + 0xc], esi
mov esi, 0xffffffea
mov dword [esp + 8], str.Input_channel_layout__s_mismatches_specified_channel_count__d_n
mov dword [esp + 4], 0x10
mov dword [esp], ebx
mov dword [esp + 0x10], eax
call fcn.0056b9c0
jmp 0x664b98
mov eax, dword [ebx + 0x24]
or eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x50]
je 0x664846
mov eax, dword [ebx + 0x1c]
or eax, dword [ebx + 0x18]
jne 0x664881
cmp ecx, dword [ebx + 0x30e8]
je 0x664881
cmp dword [ebx + 0x2b80], 0
jne 0x664881
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edi
mov esi, 0xffffffea
mov dword [esp + 8], str.Rematrix_is_needed_between__s_and__s_but_there_is_not_enough_information_to_do_it_n
mov dword [esp + 4], 0x10
mov dword [esp], ebx
call fcn.0056b9c0
jmp 0x664b98
test ecx, ecx
jne 0x6648be
mov dword [esp + 0x14], 0x147
mov dword [esp + 0x10], str.libswresample_swresample.c
mov dword [esp + 0xc], str.s__used_ch_count
mov dword [esp + 8], 0x7123f5
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0056b9c0
call sub.msvcrt.dll_abort
mov eax, dword [ebx + 0x30e8]
test eax, eax
jne 0x6648e2
mov dword [esp + 0x14], 0x148
mov dword [esp + 0x10], str.libswresample_swresample.c
mov dword [esp + 0xc], str.s__out.ch_count
jmp 0x66489d
cdq
lea edi, [ebx + 0x30fc]
lea esi, [ebx + 0x2b84]
idiv ecx
mov ecx, 0x46
dec eax
mov dword [esp + 0x48], eax
xor eax, eax
fild dword [esp + 0x48]
fild dword [ebx + 0x2c]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fild dword [ebx + 0x28]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fdivp st(1)
fld1
fsubp st(1)
fucompi st(1)
fstp st(0)
seta al
mov dword [ebx + 0x2b78], eax
mov eax, dword [ebx + 0x10]
rep movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x3214]
lea esi, [ebx + 0x2b84]
mov ecx, 0x46
rep movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x332c]
mov ecx, 0x46
lea esi, [ebx + 0x2fe4]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x14]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00664bb0
mov esi, eax
test eax, eax
lea eax, [ebx + 0x30fc]
mov dword [esp + 0x48], eax
js 0x664b98
cmp dword [ebx + 0x3484], 0
mov ecx, dword [ebx + 0x4c]
mov eax, dword [ebx + 0xc]
jne 0x6649d6
cmp dword [ebx + 0x2b7c], 0
jne 0x6649d6
test ecx, ecx
jne 0x6649d6
mov ebp, dword [ebx + 0x80]
test ebp, ebp
jne 0x6649d6
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov ecx, dword [ebx + 0x2c88]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
call fcn.00590780
mov dword [ebx + 0x3480], eax
jmp 0x664ba1
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 0
mov edx, dword [ebx + 0x50]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.00590780
mov dword [ebx + 0x3478], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov eax, dword [ebx + 0x30e8]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
call fcn.00590780
cmp dword [ebx + 0x3478], 0
mov dword [ebx + 0x347c], eax
je 0x664b93
test eax, eax
je 0x664b93
cmp dword [ebx + 0x4c], 0
lea edi, [ebx + 0x2c9c]
mov ecx, 0x46
lea esi, [ebx + 0x2b84]
lea eax, [ebx + 0x2c9c]
rep movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x2ecc]
mov ecx, 0x46
lea esi, [ebx + 0x2fe4]
rep movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x2db4]
lea esi, [ebx + 0x2b84]
mov ecx, 0x46
rep movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0x2ecc]
lea edi, [ebx + 0x2db4]
je 0x664ab4
cmp dword [ebx + 0x3484], 0
mov edx, dword [ebx + 0x50]
mov dword [ebx + 0x2eb8], edx
mov dword [ebx + 0x2da0], edx
je 0x664ab4
mov dword [ebx + 0x3200], edx
cmp dword [ebx + 0x2b78], 0
jne 0x664ad8
cmp dword [ebx + 0x3484], 0
mov edx, dword [ebx + 0x30e8]
mov dword [ebx + 0x2eb8], edx
je 0x664ad8
mov dword [ebx + 0x3200], edx
mov edx, dword [ebx + 0x10]
call fcn.00664075
mov edx, dword [ebx + 0x10]
mov eax, edi
call fcn.00664075
mov edx, dword [ebx + 0x10]
mov eax, esi
call fcn.00664075
cmp dword [ebx + 0x3484], 0
je 0x664b0b
mov edx, dword [ebx + 0x10]
lea eax, [ebx + 0x30fc]
call fcn.00664075
mov ebp, dword [ebx + 0x2fd8]
test ebp, ebp
je 0x664b32
mov dword [esp + 0x14], 0x17a
mov dword [esp + 0x10], str.libswresample_swresample.c
mov dword [esp + 0xc], str._s__preout.count
jmp 0x66489d
mov eax, dword [ebx + 0x80]
lea edi, [ebx + 0x28f0]
mov ecx, 0x46
rep movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x2a08]
lea esi, [ebx + 0x2ecc]
mov ecx, 0x46
cmp eax, 0x40
rep movsd dword es:[edi], dword [esi]
jle 0x664b7b
mov dword [ebx + 0x29f8], 4
mov dword [ebx + 0x2a04], 8
mov dword [ebx + 0x8c], 0x3f800000
or eax, dword [ebx + 0x2b7c]
je 0x664ba1
mov dword [esp], ebx
call fcn.00665aff
test eax, eax
mov esi, eax
jns 0x664ba1
jmp 0x664b98
mov esi, 0xfffffff4
mov eax, ebx
mov ebp, esi
call fcn.00663f8e
add esp, 0x85c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret