Function at 0x47de14
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 [0x56c110], 0
je 0x47df05
push 0xff
push 0
lea eax, [ebp - 0x60c]
push eax
call fcn.004e8440
add esp, 0xc
movsx ecx, byte [ebp + 8]
mov edx, dword [ecx*4 + 0x672f88]
push edx
lea eax, [ebp - 0x60c]
push eax
call fcn.004b9500
add esp, 8
test eax, eax
jne 0x47dea3
push 0xff
movsx ecx, byte [ebp + 8]
imul ecx, ecx, 0xff
add ecx, 0x673438
push ecx
lea edx, [ebp - 0x60c]
push edx
call fcn.004e8ae0
add esp, 0xc
push 0x104
push 0
lea eax, [ebp - 0x508]
push eax
call fcn.004e8440
add esp, 0xc
lea ecx, [ebp - 0x60c]
push ecx
push str.DiskName___s_n
lea edx, [ebp - 0x508]
push edx
call fcn.004e894d
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 0x47df17
mov dl, byte [ebp + 8]
push edx
call fcn.004b8c80
add esp, 4
mov dword [ebp - 0x50c], eax
cmp dword [ebp - 0x50c], 0xffffffff
jne 0x47df27
xor eax, eax
jmp 0x47e0ee
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.0047f915
add esp, 0x1c
test eax, eax
je 0x47e08b
push str.SMI_device
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x400
push 0
lea edx, [ebp - 0x400]
push edx
call fcn.004e8440
add esp, 0xc
mov byte [ebp - 0x400], pe_nt_image_headers32
mov byte [ebp - 0x3ff], 0x20
mov byte [ebp - 0x3f5], 2
cmp dword [0x672bd4], 0
je 0x47dfd9
mov dword [0x672bd0], 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.0047e2fa
add esp, 0x2c
test eax, eax
je 0x47e074
push 0x400
push 0
lea edx, [ebp - 0x400]
push edx
call fcn.004e8440
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.0047e7c3
add esp, 0x2c
mov dword [ebp - 0x610], eax
cmp dword [0x672bd4], 0
je 0x47e068
mov dword [0x672bd0], 0
mov dword [ebp - 0x610], 1
jmp 0x47e089
push str.SMIWritesector_Vendor_Command_Fail
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov dword [ebp - 0x610], 0
jmp 0x47e095
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