============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* decI_rRegNode::emit(CodeBuffer&, PhaseRegAlloc*) const * ;************************************************************************************************************************************************************ ;undefined emit(decI_rRegNode * this, CodeBuffer * param_1, PhaseRegAlloc * param_2) ;this decI_rRegNo... RDI ;param_1 CodeBuffer * RSI ;param_2 PhaseRegAll... RDX PUSH RBP MOV RBP,RSP PUSH R13 MOV R13,param_2 PUSH R12 MOV R12,this PUSH RBX MOV RBX,param_1 SUB RSP,0x8 MOV RAX,qword ptr [param_1 + 0x68] MOV qword ptr [param_1 + 0x60],RAX MOV this,qword ptr [this + 0x48] MOV RAX,qword ptr [this] CALL qword ptr [RAX + 0x8] MOV this,qword ptr [R12 + 0x48] MOV ECX,0x1 MOV param_2,R12 MOV param_1,R13 MOV RAX,qword ptr [this] CALL qword ptr [RAX + 0x28] CMP EAX,0x7 MOV RAX,qword ptr [RBX + 0x68] JLE LAB_0031bd46 MOV byte ptr [RAX],0x41 MOV RAX,qword ptr [RBX + 0x68] ADD RAX,0x1 MOV qword ptr [RBX + 0x68],RAX LAB_0031bd46: MOV byte ptr [RAX],0xff MOV param_2,R12 MOV param_1,R13 MOV ECX,0x1 ADD qword ptr [RBX + 0x68],0x1 MOV this,qword ptr [R12 + 0x48] MOV RAX,qword ptr [this] CALL qword ptr [RAX + 0x28] MOV param_2,qword ptr [RBX + 0x68] AND EAX,0x7 OR EAX,0xffffffc8 MOV byte ptr [param_2],AL ADD qword ptr [RBX + 0x68],0x1 ADD RSP,0x8 POP RBX POP R12 POP R13 POP RBP RET ;************************************************************************************************************************************************************ ;* decI_memNode::emit(CodeBuffer&, PhaseRegAlloc*) const * ;************************************************************************************************************************************************************ ;undefined emit(decI_memNode * this, CodeBuffer * param_1, PhaseRegAlloc * param_2) ;this decI_memNode * RDI ;param_1 CodeBuffer * RSI ;param_2 PhaseRegAll... RDX ;local_30 undefined1 -30 ;local_3c undefined4 -3c PUSH RBP Actual src: void decI_rRegNode::emit(CodeBuffer& cbuf, PhaseRegAlloc* ra_) const { cbuf.set_insts_mark(); // Start at oper_input_base() and count operands unsigned idx0 = 1; unsigned idx1 = 1; // dst unsigned idx2 = idx1 + opnd_array(1)->num_edges(); // src { #line 2399 "/fastdata/debian_allsrc/build/openjdk-8-8u312-b07/src/hotspot/src/cpu/x86/vm/x86_64.ad" if (opnd_array(1)->reg(ra_,this,idx1)/* dst */ >= 8) { emit_opcode(cbuf, Assembler::REX_B); } #line 18393 "../generated/adfiles/ad_x86_64.cpp" } { #line 1781 "/fastdata/debian_allsrc/build/openjdk-8-8u312-b07/src/hotspot/src/cpu/x86/vm/x86_64.ad" emit_opcode(cbuf, (0xFF /*primary()*/)); #line 18401 "../generated/adfiles/ad_x86_64.cpp" } { #line 2039 "/fastdata/debian_allsrc/build/openjdk-8-8u312-b07/src/hotspot/src/cpu/x86/vm/x86_64.ad" // INC, DEC, IDIV, IMOD, JMP indirect,... emit_rm(cbuf, 0x3, (0x01 /*secondary()*/), opnd_array(1)->reg(ra_,this,idx1)/* dst */ & 7); #line 18410 "../generated/adfiles/ad_x86_64.cpp" } } Predicted src: void NodeNode::NodeNodeNodeNode::NodeNodeNodeNodeNode(NodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNodeNod ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined ioe_err_free() PUSH RBX MOV RBX,RDI MOV RDI,qword ptr [RDI] CALL .plt:free ;void free(void * __ptr) MOV RDI,qword ptr [RBX + 0x10] POP RBX JMP .plt:free ;void free(void * __ptr) ?? 66h f Actual src: void ioe_err_free(ioe_err_t *err) { free(err->path); free(err->msg); } Predicted src: void free_free(void *ptr) { free(ptr); free(ptr); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined ProfilerGetCurrentState() MOV RSI,RDI MOV RDI,qword ptr [->CpuProfiler::instance_] ;= 00151640 JMP .plt:LAB_00117330 ?? 90h Actual src: void ProfilerGetCurrentState( ProfilerState* state) { CpuProfiler::instance_.GetCurrentState(state); } Predicted src: int StateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStat ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined DetectFilemagicThreadFree() TEST RDI,RDI JZ LAB_00255630 PUSH RBP MOV RBP,RDI MOV RDI,qword ptr [RDI] TEST RDI,RDI JZ LAB_00255626 CALL .plt:::magic_close ;undefined magic_close() LAB_00255626: MOV RDI,RBP POP RBP JMP .plt.got:::free ;void free(void * __ptr) ?? 90h LAB_00255630: RET ?? 66h f Actual src: static void DetectFilemagicThreadFree(void *ctx) { if (ctx!= NULL) { DetectFilemagicThreadData *t = (DetectFilemagicThreadData *)ctx; if (t->ctx) magic_close(t->ctx); SCFree(t); } } Predicted src: void close_close(void *data) { if (data) { free(data); } } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined t3_key_get_version() MOV EAX,0x20a RET ?? 66h f Actual src: long t3_key_get_version(void) { return T3_KEY_VERSION; } Predicted src: int version_version_get_version(void) { return 0; }