============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* Konclude::Reasoner::Kernel::Process::CIndividualSaturationProcessNode::setOccurrenceStatisticsCollectingRequired(bool) * ;************************************************************************************************************************************************************ ;undefined setOccurrenceStatisticsCollectingRequired(CIndividualSaturationProcessNode * this, bool param_1) ;this CIndividual... RDI ;param_1 bool SIL MOV byte ptr [this + 0xea],param_1 MOV RAX,this RET ?? 90h Actual src: CIndividualSaturationProcessNode* CIndividualSaturationProcessNode::setOccurrenceStatisticsCollectingRequired(bool collectingRequired) { mOccurrenceStatisticsCollectingRequired = collectingRequired; return this; } Predicted src: CIndividualSaturationProcessNode* CIndividualSaturationProcessNode::setIndividualSaturationProcessNode(bool val) { mIndividualSaturationProcessNode = val; return this; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined sock_dealloc() ;local_10 undefined8 -10 PUSH RBP MOV RBP,RSP SUB RSP,0x10 MOV qword ptr [RBP + local_10+0x8],RDI MOV RAX,qword ptr [RBP + local_10+0x8] MOV EAX,dword ptr [RAX + 0x20] CMP EAX,-0x1 JZ LAB_0035dbfc MOV RAX,qword ptr [RBP + local_10+0x8] MOV EAX,dword ptr [RAX + 0x20] MOV EDI,EAX CALL .plt:::close ;int close(int __fd) LAB_0035dbfc: MOV RAX,qword ptr [RBP + local_10+0x8] MOV RAX,qword ptr [RAX + 0x40] TEST RAX,RAX JZ LAB_0035dc15 MOV RAX,qword ptr [RBP + local_10+0x8] MOV RDI,RAX CALL PyObject_ClearWeakRefs ;undefined PyObject_ClearWeakRefs() LAB_0035dc15: MOV RAX,qword ptr [RBP + local_10+0x8] MOV RAX,qword ptr [RAX + 0x18] MOV RDX,qword ptr [RAX + 0x150] MOV RAX,qword ptr [RBP + local_10+0x8] MOV RDI,RAX CALL RDX NOP LEAVE RET ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined sock_repr() ;local_10 undefined8 -10 ;local_218 undefined1 -218 ;local_220 undefined8 -220 ;local_230 undefined8 -230 PUSH RBP Actual src: static void sock_dealloc(PySocketSockObject *s) { if (s->sock_fd!= -1) (void) SOCKETCLOSE(s->sock_fd); if (s->weakreflist!= NULL) PyObject_ClearWeakRefs((PyObject *)s); Py_TYPE(s)->tp_free((PyObject *)s); } Predicted src: static void close(void *data) { struct data *data = data; if (data->fd!= -1) { close(data->fd); } if (data->fd!= -1) { close(data->fd); } } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined libxmp_get_sample() MOV EAX,dword ptr [RDI + 0x6d0] CMP EAX,ESI JLE LAB_00118910 MOVSXD RSI,ESI MOV RDX,qword ptr [RDI + 0x700] LEA RAX,[RSI*0x8] SUB RAX,RSI LEA R8,[RDX + RAX*0x8] LAB_00118903: MOV RAX,R8 RET ?? 66h f ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00118910: MOV EDX,dword ptr [RDI + 0x2430] XOR R8D,R8D ADD EDX,EAX CMP EDX,ESI JLE LAB_00118903 SUB ESI,EAX MOV RDX,qword ptr [RDI + 0x2440] MOVSXD RSI,ESI LEA RAX,[RSI*0x8] SUB RAX,RSI LEA R8,[RDX + RAX*0x8] MOV RAX,R8 RET ?? 66h f Actual src: struct xmp_sample *libxmp_get_sample(struct context_data *ctx, int smp) { struct smix_data *smix = &ctx->smix; struct module_data *m = &ctx->m; struct xmp_module *mod = &m->mod; struct xmp_sample *xxs; if (smp < mod->smp) { xxs = &mod->xxs[smp]; } else if (smp < mod->smp + smix->smp) { xxs = &smix->xxs[smp - mod->smp]; } else { xxs = NULL; } return xxs; } Predicted src: int sample_get_sample(sample_t *sample, int index) { int i; for (i = 0; i < index; i++) { if (sample->sample[index].sample == index) returnsample->sample[index].sample; } return 0; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined mlt_log_set_callback() MOV qword ptr [.data:callback],RDI ;= 00118010 RET ?? 0Fh Actual src: void mlt_log_set_callback( void (*new_callback)( void*, int, const char*, va_list ) ) { callback = new_callback; } Predicted src: void log_set_callback(log_callback_t callback) { callback = callback; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined ply_progress_bar_new() SUB RSP,0x8 MOV ESI,0x40 MOV EDI,0x1 CALL .plt:::calloc ;void * calloc(size_t __nmemb, size_t... MOV RDX,0x1000000ffffffff OR byte ptr [RAX + 0x38],0x1 MOV qword ptr [RAX + 0x28],RDX MOV qword ptr [RAX + 0x30],0x0 ADD RSP,0x8 RET ?? 66h f Actual src: ply_progress_bar_t * ply_progress_bar_new (void) { ply_progress_bar_t *progress_bar; progress_bar = calloc (1, sizeof(ply_progress_bar_t)); progress_bar->is_hidden = true; progress_bar->fg_color = 0xffffffff; /* Solid white */ progress_bar->bg_color = 0x01000000; /* Transparent */ progress_bar->fraction_done = 0.0; return progress_bar; } Predicted src: GtkWidget * progress_progress_bar_new (void) { GtkWidget *progress_bar; progress_bar = malloc (sizeof (progress_bar)); if (progress_bar == NULL) return NULL; progress_bar->progress = malloc (sizeof (progress_bar)); progress_bar->progress = NULL; progress_bar->progress = NULL; returnprogress_bar; }