Function at 0x47ee54
Capabilities:
Print debug messages
Unmount volume via ioctl

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x614
mov dword [ebp - 0x404], 0
mov dword [ebp - 0x610], 0
push str.Send_Inquiry_XP
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp dword [0x56d5a8], 0
je 0x47ef45
push 0xff
push 0
lea eax, [ebp - 0x60c]
push eax
call fcn.004e9480
add esp, 0xc
movsx ecx, byte [ebp + 8]
mov edx, dword [ecx*4 + 0x674418]
push edx
lea eax, [ebp - 0x60c]
push eax
call fcn.004ba540
add esp, 8
test eax, eax
jne 0x47eee3
push 0xff
movsx ecx, byte [ebp + 8]
imul ecx, ecx, 0xff
add ecx, 0x6748c8
push ecx
lea edx, [ebp - 0x60c]
push edx
call fcn.004e9b20
add esp, 0xc
push 0x104
push 0
lea eax, [ebp - 0x508]
push eax
call fcn.004e9480
add esp, 0xc
lea ecx, [ebp - 0x60c]
push ecx
push str.DiskName___s_n
lea edx, [ebp - 0x508]
push edx
call fcn.004e998d
add esp, 0xc
lea eax, [ebp - 0x508]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
lea ecx, [ebp - 0x60c]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x50c], eax
jmp 0x47ef57
mov dl, byte [ebp + 8]
push edx
call fcn.004b9cc0
add esp, 4
mov dword [ebp - 0x50c], eax
cmp dword [ebp - 0x50c], 0xffffffff
jne 0x47ef67
xor eax, eax
jmp 0x47f12e
push 0
lea eax, [ebp - 0x614]
push eax
push 0
push 0
push 0
push 0
push 0x90018
mov ecx, dword [ebp - 0x50c]
push ecx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
push 0
lea edx, [ebp - 0x614]
push edx
push 0
push 0
push 0
push 0
push 0x90020
mov eax, dword [ebp - 0x50c]
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov ecx, dword [ebp - 0x50c]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
call fcn.00480955
add esp, 0x1c
test eax, eax
je 0x47f0cb
push str.SMI_device
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x400
push 0
lea edx, [ebp - 0x400]
push edx
call fcn.004e9480
add esp, 0xc
mov byte [ebp - 0x400], 0xf0
mov byte [ebp - 0x3ff], 0x20
mov byte [ebp - 0x3f5], 2
cmp dword [0x674064], 0
je 0x47f019
mov dword [0x674060], 1
push 0x2a
push 0x200
lea eax, [ebp - 0x400]
push eax
push 0x55aa
mov ecx, dword [ebp - 0x50c]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
call fcn.0047f33a
add esp, 0x2c
test eax, eax
je 0x47f0b4
push 0x400
push 0
lea edx, [ebp - 0x400]
push edx
call fcn.004e9480
add esp, 0xc
push 0x28
push 0x400
lea eax, [ebp - 0x400]
push eax
push 0x55aa
mov ecx, dword [ebp - 0x50c]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
call fcn.0047f803
add esp, 0x2c
mov dword [ebp - 0x610], eax
cmp dword [0x674064], 0
je 0x47f0a8
mov dword [0x674060], 0
mov dword [ebp - 0x610], 1
jmp 0x47f0c9
push str.SMIWritesector_Vendor_Command_Fail
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov dword [ebp - 0x610], 0
jmp 0x47f0d5
mov dword [ebp - 0x610], 0
push 0
lea edx, [ebp - 0x614]
push edx
push 0
push 0
push 0
push 0
push 0x9001c
mov eax, dword [ebp - 0x50c]
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
push 0
lea ecx, [ebp - 0x614]
push ecx
push 0
push 0
push 0
push 0
push 0x90028
mov edx, dword [ebp - 0x50c]
push edx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov eax, dword [ebp - 0x50c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x610]
mov esp, ebp
pop ebp
ret