Function at 0x76b28750
Capabilities:
Get disk information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x484
mov eax, dword [0x76baa330]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x47c], ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
test ebx, ebx
jne 0x76b2879e
call sym.msvcrt.dll___doserrno
xor esi, esi
mov dword [eax], esi
call sym.msvcrt.dll__errno
push esi
push esi
push esi
push esi
push esi
mov dword [eax], 0x16
call sym.msvcrt.dll__invalid_parameter
add esp, 0x14
jmp 0x76b28b3f
test edi, edi
je 0x76b28778
push 0x76af3e60
push ebx
call sym.msvcrt.dll_wcspbrk
pop ecx
pop ecx
test eax, eax
je 0x76b287c9
call sym.msvcrt.dll__errno
push 2
pop ebx
mov dword [eax], ebx
call sym.msvcrt.dll___doserrno
mov dword [eax], ebx
jmp 0x76b28b3f
xor esi, esi
cmp word [ebx + 2], 0x3a
jne 0x76b287ef
movzx eax, word [ebx]
test ax, ax
je 0x76b287e0
cmp word [ebx + 4], si
je 0x76b287b3
push eax
call sym.msvcrt.dll_towlower
movzx eax, ax
pop ecx
sub eax, 0x60
jmp 0x76b287f4
call sym.msvcrt.dll__getdrive
mov dword [ebp - 0x480], eax
lea eax, [ebp - 0x46c]
push eax
push ebx
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FindFirstFileW]
mov dword [ebp - 0x470], eax
cmp eax, 0xffffffff
jne 0x76b2892c
push 0x76af3e68
push ebx
mov dword [ebp - 0x470], esi
call sym.msvcrt.dll_wcspbrk
pop ecx
pop ecx
push 2
pop ebx
test eax, eax
je 0x76b28922
lea eax, [ebp - 0x470]
push eax
push 0x104
push dword [ebp - 0x47c]
lea eax, [ebp - 0x20c]
push eax
call fcn.76b282e0
mov edx, eax
add esp, 0x10
mov dword [ebp - 0x474], edx
test edx, edx
je 0x76b2890e
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x484], eax
mov ax, word [ecx]
add ecx, ebx
cmp ax, si
jne 0x76b28871
sub ecx, dword [ebp - 0x484]
sar ecx, 1
cmp ecx, 3
je 0x76b28899
push edx
call fcn.76b28142
pop ecx
test eax, eax
je 0x76b2890e
mov edx, dword [ebp - 0x474]
push edx
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetDriveTypeW]
xor ecx, ecx
inc ecx
cmp eax, ecx
jbe 0x76b2890e
cmp dword [ebp - 0x470], esi
je 0x76b288bb
push dword [ebp - 0x470]
call sym.msvcrt.dll_free
pop ecx
push 0xffffffffffffffff
push esi
xor eax, eax
mov dword [ebp - 0x46c], 0x10
push esi
mov word [ebp - 0x440], ax
inc eax
push esi
push eax
push eax
push 0x7bc
mov dword [ebp - 0x450], esi
mov dword [ebp - 0x44c], esi
call fcn.76b851d8
mov ebx, dword [ebp - 0x47c]
mov ecx, edx
add esp, 0x1c
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], edx
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ecx
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], ecx
jmp 0x76b28ade
cmp dword [ebp - 0x470], esi
je 0x76b28922
push dword [ebp - 0x470]
call sym.msvcrt.dll_free
pop ecx
call sym.msvcrt.dll__errno
jmp 0x76b287bb
cmp dword [ebp - 0x458], esi
jne 0x76b28942
cmp dword [ebp - 0x454], esi
jne 0x76b28942
mov eax, esi
mov edx, esi
jmp 0x76b289b4
lea eax, [ebp - 0x478]
push eax
lea eax, [ebp - 0x458]
push eax
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x76b28b26
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x478]
push eax
call dword [sym.imp.KERNELBASE.dll_FileTimeToSystemTime]
test eax, eax
je 0x76b28b26
movzx eax, word [ebp - 0x210]
push 0xffffffffffffffff
push eax
movzx eax, word [ebp - 0x212]
push eax
movzx eax, word [ebp - 0x214]
push eax
movzx eax, word [ebp - 0x216]
push eax
movzx eax, word [ebp - 0x21a]
push eax
movzx eax, word [ebp - 0x21c]
push eax
call fcn.76b851d8
add esp, 0x1c
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], edx
cmp dword [ebp - 0x460], esi
jne 0x76b289ca
cmp dword [ebp - 0x45c], esi
je 0x76b28a3c
lea eax, [ebp - 0x478]
push eax
lea eax, [ebp - 0x460]
push eax
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x76b28b26
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x478]
push eax
call dword [sym.imp.KERNELBASE.dll_FileTimeToSystemTime]
test eax, eax
je 0x76b28b26
movzx eax, word [ebp - 0x210]
push 0xffffffffffffffff
push eax
movzx eax, word [ebp - 0x212]
push eax
movzx eax, word [ebp - 0x214]
push eax
movzx eax, word [ebp - 0x216]
push eax
movzx eax, word [ebp - 0x21a]
push eax
movzx eax, word [ebp - 0x21c]
push eax
call fcn.76b851d8
add esp, 0x1c
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], edx
cmp dword [ebp - 0x468], esi
jne 0x76b28a5a
cmp dword [ebp - 0x464], esi
jne 0x76b28a5a
mov eax, dword [edi + 0x28]
mov edx, dword [edi + 0x2c]
jmp 0x76b28acc
lea eax, [ebp - 0x478]
push eax
lea eax, [ebp - 0x468]
push eax
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x76b28b26
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x478]
push eax
call dword [sym.imp.KERNELBASE.dll_FileTimeToSystemTime]
test eax, eax
je 0x76b28b26
movzx eax, word [ebp - 0x210]
push 0xffffffffffffffff
push eax
movzx eax, word [ebp - 0x212]
push eax
movzx eax, word [ebp - 0x214]
push eax
movzx eax, word [ebp - 0x216]
push eax
movzx eax, word [ebp - 0x21a]
push eax
movzx eax, word [ebp - 0x21c]
push eax
call fcn.76b851d8
add esp, 0x1c
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], edx
push dword [ebp - 0x470]
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FindClose]
push ebx
push dword [ebp - 0x46c]
call fcn.76b2821c
pop ecx
mov word [edi + 6], ax
xor eax, eax
pop ecx
xor ecx, ecx
inc ecx
add eax, dword [ebp - 0x44c]
mov word [edi + 8], cx
mov ecx, dword [ebp - 0x450]
adc ecx, esi
mov dword [edi + 0x18], eax
xor eax, eax
mov dword [edi + 0x1c], ecx
mov word [edi + 4], ax
mov dword [edi + 0xa], eax
mov eax, dword [ebp - 0x480]
dec eax
mov dword [edi], eax
mov dword [edi + 0x10], eax
xor eax, eax
jmp 0x76b28b42
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
push eax
call fcn.76b262a9
pop ecx
push dword [ebp - 0x470]
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FindClose]
or eax, 0xffffffff
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.76b4dc60
leave
ret