============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined parse_trap2_fmt() SUB RSP,0x8 MOV RDI,RSI CALL .plt:::strdup ;char * strdup(char * __s) MOV RDX,qword ptr [->print_format2] ;= 0010f168 MOV qword ptr [RDX]=>.bss:print_format2,RAX ;=?? ADD RSP,0x8 RET ?? 0Fh Actual src: static void parse_trap2_fmt(const char *token, char *line) { print_format2 = strdup(line); } Predicted src: static void parse_format_format (const char *format, const char *format) { snprintf (format, format, sizeof (format), format); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;*DICOMAppHelper::GetSliceNumberFilenamePairs(std::vector, std::allocator > >,...* ;************************************************************************************************************************************************************ ;undefined GetSliceNumberFilenamePairs(DICOMAppHelper * this, vector * param_1, bool param_2) ;this DICOMAppHel... RDI ;param_1 vector * RSI ;param_2 bool DL PUSH R13 PUSH R12 MOV R12,param_1 PUSH RBP PUSH RBX SUB RSP,0x8 MOV RAX,qword ptr [this + 0x350] CMP qword ptr [RAX + 0x28],0x0 JZ LAB_001107d0 MOV param_1,qword ptr [RAX + 0x18] ADD RSP,0x8 MOVZX ECX,param_2 MOV param_2,R12 POP RBX POP RBP ADD param_1,0x20 POP R12 POP R13 JMP .plt:LAB_00106350 ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_001107d0: MOV RBP,qword ptr [param_1] MOV R13,qword ptr [param_1 + 0x8] CMP RBP,R13 JZ LAB_00110808 MOV RBX,RBP NOP LAB_001107e0: MOV this,qword ptr [RBX + 0x8] LEA RAX,[RBX + 0x18] CMP this,RAX JZ LAB_001107fa MOV RAX,qword ptr [RBX + 0x18] LEA param_1,[RAX + 0x1] CALL .plt:::operator.delete ;void operator.delete(void * param_1,... LAB_001107fa: ADD RBX,0x28 CMP R13,RBX JNZ LAB_001107e0 MOV qword ptr [R12 + 0x8],RBP LAB_00110808: ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 RET ?? 90h Actual src: void DICOMAppHelper::GetSliceNumberFilenamePairs(dicom_stl::vector >& v, bool ascending) { // Default to using the first series if (!this->Implementation->SeriesUIDMap.empty()) { this->GetSliceNumberFilenamePairs( (*this->Implementation->SeriesUIDMap.begin()).first, v, ascending ); } else { v.clear(); } } Predicted src: void Box::FindCallback(std::string &name, std::string &name) { for (std::vector::const_iterator it = m_name.begin(); it!= m_name.end(); ++it) { m_name.push_back(name); } } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined finish() SUB RSP,0x8 CALL cleanup ;void cleanup(EVP_PKEY_CTX * ctx) MOV EDI,0x1 CALL .plt:::exit ;void exit(int __status) NOP dword ptr CS:[RAX + RAX*0x1] Actual src: static void finish(int sig GCC_UNUSED) { cleanup(); ExitProgram(EXIT_FAILURE); } Predicted src: static void exit(int sig) { exit(1); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* QComboBox_Adaptor::sizeHint() const * ;************************************************************************************************************************************************************ ;undefined sizeHint(QComboBox_Adaptor * this) ;this QComboBox_A... RDI PUSH R12 LEA R12,[this + 0x278] PUSH RBP MOV RBP,this MOV this,R12 SUB RSP,0x8 CALL .plt:::tl::WeakOrSharedPtr::get ;undefined get(void) TEST RAX,RAX JZ LAB_00c0bc3e MOV this,R12 CALL .plt:::tl::WeakOrSharedPtr::get ;undefined get(void) MOV this,RAX TEST RAX,RAX JZ LAB_00c0bc4d MOV RDX=>.data.rel.ro:gsi::Callee::typeinfo,qword ptr [->gsi::Callee::typeinfo] ;= 02782628 ;= 02a29710 MOV RSI=>EXTERNAL:tl::Object::typeinfo,qword ptr [->tl::Object::typeinfo] ;= 02a1e480 ;=?? XOR ECX,ECX CALL .plt:::__dynamic_cast ;undefined __dynamic_cast() MOV this,RAX MOV RAX,qword ptr [RAX] MOV RAX,qword ptr [RAX + 0x18] CMP RAX,qword ptr [->gsi::Callee::can_call] ;= 00914c70 JNZ LAB_00c0bc38 LAB_00c0bc16: ADD RSP,0x8 LEA this,[RBP + 0x270] LEA RSI,[QComboBox_Adaptor::cbs_sizeHint_c0_0] XOR EDX,EDX POP RBP POP R12 JMP gsi::Callback::issue ;QSize issue... ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00c0bc38: CALL RAX TEST AL,AL JNZ LAB_00c0bc16 LAB_00c0bc3e: ADD RSP,0x8 MOV this,RBP POP RBP POP R12 JMP .plt:::QComboBox::sizeHint ;undefined sizeHint(void) LAB_00c0bc4d: MOV RAX,qword ptr [DAT_00000000] UD2 ?? 66h f Actual src: virtual QSize sizeHint() const { if (cb_sizeHint_c0_0.can_issue()) { return cb_sizeHint_c0_0.issue(&QComboBox_Adaptor::cbs_sizeHint_c0_0); } else { return QComboBox::sizeHint(); } } Predicted src: virtual QSize sizeHint() const { if (cb_sizeHint_c0_0.can_issue()) { return cb_sizeHint_c0_0.issuearg = obj->data.l; } Predicted src: void *object_object(struct object *obj, const char *name, double value) { if (!obj) return NULL; obj->name = name; return obj_object(obj, name, value); }