Function at 0x63d5f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x3d8
mov eax, dword [ecx]
mov edi, dword [ecx + 8]
mov dword [ebp - 0x320], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x328], eax
test edi, edi
je 0x63e5ee
mov dword [esp], edi
call fcn.0064f2c0
cmp byte [0x90251c], 0
jne 0x63e600
mov ecx, dword [0x9045cc]
mov edx, 1
xor eax, eax
test ecx, ecx
jne 0x63e61c
mov dword [esp + 0xc], 6
mov dword [esp + 8], 0
mov dword [esp + 4], edx
mov dword [esp], eax
mov ecx, dword [ebp - 0x320]
call fcn.004dbf50
mov dword [ebp - 0x31c], eax
sub esp, 0x10
mov dword [esp + 4], 0
mov dword [esp], 2
mov ecx, dword [ebp - 0x31c]
call fcn.004e6b70
mov ebx, dword [edi + 0x128]
mov dword [ebp - 0x30c], eax
sub esp, 8
mov esi, eax
test ebx, ebx
je 0x63d6e4
mov dword [esp], str.Network_name:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, esi
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.network_name
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.004da140
sub esp, 0x18
mov ebx, dword [edi + 0x120]
test ebx, ebx
je 0x63d72f
mov dword [esp], str.Volume_name:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.volume_name
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
mov ebx, dword [edi + 0x124]
test ebx, ebx
je 0x63d77a
mov dword [esp], str.File_system:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.filesystem
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
mov ebx, dword [edi + 0x1c4]
test ebx, ebx
je 0x63d7c5
mov dword [esp], str.Vendor:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.vendor
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
mov ebx, dword [edi + 0x1c8]
test ebx, ebx
je 0x63d810
mov dword [esp], str.Model:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.model
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
mov eax, dword [edi + 0xc8]
mov byte [ebp - 0x220], 0
test eax, eax
je 0x63f880
add eax, 0x40
mov dword [esp + 8], 8
mov dword [esp + 4], eax
lea eax, [ebp - 0x220]
mov dword [ebp - 0x310], eax
mov esi, eax
mov dword [esp], eax
call fcn.00723a30
mov byte [ebp - 0x218], 0
mov dword [esp + 4], 1
mov dword [esp], esi
call fcn.00504140
cmp byte [ebp - 0x220], 0
je 0x63f88c
mov dword [esp], str.Revision:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.revision
mov dword [esp + 8], 0xe
mov edx, dword [ebp - 0x310]
mov dword [esp], eax
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
mov ebx, dword [edi + 0x1d0]
test ebx, ebx
je 0x63d900
mov dword [esp], str.Serial_number:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.serial
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
mov eax, dword [edi + 0x90]
test eax, eax
je 0x63d9ef
mov ebx, dword [edi + 0x1dc]
test ebx, ebx
je 0x63d959
mov dword [esp], str.USB_vendor:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.usb_vendor
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
mov ebx, dword [edi + 0x1e0]
test ebx, ebx
je 0x63d9a4
mov dword [esp], str.USB_model:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.usb_model
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
mov ebx, dword [edi + 0x1e4]
test ebx, ebx
je 0x63d9ef
mov dword [esp], str.USB_serial_number:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.usb_serial
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
cmp byte [edi + 0x28c], 0
je 0x63db10
mov eax, dword [edi + 0x1e8]
test eax, eax
je 0x63db10
lea eax, [ebp - 0x2e0]
mov dword [ebp - 0x318], eax
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0063b360
cmp byte [ebp - 0x2e0], 0
je 0x63da43
cmp dword [ebp - 0x2e0], 0x656e6f6e
je 0x642976
mov dword [esp], 0xf
mov ecx, dword [ebp - 0x30c]
mov ebx, 2
call fcn.004da010
sub esp, 4
lea esi, [esi]
mov eax, dword [ebp - 0x318]
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.0063b360
mov esi, eax
test eax, eax
je 0x63dae5
lea eax, [ebp - 0x2a0]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.0063b980
mov dword [esp], eax
call fcn.00723840
mov dword [ebp - 0x324], eax
lea eax, [ebp - 0x11c]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0063b810
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov ecx, dword [ebp - 0x324]
mov dword [esp + 8], 0xf
mov dword [esp + 0xc], ecx
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
sub esp, 0x18
add ebx, 1
cmp ebx, 8
jne 0x63da60
mov dword [esp], 0xf
mov ecx, dword [ebp - 0x30c]
call fcn.004da010
sub esp, 4
lea esi, [esi]
lea esi, [esi]
mov dword [esp + 0xc], 1
mov eax, dword [ebp - 0x310]
mov dword [esp + 8], eax
mov edx, dword [edi + 0x3c]
mov eax, dword [edi + 0x38]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00502d20
mov dword [esp], str.Sectors:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.sectors
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
cmp byte [edi + 0xd0], 0
je 0x63db96
mov eax, dword [edi + 0xf4]
mov edx, dword [edi + 0xf0]
mov esi, eax
or esi, edx
jne 0x6413e0
mov ebx, dword [edi + 0x60]
mov byte [ebp - 0x324], 0
test ebx, ebx
je 0x63dc2a
mov esi, dword [edi + 0x64]
test esi, esi
setne dl
cmp ebx, esi
setne al
and dl, al
mov byte [ebp - 0x324], dl
jne 0x6416f5
mov eax, dword [ebp - 0x310]
mov dword [esp], ebx
sar ebx, 0x1f
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call fcn.00502fd0
mov dword [esp], str.Sector_size:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.sector_size
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
mov eax, dword [edi + 0x68]
test eax, eax
jne 0x641690
mov dword [esp + 8], 0x6c1
mov ebx, 0x7fbe6c
mov dword [esp + 4], str.drive
mov dword [esp], 0
call fcn.007101f0
mov dword [esp + 0xc], 0
cmp eax, str.drive
cmove eax, ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x310]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0063c760
mov dword [esp], str.Capacity:
mov esi, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.capacity
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
cmp byte [edi + 0xd0], 0
je 0x63dced
mov eax, dword [edi + 0xfc]
or eax, dword [edi + 0xf8]
jne 0x6415f8
mov ecx, dword [edi + 0xd8]
mov ebx, dword [edi + 0xdc]
mov eax, ecx
mov edx, ebx
or eax, dword [edi + 0x38]
or edx, dword [edi + 0x3c]
or eax, edx
jne 0x63e62c
mov esi, dword [edi + 0x78]
test esi, esi
je 0x63dd20
mov edx, dword [edi + 0x3d4]
mov eax, dword [edi + 0x3d0]
mov esi, edx
or esi, eax
jne 0x641553
mov edx, dword [edi + 0x3cc]
mov eax, dword [edi + 0x3c8]
mov esi, edx
or esi, eax
jne 0x6414ae
mov dword [esp], 0xf
mov ecx, dword [ebp - 0x30c]
call fcn.004da010
sub esp, 4
cmp byte [edi + 0xd0], 0
jne 0x63f820
xor eax, eax
cmp eax, dword [edi + 0x38]
sbb eax, dword [edi + 0x3c]
jl 0x63f7f5
mov eax, dword [edi + 0x1b0]
test eax, eax
jne 0x6401d1
nop
mov eax, dword [ebp - 0x310]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0063cea0
cmp byte [ebp - 0x220], 0
jne 0x63f979
mov eax, dword [0x900414]
test eax, eax
jle 0x63de87
mov ebx, dword [edi + 0x230]
test ebx, ebx
je 0x63dde4
mov dword [esp], str.Device_name:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.device_name
mov dword [esp + 8], 0xe
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
mov eax, dword [0x900414]
sub esp, 0x18
test eax, eax
jle 0x63de87
mov ebx, dword [edi + 0x248]
test ebx, ebx
je 0x63de38
mov dword [esp], str.PnP_Device_ID:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.pnp_device_id
mov dword [esp + 8], 4
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
mov eax, dword [0x900414]
sub esp, 0x18
test eax, eax
jle 0x63de87
mov eax, dword [edi + 0xb8]
test eax, eax
jle 0x63de87
mov dword [esp], str.used_as_dongle
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.dongle
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov dword [esp], 0x7faee7
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
mov eax, dword [edi + 0xa8]
test eax, eax
je 0x63dfcc
mov edx, dword [eax + 0x54]
mov dword [esp + 0x14], edx
mov eax, dword [eax + 0x10]
mov dword [esp + 0xc], 0x30013d0
mov dword [esp + 0x10], eax
mov dword [esp + 8], str._l_08X._08X__s__l_
mov dword [esp + 4], 0x104
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723ce0
mov dword [esp], str.Connected_to
call fcn.007101e8
mov dword [esp + 4], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.connected_to
mov dword [esp + 8], 0xf
mov dword [esp], eax
mov ebx, dword [ebp - 0x30c]
mov ecx, ebx
call fcn.004da390
mov eax, dword [edi + 0xa8]
sub esp, 0x18
mov edx, dword [eax + 0x40]
mov dword [esp + 0x14], edx
mov edx, dword [eax + 0x3c]
mov dword [esp + 0x10], edx
mov eax, dword [eax + 0x38]
mov dword [esp], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], str._02x__02x__x
mov dword [esp + 4], 0x104
call fcn.00723ce0
mov dword [esp], str.PCI_bus_device_function
call fcn.007101e8
mov dword [esp + 4], esi
mov ecx, ebx
mov esi, ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.connected_bdf
mov dword [esp + 8], 0xe
mov dword [esp], eax
call fcn.004da390
mov ebx, dword [edi + 0xb0]
mov byte [ebp - 0x220], 0
sub esp, 0x18
test ebx, ebx
je 0x63dfcc
mov dword [esp], str.Connector_name
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, esi
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.connector_name
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.004da390
sub esp, 0x18
mov dword [esp], 0xf
mov ecx, dword [ebp - 0x30c]
call fcn.004da010
mov eax, dword [edi + 0x80]
sub esp, 4
test eax, eax
jne 0x63f9c5
cmp byte [edi + 0x294], 0
je 0x63f930
cmp byte [edi + 0x295], 0
je 0x63e136
test byte [0x901e9b], 8
je 0x63e026
mov eax, edi
call fcn.00638460
cmp byte [edi + 0x295], 0
je 0x63e136
mov esi, dword [edi + 0x2a0]
xor ebx, ebx
test esi, esi
jg 0x63e04c
jmp 0x63e105
cmp dword [edi + 0x2a0], ebx
jle 0x63e105
mov esi, dword [edi + ebx*4 + 0x2a4]
mov ecx, ebx
add ebx, 1
test esi, esi
je 0x63e040
mov dword [ebp - 0x318], ecx
mov dword [esp], str._dC
call fcn.007101e8
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x310]
mov dword [esp], eax
call fcn.00723cb0
mov ecx, dword [ebp - 0x318]
test ecx, ecx
je 0x63f950
lea esi, [ebp - 0x11c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.temperature__u
mov dword [esp], esi
call fcn.00723cb0
mov dword [esp], esi
call fcn.00723840
mov dword [esp], str.Temperature:
mov esi, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xf
mov esi, dword [ebp - 0x310]
mov dword [esp], eax
mov dword [esp + 4], esi
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
cmp dword [edi + 0x2a0], ebx
jg 0x63e04c
mov ebx, dword [edi + 0x29c]
test ebx, ebx
jne 0x641446
mov ebx, dword [edi + 0x298]
test ebx, ebx
jne 0x641378
mov dword [esp], 0xf
mov ecx, dword [ebp - 0x30c]
call fcn.004da010
sub esp, 4
mov ebx, dword [edi + 0xa0]
cmp ebx, 1
je 0x63fde9
lea eax, [ebx - 0x401]
cmp eax, 0xfbfd
ja 0x63e1b5
mov dword [esp], str._d_rpm
call fcn.007101e8
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723cb0
mov dword [esp], str.Nominal_rotation_rate:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.nominal_rotation_rate
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
cmp dword [edi + 0xa4], 5
ja case.0x63e1c8.0
mov eax, dword [edi + 0xa4]
jmp dword [eax*4 + 0x7fd820]
mov edx, dword [edi + 0x318]
mov ecx, 0x800
mov eax, dword [edx]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xf
bswap eax
cmp eax, ecx
mov dword [esp + 4], edx
cmova eax, ecx
mov dword [esp], edx
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0x31c]
call fcn.004e72d0
sub esp, 0x14
lea esi, [esi]
cmp byte [edi + 0xd0], 0
je 0x63e238
mov esi, dword [0x9045cc]
test esi, esi
jne 0x63e238
mov ebx, dword [edi + 0xec]
test ebx, ebx
jne 0x6419a2
lea esi, [esi]
cmp dword [0x900414], 1
jle 0x640843
mov ecx, dword [edi + 0xbc]
test ecx, ecx
je 0x63e2da
mov edx, dword [0x9045cc]
mov ebx, 3
test edx, edx
jne 0x6408a2
mov dword [esp], str.IDENTIFY_Raw_Data
call fcn.007101e8
mov edx, dword [edi + 0x28]
test edx, edx
je 0x63e27c
mov edx, dword [edx + 0x50]
mov dword [esp], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x320]
call fcn.004e7600
mov dword [ebp - 0x31c], eax
mov ecx, eax
mov eax, dword [edi + 0xbc]
sub esp, 0x14
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xf
mov dword [esp + 8], 0x200
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.004e72d0
sub esp, 0x14
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x63e36f
mov eax, dword [0x9045cc]
mov ebx, 3
test eax, eax
je 0x63e2fb
mov ebx, 4
mov dword [esp], str.NVMe_Raw_Data
call fcn.007101e8
mov edx, dword [edi + 0x28]
test edx, edx
je 0x63e311
mov edx, dword [edx + 0x50]
mov dword [esp], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x320]
call fcn.004e7600
mov dword [ebp - 0x31c], eax
mov ecx, eax
mov eax, dword [edi + 0xc8]
sub esp, 0x14
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0xf
mov dword [esp + 8], 0x1000
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.004e72d0
sub esp, 0x14
mov eax, dword [edi + 0x480]
test eax, eax
je 0x63e400
cmp dword [0x9045cc], 1
mov dword [esp], str.NVMe_Sanitize_Status_Raw_Data
mov ebx, 3
sbb ebx, 0xffffffff
call fcn.007101e8
mov edx, dword [edi + 0x28]
test edx, edx
je 0x63e3a2
mov edx, dword [edx + 0x50]
mov dword [esp], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x320]
call fcn.004e7600
mov dword [ebp - 0x31c], eax
mov ecx, eax
mov eax, dword [edi + 0x480]
sub esp, 0x14
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0xf
mov dword [esp + 8], 0x200
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.004e72d0
sub esp, 0x14
mov eax, dword [edi + 0x290]
test eax, eax
je 0x63e491
cmp dword [0x9045cc], 1
mov dword [esp], str.Extended_CSD
mov ebx, 3
sbb ebx, 0xffffffff
call fcn.007101e8
mov edx, dword [edi + 0x28]
test edx, edx
je 0x63e433
mov edx, dword [edx + 0x50]
mov dword [esp], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x320]
call fcn.004e7600
mov dword [ebp - 0x31c], eax
mov ecx, eax
mov eax, dword [edi + 0x290]
sub esp, 0x14
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xf
mov dword [esp + 8], 0x200
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.004e72d0
sub esp, 0x14
cmp dword [0x900414], 4
jle 0x640880
mov eax, dword [edi + 0x410]
test eax, eax
je 0x63e5be
cmp dword [0x9045cc], 1
mov ebx, 3
sbb ebx, 0xffffffff
mov dword [esp], str.DCO_Identify_Raw_Data
call fcn.007101e8
mov edx, dword [edi + 0x28]
test edx, edx
je 0x63e4d1
mov edx, dword [edx + 0x50]
mov dword [esp], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x320]
call fcn.004e7600
mov dword [ebp - 0x31c], eax
mov ecx, eax
mov eax, dword [edi + 0x410]
sub esp, 0x14
mov dword [esp + 0x10], 0
mov dword [esp + 4], eax
mov dword [esp], eax
mov dword [esp + 0xc], 0xf
mov dword [esp + 8], 0x200
call fcn.004e72d0
mov eax, dword [edi + 0x410]
pxor xmm0, xmm0
sub esp, 0x14
lea edx, [eax + 0x200]
nop
movdqu xmm3, xmmword [eax]
add eax, 0x10
paddb xmm0, xmm3
cmp edx, eax
jne 0x63e540
movdqa xmm1, xmm0
mov dword [esp], str.Checksum:_0x_02x
psrldq xmm1, 8
paddb xmm0, xmm1
pxor xmm1, xmm1
psadbw xmm0, xmm1
movd ebx, xmm0
call fcn.007101e8
movzx ebx, bl
mov dword [esp + 4], pe_nt_image_headers32
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723ce0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], esi
mov ecx, dword [ebp - 0x31c]
call fcn.004e6cd0
sub esp, 0x10
cmp byte [0x90251c], 0
je 0x63e5ee
mov eax, dword [ebp - 0x328]
test eax, eax
je 0x63e5ee
mov dword [esp + 8], 0
mov esi, dword [ebp - 0x31c]
mov dword [esp + 4], esi
mov eax, dword [eax + 0x3c]
mov dword [esp], eax
call fcn.0053c3f0
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
mov ebx, dword [edi + 0x4d8]
test ebx, ebx
je 0x63d638
mov esi, dword [0x9045cc]
test esi, esi
je 0x64027f
mov eax, dword [edi + 0x1cc]
mov edx, 3
jmp 0x63d64d
mov eax, dword [ebp - 0x310]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call fcn.00502fd0
mov dword [esp], str.Free_capacity:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.free_capacity
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp 0x63dced
mov dword [esp], str.less_than_1.8_inch
call fcn.007101e8
mov dword [esp], str.Form_factor:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.form_factor
mov dword [esp + 8], 0xe
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
cmp byte [edi + 0x3e0], 0
je 0x63e9d1
mov edx, dword [edi + 0x3f4]
mov eax, dword [edi + 0x3f0]
mov esi, edx
or esi, eax
je 0x63e9d1
add eax, 1
adc edx, 0
cmp byte [ebp - 0x324], 0
mov dword [esp + 0xc], 1
mov esi, dword [ebp - 0x310]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], esi
je 0x641782
call fcn.00502d20
mov dword [esp], str.Logical_sectors_incl._HPA:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.logical_sectors_incl_hpa
mov dword [esp + 4], ebx
mov dword [esp + 8], 0xf
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
mov eax, dword [ebp - 0x310]
sub esp, 0x18
mov dword [esp + 8], eax
mov eax, dword [edi + 0x3f0]
mov esi, dword [edi + 0x60]
mov edx, dword [edi + 0x3f4]
add eax, 1
adc edx, 0
mov ecx, eax
mov eax, esi
mov dword [ebp - 0x318], ecx
mov ebx, edx
cdq
mov eax, dword [ebp - 0x318]
mov ecx, ebx
mov dword [ebp - 0x314], ebx
imul edx, eax
imul ecx, esi
add ecx, edx
mul esi
add edx, ecx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00502fd0
mov dword [esp], str.Total_capacity_incl._HPA:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 4], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.capacity_incl_hpa
mov dword [esp + 8], 0xf
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
mov ebx, dword [edi + 0x64]
sub esp, 0x18
mov dword [ebp - 0x32c], ebx
test ebx, ebx
je 0x64134d
mov esi, dword [edi + 0x60]
cmp ebx, esi
je 0x64134d
jge 0x64305a
mov eax, esi
xor ecx, ecx
lea esi, [esi]
nop
sar eax, 1
add ecx, 1
cmp ebx, eax
jl 0x63e830
mov dword [ebp - 0x32c], ebx
mov eax, dword [edi + 0x3f0]
mov edx, dword [edi + 0x3f4]
add eax, 1
adc edx, 0
mov dword [ebp - 0x318], eax
mov eax, dword [edi + 0x38]
xor ebx, ebx
mov dword [ebp - 0x314], edx
mov edx, dword [edi + 0x3c]
shld edx, eax, cl
shl eax, cl
test cl, 0x20
mov ecx, dword [ebp - 0x318]
cmovne edx, eax
cmovne eax, ebx
mov ebx, dword [ebp - 0x314]
sub ecx, eax
mov eax, esi
sbb ebx, edx
cdq
mov dword [ebp - 0x318], ecx
idiv dword [ebp - 0x32c]
mov dword [ebp - 0x314], ebx
mov ebx, eax
sar ebx, 0x1f
cmp dword [ebp - 0x318], eax
mov eax, dword [ebp - 0x314]
sbb eax, ebx
setb bl
cmp byte [ebp - 0x324], 0
mov dword [esp + 0xc], 1
mov eax, dword [ebp - 0x310]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x318]
mov edx, dword [ebp - 0x314]
mov dword [esp], eax
mov dword [esp + 4], edx
je 0x6417b2
call fcn.00502d20
mov dword [esp], str.Logical_sectors_in_HPA:
mov esi, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.logical_sectors_in_hpa
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
test bl, bl
je 0x63e9bc
test byte [0x77349f], 1
jne 0x641fb3
mov dword [esp], str.It_will_be_ignored.
call fcn.007101e8
mov dword [esp], str.Probably_just_a_rounding_effect_that_the_drive_could_have_handled_better.
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], str._s__s
mov eax, dword [ebp - 0x310]
mov dword [esp], eax
call fcn.00723cb0
mov dword [esp], str.Note_about_the_small_HPA_DCO:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf
mov edx, dword [ebp - 0x310]
mov dword [esp], eax
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
mov dword [esp], 0xf
mov ecx, dword [ebp - 0x30c]
call fcn.004da010
sub esp, 4
mov eax, dword [edi + 0xbc]
test eax, eax
je 0x63f3b0
movzx ebx, byte [eax + 0x5e]
test bx, bx
je 0x63ea6e
movzx esi, word [eax + 0x76]
test si, 0x100
jne 0x64024f
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov edx, dword [ebp - 0x310]
mov dword [esp + 4], edx
movzx eax, byte [eax + 0x52]
mov dword [esp], eax
call fcn.00502a70
mov dword [esp], str.Sectors_per_interrupt:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.sectors_per_int
mov dword [esp + 8], 0xe
mov edx, dword [ebp - 0x310]
mov dword [esp], eax
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
mov eax, dword [edi + 0xbc]
sub esp, 0x18
test byte [eax + 0x6a], 4
jne 0x640d05
cmp byte [edi + 0xd0], 0
je 0x63f3bd
cmp byte [edi + 0xc0], 0
je 0x63f52e
mov ecx, dword [edi + 0xc8]
test ecx, ecx
je 0x640d88
mov edx, dword [edi + 0x460]
test edx, edx
jne 0x63fe3d
mov dword [esp], 0x7fc955
call fcn.007101e8
mov dword [esp], str.Sanitize_feature_set:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x7fbe89
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
cmp byte [edi + 0x484], 0
je 0x640043
mov dword [esp], 0x7fc951
call fcn.007101e8
mov ebx, eax
mov dword [esp], str.NVMe_Format_support:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.nvme_format
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
mov eax, dword [edi + 0x27c]
cmp eax, 1
je 0x640c50
cmp eax, 2
je 0x640915
test eax, eax
je 0x6408e7
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x63ec7e
mov dword [esp], 0xf
mov ecx, dword [ebp - 0x30c]
call fcn.004da010
mov eax, dword [edi + 0xc8]
sub esp, 4
movzx edx, word [eax]
test dx, dx
jne 0x6412b7
movzx edx, word [eax + 2]
test dx, dx
jne 0x64119d
movzx edx, byte [eax + 0x107]
test dl, dl
jne 0x64122a
mov edx, dword [eax + 0x11c]
mov ecx, dword [eax + 0x118]
mov esi, edx
or esi, ecx
jne 0x64100e
mov edx, dword [eax + 0x12c]
mov ecx, dword [eax + 0x128]
mov esi, edx
or esi, ecx
jne 0x64111c
movzx edx, byte [eax + 0x204]
test dl, dl
jne 0x64108f
test byte [eax + 0x20d], 1
je 0x6408b8
mov dword [esp], 0x7fc951
call fcn.007101e8
mov ebx, eax
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], str.NVMe_info
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x7fbff6
mov dword [esp + 0x14], 0
cmp eax, str.NVMe_info
mov dword [esp + 0x10], 0
cmove eax, edx
mov dword [esp + 0xc], str.nvme_volatile_cache
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
sub esp, 0x18
mov eax, dword [0x900414]
test eax, eax
je 0x63f098
mov eax, dword [edi + 0x264]
test eax, eax
je 0x63ee41
lea eax, [ebp - 0x2d8]
lea ecx, [ebp - 0x2e0]
mov dword [ebp - 0x318], ecx
mov dword [ebp - 0x334], eax
mov dword [ebp - 0x2e0], eax
mov dword [esp + 4], 0x7faee7
mov dword [esp], 0x7faee7
call fcn.00638650
mov eax, dword [edi + 0x264]
sub esp, 8
movzx eax, byte [eax + 3]
mov dword [ebp - 0x32c], eax
mov esi, eax
mov dword [esp], 0xf
mov ecx, dword [ebp - 0x30c]
call fcn.004da010
sub esp, 4
mov eax, esi
test esi, esi
je 0x6418dc
sub eax, 1
xor ebx, ebx
lea esi, [ebp - 0x2a0]
mov dword [ebp - 0x330], eax
jmp 0x63ed27
add ebx, 1
cmp dword [ebp - 0x32c], ebx
je 0x63ede2
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 2
mov dword [esp + 8], esi
mov eax, dword [edi + 0x264]
movzx eax, byte [eax + ebx + 4]
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00502f00
mov dword [esp], eax
mov dword [ebp - 0x324], eax
call fcn.00723a18
mov ecx, 0x3fffffff
sub ecx, dword [ebp - 0x2dc]
mov edx, dword [ebp - 0x324]
cmp ecx, eax
jb 0x643079
mov dword [esp + 4], eax
mov dword [esp], edx
mov ecx, dword [ebp - 0x318]
call fcn.00712120
sub esp, 8
cmp dword [ebp - 0x330], ebx
jle 0x63ed18
cmp dword [ebp - 0x2dc], 0x3fffffff
je 0x64306d
mov dword [esp + 4], 1
mov dword [esp], 0x7fd018
mov ecx, dword [ebp - 0x318]
call fcn.00712120
sub esp, 8
add ebx, 1
cmp dword [ebp - 0x32c], ebx
jne 0x63ed27
mov ebx, dword [ebp - 0x2e0]
mov dword [esp], str.Supported_log_pages
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.log_pages
mov dword [esp + 8], 4
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
mov eax, dword [ebp - 0x2e0]
mov edx, dword [ebp - 0x334]
sub esp, 0x18
cmp eax, edx
je 0x63ee41
mov dword [esp], eax
call fcn.00712028
mov esi, dword [edi + 0x268]
test esi, esi
je 0x63f098
lea eax, [ebp - 0x2d8]
lea ecx, [ebp - 0x2e0]
mov dword [ebp - 0x334], eax
mov dword [ebp - 0x2e0], eax
mov dword [ebp - 0x318], ecx
mov dword [esp + 4], 0x7faee7
mov dword [esp], 0x7faee7
call fcn.00638650
mov eax, dword [edi + 0x268]
mov ebx, dword [edi + 0x264]
sub esp, 8
movzx eax, byte [eax + 3]
mov dword [ebp - 0x32c], eax
test ebx, ebx
je 0x642988
mov eax, dword [ebp - 0x32c]
xor ebx, ebx
lea esi, [ebp - 0x2a0]
lea edx, [eax - 1]
mov dword [ebp - 0x330], edx
test eax, eax
jne 0x63eed7
jmp 0x641939
add ebx, 2
cmp dword [ebp - 0x32c], ebx
jle 0x63f032
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 2
mov dword [esp + 8], esi
mov eax, dword [edi + 0x268]
movzx eax, byte [eax + ebx + 4]
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00502f00
mov dword [esp], eax
mov dword [ebp - 0x324], eax
call fcn.00723a18
mov ecx, 0x3fffffff
sub ecx, dword [ebp - 0x2dc]
mov edx, dword [ebp - 0x324]
cmp ecx, eax
jb 0x6430a9
mov dword [esp + 4], eax
mov dword [esp], edx
mov ecx, dword [ebp - 0x318]
call fcn.00712120
sub esp, 8
cmp dword [ebp - 0x2dc], 0x3fffffff
je 0x64309d
mov dword [esp + 4], 1
mov dword [esp], 0x7fd047
mov ecx, dword [ebp - 0x318]
call fcn.00712120
sub esp, 8
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 2
mov dword [esp + 8], esi
mov eax, dword [edi + 0x268]
movzx eax, byte [eax + ebx + 5]
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00502f00
mov dword [esp], eax
mov dword [ebp - 0x324], eax
call fcn.00723a18
mov ecx, 0x3fffffff
sub ecx, dword [ebp - 0x2dc]
mov edx, dword [ebp - 0x324]
cmp ecx, eax
jb 0x643091
mov dword [esp + 4], eax
mov dword [esp], edx
mov ecx, dword [ebp - 0x318]
call fcn.00712120
sub esp, 8
cmp dword [ebp - 0x330], ebx
jle 0x63eec8
cmp dword [ebp - 0x2dc], 0x3fffffff
je 0x643085
mov dword [esp + 4], 1
mov dword [esp], 0x7fd018
mov ecx, dword [ebp - 0x318]
call fcn.00712120
sub esp, 8
add ebx, 2
cmp dword [ebp - 0x32c], ebx
jg 0x63eed7
mov ebx, dword [ebp - 0x2e0]
mov dword [esp], str.Supported_log_pages_and_subpages
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.log_pages_subpages
mov dword [esp + 8], 4
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
mov eax, dword [ebp - 0x2e0]
mov esi, dword [ebp - 0x334]
sub esp, 0x18
cmp eax, esi
je 0x63f098
mov dword [esp], eax
call fcn.00712028
lea esi, [esi]
mov eax, dword [edi + 0x78]
mov ecx, dword [edi + 0xbc]
mov dword [ebp - 0x30c], eax
test ecx, ecx
je 0x6402c0
test eax, eax
jne 0x6402cb
mov edx, dword [0x773530]
test edx, edx
jle 0x63e210
cmp dword [0x9045cc], 1
mov dword [esp], str.Features_Command_Sets
mov ebx, 3
sbb ebx, 0xffffffff
call fcn.007101e8
mov edx, dword [edi + 0x28]
test edx, edx
je 0x63f0ea
mov edx, dword [edx + 0x50]
mov dword [esp], edx
mov dword [esp + 8], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x320]
call fcn.004e7600
sub esp, 0x14
mov dword [ebp - 0x31c], eax
mov ecx, eax
mov dword [esp + 4], 0
mov dword [esp], 2
call fcn.004e6b70
sub esp, 8
mov dword [ebp - 0x324], eax
mov esi, eax
mov dword [esp], str.supported___active
call fcn.007101e8
mov dword [esp], str.Feature_Command_Set
mov ebx, eax
call fcn.007101e8
mov dword [esp + 4], ebx
mov ecx, esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf
mov dword [esp], eax
call fcn.004da140
pxor xmm0, xmm0
mov edx, 0x3220137
mov dword [ebp - 0x2e8], 0
mov byte [eax + 0xbc], 1
mov eax, 0xe0d046f
sub esp, 0x18
mov dword [ebp - 0x2e0], eax
mov eax, dword [0x805db0]
movups xmmword [ebp - 0x2a0], xmm0
mov dword [ebp - 0x2d8], eax
mov eax, 0x100
mov word [ebp - 0x29a], ax
mov eax, dword [edi + 0xbc]
mov dword [ebp - 0x2d4], 0
mov dword [ebp - 0x2d0], 0
mov dword [ebp - 0x2cc], 0
mov dword [ebp - 0x2dc], edx
movups xmmword [ebp - 0x298], xmm0
movzx esi, word [eax + 0xa8]
movzx ebx, word [eax + 0xa4]
movzx ecx, word [eax + 0xee]
movzx edx, word [eax + 0xa6]
mov dword [ebp - 0x318], ebx
movd xmm0, dword [eax + 0x9a]
mov dword [ebp - 0x330], esi
mov ebx, ecx
movd xmm2, dword [eax + 0x8a]
mov word [ebp - 0x33c], si
mov esi, dword [ebp - 0x318]
shl ebx, 0x10
movdqa xmm1, xmm0
mov word [ebp - 0x338], dx
shl edx, 0x10
punpcklwd xmm1, xmm2
or esi, edx
mov dword [ebp - 0x334], ebx
mov edx, dword [ebp - 0x330]
pshuflw xmm1, xmm1, 0xe6
mov word [ebp - 0x32c], cx
mov ecx, esi
mov esi, dword [ebp - 0x334]
mov dword [ebp - 0x300], ecx
movzx ecx, word [eax + 0xac]
or esi, edx
movd dword [ebp - 0x2f8], xmm1
mov dword [ebp - 0x2fc], esi
movzx esi, word [eax + 0xaa]
shl ecx, 0x10
movzx edx, word [eax + 0xf0]
movzx ebx, word [eax + 0xae]
movzx eax, word [eax + 0x9e]
or esi, ecx
shl edx, 0x10
mov dword [ebp - 0x318], esi
mov word [ebp - 0x2e8], ax
or edx, ebx
movzx eax, word [ebp - 0x32c]
mov dword [ebp - 0x314], edx
movq xmm4, qword [ebp - 0x318]
and ax, 0xc000
movq qword [ebp - 0x2f0], xmm4
cmp ax, 0x4000
je 0x6427af
movzx eax, word [ebp - 0x338]
mov esi, 0x10
and ax, 0xc000
cmp ax, 0x4000
jne 0x63f321
movzx eax, word [ebp - 0x33c]
and ax, 0xc000
cmp ax, 0x4000
mov eax, 0x20
cmovne eax, esi
mov esi, eax
mov dword [ebp - 0x318], edi
mov ebx, 0xe0d046f
mov edi, dword [ebp - 0x30c]
jmp 0x63f34f
add edi, 1
cmp esi, edi
je 0x640e91
mov eax, edi
shr eax, 5
mov ebx, dword [ebp + eax*4 - 0x2e0]
mov eax, 1
mov ecx, edi
shl eax, cl
test eax, ebx
je case.0x63f3a9.4
mov ecx, edi
mov ebx, eax
shr ecx, 5
and ebx, dword [ebp + ecx*4 - 0x300]
je 0x6408ac
mov ebx, eax
and ebx, dword [ebp + ecx*4 - 0x2a0]
je 0x641769
mov dword [esp], 0x7fc951
call fcn.007101e8
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x310]
mov dword [esp], eax
call fcn.00723a00
mov byte [ebp - 0x11c], 0
cmp edi, 0x4f
ja case.0x63f3a9.4
jmp dword [edi*4 + 0x7fd838]
cmp byte [edi + 0xd0], 0
jne 0x63ea92
cmp byte [edi + 0x2c4], 0
je 0x640056
mov eax, dword [edi + 0x2c8]
test eax, eax
jne 0x641996
mov dword [esp], str.supported__deactivated
call fcn.007101e8
mov dword [esp], str.SMART:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.smart
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
cmp byte [edi + 0x315], 0
je 0x63f49c
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], str.SSD_error
mov dword [esp], 0
call fcn.007101f0
mov dword [esp], str.WARNING
cmp eax, str.SSD_error
mov ebx, eax
mov eax, 0x7fbf04
cmove ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.smart_warning_read_only
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
sub esp, 0x18
mov esi, dword [edi + 0xc8]
test esi, esi
je 0x640d71
cmp byte [edi + 0x2cc], 0
je 0x64133a
mov dword [esp], 0x7fc951
call fcn.007101e8
mov ebx, eax
mov dword [esp], str.SMART_self_test
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.smart_selftest
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
sub esp, 0x18
cmp byte [edi + 0x2cc], 0
jne 0x641836
mov ebx, dword [edi + 0xbc]
test ebx, ebx
je 0x63ea92
cmp byte [edi + 0xc0], 0
jne 0x63ea92
mov eax, dword [ebp - 0x310]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0063cbd0
mov dword [esp], str.Password_protection:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.password
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
mov eax, dword [edi + 0xbc]
sub esp, 0x18
test byte [eax + 0xa4], 2
je 0x63f62a
movzx esi, byte [eax + 0xb4]
movzx eax, byte [eax + 0xb2]
lea ebx, [eax + eax]
test si, si
je 0x641ff6
mov dword [esp], str.Secure_Erase:__d_min___Enhanced_SE:__d_min
call fcn.007101e8
mov dword [esp + 8], ebx
mov edx, eax
movzx eax, si
add eax, eax
mov dword [esp + 4], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x310]
mov dword [esp], eax
call fcn.00723cb0
mov dword [esp], str.Erase_duration:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.erase_duration
mov dword [esp + 8], 0xf
mov edx, dword [ebp - 0x310]
mov dword [esp], eax
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
mov eax, dword [edi + 0xbc]
sub esp, 0x18
test byte [eax + 0x77], 0x10
je 0x6417e2
mov dword [esp], str.BLOCK_ERASE
call fcn.007101e8
mov dword [esp], str.OVERWRITE
mov esi, eax
call fcn.007101e8
mov dword [ebp - 0x324], eax
mov dword [esp], str.CRYPTO_SCRAMBLE
call fcn.007101e8
mov dword [ebp - 0x318], eax
mov dword [esp], 0x7fc4dc
call fcn.007101e8
mov dword [esp], 0x7fc951
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], 2
mov ecx, dword [ebp - 0x324]
mov dword [esp + 0x1c], 1
mov dword [esp + 0x20], ecx
mov edx, dword [ebp - 0x318]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov eax, dword [edi + 0xbc]
movzx eax, word [eax + 0x76]
shr ax, 0xd
movzx eax, ax
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00505740
mov dword [esp], str.Sanitize_feature_set:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x7fbe89
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
cmp byte [edi + 0x474], 0
je 0x63f7b1
movzx eax, word [edi + 0x476]
test ax, ax
js 0x642f3e
test ah, 0x40
jne 0x642ec6
test ah, 0x20
je 0x63f7b1
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], str.sanitize_status
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x7fbf53
mov dword [esp + 0x14], 0
cmp eax, str.sanitize_status
mov dword [esp + 0x10], 0
cmove eax, edx
mov dword [esp + 0xc], 0x7fcaa8
mov dword [esp + 8], 0xf
mov dword [esp + 4], eax
mov dword [esp], 0x7faee7
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
sub esp, 0x18
cmp byte [edi + 0x4b0], 0
je 0x6418ac
mov dword [esp], 0x7fc951
call fcn.007101e8
mov ebx, eax
mov dword [esp], str.TCG_feature_set:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x7fcb1a
jmp 0x63eb3c
mov dword [esp], edi
call fcn.00638d10
mov eax, dword [edi + 0x1b4]
test eax, eax
jns 0x640092
cmp byte [edi + 0xd0], 0
je 0x63dd50
lea esi, [esi]
nop
mov eax, dword [edi + 0x1c0]
test eax, eax
je 0x63dd60
mov ebx, dword [eax + 0x1cc]
mov dword [esp], str.On_physical_drive:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.on_physical_drive
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp 0x63dd60
lea eax, [ebp - 0x220]
mov dword [ebp - 0x310], eax
mov eax, dword [edi + 0xc4]
test eax, eax
je 0x63f8d7
add eax, 0x20
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a30
mov byte [ebp - 0x21c], 0
mov dword [esp + 4], 1
mov dword [esp], esi
call fcn.00504140
cmp byte [ebp - 0x220], 0
jne 0x63d86e
mov eax, dword [edi + 0xbc]
test eax, eax
je 0x63d8b5
add eax, 0x2e
mov dword [esp + 8], 8
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00506120
mov byte [ebp - 0x218], 0
mov dword [esp + 4], 1
mov dword [esp], esi
call fcn.00504140
cmp byte [ebp - 0x220], 0
je 0x63d8b5
jmp 0x63d86e
test byte [0x901e9b], 8
je 0x63e019
mov eax, edi
call fcn.00638460
jmp 0x63e019
mov dword [ebp - 0x11c], 0x706d6574
lea esi, [ebp - 0x11c]
mov dword [ebp - 0x118], 0x74617265
mov dword [ebp - 0x114], 0x657275
jmp 0x63e0ac
mov dword [esp], str.Interface_type:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.interface_type
mov dword [esp + 8], 0xf
mov edx, dword [ebp - 0x310]
mov dword [esp], eax
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp 0x63dd7f
mov dword [esp], edi
call fcn.00650760
test eax, eax
jle 0x63dfef
mov eax, dword [edi + 0x290]
movzx ebx, byte [eax + 0xc0]
mov dword [esp], 0x7fbc1c
call fcn.007101e8
mov dword [esp + 0x4c], 0x7fc3d8
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0x7fc3dc
mov dword [esp + 0x40], 1
mov dword [esp + 0x3c], 0x7fc3e0
mov dword [esp + 0x38], 2
mov dword [esp + 0x34], 0x7fc3e4
mov dword [esp + 0x30], 3
mov dword [esp + 0x2c], str.4.41
mov dword [esp + 0x28], 5
mov dword [esp + 0x24], 0x7fc3ed
mov dword [esp + 0x20], 6
mov dword [esp + 0x1c], 0x7fc3f1
mov dword [esp + 0x18], 7
mov dword [esp + 0x14], 0x7fc3f5
mov dword [esp + 0x10], 8
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x310]
mov dword [esp], eax
call fcn.00505810
mov dword [esp], str.MMC_specification_version
mov esi, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.mmc_spec
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
sub esp, 0x18
cmp ebx, 5
jg 0x6429a2
test byte [0x9003e8], 8
je 0x63fdcf
cmp ebx, 5
jne 0x63fdcf
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fc438
mov dword [esp], 0
call fcn.007101f0
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fc45c
cmp eax, 0x7fc438
mov esi, eax
mov eax, 0x7fbe89
mov dword [esp], 0
cmove esi, eax
call fcn.007101f0
cmp eax, 0x7fc45c
mov edx, eax
mov eax, 0x7fbe92
cmove edx, eax
mov dword [ebp - 0x32c], edx
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fc47c
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x7fc47c
mov ecx, eax
mov eax, 0x7fbe97
cmove ecx, eax
mov dword [ebp - 0x318], ecx
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fc4b4
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x7fbeb4
mov dword [esp + 0x30], esi
cmp eax, 0x7fc4b4
mov dword [esp + 0x2c], 6
cmove eax, edx
mov edx, dword [ebp - 0x32c]
mov dword [esp + 0x24], 4
mov dword [esp + 0x28], edx
mov ecx, dword [ebp - 0x318]
mov dword [esp + 0x1c], 2
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 4
mov dword [esp + 0xc], 0x7fc4dc
mov dword [esp + 8], 0x7fc4df
mov eax, dword [edi + 0x290]
movzx eax, byte [eax + 0xe7]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x310]
mov dword [esp], eax
call fcn.00505740
mov dword [esp], str.MMC_secure_feature_support
mov esi, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.mmc_secure_features
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
sub esp, 0x18
cmp ebx, 6
jle 0x63fdcf
mov eax, dword [edi + 0x290]
movzx eax, byte [eax + 0x10]
mov byte [ebp - 0x318], al
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fc510
mov dword [esp], 0
call fcn.007101f0
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fc538
cmp eax, 0x7fc510
mov ebx, eax
mov eax, 0x7fbec1
mov dword [esp], 0
cmove ebx, eax
call fcn.007101f0
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fc56c
cmp eax, 0x7fc538
mov esi, eax
mov eax, 0x7fbed0
mov dword [esp], 0
cmove esi, eax
call fcn.007101f0
cmp eax, 0x7fc56c
mov ecx, eax
mov eax, 0x7fbeec
cmove ecx, eax
mov dword [ebp - 0x32c], ecx
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], str.MMC_secure_removal_type
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x7fbefc
mov dword [esp + 0x30], ebx
cmp eax, str.MMC_secure_removal_type
mov dword [esp + 0x2c], 3
cmove eax, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], 2
mov ecx, dword [ebp - 0x32c]
mov dword [esp + 0x1c], 1
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 4
mov dword [esp + 0xc], 0x7fc4dc
mov dword [esp + 8], 0x7fc4df
mov eax, dword [ebp - 0x318]
and eax, 0xf
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x310]
mov dword [esp], eax
call fcn.00505740
mov dword [esp], str.Secure_Removal_Type_support:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.mmc_secure_removal
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
sub esp, 0x18
mov dword [esp], 0xf
mov ecx, dword [ebp - 0x30c]
call fcn.004da010
sub esp, 4
jmp 0x63dfef
mov dword [esp], str.non_rotating_media
call fcn.007101e8
mov dword [esp], str.Nominal_rotation_rate:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.nominal_rotation_rate
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp 0x63e1b5
mov dword [esp], str.Overwrite
call fcn.007101e8
mov dword [ebp - 0x324], eax
mov dword [esp], str.Block_Erase
call fcn.007101e8
mov dword [ebp - 0x318], eax
mov dword [esp], str.Crypto_Erase
call fcn.007101e8
mov dword [esp], 0x7fc4dc
mov esi, eax
call fcn.007101e8
mov dword [esp], 0x7fc951
mov ebx, eax
call fcn.007101e8
mov edx, dword [ebp - 0x324]
mov dword [esp + 0x24], 2
mov dword [esp + 0x28], edx
mov ecx, dword [ebp - 0x318]
mov dword [esp + 0x1c], 1
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov eax, dword [edi + 0x464]
and eax, 7
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00505740
mov dword [esp], str.Sanitize_feature_set:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.sanizize
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
mov eax, dword [edi + 0x480]
sub esp, 0x18
test eax, eax
je 0x63eafd
cmp byte [edi + 0x469], 0
je 0x63ff4b
mov edx, dword [eax + 0x10]
sub edx, 1
cmp edx, 0xfffffffd
jbe 0x6423e7
cmp byte [edi + 0x468], 0
je 0x63ff63
mov edx, dword [eax + 0xc]
sub edx, 1
cmp edx, 0xfffffffd
jbe 0x64234c
cmp byte [edi + 0x46a], 0
je 0x63ff7b
mov edx, dword [eax + 8]
sub edx, 1
cmp edx, 0xfffffffd
jbe 0x6422b1
mov edx, dword [ebp - 0x310]
mov dword [esp + 4], edx
movzx eax, word [eax + 2]
and eax, 7
mov dword [esp], eax
call fcn.006503f0
mov dword [esp], str.Result_of_last_Sanitize
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.sanitize_result
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
mov eax, dword [edi + 0x480]
sub esp, 0x18
test byte [eax + 3], 1
je 0x6418bf
mov dword [esp], 0x7fc951
call fcn.007101e8
mov ebx, eax
mov dword [esp], str.Global_Data_Erased
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.sanitize_global
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
sub esp, 0x18
cmp byte [edi + 0x484], 0
jne 0x63eb0a
mov dword [esp], 0x7fc955
call fcn.007101e8
mov ebx, eax
jmp 0x63eb18
mov dword [esp], str.not_supported
jmp 0x63f3df
mov dword [esp], str.1.8_inch
jmp 0x63e691
mov dword [esp], str.2.5_inch
jmp 0x63e691
mov dword [esp], str.3.5_inch
jmp 0x63e691
mov dword [esp], str.5.25_inch
jmp 0x63e691
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fc248
mov dword [esp], 0
call fcn.007101f0
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fc26a
cmp eax, 0x7fc248
mov esi, eax
mov eax, 0x7fbe72
mov dword [esp], 0
cmove esi, eax
call fcn.007101f0
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fc281
cmp eax, 0x7fc26a
mov ebx, eax
mov eax, 0x7fbe81
mov dword [esp], 0
cmove ebx, eax
call fcn.007101f0
cmp eax, 0x7fc281
mov edx, eax
mov eax, 0x7fbe85
cmove edx, eax
mov dword [ebp - 0x318], edx
mov dword [esp], 0x7fbc1c
call fcn.007101e8
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], 2
mov dword [esp + 0x18], 1
mov edx, dword [ebp - 0x318]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], 3
mov dword [esp + 8], eax
mov eax, dword [edi + 0x1b4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x310]
mov dword [esp], eax
call fcn.00505810
mov dword [esp], str.Partitioning_style
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.partitioning_style
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
sub esp, 0x18
cmp byte [edi + 0xd0], 0
jne 0x642030
mov eax, dword [edi + 0x1b0]
test eax, eax
je 0x640ceb
mov byte [ebp - 0x220], 0
mov esi, dword [ebp - 0x310]
xor ebx, ebx
jmp 0x64021b
mov dword [esp], esi
call fcn.00723a18
lea edx, [ebx + 0x41]
mov dword [esp + 4], 0x7fc2be
add eax, esi
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.00723cb0
add ebx, 1
cmp ebx, 0x1a
je 0x640ca4
mov eax, dword [edi + 0x1b0]
xor edx, edx
mov ecx, ebx
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x64022b
mov eax, edx
and eax, 1
or eax, 0
je 0x640209
cmp byte [ebp - 0x220], 0
je 0x6401e8
mov dword [esp], esi
call fcn.00723a18
mov edx, 0x20
mov word [esi + eax], dx
jmp 0x6401e8
mov dword [esp], str._d__current:__d_
call fcn.007101e8
mov edx, esi
mov dword [esp + 8], ebx
movzx esi, dl
mov dword [esp + 4], eax
mov dword [esp + 0xc], esi
mov eax, dword [ebp - 0x310]
mov dword [esp], eax
call fcn.00723cb0
jmp 0x63ea21
mov dword [esp], 0x7fc04b
call fcn.007101e8
mov dword [esp + 0xc], 0
mov ecx, ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004e6df0
mov dword [ebp - 0x31c], eax
sub esp, 0x10
jmp 0x63d678
mov eax, dword [edi + 0x78]
test eax, eax
je 0x63e210
test byte [0x901e99], 0x40
jne 0x63e210
mov eax, dword [0x9045cc]
test eax, eax
jne 0x63e238
mov eax, dword [edi + 0x318]
test eax, eax
je 0x642e6b
mov ebx, 3
mov dword [esp], str.Disc_Capabilities
call fcn.007101e8
mov edx, eax
mov eax, dword [edi + 0x28]
test eax, eax
je 0x640310
mov eax, dword [eax + 0x50]
mov dword [esp + 8], ebx
mov dword [esp + 4], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov ecx, dword [ebp - 0x320]
call fcn.004e7600
sub esp, 0x14
mov dword [ebp - 0x31c], eax
mov ecx, eax
mov dword [esp + 4], 0
mov dword [esp], 2
call fcn.004e6b70
mov byte [ebp - 0x220], 0
sub esp, 8
cmp byte [edi + 0x342], 0
mov ebx, eax
jne 0x6421e8
cmp byte [edi + 0x343], 0
jne 0x642225
cmp byte [edi + 0x344], 0
jne 0x64226c
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fd52c
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x7fc018
mov dword [esp + 4], esi
mov ecx, ebx
cmp eax, 0x7fd52c
mov dword [esp + 0x14], 0
cmove eax, edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf
mov dword [esp], eax
call fcn.004da390
mov byte [ebp - 0x220], 0
sub esp, 0x18
cmp byte [edi + 0x35a], 0
jne 0x642d83
cmp byte [edi + 0x35b], 0
jne 0x642e4f
cmp byte [edi + 0x35c], 0
je 0x6404b0
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov edx, 0x5752
add eax, esi
mov word [eax], dx
mov byte [eax + 2], 0
movzx eax, byte [ebp - 0x220]
mov esi, dword [ebp - 0x310]
test al, al
je 0x642eb3
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fd539
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x7fc01b
mov dword [esp + 4], esi
mov ecx, ebx
cmp eax, 0x7fd539
mov dword [esp + 0x14], 0
cmove eax, edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf
mov dword [esp], eax
call fcn.004da390
mov byte [ebp - 0x220], 0
sub esp, 0x18
cmp byte [edi + 0x34a], 0
je 0x6404ce
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov dword [esi + eax], 0x4d4f52
cmp byte [edi + 0x34c], 0
je 0x6404f9
cmp byte [ebp - 0x220], 0
jne 0x64302d
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov dword [esi + eax], 0x4d4152
cmp byte [ebp - 0x220], 0
mov esi, dword [ebp - 0x310]
je 0x642ea0
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fd548
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x7fc020
mov dword [esp + 4], esi
mov ecx, ebx
cmp eax, 0x7fd548
mov dword [esp + 0x14], 0
cmove eax, edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf
mov dword [esp], eax
call fcn.004da390
mov byte [ebp - 0x220], 0
sub esp, 0x18
cmp byte [edi + 0x34b], 0
jne 0x6428a2
cmp byte [edi + 0x34f], 0
jne 0x6428ed
cmp byte [edi + 0x350], 0
jne 0x6428ed
cmp byte [edi + 0x34d], 0
jne 0x642940
cmp byte [edi + 0x34e], 0
jne 0x642940
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fd556
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x7fc024
mov dword [esp + 4], esi
mov ecx, ebx
cmp eax, 0x7fd556
mov dword [esp + 0x14], 0
cmove eax, edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf
mov dword [esp], eax
call fcn.004da390
mov byte [ebp - 0x220], 0
sub esp, 0x18
cmp byte [edi + 0x355], 0
jne 0x642ab7
cmp byte [edi + 0x365], 0
jne 0x642af6
cmp byte [edi + 0x354], 0
jne 0x642b40
cmp byte [edi + 0x364], 0
jne 0x642b8c
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fd56a
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x7fc02e
mov dword [esp + 4], esi
mov ecx, ebx
cmp eax, 0x7fd56a
mov dword [esp + 0x14], 0
cmove eax, edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf
mov dword [esp], eax
call fcn.004da390
mov byte [ebp - 0x220], 0
sub esp, 0x18
cmp byte [edi + 0x37a], 0
jne 0x6427dc
cmp byte [edi + 0x37b], 0
jne 0x642825
cmp byte [edi + 0x37c], 0
jne 0x642825
cmp byte [edi + 0x37d], 0
jne 0x64286c
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fd57d
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x7fc037
mov dword [esp + 4], esi
mov ecx, ebx
cmp eax, 0x7fd57d
mov dword [esp + 0x14], 0
cmove eax, edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf
mov dword [esp], eax
call fcn.004da390
mov byte [ebp - 0x220], 0
sub esp, 0x18
cmp byte [edi + 0x38a], 0
jne 0x642bc5
cmp byte [edi + 0x38b], 0
jne 0x642c02
cmp byte [edi + 0x392], 0
jne 0x642c49
cmp byte [edi + 0x38d], 0
jne 0x642c93
cmp byte [edi + 0x394], 0
jne 0x642cdf
cmp byte [edi + 0x38c], 0
jne 0x642d2e
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], str.disc_type
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x7fc044
mov dword [esp + 4], esi
mov ecx, ebx
cmp eax, str.disc_type
mov dword [esp + 0x14], 0
cmove eax, edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf
mov dword [esp], eax
call fcn.004da390
mov byte [ebp - 0x220], 0
sub esp, 0x18
cmp dword [0x900414], 1
jg 0x63e1cf
cmp byte [edi + 0xd0], 0
je 0x640843
mov eax, dword [0x9045cc]
test eax, eax
je 0x63e223
cmp dword [0x773530], 1
jg 0x63e245
cmp dword [0x9045cc], 4
jne 0x63e5be
mov ebx, dword [edi + 0xbc]
test ebx, ebx
jne 0x6408a2
mov edx, dword [edi + 0xc8]
test edx, edx
jne 0x63e2f6
jmp 0x63e36f
mov ebx, dword [0x9045cc]
cmp ebx, 4
jne 0x63e5be
mov esi, dword [edi + 0x410]
test esi, esi
jne 0x63e4bb
jmp 0x63e5be
mov ebx, 4
jmp 0x63e266
mov dword [esp], 0x7fc955
jmp 0x63f386
mov dword [esp], 0x7fc955
call fcn.007101e8
mov ebx, eax
jmp 0x63ec20
mov eax, dword [edi + 0x27c]
cmp eax, 1
je 0x640c50
cmp eax, 2
je 0x640915
test eax, eax
jne 0x63ec7e
mov eax, dword [edi + 0xc4]
test eax, eax
je case.default.0x64090e
movzx eax, byte [eax + 2]
sub eax, 3
cmp al, 4
ja case.default.0x64090e
movzx eax, al
mov dword [esp], str.Compliance:
jmp dword [eax*4 + 0x7fd978]
mov eax, dword [edi + 0x280]
sar eax, 1
mov dword [ebp - 0x318], eax
mov dword [esp], str._SATA_1.0a__II:_Ext.__Rev_2.5__2.6_
call fcn.007101e8
mov dword [esp], str._SATA_II:_Ext.__SATA_Rev_2.5__2.6_
mov esi, eax
call fcn.007101e8
mov dword [esp], str._SATA_1.0a__SATA_Rev_2.5__2.6_
mov ebx, eax
call fcn.007101e8
mov dword [ebp - 0x324], eax
mov dword [esp], str._SATA_Rev_2.5__2.6_
call fcn.007101e8
mov dword [ebp - 0x354], eax
mov dword [esp], str._SATA_1.0a__SATA_II:_Ext.__Rev_2.6_
call fcn.007101e8
mov dword [ebp - 0x350], eax
mov dword [esp], str._SATA_II:_Extensions__SATA_Rev_2.6_
call fcn.007101e8
mov dword [ebp - 0x32c], eax
mov dword [esp], str._SATA_1.0a__SATA_Rev_2.6_
call fcn.007101e8
mov dword [ebp - 0x330], eax
mov dword [esp], str._SATA_Rev_2.6_
call fcn.007101e8
mov dword [ebp - 0x334], eax
mov dword [esp], str._SATA_1.0a__SATA_II:_Ext.__Rev_2.5_
call fcn.007101e8
mov dword [ebp - 0x338], eax
mov dword [esp], str._SATA_II:_Extensions__SATA_Rev_2.5_
call fcn.007101e8
mov dword [ebp - 0x33c], eax
mov dword [esp], str._SATA_1.0a__SATA_Rev_2.5_
call fcn.007101e8
mov dword [ebp - 0x340], eax
mov dword [esp], str._SATA_Rev_2.5_
call fcn.007101e8
mov dword [ebp - 0x344], eax
mov dword [esp], str._SATA_1.0a__SATA_II:_Extensions_
call fcn.007101e8
mov dword [ebp - 0x348], eax
mov dword [esp], str._SATA_II:_Extensions_
call fcn.007101e8
mov dword [ebp - 0x34c], eax
mov dword [esp], str._SATA_1.0a_
call fcn.007101e8
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x84], esi
mov dword [esp + 0x80], 0xf
mov dword [esp + 0x78], 0xe
mov edx, dword [ebp - 0x324]
mov dword [esp + 0x70], 0xd
mov dword [esp + 0x74], edx
mov edx, dword [ebp - 0x354]
mov dword [esp + 0x68], 0xc
mov dword [esp + 0x6c], edx
mov ecx, dword [ebp - 0x350]
mov dword [esp + 0x60], 0xb
mov dword [esp + 0x64], ecx
mov edx, dword [ebp - 0x32c]
mov dword [esp + 0x58], 0xa
mov dword [esp + 0x5c], edx
mov edx, dword [ebp - 0x330]
mov dword [esp + 0x50], 9
mov dword [esp + 0x54], edx
mov esi, dword [ebp - 0x334]
mov dword [esp + 0x48], 8
mov dword [esp + 0x4c], esi
mov edx, dword [ebp - 0x338]
mov dword [esp + 0x40], 7
mov dword [esp + 0x44], edx
mov esi, dword [ebp - 0x33c]
mov dword [esp + 0x38], 6
mov dword [esp + 0x3c], esi
mov edx, dword [ebp - 0x340]
mov dword [esp + 0x30], 5
mov dword [esp + 0x34], edx
mov esi, dword [ebp - 0x344]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], 4
mov edx, dword [ebp - 0x348]
mov dword [esp + 0x20], 3
mov dword [esp + 0x24], edx
mov esi, dword [ebp - 0x34c]
mov dword [esp + 0x18], 2
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0xf
mov dword [esp + 8], 0x7faee7
mov eax, dword [ebp - 0x318]
and eax, 0xf
mov dword [esp + 4], eax
lea eax, [ebp - 0x11c]
mov dword [esp], eax
call fcn.00505810
mov dword [esp], str.Serial_ATA__s
mov ebx, eax
call fcn.007101e8
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723cb0
mov dword [esp], str.Serial_ATA
call fcn.007101e8
mov dword [esp], str.Transport_type:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.transport_type
mov dword [esp + 8], 1
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ebx, dword [ebp - 0x30c]
mov ecx, ebx
call fcn.004da140
sub esp, 0x18
mov dword [esp], str.Transport_type:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.transport_type
mov dword [esp + 8], 0xe
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004da140
mov eax, dword [edi + 0xbc]
sub esp, 0x18
test eax, eax
je case.default.0x64090e
movzx eax, word [eax + 0x98]
test al, 1
jne case.default.0x64090e
test al, 0xf
je case.default.0x64090e
test al, 8
jne 0x642fb6
test al, 4
jne 0x64304e
test al, 2
jne 0x643061
mov byte [ebp - 0x220], 0
jmp case.default.0x64090e
mov dword [esp], str.Parallel_ATA
call fcn.007101e8
mov dword [esp], str.Transport_type:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.transport_type
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp case.default.0x64090e
mov dword [esp], str.Contains_logical_volumes:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.contained_logical
mov dword [esp + 8], 0xf
mov edx, dword [ebp - 0x310]
mov dword [esp], eax
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
mov dword [esp], 0xf
mov ecx, dword [ebp - 0x30c]
call fcn.004da010
sub esp, 4
jmp 0x63dd60
mov dword [ebp - 0x2e0], 0
lea esi, [ebp - 0x2a0]
mov dword [ebp - 0x2a0], 0
movzx eax, byte [eax + 0xb0]
mov dword [esp + 4], eax
lea eax, [ebp - 0x2e0]
mov dword [esp], eax
call fcn.004faf20
mov eax, dword [edi + 0xbc]
movzx eax, byte [eax + 0xb1]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.004faf20
mov ebx, dword [ebp - 0x2e0]
test ebx, ebx
jne 0x641f35
cmp byte [edi + 0xd0], 0
jne 0x63f513
jmp 0x63f3bd
mov ecx, dword [edi + 0xbc]
test ecx, ecx
je 0x640d88
cmp byte [edi + 0xc0], 0
je 0x63f52e
mov eax, dword [edi + 0x88]
test eax, eax
je 0x6408cb
mov eax, dword [edi + 0x460]
test eax, eax
je 0x641fbf
mov dword [esp], str.Overwrite
call fcn.007101e8
mov dword [esp], str.Block_Erase
mov esi, eax
call fcn.007101e8
mov dword [esp], str.Crypto_Erase
mov ebx, eax
call fcn.007101e8
mov dword [ebp - 0x324], eax
mov dword [esp], 0x7fc4dc
call fcn.007101e8
mov dword [ebp - 0x318], eax
mov dword [esp], 0x7fc951
call fcn.007101e8
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], 2
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], 1
mov ecx, dword [ebp - 0x324]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], 3
mov edx, dword [ebp - 0x318]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [edi + 0x464]
and eax, 7
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00505740
mov dword [esp], str.Sanitize_feature_set:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x7fbe89
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp 0x63eb59
mov edi, dword [ebp - 0x318]
mov esi, 0x50
mov ebx, 1
jmp 0x640eb4
add esi, 1
cmp esi, 0x60
je 0x6402c0
mov eax, ebx
mov ecx, esi
shl eax, cl
test eax, 0x100048
je 0x640ea8
and eax, dword [ebp - 0x2f8]
je 0x640f98
mov dword [esp], 0x7fc951
call fcn.007101e8
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x310]
mov dword [esp], eax
call fcn.00723a00
mov byte [ebp - 0x11c], 0
cmp esi, 0x56
je 0x640fd9
cmp esi, 0x59
je 0x640fa4
cmp esi, 0x53
jne 0x640ea8
mov dword [esp], str.initiating_power_mgmt
call fcn.007101e8
mov dword [esp + 4], eax
lea eax, [ebp - 0x11c]
mov dword [esp], eax
call fcn.00723a00
cmp byte [ebp - 0x11c], 0
je 0x6418d2
mov dword [esp], 0x7fd493
call fcn.007101e8
mov dword [esp + 4], eax
lea eax, [ebp - 0x11c]
mov dword [esp], eax
call fcn.007239e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf
mov edx, dword [ebp - 0x310]
mov dword [esp], eax
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x324]
call fcn.004da140
sub esp, 0x18
jmp 0x640ea8
mov dword [esp], 0x7fc955
jmp 0x640ed4
mov dword [esp], str.Hybrid_drive_features
call fcn.007101e8
mov dword [esp + 4], eax
lea eax, [ebp - 0x11c]
mov dword [esp], eax
call fcn.00723a00
cmp byte [ebp - 0x11c], 0
jne 0x640f34
mov esi, 0x5a
jmp 0x640eb4
mov dword [esp], str.SW_Settings_Preserv.
call fcn.007101e8
mov dword [esp + 4], eax
lea eax, [ebp - 0x11c]
mov dword [esp], eax
call fcn.00723a00
cmp byte [ebp - 0x11c], 0
jne 0x640f34
mov esi, 0x57
jmp 0x640eb4
lea esi, [ebp - 0x2a0]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], esi
call fcn.00502fd0
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fcf29
mov ebx, eax
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x7fbfb5
mov dword [esp + 0x14], 0
cmp eax, 0x7fcf29
mov dword [esp + 0x10], 0
cmove eax, edx
mov dword [esp + 0xc], str.nvme_total_capacity
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
mov eax, dword [edi + 0xc8]
sub esp, 0x18
jmp 0x63ebe0
lea esi, [ebp - 0x2a0]
mov dword [esp], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], esi
call fcn.00502a70
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fcf9c
mov ebx, eax
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x7fbfe1
mov dword [esp + 0x14], 0
cmp eax, 0x7fcf9c
mov dword [esp + 0x10], 0
cmove eax, edx
mov dword [esp + 0xc], str.namespaces
mov dword [esp + 8], 0xe
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
mov eax, dword [edi + 0xc8]
sub esp, 0x18
jmp 0x63ec05
lea esi, [ebp - 0x2a0]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], esi
call fcn.00502fd0
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fcf5c
mov ebx, eax
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x7fbfc8
mov dword [esp + 0x14], 0
cmp eax, 0x7fcf5c
mov dword [esp + 0x10], 0
cmove eax, edx
mov dword [esp + 0xc], str.nvme_unallocated_capacity
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
mov eax, dword [edi + 0xc8]
sub esp, 0x18
jmp 0x63ebf6
lea esi, [ebp - 0x2a0]
mov dword [esp + 8], edx
mov dword [esp + 4], str._04Xh
mov dword [esp], esi
call fcn.00723cb0
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fceb0
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x7fbf7a
mov dword [esp + 0x14], 0
cmp eax, 0x7fceb0
mov dword [esp + 0x10], 0
cmove eax, edx
mov dword [esp + 0xc], str.nvme_subsystem_vendor_id
mov dword [esp + 8], 4
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
mov eax, dword [edi + 0xc8]
sub esp, 0x18
movzx edx, byte [eax + 0x107]
test dl, dl
je 0x63ebca
lea esi, [ebp - 0x2a0]
mov dword [esp], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], esi
call fcn.00502a70
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fceec
mov ebx, eax
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x7fbf94
mov dword [esp + 0x14], 0
cmp eax, 0x7fceec
mov dword [esp + 0x10], 0
cmove eax, edx
mov dword [esp + 0xc], str.nvme_power_states
mov dword [esp + 8], 0xe
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
mov eax, dword [edi + 0xc8]
sub esp, 0x18
jmp 0x63ebca
lea esi, [ebp - 0x2a0]
mov dword [esp + 8], edx
mov dword [esp + 4], str._04Xh
mov dword [esp], esi
call fcn.00723cb0
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fce85
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x7fbf6c
mov dword [esp + 0x14], 0
cmp eax, 0x7fce85
mov dword [esp + 0x10], 0
cmove eax, edx
mov dword [esp + 0xc], str.nvme_pci_vendor_id
mov dword [esp + 8], 4
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
mov eax, dword [edi + 0xc8]
sub esp, 0x18
jmp 0x63ebae
mov dword [esp], 0x7fc955
call fcn.007101e8
mov ebx, eax
jmp 0x63f4c5
mov eax, dword [edi + 0x3f0]
mov edx, dword [edi + 0x3f4]
add eax, 1
adc edx, 0
sub eax, dword [edi + 0x38]
sbb edx, dword [edi + 0x3c]
xor ebx, ebx
mov dword [ebp - 0x318], eax
mov dword [ebp - 0x314], edx
jmp 0x63e8ae
mov dword [esp], str._dC
call fcn.007101e8
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723cb0
mov dword [esp], str.Critical_temperature:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.critical_temperature
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp 0x63e121
mov dword [esp + 0xc], 1
mov esi, dword [ebp - 0x310]
mov dword [esp], edx
mov dword [esp + 8], esi
mov dword [esp + 4], eax
call fcn.00502d20
mov dword [esp], str.Formatted_sectors:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.formatted_sectors
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp 0x63db96
mov dword [esp], str._dC
call fcn.007101e8
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723cb0
mov dword [esp], str.Warning_temperature:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.warning_temperature
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp 0x63e113
lea ecx, [ebp - 0x11c]
shrd eax, edx, 9
sar edx, 9
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.005031d0
mov esi, dword [edi + 0x3cc]
mov ebx, dword [edi + 0x3c8]
mov dword [ebp - 0x318], eax
mov dword [esp], str._lld_sectors___s
call fcn.007101e8
mov edx, dword [ebp - 0x318]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723cb0
mov dword [esp], str.Formattable_capacity:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.formattable_capacity
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp 0x63dd20
lea ecx, [ebp - 0x11c]
shrd eax, edx, 9
sar edx, 9
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.005031d0
mov esi, dword [edi + 0x3d4]
mov ebx, dword [edi + 0x3d0]
mov dword [ebp - 0x318], eax
mov dword [esp], str._lld_sectors___s
call fcn.007101e8
mov edx, dword [ebp - 0x318]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723cb0
mov dword [esp], str.Formatted_capacity:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.formatted_capacity
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp 0x63dd0a
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], str.drive
mov dword [esp], 0
call fcn.007101f0
mov dword [esp + 0xc], 1
cmp eax, str.drive
cmove eax, ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x310]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0063c760
mov dword [esp], str.Formatted_capacity:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.formatted_capacity
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
cmp byte [edi + 0xd0], 0
jne 0x63dccf
jmp 0x63dced
mov edx, dword [ebp - 0x310]
mov dword [esp + 8], edx
imul eax, dword [edi + 0x60]
mov dword [esp], eax
sar eax, 0x1f
mov dword [esp + 4], eax
call fcn.00502fd0
mov dword [esp], str.Cluster_size:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.cluster_size
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp 0x63dc2a
mov dword [esp], str._d_bytes__logically__d_bytes
call fcn.007101e8
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x104
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723ce0
mov dword [esp], str.Sector_size:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.sector_size
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp 0x63dc1f
and eax, dword [ebp + ecx*4 - 0x2f0]
je 0x641fa7
mov dword [esp], str.yes___yes
jmp 0x63f386
call fcn.00502d20
mov dword [esp], str.Sectors_incl._HPA:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.sectors_incl_hpa
jmp 0x63e753
call fcn.00502d20
mov dword [esp], str.Sectors_in_HPA:
mov esi, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.sectors_in_hpa
jmp 0x63e90b
mov dword [esp], 0x7fc955
call fcn.007101e8
mov dword [esp], str.Sanitize_feature_set:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x7fbe89
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp 0x63f7b1
mov ebx, dword [edi + 0x2d8]
mov dword [esp], str._u_minutes
call fcn.007101e8
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], pe_nt_image_headers32
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723ce0
mov dword [esp], str.Extended_self_test_duration
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.smart_ext_selftest
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
sub esp, 0x18
jmp 0x63f513
mov dword [esp], 0x7fc955
call fcn.007101e8
mov ebx, eax
jmp 0x63f7cc
mov dword [esp], 0x7fc955
call fcn.007101e8
mov ebx, eax
jmp 0x63fff5
mov esi, 0x54
jmp 0x640eb4
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fd01a
mov dword [esp], 0
call fcn.007101f0
mov ebx, eax
cmp eax, 0x7fd01a
je 0x6421d9
mov dword [esp], eax
call fcn.00723a18
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov eax, dword [ebp - 0x2dc]
mov dword [esp], 0
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x318]
call fcn.00712150
sub esp, 0x10
jmp 0x63ede2
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fd01a
mov dword [esp], 0
call fcn.007101f0
mov ebx, eax
cmp eax, 0x7fd01a
je 0x6422a2
mov dword [esp], eax
call fcn.00723a18
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov eax, dword [ebp - 0x2dc]
mov dword [esp], 0
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x318]
call fcn.00712150
sub esp, 0x10
jmp 0x63f032
mov dword [esp], str.supported_and_activated
jmp 0x63f3df
mov dword [esp], str.File_System_Flags
call fcn.007101e8
mov edx, eax
mov eax, dword [edi + 0x28]
test eax, eax
je 0x6419ba
mov eax, dword [eax + 0x50]
mov dword [esp + 4], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 3
mov dword [esp], eax
mov ecx, dword [ebp - 0x320]
call fcn.004e7600
sub esp, 0x14
mov dword [ebp - 0x31c], eax
mov ecx, eax
mov dword [esp + 4], 0
mov dword [esp], 2
call fcn.004e6b70
sub esp, 8
mov ebx, eax
test byte [edi + 0xec], 2
jne 0x64201d
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
mov dword [esp], str.Case_preserved_when_storing_file_names:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 4
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004da140
sub esp, 0x18
test byte [edi + 0xec], 1
je 0x642aa4
mov dword [esp], 0x7fc951
call fcn.007101e8
mov esi, eax
mov dword [esp], str.Case_sensitive_file_names:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xe
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004da140
sub esp, 0x18
test byte [edi + 0xef], 0x20
je 0x642a91
mov dword [esp], 0x7fc951
call fcn.007101e8
mov esi, eax
mov dword [esp], str.Direct_access__DAX__volume:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 4
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004da140
sub esp, 0x18
test byte [edi + 0xec], 0x10
je 0x642a7e
mov dword [esp], 0x7fc951
call fcn.007101e8
mov esi, eax
mov dword [esp], str.File_based_compression_supported:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xe
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004da140
sub esp, 0x18
test byte [edi + 0xec], 8
je 0x642a6b
mov dword [esp], 0x7fc951
call fcn.007101e8
mov esi, eax
mov dword [esp], str.Access_control_lists_preserved:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 4
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004da140
sub esp, 0x18
test byte [edi + 0xee], 8
je 0x642a58
mov dword [esp], 0x7fc951
call fcn.007101e8
mov esi, eax
mov dword [esp], str.Volume_is_read_only:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004da140
sub esp, 0x18
test byte [edi + 0xee], 0x10
je 0x642a45
mov dword [esp], 0x7fc951
call fcn.007101e8
mov esi, eax
mov dword [esp], str.A_single_sequential_write_supported:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 4
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004da140
sub esp, 0x18
test byte [edi + 0xee], 2
je 0x642a32
mov dword [esp], 0x7fc951
call fcn.007101e8
mov esi, eax
mov dword [esp], str.Encrypted_File_System__EFS__supported:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004da140
sub esp, 0x18
test byte [edi + 0xee], 0x80
je 0x642a1f
mov dword [esp], 0x7fc951
call fcn.007101e8
mov esi, eax
mov dword [esp], str.Extended_Attributes_supported:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 4
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004da140
sub esp, 0x18
test byte [edi + 0xee], 0x40
je 0x642e0a
mov dword [esp], 0x7fc951
call fcn.007101e8
mov esi, eax
mov dword [esp], str.Hard_links_supported:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 4
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004da140
sub esp, 0x18
test byte [edi + 0xec], 0x80
je 0x642df7
mov dword [esp], 0x7fc951
call fcn.007101e8
mov esi, eax
mov dword [esp], str.Reparse_points_supported:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 4
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004da140
sub esp, 0x18
test byte [edi + 0xec], 0x40
je 0x642e1d
mov dword [esp], 0x7fc951
call fcn.007101e8
mov esi, eax
mov dword [esp], str.Sparse_files_supported:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 4
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004da140
sub esp, 0x18
test byte [edi + 0xec], 4
je 0x642de4
mov dword [esp], 0x7fc951
call fcn.007101e8
mov esi, eax
mov dword [esp], str.Unicode_file_names_supported:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xe
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004da140
sub esp, 0x18
test byte [edi + 0xed], 0x80
je 0x642d70
mov dword [esp], 0x7fc951
call fcn.007101e8
mov esi, eax
mov dword [esp], str.Volume_is_compressed:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004da140
sub esp, 0x18
test byte [edi + 0xec], 0x20
je 0x642d5d
mov dword [esp], 0x7fc951
call fcn.007101e8
mov esi, eax
mov dword [esp], str.Disk_quotas_supported:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xe
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004da140
sub esp, 0x18
jmp 0x63e238
mov esi, dword [ebp - 0x2a0]
mov dword [esp], str.max.__d__current:__d_
call fcn.007101e8
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723cb0
mov dword [esp], str.UltraDMA_mode:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.udma_mode
mov dword [esp + 8], 0xe
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp 0x640d5f
mov dword [esp], str.yes___no
jmp 0x63f386
mov dword [esp], str.You_might_want_to_ignore_it.
jmp 0x63e944
mov dword [esp], 0x7fc955
call fcn.007101e8
mov dword [esp], str.Sanitize_feature_set:
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x7fbe89
jmp 0x63eb3c
mov dword [esp], str.Secure_Erase:__d_minutes
call fcn.007101e8
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x310]
mov dword [esp], eax
call fcn.00723cb0
jmp 0x63f5dd
mov dword [esp], 0x7fc951
call fcn.007101e8
mov esi, eax
jmp 0x641a23
mov eax, dword [edi + 0x1c0]
test eax, eax
je 0x640ceb
mov ebx, dword [eax + 0x1cc]
mov dword [esp], str.On_physical_drive:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.on_physical_drive
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp 0x640ceb
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.compliance
mov dword [esp + 8], 0xe
mov dword [esp + 4], str.SPC_5
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp case.default.0x64090e
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.compliance
mov dword [esp + 8], 0xe
mov dword [esp + 4], str.SPC_4
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp case.default.0x64090e
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.compliance
mov dword [esp + 8], 0xe
mov dword [esp + 4], str.SPC_3
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp case.default.0x64090e
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.compliance
mov dword [esp + 8], 0xe
mov dword [esp + 4], str.SPC_2
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp case.default.0x64090e
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.compliance
mov dword [esp + 8], 0xe
mov dword [esp + 4], 0x7fcc0c
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp case.default.0x64090e
mov eax, 4
mov ebx, 0x7fc013
jmp 0x64190d
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
cmp byte [edi + 0x343], 0
mov dword [esi + eax], 0x4d4f52
je 0x64223c
mov edx, dword [ebp - 0x310]
cmp byte [ebp - 0x220], 0
lea eax, [edx + eax + 3]
je 0x642225
mov esi, 0x202c
mov byte [eax + 2], 0
mov word [eax], si
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov ecx, 0x52
mov word [esi + eax], cx
cmp byte [edi + 0x344], 0
movzx eax, byte [ebp - 0x220]
je 0x64228f
test al, al
je 0x64226c
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov edx, 0x202c
add eax, esi
mov word [eax], dx
mov byte [eax + 2], 0
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
add eax, esi
mov esi, 0x5752
mov word [eax], si
mov byte [eax + 2], 0
movzx eax, byte [ebp - 0x220]
mov esi, dword [ebp - 0x310]
test al, al
jne 0x640396
jmp 0x640388
mov eax, 4
mov ebx, 0x7fc013
jmp 0x64196a
mov dword [esp], str.Overwrite
call fcn.007101e8
mov dword [esp], str.Time_for__s
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x400
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723ce0
lea eax, [ebp - 0x11c]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x480]
mov eax, dword [eax + 8]
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00503700
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.sanitize_ow_time
mov dword [esp + 8], 0xf
mov dword [esp + 4], eax
mov dword [esp], esi
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
mov eax, dword [edi + 0x480]
sub esp, 0x18
jmp 0x63ff7b
mov dword [esp], str.Block_Erase
call fcn.007101e8
mov dword [esp], str.Time_for__s
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x400
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723ce0
lea eax, [ebp - 0x11c]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x480]
mov eax, dword [eax + 0xc]
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00503700
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.sanitize_be_time
mov dword [esp + 8], 0xf
mov dword [esp + 4], eax
mov dword [esp], esi
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
mov eax, dword [edi + 0x480]
sub esp, 0x18
jmp 0x63ff63
mov dword [esp], str.Crypto_Erase
call fcn.007101e8
mov dword [esp], str.Time_for__s
mov ebx, eax
call fcn.007101e8
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x400
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723ce0
lea eax, [ebp - 0x11c]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x480]
mov eax, dword [eax + 0x10]
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00503700
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.sanitize_ce_time
mov dword [esp + 8], 0xf
mov dword [esp + 4], eax
mov dword [esp], esi
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
mov eax, dword [edi + 0x480]
sub esp, 0x18
jmp 0x63ff4b
mov dword [esp], str.CFast_Specification
lea ebx, [ebp - 0x11c]
call fcn.007101e8
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00723a00
cmp byte [ebp - 0x11c], 0
je 0x640e91
mov dword [esp], 0x7fd493
call fcn.007101e8
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.007239e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf
mov edx, dword [ebp - 0x310]
mov dword [esp], eax
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x324]
call fcn.004da140
sub esp, 0x18
jmp case.0x63f3a9.4
mov dword [esp], str.Deterministic_data_after_Trim
lea esi, [esi]
call fcn.007101e8
lea ebx, [ebp - 0x11c]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00723a00
movzx eax, byte [ebp - 0x11c]
test al, al
jne 0x6424ad
jmp case.0x63f3a9.4
mov dword [esp], str.zeroes_after_Trim
jmp 0x642510
mov dword [esp], str.User_data_encrypted
jmp 0x642510
movdqu xmm7, xmmword [0x805de0]
lea ebx, [ebp - 0x11c]
movdqu xmm5, xmmword [0x805df0]
movups xmmword [ebp - 0x11c], xmm7
movups xmmword [ebp - 0x10d], xmm5
jmp 0x6424ad
movdqu xmm5, xmmword [0x805dc0]
lea ebx, [ebp - 0x11c]
movdqu xmm6, xmmword [0x805dd0]
movups xmmword [ebp - 0x11c], xmm5
movups xmmword [ebp - 0x10e], xmm6
jmp 0x6424ad
mov dword [esp], str.Free_fall_Control
jmp 0x642510
mov dword [esp], str.Segmented_feature_for_DONWLOAD_MICROCODE
jmp 0x642510
mov dword [esp], str.READ_WRITE_DMA_EXT_GPL
jmp 0x642510
mov dword [esp], str.WRITE_UNCORRECTABLE
jmp 0x642510
mov dword [esp], str.Read_Write_Verify
jmp 0x642510
mov dword [esp], str.release_interrupt
jmp 0x642510
mov dword [esp], str.Look_ahead
jmp 0x642510
mov dword [esp], str.Write_cache
jmp 0x642510
mov dword [esp], str.Power_Management
jmp 0x642510
mov dword [esp], str.Removable_Media
jmp 0x642510
mov dword [esp], str.Security_Mode
jmp 0x642510
mov dword [esp], str.SMART
jmp 0x642510
mov dword [esp], str.IDLE_IMMEDIATE_with_UNLOAD_FEATURE
jmp 0x642510
mov dword [esp], str.URG_bit_for_WRITE_STREAM__DMA__EXT
jmp 0x642510
mov dword [esp], str.URG_bit_for_READ_STREAM__DMA__EXT
jmp 0x642510
mov dword [esp], str.64_bit_World_Wide_Name
jmp 0x642510
mov dword [esp], str.WRITE_DMA_QUEUED_FUA_EXT_command
jmp 0x642510
mov dword [esp], str.WRITE_DMA_MULTIPLE_FUA_EXT_commands
jmp 0x642510
mov dword [esp], str.General_Purpose_Logging
jmp 0x642510
mov dword [esp], str.Streaming
jmp 0x642510
mov dword [esp], str.Media_Card_Pass_Through
jmp 0x642510
mov dword [esp], str.Media_serial_number
jmp 0x642510
mov dword [esp], str.SMART_self_test
jmp 0x642510
mov dword [esp], str.SMART_error_logging
jmp 0x642510
mov dword [esp], str.FLUSH_CACHE_EXT_command
jmp 0x642510
mov dword [esp], str.FLUSH_CACHE_command
jmp 0x642510
mov dword [esp], str.Device_Config._Overlay
jmp 0x642510
mov dword [esp], str.48_bit_Addressing
jmp 0x642510
mov dword [esp], str.Acoustic_Management
jmp 0x642510
mov dword [esp], str.SET_MAX_security_ext.
jmp 0x642510
mov dword [esp], str.Address_Offset_Reserved_Area_Boot
jmp 0x642510
mov dword [esp], str.Power_Up:_SET_FEATURES
jmp 0x642510
mov dword [esp], str.Power_Up_In_Standby
jmp 0x642510
mov dword [esp], str.Removable_Status_Notification
jmp 0x642510
mov dword [esp], str.Adv._Power_Management
jmp 0x642510
mov dword [esp], str.CompactFlash_features
jmp 0x642510
mov dword [esp], str.READ_WRITE_DMA_QUEUED
jmp 0x642510
mov dword [esp], str.Download_Microcode
jmp 0x642510
mov dword [esp], str.NOP_command
jmp 0x642510
mov dword [esp], str.READ_BUFFER_command
jmp 0x642510
mov dword [esp], str.WRITE_BUFFER_command
jmp 0x642510
mov dword [esp], str.Host_Protected_Area
jmp 0x642510
mov dword [esp], str.DEVICE_RESET_command
jmp 0x642510
mov dword [esp], str.SERVICE_interrupt
jmp 0x642510
pextrw eax, xmm0, 1
mov esi, 0x40
lea edx, [eax - 1]
cmp dx, 0xfffd
ja 0x63f321
and eax, 1
cmp ax, 1
sbb eax, eax
and eax, 0x10
add eax, 0x40
mov esi, eax
jmp 0x63f321
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
cmp byte [edi + 0x37b], 0
mov dword [esi + eax], 0x4d4f52
movzx edx, byte [ebp - 0x220]
jne 0x64280a
cmp byte [edi + 0x37c], 0
je 0x642843
add eax, 3
test dl, dl
je 0x642825
mov edx, dword [ebp - 0x310]
mov esi, 0x202c
add eax, edx
mov word [eax], si
mov byte [eax + 2], 0
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov ecx, 0x52
mov word [esi + eax], cx
movzx edx, byte [ebp - 0x220]
cmp byte [edi + 0x37d], 0
je 0x64288f
test dl, dl
je 0x64286c
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov edx, 0x202c
add eax, esi
mov word [eax], dx
mov byte [eax + 2], 0
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
add eax, esi
mov esi, 0x4552
mov byte [eax + 2], 0
mov word [eax], si
movzx edx, byte [ebp - 0x220]
mov esi, dword [ebp - 0x310]
test dl, dl
jne 0x640702
jmp 0x6406f4
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov ecx, 0x52
cmp byte [edi + 0x34f], 0
mov word [esi + eax], cx
movzx edx, byte [ebp - 0x220]
jne 0x6428d2
cmp byte [edi + 0x350], 0
je 0x64290e
add eax, 1
test dl, dl
je 0x6428ed
mov edx, dword [ebp - 0x310]
add eax, edx
mov edx, 0x202c
mov word [eax], dx
mov byte [eax + 2], 0
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
add eax, esi
mov byte [eax + 4], 0
mov dword [eax], 0x4c442052
movzx edx, byte [ebp - 0x220]
cmp byte [edi + 0x34d], 0
jne 0x642920
cmp byte [edi + 0x34e], 0
je 0x642963
test dl, dl
je 0x642940
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
add eax, esi
mov esi, 0x202c
mov word [eax], si
mov byte [eax + 2], 0
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov ecx, 0x5752
add eax, esi
mov byte [eax + 2], 0
mov word [eax], cx
movzx edx, byte [ebp - 0x220]
mov esi, dword [ebp - 0x310]
test dl, dl
jne 0x6405bc
jmp 0x6405ae
cmp byte [ebp - 0x2dc], 0
je 0x63db10
jmp 0x63da43
mov dword [esp], 0xf
mov ecx, dword [ebp - 0x30c]
call fcn.004da010
sub esp, 4
jmp 0x63eea2
mov eax, dword [ebp - 0x310]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x290]
mov eax, dword [eax + 0xf9]
shl eax, 0xa
mov dword [esp], eax
sar eax, 0x1f
mov dword [esp + 4], eax
call fcn.00502fd0
mov dword [esp], str.Cache_size
mov esi, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.mmc_cache_size
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
sub esp, 0x18
test byte [0x9003e8], 8
je 0x63fdcf
jmp 0x63faee
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
jmp 0x641ce3
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
jmp 0x641c8b
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
jmp 0x641c33
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
jmp 0x641bdb
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
jmp 0x641b83
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
jmp 0x641b2b
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
jmp 0x641ad3
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
jmp 0x641a7b
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov edx, 0x52
cmp byte [edi + 0x365], 0
mov word [esi + eax], dx
je 0x642b10
mov edx, dword [ebp - 0x310]
cmp byte [ebp - 0x220], 0
lea eax, [edx + eax + 1]
je 0x642af6
mov ecx, 0x202c
mov byte [eax + 2], 0
mov word [eax], cx
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
add eax, esi
mov dword [eax], 0x4c442052
mov byte [eax + 4], 0
cmp byte [edi + 0x354], 0
movzx eax, byte [ebp - 0x220]
je 0x642b63
test al, al
je 0x642b40
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov edx, 0x202c
add eax, esi
mov word [eax], dx
mov byte [eax + 2], 0
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
add eax, esi
mov esi, 0x5752
mov word [eax], si
mov byte [eax + 2], 0
movzx eax, byte [ebp - 0x220]
cmp byte [edi + 0x364], 0
je 0x642bb2
test al, al
je 0x642b8c
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov ecx, 0x202c
add eax, esi
mov word [eax], cx
mov byte [eax + 2], 0
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov edx, 0x4c
add eax, esi
mov dword [eax], 0x44205752
mov word [eax + 4], dx
movzx eax, byte [ebp - 0x220]
mov esi, dword [ebp - 0x310]
test al, al
jne 0x64065f
jmp 0x640651
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
cmp byte [edi + 0x38b], 0
mov dword [esi + eax], 0x4d4f52
je 0x642c19
mov edx, dword [ebp - 0x310]
cmp byte [ebp - 0x220], 0
lea eax, [edx + eax + 3]
je 0x642c02
mov ecx, 0x202c
mov byte [eax + 2], 0
mov word [eax], cx
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov edx, 0x52
mov word [esi + eax], dx
cmp byte [edi + 0x392], 0
movzx eax, byte [ebp - 0x220]
je 0x642c6a
test al, al
je 0x642c49
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
add eax, esi
mov esi, 0x202c
mov word [eax], si
mov byte [eax + 2], 0
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
add eax, esi
mov dword [eax], 0x4c442052
mov byte [eax + 4], 0
movzx eax, byte [ebp - 0x220]
cmp byte [edi + 0x38d], 0
je 0x642cb6
test al, al
je 0x642c93
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov ecx, 0x202c
add eax, esi
mov word [eax], cx
mov byte [eax + 2], 0
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov edx, 0x5752
add eax, esi
mov word [eax], dx
mov byte [eax + 2], 0
movzx eax, byte [ebp - 0x220]
cmp byte [edi + 0x394], 0
je 0x642d05
test al, al
je 0x642cdf
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
add eax, esi
mov esi, 0x202c
mov word [eax], si
mov byte [eax + 2], 0
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov ecx, 0x4c
add eax, esi
mov dword [eax], 0x44205752
mov word [eax + 4], cx
movzx eax, byte [ebp - 0x220]
cmp byte [edi + 0x38c], 0
je 0x642d4a
test al, al
je 0x642d2e
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov edx, 0x202c
add eax, esi
mov word [eax], dx
mov byte [eax + 2], 0
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov dword [esi + eax], 0x4d4152
movzx eax, byte [ebp - 0x220]
mov esi, dword [ebp - 0x310]
test al, al
jne 0x6407bf
jmp 0x6407b1
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
jmp 0x641ef3
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
jmp 0x641e9b
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
cmp byte [edi + 0x35b], 0
mov dword [esi + eax], 0x4d4f52
jne 0x642e30
movzx edx, byte [edi + 0x35c]
movzx eax, byte [ebp - 0x220]
test dl, dl
je 0x640441
test al, al
je 0x64041e
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov ecx, 0x202c
add eax, esi
mov word [eax], cx
mov byte [eax + 2], 0
jmp 0x64041e
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
jmp 0x641e43
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
jmp 0x641d93
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
jmp 0x641d3b
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
jmp 0x641deb
cmp byte [ebp - 0x220], 0
je 0x642e4f
mov edx, dword [ebp - 0x310]
mov ecx, 0x202c
lea eax, [edx + eax + 3]
mov word [eax], cx
mov byte [eax + 2], 0
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
mov edx, 0x52
mov word [esi + eax], dx
jmp 0x642da5
mov dword [esp], edi
call fcn.0064f020
mov eax, dword [edi + 0x318]
test eax, eax
je 0x63e210
cmp dword [0x9045cc], 0
mov ebx, 4
jne 0x6402f8
jmp 0x6402f3
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
jmp 0x64050c
mov dword [esp], 0x7fc955
call fcn.007101e8
mov esi, eax
jmp 0x64044f
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fcab8
mov dword [esp], 0
call fcn.007101f0
mov dword [esp], str.Sanitize_status
cmp eax, 0x7fcab8
mov ebx, eax
mov eax, 0x7fbf3b
cmove ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x7fcaa8
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
movzx eax, word [edi + 0x476]
sub esp, 0x18
jmp 0x63f74a
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x7fca70
mov dword [esp], 0
call fcn.007101f0
mov dword [esp], str.Sanitize_status
cmp eax, 0x7fca70
mov ebx, eax
mov eax, 0x7fbf23
cmove ebx, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x7fcaa8
mov dword [esp + 8], 0xf
mov dword [esp + 4], ebx
mov dword [esp], eax
mov ecx, dword [ebp - 0x30c]
call fcn.004da390
movzx eax, word [edi + 0x476]
sub esp, 0x18
jmp 0x63f741
mov dword [esp], str.SATA_Gen3__6.0_Gb_s_
call fcn.007101e8
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x310]
mov dword [esp], eax
call fcn.00723a00
cmp byte [ebp - 0x220], 0
je case.default.0x64090e
mov dword [esp], str.Max._signalling_speed:
call fcn.007101e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.max_signalling_speed
mov dword [esp + 8], 0xe
mov edx, dword [ebp - 0x310]
mov dword [esp], eax
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x30c]
call fcn.004da140
sub esp, 0x18
jmp case.default.0x64090e
mov esi, dword [ebp - 0x310]
mov dword [esp], esi
call fcn.00723a18
add eax, esi
mov esi, 0x202c
mov word [eax], si
mov byte [eax + 2], 0
jmp 0x6404e4
mov dword [esp], str.SATA_Gen2__3.0_Gb_s_
jmp 0x642fbd
xor ecx, ecx
jmp 0x63e83f
mov dword [esp], str.SATA_Gen1__1.5_Gb_s_
jmp 0x642fbd
mov dword [esp], str.basic_string::append
call fcn.00712070
mov dword [esp], str.basic_string::append
call fcn.00712070
mov dword [esp], str.basic_string::append
call fcn.00712070
mov dword [esp], str.basic_string::append
call fcn.00712070
mov dword [esp], str.basic_string::append
call fcn.00712070
mov dword [esp], str.basic_string::append
call fcn.00712070
mov ebx, eax
jmp 0x758094
mov eax, dword [ebp - 0x2e0]
mov edx, dword [ebp - 0x334]
cmp eax, edx
je 0x7580ac
mov dword [esp], eax
call fcn.00712028
mov dword [esp], ebx
call fcn.00712208
mov eax, dword [ebp - 0x2e0]
mov edx, dword [ebp - 0x334]
cmp eax, edx
je 0x7580cc
mov dword [esp], eax
call fcn.00712028
mov dword [esp], ebx
call fcn.00712208
mov edx, dword [ebp - 0x618]
mov eax, dword [edx]
test eax, eax
jne 0x758101
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], edx
call dword [0x90bc9c]
mov dword [esp], ebx
call fcn.00712208
add eax, 1
je 0x7580f9
lock sub dword [edx], 1
mov edx, dword [ebp - 0x618]
jne 0x7580f9
jmp 0x7580e0