============================== Sample 1 ============================== 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 void _file_file_file_get_file (GObject *object, gpointer user_data) { g_return_if_fail (data!= NULL); g_return_if_fail (data!= NULL, NULL); g_if_fail (data!= NULL); g_return_if_fail (data!= NULL); g_if_fail (data!= NULL); g_if_fail (data!= NULL); g_return_if_fail (data->data!= NULL); g_if_fail (data->data!= NULL); g_if_fail (data!= NULL); g_fail (data->data->data!= NULL); g_unref (data->data->data->data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.data.dat ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined Perl_parse_arithexpr() PUSH RBP MOV RBP,RDI PUSH RBX SUB RSP,0x8 TEST ESI,0xfffffffe JNZ LAB_001a9ade MOV EBX,ESI MOV EDX,0xa MOV ESI,0x103 CALL S_parse_recdescent_for_op ;undefined S_parse_recdescent_for_op() TEST RAX,RAX JZ LAB_001a9a90 LAB_001a9a87: ADD RSP,0x8 POP RBX POP RBP RET ?? 66h f ?? 90h LAB_001a9a90: TEST EBX,EBX JNZ LAB_001a9a87 MOV RAX,qword ptr [RBP + 0x200] CMP byte ptr [RAX + 0xff],0x0 JZ LAB_001a9ac0 LAB_001a9aa4: ADD RSP,0x8 MOV RDI,RBP XOR EDX,EDX XOR ESI,ESI POP RBX POP RBP JMP .plt:Perl_newOP ;undefined Perl_newOP() ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_001a9ac0: MOV RDI,RBP LEA RSI,[.rodata:s_Parse_error_002d58bc] ;= "Parse error" XOR EAX,EAX CALL .plt:Perl_mess ;undefined Perl_mess(undefined param_... MOV RDI,RBP MOV RSI,RAX CALL .plt:Perl_qerror ;undefined Perl_qerror() JMP LAB_001a9aa4 LAB_001a9ade: LEA RDX,[.rodata:s_parse_expr_002d6081] ;= "parse_expr" LEA RSI,[.rodata:s_Parsing_code_internal_error_(%s)_002d7450] ;= "Parsing code internal error (%s)" XOR EAX,EAX CALL .plt:Perl_croak ;undefined Perl_croak(undefined param... NOP dword ptr CS:[RAX + RAX*0x1] Actual src: OP * Perl_parse_arithexpr(pTHX_ U32 flags) { return parse_expr(LEX_FAKEEOF_COMPARE, flags); } Predicted src: static void _cb(void *data, void *data) { if (data->data!= NULL) return; if (data->data == NULL) return; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data->data = NULL; data = NULL; data->data->data = NULL; data = NULL; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined go_conf_set_bool() PUSH R12 MOV R12D,EDX PUSH RBP SUB RSP,0x8 CALL .plt:go_conf_get_node ;undefined go_conf_get_node() TEST RAX,RAX JZ LAB_00164620 MOV RDI,qword ptr [RAX + 0x18] MOV RSI,qword ptr [RAX + 0x10] MOV EDX,R12D MOV RBP,RAX CALL .plt:::g_settings_set_boolean ;undefined g_settings_set_boolean() ADD RSP,0x8 MOV RDI,RBP POP RBP POP R12 JMP .plt.got:go_conf_free_node ;undefined go_conf_free_node() ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00164620: ADD RSP,0x8 POP RBP POP R12 RET ?? 0Fh Actual src: void go_conf_set_bool (GOConfNode *node, gchar const *key, gboolean val) { GOConfNode *real_node = go_conf_get_node (node, key); if (!real_node) { d (g_warning ("Unable to set key '%s'", key)); return; } g_settings_set_boolean (real_node->settings, real_node->key, val); go_conf_free_node (real_node); } Predicted src: static void _set_cb (GObject *object) { g_return_if_fail (object!= NULL); g_return_if_fail (object!= NULL); g_return_if_fail (data->data!= NULL); g_free (data->data); g_free (data->data); g_free (data->data); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined op_0218_33_ff() PUSH R13 PUSH R12 PUSH RBP PUSH RBX MOV EBX,EDI AND EBX,0x7 SUB RSP,0x8 MOV EAX,dword ptr [.bss:regs[64]] MOV dword ptr [.bss:OpcodeFamily],0x2 MOV dword ptr [.bss:CurrentInstrCycles],0x10 LEA EDI,[RAX + 0x2] CALL mmu_get_iword.constprop.0 ;undefined mmu_get_iword.constprop.0() LEA RDX,[.bss:regs] MOV dword ptr [.bss:mmufixup],EBX MOV R12D,EAX LEA EAX,[RBX + 0x8] MOV byte ptr [.bss:rmw_cycle],0x1 LEA R13,[RDX + RAX*0x4] MOV EBP,dword ptr [R13]=>.bss:regs MOV EDI,EBP MOV dword ptr [.bss:mmufixup[4]],EBP CALL mmu_get_byte.constprop.0 ;undefined mmu_get_byte.constprop.0() LEA RDX,[.rodata:areg_byteinc] XOR ECX,ECX MOV EDI,EBP AND EAX,R12D MOV EDX=>.rodata:areg_byteinc,dword ptr [RDX + RBX*0x4] ADD dword ptr [R13],EDX=>.bss:regs MOV EDX,EAX MOVZX ESI,AL MOV byte ptr [.bss:rmw_cycle],0x1 SAR DL,0x7 MOVSX EDX,DL SHL EDX,0xf TEST AL,AL SETZ CL MOVZX EDX,DX SHL ECX,0xe OR EDX,ECX MOV dword ptr [.bss:regflags],EDX CALL mmu_put_byte.constprop.0 ;undefined mmu_put_byte.constprop.0() ADD dword ptr [.bss:regs[64]],0x4 MOV EAX,0x2000 MOV byte ptr [.bss:rmw_cycle],0x0 MOV dword ptr [.bss:mmufixup],0xffffffff ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 RET ?? 66h f Actual src: uae_u32 REGPARAM2 op_0218_33_ff(uae_u32 opcode) { int count_cycles = 0; uae_u32 real_opcode = opcode; uae_u32 dstreg = real_opcode & 7; OpcodeFamily = 2; CurrentInstrCycles = 16; uae_s8 src = get_ibyte_mmu060(2); uaecptr dsta; dsta = m68k_areg(regs, dstreg); mmufixup[0].reg = dstreg | 0x0; mmufixup[0].value = m68k_areg(regs, dstreg); uae_s8 dst = get_rmw_byte_mmu060(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src &= dst; CLEAR_CZNV(); SET_ZFLG(((uae_s8)(src)) == 0); SET_NFLG(((uae_s8)(src)) < 0); put_rmw_byte_mmu060(dsta, src); m68k_incpci(4); mmufixup[0].reg = -1; return (2 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } Predicted src: static void _data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_dat ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined tti_rnum() PUSH R13 PUSH R12 XOR R12D,R12D PUSH RBP MOV RBP,RDI PUSH RBX SUB RSP,0x8 MOV byte ptr [RDI],0xff NOP dword ptr [RAX + RAX*0x1] LAB_00108968: CALL sim_poll_kbd ;undefined sim_poll_kbd() TEST EAX,EAX JZ LAB_00108968 TEST AH,0x20 JNZ LAB_00108968 CMP EAX,0xfff JLE LAB_001089c2 AND EAX,0x7f CMP AL,0xd JZ LAB_001089d0 CMP AL,0x7e JZ LAB_001089e0 CMP AL,0x60 JZ LAB_001089e0 MOV R13,qword ptr [.data:tti_to_num] ;= 0011d820 MOVSX EBX,AL MOV ESI,EBX MOV RDI=>.rodata:s_0123456789|=@:;}_0011d820,R13 ;= "0123456789|=@:;}" CALL .plt:::strchr ;char * strchr(char * __s, int __c) MOV EDI,0x7 TEST RAX,RAX JZ LAB_001089b5 SUB RAX,R13 MOV EDI,EBX OR EAX,R12D MOV byte ptr [RBP],AL LAB_001089b5: CALL tto_write ;undefined tto_write() CMP byte ptr [RBP],0xff JZ LAB_00108968 XOR EAX,EAX LAB_001089c2: ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 00h LAB_001089d0: MOV byte ptr [RBP],0x7f MOV EDI,0xd JMP LAB_001089b5 ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_001089e0: MOVSX EDI,AL MOV R12D,0x10 JMP LAB_001089b5 ?? 0Fh Actual src: t_stat tti_rnum (int8 *c) { int8 raw, flg = 0; char *cp; t_stat r; *c = -1; /* no char yet */ do { r = tti_read (&raw); /* get char */ if (r!= SCPE_OK) /* error? */ return r; if (raw == '\r') /* return? mark */ *c = 0x7F; else if ((raw == '~') || (raw == '`')) /* flag? mark */ flg = FLAG; else if (cp = strchr (tti_to_num, raw)) /* legal? */ *c = ((int8) (cp - tti_to_num)) | flg; /* assemble char */ else raw = 007; /* beep! */ tto_write (raw); /* echo */ } while (*c == -1); return SCPE_OK; } Predicted src: static int _file_file(const char *name, const char *name) { char *name = 0; int i; for (i = 0; i < 0; i++) { if (name[i] == 0) return -1; } for (i = 0; i < len; i++) { if (name[i] == 0) { return -1; } } return 0; }