Function at 0x1001a525
Capabilities:
Get common file path
Get disk information
Get disk size

Disassembly:
push 0x4f8
mov eax, 0x1005d5b5
call fcn.1004262a
mov eax, dword [ebp + 8]
and dword [ebp - 0x454], 0
push 6
pop edx
lea ebx, [ebp - 0x4e8]
mov dword [ebp - 0x474], eax
call fcn.10030df6
mov dword [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [ebp - 0x494], eax
xor eax, eax
push 0x206
mov word [ebp - 0x418], ax
xor ebx, ebx
lea eax, [ebp - 0x416]
push ebx
push eax
call fcn.10046720
add esp, 0xc
push 0x104
lea eax, [ebp - 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov dword [ebp - 0x460], ebx
mov ecx, dword [ebp - 0x460]
xor eax, eax
inc eax
shl eax, cl
mov ecx, dword [ebp - 0x494]
test ecx, eax
je 0x1001ac6f
movzx eax, word [ebp - 0x460]
add eax, 0x41
push eax
push str._c:_
lea ecx, [ebp - 0x434]
call fcn.10028d88
pop ecx
pop ecx
push ebx
push ebx
lea eax, [ebp - 0x490]
call fcn.10031e83
mov byte [ebp - 4], 5
cmp dword [ebp - 0x41c], 8
mov eax, dword [ebp - 0x430]
jae 0x1001a5f9
lea eax, [ebp - 0x430]
mov ax, word [eax]
mov ecx, dword [ebp - 0x418]
or ax, 0x20
or ecx, 0x20
cmp ax, cx
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x4cc]
push eax
sete byte [ebp - 0x45a]
call fcn.10001246
sub esp, 0x10
mov byte [ebp - 4], 6
mov edx, eax
mov esi, esp
mov dword [ebp - 0x458], esp
call fcn.10030f74
lea eax, [ebp - 0x490]
push eax
mov edx, str.drive
mov byte [ebp - 4], 7
call fcn.100321b8
mov edi, eax
mov byte [ebp - 4], 6
call fcn.100311c7
push ebx
push 1
lea ecx, [ebp - 0x4cc]
mov byte [ebp - 4], 5
call fcn.10004d1a
xor eax, eax
mov esi, 0xfe
push esi
mov word [ebp - 0x210], ax
lea eax, [ebp - 0x20e]
push ebx
push eax
call fcn.10046720
add esp, 0xc
xor eax, eax
push esi
mov word [ebp - 0x110], ax
lea eax, [ebp - 0x10e]
push ebx
push eax
call fcn.10046720
mov ecx, dword [ebp - 0x430]
add esp, 0xc
cmp dword [ebp - 0x41c], 8
jae 0x1001a6bc
lea ecx, [ebp - 0x430]
mov eax, 0x80
push eax
lea edx, [ebp - 0x110]
push edx
push ebx
push ebx
push ebx
push eax
lea eax, [ebp - 0x210]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
je 0x1001a862
cmp word [ebp - 0x210], bx
je 0x1001a767
lea eax, [ebp - 0x210]
push eax
lea esi, [ebp - 0x4cc]
call fcn.100048dd
mov eax, esi
push eax
lea eax, [ebp - 0x504]
push eax
mov byte [ebp - 4], 8
call fcn.10001246
sub esp, 0x10
mov byte [ebp - 4], 9
mov edx, eax
mov esi, esp
mov dword [ebp - 0x458], esp
call fcn.10030f74
lea eax, [ebp - 0x490]
push eax
mov edx, str.driveName
mov byte [ebp - 4], 0xa
call fcn.100321b8
mov edi, eax
mov byte [ebp - 4], 9
call fcn.100311c7
push ebx
push 1
lea ecx, [ebp - 0x504]
call fcn.10004d1a
push ebx
push 1
lea esi, [ebp - 0x4cc]
mov byte [ebp - 4], 5
call fcn.10004e12
cmp word [ebp - 0x110], bx
je 0x1001a7ae
lea eax, [ebp - 0x110]
push eax
lea esi, [ebp - 0x4cc]
call fcn.100048dd
mov eax, esi
push eax
lea eax, [ebp - 0x4b0]
mov byte [ebp - 4], 0xb
or dword [ebp - 0x454], 1
push eax
call fcn.10001246
pop ecx
pop ecx
mov dword [ebp - 4], 0xc
or dword [ebp - 0x454], 2
jmp 0x1001a7cc
push str.unknown
lea ecx, [ebp - 0x504]
call fcn.1000485d
mov dword [ebp - 4], 0xd
or dword [ebp - 0x454], 4
sub esp, 0x18
mov edx, eax
mov esi, esp
mov dword [ebp - 0x458], esp
call fcn.10030f74
lea eax, [ebp - 0x490]
push eax
mov edx, 0x10065044
mov dword [ebp - 4], 0xe
call fcn.100321b8
mov edi, eax
mov byte [ebp - 4], 0xd
call fcn.100311c7
test byte [ebp - 0x454], 4
je 0x1001a81f
and dword [ebp - 0x454], 0xfffffffb
push ebx
push 1
lea ecx, [ebp - 0x504]
call fcn.10004d1a
test byte [ebp - 0x454], 2
je 0x1001a83d
and dword [ebp - 0x454], 0xfffffffd
push ebx
push 1
lea ecx, [ebp - 0x4b0]
call fcn.10004d1a
mov dword [ebp - 4], 5
test byte [ebp - 0x454], 1
je 0x1001a862
and dword [ebp - 0x454], 0xfffffffe
push ebx
push 1
lea esi, [ebp - 0x4cc]
call fcn.10004e12
xor eax, eax
cmp dword [ebp - 0x41c], 8
lea edi, [ebp - 0x46c]
mov dword [ebp - 0x470], ebx
stosd dword es:[edi], eax
lea edi, [ebp - 0x464]
mov dword [ebp - 0x468], ebx
stosd dword es:[edi], eax
mov eax, dword [ebp - 0x430]
jae 0x1001a893
lea eax, [ebp - 0x430]
lea ecx, [ebp - 0x468]
push ecx
lea ecx, [ebp - 0x470]
push ecx
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x1001a9e3
mov eax, dword [ebp - 0x470]
mov ecx, dword [ebp - 0x46c]
shrd eax, ecx, 0x1e
shr ecx, 0x1e
push ecx
push eax
push str._d_GB
lea esi, [ebp - 0x4b0]
call fcn.10028de6
sub esp, 0xc
mov byte [ebp - 4], 0xf
mov edx, eax
mov esi, esp
mov dword [ebp - 0x458], esp
call fcn.10030f74
lea eax, [ebp - 0x490]
push eax
mov edx, str.totalSpace
mov byte [ebp - 4], 0x10
call fcn.100321b8
mov edi, eax
mov byte [ebp - 4], 0xf
call fcn.100311c7
push ebx
push 1
lea ecx, [ebp - 0x4b0]
mov byte [ebp - 4], 5
call fcn.10004d1a
push dword [ebp - 0x464]
lea ebx, [ebp - 0x4b0]
push dword [ebp - 0x468]
call fcn.10027974
sub esp, 0x10
mov byte [ebp - 4], 0x11
mov edx, eax
mov esi, esp
mov dword [ebp - 0x458], esp
call fcn.10030f74
lea eax, [ebp - 0x490]
push eax
mov edx, str.freeSpace
mov byte [ebp - 4], 0x12
call fcn.100321b8
mov edi, eax
mov byte [ebp - 4], 0x11
call fcn.100311c7
push 0
push 1
mov ecx, ebx
call fcn.10004d1a
push 0
push 0x64
pop esi
push esi
push dword [ebp - 0x464]
push dword [ebp - 0x468]
call fcn.10050fa0
push dword [ebp - 0x46c]
push dword [ebp - 0x470]
push edx
push eax
call fcn.10050f30
mov ecx, esi
sub ecx, eax
jns 0x1001a9aa
xor ecx, ecx
jmp 0x1001a9b0
cmp ecx, esi
jle 0x1001a9b0
mov ecx, esi
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x458], esp
push ecx
call fcn.10030e63
lea eax, [ebp - 0x490]
push eax
mov edx, str.usedSpacePercent
mov byte [ebp - 4], 0x13
call fcn.100321b8
mov edi, eax
mov byte [ebp - 4], 5
call fcn.100311c7
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x438], 7
mov dword [ebp - 0x43c], ebx
mov word [ebp - 0x44c], ax
mov byte [ebp - 4], 0x14
cmp dword [ebp - 0x41c], 8
mov eax, dword [ebp - 0x430]
jae 0x1001aa15
lea eax, [ebp - 0x430]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
push 3
mov esi, eax
pop edi
mov dword [ebp - 0x458], esi
cmp esi, edi
je 0x1001aac0
cmp esi, 2
je 0x1001aac0
cmp esi, 4
jne 0x1001aa44
mov eax, 0x100650a8
jmp 0x1001aa5f
cmp esi, 5
jne 0x1001aa50
mov eax, 0x100650b8
jmp 0x1001aa5f
mov eax, 0x100650c4
cmp esi, 6
je 0x1001aa5f
mov eax, 0x100650cc
push eax
lea eax, [ebp - 0x450]
push eax
call fcn.10004deb
cmp esi, 4
jne 0x1001aa75
push 6
jmp 0x1001aa85
cmp esi, 5
jne 0x1001aa7e
push 7
jmp 0x1001aa85
cmp esi, 6
jne 0x1001aa88
push 8
pop eax
jmp 0x1001aa8a
xor eax, eax
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x458], esp
push eax
call fcn.10030e63
lea eax, [ebp - 0x490]
push eax
mov edx, str.type
mov byte [ebp - 4], 0x17
call fcn.100321b8
mov edi, eax
mov byte [ebp - 4], 0x14
call fcn.100311c7
jmp 0x1001ab82
mov byte [ebp - 0x459], bl
mov bl, byte [ebp - 0x460]
add bl, 0x41
lea esi, [ebp - 0x459]
call fcn.1003e38d
test al, al
je 0x1001ab1e
cmp byte [ebp - 0x459], 0
je 0x1001ab1e
push 5
pop eax
mov ecx, 0x10065084
lea esi, [ebp - 0x450]
call fcn.100053f4
xor eax, eax
cmp dword [ebp - 0x458], edi
sete al
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x458], esp
add eax, edi
push eax
call fcn.10030e63
mov byte [ebp - 4], 0x15
jmp 0x1001ab64
mov eax, str._g0W
cmp dword [ebp - 0x458], edi
je 0x1001ab30
mov eax, 0x1006509c
push eax
lea eax, [ebp - 0x450]
push eax
call fcn.10004deb
xor eax, eax
cmp dword [ebp - 0x458], edi
setne al
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x458], esp
dec eax
and eax, 0xfffffffd
add eax, 5
push eax
call fcn.10030e63
mov byte [ebp - 4], 0x16
lea eax, [ebp - 0x490]
push eax
mov edx, str.type
call fcn.100321b8
mov edi, eax
mov byte [ebp - 4], 0x14
call fcn.100311c7
xor ebx, ebx
lea eax, [ebp - 0x490]
mov edi, str.driveName
push eax
mov edx, edi
call fcn.100321b8
cmp byte [eax + 8], 4
je 0x1001abf3
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x4b0]
push eax
call fcn.10001246
sub esp, 0x10
mov byte [ebp - 4], 0x18
mov edx, eax
mov esi, esp
mov dword [ebp - 0x458], esp
call fcn.10030f74
lea eax, [ebp - 0x490]
push eax
mov edx, edi
mov byte [ebp - 4], 0x19
call fcn.100321b8
mov edi, eax
mov byte [ebp - 4], 0x18
call fcn.100311c7
push ebx
push 1
lea ecx, [ebp - 0x4b0]
mov byte [ebp - 4], 0x14
call fcn.10004d1a
cmp byte [ebp - 0x45a], bl
je 0x1001ac2d
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x458], esp
push 1
call fcn.10030e63
lea eax, [ebp - 0x490]
push eax
mov edx, str.type
mov byte [ebp - 4], 0x1a
call fcn.100321b8
mov edi, eax
mov byte [ebp - 4], 0x14
call fcn.100311c7
lea eax, [ebp - 0x490]
push eax
lea eax, [ebp - 0x4e8]
push eax
call fcn.10032209
push ebx
push 1
lea esi, [ebp - 0x450]
call fcn.10004e12
lea esi, [ebp - 0x490]
mov byte [ebp - 4], 2
call fcn.10031144
push ebx
push 1
lea esi, [ebp - 0x434]
mov byte [ebp - 4], 1
call fcn.10004e12
inc dword [ebp - 0x460]
cmp dword [ebp - 0x460], 0x1a
jl 0x1001a59d
mov ecx, dword [ebp - 0x474]
lea eax, [ebp - 0x4e8]
push eax
call fcn.1003264a
or dword [ebp - 0x454], 8
lea esi, [ebp - 0x4e8]
mov byte [ebp - 4], bl
call fcn.10031144
mov eax, dword [ebp - 0x474]
call fcn.100426ad
ret