Function at 0x10030cc0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101d791b
mov eax, dword fs:[0]
push eax
sub esp, 0x464
mov eax, dword [0x10269114]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x208
push 0
lea eax, [ebp - 0x428]
push eax
call fcn.1004e550
add esp, 0xc
push 0x208
push 0
lea ecx, [ebp - 0x220]
push ecx
call fcn.1004e550
add esp, 0xc
cmp dword [ebp + 8], 0
je 0x10030d23
cmp dword [ebp + 0xc], 0
jne 0x10030d2a
xor al, al
jmp 0x10030f57
lea edx, [ebp - 0x428]
push edx
push 0x208
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
test eax, eax
je 0x10030f55
mov dword [ebp - 0x460], 0
jmp 0x10030d5f
mov eax, dword [ebp - 0x460]
add eax, 4
mov dword [ebp - 0x460], eax
mov ecx, dword [ebp - 0x460]
movzx edx, word [ebp + ecx*2 - 0x428]
test edx, edx
je 0x10030f55
mov eax, 2
imul ecx, eax, 0
mov edx, dword [ebp - 0x460]
mov ax, word [ebp + edx*2 - 0x428]
mov word [ebp + ecx - 0x18], ax
mov ecx, 2
shl ecx, 0
mov edx, dword [ebp - 0x460]
mov ax, word [ebp + edx*2 - 0x426]
mov word [ebp + ecx - 0x18], ax
mov ecx, 2
shl ecx, 1
mov dword [ebp - 0x468], ecx
cmp dword [ebp - 0x468], 6
jae 0x10030dc3
jmp 0x10030dc8
call fcn.1004a493
xor edx, edx
mov eax, dword [ebp - 0x468]
mov word [ebp + eax - 0x18], dx
push 0x104
lea ecx, [ebp - 0x220]
push ecx
lea edx, [ebp - 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
test eax, eax
jne 0x10030df6
xor al, al
jmp 0x10030f57
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x440]
call fcn.100088b0
mov dword [ebp - 4], 0
push 0xffffffffffffffff
push 0x5c
lea ecx, [ebp - 0x440]
call fcn.10013580
mov dword [ebp - 0x46c], eax
lea ecx, [ebp - 0x440]
call fcn.100122c0
sub eax, 1
cmp dword [ebp - 0x46c], eax
jne 0x10030e52
lea ecx, [ebp - 0x220]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
sub eax, 1
mov dword [ebp - 0x464], eax
jmp 0x10030e65
lea edx, [ebp - 0x220]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x464], eax
mov eax, dword [ebp - 0x464]
push eax
lea ecx, [ebp - 0x220]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.1005e07a
add esp, 0xc
test eax, eax
jne 0x10030f3e
mov eax, dword [ebp - 0x464]
mov ecx, dword [ebp + 8]
lea edx, [ecx + eax*2]
push edx
lea ecx, [ebp - 0x458]
call fcn.100088b0
mov byte [ebp - 4], 1
push 0
push 0x101dab78
lea ecx, [ebp - 0x458]
call fcn.10010650
mov dword [ebp - 0x470], eax
cmp dword [ebp - 0x470], 0
je 0x10030eea
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x458]
call fcn.1000a9f0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x440]
call fcn.1000a9f0
jmp 0x10030d50
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea ecx, [ebp - 0x458]
call fcn.1000f5a0
push eax
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov byte [ebp - 0x459], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x458]
call fcn.1000a9f0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x440]
call fcn.1000a9f0
mov al, byte [ebp - 0x459]
jmp 0x10030f57
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x440]
call fcn.1000a9f0
jmp 0x10030d50
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100499a5
mov esp, ebp
pop ebp
ret