Reverse engineering SREC firmware
You have just over 8 kB of data there, so it's very likely an assembly-language program, not a high-level language. This will help a bit.

You need a disassembler, specific to the processor that's used in the product, to convert the hex data back into assembly-code mnemonics. However, the instruction arguments will simply be shown as numbers initially (data and addresses). It requires a lot of work and a fair amount of intuition to assign meaningful labels to those numbers.

My approach is to identify all of the separate subroutines and build up a "call tree" for the program overall. Then, using the instruction set manual, work out what the lowest-level subroutines do and give them meaningful names. This will assist with working out what the higher-level routines that call them do.

You'll eventually need an assembler (for the same processor) to convert your source code back into hex data. You can use this to verify your disassembly work prior to making any changes.

After making your changes, you'll need a programmer to put the new hex data into the product's memory.