Function at 0x401fc2
Capabilities:
Create directory
Query environment variable
Read .ini file

Disassembly:
mov eax, 0x48080e
call fcn.0040f970
mov eax, 0x1cdc
call fcn.0040f8c0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 4], ebx
call fcn.00401c08
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push str.Entering_CompareUUID
mov byte [0x4ce3b8], al
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
call fcn.004015c7
lea eax, [ebp + 8]
mov ecx, esp
mov dword [ebp - 0x10], esp
push eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_4]
call fcn.004015c7
push 0x30
lea eax, [ebp - 0x64]
push ebx
push eax
call sub.MSVCR71.dll_memset
push 0x48add0
push dword [ebp + 8]
call dword [sym.imp.MSVCR71.dll__wfopen]
mov edi, eax
add esp, 0x18
cmp edi, ebx
jne 0x402054
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push str.couldnt_open_uuid_file
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
call fcn.004015c7
xor esi, esi
pop ecx
inc esi
jmp 0x4023f2
xor esi, esi
test byte [edi + 0xc], 0x10
jne 0x402074
push edi
call dword [sym.imp.MSVCR71.dll_fgetc]
mov byte [ebp + esi - 0xe8], al
inc esi
cmp esi, 0x80
pop ecx
jl 0x402056
push edi
mov byte [ebp - 0x68], 0
call dword [sym.imp.MSVCR71.dll_fclose]
lea eax, [ebp - 0xe8]
push ebx
push eax
call fcn.00401b25
mov esi, eax
lea eax, [ebp - 0x64]
add esp, 0xc
xor ecx, ecx
sub esi, eax
lea eax, [ebp + ecx - 0x64]
mov dl, byte [esi + eax]
inc ecx
cmp ecx, 0x2f
mov byte [eax], dl
jl 0x402098
mov byte [ebp - 0x34], 0
call fcn.004013c4
test al, al
je 0x402314
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push str.In_PreOS
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
call fcn.004015c7
mov esi, dword [sym.imp.MSVCR71.dll__wgetenv]
mov ebx, str.SWSHARE
push ebx
call esi
test eax, eax
pop ecx
pop ecx
jne 0x4020e9
push str.RAMD
jmp 0x4020ea
push ebx
call esi
pop ecx
push eax
mov edi, 0x400
lea eax, [ebp - 0x14e8]
push edi
push eax
call fcn.0040120a
push str._sysinfo.ini
push edi
lea eax, [ebp - 0x14e8]
push eax
call fcn.00401590
push ecx
lea eax, [ebp - 0x14e8]
mov ecx, esp
mov dword [ebp - 0x10], esp
push eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
call fcn.004017a8
test al, al
pop ecx
jne 0x402229
push ebx
call esi
pop ecx
push eax
lea ecx, [ebp - 0x10]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
xor ebx, ebx
push ebx
push dword [ebp - 0x10]
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push str.TVTDRIVE
call esi
pop ecx
push eax
lea ecx, [ebp - 0x20]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push str.TVTPyDir
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCR71.dll_getenv]
pop ecx
push eax
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
lea ecx, [ebp - 0x18]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_5]
push str.preboot
push dword [ebp - 0x20]
lea eax, [ebp - 0x18]
push str._s_s_sysinfogather
push eax
mov byte [ebp - 4], 4
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0x10
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_5]
push dword [ebp - 0x18]
lea eax, [ebp - 0x1c]
push dword [ebp - 0x2c]
mov byte [ebp - 4], 5
push str.__spython.exe____sgather.pyc_
push eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0xc
lea eax, [ebp - 0x18]
mov ecx, esp
mov dword [ebp - 0x30], esp
push eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_4]
push ecx
lea eax, [ebp - 0x1c]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
mov byte [ebp - 4], 6
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_4]
mov byte [ebp - 4], 5
call fcn.00401cb3
pop ecx
pop ecx
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [ebp - 0x18]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [ebp - 0x20]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], bl
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
jmp 0x40222b
xor ebx, ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.Compare_UUID_to_location_...
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
call fcn.004015c7
lea eax, [ebp - 0x14e8]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
call fcn.004015c7
pop ecx
lea eax, [ebp - 0x14e8]
push eax
push edi
lea eax, [ebp - 0x1ce8]
push eax
call fcn.0040120a
lea eax, [ebp - 0x1ce8]
push eax
push edi
lea eax, [ebp - 0xce8]
push eax
push str.help
push str.uuid
push str.system_summary
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push ecx
lea eax, [ebp - 0xce8]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
call fcn.004015c7
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
pop ecx
push ebx
push ebx
lea eax, [ebp - 0xce8]
push eax
call esi
push eax
lea eax, [ebp - 0x4e8]
push eax
lea eax, [ebp - 0xce8]
push eax
call esi
push eax
lea eax, [ebp - 0xce8]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.A_PATH
mov byte [ebp + eax - 0x4e8], 0
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
call fcn.004015c7
lea eax, [ebp - 0x4e8]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
call fcn.004015c7
pop ecx
jmp 0x40232f
call fcn.00401850
push 0x4ce2c0
push 0x400
lea eax, [ebp - 0x4e8]
push eax
call fcn.004011cf
lea eax, [ebp - 0x4e8]
push eax
lea ecx, [ebp - 0x24]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 7
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT]
push 0x48ac34
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x10]
push eax
mov byte [ebp - 4], 8
call fcn.00401441
add esp, 8
mov ecx, esp
mov dword [ebp - 0x14], esp
lea edx, [ebp - 0x28]
push edx
push eax
push ecx
mov byte [ebp - 4], 9
call fcn.004013d6
add esp, 0xc
call fcn.004015c7
pop ecx
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 8
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
xor eax, eax
movsx ecx, byte [ebp + eax - 0x4e8]
movzx edx, byte [ebp + eax - 0x64]
cmp ecx, edx
jne 0x4023c6
inc eax
cmp eax, 0x2f
jl 0x402395
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.uuid_MATCH
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
call fcn.004015c7
xor esi, esi
jmp 0x4023df
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.No_uuid_MATCH
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
call fcn.004015c7
xor esi, esi
inc esi
pop ecx
lea ecx, [ebp - 0x28]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [ebp - 0x24]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [ebp + 8]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret