============================== Sample 1 ============================== 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; iceph::Formatter::dump_bool] ;= 004e9af0 JNZ LAB_00902170 TEST CL,CL LEA RAX,[.rodata:s_false_00b9dbb7] ;= "false" LEA R8,[.rodata:DAT_00ba59e0] ;= 74h MOV ESI,0x8 CMOVZ R8,RAX LEA RCX,[.rodata:s_%s_00c380b4+25] ;= "%s" LEA RDX,[.rodata:s_IsPublic_00bfb2e5] ;= "IsPublic" XOR EAX,EAX CALL qword ptr [R9 + 0xb0] LAB_00902141: MOV RAX,qword ptr [RBX + 0x8] MOV this,qword ptr [RAX + 0x28] MOV RAX,qword ptr [this] CALL qword ptr [RAX + 0x60] MOV this,qword ptr [RBX + 0x8] POP RBX MOV RSI,qword ptr [this + 0x28] JMP rgw_flush_formatter_and_reset ;undefined rgw_flush_formatter_and_re... ?? 0Fh ?? 1Fh ?? 00h LAB_00902160: MOV this,qword ptr [this + 0x8] CALL set_req_state_err ;undefined set_req_state_err(req_stat... JMP LAB_0090209f ?? 66h f ?? 90h LAB_00902170: MOV ESI,0x8 LEA RDX,[.rodata:s_IsPublic_00bfb2e5] ;= "IsPublic" CALL RAX JMP LAB_00902141 ;************************************************************************************************************************************************************ ;*boost::date_time::date::TEMPNAMEPLACEHOLDERVALUE(boost::gr...* ;************************************************************************************************************************************************************ ;undefined operator-(date * this, date * param_1) ;this dateformatter->open_object_section_in_ns("PolicyStatus", XMLNS_AWS_S3); // https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETPolicyStatus.html // mentions TRUE and FALSE, but boto/aws official clients seem to want lower // case which is returned by AWS as well; so let's be bug to bug compatible // with the API s->formatter->dump_bool("IsPublic", isPublic); s->formatter->close_section(); rgw_flush_formatter_and_reset(s, s->formatter); } Predicted src: void on::on_on_on_on_on(void) { if (m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m) m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m->m_m_m_m_m_m_m_m_m_m_m_m_m_m_m->m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m->m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m->m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_m_mm_m_m_m_m_m_mm_m_m_m_mmm_m_mmm_mm_m_mm_mm_mmm_mm_mmmm_mmmm_mmm_mmmmmmm_mmmm_mmmmmmmmmm_mmmmmmmmmmmmmmm_mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gf_props_get_id() TEST RDI,RDI JZ LAB_004f5b40 PUSH R12 MOV R12,RDI PUSH RBP LEA RBP,[.data:GF_BuiltInProps[8]] PUSH RBX XOR EBX,EBX JMP LAB_004f5b0f ?? 66h f ?? 0Fh ;? -> 00841f0f ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_004f5b00: ADD EBX,0x1 ADD RBP,0x20 CMP EBX,0xba JZ LAB_004f5b43 LAB_004f5b0f: ; FWD[3,0]: 0073b88e,0088f4c8,0088f4e8 MOV RDI=>.rodata:s_ID_0073b887+7,qword ptr [RBP]=>.data:GF_BuiltInProps[8] ;= "ID" TEST RDI,RDI JZ LAB_004f5b00 MOV RSI,R12 CALL .plt:::strcmp ;int strcmp(char * __s1, char * __s2) TEST EAX,EAX JNZ LAB_004f5b00 SHL RBX,0x5 LEA RAX,[.data:GF_BuiltInProps] MOV EAX,dword ptr [RAX + RBX*0x1]=>.data:GF_BuiltInProps POP RBX POP RBP POP R12 RET ?? 66h f ?? 0Fh ;? -> 00841f0f ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_004f5b40: XOR EAX,EAX RET LAB_004f5b43: POP RBX XOR EAX,EAX POP RBP POP R12 RET ?? 66h f Actual src: GF_EXPORT u32 gf_props_get_id(const char *name) { u32 i, nb_props; if (!name) return 0; nb_props = sizeof(GF_BuiltInProps) / sizeof(GF_BuiltInProperty); for (i=0; i.rodata:s_org.a11y.atspi.Action_0012dac5,qword ptr [R13 + RBX*0x8]=>.data.rel.ro:interfaces[8] ;= "org.a11y.atspi.Action" TEST RSI,RSI JZ LAB_0011d490 LAB_0011d46e: MOV RDI,RBP MOV R12D,EBX CALL .plt:::strcmp ;int strcmp(char * __s1, char * __s2) TEST EAX,EAX JNZ LAB_0011d460 ADD RSP,0x8 MOV EAX,R12D POP RBX POP RBP POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_0011d490: ADD RSP,0x8 MOV R12D,0xffffffff POP RBX MOV EAX,R12D POP RBP POP R12 POP R13 RET ?? 66h f Actual src: gint _atspi_get_iface_num (const char *iface) { /* TODO: Use a binary search or hash to improve performance */ int i; for (i = 0; interfaces[i]; i++) { if (!strcmp(iface, interfaces[i])) return i; } return -1; } Predicted src: static const char * _get_text_get(const char *text, const char *text) { if (text == NULL) return NULL; if (text == NULL) return NULL; else return NULL; }