============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined sqlite3_stmt_readonly() MOV EAX,0x1 TEST RDI,RDI JZ LAB_0083be17 MOVZX EAX,byte ptr [RDI + 0xc6] SHR AL,0x7 MOVZX EAX,AL LAB_0083be17: RET ?? 0Fh ;? -> 00841f0f Actual src: int sqlite3_stmt_readonly(sqlite3_stmt *pStmt){ return pStmt? ((Vdbe*)pStmt)->readOnly : 1; } Predicted src: static int SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined go_conf_set_bool() PUSH R12 MOV R12D,EDX PUSH RBP SUB RSP,0x8 CALL .plt:go_conf_get_node ;undefined go_conf_get_node() TEST RAX,RAX JZ LAB_00164620 MOV RDI,qword ptr [RAX + 0x18] MOV RSI,qword ptr [RAX + 0x10] MOV EDX,R12D MOV RBP,RAX CALL .plt:::g_settings_set_boolean ;undefined g_settings_set_boolean() ADD RSP,0x8 MOV RDI,RBP POP RBP POP R12 JMP .plt.got:go_conf_free_node ;undefined go_conf_free_node() ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00164620: ADD RSP,0x8 POP RBP POP R12 RET ?? 0Fh Actual src: void go_conf_set_bool (GOConfNode *node, gchar const *key, gboolean val) { GOConfNode *real_node = go_conf_get_node (node, key); if (!real_node) { d (g_warning ("Unable to set key '%s'", key)); return; } g_settings_set_boolean (real_node->settings, real_node->key, val); go_conf_free_node (real_node); } Predicted src: static void set_node_node_set_node (GObject *object, gpointer user_data) { const gchar *node = user_data; g_return_if_fail (node!= NULL); g_return_if_fail (node!= NULL); if (node->node!= NULL) g_free (node->node); else g_free (node->node); } ============================== Sample 3 ============================== ASM: MOV word ptr [RBP + local_3f0+0x8],AX LEA param_3=>local_3f0,[RBP + -0x3e8] LEA RAX=>local_3ee,[RBP + -0x3e6] MOV param_2,param_3 MOV param_1,RAX CALL poly_int<1u,unsigned_short>::poly_int ;undefined poly_int(p... MOVZX EAX,word ptr [RBP + local_3ee+0x8] MOV word ptr [RBP + local_3f2+0x8],AX LEA param_3=>local_3f8,[RBP + -0x3f0] LEA RAX=>local_3f2,[RBP + -0x3ea] MOV param_2,param_3 MOV param_1,RAX CALL operator* ;poly_int operator*(poly_int_pod * pa... MOV qword ptr [RBP + local_400+0x8],RAX LEA param_3=>local_400,[RBP + -0x3f8] LEA RAX=>local_402,[RBP + -0x3fa] MOV param_2,param_3 Actual src: scope_kind innermost_scope_kind (void) { return current_binding_level->kind; } Predicted src: void REGPARAM2 CPUFUNC(op_24)(uae_u32 opcode) { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca; srca = m68k_areg (regs, srcreg); { uae_s32 dst = m68k_areg (regs, dstreg); { uae_s32 dst = m68k_areg (regs, dstreg); m68k_areg (regs, dstreg) = (src); m68k_areg (regs, dstreg) = (m68k_areg (regs, dstreg) & ~0xff) | ((src) & 0xff); }}}} m68k_incpci (2); return; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* CFileItemList::Size() const * ;************************************************************************************************************************************************************ ;undefined Size(CFileItemList * this) ;this CFileItemLi... RDI PUSH R12 PUSH RBP LEA RBP,[this + 0x3d8] PUSH RBX MOV RBX,this MOV this,RBP CALL .plt:::pthread_mutex_lock ;int pthread_mutex_lock(pthread_mutex... MOV R12,qword ptr [RBX + 0x338] MOV this,RBP SUB R12,qword ptr [RBX + 0x330] CALL .plt:::pthread_mutex_unlock ;int pthread_mutex_unlock(pthread_mut... SAR R12,0x4 POP RBX POP RBP MOV EAX,R12D POP R12 RET ?? 0Fh ;? -> 00841f0f Actual src: int CFileItemList::Size() const { CSingleLock lock(m_lock); return (int)m_items.size(); } Predicted src: int main() const { return m_mutex_mutex_mutex; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* RGWGetBucketPolicyStatus_ObjStore_S3::send_response() * ;************************************************************************************************************************************************************ ;undefined send_response(RGWGetBucketPolicyStatus_ObjStore_S3 * this) ;this RGWGetBucke... RDI PUSH RBX MOV ESI,dword ptr [this + 0x70] MOV RBX,this TEST ESI,ESI JNZ LAB_00902160 LAB_0090209f: MOV this,qword ptr [RBX + 0x8] CALL dump_errno ;undefined dump_errno(req_state * par... MOV this,qword ptr [RBX + 0x8] XOR R9D,R9D XOR R8D,R8D MOV RCX,-0x1 LEA RDX,[.rodata:s_application/xml_00be3a9c] ;= "application/xml" MOV RSI,RBX CALL end_header ;undefined end_header(req_state * par... MOV this,qword ptr [RBX + 0x8] CALL dump_start ;undefined dump_start(req_state * par... MOV RAX,qword ptr [RBX + 0x8] LEA RCX,[.rodata:s_http://s3.amazonaws.com/doc/2006_00bba808] ;= "http://s3.amazonaws.com/doc/2006-... MOV ESI,0xc LEA RDX,[.rodata:s_PolicyStatus_00c1d571+12] ;= "PolicyStatus" MOV this,qword ptr [RAX + 0x28] MOV RAX,qword ptr [this] CALL qword ptr [RAX + 0x58] MOV RAX,qword ptr [RBX + 0x8] MOVZX ECX,byte ptr [RBX + 0x74] MOV this,qword ptr [RAX + 0x28] MOV R9,qword ptr [this] MOV RAX,qword ptr [R9 + 0x88] CMP RAX,qword ptr [->ceph::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_state::on_on_state(const char *filename) { g_return_if_fail(filename!= NULL); g_return_if_fail(filename!= NULL); g_return_if_fail(filename!= NULL); g_return_if_fail(filename!= NULL); g_return_if_fail(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); g_assert(filename!= NULL); }