Skip to content

MASTG-DEMO-0019: Uses of isExcludedFromBackupKey with r2

Content in BETA

This content is in beta and still under active development, so it is subject to change any time (e.g. structure, IDs, content, URLs, etc.).

Send Feedback

Sample

The code snippet below shows sample code that creates a file and marks it with isExcludedFromBackupKey.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import SwiftUI

struct MastgTest {
    static func mastgTest(completion: @escaping (String) -> Void) {
    // Define the file name and create the file URL
    let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
    let fileName = "secret.txt"
    var fileURL = documentsDirectory.appendingPathComponent(fileName)

    // Create the file content
    let fileContent = "MAS_API_KEY=8767086b9f6f976g-a8df76"

    do {
        try fileContent.write(to: fileURL, atomically: true, encoding: .utf8)

        // Set the isExcludedFromBackup flag
        var resourceValues = URLResourceValues()
        resourceValues.isExcludedFromBackup = true

        try fileURL.setResourceValues(resourceValues)

    } catch {
      completion("Error creating file: \(error)")
    }
    completion("File created and isExcludedFromBackup flag set to true")
    }
}
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
            ;-- section.0.__TEXT.__text:
            ;-- func.100004000:
            ; NULL XREF from segment.__TEXT @ +0xd0(r)
            ; CALL XREF from MASTestApp.ContentView.body.SwiftUI.Tuple...D0VyAE0D0PAEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE4TextV_AE6SpacerVAiEEAJyQrAN_ARtFQOyAiEE12cornerRadius_11antialiasedQrAQ_SbtFQOyAiEE10background_20ignoresSafeAreaEdgesQrqd___ANtAE10ShapeStyleRd__lFQOyAE6ButtonVyAiEE4fontyQrAE4FontVSgFQOyAiEEAJyQrAN_ARtFQOyAiEEAJyQrAN_ARtFQOyAV_Qo__Qo__Qo_G_AE14LinearGradientVQo__Qo__Qo_tGG_Qo__AiEEAJyQrAN_ARtFQOyAiEEAY_AZQrAQ_SbtFQOyAiEEA__A0_Qrqd___ANtAEA1_Rd__lFQOyAiEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQrAR_A5rE9AlignmentVtFQOyAE06ScrollD0VyAiEEAJyQrAN_ARtFQOyAiEEA20_A21_A22_A23_A24_A25_A26_A27_QrAR_A5RA29_tFQOyAV_Qo__Qo_G_Qo__AE5ColorVQo__Qo__Qo_tGyXEfU_A17_yXEfU_yycfU_...E0D0PAEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE4TextV_AE6SpacerVAiEEAJyQrAN_ARtFQOyAiEE12cornerRadius_11antialiasedQrAQ_SbtFQOyAiEE10background_20ignoresSafeAreaEdgesQrqd___ANtAE10ShapeStyleRd__lFQOyAE6ButtonVyAiEE4fontyQrAE4FontVSgFQOyAiEEAJyQrAN_ARtFQOyAiEEAJyQrAN_ARtFQOyAV_Qo__Qo__Qo_G_AE14LinearGradientVQo__Qo__Qo_tGG_Qo__AiEEAJyQrAN_ARtFQOyAiEEAY_AZQrAQ_SbtFQOyAiEEA__A0_Qrqd___ANtAEA1_Rd__lFQOyAiEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQrAR_A5rE9AlignmentVtFQOyAE06ScrollD0VyAiEEAJyQrAN_ARtFQOyAiEEA20_A21_A22_A23_A24_A25_A26_A27_QrAR_A5RA29_tFQOyAV_Qo__Qo_G_Qo__AE5ColorVQo__Qo__Qo_tGyXEfU_A17_yXEfU_yycfU_...D0PAEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE4TextV_AE6SpacerVAiEEAJyQrAN_ARtFQOyAiEE12cornerRadius_11antialiasedQrAQ_SbtFQOyAiEE10background_20ignoresSafeAreaEdgesQrqd___ANtAE10ShapeStyleRd__lFQOyAE6ButtonVyAiEE4fontyQrAE4FontVSgFQOyAiEEAJyQrAN_ARtFQOyAiEEAJyQrAN_ARtFQOyAV_Qo__Qo__Qo_G_AE14LinearGradientVQo__Qo__Qo_tGG_Qo__AiEEAJyQrAN_ARtFQOyAiEEAY_AZQrAQ_SbtFQOyAiEEA__A0_Qrqd___ANtAEA1_Rd__lFQOyAiEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQrAR_A5rE9AlignmentVtFQOyAE06ScrollD0VyAiEEAJyQrAN_ARtFQOyAiEEA20_A21_A22_A23_A24_A25_A26_A27_QrAR_A5RA29_tFQOyAV_Qo__Qo_G_Qo__AE5ColorVQo__Qo__Qo_tGyXEfU_A17_yXEfU_yycfU_.padding.Edge.Set.CoreGraphics.CGFloat.HStack.Text.Spacer.cornerRadius.antialiased.background.ignoresSafeAreaEdges.ShapeStyle.Button.font.Font.LinearGradient...A0_Qrqd___ANtAEA1_Rd__lFQOyAiEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQrAR_A5rE9AlignmentVtFQOyAE06ScrollD0VyAiEEAJyQrAN_ARtFQOyAiEEA20_A21_A22_A23_A24_A25_A26_A27_QrAR_A5RA29_tFQOyAV_Qo__Qo_G_Qo__AE5ColorVQo__Qo__Qo_tGyXEfU_A17_yXEfU_yycfU_._.frame.minWidth.idealWidth.maxWidth.minHeight.idealHeight.maxHeight.alignment.rE9Al.Scroll...D0VyAiEEAJyQrAN_ARtFQOyAiEEA20_A21_A22_A23_A24_A25_A26_A27_QrAR_A5RA29_tFQOyAV_Qo__Qo_G_Qo__AE5ColorVQo__Qo__Qo_tGyXEfU_A17_yXEfU_yycfU_._A21_A22_A23_A24_A25._A27_QrAR_A5RA29_tFQOyAV_Q.Color._yXEfU_yycfU_ @ 0x1000060a8(r) ; sym.MASTestApp.ContentView.body.SwiftUI.Tuple...D0VyAE0D0PAEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE4TextV_AE6SpacerVAiEEAJyQrAN_ARtFQOyAiEE12cornerRadius_11antialiasedQrAQ_SbtFQOyAiEE10background_20ignoresSafeAreaEdgesQrqd___ANtAE10ShapeStyleRd__lFQOyAE6ButtonVyAiEE4fontyQrAE4FontVSgFQOyAiEEAJyQrAN_ARtFQOyAiEEAJyQrAN_ARtFQOyAV_Qo__Qo__Qo_G_AE14LinearGradientVQo__Qo__Qo_tGG_Qo__AiEEAJyQrAN_ARtFQOyAiEEAY_AZQrAQ_SbtFQOyAiEEA__A0_Qrqd___ANtAEA1_Rd__lFQOyAiEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQrAR_A5rE9AlignmentVtFQOyAE06ScrollD0VyAiEEAJyQrAN_ARtFQOyAiEEA20_A21_A22_A23_A24_A25_A26_A27_QrAR_A5RA29_tFQOyAV_Qo__Qo_G_Qo__AE5ColorVQo__Qo__Qo_tGyXEfU_A17_yXEfU_yycfU_...E0D0PAEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE4TextV_AE6SpacerVAiEEAJyQrAN_ARtFQOyAiEE12cornerRadius_11antialiasedQrAQ_SbtFQOyAiEE10background_20ignoresSafeAreaEdgesQrqd___ANtAE10ShapeStyleRd__lFQOyAE6ButtonVyAiEE4fontyQrAE4FontVSgFQOyAiEEAJyQrAN_ARtFQOyAiEEAJyQrAN_ARtFQOyAV_Qo__Qo__Qo_G_AE14LinearGradientVQo__Qo__Qo_tGG_Qo__AiEEAJyQrAN_ARtFQOyAiEEAY_AZQrAQ_SbtFQOyAiEEA__A0_Qrqd___ANtAEA1_Rd__lFQOyAiEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQrAR_A5rE9AlignmentVtFQOyAE06ScrollD0VyAiEEAJyQrAN_ARtFQOyAiEEA20_A21_A22_A23_A24_A25_A26_A27_QrAR_A5RA29_tFQOyAV_Qo__Qo_G_Qo__AE5ColorVQo__Qo__Qo_tGyXEfU_A17_yXEfU_yycfU_...D0PAEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE4TextV_AE6SpacerVAiEEAJyQrAN_ARtFQOyAiEE12cornerRadius_11antialiasedQrAQ_SbtFQOyAiEE10background_20ignoresSafeAreaEdgesQrqd___ANtAE10ShapeStyleRd__lFQOyAE6ButtonVyAiEE4fontyQrAE4FontVSgFQOyAiEEAJyQrAN_ARtFQOyAiEEAJyQrAN_ARtFQOyAV_Qo__Qo__Qo_G_AE14LinearGradientVQo__Qo__Qo_tGG_Qo__AiEEAJyQrAN_ARtFQOyAiEEAY_AZQrAQ_SbtFQOyAiEEA__A0_Qrqd___ANtAEA1_Rd__lFQOyAiEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQrAR_A5rE9AlignmentVtFQOyAE06ScrollD0VyAiEEAJyQrAN_ARtFQOyAiEEA20_A21_A22_A23_A24_A25_A26_A27_QrAR_A5RA29_tFQOyAV_Qo__Qo_G_Qo__AE5ColorVQo__Qo__Qo_tGyXEfU_A17_yXEfU_yycfU_.padding.Edge.Set.CoreGraphics.CGFloat.HStack.Text.Spacer.cornerRadius.antialiased.background.ignoresSafeAreaEdges.ShapeStyle.Button.font.Font.LinearGradient...A0_Qrqd___ANtAEA1_Rd__lFQOyAiEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQrAR_A5rE9AlignmentVtFQOyAE06ScrollD0VyAiEEAJyQrAN_ARtFQOyAiEEA20_A21_A22_A23_A24_A25_A26_A27_QrAR_A5RA29_tFQOyAV_Qo__Qo_G_Qo__AE5ColorVQo__Qo__Qo_tGyXEfU_A17_yXEfU_yycfU_._.frame.minWidth.idealWidth.maxWidth.minHeight.idealHeight.maxHeight.alignment.rE9Al.Scroll...D0VyAiEEAJyQrAN_ARtFQOyAiEEA20_A21_A22_A23_A24_A25_A26_A27_QrAR_A5RA29_tFQOyAV_Qo__Qo_G_Qo__AE5ColorVQo__Qo__Qo_tGyXEfU_A17_yXEfU_yycfU_._A21_A22_A23_A24_A25._A27_QrAR_A5RA29_tFQOyAV_Q.Color._yXEfU_yycfU_
 2384: sym.MASTestApp.MastgTest.mastg.completion...FZ (void *arg1, void *arg2, int64_t arg_10h, int64_t arg_20h);
           0x100004000      stp x22, x21, [sp, -0x30]!                ; [00] -r-x section size 35856 named 0.__TEXT.__text
           0x100004004      stp x20, x19, [var_0h_65x10]
           0x100004008      stp x29, x30, [var_0h_19]
           0x10000400c      add x29, sp, 0x20
           0x100004010      sub sp, sp, 0x250
           0x100004014      sub x8, x29, 0x28
           0x100004018      stur x0, [x8, -0x100]                     ; arg1
           0x10000401c      sub x8, x29, 0x30
           0x100004020      stur x1, [x8, -0x100]                     ; arg2
           0x100004024      adrp x8, sym.imp.swift_getObjCClassMetadata ; 0x10000d000
           0x100004028      add x8, x8, 0xbda                         ; 0x10000dbda ; "Fatal error"
           0x10000402c      sub x9, x29, 0xb0
           0x100004030      stur x8, [x9, -0x100]
           0x100004034      adrp x8, sym.imp.swift_getObjCClassMetadata ; 0x10000d000
           0x100004038      add x8, x8, 0xba0                         ; 0x10000dba0 ; "Unexpectedly found nil while unwrapping an Optional value"
           0x10000403c      sub x9, x29, 0xa8
           0x100004040      stur x8, [x9, -0x100]
           0x100004044      adrp x8, sym.imp.swift_getObjCClassMetadata ; 0x10000d000
           0x100004048      add x8, x8, 0xb80                         ; 0x10000db80 ; "MASTestApp/MastgTest.swift"
           0x10000404c      sub x9, x29, 0xa0
           0x100004050      stur x8, [x9, -0x100]
           0x100004054      stur xzr, [x29, -0x28]
           0x100004058      stur xzr, [x29, -0x30]
           0x10000405c      stur xzr, [x29, -0x38]
           0x100004060      stur xzr, [x29, -0x48]
           0x100004064      stur xzr, [x29, -0x40]
           0x100004068      stur xzr, [x29, -0x68]
           0x10000406c      stur xzr, [x29, -0x60]
           0x100004070      stur xzr, [x29, -0x78]
           0x100004074      stur xzr, [x29, -0x70]
           0x100004078      mov x0, 0
           0x10000407c      sub x8, x29, 0x98
           0x100004080      stur x0, [x8, -0x100]
           0x100004084      stur xzr, [x29, -0x90]
           0x100004088      mov x0, 0
           0x10000408c      sub x8, x29, 0x40
           0x100004090      stur x0, [x8, -0x100]
           0x100004094      bl sym Foundation.URLResourceValues...VMa ; sym.imp.Foundation.URLResourceValues...VMa
           0x100004098      mov x8, x0
           0x10000409c      sub x9, x29, 0x40
           0x1000040a0      ldur x0, [x9, -0x100]
           0x1000040a4      sub x9, x29, 0x90
           0x1000040a8      stur x8, [x9, -0x100]
           0x1000040ac      ldur x8, [x8, -8]
           0x1000040b0      sub x9, x29, 0x88
           0x1000040b4      stur x8, [x9, -0x100]
           0x1000040b8      ldr x8, [x8, 0x40]
           0x1000040bc      lsr x9, x8, 0
           0x1000040c0      add x9, x9, 0xf
           0x1000040c4      and x9, x9, 0xfffffffffffffff0
           0x1000040c8      sub x10, x29, 0x80
           0x1000040cc      stur x9, [x10, -0x100]
           0x1000040d0      adrp x16, segment.__DATA_CONST            ; 0x100010000
           0x1000040d4      ldr x16, [x16, 0x90]                      ; 0x100010090
                                                                      ; reloc.__chkstk_darwin
           0x1000040d8      blr x16
           0x1000040dc      sub x9, x29, 0x80
           0x1000040e0      ldur x10, [x9, -0x100]
           0x1000040e4      mov x9, sp
           0x1000040e8      subs x1, x9, x10
           0x1000040ec      sub x9, x29, 0x78
           0x1000040f0      stur x1, [x9, -0x100]
           0x1000040f4      mov sp, x1
           0x1000040f8      lsr x8, x8, 0
           0x1000040fc      add x8, x8, 0xf
           0x100004100      and x9, x8, 0xfffffffffffffff0
           0x100004104      sub x8, x29, 0x70
           0x100004108      stur x9, [x8, -0x100]
           0x10000410c      adrp x16, segment.__DATA_CONST            ; 0x100010000
           0x100004110      ldr x16, [x16, 0x90]                      ; 0x100010090
                                                                      ; reloc.__chkstk_darwin
           0x100004114      blr x16
           0x100004118      sub x8, x29, 0x70
           0x10000411c      ldur x9, [x8, -0x100]
           0x100004120      mov x8, sp
           0x100004124      subs x8, x8, x9
           0x100004128      sub x9, x29, 0x68
           0x10000412c      stur x8, [x9, -0x100]
           0x100004130      mov sp, x8
           0x100004134      stur x8, [x29, -0x28]
           0x100004138      bl sym Foundation...8EncodingVMa          ; sym.imp.Foundation...8EncodingVMa
           0x10000413c      sub x8, x29, 0x60
           0x100004140      stur x0, [x8, -0x100]
           0x100004144      ldur x8, [x0, -8]
           0x100004148      sub x9, x29, 0x58
           0x10000414c      stur x8, [x9, -0x100]
           0x100004150      ldr x8, [x8, 0x40]
           0x100004154      lsr x8, x8, 0
           0x100004158      add x8, x8, 0xf
           0x10000415c      and x9, x8, 0xfffffffffffffff0
           0x100004160      sub x8, x29, 0x50
           0x100004164      stur x9, [x8, -0x100]
           0x100004168      adrp x16, segment.__DATA_CONST            ; 0x100010000
           0x10000416c      ldr x16, [x16, 0x90]                      ; 0x100010090
                                                                      ; reloc.__chkstk_darwin
           0x100004170      blr x16
           0x100004174      sub x8, x29, 0x50
           0x100004178      ldur x9, [x8, -0x100]
           0x10000417c      mov x8, sp
           0x100004180      subs x0, x8, x9
           0x100004184      sub x8, x29, 0x48
           0x100004188      stur x0, [x8, -0x100]
           0x10000418c      mov sp, x0
           0x100004190      adrp x0, sym.__METACLASS_DATA__TtC10MASTestAppP33_9471609302C95FC8EC1D59DD4CF2A2DB19ResourceBundleClass ; 0x100014000
           0x100004194      add x0, x0, 0xe0                          ; 0x1000140e0
                                                                      ; sym.Foundation.URL...VSgMD...MD ; int64_t arg1
           0x100004198      bl sym.___swift_instantiateConcreteTypeFromMangledName
           0x10000419c      mov x8, x0
           0x1000041a0      sub x9, x29, 0x40
           0x1000041a4      ldur x0, [x9, -0x100]
           0x1000041a8      ldur x8, [x8, -8]                         ; 0x1000140d8
                                                                      ; reloc.NSObject
           0x1000041ac      ldr x8, [x8, 0x40]
           0x1000041b0      lsr x8, x8, 0
           0x1000041b4      add x8, x8, 0xf
           0x1000041b8      and x9, x8, 0xfffffffffffffff0
           0x1000041bc      sub x8, x29, 0x38
           0x1000041c0      stur x9, [x8, -0x100]
           0x1000041c4      adrp x16, segment.__DATA_CONST            ; 0x100010000
           0x1000041c8      ldr x16, [x16, 0x90]                      ; 0x100010090
                                                                      ; reloc.__chkstk_darwin
           0x1000041cc      blr x16
           0x1000041d0      sub x8, x29, 0x38
           0x1000041d4      ldur x9, [x8, -0x100]
           0x1000041d8      mov x8, sp
           0x1000041dc      subs x1, x8, x9
           0x1000041e0      stur x1, [x29, -0xb8]
           0x1000041e4      mov sp, x1
           0x1000041e8      bl sym Foundation.URL...VMa               ; sym.imp.Foundation.URL...VMa
           0x1000041ec      sub x8, x29, 0x30
           0x1000041f0      ldur x1, [x8, -0x100]
           0x1000041f4      mov x8, x0
           0x1000041f8      sub x9, x29, 0x28
           0x1000041fc      ldur x0, [x9, -0x100]
           0x100004200      stur x8, [x29, -0xb0]
           0x100004204      ldur x8, [x8, -8]
           0x100004208      stur x8, [x29, -0xc0]
           0x10000420c      ldr x8, [x8, 0x40]
           0x100004210      lsr x9, x8, 0
           0x100004214      add x9, x9, 0xf
           0x100004218      and x9, x9, 0xfffffffffffffff0
           0x10000421c      sub x10, x29, 0x20
           0x100004220      stur x9, [x10, -0x100]
           0x100004224      adrp x16, segment.__DATA_CONST            ; 0x100010000
           0x100004228      ldr x16, [x16, 0x90]                      ; 0x100010090
                                                                      ; reloc.__chkstk_darwin
           0x10000422c      blr x16
           0x100004230      sub x9, x29, 0x20
           0x100004234      ldur x10, [x9, -0x100]
           0x100004238      mov x9, sp
           0x10000423c      subs x2, x9, x10
           0x100004240      sub x9, x29, 0x18
           0x100004244      stur x2, [x9, -0x100]
           0x100004248      mov sp, x2
           0x10000424c      lsr x9, x8, 0
           0x100004250      add x9, x9, 0xf
           0x100004254      and x9, x9, 0xfffffffffffffff0
           0x100004258      sub x10, x29, 0x10
           0x10000425c      stur x9, [x10, -0x100]
           0x100004260      adrp x16, segment.__DATA_CONST            ; 0x100010000
           0x100004264      ldr x16, [x16, 0x90]                      ; 0x100010090
                                                                      ; reloc.__chkstk_darwin
           0x100004268      blr x16
           0x10000426c      sub x9, x29, 0x10
           0x100004270      ldur x10, [x9, -0x100]
           0x100004274      mov x9, sp
           0x100004278      subs x9, x9, x10
           0x10000427c      sub x10, x29, 8
           0x100004280      stur x9, [x10, -0x100]
           0x100004284      mov sp, x9
           0x100004288      stur x9, [x29, -0x30]
           0x10000428c      lsr x8, x8, 0
           0x100004290      add x8, x8, 0xf
           0x100004294      and x9, x8, 0xfffffffffffffff0
           0x100004298      stur x9, [x29, -0x100]
           0x10000429c      adrp x16, segment.__DATA_CONST            ; 0x100010000
           0x1000042a0      ldr x16, [x16, 0x90]                      ; 0x100010090
                                                                      ; reloc.__chkstk_darwin
           0x1000042a4      blr x16
           0x1000042a8      ldur x9, [x29, -0x100]
           0x1000042ac      mov x8, sp
           0x1000042b0      subs x8, x8, x9
           0x1000042b4      stur x8, [x29, -0xf8]
           0x1000042b8      mov sp, x8
           0x1000042bc      stur x8, [x29, -0x38]
           0x1000042c0      stur x0, [x29, -0x48]
           0x1000042c4      stur x1, [x29, -0x40]
           0x1000042c8      adrp x8, sym.__METACLASS_DATA__TtC10MASTestAppP33_9471609302C95FC8EC1D59DD4CF2A2DB19ResourceBundleClass ; 0x100014000
           0x1000042cc      ldr x0, [x8, 0xc0]                        ; 0x1000140c0
                                                                      ; reloc.NSFileManager ; void *arg0
           0x1000042d0      bl sym.imp.objc_opt_self                  ; void *objc_opt_self(void *arg0)
           0x1000042d4      adrp x8, sym.__METACLASS_DATA__TtC10MASTestAppP33_9471609302C95FC8EC1D59DD4CF2A2DB19ResourceBundleClass ; 0x100014000
           0x1000042d8      ldr x1, [x8, 0x90]                        ; 0x100014090
                                                                      ; section.21.__DATA.__objc_selrefs ; char *selector
           0x1000042dc      bl sym.imp.objc_msgSend                   ; void *objc_msgSend(void *instance, char *selector)
           0x1000042e0      mov x29, x29
           0x1000042e4      bl sym.imp.objc_retainAutoreleasedReturnValue ; void objc_retainAutoreleasedReturnValue(void *instance)
           0x1000042e8      stur x0, [x29, -0xf0]
           0x1000042ec      adrp x8, sym.__METACLASS_DATA__TtC10MASTestAppP33_9471609302C95FC8EC1D59DD4CF2A2DB19ResourceBundleClass ; 0x100014000
           0x1000042f0      ldr x1, [x8, 0x98]                        ; char *selector
           0x1000042f4      mov w8, 9
           0x1000042f8      mov x2, x8
           0x1000042fc      mov w8, 1
           0x100004300      mov x3, x8
           0x100004304      bl sym.imp.objc_msgSend                   ; void *objc_msgSend(void *instance, char *selector)
           0x100004308      mov x29, x29
           0x10000430c      bl sym.imp.objc_retainAutoreleasedReturnValue ; void objc_retainAutoreleasedReturnValue(void *instance)
           0x100004310      mov x8, x0
           0x100004314      ldur x0, [x29, -0xf0]                     ; void *instance
           0x100004318      stur x8, [x29, -0xe8]
           0x10000431c      bl sym.imp.objc_release                   ; void objc_release(void *instance)
           0x100004320      ldur x0, [x29, -0xe8]
           0x100004324      ldur x1, [x29, -0xb0]
           0x100004328      bl sym Foundation...nconditionallyBridgeFromObjectiveCySayxGSo7NSArrayCSgFZ ; sym.imp.Foundation...nconditionallyBridgeFromObjectiveCySayxGSo7NSArrayCSgFZ
           0x10000432c      stur x0, [x29, -0xc8]
           0x100004330      stur x0, [x29, -0x50]
           0x100004334      ldur x0, [x29, -0x50]                     ; void *arg0
           0x100004338      stur x0, [x29, -0xe0]
           0x10000433c      bl sym.imp.swift_bridgeObjectRetain       ; void *swift_bridgeObjectRetain(void *arg0)
           0x100004340      ldur x8, [x29, -0xe0]
           0x100004344      sub x20, x29, 0x58
           0x100004348      stur x20, [x29, -0xd0]
           0x10000434c      stur x8, [x29, -0x58]
           0x100004350      adrp x0, sym.__METACLASS_DATA__TtC10MASTestAppP33_9471609302C95FC8EC1D59DD4CF2A2DB19ResourceBundleClass ; 0x100014000
           0x100004354      add x0, x0, 0xe8                          ; 0x1000140e8
                                                                      ; sym....sSay10Foundation3URLVGMD ; int64_t arg1
           0x100004358      bl sym.___swift_instantiateConcreteTypeFromMangledName
           0x10000435c      stur x0, [x29, -0xd8]
           0x100004360      bl sym ...sSay10Foundation3URLVGSayxGSlsWl ; sym....sSay10Foundation3URLVGSayxGSlsWl
           0x100004364      ldur x8, [x29, -0xb8]
           0x100004368      mov x1, x0
           0x10000436c      ldur x0, [x29, -0xd8]
           0x100004370      bl sym first.Element...zSgvg              ; sym.imp.first.Element...zSgvg
           0x100004374      ldur x0, [x29, -0xd0]                     ; void *arg0
           0x100004378      bl sym ...sSay10Foundation3URLVGWOh       ; sym....sSay10Foundation3URLVGWOh
           0x10000437c      ldur x0, [x29, -0xc8]                     ; void *arg0
           0x100004380      bl sym.imp.swift_bridgeObjectRelease      ; void swift_bridgeObjectRelease(void *arg0)
           0x100004384      ldur x8, [x29, -0xc0]
           0x100004388      ldur x0, [x29, -0xb8]
           0x10000438c      ldur x2, [x29, -0xb0]
           0x100004390      ldr x8, [x8, 0x30]
           0x100004394      mov w1, 1
           0x100004398      blr x8
           0x10000439c      subs w8, w0, 1
           0x1000043a0      cset w8, ne
       ┌─< 0x1000043a4      tbnz w8, 0, 0x10000440c
      ┌──< 0x1000043a8      b 0x1000043ac
      ││   ; CODE XREF from MASTestApp.MastgTest.mastg.completion...FZ @ 0x1000043a8(x)
      └──> 0x1000043ac      sub x8, x29, 0xa0
          0x1000043b0      ldur x6, [x8, -0x100]
          0x1000043b4      sub x8, x29, 0xa8
          0x1000043b8      ldur x3, [x8, -0x100]
          0x1000043bc      sub x8, x29, 0xb0
          0x1000043c0      ldur x0, [x8, -0x100]
          0x1000043c4      sub sp, sp, 0x20
          0x1000043c8      mov x8, sp
          0x1000043cc      mov w9, 2
          0x1000043d0      strb w9, [x8]
          0x1000043d4      mov w9, 0xd
          0x1000043d8      str x9, [x8, 8]
          0x1000043dc      str wzr, [x8, 0x10]
          0x1000043e0      mov w8, 0xb
          0x1000043e4      mov x1, x8
          0x1000043e8      mov w5, 2
          0x1000043ec      mov x2, x5
          0x1000043f0      mov w8, 0x39                              ; '9'
          0x1000043f4      mov x4, x8
          0x1000043f8      mov w8, 0x1a
          0x1000043fc      mov x7, x8
          0x100004400      bl sym _assertionFailure...._4file4line5flagss5NeverOs12StaticStringV_A2HSus6UInt32VtF ; sym.imp._assertionFailure...._4file4line5flagss5NeverOs12StaticStringV_A2HSus6UInt32VtF
          0x100004404      add sp, sp, 0x20
          0x100004408      brk 1
          ; CODE XREF from MASTestApp.MastgTest.mastg.completion...FZ @ 0x1000043a4(x)
       └─> 0x10000440c      sub x8, x29, 0x98
           0x100004410      ldur x21, [x8, -0x100]
           0x100004414      ldur x2, [x29, -0xb0]
           0x100004418      ldur x8, [x29, -0xc0]
           0x10000441c      ldur x20, [x29, -0xf8]
           0x100004420      ldur x1, [x29, -0xb8]
           0x100004424      ldr x8, [x8, 0x20]
           0x100004428      mov x0, x20
           0x10000442c      blr x8
           0x100004430      ldur x0, [x29, -0xe8]                     ; void *instance
           0x100004434      bl sym.imp.objc_release                   ; void objc_release(void *instance)
           0x100004438      adrp x0, sym.imp.swift_getObjCClassMetadata ; 0x10000d000
           0x10000443c      add x0, x0, 0xbe6                         ; 0x10000dbe6 ; "secret.txt"
           0x100004440      mov w8, 0xa
           0x100004444      mov x1, x8
           0x100004448      mov w8, 1
           0x10000444c      sub x9, x29, 0xc4
           0x100004450      stur w8, [x9, -0x100]
           0x100004454      and w2, w8, 1
           0x100004458      bl sym _builtinStringLiteral.utf8CodeUnitCount.isASCII__String: Builtin.Word, B...cfC ; sym.imp._builtinStringLiteral.utf8CodeUnitCount.isASCII__String:_Builtin.Word__B...cfC
           0x10000445c      sub x8, x29, 8
           0x100004460      ldur x8, [x8, -0x100]
           0x100004464      sub x9, x29, 0xd8
           0x100004468      stur x1, [x9, -0x100]
           0x10000446c      stur x0, [x29, -0x68]
           0x100004470      mov x9, x1
           0x100004474      stur x9, [x29, -0x60]
           0x100004478      bl sym Foundation.URL.appendingPathComponent...CSSF ; sym.imp.Foundation.URL.appendingPathComponent...CSSF
           0x10000447c      sub x8, x29, 0xc4
           0x100004480      ldur w8, [x8, -0x100]
           0x100004484      adrp x0, sym.imp.swift_getObjCClassMetadata ; 0x10000d000
           0x100004488      add x0, x0, 0xc00                         ; 0x10000dc00 ; "MAS_API_KEY=8767086b9f6f976g-a8df76"
           0x10000448c      mov w9, 0x23                              ; '#'
           0x100004490      mov x1, x9
           0x100004494      and w2, w8, 1
           0x100004498      bl sym _builtinStringLiteral.utf8CodeUnitCount.isASCII__String: Builtin.Word, B...cfC ; sym.imp._builtinStringLiteral.utf8CodeUnitCount.isASCII__String:_Builtin.Word__B...cfC
           0x10000449c      ldur x8, [x29, -0xc0]
           0x1000044a0      ldur x2, [x29, -0xb0]
           0x1000044a4      mov x10, x0
           0x1000044a8      sub x9, x29, 0x18
           0x1000044ac      ldur x0, [x9, -0x100]
           0x1000044b0      mov x9, x1
           0x1000044b4      sub x11, x29, 8
           0x1000044b8      ldur x1, [x11, -0x100]
           0x1000044bc      sub x11, x29, 0xd0
           0x1000044c0      stur x9, [x11, -0x100]
           0x1000044c4      stur x10, [x29, -0x78]
           0x1000044c8      mov x11, x9
           0x1000044cc      stur x11, [x29, -0x70]
           0x1000044d0      sub x20, x29, 0x88
           0x1000044d4      stur x10, [x29, -0x88]
           0x1000044d8      stur x9, [x29, -0x80]
           0x1000044dc      ldr x8, [x8, 0x10]
           0x1000044e0      blr x8
           0x1000044e4      sub x8, x29, 0x48
           0x1000044e8      ldur x8, [x8, -0x100]
           0x1000044ec      bl sym Foundation...8EncodingV4utf8ACvgZ  ; sym.imp.Foundation...8EncodingV4utf8ACvgZ
           0x1000044f0      bl sym ...sS2SSysWl                       ; sym....sS2SSysWl
           0x1000044f4      sub x8, x29, 0xc4
           0x1000044f8      ldur w8, [x8, -0x100]
           0x1000044fc      sub x9, x29, 0x48
           0x100004500      ldur x2, [x9, -0x100]
           0x100004504      mov x4, x0
           0x100004508      sub x9, x29, 0x18
           0x10000450c      ldur x0, [x9, -0x100]
           0x100004510      and w1, w8, 1
           0x100004514      adrp x3, segment.__DATA_CONST             ; 0x100010000
           0x100004518      ldr x3, reloc....SSN                      ; 0x100010428
           0x10000451c      bl sym Foundation...bSSAAE8EncodingVtKF   ; sym.imp.Foundation...bSSAAE8EncodingVtKF
           0x100004520      sub x8, x29, 0xc0
           0x100004524      stur x21, [x8, -0x100]
           0x100004528      subs x8, x21, 0
           0x10000452c      cset w8, ne
           0x100004530      sub x9, x29, 0xb8
           0x100004534      stur x21, [x9, -0x100]
       ┌─< 0x100004538      tbnz w8, 0, 0x10000488c
      ┌──< 0x10000453c      b 0x100004540
      ││   ; CODE XREF from MASTestApp.MastgTest.mastg.completion...FZ @ 0x10000453c(x)
      └──> 0x100004540      sub x8, x29, 0xc0
          0x100004544      ldur x21, [x8, -0x100]
          0x100004548      sub x8, x29, 0x68
          0x10000454c      ldur x20, [x8, -0x100]
          0x100004550      sub x8, x29, 0x60
          0x100004554      ldur x1, [x8, -0x100]
          0x100004558      sub x8, x29, 0x48
          0x10000455c      ldur x0, [x8, -0x100]
          0x100004560      sub x8, x29, 0x58
          0x100004564      ldur x8, [x8, -0x100]
          0x100004568      ldr x8, [x8, 8]
          0x10000456c      blr x8
          0x100004570      ldur x8, [x29, -0xc0]
          0x100004574      sub x9, x29, 0x18
          0x100004578      ldur x0, [x9, -0x100]
          0x10000457c      ldur x1, [x29, -0xb0]
          0x100004580      ldr x8, [x8, 8]
          0x100004584      blr x8
          0x100004588      mov x8, x20
          0x10000458c      bl sym.imp.Foundation.URLResourceValues...VACycfC...ycfC
          0x100004590      mov w0, 1
          0x100004594      bl sym Foundation.URLResourceValues.isExcludedFromBackup...Sgvs ; sym.imp.Foundation.URLResourceValues.isExcludedFromBackup...Sgvs
          0x100004598      sub x8, x29, 8
          0x10000459c      ldur x20, [x8, -0x100]
          0x1000045a0      sub x8, x29, 0x88
          0x1000045a4      ldur x8, [x8, -0x100]
          0x1000045a8      sub x9, x29, 0x68
          0x1000045ac      ldur x1, [x9, -0x100]
          0x1000045b0      sub x9, x29, 0x90
          0x1000045b4      ldur x2, [x9, -0x100]
          0x1000045b8      sub x9, x29, 0x78
          0x1000045bc      ldur x0, [x9, -0x100]
          0x1000045c0      ldr x8, [x8, 0x10]
          0x1000045c4      blr x8
          0x1000045c8      sub x8, x29, 0x78
          0x1000045cc      ldur x0, [x8, -0x100]
          0x1000045d0      bl sym Foundation.URL.setResourceValues.URLResource...E0VKF...VKF ; sym.imp.Foundation.URL.setResourceValues.URLResource...E0VKF...VKF
          0x1000045d4      subs x8, x21, 0
          0x1000045d8      cset w8, ne
          0x1000045dc      sub x9, x29, 0xe0
          0x1000045e0      stur x21, [x9, -0x100]
      ┌──< 0x1000045e4      tbnz w8, 0, 0x1000048e8
     ┌───< 0x1000045e8      b 0x1000045ec
     │││   ; CODE XREF from MASTestApp.MastgTest.mastg.completion...FZ @ 0x1000045e8(x)
     └───> 0x1000045ec      sub x8, x29, 0x90
      ││   0x1000045f0      ldur x1, [x8, -0x100]
      ││   0x1000045f4      sub x8, x29, 0x78
      ││   0x1000045f8      ldur x0, [x8, -0x100]
      ││   0x1000045fc      sub x8, x29, 0x88
      ││   0x100004600      ldur x8, [x8, -0x100]
      ││   0x100004604      ldr x8, [x8, 8]
      ││   0x100004608      sub x9, x29, 0xe8
      ││   0x10000460c      stur x8, [x9, -0x100]
      ││   0x100004610      blr x8
      ││   0x100004614      sub x8, x29, 0x68
      ││   0x100004618      ldur x0, [x8, -0x100]
      ││   0x10000461c      sub x8, x29, 0x90
      ││   0x100004620      ldur x1, [x8, -0x100]
      ││   0x100004624      sub x8, x29, 0xe8
      ││   0x100004628      ldur x8, [x8, -0x100]
      ││   0x10000462c      blr x8
     ┌───< 0x100004630      b 0x100004634
     │││   ; CODE XREFS from MASTestApp.MastgTest.mastg.completion...FZ @ 0x100004630(x), 0x100004888(x)
    ┌└───> 0x100004634      sub x8, x29, 0x30
     ││   0x100004638      ldur x20, [x8, -0x100]
     ││   0x10000463c      mov x0, x20
     ││   0x100004640      bl sym.imp.swift_retain
     ││   0x100004644      adrp x0, sym.imp.swift_getObjCClassMetadata ; 0x10000d000
     ││   0x100004648      add x0, x0, 0xc50                         ; 0x10000dc50 ; "File created and isExcludedFromBackup flag set to true"
     ││   0x10000464c      mov w8, 0x36                              ; '6'
     ││   0x100004650      mov x1, x8
     ││   0x100004654      mov w8, 1
     ││   0x100004658      and w2, w8, 1
     ││   0x10000465c      bl sym _builtinStringLiteral.utf8CodeUnitCount.isASCII__String: Builtin.Word, B...cfC ; sym.imp._builtinStringLiteral.utf8CodeUnitCount.isASCII__String:_Builtin.Word__B...cfC
     ││   0x100004660      sub x8, x29, 0x28
     ││   0x100004664      ldur x8, [x8, -0x100]
     ││   0x100004668      sub x9, x29, 0xf8
     ││   0x10000466c      stur x1, [x9, -0x100]
     ││   0x100004670      blr x8
     ││   0x100004674      sub x8, x29, 0xf8
     ││   0x100004678      ldur x0, [x8, -0x100]                     ; void *arg0
     ││   0x10000467c      bl sym.imp.swift_bridgeObjectRelease      ; void swift_bridgeObjectRelease(void *arg0)
     ││   0x100004680      sub x8, x29, 0x30
     ││   0x100004684      ldur x0, [x8, -0x100]                     ; void *arg0
     ││   0x100004688      bl sym.imp.swift_release                  ; void swift_release(void *arg0)
     ││   0x10000468c      sub x8, x29, 0xd0
     ││   0x100004690      ldur x0, [x8, -0x100]                     ; void *arg0
     ││   0x100004694      bl sym.imp.swift_bridgeObjectRelease      ; void swift_bridgeObjectRelease(void *arg0)
     ││   0x100004698      ldur x8, [x29, -0xc0]
     ││   0x10000469c      sub x9, x29, 8
     ││   0x1000046a0      ldur x0, [x9, -0x100]
     ││   0x1000046a4      ldur x1, [x29, -0xb0]
     ││   0x1000046a8      ldr x8, [x8, 8]
     ││   0x1000046ac      sub x9, x29, 0xf0
     ││   0x1000046b0      stur x8, [x9, -0x100]
     ││   0x1000046b4      blr x8
     ││   0x1000046b8      sub x8, x29, 0xd8
     ││   0x1000046bc      ldur x0, [x8, -0x100]                     ; void *arg0
     ││   0x1000046c0      bl sym.imp.swift_bridgeObjectRelease      ; void swift_bridgeObjectRelease(void *arg0)
     ││   0x1000046c4      ldur x0, [x29, -0xf8]
     ││   0x1000046c8      ldur x1, [x29, -0xb0]
     ││   0x1000046cc      sub x8, x29, 0xf0
     ││   0x1000046d0      ldur x8, [x8, -0x100]
     ││   0x1000046d4      blr x8
     ││   0x1000046d8      sub sp, x29, 0x20
     ││   0x1000046dc      ldp x29, x30, [var_0h_19]
     ││   0x1000046e0      ldp x20, x19, [var_0h_65x10]
     ││   0x1000046e4      ldp x22, x21, [sp], 0x30
     ││   0x1000046e8      ret
     ││   ; CODE XREFS from MASTestApp.MastgTest.mastg.completion...FZ @ 0x1000048e4(x), 0x10000494c(x)
   ┌─┌───> 0x1000046ec      sub x8, x29, 0x150
   ╎╎╎││   0x1000046f0      ldur x0, [x8, -0x100]
   ╎╎╎││   0x1000046f4      sub x8, x29, 0x100
   ╎╎╎││   0x1000046f8      stur x0, [x8, -0x100]
   ╎╎╎││   0x1000046fc      bl sym.imp.swift_errorRetain
   ╎╎╎││   0x100004700      sub x8, x29, 0x100
   ╎╎╎││   0x100004704      ldur x8, [x8, -0x100]
   ╎╎╎││   0x100004708      sub x9, x29, 0x30
   ╎╎╎││   0x10000470c      ldur x0, [x9, -0x100]
   ╎╎╎││   0x100004710      stur x8, [x29, -0x90]
   ╎╎╎││   0x100004714      bl sym.imp.swift_retain
   ╎╎╎││   0x100004718      mov w8, 0x15
   ╎╎╎││   0x10000471c      mov x0, x8
   ╎╎╎││   0x100004720      sub x8, x29, 0x148
   ╎╎╎││   0x100004724      stur x0, [x8, -0x100]
   ╎╎╎││   0x100004728      mov w8, 1
   ╎╎╎││   0x10000472c      mov x1, x8
   ╎╎╎││   0x100004730      bl sym DefaultStringInterpolation.literalCapacity.interpolationCount...itcfC ; sym.imp.DefaultStringInterpolation.literalCapacity.interpolationCount...itcfC
   ╎╎╎││   0x100004734      mov x8, x1
   ╎╎╎││   0x100004738      sub x9, x29, 0x148
   ╎╎╎││   0x10000473c      ldur x1, [x9, -0x100]
   ╎╎╎││   0x100004740      sub x20, x29, 0xa0
   ╎╎╎││   0x100004744      sub x9, x29, 0x120
   ╎╎╎││   0x100004748      stur x20, [x9, -0x100]
   ╎╎╎││   0x10000474c      stur x0, [x29, -0xa0]
   ╎╎╎││   0x100004750      stur x8, [x29, -0x98]
   ╎╎╎││   0x100004754      adrp x0, sym.imp.swift_getObjCClassMetadata ; 0x10000d000
   ╎╎╎││   0x100004758      add x0, x0, 0xc30                         ; 0x10000dc30 ; "Error creating file: "
   ╎╎╎││   0x10000475c      mov w8, 1
   ╎╎╎││   0x100004760      sub x9, x29, 0x12c
   ╎╎╎││   0x100004764      stur w8, [x9, -0x100]
   ╎╎╎││   0x100004768      and w2, w8, 1
   ╎╎╎││   0x10000476c      bl sym _builtinStringLiteral.utf8CodeUnitCount.isASCII__String: Builtin.Word, B...cfC ; sym.imp._builtinStringLiteral.utf8CodeUnitCount.isASCII__String:_Builtin.Word__B...cfC
   ╎╎╎││   0x100004770      sub x8, x29, 0x140
   ╎╎╎││   0x100004774      stur x1, [x8, -0x100]
   ╎╎╎││   0x100004778      bl sym DefaultStringInterpolation.appendLiteral...SSF ; sym.imp.DefaultStringInterpolation.appendLiteral...SSF
   ╎╎╎││   0x10000477c      sub x8, x29, 0x120
   ╎╎╎││   0x100004780      ldur x20, [x8, -0x100]
   ╎╎╎││   0x100004784      sub x8, x29, 0x140
   ╎╎╎││   0x100004788      ldur x0, [x8, -0x100]                     ; void *arg0
   ╎╎╎││   0x10000478c      bl sym.imp.swift_bridgeObjectRelease      ; void swift_bridgeObjectRelease(void *arg0)
   ╎╎╎││   0x100004790      sub x8, x29, 0x100
   ╎╎╎││   0x100004794      ldur x8, [x8, -0x100]
   ╎╎╎││   0x100004798      sub x9, x29, 0xa8
   ╎╎╎││   0x10000479c      sub x10, x29, 0x138
   ╎╎╎││   0x1000047a0      stur x9, [x10, -0x100]
   ╎╎╎││   0x1000047a4      stur x8, [x29, -0xa8]
   ╎╎╎││   0x1000047a8      adrp x0, sym.__METACLASS_DATA__TtC10MASTestAppP33_9471609302C95FC8EC1D59DD4CF2A2DB19ResourceBundleClass ; 0x100014000
   ╎╎╎││   0x1000047ac      add x0, x0, 0x100                         ; 0x100014100 ; "z\x90\xff\xff\xf9" ; int64_t arg1
   ╎╎╎││   0x1000047b0      bl sym.___swift_instantiateConcreteTypeFromMangledName
   ╎╎╎││   0x1000047b4      mov x1, x0
   ╎╎╎││   0x1000047b8      sub x8, x29, 0x138
   ╎╎╎││   0x1000047bc      ldur x0, [x8, -0x100]
   ╎╎╎││   0x1000047c0      bl sym DefaultStringInterpolation.append...C0yyxlF...xlF ; sym.imp.DefaultStringInterpolation.append...C0yyxlF...xlF
   ╎╎╎││   0x1000047c4      sub x8, x29, 0x120
   ╎╎╎││   0x1000047c8      ldur x20, [x8, -0x100]
   ╎╎╎││   0x1000047cc      sub x8, x29, 0x12c
   ╎╎╎││   0x1000047d0      ldur w8, [x8, -0x100]
   ╎╎╎││   0x1000047d4      adrp x0, sym.imp.swift_getObjCClassMetadata ; 0x10000d000
   ╎╎╎││   0x1000047d8      add x0, x0, 0xbf8
   ╎╎╎││   0x1000047dc      mov x1, 0
   ╎╎╎││   0x1000047e0      and w2, w8, 1
   ╎╎╎││   0x1000047e4      bl sym _builtinStringLiteral.utf8CodeUnitCount.isASCII__String: Builtin.Word, B...cfC ; sym.imp._builtinStringLiteral.utf8CodeUnitCount.isASCII__String:_Builtin.Word__B...cfC
   ╎╎╎││   0x1000047e8      sub x8, x29, 0x128
   ╎╎╎││   0x1000047ec      stur x1, [x8, -0x100]
   ╎╎╎││   0x1000047f0      bl sym DefaultStringInterpolation.appendLiteral...SSF ; sym.imp.DefaultStringInterpolation.appendLiteral...SSF
   ╎╎╎││   0x1000047f4      sub x8, x29, 0x30
   ╎╎╎││   0x1000047f8      ldur x20, [x8, -0x100]
   ╎╎╎││   0x1000047fc      sub x8, x29, 0x128
   ╎╎╎││   0x100004800      ldur x0, [x8, -0x100]                     ; void *arg0
   ╎╎╎││   0x100004804      bl sym.imp.swift_bridgeObjectRelease      ; void swift_bridgeObjectRelease(void *arg0)
   ╎╎╎││   0x100004808      ldur x8, [x29, -0xa0]
   ╎╎╎││   0x10000480c      sub x9, x29, 0x110
   ╎╎╎││   0x100004810      stur x8, [x9, -0x100]
   ╎╎╎││   0x100004814      ldur x0, [x29, -0x98]                     ; void *arg0
   ╎╎╎││   0x100004818      sub x8, x29, 0x118
   ╎╎╎││   0x10000481c      stur x0, [x8, -0x100]
   ╎╎╎││   0x100004820      bl sym.imp.swift_bridgeObjectRetain       ; void *swift_bridgeObjectRetain(void *arg0)
   ╎╎╎││   0x100004824      sub x8, x29, 0x120
   ╎╎╎││   0x100004828      ldur x0, [x8, -0x100]                     ; void *arg0
   ╎╎╎││   0x10000482c      bl sym ...ss26DefaultStringInterpolationVWOh ; sym....ss26DefaultStringInterpolationVWOh
   ╎╎╎││   0x100004830      sub x8, x29, 0x118
   ╎╎╎││   0x100004834      ldur x1, [x8, -0x100]
   ╎╎╎││   0x100004838      sub x8, x29, 0x110
   ╎╎╎││   0x10000483c      ldur x0, [x8, -0x100]
   ╎╎╎││   0x100004840      bl sym stringInterpolation__String...cfC  ; sym.imp.stringInterpolation__String...cfC
   ╎╎╎││   0x100004844      sub x8, x29, 0x28
   ╎╎╎││   0x100004848      ldur x8, [x8, -0x100]
   ╎╎╎││   0x10000484c      sub x9, x29, 0x108
   ╎╎╎││   0x100004850      stur x1, [x9, -0x100]
   ╎╎╎││   0x100004854      blr x8
   ╎╎╎││   0x100004858      sub x8, x29, 0x108
   ╎╎╎││   0x10000485c      ldur x0, [x8, -0x100]                     ; void *arg0
   ╎╎╎││   0x100004860      bl sym.imp.swift_bridgeObjectRelease      ; void swift_bridgeObjectRelease(void *arg0)
   ╎╎╎││   0x100004864      sub x8, x29, 0x30
   ╎╎╎││   0x100004868      ldur x0, [x8, -0x100]                     ; void *arg0
   ╎╎╎││   0x10000486c      bl sym.imp.swift_release                  ; void swift_release(void *arg0)
   ╎╎╎││   0x100004870      sub x8, x29, 0x100
   ╎╎╎││   0x100004874      ldur x0, [x8, -0x100]
   ╎╎╎││   0x100004878      bl sym.imp.swift_errorRelease
   ╎╎╎││   0x10000487c      sub x8, x29, 0x100
   ╎╎╎││   0x100004880      ldur x0, [x8, -0x100]
   ╎╎╎││   0x100004884      bl sym.imp.swift_errorRelease
   ╎└────< 0x100004888      b 0x100004634
    ╎││   ; CODE XREF from MASTestApp.MastgTest.mastg.completion...FZ @ 0x100004538(x)
    ╎│└─> 0x10000488c      sub x8, x29, 0x60
    ╎│    0x100004890      ldur x1, [x8, -0x100]
    ╎│    0x100004894      sub x8, x29, 0x48
    ╎│    0x100004898      ldur x0, [x8, -0x100]
    ╎│    0x10000489c      sub x8, x29, 0x58
    ╎│    0x1000048a0      ldur x8, [x8, -0x100]
    ╎│    0x1000048a4      sub x9, x29, 0xb8
    ╎│    0x1000048a8      ldur x9, [x9, -0x100]
    ╎│    0x1000048ac      sub x10, x29, 0x158
    ╎│    0x1000048b0      stur x9, [x10, -0x100]
    ╎│    0x1000048b4      ldr x8, [x8, 8]
    ╎│    0x1000048b8      blr x8
    ╎│    0x1000048bc      ldur x8, [x29, -0xc0]
    ╎│    0x1000048c0      sub x9, x29, 0x18
    ╎│    0x1000048c4      ldur x0, [x9, -0x100]
    ╎│    0x1000048c8      ldur x1, [x29, -0xb0]
    ╎│    0x1000048cc      ldr x8, [x8, 8]
    ╎│    0x1000048d0      blr x8
    ╎│    0x1000048d4      sub x8, x29, 0x158
    ╎│    0x1000048d8      ldur x8, [x8, -0x100]
    ╎│    0x1000048dc      sub x9, x29, 0x150
    ╎│    0x1000048e0      stur x8, [x9, -0x100]
   └─────< 0x1000048e4      b 0x1000046ec
     ╎│    ; CODE XREF from MASTestApp.MastgTest.mastg.completion...FZ @ 0x1000045e4(x)
     ╎└──> 0x1000048e8      sub x8, x29, 0x90
          0x1000048ec      ldur x1, [x8, -0x100]
          0x1000048f0      sub x8, x29, 0x78
          0x1000048f4      ldur x0, [x8, -0x100]
          0x1000048f8      sub x8, x29, 0x88
          0x1000048fc      ldur x8, [x8, -0x100]
          0x100004900      sub x9, x29, 0xe0
          0x100004904      ldur x9, [x9, -0x100]
          0x100004908      sub x10, x29, 0x160
          0x10000490c      stur x9, [x10, -0x100]
          0x100004910      ldr x8, [x8, 8]
          0x100004914      sub x9, x29, 0x168
          0x100004918      stur x8, [x9, -0x100]
          0x10000491c      blr x8
          0x100004920      sub x8, x29, 0x68
          0x100004924      ldur x0, [x8, -0x100]
          0x100004928      sub x8, x29, 0x90
          0x10000492c      ldur x1, [x8, -0x100]
          0x100004930      sub x8, x29, 0x168
          0x100004934      ldur x8, [x8, -0x100]
          0x100004938      blr x8
          0x10000493c      sub x8, x29, 0x160
          0x100004940      ldur x8, [x8, -0x100]
          0x100004944      sub x9, x29, 0x150
          0x100004948      stur x8, [x9, -0x100]
     └───< 0x10000494c      b 0x1000046ec
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// ✨ Decompiled using OpenAI's ChatGPT o1-review model ✨

