Function at 0x47dbb0
Capabilities:
Create thread

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4f3888
push eax
mov dword fs:[0], esp
sub esp, 0x38
push ebx
push ebp
push esi
push edi
mov edi, ecx
xor ebp, ebp
mov dword [edi + 0xa0], ebp
mov eax, dword [0x525768]
cmp dword [eax - 0xc], ebp
jl 0x47dbf0
mov dword [esp + 0x18], eax
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x47dc04
mov ecx, dword [0x50d0e0]
push eax
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x1c]
call fcn.00406e00
mov edx, str.PlaylistMediacenter.xml
mov dword [esp + 0x50], ebp
test edx, edx
jne 0x47dc15
xor eax, eax
jmp 0x47dc20
push str.PlaylistMediacenter.xml
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push str.PlaylistMediacenter.xml
push eax
lea ecx, [esp + 0x20]
call fcn.00407f00
mov eax, dword [esp + 0x18]
mov esi, dword [edi + 0x9c]
xor ecx, ecx
mov ebx, eax
mov word [esp + 0x38], cx
mov word [esp + 0x28], cx
push eax
lea ecx, [esp + 0x2c]
call fcn.00406940
lea eax, [esp + 0x38]
lea ecx, [esp + 0x28]
push eax
push ecx
push str.load
lea ecx, [esi + 4]
mov byte [esp + 0x5c], 2
call fcn.00406990
test eax, eax
jl 0x47dc83
cmp word [esp + 0x40], 0xffff
mov byte [esp + 0x13], 1
sete al
test al, al
jne 0x47dc88
mov byte [esp + 0x13], 0
lea edx, [esp + 0x28]
mov byte [esp + 0x50], 1
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov al, byte [esp + 0x13]
test al, al
je 0x47dcad
push ebx
mov ecx, esi
call fcn.00406e00
mov ebp, 1
lea eax, [esp + 0x38]
mov byte [esp + 0x50], 0
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
test ebp, ebp
jne 0x47dec4
mov eax, dword [0x525780]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jl 0x47dce1
mov dword [esp + 0x14], eax
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x47dcf5
mov ecx, dword [0x50d0e0]
push eax
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x18]
call fcn.00406e00
mov edx, dword [esp + 0x14]
mov bl, 3
lea ecx, [esp + 0x14]
mov byte [esp + 0x50], bl
mov eax, dword [edx - 8]
dec eax
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00407030
mov esi, eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
mov byte [esp + 0x50], 4
je 0x47dd67
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x47dd37
mov edx, dword [0x50d0e4]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x47dd3e
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x47dd4e
mov ecx, dword [eax - 8]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.004021f0
jmp 0x47dd67
lea ecx, [esp + 0x14]
call fcn.00402350
mov esi, dword [esi]
mov dword [esp + 0x14], esi
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [esp + 0x20]
mov ecx, dword [0x50d0e4]
mov byte [esp + 0x50], bl
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x47dd9a
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x47dd9a
mov eax, dword [esp + 0x20]
add eax, 0xfffffff4
push eax
call fcn.004de3a6
add esp, 4
mov eax, dword [esp + 0x14]
push 0x5c
push eax
mov esi, dword [eax - 8]
call fcn.004dec29
add esp, 8
test eax, eax
jne 0x47ddb5
or eax, 0xffffffff
jmp 0x47ddbb
sub eax, dword [esp + 0x14]
sar eax, 1
sub esi, eax
lea ecx, [esp + 0x24]
dec esi
push esi
push ecx
lea ecx, [esp + 0x1c]
call fcn.004071a0
mov edx, dword [0x50d0e0]
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x24]
mov ecx, dword [0x525780]
push str.QvodMediaCenter
push str.files
push eax
push str.title
push str.true
push str.default
push str.type
push ecx
push 0x50e548
push str.files
push str.3.5.0.65
push str.version
push str.QvodMediaCenter
lea edx, [esp + 0x50]
mov bl, 6
push str.__s__s__s___r_n__s__s__s___s_0___s__s___s__s___r_n___s__r_n___s_
push edx
mov byte [esp + 0x8c], bl
call fcn.004074f0
mov esi, dword [edi + 0x9c]
xor eax, eax
add esp, 0x3c
mov word [esp + 0x28], ax
mov word [esp + 0x38], ax
mov eax, dword [esp + 0x1c]
push eax
lea ecx, [esp + 0x3c]
call fcn.00406940
lea ecx, [esp + 0x28]
lea edx, [esp + 0x38]
push ecx
push edx
push str.loadXml
lea ecx, [esi + 4]
mov byte [esp + 0x5c], 8
call fcn.00406990
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [esp + 0x38]
push eax
call esi
lea ecx, [esp + 0x28]
mov byte [esp + 0x50], bl
push ecx
call esi
mov edx, dword [esp + 0x18]
mov ecx, dword [edi + 0x9c]
push edx
call fcn.00402ba0
mov eax, dword [esp + 0x18]
mov ecx, dword [edi + 0x9c]
push eax
call fcn.00408ff0
lea ecx, [esp + 0x1c]
call fcn.00402160
lea ecx, [esp + 0x24]
call fcn.00402160
lea ecx, [esp + 0x14]
call fcn.00402160
push edi
push 0
push fcn.0047df00
call fcn.004df750
add esp, 0xc
lea ecx, [esp + 0x18]
mov dword [edi + 0xa0], 1
call fcn.00402160
mov ecx, dword [esp + 0x48]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x44
ret