============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined op_907a_33_ff() MOV EAX,dword ptr [.bss:regs[64]] PUSH R12 SHR EDI,0x9 PUSH RBP AND EDI,0x7 PUSH RBX LEA R12D,[RAX + 0x2] MOV EBP,EDI LEA RBX,[.bss:regs] MOV dword ptr [.bss:OpcodeFamily],0x7 MOV EDI,R12D MOV dword ptr [.bss:CurrentInstrCycles],0xc CALL mmu_get_iword.constprop.0 ;undefined mmu_get_iword.constprop.0() MOVSX EDI,AX ADD EDI,R12D CALL uae_mmu060_get_word ;undefined uae_mmu060_get_word() MOV EDI,EBP XOR ESI,ESI MOV EDX,dword ptr [RBX + RDI*0x4]=>.bss:regs MOV R8D,EAX MOVZX EAX,AX MOV R9D,R8D MOVZX ECX,DX SUB ECX,EAX MOV EAX,dword ptr [.bss:regflags] SETZ SIL XOR R9D,EDX SHL ESI,0xe AND EAX,0xffffbffe OR EAX,ESI MOV ESI,EDX XOR ESI,ECX AND ESI,R9D MOVSX ESI,SI SHR ESI,0x1f OR EAX,ESI XOR ESI,ESI AND AH,0xfe CMP R8W,DX SETA SIL XOR DX,DX ADD dword ptr [.bss:regs[64]],0x4 SHL ESI,0x8 OR EAX,ESI MOV ESI,EAX AND AH,0x7f SHR ESI,0x8 MOV dword ptr [.bss:regflags+4],ESI MOV ESI,ECX MOVZX ECX,CX AND ESI,0x8000 OR EDX,ECX OR EAX,ESI MOV dword ptr [RBX + RDI*0x4]=>.bss:regs,EDX POP RBX MOV dword ptr [.bss:regflags],EAX POP RBP MOV EAX,0x1000 POP R12 RET ?? 0Fh Actual src: uae_u32 REGPARAM2 op_907a_33_ff(uae_u32 opcode) { int count_cycles = 0; uae_u32 real_opcode = opcode; uae_u32 dstreg = (real_opcode >> 9) & 7; OpcodeFamily = 7; CurrentInstrCycles = 12; uaecptr srca; srca = m68k_getpci() + 2; srca += (uae_s32)(uae_s16)get_iword_mmu060(2); uae_s16 src = get_word_mmu060(srca); uae_s16 dst = m68k_dreg(regs, dstreg); uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG(((uae_s16)(newv)) == 0); SET_VFLG((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG(((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY(); SET_NFLG(flgn!= 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); m68k_incpci(4); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } Predicted src: static void C_ccall f(C_word c,C_word *av){ C_word tmp; C_word t0=av[0]; C_word t1=av[1]; C_word t2; C_word t2; C_word t2; C_word t2; C_word *a; if(C_demand(C_demand(C_demand(C_demand(C_demand(C_demand(C_demand(C_demand(C_demand(C_demand(C_demand(C_demand(C_demand(c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,av);} t2=C_alloc(t2);} ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined CheckForUnclosedCatches() PUSH R12 XOR R12D,R12D PUSH RBP PUSH RBX MOV RAX,qword ptr [RDI + 0x80] CMP dword ptr [RAX + 0x48],0x1 JA LAB_0013d6f0 LAB_0013d6e4: MOV EAX,R12D POP RBX POP RBP POP R12 RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_0013d6f0: MOV RBX,RDI MOV R12D,0x1 TEST byte ptr [RDI + 0x96],0x4 JZ LAB_0013d6e4 MOV RAX,qword ptr [RDI] MOV ESI,0xffffffff LEA RDI,[.rodata:s_catch_still_active_on_exit_from_a_0026f308] ;= "catch still active on exit from a... MOV RBP,qword ptr [RAX] CALL .plt:Tcl_NewStringObj ;undefined Tcl_NewStringObj() MOV RSI,RAX MOV RDI,RBP CALL .plt:Tcl_SetObjResult ;undefined Tcl_SetObjResult() MOV RAX,qword ptr [RBX + 0x80] MOV RDI,RBP MOV RAX,qword ptr [RAX + 0x50] MOV ESI,dword ptr [RAX + 0x8] CALL .plt:Tcl_SetErrorLine ;undefined Tcl_SetErrorLine() MOV RDI,RBP XOR EAX,EAX XOR R8D,R8D LEA RCX,[.rodata:s_UNCLOSEDCATCH_0026ef21] ;= "UNCLOSEDCATCH" LEA RDX,[.rodata:s_ASSEM_0026edd1] ;= "ASSEM" LEA RSI,[.rodata:DAT_0026edd7] ;= 54h T CALL .plt:Tcl_SetErrorCode ;undefined Tcl_SetErrorCode(undefined... MOV EAX,R12D POP RBX POP RBP POP R12 RET ?? 66h f Actual src: static int CheckForUnclosedCatches( AssemblyEnv* assemEnvPtr) /* Assembly environment */ { CompileEnv* envPtr = assemEnvPtr->envPtr; /* Compilation environment */ Tcl_Interp* interp = (Tcl_Interp*) envPtr->iPtr; /* Tcl interpreter */ if (assemEnvPtr->curr_bb->catchState >= BBCS_INCATCH) { if (assemEnvPtr->flags & TCL_EVAL_DIRECT) { Tcl_SetObjResult(interp, Tcl_NewStringObj( "catch still active on exit from assembly code", -1)); Tcl_SetErrorLine(interp, assemEnvPtr->curr_bb->enclosingCatch->startLine); Tcl_SetErrorCode(interp, "TCL", "ASSEM", "UNCLOSEDCATCH", NULL); } return TCL_ERROR; } return TCL_OK; } Predicted src: static void _cb(void *data) { int i; for (i = 0; i < n; i++) { if (i == NULL) { break; } } } } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined geary_imap_engine_account_processor_test_new() SUB RSP,0x8 CALL geary_imap_engine_account_processor_test_get_type ;undefined geary_imap_engine_account_... ADD RSP,0x8 MOV RDI,RAX JMP geary_imap_engine_account_processor_test_construct ;undefined geary_imap_engine_account_... ?? 66h f Actual src: GearyImapEngineAccountProcessorTest* geary_imap_engine_account_processor_test_new (void) { return geary_imap_engine_account_processor_test_construct (GEARY_IMAP_ENGINE_TYPE_ACCOUNT_PROCESSOR_TEST); } Predicted src: static void _cb (GObject *object) { g_return_if_fail (object!= NULL, NULL); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined vala_ccode_control_flow_module_real_visit_if_statement() TEST RSI,RSI JZ LAB_00171e90 PUSH R13 PUSH R12 MOV R12,RDI PUSH RBP MOV RBP,RSI CALL .plt:vala_ccode_base_module_get_ccode ;undefined vala_ccode_base_module_get... MOV RDI,RBP MOV R13,RAX CALL .plt:::vala_if_statement_get_condition ;undefined vala_if_statement_get_cond... MOV RDI,RAX CALL .plt:vala_get_cvalue ;undefined vala_get_cvalue() MOV RDI,R13 MOV RSI,RAX CALL .plt:vala_ccode_function_open_if ;undefined vala_ccode_function_open_if() MOV RDI,RBP CALL .plt:::vala_if_statement_get_true_statement ;undefined vala_if_statement_get_true... MOV RSI,R12 MOV RDI,RAX CALL .plt:::vala_code_node_emit ;undefined vala_code_node_emit() MOV RDI,RBP CALL .plt:::vala_if_statement_get_false_statement ;undefined vala_if_statement_get_fals... TEST RAX,RAX JZ LAB_00171e7a MOV RDI,R12 CALL .plt:vala_ccode_base_module_get_ccode ;undefined vala_ccode_base_module_get... MOV RDI,RAX CALL .plt:vala_ccode_function_add_else ;undefined vala_ccode_function_add_el... MOV RDI,RBP CALL .plt:::vala_if_statement_get_false_statement ;undefined vala_if_statement_get_fals... MOV RSI,R12 MOV RDI,RAX CALL .plt:::vala_code_node_emit ;undefined vala_code_node_emit() LAB_00171e7a: MOV RDI,R12 CALL .plt:vala_ccode_base_module_get_ccode ;undefined vala_ccode_base_module_get... POP RBP POP R12 MOV RDI,RAX POP R13 JMP .plt:vala_ccode_function_close ;undefined vala_ccode_function_close() ?? 90h LAB_00171e90: LEA RDX,[.rodata:s_stmt_!=_NULL_0020d2df+5] ;= "stmt!= NULL" LEA RSI,[.rodata:__func__.0] ;= "vala_ccode_control_flow_module_re... LEA RDI,[.rodata:s_vala-ccodegen_001f501d] ;= "vala-ccodegen" JMP .plt:::g_return_if_fail_warning ;undefined g_return_if_fail_warning() ?? 66h f Actual src: static void vala_ccode_control_flow_module_real_visit_if_statement (ValaCodeVisitor* base, ValaIfStatement* stmt) { ValaCCodeControlFlowModule * self; ValaCCodeFunction* _tmp0_; ValaCCodeFunction* _tmp1_; ValaExpression* _tmp2_; ValaExpression* _tmp3_; ValaCCodeExpression* _tmp4_; ValaBlock* _tmp5_; ValaBlock* _tmp6_; ValaBlock* _tmp7_; ValaBlock* _tmp8_; ValaCCodeFunction* _tmp13_; ValaCCodeFunction* _tmp14_; self = (ValaCCodeControlFlowModule*) base; g_return_if_fail (stmt!= NULL); _tmp0_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp1_ = _tmp0_; _tmp2_ = vala_if_statement_get_condition (stmt); _tmp3_ = _tmp2_; _tmp4_ = vala_get_cvalue (_tmp3_); vala_ccode_function_open_if (_tmp1_, _tmp4_); _tmp5_ = vala_if_statement_get_true_statement (stmt); _tmp6_ = _tmp5_; vala_code_node_emit ((ValaCodeNode*) _tmp6_, (ValaCodeGenerator*) self); _tmp7_ = vala_if_statement_get_false_statement (stmt); _tmp8_ = _tmp7_; if (_tmp8_!= NULL) { ValaCCodeFunction* _tmp9_; ValaCCodeFunction* _tmp10_; ValaBlock* _tmp11_; ValaBlock* _tmp12_; _tmp9_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp10_ = _tmp9_; vala_ccode_function_add_else (_tmp10_); _tmp11_ = vala_if_statement_get_false_statement (stmt); _tmp12_ = _tmp11_; vala_code_node_emit ((ValaCodeNode*) _tmp12_, (ValaCodeGenerator*) self); } _tmp13_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp14_ = _tmp13_; vala_ccode_function_close (_tmp14_); } Predicted src: static void _cb (GObject *object) { g_return_if_fail (object!= NULL); g_return_if_fail (object!= NULL); g_return_if_fail (object!= NULL); g_return_if_fail (object!= NULL, NULL); g_return_if_fail (object!= NULL); g_fail (object!= NULL); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined dev_c1700_mb_wic2t_set_nio() CMP EDX,0x1 JA LAB_00179172 ADD EDX,dword ptr [RSI + 0x20] CMP EDX,0x20 JZ LAB_00179188 JA LAB_00179168 CMP EDX,0x10 JZ LAB_00179180 CMP EDX,0x11 JNZ LAB_00179172 MOV ESI,0x3 LAB_0017914e: MOV RAX,qword ptr [RDI + 0xa20] MOV RDX,RCX MOV RDI,qword ptr [RAX + 0x510] JMP mpc860_scc_set_nio ;undefined mpc860_scc_set_nio() ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00179168: MOV ESI,0x2 CMP EDX,0x21 JZ LAB_0017914e LAB_00179172: MOV EAX,0xffffffff RET ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00179180: XOR ESI,ESI JMP LAB_0017914e ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00179188: MOV ESI,0x1 JMP LAB_0017914e ?? 90h Actual src: static int dev_c1700_mb_wic2t_set_nio(vm_instance_t *vm,struct cisco_card *card, u_int port_id,netio_desc_t *nio) { u_int scc_chan; if ((port_id > 1) || (dev_c1700_mb_wic_get_scc_chan(card,port_id,&scc_chan) == -1)) return(-1); return(mpc860_scc_set_nio(VM_C1700(vm)->mpc_data,scc_chan,nio)); } Predicted src: static void _set_set_set_set_set_set(const char *name, const char *name) { if (!name) return; if (!name) return; return; }