Function at 0x428a50
Capabilities:
Get disk information
Get disk information via ioctl

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c2500
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x474
mov eax, dword [0x4f66e0]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x480], ecx
call fcn.004b5d44
mov dword [ebp - 0x45c], eax
mov eax, dword [ebp - 0x45c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x45c]
call dword [edx + 0xc]
mov dword [ebp - 0x458], eax
mov eax, dword [ebp - 0x458]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 0
movzx ecx, word [ebp + 8]
push ecx
push 0x4cd7b8
lea edx, [ebp - 0x18]
push edx
call fcn.004193e0
add esp, 0xc
mov eax, dword [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 3
je 0x428af7
mov byte [ebp - 0x452], 0xff
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.0044e670
mov al, byte [ebp - 0x452]
jmp 0x428ddd
call fcn.004b5d44
mov dword [ebp - 0x468], eax
mov ecx, dword [ebp - 0x468]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x468]
call dword [edx + 0xc]
mov dword [ebp - 0x464], eax
mov eax, dword [ebp - 0x464]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 1
movzx ecx, word [ebp + 8]
push ecx
push 0x4cd7c4
lea edx, [ebp - 0x1c]
push edx
call fcn.004193e0
add esp, 0xc
push 0
push 0x20000080
push 3
push 0
push 3
push 0
mov eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x30], eax
mov byte [ebp - 0x1d], 0xff
cmp dword [ebp - 0x30], 0xffffffff
je 0x428c00
push 0
lea ecx, [ebp - 0x14]
push ecx
push 0xc
lea edx, [ebp - 0x2c]
push edx
push 0
push 0
push 0x2d1080
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x428b94
mov cl, byte [ebp - 0x28]
mov byte [ebp - 0x1d], cl
jmp 0x428c00
lea edx, [ebp - 0x43c]
mov dword [ebp - 0x34], edx
push 0
lea eax, [ebp - 0x14]
push eax
push 0x400
mov ecx, dword [ebp - 0x34]
push ecx
push 0
push 0
push 0x560000
mov edx, dword [ebp - 0x30]
push edx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x428c00
mov dword [ebp - 0x440], 0
jmp 0x428bde
mov eax, dword [ebp - 0x440]
add eax, 1
mov dword [ebp - 0x440], eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x440]
cmp edx, dword [ecx]
jae 0x428c00
mov eax, dword [ebp - 0x440]
imul eax, eax, 0x18
mov ecx, dword [ebp - 0x34]
mov dl, byte [ecx + eax + 8]
mov byte [ebp - 0x1d], dl
jmp 0x428bcf
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
movzx ecx, byte [ebp - 0x1d]
cmp ecx, 0xff
jne 0x428c43
mov byte [ebp - 0x453], 0xff
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.0044e670
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.0044e670
mov al, byte [ebp - 0x453]
jmp 0x428ddd
mov byte [ebp - 0xd], 0xff
mov dword [ebp - 0x444], 0
jmp 0x428c62
mov edx, dword [ebp - 0x444]
add edx, 1
mov dword [ebp - 0x444], edx
mov ecx, dword [ebp - 0x480]
add ecx, 0x1b8
call fcn.00435a90
cmp dword [ebp - 0x444], eax
jge 0x428db3
movzx eax, byte [ebp - 0xd]
cmp eax, 0xff
jne 0x428db3
mov ecx, dword [ebp - 0x444]
push ecx
mov ecx, dword [ebp - 0x480]
add ecx, 0x1b8
call fcn.00435ae0
mov dword [ebp - 0x448], eax
cmp dword [ebp - 0x448], 0
je 0x428dae
mov edx, dword [ebp - 0x448]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x448]
call dword [eax + 8]
test eax, eax
je 0x428dae
mov ecx, dword [ebp - 0x448]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x448]
call dword [edx + 0x28]
movzx eax, al
movzx ecx, byte [ebp - 0x1d]
cmp eax, ecx
jne 0x428dae
mov edx, dword [ebp - 0x448]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x448]
call dword [eax + 0x14]
mov byte [ebp - 0x451], al
mov ecx, dword [ebp - 0x448]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x474], edx
xor eax, eax
cmp dword [ebp - 0x474], 1
sete al
mov dword [ebp - 0x450], eax
mov dword [ebp - 0x44c], 0
movzx ecx, byte [ebp - 0x451]
cmp ecx, 0x28
jle 0x428d49
cmp dword [ebp - 0x450], 0
je 0x428d5d
movzx edx, byte [ebp - 0x451]
test edx, edx
jne 0x428d63
cmp dword [ebp - 0x450], 0
je 0x428d63
mov byte [ebp - 0xd], 0
jmp 0x428dae
movzx eax, byte [ebp - 0x451]
test eax, eax
jle 0x428d77
cmp dword [ebp - 0x450], 0
je 0x428da4
movzx ecx, byte [ebp - 0x451]
cmp ecx, 0xff
jne 0x428d8f
cmp dword [ebp - 0x450], 0
jne 0x428da4
movzx edx, byte [ebp - 0x451]
cmp edx, 0xb
jne 0x428daa
cmp dword [ebp - 0x450], 0
je 0x428daa
mov byte [ebp - 0xd], 1
jmp 0x428dae
mov byte [ebp - 0xd], 2
jmp 0x428c53
mov al, byte [ebp - 0xd]
mov byte [ebp - 0x454], al
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.0044e670
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.0044e670
mov al, byte [ebp - 0x454]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x38]
call fcn.00498784
mov esp, ebp
pop ebp
ret 4