Function at 0x429a59
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 [0x5ce440]
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.005102e1
add esp, 4
mov esi, eax
cmp eax, 7
jbe 0x429ac3
cmp esi, 0x7fffffff
jae 0x42a00e
mov eax, esi
or eax, 7
cmp eax, 0x7ffffffe
jbe 0x429ae7
mov ebx, 0x7ffffffe
mov eax, 0xfffffffe
jmp 0x429b00
lea eax, [ebp - 0x250]
mov dword [eax + 0x10], esi
mov ecx, esi
add ecx, esi
push ecx
push edi
push eax
call fcn.00507e70
add esp, 0xc
mov word [ebp + esi*2 - 0x250], 0
jmp 0x429b3f
cmp eax, 0xb
mov ebx, 0xa
cmovae ebx, eax
lea eax, [ebx + ebx]
add eax, 2
cmp ebx, 0x7ff
jb 0x429b08
push eax
call fcn.0044aa0c
jmp 0x429b0e
push eax
call fcn.00504e46
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.00507e70
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.00428e30
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x14]
cmp eax, 8
jb 0x429b90
mov ecx, dword [ebp - 0x250]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x429b86
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x42a013
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.00504e76
add esp, 8
test bl, bl
mov bl, 1
jne 0x429fc2
mov eax, dword [ebp + 8]
movaps xmm0, xmmword [0x578470]
lea ecx, [ebp - 0x28]
movups xmmword [ecx], xmm0
movsd xmm0, qword [0x578480]
movsd qword [ecx + 0x10], xmm0
mov word [ecx], 0
push ecx
push eax
call fcn.00429138
add esp, 8
test al, al
je 0x429c1c
movaps xmm0, xmmword [0x578470]
movups xmmword [ebp - 0x40], xmm0
movsd xmm0, qword [0x578480]
movsd qword [ebp - 0x30], xmm0
mov word [ebp - 0x40], 0
push edi
call fcn.005102e1
add esp, 4
mov esi, eax
cmp eax, 7
jbe 0x429c23
cmp esi, 0x7fffffff
jae 0x42a00e
mov eax, esi
or eax, 7
cmp eax, 0x7ffffffe
jbe 0x429c45
mov ebx, 0x7ffffffe
mov eax, 0xfffffffe
jmp 0x429c5e
xor ebx, ebx
jmp 0x429f89
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.00507e70
add esp, 0xc
mov word [ebp + esi*2 - 0x40], 0
mov edi, dword [edi]
jmp 0x429c91
cmp eax, 0xb
mov ebx, 0xa
cmovae ebx, eax
lea eax, [ebx + ebx]
add eax, 2
cmp ebx, 0x7ff
jb 0x429c66
push eax
call fcn.0044aa0c
jmp 0x429c6c
push eax
call fcn.00504e46
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.00507e70
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 0x429dd2
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 0x429cfc
cmp edi, 0x7fffffff
jae 0x42a00e
mov eax, edi
or eax, 7
cmp eax, 0x7ffffffe
jbe 0x429d22
mov ebx, 0x7ffffffe
mov eax, 0xfffffffe
jmp 0x429d3b
mov dword [ebp - 0x240], edi
lea eax, [edi + edi]
push eax
push esi
lea eax, [ebp - 0x250]
push eax
call fcn.00507e70
add esp, 0xc
mov word [ebp + edi*2 - 0x250], 0
jmp 0x429d77
cmp eax, 0xb
mov ebx, 0xa
cmovae ebx, eax
lea eax, [ebx + ebx]
add eax, 2
cmp ebx, 0x7ff
jb 0x429d43
push eax
call fcn.0044aa0c
jmp 0x429d49
push eax
call fcn.00504e46
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.00507e70
add esp, 0xc
mov word [esi + edi*2], 0
mov dword [ebp - 0x250], esi
mov ebx, dword [ebp - 0x2c]
cmp ebx, 8
jb 0x429db1
mov eax, dword [ebp - 0x40]
lea edx, [ebx + ebx]
add edx, 2
cmp edx, 0x1000
jb 0x429da7
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x42a013
add ebx, ebx
add ebx, 0x25
mov edx, ebx
mov eax, ecx
push edx
push eax
call fcn.00504e76
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 0x429de4
mov eax, dword [ebp - 0x28]
push ecx
push eax
call fcn.00511a57
add esp, 8
test eax, eax
lea edi, [ebp - 0x250]
je 0x429e6e
lea esi, [ebp - 0x40]
mov ecx, esi
mov edx, esi
call fcn.0042966e
mov ebx, eax
mov ecx, esi
call fcn.00429840
test al, al
jne 0x429e75
test bl, bl
je 0x429e75
lea edi, [ebp - 0x250]
movaps xmm0, xmmword [0x578470]
movups xmmword [edi], xmm0
movsd xmm0, qword [0x578480]
movsd qword [edi + 0x10], xmm0
mov word [edi], 0
lea ecx, [ebp - 0x28]
mov edx, edi
call fcn.00429887
test al, al
je 0x429ea3
cmp dword [ebp - 0x2c], 8
jb 0x429e4e
mov esi, dword [ebp - 0x40]
cmp dword [ebp - 0x23c], 8
jb 0x429e5d
mov edi, dword [ebp - 0x250]
push esi
push edi
call fcn.00511a57
add esp, 8
test eax, eax
sete bl
jmp 0x429ea5
mov bl, 1
jmp 0x429f4c
xor ebx, ebx
test al, al
je 0x429f4c
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x48], ebx
push 0x208
push 0xff
push edi
call fcn.005083f0
add esp, 0xc
cmp dword [ebp - 0x2c], 8
jb 0x429eee
mov eax, dword [ebp - 0x40]
jmp 0x429ef1
xor ebx, ebx
mov eax, dword [ebp - 0x23c]
cmp eax, 8
jb 0x429f4c
mov ecx, dword [ebp - 0x250]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x429ee2
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x42a013
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.00504e76
add esp, 8
jmp 0x429f4c
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 0x429f4c
cmp eax, 0x104
je 0x429f4c
push edi
call fcn.005102e1
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x30]
add eax, esi
add eax, 0xfffffffe
cmp eax, dword [ebp - 0x18]
jne 0x429f4a
cmp dword [ebp - 0x14], 8
jb 0x429f34
mov eax, dword [ebp - 0x28]
jmp 0x429f37
lea eax, [ebp - 0x28]
push esi
push edi
push eax
call fcn.005118fb
add esp, 0xc
test eax, eax
je 0x429fd9
xor ebx, ebx
mov eax, dword [ebp - 0x2c]
cmp eax, 8
jb 0x429f89
mov ecx, dword [ebp - 0x40]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x429f7f
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x42a013
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.00504e76
add esp, 8
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x429fc2
mov ecx, dword [ebp - 0x28]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x429fb8
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x42a013
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.00504e76
add esp, 8
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005051b5
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 0x429ff4
mov ecx, dword [ebp - 0x28]
jmp 0x429ff7
lea ecx, [ebp - 0x28]
lea ecx, [ecx + esi*2]
push eax
push ecx
call fcn.00511a57
add esp, 8
test eax, eax
sete bl
jmp 0x429f4c
call fcn.004568b4
call fcn.0050b58a