Feel free to test it and report if it fit your needs.
Hello Polo! Very good idea and solution. Thanks a lot for your work!
I've test it and it's working good, but sometimes there is strange errors:
Address 0x04A170 not corrected in 16384 search !!! No matching pattern !!!
Correcting address 0x04A172
Address 0x04A172 not corrected in 16384 search !!! No matching pattern !!!
Correcting address 0x04A174
Bestmatch for address: 0x04A174, searchaddress: 0x04B7D2, offset: 165E, matchbefore: 0, matchafter: 20
Address 0x04A174 not corrected in 16384 search !!! Keeped Best match: 0x04B7D2 - Offset 165E matchbefore: 0 matchafter: 20 !!!
Correcting address 0x04A176
Bestmatch for address: 0x04A176, searchaddress: 0x04B7D4, offset: 165E, matchbefore: 4, matchafter: 16
Address 0x04A176 not corrected in 16384 search !!! Keeped Best match: 0x04B7D4 - Offset 165E matchbefore: 4 matchafter: 16 !!!
Correcting address 0x04A178
Bestmatch for address: 0x04A178, searchaddress: 0x04B7D6, offset: 165E, matchbefore: 8, matchafter: 12
Address 0x04A178 not corrected in 16384 search !!! Keeped Best match: 0x04B7D6 - Offset 165E matchbefore: 8 matchafter: 12 !!!
Correcting address 0x04A17A
Bestmatch for address: 0x04A17A, searchaddress: 0x04B7D8, offset: 165E, matchbefore: 12, matchafter: 8
Address 0x04A17A not corrected in 16384 search !!! Keeped Best match: 0x04B7D8 - Offset 165E matchbefore: 12 matchafter: 8 !!!
Correcting address 0x04A17C
Address 0x04A17C not corrected in 16384 search !!! No matching pattern !!!
Correcting address 0x04A180
Bestmatch for address: 0x04A180, searchaddress: 0x04B7DC, offset: 165C, matchbefore: 2, matchafter: 16
Bestmatch for address: 0x04A180, searchaddress: 0x04A224, offset: A4, matchbefore: 4, matchafter: 8
Bestmatch for address: 0x04A180, searchaddress: 0x049D34, offset: -44C, matchbefore: 2, matchafter: 8
Address 0x04A180 not corrected in 16384 search !!! Rejected Best match: 0x04B7DC - Offset 165C matchbefore: 2 matchafter: 16 !!!
Correcting address 0x04A184
Bestmatch for address: 0x04A184, searchaddress: 0x04B7E0, offset: 165C, matchbefore: 10, matchafter: 8
Address corrected from 0x04A170 to 0x04B7CE - 36% - 105420/286002 - offset 165E
Address corrected from 0x04A171 to 0x04B7CF - 36% - 105421/286002 - offset 165E
Address corrected from 0x04A172 to 0x04B7D0 - 36% - 105422/286002 - offset 165E
Address corrected from 0x04A173 to 0x04B7D1 - 36% - 105423/286002 - offset 165E
Address corrected from 0x04A174 to 0x04B7D2 - 36% - 105424/286002 - offset 165E
Address corrected from 0x04A175 to 0x04B7D3 - 36% - 105425/286002 - offset 165E
Address corrected from 0x04A176 to 0x04B7D4 - 36% - 105426/286002 - offset 165E
Address corrected from 0x04A177 to 0x04B7D5 - 36% - 105427/286002 - offset 165E
Address corrected from 0x04A178 to 0x04B7D6 - 36% - 105428/286002 - offset 165E
Address corrected from 0x04A179 to 0x04B7D7 - 36% - 105429/286002 - offset 165E
Address corrected from 0x04A17A to 0x04B7D8 - 36% - 105430/286002 - offset 165E
Address corrected from 0x04A17B to 0x04B7D7 - 36% - 105431/286002 - offset 165C
Address corrected from 0x04A17C to 0x04B7D8 - 36% - 105432/286002 - offset 165C
Address corrected from 0x04A17D to 0x04B7D9 - 36% - 105433/286002 - offset 165C
Address corrected from 0x04A17E to 0x04B7DA - 36% - 105434/286002 - offset 165C
Address corrected from 0x04A17F to 0x04B7DB - 36% - 105435/286002 - offset 165C
Address corrected from 0x04A180 to 0x04B7DC - 36% - 105436/286002 - offset 165C
Address corrected from 0x04A181 to 0x04B7DD - 36% - 105437/286002 - offset 165C