Function at 0x525b00
Capabilities:
Get disk information via ioctl

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x470
push str.Floppy
mov eax, dword [ebp + 0x10]
push eax
call fcn.0054ccc0
add esp, 8
neg eax
sbb eax, eax
neg eax
mov byte [ebp - 0x428], al
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x470], ecx
cmp dword [ebp - 0x470], 2
je 0x525b4c
cmp dword [ebp - 0x470], 3
je 0x525b74
cmp dword [ebp - 0x470], 5
je 0x525b80
jmp 0x525b87
mov edx, dword [ebp - 0x428]
and edx, 0xff
test edx, edx
je 0x525b68
mov dword [ebp - 0x42c], 0x575880
jmp 0x525b72
mov dword [ebp - 0x42c], 0x5758b0
jmp 0x525b8e
mov dword [ebp - 0x42c], 0x5758b0
jmp 0x525b8e
xor eax, eax
jmp 0x525d8e
xor eax, eax
jmp 0x525d8e
push 0x12
push 0
push 0
mov eax, dword [ebp - 0x42c]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsA]
mov dword [ebp - 0x454], eax
cmp dword [ebp - 0x454], 0xffffffff
jne 0x525bb7
xor eax, eax
jmp 0x525d8e
mov dword [ebp - 0x450], 0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x420]
mov dword [ebp - 0x430], ecx
mov dword [ebp - 0x20], 0x1c
mov edx, 1
test edx, edx
je 0x525d7f
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x450]
push ecx
mov edx, dword [ebp - 0x42c]
push edx
push 0
mov eax, dword [ebp - 0x454]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x525c17
jmp 0x525d7f
mov dword [ebp - 0x424], 0
push 0
lea ecx, [ebp - 0x424]
push ecx
push 0
push 0
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp - 0x454]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailA]
cmp dword [ebp - 0x424], 0
je 0x525d6b
cmp dword [ebp - 0x424], 0x400
ja 0x525d6b
mov ecx, dword [ebp - 0x430]
mov dword [ecx], 5
push 0x1c
push 0
lea edx, [ebp - 0x44c]
push edx
call fcn.0054bfb0
add esp, 0xc
mov dword [ebp - 0x44c], 0x1c
lea eax, [ebp - 0x44c]
push eax
lea ecx, [ebp - 0x424]
push ecx
mov edx, dword [ebp - 0x424]
push edx
mov eax, dword [ebp - 0x430]
push eax
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0x454]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailA]
mov dword [ebp - 0x458], eax
cmp dword [ebp - 0x458], 0
je 0x525d6b
push 0
push 0
push 3
push 0
push 3
push 0
mov eax, dword [ebp - 0x430]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x45c], eax
cmp dword [ebp - 0x45c], 0xffffffff
je 0x525d6b
mov dword [ebp - 0x460], 0
push 0
lea ecx, [ebp - 0x460]
push ecx
push 0xc
lea edx, [ebp - 0x46c]
push edx
push 0
push 0
push 0x2d1080
mov eax, dword [ebp - 0x45c]
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [ebp - 0x458], eax
cmp dword [ebp - 0x458], 0
je 0x525d5e
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0x468]
jne 0x525d5e
mov edx, dword [ebp - 0x45c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x454]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov eax, dword [ebp - 0x438]
jmp 0x525d8e
mov ecx, dword [ebp - 0x45c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x450]
add edx, 1
mov dword [ebp - 0x450], edx
jmp 0x525bdb
mov eax, dword [ebp - 0x454]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
xor eax, eax
mov esp, ebp
pop ebp
ret