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

Disassembly:
mov eax, 0x1070
call fcn.00481410
mov eax, dword [0x4bacc0]
xor eax, esp
mov dword [esp + 0x106c], eax
mov eax, dword [esp + 0x1078]
mov ecx, dword [esp + 0x107c]
mov edx, dword [esp + 0x1080]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1084]
push ebx
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x108c]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x1090]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x1094]
xor ebx, ebx
push ebp
push esi
mov esi, dword [esp + 0x1080]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10a0]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x10a4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10a8]
push ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x18], ebx
call dword [sym.imp.ole32.dll_CoInitialize]
push str.WMVCORE.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, ebx
mov dword [esp + 0x60], eax
jne 0x47643d
mov dword [esp + 0x10], 0x20
jmp 0x476b30
push 0x4a3f98
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
jne 0x47645a
mov dword [esp + 0x10], 0x20
jmp 0x476b30
lea ecx, [esp + 0x28]
push ecx
push ebx
push ebx
call eax
test eax, eax
jge 0x476474
mov dword [esp + 0x10], 0x15
jmp 0x476b30
push 0x800
lea edx, [esp + 0x7c]
push ebx
push edx
call fcn.00481440
mov eax, esi
add esp, 0xc
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x476490
push 0x200
sub eax, edx
lea ecx, [esp + 0x7c]
push ecx
add eax, 1
push eax
push esi
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [esp + 0x28]
mov edx, dword [eax]
mov edx, dword [edx + 0xc]
lea ecx, [esp + 0x78]
push ecx
push eax
call edx
test eax, eax
jge 0x4764d4
mov dword [esp + 0x10], 0x16
jmp 0x476b30
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
push edi
lea edx, [esp + 0x44]
push edx
push eax
mov eax, dword [ecx + 0x38]
mov edi, 1
mov dword [esp + 0x48], edi
call eax
test eax, eax
jl 0x476b27
cmp dword [esp + 0x44], edi
jne 0x476b27
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
lea edx, [esp + 0x30]
push edx
push ebx
push eax
mov eax, dword [ecx + 0x3c]
call eax
test eax, eax
jl 0x476b27
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
lea edx, [esp + 0x6c]
push edx
push ebx
push eax
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
lea edx, [esp + 0x6c]
push edx
lea edx, [esp + 0x880]
push edx
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jl 0x476b27
mov eax, 0x10
mov ecx, str.auds
lea edx, [esp + 0x87c]
nop
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x476578
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x476560
cmp eax, ebx
je 0x4765c9
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x4765be
sub eax, edi
add ecx, edi
add edx, edi
cmp eax, ebx
je 0x4765c9
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x4765be
sub eax, edi
add ecx, edi
add edx, edi
cmp eax, ebx
je 0x4765c9
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x4765be
sub eax, edi
add ecx, edi
add edx, edi
cmp eax, ebx
je 0x4765c9
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x4765c9
cmp esi, ebx
mov eax, edi
jg 0x4765cb
or eax, 0xffffffff
jmp 0x4765cb
xor eax, eax
cmp eax, ebx
jne 0x476b27
mov eax, 0x10
mov ecx, 0x4a3f68
lea edx, [esp + 0x88c]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x4765fc
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x4765e4
cmp eax, ebx
je 0x47664d
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x476642
sub eax, edi
add ecx, edi
add edx, edi
cmp eax, ebx
je 0x47664d
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x476642
sub eax, edi
add ecx, edi
add edx, edi
cmp eax, ebx
je 0x47664d
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x476642
sub eax, edi
add ecx, edi
add edx, edi
cmp eax, ebx
je 0x47664d
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x47664d
cmp esi, ebx
mov eax, edi
jg 0x47664f
or eax, 0xffffffff
jmp 0x47664f
xor eax, eax
cmp eax, ebx
jne 0x476b27
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
lea edx, [esp + 0x18]
push edx
push 0x4a3f78
push eax
mov eax, dword [ecx]
call eax
test eax, eax
jl 0x476b27
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x10]
push edx
push ebx
push ebx
push str.Duration
push ebx
push eax
mov eax, dword [ecx + 0x48]
call eax
test eax, eax
jl 0x476b27
movzx ecx, word [esp + 0x10]
add ecx, ecx
push ecx
call fcn.0048163b
add esp, 4
lea ecx, [esp + 0x10]
push ecx
mov esi, eax
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx + 0x48]
push esi
push ebx
push str.Duration
push ebx
push eax
call edx
test eax, eax
jl 0x476b27
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
push ebx
lea edx, [esp + 0x28]
push edx
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x2c]
push edx
movzx edx, word [esi]
push ebx
push edx
push ebx
push eax
mov eax, dword [ecx + 0x4c]
call eax
test eax, eax
jl 0x476b27
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
lea edx, [esp + 0x78]
push edx
lea edx, [esp + 0x28]
push edx
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x2c]
push edx
movzx edx, word [esi]
push ebx
push edx
push ebx
push eax
mov eax, dword [ecx + 0x4c]
call eax
test eax, eax
jl 0x476b27
push esi
call fcn.00481373
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
add esp, 4
lea edx, [esp + 0x10]
push edx
push ebx
push ebx
push str.WM_ContainerFormat
push ebx
push eax
mov eax, dword [ecx + 0x48]
call eax
test eax, eax
jl 0x476b27
movzx ecx, word [esp + 0x10]
add ecx, ecx
push ecx
call fcn.0048163b
add esp, 4
lea ecx, [esp + 0x10]
push ecx
mov esi, eax
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx + 0x48]
push esi
push ebx
push str.WM_ContainerFormat
push ebx
push eax
call edx
test eax, eax
jl 0x476b27
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
push ebx
lea edx, [esp + 0x28]
push edx
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x2c]
push edx
movzx edx, word [esi]
push ebx
push edx
push ebx
push eax
mov eax, dword [ecx + 0x4c]
call eax
test eax, eax
jl 0x476b27
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
lea edx, [esp + 0x6c]
push edx
lea edx, [esp + 0x28]
push edx
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x2c]
push edx
movzx edx, word [esi]
push ebx
push edx
push ebx
push eax
mov eax, dword [ecx + 0x4c]
call eax
test eax, eax
jl 0x476b27
push esi
call fcn.00481373
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
add esp, 4
lea edx, [esp + 0x10]
push edx
push ebx
push ebx
push str.Bitrate
push ebx
push eax
mov eax, dword [ecx + 0x48]
call eax
test eax, eax
jl 0x476b27
movzx ecx, word [esp + 0x10]
add ecx, ecx
push ecx
call fcn.0048163b
add esp, 4
lea ecx, [esp + 0x10]
push ecx
mov esi, eax
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx + 0x48]
push esi
push ebx
push str.Bitrate
push ebx
push eax
call edx
test eax, eax
jl 0x476b27
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
push ebx
lea edx, [esp + 0x28]
push edx
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x2c]
push edx
movzx edx, word [esi]
push ebx
push edx
push ebx
push eax
mov eax, dword [ecx + 0x4c]
call eax
test eax, eax
jl 0x476b27
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
lea edx, [esp + 0x58]
push edx
lea edx, [esp + 0x28]
push edx
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x2c]
push edx
movzx edx, word [esi]
push ebx
push edx
push ebx
push eax
mov eax, dword [ecx + 0x4c]
call eax
test eax, eax
jl 0x476b27
push esi
call fcn.00481373
mov edi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
add esp, 4
cmp dword [esp + 0x34], ebx
mov ebp, 0x400
je 0x4769a6
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
mov byte [ecx], bl
mov edx, dword [eax]
mov edx, dword [edx + 0x48]
lea ecx, [esp + 0x10]
push ecx
push ebx
push ebx
push str.Title
push 0xffff
push eax
call edx
test eax, eax
jl 0x4769a6
movzx eax, word [esp + 0x10]
add eax, eax
push eax
call fcn.0048163b
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x10]
push edx
push esi
push ebx
push str.Title
push 0xffff
push eax
mov eax, dword [ecx + 0x48]
call eax
test eax, eax
jl 0x47699d
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
push ebx
lea edx, [esp + 0x28]
push edx
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x2c]
push edx
movzx edx, word [esi]
push ebx
push edx
push ebx
push eax
mov eax, dword [ecx + 0x4c]
call eax
test eax, eax
jl 0x47699d
cmp dword [esp + 0x24], ebp
jae 0x47699d
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
lea edx, [esp + 0x80]
push edx
lea edx, [esp + 0x28]
push edx
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x2c]
push edx
movzx edx, word [esi]
push ebx
push edx
push ebx
push eax
mov eax, dword [ecx + 0x4c]
call eax
mov ecx, dword [esp + 0x34]
push ebx
push ebx
push 0x800
push ecx
push 0xffffffffffffffff
lea edx, [esp + 0x90]
push edx
push ebx
push ebx
call edi
push esi
call fcn.00481373
add esp, 4
mov eax, dword [esp + 0x3c]
cmp eax, ebx
je 0x476a8e
lea edx, [esp + 0x10]
push edx
push ebx
push ebx
mov byte [eax], bl
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
push str.Author
push 0xffff
push eax
mov eax, dword [ecx + 0x48]
call eax
test eax, eax
jl 0x476a8e
movzx ecx, word [esp + 0x10]
add ecx, ecx
push ecx
call fcn.0048163b
add esp, 4
lea ecx, [esp + 0x10]
push ecx
mov esi, eax
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx + 0x48]
push esi
push ebx
push str.Author
push 0xffff
push eax
call edx
test eax, eax
jl 0x476a85
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
push ebx
lea edx, [esp + 0x28]
push edx
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x2c]
push edx
movzx edx, word [esi]
push ebx
push edx
push ebx
push eax
mov eax, dword [ecx + 0x4c]
call eax
test eax, eax
jl 0x476a85
cmp dword [esp + 0x24], ebp
jae 0x476a85
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
lea edx, [esp + 0x80]
push edx
lea edx, [esp + 0x28]
push edx
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x2c]
push edx
movzx edx, word [esi]
push ebx
push edx
push ebx
push eax
mov eax, dword [ecx + 0x4c]
call eax
mov ecx, dword [esp + 0x3c]
push ebx
push ebx
push 0x800
push ecx
push 0xffffffffffffffff
lea edx, [esp + 0x90]
push edx
push ebx
push ebx
call edi
push esi
call fcn.00481373
add esp, 4
mov eax, dword [esp + 0x50]
cmp eax, ebx
je 0x476aa4
xor ecx, ecx
cmp dword [esp + 0x68], ebx
setne cl
add ecx, 2
mov dword [eax], ecx
mov eax, dword [esp + 0x58]
cmp eax, ebx
je 0x476aae
mov dword [eax], ebx
mov ecx, dword [esp + 0x70]
cmp ecx, ebx
mov eax, dword [esp + 0x8c0]
je 0x476ac3
movzx edx, word [eax + 0xe]
mov dword [ecx], edx
mov ecx, dword [esp + 0x60]
cmp ecx, ebx
je 0x476ad0
mov edx, dword [eax + 4]
mov dword [ecx], edx
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x476ade
movzx eax, word [eax + 2]
mov dword [ecx], eax
mov eax, dword [esp + 0x4c]
cmp eax, ebx
je 0x476aec
mov ecx, dword [esp + 0x54]
mov dword [eax], ecx
mov ebp, dword [esp + 0x5c]
cmp ebp, ebx
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x74]
je 0x476b0c
push ebx
push 0x208d5
push esi
push edi
call fcn.00481860
mov dword [ebp], eax
cmp dword [esp + 0x38], ebx
je 0x476b2f
push ebx
push 0x2710
push esi
push edi
call fcn.00481860
mov edx, dword [esp + 0x38]
mov dword [edx], eax
jmp 0x476b2f
mov dword [esp + 0x14], 0x16
pop edi
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x476b40
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x2c]
cmp eax, ebx
je 0x476b50
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x28]
cmp eax, ebx
je 0x476b72
cmp dword [esp + 0x3c], ebx
je 0x476b6a
mov ecx, dword [eax]
mov edx, dword [ecx + 0x10]
push eax
call edx
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x60]
pop esi
pop ebp
cmp eax, ebx
pop ebx
je 0x476b84
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [esp + 0x106c]
mov eax, dword [esp + 4]
xor ecx, esp
call fcn.004810ab
add esp, 0x1070
ret