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

Disassembly:
push 0x4f8
mov eax, 0x1005b961
call fcn.10040d9a
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.1002fa07
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.10044e90
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 0x1001a790
movzx eax, word [ebp - 0x460]
add eax, 0x41
push eax
push str._c:_
lea ecx, [ebp - 0x434]
call fcn.10028aa2
pop ecx
pop ecx
push ebx
push ebx
lea eax, [ebp - 0x490]
call fcn.10030a94
mov byte [ebp - 4], 5
cmp dword [ebp - 0x41c], 8
mov eax, dword [ebp - 0x430]
jae 0x1001a11a
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.1002fb85
lea eax, [ebp - 0x490]
push eax
mov edx, str.drive
mov byte [ebp - 4], 7
call fcn.10030dc9
mov edi, eax
mov byte [ebp - 4], 6
call fcn.1002fdd8
push ebx
push 1
lea ecx, [ebp - 0x4cc]
mov byte [ebp - 4], 5
call fcn.10004d05
xor eax, eax
mov esi, 0xfe
push esi
mov word [ebp - 0x210], ax
lea eax, [ebp - 0x20e]
push ebx
push eax
call fcn.10044e90
add esp, 0xc
xor eax, eax
push esi
mov word [ebp - 0x110], ax
lea eax, [ebp - 0x10e]
push ebx
push eax
call fcn.10044e90
mov ecx, dword [ebp - 0x430]
add esp, 0xc
cmp dword [ebp - 0x41c], 8
jae 0x1001a1dd
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 0x1001a383
cmp word [ebp - 0x210], bx
je 0x1001a288
lea eax, [ebp - 0x210]
push eax
lea esi, [ebp - 0x4cc]
call fcn.100048d8
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.1002fb85
lea eax, [ebp - 0x490]
push eax
mov edx, str.driveName
mov byte [ebp - 4], 0xa
call fcn.10030dc9
mov edi, eax
mov byte [ebp - 4], 9
call fcn.1002fdd8
push ebx
push 1
lea ecx, [ebp - 0x504]
call fcn.10004d05
push ebx
push 1
lea esi, [ebp - 0x4cc]
mov byte [ebp - 4], 5
call fcn.10004dfd
cmp word [ebp - 0x110], bx
je 0x1001a2cf
lea eax, [ebp - 0x110]
push eax
lea esi, [ebp - 0x4cc]
call fcn.100048d8
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 0x1001a2ed
push str.unknown
lea ecx, [ebp - 0x504]
call fcn.10004842
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.1002fb85
lea eax, [ebp - 0x490]
push eax
mov edx, 0x10062f5c
mov dword [ebp - 4], 0xe
call fcn.10030dc9
mov edi, eax
mov byte [ebp - 4], 0xd
call fcn.1002fdd8
test byte [ebp - 0x454], 4
je 0x1001a340
and dword [ebp - 0x454], 0xfffffffb
push ebx
push 1
lea ecx, [ebp - 0x504]
call fcn.10004d05
test byte [ebp - 0x454], 2
je 0x1001a35e
and dword [ebp - 0x454], 0xfffffffd
push ebx
push 1
lea ecx, [ebp - 0x4b0]
call fcn.10004d05
mov dword [ebp - 4], 5
test byte [ebp - 0x454], 1
je 0x1001a383
and dword [ebp - 0x454], 0xfffffffe
push ebx
push 1
lea esi, [ebp - 0x4cc]
call fcn.10004dfd
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 0x1001a3b4
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 0x1001a504
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.10028b00
sub esp, 0xc
mov byte [ebp - 4], 0xf
mov edx, eax
mov esi, esp
mov dword [ebp - 0x458], esp
call fcn.1002fb85
lea eax, [ebp - 0x490]
push eax
mov edx, str.totalSpace
mov byte [ebp - 4], 0x10
call fcn.10030dc9
mov edi, eax
mov byte [ebp - 4], 0xf
call fcn.1002fdd8
push ebx
push 1
lea ecx, [ebp - 0x4b0]
mov byte [ebp - 4], 5
call fcn.10004d05
push dword [ebp - 0x464]
lea ebx, [ebp - 0x4b0]
push dword [ebp - 0x468]
call fcn.100277de
sub esp, 0x10
mov byte [ebp - 4], 0x11
mov edx, eax
mov esi, esp
mov dword [ebp - 0x458], esp
call fcn.1002fb85
lea eax, [ebp - 0x490]
push eax
mov edx, str.freeSpace
mov byte [ebp - 4], 0x12
call fcn.10030dc9
mov edi, eax
mov byte [ebp - 4], 0x11
call fcn.1002fdd8
push 0
push 1
mov ecx, ebx
call fcn.10004d05
push 0
push 0x64
pop esi
push esi
push dword [ebp - 0x464]
push dword [ebp - 0x468]
call fcn.1004f6a0
push dword [ebp - 0x46c]
push dword [ebp - 0x470]
push edx
push eax
call fcn.100560c0
mov ecx, esi
sub ecx, eax
jns 0x1001a4cb
xor ecx, ecx
jmp 0x1001a4d1
cmp ecx, esi
jle 0x1001a4d1
mov ecx, esi
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x458], esp
push ecx
call fcn.1002fa74
lea eax, [ebp - 0x490]
push eax
mov edx, str.usedSpacePercent
mov byte [ebp - 4], 0x13
call fcn.10030dc9
mov edi, eax
mov byte [ebp - 4], 5
call fcn.1002fdd8
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 0x1001a536
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 0x1001a5e1
cmp esi, 2
je 0x1001a5e1
cmp esi, 4
jne 0x1001a565
mov eax, 0x10062fc0
jmp 0x1001a580
cmp esi, 5
jne 0x1001a571
mov eax, 0x10062fd0
jmp 0x1001a580
mov eax, 0x10062fdc
cmp esi, 6
je 0x1001a580
mov eax, 0x10062fe4
push eax
lea eax, [ebp - 0x450]
push eax
call fcn.10004dd6
cmp esi, 4
jne 0x1001a596
push 6
jmp 0x1001a5a6
cmp esi, 5
jne 0x1001a59f
push 7
jmp 0x1001a5a6
cmp esi, 6
jne 0x1001a5a9
push 8
pop eax
jmp 0x1001a5ab
xor eax, eax
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x458], esp
push eax
call fcn.1002fa74
lea eax, [ebp - 0x490]
push eax
mov edx, str.type
mov byte [ebp - 4], 0x17
call fcn.10030dc9
mov edi, eax
mov byte [ebp - 4], 0x14
call fcn.1002fdd8
jmp 0x1001a6a3
mov byte [ebp - 0x459], bl
mov bl, byte [ebp - 0x460]
add bl, 0x41
lea esi, [ebp - 0x459]
call fcn.1003d397
test al, al
je 0x1001a63f
cmp byte [ebp - 0x459], 0
je 0x1001a63f
push 5
pop eax
mov ecx, 0x10062f9c
lea esi, [ebp - 0x450]
call fcn.1000540a
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.1002fa74
mov byte [ebp - 4], 0x15
jmp 0x1001a685
mov eax, str._g0W
cmp dword [ebp - 0x458], edi
je 0x1001a651
mov eax, 0x10062fb4
push eax
lea eax, [ebp - 0x450]
push eax
call fcn.10004dd6
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.1002fa74
mov byte [ebp - 4], 0x16
lea eax, [ebp - 0x490]
push eax
mov edx, str.type
call fcn.10030dc9
mov edi, eax
mov byte [ebp - 4], 0x14
call fcn.1002fdd8
xor ebx, ebx
lea eax, [ebp - 0x490]
mov edi, str.driveName
push eax
mov edx, edi
call fcn.10030dc9
cmp byte [eax + 8], 4
je 0x1001a714
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.1002fb85
lea eax, [ebp - 0x490]
push eax
mov edx, edi
mov byte [ebp - 4], 0x19
call fcn.10030dc9
mov edi, eax
mov byte [ebp - 4], 0x18
call fcn.1002fdd8
push ebx
push 1
lea ecx, [ebp - 0x4b0]
mov byte [ebp - 4], 0x14
call fcn.10004d05
cmp byte [ebp - 0x45a], bl
je 0x1001a74e
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x458], esp
push 1
call fcn.1002fa74
lea eax, [ebp - 0x490]
push eax
mov edx, str.type
mov byte [ebp - 4], 0x1a
call fcn.10030dc9
mov edi, eax
mov byte [ebp - 4], 0x14
call fcn.1002fdd8
lea eax, [ebp - 0x490]
push eax
lea eax, [ebp - 0x4e8]
push eax
call fcn.10030e1a
push ebx
push 1
lea esi, [ebp - 0x450]
call fcn.10004dfd
lea esi, [ebp - 0x490]
mov byte [ebp - 4], 2
call fcn.1002fd55
push ebx
push 1
lea esi, [ebp - 0x434]
mov byte [ebp - 4], 1
call fcn.10004dfd
inc dword [ebp - 0x460]
cmp dword [ebp - 0x460], 0x1a
jl 0x1001a0be
mov ecx, dword [ebp - 0x474]
lea eax, [ebp - 0x4e8]
push eax
call fcn.1003125d
or dword [ebp - 0x454], 8
lea esi, [ebp - 0x4e8]
mov byte [ebp - 4], bl
call fcn.1002fd55
mov eax, dword [ebp - 0x474]
call fcn.10040e1d
ret