Function at 0x4ac710
Capabilities:
Connect to wmi namespace via wbemlocator
Get common file path
Reference sql statements
Reference wmi statements

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1294
call fcn.004f23a0
mov eax, dword [0x5552b0]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push esi
push edi
push 0x104
lea ecx, [ebp - 0x1244]
push ecx
mov dword [ebp - 0x1288], eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
xor edi, edi
push edi
mov dword [ebp - 0x128c], 0x63
call dword [sym.imp.ole32.dll_CoInitialize]
cmp byte [0x568461], 0
je 0x4ac81f
lea edx, [ebp - 0x1264]
push edx
push 0x5020f8
push 1
push edi
push 0x5021c8
mov dword [ebp - 0x1264], edi
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x4ac819
mov eax, dword [ebp - 0x1264]
lea edx, [ebp - 0x125c]
push edx
push edi
push edi
push edi
push edi
push edi
push edi
mov dword [ebp - 0x125c], edi
mov ecx, dword [eax]
push str.ROOTCIMV2
push eax
mov eax, dword [ecx + 0xc]
call eax
test eax, eax
js 0x4ac80b
mov eax, dword [ebp - 0x125c]
push edi
push edi
push 3
push 3
push edi
push edi
push 0xa
push eax
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
mov eax, dword [ebp - 0x125c]
js 0x4ac803
lea edx, [ebp - 0x1268]
push edx
push edi
push 0x30
push 0x526080
mov dword [ebp - 0x1268], edi
mov ecx, dword [eax]
push 0x52550c
push eax
mov eax, dword [ecx + 0x50]
call eax
test eax, eax
jns 0x4ac831
mov eax, dword [ebp - 0x125c]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x1264]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
call dword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
push 0x7fe
lea ecx, [ebp - 0x103a]
xor eax, eax
push edi
push ecx
mov dword [ebp - 0x1280], edi
mov dword [ebp - 0x126c], edi
mov word [ebp - 0x103c], ax
call fcn.004e8ba0
mov eax, dword [ebp - 0x1268]
add esp, 0xc
cmp eax, edi
je 0x4ad9b8
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
lea ecx, [ebp - 0x126c]
push ecx
lea ecx, [ebp - 0x1280]
push ecx
push 1
push 0xffffffffffffffff
push eax
call edx
cmp dword [ebp - 0x126c], edi
je 0x4ad9b2
push 0x3e
lea ecx, [ebp - 0xba]
xor eax, eax
push edi
push ecx
mov word [ebp - 0xbc], ax
call fcn.004e8ba0
mov eax, dword [ebp - 0x1280]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
add esp, 0xc
push edi
push edi
lea ecx, [ebp - 0x1254]
push ecx
push edi
push str.Antecedent
push eax
call edx
test eax, eax
jne 0x4ac932
cmp word [ebp - 0x1254], 1
je 0x4ac932
mov eax, dword [ebp - 0x124c]
push 0x1f
push 0x22
push eax
call fcn.004e53f9
add esp, 8
add eax, 2
push eax
lea ecx, [ebp - 0xbc]
push ecx
call fcn.004e5481
lea eax, [ebp - 0xbc]
add esp, 0xc
lea edx, [eax + 2]
jmp 0x4ac910
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4ac910
sub eax, edx
sar eax, 1
xor edx, edx
mov word [ebp + eax*2 - 0xbe], dx
lea eax, [ebp - 0x1254]
push eax
call esi
push 0xfe
lea edx, [ebp - 0x53a]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0x53c], cx
call fcn.004e8ba0
mov eax, dword [ebp - 0x1280]
mov ecx, dword [eax]
add esp, 0xc
push edi
push edi
lea edx, [ebp - 0x1254]
push edx
push edi
push str.Dependent
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4ac9d2
cmp word [ebp - 0x1254], 1
je 0x4ac9d2
mov ecx, dword [ebp - 0x124c]
push 0x7f
push 0x22
push ecx
call fcn.004e53f9
add esp, 8
add eax, 2
push eax
lea edx, [ebp - 0x53c]
push edx
call fcn.004e5481
lea eax, [ebp - 0x53c]
add esp, 0xc
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4ac9b0
sub eax, edx
lea edx, [ebp - 0x1254]
sar eax, 1
xor ecx, ecx
push edx
mov word [ebp + eax*2 - 0x53e], cx
call esi
push 0x800
lea eax, [ebp - 0x103c]
push edi
push eax
call fcn.004e8ba0
add esp, 0xc
lea ecx, [ebp - 0xbc]
push ecx
lea edx, [ebp - 0x103c]
push str.SELECT__FROM_Win32_DiskDrive_WHERE_DeviceID___s
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
mov eax, dword [ebp - 0x125c]
add esp, 0xc
lea edx, [ebp - 0x127c]
push edx
push edi
push 0x30
lea edx, [ebp - 0x103c]
push edx
mov dword [ebp - 0x127c], edi
mov ecx, dword [eax]
push 0x52550c
push eax
mov eax, dword [ecx + 0x50]
call eax
mov eax, dword [ebp - 0x127c]
cmp eax, edi
je 0x4ad99a
mov ecx, dword [eax]
lea edx, [ebp - 0x126c]
push edx
lea edx, [ebp - 0x1260]
push edx
push 1
push 0xffffffffffffffff
push eax
mov eax, dword [ecx + 0x10]
call eax
cmp dword [ebp - 0x126c], edi
je 0x4ad9b2
push 0x7e
lea edx, [ebp - 0x3ba]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0x3bc], cx
call fcn.004e8ba0
mov eax, dword [ebp - 0x1260]
mov ecx, dword [eax]
add esp, 0xc
push edi
push edi
lea edx, [ebp - 0x1254]
push edx
push edi
push str.Caption
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4acac8
cmp word [ebp - 0x1254], 1
je 0x4acac8
mov ecx, dword [ebp - 0x124c]
push 0x3f
push ecx
lea edx, [ebp - 0x3bc]
push edx
call fcn.004e5481
add esp, 0xc
lea eax, [ebp - 0x1254]
push eax
call esi
push 0x7e
lea edx, [ebp - 0x1ba]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0x1bc], cx
call fcn.004e8ba0
mov eax, dword [ebp - 0x1260]
mov ecx, dword [eax]
add esp, 0xc
push edi
push edi
lea edx, [ebp - 0x1254]
push edx
push edi
push str.MediaType
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4acb88
cmp word [ebp - 0x1254], 1
je 0x4acb88
mov ecx, dword [ebp - 0x124c]
push 0x3f
push ecx
lea edx, [ebp - 0x1bc]
push edx
call fcn.004e5481
add esp, 0xc
lea eax, [ebp - 0x1254]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0x1bc]
xor edx, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4acb42
sub eax, esi
sar eax, 1
je 0x4acb88
cmp word [ebp + edx*2 - 0x1bc], 9
jne 0x4acb6b
mov ecx, 0x20
mov word [ebp + edx*2 - 0x1bc], cx
lea eax, [ebp - 0x1bc]
inc edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4acb75
sub eax, esi
sar eax, 1
cmp edx, eax
jb 0x4acb53
push 0x3e
lea eax, [ebp - 0xfa]
xor edx, edx
push edi
push eax
mov word [ebp - 0xfc], dx
call fcn.004e8ba0
mov eax, dword [ebp - 0x1260]
mov ecx, dword [eax]
add esp, 0xc
push edi
push edi
lea edx, [ebp - 0x1254]
push edx
push edi
push str.InterfaceType
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4acbf7
cmp word [ebp - 0x1254], 1
je 0x4acbf7
mov ecx, dword [ebp - 0x124c]
push 0x1f
push ecx
lea edx, [ebp - 0xfc]
push edx
call fcn.004e5481
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
add esp, 0xc
lea eax, [ebp - 0x1254]
push eax
call esi
jmp 0x4acbfd
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
push 0xfe
lea edx, [ebp - 0x73a]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0x73c], cx
call fcn.004e8ba0
add esp, 0xc
push 0x3e
lea ecx, [ebp - 0x27a]
xor eax, eax
push edi
push ecx
mov word [ebp - 0x27c], ax
call fcn.004e8ba0
mov eax, dword [ebp - 0x1260]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
add esp, 0xc
push edi
push edi
lea ecx, [ebp - 0x1254]
push ecx
push edi
push str.DeviceID
push eax
call edx
test eax, eax
jne 0x4acca1
cmp word [ebp - 0x1254], 1
je 0x4acca1
mov eax, dword [ebp - 0x124c]
push 0x1f
push eax
lea ecx, [ebp - 0x27c]
push ecx
call fcn.004e5481
add esp, 0xc
lea edx, [ebp - 0x1254]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0x27c]
push eax
lea esi, [ebp - 0x73c]
call fcn.004ada00
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
add esp, 4
push 0x3e
lea edx, [ebp - 0x13a]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0x13c], cx
call fcn.004e8ba0
mov eax, dword [ebp - 0x1260]
mov ecx, dword [eax]
add esp, 0xc
push edi
push edi
lea edx, [ebp - 0x1254]
push edx
push edi
push str.Size
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4acd08
cmp word [ebp - 0x1254], 1
je 0x4acd08
mov ecx, dword [ebp - 0x124c]
push 0x1f
push ecx
lea edx, [ebp - 0x13c]
push edx
call fcn.004e5481
add esp, 0xc
lea eax, [ebp - 0x1254]
push eax
call esi
mov eax, dword [ebp - 0x1260]
mov ecx, dword [eax]
push edi
push edi
lea edx, [ebp - 0x1254]
push edx
push edi
push str.Index
push eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x1274], edi
call eax
test eax, eax
jne 0x4acd4f
cmp word [ebp - 0x1254], 1
je 0x4acd4f
movsx ecx, word [ebp - 0x124c]
lea edx, [ebp - 0x1254]
push edx
mov dword [ebp - 0x1274], ecx
call esi
push 0xfe
lea ecx, [ebp - 0x83a]
xor eax, eax
push edi
push ecx
mov word [ebp - 0x83c], ax
call fcn.004e8ba0
mov eax, dword [ebp - 0x1260]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
add esp, 0xc
push edi
push edi
lea ecx, [ebp - 0x1254]
push ecx
push edi
push str.SerialNumber
push eax
call edx
test eax, eax
jne 0x4acdb9
cmp word [ebp - 0x1254], 1
je 0x4acdb9
mov eax, dword [ebp - 0x124c]
push 0x7f
push eax
lea ecx, [ebp - 0x83c]
push ecx
call fcn.004e5481
add esp, 0xc
lea edx, [ebp - 0x1254]
push edx
call esi
push 0x800
lea eax, [ebp - 0x103c]
push edi
push eax
call fcn.004e8ba0
mov eax, dword [ebp - 0x125c]
add esp, 0xc
lea edx, [ebp - 0x1270]
push edx
push edi
push 0x30
push str.SELECT__FROM_Win32_LogicalDiskToPartition
mov dword [ebp - 0x1270], edi
mov ecx, dword [eax]
push 0x52550c
push eax
mov eax, dword [ecx + 0x50]
call eax
mov eax, dword [ebp - 0x1270]
mov dword [ebp - 0x1278], edi
cmp eax, edi
je 0x4ad98c
lea ebx, [ebx]
mov ecx, dword [eax]
lea edx, [ebp - 0x1278]
push edx
lea edx, [ebp - 0x1290]
push edx
push 1
push 0xffffffffffffffff
push eax
mov eax, dword [ecx + 0x10]
call eax
cmp dword [ebp - 0x1278], edi
je 0x4ad986
push 0xfe
lea edx, [ebp - 0x63a]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0x63c], cx
call fcn.004e8ba0
mov eax, dword [ebp - 0x1290]
mov ecx, dword [eax]
add esp, 0xc
push edi
push edi
lea edx, [ebp - 0x1254]
push edx
push edi
push str.Antecedent
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4aced2
cmp word [ebp - 0x1254], 1
je 0x4aced2
mov ecx, dword [ebp - 0x124c]
push 0x7f
push 0x22
push ecx
call fcn.004e53f9
add esp, 8
add eax, 2
push eax
lea edx, [ebp - 0x63c]
push edx
call fcn.004e5481
lea eax, [ebp - 0x63c]
add esp, 0xc
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4aceb0
sub eax, edx
lea edx, [ebp - 0x1254]
sar eax, 1
xor ecx, ecx
push edx
mov word [ebp + eax*2 - 0x63e], cx
call esi
lea ecx, [ebp - 0x53c]
lea eax, [ebp - 0x63c]
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4acf06
cmp dx, di
je 0x4acf02
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4acf06
add eax, 4
add ecx, 4
cmp dx, di
jne 0x4acee0
xor eax, eax
jmp 0x4acf0b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
jne 0x4ad976
push edi
xor eax, eax
push edi
lea edx, [ebp - 0x1254]
push edx
mov word [ebp - 0x18], ax
mov dword [ebp - 0x16], eax
mov dword [ebp - 0x12], eax
mov dword [ebp - 0xe], eax
mov word [ebp - 0xa], ax
mov eax, dword [ebp - 0x1290]
mov ecx, dword [eax]
push edi
push str.Dependent
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4acf9f
cmp word [ebp - 0x1254], 1
je 0x4acf9f
mov ecx, dword [ebp - 0x124c]
push 7
push 0x22
push ecx
call fcn.004e53f9
add esp, 8
add eax, 2
push eax
lea edx, [ebp - 0x18]
push edx
call fcn.004e5481
lea eax, [ebp - 0x18]
add esp, 0xc
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4acf80
sub eax, edx
lea edx, [ebp - 0x1254]
sar eax, 1
xor ecx, ecx
push edx
mov word [ebp + eax*2 - 0x1a], cx
call esi
push 0x800
lea eax, [ebp - 0x103c]
push edi
push eax
call fcn.004e8ba0
add esp, 0xc
lea ecx, [ebp - 0x18]
push ecx
lea edx, [ebp - 0x103c]
push str.SELECT__FROM_Win32_LogicalDisk_WHERE_DeviceID___s
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
mov eax, dword [ebp - 0x125c]
add esp, 0xc
lea edx, [ebp - 0x1284]
push edx
push edi
push 0x30
lea edx, [ebp - 0x103c]
push edx
mov dword [ebp - 0x1284], edi
mov ecx, dword [eax]
push 0x52550c
push eax
mov eax, dword [ecx + 0x50]
call eax
mov eax, dword [ebp - 0x1284]
mov dword [ebp - 0x1258], edi
cmp eax, edi
je 0x4ad96e
mov ecx, dword [eax]
lea edx, [ebp - 0x1278]
push edx
lea edx, [ebp - 0x1258]
push edx
push 1
push 0xffffffffffffffff
push eax
mov eax, dword [ecx + 0x10]
call eax
cmp dword [ebp - 0x1278], edi
je 0x4ad986
xor eax, eax
push edi
xor ecx, ecx
push edi
mov word [ebp - 0x78], cx
lea ecx, [ebp - 0x1254]
push ecx
mov dword [ebp - 0x76], eax
mov dword [ebp - 0x72], eax
mov dword [ebp - 0x6e], eax
mov dword [ebp - 0x6a], eax
mov dword [ebp - 0x66], eax
mov dword [ebp - 0x62], eax
mov dword [ebp - 0x5e], eax
mov word [ebp - 0x5a], ax
mov eax, dword [ebp - 0x1258]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
push edi
push str.DriveType
push eax
call edx
test eax, eax
jne 0x4ad09c
cmp word [ebp - 0x1254], 1
je 0x4ad09c
movsx ecx, word [ebp - 0x124c]
push 0xa
lea eax, [ebp - 0x78]
push eax
push ecx
call fcn.004e534f
add esp, 0xc
lea edx, [ebp - 0x1254]
push edx
call esi
push 0x3e
lea ecx, [ebp - 0x2ba]
xor eax, eax
push edi
push ecx
mov word [ebp - 0x2bc], ax
call fcn.004e8ba0
mov eax, dword [ebp - 0x1258]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
add esp, 0xc
push edi
push edi
lea ecx, [ebp - 0x1254]
push ecx
push edi
push str.Description
push eax
call edx
test eax, eax
jne 0x4ad103
cmp word [ebp - 0x1254], 1
je 0x4ad103
mov eax, dword [ebp - 0x124c]
push 0x1f
push eax
lea ecx, [ebp - 0x2bc]
push ecx
call fcn.004e5481
add esp, 0xc
lea edx, [ebp - 0x1254]
push edx
call esi
xor eax, eax
push edi
push edi
lea edx, [ebp - 0x1254]
push edx
mov word [ebp - 0x38], ax
mov dword [ebp - 0x36], eax
mov dword [ebp - 0x32], eax
mov dword [ebp - 0x2e], eax
mov dword [ebp - 0x2a], eax
mov dword [ebp - 0x26], eax
mov dword [ebp - 0x22], eax
mov dword [ebp - 0x1e], eax
mov word [ebp - 0x1a], ax
mov eax, dword [ebp - 0x1258]
mov ecx, dword [eax]
push edi
push str.FileSystem
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4ad16b
cmp word [ebp - 0x1254], 1
je 0x4ad16b
mov ecx, dword [ebp - 0x124c]
push 0xf
push ecx
lea edx, [ebp - 0x38]
push edx
call fcn.004e5481
add esp, 0xc
lea eax, [ebp - 0x1254]
push eax
call esi
push 0x7e
lea edx, [ebp - 0x33a]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0x33c], cx
call fcn.004e8ba0
mov eax, dword [ebp - 0x1258]
mov ecx, dword [eax]
add esp, 0xc
push edi
push edi
lea edx, [ebp - 0x1254]
push edx
push edi
push str.Size
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4ad1d2
cmp word [ebp - 0x1254], 1
je 0x4ad1d2
mov ecx, dword [ebp - 0x124c]
push 0x3f
push ecx
lea edx, [ebp - 0x33c]
push edx
call fcn.004e5481
add esp, 0xc
lea eax, [ebp - 0x1254]
push eax
call esi
push 0x7e
lea edx, [ebp - 0x43a]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0x43c], cx
call fcn.004e8ba0
mov eax, dword [ebp - 0x1258]
mov ecx, dword [eax]
add esp, 0xc
push edi
push edi
lea edx, [ebp - 0x1254]
push edx
push edi
push str.FreeSpace
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4ad239
cmp word [ebp - 0x1254], 1
je 0x4ad239
mov ecx, dword [ebp - 0x124c]
push 0x3f
push ecx
lea edx, [ebp - 0x43c]
push edx
call fcn.004e5481
add esp, 0xc
lea eax, [ebp - 0x1254]
push eax
call esi
push 0x3e
lea edx, [ebp - 0x23a]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0x23c], cx
call fcn.004e8ba0
mov eax, dword [ebp - 0x1258]
mov ecx, dword [eax]
add esp, 0xc
push edi
push edi
lea edx, [ebp - 0x1254]
push edx
push edi
push str.VolumeSerialNumber
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4ad2a0
cmp word [ebp - 0x1254], 1
je 0x4ad2a0
mov ecx, dword [ebp - 0x124c]
push 0x1f
push ecx
lea edx, [ebp - 0x23c]
push edx
call fcn.004e5481
add esp, 0xc
lea eax, [ebp - 0x1254]
push eax
call esi
push 0x3e
lea edx, [ebp - 0x1fa]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0x1fc], cx
call fcn.004e8ba0
mov eax, dword [ebp - 0x1258]
mov ecx, dword [eax]
add esp, 0xc
push edi
push edi
lea edx, [ebp - 0x1254]
push edx
push edi
push str.VolumeName
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4ad307
cmp word [ebp - 0x1254], 1
je 0x4ad307
mov ecx, dword [ebp - 0x124c]
push 0x1f
push ecx
lea edx, [ebp - 0x1fc]
push edx
call fcn.004e5481
add esp, 0xc
lea eax, [ebp - 0x1254]
push eax
call esi
xor eax, eax
push edi
xor ecx, ecx
push edi
mov word [ebp - 0x58], cx
lea ecx, [ebp - 0x1254]
push ecx
mov dword [ebp - 0x56], eax
mov dword [ebp - 0x52], eax
mov dword [ebp - 0x4e], eax
mov dword [ebp - 0x4a], eax
mov dword [ebp - 0x46], eax
mov dword [ebp - 0x42], eax
mov dword [ebp - 0x3e], eax
mov word [ebp - 0x3a], ax
mov eax, dword [ebp - 0x1258]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
push edi
push str.MediaType
push eax
call edx
test eax, eax
jne 0x4ad372
cmp word [ebp - 0x1254], 1
je 0x4ad372
movsx ecx, word [ebp - 0x124c]
push 0xa
lea eax, [ebp - 0x58]
push eax
push ecx
call fcn.004e534f
add esp, 0xc
lea edx, [ebp - 0x1254]
push edx
call esi
mov eax, dword [ebp - 0x1288]
cmp dword [eax], 0x1a
jae 0x4ad986
lea eax, [ebp - 0x18]
mov edx, eax
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4ad386
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ad396
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad3b5
mov ecx, dword [0x51ccdc]
lea eax, [ebp - 0x78]
mov dword [edi], ecx
mov edx, eax
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ad3d0
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ad3e0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad400
mov edx, dword [0x51ccdc]
lea eax, [ebp - 0x2bc]
mov dword [edi], edx
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ad420
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ad430
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad450
mov eax, dword [0x51ccdc]
mov dword [edi], eax
lea eax, [ebp - 0x38]
mov edx, eax
jmp 0x4ad470
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ad470
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ad480
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad4a0
mov ecx, dword [0x51ccdc]
lea eax, [ebp - 0x33c]
mov dword [edi], ecx
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ad4c0
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ad4d0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad4f0
mov edx, dword [0x51ccdc]
lea eax, [ebp - 0x43c]
mov dword [edi], edx
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ad510
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ad520
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad540
mov eax, dword [0x51ccdc]
mov dword [edi], eax
lea eax, [ebp - 0x23c]
mov edx, eax
jmp 0x4ad560
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ad560
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ad570
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad590
mov ecx, dword [0x51ccdc]
lea eax, [ebp - 0x1fc]
mov dword [edi], ecx
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ad5b0
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ad5c0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad5e0
mov edx, dword [0x51ccdc]
lea eax, [ebp - 0x58]
mov dword [edi], edx
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ad600
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ad610
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad630
mov eax, dword [0x51ccdc]
push 2
lea ecx, [ebp - 0x18]
push ecx
lea edx, [ebp - 0x1244]
push edx
mov dword [edi], eax
call fcn.004e5007
add esp, 0xc
lea edi, [ebx - 2]
test eax, eax
jne 0x4ad6c5
mov eax, dword [ebp - 0x1274]
mov dword [ebp - 0x128c], eax
jmp 0x4ad670
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad670
mov ecx, dword [0x52607c]
mov dword [edi], ecx
lea edi, [ebx - 2]
jmp 0x4ad690
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad690
mov edx, dword [0x51ccdc]
mov dword [edi], edx
lea edi, [ebx - 2]
jmp 0x4ad6b0
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad6b0
mov eax, dword [0x52607c]
mov dword [edi], eax
jmp 0x4ad734
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad6c5
mov ecx, dword [0x51c658]
mov dword [edi], ecx
lea edi, [ebx - 2]
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad6e0
mov edx, dword [0x51ccdc]
mov eax, dword [ebp - 0x1274]
mov dword [edi], edx
lea edi, [ebx - 2]
cmp dword [ebp - 0x128c], eax
jne 0x4ad720
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad705
mov ecx, dword [0x52607c]
mov dword [edi], ecx
jmp 0x4ad734
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad720
mov edx, dword [0x51c658]
mov dword [edi], edx
lea edi, [ebx - 2]
jmp 0x4ad740
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad740
mov eax, dword [0x51ccdc]
mov dword [edi], eax
lea eax, [ebp - 0x3bc]
mov edx, eax
jmp 0x4ad760
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ad760
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ad770
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad790
mov ecx, dword [0x51ccdc]
lea eax, [ebp - 0x1bc]
mov dword [edi], ecx
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ad7b0
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ad7c0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad7e0
mov edx, dword [0x51ccdc]
lea eax, [ebp - 0xfc]
mov dword [edi], edx
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ad800
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ad810
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad830
mov eax, dword [0x51ccdc]
mov dword [edi], eax
lea eax, [ebp - 0x73c]
mov edx, eax
jmp 0x4ad850
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ad850
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ad860
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad880
mov ecx, dword [0x51ccdc]
lea eax, [ebp - 0x13c]
mov dword [edi], ecx
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ad8a0
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ad8b0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad8d0
mov edx, dword [0x51ccdc]
lea eax, [ebp - 0x83c]
mov dword [edi], edx
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ad8f0
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ad900
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ad920
mov eax, dword [0x51ccdc]
mov dword [edi], eax
mov eax, ebx
lea edx, [eax + 2]
jmp 0x4ad940
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ad940
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
sub eax, edx
sar eax, 1
mov ecx, 1
mov word [ebx + eax*2], cx
mov eax, dword [ebp - 0x1288]
inc dword [eax]
mov eax, dword [ebp - 0x1284]
xor edi, edi
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [ebp - 0x1270]
cmp eax, edi
jne 0x4ace10
jmp 0x4ad98c
mov eax, dword [ebp - 0x1270]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x127c]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x1268]
cmp eax, edi
jne 0x4ac870
jmp 0x4ad9b8
mov eax, dword [ebp - 0x1268]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x125c]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x1264]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 8]
pop edi
xor ecx, ebp
mov eax, 1
pop esi
call fcn.004e4746
mov esp, ebp
pop ebp
ret