============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined newtScrollbarSet() PUSH R12 MOV ECX,EDX PUSH RBP MOV RBP,RDI PUSH RBX MOV R12,qword ptr [RDI + 0x40] MOV EBX,dword ptr [RDI] MOV EAX,dword ptr [R12 + 0xc] TEST EAX,EAX JZ LAB_00109170 SUB EBX,0x3 IMUL EBX,ESI TEST EDX,EDX JNZ LAB_001091b0 LAB_00109162: ADD EBX,0x1 LAB_00109165: CMP dword ptr [R12],EBX JNZ LAB_00109187 LAB_0010916b: POP RBX POP RBP POP R12 RET LAB_00109170: SUB EBX,0x1 IMUL EBX,ESI TEST EDX,EDX JZ LAB_00109165 MOV EAX,EBX CDQ IDIV ECX MOV EBX,EAX CMP dword ptr [R12],EBX JZ LAB_0010916b LAB_00109187: MOV RDI,RBP XOR ESI,ESI CALL sbDrawThumb ;undefined sbDrawThumb() MOV dword ptr [R12],EBX MOV RDI,RBP POP RBX MOV ESI,0x1 POP RBP POP R12 JMP sbDrawThumb ;undefined sbDrawThumb() ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_001091b0: MOV EAX,EBX CDQ IDIV ECX MOV EBX,EAX JMP LAB_00109162 ?? 0Fh Actual src: void newtScrollbarSet(newtComponent co, int where, int total) { struct scrollbar * sb = co->data; int new; if (sb->arrows) new = (where * (co->height - 3)) / (total? total : 1) + 1; else new = (where * (co->height - 1)) / (total? total : 1); if (new!= sb->curr) { sbDrawThumb(co, 0); sb->curr = new; sbDrawThumb(co, 1); } } Predicted src: void SetDrawDrawDrawDrawDraw(DrawDrawDraw *DrawDraw, int x, int y) { if (DrawDraw == NULL) return; DrawDrawDrawDrawDrawDrawDrawDrawDrawDraw(DrawDraw); DrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDra ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gth_tag_new_loop() PUSH RBX MOV RBX,RDI MOV EDI,0x18 CALL .plt:::g_malloc0 ;undefined g_malloc0() MOV EDX,dword ptr [RBX] MOV qword ptr [RAX + 0x8],RBX MOV dword ptr [RAX],EDX POP RBX RET ?? 0Fh Actual src: GthTag * gth_tag_new_loop (GthLoop *loop) { GthTag *tag; tag = g_new0 (GthTag, 1); tag->type = loop->type; if (loop->type == GTH_TAG_FOR_EACH_IN_RANGE) tag->value.range_loop = (GthRangeLoop *) loop; else tag->value.loop = loop; return tag; } Predicted src: static void gth_file_new (GthFile *file) { file->priv = g_new0 (GthFile, 1); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined newtScrollbarSet() PUSH R12 MOV ECX,EDX PUSH RBP MOV RBP,RDI PUSH RBX MOV R12,qword ptr [RDI + 0x40] MOV EBX,dword ptr [RDI] MOV EAX,dword ptr [R12 + 0xc] TEST EAX,EAX JZ LAB_00109170 SUB EBX,0x3 IMUL EBX,ESI TEST EDX,EDX JNZ LAB_001091b0 LAB_00109162: ADD EBX,0x1 LAB_00109165: CMP dword ptr [R12],EBX JNZ LAB_00109187 LAB_0010916b: POP RBX POP RBP POP R12 RET LAB_00109170: SUB EBX,0x1 IMUL EBX,ESI TEST EDX,EDX JZ LAB_00109165 MOV EAX,EBX CDQ IDIV ECX MOV EBX,EAX CMP dword ptr [R12],EBX JZ LAB_0010916b LAB_00109187: MOV RDI,RBP XOR ESI,ESI CALL sbDrawThumb ;undefined sbDrawThumb() MOV dword ptr [R12],EBX MOV RDI,RBP POP RBX MOV ESI,0x1 POP RBP POP R12 JMP sbDrawThumb ;undefined sbDrawThumb() ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_001091b0: MOV EAX,EBX CDQ IDIV ECX MOV EBX,EAX JMP LAB_00109162 ?? 0Fh Actual src: void newtScrollbarSet(newtComponent co, int where, int total) { struct scrollbar * sb = co->data; int new; if (sb->arrows) new = (where * (co->height - 3)) / (total? total : 1) + 1; else new = (where * (co->height - 1)) / (total? total : 1); if (new!= sb->curr) { sbDrawThumb(co, 0); sb->curr = new; sbDrawThumb(co, 1); } } Predicted src: void SetDrawDrawDrawDrawDrawDraw(DrawDrawDraw *DrawDraw, int x, int y) { if (DrawDraw) { DrawDrawDrawDrawDrawDraw(DrawDraw, x, y); } else { DrawDrawDrawDrawDraw(DrawDraw, x, y); } } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;double _nrrdUnaryOpAcos(double __x) ;__x double XMM0_Qa JMP .plt:::acos ?? 66h f Actual src: static double _nrrdUnaryOpAcos(double a) {return acos(a);} Predicted src: double _double_d(double x) { return _double_d((double) x); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* Konclude::Reasoner::Kernel::Process::CIndividualSaturationProcessNode::setOccurrenceStatisticsCollectingRequired(bool) * ;************************************************************************************************************************************************************ ;undefined setOccurrenceStatisticsCollectingRequired(CIndividualSaturationProcessNode * this, bool param_1) ;this CIndividual... RDI ;param_1 bool SIL MOV byte ptr [this + 0xea],param_1 MOV RAX,this RET ?? 90h Actual src: CIndividualSaturationProcessNode* CIndividualSaturationProcessNode::setOccurrenceStatisticsCollectingRequired(bool collectingRequired) { mOccurrenceStatisticsCollectingRequired = collectingRequired; return this; } Predicted src: CIndividualProcessNode* CIndividualProcessNode::setIndividualProcessNode(bool b) { mIndividualProcessNode = b; return this; }