func completion() {
    // Step 1: Retrieve the documents directory URL
    if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
        // Step 2: Create a file URL for "secret.txt" in the documents directory
        let fileURL = documentsPath.appendingPathComponent("secret.txt")
        // Step 3: Define the content to write to the file
        let content = "MAS_API_KEY=8767086b9f6f976g-a8df76"

        do {
            // Step 4: Write the content to the file
            try content.write(to: fileURL, atomically: true, encoding: .utf8)
            // Step 5: Set the 'isExcludedFromBackup' attribute to true
            var resourceValues = URLResourceValues()
            resourceValues.isExcludedFromBackup = true
            try fileURL.setResourceValues(resourceValues)
            // Step 6: Log a success message
            print("File created and isExcludedFromBackup flag set to true")
        } catch {
            // Step 7: Log an error message if an exception occurs
            print("Error creating file: \(error)")
        }
    }
}

Steps

  1. Unzip the app package and locate the main binary file ( Exploring the App Package), which in this case is ./Payload/MASTestApp.app/MASTestApp.
  2. Run run.sh.
isExcludedFromBackup.r2
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
e asm.bytes=false
e scr.color=false
e asm.var=false

?e Uses of isExcludedFromBackup:
afl~isExcludedFromBackup

?e

?e xrefs to isExcludedFromBackup:
axt @ 0x10000cc28

