Function at 0x4bb758
Capabilities:
Get disk information
Get disk information via ioctl

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x360
mov dword [ebp - 0x35c], ecx
mov dword [ebp - 8], 1
jmp 0x4bb779
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [0x673b98]
add ecx, 1
cmp dword [ebp - 8], ecx
jge 0x4bba39
mov edx, dword [ebp - 8]
xor eax, eax
mov al, byte [edx + 0x673f68]
test eax, eax
jne 0x4bb79c
jmp 0x4bb770
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx + 0x67a644]
test edx, edx
je 0x4bb7bc
mov eax, dword [ebp - 8]
xor ecx, ecx
mov cl, byte [eax + 0x673f40]
cmp ecx, 1
jne 0x4bb7bc
jmp 0x4bb770
mov edx, dword [ebp - 8]
mov al, byte [edx + 0x67a644]
mov byte [ebp - 0x354], al
mov ecx, dword [0x5c5dc4]
mov dword [ebp - 0x220], ecx
mov dl, byte [ebp - 0x354]
mov byte [ebp - 0x220], dl
mov ax, word [0x5c5dc8]
mov word [ebp - 0x344], ax
mov cl, byte [0x5c5dca]
mov byte [ebp - 0x342], cl
mov dl, byte [ebp - 0x354]
mov byte [ebp - 0x344], dl
mov eax, dword [str..X:]
mov dword [ebp - 0x21c], eax
mov cx, word [0x5c5dd0]
mov word [ebp - 0x218], cx
mov dl, byte [0x5c5dd2]
mov byte [ebp - 0x216], dl
mov al, byte [ebp - 0x354]
mov byte [ebp - 0x218], al
mov dword [ebp - 0x228], 0xffffffff
push 0
push 0
push 3
push 0
push 3
push 0
lea ecx, [ebp - 0x21c]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x33c], eax
cmp dword [ebp - 0x33c], 0xffffffff
jne 0x4bb870
jmp 0x4bba78
mov dword [ebp - 0x214], 0
push 0
lea edx, [ebp - 0x214]
push edx
push 0xc
lea eax, [ebp - 0x350]
push eax
push 0
push 0
push 0x2d1080
mov ecx, dword [ebp - 0x33c]
push ecx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [ebp - 0x338], eax
cmp dword [ebp - 0x338], 0
je 0x4bb8bd
mov edx, dword [ebp - 0x34c]
mov dword [ebp - 0x228], edx
mov eax, dword [ebp - 0x33c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x228], 0xffffffff
jne 0x4bb8d8
jmp 0x4bba78
lea ecx, [ebp - 0x220]
push ecx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov dword [ebp - 0x230], eax
push 0x104
lea edx, [ebp - 0x334]
push edx
lea eax, [ebp - 0x344]
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceA]
mov dword [ebp - 0x338], eax
cmp dword [ebp - 0x338], 0
jne 0x4bb918
jmp 0x4bba78
lea ecx, [ebp - 0x334]
push ecx
mov edx, dword [ebp - 0x230]
push edx
mov eax, dword [ebp - 0x228]
push eax
call fcn.004bb48a
add esp, 0xc
mov dword [ebp - 0x224], eax
cmp dword [ebp - 0x224], 0
jne 0x4bb949
jmp 0x4bba78
mov dword [ebp - 0x22c], 0
mov word [ebp - 0x210], 0
mov byte [ebp - 4], 0
mov dword [ebp - 0x340], 0
push 0
mov ecx, dword [ebp - 0x224]
push ecx
lea edx, [ebp - 0x340]
push edx
call dword [sym.imp.SETUPAPI.dll_CM_Get_Parent]
mov dword [ebp - 0x338], eax
mov dword [ebp - 0x358], 1
jmp 0x4bb9a1
mov eax, dword [ebp - 0x358]
add eax, 1
mov dword [ebp - 0x358], eax
cmp dword [ebp - 0x358], 3
jg 0x4bba34
mov word [ebp - 0x210], 0
call fcn.004ff6d8
push 0
push 0x104
lea ecx, [ebp - 0x210]
push ecx
lea edx, [ebp - 0x22c]
push edx
mov eax, dword [ebp - 0x340]
push eax
call dword [sym.imp.SETUPAPI.dll_CM_Request_Device_EjectW]
mov dword [ebp - 0x338], eax
cmp dword [ebp - 0x338], 0
jne 0x4bba02
cmp dword [ebp - 0x22c], 0
jne 0x4bba02
mov dword [ebp - 0x360], 1
jmp 0x4bba0c
mov dword [ebp - 0x360], 0
mov cl, byte [ebp - 0x360]
mov byte [ebp - 4], cl
mov edx, dword [ebp - 4]
and edx, 0xff
test edx, edx
je 0x4bba24
jmp 0x4bba34
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4bb992
jmp 0x4bb770
mov eax, dword [ebp - 4]
and eax, 0xff
test eax, eax
je 0x4bba54
push str.Success_n_n
call fcn.0054ec9d
add esp, 4
jmp 0x4bba78
mov ecx, dword [ebp - 0x210]
and ecx, 0xffff
test ecx, ecx
je 0x4bba78
lea edx, [ebp - 0x210]
push edx
push str.VetoName_ws__n_n
call fcn.0054ec9d
add esp, 8
mov esp, ebp
pop ebp
ret