Function at 0x571b14
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 8], ecx
mov edi, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405a64
xor eax, eax
push ebp
push 0x571db3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, edi
mov edx, dword [ebp - 4]
call fcn.00405638
cmp dword [ebp - 4], 0
je 0x571d83
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 4]
call fcn.0040c598
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax]
add al, 0xbf
sub al, 0x1a
jae 0x571d83
mov esi, 3
lea ebx, [esi + 0x41]
mov eax, ebx
add al, 0xbc
sub al, 0x17
jae 0x571c56
lea eax, [ebp - 0x28]
mov edx, ebx
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x2c]
call fcn.00403d1c
mov edx, 0x571dc4
lea eax, [ebp - 0x2c]
mov cl, 2
call fcn.00403cec
lea edx, [ebp - 0x2c]
lea eax, [ebp - 8]
call fcn.00405848
mov eax, dword [ebp - 8]
call fcn.00405a74
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 3
jne 0x571c56
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 8]
call fcn.00405a74
push eax
mov eax, dword [0x58ae50]
mov eax, dword [eax]
call eax
fild qword [ebp - 0x10]
fdiv dword [0x571dc8]
fdiv dword [0x571dc8]
fdiv dword [0x571dc8]
fcomp dword [0x571dcc]
wait
fnstsw ax
sahf
jbe 0x571c56
lea eax, [ebp - 0x30]
mov edx, ebx
call fcn.004057cc
push dword [ebp - 0x30]
push 0x571dd8
lea eax, [ebp - 0x34]
mov edx, dword [0x58ac18]
add edx, 0x320
call fcn.00405848
push dword [ebp - 0x34]
push 0x571de4
mov eax, edi
mov edx, 4
call fcn.00405978
jmp 0x571d83
inc esi
cmp esi, 0x1a
jne 0x571b86
xor esi, esi
lea ebx, [esi + 0x41]
mov eax, ebx
add al, 0xbc
sub al, 0x17
jae 0x571cec
lea eax, [ebp - 0x28]
mov edx, ebx
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x2c]
call fcn.00403d1c
mov edx, 0x571dc4
lea eax, [ebp - 0x2c]
mov cl, 2
call fcn.00403cec
lea edx, [ebp - 0x2c]
lea eax, [ebp - 8]
call fcn.00405848
mov eax, dword [ebp - 8]
call fcn.00405a74
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 3
jne 0x571cec
lea eax, [ebp - 0x38]
mov edx, ebx
call fcn.004057cc
push dword [ebp - 0x38]
push 0x571dd8
lea eax, [ebp - 0x3c]
mov edx, dword [0x58ac18]
add edx, 0x320
call fcn.00405848
push dword [ebp - 0x3c]
push 0x571de4
mov eax, edi
mov edx, 4
call fcn.00405978
jmp 0x571cf6
inc esi
cmp esi, 0x1a
jne 0x571c62
mov eax, dword [edi]
mov edx, dword [ebp - 4]
call fcn.0040c7a4
test eax, eax
jne 0x571d83
mov bl, 0x43
lea eax, [ebp - 0x28]
mov edx, ebx
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x2c]
call fcn.00403d1c
mov edx, 0x571dc4
lea eax, [ebp - 0x2c]
mov cl, 2
call fcn.00403cec
lea edx, [ebp - 0x2c]
lea eax, [ebp - 8]
call fcn.00405848
mov eax, dword [ebp - 8]
call fcn.00405a74
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 3
jne 0x571d83
lea eax, [ebp - 0x40]
mov edx, ebx
call fcn.004057cc
push dword [ebp - 0x40]
push 0x571dd8
lea eax, [ebp - 0x44]
mov edx, dword [0x58ac18]
add edx, 0x320
call fcn.00405848
push dword [ebp - 0x44]
push 0x571de4
mov eax, edi
mov edx, 4
call fcn.00405978
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x571dba
lea eax, [ebp - 0x44]
mov edx, 6
call fcn.00405608
lea eax, [ebp - 0x24]
call fcn.004055e4
lea eax, [ebp - 8]
mov edx, 2
call fcn.00405608
ret