============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined linphone_account_creator_set_password() ;local_2c undefined4 -2c PUSH R13 LEA R13,[.rodata:s_assistant_00433c4a] ;= "assistant" PUSH R12 PUSH RBP MOV RBP,RSI PUSH RBX MOV RBX,RDI SUB RSP,0x18 MOV RDI,qword ptr [RDI + 0x40] CALL .plt:linphone_core_get_config ;undefined linphone_core_get_config() MOV ECX,0xffffffff LEA RDX,[.rodata:s_password_min_length_00433c88] ;= "password_min_length" MOV RSI=>.rodata:s_assistant_00433c4a,R13 ;= "assistant" MOV RDI,RAX CALL .plt:linphone_config_get_int ;undefined linphone_config_get_int() MOV RDI,qword ptr [RBX + 0x40] MOVSXD R12,EAX CALL .plt:linphone_core_get_config ;undefined linphone_core_get_config() MOV ECX,0xffffffff LEA RDX,[.rodata:s_password_max_length_00433c9c] ;= "password_max_length" MOV RSI=>.rodata:s_assistant_00433c4a,R13 ;= "assistant" MOV RDI,RAX CALL .plt:linphone_config_get_int ;undefined linphone_config_get_int() TEST RBP,RBP JZ LAB_003aeee0 MOVSXD R13,EAX TEST R12D,R12D JLE LAB_003aee8c MOV RDI,RBP CALL .plt:::strlen ;size_t strlen(char * __s) MOV R8,RAX MOV EAX,0x1 CMP R8,R12 JC LAB_003aeed3 LAB_003aee8c: TEST R13D,R13D JLE LAB_003aeea6 MOV RDI,RBP CALL .plt:::strlen ;size_t strlen(char * __s) MOV R8,RAX MOV EAX,0x2 CMP R8,R13 JA LAB_003aeed3 LAB_003aeea6: MOV RDI,qword ptr [RBX + 0x88] TEST RDI,RDI JZ LAB_003aeec2 CALL .plt.got:::ortp_free ;undefined ortp_free() MOV qword ptr [RBX + 0x88],0x0 LAB_003aeec2: MOV RDI,RBP CALL .plt:::ortp_strdup ;undefined ortp_strdup() MOV qword ptr [RBX + 0x88],RAX XOR EAX,EAX LAB_003aeed3: ADD RSP,0x18 POP RBX POP RBP POP R12 POP R13 RET ?? 66h f ?? 90h LAB_003aeee0: MOV RDI,qword ptr [RBX + 0x88] MOV EAX,0x1 TEST RDI,RDI JZ LAB_003aeed3 MOV dword ptr [RSP + local_2c+0x38],EAX CALL .plt.got:::bctbx_free ;undefined bctbx_free() MOV EAX,dword ptr [RSP + local_2c+0x38] MOV qword ptr [RBX + 0x88],0x0 JMP LAB_003aeed3 ?? 0Fh Actual src: LinphoneAccountCreatorPasswordStatus linphone_account_creator_set_password(LinphoneAccountCreator *creator, const char *password) { int min_length = lp_config_get_int(linphone_core_get_config(creator->core), "assistant", "password_min_length", -1); int max_length = lp_config_get_int(linphone_core_get_config(creator->core), "assistant", "password_max_length", -1); if (!password) { resetField(&creator->password); return LinphoneAccountCreatorPasswordStatusTooShort; } if (min_length > 0 && strlen(password) < (size_t)min_length) { return LinphoneAccountCreatorPasswordStatusTooShort; } else if (max_length > 0 && strlen(password) > (size_t)max_length) { return LinphoneAccountCreatorPasswordStatusTooLong; } set_string(&creator->password, password, FALSE); return LinphoneAccountCreatorPasswordStatusOk; } Predicted src: int linphone_core_get_config_length(LinphoneCore *lc, const char *config) { if (config == NULL) { return -1; } if (config->priv->config!= NULL) { if (config->priv->config == NULL) { return -1; } if (config->priv->config == NULL) { return -1; } if (config->priv->config == NULL) { return -1; } if (config->priv->config == NULL) { return -1; } if (config->priv->config == NULL) { return -1; } if (config->priv->config == NULL) { return -1; } else { return -1; } } if (config->priv->config == NULL) { return -1; } if (config->priv->config == NULL) { return -1; } if (config->priv->config == NULL) { return -1; } return 0; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* TitanLoggerApi::TitanLogEvent_sourceInfo__list_template::list_item(unsigned int) * ;************************************************************************************************************************************************************ ;undefined list_item(TitanLogEvent_sourceInfo__list_template * this, uint param_1) ;this TitanLogEve... RDI ;param_1 uint ESI SUB RSP,0x8 MOV EAX,dword ptr [this] LEA EDX,[RAX + -0x4] CMP EDX,0x1 JBE LAB_001cda43 CMP EAX,0xb JNZ LAB_001cda62 LAB_001cda43: CMP dword ptr [this + 0x28],param_1 JBE LAB_001cda70 MOV param_1,param_1 MOV RDX,qword ptr [this + 0x30] ADD RSP,0x8 LEA RAX,[param_1*0x8] SUB RAX,param_1 LEA RAX,[RDX + RAX*0x8] RET LAB_001cda62: LEA this,[.rodata:s_Internal_error:_Accessing_a_list_004d47a0] ;= "Internal error: Accessing a list... XOR EAX,EAX CALL TTCN_error ;undefined TTCN_error(char * param_1,... LAB_001cda70: LEA this,[.rodata:s_Internal_error:_Index_overflow_i_004d4818] ;= "Internal error: Index overflow in... XOR EAX,EAX CALL TTCN_error ;undefined TTCN_error(char * param_1,... NOP Actual src: TitanLogEvent_sourceInfo__list_template& TitanLogEvent_sourceInfo__list_template::list_item(unsigned int list_index) { if (template_selection!= VALUE_LIST && template_selection!= COMPLEMENTED_LIST && template_selection!= CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of type @TitanLoggerApi.TitanLogEvent.sourceInfo_list."); if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of type @TitanLoggerApi.TitanLogEvent.sourceInfo_list."); return value_list.list_value[list_index]; } Predicted src: boolean PREGEN__RECORD__OF__OF__OPTIMIZED_template::list_item(unsigned int index_index) const { if (template_selection!= SPECIFIC_VALUE) TTCN_error("Accessing a non-list template of a non-list template of type @TitanLoggerApi.RECORD_RECORD_OF_OPTIMIZED."); if (template_selection!= SPECIFIC_VALUE) TTCN_error("Accessing a non-list template of type @TitanLoggerApi.RECORD_RECORD_OF_OPTIMIZED."); if (index_index >= value_list.n_values) TTCN_error("Accessing a non-list template of type @TitanLoggerApi.RECORD_RECORD_OF_OPTIMIZED."); return value_list.n_values[index_index]; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined ff_argo_asf_parse_chunk_header() ;local_10 undefined8 -10 SUB RSP,0x18 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_10+0x18],RAX MOV EAX,dword ptr [RSI] MOV dword ptr [RDI],EAX MOV EAX,dword ptr [RSI + 0x4] MOV dword ptr [RDI + 0x4],EAX MOV EAX,dword ptr [RSI + 0x8] MOV dword ptr [RDI + 0x8],EAX MOVZX EAX,word ptr [RSI + 0xc] MOV word ptr [RDI + 0xc],AX MOVZX EAX,word ptr [RSI + 0xe] MOV word ptr [RDI + 0xe],AX MOV EAX,dword ptr [RSI + 0x10] MOV dword ptr [RDI + 0x10],EAX MOV RAX,qword ptr [RSP + local_10+0x18] SUB RAX,qword ptr FS:[0x28] JNZ LAB_00153b5d ADD RSP,0x18 RET LAB_00153b5d: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr CS:[RAX + RAX*0x1] Actual src: void ff_argo_asf_parse_chunk_header(ArgoASFChunkHeader *hdr, const uint8_t *buf) { hdr->num_blocks = AV_RL32(buf + 0); hdr->num_samples = AV_RL32(buf + 4); hdr->unk1 = AV_RL32(buf + 8); hdr->sample_rate = AV_RL16(buf + 12); hdr->unk2 = AV_RL16(buf + 14); hdr->flags = AV_RL32(buf + 16); } Predicted src: void header_parse_header_header (structheader *header, structheader *header) { header->header =header->header; header->header =header->header; header->header =header->header; header->header =header->header; header->header =header->header; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined ccp_pmd_qp_release() PUSH R12 PUSH RBP PUSH RBX MOV RAX,qword ptr [RDI + 0x10] MOVZX EBX,SI MOV RAX,qword ptr [RAX + 0x50] MOV R12,qword ptr [RAX + RBX*0x8] TEST R12,R12 JZ LAB_0012bc27 MOV RBP,RDI MOV RDI,qword ptr [R12 + 0x48] CALL .plt:::rte_ring_free ;undefined rte_ring_free() MOV RDI,qword ptr [R12 + 0x60] CALL .plt:::rte_mempool_free ;undefined rte_mempool_free() MOV RDI,R12 CALL .plt:::rte_free ;undefined rte_free() MOV RAX,qword ptr [RBP + 0x10] MOV RAX,qword ptr [RAX + 0x50] MOV qword ptr [RAX + RBX*0x8],0x0 LAB_0012bc27: POP RBX XOR EAX,EAX POP RBP POP R12 RET ?? 66h f Actual src: static int ccp_pmd_qp_release(struct rte_cryptodev *dev, uint16_t qp_id) { struct ccp_qp *qp; if (dev->data->queue_pairs[qp_id]!= NULL) { qp = (struct ccp_qp *)dev->data->queue_pairs[qp_id]; rte_ring_free(qp->processed_pkts); rte_mempool_free(qp->batch_mp); rte_free(qp); dev->data->queue_pairs[qp_id] = NULL; } return 0; } Predicted src: static int ipmi_operation_release_free(ipmi_operation_t *operation) { ipmi_operation_t *operation = ipmi_operation_get_operation(operation); ipmi_free(operation); ipmi_free(operation); return 0; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* QCA::CRLEntry::time() const * ;************************************************************************************************************************************************************ ;undefined time(void) PUSH R12 ADD RSI,0x8 MOV R12,RDI CALL .plt:::QDateTime::QDateTime ;undefined QDateTime(QDateTime * this... MOV RAX,R12 POP R12 RET ?? 66h f Actual src: QDateTime CRLEntry::time() const { return _time; } Predicted src: Qmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlm