Function at 0x44f400
Capabilities:
Reference wmi statements

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5655ec
mov eax, dword fs:[0]
push eax
sub esp, 0xa74
mov eax, dword [0x639ac0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
push 0xc
mov dword [ebp - 0xa74], eax
mov dword [ebp - 0xa60], 0
call fcn.004f69f2
mov edi, eax
mov dword [ebp - 0xa64], eax
add esp, 4
mov dword [ebp - 0xa3c], edi
mov esi, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 4], 0
test edi, edi
je 0x44f48e
push 0x5c4610
mov dword [edi + 4], 0
mov dword [edi + 8], 1
call esi
mov dword [edi], eax
test eax, eax
je 0x45020e
jmp 0x44f496
xor edi, edi
mov dword [ebp - 0xa64], edi
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xa78], edi
test edi, edi
je 0x450218
push 0xc
mov dword [ebp - 4], 1
call fcn.004f69f2
mov edi, eax
mov dword [ebp - 0xa5c], eax
add esp, 4
mov dword [ebp - 0xa3c], edi
mov byte [ebp - 4], 2
test edi, edi
je 0x44f4f3
push str.SELECT__FROM_Win32_DiskDrive
mov dword [edi + 4], 0
mov dword [edi + 8], 1
call esi
mov dword [edi], eax
test eax, eax
je 0x450222
jmp 0x44f4fb
xor edi, edi
mov dword [ebp - 0xa5c], edi
mov byte [ebp - 4], 1
mov dword [ebp - 0xa6c], edi
test edi, edi
je 0x45022c
lea eax, [ebp - 0xa54]
mov dword [ebp - 0xa40], 0
push eax
mov dword [ebp - 0xa68], 0
call dword [sym.imp.OLEAUT32.dll_VariantClear]
push 0x800
lea eax, [ebp - 0x810]
mov byte [ebp - 4], 4
push 0
push eax
call fcn.004ff750
push 0x32208
mov byte [ebp - 0xa41], 0
call fcn.004f69f2
mov edi, eax
add esp, 0x10
test edi, edi
je 0x450144
push 0x32204
lea eax, [edi + 4]
push 0
push eax
call fcn.004ff750
add esp, 0xc
mov dword [edi], 0
call fcn.00455b90
test al, al
je 0x44f592
push str.WMI:_Get_Disk_drive_details__1_
call fcn.00455a00
add esp, 4
mov eax, dword [ebx]
lea ecx, [ebp - 0xa60]
push ecx
mov ecx, dword [ebp - 0xa5c]
push 0
push 0x20
push dword [ecx]
mov ecx, dword [ebp - 0xa64]
push dword [ecx]
push ebx
call dword [eax + 0x50]
test eax, eax
jns 0x44f705
call fcn.00455b90
test al, al
je 0x44f5d1
push str.WMI:_Get_Disk_drive_failed__1_
call fcn.00455a00
add esp, 4
push 8
call fcn.004f69f2
add esp, 4
mov dword [ebp - 0xa3c], eax
mov byte [ebp - 4], 5
test eax, eax
je 0x44f5fa
mov ecx, eax
call fcn.00475ba0
mov esi, eax
mov dword [ebp - 0xa58], eax
jmp 0x44f602
xor esi, esi
mov dword [ebp - 0xa58], esi
mov byte [ebp - 4], 4
test esi, esi
je 0x45005a
xor ebx, ebx
lea eax, [ebp - 0xa38]
mov ecx, esi
push eax
push ebx
call fcn.00475bf0
test eax, eax
je 0x44f6eb
cmp dword [ebp - 0xa30], 0xc
jne 0x44f6eb
mov eax, dword [edi]
shl eax, 0xa
mov dword [eax + edi + 0x208], ebx
mov edx, dword [edi]
mov eax, dword [ebp - 0xa20]
mov ecx, dword [ebp - 0xa1c]
shl edx, 0xa
mov dword [edx + edi + 0x210], eax
mov dword [edx + edi + 0x214], ecx
mov eax, dword [edi]
shl eax, 0xa
mov byte [eax + edi + 0x218], 1
mov esi, dword [edi]
shl esi, 0xa
mov edx, dword [esi + edi + 0x214]
mov ecx, dword [esi + edi + 0x210]
call fcn.004f76f0
mulsd xmm0, qword [0x575a80]
sub esp, 8
cmp byte [esi + edi + 0x218], 0
mov ecx, str.Physical_disk__d:_size__0.2fGB__Fixed
mov eax, str.Physical_disk__d:_size__0.2fGB
cmovne eax, ecx
movsd qword [esp], xmm0
push ebx
push eax
lea eax, [esi + 0x2e4]
add eax, edi
push eax
call fcn.00424a70
add esp, 0x14
call fcn.00455b90
test al, al
je 0x44f6e3
push dword [edi]
push str.WMI:_Get_Disk_drive_details__3.1__iNumPhysDisks_found__d
push 0x6411e0
call fcn.00432fe0
push 0x6411e0
call fcn.00455a00
add esp, 0x10
inc dword [edi]
mov esi, dword [ebp - 0xa58]
inc ebx
cmp ebx, 0xc8
jl 0x44f610
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
jmp 0x45005a
call fcn.00455b90
test al, al
je 0x44f71b
push str.WMI:_Get_Disk_drive_details__2_
call fcn.00455a00
add esp, 4
cmp dword [section..data], 0
je 0x44f743
push 0x1388
call sym.DiskCheckup.exe_SysInfoDll_Smart_SetInitTimeout
push 0
push 0
push 0
call sym.DiskCheckup.exe_SysInfoDll_Smart_Init
add esp, 0x10
mov byte [ebp - 0xa41], 1
mov eax, dword [ebp - 0xa60]
lea edx, [ebp - 0xa68]
push edx
lea edx, [ebp - 0xa40]
xor ebx, ebx
push edx
mov ecx, dword [eax]
push 1
push 0x2710
push eax
mov dword [ebp - 0xa58], ebx
call dword [ecx + 0x10]
test eax, eax
js 0x450038
nop dword [eax]
nop dword [eax + eax]
cmp dword [ebp - 0xa68], 0
je 0x450038
cmp ebx, 0xc8
jge 0x450038
call fcn.00455b90
test al, al
je 0x44f7af
push str.WMI:_Get_Disk_drive_details__2.1_
call fcn.00455a00
add esp, 4
mov eax, dword [ebp - 0xa40]
lea edx, [ebp - 0xa54]
push 0
push 0
push edx
mov ecx, dword [eax]
push 0
push str.Model
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x450008
cmp word [ebp - 0xa54], 8
jne 0x450008
call fcn.00455b90
test al, al
je 0x44f80b
push dword [edi]
push ebx
push str.WMI:_Get_Disk_drive_details__2.1.1__Index:__d_Drive:__d_n
push 0x6411e0
call fcn.00432fe0
push 0x6411e0
call fcn.00455a00
add esp, 0x14
mov ebx, dword [sym.imp.OLEAUT32.dll_VariantClear]
sub esp, 0x10
mov esi, esp
push esi
call ebx
lea eax, [ebp - 0xa54]
push eax
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
js 0x450208
mov eax, dword [edi]
shl eax, 0xa
add eax, 0x21c
add eax, edi
push eax
call fcn.00453a60
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0xa54]
add esp, 0x14
push eax
call esi
mov eax, dword [ebp - 0xa40]
lea edx, [ebp - 0xa54]
push 0
push 0
push edx
mov ecx, dword [eax]
push 0
push str.Description
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x44f8c1
cmp word [ebp - 0xa54], 8
jne 0x44f8c1
sub esp, 0x10
mov esi, esp
push esi
call ebx
lea eax, [ebp - 0xa54]
push eax
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
js 0x450208
mov eax, dword [edi]
shl eax, 0xa
add eax, 0x280
add eax, edi
push eax
call fcn.00453a60
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0xa54]
add esp, 0x14
push eax
call esi
mov eax, dword [ebp - 0xa40]
lea edx, [ebp - 0xa54]
push 0
push 0
push edx
mov ecx, dword [eax]
push 0
push str.Index
push eax
call dword [ecx + 0x10]
mov ecx, dword [edi]
shl ecx, 0xa
mov byte [ecx + edi + 0x21a], 0
test eax, eax
js 0x44fa42
cmp word [ebp - 0xa54], 3
jne 0x44fa42
mov ecx, dword [edi]
mov eax, dword [ebp - 0xa4c]
shl ecx, 0xa
mov dword [ecx + edi + 0x208], eax
lea eax, [ebp - 0xa54]
push eax
call esi
mov eax, dword [edi]
xor ebx, ebx
shl eax, 0xa
push 0x200
push ebx
mov dword [ebp - 0xa70], ebx
mov esi, dword [eax + edi + 0x208]
lea eax, [ebp - 0xa10]
push eax
mov dword [ebp - 0xa3c], esi
call fcn.004ff750
push esi
lea eax, [ebp - 0xa10]
push str..PhysicalDrive_d
push eax
call fcn.00424a70
add esp, 0x18
lea eax, [ebp - 0xa10]
push ebx
push ebx
push 3
push ebx
push ebx
push 1
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x44f9d6
push ebx
lea eax, [ebp - 0xa70]
push eax
push 8
lea eax, [ebp - 0xa80]
push eax
push ebx
push ebx
push 0x2d0c14
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x44f9cf
movzx ebx, byte [ebp - 0xa7a]
call fcn.00455b90
test al, al
je 0x44f9cf
push dword [ebp - 0xa3c]
push str.Disk__d:_hot_plug
push 0x6411e0
call fcn.00432fe0
push 0x6411e0
call fcn.00455a00
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [edi]
test ebx, ebx
setne cl
shl eax, 0xa
mov byte [eax + edi + 0x21a], cl
call fcn.00455b90
mov ebx, dword [sym.imp.OLEAUT32.dll_VariantClear]
test al, al
je 0x44fa42
sub esp, 0x10
mov esi, esp
push esi
call ebx
lea eax, [ebp - 0xa54]
push eax
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
js 0x450208
lea eax, [ebp - 0x810]
push eax
call fcn.00453e00
push dword [ebp - 0xa4c]
push str.WMI:_Index_param:__d_n
push 0x6411e0
call fcn.00432fe0
push 0x6411e0
call fcn.00455a00
add esp, 0x24
mov eax, dword [ebp - 0xa40]
lea edx, [ebp - 0xa54]
push 0
push 0
push edx
mov ecx, dword [eax]
push 0
push str.MediaType
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x44facc
cmp word [ebp - 0xa54], 8
jne 0x44facc
sub esp, 0x10
mov esi, esp
push esi
call ebx
lea eax, [ebp - 0xa54]
push eax
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
js 0x450208
lea eax, [ebp - 0x810]
push eax
call fcn.00453e00
lea eax, [ebp - 0x810]
push str.Fixed
push eax
call fcn.004fe706
add esp, 0x1c
test eax, eax
mov eax, dword [edi]
setne cl
shl eax, 0xa
mov byte [eax + edi + 0x218], cl
lea eax, [ebp - 0xa54]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
jmp 0x44fad9
mov eax, dword [edi]
shl eax, 0xa
mov byte [eax + edi + 0x218], 1
call fcn.00455b90
test al, al
je 0x44fb1c
mov ecx, dword [edi]
shl ecx, 0xa
movzx eax, byte [ecx + edi + 0x218]
push eax
lea eax, [ecx + 0x280]
add eax, edi
push eax
push dword [ecx + edi + 0x208]
push str.WMI:_Get_Disk_drive_details__2.1.1.1___d___s___d_n
push 0x6411e0
call fcn.00432fe0
push 0x6411e0
call fcn.00455a00
add esp, 0x18
call fcn.00455b90
test al, al
je 0x44fbaf
mov eax, dword [ebp - 0xa40]
lea edx, [ebp - 0xa54]
push 0
push 0
push edx
mov ecx, dword [eax]
push 0
push str.Caption
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x44fbaf
cmp word [ebp - 0xa54], 8
jne 0x44fbaf
sub esp, 0x10
mov esi, esp
push esi
call ebx
lea eax, [ebp - 0xa54]
push eax
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
js 0x450208
lea eax, [ebp - 0x810]
push eax
call fcn.00453e00
lea eax, [ebp - 0x810]
push eax
push str.WMI:_Get_Disk_drive_details__Caption___s_n
push 0x6411e0
call fcn.00432fe0
push 0x6411e0
call fcn.00455a00
add esp, 0x24
lea eax, [ebp - 0xa54]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
call fcn.00455b90
test al, al
je 0x44fc42
mov eax, dword [ebp - 0xa40]
lea edx, [ebp - 0xa54]
push 0
push 0
push edx
mov ecx, dword [eax]
push 0
push str.Manufacturer
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x44fc42
cmp word [ebp - 0xa54], 8
jne 0x44fc42
sub esp, 0x10
mov esi, esp
push esi
call ebx
lea eax, [ebp - 0xa54]
push eax
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
js 0x450208
lea eax, [ebp - 0x810]
push eax
call fcn.00453e00
lea eax, [ebp - 0x810]
push eax
push str.WMI:_Get_Disk_drive_details__Manufacturer___s_n
push 0x6411e0
call fcn.00432fe0
push 0x6411e0
call fcn.00455a00
add esp, 0x24
lea eax, [ebp - 0xa54]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
call fcn.00455b90
test al, al
je 0x44fcd5
mov eax, dword [ebp - 0xa40]
lea edx, [ebp - 0xa54]
push 0
push 0
push edx
mov ecx, dword [eax]
push 0
push str.Model
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x44fcd5
cmp word [ebp - 0xa54], 8
jne 0x44fcd5
sub esp, 0x10
mov esi, esp
push esi
call ebx
lea eax, [ebp - 0xa54]
push eax
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
js 0x450208
lea eax, [ebp - 0x810]
push eax
call fcn.00453e00
lea eax, [ebp - 0x810]
push eax
push str.WMI:_Get_Disk_drive_details__Model___s_n
push 0x6411e0
call fcn.00432fe0
push 0x6411e0
call fcn.00455a00
add esp, 0x24
lea eax, [ebp - 0xa54]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
call fcn.00455b90
test al, al
je 0x44fd68
mov eax, dword [ebp - 0xa40]
lea edx, [ebp - 0xa54]
push 0
push 0
push edx
mov ecx, dword [eax]
push 0
push str.TotalHeads
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x44fd68
cmp word [ebp - 0xa54], 8
jne 0x44fd68
sub esp, 0x10
mov esi, esp
push esi
call ebx
lea eax, [ebp - 0xa54]
push eax
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
js 0x450208
lea eax, [ebp - 0x810]
push eax
call fcn.00453e00
lea eax, [ebp - 0x810]
push eax
push str.WMI:_Get_Disk_drive_details__TotalHeads___s_n
push 0x6411e0
call fcn.00432fe0
push 0x6411e0
call fcn.00455a00
add esp, 0x24
lea eax, [ebp - 0xa54]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0xa40]
lea edx, [ebp - 0xa54]
push 0
push 0
push edx
mov ecx, dword [eax]
push 0
push str.SerialNumber
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x44fee1
cmp word [ebp - 0xa54], 8
jne 0x44fee1
sub esp, 0x10
mov esi, esp
push esi
call ebx
lea eax, [ebp - 0xa54]
push eax
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
js 0x450208
lea eax, [ebp - 0x810]
push eax
call fcn.00453e00
xor edx, edx
lea ecx, [ebp - 0x810]
add esp, 0x14
lea ebx, [ecx + 2]
cmp word [ebp - 0x810], 0x20
mov eax, 1
cmove edx, eax
xor esi, esi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x44fde6
sub ecx, ebx
sar ecx, 1
cmp edx, ecx
jae 0x44fe69
nop dword [eax]
cmp esi, 0xc8
jge 0x44fe69
mov ecx, dword [edi]
movzx eax, word [ebp + edx*2 - 0x80e]
shl ecx, 9
add ecx, esi
mov word [edi + ecx*2 + 0x474], ax
mov ecx, dword [edi]
movzx eax, word [ebp + edx*2 - 0x810]
add edx, 2
shl ecx, 9
add ecx, esi
mov word [edi + ecx*2 + 0x476], ax
xor ecx, ecx
mov eax, dword [edi]
shl eax, 9
add eax, esi
add esi, 2
mov word [edi + eax*2 + 0x478], cx
lea ecx, [ebp - 0x810]
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x44fe56
sub ecx, ebx
sar ecx, 1
cmp edx, ecx
jb 0x44fe00
call fcn.00455b90
mov ebx, dword [sym.imp.OLEAUT32.dll_VariantClear]
test al, al
je 0x44fed2
sub esp, 0x10
mov esi, esp
push esi
call ebx
lea eax, [ebp - 0xa54]
push eax
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
js 0x450208
lea eax, [ebp - 0x810]
push eax
call fcn.00453e00
mov eax, dword [edi]
shl eax, 0xa
add eax, 0x474
add eax, edi
push eax
lea eax, [ebp - 0x810]
push eax
push str.WMI:_Get_Disk_drive_details__SerialNumber___s___s___n
push 0x6411e0
call fcn.00432fe0
push 0x6411e0
call fcn.00455a00
add esp, 0x28
lea eax, [ebp - 0xa54]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
jmp 0x44fee7
mov ebx, dword [sym.imp.OLEAUT32.dll_VariantClear]
call fcn.00455b90
test al, al
je 0x44fefd
push str.WMI:_Get_Disk_drive_details__2.3_
call fcn.00455a00
add esp, 4
mov eax, dword [ebp - 0xa40]
lea edx, [ebp - 0xa54]
push 0
push 0
push edx
mov ecx, dword [eax]
push 0
push str.Size
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x44ffce
cmp word [ebp - 0xa54], 8
jne 0x44ffce
sub esp, 0x10
mov esi, esp
push esi
call ebx
lea eax, [ebp - 0xa54]
push eax
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
js 0x450208
lea eax, [ebp - 0x810]
push eax
call fcn.00453e00
mov eax, dword [edi]
shl eax, 0xa
add eax, 0x210
add eax, edi
push eax
lea eax, [ebp - 0x810]
push str._I64d
push eax
call fcn.00455920
add esp, 0x20
call fcn.00455b90
test al, al
je 0x44ffc1
mov eax, dword [edi]
shl eax, 0xa
push dword [eax + edi + 0x214]
push dword [eax + edi + 0x210]
lea eax, [ebp - 0x810]
push eax
push dword [ebp - 0xa58]
push str.WMI:_Get_Disk_drive_details__2.3.2__Index:__d_Size:__s___I64d_n
push 0x6411e0
call fcn.00432fe0
push 0x6411e0
call fcn.00455a00
add esp, 0x1c
lea eax, [ebp - 0xa54]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [edi]
mov eax, ecx
shl eax, 0xa
add eax, 0x2e4
push 0xc8
add eax, edi
push eax
push ecx
push edi
call fcn.00454e40
inc dword [edi]
add esp, 0x10
mov eax, dword [ebp - 0xa40]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [edi], 0xc8
jge 0x450038
mov ebx, dword [ebp - 0xa58]
mov eax, dword [ebp - 0xa60]
lea edx, [ebp - 0xa68]
push edx
lea edx, [ebp - 0xa40]
inc ebx
push edx
mov ecx, dword [eax]
push 1
push 0x2710
push eax
mov dword [ebp - 0xa58], ebx
call dword [ecx + 0x10]
test eax, eax
jns 0x44f780
call fcn.00455b90
test al, al
je 0x45004e
push str.WMI:_Get_Disk_drive_details__3_
call fcn.00455a00
add esp, 4
mov eax, dword [ebp - 0xa60]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
call fcn.00455b90
test al, al
je 0x450070
push str.WMI:_Get_Disk_drive_details__4_
call fcn.00455a00
add esp, 4
mov eax, dword [edi]
test eax, eax
jle 0x4500f2
mov ebx, dword [ebp - 0xa74]
cmp dword [ebx + 0x1820], eax
lea esi, [ebx + 0x1820]
je 0x4500f2
call fcn.00455b90
test al, al
je 0x4500a0
push str.WMI:_Get_Disk_drive_details__4a_
call fcn.00455a00
add esp, 4
push 0x32208
push edi
push esi
call fcn.004fec50
add esp, 0xc
call fcn.00455b90
test al, al
je 0x4500c5
push str.WMI:_Get_Disk_drive_details__4b_
call fcn.00455a00
add esp, 4
cmp dword [esi], 0xc8
jle 0x4500e9
call fcn.00455b90
test al, al
je 0x4500e3
push str.WMI:_Get_Disk_drive_details__4b_2_:_Failed_sanity_check
call fcn.00455a00
add esp, 4
mov dword [esi], 0
push ebx
call fcn.00453f60
add esp, 4
call fcn.00455b90
test al, al
je 0x450123
push str.WMI:_Get_Disk_drive_details__5_
call fcn.00455a00
push dword [edi]
push str.WMI:_Get_Disk_drive_details_iNumPhysDisks_found__d
push 0x6411e0
call fcn.00432fe0
push 0x6411e0
call fcn.00455a00
add esp, 0x14
cmp byte [ebp - 0xa41], 0
je 0x450131
call sym.DiskCheckup.exe_SysInfoDll_Smart_Cleanup
push 0x32208
push edi
call fcn.004f6a22
add esp, 8
mov edi, 1
lea eax, [ebp - 0xa54]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebp - 0xa5c]
or esi, 0xffffffff
mov eax, esi
lock xadd dword [ecx + 8], eax
dec eax
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
jne 0x4501a7
mov eax, dword [ecx]
test eax, eax
je 0x45017f
push eax
call ebx
mov ecx, dword [ebp - 0xa5c]
mov dword [ecx], 0
mov eax, dword [ecx + 4]
test eax, eax
je 0x45019c
push eax
call fcn.004f69ed
mov ecx, dword [ebp - 0xa5c]
add esp, 4
mov dword [ecx + 4], 0
push 0xc
push ecx
call fcn.004f6a22
add esp, 8
mov eax, dword [ebp - 0xa64]
lock xadd dword [eax + 8], esi
dec esi
jne 0x4501e8
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x4501c6
push eax
call ebx
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x4501dd
push eax
call fcn.004f69ed
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.004f6a22
add esp, 8
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004f66cd
mov esp, ebp
pop ebp
ret 8
push eax
call fcn.004f8630
push 0x8007000e
call fcn.004f8630
push 0x8007000e
call fcn.004f8630
push 0x8007000e
call fcn.004f8630
push 0x8007000e
call fcn.004f8630
int3