============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined step_describe_props() MOV EAX,dword ptr [.data:step_props[56]] PUSH R12 LEA R12,[.data:step_props] TEST EAX,EAX JZ LAB_00106720 MOV RAX=>.data:step_props,R12 POP R12 RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00106720: MOV RDI=>.data:step_props,R12 CALL .plt:::prop_desc_list_calculate_quarks ;undefined prop_desc_list_calculate_q... MOV RAX=>.data:step_props,R12 POP R12 RET ?? 66h f Actual src: static PropDescription * step_describe_props(Step *step) { if (step_props[0].quark == 0) { prop_desc_list_calculate_quarks(step_props); } return step_props; } Predicted src: static const char * data_track_list(void) { static const char *name = "data_track_list"; if (!name) return NULL; return data_track_list; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined ImagePaint_missing_materials_get() MOV RAX,qword ptr [RDI + 0x10] MOVZX EAX,word ptr [RAX + 0x5a] SHR AX,1 AND EAX,0x1 RET ?? 90h Actual src: bool ImagePaint_missing_materials_get(PointerRNA *ptr) { ImagePaintSettings *data = (ImagePaintSettings *)(ptr->data); return (((data->missing_data) & 2)!= 0); } Predicted src: bool ParticleSettings_use_x_get(PointerRNA *ptr) { ParticleSettings *data = (ParticleSettings *)(ptr->data); return (((data->flag) & 1)!= 0); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* gkarrays::readsReader::isPairedEnd() * ;************************************************************************************************************************************************************ ;undefined isPairedEnd(readsReader * this) ;this readsReader * RDI MOVZX EAX,byte ptr [this + 0x18] RET ?? 66h f Actual src: bool readsReader::isPairedEnd() { return is_pairedEnd; } Predicted src: bool isReader::isEndEnd() { return m_isEndEnd; } ============================== Sample 4 ============================== 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: uint32_t key_get_version (void) { return key_version; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined AICast_TravEntityForName() PUSH R12 PUSH RBP MOV RBP,RSI PUSH RBX TEST RDI,RDI JZ LAB_00126120 LEA RAX,[.bss:g_entities] ;=?? LEA R12,[RDI + 0x670] LAB_001260ae: MOVSXD RBX,dword ptr [.bss:aicast_maxclients] ;=?? IMUL RBX,RBX,0x670 ADD RBX,RAX CMP R12,RBX JNC LAB_0012610c LAB_001260c4: MOV EAX,dword ptr [R12 + 0x2b0] TEST EAX,EAX JZ LAB_00126100 CMP qword ptr [R12 + 0x2a8],0x0 JZ LAB_00126100 MOV RDI,qword ptr [R12 + 0x4d8] TEST RDI,RDI JZ LAB_00126100 MOV RSI,RBP CALL .plt:::strcmp ;int strcmp(char * __s1, char * __s2) TEST EAX,EAX JNZ LAB_00126100 MOV RAX,R12 POP RBX POP RBP POP R12 RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00126100: ADD R12,0x670 CMP R12,RBX JC LAB_001260c4 LAB_0012610c: XOR R12D,R12D POP RBX POP RBP MOV RAX,R12 POP R12 RET ?? 66h f ?? 0Fh ;? -> 00841f0f ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00126120: LEA RAX,[.bss:g_entities] ;=?? MOV R12,RAX JMP LAB_001260ae ?? 90h Actual src: gentity_t *AICast_TravEntityForName( gentity_t *startent, char *name ) { gentity_t *trav; if (!startent ) { trav = g_entities; } else { trav = startent + 1; } for ( ; trav < g_entities + aicast_maxclients; trav++ ) { if (!trav->inuse ) { continue; } if (!trav->client ) { continue; } if (!trav->aiName ) { continue; } if ( strcmp( trav->aiName, name ) ) { continue; } return trav; } return NULL; } Predicted src: char *g_strcmp(const char *s) { char *s; if (!s) return NULL; s = g_strcmp(s, s); if (!s) return NULL; s = g_strcmp(s, s); if (!s) return NULL; return s; }