============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined fn_handler() ;local_20 undefined8 -20 ;local_30 undefined8 -30 ;local_38 undefined8 -38 PUSH R12 PUSH RBP PUSH RBX MOVSXD RBX,EDI SUB RSP,0x20 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_20+0x38],RAX XOR EAX,EAX LEA EAX,[RBX + -0x1] CMP EAX,0x3f JA LAB_0010680f CALL .plt:::__errno_location ;int * __errno_location(void) SHL RBX,0x4 MOV RDI,RSP MOV R12D,dword ptr [RAX] MOV RBP,RAX LEA RAX,[.data:signals] MOV RAX=>.data:signals,qword ptr [RAX + RBX*0x1] MOV qword ptr [RSP + local_30+0x38],0x0 MOV qword ptr [RSP]=>local_38,RAX CALL funcall ;undefined funcall() MOV dword ptr [RBP],R12D MOV RAX,qword ptr [RSP + local_20+0x38] SUB RAX,qword ptr FS:[0x28] JNZ LAB_0010681b ADD RSP,0x20 POP RBX POP RBP POP R12 RET LAB_0010680f: LEA RDI,[.rodata:s_unknown_signal_001133de] ;= "unknown signal" CALL panic ;undefined panic() LAB_0010681b: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined rc_exit() ;local_10 undefined8 -10 ;local_20 undefined8 -20 ;local_28 undefined8 -28 SUB RSP,0x28 Actual src: static void fn_handler(int s) { char *sig[2]; int olderrno; if (s < 1 || s >= NUMOFSIGNALS) panic("unknown signal"); olderrno = errno; sig[0] = signals[s].name; sig[1] = NULL; funcall(sig); errno = olderrno; } Predicted src: static void sig_handler(int sig) { int i; for (i = 0; i < sig; i++) { if (sig[i] == sig) { exit(1); } } } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined fcml_tf_env_memory_alloc_handler_counter() ADD dword ptr [.bss:counter],0x1 JMP qword ptr [.bss:default_alloc] ?? 0Fh Actual src: fcml_ptr fcml_tf_env_memory_alloc_handler_counter( fcml_usize size ) { counter += 1; return default_alloc( size ); } Predicted src: void alloc_handler(void) { alloc_handler_alloc = 1; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined __pyx_pw_7skimage_5graph_4heap_10BinaryHeap_21__reduce_cython__() PUSH R12 MOV R12,qword ptr [.bss:__pyx_tuple__4] ;=?? PUSH RBP MOV RBP,qword ptr [.bss:__pyx_builtin_TypeError] ;=?? PUSH RBX MOV RAX,qword ptr [RBP + 0x8] MOV RBX,qword ptr [RAX + 0x80] TEST RBX,RBX JZ LAB_0010b070 LEA RDI,[.rodata:s__while_calling_a_Python_object_0010c118] ;= " while calling a Python object" CALL .plt:Py_EnterRecursiveCall ;undefined Py_EnterRecursiveCall() TEST EAX,EAX JNZ LAB_0010b088 XOR EDX,EDX MOV RDI,RBP MOV RSI,R12 CALL RBX MOV RBP,RAX CALL .plt:Py_LeaveRecursiveCall ;undefined Py_LeaveRecursiveCall() TEST RBP,RBP JZ LAB_0010b090 LAB_0010b029: MOV RDI,RBP MOV R12D,0x10c7 CALL __Pyx_Raise.constprop.0 ;undefined __Pyx_Raise.constprop.0() SUB qword ptr [RBP],0x1 JZ LAB_0010b060 LAB_0010b03e: MOV ESI,R12D LEA RCX,[.rodata:s_stringsource_0010dd6b] ;= "stringsource" MOV EDX,0x2 LEA RDI,[.rodata:s_skimage.graph.heap.BinaryHeap.___0010c738] ;= "skimage.graph.heap.BinaryHeap.__r... CALL __Pyx_AddTraceback ;undefined __Pyx_AddTraceback() POP RBX XOR EAX,EAX POP RBP POP R12 RET LAB_0010b060: MOV RDI,RBP CALL .plt:_Py_Dealloc ;undefined _Py_Dealloc() JMP LAB_0010b03e ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_0010b070: MOV RDI,RBP XOR EDX,EDX MOV RSI,R12 CALL .plt:PyObject_Call ;undefined PyObject_Call() MOV RBP,RAX TEST RAX,RAX JNZ LAB_0010b029 NOP dword ptr [RAX] LAB_0010b088: MOV R12D,0x10c3 JMP LAB_0010b03e LAB_0010b090: CALL .plt:PyErr_Occurred ;undefined PyErr_Occurred() TEST RAX,RAX JNZ LAB_0010b088 MOV RAX,qword ptr [->PyExc_SystemError] ;= 00113018 LEA RSI,[.rodata:s_NULL_result_without_error_in_PyO_0010c2f8] ;= "NULL result without error in PyOb... MOV RDI,qword ptr [RAX]=>EXTERNAL:PyExc_SystemError ;=?? CALL .plt:PyErr_SetString ;undefined PyErr_SetString() JMP LAB_0010b088 ?? 66h f Actual src: static PyObject *__pyx_pw_7skimage_5graph_4heap_10BinaryHeap_21__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_7skimage_5graph_4heap_10BinaryHeap_20__reduce_cython__(((struct __pyx_obj_7skimage_5graph_4heap_BinaryHeap *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } Predicted src: static PyObject *__pyx_pw_7setools_9policyrep_9policyrep_5__setstate_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_7setools_9policyrep_9policyrep_5__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_5__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_5__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_5__setstate_cython__(((struct __pyx_obj_7setools_9policyrep *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined xxmc_unlock_surfaces() PUSH RBP LEA RBP,[RDI + 0x1470] PUSH RBX MOV RBX,RDI MOV RDI,RBP SUB RSP,0x8 CALL .plt:::pthread_mutex_lock ;int pthread_mutex_lock(pthread_mutex... MOV EAX,dword ptr [RBX + 0x14c8] TEST EAX,EAX JLE LAB_0010628d SUB EAX,0x1 MOV dword ptr [RBX + 0x14c8],EAX JZ LAB_001062a0 LAB_0010628d: ADD RSP,0x8 MOV RDI,RBP POP RBX POP RBP JMP .plt:::pthread_mutex_unlock ;int pthread_mutex_unlock(pthread_mut... ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_001062a0: LEA RDI,[RBX + 0x1498] CALL .plt:::pthread_cond_broadcast ;int pthread_cond_broadcast(pthread_c... ADD RSP,0x8 MOV RDI,RBP POP RBX POP RBP JMP .plt:::pthread_mutex_unlock ;int pthread_mutex_unlock(pthread_mut... ?? 66h f Actual src: static void xxmc_unlock_surfaces(vo_driver_t *this_gen) { xxmc_driver_t *driver = (xxmc_driver_t *) this_gen; xvmc_context_reader_unlock( &driver->xvmc_lock ); } Predicted src: void pthread_cond_wait(pthread_cond_t *cond) { pthread_cond_lock(&cond->cond); pthread_cond_unlock(&cond->cond); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined item_set_linked_invoker() PUSH R14 MOV R14,RSI XOR ESI,ESI PUSH R13 MOV R13,RDI MOV RDI,R8 PUSH R12 MOV R12,R9 PUSH RBP MOV RBP,R8 SUB RSP,0x8 CALL .plt:::gimp_value_array_index ;undefined gimp_value_array_index() MOV RSI,R14 MOV RDI,RAX CALL gimp_value_get_item ;undefined gimp_value_get_item() MOV ESI,0x1 MOV RDI,RBP MOV R14,RAX CALL .plt:::gimp_value_array_index ;undefined gimp_value_array_index() MOV RDI,RAX CALL .plt:::g_value_get_boolean ;undefined g_value_get_boolean() MOV EBP,EAX CALL gimp_item_get_type ;undefined gimp_item_get_type() MOV RDI,R14 MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() MOV EDX,0x1 MOV ESI,EBP MOV RDI,RAX CALL gimp_item_set_linked ;undefined gimp_item_set_linked() TEST R12,R12 JZ LAB_0046518e MOV R12,qword ptr [R12] LAB_0046518e: ADD RSP,0x8 MOV RDX,R12 MOV RDI,R13 MOV ESI,0x1 POP RBP POP R12 POP R13 POP R14 JMP gimp_procedure_get_return_values ;undefined gimp_procedure_get_return_... ?? 0Fh Actual src: static GimpValueArray * item_set_linked_invoker (GimpProcedure *procedure, Gimp *gimp, GimpContext *context, GimpProgress *progress, const GimpValueArray *args, GError **error) { gboolean success = TRUE; GimpItem *item; gboolean linked; item = gimp_value_get_item (gimp_value_array_index (args, 0), gimp); linked = g_value_get_boolean (gimp_value_array_index (args, 1)); if (success) { gimp_item_set_linked (GIMP_ITEM (item), linked, TRUE); } return gimp_procedure_get_return_values (procedure, success, error? *error : NULL); } Predicted src: static gboolean gimp_item_get_index (GimpProcedure *procedure, Gimp *gimp, Gimp *gimp, Gimp *gimp, GError **error) { Gimp *return_vals; gboolean success = TRUE; gboolean success = TRUE; gboolean success = TRUE; if (gimp_procedure_get_return_values (gimp_value_array_index (gimp), gimp)) { gimp_item_set_index (gimp_value_array_index (return_vals, success), success); } return success; }