============================== 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: void file_init(int argc, char **argv) { if (argc > 0) { fprintf(stderr, "%s\n", argv[0], argv[1], argv[2], argv[2], argv[2]); } } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined snesgetksp_() PUSH RBX MOV RDI,qword ptr [RDI] MOV RBX,RDX CALL .plt:SNESGetKSP ;undefined SNESGetKSP() MOV dword ptr [RBX],EAX POP RBX RET ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined snessetdm_() PUSH RBX Actual src: PETSC_EXTERN void snesgetksp_(SNES snes,KSP *ksp, int *__ierr) { *__ierr = SNESGetKSP( (SNES)PetscToPointer((snes) ),ksp); } Predicted src: PETSC_EXTERN void petscgetgetget_(DM dm,PetscInt *ierr, int *__ierr) { *__ierr = PetscGetGetgetgetgetgetgetget_( (DM)PetscToPointer((dm) ), (DM)PetscToPointer((dm) ), (DM)PetscToPointer((dm) ), (DM) ), (DM)PetscToPointer((dm) ), (DM) ), (DM)PetscToPointer((dm) ), (DM) ), (DM)PetscToPointer((dm) ), (DM) ), (DM)PetscToPointer((dm) )); } ============================== Sample 3 ============================== 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: void init_row(int x, int y, int x, int y) { if (x < 0) return; x = x; x = x; x = y; x = y; x = y; x = y; x = y; x = y; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined allocate_row() PUSH RBX MOV RAX,qword ptr [RDI] MOV RBX,RDI LEA RDI,[RAX + 0x10] CALL .plt:shash_count ;undefined shash_count() MOV R8,RAX MOV RAX,qword ptr [RBX] LEA RDX,[R8 + R8*0x2] MOV RAX,qword ptr [RAX + 0x38] SHL RAX,0x4 LEA RDI,[RAX + RDX*0x8 + 0x48] CALL .plt:xmalloc ;undefined xmalloc() LEA RDX,[RAX + 0x20] MOV qword ptr [RAX + 0x10],RBX MOV qword ptr [RAX + 0x20],RDX MOV qword ptr [RAX + 0x28],RDX LEA RDX,[RAX + 0x30] MOV qword ptr [RAX + 0x18],0x0 MOV qword ptr [RAX + 0x30],RDX MOV qword ptr [RAX + 0x38],RDX MOV qword ptr [RAX + 0x40],0x0 POP RBX RET ?? 66h f Actual src: static struct ovsdb_row * allocate_row(const struct ovsdb_table *table) { size_t n_fields = shash_count(&table->schema->columns); size_t n_indexes = table->schema->n_indexes; size_t row_size = (offsetof(struct ovsdb_row, fields) + sizeof(struct ovsdb_datum) * n_fields + sizeof(struct hmap_node) * n_indexes); struct ovsdb_row *row = xmalloc(row_size); row->table = CONST_CAST(struct ovsdb_table *, table); row->txn_row = NULL; ovs_list_init(&row->src_refs); ovs_list_init(&row->dst_refs); row->n_refs = 0; return row; } Predicted src: static void row_row_row_row_row_row(structrow *row) { structrow_row *row =row->row_row; structrow_row *row =row->row_row; row->row_row = &row->row_row; row->row_row = &row->row_row; row->row_row = &row->row_row; row->row_row = &row->row_row; row->row_row = &row->row_row; row->row_row = &row->row_row; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _wrap_plfit_continuous_options_t___str__() ;local_10 undefined8 -10 ;local_18 undefined8 -18 PUSH RBP SUB RSP,0x10 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_10+0x18],RAX XOR EAX,EAX MOV qword ptr [RSP]=>local_18,0x0 TEST RSI,RSI JZ LAB_0010a4b8 MOV RDX,qword ptr [.bss:swig_types] ;=?? MOV RDI,RSI XOR ECX,ECX MOV RSI,RSP CALL SWIG_Python_ConvertPtrAndOwn.constprop.0 ;undefined SWIG_Python_ConvertPtrAndO... MOV EDI,EAX TEST EAX,EAX JS LAB_0010a490 MOV RAX,qword ptr [RSP]=>local_18 SUB RSP,0x8 LEA RBP,[.bss:temp.17] ;=?? LEA RCX,[.rodata:s_finite_size_correction_=_%d,_xmi_0010e910] ;= "finite_size_correction = %d, xmin... MOV EDX,0x200 MOV ESI,0x1 MOV RDI=>.bss:temp.17,RBP ;=?? MOVSD XMM0,qword ptr [RAX + 0x10] MOV R9D,dword ptr [RAX + 0x4] MOVZX R8D,word ptr [RAX] MOV EAX,dword ptr [RAX + 0x8] PUSH RAX MOV EAX,0x1 CALL .plt:::__sprintf_chk ;undefined __sprintf_chk() MOV RDI=>.bss:temp.17,RBP ;=?? CALL .plt:::strlen ;size_t strlen(char * __s) LEA RDX,[.rodata:s_surrogateescape_0010c24e] ;= "surrogateescape" MOV RDI=>.bss:temp.17,RBP ;=?? MOV RSI,RAX CALL .plt:::PyUnicode_DecodeUTF8 ;undefined PyUnicode_DecodeUTF8() POP RDX POP RCX LAB_0010a47a: MOV RDX,qword ptr [RSP + local_10+0x18] SUB RDX,qword ptr FS:[0x28] JNZ LAB_0010a4bc ADD RSP,0x10 POP RBP RET LAB_0010a490: CMP EAX,-0x1 MOV EAX,0xfffffffb LEA RSI,[.rodata:s_in_method_'plfit_continuous_opti_0010e8a0] ;= "in method 'plfit_continuous_optio... CMOVZ EDI,EAX CALL SWIG_Python_ErrorType ;undefined SWIG_Python_ErrorType() MOV RDI,RAX CALL .plt:::PyErr_SetString ;undefined PyErr_SetString() XOR EAX,EAX JMP LAB_0010a47a ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_0010a4b8: XOR EAX,EAX JMP LAB_0010a47a LAB_0010a4bc: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr CS:[RAX + RAX*0x1] Actual src: SWIGINTERN PyObject *_wrap_plfit_continuous_options_t___str__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; struct _plfit_continuous_options_t *arg1 = (struct _plfit_continuous_options_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; char *result = 0 ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p__plfit_continuous_options_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "plfit_continuous_options_t___str__" "', argument " "1"" of type '" "struct _plfit_continuous_options_t *""'"); } arg1 = (struct _plfit_continuous_options_t *)(argp1); result = (char *)_plfit_continuous_options_t___str__(arg1); resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } Predicted src: SWIGINTERN PyObject *_wrap_ldns_struct_struct_struct_struct_struct_struct *SWIGUNUSEDPARM(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; struct svn_struct_struct_struct_struct_struct_struct *arg1 = (struct svn_struct_struct_struct_struct_struct *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldns_struct_struct_struct_struct_struct_struct_struct_struct_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ldns_struct_struct_struct_struct_struct_struct_struct_struct_struct_struct_struct_struct_struct_struct__struct_struct_struct_struct_struct__struct_struct__struct_struct__struct_struct__struct_struct__struct_struct__struct_struct__struct_struct__struct__struct_struct__struct__struct__struct_struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct__struct_