============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gst_audio_ring_buffer_set_callback_full() ;local_40 undefined8 -40 PUSH R15 PUSH R14 PUSH R13 MOV R13,RSI PUSH R12 MOV R12,RDX PUSH RBP MOV RBP,RCX PUSH RBX MOV RBX,RDI SUB RSP,0x18 CALL gst_audio_ring_buffer_get_type ;undefined gst_audio_ring_buffer_get_... TEST RBX,RBX JZ LAB_00150f20 MOV RSI,RAX MOV RAX,qword ptr [RBX] TEST RAX,RAX JZ LAB_00150ea8 CMP qword ptr [RAX],RSI JZ LAB_00150eb4 LAB_00150ea8: MOV RDI,RBX CALL .plt:::g_type_check_instance_is_a ;undefined g_type_check_instance_is_a() TEST EAX,EAX JZ LAB_00150f20 LAB_00150eb4: LEA R14,[RBX + 0x18] MOV RDI,R14 CALL .plt:::g_mutex_lock ;undefined g_mutex_lock() MOV R8,qword ptr [RBX + 0x240] MOV R15,qword ptr [RBX + 0x358] MOV RDI,R14 MOV qword ptr [RBX + 0x238],R13 MOV qword ptr [RBX + 0x240],R12 MOV qword ptr [RBX + 0x358],RBP MOV qword ptr [RSP + local_40+0x48],R8 CALL .plt:::g_mutex_unlock ;undefined g_mutex_unlock() TEST R15,R15 MOV R8,qword ptr [RSP + local_40+0x48] JZ LAB_00150f10 ADD RSP,0x18 MOV RAX,R15 MOV RDI,R8 POP RBX POP RBP POP R12 POP R13 POP R14 POP R15 JMP RAX LAB_00150f10: ADD RSP,0x18 POP RBX POP RBP POP R12 POP R13 POP R14 POP R15 RET ?? 90h LAB_00150f20: ADD RSP,0x18 LEA RDX,[.rodata:s_GST_IS_AUDIO_RING_BUFFER_(buf)_00169588] ;= "GST_IS_AUDIO_RING_BUFFER (buf)" LEA RSI,[.rodata:__func__.26] ;= "gst_audio_ring_buffer_set_callbac... POP RBX LEA RDI,[.rodata:s_GStreamer-Audio_0015d74c] ;= "GStreamer-Audio" POP RBP POP R12 POP R13 POP R14 POP R15 JMP .plt:::g_return_if_fail_warning ;undefined g_return_if_fail_warning() ?? 0Fh Actual src: void gst_audio_ring_buffer_set_callback_full (GstAudioRingBuffer * buf, GstAudioRingBufferCallback cb, gpointer user_data, GDestroyNotify notify) { gpointer old_data = NULL; GDestroyNotify old_notify; g_return_if_fail (GST_IS_AUDIO_RING_BUFFER (buf)); GST_OBJECT_LOCK (buf); old_notify = buf->cb_data_notify; old_data = buf->cb_data; buf->callback = cb; buf->cb_data = user_data; buf->cb_data_notify = notify; GST_OBJECT_UNLOCK (buf); if (old_notify) { old_notify (old_data); } } Predicted src: void gst_audio_audio_audio_set_audio_audio_audio_audio_buffer (GstAudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudioaudi ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined check_build() PUSH R12 MOV R12,RSI PUSH RBP MOV RBP,RDI MOV RDI,RSI PUSH RBX CALL .plt:::strlen ;size_t strlen(char * __s) MOV RDI,RBP MOV RBX,RAX CALL .plt:::lax_json_eof ;undefined lax_json_eof() TEST EAX,EAX JNZ LAB_0010136e CMP dword ptr [.bss:out_buf_index],EBX JNZ LAB_001013c6 MOVSXD RDX,EBX LEA RBX,[.bss:out_buf] MOV RDI,R12 MOV RSI=>.bss:out_buf,RBX CALL .plt:::memcmp ;int memcmp(void * __s1, void * __s2,... TEST EAX,EAX JNZ LAB_0010139c POP RBX MOV RDI,RBP POP RBP POP R12 JMP .plt:LAB_00101070 LAB_0010136e: MOV EDI,EAX CALL .plt:::lax_json_str_err ;undefined lax_json_str_err() MOV RDI,qword ptr [.bss:stderr] MOV ESI,0x1 LEA RDX,[.rodata:s_%s_00103020+22] ;= "%s\n" MOV RCX,RAX XOR EAX,EAX CALL .plt:::__fprintf_chk ;undefined __fprintf_chk() MOV EDI,0x1 CALL .plt:::exit ;void exit(int __status) LAB_0010139c: MOV R8=>.bss:out_buf,RBX MOV RCX,R12 LEA RDX,[.rodata:s_EXPECTED:_---------_%s_RECEIVED:_00103288] ;= "EXPECTED:\n---------\n%s\nRECEIVE... LAB_001013a9: MOV RDI,qword ptr [.bss:stderr] MOV ESI,0x1 XOR EAX,EAX CALL .plt:::__fprintf_chk ;undefined __fprintf_chk() MOV EDI,0x1 CALL .plt:::exit ;void exit(int __status) LAB_001013c6: LEA R8,[.bss:out_buf] MOV RCX,R12 LEA RDX,[.rodata:s__EXPECTED:_---------_%s_RECEIVED_00103258] ;= "\nEXPECTED:\n---------\n%s\nRECEI... JMP LAB_001013a9 ?? 0Fh Actual src: static void check_build(struct LaxJsonContext *context, const char *output) { int expected_len = strlen(output); enum LaxJsonError err = lax_json_eof(context); if (err!= LaxJsonErrorNone) { fprintf(stderr, "%s\n", lax_json_str_err(err)); exit(1); } if (out_buf_index!= expected_len) { fprintf(stderr, "\n" "EXPECTED:\n" "---------\n" "%s\n" "RECEIVED:\n" "---------\n" "%s\n", output, out_buf); exit(1); } if (memcmp(output, out_buf, expected_len)!= 0) { fprintf(stderr, "EXPECTED:\n" "---------\n" "%s\n" "RECEIVED:\n" "---------\n" "%s\n", output, out_buf); exit(1); } lax_json_destroy(context); } Predicted src: static void str_out(char *str, size_t len, const char *str) { size_t len; len = strlen(str); if (len < len) { fprintf(stderr, "%s: %s\n", str, str); exit(1); } if (len > len) { fprintf(stderr, "%s: %s\n", str, len); exit(1); } } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined aom_sad_skip_32x64_c() ADD ESI,ESI ADD ECX,ECX MOV R8,RDI MOV R9D,0x20 MOVSXD R11,ESI MOV RDI,RDX MOVSXD R10,ECX XOR ESI,ESI NOP dword ptr [RAX + RAX*0x1] LAB_001479d0: XOR EDX,EDX NOP word ptr [RAX + RAX*0x1] LAB_001479d8: MOVZX ECX,byte ptr [RDI + RDX*0x1] MOVZX EAX,byte ptr [R8 + RDX*0x1] SUB EAX,ECX MOV ECX,EAX NEG ECX CMOVNS EAX,ECX ADD RDX,0x1 ADD ESI,EAX CMP RDX,0x20 JNZ LAB_001479d8 ADD R8,R11 ADD RDI,R10 SUB R9D,0x1 JNZ LAB_001479d0 LEA EAX,[RSI + RSI*0x1] RET ?? 66h f Actual src: sadMxN(32, 64); Predicted src: intra_pred_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highbd_highb ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined polypolygon_print() AND EDI,0xffff JZ LAB_001444e4 PUSH R15 LEA R15,[.rodata:s__Polygon[%d]:_0016b860] ;= " Polygon[%d]: " PUSH R14 MOV R14D,EDI PUSH R13 XOR R13D,R13D PUSH R12 MOV R12,RSI PUSH RBP MOV RBP,RDX PUSH RBX SUB RSP,0x8 NOP dword ptr [RAX] LAB_00144490: XOR EAX,EAX MOV EDX,R13D MOV RSI=>.rodata:s__Polygon[%d]:_0016b860,R15 ;= " Polygon[%d]: " MOV EDI,0x1 CALL .plt:::__printf_chk ;undefined __printf_chk() CMP word ptr [R12],0x0 JZ LAB_001444c8 XOR EBX,EBX NOP dword ptr [RAX] LAB_001444b0: MOV EDI,dword ptr [RBP] ADD EBX,0x1 ADD RBP,0x4 CALL .plt:point16_print ;undefined point16_print() MOVZX EAX,word ptr [R12] CMP EAX,EBX JG LAB_001444b0 LAB_001444c8: ADD R13D,0x1 ADD R12,0x2 CMP R13D,R14D JNZ LAB_00144490 ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 POP R14 POP R15 RET LAB_001444e4: RET ?? 66h f Actual src: void polypolygon_print( uint16_t nPolys, const uint16_t *aPolyCounts, const char *Points ){ int i,j; U_POINT16 pt; for(i=0; i.rodata:CSWTCH.122 LAB_0010ee9d: XOR ECX,ECX XOR param_3,param_3 JMP .plt:LAB_0010b670 ?? 66h f Actual src: XAP_Dialog_MessageBox::tAnswer s_CouldNotLoadFileMessage(XAP_Frame * pFrame, const char * pNewFile, UT_Error errorCode) { XAP_String_Id String_id; switch (errorCode) { case -301: String_id = AP_STRING_ID_MSG_IE_FileNotFound; break; case -302: String_id = AP_STRING_ID_MSG_IE_NoMemory; break; case -303: String_id = AP_STRING_ID_MSG_IE_UnsupportedType; //AP_STRING_ID_MSG_IE_UnknownType; break; case -304: String_id = AP_STRING_ID_MSG_IE_BogusDocument; break; case -305: String_id = AP_STRING_ID_MSG_IE_CouldNotOpen; break; case -306: String_id = AP_STRING_ID_MSG_IE_CouldNotWrite; break; case -307: String_id = AP_STRING_ID_MSG_IE_FakeType; break; case -311: String_id = AP_STRING_ID_MSG_IE_UnsupportedType; break; default: String_id = AP_STRING_ID_MSG_ImportError; } return pFrame->showMessageBox(String_id, XAP_Dialog_MessageBox::b_O, XAP_Dialog_MessageBox::a_OK, pNewFile); } Predicted src: void X11_FrameFrameFrame(const char *s, const char *s, int len) { const char *s; s = X11_FrameFrameFrame(s, s, len); if (s == NULL) return; s[len] = '\0'; s[len] = '\0'; }