blinkid-ios
blinkid-ios copied to clipboard
Crash after scanning document
Environment
- Xcode version: 11.3
- BlinkID SDK version: 5.1
- What are you trying to scan? Passport
Describe the problem
The app is crashing after scanning the document.
Steps to reproduce:
- Prepare a document (Passport in my case) and put the document in front of the camera. It is important.
- Open the scanner with
MBPassportRecognizer
- After successfully scanning you will get the crash.
Try to do it several times, the bug is reproducing not every time, but quite often. I use iPhone X. I can not reproduce this bug with BlinkID SDK 5.0, only with 5.1.

GLEngine`gleRunVertexSubmitARM:
0x1c668bb20 <+0>: stp x28, x27, [sp, #-0x60]!
0x1c668bb24 <+4>: stp x26, x25, [sp, #0x10]
0x1c668bb28 <+8>: stp x24, x23, [sp, #0x20]
0x1c668bb2c <+12>: stp x22, x21, [sp, #0x30]
0x1c668bb30 <+16>: stp x20, x19, [sp, #0x40]
0x1c668bb34 <+20>: stp x29, x30, [sp, #0x50]
0x1c668bb38 <+24>: add x29, sp, #0x50 ; =0x50
0x1c668bb3c <+28>: sub sp, sp, #0x1c0 ; =0x1c0
0x1c668bb40 <+32>: adrp x8, 161101
0x1c668bb44 <+36>: ldr x8, [x8, #0x798]
0x1c668bb48 <+40>: ldr x8, [x8]
0x1c668bb4c <+44>: stur x8, [x29, #-0x60]
0x1c668bb50 <+48>: add w11, w4, w3
0x1c668bb54 <+52>: ldr x17, [x0, #0x6338]
0x1c668bb58 <+56>: ldr x9, [x0, #0x6448]
0x1c668bb5c <+60>: ldr x15, [x5]
0x1c668bb60 <+64>: ldr x10, [x0, #0x6358]
0x1c668bb64 <+68>: ldr w8, [x5, #0x8]
0x1c668bb68 <+72>: ubfiz w1, w8, #2, #8
0x1c668bb6c <+76>: ands w16, w15, #0xff
0x1c668bb70 <+80>: b.eq 0x1c668bdd4 ; <+692>
0x1c668bb74 <+84>: stp x17, x1, [sp, #0x8]
0x1c668bb78 <+88>: mov x13, #0x0
0x1c668bb7c <+92>: sub w17, w16, #0x1 ; =0x1
0x1c668bb80 <+96>: ubfx x8, x15, #14, #18
0x1c668bb84 <+100>: and w8, w8, #0x3fc
0x1c668bb88 <+104>: add w8, w1, w8
0x1c668bb8c <+108>: and x2, x15, #0x700
0x1c668bb90 <+112>: ubfx w14, w15, #8, #3
0x1c668bb94 <+116>: mov w12, #0x2218
0x1c668bb98 <+120>: add x6, x0, x12
0x1c668bb9c <+124>: add x7, x5, #0x10 ; =0x10
0x1c668bba0 <+128>: add x19, sp, #0x18 ; =0x18
0x1c668bba4 <+132>: adrp x20, 161103
0x1c668bba8 <+136>: add x20, x20, #0x170 ; =0x170
0x1c668bbac <+140>: adrp x27, 161103
0x1c668bbb0 <+144>: add x27, x27, #0xbf0 ; =0xbf0
0x1c668bbb4 <+148>: adrp x28, 45
0x1c668bbb8 <+152>: add x28, x28, #0x434 ; =0x434
0x1c668bbbc <+156>: b 0x1c668bbcc ; <+172>
0x1c668bbc0 <+160>: adrp x12, 0
0x1c668bbc4 <+164>: add x12, x12, #0xf1c ; =0xf1c
0x1c668bbc8 <+168>: b 0x1c668bd7c ; <+604>
0x1c668bbcc <+172>: ldur x26, [x7, #-0x8]
0x1c668bbd0 <+176>: ubfx x30, x26, #35, #5
0x1c668bbd4 <+180>: ubfx x12, x26, #32, #3
0x1c668bbd8 <+184>: ubfx w25, w26, #14, #6
0x1c668bbdc <+188>: ubfiz w21, w26, #2, #8
0x1c668bbe0 <+192>: mov x1, x8
0x1c668bbe4 <+196>: cmp x13, x17
0x1c668bbe8 <+200>: b.hs 0x1c668bbf4 ; <+212>
0x1c668bbec <+204>: ldr w1, [x7]
0x1c668bbf0 <+208>: ubfiz w1, w1, #2, #8
0x1c668bbf4 <+212>: sub w12, w12, #0x1 ; =0x1
0x1c668bbf8 <+216>: ubfx w22, w26, #11, #3
0x1c668bbfc <+220>: lsr x24, x26, #40
0x1c668bc00 <+224>: sub w23, w1, w21
0x1c668bc04 <+228>: stp w24, w23, [x19, #0x10]
0x1c668bc08 <+232>: orr w23, w25, #0x2
0x1c668bc0c <+236>: cmp w23, #0x2f ; =0x2f
0x1c668bc10 <+240>: b.eq 0x1c668bc2c ; <+268>
0x1c668bc14 <+244>: cmp w22, w12
0x1c668bc18 <+248>: b.hi 0x1c668be40 ; <+800>
0x1c668bc1c <+252>: ldr w23, [x28, x30, lsl #2]
0x1c668bc20 <+256>: ubfx w26, w26, #8, #3
0x1c668bc24 <+260>: cmp w23, w26
0x1c668bc28 <+264>: b.ne 0x1c668be40 ; <+800>
0x1c668bc2c <+268>: add x13, x13, #0x1 ; =0x1
0x1c668bc30 <+272>: add x23, x20, x30, lsl #7
0x1c668bc34 <+276>: add x23, x23, x12, lsl #5
0x1c668bc38 <+280>: ldr w23, [x23, #0x18]
0x1c668bc3c <+284>: add w21, w23, w21
0x1c668bc40 <+288>: cmp w22, w12
0x1c668bc44 <+292>: csel w26, w22, w12, lo
0x1c668bc48 <+296>: cmp w30, #0x14 ; =0x14
0x1c668bc4c <+300>: b.ne 0x1c668bc74 ; <+340>
0x1c668bc50 <+304>: cmp w25, #0x2d ; =0x2d
0x1c668bc54 <+308>: b.eq 0x1c668bcd8 ; <+440>
0x1c668bc58 <+312>: cmp w25, #0x2f ; =0x2f
0x1c668bc5c <+316>: b.ne 0x1c668bd04 ; <+484>
0x1c668bc60 <+320>: mov w12, w26
0x1c668bc64 <+324>: add x12, x20, x12, lsl #5
0x1c668bc68 <+328>: ldr x12, [x12, #0x210]
0x1c668bc6c <+332>: str x6, [x19]
0x1c668bc70 <+336>: b 0x1c668bd7c ; <+604>
0x1c668bc74 <+340>: ldr x12, [x0, #0x6490]
0x1c668bc78 <+344>: lsl w22, w25, #3
0x1c668bc7c <+348>: add x12, x12, x22
0x1c668bc80 <+352>: ldr x12, [x12, #0x3c0]
0x1c668bc84 <+356>: str x12, [x19]
0x1c668bc88 <+360>: tst w24, #0x3
0x1c668bc8c <+364>: cset w22, ne
0x1c668bc90 <+368>: tst x12, #0x3
0x1c668bc94 <+372>: cset w23, ne
0x1c668bc98 <+376>: orr w22, w22, w23
0x1c668bc9c <+380>: cmp x2, #0x200 ; =0x200
0x1c668bca0 <+384>: b.ne 0x1c668bcc0 ; <+416>
0x1c668bca4 <+388>: mul w23, w11, w24
0x1c668bca8 <+392>: add x12, x12, x23
0x1c668bcac <+396>: str x12, [x19]
0x1c668bcb0 <+400>: mov w12, w26
0x1c668bcb4 <+404>: cbz w22, 0x1c668bd50 ; <+560>
0x1c668bcb8 <+408>: add x1, x20, x30, lsl #7
0x1c668bcbc <+412>: b 0x1c668bccc ; <+428>
0x1c668bcc0 <+416>: mov w12, w26
0x1c668bcc4 <+420>: cbz w22, 0x1c668bd1c ; <+508>
0x1c668bcc8 <+424>: add x1, x27, x30, lsl #7
0x1c668bccc <+428>: lsl x12, x12, #5
0x1c668bcd0 <+432>: ldr x12, [x1, x12]
0x1c668bcd4 <+436>: b 0x1c668bd7c ; <+604>
0x1c668bcd8 <+440>: str xzr, [x19]
0x1c668bcdc <+444>: cmp w14, #0x5 ; =0x5
0x1c668bce0 <+448>: b.hi 0x1c668bbc0 ; <+160>
0x1c668bce4 <+452>: orr w12, wzr, #0x1
0x1c668bce8 <+456>: lsl w12, w12, w14
0x1c668bcec <+460>: mov w1, #0x2a
0x1c668bcf0 <+464>: tst w12, w1
0x1c668bcf4 <+468>: b.eq 0x1c668bbc0 ; <+160>
0x1c668bcf8 <+472>: adrp x12, 0
0x1c668bcfc <+476>: add x12, x12, #0xf00 ; =0xf00
0x1c668bd00 <+480>: b 0x1c668bd7c ; <+604>
0x1c668bd04 <+484>: tbnz x15, #0x24, 0x1c668bd2c ; <+524>
0x1c668bd08 <+488>: orr w12, w25, #0x10
0x1c668bd0c <+492>: cmp w12, #0x10 ; =0x10
0x1c668bd10 <+496>: b.ne 0x1c668bd2c ; <+524>
0x1c668bd14 <+500>: mov w12, #-0x1
0x1c668bd18 <+504>: b 0x1c668bd44 ; <+548>
0x1c668bd1c <+508>: cmp w21, w1
0x1c668bd20 <+512>: b.ne 0x1c668bd70 ; <+592>
0x1c668bd24 <+516>: add x1, x27, x30, lsl #7
0x1c668bd28 <+520>: b 0x1c668bd5c ; <+572>
0x1c668bd2c <+524>: cmp w25, #0xf ; =0xf
0x1c668bd30 <+528>: mov w12, #0x1e10
0x1c668bd34 <+532>: add w12, w12, w25, lsl #5
0x1c668bd38 <+536>: mov w22, #0x1f10
0x1c668bd3c <+540>: add w22, w22, w25, lsl #4
0x1c668bd40 <+544>: csel w12, w12, w22, hi
0x1c668bd44 <+548>: add x12, x0, w12, sxtw
0x1c668bd48 <+552>: str x12, [x19]
0x1c668bd4c <+556>: mov w12, w26
0x1c668bd50 <+560>: cmp w21, w1
0x1c668bd54 <+564>: b.ne 0x1c668bd68 ; <+584>
0x1c668bd58 <+568>: add x1, x20, x30, lsl #7
0x1c668bd5c <+572>: add x12, x1, x12, lsl #5
0x1c668bd60 <+576>: ldr x12, [x12, #0x10]
0x1c668bd64 <+580>: b 0x1c668bd7c ; <+604>
0x1c668bd68 <+584>: add x1, x20, x30, lsl #7
0x1c668bd6c <+588>: b 0x1c668bd74 ; <+596>
0x1c668bd70 <+592>: add x1, x27, x30, lsl #7
0x1c668bd74 <+596>: add x12, x1, x12, lsl #5
0x1c668bd78 <+600>: ldr x12, [x12, #0x8]
0x1c668bd7c <+604>: str x12, [x19, #0x8]
0x1c668bd80 <+608>: add x19, x19, #0x18 ; =0x18
0x1c668bd84 <+612>: add x7, x7, #0x8 ; =0x8
0x1c668bd88 <+616>: cmp x13, x16
0x1c668bd8c <+620>: b.lo 0x1c668bbcc ; <+172>
0x1c668bd90 <+624>: ldp x17, x1, [sp, #0x8]
0x1c668bd94 <+628>: cmp w14, #0x5 ; =0x5
0x1c668bd98 <+632>: b.eq 0x1c668bde4 ; <+708>
0x1c668bd9c <+636>: cmp w14, #0x3 ; =0x3
0x1c668bda0 <+640>: b.eq 0x1c668bdf4 ; <+724>
0x1c668bda4 <+644>: cmp w14, #0x1 ; =0x1
0x1c668bda8 <+648>: b.ne 0x1c668be1c ; <+764>
0x1c668bdac <+652>: add x9, x9, w11, sxtw
0x1c668bdb0 <+656>: adrp x8, 0
0x1c668bdb4 <+660>: add x8, x8, #0xe60 ; =0xe60
0x1c668bdb8 <+664>: orr w12, wzr, #0x18
0x1c668bdbc <+668>: add x14, sp, #0x18 ; =0x18
0x1c668bdc0 <+672>: madd x15, x13, x12, x14
0x1c668bdc4 <+676>: str x8, [x15, #0x8]
0x1c668bdc8 <+680>: add x12, x17, x1
0x1c668bdcc <+684>: add x13, x14, #0x8 ; =0x8
0x1c668bdd0 <+688>: br x8
0x1c668bdd4 <+692>: mov x13, #0x0
0x1c668bdd8 <+696>: ubfx w14, w15, #8, #3
0x1c668bddc <+700>: cmp w14, #0x5 ; =0x5
0x1c668bde0 <+704>: b.ne 0x1c668bd9c ; <+636>
0x1c668bde4 <+708>: add x9, x9, w11, sxtw #2
0x1c668bde8 <+712>: adrp x8, 0
0x1c668bdec <+716>: add x8, x8, #0xe90 ; =0xe90
0x1c668bdf0 <+720>: b 0x1c668be24 ; <+772>
0x1c668bdf4 <+724>: add x9, x9, w11, sxtw #1
0x1c668bdf8 <+728>: adrp x8, 0
0x1c668bdfc <+732>: add x8, x8, #0xe78 ; =0xe78
0x1c668be00 <+736>: orr w12, wzr, #0x18
0x1c668be04 <+740>: add x14, sp, #0x18 ; =0x18
0x1c668be08 <+744>: madd x15, x13, x12, x14
0x1c668be0c <+748>: str x8, [x15, #0x8]
0x1c668be10 <+752>: add x12, x17, x1
0x1c668be14 <+756>: add x13, x14, #0x8 ; =0x8
0x1c668be18 <+760>: br x8
0x1c668be1c <+764>: adrp x8, 0
0x1c668be20 <+768>: add x8, x8, #0xea8 ; =0xea8
0x1c668be24 <+772>: orr w12, wzr, #0x18
0x1c668be28 <+776>: add x14, sp, #0x18 ; =0x18
0x1c668be2c <+780>: madd x15, x13, x12, x14
0x1c668be30 <+784>: str x8, [x15, #0x8]
0x1c668be34 <+788>: add x12, x17, x1
0x1c668be38 <+792>: add x13, x14, #0x8 ; =0x8
0x1c668be3c <+796>: br x8
0x1c668be40 <+800>: fmov s0, wzr
0x1c668be44 <+804>: fmov s1, wzr
0x1c668be48 <+808>: fmov s2, wzr
0x1c668be4c <+812>: fmov s3, wzr
0x1c668be50 <+816>: mov x1, #0x0
0x1c668be54 <+820>: mov x2, #0x0
0x1c668be58 <+824>: bl 0x1c6689d94 ; gleRunVertexSubmitImmediate
0x1c668be5c <+828>: b 0x1c668bec4 ; <+932>
0x1c668be60 <+832>: cmp x12, x10
0x1c668be64 <+836>: b.hs 0x1c668bebc ; <+924>
0x1c668be68 <+840>: add x15, sp, #0x18 ; =0x18
0x1c668be6c <+844>: ldrb w14, [x9], #0x1
0x1c668be70 <+848>: ldr x8, [x13]
0x1c668be74 <+852>: br x8
0x1c668be78 <+856>: cmp x12, x10
0x1c668be7c <+860>: b.hs 0x1c668bebc ; <+924>
0x1c668be80 <+864>: add x15, sp, #0x18 ; =0x18
0x1c668be84 <+868>: ldrh w14, [x9], #0x2
0x1c668be88 <+872>: ldr x8, [x13]
0x1c668be8c <+876>: br x8
0x1c668be90 <+880>: cmp x12, x10
0x1c668be94 <+884>: b.hs 0x1c668bebc ; <+924>
0x1c668be98 <+888>: add x15, sp, #0x18 ; =0x18
0x1c668be9c <+892>: ldr w14, [x9], #0x4
0x1c668bea0 <+896>: ldr x8, [x13]
0x1c668bea4 <+900>: br x8
0x1c668bea8 <+904>: cmp x12, x10
0x1c668beac <+908>: b.hs 0x1c668bebc ; <+924>
0x1c668beb0 <+912>: add x15, sp, #0x18 ; =0x18
0x1c668beb4 <+916>: ldr x8, [x13]
0x1c668beb8 <+920>: br x8
0x1c668bebc <+924>: sub x8, x12, x1
0x1c668bec0 <+928>: str x8, [x0, #0x6338]
0x1c668bec4 <+932>: ldur x8, [x29, #-0x60]
0x1c668bec8 <+936>: adrp x9, 161101
0x1c668becc <+940>: ldr x9, [x9, #0x798]
0x1c668bed0 <+944>: ldr x9, [x9]
0x1c668bed4 <+948>: cmp x9, x8
0x1c668bed8 <+952>: b.ne 0x1c668befc ; <+988>
0x1c668bedc <+956>: add sp, sp, #0x1c0 ; =0x1c0
0x1c668bee0 <+960>: ldp x29, x30, [sp, #0x50]
0x1c668bee4 <+964>: ldp x20, x19, [sp, #0x40]
0x1c668bee8 <+968>: ldp x22, x21, [sp, #0x30]
0x1c668beec <+972>: ldp x24, x23, [sp, #0x20]
0x1c668bef0 <+976>: ldp x26, x25, [sp, #0x10]
0x1c668bef4 <+980>: ldp x28, x27, [sp], #0x60
0x1c668bef8 <+984>: ret
0x1c668befc <+988>: bl 0x1c5a15534 ; symbol stub for: +[RKMessageClassifier preferredLanguages]
0x1c668bf00 <+992>: str w14, [x12]
0x1c668bf04 <+996>: ldrsw x8, [x15, #0x14]
0x1c668bf08 <+1000>: add x12, x12, x8
0x1c668bf0c <+1004>: add x8, x15, #0x20 ; =0x20
0x1c668bf10 <+1008>: add x15, x15, #0x18 ; =0x18
0x1c668bf14 <+1012>: ldr x8, [x8]
0x1c668bf18 <+1016>: br x8
0x1c668bf1c <+1020>: str w11, [x12]
0x1c668bf20 <+1024>: add w11, w11, #0x1 ; =0x1
0x1c668bf24 <+1028>: ldrsw x8, [x15, #0x14]
0x1c668bf28 <+1032>: add x12, x12, x8
0x1c668bf2c <+1036>: add x8, x15, #0x20 ; =0x20
0x1c668bf30 <+1040>: add x15, x15, #0x18 ; =0x18
0x1c668bf34 <+1044>: ldr x8, [x8]
0x1c668bf38 <+1048>: br x8
0x1c668bf3c <+1052>: ldr x8, [x15]
0x1c668bf40 <+1056>: ldr w16, [x15, #0x10]
0x1c668bf44 <+1060>: add x16, x8, x16
0x1c668bf48 <+1064>: str x16, [x15]
0x1c668bf4c <+1068>: ldrb w8, [x8]
0x1c668bf50 <+1072>: strb w8, [x12]
0x1c668bf54 <+1076>: ldrsw x8, [x15, #0x14]
0x1c668bf58 <+1080>: add x12, x12, x8
0x1c668bf5c <+1084>: add x8, x15, #0x20 ; =0x20
0x1c668bf60 <+1088>: add x15, x15, #0x18 ; =0x18
0x1c668bf64 <+1092>: ldr x8, [x8]
0x1c668bf68 <+1096>: br x8
0x1c668bf6c <+1100>: ldr x8, [x15]
0x1c668bf70 <+1104>: ldr w16, [x15, #0x10]
0x1c668bf74 <+1108>: add x16, x8, x16
0x1c668bf78 <+1112>: str x16, [x15]
0x1c668bf7c <+1116>: ldrh w8, [x8]
0x1c668bf80 <+1120>: strh w8, [x12]
0x1c668bf84 <+1124>: ldrsw x8, [x15, #0x14]
0x1c668bf88 <+1128>: add x12, x12, x8
0x1c668bf8c <+1132>: add x8, x15, #0x20 ; =0x20
0x1c668bf90 <+1136>: add x15, x15, #0x18 ; =0x18
0x1c668bf94 <+1140>: ldr x8, [x8]
0x1c668bf98 <+1144>: br x8
0x1c668bf9c <+1148>: ldr x8, [x15]
0x1c668bfa0 <+1152>: ldr w16, [x15, #0x10]
0x1c668bfa4 <+1156>: add x16, x8, x16
0x1c668bfa8 <+1160>: str x16, [x15]
0x1c668bfac <+1164>: ldrh w16, [x8]
0x1c668bfb0 <+1168>: ldrb w8, [x8, #0x2]
0x1c668bfb4 <+1172>: strh w16, [x12]
0x1c668bfb8 <+1176>: strb w8, [x12, #0x2]
0x1c668bfbc <+1180>: ldrsw x8, [x15, #0x14]
0x1c668bfc0 <+1184>: add x12, x12, x8
0x1c668bfc4 <+1188>: add x8, x15, #0x20 ; =0x20
0x1c668bfc8 <+1192>: add x15, x15, #0x18 ; =0x18
0x1c668bfcc <+1196>: ldr x8, [x8]
0x1c668bfd0 <+1200>: br x8
0x1c668bfd4 <+1204>: ldr x8, [x15]
0x1c668bfd8 <+1208>: ldr w16, [x15, #0x10]
0x1c668bfdc <+1212>: add x16, x8, x16
0x1c668bfe0 <+1216>: str x16, [x15]
0x1c668bfe4 <+1220>: ldr w8, [x8]
0x1c668bfe8 <+1224>: str w8, [x12]
0x1c668bfec <+1228>: ldrsw x8, [x15, #0x14]
0x1c668bff0 <+1232>: add x12, x12, x8
0x1c668bff4 <+1236>: add x8, x15, #0x20 ; =0x20
0x1c668bff8 <+1240>: add x15, x15, #0x18 ; =0x18
0x1c668bffc <+1244>: ldr x8, [x8]
0x1c668c000 <+1248>: br x8
0x1c668c004 <+1252>: ldr x8, [x15]
0x1c668c008 <+1256>: ldr w16, [x15, #0x10]
0x1c668c00c <+1260>: add x16, x8, x16
0x1c668c010 <+1264>: str x16, [x15]
0x1c668c014 <+1268>: ldr w16, [x8]
0x1c668c018 <+1272>: str w16, [x12]
0x1c668c01c <+1276>: ldrh w8, [x8, #0x4]
0x1c668c020 <+1280>: strh w8, [x12, #0x4]
0x1c668c024 <+1284>: ldrsw x8, [x15, #0x14]
0x1c668c028 <+1288>: add x12, x12, x8
0x1c668c02c <+1292>: add x8, x15, #0x20 ; =0x20
0x1c668c030 <+1296>: add x15, x15, #0x18 ; =0x18
0x1c668c034 <+1300>: ldr x8, [x8]
0x1c668c038 <+1304>: br x8
0x1c668c03c <+1308>: ldr x8, [x15]
0x1c668c040 <+1312>: ldr w16, [x15, #0x10]
0x1c668c044 <+1316>: add x16, x8, x16
0x1c668c048 <+1320>: str x16, [x15]
0x1c668c04c <+1324>: ldr w16, [x8]
0x1c668c050 <+1328>: str w16, [x12]
0x1c668c054 <+1332>: ldr w8, [x8, #0x4]
0x1c668c058 <+1336>: str w8, [x12, #0x4]
0x1c668c05c <+1340>: ldrsw x8, [x15, #0x14]
0x1c668c060 <+1344>: add x12, x12, x8
0x1c668c064 <+1348>: add x8, x15, #0x20 ; =0x20
0x1c668c068 <+1352>: add x15, x15, #0x18 ; =0x18
0x1c668c06c <+1356>: ldr x8, [x8]
0x1c668c070 <+1360>: br x8
0x1c668c074 <+1364>: ldr x8, [x15]
0x1c668c078 <+1368>: ldr w16, [x15, #0x10]
0x1c668c07c <+1372>: add x16, x8, x16
0x1c668c080 <+1376>: str x16, [x15]
0x1c668c084 <+1380>: ldr w16, [x8]
0x1c668c088 <+1384>: str w16, [x12]
0x1c668c08c <+1388>: ldr w16, [x8, #0x4]
0x1c668c090 <+1392>: str w16, [x12, #0x4]
0x1c668c094 <+1396>: ldr w8, [x8, #0x8]
0x1c668c098 <+1400>: str w8, [x12, #0x8]
0x1c668c09c <+1404>: ldrsw x8, [x15, #0x14]
0x1c668c0a0 <+1408>: add x12, x12, x8
0x1c668c0a4 <+1412>: add x8, x15, #0x20 ; =0x20
0x1c668c0a8 <+1416>: add x15, x15, #0x18 ; =0x18
0x1c668c0ac <+1420>: ldr x8, [x8]
0x1c668c0b0 <+1424>: br x8
0x1c668c0b4 <+1428>: ldr x8, [x15]
0x1c668c0b8 <+1432>: ldr w16, [x15, #0x10]
0x1c668c0bc <+1436>: add x16, x8, x16
0x1c668c0c0 <+1440>: str x16, [x15]
0x1c668c0c4 <+1444>: ldr w16, [x8]
0x1c668c0c8 <+1448>: str w16, [x12]
0x1c668c0cc <+1452>: ldr w16, [x8, #0x4]
0x1c668c0d0 <+1456>: str w16, [x12, #0x4]
0x1c668c0d4 <+1460>: ldr w16, [x8, #0x8]
0x1c668c0d8 <+1464>: str w16, [x12, #0x8]
0x1c668c0dc <+1468>: ldr w8, [x8, #0xc]
0x1c668c0e0 <+1472>: str w8, [x12, #0xc]
0x1c668c0e4 <+1476>: ldrsw x8, [x15, #0x14]
0x1c668c0e8 <+1480>: add x12, x12, x8
0x1c668c0ec <+1484>: add x8, x15, #0x20 ; =0x20
0x1c668c0f0 <+1488>: add x15, x15, #0x18 ; =0x18
0x1c668c0f4 <+1492>: ldr x8, [x8]
0x1c668c0f8 <+1496>: br x8
0x1c668c0fc <+1500>: ldr x8, [x15]
0x1c668c100 <+1504>: ldr w16, [x15, #0x10]
0x1c668c104 <+1508>: add x16, x8, x16
0x1c668c108 <+1512>: str x16, [x15]
0x1c668c10c <+1516>: ldrh w8, [x8]
0x1c668c110 <+1520>: strh w8, [x12]
0x1c668c114 <+1524>: ldrsw x8, [x15, #0x14]
0x1c668c118 <+1528>: add x12, x12, x8
0x1c668c11c <+1532>: add x8, x15, #0x20 ; =0x20
0x1c668c120 <+1536>: add x15, x15, #0x18 ; =0x18
0x1c668c124 <+1540>: ldr x8, [x8]
0x1c668c128 <+1544>: br x8
0x1c668c12c <+1548>: ldr x8, [x15]
0x1c668c130 <+1552>: ldr w16, [x15, #0x10]
0x1c668c134 <+1556>: add x16, x8, x16
0x1c668c138 <+1560>: str x16, [x15]
0x1c668c13c <+1564>: ldr w16, [x8]
0x1c668c140 <+1568>: str w16, [x12]
0x1c668c144 <+1572>: ldrh w8, [x8, #0x4]
0x1c668c148 <+1576>: strh w8, [x12, #0x4]
0x1c668c14c <+1580>: ldrsw x8, [x15, #0x14]
0x1c668c150 <+1584>: add x12, x12, x8
0x1c668c154 <+1588>: add x8, x15, #0x20 ; =0x20
0x1c668c158 <+1592>: add x15, x15, #0x18 ; =0x18
0x1c668c15c <+1596>: ldr x8, [x8]
0x1c668c160 <+1600>: br x8
0x1c668c164 <+1604>: ldr x8, [x15]
0x1c668c168 <+1608>: ldr w16, [x15, #0x10]
0x1c668c16c <+1612>: add x16, x8, x16
0x1c668c170 <+1616>: str x16, [x15]
0x1c668c174 <+1620>: ldr w8, [x8]
0x1c668c178 <+1624>: str w8, [x12]
0x1c668c17c <+1628>: ldrsw x8, [x15, #0x14]
0x1c668c180 <+1632>: add x12, x12, x8
0x1c668c184 <+1636>: add x8, x15, #0x20 ; =0x20
0x1c668c188 <+1640>: add x15, x15, #0x18 ; =0x18
0x1c668c18c <+1644>: ldr x8, [x8]
0x1c668c190 <+1648>: br x8
0x1c668c194 <+1652>: ldr x8, [x15]
0x1c668c198 <+1656>: ldr w16, [x15, #0x10]
0x1c668c19c <+1660>: add x16, x8, x16
0x1c668c1a0 <+1664>: str x16, [x15]
0x1c668c1a4 <+1668>: ldr x8, [x8]
0x1c668c1a8 <+1672>: str x8, [x12]
0x1c668c1ac <+1676>: ldrsw x8, [x15, #0x14]
0x1c668c1b0 <+1680>: add x12, x12, x8
0x1c668c1b4 <+1684>: add x8, x15, #0x20 ; =0x20
0x1c668c1b8 <+1688>: add x15, x15, #0x18 ; =0x18
0x1c668c1bc <+1692>: ldr x8, [x8]
0x1c668c1c0 <+1696>: br x8
0x1c668c1c4 <+1700>: ldr x8, [x15]
0x1c668c1c8 <+1704>: ldr w16, [x15, #0x10]
0x1c668c1cc <+1708>: add x16, x8, x16
0x1c668c1d0 <+1712>: str x16, [x15]
0x1c668c1d4 <+1716>: ldr x16, [x8]
0x1c668c1d8 <+1720>: ldr w8, [x8, #0x8]
0x1c668c1dc <+1724>: str x16, [x12]
0x1c668c1e0 <+1728>: str w8, [x12, #0x8]
0x1c668c1e4 <+1732>: ldrsw x8, [x15, #0x14]
0x1c668c1e8 <+1736>: add x12, x12, x8
0x1c668c1ec <+1740>: add x8, x15, #0x20 ; =0x20
0x1c668c1f0 <+1744>: add x15, x15, #0x18 ; =0x18
0x1c668c1f4 <+1748>: ldr x8, [x8]
0x1c668c1f8 <+1752>: br x8
0x1c668c1fc <+1756>: ldr x8, [x15]
0x1c668c200 <+1760>: ldr w16, [x15, #0x10]
0x1c668c204 <+1764>: add x16, x8, x16
0x1c668c208 <+1768>: str x16, [x15]
0x1c668c20c <+1772>: ldr q0, [x8]
0x1c668c210 <+1776>: str q0, [x12]
0x1c668c214 <+1780>: ldrsw x8, [x15, #0x14]
0x1c668c218 <+1784>: add x12, x12, x8
0x1c668c21c <+1788>: add x8, x15, #0x20 ; =0x20
0x1c668c220 <+1792>: add x15, x15, #0x18 ; =0x18
0x1c668c224 <+1796>: ldr x8, [x8]
0x1c668c228 <+1800>: br x8
0x1c668c22c <+1804>: ldr x8, [x15]
0x1c668c230 <+1808>: ldr w16, [x15, #0x10]
0x1c668c234 <+1812>: add x16, x8, x16
0x1c668c238 <+1816>: str x16, [x15]
0x1c668c23c <+1820>: ldr w8, [x8]
0x1c668c240 <+1824>: str w8, [x12], #0x4
0x1c668c244 <+1828>: add x8, x15, #0x20 ; =0x20
0x1c668c248 <+1832>: add x15, x15, #0x18 ; =0x18
0x1c668c24c <+1836>: ldr x8, [x8]
0x1c668c250 <+1840>: br x8
0x1c668c254 <+1844>: ldr x8, [x15]
0x1c668c258 <+1848>: ldr w16, [x15, #0x10]
0x1c668c25c <+1852>: add x16, x8, x16
0x1c668c260 <+1856>: str x16, [x15]
-> 0x1c668c264 <+1860>: ldr x8, [x8]
0x1c668c268 <+1864>: str x8, [x12], #0x8
0x1c668c26c <+1868>: add x8, x15, #0x20 ; =0x20
0x1c668c270 <+1872>: add x15, x15, #0x18 ; =0x18
0x1c668c274 <+1876>: ldr x8, [x8]
0x1c668c278 <+1880>: br x8
0x1c668c27c <+1884>: ldr x8, [x15]
0x1c668c280 <+1888>: ldr w16, [x15, #0x10]
0x1c668c284 <+1892>: add x16, x8, x16
0x1c668c288 <+1896>: str x16, [x15]
0x1c668c28c <+1900>: ldr x16, [x8]
0x1c668c290 <+1904>: ldr w8, [x8, #0x8]
0x1c668c294 <+1908>: str x16, [x12]
0x1c668c298 <+1912>: str w8, [x12, #0x8]
0x1c668c29c <+1916>: add x12, x12, #0xc ; =0xc
0x1c668c2a0 <+1920>: add x8, x15, #0x20 ; =0x20
0x1c668c2a4 <+1924>: add x15, x15, #0x18 ; =0x18
0x1c668c2a8 <+1928>: ldr x8, [x8]
0x1c668c2ac <+1932>: br x8
0x1c668c2b0 <+1936>: ldr x8, [x15]
0x1c668c2b4 <+1940>: ldr w16, [x15, #0x10]
0x1c668c2b8 <+1944>: add x16, x8, x16
0x1c668c2bc <+1948>: str x16, [x15]
0x1c668c2c0 <+1952>: ldr q0, [x8]
0x1c668c2c4 <+1956>: str q0, [x12], #0x10
0x1c668c2c8 <+1960>: add x8, x15, #0x20 ; =0x20
0x1c668c2cc <+1964>: add x15, x15, #0x18 ; =0x18
0x1c668c2d0 <+1968>: ldr x8, [x8]
0x1c668c2d4 <+1972>: br x8
0x1c668c2d8 <+1976>: ldr x8, [x15]
0x1c668c2dc <+1980>: ldr w16, [x15, #0x10]
0x1c668c2e0 <+1984>: mul w16, w16, w14
0x1c668c2e4 <+1988>: ldrb w8, [x8, w16, uxtw]
0x1c668c2e8 <+1992>: strb w8, [x12]
0x1c668c2ec <+1996>: ldrsw x8, [x15, #0x14]
0x1c668c2f0 <+2000>: add x12, x12, x8
0x1c668c2f4 <+2004>: add x8, x15, #0x20 ; =0x20
0x1c668c2f8 <+2008>: add x15, x15, #0x18 ; =0x18
0x1c668c2fc <+2012>: ldr x8, [x8]
0x1c668c300 <+2016>: br x8
0x1c668c304 <+2020>: ldr x8, [x15]
0x1c668c308 <+2024>: ldr w16, [x15, #0x10]
0x1c668c30c <+2028>: mul w16, w16, w14
0x1c668c310 <+2032>: ldrh w8, [x8, w16, uxtw]
0x1c668c314 <+2036>: strh w8, [x12]
0x1c668c318 <+2040>: ldrsw x8, [x15, #0x14]
0x1c668c31c <+2044>: add x12, x12, x8
0x1c668c320 <+2048>: add x8, x15, #0x20 ; =0x20
0x1c668c324 <+2052>: add x15, x15, #0x18 ; =0x18
0x1c668c328 <+2056>: ldr x8, [x8]
0x1c668c32c <+2060>: br x8
0x1c668c330 <+2064>: ldr x8, [x15]
0x1c668c334 <+2068>: ldr w16, [x15, #0x10]
0x1c668c338 <+2072>: mul w16, w16, w14
0x1c668c33c <+2076>: add x8, x8, x16
0x1c668c340 <+2080>: ldrh w16, [x8]
0x1c668c344 <+2084>: ldrb w8, [x8, #0x2]
0x1c668c348 <+2088>: strh w16, [x12]
0x1c668c34c <+2092>: strb w8, [x12, #0x2]
0x1c668c350 <+2096>: ldrsw x8, [x15, #0x14]
0x1c668c354 <+2100>: add x12, x12, x8
0x1c668c358 <+2104>: add x8, x15, #0x20 ; =0x20
0x1c668c35c <+2108>: add x15, x15, #0x18 ; =0x18
0x1c668c360 <+2112>: ldr x8, [x8]
0x1c668c364 <+2116>: br x8
0x1c668c368 <+2120>: ldr x8, [x15]
0x1c668c36c <+2124>: ldr w16, [x15, #0x10]
0x1c668c370 <+2128>: mul w16, w16, w14
0x1c668c374 <+2132>: ldr w8, [x8, w16, uxtw]
0x1c668c378 <+2136>: str w8, [x12]
0x1c668c37c <+2140>: ldrsw x8, [x15, #0x14]
0x1c668c380 <+2144>: add x12, x12, x8
0x1c668c384 <+2148>: add x8, x15, #0x20 ; =0x20
0x1c668c388 <+2152>: add x15, x15, #0x18 ; =0x18
0x1c668c38c <+2156>: ldr x8, [x8]
0x1c668c390 <+2160>: br x8
0x1c668c394 <+2164>: ldr x8, [x15]
0x1c668c398 <+2168>: ldr w16, [x15, #0x10]
0x1c668c39c <+2172>: mul w16, w16, w14
0x1c668c3a0 <+2176>: add x8, x8, x16
0x1c668c3a4 <+2180>: ldr w16, [x8]
0x1c668c3a8 <+2184>: str w16, [x12]
0x1c668c3ac <+2188>: ldrh w8, [x8, #0x4]
0x1c668c3b0 <+2192>: strh w8, [x12, #0x4]
0x1c668c3b4 <+2196>: ldrsw x8, [x15, #0x14]
0x1c668c3b8 <+2200>: add x12, x12, x8
0x1c668c3bc <+2204>: add x8, x15, #0x20 ; =0x20
0x1c668c3c0 <+2208>: add x15, x15, #0x18 ; =0x18
0x1c668c3c4 <+2212>: ldr x8, [x8]
0x1c668c3c8 <+2216>: br x8
0x1c668c3cc <+2220>: ldr x8, [x15]
0x1c668c3d0 <+2224>: ldr w16, [x15, #0x10]
0x1c668c3d4 <+2228>: mul w16, w16, w14
0x1c668c3d8 <+2232>: add x8, x8, x16
0x1c668c3dc <+2236>: ldr w16, [x8]
0x1c668c3e0 <+2240>: str w16, [x12]
0x1c668c3e4 <+2244>: ldr w8, [x8, #0x4]
0x1c668c3e8 <+2248>: str w8, [x12, #0x4]
0x1c668c3ec <+2252>: ldrsw x8, [x15, #0x14]
0x1c668c3f0 <+2256>: add x12, x12, x8
0x1c668c3f4 <+2260>: add x8, x15, #0x20 ; =0x20
0x1c668c3f8 <+2264>: add x15, x15, #0x18 ; =0x18
0x1c668c3fc <+2268>: ldr x8, [x8]
0x1c668c400 <+2272>: br x8
0x1c668c404 <+2276>: ldr x8, [x15]
0x1c668c408 <+2280>: ldr w16, [x15, #0x10]
0x1c668c40c <+2284>: mul w16, w16, w14
0x1c668c410 <+2288>: add x8, x8, x16
0x1c668c414 <+2292>: ldr w16, [x8]
0x1c668c418 <+2296>: str w16, [x12]
0x1c668c41c <+2300>: ldr w16, [x8, #0x4]
0x1c668c420 <+2304>: str w16, [x12, #0x4]
0x1c668c424 <+2308>: ldr w8, [x8, #0x8]
0x1c668c428 <+2312>: str w8, [x12, #0x8]
0x1c668c42c <+2316>: ldrsw x8, [x15, #0x14]
0x1c668c430 <+2320>: add x12, x12, x8
0x1c668c434 <+2324>: add x8, x15, #0x20 ; =0x20
0x1c668c438 <+2328>: add x15, x15, #0x18 ; =0x18
0x1c668c43c <+2332>: ldr x8, [x8]
0x1c668c440 <+2336>: br x8
0x1c668c444 <+2340>: ldr x8, [x15]
0x1c668c448 <+2344>: ldr w16, [x15, #0x10]
0x1c668c44c <+2348>: mul w16, w16, w14
0x1c668c450 <+2352>: add x8, x8, x16
0x1c668c454 <+2356>: ldr w16, [x8]
0x1c668c458 <+2360>: str w16, [x12]
0x1c668c45c <+2364>: ldr w16, [x8, #0x4]
0x1c668c460 <+2368>: str w16, [x12, #0x4]
0x1c668c464 <+2372>: ldr w16, [x8, #0x8]
0x1c668c468 <+2376>: str w16, [x12, #0x8]
0x1c668c46c <+2380>: ldr w8, [x8, #0xc]
0x1c668c470 <+2384>: str w8, [x12, #0xc]
0x1c668c474 <+2388>: ldrsw x8, [x15, #0x14]
0x1c668c478 <+2392>: add x12, x12, x8
0x1c668c47c <+2396>: add x8, x15, #0x20 ; =0x20
0x1c668c480 <+2400>: add x15, x15, #0x18 ; =0x18
0x1c668c484 <+2404>: ldr x8, [x8]
0x1c668c488 <+2408>: br x8
0x1c668c48c <+2412>: ldr x8, [x15]
0x1c668c490 <+2416>: ldr w16, [x15, #0x10]
0x1c668c494 <+2420>: mul w16, w16, w14
0x1c668c498 <+2424>: ldrh w8, [x8, w16, uxtw]
0x1c668c49c <+2428>: strh w8, [x12]
0x1c668c4a0 <+2432>: ldrsw x8, [x15, #0x14]
0x1c668c4a4 <+2436>: add x12, x12, x8
0x1c668c4a8 <+2440>: add x8, x15, #0x20 ; =0x20
0x1c668c4ac <+2444>: add x15, x15, #0x18 ; =0x18
0x1c668c4b0 <+2448>: ldr x8, [x8]
0x1c668c4b4 <+2452>: br x8
0x1c668c4b8 <+2456>: ldr x8, [x15]
0x1c668c4bc <+2460>: ldr w16, [x15, #0x10]
0x1c668c4c0 <+2464>: mul w16, w16, w14
0x1c668c4c4 <+2468>: add x8, x8, x16
0x1c668c4c8 <+2472>: ldr w16, [x8]
0x1c668c4cc <+2476>: str w16, [x12]
0x1c668c4d0 <+2480>: ldrh w8, [x8, #0x4]
0x1c668c4d4 <+2484>: strh w8, [x12, #0x4]
0x1c668c4d8 <+2488>: ldrsw x8, [x15, #0x14]
0x1c668c4dc <+2492>: add x12, x12, x8
0x1c668c4e0 <+2496>: add x8, x15, #0x20 ; =0x20
0x1c668c4e4 <+2500>: add x15, x15, #0x18 ; =0x18
0x1c668c4e8 <+2504>: ldr x8, [x8]
0x1c668c4ec <+2508>: br x8
0x1c668c4f0 <+2512>: ldr x8, [x15]
0x1c668c4f4 <+2516>: ldr w16, [x15, #0x10]
0x1c668c4f8 <+2520>: mul w16, w16, w14
0x1c668c4fc <+2524>: ldr w8, [x8, w16, uxtw]
0x1c668c500 <+2528>: str w8, [x12]
0x1c668c504 <+2532>: ldrsw x8, [x15, #0x14]
0x1c668c508 <+2536>: add x12, x12, x8
0x1c668c50c <+2540>: add x8, x15, #0x20 ; =0x20
0x1c668c510 <+2544>: add x15, x15, #0x18 ; =0x18
0x1c668c514 <+2548>: ldr x8, [x8]
0x1c668c518 <+2552>: br x8
0x1c668c51c <+2556>: ldr x8, [x15]
0x1c668c520 <+2560>: ldr w16, [x15, #0x10]
0x1c668c524 <+2564>: mul w16, w16, w14
0x1c668c528 <+2568>: ldr x8, [x8, w16, uxtw]
0x1c668c52c <+2572>: str x8, [x12]
0x1c668c530 <+2576>: ldrsw x8, [x15, #0x14]
0x1c668c534 <+2580>: add x12, x12, x8
0x1c668c538 <+2584>: add x8, x15, #0x20 ; =0x20
0x1c668c53c <+2588>: add x15, x15, #0x18 ; =0x18
0x1c668c540 <+2592>: ldr x8, [x8]
0x1c668c544 <+2596>: br x8
0x1c668c548 <+2600>: ldr x8, [x15]
0x1c668c54c <+2604>: ldr w16, [x15, #0x10]
0x1c668c550 <+2608>: mul w16, w16, w14
0x1c668c554 <+2612>: add x8, x8, x16
0x1c668c558 <+2616>: ldr x16, [x8]
0x1c668c55c <+2620>: ldr w8, [x8, #0x8]
0x1c668c560 <+2624>: str x16, [x12]
0x1c668c564 <+2628>: str w8, [x12, #0x8]
0x1c668c568 <+2632>: ldrsw x8, [x15, #0x14]
0x1c668c56c <+2636>: add x12, x12, x8
0x1c668c570 <+2640>: add x8, x15, #0x20 ; =0x20
0x1c668c574 <+2644>: add x15, x15, #0x18 ; =0x18
0x1c668c578 <+2648>: ldr x8, [x8]
0x1c668c57c <+2652>: br x8
0x1c668c580 <+2656>: ldr x8, [x15]
0x1c668c584 <+2660>: ldr w16, [x15, #0x10]
0x1c668c588 <+2664>: mul w16, w16, w14
0x1c668c58c <+2668>: ldr q0, [x8, w16, uxtw]
0x1c668c590 <+2672>: str q0, [x12]
0x1c668c594 <+2676>: ldrsw x8, [x15, #0x14]
0x1c668c598 <+2680>: add x12, x12, x8
0x1c668c59c <+2684>: add x8, x15, #0x20 ; =0x20
0x1c668c5a0 <+2688>: add x15, x15, #0x18 ; =0x18
0x1c668c5a4 <+2692>: ldr x8, [x8]
0x1c668c5a8 <+2696>: br x8
0x1c668c5ac <+2700>: ldr x8, [x15]
0x1c668c5b0 <+2704>: ldr w16, [x15, #0x10]
0x1c668c5b4 <+2708>: mul w16, w16, w14
0x1c668c5b8 <+2712>: ldr w8, [x8, w16, uxtw]
0x1c668c5bc <+2716>: str w8, [x12], #0x4
0x1c668c5c0 <+2720>: add x8, x15, #0x20 ; =0x20
0x1c668c5c4 <+2724>: add x15, x15, #0x18 ; =0x18
0x1c668c5c8 <+2728>: ldr x8, [x8]
0x1c668c5cc <+2732>: br x8
0x1c668c5d0 <+2736>: ldr x8, [x15]
0x1c668c5d4 <+2740>: ldr w16, [x15, #0x10]
0x1c668c5d8 <+2744>: mul w16, w16, w14
0x1c668c5dc <+2748>: ldr x8, [x8, w16, uxtw]
0x1c668c5e0 <+2752>: str x8, [x12], #0x8
0x1c668c5e4 <+2756>: add x8, x15, #0x20 ; =0x20
0x1c668c5e8 <+2760>: add x15, x15, #0x18 ; =0x18
0x1c668c5ec <+2764>: ldr x8, [x8]
0x1c668c5f0 <+2768>: br x8
0x1c668c5f4 <+2772>: ldr x8, [x15]
0x1c668c5f8 <+2776>: ldr w16, [x15, #0x10]
0x1c668c5fc <+2780>: mul w16, w16, w14
0x1c668c600 <+2784>: add x8, x8, x16
0x1c668c604 <+2788>: ldr x16, [x8]
0x1c668c608 <+2792>: ldr w8, [x8, #0x8]
0x1c668c60c <+2796>: str x16, [x12]
0x1c668c610 <+2800>: str w8, [x12, #0x8]
0x1c668c614 <+2804>: add x12, x12, #0xc ; =0xc
0x1c668c618 <+2808>: add x8, x15, #0x20 ; =0x20
0x1c668c61c <+2812>: add x15, x15, #0x18 ; =0x18
0x1c668c620 <+2816>: ldr x8, [x8]
0x1c668c624 <+2820>: br x8
0x1c668c628 <+2824>: ldr x8, [x15]
0x1c668c62c <+2828>: ldr w16, [x15, #0x10]
0x1c668c630 <+2832>: mul w16, w16, w14
0x1c668c634 <+2836>: ldr q0, [x8, w16, uxtw]
0x1c668c638 <+2840>: str q0, [x12], #0x10
0x1c668c63c <+2844>: add x8, x15, #0x20 ; =0x20
0x1c668c640 <+2848>: add x15, x15, #0x18 ; =0x18
0x1c668c644 <+2852>: ldr x8, [x8]
0x1c668c648 <+2856>: br x8
0x1c668c64c <+2860>: ldrsw x8, [x15, #0x14]
0x1c668c650 <+2864>: add x12, x12, x8
0x1c668c654 <+2868>: add x8, x15, #0x20 ; =0x20
0x1c668c658 <+2872>: add x15, x15, #0x18 ; =0x18
0x1c668c65c <+2876>: ldr x8, [x8]
0x1c668c660 <+2880>: br x8
Hello, Thank you for all the info. We tried to reproduce the crash on our end on iPhone X, but we had all successful attempts. When you say that it happens quite often, can you tell us some statistics regarding it? Also, you can contact us directly at [email protected] Thanks, Branka
Quite often - about 80% of scanner launch.
Hi @khambir, Could you please send us a video of a scanning process with the crashing issue? Thanks, Branka
@Brankacro yes, sure.
As you can see, the scanner works well, but when the document in focus and I activate the passport scanner the app is broken.
Thanks @khambir for the video. Can you please try one more thing, to build the sample from the Sample folder in the root of our SDK, using the PassportRecognizer and see how it goes? How does this sound? Please, let us know. Thanks, Branka
This issue has been there specifically in SDK 5.1.0. I can reproduce it consistently in the attached sample project. Just try scanning any document that is supported by BlinkIDRecognizer multiple times. Like in the attached sample project, after the document is scanning then you will be asked to confirm if the picture taken is clear enough. Hit "Retake" on that screen to do the re-scan. Do this 2-3 times and you will see the crash. TestBlink.zip
Hi @khambir and @pankajhotwani2,
Thanks for reporting this. We've investigated this in more detail and so far it seems we've introduced a memory leak in v5.1. We'll take this with the biggest priority for the next week. If we confirm the issue and find the root cause, we'll be updating the SDK immediately after that.
We'll keep you posted.
Jurica.
Seems we have similar issue.
Hi @khambir, @pankajhotwani2, @vg-identance,
We've found a memor leak in v5.1 where there was a retain cycle between MBBlinkIDRecognizer and MBBlinkIDOverlayViewController. We've managed to fix it and we've released v5.1.1 today.
Can you try if you have the same issue with the updated SDK?
Thank you, Jurica.
Hi @Cerovec
Unfortunately, I can reproduce the crash on v.5.1.1
Hi @khambir
please send us your demo where you are getting this crash
@juraskrlec behavior is the same as here: https://github.com/BlinkID/blinkid-ios/files/4058341/video.zip
Hi,
Thank you. What puzzles us is that we cannot reproduce the same thing with our sample apps. We also ran instruments on our sample app and couldn't find any problems. See attached.
Can you:
- Try our sample app and see if the crash happens there for you?
- Run your test app through instruments (leaks) and see if your custom UI implementation has any memory leaks?
@pankajhotwani2, @vg-identance - are you still experiencing the same issue?
Thank you, Jurica.

@khambir Can you check in your Custom UI implementation how do you dismiss the Recognizer Runner View Controller? It looks like the current process is like this
- pressing scan pushes recognizer runner view controller modally
- successful scan pushes confirm image view controller modally
- hitting retake pushes another recognizer runner view controller modally
If we're right, this is the problem. You can't have multiple recognizer runner view controllers running at the same time in the same stack. You should dismiss the first one before starting another.
Looking forward to your feedback.
Jurica.
@Cerovec Thanks Jurica! I verified the new SDK version 5.1.1 and its working like a charm so the fix that you put in seems to be working correctly.
Note: If you want to cross check then you can try running the TestBlink sample project that I attached in my previous post.
Thanks Again!
Pankaj
@Cerovec we do not use multiple recognizer runner view controllers running at the same time. Everything works fine with version 5.0, but with 5.1 and 5.1.1 we have the crash. But frankly speaking, it's too hard to reproduce this crash with 5.1.1, but in any case, it is possible for me.
I tried again today with 5.1.1 in the same sample app project and today I could reproduce the issue again. So looks like there was still an issue with 5.1.1, its just that it was hard to reproduce. Sorry for the confusion..
So @Cerovec, unfortunately the issue still persist in 5.1.1. Can you confirm?
Thanks, Pankaj
@Cerovec
- Tried your sample app. Can't reproduce the issue (but may be not enough tries).
- I don't see leaks during capturing/processing stage and the issue is still exists in 5.1.1 but with may be less chance to happen.
@Cerovec Are there any plans to fix the crash in the upcoming version?
@Cerovec still get same crash on v5.2
@vg-identance @Cerovec can confirm, same crash for me on v5.2. Going to try 5.0 and see if that helps.
@vg-identance @Cerovec I can confirm that on any of the 5.0.x versions, the framework does not crash. As soon as you move to 5.1.0 it becomes unstable.
Hi @jowie @vg-identance
Please share with us your code where you are getting this crash, so we can reproduce it at our end and see what's going on.
Best, Jura
@jowie @vg-identance @pankajhotwani2
You can also contact us directly to [email protected] (if you don't want to share your code publicly).
Regards
Hi @khambir @pankajhotwani2 @vg-identance @jowie,
we were testing TestBlink project provided by pankajhotwani2.
We are getting the same crash on 5.0.0 and 5.2.0.
In provided TestBlink project, crash is solved by moving [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(customScanningComplete:) name:@"scanningComplete" object:nil];
into viewDidLoad
. Currently, on every scan observer is added.
With that, the crash was fixed on 5.0.0, but not on 5.2.0.
Since we changed the processing queue, it looks like _dict
property still holds a reference.
In - (IBAction)startScan:(id)sender
you are setting these properties to nil
.
_fullDocumentImageString = nil;
_faceImageString = nil;
_part1Scanned = NO;
If you also add in this method _dict = nil;
, the bug will be fixed and it won't crash anymore.
@TCvetkovic Solution provided worked in TestBlink project. Thanks!
The solution for my code was different. I was calling reconfigureRecognizers
during the scanning process, which it doesn't seem to like. Once I removed that, the crashes went away. 👍
@jowie, @pankajhotwani2, @vg-identance
We've managed to find a part of our OpenGL code which was fragile and sensitive to crashes if used from multiple threads. We're releasing v5.3 this week where this will be sorted out as well.
We suggest you upgrade to v5.3 so that we can test if this helps you.
@jowie, @pankajhotwani2, @vg-identance,
Can you please check if v5.3 solves your issues? It was released yesterday.
Thanks, Jurica.
@Cerovec Thanks, seems works better