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

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff8
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
lea eax, [ebp - 0xc4]
push ebx
sub esp, 0x11c
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x41ae2c
mov dword [esp + 4], 0x4258f4
mov dword [esp], 0
call sub.evr.dll_MFCreateVideoMixer
sub esp, 0x10
mov ebx, eax
mov eax, 0x343
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Failed_to_create_default_mixer__hr__lx._n
lea ebx, [ebp - 0xb0]
mov dword [esp], eax
call fcn.00401f80
mov ecx, 0x41a96c
mov eax, 0x345
mov dword [esp], 1
mov edx, dword [ebp - 0xc4]
call fcn.00401fa0
mov ecx, 0x41aacc
mov eax, 0x346
mov dword [esp], 1
mov edx, dword [ebp - 0xc4]
call fcn.00401fa0
mov ecx, 0x41c2cc
mov eax, 0x347
mov dword [esp], 1
mov edx, dword [ebp - 0xc4]
call fcn.00401fa0
mov ecx, 0x41aabc
mov eax, 0x348
mov dword [esp], 1
mov edx, dword [ebp - 0xc4]
call fcn.00401fa0
mov ecx, 0x41c21c
mov eax, 0x349
mov dword [esp], 1
mov edx, dword [ebp - 0xc4]
call fcn.00401fa0
mov ecx, 0x4191e4
mov eax, 0x34a
mov dword [esp], 1
mov edx, dword [ebp - 0xc4]
call fcn.00401fa0
mov ecx, 0x41c2fc
mov eax, 0x34b
mov dword [esp], 1
mov edx, dword [ebp - 0xc4]
call fcn.00401fa0
mov ecx, 0x4191d4
mov eax, 0x34c
mov dword [esp], 1
mov edx, dword [ebp - 0xc4]
call fcn.00401fa0
mov ecx, 0x41c2ac
mov eax, 0x34d
mov dword [esp], 1
mov edx, dword [ebp - 0xc4]
call fcn.00401fa0
mov ecx, 0x41c2bc
mov eax, 0x34e
mov dword [esp], 1
mov edx, dword [ebp - 0xc4]
call fcn.00401fa0
mov ecx, 0x41c25c
mov eax, 0x34f
mov dword [esp + 4], 1
mov dword [esp], 0x4191e4
mov edx, dword [ebp - 0xc4]
call fcn.004028f0
mov ecx, 0x41c25c
mov eax, 0x350
mov dword [esp + 4], 1
mov dword [esp], 0x4191d4
mov edx, dword [ebp - 0xc4]
call fcn.004028f0
mov ecx, 0x41c25c
mov eax, 0x351
mov dword [esp + 4], 1
mov dword [esp], 0x41c2ac
mov edx, dword [ebp - 0xc4]
call fcn.004028f0
mov ecx, 0x41c25c
mov eax, 0x352
mov dword [esp + 4], 1
mov dword [esp], 0x41c2fc
mov edx, dword [ebp - 0xc4]
call fcn.004028f0
mov ecx, 0x41c25c
mov eax, 0x353
mov dword [esp + 4], 0
mov dword [esp], 0x41ae2c
mov edx, dword [ebp - 0xc4]
call fcn.004028f0
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x425434
mov dword [esp + 4], 0x41c26c
mov eax, dword [ebp - 0xc4]
mov dword [esp], eax
call sub.mf.dll_MFGetService
sub esp, 0x10
mov esi, eax
mov eax, 0x356
call fcn.004013f0
xor eax, eax
cmp esi, 0xc00d36ba
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
lea eax, [ebp - 0xe0]
mov dword [esp + 8], 0x41c29c
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x41c25c
mov eax, dword [ebp - 0xc4]
mov dword [esp], eax
call sub.mf.dll_MFGetService
sub esp, 0x10
test eax, eax
js 0x402cef
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 8
mov esi, eax
mov eax, 0x35b
call fcn.004013f0
xor eax, eax
cmp esi, 0x80004003
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xe0]
lea ecx, [ebp - 0xac]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 8
mov esi, eax
mov eax, 0x35e
call fcn.004013f0
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x35f
call fcn.004013f0
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], str.Unexpected_flags__lx._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
lea eax, [ebp - 0xd4]
mov dword [esp + 8], 0x4191d4
lea edi, [ebp - 0xb4]
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x41c25c
mov eax, dword [ebp - 0xc4]
mov dword [esp], eax
call sub.mf.dll_MFGetService
sub esp, 0x10
mov esi, eax
mov eax, 0x365
call fcn.004013f0
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 8
mov esi, eax
mov eax, 0x368
call fcn.004013f0
xor eax, eax
cmp esi, 0x80004003
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xb4], 1
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 8
mov esi, eax
mov eax, 0x36c
call fcn.004013f0
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x36d
call fcn.004013f0
mov eax, dword [ebp - 0xb4]
mov dword [esp + 4], str.Unexpected_color__lx._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax]
mov dword [esp + 4], 0x121212
mov dword [esp], eax
call dword [edx + 0x38]
sub esp, 8
mov esi, eax
mov eax, 0x370
call fcn.004013f0
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 8
mov esi, eax
mov eax, 0x373
call fcn.004013f0
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x374
call fcn.004013f0
mov eax, dword [ebp - 0xb4]
mov dword [esp + 4], str.Unexpected_color__lx._n
cmp eax, 0x121212
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xd4]
lea ecx, [ebp - 0x88]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0xa
mov dword [esp], eax
call dword [edx + 0x28]
mov edi, dword [0x43a030]
sub esp, 0xc
mov esi, eax
call fcn.00414420
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x14], 1
lea edx, [ecx + ecx]
xor ecx, ecx
test edi, edi
setne cl
or edx, ecx
mov dword [eax + 0x10], edx
jmp 0x402f31
call fcn.00414420
mov dword [eax], 0x41806d
mov dword [eax + 4], 0x378
xor eax, eax
cmp esi, 0xc00d6d60
sete al
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.Unexpected_hr__lx._n
call fcn.00401f80
call fcn.00414420
shr dword [eax + 0x10], 1
call fcn.00414420
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x402ef8
mov eax, dword [ebp - 0xd4]
lea ecx, [ebp - 0xc0]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0xa
mov dword [esp], eax
call dword [edx + 0x2c]
mov edi, dword [0x43a030]
sub esp, 0xc
mov esi, eax
call fcn.00414420
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x14], 1
lea edx, [ecx + ecx]
xor ecx, ecx
test edi, edi
setne cl
or edx, ecx
mov dword [eax + 0x10], edx
jmp 0x402fc9
call fcn.00414420
mov dword [eax], 0x41806d
mov dword [eax + 4], 0x37c
xor eax, eax
cmp esi, 0xc00d6d60
sete al
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.Unexpected_hr__lx._n
call fcn.00401f80
call fcn.00414420
shr dword [eax + 0x10], 1
call fcn.00414420
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x402f90
mov eax, dword [ebp - 0xd4]
lea ecx, [ebp - 0xa8]
lea edi, [ebp - 0xbc]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 0xc
mov esi, eax
mov eax, 0x37f
call fcn.004013f0
xor eax, eax
cmp esi, 0xc00d6d60
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0xc4]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 0xc], 0xa
mov dword [esp + 0x10], 0
mov dword [esp + 4], 0x64
mov dword [esp + 8], 0
mov dword [esp], eax
call dword [edx + 0x54]
sub esp, 0x14
mov esi, eax
mov eax, 0x384
call fcn.004013f0
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
lea ecx, [ebp - 0xd0]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x41c2bc
mov dword [esp], eax
call dword [edx]
sub esp, 0xc
mov esi, eax
mov eax, 0x387
call fcn.004013f0
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 8
mov esi, eax
mov eax, 0x38a
call fcn.004013f0
xor eax, eax
cmp esi, 0x80004003
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
lea esi, [ebp - 0xe8]
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 8
mov edi, eax
mov eax, 0x38d
call fcn.004013f0
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
lea edi, [ebp - 0xe4]
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 8
mov edi, eax
mov eax, 0x390
call fcn.004013f0
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
lea edi, [ebp - 0xe4]
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x391
call fcn.004013f0
mov dword [esp + 4], str.Unexpected_attributes_instance._n
mov eax, dword [ebp - 0xe4]
cmp dword [ebp - 0xe8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0xc4]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], edi
mov dword [esp + 4], 0x41c21c
mov dword [esp], eax
call dword [edx]
sub esp, 0xc
mov edi, eax
mov eax, 0x395
call fcn.004013f0
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
lea edi, [ebp - 0xbc]
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x396
call fcn.004013f0
mov dword [esp + 4], str.Unexpected_attributes_instance._n
mov eax, dword [ebp - 0xe4]
cmp dword [ebp - 0xe8], eax
setne al
movzx eax, al
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x41ae2c
mov dword [esp], eax
call dword [edx]
sub esp, 0xc
mov ebx, eax
mov eax, 0x399
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xb0]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0xe4]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x78]
sub esp, 8
mov ebx, eax
mov eax, 0x39d
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x39e
call fcn.004013f0
mov eax, dword [ebp - 0xbc]
mov dword [esp + 4], str.Unexpected_attribute_count__u._n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0xb8], 0
lea ecx, [ebp - 0xb8]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x41ae0c
mov dword [esp], eax
call dword [edx + 0x1c]
sub esp, 0xc
mov ebx, eax
mov eax, 0x3a2
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x3a3
call fcn.004013f0
mov eax, dword [ebp - 0xb8]
mov dword [esp + 4], str.Unexpected_value__d._n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0xe8]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 4], edi
lea edi, [ebp - 0x78]
mov dword [esp], eax
call dword [edx + 0x78]
sub esp, 8
mov ebx, eax
mov eax, 0x3a8
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x3a9
call fcn.004013f0
mov eax, dword [ebp - 0xbc]
mov dword [esp + 4], str.Unexpected_attribute_count__u._n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0x98], 0
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x10
mov dword [esp + 4], 0x41c22c
mov dword [esp], eax
call dword [edx + 0x3c]
sub esp, 0x14
mov ebx, eax
mov eax, 0x3ad
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x3ae
call fcn.004013f0
fld dword [ebp - 0x8c]
mov edx, 0
fld dword [ebp - 0x90]
fld dword [ebp - 0x94]
fld dword [ebp - 0x98]
fxch st(3)
mov dword [esp + 4], str.Unexpected_zoom_rect___f___f______f___f_._n
fst qword [esp + 0x20]
fxch st(2)
fst qword [esp + 0x18]
fxch st(1)
fst qword [esp + 0x10]
fxch st(3)
fst qword [esp + 8]
fldz
fucomi st(4)
fstp st(4)
setnp al
cmovne eax, edx
fucompi st(3)
fstp st(2)
fld1
setnp cl
cmovne ecx, edx
and eax, ecx
fucomi st(2)
fstp st(2)
setnp cl
cmovne ecx, edx
and eax, ecx
fucompi st(1)
fstp st(0)
setnp cl
cmove edx, ecx
and eax, edx
movzx eax, al
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xe8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0xd0]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 8
mov ebx, eax
mov eax, 0x3b4
call fcn.004013f0
xor eax, eax
cmp ebx, 0x80004003
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 8
mov ebx, eax
mov eax, 0x3b7
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x3b8
call fcn.004013f0
mov eax, edi
shr eax, 0x10
je 0x4041a8
movzx eax, byte [ebp - 0x69]
mov dword [esp + 0x2c], eax
movzx eax, byte [ebp - 0x6a]
mov dword [esp + 0x28], eax
movzx eax, byte [ebp - 0x6b]
mov dword [esp + 0x24], eax
movzx eax, byte [ebp - 0x6c]
mov dword [esp + 0x20], eax
movzx eax, byte [ebp - 0x6d]
mov dword [esp + 0x1c], eax
movzx eax, byte [ebp - 0x6e]
mov dword [esp + 0x18], eax
movzx eax, byte [ebp - 0x6f]
mov dword [esp + 0x14], eax
movzx eax, byte [ebp - 0x70]
mov dword [esp + 0x10], eax
movzx eax, word [ebp - 0x72]
mov dword [esp + 0xc], eax
movzx eax, word [ebp - 0x74]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x78]
mov dword [esp], str._08x__04x__04x__02x_02x__02x_02x_02x_02x_02x_02x
mov dword [esp + 4], eax
call fcn.00401260
mov edi, dword [0x4258f4]
cmp dword [ebp - 0x78], edi
je 0x4041ca
mov edx, 1
xor edx, 1
mov dword [esp + 8], eax
lea edi, [ebp - 0xd8]
mov dword [esp], edx
mov dword [esp + 4], str.Unexpected_id__s._n
call fcn.00401f80
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xdc], 0
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], edi
lea edi, [ebp - 0xdc]
mov dword [esp + 4], edi
lea edi, [ebp - 0xa4]
mov dword [esp], eax
call dword [edx + 0x10]
sub esp, 0xc
mov ebx, eax
mov eax, 0x3bf
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Failed_to_get_stream_count__hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x3c0
call fcn.004013f0
mov edx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xd8]
mov dword [esp + 4], str.Unexpected_stream_count__lu__lu._n
cmp edx, 1
mov dword [esp + 8], edx
sete dl
cmp eax, 1
mov dword [esp + 0xc], eax
sete al
movzx eax, al
and eax, edx
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
lea ecx, [ebp - 0xec]
mov edx, dword [eax]
mov dword [esp + 0x10], ecx
lea ecx, [ebp - 0xf0]
mov dword [esp + 0xc], ecx
lea ecx, [ebp - 0xf4]
mov dword [esp + 8], ecx
lea ecx, [ebp - 0xf8]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 0x14
mov ebx, eax
mov eax, 0x3c3
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Failed_to_get_stream_limits__hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x3c4
call fcn.004013f0
mov eax, dword [ebp - 0xf8]
mov ebx, dword [ebp - 0xf4]
mov edx, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xf0]
mov dword [esp + 4], str.Unexpected_stream_limits__lu__lu___lu__lu._n
cmp eax, 1
mov dword [esp + 8], eax
sete al
cmp ebx, 0x10
mov dword [esp + 0xc], ebx
sete bl
mov dword [esp + 0x10], ecx
and eax, ebx
cmp ecx, 1
mov dword [esp + 0x14], edx
sete cl
and eax, ecx
cmp edx, 1
sete dl
movzx edx, dl
and eax, edx
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
lea edx, [ebp - 0x68]
mov ecx, dword [eax]
mov dword [esp + 8], edx
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [ecx + 0x18]
sub esp, 0xc
mov ebx, eax
mov eax, 0x3c8
call fcn.004013f0
xor eax, eax
cmp ebx, 0xc00d36b3
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax]
mov dword [esp + 8], edi
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [ecx + 0x1c]
sub esp, 0xc
mov ebx, eax
mov eax, 0x3cb
call fcn.004013f0
xor eax, eax
cmp ebx, 0xc00d36b3
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
lea edx, [ebp - 0x68]
mov dword [ebp - 0x68], 0xcccccccc
mov dword [ebp - 0x64], 0xcccccccc
mov dword [ebp - 0x60], 0xcccccccc
mov dword [ebp - 0x5c], 0xcccccccc
mov dword [ebp - 0x58], 0xcccccccc
mov dword [ebp - 0x54], 0xcccccccc
mov ecx, dword [eax]
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [ecx + 0x18]
sub esp, 0xc
mov ebx, eax
mov eax, 0x3cf
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Failed_to_get_input_info__hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xa4], 0xcccccccc
mov dword [ebp - 0xa0], 0xcccccccc
mov dword [ebp - 0x9c], 0xcccccccc
mov ecx, dword [eax]
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [ecx + 0x1c]
sub esp, 0xc
mov ebx, eax
mov eax, 0x3d3
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Failed_to_get_input_info__hr__lx._n
lea ebx, [ebp - 0xc8]
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x3d4
call fcn.004013f0
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], str.Unexpected_output_flags__lx._n
test ah, 3
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax]
mov dword [esp + 0x10], ebx
lea ebx, [ebp - 0xcc]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [ecx + 0x14]
sub esp, 0x14
mov ebx, eax
mov eax, 0x3d8
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Failed_to_get_input_info__hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x3d9
call fcn.004013f0
mov dword [esp + 4], str.Unexpected_stream_ids._n
mov eax, dword [ebp - 0xcc]
or eax, dword [ebp - 0xc8]
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax]
mov dword [esp + 8], esi
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [ecx + 0x24]
sub esp, 0xc
mov ebx, eax
mov eax, 0x3dc
call fcn.004013f0
xor eax, eax
cmp ebx, 0xc00d36b3
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax]
mov dword [esp + 8], esi
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [ecx + 0x28]
sub esp, 0xc
mov ebx, eax
mov eax, 0x3df
call fcn.004013f0
xor eax, eax
cmp ebx, 0x80004001
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax]
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [ecx + 0x28]
sub esp, 0xc
mov ebx, eax
mov eax, 0x3e2
call fcn.004013f0
xor eax, eax
cmp ebx, 0x80004001
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x10
mov dword [esp], eax
call dword [ecx + 0x30]
sub esp, 0xc
mov ebx, eax
mov eax, 0x3e5
call fcn.004013f0
xor eax, eax
cmp ebx, 0x80004003
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
lea ebx, [ebp - 0x50]
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x10
mov dword [esp], eax
call dword [ecx + 0x30]
sub esp, 0xc
mov edi, eax
mov eax, 0x3e8
call fcn.004013f0
xor eax, eax
cmp edi, 0x80070057
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov edi, ebx
mov dword [esp], eax
call fcn.00401f80
xor eax, eax
mov ecx, 0x10
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0xf
mov dword [esp], eax
call dword [ecx + 0x30]
sub esp, 0xc
mov edi, eax
mov eax, 0x3ec
call fcn.004013f0
xor eax, eax
cmp edi, 0x80070057
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
xor eax, eax
lea esi, [esi]
nop
add eax, 1
mov dword [ebx + eax*4 - 4], eax
cmp eax, 0x10
jne 0x403bb0
mov eax, dword [ebp - 0xc4]
lea edi, [ebp - 0xd8]
mov ecx, dword [eax]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0xf
mov dword [esp], eax
call dword [ecx + 0x30]
sub esp, 0xc
mov ebx, eax
mov eax, 0x3f2
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xdc], 0
mov ecx, dword [eax]
mov dword [esp + 8], edi
lea edi, [ebp - 0xdc]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [ecx + 0x10]
sub esp, 0xc
mov ebx, eax
mov eax, 0x3f6
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Failed_to_get_stream_count__hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x3f7
call fcn.004013f0
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xd8]
mov dword [esp + 4], str.Unexpected_stream_count__lu__lu._n
cmp ecx, 0x10
mov dword [esp + 8], ecx
sete cl
cmp eax, 1
mov dword [esp + 0xc], eax
sete al
movzx eax, al
and eax, ecx
mov dword [esp], eax
call fcn.00401f80
xor ecx, ecx
xor eax, eax
lea edx, [ebp - 0x68]
mov dword [edx + eax], ecx
add eax, 4
cmp eax, 0x18
jb 0x403ca6
mov eax, dword [ebp - 0xc4]
lea edi, [ebp - 0xbc]
mov ecx, dword [eax]
mov dword [esp + 8], edx
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [ecx + 0x18]
sub esp, 0xc
mov ebx, eax
mov eax, 0x3fb
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Failed_to_get_input_info__hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x3fc
call fcn.004013f0
mov eax, dword [ebp - 0x60]
mov dword [esp + 4], str.Unexpected_flags__lx._n
mov dword [esp + 8], eax
and eax, 0x600
cmp eax, 0x600
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xe8], 0
mov edx, dword [eax]
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x24]
sub esp, 0xc
mov ebx, eax
mov eax, 0x401
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xe8]
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x78]
sub esp, 8
mov ebx, eax
mov eax, 0x403
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x404
call fcn.004013f0
mov eax, dword [ebp - 0xbc]
mov dword [esp + 4], str.Unexpected_count__u._n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xe8]
mov edx, dword [eax]
mov dword [esp + 8], edi
lea edi, [ebp - 0xe4]
mov dword [esp + 4], 0x41ad8c
mov dword [esp], eax
call dword [edx + 0x1c]
sub esp, 0xc
mov ebx, eax
mov eax, 0x406
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x407
call fcn.004013f0
mov eax, dword [ebp - 0xbc]
mov dword [esp + 4], str.Unexpected_count__u._n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x408
call fcn.004013f0
mov dword [esp + 4], str.Unexpected_attributes._n
xor eax, eax
mov edx, dword [ebp - 0xe8]
test edx, edx
setne al
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xe4], 0
mov edx, dword [eax]
mov dword [esp + 8], edi
lea edi, [ebp - 0xd8]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x24]
sub esp, 0xc
mov ebx, eax
mov eax, 0x40c
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x40d
call fcn.004013f0
mov dword [esp + 4], str.Unexpected_instance._n
mov eax, dword [ebp - 0xe4]
cmp dword [ebp - 0xe8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0xe8]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xe8], 0
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], esi
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [edx + 0x24]
sub esp, 0xc
mov ebx, eax
mov eax, 0x414
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x415
call fcn.004013f0
mov dword [esp + 4], str.Unexpected_attributes._n
xor eax, eax
mov ecx, dword [ebp - 0xe8]
test ecx, ecx
setne al
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xe8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0xc4]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x2c]
sub esp, 8
mov ebx, eax
mov eax, 0x419
call fcn.004013f0
xor eax, eax
cmp ebx, 0xc00d36b3
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax]
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [edx + 0x2c]
sub esp, 8
mov ebx, eax
mov eax, 0x41c
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xdc], 0
mov edx, dword [eax]
mov dword [esp + 8], edi
lea edi, [ebp - 0xdc]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x10]
sub esp, 0xc
mov ebx, eax
mov eax, 0x420
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Failed_to_get_stream_count__hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, 0x421
call fcn.004013f0
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xdc]
mov dword [esp + 4], str.Unexpected_stream_count__lu__lu._n
cmp edx, 1
mov dword [esp + 0xc], edx
sete dl
cmp eax, 0xf
mov dword [esp + 8], eax
sete al
movzx eax, al
and eax, edx
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
lea eax, [ebp - 0xc4]
sub esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x41ae2c
mov dword [esp + 4], 0x41ae2c
mov dword [esp], 0
call sub.evr.dll_MFCreateVideoMixer
sub esp, 0x10
mov ebx, eax
mov eax, 0x426
call fcn.004013f0
xor eax, eax
cmp ebx, 0x80070057
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.00401f80
lea eax, [ebp - 0xc4]
mov dword [esp + 0xc], 0x41ae2c
mov dword [esp + 0x10], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], 0x41e59c
call dword [sym.imp.ole32.dll_CoCreateInstance]
sub esp, 0x14
mov ebx, eax
mov eax, 0x429
call fcn.004013f0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Failed_to_create_default_mixer__hr__lx._n
mov dword [esp], eax
call fcn.00401f80
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
movzx eax, di
mov dword [esp], str._guid_0x_04hx_
mov dword [esp + 4], eax
call fcn.00401260
mov edi, dword [0x4258f4]
cmp dword [ebp - 0x78], edi
jne 0x403637
mov edi, dword [0x4258f8]
cmp dword [ebp - 0x74], edi
jne 0x403637
mov edi, dword [0x4258fc]
cmp dword [ebp - 0x70], edi
jne 0x403637
mov edi, dword [0x425900]
xor edx, edx
cmp dword [ebp - 0x6c], edi
jne 0x403637
jmp 0x40363c