Closed m4b closed 7 years ago
Actually I cannot seem to repro this on libc.
So the last 4 runs consistently crashed on msvcrt.dll
with an exported symbol called _HUGE
, so I assumed I was mistaken; but on last run, where I added this line:
if &todo.name == "_HUGE" { println!("{:#}", json::encode(&func).unwrap()); }
it did not crash...
start fn: _HUGE (Uuid("f0180305-5135-49d5-9ae4-126f516d1ec4")) at 0x101b6780
ERROR:panopticon::function: failed to disassemble: Internal error
ERROR:panopticon::amd64: Multiple group 2 prefixes
ERROR:panopticon::function: failed to disassemble: Internal error
ERROR:panopticon::function: failed to disassemble: Internal error
primary pass done
{"uuid":"f0180305-5135-49d5-9ae4-126f516d1ec4","name":"_HUGE","cflow_graph":{"vertices":{"6":{"variant":"Resolved","fields":[{"area":{"start":270231429,"end":270231431},"mnemonics":[{"area":{"start":270231429,"end":270231431},"opcode":"add","operands":[{"variant":"Variable","fields":["al",null,0,8]},{"variant":"Variable","fields":["dh",null,0,8]}],"instructions":[{"assignee":{"variant":"Variable","fields":["res",null,8]},"op":{"variant":"Add","fields":[{"variant":"Variable","fields":["al",null,0,8]},{"variant":"Variable","fields":["dh",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["SF",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["ZF",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["al",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["al",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["CF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["cf2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["half_a",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["al",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["AF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["af2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["s1",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["al",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s2",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["dh",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s3",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t1",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["al",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t2",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["dh",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t3",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["s1",null,0,1]},{"variant":"Variable","fields":["s2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["s3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["t1",null,0,1]},{"variant":"Variable","fields":["t2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov2",null,0,1]},{"variant":"Variable","fields":["t3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["OV",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["ov2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["res",null,0,1]},{"variant":"Variable","fields":["res",null,1,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,2,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,3,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,4,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,5,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,6,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,7,1]}]}},{"assignee":{"variant":"Variable","fields":["reg",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}}],"format_string":[{"variant":"Variable","fields":[false]},{"variant":"Literal","fields":[","]},{"variant":"Literal","fields":[" "]},{"variant":"Variable","fields":[false]}]}]}]},"2":{"variant":"Resolved","fields":[{"area":{"start":270231425,"end":270231427},"mnemonics":[{"area":{"start":270231425,"end":270231427},"opcode":"add","operands":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Variable","fields":["al",null,0,8]}],"instructions":[{"assignee":{"variant":"Variable","fields":["BYTE PTR [eax]",null,8]},"op":{"variant":"Load","fields":["ram",{"variant":"Variable","fields":["eax",null,0,32]}]}},{"assignee":{"variant":"Variable","fields":["res",null,8]},"op":{"variant":"Add","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Variable","fields":["al",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["SF",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["ZF",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["CF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["cf2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["half_a",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["AF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["af2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["s1",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s2",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["al",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s3",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t1",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t2",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["al",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t3",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["s1",null,0,1]},{"variant":"Variable","fields":["s2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["s3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["t1",null,0,1]},{"variant":"Variable","fields":["t2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov2",null,0,1]},{"variant":"Variable","fields":["t3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["OV",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["ov2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["res",null,0,1]},{"variant":"Variable","fields":["res",null,1,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,2,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,3,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,4,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,5,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,6,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,7,1]}]}},{"assignee":{"variant":"Variable","fields":["reg",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}}],"format_string":[{"variant":"Variable","fields":[false]},{"variant":"Literal","fields":[","]},{"variant":"Literal","fields":[" "]},{"variant":"Variable","fields":[false]}]}]}]},"1":{"variant":"Resolved","fields":[{"area":{"start":270231424,"end":270231426},"mnemonics":[{"area":{"start":270231424,"end":270231426},"opcode":"add","operands":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Variable","fields":["al",null,0,8]}],"instructions":[{"assignee":{"variant":"Variable","fields":["BYTE PTR [eax]",null,8]},"op":{"variant":"Load","fields":["ram",{"variant":"Variable","fields":["eax",null,0,32]}]}},{"assignee":{"variant":"Variable","fields":["res",null,8]},"op":{"variant":"Add","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Variable","fields":["al",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["SF",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["ZF",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["CF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["cf2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["half_a",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["AF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["af2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["s1",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s2",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["al",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s3",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t1",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t2",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["al",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t3",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["s1",null,0,1]},{"variant":"Variable","fields":["s2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["s3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["t1",null,0,1]},{"variant":"Variable","fields":["t2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov2",null,0,1]},{"variant":"Variable","fields":["t3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["OV",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["ov2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["res",null,0,1]},{"variant":"Variable","fields":["res",null,1,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,2,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,3,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,4,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,5,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,6,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,7,1]}]}},{"assignee":{"variant":"Variable","fields":["reg",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}}],"format_string":[{"variant":"Variable","fields":[false]},{"variant":"Literal","fields":[","]},{"variant":"Literal","fields":[" "]},{"variant":"Variable","fields":[false]}]}]}]},"15":{"variant":"Failed","fields":[270231557,"Unrecognized instruction"]},"8":{"variant":"Resolved","fields":[{"area":{"start":270231431,"end":270231433},"mnemonics":[{"area":{"start":270231431,"end":270231433},"opcode":"jg","operands":[{"variant":"Constant","fields":[270231417,32]}],"instructions":[],"format_string":[{"variant":"Variable","fields":[false]}]}]}]},"13":{"variant":"Failed","fields":[270231532,"Unrecognized instruction"]},"10":{"variant":"Resolved","fields":[{"area":{"start":270231453,"end":270231473},"mnemonics":[{"area":{"start":270231453,"end":270231454},"opcode":"inc","operands":[{"variant":"Variable","fields":["eax",null,0,32]}],"instructions":[],"format_string":[{"variant":"Variable","fields":[false]}]},{"area":{"start":270231454,"end":270231456},"opcode":"add","operands":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Variable","fields":["al",null,0,8]}],"instructions":[{"assignee":{"variant":"Variable","fields":["BYTE PTR [eax]",null,8]},"op":{"variant":"Load","fields":["ram",{"variant":"Variable","fields":["eax",null,0,32]}]}},{"assignee":{"variant":"Variable","fields":["res",null,8]},"op":{"variant":"Add","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Variable","fields":["al",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["SF",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["ZF",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["CF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["cf2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["half_a",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["AF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["af2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["s1",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s2",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["al",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s3",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t1",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t2",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["al",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t3",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["s1",null,0,1]},{"variant":"Variable","fields":["s2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["s3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["t1",null,0,1]},{"variant":"Variable","fields":["t2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov2",null,0,1]},{"variant":"Variable","fields":["t3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["OV",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["ov2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["res",null,0,1]},{"variant":"Variable","fields":["res",null,1,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,2,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,3,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,4,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,5,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,6,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,7,1]}]}},{"assignee":{"variant":"Variable","fields":["reg",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}}],"format_string":[{"variant":"Variable","fields":[false]},{"variant":"Literal","fields":[","]},{"variant":"Literal","fields":[" "]},{"variant":"Variable","fields":[false]}]},{"area":{"start":270231456,"end":270231458},"opcode":"scasb","operands":[],"instructions":[],"format_string":[]},{"area":{"start":270231458,"end":270231460},"opcode":"adc","operands":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Variable","fields":["dl",null,0,8]}],"instructions":[{"assignee":{"variant":"Variable","fields":["BYTE PTR [eax]",null,8]},"op":{"variant":"Load","fields":["ram",{"variant":"Variable","fields":["eax",null,0,32]}]}},{"assignee":{"variant":"Variable","fields":["res",null,8]},"op":{"variant":"Add","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Variable","fields":["dl",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf",null,8]},"op":{"variant":"ZeroExtend","fields":[8,{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["res",null,8]},"op":{"variant":"Add","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["cf",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["SF",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["ZF",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["CF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["cf2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["half_a",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["AF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["af2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["s1",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s2",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["dl",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s3",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t1",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t2",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["dl",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t3",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["s1",null,0,1]},{"variant":"Variable","fields":["s2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["s3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["t1",null,0,1]},{"variant":"Variable","fields":["t2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov2",null,0,1]},{"variant":"Variable","fields":["t3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["OV",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["ov2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["res",null,0,1]},{"variant":"Variable","fields":["res",null,1,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,2,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,3,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,4,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,5,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,6,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,7,1]}]}},{"assignee":{"variant":"Variable","fields":["reg",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}}],"format_string":[{"variant":"Variable","fields":[false]},{"variant":"Literal","fields":[","]},{"variant":"Literal","fields":[" "]},{"variant":"Variable","fields":[false]}]},{"area":{"start":270231460,"end":270231462},"opcode":"add","operands":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Variable","fields":["al",null,0,8]}],"instructions":[{"assignee":{"variant":"Variable","fields":["BYTE PTR [eax]",null,8]},"op":{"variant":"Load","fields":["ram",{"variant":"Variable","fields":["eax",null,0,32]}]}},{"assignee":{"variant":"Variable","fields":["res",null,8]},"op":{"variant":"Add","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Variable","fields":["al",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["SF",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["ZF",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["CF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["cf2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["half_a",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["AF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["af2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["s1",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s2",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["al",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s3",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t1",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t2",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["al",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t3",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["s1",null,0,1]},{"variant":"Variable","fields":["s2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["s3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["t1",null,0,1]},{"variant":"Variable","fields":["t2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov2",null,0,1]},{"variant":"Variable","fields":["t3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["OV",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["ov2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["res",null,0,1]},{"variant":"Variable","fields":["res",null,1,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,2,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,3,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,4,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,5,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,6,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,7,1]}]}},{"assignee":{"variant":"Variable","fields":["reg",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}}],"format_string":[{"variant":"Variable","fields":[false]},{"variant":"Literal","fields":[","]},{"variant":"Literal","fields":[" "]},{"variant":"Variable","fields":[false]}]},{"area":{"start":270231462,"end":270231464},"opcode":"add","operands":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Variable","fields":["al",null,0,8]}],"instructions":[{"assignee":{"variant":"Variable","fields":["BYTE PTR [eax]",null,8]},"op":{"variant":"Load","fields":["ram",{"variant":"Variable","fields":["eax",null,0,32]}]}},{"assignee":{"variant":"Variable","fields":["res",null,8]},"op":{"variant":"Add","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Variable","fields":["al",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["SF",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["ZF",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["CF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["cf2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["half_a",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["AF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["af2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["s1",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s2",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["al",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s3",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t1",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t2",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["al",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t3",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["s1",null,0,1]},{"variant":"Variable","fields":["s2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["s3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["t1",null,0,1]},{"variant":"Variable","fields":["t2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov2",null,0,1]},{"variant":"Variable","fields":["t3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["OV",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["ov2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["res",null,0,1]},{"variant":"Variable","fields":["res",null,1,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,2,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,3,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,4,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,5,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,6,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,7,1]}]}},{"assignee":{"variant":"Variable","fields":["reg",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}}],"format_string":[{"variant":"Variable","fields":[false]},{"variant":"Literal","fields":[","]},{"variant":"Literal","fields":[" "]},{"variant":"Variable","fields":[false]}]},{"area":{"start":270231464,"end":270231466},"opcode":"aas","operands":[],"instructions":[],"format_string":[]},{"area":{"start":270231466,"end":270231467},"opcode":"inc","operands":[{"variant":"Variable","fields":["ecx",null,0,32]}],"instructions":[],"format_string":[{"variant":"Variable","fields":[false]}]},{"area":{"start":270231467,"end":270231468},"opcode":"push","operands":[{"variant":"Variable","fields":["esi",null,0,32]}],"instructions":[],"format_string":[{"variant":"Variable","fields":[false]}]},{"area":{"start":270231468,"end":270231471},"opcode":"arpl","operands":[{"variant":"Variable","fields":["WORD PTR [eax+0x61]",null,0,16]},{"variant":"Variable","fields":["bp",null,0,16]}],"instructions":[{"assignee":{"variant":"Variable","fields":["d",null,32]},"op":{"variant":"ZeroExtend","fields":[32,{"variant":"Constant","fields":[97,8]}]}},{"assignee":{"variant":"Variable","fields":["eax",null,32]},"op":{"variant":"Add","fields":[{"variant":"Variable","fields":["eax",null,0,32]},{"variant":"Variable","fields":["d",null,0,32]}]}},{"assignee":{"variant":"Variable","fields":["WORD PTR [eax+0x61]",null,16]},"op":{"variant":"Load","fields":["ram",{"variant":"Variable","fields":["eax",null,0,32]}]}}],"format_string":[{"variant":"Variable","fields":[false]},{"variant":"Literal","fields":[","]},{"variant":"Literal","fields":[" "]},{"variant":"Variable","fields":[false]}]},{"area":{"start":270231471,"end":270231473},"opcode":"jb","operands":[{"variant":"Constant","fields":[270231551,32]}],"instructions":[],"format_string":[{"variant":"Variable","fields":[false]}]}]}]},"9":{"variant":"Resolved","fields":[{"area":{"start":270231433,"end":270231453},"mnemonics":[{"area":{"start":270231433,"end":270231434},"opcode":"scasb","operands":[],"instructions":[],"format_string":[]},{"area":{"start":270231434,"end":270231436},"opcode":"adc","operands":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Variable","fields":["dl",null,0,8]}],"instructions":[{"assignee":{"variant":"Variable","fields":["BYTE PTR [eax]",null,8]},"op":{"variant":"Load","fields":["ram",{"variant":"Variable","fields":["eax",null,0,32]}]}},{"assignee":{"variant":"Variable","fields":["res",null,8]},"op":{"variant":"Add","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Variable","fields":["dl",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf",null,8]},"op":{"variant":"ZeroExtend","fields":[8,{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["res",null,8]},"op":{"variant":"Add","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["cf",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["SF",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["ZF",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["CF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["cf2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["half_a",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["AF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["af2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["s1",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s2",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["dl",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s3",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t1",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t2",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["dl",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t3",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["s1",null,0,1]},{"variant":"Variable","fields":["s2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["s3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["t1",null,0,1]},{"variant":"Variable","fields":["t2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov2",null,0,1]},{"variant":"Variable","fields":["t3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["OV",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["ov2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["res",null,0,1]},{"variant":"Variable","fields":["res",null,1,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,2,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,3,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,4,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,5,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,6,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,7,1]}]}},{"assignee":{"variant":"Variable","fields":["reg",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}}],"format_string":[{"variant":"Variable","fields":[false]},{"variant":"Literal","fields":[","]},{"variant":"Literal","fields":[" "]},{"variant":"Variable","fields":[false]}]},{"area":{"start":270231436,"end":270231438},"opcode":"add","operands":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Variable","fields":["al",null,0,8]}],"instructions":[{"assignee":{"variant":"Variable","fields":["BYTE PTR [eax]",null,8]},"op":{"variant":"Load","fields":["ram",{"variant":"Variable","fields":["eax",null,0,32]}]}},{"assignee":{"variant":"Variable","fields":["res",null,8]},"op":{"variant":"Add","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Variable","fields":["al",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["SF",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["ZF",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["cf1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["CF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["cf1",null,0,1]},{"variant":"Variable","fields":["cf2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["half_a",null,4]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"Equal","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af2",null,1]},"op":{"variant":"LessUnsigned","fields":[{"variant":"Variable","fields":["half_res",null,0,4]},{"variant":"Variable","fields":["half_a",null,0,4]}]}},{"assignee":{"variant":"Variable","fields":["af1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["CF",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["AF",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["af1",null,0,1]},{"variant":"Variable","fields":["af2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["s1",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s2",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["al",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["s3",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["res",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t1",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["BYTE PTR [eax]",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t2",null,1]},"op":{"variant":"LessSigned","fields":[{"variant":"Variable","fields":["al",null,0,8]},{"variant":"Constant","fields":[0,8]}]}},{"assignee":{"variant":"Variable","fields":["t3",null,1]},"op":{"variant":"LessOrEqualSigned","fields":[{"variant":"Constant","fields":[0,8]},{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["s1",null,0,1]},{"variant":"Variable","fields":["s2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov1",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["s3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["t1",null,0,1]},{"variant":"Variable","fields":["t2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["ov2",null,1]},"op":{"variant":"And","fields":[{"variant":"Variable","fields":["ov2",null,0,1]},{"variant":"Variable","fields":["t3",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["OV",null,1]},"op":{"variant":"InclusiveOr","fields":[{"variant":"Variable","fields":["ov1",null,0,1]},{"variant":"Variable","fields":["ov2",null,0,1]}]}},{"assignee":{"variant":"Variable","fields":["half_res",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["res",null,0,1]},{"variant":"Variable","fields":["res",null,1,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,2,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,3,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,4,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,5,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,6,1]}]}},{"assignee":{"variant":"Variable","fields":["PF",null,1]},"op":{"variant":"ExclusiveOr","fields":[{"variant":"Variable","fields":["PF",null,0,1]},{"variant":"Variable","fields":["half_res",null,7,1]}]}},{"assignee":{"variant":"Variable","fields":["reg",null,8]},"op":{"variant":"Move","fields":[{"variant":"Variable","fields":["res",null,0,8]}]}}],"format_string":[{"variant":"Variable","fields":[false]},{"variant":"Literal","fields":[","]},{"variant":"Literal","fields":[" "]},{"variant":"Variable","fields":[false]}]},{"area":{"start":270231438,"end":270231440},"opc
This particular run finished without error.
Also the serialized func is so large it won't fit into my clipboard or something :sob:
Regardless, here's a case where it does fail:
start fn: _HUGE (Uuid("917e68e2-ddfd-417f-b2f4-cd0140b9e508")) at 0x101b6780
ERROR:panopticon::function: failed to disassemble: Internal error
ERROR:panopticon::amd64: Multiple group 2 prefixes
ERROR:panopticon::function: failed to disassemble: Internal error
ERROR:panopticon::function: failed to disassemble: Internal error
primary pass done
thread 'main' panicked at 'no entry found for key', /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libcore/option.rs:715
I dunno, I'm pretty perplexed...
EDIT: attached a successful debug run with _HUGE
printed:
debug.txt
EDIT2: attached a non-successful debug run with _HUGE
not printed (it seems printing prevents the panic, which is terrifying TBH)
debug_crash.txt
Hey @m4b, thanks for looking into this. The error messages look like Panopticon fails to recognize some mnemonics, nothing that can't be fixed. The Heisenbug like behavior makes me a bit nervous too. The problem with the dominator tree sounds really odd. I had this kind of error when feeding it with CFGs that had multiple entry points :/
This is definitely an interaction between these two calls for a functions cfg:
let mut cfg = &mut func.cflow_graph;
...
let idom = immediate_dominator(func.entry_point.unwrap(),cfg);
let df = dominance_frontiers(&idom,cfg);
I believe the non-determinism is a result of non-determinism from the iterator which visits the keys in arbitrary order in the hash map, when calling vertices
, as the impl for the Cfg will be this:
return self.vertex_labels.keys().map(std::clone::Clone::clone);
Which gets called here in dominance_frontiers
algorithm:
for b in graph.vertices() {
let pred = {
let mut ret = graph.in_edges(b)
.map(|e| graph.source(e))
.filter(|&x| x != b)
.collect::<Vec<G::Vertex>>();
ret.sort();
ret.dedup();
ret
};
if pred.len() >= 2 {
for p in pred {
let mut runner = p;
while runner != idom[&b] {
ret.entry(runner).or_insert(vec![]).push(b);
// bad deref here, runner key is not an element of idom's keys
runner = idom[&runner];
}
}
}
}
So I think some invariant isn't being preserved in the above algorithm, and I think the following question (assuming its correctly formulated) needs an answer:
For some key/vertices, b
, in the control flow graph of some function F
, can the value of the key b
for the immediate dominator (idom
) for the entry point of F
not be a key to a value in idom
?
If the above is true, i.e., its possible that it isn't also a key in idom
, then the above algorithm is incorrect, and needs to be checked (I don't really know what it does from a semantic viewpoint so I don't feel qualified to make the change :P)
If it isn't true, e.g., every value of any key in idom
is also a key for idom
, then somehow the immediate dominator wasn't computed correctly, or the cfg is somehow malformed.
I believe the following attachment, key2.txt
, has all of the information necessary to determine the failure.
It contains the state of the _HUGE
Function
's cfg
, and its idom
just before the dominance frontiers computation, which some key iteration of which causes the no entry found failure.
This also contains a dump of a bad key for _HUGE
, but doesn't include the function cfg before its mutated in phi_functions
It should be possible to repro in a small testcase using the edge values and some dummy contents is my guess?
Thanks @m4b! The algorithm is described in Engineering a Compiler by Cooper and Torczon. I probably made a mistake when turning the pseudo code into Rust.
Edit:
The algorithm seems to be correct. The problem is that immediate_dominators
is called with start
set to vertex 0, but the cfg starts at vertex 1:
The basic blocks attached to vertex 0 and 1 overlap with entry
. This is why entry_point
is set to vertex 0. even though it should be vertex 1.
Is this still showing up? Is there a simple repro? I've tried running new patch on msvcrt.dll
on _HUGE
symbol and can't repro, but as noted above, can be random
I changed the code to consider entry points when disassembling. I also added better error handling to ssa_conversion
et.al. so if the problem is still there we can see what's wrong exactly.
As always, please reopen the issue if you stumble over the problem again.
So been messing around with a minimal command line main, primarily for quickly testing changes instead of going through Qt to pick a binary every time, and also to familiarize myself with other parts of the lib. Anywayyyyy, encountered this after adding the "second pass" phase, in particular the
ssa_convertion
call.It seems like a pretty nasty bug; its pretty far down in the disassembler stack, all the way in another crate, which I don't know much about, emanating from this line in the graph algos library:
https://github.com/flanfly/rust-graph-algos/blob/b36558224cf42a82c274ad4d777ca311720bebed/src/dominator.rs#L89
Sometimes below completes, other times it panics with
thread 'main' panicked at 'no entry found for key', /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libcore/option.rs:715
, the entry referring to the line above. You will likely have to run it several times before you see the bug, I recommend putting the example below inexamples
and running it on a larger binary, likemsvcrt.dll
(on the PE branch) orlibc.so.6.
:I don't know if its because something is semantically invalid with below, but if so, I can't see why that would be a non-deterministic failure...
Here is a minimal working main, basically copied out of
project.rs
fromqt/src
, but it doesn't suppress/catch the panic (which I suspect panopticon does, and why perhaps this wasn't caught sooner):If you can fix this or point out what I'm doing wrong will be very happy :)