Function at 0x4cbcf0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50b0a5
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x524
push esi
push edi
push ecx
lea edi, [ebp - 0x530]
mov ecx, 0x149
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
pop ecx
mov eax, dword [0x55370c]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
call fcn.00487020
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x14]
mov dword [eax], 0x523aa8
mov ecx, dword [ebp - 0x14]
add ecx, 0x54
call fcn.00417640
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x14]
add ecx, 0x64
call fcn.0040de40
mov byte [ebp - 4], 2
push 0xe5
mov ecx, dword [ebp - 0x14]
add ecx, 0x64
call fcn.0040dee0
mov esi, esp
push 1
lea ecx, [ebp - 0xb0]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_ifstream_char__struct_std::char_traits_char__::constructor_void_]
cmp esi, esp
call fcn.004f90e1
mov byte [ebp - 4], 3
mov esi, esp
lea ecx, [ebp - 0x4c4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_5]
cmp esi, esp
call fcn.004f90e1
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x4d8]
push ecx
call fcn.004d30c0
add esp, 4
mov dword [ebp - 0x4fc], eax
mov edx, dword [ebp - 0x4fc]
mov dword [ebp - 0x500], edx
mov byte [ebp - 4], 5
mov esi, esp
mov eax, dword [ebp - 0x500]
push eax
lea ecx, [ebp - 0x4c4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator]
cmp esi, esp
call fcn.004f90e1
mov byte [ebp - 4], 4
mov esi, esp
lea ecx, [ebp - 0x4d8]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
cmp esi, esp
call fcn.004f90e1
mov esi, esp
push 0x523a00
lea ecx, [ebp - 0x4c4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_2]
cmp esi, esp
call fcn.004f90e1
mov esi, esp
push 0x1b6
push 1
mov edi, esp
lea ecx, [ebp - 0x4c4]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
cmp edi, esp
call fcn.004f90e1
push eax
lea ecx, [ebp - 0xb0]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_ifstream_char__struct_std::char_traits_char__::open_char_const___int__int_]
cmp esi, esp
call fcn.004f90e1
mov esi, esp
push 0x523a18
lea ecx, [ebp - 0x4dc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_4]
cmp esi, esp
call fcn.004f90e1
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x4dc]
push ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0x54
call fcn.00417790
mov byte [ebp - 4], 4
mov esi, esp
lea ecx, [ebp - 0x4dc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
cmp esi, esp
call fcn.004f90e1
mov dword [ebp - 0x4d0], 0
mov esi, esp
lea ecx, [ebp - 0xb0]
call dword [sym.imp.MSVCP71.dll_public:_bool___thiscall_std::basic_ifstream_char__struct_std::char_traits_char__::is_open_void_const]
cmp esi, esp
call fcn.004f90e1
movzx edx, al
test edx, edx
je 0x4cc104
mov esi, esp
lea eax, [ebp - 0x4d0]
push eax
lea ecx, [ebp - 0xb0]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::operator___int__]
cmp esi, esp
call fcn.004f90e1
mov esi, esp
push 0x400
lea ecx, [ebp - 0x4b8]
push ecx
lea ecx, [ebp - 0xb0]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::getline_char___int_]
cmp esi, esp
call fcn.004f90e1
cmp dword [ebp - 0x4d0], 0
jne 0x4cc072
lea edx, [ebp - 0x4e0]
push edx
call fcn.004d30c0
add esp, 4
mov dword [ebp - 0x504], eax
mov eax, dword [ebp - 0x504]
mov dword [ebp - 0x508], eax
mov byte [ebp - 4], 7
mov esi, esp
mov ecx, dword [ebp - 0x508]
push ecx
lea ecx, [ebp - 0x4c4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator]
cmp esi, esp
call fcn.004f90e1
mov byte [ebp - 4], 4
mov esi, esp
lea ecx, [ebp - 0x4e0]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
cmp esi, esp
call fcn.004f90e1
mov esi, esp
push 0x523a2c
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp esi, esp
call fcn.004f90e1
cmp eax, 3
jne 0x4cbf9e
mov esi, esp
push 0x523a30
lea ecx, [ebp - 0x4c4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_1]
cmp esi, esp
call fcn.004f90e1
jmp 0x4cc060
mov esi, esp
push 1
lea edx, [ebp - 0x4e4]
push edx
lea ecx, [ebp - 0x4c4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Left]
cmp esi, esp
call fcn.004f90e1
mov dword [ebp - 0x50c], eax
mov eax, dword [ebp - 0x50c]
mov dword [ebp - 0x510], eax
mov byte [ebp - 4], 8
push 0x523a40
mov esi, esp
mov ecx, dword [ebp - 0x510]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::MakeUpper]
cmp esi, esp
call fcn.004f90e1
push eax
lea ecx, [ebp - 0x4e8]
push ecx
call fcn.0040e420
add esp, 0xc
mov dword [ebp - 0x514], eax
mov edx, dword [ebp - 0x514]
mov dword [ebp - 0x518], edx
mov byte [ebp - 4], 9
mov esi, esp
mov eax, dword [ebp - 0x518]
push eax
lea ecx, [ebp - 0x4c4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator]
cmp esi, esp
call fcn.004f90e1
mov byte [ebp - 4], 8
mov esi, esp
lea ecx, [ebp - 0x4e8]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
cmp esi, esp
call fcn.004f90e1
mov byte [ebp - 4], 4
mov esi, esp
lea ecx, [ebp - 0x4e4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
cmp esi, esp
call fcn.004f90e1
lea ecx, [ebp - 0x4c4]
push ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0x54
call fcn.00417790
cmp dword [ebp - 0x4d0], 0
jle 0x4cc0ff
mov esi, esp
push 0x400
lea edx, [ebp - 0x4b8]
push edx
lea ecx, [ebp - 0xb0]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::getline_char___int_]
cmp esi, esp
call fcn.004f90e1
mov esi, esp
lea eax, [ebp - 0x4b8]
push eax
lea ecx, [ebp - 0x4ec]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_4]
cmp esi, esp
call fcn.004f90e1
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x4ec]
push ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0x54
call fcn.00417790
mov byte [ebp - 4], 4
mov esi, esp
lea ecx, [ebp - 0x4ec]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
cmp esi, esp
call fcn.004f90e1
mov edx, dword [ebp - 0x4d0]
sub edx, 1
mov dword [ebp - 0x4d0], edx
jmp 0x4cc072
jmp 0x4cc26a
lea eax, [ebp - 0x4f0]
push eax
call fcn.004d30c0
add esp, 4
mov dword [ebp - 0x51c], eax
mov ecx, dword [ebp - 0x51c]
mov dword [ebp - 0x520], ecx
mov byte [ebp - 4], 0xb
mov esi, esp
mov edx, dword [ebp - 0x520]
push edx
lea ecx, [ebp - 0x4c4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator]
cmp esi, esp
call fcn.004f90e1
mov byte [ebp - 4], 4
mov esi, esp
lea ecx, [ebp - 0x4f0]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
cmp esi, esp
call fcn.004f90e1
mov esi, esp
push 0x523a50
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp esi, esp
call fcn.004f90e1
cmp eax, 3
jne 0x4cc196
mov esi, esp
push str.D:RayDownload_
lea ecx, [ebp - 0x4c4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_1]
cmp esi, esp
call fcn.004f90e1
jmp 0x4cc258
mov esi, esp
push 1
lea eax, [ebp - 0x4f4]
push eax
lea ecx, [ebp - 0x4c4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Left]
cmp esi, esp
call fcn.004f90e1
mov dword [ebp - 0x524], eax
mov ecx, dword [ebp - 0x524]
mov dword [ebp - 0x528], ecx
mov byte [ebp - 4], 0xc
push str.:RayDownLoad_
mov esi, esp
mov ecx, dword [ebp - 0x528]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::MakeUpper]
cmp esi, esp
call fcn.004f90e1
push eax
lea edx, [ebp - 0x4f8]
push edx
call fcn.0040e420
add esp, 0xc
mov dword [ebp - 0x52c], eax
mov eax, dword [ebp - 0x52c]
mov dword [ebp - 0x530], eax
mov byte [ebp - 4], 0xd
mov esi, esp
mov ecx, dword [ebp - 0x530]
push ecx
lea ecx, [ebp - 0x4c4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator]
cmp esi, esp
call fcn.004f90e1
mov byte [ebp - 4], 0xc
mov esi, esp
lea ecx, [ebp - 0x4f8]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
cmp esi, esp
call fcn.004f90e1
mov byte [ebp - 4], 4
mov esi, esp
lea ecx, [ebp - 0x4f4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
cmp esi, esp
call fcn.004f90e1
lea edx, [ebp - 0x4c4]
push edx
mov ecx, dword [ebp - 0x14]
add ecx, 0x54
call fcn.00417790
mov esi, esp
lea ecx, [ebp - 0xb0]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_ifstream_char__struct_std::char_traits_char__::close_void_]
cmp esi, esp
call fcn.004f90e1
mov byte [ebp - 4], 3
mov esi, esp
lea ecx, [ebp - 0x4c4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
cmp esi, esp
call fcn.004f90e1
mov byte [ebp - 4], 2
mov esi, esp
lea ecx, [ebp - 0xb0]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_ifstream_char__struct_std::char_traits_char__::vbase_dtor_void_]
cmp esi, esp
call fcn.004f90e1
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
push edx
mov ecx, ebp
push eax
lea edx, [0x4cc2f1]
call fcn.004f9104
pop eax
pop edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
call fcn.004f90d3
pop edi
pop esi
add esp, 0x530
cmp ebp, esp
call fcn.004f90e1
mov esp, ebp
pop ebp
ret