Function at 0x500ad6
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
push 0xc
call fcn.00535595
add esp, 4
mov dword [ebp - 0x14], eax
mov ebx, eax
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x38], 0
push 0x80000301
push 0
push 2
push SysStringLen
push 0
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
test eax, eax
jne 0x500b81
mov eax, 0x618809
push eax
push 2
mov ebx, 0x138
call fcn.00536870
add esp, 0x1c
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x500bab
push ebx
call fcn.0053558f
add esp, 4
pop eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], 0xffffffff
push 0x80000301
push 0
push 2
push 0x80000301
push 0
push 1
push 2
mov ebx, 0xc8
call fcn.00538490
add esp, 0x1c
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], esp
push 0
push 0
push 3
push 0
push dword [ebp - 0x3c]
push 0
mov ebx, dword [ebp + 8]
push dword [ebx]
call dword [sym.imp.kernel32.dll_CreateFileA]
nop
nop
nop
nop
cmp dword [ebp - 0x40], esp
je 0x500c23
push 6
call fcn.0053559b
add esp, 4
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
jne 0x500c3a
mov eax, 0
jmp 0x500ef9
call fcn.00500f3d
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], esp
push 0
lea eax, [ebp - 0x18]
push eax
push 0xc
push dword [ebp - 0x14]
push 0
push 0
push dword [ebp - 0x3c]
push dword [ebp - 0xc]
call dword [sym.imp.kernel32.dll_DeviceIoControl]
nop
nop
nop
nop
cmp dword [ebp - 0x40], esp
je 0x500c82
push 6
call fcn.0053559b
add esp, 4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x500ca0
mov ebx, dword [ebp - 0x14]
add ebx, 4
mov dword [ebp - 0x3c], ebx
mov ebx, dword [ebp - 0x3c]
mov eax, dword [ebx]
mov dword [ebp - 8], eax
mov dword [ebp - 0x3c], esp
push dword [ebp - 0xc]
call dword [sym.imp.kernel32.dll_CloseHandle]
nop
nop
nop
nop
cmp dword [ebp - 0x3c], esp
je 0x500cc2
push 6
call fcn.0053559b
add esp, 4
cmp dword [ebp - 8], 0xffffffff
jne 0x500cd6
mov eax, 0
jmp 0x500ef9
mov dword [ebp - 0x3c], esp
push dword [ebp - 4]
call dword [sym.imp.kernel32.dll_GetDriveTypeA]
nop
nop
nop
nop
cmp dword [ebp - 0x3c], esp
je 0x500cf8
push 6
call fcn.0053559b
add esp, 4
mov dword [ebp - 0x1c], eax
push 0x80000301
push 0
push 0x118
push 1
mov ebx, 0x184
call fcn.005383c0
add esp, 0x10
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
push eax
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x500d30
push ebx
call fcn.0053558f
add esp, 4
pop eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x3c], esp
push 0x118
push dword [ebp - 0x20]
push dword [ebp - 4]
call dword [sym.imp.kernel32.dll_QueryDosDeviceA]
nop
nop
nop
nop
cmp dword [ebp - 0x3c], esp
je 0x500d5e
push 6
call fcn.0053559b
add esp, 4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x500d75
mov eax, 0
jmp 0x500ef9
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x1c]
push dword [ebp - 8]
call fcn.00501097
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x500d9b
mov eax, 0
jmp 0x500ef9
push 0x80000301
push 0
push 0x104
push 1
mov ebx, 0x184
call fcn.005383c0
add esp, 0x10
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
push eax
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x500dd0
push ebx
call fcn.0053558f
add esp, 4
pop eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x3c], esp
push 0
push dword [ebp - 0x24]
lea eax, [ebp - 0x2c]
push eax
call dword [0x637a85]
nop
nop
nop
nop
cmp dword [ebp - 0x3c], esp
je 0x500dff
push 6
call fcn.0053559b
add esp, 4
mov dword [ebp - 0x10], eax
xor ecx, ecx
lea eax, [ebp - 0x30]
mov ebx, eax
inc ecx
push ecx
push ebx
mov dword [ebx], ecx
cmp ecx, 4
jg 0x500eee
cmp dword [ebp + 0xc], 0
je 0x500e5f
mov dword [ebp - 0x3c], esp
push 0
push 0
push dword [0x6378e1]
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x2c]
call dword [sym.imp.setupapi.dll_CM_Request_Device_EjectW]
nop
nop
nop
nop
cmp dword [ebp - 0x3c], esp
je 0x500e57
push 6
call fcn.0053559b
add esp, 4
mov dword [ebp - 0x10], eax
jmp 0x500e95
mov dword [ebp - 0x3c], esp
push 0
push 0x104
push dword [ebp - 0x28]
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x2c]
call dword [sym.imp.setupapi.dll_CM_Request_Device_EjectW]
nop
nop
nop
nop
cmp dword [ebp - 0x3c], esp
je 0x500e92
push 6
call fcn.0053559b
add esp, 4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x500eb0
cmp dword [ebp - 0x34], 0
jne 0x500eb0
mov eax, 1
jmp 0x500eb5
mov eax, 0
test eax, eax
je 0x500ec9
mov dword [ebp - 0x38], 1
jmp 0x500eee
push 0x80000301
push 0
push 0x12c
push 1
mov ebx, 0x67c
call fcn.0053b900
add esp, 0x10
pop ebx
pop ecx
jmp 0x500e09
add esp, 8
mov eax, dword [ebp - 0x38]
jmp 0x500ef9
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x500f0a
push ebx
call fcn.0053558f
add esp, 4
mov ebx, dword [ebp - 0x14]
push ebx
call fcn.0053558f
add esp, 4
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x500f26
push ebx
call fcn.0053558f
add esp, 4
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x500f36
push ebx
call fcn.0053558f
add esp, 4
pop eax
mov esp, ebp
pop ebp
ret 8