============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined sidebar_init_entry() ;local_20 undefined8 -20 ;local_28 undefined8 -28 PUSH R12 PUSH RBP SUB RSP,0x18 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_20+0x28],RAX XOR EAX,EAX MOV EAX,dword ptr [.bss:sidebar__unit_init_count] MOV qword ptr [RSP]=>local_28,0x0 LEA EDX,[RAX + 0x1] MOV dword ptr [.bss:sidebar__unit_init_count],EDX TEST EAX,EAX JZ LAB_003dc170 LAB_003dc152: MOV RAX,qword ptr [RSP + local_20+0x28] SUB RAX,qword ptr FS:[0x28] JNZ LAB_003dc1ab ADD RSP,0x18 POP RBP POP R12 RET ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_003dc170: MOV R12,RSP MOV RBP,RDI MOV RDI,R12 CALL unit_init_entry ;undefined unit_init_entry() MOV RSI,qword ptr [RSP]=>local_28 TEST RSI,RSI JZ LAB_003dc198 LAB_003dc187: MOV RDI,RBP CALL .plt:::g_propagate_error ;undefined g_propagate_error() JMP LAB_003dc152 ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_003dc198: MOV RDI,R12 CALL sidebar_init ;undefined sidebar_init() MOV RSI,qword ptr [RSP]=>local_28 TEST RSI,RSI JNZ LAB_003dc187 JMP LAB_003dc152 LAB_003dc1ab: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined sidebar_terminate_entry() MOV EAX,dword ptr [.bss:sidebar__unit_init_count] Actual src: void sidebar_init_entry (GError** error) { gint _tmp0_; GError* _inner_error0_ = NULL; _tmp0_ = sidebar__unit_init_count; sidebar__unit_init_count = _tmp0_ + 1; if (_tmp0_!= 0) { return; } unit_init_entry (&_inner_error0_); if (G_UNLIKELY (_inner_error0_!= NULL)) { g_propagate_error (error, _inner_error0_); return; } sidebar_init (&_inner_error0_); if (G_UNLIKELY (_inner_error0_!= NULL)) { g_propagate_error (error, _inner_error0_); return; } } Predicted src: static void init_entry (gpointer key, gpointer value, gpointer user_data) { (void) key; (void) value; (void) value; (void) value; (void) value; (void) value; (void) value; (void) value; (void) value; (void) value; (void) value; (void) value; (void) value; (void) value; (void) value; } ============================== Sample 2 ============================== 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_time::on_start_time(void) { assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_time!= nullptr); assert(m_!= nullptr); assert(m_time!= nullptr); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined xdp_camera_proxy_get_is_camera_present() PUSH R12 XOR R12D,R12D PUSH RBP MOV RBP,RDI SUB RSP,0x8 CALL xdp_camera_proxy_get_type ;undefined xdp_camera_proxy_get_type() MOV RDI,RBP MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() MOV RBP,RAX CALL .plt:::g_dbus_proxy_get_type ;undefined g_dbus_proxy_get_type() MOV RDI,RBP MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() LEA RSI,[.rodata:s_IsCameraPresent_001a19d0] ;= "IsCameraPresent" MOV RDI,RAX CALL .plt:::g_dbus_proxy_get_cached_property ;undefined g_dbus_proxy_get_cached_pr... TEST RAX,RAX JZ LAB_0014af3a MOV RBP,RAX MOV RDI,RAX CALL .plt:::g_variant_get_boolean ;undefined g_variant_get_boolean() MOV RDI,RBP MOV R12D,EAX CALL .plt.got:::g_variant_unref ;undefined g_variant_unref() LAB_0014af3a: ADD RSP,0x8 MOV EAX,R12D POP RBP POP R12 RET ?? 66h f Actual src: static gboolean xdp_camera_proxy_get_is_camera_present (XdpCamera *object) { XdpCameraProxy *proxy = XDP_CAMERA_PROXY (object); GVariant *variant; gboolean value = 0; variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "IsCameraPresent"); if (variant!= NULL) { value = g_variant_get_boolean (variant); g_variant_unref (variant); } return value; } Predicted src: static gboolean udisks_player_proxy_get_is_property (UDisksDrive *object) { UDisksDriveProxy *proxy = UDISKS_PLAYER_PROXY (object); GVariant *variant; gboolean value = 0; variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "is-property"); if (variant!= NULL) { value = g_variant_get_boolean (variant); g_variant_unref (variant); } return value; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined lxsession_lxde_session_server_CanShutdown() PUSH R14 MOV R14,RDX PUSH R13 MOV R13,RSI PUSH R12 MOV R12,RDI MOV EDI,0x40 PUSH RBP SUB RSP,0x8 CALL .plt:::g_slice_alloc ;undefined g_slice_alloc() PXOR XMM0,XMM0 XOR ESI,ESI MOV RDX,R13 MOV RDI,R12 MOVUPS xmmword ptr [RAX],XMM0 MOV RCX,R14 MOV RBP,RAX MOVUPS xmmword ptr [RAX + 0x10],XMM0 MOVUPS xmmword ptr [RAX + 0x20],XMM0 MOVUPS xmmword ptr [RAX + 0x30],XMM0 CALL .plt:::g_task_new ;undefined g_task_new() LEA RDX,[lxsession_lxde_session_server_CanShutdown_data_free] MOV RSI,RBP MOV RDI,RAX MOV qword ptr [RBP + 0x18],RAX CALL .plt:::g_task_set_task_data ;undefined g_task_set_task_data() TEST R12,R12 JZ LAB_0011ca0a MOV RDI,R12 CALL .plt:::g_object_ref ;undefined g_object_ref() MOV R12,RAX LAB_0011ca0a: MOV qword ptr [RBP + 0x20],R12 ADD RSP,0x8 MOV RDI,RBP POP RBP POP R12 POP R13 POP R14 JMP lxsession_lxde_session_server_CanShutdown_co.isra.0 ;undefined lxsession_lxde_session_ser... ?? 66h f Actual src: void lxsession_lxde_session_server_CanShutdown (LxsessionLxdeSessionServer* self, GAsyncReadyCallback _callback_, gpointer _user_data_) { lxsession_lxde_session_server_CanShutdownData* _data_; LxsessionLxdeSessionServer* _tmp0_; g_return_if_fail (self!= NULL); _data_ = g_slice_new0 (lxsession_lxde_session_server_CanShutdownData); _data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_); g_task_set_task_data (_data_->_async_result, _data_, lxsession_lxde_session_server_CanShutdown_data_free); _tmp0_ = _g_object_ref0 (self); _data_->self = _tmp0_; lxsession_lxde_session_server_CanShutdown_co (_data_); } Predicted src: static void ufo_server_session_set_server_session_data_new (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) { GearyImapServerSessionData* _data_; _data_ = g_slice_new0 (GearyImapServerSessionData); _data_->_async_result = g_task_new (G_OBJECT (source_object), NULL, _res_, _user_data_); g_task_set_task_data (_data_->_async_result, _data_, _data_, _user_data_); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined acb_poly_validate_real_roots() MOV RCX,RDX MOV RDX,qword ptr [RSI + 0x8] MOV RSI,qword ptr [RSI] JMP .plt:LAB_0013a6d0 ?? 90h Actual src: int acb_poly_validate_real_roots(acb_srcptr roots, const acb_poly_t poly, slong prec) { return _acb_poly_validate_real_roots(roots, poly->coeffs, poly->length, prec); } Predicted src: void fmpz_poly_poly_poly_poly_real_poly(fmpz_poly_t res, const fmpz_poly_poly_t res, const fmpz_poly_t ctx) { _fmpz_poly_poly_poly_poly_poly_real(res, res, res->coeffs, res->length, res->length, ctx->length, ctx->length); }