Function at 0x4d1760
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x7462bf
mov eax, dword fs:[0]
push eax
sub esp, 0x4a4
mov eax, dword [0x82384c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x4b0], 0
mov dword [ebp - 0x4ac], 0
mov dword [ebp - 0x4a8], 0
lea eax, [ebp - 0x428]
mov dword [ebp - 4], 0
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
test eax, eax
je 0x4d1aac
mov edi, dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
lea esi, [ebp - 0x428]
nop dword [eax]
movzx eax, word [esi]
test ax, ax
je 0x4d1aac
mov word [ebp - 0x18], ax
lea eax, [ebp - 0x220]
push 0x104
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x16], 0x3a
push eax
call edi
test eax, eax
je 0x4d1a78
xor eax, eax
mov dword [ebp - 0x42c], 7
mov dword [ebp - 0x430], 0
mov word [ebp - 0x440], ax
cmp word [ebp - 0x18], ax
jne 0x4d1838
xor ecx, ecx
jmp 0x4d184f
lea ecx, [ebp - 0x18]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4d1840
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x440]
call fcn.004062a0
xor eax, eax
mov dword [ebp - 0x478], 7
mov dword [ebp - 0x47c], 0
mov word [ebp - 0x48c], ax
mov dword [ebp - 0x460], 7
mov dword [ebp - 0x464], eax
mov word [ebp - 0x474], ax
mov dword [ebp - 0x45c], eax
push 1
push 0x7511b8
lea ecx, [ebp - 0x440]
mov byte [ebp - 4], 2
call fcn.00406d70
cmp word [ebp - 0x220], 0
jne 0x4d18bd
xor eax, eax
jmp 0x4d18d5
lea eax, [ebp - 0x220]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4d18c6
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x48c]
call fcn.004062a0
cmp word [ebp - 0x18], 0
jne 0x4d18f3
xor ecx, ecx
jmp 0x4d190f
lea ecx, [ebp - 0x18]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4d1900
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x474]
call fcn.004062a0
lea ecx, [ebp - 0x220]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4d1930
sub ecx, edx
lea eax, [ebp - 0x48c]
sar ecx, 1
mov dword [ebp - 0x45c], ecx
lea ecx, [ebp - 0x4b0]
push eax
call fcn.004d14f0
cmp dword [ebp - 0x42c], 8
lea eax, [ebp - 0x440]
cmovae eax, dword [ebp - 0x440]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 5
je 0x4d1a4b
cmp eax, 4
je 0x4d1a4b
xor eax, eax
mov dword [ebp - 0x444], 7
mov dword [ebp - 0x448], 0
mov word [ebp - 0x458], ax
lea eax, [ebp - 0x220]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x4a4]
call fcn.00405710
lea eax, [ebp - 0x458]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x4a4]
push eax
call fcn.004d15b0
mov ecx, dword [ebp - 0x490]
add esp, 8
mov byte [ebp - 4], 3
mov bl, al
cmp ecx, 8
jb 0x4d19f5
inc ecx
push ecx
push dword [ebp - 0x4a4]
lea ecx, [ebp - 0x4a4]
call fcn.00406aa0
test bl, bl
je 0x4d1a2d
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x458]
push eax
lea ecx, [ebp - 0x48c]
call fcn.004063a0
mov eax, dword [ebp - 0x448]
lea ecx, [ebp - 0x4b0]
mov dword [ebp - 0x45c], eax
lea eax, [ebp - 0x48c]
push eax
call fcn.004d14f0
mov eax, dword [ebp - 0x444]
cmp eax, 8
jb 0x4d1a4b
inc eax
lea ecx, [ebp - 0x458]
push eax
push dword [ebp - 0x458]
call fcn.00406aa0
lea ecx, [ebp - 0x48c]
call fcn.004cbb80
mov eax, dword [ebp - 0x42c]
mov byte [ebp - 4], 0
cmp eax, 8
jb 0x4d1a78
inc eax
lea ecx, [ebp - 0x440]
push eax
push dword [ebp - 0x440]
call fcn.00406aa0
mov ecx, esi
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4d1a80
sub ecx, edx
sar ecx, 1
lea esi, [esi + ecx*2]
add esi, 2
lea ecx, [ebp - 0x428]
mov eax, esi
sub eax, ecx
sar eax, 1
cmp eax, 0x104
jb 0x4d17e0
push 0x830704
mov dword [ebp - 0x18], vtable.nfapi::AutoLock.0
mov dword [ebp - 0x14], 0x830704
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebp - 0x4b0]
mov byte [ebp - 4], 5
push eax
mov ecx, 0x8306f8
call fcn.004cbc60
push 0x830704
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [ebp - 0x4b0]
test ebx, ebx
je 0x4d1b6e
push dword [ebp - 0x14]
lea eax, [ebp - 0x4b0]
push eax
push dword [ebp - 0x4ac]
push ebx
call fcn.004ca8a0
mov ecx, dword [ebp - 0x4a8]
mov eax, 0x4ec4ec4f
sub ecx, ebx
add esp, 0x10
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0x4ec4ec4
jbe 0x4d1b2d
call fcn.00595fc1
imul eax, eax, 0x34
cmp eax, 0x1000
jb 0x4d1b65
test bl, 0x1f
je 0x4d1b41
call fcn.00595fc1
mov eax, dword [ebx - 4]
cmp eax, ebx
jb 0x4d1b4d
call fcn.00595fc1
sub ebx, eax
cmp ebx, 4
jae 0x4d1b59
call fcn.00595fc1
cmp ebx, 0x23
jbe 0x4d1b63
call fcn.00595fc1
mov ebx, eax
push ebx
call fcn.004fb51d
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004fb522
mov esp, ebp
pop ebp
ret