============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined NhlCvtBooleanToString() ;local_10 undefined8 -10 ;local_14 undefined2 -14 ;local_18 undefined4 -18 ;local_28 undefined1[16] -28 PUSH RBX MOV EDX,0x67 MOV RBX,RSI SUB RSP,0x20 MOVDQA XMM0,xmmword ptr [.rodata:s_NhlCvtBooleanToSNhlCvtStringGenA_002b1f70] ;= "NhlCvtBooleanToSNhlCvtStringGenAr... MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_10+0x28],RAX XOR EAX,EAX MOV dword ptr [RSP + local_18+0x28],0x6e697274 MOV word ptr [RSP + local_14+0x28],DX MOVAPS xmmword ptr [RSP]=>local_28,XMM0 TEST ECX,ECX JNZ LAB_00158520 MOV EAX,dword ptr [RDI + 0x8] LEA RDX,[.data:false.427] ;= "False" TEST EAX,EAX LEA RAX,[.data:true.428] ;= 0075725400h CMOVZ RAX,RDX MOV EDX,dword ptr [RSI] TEST EDX,EDX JZ LAB_001584f0 MOV RCX,qword ptr [RSI + 0x8] TEST RCX,RCX JZ LAB_001584f0 MOV dword ptr [RSI],0x8 CMP EDX,0x7 JA LAB_00158510 MOV EAX,0xfffffffc LAB_001584d4: MOV RDX,qword ptr [RSP + local_10+0x28] SUB RDX,qword ptr FS:[0x28] JNZ LAB_00158546 ADD RSP,0x20 POP RBX RET ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_001584f0: MOV dword ptr [RBX],0x8 MOV qword ptr [.bss:val.426],RAX ;=?? LEA RAX,[.bss:val.426] ;=?? MOV qword ptr [RBX + 0x8],RAX=>.bss:val.426 ;=?? MOV EAX,0xffffffff JMP LAB_001584d4 ?? 90h LAB_00158510: MOV qword ptr [RCX],RAX MOV EAX,0xffffffff JMP LAB_001584d4 ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00158520: MOV RCX,RSP MOV ESI,0x3e8 MOV EDI,0xfffffffc LEA RDX,[.rodata:s_%s:Called_with_improper_number_o_002af620+48] ;= "%s:Called with improper number of... CALL .plt:NhlPError ;undefined NhlPError(undefined param_... MOV dword ptr [RBX],0x0 MOV EAX,0xfffffffc JMP LAB_001584d4 LAB_00158546: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr [RAX + RAX*0x1] Actual src: static NhlErrorTypes NhlCvtBooleanToString CvtArgs { static char true[] = "True"; static char false[] = "False"; char func[] = "NhlCvtBooleanToString"; NhlString tstring; NhlErrorTypes ret = NhlNOERROR; if(nargs!= 0){ NhlPError(NhlFATAL,NhlEUNKNOWN, "%s:Called with improper number of args",func); to->size = 0; return NhlFATAL; } if(from->data.intval) tstring = true; else tstring = false; _NhlSetVal(NhlString,sizeof(NhlString),tstring); } Predicted src: static int main (int argc, char **argv, char **argv) { if (argc == 2) return -1; if (argc == 2) return -1; if (argc == 2) return -1; else if (argc == 2) { return -1; } else if (argc == 2) { return -1; } else if (argc == 2) { return -1; } else if (argc == 2) { return -1; } else { return -1; } } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* CollectionConfiguration::isNewer(QHelpEngineCore const&, QHelpEngineCore const&) * ;************************************************************************************************************************************************************ ;undefined isNewer(QHelpEngineCore * param_1, QHelpEngineCore * param_2) ;param_1 QHelpEngine... RDI ;param_2 QHelpEngine... RSI PUSH RBP MOV RBP,param_2 PUSH RBX SUB RSP,0x8 CALL CollectionConfiguration::creationTime ;undefined creationTime(QHelpEngineCo... MOV param_1,RBP MOV EBX,EAX CALL CollectionConfiguration::creationTime ;undefined creationTime(QHelpEngineCo... CMP EBX,EAX SETA AL ADD RSP,0x8 POP RBX POP RBP RET ?? 66h f Actual src: bool CollectionConfiguration::isNewer(const QHelpEngineCore &newer, const QHelpEngineCore &older) { return creationTime(newer) > creationTime(older); } Predicted src: bool operator==(const QString &a, const QString &b) { return (a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.Time() && a.isTime() && a.isTime() && a.Time() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.Time() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.Time() && a.Time() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.isTime() && a.Time() && a.isTime() && a.Tim ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* vtkImageReslice::WrapOff() * ;************************************************************************************************************************************************************ ;undefined WrapOff(vtkImageReslice * this) ;this vtkImageRes... RDI MOV RAX,qword ptr [this] XOR ESI,ESI MOV RAX,qword ptr [RAX + 0x330] JMP RAX ?? 66h f Actual src: vtkBooleanMacro(Wrap, int); Predicted src: vtkBooleanMacro(Use, vtkTypeBool); ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined vala_ccode_control_flow_module_real_visit_if_statement() TEST RSI,RSI JZ LAB_00171e90 PUSH R13 PUSH R12 MOV R12,RDI PUSH RBP MOV RBP,RSI CALL .plt:vala_ccode_base_module_get_ccode ;undefined vala_ccode_base_module_get... MOV RDI,RBP MOV R13,RAX CALL .plt:::vala_if_statement_get_condition ;undefined vala_if_statement_get_cond... MOV RDI,RAX CALL .plt:vala_get_cvalue ;undefined vala_get_cvalue() MOV RDI,R13 MOV RSI,RAX CALL .plt:vala_ccode_function_open_if ;undefined vala_ccode_function_open_if() MOV RDI,RBP CALL .plt:::vala_if_statement_get_true_statement ;undefined vala_if_statement_get_true... MOV RSI,R12 MOV RDI,RAX CALL .plt:::vala_code_node_emit ;undefined vala_code_node_emit() MOV RDI,RBP CALL .plt:::vala_if_statement_get_false_statement ;undefined vala_if_statement_get_fals... TEST RAX,RAX JZ LAB_00171e7a MOV RDI,R12 CALL .plt:vala_ccode_base_module_get_ccode ;undefined vala_ccode_base_module_get... MOV RDI,RAX CALL .plt:vala_ccode_function_add_else ;undefined vala_ccode_function_add_el... MOV RDI,RBP CALL .plt:::vala_if_statement_get_false_statement ;undefined vala_if_statement_get_fals... MOV RSI,R12 MOV RDI,RAX CALL .plt:::vala_code_node_emit ;undefined vala_code_node_emit() LAB_00171e7a: MOV RDI,R12 CALL .plt:vala_ccode_base_module_get_ccode ;undefined vala_ccode_base_module_get... POP RBP POP R12 MOV RDI,RAX POP R13 JMP .plt:vala_ccode_function_close ;undefined vala_ccode_function_close() ?? 90h LAB_00171e90: LEA RDX,[.rodata:s_stmt_!=_NULL_0020d2df+5] ;= "stmt!= NULL" LEA RSI,[.rodata:__func__.0] ;= "vala_ccode_control_flow_module_re... LEA RDI,[.rodata:s_vala-ccodegen_001f501d] ;= "vala-ccodegen" JMP .plt:::g_return_if_fail_warning ;undefined g_return_if_fail_warning() ?? 66h f Actual src: static void vala_ccode_control_flow_module_real_visit_if_statement (ValaCodeVisitor* base, ValaIfStatement* stmt) { ValaCCodeControlFlowModule * self; ValaCCodeFunction* _tmp0_; ValaCCodeFunction* _tmp1_; ValaExpression* _tmp2_; ValaExpression* _tmp3_; ValaCCodeExpression* _tmp4_; ValaBlock* _tmp5_; ValaBlock* _tmp6_; ValaBlock* _tmp7_; ValaBlock* _tmp8_; ValaCCodeFunction* _tmp13_; ValaCCodeFunction* _tmp14_; self = (ValaCCodeControlFlowModule*) base; g_return_if_fail (stmt!= NULL); _tmp0_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp1_ = _tmp0_; _tmp2_ = vala_if_statement_get_condition (stmt); _tmp3_ = _tmp2_; _tmp4_ = vala_get_cvalue (_tmp3_); vala_ccode_function_open_if (_tmp1_, _tmp4_); _tmp5_ = vala_if_statement_get_true_statement (stmt); _tmp6_ = _tmp5_; vala_code_node_emit ((ValaCodeNode*) _tmp6_, (ValaCodeGenerator*) self); _tmp7_ = vala_if_statement_get_false_statement (stmt); _tmp8_ = _tmp7_; if (_tmp8_!= NULL) { ValaCCodeFunction* _tmp9_; ValaCCodeFunction* _tmp10_; ValaBlock* _tmp11_; ValaBlock* _tmp12_; _tmp9_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp10_ = _tmp9_; vala_ccode_function_add_else (_tmp10_); _tmp11_ = vala_if_statement_get_false_statement (stmt); _tmp12_ = _tmp11_; vala_code_node_emit ((ValaCodeNode*) _tmp12_, (ValaCodeGenerator*) self); } _tmp13_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp14_ = _tmp13_; vala_ccode_function_close (_tmp14_); } Predicted src: static void vala_module_module_module_real_module_real_real_real_real_real_real_get_value (GValue* base, * base) { Geary* _tmp0_; Geary* _tmp1_; Geary* _tmp2_; Geary* _tmp3_; Geary* _tmp4_; Geary* _tmp4_; Geary* _tmp4_; Geary* _tmp4_; Geary* _tmp4_; Geary* _tmp4_; Geary* _tmp4_; Geary* result = NULL; self = G_TYPE_CHECK_INSTANCE_CAST (base, GEARY_TYPE_CHECK_TYPE_CHECK_INSTANCE_CAST (_tmp0_); _tmp1_ = _tmp2_; _tmp3_ = _tmp3_; _tmp4_; _tmp4_ = vala_module_module_get_value (_tmp4_); _tmp4_ = _tmp4_; _tmp4_ = _tmp4_; _tmp4_ = vala_module_get_value (_tmp4_); _tmp5_ = _tmp4_; _tmp5_ = vala_module_get_value (_tmp4_); _tmp5_ = _tmp5_; _tmp5_ = vala_module_get_value (_tmp5_); _tmp5_ = _tmp5_; _tmp5_ = vala_module_get_value (_tmp5_); _tmp5_ = _tmp5_; _tmp5_ = vala_module_get_value (_tmp5_); _tmp5_ = vala_module_get_value (_tmp5_); _tmp5_ = _tmp5_; _tmp5_ = vala_module_get_value (_tmp5_); _tmp5_ = vala_module_get_value (_tmp5_); _tmp5_ = vala_module_get_value (_tmp5_); _tmp5_ = vala_module_get_value (_tmp5_); _tmp5_ = vala_module_get_value (_tmp5_); _tmp5_ = _tmp5_; _tmp5_ = vala_module_get_value (_tmp5_); _tmp5_ = vala_module_get_value (_tmp5_); _tmp5_ = _tmp5_; _tmp5_ = vala_module_get_value (_tmp5_); _tmp5_ = _tmp5_; _tmp5_ = vala_module_get_value (_tmp5_); result = _tmp5_; result = _tmp7_; result = _tmp5_; result = _tmp5_; return result; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _wrap_event_class_create_with_id() ;local_20 undefined8 -20 ;local_30 undefined8 -30 ;local_38 undefined8 -38 ;local_40 undefined8 -40 ;local_48 undefined8 -48 PUSH R12 MOV RDI,RSI MOV ECX,0x2 MOV EDX,0x2 PUSH RBP LEA RSI,[.rodata:s_event_class_create_with_id_0018964f] ;= "event_class_create_with_id" XOR R12D,R12D SUB RSP,0x38 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_20+0x48],RAX XOR EAX,EAX LEA R8=>local_38,[RSP + 0x10] MOV qword ptr [RSP]=>local_48,0x0 CALL SWIG_Python_UnpackTuple ;undefined SWIG_Python_UnpackTuple() TEST RAX,RAX JZ LAB_00147beb MOV RDI,qword ptr [RSP + local_38+0x48] MOV RDX,qword ptr [.bss:swig_types[1072]] MOV RSI,RSP CALL SWIG_Python_ConvertPtrAndOwn.constprop.0 ;undefined SWIG_Python_ConvertPtrAndO... MOV EDI,EAX TEST EAX,EAX JS LAB_00147c38 MOV RDI,qword ptr [RSP + local_30+0x48] LEA RSI=>local_40,[RSP + 0x8] MOV RBP,qword ptr [RSP]=>local_48 CALL SWIG_AsVal_unsigned_SS_long_SS_long ;undefined SWIG_AsVal_unsigned_SS_lon... MOV EDI,EAX TEST EAX,EAX JS LAB_00147c10 MOV RSI=>local_40,qword ptr [RSP + 0x8] MOV RDI,RBP CALL .plt:::bt_event_class_create_with_id ;undefined bt_event_class_create_with... MOV RSI,qword ptr [.bss:swig_types[256]] MOV RDI,RAX CALL SWIG_Python_NewPointerObj.constprop.0 ;undefined SWIG_Python_NewPointerObj.... MOV R12,RAX LAB_00147beb: MOV RAX,qword ptr [RSP + local_20+0x48] SUB RAX,qword ptr FS:[0x28] JNZ LAB_00147c59 ADD RSP,0x38 MOV RAX,R12 POP RBP POP R12 RET ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00147c10: CMP EAX,-0x1 MOV EAX,0xfffffffb LEA RSI,[.rodata:s_in_method_'event_class_create_wi_001749a8] ;= "in method 'event_class_create_wit... CMOVZ EDI,EAX CALL SWIG_Python_ErrorType ;undefined SWIG_Python_ErrorType() MOV RDI,RAX CALL .plt:PyErr_SetString ;undefined PyErr_SetString() JMP LAB_00147beb ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00147c38: CMP EAX,-0x1 MOV EAX,0xfffffffb LEA RSI,[.rodata:s_in_method_'event_class_create_wi_00174958] ;= "in method 'event_class_create_wit... CMOVZ EDI,EAX CALL SWIG_Python_ErrorType ;undefined SWIG_Python_ErrorType() MOV RDI,RAX CALL .plt:PyErr_SetString ;undefined PyErr_SetString() JMP LAB_00147beb LAB_00147c59: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP Actual src: SWIGINTERN PyObject *_wrap_event_class_create_with_id(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; bt_stream_class *arg1 = (bt_stream_class *) 0 ; uint64_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long long val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; bt_event_class *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "event_class_create_with_id", 2, 2, swig_obj)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_bt_stream_class, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "event_class_create_with_id" "', argument " "1"" of type '" "bt_stream_class *""'"); } arg1 = (bt_stream_class *)(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long_SS_long(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "event_class_create_with_id" "', argument " "2"" of type '" "uint64_t""'"); } arg2 = (uint64_t)(val2); result = (bt_event_class *)bt_event_class_create_with_id(arg1,arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_bt_event_class, 0 | 0 ); return resultobj; fail: return NULL; } Predicted src: SWIGINTERN PyObject *_wrap_class_t_class_create(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; bt_class_t *arg1 = (bt_class_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; PyObject *swig_obj[1] ; int result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_bt_class_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "class_t_class_create" "', argument " "1"" of type '" "bt_class_t *""'"); } arg1 = (bt_class_t *)(argp1); result = (bt_class_t *)bt_class_create_class(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_bt_bt_class_t, 0 | 0 ); return resultobj; fail: return NULL; }