Function at 0x10cf553
Capabilities:
Get disk information
Get disk size

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x468
mov eax, dword [0x11d05b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, 0x104
push esi
lea ecx, [ebp - 0x414]
push ecx
push eax
mov dword [ebp - 0x418], eax
call dword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
test eax, eax
jne 0x10cf598
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x10cf683
push esi
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
test eax, eax
je 0x10cf58b
lea eax, [ebp - 0x20c]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x10cf5ba
sub eax, edx
sar eax, 1
je 0x10cf5d4
xor ecx, ecx
mov word [ebp + eax*2 - 0x20e], cx
push edi
xor edi, edi
push edi
push edi
lea eax, [ebp - 0x42c]
push eax
lea eax, [ebp - 0x430]
push eax
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
test eax, eax
je 0x10cf630
mov esi, dword [ebp - 0x430]
imul esi, dword [ebp - 0x42c]
push edi
push 0x80
push 3
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileW]
push 3
mov ebx, 0xc0000000
push ebx
lea eax, [ebp - 0x20c]
push eax
call edi
mov dword [ebp - 0x424], eax
cmp eax, 0xffffffff
jne 0x10cf63a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x10cf682
push 0
push 0x80
push 3
push 0
push 7
push ebx
push dword [ebp - 0x418]
call edi
mov dword [ebp - 0x418], eax
cmp eax, 0xffffffff
jne 0x10cf695
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
push dword [ebp - 0x424]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
cmp dword [ebp - 0x418], 0xffffffff
je 0x10cf682
push dword [ebp - 0x418]
call esi
pop edi
mov ecx, dword [ebp - 4]
pop esi
mov eax, ebx
xor ecx, ebp
pop ebx
call fcn.010aa5e1
leave
ret 4
mov edi, dword [sym.imp.KERNEL32.dll_DeviceIoControl]
xor ebx, ebx
mov dword [ebp - 0x420], ebx
mov dword [ebp - 0x41c], ebx
push ebx
lea eax, [ebp - 0x428]
push eax
push 0x20
lea eax, [ebp - 0x450]
push eax
push 8
lea eax, [ebp - 0x420]
push eax
push 0x90073
push dword [ebp - 0x418]
call edi
test eax, eax
jne 0x10cf6e1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
jne 0x10cf663
cmp dword [ebp - 0x450], ebx
je 0x10cf663
mov eax, dword [ebp - 0x438]
mov ecx, dword [ebp - 0x434]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x10cf71c
mov eax, dword [ebp - 0x440]
mov dword [ebp - 0x420], eax
mov eax, dword [ebp - 0x43c]
mov dword [ebp - 0x41c], eax
jmp 0x10cf6a9
sub eax, dword [ebp - 0x448]
push ebx
sbb ecx, dword [ebp - 0x444]
add eax, dword [ebp - 0x420]
push esi
adc ecx, dword [ebp - 0x41c]
mov dword [ebp - 0x468], 2
push ecx
push eax
mov dword [ebp - 0x464], 1
call fcn.011ab190
mov ecx, dword [ebp - 0x43c]
mov dword [ebp - 0x460], eax
mov eax, dword [ebp - 0x440]
sub eax, dword [ebp - 0x420]
push ebx
sbb ecx, dword [ebp - 0x41c]
push esi
push ecx
push eax
mov dword [ebp - 0x45c], edx
call fcn.011ab190
xor ebx, ebx
push ebx
mov dword [ebp - 0x458], eax
lea eax, [ebp - 0x428]
push eax
push ebx
push ebx
push 0x18
lea eax, [ebp - 0x468]
push eax
push 0x56c04c
push dword [ebp - 0x424]
mov dword [ebp - 0x454], edx
call edi
jmp 0x10cf702