I finally got around to looking at this for other reasons, so here's a way to get the GetCameraInformationData XML.
The first function called by GetCameraInformationData (g7x 100d 0xfc5087ae) collects the actual data and puts it in memory allocated with umalloc. It expects a single argument, which is a pointer that receives the allocated buffer (it also stores it in a global variable, but the pointer is required anyway) It returns the length of the data. So using g7x 100d as an example
=call_event_proc'System.Create' p=call_event_proc('AllocateMemory',4) return call_func_ptr(0xfc5087af,p),p,peek(p)
1:return:2912
1:return:5475504
1:return:1079217376
rmem 1079217376 2912 -f=g7x-caminfo.xml
My g7x did not show anything in the FreeFall section of the log, and the TotalShoot value was obviously far less than the real value (~6k, when I know the counter has wrapped passed 9999 multiple times).
The ErrorLog section shows a history of hardware defect errors.
The BatteryAuthentication section shows a history of the last ten times a non-Canon battery power source was detected. In my case, all of these correctly showed "DC coupler".
There is also a section appears to show what power sources have been used in the camera lifetime
<Explanation>Whether any non-Canon battery was used</Explanation>
<ThirdParty>YES</ThirdParty>
<Counterfeit>NO</Counterfeit>
<DC-coupler>YES</DC-coupler>
<non-CANON>NO</non-CANON>
Interesting that "ThirdParty" "Counterfeit" and "non-Canon" are all separate categories. I previously
experimented with blocking various terminals, which might explain the "ThirdParty" entry on mine.