Function at 0x5052f4
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 0x5055f8
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xb], 0
lea edx, [ebp - 4]
mov eax, ebx
call fcn.00479068
lea eax, [ebp - 4]
call fcn.004fed58
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.004790a0
mov eax, dword [ebp - 4]
test eax, eax
je 0x50534b
sub eax, 4
mov eax, dword [eax]
cmp eax, 0xf0
jle 0x505371
push 0
push 1
push 1
mov eax, dword [0x596e88]
mov eax, dword [eax + 0xb4]
mov cl, 2
xor edx, edx
call fcn.004f71f8
jmp 0x5055d0
mov eax, dword [ebp - 4]
test eax, eax
je 0x50537d
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jl 0x50538e
mov eax, dword [ebp - 4]
cmp word [eax], 0x5c
sete al
jmp 0x505390
xor eax, eax
test al, al
je 0x5053a1
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x5c
sete al
jmp 0x5053a3
xor eax, eax
mov ebx, eax
test bl, bl
je 0x5053cb
cmp byte [ebp - 9], 0
jne 0x5053cb
push 0
push 1
push 1
mov eax, dword [0x596e88]
mov eax, dword [eax + 0x6c]
mov cl, 2
xor edx, edx
call fcn.004f71f8
jmp 0x5055d0
test bl, bl
jne 0x505476
cmp byte [ebp - 0xa], 0
jne 0x5053e0
mov edx, 4
jmp 0x5053e5
mov edx, 3
mov eax, dword [ebp - 4]
test eax, eax
je 0x5053f1
sub eax, 4
mov eax, dword [eax]
cmp edx, eax
jle 0x5053f9
mov al, 1
jmp 0x50542d
mov eax, dword [ebp - 4]
movzx edx, word [eax]
mov eax, edx
mov ecx, edx
add ecx, 0xffffff9f
sub cx, 0x1a
jae 0x505412
mov eax, edx
and ax, 0xffdf
mov esi, 0x50560c
cmp ax, 0x100
jae 0x505425
movzx eax, al
bt dword [esi], eax
jb 0x505429
xor eax, eax
jmp 0x50542b
mov al, 1
xor al, 1
test al, al
je 0x505435
mov al, 1
jmp 0x505440
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x3a
setne al
test al, al
je 0x505448
mov al, 1
jmp 0x505453
mov eax, dword [ebp - 4]
cmp word [eax + 4], 0x5c
setne al
test al, al
je 0x5054aa
push 0
push 1
push 1
mov eax, dword [0x596e88]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004f71f8
jmp 0x5055d0
mov eax, dword [ebp - 4]
lea esi, [eax + 4]
mov dx, 0x5c
mov eax, esi
call fcn.0049c998
cmp esi, eax
jb 0x5054aa
push 0
push 1
push 1
mov eax, dword [0x596e88]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004f71f8
jmp 0x5055d0
mov eax, dword [ebp - 4]
call fcn.004feea0
test al, al
jne 0x5054ce
mov eax, dword [ebp - 4]
call fcn.004feec8
test al, al
jne 0x5054ce
mov eax, dword [ebp - 4]
call fcn.004fef08
test al, al
je 0x5054ed
push 0
push 1
push 1
mov eax, dword [0x596e88]
mov eax, dword [eax + 0x18c]
mov cl, 2
xor edx, edx
call fcn.004f71f8
jmp 0x5055d0
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, 0x505638
call fcn.0049c810
test eax, eax
je 0x505545
push 0
push 1
push 1
lea edx, [ebp - 0x18]
mov eax, 0x505638
call fcn.004fef8c
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
mov al, 7
call fcn.004a0e54
mov eax, dword [ebp - 0x14]
mov cl, 2
xor edx, edx
call fcn.004f71f8
jmp 0x5055d0
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0049c734
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.0049c230
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 8]
call fcn.0049ca24
mov eax, dword [ebp - 8]
call fcn.00505288
mov eax, dword [ebp - 8]
call fcn.0049cb08
test al, al
jne 0x505596
push 0
push 1
push 1
mov eax, dword [0x596e88]
mov eax, dword [eax + 0x190]
mov cl, 2
xor edx, edx
call fcn.004f71f8
jmp 0x5055d0
test bl, bl
jne 0x5055cc
cmp byte [ebp + 8], 0
jne 0x5055cc
mov eax, dword [ebp - 8]
call fcn.004064d4
push eax
call sub.kernel32.dll_GetDriveTypeW
cmp eax, 4
jne 0x5055cc
push 0
push 1
push 1
mov eax, dword [0x596e88]
mov eax, dword [eax + 0x68]
mov cl, 2
xor edx, edx
call fcn.004f71f8
jmp 0x5055d0
mov byte [ebp - 0xb], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5055ff
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00406440
lea eax, [ebp - 8]
mov edx, 2
call fcn.00406440
ret