Function at 0x426cc9
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 [0x5df440]
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.0051ef91
add esp, 4
mov esi, eax
cmp eax, 7
jbe 0x426d33
cmp esi, 0x7fffffff
jae 0x42727e
mov eax, esi
or eax, 7
cmp eax, 0x7ffffffe
jbe 0x426d57
mov ebx, 0x7ffffffe
mov eax, 0xfffffffe
jmp 0x426d70
lea eax, [ebp - 0x250]
mov dword [eax + 0x10], esi
mov ecx, esi
add ecx, esi
push ecx
push edi
push eax
call fcn.00516970
add esp, 0xc
mov word [ebp + esi*2 - 0x250], 0
jmp 0x426daf
cmp eax, 0xb
mov ebx, 0xa
cmovae ebx, eax
lea eax, [ebx + ebx]
add eax, 2
cmp ebx, 0x7ff
jb 0x426d78
push eax
call fcn.00447c52
jmp 0x426d7e
push eax
call fcn.00513938
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.00516970
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.004260a0
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x14]
cmp eax, 8
jb 0x426e00
mov ecx, dword [ebp - 0x250]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x426df6
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x427283
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.00513968
add esp, 8
test bl, bl
mov bl, 1
jne 0x427232
mov eax, dword [ebp + 8]
movaps xmm0, xmmword [0x5874e0]
lea ecx, [ebp - 0x28]
movups xmmword [ecx], xmm0
movsd xmm0, qword [0x5874f0]
movsd qword [ecx + 0x10], xmm0
mov word [ecx], 0
push ecx
push eax
call fcn.004263a8
add esp, 8
test al, al
je 0x426e8c
movaps xmm0, xmmword [0x5874e0]
movups xmmword [ebp - 0x40], xmm0
movsd xmm0, qword [0x5874f0]
movsd qword [ebp - 0x30], xmm0
mov word [ebp - 0x40], 0
push edi
call fcn.0051ef91
add esp, 4
mov esi, eax
cmp eax, 7
jbe 0x426e93
cmp esi, 0x7fffffff
jae 0x42727e
mov eax, esi
or eax, 7
cmp eax, 0x7ffffffe
jbe 0x426eb5
mov ebx, 0x7ffffffe
mov eax, 0xfffffffe
jmp 0x426ece
xor ebx, ebx
jmp 0x4271f9
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.00516970
add esp, 0xc
mov word [ebp + esi*2 - 0x40], 0
mov edi, dword [edi]
jmp 0x426f01
cmp eax, 0xb
mov ebx, 0xa
cmovae ebx, eax
lea eax, [ebx + ebx]
add eax, 2
cmp ebx, 0x7ff
jb 0x426ed6
push eax
call fcn.00447c52
jmp 0x426edc
push eax
call fcn.00513938
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.00516970
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 0x427042
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 0x426f6c
cmp edi, 0x7fffffff
jae 0x42727e
mov eax, edi
or eax, 7
cmp eax, 0x7ffffffe
jbe 0x426f92
mov ebx, 0x7ffffffe
mov eax, 0xfffffffe
jmp 0x426fab
mov dword [ebp - 0x240], edi
lea eax, [edi + edi]
push eax
push esi
lea eax, [ebp - 0x250]
push eax
call fcn.00516970
add esp, 0xc
mov word [ebp + edi*2 - 0x250], 0
jmp 0x426fe7
cmp eax, 0xb
mov ebx, 0xa
cmovae ebx, eax
lea eax, [ebx + ebx]
add eax, 2
cmp ebx, 0x7ff
jb 0x426fb3
push eax
call fcn.00447c52
jmp 0x426fb9
push eax
call fcn.00513938
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.00516970
add esp, 0xc
mov word [esi + edi*2], 0
mov dword [ebp - 0x250], esi
mov ebx, dword [ebp - 0x2c]
cmp ebx, 8
jb 0x427021
mov eax, dword [ebp - 0x40]
lea edx, [ebx + ebx]
add edx, 2
cmp edx, 0x1000
jb 0x427017
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x427283
add ebx, ebx
add ebx, 0x25
mov edx, ebx
mov eax, ecx
push edx
push eax
call fcn.00513968
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 0x427054
mov eax, dword [ebp - 0x28]
push ecx
push eax
call fcn.005205b7
add esp, 8
test eax, eax
lea edi, [ebp - 0x250]
je 0x4270de
lea esi, [ebp - 0x40]
mov ecx, esi
mov edx, esi
call fcn.004268de
mov ebx, eax
mov ecx, esi
call fcn.00426ab0
test al, al
jne 0x4270e5
test bl, bl
je 0x4270e5
lea edi, [ebp - 0x250]
movaps xmm0, xmmword [0x5874e0]
movups xmmword [edi], xmm0
movsd xmm0, qword [0x5874f0]
movsd qword [edi + 0x10], xmm0
mov word [edi], 0
lea ecx, [ebp - 0x28]
mov edx, edi
call fcn.00426af7
test al, al
je 0x427113
cmp dword [ebp - 0x2c], 8
jb 0x4270be
mov esi, dword [ebp - 0x40]
cmp dword [ebp - 0x23c], 8
jb 0x4270cd
mov edi, dword [ebp - 0x250]
push esi
push edi
call fcn.005205b7
add esp, 8
test eax, eax
sete bl
jmp 0x427115
mov bl, 1
jmp 0x4271bc
xor ebx, ebx
test al, al
je 0x4271bc
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x48], ebx
push 0x208
push 0xff
push edi
call fcn.00516ef0
add esp, 0xc
cmp dword [ebp - 0x2c], 8
jb 0x42715e
mov eax, dword [ebp - 0x40]
jmp 0x427161
xor ebx, ebx
mov eax, dword [ebp - 0x23c]
cmp eax, 8
jb 0x4271bc
mov ecx, dword [ebp - 0x250]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x427152
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x427283
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.00513968
add esp, 8
jmp 0x4271bc
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 0x4271bc
cmp eax, 0x104
je 0x4271bc
push edi
call fcn.0051ef91
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x30]
add eax, esi
add eax, 0xfffffffe
cmp eax, dword [ebp - 0x18]
jne 0x4271ba
cmp dword [ebp - 0x14], 8
jb 0x4271a4
mov eax, dword [ebp - 0x28]
jmp 0x4271a7
lea eax, [ebp - 0x28]
push esi
push edi
push eax
call fcn.0052045b
add esp, 0xc
test eax, eax
je 0x427249
xor ebx, ebx
mov eax, dword [ebp - 0x2c]
cmp eax, 8
jb 0x4271f9
mov ecx, dword [ebp - 0x40]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x4271ef
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x427283
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.00513968
add esp, 8
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x427232
mov ecx, dword [ebp - 0x28]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x427228
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x427283
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.00513968
add esp, 8
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00513cac
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 0x427264
mov ecx, dword [ebp - 0x28]
jmp 0x427267
lea ecx, [ebp - 0x28]
lea ecx, [ecx + esi*2]
push eax
push ecx
call fcn.005205b7
add esp, 8
test eax, eax
sete bl
jmp 0x4271bc
call fcn.004555a7
call fcn.0051a096