There are plenty of non-Linux solutions for embedded systems, ranging from an RTOS such as eCos, FreeRTOS, ThreadX, Nucleus and many others to a completely monolithic, custom made firmware without any specific OS environment. About the only way to find out for sure is to start disassembling and figure out how it works.
My old presentation may be of some use ...
routine sub_8081ECE4 seems to subtract 7 bytes from this address 0x8082e7c4 (R1=R7+0x54=0x8082e770+0x54) to data on the stack (I presume that is the entered password). Can you provide bytes @0x8082e7c4?
The block with a yellow background is some sort of decryption routine, substracting entered char with a byte table @0x8082e770. You need to look closer ...
Well, I managed to do it with the add_dref() function:
add_dref(frm, to, type)
Create a data cross-reference.
to - linear address of referenced data (C++: ea_t)
type - cross-reference type (C++: dref_t)
success (may fail if user-defined xref exists from->to)
So I can just call this for every resolved symbols: