Function at 0x4555fe
Capabilities:
Connect to wmi namespace via wbemlocator
Contain obfuscated stackstrings
Get disk information
Get storage device properties
Parse pe header
Reference wmi statements

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c19da
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1674
call fcn.0048f7d0
mov eax, dword [0x50254c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x14d0], edi
mov dword [ebp - 0x1534], edi
mov dword [ebp - 0x1550], edi
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x15b4], edx
xor ebx, ebx
mov dword [ebp - 0x150c], ebx
mov eax, dword [ebp + 0xc]
mov dword [edi + 0xe8], eax
mov dword [edi + 0xec], ebx
mov eax, dword [ebp + 0x14]
mov dword [edi + 0xf0], eax
mov eax, dword [ebp + 0x18]
mov dword [edi + 0xf4], eax
mov dword [ebp - 0x1598], ebx
mov dword [edi + 0x100], ebx
mov dword [edi + 0x104], ebx
mov dword [ebp - method.CArray_unsigned_long_int__unsigned_long_int_.virtual_0], vtable.CArray_struct_CAtaSmart::DISK_POSITION__struct_CAtaSmart::DISK_POSITION_.0
mov dword [ebp - 0x15f8], ebx
mov dword [ebp - 0x15ec], ebx
mov dword [ebp - 0x15f0], ebx
mov dword [ebp - 0x15f4], ebx
mov dword [ebp - 4], ebx
test edx, edx
je 0x455784
mov dword [edx], ebx
mov esi, ebx
mov dword [ebp - 0x14e8], esi
cmp dword [edi + 0x10], ebx
jle 0x455784
add edi, 8
mov dword [ebp - 0x14d8], edi
push 0x4c
push ebx
lea eax, [ebp - 0x14b0]
push eax
call fcn.00490cd0
add esp, 0xc
push esi
mov ecx, edi
call fcn.00407390
mov eax, dword [eax + 0x1740]
mov dword [ebp - 0x14b0], eax
push esi
mov ecx, edi
call fcn.00407390
mov eax, dword [eax + 0x1748]
mov dword [ebp - 0x14a8], eax
push esi
mov ecx, edi
call fcn.00407390
mov eax, dword [eax + 0x1744]
mov dword [ebp - 0x14ac], eax
push 0x40
push esi
mov ecx, edi
call fcn.00407390
add eax, 0x1846
push eax
lea eax, [ebp - 0x14a4]
push eax
call fcn.00490750
sub esp, 0x40
push 0x13
pop ecx
lea esi, [ebp - 0x14b0]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push dword [ebp - 0x15f4]
lea ecx, [ebp - 0x15fc]
call fcn.0045e033
mov esi, dword [ebp - 0x14e8]
inc esi
mov dword [ebp - 0x14e8], esi
mov eax, dword [ebp - 0x14d0]
cmp esi, dword [eax + 0x10]
mov edi, dword [ebp - 0x14d8]
jl 0x4556d5
mov edi, eax
push 0xffffffffffffffff
push ebx
lea ecx, [edi + 8]
call fcn.0045e203
push 0xffffffffffffffff
push ebx
lea ecx, [edi + 0x1c]
call fcn.0045e545
lea esi, [edi + 0x6c]
mov dword [ebp - 0x1544], esi
push 0x4c5940
call fcn.00494153
pop ecx
push eax
push 0x4c5940
mov ecx, esi
call fcn.00402053
or esi, 0xffffffff
push esi
push ebx
lea ecx, [edi + 0x70]
call fcn.004741f3
push esi
push ebx
lea ecx, [edi + 0x84]
call fcn.004741f3
push esi
push ebx
lea ecx, [edi + 0x98]
call fcn.004741f3
push esi
push ebx
lea ecx, [edi + 0xac]
call fcn.004741f3
push esi
push ebx
lea ecx, [edi + 0xc0]
call fcn.00409cb1
mov dword [ebp - 0x1580], ebx
push esi
push ebx
lea ecx, [edi + 0xd4]
call fcn.00409cb1
push 0x400
push ebx
lea eax, [ebp - 0x1414]
push eax
call fcn.00490cd0
add esp, 0xc
push ecx
mov ecx, esp
cmp dword [ebp + 8], 0
je 0x459c0c
mov dword [ebp - 0x1524], 1
mov dword [ebp - 0x1590], ebx
mov dword [ebp - 0x1504], ebx
mov dword [ebp - 0x1510], ebx
mov dword [ebp - 0x153c], ebx
mov dword [ebp - 0x14e0], ebx
mov dword [ebp - 0x1514], esp
push 0x4d896c
call fcn.004012a3
mov byte [ebp - 4], 1
mov byte [ebp - 4], bl
call fcn.0043ed25
mov dword [esp], str.Winmgmt
lea ecx, [ebp - 0x14d1]
call fcn.0045afea
test al, al
jne 0x4558e6
push ecx
mov ecx, esp
mov dword [ebp - 0x1514], esp
push str.Waiting..._Winmgmt
call fcn.004012a3
mov byte [ebp - 4], 2
mov byte [ebp - 4], bl
call fcn.0043ed25
pop ecx
push 1
push str.Winmgmt
lea ecx, [ebp - 0x14d1]
call fcn.0044e8a8
test al, al
jne 0x4558e6
push ecx
mov ecx, esp
mov dword [ebp - 0x1514], esp
push str.NG:WMI_Init_3
call fcn.004012a3
mov byte [ebp - 4], 0x11
mov byte [ebp - 4], bl
call fcn.0043ed25
pop ecx
jmp 0x455b52
mov byte [ebp - 4], 3
push ecx
mov ecx, esp
mov dword [ebp - 0x1514], esp
push str.CoInitializeSecurity__
call fcn.004012a3
mov byte [ebp - 4], 4
mov byte [ebp - 4], 3
call fcn.0043ed25
pop ecx
push ebx
push ebx
push ebx
push 3
push ebx
push ebx
push ebx
push esi
push ebx
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
push ecx
mov ecx, esp
mov dword [ebp - 0x14ec], esp
push str.CoCreateInstance__
call fcn.004012a3
mov byte [ebp - 4], 5
mov byte [ebp - 4], 3
call fcn.0043ed25
pop ecx
lea eax, [ebp - 0x1590]
push eax
push 0x4e3ff0
push 1
push ebx
push 0x4e4000
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x455980
push ecx
mov ecx, esp
mov dword [ebp - 0x1514], esp
push str.NG:WMI_Init_1
call fcn.004012a3
mov byte [ebp - 4], 6
mov byte [ebp - 4], 3
call fcn.0043ed25
pop ecx
jmp 0x455b15
mov esi, ebx
push ebx
push ebx
push 6
call fcn.0043cb2e
add esp, 0xc
test eax, eax
je 0x455997
mov esi, 0x80
push ecx
mov ecx, esp
mov dword [ebp - 0x1514], esp
push str.ConnectServer__
call fcn.004012a3
mov byte [ebp - 4], 7
mov byte [ebp - 4], 3
call fcn.0043ed25
mov dword [esp], str.._rootcimv2
lea ecx, [ebp - 0x14e8]
call fcn.0041230c
mov byte [ebp - 4], 8
mov edx, dword [eax]
test edx, edx
je 0x4559d7
mov edx, dword [edx]
jmp 0x4559d9
mov edx, ebx
mov eax, dword [ebp - 0x1590]
mov ecx, dword [eax]
lea edi, [ebp - 0x1504]
push edi
push ebx
push ebx
push esi
push ebx
push ebx
push ebx
push edx
push eax
call dword [ecx + 0xc]
test eax, eax
sets al
mov byte [ebp - 0x14d1], al
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x14e8]
test ecx, ecx
mov edi, dword [ebp - 0x14d0]
je 0x455a23
call fcn.00415862
mov dword [ebp - 0x14e8], ebx
mov al, byte [ebp - 0x14d1]
push ecx
mov ecx, esp
mov dword [ebp - 0x1514], esp
test al, al
je 0x455a43
push str.NG:WMI_Init_2
call fcn.004012a3
mov byte [ebp - 4], 9
jmp 0x455af5
push str.CoSetProxyBlanket__
call fcn.004012a3
mov byte [ebp - 4], 0xa
mov byte [ebp - 4], 3
call fcn.0043ed25
pop ecx
push ebx
push ebx
push 3
push 3
push ebx
push ebx
push 0xa
push dword [ebp - 0x1504]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
mov esi, eax
test esi, esi
jns 0x455ad4
lea ecx, [ebp - 0x14d8]
call fcn.004026b1
mov byte [ebp - 4], 0xb
push esi
push str.NG:WMI_Init____08X
lea eax, [ebp - 0x14d8]
push eax
call fcn.00402a35
pop ecx
pop ecx
mov ecx, esp
mov dword [ebp - 0x1514], esp
lea eax, [ebp - 0x14d8]
push eax
call fcn.00401270
mov byte [ebp - 4], 0xc
mov byte [ebp - 4], 0xb
call fcn.0043ed25
pop ecx
mov byte [ebp - 4], 0xd
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x14d8]
lea ecx, [ecx - 0x10]
call fcn.00401fe9
jmp 0x455aff
mov dword [edi + 0xec], 1
push ecx
mov ecx, esp
mov dword [ebp - 0x1514], esp
push str.OK:WMI_Init
call fcn.004012a3
mov byte [ebp - 4], 0xe
mov byte [ebp - 4], 3
call fcn.0043ed25
pop ecx
mov ecx, dword [ebp - 0x1590]
test ecx, ecx
je 0x455b15
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x1590], ebx
mov dword [ebp - 4], ebx
jmp 0x455b52
cmp dword [edi + 0xec], ebx
je 0x459c29
lea ecx, [ebp - 0x1448]
call fcn.00473f7f
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x1514]
call fcn.004026b1
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x14f4]
call fcn.004026b1
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x151c]
call fcn.004026b1
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x1574]
call fcn.004026b1
mov byte [ebp - 4], 0x16
mov byte [ebp - 4], 0x17
push str.select_DeviceName__DriverVersion_from_Win32_PnPSignedDriver
lea ecx, [ebp - 0x14d8]
call fcn.0041230c
mov esi, eax
mov byte [ebp - 4], 0x18
push 0x4d6000
lea ecx, [ebp - 0x14e8]
call fcn.0041230c
mov byte [ebp - 4], 0x19
mov ecx, dword [esi]
test ecx, ecx
je 0x455be1
mov esi, dword [ecx]
jmp 0x455be3
mov esi, ebx
mov eax, dword [eax]
test eax, eax
je 0x455bed
mov edx, dword [eax]
jmp 0x455bef
mov edx, ebx
mov eax, dword [ebp - 0x1504]
mov ecx, dword [eax]
lea edi, [ebp - 0x1510]
push edi
push ebx
push 0x30
push esi
push edx
push eax
call dword [ecx + 0x50]
mov esi, eax
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x14e8]
test ecx, ecx
je 0x455c22
call fcn.00415862
mov dword [ebp - 0x14e8], ebx
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x14d8]
test ecx, ecx
je 0x455c3b
call fcn.00415862
mov dword [ebp - 0x14d8], ebx
test esi, esi
jns 0x455c48
mov byte [ebp - 4], 0x16
jmp 0x459b52
mov esi, ebx
mov dword [ebp - 0x15d8], esi
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebp - 0x1510]
test ecx, ecx
je 0x455f65
mov eax, dword [ecx]
lea edx, [ebp - 0x1524]
push edx
lea edx, [ebp - 0x14e0]
push edx
push 1
push 0x2710
push ecx
call dword [eax + 0x10]
test eax, eax
js 0x455f65
cmp dword [ebp - 0x1524], 1
jne 0x455f65
cmp esi, 0x200
jge 0x455f65
inc esi
mov dword [ebp - 0x15d8], esi
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea ecx, [ebp - 0x1518]
call fcn.004026b1
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x14e4]
call fcn.004026b1
mov byte [ebp - 4], 0x1b
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.DriverVersion
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x455d15
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x455d15
push dword [ebp - 0x141c]
lea ecx, [ebp - 0x14e4]
call fcn.0040b62f
lea eax, [ebp - 0x1424]
push eax
call edi
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.DeviceName
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x455f1e
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x455f1e
push dword [ebp - 0x141c]
lea ecx, [ebp - 0x1518]
call fcn.0040b62f
push ebx
push str.AMD_RAID_Config
lea ecx, [ebp - 0x1518]
call fcn.00407548
test eax, eax
js 0x455f0b
push 0x4cc6fc
lea eax, [ebp - 0x1518]
push eax
lea eax, [ebp - 0x14e8]
push eax
call fcn.00404d80
mov byte [ebp - 4], 0x1c
add esp, 8
mov ecx, esp
mov dword [ebp - 0x14ec], esp
lea edx, [ebp - 0x14e4]
push edx
push eax
push ecx
call fcn.00404d2b
add esp, 0xc
mov byte [ebp - 4], 0x1d
mov byte [ebp - 4], 0x1c
call fcn.0043ed25
pop ecx
mov byte [ebp - 4], 0x1e
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x14e8]
add ecx, 0xfffffff0
call fcn.00401fe9
lea ecx, [ebp - 0x14f0]
call fcn.004026b1
mov byte [ebp - 4], 0x1f
push 0x2e
push ebx
push dword [ebp - 0x14e4]
lea eax, [ebp - 0x14f0]
push eax
call fcn.00462a30
push dword [ebp - 0x14f0]
call fcn.00498536
pop ecx
mov edi, eax
mov dword [ebp - 0x14d8], edi
push 0x2e
push 1
push dword [ebp - 0x14e4]
lea eax, [ebp - 0x14f0]
push eax
call fcn.00462a30
push dword [ebp - 0x14f0]
call fcn.00498536
pop ecx
mov ebx, eax
push 0x2e
push 2
push dword [ebp - 0x14e4]
lea eax, [ebp - 0x14f0]
push eax
call fcn.00462a30
push dword [ebp - 0x14f0]
call fcn.00498536
pop ecx
mov esi, eax
push 0x2e
push 3
push dword [ebp - 0x14e4]
lea eax, [ebp - 0x14f0]
push eax
call fcn.00462a30
push dword [ebp - 0x14f0]
call fcn.00498536
imul edi, edi, 0xa
add edi, ebx
mov dword [ebp - 0x1598], edi
push eax
push esi
push ebx
push dword [ebp - 0x14d8]
push str.driverVersion_d._d._d._d
lea eax, [ebp - 0x14f0]
push eax
call fcn.00402a35
add esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1548], esp
lea eax, [ebp - 0x14f0]
push eax
call fcn.00401270
mov byte [ebp - 4], 0x20
mov byte [ebp - 4], 0x1f
call fcn.0043ed25
push edi
push str.AmdRaidDriverVersion_d
lea eax, [ebp - 0x14f0]
push eax
call fcn.00402a35
add esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1558], esp
lea eax, [ebp - 0x14f0]
push eax
call fcn.00401270
mov byte [ebp - 4], 0x21
mov byte [ebp - 4], 0x1f
call fcn.0043ed25
pop ecx
mov byte [ebp - 4], 0x22
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x14f0]
add ecx, 0xfffffff0
call fcn.00401fe9
xor ebx, ebx
mov esi, dword [ebp - 0x15d8]
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebp - 0x14e0]
test ecx, ecx
je 0x455f34
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x14e0], ebx
mov byte [ebp - 4], 0x23
mov byte [ebp - 4], 0x1a
mov ecx, dword [ebp - 0x14e4]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x24
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x1518]
add ecx, 0xfffffff0
call fcn.00401fe9
jmp 0x455c56
mov dword [ebp - 4], 0x16
jmp 0x455faa
mov byte [ebp - 4], 0x27
push str.select_Name__DeviceID_from_Win32_IDEController
lea ecx, [ebp - 0x14d8]
call fcn.0041230c
mov esi, eax
mov byte [ebp - 4], 0x28
push 0x4d6000
lea ecx, [ebp - 0x14e8]
call fcn.0041230c
mov byte [ebp - 4], 0x29
mov ecx, dword [esi]
test ecx, ecx
je 0x455fe2
mov esi, dword [ecx]
jmp 0x455fe4
mov esi, ebx
mov eax, dword [eax]
test eax, eax
je 0x455fee
mov edx, dword [eax]
jmp 0x455ff0
mov edx, ebx
mov eax, dword [ebp - 0x1504]
mov ecx, dword [eax]
lea edi, [ebp - 0x1510]
push edi
push ebx
push 0x30
push esi
push edx
push eax
call dword [ecx + 0x50]
mov esi, eax
mov byte [ebp - 4], 0x28
mov ecx, dword [ebp - 0x14e8]
test ecx, ecx
mov edi, dword [ebp - 0x14d0]
je 0x456029
call fcn.00415862
mov dword [ebp - 0x14e8], ebx
mov byte [ebp - 4], 0x27
mov ecx, dword [ebp - 0x14d8]
test ecx, ecx
je 0x456042
call fcn.00415862
mov dword [ebp - 0x14d8], ebx
test esi, esi
js 0x455c3f
mov esi, ebx
mov dword [ebp - 0x15d4], esi
mov dword [ebp - 0x154c], 0x41
mov ecx, dword [ebp - 0x1510]
test ecx, ecx
je 0x456a63
mov eax, dword [ecx]
lea edx, [ebp - 0x1524]
push edx
lea edx, [ebp - 0x14e0]
push edx
push 1
push 0x2710
push ecx
call dword [eax + 0x10]
test eax, eax
js 0x456a63
cmp dword [ebp - 0x1524], 1
jne 0x456a63
cmp esi, 0x200
jge 0x456a63
inc esi
mov dword [ebp - 0x15d4], esi
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea ecx, [ebp - 0x14fc]
call fcn.004026b1
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x1508]
call fcn.004026b1
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x14e4]
call fcn.004026b1
mov byte [ebp - 4], 0x2c
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.DeviceID
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x45619e
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x45619e
push dword [ebp - 0x141c]
lea ecx, [ebp - 0x1508]
call fcn.0040b62f
push ebx
push str.PCIIDEIDECHANNEL
lea ecx, [ebp - 0x1508]
call fcn.00407548
test eax, eax
jne 0x456178
push 1
lea eax, [ebp - 0x14e8]
push eax
lea ecx, [ebp - 0x1508]
call fcn.0040353f
mov byte [ebp - 4], 0x2d
push eax
lea ecx, [ebp - 0x14e4]
call fcn.00401717
mov byte [ebp - 4], 0x2e
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x14e8]
add ecx, 0xfffffff0
call fcn.00401fe9
push 0x4d8d1c
push 0x4c6744
lea ecx, [ebp - 0x1508]
call fcn.00408d85
lea eax, [ebp - 0x1424]
push eax
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
call esi
jmp 0x4561a4
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.Name
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x45627f
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x45627f
push dword [ebp - 0x141c]
lea ecx, [ebp - 0x14fc]
call fcn.0040b62f
mov eax, dword [ebp - 0x14e4]
cmp dword [eax - 0xc], 0
je 0x456264
lea eax, [ebp - 0x14e4]
push eax
push 0x4cbc60
lea eax, [ebp - 0x1538]
push eax
call fcn.0040b65a
mov byte [ebp - 4], 0x2f
push 0x4cec0c
push eax
lea eax, [ebp - 0x1500]
push eax
call fcn.00404d80
add esp, 0x18
mov byte [ebp - 4], 0x30
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
lea ecx, [ebp - 0x14fc]
call fcn.004029a9
mov byte [ebp - 4], 0x31
mov byte [ebp - 4], 0x2f
mov ecx, dword [ebp - 0x1500]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x32
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x1538]
add ecx, 0xfffffff0
call fcn.00401fe9
lea ecx, [edi + 0x30]
lea eax, [ebp - 0x14fc]
push eax
push dword [ecx + 8]
call fcn.00474157
lea eax, [ebp - 0x1424]
push eax
call esi
mov ecx, dword [ebp - 0x14e0]
test ecx, ecx
je 0x456295
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x14e0], ebx
push ebx
push dword [ebp - 0x14fc]
lea ecx, [ebp - 0x14f4]
call fcn.00407548
cmp eax, 0xffffffff
je 0x4562f2
push str.__ATA_
lea eax, [ebp - 0x14fc]
push eax
lea eax, [ebp - 0x14f0]
push eax
call fcn.00404d80
add esp, 0xc
mov byte [ebp - 4], 0x33
mov ecx, dword [ebp - 0x150c]
or ecx, 1
mov dword [ebp - 0x150c], ecx
push ebx
push dword [eax]
lea ecx, [ebp - 0x14f4]
call fcn.00407548
test eax, eax
mov byte [ebp - 0x14d1], bl
js 0x4562f9
mov byte [ebp - 0x14d1], 1
mov dword [ebp - 4], 0x2c
mov eax, dword [ebp - 0x150c]
test al, 1
je 0x456329
and eax, 0xfffffffe
mov dword [ebp - 0x150c], eax
mov byte [ebp - 4], 0x34
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x14f0]
add ecx, 0xfffffff0
call fcn.00401fe9
cmp byte [ebp - 0x14d1], 0
je 0x4563d4
lea eax, [ebp - 0x14f4]
push eax
push dword [ebp - 0x1440]
lea ecx, [ebp - 0x1448]
call fcn.00474157
lea eax, [ebp - 0x14fc]
push eax
push 0x4d8d40
lea eax, [ebp - 0x15d0]
push eax
call fcn.0040b65a
mov byte [ebp - 4], 0x35
push str.__ATA_
push eax
lea eax, [ebp - 0x14dc]
push eax
call fcn.00404d80
add esp, 0x18
mov byte [ebp - 4], 0x36
push eax
lea ecx, [ebp - 0x14f4]
call fcn.00401717
mov byte [ebp - 4], 0x37
mov byte [ebp - 4], 0x35
mov ecx, dword [ebp - 0x14dc]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x38
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x15d0]
add ecx, 0xfffffff0
call fcn.00401fe9
mov esi, 0x4c9cd4
push esi
call fcn.00494153
pop ecx
push eax
push esi
lea ecx, [ebp - 0x14f4]
call fcn.004029a9
mov edi, ebx
mov dword [ebp - 0x1630], edi
lea ecx, [ebp - 0x14d8]
call fcn.004026b1
mov byte [ebp - 4], 0x39
push dword [ebp - 0x1508]
push str.ASSOCIATORS_OF_Win32_IDEController.DeviceID__s__WHERE_AssocClass__Win32_IDEControllerDevice
lea eax, [ebp - 0x14d8]
push eax
call fcn.00402a35
add esp, 0xc
push dword [ebp - 0x14d8]
lea ecx, [ebp - 0x152c]
call fcn.0041230c
mov esi, eax
mov byte [ebp - 4], 0x3a
push 0x4d6000
lea ecx, [ebp - 0x1528]
call fcn.0041230c
mov byte [ebp - 4], 0x3b
mov ecx, dword [esi]
test ecx, ecx
je 0x45643a
mov esi, dword [ecx]
jmp 0x45643c
mov esi, ebx
mov eax, dword [eax]
test eax, eax
je 0x456446
mov edx, dword [eax]
jmp 0x456448
mov edx, ebx
mov eax, dword [ebp - 0x1504]
mov ecx, dword [eax]
lea eax, [ebp - 0x153c]
push eax
push ebx
push 0x30
push esi
push edx
mov eax, dword [ebp - 0x1504]
push eax
call dword [ecx + 0x50]
mov byte [ebp - 4], 0x3a
mov ecx, dword [ebp - 0x1528]
test ecx, ecx
je 0x45647f
call fcn.00415862
mov dword [ebp - 0x1528], ebx
mov byte [ebp - 4], 0x39
mov ecx, dword [ebp - 0x152c]
test ecx, ecx
je 0x456498
call fcn.00415862
mov dword [ebp - 0x152c], ebx
mov ecx, dword [ebp - 0x153c]
test ecx, ecx
je 0x4569cf
mov eax, dword [ecx]
lea edx, [ebp - 0x1524]
push edx
lea edx, [ebp - 0x14e0]
push edx
push 1
push 0x2710
push ecx
call dword [eax + 0x10]
test eax, eax
js 0x4569cf
cmp dword [ebp - 0x1524], 1
jne 0x4569cf
cmp edi, 0x100
jge 0x4569cf
inc edi
mov dword [ebp - 0x1630], edi
lea eax, [ebp - 0x1434]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea ecx, [ebp - 0x1520]
call fcn.004026b1
mov byte [ebp - 4], 0x3c
lea ecx, [ebp - 0x1530]
call fcn.004026b1
mov byte [ebp - 4], 0x3d
lea ecx, [ebp - 0x1518]
call fcn.004026b1
mov byte [ebp - 4], 0x3e
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1434]
push edx
push ebx
push str.DeviceID
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x4565bd
inc eax
cmp word [ebp - 0x1434], ax
jbe 0x4565bd
push dword [ebp - 0x142c]
lea ecx, [ebp - 0x1530]
call fcn.0040b62f
push ebx
push str.PCIIDEIDECHANNEL
lea ecx, [ebp - 0x1530]
call fcn.00407548
test eax, eax
jne 0x4565ac
push 1
lea eax, [ebp - 0x1568]
push eax
lea ecx, [ebp - 0x1530]
call fcn.0040353f
mov byte [ebp - 4], 0x3f
push eax
lea ecx, [ebp - 0x1518]
call fcn.00401717
mov byte [ebp - 4], 0x40
mov byte [ebp - 4], 0x3e
mov ecx, dword [ebp - 0x1568]
add ecx, 0xfffffff0
call fcn.00401fe9
lea eax, [ebp - 0x1434]
push eax
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
call esi
jmp 0x4565c3
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1434]
push edx
push ebx
push str.Name
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x45668c
inc eax
cmp word [ebp - 0x1434], ax
jbe 0x45668c
push dword [ebp - 0x142c]
lea ecx, [ebp - 0x1520]
call fcn.0040b62f
mov eax, dword [ebp - 0x1518]
cmp dword [eax - 0xc], 0
je 0x456683
lea eax, [ebp - 0x1518]
push eax
push 0x4cbc60
lea eax, [ebp - 0x1570]
push eax
call fcn.0040b65a
mov byte [ebp - 4], 0x41
push 0x4cec0c
push eax
lea eax, [ebp - 0x156c]
push eax
call fcn.00404d80
add esp, 0x18
mov byte [ebp - 4], 0x42
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
lea ecx, [ebp - 0x1520]
call fcn.004029a9
mov byte [ebp - 4], 0x43
mov byte [ebp - 4], 0x41
mov ecx, dword [ebp - 0x156c]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x44
mov byte [ebp - 4], 0x3e
mov ecx, dword [ebp - 0x1570]
add ecx, 0xfffffff0
call fcn.00401fe9
lea eax, [ebp - 0x1434]
push eax
call esi
mov ecx, dword [ebp - 0x14e0]
test ecx, ecx
je 0x4566a2
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x14e0], ebx
push ebx
push str.NVIDIA
lea ecx, [ebp - 0x14fc]
call fcn.00407548
mov esi, dword [ebp - 0x14d0]
test eax, eax
jne 0x4566c7
mov dword [esi + 0x100], 1
push ebx
push str.Marvell
lea ecx, [ebp - 0x14fc]
call fcn.00407548
test eax, eax
jne 0x4566e6
mov dword [esi + 0x104], 1
lea eax, [ebp - 0x14fc]
push eax
push 0x4d8e28
lea eax, [ebp - 0x1560]
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0x45
mov esi, dword [ebp - 0x150c]
or esi, 2
mov dword [ebp - 0x150c], esi
push ebx
push dword [eax]
lea ecx, [ebp - 0x14f4]
call fcn.00407548
test eax, eax
jns 0x456769
lea eax, [ebp - 0x14fc]
push eax
push 0x4d8e34
lea eax, [ebp - 0x1564]
push eax
call fcn.0040b65a
add esp, 0xc
mov dword [ebp - 4], 0x46
or esi, 4
mov dword [ebp - 0x150c], esi
push ebx
push dword [eax]
lea ecx, [ebp - 0x14f4]
call fcn.00407548
test eax, eax
mov byte [ebp - 0x14d1], bl
js 0x456770
mov byte [ebp - 0x14d1], 1
mov dword [ebp - 4], 0x45
mov eax, dword [ebp - 0x150c]
test al, 4
je 0x4567a9
and eax, 0xfffffffb
mov dword [ebp - 0x150c], eax
mov dword [ebp - 4], 0x47
mov byte [ebp - 4], 0x45
mov ecx, dword [ebp - 0x1564]
add ecx, 0xfffffff0
call fcn.00401fe9
mov eax, dword [ebp - 0x150c]
mov dword [ebp - 4], 0x3e
test al, 2
je 0x4567d3
and eax, 0xfffffffd
mov dword [ebp - 0x150c], eax
mov byte [ebp - 4], 0x48
mov byte [ebp - 4], 0x3e
mov ecx, dword [ebp - 0x1560]
add ecx, 0xfffffff0
call fcn.00401fe9
cmp byte [ebp - 0x14d1], 0
je 0x456901
lea eax, [ebp - 0x14fc]
push eax
push 0x4d8e40
lea eax, [ebp - 0x157c]
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0x49
push eax
lea ecx, [ebp - 0x151c]
call fcn.00401717
mov byte [ebp - 4], 0x4a
mov byte [ebp - 4], 0x3e
mov ecx, dword [ebp - 0x157c]
add ecx, 0xfffffff0
call fcn.00401fe9
lea eax, [ebp - 0x14fc]
push eax
push 0x4d8e48
lea eax, [ebp - 0x14f8]
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0x4b
push eax
lea ecx, [ebp - 0x1574]
call fcn.00401717
mov byte [ebp - 4], 0x4c
mov byte [ebp - 4], 0x3e
mov ecx, dword [ebp - 0x14f8]
add ecx, 0xfffffff0
call fcn.00401fe9
push dword [ebp - 0x1574]
push dword [ebp - 0x151c]
lea ecx, [ebp - 0x14f4]
call fcn.00408d85
push str._r_n______
lea eax, [ebp - 0x14fc]
push eax
lea eax, [ebp - 0x1558]
push eax
call fcn.00404d80
mov byte [ebp - 4], 0x4d
lea ecx, [ebp - 0x1520]
push ecx
push eax
lea eax, [ebp - 0x155c]
push eax
call fcn.00404d2b
add esp, 0x18
mov byte [ebp - 4], 0x4e
push eax
lea ecx, [ebp - 0x151c]
call fcn.00401717
mov byte [ebp - 4], 0x4f
mov byte [ebp - 4], 0x4d
mov ecx, dword [ebp - 0x155c]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x50
mov byte [ebp - 4], 0x3e
mov ecx, dword [ebp - 0x1558]
add ecx, 0xfffffff0
call fcn.00401fe9
push dword [ebp - 0x151c]
push dword [ebp - 0x14fc]
lea ecx, [ebp - 0x14f4]
call fcn.00408d85
jmp 0x456973
lea eax, [ebp - 0x1520]
push eax
push 0x4d8e28
lea eax, [ebp - 0x14ec]
push eax
call fcn.0040b65a
mov byte [ebp - 4], 0x51
push 0x4c9cd4
push eax
lea eax, [ebp - 0x1548]
push eax
call fcn.00404d80
add esp, 0x18
mov byte [ebp - 4], 0x52
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
lea ecx, [ebp - 0x14f4]
call fcn.004029a9
mov byte [ebp - 4], 0x53
mov byte [ebp - 4], 0x51
mov ecx, dword [ebp - 0x1548]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x54
mov byte [ebp - 4], 0x3e
mov ecx, dword [ebp - 0x14ec]
add ecx, 0xfffffff0
call fcn.00401fe9
push 0x4d8e64
push 0x4d8d40
lea ecx, [ebp - 0x14f4]
call fcn.00408d85
mov byte [ebp - 4], 0x55
mov byte [ebp - 4], 0x3d
mov ecx, dword [ebp - 0x1518]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x56
mov byte [ebp - 4], 0x3c
mov ecx, dword [ebp - 0x1530]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x57
mov byte [ebp - 4], 0x39
mov ecx, dword [ebp - 0x1520]
add ecx, 0xfffffff0
call fcn.00401fe9
jmp 0x456498
push 0x4c9ccc
push 0x4d8d40
lea ecx, [ebp - 0x14f4]
call fcn.00408d85
mov ecx, dword [ebp - 0x153c]
test ecx, ecx
je 0x4569fa
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x153c], ebx
mov byte [ebp - 4], 0x58
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x14d8]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x59
mov byte [ebp - 4], 0x2b
mov ecx, dword [ebp - 0x14e4]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x5a
mov byte [ebp - 4], 0x2a
mov ecx, dword [ebp - 0x1508]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x5b
mov byte [ebp - 4], 0x27
mov ecx, dword [ebp - 0x14fc]
add ecx, 0xfffffff0
call fcn.00401fe9
mov esi, dword [ebp - 0x15d4]
mov edi, dword [ebp - 0x14d0]
jmp 0x45605c
lea eax, [ebp - 0x14f4]
push eax
push dword [ebp - 0x1440]
lea ecx, [ebp - 0x1448]
call fcn.00474157
mov ecx, dword [ebp - 0x1510]
test ecx, ecx
je 0x456a91
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x1510], ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x14ec], esp
push str.OK:Win32_IDEController
call fcn.004012a3
mov byte [ebp - 4], 0x5c
mov byte [ebp - 4], 0x27
call fcn.0043ed25
pop ecx
mov dword [ebp - 4], 0x16
jmp 0x456b01
mov byte [ebp - 4], 0x5f
push 0x4c5940
call fcn.00494153
pop ecx
push eax
push 0x4c5940
lea ecx, [ebp - 0x14f4]
call fcn.00402053
push str.select_Name__DeviceID_from_Win32_SCSIController
lea ecx, [ebp - 0x14d8]
call fcn.0041230c
mov esi, eax
mov byte [ebp - 4], 0x60
push 0x4d6000
lea ecx, [ebp - 0x14e8]
call fcn.0041230c
mov byte [ebp - 4], 0x61
mov ecx, dword [esi]
test ecx, ecx
je 0x456b55
mov esi, dword [ecx]
jmp 0x456b57
mov esi, ebx
mov eax, dword [eax]
test eax, eax
je 0x456b61
mov edx, dword [eax]
jmp 0x456b63
mov edx, ebx
mov eax, dword [ebp - 0x1504]
mov ecx, dword [eax]
lea edi, [ebp - 0x1510]
push edi
push ebx
push 0x30
push esi
push edx
push eax
call dword [ecx + 0x50]
mov esi, eax
mov byte [ebp - 4], 0x60
mov ecx, dword [ebp - 0x14e8]
test ecx, ecx
mov edi, dword [ebp - 0x14d0]
je 0x456b9c
call fcn.00415862
mov dword [ebp - 0x14e8], ebx
mov byte [ebp - 4], 0x5f
mov ecx, dword [ebp - 0x14d8]
test ecx, ecx
je 0x456bb5
call fcn.00415862
mov dword [ebp - 0x14d8], ebx
test esi, esi
jns 0x456bc2
mov byte [ebp - 4], 0x16
jmp 0x459b5c
mov esi, ebx
mov dword [ebp - 0x15e0], esi
mov ecx, dword [ebp - 0x1510]
test ecx, ecx
je 0x4575fe
mov eax, dword [ecx]
lea edx, [ebp - 0x1524]
push edx
lea edx, [ebp - 0x14e0]
push edx
push 1
push 0x2710
push ecx
call dword [eax + 0x10]
test eax, eax
js 0x4575fe
cmp dword [ebp - 0x1524], 1
jne 0x4575fe
cmp esi, 0x100
jge 0x4575fe
inc esi
mov dword [ebp - 0x15e0], esi
mov dword [ebp - 0x15dc], ebx
mov dword [ebp - 0x1594], ebx
mov dword [ebp - 0x1588], ebx
mov dword [ebp - 0x158c], ebx
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea ecx, [ebp - 0x14dc]
call fcn.004026b1
mov byte [ebp - 4], 0x62
lea ecx, [ebp - 0x1520]
call fcn.004026b1
mov byte [ebp - 4], 0x63
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.DeviceID
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x456cba
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x456cba
push dword [ebp - 0x141c]
lea ecx, [ebp - 0x1520]
call fcn.0040b62f
push 0x4d8d1c
push 0x4c6744
lea ecx, [ebp - 0x1520]
call fcn.00408d85
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.Name
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x456ee7
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x456ee7
push dword [ebp - 0x141c]
lea ecx, [ebp - 0x14dc]
call fcn.0040b62f
lea ecx, [edi + 0x44]
lea eax, [ebp - 0x14dc]
push eax
push dword [ecx + 8]
call fcn.00474157
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push ebx
push 0x4cbd18
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
jns 0x456d45
push ebx
push 0x4d8f30
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
js 0x456d4f
mov dword [ebp - 0x15dc], 1
cmp dword [edi + 0xe8], ebx
jne 0x456d93
push ebx
push str.VIA_VT6410
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
je 0x456d89
cmp dword [edi + 0xe8], ebx
jne 0x456d93
push ebx
push str.ITE_IT8212
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
jne 0x456d93
mov dword [ebp - 0x1594], 1
push ebx
push str.NVIDIA
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
jne 0x456db2
mov dword [edi + 0x100], 1
push ebx
push str.Marvell
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
jne 0x456dd1
mov dword [edi + 0x104], 1
push ebx
push str.DVDFab_Virtual_Drive
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
jne 0x456e17
mov byte [ebp - 4], 0x64
mov byte [ebp - 4], 0x62
mov ecx, dword [ebp - 0x1520]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x65
mov byte [ebp - 4], 0x5f
mov ecx, dword [ebp - 0x14dc]
add ecx, 0xfffffff0
call fcn.00401fe9
jmp 0x456bca
push ebx
mov esi, str.Silicon_Image_SiI
push esi
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
jne 0x456e93
mov dword [ebp - 0x1588], 1
lea ecx, [ebp - 0x1518]
call fcn.004026b1
mov byte [ebp - 4], 0x66
lea eax, [ebp - 0x14dc]
push eax
lea ecx, [ebp - 0x1518]
call fcn.00401717
push 0x4c5940
push esi
lea ecx, [ebp - 0x1518]
call fcn.00408d85
push dword [ebp - 0x1518]
call fcn.00498536
pop ecx
mov dword [ebp - 0x158c], eax
mov byte [ebp - 4], 0x67
mov byte [ebp - 4], 0x63
mov ecx, dword [ebp - 0x1518]
add ecx, 0xfffffff0
call fcn.00401fe9
jmp 0x456ee7
push ebx
push str.BUFFALO_IFC_PCI2ES
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
jne 0x456ebe
mov dword [ebp - 0x1588], 1
mov dword [ebp - 0x158c], 0xc28
jmp 0x456ee7
push ebx
push str.BUFFALO_IFC_PCIE2SA
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
jne 0x456ee7
mov dword [ebp - 0x1588], 1
mov dword [ebp - 0x158c], 0xc3c
mov ecx, dword [ebp - 0x14e0]
test ecx, ecx
je 0x456efd
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x14e0], ebx
push ebx
push dword [ebp - 0x14dc]
lea ecx, [ebp - 0x14f4]
call fcn.00407548
cmp eax, 0xffffffff
je 0x456f5a
push str.__SCSI_
lea eax, [ebp - 0x14dc]
push eax
lea eax, [ebp - 0x14ec]
push eax
call fcn.00404d80
add esp, 0xc
mov byte [ebp - 4], 0x68
mov ecx, dword [ebp - 0x150c]
or ecx, 8
mov dword [ebp - 0x150c], ecx
push ebx
push dword [eax]
lea ecx, [ebp - 0x14f4]
call fcn.00407548
test eax, eax
mov byte [ebp - 0x14d1], bl
js 0x456f61
mov byte [ebp - 0x14d1], 1
mov dword [ebp - 4], 0x63
mov eax, dword [ebp - 0x150c]
test al, 8
je 0x456f91
and eax, 0xfffffff7
mov dword [ebp - 0x150c], eax
mov byte [ebp - 4], 0x69
mov byte [ebp - 4], 0x63
mov ecx, dword [ebp - 0x14ec]
add ecx, 0xfffffff0
call fcn.00401fe9
cmp byte [ebp - 0x14d1], 0
je 0x45703c
lea eax, [ebp - 0x14f4]
push eax
push dword [ebp - 0x1440]
lea ecx, [ebp - 0x1448]
call fcn.00474157
lea eax, [ebp - 0x14dc]
push eax
push 0x4d8d40
lea eax, [ebp - 0x1558]
push eax
call fcn.0040b65a
mov byte [ebp - 4], 0x6a
push str.__SCSI_
push eax
lea eax, [ebp - 0x1548]
push eax
call fcn.00404d80
add esp, 0x18
mov byte [ebp - 4], 0x6b
push eax
lea ecx, [ebp - 0x14f4]
call fcn.00401717
mov byte [ebp - 4], 0x6c
mov byte [ebp - 4], 0x6a
mov ecx, dword [ebp - 0x1548]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x6d
mov byte [ebp - 4], 0x63
mov ecx, dword [ebp - 0x1558]
add ecx, 0xfffffff0
call fcn.00401fe9
mov esi, 0x4c9cd4
push esi
call fcn.00494153
pop ecx
push eax
push esi
lea ecx, [ebp - 0x14f4]
call fcn.004029a9
mov edi, ebx
mov dword [ebp - 0x1600], edi
lea ecx, [ebp - 0x14d8]
call fcn.004026b1
mov byte [ebp - 4], 0x6e
push dword [ebp - 0x1520]
push str.ASSOCIATORS_OF_Win32_SCSIController.DeviceID__s__WHERE_AssocClass__Win32_SCSIControllerDevice
lea eax, [ebp - 0x14d8]
push eax
call fcn.00402a35
add esp, 0xc
push dword [ebp - 0x14d8]
lea ecx, [ebp - 0x152c]
call fcn.0041230c
mov esi, eax
mov byte [ebp - 4], 0x6f
push 0x4d6000
lea ecx, [ebp - 0x1528]
call fcn.0041230c
mov byte [ebp - 4], 0x70
mov ecx, dword [esi]
test ecx, ecx
je 0x4570a2
mov esi, dword [ecx]
jmp 0x4570a4
mov esi, ebx
mov eax, dword [eax]
test eax, eax
je 0x4570ae
mov edx, dword [eax]
jmp 0x4570b0
mov edx, ebx
mov eax, dword [ebp - 0x1504]
mov ecx, dword [eax]
lea eax, [ebp - 0x153c]
push eax
push ebx
push 0x30
push esi
push edx
mov eax, dword [ebp - 0x1504]
push eax
call dword [ecx + 0x50]
mov byte [ebp - 4], 0x6f
mov ecx, dword [ebp - 0x1528]
test ecx, ecx
je 0x4570e7
call fcn.00415862
mov dword [ebp - 0x1528], ebx
mov byte [ebp - 4], 0x6e
mov ecx, dword [ebp - 0x152c]
test ecx, ecx
je 0x457100
call fcn.00415862
mov dword [ebp - 0x152c], ebx
mov esi, dword [ebp - 0x158c]
mov ecx, dword [ebp - 0x153c]
test ecx, ecx
je 0x457580
mov eax, dword [ecx]
lea edx, [ebp - 0x1524]
push edx
lea edx, [ebp - 0x14e0]
push edx
push 1
push 0x2710
push ecx
call dword [eax + 0x10]
test eax, eax
js 0x457580
cmp dword [ebp - 0x1524], 1
jne 0x457580
cmp edi, 0x100
jge 0x457580
inc edi
mov dword [ebp - 0x1600], edi
lea eax, [ebp - 0x1434]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea ecx, [ebp - 0x1530]
call fcn.004026b1
mov byte [ebp - 4], 0x71
lea ecx, [ebp - 0x1508]
call fcn.004026b1
mov byte [ebp - 4], 0x72
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1434]
push edx
push ebx
push str.DeviceID
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x457252
inc eax
cmp word [ebp - 0x1434], ax
jbe 0x457252
push dword [ebp - 0x142c]
lea ecx, [ebp - 0x1508]
call fcn.0040b62f
lea eax, [ebp - 0x1434]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp dword [ebp - 0x15dc], 0
je 0x4571f5
mov ecx, dword [ebp - 0x14d0]
add ecx, 0xac
lea eax, [ebp - 0x1508]
push eax
push dword [ecx + 8]
call fcn.00474157
cmp dword [ebp - 0x1594], 0
je 0x457219
mov ecx, dword [ebp - 0x14d0]
add ecx, 0x84
lea eax, [ebp - 0x1508]
push eax
push dword [ecx + 8]
call fcn.00474157
cmp dword [ebp - 0x1588], 0
je 0x457252
mov ecx, dword [ebp - 0x14d0]
add ecx, 0x98
lea eax, [ebp - 0x1508]
push eax
push dword [ecx + 8]
call fcn.00474157
mov ecx, dword [ebp - 0x14d0]
add ecx, 0xc0
push esi
push dword [ecx + 8]
call fcn.00415889
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1434]
push edx
push ebx
push str.Name
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x457299
inc eax
cmp word [ebp - 0x1434], ax
jbe 0x457299
push dword [ebp - 0x142c]
lea ecx, [ebp - 0x1530]
call fcn.0040b62f
lea eax, [ebp - 0x1434]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebp - 0x14e0]
test ecx, ecx
je 0x4572af
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x14e0], ebx
lea eax, [ebp - 0x14dc]
push eax
push 0x4d8e28
lea eax, [ebp - 0x14f8]
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0x73
mov ecx, dword [ebp - 0x150c]
or ecx, 0x10
mov dword [ebp - 0x150c], ecx
push ebx
push dword [eax]
lea ecx, [ebp - 0x14f4]
call fcn.00407548
test eax, eax
jns 0x457330
lea eax, [ebp - 0x14dc]
push eax
push 0x4d8e34
lea eax, [ebp - 0x155c]
push eax
call fcn.0040b65a
add esp, 0xc
mov dword [ebp - 4], 0x74
or dword [ebp - 0x150c], 0x20
push ebx
push dword [eax]
lea ecx, [ebp - 0x14f4]
call fcn.00407548
test eax, eax
mov byte [ebp - 0x14d1], bl
js 0x457337
mov byte [ebp - 0x14d1], 1
mov dword [ebp - 4], 0x73
mov eax, dword [ebp - 0x150c]
test al, 0x20
je 0x457370
and eax, 0xffffffdf
mov dword [ebp - 0x150c], eax
mov dword [ebp - 4], 0x75
mov byte [ebp - 4], 0x73
mov ecx, dword [ebp - 0x155c]
add ecx, 0xfffffff0
call fcn.00401fe9
mov eax, dword [ebp - 0x150c]
mov dword [ebp - 4], 0x72
test al, 0x10
je 0x45739a
and eax, 0xffffffef
mov dword [ebp - 0x150c], eax
mov byte [ebp - 4], 0x76
mov byte [ebp - 4], 0x72
mov ecx, dword [ebp - 0x14f8]
add ecx, 0xfffffff0
call fcn.00401fe9
cmp byte [ebp - 0x14d1], 0
je 0x4574c8
lea eax, [ebp - 0x14dc]
push eax
push 0x4d8e40
lea eax, [ebp - 0x157c]
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0x77
push eax
lea ecx, [ebp - 0x151c]
call fcn.00401717
mov byte [ebp - 4], 0x78
mov byte [ebp - 4], 0x72
mov ecx, dword [ebp - 0x157c]
add ecx, 0xfffffff0
call fcn.00401fe9
lea eax, [ebp - 0x14dc]
push eax
push 0x4d8e48
lea eax, [ebp - 0x1560]
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0x79
push eax
lea ecx, [ebp - 0x1574]
call fcn.00401717
mov byte [ebp - 4], 0x7a
mov byte [ebp - 4], 0x72
mov ecx, dword [ebp - 0x1560]
add ecx, 0xfffffff0
call fcn.00401fe9
push dword [ebp - 0x1574]
push dword [ebp - 0x151c]
lea ecx, [ebp - 0x14f4]
call fcn.00408d85
push str._r_n______
lea eax, [ebp - 0x14dc]
push eax
lea eax, [ebp - 0x1570]
push eax
call fcn.00404d80
mov byte [ebp - 4], 0x7b
lea ecx, [ebp - 0x1530]
push ecx
push eax
lea eax, [ebp - 0x1564]
push eax
call fcn.00404d2b
add esp, 0x18
mov byte [ebp - 4], 0x7c
push eax
lea ecx, [ebp - 0x151c]
call fcn.00401717
mov byte [ebp - 4], 0x7d
mov byte [ebp - 4], 0x7b
mov ecx, dword [ebp - 0x1564]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x7e
mov byte [ebp - 4], 0x72
mov ecx, dword [ebp - 0x1570]
add ecx, 0xfffffff0
call fcn.00401fe9
push dword [ebp - 0x151c]
push dword [ebp - 0x14dc]
lea ecx, [ebp - 0x14f4]
call fcn.00408d85
jmp 0x45753a
lea eax, [ebp - 0x1530]
push eax
push 0x4d8e28
lea eax, [ebp - 0x1568]
push eax
call fcn.0040b65a
mov byte [ebp - 4], 0x7f
push 0x4c9cd4
push eax
lea eax, [ebp - 0x156c]
push eax
call fcn.00404d80
add esp, 0x18
mov byte [ebp - 4], 0x80
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
lea ecx, [ebp - 0x14f4]
call fcn.004029a9
mov byte [ebp - 4], 0x81
mov byte [ebp - 4], 0x7f
mov ecx, dword [ebp - 0x156c]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x82
mov byte [ebp - 4], 0x72
mov ecx, dword [ebp - 0x1568]
add ecx, 0xfffffff0
call fcn.00401fe9
push 0x4d8e64
push 0x4d8d40
lea ecx, [ebp - 0x14f4]
call fcn.00408d85
mov byte [ebp - 4], 0x83
mov byte [ebp - 4], 0x71
mov ecx, dword [ebp - 0x1508]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x84
mov byte [ebp - 4], 0x6e
mov ecx, dword [ebp - 0x1530]
add ecx, 0xfffffff0
call fcn.00401fe9
jmp 0x457106
push 0x4c9ccc
push 0x4d8d40
lea ecx, [ebp - 0x14f4]
call fcn.00408d85
mov ecx, dword [ebp - 0x153c]
test ecx, ecx
je 0x4575ab
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x153c], ebx
mov byte [ebp - 4], 0x85
mov byte [ebp - 4], 0x63
mov ecx, dword [ebp - 0x14d8]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x86
mov byte [ebp - 4], 0x62
mov ecx, dword [ebp - 0x1520]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x87
mov byte [ebp - 4], 0x5f
mov ecx, dword [ebp - 0x14dc]
add ecx, 0xfffffff0
call fcn.00401fe9
mov esi, dword [ebp - 0x15e0]
mov edi, dword [ebp - 0x14d0]
jmp 0x456bca
lea eax, [ebp - 0x14f4]
push eax
push dword [ebp - 0x1440]
lea ecx, [ebp - 0x1448]
call fcn.00474157
mov ecx, dword [ebp - 0x1510]
test ecx, ecx
je 0x45762c
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x1510], ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x14ec], esp
push str.OK:Win32_SCSIController
call fcn.004012a3
mov byte [ebp - 4], 0x88
mov byte [ebp - 4], 0x5f
call fcn.0043ed25
pop ecx
mov dword [ebp - 4], 0x16
jmp 0x45769c
mov esi, ebx
cmp dword [ebp - 0x1440], 0
jle 0x4576cd
push esi
lea ecx, [ebp - 0x1448]
call fcn.00407582
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
mov ecx, dword [ebp - 0x1544]
call fcn.004029a9
inc esi
cmp esi, dword [ebp - 0x1440]
jl 0x4576a7
push ecx
mov eax, esp
mov dword [ebp - 0x14ec], esp
push dword [ebp - 0x1544]
push str.__ControllerMap___r_n
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0x8b
mov byte [ebp - 4], 0x16
call fcn.0043ed25
pop ecx
mov byte [ebp - 4], 0x8c
push str.select_Name__DeviceID_from_Win32_USBController
lea ecx, [ebp - 0x14d8]
call fcn.0041230c
mov esi, eax
mov byte [ebp - 4], 0x8d
push 0x4d6000
lea ecx, [ebp - 0x14e8]
call fcn.0041230c
mov byte [ebp - 4], 0x8e
mov ecx, dword [esi]
test ecx, ecx
je 0x457730
mov esi, dword [ecx]
jmp 0x457732
mov esi, ebx
mov eax, dword [eax]
test eax, eax
je 0x45773c
mov edx, dword [eax]
jmp 0x45773e
mov edx, ebx
mov eax, dword [ebp - 0x1504]
mov ecx, dword [eax]
lea edi, [ebp - 0x1510]
push edi
push ebx
push 0x30
push esi
push edx
push eax
call dword [ecx + 0x50]
mov esi, eax
mov byte [ebp - 4], 0x8d
mov ecx, dword [ebp - 0x14e8]
test ecx, ecx
mov edi, dword [ebp - 0x14d0]
je 0x457777
call fcn.00415862
mov dword [ebp - 0x14e8], ebx
mov byte [ebp - 4], 0x8c
mov ecx, dword [ebp - 0x14d8]
test ecx, ecx
je 0x457790
call fcn.00415862
mov dword [ebp - 0x14d8], ebx
test esi, esi
js 0x456bb9
mov ecx, dword [ebp - 0x1510]
test ecx, ecx
je 0x457c6b
mov eax, dword [ecx]
lea edx, [ebp - 0x1524]
push edx
lea edx, [ebp - 0x14e0]
push edx
push 1
push 0x2710
push ecx
call dword [eax + 0x10]
test eax, eax
js 0x457c55
cmp dword [ebp - 0x1524], 1
jne 0x457c55
lea eax, [ebp - 0x145c]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea ecx, [ebp - 0x14e4]
call fcn.004026b1
mov byte [ebp - 4], 0x8f
lea ecx, [ebp - 0x155c]
call fcn.004026b1
mov byte [ebp - 4], 0x90
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x145c]
push edx
push ebx
push str.DeviceID
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x45785d
inc eax
cmp word [ebp - 0x145c], ax
jbe 0x45785d
push dword [ebp - 0x1454]
lea ecx, [ebp - 0x14e4]
call fcn.0040b62f
push 0x4d8d1c
push 0x4c6744
lea ecx, [ebp - 0x14e4]
call fcn.00408d85
lea eax, [ebp - 0x145c]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebp - 0x14e0]
test ecx, ecx
je 0x457873
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x14e0], ebx
lea ecx, [ebp - 0x14d8]
call fcn.004026b1
mov byte [ebp - 4], 0x91
lea ecx, [ebp - 0x1558]
call fcn.004026b1
mov byte [ebp - 4], 0x92
push dword [ebp - 0x14e4]
push str.ASSOCIATORS_OF_Win32_USBController.DeviceID__s__WHERE_AssocClass__Win32_USBControllerDevice
lea eax, [ebp - 0x14d8]
push eax
call fcn.00402a35
add esp, 0xc
push dword [ebp - 0x14d8]
lea ecx, [ebp - 0x152c]
call fcn.0041230c
mov esi, eax
mov byte [ebp - 4], 0x93
push 0x4d6000
lea ecx, [ebp - 0x1528]
call fcn.0041230c
mov byte [ebp - 4], 0x94
mov ecx, dword [esi]
test ecx, ecx
je 0x4578e0
mov esi, dword [ecx]
jmp 0x4578e2
mov esi, ebx
mov eax, dword [eax]
test eax, eax
je 0x4578ec
mov edx, dword [eax]
jmp 0x4578ee
mov edx, ebx
mov eax, dword [ebp - 0x1504]
mov ecx, dword [eax]
lea edi, [ebp - 0x153c]
push edi
push ebx
push 0x30
push esi
push edx
push eax
call dword [ecx + 0x50]
mov byte [ebp - 4], 0x93
mov ecx, dword [ebp - 0x1528]
test ecx, ecx
mov edi, dword [ebp - 0x14d0]
je 0x457925
call fcn.00415862
mov dword [ebp - 0x1528], ebx
mov byte [ebp - 4], 0x92
mov ecx, dword [ebp - 0x152c]
test ecx, ecx
je 0x45793e
call fcn.00415862
mov dword [ebp - 0x152c], ebx
mov ecx, dword [ebp - 0x153c]
test ecx, ecx
je 0x457bf8
mov eax, dword [ecx]
lea edx, [ebp - 0x1524]
push edx
lea edx, [ebp - 0x14e0]
push edx
push 1
push 0x2710
push ecx
call dword [eax + 0x10]
test eax, eax
js 0x457be2
cmp dword [ebp - 0x1524], 1
jne 0x457be2
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.DeviceID
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x457bc3
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x457bc3
push dword [ebp - 0x141c]
lea ecx, [ebp - 0x14f4]
call fcn.0040b62f
lea eax, [ebp - 0x1424]
push eax
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
call esi
push ebx
push str.USBSTOR
lea ecx, [ebp - 0x14f4]
call fcn.00407548
test eax, eax
js 0x457bb1
lea ecx, [ebp - 0x1430]
call fcn.0044431f
mov byte [ebp - 4], 0x95
mov dword [ebp - 0x1428], ebx
mov dword [ebp - 0x142c], ebx
mov dword [ebp - 0x1544], ebx
lea ecx, [ebp - 0x1500]
call fcn.004026b1
mov byte [ebp - 4], 0x96
lea eax, [ebp - 0x1544]
push eax
push 0x4d92a0
lea eax, [ebp - 0x14ec]
push eax
lea ecx, [ebp - 0x14e4]
call fcn.0042a7a4
mov byte [ebp - 4], 0x97
push eax
lea ecx, [ebp - 0x1500]
call fcn.00401717
mov byte [ebp - 4], 0x98
mov byte [ebp - 4], 0x96
mov ecx, dword [ebp - 0x14ec]
add ecx, 0xfffffff0
call fcn.00401fe9
push 0x4c5940
lea eax, [ebp - 0x1500]
push eax
call fcn.00444f04
pop ecx
pop ecx
test al, al
je 0x457b22
push 0x4c5940
push str.VID_
lea ecx, [ebp - 0x1500]
call fcn.00408d85
test eax, eax
jle 0x457ab1
push 0x10
push ebx
push dword [ebp - 0x1500]
call fcn.0049a119
mov dword [ebp - 0x142c], eax
jmp 0x457ade
push 0x4c5940
push str.PID_
lea ecx, [ebp - 0x1500]
call fcn.00408d85
test eax, eax
jle 0x457ae1
push 0x10
push ebx
push dword [ebp - 0x1500]
call fcn.0049a119
mov dword [ebp - 0x1428], eax
add esp, 0xc
lea eax, [ebp - 0x1544]
push eax
push 0x4d92a0
lea eax, [ebp - 0x1548]
push eax
lea ecx, [ebp - 0x14e4]
call fcn.0042a7a4
mov byte [ebp - 4], 0x99
push eax
lea ecx, [ebp - 0x1500]
call fcn.00401717
mov byte [ebp - 4], 0x9a
mov byte [ebp - 4], 0x96
mov ecx, dword [ebp - 0x1548]
jmp 0x457a5f
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.Name
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x457b65
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x457b65
push dword [ebp - 0x141c]
lea ecx, [ebp - 0x1430]
call fcn.0040b62f
lea eax, [ebp - 0x1424]
push eax
call esi
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x14f8], esp
lea eax, [ebp - 0x1430]
push eax
call fcn.004442e7
mov byte [ebp - 4], 0x9b
lea ecx, [edi + 0x1c]
mov byte [ebp - 4], 0x96
call fcn.004454d6
mov byte [ebp - 4], 0x9c
mov byte [ebp - 4], 0x95
mov ecx, dword [ebp - 0x1500]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x92
lea ecx, [ebp - 0x1430]
call fcn.004447f4
lea eax, [ebp - 0x14f4]
push eax
lea ecx, [ebp - 0x14e4]
call fcn.00401717
mov ecx, dword [ebp - 0x14e0]
test ecx, ecx
je 0x45793e
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x14e0], ebx
jmp 0x45793e
mov ecx, dword [ebp - 0x153c]
test ecx, ecx
je 0x457bf8
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x153c], ebx
mov byte [ebp - 4], 0x9d
mov byte [ebp - 4], 0x91
mov ecx, dword [ebp - 0x1558]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x9e
mov byte [ebp - 4], 0x90
mov ecx, dword [ebp - 0x14d8]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0x9f
mov byte [ebp - 4], 0x8f
mov ecx, dword [ebp - 0x155c]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0xa0
mov byte [ebp - 4], 0x8c
mov ecx, dword [ebp - 0x14e4]
add ecx, 0xfffffff0
call fcn.00401fe9
jmp 0x457798
mov ecx, dword [ebp - 0x1510]
test ecx, ecx
je 0x457c6b
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x1510], ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x14ec], esp
push str.OK:Win32_USBController
call fcn.004012a3
mov byte [ebp - 4], 0xa1
mov byte [ebp - 4], 0x8c
call fcn.0043ed25
mov esi, ebx
mov dword [ebp - 0x1608], esi
pop ecx
cmp esi, dword [edi + 0x24]
jge 0x457cfb
push esi
lea ecx, [edi + 0x1c]
call fcn.0044eb50
mov dword [ebp - 0x14ec], eax
push esi
lea ecx, [edi + 0x1c]
call fcn.0044eb50
mov ecx, dword [ebp - 0x14ec]
push dword [ecx + 8]
push dword [eax + 4]
push str.VID_04Xh__PID_04Xh
lea eax, [ebp - 0x14f4]
push eax
call fcn.00402a35
add esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1548], esp
lea eax, [ebp - 0x14f4]
push eax
call fcn.00401270
mov byte [ebp - 4], 0xa2
mov byte [ebp - 4], 0x8c
call fcn.0043ed25
inc esi
mov edi, dword [ebp - 0x14d0]
jmp 0x457c8d
mov dword [ebp - 4], 0x16
jmp 0x457d4a
push str.MAX_SEARCH_PHYSICAL_DRIVE
lea eax, [ebp - 0x14f4]
push eax
call fcn.00402a35
pop ecx
pop ecx
mov esi, ebx
mov dword [ebp - 0x14ec], ebx
push 6
pop ecx
xor eax, eax
lea edi, [ebp - 0x1464]
rep stosd dword es:[edi], eax
push esi
mov ecx, dword [ebp - 0x14d0]
call fcn.0045259d
mov edi, eax
test edi, edi
je 0x457e23
cmp edi, 0xffffffff
je 0x457e23
push ebx
lea eax, [ebp - 0x14ec]
push eax
push 0x18
lea eax, [ebp - 0x1464]
push eax
push ebx
push ebx
push 0x70000
push edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp dword [ebp - 0x145c], 0xc
jne 0x457e1c
lea ecx, [ebp - 0x14d8]
call fcn.004026b1
mov byte [ebp - 4], 0xa5
push esi
push str.WakeUp__d_
lea eax, [ebp - 0x14d8]
push eax
call fcn.00402a35
pop ecx
pop ecx
mov ecx, esp
mov dword [ebp - 0x1548], esp
lea eax, [ebp - 0x14d8]
push eax
call fcn.00401270
mov byte [ebp - 4], 0xa6
mov byte [ebp - 4], 0xa5
call fcn.0043ed25
pop ecx
push esi
mov ecx, dword [ebp - 0x14d0]
call fcn.0045f52a
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x14d8]
add ecx, 0xfffffff0
call fcn.00401fe9
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc esi
cmp esi, 0x38
jl 0x457d5f
push ecx
mov ecx, esp
mov dword [ebp - 0x14ec], esp
push str.CSMI
call fcn.004012a3
mov byte [ebp - 4], 0xa8
mov byte [ebp - 4], 0x16
call fcn.0043ed25
pop ecx
mov edi, dword [ebp - 0x14d0]
cmp dword [edi + 0x144], ebx
je 0x457ec4
cmp dword [ebp - 0x1598], 0x5d
jl 0x457ec4
push ecx
mov ecx, esp
mov dword [ebp - 0x14ec], esp
push str.AddDiskAMD_RC2
call fcn.004012a3
mov byte [ebp - 4], 0xa9
mov byte [ebp - 4], 0x16
call fcn.0043ed25
pop ecx
mov ecx, edi
call fcn.0044804f
test eax, eax
jne 0x457efe
push ecx
mov ecx, esp
mov dword [ebp - 0x14ec], esp
push str.AMD_RAID__CSMI_
call fcn.004012a3
mov byte [ebp - 4], 0xaa
mov byte [ebp - 4], 0x16
call fcn.0043ed25
pop ecx
mov esi, ebx
push esi
mov ecx, edi
call fcn.0044845f
inc esi
cmp esi, 0x10
jl 0x457eb4
jmp 0x457efe
cmp dword [ebp - 0x1598], 0x5c
je 0x457efe
push ecx
mov ecx, esp
mov dword [ebp - 0x14ec], esp
push 0x4d93e4
call fcn.004012a3
mov byte [ebp - 4], 0xab
mov byte [ebp - 4], 0x16
call fcn.0043ed25
pop ecx
mov esi, ebx
push esi
mov ecx, edi
call fcn.0044845f
inc esi
cmp esi, 0x10
jl 0x457ef0
cmp dword [edi + 0x138], ebx
je 0x457f37
push ecx
mov ecx, esp
mov dword [ebp - 0x14ec], esp
push 0x4cbe20
call fcn.004012a3
mov byte [ebp - 4], 0xac
mov byte [ebp - 4], 0x16
call fcn.0043ed25
pop ecx
mov esi, ebx
push esi
mov ecx, edi
call fcn.00448e9e
inc esi
cmp esi, 0x10
jl 0x457f29
cmp dword [edi + 0x13c], ebx
je 0x457fd1
push 0x1000
push ebx
lea eax, [ebp - 0x1014]
push eax
call fcn.00490cd0
add esp, 0xc
mov dword [ebp - 0x14e8], ebx
mov edi, ebx
mov esi, ebx
lea eax, [ebp - 0x14e8]
push eax
lea eax, [ebp - 0x1014]
push eax
push esi
push edi
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x14d0]
call fcn.0044d584
test eax, eax
je 0x457fbf
push ecx
mov ecx, esp
mov dword [ebp - 0x14ec], esp
push 0x4c5940
call fcn.004012a3
mov byte [ebp - 4], 0xad
lea eax, [ebp - 0x14e8]
push eax
lea eax, [ebp - 0x1014]
push eax
push 0x16
push ebx
push ebx
push esi
push edi
push 0xffffffffffffffff
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x14d0]
call fcn.00449098
inc esi
cmp esi, 8
jl 0x457f62
inc edi
cmp edi, 0x10
jl 0x457f60
mov edi, dword [ebp - 0x14d0]
cmp dword [edi + 0x148], ebx
je 0x45806e
push ecx
mov ecx, esp
mov dword [ebp - 0x14ec], esp
push str.JMS56X
call fcn.004012a3
mov byte [ebp - 4], 0xae
mov byte [ebp - 4], 0x16
call fcn.0043ed25
lea eax, [edi + 0x158]
push eax
call fcn.0045ae68
pop ecx
pop ecx
test eax, eax
je 0x45806e
call dword [0x505730]
mov edi, eax
push edi
push str.ControllerCount:__d
lea eax, [ebp - 0x14f4]
push eax
call fcn.00402a35
pop ecx
pop ecx
mov ecx, esp
mov dword [ebp - 0x14ec], esp
lea eax, [ebp - 0x14f4]
push eax
call fcn.00401270
mov byte [ebp - 4], 0xaf
mov byte [ebp - 4], 0x16
call fcn.0043ed25
pop ecx
mov esi, ebx
test edi, edi
jle 0x458068
mov ebx, dword [ebp - 0x14d0]
push esi
mov ecx, ebx
call fcn.00448dd0
inc esi
cmp esi, edi
jl 0x458059
xor ebx, ebx
mov edi, dword [ebp - 0x14d0]
cmp dword [edi + 0x14c], ebx
je 0x458105
push ecx
mov ecx, esp
mov dword [ebp - 0x14ec], esp
push str.JMB39X
call fcn.004012a3
mov byte [ebp - 4], 0xb0
mov byte [ebp - 4], 0x16
call fcn.0043ed25
lea eax, [edi + 0x15c]
push eax
call fcn.0045ace6
pop ecx
pop ecx
test eax, eax
je 0x458105
call dword [0x505740]
mov edi, eax
push edi
push str.ControllerCount:__d
lea eax, [ebp - 0x14f4]
push eax
call fcn.00402a35
pop ecx
pop ecx
mov ecx, esp
mov dword [ebp - 0x14ec], esp
lea eax, [ebp - 0x14f4]
push eax
call fcn.00401270
mov byte [ebp - 4], 0xb1
mov byte [ebp - 4], 0x16
call fcn.0043ed25
pop ecx
mov esi, ebx
test edi, edi
jle 0x458105
mov ebx, dword [ebp - 0x14d0]
push esi
mov ecx, ebx
call fcn.00448d02
inc esi
cmp esi, edi
jl 0x4580f6
xor ebx, ebx
mov byte [ebp - 4], 0xb2
push ecx
mov ecx, esp
mov dword [ebp - 0x14ec], esp
push str.DO:SELECT__FROM_Win32_DiskDrive
call fcn.004012a3
mov byte [ebp - 4], 0xb3
mov byte [ebp - 4], 0xb2
call fcn.0043ed25
mov dword [esp], str.SELECT__FROM_Win32_DiskDrive
lea ecx, [ebp - 0x14f0]
call fcn.0041230c
mov esi, eax
mov byte [ebp - 4], 0xb4
push 0x4d6000
lea ecx, [ebp - 0x1544]
call fcn.0041230c
mov byte [ebp - 4], 0xb5
mov ecx, dword [esi]
test ecx, ecx
je 0x45815f
mov esi, dword [ecx]
jmp 0x458161
mov esi, ebx
mov eax, dword [eax]
test eax, eax
je 0x45816b
mov edx, dword [eax]
jmp 0x45816d
mov edx, ebx
mov eax, dword [ebp - 0x1504]
mov ecx, dword [eax]
lea edi, [ebp - 0x1510]
push edi
push ebx
push 0x30
push esi
push edx
push eax
call dword [ecx + 0x50]
mov esi, eax
mov byte [ebp - 4], 0xb4
mov ecx, dword [ebp - 0x1544]
test ecx, ecx
je 0x4581a0
call fcn.00415862
mov dword [ebp - 0x1544], ebx
mov byte [ebp - 4], 0xb2
mov ecx, dword [ebp - 0x14f0]
test ecx, ecx
je 0x4581b9
call fcn.00415862
mov dword [ebp - 0x14f0], ebx
test esi, esi
js 0x456bb9
push ecx
mov ecx, esp
mov dword [ebp - 0x14ec], esp
push str.OK1:SELECT__FROM_Win32_DiskDrive
call fcn.004012a3
mov byte [ebp - 4], 0xb6
mov byte [ebp - 4], 0xb2
call fcn.0043ed25
pop ecx
mov ecx, dword [ebp - 0x1510]
test ecx, ecx
jne 0x458212
push ecx
mov ecx, esp
mov dword [ebp - 0x14ec], esp
push str.pEnumCOMDevs__NULL
call fcn.004012a3
mov byte [ebp - 4], 0xb7
mov byte [ebp - 4], 0xb2
call fcn.0043ed25
pop ecx
jmp 0x456bb9
mov eax, dword [ecx]
lea edx, [ebp - 0x1524]
push edx
lea edx, [ebp - 0x14e0]
push edx
push 1
push 0x2710
push ecx
call dword [eax + 0x10]
test eax, eax
js 0x45825b
push ecx
mov ecx, esp
cmp dword [ebp - 0x1524], 1
je 0x45829e
mov dword [ebp - 0x14ec], esp
push str.uReturned___1
call fcn.004012a3
mov byte [ebp - 4], 0xb8
mov byte [ebp - 4], 0xb2
call fcn.0043ed25
pop ecx
mov ecx, dword [ebp - 0x1510]
test ecx, ecx
je 0x458271
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x1510], ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x1540], esp
push str.OK2:SELECT__FROM_Win32_DiskDrive
call fcn.004012a3
mov byte [ebp - 4], 0xf8
mov byte [ebp - 4], 0xb2
call fcn.0043ed25
pop ecx
mov dword [ebp - 4], 0x16
jmp 0x459b5c
mov dword [ebp - 0x15d0], esp
push str.while_pEnumCOMDevs_...
call fcn.004012a3
mov byte [ebp - 4], 0xb9
mov byte [ebp - 4], 0xb2
call fcn.0043ed25
pop ecx
lea ecx, [ebp - 0x1568]
call fcn.004026b1
mov byte [ebp - 4], 0xba
lea ecx, [ebp - 0x156c]
call fcn.004026b1
mov byte [ebp - 4], 0xbb
lea ecx, [ebp - 0x14dc]
call fcn.004026b1
mov byte [ebp - 4], 0xbc
lea ecx, [ebp - 0x1508]
call fcn.004026b1
mov byte [ebp - 4], 0xbd
lea ecx, [ebp - 0x1518]
call fcn.004026b1
mov byte [ebp - 4], 0xbe
lea ecx, [ebp - 0x14e4]
call fcn.004026b1
mov byte [ebp - 4], 0xbf
lea ecx, [ebp - 0x1520]
call fcn.004026b1
mov byte [ebp - 4], 0xc0
lea ecx, [ebp - 0x14fc]
call fcn.004026b1
mov byte [ebp - 4], 0xc1
lea ecx, [ebp - 0x14e8]
call fcn.004026b1
mov byte [ebp - 4], 0xc2
or eax, 0xffffffff
mov dword [ebp - 0x1578], eax
mov dword [ebp - 0x15a8], eax
mov dword [ebp - 0x15a4], eax
mov dword [ebp - 0x15ac], eax
mov dword [ebp - 0x1554], ebx
mov edi, ebx
mov dword [ebp - 0x15e4], edi
mov esi, ebx
mov dword [ebp - 0x1584], esi
mov dword [ebp - 0x159c], ebx
mov dword [ebp - 0x15e8], ebx
mov byte [ebp - 4], 0xc3
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.Size
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x458404
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x458404
push dword [ebp - 0x141c]
lea ecx, [ebp - 0x1518]
call fcn.0040b62f
push ecx
mov eax, esp
mov dword [ebp - 0x167c], esp
lea ecx, [ebp - 0x1518]
push ecx
push str.diskSize:
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0xc4
mov byte [ebp - 4], 0xc3
call fcn.0043ed25
pop ecx
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.DeviceID
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x45854a
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x45854a
push dword [ebp - 0x141c]
lea ecx, [ebp - 0x1508]
call fcn.0040b62f
push ecx
mov eax, esp
mov dword [ebp - 0x1680], esp
lea ecx, [ebp - 0x1508]
push ecx
push str.deviceId:
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0xc5
mov byte [ebp - 4], 0xc3
call fcn.0043ed25
mov dword [esp], 0x4d8d1c
push 0x4c6744
lea ecx, [ebp - 0x1508]
call fcn.00408d85
push 2
lea eax, [ebp - 0x14ec]
push eax
lea ecx, [ebp - 0x1508]
call fcn.0040353f
mov byte [ebp - 4], 0xc6
push dword [eax]
call fcn.00498536
pop ecx
cmp eax, 0xa
setge byte [ebp - 0x14d1]
mov byte [ebp - 4], 0xc7
mov byte [ebp - 4], 0xc3
mov ecx, dword [ebp - 0x14ec]
add ecx, 0xfffffff0
call fcn.00401fe9
lea ecx, [ebp - 0x1508]
cmp byte [ebp - 0x14d1], 0
je 0x458507
push 2
lea eax, [ebp - 0x1548]
push eax
call fcn.0040353f
mov byte [ebp - 4], 0xc8
push dword [eax]
call fcn.00498536
pop ecx
mov dword [ebp - 0x1578], eax
mov byte [ebp - 4], 0xc9
mov byte [ebp - 4], 0xc3
mov ecx, dword [ebp - 0x1548]
jmp 0x458535
push 1
lea eax, [ebp - 0x1558]
push eax
call fcn.0040353f
mov byte [ebp - 4], 0xca
push dword [eax]
call fcn.00498536
pop ecx
mov dword [ebp - 0x1578], eax
mov byte [ebp - 4], 0xcb
mov byte [ebp - 4], 0xc3
mov ecx, dword [ebp - 0x1558]
add ecx, 0xfffffff0
call fcn.00401fe9
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.Model
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x4585bd
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x4585bd
push dword [ebp - 0x141c]
lea ecx, [ebp - 0x14dc]
call fcn.0040b62f
push ecx
mov eax, esp
mov dword [ebp - 0x1648], esp
lea ecx, [ebp - 0x14dc]
push ecx
push str.model:
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0xcc
mov byte [ebp - 4], 0xc3
call fcn.0043ed25
pop ecx
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.FirmwareRevision
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x458604
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x458604
push dword [ebp - 0x141c]
lea ecx, [ebp - 0x14e8]
call fcn.0040b62f
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.SCSIPort
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x458646
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x458646
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x15a8], eax
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.SCSITargetId
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x458688
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x458688
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x15a4], eax
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.SCSIBus
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x4586ca
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x4586ca
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x15ac], eax
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.MediaType
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x4587da
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x4587da
push dword [ebp - 0x141c]
lea ecx, [ebp - 0x14e4]
call fcn.0040b62f
push ecx
mov eax, esp
mov dword [ebp - 0x164c], esp
lea ecx, [ebp - 0x14e4]
push ecx
push str.mediaType:
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0xcd
mov byte [ebp - 4], 0xc3
call fcn.0043ed25
pop ecx
lea ecx, [ebp - 0x14e4]
call fcn.0045d0b0
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push ebx
push str.SanDisk_Extreme
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
je 0x45877a
push ebx
push str.Kingston_DT_Ultimate
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
jne 0x45878b
xor eax, eax
inc eax
mov dword [ebp - 0x1554], eax
mov dword [ebp - 0x1580], eax
jmp 0x4587da
mov eax, dword [ebp - 0x14d0]
cmp dword [eax + 0x124], ebx
je 0x4587ac
xor ecx, ecx
inc ecx
mov eax, ecx
mov dword [ebp - 0x1554], eax
mov dword [ebp - 0x1580], ecx
jmp 0x4587da
push ebx
push str.removable
lea ecx, [ebp - 0x14e4]
call fcn.00407548
test eax, eax
jns 0x4587d2
mov eax, dword [ebp - 0x14e4]
cmp dword [eax - 0xc], 0
je 0x4587d2
xor eax, eax
inc eax
jmp 0x4587d4
mov eax, ebx
mov dword [ebp - 0x1554], eax
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.InterfaceType
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x45884d
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x45884d
push dword [ebp - 0x141c]
lea ecx, [ebp - 0x1520]
call fcn.0040b62f
push ecx
mov eax, esp
mov dword [ebp - 0x1650], esp
lea ecx, [ebp - 0x1520]
push ecx
push str.interfaceTypeWmi:
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0xce
mov byte [ebp - 4], 0xc3
call fcn.0043ed25
pop ecx
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x14e0]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [ebp - 0x1424]
push edx
push ebx
push str.PNPDeviceID
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x458aaf
inc eax
cmp word [ebp - 0x1424], ax
jbe 0x458aaf
push dword [ebp - 0x141c]
lea ecx, [ebp - 0x14fc]
call fcn.0040b62f
push ecx
mov eax, esp
mov dword [ebp - 0x1654], esp
lea ecx, [ebp - 0x14fc]
push ecx
push str.pnpDeviceId:
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0xcf
mov byte [ebp - 4], 0xc3
call fcn.0043ed25
pop ecx
lea ecx, [ebp - 0x14fc]
call fcn.004075ba
lea eax, [ebp - 0x1424]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov esi, ebx
mov dword [ebp - 0x160c], esi
mov eax, dword [ebp - 0x14d0]
cmp esi, dword [eax + 0xb4]
jge 0x458940
push ebx
push dword [ebp - 0x14fc]
push esi
lea ecx, [eax + 0xac]
call fcn.00407582
mov ecx, eax
call fcn.00407548
test eax, eax
js 0x45893d
push ecx
mov eax, esp
mov dword [ebp - 0x1658], esp
lea ecx, [ebp - 0x14fc]
push ecx
push str.UASPController:
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0xd0
mov byte [ebp - 4], 0xc3
call fcn.0043ed25
pop ecx
mov dword [ebp - 0x1584], 1
inc esi
jmp 0x4588d5
mov esi, ebx
mov dword [ebp - 0x1610], esi
cmp esi, dword [eax + 0xa0]
jge 0x4589bd
push ebx
push dword [ebp - 0x14fc]
push esi
lea ecx, [eax + 0x98]
call fcn.00407582
mov ecx, eax
call fcn.00407548
test eax, eax
js 0x4589b4
push ecx
mov eax, esp
mov dword [ebp - 0x165c], esp
lea ecx, [ebp - 0x14fc]
push ecx
push str.SiliconImageController:
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0xd1
mov byte [ebp - 4], 0xc3
call fcn.0043ed25
pop ecx
push esi
mov ecx, dword [ebp - 0x14d0]
add ecx, 0xc0
call fcn.00407582
mov eax, dword [eax]
mov dword [ebp - 0x15e8], eax
inc esi
mov eax, dword [ebp - 0x14d0]
jmp 0x458942
mov esi, ebx
mov dword [ebp - 0x1614], esi
cmp esi, dword [eax + 0x78]
jge 0x458a3d
push ebx
push dword [ebp - 0x14fc]
push esi
lea ecx, [eax + 0x70]
call fcn.00407582
mov ecx, eax
call fcn.00407548
test eax, eax
js 0x458a34
push ecx
mov eax, esp
mov dword [ebp - 0x1684], esp
lea ecx, [ebp - 0x14fc]
push ecx
push str.BlackIdeController:
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0xd2
mov byte [ebp - 4], 0xc3
call fcn.0043ed25
pop ecx
mov ecx, dword [ebp - 0x14d0]
add ecx, 0xd4
push dword [ebp - 0x1578]
push dword [ecx + 8]
call fcn.00415889
xor edi, edi
inc edi
mov dword [ebp - 0x15e4], edi
inc esi
mov eax, dword [ebp - 0x14d0]
jmp 0x4589bf
mov esi, ebx
mov dword [ebp - 0x1618], esi
cmp esi, dword [eax + 0x8c]
jge 0x458aa9
push ebx
push dword [ebp - 0x14fc]
push esi
lea ecx, [eax + 0x84]
call fcn.00407582
mov ecx, eax
call fcn.00407548
test eax, eax
js 0x458aa0
push ecx
mov eax, esp
mov dword [ebp - 0x1660], esp
lea ecx, [ebp - 0x14fc]
push ecx
push str.BlackScsiController:
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0xd3
mov byte [ebp - 4], 0xc3
call fcn.0043ed25
pop ecx
xor edi, edi
inc edi
mov dword [ebp - 0x15e4], edi
inc esi
mov eax, dword [ebp - 0x14d0]
jmp 0x458a3f
mov esi, dword [ebp - 0x1584]
mov ecx, dword [ebp - 0x14e0]
test ecx, ecx
je 0x458ac5
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x14e0], ebx
test edi, edi
jne 0x459a35
lea ecx, [ebp - 0x1538]
call fcn.004026b1
mov byte [ebp - 4], 0xd4
push dword [ebp - 0x14e4]
push dword [ebp - 0x15a4]
push dword [ebp - 0x15a8]
push dword [ebp - 0x1578]
push str.DO:GetDiskInfo_pd_d__sp_d__st_d__mt_s
lea eax, [ebp - 0x1538]
push eax
call fcn.00402a35
add esp, 0x14
mov ecx, esp
mov dword [ebp - 0x1664], esp
lea eax, [ebp - 0x1538]
push eax
call fcn.00401270
mov byte [ebp - 4], 0xd5
mov byte [ebp - 4], 0xd4
call fcn.0043ed25
pop ecx
mov edi, ebx
mov dword [ebp - 0x14f0], edi
mov dword [ebp - 0x15a0], ebx
mov eax, ebx
mov dword [ebp - 0x15b0], eax
push ebx
push str.1394
lea ecx, [ebp - 0x1520]
call fcn.00407548
test eax, eax
jns 0x458ca0
push ebx
push str._IEEE_1394_SBP2_Device
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
jg 0x458ca0
push ebx
push 0x4cbd18
lea ecx, [ebp - 0x1520]
call fcn.00407548
test eax, eax
jns 0x458c40
push ebx
push str._USB_Device
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
jg 0x458c40
test esi, esi
jne 0x458c40
push ebx
push 0x4d98c8
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
jns 0x458c0e
push ebx
push str.NVME
lea ecx, [ebp - 0x14fc]
call fcn.00407548
test eax, eax
jns 0x458c0e
push ebx
push str.Optane
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
jns 0x458c0e
push ebx
push str.OPTANE
lea ecx, [ebp - 0x14fc]
call fcn.00407548
test eax, eax
jns 0x458c0e
xor eax, eax
inc eax
mov dword [ebp - 0x1554], eax
jmp 0x458cca
push ecx
mov ecx, esp
mov dword [ebp - 0x1668], esp
push str.INTERFACE_TYPE_NVME
call fcn.004012a3
mov byte [ebp - 4], 0xd8
mov byte [ebp - 4], 0xd4
call fcn.0043ed25
pop ecx
push 6
mov dword [ebp - 0x159c], 1
jmp 0x458cc3
push ecx
mov ecx, esp
mov dword [ebp - 0x166c], esp
push str.INTERFACE_TYPE_USB
call fcn.004012a3
mov byte [ebp - 4], 0xd7
mov byte [ebp - 4], 0xd4
call fcn.0043ed25
pop ecx
push 3
pop edi
mov dword [ebp - 0x14f0], edi
push ebx
push 0x4d98c8
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
jns 0x458c94
push ebx
push str.NVME
lea ecx, [ebp - 0x14fc]
call fcn.00407548
test eax, eax
js 0x458cca
mov dword [ebp - 0x159c], 1
jmp 0x458cca
push ecx
mov ecx, esp
mov dword [ebp - 0x1670], esp
push str.INTERFACE_TYPE_IEEE1394
call fcn.004012a3
mov byte [ebp - 4], 0xd6
mov byte [ebp - 4], 0xd4
call fcn.0043ed25
pop ecx
push 4
pop edi
mov dword [ebp - 0x14f0], edi
push edi
push str.InterfaceTypeId_d
lea eax, [ebp - 0x1538]
push eax
call fcn.00402a35
pop ecx
pop ecx
mov ecx, esp
mov dword [ebp - 0x1674], esp
lea eax, [ebp - 0x1538]
push eax
call fcn.00401270
mov byte [ebp - 4], 0xd9
mov byte [ebp - 4], 0xd4
call fcn.0043ed25
pop ecx
mov esi, ebx
mov dword [ebp - 0x161c], esi
mov edi, dword [ebp - 0x14d0]
cmp esi, dword [edi + 0x24]
jge 0x458d99
add edi, 0x1c
push esi
mov ecx, edi
call fcn.0044eb50
push ebx
push dword [eax]
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
jne 0x458d93
push esi
mov ecx, edi
call fcn.0044eb50
mov eax, dword [eax + 4]
mov dword [ebp - 0x15a0], eax
push esi
mov ecx, edi
call fcn.0044eb50
mov eax, dword [eax + 8]
mov dword [ebp - 0x15b0], eax
push eax
push dword [ebp - 0x15a0]
push str.usbVendorId_04X__usbProductId_04X
lea eax, [ebp - 0x1538]
push eax
call fcn.00402a35
add esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1678], esp
lea eax, [ebp - 0x1538]
push eax
call fcn.00401270
mov byte [ebp - 4], 0xda
mov byte [ebp - 4], 0xd4
call fcn.0043ed25
pop ecx
inc esi
jmp 0x458d02
cmp dword [edi + 0xe8], ebx
je 0x458db8
mov eax, dword [ebp - 0x14e4]
cmp dword [eax - 0xc], 0
jne 0x458db8
xor esi, esi
inc esi
mov dword [ebp - 0x1554], esi
jmp 0x458dbe
mov esi, dword [ebp - 0x1554]
push ebx
push str.SAMSUNG_HD155UI
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
je 0x458de8
push ebx
push str.SAMSUNG_HD204UI
lea ecx, [ebp - 0x14dc]
call fcn.00407548
test eax, eax
jne 0x458e11
push ebx
push str.1AQ10003
lea ecx, [ebp - 0x14e8]
call fcn.00407548
test eax, eax
je 0x458e11
mov eax, dword [edi + 0xf0]
neg eax
sbb eax, eax
not eax
and esi, eax
mov dword [ebp - 0x1554], esi
push ebx
push str.FuzeDrive
lea ecx, [ebp - 0x14dc]
call fcn.00407548
cmp eax, 0xffffffff
jne 0x458e3d
push ebx
push str.StoreMI
lea ecx, [ebp - 0x14dc]
call fcn.00407548
cmp eax, 0xffffffff
je 0x458e45
mov esi, ebx
mov dword [ebp - 0x1554], esi
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x155c], eax
push ecx
mov ecx, esp
mov dword [ebp - 0x1634], esp
push str.flagTarget__GetDiskInfo
call fcn.004012a3
mov byte [ebp - 4], 0xdb
mov byte [ebp - 4], 0xd4
call fcn.0043ed25
pop ecx
test esi, esi
je 0x459a26
push dword [ebp - 0x1584]
push dword [ebp - 0x159c]
push ecx
mov ecx, esp
mov dword [ebp - 0x1638], esp
lea eax, [ebp - 0x14fc]
push eax
call fcn.00401270
mov byte [ebp - 4], 0xdc
push dword [edi + 0x104]
push dword [edi + 0x100]
push dword [ebp - 0x15e8]
push dword [ebp - 0x15ac]
mov eax, dword [ebp - 0x15b0]
push eax
push dword [ebp - 0x15a0]
push ebx
push dword [ebp - 0x14f0]
push dword [ebp - 0x15a4]
push dword [ebp - 0x15a8]
push dword [ebp - 0x1578]
mov byte [ebp - 4], 0xd4
mov ecx, edi
call fcn.0045003f
test eax, eax
je 0x459a26
lea ecx, [ebp - 0x1530]
call fcn.004026b1
mov byte [ebp - 4], 0xdd
mov eax, dword [edi + 0x10]
dec eax
push eax
push str.index_d
lea eax, [ebp - 0x1530]
push eax
call fcn.00402a35
pop ecx
pop ecx
mov ecx, esp
mov dword [ebp - 0x163c], esp
lea eax, [ebp - 0x1530]
push eax
call fcn.00401270
mov byte [ebp - 4], 0xde
mov byte [ebp - 4], 0xdd
call fcn.0043ed25
pop ecx
mov edi, dword [edi + 0x10]
dec edi
mov dword [ebp - 0x162c], edi
lea eax, [edi + 1]
mov ecx, dword [ebp - 0x155c]
cmp eax, ecx
jle 0x459a17
push ecx
mov esi, dword [ebp - 0x14d0]
mov eax, dword [esi + 0x10]
dec eax
push eax
push str.index_d__previousCount_d
lea eax, [ebp - 0x1530]
push eax
call fcn.00402a35
add esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1640], esp
lea eax, [ebp - 0x1530]
push eax
call fcn.00401270
mov byte [ebp - 4], 0xdf
mov byte [ebp - 4], 0xdd
call fcn.0043ed25
pop ecx
mov eax, dword [ebp - 0x1518]
cmp dword [eax - 0xc], 0
je 0x459062
add esi, 8
push edi
mov ecx, esi
call fcn.00407390
mov dword [ebp - 0x14f8], eax
push dword [ebp - 0x1518]
call fcn.00498575
pop ecx
push ebx
push 0x3e8
push edx
push eax
call fcn.0048fba0
push ebx
push 0x3e8
push edx
push eax
call fcn.0048fba0
sub eax, 0x31
mov ecx, dword [ebp - 0x14f8]
mov dword [ecx + 0x178c], eax
push edi
mov ecx, esi
call fcn.00407390
cmp dword [eax + 0x1754], ebx
jbe 0x45900d
push edi
mov ecx, esi
call fcn.00407390
cmp dword [eax + 0x1754], 0x3e8
jb 0x45905c
push edi
mov ecx, esi
call fcn.00407390
mov esi, dword [ebp - 0x1550]
add esi, 8
push edi
mov ecx, esi
cmp dword [eax + 0x1754], 0x2710
jae 0x45904f
call fcn.00407390
mov esi, dword [eax + 0x178c]
push edi
mov ecx, dword [ebp - 0x14d0]
add ecx, 8
call fcn.00407390
mov dword [eax + 0x1754], esi
jmp 0x45905c
call fcn.00407390
push edi
mov ecx, esi
call fcn.00407390
mov esi, dword [ebp - 0x14d0]
mov dword [ebp - 0x1544], ebx
add esi, 8
mov dword [ebp - 0x14f0], esi
push edi
mov ecx, esi
call fcn.00407390
lea ecx, [ebp - 0x14dc]
push ecx
lea ecx, [eax + 0x18a0]
call fcn.00401717
push 0x4c5940
push str._SCSI_Disk_Device
lea ecx, [ebp - 0x14dc]
call fcn.00408d85
push 0x4c5940
push str._SATA_Disk_Device
lea ecx, [ebp - 0x14dc]
call fcn.00408d85
push 0x4c5940
push str._ATA_Disk_Device
lea ecx, [ebp - 0x14dc]
call fcn.00408d85
push 0x4c5940
push str._SCSI_Device
lea ecx, [ebp - 0x14dc]
call fcn.00408d85
push 0x4c5940
push str._SATA_Device
lea ecx, [ebp - 0x14dc]
call fcn.00408d85
push 0x4c5940
push str._ATA_Device
lea ecx, [ebp - 0x14dc]
call fcn.00408d85
push 0x4c5940
push str.NVMe
lea ecx, [ebp - 0x14dc]
call fcn.00408d85
cmp dword [ebp - 0x1584], 0
je 0x459278
mov dword [ebp - 0x1544], 1
push edi
mov ecx, esi
call fcn.00407390
push dword [eax + 0x18bc]
push str.UASP___s_
lea eax, [ebp - 0x1538]
push eax
call fcn.00402a35
add esp, 0xc
push edi
mov ecx, esi
call fcn.00407390
lea ecx, [ebp - 0x1538]
push ecx
lea ecx, [eax + 0x18bc]
call fcn.00401717
push edi
mov ecx, esi
call fcn.00407390
mov dword [eax + 0x1824], 3
push edi
mov ecx, esi
call fcn.00407390
mov dword [eax + 0x173c], 1
mov esi, ebx
mov dword [ebp - 0x1620], esi
mov eax, dword [ebp - 0x14d0]
cmp esi, dword [eax + 0x24]
jge 0x459556
push edi
mov ecx, dword [ebp - 0x14f0]
call fcn.00407390
mov ecx, eax
mov eax, dword [ebp - 0x14d0]
push ebx
push dword [ecx + 0x18a0]
push esi
lea ecx, [eax + 0x1c]
call fcn.0044eb50
mov ecx, eax
call fcn.00407548
test eax, eax
jne 0x459272
push edi
mov ecx, dword [ebp - 0x14f0]
call fcn.00407390
mov dword [ebp - 0x14f8], eax
push esi
mov ecx, dword [ebp - 0x14d0]
lea ecx, [ecx + 0x1c]
call fcn.0044eb50
mov ecx, dword [ebp - 0x14f8]
add ecx, 0x18c0
push eax
call fcn.00401717
push edi
mov ecx, dword [ebp - 0x14f0]
call fcn.00407390
mov dword [ebp - 0x14f8], eax
push esi
mov ecx, dword [ebp - 0x14d0]
lea ecx, [ecx + 0x1c]
call fcn.0044eb50
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x14f8]
mov dword [eax + 0x1834], edx
push edi
mov ecx, dword [ebp - 0x14f0]
call fcn.00407390
mov dword [ebp - 0x14f8], eax
push esi
mov ecx, dword [ebp - 0x14d0]
lea ecx, [ecx + 0x1c]
call fcn.0044eb50
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x14f8]
mov dword [eax + 0x1838], ecx
inc esi
jmp 0x459197
push 0x4c5940
push str._USB_Device
lea ecx, [ebp - 0x14dc]
call fcn.00408d85
test eax, eax
jg 0x45941b
push ebx
push 0x4cbd18
lea ecx, [ebp - 0x1520]
call fcn.00407548
test eax, eax
jns 0x45941b
push 0x4c5940
push str._IEEE_1394_SBP2_Device
lea ecx, [ebp - 0x14dc]
call fcn.00408d85
test eax, eax
jg 0x4592e0
push ebx
push str.1394
lea ecx, [ebp - 0x1520]
call fcn.00407548
test eax, eax
js 0x45955c
mov dword [ebp - 0x1544], 1
push edi
mov ecx, esi
call fcn.00407390
push dword [eax + 0x18bc]
push str.IEEE_1394___s_
lea eax, [ebp - 0x1538]
push eax
call fcn.00402a35
add esp, 0xc
push edi
mov ecx, esi
call fcn.00407390
lea ecx, [ebp - 0x1538]
push ecx
lea ecx, [eax + 0x18bc]
call fcn.00401717
push edi
mov ecx, esi
call fcn.00407390
mov dword [eax + 0x1824], 4
mov esi, ebx
mov dword [ebp - 0x1624], esi
mov eax, dword [ebp - 0x14d0]
cmp esi, dword [eax + 0x24]
jge 0x459556
push edi
mov ecx, dword [ebp - 0x14f0]
call fcn.00407390
mov ecx, eax
mov eax, dword [ebp - 0x14d0]
push ebx
push dword [ecx + 0x18a0]
push esi
lea ecx, [eax + 0x1c]
call fcn.0044eb50
mov ecx, eax
call fcn.00407548
test eax, eax
jne 0x459415
push edi
mov ecx, dword [ebp - 0x14f0]
call fcn.00407390
mov dword [ebp - 0x14f8], eax
push esi
mov ecx, dword [ebp - 0x14d0]
lea ecx, [ecx + 0x1c]
call fcn.0044eb50
mov ecx, dword [ebp - 0x14f8]
add ecx, 0x18c0
push eax
call fcn.00401717
push edi
mov ecx, dword [ebp - 0x14f0]
call fcn.00407390
mov dword [ebp - 0x14f8], eax
push esi
mov ecx, dword [ebp - 0x14d0]
lea ecx, [ecx + 0x1c]
call fcn.0044eb50
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x14f8]
mov dword [eax + 0x1834], edx
push edi
mov ecx, dword [ebp - 0x14f0]
call fcn.00407390
mov dword [ebp - 0x14f8], eax
push esi
mov ecx, dword [ebp - 0x14d0]
lea ecx, [ecx + 0x1c]
call fcn.0044eb50
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x14f8]
mov dword [eax + 0x1838], ecx
inc esi
jmp 0x45933a
mov dword [ebp - 0x1544], 1
push edi
mov ecx, esi
call fcn.00407390
push dword [eax + 0x18bc]
push str.USB___s_
lea eax, [ebp - 0x1538]
push eax
call fcn.00402a35
add esp, 0xc
push edi
mov ecx, esi
call fcn.00407390
lea ecx, [ebp - 0x1538]
push ecx
lea ecx, [eax + 0x18bc]
call fcn.00401717
push edi
mov ecx, esi
call fcn.00407390
mov dword [eax + 0x1824], 3
mov esi, ebx
mov dword [ebp - 0x1628], esi
mov eax, dword [ebp - 0x14d0]
cmp esi, dword [eax + 0x24]
jge 0x459556
push edi
mov ecx, dword [ebp - 0x14f0]
call fcn.00407390
mov ecx, eax
mov eax, dword [ebp - 0x14d0]
push ebx
push dword [ecx + 0x18a0]
push esi
lea ecx, [eax + 0x1c]
call fcn.0044eb50
mov ecx, eax
call fcn.00407548
test eax, eax
jne 0x459550
push edi
mov ecx, dword [ebp - 0x14f0]
call fcn.00407390
mov dword [ebp - 0x14f8], eax
push esi
mov ecx, dword [ebp - 0x14d0]
lea ecx, [ecx + 0x1c]
call fcn.0044eb50
mov ecx, dword [ebp - 0x14f8]
add ecx, 0x18c0
push eax
call fcn.00401717
push edi
mov ecx, dword [ebp - 0x14f0]
call fcn.00407390
mov dword [ebp - 0x14f8], eax
push esi
mov ecx, dword [ebp - 0x14d0]
lea ecx, [ecx + 0x1c]
call fcn.0044eb50
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x14f8]
mov dword [eax + 0x1834], edx
push edi
mov ecx, dword [ebp - 0x14f0]
call fcn.00407390
mov dword [ebp - 0x14f8], eax
push esi
mov ecx, dword [ebp - 0x14d0]
lea ecx, [ecx + 0x1c]
call fcn.0044eb50
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x14f8]
mov dword [eax + 0x1838], ecx
inc esi
jmp 0x459475
mov esi, dword [ebp - 0x14f0]
lea ecx, [ebp - 0x1500]
call fcn.004026b1
mov byte [ebp - 4], 0xe0
lea ecx, [ebp - 0x14d8]
call fcn.004026b1
mov byte [ebp - 4], 0xe1
lea ecx, [ebp - 0x1528]
call fcn.004026b1
mov byte [ebp - 4], 0xe2
lea ecx, [ebp - 0x152c]
call fcn.004026b1
mov byte [ebp - 4], 0xe3
lea eax, [ebp - 0x14dc]
push eax
lea ecx, [ebp - 0x1500]
call fcn.00401717
push 0x4c5940
push 0x4cc6fc
lea ecx, [ebp - 0x1500]
call fcn.00408d85
push 8
lea eax, [ebp - 0x157c]
push eax
lea ecx, [ebp - 0x1500]
call fcn.0041191c
mov byte [ebp - 4], 0xe4
push eax
lea ecx, [ebp - 0x14d8]
call fcn.00401717
mov byte [ebp - 4], 0xe5
mov byte [ebp - 4], 0xe3
mov ecx, dword [ebp - 0x157c]
add ecx, 0xfffffff0
call fcn.00401fe9
push edi
mov ecx, esi
call fcn.00407390
add eax, 0x1898
push eax
lea ecx, [ebp - 0x1500]
call fcn.00401717
push 0x4c5940
push 0x4cc6fc
lea ecx, [ebp - 0x1500]
call fcn.00408d85
push 8
lea eax, [ebp - 0x1560]
push eax
lea ecx, [ebp - 0x1500]
call fcn.0041191c
mov byte [ebp - 4], 0xe6
push eax
lea ecx, [ebp - 0x1528]
call fcn.00401717
mov byte [ebp - 4], 0xe7
mov byte [ebp - 4], 0xe3
mov ecx, dword [ebp - 0x1560]
add ecx, 0xfffffff0
call fcn.00401fe9
push edi
mov ecx, esi
call fcn.00407390
add eax, 0x189c
push eax
lea ecx, [ebp - 0x1500]
call fcn.00401717
push 0x4c5940
push 0x4cc6fc
lea ecx, [ebp - 0x1500]
call fcn.00408d85
push 8
lea eax, [ebp - 0x1564]
push eax
lea ecx, [ebp - 0x1500]
call fcn.0041191c
mov byte [ebp - 4], 0xe8
push eax
lea ecx, [ebp - 0x152c]
call fcn.00401717
mov byte [ebp - 4], 0xe9
mov byte [ebp - 4], 0xe3
mov ecx, dword [ebp - 0x1564]
add ecx, 0xfffffff0
call fcn.00401fe9
push edi
mov ecx, esi
call fcn.00407390
mov eax, dword [eax + 0x1898]
cmp dword [eax - 0xc], 0
jne 0x45976e
push ecx
mov eax, esp
mov dword [ebp - 0x1644], esp
lea ecx, [ebp - 0x14dc]
push ecx
push str.WmiModel:
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0xea
mov byte [ebp - 4], 0xe3
call fcn.0043ed25
pop ecx
push edi
mov ecx, esi
call fcn.00407390
push ecx
mov ecx, esp
mov dword [ebp - 0x1604], esp
add eax, 0x1888
push eax
push str.SerialNumber:
push ecx
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0xeb
mov byte [ebp - 4], 0xe3
call fcn.0043ed25
mov ecx, esp
mov dword [ebp - 0x15b8], esp
push str.vars.RemoveAt_index____1
call fcn.004012a3
mov byte [ebp - 4], 0xec
mov byte [ebp - 4], 0xe3
call fcn.0043ed25
pop ecx
push 1
push edi
mov ecx, esi
call fcn.0045d33d
jmp 0x4599a7
cmp dword [ebp - 0x1544], 0
jne 0x4599a7
mov eax, dword [ebp - 0x14dc]
cmp dword [eax - 0xc], 0
je 0x4599a7
cmp dword [ebp - 0x1528], 0
je 0x45acdb
push dword [ebp - 0x1528]
push dword [ebp - 0x14d8]
call fcn.004944db
pop ecx
pop ecx
test eax, eax
je 0x4599a7
cmp dword [ebp - 0x152c], 0
je 0x45acdb
push dword [ebp - 0x152c]
push dword [ebp - 0x14d8]
call fcn.004944db
pop ecx
pop ecx
mov esi, dword [ebp - 0x1550]
add esi, 8
push edi
mov ecx, esi
test eax, eax
jne 0x4598e4
call fcn.00407390
mov dword [ebp - 0x14f8], eax
push edi
mov ecx, esi
call fcn.00407390
lea ecx, [eax + 0x1888]
mov eax, dword [ebp - 0x14f8]
add eax, 0x188c
push eax
call fcn.00401717
push edi
mov ecx, esi
call fcn.00407390
mov dword [ebp - 0x14f8], eax
push edi
mov ecx, esi
call fcn.00407390
lea ecx, [eax + 0x1890]
mov eax, dword [ebp - 0x14f8]
add eax, 0x1894
push eax
call fcn.00401717
push edi
mov ecx, esi
call fcn.00407390
mov dword [ebp - 0x14f8], eax
push edi
mov ecx, esi
call fcn.00407390
lea ecx, [eax + 0x1898]
mov eax, dword [ebp - 0x14f8]
add eax, 0x189c
push eax
call fcn.00401717
push edi
mov ecx, esi
call fcn.00407390
mov dword [ebp - 0x14f8], eax
push edi
mov ecx, esi
call fcn.00407390
mov ecx, dword [ebp - 0x14f8]
add ecx, 0x1888
push ecx
add eax, 0x1898
push eax
lea eax, [ebp - 0x1570]
push eax
mov ecx, dword [ebp - 0x14d0]
call fcn.00426a48
mov dword [ebp - 0x14f8], eax
mov byte [ebp - 4], 0xed
push edi
mov ecx, esi
call fcn.00407390
lea ecx, [eax + 0x18a4]
push dword [ebp - 0x14f8]
call fcn.00401717
mov byte [ebp - 4], 0xee
mov byte [ebp - 4], 0xe3
mov ecx, dword [ebp - 0x1570]
add ecx, 0xfffffff0
call fcn.00401fe9
jmp 0x4599a7
call fcn.00407390
cmp dword [eax + 0x1824], 3
je 0x4599a7
push ecx
mov eax, esp
mov dword [ebp - 0x15bc], esp
lea ecx, [ebp - 0x14dc]
push ecx
push str.WmiModel:
push eax
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0xef
mov byte [ebp - 4], 0xe3
call fcn.0043ed25
pop ecx
push edi
mov ecx, esi
call fcn.00407390
push ecx
mov ecx, esp
mov dword [ebp - 0x15c0], esp
add eax, 0x1898
push eax
push str.Model:
push ecx
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0xf0
mov byte [ebp - 4], 0xe3
call fcn.0043ed25
pop ecx
push edi
mov ecx, esi
call fcn.00407390
push ecx
mov ecx, esp
mov dword [ebp - 0x15c4], esp
add eax, 0x1888
push eax
push str.SerialNumber:
push ecx
call fcn.0040b65a
add esp, 0xc
mov byte [ebp - 4], 0xf1
mov byte [ebp - 4], 0xe3
call fcn.0043ed25
mov ecx, esp
mov dword [ebp - 0x15c8], esp
push str.DISABLED:_vars.RemoveAt_index____2
call fcn.004012a3
mov byte [ebp - 4], 0xf2
mov byte [ebp - 4], 0xe3
call fcn.0043ed25
pop ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x15cc], esp
push str.OK:Check_Model_Name
call fcn.004012a3
mov byte [ebp - 4], 0xf3
mov byte [ebp - 4], 0xe3
call fcn.0043ed25
pop ecx
mov byte [ebp - 4], 0xf4
mov byte [ebp - 4], 0xe2
mov ecx, dword [ebp - 0x152c]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0xf5
mov byte [ebp - 4], 0xe1
mov ecx, dword [ebp - 0x1528]
add ecx, 0xfffffff0
call fcn.00401fe9
mov byte [ebp - 4], 0xe0
lea ecx, [ebp - 0x14d8]
call fcn.004015b8
mov byte [ebp - 4], 0xdd
lea ecx, [ebp - 0x1500]
call fcn.004015b8
jmp 0x458f39
mov byte [ebp - 4], 0xd4
lea ecx, [ebp - 0x1530]
call fcn.004015b8
mov byte [ebp - 4], 0xc3
lea ecx, [ebp - 0x1538]
call fcn.004015b8
mov dword [ebp - 4], 0xc2
jmp 0x459a84
mov byte [ebp - 4], 0xc1
lea ecx, [ebp - 0x14e8]
call fcn.004015b8
mov byte [ebp - 4], 0xc0
lea ecx, [ebp - 0x14fc]
call fcn.004015b8
mov byte [ebp - 4], 0xbf
lea ecx, [ebp - 0x1520]
call fcn.004015b8
mov byte [ebp - 4], 0xbe
lea ecx, [ebp - 0x14e4]
call fcn.004015b8
mov byte [ebp - 4], 0xbd
lea ecx, [ebp - 0x1518]
call fcn.004015b8
mov byte [ebp - 4], 0xbc
lea ecx, [ebp - 0x1508]
call fcn.004015b8
mov byte [ebp - 4], 0xbb
lea ecx, [ebp - 0x14dc]
call fcn.004015b8
mov byte [ebp - 4], 0xba
lea ecx, [ebp - 0x156c]
call fcn.004015b8
mov byte [ebp - 4], 0xb2
lea ecx, [ebp - 0x1568]
call fcn.004015b8
mov ecx, dword [ebp - 0x1510]
jmp 0x458212
mov dword [ebp - 0x154c], 0x41
mov ecx, dword [ebp - 0x14e0]
test ecx, ecx
je 0x459b72
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x14e0], ebx
mov ecx, dword [ebp - 0x1510]
test ecx, ecx
je 0x459b88
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x1510], ebx
mov ecx, dword [ebp - 0x153c]
test ecx, ecx
je 0x459b9e
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x153c], ebx
mov ecx, dword [ebp - 0x1504]
test ecx, ecx
je 0x459bb4
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x1504], ebx
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x1574]
lea ecx, [ecx - 0x10]
call fcn.00401fe9
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x151c]
lea ecx, [ecx - 0x10]
call fcn.00401fe9
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x14f4]
lea ecx, [ecx - 0x10]
call fcn.00401fe9
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x1514]
lea ecx, [ecx - 0x10]
call fcn.00401fe9
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x1448]
call fcn.00473f96
jmp 0x459c33
mov dword [ebp - 0x1540], esp
push str.CAtaSmart::Init_WMI_off___Start
call fcn.004012a3
mov byte [ebp - 4], 0xff
mov byte [ebp - 4], bl
call fcn.0043ed25
pop ecx
mov dword [ebp - 0x154c], 0x41
mov edx, ebx
mov dword [ebp - 0x1508], edx
mov dword [ebp - 0x1514], ebx
mov dword [ebp - 0x1550], ebx
push 6
pop ecx
xor eax, eax
lea edi, [ebp - 0x144c]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x14d8], ebx
mov dword [ebp - 0x152c], ebx
mov esi, ebx
mov eax, dword [ebp - 0x14d0]
cmp dword [eax + 0x10], ebx
jle 0x459c9b
lea ebx, [eax + 8]
mov edi, esi
push esi
mov ecx, ebx
call fcn.00407390
mov edx, dword [ebp - 0x1508]
cmp edx, dword [eax + 0x1740]
jne 0x459c8b
xor edi, edi
inc edi
inc esi
mov eax, dword [ebp - 0x14d0]
cmp esi, dword [eax + 0x10]
jl 0x459c72
xor ebx, ebx
jmp 0x459c9d
mov edi, ebx
mov esi, ebx
cmp dword [eax + 0xdc], ebx
jle 0x459cd3
lea ebx, [eax + 0xd4]
push esi
mov ecx, ebx
call fcn.00407582
mov edx, dword [ebp - 0x1508]
cmp edx, dword [eax]
jne 0x459cc2
xor edi, edi
inc edi
inc esi
mov eax, dword [ebp - 0x14d0]
cmp esi, dword [eax + 0xdc]
jl 0x459cad
xor ebx, ebx
test edi, edi
jne 0x45a2f6
push edx
mov ecx, eax
call fcn.0045259d
mov esi, eax
mov dword [ebp - 0x1528], esi
test esi, esi
je 0x45a2f6
cmp esi, 0xffffffff
je 0x45a2f6
push ebx
lea eax, [ebp - 0x1550]
push eax
push 0x18
lea eax, [ebp - 0x144c]
push eax
push ebx
push ebx
push 0x70000
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x45a2ef
cmp dword [ebp - 0x1550], 0x18
jne 0x45a2ef
cmp dword [ebp - 0x1444], 0xc
jne 0x45a2ef
mov dword [ebp - 0x14ec], ebx
push 0x1000
call fcn.004625c1
pop ecx
mov esi, eax
xor eax, eax
lea edi, [ebp - 0x1430]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea ecx, [ebp - 0x1500]
call fcn.004026b1
mov dword [ebp - 4], 0x100
lea ecx, [ebp - 0x1534]
call fcn.004026b1
mov byte [ebp - 4], 1
test esi, esi
jne 0x459da7
mov byte [ebp - 4], bl
mov ecx, dword [ebp - 0x1534]
lea ecx, [ecx - 0x10]
call fcn.00401fe9
mov dword [ebp - 4], ebx
mov ecx, dword [ebp - 0x1500]
add ecx, 0xfffffff0
call fcn.00401fe9
jmp 0x45a2f6
push 0x1000
push ebx
push esi
call fcn.00490cd0
add esp, 0xc
mov dword [ebp - 0x1430], ebx
mov dword [ebp - 0x142c], ebx
mov byte [ebp - 0x1428], bl
push ebx
lea eax, [ebp - 0x14ec]
push eax
push 0x1000
push esi
push 0xc
lea eax, [ebp - 0x1430]
push eax
push 0x2d1400
mov edi, dword [ebp - 0x1528]
push edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x459e19
push esi
call fcn.004625bc
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 4], bl
mov ecx, dword [ebp - 0x1534]
lea ecx, [ecx - 0x10]
call fcn.00401fe9
jmp 0x459d91
mov eax, dword [esi + 0x10]
test eax, eax
je 0x459e2e
add eax, esi
push eax
lea ecx, [ebp - 0x1500]
call fcn.0044483d
mov eax, dword [esi + 0x14]
test eax, eax
je 0x459e43
add eax, esi
push eax
lea ecx, [ebp - 0x1534]
call fcn.0044483d
cmp dword [esi + 0x1c], 0x11
jne 0x459e53
mov dword [ebp - 0x14d8], 6
push esi
call fcn.004625bc
pop ecx
push ebx
push str.SAMSUNG_HD155UI
lea ecx, [ebp - 0x1500]
call fcn.00407548
test eax, eax
je 0x459e84
push ebx
push str.SAMSUNG_HD204UI
lea ecx, [ebp - 0x1500]
call fcn.00407548
test eax, eax
jne 0x459ebd
push ebx
push str.1AQ10003
lea ecx, [ebp - 0x1534]
call fcn.00407548
test eax, eax
je 0x459ebd
mov eax, dword [ebp - 0x14d0]
cmp dword [eax + 0xf0], ebx
je 0x459ebd
mov byte [ebp - 4], bl
mov ecx, dword [ebp - 0x1534]
lea ecx, [ecx - 0x10]
call fcn.00401fe9
jmp 0x459d91
push ebx
push str.FuzeDrive
lea ecx, [ebp - 0x1500]
call fcn.00407548
cmp eax, 0xffffffff
jne 0x45a2d9
push ebx
push str.StoreMI
lea ecx, [ebp - 0x1500]
call fcn.00407548
cmp eax, 0xffffffff
jne 0x45a2d9
push ecx
mov ecx, esp
mov dword [ebp - 0x1540], esp
push str.USB_HDD_Check
call fcn.004012a3
mov byte [ebp - 4], 0xa
mov byte [ebp - 4], 1
call fcn.0043ed25
mov dword [ebp - 0x1548], ebx
mov dword [esp], 0x1000
push ebx
lea eax, [ebp - 0x1014]
push eax
call fcn.00490cd0
add esp, 0xc
xor eax, eax
lea edi, [ebp - 0x1420]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push ebx
lea eax, [ebp - 0x1548]
push eax
push 0x1000
lea eax, [ebp - 0x1014]
push eax
push 0xc
lea eax, [ebp - 0x1420]
push eax
push 0x2d1400
mov esi, dword [ebp - 0x1528]
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x459fcb
push ecx
mov ecx, esp
mov dword [ebp - 0x15cc], esp
push str.Check_Bus_Type
call fcn.004012a3
mov byte [ebp - 4], 0xb
mov byte [ebp - 4], 1
call fcn.0043ed25
pop ecx
cmp dword [ebp - 0xff8], 7
jne 0x459fcb
push ecx
mov ecx, esp
mov dword [ebp - 0x15c8], esp
push str.Bus_Type__USB
call fcn.004012a3
mov byte [ebp - 4], 0xc
mov byte [ebp - 4], 1
call fcn.0043ed25
pop ecx
mov dword [ebp - 0x14d8], 3
mov dword [ebp - 0x152c], 0xffff
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
mov ecx, esp
mov dword [ebp - 0x15c4], esp
push str.DO:GetDiskInfo
call fcn.004012a3
mov byte [ebp - 4], 0xd
mov byte [ebp - 4], 1
call fcn.0043ed25
pop ecx
push ebx
push ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x15c0], esp
push 0x4c5940
call fcn.004012a3
mov byte [ebp - 4], 0xe
push ebx
push ebx
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x152c]
push ebx
push dword [ebp - 0x14d8]
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp - 0x1508]
mov byte [ebp - 4], 1
mov esi, dword [ebp - 0x14d0]
mov ecx, esi
call fcn.0045003f
test eax, eax
je 0x45a2c3
push ecx
mov ecx, esp
mov dword [ebp - 0x15bc], esp
push str.OK:GetDiskInfo
call fcn.004012a3
mov byte [ebp - 4], 0xf
mov byte [ebp - 4], 1
call fcn.0043ed25
pop ecx
mov edi, dword [esi + 0x10]
dec edi
lea ecx, [ebp - 0x14e4]
call fcn.004026b1
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x14e8]
call fcn.004026b1
mov byte [ebp - 4], 0x11
add esi, 8
mov dword [ebp - 0x151c], esi
push edi
mov ecx, esi
call fcn.00407390
add eax, 0x1898
push eax
lea ecx, [ebp - 0x14e4]
call fcn.00401717
push ecx
mov ecx, esp
mov dword [ebp - 0x15b8], esp
push str.Check_Reverse
call fcn.004012a3
mov byte [ebp - 4], 0x12
mov byte [ebp - 4], 0x11
call fcn.0043ed25
pop ecx
push ebx
push str.DW_C
lea ecx, [ebp - 0x14e4]
call fcn.00407548
test eax, eax
je 0x45a14a
push ebx
push str.iHat
lea ecx, [ebp - 0x14e4]
call fcn.00407548
test eax, eax
je 0x45a14a
push ebx
push str.ASSM
lea ecx, [ebp - 0x14e4]
call fcn.00407548
test eax, eax
je 0x45a14a
push ebx
push str.aMtx
lea ecx, [ebp - 0x14e4]
call fcn.00407548
test eax, eax
je 0x45a14a
push ebx
push str.OTHS
lea ecx, [ebp - 0x14e4]
call fcn.00407548
test eax, eax
je 0x45a14a
push ebx
push str.UFIJ
lea ecx, [ebp - 0x14e4]
call fcn.00407548
test eax, eax
jne 0x45a25a
push ecx
mov ecx, esp
mov dword [ebp - 0x1604], esp
push str.Reverse
call fcn.004012a3
mov byte [ebp - 4], 0x13
mov byte [ebp - 4], 0x11
call fcn.0043ed25
pop ecx
push edi
mov ecx, esi
call fcn.00407390
mov esi, eax
push edi
mov ecx, dword [ebp - 0x151c]
call fcn.00407390
lea ecx, [eax + 0x1888]
lea eax, [esi + 0x188c]
push eax
call fcn.00401717
push edi
mov ecx, dword [ebp - 0x151c]
call fcn.00407390
mov esi, eax
push edi
mov ecx, dword [ebp - 0x151c]
call fcn.00407390
lea ecx, [eax + 0x1890]
lea eax, [esi + 0x1894]
push eax
call fcn.00401717
push edi
mov ecx, dword [ebp - 0x151c]
call fcn.00407390
mov esi, eax
push edi
mov ecx, dword [ebp - 0x151c]
call fcn.00407390
lea ecx, [eax + 0x1898]
lea eax, [esi + 0x189c]
push eax
call fcn.00401717
push edi
mov ecx, dword [ebp - 0x151c]
call fcn.00407390
mov esi, eax
push edi
mov ecx, dword [ebp - 0x151c]
call fcn.00407390
lea ecx, [esi + 0x1888]
push ecx
add eax, 0x1898
push eax
lea eax, [ebp - 0x1558]
push eax
mov ecx, dword [ebp - 0x14d0]
call fcn.00426a48
mov esi, eax
mov byte [ebp - 4], 0x14
push edi
mov ecx, dword [ebp - 0x151c]
call fcn.00407390
lea ecx, [eax + 0x18a4]
push esi
call fcn.00401717
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x1558]
lea ecx, [ecx - 0x10]
call fcn.00401fe9
mov esi, dword [ebp - 0x151c]
cmp dword [ebp - 0x14d8], 3
jne 0x45a29f
push edi
mov ecx, esi
call fcn.00407390
push dword [eax + 0x18bc]
push str.USB___s_
lea eax, [ebp - 0x14e8]
push eax
call fcn.00402a35
add esp, 0xc
push edi
mov ecx, esi
call fcn.00407390
lea ecx, [ebp - 0x14e8]
push ecx
lea ecx, [eax + 0x18bc]
call fcn.00401717
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x14e8]
lea ecx, [ecx - 0x10]
call fcn.00401fe9
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x14e4]
lea ecx, [ecx - 0x10]
call fcn.00401fe9
mov byte [ebp - 4], bl
mov ecx, dword [ebp - 0x1534]
lea ecx, [ecx - 0x10]
call fcn.00401fe9
jmp 0x459d91
mov byte [ebp - 4], bl
mov ecx, dword [ebp - 0x1534]
lea ecx, [ecx - 0x10]
call fcn.00401fe9
jmp 0x459d91
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x1508]
inc eax
mov dword [ebp - 0x1508], eax
cmp eax, 0x38
mov edx, eax
jl 0x459c3b
push ecx
mov ecx, esp
mov dword [ebp - 0x1540], esp
push str.OK:GetDiskInfo___PhysicalDrive
call fcn.004012a3
mov dword [ebp - 4], 0x11a
mov dword [ebp - 4], ebx
call fcn.0043ed25
pop ecx
mov eax, dword [ebp - 0x14d0]
cmp dword [eax + 0xe8], ebx
je 0x45a5ac
mov edi, ebx
mov dword [ebp - 0x14e8], ebx
mov esi, ebx
mov dword [ebp - 0x1550], ebx
push ebx
push ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x1540], esp
push 0x4c5940
call fcn.004012a3
mov dword [ebp - 4], 0x11b
push ebx
push ebx
push ebx
push 0xffffffffffffffff
push ebx
push ebx
push ebx
push ebx
push esi
push edi
push 0xffffffffffffffff
mov dword [ebp - 4], ebx
mov ecx, dword [ebp - 0x14d0]
call fcn.0045003f
test eax, eax
je 0x45a569
mov esi, dword [ebp - 0x14d0]
mov edi, dword [esi + 0x10]
dec edi
lea ecx, [ebp - 0x14e4]
call fcn.004026b1
mov dword [ebp - 4], 0x11c
push edi
lea ecx, [esi + 8]
call fcn.00407390
add eax, 0x1898
push eax
lea ecx, [ebp - 0x14e4]
call fcn.00401717
push ebx
push str.DW_C
lea ecx, [ebp - 0x14e4]
call fcn.00407548
test eax, eax
je 0x45a44a
push ebx
push str.iHat
lea ecx, [ebp - 0x14e4]
call fcn.00407548
test eax, eax
je 0x45a44a
push ebx
push str.ASSM
lea ecx, [ebp - 0x14e4]
call fcn.00407548
test eax, eax
je 0x45a44a
push ebx
push str.aMtx
lea ecx, [ebp - 0x14e4]
call fcn.00407548
test eax, eax
je 0x45a44a
push ebx
push str.OTHS
lea ecx, [ebp - 0x14e4]
call fcn.00407548
test eax, eax
je 0x45a44a
push ebx
push str.UFIJ
lea ecx, [ebp - 0x14e4]
call fcn.00407548
test eax, eax
jne 0x45a54c
push edi
lea ecx, [esi + 8]
call fcn.00407390
mov esi, eax
push edi
mov ecx, dword [ebp - 0x14d0]
lea ecx, [ecx + 8]
call fcn.00407390
lea ecx, [eax + 0x1888]
lea eax, [esi + 0x188c]
push eax
call fcn.00401717
push edi
mov ecx, dword [ebp - 0x14d0]
lea ecx, [ecx + 8]
call fcn.00407390
mov esi, eax
push edi
mov ecx, dword [ebp - 0x14d0]
lea ecx, [ecx + 8]
call fcn.00407390
lea ecx, [eax + 0x1890]
lea eax, [esi + 0x1894]
push eax
call fcn.00401717
push edi
mov ecx, dword [ebp - 0x14d0]
lea ecx, [ecx + 8]
call fcn.00407390
mov esi, eax
push edi
mov ecx, dword [ebp - 0x14d0]
lea ecx, [ecx + 8]
call fcn.00407390
lea ecx, [eax + 0x1898]
lea eax, [esi + 0x189c]
push eax
call fcn.00401717
push edi
mov ecx, dword [ebp - 0x14d0]
lea ecx, [ecx + 8]
call fcn.00407390
mov esi, eax
push edi
mov ecx, dword [ebp - 0x14d0]
lea ecx, [ecx + 8]
call fcn.00407390
lea ecx, [esi + 0x1888]
push ecx
add eax, 0x1898
push eax
lea eax, [ebp - 0x1514]
push eax
mov ecx, dword [ebp - 0x14d0]
call fcn.00426a48
mov esi, eax
mov byte [ebp - 4], 0x1d
push edi
mov ecx, dword [ebp - 0x14d0]
lea ecx, [ecx + 8]
call fcn.00407390
lea ecx, [eax + 0x18a4]
push esi
call fcn.00401717
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x1514]
lea ecx, [ecx - 0x10]
call fcn.00401fe9
mov dword [ebp - 4], ebx
mov ecx, dword [ebp - 0x14e4]
add ecx, 0xfffffff0
call fcn.00401fe9
mov esi, dword [ebp - 0x1550]
mov edi, dword [ebp - 0x14e8]
inc esi
mov dword [ebp - 0x1550], esi
cmp esi, 8
jl 0x45a353
inc edi
mov dword [ebp - 0x14e8], edi
cmp edi, 0x10
jl 0x45a34b
push ecx
mov ecx, esp
mov dword [ebp - 0x1540], esp
push str.OK:GetDiskInfo___Scsi
call fcn.004012a3
mov dword [ebp - 4], 0x120
mov dword [ebp - 4], ebx
call fcn.0043ed25
pop ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x1540], esp
push str.Drive_Letter_Mapping___Start
call fcn.004012a3
mov dword [ebp - 4], 0x121
mov dword [ebp - 4], ebx
call fcn.0043ed25
pop ecx
push 0x41
pop edi
lea ecx, [ebp - 0x1504]
call fcn.004026b1
mov dword [ebp - 4], 0x122
push 0x208
push ebx
lea eax, [ebp - 0x21c]
push eax
call fcn.00490cd0
push edi
push str._c:_
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x1504]
call fcn.0040b62f
push ecx
mov ecx, esp
mov dword [ebp - 0x1540], esp
lea eax, [ebp - 0x1504]
push eax
call fcn.00401270
mov byte [ebp - 4], 0x23
mov byte [ebp - 4], 0x22
call fcn.0043ed25
pop ecx
push dword [ebp - 0x1504]
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 3
je 0x45a69e
cmp dword [ebp - 0x1580], 0
je 0x45a678
push dword [ebp - 0x1504]
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 2
jne 0x45a678
push 0x43
pop eax
cmp word [ebp - 0x154c], ax
jae 0x45a69e
push ecx
mov ecx, esp
mov dword [ebp - 0x15cc], esp
push str.Drive_Letter_Mapping_____DRIVE_FIXED
call fcn.004012a3
mov byte [ebp - 4], 0x24
mov byte [ebp - 4], 0x22
call fcn.0043ed25
pop ecx
jmp 0x45a88a
push edi
push str.._c:
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x1504]
call fcn.0040b62f
push ecx
mov ecx, esp
mov dword [ebp - 0x15c8], esp
lea eax, [ebp - 0x1504]
push eax
call fcn.00401270
mov byte [ebp - 4], 0x26
mov byte [ebp - 4], 0x22
call fcn.0043ed25
pop ecx
push ebx
push 0x80
push 3
push ebx
push 3
push 0xc0000000
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x45a733
push ecx
mov ecx, esp
mov dword [ebp - 0x15c4], esp
push str.Drive_Letter_Mapping___INVALID_HANDLE_VALUE
call fcn.004012a3
mov byte [ebp - 4], 0x27
mov byte [ebp - 4], 0x22
call fcn.0043ed25
pop ecx
jmp 0x45a88a
push 0x68
push ebx
lea eax, [ebp - 0x14cc]
push eax
call fcn.00490cd0
add esp, 0xc
mov dword [ebp - 0x1514], ebx
push ebx
lea eax, [ebp - 0x1514]
push eax
push 0x68
lea eax, [ebp - 0x14cc]
push eax
push ebx
push ebx
push 0x560000
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [ebp - 0x14ec], eax
test esi, esi
je 0x45a781
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x14ec]
test eax, eax
jne 0x45a7ab
push ecx
mov ecx, esp
mov dword [ebp - 0x15c0], esp
push str.Drive_Letter_Mapping___bResult__FALSE
call fcn.004012a3
mov byte [ebp - 4], 0x29
mov byte [ebp - 4], 0x22
call fcn.0043ed25
pop ecx
jmp 0x45a88a
push dword [ebp - 0x14cc]
push str.volumeDiskExtents.NumberOfDiskExtents___d
lea eax, [ebp - 0x1504]
push eax
call fcn.00402a35
pop ecx
pop ecx
mov ecx, esp
mov dword [ebp - 0x15bc], esp
lea eax, [ebp - 0x1504]
push eax
call fcn.00401270
mov byte [ebp - 4], 0x2b
mov byte [ebp - 4], 0x22
call fcn.0043ed25
pop ecx
mov dword [ebp - 0x14e8], ebx
mov ecx, dword [ebp - 0x14cc]
test ecx, ecx
je 0x45a88a
lea esi, [ebp - 0x14c4]
cmp ecx, 4
jae 0x45a88a
mov eax, dword [esi + 0x10]
or eax, dword [esi + 0x14]
je 0x45a872
mov edx, dword [esi]
cmp edx, 0x100
jae 0x45a82f
lea eax, [edi - 0x41]
mov ecx, dword [ebp + edx*4 - 0x1414]
bts ecx, eax
mov dword [ebp + edx*4 - 0x1414], ecx
push edx
push dword [ebp - 0x14e8]
push str.n___d__pDiskExtent__DiskNumber___d
lea eax, [ebp - 0x1504]
push eax
call fcn.00402a35
add esp, 0xc
mov ecx, esp
mov dword [ebp - 0x15b8], esp
lea eax, [ebp - 0x1504]
push eax
call fcn.00401270
mov byte [ebp - 4], 0x2c
mov byte [ebp - 4], 0x22
call fcn.0043ed25
pop ecx
mov ecx, dword [ebp - 0x14cc]
mov eax, dword [ebp - 0x14e8]
inc eax
mov dword [ebp - 0x14e8], eax
add esi, 0x18
cmp eax, ecx
jb 0x45a800
mov dword [ebp - 4], ebx
mov ecx, dword [ebp - 0x1504]
add ecx, 0xfffffff0
call fcn.00401fe9
mov eax, dword [ebp - 0x154c]
inc eax
mov dword [ebp - 0x154c], eax
inc edi
push 0x5a
pop ecx
cmp ax, cx
jbe 0x45a5d2
push ecx
mov ecx, esp
mov dword [ebp - 0x1540], esp
push str.Drive_Letter_Mapping___End
call fcn.004012a3
mov dword [ebp - 4], 0x12e
mov dword [ebp - 4], ebx
call fcn.0043ed25
pop ecx
mov esi, ebx
mov eax, dword [ebp - 0x14d0]
cmp dword [eax + 0x10], ebx
jle 0x45aa5e
lea edi, [eax + 8]
mov dword [ebp - 0x1550], edi
push esi
mov ecx, edi
call fcn.00407390
cmp dword [eax + 0x1740], ebx
jl 0x45aa4e
push 0x4c5940
lea ecx, [ebp - 0x14e8]
call fcn.004012a3
mov dword [ebp - 4], 0x12f
mov edi, ebx
mov ebx, dword [ebp - 0x1550]
push esi
mov ecx, ebx
call fcn.00407390
xor edx, edx
inc edx
mov ecx, edi
shl edx, cl
mov dword [ebp - 0x14ec], edx
mov eax, dword [eax + 0x1740]
test dword [ebp + eax*4 - 0x1414], edx
je 0x45a9fc
lea ecx, [ebp - 0x14d8]
call fcn.004026b1
mov byte [ebp - 4], 0x30
lea eax, [edi + 0x41]
push eax
push 0x4da13c
lea eax, [ebp - 0x14d8]
push eax
call fcn.00402a35
push 0x4da144
lea eax, [ebp - 0x14d8]
push eax
lea eax, [ebp - 0x1514]
push eax
call fcn.00404d80
add esp, 0x18
mov byte [ebp - 4], 0x31
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
lea ecx, [ebp - 0x14e8]
call fcn.004029a9
mov byte [ebp - 4], 0x30
mov ecx, dword [ebp - 0x1514]
lea ecx, [ecx - 0x10]
call fcn.00401fe9
push esi
mov ecx, ebx
call fcn.00407390
mov ecx, dword [ebp - 0x14ec]
add dword [eax + 0x1818], ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x1540], esp
lea eax, [ebp - 0x14d8]
push eax
call fcn.00401270
mov byte [ebp - 4], 0x33
mov byte [ebp - 4], 0x30
call fcn.0043ed25
pop ecx
mov byte [ebp - 4], 0x2f
mov ecx, dword [ebp - 0x14d8]
lea ecx, [ecx - 0x10]
call fcn.00401fe9
inc edi
cmp edi, 0x1a
jl 0x45a925
push esi
mov edi, dword [ebp - 0x1550]
mov ecx, edi
call fcn.00407390
mov ebx, 0x18a8
lea ecx, [ebx + eax]
mov eax, dword [ebp - 0x14e8]
push dword [eax - 0xc]
push eax
call fcn.004029a9
push esi
mov ecx, edi
call fcn.00407390
lea ecx, [ebx + eax]
call fcn.00409ea0
xor ebx, ebx
mov dword [ebp - 4], ebx
mov ecx, dword [ebp - 0x14e8]
add ecx, 0xfffffff0
call fcn.00401fe9
inc esi
mov eax, dword [ebp - 0x14d0]
cmp esi, dword [eax + 0x10]
jl 0x45a8f2
call fcn.0043f18d
mov esi, dword [ebp - 0x14d0]
mov dword [esi + 0xf8], eax
mov dword [esi + 0xfc], edx
push ecx
mov ecx, esp
mov dword [ebp - 0x1540], esp
push str.CAtaSmart::Init___Complete
call fcn.004012a3
mov dword [ebp - 4], 0x136
mov dword [ebp - 4], ebx
call fcn.0043ed25
pop ecx
cmp dword [ebp - 0x15b4], 0
je 0x45ab8d
mov eax, dword [esi + 0x10]
cmp eax, dword [ebp - 0x15f4]
jne 0x45ab81
mov edi, ebx
test eax, eax
jle 0x45ab8d
lea eax, [esi + 8]
mov dword [ebp - 0x14d8], eax
push edi
mov ecx, eax
call fcn.00407390
lea esi, [eax + 0x1740]
push edi
lea ecx, [ebp - 0x15fc]
call fcn.0044fc3d
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x45ab81
push edi
mov ecx, dword [ebp - 0x14d8]
call fcn.00407390
lea esi, [eax + 0x1748]
push edi
lea ecx, [ebp - 0x15fc]
call fcn.0044fc3d
lea ecx, [eax + 8]
mov eax, dword [esi]
cmp eax, dword [ecx]
jne 0x45ab81
push edi
mov ecx, dword [ebp - 0x14d8]
call fcn.00407390
lea esi, [eax + 0x1744]
push edi
lea ecx, [ebp - 0x15fc]
call fcn.0044fc3d
lea ecx, [eax + 4]
mov eax, dword [esi]
cmp eax, dword [ecx]
jne 0x45ab81
push 0x40
push edi
lea ecx, [ebp - 0x15fc]
call fcn.0044fc3d
add eax, 0xc
push eax
push edi
mov ecx, dword [ebp - 0x14d8]
call fcn.00407390
add eax, 0x1846
push eax
call fcn.00491284
add esp, 0xc
test eax, eax
jne 0x45ab81
inc edi
mov eax, dword [ebp - 0x14d0]
cmp edi, dword [eax + 0x10]
mov eax, dword [ebp - 0x14d8]
jl 0x45aac7
jmp 0x45ab8d
mov eax, dword [ebp - 0x15b4]
mov dword [eax], 1
mov edi, dword [ebp - 0x14d0]
cmp dword [ebp + 0x1c], 0
je 0x45abcc
mov esi, dword [edi + 0x10]
test esi, esi
jle 0x45abcc
sub esi, 1
js 0x45abcc
push esi
lea ecx, [edi + 8]
call fcn.00407390
cmp dword [eax + 0x17ac], ebx
jne 0x45abc1
push 1
push esi
lea ecx, [edi + 8]
call fcn.0045d33d
sub esi, 1
jns 0x45aba5
mov edi, dword [ebp - 0x14d0]
mov esi, dword [edi + 0x10]
test esi, esi
jle 0x45ac4b
sub esi, 1
js 0x45ac4b
lea ecx, [ebp - 0x14d8]
call fcn.004026b1
mov dword [ebp - 4], 0x137
push esi
lea ecx, [edi + 8]
call fcn.00407390
add eax, 0x1898
push eax
lea ecx, [ebp - 0x14d8]
call fcn.00401717
lea ecx, [ebp - 0x14d8]
call fcn.004075ba
push ebx
push str.RAID
lea ecx, [ebp - 0x14d8]
call fcn.00407548
test eax, eax
js 0x45ac2f
push 1
push esi
lea ecx, [edi + 8]
call fcn.0045d33d
mov dword [ebp - 4], ebx
mov ecx, dword [ebp - 0x14d8]
add ecx, 0xfffffff0
call fcn.00401fe9
sub esi, 1
jns 0x45abd8
mov edi, dword [ebp - 0x14d0]
mov esi, dword [edi + 0xc]
push ecx
mov ecx, esp
mov dword [ebp - 0x1540], esp
cmp dword [ebp + 0x20], 0
je 0x45ac7f
push str.Sort_by_DriveLetter
call fcn.004012a3
mov dword [ebp - 4], 0x139
mov dword [ebp - 4], ebx
call fcn.0043ed25
mov dword [esp], 0x44c314
jmp 0x45ac9f
push str.Sort_by_PhysicalDriveId
call fcn.004012a3
mov dword [ebp - 4], 0x13a
mov dword [ebp - 4], ebx
call fcn.0043ed25
mov dword [esp], 0x44c3b7
push 0x18d8
push dword [edi + 0x10]
push esi
call fcn.004a0e20
add esp, 0x10
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x15fc]
call fcn.004443d7
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0048f693
leave
ret 0x1c
push 0x80004005
call fcn.004017f4
int3