From a3b6b166f86e8c6c64e7fdd2158d411278ead372 Mon Sep 17 00:00:00 2001
From: clc5q <clc5q@git.zephyr-software.com>
Date: Sun, 17 Jan 2016 04:13:42 +0000
Subject: [PATCH] Replace uses of GetOpDataSize() with
 STARS_op_t::GetByteWidth() and continue to improve function pointer
 shadowing.

Former-commit-id: d00329fbdffe72415d2749bfd49c507bf4b2bdf2
---
 src/base/SMPBasicBlock.cpp                    | 12 ++--
 src/base/SMPDataFlowAnalysis.cpp              |  4 +-
 src/base/SMPFunction.cpp                      |  4 +-
 src/base/SMPInstr.cpp                         | 20 +++---
 tests/commit/save-busybox.psexe.infoannot     |  8 ++-
 ...save-ffmpeg.psexe.infoannot.REMOVED.git-id |  2 +-
 .../save-gnome-keyring-daemon.psexe.infoannot |  2 +
 tests/commit/save-nginx.psexe.infoannot       | 72 +++++++++++++++++--
 tests/commit/save-openssl.psexe.infoannot     | 66 +++++++++++++++--
 9 files changed, 155 insertions(+), 35 deletions(-)

diff --git a/src/base/SMPBasicBlock.cpp b/src/base/SMPBasicBlock.cpp
index 91c2a462..c5dba8c7 100644
--- a/src/base/SMPBasicBlock.cpp
+++ b/src/base/SMPBasicBlock.cpp
@@ -5010,7 +5010,7 @@ bool SMPBasicBlock::IsBenignOverflowDEF(const STARSOpndTypePtr &DefOp, int DefSS
 
 	if (!benign) {
 		STARSOpndTypePtr UseOp = DefInst->GetUseOnlyAddSubOp();
-		size_t UseBitWidth = 8 * GetOpDataSize(UseOp);
+		size_t UseBitWidth = 8 * UseOp->GetByteWidth();
 		// IDIOM 28: Normal width arithmetic produces value that is then involved in subword arithmetic.
 		//  Ignore overflow or underflow on the subword arithmetic.
 		if ((UseOp->IsRegOp()) && (UseBitWidth < MD_NORMAL_MACHINE_BITWIDTH)) { // UseOp is candidate for IDIOM 28.
@@ -5027,7 +5027,7 @@ bool SMPBasicBlock::IsBenignOverflowDEF(const STARSOpndTypePtr &DefOp, int DefSS
 				// If UseOp was DEFed by addition or subtraction, examine the bit width of the operation.
 				STARSOpndTypePtr UseDefDEFOperand = UseDefInst->GetDefUseAddSubOp();
 				if (UseDefDEFOperand->IsRegOp()) {
-					size_t UseDefBitWidth = 8 * GetOpDataSize(UseDefDEFOperand);
+					size_t UseDefBitWidth = 8 * UseDefDEFOperand->GetByteWidth();
 					if (UseDefBitWidth > UseBitWidth) {
 						// Current instruction uses a truncated portion of the previous DEF.
 						//  The current add or subtract might overflow or underflow, but this
@@ -5041,7 +5041,7 @@ bool SMPBasicBlock::IsBenignOverflowDEF(const STARSOpndTypePtr &DefOp, int DefSS
 		}
 		if (!benign && (DefOp->IsRegOp())) {
 			STARSOpndTypePtr OriginalDefOp = DefInst->GetDefUseAddSubOp();
-			size_t OriginalDefBitWidth = 8 * GetOpDataSize(OriginalDefOp);
+			size_t OriginalDefBitWidth = 8 * OriginalDefOp->GetByteWidth();
 			if (OriginalDefBitWidth < MD_NORMAL_MACHINE_BITWIDTH) { // DefOp is candidate for IDIOM 28.
 				set<DefOrUse, LessDefUse>::iterator UseIter = DefInst->FindUse(DefOp);
 				assert(UseIter != DefInst->GetLastUse());
@@ -5055,7 +5055,7 @@ bool SMPBasicBlock::IsBenignOverflowDEF(const STARSOpndTypePtr &DefOp, int DefSS
 					// If DefOp was DEFed by addition or subtraction, examine the bit width of the operation.
 					STARSOpndTypePtr DefUseDefDEFOperand = DefUseDefInst->GetDefUseAddSubOp();
 					if (DefUseDefDEFOperand->IsRegOp()) {
-						size_t DefUseDefBitWidth = 8 * GetOpDataSize(DefUseDefDEFOperand);
+						size_t DefUseDefBitWidth = 8 * DefUseDefDEFOperand->GetByteWidth();
 						if (DefUseDefBitWidth > OriginalDefBitWidth) {
 							// Current instruction uses a truncated portion of the previous DEF.
 							//  The current add or subtract might overflow or underflow, but this
@@ -5199,7 +5199,7 @@ bool SMPBasicBlock::IsBenignTruncationDEF(const STARSOpndTypePtr &DefOp, int Def
 
 				FoundTruncationDef = true;
 				TruncationInst = CurrInst;
-				UseBitWidth = 8 * GetOpDataSize(UseOp);
+				UseBitWidth = 8 * UseOp->GetByteWidth();
 				if (MD_NORMAL_MACHINE_BITWIDTH <= UseBitWidth) {
 					// Cannot be truncation; exit.
 					break;
@@ -5260,7 +5260,7 @@ bool SMPBasicBlock::IsBenignTruncationDEF(const STARSOpndTypePtr &DefOp, int Def
 				if (UseIter2 != CurrInst->GetLastUse()) {
 					if ((CurrInst->GetOptType() == 3) && (!CurrInst->MDIsSignedLoad(SignMask))) {
 						UseOp2 = UseIter2->GetOp();
-						size_t UseBitWidth2 = 8 * GetOpDataSize(UseOp2);
+						size_t UseBitWidth2 = 8 * UseOp2->GetByteWidth();
 						if (UseBitWidth == UseBitWidth2) {
 							// Entire pattern matched. Moved lower bits, shifted or rotated by
 							//  stored bit width, then moved new lower bits.
diff --git a/src/base/SMPDataFlowAnalysis.cpp b/src/base/SMPDataFlowAnalysis.cpp
index 64ecc326..d9bb5760 100644
--- a/src/base/SMPDataFlowAnalysis.cpp
+++ b/src/base/SMPDataFlowAnalysis.cpp
@@ -259,7 +259,7 @@ char GetRegDtyp(uint16_t RegNum, bool Has64BitOpnds) {
 unsigned short ComputeOperandBitWidthMask(const STARSOpndTypePtr &CurrOp, size_t DataSize) {
 	unsigned short BitWidthMask = 32;
 	if (0 == DataSize)
-		DataSize = GetOpDataSize(CurrOp);
+		DataSize = CurrOp->GetByteWidth();
 	if (4 == DataSize)
 		BitWidthMask = FG_MASK_BITWIDTH_32;
 	else if (8 == DataSize)
@@ -412,7 +412,7 @@ void CanonicalizeOpnd(STARSOpndTypePtr &TempOp) {
 // If TempOp is a register, call MDCanonicalizeSubReg() on it.
 void CanonicalizeOpnd(STARSOpndTypePtr &TempOp) {
 	if (TempOp->IsRegOp()) {
-		if (4 > GetOpDataSize(TempOp)) {
+		if (4 > TempOp->GetByteWidth()) {
 			TempOp->SetReg(MDCanonicalizeSubReg(TempOp->GetReg()));
 		}
 		// Convert 32-bit regs to 64-bit on 64-bit binaries.
diff --git a/src/base/SMPFunction.cpp b/src/base/SMPFunction.cpp
index 2eafd0fc..689be030 100644
--- a/src/base/SMPFunction.cpp
+++ b/src/base/SMPFunction.cpp
@@ -3043,7 +3043,7 @@ bool SMPFunction::MDGetStackOffsetAndSize(SMPInstr *Instr, const STARSOpndTypePt
 		SignedOffset -= BaseValue; // convert to StackFrameMap index
 		offset = (STARS_ea_t) SignedOffset; // write back to outgoing argument
 		// Get size of data written
-		DataSize = GetOpDataSize(TempOp);
+		DataSize = TempOp->GetByteWidth();
 		FP = false;
 		Indexed = ((BaseReg != STARS_x86_R_none) && (IndexReg != STARS_x86_R_none)); // two regs used
 		unsigned short opcode = Instr->GetIDAOpcode();
@@ -3061,7 +3061,7 @@ bool SMPFunction::MDGetStackOffsetAndSize(SMPInstr *Instr, const STARSOpndTypePt
 		SignedOffset += this->GetFramePtrStackDelta(); // base offsets from entry ESP value, e.g. ebp-4 == esp-8
 		SignedOffset -= BaseValue; // convert to StackFrameMap index
 		offset = (STARS_ea_t) SignedOffset;
-		DataSize = GetOpDataSize(TempOp);
+		DataSize = TempOp->GetByteWidth();
 		FP = true;
 		Indexed = ((BaseReg != STARS_x86_R_none) && (IndexReg != STARS_x86_R_none)); // two regs used
 #if 0
diff --git a/src/base/SMPInstr.cpp b/src/base/SMPInstr.cpp
index 17686e8f..57ce2ea4 100644
--- a/src/base/SMPInstr.cpp
+++ b/src/base/SMPInstr.cpp
@@ -2359,7 +2359,7 @@ void SMPInstr::MDEmitSPARKAdaCompareOrTest(FILE *OutFile) {
 	CurrRT = CurrRT->GetRightTree();
 	STARSOpndTypePtr LeftOp = CurrRT->GetLeftOperandNoNorm();
 	STARSOpndTypePtr RightOp = CurrRT->GetRightOperandNoNorm();
-	std::size_t LeftBitWidth = 8 * GetOpDataSize(LeftOp);
+	std::size_t LeftBitWidth = 8 * LeftOp->GetByteWidth();
 
 	// ZeroFlag
 	PrintSPARKIndentTabs(OutFile);
@@ -3970,7 +3970,7 @@ bool SMPInstr::MDIsStackPtrSaveOrRestore(bool UseFP, STARS_sval_t FPDelta, bool
 			break; // not a regular RTL
 		}
 		STARSOpndTypePtr LeftOp = CurrRT->GetLeftOperand();
-		if (4 > GetOpDataSize(LeftOp)) {
+		if (4 > LeftOp->GetByteWidth()) {
 			continue; // Not tracking copies of less than the full stack or frame pointer
 			// NOTE: We hard code 4 bytes because we will track bottom 32 bits, often seen in 64-bit code.
 		}
@@ -11075,7 +11075,7 @@ void SMPInstr::EmitAnnotations(bool UseFP, bool AllocSeen, bool NeedsFrame, FILE
 	// Emit informational annotations for memory operands.
 	if (MemSrc) {
 		STARSOpndTypePtr MemSrcOp = this->MDGetMemUseOp();
-		std::size_t SrcBitWidth = 8 * GetOpDataSize(MemSrcOp);
+		std::size_t SrcBitWidth = 8 * MemSrcOp->GetByteWidth();
 		STARSOpndTypePtr AnnotDefOp = CloneIfNecessary(MemSrcOp, UseFP);
 		// Need to unnormalize stack memory DEFs and USEs before printing annotations.
 		this->MDGetUnnormalizedOp(AnnotDefOp);
@@ -11085,7 +11085,7 @@ void SMPInstr::EmitAnnotations(bool UseFP, bool AllocSeen, bool NeedsFrame, FILE
 	}
 	if (MemDest) {
 		STARSOpndTypePtr MemDestOp = this->MDGetMemDefOp();
-		std::size_t DestBitWidth = 8 * GetOpDataSize(MemDestOp);
+		std::size_t DestBitWidth = 8 * MemDestOp->GetByteWidth();
 		STARSOpndTypePtr AnnotDefOp = CloneIfNecessary(MemDestOp, UseFP);
 		// Need to unnormalize stack memory DEFs and USEs before printing annotations.
 		this->MDGetUnnormalizedOp(AnnotDefOp);
@@ -11361,7 +11361,7 @@ void SMPInstr::EmitTypeAnnotations(bool UseFP, bool AllocSeen, bool NeedsFrame,
 	// Emit informational annotations for memory operands.
 	if (MemSrc) {
 		STARSOpndTypePtr MemSrcOp = this->MDGetMemUseOp();
-		std::size_t SrcBitWidth = 8 * GetOpDataSize(MemSrcOp);
+		std::size_t SrcBitWidth = 8 * MemSrcOp->GetByteWidth();
 		STARSOpndTypePtr AnnotDefOp = CloneIfNecessary(MemSrcOp, UseFP);
 		// Need to unnormalize stack memory DEFs and USEs before printing annotations.
 		this->MDGetUnnormalizedOp(AnnotDefOp);
@@ -11371,7 +11371,7 @@ void SMPInstr::EmitTypeAnnotations(bool UseFP, bool AllocSeen, bool NeedsFrame,
 	}
 	if (MemDest) {
 		STARSOpndTypePtr MemDestOp = this->MDGetMemDefOp();
-		std::size_t DestBitWidth = 8 * GetOpDataSize(MemDestOp);
+		std::size_t DestBitWidth = 8 * MemDestOp->GetByteWidth();
 		STARSOpndTypePtr AnnotDefOp = CloneIfNecessary(MemDestOp, UseFP);
 		// Need to unnormalize stack memory DEFs and USEs before printing annotations.
 		this->MDGetUnnormalizedOp(AnnotDefOp);
@@ -12388,7 +12388,7 @@ void SMPInstr::EmitIntegerErrorAnnotations(FILE *InfoAnnotFile, list<std::size_t
 		// Get the Def bit width and maximum bit width for special cases.
 		DefWidthInfo = DefFGInfo.SizeInfo;
 		DefMaxBitWidth = LargestBitWidthFromMask(DefWidthInfo); // max width over all defs
-		DefBitWidth = 8 * GetOpDataSize(DefOp); // width of def in current instruction
+		DefBitWidth = 8 * DefOp->GetByteWidth(); // width of def in current instruction
 		PartialStore = (DefBitWidth < DefMaxBitWidth);
 
 		if (StackDestination) {
@@ -12414,7 +12414,7 @@ void SMPInstr::EmitIntegerErrorAnnotations(FILE *InfoAnnotFile, list<std::size_t
 			|| ((SourceDefBitWidth == 0) && (UseMaxBitWidth > UseBitWidth))) {
 			// Original DEF (or subsequent USE) was wider than what we are storing now.
 			if (SourceDefBitWidth == 0) { // Convert for printing annotation.
-				SourceDefBitWidth = 8 * GetOpDataSize(SearchOp);
+				SourceDefBitWidth = 8 * SearchOp->GetByteWidth();
 			}
 			if ((SourceDefBitWidth == 64) && (SearchOp->GetByteWidth() < 8)) {
 				// Unlike overflows, we don't have the original DefOp that is 64 bits;
@@ -16226,7 +16226,7 @@ bool SMPInstr::BuildPopRTL(void) {
 				TempRT->SetParentInst(this);
 				TempRT->SetLeftOperand(TempOp);
 				TempRT->SetOperator(SMP_ASSIGN);
-				OpSize = GetOpDataSize(TempOp);
+				OpSize = TempOp->GetByteWidth();
 				STARSOpndTypePtr StackOp = this->STARSInstPtr->MakeMemDisplacementOpnd(STARS_x86_R_sp, STARS_x86_R_none, 0, 0);
 				StackOp->SetByteWidth(OpSize);
 				TempRT->SetRightOperand(StackOp);
@@ -16381,7 +16381,7 @@ bool SMPInstr::BuildPushRTL(void) {
 		if (this->STARSInstPtr->IsUseOpnd(OpNum)) { // USE
 			if (MDKnownOperandType(TempOp)) {
 				SourceFound = true;
-				OpSize = GetOpDataSize(TempOp);
+				OpSize = TempOp->GetByteWidth();
 				TempRT = new SMPRegTransfer;
 				TempRT->SetParentInst(this);
 				TempRT->SetRightOperand(TempOp);
diff --git a/tests/commit/save-busybox.psexe.infoannot b/tests/commit/save-busybox.psexe.infoannot
index bfcfb342..79f4b53f 100644
--- a/tests/commit/save-busybox.psexe.infoannot
+++ b/tests/commit/save-busybox.psexe.infoannot
@@ -1866,6 +1866,8 @@
             4203f3    669 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 0 ARG3 96 ARG4 1 ARG5 1 
             4203f3    669 FUNC PROBLEM sub_4203F3 CALLUNRESOLVED 
             42053e      3 INSTR CHECK UNDERFLOW UNSIGNED 64  RSI ZZ IDIOM 19 sub     rsi, rbp 
+            4203f3      2 INSTR FPTRSHADOW  RDX SHADOWID 1
+            420653      3 INSTR FPTRCHECK  R15 SHADOWID 1
             420690     16 FUNC RETURNTYPE RAX 0
             420690     16 FUNC INARGS    6  ARG0 0 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             4206a0     16 FUNC RETURNTYPE RAX 0
@@ -2218,6 +2220,8 @@
             427834      6 INSTR CHECK OVERFLOW SIGNED 32 EDX ZZ imul    edx, ebx, 3E8h  ; timeout 
             42793d    272 FUNC RETURNTYPE RAX 0
             42793d    272 FUNC INARGS    6  ARG0 2 ARG1 1 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
+            42793d      2 INSTR FPTRSHADOW  RDI SHADOWID 2
+            4279d2      3 INSTR FPTRCHECK  R12 SHADOWID 2
             427a4d     60 FUNC RETURNTYPE RAX 0
             427a4d     60 FUNC INARGS    6  ARG0 1 ARG1 0 ARG2 0 ARG3 1 ARG4 0 ARG5 0 
             427a89    260 FUNC RETURNTYPE RAX 1
@@ -2495,8 +2499,8 @@
             42ef01    503 FUNC PROBLEM sub_42EF01 CALLUNRESOLVED 
             42ef9f      4 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 RBP+56 ZZ IDIOM 18 MEMORYSINK lea     rsi, [rbp+38h]  ; src 
             42efbb      7 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 RBP+184 ZZ IDIOM 18 MEMORYSINK lea     rsi, [rbp+0B8h] ; src 
-            42ef01      2 INSTR FPTRSHADOW  RDX SHADOWID 1
-            42f0b3      5 INSTR FPTRCHECK  RDX SHADOWID 1
+            42ef01      2 INSTR FPTRSHADOW  RDX SHADOWID 3
+            42f0b3      5 INSTR FPTRCHECK  RDX SHADOWID 3
             42f0f8    175 FUNC RETURNTYPE RAX 0
             42f0f8    175 FUNC PROBLEM sub_42F0F8 STACKANALYSIS 
             42f1a7     64 FUNC RETURNTYPE RAX 0
diff --git a/tests/commit/save-ffmpeg.psexe.infoannot.REMOVED.git-id b/tests/commit/save-ffmpeg.psexe.infoannot.REMOVED.git-id
index 62ec0e54..d17c454b 100644
--- a/tests/commit/save-ffmpeg.psexe.infoannot.REMOVED.git-id
+++ b/tests/commit/save-ffmpeg.psexe.infoannot.REMOVED.git-id
@@ -1 +1 @@
-a37ea252eccf885935feab76a6986f944ee557f9
\ No newline at end of file
+82e73428cdde8720417b7aca9aa0ff46346bb823
\ No newline at end of file
diff --git a/tests/commit/save-gnome-keyring-daemon.psexe.infoannot b/tests/commit/save-gnome-keyring-daemon.psexe.infoannot
index 58d8607e..805bcbe3 100644
--- a/tests/commit/save-gnome-keyring-daemon.psexe.infoannot
+++ b/tests/commit/save-gnome-keyring-daemon.psexe.infoannot
@@ -1787,6 +1787,8 @@
             422c50    118 FUNC RETURNTYPE RAX 4
             422c50    118 FUNC INARGS    6  ARG0 4 ARG1 16 ARG2 4 ARG3 1 ARG4 1 ARG5 0 
             422c50    118 FUNC PROBLEM sub_422C50 CALLUNRESOLVED 
+            422c5d      4 INSTR FPTRSHADOW  [EDI+16] SHADOWID 1
+            422c72      2 INSTR FPTRCHECK  RAX SHADOWID 1
             422cd0     59 FUNC RETURNTYPE RAX 0
             422cd0     59 FUNC INARGS    6  ARG0 0 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             422d10    299 FUNC RETURNTYPE RAX 4
diff --git a/tests/commit/save-nginx.psexe.infoannot b/tests/commit/save-nginx.psexe.infoannot
index 59876277..33e83c4e 100644
--- a/tests/commit/save-nginx.psexe.infoannot
+++ b/tests/commit/save-nginx.psexe.infoannot
@@ -2426,6 +2426,12 @@
             43bf6b    878 FUNC INARGS    6  ARG0 4 ARG1 2 ARG2 1 ARG3 4 ARG4 1 ARG5 4 
             43bf6b    878 FUNC PROBLEM ngx_http_read_client_request_body CALLUNRESOLVED 
             43c16a      4 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R13+32 ZZ IDIOM 18 MEMORYSINK lea     rsi, [rb+20h]   ; free 
+            43bf6b      5 INSTR FPTRSHADOW  RSI SHADOWID 1
+            43bfc1      2 INSTR FPTRCHECK  RBP SHADOWID 1
+            43bf6b      5 INSTR FPTRSHADOW  RSI SHADOWID 2
+            43c026      2 INSTR FPTRCHECK  RBP SHADOWID 2
+            43bf6b      5 INSTR FPTRSHADOW  RSI SHADOWID 3
+            43c1ec      2 INSTR FPTRCHECK  RBP SHADOWID 3
             43c2d9     63 FUNC RETURNTYPE RAX 96
             43c2d9     63 FUNC INARGS    6  ARG0 4 ARG1 0 ARG2 0 ARG3 4 ARG4 0 ARG5 4 
             43c318    285 FUNC RETURNTYPE RAX 1
@@ -4222,8 +4228,8 @@
             468e40      8 INSTR CHECK OVERFLOW NOFLAGUNKNOWNSIGN 64 RDX*8 ZZ lea     rsi, ds:0[rdx*8]; size 
             468fc9      4 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 RBX+4 ZZ lea     rsi, [len+4]    ; size 
             4692cd      4 INSTR CHECK OVERFLOW UNSIGNED 64  RDI ZZ IDIOM 18 MEMORYSINK add     rdi, 2          ; dest 
-            4690a8      3 INSTR FPTRSHADOW  RAX SHADOWID 1
-            469155      2 INSTR FPTRCHECK  [EAX] SHADOWID 1
+            4690a8      3 INSTR FPTRSHADOW  RAX SHADOWID 4
+            469155      2 INSTR FPTRCHECK  [EAX] SHADOWID 4
             469453   3920 FUNC RETURNTYPE RAX 1
             469453   3920 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 4 ARG3 0 ARG4 0 ARG5 0 
             46980a      7 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 RBX+192 ZZ IDIOM 18 MEMORYSINK lea     rsi, [conf+0C0h]; path 
@@ -5151,6 +5157,8 @@
             47d552      7 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 RBX+192 ZZ IDIOM 18 MEMORYSINK lea     rdi, [rbx+0C0h] 
             47d600      7 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R13+272 ZZ IDIOM 18 MEMORYSINK lea     rdx, [r13+110h] 
             47d607      7 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R13+264 ZZ IDIOM 18 MEMORYSINK lea     rsi, [r13+108h] 
+            47d536      5 INSTR FPTRSHADOW  [R12+88] SHADOWID 5
+            47d550      2 INSTR FPTRCHECK  RAX SHADOWID 5
             47d620      8 FUNC RETURNTYPE RAX 0
             47d620      8 FUNC INARGS    6  ARG0 4 ARG1 96 ARG2 4 ARG3 4 ARG4 1 ARG5 1 
             47d630     78 FUNC RETURNTYPE RAX 4
@@ -5434,6 +5442,8 @@
             485630    284 FUNC RETURNTYPE RAX 1
             485630    284 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 96 ARG3 96 ARG4 96 ARG5 96 
             485630    284 FUNC PROBLEM SSL_srp_server_param_with_username CALLUNRESOLVED 
+            485659      7 INSTR FPTRSHADOW  [EDI+688] SHADOWID 6
+            485672      2 INSTR FPTRCHECK  RAX SHADOWID 6
             485750    231 FUNC RETURNTYPE RAX 1
             485750    231 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 4 ARG3 4 ARG4 4 ARG5 4 
             4857eb      8 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R12+776 ZZ IDIOM 18 MEMORYSINK lea     rcx, [r12+308h] 
@@ -5588,6 +5598,10 @@
             489474      5 INSTR CHECK OVERFLOW NOFLAGUNKNOWNSIGN 64 R13+RDX+20 ZZ IDIOM 18 MEMORYSINK lea     rsi, [r13+rdx+14h] 
             4894e3      4 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R13+8 ZZ IDIOM 18 MEMORYSINK lea     rsi, [r13+8]    ; src 
             4894e7      2 INSTR CHECK SIGNEDNESS UNSIGNED 32 ECX ZZ mov     edx, ecx        ; n 
+            489065      7 INSTR FPTRSHADOW  [EBX+152] SHADOWID 7
+            48908f      2 INSTR FPTRCHECK  RAX SHADOWID 7
+            48827c      7 INSTR FPTRSHADOW  [EBX+152] SHADOWID 8
+            4882a9      3 INSTR FPTRCHECK  R10 SHADOWID 8
             489900      6 FUNC RETURNTYPE RAX 1
             489900      6 FUNC INARGS    6  ARG0 0 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             489910      6 FUNC RETURNTYPE RAX 1
@@ -6040,6 +6054,10 @@
             49b735      7 INSTR CHECK OVERFLOW UNSIGNED 64  RSI ZZ IDIOM 18 MEMORYSINK add     rsi, [rbp+130h] ; src 
             49b73c      3 INSTR CHECK SIGNEDNESS UNSIGNED 64 R12 ZZ mov     edx, r12d       ; n 
             49b911      8 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R12+1000 ZZ IDIOM 32 lea     edx, [r12+3E8h] 
+            49aac8      7 INSTR FPTRSHADOW  [EBX+152] SHADOWID 9
+            49ab11      2 INSTR FPTRCHECK  RAX SHADOWID 9
+            49b4b1      7 INSTR FPTRSHADOW  [EBX+152] SHADOWID 10
+            49b4e4      2 INSTR FPTRCHECK  RAX SHADOWID 10
             49bae0    287 FUNC RETURNTYPE RAX 96
             49bae0    287 FUNC INARGS    6  ARG0 4 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 4 
             49bae0    287 FUNC PROBLEM ssl3_dispatch_alert CALLUNRESOLVED 
@@ -6088,6 +6106,8 @@
             49c650   1038 FUNC PROBLEM ssl3_get_message CALLUNRESOLVED 
             49c771      3 INSTR CHECK OVERFLOW SIGNED 32  RDX ZZ add     edx, 4 
             49c96b      3 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 RCX+4 ZZ lea     esi, [rcx+4] 
+            49c830      7 INSTR FPTRSHADOW  [EBX+152] SHADOWID 11
+            49c7ec      2 INSTR FPTRCHECK  RAX SHADOWID 11
             49ca60    157 FUNC RETURNTYPE RAX 1
             49ca60    157 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 96 ARG3 96 ARG4 96 ARG5 96 
             49cb00     24 FUNC RETURNTYPE RAX 1
@@ -6294,6 +6314,10 @@
             4a2a2b      7 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 RCX+632 ZZ IDIOM 18 MEMORYSINK lea     rsi, [rcx+278h] 
             4a3236      7 INSTR CHECK OVERFLOW UNSIGNED 64  RSI ZZ IDIOM 18 MEMORYSINK add     rsi, [r13+130h] ; src 
             4a32b9      8 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R12+1000 ZZ IDIOM 32 lea     edx, [r12+3E8h] 
+            4a2add      7 INSTR FPTRSHADOW  [EBX+152] SHADOWID 12
+            4a2b27      2 INSTR FPTRCHECK  RAX SHADOWID 12
+            4a3003      7 INSTR FPTRSHADOW  [EBX+152] SHADOWID 13
+            4a3035      2 INSTR FPTRCHECK  RAX SHADOWID 13
             4a3500    238 FUNC RETURNTYPE RAX 1
             4a3500    238 FUNC INARGS    6  ARG0 4 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             4a3500    238 FUNC PROBLEM dtls1_write_app_data_bytes CALLUNRESOLVED 
@@ -7330,6 +7354,8 @@
             4bbf20     79 FUNC RETURNTYPE RAX 1
             4bbf20     79 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             4bbf20     79 FUNC PROBLEM RSA_set_method CALLUNRESOLVED 
+            4bbf51      4 INSTR FPTRSHADOW  [EBP+56] SHADOWID 14
+            4bbf61      2 INSTR FPTRCHECK  RAX SHADOWID 14
             4bbf70    587 FUNC RETURNTYPE RAX 4
             4bbf70    587 FUNC INARGS    6  ARG0 4 ARG1 0 ARG2 0 ARG3 1 ARG4 1 ARG5 0 
             4bbf70    587 FUNC PROBLEM RSA_new_method CALLUNRESOLVED 
@@ -7505,6 +7531,8 @@
             4be450     91 FUNC RETURNTYPE RAX 1
             4be450     91 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             4be450     91 FUNC PROBLEM DH_set_method CALLUNRESOLVED 
+            4be48a      4 INSTR FPTRSHADOW  [EBP+32] SHADOWID 15
+            4be49d      2 INSTR FPTRCHECK  RAX SHADOWID 15
             4be4b0    440 FUNC RETURNTYPE RAX 4
             4be4b0    440 FUNC INARGS    6  ARG0 0 ARG1 0 ARG2 0 ARG3 1 ARG4 96 ARG5 96 
             4be4b0    440 FUNC PROBLEM DH_new CALLUNRESOLVED 
@@ -9176,6 +9204,8 @@
             4d5f00    719 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 1 ARG3 1 ARG4 4 ARG5 1 
             4d5f00    719 FUNC PROBLEM int_ctx_new CALLUNRESOLVED 
             4d5fac      4 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 RBP+8 ZZ IDIOM 18 MEMORYSINK lea     rdi, [rbp+8] 
+            4d5fca      4 INSTR FPTRSHADOW  [R13+8] SHADOWID 16
+            4d5fde      2 INSTR FPTRCHECK  RAX SHADOWID 16
             4d61d0    132 FUNC RETURNTYPE RAX 1
             4d61d0    132 FUNC INARGS    6  ARG0 0 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             4d6260    497 FUNC RETURNTYPE RAX 4
@@ -9252,31 +9282,43 @@
             4d6c60    110 FUNC RETURNTYPE RAX 1
             4d6c60    110 FUNC INARGS    6  ARG0 4 ARG1 96 ARG2 0 ARG3 1 ARG4 96 ARG5 1 
             4d6c60    110 FUNC PROBLEM EVP_PKEY_sign_init CALLUNRESOLVED 
+            4d6c78      4 INSTR FPTRSHADOW  [EAX+64] SHADOWID 17
+            4d6c8d      2 INSTR FPTRCHECK  RDX SHADOWID 17
             4d6cd0    294 FUNC RETURNTYPE RAX 0
             4d6cd0    294 FUNC PROBLEM EVP_PKEY_sign JUMPUNRESOLVED 
             4d6e00    110 FUNC RETURNTYPE RAX 1
             4d6e00    110 FUNC INARGS    6  ARG0 4 ARG1 96 ARG2 0 ARG3 1 ARG4 96 ARG5 1 
             4d6e00    110 FUNC PROBLEM EVP_PKEY_verify_init CALLUNRESOLVED 
+            4d6e18      4 INSTR FPTRSHADOW  [EAX+80] SHADOWID 18
+            4d6e2d      2 INSTR FPTRCHECK  RDX SHADOWID 18
             4d6e70    134 FUNC RETURNTYPE RAX 0
             4d6e70    134 FUNC PROBLEM EVP_PKEY_verify JUMPUNRESOLVED 
             4d6f00    110 FUNC RETURNTYPE RAX 1
             4d6f00    110 FUNC INARGS    6  ARG0 4 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             4d6f00    110 FUNC PROBLEM EVP_PKEY_verify_recover_init CALLUNRESOLVED 
+            4d6f18      4 INSTR FPTRSHADOW  [EAX+96] SHADOWID 19
+            4d6f2d      2 INSTR FPTRCHECK  RDX SHADOWID 19
             4d6f70    294 FUNC RETURNTYPE RAX 0
             4d6f70    294 FUNC PROBLEM EVP_PKEY_verify_recover JUMPUNRESOLVED 
             4d70a0    126 FUNC RETURNTYPE RAX 1
             4d70a0    126 FUNC INARGS    6  ARG0 4 ARG1 1 ARG2 0 ARG3 1 ARG4 4 ARG5 1 
             4d70a0    126 FUNC PROBLEM EVP_PKEY_encrypt_init CALLUNRESOLVED 
+            4d70bb      7 INSTR FPTRSHADOW  [EAX+144] SHADOWID 20
+            4d70d3      2 INSTR FPTRCHECK  RDX SHADOWID 20
             4d7120    294 FUNC RETURNTYPE RAX 0
             4d7120    294 FUNC PROBLEM EVP_PKEY_encrypt JUMPUNRESOLVED 
             4d7250    126 FUNC RETURNTYPE RAX 1
             4d7250    126 FUNC INARGS    6  ARG0 4 ARG1 1 ARG2 0 ARG3 1 ARG4 4 ARG5 1 
             4d7250    126 FUNC PROBLEM EVP_PKEY_decrypt_init CALLUNRESOLVED 
+            4d726b      7 INSTR FPTRSHADOW  [EAX+160] SHADOWID 21
+            4d7283      2 INSTR FPTRCHECK  RDX SHADOWID 21
             4d72d0    294 FUNC RETURNTYPE RAX 0
             4d72d0    294 FUNC PROBLEM EVP_PKEY_decrypt JUMPUNRESOLVED 
             4d7400    126 FUNC RETURNTYPE RAX 1
             4d7400    126 FUNC INARGS    6  ARG0 4 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             4d7400    126 FUNC PROBLEM EVP_PKEY_derive_init CALLUNRESOLVED 
+            4d741b      7 INSTR FPTRSHADOW  [EAX+176] SHADOWID 22
+            4d7433      2 INSTR FPTRCHECK  RDX SHADOWID 22
             4d7480    562 FUNC RETURNTYPE RAX 1
             4d7480    562 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 0 ARG3 0 ARG4 96 ARG5 96 
             4d7480    562 FUNC PROBLEM EVP_PKEY_derive_set_peer CALLUNRESOLVED 
@@ -9288,12 +9330,16 @@
             4d7800    110 FUNC RETURNTYPE RAX 1
             4d7800    110 FUNC INARGS    6  ARG0 4 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             4d7800    110 FUNC PROBLEM EVP_PKEY_paramgen_init CALLUNRESOLVED 
+            4d7818      4 INSTR FPTRSHADOW  [EAX+32] SHADOWID 23
+            4d782d      2 INSTR FPTRCHECK  RDX SHADOWID 23
             4d7870    259 FUNC RETURNTYPE RAX 1
             4d7870    259 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             4d7870    259 FUNC PROBLEM EVP_PKEY_paramgen CALLUNRESOLVED 
             4d7980    110 FUNC RETURNTYPE RAX 1
             4d7980    110 FUNC INARGS    6  ARG0 4 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             4d7980    110 FUNC PROBLEM EVP_PKEY_keygen_init CALLUNRESOLVED 
+            4d7998      4 INSTR FPTRSHADOW  [EAX+48] SHADOWID 24
+            4d79ad      2 INSTR FPTRCHECK  RDX SHADOWID 24
             4d79f0    259 FUNC RETURNTYPE RAX 1
             4d79f0    259 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 0 ARG3 1 ARG4 96 ARG5 96 
             4d79f0    259 FUNC PROBLEM EVP_PKEY_keygen CALLUNRESOLVED 
@@ -9308,6 +9354,8 @@
             4d7b70    225 FUNC RETURNTYPE RAX 1
             4d7b70    225 FUNC INARGS    6  ARG0 1 ARG1 1 ARG2 4 ARG3 0 ARG4 96 ARG5 96 
             4d7b70    225 FUNC PROBLEM EVP_PKEY_new_mac_key CALLUNRESOLVED 
+            4d7bb3      4 INSTR FPTRSHADOW  [EAX+48] SHADOWID 25
+            4d7bc6      2 INSTR FPTRCHECK  RAX SHADOWID 25
             4d7c60    454 FUNC RETURNTYPE RAX 1
             4d7c60    454 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 4 ARG3 1 ARG4 96 ARG5 1 
             4d7c60    454 FUNC PROBLEM do_sigver_init CALLUNRESOLVED 
@@ -11805,6 +11853,8 @@
             5014e0    270 FUNC RETURNTYPE RAX 96
             5014e0    270 FUNC INARGS    6  ARG0 4 ARG1 0 ARG2 0 ARG3 1 ARG4 96 ARG5 96 
             5014e0    270 FUNC PROBLEM COMP_CTX_new CALLUNRESOLVED 
+            501542      4 INSTR FPTRSHADOW  [EBX+16] SHADOWID 26
+            501552      2 INSTR FPTRCHECK  RAX SHADOWID 26
             5015f0     34 FUNC RETURNTYPE RAX 96
             5015f0     34 FUNC INARGS    6  ARG0 4 ARG1 96 ARG2 4 ARG3 1 ARG4 4 ARG5 96 
             5015f0     34 FUNC PROBLEM COMP_CTX_free CALLUNRESOLVED 
@@ -12510,6 +12560,12 @@
             5221f0    496 FUNC PROBLEM CRYPTO_gcm128_setiv CALLUNRESOLVED 
             522285      4 INSTR CHECK UNDERFLOW UNSIGNED 64  R13 ZZ IDIOM 31 sub     r13, 10h 
             522358      4 INSTR CHECK OVERFLOW UNSIGNED 64  RAX ZZ add     rax, 1 
+            522208      7 INSTR FPTRSHADOW  [EDI+352] SHADOWID 27
+            52231c      3 INSTR FPTRCHECK  R14 SHADOWID 27
+            522208      7 INSTR FPTRSHADOW  [EDI+352] SHADOWID 28
+            522367      3 INSTR FPTRCHECK  R14 SHADOWID 28
+            522208      7 INSTR FPTRSHADOW  [EDI+352] SHADOWID 29
+            522380      3 INSTR FPTRCHECK  R14 SHADOWID 29
             5223e0    411 FUNC RETURNTYPE RAX 1
             5223e0    411 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 1 ARG3 0 ARG4 96 ARG5 96 
             5223e0    411 FUNC PROBLEM CRYPTO_gcm128_aad CALLUNRESOLVED 
@@ -12827,8 +12883,8 @@
             52ee50     60 FUNC INARGS    6  ARG0 0 ARG1 1 ARG2 16 ARG3 1 ARG4 0 ARG5 0 
             52ee90    236 FUNC RETURNTYPE RAX 0
             52ee90    236 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 1 ARG3 4 ARG4 1 ARG5 96 
-            52eeb6      4 INSTR FPTRSHADOW  EAX SHADOWID 2
-            52ef36      4 INSTR FPTRCHECK  ECX SHADOWID 2
+            52eeb6      4 INSTR FPTRSHADOW  EAX SHADOWID 30
+            52ef36      4 INSTR FPTRCHECK  ECX SHADOWID 30
             52ef80    631 FUNC RETURNTYPE RAX 0
             52ef80    631 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 1 ARG3 4 ARG4 1 ARG5 96 
             52f09d      3 INSTR CHECK OVERFLOW UNKNOWNSIGN 64  RDI ZZ IDIOM 18 MEMORYSINK add     rdi, r12 
@@ -13434,6 +13490,8 @@
             540520     85 FUNC RETURNTYPE RAX 1
             540520     85 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             540520     85 FUNC PROBLEM DSA_set_method CALLUNRESOLVED 
+            540557      4 INSTR FPTRSHADOW  [EBP+48] SHADOWID 31
+            540567      2 INSTR FPTRCHECK  RAX SHADOWID 31
             540580    518 FUNC RETURNTYPE RAX 4
             540580    518 FUNC INARGS    6  ARG0 4 ARG1 0 ARG2 0 ARG3 1 ARG4 1 ARG5 0 
             540580    518 FUNC PROBLEM DSA_new_method CALLUNRESOLVED 
@@ -13694,6 +13752,8 @@
             5458c0    450 FUNC RETURNTYPE RAX 96
             5458c0    450 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 4 ARG3 96 ARG4 96 ARG5 4 
             5458c0    450 FUNC PROBLEM DSO_new_method CALLUNRESOLVED 
+            545958      4 INSTR FPTRSHADOW  [EBP+64] SHADOWID 32
+            545967      2 INSTR FPTRCHECK  RAX SHADOWID 32
             545a90      7 FUNC RETURNTYPE RAX 4
             545a90      7 FUNC INARGS    6  ARG0 0 ARG1 4 ARG2 0 ARG3 4 ARG4 0 ARG5 4 
             545aa0    294 FUNC RETURNTYPE RAX 1
@@ -16009,8 +16069,8 @@
             580e1a      3 INSTR CHECK OVERFLOW SIGNED 32  RSI ZZ add     esi, 1 
             580e61      4 INSTR CHECK OVERFLOW NOFLAGSIGNED 64 R10+2 ZZ lea     esi, [r10+2] 
             580ea0      3 INSTR CHECK OVERFLOW NOFLAGSIGNED 32 RAX+1 ZZ lea     esi, [rax+1] 
-            580ab2      4 INSTR FPTRSHADOW  EAX SHADOWID 3
-            580b4f      4 INSTR FPTRCHECK  ECX SHADOWID 3
+            580ab2      4 INSTR FPTRSHADOW  EAX SHADOWID 33
+            580b4f      4 INSTR FPTRCHECK  ECX SHADOWID 33
             580f60    672 FUNC RETURNTYPE RAX 1
             580f60    672 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 4 ARG3 96 ARG4 96 ARG5 96 
             581200   2198 FUNC RETURNTYPE RAX 4
diff --git a/tests/commit/save-openssl.psexe.infoannot b/tests/commit/save-openssl.psexe.infoannot
index cdfce1c3..9e6fe2af 100644
--- a/tests/commit/save-openssl.psexe.infoannot
+++ b/tests/commit/save-openssl.psexe.infoannot
@@ -1074,6 +1074,10 @@
             4509e4      5 INSTR CHECK OVERFLOW NOFLAGUNKNOWNSIGN 64 R13+RDX+20 ZZ IDIOM 18 MEMORYSINK lea     rsi, [r13+rdx+14h] 
             450a53      4 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R13+8 ZZ IDIOM 18 MEMORYSINK lea     rsi, [r13+8]    ; src 
             450a57      2 INSTR CHECK SIGNEDNESS UNSIGNED 32 ECX ZZ mov     edx, ecx        ; n 
+            4505d5      7 INSTR FPTRSHADOW  [EBX+152] SHADOWID 1
+            4505ff      2 INSTR FPTRCHECK  RAX SHADOWID 1
+            44f7ec      7 INSTR FPTRSHADOW  [EBX+152] SHADOWID 2
+            44f819      3 INSTR FPTRCHECK  R10 SHADOWID 2
             450e70      6 FUNC RETURNTYPE RAX 1
             450e70      6 FUNC INARGS    6  ARG0 0 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             450e80      6 FUNC RETURNTYPE RAX 1
@@ -1522,6 +1526,10 @@
             462c35      7 INSTR CHECK OVERFLOW UNSIGNED 64  RSI ZZ IDIOM 18 MEMORYSINK add     rsi, [rbp+130h] ; src 
             462c3c      3 INSTR CHECK SIGNEDNESS UNSIGNED 64 R12 ZZ mov     edx, r12d       ; n 
             462df1      8 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R12+1000 ZZ IDIOM 32 lea     edx, [r12+3E8h] 
+            461fc8      7 INSTR FPTRSHADOW  [EBX+152] SHADOWID 3
+            462011      2 INSTR FPTRCHECK  RAX SHADOWID 3
+            4629b1      7 INSTR FPTRSHADOW  [EBX+152] SHADOWID 4
+            4629e4      2 INSTR FPTRCHECK  RAX SHADOWID 4
             462fc0    287 FUNC RETURNTYPE RAX 96
             462fc0    287 FUNC INARGS    6  ARG0 4 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             462fc0    287 FUNC PROBLEM ssl3_dispatch_alert CALLUNRESOLVED 
@@ -1571,6 +1579,8 @@
             463b10   1030 FUNC PROBLEM ssl3_get_message CALLUNRESOLVED 
             463c31      3 INSTR CHECK OVERFLOW SIGNED 32  RDX ZZ add     edx, 4 
             463e23      3 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 RCX+4 ZZ lea     esi, [rcx+4] 
+            463cf0      7 INSTR FPTRSHADOW  [EBX+152] SHADOWID 5
+            463cac      2 INSTR FPTRCHECK  RAX SHADOWID 5
             463f20    157 FUNC RETURNTYPE RAX 1
             463f20    157 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 96 ARG3 96 ARG4 96 ARG5 96 
             463fc0     24 FUNC RETURNTYPE RAX 1
@@ -2019,6 +2029,10 @@
             473012      8 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R12+632 ZZ IDIOM 18 MEMORYSINK lea     rsi, [r12+278h] 
             473876      7 INSTR CHECK OVERFLOW UNSIGNED 64  RSI ZZ IDIOM 18 MEMORYSINK add     rsi, [r13+130h] ; src 
             473996      8 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R12+1000 ZZ IDIOM 32 lea     edx, [r12+3E8h] 
+            4730b5      7 INSTR FPTRSHADOW  [EBX+152] SHADOWID 6
+            4730ff      2 INSTR FPTRCHECK  RAX SHADOWID 6
+            473643      7 INSTR FPTRSHADOW  [EBX+152] SHADOWID 7
+            473675      2 INSTR FPTRCHECK  RAX SHADOWID 7
             473b40    238 FUNC RETURNTYPE RAX 1
             473b40    238 FUNC INARGS    6  ARG0 4 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             473b40    238 FUNC PROBLEM dtls1_write_app_data_bytes CALLUNRESOLVED 
@@ -2588,6 +2602,8 @@
             47e0f2      7 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 RBX+192 ZZ IDIOM 18 MEMORYSINK lea     rdi, [rbx+0C0h] 
             47e1a0      7 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R13+272 ZZ IDIOM 18 MEMORYSINK lea     rdx, [r13+110h] 
             47e1a7      7 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R13+264 ZZ IDIOM 18 MEMORYSINK lea     rsi, [r13+108h] 
+            47e0d6      5 INSTR FPTRSHADOW  [R12+88] SHADOWID 8
+            47e0f0      2 INSTR FPTRCHECK  RAX SHADOWID 8
             47e1c0      8 FUNC RETURNTYPE RAX 0
             47e1c0      8 FUNC INARGS    6  ARG0 4 ARG1 96 ARG2 1 ARG3 1 ARG4 96 ARG5 96 
             47e1d0     78 FUNC RETURNTYPE RAX 4
@@ -2920,6 +2936,8 @@
             488750    284 FUNC RETURNTYPE RAX 1
             488750    284 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 96 ARG3 96 ARG4 96 ARG5 96 
             488750    284 FUNC PROBLEM SSL_srp_server_param_with_username CALLUNRESOLVED 
+            488779      7 INSTR FPTRSHADOW  [EDI+688] SHADOWID 9
+            488792      2 INSTR FPTRCHECK  RAX SHADOWID 9
             488870    231 FUNC RETURNTYPE RAX 1
             488870    231 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 4 ARG3 4 ARG4 4 ARG5 4 
             48890b      8 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R12+776 ZZ IDIOM 18 MEMORYSINK lea     rcx, [r12+308h] 
@@ -3724,6 +3742,12 @@
             4acc80    496 FUNC PROBLEM CRYPTO_gcm128_setiv CALLUNRESOLVED 
             4acd15      4 INSTR CHECK UNDERFLOW UNSIGNED 64  R13 ZZ IDIOM 31 sub     r13, 10h 
             4acde8      4 INSTR CHECK OVERFLOW UNSIGNED 64  RAX ZZ add     rax, 1 
+            4acc98      7 INSTR FPTRSHADOW  [EDI+352] SHADOWID 10
+            4acdac      3 INSTR FPTRCHECK  R14 SHADOWID 10
+            4acc98      7 INSTR FPTRSHADOW  [EDI+352] SHADOWID 11
+            4acdf7      3 INSTR FPTRCHECK  R14 SHADOWID 11
+            4acc98      7 INSTR FPTRSHADOW  [EDI+352] SHADOWID 12
+            4ace10      3 INSTR FPTRCHECK  R14 SHADOWID 12
             4ace70    411 FUNC RETURNTYPE RAX 1
             4ace70    411 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 1 ARG3 0 ARG4 1 ARG5 96 
             4ace70    411 FUNC PROBLEM CRYPTO_gcm128_aad CALLUNRESOLVED 
@@ -4155,8 +4179,8 @@
             4b9b40   1292 FUNC PROBLEM BN_is_prime_fasttest_ex CALLUNRESOLVED 
             4ba050    236 FUNC RETURNTYPE RAX 0
             4ba050    236 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 1 ARG3 4 ARG4 1 ARG5 96 
-            4ba076      4 INSTR FPTRSHADOW  EAX SHADOWID 1
-            4ba0f6      4 INSTR FPTRCHECK  ECX SHADOWID 1
+            4ba076      4 INSTR FPTRSHADOW  EAX SHADOWID 13
+            4ba0f6      4 INSTR FPTRCHECK  ECX SHADOWID 13
             4ba140    631 FUNC RETURNTYPE RAX 0
             4ba140    631 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 1 ARG3 4 ARG4 1 ARG5 96 
             4ba25d      3 INSTR CHECK OVERFLOW UNKNOWNSIGN 64  RDI ZZ IDIOM 18 MEMORYSINK add     rdi, r12 
@@ -4815,6 +4839,8 @@
             4cb180     79 FUNC RETURNTYPE RAX 1
             4cb180     79 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             4cb180     79 FUNC PROBLEM RSA_set_method CALLUNRESOLVED 
+            4cb1b1      4 INSTR FPTRSHADOW  [EBP+56] SHADOWID 14
+            4cb1c1      2 INSTR FPTRCHECK  RAX SHADOWID 14
             4cb1d0    587 FUNC RETURNTYPE RAX 4
             4cb1d0    587 FUNC INARGS    6  ARG0 4 ARG1 0 ARG2 0 ARG3 1 ARG4 1 ARG5 96 
             4cb1d0    587 FUNC PROBLEM RSA_new_method CALLUNRESOLVED 
@@ -5005,6 +5031,8 @@
             4cf7c0     85 FUNC RETURNTYPE RAX 1
             4cf7c0     85 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             4cf7c0     85 FUNC PROBLEM DSA_set_method CALLUNRESOLVED 
+            4cf7f7      4 INSTR FPTRSHADOW  [EBP+48] SHADOWID 15
+            4cf807      2 INSTR FPTRCHECK  RAX SHADOWID 15
             4cf820    518 FUNC RETURNTYPE RAX 4
             4cf820    518 FUNC INARGS    6  ARG0 4 ARG1 0 ARG2 0 ARG3 1 ARG4 1 ARG5 0 
             4cf820    518 FUNC PROBLEM DSA_new_method CALLUNRESOLVED 
@@ -5142,6 +5170,8 @@
             4d1950     91 FUNC RETURNTYPE RAX 1
             4d1950     91 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             4d1950     91 FUNC PROBLEM DH_set_method CALLUNRESOLVED 
+            4d198a      4 INSTR FPTRSHADOW  [EBP+32] SHADOWID 16
+            4d199d      2 INSTR FPTRCHECK  RAX SHADOWID 16
             4d19b0    440 FUNC RETURNTYPE RAX 4
             4d19b0    440 FUNC INARGS    6  ARG0 0 ARG1 0 ARG2 0 ARG3 1 ARG4 96 ARG5 96 
             4d19b0    440 FUNC PROBLEM DH_new CALLUNRESOLVED 
@@ -7299,6 +7329,8 @@
             4f4e00    719 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 1 ARG3 96 ARG4 4 ARG5 96 
             4f4e00    719 FUNC PROBLEM int_ctx_new CALLUNRESOLVED 
             4f4eac      4 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 RBP+8 ZZ IDIOM 18 MEMORYSINK lea     rdi, [rbp+8] 
+            4f4eca      4 INSTR FPTRSHADOW  [R13+8] SHADOWID 17
+            4f4ede      2 INSTR FPTRCHECK  RAX SHADOWID 17
             4f50d0    132 FUNC RETURNTYPE RAX 1
             4f50d0    132 FUNC INARGS    6  ARG0 0 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             4f5160    497 FUNC RETURNTYPE RAX 4
@@ -7375,31 +7407,43 @@
             4f5b60    110 FUNC RETURNTYPE RAX 1
             4f5b60    110 FUNC INARGS    6  ARG0 4 ARG1 96 ARG2 0 ARG3 1 ARG4 96 ARG5 96 
             4f5b60    110 FUNC PROBLEM EVP_PKEY_sign_init CALLUNRESOLVED 
+            4f5b78      4 INSTR FPTRSHADOW  [EAX+64] SHADOWID 18
+            4f5b8d      2 INSTR FPTRCHECK  RDX SHADOWID 18
             4f5bd0    294 FUNC RETURNTYPE RAX 0
             4f5bd0    294 FUNC PROBLEM EVP_PKEY_sign JUMPUNRESOLVED 
             4f5d00    110 FUNC RETURNTYPE RAX 1
             4f5d00    110 FUNC INARGS    6  ARG0 4 ARG1 96 ARG2 0 ARG3 1 ARG4 96 ARG5 96 
             4f5d00    110 FUNC PROBLEM EVP_PKEY_verify_init CALLUNRESOLVED 
+            4f5d18      4 INSTR FPTRSHADOW  [EAX+80] SHADOWID 19
+            4f5d2d      2 INSTR FPTRCHECK  RDX SHADOWID 19
             4f5d70    134 FUNC RETURNTYPE RAX 0
             4f5d70    134 FUNC PROBLEM EVP_PKEY_verify JUMPUNRESOLVED 
             4f5e00    110 FUNC RETURNTYPE RAX 1
             4f5e00    110 FUNC INARGS    6  ARG0 4 ARG1 1 ARG2 0 ARG3 1 ARG4 96 ARG5 96 
             4f5e00    110 FUNC PROBLEM EVP_PKEY_verify_recover_init CALLUNRESOLVED 
+            4f5e18      4 INSTR FPTRSHADOW  [EAX+96] SHADOWID 20
+            4f5e2d      2 INSTR FPTRCHECK  RDX SHADOWID 20
             4f5e70    294 FUNC RETURNTYPE RAX 0
             4f5e70    294 FUNC PROBLEM EVP_PKEY_verify_recover JUMPUNRESOLVED 
             4f5fa0    126 FUNC RETURNTYPE RAX 1
             4f5fa0    126 FUNC INARGS    6  ARG0 4 ARG1 1 ARG2 0 ARG3 1 ARG4 96 ARG5 96 
             4f5fa0    126 FUNC PROBLEM EVP_PKEY_encrypt_init CALLUNRESOLVED 
+            4f5fbb      7 INSTR FPTRSHADOW  [EAX+144] SHADOWID 21
+            4f5fd3      2 INSTR FPTRCHECK  RDX SHADOWID 21
             4f6020    294 FUNC RETURNTYPE RAX 0
             4f6020    294 FUNC PROBLEM EVP_PKEY_encrypt JUMPUNRESOLVED 
             4f6150    126 FUNC RETURNTYPE RAX 1
             4f6150    126 FUNC INARGS    6  ARG0 4 ARG1 1 ARG2 0 ARG3 1 ARG4 96 ARG5 96 
             4f6150    126 FUNC PROBLEM EVP_PKEY_decrypt_init CALLUNRESOLVED 
+            4f616b      7 INSTR FPTRSHADOW  [EAX+160] SHADOWID 22
+            4f6183      2 INSTR FPTRCHECK  RDX SHADOWID 22
             4f61d0    294 FUNC RETURNTYPE RAX 0
             4f61d0    294 FUNC PROBLEM EVP_PKEY_decrypt JUMPUNRESOLVED 
             4f6300    126 FUNC RETURNTYPE RAX 1
             4f6300    126 FUNC INARGS    6  ARG0 4 ARG1 1 ARG2 0 ARG3 1 ARG4 96 ARG5 96 
             4f6300    126 FUNC PROBLEM EVP_PKEY_derive_init CALLUNRESOLVED 
+            4f631b      7 INSTR FPTRSHADOW  [EAX+176] SHADOWID 23
+            4f6333      2 INSTR FPTRCHECK  RDX SHADOWID 23
             4f6380    562 FUNC RETURNTYPE RAX 1
             4f6380    562 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 0 ARG3 0 ARG4 96 ARG5 96 
             4f6380    562 FUNC PROBLEM EVP_PKEY_derive_set_peer CALLUNRESOLVED 
@@ -7411,12 +7455,16 @@
             4f6700    110 FUNC RETURNTYPE RAX 1
             4f6700    110 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 0 ARG3 96 ARG4 4 ARG5 96 
             4f6700    110 FUNC PROBLEM EVP_PKEY_paramgen_init CALLUNRESOLVED 
+            4f6718      4 INSTR FPTRSHADOW  [EAX+32] SHADOWID 24
+            4f672d      2 INSTR FPTRCHECK  RDX SHADOWID 24
             4f6770    259 FUNC RETURNTYPE RAX 1
             4f6770    259 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 0 ARG3 1 ARG4 96 ARG5 96 
             4f6770    259 FUNC PROBLEM EVP_PKEY_paramgen CALLUNRESOLVED 
             4f6880    110 FUNC RETURNTYPE RAX 1
             4f6880    110 FUNC INARGS    6  ARG0 4 ARG1 1 ARG2 0 ARG3 96 ARG4 96 ARG5 96 
             4f6880    110 FUNC PROBLEM EVP_PKEY_keygen_init CALLUNRESOLVED 
+            4f6898      4 INSTR FPTRSHADOW  [EAX+48] SHADOWID 25
+            4f68ad      2 INSTR FPTRCHECK  RDX SHADOWID 25
             4f68f0    259 FUNC RETURNTYPE RAX 1
             4f68f0    259 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 0 ARG3 1 ARG4 96 ARG5 96 
             4f68f0    259 FUNC PROBLEM EVP_PKEY_keygen CALLUNRESOLVED 
@@ -7431,6 +7479,8 @@
             4f6a70    225 FUNC RETURNTYPE RAX 1
             4f6a70    225 FUNC INARGS    6  ARG0 1 ARG1 96 ARG2 4 ARG3 1 ARG4 4 ARG5 96 
             4f6a70    225 FUNC PROBLEM EVP_PKEY_new_mac_key CALLUNRESOLVED 
+            4f6ab3      4 INSTR FPTRSHADOW  [EAX+48] SHADOWID 26
+            4f6ac6      2 INSTR FPTRCHECK  RAX SHADOWID 26
             4f6b60    454 FUNC RETURNTYPE RAX 1
             4f6b60    454 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 4 ARG3 96 ARG4 96 ARG5 1 
             4f6b60    454 FUNC PROBLEM do_sigver_init CALLUNRESOLVED 
@@ -8676,8 +8726,8 @@
             50e1a0   1748 FUNC RETURNTYPE RAX 4
             50e1a0   1748 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 2 ARG3 96 ARG4 96 ARG5 96 
             50e742      4 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 RBX+24 ZZ IDIOM 18 MEMORYSINK lea     rsi, [rbx+18h] 
-            50e1a0      2 INSTR FPTRSHADOW  RDX SHADOWID 2
-            50e561      5 INSTR FPTRCHECK  RCX SHADOWID 2
+            50e1a0      2 INSTR FPTRSHADOW  RDX SHADOWID 27
+            50e561      5 INSTR FPTRCHECK  RCX SHADOWID 27
             50e880    179 FUNC RETURNTYPE RAX 4
             50e880    179 FUNC INARGS    6  ARG0 0 ARG1 4 ARG2 0 ARG3 0 ARG4 0 ARG5 0 
             50e940    672 FUNC RETURNTYPE RAX 96
@@ -11042,6 +11092,8 @@
             539550    270 FUNC RETURNTYPE RAX 96
             539550    270 FUNC INARGS    6  ARG0 4 ARG1 0 ARG2 0 ARG3 1 ARG4 96 ARG5 96 
             539550    270 FUNC PROBLEM COMP_CTX_new CALLUNRESOLVED 
+            5395b2      4 INSTR FPTRSHADOW  [EBX+16] SHADOWID 28
+            5395c2      2 INSTR FPTRCHECK  RAX SHADOWID 28
             539660     34 FUNC RETURNTYPE RAX 96
             539660     34 FUNC INARGS    6  ARG0 4 ARG1 96 ARG2 4 ARG3 1 ARG4 4 ARG5 96 
             539660     34 FUNC PROBLEM COMP_CTX_free CALLUNRESOLVED 
@@ -13103,8 +13155,8 @@
             57032a      3 INSTR CHECK OVERFLOW SIGNED 32  RSI ZZ add     esi, 1 
             570371      4 INSTR CHECK OVERFLOW NOFLAGSIGNED 64 R10+2 ZZ lea     esi, [r10+2] 
             5703b0      3 INSTR CHECK OVERFLOW NOFLAGSIGNED 32 RAX+1 ZZ lea     esi, [rax+1] 
-            56ffc2      4 INSTR FPTRSHADOW  EAX SHADOWID 3
-            57005f      4 INSTR FPTRCHECK  ECX SHADOWID 3
+            56ffc2      4 INSTR FPTRSHADOW  EAX SHADOWID 29
+            57005f      4 INSTR FPTRCHECK  ECX SHADOWID 29
             570470    508 FUNC RETURNTYPE RAX 4
             570470    508 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 4 ARG3 4 ARG4 4 ARG5 0 
             570549      4 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 RBX+40 ZZ IDIOM 18 MEMORYSINK lea     rdi, [rbx+28h] 
@@ -13647,6 +13699,8 @@
             57ed70    450 FUNC RETURNTYPE RAX 96
             57ed70    450 FUNC INARGS    6  ARG0 4 ARG1 4 ARG2 4 ARG3 96 ARG4 96 ARG5 96 
             57ed70    450 FUNC PROBLEM DSO_new_method CALLUNRESOLVED 
+            57ee08      4 INSTR FPTRSHADOW  [EBP+64] SHADOWID 30
+            57ee17      2 INSTR FPTRCHECK  RAX SHADOWID 30
             57ef40      7 FUNC RETURNTYPE RAX 4
             57ef40      7 FUNC INARGS    6  ARG0 0 ARG1 4 ARG2 0 ARG3 4 ARG4 0 ARG5 0 
             57ef50    294 FUNC RETURNTYPE RAX 1
-- 
GitLab