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

Disassembly:
push 0x56c
mov eax, 0x5163b5
call fcn.005060cc
and dword [ebp - 0x534], 0
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov esi, 0x400
mov ebx, eax
push esi
lea eax, [ebp - 0x510]
mov dword [ebp - 0x518], ebx
push 0
push eax
call fcn.004f1a90
add esp, 0xc
lea eax, [ebp - 0x510]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push 1
mov byte [ebp - 0x50d], 0
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov dword [ebp - 0x520], 2
mov edi, dword [ebp - 0x520]
mov byte [ebp - 0x528], 0x43
xor eax, eax
mov ecx, edi
inc eax
shl eax, cl
test ebx, eax
je 0x4df134
push ecx
push dword [ebp - 0x528]
lea ecx, [ebp - 0x54c]
call fcn.0041b005
and dword [ebp - 4], 0
lea ecx, [ebp - 0x514]
push 0xa42da8
mov edx, eax
call fcn.00405cb9
pop ecx
mov byte [ebp - 4], 2
or eax, 0xffffffff
mov edx, dword [ebp - 0x54c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4dec7d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x510]
xor esi, esi
push eax
push dword [ebp - 0x514]
xor ebx, ebx
inc esi
call fcn.004f775f
pop ecx
pop ecx
test eax, eax
jne 0x4dec9e
push 0x1c
jmp 0x4decfe
push dword [ebp - 0x514]
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
dec eax
sub eax, 1
je 0x4dece4
sub eax, 1
je 0x4dece0
or dword [ebp - 4], 0xffffffff
or eax, 0xffffffff
mov edx, dword [ebp - 0x514]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4df12e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4df12e
push 2
jmp 0x4decfe
mov eax, dword [0xd58f54]
xor ebx, ebx
inc ebx
test eax, eax
je 0x4decf3
add eax, 0x5c
cmp dword [eax + 0x27c], 0
je 0x4decb5
push 0xf
pop edi
test ebx, ebx
je 0x4ded5a
push 0x100
xor ebx, ebx
lea eax, [ebp - 0x110]
push ebx
push eax
call fcn.004f1a90
add esp, 0xc
mov dword [ebp - 0x53c], ebx
lea eax, [ebp - 0x110]
mov dword [ebp - 0x540], ebx
push 0x100
push eax
lea eax, [ebp - 0x53c]
push eax
push ebx
lea eax, [ebp - 0x540]
push eax
push ebx
push ebx
push dword [ebp - 0x514]
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
xor eax, eax
cmp byte [ebp - 0x110], al
cmove esi, eax
xor ecx, ecx
mov dword [ebp - 0x548], ecx
mov dword [ebp - 0x544], ecx
mov dword [ebp - 0x530], ecx
mov dword [ebp - 0x52c], ecx
push 0x29
pop ebx
test esi, esi
je 0x4dee19
lea eax, [ebp - 0x548]
push eax
lea eax, [ebp - 0x530]
push eax
push ecx
push dword [ebp - 0x514]
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
test eax, eax
je 0x4df106
mov eax, dword [ebp - 0x530]
or eax, dword [ebp - 0x52c]
je 0x4df106
mov ecx, dword [ebp - 0x530]
sub ecx, dword [ebp - 0x548]
mov eax, dword [ebp - 0x52c]
sbb eax, dword [ebp - 0x544]
push 0
push 0x64
pop ebx
push ebx
push eax
push ecx
call fcn.00506280
push dword [ebp - 0x52c]
push dword [ebp - 0x530]
push edx
push eax
call fcn.00506550
test eax, eax
jns 0x4dedf4
xor eax, eax
jmp 0x4dedf9
cmp eax, ebx
cmovg eax, ebx
lea eax, [eax*2 + 0xa]
push 0x11
cdq
pop ecx
idiv ecx
test eax, eax
jns 0x4dee0e
xor eax, eax
jmp 0x4dee16
push 0xc
pop ecx
cmp eax, ecx
cmovg eax, ecx
lea ebx, [eax + edi]
push 0xd5afc8
mov edx, 0xd5afc4
lea ecx, [ebp - 0x55c]
call fcn.0040a740
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x558]
mov edx, eax
mov dword [esp], 0x553dc8
call fcn.00405cb9
pop ecx
mov esi, eax
mov ecx, esi
mov byte [ebp - 4], 5
call fcn.00405da3
push eax
lea ecx, [ebp - 0x538]
call fcn.0040953f
mov al, byte [ebp - 0x528]
lea ecx, [ebp - 0x538]
mov edx, dword [esi]
mov edi, dword [ebp - 0x534]
mov byte [ebp - 0x519], al
or edi, 1
push 1
lea eax, [ebp - 0x519]
mov dword [ebp - 0x534], edi
push eax
push dword [edx - 0xc]
call fcn.00405dc6
mov esi, 0x553dc8
lea edx, [ebp - 0x538]
push esi
lea ecx, [ebp - 0x554]
call fcn.00405cb9
push str.DefaultIcon
mov edx, eax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x550]
call fcn.00405cb9
push esi
mov edx, eax
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x524]
call fcn.00405cb9
add esp, 0x18
mov byte [ebp - 4], 9
or esi, 0xffffffff
mov edx, dword [ebp - 0x550]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4deefa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xa
mov eax, esi
mov edx, dword [ebp - 0x554]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4def1b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
and edi, 0xfffffffe
mov dword [ebp - 0x534], edi
mov byte [ebp - 4], 0xb
mov eax, esi
mov edx, dword [ebp - 0x538]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4def45
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xc
pop eax
mov byte [ebp - 4], al
mov eax, esi
mov edx, dword [ebp - 0x558]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4def68
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xd
mov eax, esi
mov edx, dword [ebp - 0x55c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4def89
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov dword [ebp - 0x578], eax
mov dword [ebp - 0x574], eax
mov dword [ebp - 0x570], eax
push eax
push eax
mov esi, 0x2001f
mov byte [ebp - 4], 0xe
push esi
push eax
push eax
push dword [ebp - 0x524]
mov edi, reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x578]
push edi
call fcn.00407626
cmp eax, 0x3fd
jne 0x4defe3
xor eax, eax
lea ecx, [ebp - 0x578]
push eax
push eax
push esi
push 1
push eax
push dword [ebp - 0x524]
push edi
call fcn.00407626
mov edx, ebx
lea ecx, [ebp - 0x568]
call fcn.004229d4
mov esi, eax
lea ecx, [ebp - 0x564]
mov byte [ebp - 4], 0xf
call fcn.004232f6
push 0x554624
mov edx, eax
mov byte [ebp - 4], pe_nt_image_headers32
lea ecx, [ebp - 0x560]
call fcn.00405cb9
push 0x11
pop ebx
mov byte [ebp - 4], bl
mov ecx, esp
mov dword [ebp - 0x540], esp
mov edx, eax
push esi
call fcn.0040a740
mov byte [ebp - 4], 0x12
mov ecx, esp
mov dword [ebp - 0x53c], esp
push 0x51e784
call fcn.004094e6
push ecx
mov byte [ebp - 4], 0x13
mov esi, esp
mov ecx, dword [ebp - 0x524]
mov dword [ebp - 0x56c], esi
lea ecx, [ecx - 0x10]
call fcn.004098e7
add eax, 0x10
xor edx, edx
mov dword [esi], eax
inc edx
mov ecx, edi
mov byte [ebp - 4], bl
call fcn.00415421
mov byte [ebp - 4], pe_nt_image_headers32
add esp, 0xc
mov edx, dword [ebp - 0x560]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4df095
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xf
or eax, 0xffffffff
mov edx, dword [ebp - 0x564]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4df0b7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xe
or eax, 0xffffffff
mov edx, dword [ebp - 0x568]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4df0d9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x578]
call fcn.00408049
mov byte [ebp - 4], 2
or eax, 0xffffffff
mov edx, dword [ebp - 0x524]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4df106
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
or dword [ebp - 4], 0xffffffff
or eax, 0xffffffff
mov edx, dword [ebp - 0x514]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4df128
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x520]
mov ebx, dword [ebp - 0x518]
mov al, byte [ebp - 0x528]
inc al
inc edi
mov byte [ebp - 0x528], al
mov dword [ebp - 0x520], edi
cmp al, 0x5a
jle 0x4dec23
call fcn.00506076
ret