============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined RTSgBufCopyFromBuf() CMP RDI,0xfff JBE LAB_00182458 MOV RAX,-0x100000000000000 PUSH RBP MOV R8,RDI MOV RBP,RSP PUSH R15 PUSH R14 PUSH R13 PUSH R12 PUSH RBX MOV RBX,RDI SUB RSP,0x8 AND R8,RAX JNZ LAB_00182460 MOV R15,RSI CMP RSI,0xfff JBE LAB_00182432 TEST RSI,RAX JNZ LAB_00182432 MOV R13,RDX MOV R14,RDX TEST RDX,RDX JNZ LAB_001823f8 JMP LAB_0018242f ?? 0Fh ?? 1Fh ?? 00h LAB_001823c0: ADD EDX,0x1 MOV dword ptr [RBX + 0xc],EDX CMP ECX,EDX JBE LAB_001823e0 SHL RDX,0x4 ADD RDX,qword ptr [RBX] MOV RAX,qword ptr [RDX] MOV qword ptr [RBX + 0x10],RAX MOV RAX,qword ptr [RDX + 0x8] MOV qword ptr [RBX + 0x18],RAX LAB_001823e0: TEST R12,R12 JZ LAB_00182450 MOV RSI,R15 MOV RDX,R12 ADD R15,R12 CALL .plt:::memcpy ;void * memcpy(void * __dest, void *... SUB R14,R12 JZ LAB_0018242f LAB_001823f8: MOV EDX,dword ptr [RBX + 0xc] MOV ECX,dword ptr [RBX + 0x8] MOV RAX,qword ptr [RBX + 0x18] CMP EDX,ECX JZ LAB_00182448 LAB_00182406: CMP R14,RAX MOV R12,RAX MOV RDI,qword ptr [RBX + 0x10] CMOVBE R12,R14 SUB RAX,R12 MOV qword ptr [RBX + 0x18],RAX JZ LAB_001823c0 ADD R12,RDI MOV RDX,R14 MOV RSI,R15 MOV qword ptr [RBX + 0x10],R12 CALL .plt:::memcpy ;void * memcpy(void * __dest, void *... LAB_0018242f: MOV R8,R13 LAB_00182432: ADD RSP,0x8 MOV RAX,R8 POP RBX POP R12 POP R13 POP R14 POP R15 POP RBP RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00182448: TEST RAX,RAX JNZ LAB_00182406 NOP dword ptr [RAX] LAB_00182450: SUB R13,R14 JMP LAB_0018242f ?? 0Fh ?? 1Fh ?? 00h LAB_00182458: XOR EAX,EAX RET ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00182460: XOR R8D,R8D JMP LAB_00182432 ?? 66h f Actual src: RTDECL(size_t) RTSgBufCopyFromBuf(PRTSGBUF pSgBuf, const void *pvBuf, size_t cbCopy) { AssertPtrReturn(pSgBuf, 0); AssertPtrReturn(pvBuf, 0); size_t cbLeft = cbCopy; while (cbLeft) { size_t cbThisCopy = cbLeft; void *pvDst = rtSgBufGet(pSgBuf, &cbThisCopy); if (!cbThisCopy) break; memcpy(pvDst, pvBuf, cbThisCopy); cbLeft -= cbThisCopy; pvBuf = (const void *)((uintptr_t)pvBuf + cbThisCopy); } return cbCopy - cbLeft; } Predicted src: static size_t CopyCopyCopy(const void *buf, size_t size) { size_t size = 0; size_t len = 0; if (buf == NULL) { return -1; } if (buf == NULL) { return -1; } if (buf == NULL) { return -1; } len = buf->len; if (len < buf->len) { buf->len = buf->len; buf->len = buf->len; } else { buf->len = buf->len; buf->len = buf->len; buf->len = buf->len; } if (buf->len > buf->len) { memcpy(buf->buf, buf->len); buf->len = buf->len; } else { buf->len = buf->len; } return len; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined as_utils_find_icon_filename() MOV RCX,RDX XOR EDX,EDX JMP .plt:LAB_00119260 ?? 66h f Actual src: gchar * as_utils_find_icon_filename (const gchar *destdir, const gchar *search, GError **error) { return as_utils_find_icon_filename_full (destdir, search, AS_UTILS_FIND_ICON_NONE, error); } Predicted src: static void find_icon_find_icon (const gchar *icon_name, const gchar *icon_name, const gchar *value) { g_object_unref (icon_name, NULL, NULL); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* juce::AudioProcessorGraph::Connection::TEMPNAMEPLACEHOLDERVALUE(juce::AudioProcessorGraph::Connection const&) const * ;************************************************************************************************************************************************************ ;undefined operator!=(Connection * this, Connection * param_1) ;this Connection * RDI ;param_1 Connection * RSI MOV EDX,dword ptr [param_1] MOV EAX,0x1 CMP dword ptr [this],EDX JZ LAB_0029c150 LAB_0029c14b: RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_0029c150: MOV ECX,dword ptr [param_1 + 0x4] CMP dword ptr [this + 0x4],ECX JNZ LAB_0029c14b MOV ECX,dword ptr [param_1 + 0x8] CMP dword ptr [this + 0x8],ECX JNZ LAB_0029c14b MOV EAX,dword ptr [param_1 + 0xc] CMP dword ptr [this + 0xc],EAX SETNZ AL RET ?? 66h f Actual src: bool AudioProcessorGraph::Connection::operator!= (const Connection& c) const noexcept { return! operator== (c); } Predicted src: bool operator==(const float &a) const { return a == a; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined rd_kafka_message_get_from_rkm() ;local_10 undefined8 -10 CMP dword ptr [RDI + 0x10],0x4 MOV RAX,RSI JZ LAB_001438d0 MOV RDX,qword ptr [RDI + 0x38] TEST RDX,RDX JZ LAB_00143900 CMP qword ptr [RSI + 0x8],0x0 MOV RCX,qword ptr [RDX + 0x60] MOV qword ptr [RSI + 0x40],RDI JZ LAB_00143947 LAB_001438b5: MOV EDX,dword ptr [RDX + 0x68] MOV dword ptr [RAX + 0x10],EDX LAB_001438bb: MOV EDX,dword ptr [RAX] TEST EDX,EDX JNZ LAB_001438cc MOV EDX,dword ptr [RDI + 0x20] CMP dword ptr [RDI + 0x10],0x1 MOV dword ptr [RAX],EDX JZ LAB_00143910 LAB_001438cc: RET ?? 0Fh ?? 1Fh ?? 00h LAB_001438d0: MOV RDX,qword ptr [RSI + 0x8] MOV RCX,qword ptr [RDI + 0x70] TEST RDX,RDX JNZ LAB_001438bb TEST RCX,RCX JZ LAB_001438bb LAB_001438e2: CMP dword ptr [RCX],0x544b524c JNZ LAB_00143940 LOCK ADD dword ptr [RCX + 0x10],0x1 LAB_001438ef: MOV qword ptr [RAX + 0x8],RCX TEST RDX,RDX JNZ LAB_001438b5 JMP LAB_001438bb ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00143900: MOV qword ptr [RSI + 0x40],RDI XOR ECX,ECX JMP LAB_001438bb ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00143910: TEST RCX,RCX JZ LAB_001438cc TEST EDX,EDX JNZ LAB_001438cc SUB RSP,0x18 MOV RDI,qword ptr [RCX + 0xf0] MOV RSI,RAX MOV qword ptr [RSP + local_10+0x18],RAX CALL rd_kafka_interceptors_on_consume ;undefined rd_kafka_interceptors_on_c... MOV RAX,qword ptr [RSP + local_10+0x18] ADD RSP,0x18 RET ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00143940: LOCK ADD dword ptr [RCX + 0x18],0x1 JMP LAB_001438ef LAB_00143947: TEST RCX,RCX JZ LAB_001438b5 JMP LAB_001438e2 ?? 66h f Actual src: rd_kafka_message_t *rd_kafka_message_get_from_rkm (rd_kafka_op_t *rko, rd_kafka_msg_t *rkm) { return rd_kafka_message_setup(rko, &rkm->rkm_rkmessage); } Predicted src: void rd_kafka_kafka_get_from_kafka_kafka_from_kafka(rd_kafka_kafka_t *kafka, rd_kafka_kafka_kafka_t *kafka) { rd_kafka_kafka_t *kafka; rd_kafka_kafka_t *kafka; if (kafka == NULL) return; kafka = rd_kafka_kafka_get_kafka_kafka(kafka); if (kafka == NULL) return; kafka = rd_kafka_kafka_get_kafka_kafka(kafka); if (kafka == NULL) return; kafka->kafka =kafka->kafka; kafka->kafka =kafka->kafka; if (kafka->kafka == NULL) return; if (kafka->kafka == NULL) return; kafka->kafka =kafka->kafka; if (kafka->kafka == NULL) return; kafka->kafka =kafka->kafka; if (kafka->kafka == NULL) return; kafka->kafka =kafka->kafka; return; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined soundio_get_bytes_per_sample() MOV EAX,0xffffffff CMP EDI,0x12 JA LAB_00107a66 MOV EDI,EDI LEA RAX,[.rodata:CSWTCH.51] MOV EAX=>.rodata:CSWTCH.51,dword ptr [RAX + RDI*0x4]=>DAT_005602d8 LAB_00107a66: RET ?? 66h f Actual src: int soundio_get_bytes_per_sample(enum SoundIoFormat format) { switch (format) { case SoundIoFormatU8: return 1; case SoundIoFormatS8: return 1; case SoundIoFormatS16LE: return 2; case SoundIoFormatS16BE: return 2; case SoundIoFormatU16LE: return 2; case SoundIoFormatU16BE: return 2; case SoundIoFormatS24LE: return 4; case SoundIoFormatS24BE: return 4; case SoundIoFormatU24LE: return 4; case SoundIoFormatU24BE: return 4; case SoundIoFormatS32LE: return 4; case SoundIoFormatS32BE: return 4; case SoundIoFormatU32LE: return 4; case SoundIoFormatU32BE: return 4; case SoundIoFormatFloat32LE: return 4; case SoundIoFormatFloat32BE: return 4; case SoundIoFormatFloat64LE: return 8; case SoundIoFormatFloat64BE: return 8; case SoundIoFormatInvalid: return -1; } return -1; } Predicted src: int as_sample_get_bytes_bytes (int i) { switch (i) { case 0: return -1; case 1: return -1; case 2: return -1; case 4: return -1; case 4: return -1; case 4: return -1; case 4: return -1; default: return -1; } }