============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* LAMMPS_NS::Modify::delete_fix(int) * ;************************************************************************************************************************************************************ ;undefined delete_fix(Modify * this, int param_1) ;this Modify * RDI ;param_1 int ESI PUSH R13 MOVSXD RAX,param_1 PUSH R12 LEA R13,[RAX*0x8] MOV R12,RAX PUSH RBP MOV RBP,this PUSH RBX SUB RSP,0x8 MOV RDX,qword ptr [this + 0x130] MOV this,qword ptr [RDX + RAX*0x8] TEST this,this JZ LAB_008fe0a1 MOV RAX,qword ptr [this] CALL qword ptr [RAX + 0x8] LAB_008fe0a1: MOV RAX,qword ptr [RBP + 0x30] MOV param_1,R12D LEA EBX,[R12 + 0x1] MOV this,qword ptr [RAX] CALL .plt:LAMMPS_NS::Atom::update_callback ;undefined update_callback(Atom * thi... MOV EAX,dword ptr [RBP + 0x124] CMP EBX,EAX JGE LAB_008fe105 MOV this,qword ptr [RBP + 0x130] SUB EAX,R12D MOVSXD RBX,EBX SUB EAX,0x2 LEA RDX,[0x8 + RAX*0x8] LEA param_1,[this + R13*0x1 + 0x8] ADD this,R13 CALL .plt:::memmove ;void * memmove(void * __dest, void *... MOV RDX,qword ptr [RBP + 0x138] NOP dword ptr [RAX + RAX*0x1] LAB_008fe0f0: MOV EAX,dword ptr [RDX + RBX*0x4] MOV dword ptr [RDX + RBX*0x4 + -0x4],EAX MOV EAX,dword ptr [RBP + 0x124] ADD RBX,0x1 CMP EAX,EBX JG LAB_008fe0f0 LAB_008fe105: SUB EAX,0x1 MOV dword ptr [RBP + 0x124],EAX ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 RET ?? 90h Actual src: void Modify::delete_fix(int ifix) { if (fix[ifix]) delete fix[ifix]; atom->update_callback(ifix); // move other Fixes and fmask down in list one slot for (int i = ifix+1; i < nfix; i++) fix[i-1] = fix[i]; for (int i = ifix+1; i < nfix; i++) fmask[i-1] = fmask[i]; nfix--; } Predicted src: void Fix::update_callback(int n) { int i; for (i = 0; i < n; i++) { n[i]->update(); n[i]->update(); n[i]->update(); } } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* padcon_standard_initialize_homotopy(int, int) * ;************************************************************************************************************************************************************ ;undefined padcon_standard_initialize_homotopy(int param_1, int param_2) ;param_1 int EDI ;param_2 int ESI ;local_10 undefined8 -10 ;local_14 undefined4 -14 ;local_18 undefined4 -18 ;local_1c undefined4 -1c SUB RSP,0x28 XOR R8D,R8D XOR ECX,ECX MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_10+0x28],RAX XOR EAX,EAX LEA RDX=>local_18,[RSP + 0x10] MOV dword ptr [RSP + local_18+0x28],param_1 MOV param_1,0x35c MOV dword ptr [RSP + local_14+0x28],param_2 LEA param_2=>local_1c,[RSP + 0xc] MOV dword ptr [RSP + local_1c+0x28],0x0 CALL .plt:_ada_use_c2phc4c ;undefined _ada_use_c2phc4c() MOV RDX,qword ptr [RSP + local_10+0x28] SUB RDX,qword ptr FS:[0x28] JNZ LAB_00f9cf32 ADD RSP,0x28 RET LAB_00f9cf32: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP word ptr [RAX + RAX*0x1] Actual src: int padcon_standard_initialize_homotopy ( int verbose, int homo ) { int fail; int precision = 0; int pars[2]; double *c; pars[0] = verbose; pars[1] = homo; fail = _ada_use_c2phc4c(860,&precision,pars,c,0); return fail; } Predicted src: int main( int width, int width, int height ) { int fail,fail; double *c; fail = _ada_use_c2phc4c( width, height,c,0); fail = _ada_use_c2phc4c( width,c,0); return fail; } ============================== 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: int _GetWindow(Display *dpy, int x, int y, int width, int height) { assert(dpy!= NULL); assert(dpy!= NULL); assert(width!= NULL); assert(width!= NULL); assert(width!= NULL); assert(height!= NULL); assert(width!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); assert(height!= NULL); return(height); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined xdp_screen_cast_set_available_cursor_modes() PUSH R12 MOV R12D,ESI MOV ESI,0x50 CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() MOV EDX,R12D XOR ECX,ECX POP R12 MOV RDI,RAX LEA RSI,[.rodata:s_available-cursor-modes_001a1865] ;= "available-cursor-modes" XOR EAX,EAX JMP .plt:::g_object_set ;undefined g_object_set() ?? 66h f Actual src: void xdp_screen_cast_set_available_cursor_modes (XdpScreenCast *object, guint value) { g_object_set (G_OBJECT (object), "available-cursor-modes", value, NULL); } Predicted src: void udisks_cursor_screen_set_cursor_cursor (UDiskscursorScreen *object, gint value) { g_object_set (G_OBJECT (object), "cursor-cursor-cursor", value, NULL); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined multiport_print6() MOV R8,RDI MOV RDI,RSI MOV ESI,EDX MOVZX EDX,word ptr [R8 + 0x80] JMP __multiport_print ;undefined __multiport_print() ?? 66h f Actual src: static void multiport_print6(const void *ip_void, const struct xt_entry_match *match, int numeric) { const struct ip6t_ip6 *ip = ip_void; __multiport_print(match, numeric, ip->proto); } Predicted src: static void print_port(const struct rte_port *port, const struct rte_port *port, const struct rte_port *port, const void *data) { const struct rte_port *port = data; print_port(port->port, port, data); }