============================== Sample 1 ============================== 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 MPI_Comm_comm_comm_handler(MPI_Comm_t *comm, MPI_Comm_t *comm, MPI_Comm_t *comm, MPI_Comm_t *comm) { int rc = MPI_Comm_comm_comm_comm_comm(comm,comm,comm,comm,comm,comm); if (rc!= MPI_SUCCESS) { MPI_Comm_comm_comm_t *comm = MPI_Comm_comm(comm); MPI_Comm_comm_comm_comm_t *comm = MPI_Comm_comm_comm(comm); MPI_Comm_comm_comm_comm_comm_t *comm = MPI_Comm_comm_comm(comm); MPI_Comm_comm_comm_comm_comm_comm_comm_t *comm = MPI_Comm_comm_comm(comm); MPI_Comm_comm_comm_comm_comm_comm_comm_comm_comm_t *comm = MPI_Comm_comm_comm_comm(comm); MPI_Comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_t *comm = MPI_Comm_comm_comm_comm_comm(comm); MPI_Comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_t *comm = MPI_Comm_comm_comm_comm_comm_comm_comm_comm_comm_comm(comm); MPI_Comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm(comm,comm); MPI_Comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm(comm,comm); MPI_Comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm(comm,comm); MPI_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm(comm,comm); MPI_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm_comm ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* ResourceManager::downloadLicenseFinished() * ;************************************************************************************************************************************************************ ;undefined downloadLicenseFinished(ResourceManager * this) ;this ResourceMan... RDI LEA RAX,[.bss:ScQApp] ;=?? MOV RDX,this LEA RCX,[.rodata:s_1downloadLicenseFinished()_00f70b32] ;= "1downloadLicenseFinished()" LEA RSI,[.rodata:s_2finished()_00f3e05a] ;= "2finished()" MOV RAX=>.bss:ScQApp,qword ptr [RAX] ;=?? MOV this,qword ptr [RAX + 0x68] JMP .plt:::QObject::disconnect ;undefined disconnect(QObject * param... ?? 66h f Actual src: void ResourceManager::downloadLicenseFinished() { disconnect(ScQApp->dlManager(), SIGNAL(finished()), this, SLOT(downloadLicenseFinished())); } Predicted src: void MainWindow::disconnect(void) { Q_UNUSED(disconnect); Q_UNUSED(disconnect); Q_UNUSED(disconnect); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined glfwSetWindowAspectRatio() SUB RSP,0x8 TEST RDI,RDI JZ LAB_0010ffe2 TEST ESI,ESI JZ LAB_0010ffc3 TEST EDX,EDX JZ LAB_00110001 LEA RAX,[.bss:_glfw] ;=?? MOV ECX,dword ptr [RAX]=>.bss:_glfw ;=?? TEST ECX,ECX JZ LAB_0010ff90 CMP ESI,-0x1 JZ LAB_0010ff6c CMP EDX,-0x1 JZ LAB_0010ff6c TEST ESI,ESI JLE LAB_0010ffa8 TEST EDX,EDX JLE LAB_0010ffa8 LAB_0010ff6c: CMP qword ptr [RDI + 0x48],0x0 MOV dword ptr [RDI + 0x68],ESI MOV dword ptr [RDI + 0x6c],EDX JZ LAB_0010ff80 LAB_0010ff79: ADD RSP,0x8 RET ?? 66h f ?? 90h LAB_0010ff80: MOV EAX,dword ptr [RDI + 0x8] TEST EAX,EAX JZ LAB_0010ff79 ADD RSP,0x8 JMP _glfwPlatformSetWindowAspectRatio ;undefined _glfwPlatformSetWindowAspe... LAB_0010ff90: XOR ESI,ESI MOV EDI,0x10001 XOR EAX,EAX ADD RSP,0x8 JMP _glfwInputError ;undefined _glfwInputError(undefined... ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_0010ffa8: MOV ECX,EDX MOV EDI,0x10004 MOV EDX,ESI XOR EAX,EAX LEA RSI,[.rodata:s_Invalid_window_aspect_ratio_%i:%_001368d0] ;= "Invalid window aspect ratio %i:%i" ADD RSP,0x8 JMP _glfwInputError ;undefined _glfwInputError(undefined... LAB_0010ffc3: LEA RCX,[.rodata:__PRETTY_FUNCTION__.28] ;= "glfwSetWindowAspectRatio" MOV EDX,0x26d LEA RSI,[.rodata:s_./src/window.c_0013613d] ;= "./src/window.c" LEA RDI,[.rodata:s_numer_!=_0_001361c1] ;= "numer!= 0" CALL .plt:::__assert_fail ;void __assert_fail(char * __assertio... LAB_0010ffe2: LEA RCX,[.rodata:__PRETTY_FUNCTION__.28] ;= "glfwSetWindowAspectRatio" MOV EDX,0x26c LEA RSI,[.rodata:s_./src/window.c_0013613d] ;= "./src/window.c" LEA RDI,[.rodata:s_window_!=_NULL_0011a4a4] ;= "window!= NULL" CALL .plt:::__assert_fail ;void __assert_fail(char * __assertio... LAB_00110001: LEA RCX,[.rodata:__PRETTY_FUNCTION__.28] ;= "glfwSetWindowAspectRatio" MOV EDX,0x26e LEA RSI,[.rodata:s_./src/window.c_0013613d] ;= "./src/window.c" LEA RDI,[.rodata:s_denom_!=_0_001361cc] ;= "denom!= 0" CALL .plt:::__assert_fail ;void __assert_fail(char * __assertio... ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined glfwGetFramebufferSize() TEST RDI,RDI Actual src: GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow* handle, int numer, int denom) { _GLFWwindow* window = (_GLFWwindow*) handle; assert(window!= NULL); assert(numer!= 0); assert(denom!= 0); _GLFW_REQUIRE_INIT(); if (numer!= GLFW_DONT_CARE && denom!= GLFW_DONT_CARE) { if (numer <= 0 || denom <= 0) { _glfwInputError(GLFW_INVALID_VALUE, "Invalid window aspect ratio %i:%i", numer, denom); return; } } window->numer = numer; window->denom = denom; if (window->monitor ||!window->resizable) return; _glfwPlatformSetWindowAspectRatio(window, numer, denom); } Predicted src: void _XmGetWindow(Display *dpy, int x, int y) { assert(dpy!= NULL); assert(dpy!= NULL); assert(dpy!= NULL); if (width!= 0) { _XmGetWindow(dpy, x, y); return; } if (width!= 0) { _XmGetWindow(dpy, x, y); return; } _XmGetWindow(dpy, x, y); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined init_child_item() PUSH R12 PUSH RBP MOV RBP,RDI PUSH RBX MOV RBX,qword ptr [RDI + 0x60] CALL .plt:e_tree_get_type ;undefined e_tree_get_type() MOV R12,RAX CALL .plt:::gtk_accessible_get_type ;undefined gtk_accessible_get_type() MOV RDI,RBP MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() MOV RDI,RAX CALL .plt:::gtk_accessible_get_widget ;undefined gtk_accessible_get_widget() MOV RSI,R12 MOV RDI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() TEST RAX,RAX JZ LAB_002ea090 MOV RDI,RAX CALL .plt:e_tree_get_item ;undefined e_tree_get_item() CMP qword ptr [RBX],0x0 JZ LAB_002ea070 POP RBX POP RBP POP R12 RET ?? 66h f ?? 90h LAB_002ea070: MOV ESI,0x50 MOV RDI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() MOV RDI,RAX CALL .plt:::atk_gobject_accessible_for_object ;undefined atk_gobject_accessible_for... MOV qword ptr [RBX],RAX POP RBX POP RBP POP R12 RET ?? 0Fh ?? 1Fh ?? 00h LAB_002ea090: POP RBX LEA RDX,[.rodata:DAT_00318012] ;= 74h t LEA RSI,[.rodata:__func__.0] ;= "init_child_item" POP RBP LEA RDI,[.rodata:s_evolution-util_002ef0ab] ;= "evolution-util" POP R12 JMP .plt:::g_return_if_fail_warning ;undefined g_return_if_fail_warning() ?? 66h f Actual src: static void init_child_item (GalA11yETree *a11y) { GalA11yETreePrivate *priv = a11y->priv; ETree *tree; ETableItem * eti; tree = E_TREE (gtk_accessible_get_widget (GTK_ACCESSIBLE (a11y))); g_return_if_fail (tree); eti = e_tree_get_item (tree); if (priv->child_item == NULL) { priv->child_item = atk_gobject_accessible_for_object (G_OBJECT (eti)); } } Predicted src: static void e_tree_item_init (GtkWidget *widget) { GList *child; g_return_if_fail (E_IS_TREE_ITEM (widget)); child = E_TREE_ITEM (widget); if (child == NULL) return; child->priv->items = g_object_get_data (G_OBJECT (child), "items"); child->priv->items = NULL; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined parser_isexpr() ;local_10 undefined8 -10 ;local_14 undefined4 -14 ;local_20 undefined8 -20 ;local_28 undefined8 -28 ;local_30 undefined8 -30 PUSH RBP MOV RBP,RSP SUB RSP,0x30 MOV qword ptr [RBP + local_20+0x8],RDI MOV qword ptr [RBP + local_28+0x8],RSI MOV qword ptr [RBP + local_30+0x8],RDX MOV qword ptr [RBP + local_10+0x8],0x0 MOV RAX,qword ptr [RBP + local_20+0x8] TEST RAX,RAX JNZ LAB_00102ebc LEA RDX=>local_20,[RBP + -0x18] MOV RSI,qword ptr [RBP + local_30+0x8] MOV RAX,qword ptr [RBP + local_28+0x8] MOV R9,RDX LEA R8,[.data:PyST_Type] LEA RDX,[.data:keywords.4] MOV RCX=>.data:keywords.4,RDX LEA RDX,[.rodata:s_O!:isexpr_0010d2cc] ;= "O!:isexpr" MOV RDI,RAX MOV EAX,0x0 CALL .plt:PyArg_ParseTupleAndKeywords ;undefined PyArg_ParseTupleAndKeywords() MOV dword ptr [RBP + local_14+0x8],EAX JMP LAB_00102ee5 LAB_00102ebc: MOV RSI,qword ptr [RBP + local_30+0x8] MOV RAX,qword ptr [RBP + local_28+0x8] LEA RDX,[.data:keywords.4[8]] MOV RCX=>.data:keywords.4[8],RDX LEA RDX,[.rodata:s_:isexpr_0010d2d6] ;= ":isexpr" MOV RDI,RAX MOV EAX,0x0 CALL .plt:PyArg_ParseTupleAndKeywords ;undefined PyArg_ParseTupleAndKeywords() MOV dword ptr [RBP + local_14+0x8],EAX LAB_00102ee5: CMP dword ptr [RBP + local_14+0x8],0x0 JZ LAB_00102f37 MOV RAX,qword ptr [RBP + local_20+0x8] MOV EAX,dword ptr [RAX + 0x28] CMP EAX,0x1 JNZ LAB_00102f00 MOV RAX,qword ptr [->_Py_TrueStruct] ;= 00112170 JMP LAB_00102f07 LAB_00102f00: MOV RAX,qword ptr [->_Py_ZeroStruct] ;= 00112020 LAB_00102f07: ; FWD[3,0]: Stack[-0x10],00112020,00112170 MOV qword ptr [RBP + local_10+0x8],RAX=>EXTERNAL:_Py_TrueStruct ;=?? MOV RAX,qword ptr [->_Py_RefTotal] ;= 00112178 MOV RAX=>EXTERNAL:_Py_RefTotal,qword ptr [RAX] ;=?? LEA RDX,[RAX + 0x1] MOV RAX,qword ptr [->_Py_RefTotal] ;= 00112178 MOV qword ptr [RAX]=>EXTERNAL:_Py_RefTotal,RDX ;=?? MOV RAX,qword ptr [RBP + local_10+0x8] ; FWD[2,0]: 00112030,00112180 MOV RAX,qword ptr [RAX + 0x10]=>EXTERNAL:PyDict_New ;=?? LEA RDX,[RAX + 0x1] MOV RAX,qword ptr [RBP + local_10+0x8] ; FWD[2,0]: 00112030,00112180 MOV qword ptr [RAX + 0x10]=>EXTERNAL:PyDict_New,RDX ;=?? LAB_00102f37: ; FWD[3,0]: Stack[-0x10],00112020,00112170 MOV RAX=>EXTERNAL:_Py_TrueStruct,qword ptr [RBP + local_10+0x8] ;=?? LEAVE RET ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined parser_issuite() ;local_10 undefined8 -10 ;local_14 undefined4 -14 ;local_20 undefined8 -20 ;local_28 undefined8 -28 ;local_30 undefined8 -30 PUSH RBP Actual src: static PyObject* parser_isexpr(PyST_Object *self, PyObject *args, PyObject *kw) { PyObject* res = 0; int ok; static char *keywords[] = {"ast", NULL}; if (self == NULL) ok = PyArg_ParseTupleAndKeywords(args, kw, "O!:isexpr", keywords, &PyST_Type, &self); else ok = PyArg_ParseTupleAndKeywords(args, kw, ":isexpr", &keywords[1]); if (ok) { /* Check to see if the ST represents an expression or not. */ res = (self->st_type == PyST_EXPR)? Py_True : Py_False; Py_INCREF(res); } return (res); } Predicted src: static PyObject * py_is_expr(PyObject *self, PyObject *args) { PyObject *return_value = NULL; static char *name[] = {"name", NULL}; if (!PyArg_ParseTupleAndKeywords(args, kwargs, (char *) "O!", &Py_Type, &name)) return NULL; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", &Py_Type, &name)) return NULL; Py_INCREF(Py_None); return Py_None; }