============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* CBufferObject::GetFd() * ;************************************************************************************************************************************************************ ;undefined GetFd(CBufferObject * this) ;this CBufferObje... RDI MOV EAX,dword ptr [this + 0x8] RET ?? 66h f Actual src: int CBufferObject::GetFd() { return m_fd; } Predicted src: int CBuffer::GetBuffer() { return m_Buffer; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined CompositorNodeBlur_use_bokeh_get() MOV RAX,qword ptr [RDI + 0x10] MOV RAX,qword ptr [RAX + 0xf0] MOVZX EAX,byte ptr [RAX + 0x1e] AND EAX,0x1 RET ?? 66h f Actual src: bool CompositorNodeBlur_use_bokeh_get(PointerRNA *ptr) { NodeBlurData *data = (NodeBlurData *)(((bNode *)ptr->data)->storage); return (((data->bokeh) & 1)!= 0); } Predicted src: bool SpaceNodeConstraint_use_use_mode_get(PointerRNA *ptr) { SpaceNodeConstraint *data = (SpaceNodeConstraint *)(((bNode *)(((bNode *)ptr->data)->data); return (((data->flag) & 1)!= 0); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined DetectFilemagicThreadFree() TEST RDI,RDI JZ LAB_00255630 PUSH RBP MOV RBP,RDI MOV RDI,qword ptr [RDI] TEST RDI,RDI JZ LAB_00255626 CALL .plt:::magic_close ;undefined magic_close() LAB_00255626: MOV RDI,RBP POP RBP JMP .plt.got:::free ;void free(void * __ptr) ?? 90h LAB_00255630: RET ?? 66h f Actual src: static void DetectFilemagicThreadFree(void *ctx) { if (ctx!= NULL) { DetectFilemagicThreadData *t = (DetectFilemagicThreadData *)ctx; if (t->ctx) magic_close(t->ctx); SCFree(t); } } Predicted src: void file_free(file_t *file) { if (file == NULL) { return; } if (file->file!= NULL) { free(file->file); file->file = NULL; } free(file); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined MPI_Type_hvector() ;local_20 undefined8 -20 ;local_28 undefined8 -28 PUSH R13 MOV R13,RDX PUSH R12 MOV R12D,ESI PUSH RBP MOV EBP,EDI SUB RSP,0x10 MOV RAX,qword ptr [->ompi_mpi_param_check] ;= 0021a918 CMP byte ptr [RAX]=>.data:ompi_mpi_param_check,0x0 ;= 01h JZ LAB_00199df8 MOV RAX,qword ptr [->ompi_mpi_state] ;= 0023b2f4 MOV EAX=>.bss:ompi_mpi_state,dword ptr [RAX] ;=?? SUB EAX,0x2 CMP EAX,0x2 JA LAB_00199e68 LAB_00199dd2: CMP RCX,qword ptr [->ompi_mpi_datatype_null] ;= 00225120 SETZ AL TEST RCX,RCX SETZ DL OR AL,DL JNZ LAB_00199e10 TEST R8,R8 JZ LAB_00199e10 TEST EBP,EBP JS LAB_00199e98 TEST R12D,R12D JS LAB_00199e40 LAB_00199df8: ADD RSP,0x10 MOV RDX,R13 MOV ESI,R12D MOV EDI,EBP POP RBP POP R12 POP R13 JMP .plt:LAB_0012a220 ?? 66h f ?? 90h LAB_00199e10: MOV RSI=>.bss:ompi_mpi_comm_world,qword ptr [->ompi_mpi_comm_world] ;= 00229ee0 ;=?? LEA R8,[.rodata:FUNC_NAME] ;= "MPI_Type_hvector" MOV ECX,0x3 MOV EDX,dword ptr [RSI + 0x140]=>.bss:ompi_mpi_comm_world[320] MOV RDI,qword ptr [RSI + 0x138]=>.bss:ompi_mpi_comm_world[312] LAB_00199e30: ADD RSP,0x10 POP RBP POP R12 POP R13 JMP .plt:ompi_errhandler_invoke ;undefined ompi_errhandler_invoke() ?? 66h f ?? 90h LAB_00199e40: MOV RSI,qword ptr [->ompi_mpi_comm_world] ;= 00229ee0 LEA R8,[.rodata:FUNC_NAME] ;= "MPI_Type_hvector" MOV ECX,0xd MOV EDX,dword ptr [RSI + 0x140]=>.bss:ompi_mpi_comm_world[320] MOV RDI,qword ptr [RSI + 0x138]=>.bss:ompi_mpi_comm_world[312] JMP LAB_00199e30 ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00199e68: LEA RDX,[.rodata:FUNC_NAME] ;= "MPI_Type_hvector" XOR ESI,ESI XOR EDI,EDI XOR EAX,EAX MOV qword ptr [RSP + local_20+0x28],R8 MOV qword ptr [RSP]=>local_28,RCX CALL .plt.got:ompi_mpi_errors_are_fatal_comm_handler ;undefined ompi_mpi_errors_are_fatal_... MOV R8,qword ptr [RSP + local_20+0x28] MOV RCX,qword ptr [RSP]=>local_28 JMP LAB_00199dd2 ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00199e98: MOV RSI,qword ptr [->ompi_mpi_comm_world] ;= 00229ee0 LEA R8,[.rodata:FUNC_NAME] ;= "MPI_Type_hvector" MOV ECX,0x2 MOV EDX,dword ptr [RSI + 0x140]=>.bss:ompi_mpi_comm_world[320] MOV RDI,qword ptr [RSI + 0x138]=>.bss:ompi_mpi_comm_world[312] JMP LAB_00199e30 ?? 0Fh Actual src: int MPI_Type_hvector(int count, int blocklength, MPI_Aint stride, MPI_Datatype oldtype, MPI_Datatype *newtype) { MEMCHECKER( memchecker_datatype(oldtype); ); if ( MPI_PARAM_CHECK ) { OMPI_ERR_INIT_FINALIZE(FUNC_NAME); if (NULL == oldtype || MPI_DATATYPE_NULL == oldtype || NULL == newtype) { return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_TYPE, FUNC_NAME ); } else if (count < 0) { return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_COUNT, FUNC_NAME ); } else if (blocklength < 0) { return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_ARG, FUNC_NAME ); } } return PMPI_Type_create_hvector(count, blocklength, stride, oldtype, newtype); } Predicted src: int handler_handler_handler(int argc, char **argv, char **argv, char **argv) { int ret; if (argc!= 1) { if (argc!= 2) { ret = -1; return ret; } } if (argc!= 2) { if (argc!= 2) { return ret; } if (argc!= 2) { return ret; } if (argc!= 2) { return ret; } if (argc!= 2) { return ret; } if (argc!= 2) { return ret; } if (argc!= 2) { return ret; } } return 0; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* ExecutiveRebuildAllObjectDist(PyMOLGlobals*) * ;************************************************************************************************************************************************************ ;undefined ExecutiveRebuildAllObjectDist(PyMOLGlobals * param_1) ;param_1 PyMOLGlobals * RDI PUSH R12 PUSH RBP MOV RBP,param_1 PUSH RBX MOV R12,qword ptr [param_1 + 0xd8] MOV RBX,qword ptr [R12 + 0x58] TEST RBX,RBX JZ LAB_0049328f NOP dword ptr [RAX + RAX*0x1] LAB_00493270: MOV EAX,dword ptr [RBX] TEST EAX,EAX JNZ LAB_00493283 MOV param_1,qword ptr [RBX + 0x108] CMP dword ptr [param_1 + 0x10],0x4 JZ LAB_004932a0 LAB_00493283: MOV RBX,qword ptr [RBX + 0x110] TEST RBX,RBX JNZ LAB_00493270 LAB_0049328f: POP RBX MOV param_1,RBP POP RBP POP R12 JMP SceneInvalidate ;undefined SceneInvalidate(PyMOLGloba... ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_004932a0: MOV ESI,0xffffffff CALL ObjectDistInvalidateRep ;undefined ObjectDistInvalidateRep(Ob... CMP qword ptr [R12 + 0x58],0x0 JNZ LAB_00493283 POP RBX MOV param_1,RBP POP RBP POP R12 JMP SceneInvalidate ;undefined SceneInvalidate(PyMOLGloba... ?? 66h f Actual src: void ExecutiveRebuildAllObjectDist(PyMOLGlobals * G) { CExecutive *I = G->Executive; SpecRec *rec = NULL; while(ListIterate(I->Spec, rec, next)) { if(rec->type == cExecObject) { if(rec->obj->type == cObjectMeasurement) { ObjectDistInvalidateRep((ObjectDist *) rec->obj, cRepAll); } } } SceneInvalidate(G); } Predicted src: void GObject_Destroy(GObject *pObject) { GObject *pObject = pObject->pObject; GObject *pObject = pObject->pObject; GObject *pObject = pObject->pObject; GObject *pObject = pObject->pObject; GObject *pObject = pObject->pObject; GObject *pObject = pObject->pObject; GObject *pObject = pObject->pObject; GObject *pObject = pObject->pObject; while (pObject) { pObject = pObject->pObject; pObject->pObject = pObject->pObject; pObject->pObject = pObject->pObject; pObject->pObject = pObject->pObject; pObject->pObject = pObject->pObject; } }