Function at 0x40f4f0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x467d32
mov eax, dword fs:[0]
push eax
sub esp, 0x460
mov eax, dword [0x4c6af0]
xor eax, ebp
mov dword [ebp - 0x2c], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x468], ecx
lea ecx, [ebp - 0x18]
call fcn.004023c0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.004023c0
mov byte [ebp - 4], 1
push 0x46dfab
mov ecx, 0x517534
call fcn.004024c0
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], 2
jmp 0x40f566
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x20
jge 0x40f6ac
mov ecx, dword [ebp - 0x14]
add ecx, 0x41
mov byte [ebp - 0x25], cl
mov edx, 1
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x24]
je 0x40f6a7
movsx ecx, byte [ebp - 0x25]
push ecx
push 0x4afb2c
lea edx, [ebp - 0x38]
push edx
call fcn.0044fc6a
add esp, 0xc
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 2
jne 0x40f6a7
movzx ecx, byte [ebp - 0x25]
push ecx
call fcn.0042d8e0
add esp, 4
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0xffffffff
jne 0x40f5d7
jmp 0x40f55d
lea edx, [ebp - 0x444]
push edx
mov eax, dword [ebp - 0x40]
push eax
call fcn.0042dc60
add esp, 8
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x40]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x10], 0
je 0x40f658
push 0xa
push str.USB_CONFIG
lea edx, [ebp - 0x3fc]
push edx
call fcn.00451f07
add esp, 0xc
test eax, eax
jne 0x40f658
push 0x516e60
call fcn.0044f870
add esp, 4
test eax, eax
je 0x40f64c
movsx eax, byte [ebp - 0x25]
push eax
push 0x4afb3c
lea ecx, [ebp - 0x20]
push ecx
call fcn.00402f60
add esp, 0xc
lea edx, [ebp - 0x20]
push edx
mov ecx, 0x517534
call fcn.0042cf70
mov al, byte [ebp - 0x25]
mov byte [0x51746c], al
jmp 0x40f6ac
cmp dword [ebp - 0x10], 0
je 0x40f6a7
push 0xa
push str.USB_DISK_3
lea ecx, [ebp - 0x3fc]
push ecx
call fcn.00451f07
add esp, 0xc
test eax, eax
jne 0x40f6a7
movsx edx, byte [ebp - 0x25]
push edx
push str.____Found_KEYDISK___c:______r_n
lea eax, [ebp - 0x20]
push eax
call fcn.00402f60
add esp, 0xc
lea ecx, [ebp - 0x20]
push ecx
mov ecx, 0x517534
call fcn.0042cf70
mov dl, byte [ebp - 0x25]
mov byte [0x51746c], dl
jmp 0x40f6ac
jmp 0x40f55d
mov dword [ebp - 0x14], 2
jmp 0x40f6be
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x20
jge 0x40f850
mov ecx, dword [ebp - 0x14]
add ecx, 0x41
mov byte [ebp - 0x449], cl
movsx edx, byte [ebp - 0x449]
movzx eax, byte [0x51746c]
cmp edx, eax
jne 0x40f6e8
jmp 0x40f6b5
mov edx, 1
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov dword [ebp - 0x448], edx
mov eax, dword [ebp + 8]
and eax, dword [ebp - 0x448]
je 0x40f830
movsx ecx, byte [ebp - 0x449]
push ecx
push str._Disk__c:
lea edx, [ebp - 0x18]
push edx
call fcn.00402f60
add esp, 0xc
movsx eax, byte [ebp - 0x449]
push eax
push 0x4afb94
lea ecx, [ebp - 0x458]
push ecx
call fcn.0044fc6a
add esp, 0xc
lea edx, [ebp - 0x458]
push edx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov dword [ebp - 0x45c], eax
mov eax, dword [ebp - 0x45c]
mov dword [ebp - 0x46c], eax
cmp dword [ebp - 0x46c], 6
ja case.default.0x40f76a
mov ecx, dword [ebp - 0x46c]
jmp dword [ecx*4 + 0x40f898]
push str.__root_path_is_invalid_
lea ecx, [ebp - 0x18]
call fcn.0042cf90
jmp case.default.0x40f76a
push str.__removable_media_
lea ecx, [ebp - 0x18]
call fcn.0042cf90
jmp case.default.0x40f76a
push str.__fixed_media_
lea ecx, [ebp - 0x18]
call fcn.0042cf90
jmp case.default.0x40f76a
push str.__remote_network_drive_
lea ecx, [ebp - 0x18]
call fcn.0042cf90
jmp case.default.0x40f76a
push str.__CDROM_
lea ecx, [ebp - 0x18]
call fcn.0042cf90
jmp case.default.0x40f76a
push str.__RAMDISK_
lea ecx, [ebp - 0x18]
call fcn.0042cf90
cmp dword [ebp - 0x45c], 2
jne 0x40f82e
movzx edx, byte [0x51746f]
test edx, edx
jne 0x40f82e
cmp dword [0x4c7f58], 0
jne 0x40f82e
lea eax, [ebp - 0x18]
push eax
mov ecx, 0x517534
call fcn.0042cf70
movsx ecx, byte [ebp - 0x449]
mov dword [0x5174a0], ecx
mov dword [ebp - 0x460], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.00402480
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.00402480
mov eax, dword [ebp - 0x460]
jmp 0x40f87b
jmp 0x40f84b
mov edx, dword [0x5174a0]
movsx eax, byte [ebp - 0x449]
cmp edx, eax
jne 0x40f84b
mov dword [0x5174a0], 0
jmp 0x40f6b5
mov dword [ebp - 0x464], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.00402480
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.00402480
mov eax, dword [ebp - 0x464]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x2c]
xor ecx, ebp
call fcn.0044e8ae
mov esp, ebp
pop ebp
ret 4