Function at 0x5baf2380
Capabilities:
Get disk information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x64c
mov eax, dword [0x5bb70c3c]
push esi
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x620], eax
mov esi, 0x30c
push esi
lea eax, [ebp - 0x518]
push eax
mov dword [ebp - 0x624], edi
mov dword [ebp - 0x628], 0x5c3a78
call fcn.5ba6aead
test eax, eax
mov dword [ebp - 0x61c], eax
jl 0x5baf2665
push edi
lea eax, [ebp - 0x108]
push eax
call sub.SHLWAPI.dll_PathCanonicalizeA
lea eax, [ebp - 0x108]
push eax
call fcn.5ba819ed
test eax, eax
mov dword [ebp - 0x61c], eax
jl 0x5baf2665
push ebx
lea eax, [ebp - 0x518]
push eax
lea eax, [ebp - 0x20c]
push eax
call sub.SHLWAPI.dll_PathCanonicalizeA
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp - 0x108]
push eax
call edi
mov ebx, eax
lea eax, [ebp + ebx - 0x108]
push eax
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.USER32.dll_CharPrevA]
cmp byte [eax], 0x5c
jne 0x5baf2440
dec ebx
mov byte [ebp + ebx - 0x108], 0
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x5baf2467
mov dword [ebp - 0x61c], 1
jmp 0x5baf2664
lea eax, [ebp - 0x20c]
push eax
call edi
mov edi, eax
mov al, byte [ebp - 0x108]
mov byte [ebp - 0x628], al
lea eax, [ebp - 0x628]
push eax
mov dword [ebp - 0x64c], edi
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 3
jne 0x5baf2458
cmp dword [ebp + 0x10], 0
je 0x5baf2659
lea ecx, [edi + 2]
mov eax, 0x104
cmp ecx, eax
jae 0x5baf2458
lea ecx, [ebx + 1]
cmp ecx, eax
mov byte [ebp + edi - 0x20b], 0
jae 0x5baf2458
push ebx
lea eax, [ebp - 0x108]
push eax
push esi
lea eax, [ebp - 0x518]
push eax
mov byte [ebp + ebx - 0x107], 0
call fcn.5baf21da
test eax, eax
jl 0x5baf2458
jne 0x5baf2549
push 7
xor eax, eax
pop ecx
lea edi, [ebp - 0x648]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [ebp - 0x620]
and dword [ebp - 0x636], 0
mov dword [ebp - 0x648], eax
lea eax, [ebp - 0x518]
mov dword [ebp - 0x640], eax
lea eax, [ebp - 0x648]
push eax
mov dword [ebp - 0x644], 3
mov word [ebp - 0x638], 0x1094
call dword [0x5bb70b54]
test eax, eax
je 0x5baf2543
mov dword [ebp - 0x61c], 0x80004005
jmp 0x5baf2664
mov edi, dword [ebp - 0x64c]
push edi
lea eax, [ebp - 0x20c]
push eax
push esi
lea eax, [ebp - 0x518]
push eax
call fcn.5baf21da
test eax, eax
jl 0x5baf2458
jne 0x5baf2664
push 0xff
lea eax, [ebp - 0x618]
push eax
push 0x1763
push dword [0x5bb73708]
call dword [sym.imp.USER32.dll_LoadStringA]
xor eax, eax
push 7
pop ecx
lea edi, [ebp - 0x648]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [ebp - 0x620]
and dword [ebp - 0x636], 0
mov dword [ebp - 0x648], eax
lea eax, [ebp - 0x618]
mov dword [ebp - 0x62e], eax
lea eax, [ebp - 0x518]
mov dword [ebp - 0x640], eax
lea eax, [ebp - 0x108]
mov dword [ebp - 0x63c], eax
lea eax, [ebp - 0x648]
push eax
mov dword [ebp - 0x644], 2
mov word [ebp - 0x638], 0x1380
call dword [0x5bb70b54]
test eax, eax
mov eax, dword [ebp - 0x636]
jne 0x5baf260a
test eax, eax
jne 0x5baf260a
push dword [ebp - 0x624]
call fcn.5ba81a93
jmp 0x5baf2637
neg eax
sbb eax, eax
and eax, 0x7fffbffc
add eax, 0x80004005
mov dword [ebp - 0x61c], eax
push ebx
lea eax, [ebp - 0x108]
push eax
push esi
lea eax, [ebp - 0x518]
push eax
call fcn.5baf21da
test eax, eax
jne 0x5baf2664
lea eax, [ebp - 0x648]
push eax
mov dword [ebp - 0x644], 3
mov word [ebp - 0x638], 0x1094
call dword [0x5bb70b54]
jmp 0x5baf2664
push dword [ebp - 0x624]
call fcn.5ba81a93
pop ebx
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x61c]
pop edi
pop esi
call fcn.5bb3f314
leave
ret 0xc