GNU bug report logs - #74966
31.0.50; Crash report (using igc on macOS)

Previous Next

Package: emacs;

Reported by: Sean Devlin <spd <at> toadstyle.org>

Date: Thu, 19 Dec 2024 09:19:02 UTC

Severity: normal

Found in version 31.0.50

Done: Pip Cet <pipcet <at> protonmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 74966 in the body.
You can then email your comments to 74966 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 09:19:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Sean Devlin <spd <at> toadstyle.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Thu, 19 Dec 2024 09:19:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Sean Devlin <spd <at> toadstyle.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 31.0.50; Crash report (using igc on macOS)
Date: Thu, 19 Dec 2024 18:17:51 +0900
[Message part 1 (text/plain, inline)]
Hi folks,

I was using Emacs and encountered a crash.

I am running on macOS, and I built Emacs from scratch/igc using the
instructions on that branch.

I didn’t have Emacs running under a debugger, but I do have some crash
information captured by macOS. (See attached.)

At the time, I was trying to use apropos-documentation. I invoked the
command once, entered a string, and hit RET, and it signaled an error. I
tried to do this again and Emacs crashed.

I hope this is useful. Please let me know if there’s any other
information I can collect.

Thanks!

[crash.txt (text/plain, attachment)]
[Message part 3 (text/plain, inline)]

In GNU Emacs 31.0.50 (build 1, aarch64-apple-darwin24.2.0, NS
appkit-2575.30 Version 15.2 (Build 24C101)) of 2024-12-17 built on
beatrix.local
Repository revision: 51f028396c1d933f89b3f4a554ece7594d0f7c48
Repository branch: scratch/igc
Windowing system distributor 'Apple', version 10.3.2575
System Description:  macOS 15.2

Configured using:
'configure --with-ns --with-modules --with-native-compilation
--with-libgmp --with-tree-sitter --with-sqlite3 --with-mps=yes
--without-imagemagick --without-dbus CPPFLAGS=-I/opt/homebrew/include
LDFLAGS=-L/opt/homebrew/lib
PKG_CONFIG_PATH=/opt/homebrew/lib/pkgconfig'

Configured features:
ACL GMP GNUTLS LIBXML2 MODULES MPS NATIVE_COMP NOTIFY KQUEUE NS PDUMPER
SQLITE3 THREADS TOOLKIT_SCROLL_BARS TREE_SITTER ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  flymake-mode: t
  recentf-mode: t
  electric-pair-mode: t
  global-anzu-mode: t
  anzu-mode: t
  marginalia-mode: t
  vertico-mode: t
  savehist-mode: t
  kill-ring-deindent-mode: t
  pixel-scroll-precision-mode: t
  mood-line-mode: t
  puni-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/Users/spd/.emacs.d/elpa/magit-4.1.1/magit-autorevert hides /Users/spd/.emacs.d/elpa/magit-section-4.1.1/magit-autorevert
/Users/spd/.emacs.d/elpa/ef-themes-1.8.0/theme-loaddefs hides /Applications/Emacs.app/Contents/Resources/lisp/theme-loaddefs
/Users/spd/.emacs.d/elpa/transient-0.7.7/transient hides /Applications/Emacs.app/Contents/Resources/lisp/transient

Features:
(shadow sort visual-fill-column mail-extr emacsbug message mailcap
yank-media puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg
rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils orderless comp-run comp-common
rx mood-line-segment-checker time-date checkdoc lisp-mnt help-mode
flymake project compile text-property-search comint ansi-osc ansi-color
warnings ffap url-parse auth-source cl-seq eieio eieio-core cl-macs
password-cache url-vars recentf tree-widget elec-pair anzu advice
thingatpt marginalia vertico compat savehist indent-aux pixel-scroll
cua-base ring mood-line ef-winter-theme ef-themes exec-path-from-shell
json subr-x map byte-opt gv bytecomp byte-compile info anzu-autoloads
cape-autoloads company-autoloads denote-autoloads eat-autoloads
ef-themes-autoloads embark-consult-autoloads consult-autoloads
embark-autoloads exec-path-from-shell-autoloads
git-auto-commit-mode-autoloads htmlize-autoloads magit-autoloads
magit-section-autoloads dash-autoloads marginalia-autoloads
mood-line-autoloads orderless-autoloads puni-autoloads
rainbow-delimiters-autoloads symbol-overlay-autoloads
transient-autoloads vertico-autoloads visual-fill-column-autoloads
vundo-autoloads wgrep-autoloads with-editor-autoloads
ws-butler-autoloads spd-autoloads cus-edit pp cus-load icons wid-edit
cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads kqueue cocoa ns multi-tty
make-network-process native-compile mps emacs)

Memory information:
((conses 24 0 0) (symbols 56 0 0) (strings 40 0 0) (string-bytes 1 0) (vectors 24 0)
(vector-slots 8 0 0) (floats 24 0 0) (intervals 64 0 0) (buffers 1000 0))

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 09:24:02 GMT) Full text and rfc822 format available.

Message #8 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Sean Devlin <spd <at> toadstyle.org>
To: 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: Acknowledgement (31.0.50; Crash report (using igc on
 macOS))
Date: Thu, 19 Dec 2024 18:21:51 +0900
Also, it looks like I can reproduce this under Emacs -Q.

Please let me know if and how I should debug the crash.

Thanks!




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 10:27:02 GMT) Full text and rfc822 format available.

Message #11 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Sean Devlin <spd <at> toadstyle.org>
Cc: 74966 <at> debbugs.gnu.org, Pip Cet <pipcet <at> protonmail.com>
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Thu, 19 Dec 2024 11:25:12 +0100
Sean Devlin <spd <at> toadstyle.org> writes:

> Hi folks,
>
> I was using Emacs and encountered a crash.
>
> I am running on macOS, and I built Emacs from scratch/igc using the
> instructions on that branch.
>
> I didn’t have Emacs running under a debugger, but I do have some crash
> information captured by macOS. (See attached.)
>
> At the time, I was trying to use apropos-documentation. I invoked the
> command once, entered a string, and hit RET, and it signaled an error. I
> tried to do this again and Emacs crashed.
>
> I hope this is useful. Please let me know if there’s any other
> information I can collect.
>
> Thanks!
>
.c:1811)
> 11  Emacs                         	       0x100d222a4 handle_sigsegv + 64 (sysdep.c:1949)
> 12  libsystem_platform.dylib      	       0x19435ee04 _sigtramp + 56
> 13  apropos-7c1ecbdf-5d074552.eln 	       0x103407010 F6170726f706f732d736166652d646f63756d656e746174696f6e_apropos_safe_documentation_0 + 208
> 14  Emacs                         	       0x100dd0a4c exec_byte_code + 2648 (bytecode.c:828)
> 15  Emacs                         	       0x100d82488 Ffuncall + 456 (eval.c:3099)
> 16  apropos-7c1ecbdf-5d074552.eln 	       0x103405968 F6170726f706f732d2d6d61702d7072656c6f616465642d61746f6d73_apropos__map_preloaded_atoms_0 + 696

Looks to me like apropos-safe-documentation, native compiled, has a
problem here and gets an EXC_BAD_ACCESS. But that's all I can see. It's
not even clear to me if this is GC-related or not.

Can you reproduce this? If yes, can you give me a recipe?

Pip, should I perhaps merge with current master? I think there have been
fixes to the native compiler on master, not sure though.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 10:30:02 GMT) Full text and rfc822 format available.

Message #14 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Sean Devlin <spd <at> toadstyle.org>
Cc: 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: Acknowledgement (31.0.50; Crash report (using igc on
 macOS))
Date: Thu, 19 Dec 2024 11:28:21 +0100
Sean Devlin <spd <at> toadstyle.org> writes:

> Also, it looks like I can reproduce this under Emacs -Q.
>
> Please let me know if and how I should debug the crash.
>
> Thanks!

Can you please give me a recipe? (I don't have an idea how to debug
this, one would need to know what in the function goes wrong, possibly
by setting a breakpoint on it, and doing some assembler. Urgs :-))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 11:08:01 GMT) Full text and rfc822 format available.

Message #17 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Sean Devlin <spd <at> toadstyle.org>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: Acknowledgement (31.0.50; Crash report (using igc on
 macOS))
Date: Thu, 19 Dec 2024 20:05:46 +0900
[Message part 1 (text/plain, inline)]
Hi Gerd,

> On Dec 19, 2024, at 7:28 PM, Gerd Möllmann <gerd.moellmann <at> gmail.com> wrote:
> 
> Sean Devlin <spd <at> toadstyle.org> writes:
> 
>> Also, it looks like I can reproduce this under Emacs -Q.
>> 
>> Please let me know if and how I should debug the crash.
>> 
>> Thanks!
> 
> Can you please give me a recipe? (I don't have an idea how to debug
> this, one would need to know what in the function goes wrong, possibly
> by setting a breakpoint on it, and doing some assembler. Urgs :-))

Sure, I can reproduce this just by doing:

open -n -a Emacs --args -Q
C-h d searchstring RET

And Emacs crashes right away.

Hope this helps!
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 11:32:02 GMT) Full text and rfc822 format available.

Message #20 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Sean Devlin <spd <at> toadstyle.org>
Cc: 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: Acknowledgement (31.0.50; Crash report (using igc on
 macOS))
Date: Thu, 19 Dec 2024 12:30:29 +0100
Sean Devlin <spd <at> toadstyle.org> writes:

> Hi Gerd,
>
>  On Dec 19, 2024, at 7:28 PM, Gerd Möllmann <gerd.moellmann <at> gmail.com> wrote:
>
>  Sean Devlin <spd <at> toadstyle.org> writes:
>
>  Also, it looks like I can reproduce this under Emacs -Q.
>
>  Please let me know if and how I should debug the crash.
>
>  Thanks!
>
>  Can you please give me a recipe? (I don't have an idea how to debug
>  this, one would need to know what in the function goes wrong, possibly
>  by setting a breakpoint on it, and doing some assembler. Urgs :-))
>
> Sure, I can reproduce this just by doing:
>
> 1 open -n -a Emacs --args -Q
> 2 C-h d searchstring RET
>
> And Emacs crashes right away.
>
> Hope this helps!

Hm, when I'm doing this, literally entering "saerchstring", it just says
it has nothing. That's with my fork though, which is basically some
recent master + igc + other stuff.

I'll check with the GNU igc branch a bit later.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 11:49:03 GMT) Full text and rfc822 format available.

Message #23 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Pip Cet <pipcet <at> protonmail.com>
To: Sean Devlin <spd <at> toadstyle.org>
Cc: 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Thu, 19 Dec 2024 11:48:36 +0000
"Sean Devlin" <spd <at> toadstyle.org> writes:

> Hi folks,

Hello!

> I was using Emacs and encountered a crash.

Thanks for reporting it!

> I am running on macOS, and I built Emacs from scratch/igc using the
> instructions on that branch.
>
> I didn’t have Emacs running under a debugger, but I do have some crash
> information captured by macOS. (See attached.)

I'm not entirely sure this is the actual segfault (the
EXC_BAD_ACCESS/SIGABRT combination is a little odd):

Exception Type:        EXC_BAD_ACCESS (SIGABRT)
Exception Codes:       KERN_INVALID_ADDRESS at 0x595453206f742068 -> 0x000053206f742068 (possible pointer authentication failure)
Exception Codes:       0x0000000000000001, 0x595453206f742068

That's an ASCII string that we treated as a pointer, it seems?

13  apropos-7c1ecbdf-5d074552.eln 	       0x103407010
F6170726f706f732d736166652d646f63756d656e746174696f6e_apropos_safe_documentation_0
+ 208

Is there any way for you to disassemble this function?  At first glance,
there's nothing unusual about it (it does use the symbol function, which
always confuses me when (function x) was intended but #'x was what I
got).

I'm not quite sure where the apropos-7c1ecbdf-5d074552.eln file lives on
macOS, but I think, if you can find, you can run

llvm-objdump -d apropos-7c1ecbdf-5d074552.eln

(which will produce a lot of output; we're interested in the section
belonging to the
F6170726f706f732d736166652d646f63756d656e746174696f6e_apropos_safe_documentation_0
section).

As this is reproducible, it's probably not a stack marking problem.

> At the time, I was trying to use apropos-documentation. I invoked the
> command once, entered a string, and hit RET, and it signaled an error. I
> tried to do this again and Emacs crashed.
>
> I hope this is useful. Please let me know if there’s any other
> information I can collect.

Definitely useful!

Thanks!

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 11:57:03 GMT) Full text and rfc822 format available.

Message #26 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Sean Devlin <spd <at> toadstyle.org>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Thu, 19 Dec 2024 20:54:41 +0900
Hi Pip,

> On Dec 19, 2024, at 8:48 PM, Pip Cet <pipcet <at> protonmail.com> wrote:
> 
> "Sean Devlin" <spd <at> toadstyle.org> writes:
> 
>> Hi folks,
> 
> Hello!
> 
>> I was using Emacs and encountered a crash.
> 
> Thanks for reporting it!
> 
>> I am running on macOS, and I built Emacs from scratch/igc using the
>> instructions on that branch.
>> 
>> I didn’t have Emacs running under a debugger, but I do have some crash
>> information captured by macOS. (See attached.)
> 
> I'm not entirely sure this is the actual segfault (the
> EXC_BAD_ACCESS/SIGABRT combination is a little odd):
> 
> Exception Type:        EXC_BAD_ACCESS (SIGABRT)
> Exception Codes:       KERN_INVALID_ADDRESS at 0x595453206f742068 -> 0x000053206f742068 (possible pointer authentication failure)
> Exception Codes:       0x0000000000000001, 0x595453206f742068
> 
> That's an ASCII string that we treated as a pointer, it seems?
> 
> 13  apropos-7c1ecbdf-5d074552.eln 	       0x103407010
> F6170726f706f732d736166652d646f63756d656e746174696f6e_apropos_safe_documentation_0
> + 208
> 
> Is there any way for you to disassemble this function?  At first glance,
> there's nothing unusual about it (it does use the symbol function, which
> always confuses me when (function x) was intended but #'x was what I
> got).
> 
> I'm not quite sure where the apropos-7c1ecbdf-5d074552.eln file lives on
> macOS, but I think, if you can find, you can run
> 
> llvm-objdump -d apropos-7c1ecbdf-5d074552.eln
> 
> (which will produce a lot of output; we're interested in the section
> belonging to the
> F6170726f706f732d736166652d646f63756d656e746174696f6e_apropos_safe_documentation_0
> section).
> 
> As this is reproducible, it's probably not a stack marking problem.

Here’s the function disassembly (using otool):

_F6170726f706f732d736166652d646f63756d656e746174696f6e_apropos_safe_documentation_0:
0000000000006f40	stp	x29, x30, [sp, #-0x40]!
0000000000006f44	mov	x29, sp
0000000000006f48	mov	x1, #0x0
0000000000006f4c	stp	x21, x22, [sp, #0x20]
0000000000006f50	adrp	x22, 20 ; 0x1a000
0000000000006f54	add	x22, x22, #0x198
0000000000006f58	stp	x19, x20, [sp, #0x10]
0000000000006f5c	ldr	x20, [x22]
0000000000006f60	ldr	x2, [x20, #0x2940]
0000000000006f64	blr	x2
0000000000006f68	cbz	x0, 0x6fe8
0000000000006f6c	adrp	x21, 18 ; 0x18000
0000000000006f70	add	x21, x21, #0xd78
0000000000006f74	mov	x2, x0
0000000000006f78	add	x1, x29, #0x30
0000000000006f7c	mov	x0, #0x2
0000000000006f80	ldr	x3, [x21, #0x868]
0000000000006f84	stp	x3, x2, [x29, #0x30]
0000000000006f88	ldr	x2, [x20, #0x1c68]
0000000000006f8c	blr	x2
0000000000006f90	sub	w1, w0, #0x2
0000000000006f94	mov	x19, x0
0000000000006f98	tst	x1, #0x3
0000000000006f9c	b.ne	0x6fc8
0000000000006fa0	ldr	x0, [x21, #0x10]
0000000000006fa4	mov	x1, #0x0
0000000000006fa8	ldr	x2, [x20, #0x2aa8]
0000000000006fac	blr	x2
0000000000006fb0	cbz	x0, 0x6fe8
0000000000006fb4	ldp	x21, x22, [sp, #0x20]
0000000000006fb8	mov	x0, x19
0000000000006fbc	ldp	x19, x20, [sp, #0x10]
0000000000006fc0	ldp	x29, x30, [sp], #0x40
0000000000006fc4	ret
0000000000006fc8	sub	w1, w0, #0x5
0000000000006fcc	tst	x1, #0x7
0000000000006fd0	b.eq	0x7000
0000000000006fd4	mov	x0, #0x0
0000000000006fd8	ldr	x2, [x20, #0x2aa8]
0000000000006fdc	mov	x1, #0x0
0000000000006fe0	blr	x2
0000000000006fe4	cbnz	x0, 0x6fb4
0000000000006fe8	mov	x19, #0x0
0000000000006fec	ldp	x21, x22, [sp, #0x20]
0000000000006ff0	mov	x0, x19
0000000000006ff4	ldp	x19, x20, [sp, #0x10]
0000000000006ff8	ldp	x29, x30, [sp], #0x40
0000000000006ffc	ret
0000000000007000	ldr	x2, [x22]
0000000000007004	mov	w1, #0x2
0000000000007008	ldr	x2, [x2, #0x8]
000000000000700c	blr	x2
0000000000007010	tbnz	w0, #0x0, 0x6fa0
0000000000007014	mov	x0, #0x0
0000000000007018	b	0x6fd8
000000000000701c	nop

> 
>> At the time, I was trying to use apropos-documentation. I invoked the
>> command once, entered a string, and hit RET, and it signaled an error. I
>> tried to do this again and Emacs crashed.
>> 
>> I hope this is useful. Please let me know if there’s any other
>> information I can collect.
> 
> Definitely useful!
> 
> Thanks!
> 
> Pip
> 





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 11:59:01 GMT) Full text and rfc822 format available.

Message #29 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Sean Devlin <spd <at> toadstyle.org>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: 74966 <at> debbugs.gnu.org, Pip Cet <pipcet <at> protonmail.com>
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Thu, 19 Dec 2024 20:57:12 +0900
[Message part 1 (text/plain, inline)]
Hi folks,

> On Dec 19, 2024, at 7:25 PM, Gerd Möllmann <gerd.moellmann <at> gmail.com> wrote:
> 
> Sean Devlin <spd <at> toadstyle.org <mailto:spd <at> toadstyle.org>> writes:
> 
>> Hi folks,
>> 
>> I was using Emacs and encountered a crash.
>> 
>> I am running on macOS, and I built Emacs from scratch/igc using the
>> instructions on that branch.
>> 
>> I didn’t have Emacs running under a debugger, but I do have some crash
>> information captured by macOS. (See attached.)
>> 
>> At the time, I was trying to use apropos-documentation. I invoked the
>> command once, entered a string, and hit RET, and it signaled an error. I
>> tried to do this again and Emacs crashed.
>> 
>> I hope this is useful. Please let me know if there’s any other
>> information I can collect.
>> 
>> Thanks!
>> 
> .c:1811)
>> 11  Emacs                         	       0x100d222a4 handle_sigsegv + 64 (sysdep.c:1949)
>> 12  libsystem_platform.dylib      	       0x19435ee04 _sigtramp + 56
>> 13  apropos-7c1ecbdf-5d074552.eln 	       0x103407010 F6170726f706f732d736166652d646f63756d656e746174696f6e_apropos_safe_documentation_0 + 208
>> 14  Emacs                         	       0x100dd0a4c exec_byte_code + 2648 (bytecode.c:828)
>> 15  Emacs                         	       0x100d82488 Ffuncall + 456 (eval.c:3099)
>> 16  apropos-7c1ecbdf-5d074552.eln 	       0x103405968 F6170726f706f732d2d6d61702d7072656c6f616465642d61746f6d73_apropos__map_preloaded_atoms_0 + 696
> 
> Looks to me like apropos-safe-documentation, native compiled, has a
> problem here and gets an EXC_BAD_ACCESS. But that's all I can see. It's
> not even clear to me if this is GC-related or not.

Just as a data point, I tried recompiling Emacs from scratch with that same commit hash with both --with-mps=yes and --with-mps=no. I can reproduce the crash only with the --with-mps=yes setting, i.e. only when igc is enabled.

> 
> Can you reproduce this? If yes, can you give me a recipe?
> 
> Pip, should I perhaps merge with current master? I think there have been
> fixes to the native compiler on master, not sure though.

[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 14:03:02 GMT) Full text and rfc822 format available.

Message #32 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Pip Cet via "Bug reports for GNU Emacs, the Swiss army knife of text
 editors" <bug-gnu-emacs <at> gnu.org>
Cc: Sean Devlin <spd <at> toadstyle.org>, Pip Cet <pipcet <at> protonmail.com>,
 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Thu, 19 Dec 2024 15:02:28 +0100
Pip Cet via "Bug reports for GNU Emacs, the Swiss army knife of text
editors" <bug-gnu-emacs <at> gnu.org> writes:

> "Sean Devlin" <spd <at> toadstyle.org> writes:
>
>> Hi folks,
>
> Hello!
>
>> I was using Emacs and encountered a crash.
>
> Thanks for reporting it!
>
>> I am running on macOS, and I built Emacs from scratch/igc using the
>> instructions on that branch.
>>
>> I didn’t have Emacs running under a debugger, but I do have some crash
>> information captured by macOS. (See attached.)
>
> I'm not entirely sure this is the actual segfault (the
> EXC_BAD_ACCESS/SIGABRT combination is a little odd):
>
> Exception Type:        EXC_BAD_ACCESS (SIGABRT)
> Exception Codes: KERN_INVALID_ADDRESS at 0x595453206f742068 ->
> 0x000053206f742068 (possible pointer authentication failure)
> Exception Codes:       0x0000000000000001, 0x595453206f742068
>
> That's an ASCII string that we treated as a pointer, it seems?
>
> 13  apropos-7c1ecbdf-5d074552.eln 	       0x103407010
> F6170726f706f732d736166652d646f63756d656e746174696f6e_apropos_safe_documentation_0
> + 208
>
> Is there any way for you to disassemble this function?  At first glance,
> there's nothing unusual about it (it does use the symbol function, which
> always confuses me when (function x) was intended but #'x was what I
> got).
>
> I'm not quite sure where the apropos-7c1ecbdf-5d074552.eln file lives on
> macOS, but I think, if you can find, you can run
>
> llvm-objdump -d apropos-7c1ecbdf-5d074552.eln
>
> (which will produce a lot of output; we're interested in the section
> belonging to the
> F6170726f706f732d736166652d646f63756d656e746174696f6e_apropos_safe_documentation_0
> section).
>
> As this is reproducible, it's probably not a stack marking problem.
>
>> At the time, I was trying to use apropos-documentation. I invoked the
>> command once, entered a string, and hit RET, and it signaled an error. I
>> tried to do this again and Emacs crashed.
>>
>> I hope this is useful. Please let me know if there’s any other
>> information I can collect.
>
> Definitely useful!
>
> Thanks!
>
> Pip

Building scratch/igc with --enable-checking=all, I get an assertion

  * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 6.3
      frame #0: 0x00000001004bbd58 bootstrap-emacs`die(msg="0 <= idx && idx < gc_asize (array)", file="./lisp.h", line=2069) at alloc.c:8375:12

  frame #1: 0x000000010031bef8 bootstrap-emacs`AREF(array=0x00000001170a5c45, idx=46543) at lisp.h:2069:3
  (lldb) p idx
  (ptrdiff_t) 46543
  (lldb) p array
  Traceback (most recent call last):
    File "/Users/gerd/emacs/savannah/igc/src/../etc/emacs_lldb.py", line 269, in type_summary_Lisp_Object
      return Lisp_Object(obj).summary()
             ~~~~~~~~~~~^^^^^
    File "/Users/gerd/emacs/savannah/igc/src/../etc/emacs_lldb.py", line 92, in __init__
      self.init_lisp_types()
      ~~~~~~~~~~~~~~~~~~~~^^
    File "/Users/gerd/emacs/savannah/igc/src/../etc/emacs_lldb.py", line 113, in init_lisp_types
      vector = self.get_lisp_pointer("struct Lisp_Vector", False)
  TypeError: Lisp_Object.get_lisp_pointer() takes 2 positional arguments but 3 were given
  (Lisp_Object) 0x00000001170a5c45
  (lldb) p gc_asize (array)
  (ptrdiff_t) 48
  (lldb) up
  Traceback (most recent call last):
    File "/Users/gerd/emacs/savannah/igc/src/../etc/emacs_lldb.py", line 269, in type_summary_Lisp_Object
      return Lisp_Object(obj).summary()
             ~~~~~~~~~~~^^^^^
    File "/Users/gerd/emacs/savannah/igc/src/../etc/emacs_lldb.py", line 92, in __init__
      self.init_lisp_types()
      ~~~~~~~~~~~~~~~~~~~~^^
    File "/Users/gerd/emacs/savannah/igc/src/../etc/emacs_lldb.py", line 113, in init_lisp_types
      vector = self.get_lisp_pointer("struct Lisp_Vector", False)
  TypeError: Lisp_Object.get_lisp_pointer() takes 2 positional arguments but 3 were given
  frame #2: 0x000000010031c360 bootstrap-emacs`native_function_doc(function=0x0000000108f4e2ad) at comp.c:5580:10

As one can see, my emacs_lldb.py is broken again by something, and so I'm
half blind. It looks though as if the AREF is here

  Lisp_Object
  native_function_doc (Lisp_Object function)
  {
    struct Lisp_Native_Comp_Unit *cu =
      XNATIVE_COMP_UNIT (Fsubr_native_comp_unit (function));

    if (NILP (cu->data_fdoc_v))
      cu->data_fdoc_v = load_static_obj (cu, TEXT_FDOC_SYM);
    if (!VECTORP (cu->data_fdoc_v))
      xsignal2 (Qnative_lisp_file_inconsistent, cu->file,
                build_string ("missing documentation vector"));
    return AREF (cu->data_fdoc_v, XSUBR (function)->doc);
  }

The out-of-bounds index should come from the function. Can't get at it,
AGM, with the broken LLDB.

HTH a bit.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 14:04:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 14:09:02 GMT) Full text and rfc822 format available.

Message #38 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Pip Cet <pipcet <at> protonmail.com>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: Sean Devlin <spd <at> toadstyle.org>, "Pip Cet via \"Bug reports for GNU Emacs,
 the Swiss army knife of text editors\"" <bug-gnu-emacs <at> gnu.org>,
 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Thu, 19 Dec 2024 14:07:59 +0000
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:

> Pip Cet via "Bug reports for GNU Emacs, the Swiss army knife of text
> editors" <bug-gnu-emacs <at> gnu.org> writes:
>
>> "Sean Devlin" <spd <at> toadstyle.org> writes:
>>
>>> Hi folks,
>>
>> Hello!
>>
>>> I was using Emacs and encountered a crash.
>>
>> Thanks for reporting it!
>>
>>> I am running on macOS, and I built Emacs from scratch/igc using the
>>> instructions on that branch.
>>>
>>> I didn’t have Emacs running under a debugger, but I do have some crash
>>> information captured by macOS. (See attached.)
>>
>> I'm not entirely sure this is the actual segfault (the
>> EXC_BAD_ACCESS/SIGABRT combination is a little odd):
>>
>> Exception Type:        EXC_BAD_ACCESS (SIGABRT)
>> Exception Codes: KERN_INVALID_ADDRESS at 0x595453206f742068 ->
>> 0x000053206f742068 (possible pointer authentication failure)
>> Exception Codes:       0x0000000000000001, 0x595453206f742068
>>
>> That's an ASCII string that we treated as a pointer, it seems?
>>
>> 13  apropos-7c1ecbdf-5d074552.eln 	       0x103407010
>> F6170726f706f732d736166652d646f63756d656e746174696f6e_apropos_safe_documentation_0
>> + 208
>>
>> Is there any way for you to disassemble this function?  At first glance,
>> there's nothing unusual about it (it does use the symbol function, which
>> always confuses me when (function x) was intended but #'x was what I
>> got).
>>
>> I'm not quite sure where the apropos-7c1ecbdf-5d074552.eln file lives on
>> macOS, but I think, if you can find, you can run
>>
>> llvm-objdump -d apropos-7c1ecbdf-5d074552.eln
>>
>> (which will produce a lot of output; we're interested in the section
>> belonging to the
>> F6170726f706f732d736166652d646f63756d656e746174696f6e_apropos_safe_documentation_0
>> section).
>>
>> As this is reproducible, it's probably not a stack marking problem.
>>
>>> At the time, I was trying to use apropos-documentation. I invoked the
>>> command once, entered a string, and hit RET, and it signaled an error. I
>>> tried to do this again and Emacs crashed.
>>>
>>> I hope this is useful. Please let me know if there’s any other
>>> information I can collect.
>>
>> Definitely useful!
>>
>> Thanks!
>>
>> Pip
>
> Building scratch/igc with --enable-checking=all, I get an assertion
>
>   * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 6.3
>       frame #0: 0x00000001004bbd58 bootstrap-emacs`die(msg="0 <= idx && idx < gc_asize (array)", file="./lisp.h", line=2069) at alloc.c:8375:12
>
>   frame #1: 0x000000010031bef8 bootstrap-emacs`AREF(array=0x00000001170a5c45, idx=46543) at lisp.h:2069:3
>   (lldb) p idx
>   (ptrdiff_t) 46543
>   (lldb) p array
>   Traceback (most recent call last):
>     File "/Users/gerd/emacs/savannah/igc/src/../etc/emacs_lldb.py", line 269, in type_summary_Lisp_Object
>       return Lisp_Object(obj).summary()
>              ~~~~~~~~~~~^^^^^
>     File "/Users/gerd/emacs/savannah/igc/src/../etc/emacs_lldb.py", line 92, in __init__
>       self.init_lisp_types()
>       ~~~~~~~~~~~~~~~~~~~~^^
>     File "/Users/gerd/emacs/savannah/igc/src/../etc/emacs_lldb.py", line 113, in init_lisp_types
>       vector = self.get_lisp_pointer("struct Lisp_Vector", False)
>   TypeError: Lisp_Object.get_lisp_pointer() takes 2 positional arguments but 3 were given
>   (Lisp_Object) 0x00000001170a5c45
>   (lldb) p gc_asize (array)
>   (ptrdiff_t) 48
>   (lldb) up
>   Traceback (most recent call last):
>     File "/Users/gerd/emacs/savannah/igc/src/../etc/emacs_lldb.py", line 269, in type_summary_Lisp_Object
>       return Lisp_Object(obj).summary()
>              ~~~~~~~~~~~^^^^^
>     File "/Users/gerd/emacs/savannah/igc/src/../etc/emacs_lldb.py", line 92, in __init__
>       self.init_lisp_types()
>       ~~~~~~~~~~~~~~~~~~~~^^
>     File "/Users/gerd/emacs/savannah/igc/src/../etc/emacs_lldb.py", line 113, in init_lisp_types
>       vector = self.get_lisp_pointer("struct Lisp_Vector", False)
>   TypeError: Lisp_Object.get_lisp_pointer() takes 2 positional arguments but 3 were given
>   frame #2: 0x000000010031c360 bootstrap-emacs`native_function_doc(function=0x0000000108f4e2ad) at comp.c:5580:10
>
> As one can see, my emacs_lldb.py is broken again by something, and so I'm
> half blind. It looks though as if the AREF is here
>
>   Lisp_Object
>   native_function_doc (Lisp_Object function)
>   {
>     struct Lisp_Native_Comp_Unit *cu =
>       XNATIVE_COMP_UNIT (Fsubr_native_comp_unit (function));
>
>     if (NILP (cu->data_fdoc_v))
>       cu->data_fdoc_v = load_static_obj (cu, TEXT_FDOC_SYM);
>     if (!VECTORP (cu->data_fdoc_v))
>       xsignal2 (Qnative_lisp_file_inconsistent, cu->file,
>                 build_string ("missing documentation vector"));
>     return AREF (cu->data_fdoc_v, XSUBR (function)->doc);
>   }

That makes sense. I was just looking at the same code and wondering
whether docidx might have been wrong, now I'm wondering why it is wrong
:-)

> The out-of-bounds index should come from the function. Can't get at it,
> AGM, with the broken LLDB.

XSUBR (function)->doc should have been set by comp--register-subr (most
likely), so maybe disassemble the toplevel_run function of the right
.eln file...

> HTH a bit.

It does, thanks!

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 14:09:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 14:45:02 GMT) Full text and rfc822 format available.

Message #44 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: Sean Devlin <spd <at> toadstyle.org>, "Pip Cet via \"Bug reports for GNU Emacs,
 the Swiss army knife of text
 editors\"" <bug-gnu-emacs <at> gnu.org>, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Thu, 19 Dec 2024 15:44:02 +0100
Pip Cet <pipcet <at> protonmail.com> writes:

> XSUBR (function)->doc should have been set by comp--register-subr (most
> likely), so maybe disassemble the toplevel_run function of the right
> .eln file...
>
>> HTH a bit.
>
> It does, thanks!

Got a bit more (don't ask how :-)):

p function
(Lisp_Object) 0x0000000108f4e2ad (struct Lisp_Subr *) $84 = 0x0000000108f4e2a8
(lldb) p *$84
(struct Lisp_Subr) {
  header = {
    gc_header = (v = 51808893985, gcaligned = '!')
    size = 4611686018746195968
  }
  function = {
    a0 = 0x0000000102be4620 (ns-win-ef8075c0-78c0e9c8.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    a1 = 0x0000000102be4620 (ns-win-ef8075c0-78c0e9c8.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    a2 = 0x0000000102be4620 (ns-win-ef8075c0-78c0e9c8.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    a3 = 0x0000000102be4620 (ns-win-ef8075c0-78c0e9c8.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    a4 = 0x0000000102be4620 (ns-win-ef8075c0-78c0e9c8.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    a5 = 0x0000000102be4620 (ns-win-ef8075c0-78c0e9c8.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    a6 = 0x0000000102be4620 (ns-win-ef8075c0-78c0e9c8.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    a7 = 0x0000000102be4620 (ns-win-ef8075c0-78c0e9c8.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    a8 = 0x0000000102be4620 (ns-win-ef8075c0-78c0e9c8.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    aUNEVALLED = 0x0000000102be4620 (ns-win-ef8075c0-78c0e9c8.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    aMANY = 0x0000000102be4620 (ns-win-ef8075c0-78c0e9c8.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
  }
  min_args = 2
  max_args = 5
  symbol_name = 0x0000600001626640 "x-file-dialog"
  intspec = {
    string = 0x0000000000000000
    native = NULL
  }
  command_modes = NULL
  doc = 46543
  native_comp_u = 0x000000010844e4c5 (struct Lisp_Native_Comp_Unit *) $93 = 0x000000010844e4c0
  native_c_name = 0x0000000109788a4e "F782d66696c652d6469616c6f67_x_file_dialog_0"
  lambda_list = NULL
  type = 0x000000010841c59b (struct Lisp_Cons *) $95 = 0x000000010841c598
}

So the index is indeed wrong in the Lisp_Subr. And that it is
x-file-dialog explains why I didn't see it in my fork - I've given
up on NS, and I'm building --without-ns.

(lldb) p *$93
(struct Lisp_Native_Comp_Unit) {
  header = {
    gc_header = (v = 94757839649, gcaligned = '!')
    size = 4611686018897203207
  }
  file = 0x000000010a07d36c (struct Lisp_String *) $97 = 0x000000010a07d368
  optimize_qualities = 0x0000000109139abb (struct Lisp_Cons *) $98 = 0x0000000109139ab8
  lambda_gc_guard_h = 0x000000010a07d315 (struct Lisp_Hash_Table *) $101 = 0x000000010a07d310
  lambda_c_name_idx_h = 0x0000000109139195 (struct Lisp_Hash_Table *) $103 = 0x0000000109139190
  data_fdoc_v = 0x00000001170a5c45 (struct Lisp_Vector *) $104 = 0x00000001170a5c40
  data_vec = 0x0000000109137ff5 (struct Lisp_Vector *) $105 = 0x0000000109137ff0
  data_impure_vec = 0x000000010844e5a5 (struct Lisp_Vector *) $106 = 0x000000010844e5a0
  data_imp_relocs = 0x0000000102bf2820 (struct Lisp_Symbol *) $108 = 0x0000000203836858
  n_data_imp_relocs = 34
  data_relocs = 0x0000000102bf1b78 (struct Lisp_Symbol *) $110 = 0x0000000203835bb0
  n_data_relocs = 282
  data_eph_relocs = NULL
  n_data_eph_relocs = 0
  comp_unit = 0x0000000102bf1b68 (struct Lisp_Symbol *) $112 = 0x0000000203835ba0
  data_relocs_root = 0x0000600000121500
  data_imp_relocs_root = 0x0000600000121540
  data_eph_relocs_root = NULL
  comp_unit_root = 0x00006000001214c0
  loaded_once = false
  load_ongoing = false
  handle = 0x000000006aaecbc0
}

And the disassembly of ns-win.eln is


./31.0.50-46e509f6/preloaded/ns-win-ef8075c0-de7bcdf2.eln:	file format mach-o arm64

Disassembly of section __TEXT,__text:

00000000000024e0 <_maybe_gc_quit>:
    24e0: f0000061     	adrp	x1, 0x11000 <_text_data_reloc_blob+0x118d>
    24e4: b94ce020     	ldr	w0, [x1, #0xce0]
    24e8: 11000400     	add	w0, w0, #0x1
    24ec: 6b4027ff     	cmp	wzr, w0, lsr #9
    24f0: 54000061     	b.ne	0x24fc <_maybe_gc_quit+0x1c>
    24f4: b90ce020     	str	w0, [x1, #0xce0]
    24f8: d65f03c0     	ret
    24fc: a9be7bfd     	stp	x29, x30, [sp, #-0x20]!
    2500: 910003fd     	mov	x29, sp
    2504: f9000bf3     	str	x19, [sp, #0x10]
    2508: 90000093     	adrp	x19, 0x12000 <_d_reloc+0x308>
    250c: 912da273     	add	x19, x19, #0xb68
    2510: b90ce03f     	str	wzr, [x1, #0xce0]
    2514: f9400260     	ldr	x0, [x19]
    2518: f9403400     	ldr	x0, [x0, #0x68]
    251c: d63f0000     	blr	x0
    2520: f9400260     	ldr	x0, [x19]
    2524: f9400bf3     	ldr	x19, [sp, #0x10]
    2528: a8c27bfd     	ldp	x29, x30, [sp], #0x20
    252c: f9403800     	ldr	x0, [x0, #0x70]
    2530: aa0003f0     	mov	x16, x0
    2534: d61f0200     	br	x16
    2538: d503201f     	nop
    253c: d503201f     	nop

0000000000002540 <_SYMBOL_WITH_POS_SYM>:
    2540: a9be7bfd     	stp	x29, x30, [sp, #-0x20]!
    2544: 910003fd     	mov	x29, sp
    2548: 51001401     	sub	w1, w0, #0x5
    254c: a90153f3     	stp	x19, x20, [sp, #0x10]
    2550: aa0003f3     	mov	x19, x0
    2554: f240083f     	tst	x1, #0x7
    2558: 54000240     	b.eq	0x25a0 <_SYMBOL_WITH_POS_SYM+0x60>
    255c: f0000060     	adrp	x0, 0x11000 <_text_data_reloc_blob+0x118d>
    2560: 9133e000     	add	x0, x0, #0xcf8
    2564: 90000094     	adrp	x20, 0x12000 <_d_reloc+0x308>
    2568: 912da294     	add	x20, x20, #0xb68
    256c: f944bc00     	ldr	x0, [x0, #0x978]
    2570: aa1303e1     	mov	x1, x19
    2574: f9400282     	ldr	x2, [x20]
    2578: f9400042     	ldr	x2, [x2]
    257c: d63f0040     	blr	x2
    2580: f9400281     	ldr	x1, [x20]
    2584: aa1303e0     	mov	x0, x19
    2588: f9401c21     	ldr	x1, [x1, #0x38]
    258c: d63f0020     	blr	x1
    2590: f9400800     	ldr	x0, [x0, #0x10]
    2594: a94153f3     	ldp	x19, x20, [sp, #0x10]
    2598: a8c27bfd     	ldp	x29, x30, [sp], #0x20
    259c: d65f03c0     	ret
    25a0: 90000094     	adrp	x20, 0x12000 <_d_reloc+0x308>
    25a4: 912da294     	add	x20, x20, #0xb68
    25a8: 528000c1     	mov	w1, #0x6                ; =6
    25ac: f9400282     	ldr	x2, [x20]
    25b0: f9400442     	ldr	x2, [x2, #0x8]
    25b4: d63f0040     	blr	x2
    25b8: 3707fe40     	tbnz	w0, #0x0, 0x2580 <_SYMBOL_WITH_POS_SYM+0x40>
    25bc: f0000060     	adrp	x0, 0x11000 <_text_data_reloc_blob+0x118d>
    25c0: 9133e000     	add	x0, x0, #0xcf8
    25c4: f944bc00     	ldr	x0, [x0, #0x978]
    25c8: 17ffffea     	b	0x2570 <_SYMBOL_WITH_POS_SYM+0x30>

00000000000025cc <_F6e732d68616e646c652d6e786f70656e_ns_handle_nxopen_0>:
    25cc: a9ba7bfd     	stp	x29, x30, [sp, #-0x60]!
    25d0: 910003fd     	mov	x29, sp
    25d4: a90153f3     	stp	x19, x20, [sp, #0x10]
    25d8: f0000074     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    25dc: 9133e294     	add	x20, x20, #0xcf8
    25e0: a9025bf5     	stp	x21, x22, [sp, #0x20]
    25e4: aa0103f5     	mov	x21, x1
    25e8: f9400680     	ldr	x0, [x20, #0x8]
    25ec: f9001bf7     	str	x23, [sp, #0x30]
    25f0: 90000097     	adrp	x23, 0x12000 <_d_reloc+0x308>
    25f4: 912da2f7     	add	x23, x23, #0xb68
    25f8: f94002f3     	ldr	x19, [x23]
    25fc: f953ce61     	ldr	x1, [x19, #0x2798]
    2600: d63f0020     	blr	x1
    2604: aa0003e2     	mov	x2, x0
    2608: b40006f5     	cbz	x21, 0x26e4 <_F6e732d68616e646c652d6e786f70656e_ns_handle_nxopen_0+0x118>
    260c: f9401a83     	ldr	x3, [x20, #0x30]
    2610: 910103a1     	add	x1, x29, #0x40
    2614: d2800040     	mov	x0, #0x2                ; =2
    2618: a9040fa2     	stp	x2, x3, [x29, #0x40]
    261c: f9524262     	ldr	x2, [x19, #0x2480]
    2620: d63f0040     	blr	x2
    2624: f9402a64     	ldr	x4, [x19, #0x50]
    2628: aa0003e1     	mov	x1, x0
    262c: 52800003     	mov	w3, #0x0                ; =0
    2630: d2800002     	mov	x2, #0x0                ; =0
    2634: f9400680     	ldr	x0, [x20, #0x8]
    2638: d63f0080     	blr	x4
    263c: f9401280     	ldr	x0, [x20, #0x20]
    2640: f953ce61     	ldr	x1, [x19, #0x2798]
    2644: d63f0020     	blr	x1
    2648: f953ce61     	ldr	x1, [x19, #0x2798]
    264c: aa0003f6     	mov	x22, x0
    2650: f9401680     	ldr	x0, [x20, #0x28]
    2654: d63f0020     	blr	x1
    2658: aa0003f5     	mov	x21, x0
    265c: 51000c00     	sub	w0, w0, #0x3
    2660: f240081f     	tst	x0, #0x7
    2664: 54000441     	b.ne	0x26ec <_F6e732d68616e646c652d6e786f70656e_ns_handle_nxopen_0+0x120>
    2668: f840d2a1     	ldur	x1, [x21, #0xd]
    266c: 52800003     	mov	w3, #0x0                ; =0
    2670: d2800002     	mov	x2, #0x0                ; =0
    2674: f9401680     	ldr	x0, [x20, #0x28]
    2678: f9402a64     	ldr	x4, [x19, #0x50]
    267c: d63f0080     	blr	x4
    2680: f9542261     	ldr	x1, [x19, #0x2840]
    2684: aa1503e0     	mov	x0, x21
    2688: d63f0020     	blr	x1
    268c: f94fe262     	ldr	x2, [x19, #0x1fc0]
    2690: d2800001     	mov	x1, #0x0                ; =0
    2694: d63f0040     	blr	x2
    2698: aa0003e3     	mov	x3, x0
    269c: f9524262     	ldr	x2, [x19, #0x2480]
    26a0: 910143a1     	add	x1, x29, #0x50
    26a4: d2800040     	mov	x0, #0x2                ; =2
    26a8: a9050fb6     	stp	x22, x3, [x29, #0x50]
    26ac: d63f0040     	blr	x2
    26b0: aa0003e1     	mov	x1, x0
    26b4: f9401280     	ldr	x0, [x20, #0x20]
    26b8: 52800003     	mov	w3, #0x0                ; =0
    26bc: d2800002     	mov	x2, #0x0                ; =0
    26c0: aa0103f4     	mov	x20, x1
    26c4: f9402a64     	ldr	x4, [x19, #0x50]
    26c8: d63f0080     	blr	x4
    26cc: f9401bf7     	ldr	x23, [sp, #0x30]
    26d0: aa1403e0     	mov	x0, x20
    26d4: a94153f3     	ldp	x19, x20, [sp, #0x10]
    26d8: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    26dc: a8c67bfd     	ldp	x29, x30, [sp], #0x60
    26e0: d65f03c0     	ret
    26e4: f9400e83     	ldr	x3, [x20, #0x18]
    26e8: 17ffffca     	b	0x2610 <_F6e732d68616e646c652d6e786f70656e_ns_handle_nxopen_0+0x44>
    26ec: b40000d5     	cbz	x21, 0x2704 <_F6e732d68616e646c652d6e786f70656e_ns_handle_nxopen_0+0x138>
    26f0: f94002e2     	ldr	x2, [x23]
    26f4: aa1503e1     	mov	x1, x21
    26f8: f944ba80     	ldr	x0, [x20, #0x970]
    26fc: f9400042     	ldr	x2, [x2]
    2700: d63f0040     	blr	x2
    2704: d2800001     	mov	x1, #0x0                ; =0
    2708: 17ffffd9     	b	0x266c <_F6e732d68616e646c652d6e786f70656e_ns_handle_nxopen_0+0xa0>

000000000000270c <_F6e732d68616e646c652d6e786f70656e74656d70_ns_handle_nxopentemp_0>:
    270c: 90000083     	adrp	x3, 0x12000 <_d_reloc+0x308>
    2710: 912da063     	add	x3, x3, #0xb68
    2714: aa0003e4     	mov	x4, x0
    2718: d2800060     	mov	x0, #0x3                ; =3
    271c: a9bd7bfd     	stp	x29, x30, [sp, #-0x30]!
    2720: 910003fd     	mov	x29, sp
    2724: 910043a1     	add	x1, x29, #0x10
    2728: f0000062     	adrp	x2, 0x11000 <_text_data_reloc_blob+0x118d>
    272c: 9133e042     	add	x2, x2, #0xcf8
    2730: f9000fa4     	str	x4, [x29, #0x18]
    2734: f9400065     	ldr	x5, [x3]
    2738: a9438c44     	ldp	x4, x3, [x2, #0x38]
    273c: f94d38a2     	ldr	x2, [x5, #0x1a70]
    2740: f9000ba4     	str	x4, [x29, #0x10]
    2744: f90013a3     	str	x3, [x29, #0x20]
    2748: d63f0040     	blr	x2
    274c: a8c37bfd     	ldp	x29, x30, [sp], #0x30
    2750: d65f03c0     	ret
    2754: d503201f     	nop
    2758: d503201f     	nop
    275c: d503201f     	nop

0000000000002760 <_F6e732d69676e6f72652d312d617267_ns_ignore_1_arg_0>:
    2760: a9bd7bfd     	stp	x29, x30, [sp, #-0x30]!
    2764: 910003fd     	mov	x29, sp
    2768: a90153f3     	stp	x19, x20, [sp, #0x10]
    276c: f0000073     	adrp	x19, 0x11000 <_text_data_reloc_blob+0x118d>
    2770: 9133e273     	add	x19, x19, #0xcf8
    2774: f9401660     	ldr	x0, [x19, #0x28]
    2778: f90013f5     	str	x21, [sp, #0x20]
    277c: 90000095     	adrp	x21, 0x12000 <_d_reloc+0x308>
    2780: 912da2b5     	add	x21, x21, #0xb68
    2784: f94002b4     	ldr	x20, [x21]
    2788: f953ce81     	ldr	x1, [x20, #0x2798]
    278c: d63f0020     	blr	x1
    2790: 51000c01     	sub	w1, w0, #0x3
    2794: f240083f     	tst	x1, #0x7
    2798: 540001a1     	b.ne	0x27cc <_F6e732d69676e6f72652d312d617267_ns_ignore_1_arg_0+0x6c>
    279c: f840d015     	ldur	x21, [x0, #0xd]
    27a0: aa1503e1     	mov	x1, x21
    27a4: 52800003     	mov	w3, #0x0                ; =0
    27a8: f9401660     	ldr	x0, [x19, #0x28]
    27ac: d2800002     	mov	x2, #0x0                ; =0
    27b0: f9402a84     	ldr	x4, [x20, #0x50]
    27b4: d63f0080     	blr	x4
    27b8: aa1503e0     	mov	x0, x21
    27bc: f94013f5     	ldr	x21, [sp, #0x20]
    27c0: a94153f3     	ldp	x19, x20, [sp, #0x10]
    27c4: a8c37bfd     	ldp	x29, x30, [sp], #0x30
    27c8: d65f03c0     	ret
    27cc: b40000c0     	cbz	x0, 0x27e4 <_F6e732d69676e6f72652d312d617267_ns_ignore_1_arg_0+0x84>
    27d0: f94002a2     	ldr	x2, [x21]
    27d4: aa0003e1     	mov	x1, x0
    27d8: f944ba60     	ldr	x0, [x19, #0x970]
    27dc: f9400042     	ldr	x2, [x2]
    27e0: d63f0040     	blr	x2
    27e4: d2800015     	mov	x21, #0x0               ; =0
    27e8: 17ffffee     	b	0x27a0 <_F6e732d69676e6f72652d312d617267_ns_ignore_1_arg_0+0x40>

00000000000027ec <_F6e732d70617273652d67656f6d65747279_ns_parse_geometry_0>:
    27ec: 90000084     	adrp	x4, 0x12000 <_d_reloc+0x308>
    27f0: 912da084     	add	x4, x4, #0xb68
    27f4: aa0003e1     	mov	x1, x0
    27f8: d2800003     	mov	x3, #0x0                ; =0
    27fc: a9ae7bfd     	stp	x29, x30, [sp, #-0x120]!
    2800: 910003fd     	mov	x29, sp
    2804: d2800002     	mov	x2, #0x0                ; =0
    2808: a90153f3     	stp	x19, x20, [sp, #0x10]
    280c: f0000074     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    2810: 9133e294     	add	x20, x20, #0xcf8
    2814: a9025bf5     	stp	x21, x22, [sp, #0x20]
    2818: aa0003f5     	mov	x21, x0
    281c: f9400093     	ldr	x19, [x4]
    2820: f9402a80     	ldr	x0, [x20, #0x50]
    2824: f9476664     	ldr	x4, [x19, #0xec8]
    2828: d63f0080     	blr	x4
    282c: b4000e40     	cbz	x0, 0x29f4 <_F6e732d70617273652d67656f6d65747279_ns_parse_geometry_0+0x208>
    2830: a90363b7     	stp	x23, x24, [x29, #0x30]
    2834: d28000c4     	mov	x4, #0x6                ; =6
    2838: 910163a1     	add	x1, x29, #0x58
    283c: d2800060     	mov	x0, #0x3                ; =3
    2840: d28001d7     	mov	x23, #0xe               ; =14
    2844: f9403683     	ldr	x3, [x20, #0x68]
    2848: f90037b5     	str	x21, [x29, #0x68]
    284c: f94d3a62     	ldr	x2, [x19, #0x1a70]
    2850: f90023b9     	str	x25, [x29, #0x40]
    2854: a90593a3     	stp	x3, x4, [x29, #0x58]
    2858: d63f0040     	blr	x2
    285c: f9539662     	ldr	x2, [x19, #0x2728]
    2860: d2800001     	mov	x1, #0x0                ; =0
    2864: d63f0040     	blr	x2
    2868: f94fe262     	ldr	x2, [x19, #0x1fc0]
    286c: aa0003e1     	mov	x1, x0
    2870: f9402e80     	ldr	x0, [x20, #0x58]
    2874: d63f0040     	blr	x2
    2878: f94fe262     	ldr	x2, [x19, #0x1fc0]
    287c: d2800001     	mov	x1, #0x0                ; =0
    2880: d63f0040     	blr	x2
    2884: f9403683     	ldr	x3, [x20, #0x68]
    2888: aa0003f8     	mov	x24, x0
    288c: 9101c3a1     	add	x1, x29, #0x70
    2890: d2800060     	mov	x0, #0x3                ; =3
    2894: f90043b5     	str	x21, [x29, #0x80]
    2898: f94d3a62     	ldr	x2, [x19, #0x1a70]
    289c: a9075fa3     	stp	x3, x23, [x29, #0x70]
    28a0: d63f0040     	blr	x2
    28a4: aa0003f6     	mov	x22, x0
    28a8: b4000260     	cbz	x0, 0x28f4 <_F6e732d70617273652d67656f6d65747279_ns_parse_geometry_0+0x108>
    28ac: f9403683     	ldr	x3, [x20, #0x68]
    28b0: 9103a3a1     	add	x1, x29, #0xe8
    28b4: d2800060     	mov	x0, #0x3                ; =3
    28b8: f9007fb5     	str	x21, [x29, #0xf8]
    28bc: f94d3a62     	ldr	x2, [x19, #0x1a70]
    28c0: a90edfa3     	stp	x3, x23, [x29, #0xe8]
    28c4: d63f0040     	blr	x2
    28c8: f9539662     	ldr	x2, [x19, #0x2728]
    28cc: d2800001     	mov	x1, #0x0                ; =0
    28d0: d63f0040     	blr	x2
    28d4: f94fe262     	ldr	x2, [x19, #0x1fc0]
    28d8: aa0003e1     	mov	x1, x0
    28dc: f9405280     	ldr	x0, [x20, #0xa0]
    28e0: d63f0040     	blr	x2
    28e4: f94fe262     	ldr	x2, [x19, #0x1fc0]
    28e8: d2800001     	mov	x1, #0x0                ; =0
    28ec: d63f0040     	blr	x2
    28f0: aa0003f6     	mov	x22, x0
    28f4: f9403683     	ldr	x3, [x20, #0x68]
    28f8: d28002d9     	mov	x25, #0x16              ; =22
    28fc: 910223a1     	add	x1, x29, #0x88
    2900: d2800060     	mov	x0, #0x3                ; =3
    2904: f9004fb5     	str	x21, [x29, #0x98]
    2908: f94d3a62     	ldr	x2, [x19, #0x1a70]
    290c: a908e7a3     	stp	x3, x25, [x29, #0x88]
    2910: d63f0040     	blr	x2
    2914: aa0003f7     	mov	x23, x0
    2918: b4000260     	cbz	x0, 0x2964 <_F6e732d70617273652d67656f6d65747279_ns_parse_geometry_0+0x178>
    291c: f9403683     	ldr	x3, [x20, #0x68]
    2920: 910343a1     	add	x1, x29, #0xd0
    2924: d2800060     	mov	x0, #0x3                ; =3
    2928: f90073b5     	str	x21, [x29, #0xe0]
    292c: f94d3a62     	ldr	x2, [x19, #0x1a70]
    2930: a90d67a3     	stp	x3, x25, [x29, #0xd0]
    2934: d63f0040     	blr	x2
    2938: f9539662     	ldr	x2, [x19, #0x2728]
    293c: d2800001     	mov	x1, #0x0                ; =0
    2940: d63f0040     	blr	x2
    2944: f94fe262     	ldr	x2, [x19, #0x1fc0]
    2948: aa0003e1     	mov	x1, x0
    294c: f9404e80     	ldr	x0, [x20, #0x98]
    2950: d63f0040     	blr	x2
    2954: f94fe262     	ldr	x2, [x19, #0x1fc0]
    2958: d2800001     	mov	x1, #0x0                ; =0
    295c: d63f0040     	blr	x2
    2960: aa0003f7     	mov	x23, x0
    2964: f9403683     	ldr	x3, [x20, #0x68]
    2968: d28003d9     	mov	x25, #0x1e              ; =30
    296c: 910283a1     	add	x1, x29, #0xa0
    2970: d2800060     	mov	x0, #0x3                ; =3
    2974: f9005bb5     	str	x21, [x29, #0xb0]
    2978: f94d3a62     	ldr	x2, [x19, #0x1a70]
    297c: a90a67a3     	stp	x3, x25, [x29, #0xa0]
    2980: d63f0040     	blr	x2
    2984: aa0003e2     	mov	x2, x0
    2988: b4000260     	cbz	x0, 0x29d4 <_F6e732d70617273652d67656f6d65747279_ns_parse_geometry_0+0x1e8>
    298c: f9403683     	ldr	x3, [x20, #0x68]
    2990: 9102e3a1     	add	x1, x29, #0xb8
    2994: d2800060     	mov	x0, #0x3                ; =3
    2998: f90067b5     	str	x21, [x29, #0xc8]
    299c: f94d3a62     	ldr	x2, [x19, #0x1a70]
    29a0: a90be7a3     	stp	x3, x25, [x29, #0xb8]
    29a4: d63f0040     	blr	x2
    29a8: f9539662     	ldr	x2, [x19, #0x2728]
    29ac: d2800001     	mov	x1, #0x0                ; =0
    29b0: d63f0040     	blr	x2
    29b4: f94fe262     	ldr	x2, [x19, #0x1fc0]
    29b8: aa0003e1     	mov	x1, x0
    29bc: f9404a80     	ldr	x0, [x20, #0x90]
    29c0: d63f0040     	blr	x2
    29c4: f94fe262     	ldr	x2, [x19, #0x1fc0]
    29c8: d2800001     	mov	x1, #0x0                ; =0
    29cc: d63f0040     	blr	x2
    29d0: aa0003e2     	mov	x2, x0
    29d4: 910403a1     	add	x1, x29, #0x100
    29d8: f9524263     	ldr	x3, [x19, #0x2480]
    29dc: d2800080     	mov	x0, #0x4                ; =4
    29e0: a9005838     	stp	x24, x22, [x1]
    29e4: a9010837     	stp	x23, x2, [x1, #0x10]
    29e8: d63f0060     	blr	x3
    29ec: f94023b9     	ldr	x25, [x29, #0x40]
    29f0: a94363b7     	ldp	x23, x24, [x29, #0x30]
    29f4: a94153f3     	ldp	x19, x20, [sp, #0x10]
    29f8: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    29fc: a8d27bfd     	ldp	x29, x30, [sp], #0x120
    2a00: d65f03c0     	ret

0000000000002a04 <_F6e732d73657475702d7370656369616c2d6b657973_ns_setup_special_keys_0>:
    2a04: a9a87bfd     	stp	x29, x30, [sp, #-0x180]!
    2a08: 910003fd     	mov	x29, sp
    2a0c: 9101c3a1     	add	x1, x29, #0x70
    2a10: d2800040     	mov	x0, #0x2                ; =2
    2a14: a90153f3     	stp	x19, x20, [sp, #0x10]
    2a18: f0000074     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    2a1c: 9133e294     	add	x20, x20, #0xcf8
    2a20: a9025bf5     	stp	x21, x22, [sp, #0x20]
    2a24: 90000082     	adrp	x2, 0x12000 <_d_reloc+0x308>
    2a28: 912da042     	add	x2, x2, #0xb68
    2a2c: a90363f7     	stp	x23, x24, [sp, #0x30]
    2a30: a9046bf9     	stp	x25, x26, [sp, #0x40]
    2a34: a90573fb     	stp	x27, x28, [sp, #0x50]
    2a38: 3cca829f     	ldur	q31, [x20, #0xa8]
    2a3c: f9400053     	ldr	x19, [x2]
    2a40: 3d801fbf     	str	q31, [x29, #0x70]
    2a44: f94d3a62     	ldr	x2, [x19, #0x1a70]
    2a48: d63f0040     	blr	x2
    2a4c: f94fe262     	ldr	x2, [x19, #0x1fc0]
    2a50: aa0003e1     	mov	x1, x0
    2a54: d28000c0     	mov	x0, #0x6                ; =6
    2a58: d63f0040     	blr	x2
    2a5c: f9405685     	ldr	x5, [x20, #0xa8]
    2a60: aa0003e3     	mov	x3, x0
    2a64: 910203a1     	add	x1, x29, #0x80
    2a68: d2800040     	mov	x0, #0x2                ; =2
    2a6c: f9406284     	ldr	x4, [x20, #0xc0]
    2a70: f90033a3     	str	x3, [x29, #0x60]
    2a74: f94d3a62     	ldr	x2, [x19, #0x1a70]
    2a78: a90813a5     	stp	x5, x4, [x29, #0x80]
    2a7c: d63f0040     	blr	x2
    2a80: f94fe262     	ldr	x2, [x19, #0x1fc0]
    2a84: aa0003e1     	mov	x1, x0
    2a88: d2800140     	mov	x0, #0xa                ; =10
    2a8c: d63f0040     	blr	x2
    2a90: f9405686     	ldr	x6, [x20, #0xa8]
    2a94: 910243a1     	add	x1, x29, #0x90
    2a98: aa0003e2     	mov	x2, x0
    2a9c: d2800040     	mov	x0, #0x2                ; =2
    2aa0: f9406685     	ldr	x5, [x20, #0xc8]
    2aa4: f90037a2     	str	x2, [x29, #0x68]
    2aa8: f94d3a64     	ldr	x4, [x19, #0x1a70]
    2aac: a90917a6     	stp	x6, x5, [x29, #0x90]
    2ab0: d63f0080     	blr	x4
    2ab4: f94fe264     	ldr	x4, [x19, #0x1fc0]
    2ab8: aa0003e1     	mov	x1, x0
    2abc: d28001c0     	mov	x0, #0xe                ; =14
    2ac0: d63f0080     	blr	x4
    2ac4: f9405686     	ldr	x6, [x20, #0xa8]
    2ac8: aa0003fc     	mov	x28, x0
    2acc: 910283a1     	add	x1, x29, #0xa0
    2ad0: d2800040     	mov	x0, #0x2                ; =2
    2ad4: f9406e85     	ldr	x5, [x20, #0xd8]
    2ad8: f94d3a64     	ldr	x4, [x19, #0x1a70]
    2adc: a90a17a6     	stp	x6, x5, [x29, #0xa0]
    2ae0: d63f0080     	blr	x4
    2ae4: f94fe264     	ldr	x4, [x19, #0x1fc0]
    2ae8: aa0003e1     	mov	x1, x0
    2aec: d2800240     	mov	x0, #0x12               ; =18
    2af0: d63f0080     	blr	x4
    2af4: f9405686     	ldr	x6, [x20, #0xa8]
    2af8: aa0003fb     	mov	x27, x0
    2afc: 9102c3a1     	add	x1, x29, #0xb0
    2b00: d2800040     	mov	x0, #0x2                ; =2
    2b04: f9407285     	ldr	x5, [x20, #0xe0]
    2b08: f94d3a64     	ldr	x4, [x19, #0x1a70]
    2b0c: a90b17a6     	stp	x6, x5, [x29, #0xb0]
    2b10: d63f0080     	blr	x4
    2b14: f94fe264     	ldr	x4, [x19, #0x1fc0]
    2b18: aa0003e1     	mov	x1, x0
    2b1c: d28002c0     	mov	x0, #0x16               ; =22
    2b20: d63f0080     	blr	x4
    2b24: f9405686     	ldr	x6, [x20, #0xa8]
    2b28: aa0003fa     	mov	x26, x0
    2b2c: 910303a1     	add	x1, x29, #0xc0
    2b30: d2800040     	mov	x0, #0x2                ; =2
    2b34: f9407a85     	ldr	x5, [x20, #0xf0]
    2b38: f94d3a64     	ldr	x4, [x19, #0x1a70]
    2b3c: a90c17a6     	stp	x6, x5, [x29, #0xc0]
    2b40: d63f0080     	blr	x4
    2b44: f94fe264     	ldr	x4, [x19, #0x1fc0]
    2b48: aa0003e1     	mov	x1, x0
    2b4c: d2800340     	mov	x0, #0x1a               ; =26
    2b50: d63f0080     	blr	x4
    2b54: f9405686     	ldr	x6, [x20, #0xa8]
    2b58: aa0003f9     	mov	x25, x0
    2b5c: 910343a1     	add	x1, x29, #0xd0
    2b60: d2800040     	mov	x0, #0x2                ; =2
    2b64: f9408285     	ldr	x5, [x20, #0x100]
    2b68: f94d3a64     	ldr	x4, [x19, #0x1a70]
    2b6c: a90d17a6     	stp	x6, x5, [x29, #0xd0]
    2b70: d63f0080     	blr	x4
    2b74: f94fe264     	ldr	x4, [x19, #0x1fc0]
    2b78: aa0003e1     	mov	x1, x0
    2b7c: d2800440     	mov	x0, #0x22               ; =34
    2b80: d63f0080     	blr	x4
    2b84: f9405686     	ldr	x6, [x20, #0xa8]
    2b88: aa0003f8     	mov	x24, x0
    2b8c: 910383a1     	add	x1, x29, #0xe0
    2b90: d2800040     	mov	x0, #0x2                ; =2
    2b94: f9408a85     	ldr	x5, [x20, #0x110]
    2b98: f94d3a64     	ldr	x4, [x19, #0x1a70]
    2b9c: a90e17a6     	stp	x6, x5, [x29, #0xe0]
    2ba0: d63f0080     	blr	x4
    2ba4: f94fe264     	ldr	x4, [x19, #0x1fc0]
    2ba8: aa0003e1     	mov	x1, x0
    2bac: d28005c0     	mov	x0, #0x2e               ; =46
    2bb0: d63f0080     	blr	x4
    2bb4: f9405686     	ldr	x6, [x20, #0xa8]
    2bb8: aa0003f7     	mov	x23, x0
    2bbc: 9103c3a1     	add	x1, x29, #0xf0
    2bc0: d2800040     	mov	x0, #0x2                ; =2
    2bc4: f9409285     	ldr	x5, [x20, #0x120]
    2bc8: f94d3a64     	ldr	x4, [x19, #0x1a70]
    2bcc: a90f17a6     	stp	x6, x5, [x29, #0xf0]
    2bd0: d63f0080     	blr	x4
    2bd4: f94fe264     	ldr	x4, [x19, #0x1fc0]
    2bd8: aa0003e1     	mov	x1, x0
    2bdc: d2800640     	mov	x0, #0x32               ; =50
    2be0: d63f0080     	blr	x4
    2be4: f9405686     	ldr	x6, [x20, #0xa8]
    2be8: aa0003f6     	mov	x22, x0
    2bec: 910403a1     	add	x1, x29, #0x100
    2bf0: d2800040     	mov	x0, #0x2                ; =2
    2bf4: f9409a85     	ldr	x5, [x20, #0x130]
    2bf8: f94d3a64     	ldr	x4, [x19, #0x1a70]
    2bfc: a91017a6     	stp	x6, x5, [x29, #0x100]
    2c00: d63f0080     	blr	x4
    2c04: f94fe264     	ldr	x4, [x19, #0x1fc0]
    2c08: aa0003e1     	mov	x1, x0
    2c0c: d28006c0     	mov	x0, #0x36               ; =54
    2c10: d63f0080     	blr	x4
    2c14: f9405686     	ldr	x6, [x20, #0xa8]
    2c18: aa0003f5     	mov	x21, x0
    2c1c: 910443a1     	add	x1, x29, #0x110
    2c20: d2800040     	mov	x0, #0x2                ; =2
    2c24: f940a285     	ldr	x5, [x20, #0x140]
    2c28: f94d3a64     	ldr	x4, [x19, #0x1a70]
    2c2c: a91117a6     	stp	x6, x5, [x29, #0x110]
    2c30: d63f0080     	blr	x4
    2c34: f94fe264     	ldr	x4, [x19, #0x1fc0]
    2c38: aa0003e1     	mov	x1, x0
    2c3c: d2800740     	mov	x0, #0x3a               ; =58
    2c40: d63f0080     	blr	x4
    2c44: a9460ba3     	ldp	x3, x2, [x29, #0x60]
    2c48: aa0003e5     	mov	x5, x0
    2c4c: 910483a1     	add	x1, x29, #0x120
    2c50: d2800160     	mov	x0, #0xb                ; =11
    2c54: f900bba5     	str	x5, [x29, #0x170]
    2c58: f94fde64     	ldr	x4, [x19, #0x1fb8]
    2c5c: a9120ba3     	stp	x3, x2, [x29, #0x120]
    2c60: a9136fbc     	stp	x28, x27, [x29, #0x130]
    2c64: a91467ba     	stp	x26, x25, [x29, #0x140]
    2c68: a9155fb8     	stp	x24, x23, [x29, #0x150]
    2c6c: a91657b6     	stp	x22, x21, [x29, #0x160]
    2c70: d63f0080     	blr	x4
    2c74: f9402a64     	ldr	x4, [x19, #0x50]
    2c78: aa0003e1     	mov	x1, x0
    2c7c: aa0003f3     	mov	x19, x0
    2c80: 52800003     	mov	w3, #0x0                ; =0
    2c84: d2800002     	mov	x2, #0x0                ; =0
    2c88: f940a680     	ldr	x0, [x20, #0x148]
    2c8c: d63f0080     	blr	x4
    2c90: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    2c94: aa1303e0     	mov	x0, x19
    2c98: a94153f3     	ldp	x19, x20, [sp, #0x10]
    2c9c: a94363f7     	ldp	x23, x24, [sp, #0x30]
    2ca0: a9446bf9     	ldp	x25, x26, [sp, #0x40]
    2ca4: a94573fb     	ldp	x27, x28, [sp, #0x50]
    2ca8: a8d87bfd     	ldp	x29, x30, [sp], #0x180
    2cac: d65f03c0     	ret

0000000000002cb0 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_0>:
    2cb0: 90000081     	adrp	x1, 0x12000 <_d_reloc+0x308>
    2cb4: 912da021     	add	x1, x1, #0xb68
    2cb8: a9bb7bfd     	stp	x29, x30, [sp, #-0x50]!
    2cbc: 910003fd     	mov	x29, sp
    2cc0: a90153f3     	stp	x19, x20, [sp, #0x10]
    2cc4: aa0003f4     	mov	x20, x0
    2cc8: a9025bf5     	stp	x21, x22, [sp, #0x20]
    2ccc: aa1403f5     	mov	x21, x20
    2cd0: f9400033     	ldr	x19, [x1]
    2cd4: f0000076     	adrp	x22, 0x11000 <_text_data_reloc_blob+0x118d>
    2cd8: 9133e2d6     	add	x22, x22, #0xcf8
    2cdc: f9547a61     	ldr	x1, [x19, #0x28f0]
    2ce0: d63f0020     	blr	x1
    2ce4: b4000280     	cbz	x0, 0x2d34 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_0+0x84>
    2ce8: f940aec3     	ldr	x3, [x22, #0x158]
    2cec: d2800042     	mov	x2, #0x2                ; =2
    2cf0: 9100e3a1     	add	x1, x29, #0x38
    2cf4: d2800060     	mov	x0, #0x3                ; =3
    2cf8: f90027b5     	str	x21, [x29, #0x48]
    2cfc: a9038ba3     	stp	x3, x2, [x29, #0x38]
    2d00: f94d3a62     	ldr	x2, [x19, #0x1a70]
    2d04: d63f0040     	blr	x2
    2d08: f9547a61     	ldr	x1, [x19, #0x28f0]
    2d0c: aa0003e2     	mov	x2, x0
    2d10: aa1403e0     	mov	x0, x20
    2d14: aa0203f4     	mov	x20, x2
    2d18: d63f0020     	blr	x1
    2d1c: b40002c0     	cbz	x0, 0x2d74 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_0+0xc4>
    2d20: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    2d24: aa1403e0     	mov	x0, x20
    2d28: a94153f3     	ldp	x19, x20, [sp, #0x10]
    2d2c: a8c57bfd     	ldp	x29, x30, [sp], #0x50
    2d30: d65f03c0     	ret
    2d34: f940aac0     	ldr	x0, [x22, #0x150]
    2d38: f953ce61     	ldr	x1, [x19, #0x2798]
    2d3c: d63f0020     	blr	x1
    2d40: aa0003f5     	mov	x21, x0
    2d44: b4fffd20     	cbz	x0, 0x2ce8 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_0+0x38>
    2d48: f94a4a60     	ldr	x0, [x19, #0x1490]
    2d4c: d63f0000     	blr	x0
    2d50: f94a4661     	ldr	x1, [x19, #0x1488]
    2d54: aa0003f5     	mov	x21, x0
    2d58: d63f0020     	blr	x1
    2d5c: f94a6662     	ldr	x2, [x19, #0x14c8]
    2d60: aa0003e1     	mov	x1, x0
    2d64: aa1503e0     	mov	x0, x21
    2d68: d63f0040     	blr	x2
    2d6c: aa0003f5     	mov	x21, x0
    2d70: 17ffffde     	b	0x2ce8 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_0+0x38>
    2d74: b4000454     	cbz	x20, 0x2dfc <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_0+0x14c>
    2d78: b4000135     	cbz	x21, 0x2d9c <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_0+0xec>
    2d7c: f9525a62     	ldr	x2, [x19, #0x24b0]
    2d80: aa1403e1     	mov	x1, x20
    2d84: aa1503e0     	mov	x0, x21
    2d88: d63f0040     	blr	x2
    2d8c: f954c262     	ldr	x2, [x19, #0x2980]
    2d90: d2800001     	mov	x1, #0x0                ; =0
    2d94: d63f0040     	blr	x2
    2d98: b4000320     	cbz	x0, 0x2dfc <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_0+0x14c>
    2d9c: f940aac0     	ldr	x0, [x22, #0x150]
    2da0: f953ce61     	ldr	x1, [x19, #0x2798]
    2da4: d63f0020     	blr	x1
    2da8: b4000140     	cbz	x0, 0x2dd0 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_0+0x120>
    2dac: f94a4a60     	ldr	x0, [x19, #0x1490]
    2db0: d63f0000     	blr	x0
    2db4: f94a4661     	ldr	x1, [x19, #0x1488]
    2db8: aa0003f5     	mov	x21, x0
    2dbc: d63f0020     	blr	x1
    2dc0: f9495e62     	ldr	x2, [x19, #0x12b8]
    2dc4: aa0003e1     	mov	x1, x0
    2dc8: aa1503e0     	mov	x0, x21
    2dcc: d63f0040     	blr	x2
    2dd0: f949ce62     	ldr	x2, [x19, #0x1398]
    2dd4: 9100c3a1     	add	x1, x29, #0x30
    2dd8: d2800020     	mov	x0, #0x1                ; =1
    2ddc: f9001bb4     	str	x20, [x29, #0x30]
    2de0: d63f0040     	blr	x2
    2de4: f9402a64     	ldr	x4, [x19, #0x50]
    2de8: 52800003     	mov	w3, #0x0                ; =0
    2dec: d2800002     	mov	x2, #0x0                ; =0
    2df0: d2800001     	mov	x1, #0x0                ; =0
    2df4: f940b6c0     	ldr	x0, [x22, #0x168]
    2df8: d63f0080     	blr	x4
    2dfc: d2800014     	mov	x20, #0x0               ; =0
    2e00: 17ffffc8     	b	0x2d20 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_0+0x70>

0000000000002e04 <_F6e732d646566696e652d73657276696365_ns_define_service_0>:
    2e04: a9b57bfd     	stp	x29, x30, [sp, #-0xb0]!
    2e08: 910003fd     	mov	x29, sp
    2e0c: aa0003e1     	mov	x1, x0
    2e10: a90363f7     	stp	x23, x24, [sp, #0x30]
    2e14: 90000098     	adrp	x24, 0x12000 <_d_reloc+0x308>
    2e18: 912da318     	add	x24, x24, #0xb68
    2e1c: a90153f3     	stp	x19, x20, [sp, #0x10]
    2e20: aa0003f4     	mov	x20, x0
    2e24: a9025bf5     	stp	x21, x22, [sp, #0x20]
    2e28: a9046bf9     	stp	x25, x26, [sp, #0x40]
    2e2c: f9400313     	ldr	x19, [x24]
    2e30: f0000076     	adrp	x22, 0x11000 <_text_data_reloc_blob+0x118d>
    2e34: 9133e2d6     	add	x22, x22, #0xcf8
    2e38: f9519263     	ldr	x3, [x19, #0x2320]
    2e3c: a9590ac0     	ldp	x0, x2, [x22, #0x190]
    2e40: f940c2d5     	ldr	x21, [x22, #0x180]
    2e44: d63f0060     	blr	x3
    2e48: f94fe262     	ldr	x2, [x19, #0x1fc0]
    2e4c: aa0003f7     	mov	x23, x0
    2e50: aa1403e1     	mov	x1, x20
    2e54: f940e2c0     	ldr	x0, [x22, #0x1c0]
    2e58: d63f0040     	blr	x2
    2e5c: f940e6c2     	ldr	x2, [x22, #0x1c8]
    2e60: aa0003e1     	mov	x1, x0
    2e64: f940cac0     	ldr	x0, [x22, #0x190]
    2e68: f9519263     	ldr	x3, [x19, #0x2320]
    2e6c: d63f0060     	blr	x3
    2e70: f940d6c5     	ldr	x5, [x22, #0x1a8]
    2e74: aa0003e4     	mov	x4, x0
    2e78: d2801046     	mov	x6, #0x82               ; =130
    2e7c: 910243a1     	add	x1, x29, #0x90
    2e80: d28016c3     	mov	x3, #0xb6               ; =182
    2e84: f94d3a62     	ldr	x2, [x19, #0x1a70]
    2e88: d2800080     	mov	x0, #0x4                ; =4
    2e8c: a9011023     	stp	x3, x4, [x1, #0x10]
    2e90: a9001825     	stp	x5, x6, [x1]
    2e94: d63f0040     	blr	x2
    2e98: f94e2662     	ldr	x2, [x19, #0x1c48]
    2e9c: d2800001     	mov	x1, #0x0                ; =0
    2ea0: d63f0040     	blr	x2
    2ea4: f940f2c3     	ldr	x3, [x22, #0x1e0]
    2ea8: aa0003f9     	mov	x25, x0
    2eac: 910183a1     	add	x1, x29, #0x60
    2eb0: d2800040     	mov	x0, #0x2                ; =2
    2eb4: f94fca62     	ldr	x2, [x19, #0x1f90]
    2eb8: a9065fa3     	stp	x3, x23, [x29, #0x60]
    2ebc: d63f0040     	blr	x2
    2ec0: f953d663     	ldr	x3, [x19, #0x27a8]
    2ec4: aa0003e1     	mov	x1, x0
    2ec8: d2800002     	mov	x2, #0x0                ; =0
    2ecc: aa1903e0     	mov	x0, x25
    2ed0: d63f0060     	blr	x3
    2ed4: f940fac0     	ldr	x0, [x22, #0x1f0]
    2ed8: f953ce61     	ldr	x1, [x19, #0x2798]
    2edc: d63f0020     	blr	x1
    2ee0: f940c2c1     	ldr	x1, [x22, #0x180]
    2ee4: d2800002     	mov	x2, #0x0                ; =0
    2ee8: f9559263     	ldr	x3, [x19, #0x2b20]
    2eec: d63f0060     	blr	x3
    2ef0: b4000d20     	cbz	x0, 0x3094 <_F6e732d646566696e652d73657276696365_ns_define_service_0+0x290>
    2ef4: 51000e80     	sub	w0, w20, #0x3
    2ef8: 910203b7     	add	x23, x29, #0x80
    2efc: f240081f     	tst	x0, #0x7
    2f00: 54000701     	b.ne	0x2fe0 <_F6e732d646566696e652d73657276696365_ns_define_service_0+0x1dc>
    2f04: f9002bbb     	str	x27, [x29, #0x50]
    2f08: 14000006     	b	0x2f20 <_F6e732d646566696e652d73657276696365_ns_define_service_0+0x11c>
    2f0c: f9400a94     	ldr	x20, [x20, #0x10]
    2f10: 97fffd74     	bl	0x24e0 <_maybe_gc_quit>
    2f14: 51000e82     	sub	w2, w20, #0x3
    2f18: f240085f     	tst	x2, #0x7
    2f1c: 540005c1     	b.ne	0x2fd4 <_F6e732d646566696e652d73657276696365_ns_define_service_0+0x1d0>
    2f20: d1000e94     	sub	x20, x20, #0x3
    2f24: f94e2662     	ldr	x2, [x19, #0x1c48]
    2f28: d2800001     	mov	x1, #0x0                ; =0
    2f2c: a9408e80     	ldp	x0, x3, [x20, #0x8]
    2f30: b4000e63     	cbz	x3, 0x30fc <_F6e732d646566696e652d73657276696365_ns_define_service_0+0x2f8>
    2f34: d63f0040     	blr	x2
    2f38: f94fe262     	ldr	x2, [x19, #0x1fc0]
    2f3c: d2800001     	mov	x1, #0x0                ; =0
    2f40: d63f0040     	blr	x2
    2f44: aa0003e3     	mov	x3, x0
    2f48: f9523a62     	ldr	x2, [x19, #0x2470]
    2f4c: aa1703e1     	mov	x1, x23
    2f50: d2800040     	mov	x0, #0x2                ; =2
    2f54: a9080fb5     	stp	x21, x3, [x29, #0x80]
    2f58: d63f0040     	blr	x2
    2f5c: f953ce61     	ldr	x1, [x19, #0x2798]
    2f60: aa0003f5     	mov	x21, x0
    2f64: f940fac0     	ldr	x0, [x22, #0x1f0]
    2f68: d63f0020     	blr	x1
    2f6c: f9559263     	ldr	x3, [x19, #0x2b20]
    2f70: aa1503e1     	mov	x1, x21
    2f74: d2800002     	mov	x2, #0x0                ; =0
    2f78: d63f0060     	blr	x3
    2f7c: f955c661     	ldr	x1, [x19, #0x2b88]
    2f80: d63f0020     	blr	x1
    2f84: b5fffc40     	cbnz	x0, 0x2f0c <_F6e732d646566696e652d73657276696365_ns_define_service_0+0x108>
    2f88: f940fac0     	ldr	x0, [x22, #0x1f0]
    2f8c: f953ce61     	ldr	x1, [x19, #0x2798]
    2f90: d63f0020     	blr	x1
    2f94: f940069b     	ldr	x27, [x20, #0x8]
    2f98: aa0003fa     	mov	x26, x0
    2f9c: f955b261     	ldr	x1, [x19, #0x2b60]
    2fa0: aa1b03e0     	mov	x0, x27
    2fa4: d63f0020     	blr	x1
    2fa8: f94fe262     	ldr	x2, [x19, #0x1fc0]
    2fac: aa0003e1     	mov	x1, x0
    2fb0: aa1b03e0     	mov	x0, x27
    2fb4: d63f0040     	blr	x2
    2fb8: f9559664     	ldr	x4, [x19, #0x2b28]
    2fbc: aa1503e1     	mov	x1, x21
    2fc0: d2800003     	mov	x3, #0x0                ; =0
    2fc4: aa0003e2     	mov	x2, x0
    2fc8: aa1a03e0     	mov	x0, x26
    2fcc: d63f0080     	blr	x4
    2fd0: 17ffffcf     	b	0x2f0c <_F6e732d646566696e652d73657276696365_ns_define_service_0+0x108>
    2fd4: f9402bbb     	ldr	x27, [x29, #0x50]
    2fd8: d503201f     	nop
    2fdc: d503201f     	nop
    2fe0: b4000694     	cbz	x20, 0x30b0 <_F6e732d646566696e652d73657276696365_ns_define_service_0+0x2ac>
    2fe4: f9400302     	ldr	x2, [x24]
    2fe8: aa1403e1     	mov	x1, x20
    2fec: f944bac0     	ldr	x0, [x22, #0x970]
    2ff0: f9400042     	ldr	x2, [x2]
    2ff4: d63f0040     	blr	x2
    2ff8: f9400302     	ldr	x2, [x24]
    2ffc: aa1403e1     	mov	x1, x20
    3000: f944bac0     	ldr	x0, [x22, #0x970]
    3004: f9400042     	ldr	x2, [x2]
    3008: d63f0040     	blr	x2
    300c: f94e2662     	ldr	x2, [x19, #0x1c48]
    3010: d2800001     	mov	x1, #0x0                ; =0
    3014: d2800000     	mov	x0, #0x0                ; =0
    3018: d63f0040     	blr	x2
    301c: f94fe262     	ldr	x2, [x19, #0x1fc0]
    3020: d2800001     	mov	x1, #0x0                ; =0
    3024: d63f0040     	blr	x2
    3028: aa0003e3     	mov	x3, x0
    302c: f9523a62     	ldr	x2, [x19, #0x2470]
    3030: 9101c3a1     	add	x1, x29, #0x70
    3034: d2800040     	mov	x0, #0x2                ; =2
    3038: a9070fb5     	stp	x21, x3, [x29, #0x70]
    303c: d63f0040     	blr	x2
    3040: f953ce61     	ldr	x1, [x19, #0x2798]
    3044: aa0003f7     	mov	x23, x0
    3048: f940fac0     	ldr	x0, [x22, #0x1f0]
    304c: d63f0020     	blr	x1
    3050: f9400302     	ldr	x2, [x24]
    3054: aa1403e1     	mov	x1, x20
    3058: aa0003f5     	mov	x21, x0
    305c: d2800014     	mov	x20, #0x0               ; =0
    3060: f944bac0     	ldr	x0, [x22, #0x970]
    3064: f9400042     	ldr	x2, [x2]
    3068: d63f0040     	blr	x2
    306c: f94fe262     	ldr	x2, [x19, #0x1fc0]
    3070: aa1903e1     	mov	x1, x25
    3074: aa1403e0     	mov	x0, x20
    3078: d63f0040     	blr	x2
    307c: f9559664     	ldr	x4, [x19, #0x2b28]
    3080: aa1703e1     	mov	x1, x23
    3084: d2800003     	mov	x3, #0x0                ; =0
    3088: aa0003e2     	mov	x2, x0
    308c: aa1503e0     	mov	x0, x21
    3090: d63f0080     	blr	x4
    3094: a94153f3     	ldp	x19, x20, [sp, #0x10]
    3098: aa1903e0     	mov	x0, x25
    309c: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    30a0: a94363f7     	ldp	x23, x24, [sp, #0x30]
    30a4: a9446bf9     	ldp	x25, x26, [sp, #0x40]
    30a8: a8cb7bfd     	ldp	x29, x30, [sp], #0xb0
    30ac: d65f03c0     	ret
    30b0: f94e2662     	ldr	x2, [x19, #0x1c48]
    30b4: d2800001     	mov	x1, #0x0                ; =0
    30b8: d2800000     	mov	x0, #0x0                ; =0
    30bc: d63f0040     	blr	x2
    30c0: f94fe262     	ldr	x2, [x19, #0x1fc0]
    30c4: d2800001     	mov	x1, #0x0                ; =0
    30c8: d63f0040     	blr	x2
    30cc: aa0003e3     	mov	x3, x0
    30d0: f9523a62     	ldr	x2, [x19, #0x2470]
    30d4: 9101c3a1     	add	x1, x29, #0x70
    30d8: d2800040     	mov	x0, #0x2                ; =2
    30dc: a9070fb5     	stp	x21, x3, [x29, #0x70]
    30e0: d63f0040     	blr	x2
    30e4: f953ce61     	ldr	x1, [x19, #0x2798]
    30e8: aa0003f7     	mov	x23, x0
    30ec: f940fac0     	ldr	x0, [x22, #0x1f0]
    30f0: d63f0020     	blr	x1
    30f4: aa0003f5     	mov	x21, x0
    30f8: 17ffffdd     	b	0x306c <_F6e732d646566696e652d73657276696365_ns_define_service_0+0x268>
    30fc: d63f0040     	blr	x2
    3100: f94fe262     	ldr	x2, [x19, #0x1fc0]
    3104: d2800001     	mov	x1, #0x0                ; =0
    3108: d63f0040     	blr	x2
    310c: aa0003e3     	mov	x3, x0
    3110: f9523a62     	ldr	x2, [x19, #0x2470]
    3114: 9101c3a1     	add	x1, x29, #0x70
    3118: d2800040     	mov	x0, #0x2                ; =2
    311c: a9070fb5     	stp	x21, x3, [x29, #0x70]
    3120: d63f0040     	blr	x2
    3124: f953ce61     	ldr	x1, [x19, #0x2798]
    3128: aa0003f7     	mov	x23, x0
    312c: f940fac0     	ldr	x0, [x22, #0x1f0]
    3130: d63f0020     	blr	x1
    3134: f9400694     	ldr	x20, [x20, #0x8]
    3138: aa0003f5     	mov	x21, x0
    313c: f9402bbb     	ldr	x27, [x29, #0x50]
    3140: 17ffffcb     	b	0x306c <_F6e732d646566696e652d73657276696365_ns_define_service_0+0x268>

0000000000003144 <_F6e732d6f70656e2d66696c652d73657276696365_ns_open_file_service_0>:
    3144: a9b67bfd     	stp	x29, x30, [sp, #-0xa0]!
    3148: 910003fd     	mov	x29, sp
    314c: aa0003e2     	mov	x2, x0
    3150: 9101c3a1     	add	x1, x29, #0x70
    3154: d28000a0     	mov	x0, #0x5                ; =5
    3158: a9025bf5     	stp	x21, x22, [sp, #0x20]
    315c: d0000076     	adrp	x22, 0x11000 <_text_data_reloc_blob+0x118d>
    3160: 9133e2d6     	add	x22, x22, #0xcf8
    3164: a90363f7     	stp	x23, x24, [sp, #0x30]
    3168: f0000077     	adrp	x23, 0x12000 <_d_reloc+0x308>
    316c: 912da2f7     	add	x23, x23, #0xb68
    3170: f94022c3     	ldr	x3, [x22, #0x40]
    3174: f94112c4     	ldr	x4, [x22, #0x220]
    3178: f94002f8     	ldr	x24, [x23]
    317c: f90047a3     	str	x3, [x29, #0x88]
    3180: a90793a2     	stp	x2, x4, [x29, #0x78]
    3184: f9410ec2     	ldr	x2, [x22, #0x218]
    3188: f94116c3     	ldr	x3, [x22, #0x228]
    318c: f9003ba2     	str	x2, [x29, #0x70]
    3190: f94d3b02     	ldr	x2, [x24, #0x1a70]
    3194: f9004ba3     	str	x3, [x29, #0x90]
    3198: d63f0040     	blr	x2
    319c: b40004a0     	cbz	x0, 0x3230 <_F6e732d6f70656e2d66696c652d73657276696365_ns_open_file_service_0+0xec>
    31a0: a90153b3     	stp	x19, x20, [x29, #0x10]
    31a4: d0000074     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    31a8: aa0003f3     	mov	x19, x0
    31ac: 91338294     	add	x20, x20, #0xce0
    31b0: f90023b9     	str	x25, [x29, #0x40]
    31b4: 910143b9     	add	x25, x29, #0x50
    31b8: d503201f     	nop
    31bc: d503201f     	nop
    31c0: 51000e62     	sub	w2, w19, #0x3
    31c4: d1000e75     	sub	x21, x19, #0x3
    31c8: aa1903e1     	mov	x1, x25
    31cc: d2800060     	mov	x0, #0x3                ; =3
    31d0: f240085f     	tst	x2, #0x7
    31d4: 54000381     	b.ne	0x3244 <_F6e732d6f70656e2d66696c652d73657276696365_ns_open_file_service_0+0x100>
    31d8: f94006a4     	ldr	x4, [x21, #0x8]
    31dc: f90033bf     	str	xzr, [x29, #0x60]
    31e0: f9411ac3     	ldr	x3, [x22, #0x230]
    31e4: f94d3b02     	ldr	x2, [x24, #0x1a70]
    31e8: a90513a3     	stp	x3, x4, [x29, #0x50]
    31ec: d63f0040     	blr	x2
    31f0: b9400280     	ldr	w0, [x20]
    31f4: f9400ab3     	ldr	x19, [x21, #0x10]
    31f8: 11000400     	add	w0, w0, #0x1
    31fc: b9000280     	str	w0, [x20]
    3200: 6b4027ff     	cmp	wzr, w0, lsr #9
    3204: 54000100     	b.eq	0x3224 <_F6e732d6f70656e2d66696c652d73657276696365_ns_open_file_service_0+0xe0>
    3208: f94002e0     	ldr	x0, [x23]
    320c: b900029f     	str	wzr, [x20]
    3210: f9403400     	ldr	x0, [x0, #0x68]
    3214: d63f0000     	blr	x0
    3218: f94002e0     	ldr	x0, [x23]
    321c: f9403800     	ldr	x0, [x0, #0x70]
    3220: d63f0000     	blr	x0
    3224: b5fffcf3     	cbnz	x19, 0x31c0 <_F6e732d6f70656e2d66696c652d73657276696365_ns_open_file_service_0+0x7c>
    3228: f94023b9     	ldr	x25, [x29, #0x40]
    322c: a94153b3     	ldp	x19, x20, [x29, #0x10]
    3230: d2800000     	mov	x0, #0x0                ; =0
    3234: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    3238: a94363f7     	ldp	x23, x24, [sp, #0x30]
    323c: a8ca7bfd     	ldp	x29, x30, [sp], #0xa0
    3240: d65f03c0     	ret
    3244: f94002e2     	ldr	x2, [x23]
    3248: aa1303e1     	mov	x1, x19
    324c: f944bac0     	ldr	x0, [x22, #0x970]
    3250: f9400042     	ldr	x2, [x2]
    3254: d63f0040     	blr	x2
    3258: f9411ac3     	ldr	x3, [x22, #0x230]
    325c: aa1903e1     	mov	x1, x25
    3260: d2800060     	mov	x0, #0x3                ; =3
    3264: f90033bf     	str	xzr, [x29, #0x60]
    3268: f94d3b02     	ldr	x2, [x24, #0x1a70]
    326c: a9057fa3     	stp	x3, xzr, [x29, #0x50]
    3270: d63f0040     	blr	x2
    3274: f94002e2     	ldr	x2, [x23]
    3278: aa1303e1     	mov	x1, x19
    327c: d2800013     	mov	x19, #0x0               ; =0
    3280: f944bac0     	ldr	x0, [x22, #0x970]
    3284: f9400042     	ldr	x2, [x2]
    3288: d63f0040     	blr	x2
    328c: b9400280     	ldr	w0, [x20]
    3290: 11000400     	add	w0, w0, #0x1
    3294: b9000280     	str	w0, [x20]
    3298: 6b4027ff     	cmp	wzr, w0, lsr #9
    329c: 54fffc60     	b.eq	0x3228 <_F6e732d6f70656e2d66696c652d73657276696365_ns_open_file_service_0+0xe4>
    32a0: 17ffffda     	b	0x3208 <_F6e732d6f70656e2d66696c652d73657276696365_ns_open_file_service_0+0xc4>

00000000000032a4 <_F6e732d7370692d736572766963652d63616c6c_ns_spi_service_call_0>:
    32a4: f0000060     	adrp	x0, 0x12000 <_d_reloc+0x308>
    32a8: 912da000     	add	x0, x0, #0xb68
    32ac: a9b97bfd     	stp	x29, x30, [sp, #-0x70]!
    32b0: 910003fd     	mov	x29, sp
    32b4: a90153f3     	stp	x19, x20, [sp, #0x10]
    32b8: f9400013     	ldr	x19, [x0]
    32bc: d0000074     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    32c0: 9133e294     	add	x20, x20, #0xcf8
    32c4: f953ce61     	ldr	x1, [x19, #0x2798]
    32c8: f9411e80     	ldr	x0, [x20, #0x238]
    32cc: f90013f5     	str	x21, [sp, #0x20]
    32d0: d63f0020     	blr	x1
    32d4: f9412281     	ldr	x1, [x20, #0x240]
    32d8: f9525a62     	ldr	x2, [x19, #0x24b0]
    32dc: d63f0040     	blr	x2
    32e0: b40003c0     	cbz	x0, 0x3358 <_F6e732d7370692d736572766963652d63616c6c_ns_spi_service_call_0+0xb4>
    32e4: 91080283     	add	x3, x20, #0x200
    32e8: f94d3a62     	ldr	x2, [x19, #0x1a70]
    32ec: 910103a1     	add	x1, x29, #0x40
    32f0: d2800040     	mov	x0, #0x2                ; =2
    32f4: 3cc9807f     	ldur	q31, [x3, #0x98]
    32f8: 3d8013bf     	str	q31, [x29, #0x40]
    32fc: d63f0040     	blr	x2
    3300: f9414a83     	ldr	x3, [x20, #0x290]
    3304: aa0003e4     	mov	x4, x0
    3308: 910143a1     	add	x1, x29, #0x50
    330c: d2800040     	mov	x0, #0x2                ; =2
    3310: f94d3a62     	ldr	x2, [x19, #0x1a70]
    3314: a90513a3     	stp	x3, x4, [x29, #0x50]
    3318: d63f0040     	blr	x2
    331c: f9413e80     	ldr	x0, [x20, #0x278]
    3320: f953ce61     	ldr	x1, [x19, #0x2798]
    3324: d63f0020     	blr	x1
    3328: aa0003e3     	mov	x3, x0
    332c: f949ce62     	ldr	x2, [x19, #0x1398]
    3330: d2800020     	mov	x0, #0x1                ; =1
    3334: 9100e3a1     	add	x1, x29, #0x38
    3338: f9001fa3     	str	x3, [x29, #0x38]
    333c: d63f0040     	blr	x2
    3340: aa0003f5     	mov	x21, x0
    3344: a94153f3     	ldp	x19, x20, [sp, #0x10]
    3348: aa1503e0     	mov	x0, x21
    334c: f94013f5     	ldr	x21, [sp, #0x20]
    3350: a8c77bfd     	ldp	x29, x30, [sp], #0x70
    3354: d65f03c0     	ret
    3358: f9411e80     	ldr	x0, [x20, #0x238]
    335c: f953ce61     	ldr	x1, [x19, #0x2798]
    3360: d63f0020     	blr	x1
    3364: f9412681     	ldr	x1, [x20, #0x248]
    3368: f9525a62     	ldr	x2, [x19, #0x24b0]
    336c: d63f0040     	blr	x2
    3370: f953ce61     	ldr	x1, [x19, #0x2798]
    3374: b4000200     	cbz	x0, 0x33b4 <_F6e732d7370692d736572766963652d63616c6c_ns_spi_service_call_0+0x110>
    3378: f9413e80     	ldr	x0, [x20, #0x278]
    337c: d63f0020     	blr	x1
    3380: f9414683     	ldr	x3, [x20, #0x288]
    3384: aa0003e4     	mov	x4, x0
    3388: 910143a1     	add	x1, x29, #0x50
    338c: d2800040     	mov	x0, #0x2                ; =2
    3390: f94d3a62     	ldr	x2, [x19, #0x1a70]
    3394: a90513a3     	stp	x3, x4, [x29, #0x50]
    3398: d63f0040     	blr	x2
    339c: aa0003f5     	mov	x21, x0
    33a0: a94153f3     	ldp	x19, x20, [sp, #0x10]
    33a4: aa1503e0     	mov	x0, x21
    33a8: f94013f5     	ldr	x21, [sp, #0x20]
    33ac: a8c77bfd     	ldp	x29, x30, [sp], #0x70
    33b0: d65f03c0     	ret
    33b4: f9411e80     	ldr	x0, [x20, #0x238]
    33b8: d63f0020     	blr	x1
    33bc: f9412a81     	ldr	x1, [x20, #0x250]
    33c0: f9525a62     	ldr	x2, [x19, #0x24b0]
    33c4: d63f0040     	blr	x2
    33c8: b4000360     	cbz	x0, 0x3434 <_F6e732d7370692d736572766963652d63616c6c_ns_spi_service_call_0+0x190>
    33cc: f9413a83     	ldr	x3, [x20, #0x270]
    33d0: 9100e3a1     	add	x1, x29, #0x38
    33d4: d2800020     	mov	x0, #0x1                ; =1
    33d8: f94d3a62     	ldr	x2, [x19, #0x1a70]
    33dc: f9001fa3     	str	x3, [x29, #0x38]
    33e0: d63f0040     	blr	x2
    33e4: f9414283     	ldr	x3, [x20, #0x280]
    33e8: 910103a1     	add	x1, x29, #0x40
    33ec: d2800020     	mov	x0, #0x1                ; =1
    33f0: f94d3a62     	ldr	x2, [x19, #0x1a70]
    33f4: f90023a3     	str	x3, [x29, #0x40]
    33f8: d63f0040     	blr	x2
    33fc: f94afa61     	ldr	x1, [x19, #0x15f0]
    3400: d28000c0     	mov	x0, #0x6                ; =6
    3404: d63f0020     	blr	x1
    3408: f9413e80     	ldr	x0, [x20, #0x278]
    340c: f953ce61     	ldr	x1, [x19, #0x2798]
    3410: d63f0020     	blr	x1
    3414: aa0003e3     	mov	x3, x0
    3418: f949ce62     	ldr	x2, [x19, #0x1398]
    341c: d2800020     	mov	x0, #0x1                ; =1
    3420: 910143a1     	add	x1, x29, #0x50
    3424: f9002ba3     	str	x3, [x29, #0x50]
    3428: d63f0040     	blr	x2
    342c: aa0003f5     	mov	x21, x0
    3430: 17ffffc5     	b	0x3344 <_F6e732d7370692d736572766963652d63616c6c_ns_spi_service_call_0+0xa0>
    3434: f9411e80     	ldr	x0, [x20, #0x238]
    3438: f953ce61     	ldr	x1, [x19, #0x2798]
    343c: d63f0020     	blr	x1
    3440: f9412e81     	ldr	x1, [x20, #0x258]
    3444: f9525a62     	ldr	x2, [x19, #0x24b0]
    3448: d63f0040     	blr	x2
    344c: f953ce61     	ldr	x1, [x19, #0x2798]
    3450: aa0003f5     	mov	x21, x0
    3454: b40000c0     	cbz	x0, 0x346c <_F6e732d7370692d736572766963652d63616c6c_ns_spi_service_call_0+0x1c8>
    3458: f9413e80     	ldr	x0, [x20, #0x278]
    345c: d63f0020     	blr	x1
    3460: f9413a83     	ldr	x3, [x20, #0x270]
    3464: aa0003e4     	mov	x4, x0
    3468: 17ffffc8     	b	0x3388 <_F6e732d7370692d736572766963652d63616c6c_ns_spi_service_call_0+0xe4>
    346c: f9411e80     	ldr	x0, [x20, #0x238]
    3470: d63f0020     	blr	x1
    3474: 3dc09a9f     	ldr	q31, [x20, #0x260]
    3478: aa0003e3     	mov	x3, x0
    347c: 910143a1     	add	x1, x29, #0x50
    3480: d2800060     	mov	x0, #0x3                ; =3
    3484: f94d3a62     	ldr	x2, [x19, #0x1a70]
    3488: f90033a3     	str	x3, [x29, #0x60]
    348c: 3d8017bf     	str	q31, [x29, #0x50]
    3490: d63f0040     	blr	x2
    3494: 17ffffac     	b	0x3344 <_F6e732d7370692d736572766963652d63616c6c_ns_spi_service_call_0+0xa0>
    3498: d503201f     	nop
    349c: d503201f     	nop

00000000000034a0 <_F6e732d696e2d6563686f2d61726561_ns_in_echo_area_0>:
    34a0: a9bc7bfd     	stp	x29, x30, [sp, #-0x40]!
    34a4: 910003fd     	mov	x29, sp
    34a8: a9025bf5     	stp	x21, x22, [sp, #0x20]
    34ac: f0000075     	adrp	x21, 0x12000 <_d_reloc+0x308>
    34b0: 912da2b5     	add	x21, x21, #0xb68
    34b4: a90153f3     	stp	x19, x20, [sp, #0x10]
    34b8: d0000074     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    34bc: 9133e294     	add	x20, x20, #0xcf8
    34c0: f94002b6     	ldr	x22, [x21]
    34c4: f9415680     	ldr	x0, [x20, #0x2a8]
    34c8: f953cec1     	ldr	x1, [x22, #0x2798]
    34cc: d63f0020     	blr	x1
    34d0: aa0003f3     	mov	x19, x0
    34d4: b40000c0     	cbz	x0, 0x34ec <_F6e732d696e2d6563686f2d61726561_ns_in_echo_area_0+0x4c>
    34d8: aa1303e0     	mov	x0, x19
    34dc: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    34e0: a94153f3     	ldp	x19, x20, [sp, #0x10]
    34e4: a8c47bfd     	ldp	x29, x30, [sp], #0x40
    34e8: d65f03c0     	ret
    34ec: f9415a80     	ldr	x0, [x20, #0x2b0]
    34f0: f953cec1     	ldr	x1, [x22, #0x2798]
    34f4: d63f0020     	blr	x1
    34f8: b40000a0     	cbz	x0, 0x350c <_F6e732d696e2d6563686f2d61726561_ns_in_echo_area_0+0x6c>
    34fc: f9497ec0     	ldr	x0, [x22, #0x12f8]
    3500: d63f0000     	blr	x0
    3504: aa0003f3     	mov	x19, x0
    3508: b5fffe80     	cbnz	x0, 0x34d8 <_F6e732d696e2d6563686f2d61726561_ns_in_echo_area_0+0x38>
    350c: f94a4ec0     	ldr	x0, [x22, #0x1498]
    3510: d63f0000     	blr	x0
    3514: f9416281     	ldr	x1, [x20, #0x2c0]
    3518: d2800002     	mov	x2, #0x0                ; =0
    351c: f9446ac3     	ldr	x3, [x22, #0x8d0]
    3520: d63f0060     	blr	x3
    3524: aa0003f3     	mov	x19, x0
    3528: b5fffd80     	cbnz	x0, 0x34d8 <_F6e732d696e2d6563686f2d61726561_ns_in_echo_area_0+0x38>
    352c: f949eec0     	ldr	x0, [x22, #0x13d8]
    3530: d63f0000     	blr	x0
    3534: f954c2c2     	ldr	x2, [x22, #0x2980]
    3538: d2800001     	mov	x1, #0x0                ; =0
    353c: d63f0040     	blr	x2
    3540: b4fffcc0     	cbz	x0, 0x34d8 <_F6e732d696e2d6563686f2d61726561_ns_in_echo_area_0+0x38>
    3544: f94a4ec0     	ldr	x0, [x22, #0x1498]
    3548: d63f0000     	blr	x0
    354c: f9416681     	ldr	x1, [x20, #0x2c8]
    3550: d2800002     	mov	x2, #0x0                ; =0
    3554: f9446ac3     	ldr	x3, [x22, #0x8d0]
    3558: d63f0060     	blr	x3
    355c: b4000420     	cbz	x0, 0x35e0 <_F6e732d696e2d6563686f2d61726561_ns_in_echo_area_0+0x140>
    3560: f94a4ec0     	ldr	x0, [x22, #0x1498]
    3564: f9001bb7     	str	x23, [x29, #0x30]
    3568: d63f0000     	blr	x0
    356c: 51000801     	sub	w1, w0, #0x2
    3570: f240043f     	tst	x1, #0x3
    3574: 54000801     	b.ne	0x3674 <_F6e732d696e2d6563686f2d61726561_ns_in_echo_area_0+0x1d4>
    3578: 9342fc01     	asr	x1, x0, #2
    357c: d2fc0002     	mov	x2, #-0x2000000000000000 ; =-2305843009213693952
    3580: eb02003f     	cmp	x1, x2
    3584: 54000780     	b.eq	0x3674 <_F6e732d696e2d6563686f2d61726561_ns_in_echo_area_0+0x1d4>
    3588: d37ef420     	lsl	x0, x1, #2
    358c: d1000800     	sub	x0, x0, #0x2
    3590: f9446ac3     	ldr	x3, [x22, #0x8d0]
    3594: d2800002     	mov	x2, #0x0                ; =0
    3598: f9416681     	ldr	x1, [x20, #0x2c8]
    359c: d63f0060     	blr	x3
    35a0: f94a4ec1     	ldr	x1, [x22, #0x1498]
    35a4: aa0003f7     	mov	x23, x0
    35a8: d63f0020     	blr	x1
    35ac: f9416681     	ldr	x1, [x20, #0x2c8]
    35b0: d2800002     	mov	x2, #0x0                ; =0
    35b4: f9446ac3     	ldr	x3, [x22, #0x8d0]
    35b8: d63f0060     	blr	x3
    35bc: f954c2c2     	ldr	x2, [x22, #0x2980]
    35c0: aa0003e1     	mov	x1, x0
    35c4: aa1703e0     	mov	x0, x23
    35c8: d63f0040     	blr	x2
    35cc: b4000080     	cbz	x0, 0x35dc <_F6e732d696e2d6563686f2d61726561_ns_in_echo_area_0+0x13c>
    35d0: f9401bb7     	ldr	x23, [x29, #0x30]
    35d4: aa0003f3     	mov	x19, x0
    35d8: 17ffffc0     	b	0x34d8 <_F6e732d696e2d6563686f2d61726561_ns_in_echo_area_0+0x38>
    35dc: f9401bb7     	ldr	x23, [x29, #0x30]
    35e0: f94a4ec0     	ldr	x0, [x22, #0x1498]
    35e4: d63f0000     	blr	x0
    35e8: f9416a81     	ldr	x1, [x20, #0x2d0]
    35ec: d2800002     	mov	x2, #0x0                ; =0
    35f0: f9446ac3     	ldr	x3, [x22, #0x8d0]
    35f4: d63f0060     	blr	x3
    35f8: b4fff700     	cbz	x0, 0x34d8 <_F6e732d696e2d6563686f2d61726561_ns_in_echo_area_0+0x38>
    35fc: f94a4ec0     	ldr	x0, [x22, #0x1498]
    3600: d63f0000     	blr	x0
    3604: 51000801     	sub	w1, w0, #0x2
    3608: f240043f     	tst	x1, #0x3
    360c: 540003c1     	b.ne	0x3684 <_F6e732d696e2d6563686f2d61726561_ns_in_echo_area_0+0x1e4>
    3610: 9342fc01     	asr	x1, x0, #2
    3614: d2fc0002     	mov	x2, #-0x2000000000000000 ; =-2305843009213693952
    3618: eb02003f     	cmp	x1, x2
    361c: 54000340     	b.eq	0x3684 <_F6e732d696e2d6563686f2d61726561_ns_in_echo_area_0+0x1e4>
    3620: d37ef420     	lsl	x0, x1, #2
    3624: d1000800     	sub	x0, x0, #0x2
    3628: f9446ac3     	ldr	x3, [x22, #0x8d0]
    362c: d2800002     	mov	x2, #0x0                ; =0
    3630: f9416a81     	ldr	x1, [x20, #0x2d0]
    3634: d63f0060     	blr	x3
    3638: f94a4ec1     	ldr	x1, [x22, #0x1498]
    363c: aa0003f3     	mov	x19, x0
    3640: d63f0020     	blr	x1
    3644: f9416a81     	ldr	x1, [x20, #0x2d0]
    3648: d2800002     	mov	x2, #0x0                ; =0
    364c: f9446ac3     	ldr	x3, [x22, #0x8d0]
    3650: d63f0060     	blr	x3
    3654: f954c2c2     	ldr	x2, [x22, #0x2980]
    3658: aa0003e1     	mov	x1, x0
    365c: aa1303e0     	mov	x0, x19
    3660: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    3664: a94153f3     	ldp	x19, x20, [sp, #0x10]
    3668: aa0203f0     	mov	x16, x2
    366c: a8c47bfd     	ldp	x29, x30, [sp], #0x40
    3670: d61f0200     	br	x16
    3674: f94002a1     	ldr	x1, [x21]
    3678: f9534021     	ldr	x1, [x1, #0x2680]
    367c: d63f0020     	blr	x1
    3680: 17ffffc4     	b	0x3590 <_F6e732d696e2d6563686f2d61726561_ns_in_echo_area_0+0xf0>
    3684: f94002a1     	ldr	x1, [x21]
    3688: f9534021     	ldr	x1, [x1, #0x2680]
    368c: d63f0020     	blr	x1
    3690: 17ffffe6     	b	0x3628 <_F6e732d696e2d6563686f2d61726561_ns_in_echo_area_0+0x188>
    3694: d503201f     	nop
    3698: d503201f     	nop
    369c: d503201f     	nop

00000000000036a0 <_F6e732d7075742d776f726b696e672d74657874_ns_put_working_text_0>:
    36a0: a9bd7bfd     	stp	x29, x30, [sp, #-0x30]!
    36a4: 910003fd     	mov	x29, sp
    36a8: 910083a1     	add	x1, x29, #0x20
    36ac: d2800020     	mov	x0, #0x1                ; =1
    36b0: f0000062     	adrp	x2, 0x12000 <_d_reloc+0x308>
    36b4: 912da042     	add	x2, x2, #0xb68
    36b8: a90153f3     	stp	x19, x20, [sp, #0x10]
    36bc: d0000073     	adrp	x19, 0x11000 <_text_data_reloc_blob+0x118d>
    36c0: 9133e273     	add	x19, x19, #0xcf8
    36c4: f9400054     	ldr	x20, [x2]
    36c8: f9417263     	ldr	x3, [x19, #0x2e0]
    36cc: f94d3a82     	ldr	x2, [x20, #0x1a70]
    36d0: f90013a3     	str	x3, [x29, #0x20]
    36d4: d63f0040     	blr	x2
    36d8: f94d3a82     	ldr	x2, [x20, #0x1a70]
    36dc: b4000120     	cbz	x0, 0x3700 <_F6e732d7075742d776f726b696e672d74657874_ns_put_working_text_0+0x60>
    36e0: 9100a3a1     	add	x1, x29, #0x28
    36e4: d2800020     	mov	x0, #0x1                ; =1
    36e8: f9417a63     	ldr	x3, [x19, #0x2f0]
    36ec: f90017a3     	str	x3, [x29, #0x28]
    36f0: d63f0040     	blr	x2
    36f4: a94153f3     	ldp	x19, x20, [sp, #0x10]
    36f8: a8c37bfd     	ldp	x29, x30, [sp], #0x30
    36fc: d65f03c0     	ret
    3700: f9417663     	ldr	x3, [x19, #0x2e8]
    3704: 9100a3a1     	add	x1, x29, #0x28
    3708: d2800020     	mov	x0, #0x1                ; =1
    370c: f90017a3     	str	x3, [x29, #0x28]
    3710: d63f0040     	blr	x2
    3714: a94153f3     	ldp	x19, x20, [sp, #0x10]
    3718: a8c37bfd     	ldp	x29, x30, [sp], #0x30
    371c: d65f03c0     	ret

0000000000003720 <_F6e732d756e7075742d776f726b696e672d74657874_ns_unput_working_text_0>:
    3720: f0000063     	adrp	x3, 0x12000 <_d_reloc+0x308>
    3724: 912da063     	add	x3, x3, #0xb68
    3728: d2800020     	mov	x0, #0x1                ; =1
    372c: a9be7bfd     	stp	x29, x30, [sp, #-0x20]!
    3730: 910003fd     	mov	x29, sp
    3734: 910063a1     	add	x1, x29, #0x18
    3738: d0000062     	adrp	x2, 0x11000 <_text_data_reloc_blob+0x118d>
    373c: 9133e042     	add	x2, x2, #0xcf8
    3740: f9400064     	ldr	x4, [x3]
    3744: f9417c43     	ldr	x3, [x2, #0x2f8]
    3748: f94d3882     	ldr	x2, [x4, #0x1a70]
    374c: f9000fa3     	str	x3, [x29, #0x18]
    3750: d63f0040     	blr	x2
    3754: a8c27bfd     	ldp	x29, x30, [sp], #0x20
    3758: d65f03c0     	ret
    375c: d503201f     	nop

0000000000003760 <_F6e732d696e736572742d776f726b696e672d74657874_ns_insert_working_text_0>:
    3760: a9ba7bfd     	stp	x29, x30, [sp, #-0x60]!
    3764: 910003fd     	mov	x29, sp
    3768: 9100e3a1     	add	x1, x29, #0x38
    376c: d2800020     	mov	x0, #0x1                ; =1
    3770: f0000062     	adrp	x2, 0x12000 <_d_reloc+0x308>
    3774: 912da042     	add	x2, x2, #0xb68
    3778: a90153f3     	stp	x19, x20, [sp, #0x10]
    377c: d0000074     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    3780: 9133e294     	add	x20, x20, #0xcf8
    3784: f9400053     	ldr	x19, [x2]
    3788: f9417e83     	ldr	x3, [x20, #0x2f8]
    378c: f94d3a62     	ldr	x2, [x19, #0x1a70]
    3790: f90013f5     	str	x21, [sp, #0x20]
    3794: f9001fa3     	str	x3, [x29, #0x38]
    3798: d63f0040     	blr	x2
    379c: f94a4e60     	ldr	x0, [x19, #0x1498]
    37a0: d63f0000     	blr	x0
    37a4: f94a4e61     	ldr	x1, [x19, #0x1498]
    37a8: aa0003f5     	mov	x21, x0
    37ac: d63f0020     	blr	x1
    37b0: f94c0e65     	ldr	x5, [x19, #0x1818]
    37b4: d2800004     	mov	x4, #0x0                ; =0
    37b8: d2800003     	mov	x3, #0x0                ; =0
    37bc: aa0003e1     	mov	x1, x0
    37c0: d2800002     	mov	x2, #0x0                ; =0
    37c4: aa1503e0     	mov	x0, x21
    37c8: d63f00a0     	blr	x5
    37cc: f9402a64     	ldr	x4, [x19, #0x50]
    37d0: 52800003     	mov	w3, #0x0                ; =0
    37d4: aa0003f5     	mov	x21, x0
    37d8: d2800002     	mov	x2, #0x0                ; =0
    37dc: aa0003e1     	mov	x1, x0
    37e0: f9418a80     	ldr	x0, [x20, #0x310]
    37e4: d63f0080     	blr	x4
    37e8: f9419680     	ldr	x0, [x20, #0x328]
    37ec: f953ce61     	ldr	x1, [x19, #0x2798]
    37f0: d63f0020     	blr	x1
    37f4: f9419a84     	ldr	x4, [x20, #0x330]
    37f8: aa0003e2     	mov	x2, x0
    37fc: d2800060     	mov	x0, #0x3                ; =3
    3800: 910103a1     	add	x1, x29, #0x40
    3804: f9419e83     	ldr	x3, [x20, #0x338]
    3808: a90413a2     	stp	x2, x4, [x29, #0x40]
    380c: f94a7e62     	ldr	x2, [x19, #0x14f8]
    3810: f9002ba3     	str	x3, [x29, #0x50]
    3814: d63f0040     	blr	x2
    3818: f9418e81     	ldr	x1, [x20, #0x318]
    381c: aa0003e2     	mov	x2, x0
    3820: aa1503e0     	mov	x0, x21
    3824: f94bd263     	ldr	x3, [x19, #0x17a0]
    3828: d63f0060     	blr	x3
    382c: f94013f5     	ldr	x21, [sp, #0x20]
    3830: a94153f3     	ldp	x19, x20, [sp, #0x10]
    3834: a8c67bfd     	ldp	x29, x30, [sp], #0x60
    3838: d65f03c0     	ret
    383c: d503201f     	nop

0000000000003840 <_F6e732d6563686f2d776f726b696e672d74657874_ns_echo_working_text_0>:
    3840: a9b97bfd     	stp	x29, x30, [sp, #-0x70]!
    3844: 910003fd     	mov	x29, sp
    3848: 9100e3a1     	add	x1, x29, #0x38
    384c: d2800020     	mov	x0, #0x1                ; =1
    3850: f0000062     	adrp	x2, 0x12000 <_d_reloc+0x308>
    3854: 912da042     	add	x2, x2, #0xb68
    3858: a90153f3     	stp	x19, x20, [sp, #0x10]
    385c: d0000074     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    3860: 9133e294     	add	x20, x20, #0xcf8
    3864: a9025bf5     	stp	x21, x22, [sp, #0x20]
    3868: f9400053     	ldr	x19, [x2]
    386c: f9417e83     	ldr	x3, [x20, #0x2f8]
    3870: f94d3a62     	ldr	x2, [x19, #0x1a70]
    3874: f9001fa3     	str	x3, [x29, #0x38]
    3878: d63f0040     	blr	x2
    387c: f9497e60     	ldr	x0, [x19, #0x12f8]
    3880: d63f0000     	blr	x0
    3884: f9527a61     	ldr	x1, [x19, #0x24f0]
    3888: aa0003f5     	mov	x21, x0
    388c: d63f0020     	blr	x1
    3890: f9403262     	ldr	x2, [x19, #0x60]
    3894: aa0003f6     	mov	x22, x0
    3898: d2800001     	mov	x1, #0x0                ; =0
    389c: f941a280     	ldr	x0, [x20, #0x340]
    38a0: d63f0040     	blr	x2
    38a4: f9419680     	ldr	x0, [x20, #0x328]
    38a8: f953ce61     	ldr	x1, [x19, #0x2798]
    38ac: d63f0020     	blr	x1
    38b0: f9527a61     	ldr	x1, [x19, #0x24f0]
    38b4: d63f0020     	blr	x1
    38b8: f9402a64     	ldr	x4, [x19, #0x50]
    38bc: 52800003     	mov	w3, #0x0                ; =0
    38c0: d2800002     	mov	x2, #0x0                ; =0
    38c4: aa0003e1     	mov	x1, x0
    38c8: f9418a80     	ldr	x0, [x20, #0x310]
    38cc: d63f0080     	blr	x4
    38d0: f9419680     	ldr	x0, [x20, #0x328]
    38d4: f953ce61     	ldr	x1, [x19, #0x2798]
    38d8: d63f0020     	blr	x1
    38dc: aa0003e3     	mov	x3, x0
    38e0: f9523e62     	ldr	x2, [x19, #0x2478]
    38e4: d2800040     	mov	x0, #0x2                ; =2
    38e8: 910103a1     	add	x1, x29, #0x40
    38ec: a9040fb5     	stp	x21, x3, [x29, #0x40]
    38f0: d63f0040     	blr	x2
    38f4: f953ce61     	ldr	x1, [x19, #0x2798]
    38f8: aa0003f5     	mov	x21, x0
    38fc: f9418a80     	ldr	x0, [x20, #0x310]
    3900: d63f0020     	blr	x1
    3904: aa0003e3     	mov	x3, x0
    3908: f9537a62     	ldr	x2, [x19, #0x26f0]
    390c: 910143a1     	add	x1, x29, #0x50
    3910: d2800040     	mov	x0, #0x2                ; =2
    3914: a9050fb6     	stp	x22, x3, [x29, #0x50]
    3918: d63f0040     	blr	x2
    391c: f9419a82     	ldr	x2, [x20, #0x330]
    3920: aa1503e4     	mov	x4, x21
    3924: aa0003e1     	mov	x1, x0
    3928: aa1603e0     	mov	x0, x22
    392c: f9419e83     	ldr	x3, [x20, #0x338]
    3930: f9443e65     	ldr	x5, [x19, #0x878]
    3934: d63f00a0     	blr	x5
    3938: f941ae83     	ldr	x3, [x20, #0x358]
    393c: 910183a1     	add	x1, x29, #0x60
    3940: d2800040     	mov	x0, #0x2                ; =2
    3944: f9498a62     	ldr	x2, [x19, #0x1310]
    3948: a90657a3     	stp	x3, x21, [x29, #0x60]
    394c: d63f0040     	blr	x2
    3950: f9401662     	ldr	x2, [x19, #0x28]
    3954: aa0003e1     	mov	x1, x0
    3958: d28000c0     	mov	x0, #0x6                ; =6
    395c: aa0103f3     	mov	x19, x1
    3960: d63f0040     	blr	x2
    3964: aa1303e0     	mov	x0, x19
    3968: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    396c: a94153f3     	ldp	x19, x20, [sp, #0x10]
    3970: a8c77bfd     	ldp	x29, x30, [sp], #0x70
    3974: d65f03c0     	ret
    3978: d503201f     	nop
    397c: d503201f     	nop

0000000000003980 <_F6e732d64656c6574652d776f726b696e672d74657874_ns_delete_working_text_0>:
    3980: a9bb7bfd     	stp	x29, x30, [sp, #-0x50]!
    3984: 910003fd     	mov	x29, sp
    3988: a9025bf5     	stp	x21, x22, [sp, #0x20]
    398c: f0000075     	adrp	x21, 0x12000 <_d_reloc+0x308>
    3990: 912da2b5     	add	x21, x21, #0xb68
    3994: a90153f3     	stp	x19, x20, [sp, #0x10]
    3998: d0000074     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    399c: 9133e294     	add	x20, x20, #0xcf8
    39a0: f94002b3     	ldr	x19, [x21]
    39a4: f9418a80     	ldr	x0, [x20, #0x310]
    39a8: f953ce61     	ldr	x1, [x19, #0x2798]
    39ac: d63f0020     	blr	x1
    39b0: f94c1261     	ldr	x1, [x19, #0x1820]
    39b4: d63f0020     	blr	x1
    39b8: b4000540     	cbz	x0, 0x3a60 <_F6e732d64656c6574652d776f726b696e672d74657874_ns_delete_working_text_0+0xe0>
    39bc: f9418a80     	ldr	x0, [x20, #0x310]
    39c0: f953ce61     	ldr	x1, [x19, #0x2798]
    39c4: d63f0020     	blr	x1
    39c8: f94bf661     	ldr	x1, [x19, #0x17e8]
    39cc: d63f0020     	blr	x1
    39d0: b4000480     	cbz	x0, 0x3a60 <_F6e732d64656c6574652d776f726b696e672d74657874_ns_delete_working_text_0+0xe0>
    39d4: f9402660     	ldr	x0, [x19, #0x48]
    39d8: d63f0000     	blr	x0
    39dc: f9418a80     	ldr	x0, [x20, #0x310]
    39e0: f953ce61     	ldr	x1, [x19, #0x2798]
    39e4: d63f0020     	blr	x1
    39e8: f94bf661     	ldr	x1, [x19, #0x17e8]
    39ec: d63f0020     	blr	x1
    39f0: f94c2a61     	ldr	x1, [x19, #0x1850]
    39f4: d63f0020     	blr	x1
    39f8: f9418a80     	ldr	x0, [x20, #0x310]
    39fc: f953ce61     	ldr	x1, [x19, #0x2798]
    3a00: d63f0020     	blr	x1
    3a04: f94bd263     	ldr	x3, [x19, #0x17a0]
    3a08: d2800002     	mov	x2, #0x0                ; =0
    3a0c: f9418e81     	ldr	x1, [x20, #0x318]
    3a10: d63f0060     	blr	x3
    3a14: f9418a80     	ldr	x0, [x20, #0x310]
    3a18: f953ce61     	ldr	x1, [x19, #0x2798]
    3a1c: d63f0020     	blr	x1
    3a20: f94c0a61     	ldr	x1, [x19, #0x1810]
    3a24: d63f0020     	blr	x1
    3a28: f9401661     	ldr	x1, [x19, #0x28]
    3a2c: d28000c0     	mov	x0, #0x6                ; =6
    3a30: d63f0020     	blr	x1
    3a34: f9418a80     	ldr	x0, [x20, #0x310]
    3a38: 52800003     	mov	w3, #0x0                ; =0
    3a3c: d2800002     	mov	x2, #0x0                ; =0
    3a40: d2800001     	mov	x1, #0x0                ; =0
    3a44: f9402a64     	ldr	x4, [x19, #0x50]
    3a48: d63f0080     	blr	x4
    3a4c: d2800000     	mov	x0, #0x0                ; =0
    3a50: a94153f3     	ldp	x19, x20, [sp, #0x10]
    3a54: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    3a58: a8c57bfd     	ldp	x29, x30, [sp], #0x50
    3a5c: d65f03c0     	ret
    3a60: f9418a80     	ldr	x0, [x20, #0x310]
    3a64: f953ce61     	ldr	x1, [x19, #0x2798]
    3a68: d63f0020     	blr	x1
    3a6c: 51000802     	sub	w2, w0, #0x2
    3a70: f240045f     	tst	x2, #0x3
    3a74: 540004e1     	b.ne	0x3b10 <_F6e732d64656c6574652d776f726b696e672d74657874_ns_delete_working_text_0+0x190>
    3a78: f9402280     	ldr	x0, [x20, #0x40]
    3a7c: b4fffdc0     	cbz	x0, 0x3a34 <_F6e732d64656c6574652d776f726b696e672d74657874_ns_delete_working_text_0+0xb4>
    3a80: f9497e60     	ldr	x0, [x19, #0x12f8]
    3a84: d63f0000     	blr	x0
    3a88: f9403262     	ldr	x2, [x19, #0x60]
    3a8c: aa0003f5     	mov	x21, x0
    3a90: d2800001     	mov	x1, #0x0                ; =0
    3a94: f941a280     	ldr	x0, [x20, #0x340]
    3a98: d63f0040     	blr	x2
    3a9c: f9527a61     	ldr	x1, [x19, #0x24f0]
    3aa0: aa1503e0     	mov	x0, x21
    3aa4: d63f0020     	blr	x1
    3aa8: f953ce61     	ldr	x1, [x19, #0x2798]
    3aac: aa0003f6     	mov	x22, x0
    3ab0: f9418a80     	ldr	x0, [x20, #0x310]
    3ab4: d63f0020     	blr	x1
    3ab8: aa0003e3     	mov	x3, x0
    3abc: f9537662     	ldr	x2, [x19, #0x26e8]
    3ac0: 9100c3a1     	add	x1, x29, #0x30
    3ac4: d2800040     	mov	x0, #0x2                ; =2
    3ac8: a9030fb6     	stp	x22, x3, [x29, #0x30]
    3acc: d63f0040     	blr	x2
    3ad0: f9521663     	ldr	x3, [x19, #0x2428]
    3ad4: aa0003e2     	mov	x2, x0
    3ad8: d2800041     	mov	x1, #0x2                ; =2
    3adc: aa1503e0     	mov	x0, x21
    3ae0: d63f0060     	blr	x3
    3ae4: f941ae83     	ldr	x3, [x20, #0x358]
    3ae8: aa0003e4     	mov	x4, x0
    3aec: 910103a1     	add	x1, x29, #0x40
    3af0: d2800040     	mov	x0, #0x2                ; =2
    3af4: f9498a62     	ldr	x2, [x19, #0x1310]
    3af8: a90413a3     	stp	x3, x4, [x29, #0x40]
    3afc: d63f0040     	blr	x2
    3b00: f9401661     	ldr	x1, [x19, #0x28]
    3b04: d28000c0     	mov	x0, #0x6                ; =6
    3b08: d63f0020     	blr	x1
    3b0c: 17ffffca     	b	0x3a34 <_F6e732d64656c6574652d776f726b696e672d74657874_ns_delete_working_text_0+0xb4>
    3b10: 51001401     	sub	w1, w0, #0x5
    3b14: f240083f     	tst	x1, #0x7
    3b18: 54fff8e1     	b.ne	0x3a34 <_F6e732d64656c6574652d776f726b696e672d74657874_ns_delete_working_text_0+0xb4>
    3b1c: f94002a2     	ldr	x2, [x21]
    3b20: 52800041     	mov	w1, #0x2                ; =2
    3b24: f9400442     	ldr	x2, [x2, #0x8]
    3b28: d63f0040     	blr	x2
    3b2c: 3707fa60     	tbnz	w0, #0x0, 0x3a78 <_F6e732d64656c6574652d776f726b696e672d74657874_ns_delete_working_text_0+0xf8>
    3b30: 17ffffc1     	b	0x3a34 <_F6e732d64656c6574652d776f726b696e672d74657874_ns_delete_working_text_0+0xb4>
    3b34: d503201f     	nop
    3b38: d503201f     	nop
    3b3c: d503201f     	nop

0000000000003b40 <_F6e732d696e736572742d66696c65_ns_insert_file_0>:
    3b40: a9ba7bfd     	stp	x29, x30, [sp, #-0x60]!
    3b44: 910003fd     	mov	x29, sp
    3b48: a9025bf5     	stp	x21, x22, [sp, #0x20]
    3b4c: d0000075     	adrp	x21, 0x11000 <_text_data_reloc_blob+0x118d>
    3b50: 9133e2b5     	add	x21, x21, #0xcf8
    3b54: a90153f3     	stp	x19, x20, [sp, #0x10]
    3b58: f94012a0     	ldr	x0, [x21, #0x20]
    3b5c: f9001bf7     	str	x23, [sp, #0x30]
    3b60: f0000077     	adrp	x23, 0x12000 <_d_reloc+0x308>
    3b64: 912da2f7     	add	x23, x23, #0xb68
    3b68: f94002f3     	ldr	x19, [x23]
    3b6c: f953ce61     	ldr	x1, [x19, #0x2798]
    3b70: d63f0020     	blr	x1
    3b74: aa0003f4     	mov	x20, x0
    3b78: 51000c00     	sub	w0, w0, #0x3
    3b7c: f240081f     	tst	x0, #0x7
    3b80: 540007e1     	b.ne	0x3c7c <_F6e732d696e736572742d66696c65_ns_insert_file_0+0x13c>
    3b84: f840d281     	ldur	x1, [x20, #0xd]
    3b88: 52800003     	mov	w3, #0x0                ; =0
    3b8c: d2800002     	mov	x2, #0x0                ; =0
    3b90: f94012a0     	ldr	x0, [x21, #0x20]
    3b94: f9402a64     	ldr	x4, [x19, #0x50]
    3b98: d63f0080     	blr	x4
    3b9c: f9542261     	ldr	x1, [x19, #0x2840]
    3ba0: aa1403e0     	mov	x0, x20
    3ba4: d63f0020     	blr	x1
    3ba8: f9506661     	ldr	x1, [x19, #0x20c8]
    3bac: aa0003f6     	mov	x22, x0
    3bb0: d63f0020     	blr	x1
    3bb4: aa0003f4     	mov	x20, x0
    3bb8: b4000180     	cbz	x0, 0x3be8 <_F6e732d696e736572742d66696c65_ns_insert_file_0+0xa8>
    3bbc: f941caa3     	ldr	x3, [x21, #0x390]
    3bc0: 910143a1     	add	x1, x29, #0x50
    3bc4: d2800040     	mov	x0, #0x2                ; =2
    3bc8: f94d3a62     	ldr	x2, [x19, #0x1a70]
    3bcc: a9055ba3     	stp	x3, x22, [x29, #0x50]
    3bd0: d63f0040     	blr	x2
    3bd4: f9401bf7     	ldr	x23, [sp, #0x30]
    3bd8: a94153f3     	ldp	x19, x20, [sp, #0x10]
    3bdc: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    3be0: a8c67bfd     	ldp	x29, x30, [sp], #0x60
    3be4: d65f03c0     	ret
    3be8: f94a4e60     	ldr	x0, [x19, #0x1498]
    3bec: d63f0000     	blr	x0
    3bf0: f9503265     	ldr	x5, [x19, #0x2060]
    3bf4: aa0003e6     	mov	x6, x0
    3bf8: d2800001     	mov	x1, #0x0                ; =0
    3bfc: aa1603e0     	mov	x0, x22
    3c00: d2800004     	mov	x4, #0x0                ; =0
    3c04: d2800003     	mov	x3, #0x0                ; =0
    3c08: d2800002     	mov	x2, #0x0                ; =0
    3c0c: aa0603f6     	mov	x22, x6
    3c10: d63f00a0     	blr	x5
    3c14: aa0003e1     	mov	x1, x0
    3c18: 51000c00     	sub	w0, w0, #0x3
    3c1c: f240081f     	tst	x0, #0x7
    3c20: 540003e1     	b.ne	0x3c9c <_F6e732d696e736572742d66696c65_ns_insert_file_0+0x15c>
    3c24: f840d021     	ldur	x1, [x1, #0xd]
    3c28: 51000c20     	sub	w0, w1, #0x3
    3c2c: f240081f     	tst	x0, #0x7
    3c30: 54000361     	b.ne	0x3c9c <_F6e732d696e736572742d66696c65_ns_insert_file_0+0x15c>
    3c34: f8405034     	ldur	x20, [x1, #0x5]
    3c38: 910103a1     	add	x1, x29, #0x40
    3c3c: d2800040     	mov	x0, #0x2                ; =2
    3c40: f9537a62     	ldr	x2, [x19, #0x26f0]
    3c44: a90453b6     	stp	x22, x20, [x29, #0x40]
    3c48: d63f0040     	blr	x2
    3c4c: f941c2a3     	ldr	x3, [x21, #0x380]
    3c50: aa0003e4     	mov	x4, x0
    3c54: 910143a1     	add	x1, x29, #0x50
    3c58: d2800040     	mov	x0, #0x2                ; =2
    3c5c: f94d3a62     	ldr	x2, [x19, #0x1a70]
    3c60: a90513a3     	stp	x3, x4, [x29, #0x50]
    3c64: d63f0040     	blr	x2
    3c68: f9401bf7     	ldr	x23, [sp, #0x30]
    3c6c: a94153f3     	ldp	x19, x20, [sp, #0x10]
    3c70: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    3c74: a8c67bfd     	ldp	x29, x30, [sp], #0x60
    3c78: d65f03c0     	ret
    3c7c: b40000d4     	cbz	x20, 0x3c94 <_F6e732d696e736572742d66696c65_ns_insert_file_0+0x154>
    3c80: f94002e2     	ldr	x2, [x23]
    3c84: aa1403e1     	mov	x1, x20
    3c88: f944baa0     	ldr	x0, [x21, #0x970]
    3c8c: f9400042     	ldr	x2, [x2]
    3c90: d63f0040     	blr	x2
    3c94: d2800001     	mov	x1, #0x0                ; =0
    3c98: 17ffffbc     	b	0x3b88 <_F6e732d696e736572742d66696c65_ns_insert_file_0+0x48>
    3c9c: b4fffce1     	cbz	x1, 0x3c38 <_F6e732d696e736572742d66696c65_ns_insert_file_0+0xf8>
    3ca0: f94002e2     	ldr	x2, [x23]
    3ca4: f944baa0     	ldr	x0, [x21, #0x970]
    3ca8: f9400042     	ldr	x2, [x2]
    3cac: d63f0040     	blr	x2
    3cb0: 17ffffe2     	b	0x3c38 <_F6e732d696e736572742d66696c65_ns_insert_file_0+0xf8>
    3cb4: d503201f     	nop
    3cb8: d503201f     	nop
    3cbc: d503201f     	nop

0000000000003cc0 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0>:
    3cc0: a9b97bfd     	stp	x29, x30, [sp, #-0x70]!
    3cc4: 910003fd     	mov	x29, sp
    3cc8: 910103a1     	add	x1, x29, #0x40
    3ccc: d2800020     	mov	x0, #0x1                ; =1
    3cd0: a9025bf5     	stp	x21, x22, [sp, #0x20]
    3cd4: f0000075     	adrp	x21, 0x12000 <_d_reloc+0x308>
    3cd8: 912da2b5     	add	x21, x21, #0xb68
    3cdc: a90153f3     	stp	x19, x20, [sp, #0x10]
    3ce0: d0000074     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    3ce4: 9133e294     	add	x20, x20, #0xcf8
    3ce8: f94002b3     	ldr	x19, [x21]
    3cec: f941ce83     	ldr	x3, [x20, #0x398]
    3cf0: f94d3a62     	ldr	x2, [x19, #0x1a70]
    3cf4: f90023a3     	str	x3, [x29, #0x40]
    3cf8: d63f0040     	blr	x2
    3cfc: f941d280     	ldr	x0, [x20, #0x3a0]
    3d00: f953ce61     	ldr	x1, [x19, #0x2798]
    3d04: d63f0020     	blr	x1
    3d08: b40008e0     	cbz	x0, 0x3e24 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x164>
    3d0c: f94c5e61     	ldr	x1, [x19, #0x18b8]
    3d10: d2800000     	mov	x0, #0x0                ; =0
    3d14: d63f0020     	blr	x1
    3d18: b4000860     	cbz	x0, 0x3e24 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x164>
    3d1c: f941d680     	ldr	x0, [x20, #0x3a8]
    3d20: f953ce61     	ldr	x1, [x19, #0x2798]
    3d24: d63f0020     	blr	x1
    3d28: b4000180     	cbz	x0, 0x3d58 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x98>
    3d2c: f941d680     	ldr	x0, [x20, #0x3a8]
    3d30: f953ce61     	ldr	x1, [x19, #0x2798]
    3d34: d63f0020     	blr	x1
    3d38: f94c0a61     	ldr	x1, [x19, #0x1810]
    3d3c: d63f0020     	blr	x1
    3d40: f9402a64     	ldr	x4, [x19, #0x50]
    3d44: 52800003     	mov	w3, #0x0                ; =0
    3d48: d2800002     	mov	x2, #0x0                ; =0
    3d4c: aa0003e1     	mov	x1, x0
    3d50: f941d680     	ldr	x0, [x20, #0x3a8]
    3d54: d63f0080     	blr	x4
    3d58: f940b683     	ldr	x3, [x20, #0x168]
    3d5c: 910143a1     	add	x1, x29, #0x50
    3d60: d2800020     	mov	x0, #0x1                ; =1
    3d64: f94d3a62     	ldr	x2, [x19, #0x1a70]
    3d68: f9002ba3     	str	x3, [x29, #0x50]
    3d6c: d63f0040     	blr	x2
    3d70: f94a0a60     	ldr	x0, [x19, #0x1410]
    3d74: d63f0000     	blr	x0
    3d78: f94a7661     	ldr	x1, [x19, #0x14e8]
    3d7c: d63f0020     	blr	x1
    3d80: f953ce61     	ldr	x1, [x19, #0x2798]
    3d84: f941d280     	ldr	x0, [x20, #0x3a0]
    3d88: d63f0020     	blr	x1
    3d8c: 51000c01     	sub	w1, w0, #0x3
    3d90: f941d280     	ldr	x0, [x20, #0x3a0]
    3d94: f953ce62     	ldr	x2, [x19, #0x2798]
    3d98: f240083f     	tst	x1, #0x7
    3d9c: 540014a1     	b.ne	0x4030 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x370>
    3da0: f9402281     	ldr	x1, [x20, #0x40]
    3da4: b4001461     	cbz	x1, 0x4030 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x370>
    3da8: d63f0040     	blr	x2
    3dac: 51000c01     	sub	w1, w0, #0x3
    3db0: f240083f     	tst	x1, #0x7
    3db4: 54001ae1     	b.ne	0x4110 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x450>
    3db8: f8405016     	ldur	x22, [x0, #0x5]
    3dbc: f953ce61     	ldr	x1, [x19, #0x2798]
    3dc0: f941d280     	ldr	x0, [x20, #0x3a0]
    3dc4: d63f0020     	blr	x1
    3dc8: 51000c01     	sub	w1, w0, #0x3
    3dcc: f240083f     	tst	x1, #0x7
    3dd0: 54001b01     	b.ne	0x4130 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x470>
    3dd4: f840d003     	ldur	x3, [x0, #0xd]
    3dd8: 910183a1     	add	x1, x29, #0x60
    3ddc: d2800040     	mov	x0, #0x2                ; =2
    3de0: f9535e62     	ldr	x2, [x19, #0x26b8]
    3de4: a9060fb6     	stp	x22, x3, [x29, #0x60]
    3de8: d63f0040     	blr	x2
    3dec: 51000801     	sub	w1, w0, #0x2
    3df0: f240043f     	tst	x1, #0x3
    3df4: 54001260     	b.eq	0x4040 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x380>
    3df8: f94002a1     	ldr	x1, [x21]
    3dfc: f9534021     	ldr	x1, [x1, #0x2680]
    3e00: d63f0020     	blr	x1
    3e04: f94afa61     	ldr	x1, [x19, #0x15f0]
    3e08: d63f0020     	blr	x1
    3e0c: aa0003f5     	mov	x21, x0
    3e10: a94153f3     	ldp	x19, x20, [sp, #0x10]
    3e14: aa1503e0     	mov	x0, x21
    3e18: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    3e1c: a8c77bfd     	ldp	x29, x30, [sp], #0x70
    3e20: d65f03c0     	ret
    3e24: f941d280     	ldr	x0, [x20, #0x3a0]
    3e28: f953ce61     	ldr	x1, [x19, #0x2798]
    3e2c: d63f0020     	blr	x1
    3e30: aa0003e2     	mov	x2, x0
    3e34: f941d680     	ldr	x0, [x20, #0x3a8]
    3e38: f953ce61     	ldr	x1, [x19, #0x2798]
    3e3c: b4001102     	cbz	x2, 0x405c <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x39c>
    3e40: d63f0020     	blr	x1
    3e44: b4001340     	cbz	x0, 0x40ac <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x3ec>
    3e48: f9401260     	ldr	x0, [x19, #0x20]
    3e4c: d63f0000     	blr	x0
    3e50: f94a0a60     	ldr	x0, [x19, #0x1410]
    3e54: d63f0000     	blr	x0
    3e58: f94a7661     	ldr	x1, [x19, #0x14e8]
    3e5c: d63f0020     	blr	x1
    3e60: f953ce61     	ldr	x1, [x19, #0x2798]
    3e64: f941d280     	ldr	x0, [x20, #0x3a0]
    3e68: d63f0020     	blr	x1
    3e6c: 51000c01     	sub	w1, w0, #0x3
    3e70: f941d280     	ldr	x0, [x20, #0x3a0]
    3e74: f953ce62     	ldr	x2, [x19, #0x2798]
    3e78: f240083f     	tst	x1, #0x7
    3e7c: 540002a1     	b.ne	0x3ed0 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x210>
    3e80: f9402281     	ldr	x1, [x20, #0x40]
    3e84: b4000261     	cbz	x1, 0x3ed0 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x210>
    3e88: d63f0040     	blr	x2
    3e8c: 51000c01     	sub	w1, w0, #0x3
    3e90: f240083f     	tst	x1, #0x7
    3e94: 540017e1     	b.ne	0x4190 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x4d0>
    3e98: f8405016     	ldur	x22, [x0, #0x5]
    3e9c: f953ce61     	ldr	x1, [x19, #0x2798]
    3ea0: f941d280     	ldr	x0, [x20, #0x3a0]
    3ea4: d63f0020     	blr	x1
    3ea8: 51000c01     	sub	w1, w0, #0x3
    3eac: f240083f     	tst	x1, #0x7
    3eb0: 54001501     	b.ne	0x4150 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x490>
    3eb4: f840d003     	ldur	x3, [x0, #0xd]
    3eb8: 910183a1     	add	x1, x29, #0x60
    3ebc: d2800040     	mov	x0, #0x2                ; =2
    3ec0: f9535e62     	ldr	x2, [x19, #0x26b8]
    3ec4: a9060fb6     	stp	x22, x3, [x29, #0x60]
    3ec8: d63f0040     	blr	x2
    3ecc: 14000002     	b	0x3ed4 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x214>
    3ed0: d63f0040     	blr	x2
    3ed4: f94a2a61     	ldr	x1, [x19, #0x1450]
    3ed8: d63f0020     	blr	x1
    3edc: f9401661     	ldr	x1, [x19, #0x28]
    3ee0: aa0003f6     	mov	x22, x0
    3ee4: d28000c0     	mov	x0, #0x6                ; =6
    3ee8: d63f0020     	blr	x1
    3eec: f9401260     	ldr	x0, [x19, #0x20]
    3ef0: d63f0000     	blr	x0
    3ef4: f94a0a60     	ldr	x0, [x19, #0x1410]
    3ef8: d63f0000     	blr	x0
    3efc: f94a7661     	ldr	x1, [x19, #0x14e8]
    3f00: d63f0020     	blr	x1
    3f04: f953ce61     	ldr	x1, [x19, #0x2798]
    3f08: f941d280     	ldr	x0, [x20, #0x3a0]
    3f0c: d63f0020     	blr	x1
    3f10: 51000c01     	sub	w1, w0, #0x3
    3f14: f941d280     	ldr	x0, [x20, #0x3a0]
    3f18: f953ce62     	ldr	x2, [x19, #0x2798]
    3f1c: f240083f     	tst	x1, #0x7
    3f20: 54000721     	b.ne	0x4004 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x344>
    3f24: f9402281     	ldr	x1, [x20, #0x40]
    3f28: b40006e1     	cbz	x1, 0x4004 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x344>
    3f2c: f9001bb7     	str	x23, [x29, #0x30]
    3f30: d63f0040     	blr	x2
    3f34: 51000c01     	sub	w1, w0, #0x3
    3f38: f240083f     	tst	x1, #0x7
    3f3c: 540011a1     	b.ne	0x4170 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x4b0>
    3f40: f8405017     	ldur	x23, [x0, #0x5]
    3f44: f953ce61     	ldr	x1, [x19, #0x2798]
    3f48: f941d280     	ldr	x0, [x20, #0x3a0]
    3f4c: d63f0020     	blr	x1
    3f50: 51000c01     	sub	w1, w0, #0x3
    3f54: f240083f     	tst	x1, #0x7
    3f58: 540012c1     	b.ne	0x41b0 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x4f0>
    3f5c: f840d003     	ldur	x3, [x0, #0xd]
    3f60: 910143a1     	add	x1, x29, #0x50
    3f64: d2800040     	mov	x0, #0x2                ; =2
    3f68: f9536262     	ldr	x2, [x19, #0x26c0]
    3f6c: a9050fb7     	stp	x23, x3, [x29, #0x50]
    3f70: d63f0040     	blr	x2
    3f74: 51000801     	sub	w1, w0, #0x2
    3f78: f9401bb7     	ldr	x23, [x29, #0x30]
    3f7c: f240043f     	tst	x1, #0x3
    3f80: 540004a0     	b.eq	0x4014 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x354>
    3f84: f94002a1     	ldr	x1, [x21]
    3f88: f9534421     	ldr	x1, [x1, #0x2688]
    3f8c: d63f0020     	blr	x1
    3f90: f94a2a61     	ldr	x1, [x19, #0x1450]
    3f94: d63f0020     	blr	x1
    3f98: f9401661     	ldr	x1, [x19, #0x28]
    3f9c: aa0003f5     	mov	x21, x0
    3fa0: d28000c0     	mov	x0, #0x6                ; =6
    3fa4: d63f0020     	blr	x1
    3fa8: f953ce61     	ldr	x1, [x19, #0x2798]
    3fac: f941d680     	ldr	x0, [x20, #0x3a8]
    3fb0: d63f0020     	blr	x1
    3fb4: f94c0264     	ldr	x4, [x19, #0x1800]
    3fb8: aa1503e2     	mov	x2, x21
    3fbc: aa1603e1     	mov	x1, x22
    3fc0: d2800003     	mov	x3, #0x0                ; =0
    3fc4: d63f0080     	blr	x4
    3fc8: f940b683     	ldr	x3, [x20, #0x168]
    3fcc: 910123a1     	add	x1, x29, #0x48
    3fd0: d2800020     	mov	x0, #0x1                ; =1
    3fd4: f94d3a62     	ldr	x2, [x19, #0x1a70]
    3fd8: f90027a3     	str	x3, [x29, #0x48]
    3fdc: d63f0040     	blr	x2
    3fe0: f94a7661     	ldr	x1, [x19, #0x14e8]
    3fe4: aa1603e0     	mov	x0, x22
    3fe8: d63f0020     	blr	x1
    3fec: aa0003f5     	mov	x21, x0
    3ff0: a94153f3     	ldp	x19, x20, [sp, #0x10]
    3ff4: aa1503e0     	mov	x0, x21
    3ff8: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    3ffc: a8c77bfd     	ldp	x29, x30, [sp], #0x70
    4000: d65f03c0     	ret
    4004: d63f0040     	blr	x2
    4008: 51000801     	sub	w1, w0, #0x2
    400c: f240043f     	tst	x1, #0x3
    4010: 54fffba1     	b.ne	0x3f84 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x2c4>
    4014: 9342fc02     	asr	x2, x0, #2
    4018: 92fc0001     	mov	x1, #0x1fffffffffffffff ; =2305843009213693951
    401c: eb01005f     	cmp	x2, x1
    4020: 54fffb20     	b.eq	0x3f84 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x2c4>
    4024: d37ef442     	lsl	x2, x2, #2
    4028: 91001840     	add	x0, x2, #0x6
    402c: 17ffffd9     	b	0x3f90 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x2d0>
    4030: d63f0040     	blr	x2
    4034: 51000801     	sub	w1, w0, #0x2
    4038: f240043f     	tst	x1, #0x3
    403c: 54ffede1     	b.ne	0x3df8 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x138>
    4040: 9342fc01     	asr	x1, x0, #2
    4044: d2fc0002     	mov	x2, #-0x2000000000000000 ; =-2305843009213693952
    4048: eb02003f     	cmp	x1, x2
    404c: 54ffed60     	b.eq	0x3df8 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x138>
    4050: d37ef420     	lsl	x0, x1, #2
    4054: d1000800     	sub	x0, x0, #0x2
    4058: 17ffff6b     	b	0x3e04 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x144>
    405c: d63f0020     	blr	x1
    4060: aa0003f5     	mov	x21, x0
    4064: b4fffc60     	cbz	x0, 0x3ff0 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x330>
    4068: f941d680     	ldr	x0, [x20, #0x3a8]
    406c: f953ce61     	ldr	x1, [x19, #0x2798]
    4070: d63f0020     	blr	x1
    4074: f94c0a61     	ldr	x1, [x19, #0x1810]
    4078: d63f0020     	blr	x1
    407c: aa0003f5     	mov	x21, x0
    4080: f9402a64     	ldr	x4, [x19, #0x50]
    4084: 52800003     	mov	w3, #0x0                ; =0
    4088: aa0003e1     	mov	x1, x0
    408c: d2800002     	mov	x2, #0x0                ; =0
    4090: f941d680     	ldr	x0, [x20, #0x3a8]
    4094: d63f0080     	blr	x4
    4098: a94153f3     	ldp	x19, x20, [sp, #0x10]
    409c: aa1503e0     	mov	x0, x21
    40a0: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    40a4: a8c77bfd     	ldp	x29, x30, [sp], #0x70
    40a8: d65f03c0     	ret
    40ac: f94a0a60     	ldr	x0, [x19, #0x1410]
    40b0: d63f0000     	blr	x0
    40b4: f94a0a61     	ldr	x1, [x19, #0x1410]
    40b8: aa0003f6     	mov	x22, x0
    40bc: d63f0020     	blr	x1
    40c0: f94c0e65     	ldr	x5, [x19, #0x1818]
    40c4: d2800004     	mov	x4, #0x0                ; =0
    40c8: d2800003     	mov	x3, #0x0                ; =0
    40cc: aa0003e1     	mov	x1, x0
    40d0: d2800002     	mov	x2, #0x0                ; =0
    40d4: aa1603e0     	mov	x0, x22
    40d8: d63f00a0     	blr	x5
    40dc: f9402a64     	ldr	x4, [x19, #0x50]
    40e0: aa0003f6     	mov	x22, x0
    40e4: aa0003e1     	mov	x1, x0
    40e8: 52800003     	mov	w3, #0x0                ; =0
    40ec: d2800002     	mov	x2, #0x0                ; =0
    40f0: f941d680     	ldr	x0, [x20, #0x3a8]
    40f4: d63f0080     	blr	x4
    40f8: f9419a81     	ldr	x1, [x20, #0x330]
    40fc: aa1603e0     	mov	x0, x22
    4100: f941e282     	ldr	x2, [x20, #0x3c0]
    4104: f94bd263     	ldr	x3, [x19, #0x17a0]
    4108: d63f0060     	blr	x3
    410c: 17ffff4f     	b	0x3e48 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x188>
    4110: b40000c0     	cbz	x0, 0x4128 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x468>
    4114: f94002a2     	ldr	x2, [x21]
    4118: aa0003e1     	mov	x1, x0
    411c: f944ba80     	ldr	x0, [x20, #0x970]
    4120: f9400042     	ldr	x2, [x2]
    4124: d63f0040     	blr	x2
    4128: d2800016     	mov	x22, #0x0               ; =0
    412c: 17ffff24     	b	0x3dbc <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0xfc>
    4130: b40000c0     	cbz	x0, 0x4148 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x488>
    4134: f94002a2     	ldr	x2, [x21]
    4138: aa0003e1     	mov	x1, x0
    413c: f944ba80     	ldr	x0, [x20, #0x970]
    4140: f9400042     	ldr	x2, [x2]
    4144: d63f0040     	blr	x2
    4148: d2800003     	mov	x3, #0x0                ; =0
    414c: 17ffff23     	b	0x3dd8 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x118>
    4150: b40000c0     	cbz	x0, 0x4168 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x4a8>
    4154: f94002a2     	ldr	x2, [x21]
    4158: aa0003e1     	mov	x1, x0
    415c: f944ba80     	ldr	x0, [x20, #0x970]
    4160: f9400042     	ldr	x2, [x2]
    4164: d63f0040     	blr	x2
    4168: d2800003     	mov	x3, #0x0                ; =0
    416c: 17ffff53     	b	0x3eb8 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x1f8>
    4170: b40000c0     	cbz	x0, 0x4188 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x4c8>
    4174: f94002a2     	ldr	x2, [x21]
    4178: aa0003e1     	mov	x1, x0
    417c: f944ba80     	ldr	x0, [x20, #0x970]
    4180: f9400042     	ldr	x2, [x2]
    4184: d63f0040     	blr	x2
    4188: d2800017     	mov	x23, #0x0               ; =0
    418c: 17ffff6e     	b	0x3f44 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x284>
    4190: b40000c0     	cbz	x0, 0x41a8 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x4e8>
    4194: f94002a2     	ldr	x2, [x21]
    4198: aa0003e1     	mov	x1, x0
    419c: f944ba80     	ldr	x0, [x20, #0x970]
    41a0: f9400042     	ldr	x2, [x2]
    41a4: d63f0040     	blr	x2
    41a8: d2800016     	mov	x22, #0x0               ; =0
    41ac: 17ffff3c     	b	0x3e9c <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x1dc>
    41b0: b40000c0     	cbz	x0, 0x41c8 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x508>
    41b4: f94002a2     	ldr	x2, [x21]
    41b8: aa0003e1     	mov	x1, x0
    41bc: f944ba80     	ldr	x0, [x20, #0x970]
    41c0: f9400042     	ldr	x2, [x2]
    41c4: d63f0040     	blr	x2
    41c8: d2800003     	mov	x3, #0x0                ; =0
    41cc: 17ffff65     	b	0x3f60 <_F6e732d6f70656e2d66696c652d73656c6563742d6c696e65_ns_open_file_select_line_0+0x2a0>

00000000000041d0 <_F6e732d756e73656c6563742d6c696e65_ns_unselect_line_0>:
    41d0: d0000060     	adrp	x0, 0x12000 <_d_reloc+0x308>
    41d4: 912da000     	add	x0, x0, #0xb68
    41d8: a9bd7bfd     	stp	x29, x30, [sp, #-0x30]!
    41dc: 910003fd     	mov	x29, sp
    41e0: a90153f3     	stp	x19, x20, [sp, #0x10]
    41e4: f9400014     	ldr	x20, [x0]
    41e8: f953ce81     	ldr	x1, [x20, #0x2798]
    41ec: f90013f5     	str	x21, [sp, #0x20]
    41f0: b0000075     	adrp	x21, 0x11000 <_text_data_reloc_blob+0x118d>
    41f4: 9133e2b5     	add	x21, x21, #0xcf8
    41f8: f941d6a0     	ldr	x0, [x21, #0x3a8]
    41fc: d63f0020     	blr	x1
    4200: b4000240     	cbz	x0, 0x4248 <_F6e732d756e73656c6563742d6c696e65_ns_unselect_line_0+0x78>
    4204: f941d6a0     	ldr	x0, [x21, #0x3a8]
    4208: f953ce81     	ldr	x1, [x20, #0x2798]
    420c: d63f0020     	blr	x1
    4210: f94c0a81     	ldr	x1, [x20, #0x1810]
    4214: d63f0020     	blr	x1
    4218: aa0003f3     	mov	x19, x0
    421c: f9402a84     	ldr	x4, [x20, #0x50]
    4220: 52800003     	mov	w3, #0x0                ; =0
    4224: aa0003e1     	mov	x1, x0
    4228: d2800002     	mov	x2, #0x0                ; =0
    422c: f941d6a0     	ldr	x0, [x21, #0x3a8]
    4230: d63f0080     	blr	x4
    4234: f94013f5     	ldr	x21, [sp, #0x20]
    4238: aa1303e0     	mov	x0, x19
    423c: a94153f3     	ldp	x19, x20, [sp, #0x10]
    4240: a8c37bfd     	ldp	x29, x30, [sp], #0x30
    4244: d65f03c0     	ret
    4248: aa0003f3     	mov	x19, x0
    424c: f94013f5     	ldr	x21, [sp, #0x20]
    4250: aa1303e0     	mov	x0, x19
    4254: a94153f3     	ldp	x19, x20, [sp, #0x10]
    4258: a8c37bfd     	ldp	x29, x30, [sp], #0x30
    425c: d65f03c0     	ret

0000000000004260 <_F6765742d6c6973702d7265736f75726365_get_lisp_resource_0>:
    4260: a9bb7bfd     	stp	x29, x30, [sp, #-0x50]!
    4264: 910003fd     	mov	x29, sp
    4268: aa0103e3     	mov	x3, x1
    426c: aa0003e4     	mov	x4, x0
    4270: 9100c3a1     	add	x1, x29, #0x30
    4274: d2800060     	mov	x0, #0x3                ; =3
    4278: d0000062     	adrp	x2, 0x12000 <_d_reloc+0x308>
    427c: 912da042     	add	x2, x2, #0xb68
    4280: a9025bf5     	stp	x21, x22, [sp, #0x20]
    4284: b0000076     	adrp	x22, 0x11000 <_text_data_reloc_blob+0x118d>
    4288: 9133e2d6     	add	x22, x22, #0xcf8
    428c: a90153f3     	stp	x19, x20, [sp, #0x10]
    4290: f9400055     	ldr	x21, [x2]
    4294: f90023a3     	str	x3, [x29, #0x40]
    4298: f941eac3     	ldr	x3, [x22, #0x3d0]
    429c: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    42a0: a90313a3     	stp	x3, x4, [x29, #0x30]
    42a4: d63f0040     	blr	x2
    42a8: b40003e0     	cbz	x0, 0x4324 <_F6765742d6c6973702d7265736f75726365_get_lisp_resource_0+0xc4>
    42ac: f94bb2a1     	ldr	x1, [x21, #0x1760]
    42b0: aa0003f4     	mov	x20, x0
    42b4: d63f0020     	blr	x1
    42b8: f941eec1     	ldr	x1, [x22, #0x3d8]
    42bc: f9525aa2     	ldr	x2, [x21, #0x24b0]
    42c0: d63f0040     	blr	x2
    42c4: aa0003f3     	mov	x19, x0
    42c8: b40000e0     	cbz	x0, 0x42e4 <_F6765742d6c6973702d7265736f75726365_get_lisp_resource_0+0x84>
    42cc: f94022d3     	ldr	x19, [x22, #0x40]
    42d0: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    42d4: aa1303e0     	mov	x0, x19
    42d8: a94153f3     	ldp	x19, x20, [sp, #0x10]
    42dc: a8c57bfd     	ldp	x29, x30, [sp], #0x50
    42e0: d65f03c0     	ret
    42e4: f94bb2a1     	ldr	x1, [x21, #0x1760]
    42e8: aa1403e0     	mov	x0, x20
    42ec: d63f0020     	blr	x1
    42f0: f941f2c1     	ldr	x1, [x22, #0x3e0]
    42f4: f9525aa2     	ldr	x2, [x21, #0x24b0]
    42f8: d63f0040     	blr	x2
    42fc: b5fffea0     	cbnz	x0, 0x42d0 <_F6765742d6c6973702d7265736f75726365_get_lisp_resource_0+0x70>
    4300: f94e36a1     	ldr	x1, [x21, #0x1c68]
    4304: aa1403e0     	mov	x0, x20
    4308: d63f0020     	blr	x1
    430c: aa0003f3     	mov	x19, x0
    4310: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    4314: aa1303e0     	mov	x0, x19
    4318: a94153f3     	ldp	x19, x20, [sp, #0x10]
    431c: a8c57bfd     	ldp	x29, x30, [sp], #0x50
    4320: d65f03c0     	ret
    4324: f941fad3     	ldr	x19, [x22, #0x3f0]
    4328: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    432c: aa1303e0     	mov	x0, x19
    4330: a94153f3     	ldp	x19, x20, [sp, #0x10]
    4334: a8c57bfd     	ldp	x29, x30, [sp], #0x50
    4338: d65f03c0     	ret
    433c: d503201f     	nop

0000000000004340 <_F782d66696c652d6469616c6f67_x_file_dialog_0>:
    4340: b0000065     	adrp	x5, 0x11000 <_text_data_reloc_blob+0x118d>
    4344: 9133e0a5     	add	x5, x5, #0xcf8
    4348: aa0003e8     	mov	x8, x0
    434c: aa0103e7     	mov	x7, x1
    4350: a9bc7bfd     	stp	x29, x30, [sp, #-0x40]!
    4354: 910003fd     	mov	x29, sp
    4358: 910043a1     	add	x1, x29, #0x10
    435c: d28000c0     	mov	x0, #0x6                ; =6
    4360: d0000066     	adrp	x6, 0x12000 <_d_reloc+0x308>
    4364: 912da0c6     	add	x6, x6, #0xb68
    4368: f9001fa4     	str	x4, [x29, #0x38]
    436c: f94000c6     	ldr	x6, [x6]
    4370: a9019fa8     	stp	x8, x7, [x29, #0x18]
    4374: a9028ba3     	stp	x3, x2, [x29, #0x28]
    4378: f941fca3     	ldr	x3, [x5, #0x3f8]
    437c: f94d38c2     	ldr	x2, [x6, #0x1a70]
    4380: f9000ba3     	str	x3, [x29, #0x10]
    4384: d63f0040     	blr	x2
    4388: a8c47bfd     	ldp	x29, x30, [sp], #0x40
    438c: d65f03c0     	ret

0000000000004390 <_F6e732d6f70656e2d66696c652d7573696e672d70616e656c_ns_open_file_using_panel_0>:
    4390: a9b97bfd     	stp	x29, x30, [sp, #-0x70]!
    4394: 910003fd     	mov	x29, sp
    4398: 910103a1     	add	x1, x29, #0x40
    439c: d28000a0     	mov	x0, #0x5                ; =5
    43a0: a90153f3     	stp	x19, x20, [sp, #0x10]
    43a4: b0000074     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    43a8: 9133e294     	add	x20, x20, #0xcf8
    43ac: f90033bf     	str	xzr, [x29, #0x60]
    43b0: d0000062     	adrp	x2, 0x12000 <_d_reloc+0x308>
    43b4: 912da042     	add	x2, x2, #0xb68
    43b8: f9402283     	ldr	x3, [x20, #0x40]
    43bc: 91100284     	add	x4, x20, #0x400
    43c0: 3cdf809f     	ldur	q31, [x4, #-0x8]
    43c4: f90013f5     	str	x21, [sp, #0x20]
    43c8: a9050fbf     	stp	xzr, x3, [x29, #0x50]
    43cc: f9400055     	ldr	x21, [x2]
    43d0: 3d8013bf     	str	q31, [x29, #0x40]
    43d4: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    43d8: d63f0040     	blr	x2
    43dc: f9402aa4     	ldr	x4, [x21, #0x50]
    43e0: aa0003f3     	mov	x19, x0
    43e4: aa0003e1     	mov	x1, x0
    43e8: 52800003     	mov	w3, #0x0                ; =0
    43ec: d2800002     	mov	x2, #0x0                ; =0
    43f0: f9401280     	ldr	x0, [x20, #0x20]
    43f4: d63f0080     	blr	x4
    43f8: b4000293     	cbz	x19, 0x4448 <_F6e732d6f70656e2d66696c652d7573696e672d70616e656c_ns_open_file_using_panel_0+0xb8>
    43fc: f9401280     	ldr	x0, [x20, #0x20]
    4400: f953cea1     	ldr	x1, [x21, #0x2798]
    4404: d63f0020     	blr	x1
    4408: f94fe2a2     	ldr	x2, [x21, #0x1fc0]
    440c: d2800001     	mov	x1, #0x0                ; =0
    4410: d63f0040     	blr	x2
    4414: f9402aa4     	ldr	x4, [x21, #0x50]
    4418: aa0003e1     	mov	x1, x0
    441c: 52800003     	mov	w3, #0x0                ; =0
    4420: d2800002     	mov	x2, #0x0                ; =0
    4424: f9401280     	ldr	x0, [x20, #0x20]
    4428: d63f0080     	blr	x4
    442c: f941ce83     	ldr	x3, [x20, #0x398]
    4430: 9100e3a1     	add	x1, x29, #0x38
    4434: d2800020     	mov	x0, #0x1                ; =1
    4438: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    443c: f9001fa3     	str	x3, [x29, #0x38]
    4440: d63f0040     	blr	x2
    4444: aa0003f3     	mov	x19, x0
    4448: f94013f5     	ldr	x21, [sp, #0x20]
    444c: aa1303e0     	mov	x0, x19
    4450: a94153f3     	ldp	x19, x20, [sp, #0x10]
    4454: a8c77bfd     	ldp	x29, x30, [sp], #0x70
    4458: d65f03c0     	ret
    445c: d503201f     	nop

0000000000004460 <_F6e732d77726974652d66696c652d7573696e672d70616e656c_ns_write_file_using_panel_0>:
    4460: d0000062     	adrp	x2, 0x12000 <_d_reloc+0x308>
    4464: 912da042     	add	x2, x2, #0xb68
    4468: d28000a0     	mov	x0, #0x5                ; =5
    446c: a9b87bfd     	stp	x29, x30, [sp, #-0x80]!
    4470: 910003fd     	mov	x29, sp
    4474: 910143a1     	add	x1, x29, #0x50
    4478: a90153f3     	stp	x19, x20, [sp, #0x10]
    447c: f9400054     	ldr	x20, [x2]
    4480: a9067fbf     	stp	xzr, xzr, [x29, #0x60]
    4484: f9003bbf     	str	xzr, [x29, #0x70]
    4488: f94d3a82     	ldr	x2, [x20, #0x1a70]
    448c: f90013f5     	str	x21, [sp, #0x20]
    4490: b0000075     	adrp	x21, 0x11000 <_text_data_reloc_blob+0x118d>
    4494: 9133e2b5     	add	x21, x21, #0xcf8
    4498: f941fea4     	ldr	x4, [x21, #0x3f8]
    449c: f94206a3     	ldr	x3, [x21, #0x408]
    44a0: a9050fa4     	stp	x4, x3, [x29, #0x50]
    44a4: d63f0040     	blr	x2
    44a8: aa0003f3     	mov	x19, x0
    44ac: f9498a82     	ldr	x2, [x20, #0x1310]
    44b0: 9100e3a1     	add	x1, x29, #0x38
    44b4: d2800020     	mov	x0, #0x1                ; =1
    44b8: f9001fb3     	str	x19, [x29, #0x38]
    44bc: d63f0040     	blr	x2
    44c0: b4000113     	cbz	x19, 0x44e0 <_F6e732d77726974652d66696c652d7573696e672d70616e656c_ns_write_file_using_panel_0+0x80>
    44c4: f9420aa3     	ldr	x3, [x21, #0x410]
    44c8: 910103a1     	add	x1, x29, #0x40
    44cc: d2800040     	mov	x0, #0x2                ; =2
    44d0: f94d3a82     	ldr	x2, [x20, #0x1a70]
    44d4: a9044fa3     	stp	x3, x19, [x29, #0x40]
    44d8: d63f0040     	blr	x2
    44dc: aa0003f3     	mov	x19, x0
    44e0: f94013f5     	ldr	x21, [sp, #0x20]
    44e4: aa1303e0     	mov	x0, x19
    44e8: a94153f3     	ldp	x19, x20, [sp, #0x10]
    44ec: a8c87bfd     	ldp	x29, x30, [sp], #0x80
    44f0: d65f03c0     	ret
    44f4: d503201f     	nop
    44f8: d503201f     	nop
    44fc: d503201f     	nop

0000000000004500 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_1>:
    4500: b0000060     	adrp	x0, 0x11000 <_text_data_reloc_blob+0x118d>
    4504: 9133e000     	add	x0, x0, #0xcf8
    4508: f9420c00     	ldr	x0, [x0, #0x418]
    450c: d65f03c0     	ret

0000000000004510 <_F6e732d66696e642d66696c65_ns_find_file_0>:
    4510: a9b77bfd     	stp	x29, x30, [sp, #-0x90]!
    4514: 910003fd     	mov	x29, sp
    4518: a9025bf5     	stp	x21, x22, [sp, #0x20]
    451c: d0000076     	adrp	x22, 0x12000 <_d_reloc+0x308>
    4520: 912da2d6     	add	x22, x22, #0xb68
    4524: a90153f3     	stp	x19, x20, [sp, #0x10]
    4528: b0000074     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    452c: 9133e294     	add	x20, x20, #0xcf8
    4530: a90363f7     	stp	x23, x24, [sp, #0x30]
    4534: f94002d3     	ldr	x19, [x22]
    4538: f9401280     	ldr	x0, [x20, #0x20]
    453c: f953ce61     	ldr	x1, [x19, #0x2798]
    4540: d63f0020     	blr	x1
    4544: aa0003f5     	mov	x21, x0
    4548: 51000c00     	sub	w0, w0, #0x3
    454c: f240081f     	tst	x0, #0x7
    4550: 54000d41     	b.ne	0x46f8 <_F6e732d66696e642d66696c65_ns_find_file_0+0x1e8>
    4554: f840d2a1     	ldur	x1, [x21, #0xd]
    4558: 52800003     	mov	w3, #0x0                ; =0
    455c: d2800002     	mov	x2, #0x0                ; =0
    4560: f9401280     	ldr	x0, [x20, #0x20]
    4564: f9402a64     	ldr	x4, [x19, #0x50]
    4568: d63f0080     	blr	x4
    456c: f9542261     	ldr	x1, [x19, #0x2840]
    4570: aa1503e0     	mov	x0, x21
    4574: d63f0020     	blr	x1
    4578: f953ce61     	ldr	x1, [x19, #0x2798]
    457c: aa0003f5     	mov	x21, x0
    4580: f9421a80     	ldr	x0, [x20, #0x430]
    4584: d63f0020     	blr	x1
    4588: f950aa62     	ldr	x2, [x19, #0x2150]
    458c: aa0003e1     	mov	x1, x0
    4590: aa1503e0     	mov	x0, x21
    4594: d63f0040     	blr	x2
    4598: f9421283     	ldr	x3, [x20, #0x420]
    459c: aa0003e4     	mov	x4, x0
    45a0: 910103a1     	add	x1, x29, #0x40
    45a4: d2800040     	mov	x0, #0x2                ; =2
    45a8: f94d3a62     	ldr	x2, [x19, #0x1a70]
    45ac: a90413a3     	stp	x3, x4, [x29, #0x40]
    45b0: d63f0040     	blr	x2
    45b4: f9421e83     	ldr	x3, [x20, #0x438]
    45b8: aa0003f7     	mov	x23, x0
    45bc: 910143a1     	add	x1, x29, #0x50
    45c0: d2800040     	mov	x0, #0x2                ; =2
    45c4: f94d3a62     	ldr	x2, [x19, #0x1a70]
    45c8: a9055fa3     	stp	x3, x23, [x29, #0x50]
    45cc: d63f0040     	blr	x2
    45d0: f9422681     	ldr	x1, [x20, #0x448]
    45d4: aa0003f8     	mov	x24, x0
    45d8: f942ea62     	ldr	x2, [x19, #0x5d0]
    45dc: d63f0040     	blr	x2
    45e0: f9422681     	ldr	x1, [x20, #0x448]
    45e4: aa0003f5     	mov	x21, x0
    45e8: f9422a80     	ldr	x0, [x20, #0x450]
    45ec: f942ea62     	ldr	x2, [x19, #0x5d0]
    45f0: d63f0040     	blr	x2
    45f4: aa0003f6     	mov	x22, x0
    45f8: b40002f5     	cbz	x21, 0x4654 <_F6e732d66696e642d66696c65_ns_find_file_0+0x144>
    45fc: f943ee61     	ldr	x1, [x19, #0x7d8]
    4600: aa1503e0     	mov	x0, x21
    4604: d63f0020     	blr	x1
    4608: f946d262     	ldr	x2, [x19, #0xda0]
    460c: d2800001     	mov	x1, #0x0                ; =0
    4610: d63f0040     	blr	x2
    4614: f943ee61     	ldr	x1, [x19, #0x7d8]
    4618: aa1503e0     	mov	x0, x21
    461c: d63f0020     	blr	x1
    4620: f9468261     	ldr	x1, [x19, #0xd00]
    4624: d63f0020     	blr	x1
    4628: f942ce62     	ldr	x2, [x19, #0x598]
    462c: aa1503e0     	mov	x0, x21
    4630: d2800001     	mov	x1, #0x0                ; =0
    4634: d63f0040     	blr	x2
    4638: aa0003f3     	mov	x19, x0
    463c: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    4640: aa1303e0     	mov	x0, x19
    4644: a94153f3     	ldp	x19, x20, [sp, #0x10]
    4648: a94363f7     	ldp	x23, x24, [sp, #0x30]
    464c: a8c97bfd     	ldp	x29, x30, [sp], #0x90
    4650: d65f03c0     	ret
    4654: f9422e80     	ldr	x0, [x20, #0x458]
    4658: f953ce61     	ldr	x1, [x19, #0x2798]
    465c: d63f0020     	blr	x1
    4660: f9420e81     	ldr	x1, [x20, #0x418]
    4664: f954c262     	ldr	x2, [x19, #0x2980]
    4668: d63f0040     	blr	x2
    466c: f100001f     	cmp	x0, #0x0
    4670: fa401ac4     	ccmp	x22, #0x0, #0x4, ne
    4674: 54000521     	b.ne	0x4718 <_F6e732d66696e642d66696c65_ns_find_file_0+0x208>
    4678: f953ce61     	ldr	x1, [x19, #0x2798]
    467c: f9422e80     	ldr	x0, [x20, #0x458]
    4680: d63f0020     	blr	x1
    4684: 3dc11a9f     	ldr	q31, [x20, #0x460]
    4688: 910183a1     	add	x1, x29, #0x60
    468c: f94d3a62     	ldr	x2, [x19, #0x1a70]
    4690: b4000880     	cbz	x0, 0x47a0 <_F6e732d66696e642d66696c65_ns_find_file_0+0x290>
    4694: d2800040     	mov	x0, #0x2                ; =2
    4698: 3d801bbf     	str	q31, [x29, #0x60]
    469c: d63f0040     	blr	x2
    46a0: f9402281     	ldr	x1, [x20, #0x40]
    46a4: f9403262     	ldr	x2, [x19, #0x60]
    46a8: f9423a80     	ldr	x0, [x20, #0x470]
    46ac: d63f0040     	blr	x2
    46b0: f9423e83     	ldr	x3, [x20, #0x478]
    46b4: 9101c3a1     	add	x1, x29, #0x70
    46b8: d2800060     	mov	x0, #0x3                ; =3
    46bc: f94d3a62     	ldr	x2, [x19, #0x1a70]
    46c0: f90043bf     	str	xzr, [x29, #0x80]
    46c4: a90763a3     	stp	x3, x24, [x29, #0x70]
    46c8: d63f0040     	blr	x2
    46cc: f9401662     	ldr	x2, [x19, #0x28]
    46d0: aa0003e1     	mov	x1, x0
    46d4: d28000c0     	mov	x0, #0x6                ; =6
    46d8: aa0103f3     	mov	x19, x1
    46dc: d63f0040     	blr	x2
    46e0: aa1303e0     	mov	x0, x19
    46e4: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    46e8: a94153f3     	ldp	x19, x20, [sp, #0x10]
    46ec: a94363f7     	ldp	x23, x24, [sp, #0x30]
    46f0: a8c97bfd     	ldp	x29, x30, [sp], #0x90
    46f4: d65f03c0     	ret
    46f8: b40000d5     	cbz	x21, 0x4710 <_F6e732d66696e642d66696c65_ns_find_file_0+0x200>
    46fc: f94002c2     	ldr	x2, [x22]
    4700: aa1503e1     	mov	x1, x21
    4704: f944ba80     	ldr	x0, [x20, #0x970]
    4708: f9400042     	ldr	x2, [x2]
    470c: d63f0040     	blr	x2
    4710: d2800001     	mov	x1, #0x0                ; =0
    4714: 17ffff91     	b	0x4558 <_F6e732d66696e642d66696c65_ns_find_file_0+0x48>
    4718: 3dc11a9f     	ldr	q31, [x20, #0x460]
    471c: 910183a1     	add	x1, x29, #0x60
    4720: d2800040     	mov	x0, #0x2                ; =2
    4724: f94d3a62     	ldr	x2, [x19, #0x1a70]
    4728: 3d801bbf     	str	q31, [x29, #0x60]
    472c: d63f0040     	blr	x2
    4730: f943ee61     	ldr	x1, [x19, #0x7d8]
    4734: aa1603e0     	mov	x0, x22
    4738: d63f0020     	blr	x1
    473c: f946d262     	ldr	x2, [x19, #0xda0]
    4740: d2800001     	mov	x1, #0x0                ; =0
    4744: d63f0040     	blr	x2
    4748: f943ee61     	ldr	x1, [x19, #0x7d8]
    474c: aa1603e0     	mov	x0, x22
    4750: d63f0020     	blr	x1
    4754: f9468261     	ldr	x1, [x19, #0xd00]
    4758: d63f0020     	blr	x1
    475c: f942ce62     	ldr	x2, [x19, #0x598]
    4760: aa1603e0     	mov	x0, x22
    4764: d2800001     	mov	x1, #0x0                ; =0
    4768: d63f0040     	blr	x2
    476c: f941ca83     	ldr	x3, [x20, #0x390]
    4770: 9101c3a1     	add	x1, x29, #0x70
    4774: d2800040     	mov	x0, #0x2                ; =2
    4778: f94d3a62     	ldr	x2, [x19, #0x1a70]
    477c: a9075fa3     	stp	x3, x23, [x29, #0x70]
    4780: d63f0040     	blr	x2
    4784: aa0003f3     	mov	x19, x0
    4788: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    478c: aa1303e0     	mov	x0, x19
    4790: a94153f3     	ldp	x19, x20, [sp, #0x10]
    4794: a94363f7     	ldp	x23, x24, [sp, #0x30]
    4798: a8c97bfd     	ldp	x29, x30, [sp], #0x90
    479c: d65f03c0     	ret
    47a0: d2800040     	mov	x0, #0x2                ; =2
    47a4: 3d801bbf     	str	q31, [x29, #0x60]
    47a8: 17fffff0     	b	0x4768 <_F6e732d66696e642d66696c65_ns_find_file_0+0x258>

00000000000047ac <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_2>:
    47ac: 51000c01     	sub	w1, w0, #0x3
    47b0: f240083f     	tst	x1, #0x7
    47b4: 54000061     	b.ne	0x47c0 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_2+0x14>
    47b8: f8405000     	ldur	x0, [x0, #0x5]
    47bc: d65f03c0     	ret
    47c0: b40001e0     	cbz	x0, 0x47fc <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_2+0x50>
    47c4: d0000062     	adrp	x2, 0x12000 <_d_reloc+0x308>
    47c8: 912da042     	add	x2, x2, #0xb68
    47cc: aa0003e1     	mov	x1, x0
    47d0: a9bf7bfd     	stp	x29, x30, [sp, #-0x10]!
    47d4: 910003fd     	mov	x29, sp
    47d8: b0000060     	adrp	x0, 0x11000 <_text_data_reloc_blob+0x118d>
    47dc: 9133e000     	add	x0, x0, #0xcf8
    47e0: f9400042     	ldr	x2, [x2]
    47e4: f944b800     	ldr	x0, [x0, #0x970]
    47e8: f9400042     	ldr	x2, [x2]
    47ec: d63f0040     	blr	x2
    47f0: d2800000     	mov	x0, #0x0                ; =0
    47f4: a8c17bfd     	ldp	x29, x30, [sp], #0x10
    47f8: d65f03c0     	ret
    47fc: d2800000     	mov	x0, #0x0                ; =0
    4800: d65f03c0     	ret

0000000000004804 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_3>:
    4804: d0000063     	adrp	x3, 0x12000 <_d_reloc+0x308>
    4808: 912da063     	add	x3, x3, #0xb68
    480c: aa0003e4     	mov	x4, x0
    4810: d2800040     	mov	x0, #0x2                ; =2
    4814: a9be7bfd     	stp	x29, x30, [sp, #-0x20]!
    4818: 910003fd     	mov	x29, sp
    481c: 910043a1     	add	x1, x29, #0x10
    4820: b0000062     	adrp	x2, 0x11000 <_text_data_reloc_blob+0x118d>
    4824: 9133e042     	add	x2, x2, #0xcf8
    4828: f9000fa4     	str	x4, [x29, #0x18]
    482c: f9400064     	ldr	x4, [x3]
    4830: f9425043     	ldr	x3, [x2, #0x4a0]
    4834: f9523c82     	ldr	x2, [x4, #0x2478]
    4838: f9000ba3     	str	x3, [x29, #0x10]
    483c: d63f0040     	blr	x2
    4840: a8c27bfd     	ldp	x29, x30, [sp], #0x20
    4844: d65f03c0     	ret

0000000000004848 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0>:
    4848: a9b57bfd     	stp	x29, x30, [sp, #-0xb0]!
    484c: 910003fd     	mov	x29, sp
    4850: a90363f7     	stp	x23, x24, [sp, #0x30]
    4854: d0000078     	adrp	x24, 0x12000 <_d_reloc+0x308>
    4858: 912da318     	add	x24, x24, #0xb68
    485c: a90153f3     	stp	x19, x20, [sp, #0x10]
    4860: a9025bf5     	stp	x21, x22, [sp, #0x20]
    4864: aa0003f5     	mov	x21, x0
    4868: f9400313     	ldr	x19, [x24]
    486c: b0000074     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    4870: 9133e294     	add	x20, x20, #0xcf8
    4874: f9541e61     	ldr	x1, [x19, #0x2838]
    4878: d63f0020     	blr	x1
    487c: f9541e61     	ldr	x1, [x19, #0x2838]
    4880: d63f0020     	blr	x1
    4884: f9542261     	ldr	x1, [x19, #0x2840]
    4888: d63f0020     	blr	x1
    488c: f9425681     	ldr	x1, [x20, #0x4a8]
    4890: f954c262     	ldr	x2, [x19, #0x2980]
    4894: d63f0040     	blr	x2
    4898: f9425a83     	ldr	x3, [x20, #0x4b0]
    489c: f94d3a62     	ldr	x2, [x19, #0x1a70]
    48a0: b4000220     	cbz	x0, 0x48e4 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x9c>
    48a4: 910203a1     	add	x1, x29, #0x80
    48a8: d2800040     	mov	x0, #0x2                ; =2
    48ac: a90857a3     	stp	x3, x21, [x29, #0x80]
    48b0: d63f0040     	blr	x2
    48b4: f9428a83     	ldr	x3, [x20, #0x510]
    48b8: aa0003e4     	mov	x4, x0
    48bc: 910243a1     	add	x1, x29, #0x90
    48c0: d2800040     	mov	x0, #0x2                ; =2
    48c4: f94d3a62     	ldr	x2, [x19, #0x1a70]
    48c8: a90913a3     	stp	x3, x4, [x29, #0x90]
    48cc: d63f0040     	blr	x2
    48d0: a94153f3     	ldp	x19, x20, [sp, #0x10]
    48d4: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    48d8: a94363f7     	ldp	x23, x24, [sp, #0x30]
    48dc: a8cb7bfd     	ldp	x29, x30, [sp], #0xb0
    48e0: d65f03c0     	ret
    48e4: 910183a1     	add	x1, x29, #0x60
    48e8: aa0003f6     	mov	x22, x0
    48ec: a9046bb9     	stp	x25, x26, [x29, #0x40]
    48f0: d2800040     	mov	x0, #0x2                ; =2
    48f4: f9002bbb     	str	x27, [x29, #0x50]
    48f8: a90657a3     	stp	x3, x21, [x29, #0x60]
    48fc: d63f0040     	blr	x2
    4900: 51000c01     	sub	w1, w0, #0x3
    4904: f240083f     	tst	x1, #0x7
    4908: 540012c1     	b.ne	0x4b60 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x318>
    490c: f840501a     	ldur	x26, [x0, #0x5]
    4910: 51000ea0     	sub	w0, w21, #0x3
    4914: f240081f     	tst	x0, #0x7
    4918: 54001341     	b.ne	0x4b80 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x338>
    491c: f840d2a1     	ldur	x1, [x21, #0xd]
    4920: 51000c20     	sub	w0, w1, #0x3
    4924: f240081f     	tst	x0, #0x7
    4928: 54000a61     	b.ne	0x4a74 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x22c>
    492c: f840d021     	ldur	x1, [x1, #0xd]
    4930: 51000c20     	sub	w0, w1, #0x3
    4934: f240081f     	tst	x0, #0x7
    4938: 540009e1     	b.ne	0x4a74 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x22c>
    493c: f8405039     	ldur	x25, [x1, #0x5]
    4940: 51000f20     	sub	w0, w25, #0x3
    4944: f240081f     	tst	x0, #0x7
    4948: 54000a61     	b.ne	0x4a94 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x24c>
    494c: d1000f39     	sub	x25, x25, #0x3
    4950: a940df3b     	ldp	x27, x23, [x25, #0x8]
    4954: 51000ee0     	sub	w0, w23, #0x3
    4958: f240081f     	tst	x0, #0x7
    495c: 54000be1     	b.ne	0x4ad8 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x290>
    4960: f84052f6     	ldur	x22, [x23, #0x5]
    4964: d1000ef7     	sub	x23, x23, #0x3
    4968: f9400af7     	ldr	x23, [x23, #0x10]
    496c: aa1703e1     	mov	x1, x23
    4970: f9425e82     	ldr	x2, [x20, #0x4b8]
    4974: f940ca80     	ldr	x0, [x20, #0x190]
    4978: f9519263     	ldr	x3, [x19, #0x2320]
    497c: d63f0060     	blr	x3
    4980: f943da63     	ldr	x3, [x19, #0x7b0]
    4984: d2800002     	mov	x2, #0x0                ; =0
    4988: aa1a03e1     	mov	x1, x26
    498c: aa0003f8     	mov	x24, x0
    4990: d2800000     	mov	x0, #0x0                ; =0
    4994: d63f0060     	blr	x3
    4998: f9468261     	ldr	x1, [x19, #0xd00]
    499c: d2800000     	mov	x0, #0x0                ; =0
    49a0: d63f0020     	blr	x1
    49a4: f9440a60     	ldr	x0, [x19, #0x810]
    49a8: d63f0000     	blr	x0
    49ac: f9425a83     	ldr	x3, [x20, #0x4b0]
    49b0: aa0003e2     	mov	x2, x0
    49b4: 9101c3a1     	add	x1, x29, #0x70
    49b8: d2800040     	mov	x0, #0x2                ; =2
    49bc: a90757a3     	stp	x3, x21, [x29, #0x70]
    49c0: aa0203f5     	mov	x21, x2
    49c4: f94d3a62     	ldr	x2, [x19, #0x1a70]
    49c8: d63f0040     	blr	x2
    49cc: f9426a83     	ldr	x3, [x20, #0x4d0]
    49d0: aa0003e4     	mov	x4, x0
    49d4: 910203a1     	add	x1, x29, #0x80
    49d8: d2800040     	mov	x0, #0x2                ; =2
    49dc: f94d3a62     	ldr	x2, [x19, #0x1a70]
    49e0: a90813a3     	stp	x3, x4, [x29, #0x80]
    49e4: d63f0040     	blr	x2
    49e8: f94a7661     	ldr	x1, [x19, #0x14e8]
    49ec: d63f0020     	blr	x1
    49f0: f9426e80     	ldr	x0, [x20, #0x4d8]
    49f4: aa1603e1     	mov	x1, x22
    49f8: f951f662     	ldr	x2, [x19, #0x23e8]
    49fc: d63f0040     	blr	x2
    4a00: b40008e0     	cbz	x0, 0x4b1c <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x2d4>
    4a04: f9427281     	ldr	x1, [x20, #0x4e0]
    4a08: aa1b03e0     	mov	x0, x27
    4a0c: f954c262     	ldr	x2, [x19, #0x2980]
    4a10: d63f0040     	blr	x2
    4a14: b4000100     	cbz	x0, 0x4a34 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x1ec>
    4a18: d0000060     	adrp	x0, 0x12000 <_d_reloc+0x308>
    4a1c: 91292000     	add	x0, x0, #0xa48
    4a20: aa1703e1     	mov	x1, x23
    4a24: f9519e62     	ldr	x2, [x19, #0x2338]
    4a28: f9400c00     	ldr	x0, [x0, #0x18]
    4a2c: d63f0040     	blr	x2
    4a30: aa0003f7     	mov	x23, x0
    4a34: f9427684     	ldr	x4, [x20, #0x4e8]
    4a38: 910243a1     	add	x1, x29, #0x90
    4a3c: d2800080     	mov	x0, #0x4                ; =4
    4a40: f9427a83     	ldr	x3, [x20, #0x4f0]
    4a44: f94d3a62     	ldr	x2, [x19, #0x1a70]
    4a48: f9000435     	str	x21, [x1, #0x8]
    4a4c: f9004ba4     	str	x4, [x29, #0x90]
    4a50: a9010c37     	stp	x23, x3, [x1, #0x10]
    4a54: d63f0040     	blr	x2
    4a58: f9402bbb     	ldr	x27, [x29, #0x50]
    4a5c: a9446bb9     	ldp	x25, x26, [x29, #0x40]
    4a60: a94153f3     	ldp	x19, x20, [sp, #0x10]
    4a64: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    4a68: a94363f7     	ldp	x23, x24, [sp, #0x30]
    4a6c: a8cb7bfd     	ldp	x29, x30, [sp], #0xb0
    4a70: d65f03c0     	ret
    4a74: b40000a1     	cbz	x1, 0x4a88 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x240>
    4a78: f9400302     	ldr	x2, [x24]
    4a7c: f944ba80     	ldr	x0, [x20, #0x970]
    4a80: f9400042     	ldr	x2, [x2]
    4a84: d63f0040     	blr	x2
    4a88: d280001b     	mov	x27, #0x0               ; =0
    4a8c: d2800017     	mov	x23, #0x0               ; =0
    4a90: 17ffffb7     	b	0x496c <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x124>
    4a94: b4ffffb9     	cbz	x25, 0x4a88 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x240>
    4a98: f9400302     	ldr	x2, [x24]
    4a9c: aa1903e1     	mov	x1, x25
    4aa0: f944ba80     	ldr	x0, [x20, #0x970]
    4aa4: f9400042     	ldr	x2, [x2]
    4aa8: d63f0040     	blr	x2
    4aac: f9400302     	ldr	x2, [x24]
    4ab0: aa1903e1     	mov	x1, x25
    4ab4: f944ba80     	ldr	x0, [x20, #0x970]
    4ab8: f9400042     	ldr	x2, [x2]
    4abc: d63f0040     	blr	x2
    4ac0: f9400302     	ldr	x2, [x24]
    4ac4: aa1903e1     	mov	x1, x25
    4ac8: f944ba80     	ldr	x0, [x20, #0x970]
    4acc: f9400042     	ldr	x2, [x2]
    4ad0: d63f0040     	blr	x2
    4ad4: 17ffffed     	b	0x4a88 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x240>
    4ad8: b4000677     	cbz	x23, 0x4ba4 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x35c>
    4adc: f9400302     	ldr	x2, [x24]
    4ae0: aa1703e1     	mov	x1, x23
    4ae4: f944ba80     	ldr	x0, [x20, #0x970]
    4ae8: f9400042     	ldr	x2, [x2]
    4aec: d63f0040     	blr	x2
    4af0: f9400b21     	ldr	x1, [x25, #0x10]
    4af4: 51000c20     	sub	w0, w1, #0x3
    4af8: f240081f     	tst	x0, #0x7
    4afc: 54000500     	b.eq	0x4b9c <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x354>
    4b00: b40000a1     	cbz	x1, 0x4b14 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x2cc>
    4b04: f9400302     	ldr	x2, [x24]
    4b08: f944ba80     	ldr	x0, [x20, #0x970]
    4b0c: f9400042     	ldr	x2, [x2]
    4b10: d63f0040     	blr	x2
    4b14: d2800017     	mov	x23, #0x0               ; =0
    4b18: 17ffff95     	b	0x496c <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x124>
    4b1c: f9428280     	ldr	x0, [x20, #0x500]
    4b20: aa1603e1     	mov	x1, x22
    4b24: f951f662     	ldr	x2, [x19, #0x23e8]
    4b28: d63f0040     	blr	x2
    4b2c: b5fff6c0     	cbnz	x0, 0x4a04 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x1bc>
    4b30: f9427a84     	ldr	x4, [x20, #0x4f0]
    4b34: 910243a1     	add	x1, x29, #0x90
    4b38: d2800080     	mov	x0, #0x4                ; =4
    4b3c: f9428683     	ldr	x3, [x20, #0x508]
    4b40: f94d3a62     	ldr	x2, [x19, #0x1a70]
    4b44: f9000435     	str	x21, [x1, #0x8]
    4b48: a9016024     	stp	x4, x24, [x1, #0x10]
    4b4c: f9004ba3     	str	x3, [x29, #0x90]
    4b50: d63f0040     	blr	x2
    4b54: f9402bbb     	ldr	x27, [x29, #0x50]
    4b58: a9446bb9     	ldp	x25, x26, [x29, #0x40]
    4b5c: 17ffff5d     	b	0x48d0 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x88>
    4b60: b40000c0     	cbz	x0, 0x4b78 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x330>
    4b64: f9400302     	ldr	x2, [x24]
    4b68: aa0003e1     	mov	x1, x0
    4b6c: f944ba80     	ldr	x0, [x20, #0x970]
    4b70: f9400042     	ldr	x2, [x2]
    4b74: d63f0040     	blr	x2
    4b78: d280001a     	mov	x26, #0x0               ; =0
    4b7c: 17ffff65     	b	0x4910 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0xc8>
    4b80: b4fff855     	cbz	x21, 0x4a88 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x240>
    4b84: f9400302     	ldr	x2, [x24]
    4b88: aa1503e1     	mov	x1, x21
    4b8c: f944ba80     	ldr	x0, [x20, #0x970]
    4b90: f9400042     	ldr	x2, [x2]
    4b94: d63f0040     	blr	x2
    4b98: 17ffffbc     	b	0x4a88 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x240>
    4b9c: d1000c37     	sub	x23, x1, #0x3
    4ba0: 17ffff72     	b	0x4968 <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x120>
    4ba4: d2800016     	mov	x22, #0x0               ; =0
    4ba8: 17ffff71     	b	0x496c <_F6e732d647261672d6e2d64726f70_ns_drag_n_drop_0+0x124>

0000000000004bac <_F6e732d646f2d686964652d656d616373_ns_do_hide_emacs_0>:
    4bac: b0000062     	adrp	x2, 0x11000 <_text_data_reloc_blob+0x118d>
    4bb0: 9133e042     	add	x2, x2, #0xcf8
    4bb4: d2800040     	mov	x0, #0x2                ; =2
    4bb8: a9be7bfd     	stp	x29, x30, [sp, #-0x20]!
    4bbc: 910003fd     	mov	x29, sp
    4bc0: 910043a1     	add	x1, x29, #0x10
    4bc4: d0000063     	adrp	x3, 0x12000 <_d_reloc+0x308>
    4bc8: 912da063     	add	x3, x3, #0xb68
    4bcc: f9402044     	ldr	x4, [x2, #0x40]
    4bd0: f9400065     	ldr	x5, [x3]
    4bd4: f9423043     	ldr	x3, [x2, #0x460]
    4bd8: f94d38a2     	ldr	x2, [x5, #0x1a70]
    4bdc: a90113a3     	stp	x3, x4, [x29, #0x10]
    4be0: d63f0040     	blr	x2
    4be4: a8c27bfd     	ldp	x29, x30, [sp], #0x20
    4be8: d65f03c0     	ret

0000000000004bec <_F6e732d646f2d686964652d6f7468657273_ns_do_hide_others_0>:
    4bec: d0000063     	adrp	x3, 0x12000 <_d_reloc+0x308>
    4bf0: 912da063     	add	x3, x3, #0xb68
    4bf4: d2800020     	mov	x0, #0x1                ; =1
    4bf8: a9be7bfd     	stp	x29, x30, [sp, #-0x20]!
    4bfc: 910003fd     	mov	x29, sp
    4c00: 910063a1     	add	x1, x29, #0x18
    4c04: b0000062     	adrp	x2, 0x11000 <_text_data_reloc_blob+0x118d>
    4c08: 9133e042     	add	x2, x2, #0xcf8
    4c0c: f9400064     	ldr	x4, [x3]
    4c10: f9428c43     	ldr	x3, [x2, #0x518]
    4c14: f94d3882     	ldr	x2, [x4, #0x1a70]
    4c18: f9000fa3     	str	x3, [x29, #0x18]
    4c1c: d63f0040     	blr	x2
    4c20: a8c27bfd     	ldp	x29, x30, [sp], #0x20
    4c24: d65f03c0     	ret

0000000000004c28 <_F6e732d646f2d656d6163732d696e666f2d70616e656c_ns_do_emacs_info_panel_0>:
    4c28: d0000063     	adrp	x3, 0x12000 <_d_reloc+0x308>
    4c2c: 912da063     	add	x3, x3, #0xb68
    4c30: d2800020     	mov	x0, #0x1                ; =1
    4c34: a9be7bfd     	stp	x29, x30, [sp, #-0x20]!
    4c38: 910003fd     	mov	x29, sp
    4c3c: 910063a1     	add	x1, x29, #0x18
    4c40: b0000062     	adrp	x2, 0x11000 <_text_data_reloc_blob+0x118d>
    4c44: 9133e042     	add	x2, x2, #0xcf8
    4c48: f9400064     	ldr	x4, [x3]
    4c4c: f9429043     	ldr	x3, [x2, #0x520]
    4c50: f94d3882     	ldr	x2, [x4, #0x1a70]
    4c54: f9000fa3     	str	x3, [x29, #0x18]
    4c58: d63f0040     	blr	x2
    4c5c: a8c27bfd     	ldp	x29, x30, [sp], #0x20
    4c60: d65f03c0     	ret

0000000000004c64 <_F6e732d646f2d73686f772d6368617261637465722d70616c65747465_ns_do_show_character_palette_0>:
    4c64: d0000063     	adrp	x3, 0x12000 <_d_reloc+0x308>
    4c68: 912da063     	add	x3, x3, #0xb68
    4c6c: d2800020     	mov	x0, #0x1                ; =1
    4c70: a9be7bfd     	stp	x29, x30, [sp, #-0x20]!
    4c74: 910003fd     	mov	x29, sp
    4c78: 910063a1     	add	x1, x29, #0x18
    4c7c: b0000062     	adrp	x2, 0x11000 <_text_data_reloc_blob+0x118d>
    4c80: 9133e042     	add	x2, x2, #0xcf8
    4c84: f9400064     	ldr	x4, [x3]
    4c88: f9429443     	ldr	x3, [x2, #0x528]
    4c8c: f94d3882     	ldr	x2, [x4, #0x1a70]
    4c90: f9000fa3     	str	x3, [x29, #0x18]
    4c94: d63f0040     	blr	x2
    4c98: a8c27bfd     	ldp	x29, x30, [sp], #0x20
    4c9c: d65f03c0     	ret

0000000000004ca0 <_F6e732d6e6578742d6672616d65_ns_next_frame_0>:
    4ca0: d0000063     	adrp	x3, 0x12000 <_d_reloc+0x308>
    4ca4: 912da063     	add	x3, x3, #0xb68
    4ca8: d28000c4     	mov	x4, #0x6                ; =6
    4cac: d2800040     	mov	x0, #0x2                ; =2
    4cb0: a9be7bfd     	stp	x29, x30, [sp, #-0x20]!
    4cb4: 910003fd     	mov	x29, sp
    4cb8: 910043a1     	add	x1, x29, #0x10
    4cbc: b0000062     	adrp	x2, 0x11000 <_text_data_reloc_blob+0x118d>
    4cc0: 9133e042     	add	x2, x2, #0xcf8
    4cc4: f9000fa4     	str	x4, [x29, #0x18]
    4cc8: f9400064     	ldr	x4, [x3]
    4ccc: f9429843     	ldr	x3, [x2, #0x530]
    4cd0: f94d3882     	ldr	x2, [x4, #0x1a70]
    4cd4: f9000ba3     	str	x3, [x29, #0x10]
    4cd8: d63f0040     	blr	x2
    4cdc: a8c27bfd     	ldp	x29, x30, [sp], #0x20
    4ce0: d65f03c0     	ret

0000000000004ce4 <_F6e732d707265762d6672616d65_ns_prev_frame_0>:
    4ce4: d0000063     	adrp	x3, 0x12000 <_d_reloc+0x308>
    4ce8: 912da063     	add	x3, x3, #0xb68
    4cec: 92800024     	mov	x4, #-0x2               ; =-2
    4cf0: d2800040     	mov	x0, #0x2                ; =2
    4cf4: a9be7bfd     	stp	x29, x30, [sp, #-0x20]!
    4cf8: 910003fd     	mov	x29, sp
    4cfc: 910043a1     	add	x1, x29, #0x10
    4d00: b0000062     	adrp	x2, 0x11000 <_text_data_reloc_blob+0x118d>
    4d04: 9133e042     	add	x2, x2, #0xcf8
    4d08: f9000fa4     	str	x4, [x29, #0x18]
    4d0c: f9400064     	ldr	x4, [x3]
    4d10: f9429843     	ldr	x3, [x2, #0x530]
    4d14: f94d3882     	ldr	x2, [x4, #0x1a70]
    4d18: f9000ba3     	str	x3, [x29, #0x10]
    4d1c: d63f0040     	blr	x2
    4d20: a8c27bfd     	ldp	x29, x30, [sp], #0x20
    4d24: d65f03c0     	ret

0000000000004d28 <_F6e732d746f67676c652d746f6f6c626172_ns_toggle_toolbar_0>:
    4d28: d0000061     	adrp	x1, 0x12000 <_d_reloc+0x308>
    4d2c: 912da021     	add	x1, x1, #0xb68
    4d30: a9bb7bfd     	stp	x29, x30, [sp, #-0x50]!
    4d34: 910003fd     	mov	x29, sp
    4d38: a90153f3     	stp	x19, x20, [sp, #0x10]
    4d3c: f9400033     	ldr	x19, [x1]
    4d40: b0000074     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    4d44: 9133e294     	add	x20, x20, #0xcf8
    4d48: f9466662     	ldr	x2, [x19, #0xcc8]
    4d4c: f942a681     	ldr	x1, [x20, #0x548]
    4d50: f90013f5     	str	x21, [sp, #0x20]
    4d54: aa0003f5     	mov	x21, x0
    4d58: d63f0040     	blr	x2
    4d5c: b40004a0     	cbz	x0, 0x4df0 <_F6e732d746f67676c652d746f6f6c626172_ns_toggle_toolbar_0+0xc8>
    4d60: aa0003e2     	mov	x2, x0
    4d64: d2800040     	mov	x0, #0x2                ; =2
    4d68: f9538a63     	ldr	x3, [x19, #0x2710]
    4d6c: 910103a1     	add	x1, x29, #0x40
    4d70: a90403a2     	stp	x2, x0, [x29, #0x40]
    4d74: d63f0060     	blr	x3
    4d78: b40004a0     	cbz	x0, 0x4e0c <_F6e732d746f67676c652d746f6f6c626172_ns_toggle_toolbar_0+0xe4>
    4d7c: f940b281     	ldr	x1, [x20, #0x160]
    4d80: f942a680     	ldr	x0, [x20, #0x548]
    4d84: f94fe262     	ldr	x2, [x19, #0x1fc0]
    4d88: d63f0040     	blr	x2
    4d8c: f94fe262     	ldr	x2, [x19, #0x1fc0]
    4d90: d2800001     	mov	x1, #0x0                ; =0
    4d94: d63f0040     	blr	x2
    4d98: f9466262     	ldr	x2, [x19, #0xcc0]
    4d9c: aa0003e1     	mov	x1, x0
    4da0: aa1503e0     	mov	x0, x21
    4da4: d63f0040     	blr	x2
    4da8: f953ce61     	ldr	x1, [x19, #0x2798]
    4dac: f942ae80     	ldr	x0, [x20, #0x558]
    4db0: d63f0020     	blr	x1
    4db4: f954c262     	ldr	x2, [x19, #0x2980]
    4db8: d2800001     	mov	x1, #0x0                ; =0
    4dbc: d63f0040     	blr	x2
    4dc0: b4000100     	cbz	x0, 0x4de0 <_F6e732d746f67676c652d746f6f6c626172_ns_toggle_toolbar_0+0xb8>
    4dc4: f9402284     	ldr	x4, [x20, #0x40]
    4dc8: 9100c3a1     	add	x1, x29, #0x30
    4dcc: d2800040     	mov	x0, #0x2                ; =2
    4dd0: f942ae83     	ldr	x3, [x20, #0x558]
    4dd4: f94d3a62     	ldr	x2, [x19, #0x1a70]
    4dd8: a90313a3     	stp	x3, x4, [x29, #0x30]
    4ddc: d63f0040     	blr	x2
    4de0: f94013f5     	ldr	x21, [sp, #0x20]
    4de4: a94153f3     	ldp	x19, x20, [sp, #0x10]
    4de8: a8c57bfd     	ldp	x29, x30, [sp], #0x50
    4dec: d65f03c0     	ret
    4df0: f940b282     	ldr	x2, [x20, #0x160]
    4df4: d2800040     	mov	x0, #0x2                ; =2
    4df8: 910103a1     	add	x1, x29, #0x40
    4dfc: f9538a63     	ldr	x3, [x19, #0x2710]
    4e00: a90403a2     	stp	x2, x0, [x29, #0x40]
    4e04: d63f0060     	blr	x3
    4e08: b5fffba0     	cbnz	x0, 0x4d7c <_F6e732d746f67676c652d746f6f6c626172_ns_toggle_toolbar_0+0x54>
    4e0c: f9403a81     	ldr	x1, [x20, #0x70]
    4e10: 17ffffdc     	b	0x4d80 <_F6e732d746f67676c652d746f6f6c626172_ns_toggle_toolbar_0+0x58>
    4e14: d503201f     	nop
    4e18: d503201f     	nop
    4e1c: d503201f     	nop

0000000000004e20 <_F6e732d7072696e742d627566666572_ns_print_buffer_0>:
    4e20: a9b77bfd     	stp	x29, x30, [sp, #-0x90]!
    4e24: 910003fd     	mov	x29, sp
    4e28: 9100c3a1     	add	x1, x29, #0x30
    4e2c: d2800040     	mov	x0, #0x2                ; =2
    4e30: a90153f3     	stp	x19, x20, [sp, #0x10]
    4e34: b0000074     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    4e38: 9133e294     	add	x20, x20, #0xcf8
    4e3c: d0000062     	adrp	x2, 0x12000 <_d_reloc+0x308>
    4e40: 912da042     	add	x2, x2, #0xb68
    4e44: 3dc15a9f     	ldr	q31, [x20, #0x560]
    4e48: f9400053     	ldr	x19, [x2]
    4e4c: 3d800fbf     	str	q31, [x29, #0x30]
    4e50: f94d3a62     	ldr	x2, [x19, #0x1a70]
    4e54: f90013f5     	str	x21, [sp, #0x20]
    4e58: d63f0040     	blr	x2
    4e5c: b4000a40     	cbz	x0, 0x4fa4 <_F6e732d7072696e742d627566666572_ns_print_buffer_0+0x184>
    4e60: f942be80     	ldr	x0, [x20, #0x578]
    4e64: f953ce61     	ldr	x1, [x19, #0x2798]
    4e68: d63f0020     	blr	x1
    4e6c: f954b261     	ldr	x1, [x19, #0x2960]
    4e70: d63f0020     	blr	x1
    4e74: b4000600     	cbz	x0, 0x4f34 <_F6e732d7072696e742d627566666572_ns_print_buffer_0+0x114>
    4e78: f942be80     	ldr	x0, [x20, #0x578]
    4e7c: f953ce61     	ldr	x1, [x19, #0x2798]
    4e80: d63f0020     	blr	x1
    4e84: f954b261     	ldr	x1, [x19, #0x2960]
    4e88: d63f0020     	blr	x1
    4e8c: b4000a40     	cbz	x0, 0x4fd4 <_F6e732d7072696e742d627566666572_ns_print_buffer_0+0x1b4>
    4e90: f953ce61     	ldr	x1, [x19, #0x2798]
    4e94: f942be80     	ldr	x0, [x20, #0x578]
    4e98: d63f0020     	blr	x1
    4e9c: aa0003e1     	mov	x1, x0
    4ea0: f9403262     	ldr	x2, [x19, #0x60]
    4ea4: f942be80     	ldr	x0, [x20, #0x578]
    4ea8: d63f0040     	blr	x2
    4eac: f94c7661     	ldr	x1, [x19, #0x18e8]
    4eb0: d2800000     	mov	x0, #0x0                ; =0
    4eb4: d63f0020     	blr	x1
    4eb8: f942ce83     	ldr	x3, [x20, #0x598]
    4ebc: aa0003e4     	mov	x4, x0
    4ec0: 910103a1     	add	x1, x29, #0x40
    4ec4: d2800040     	mov	x0, #0x2                ; =2
    4ec8: f9497a62     	ldr	x2, [x19, #0x12f0]
    4ecc: a90413a3     	stp	x3, x4, [x29, #0x40]
    4ed0: d63f0040     	blr	x2
    4ed4: f942c683     	ldr	x3, [x20, #0x588]
    4ed8: aa0003e4     	mov	x4, x0
    4edc: 910143a1     	add	x1, x29, #0x50
    4ee0: d2800040     	mov	x0, #0x2                ; =2
    4ee4: f94d3a62     	ldr	x2, [x19, #0x1a70]
    4ee8: a90513a3     	stp	x3, x4, [x29, #0x50]
    4eec: d63f0040     	blr	x2
    4ef0: f94d3a62     	ldr	x2, [x19, #0x1a70]
    4ef4: aa0003f5     	mov	x21, x0
    4ef8: b4000720     	cbz	x0, 0x4fdc <_F6e732d7072696e742d627566666572_ns_print_buffer_0+0x1bc>
    4efc: 910183a1     	add	x1, x29, #0x60
    4f00: d2800020     	mov	x0, #0x1                ; =1
    4f04: f942ba83     	ldr	x3, [x20, #0x570]
    4f08: f90033a3     	str	x3, [x29, #0x60]
    4f0c: d63f0040     	blr	x2
    4f10: f9401661     	ldr	x1, [x19, #0x28]
    4f14: aa0003f5     	mov	x21, x0
    4f18: d28000c0     	mov	x0, #0x6                ; =6
    4f1c: d63f0020     	blr	x1
    4f20: a94153f3     	ldp	x19, x20, [sp, #0x10]
    4f24: aa1503e0     	mov	x0, x21
    4f28: f94013f5     	ldr	x21, [sp, #0x20]
    4f2c: a8c97bfd     	ldp	x29, x30, [sp], #0x90
    4f30: d65f03c0     	ret
    4f34: f942e280     	ldr	x0, [x20, #0x5c0]
    4f38: f953ce61     	ldr	x1, [x19, #0x2798]
    4f3c: d63f0020     	blr	x1
    4f40: f942de83     	ldr	x3, [x20, #0x5b8]
    4f44: aa0003e4     	mov	x4, x0
    4f48: d2800040     	mov	x0, #0x2                ; =2
    4f4c: 9101c3a1     	add	x1, x29, #0x70
    4f50: f94d3a62     	ldr	x2, [x19, #0x1a70]
    4f54: a90713a3     	stp	x3, x4, [x29, #0x70]
    4f58: d63f0040     	blr	x2
    4f5c: f9543a61     	ldr	x1, [x19, #0x2870]
    4f60: d63f0020     	blr	x1
    4f64: b4000200     	cbz	x0, 0x4fa4 <_F6e732d7072696e742d627566666572_ns_print_buffer_0+0x184>
    4f68: f942e280     	ldr	x0, [x20, #0x5c0]
    4f6c: f953ce61     	ldr	x1, [x19, #0x2798]
    4f70: d63f0020     	blr	x1
    4f74: f942ea83     	ldr	x3, [x20, #0x5d0]
    4f78: aa0003e4     	mov	x4, x0
    4f7c: d2800040     	mov	x0, #0x2                ; =2
    4f80: 910203a1     	add	x1, x29, #0x80
    4f84: f94d3a62     	ldr	x2, [x19, #0x1a70]
    4f88: a90813a3     	stp	x3, x4, [x29, #0x80]
    4f8c: d63f0040     	blr	x2
    4f90: f951f662     	ldr	x2, [x19, #0x23e8]
    4f94: aa0003e1     	mov	x1, x0
    4f98: f942e680     	ldr	x0, [x20, #0x5c8]
    4f9c: d63f0040     	blr	x2
    4fa0: b5fff6c0     	cbnz	x0, 0x4e78 <_F6e732d7072696e742d627566666572_ns_print_buffer_0+0x58>
    4fa4: f942ba83     	ldr	x3, [x20, #0x570]
    4fa8: 910183a1     	add	x1, x29, #0x60
    4fac: d2800020     	mov	x0, #0x1                ; =1
    4fb0: f94d3a62     	ldr	x2, [x19, #0x1a70]
    4fb4: f90033a3     	str	x3, [x29, #0x60]
    4fb8: d63f0040     	blr	x2
    4fbc: aa0003f5     	mov	x21, x0
    4fc0: a94153f3     	ldp	x19, x20, [sp, #0x10]
    4fc4: aa1503e0     	mov	x0, x21
    4fc8: f94013f5     	ldr	x21, [sp, #0x20]
    4fcc: a8c97bfd     	ldp	x29, x30, [sp], #0x90
    4fd0: d65f03c0     	ret
    4fd4: f942c281     	ldr	x1, [x20, #0x580]
    4fd8: 17ffffb2     	b	0x4ea0 <_F6e732d7072696e742d627566666572_ns_print_buffer_0+0x80>
    4fdc: f9413284     	ldr	x4, [x20, #0x260]
    4fe0: 910183a1     	add	x1, x29, #0x60
    4fe4: d2800040     	mov	x0, #0x2                ; =2
    4fe8: f942d683     	ldr	x3, [x20, #0x5a8]
    4fec: a9060fa4     	stp	x4, x3, [x29, #0x60]
    4ff0: d63f0040     	blr	x2
    4ff4: 17ffffcb     	b	0x4f20 <_F6e732d7072696e742d627566666572_ns_print_buffer_0+0x100>
    4ff8: d503201f     	nop
    4ffc: d503201f     	nop

0000000000005000 <_F6e732d636f70792d696e636c7564696e672d7365636f6e64617279_ns_copy_including_secondary_0>:
    5000: b0000060     	adrp	x0, 0x12000 <_d_reloc+0x308>
    5004: 912da000     	add	x0, x0, #0xb68
    5008: d2800002     	mov	x2, #0x0                ; =0
    500c: d2800001     	mov	x1, #0x0                ; =0
    5010: a9ba7bfd     	stp	x29, x30, [sp, #-0x60]!
    5014: 910003fd     	mov	x29, sp
    5018: a90153f3     	stp	x19, x20, [sp, #0x10]
    501c: f9400014     	ldr	x20, [x0]
    5020: 90000073     	adrp	x19, 0x11000 <_text_data_reloc_blob+0x118d>
    5024: 9133e273     	add	x19, x19, #0xcf8
    5028: f94bbe83     	ldr	x3, [x20, #0x1778]
    502c: f942f260     	ldr	x0, [x19, #0x5e0]
    5030: f90013f5     	str	x21, [sp, #0x20]
    5034: d63f0060     	blr	x3
    5038: f94a4e80     	ldr	x0, [x20, #0x1498]
    503c: d63f0000     	blr	x0
    5040: f9402264     	ldr	x4, [x19, #0x40]
    5044: aa0003f5     	mov	x21, x0
    5048: 9100c3a1     	add	x1, x29, #0x30
    504c: d2800040     	mov	x0, #0x2                ; =2
    5050: 91180273     	add	x19, x19, #0x600
    5054: f85f8263     	ldur	x3, [x19, #-0x8]
    5058: f94d3a82     	ldr	x2, [x20, #0x1a70]
    505c: a90313a3     	stp	x3, x4, [x29, #0x30]
    5060: d63f0040     	blr	x2
    5064: f94a6682     	ldr	x2, [x20, #0x14c8]
    5068: aa0003e1     	mov	x1, x0
    506c: aa1503e0     	mov	x0, x21
    5070: d63f0040     	blr	x2
    5074: 3cde827f     	ldur	q31, [x19, #-0x18]
    5078: aa0003e3     	mov	x3, x0
    507c: 910103a1     	add	x1, x29, #0x40
    5080: d2800060     	mov	x0, #0x3                ; =3
    5084: f94d3a82     	ldr	x2, [x20, #0x1a70]
    5088: f9002ba3     	str	x3, [x29, #0x50]
    508c: 3d8013bf     	str	q31, [x29, #0x40]
    5090: d63f0040     	blr	x2
    5094: f94013f5     	ldr	x21, [sp, #0x20]
    5098: a94153f3     	ldp	x19, x20, [sp, #0x10]
    509c: a8c67bfd     	ldp	x29, x30, [sp], #0x60
    50a0: d65f03c0     	ret

00000000000050a4 <_F6e732d70617374652d7365636f6e64617279_ns_paste_secondary_0>:
    50a4: 90000062     	adrp	x2, 0x11000 <_text_data_reloc_blob+0x118d>
    50a8: 9133e042     	add	x2, x2, #0xcf8
    50ac: d2800040     	mov	x0, #0x2                ; =2
    50b0: a9bc7bfd     	stp	x29, x30, [sp, #-0x40]!
    50b4: 910003fd     	mov	x29, sp
    50b8: 9100c3a1     	add	x1, x29, #0x30
    50bc: b0000063     	adrp	x3, 0x12000 <_d_reloc+0x308>
    50c0: 912da063     	add	x3, x3, #0xb68
    50c4: f942f844     	ldr	x4, [x2, #0x5f0]
    50c8: f9000bf3     	str	x19, [sp, #0x10]
    50cc: f9400073     	ldr	x19, [x3]
    50d0: f9430043     	ldr	x3, [x2, #0x600]
    50d4: a90313a3     	stp	x3, x4, [x29, #0x30]
    50d8: f94d3a62     	ldr	x2, [x19, #0x1a70]
    50dc: d63f0040     	blr	x2
    50e0: aa0003e3     	mov	x3, x0
    50e4: f949ce62     	ldr	x2, [x19, #0x1398]
    50e8: 9100a3a1     	add	x1, x29, #0x28
    50ec: d2800020     	mov	x0, #0x1                ; =1
    50f0: f90017a3     	str	x3, [x29, #0x28]
    50f4: d63f0040     	blr	x2
    50f8: f9400bf3     	ldr	x19, [sp, #0x10]
    50fc: a8c47bfd     	ldp	x29, x30, [sp], #0x40
    5100: d65f03c0     	ret

0000000000005104 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0>:
    5104: a9b57bfd     	stp	x29, x30, [sp, #-0xb0]!
    5108: 910003fd     	mov	x29, sp
    510c: a90363f7     	stp	x23, x24, [sp, #0x30]
    5110: b0000078     	adrp	x24, 0x12000 <_d_reloc+0x308>
    5114: 912da318     	add	x24, x24, #0xb68
    5118: a90153f3     	stp	x19, x20, [sp, #0x10]
    511c: aa0003f4     	mov	x20, x0
    5120: 51000c00     	sub	w0, w0, #0x3
    5124: a9025bf5     	stp	x21, x22, [sp, #0x20]
    5128: a9046bf9     	stp	x25, x26, [sp, #0x40]
    512c: a90573fb     	stp	x27, x28, [sp, #0x50]
    5130: f9400313     	ldr	x19, [x24]
    5134: f240081f     	tst	x0, #0x7
    5138: 54001221     	b.ne	0x537c <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x278>
    513c: d1000e94     	sub	x20, x20, #0x3
    5140: a9408697     	ldp	x23, x1, [x20, #0x8]
    5144: 51000c20     	sub	w0, w1, #0x3
    5148: f240081f     	tst	x0, #0x7
    514c: 540017c1     	b.ne	0x5444 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x340>
    5150: f8405020     	ldur	x0, [x1, #0x5]
    5154: d1000c21     	sub	x1, x1, #0x3
    5158: 90000076     	adrp	x22, 0x11000 <_text_data_reloc_blob+0x118d>
    515c: 9133e2d6     	add	x22, x22, #0xcf8
    5160: f9400821     	ldr	x1, [x1, #0x10]
    5164: f94fe262     	ldr	x2, [x19, #0x1fc0]
    5168: d63f0040     	blr	x2
    516c: aa0003f5     	mov	x21, x0
    5170: 51000c00     	sub	w0, w0, #0x3
    5174: f240081f     	tst	x0, #0x7
    5178: 54000e61     	b.ne	0x5344 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x240>
    517c: d1000ea0     	sub	x0, x21, #0x3
    5180: a9408400     	ldp	x0, x1, [x0, #0x8]
    5184: aa1703e2     	mov	x2, x23
    5188: f9432263     	ldr	x3, [x19, #0x640]
    518c: d63f0060     	blr	x3
    5190: f9432662     	ldr	x2, [x19, #0x648]
    5194: aa0003f4     	mov	x20, x0
    5198: aa1503e0     	mov	x0, x21
    519c: aa1403e1     	mov	x1, x20
    51a0: d63f0040     	blr	x2
    51a4: f943ce61     	ldr	x1, [x19, #0x798]
    51a8: aa0003f7     	mov	x23, x0
    51ac: aa1403e0     	mov	x0, x20
    51b0: d63f0020     	blr	x1
    51b4: f94312c3     	ldr	x3, [x22, #0x620]
    51b8: aa0003fa     	mov	x26, x0
    51bc: d2800040     	mov	x0, #0x2                ; =2
    51c0: 9101c3a1     	add	x1, x29, #0x70
    51c4: f94d3a62     	ldr	x2, [x19, #0x1a70]
    51c8: a90753a3     	stp	x3, x20, [x29, #0x70]
    51cc: d63f0040     	blr	x2
    51d0: aa0003fb     	mov	x27, x0
    51d4: b4001277     	cbz	x23, 0x5420 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x31c>
    51d8: f9431ad9     	ldr	x25, [x22, #0x630]
    51dc: eb1902ff     	cmp	x23, x25
    51e0: 54000a20     	b.eq	0x5324 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x220>
    51e4: b000007c     	adrp	x28, 0x12000 <_d_reloc+0x308>
    51e8: 912d839c     	add	x28, x28, #0xb60
    51ec: f9400380     	ldr	x0, [x28]
    51f0: 39400000     	ldrb	w0, [x0]
    51f4: 370014c0     	tbnz	w0, #0x0, 0x548c <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x388>
    51f8: f9431ec0     	ldr	x0, [x22, #0x638]
    51fc: 2a1703e2     	mov	w2, w23
    5200: eb17001f     	cmp	x0, x23
    5204: 54001740     	b.eq	0x54ec <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x3e8>
    5208: 51000c42     	sub	w2, w2, #0x3
    520c: f240085f     	tst	x2, #0x7
    5210: 54001081     	b.ne	0x5420 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x31c>
    5214: f94022c0     	ldr	x0, [x22, #0x40]
    5218: b4001040     	cbz	x0, 0x5420 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x31c>
    521c: f9402660     	ldr	x0, [x19, #0x48]
    5220: d63f0000     	blr	x0
    5224: f94c2a61     	ldr	x1, [x19, #0x1850]
    5228: aa1a03e0     	mov	x0, x26
    522c: d63f0020     	blr	x1
    5230: f9431661     	ldr	x1, [x19, #0x628]
    5234: aa1403e0     	mov	x0, x20
    5238: d63f0020     	blr	x1
    523c: aa0003f7     	mov	x23, x0
    5240: 51000f61     	sub	w1, w27, #0x3
    5244: f240083f     	tst	x1, #0x7
    5248: 54001641     	b.ne	0x5510 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x40c>
    524c: d1000f60     	sub	x0, x27, #0x3
    5250: a9408419     	ldp	x25, x1, [x0, #0x8]
    5254: 51000c20     	sub	w0, w1, #0x3
    5258: f240081f     	tst	x0, #0x7
    525c: 540027e1     	b.ne	0x5758 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x654>
    5260: f8405021     	ldur	x1, [x1, #0x5]
    5264: aa1903e0     	mov	x0, x25
    5268: f94fe262     	ldr	x2, [x19, #0x1fc0]
    526c: d63f0040     	blr	x2
    5270: f9431262     	ldr	x2, [x19, #0x620]
    5274: d2800001     	mov	x1, #0x0                ; =0
    5278: aa0003f9     	mov	x25, x0
    527c: aa1403e0     	mov	x0, x20
    5280: d63f0040     	blr	x2
    5284: f9432ec3     	ldr	x3, [x22, #0x658]
    5288: 910203a1     	add	x1, x29, #0x80
    528c: aa0003fa     	mov	x26, x0
    5290: d2800040     	mov	x0, #0x2                ; =2
    5294: f94d3a62     	ldr	x2, [x19, #0x1a70]
    5298: a90853a3     	stp	x3, x20, [x29, #0x80]
    529c: d63f0040     	blr	x2
    52a0: 51000801     	sub	w1, w0, #0x2
    52a4: f240043f     	tst	x1, #0x3
    52a8: 54001501     	b.ne	0x5548 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x444>
    52ac: 9342fc04     	asr	x4, x0, #2
    52b0: d2fc0001     	mov	x1, #-0x2000000000000000 ; =-2305843009213693952
    52b4: eb01009f     	cmp	x4, x1
    52b8: 54001480     	b.eq	0x5548 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x444>
    52bc: d37ef484     	lsl	x4, x4, #2
    52c0: d1000884     	sub	x4, x4, #0x2
    52c4: f948fe67     	ldr	x7, [x19, #0x11f8]
    52c8: aa1903e1     	mov	x1, x25
    52cc: aa1503e3     	mov	x3, x21
    52d0: aa1a03e2     	mov	x2, x26
    52d4: aa1703e0     	mov	x0, x23
    52d8: aa1403e6     	mov	x6, x20
    52dc: d2800005     	mov	x5, #0x0                ; =0
    52e0: d63f00e0     	blr	x7
    52e4: 51000c01     	sub	w1, w0, #0x3
    52e8: f240083f     	tst	x1, #0x7
    52ec: 54001ac1     	b.ne	0x5644 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x540>
    52f0: f8405015     	ldur	x21, [x0, #0x5]
    52f4: aa1403e0     	mov	x0, x20
    52f8: f9431e61     	ldr	x1, [x19, #0x638]
    52fc: d63f0020     	blr	x1
    5300: f954c262     	ldr	x2, [x19, #0x2980]
    5304: aa0003e1     	mov	x1, x0
    5308: aa1503e0     	mov	x0, x21
    530c: d63f0040     	blr	x2
    5310: b4001260     	cbz	x0, 0x555c <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x458>
    5314: f9433ad9     	ldr	x25, [x22, #0x670]
    5318: d28000c0     	mov	x0, #0x6                ; =6
    531c: f9401661     	ldr	x1, [x19, #0x28]
    5320: d63f0020     	blr	x1
    5324: a94153f3     	ldp	x19, x20, [sp, #0x10]
    5328: aa1903e0     	mov	x0, x25
    532c: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    5330: a94363f7     	ldp	x23, x24, [sp, #0x30]
    5334: a9446bf9     	ldp	x25, x26, [sp, #0x40]
    5338: a94573fb     	ldp	x27, x28, [sp, #0x50]
    533c: a8cb7bfd     	ldp	x29, x30, [sp], #0xb0
    5340: d65f03c0     	ret
    5344: b4000175     	cbz	x21, 0x5370 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x26c>
    5348: f9400302     	ldr	x2, [x24]
    534c: aa1503e1     	mov	x1, x21
    5350: f944bac0     	ldr	x0, [x22, #0x970]
    5354: f9400042     	ldr	x2, [x2]
    5358: d63f0040     	blr	x2
    535c: f9400302     	ldr	x2, [x24]
    5360: aa1503e1     	mov	x1, x21
    5364: f944bac0     	ldr	x0, [x22, #0x970]
    5368: f9400042     	ldr	x2, [x2]
    536c: d63f0040     	blr	x2
    5370: d2800000     	mov	x0, #0x0                ; =0
    5374: d2800001     	mov	x1, #0x0                ; =0
    5378: 17ffff83     	b	0x5184 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x80>
    537c: 90000076     	adrp	x22, 0x11000 <_text_data_reloc_blob+0x118d>
    5380: 9133e2d6     	add	x22, x22, #0xcf8
    5384: b40001f4     	cbz	x20, 0x53c0 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x2bc>
    5388: aa1403e1     	mov	x1, x20
    538c: f9400262     	ldr	x2, [x19]
    5390: f944bac0     	ldr	x0, [x22, #0x970]
    5394: d63f0040     	blr	x2
    5398: f9400302     	ldr	x2, [x24]
    539c: aa1403e1     	mov	x1, x20
    53a0: f944bac0     	ldr	x0, [x22, #0x970]
    53a4: f9400042     	ldr	x2, [x2]
    53a8: d63f0040     	blr	x2
    53ac: f9400302     	ldr	x2, [x24]
    53b0: aa1403e1     	mov	x1, x20
    53b4: f944bac0     	ldr	x0, [x22, #0x970]
    53b8: f9400042     	ldr	x2, [x2]
    53bc: d63f0040     	blr	x2
    53c0: d2800017     	mov	x23, #0x0               ; =0
    53c4: d2800000     	mov	x0, #0x0                ; =0
    53c8: d2800001     	mov	x1, #0x0                ; =0
    53cc: 17ffff66     	b	0x5164 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x60>
    53d0: f9400303     	ldr	x3, [x24]
    53d4: 528000c1     	mov	w1, #0x6                ; =6
    53d8: aa1703e0     	mov	x0, x23
    53dc: b9006bb7     	str	w23, [x29, #0x68]
    53e0: f9400463     	ldr	x3, [x3, #0x8]
    53e4: d63f0060     	blr	x3
    53e8: b9406ba2     	ldr	w2, [x29, #0x68]
    53ec: 37000e80     	tbnz	w0, #0x0, 0x55bc <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x4b8>
    53f0: f9431ec0     	ldr	x0, [x22, #0x638]
    53f4: eb17001f     	cmp	x0, x23
    53f8: 540007a0     	b.eq	0x54ec <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x3e8>
    53fc: f9400380     	ldr	x0, [x28]
    5400: 39400000     	ldrb	w0, [x0]
    5404: 3607f020     	tbz	w0, #0x0, 0x5208 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x104>
    5408: f9400302     	ldr	x2, [x24]
    540c: 528000c1     	mov	w1, #0x6                ; =6
    5410: aa1703e0     	mov	x0, x23
    5414: f9400442     	ldr	x2, [x2, #0x8]
    5418: d63f0040     	blr	x2
    541c: 370014e0     	tbnz	w0, #0x0, 0x56b8 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x5b4>
    5420: d2800019     	mov	x25, #0x0               ; =0
    5424: a94153f3     	ldp	x19, x20, [sp, #0x10]
    5428: aa1903e0     	mov	x0, x25
    542c: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    5430: a94363f7     	ldp	x23, x24, [sp, #0x30]
    5434: a9446bf9     	ldp	x25, x26, [sp, #0x40]
    5438: a94573fb     	ldp	x27, x28, [sp, #0x50]
    543c: a8cb7bfd     	ldp	x29, x30, [sp], #0xb0
    5440: d65f03c0     	ret
    5444: 90000076     	adrp	x22, 0x11000 <_text_data_reloc_blob+0x118d>
    5448: 9133e2d6     	add	x22, x22, #0xcf8
    544c: b40001a1     	cbz	x1, 0x5480 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x37c>
    5450: f9400262     	ldr	x2, [x19]
    5454: f944bac0     	ldr	x0, [x22, #0x970]
    5458: d63f0040     	blr	x2
    545c: f9400a81     	ldr	x1, [x20, #0x10]
    5460: 51000c20     	sub	w0, w1, #0x3
    5464: f240081f     	tst	x0, #0x7
    5468: 540018e0     	b.eq	0x5784 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x680>
    546c: b40000a1     	cbz	x1, 0x5480 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x37c>
    5470: f9400302     	ldr	x2, [x24]
    5474: f944bac0     	ldr	x0, [x22, #0x970]
    5478: f9400042     	ldr	x2, [x2]
    547c: d63f0040     	blr	x2
    5480: d2800000     	mov	x0, #0x0                ; =0
    5484: d2800001     	mov	x1, #0x0                ; =0
    5488: 17ffff37     	b	0x5164 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x60>
    548c: 510016e0     	sub	w0, w23, #0x5
    5490: 2a1703e2     	mov	w2, w23
    5494: f240081f     	tst	x0, #0x7
    5498: 54fff9c0     	b.eq	0x53d0 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x2cc>
    549c: 51001720     	sub	w0, w25, #0x5
    54a0: 2a170000     	orr	w0, w0, w23
    54a4: f240081f     	tst	x0, #0x7
    54a8: 54000de0     	b.eq	0x5664 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x560>
    54ac: f9431ec0     	ldr	x0, [x22, #0x638]
    54b0: eb0002ff     	cmp	x23, x0
    54b4: 540001c0     	b.eq	0x54ec <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x3e8>
    54b8: 51001401     	sub	w1, w0, #0x5
    54bc: 2a170021     	orr	w1, w1, w23
    54c0: f240083f     	tst	x1, #0x7
    54c4: 54ffea21     	b.ne	0x5208 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x104>
    54c8: f9400302     	ldr	x2, [x24]
    54cc: 528000c1     	mov	w1, #0x6                ; =6
    54d0: f9400442     	ldr	x2, [x2, #0x8]
    54d4: d63f0040     	blr	x2
    54d8: 3607fa40     	tbz	w0, #0x0, 0x5420 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x31c>
    54dc: f9431ec0     	ldr	x0, [x22, #0x638]
    54e0: 97fff418     	bl	0x2540 <_SYMBOL_WITH_POS_SYM>
    54e4: eb0002ff     	cmp	x23, x0
    54e8: 54fff9c1     	b.ne	0x5420 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x31c>
    54ec: f9433ed9     	ldr	x25, [x22, #0x678]
    54f0: a94153f3     	ldp	x19, x20, [sp, #0x10]
    54f4: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    54f8: aa1903e0     	mov	x0, x25
    54fc: a94363f7     	ldp	x23, x24, [sp, #0x30]
    5500: a9446bf9     	ldp	x25, x26, [sp, #0x40]
    5504: a94573fb     	ldp	x27, x28, [sp, #0x50]
    5508: a8cb7bfd     	ldp	x29, x30, [sp], #0xb0
    550c: d65f03c0     	ret
    5510: b400017b     	cbz	x27, 0x553c <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x438>
    5514: f9400302     	ldr	x2, [x24]
    5518: aa1b03e1     	mov	x1, x27
    551c: f944bac0     	ldr	x0, [x22, #0x970]
    5520: f9400042     	ldr	x2, [x2]
    5524: d63f0040     	blr	x2
    5528: f9400302     	ldr	x2, [x24]
    552c: aa1b03e1     	mov	x1, x27
    5530: f944bac0     	ldr	x0, [x22, #0x970]
    5534: f9400042     	ldr	x2, [x2]
    5538: d63f0040     	blr	x2
    553c: d2800019     	mov	x25, #0x0               ; =0
    5540: d2800001     	mov	x1, #0x0                ; =0
    5544: 17ffff48     	b	0x5264 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x160>
    5548: f9400301     	ldr	x1, [x24]
    554c: f9534021     	ldr	x1, [x1, #0x2680]
    5550: d63f0020     	blr	x1
    5554: aa0003e4     	mov	x4, x0
    5558: 17ffff5b     	b	0x52c4 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x1c0>
    555c: f940aac0     	ldr	x0, [x22, #0x150]
    5560: f953ce61     	ldr	x1, [x19, #0x2798]
    5564: d63f0020     	blr	x1
    5568: b4000de0     	cbz	x0, 0x5724 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x620>
    556c: f94a4a60     	ldr	x0, [x19, #0x1490]
    5570: d63f0000     	blr	x0
    5574: aa0003e3     	mov	x3, x0
    5578: f9538e62     	ldr	x2, [x19, #0x2718]
    557c: 910243a1     	add	x1, x29, #0x90
    5580: d2800040     	mov	x0, #0x2                ; =2
    5584: a90957a3     	stp	x3, x21, [x29, #0x90]
    5588: d63f0040     	blr	x2
    558c: b4000cc0     	cbz	x0, 0x5724 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x620>
    5590: f94a4660     	ldr	x0, [x19, #0x1488]
    5594: d63f0000     	blr	x0
    5598: aa0003e3     	mov	x3, x0
    559c: f9538e62     	ldr	x2, [x19, #0x2718]
    55a0: 910283a1     	add	x1, x29, #0xa0
    55a4: d2800040     	mov	x0, #0x2                ; =2
    55a8: a90a0fb5     	stp	x21, x3, [x29, #0xa0]
    55ac: d63f0040     	blr	x2
    55b0: b4000ba0     	cbz	x0, 0x5724 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x620>
    55b4: f94336d9     	ldr	x25, [x22, #0x668]
    55b8: 17ffff58     	b	0x5318 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x214>
    55bc: f9431ac0     	ldr	x0, [x22, #0x630]
    55c0: 51001401     	sub	w1, w0, #0x5
    55c4: 2a0003f9     	mov	w25, w0
    55c8: f240083f     	tst	x1, #0x7
    55cc: 54000281     	b.ne	0x561c <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x518>
    55d0: f9400303     	ldr	x3, [x24]
    55d4: 528000c1     	mov	w1, #0x6                ; =6
    55d8: b9006ba2     	str	w2, [x29, #0x68]
    55dc: f9400463     	ldr	x3, [x3, #0x8]
    55e0: d63f0060     	blr	x3
    55e4: b9406ba2     	ldr	w2, [x29, #0x68]
    55e8: 36000c60     	tbz	w0, #0x0, 0x5774 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x670>
    55ec: aa1703e0     	mov	x0, x23
    55f0: b90067a2     	str	w2, [x29, #0x64]
    55f4: 97fff3d3     	bl	0x2540 <_SYMBOL_WITH_POS_SYM>
    55f8: aa0003e1     	mov	x1, x0
    55fc: f9431ac0     	ldr	x0, [x22, #0x630]
    5600: f90037a1     	str	x1, [x29, #0x68]
    5604: 97fff3cf     	bl	0x2540 <_SYMBOL_WITH_POS_SYM>
    5608: f94037a1     	ldr	x1, [x29, #0x68]
    560c: f9431ad9     	ldr	x25, [x22, #0x630]
    5610: eb00003f     	cmp	x1, x0
    5614: 54ffe880     	b.eq	0x5324 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x220>
    5618: b94067a2     	ldr	w2, [x29, #0x64]
    561c: f2400b3f     	tst	x25, #0x7
    5620: 54ffee81     	b.ne	0x53f0 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x2ec>
    5624: aa1703e0     	mov	x0, x23
    5628: b9006ba2     	str	w2, [x29, #0x68]
    562c: 97fff3c5     	bl	0x2540 <_SYMBOL_WITH_POS_SYM>
    5630: f9431ad9     	ldr	x25, [x22, #0x630]
    5634: b9406ba2     	ldr	w2, [x29, #0x68]
    5638: eb00033f     	cmp	x25, x0
    563c: 54ffeda1     	b.ne	0x53f0 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x2ec>
    5640: 17ffff39     	b	0x5324 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x220>
    5644: b40000c0     	cbz	x0, 0x565c <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x558>
    5648: f9400302     	ldr	x2, [x24]
    564c: aa0003e1     	mov	x1, x0
    5650: f944bac0     	ldr	x0, [x22, #0x970]
    5654: f9400042     	ldr	x2, [x2]
    5658: d63f0040     	blr	x2
    565c: d2800015     	mov	x21, #0x0               ; =0
    5660: 17ffff25     	b	0x52f4 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x1f0>
    5664: f9400303     	ldr	x3, [x24]
    5668: aa1903e0     	mov	x0, x25
    566c: 528000c1     	mov	w1, #0x6                ; =6
    5670: b9006bb7     	str	w23, [x29, #0x68]
    5674: f9400463     	ldr	x3, [x3, #0x8]
    5678: d63f0060     	blr	x3
    567c: b9406ba2     	ldr	w2, [x29, #0x68]
    5680: 360000e0     	tbz	w0, #0x0, 0x569c <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x598>
    5684: b9006ba2     	str	w2, [x29, #0x68]
    5688: f9431ac0     	ldr	x0, [x22, #0x630]
    568c: 97fff3ad     	bl	0x2540 <_SYMBOL_WITH_POS_SYM>
    5690: eb0002ff     	cmp	x23, x0
    5694: b9406ba2     	ldr	w2, [x29, #0x68]
    5698: 54000720     	b.eq	0x577c <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x678>
    569c: f9431ec0     	ldr	x0, [x22, #0x638]
    56a0: eb0002ff     	cmp	x23, x0
    56a4: 54fff240     	b.eq	0x54ec <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x3e8>
    56a8: f9400381     	ldr	x1, [x28]
    56ac: 39400021     	ldrb	w1, [x1]
    56b0: 3707f041     	tbnz	w1, #0x0, 0x54b8 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x3b4>
    56b4: 17fffed5     	b	0x5208 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x104>
    56b8: f9431ec0     	ldr	x0, [x22, #0x638]
    56bc: 51001402     	sub	w2, w0, #0x5
    56c0: 2a0003e1     	mov	w1, w0
    56c4: f240085f     	tst	x2, #0x7
    56c8: 540001c1     	b.ne	0x5700 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x5fc>
    56cc: f9400302     	ldr	x2, [x24]
    56d0: 528000c1     	mov	w1, #0x6                ; =6
    56d4: f9400442     	ldr	x2, [x2, #0x8]
    56d8: d63f0040     	blr	x2
    56dc: 36000100     	tbz	w0, #0x0, 0x56fc <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x5f8>
    56e0: aa1703e0     	mov	x0, x23
    56e4: 97fff397     	bl	0x2540 <_SYMBOL_WITH_POS_SYM>
    56e8: aa0003f3     	mov	x19, x0
    56ec: f9431ec0     	ldr	x0, [x22, #0x638]
    56f0: 97fff394     	bl	0x2540 <_SYMBOL_WITH_POS_SYM>
    56f4: eb00027f     	cmp	x19, x0
    56f8: 54ffefa0     	b.eq	0x54ec <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x3e8>
    56fc: b9463ac1     	ldr	w1, [x22, #0x638]
    5700: f240083f     	tst	x1, #0x7
    5704: 54ffe8e1     	b.ne	0x5420 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x31c>
    5708: aa1703e0     	mov	x0, x23
    570c: 97fff38d     	bl	0x2540 <_SYMBOL_WITH_POS_SYM>
    5710: f9431ec1     	ldr	x1, [x22, #0x638]
    5714: eb00003f     	cmp	x1, x0
    5718: 54ffeea0     	b.eq	0x54ec <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x3e8>
    571c: d2800019     	mov	x25, #0x0               ; =0
    5720: 17ffff41     	b	0x5424 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x320>
    5724: f9419ac1     	ldr	x1, [x22, #0x330]
    5728: aa1403e2     	mov	x2, x20
    572c: aa1503e0     	mov	x0, x21
    5730: f9446a63     	ldr	x3, [x19, #0x8d0]
    5734: d63f0060     	blr	x3
    5738: aa0003f9     	mov	x25, x0
    573c: 51000c00     	sub	w0, w0, #0x3
    5740: f240081f     	tst	x0, #0x7
    5744: 54ffdea1     	b.ne	0x5318 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x214>
    5748: f94022c0     	ldr	x0, [x22, #0x40]
    574c: b4ffde60     	cbz	x0, 0x5318 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x214>
    5750: f8405339     	ldur	x25, [x25, #0x5]
    5754: 17fffef1     	b	0x5318 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x214>
    5758: b40000a1     	cbz	x1, 0x576c <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x668>
    575c: f9400302     	ldr	x2, [x24]
    5760: f944bac0     	ldr	x0, [x22, #0x970]
    5764: f9400042     	ldr	x2, [x2]
    5768: d63f0040     	blr	x2
    576c: d2800001     	mov	x1, #0x0                ; =0
    5770: 17fffebd     	b	0x5264 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x160>
    5774: b94632d9     	ldr	w25, [x22, #0x630]
    5778: 17ffffa9     	b	0x561c <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x518>
    577c: f9431ad9     	ldr	x25, [x22, #0x630]
    5780: 17fffee9     	b	0x5324 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x220>
    5784: d2800000     	mov	x0, #0x0                ; =0
    5788: d1000c21     	sub	x1, x1, #0x3
    578c: 17fffe75     	b	0x5160 <_F6e732d666163652d61742d706f73_ns_face_at_pos_0+0x5c>

0000000000005790 <_F6e732d73757370656e642d6572726f72_ns_suspend_error_0>:
    5790: b0000060     	adrp	x0, 0x12000 <_d_reloc+0x308>
    5794: 912da000     	add	x0, x0, #0xb68
    5798: a9bd7bfd     	stp	x29, x30, [sp, #-0x30]!
    579c: 910003fd     	mov	x29, sp
    57a0: a90153f3     	stp	x19, x20, [sp, #0x10]
    57a4: f9400013     	ldr	x19, [x0]
    57a8: 90000074     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    57ac: 9133e294     	add	x20, x20, #0xcf8
    57b0: f946c260     	ldr	x0, [x19, #0xd80]
    57b4: d63f0000     	blr	x0
    57b8: f9519e62     	ldr	x2, [x19, #0x2338]
    57bc: aa0003e1     	mov	x1, x0
    57c0: f9434680     	ldr	x0, [x20, #0x688]
    57c4: d63f0040     	blr	x2
    57c8: f951f662     	ldr	x2, [x19, #0x23e8]
    57cc: aa0003e1     	mov	x1, x0
    57d0: f9434280     	ldr	x0, [x20, #0x680]
    57d4: d63f0040     	blr	x2
    57d8: b4000100     	cbz	x0, 0x57f8 <_F6e732d73757370656e642d6572726f72_ns_suspend_error_0+0x68>
    57dc: f9413284     	ldr	x4, [x20, #0x260]
    57e0: 910083a1     	add	x1, x29, #0x20
    57e4: d2800040     	mov	x0, #0x2                ; =2
    57e8: f9434e83     	ldr	x3, [x20, #0x698]
    57ec: f94d3a62     	ldr	x2, [x19, #0x1a70]
    57f0: a9020fa4     	stp	x4, x3, [x29, #0x20]
    57f4: d63f0040     	blr	x2
    57f8: a94153f3     	ldp	x19, x20, [sp, #0x10]
    57fc: d2800000     	mov	x0, #0x0                ; =0
    5800: a8c37bfd     	ldp	x29, x30, [sp], #0x30
    5804: d65f03c0     	ret

0000000000005808 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_4>:
    5808: b0000060     	adrp	x0, 0x12000 <_d_reloc+0x308>
    580c: 912da000     	add	x0, x0, #0xb68
    5810: 52800003     	mov	w3, #0x0                ; =0
    5814: d2800002     	mov	x2, #0x0                ; =0
    5818: a9be7bfd     	stp	x29, x30, [sp, #-0x20]!
    581c: 910003fd     	mov	x29, sp
    5820: a90153f3     	stp	x19, x20, [sp, #0x10]
    5824: f9400014     	ldr	x20, [x0]
    5828: 90000073     	adrp	x19, 0x11000 <_text_data_reloc_blob+0x118d>
    582c: 9133e273     	add	x19, x19, #0xcf8
    5830: f9402a84     	ldr	x4, [x20, #0x50]
    5834: f9435261     	ldr	x1, [x19, #0x6a0]
    5838: f9435660     	ldr	x0, [x19, #0x6a8]
    583c: d63f0080     	blr	x4
    5840: f9402a84     	ldr	x4, [x20, #0x50]
    5844: 52800003     	mov	w3, #0x0                ; =0
    5848: d2800002     	mov	x2, #0x0                ; =0
    584c: f9435a61     	ldr	x1, [x19, #0x6b0]
    5850: f9435e60     	ldr	x0, [x19, #0x6b8]
    5854: d63f0080     	blr	x4
    5858: f9435a60     	ldr	x0, [x19, #0x6b0]
    585c: a94153f3     	ldp	x19, x20, [sp, #0x10]
    5860: a8c27bfd     	ldp	x29, x30, [sp], #0x20
    5864: d65f03c0     	ret

0000000000005868 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5>:
    5868: b0000061     	adrp	x1, 0x12000 <_d_reloc+0x308>
    586c: 912da021     	add	x1, x1, #0xb68
    5870: a9b77bfd     	stp	x29, x30, [sp, #-0x90]!
    5874: 910003fd     	mov	x29, sp
    5878: a90153f3     	stp	x19, x20, [sp, #0x10]
    587c: 90000073     	adrp	x19, 0x11000 <_text_data_reloc_blob+0x118d>
    5880: 9133e273     	add	x19, x19, #0xcf8
    5884: a9025bf5     	stp	x21, x22, [sp, #0x20]
    5888: a90363f7     	stp	x23, x24, [sp, #0x30]
    588c: f9002ba0     	str	x0, [x29, #0x50]
    5890: f9400020     	ldr	x0, [x1]
    5894: f953cc01     	ldr	x1, [x0, #0x2798]
    5898: f90027a0     	str	x0, [x29, #0x48]
    589c: f9436260     	ldr	x0, [x19, #0x6c0]
    58a0: d63f0020     	blr	x1
    58a4: b4000100     	cbz	x0, 0x58c4 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x5c>
    58a8: 3dc2127f     	ldr	q31, [x19, #0x840]
    58ac: 910163a1     	add	x1, x29, #0x58
    58b0: d2800040     	mov	x0, #0x2                ; =2
    58b4: f94027a2     	ldr	x2, [x29, #0x48]
    58b8: 3c8583bf     	stur	q31, [x29, #0x58]
    58bc: f94d3842     	ldr	x2, [x2, #0x1a70]
    58c0: d63f0040     	blr	x2
    58c4: 90000073     	adrp	x19, 0x11000 <_text_data_reloc_blob+0x118d>
    58c8: 9133e273     	add	x19, x19, #0xcf8
    58cc: 910163b4     	add	x20, x29, #0x58
    58d0: f94027b5     	ldr	x21, [x29, #0x48]
    58d4: f9436662     	ldr	x2, [x19, #0x6c8]
    58d8: f9436a60     	ldr	x0, [x19, #0x6d0]
    58dc: f953cea1     	ldr	x1, [x21, #0x2798]
    58e0: f9002fa2     	str	x2, [x29, #0x58]
    58e4: d63f0020     	blr	x1
    58e8: aa0003e3     	mov	x3, x0
    58ec: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    58f0: aa1403e1     	mov	x1, x20
    58f4: d2800040     	mov	x0, #0x2                ; =2
    58f8: f90033a3     	str	x3, [x29, #0x60]
    58fc: d63f0040     	blr	x2
    5900: aa0003e1     	mov	x1, x0
    5904: f9402aa4     	ldr	x4, [x21, #0x50]
    5908: 52800003     	mov	w3, #0x0                ; =0
    590c: d2800002     	mov	x2, #0x0                ; =0
    5910: f9436a60     	ldr	x0, [x19, #0x6d0]
    5914: f9002fa1     	str	x1, [x29, #0x58]
    5918: d63f0080     	blr	x4
    591c: f9436e63     	ldr	x3, [x19, #0x6d8]
    5920: aa1403e1     	mov	x1, x20
    5924: d2800020     	mov	x0, #0x1                ; =1
    5928: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    592c: f9002fa3     	str	x3, [x29, #0x58]
    5930: d63f0040     	blr	x2
    5934: f9437260     	ldr	x0, [x19, #0x6e0]
    5938: 52800021     	mov	w1, #0x1                ; =1
    593c: f90027b5     	str	x21, [x29, #0x48]
    5940: f9400ea2     	ldr	x2, [x21, #0x18]
    5944: f9002fa0     	str	x0, [x29, #0x58]
    5948: d63f0040     	blr	x2
    594c: 91011000     	add	x0, x0, #0x44
    5950: 94000544     	bl	0x6e60 <dyld_stub_binder+0x6e60>
    5954: 34002b00     	cbz	w0, 0x5eb4 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x64c>
    5958: 90000062     	adrp	x2, 0x11000 <_text_data_reloc_blob+0x118d>
    595c: 9133c042     	add	x2, x2, #0xcf0
    5960: 9101c3a1     	add	x1, x29, #0x70
    5964: d2800060     	mov	x0, #0x3                ; =3
    5968: f94027b4     	ldr	x20, [x29, #0x48]
    596c: f9437663     	ldr	x3, [x19, #0x6e8]
    5970: f9400042     	ldr	x2, [x2]
    5974: f9437a65     	ldr	x5, [x19, #0x6f0]
    5978: f942ca67     	ldr	x7, [x19, #0x590]
    597c: f9400042     	ldr	x2, [x2]
    5980: f9437e66     	ldr	x6, [x19, #0x6f8]
    5984: f94d3a84     	ldr	x4, [x20, #0x1a70]
    5988: a90617a3     	stp	x3, x5, [x29, #0x60]
    598c: f9403443     	ldr	x3, [x2, #0x68]
    5990: a9421463     	ldp	x3, x5, [x3, #0x20]
    5994: f9003445     	str	x5, [x2, #0x68]
    5998: f9002fa3     	str	x3, [x29, #0x58]
    599c: a9071ba7     	stp	x7, x6, [x29, #0x70]
    59a0: f90043a3     	str	x3, [x29, #0x80]
    59a4: d63f0080     	blr	x4
    59a8: f9438263     	ldr	x3, [x19, #0x700]
    59ac: aa0003e4     	mov	x4, x0
    59b0: 910183a1     	add	x1, x29, #0x60
    59b4: d2800080     	mov	x0, #0x4                ; =4
    59b8: f94d3a82     	ldr	x2, [x20, #0x1a70]
    59bc: a9070fa4     	stp	x4, x3, [x29, #0x70]
    59c0: d63f0040     	blr	x2
    59c4: 90000073     	adrp	x19, 0x11000 <_text_data_reloc_blob+0x118d>
    59c8: 9133e273     	add	x19, x19, #0xcf8
    59cc: 910183a1     	add	x1, x29, #0x60
    59d0: d2800020     	mov	x0, #0x1                ; =1
    59d4: f94027a2     	ldr	x2, [x29, #0x48]
    59d8: 91200263     	add	x3, x19, #0x800
    59dc: 3cd0807f     	ldur	q31, [x3, #-0xf8]
    59e0: f94d3842     	ldr	x2, [x2, #0x1a70]
    59e4: 3c8583bf     	stur	q31, [x29, #0x58]
    59e8: d63f0040     	blr	x2
    59ec: f90033a0     	str	x0, [x29, #0x60]
    59f0: b40033a0     	cbz	x0, 0x6064 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x7fc>
    59f4: f94027b5     	ldr	x21, [x29, #0x48]
    59f8: 910163b4     	add	x20, x29, #0x58
    59fc: 90000073     	adrp	x19, 0x11000 <_text_data_reloc_blob+0x118d>
    5a00: 9133e273     	add	x19, x19, #0xcf8
    5a04: f953cea1     	ldr	x1, [x21, #0x2798]
    5a08: f9438e60     	ldr	x0, [x19, #0x718]
    5a0c: d63f0020     	blr	x1
    5a10: f9402263     	ldr	x3, [x19, #0x40]
    5a14: aa0003e4     	mov	x4, x0
    5a18: aa1403e1     	mov	x1, x20
    5a1c: d2800080     	mov	x0, #0x4                ; =4
    5a20: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    5a24: a9068fa4     	stp	x4, x3, [x29, #0x68]
    5a28: d63f0040     	blr	x2
    5a2c: 3dc1ca7f     	ldr	q31, [x19, #0x720]
    5a30: aa1403e1     	mov	x1, x20
    5a34: d2800040     	mov	x0, #0x2                ; =2
    5a38: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    5a3c: 3c8583bf     	stur	q31, [x29, #0x58]
    5a40: d63f0040     	blr	x2
    5a44: b4000ae0     	cbz	x0, 0x5ba0 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x338>
    5a48: f94027b5     	ldr	x21, [x29, #0x48]
    5a4c: 52800003     	mov	w3, #0x0                ; =0
    5a50: d2800002     	mov	x2, #0x0                ; =0
    5a54: f943ea61     	ldr	x1, [x19, #0x7d0]
    5a58: f943ee60     	ldr	x0, [x19, #0x7d8]
    5a5c: f9402aa4     	ldr	x4, [x21, #0x50]
    5a60: f9002fa1     	str	x1, [x29, #0x58]
    5a64: d63f0080     	blr	x4
    5a68: f943f262     	ldr	x2, [x19, #0x7e0]
    5a6c: f940fa60     	ldr	x0, [x19, #0x1f0]
    5a70: f953cea1     	ldr	x1, [x21, #0x2798]
    5a74: f9002fa2     	str	x2, [x29, #0x58]
    5a78: d63f0020     	blr	x1
    5a7c: f943f661     	ldr	x1, [x19, #0x7e8]
    5a80: f943fa62     	ldr	x2, [x19, #0x7f0]
    5a84: a90607a0     	stp	x0, x1, [x29, #0x60]
    5a88: f953cea1     	ldr	x1, [x21, #0x2798]
    5a8c: f9003ba2     	str	x2, [x29, #0x70]
    5a90: f943fe60     	ldr	x0, [x19, #0x7f8]
    5a94: d63f0020     	blr	x1
    5a98: aa0003e1     	mov	x1, x0
    5a9c: f9403ba0     	ldr	x0, [x29, #0x70]
    5aa0: f94fe2a2     	ldr	x2, [x21, #0x1fc0]
    5aa4: f9003fa1     	str	x1, [x29, #0x78]
    5aa8: d63f0040     	blr	x2
    5aac: aa0003e3     	mov	x3, x0
    5ab0: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    5ab4: aa1403e1     	mov	x1, x20
    5ab8: d2800080     	mov	x0, #0x4                ; =4
    5abc: f9003ba3     	str	x3, [x29, #0x70]
    5ac0: d63f0040     	blr	x2
    5ac4: f943f262     	ldr	x2, [x19, #0x7e0]
    5ac8: f940fa60     	ldr	x0, [x19, #0x1f0]
    5acc: f953cea1     	ldr	x1, [x21, #0x2798]
    5ad0: f9002fa2     	str	x2, [x29, #0x58]
    5ad4: d63f0020     	blr	x1
    5ad8: f9440264     	ldr	x4, [x19, #0x800]
    5adc: aa0003e2     	mov	x2, x0
    5ae0: aa1403e1     	mov	x1, x20
    5ae4: d2800080     	mov	x0, #0x4                ; =4
    5ae8: f9440663     	ldr	x3, [x19, #0x808]
    5aec: a90613a2     	stp	x2, x4, [x29, #0x60]
    5af0: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    5af4: f9003ba3     	str	x3, [x29, #0x70]
    5af8: d63f0040     	blr	x2
    5afc: f943f262     	ldr	x2, [x19, #0x7e0]
    5b00: f940fa60     	ldr	x0, [x19, #0x1f0]
    5b04: f953cea1     	ldr	x1, [x21, #0x2798]
    5b08: f9002fa2     	str	x2, [x29, #0x58]
    5b0c: d63f0020     	blr	x1
    5b10: f9440a64     	ldr	x4, [x19, #0x810]
    5b14: aa0003e2     	mov	x2, x0
    5b18: aa1403e1     	mov	x1, x20
    5b1c: d2800080     	mov	x0, #0x4                ; =4
    5b20: f9440e63     	ldr	x3, [x19, #0x818]
    5b24: a90613a2     	stp	x2, x4, [x29, #0x60]
    5b28: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    5b2c: f9003ba3     	str	x3, [x29, #0x70]
    5b30: d63f0040     	blr	x2
    5b34: f943f262     	ldr	x2, [x19, #0x7e0]
    5b38: f940fa60     	ldr	x0, [x19, #0x1f0]
    5b3c: f953cea1     	ldr	x1, [x21, #0x2798]
    5b40: f9002fa2     	str	x2, [x29, #0x58]
    5b44: d63f0020     	blr	x1
    5b48: f940c263     	ldr	x3, [x19, #0x180]
    5b4c: aa0003e2     	mov	x2, x0
    5b50: 9101e3a1     	add	x1, x29, #0x78
    5b54: d2800040     	mov	x0, #0x2                ; =2
    5b58: f9410a64     	ldr	x4, [x19, #0x210]
    5b5c: a9060fa2     	stp	x2, x3, [x29, #0x60]
    5b60: f9441262     	ldr	x2, [x19, #0x820]
    5b64: a90713a2     	stp	x2, x4, [x29, #0x70]
    5b68: f94d3aa3     	ldr	x3, [x21, #0x1a70]
    5b6c: f90043a2     	str	x2, [x29, #0x80]
    5b70: d63f0060     	blr	x3
    5b74: aa0003e1     	mov	x1, x0
    5b78: f9403ba0     	ldr	x0, [x29, #0x70]
    5b7c: f94fe2a2     	ldr	x2, [x21, #0x1fc0]
    5b80: f9003fa1     	str	x1, [x29, #0x78]
    5b84: d63f0040     	blr	x2
    5b88: aa0003e3     	mov	x3, x0
    5b8c: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    5b90: aa1403e1     	mov	x1, x20
    5b94: d2800080     	mov	x0, #0x4                ; =4
    5b98: f9003ba3     	str	x3, [x29, #0x70]
    5b9c: d63f0040     	blr	x2
    5ba0: 90000074     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    5ba4: 9133e294     	add	x20, x20, #0xcf8
    5ba8: 910163a1     	add	x1, x29, #0x58
    5bac: d2800020     	mov	x0, #0x1                ; =1
    5bb0: 90000075     	adrp	x21, 0x11000 <_text_data_reloc_blob+0x118d>
    5bb4: 9101a3b7     	add	x23, x29, #0x68
    5bb8: f94027a2     	ldr	x2, [x29, #0x48]
    5bbc: 913382b5     	add	x21, x21, #0xce0
    5bc0: b0000076     	adrp	x22, 0x12000 <_d_reloc+0x308>
    5bc4: 912da2d6     	add	x22, x22, #0xb68
    5bc8: f9439a83     	ldr	x3, [x20, #0x730]
    5bcc: f94d3842     	ldr	x2, [x2, #0x1a70]
    5bd0: f9002fa3     	str	x3, [x29, #0x58]
    5bd4: d63f0040     	blr	x2
    5bd8: aa0003e1     	mov	x1, x0
    5bdc: f9002fa0     	str	x0, [x29, #0x58]
    5be0: f90033a1     	str	x1, [x29, #0x60]
    5be4: b4000681     	cbz	x1, 0x5cb4 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x44c>
    5be8: 51000c20     	sub	w0, w1, #0x3
    5bec: f240081f     	tst	x0, #0x7
    5bf0: 54001f61     	b.ne	0x5fdc <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x774>
    5bf4: f8405021     	ldur	x1, [x1, #0x5]
    5bf8: 51000c20     	sub	w0, w1, #0x3
    5bfc: a90607a1     	stp	x1, x1, [x29, #0x60]
    5c00: f240081f     	tst	x0, #0x7
    5c04: 54002221     	b.ne	0x6048 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x7e0>
    5c08: f8405020     	ldur	x0, [x1, #0x5]
    5c0c: f94027b8     	ldr	x24, [x29, #0x48]
    5c10: f943de81     	ldr	x1, [x20, #0x7b8]
    5c14: f954c302     	ldr	x2, [x24, #0x2980]
    5c18: a90687a0     	stp	x0, x1, [x29, #0x68]
    5c1c: d63f0040     	blr	x2
    5c20: aa0003f3     	mov	x19, x0
    5c24: b4001760     	cbz	x0, 0x5f10 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x6a8>
    5c28: f94033a1     	ldr	x1, [x29, #0x60]
    5c2c: f943e682     	ldr	x2, [x20, #0x7c8]
    5c30: 51000c20     	sub	w0, w1, #0x3
    5c34: a90687a2     	stp	x2, x1, [x29, #0x68]
    5c38: f240081f     	tst	x0, #0x7
    5c3c: 54001de1     	b.ne	0x5ff8 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x790>
    5c40: f840d022     	ldur	x2, [x1, #0xd]
    5c44: f9003ba2     	str	x2, [x29, #0x70]
    5c48: aa1703e1     	mov	x1, x23
    5c4c: d2800040     	mov	x0, #0x2                ; =2
    5c50: f94027a2     	ldr	x2, [x29, #0x48]
    5c54: f94d3842     	ldr	x2, [x2, #0x1a70]
    5c58: d63f0040     	blr	x2
    5c5c: f9402fa1     	ldr	x1, [x29, #0x58]
    5c60: f90037a0     	str	x0, [x29, #0x68]
    5c64: 51000c20     	sub	w0, w1, #0x3
    5c68: f240081f     	tst	x0, #0x7
    5c6c: 54001aa1     	b.ne	0x5fc0 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x758>
    5c70: f840d021     	ldur	x1, [x1, #0xd]
    5c74: f9002fa1     	str	x1, [x29, #0x58]
    5c78: b94002a0     	ldr	w0, [x21]
    5c7c: 11000400     	add	w0, w0, #0x1
    5c80: b90002a0     	str	w0, [x21]
    5c84: 6b4027ff     	cmp	wzr, w0, lsr #9
    5c88: 54fffac0     	b.eq	0x5be0 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x378>
    5c8c: f94002c0     	ldr	x0, [x22]
    5c90: b90002bf     	str	wzr, [x21]
    5c94: f9403400     	ldr	x0, [x0, #0x68]
    5c98: d63f0000     	blr	x0
    5c9c: f94002c0     	ldr	x0, [x22]
    5ca0: f9403800     	ldr	x0, [x0, #0x70]
    5ca4: d63f0000     	blr	x0
    5ca8: f9402fa1     	ldr	x1, [x29, #0x58]
    5cac: f90033a1     	str	x1, [x29, #0x60]
    5cb0: b5fff9c1     	cbnz	x1, 0x5be8 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x380>
    5cb4: 90000073     	adrp	x19, 0x11000 <_text_data_reloc_blob+0x118d>
    5cb8: 9133e273     	add	x19, x19, #0xcf8
    5cbc: 910163b4     	add	x20, x29, #0x58
    5cc0: d2800060     	mov	x0, #0x3                ; =3
    5cc4: aa1403e1     	mov	x1, x20
    5cc8: f94027b5     	ldr	x21, [x29, #0x48]
    5ccc: f9400a65     	ldr	x5, [x19, #0x10]
    5cd0: f9439e64     	ldr	x4, [x19, #0x738]
    5cd4: f943a263     	ldr	x3, [x19, #0x740]
    5cd8: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    5cdc: a90597a4     	stp	x4, x5, [x29, #0x58]
    5ce0: f90037a3     	str	x3, [x29, #0x68]
    5ce4: d63f0040     	blr	x2
    5ce8: f9402261     	ldr	x1, [x19, #0x40]
    5cec: f954c2a2     	ldr	x2, [x21, #0x2980]
    5cf0: a90587a0     	stp	x0, x1, [x29, #0x58]
    5cf4: d63f0040     	blr	x2
    5cf8: f9400a63     	ldr	x3, [x19, #0x10]
    5cfc: f9439e64     	ldr	x4, [x19, #0x738]
    5d00: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    5d04: b40002c0     	cbz	x0, 0x5d5c <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x4f4>
    5d08: aa1403e1     	mov	x1, x20
    5d0c: d2800060     	mov	x0, #0x3                ; =3
    5d10: f943d265     	ldr	x5, [x19, #0x7a0]
    5d14: a9058fa4     	stp	x4, x3, [x29, #0x58]
    5d18: f90037a5     	str	x5, [x29, #0x68]
    5d1c: d63f0040     	blr	x2
    5d20: f9402261     	ldr	x1, [x19, #0x40]
    5d24: f94027b5     	ldr	x21, [x29, #0x48]
    5d28: f954c2a2     	ldr	x2, [x21, #0x2980]
    5d2c: a90587a0     	stp	x0, x1, [x29, #0x58]
    5d30: d63f0040     	blr	x2
    5d34: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    5d38: b4000120     	cbz	x0, 0x5d5c <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x4f4>
    5d3c: aa1403e1     	mov	x1, x20
    5d40: d2800060     	mov	x0, #0x3                ; =3
    5d44: f943c265     	ldr	x5, [x19, #0x780]
    5d48: f943d664     	ldr	x4, [x19, #0x7a8]
    5d4c: f943da63     	ldr	x3, [x19, #0x7b0]
    5d50: a90593a5     	stp	x5, x4, [x29, #0x58]
    5d54: f90037a3     	str	x3, [x29, #0x68]
    5d58: d63f0040     	blr	x2
    5d5c: 90000073     	adrp	x19, 0x11000 <_text_data_reloc_blob+0x118d>
    5d60: 9133e273     	add	x19, x19, #0xcf8
    5d64: 910183a1     	add	x1, x29, #0x60
    5d68: d2800060     	mov	x0, #0x3                ; =3
    5d6c: f94027a2     	ldr	x2, [x29, #0x48]
    5d70: f9400a63     	ldr	x3, [x19, #0x10]
    5d74: f9439e65     	ldr	x5, [x19, #0x738]
    5d78: f943a664     	ldr	x4, [x19, #0x748]
    5d7c: f90037a3     	str	x3, [x29, #0x68]
    5d80: f94d3842     	ldr	x2, [x2, #0x1a70]
    5d84: a90597a4     	stp	x4, x5, [x29, #0x58]
    5d88: f943aa63     	ldr	x3, [x19, #0x750]
    5d8c: f9003ba3     	str	x3, [x29, #0x70]
    5d90: d63f0040     	blr	x2
    5d94: b40016e0     	cbz	x0, 0x6070 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x808>
    5d98: f9403a61     	ldr	x1, [x19, #0x70]
    5d9c: 910163b4     	add	x20, x29, #0x58
    5da0: d2800040     	mov	x0, #0x2                ; =2
    5da4: f90033a1     	str	x1, [x29, #0x60]
    5da8: f94027b5     	ldr	x21, [x29, #0x48]
    5dac: aa1403e1     	mov	x1, x20
    5db0: 90000073     	adrp	x19, 0x11000 <_text_data_reloc_blob+0x118d>
    5db4: 9133e273     	add	x19, x19, #0xcf8
    5db8: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    5dbc: d63f0040     	blr	x2
    5dc0: f953cea1     	ldr	x1, [x21, #0x2798]
    5dc4: f9002fa0     	str	x0, [x29, #0x58]
    5dc8: f943ae60     	ldr	x0, [x19, #0x758]
    5dcc: d63f0020     	blr	x1
    5dd0: f943b261     	ldr	x1, [x19, #0x760]
    5dd4: f954c2a2     	ldr	x2, [x21, #0x2980]
    5dd8: a90587a0     	stp	x0, x1, [x29, #0x58]
    5ddc: d63f0040     	blr	x2
    5de0: f94d3aa3     	ldr	x3, [x21, #0x1a70]
    5de4: b4000160     	cbz	x0, 0x5e10 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x5a8>
    5de8: aa1403e1     	mov	x1, x20
    5dec: d2800060     	mov	x0, #0x3                ; =3
    5df0: b0000062     	adrp	x2, 0x12000 <_d_reloc+0x308>
    5df4: 91292042     	add	x2, x2, #0xa48
    5df8: f943c265     	ldr	x5, [x19, #0x780]
    5dfc: f943ce64     	ldr	x4, [x19, #0x798]
    5e00: f9401042     	ldr	x2, [x2, #0x20]
    5e04: a90593a5     	stp	x5, x4, [x29, #0x58]
    5e08: f90037a2     	str	x2, [x29, #0x68]
    5e0c: d63f0060     	blr	x3
    5e10: 90000073     	adrp	x19, 0x11000 <_text_data_reloc_blob+0x118d>
    5e14: 9133e273     	add	x19, x19, #0xcf8
    5e18: 910163b4     	add	x20, x29, #0x58
    5e1c: d2800080     	mov	x0, #0x4                ; =4
    5e20: aa1403e1     	mov	x1, x20
    5e24: f94027b5     	ldr	x21, [x29, #0x48]
    5e28: f9400a63     	ldr	x3, [x19, #0x10]
    5e2c: f943b664     	ldr	x4, [x19, #0x768]
    5e30: f941f265     	ldr	x5, [x19, #0x3e0]
    5e34: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    5e38: a9058fa4     	stp	x4, x3, [x29, #0x58]
    5e3c: f943ba63     	ldr	x3, [x19, #0x770]
    5e40: a90697a3     	stp	x3, x5, [x29, #0x68]
    5e44: d63f0040     	blr	x2
    5e48: f943be63     	ldr	x3, [x19, #0x778]
    5e4c: aa1403e1     	mov	x1, x20
    5e50: d2800020     	mov	x0, #0x1                ; =1
    5e54: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    5e58: f9002fa3     	str	x3, [x29, #0x58]
    5e5c: d63f0040     	blr	x2
    5e60: 3dc1e27f     	ldr	q31, [x19, #0x780]
    5e64: aa1403e1     	mov	x1, x20
    5e68: d2800060     	mov	x0, #0x3                ; =3
    5e6c: f943ca63     	ldr	x3, [x19, #0x790]
    5e70: f94d3aa2     	ldr	x2, [x21, #0x1a70]
    5e74: 3c8583bf     	stur	q31, [x29, #0x58]
    5e78: f90037a3     	str	x3, [x29, #0x68]
    5e7c: d63f0040     	blr	x2
    5e80: f9402261     	ldr	x1, [x19, #0x40]
    5e84: 52800003     	mov	w3, #0x0                ; =0
    5e88: d2800002     	mov	x2, #0x0                ; =0
    5e8c: f9402aa4     	ldr	x4, [x21, #0x50]
    5e90: f9436260     	ldr	x0, [x19, #0x6c0]
    5e94: a90587a1     	stp	x1, x1, [x29, #0x58]
    5e98: d63f0080     	blr	x4
    5e9c: f9402fa0     	ldr	x0, [x29, #0x58]
    5ea0: a94153f3     	ldp	x19, x20, [sp, #0x10]
    5ea4: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    5ea8: a94363f7     	ldp	x23, x24, [sp, #0x30]
    5eac: a8c97bfd     	ldp	x29, x30, [sp], #0x90
    5eb0: d65f03c0     	ret
    5eb4: 90000073     	adrp	x19, 0x11000 <_text_data_reloc_blob+0x118d>
    5eb8: 9133e273     	add	x19, x19, #0xcf8
    5ebc: f94027b4     	ldr	x20, [x29, #0x48]
    5ec0: f9441a62     	ldr	x2, [x19, #0x830]
    5ec4: f9441e60     	ldr	x0, [x19, #0x838]
    5ec8: f953ce81     	ldr	x1, [x20, #0x2798]
    5ecc: f9002fa2     	str	x2, [x29, #0x58]
    5ed0: d63f0020     	blr	x1
    5ed4: f9402263     	ldr	x3, [x19, #0x40]
    5ed8: aa0003e4     	mov	x4, x0
    5edc: 910163a1     	add	x1, x29, #0x58
    5ee0: d2800060     	mov	x0, #0x3                ; =3
    5ee4: f94d3a82     	ldr	x2, [x20, #0x1a70]
    5ee8: a9060fa4     	stp	x4, x3, [x29, #0x60]
    5eec: d63f0040     	blr	x2
    5ef0: 90000060     	adrp	x0, 0x11000 <_text_data_reloc_blob+0x118d>
    5ef4: 9133c000     	add	x0, x0, #0xcf0
    5ef8: f9400000     	ldr	x0, [x0]
    5efc: f9400000     	ldr	x0, [x0]
    5f00: f9403401     	ldr	x1, [x0, #0x68]
    5f04: f9401421     	ldr	x1, [x1, #0x28]
    5f08: f9003401     	str	x1, [x0, #0x68]
    5f0c: 17fffeae     	b	0x59c4 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x15c>
    5f10: f9410282     	ldr	x2, [x20, #0x200]
    5f14: f940fa80     	ldr	x0, [x20, #0x1f0]
    5f18: f953cf01     	ldr	x1, [x24, #0x2798]
    5f1c: f90037a2     	str	x2, [x29, #0x68]
    5f20: d63f0020     	blr	x1
    5f24: f94033a1     	ldr	x1, [x29, #0x60]
    5f28: f943e282     	ldr	x2, [x20, #0x7c0]
    5f2c: f90043a1     	str	x1, [x29, #0x80]
    5f30: a9070ba0     	stp	x0, x2, [x29, #0x70]
    5f34: 51000c20     	sub	w0, w1, #0x3
    5f38: f240081f     	tst	x0, #0x7
    5f3c: 54000781     	b.ne	0x602c <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x7c4>
    5f40: f8405022     	ldur	x2, [x1, #0x5]
    5f44: f90043a2     	str	x2, [x29, #0x80]
    5f48: 9101e3a1     	add	x1, x29, #0x78
    5f4c: d2800040     	mov	x0, #0x2                ; =2
    5f50: f94027a2     	ldr	x2, [x29, #0x48]
    5f54: f94d3842     	ldr	x2, [x2, #0x1a70]
    5f58: d63f0040     	blr	x2
    5f5c: f94033a1     	ldr	x1, [x29, #0x60]
    5f60: f943e682     	ldr	x2, [x20, #0x7c8]
    5f64: f90047a1     	str	x1, [x29, #0x88]
    5f68: a9078ba0     	stp	x0, x2, [x29, #0x78]
    5f6c: 51000c20     	sub	w0, w1, #0x3
    5f70: f240081f     	tst	x0, #0x7
    5f74: 54000501     	b.ne	0x6014 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x7ac>
    5f78: f840d033     	ldur	x19, [x1, #0xd]
    5f7c: f90047b3     	str	x19, [x29, #0x88]
    5f80: 910203a1     	add	x1, x29, #0x80
    5f84: d2800040     	mov	x0, #0x2                ; =2
    5f88: f94027b3     	ldr	x19, [x29, #0x48]
    5f8c: f94d3a62     	ldr	x2, [x19, #0x1a70]
    5f90: d63f0040     	blr	x2
    5f94: aa0003e3     	mov	x3, x0
    5f98: f94d3a62     	ldr	x2, [x19, #0x1a70]
    5f9c: aa1703e1     	mov	x1, x23
    5fa0: d2800080     	mov	x0, #0x4                ; =4
    5fa4: f90043a3     	str	x3, [x29, #0x80]
    5fa8: d63f0040     	blr	x2
    5fac: f9402fa1     	ldr	x1, [x29, #0x58]
    5fb0: f90037a0     	str	x0, [x29, #0x68]
    5fb4: 51000c20     	sub	w0, w1, #0x3
    5fb8: f240081f     	tst	x0, #0x7
    5fbc: 54ffe5a0     	b.eq	0x5c70 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x408>
    5fc0: b40000a1     	cbz	x1, 0x5fd4 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x76c>
    5fc4: f94002c2     	ldr	x2, [x22]
    5fc8: f944ba80     	ldr	x0, [x20, #0x970]
    5fcc: f9400042     	ldr	x2, [x2]
    5fd0: d63f0040     	blr	x2
    5fd4: d2800001     	mov	x1, #0x0                ; =0
    5fd8: 17ffff27     	b	0x5c74 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x40c>
    5fdc: f94002c2     	ldr	x2, [x22]
    5fe0: f944ba80     	ldr	x0, [x20, #0x970]
    5fe4: f9400042     	ldr	x2, [x2]
    5fe8: d63f0040     	blr	x2
    5fec: f90033bf     	str	xzr, [x29, #0x60]
    5ff0: d2800000     	mov	x0, #0x0                ; =0
    5ff4: 17ffff06     	b	0x5c0c <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x3a4>
    5ff8: b40000a1     	cbz	x1, 0x600c <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x7a4>
    5ffc: f94002c2     	ldr	x2, [x22]
    6000: f944ba80     	ldr	x0, [x20, #0x970]
    6004: f9400042     	ldr	x2, [x2]
    6008: d63f0040     	blr	x2
    600c: d2800002     	mov	x2, #0x0                ; =0
    6010: 17ffff0d     	b	0x5c44 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x3dc>
    6014: b4fffb41     	cbz	x1, 0x5f7c <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x714>
    6018: f94002c2     	ldr	x2, [x22]
    601c: f944ba80     	ldr	x0, [x20, #0x970]
    6020: f9400042     	ldr	x2, [x2]
    6024: d63f0040     	blr	x2
    6028: 17ffffd5     	b	0x5f7c <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x714>
    602c: b40000a1     	cbz	x1, 0x6040 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x7d8>
    6030: f94002c2     	ldr	x2, [x22]
    6034: f944ba80     	ldr	x0, [x20, #0x970]
    6038: f9400042     	ldr	x2, [x2]
    603c: d63f0040     	blr	x2
    6040: aa1303e2     	mov	x2, x19
    6044: 17ffffc0     	b	0x5f44 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x6dc>
    6048: b4fffd41     	cbz	x1, 0x5ff0 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x788>
    604c: f94002c2     	ldr	x2, [x22]
    6050: f944ba80     	ldr	x0, [x20, #0x970]
    6054: f9400042     	ldr	x2, [x2]
    6058: d63f0040     	blr	x2
    605c: d2800000     	mov	x0, #0x0                ; =0
    6060: 17fffeeb     	b	0x5c0c <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x3a4>
    6064: f9441660     	ldr	x0, [x19, #0x828]
    6068: f90033a0     	str	x0, [x29, #0x60]
    606c: 17fffe62     	b	0x59f4 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x18c>
    6070: f9429e61     	ldr	x1, [x19, #0x538]
    6074: 17ffff4a     	b	0x5d9c <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_5+0x534>
    6078: d503201f     	nop
    607c: d503201f     	nop

0000000000006080 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_6>:
    6080: 90000063     	adrp	x3, 0x12000 <_d_reloc+0x308>
    6084: 912da063     	add	x3, x3, #0xb68
    6088: aa0003e4     	mov	x4, x0
    608c: d2800040     	mov	x0, #0x2                ; =2
    6090: a9be7bfd     	stp	x29, x30, [sp, #-0x20]!
    6094: 910003fd     	mov	x29, sp
    6098: 910043a1     	add	x1, x29, #0x10
    609c: f0000042     	adrp	x2, 0x11000 <_text_data_reloc_blob+0x118d>
    60a0: 9133e042     	add	x2, x2, #0xcf8
    60a4: f9000fa4     	str	x4, [x29, #0x18]
    60a8: f9400064     	ldr	x4, [x3]
    60ac: f9436443     	ldr	x3, [x2, #0x6c8]
    60b0: f94d3882     	ldr	x2, [x4, #0x1a70]
    60b4: f9000ba3     	str	x3, [x29, #0x10]
    60b8: d63f0040     	blr	x2
    60bc: a8c27bfd     	ldp	x29, x30, [sp], #0x20
    60c0: d65f03c0     	ret

00000000000060c4 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_7>:
    60c4: 90000063     	adrp	x3, 0x12000 <_d_reloc+0x308>
    60c8: 912da063     	add	x3, x3, #0xb68
    60cc: aa0003e4     	mov	x4, x0
    60d0: d2800040     	mov	x0, #0x2                ; =2
    60d4: a9be7bfd     	stp	x29, x30, [sp, #-0x20]!
    60d8: 910003fd     	mov	x29, sp
    60dc: 910043a1     	add	x1, x29, #0x10
    60e0: f0000042     	adrp	x2, 0x11000 <_text_data_reloc_blob+0x118d>
    60e4: 9133e042     	add	x2, x2, #0xcf8
    60e8: f9000fa4     	str	x4, [x29, #0x18]
    60ec: f9400064     	ldr	x4, [x3]
    60f0: f9442843     	ldr	x3, [x2, #0x850]
    60f4: f94d3882     	ldr	x2, [x4, #0x1a70]
    60f8: f9000ba3     	str	x3, [x29, #0x10]
    60fc: d63f0040     	blr	x2
    6100: a8c27bfd     	ldp	x29, x30, [sp], #0x20
    6104: d65f03c0     	ret

0000000000006108 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_8>:
    6108: 90000062     	adrp	x2, 0x12000 <_d_reloc+0x308>
    610c: 912da042     	add	x2, x2, #0xb68
    6110: a9bb7bfd     	stp	x29, x30, [sp, #-0x50]!
    6114: 910003fd     	mov	x29, sp
    6118: a90153f3     	stp	x19, x20, [sp, #0x10]
    611c: aa0103f3     	mov	x19, x1
    6120: aa0003f4     	mov	x20, x0
    6124: a9025bf5     	stp	x21, x22, [sp, #0x20]
    6128: f9400056     	ldr	x22, [x2]
    612c: f0000055     	adrp	x21, 0x11000 <_text_data_reloc_blob+0x118d>
    6130: 9133e2b5     	add	x21, x21, #0xcf8
    6134: f954c2c2     	ldr	x2, [x22, #0x2980]
    6138: f9442ea1     	ldr	x1, [x21, #0x858]
    613c: d63f0040     	blr	x2
    6140: b4000180     	cbz	x0, 0x6170 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_8+0x68>
    6144: f9443aa0     	ldr	x0, [x21, #0x870]
    6148: 52800003     	mov	w3, #0x0                ; =0
    614c: d2800002     	mov	x2, #0x0                ; =0
    6150: aa1303e1     	mov	x1, x19
    6154: f9402ac4     	ldr	x4, [x22, #0x50]
    6158: d63f0080     	blr	x4
    615c: aa1303e0     	mov	x0, x19
    6160: a94153f3     	ldp	x19, x20, [sp, #0x10]
    6164: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    6168: a8c57bfd     	ldp	x29, x30, [sp], #0x50
    616c: d65f03c0     	ret
    6170: f94d3ac2     	ldr	x2, [x22, #0x1a70]
    6174: b4000173     	cbz	x19, 0x61a0 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_8+0x98>
    6178: 9100c3a1     	add	x1, x29, #0x30
    617c: d2800060     	mov	x0, #0x3                ; =3
    6180: f90023b3     	str	x19, [x29, #0x40]
    6184: f94436a3     	ldr	x3, [x21, #0x868]
    6188: a90353a3     	stp	x3, x20, [x29, #0x30]
    618c: d63f0040     	blr	x2
    6190: a94153f3     	ldp	x19, x20, [sp, #0x10]
    6194: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    6198: a8c57bfd     	ldp	x29, x30, [sp], #0x50
    619c: d65f03c0     	ret
    61a0: f94432a3     	ldr	x3, [x21, #0x860]
    61a4: 9100c3a1     	add	x1, x29, #0x30
    61a8: d2800040     	mov	x0, #0x2                ; =2
    61ac: a90353a3     	stp	x3, x20, [x29, #0x30]
    61b0: d63f0040     	blr	x2
    61b4: 17ffffeb     	b	0x6160 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_8+0x58>
    61b8: d503201f     	nop
    61bc: d503201f     	nop

00000000000061c0 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_9>:
    61c0: 90000063     	adrp	x3, 0x12000 <_d_reloc+0x308>
    61c4: 912da063     	add	x3, x3, #0xb68
    61c8: aa0003e4     	mov	x4, x0
    61cc: d2800040     	mov	x0, #0x2                ; =2
    61d0: a9be7bfd     	stp	x29, x30, [sp, #-0x20]!
    61d4: 910003fd     	mov	x29, sp
    61d8: 910043a1     	add	x1, x29, #0x10
    61dc: f0000042     	adrp	x2, 0x11000 <_text_data_reloc_blob+0x118d>
    61e0: 9133e042     	add	x2, x2, #0xcf8
    61e4: f9000fa4     	str	x4, [x29, #0x18]
    61e8: f9400064     	ldr	x4, [x3]
    61ec: f9443c43     	ldr	x3, [x2, #0x878]
    61f0: f94d3882     	ldr	x2, [x4, #0x1a70]
    61f4: f9000ba3     	str	x3, [x29, #0x10]
    61f8: d63f0040     	blr	x2
    61fc: a8c27bfd     	ldp	x29, x30, [sp], #0x20
    6200: d65f03c0     	ret

0000000000006204 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_10>:
    6204: 90000063     	adrp	x3, 0x12000 <_d_reloc+0x308>
    6208: 912da063     	add	x3, x3, #0xb68
    620c: aa0003e4     	mov	x4, x0
    6210: d2800040     	mov	x0, #0x2                ; =2
    6214: a9be7bfd     	stp	x29, x30, [sp, #-0x20]!
    6218: 910003fd     	mov	x29, sp
    621c: 910043a1     	add	x1, x29, #0x10
    6220: f0000042     	adrp	x2, 0x11000 <_text_data_reloc_blob+0x118d>
    6224: 9133e042     	add	x2, x2, #0xcf8
    6228: f9000fa4     	str	x4, [x29, #0x18]
    622c: f9400064     	ldr	x4, [x3]
    6230: f9444043     	ldr	x3, [x2, #0x880]
    6234: f94d3882     	ldr	x2, [x4, #0x1a70]
    6238: f9000ba3     	str	x3, [x29, #0x10]
    623c: d63f0040     	blr	x2
    6240: a8c27bfd     	ldp	x29, x30, [sp], #0x20
    6244: d65f03c0     	ret

0000000000006248 <_F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_11>:
    6248: 90000063     	adrp	x3, 0x12000 <_d_reloc+0x308>
    624c: 912da063     	add	x3, x3, #0xb68
    6250: aa0103e4     	mov	x4, x1
    6254: aa0003e5     	mov	x5, x0
    6258: a9bd7bfd     	stp	x29, x30, [sp, #-0x30]!
    625c: 910003fd     	mov	x29, sp
    6260: 910043a1     	add	x1, x29, #0x10
    6264: d2800060     	mov	x0, #0x3                ; =3
    6268: f0000042     	adrp	x2, 0x11000 <_text_data_reloc_blob+0x118d>
    626c: 9133e042     	add	x2, x2, #0xcf8
    6270: f90013a4     	str	x4, [x29, #0x20]
    6274: f9400064     	ldr	x4, [x3]
    6278: f9444443     	ldr	x3, [x2, #0x888]
    627c: a90117a3     	stp	x3, x5, [x29, #0x10]
    6280: f94d3882     	ldr	x2, [x4, #0x1a70]
    6284: d63f0040     	blr	x2
    6288: a8c37bfd     	ldp	x29, x30, [sp], #0x30
    628c: d65f03c0     	ret

0000000000006290 <_F782d626567696e2d64726167_x_begin_drag_0>:
    6290: a9b17bfd     	stp	x29, x30, [sp, #-0xf0]!
    6294: 910003fd     	mov	x29, sp
    6298: a9046bf9     	stp	x25, x26, [sp, #0x40]
    629c: aa0503f9     	mov	x25, x5
    62a0: 9000007a     	adrp	x26, 0x12000 <_d_reloc+0x308>
    62a4: 912da35a     	add	x26, x26, #0xb68
    62a8: a90153f3     	stp	x19, x20, [sp, #0x10]
    62ac: aa0003f3     	mov	x19, x0
    62b0: f0000054     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    62b4: 9133e294     	add	x20, x20, #0xcf8
    62b8: a9025bf5     	stp	x21, x22, [sp, #0x20]
    62bc: a90363f7     	stp	x23, x24, [sp, #0x30]
    62c0: f9400357     	ldr	x23, [x26]
    62c4: f9443a80     	ldr	x0, [x20, #0x870]
    62c8: a9060fa4     	stp	x4, x3, [x29, #0x60]
    62cc: a90707a2     	stp	x2, x1, [x29, #0x70]
    62d0: f953cee1     	ldr	x1, [x23, #0x2798]
    62d4: d63f0020     	blr	x1
    62d8: b4001500     	cbz	x0, 0x6578 <_F782d626567696e2d64726167_x_begin_drag_0+0x2e8>
    62dc: f9444a80     	ldr	x0, [x20, #0x890]
    62e0: aa1303e1     	mov	x1, x19
    62e4: f951fae2     	ldr	x2, [x23, #0x23f0]
    62e8: f9400a96     	ldr	x22, [x20, #0x10]
    62ec: d63f0040     	blr	x2
    62f0: b4000240     	cbz	x0, 0x6338 <_F782d626567696e2d64726167_x_begin_drag_0+0xa8>
    62f4: f9443a80     	ldr	x0, [x20, #0x870]
    62f8: f953cee1     	ldr	x1, [x23, #0x2798]
    62fc: d63f0020     	blr	x1
    6300: f9547ae1     	ldr	x1, [x23, #0x28f0]
    6304: d63f0020     	blr	x1
    6308: b4000180     	cbz	x0, 0x6338 <_F782d626567696e2d64726167_x_begin_drag_0+0xa8>
    630c: f953cee1     	ldr	x1, [x23, #0x2798]
    6310: f9443a80     	ldr	x0, [x20, #0x870]
    6314: d63f0020     	blr	x1
    6318: f94fe2e2     	ldr	x2, [x23, #0x1fc0]
    631c: aa0003e1     	mov	x1, x0
    6320: f9446e80     	ldr	x0, [x20, #0x8d8]
    6324: d63f0040     	blr	x2
    6328: f94fe2e2     	ldr	x2, [x23, #0x1fc0]
    632c: d2800001     	mov	x1, #0x0                ; =0
    6330: d63f0040     	blr	x2
    6334: aa0003f6     	mov	x22, x0
    6338: f9444e80     	ldr	x0, [x20, #0x898]
    633c: aa1303e1     	mov	x1, x19
    6340: f951fae2     	ldr	x2, [x23, #0x23f0]
    6344: d63f0040     	blr	x2
    6348: b4000a40     	cbz	x0, 0x6490 <_F782d626567696e2d64726167_x_begin_drag_0+0x200>
    634c: f9443a80     	ldr	x0, [x20, #0x870]
    6350: f953cee1     	ldr	x1, [x23, #0x2798]
    6354: d63f0020     	blr	x1
    6358: f9507ee1     	ldr	x1, [x23, #0x20f8]
    635c: d63f0020     	blr	x1
    6360: b4000980     	cbz	x0, 0x6490 <_F782d626567696e2d64726167_x_begin_drag_0+0x200>
    6364: f9443a80     	ldr	x0, [x20, #0x870]
    6368: f953cee1     	ldr	x1, [x23, #0x2798]
    636c: d63f0020     	blr	x1
    6370: f9547ae1     	ldr	x1, [x23, #0x28f0]
    6374: d63f0020     	blr	x1
    6378: b4000b60     	cbz	x0, 0x64e4 <_F782d626567696e2d64726167_x_begin_drag_0+0x254>
    637c: f9443a80     	ldr	x0, [x20, #0x870]
    6380: f953cee1     	ldr	x1, [x23, #0x2798]
    6384: d63f0020     	blr	x1
    6388: f9446a81     	ldr	x1, [x20, #0x8d0]
    638c: aa0003e2     	mov	x2, x0
    6390: d2800040     	mov	x0, #0x2                ; =2
    6394: f9446ee4     	ldr	x4, [x23, #0x8d8]
    6398: d63f0080     	blr	x4
    639c: aa0003f5     	mov	x21, x0
    63a0: b4000a20     	cbz	x0, 0x64e4 <_F782d626567696e2d64726167_x_begin_drag_0+0x254>
    63a4: f95472e1     	ldr	x1, [x23, #0x28e0]
    63a8: aa1503e0     	mov	x0, x21
    63ac: d63f0020     	blr	x1
    63b0: b4000aa0     	cbz	x0, 0x6504 <_F782d626567696e2d64726167_x_begin_drag_0+0x274>
    63b4: d2800013     	mov	x19, #0x0               ; =0
    63b8: a90573bb     	stp	x27, x28, [x29, #0x50]
    63bc: 910283bb     	add	x27, x29, #0xa0
    63c0: 92fc001c     	mov	x28, #0x1fffffffffffffff ; =2305843009213693951
    63c4: f9429e98     	ldr	x24, [x20, #0x538]
    63c8: 1400001c     	b	0x6438 <_F782d626567696e2d64726167_x_begin_drag_0+0x1a8>
    63cc: d37ef441     	lsl	x1, x2, #2
    63d0: 91001838     	add	x24, x1, #0x6
    63d4: eb1c005f     	cmp	x2, x28
    63d8: 540003a0     	b.eq	0x644c <_F782d626567696e2d64726167_x_begin_drag_0+0x1bc>
    63dc: f9527ae1     	ldr	x1, [x23, #0x24f0]
    63e0: aa1503e0     	mov	x0, x21
    63e4: d63f0020     	blr	x1
    63e8: aa0003e5     	mov	x5, x0
    63ec: f9538ee4     	ldr	x4, [x23, #0x2718]
    63f0: d2800040     	mov	x0, #0x2                ; =2
    63f4: aa1b03e1     	mov	x1, x27
    63f8: a90a17b8     	stp	x24, x5, [x29, #0xa0]
    63fc: d63f0080     	blr	x4
    6400: aa0003e4     	mov	x4, x0
    6404: aa1803e1     	mov	x1, x24
    6408: aa1503e0     	mov	x0, x21
    640c: b40002a4     	cbz	x4, 0x6460 <_F782d626567696e2d64726167_x_begin_drag_0+0x1d0>
    6410: f953a2e4     	ldr	x4, [x23, #0x2740]
    6414: d63f0080     	blr	x4
    6418: f950aae4     	ldr	x4, [x23, #0x2150]
    641c: d2800001     	mov	x1, #0x0                ; =0
    6420: d63f0080     	blr	x4
    6424: f94fe2e4     	ldr	x4, [x23, #0x1fc0]
    6428: aa1303e1     	mov	x1, x19
    642c: d63f0080     	blr	x4
    6430: aa0003f3     	mov	x19, x0
    6434: 97fff02b     	bl	0x24e0 <_maybe_gc_quit>
    6438: 51000b01     	sub	w1, w24, #0x2
    643c: aa1803e0     	mov	x0, x24
    6440: 9342ff02     	asr	x2, x24, #2
    6444: f240043f     	tst	x1, #0x3
    6448: 54fffc20     	b.eq	0x63cc <_F782d626567696e2d64726167_x_begin_drag_0+0x13c>
    644c: f9400341     	ldr	x1, [x26]
    6450: f9534421     	ldr	x1, [x1, #0x2688]
    6454: d63f0020     	blr	x1
    6458: aa0003f8     	mov	x24, x0
    645c: 17ffffe0     	b	0x63dc <_F782d626567696e2d64726167_x_begin_drag_0+0x14c>
    6460: f951d6e1     	ldr	x1, [x23, #0x23a8]
    6464: aa1303e0     	mov	x0, x19
    6468: d63f0020     	blr	x1
    646c: f94fe2e2     	ldr	x2, [x23, #0x1fc0]
    6470: aa0003e1     	mov	x1, x0
    6474: f9427280     	ldr	x0, [x20, #0x4e0]
    6478: d63f0040     	blr	x2
    647c: f94fe2e2     	ldr	x2, [x23, #0x1fc0]
    6480: aa1603e1     	mov	x1, x22
    6484: d63f0040     	blr	x2
    6488: a94573bb     	ldp	x27, x28, [x29, #0x50]
    648c: aa0003f6     	mov	x22, x0
    6490: 9102c3a1     	add	x1, x29, #0xb0
    6494: d28000e0     	mov	x0, #0x7                ; =7
    6498: a9470fa2     	ldp	x2, x3, [x29, #0x70]
    649c: f9445284     	ldr	x4, [x20, #0x8a0]
    64a0: f9005fa2     	str	x2, [x29, #0xb8]
    64a4: f94d3ae2     	ldr	x2, [x23, #0x1a70]
    64a8: a90c0fb6     	stp	x22, x3, [x29, #0xc0]
    64ac: f94037a3     	ldr	x3, [x29, #0x68]
    64b0: f9005ba4     	str	x4, [x29, #0xb0]
    64b4: f9006ba3     	str	x3, [x29, #0xd0]
    64b8: f94033a3     	ldr	x3, [x29, #0x60]
    64bc: a90de7a3     	stp	x3, x25, [x29, #0xd8]
    64c0: d63f0040     	blr	x2
    64c4: aa0003f5     	mov	x21, x0
    64c8: a94153f3     	ldp	x19, x20, [sp, #0x10]
    64cc: aa1503e0     	mov	x0, x21
    64d0: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    64d4: a94363f7     	ldp	x23, x24, [sp, #0x30]
    64d8: a9446bf9     	ldp	x25, x26, [sp, #0x40]
    64dc: a8cf7bfd     	ldp	x29, x30, [sp], #0xf0
    64e0: d65f03c0     	ret
    64e4: f9443a80     	ldr	x0, [x20, #0x870]
    64e8: f953cee1     	ldr	x1, [x23, #0x2798]
    64ec: d63f0020     	blr	x1
    64f0: aa0003f5     	mov	x21, x0
    64f4: f95472e1     	ldr	x1, [x23, #0x28e0]
    64f8: aa1503e0     	mov	x0, x21
    64fc: d63f0020     	blr	x1
    6500: b5fff5a0     	cbnz	x0, 0x63b4 <_F782d626567696e2d64726167_x_begin_drag_0+0x124>
    6504: f953cee1     	ldr	x1, [x23, #0x2798]
    6508: f9443a80     	ldr	x0, [x20, #0x870]
    650c: d63f0020     	blr	x1
    6510: f950aae2     	ldr	x2, [x23, #0x2150]
    6514: d2800001     	mov	x1, #0x0                ; =0
    6518: d63f0040     	blr	x2
    651c: f9446284     	ldr	x4, [x20, #0x8c0]
    6520: aa0003e5     	mov	x5, x0
    6524: 910203a1     	add	x1, x29, #0x80
    6528: d2800040     	mov	x0, #0x2                ; =2
    652c: f9523ee2     	ldr	x2, [x23, #0x2478]
    6530: a90817a4     	stp	x4, x5, [x29, #0x80]
    6534: d63f0040     	blr	x2
    6538: f9445e84     	ldr	x4, [x20, #0x8b8]
    653c: aa0003e5     	mov	x5, x0
    6540: 910243a1     	add	x1, x29, #0x90
    6544: d2800040     	mov	x0, #0x2                ; =2
    6548: f94d3ae2     	ldr	x2, [x23, #0x1a70]
    654c: a90917a4     	stp	x4, x5, [x29, #0x90]
    6550: d63f0040     	blr	x2
    6554: f94fe2e2     	ldr	x2, [x23, #0x1fc0]
    6558: aa0003e1     	mov	x1, x0
    655c: f9427280     	ldr	x0, [x20, #0x4e0]
    6560: d63f0040     	blr	x2
    6564: f94fe2e2     	ldr	x2, [x23, #0x1fc0]
    6568: aa1603e1     	mov	x1, x22
    656c: d63f0040     	blr	x2
    6570: aa0003f6     	mov	x22, x0
    6574: 17ffffc7     	b	0x6490 <_F782d626567696e2d64726167_x_begin_drag_0+0x200>
    6578: f9413285     	ldr	x5, [x20, #0x260]
    657c: aa0003f5     	mov	x21, x0
    6580: 9102c3a1     	add	x1, x29, #0xb0
    6584: d2800040     	mov	x0, #0x2                ; =2
    6588: f9447284     	ldr	x4, [x20, #0x8e0]
    658c: f94d3ae2     	ldr	x2, [x23, #0x1a70]
    6590: a90b13a5     	stp	x5, x4, [x29, #0xb0]
    6594: d63f0040     	blr	x2
    6598: aa1503e0     	mov	x0, x21
    659c: a94153f3     	ldp	x19, x20, [sp, #0x10]
    65a0: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    65a4: a94363f7     	ldp	x23, x24, [sp, #0x30]
    65a8: a9446bf9     	ldp	x25, x26, [sp, #0x40]
    65ac: a8cf7bfd     	ldp	x29, x30, [sp], #0xf0
    65b0: d65f03c0     	ret
    65b4: d503201f     	nop
    65b8: d503201f     	nop
    65bc: d503201f     	nop

00000000000065c0 <_F6e732d68616e646c652d647261672d6d6f74696f6e_ns_handle_drag_motion_0>:
    65c0: 90000064     	adrp	x4, 0x12000 <_d_reloc+0x308>
    65c4: 912da084     	add	x4, x4, #0xb68
    65c8: aa0003e3     	mov	x3, x0
    65cc: aa0103e0     	mov	x0, x1
    65d0: a9bd7bfd     	stp	x29, x30, [sp, #-0x30]!
    65d4: 910003fd     	mov	x29, sp
    65d8: aa0203e1     	mov	x1, x2
    65dc: aa0303e2     	mov	x2, x3
    65e0: d2800003     	mov	x3, #0x0                ; =0
    65e4: f9000bf3     	str	x19, [sp, #0x10]
    65e8: f9400093     	ldr	x19, [x4]
    65ec: f954d264     	ldr	x4, [x19, #0x29a0]
    65f0: d63f0080     	blr	x4
    65f4: f0000042     	adrp	x2, 0x11000 <_text_data_reloc_blob+0x118d>
    65f8: 9133e042     	add	x2, x2, #0xcf8
    65fc: 910083a1     	add	x1, x29, #0x20
    6600: aa0003e4     	mov	x4, x0
    6604: d2800040     	mov	x0, #0x2                ; =2
    6608: f94d3a63     	ldr	x3, [x19, #0x1a70]
    660c: f9428842     	ldr	x2, [x2, #0x510]
    6610: a90213a2     	stp	x2, x4, [x29, #0x20]
    6614: d63f0060     	blr	x3
    6618: f9400bf3     	ldr	x19, [sp, #0x10]
    661c: a8c37bfd     	ldp	x29, x30, [sp], #0x30
    6620: d65f03c0     	ret

0000000000006624 <_top_level_run>:
    6624: 90000061     	adrp	x1, 0x12000 <_d_reloc+0x308>
    6628: 912da021     	add	x1, x1, #0xb68
    662c: d28000c3     	mov	x3, #0x6                ; =6
    6630: aa0003e6     	mov	x6, x0
    6634: a9bc7bfd     	stp	x29, x30, [sp, #-0x40]!
    6638: 910003fd     	mov	x29, sp
    663c: aa0303e2     	mov	x2, x3
    6640: a90153f3     	stp	x19, x20, [sp, #0x10]
    6644: 90000073     	adrp	x19, 0x12000 <_d_reloc+0x308>
    6648: 9119e273     	add	x19, x19, #0x678
    664c: a9025bf5     	stp	x21, x22, [sp, #0x20]
    6650: aa0003f6     	mov	x22, x0
    6654: d2800040     	mov	x0, #0x2                ; =2
    6658: f9400035     	ldr	x21, [x1]
    665c: f0000054     	adrp	x20, 0x11000 <_text_data_reloc_blob+0x118d>
    6660: 9133e294     	add	x20, x20, #0xcf8
    6664: f94e8aa7     	ldr	x7, [x21, #0x1d10]
    6668: f9447e84     	ldr	x4, [x20, #0x8f8]
    666c: f9001bf7     	str	x23, [sp, #0x30]
    6670: a9401661     	ldp	x1, x5, [x19]
    6674: d63f00e0     	blr	x7
    6678: d2800043     	mov	x3, #0x2                ; =2
    667c: f9449e84     	ldr	x4, [x20, #0x938]
    6680: aa1603e6     	mov	x6, x22
    6684: a9411661     	ldp	x1, x5, [x19, #0x10]
    6688: aa0303e2     	mov	x2, x3
    668c: d28000c0     	mov	x0, #0x6                ; =6
    6690: f94e8aa7     	ldr	x7, [x21, #0x1d10]
    6694: d63f00e0     	blr	x7
    6698: d28000c3     	mov	x3, #0x6                ; =6
    669c: f9447e84     	ldr	x4, [x20, #0x8f8]
    66a0: aa1603e6     	mov	x6, x22
    66a4: a9421661     	ldp	x1, x5, [x19, #0x20]
    66a8: aa0303e2     	mov	x2, x3
    66ac: d2800140     	mov	x0, #0xa                ; =10
    66b0: f94e8aa7     	ldr	x7, [x21, #0x1d10]
    66b4: d63f00e0     	blr	x7
    66b8: d28000c3     	mov	x3, #0x6                ; =6
    66bc: f944a284     	ldr	x4, [x20, #0x940]
    66c0: aa1603e6     	mov	x6, x22
    66c4: a9431661     	ldp	x1, x5, [x19, #0x30]
    66c8: aa0303e2     	mov	x2, x3
    66cc: d28001c0     	mov	x0, #0xe                ; =14
    66d0: f94e8aa7     	ldr	x7, [x21, #0x1d10]
    66d4: d63f00e0     	blr	x7
    66d8: d2800043     	mov	x3, #0x2                ; =2
    66dc: f944aa84     	ldr	x4, [x20, #0x950]
    66e0: aa1603e6     	mov	x6, x22
    66e4: a9441661     	ldp	x1, x5, [x19, #0x40]
    66e8: aa0303e2     	mov	x2, x3
    66ec: d2800240     	mov	x0, #0x12               ; =18
    66f0: f94e8aa7     	ldr	x7, [x21, #0x1d10]
    66f4: d63f00e0     	blr	x7
    66f8: f944a684     	ldr	x4, [x20, #0x948]
    66fc: aa1603e6     	mov	x6, x22
    6700: d28000c3     	mov	x3, #0x6                ; =6
    6704: a9451661     	ldp	x1, x5, [x19, #0x50]
    6708: d2800042     	mov	x2, #0x2                ; =2
    670c: d28002c0     	mov	x0, #0x16               ; =22
    6710: f94e8aa7     	ldr	x7, [x21, #0x1d10]
    6714: d63f00e0     	blr	x7
    6718: d28000c3     	mov	x3, #0x6                ; =6
    671c: f9447e84     	ldr	x4, [x20, #0x8f8]
    6720: aa1603e6     	mov	x6, x22
    6724: a9461661     	ldp	x1, x5, [x19, #0x60]
    6728: aa0303e2     	mov	x2, x3
    672c: d2800340     	mov	x0, #0x1a               ; =26
    6730: f94e8aa7     	ldr	x7, [x21, #0x1d10]
    6734: d63f00e0     	blr	x7
    6738: d28000c3     	mov	x3, #0x6                ; =6
    673c: f9447e84     	ldr	x4, [x20, #0x8f8]
    6740: aa1603e6     	mov	x6, x22
    6744: a9471661     	ldp	x1, x5, [x19, #0x70]
    6748: aa0303e2     	mov	x2, x3
    674c: d28003c0     	mov	x0, #0x1e               ; =30
    6750: f94e8aa7     	ldr	x7, [x21, #0x1d10]
    6754: d63f00e0     	blr	x7
    6758: d2800143     	mov	x3, #0xa                ; =10
    675c: f9449684     	ldr	x4, [x20, #0x928]
    6760: aa1603e6     	mov	x6, x22
    6764: a9481661     	ldp	x1, x5, [x19, #0x80]
    6768: aa0303e2     	mov	x2, x3
    676c: d2800440     	mov	x0, #0x22               ; =34
    6770: f94e8aa7     	ldr	x7, [x21, #0x1d10]
    6774: d63f00e0     	blr	x7
    6778: d28000c3     	mov	x3, #0x6                ; =6
    677c: f9447e84     	ldr	x4, [x20, #0x8f8]
    6780: aa1603e6     	mov	x6, x22
    6784: a9491661     	ldp	x1, x5, [x19, #0x90]
    6788: aa0303e2     	mov	x2, x3
    678c: d28004c0     	mov	x0, #0x26               ; =38
    6790: f94e8aa7     	ldr	x7, [x21, #0x1d10]
    6794: d63f00e0     	blr	x7
    6798: d28000c3     	mov	x3, #0x6                ; =6
    679c: f9447e84     	ldr	x4, [x20, #0x8f8]
    67a0: aa1603e6     	mov	x6, x22
    67a4: a94a1661     	ldp	x1, x5, [x19, #0xa0]
    67a8: aa0303e2     	mov	x2, x3
    67ac: d2800540     	mov	x0, #0x2a               ; =42
    67b0: f94e8aa7     	ldr	x7, [x21, #0x1d10]
    67b4: d63f00e0     	blr	x7
    67b8: 90000077     	adrp	x23, 0x12000 <_d_reloc+0x308>
    67bc: 912922f7     	add	x23, x23, #0xa48
    67c0: d2800143     	mov	x3, #0xa                ; =10
    67c4: aa1603e6     	mov	x6, x22
    67c8: a94b1661     	ldp	x1, x5, [x19, #0xb0]
    67cc: aa0303e2     	mov	x2, x3
    67d0: d28005c0     	mov	x0, #0x2e               ; =46
    67d4: f9449684     	ldr	x4, [x20, #0x928]
    67d8: f94e8aa7     	ldr	x7, [x21, #0x1d10]
    67dc: d63f00e0     	blr	x7
    67e0: f94d42a2     	ldr	x2, [x21, #0x1a80]
    67e4: f9402281     	ldr	x1, [x20, #0x40]
    67e8: f94032e0     	ldr	x0, [x23, #0x60]
    67ec: d63f0040     	blr	x2
    67f0: f9401e80     	ldr	x0, [x20, #0x38]
    67f4: aa1603e6     	mov	x6, x22
    67f8: d2800143     	mov	x3, #0xa                ; =10
    67fc: a94c1661     	ldp	x1, x5, [x19, #0xc0]
    6800: d28000c2     	mov	x2, #0x6                ; =6
    6804: f9447a84     	ldr	x4, [x20, #0x8f0]
    6808: f94e86a7     	ldr	x7, [x21, #0x1d08]
    680c: d63f00e0     	blr	x7
    6810: d28000c3     	mov	x3, #0x6                ; =6
    6814: f9407265     	ldr	x5, [x19, #0xe0]
    6818: aa1603e6     	mov	x6, x22
    681c: a94d0660     	ldp	x0, x1, [x19, #0xd0]
    6820: aa0303e2     	mov	x2, x3
    6824: f9447e84     	ldr	x4, [x20, #0x8f8]
    6828: f94e86a7     	ldr	x7, [x21, #0x1d08]
    682c: d63f00e0     	blr	x7
    6830: d28000c3     	mov	x3, #0x6                ; =6
    6834: f9407e65     	ldr	x5, [x19, #0xf8]
    6838: aa1603e6     	mov	x6, x22
    683c: a94e8660     	ldp	x0, x1, [x19, #0xe8]
    6840: aa0303e2     	mov	x2, x3
    6844: f9447e84     	ldr	x4, [x20, #0x8f8]
    6848: f94e86a7     	ldr	x7, [x21, #0x1d08]
    684c: d63f00e0     	blr	x7
    6850: f9408a65     	ldr	x5, [x19, #0x110]
    6854: d28000c3     	mov	x3, #0x6                ; =6
    6858: aa1603e6     	mov	x6, x22
    685c: aa0303e2     	mov	x2, x3
    6860: a9500660     	ldp	x0, x1, [x19, #0x100]
    6864: f9447e84     	ldr	x4, [x20, #0x8f8]
    6868: f94e86a7     	ldr	x7, [x21, #0x1d08]
    686c: d63f00e0     	blr	x7
    6870: f9402281     	ldr	x1, [x20, #0x40]
    6874: f94036e0     	ldr	x0, [x23, #0x68]
    6878: f94d42a2     	ldr	x2, [x21, #0x1a80]
    687c: d63f0040     	blr	x2
    6880: f9402281     	ldr	x1, [x20, #0x40]
    6884: f9403ae0     	ldr	x0, [x23, #0x70]
    6888: f94d42a2     	ldr	x2, [x21, #0x1a80]
    688c: d63f0040     	blr	x2
    6890: f9409665     	ldr	x5, [x19, #0x128]
    6894: d2800043     	mov	x3, #0x2                ; =2
    6898: aa1603e6     	mov	x6, x22
    689c: aa0303e2     	mov	x2, x3
    68a0: a9518660     	ldp	x0, x1, [x19, #0x118]
    68a4: f9448284     	ldr	x4, [x20, #0x900]
    68a8: f94e86a7     	ldr	x7, [x21, #0x1d08]
    68ac: d63f00e0     	blr	x7
    68b0: f9402281     	ldr	x1, [x20, #0x40]
    68b4: f9403ee0     	ldr	x0, [x23, #0x78]
    68b8: f94d42a2     	ldr	x2, [x21, #0x1a80]
    68bc: d63f0040     	blr	x2
    68c0: d28000c3     	mov	x3, #0x6                ; =6
    68c4: f943e680     	ldr	x0, [x20, #0x7c8]
    68c8: aa1603e6     	mov	x6, x22
    68cc: a9531661     	ldp	x1, x5, [x19, #0x130]
    68d0: aa0303e2     	mov	x2, x3
    68d4: f9447e84     	ldr	x4, [x20, #0x8f8]
    68d8: f94e86a7     	ldr	x7, [x21, #0x1d08]
    68dc: d63f00e0     	blr	x7
    68e0: d28000c3     	mov	x3, #0x6                ; =6
    68e4: f9414680     	ldr	x0, [x20, #0x288]
    68e8: aa1603e6     	mov	x6, x22
    68ec: a9541661     	ldp	x1, x5, [x19, #0x140]
    68f0: aa0303e2     	mov	x2, x3
    68f4: f9448684     	ldr	x4, [x20, #0x908]
    68f8: f94e86a7     	ldr	x7, [x21, #0x1d08]
    68fc: d63f00e0     	blr	x7
    6900: f9448a84     	ldr	x4, [x20, #0x910]
    6904: d2800043     	mov	x3, #0x2                ; =2
    6908: aa1603e6     	mov	x6, x22
    690c: a9551661     	ldp	x1, x5, [x19, #0x150]
    6910: aa0303e2     	mov	x2, x3
    6914: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6918: f9408a80     	ldr	x0, [x20, #0x110]
    691c: d63f00e0     	blr	x7
    6920: f9402281     	ldr	x1, [x20, #0x40]
    6924: f94042e0     	ldr	x0, [x23, #0x80]
    6928: f94d42a2     	ldr	x2, [x21, #0x1a80]
    692c: d63f0040     	blr	x2
    6930: f9402281     	ldr	x1, [x20, #0x40]
    6934: f94046e0     	ldr	x0, [x23, #0x88]
    6938: f94d42a2     	ldr	x2, [x21, #0x1a80]
    693c: d63f0040     	blr	x2
    6940: d2800043     	mov	x3, #0x2                ; =2
    6944: f9417280     	ldr	x0, [x20, #0x2e0]
    6948: aa1603e6     	mov	x6, x22
    694c: a9561661     	ldp	x1, x5, [x19, #0x160]
    6950: aa0303e2     	mov	x2, x3
    6954: f9448a84     	ldr	x4, [x20, #0x910]
    6958: f94e86a7     	ldr	x7, [x21, #0x1d08]
    695c: d63f00e0     	blr	x7
    6960: d2800043     	mov	x3, #0x2                ; =2
    6964: f940c265     	ldr	x5, [x19, #0x180]
    6968: aa1603e6     	mov	x6, x22
    696c: a9570660     	ldp	x0, x1, [x19, #0x170]
    6970: aa0303e2     	mov	x2, x3
    6974: f9448a84     	ldr	x4, [x20, #0x910]
    6978: f94e86a7     	ldr	x7, [x21, #0x1d08]
    697c: d63f00e0     	blr	x7
    6980: d2800043     	mov	x3, #0x2                ; =2
    6984: f940ce65     	ldr	x5, [x19, #0x198]
    6988: aa1603e6     	mov	x6, x22
    698c: a9588660     	ldp	x0, x1, [x19, #0x188]
    6990: aa0303e2     	mov	x2, x3
    6994: f9448a84     	ldr	x4, [x20, #0x910]
    6998: f94e86a7     	ldr	x7, [x21, #0x1d08]
    699c: d63f00e0     	blr	x7
    69a0: d2800043     	mov	x3, #0x2                ; =2
    69a4: f9417680     	ldr	x0, [x20, #0x2e8]
    69a8: aa1603e6     	mov	x6, x22
    69ac: a95a1661     	ldp	x1, x5, [x19, #0x1a0]
    69b0: aa0303e2     	mov	x2, x3
    69b4: f9448a84     	ldr	x4, [x20, #0x910]
    69b8: f94e86a7     	ldr	x7, [x21, #0x1d08]
    69bc: d63f00e0     	blr	x7
    69c0: d2800043     	mov	x3, #0x2                ; =2
    69c4: f9417a80     	ldr	x0, [x20, #0x2f0]
    69c8: aa1603e6     	mov	x6, x22
    69cc: a95b1661     	ldp	x1, x5, [x19, #0x1b0]
    69d0: aa0303e2     	mov	x2, x3
    69d4: f9448e84     	ldr	x4, [x20, #0x918]
    69d8: f94e86a7     	ldr	x7, [x21, #0x1d08]
    69dc: d63f00e0     	blr	x7
    69e0: f9449284     	ldr	x4, [x20, #0x920]
    69e4: d2800043     	mov	x3, #0x2                ; =2
    69e8: aa1603e6     	mov	x6, x22
    69ec: a95c1661     	ldp	x1, x5, [x19, #0x1c0]
    69f0: aa0303e2     	mov	x2, x3
    69f4: f94e86a7     	ldr	x7, [x21, #0x1d08]
    69f8: f9417e80     	ldr	x0, [x20, #0x2f8]
    69fc: d63f00e0     	blr	x7
    6a00: f9402281     	ldr	x1, [x20, #0x40]
    6a04: f9404ae0     	ldr	x0, [x23, #0x90]
    6a08: f94d42a2     	ldr	x2, [x21, #0x1a80]
    6a0c: d63f0040     	blr	x2
    6a10: f940f265     	ldr	x5, [x19, #0x1e0]
    6a14: d2800043     	mov	x3, #0x2                ; =2
    6a18: aa1603e6     	mov	x6, x22
    6a1c: aa0303e2     	mov	x2, x3
    6a20: a95d0660     	ldp	x0, x1, [x19, #0x1d0]
    6a24: f9448a84     	ldr	x4, [x20, #0x910]
    6a28: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6a2c: d63f00e0     	blr	x7
    6a30: f9402281     	ldr	x1, [x20, #0x40]
    6a34: f9404ee0     	ldr	x0, [x23, #0x98]
    6a38: f94d42a2     	ldr	x2, [x21, #0x1a80]
    6a3c: d63f0040     	blr	x2
    6a40: f9402281     	ldr	x1, [x20, #0x40]
    6a44: f94052e0     	ldr	x0, [x23, #0xa0]
    6a48: f94d42a2     	ldr	x2, [x21, #0x1a80]
    6a4c: d63f0040     	blr	x2
    6a50: d2800043     	mov	x3, #0x2                ; =2
    6a54: f940fe65     	ldr	x5, [x19, #0x1f8]
    6a58: aa1603e6     	mov	x6, x22
    6a5c: a95e8660     	ldp	x0, x1, [x19, #0x1e8]
    6a60: aa0303e2     	mov	x2, x3
    6a64: f9448a84     	ldr	x4, [x20, #0x910]
    6a68: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6a6c: d63f00e0     	blr	x7
    6a70: f9410a65     	ldr	x5, [x19, #0x210]
    6a74: d2800043     	mov	x3, #0x2                ; =2
    6a78: aa1603e6     	mov	x6, x22
    6a7c: aa0303e2     	mov	x2, x3
    6a80: f9448a84     	ldr	x4, [x20, #0x910]
    6a84: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6a88: f9410260     	ldr	x0, [x19, #0x200]
    6a8c: f9410661     	ldr	x1, [x19, #0x208]
    6a90: d63f00e0     	blr	x7
    6a94: f9402281     	ldr	x1, [x20, #0x40]
    6a98: f94056e0     	ldr	x0, [x23, #0xa8]
    6a9c: f94d42a2     	ldr	x2, [x21, #0x1a80]
    6aa0: d63f0040     	blr	x2
    6aa4: d2800143     	mov	x3, #0xa                ; =10
    6aa8: f9410e61     	ldr	x1, [x19, #0x218]
    6aac: aa1603e6     	mov	x6, x22
    6ab0: aa0303e2     	mov	x2, x3
    6ab4: f9411265     	ldr	x5, [x19, #0x220]
    6ab8: f9439e80     	ldr	x0, [x20, #0x738]
    6abc: f9449684     	ldr	x4, [x20, #0x928]
    6ac0: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6ac4: d63f00e0     	blr	x7
    6ac8: f9411660     	ldr	x0, [x19, #0x228]
    6acc: aa1603e6     	mov	x6, x22
    6ad0: d28002c3     	mov	x3, #0x16               ; =22
    6ad4: d2800142     	mov	x2, #0xa                ; =10
    6ad8: f9411a61     	ldr	x1, [x19, #0x230]
    6adc: f9411e65     	ldr	x5, [x19, #0x238]
    6ae0: f9449a84     	ldr	x4, [x20, #0x930]
    6ae4: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6ae8: d63f00e0     	blr	x7
    6aec: d2800043     	mov	x3, #0x2                ; =2
    6af0: f9412260     	ldr	x0, [x19, #0x240]
    6af4: aa1603e6     	mov	x6, x22
    6af8: aa0303e2     	mov	x2, x3
    6afc: f9412661     	ldr	x1, [x19, #0x248]
    6b00: f9412a65     	ldr	x5, [x19, #0x250]
    6b04: f9448a84     	ldr	x4, [x20, #0x910]
    6b08: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6b0c: d63f00e0     	blr	x7
    6b10: f9413665     	ldr	x5, [x19, #0x268]
    6b14: d2800043     	mov	x3, #0x2                ; =2
    6b18: aa1603e6     	mov	x6, x22
    6b1c: aa0303e2     	mov	x2, x3
    6b20: f9448a84     	ldr	x4, [x20, #0x910]
    6b24: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6b28: f9412e60     	ldr	x0, [x19, #0x258]
    6b2c: f9413261     	ldr	x1, [x19, #0x260]
    6b30: d63f00e0     	blr	x7
    6b34: f9402281     	ldr	x1, [x20, #0x40]
    6b38: f9405ae0     	ldr	x0, [x23, #0xb0]
    6b3c: f94d42a2     	ldr	x2, [x21, #0x1a80]
    6b40: d63f0040     	blr	x2
    6b44: d2800043     	mov	x3, #0x2                ; =2
    6b48: f9413a61     	ldr	x1, [x19, #0x270]
    6b4c: aa1603e6     	mov	x6, x22
    6b50: aa0303e2     	mov	x2, x3
    6b54: f9413e65     	ldr	x5, [x19, #0x278]
    6b58: f941ce80     	ldr	x0, [x20, #0x398]
    6b5c: f9448a84     	ldr	x4, [x20, #0x910]
    6b60: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6b64: d63f00e0     	blr	x7
    6b68: f9414a65     	ldr	x5, [x19, #0x290]
    6b6c: d28000c3     	mov	x3, #0x6                ; =6
    6b70: aa1603e6     	mov	x6, x22
    6b74: aa0303e2     	mov	x2, x3
    6b78: f9447e84     	ldr	x4, [x20, #0x8f8]
    6b7c: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6b80: f9414260     	ldr	x0, [x19, #0x280]
    6b84: f9414661     	ldr	x1, [x19, #0x288]
    6b88: d63f00e0     	blr	x7
    6b8c: f9402281     	ldr	x1, [x20, #0x40]
    6b90: f9405ee0     	ldr	x0, [x23, #0xb8]
    6b94: f94d42a2     	ldr	x2, [x21, #0x1a80]
    6b98: d63f0040     	blr	x2
    6b9c: d2800043     	mov	x3, #0x2                ; =2
    6ba0: f9414e61     	ldr	x1, [x19, #0x298]
    6ba4: aa1603e6     	mov	x6, x22
    6ba8: aa0303e2     	mov	x2, x3
    6bac: f9415265     	ldr	x5, [x19, #0x2a0]
    6bb0: f943da80     	ldr	x0, [x20, #0x7b0]
    6bb4: f9448a84     	ldr	x4, [x20, #0x910]
    6bb8: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6bbc: d63f00e0     	blr	x7
    6bc0: d2800043     	mov	x3, #0x2                ; =2
    6bc4: f9415660     	ldr	x0, [x19, #0x2a8]
    6bc8: aa1603e6     	mov	x6, x22
    6bcc: aa0303e2     	mov	x2, x3
    6bd0: f9415a61     	ldr	x1, [x19, #0x2b0]
    6bd4: f9415e65     	ldr	x5, [x19, #0x2b8]
    6bd8: f9448a84     	ldr	x4, [x20, #0x910]
    6bdc: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6be0: d63f00e0     	blr	x7
    6be4: d2800043     	mov	x3, #0x2                ; =2
    6be8: f9416260     	ldr	x0, [x19, #0x2c0]
    6bec: aa1603e6     	mov	x6, x22
    6bf0: aa0303e2     	mov	x2, x3
    6bf4: f9416661     	ldr	x1, [x19, #0x2c8]
    6bf8: f9416a65     	ldr	x5, [x19, #0x2d0]
    6bfc: f9448a84     	ldr	x4, [x20, #0x910]
    6c00: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6c04: d63f00e0     	blr	x7
    6c08: d2800043     	mov	x3, #0x2                ; =2
    6c0c: f9416e60     	ldr	x0, [x19, #0x2d8]
    6c10: aa1603e6     	mov	x6, x22
    6c14: aa0303e2     	mov	x2, x3
    6c18: f9417261     	ldr	x1, [x19, #0x2e0]
    6c1c: f9417665     	ldr	x5, [x19, #0x2e8]
    6c20: f9448a84     	ldr	x4, [x20, #0x910]
    6c24: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6c28: d63f00e0     	blr	x7
    6c2c: d2800043     	mov	x3, #0x2                ; =2
    6c30: f9417a60     	ldr	x0, [x19, #0x2f0]
    6c34: aa1603e6     	mov	x6, x22
    6c38: aa0303e2     	mov	x2, x3
    6c3c: f9417e61     	ldr	x1, [x19, #0x2f8]
    6c40: f9418265     	ldr	x5, [x19, #0x300]
    6c44: f9448a84     	ldr	x4, [x20, #0x910]
    6c48: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6c4c: d63f00e0     	blr	x7
    6c50: d2800043     	mov	x3, #0x2                ; =2
    6c54: f9418660     	ldr	x0, [x19, #0x308]
    6c58: aa1603e6     	mov	x6, x22
    6c5c: aa0303e2     	mov	x2, x3
    6c60: f9418a61     	ldr	x1, [x19, #0x310]
    6c64: f9418e65     	ldr	x5, [x19, #0x318]
    6c68: f9448a84     	ldr	x4, [x20, #0x910]
    6c6c: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6c70: d63f00e0     	blr	x7
    6c74: f94d42a2     	ldr	x2, [x21, #0x1a80]
    6c78: f9402281     	ldr	x1, [x20, #0x40]
    6c7c: f94062e0     	ldr	x0, [x23, #0xc0]
    6c80: d63f0040     	blr	x2
    6c84: f9409a80     	ldr	x0, [x20, #0x130]
    6c88: aa1603e6     	mov	x6, x22
    6c8c: d28000c3     	mov	x3, #0x6                ; =6
    6c90: d2800042     	mov	x2, #0x2                ; =2
    6c94: f9419261     	ldr	x1, [x19, #0x320]
    6c98: f9419665     	ldr	x5, [x19, #0x328]
    6c9c: f944a684     	ldr	x4, [x20, #0x948]
    6ca0: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6ca4: d63f00e0     	blr	x7
    6ca8: f941a265     	ldr	x5, [x19, #0x340]
    6cac: d2800043     	mov	x3, #0x2                ; =2
    6cb0: aa1603e6     	mov	x6, x22
    6cb4: aa0303e2     	mov	x2, x3
    6cb8: f9448a84     	ldr	x4, [x20, #0x910]
    6cbc: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6cc0: f9419a60     	ldr	x0, [x19, #0x330]
    6cc4: f9419e61     	ldr	x1, [x19, #0x338]
    6cc8: d63f00e0     	blr	x7
    6ccc: f9402281     	ldr	x1, [x20, #0x40]
    6cd0: f94066e0     	ldr	x0, [x23, #0xc8]
    6cd4: f94d42a2     	ldr	x2, [x21, #0x1a80]
    6cd8: d63f0040     	blr	x2
    6cdc: f9402281     	ldr	x1, [x20, #0x40]
    6ce0: f9406ae0     	ldr	x0, [x23, #0xd0]
    6ce4: f94d42a2     	ldr	x2, [x21, #0x1a80]
    6ce8: d63f0040     	blr	x2
    6cec: f9402281     	ldr	x1, [x20, #0x40]
    6cf0: f9406ee0     	ldr	x0, [x23, #0xd8]
    6cf4: f94d42a2     	ldr	x2, [x21, #0x1a80]
    6cf8: d63f0040     	blr	x2
    6cfc: d2800043     	mov	x3, #0x2                ; =2
    6d00: f941a660     	ldr	x0, [x19, #0x348]
    6d04: aa1603e6     	mov	x6, x22
    6d08: aa0303e2     	mov	x2, x3
    6d0c: f941aa61     	ldr	x1, [x19, #0x350]
    6d10: f941ae65     	ldr	x5, [x19, #0x358]
    6d14: f9448a84     	ldr	x4, [x20, #0x910]
    6d18: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6d1c: d63f00e0     	blr	x7
    6d20: f941ba65     	ldr	x5, [x19, #0x370]
    6d24: d2800043     	mov	x3, #0x2                ; =2
    6d28: aa1603e6     	mov	x6, x22
    6d2c: aa0303e2     	mov	x2, x3
    6d30: f9448a84     	ldr	x4, [x20, #0x910]
    6d34: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6d38: f941b260     	ldr	x0, [x19, #0x360]
    6d3c: f941b661     	ldr	x1, [x19, #0x368]
    6d40: d63f00e0     	blr	x7
    6d44: f9402281     	ldr	x1, [x20, #0x40]
    6d48: f94072e0     	ldr	x0, [x23, #0xe0]
    6d4c: f94d42a2     	ldr	x2, [x21, #0x1a80]
    6d50: d63f0040     	blr	x2
    6d54: d28000c3     	mov	x3, #0x6                ; =6
    6d58: f941be60     	ldr	x0, [x19, #0x378]
    6d5c: aa1603e6     	mov	x6, x22
    6d60: aa0303e2     	mov	x2, x3
    6d64: f941c261     	ldr	x1, [x19, #0x380]
    6d68: f941c665     	ldr	x5, [x19, #0x388]
    6d6c: f9447e84     	ldr	x4, [x20, #0x8f8]
    6d70: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6d74: d63f00e0     	blr	x7
    6d78: f941ce65     	ldr	x5, [x19, #0x398]
    6d7c: d2800043     	mov	x3, #0x2                ; =2
    6d80: aa1603e6     	mov	x6, x22
    6d84: aa0303e2     	mov	x2, x3
    6d88: f9449284     	ldr	x4, [x20, #0x920]
    6d8c: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6d90: f941ca61     	ldr	x1, [x19, #0x390]
    6d94: f943ca80     	ldr	x0, [x20, #0x790]
    6d98: d63f00e0     	blr	x7
    6d9c: f9402281     	ldr	x1, [x20, #0x40]
    6da0: f94076e0     	ldr	x0, [x23, #0xe8]
    6da4: f94d42a2     	ldr	x2, [x21, #0x1a80]
    6da8: d63f0040     	blr	x2
    6dac: f9402281     	ldr	x1, [x20, #0x40]
    6db0: f9407ae0     	ldr	x0, [x23, #0xf0]
    6db4: f94d42a2     	ldr	x2, [x21, #0x1a80]
    6db8: d63f0040     	blr	x2
    6dbc: f9402281     	ldr	x1, [x20, #0x40]
    6dc0: f9407ee0     	ldr	x0, [x23, #0xf8]
    6dc4: f94d42a2     	ldr	x2, [x21, #0x1a80]
    6dc8: d63f0040     	blr	x2
    6dcc: f9402281     	ldr	x1, [x20, #0x40]
    6dd0: f94082e0     	ldr	x0, [x23, #0x100]
    6dd4: f94d42a2     	ldr	x2, [x21, #0x1a80]
    6dd8: d63f0040     	blr	x2
    6ddc: f94d42a2     	ldr	x2, [x21, #0x1a80]
    6de0: f9402281     	ldr	x1, [x20, #0x40]
    6de4: f94086e0     	ldr	x0, [x23, #0x108]
    6de8: d63f0040     	blr	x2
    6dec: f941d260     	ldr	x0, [x19, #0x3a0]
    6df0: aa1603e6     	mov	x6, x22
    6df4: d2800343     	mov	x3, #0x1a               ; =26
    6df8: d28000c2     	mov	x2, #0x6                ; =6
    6dfc: f941d661     	ldr	x1, [x19, #0x3a8]
    6e00: f941da65     	ldr	x5, [x19, #0x3b0]
    6e04: f944ae84     	ldr	x4, [x20, #0x958]
    6e08: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6e0c: d63f00e0     	blr	x7
    6e10: f941e665     	ldr	x5, [x19, #0x3c8]
    6e14: d28001c3     	mov	x3, #0xe                ; =14
    6e18: aa1603e6     	mov	x6, x22
    6e1c: aa0303e2     	mov	x2, x3
    6e20: f944b284     	ldr	x4, [x20, #0x960]
    6e24: f94e86a7     	ldr	x7, [x21, #0x1d08]
    6e28: f941de60     	ldr	x0, [x19, #0x3b8]
    6e2c: f941e261     	ldr	x1, [x19, #0x3c0]
    6e30: d63f00e0     	blr	x7
    6e34: f9402281     	ldr	x1, [x20, #0x40]
    6e38: aa0003f3     	mov	x19, x0
    6e3c: f9408ae0     	ldr	x0, [x23, #0x110]
    6e40: f94d42a2     	ldr	x2, [x21, #0x1a80]
    6e44: d63f0040     	blr	x2
    6e48: f9401bf7     	ldr	x23, [sp, #0x30]
    6e4c: aa1303e0     	mov	x0, x19
    6e50: a94153f3     	ldp	x19, x20, [sp, #0x10]
    6e54: a9425bf5     	ldp	x21, x22, [sp, #0x20]
    6e58: a8c47bfd     	ldp	x29, x30, [sp], #0x40
    6e5c: d65f03c0     	ret

Disassembly of section __TEXT,__stubs:

0000000000006e60 <__stubs>:
    6e60: d0000030     	adrp	x16, 0xc000 <dyld_stub_binder+0xc000>
    6e64: f9400210     	ldr	x16, [x16]
    6e68: d61f0200     	br	x16

Disassembly of section __TEXT,__stub_helper:

0000000000006e6c <__stub_helper>:
    6e6c: d0000031     	adrp	x17, 0xc000 <dyld_stub_binder+0xc000>
    6e70: 91002231     	add	x17, x17, #0x8
    6e74: a9bf47f0     	stp	x16, x17, [sp, #-0x10]!
    6e78: d0000010     	adrp	x16, 0x8000 <dyld_stub_binder+0x8000>
    6e7c: f9400210     	ldr	x16, [x16]
    6e80: d61f0200     	br	x16
    6e84: 18000050     	ldr	w16, 0x6e8c <__stub_helper+0x20>
    6e88: 17fffff9     	b	0x6e6c <__stub_helper>
    6e8c: 00000000     	udf	#0x0




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 14:46:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 15:27:02 GMT) Full text and rfc822 format available.

Message #50 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Thu, 19 Dec 2024 16:25:30 +0100
The same happens with master and --enable-checking, so it's not igc.

/Users/gerd/emacs/savannah/master % src/emacs -Q
2024-12-19 16:20:25.163 emacs[83702:3766262] +[IMKClient subclass]: chose IMKClient_Modern
2024-12-19 16:20:25.163 emacs[83702:3766262] +[IMKInputSession subclass]: chose IMKInputSession_Modern

./lisp.h:2000: Emacs fatal error: assertion failed: 0 <= idx && idx < gc_asize (array)
Fatal error 6: Aborted





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 15:32:02 GMT) Full text and rfc822 format available.

Message #53 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Pip Cet <pipcet <at> protonmail.com>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: Sean Devlin <spd <at> toadstyle.org>, "Pip Cet via \"Bug reports for GNU Emacs,
 the Swiss army knife of text editors\"" <bug-gnu-emacs <at> gnu.org>,
 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Thu, 19 Dec 2024 15:31:04 +0000
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:

> Pip Cet <pipcet <at> protonmail.com> writes:
>
>> XSUBR (function)->doc should have been set by comp--register-subr (most
>> likely), so maybe disassemble the toplevel_run function of the right
>> .eln file...
>>
>>> HTH a bit.
>>
>> It does, thanks!
>
> Got a bit more (don't ask how :-)):

Okay, I won't :-)

I'm still not sure whether this happens while compiling or when loading.
Can you look at the .eln file and see whether it contains a blob (string
data in the binary) that would look like this

"F782d66696c652d6469616c6f67_x_file_dialog_0" (46543 ...)

or, more likely, have a much smaller integer in the list argument?

Thanks!

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 15:32:03 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 15:43:02 GMT) Full text and rfc822 format available.

Message #59 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: Sean Devlin <spd <at> toadstyle.org>, "Pip Cet via \"Bug reports for GNU Emacs,
 the Swiss army knife of text
 editors\"" <bug-gnu-emacs <at> gnu.org>, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Thu, 19 Dec 2024 16:42:11 +0100
Pip Cet <pipcet <at> protonmail.com> writes:

> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
>
>> Pip Cet <pipcet <at> protonmail.com> writes:
>>
>>> XSUBR (function)->doc should have been set by comp--register-subr (most
>>> likely), so maybe disassemble the toplevel_run function of the right
>>> .eln file...
>>>
>>>> HTH a bit.
>>>
>>> It does, thanks!
>>
>> Got a bit more (don't ask how :-)):
>
> Okay, I won't :-)
>
> I'm still not sure whether this happens while compiling or when loading.
> Can you look at the .eln file and see whether it contains a blob (string
> data in the binary) that would look like this
>
> "F782d66696c652d6469616c6f67_x_file_dialog_0" (46543 ...)
>
> or, more likely, have a much smaller integer in the list argument?

I see an "F782d66696c652d6469616c6f67_x_file_dialog_0" (29 nil nil)
ns-open-file-using-panel with strings.





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 15:44:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 19:22:01 GMT) Full text and rfc822 format available.

Message #65 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Pip Cet <pipcet <at> protonmail.com>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Thu, 19 Dec 2024 19:21:33 +0000
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:

> The same happens with master and --enable-checking, so it's not igc.

So... something's clobbering our subrs?  Any chance we can set a
watchpoint and find out who it is, or whether the initialization is
already using bad data?

> /Users/gerd/emacs/savannah/master % src/emacs -Q
> 2024-12-19 16:20:25.163 emacs[83702:3766262] +[IMKClient subclass]: chose IMKClient_Modern
> 2024-12-19 16:20:25.163 emacs[83702:3766262] +[IMKInputSession subclass]: chose IMKInputSession_Modern
>
> ./lisp.h:2000: Emacs fatal error: assertion failed: 0 <= idx && idx < gc_asize (array)
> Fatal error 6: Aborted

I assume that's in the same place?

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Thu, 19 Dec 2024 19:48:01 GMT) Full text and rfc822 format available.

Message #68 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Thu, 19 Dec 2024 20:46:07 +0100
Pip Cet <pipcet <at> protonmail.com> writes:

> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
>
>> The same happens with master and --enable-checking, so it's not igc.
>
> So... something's clobbering our subrs?  Any chance we can set a
> watchpoint and find out who it is, or whether the initialization is
> already using bad data?

I have no idea what could be happening ATM. An interesting details might
be that ns-win is in the .pdmp, judging from loadup.el.

I've stopped there for today because it was already a bit late for me. I
think I'll try tomorrow first if this depends on native compilation, or
if it also happens without. Just to be sure.

>> /Users/gerd/emacs/savannah/master % src/emacs -Q
>> 2024-12-19 16:20:25.163 emacs[83702:3766262] +[IMKClient subclass]: chose IMKClient_Modern
>> 2024-12-19 16:20:25.163 emacs[83702:3766262] +[IMKInputSession subclass]: chose IMKInputSession_Modern
>>
>> ./lisp.h:2000: Emacs fatal error: assertion failed: 0 <= idx && idx < gc_asize (array)
>> Fatal error 6: Aborted
>
> I assume that's in the same place?

I haven't checked, just assumed that if the same action leads to the
same result, it's pretty likely to have the same cause.

I'll let you know when I find something out tomorrow. 






Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 06:35:02 GMT) Full text and rfc822 format available.

Message #71 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Pip Cet <pipcet <at> protonmail.com>,
 Andrea Corallo <acorallo <at> gnu.org>
Cc: gerd.moellmann <at> gmail.com, spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 08:34:30 +0200
> Cc: spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
> Date: Thu, 19 Dec 2024 19:21:33 +0000
> From:  Pip Cet via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
> 
> > The same happens with master and --enable-checking, so it's not igc.
> 
> So... something's clobbering our subrs?  Any chance we can set a
> watchpoint and find out who it is, or whether the initialization is
> already using bad data?
> 
> > /Users/gerd/emacs/savannah/master % src/emacs -Q
> > 2024-12-19 16:20:25.163 emacs[83702:3766262] +[IMKClient subclass]: chose IMKClient_Modern
> > 2024-12-19 16:20:25.163 emacs[83702:3766262] +[IMKInputSession subclass]: chose IMKInputSession_Modern
> >
> > ./lisp.h:2000: Emacs fatal error: assertion failed: 0 <= idx && idx < gc_asize (array)
> > Fatal error 6: Aborted
> 
> I assume that's in the same place?

Andrea, are you reading this?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 07:02:01 GMT) Full text and rfc822 format available.

Message #74 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 08:00:13 +0100
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:

> I haven't checked, just assumed that if the same action leads to the
> same result, it's pretty likely to have the same cause.
>
> I'll let you know when I find something out tomorrow. 

Doesn't seem to happen without native compilation, FWIW.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 07:13:02 GMT) Full text and rfc822 format available.

Message #77 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 08:11:26 +0100
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:

> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
>
>> I haven't checked, just assumed that if the same action leads to the
>> same result, it's pretty likely to have the same cause.
>>
>> I'll let you know when I find something out tomorrow. 
>
> Doesn't seem to happen without native compilation, FWIW.

And with native comp, it's the same place in master that we had in igc:

frame #10: 0x0000000100328088 emacs`native_function_doc(function=(struct Lisp_Subr *) $14 = 0x00000001036b2850) at comp.c:5491:10
(lldb) p function
(Lisp_Object) 0x00000001036b2855 (struct Lisp_Subr *) $14 = 0x00000001036b2850
(lldb) p *$14
(struct Lisp_Subr) {
  header = (size = 4611686018729418752)
  function = {
    a0 = 0x0000000102b28540 (ns-win-ef8075c0-de7bcdf2.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    a1 = 0x0000000102b28540 (ns-win-ef8075c0-de7bcdf2.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    a2 = 0x0000000102b28540 (ns-win-ef8075c0-de7bcdf2.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    a3 = 0x0000000102b28540 (ns-win-ef8075c0-de7bcdf2.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    a4 = 0x0000000102b28540 (ns-win-ef8075c0-de7bcdf2.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    a5 = 0x0000000102b28540 (ns-win-ef8075c0-de7bcdf2.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    a6 = 0x0000000102b28540 (ns-win-ef8075c0-de7bcdf2.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    a7 = 0x0000000102b28540 (ns-win-ef8075c0-de7bcdf2.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    a8 = 0x0000000102b28540 (ns-win-ef8075c0-de7bcdf2.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    aUNEVALLED = 0x0000000102b28540 (ns-win-ef8075c0-de7bcdf2.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
    aMANY = 0x0000000102b28540 (ns-win-ef8075c0-de7bcdf2.eln`F782d66696c652d6469616c6f67_x_file_dialog_0)
  }
  min_args = 2
  max_args = 5
  symbol_name = 0x0000000103d41acc "x-file-dialog"
  intspec = {
    string = 0x0000000000000000
    native = NULL
  }
  command_modes = NULL
  doc = 46543
  native_comp_u = 0x0000000102de8215 (struct Lisp_Native_Comp_Unit *) $18 = 0x0000000102de8210
  native_c_name = 0x0000000103d41ada "F782d66696c652d6469616c6f67_x_file_dialog_0"
  lambda_list = NULL
  type = 0x0000000102dc165b (struct Lisp_Cons *) $20 = 0x0000000102dc1658
}

Everything except doc looks reasonable to me, so I'd say it's not
something overwriting the whole object.

I think I'll read the code a bit now.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 07:32:02 GMT) Full text and rfc822 format available.

Message #80 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 08:30:55 +0100
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:

> I think I'll read the code a bit now.

BTW, does C-h f x-file-dialog work on platforms != macOS?
It aborts here for the same reason.

And I'm asking myself now why the heck it lands in native_function_doc in
the first place. Isn't x-file-dialog a C function everywhere?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 07:41:01 GMT) Full text and rfc822 format available.

Message #83 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 08:38:59 +0100
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:

> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
>
>> I think I'll read the code a bit now.
>
> BTW, does C-h f x-file-dialog work on platforms != macOS?
> It aborts here for the same reason.
>
> And I'm asking myself now why the heck it lands in native_function_doc in
> the first place. Isn't x-file-dialog a C function everywhere?

Soory for being noisy, but on NS, it isn't a C function, but ns-win.el
has

(defun x-file-dialog (prompt dir &optional default-filename
                             mustmatch only-dir-p)
  "SKIP: real doc in xfns.c."
  (ns-read-file-name prompt dir mustmatch default-filename only-dir-p))

Does someone know where that kind doc string is handled? Looks to me
like it could have something to do with it.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 07:45:01 GMT) Full text and rfc822 format available.

Message #86 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Pip Cet <pipcet <at> protonmail.com>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 07:44:28 +0000
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:

> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
>
>> I think I'll read the code a bit now.
>
> BTW, does C-h f x-file-dialog work on platforms != macOS?
> It aborts here for the same reason.

It works here (GNU/Linux x86_64).  I haven't seen any abort on this
system, so it's possible this is specific to macOS, but I don't know
what would be different there.

> And I'm asking myself now why the heck it lands in native_function_doc in
> the first place. Isn't x-file-dialog a C function everywhere?

It doesn't reach native_function_doc here.  But if C-h f native-compile
does reach it, and works fine.

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 08:05:02 GMT) Full text and rfc822 format available.

Message #89 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>,
 Andrea Corallo <acorallo <at> gnu.org>
Cc: spd <at> toadstyle.org, pipcet <at> protonmail.com, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 10:04:47 +0200
> Cc: spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
> Date: Fri, 20 Dec 2024 08:00:13 +0100
> 
> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
> 
> > I haven't checked, just assumed that if the same action leads to the
> > same result, it's pretty likely to have the same cause.
> >
> > I'll let you know when I find something out tomorrow. 
> 
> Doesn't seem to happen without native compilation, FWIW.

Please always include Andrea in any discussions related to native
compilation, certainly if possible problems in native compilation are
involved.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 08:13:02 GMT) Full text and rfc822 format available.

Message #92 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>,
 Andrea Corallo <acorallo <at> gnu.org>
Cc: spd <at> toadstyle.org, pipcet <at> protonmail.com, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 10:12:23 +0200
> Cc: spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
> Date: Fri, 20 Dec 2024 08:30:55 +0100
> 
> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
> 
> > I think I'll read the code a bit now.
> 
> BTW, does C-h f x-file-dialog work on platforms != macOS?

In what version of Emacs? and with or without native compilation?

It works here as follows:

  . On MS-Windows:
    - emacs 31 without native compilation
    - emacs 30 with and without native compilation
  . On GNU/Linux:
    - emacs 31 with and without native compilation
    - emacs 30 with and without native compilation

> It aborts here for the same reason.
> 
> And I'm asking myself now why the heck it lands in native_function_doc in
> the first place. Isn't x-file-dialog a C function everywhere?

It is a C function, yes.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 08:23:01 GMT) Full text and rfc822 format available.

Message #95 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: spd <at> toadstyle.org, pipcet <at> protonmail.com, Andrea Corallo <acorallo <at> gnu.org>,
 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 09:21:38 +0100
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Cc: spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
>> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
>> Date: Fri, 20 Dec 2024 08:30:55 +0100
>> 
>> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
>> 
>> > I think I'll read the code a bit now.
>> 
>> BTW, does C-h f x-file-dialog work on platforms != macOS?
>
> In what version of Emacs? and with or without native compilation?

master with native compilation, if possible with --enable-checking.

>
> It works here as follows:
>
>   . On MS-Windows:
>     - emacs 31 without native compilation
>     - emacs 30 with and without native compilation
>   . On GNU/Linux:
>     - emacs 31 with and without native compilation
>     - emacs 30 with and without native compilation
>
>> It aborts here for the same reason.
>> 
>> And I'm asking myself now why the heck it lands in native_function_doc in
>> the first place. Isn't x-file-dialog a C function everywhere?
>
> It is a C function, yes.

My current theory is that one needs to C-h f a function with a doc
string lie this one:

(defun x-file-dialog (prompt dir &optional default-filename
                             mustmatch only-dir-p)
  "SKIP: real doc in xfns.c."
  (ns-read-file-name prompt dir mustmatch default-filename only-dir-p))

And the function must be native-comp-function-p.

I can't see so far how/where such "redirections" are handled.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 08:37:01 GMT) Full text and rfc822 format available.

Message #98 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>,
 Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: spd <at> toadstyle.org, pipcet <at> protonmail.com, acorallo <at> gnu.org,
 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 10:35:50 +0200
> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
> Cc: Andrea Corallo <acorallo <at> gnu.org>,  pipcet <at> protonmail.com,
>   spd <at> toadstyle.org,  74966 <at> debbugs.gnu.org
> Date: Fri, 20 Dec 2024 09:21:38 +0100
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> >> Cc: spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
> >> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
> >> Date: Fri, 20 Dec 2024 08:30:55 +0100
> >> 
> >> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
> >> 
> >> > I think I'll read the code a bit now.
> >> 
> >> BTW, does C-h f x-file-dialog work on platforms != macOS?
> >
> > In what version of Emacs? and with or without native compilation?
> 
> master with native compilation, if possible with --enable-checking.
> 
> >
> > It works here as follows:
> >
> >   . On MS-Windows:
> >     - emacs 31 without native compilation
> >     - emacs 30 with and without native compilation
> >   . On GNU/Linux:
> >     - emacs 31 with and without native compilation
> >     - emacs 30 with and without native compilation
> >
> >> It aborts here for the same reason.
> >> 
> >> And I'm asking myself now why the heck it lands in native_function_doc in
> >> the first place. Isn't x-file-dialog a C function everywhere?
> >
> > It is a C function, yes.
> 
> My current theory is that one needs to C-h f a function with a doc
> string lie this one:
> 
> (defun x-file-dialog (prompt dir &optional default-filename
>                              mustmatch only-dir-p)
>   "SKIP: real doc in xfns.c."
>   (ns-read-file-name prompt dir mustmatch default-filename only-dir-p))
> 
> And the function must be native-comp-function-p.
> 
> I can't see so far how/where such "redirections" are handled.

AFAIR, the doc string is in etc/DOC, and is collected by
lib-src/make-docfile.  That program scans the C source according to
what src/Makefile tells is (see the $(etc)/DOC rule there), so it
doesn't care whether xfns.c is or isn't compiled into the binary.

But we had many changes lately in how etc/DOC is handled, and maybe my
memory is no long accurate.  So I added Stefan to this discussion, who
made at least some of those DOC-related changes.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 08:45:01 GMT) Full text and rfc822 format available.

Message #101 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: spd <at> toadstyle.org, pipcet <at> protonmail.com, acorallo <at> gnu.org,
 Stefan Monnier <monnier <at> iro.umontreal.ca>, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 09:43:26 +0100
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
>> Cc: Andrea Corallo <acorallo <at> gnu.org>,  pipcet <at> protonmail.com,
>>   spd <at> toadstyle.org,  74966 <at> debbugs.gnu.org
>> Date: Fri, 20 Dec 2024 09:21:38 +0100
>> 
>> Eli Zaretskii <eliz <at> gnu.org> writes:
>> 
>> >> Cc: spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
>> >> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
>> >> Date: Fri, 20 Dec 2024 08:30:55 +0100
>> >> 
>> >> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
>> >> 
>> >> > I think I'll read the code a bit now.
>> >> 
>> >> BTW, does C-h f x-file-dialog work on platforms != macOS?
>> >
>> > In what version of Emacs? and with or without native compilation?
>> 
>> master with native compilation, if possible with --enable-checking.
>> 
>> >
>> > It works here as follows:
>> >
>> >   . On MS-Windows:
>> >     - emacs 31 without native compilation
>> >     - emacs 30 with and without native compilation
>> >   . On GNU/Linux:
>> >     - emacs 31 with and without native compilation
>> >     - emacs 30 with and without native compilation
>> >
>> >> It aborts here for the same reason.
>> >> 
>> >> And I'm asking myself now why the heck it lands in native_function_doc in
>> >> the first place. Isn't x-file-dialog a C function everywhere?
>> >
>> > It is a C function, yes.
>> 
>> My current theory is that one needs to C-h f a function with a doc
>> string lie this one:
>> 
>> (defun x-file-dialog (prompt dir &optional default-filename
>>                              mustmatch only-dir-p)
>>   "SKIP: real doc in xfns.c."
>>   (ns-read-file-name prompt dir mustmatch default-filename only-dir-p))
>> 
>> And the function must be native-comp-function-p.
>> 
>> I can't see so far how/where such "redirections" are handled.
>
> AFAIR, the doc string is in etc/DOC, and is collected by
> lib-src/make-docfile.  That program scans the C source according to
> what src/Makefile tells is (see the $(etc)/DOC rule there), so it
> doesn't care whether xfns.c is or isn't compiled into the binary.

Yes, that matches what I remember from the old times.

> But we had many changes lately in how etc/DOC is handled, and maybe my
> memory is no long accurate.  So I added Stefan to this discussion, who
> made at least some of those DOC-related changes.

Maybe the problem is in store_doc_string (doc.c:469 here), not sure.
That function does

  if (SUBRP (fun))
    XSUBR (fun)->doc = offset;

without checking if it's a native compiled function. That does look
like a place where an invalid offset could land in the subr.

I have no idea what's the right thing to do to fix this. Just not doing
anything for native compiled function certainly isn't right.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 08:59:01 GMT) Full text and rfc822 format available.

Message #104 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: spd <at> toadstyle.org, pipcet <at> protonmail.com, acorallo <at> gnu.org,
 Stefan Monnier <monnier <at> iro.umontreal.ca>, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 09:57:39 +0100
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:

> Eli Zaretskii <eliz <at> gnu.org> writes:
>
>>> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
>>> Cc: Andrea Corallo <acorallo <at> gnu.org>,  pipcet <at> protonmail.com,
>>>   spd <at> toadstyle.org,  74966 <at> debbugs.gnu.org
>>> Date: Fri, 20 Dec 2024 09:21:38 +0100
>>> 
>>> Eli Zaretskii <eliz <at> gnu.org> writes:
>>> 
>>> >> Cc: spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
>>> >> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
>>> >> Date: Fri, 20 Dec 2024 08:30:55 +0100
>>> >> 
>>> >> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
>>> >> 
>>> >> > I think I'll read the code a bit now.
>>> >> 
>>> >> BTW, does C-h f x-file-dialog work on platforms != macOS?
>>> >
>>> > In what version of Emacs? and with or without native compilation?
>>> 
>>> master with native compilation, if possible with --enable-checking.
>>> 
>>> >
>>> > It works here as follows:
>>> >
>>> >   . On MS-Windows:
>>> >     - emacs 31 without native compilation
>>> >     - emacs 30 with and without native compilation
>>> >   . On GNU/Linux:
>>> >     - emacs 31 with and without native compilation
>>> >     - emacs 30 with and without native compilation
>>> >
>>> >> It aborts here for the same reason.
>>> >> 
>>> >> And I'm asking myself now why the heck it lands in native_function_doc in
>>> >> the first place. Isn't x-file-dialog a C function everywhere?
>>> >
>>> > It is a C function, yes.
>>> 
>>> My current theory is that one needs to C-h f a function with a doc
>>> string lie this one:
>>> 
>>> (defun x-file-dialog (prompt dir &optional default-filename
>>>                              mustmatch only-dir-p)
>>>   "SKIP: real doc in xfns.c."
>>>   (ns-read-file-name prompt dir mustmatch default-filename only-dir-p))
>>> 
>>> And the function must be native-comp-function-p.
>>> 
>>> I can't see so far how/where such "redirections" are handled.
>>
>> AFAIR, the doc string is in etc/DOC, and is collected by
>> lib-src/make-docfile.  That program scans the C source according to
>> what src/Makefile tells is (see the $(etc)/DOC rule there), so it
>> doesn't care whether xfns.c is or isn't compiled into the binary.
>
> Yes, that matches what I remember from the old times.
>
>> But we had many changes lately in how etc/DOC is handled, and maybe my
>> memory is no long accurate.  So I added Stefan to this discussion, who
>> made at least some of those DOC-related changes.
>
> Maybe the problem is in store_doc_string (doc.c:469 here), not sure.
> That function does
>
>   if (SUBRP (fun))
>     XSUBR (fun)->doc = offset;
>
> without checking if it's a native compiled function. That does look
> like a place where an invalid offset could land in the subr.
>
> I have no idea what's the right thing to do to fix this. Just not doing
> anything for native compiled function certainly isn't right.

That seems to be the cause, indeed. When I 

1 file changed, 4 insertions(+), 1 deletion(-)
src/doc.c | 5 ++++-

modified   src/doc.c
@@ -479,7 +479,10 @@ store_function_docstring (Lisp_Object obj, EMACS_INT offset)
     fun = XCDR (fun);
   /* Lisp_Subrs have a slot for it.  */
   if (SUBRP (fun))
-    XSUBR (fun)->doc = offset;
+    {
+      if (!NATIVE_COMP_FUNCTIONP (fun))
+	XSUBR (fun)->doc = offset;
+    }
   else if (CLOSUREP (fun))
     {
       /* This bytecode object must have a slot for the docstring, since

I don't get the assert anymore.

C-h f x-file-dialog shows the "redirection doc string" though, so it's not
a correct solution. I think I'll leave to the experts :-).




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 16:18:01 GMT) Full text and rfc822 format available.

Message #107 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: spd <at> toadstyle.org, Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org,
 pipcet <at> protonmail.com, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 11:17:24 -0500
>> Maybe the problem is in store_doc_string (doc.c:469 here), not sure.
>> That function does
>>
>>   if (SUBRP (fun))
>>     XSUBR (fun)->doc = offset;

Sounds right.

> That seems to be the cause, indeed. When I 
>
> 1 file changed, 4 insertions(+), 1 deletion(-)
> src/doc.c | 5 ++++-
>
> modified   src/doc.c
> @@ -479,7 +479,10 @@ store_function_docstring (Lisp_Object obj, EMACS_INT offset)
>      fun = XCDR (fun);
>    /* Lisp_Subrs have a slot for it.  */
>    if (SUBRP (fun))
> -    XSUBR (fun)->doc = offset;
> +    {
> +      if (!NATIVE_COMP_FUNCTIONP (fun))
> +	XSUBR (fun)->doc = offset;
> +    }
>    else if (CLOSUREP (fun))
>      {
>        /* This bytecode object must have a slot for the docstring, since
>
> I don't get the assert anymore.

`offset` here should be fixnum that gives the position of this docstring
in the DOC file.  And FUN should be a function for which we found
a DEFUN in one of the C files.  So in general it should be
a `primitive-function`.  We have a few undesirable cases where
a function is defined in C code for some platforms and in ELisp for
others, which is why there's the `CLOSUREP (fun)` branch

If those rare CLOSUREs get native-compiled, then we'll use the SUBRP
branch, of course, but I have no idea why that would lead to a crash.
We're talking about a fixnum so that's usually quite safe w.r.t GC
and crashes.


        Stefan





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 16:21:01 GMT) Full text and rfc822 format available.

Message #110 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Pip Cet <pipcet <at> protonmail.com>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: Gerd Möllmann <gerd.moellmann <at> gmail.com>,
 spd <at> toadstyle.org, Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org,
 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 16:20:32 +0000
"Stefan Monnier" <monnier <at> iro.umontreal.ca> writes:

>>> Maybe the problem is in store_doc_string (doc.c:469 here), not sure.
>>> That function does
>>>
>>>   if (SUBRP (fun))
>>>     XSUBR (fun)->doc = offset;
>
> Sounds right.
>
>> That seems to be the cause, indeed. When I
>>
>> 1 file changed, 4 insertions(+), 1 deletion(-)
>> src/doc.c | 5 ++++-
>>
>> modified   src/doc.c
>> @@ -479,7 +479,10 @@ store_function_docstring (Lisp_Object obj, EMACS_INT offset)
>>      fun = XCDR (fun);
>>    /* Lisp_Subrs have a slot for it.  */
>>    if (SUBRP (fun))
>> -    XSUBR (fun)->doc = offset;
>> +    {
>> +      if (!NATIVE_COMP_FUNCTIONP (fun))
>> +	XSUBR (fun)->doc = offset;
>> +    }
>>    else if (CLOSUREP (fun))
>>      {
>>        /* This bytecode object must have a slot for the docstring, since
>>
>> I don't get the assert anymore.
>
> `offset` here should be fixnum that gives the position of this docstring
> in the DOC file.  And FUN should be a function for which we found

Yes, but the nativecomp code assumes ->doc is an index into a
nativecomp'd subr's constant vector.  So we overwrite it with a docfile
index, access an out-of-bounds index and crash.

I think the best thing to do is to use separate fields for the "offset"
doc and the "index" doc; or at least, the second best thing, after
removing the entire docfile hack.

I've got a patch to do that, but I'm still testing...

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 16:42:02 GMT) Full text and rfc822 format available.

Message #113 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Pip Cet <pipcet <at> protonmail.com>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: Gerd Möllmann <gerd.moellmann <at> gmail.com>,
 spd <at> toadstyle.org, Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org,
 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 16:40:52 +0000
Pip Cet <pipcet <at> protonmail.com> writes:

> "Stefan Monnier" <monnier <at> iro.umontreal.ca> writes:
>
>>>> Maybe the problem is in store_doc_string (doc.c:469 here), not sure.
>>>> That function does
>>>>
>>>>   if (SUBRP (fun))
>>>>     XSUBR (fun)->doc = offset;
>>
>> Sounds right.
>>
>>> That seems to be the cause, indeed. When I
>>>
>>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>> src/doc.c | 5 ++++-
>>>
>>> modified   src/doc.c
>>> @@ -479,7 +479,10 @@ store_function_docstring (Lisp_Object obj, EMACS_INT offset)
>>>      fun = XCDR (fun);
>>>    /* Lisp_Subrs have a slot for it.  */
>>>    if (SUBRP (fun))
>>> -    XSUBR (fun)->doc = offset;
>>> +    {
>>> +      if (!NATIVE_COMP_FUNCTIONP (fun))
>>> +	XSUBR (fun)->doc = offset;
>>> +    }
>>>    else if (CLOSUREP (fun))
>>>      {
>>>        /* This bytecode object must have a slot for the docstring, since
>>>
>>> I don't get the assert anymore.
>>
>> `offset` here should be fixnum that gives the position of this docstring
>> in the DOC file.  And FUN should be a function for which we found
>
> Yes, but the nativecomp code assumes ->doc is an index into a
> nativecomp'd subr's constant vector.  So we overwrite it with a docfile
> index, access an out-of-bounds index and crash.
>
> I think the best thing to do is to use separate fields for the "offset"
> doc and the "index" doc; or at least, the second best thing, after
> removing the entire docfile hack.
>
> I've got a patch to do that, but I'm still testing...

I meant this patch, which splits "doc" into "doc_index" and
"doc_offset".  It'd probably be better to use a Lisp_Object here, which
can be either a fixnum (index into etc/DOC) or a string (the doc string
specified in some other manner).  And maybe we can drop the docfile
index thing entirely at some point soon?

Pip

diff --git a/src/comp.c b/src/comp.c
index 8b38adec252..0b378463c16 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -5352,7 +5352,7 @@ native_function_doc (Lisp_Object function)
   if (!VECTORP (cu->data_fdoc_v))
     xsignal2 (Qnative_lisp_file_inconsistent, cu->file,
 	      build_string ("missing documentation vector"));
-  return AREF (cu->data_fdoc_v, XSUBR (function)->doc);
+  return AREF (cu->data_fdoc_v, XSUBR (function)->doc_index);
 }
 
 static Lisp_Object
@@ -5393,8 +5393,9 @@ make_subr (Lisp_Object symbol_name, Lisp_Object minarg, Lisp_Object maxarg,
   x->s.symbol_name = xstrdup (SSDATA (symbol_name));
   x->s.intspec.native = intspec;
   x->s.command_modes = command_modes;
-  x->s.doc = XFIXNUM (doc_idx);
+  x->s.doc_offset = 0;
 #ifdef HAVE_NATIVE_COMP
+  x->s.doc_index = XFIXNUM (doc_idx);
   x->s.native_comp_u = comp_u;
   x->s.native_c_name = xstrdup (SSDATA (c_name));
   x->s.type = type;
diff --git a/src/doc.c b/src/doc.c
index 6f74a999366..510034c225d 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -391,13 +391,15 @@ DEFUN ("internal-subr-documentation", Fsubr_documentation, Ssubr_documentation,
        doc: /* Return the raw documentation info of a C primitive.  */)
   (Lisp_Object function)
 {
+  if (SUBRP (function) && XSUBR (function)->doc_offset)
+    return make_fixnum (XSUBR (function)->doc_offset);
 #ifdef HAVE_NATIVE_COMP
   if (!NILP (Fnative_comp_function_p (function)))
     return native_function_doc (function);
   else
 #endif
   if (SUBRP (function))
-    return make_fixnum (XSUBR (function)->doc);
+    return make_fixnum (XSUBR (function)->doc_offset);
 #ifdef HAVE_MODULES
   else if (MODULE_FUNCTIONP (function))
     return module_function_documentation (XMODULE_FUNCTION (function));
@@ -479,7 +481,7 @@ store_function_docstring (Lisp_Object obj, EMACS_INT offset)
     fun = XCDR (fun);
   /* Lisp_Subrs have a slot for it.  */
   if (SUBRP (fun))
-    XSUBR (fun)->doc = offset;
+    XSUBR (fun)->doc_offset = offset;
   else if (CLOSUREP (fun))
     {
       /* This bytecode object must have a slot for the docstring, since
diff --git a/src/lisp.h b/src/lisp.h
index 33a9269b305..aa7d9c4edac 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2184,8 +2184,9 @@ CHAR_TABLE_SET (Lisp_Object ct, int idx, Lisp_Object val)
       Lisp_Object native;
     } intspec;
     Lisp_Object command_modes;
-    EMACS_INT doc;
+    EMACS_INT doc_offset;
 #ifdef HAVE_NATIVE_COMP
+    EMACS_INT doc_index;
     Lisp_Object native_comp_u;
     char *native_c_name;
     Lisp_Object lambda_list;
diff --git a/src/pdumper.c b/src/pdumper.c
index d45bbc84bba..51a926591d3 100644
--- a/src/pdumper.c
+++ b/src/pdumper.c
@@ -2964,7 +2964,7 @@ dump_bool_vector (struct dump_context *ctx, const struct Lisp_Vector *v)
 static dump_off
 dump_subr (struct dump_context *ctx, const struct Lisp_Subr *subr)
 {
-#if CHECK_STRUCTS && !defined (HASH_Lisp_Subr_20B7443AD7)
+#if CHECK_STRUCTS && !defined (HASH_Lisp_Subr_B6C57C930B)
 # error "Lisp_Subr changed. See CHECK_STRUCTS comment in config.h."
 #endif
   struct Lisp_Subr out;
@@ -2996,8 +2996,9 @@ dump_subr (struct dump_context *ctx, const struct Lisp_Subr *subr)
       dump_field_emacs_ptr (ctx, &out, subr, &subr->intspec.string);
       dump_field_emacs_ptr (ctx, &out, subr, &subr->command_modes);
     }
-  DUMP_FIELD_COPY (&out, subr, doc);
+  DUMP_FIELD_COPY (&out, subr, doc_offset);
 #ifdef HAVE_NATIVE_COMP
+  DUMP_FIELD_COPY (&out, subr, doc_index);
   dump_field_lv (ctx, &out, subr, &subr->native_comp_u, WEIGHT_NORMAL);
   if (!NILP (subr->native_comp_u))
     dump_field_fixup_later (ctx, &out, subr, &subr->native_c_name);






Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 17:19:02 GMT) Full text and rfc822 format available.

Message #116 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: spd <at> toadstyle.org, Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org,
 Stefan Monnier <monnier <at> iro.umontreal.ca>, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 18:17:39 +0100
Pip Cet <pipcet <at> protonmail.com> writes:

> I meant this patch, which splits "doc" into "doc_index" and
> "doc_offset".

Looks correct to me. FWIW :-)




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 19:41:02 GMT) Full text and rfc822 format available.

Message #119 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: gerd.moellmann <at> gmail.com, spd <at> toadstyle.org, acorallo <at> gnu.org,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 21:40:01 +0200
> Date: Fri, 20 Dec 2024 16:40:52 +0000
> From: Pip Cet <pipcet <at> protonmail.com>
> Cc: Gerd Möllmann <gerd.moellmann <at> gmail.com>, Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org, spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
> 
> I meant this patch, which splits "doc" into "doc_index" and
> "doc_offset".  It'd probably be better to use a Lisp_Object here, which
> can be either a fixnum (index into etc/DOC) or a string (the doc string
> specified in some other manner).  And maybe we can drop the docfile
> index thing entirely at some point soon?

TBH, I'd be much happier without splitting 'doc' into two members.
Isn't it possible to avoid overwriting 'doc', thus avoiding the crash,
without splitting the member in two?

DOC handling in Emacs is extremely complex and has many subtle
aspects.  Experience teaches us that bugs in this area sometimes take
years to report and fix.  Splitting a member into two risks
introducing bugs because we might use the wrong member in some
situation(s).  The test suite's coverage of doc.c and features related
to doc strings is still rudimentary, so we cannot be sure any such
bugs will be caught in time by the tests.  Which is why I hope we can
avoid splitting this member in two.

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 20:52:02 GMT) Full text and rfc822 format available.

Message #122 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Pip Cet <pipcet <at> protonmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: gerd.moellmann <at> gmail.com, spd <at> toadstyle.org, acorallo <at> gnu.org,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 20:50:56 +0000
"Eli Zaretskii" <eliz <at> gnu.org> writes:

>> Date: Fri, 20 Dec 2024 16:40:52 +0000
>> From: Pip Cet <pipcet <at> protonmail.com>
>> Cc: Gerd Möllmann <gerd.moellmann <at> gmail.com>, Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org, spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
>>
>> I meant this patch, which splits "doc" into "doc_index" and
>> "doc_offset".  It'd probably be better to use a Lisp_Object here, which
>> can be either a fixnum (index into etc/DOC) or a string (the doc string
>> specified in some other manner).  And maybe we can drop the docfile
>> index thing entirely at some point soon?
>
> TBH, I'd be much happier without splitting 'doc' into two members.
> Isn't it possible to avoid overwriting 'doc', thus avoiding the crash,
> without splitting the member in two?

Absolutely.  That'd cause wrong docstrings for some symbols, but reduce
the risk of code not compiling anymore.  There is no risk of unvetted
code compiling and accessing the doc field, because it's been renamed,
but that does require, of course, to consider the changes in the patch
as "vetted"; furthermore, if there is a compilation error in some code
I've missed, we need to be careful not to fix it without checking that
code, too.

> DOC handling in Emacs is extremely complex and has many subtle
> aspects.  Experience teaches us that bugs in this area sometimes take
> years to report and fix.  Splitting a member into two risks
> introducing bugs because we might use the wrong member in some
> situation(s).

I don't understand this specific objection.  If we rename "doc" to
"doc_offset", as I've proposed, we're automatically looking at all code
which makes use of the new field, because code using the old name no
longer compiles.

> The test suite's coverage of doc.c and features related
> to doc strings is still rudimentary, so we cannot be sure any such
> bugs will be caught in time by the tests.  Which is why I hope we can
> avoid splitting this member in two.

I agree that the docfile hack in general is very hairy territory.  It
might be safer to simply accept the wrong docstrings for now, and Gerd's
patch does that, IIUC.  Can we just apply that for now and add a FIXME?

> Thanks.

Thanks for the review!

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Fri, 20 Dec 2024 21:09:02 GMT) Full text and rfc822 format available.

Message #125 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: spd <at> toadstyle.org, Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Fri, 20 Dec 2024 22:07:10 +0100
Pip Cet <pipcet <at> protonmail.com> writes:

> I agree that the docfile hack in general is very hairy territory.  It
> might be safer to simply accept the wrong docstrings for now, and Gerd's
> patch does that, IIUC.  

Yes it does that. With the patch one gets the doc string as written in
in the .el file. AFAICS, ns-win, haiku-win, and pc-win use "SKIP:..."
doc strings.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 06:48:01 GMT) Full text and rfc822 format available.

Message #128 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: gerd.moellmann <at> gmail.com, spd <at> toadstyle.org, acorallo <at> gnu.org,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 08:47:39 +0200
> Date: Fri, 20 Dec 2024 20:50:56 +0000
> From: Pip Cet <pipcet <at> protonmail.com>
> Cc: gerd.moellmann <at> gmail.com, spd <at> toadstyle.org, acorallo <at> gnu.org, monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
> 
> "Eli Zaretskii" <eliz <at> gnu.org> writes:
> 
> > TBH, I'd be much happier without splitting 'doc' into two members.
> > Isn't it possible to avoid overwriting 'doc', thus avoiding the crash,
> > without splitting the member in two?
> 
> Absolutely.  That'd cause wrong docstrings for some symbols

Can you elaborate on that?  When and how could that happen?

> but reduce
> the risk of code not compiling anymore.  There is no risk of unvetted
> code compiling and accessing the doc field, because it's been renamed,
> but that does require, of course, to consider the changes in the patch
> as "vetted"; furthermore, if there is a compilation error in some code
> I've missed, we need to be careful not to fix it without checking that
> code, too.

I didn't have in mind problems that will be caught by the compiler --
these are easy to find and fix, even if it takes some time because
some code is only compiled on a certain rarely-used platform or
configuration.

> > DOC handling in Emacs is extremely complex and has many subtle
> > aspects.  Experience teaches us that bugs in this area sometimes take
> > years to report and fix.  Splitting a member into two risks
> > introducing bugs because we might use the wrong member in some
> > situation(s).
> 
> I don't understand this specific objection.  If we rename "doc" to
> "doc_offset", as I've proposed, we're automatically looking at all code
> which makes use of the new field, because code using the old name no
> longer compiles.

Yes, sure.  If we just rename a single member and all of its
references, there's no risk whatsoever.  I had something else in mind.
If we split the 'doc' member in two, some code which used 'doc' will
need to use 'doc_index', and some code will need to use 'doc_offset'.
The risk is in using the wrong one, because the intent of the original
code (i.e., whether it interprets 'doc' as an index or as an offset)
was not completely understood.  Moreover, it is possible that in some
places we'd need to set the value of one of these two members from the
value of the other, because the original code relied on the fact that
there's just one member whose value is sometimes interpreted as this
and sometimes as that.

> > The test suite's coverage of doc.c and features related
> > to doc strings is still rudimentary, so we cannot be sure any such
> > bugs will be caught in time by the tests.  Which is why I hope we can
> > avoid splitting this member in two.
> 
> I agree that the docfile hack in general is very hairy territory.  It
> might be safer to simply accept the wrong docstrings for now, and Gerd's
> patch does that, IIUC.  Can we just apply that for now and add a FIXME?

Maybe, but I'd like first to understand better the "wrong docstrings"
situations.

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 07:10:01 GMT) Full text and rfc822 format available.

Message #131 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: spd <at> toadstyle.org, pipcet <at> protonmail.com, acorallo <at> gnu.org,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 09:09:27 +0200
> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
> Cc: Eli Zaretskii <eliz <at> gnu.org>,  spd <at> toadstyle.org,  acorallo <at> gnu.org,
>   monnier <at> iro.umontreal.ca,  74966 <at> debbugs.gnu.org
> Date: Fri, 20 Dec 2024 22:07:10 +0100
> 
> Pip Cet <pipcet <at> protonmail.com> writes:
> 
> > I agree that the docfile hack in general is very hairy territory.  It
> > might be safer to simply accept the wrong docstrings for now, and Gerd's
> > patch does that, IIUC.  
> 
> Yes it does that. With the patch one gets the doc string as written in
> in the .el file. AFAICS, ns-win, haiku-win, and pc-win use "SKIP:..."
> doc strings.

Thanks, let's wait for Andrea and Stefan to chime in.  These "SKIP"
thingies used to work when we introduced them, so if they don't work
now, we need to understand why.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 07:10:02 GMT) Full text and rfc822 format available.

Message #134 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: spd <at> toadstyle.org, Pip Cet <pipcet <at> protonmail.com>, acorallo <at> gnu.org,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 08:08:40 +0100
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Date: Fri, 20 Dec 2024 20:50:56 +0000
>> From: Pip Cet <pipcet <at> protonmail.com>
>> Cc: gerd.moellmann <at> gmail.com, spd <at> toadstyle.org, acorallo <at> gnu.org, monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
>> 
>> "Eli Zaretskii" <eliz <at> gnu.org> writes:
>> 
>> > TBH, I'd be much happier without splitting 'doc' into two members.
>> > Isn't it possible to avoid overwriting 'doc', thus avoiding the crash,
>> > without splitting the member in two?
>> 
>> Absolutely.  That'd cause wrong docstrings for some symbols
>
> Can you elaborate on that?  When and how could that happen?
>
>> but reduce
>> the risk of code not compiling anymore.  There is no risk of unvetted
>> code compiling and accessing the doc field, because it's been renamed,
>> but that does require, of course, to consider the changes in the patch
>> as "vetted"; furthermore, if there is a compilation error in some code
>> I've missed, we need to be careful not to fix it without checking that
>> code, too.
>
> I didn't have in mind problems that will be caught by the compiler --
> these are easy to find and fix, even if it takes some time because
> some code is only compiled on a certain rarely-used platform or
> configuration.
>
>> > DOC handling in Emacs is extremely complex and has many subtle
>> > aspects.  Experience teaches us that bugs in this area sometimes take
>> > years to report and fix.  Splitting a member into two risks
>> > introducing bugs because we might use the wrong member in some
>> > situation(s).
>> 
>> I don't understand this specific objection.  If we rename "doc" to
>> "doc_offset", as I've proposed, we're automatically looking at all code
>> which makes use of the new field, because code using the old name no
>> longer compiles.
>
> Yes, sure.  If we just rename a single member and all of its
> references, there's no risk whatsoever.  I had something else in mind.
> If we split the 'doc' member in two, some code which used 'doc' will
> need to use 'doc_index', and some code will need to use 'doc_offset'.
> The risk is in using the wrong one, because the intent of the original
> code (i.e., whether it interprets 'doc' as an index or as an offset)
> was not completely understood.  Moreover, it is possible that in some
> places we'd need to set the value of one of these two members from the
> value of the other, because the original code relied on the fact that
> there's just one member whose value is sometimes interpreted as this
> and sometimes as that.
>
>> > The test suite's coverage of doc.c and features related
>> > to doc strings is still rudimentary, so we cannot be sure any such
>> > bugs will be caught in time by the tests.  Which is why I hope we can
>> > avoid splitting this member in two.
>> 
>> I agree that the docfile hack in general is very hairy territory.  It
>> might be safer to simply accept the wrong docstrings for now, and Gerd's
>> patch does that, IIUC.  Can we just apply that for now and add a FIXME?
>
> Maybe, but I'd like first to understand better the "wrong docstrings"
> situations.

Maybe I can explain this. The current error's cause is that nativecomp
currently (wrongly) assumes that it never needs an offset into DOC, so
it reused Lisp_Subr::doc for its own purposes, namely as an index into a
vector contained in an .eln file. The doc string of a function is found
at that index.

Pip's patch changes nativecomp code stores the said index from above in
a new Lisp_Subr::doc_index, and makes it possible to fix the wrong
assumption from above, Nativecomp of course has to check which of the
now two members it has to use, which Pip does.

Renaming Lisp_Subr::doc to Lisp_Object::doc_offset is a nice extra, IMO,
because it makes it clearer what the member contains.





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 07:15:01 GMT) Full text and rfc822 format available.

Message #137 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: spd <at> toadstyle.org, pipcet <at> protonmail.com, acorallo <at> gnu.org,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 08:12:53 +0100
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
>> Cc: Eli Zaretskii <eliz <at> gnu.org>,  spd <at> toadstyle.org,  acorallo <at> gnu.org,
>>   monnier <at> iro.umontreal.ca,  74966 <at> debbugs.gnu.org
>> Date: Fri, 20 Dec 2024 22:07:10 +0100
>> 
>> Pip Cet <pipcet <at> protonmail.com> writes:
>> 
>> > I agree that the docfile hack in general is very hairy territory.  It
>> > might be safer to simply accept the wrong docstrings for now, and Gerd's
>> > patch does that, IIUC.  
>> 
>> Yes it does that. With the patch one gets the doc string as written in
>> in the .el file. AFAICS, ns-win, haiku-win, and pc-win use "SKIP:..."
>> doc strings.
>
> Thanks, let's wait for Andrea and Stefan to chime in.  These "SKIP"
> thingies used to work when we introduced them, so if they don't work
> now, we need to understand why.

Ok. Let me just say that this affects only nativecomp. I tried to
explain in my other mail. Non-naticecomp is not affected in any way by
this.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 07:52:01 GMT) Full text and rfc822 format available.

Message #140 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: spd <at> toadstyle.org, pipcet <at> protonmail.com, acorallo <at> gnu.org,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 09:51:41 +0200
> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
> Cc: Pip Cet <pipcet <at> protonmail.com>,  spd <at> toadstyle.org,  acorallo <at> gnu.org,
>   monnier <at> iro.umontreal.ca,  74966 <at> debbugs.gnu.org
> Date: Sat, 21 Dec 2024 08:08:40 +0100
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> >> I agree that the docfile hack in general is very hairy territory.  It
> >> might be safer to simply accept the wrong docstrings for now, and Gerd's
> >> patch does that, IIUC.  Can we just apply that for now and add a FIXME?
> >
> > Maybe, but I'd like first to understand better the "wrong docstrings"
> > situations.
> 
> Maybe I can explain this. The current error's cause is that nativecomp
> currently (wrongly) assumes that it never needs an offset into DOC, so
> it reused Lisp_Subr::doc for its own purposes, namely as an index into a
> vector contained in an .eln file. The doc string of a function is found
> at that index.
> 
> Pip's patch changes nativecomp code stores the said index from above in
> a new Lisp_Subr::doc_index, and makes it possible to fix the wrong
> assumption from above, Nativecomp of course has to check which of the
> now two members it has to use, which Pip does.
> 
> Renaming Lisp_Subr::doc to Lisp_Object::doc_offset is a nice extra, IMO,
> because it makes it clearer what the member contains.

OK, thanks.  I'd like Andrea to chime in first and see if he can fix
this on the nativecomp side.

Also, Stefan said something about using a Lisp_Object for the value?

And finally, does what you wrote explain the "wrong docstrings"
situation, or does it only explain the crash you saw?  If the former,
I'm afraid I'm still missing something, because I don't understand how
this could cause a wrong docstring to be used.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 08:09:02 GMT) Full text and rfc822 format available.

Message #143 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: spd <at> toadstyle.org, pipcet <at> protonmail.com, acorallo <at> gnu.org,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 09:07:40 +0100
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
>> Cc: Pip Cet <pipcet <at> protonmail.com>,  spd <at> toadstyle.org,  acorallo <at> gnu.org,
>>   monnier <at> iro.umontreal.ca,  74966 <at> debbugs.gnu.org
>> Date: Sat, 21 Dec 2024 08:08:40 +0100
>> 
>> Eli Zaretskii <eliz <at> gnu.org> writes:
>> 
>> >> I agree that the docfile hack in general is very hairy territory.  It
>> >> might be safer to simply accept the wrong docstrings for now, and Gerd's
>> >> patch does that, IIUC.  Can we just apply that for now and add a FIXME?
>> >
>> > Maybe, but I'd like first to understand better the "wrong docstrings"
>> > situations.
>> 
>> Maybe I can explain this. The current error's cause is that nativecomp
>> currently (wrongly) assumes that it never needs an offset into DOC, so
>> it reused Lisp_Subr::doc for its own purposes, namely as an index into a
>> vector contained in an .eln file. The doc string of a function is found
>> at that index.
>> 
>> Pip's patch changes nativecomp code stores the said index from above in
>> a new Lisp_Subr::doc_index, and makes it possible to fix the wrong
>> assumption from above, Nativecomp of course has to check which of the
>> now two members it has to use, which Pip does.
>> 
>> Renaming Lisp_Subr::doc to Lisp_Object::doc_offset is a nice extra, IMO,
>> because it makes it clearer what the member contains.
>
> OK, thanks.  I'd like Andrea to chime in first and see if he can fix
> this on the nativecomp side.

Ok.

> Also, Stefan said something about using a Lisp_Object for the value?

Haven't seen or registered that, so I better leave that to Stefan to
explain.

>
> And finally, does what you wrote explain the "wrong docstrings"
> situation, or does it only explain the crash you saw?  If the former,
> I'm afraid I'm still missing something, because I don't understand how
> this could cause a wrong docstring to be used.

I understood that as "if we avoid setting Lisp_Subr::doc for native
compiled functions, then we'll use "SKIP:..." as the doc string (e.g.
for x-file-dialog), which is the wrong docstring." That would be the
the little patch I posted first.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 10:10:02 GMT) Full text and rfc822 format available.

Message #146 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Pip Cet <pipcet <at> protonmail.com>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: spd <at> toadstyle.org, Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 10:09:25 +0000
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:

> Eli Zaretskii <eliz <at> gnu.org> writes:
>>> Maybe I can explain this. The current error's cause is that nativecomp
>>> currently (wrongly) assumes that it never needs an offset into DOC, so
>>> it reused Lisp_Subr::doc for its own purposes, namely as an index into a
>>> vector contained in an .eln file. The doc string of a function is found
>>> at that index.
>>>
>>> Pip's patch changes nativecomp code stores the said index from above in
>>> a new Lisp_Subr::doc_index, and makes it possible to fix the wrong
>>> assumption from above, Nativecomp of course has to check which of the
>>> now two members it has to use, which Pip does.
>>>
>>> Renaming Lisp_Subr::doc to Lisp_Object::doc_offset is a nice extra, IMO,
>>> because it makes it clearer what the member contains.
>>
>> OK, thanks.  I'd like Andrea to chime in first and see if he can fix
>> this on the nativecomp side.
>
> Ok.

Absolutely!

>> Also, Stefan said something about using a Lisp_Object for the value?
>
> Haven't seen or registered that, so I better leave that to Stefan to
> explain.

I suggested doing so, I'm not aware of either Stefan suggesting it (as
both of them feature prominently in the git blame for doc.c, I'm not
sure which Stefan was meant).

>> And finally, does what you wrote explain the "wrong docstrings"
>> situation, or does it only explain the crash you saw?  If the former,
>> I'm afraid I'm still missing something, because I don't understand how
>> this could cause a wrong docstring to be used.
>
> I understood that as "if we avoid setting Lisp_Subr::doc for native
> compiled functions, then we'll use "SKIP:..." as the doc string (e.g.
> for x-file-dialog), which is the wrong docstring." That would be the
> the little patch I posted first.

That's what I meant, yes.  I'm not aware of any other wrong docstrings:
fixing the crash would leave the "SKIP:" docstrings in, to fix them we
need a bit to distinguishing doc-is-vector-index from doc-is-DOC-offset.
One handy source for that bit is the tag bits of a Lisp_Object.

A nice side effect would be that we could change docstrings to something
that we can't find in DOC, and possibly make the fixnum-as-a-DOC-offset
thing optional if we decide it's no longer generally useful.

(Maybe someone would even like to experiment with storing something other
than a string or fixnum in it.)

I'm not certain which approach would be safer: a Lisp_Object is unlikely to
be mistakenly used as an integer value, and the Lisp_Object would remove
uncertainty about whether doc_offset or doc_index "wins", but it would
also mean changes in a few more places, particularly the nativecomp
code.

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 10:33:02 GMT) Full text and rfc822 format available.

Message #149 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: spd <at> toadstyle.org, Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 11:31:25 +0100
Pip Cet <pipcet <at> protonmail.com> writes:

> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
>
>> Eli Zaretskii <eliz <at> gnu.org> writes:
>>>> Maybe I can explain this. The current error's cause is that nativecomp
>>>> currently (wrongly) assumes that it never needs an offset into DOC, so
>>>> it reused Lisp_Subr::doc for its own purposes, namely as an index into a
>>>> vector contained in an .eln file. The doc string of a function is found
>>>> at that index.
>>>>
>>>> Pip's patch changes nativecomp code stores the said index from above in
>>>> a new Lisp_Subr::doc_index, and makes it possible to fix the wrong
>>>> assumption from above, Nativecomp of course has to check which of the
>>>> now two members it has to use, which Pip does.
>>>>
>>>> Renaming Lisp_Subr::doc to Lisp_Object::doc_offset is a nice extra, IMO,
>>>> because it makes it clearer what the member contains.
>>>
>>> OK, thanks.  I'd like Andrea to chime in first and see if he can fix
>>> this on the nativecomp side.
>>
>> Ok.
>
> Absolutely!
>
>>> Also, Stefan said something about using a Lisp_Object for the value?
>>
>> Haven't seen or registered that, so I better leave that to Stefan to
>> explain.
>
> I suggested doing so, I'm not aware of either Stefan suggesting it (as
> both of them feature prominently in the git blame for doc.c, I'm not
> sure which Stefan was meant).
>
>>> And finally, does what you wrote explain the "wrong docstrings"
>>> situation, or does it only explain the crash you saw?  If the former,
>>> I'm afraid I'm still missing something, because I don't understand how
>>> this could cause a wrong docstring to be used.
>>
>> I understood that as "if we avoid setting Lisp_Subr::doc for native
>> compiled functions, then we'll use "SKIP:..." as the doc string (e.g.
>> for x-file-dialog), which is the wrong docstring." That would be the
>> the little patch I posted first.
>
> That's what I meant, yes.  I'm not aware of any other wrong docstrings:
> fixing the crash would leave the "SKIP:" docstrings in, to fix them we
> need a bit to distinguishing doc-is-vector-index from doc-is-DOC-offset.
> One handy source for that bit is the tag bits of a Lisp_Object.
>
> A nice side effect would be that we could change docstrings to something
> that we can't find in DOC, and possibly make the fixnum-as-a-DOC-offset
> thing optional if we decide it's no longer generally useful.
>
> (Maybe someone would even like to experiment with storing something other
> than a string or fixnum in it.)
>
> I'm not certain which approach would be safer: a Lisp_Object is unlikely to
> be mistakenly used as an integer value, and the Lisp_Object would remove
> uncertainty about whether doc_offset or doc_index "wins", but it would
> also mean changes in a few more places, particularly the nativecomp
> code.

Using an integer would reduce the work for igc a bit. Not that it
matters much.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 12:29:02 GMT) Full text and rfc822 format available.

Message #152 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: gerd.moellmann <at> gmail.com, spd <at> toadstyle.org, acorallo <at> gnu.org,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 14:28:01 +0200
> Date: Sat, 21 Dec 2024 10:09:25 +0000
> From: Pip Cet <pipcet <at> protonmail.com>
> Cc: Eli Zaretskii <eliz <at> gnu.org>, spd <at> toadstyle.org, acorallo <at> gnu.org, monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
> 
> >> Also, Stefan said something about using a Lisp_Object for the value?
> >
> > Haven't seen or registered that, so I better leave that to Stefan to
> > explain.
> 
> I suggested doing so, I'm not aware of either Stefan suggesting it (as
> both of them feature prominently in the git blame for doc.c, I'm not
> sure which Stefan was meant).

See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=74966#107





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 13:27:02 GMT) Full text and rfc822 format available.

Message #155 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Pip Cet <pipcet <at> protonmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: gerd.moellmann <at> gmail.com, spd <at> toadstyle.org, acorallo <at> gnu.org,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 13:26:39 +0000
"Eli Zaretskii" <eliz <at> gnu.org> writes:

>> Date: Sat, 21 Dec 2024 10:09:25 +0000
>> From: Pip Cet <pipcet <at> protonmail.com>
>> Cc: Eli Zaretskii <eliz <at> gnu.org>, spd <at> toadstyle.org, acorallo <at> gnu.org, monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
>>
>> >> Also, Stefan said something about using a Lisp_Object for the value?
>> >
>> > Haven't seen or registered that, so I better leave that to Stefan to
>> > explain.
>>
>> I suggested doing so, I'm not aware of either Stefan suggesting it (as
>> both of them feature prominently in the git blame for doc.c, I'm not
>> sure which Stefan was meant).
>
> See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=74966#107

Thanks! Since that message doesn't mention Lisp_Objects at all, it
didn't register here as a suggestion to use Lisp_Object instead of
EMACS_INT for doc, so I made/repeated that suggestion in message 113:

> I meant this patch, which splits "doc" into "doc_index" and
> "doc_offset".  It'd probably be better to use a Lisp_Object here, which
> can be either a fixnum (index into etc/DOC) or a string (the doc string
> specified in some other manner).  And maybe we can drop the docfile
> index thing entirely at some point soon?

I thought that was what you were referring to.  Rereading message 107,
it's not quite clear to me whether Stefan Monnier was indeed suggesting
to change "doc" to be a Lisp_Object or assuming it already was or merely
referring to its (integer) value as a fixnum.

Whatever the case, I assume that's the suggestion we're most likely to
go with?

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 14:14:02 GMT) Full text and rfc822 format available.

Message #158 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: spd <at> toadstyle.org, Pip Cet <pipcet <at> protonmail.com>, acorallo <at> gnu.org,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 15:12:03 +0100
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Date: Sat, 21 Dec 2024 10:09:25 +0000
>> From: Pip Cet <pipcet <at> protonmail.com>
>> Cc: Eli Zaretskii <eliz <at> gnu.org>, spd <at> toadstyle.org, acorallo <at> gnu.org, monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
>> 
>> >> Also, Stefan said something about using a Lisp_Object for the value?
>> >
>> > Haven't seen or registered that, so I better leave that to Stefan to
>> > explain.
>> 
>> I suggested doing so, I'm not aware of either Stefan suggesting it (as
>> both of them feature prominently in the git blame for doc.c, I'm not
>> sure which Stefan was meant).
>
> See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=74966#107

I remember that message, but i don't see Stefan proposing to use
Lisp_Object for anything there. I didn't answer to it directly because
Pip answered and what he said was right.

The situation that Stefan overlooked in his analysis is one like
x-file-dialog in ns-win.el. This is a native compiled function, so a
SUBRP, but _not_ a primitive function (C function). Remember me
wondering how we land in nativecomp code for x-file-dialog in the
beginning? Same thing.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 14:27:02 GMT) Full text and rfc822 format available.

Message #161 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: Gerd Möllmann <gerd.moellmann <at> gmail.com>,
 spd <at> toadstyle.org, Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org,
 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 09:26:24 -0500
>> `offset` here should be fixnum that gives the position of this docstring
>> in the DOC file.  And FUN should be a function for which we found
>
> Yes, but the nativecomp code assumes ->doc is an index into a
> nativecomp'd subr's constant vector.

Aha!

> So we overwrite it with a docfile
> index, access an out-of-bounds index and crash.
>
> I think the best thing to do is to use separate fields for the "offset"
> doc and the "index" doc; or at least, the second best thing, after
> removing the entire docfile hack.

I think a much simpler change is to use the sign bit to distinguish indices
into the constant vector from indices into the DOC file.


        Stefan





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 14:59:01 GMT) Full text and rfc822 format available.

Message #164 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: spd <at> toadstyle.org, Pip Cet <pipcet <at> protonmail.com>, acorallo <at> gnu.org,
 Eli Zaretskii <eliz <at> gnu.org>, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 15:57:22 +0100
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:

>>> `offset` here should be fixnum that gives the position of this docstring
>>> in the DOC file.  And FUN should be a function for which we found
>>
>> Yes, but the nativecomp code assumes ->doc is an index into a
>> nativecomp'd subr's constant vector.
>
> Aha!
>
>> So we overwrite it with a docfile
>> index, access an out-of-bounds index and crash.
>>
>> I think the best thing to do is to use separate fields for the "offset"
>> doc and the "index" doc; or at least, the second best thing, after
>> removing the entire docfile hack.
>
> I think a much simpler change is to use the sign bit to distinguish indices
> into the constant vector from indices into the DOC file.
>
>
>         Stefan

Simpler maybe, but not cleaner than what Pip has in his lastest patch,
which separates DOC offset and index into constant vector. And it's
a pretty simple change.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 15:19:02 GMT) Full text and rfc822 format available.

Message #167 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Pip Cet <pipcet <at> protonmail.com>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: Gerd Möllmann <gerd.moellmann <at> gmail.com>,
 spd <at> toadstyle.org, Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org,
 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 15:18:43 +0000
"Stefan Monnier" <monnier <at> iro.umontreal.ca> writes:

>>> `offset` here should be fixnum that gives the position of this docstring
>>> in the DOC file.  And FUN should be a function for which we found
>>
>> Yes, but the nativecomp code assumes ->doc is an index into a
>> nativecomp'd subr's constant vector.
>
> Aha!
>
>> So we overwrite it with a docfile
>> index, access an out-of-bounds index and crash.
>>
>> I think the best thing to do is to use separate fields for the "offset"
>> doc and the "index" doc; or at least, the second best thing, after
>> removing the entire docfile hack.
>
> I think a much simpler change is to use the sign bit to distinguish indices
> into the constant vector from indices into the DOC file.

And use one's-complement, I assume, to guard against some future weird
nativecomp change resulting in the index -0?  :-)

I really have no strong preference here.

At some point we should remove the DOC hack entirely (pdumper works on
FreeDOS here, now; so with the possible exception of Solaris 10 zones on
x86 Solaris 11, everyone's going to use pdumper and we can use that to
save static data).

But now is not a good time to do so, so we should do whatever affects
the nativecomp code least.  Let's go with the one's complement?

(I'd really like to get Emacs working well in low-memory environments,
such as embedded systems using SRAM rather than DRAM.  I expect most
hardware capable of running Emacs will have an MMU, but it might not
actually be in use).

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 16:08:02 GMT) Full text and rfc822 format available.

Message #170 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: spd <at> toadstyle.org, pipcet <at> protonmail.com, acorallo <at> gnu.org,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 18:07:35 +0200
> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
> Cc: Pip Cet <pipcet <at> protonmail.com>,  spd <at> toadstyle.org,  acorallo <at> gnu.org,
>   monnier <at> iro.umontreal.ca,  74966 <at> debbugs.gnu.org
> Date: Sat, 21 Dec 2024 15:12:03 +0100
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> >> I suggested doing so, I'm not aware of either Stefan suggesting it (as
> >> both of them feature prominently in the git blame for doc.c, I'm not
> >> sure which Stefan was meant).
> >
> > See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=74966#107
> 
> I remember that message, but i don't see Stefan proposing to use
> Lisp_Object for anything there. I didn't answer to it directly because
> Pip answered and what he said was right.

I interpreted the suggestion to use a fixnum as meaning to use a
Lisp_Object.  I'm not aware of any other interpretation of "fixnum".
Apologies if I misunderstood.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 16:17:01 GMT) Full text and rfc822 format available.

Message #173 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Pip Cet <pipcet <at> protonmail.com>, acorallo <at> gnu.org
Cc: gerd.moellmann <at> gmail.com, spd <at> toadstyle.org, monnier <at> iro.umontreal.ca,
 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 18:15:48 +0200
> Date: Sat, 21 Dec 2024 15:18:43 +0000
> From: Pip Cet <pipcet <at> protonmail.com>
> Cc: Gerd Möllmann <gerd.moellmann <at> gmail.com>, Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org, spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
> 
> "Stefan Monnier" <monnier <at> iro.umontreal.ca> writes:
> 
> >>> `offset` here should be fixnum that gives the position of this docstring
> >>> in the DOC file.  And FUN should be a function for which we found
> >>
> >> Yes, but the nativecomp code assumes ->doc is an index into a
> >> nativecomp'd subr's constant vector.
> >
> > Aha!
> >
> >> So we overwrite it with a docfile
> >> index, access an out-of-bounds index and crash.
> >>
> >> I think the best thing to do is to use separate fields for the "offset"
> >> doc and the "index" doc; or at least, the second best thing, after
> >> removing the entire docfile hack.
> >
> > I think a much simpler change is to use the sign bit to distinguish indices
> > into the constant vector from indices into the DOC file.
> 
> And use one's-complement, I assume, to guard against some future weird
> nativecomp change resulting in the index -0?  :-)
> 
> I really have no strong preference here.

And I still want to hear from Andrea.  It's his code, so the solution
he prefers gets my vote.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 17:36:02 GMT) Full text and rfc822 format available.

Message #176 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Gerd Möllmann <gerd.moellmann <at> gmail.com>,
 spd <at> toadstyle.org, pipcet <at> protonmail.com, acorallo <at> gnu.org,
 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 12:35:31 -0500
> I interpreted the suggestion to use a fixnum as meaning to use a
> Lisp_Object.  I'm not aware of any other interpretation of "fixnum".
> Apologies if I misunderstood.

It was actually just me not being 100% sure if it had type Lisp_Object
or not, but wanting to insist on the fact that in any case it's a value that
doesn't require any tracing for the GC or relocation or any such thing.

BTW, we could also keep the bug and fix the crash by checking bounds
before we use the index, ...


        Stefan





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Sat, 21 Dec 2024 18:16:02 GMT) Full text and rfc822 format available.

Message #179 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: spd <at> toadstyle.org, Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org,
 pipcet <at> protonmail.com, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Sat, 21 Dec 2024 13:15:26 -0500
> a `primitive-function`.  We have a few undesirable cases where
> a function is defined in C code for some platforms and in ELisp for
> others, which is why there's the `CLOSUREP (fun)` branch

Maybe we could/should eliminate those "SKIP..." docstrings and replace
them with

    (:documentation (make-ref-to-DOC 'x-file-dialog))

where `make-ref-to-DOC` is an ELisp function which opens the DOC file,
looks for the doc of `x-file-dialog` and returns its offset.


        Stefan





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Tue, 31 Dec 2024 10:23:02 GMT) Full text and rfc822 format available.

Message #182 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Andrea Corallo <acorallo <at> gnu.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: gerd.moellmann <at> gmail.com, spd <at> toadstyle.org,
 Pip Cet <pipcet <at> protonmail.com>, monnier <at> iro.umontreal.ca,
 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Tue, 31 Dec 2024 05:22:11 -0500
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Date: Sat, 21 Dec 2024 15:18:43 +0000
>> From: Pip Cet <pipcet <at> protonmail.com>
>> Cc: Gerd Möllmann <gerd.moellmann <at> gmail.com>, Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org, spd <at> toadstyle.org, 74966 <at> debbugs.gnu.org
>> 
>> "Stefan Monnier" <monnier <at> iro.umontreal.ca> writes:
>> 
>> >>> `offset` here should be fixnum that gives the position of this docstring
>> >>> in the DOC file.  And FUN should be a function for which we found
>> >>
>> >> Yes, but the nativecomp code assumes ->doc is an index into a
>> >> nativecomp'd subr's constant vector.
>> >
>> > Aha!
>> >
>> >> So we overwrite it with a docfile
>> >> index, access an out-of-bounds index and crash.
>> >>
>> >> I think the best thing to do is to use separate fields for the "offset"
>> >> doc and the "index" doc; or at least, the second best thing, after
>> >> removing the entire docfile hack.
>> >
>> > I think a much simpler change is to use the sign bit to distinguish indices
>> > into the constant vector from indices into the DOC file.
>> 
>> And use one's-complement, I assume, to guard against some future weird
>> nativecomp change resulting in the index -0?  :-)
>> 
>> I really have no strong preference here.
>
> And I still want to hear from Andrea.  It's his code, so the solution
> he prefers gets my vote.

Sorry for behing late here.

I'm for the sign bit, it saves memory (why not), and we can sanity check
that when the bit is set the function is a non-primitve one and vice
versa.

  Andrea




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Tue, 31 Dec 2024 13:29:01 GMT) Full text and rfc822 format available.

Message #185 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Andrea Corallo <acorallo <at> gnu.org>
Cc: gerd.moellmann <at> gmail.com, spd <at> toadstyle.org, pipcet <at> protonmail.com,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Tue, 31 Dec 2024 15:28:38 +0200
> From: Andrea Corallo <acorallo <at> gnu.org>
> Cc: Pip Cet <pipcet <at> protonmail.com>,  monnier <at> iro.umontreal.ca,
>   gerd.moellmann <at> gmail.com,  spd <at> toadstyle.org,  74966 <at> debbugs.gnu.org
> Date: Tue, 31 Dec 2024 05:22:11 -0500
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> >> > I think a much simpler change is to use the sign bit to distinguish indices
> >> > into the constant vector from indices into the DOC file.
> >> 
> >> And use one's-complement, I assume, to guard against some future weird
> >> nativecomp change resulting in the index -0?  :-)
> >> 
> >> I really have no strong preference here.
> >
> > And I still want to hear from Andrea.  It's his code, so the solution
> > he prefers gets my vote.
> 
> Sorry for behing late here.
> 
> I'm for the sign bit, it saves memory (why not), and we can sanity check
> that when the bit is set the function is a non-primitve one and vice
> versa.

OK, can you post a patch (or even install it)?

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Tue, 31 Dec 2024 14:33:01 GMT) Full text and rfc822 format available.

Message #188 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Pip Cet <pipcet <at> protonmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: gerd.moellmann <at> gmail.com, spd <at> toadstyle.org,
 Andrea Corallo <acorallo <at> gnu.org>, monnier <at> iro.umontreal.ca,
 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Tue, 31 Dec 2024 14:32:30 +0000
"Eli Zaretskii" <eliz <at> gnu.org> writes:

>> From: Andrea Corallo <acorallo <at> gnu.org>
>> Cc: Pip Cet <pipcet <at> protonmail.com>,  monnier <at> iro.umontreal.ca,
>>   gerd.moellmann <at> gmail.com,  spd <at> toadstyle.org,  74966 <at> debbugs.gnu.org
>> Date: Tue, 31 Dec 2024 05:22:11 -0500
>>
>> Eli Zaretskii <eliz <at> gnu.org> writes:
>>
>> >> > I think a much simpler change is to use the sign bit to distinguish indices
>> >> > into the constant vector from indices into the DOC file.
>> >>
>> >> And use one's-complement, I assume, to guard against some future weird
>> >> nativecomp change resulting in the index -0?  :-)
>> >>
>> >> I really have no strong preference here.
>> >
>> > And I still want to hear from Andrea.  It's his code, so the solution
>> > he prefers gets my vote.
>>
>> Sorry for behing late here.
>>
>> I'm for the sign bit, it saves memory (why not), and we can sanity check
>> that when the bit is set the function is a non-primitve one and vice
>> versa.

It is valid for a primitive function to have an etc/DOC docstring, so no
"vice versa", I'm afraid.  That's what caused the problem in the first
place.

> OK, can you post a patch (or even install it)?

That'd be great (with the minor change described)!

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Mon, 06 Jan 2025 20:39:02 GMT) Full text and rfc822 format available.

Message #191 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Andrea Corallo <acorallo <at> gnu.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: gerd.moellmann <at> gmail.com, spd <at> toadstyle.org, pipcet <at> protonmail.com,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Mon, 06 Jan 2025 15:38:18 -0500
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Andrea Corallo <acorallo <at> gnu.org>
>> Cc: Pip Cet <pipcet <at> protonmail.com>,  monnier <at> iro.umontreal.ca,
>>   gerd.moellmann <at> gmail.com,  spd <at> toadstyle.org,  74966 <at> debbugs.gnu.org
>> Date: Tue, 31 Dec 2024 05:22:11 -0500
>> 
>> Eli Zaretskii <eliz <at> gnu.org> writes:
>> 
>> >> > I think a much simpler change is to use the sign bit to distinguish indices
>> >> > into the constant vector from indices into the DOC file.
>> >> 
>> >> And use one's-complement, I assume, to guard against some future weird
>> >> nativecomp change resulting in the index -0?  :-)
>> >> 
>> >> I really have no strong preference here.
>> >
>> > And I still want to hear from Andrea.  It's his code, so the solution
>> > he prefers gets my vote.
>> 
>> Sorry for behing late here.
>> 
>> I'm for the sign bit, it saves memory (why not), and we can sanity check
>> that when the bit is set the function is a non-primitve one and vice
>> versa.
>
> OK, can you post a patch (or even install it)?

Will do.  I'll just need some time, I'm catching up with mails after
holidays while being sick at the same time.  If someone is motivate to
jump on the task before me feel free.

  Andrea




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Tue, 07 Jan 2025 13:04:02 GMT) Full text and rfc822 format available.

Message #194 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Pip Cet <pipcet <at> protonmail.com>
To: Andrea Corallo <acorallo <at> gnu.org>
Cc: gerd.moellmann <at> gmail.com, spd <at> toadstyle.org, Eli Zaretskii <eliz <at> gnu.org>,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Tue, 07 Jan 2025 13:03:15 +0000
"Andrea Corallo" <acorallo <at> gnu.org> writes:

> Eli Zaretskii <eliz <at> gnu.org> writes:
>
>>> From: Andrea Corallo <acorallo <at> gnu.org>
>>> Cc: Pip Cet <pipcet <at> protonmail.com>,  monnier <at> iro.umontreal.ca,
>>>   gerd.moellmann <at> gmail.com,  spd <at> toadstyle.org,  74966 <at> debbugs.gnu.org
>>> Date: Tue, 31 Dec 2024 05:22:11 -0500
>>>
>>> Eli Zaretskii <eliz <at> gnu.org> writes:
>>>
>>> >> > I think a much simpler change is to use the sign bit to distinguish indices
>>> >> > into the constant vector from indices into the DOC file.
>>> >>
>>> >> And use one's-complement, I assume, to guard against some future weird
>>> >> nativecomp change resulting in the index -0?  :-)
>>> >>
>>> >> I really have no strong preference here.
>>> >
>>> > And I still want to hear from Andrea.  It's his code, so the solution
>>> > he prefers gets my vote.
>>>
>>> Sorry for behing late here.
>>>
>>> I'm for the sign bit, it saves memory (why not), and we can sanity check
>>> that when the bit is set the function is a non-primitve one and vice
>>> versa.
>>
>> OK, can you post a patch (or even install it)?
>
> Will do.  I'll just need some time, I'm catching up with mails after
> holidays while being sick at the same time.

Sorry to hear it.  Get well soon!

> If someone is motivate to
> jump on the task before me feel free.

Here's a patch (IIRC, C doesn't require ~x = -x - 1, so I used
the more explicit notation to avoid compiler warnings).

commit 9654100f0ecc312b14ba56bf2e13691168342cf9 (HEAD -> signbit)
Author: Pip Cet <pipcet <at> protonmail.com>
Date:   Tue Jan 7 12:52:16 2025 +0000

    Fix store_function_docstring for native subrs (Bug#74966)
    
    * src/comp.c (native_function_doc):
    (make_subr): Use one's complement of doc index.
    * src/doc.c (store_function_docstring): Add assertion.
    * src/lisp.h (struct Lisp_Subr): Document 'doc' sign bit.

diff --git a/src/comp.c b/src/comp.c
index 70a9a64a714..b96fae4ae95 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -5488,7 +5488,10 @@ native_function_doc (Lisp_Object function)
   if (!VECTORP (cu->data_fdoc_v))
     xsignal2 (Qnative_lisp_file_inconsistent, cu->file,
 	      build_string ("missing documentation vector"));
-  return AREF (cu->data_fdoc_v, XSUBR (function)->doc);
+  EMACS_INT doc = XSUBR (function)->doc;
+  if (doc < 0)
+    return AREF (cu->data_fdoc_v, -doc - 1);
+  return make_fixnum (doc);
 }
 
 static Lisp_Object
@@ -5529,7 +5532,8 @@ make_subr (Lisp_Object symbol_name, Lisp_Object minarg, Lisp_Object maxarg,
   x->s.symbol_name = xstrdup (SSDATA (symbol_name));
   x->s.intspec.native = intspec;
   x->s.command_modes = command_modes;
-  x->s.doc = XFIXNUM (doc_idx);
+  x->s.doc = -XFIXNUM (doc_idx) - 1;
+  eassert (x->s.doc < 0);
 #ifdef HAVE_NATIVE_COMP
   x->s.native_comp_u = comp_u;
   x->s.native_c_name = xstrdup (SSDATA (c_name));
diff --git a/src/doc.c b/src/doc.c
index 88be9121dab..04afe50d3dd 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -479,7 +479,10 @@ store_function_docstring (Lisp_Object obj, EMACS_INT offset)
     fun = XCDR (fun);
   /* Lisp_Subrs have a slot for it.  */
   if (SUBRP (fun))
-    XSUBR (fun)->doc = offset;
+    {
+      XSUBR (fun)->doc = offset;
+      eassert (XSUBR (fun)->doc >= 0);
+    }
   else if (CLOSUREP (fun))
     {
       /* This bytecode object must have a slot for the docstring, since
diff --git a/src/lisp.h b/src/lisp.h
index 339ff5e83b0..0979fedd846 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2228,6 +2228,9 @@ CHAR_TABLE_SET (Lisp_Object ct, int idx, Lisp_Object val)
       Lisp_Object native;
     } intspec;
     Lisp_Object command_modes;
+    /* positive values: offset into etc/DOC.  Negative values: one's
+       complement of index into the native comp unit's constant
+       vector.  */
     EMACS_INT doc;
 #ifdef HAVE_NATIVE_COMP
     Lisp_Object native_comp_u;






Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74966; Package emacs. (Wed, 08 Jan 2025 10:34:02 GMT) Full text and rfc822 format available.

Message #197 received at 74966 <at> debbugs.gnu.org (full text, mbox):

From: Andrea Corallo <acorallo <at> gnu.org>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: gerd.moellmann <at> gmail.com, spd <at> toadstyle.org, Eli Zaretskii <eliz <at> gnu.org>,
 monnier <at> iro.umontreal.ca, 74966 <at> debbugs.gnu.org
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Wed, 08 Jan 2025 05:33:09 -0500
Pip Cet <pipcet <at> protonmail.com> writes:

> "Andrea Corallo" <acorallo <at> gnu.org> writes:
>
>> Eli Zaretskii <eliz <at> gnu.org> writes:
>>
>>>> From: Andrea Corallo <acorallo <at> gnu.org>
>>>> Cc: Pip Cet <pipcet <at> protonmail.com>,  monnier <at> iro.umontreal.ca,
>>>>   gerd.moellmann <at> gmail.com,  spd <at> toadstyle.org,  74966 <at> debbugs.gnu.org
>>>> Date: Tue, 31 Dec 2024 05:22:11 -0500
>>>>
>>>> Eli Zaretskii <eliz <at> gnu.org> writes:
>>>>
>>>> >> > I think a much simpler change is to use the sign bit to distinguish indices
>>>> >> > into the constant vector from indices into the DOC file.
>>>> >>
>>>> >> And use one's-complement, I assume, to guard against some future weird
>>>> >> nativecomp change resulting in the index -0?  :-)
>>>> >>
>>>> >> I really have no strong preference here.
>>>> >
>>>> > And I still want to hear from Andrea.  It's his code, so the solution
>>>> > he prefers gets my vote.
>>>>
>>>> Sorry for behing late here.
>>>>
>>>> I'm for the sign bit, it saves memory (why not), and we can sanity check
>>>> that when the bit is set the function is a non-primitve one and vice
>>>> versa.
>>>
>>> OK, can you post a patch (or even install it)?
>>
>> Will do.  I'll just need some time, I'm catching up with mails after
>> holidays while being sick at the same time.
>
> Sorry to hear it.  Get well soon!

Thanks

>> If someone is motivate to
>> jump on the task before me feel free.
>
> Here's a patch (IIRC, C doesn't require ~x = -x - 1, so I used
> the more explicit notation to avoid compiler warnings).
>
> commit 9654100f0ecc312b14ba56bf2e13691168342cf9 (HEAD -> signbit)
> Author: Pip Cet <pipcet <at> protonmail.com>
> Date:   Tue Jan 7 12:52:16 2025 +0000
>
>     Fix store_function_docstring for native subrs (Bug#74966)
>     
>     * src/comp.c (native_function_doc):
>     (make_subr): Use one's complement of doc index.
>     * src/doc.c (store_function_docstring): Add assertion.
>     * src/lisp.h (struct Lisp_Subr): Document 'doc' sign bit.
>
> diff --git a/src/comp.c b/src/comp.c
> index 70a9a64a714..b96fae4ae95 100644
> --- a/src/comp.c
> +++ b/src/comp.c
> @@ -5488,7 +5488,10 @@ native_function_doc (Lisp_Object function)
>    if (!VECTORP (cu->data_fdoc_v))
>      xsignal2 (Qnative_lisp_file_inconsistent, cu->file,
>  	      build_string ("missing documentation vector"));
> -  return AREF (cu->data_fdoc_v, XSUBR (function)->doc);
> +  EMACS_INT doc = XSUBR (function)->doc;
> +  if (doc < 0)
> +    return AREF (cu->data_fdoc_v, -doc - 1);
> +  return make_fixnum (doc);
>  }
>  
>  static Lisp_Object
> @@ -5529,7 +5532,8 @@ make_subr (Lisp_Object symbol_name, Lisp_Object minarg, Lisp_Object maxarg,
>    x->s.symbol_name = xstrdup (SSDATA (symbol_name));
>    x->s.intspec.native = intspec;
>    x->s.command_modes = command_modes;
> -  x->s.doc = XFIXNUM (doc_idx);
> +  x->s.doc = -XFIXNUM (doc_idx) - 1;
> +  eassert (x->s.doc < 0);
>  #ifdef HAVE_NATIVE_COMP
>    x->s.native_comp_u = comp_u;
>    x->s.native_c_name = xstrdup (SSDATA (c_name));
> diff --git a/src/doc.c b/src/doc.c
> index 88be9121dab..04afe50d3dd 100644
> --- a/src/doc.c
> +++ b/src/doc.c
> @@ -479,7 +479,10 @@ store_function_docstring (Lisp_Object obj, EMACS_INT offset)
>      fun = XCDR (fun);
>    /* Lisp_Subrs have a slot for it.  */
>    if (SUBRP (fun))
> -    XSUBR (fun)->doc = offset;
> +    {
> +      XSUBR (fun)->doc = offset;
> +      eassert (XSUBR (fun)->doc >= 0);
> +    }
>    else if (CLOSUREP (fun))
>      {
>        /* This bytecode object must have a slot for the docstring, since
> diff --git a/src/lisp.h b/src/lisp.h
> index 339ff5e83b0..0979fedd846 100644
> --- a/src/lisp.h
> +++ b/src/lisp.h
> @@ -2228,6 +2228,9 @@ CHAR_TABLE_SET (Lisp_Object ct, int idx, Lisp_Object val)
>        Lisp_Object native;
>      } intspec;
>      Lisp_Object command_modes;
> +    /* positive values: offset into etc/DOC.  Negative values: one's
> +       complement of index into the native comp unit's constant
> +       vector.  */
>      EMACS_INT doc;
>  #ifdef HAVE_NATIVE_COMP
>      Lisp_Object native_comp_u;

LGTM thanks




Reply sent to Pip Cet <pipcet <at> protonmail.com>:
You have taken responsibility. (Wed, 08 Jan 2025 12:48:02 GMT) Full text and rfc822 format available.

Notification sent to Sean Devlin <spd <at> toadstyle.org>:
bug acknowledged by developer. (Wed, 08 Jan 2025 12:48:03 GMT) Full text and rfc822 format available.

Message #202 received at 74966-done <at> debbugs.gnu.org (full text, mbox):

From: Pip Cet <pipcet <at> protonmail.com>
To: Andrea Corallo <acorallo <at> gnu.org>
Cc: gerd.moellmann <at> gmail.com, spd <at> toadstyle.org, Eli Zaretskii <eliz <at> gnu.org>,
 74966-done <at> debbugs.gnu.org, monnier <at> iro.umontreal.ca
Subject: Re: bug#74966: 31.0.50; Crash report (using igc on macOS)
Date: Wed, 08 Jan 2025 12:47:19 +0000
"Andrea Corallo" <acorallo <at> gnu.org> writes:

> LGTM thanks

Pushed (after confirming it correctly handles "SKIP" string now), and
closing.

Pip





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 06 Feb 2025 12:24:10 GMT) Full text and rfc822 format available.

This bug report was last modified 130 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.