Function at 0x429fb9
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x244
mov edi, dword [ebp + 0xc]
mov eax, dword [0x5cc440]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x23c], 7
mov word [ebp - 0x250], 0
push edi
call fcn.0050a652
add esp, 4
mov esi, eax
cmp eax, 7
jbe 0x42a023
cmp esi, 0x7fffffff
jae 0x42a56e
mov eax, esi
or eax, 7
cmp eax, 0x7ffffffe
jbe 0x42a047
mov ebx, 0x7ffffffe
mov eax, 0xfffffffe
jmp 0x42a060
lea eax, [ebp - 0x250]
mov dword [eax + 0x10], esi
mov ecx, esi
add ecx, esi
push ecx
push edi
push eax
call fcn.00504b50
add esp, 0xc
mov word [ebp + esi*2 - 0x250], 0
jmp 0x42a09f
cmp eax, 0xb
mov ebx, 0xa
cmovae ebx, eax
lea eax, [ebx + ebx]
add eax, 2
cmp ebx, 0x7ff
jb 0x42a068
push eax
call fcn.0044a992
jmp 0x42a06e
push eax
call fcn.00503246
add esp, 4
mov edi, eax
mov dword [ebp - 0x240], esi
mov dword [ebp - 0x23c], ebx
mov eax, esi
add eax, esi
push eax
mov ebx, dword [ebp + 0xc]
push ebx
push edi
call fcn.00504b50
add esp, 0xc
mov word [edi + esi*2], 0
mov dword [ebp - 0x250], edi
mov edi, ebx
lea esi, [ebp - 0x250]
push esi
call fcn.00429390
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x14]
cmp eax, 8
jb 0x42a0f0
mov ecx, dword [ebp - 0x250]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x42a0e6
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x42a573
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.00503276
add esp, 8
test bl, bl
mov bl, 1
jne 0x42a522
mov eax, dword [ebp + 8]
movaps xmm0, xmmword [0x574b00]
lea ecx, [ebp - 0x28]
movups xmmword [ecx], xmm0
movsd xmm0, qword [0x574b10]
movsd qword [ecx + 0x10], xmm0
mov word [ecx], 0
push ecx
push eax
call fcn.00429698
add esp, 8
test al, al
je 0x42a17c
movaps xmm0, xmmword [0x574b00]
movups xmmword [ebp - 0x40], xmm0
movsd xmm0, qword [0x574b10]
movsd qword [ebp - 0x30], xmm0
mov word [ebp - 0x40], 0
push edi
call fcn.0050a652
add esp, 4
mov esi, eax
cmp eax, 7
jbe 0x42a183
cmp esi, 0x7fffffff
jae 0x42a56e
mov eax, esi
or eax, 7
cmp eax, 0x7ffffffe
jbe 0x42a1a5
mov ebx, 0x7ffffffe
mov eax, 0xfffffffe
jmp 0x42a1be
xor ebx, ebx
jmp 0x42a4e9
mov ecx, edi
lea edi, [ebp - 0x40]
mov dword [edi + 0x10], esi
mov eax, esi
add eax, esi
push eax
push ecx
push edi
call fcn.00504b50
add esp, 0xc
mov word [ebp + esi*2 - 0x40], 0
mov edi, dword [edi]
jmp 0x42a1f1
cmp eax, 0xb
mov ebx, 0xa
cmovae ebx, eax
lea eax, [ebx + ebx]
add eax, 2
cmp ebx, 0x7ff
jb 0x42a1c6
push eax
call fcn.0044a992
jmp 0x42a1cc
push eax
call fcn.00503246
add esp, 4
mov edi, eax
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], ebx
mov eax, esi
add eax, esi
push eax
push dword [ebp + 0xc]
push edi
call fcn.00504b50
add esp, 0xc
mov word [edi + esi*2], 0
mov dword [ebp - 0x40], edi
lea ecx, [ebp - 0x40]
mov eax, dword [ecx + 0x10]
mov ebx, dword [ecx + 0x14]
cmp ebx, 8
mov esi, ecx
cmovae esi, edi
cmp word [esi + eax*2 - 2], 0x5c
jne 0x42a332
lea edi, [eax - 1]
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x23c], 7
mov word [ebp - 0x250], 0
cmp eax, edi
cmovb edi, eax
cmp edi, 7
jbe 0x42a25c
cmp edi, 0x7fffffff
jae 0x42a56e
mov eax, edi
or eax, 7
cmp eax, 0x7ffffffe
jbe 0x42a282
mov ebx, 0x7ffffffe
mov eax, 0xfffffffe
jmp 0x42a29b
mov dword [ebp - 0x240], edi
lea eax, [edi + edi]
push eax
push esi
lea eax, [ebp - 0x250]
push eax
call fcn.00504b50
add esp, 0xc
mov word [ebp + edi*2 - 0x250], 0
jmp 0x42a2d7
cmp eax, 0xb
mov ebx, 0xa
cmovae ebx, eax
lea eax, [ebx + ebx]
add eax, 2
cmp ebx, 0x7ff
jb 0x42a2a3
push eax
call fcn.0044a992
jmp 0x42a2a9
push eax
call fcn.00503246
add esp, 4
mov dword [ebp - 0x240], edi
mov dword [ebp - 0x23c], ebx
lea ecx, [edi + edi]
push ecx
push esi
push eax
mov esi, eax
call fcn.00504b50
add esp, 0xc
mov word [esi + edi*2], 0
mov dword [ebp - 0x250], esi
mov ebx, dword [ebp - 0x2c]
cmp ebx, 8
jb 0x42a311
mov eax, dword [ebp - 0x40]
lea edx, [ebx + ebx]
add edx, 2
cmp edx, 0x1000
jb 0x42a307
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x42a573
add ebx, ebx
add ebx, 0x25
mov edx, ebx
mov eax, ecx
push edx
push eax
call fcn.00503276
add esp, 8
movsd xmm0, qword [ebp - 0x240]
movsd qword [ebp - 0x30], xmm0
movups xmm0, xmmword [ebp - 0x250]
movups xmmword [ebp - 0x40], xmm0
mov ebx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x40]
lea ecx, [ebp - 0x40]
cmp ebx, 8
cmovae ecx, edi
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
jb 0x42a344
mov eax, dword [ebp - 0x28]
push ecx
push eax
call fcn.0050fe4a
add esp, 8
test eax, eax
lea edi, [ebp - 0x250]
je 0x42a3ce
lea esi, [ebp - 0x40]
mov ecx, esi
mov edx, esi
call fcn.00429bce
mov ebx, eax
mov ecx, esi
call fcn.00429da0
test al, al
jne 0x42a3d5
test bl, bl
je 0x42a3d5
lea edi, [ebp - 0x250]
movaps xmm0, xmmword [0x574b00]
movups xmmword [edi], xmm0
movsd xmm0, qword [0x574b10]
movsd qword [edi + 0x10], xmm0
mov word [edi], 0
lea ecx, [ebp - 0x28]
mov edx, edi
call fcn.00429de7
test al, al
je 0x42a403
cmp dword [ebp - 0x2c], 8
jb 0x42a3ae
mov esi, dword [ebp - 0x40]
cmp dword [ebp - 0x23c], 8
jb 0x42a3bd
mov edi, dword [ebp - 0x250]
push esi
push edi
call fcn.0050fe4a
add esp, 8
test eax, eax
sete bl
jmp 0x42a405
mov bl, 1
jmp 0x42a4ac
xor ebx, ebx
test al, al
je 0x42a4ac
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x48], ebx
push 0x208
push 0xff
push edi
call fcn.005050d0
add esp, 0xc
cmp dword [ebp - 0x2c], 8
jb 0x42a44e
mov eax, dword [ebp - 0x40]
jmp 0x42a451
xor ebx, ebx
mov eax, dword [ebp - 0x23c]
cmp eax, 8
jb 0x42a4ac
mov ecx, dword [ebp - 0x250]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x42a442
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x42a573
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.00503276
add esp, 8
jmp 0x42a4ac
lea eax, [ebp - 0x40]
mov eax, dword [eax]
lea ecx, [ebp - 0x48]
mov dword [ecx], eax
push 0x104
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
cmp eax, 2
jb 0x42a4ac
cmp eax, 0x104
je 0x42a4ac
push edi
call fcn.0050a652
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x30]
add eax, esi
add eax, 0xfffffffe
cmp eax, dword [ebp - 0x18]
jne 0x42a4aa
cmp dword [ebp - 0x14], 8
jb 0x42a494
mov eax, dword [ebp - 0x28]
jmp 0x42a497
lea eax, [ebp - 0x28]
push esi
push edi
push eax
call fcn.0050fcee
add esp, 0xc
test eax, eax
je 0x42a539
xor ebx, ebx
mov eax, dword [ebp - 0x2c]
cmp eax, 8
jb 0x42a4e9
mov ecx, dword [ebp - 0x40]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x42a4df
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x42a573
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.00503276
add esp, 8
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x42a522
mov ecx, dword [ebp - 0x28]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x42a518
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x42a573
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.00503276
add esp, 8
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005035b5
mov eax, ebx
add esp, 0x244
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [ebp - 0x3c]
mov eax, dword [ecx - 4]
add eax, 4
cmp dword [ecx + 0x10], 8
cmovb eax, ecx
cmp dword [ebp - 0x14], 8
jb 0x42a554
mov ecx, dword [ebp - 0x28]
jmp 0x42a557
lea ecx, [ebp - 0x28]
lea ecx, [ecx + esi*2]
push eax
push ecx
call fcn.0050fe4a
add esp, 8
test eax, eax
sete bl
jmp 0x42a4ac
call fcn.0044d811
call fcn.005099a6