============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _cffi_d_ncprogbar_destroy() JMP .plt:ncprogbar_destroy ?? 66h f Actual src: static void _cffi_d_ncprogbar_destroy(struct ncprogbar * x0) { ncprogbar_destroy(x0); } Predicted src: static void _cffi_d_ncplane_destroy(struct ncplane * x0) { ncplane_destroy(x0); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined LineStyleAlphaModifier_DistanceFromObject_expanded_get() MOV RAX,qword ptr [RDI + 0x10] MOV EAX,dword ptr [RAX + 0x58] SHR EAX,1 AND EAX,0x1 RET ?? 0Fh Actual src: bool LineStyleAlphaModifier_DistanceFromObject_expanded_get(PointerRNA *ptr) { LineStyleAlphaModifier_DistanceFromObject *data = (LineStyleAlphaModifier_DistanceFromObject *)(ptr->data); return (((data->modifier.flags) & 2)!= 0); } Predicted src: bool LineStyleThicknessModifier_invert_mapping_get(PointerRNA *ptr) { LineStyleThicknessModifier_invert *data = (LineStyleThicknessModifier_invert *)(ptr->data); return (((data->flags) & 1)!= 0); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined dpiStmt__check() PUSH R12 MOV RCX,RDX MOV R12,RDX MOV RDX,RSI PUSH RBP MOV ESI,0xfa3 MOV RBP,RDI SUB RSP,0x8 CALL .plt:dpiGen__startPublicFn ;undefined dpiGen__startPublicFn() TEST EAX,EAX JS LAB_0011ce70 CMP qword ptr [RBP + 0x28],0x0 JZ LAB_0011ce50 MOV RAX,qword ptr [RBP + 0x30] TEST RAX,RAX JZ LAB_0011ce08 CMP qword ptr [RAX + 0x28],0x0 JZ LAB_0011ce50 LAB_0011ce08: MOV RDI,qword ptr [RBP + 0x18] MOV RSI,R12 CALL .plt:dpiConn__checkConnected ;undefined dpiConn__checkConnected() TEST EAX,EAX JS LAB_0011ce70 XOR EAX,EAX CMP word ptr [RBP + 0x88],0x0 JZ LAB_0011ce30 LAB_0011ce24: ADD RSP,0x8 POP RBP POP R12 RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_0011ce30: MOV RSI,R12 MOV RDI,RBP CALL .plt:dpiStmt__init ;undefined dpiStmt__init() ADD RSP,0x8 SAR EAX,0x1f POP RBP POP R12 RET ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_0011ce50: ADD RSP,0x8 MOV RDI,R12 MOV EDX,0x40e XOR EAX,EAX POP RBP LEA RSI,[.rodata:s_check_closed_0013b679] ;= "check closed" POP R12 JMP .plt:dpiError__set ;undefined dpiError__set(undefined pa... ?? 0Fh ?? 1Fh ?? 00h LAB_0011ce70: MOV EAX,0xffffffff JMP LAB_0011ce24 ?? 66h f Actual src: static int dpiStmt__check(dpiStmt *stmt, const char *fnName, dpiError *error) { if (dpiGen__startPublicFn(stmt, DPI_HTYPE_STMT, fnName, error) < 0) return DPI_FAILURE; if (!stmt->handle || (stmt->parentStmt &&!stmt->parentStmt->handle)) return dpiError__set(error, "check closed", DPI_ERR_STMT_CLOSED); if (dpiConn__checkConnected(stmt->conn, error) < 0) return DPI_FAILURE; if (stmt->statementType == 0 && dpiStmt__init(stmt, error) < 0) return DPI_FAILURE; return DPI_SUCCESS; } Predicted src: int check__init(check_t *check, const char *name) { if (check__check__check(check) < 0) return -1; if (check__check__init(check) < 0) return -1; if (check__check__init(check) < 0) return -1; if (check__check__init(check) < 0) return -1; if (check__check__init(check) < 0) return -1; if (check__check__init(check) < 0) return -1; return 0; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined asn1_skip_tlv() ;local_30 undefined8 -30 ;local_34 undefined4 -34 PUSH R14 PUSH R13 PUSH R12 XOR R12D,R12D PUSH RBP MOV RBP,RSI PUSH RBX MOV RBX,RDI SUB RSP,0x10 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_30+0x38],RAX XOR EAX,EAX MOV RDX,RSP CALL asn1_decode_tag ;undefined asn1_decode_tag() CMP EAX,0x1 JZ LAB_0010bff8 LAB_0010bfd2: MOV RAX,qword ptr [RSP + local_30+0x38] SUB RAX,qword ptr FS:[0x28] JNZ LAB_0010c035 ADD RSP,0x10 MOV EAX,R12D POP RBX POP RBP POP R12 POP R13 POP R14 RET ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_0010bff8: LEA RDX=>local_34,[RSP + 0x4] MOV RSI,RBP MOV RDI,RBX CALL asn1_decode_length ;undefined asn1_decode_length() MOV R12D,EAX CMP EAX,0x1 JZ LAB_0010c018 LAB_0010c010: XOR R12D,R12D JMP LAB_0010bfd2 ?? 0Fh ?? 1Fh ?? 00h LAB_0010c018: MOV R13D,dword ptr [RSP + local_34+0x38] MOV R14D,dword ptr [RBX] MOV RDI,RBP ADD R14D,R13D CALL bytestring_get_size ;undefined bytestring_get_size() CMP R14D,EAX JA LAB_0010c010 ADD dword ptr [RBX],R13D JMP LAB_0010bfd2 LAB_0010c035: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP word ptr [RAX + RAX*0x1] Actual src: int asn1_skip_tlv(unsigned *pos, const bytestring_t *tlvlist) { unsigned tag; if (asn1_decode_tag(pos,tlvlist,&tag)!=BYTESTRING_OK) return BYTESTRING_ERROR; return asn1_skip_value(pos,tlvlist); } Predicted src: int asn1_decode_decode_tag(struct asn1_ctx *ctx, const char *tag) { int ret; const char *tag; ret = asn1_decode_tag(ctx, tag, &tag); if (ret < 0) return ret; ret = asn1_decode_tag(ctx, tag, tag); if (ret < 0) return ret; return 0; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* opencl_device::KernelLauncher::AccumulateFactorsAutoScaling(_cl_mem*, _cl_mem*, _cl_mem*, unsigned int, unsigned int, unsigned int) * ;************************************************************************************************************************************************************ ;undefined AccumulateFactorsAutoScaling(KernelLauncher * this, _cl_mem * param_1, _cl_mem * param_2, _cl_mem * param_3, uint param_4, uint param_5, uint param_6) ;this KernelLaunc... RDI ;param_1 _cl_mem * RSI ;param_2 _cl_mem * RDX ;param_3 _cl_mem * RCX ;param_4 uint R8D ;param_5 uint R9D ;param_6 uint 8 PUSH R12 MOV EAX,dword ptr [RSP + param_6+0x8] MOV R10,param_1 MOV R11,param_2 MOV R12,param_3 MOV param_2,qword ptr [this + 0x228] MOV param_3,dword ptr [this + 0x230] MOV param_1,qword ptr [this + 0x130] PUSH RAX XOR EAX,EAX PUSH param_5 PUSH param_4 PUSH R12 PUSH R11 PUSH R10 PUSH 0x6 PUSH 0x3 MOV param_4,qword ptr [this + 0x234] MOV param_5,dword ptr [this + 0x23c] MOV this,qword ptr [this] CALL .plt:opencl_device::GPUInterface::LaunchKernel ;undefined LaunchKernel(_cl_kernel *... ADD RSP,0x40 POP R12 RET ?? 90h Actual src: void KernelLauncher::AccumulateFactorsAutoScaling(GPUPtr dScalingFactors, GPUPtr dNodePtrQueue, GPUPtr dRootScalingFactors, unsigned int nodeCount, unsigned int patternCount, unsigned int scaleBufferSize) { #ifdef BEAGLE_DEBUG_FLOW fprintf(stderr, "\t\tEntering KernelLauncher::AccumulateFactorsAutoScaling\n"); #endif int parameterCountV = 3; int totalParameterCount = 6; gpu->LaunchKernel(fAccumulateFactorsAutoScaling, bgAccumulateBlock, bgAccumulateGrid, parameterCountV, totalParameterCount, dScalingFactors, dNodePtrQueue, dRootScalingFactors, nodeCount, patternCount, scaleBufferSize); #ifdef BEAGLE_DEBUG_FLOW fprintf(stderr, "\t\tLeaving KernelLauncher::AccumulateFactorsAutoScaling\n"); #endif } Predicted src: int32_t T4D4D4D4D4D4::mem_device_mem_mem_mem(uint32_t *mem_id, uint32_t *mem_id, uint32_t *mem_id, uint32_t *mem_id, uint32_t *mem_id, uint32_t *mem_id, uint32_t *mem_id, uint32_t *mem_id, uint32_t *mem_id, uint32_t *mem_id) { mem_mem_mem_mem_mem_mem(mem_id, mem_id, mem_id, mem_id, mem_id,mem_id,mem_id,mem_id,mem_id,mem_id,mem_id,mem_id,mem_id); return 0; }