============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined Java_edu_umn_gis_mapscript_mapscriptJNI_webObj_1empty_1get() MOV RSI,qword ptr [RDX + 0x40] JMP .plt:JNU_NewStringNative ;undefined JNU_NewStringNative() ?? 0Fh Actual src: SWIGEXPORT jstring JNICALL Java_edu_umn_gis_mapscript_mapscriptJNI_webObj_1empty_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { jstring jresult = 0 ; webObj *arg1 = (webObj *) 0 ; char *result = 0 ; (void)jenv; (void)jcls; (void)jarg1_; arg1 = *(webObj **)&jarg1; result = (char *) ((arg1)->empty); { jresult = JNU_NewStringNative(jenv, result); } return jresult; } Predicted src: SWIGEXPORT jint JNICALL Java_org_sbml_libsbml_libsbmlJNI_libsbmlJNI_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { jint jresult = 0 ; int result; (void)jenv; (void)jcls; (void)jcls; (void)jarg1_; arg1 = *(ListOf **)&jarg1; arg2 = (int)jarg2; result = (int)(arg1)->get((int)(arg2); jresult = (jint)result; return jresult; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* ccl::EmissionNode::compile(ccl::SVMCompiler&) * ;************************************************************************************************************************************************************ ;undefined compile(EmissionNode * this, SVMCompiler * param_1) ;this EmissionNode * RDI ;param_1 SVMCompiler * RSI ;local_30 undefined8 -30 ;local_3c undefined4 -3c ;local_40 undefined4 -40 ;local_44 undefined4 -44 ;local_48 undefined4 -48 PUSH R13 PUSH R12 PUSH RBP MOV RBP,param_1 LEA param_1,[.rodata:s_Color_03a76446] ;= "Color" PUSH RBX MOV RBX,this SUB RSP,0x28 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_30+0x48],RAX XOR EAX,EAX CALL ccl::ShaderNode::input ;undefined input(ShaderNode * this, c... LEA param_1,[.rodata:s_Strength_03a7bfa8] ;= "Strength" MOV this,RBX MOV R12,RAX CALL ccl::ShaderNode::input ;undefined input(ShaderNode * this, c... CMP qword ptr [R12 + 0x10],0x0 MOV param_1,RAX JZ LAB_02777090 LAB_02777029: MOV this,RBP CALL ccl::SVMCompiler::stack_assign ;undefined stack_assign(ShaderInput *... MOV param_1,R12 MOV this,RBP MOV R13D,EAX CALL ccl::SVMCompiler::stack_assign ;undefined stack_assign(ShaderInput *... XOR R8D,R8D MOV ECX,R13D MOV param_1,0x7 MOV EDX,EAX MOV this,RBP CALL ccl::SVMCompiler::add_node ;undefined add_node(SVMCompiler * thi... LAB_02777054: MOV RAX,qword ptr [RSP + local_30+0x48] SUB RAX,qword ptr FS:[0x28] JNZ LAB_027770e4 MOV EDX,dword ptr [RBP + 0x440] ADD RSP,0x28 MOV this,RBP XOR R8D,R8D POP RBX XOR ECX,ECX POP RBP MOV param_1,0x3 POP R12 POP R13 JMP ccl::SVMCompiler::add_node ;undefined add_node(SVMCompiler * thi... ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_02777090: CMP qword ptr [RAX + 0x10],0x0 JNZ LAB_02777029 MOVSS XMM1,dword ptr [RBX + 0x78] MOVSS XMM2,dword ptr [RBX + 0x74] MOV RDX,RSP MOV this,RBP MOVSS XMM0,dword ptr [RBX + 0x80] MOV param_1,0x5 MOV dword ptr [RSP + local_3c+0x48],0x0 MULSS XMM1,XMM0 MULSS XMM2,XMM0 MULSS XMM0,dword ptr [RBX + 0x70] MOVSS dword ptr [RSP + local_40+0x48],XMM1 MOVSS dword ptr [RSP + local_44+0x48],XMM2 MOVSS dword ptr [RSP]=>local_48,XMM0 CALL ccl::SVMCompiler::add_node ;undefined add_node(SVMCompiler * thi... JMP LAB_02777054 LAB_027770e4: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP Actual src: void EmissionNode::compile(SVMCompiler &compiler) { ShaderInput *color_in = input("Color"); ShaderInput *strength_in = input("Strength"); if (color_in->link || strength_in->link) { compiler.add_node( NODE_EMISSION_WEIGHT, compiler.stack_assign(color_in), compiler.stack_assign(strength_in)); } else compiler.add_node(NODE_CLOSURE_SET_WEIGHT, color * strength); compiler.add_node(NODE_CLOSURE_EMISSION, compiler.closure_mix_weight_offset()); } Predicted src: void node::add_node(node *node) { if (node->node) { node->node = node->node; node->node = node->node; node->node = node->node; node->node = node->node; node->node = node->node; node->node = node->node; node->node = node->node; node->node = node->node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node->node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node->node; node->node = node; node->node = node; node->node = node; node->node = node; node->node = node->node = node; node->node = node; node->node = node->node = node; node->node = node; node->node = node; node->node = node->node = node; node->node = node; node->node = node->node = node; node->node = node; node->node = node->node = node; node->node = node; node->node = node; node->node = node->node = node; node->node = node->node = node; node->node = node->node = node; node->node = node; node->node = node->node = node; node->node = node; node->node = node->node = node; node->node = node; node->node = node->node = node; node->node = node->node = node; node->node = node; node->node = node->node = node; node->node = node->node = node; node->node = node->node; node->node = node->node = node; node->node = node; node->node = node->node = node->node = node; node->node = node->node = node; node->node = node; node->node->node = node->node = node->node = node; node->node = node; node->node = node->node = node; node->node = node->node = node->node = node; node->node = node->node = node; node; node->node = node->node = node->node = node; node->node = node; node->node = node->node = node->node = node; node->node = node->node = node->node = node; node node->node = node->node = node; node->node = node; node->node = node->node = node; node->node = node->node = node->node = node; node->node = node->node = node; node->node = node->node = node->node = node; node->node = node->node = node; node->node = node->node = node node; node->node = node->node = node->node = node; node->node = node->node = node; node->node = node->node = node->node = node; node->node = node; node->node = node->node = node; node->node = node->nod ============================== Sample 3 ============================== 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: static int gggg_gggggg_ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* CFileItemList::Size() const * ;************************************************************************************************************************************************************ ;undefined Size(CFileItemList * this) ;this CFileItemLi... RDI PUSH R12 PUSH RBP LEA RBP,[this + 0x3d8] PUSH RBX MOV RBX,this MOV this,RBP CALL .plt:::pthread_mutex_lock ;int pthread_mutex_lock(pthread_mutex... MOV R12,qword ptr [RBX + 0x338] MOV this,RBP SUB R12,qword ptr [RBX + 0x330] CALL .plt:::pthread_mutex_unlock ;int pthread_mutex_unlock(pthread_mut... SAR R12,0x4 POP RBX POP RBP MOV EAX,R12D POP R12 RET ?? 0Fh ;? -> 00841f0f Actual src: int CFileItemList::Size() const { CSingleLock lock(m_lock); return (int)m_items.size(); } Predicted src: bool is_count() const { return true; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined stp_parameter_list_param() PUSH RBP MOV RBP,RDI PUSH RBX MOV RBX,RSI SUB RSP,0x8 CALL .plt:stp_list_get_length ;undefined stp_list_get_length() CDQE CMP RAX,RBX JBE LAB_00132548 MOV RDI,RBP MOV ESI,EBX CALL .plt:stp_list_get_item_by_index ;undefined stp_list_get_item_by_index() MOV RDI,RAX TEST RAX,RAX JZ LAB_00132548 ADD RSP,0x8 POP RBX POP RBP JMP .plt:stp_list_item_get_data ;undefined stp_list_item_get_data() ?? 0Fh ?? 1Fh ?? 00h LAB_00132548: ADD RSP,0x8 XOR EAX,EAX POP RBX POP RBP RET ?? 66h f Actual src: const stp_parameter_t * stp_parameter_list_param(stp_const_parameter_list_t list, size_t item) { const stp_list_t *ilist = (const stp_list_t *)list; stp_list_item_t *i = NULL; if (item >= stp_list_get_length(ilist)) return NULL; else { i = stp_list_get_item_by_index(ilist, item); if (i == NULL) return NULL; return (const stp_parameter_t *) stp_list_item_get_data(i); } } Predicted src: static int item_item_item_item_item_item_item_item_item_item_item_get(item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_itemitem_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_item_itemitem_itemitem_itemitem_itemitem_itemitemitem_item_item_itemitem_item_itemitem_itemitem_itemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemitemite