============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined LzmaEnc_SetProps() ;local_10 undefined8 -10 ;local_18 undefined8 -18 ;local_28 undefined1[16] -28 ;local_38 undefined1[16] -38 ; 00128944 ;local_48 undefined1[16] -48 PUSH RBX MOV RBX,RDI SUB RSP,0x40 MOVDQU XMM0,xmmword ptr [RSI] MOVDQU XMM1,xmmword ptr [RSI + 0x10] MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_10+0x48],RAX XOR EAX,EAX MOVDQU XMM2,xmmword ptr [RSI + 0x20] MOV RAX,qword ptr [RSI + 0x30] MOV RDI,RSP MOVAPS xmmword ptr [RSP]=>local_48,XMM0 MOV qword ptr [RSP + local_18+0x48],RAX MOVAPS xmmword ptr [RSP + local_38[0]+0x48],XMM1 MOVAPS xmmword ptr [RSP + local_28[0]+0x48],XMM2 CALL LzmaEncProps_Normalize ;undefined LzmaEncProps_Normalize() CMP dword ptr [RSP + local_38[0]+0x48],0x8 MOV EAX,0x5 JG LAB_001289d0 CMP dword ptr [RSP + local_38[4]+0x48],0x4 MOV RSI,qword ptr [RSP + local_38[0]+0x48] JG LAB_001289d0 MOV EDX,dword ptr [RSP + local_38[8]+0x48] CMP EDX,0x4 JG LAB_001289d0 MOV ECX,dword ptr [RSP + local_48[4]+0x48] CMP ECX,0x60000000 JA LAB_001289d0 MOV EAX,dword ptr [RSP + local_28[0]+0x48] MOV dword ptr [RBX + 0xac],ECX MOV ECX,0x111 MOV dword ptr [RBX + 0x68],EDX MOV EDX,dword ptr [RSP + local_38[12]+0x48] CMP EAX,ECX MOV qword ptr [RBX + 0x60],RSI CMOVA EAX,ECX MOV ECX,0x5 CMP EAX,ECX CMOVC EAX,ECX MOV ECX,dword ptr [RSP + local_28[4]+0x48] MOV dword ptr [RBX + 0x44],EAX XOR EAX,EAX TEST EDX,EDX SETZ AL MOV dword ptr [RBX + 0x80],EAX TEST ECX,ECX JZ LAB_00128998 MOV EDX,dword ptr [RSP + local_28[8]+0x48] MOV byte ptr [RBX + 0x701],0x1 MOV EAX,0x2 CMP EDX,0x1 JLE LAB_001289a4 CMP EDX,0x3 MOV EAX,0x4 CMOVLE EAX,EDX JMP LAB_001289a4 ?? 0Fh ?? 1Fh ?? 00h LAB_00128998: MOV byte ptr [RBX + 0x701],0x0 MOV EAX,0x4 LAB_001289a4: MOV dword ptr [RBX + 0x73c],EAX MOV EAX,dword ptr [RSP + local_28[12]+0x48] MOV dword ptr [RBX + 0x71c],EAX MOV EAX,dword ptr [RSP + local_18+0x48] MOV dword ptr [RBX + 0x84],EAX XOR EAX,EAX CMP dword ptr [RSP + local_18+0x4c],0x1 SETG AL MOV dword ptr [RBX + 0x8c],EAX XOR EAX,EAX LAB_001289d0: MOV RDX,qword ptr [RSP + local_10+0x48] SUB RDX,qword ptr FS:[0x28] JNZ LAB_001289e6 ADD RSP,0x40 POP RBX RET LAB_001289e6: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr [RAX + RAX*0x1] Actual src: SRes LzmaEnc_SetProps(CLzmaEncHandle pp, const CLzmaEncProps *props2) { CLzmaEnc *p = (CLzmaEnc *)pp; CLzmaEncProps props = *props2; LzmaEncProps_Normalize(&props); if (props.lc > LZMA_LC_MAX || props.lp > LZMA_LP_MAX || props.pb > LZMA_PB_MAX || props.dictSize > ((UInt64)1 << kDicLogSizeMaxCompress) || props.dictSize > kMaxHistorySize) return SZ_ERROR_PARAM; p->dictSize = props.dictSize; { unsigned fb = props.fb; if (fb < 5) fb = 5; if (fb > LZMA_MATCH_LEN_MAX) fb = LZMA_MATCH_LEN_MAX; p->numFastBytes = fb; } p->lc = props.lc; p->lp = props.lp; p->pb = props.pb; p->fastMode = (props.algo == 0); p->matchFinderBase.btMode = (Byte)(props.btMode? 1 : 0); { UInt32 numHashBytes = 4; if (props.btMode) { if (props.numHashBytes < 2) numHashBytes = 2; else if (props.numHashBytes < 4) numHashBytes = props.numHashBytes; } p->matchFinderBase.numHashBytes = numHashBytes; } p->matchFinderBase.cutValue = props.mc; p->writeEndMark = props.writeEndMark; #ifndef _7ZIP_ST /* if (newMultiThread!= _multiThread) { ReleaseMatchFinder(); _multiThread = newMultiThread; } */ p->multiThread = (props.numThreads > 1); #endif return SZ_OK; } Predicted src: static int x11_Set(x11_t *x11, x11_t *x11, x11_t *x11) { x11_t *x11; x11_t *x11; x11_t *x11; x11_t *x11; x11_t *x11; x11 = x11->x11; x11 = x11->x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x11->x11 = x11; x1 ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined sidebar_init_entry() ;local_20 undefined8 -20 ;local_28 undefined8 -28 PUSH R12 PUSH RBP SUB RSP,0x18 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_20+0x28],RAX XOR EAX,EAX MOV EAX,dword ptr [.bss:sidebar__unit_init_count] MOV qword ptr [RSP]=>local_28,0x0 LEA EDX,[RAX + 0x1] MOV dword ptr [.bss:sidebar__unit_init_count],EDX TEST EAX,EAX JZ LAB_003dc170 LAB_003dc152: MOV RAX,qword ptr [RSP + local_20+0x28] SUB RAX,qword ptr FS:[0x28] JNZ LAB_003dc1ab ADD RSP,0x18 POP RBP POP R12 RET ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_003dc170: MOV R12,RSP MOV RBP,RDI MOV RDI,R12 CALL unit_init_entry ;undefined unit_init_entry() MOV RSI,qword ptr [RSP]=>local_28 TEST RSI,RSI JZ LAB_003dc198 LAB_003dc187: MOV RDI,RBP CALL .plt:::g_propagate_error ;undefined g_propagate_error() JMP LAB_003dc152 ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_003dc198: MOV RDI,R12 CALL sidebar_init ;undefined sidebar_init() MOV RSI,qword ptr [RSP]=>local_28 TEST RSI,RSI JNZ LAB_003dc187 JMP LAB_003dc152 LAB_003dc1ab: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined sidebar_terminate_entry() MOV EAX,dword ptr [.bss:sidebar__unit_init_count] Actual src: void sidebar_init_entry (GError** error) { gint _tmp0_; GError* _inner_error0_ = NULL; _tmp0_ = sidebar__unit_init_count; sidebar__unit_init_count = _tmp0_ + 1; if (_tmp0_!= 0) { return; } unit_init_entry (&_inner_error0_); if (G_UNLIKELY (_inner_error0_!= NULL)) { g_propagate_error (error, _inner_error0_); return; } sidebar_init (&_inner_error0_); if (G_UNLIKELY (_inner_error0_!= NULL)) { g_propagate_error (error, _inner_error0_); return; } } Predicted src: static void on_entry__init (gpointer data) { gpointer data; data = data; data[0] = 0; data[1] = 0; data[2] = 0; data[2] = 0; data[3] = 0; data[5] = 0; if (data[5] == 0) { data[5] = 0; } else { data[5] = 0; } } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined V_FillRect8() PUSH R14 MOVSXD RSI,ESI MOVSXD R14,ECX PUSH R13 PUSH R12 PUSH RBP LEA RBP,[.bss:screens] PUSH RBX MOVSXD RBX,EDI SHL RBX,0x5 LEA RAX,[RBP + RBX*0x1] IMUL EDX,dword ptr [RAX + 0x14]=>.bss:screens[20] MOVSXD RDX,EDX LEA RCX,[RDX + RSI*0x1] ADD RCX,qword ptr [RAX]=>.bss:screens TEST R8D,R8D JZ LAB_001f36cf LEA R12D,[R8 + -0x1] MOVZX R13D,R9B NOP dword ptr [RAX] LAB_001f36b0: MOV RDI,RCX MOV RDX,R14 MOV ESI,R13D CALL .plt:::memset ;void * memset(void * __s, int __c, s... MOV RCX,RAX MOVSXD RAX,dword ptr [RBP + RBX*0x1 + 0x14]=>.bss:screens[20] ADD RCX,RAX SUB R12D,0x1 JNC LAB_001f36b0 LAB_001f36cf: POP RBX POP RBP POP R12 POP R13 POP R14 RET ?? 0Fh Actual src: static void V_FillRect8(int scrn, int x, int y, int width, int height, byte colour) { byte* dest = screens[scrn].data + x + y*screens[scrn].byte_pitch; while (height--) { memset(dest, colour, width); dest += screens[scrn].byte_pitch; } } Predicted src: void f(int x, int y) { int i; for (i = 0; i < x; i++) f[i] = x; } ============================== Sample 4 ============================== 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 TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gwy_nlfit_preset_get_formula() PUSH RBX TEST RDI,RDI JZ LAB_001293a8 MOV RBX,RDI CALL .plt:gwy_nlfit_preset_get_type ;undefined gwy_nlfit_preset_get_type() MOV RSI,RAX MOV RAX,qword ptr [RBX] TEST RAX,RAX JZ LAB_0012938e CMP qword ptr [RAX],RSI JZ LAB_0012939a LAB_0012938e: MOV RDI,RBX CALL .plt:::g_type_check_instance_is_a ;undefined g_type_check_instance_is_a() TEST EAX,EAX JZ LAB_001293a8 LAB_0012939a: MOV RAX,qword ptr [RBX + 0x50] POP RBX MOV RAX,qword ptr [RAX + 0x8] RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_001293a8: LEA RDX,[.rodata:s_GWY_IS_NLFIT_PRESET(preset)_0014036d] ;= "GWY_IS_NLFIT_PRESET(preset)" LEA RSI,[.rodata:__func__.7] ;= "gwy_nlfit_preset_get_formula" LEA RDI,[.rodata:s_Gwyddion_0013d038] ;= "Gwyddion" CALL .plt:::g_return_if_fail_warning ;undefined g_return_if_fail_warning() LEA RAX,[.rodata:s__0013e07a+11] ;= "" POP RBX RET ?? 0Fh Actual src: const gchar* gwy_nlfit_preset_get_formula(GwyNLFitPreset* preset) { g_return_val_if_fail(GWY_IS_NLFIT_PRESET(preset), ""); /* FIXME: builtin */ return preset->builtin->formula; } Predicted src: const gchar * gwy_view_get_row (GtkWidget *widget) { g_return_val_if_fail (GIMP_IS_VIEW (widget), NULL); return GTK_WIDGET_GET_CLASS (widget)->row; }