============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined sc_insert() ;local_30 undefined8 -30 ;local_38 undefined8 -38 PUSH R14 PUSH R13 MOV R13,RDI PUSH R12 XOR R12D,R12D PUSH RBP MOV RBP,RSI PUSH RBX SUB RSP,0x10 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_30+0x38],RAX XOR EAX,EAX CALL .plt:::document_get_current ;undefined document_get_current() TEST RAX,RAX JZ LAB_001058fb MOV RBX,RAX MOV RAX,qword ptr [RAX + 0x28] MOV RDI,qword ptr [RAX + 0x8] CALL .plt:::sci_get_current_position ;undefined sci_get_current_position() MOV EDX,0x1 MOV RCX,RSP MOV RSI,RBP MOV R14D,EAX MOV R8D,0xffffffff MOV RDI,R13 XOR EAX,EAX CALL .plt:::gtk_tree_model_get ;undefined gtk_tree_model_get() MOV RDX,qword ptr [RSP]=>local_38 TEST RDX,RDX JZ LAB_001058fb CMP byte ptr [RDX],0x0 JNZ LAB_00105920 LAB_001058fb: MOV RAX,qword ptr [RSP + local_30+0x38] SUB RAX,qword ptr FS:[0x28] JNZ LAB_00105941 ADD RSP,0x10 MOV EAX,R12D POP RBX POP RBP POP R12 POP R13 POP R14 RET ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00105920: MOV RAX,qword ptr [RBX + 0x28] MOV ESI,R14D MOV R12D,0x1 MOV RDI,qword ptr [RAX + 0x8] CALL .plt:::sci_insert_text ;undefined sci_insert_text() MOV RDI,qword ptr [RSP]=>local_38 CALL .plt:::g_free ;undefined g_free() JMP LAB_001058fb LAB_00105941: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP word ptr CS:[RAX + RAX*0x1] Actual src: static gboolean sc_insert(GtkTreeModel *model, GtkTreeIter *iter) { GeanyDocument *doc = document_get_current(); gboolean result = FALSE; if (doc!= NULL) { gchar *str; gint pos = sci_get_current_position(doc->editor->sci); gtk_tree_model_get(model, iter, COLUMN_HTML_NAME, &str, -1); if (!EMPTY(str)) { sci_insert_text(doc->editor->sci, pos, str); g_free(str); result = TRUE; } } return result; } Predicted src: static void get_current_selected (GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { GtkTreeModel *model = user_data; GtkTreeModel *model; GtkTreeModel *model; GtkTreeModel *model; GtkTreeModel *model; model = gtk_tree_model_get_model (model, iter); if (model == NULL) return; model = gtk_tree_model_get_selected (model, iter); if (model == NULL) return; model = gtk_tree_model_get_selected (model, iter); if (model == NULL) return; if (gtk_tree_model_get_iter (model, iter, &model, -1)) { gtk_tree_model_get (model, iter, -1); g_free (model); } } ============================== 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_err_err(err_err_t err) { free(err->err); free(err); } ============================== Sample 3 ============================== 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: int __pmSetServer(pmContext *ctx, constpmContext *ctx) { int rc; if (ctx->is_valid(ctx) || ctx->is_valid(ctx)) { rc = 0; return rc; } rc =pmSetServer(ctx, ctx); if (rc < 0) { return rc; } rc =pmSetServer(ctx, ctx); if (rc < 0) { return rc; } return rc; } ============================== Sample 4 ============================== 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: CIMGUI_API void ImPlot_t* ImPlot_state( ImPlot_state* self) { return self->state(self); } ============================== Sample 5 ============================== 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: XS_EUPXS(XS_OpenGL_parse_error) { dVAR; dXSARGS; if (items!= 2) croak_xs_usage(cv, "op"); { char * op; char * op; char * op; op = op; op = op; op = op; op = op; op = op; op = op; } XSRETURN_EMPTY; }