Function at 0x40b6f0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x186c
call fcn.0046d7d0
mov eax, dword [0x4d1028]
lea ebx, [ebp - 0x810]
xor eax, ebp
mov dword [ebp - 0x10], eax
push 0x800
push 0
push ebx
call fcn.00472a40
add esp, 0xc
push ebx
push 0x3ff
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
test eax, eax
je 0x40b7f5
movzx eax, word [0x490780]
mov word [ebp - 0x1874], ax
mov eax, dword [0x49077c]
mov dword [ebp - 0x1878], eax
movzx eax, word [ebp - 0x810]
test ax, ax
je 0x40b7f5
mov esi, dword [ebp + 8]
lea edi, [ebp - 0x1828]
nop word cs:[eax + eax]
mov word [ebp - 0x1878], ax
push 0x800
lea eax, [ebp - 0x1810]
push eax
lea eax, [ebp - 0x1878]
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
test eax, eax
je 0x40b7e0
cmp word [ebp - 0x1810], 0
je 0x40b7b0
xor eax, eax
cmp word [ebp + eax*2 - 0x180e], 0
lea eax, [eax + 1]
jne 0x40b7a0
jmp 0x40b7b2
xor eax, eax
mov ecx, edi
push eax
lea eax, [ebp - 0x1810]
push eax
call fcn.00408f00
mov ecx, edi
push esi
call fcn.004090b0
test al, al
jne 0x40b7fc
mov ecx, edi
push esi
call fcn.0040a1e0
test al, al
jne 0x40b7fc
mov ecx, edi
call fcn.00408fb0
cmp word [ebx], 0
lea ebx, [ebx + 2]
jne 0x40b7e0
movzx eax, word [ebx]
test ax, ax
jne 0x40b770
xor ebx, ebx
jmp 0x40b9bb
lea eax, [ebp - 0x1810]
push eax
call fcn.0047f05d
add esp, 4
mov dword [ebp - 0x185c], 7
mov dword [ebp - 0x1860], 0
mov word [ebp - 0x1870], 0
mov edi, dword [esi + 0x10]
sub edi, eax
jb 0x40b9d2
cmp dword [esi + 0x14], 7
jbe 0x40b83b
mov esi, dword [esi]
lea eax, [esi + eax*2]
cmp edi, 7
jbe 0x40b864
sub esp, 0xc
mov cl, byte [ebp - 0x1840]
mov byte [esp + 4], cl
lea ecx, [ebp - 0x1870]
mov dword [esp + 8], eax
mov dword [esp], edi
call fcn.004028e6
jmp 0x40b888
lea ecx, [edi + edi]
mov dword [ebp - 0x1860], edi
lea edx, [ebp - 0x1870]
push ecx
push eax
push edx
call fcn.004724c0
add esp, 0xc
mov word [ebp + edi*2 - 0x1870], 0
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 0x1878]
lea ecx, [ebp - 0x1870]
push eax
push 0
call fcn.0040c290
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [ebp - 0x1850], xmm1
movsd qword [ebp - 0x1858], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [ebp - 0x1848], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], 0
mov eax, dword [ebp - 0x1848]
cmp dword [ebp - 0x1844], 7
jbe 0x40b8ef
mov edx, dword [ebp - 0x1858]
jmp 0x40b8f5
lea edx, [ebp - 0x1858]
lea edi, [ebp - 0x1840]
mov ecx, edi
push eax
push edx
call fcn.00408f00
mov ecx, esi
push edi
call fcn.00409010
mov ecx, edi
call fcn.00408fb0
mov ecx, dword [ebp - 0x1844]
cmp ecx, 8
jb 0x40b954
mov eax, dword [ebp - 0x1858]
lea edx, [ecx + ecx + 2]
cmp edx, 0x1000
jb 0x40b94a
mov edx, eax
mov eax, dword [eax - 4]
add edx, 0xfffffffc
sub edx, eax
cmp edx, 0x20
jae 0x40b9d7
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.0046d651
add esp, 8
mov ecx, dword [ebp - 0x185c]
mov dword [ebp - 0x1848], 0
mov dword [ebp - 0x1844], 7
mov word [ebp - 0x1858], 0
cmp ecx, 8
jb 0x40b9ae
mov eax, dword [ebp - 0x1870]
lea edx, [ecx + ecx + 2]
cmp edx, 0x1000
jb 0x40b9a4
mov edx, eax
mov eax, dword [eax - 4]
add edx, 0xfffffffc
sub edx, eax
cmp edx, 0x20
jae 0x40b9d7
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.0046d651
add esp, 8
lea ecx, [ebp - 0x1828]
call fcn.00408fb0
mov bl, 1
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0046d691
mov eax, ebx
add esp, 0x186c
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.00404380
call fcn.004798ba
int3