Function at 0x4096da
Capabilities:
Get disk information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x38
xor eax, eax
push ebx
push esi
push edi
push 0x4028a4
mov edi, ecx
mov esi, eax
call fcn.00407fab
test al, al
je 0x409ac6
lea ebx, [edi + 0x28]
xor edx, edx
mov ecx, dword [ebx]
test ecx, ecx
je 0x409712
xor eax, eax
cmp word [ecx], dx
setne al
jmp 0x409714
mov eax, edx
test al, al
je 0x409ac6
call fcn.0040e667
mov dword [ebp - 4], eax
test eax, eax
je 0x409908
mov edx, 0x4024f4
mov ecx, eax
call fcn.0040678c
test al, al
jne 0x409751
mov ecx, dword [ebp - 4]
mov edx, 0x4024fc
call fcn.0040678c
test al, al
je 0x409908
xor eax, eax
lea ecx, [ebp - 0x2c]
push ebx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov word [ebp - 0x24], ax
call fcn.00406854
lea ecx, [ebp - 0x20]
call fcn.004067af
mov eax, dword [ebx]
push 0x5c
movzx ebx, word [eax]
pop eax
mov dword [ebp - 4], ebx
cmp ax, bx
jne 0x409785
mov dword [ebp - 4], 0x42
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.00407b16
mov esi, eax
test esi, esi
js 0x4098f8
push ecx
mov ecx, edi
call fcn.00407b61
mov esi, eax
test esi, esi
js 0x4098f8
lea ecx, [ebp - 0x14]
call fcn.004067af
lea eax, [ebp - 0x14]
xor edx, edx
push eax
push edx
mov ecx, edi
call fcn.0040775d
mov esi, eax
test esi, esi
js 0x4098f0
mov ecx, dword [ebp - 0x14]
call fcn.00409620
test eax, eax
je 0x409801
push dword [ebp - 0x2c]
mov ecx, edi
call fcn.00408015
lea ecx, [ebp - 0x14]
call fcn.00406a9c
lea ecx, [ebp - 0x20]
call fcn.00406a9c
lea ecx, [ebp - 0x2c]
call fcn.00406a9c
xor eax, eax
jmp 0x409ac8
mov ecx, dword [ebp - 0x20]
or esi, 0xffffffff
test ecx, ecx
je 0x409823
push 4
push 0x402504
push ecx
call dword [sym.imp.msvcrt.dll__wcsnicmp]
mov ecx, dword [ebp - 0x20]
add esp, 0xc
mov edx, eax
jmp 0x409826
or edx, 0xffffffff
mov eax, edx
neg eax
sbb eax, eax
and eax, 0xfffffffb
lea ebx, [eax + 4]
test edx, edx
jne 0x40984d
lea ebx, [eax + 4]
movzx eax, word [ecx + eax*2 + 8]
push eax
call dword [sym.imp.msvcrt.dll_iswdigit]
pop ecx
test eax, eax
jne 0x40984d
or ebx, 0xffffffff
cmp ebx, 0xffffffff
je 0x40988d
lea ecx, [ebp - 0x38]
call fcn.004067af
mov eax, dword [ebp - 0x20]
lea ecx, [ebp - 0x38]
push 0xffffffffffffffff
lea eax, [eax + ebx*2]
push eax
call fcn.004068ca
test eax, eax
js 0x409885
cmp dword [ebp - 0x38], 0
je 0x409881
push dword [ebp - 0x38]
call dword [sym.imp.msvcrt.dll__wtol]
pop ecx
jmp 0x409883
xor eax, eax
mov esi, eax
lea ecx, [ebp - 0x38]
call fcn.00406a9c
lea ecx, [ebp - 0x38]
call fcn.004067af
mov ecx, dword [ebp - 4]
movzx eax, cx
push dword [ebp - 0x14]
cmp esi, 0xffffffff
je 0x4098bd
push esi
push eax
push 0x40283c
lea eax, [ebp - 0x38]
push 0x402510
push eax
call fcn.00406bac
add esp, 0x18
jmp 0x4098d4
push eax
push 0x40283c
lea eax, [ebp - 0x38]
push 0x402544
push eax
call fcn.00406bac
add esp, 0x14
mov esi, eax
test esi, esi
js 0x4098e8
push dword [ebp - 0x38]
mov ecx, edi
push 1
call fcn.00407818
mov esi, eax
lea ecx, [ebp - 0x38]
call fcn.00406a9c
lea ecx, [ebp - 0x14]
call fcn.00406a9c
lea ecx, [ebp - 0x20]
call fcn.00406a9c
lea ecx, [ebp - 0x2c]
jmp 0x409ac1
mov ecx, edi
call fcn.0040790c
cmp eax, 4
jne 0x409a4c
mov ecx, dword [ebx]
call fcn.0040e779
test al, al
je 0x409a4c
lea ecx, [ebp - 0x2c]
call fcn.004067af
lea ecx, [ebp - 0x14]
call fcn.004067af
push 2
push dword [ebx]
lea ecx, [ebp - 0x2c]
call fcn.004068ca
mov esi, eax
test esi, esi
js 0x409a44
mov eax, 0x104
lea ecx, [ebp - 0x14]
push eax
mov dword [ebp - 4], eax
call fcn.00406887
mov esi, eax
test esi, esi
js 0x409a44
lea eax, [ebp - 4]
push eax
push dword [ebp - 0x14]
push dword [ebp - 0x2c]
call dword [sym.imp.MPR.dll_WNetGetConnectionW]
cmp eax, 0xea
jne 0x4099ac
push dword [ebp - 4]
lea ecx, [ebp - 0x14]
call fcn.00406887
mov esi, eax
test esi, esi
js 0x409a44
lea eax, [ebp - 4]
push eax
push dword [ebp - 0x14]
push dword [ebp - 0x2c]
call dword [sym.imp.MPR.dll_WNetGetConnectionW]
mov esi, eax
test esi, esi
jle 0x409a19
jmp 0x4099dd
test eax, eax
je 0x409a17
mov esi, dword [ebp - 0x14]
mov eax, 0x104
push eax
push esi
push dword [ebp - 0x2c]
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
test eax, eax
jne 0x4099e8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x4099db
push 0x57
pop esi
test esi, esi
jle 0x409a17
movzx esi, si
or esi, 0x80070000
jmp 0x409a17
push 0x402570
lea ecx, [ebp - 0x14]
call fcn.00406e86
test eax, eax
jne 0x409a12
lea eax, [esi + 0xe]
push eax
lea eax, [ebp - 0x14]
push 0x402580
push eax
call fcn.00406bac
add esp, 0xc
mov esi, eax
jmp 0x409a17
mov esi, 0xc00d1327
test esi, esi
js 0x409a44
mov eax, dword [ebx]
add eax, 4
jne 0x409a29
mov esi, 0x80070057
jmp 0x409a44
push eax
lea ecx, [ebp - 0x14]
call fcn.004069be
mov esi, eax
test esi, esi
js 0x409a44
push dword [ebp - 0x14]
mov ecx, edi
call fcn.00408015
mov esi, eax
lea ecx, [ebp - 0x14]
jmp 0x4098fb
mov eax, dword [ebp - 4]
test eax, eax
je 0x409ac6
mov edx, 0x402588
mov ecx, eax
call fcn.0040678c
test al, al
je 0x409ac6
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
push dword [ebx]
call fcn.00409bc5
mov esi, eax
test esi, esi
js 0x409ac6
push 0xffffffffffffffff
push 0x40286c
lea ecx, [edi + 0x1c]
call fcn.004068ca
mov esi, eax
test esi, esi
js 0x409ac6
lea ecx, [ebp - 0x38]
call fcn.004067af
push dword [ebp - 4]
lea eax, [ebp - 0x38]
push dword [ebp - 8]
push 0x402590
push eax
call fcn.00406bac
mov esi, eax
add esp, 0x10
test esi, esi
js 0x409abe
push dword [ebp - 0x38]
mov ecx, edi
call fcn.00408015
mov esi, eax
lea ecx, [ebp - 0x38]
call fcn.00406a9c
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret