The person with the source code will likely never be able to release it due to impending litigation from Ubisoft, it would be so obvious they are responsible for the leak.
It is a pretty large task to reverse everything, even with partial symbols.
Projects that have done complete reversal (e.g. Diablo, GTA) are far and few and they had the benefit of having symbols that match the version they were working with whereas heroes3 specifically reverse engineers SoD 3.2 with (now) symbols from an unreleased RoE Dreamcast version
They also had pretty big groups collaborating together to achieve the same goal, which doesn't seem to be very sought out in heroes3. Other projects that have done partial reverse engineering (e.g. project Ironfist) reversed part of the code and then simply left the rest as assembly / IDA output.
searchArray is also present in Homm2 however nobody knows how it works exactly.
My approach has been to pick one function, find its equivalent and then just poke around that area and put in the appropriate names for functions contained within there. It is
not simple due to inlining but mostly due to differences between RoE and SoD which added a lot of code in specific areas. For instance, game::save has an entirely different prelude.
I am slowly modifying h3api to use the correct names, given it's already a pretty decent coverage it's mostly changing some names and defining functions correctly.
For uniformity's sake I allow myself some creativity (e.g. type_point -> Point, NewfullMap -> FullMap, NewmapCell -> Tile) to make up for NWC's inconsistency in naming. In heroes4 the naming is much more standard, everything is t_class_name, alas we are stuck with many prefix variants:
type_ (e.g. type_point)
t_ (e.g. t_abstract_random_generator << from mapeditor btw)
T (e.g. TDialogBox)
C (e.g. CSprite)
S (e.g. SCampaign)
(none) + snake_case (e.g. hero)
(none) + PascalCase (e.g. NewfullMap)
(none) + camelCase (e.g. advManager)
...probably forgetting some.
You have to take your time, progress will not happen overnight especially for non-programmer such as myself - can't speak for others. Maybe one day there will be enough interest to take on complete reversal of the game but at the moment the skilled persons in heroes3 are all doing their own project.