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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c6d80
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x474
mov eax, dword [0x4fb770]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x480], ecx
call fcn.004ba5ee
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 0x4d2948
lea edx, [ebp - 0x18]
push edx
call fcn.00419400
add esp, 0xc
mov eax, dword [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 3
je 0x4291f7
mov byte [ebp - 0x452], 0xff
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.0044f730
mov al, byte [ebp - 0x452]
jmp 0x4294dd
call fcn.004ba5ee
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 0x4d2954
lea edx, [ebp - 0x1c]
push edx
call fcn.00419400
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 0x429300
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 0x429294
mov cl, byte [ebp - 0x28]
mov byte [ebp - 0x1d], cl
jmp 0x429300
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 0x429300
mov dword [ebp - 0x440], 0
jmp 0x4292de
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 0x429300
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 0x4292cf
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
movzx ecx, byte [ebp - 0x1d]
cmp ecx, 0xff
jne 0x429343
mov byte [ebp - 0x453], 0xff
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.0044f730
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.0044f730
mov al, byte [ebp - 0x453]
jmp 0x4294dd
mov byte [ebp - 0xd], 0xff
mov dword [ebp - 0x444], 0
jmp 0x429362
mov edx, dword [ebp - 0x444]
add edx, 1
mov dword [ebp - 0x444], edx
mov ecx, dword [ebp - 0x480]
add ecx, 0x254
call fcn.00436d30
cmp dword [ebp - 0x444], eax
jge 0x4294b3
movzx eax, byte [ebp - 0xd]
cmp eax, 0xff
jne 0x4294b3
mov ecx, dword [ebp - 0x444]
push ecx
mov ecx, dword [ebp - 0x480]
add ecx, 0x254
call fcn.00436d80
mov dword [ebp - 0x448], eax
cmp dword [ebp - 0x448], 0
je 0x4294ae
mov edx, dword [ebp - 0x448]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x448]
call dword [eax + 8]
test eax, eax
je 0x4294ae
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 0x4294ae
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 0x429449
cmp dword [ebp - 0x450], 0
je 0x42945d
movzx edx, byte [ebp - 0x451]
test edx, edx
jne 0x429463
cmp dword [ebp - 0x450], 0
je 0x429463
mov byte [ebp - 0xd], 0
jmp 0x4294ae
movzx eax, byte [ebp - 0x451]
test eax, eax
jle 0x429477
cmp dword [ebp - 0x450], 0
je 0x4294a4
movzx ecx, byte [ebp - 0x451]
cmp ecx, 0xff
jne 0x42948f
cmp dword [ebp - 0x450], 0
jne 0x4294a4
movzx edx, byte [ebp - 0x451]
cmp edx, 0xb
jne 0x4294aa
cmp dword [ebp - 0x450], 0
je 0x4294aa
mov byte [ebp - 0xd], 1
jmp 0x4294ae
mov byte [ebp - 0xd], 2
jmp 0x429353
mov al, byte [ebp - 0xd]
mov byte [ebp - 0x454], al
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.0044f730
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.0044f730
mov al, byte [ebp - 0x454]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x38]
call fcn.0049d184
mov esp, ebp
pop ebp
ret 4