============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined vector_delete() TEST RDI,RDI JZ LAB_001bd150 PUSH RBP MOV RBP,RDI CALL .plt:IvocVect::~IvocVect ;undefined ~IvocVect(IvocVect * this) MOV RDI,RBP MOV ESI,0x28 POP RBP JMP .plt:::operator.delete ;void operator.delete(void * param_1,... ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_001bd150: RET ?? 66h f Actual src: void vector_delete(Vect* v){delete v;} Predicted src: void delete_delete(delete_delete *delete) { if (delete) { delete delete; } } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gdm_dbus_chooser_skeleton_init() PUSH RBX MOV RBX,RDI MOVSXD RDI,dword ptr [.bss:GdmDBusChooserSkeleton_private_offset] ADD RDI,RBX MOV qword ptr [RBX + 0x20],RDI ADD RDI,0x20 CALL .plt:::g_mutex_init ;undefined g_mutex_init() MOV RBX,qword ptr [RBX + 0x20] CALL .plt:::g_main_context_ref_thread_default ;undefined g_main_context_ref_thread_... MOV qword ptr [RBX + 0x18],RAX POP RBX RET ?? 66h f Actual src: static void gdm_dbus_chooser_skeleton_init (GdmDBusChooserSkeleton *skeleton) { #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 skeleton->priv = gdm_dbus_chooser_skeleton_get_instance_private (skeleton); #else skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GDM_DBUS_TYPE_CHOOSER_SKELETON, GdmDBusChooserSkeletonPrivate); #endif g_mutex_init (&skeleton->priv->lock); skeleton->priv->context = g_main_context_ref_thread_default (); } Predicted src: static void g_dbus_skeleton_skeleton_skeleton_skeleton_skeleton_init (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) { g_mutex_init (&skeleton->priv->skeleton); g_mutex_init (&skeleton->priv->lock); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined TSUserArgGet() PUSH RBX MOV EBX,ESI TEST RDI,RDI JZ LAB_00216ab0 MOV RCX,-0x2 LEA RDX,[.data.rel.ro:PluginUserArgsMixin::typeinfo] ;= 007686b0 LEA RSI,[.data.rel.ro:Continuation::typeinfo] ;= 00768430 CALL .plt:::__dynamic_cast ;undefined __dynamic_cast() MOV RDI,RAX TEST RAX,RAX JZ LAB_00216ae6 MOV RAX,qword ptr [RAX] MOVSXD RSI,EBX POP RBX MOV RAX,qword ptr [RAX + 0x10] JMP RAX ?? 66h f ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00216ab0: MOVSXD RSI,ESI CMP RSI,0x7f JBE LAB_00216ad8 MOV EDX,0x38 LEA RSI,[.rodata:s_../include/tscore/PluginUserArgs_005153a0+16] ;= "../include/tscore/PluginUserArgs.h" LEA RDI,[.rodata:s_ix_<_user_args.size()_005153d3] ;= "ix < user_args.size()" CALL .plt:::_ink_assert ;undefined _ink_assert() NOP dword ptr [RAX] LAB_00216ad8: LEA RAX,[.bss:global_user_args] POP RBX MOV RAX,qword ptr [RAX + RSI*offset.bss:global_user_args[8] &0xff + 0x8] RET LAB_00216ae6: MOV EDX,0x190e LEA RSI,[.rodata:s_traffic_server/InkAPI.cc_005153e9] ;= "traffic_server/InkAPI.cc" LEA RDI,[.rodata:s_user_args_005154ef] ;= "user_args" CALL .plt:::_ink_assert ;undefined _ink_assert() NOP Actual src: void * TSUserArgGet(void *data, int arg_idx) { if (nullptr!= data) { PluginUserArgsMixin *user_args = dynamic_cast(static_cast(data)); sdk_assert(user_args); return user_args->get_user_arg(arg_idx); } else { return global_user_args.get_user_arg(arg_idx); } } Predicted src: void user_user_user_user_user_user_user(user_user_user_user_user_user *user) { assert(user_user_user_user_user_user_user_user_user_user_user_user_user_user_user_user_user_user_user_useruser_useruseruseruser_useruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruseruse ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined files_load_ticket() ;local_20 undefined8 -20 ;local_78 undefined1 -78 ;local_80 undefined8 -80 ;local_82 undefined2 -82 PUSH R13 PUSH R12 PUSH RBP SUB RSP,0x70 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_20+0x88],RAX XOR EAX,EAX MOV EAX,0x4c MOV word ptr [RSP + local_82+0x88],AX TEST RDI,RDI JZ LAB_00137334 LEA RBP=>local_78,[RSP + 0x10] MOV R13,RSI LEA RDX=>local_82,[RSP + 0x6] MOV RSI,RBP CALL files_load_bytes_from_path.part.0 ;undefined files_load_bytes_from_path... MOV R12D,EAX TEST AL,AL JNZ LAB_00137358 LAB_00137334: XOR R12D,R12D LAB_00137337: MOV RAX,qword ptr [RSP + local_20+0x88] SUB RAX,qword ptr FS:[0x28] JNZ LAB_001373b9 ADD RSP,0x70 MOV EAX,R12D POP RBP POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00137358: MOVZX ESI,word ptr [RSP + local_82+0x88] LEA RDX=>local_80,[RSP + 0x8] MOV RCX,R13 MOV RDI,RBP MOV qword ptr [RSP + local_80+0x88],0x0 CALL .plt:::Tss2_MU_TPMT_TK_VERIFIED_Unmarshal ;undefined Tss2_MU_TPMT_TK_VERIFIED_U... TEST EAX,EAX JZ LAB_00137337 LEA RBP,[.rodata:s_lib/files.c_00160723] ;= "lib/files.c" MOV R8D,EAX XOR EDI,EDI XOR EAX,EAX MOV RSI=>.rodata:s_lib/files.c_00160723,RBP ;= "lib/files.c" LEA RCX,[.rodata:s_Error_deserializing_ticket_struc_00160ec0] ;= "Error deserializing ticket struct... MOV EDX,0x2f4 CALL _log ;double _log(double __x) LEA RCX,[.rodata:s_The_input_file_needs_to_be_a_val_00160ef0] ;= "The input file needs to be a vali... XOR EDI,EDI XOR EAX,EAX MOV EDX,0x2f4 MOV RSI=>.rodata:s_lib/files.c_00160723,RBP ;= "lib/files.c" CALL _log ;double _log(double __x) JMP LAB_00137334 LAB_001373b9: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP Actual src: LOAD_TYPE(TPMT_TK_VERIFIED, ticket) Predicted src: int file_from_file(const char *path) { struct file_file *file; struct file_file *file; file = file_from_file(path, &file); if (file == NULL) { return -1; } file = file_from_file(file); if (file == NULL) { return -1; } file = file_from_file(file); if (file == NULL) { return 0; } return 0; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;double _nrrdUnaryOpAcos(double __x) ;__x double XMM0_Qa JMP .plt:::acos ?? 66h f Actual src: static double _nrrdUnaryOpAcos(double a) {return acos(a);} Predicted src: static double _cffi_d_double(double x0, double x1, double x2) { return (double) x0; }