Function at 0x1067384
Capabilities:
Get disk information via ioctl

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x58
mov eax, dword [0x111027c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov esi, dword [0x111024c]
mov ebx, 0x111024c
mov edi, 0x1006370
cmp esi, ebx
je 0x10673cd
test byte [esi + 0x1c], 1
je 0x10673cd
cmp byte [esi + 0x19], 4
jb 0x10673cd
push edi
push 0x66
push dword [esi + 0x14]
push dword [esi + 0x10]
call fcn.0101894a
mov esi, dword [0x111024c]
push 0x3c
lea eax, [ebp - 0x40]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x50], eax
cmp esi, ebx
je 0x106740f
test byte [esi + 0x1c], 1
je 0x106740f
cmp byte [esi + 0x19], 4
jb 0x106740f
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push edi
push 0x67
push dword [esi + 0x14]
push dword [esi + 0x10]
call fcn.010658e0
push dword [ebp + 8]
lea eax, [ebp - 0x40]
push 0x1006640
push 0x1e
push eax
call fcn.01025c20
xor esi, esi
add esp, 0x10
cmp eax, esi
mov dword [ebp - 0x44], eax
jge 0x1067465
mov eax, dword [0x111024c]
cmp eax, ebx
je 0x1067848
test byte [eax + 0x1c], 1
je 0x106782a
cmp byte [eax + 0x19], 2
jb 0x106782a
push dword [ebp - 0x44]
push edi
push 0x68
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019fa8
jmp 0x1067825
push esi
push 0x2000000
push 3
push esi
push 3
push 0xc0000000
lea eax, [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x54], eax
cmp eax, 0xffffffff
jne 0x10674d9
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, esi
jle 0x106749b
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 0x44], eax
mov eax, dword [0x111024c]
cmp eax, ebx
je 0x1067848
test byte [eax + 0x1c], 1
je 0x106782a
cmp byte [eax + 0x19], 2
jb 0x106782a
push dword [ebp - 0x44]
lea ecx, [ebp - 0x40]
push ecx
push edi
push 0x69
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01048c37
jmp 0x1067825
mov dword [ebp - 0x4c], 0x4830
cmp dword [ebp - 0x48], esi
je 0x10674f1
push dword [ebp - 0x48]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov dword [ebp - 0x48], esi
push dword [ebp - 0x4c]
lea eax, [ebp - 0x48]
push 1
push eax
call fcn.0101ae15
cmp eax, esi
mov dword [ebp - 0x44], eax
jl 0x1067544
push esi
lea eax, [ebp - 0x58]
push eax
push dword [ebp - 0x4c]
push dword [ebp - 0x48]
push esi
push esi
push 0x70050
push dword [ebp - 0x54]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x1067570
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x106753b
cmp eax, 0xea
jne 0x10677d1
add dword [ebp - 0x4c], 0x2400
jmp 0x10674e0
mov eax, dword [0x111024c]
cmp eax, ebx
je 0x1067808
test byte [eax + 0x1c], 1
je 0x1067808
cmp byte [eax + 0x19], 2
jb 0x1067808
push dword [ebp - 0x44]
push edi
push 0x6a
jmp 0x10677fd
lea eax, [ebp - 0x50]
push eax
push 0x30
push dword [ebp - 0x4c]
call fcn.01065d0b
cmp eax, esi
mov dword [ebp - 0x44], eax
jge 0x10675bc
mov eax, dword [0x111024c]
cmp eax, ebx
je 0x10675b0
test byte [eax + 0x1c], 1
je 0x10675b0
cmp byte [eax + 0x19], 2
jb 0x10675b0
push dword [ebp - 0x44]
push 0x30
push dword [ebp - 0x4c]
push edi
push 0x6c
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01065870
mov dword [ebp - 0x44], 0x80070216
jmp 0x1067808
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x50]
xor edx, edx
mov esi, 0x90
div esi
cmp ecx, eax
jbe 0x1067601
mov eax, dword [0x111024c]
cmp eax, ebx
je 0x10675f5
test byte [eax + 0x1c], 1
je 0x10675f5
cmp byte [eax + 0x19], 2
jb 0x10675f5
push edi
push 0x6d
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0101894a
mov dword [ebp - 0x44], 0x8000ffff
jmp 0x1067808
and dword [ebp - 0x50], 0
test ecx, ecx
jbe 0x1067779
mov ebx, dword [ebp - 0x48]
add ebx, 0x38
mov eax, dword [ebx - 8]
xor edx, edx
sub eax, edx
mov ecx, 0x111024c
je 0x10676e8
dec eax
je 0x1067641
push 0x1002394
push 0x765
push 0x10063ec
call fcn.0107b644
jmp 0x106775c
mov eax, dword [ebx]
cmp eax, dword [ebp + 0xc]
jne 0x1067691
mov eax, dword [ebx + 4]
cmp eax, dword [ebp + 0x10]
jne 0x1067691
mov byte [ebx + 0x14], 1
mov eax, dword [0x111024c]
cmp eax, ecx
je 0x1067680
test byte [eax + 0x1c], 1
je 0x1067680
cmp byte [eax + 0x19], 4
jb 0x1067680
push edx
push 1
push dword [ebx + 0x10]
push dword [ebp + 8]
push edi
push 0x70
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010658a8
lea edi, [ebx + 0x18]
mov esi, 0x1007144
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x106775c
push 4
pop ecx
mov edi, 0x1007144
lea esi, [ebx + 0x18]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x106775c
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x106775c
test byte [eax + 0x1c], 1
je 0x106775c
cmp byte [eax + 0x19], 4
jb 0x106775c
push 0
push 0
push dword [ebx + 0x10]
push dword [ebp + 8]
push 0x1006370
push 0x71
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010658a8
jmp 0x106775c
mov eax, dword [ebx]
mov byte [ebx + 0x14], 1
cmp eax, dword [ebp + 0xc]
jne 0x106772d
mov eax, dword [ebx + 4]
cmp eax, dword [ebp + 0x10]
jne 0x106772d
mov eax, dword [0x111024c]
cmp eax, ecx
je 0x1067727
test byte [eax + 0x1c], 1
je 0x1067727
cmp byte [eax + 0x19], 4
jb 0x1067727
push edx
push 1
push dword [ebx + 0x10]
push dword [ebp + 8]
push edi
push 0x6e
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010658a8
mov byte [ebx + 0x19], 1
jmp 0x106775c
mov eax, dword [0x111024c]
cmp eax, ecx
je 0x1067758
test byte [eax + 0x1c], 1
je 0x1067758
cmp byte [eax + 0x19], 4
jb 0x1067758
push edx
push edx
push dword [ebx + 0x10]
push dword [ebp + 8]
push edi
push 0x6f
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010658a8
mov byte [ebx + 0x19], 0
inc dword [ebp - 0x50]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x50]
add ebx, 0x90
mov edi, 0x1006370
cmp ecx, dword [eax + 4]
jb 0x1067613
xor esi, esi
push esi
lea eax, [ebp - 0x58]
push eax
push esi
push esi
push dword [ebp - 0x4c]
push dword [ebp - 0x48]
push 0x7c054
push dword [ebp - 0x54]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x1067808
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, esi
jle 0x10677ae
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 0x44], eax
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x1067808
test byte [eax + 0x1c], 1
je 0x1067808
cmp byte [eax + 0x19], 2
jb 0x1067808
push dword [ebp - 0x44]
push edi
push 0x72
jmp 0x10677fd
cmp eax, esi
jle 0x10677df
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 0x44], eax
mov eax, dword [0x111024c]
cmp eax, ebx
je 0x1067808
test byte [eax + 0x1c], 1
je 0x1067808
cmp byte [eax + 0x19], 2
jb 0x1067808
push dword [ebp - 0x44]
push edi
push 0x6b
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019fa8
cmp dword [ebp - 0x48], 0
je 0x1067817
push dword [ebp - 0x48]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
push dword [ebp - 0x54]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, 0x111024c
mov eax, dword [0x111024c]
cmp eax, ebx
je 0x1067848
test byte [eax + 0x1c], 1
je 0x1067848
cmp byte [eax + 0x19], 4
jb 0x1067848
push edi
push 0x73
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0101894a
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x44]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0106f798
leave
ret 0xc