?e
?e Use of isExcludedFromBackup:

pd-- 5 @ 0x100004594

?e
?e Search for secret.txt:
/ secret.txt

?e
?e Use of the string secret.txt:
pd-- 5 @ 0x10000443c

pdf @ 0x100004594 > function.asm
run.sh
1
2
#!/bin/bash
r2 -q -i isExcludedFromBackup.r2 -A MASTestApp > output.asm

Observation

The output reveals the use of isExcludedFromBackupKey in the app.

output.asm
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Uses of isExcludedFromBackup:
0x10000cc28    1     12 sym.imp.Foundation.URLResourceValues.isExcludedFromBackup...Sgvs

xrefs to isExcludedFromBackup:
sym.MASTestApp.MastgTest.mastg.completion...FZ 0x100004594 [CALL:--x] bl sym.imp.Foundation.URLResourceValues.isExcludedFromBackup...Sgvs

Use of isExcludedFromBackup:
           0x100004580      ldr x8, [x8, 8]
           0x100004584      blr x8
           0x100004588      mov x8, x20
           0x10000458c      bl sym.imp.Foundation.URLResourceValues...VACycfC...ycfC
           0x100004590      mov w0, 1
           0x100004594      bl sym Foundation.URLResourceValues.isExcludedFromBackup...Sgvs ; sym.imp.Foundation.URLResourceValues.isExcludedFromBackup...Sgvs
           0x100004598      sub x8, x29, 8
           0x10000459c      ldur x20, [x8, -0x100]
           0x1000045a0      sub x8, x29, 0x88
           0x1000045a4      ldur x8, [x8, -0x100]

Search for secret.txt:
0x10000dbe6 hit4_0 "lueFatal errorsecret.txt"

Use of the string secret.txt:
           0x100004428      mov x0, x20
           0x10000442c      blr x8
           0x100004430      ldur x0, [x29, -0xe8]                     ; void *instance
           0x100004434      bl sym.imp.objc_release                   ; void objc_release(void *instance)
           0x100004438      adrp x0, sym.imp.swift_getObjCClassMetadata ; 0x10000d000
           0x10000443c      add x0, x0, 0xbe6                         ; 0x10000dbe6 ; "secret.txt"
           0x100004440      mov w8, 0xa
           0x100004444      mov x1, x8
           0x100004448      mov w8, 1
           0x10000444c      sub x9, x29, 0xc4

Evaluation

The test fails because secret.txt might be restored from the backup and it contains sensitive data.

You can see the call to isExcludedFromBackupKey at 0x100004594 and the associated file, secret.txt at 0x10000443c.

Note: Using artificial intelligence we're able to decompile the disassembled code and review it. The output is a human-readable version of the assembly code. The AI decompiled code may not perfect and might contain errors but, in this case, it clearly shows the use of isExcludedFromBackupKey and the associated file secret.txt.