============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined fileAddComplexValue() TEST ESI,ESI JZ LAB_001f4080 MOV RAX,qword ptr [.bss:column] ;=?? MOV RDX,qword ptr [.bss:rowbuf] ;=?? LEA RCX,[RAX + 0x2] MOVSD qword ptr [RDX + RAX*0x8],XMM0 MOV qword ptr [.bss:column],RCX ;=?? MOVSD qword ptr [RDX + RAX*0x8 + 0x8],XMM1 RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_001f4080: MOV ECX,0xf MOV EDX,0xf MOV EAX,0x2 LEA RSI,[.rodata:s__%.*e,%.*e_00712740] ;= "\t%.*e,%.*e\n" JMP sh_fprintf ;undefined sh_fprintf(undefined param... ?? 0Fh Actual src: static void fileAddComplexValue(FILE *fp, bool bin, IFcomplex value) { if (bin) { rowbuf[column++] = value.real; rowbuf[column++] = value.imag; } else { fprintf(fp, "\t%.*e,%.*e\n", DOUBLE_PRECISION, value.real, DOUBLE_PRECISION, value.imag); } } Predicted src: static void init(void) { int i; for (i = 0; i < n; i++) { for (i = 0; i < n; i++) { for (i = 0; i < n; i++) for (i = 0; i < n; i++) { { if (i == 0) { { } { { { } } } } } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined net_object_get_panel() PUSH RBX MOV RBX,RDI CALL .plt:net_object_get_type ;undefined net_object_get_type() TEST RBX,RBX JZ LAB_00120798 MOV RSI,RAX MOV RAX,qword ptr [RBX] TEST RAX,RAX JZ LAB_0012077e CMP qword ptr [RAX],RSI JZ LAB_0012078a LAB_0012077e: MOV RDI,RBX CALL .plt:::g_type_check_instance_is_a ;undefined g_type_check_instance_is_a() TEST EAX,EAX JZ LAB_00120798 LAB_0012078a: MOV RAX,qword ptr [RBX + 0x18] POP RBX MOV RAX,qword ptr [RAX + 0x28] RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00120798: LEA RDX,[.rodata:s_NET_IS_OBJECT_(object)_00142723] ;= "NET_IS_OBJECT (object)" LEA RSI,[.rodata:__func__.0] ;= "net_object_get_panel" XOR EDI,EDI CALL .plt:::g_return_if_fail_warning ;undefined g_return_if_fail_warning() XOR EAX,EAX POP RBX RET ?? 66h f Actual src: CcNetworkPanel * net_object_get_panel (NetObject *object) { g_return_val_if_fail (NET_IS_OBJECT (object), NULL); return object->priv->panel; } Predicted src: static void gggg_cb (GObject *self) { g_return_if_fail (self!= NULL); g_return_if_fail (self!= NULL); g_return_if_fail (self!= NULL, NULL); return; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined NewChildCB() ;local_20 undefined8 -20 PUSH R13 LEA RCX,[.rodata:s_New_Child_%d_00104004] ;= "New Child %d" MOV EDX,0x1e PUSH R12 MOV R12,RDI PUSH RBP MOV RBP,RSI MOV ESI,0x1 SUB RSP,0x30 MOV R8D,dword ptr [.bss:count.2] MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_20+0x48],RAX XOR EAX,EAX MOV R13,RSP LEA EAX,[R8 + 0x1] MOV RDI,R13 MOV dword ptr [.bss:count.2],EAX XOR EAX,EAX CALL .plt:::__sprintf_chk ;undefined __sprintf_chk() XOR ECX,ECX MOV RDX,R13 MOV RSI,R12 MOV RDI,RBP CALL CreateNode ;undefined CreateNode() MOV RAX,qword ptr [RSP + local_20+0x48] SUB RAX,qword ptr FS:[0x28] JNZ LAB_00102a78 ADD RSP,0x30 POP RBP POP R12 POP R13 RET LAB_00102a78: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr [RAX] Actual src: static void NewChildCB(Widget w, XtPointer client, XtPointer call) { static int count = 0; char buffer[30]; sprintf (buffer, "New Child %d", count++); CreateNode((Widget)client, w, buffer, XmAlwaysOpen); } Predicted src: static void _cb(void *data, void *data) { char *data = data; if (data->data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.datadata.data.data.data.datadata.data.data.datadata.data.data.data.data.data.data.datadatadata.data.datadata.datadata.datadatadatadatadatadata.datadatadatadatadatadatadatadatadatadatadatadatadat ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _deliver_in_sess() PUSH RBP MOV RBP,RDX PUSH RBX MOV RBX,RSI SUB RSP,0x8 MOV R8,qword ptr [RDX + 0x30] MOV RDI,qword ptr [RSI + 0x10] TEST R8,R8 JZ LAB_001011ea MOV RSI,RDI MOV RDI,R8 CALL .plt:jid_compare_user ;undefined jid_compare_user() TEST EAX,EAX JZ LAB_00101238 LAB_001011d8: MOV RDI,qword ptr [RBP + 0x30] TEST RDI,RDI JZ LAB_001011e6 CALL .plt:jid_free ;undefined jid_free() LAB_001011e6: MOV RDI,qword ptr [RBX + 0x10] LAB_001011ea: CALL .plt:jid_dup ;undefined jid_dup() MOV qword ptr [RBP + 0x30],RAX MOV RDI,RAX CALL .plt:jid_full ;undefined jid_full() MOV RDI,qword ptr [RBP + 0x40] XOR R9D,R9D LEA RCX,[.rodata:DAT_00102000] ;= 66h f MOV R8,RAX MOV EDX,0xffffffff MOV ESI,0x1 CALL .plt:nad_set_attr ;undefined nad_set_attr() LAB_0010121b: CMP qword ptr [RBP + 0x28],0x0 JZ LAB_00101258 LAB_00101222: MOV RDI,RBP CALL .plt:pkt_router ;undefined pkt_router() XOR EAX,EAX LAB_0010122c: ADD RSP,0x8 POP RBX POP RBP RET ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00101238: TEST byte ptr [RBP + 0x24],0x60 JNZ LAB_0010121b MOV RSI,qword ptr [RBX + 0x10] MOV RDI,qword ptr [RBP + 0x30] CALL .plt:jid_compare_full ;undefined jid_compare_full() TEST EAX,EAX JNZ LAB_001011d8 JMP LAB_0010121b ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00101258: MOV EDX,dword ptr [RBP + 0x24] CMP EDX,0x82 JZ LAB_001012b0 AND EDX,0x80 MOV EAX,0xffffff9a JNZ LAB_0010122c MOV RDI,qword ptr [RBX + 0x10] CALL .plt:jid_dup ;undefined jid_dup() MOV qword ptr [RBP + 0x28],RAX MOV RDI,RAX CALL .plt:jid_full ;undefined jid_full() MOV RDI,qword ptr [RBP + 0x40] XOR R9D,R9D LEA RCX,[.rodata:DAT_00102005] ;= 74h t MOV R8,RAX MOV EDX,0xffffffff MOV ESI,0x1 CALL .plt:nad_set_attr ;undefined nad_set_attr() JMP LAB_00101222 ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_001012b0: MOV RDI,RBP CALL .plt:pkt_free ;undefined pkt_free() XOR EAX,EAX JMP LAB_0010122c ?? 90h Actual src: static mod_ret_t _deliver_in_sess(mod_instance_t mi, sess_t sess, pkt_t pkt) { /* ensure from is set correctly if not already by client */ if(pkt->from == NULL || jid_compare_user(pkt->from, sess->jid)!= 0 || (!(pkt->type & pkt_PRESENCE) &&!(pkt->type & pkt_S10N) && jid_compare_full(pkt->from, sess->jid)!= 0)) { if(pkt->from!= NULL) jid_free(pkt->from); pkt->from = jid_dup(sess->jid); nad_set_attr(pkt->nad, 1, -1, "from", jid_full(pkt->from), 0); } /* no to address means its to us */ if(pkt->to == NULL) { /* drop iq-result packets */ /* user client is confirming all iq-set, but we usually do not track these * confirmations and we need to drop it here, not loop back to client */ if(pkt->type == pkt_IQ_RESULT) { pkt_free(pkt); return mod_HANDLED; } /* iq packets without to should have been already handled by modules */ if(pkt->type & pkt_IQ) { return -stanza_err_FEATURE_NOT_IMPLEMENTED; } /* supplant user jid as 'to' */ pkt->to = jid_dup(sess->jid); nad_set_attr(pkt->nad, 1, -1, "to", jid_full(pkt->to), 0); } /* let it go on the wire */ pkt_router(pkt); return mod_HANDLED; } Predicted src: static void _data_data_data_data_data_data_data_data_data_data_data(data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data *data) { data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data(data); data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data(data); data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data(data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data); data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data(data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data(data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_dat ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* tesseract::ColPartition::SpecialBlobsDensity(BlobSpecialTextType) const * ;************************************************************************************************************************************************************ ;undefined SpecialBlobsDensity(ColPartition * this, BlobSpecialTextType param_1) ;this ColPartition * RDI ;param_1 BlobSpecial... ESI PUSH RBP MOV RBP,this PUSH RBX MOVSXD RBX,param_1 SUB RSP,0x8 CMP EBX,0x5 JG LAB_00229bc8 MOVSS XMM0,dword ptr [RBP + RBX*0x4 + 0xc0] ADD RSP,0x8 POP RBX POP RBP RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00229bc8: MOV R9D,0x22d LEA R8,[.rodata:s_colpartition.cpp_0038e832] ;= "colpartition.cpp" XOR EAX,EAX MOV EDX,0x2 LEA RCX,[.rodata:s_in_file_%s,_line_%d_00384012] ;= "in file %s, line %d" LEA param_1,[.rodata:s_type_<_BSTT_COUNT_0038e878] ;= "type < BSTT_COUNT" LEA this,[.data.rel.ro:ASSERT_FAILED] ;= 00384276 CALL .plt:ERRCODE::error ;undefined error(char * param_1, Tess... MOVSS XMM0,dword ptr [RBP + RBX*0x4 + 0xc0] ADD RSP,0x8 POP RBX POP RBP RET ?? 66h f Actual src: float ColPartition::SpecialBlobsDensity(const BlobSpecialTextType type) const { ASSERT_HOST(type < BSTT_COUNT); return special_blobs_densities_[type]; } Predicted src: const char* get_value() const { if (value == NULL) { return NULL; } else { return NULL; } }