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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x268
mov eax, dword [0x17d29168]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 0x240], eax
mov eax, dword [ebp + 0x14]
xor edx, edx
push 8
pop ecx
mov dword [ebp - 0x244], eax
xor eax, eax
mov dword [ebp - 0x268], edx
lea edi, [ebp - 0x264]
push 0x226
rep stosd dword es:[edi], eax
mov word [ebp - 0x22c], ax
push edx
lea eax, [ebp - 0x22a]
push eax
mov dword [ebp - 0x234], edx
mov dword [ebp - 0x230], edx
mov dword [ebp - 0x23c], edx
mov dword [ebp - 0x238], edx
call sub.msvcrt.dll_memset
xor eax, eax
add esp, 0xc
cmp ebx, eax
je 0x17d08e32
cmp word [ebx], ax
je 0x17d08e32
cmp esi, eax
je 0x17d08e32
mov edi, dword [sym.imp.msvcrt.dll__wcsnicmp]
push 2
push 0x17c97cc4
push ebx
mov dword [esi], eax
mov dword [esi + 4], eax
call edi
add esp, 0xc
test eax, eax
je 0x17d08cda
push 4
push 0x17c91fc8
push ebx
call edi
add esp, 0xc
test eax, eax
je 0x17d08cda
push 0x17c91fc8
lea eax, [ebp - 0x22c]
push eax
call fcn.17d08339
mov edi, eax
test edi, edi
jl 0x17d08e22
push ebx
lea eax, [ebp - 0x22c]
push eax
call fcn.17d083d6
mov edi, eax
test edi, edi
jl 0x17d08e22
mov ax, word [ebp - 0x22c]
shr ax, 1
cmp ax, 6
jb 0x17d08d2f
cmp ax, 7
ja 0x17d08d2f
cmp word [ebx + 2], 0x3a
jne 0x17d08d2f
push 0
lea eax, [ebp - 0x22c]
push eax
call fcn.17d083d6
mov edi, eax
test edi, edi
jl 0x17d08e22
push dword [ebp - 0x228]
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
sub eax, 0
je 0x17d08d2f
dec eax
je 0x17d08d2f
dec eax
je 0x17d08c98
dec eax
je 0x17d08c98
dec eax
je 0x17d08d2f
dec eax
je 0x17d08c98
dec eax
jne 0x17d08d2f
lea eax, [ebp - 0x23c]
push eax
lea eax, [ebp - 0x234]
push eax
push 0
push dword [ebp - 0x228]
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x17d08cec
mov eax, dword [ebp - 0x234]
sub eax, dword [ebp - 0x23c]
mov ecx, dword [ebp - 0x230]
sbb ecx, dword [ebp - 0x238]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x17d08e22
push ebx
lea eax, [ebp - 0x22c]
push eax
call fcn.17d08339
jmp 0x17d08c1a
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x17d08d00
and eax, 0xffff
or eax, 0x80070000
mov edi, eax
mov eax, dword [0x17d26008]
cmp eax, 0x17d26008
je 0x17d08e22
test byte [eax + 0x1c], 1
je 0x17d08e22
push edi
push dword [ebp - 0x228]
push 0x17c98bc4
push 0x10
jmp 0x17d08e17
lea eax, [ebp - 0x268]
push eax
push 0
push dword [ebp - 0x228]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
jne 0x17d08dac
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x17d08d5c
and eax, 0xffff
or eax, 0x80070000
mov edi, eax
cmp edi, 0x80070002
je 0x17d08da8
cmp edi, 0x80070003
je 0x17d08da8
cmp edi, 0x80070035
je 0x17d08da8
cmp edi, 0x80070043
je 0x17d08da8
mov eax, dword [0x17d26008]
cmp eax, 0x17d26008
je 0x17d08e22
test byte [eax + 0x1c], 1
je 0x17d08e22
push edi
push dword [ebp - 0x228]
push 0x17c98bc4
push 0x11
jmp 0x17d08e17
xor edi, edi
jmp 0x17d08e22
test byte [ebp - 0x268], 0x10
jne 0x17d08dd9
push 1
push 0
push 0
push dword [ebp - 0x24c]
call fcn.17ce49d0
mov ecx, dword [ebp - 0x248]
xor ebx, ebx
add eax, ecx
adc edx, ebx
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x17d08e22
push dword [ebp - 0x244]
push dword [ebp - 0x240]
push dword [ebp - 0x228]
push esi
call fcn.17d09eba
mov edi, eax
test edi, edi
jge 0x17d08e22
mov eax, dword [0x17d26008]
cmp eax, 0x17d26008
je 0x17d08e22
test byte [eax + 0x1c], 1
je 0x17d08e22
push edi
push dword [ebp - 0x228]
push 0x17c98bc4
push 0x12
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.17ca2bb0
lea eax, [ebp - 0x22c]
push eax
call fcn.17d08313
mov eax, edi
jmp 0x17d08e37
mov eax, 0x80070057
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.17ce4923
leave
ret 0x10