STARS assertion in AccessAboveLocalFrame
This happens in STARS/IRDB while analyzing in Zax on the attached binar (unknown if it happens in IDA).
bool SMPFunction::WritesAboveLocalFrame(const STARSOpndTypePtr &DestOp, bool OpNormalized, STARS_ea_t InstAddr) {
bool InArgWrite = false;
int BaseReg, IndexReg;
uint16_t ScaleFactor;
STARS_ea_t offset;
long SignedOffset;
MDExtractAddressFields(DestOp, BaseReg, IndexReg, ScaleFactor, offset);
SignedOffset = (long) offset;
bool ESPrelative = (BaseReg == MD_STACK_POINTER_REG) || (IndexReg == MD_STACK_POINTER_REG);
bool EBPrelative = this->UseFP && ((BaseReg == MD_FRAME_POINTER_REG) || (IndexReg == MD_FRAME_POINTER_REG));
assert(!EBPrelative || !OpNormalized); // stack operands should be normalized by now
``
Assertion is hit with `this->UseFP==false`, `ESPRelative==false`, `EBPrelative==true`, and `OpNoramlized==false`. Instruction in question is a `lea rdx, [r15 + rbp]` instruction in function `CRYPTO_cbc128_decrypt` at address `0x1ce4b1`.
@clc Please report if you're available to look at this, as it's a priority.
Edited by Jason Hiser