Function at 0x5c8c60
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x258
mov eax, dword [0x906648]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x20c]
push edi
push 0x208
xor edi, edi
push edi
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
call fcn.00594900
test eax, 0x2000
jne 0x5c8cad
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0063c972
mov esp, ebp
pop ebp
ret
push 0
push 1
push 1
xorps xmm0, xmm0
mov dword [ebp - 0x248], edi
push 0
movups xmmword [ebp - 0x258], xmm0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [ebp - 0x248], eax
test eax, eax
jne 0x5c8d12
test byte [0x9538a8], 1
je 0x5c8c9b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x20c]
push eax
push str.Timeout_error_for_DeviceIoControl_d
push 0x4f
push str.E:_workspace_AC_CC_Windows_TACC_MASTER_master_src_solidifier_scan_scan.c
push str.swin_check_if_device_is_removable
push dword [0x9052f0]
push 1
call fcn.004f21c0
add esp, 0x20
jmp 0x5c8eee
push esi
push str.._s
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x210], edi
xorps xmm0, xmm0
push 0x208
push eax
movq qword [ebp - 0x218], xmm0
call fcn.004f3b60
lea eax, [ebp - 0x20c]
push eax
call fcn.004f36b0
add esp, 0x14
cmp word [ebp + eax*2 - 0x20e], 0x5c
jne 0x5c8d70
lea eax, [eax*2 - 2]
cmp eax, 0x208
jae 0x5c8f22
xor ecx, ecx
mov word [ebp + eax - 0x20c], cx
push 0
push 0x40000000
push 3
push 0
push 3
push 0
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
test esi, esi
je 0x5c8eee
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x244]
push eax
push 0x28
lea eax, [ebp - 0x240]
push eax
push 0xc
lea eax, [ebp - 0x218]
push eax
push 0x2d1400
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
je 0x5c8e18
cmp eax, 0x3e4
je 0x5c8e18
test eax, eax
je 0x5c8e18
test byte [0x9538a8], 1
je 0x5c8ee7
push eax
lea eax, [ebp - 0x20c]
push eax
push str.Failed_to_define_bus_type_for__s._err___d
push 0x94
push str.E:_workspace_AC_CC_Windows_TACC_MASTER_master_src_solidifier_scan_scan.c
push str.swin_check_if_device_is_removable
push dword [0x9052f0]
push 1
call fcn.004f21c0
add esp, 0x20
jmp 0x5c8ee7
push 0x3e8
push dword [ebp - 0x248]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x5c8ec7
test byte [0x9538a8], 1
je 0x5c8e68
lea eax, [ebp - 0x20c]
push eax
push str.Timeout_error_for_DeviceIoControl_request__s
push 0x9c
push str.E:_workspace_AC_CC_Windows_TACC_MASTER_master_src_solidifier_scan_scan.c
push str.swin_check_if_device_is_removable
push dword [0x9052f0]
push 1
call fcn.004f21c0
add esp, 0x1c
lea eax, [ebp - 0x258]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CancelIoEx]
push 1
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x258]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
jne 0x5c8ee7
test byte [0x9538a8], 1
je 0x5c8ee7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetOverLappedResult_failed_with_status__d
push 0xa6
push str.E:_workspace_AC_CC_Windows_TACC_MASTER_master_src_solidifier_scan_scan.c
push str.swin_check_if_device_is_removable
push dword [0x9052f0]
push 1
call fcn.004f21c0
add esp, 0x1c
jmp 0x5c8ee7
push 0
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x258]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
cmovne edi, dword [ebp - 0x224]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x248]
test eax, eax
je 0x5c8eff
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp edi, 7
je 0x5c8f0d
cmp edi, 0xf
jne 0x5c8c9b
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
xor ecx, ebp
pop esi
call fcn.0063c972
mov esp, ebp
pop ebp
ret
call fcn.0063d024
int3