============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined soundio_get_bytes_per_sample() MOV EAX,0xffffffff CMP EDI,0x12 JA LAB_00107a66 MOV EDI,EDI LEA RAX,[.rodata:CSWTCH.51] MOV EAX=>.rodata:CSWTCH.51,dword ptr [RAX + RDI*0x4]=>DAT_005602d8 LAB_00107a66: RET ?? 66h f Actual src: int soundio_get_bytes_per_sample(enum SoundIoFormat format) { switch (format) { case SoundIoFormatU8: return 1; case SoundIoFormatS8: return 1; case SoundIoFormatS16LE: return 2; case SoundIoFormatS16BE: return 2; case SoundIoFormatU16LE: return 2; case SoundIoFormatU16BE: return 2; case SoundIoFormatS24LE: return 4; case SoundIoFormatS24BE: return 4; case SoundIoFormatU24LE: return 4; case SoundIoFormatU24BE: return 4; case SoundIoFormatS32LE: return 4; case SoundIoFormatS32BE: return 4; case SoundIoFormatU32LE: return 4; case SoundIoFormatU32BE: return 4; case SoundIoFormatFloat32LE: return 4; case SoundIoFormatFloat32BE: return 4; case SoundIoFormatFloat64LE: return 8; case SoundIoFormatFloat64BE: return 8; case SoundIoFormatInvalid: return -1; } return -1; } Predicted src: static int sample_get_sample_bytes_bytes(sample_info_t *info) { switch (info->type) { case 1: return -1; case 2: return -1; case 3: return -1; default: return -1; } } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined strv_get_value() MOV RDX,qword ptr [RDI] TEST RDX,RDX JNZ LAB_00116220 XOR EAX,EAX RET ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00116220: PUSH R12 PUSH RBP MOV RBP,RSI MOV ESI,0x40 SUB RSP,0x8 MOV EAX,dword ptr [RDI + 0x20] MOV RDI,RBP MOV R12,qword ptr [RDX + RAX*0x8] CALL .plt:::g_value_init ;undefined g_value_init() MOV RDI,RBP MOV RSI,R12 CALL .plt:::g_value_set_string ;undefined g_value_set_string() ADD RSP,0x8 MOV EAX,0x1 POP RBP POP R12 RET ?? 66h f Actual src: static gboolean strv_get_value (TmplIterator *iter, GValue *value) { guint index = GPOINTER_TO_INT (iter->data1); if (iter->instance) { gchar **strv = iter->instance; gchar *str = strv[index]; g_value_init (value, G_TYPE_STRING); g_value_set_string (value, str); return TRUE; } return FALSE; } Predicted src: static gboolean g_value_init (GValue *value, gpointer user_data) { GValue *value = user_data; g_value_init (value, G_TYPE_STRING); if (g_value_get_string (value, G_TYPE_STRING)) g_value_set_string (value, G_TYPE_STRING); return TRUE; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* opencl_device::KernelLauncher::AccumulateFactorsAutoScaling(_cl_mem*, _cl_mem*, _cl_mem*, unsigned int, unsigned int, unsigned int) * ;************************************************************************************************************************************************************ ;undefined AccumulateFactorsAutoScaling(KernelLauncher * this, _cl_mem * param_1, _cl_mem * param_2, _cl_mem * param_3, uint param_4, uint param_5, uint param_6) ;this KernelLaunc... RDI ;param_1 _cl_mem * RSI ;param_2 _cl_mem * RDX ;param_3 _cl_mem * RCX ;param_4 uint R8D ;param_5 uint R9D ;param_6 uint 8 PUSH R12 MOV EAX,dword ptr [RSP + param_6+0x8] MOV R10,param_1 MOV R11,param_2 MOV R12,param_3 MOV param_2,qword ptr [this + 0x228] MOV param_3,dword ptr [this + 0x230] MOV param_1,qword ptr [this + 0x130] PUSH RAX XOR EAX,EAX PUSH param_5 PUSH param_4 PUSH R12 PUSH R11 PUSH R10 PUSH 0x6 PUSH 0x3 MOV param_4,qword ptr [this + 0x234] MOV param_5,dword ptr [this + 0x23c] MOV this,qword ptr [this] CALL .plt:opencl_device::GPUInterface::LaunchKernel ;undefined LaunchKernel(_cl_kernel *... ADD RSP,0x40 POP R12 RET ?? 90h Actual src: void KernelLauncher::AccumulateFactorsAutoScaling(GPUPtr dScalingFactors, GPUPtr dNodePtrQueue, GPUPtr dRootScalingFactors, unsigned int nodeCount, unsigned int patternCount, unsigned int scaleBufferSize) { #ifdef BEAGLE_DEBUG_FLOW fprintf(stderr, "\t\tEntering KernelLauncher::AccumulateFactorsAutoScaling\n"); #endif int parameterCountV = 3; int totalParameterCount = 6; gpu->LaunchKernel(fAccumulateFactorsAutoScaling, bgAccumulateBlock, bgAccumulateGrid, parameterCountV, totalParameterCount, dScalingFactors, dNodePtrQueue, dRootScalingFactors, nodeCount, patternCount, scaleBufferSize); #ifdef BEAGLE_DEBUG_FLOW fprintf(stderr, "\t\tLeaving KernelLauncher::AccumulateFactorsAutoScaling\n"); #endif } Predicted src: int32_t Amomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomomom ============================== Sample 4 ============================== 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 Pair::delete_callback(int n) { int i; for (i = 0; i < n; i++) { n[i]->delete_callback(n); n[i]->delete_callback(n); } } ============================== Sample 5 ============================== 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 xfsm_screen_screen_set_screen_cursor (XfsmScreen *object, guint value) { g_object_set (G_OBJECT (object), "screen-cursor", value, NULL); }