Function at 0x4000d7a8
Capabilities:
Get disk information

Disassembly:
push ebp
lea ebp, [esp - 0x2dc]
sub esp, 0x3b0
mov eax, dword [str.JRDU]
push esi
mov esi, dword [ebp + 0x2e4]
xor eax, ebp
cmp byte [ebp + 0x2ec], 0
push edi
mov edi, dword [ebp + 0x2e8]
mov dword [ebp + 0x2d8], eax
jne 0x4000d7f7
test esi, esi
je 0x4000d7f7
push 0x4002a920
push esi
call dword [sym.imp.MSVCRT.dll_wcspbrk]
test eax, eax
pop ecx
pop ecx
je 0x4000d7f7
xor eax, eax
jmp 0x4000d9ae
push 0x4002a904
push esi
call sym.xprt6.dll__XprtCompareWildcard_8
test eax, eax
je 0x4000d94c
push 0x4002a918
push esi
call sym.xprt6.dll__XprtCompareWildcard_8
test eax, eax
je 0x4000d94c
call sym.xprt6.dll__XprtGetSystemInfo_0
cmp dword [eax + 0x50], 2
lea eax, [ebp + 0x80]
push esi
push eax
sete byte [ebp + 0x7c]
call sym.xprt6.dll_public:_static_class_XPRT::TBstr___cdecl_XPRT::TFile::RemoveTrailingSeparator_unsigned_short_int_const__
pop ecx
pop ecx
lea ecx, [ebp + 0x80]
call sym.xprt6.dll_public:_unsigned_short_int_const____thiscall_XPRT::TBstr::GetString_void_const
cmp byte [ebp + 0x7c], 0
push eax
je 0x4000d877
lea eax, [ebp + 0x70]
push eax
call sym.xprt6.dll_public:_static_class_XPRT::TBstr___cdecl_XPRT::TFile::AddLeadingPathLengthEnhancer_unsigned_short_int_const__
pop ecx
pop ecx
mov ecx, eax
call sym.xprt6.dll_public:_unsigned_short_int_const____thiscall_XPRT::TBstr::GetString_void_const
lea ecx, [ebp + 0x88]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
lea ecx, [ebp + 0x70]
mov esi, eax
call sym.xprt6.dll_public:_void___thiscall_XPRT::TBstr::destructor_void_
jmp 0x4000d8bf
call sym.xprt6.dll_public:_static_bool___cdecl_XPRT::TFile::SafeToConvert_unsigned_short_int_const__
test al, al
pop ecx
je 0x4000d8bc
lea ecx, [ebp + 0x80]
call sym.xprt6.dll_public:_unsigned_short_int_const____thiscall_XPRT::TBstr::GetString_void_const
push sym.xprt6.dll_kSystemEncoding
push eax
lea ecx, [ebp - 0xd4]
call sym.xprt6.dll_public:_void___thiscall_XPRT::TConvertFromUcs2::constructor_unsigned_short_int_const___unsigned_short_int_const__
mov eax, dword [eax]
lea ecx, [ebp + 0x88]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
lea ecx, [ebp - 0xd4]
mov esi, eax
call sym.xprt6.dll_public:_void___thiscall_XPRT::TConvertFromUcs2::destructor_void_
jmp 0x4000d8bf
or esi, 0xffffffff
cmp esi, 0xffffffff
jne 0x4000d8c8
xor esi, esi
jmp 0x4000d93d
push dword [ebp + 0x7c]
lea eax, [ebp + 0x88]
push eax
lea ecx, [ebp + 0x38]
call fcn.4000d61b
lea ecx, [ebp + 0x38]
call sym.xprt6.dll_public:_unsigned_short_int_const____thiscall_XPRT::TBstr::GetString_void_const
lea ecx, [ebp + 0x60]
push ecx
lea ecx, [ebp + 0x58]
push ecx
lea ecx, [ebp + 0x50]
push ecx
push dword [ebp + 0x4c]
mov ecx, edi
push dword [ebp + 0x48]
push dword [ebp + 0x40]
push eax
call sym.xprt6.dll_protected:_void___thiscall_XPRT::TFileInfo::Init_unsigned_short_int_const___unsigned_int__long_long___int64___class_XPRT::TTime_const___class_XPRT::TTime_const___class_XPRT::TTime_const__
push sym.xprt6.dll_unsigned_short_int_const__const_const_XPRT::TFileFinder::kCurrentDirectory
mov ecx, edi
call sym.xprt6.dll_public:_int___thiscall_XPRT::TBstr::Compare_unsigned_short_int_const__const
test eax, eax
je 0x4000d91f
push sym.xprt6.dll_unsigned_short_int_const__const_const_XPRT::TFileFinder::kParentDirectory
mov ecx, edi
call sym.xprt6.dll_public:_int___thiscall_XPRT::TBstr::Compare_unsigned_short_int_const__const
test eax, eax
jne 0x4000d935
push edi
push esi
call fcn.4000d6ca
test al, al
pop ecx
pop ecx
jne 0x4000d935
push esi
call fcn.4000d5f0
pop ecx
xor esi, esi
lea ecx, [ebp + 0x38]
call sym.xprt6.dll_public:_void___thiscall_XPRT::TBstr::destructor_void_
lea ecx, [ebp + 0x80]
call sym.xprt6.dll_public:_void___thiscall_XPRT::TBstr::destructor_void_
mov eax, esi
jmp 0x4000d9ae
push ebx
push sym.xprt6.dll_kSystemEncoding
push esi
lea ecx, [ebp - 0xd4]
call sym.xprt6.dll_public:_void___thiscall_XPRT::TConvertFromUcs2::constructor_unsigned_short_int_const___unsigned_short_int_const__
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 1
lea ecx, [ebp - 0xd4]
seta bl
call sym.xprt6.dll_public:_void___thiscall_XPRT::TConvertFromUcs2::destructor_void_
test bl, bl
je 0x4000d9a4
lea eax, [ebp + 0x70]
fldz
push eax
fstp qword [ebp + 0x70]
lea eax, [ebp + 0x78]
fldz
push eax
fstp qword [ebp + 0x78]
lea eax, [ebp + 0x68]
fldz
push eax
xor eax, eax
fstp qword [ebp + 0x68]
push eax
push eax
push 1
push eax
mov ecx, edi
call sym.xprt6.dll_protected:_void___thiscall_XPRT::TFileInfo::Init_unsigned_short_int_const___unsigned_int__long_long___int64___class_XPRT::TTime_const___class_XPRT::TTime_const___class_XPRT::TTime_const__
neg bl
sbb ebx, ebx
and ebx, 0xfffffffe
mov eax, ebx
pop ebx
mov ecx, dword [ebp + 0x2d8]
pop edi
xor ecx, ebp
pop esi
call fcn.4000e707
add ebp, 0x2dc
leave
ret