============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined PyInit_interactivelp_backend() LEA RDI,[.data:__pyx_moduledef] JMP .plt:LAB_001050c0 ?? 66h f Actual src: __Pyx_PyMODINIT_FUNC PyInit_interactivelp_backend(void) #if CYTHON_PEP489_MULTI_PHASE_INIT { return PyModuleDef_Init(&__pyx_moduledef); } Predicted src: __Pyx_PyMODINIT_FUNC PyInit_backend_backend(void) #if CYTHON_PEP489_MULTI_PHASE_INIT { return PyModuleDef_Init(&__pyx_moduledef); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gimp_brush_core_get_brush_mask() ;local_20 undefined8 -20 PUSH R12 MOVAPD XMM2,XMM0 PXOR XMM0,XMM0 PUSH RBP PUSH RBX SUB RSP,0x10 COMISD XMM0,XMM2 MOVSD qword ptr [RSP + local_20+0x28],XMM2 JNC LAB_005cab5e MOV R12,RSI MOV RSI,qword ptr [RDI + 0x1e8] MOV RBP,RDI MOV EBX,EDX CALL gimp_brush_core_transform_mask ;undefined gimp_brush_core_transform_... MOV RSI,RAX TEST RAX,RAX JZ LAB_005cab5e CMP EBX,0x1 JZ LAB_005cabb0 CMP EBX,0x2 MOVSD XMM2,qword ptr [RSP + local_20+0x28] JZ LAB_005cab90 TEST EBX,EBX JZ LAB_005cab70 LEA R9,[.rodata:__func__.2] ;= "gimp_brush_core_get_brush_mask" MOV R8D,0x45d XOR EAX,EAX MOV ESI,0x8 LEA RCX,[.rodata:s_gimpbrushcore.c_0071780d] ;= "gimpbrushcore.c" LEA RDX,[.rodata:s_file_%s:_line_%d_(%s):_should_no_006531f0] ;= "file %s: line %d (%s): should not... LEA RDI,[.rodata:s_Gimp-Paint_0064f994] ;= "Gimp-Paint" CALL .plt:::g_log ;undefined g_log() LAB_005cab5e: ADD RSP,0x10 XOR EAX,EAX POP RBX POP RBP POP R12 RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_005cab70: MOVSD XMM1,qword ptr [R12 + 0x8] MOVSD XMM0,qword ptr [R12] MOV RDI,RBP ADD RSP,0x10 POP RBX POP RBP POP R12 JMP gimp_brush_core_solidify_mask ;undefined gimp_brush_core_solidify_m... ?? 0Fh ?? 1Fh ?? 00h LAB_005cab90: MOVSD XMM1,qword ptr [R12 + 0x8] MOVSD XMM0,qword ptr [R12] MOV RDI,RBP ADD RSP,0x10 POP RBX POP RBP POP R12 JMP gimp_brush_core_pressurize_mask ;undefined gimp_brush_core_pressurize... ?? 0Fh ?? 1Fh ?? 00h LAB_005cabb0: MOVSD XMM1,qword ptr [R12 + 0x8] MOVSD XMM0,qword ptr [R12] MOV RDI,RBP ADD RSP,0x10 POP RBX POP RBP POP R12 JMP gimp_brush_core_subsample_mask ;undefined gimp_brush_core_subsample_... ?? 0Fh Actual src: const GimpTempBuf * gimp_brush_core_get_brush_mask (GimpBrushCore *core, const GimpCoords *coords, GimpBrushApplicationMode brush_hardness, gdouble dynamic_force) { const GimpTempBuf *mask; if (dynamic_force <= 0.0) return NULL; mask = gimp_brush_core_transform_mask (core, core->brush); if (! mask) return NULL; switch (brush_hardness) { case GIMP_BRUSH_SOFT: return gimp_brush_core_subsample_mask (core, mask, coords->x, coords->y); break; case GIMP_BRUSH_HARD: return gimp_brush_core_solidify_mask (core, mask, coords->x, coords->y); break; case GIMP_BRUSH_PRESSURE: return gimp_brush_core_pressurize_mask (core, mask, coords->x, coords->y, dynamic_force); break; } g_return_val_if_reached (NULL); } Predicted src: static gdouble gimp_core_transform_file_get_point (GimpLayer *core, gdouble x, gdouble y) { GimpLayer *core = GIMP_core (core); if (core == NULL) return 0.0; if (core->priv->x < 0.0) return 0.0; if (core->priv->y < 0.0) return 0.0; if (core->priv->y < 0.0) return 0.0; if (core->priv->y < 0.0) return 0.0; if (core->priv->y < 0.0) return 0.0; if (core->priv->y < 0.0) return 0.0; if (core->priv->y > 0.0) return 0.0; return gimp_core_transform_file_get_point (core, x, y); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined conf_setAudioDefaults() SUB RSP,0x8 MOV RDI,qword ptr [.bss:conf[88]] TEST RDI,RDI JZ LAB_0011bdd5 CALL .plt:::free ;void free(void * __ptr) LAB_0011bdd5: LEA RDI,[.rodata:s_openal_001f5946] ;= "openal" CALL .plt:::strdup ;char * strdup(char * __s) MOV dword ptr [.bss:conf[112]],0x0 MOV qword ptr [.bss:conf[88]],RAX MOV RAX,0x100000080 MOV qword ptr [.bss:conf[96]],RAX MOV RAX,0x8000000001 MOV qword ptr [.bss:conf[104]],RAX MOV RAX,qword ptr [.rodata:DAT_001f43c0] ;= 3FE3333333333333h MOV qword ptr [.bss:conf[120]],RAX MOV RAX,qword ptr [.rodata:DAT_001f49a0] ;= 3FE999999999999Ah MOV qword ptr [.bss:conf[128]],RAX ADD RSP,0x8 RET ?? 66h f Actual src: void conf_setAudioDefaults (void) { if (conf.sound_backend!= NULL) { free(conf.sound_backend); conf.sound_backend = NULL; } /* Sound. */ conf.sound_backend = strdup(BACKEND_DEFAULT); conf.snd_voices = VOICES_DEFAULT; conf.snd_pilotrel = PILOT_RELATIVE_DEFAULT; conf.al_efx = USE_EFX_DEFAULT; conf.al_bufsize = BUFFER_SIZE_DEFAULT; conf.nosound = MUTE_SOUND_DEFAULT; conf.sound = SOUND_VOLUME_DEFAULT; conf.music = MUSIC_VOLUME_DEFAULT; } Predicted src: void conf_set_open(void) { if (conf.open) conf.open = strdup("open"); conf.open = strdup("open"); conf.open = strdup("open"); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined NhlCvtBooleanToString() ;local_10 undefined8 -10 ;local_14 undefined2 -14 ;local_18 undefined4 -18 ;local_28 undefined1[16] -28 PUSH RBX MOV EDX,0x67 MOV RBX,RSI SUB RSP,0x20 MOVDQA XMM0,xmmword ptr [.rodata:s_NhlCvtBooleanToSNhlCvtStringGenA_002b1f70] ;= "NhlCvtBooleanToSNhlCvtStringGenAr... MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_10+0x28],RAX XOR EAX,EAX MOV dword ptr [RSP + local_18+0x28],0x6e697274 MOV word ptr [RSP + local_14+0x28],DX MOVAPS xmmword ptr [RSP]=>local_28,XMM0 TEST ECX,ECX JNZ LAB_00158520 MOV EAX,dword ptr [RDI + 0x8] LEA RDX,[.data:false.427] ;= "False" TEST EAX,EAX LEA RAX,[.data:true.428] ;= 0075725400h CMOVZ RAX,RDX MOV EDX,dword ptr [RSI] TEST EDX,EDX JZ LAB_001584f0 MOV RCX,qword ptr [RSI + 0x8] TEST RCX,RCX JZ LAB_001584f0 MOV dword ptr [RSI],0x8 CMP EDX,0x7 JA LAB_00158510 MOV EAX,0xfffffffc LAB_001584d4: MOV RDX,qword ptr [RSP + local_10+0x28] SUB RDX,qword ptr FS:[0x28] JNZ LAB_00158546 ADD RSP,0x20 POP RBX RET ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_001584f0: MOV dword ptr [RBX],0x8 MOV qword ptr [.bss:val.426],RAX ;=?? LEA RAX,[.bss:val.426] ;=?? MOV qword ptr [RBX + 0x8],RAX=>.bss:val.426 ;=?? MOV EAX,0xffffffff JMP LAB_001584d4 ?? 90h LAB_00158510: MOV qword ptr [RCX],RAX MOV EAX,0xffffffff JMP LAB_001584d4 ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00158520: MOV RCX,RSP MOV ESI,0x3e8 MOV EDI,0xfffffffc LEA RDX,[.rodata:s_%s:Called_with_improper_number_o_002af620+48] ;= "%s:Called with improper number of... CALL .plt:NhlPError ;undefined NhlPError(undefined param_... MOV dword ptr [RBX],0x0 MOV EAX,0xfffffffc JMP LAB_001584d4 LAB_00158546: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr [RAX + RAX*0x1] Actual src: static NhlErrorTypes NhlCvtBooleanToString CvtArgs { static char true[] = "True"; static char false[] = "False"; char func[] = "NhlCvtBooleanToString"; NhlString tstring; NhlErrorTypes ret = NhlNOERROR; if(nargs!= 0){ NhlPError(NhlFATAL,NhlEUNKNOWN, "%s:Called with improper number of args",func); to->size = 0; return NhlFATAL; } if(from->data.intval) tstring = true; else tstring = false; _NhlSetVal(NhlString,sizeof(NhlString),tstring); } Predicted src: int withString(const char *name, const char *value, int *val) { if (!name ||!val) return -1; *val = 0; *val = 0; *val = 0; *val = 0; *val = 0; *val = 0; return 0; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined polypolygon_print() AND EDI,0xffff JZ LAB_001444e4 PUSH R15 LEA R15,[.rodata:s__Polygon[%d]:_0016b860] ;= " Polygon[%d]: " PUSH R14 MOV R14D,EDI PUSH R13 XOR R13D,R13D PUSH R12 MOV R12,RSI PUSH RBP MOV RBP,RDX PUSH RBX SUB RSP,0x8 NOP dword ptr [RAX] LAB_00144490: XOR EAX,EAX MOV EDX,R13D MOV RSI=>.rodata:s__Polygon[%d]:_0016b860,R15 ;= " Polygon[%d]: " MOV EDI,0x1 CALL .plt:::__printf_chk ;undefined __printf_chk() CMP word ptr [R12],0x0 JZ LAB_001444c8 XOR EBX,EBX NOP dword ptr [RAX] LAB_001444b0: MOV EDI,dword ptr [RBP] ADD EBX,0x1 ADD RBP,0x4 CALL .plt:point16_print ;undefined point16_print() MOVZX EAX,word ptr [R12] CMP EAX,EBX JG LAB_001444b0 LAB_001444c8: ADD R13D,0x1 ADD R12,0x2 CMP R13D,R14D JNZ LAB_00144490 ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 POP R14 POP R15 RET LAB_001444e4: RET ?? 66h f Actual src: void polypolygon_print( uint16_t nPolys, const uint16_t *aPolyCounts, const char *Points ){ int i,j; U_POINT16 pt; for(i=0; i