Function at 0x4d3618
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
push esi
mov byte [ebp - 0xa], cl
mov byte [ebp - 9], dl
mov ebx, eax
xor eax, eax
push ebp
push 0x4d391c
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xb], 0
lea edx, [ebp - 4]
mov eax, ebx
call fcn.004663b4
lea eax, [ebp - 4]
call fcn.004cd178
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.004663ec
mov eax, dword [ebp - 4]
test eax, eax
je 0x4d366f
sub eax, 4
mov eax, dword [eax]
cmp eax, 0xf0
jle 0x4d3695
push 0
push 1
push 1
mov eax, dword [0x538e7c]
mov eax, dword [eax + 0xb4]
mov cl, 2
xor edx, edx
call fcn.004eb9ec
jmp 0x4d38f4
mov eax, dword [ebp - 4]
test eax, eax
je 0x4d36a1
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jl 0x4d36b2
mov eax, dword [ebp - 4]
cmp word [eax], 0x5c
sete al
jmp 0x4d36b4
xor eax, eax
test al, al
je 0x4d36c5
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x5c
sete al
jmp 0x4d36c7
xor eax, eax
mov ebx, eax
test bl, bl
je 0x4d36ef
cmp byte [ebp - 9], 0
jne 0x4d36ef
push 0
push 1
push 1
mov eax, dword [0x538e7c]
mov eax, dword [eax + 0x6c]
mov cl, 2
xor edx, edx
call fcn.004eb9ec
jmp 0x4d38f4
test bl, bl
jne 0x4d379a
cmp byte [ebp - 0xa], 0
jne 0x4d3704
mov edx, 4
jmp 0x4d3709
mov edx, 3
mov eax, dword [ebp - 4]
test eax, eax
je 0x4d3715
sub eax, 4
mov eax, dword [eax]
cmp edx, eax
jle 0x4d371d
mov al, 1
jmp 0x4d3751
mov eax, dword [ebp - 4]
movzx edx, word [eax]
mov eax, edx
mov ecx, edx
add ecx, 0xffffff9f
sub cx, 0x1a
jae 0x4d3736
mov eax, edx
and ax, 0xffdf
mov esi, 0x4d3930
cmp ax, 0x100
jae 0x4d3749
movzx eax, al
bt dword [esi], eax
jb 0x4d374d
xor eax, eax
jmp 0x4d374f
mov al, 1
xor al, 1
test al, al
je 0x4d3759
mov al, 1
jmp 0x4d3764
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x3a
setne al
test al, al
je 0x4d376c
mov al, 1
jmp 0x4d3777
mov eax, dword [ebp - 4]
cmp word [eax + 4], 0x5c
setne al
test al, al
je 0x4d37ce
push 0
push 1
push 1
mov eax, dword [0x538e7c]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004eb9ec
jmp 0x4d38f4
mov eax, dword [ebp - 4]
lea esi, [eax + 4]
mov dx, 0x5c
mov eax, esi
call fcn.00489ce4
cmp esi, eax
jb 0x4d37ce
push 0
push 1
push 1
mov eax, dword [0x538e7c]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004eb9ec
jmp 0x4d38f4
mov eax, dword [ebp - 4]
call fcn.004cd2c0
test al, al
jne 0x4d37f2
mov eax, dword [ebp - 4]
call fcn.004cd2e8
test al, al
jne 0x4d37f2
mov eax, dword [ebp - 4]
call fcn.004cd328
test al, al
je 0x4d3811
push 0
push 1
push 1
mov eax, dword [0x538e7c]
mov eax, dword [eax + 0x18c]
mov cl, 2
xor edx, edx
call fcn.004eb9ec
jmp 0x4d38f4
lea eax, [ebp - 0x10]
push eax
mov ecx, 0x7fffffff
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.00406bec
mov edx, dword [ebp - 0x10]
mov eax, 0x4d395c
call fcn.00489b5c
test eax, eax
je 0x4d3869
push 0
push 1
push 1
lea edx, [ebp - 0x18]
mov eax, 0x4d395c
call fcn.004cd3ac
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
mov al, 7
call fcn.0048da74
mov eax, dword [ebp - 0x14]
mov cl, 2
xor edx, edx
call fcn.004eb9ec
jmp 0x4d38f4
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.00489a80
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.0048957c
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 8]
call fcn.00489d70
mov eax, dword [ebp - 8]
call fcn.004d35ac
mov eax, dword [ebp - 8]
call fcn.00489e54
test al, al
jne 0x4d38ba
push 0
push 1
push 1
mov eax, dword [0x538e7c]
mov eax, dword [eax + 0x190]
mov cl, 2
xor edx, edx
call fcn.004eb9ec
jmp 0x4d38f4
test bl, bl
jne 0x4d38f0
cmp byte [ebp + 8], 0
jne 0x4d38f0
mov eax, dword [ebp - 8]
call fcn.004064d4
push eax
call sub.kernel32.dll_GetDriveTypeW
cmp eax, 4
jne 0x4d38f0
push 0
push 1
push 1
mov eax, dword [0x538e7c]
mov eax, dword [eax + 0x68]
mov cl, 2
xor edx, edx
call fcn.004eb9ec
jmp 0x4d38f4
mov byte [ebp - 0xb], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d3923
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00406440
lea eax, [ebp - 8]
mov edx, 2
call fcn.00406440
ret