I've being checking your addresses for 5d2 and all go a "Pointer" then to a different address in the .dis file , how are you looking these up ?
I was going to ask you the same question, how are you looking these up? Are you checking the addresses you found against disassemblies for the cameras that already have lossless compression working?
Your logic seems to make sense:
ML code
/* ProcessTwoInTwoOutLosslessPath, 5D2 2.1.2 */
TTL_SetArgs = (void *) 0xFF9BECF4; /* fills TTL_Args struct; PictureSize(Mem1ToRaw) */
Looking up that address:
ff9bec2c: redacted add r2, pc, #192 ; ff9becf4: (redacted) *"->Unknown PictureSize(Mem1ToRaw)"
So if you look up that same line in the 5D3.113 disassembly you would come up with 0xFF3234E4 for TTL_SetArgs but---
/* ProcessTwoInTwoOutLosslessPath, 5D3 1.1.3 */
TTL_SetArgs = (void *) 0xFF32330C; /* fills TTL_Args struct; PictureSize(Mem1ToRaw) */
Look up that address in the 5D3.113 disassembly and you'll see this:
loc_ff32330c: ; 10 refs
That's the start of a function. Now look up the address that I found in the 5D2 disassembly:
loc_ff1beb18: ; 5 refs
This won't make any sense unless you can flip between the 5D2 and the 5D3 disassemblies. It is almost a perfect match. Keep scrolling through that function and just before you get to the next function (2 refs on both 5D2 and 5D3) you should have an "ah ha" moment.
It doesn't always work out this way but basically the code that does the job on one camera should "look" pretty much the same as the code that does the same job on another camera.
BTW -- Never heard of MS Visual Studio Code so I downloaded it and took a look at it. I might be missing something but I don't see how it can be useful for working with disassembled ARM code. There are some powerful apps out there but I'm just using the disassembly.pl script as recommended in
Tutorial: finding stubs by a1ex and a text editor.