Function at 0x4bb48a
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.0054cb20
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 0x4bb4d6
cmp dword [ebp - 0x470], 3
je 0x4bb4fe
cmp dword [ebp - 0x470], 5
je 0x4bb50a
jmp 0x4bb511
mov edx, dword [ebp - 0x428]
and edx, 0xff
test edx, edx
je 0x4bb4f2
mov dword [ebp - 0x42c], 0x5789c0
jmp 0x4bb4fc
mov dword [ebp - 0x42c], 0x5789d0
jmp 0x4bb518
mov dword [ebp - 0x42c], 0x5789d0
jmp 0x4bb518
xor eax, eax
jmp 0x4bb718
xor eax, eax
jmp 0x4bb718
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 0x4bb541
xor eax, eax
jmp 0x4bb718
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 0x4bb709
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 0x4bb5a1
jmp 0x4bb709
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 0x4bb6f5
cmp dword [ebp - 0x424], 0x400
ja 0x4bb6f5
mov ecx, dword [ebp - 0x430]
mov dword [ecx], 5
push 0x1c
push 0
lea edx, [ebp - 0x44c]
push edx
call fcn.0054bf90
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 0x4bb6f5
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 0x4bb6f5
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 0x4bb6e8
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0x468]
jne 0x4bb6e8
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 0x4bb718
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 0x4bb565
mov eax, dword [ebp - 0x454]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
xor eax, eax
mov esp, ebp
pop ebp
ret