Function at 0x4b4100
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x579d75
push eax
mov eax, 0xf418
mov dword fs:[0], esp
call fcn.005655c0
push ebx
push esi
push edi
call fcn.0041d750
mov ecx, eax
call fcn.00527810
push eax
call sub.MFC42.DLL_CWnd::FromHandle
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x10]
call sub.MFC42.DLL_CString::CString_1
mov esi, dword [ebp + 0x10]
xor ebx, ebx
push esi
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], ebx
call sub.MFC42.DLL_CString::CString_1
mov ecx, dword [ebp - 0x10]
mov edi, dword [sym.imp.MSVCRT.dll__mbsicmp]
push str.DT_MEDIAFILE
push ecx
mov byte [ebp - 4], 1
call edi
add esp, 8
test eax, eax
jne 0x4b4840
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp + 0x10], ebx
mov edx, dword [0x5ed920]
mov ecx, 0x5ed920
mov byte [ebp - 4], 4
mov dword [ebp - 0x44], ebx
mov dword [ebp + 0xc], 0x5ed920
call dword [edx + 4]
mov eax, dword [0x5e5cb8]
mov byte [ebp - 4], 5
cmp eax, ebx
jne 0x4b41fd
cmp dword [0x5e5cb4], ebx
jne 0x4b41fd
push 0x380
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x28], eax
cmp eax, ebx
mov byte [ebp - 4], 6
je 0x4b41d3
push ebx
mov ecx, eax
call fcn.00414650
jmp 0x4b41d5
xor eax, eax
mov dword [0x5e5cb4], eax
mov eax, dword [0x5cebb0]
push eax
push 0x406a50
mov ecx, 0x5eafa0
mov byte [ebp - 4], 5
call fcn.00406600
mov dword [0x5e5cb8], 1
mov edx, dword [0x5ed920]
mov edi, dword [0x5e5cb4]
mov ecx, 0x5ed920
mov byte [ebp - 4], 4
call dword [edx + 8]
mov eax, dword [edi]
lea ecx, [ebp - 0x44]
push ecx
push edi
call dword [eax + 0x8c]
cmp dword [ebp - 0x44], ebx
je 0x4b4238
mov ecx, dword [0x5e6010]
cmp ecx, ebx
je 0x4b4238
push 1
call fcn.004f2660
mov edx, dword [0x5ed8c0]
mov ecx, 0x5ed8c0
mov dword [ebp + 0xc], 0x5ed8c0
call dword [edx + 4]
mov eax, dword [0x5e5d30]
mov byte [ebp - 4], 7
cmp eax, ebx
jne 0x4b42aa
cmp dword [0x5e5d2c], ebx
jne 0x4b42aa
push 0xc
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x28], eax
cmp eax, ebx
mov byte [ebp - 4], 8
je 0x4b4280
mov ecx, eax
call fcn.00464f50
jmp 0x4b4282
xor eax, eax
mov dword [0x5e5d2c], eax
mov eax, dword [0x5cf938]
push eax
push 0x41dab0
mov ecx, 0x5eafa0
mov byte [ebp - 4], 7
call fcn.00406600
mov dword [0x5e5d30], 1
mov edx, dword [0x5ed8c0]
mov edi, dword [0x5e5d2c]
mov ecx, 0x5ed8c0
mov byte [ebp - 4], 4
call dword [edx + 8]
mov eax, dword [edi]
lea ecx, [ebp - 0x2c]
push ecx
push edi
call dword [eax + 8]
test eax, eax
jl 0x4b47ef
mov eax, dword [ebp - 0x2c]
cmp eax, ebx
je 0x4b47ef
push 0x5d1b68
lea edx, [ebp - 0x40]
push eax
push edx
call fcn.00427500
mov eax, dword [ebp - 0x2c]
push 0x5d0be0
lea ecx, [ebp + 0x10]
push eax
push ecx
call fcn.00427500
mov dword [ebp - 0x48], ebx
mov eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x48]
push ecx
push eax
mov edx, dword [eax]
mov byte [ebp - 4], 9
call dword [edx + 0x10]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
test eax, eax
jl 0x4b47e5
mov dword [ebp + 0xc], ebx
mov edx, dword [0x5ed920]
mov ecx, 0x5ed920
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x28], ecx
call dword [edx + 4]
mov eax, dword [0x5e5cb8]
mov byte [ebp - 4], 0xb
cmp eax, ebx
jne 0x4b439b
cmp dword [0x5e5cb4], ebx
jne 0x4b439b
push 0x380
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x5c], eax
cmp eax, ebx
mov byte [ebp - 4], 0xc
je 0x4b4371
push ebx
mov ecx, eax
call fcn.00414650
jmp 0x4b4373
xor eax, eax
mov dword [0x5e5cb4], eax
mov eax, dword [0x5cebb0]
push eax
push 0x406a50
mov ecx, 0x5eafa0
mov byte [ebp - 4], 0xb
call fcn.00406600
mov dword [0x5e5cb8], 1
mov edx, dword [0x5ed920]
mov edi, dword [0x5e5cb4]
mov ecx, 0x5ed920
mov byte [ebp - 4], 0xa
call dword [edx + 8]
mov eax, dword [edi]
lea ecx, [ebp + 0xc]
push ecx
push edi
call dword [eax + 0x78]
mov eax, dword [ebp + 0xc]
mov edx, 0x5e5830
test edx, edx
jne 0x4b43d2
cmp eax, ebx
je 0x4b4435
jmp 0x4b4491
cmp eax, ebx
je 0x4b4491
mov eax, 0x5e5830
test eax, eax
jne 0x4b43e7
xor edi, edi
jmp 0x4b441e
push 0x5e5830
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
mov esi, eax
inc esi
lea eax, [esi + esi]
add eax, 3
and al, 0xfc
call fcn.005655c0
mov edi, esp
push esi
push edi
push 0xffffffffffffffff
push 0x5e5830
push ebx
push ebx
mov word [edi], bx
call dword [sym.imp.KERNEL32.DLL_MultiByteToWideChar]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, dword [ebp + 0xc]
push edi
push ecx
call dword [sym.imp.MSVCRT.dll_wcscmp]
add esp, 8
test eax, eax
sete al
test al, al
je 0x4b4491
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x18b]
mov byte [ebp - 0x18c], 0
rep stosd dword es:[edi], eax
lea edx, [ebp - 0x20]
mov dword [ebp - 0x20], ebx
stosw word es:[edi], ax
push edx
push 5
push ebx
stosb byte es:[edi], al
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov eax, dword [ebp - 0x20]
cmp eax, ebx
je 0x4b4491
lea ecx, [ebp - 0x18c]
push ecx
push eax
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
test eax, eax
je 0x4b4491
mov edx, dword [ebp + 0xc]
push edx
call esi
lea eax, [ebp - 0x18c]
push 0xffffffffffffffff
push eax
call fcn.00406d70
add esp, 8
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x48]
push ecx
push edx
push eax
push 0xa120e
push ebx
push ebx
push 1
lea ecx, [ebp - 0xf424]
call fcn.0044c9c0
mov eax, dword [ebp + 0x10]
mov byte [ebp - 4], 0xd
cmp eax, ebx
je 0x4b44c6
mov ecx, dword [eax]
lea edx, [ebp - 0x64]
push edx
push eax
call dword [ecx + 0x24]
lea ecx, [ebp - 0xf424]
call fcn.0044cac0
cmp eax, 1
jne 0x4b47d0
push 0x1c
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
mov dword [ebp - 0x28], edi
cmp edi, ebx
mov byte [ebp - 4], 0xe
je 0x4b4511
mov ecx, edi
call fcn.00458100
mov ecx, 0x5eb320
mov byte [ebp - 4], 0xf
mov dword [edi], vtable.ATL::CComObject_class_CKMPArray_.0
call fcn.00518ad0
mov dword [ebp - 0x14], edi
jmp 0x4b4514
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0xf424]
mov byte [ebp - 4], 0xd
call fcn.0044cc60
mov edi, dword [0x5e5d28]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x4b4550
mov ecx, dword [eax]
lea edx, [ebp - 0x5c]
push edx
push eax
call dword [ecx + 0x98]
cmp dword [ebp - 0x5c], ebx
je 0x4b4550
cmp edi, ebx
je 0x4b4550
mov ecx, edi
call fcn.00489a30
mov dword [ebp - 0x18], ebx
mov eax, dword [edi]
lea ecx, [ebp - 0x18]
push ecx
push edi
mov byte [ebp - 4], 0x10
call dword [eax + 0xc0]
cmp dword [ebp - 0x20], ebx
je 0x4b4727
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0xf424]
push edx
call fcn.0044cc70
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [ebp - 0x28], esi
mov eax, dword [ebp - 0x64]
mov byte [ebp - 4], 0x11
cmp eax, ebx
je 0x4b46dc
mov al, byte [ebp + 0x17]
mov dword [ebp - 0x38], ebx
mov byte [ebp - 0x3c], al
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x12
call fcn.0053df00
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x13
push ecx
push esi
lea ecx, [ebp - 0x88]
call fcn.0053df70
mov ecx, dword [ebp - 0x38]
cmp ecx, ebx
je 0x4b4693
mov eax, dword [ebp - 0x34]
sub eax, ecx
sar eax, 4
cmp eax, ebx
jle 0x4b4693
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x60], eax
lea edi, [edx + 8]
jmp 0x4b45f2
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebx + ecx + 4]
mov esi, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
test eax, eax
je 0x4b4602
mov esi, eax
push 0xc
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x1c], eax
test eax, eax
mov byte [ebp - 4], 0x14
je 0x4b4623
push esi
mov ecx, eax
call fcn.00412a10
mov esi, eax
jmp 0x4b4625
xor esi, esi
test esi, esi
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x1c], esi
jne 0x4b463a
push 0x8007000e
call fcn.00565a92
test esi, esi
mov byte [ebp - 4], 0x15
je 0x4b4646
mov eax, dword [esi]
jmp 0x4b4648
xor eax, eax
push eax
lea ecx, [ebp - 0x74]
mov word [ebp - 0x74], 0
call fcn.00480a70
mov eax, dword [edi + 8]
lea ecx, [ebp - 0x74]
push ecx
push eax
mov ecx, edi
mov byte [ebp - 4], 0x16
call fcn.004b7990
lea edx, [ebp - 0x74]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
test esi, esi
mov byte [ebp - 4], 0x13
je 0x4b4683
mov ecx, esi
call fcn.00412a50
mov eax, dword [ebp - 0x60]
add ebx, 0x10
dec eax
mov dword [ebp - 0x60], eax
jne 0x4b45ef
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x12
call fcn.0053df40
mov edi, dword [ebp - 0x34]
mov esi, dword [ebp - 0x38]
cmp esi, edi
mov byte [ebp - 4], 0x11
je 0x4b46c6
xor ebx, ebx
push ebx
mov ecx, esi
call fcn.004934b0
add esi, 0x10
cmp esi, edi
jne 0x4b46b2
mov esi, dword [ebp - 0x38]
jmp 0x4b46c8
xor ebx, ebx
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
jmp 0x4b470a
push esi
lea ecx, [ebp - 0x58]
mov word [ebp - 0x58], bx
call fcn.00480a70
mov eax, dword [ebp - 0x14]
lea edx, [ebp - 0x58]
push edx
mov byte [ebp - 4], 0x17
lea ecx, [eax + 8]
mov eax, dword [eax + 0x10]
push eax
call fcn.004b7990
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 4], 0x10
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp dword [ebp - 0x20], ebx
jne 0x4b456d
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp dword [ebp - 0x44], ebx
je 0x4b473c
mov ecx, dword [0x5e6010]
cmp ecx, ebx
je 0x4b473c
push ebx
call fcn.004f2660
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 0x14]
push ecx
push 0x5da760
mov edx, dword [eax]
push eax
call dword [edx]
mov edi, eax
mov eax, dword [ebp - 0x18]
cmp eax, ebx
mov byte [ebp - 4], 0xd
je 0x4b4760
mov edx, dword [eax]
push eax
call dword [edx + 8]
lea ecx, [ebp - 0xf424]
mov byte [ebp - 4], 0xa
call fcn.00450af0
mov eax, dword [ebp + 0xc]
push eax
call esi
mov ecx, dword [ebp - 0x48]
push ecx
call esi
mov eax, dword [ebp + 0x10]
mov byte [ebp - 4], 3
cmp eax, ebx
je 0x4b478c
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [ebp - 0x40]
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x4b479d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x4b47ae
mov edx, dword [eax]
push eax
call dword [edx + 8]
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, edi
jmp 0x4b4e2b
lea ecx, [ebp - 0xf424]
mov byte [ebp - 4], 0xa
call fcn.00450af0
mov eax, dword [ebp + 0xc]
push eax
call esi
mov ecx, dword [ebp - 0x48]
mov byte [ebp - 4], 4
push ecx
call esi
cmp dword [ebp - 0x44], ebx
je 0x4b4804
mov ecx, dword [0x5e6010]
cmp ecx, ebx
je 0x4b4804
push ebx
call fcn.004f2660
mov eax, dword [ebp + 0x10]
mov byte [ebp - 4], 3
cmp eax, ebx
je 0x4b4815
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [ebp - 0x40]
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x4b4826
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x4b4e0b
mov edx, dword [eax]
push eax
call dword [edx + 8]
jmp 0x4b4e0b
mov eax, dword [ebp - 0x10]
push str.DT_EQFILE
push eax
call edi
add esp, 8
test eax, eax
jne 0x4b4b07
push esi
lea ecx, [ebp + 0xc]
call sub.MFC42.DLL_CString::CString_1
mov ecx, dword [ebp + 0xc]
push str.save
push ecx
mov byte [ebp - 4], 0x18
call edi
mov edx, dword [ebp - 0x14]
add esp, 8
test eax, eax
push ebx
push edx
push 0x5d1268
jne 0x4b49bc
push 0xa000e
push ebx
push 0x5d1260
push ebx
lea ecx, [ebp - 0xf424]
call fcn.0044c9c0
lea ecx, [ebp - 0xf424]
mov byte [ebp - 4], 0x19
call fcn.0044cac0
cmp eax, 1
jne 0x4b49ad
push 0x1c
call sub.MFC42.DLL_operatornew
mov esi, eax
add esp, 4
mov dword [ebp - 0x1c], esi
cmp esi, ebx
mov byte [ebp - 4], 0x1a
je 0x4b48e6
mov ecx, esi
call fcn.00458100
mov ecx, 0x5eb320
mov byte [ebp - 4], 0x1b
mov dword [esi], vtable.ATL::CComObject_class_CKMPArray_.0
call fcn.00518ad0
jmp 0x4b48e8
xor esi, esi
lea ecx, [ebp - 0xf424]
mov dword [ebp - 0x18], esi
mov byte [ebp - 4], 0x19
call fcn.0044cc60
cmp eax, ebx
mov dword [ebp + 0x10], eax
je 0x4b4960
lea edi, [esi + 8]
lea eax, [ebp + 0x10]
lea ecx, [ebp - 0xf424]
push eax
call fcn.0044cc70
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [ebp - 0x1c], esi
push esi
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x1c
mov word [ebp - 0x58], bx
call fcn.00480a70
mov eax, dword [edi + 8]
lea ecx, [ebp - 0x58]
push ecx
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1d
call fcn.004b7990
lea edx, [ebp - 0x58]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push esi
mov byte [ebp - 4], 0x19
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp dword [ebp + 0x10], ebx
jne 0x4b4904
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi]
push ecx
push 0x5da760
push esi
call dword [eax]
lea ecx, [ebp - 0xf424]
mov esi, eax
mov byte [ebp - 4], 0x18
call fcn.00450af0
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, esi
jmp 0x4b4e2b
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0xf424]
jmp 0x4b4af1
push 0xa120e
push ebx
push 0x5d1260
push 1
lea ecx, [ebp - 0xf424]
call fcn.0044c9c0
lea ecx, [ebp - 0xf424]
mov byte [ebp - 4], 0x1e
call fcn.0044cac0
cmp eax, 1
jne 0x4b4ae7
push 0x1c
call sub.MFC42.DLL_operatornew
mov esi, eax
add esp, 4
mov dword [ebp - 0x1c], esi
cmp esi, ebx
mov byte [ebp - 4], 0x1f
je 0x4b4a20
mov ecx, esi
call fcn.00458100
mov ecx, 0x5eb320
mov byte [ebp - 4], 0x20
mov dword [esi], vtable.ATL::CComObject_class_CKMPArray_.0
call fcn.00518ad0
jmp 0x4b4a22
xor esi, esi
lea ecx, [ebp - 0xf424]
mov dword [ebp - 0x18], esi
mov byte [ebp - 4], 0x1e
call fcn.0044cc60
cmp eax, ebx
mov dword [ebp + 0x10], eax
je 0x4b4a9a
lea edi, [esi + 8]
lea eax, [ebp + 0x10]
lea ecx, [ebp - 0xf424]
push eax
call fcn.0044cc70
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [ebp - 0x1c], esi
push esi
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x21
mov word [ebp - 0x58], bx
call fcn.00480a70
mov eax, dword [edi + 8]
lea ecx, [ebp - 0x58]
push ecx
push eax
mov ecx, edi
mov byte [ebp - 4], 0x22
call fcn.004b7990
lea edx, [ebp - 0x58]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push esi
mov byte [ebp - 4], 0x1e
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp dword [ebp + 0x10], ebx
jne 0x4b4a3e
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi]
push ecx
push 0x5da760
push esi
call dword [eax]
lea ecx, [ebp - 0xf424]
mov esi, eax
mov byte [ebp - 4], 0x18
call fcn.00450af0
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, esi
jmp 0x4b4e2b
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0xf424]
call fcn.00450af0
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
jmp 0x4b4e0b
mov edx, dword [ebp - 0x10]
push str.DT_FILE
push edx
call edi
add esp, 8
test eax, eax
jne 0x4b4c6a
mov eax, dword [ebp - 0x14]
push ebx
push eax
push ebx
push 0xa120e
push ebx
push ebx
push 1
lea ecx, [ebp - 0xf424]
call fcn.0044c9c0
lea ecx, [ebp - 0xf424]
mov byte [ebp - 4], 0x23
call fcn.0044cac0
cmp eax, 1
jne 0x4b4c56
push 0x1c
call sub.MFC42.DLL_operatornew
mov esi, eax
add esp, 4
mov dword [ebp + 0x10], esi
cmp esi, ebx
mov byte [ebp - 4], 0x24
je 0x4b4b83
mov ecx, esi
call fcn.00458100
mov ecx, 0x5eb320
mov byte [ebp - 4], 0x25
mov dword [esi], vtable.ATL::CComObject_class_CKMPArray_.0
call fcn.00518ad0
jmp 0x4b4b85
xor esi, esi
lea ecx, [ebp - 0xf424]
mov dword [ebp + 0x10], esi
mov byte [ebp - 4], 0x23
call fcn.0044cc60
cmp eax, ebx
mov dword [ebp + 0xc], eax
je 0x4b4c15
lea ebx, [esi + 8]
lea ecx, [ebp + 0xc]
push ecx
lea ecx, [ebp - 0xf424]
call fcn.0044cc70
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, eax
mov dword [ebp - 0x1c], edi
push edi
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x26
mov word [ebp - 0x58], 0
call fcn.00480a70
mov esi, dword [ebx + 8]
push 0xffffffffffffffff
mov ecx, ebx
mov byte [ebp - 4], 0x27
lea edx, [esi + 1]
push edx
call fcn.00458440
mov eax, dword [ebx + 4]
shl esi, 4
add esi, eax
lea eax, [ebp - 0x58]
mov ecx, esi
push eax
call fcn.004b74c0
lea ecx, [ebp - 0x58]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push edi
mov byte [ebp - 4], 0x23
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x4b4ba1
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov edx, dword [esi]
push eax
push 0x5da760
push esi
call dword [edx]
lea ecx, [ebp - 0xf424]
mov esi, eax
mov byte [ebp - 4], 1
call fcn.00450af0
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, esi
jmp 0x4b4e2b
lea ecx, [ebp - 0xf424]
mov byte [ebp - 4], 1
call fcn.00450af0
jmp 0x4b4e0b
mov ecx, dword [ebp - 0x10]
push str.DT_FOLDER
push ecx
call edi
add esp, 8
test eax, eax
jne 0x4b4e0b
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x3c4]
call fcn.0044d2e0
lea ecx, [ebp - 0x3c4]
mov byte [ebp - 4], 0x28
call fcn.0044d470
cmp eax, 1
jne 0x4b4dfc
lea edx, [ebp + 0x10]
lea ecx, [ebp - 0x3c4]
push edx
call fcn.0044d4f0
mov eax, dword [eax]
push ebx
push ebx
push 0xffffffffffffffff
push eax
push ebx
push ebx
mov dword [ebp + 0xc], eax
call dword [sym.imp.KERNEL32.DLL_MultiByteToWideChar]
mov esi, eax
dec esi
push esi
push ebx
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov edi, eax
cmp edi, ebx
je 0x4b4ce8
mov eax, dword [ebp + 0xc]
push esi
push edi
push 0xffffffffffffffff
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_MultiByteToWideChar]
mov dword [ebp - 0x1c], edi
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x29
call sub.MFC42.DLL_CString::CString
push 0x1c
call sub.MFC42.DLL_operatornew
mov esi, eax
add esp, 4
mov dword [ebp + 0xc], esi
cmp esi, ebx
mov byte [ebp - 4], 0x2a
je 0x4b4d2e
mov ecx, esi
call fcn.00458100
mov ecx, 0x5eb320
mov byte [ebp - 4], 0x2b
mov dword [esi], vtable.ATL::CComObject_class_CKMPArray_.0
call fcn.00518ad0
mov dword [ebp + 0xc], esi
jmp 0x4b4d31
mov dword [ebp + 0xc], ebx
lea ecx, [ebp - 0x3c]
mov word [ebp - 0x3c], bx
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp eax, ebx
jge 0x4b4d46
mov dword [ebp - 0x34], eax
push edi
mov word [ebp - 0x3c], 8
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
cmp eax, ebx
mov dword [ebp - 0x34], eax
jne 0x4b4d6b
cmp edi, ebx
je 0x4b4d6b
mov word [ebp - 0x3c], 0xa
mov dword [ebp - 0x34], 0x8007000e
mov edx, dword [ebp + 0xc]
push 0xffffffffffffffff
mov byte [ebp - 4], 0x2c
mov esi, dword [edx + 0x10]
lea ecx, [edx + 8]
lea eax, [esi + 1]
push eax
call fcn.00458440
mov ecx, dword [ebp + 0xc]
lea edx, [ebp - 0x3c]
shl esi, 4
lea eax, [ecx + 8]
push edx
add esi, dword [eax + 4]
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
cmp eax, ebx
jge 0x4b4da6
mov word [esi], 0xa
mov dword [esi + 8], eax
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 0x29
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
push edx
push 0x5da760
mov ecx, dword [eax]
push eax
call dword [ecx]
push edi
mov esi, eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea ecx, [ebp - 0x3c4]
mov byte [ebp - 4], 1
call fcn.0044d3e0
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, esi
jmp 0x4b4e2b
lea ecx, [ebp - 0x3c4]
mov byte [ebp - 4], 1
call fcn.0044d3e0
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0x80004005
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0xf430]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10