Function at 0x56cfc0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff28
push ebx
xor eax, eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc8], eax
mov dword [ebp - 8], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x38], eax
xor eax, eax
push ebp
push 0x56d2d1
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, 0x56d2e8
call fcn.0056c644
push 1
call sub.KERNEL32.DLL_SetErrorMode
mov dword [ebp - 4], eax
xor edx, edx
push ebp
push 0x56d274
push dword fs:[edx]
mov dword fs:[edx], esp
lea eax, [ebp - 0xb9]
push eax
push 0x81
call sub.KERNEL32.DLL_GetLogicalDriveStringsA
test eax, eax
je 0x56d25d
lea ebx, [ebp - 0xb9]
jmp 0x56d254
lea eax, [ebp - 8]
mov edx, ebx
call fcn.004042c0
push ebx
call sub.KERNEL32.DLL_GetDriveTypeA
cmp eax, 3
jne 0x56d249
lea eax, [ebp - 0x38]
call fcn.004040f8
push ebx
call sub.KERNEL32.DLL_GetDriveTypeA
sub eax, 2
je 0x56d089
sub eax, 2
je 0x56d098
dec eax
je 0x56d0a7
dec eax
je 0x56d0b6
jmp 0x56d0c3
lea eax, [ebp - 0x38]
mov edx, 0x56d300
call fcn.004043ac
jmp 0x56d0c3
lea eax, [ebp - 0x38]
mov edx, 0x56d314
call fcn.004043ac
jmp 0x56d0c3
lea eax, [ebp - 0x38]
mov edx, 0x56d324
call fcn.004043ac
jmp 0x56d0c3
lea eax, [ebp - 0x38]
mov edx, 0x56d334
call fcn.004043ac
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x18]
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 8]
mov al, byte [eax]
call fcn.00467998
test al, al
je 0x56d1e0
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x28]
call fcn.004040f8
push eax
lea eax, [ebp - 0x24]
call fcn.004040f8
mov edx, eax
mov eax, dword [ebp - 8]
mov al, byte [eax]
pop ecx
call fcn.00467a04
test al, al
je 0x56d12a
push dword [ebp - 0x38]
push 0x56d344
push dword [ebp - 0x28]
push 0x56d350
lea eax, [ebp - 0x38]
mov edx, 4
call fcn.00404464
push dword [ebp - 0xc]
push dword [ebp - 0x10]
lea eax, [ebp - 0xc4]
call fcn.00569d94
push dword [ebp - 0xc4]
push 0x56d35c
push dword [ebp - 0x14]
push dword [ebp - 0x18]
lea eax, [ebp - 0xc8]
call fcn.00569d94
push dword [ebp - 0xc8]
push 0x56d36c
lea eax, [ebp - 0xc0]
mov edx, 4
call fcn.00404464
mov eax, dword [ebp - 0xc0]
push eax
lea eax, [ebp - 0xd0]
mov edx, dword [ebp - 8]
mov dl, byte [edx]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xd4]
call fcn.00402dfc
mov edx, 0x56d374
lea eax, [ebp - 0xd4]
mov cl, 2
call fcn.00402dcc
lea edx, [ebp - 0xd4]
lea eax, [ebp - 0xcc]
call fcn.0040432c
lea eax, [ebp - 0xcc]
mov edx, dword [ebp - 0x38]
call fcn.004043ac
mov edx, dword [ebp - 0xcc]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
pop ecx
call fcn.0056c744
jmp 0x56d249
lea eax, [ebp - 0xd0]
mov edx, dword [ebp - 8]
mov dl, byte [edx]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xd4]
call fcn.00402dfc
mov edx, 0x56d374
lea eax, [ebp - 0xd4]
mov cl, 2
call fcn.00402dcc
lea edx, [ebp - 0xd4]
lea eax, [ebp - 0xd8]
call fcn.0040432c
lea eax, [ebp - 0xd8]
mov edx, dword [ebp - 0x38]
call fcn.004043ac
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov ecx, 0x56d380
call fcn.0056c744
mov eax, dword [ebp - 8]
call fcn.004043a4
inc eax
add ebx, eax
cmp byte [ebx], 0
jne 0x56d050
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x56d27b
mov eax, dword [ebp - 4]
push eax
call sub.KERNEL32.DLL_SetErrorMode
ret