File 8base_80736669542d3727c77ccda1589f9d7c17568a1d97d98ffae84afbbbf081be67.elf
Function:
Loading..
00403f88
00403f88fcontract:
00403f88stp x29, x30, [sp-128]!
00403f8cadd x29, sp, 0
00403f90str x0, [sp+24]
00403f94str x1, [sp+16]
00403f98str wzr, [sp+124]
00403f9cb 0x403fd4
00403fa0
00403fa0loc_403fa0:
00403fa0ldrsw x0, [sp+124]
00403fa4ubfm x0, x0, 61, 60
00403fa8ldr x1, [sp+16]
00403facadd x0, x1, x0
00403fb0ldr x0, [x0]
00403fb4mov w2, w0
00403fb8ldrsw x0, [sp+124]
00403fbcubfm x0, x0, 62, 61
00403fc0add x1, sp, 32
00403fc4str w2, [x1+x0]
00403fc8ldr w0, [sp+124]
00403fccadd w0, w0, 1
00403fd0str w0, [sp+124]
00403fd4
00403fd4loc_403fd4:
00403fd4ldr w0, [sp+124]
00403fd8subs wzr, w0, 9
00403fdcb.le 0x403fa0
00403fe0str wzr, [sp+120]
00403fe4b 0x4041b8
00403fe8
00403fe8loc_403fe8:
00403fe8str wzr, [sp+124]
00403fecb 0x404150
00403ff0
00403ff0loc_403ff0:
00403ff0ldr w0, [sp+124]
00403ff4and w0, w0, 1
00403ff8subs wzr, w0, 0
00403ffcb.eq 0x4040a4
00404000ldrsw x0, [sp+124]
00404004ubfm x0, x0, 62, 61
00404008add x1, sp, 32
0040400cldr w0, [x1+x0]
00404010sbfm w0, w0, 31, 31
00404014str w0, [sp+76]
00404018ldrsw x0, [sp+124]
0040401cubfm x0, x0, 62, 61
00404020add x1, sp, 32
00404024ldr w1, [x1+x0]
00404028ldr w0, [sp+76]
0040402cand w0, w1, w0
00404030sbfm w0, w0, 25, 31
00404034sub w0, wzr, w0
00404038str w0, [sp+72]
0040403cldrsw x0, [sp+124]
00404040ubfm x0, x0, 62, 61
00404044add x1, sp, 32
00404048ldr w1, [x1+x0]
0040404cldr w0, [sp+72]
00404050ubfm w0, w0, 7, 6
00404054add w2, w1, w0
00404058ldrsw x0, [sp+124]
0040405cubfm x0, x0, 62, 61
00404060add x1, sp, 32
00404064str w2, [x1+x0]
00404068ldr w0, [sp+124]
0040406cadd w0, w0, 1
00404070sbfm x0, x0, 0, 31
00404074ubfm x0, x0, 62, 61
00404078add x1, sp, 32
0040407cldr w1, [x1+x0]
00404080ldr w0, [sp+124]
00404084add w3, w0, 1
00404088ldr w0, [sp+72]
0040408csub w2, w1, w0
00404090sbfm x0, x3, 0, 31
00404094ubfm x0, x0, 62, 61
00404098add x1, sp, 32
0040409cstr w2, [x1+x0]
004040a0b 0x404144
004040a4
004040a4loc_4040a4:
004040a4ldrsw x0, [sp+124]
004040a8ubfm x0, x0, 62, 61
004040acadd x1, sp, 32
004040b0ldr w0, [x1+x0]
004040b4sbfm w0, w0, 31, 31
004040b8str w0, [sp+84]
004040bcldrsw x0, [sp+124]
004040c0ubfm x0, x0, 62, 61
004040c4add x1, sp, 32
004040c8ldr w1, [x1+x0]
004040ccldr w0, [sp+84]
004040d0and w0, w1, w0
004040d4sbfm w0, w0, 26, 31
004040d8sub w0, wzr, w0
004040dcstr w0, [sp+80]
004040e0ldrsw x0, [sp+124]
004040e4ubfm x0, x0, 62, 61
004040e8add x1, sp, 32
004040ecldr w1, [x1+x0]
004040f0ldr w0, [sp+80]
004040f4ubfm w0, w0, 6, 5
004040f8add w2, w1, w0
004040fcldrsw x0, [sp+124]
00404100ubfm x0, x0, 62, 61
00404104add x1, sp, 32
00404108str w2, [x1+x0]
0040410cldr w0, [sp+124]
00404110add w0, w0, 1
00404114sbfm x0, x0, 0, 31
00404118ubfm x0, x0, 62, 61
0040411cadd x1, sp, 32
00404120ldr w1, [x1+x0]
00404124ldr w0, [sp+124]
00404128add w3, w0, 1
0040412cldr w0, [sp+80]
00404130sub w2, w1, w0
00404134sbfm x0, x3, 0, 31
00404138ubfm x0, x0, 62, 61
0040413cadd x1, sp, 32
00404140str w2, [x1+x0]
00404144
00404144loc_404144:
00404144ldr w0, [sp+124]
00404148add w0, w0, 1
0040414cstr w0, [sp+124]
00404150
00404150loc_404150:
00404150ldr w0, [sp+124]
00404154subs wzr, w0, 8
00404158b.le 0x403ff0
0040415cldr w0, [sp+68]
00404160sbfm w0, w0, 31, 31
00404164str w0, [sp+92]
00404168ldr w1, [sp+68]
0040416cldr w0, [sp+92]
00404170and w0, w1, w0
00404174sbfm w0, w0, 25, 31
00404178sub w0, wzr, w0
0040417cstr w0, [sp+88]
00404180ldr w1, [sp+68]
00404184ldr w0, [sp+88]
00404188ubfm w0, w0, 7, 6
0040418cadd w0, w1, w0
00404190str w0, [sp+68]
00404194ldr w1, [sp+32]
00404198ldr w2, [sp+88]
0040419cmovn w0, 18
004041a0madd w0, w2, w0, wzr
004041a4add w0, w1, w0
004041a8str w0, [sp+32]
004041acldr w0, [sp+120]
004041b0add w0, w0, 1
004041b4str w0, [sp+120]
004041b8
004041b8loc_4041b8:
004041b8ldr w0, [sp+120]
004041bcsubs wzr, w0, 1
004041c0b.le 0x403fe8
004041c4ldr w0, [sp+32]
004041c8sbfm w0, w0, 31, 31
004041ccstr w0, [sp+112]
004041d0ldr w1, [sp+32]
004041d4ldr w0, [sp+112]
004041d8and w0, w1, w0
004041dcsbfm w0, w0, 26, 31
004041e0sub w0, wzr, w0
004041e4str w0, [sp+108]
004041e8ldr w1, [sp+32]
004041ecldr w0, [sp+108]
004041f0ubfm w0, w0, 6, 5
004041f4add w0, w1, w0
004041f8str w0, [sp+32]
004041fcldr w1, [sp+36]
00404200ldr w0, [sp+108]
00404204sub w0, w1, w0
00404208str w0, [sp+36]
0040420cstr wzr, [sp+120]
00404210b 0x40436c
00404214
00404214loc_404214:
00404214str wzr, [sp+124]
00404218b 0x404324
0040421c
0040421cloc_40421c:
0040421cldr w0, [sp+124]
00404220and w0, w0, 1
00404224subs wzr, w0, 0
00404228b.eq 0x4042a4
0040422cldrsw x0, [sp+124]
00404230ubfm x0, x0, 62, 61
00404234add x1, sp, 32
00404238ldr w0, [x1+x0]
0040423csbfm w0, w0, 25, 31
00404240str w0, [sp+96]
00404244ldrsw x0, [sp+124]
00404248ubfm x0, x0, 62, 61
0040424cadd x1, sp, 32
00404250ldr w0, [x1+x0]
00404254and w2, w0, 0x1ffffff
00404258ldrsw x0, [sp+124]
0040425cubfm x0, x0, 62, 61
00404260add x1, sp, 32
00404264str w2, [x1+x0]
00404268ldr w0, [sp+124]
0040426cadd w0, w0, 1
00404270sbfm x0, x0, 0, 31
00404274ubfm x0, x0, 62, 61
00404278add x1, sp, 32
0040427cldr w1, [x1+x0]
00404280ldr w0, [sp+124]
00404284add w3, w0, 1
00404288ldr w0, [sp+96]
0040428cadd w2, w1, w0
00404290sbfm x0, x3, 0, 31
00404294ubfm x0, x0, 62, 61
00404298add x1, sp, 32
0040429cstr w2, [x1+x0]
004042a0b 0x404318
004042a4
004042a4loc_4042a4:
004042a4ldrsw x0, [sp+124]
004042a8ubfm x0, x0, 62, 61
004042acadd x1, sp, 32
004042b0ldr w0, [x1+x0]
004042b4sbfm w0, w0, 26, 31
004042b8str w0, [sp+100]
004042bcldrsw x0, [sp+124]
004042c0ubfm x0, x0, 62, 61
004042c4add x1, sp, 32
004042c8ldr w0, [x1+x0]
004042ccand w2, w0, 0x3ffffff
004042d0ldrsw x0, [sp+124]
004042d4ubfm x0, x0, 62, 61
004042d8add x1, sp, 32
004042dcstr w2, [x1+x0]
004042e0ldr w0, [sp+124]
004042e4add w0, w0, 1
004042e8sbfm x0, x0, 0, 31
004042ecubfm x0, x0, 62, 61
004042f0add x1, sp, 32
004042f4ldr w1, [x1+x0]
004042f8ldr w0, [sp+124]
004042fcadd w3, w0, 1
00404300ldr w0, [sp+100]
00404304add w2, w1, w0
00404308sbfm x0, x3, 0, 31
0040430cubfm x0, x0, 62, 61
00404310add x1, sp, 32
00404314str w2, [x1+x0]
00404318
00404318loc_404318:
00404318ldr w0, [sp+124]
0040431cadd w0, w0, 1
00404320str w0, [sp+124]
00404324
00404324loc_404324:
00404324ldr w0, [sp+124]
00404328subs wzr, w0, 8
0040432cb.le 0x40421c
00404330ldr w0, [sp+68]
00404334sbfm w0, w0, 25, 31
00404338str w0, [sp+104]
0040433cldr w0, [sp+68]
00404340and w0, w0, 0x1ffffff
00404344str w0, [sp+68]
00404348ldr w1, [sp+32]
0040434cldr w2, [sp+104]
00404350movz w0, 19
00404354madd w0, w2, w0, wzr
00404358add w0, w1, w0
0040435cstr w0, [sp+32]
00404360ldr w0, [sp+120]
00404364add w0, w0, 1
00404368str w0, [sp+120]
0040436c
0040436cloc_40436c:
0040436cldr w0, [sp+120]
00404370subs wzr, w0, 1
00404374b.le 0x404214
00404378ldr w0, [sp+32]
0040437cmovz w1, 65517
00404380movk w1, 0x3ff0000
00404384bl s32_gte
00404388str w0, [sp+116]
0040438cmovz w0, 1
00404390str w0, [sp+124]
00404394b 0x404408
00404398
00404398loc_404398:
00404398ldr w0, [sp+124]
0040439cand w0, w0, 1
004043a0subs wzr, w0, 0
004043a4b.eq 0x4043d4
004043a8ldrsw x0, [sp+124]
004043acubfm x0, x0, 62, 61
004043b0add x1, sp, 32
004043b4ldr w0, [x1+x0]
004043b8movn w1, 0xfe000000
004043bcbl s32_eq
004043c0mov w1, w0
004043c4ldr w0, [sp+116]
004043c8and w0, w0, w1
004043ccstr w0, [sp+116]
004043d0b 0x4043fc
004043d4
004043d4loc_4043d4:
004043d4ldrsw x0, [sp+124]
004043d8ubfm x0, x0, 62, 61
004043dcadd x1, sp, 32
004043e0ldr w0, [x1+x0]
004043e4movn w1, 0xfc000000
004043e8bl s32_eq
004043ecmov w1, w0
004043f0ldr w0, [sp+116]
004043f4and w0, w0, w1
004043f8str w0, [sp+116]
004043fc
004043fcloc_4043fc:
004043fcldr w0, [sp+124]
00404400add w0, w0, 1
00404404str w0, [sp+124]
00404408
00404408loc_404408:
00404408ldr w0, [sp+124]
0040440csubs wzr, w0, 9
00404410b.le 0x404398
00404414ldr w1, [sp+32]
00404418ldr w2, [sp+116]
0040441cmovz w0, 65517
00404420movk w0, 0x3ff0000
00404424and w0, w2, w0
00404428sub w0, w1, w0
0040442cstr w0, [sp+32]
00404430movz w0, 1
00404434str w0, [sp+124]
00404438b 0x4044b4
0040443c
0040443cloc_40443c:
0040443cldr w0, [sp+124]
00404440and w0, w0, 1
00404444subs wzr, w0, 0
00404448b.eq 0x40447c
0040444cldrsw x0, [sp+124]
00404450ubfm x0, x0, 62, 61
00404454add x1, sp, 32
00404458ldr w1, [x1+x0]
0040445cldr w0, [sp+116]
00404460and w0, w0, 0x1ffffff
00404464sub w2, w1, w0
00404468ldrsw x0, [sp+124]
0040446cubfm x0, x0, 62, 61
00404470add x1, sp, 32
00404474str w2, [x1+x0]
00404478b 0x4044a8
0040447c
0040447cloc_40447c:
0040447cldrsw x0, [sp+124]
00404480ubfm x0, x0, 62, 61
00404484add x1, sp, 32
00404488ldr w1, [x1+x0]
0040448cldr w0, [sp+116]
00404490and w0, w0, 0x3ffffff
00404494sub w2, w1, w0
00404498ldrsw x0, [sp+124]
0040449cubfm x0, x0, 62, 61
004044a0add x1, sp, 32
004044a4str w2, [x1+x0]
004044a8
004044a8loc_4044a8:
004044a8ldr w0, [sp+124]
004044acadd w0, w0, 1
004044b0str w0, [sp+124]
004044b4
004044b4loc_4044b4:
004044b4ldr w0, [sp+124]
004044b8subs wzr, w0, 9
004044bcb.le 0x40443c
004044c0ldr w0, [sp+36]
004044c4ubfm w0, w0, 30, 29
004044c8str w0, [sp+36]
004044ccldr w0, [sp+40]
004044d0ubfm w0, w0, 29, 28
004044d4str w0, [sp+40]
004044d8ldr w0, [sp+44]
004044dcubfm w0, w0, 27, 26
004044e0str w0, [sp+44]
004044e4ldr w0, [sp+48]
004044e8ubfm w0, w0, 26, 25
004044ecstr w0, [sp+48]
004044f0ldr w0, [sp+56]
004044f4ubfm w0, w0, 31, 30
004044f8str w0, [sp+56]
004044fcldr w0, [sp+60]
00404500ubfm w0, w0, 29, 28
00404504str w0, [sp+60]
00404508ldr w0, [sp+64]
0040450cubfm w0, w0, 28, 27
00404510str w0, [sp+64]
00404514ldr w0, [sp+68]
00404518ubfm w0, w0, 26, 25
0040451cstr w0, [sp+68]
00404520ldr x0, [sp+24]
00404524strb wzr, [x0]
00404528ldr x0, [sp+24]
0040452cadd x0, x0, 16
00404530strb wzr, [x0]
00404534ldr x0, [sp+24]
00404538ldrb w0, [x0]
0040453csbfm w1, w0, 0, 7
00404540ldr w0, [sp+32]
00404544sbfm w0, w0, 0, 7
00404548orr w0, w1, w0
0040454csbfm w0, w0, 0, 7
00404550and w1, w0, 255
00404554ldr x0, [sp+24]
00404558strb w1, [x0]
0040455cldr w0, [sp+32]
00404560sbfm w1, w0, 8, 31
00404564ldr x0, [sp+24]
00404568add x0, x0, 1
0040456cand w1, w1, 255
00404570strb w1, [x0]
00404574ldr w0, [sp+32]
00404578sbfm w1, w0, 16, 31
0040457cldr x0, [sp+24]
00404580add x0, x0, 2
00404584and w1, w1, 255
00404588strb w1, [x0]
0040458cldr w0, [sp+32]
00404590ubfm w1, w0, 24, 31
00404594ldr x0, [sp+24]
00404598add x0, x0, 3
0040459cand w1, w1, 255
004045a0strb w1, [x0]
004045a4ldr x0, [sp+24]
004045a8add x0, x0, 3
004045acldrb w0, [x0]
004045b0sbfm w1, w0, 0, 7
004045b4ldr w0, [sp+36]
004045b8sbfm w0, w0, 0, 7
004045bcorr w0, w1, w0
004045c0sbfm w1, w0, 0, 7
004045c4ldr x0, [sp+24]
004045c8add x0, x0, 3
004045ccand w1, w1, 255
004045d0strb w1, [x0]
004045d4ldr w0, [sp+36]
004045d8sbfm w1, w0, 8, 31
004045dcldr x0, [sp+24]
004045e0add x0, x0, 4
004045e4and w1, w1, 255
004045e8strb w1, [x0]
004045ecldr w0, [sp+36]
004045f0sbfm w1, w0, 16, 31
004045f4ldr x0, [sp+24]
004045f8add x0, x0, 5
004045fcand w1, w1, 255
00404600strb w1, [x0]
00404604ldr w0, [sp+36]
00404608ubfm w1, w0, 24, 31
0040460cldr x0, [sp+24]
00404610add x0, x0, 6
00404614and w1, w1, 255
00404618strb w1, [x0]
0040461cldr x0, [sp+24]
00404620add x0, x0, 6
00404624ldrb w0, [x0]
00404628sbfm w1, w0, 0, 7
0040462cldr w0, [sp+40]
00404630sbfm w0, w0, 0, 7
00404634orr w0, w1, w0
00404638sbfm w1, w0, 0, 7
0040463cldr x0, [sp+24]
00404640add x0, x0, 6
00404644and w1, w1, 255
00404648strb w1, [x0]
0040464cldr w0, [sp+40]
00404650sbfm w1, w0, 8, 31
00404654ldr x0, [sp+24]
00404658add x0, x0, 7
0040465cand w1, w1, 255
00404660strb w1, [x0]
00404664ldr w0, [sp+40]
00404668sbfm w1, w0, 16, 31
0040466cldr x0, [sp+24]
00404670add x0, x0, 8
00404674and w1, w1, 255
00404678strb w1, [x0]
0040467cldr w0, [sp+40]
00404680ubfm w1, w0, 24, 31
00404684ldr x0, [sp+24]
00404688add x0, x0, 9
0040468cand w1, w1, 255
00404690strb w1, [x0]
00404694ldr x0, [sp+24]
00404698add x0, x0, 9
0040469cldrb w0, [x0]
004046a0sbfm w1, w0, 0, 7
004046a4ldr w0, [sp+44]
004046a8sbfm w0, w0, 0, 7
004046acorr w0, w1, w0
004046b0sbfm w1, w0, 0, 7
004046b4ldr x0, [sp+24]
004046b8add x0, x0, 9
004046bcand w1, w1, 255
004046c0strb w1, [x0]
004046c4ldr w0, [sp+44]
004046c8sbfm w1, w0, 8, 31
004046ccldr x0, [sp+24]
004046d0add x0, x0, 10
004046d4and w1, w1, 255
004046d8strb w1, [x0]
004046dcldr w0, [sp+44]
004046e0sbfm w1, w0, 16, 31
004046e4ldr x0, [sp+24]
004046e8add x0, x0, 11
004046ecand w1, w1, 255
004046f0strb w1, [x0]
004046f4ldr w0, [sp+44]
004046f8ubfm w1, w0, 24, 31
004046fcldr x0, [sp+24]
00404700add x0, x0, 12
00404704and w1, w1, 255
00404708strb w1, [x0]
0040470cldr x0, [sp+24]
00404710add x0, x0, 12
00404714ldrb w0, [x0]
00404718sbfm w1, w0, 0, 7
0040471cldr w0, [sp+48]
00404720sbfm w0, w0, 0, 7
00404724orr w0, w1, w0
00404728sbfm w1, w0, 0, 7
0040472cldr x0, [sp+24]
00404730add x0, x0, 12
00404734and w1, w1, 255
00404738strb w1, [x0]
0040473cldr w0, [sp+48]
00404740sbfm w1, w0, 8, 31
00404744ldr x0, [sp+24]
00404748add x0, x0, 13
0040474cand w1, w1, 255
00404750strb w1, [x0]
00404754ldr w0, [sp+48]
00404758sbfm w1, w0, 16, 31
0040475cldr x0, [sp+24]
00404760add x0, x0, 14
00404764and w1, w1, 255
00404768strb w1, [x0]
0040476cldr w0, [sp+48]
00404770ubfm w1, w0, 24, 31
00404774ldr x0, [sp+24]
00404778add x0, x0, 15
0040477cand w1, w1, 255
00404780strb w1, [x0]
00404784ldr x0, [sp+24]
00404788add x0, x0, 16
0040478cldrb w0, [x0]
00404790sbfm w1, w0, 0, 7
00404794ldr w0, [sp+52]
00404798sbfm w0, w0, 0, 7
0040479corr w0, w1, w0
004047a0sbfm w1, w0, 0, 7
004047a4ldr x0, [sp+24]
004047a8add x0, x0, 16
004047acand w1, w1, 255
004047b0strb w1, [x0]
004047b4ldr w0, [sp+52]
004047b8sbfm w1, w0, 8, 31
004047bcldr x0, [sp+24]
004047c0add x0, x0, 17
004047c4and w1, w1, 255
004047c8strb w1, [x0]
004047ccldr w0, [sp+52]
004047d0sbfm w1, w0, 16, 31
004047d4ldr x0, [sp+24]
004047d8add x0, x0, 18
004047dcand w1, w1, 255
004047e0strb w1, [x0]
004047e4ldr w0, [sp+52]
004047e8ubfm w1, w0, 24, 31
004047ecldr x0, [sp+24]
004047f0add x0, x0, 19
004047f4and w1, w1, 255
004047f8strb w1, [x0]
004047fcldr x0, [sp+24]
00404800add x0, x0, 19
00404804ldrb w0, [x0]
00404808sbfm w1, w0, 0, 7
0040480cldr w0, [sp+56]
00404810sbfm w0, w0, 0, 7
00404814orr w0, w1, w0
00404818sbfm w1, w0, 0, 7
0040481cldr x0, [sp+24]
00404820add x0, x0, 19
00404824and w1, w1, 255
00404828strb w1, [x0]
0040482cldr w0, [sp+56]
00404830sbfm w1, w0, 8, 31
00404834ldr x0, [sp+24]
00404838add x0, x0, 20
0040483cand w1, w1, 255
00404840strb w1, [x0]
00404844ldr w0, [sp+56]
00404848sbfm w1, w0, 16, 31
0040484cldr x0, [sp+24]
00404850add x0, x0, 21
00404854and w1, w1, 255
00404858strb w1, [x0]
0040485cldr w0, [sp+56]
00404860ubfm w1, w0, 24, 31
00404864ldr x0, [sp+24]
00404868add x0, x0, 22
0040486cand w1, w1, 255
00404870strb w1, [x0]
00404874ldr x0, [sp+24]
00404878add x0, x0, 22
0040487cldrb w0, [x0]
00404880sbfm w1, w0, 0, 7
00404884ldr w0, [sp+60]
00404888sbfm w0, w0, 0, 7
0040488corr w0, w1, w0
00404890sbfm w1, w0, 0, 7
00404894ldr x0, [sp+24]
00404898add x0, x0, 22
0040489cand w1, w1, 255
004048a0strb w1, [x0]
004048a4ldr w0, [sp+60]
004048a8sbfm w1, w0, 8, 31
004048acldr x0, [sp+24]
004048b0add x0, x0, 23
004048b4and w1, w1, 255
004048b8strb w1, [x0]
004048bcldr w0, [sp+60]
004048c0sbfm w1, w0, 16, 31
004048c4ldr x0, [sp+24]
004048c8add x0, x0, 24
004048ccand w1, w1, 255
004048d0strb w1, [x0]
004048d4ldr w0, [sp+60]
004048d8ubfm w1, w0, 24, 31
004048dcldr x0, [sp+24]
004048e0add x0, x0, 25
004048e4and w1, w1, 255
004048e8strb w1, [x0]
004048ecldr x0, [sp+24]
004048f0add x0, x0, 25
004048f4ldrb w0, [x0]
004048f8sbfm w1, w0, 0, 7
004048fcldr w0, [sp+64]
00404900sbfm w0, w0, 0, 7
00404904orr w0, w1, w0
00404908sbfm w1, w0, 0, 7
0040490cldr x0, [sp+24]
00404910add x0, x0, 25
00404914and w1, w1, 255
00404918strb w1, [x0]
0040491cldr w0, [sp+64]
00404920sbfm w1, w0, 8, 31
00404924ldr x0, [sp+24]
00404928add x0, x0, 26
0040492cand w1, w1, 255
00404930strb w1, [x0]
00404934ldr w0, [sp+64]
00404938sbfm w1, w0, 16, 31
0040493cldr x0, [sp+24]
00404940add x0, x0, 27
00404944and w1, w1, 255
00404948strb w1, [x0]
0040494cldr w0, [sp+64]
00404950ubfm w1, w0, 24, 31
00404954ldr x0, [sp+24]
00404958add x0, x0, 28
0040495cand w1, w1, 255
00404960strb w1, [x0]
00404964ldr x0, [sp+24]
00404968add x0, x0, 28
0040496cldrb w0, [x0]
00404970sbfm w1, w0, 0, 7
00404974ldr w0, [sp+68]
00404978sbfm w0, w0, 0, 7
0040497corr w0, w1, w0
00404980sbfm w1, w0, 0, 7
00404984ldr x0, [sp+24]
00404988add x0, x0, 28
0040498cand w1, w1, 255
00404990strb w1, [x0]
00404994ldr w0, [sp+68]
00404998sbfm w1, w0, 8, 31
0040499cldr x0, [sp+24]
004049a0add x0, x0, 29
004049a4and w1, w1, 255
004049a8strb w1, [x0]
004049acldr w0, [sp+68]
004049b0sbfm w1, w0, 16, 31
004049b4ldr x0, [sp+24]
004049b8add x0, x0, 30
004049bcand w1, w1, 255
004049c0strb w1, [x0]
004049c4ldr w0, [sp+68]
004049c8ubfm w1, w0, 24, 31
004049ccldr x0, [sp+24]
004049d0add x0, x0, 31
004049d4and w1, w1, 255
004049d8strb w1, [x0]
004049dchint
004049e0ldp x29, x30, [sp], 128
004049e4ret x30
00403f88
00403f88fcontract:
00403f88stp x29, x30, [sp-128]!
00403f8cadd x29, sp, 0
00403f90str x0, [sp+24]
00403f94str x1, [sp+16]
00403f98str wzr, [sp+124]
00403f9cb 0x403fd4
00403fa0
00403fa0loc_403fa0:
00403fa0ldrsw x0, [sp+124]
00403fa4ubfm x0, x0, 61, 60
00403fa8ldr x1, [sp+16]
00403facadd x0, x1, x0
00403fb0ldr x0, [x0]
00403fb4mov w2, w0
00403fb8ldrsw x0, [sp+124]
00403fbcubfm x0, x0, 62, 61
00403fc0add x1, sp, 32
00403fc4str w2, [x1+x0]
00403fc8ldr w0, [sp+124]
00403fccadd w0, w0, 1
00403fd0str w0, [sp+124]
00403fd4
00403fd4loc_403fd4:
00403fd4ldr w0, [sp+124]
00403fd8subs wzr, w0, 9
00403fdcb.le 0x403fa0
00403fe0str wzr, [sp+120]
00403fe4b 0x4041b8
00403fe8
00403fe8loc_403fe8:
00403fe8str wzr, [sp+124]
00403fecb 0x404150
00403ff0
00403ff0loc_403ff0:
00403ff0ldr w0, [sp+124]
00403ff4and w0, w0, 1
00403ff8subs wzr, w0, 0
00403ffcb.eq 0x4040a4
00404000ldrsw x0, [sp+124]
00404004ubfm x0, x0, 62, 61
00404008add x1, sp, 32
0040400cldr w0, [x1+x0]
00404010sbfm w0, w0, 31, 31
00404014str w0, [sp+76]
00404018ldrsw x0, [sp+124]
0040401cubfm x0, x0, 62, 61
00404020add x1, sp, 32
00404024ldr w1, [x1+x0]
00404028ldr w0, [sp+76]
0040402cand w0, w1, w0
00404030sbfm w0, w0, 25, 31
00404034sub w0, wzr, w0
00404038str w0, [sp+72]
0040403cldrsw x0, [sp+124]
00404040ubfm x0, x0, 62, 61
00404044add x1, sp, 32
00404048ldr w1, [x1+x0]
0040404cldr w0, [sp+72]
00404050ubfm w0, w0, 7, 6
00404054add w2, w1, w0
00404058ldrsw x0, [sp+124]
0040405cubfm x0, x0, 62, 61
00404060add x1, sp, 32
00404064str w2, [x1+x0]
00404068ldr w0, [sp+124]
0040406cadd w0, w0, 1
00404070sbfm x0, x0, 0, 31
00404074ubfm x0, x0, 62, 61
00404078add x1, sp, 32
0040407cldr w1, [x1+x0]
00404080ldr w0, [sp+124]
00404084add w3, w0, 1
00404088ldr w0, [sp+72]
0040408csub w2, w1, w0
00404090sbfm x0, x3, 0, 31
00404094ubfm x0, x0, 62, 61
00404098add x1, sp, 32
0040409cstr w2, [x1+x0]
004040a0b 0x404144
004040a4
004040a4loc_4040a4:
004040a4ldrsw x0, [sp+124]
004040a8ubfm x0, x0, 62, 61
004040acadd x1, sp, 32
004040b0ldr w0, [x1+x0]
004040b4sbfm w0, w0, 31, 31
004040b8str w0, [sp+84]
004040bcldrsw x0, [sp+124]
004040c0ubfm x0, x0, 62, 61
004040c4add x1, sp, 32
004040c8ldr w1, [x1+x0]
004040ccldr w0, [sp+84]
004040d0and w0, w1, w0
004040d4sbfm w0, w0, 26, 31
004040d8sub w0, wzr, w0
004040dcstr w0, [sp+80]
004040e0ldrsw x0, [sp+124]
004040e4ubfm x0, x0, 62, 61
004040e8add x1, sp, 32
004040ecldr w1, [x1+x0]
004040f0ldr w0, [sp+80]
004040f4ubfm w0, w0, 6, 5
004040f8add w2, w1, w0
004040fcldrsw x0, [sp+124]
00404100ubfm x0, x0, 62, 61
00404104add x1, sp, 32
00404108str w2, [x1+x0]
0040410cldr w0, [sp+124]
00404110add w0, w0, 1
00404114sbfm x0, x0, 0, 31
00404118ubfm x0, x0, 62, 61
0040411cadd x1, sp, 32
00404120ldr w1, [x1+x0]
00404124ldr w0, [sp+124]
00404128add w3, w0, 1
0040412cldr w0, [sp+80]
00404130sub w2, w1, w0
00404134sbfm x0, x3, 0, 31
00404138ubfm x0, x0, 62, 61
0040413cadd x1, sp, 32
00404140str w2, [x1+x0]
00404144
00404144loc_404144:
00404144ldr w0, [sp+124]
00404148add w0, w0, 1
0040414cstr w0, [sp+124]
00404150
00404150loc_404150:
00404150ldr w0, [sp+124]
00404154subs wzr, w0, 8
00404158b.le 0x403ff0
0040415cldr w0, [sp+68]
00404160sbfm w0, w0, 31, 31
00404164str w0, [sp+92]
00404168ldr w1, [sp+68]
0040416cldr w0, [sp+92]
00404170and w0, w1, w0
00404174sbfm w0, w0, 25, 31
00404178sub w0, wzr, w0
0040417cstr w0, [sp+88]
00404180ldr w1, [sp+68]
00404184ldr w0, [sp+88]
00404188ubfm w0, w0, 7, 6
0040418cadd w0, w1, w0
00404190str w0, [sp+68]
00404194ldr w1, [sp+32]
00404198ldr w2, [sp+88]
0040419cmovn w0, 18
004041a0madd w0, w2, w0, wzr
004041a4add w0, w1, w0
004041a8str w0, [sp+32]
004041acldr w0, [sp+120]
004041b0add w0, w0, 1
004041b4str w0, [sp+120]
004041b8
004041b8loc_4041b8:
004041b8ldr w0, [sp+120]
004041bcsubs wzr, w0, 1
004041c0b.le 0x403fe8
004041c4ldr w0, [sp+32]
004041c8sbfm w0, w0, 31, 31
004041ccstr w0, [sp+112]
004041d0ldr w1, [sp+32]
004041d4ldr w0, [sp+112]
004041d8and w0, w1, w0
004041dcsbfm w0, w0, 26, 31
004041e0sub w0, wzr, w0
004041e4str w0, [sp+108]
004041e8ldr w1, [sp+32]
004041ecldr w0, [sp+108]
004041f0ubfm w0, w0, 6, 5
004041f4add w0, w1, w0
004041f8str w0, [sp+32]
004041fcldr w1, [sp+36]
00404200ldr w0, [sp+108]
00404204sub w0, w1, w0
00404208str w0, [sp+36]
0040420cstr wzr, [sp+120]
00404210b 0x40436c
00404214
00404214loc_404214:
00404214str wzr, [sp+124]
00404218b 0x404324
0040421c
0040421cloc_40421c:
0040421cldr w0, [sp+124]
00404220and w0, w0, 1
00404224subs wzr, w0, 0
00404228b.eq 0x4042a4
0040422cldrsw x0, [sp+124]
00404230ubfm x0, x0, 62, 61
00404234add x1, sp, 32
00404238ldr w0, [x1+x0]
0040423csbfm w0, w0, 25, 31
00404240str w0, [sp+96]
00404244ldrsw x0, [sp+124]
00404248ubfm x0, x0, 62, 61
0040424cadd x1, sp, 32
00404250ldr w0, [x1+x0]
00404254and w2, w0, 0x1ffffff
00404258ldrsw x0, [sp+124]
0040425cubfm x0, x0, 62, 61
00404260add x1, sp, 32
00404264str w2, [x1+x0]
00404268ldr w0, [sp+124]
0040426cadd w0, w0, 1
00404270sbfm x0, x0, 0, 31
00404274ubfm x0, x0, 62, 61
00404278add x1, sp, 32
0040427cldr w1, [x1+x0]
00404280ldr w0, [sp+124]
00404284add w3, w0, 1
00404288ldr w0, [sp+96]
0040428cadd w2, w1, w0
00404290sbfm x0, x3, 0, 31
00404294ubfm x0, x0, 62, 61
00404298add x1, sp, 32
0040429cstr w2, [x1+x0]
004042a0b 0x404318
004042a4
004042a4loc_4042a4:
004042a4ldrsw x0, [sp+124]
004042a8ubfm x0, x0, 62, 61
004042acadd x1, sp, 32
004042b0ldr w0, [x1+x0]
004042b4sbfm w0, w0, 26, 31
004042b8str w0, [sp+100]
004042bcldrsw x0, [sp+124]
004042c0ubfm x0, x0, 62, 61
004042c4add x1, sp, 32
004042c8ldr w0, [x1+x0]
004042ccand w2, w0, 0x3ffffff
004042d0ldrsw x0, [sp+124]
004042d4ubfm x0, x0, 62, 61
004042d8add x1, sp, 32
004042dcstr w2, [x1+x0]
004042e0ldr w0, [sp+124]
004042e4add w0, w0, 1
004042e8sbfm x0, x0, 0, 31
004042ecubfm x0, x0, 62, 61
004042f0add x1, sp, 32
004042f4ldr w1, [x1+x0]
004042f8ldr w0, [sp+124]
004042fcadd w3, w0, 1
00404300ldr w0, [sp+100]
00404304add w2, w1, w0
00404308sbfm x0, x3, 0, 31
0040430cubfm x0, x0, 62, 61
00404310add x1, sp, 32
00404314str w2, [x1+x0]
00404318
00404318loc_404318:
00404318ldr w0, [sp+124]
0040431cadd w0, w0, 1
00404320str w0, [sp+124]
00404324
00404324loc_404324:
00404324ldr w0, [sp+124]
00404328subs wzr, w0, 8
0040432cb.le 0x40421c
00404330ldr w0, [sp+68]
00404334sbfm w0, w0, 25, 31
00404338str w0, [sp+104]
0040433cldr w0, [sp+68]
00404340and w0, w0, 0x1ffffff
00404344str w0, [sp+68]
00404348ldr w1, [sp+32]
0040434cldr w2, [sp+104]
00404350movz w0, 19
00404354madd w0, w2, w0, wzr
00404358add w0, w1, w0
0040435cstr w0, [sp+32]
00404360ldr w0, [sp+120]
00404364add w0, w0, 1
00404368str w0, [sp+120]
0040436c
0040436cloc_40436c:
0040436cldr w0, [sp+120]
00404370subs wzr, w0, 1
00404374b.le 0x404214
00404378ldr w0, [sp+32]
0040437cmovz w1, 65517
00404380movk w1, 0x3ff0000
00404384bl s32_gte
00404388str w0, [sp+116]
0040438cmovz w0, 1
00404390str w0, [sp+124]
00404394b 0x404408
00404398
00404398loc_404398:
00404398ldr w0, [sp+124]
0040439cand w0, w0, 1
004043a0subs wzr, w0, 0
004043a4b.eq 0x4043d4
004043a8ldrsw x0, [sp+124]
004043acubfm x0, x0, 62, 61
004043b0add x1, sp, 32
004043b4ldr w0, [x1+x0]
004043b8movn w1, 0xfe000000
004043bcbl s32_eq
004043c0mov w1, w0
004043c4ldr w0, [sp+116]
004043c8and w0, w0, w1
004043ccstr w0, [sp+116]
004043d0b 0x4043fc
004043d4
004043d4loc_4043d4:
004043d4ldrsw x0, [sp+124]
004043d8ubfm x0, x0, 62, 61
004043dcadd x1, sp, 32
004043e0ldr w0, [x1+x0]
004043e4movn w1, 0xfc000000
004043e8bl s32_eq
004043ecmov w1, w0
004043f0ldr w0, [sp+116]
004043f4and w0, w0, w1
004043f8str w0, [sp+116]
004043fc
004043fcloc_4043fc:
004043fcldr w0, [sp+124]
00404400add w0, w0, 1
00404404str w0, [sp+124]
00404408
00404408loc_404408:
00404408ldr w0, [sp+124]
0040440csubs wzr, w0, 9
00404410b.le 0x404398
00404414ldr w1, [sp+32]
00404418ldr w2, [sp+116]
0040441cmovz w0, 65517
00404420movk w0, 0x3ff0000
00404424and w0, w2, w0
00404428sub w0, w1, w0
0040442cstr w0, [sp+32]
00404430movz w0, 1
00404434str w0, [sp+124]
00404438b 0x4044b4
0040443c
0040443cloc_40443c:
0040443cldr w0, [sp+124]
00404440and w0, w0, 1
00404444subs wzr, w0, 0
00404448b.eq 0x40447c
0040444cldrsw x0, [sp+124]
00404450ubfm x0, x0, 62, 61
00404454add x1, sp, 32
00404458ldr w1, [x1+x0]
0040445cldr w0, [sp+116]
00404460and w0, w0, 0x1ffffff
00404464sub w2, w1, w0
00404468ldrsw x0, [sp+124]
0040446cubfm x0, x0, 62, 61
00404470add x1, sp, 32
00404474str w2, [x1+x0]
00404478b 0x4044a8
0040447c
0040447cloc_40447c:
0040447cldrsw x0, [sp+124]
00404480ubfm x0, x0, 62, 61
00404484add x1, sp, 32
00404488ldr w1, [x1+x0]
0040448cldr w0, [sp+116]
00404490and w0, w0, 0x3ffffff
00404494sub w2, w1, w0
00404498ldrsw x0, [sp+124]
0040449cubfm x0, x0, 62, 61
004044a0add x1, sp, 32
004044a4str w2, [x1+x0]
004044a8
004044a8loc_4044a8:
004044a8ldr w0, [sp+124]
004044acadd w0, w0, 1
004044b0str w0, [sp+124]
004044b4
004044b4loc_4044b4:
004044b4ldr w0, [sp+124]
004044b8subs wzr, w0, 9
004044bcb.le 0x40443c
004044c0ldr w0, [sp+36]
004044c4ubfm w0, w0, 30, 29
004044c8str w0, [sp+36]
004044ccldr w0, [sp+40]
004044d0ubfm w0, w0, 29, 28
004044d4str w0, [sp+40]
004044d8ldr w0, [sp+44]
004044dcubfm w0, w0, 27, 26
004044e0str w0, [sp+44]
004044e4ldr w0, [sp+48]
004044e8ubfm w0, w0, 26, 25
004044ecstr w0, [sp+48]
004044f0ldr w0, [sp+56]
004044f4ubfm w0, w0, 31, 30
004044f8str w0, [sp+56]
004044fcldr w0, [sp+60]
00404500ubfm w0, w0, 29, 28
00404504str w0, [sp+60]
00404508ldr w0, [sp+64]
0040450cubfm w0, w0, 28, 27
00404510str w0, [sp+64]
00404514ldr w0, [sp+68]
00404518ubfm w0, w0, 26, 25
0040451cstr w0, [sp+68]
00404520ldr x0, [sp+24]
00404524strb wzr, [x0]
00404528ldr x0, [sp+24]
0040452cadd x0, x0, 16
00404530strb wzr, [x0]
00404534ldr x0, [sp+24]
00404538ldrb w0, [x0]
0040453csbfm w1, w0, 0, 7
00404540ldr w0, [sp+32]
00404544sbfm w0, w0, 0, 7
00404548orr w0, w1, w0
0040454csbfm w0, w0, 0, 7
00404550and w1, w0, 255
00404554ldr x0, [sp+24]
00404558strb w1, [x0]
0040455cldr w0, [sp+32]
00404560sbfm w1, w0, 8, 31
00404564ldr x0, [sp+24]
00404568add x0, x0, 1
0040456cand w1, w1, 255
00404570strb w1, [x0]
00404574ldr w0, [sp+32]
00404578sbfm w1, w0, 16, 31
0040457cldr x0, [sp+24]
00404580add x0, x0, 2
00404584and w1, w1, 255
00404588strb w1, [x0]
0040458cldr w0, [sp+32]
00404590ubfm w1, w0, 24, 31
00404594ldr x0, [sp+24]
00404598add x0, x0, 3
0040459cand w1, w1, 255
004045a0strb w1, [x0]
004045a4ldr x0, [sp+24]
004045a8add x0, x0, 3
004045acldrb w0, [x0]
004045b0sbfm w1, w0, 0, 7
004045b4ldr w0, [sp+36]
004045b8sbfm w0, w0, 0, 7
004045bcorr w0, w1, w0
004045c0sbfm w1, w0, 0, 7
004045c4ldr x0, [sp+24]
004045c8add x0, x0, 3
004045ccand w1, w1, 255
004045d0strb w1, [x0]
004045d4ldr w0, [sp+36]
004045d8sbfm w1, w0, 8, 31
004045dcldr x0, [sp+24]
004045e0add x0, x0, 4
004045e4and w1, w1, 255
004045e8strb w1, [x0]
004045ecldr w0, [sp+36]
004045f0sbfm w1, w0, 16, 31
004045f4ldr x0, [sp+24]
004045f8add x0, x0, 5
004045fcand w1, w1, 255
00404600strb w1, [x0]
00404604ldr w0, [sp+36]
00404608ubfm w1, w0, 24, 31
0040460cldr x0, [sp+24]
00404610add x0, x0, 6
00404614and w1, w1, 255
00404618strb w1, [x0]
0040461cldr x0, [sp+24]
00404620add x0, x0, 6
00404624ldrb w0, [x0]
00404628sbfm w1, w0, 0, 7
0040462cldr w0, [sp+40]
00404630sbfm w0, w0, 0, 7
00404634orr w0, w1, w0
00404638sbfm w1, w0, 0, 7
0040463cldr x0, [sp+24]
00404640add x0, x0, 6
00404644and w1, w1, 255
00404648strb w1, [x0]
0040464cldr w0, [sp+40]
00404650sbfm w1, w0, 8, 31
00404654ldr x0, [sp+24]
00404658add x0, x0, 7
0040465cand w1, w1, 255
00404660strb w1, [x0]
00404664ldr w0, [sp+40]
00404668sbfm w1, w0, 16, 31
0040466cldr x0, [sp+24]
00404670add x0, x0, 8
00404674and w1, w1, 255
00404678strb w1, [x0]
0040467cldr w0, [sp+40]
00404680ubfm w1, w0, 24, 31
00404684ldr x0, [sp+24]
00404688add x0, x0, 9
0040468cand w1, w1, 255
00404690strb w1, [x0]
00404694ldr x0, [sp+24]
00404698add x0, x0, 9
0040469cldrb w0, [x0]
004046a0sbfm w1, w0, 0, 7
004046a4ldr w0, [sp+44]
004046a8sbfm w0, w0, 0, 7
004046acorr w0, w1, w0
004046b0sbfm w1, w0, 0, 7
004046b4ldr x0, [sp+24]
004046b8add x0, x0, 9
004046bcand w1, w1, 255
004046c0strb w1, [x0]
004046c4ldr w0, [sp+44]
004046c8sbfm w1, w0, 8, 31
004046ccldr x0, [sp+24]
004046d0add x0, x0, 10
004046d4and w1, w1, 255
004046d8strb w1, [x0]
004046dcldr w0, [sp+44]
004046e0sbfm w1, w0, 16, 31
004046e4ldr x0, [sp+24]
004046e8add x0, x0, 11
004046ecand w1, w1, 255
004046f0strb w1, [x0]
004046f4ldr w0, [sp+44]
004046f8ubfm w1, w0, 24, 31
004046fcldr x0, [sp+24]
00404700add x0, x0, 12
00404704and w1, w1, 255
00404708strb w1, [x0]
0040470cldr x0, [sp+24]
00404710add x0, x0, 12
00404714ldrb w0, [x0]
00404718sbfm w1, w0, 0, 7
0040471cldr w0, [sp+48]
00404720sbfm w0, w0, 0, 7
00404724orr w0, w1, w0
00404728sbfm w1, w0, 0, 7
0040472cldr x0, [sp+24]
00404730add x0, x0, 12
00404734and w1, w1, 255
00404738strb w1, [x0]
0040473cldr w0, [sp+48]
00404740sbfm w1, w0, 8, 31
00404744ldr x0, [sp+24]
00404748add x0, x0, 13
0040474cand w1, w1, 255
00404750strb w1, [x0]
00404754ldr w0, [sp+48]
00404758sbfm w1, w0, 16, 31
0040475cldr x0, [sp+24]
00404760add x0, x0, 14
00404764and w1, w1, 255
00404768strb w1, [x0]
0040476cldr w0, [sp+48]
00404770ubfm w1, w0, 24, 31
00404774ldr x0, [sp+24]
00404778add x0, x0, 15
0040477cand w1, w1, 255
00404780strb w1, [x0]
00404784ldr x0, [sp+24]
00404788add x0, x0, 16
0040478cldrb w0, [x0]
00404790sbfm w1, w0, 0, 7
00404794ldr w0, [sp+52]
00404798sbfm w0, w0, 0, 7
0040479corr w0, w1, w0
004047a0sbfm w1, w0, 0, 7
004047a4ldr x0, [sp+24]
004047a8add x0, x0, 16
004047acand w1, w1, 255
004047b0strb w1, [x0]
004047b4ldr w0, [sp+52]
004047b8sbfm w1, w0, 8, 31
004047bcldr x0, [sp+24]
004047c0add x0, x0, 17
004047c4and w1, w1, 255
004047c8strb w1, [x0]
004047ccldr w0, [sp+52]
004047d0sbfm w1, w0, 16, 31
004047d4ldr x0, [sp+24]
004047d8add x0, x0, 18
004047dcand w1, w1, 255
004047e0strb w1, [x0]
004047e4ldr w0, [sp+52]
004047e8ubfm w1, w0, 24, 31
004047ecldr x0, [sp+24]
004047f0add x0, x0, 19
004047f4and w1, w1, 255
004047f8strb w1, [x0]
004047fcldr x0, [sp+24]
00404800add x0, x0, 19
00404804ldrb w0, [x0]
00404808sbfm w1, w0, 0, 7
0040480cldr w0, [sp+56]
00404810sbfm w0, w0, 0, 7
00404814orr w0, w1, w0
00404818sbfm w1, w0, 0, 7
0040481cldr x0, [sp+24]
00404820add x0, x0, 19
00404824and w1, w1, 255
00404828strb w1, [x0]
0040482cldr w0, [sp+56]
00404830sbfm w1, w0, 8, 31
00404834ldr x0, [sp+24]
00404838add x0, x0, 20
0040483cand w1, w1, 255
00404840strb w1, [x0]
00404844ldr w0, [sp+56]
00404848sbfm w1, w0, 16, 31
0040484cldr x0, [sp+24]
00404850add x0, x0, 21
00404854and w1, w1, 255
00404858strb w1, [x0]
0040485cldr w0, [sp+56]
00404860ubfm w1, w0, 24, 31
00404864ldr x0, [sp+24]
00404868add x0, x0, 22
0040486cand w1, w1, 255
00404870strb w1, [x0]
00404874ldr x0, [sp+24]
00404878add x0, x0, 22
0040487cldrb w0, [x0]
00404880sbfm w1, w0, 0, 7
00404884ldr w0, [sp+60]
00404888sbfm w0, w0, 0, 7
0040488corr w0, w1, w0
00404890sbfm w1, w0, 0, 7
00404894ldr x0, [sp+24]
00404898add x0, x0, 22
0040489cand w1, w1, 255
004048a0strb w1, [x0]
004048a4ldr w0, [sp+60]
004048a8sbfm w1, w0, 8, 31
004048acldr x0, [sp+24]
004048b0add x0, x0, 23
004048b4and w1, w1, 255
004048b8strb w1, [x0]
004048bcldr w0, [sp+60]
004048c0sbfm w1, w0, 16, 31
004048c4ldr x0, [sp+24]
004048c8add x0, x0, 24
004048ccand w1, w1, 255
004048d0strb w1, [x0]
004048d4ldr w0, [sp+60]
004048d8ubfm w1, w0, 24, 31
004048dcldr x0, [sp+24]
004048e0add x0, x0, 25
004048e4and w1, w1, 255
004048e8strb w1, [x0]
004048ecldr x0, [sp+24]
004048f0add x0, x0, 25
004048f4ldrb w0, [x0]
004048f8sbfm w1, w0, 0, 7
004048fcldr w0, [sp+64]
00404900sbfm w0, w0, 0, 7
00404904orr w0, w1, w0
00404908sbfm w1, w0, 0, 7
0040490cldr x0, [sp+24]
00404910add x0, x0, 25
00404914and w1, w1, 255
00404918strb w1, [x0]
0040491cldr w0, [sp+64]
00404920sbfm w1, w0, 8, 31
00404924ldr x0, [sp+24]
00404928add x0, x0, 26
0040492cand w1, w1, 255
00404930strb w1, [x0]
00404934ldr w0, [sp+64]
00404938sbfm w1, w0, 16, 31
0040493cldr x0, [sp+24]
00404940add x0, x0, 27
00404944and w1, w1, 255
00404948strb w1, [x0]
0040494cldr w0, [sp+64]
00404950ubfm w1, w0, 24, 31
00404954ldr x0, [sp+24]
00404958add x0, x0, 28
0040495cand w1, w1, 255
00404960strb w1, [x0]
00404964ldr x0, [sp+24]
00404968add x0, x0, 28
0040496cldrb w0, [x0]
00404970sbfm w1, w0, 0, 7
00404974ldr w0, [sp+68]
00404978sbfm w0, w0, 0, 7
0040497corr w0, w1, w0
00404980sbfm w1, w0, 0, 7
00404984ldr x0, [sp+24]
00404988add x0, x0, 28
0040498cand w1, w1, 255
00404990strb w1, [x0]
00404994ldr w0, [sp+68]
00404998sbfm w1, w0, 8, 31
0040499cldr x0, [sp+24]
004049a0add x0, x0, 29
004049a4and w1, w1, 255
004049a8strb w1, [x0]
004049acldr w0, [sp+68]
004049b0sbfm w1, w0, 16, 31
004049b4ldr x0, [sp+24]
004049b8add x0, x0, 30
004049bcand w1, w1, 255
004049c0strb w1, [x0]
004049c4ldr w0, [sp+68]
004049c8ubfm w1, w0, 24, 31
004049ccldr x0, [sp+24]
004049d0add x0, x0, 31
004049d4and w1, w1, 255
004049d8strb w1, [x0]
004049dchint
004049e0ldp x29, x30, [sp], 128
004049e4ret x30
00403f88
004049e8
004049e8fmonty:
004049e8sub sp, sp, 1312
004049ecstp x29, x30, [sp]
004049f0add x29, sp, 0
004049f4str x0, [sp+72]
004049f8str x1, [sp+64]
004049fcstr x2, [sp+56]
00404a00str x3, [sp+48]
00404a04str x4, [sp+40]
00404a08str x5, [sp+32]
00404a0cstr x6, [sp+24]
00404a10str x7, [sp+16]
00404a14add x0, sp, 1232
00404a18movz x2, 80
00404a1cldr x1, [sp+40]
00404a20bl memcpy@plt
00404a24ldr x1, [sp+32]
00404a28ldr x0, [sp+40]
00404a2cbl fsum
00404a30add x0, sp, 1232
00404a34mov x1, x0
00404a38ldr x0, [sp+32]
00404a3cbl fdifference
00404a40add x0, sp, 1152
00404a44movz x2, 80
00404a48ldr x1, [sp+24]
00404a4cbl memcpy@plt
00404a50ldr x1, [sp+16]
00404a54ldr x0, [sp+24]
00404a58bl fsum
00404a5cadd x0, sp, 1152
00404a60mov x1, x0
00404a64ldr x0, [sp+16]
00404a68bl fdifference
00404a6cadd x0, sp, 544
00404a70ldr x2, [sp+32]
00404a74ldr x1, [sp+24]
00404a78bl fproduct
00404a7cadd x0, sp, 392
00404a80ldr x2, [sp+16]
00404a84ldr x1, [sp+40]
00404a88bl fproduct
00404a8cadd x0, sp, 544
00404a90bl freduce_degree
00404a94add x0, sp, 544
00404a98bl freduce_coefficients
00404a9cadd x0, sp, 392
00404aa0bl freduce_degree
00404aa4add x0, sp, 392
00404aa8bl freduce_coefficients
00404aacadd x0, sp, 1152
00404ab0add x1, sp, 544
00404ab4ldp q0, q1, [x1]
00404ab8stp q0, q1, [x0]
00404abcldp q0, q1, [x1+32]
00404ac0stp q0, q1, [x0+32]
00404ac4ldr q0, [x1+64]
00404ac8str q0, [x0+64]
00404accadd x1, sp, 392
00404ad0add x0, sp, 544
00404ad4bl fsum
00404ad8add x1, sp, 1152
00404adcadd x0, sp, 392
00404ae0bl fdifference
00404ae4add x1, sp, 544
00404ae8add x0, sp, 88
00404aecbl fsquare
00404af0add x1, sp, 392
00404af4add x0, sp, 240
00404af8bl fsquare
00404afcadd x1, sp, 240
00404b00add x0, sp, 392
00404b04ldr x2, [sp+1312]
00404b08bl fproduct
00404b0cadd x0, sp, 392
00404b10bl freduce_degree
00404b14add x0, sp, 392
00404b18bl freduce_coefficients
00404b1cadd x0, sp, 88
00404b20movz x2, 80
00404b24mov x1, x0
00404b28ldr x0, [sp+56]
00404b2cbl memcpy@plt
00404b30add x0, sp, 392
00404b34movz x2, 80
00404b38mov x1, x0
00404b3cldr x0, [sp+48]
00404b40bl memcpy@plt
00404b44add x0, sp, 848
00404b48ldr x1, [sp+40]
00404b4cbl fsquare
00404b50add x0, sp, 696
00404b54ldr x1, [sp+32]
00404b58bl fsquare
00404b5cadd x1, sp, 696
00404b60add x0, sp, 848
00404b64mov x2, x1
00404b68mov x1, x0
00404b6cldr x0, [sp+72]
00404b70bl fproduct
00404b74ldr x0, [sp+72]
00404b78bl freduce_degree
00404b7cldr x0, [sp+72]
00404b80bl freduce_coefficients
00404b84add x1, sp, 848
00404b88add x0, sp, 696
00404b8cbl fdifference
00404b90add x0, sp, 1000
00404b94add x0, x0, 80
00404b98movz x2, 72
00404b9cmovz w1, 0
00404ba0bl memset@plt
00404ba4add x1, sp, 696
00404ba8add x0, sp, 1000
00404bacmovz x2, 56129
00404bb0movk x2, 0x10000
00404bb4bl fscalar_product
00404bb8add x0, sp, 1000
00404bbcbl freduce_coefficients
00404bc0add x1, sp, 848
00404bc4add x0, sp, 1000
00404bc8bl fsum
00404bccadd x1, sp, 1000
00404bd0add x0, sp, 696
00404bd4mov x2, x1
00404bd8mov x1, x0
00404bdcldr x0, [sp+64]
00404be0bl fproduct
00404be4ldr x0, [sp+64]
00404be8bl freduce_degree
00404becldr x0, [sp+64]
00404bf0bl freduce_coefficients
00404bf4hint
00404bf8ldp x29, x30, [sp]
00404bfcadd sp, sp, 1312
00404c00ret x30
004049e8
004049e8fmonty:
004049e8sub sp, sp, 1312
004049ecstp x29, x30, [sp]
004049f0add x29, sp, 0
004049f4str x0, [sp+72]
004049f8str x1, [sp+64]
004049fcstr x2, [sp+56]
00404a00str x3, [sp+48]
00404a04str x4, [sp+40]
00404a08str x5, [sp+32]
00404a0cstr x6, [sp+24]
00404a10str x7, [sp+16]
00404a14add x0, sp, 1232
00404a18movz x2, 80
00404a1cldr x1, [sp+40]
00404a20bl memcpy@plt
00404a24ldr x1, [sp+32]
00404a28ldr x0, [sp+40]
00404a2cbl fsum
00404a30add x0, sp, 1232
00404a34mov x1, x0
00404a38ldr x0, [sp+32]
00404a3cbl fdifference
00404a40add x0, sp, 1152
00404a44movz x2, 80
00404a48ldr x1, [sp+24]
00404a4cbl memcpy@plt
00404a50ldr x1, [sp+16]
00404a54ldr x0, [sp+24]
00404a58bl fsum
00404a5cadd x0, sp, 1152
00404a60mov x1, x0
00404a64ldr x0, [sp+16]
00404a68bl fdifference
00404a6cadd x0, sp, 544
00404a70ldr x2, [sp+32]
00404a74ldr x1, [sp+24]
00404a78bl fproduct
00404a7cadd x0, sp, 392
00404a80ldr x2, [sp+16]
00404a84ldr x1, [sp+40]
00404a88bl fproduct
00404a8cadd x0, sp, 544
00404a90bl freduce_degree
00404a94add x0, sp, 544
00404a98bl freduce_coefficients
00404a9cadd x0, sp, 392
00404aa0bl freduce_degree
00404aa4add x0, sp, 392
00404aa8bl freduce_coefficients
00404aacadd x0, sp, 1152
00404ab0add x1, sp, 544
00404ab4ldp q0, q1, [x1]
00404ab8stp q0, q1, [x0]
00404abcldp q0, q1, [x1+32]
00404ac0stp q0, q1, [x0+32]
00404ac4ldr q0, [x1+64]
00404ac8str q0, [x0+64]
00404accadd x1, sp, 392
00404ad0add x0, sp, 544
00404ad4bl fsum
00404ad8add x1, sp, 1152
00404adcadd x0, sp, 392
00404ae0bl fdifference
00404ae4add x1, sp, 544
00404ae8add x0, sp, 88
00404aecbl fsquare
00404af0add x1, sp, 392
00404af4add x0, sp, 240
00404af8bl fsquare
00404afcadd x1, sp, 240
00404b00add x0, sp, 392
00404b04ldr x2, [sp+1312]
00404b08bl fproduct
00404b0cadd x0, sp, 392
00404b10bl freduce_degree
00404b14add x0, sp, 392
00404b18bl freduce_coefficients
00404b1cadd x0, sp, 88
00404b20movz x2, 80
00404b24mov x1, x0
00404b28ldr x0, [sp+56]
00404b2cbl memcpy@plt
00404b30add x0, sp, 392
00404b34movz x2, 80
00404b38mov x1, x0
00404b3cldr x0, [sp+48]
00404b40bl memcpy@plt
00404b44add x0, sp, 848
00404b48ldr x1, [sp+40]
00404b4cbl fsquare
00404b50add x0, sp, 696
00404b54ldr x1, [sp+32]
00404b58bl fsquare
00404b5cadd x1, sp, 696
00404b60add x0, sp, 848
00404b64mov x2, x1
00404b68mov x1, x0
00404b6cldr x0, [sp+72]
00404b70bl fproduct
00404b74ldr x0, [sp+72]
00404b78bl freduce_degree
00404b7cldr x0, [sp+72]
00404b80bl freduce_coefficients
00404b84add x1, sp, 848
00404b88add x0, sp, 696
00404b8cbl fdifference
00404b90add x0, sp, 1000
00404b94add x0, x0, 80
00404b98movz x2, 72
00404b9cmovz w1, 0
00404ba0bl memset@plt
00404ba4add x1, sp, 696
00404ba8add x0, sp, 1000
00404bacmovz x2, 56129
00404bb0movk x2, 0x10000
00404bb4bl fscalar_product
00404bb8add x0, sp, 1000
00404bbcbl freduce_coefficients
00404bc0add x1, sp, 848
00404bc4add x0, sp, 1000
00404bc8bl fsum
00404bccadd x1, sp, 1000
00404bd0add x0, sp, 696
00404bd4mov x2, x1
00404bd8mov x1, x0
00404bdcldr x0, [sp+64]
00404be0bl fproduct
00404be4ldr x0, [sp+64]
00404be8bl freduce_degree
00404becldr x0, [sp+64]
00404bf0bl freduce_coefficients
00404bf4hint
00404bf8ldp x29, x30, [sp]
00404bfcadd sp, sp, 1312
00404c00ret x30
004049e8
00404c04
00404c04swap_conditional:
00404c04sub sp, sp, 48
00404c08str x0, [sp+24]
00404c0cstr x1, [sp+16]
00404c10str x2, [sp+8]
00404c14ldr x0, [sp+8]
00404c18sub w0, wzr, w0
00404c1cstr w0, [sp+40]
00404c20str wzr, [sp+44]
00404c24b 0x404ce0
00404c28
00404c28loc_404c28:
00404c28ldr w0, [sp+44]
00404c2cubfm x0, x0, 61, 60
00404c30ldr x1, [sp+24]
00404c34add x0, x1, x0
00404c38ldr x0, [x0]
00404c3cmov w2, w0
00404c40ldr w0, [sp+44]
00404c44ubfm x0, x0, 61, 60
00404c48ldr x1, [sp+16]
00404c4cadd x0, x1, x0
00404c50ldr x0, [x0]
00404c54eor w0, w2, w0
00404c58ldr w1, [sp+40]
00404c5cand w0, w1, w0
00404c60str w0, [sp+36]
00404c64ldr w0, [sp+44]
00404c68ubfm x0, x0, 61, 60
00404c6cldr x1, [sp+24]
00404c70add x0, x1, x0
00404c74ldr x0, [x0]
00404c78mov w1, w0
00404c7cldr w0, [sp+36]
00404c80eor w2, w1, w0
00404c84ldr w0, [sp+44]
00404c88ubfm x0, x0, 61, 60
00404c8cldr x1, [sp+24]
00404c90add x0, x1, x0
00404c94sbfm x1, x2, 0, 31
00404c98str x1, [x0]
00404c9cldr w0, [sp+44]
00404ca0ubfm x0, x0, 61, 60
00404ca4ldr x1, [sp+16]
00404ca8add x0, x1, x0
00404cacldr x0, [x0]
00404cb0mov w1, w0
00404cb4ldr w0, [sp+36]
00404cb8eor w2, w1, w0
00404cbcldr w0, [sp+44]
00404cc0ubfm x0, x0, 61, 60
00404cc4ldr x1, [sp+16]
00404cc8add x0, x1, x0
00404cccsbfm x1, x2, 0, 31
00404cd0str x1, [x0]
00404cd4ldr w0, [sp+44]
00404cd8add w0, w0, 1
00404cdcstr w0, [sp+44]
00404ce0
00404ce0loc_404ce0:
00404ce0ldr w0, [sp+44]
00404ce4subs wzr, w0, 9
00404ce8b.ls 0x404c28
00404cechint
00404cf0hint
00404cf4add sp, sp, 48
00404cf8ret x30
00404c04
00404c04swap_conditional:
00404c04sub sp, sp, 48
00404c08str x0, [sp+24]
00404c0cstr x1, [sp+16]
00404c10str x2, [sp+8]
00404c14ldr x0, [sp+8]
00404c18sub w0, wzr, w0
00404c1cstr w0, [sp+40]
00404c20str wzr, [sp+44]
00404c24b 0x404ce0
00404c28
00404c28loc_404c28:
00404c28ldr w0, [sp+44]
00404c2cubfm x0, x0, 61, 60
00404c30ldr x1, [sp+24]
00404c34add x0, x1, x0
00404c38ldr x0, [x0]
00404c3cmov w2, w0
00404c40ldr w0, [sp+44]
00404c44ubfm x0, x0, 61, 60
00404c48ldr x1, [sp+16]
00404c4cadd x0, x1, x0
00404c50ldr x0, [x0]
00404c54eor w0, w2, w0
00404c58ldr w1, [sp+40]
00404c5cand w0, w1, w0
00404c60str w0, [sp+36]
00404c64ldr w0, [sp+44]
00404c68ubfm x0, x0, 61, 60
00404c6cldr x1, [sp+24]
00404c70add x0, x1, x0
00404c74ldr x0, [x0]
00404c78mov w1, w0
00404c7cldr w0, [sp+36]
00404c80eor w2, w1, w0
00404c84ldr w0, [sp+44]
00404c88ubfm x0, x0, 61, 60
00404c8cldr x1, [sp+24]
00404c90add x0, x1, x0
00404c94sbfm x1, x2, 0, 31
00404c98str x1, [x0]
00404c9cldr w0, [sp+44]
00404ca0ubfm x0, x0, 61, 60
00404ca4ldr x1, [sp+16]
00404ca8add x0, x1, x0
00404cacldr x0, [x0]
00404cb0mov w1, w0
00404cb4ldr w0, [sp+36]
00404cb8eor w2, w1, w0
00404cbcldr w0, [sp+44]
00404cc0ubfm x0, x0, 61, 60
00404cc4ldr x1, [sp+16]
00404cc8add x0, x1, x0
00404cccsbfm x1, x2, 0, 31
00404cd0str x1, [x0]
00404cd4ldr w0, [sp+44]
00404cd8add w0, w0, 1
00404cdcstr w0, [sp+44]
00404ce0
00404ce0loc_404ce0:
00404ce0ldr w0, [sp+44]
00404ce4subs wzr, w0, 9
00404ce8b.ls 0x404c28
00404cechint
00404cf0hint
00404cf4add sp, sp, 48
00404cf8ret x30
00404c04
00404cfc
00404cfccmult:
00404cfcsub sp, sp, 1376
00404d00stp x29, x30, [sp+16]
00404d04add x29, sp, 16
00404d08str x0, [sp+56]
00404d0cstr x1, [sp+48]
00404d10str x2, [sp+40]
00404d14str x3, [sp+32]
00404d18add x0, sp, 1128
00404d1cstr x0, [sp+1368]
00404d20add x0, sp, 976
00404d24str x0, [sp+1360]
00404d28add x0, sp, 824
00404d2cstr x0, [sp+1352]
00404d30add x0, sp, 672
00404d34str x0, [sp+1344]
00404d38add x0, sp, 520
00404d3cstr x0, [sp+1336]
00404d40add x0, sp, 368
00404d44str x0, [sp+1328]
00404d48add x0, sp, 216
00404d4cstr x0, [sp+1320]
00404d50add x0, sp, 64
00404d54str x0, [sp+1312]
00404d58str wzr, [sp+1308]
00404d5cb 0x404dec
00404d60
00404d60loc_404d60:
00404d60ldrsw x0, [sp+1308]
00404d64ubfm x0, x0, 61, 60
00404d68add x1, sp, 1128
00404d6cstr xzr, [x1+x0]
00404d70ldrsw x0, [sp+1308]
00404d74ubfm x0, x0, 61, 60
00404d78add x1, sp, 976
00404d7cstr xzr, [x1+x0]
00404d80ldrsw x0, [sp+1308]
00404d84ubfm x0, x0, 61, 60
00404d88add x1, sp, 824
00404d8cstr xzr, [x1+x0]
00404d90ldrsw x0, [sp+1308]
00404d94ubfm x0, x0, 61, 60
00404d98add x1, sp, 672
00404d9cstr xzr, [x1+x0]
00404da0ldrsw x0, [sp+1308]
00404da4ubfm x0, x0, 61, 60
00404da8add x1, sp, 520
00404dacstr xzr, [x1+x0]
00404db0ldrsw x0, [sp+1308]
00404db4ubfm x0, x0, 61, 60
00404db8add x1, sp, 368
00404dbcstr xzr, [x1+x0]
00404dc0ldrsw x0, [sp+1308]
00404dc4ubfm x0, x0, 61, 60
00404dc8add x1, sp, 216
00404dccstr xzr, [x1+x0]
00404dd0ldrsw x0, [sp+1308]
00404dd4ubfm x0, x0, 61, 60
00404dd8add x1, sp, 64
00404ddcstr xzr, [x1+x0]
00404de0ldr w0, [sp+1308]
00404de4add w0, w0, 1
00404de8str w0, [sp+1308]
00404dec
00404decloc_404dec:
00404decldr w0, [sp+1308]
00404df0subs wzr, w0, 18
00404df4b.le 0x404d60
00404df8movz x0, 1
00404dfcstr x0, [sp+976]
00404e00movz x0, 1
00404e04str x0, [sp+824]
00404e08movz x0, 1
00404e0cstr x0, [sp+368]
00404e10movz x0, 1
00404e14str x0, [sp+64]
00404e18movz x2, 80
00404e1cldr x1, [sp+32]
00404e20ldr x0, [sp+1368]
00404e24bl memcpy@plt
00404e28str wzr, [sp+1304]
00404e2cb 0x404f68
00404e30
00404e30loc_404e30:
00404e30movz w1, 31
00404e34ldr w0, [sp+1304]
00404e38sub w0, w1, w0
00404e3cmov w0, w0
00404e40ldr x1, [sp+40]
00404e44add x0, x1, x0
00404e48ldrb w0, [x0]
00404e4cstrb w0, [sp+1299]
00404e50str wzr, [sp+1300]
00404e54b 0x404f50
00404e58
00404e58loc_404e58:
00404e58ldrb w0, [sp+1299]
00404e5cubfm w0, w0, 7, 31
00404e60and w0, w0, 255
00404e64and x0, x0, 255
00404e68str x0, [sp+1288]
00404e6cldr x2, [sp+1288]
00404e70ldr x1, [sp+1368]
00404e74ldr x0, [sp+1352]
00404e78bl swap_conditional
00404e7cldr x2, [sp+1288]
00404e80ldr x1, [sp+1360]
00404e84ldr x0, [sp+1344]
00404e88bl swap_conditional
00404e8cldr x0, [sp+32]
00404e90str x0, [sp]
00404e94ldr x7, [sp+1360]
00404e98ldr x6, [sp+1368]
00404e9cldr x5, [sp+1344]
00404ea0ldr x4, [sp+1352]
00404ea4ldr x3, [sp+1328]
00404ea8ldr x2, [sp+1336]
00404eacldr x1, [sp+1312]
00404eb0ldr x0, [sp+1320]
00404eb4bl fmonty
00404eb8ldr x2, [sp+1288]
00404ebcldr x1, [sp+1336]
00404ec0ldr x0, [sp+1320]
00404ec4bl swap_conditional
00404ec8ldr x2, [sp+1288]
00404eccldr x1, [sp+1328]
00404ed0ldr x0, [sp+1312]
00404ed4bl swap_conditional
00404ed8ldr x0, [sp+1352]
00404edcstr x0, [sp+1280]
00404ee0ldr x0, [sp+1320]
00404ee4str x0, [sp+1352]
00404ee8ldr x0, [sp+1280]
00404eecstr x0, [sp+1320]
00404ef0ldr x0, [sp+1344]
00404ef4str x0, [sp+1280]
00404ef8ldr x0, [sp+1312]
00404efcstr x0, [sp+1344]
00404f00ldr x0, [sp+1280]
00404f04str x0, [sp+1312]
00404f08ldr x0, [sp+1368]
00404f0cstr x0, [sp+1280]
00404f10ldr x0, [sp+1336]
00404f14str x0, [sp+1368]
00404f18ldr x0, [sp+1280]
00404f1cstr x0, [sp+1336]
00404f20ldr x0, [sp+1360]
00404f24str x0, [sp+1280]
00404f28ldr x0, [sp+1328]
00404f2cstr x0, [sp+1360]
00404f30ldr x0, [sp+1280]
00404f34str x0, [sp+1328]
00404f38ldrb w0, [sp+1299]
00404f3cubfm w0, w0, 31, 6
00404f40strb w0, [sp+1299]
00404f44ldr w0, [sp+1300]
00404f48add w0, w0, 1
00404f4cstr w0, [sp+1300]
00404f50
00404f50loc_404f50:
00404f50ldr w0, [sp+1300]
00404f54subs wzr, w0, 7
00404f58b.ls 0x404e58
00404f5cldr w0, [sp+1304]
00404f60add w0, w0, 1
00404f64str w0, [sp+1304]
00404f68
00404f68loc_404f68:
00404f68ldr w0, [sp+1304]
00404f6csubs wzr, w0, 31
00404f70b.ls 0x404e30
00404f74movz x2, 80
00404f78ldr x1, [sp+1352]
00404f7cldr x0, [sp+56]
00404f80bl memcpy@plt
00404f84movz x2, 80
00404f88ldr x1, [sp+1344]
00404f8cldr x0, [sp+48]
00404f90bl memcpy@plt
00404f94hint
00404f98ldp x29, x30, [sp+16]
00404f9cadd sp, sp, 1376
00404fa0ret x30
00404cfc
00404cfccmult:
00404cfcsub sp, sp, 1376
00404d00stp x29, x30, [sp+16]
00404d04add x29, sp, 16
00404d08str x0, [sp+56]
00404d0cstr x1, [sp+48]
00404d10str x2, [sp+40]
00404d14str x3, [sp+32]
00404d18add x0, sp, 1128
00404d1cstr x0, [sp+1368]
00404d20add x0, sp, 976
00404d24str x0, [sp+1360]
00404d28add x0, sp, 824
00404d2cstr x0, [sp+1352]
00404d30add x0, sp, 672
00404d34str x0, [sp+1344]
00404d38add x0, sp, 520
00404d3cstr x0, [sp+1336]
00404d40add x0, sp, 368
00404d44str x0, [sp+1328]
00404d48add x0, sp, 216
00404d4cstr x0, [sp+1320]
00404d50add x0, sp, 64
00404d54str x0, [sp+1312]
00404d58str wzr, [sp+1308]
00404d5cb 0x404dec
00404d60
00404d60loc_404d60:
00404d60ldrsw x0, [sp+1308]
00404d64ubfm x0, x0, 61, 60
00404d68add x1, sp, 1128
00404d6cstr xzr, [x1+x0]
00404d70ldrsw x0, [sp+1308]
00404d74ubfm x0, x0, 61, 60
00404d78add x1, sp, 976
00404d7cstr xzr, [x1+x0]
00404d80ldrsw x0, [sp+1308]
00404d84ubfm x0, x0, 61, 60
00404d88add x1, sp, 824
00404d8cstr xzr, [x1+x0]
00404d90ldrsw x0, [sp+1308]
00404d94ubfm x0, x0, 61, 60
00404d98add x1, sp, 672
00404d9cstr xzr, [x1+x0]
00404da0ldrsw x0, [sp+1308]
00404da4ubfm x0, x0, 61, 60
00404da8add x1, sp, 520
00404dacstr xzr, [x1+x0]
00404db0ldrsw x0, [sp+1308]
00404db4ubfm x0, x0, 61, 60
00404db8add x1, sp, 368
00404dbcstr xzr, [x1+x0]
00404dc0ldrsw x0, [sp+1308]
00404dc4ubfm x0, x0, 61, 60
00404dc8add x1, sp, 216
00404dccstr xzr, [x1+x0]
00404dd0ldrsw x0, [sp+1308]
00404dd4ubfm x0, x0, 61, 60
00404dd8add x1, sp, 64
00404ddcstr xzr, [x1+x0]
00404de0ldr w0, [sp+1308]
00404de4add w0, w0, 1
00404de8str w0, [sp+1308]
00404dec
00404decloc_404dec:
00404decldr w0, [sp+1308]
00404df0subs wzr, w0, 18
00404df4b.le 0x404d60
00404df8movz x0, 1
00404dfcstr x0, [sp+976]
00404e00movz x0, 1
00404e04str x0, [sp+824]
00404e08movz x0, 1
00404e0cstr x0, [sp+368]
00404e10movz x0, 1
00404e14str x0, [sp+64]
00404e18movz x2, 80
00404e1cldr x1, [sp+32]
00404e20ldr x0, [sp+1368]
00404e24bl memcpy@plt
00404e28str wzr, [sp+1304]
00404e2cb 0x404f68
00404e30
00404e30loc_404e30:
00404e30movz w1, 31
00404e34ldr w0, [sp+1304]
00404e38sub w0, w1, w0
00404e3cmov w0, w0
00404e40ldr x1, [sp+40]
00404e44add x0, x1, x0
00404e48ldrb w0, [x0]
00404e4cstrb w0, [sp+1299]
00404e50str wzr, [sp+1300]
00404e54b 0x404f50
00404e58
00404e58loc_404e58:
00404e58ldrb w0, [sp+1299]
00404e5cubfm w0, w0, 7, 31
00404e60and w0, w0, 255
00404e64and x0, x0, 255
00404e68str x0, [sp+1288]
00404e6cldr x2, [sp+1288]
00404e70ldr x1, [sp+1368]
00404e74ldr x0, [sp+1352]
00404e78bl swap_conditional
00404e7cldr x2, [sp+1288]
00404e80ldr x1, [sp+1360]
00404e84ldr x0, [sp+1344]
00404e88bl swap_conditional
00404e8cldr x0, [sp+32]
00404e90str x0, [sp]
00404e94ldr x7, [sp+1360]
00404e98ldr x6, [sp+1368]
00404e9cldr x5, [sp+1344]
00404ea0ldr x4, [sp+1352]
00404ea4ldr x3, [sp+1328]
00404ea8ldr x2, [sp+1336]
00404eacldr x1, [sp+1312]
00404eb0ldr x0, [sp+1320]
00404eb4bl fmonty
00404eb8ldr x2, [sp+1288]
00404ebcldr x1, [sp+1336]
00404ec0ldr x0, [sp+1320]
00404ec4bl swap_conditional
00404ec8ldr x2, [sp+1288]
00404eccldr x1, [sp+1328]
00404ed0ldr x0, [sp+1312]
00404ed4bl swap_conditional
00404ed8ldr x0, [sp+1352]
00404edcstr x0, [sp+1280]
00404ee0ldr x0, [sp+1320]
00404ee4str x0, [sp+1352]
00404ee8ldr x0, [sp+1280]
00404eecstr x0, [sp+1320]
00404ef0ldr x0, [sp+1344]
00404ef4str x0, [sp+1280]
00404ef8ldr x0, [sp+1312]
00404efcstr x0, [sp+1344]
00404f00ldr x0, [sp+1280]
00404f04str x0, [sp+1312]
00404f08ldr x0, [sp+1368]
00404f0cstr x0, [sp+1280]
00404f10ldr x0, [sp+1336]
00404f14str x0, [sp+1368]
00404f18ldr x0, [sp+1280]
00404f1cstr x0, [sp+1336]
00404f20ldr x0, [sp+1360]
00404f24str x0, [sp+1280]
00404f28ldr x0, [sp+1328]
00404f2cstr x0, [sp+1360]
00404f30ldr x0, [sp+1280]
00404f34str x0, [sp+1328]
00404f38ldrb w0, [sp+1299]
00404f3cubfm w0, w0, 31, 6
00404f40strb w0, [sp+1299]
00404f44ldr w0, [sp+1300]
00404f48add w0, w0, 1
00404f4cstr w0, [sp+1300]
00404f50
00404f50loc_404f50:
00404f50ldr w0, [sp+1300]
00404f54subs wzr, w0, 7
00404f58b.ls 0x404e58
00404f5cldr w0, [sp+1304]
00404f60add w0, w0, 1
00404f64str w0, [sp+1304]
00404f68
00404f68loc_404f68:
00404f68ldr w0, [sp+1304]
00404f6csubs wzr, w0, 31
00404f70b.ls 0x404e30
00404f74movz x2, 80
00404f78ldr x1, [sp+1352]
00404f7cldr x0, [sp+56]
00404f80bl memcpy@plt
00404f84movz x2, 80
00404f88ldr x1, [sp+1344]
00404f8cldr x0, [sp+48]
00404f90bl memcpy@plt
00404f94hint
00404f98ldp x29, x30, [sp+16]
00404f9cadd sp, sp, 1376
00404fa0ret x30
00404cfc
00404fa4
00404fa4crecip:
00404fa4sub sp, sp, 848
00404fa8stp x29, x30, [sp]
00404facadd x29, sp, 0
00404fb0str x0, [sp+24]
00404fb4str x1, [sp+16]
00404fb8add x0, sp, 760
00404fbcldr x1, [sp+16]
00404fc0bl fsquare
00404fc4add x1, sp, 760
00404fc8add x0, sp, 40
00404fccbl fsquare
00404fd0add x1, sp, 40
00404fd4add x0, sp, 120
00404fd8bl fsquare
00404fdcadd x1, sp, 120
00404fe0add x0, sp, 680
00404fe4ldr x2, [sp+16]
00404fe8bl fmul
00404fecadd x2, sp, 760
00404ff0add x1, sp, 680
00404ff4add x0, sp, 600
00404ff8bl fmul
00404ffcadd x1, sp, 600
00405000add x0, sp, 120
00405004bl fsquare
00405008add x2, sp, 680
0040500cadd x1, sp, 120
00405010add x0, sp, 520
00405014bl fmul
00405018add x1, sp, 520
0040501cadd x0, sp, 120
00405020bl fsquare
00405024add x1, sp, 120
00405028add x0, sp, 40
0040502cbl fsquare
00405030add x1, sp, 40
00405034add x0, sp, 120
00405038bl fsquare
0040503cadd x1, sp, 120
00405040add x0, sp, 40
00405044bl fsquare
00405048add x1, sp, 40
0040504cadd x0, sp, 120
00405050bl fsquare
00405054add x2, sp, 520
00405058add x1, sp, 120
0040505cadd x0, sp, 440
00405060bl fmul
00405064add x1, sp, 440
00405068add x0, sp, 120
0040506cbl fsquare
00405070add x1, sp, 120
00405074add x0, sp, 40
00405078bl fsquare
0040507cmovz w0, 2
00405080str w0, [sp+844]
00405084b 0x4050ac
00405088
00405088loc_405088:
00405088add x1, sp, 40
0040508cadd x0, sp, 120
00405090bl fsquare
00405094add x1, sp, 120
00405098add x0, sp, 40
0040509cbl fsquare
004050a0ldr w0, [sp+844]
004050a4add w0, w0, 2
004050a8str w0, [sp+844]
004050ac
004050acloc_4050ac:
004050acldr w0, [sp+844]
004050b0subs wzr, w0, 9
004050b4b.le 0x405088
004050b8add x2, sp, 440
004050bcadd x1, sp, 40
004050c0add x0, sp, 360
004050c4bl fmul
004050c8add x1, sp, 360
004050ccadd x0, sp, 120
004050d0bl fsquare
004050d4add x1, sp, 120
004050d8add x0, sp, 40
004050dcbl fsquare
004050e0movz w0, 2
004050e4str w0, [sp+844]
004050e8b 0x405110
004050ec
004050ecloc_4050ec:
004050ecadd x1, sp, 40
004050f0add x0, sp, 120
004050f4bl fsquare
004050f8add x1, sp, 120
004050fcadd x0, sp, 40
00405100bl fsquare
00405104ldr w0, [sp+844]
00405108add w0, w0, 2
0040510cstr w0, [sp+844]
00405110
00405110loc_405110:
00405110ldr w0, [sp+844]
00405114subs wzr, w0, 19
00405118b.le 0x4050ec
0040511cadd x2, sp, 360
00405120add x1, sp, 40
00405124add x0, sp, 120
00405128bl fmul
0040512cadd x1, sp, 120
00405130add x0, sp, 40
00405134bl fsquare
00405138add x1, sp, 40
0040513cadd x0, sp, 120
00405140bl fsquare
00405144movz w0, 2
00405148str w0, [sp+844]
0040514cb 0x405174
00405150
00405150loc_405150:
00405150add x1, sp, 120
00405154add x0, sp, 40
00405158bl fsquare
0040515cadd x1, sp, 40
00405160add x0, sp, 120
00405164bl fsquare
00405168ldr w0, [sp+844]
0040516cadd w0, w0, 2
00405170str w0, [sp+844]
00405174
00405174loc_405174:
00405174ldr w0, [sp+844]
00405178subs wzr, w0, 9
0040517cb.le 0x405150
00405180add x2, sp, 440
00405184add x1, sp, 120
00405188add x0, sp, 280
0040518cbl fmul
00405190add x1, sp, 280
00405194add x0, sp, 120
00405198bl fsquare
0040519cadd x1, sp, 120
004051a0add x0, sp, 40
004051a4bl fsquare
004051a8movz w0, 2
004051acstr w0, [sp+844]
004051b0b 0x4051d8
004051b4
004051b4loc_4051b4:
004051b4add x1, sp, 40
004051b8add x0, sp, 120
004051bcbl fsquare
004051c0add x1, sp, 120
004051c4add x0, sp, 40
004051c8bl fsquare
004051ccldr w0, [sp+844]
004051d0add w0, w0, 2
004051d4str w0, [sp+844]
004051d8
004051d8loc_4051d8:
004051d8ldr w0, [sp+844]
004051dcsubs wzr, w0, 49
004051e0b.le 0x4051b4
004051e4add x2, sp, 280
004051e8add x1, sp, 40
004051ecadd x0, sp, 200
004051f0bl fmul
004051f4add x1, sp, 200
004051f8add x0, sp, 40
004051fcbl fsquare
00405200add x1, sp, 40
00405204add x0, sp, 120
00405208bl fsquare
0040520cmovz w0, 2
00405210str w0, [sp+844]
00405214b 0x40523c
00405218
00405218loc_405218:
00405218add x1, sp, 120
0040521cadd x0, sp, 40
00405220bl fsquare
00405224add x1, sp, 40
00405228add x0, sp, 120
0040522cbl fsquare
00405230ldr w0, [sp+844]
00405234add w0, w0, 2
00405238str w0, [sp+844]
0040523c
0040523cloc_40523c:
0040523cldr w0, [sp+844]
00405240subs wzr, w0, 99
00405244b.le 0x405218
00405248add x2, sp, 200
0040524cadd x1, sp, 120
00405250add x0, sp, 40
00405254bl fmul
00405258add x1, sp, 40
0040525cadd x0, sp, 120
00405260bl fsquare
00405264add x1, sp, 120
00405268add x0, sp, 40
0040526cbl fsquare
00405270movz w0, 2
00405274str w0, [sp+844]
00405278b 0x4052a0
0040527c
0040527cloc_40527c:
0040527cadd x1, sp, 40
00405280add x0, sp, 120
00405284bl fsquare
00405288add x1, sp, 120
0040528cadd x0, sp, 40
00405290bl fsquare
00405294ldr w0, [sp+844]
00405298add w0, w0, 2
0040529cstr w0, [sp+844]
004052a0
004052a0loc_4052a0:
004052a0ldr w0, [sp+844]
004052a4subs wzr, w0, 49
004052a8b.le 0x40527c
004052acadd x2, sp, 280
004052b0add x1, sp, 40
004052b4add x0, sp, 120
004052b8bl fmul
004052bcadd x1, sp, 120
004052c0add x0, sp, 40
004052c4bl fsquare
004052c8add x1, sp, 40
004052ccadd x0, sp, 120
004052d0bl fsquare
004052d4add x1, sp, 120
004052d8add x0, sp, 40
004052dcbl fsquare
004052e0add x1, sp, 40
004052e4add x0, sp, 120
004052e8bl fsquare
004052ecadd x1, sp, 120
004052f0add x0, sp, 40
004052f4bl fsquare
004052f8add x1, sp, 600
004052fcadd x0, sp, 40
00405300mov x2, x1
00405304mov x1, x0
00405308ldr x0, [sp+24]
0040530cbl fmul
00405310hint
00405314ldp x29, x30, [sp]
00405318add sp, sp, 848
0040531cret x30
00404fa4
00404fa4crecip:
00404fa4sub sp, sp, 848
00404fa8stp x29, x30, [sp]
00404facadd x29, sp, 0
00404fb0str x0, [sp+24]
00404fb4str x1, [sp+16]
00404fb8add x0, sp, 760
00404fbcldr x1, [sp+16]
00404fc0bl fsquare
00404fc4add x1, sp, 760
00404fc8add x0, sp, 40
00404fccbl fsquare
00404fd0add x1, sp, 40
00404fd4add x0, sp, 120
00404fd8bl fsquare
00404fdcadd x1, sp, 120
00404fe0add x0, sp, 680
00404fe4ldr x2, [sp+16]
00404fe8bl fmul
00404fecadd x2, sp, 760
00404ff0add x1, sp, 680
00404ff4add x0, sp, 600
00404ff8bl fmul
00404ffcadd x1, sp, 600
00405000add x0, sp, 120
00405004bl fsquare
00405008add x2, sp, 680
0040500cadd x1, sp, 120
00405010add x0, sp, 520
00405014bl fmul
00405018add x1, sp, 520
0040501cadd x0, sp, 120
00405020bl fsquare
00405024add x1, sp, 120
00405028add x0, sp, 40
0040502cbl fsquare
00405030add x1, sp, 40
00405034add x0, sp, 120
00405038bl fsquare
0040503cadd x1, sp, 120
00405040add x0, sp, 40
00405044bl fsquare
00405048add x1, sp, 40
0040504cadd x0, sp, 120
00405050bl fsquare
00405054add x2, sp, 520
00405058add x1, sp, 120
0040505cadd x0, sp, 440
00405060bl fmul
00405064add x1, sp, 440
00405068add x0, sp, 120
0040506cbl fsquare
00405070add x1, sp, 120
00405074add x0, sp, 40
00405078bl fsquare
0040507cmovz w0, 2
00405080str w0, [sp+844]
00405084b 0x4050ac
00405088
00405088loc_405088:
00405088add x1, sp, 40
0040508cadd x0, sp, 120
00405090bl fsquare
00405094add x1, sp, 120
00405098add x0, sp, 40
0040509cbl fsquare
004050a0ldr w0, [sp+844]
004050a4add w0, w0, 2
004050a8str w0, [sp+844]
004050ac
004050acloc_4050ac:
004050acldr w0, [sp+844]
004050b0subs wzr, w0, 9
004050b4b.le 0x405088
004050b8add x2, sp, 440
004050bcadd x1, sp, 40
004050c0add x0, sp, 360
004050c4bl fmul
004050c8add x1, sp, 360
004050ccadd x0, sp, 120
004050d0bl fsquare
004050d4add x1, sp, 120
004050d8add x0, sp, 40
004050dcbl fsquare
004050e0movz w0, 2
004050e4str w0, [sp+844]
004050e8b 0x405110
004050ec
004050ecloc_4050ec:
004050ecadd x1, sp, 40
004050f0add x0, sp, 120
004050f4bl fsquare
004050f8add x1, sp, 120
004050fcadd x0, sp, 40
00405100bl fsquare
00405104ldr w0, [sp+844]
00405108add w0, w0, 2
0040510cstr w0, [sp+844]
00405110
00405110loc_405110:
00405110ldr w0, [sp+844]
00405114subs wzr, w0, 19
00405118b.le 0x4050ec
0040511cadd x2, sp, 360
00405120add x1, sp, 40
00405124add x0, sp, 120
00405128bl fmul
0040512cadd x1, sp, 120
00405130add x0, sp, 40
00405134bl fsquare
00405138add x1, sp, 40
0040513cadd x0, sp, 120
00405140bl fsquare
00405144movz w0, 2
00405148str w0, [sp+844]
0040514cb 0x405174
00405150
00405150loc_405150:
00405150add x1, sp, 120
00405154add x0, sp, 40
00405158bl fsquare
0040515cadd x1, sp, 40
00405160add x0, sp, 120
00405164bl fsquare
00405168ldr w0, [sp+844]
0040516cadd w0, w0, 2
00405170str w0, [sp+844]
00405174
00405174loc_405174:
00405174ldr w0, [sp+844]
00405178subs wzr, w0, 9
0040517cb.le 0x405150
00405180add x2, sp, 440
00405184add x1, sp, 120
00405188add x0, sp, 280
0040518cbl fmul
00405190add x1, sp, 280
00405194add x0, sp, 120
00405198bl fsquare
0040519cadd x1, sp, 120
004051a0add x0, sp, 40
004051a4bl fsquare
004051a8movz w0, 2
004051acstr w0, [sp+844]
004051b0b 0x4051d8
004051b4
004051b4loc_4051b4:
004051b4add x1, sp, 40
004051b8add x0, sp, 120
004051bcbl fsquare
004051c0add x1, sp, 120
004051c4add x0, sp, 40
004051c8bl fsquare
004051ccldr w0, [sp+844]
004051d0add w0, w0, 2
004051d4str w0, [sp+844]
004051d8
004051d8loc_4051d8:
004051d8ldr w0, [sp+844]
004051dcsubs wzr, w0, 49
004051e0b.le 0x4051b4
004051e4add x2, sp, 280
004051e8add x1, sp, 40
004051ecadd x0, sp, 200
004051f0bl fmul
004051f4add x1, sp, 200
004051f8add x0, sp, 40
004051fcbl fsquare
00405200add x1, sp, 40
00405204add x0, sp, 120
00405208bl fsquare
0040520cmovz w0, 2
00405210str w0, [sp+844]
00405214b 0x40523c
00405218
00405218loc_405218:
00405218add x1, sp, 120
0040521cadd x0, sp, 40
00405220bl fsquare
00405224add x1, sp, 40
00405228add x0, sp, 120
0040522cbl fsquare
00405230ldr w0, [sp+844]
00405234add w0, w0, 2
00405238str w0, [sp+844]
0040523c
0040523cloc_40523c:
0040523cldr w0, [sp+844]
00405240subs wzr, w0, 99
00405244b.le 0x405218
00405248add x2, sp, 200
0040524cadd x1, sp, 120
00405250add x0, sp, 40
00405254bl fmul
00405258add x1, sp, 40
0040525cadd x0, sp, 120
00405260bl fsquare
00405264add x1, sp, 120
00405268add x0, sp, 40
0040526cbl fsquare
00405270movz w0, 2
00405274str w0, [sp+844]
00405278b 0x4052a0
0040527c
0040527cloc_40527c:
0040527cadd x1, sp, 40
00405280add x0, sp, 120
00405284bl fsquare
00405288add x1, sp, 120
0040528cadd x0, sp, 40
00405290bl fsquare
00405294ldr w0, [sp+844]
00405298add w0, w0, 2
0040529cstr w0, [sp+844]
004052a0
004052a0loc_4052a0:
004052a0ldr w0, [sp+844]
004052a4subs wzr, w0, 49
004052a8b.le 0x40527c
004052acadd x2, sp, 280
004052b0add x1, sp, 40
004052b4add x0, sp, 120
004052b8bl fmul
004052bcadd x1, sp, 120
004052c0add x0, sp, 40
004052c4bl fsquare
004052c8add x1, sp, 40
004052ccadd x0, sp, 120
004052d0bl fsquare
004052d4add x1, sp, 120
004052d8add x0, sp, 40
004052dcbl fsquare
004052e0add x1, sp, 40
004052e4add x0, sp, 120
004052e8bl fsquare
004052ecadd x1, sp, 120
004052f0add x0, sp, 40
004052f4bl fsquare
004052f8add x1, sp, 600
004052fcadd x0, sp, 40
00405300mov x2, x1
00405304mov x1, x0
00405308ldr x0, [sp+24]
0040530cbl fmul
00405310hint
00405314ldp x29, x30, [sp]
00405318add sp, sp, 848
0040531cret x30
00404fa4
00405320
00405320curve25519_donna:
00405320stp x29, x30, [sp-416]!
00405324add x29, sp, 0
00405328str x0, [sp+40]
0040532cstr x1, [sp+32]
00405330str x2, [sp+24]
00405334str wzr, [sp+412]
00405338b 0x405364
0040533c
0040533cloc_40533c:
0040533cldrsw x0, [sp+412]
00405340ldr x1, [sp+32]
00405344add x0, x1, x0
00405348ldrb w2, [x0]
0040534cldrsw x0, [sp+412]
00405350add x1, sp, 48
00405354strb w2, [x1+x0]
00405358ldr w0, [sp+412]
0040535cadd w0, w0, 1
00405360str w0, [sp+412]
00405364
00405364loc_405364:
00405364ldr w0, [sp+412]
00405368subs wzr, w0, 31
0040536cb.le 0x40533c
00405370ldrb w0, [sp+48]
00405374and w0, w0, 0xfffffff8
00405378and w0, w0, 255
0040537cstrb w0, [sp+48]
00405380ldrb w0, [sp+79]
00405384and w0, w0, 127
00405388and w0, w0, 255
0040538cstrb w0, [sp+79]
00405390ldrb w0, [sp+79]
00405394orr w0, w0, 64
00405398and w0, w0, 255
0040539cstrb w0, [sp+79]
004053a0add x0, sp, 328
004053a4ldr x1, [sp+24]
004053a8bl fexpand
004053acadd x3, sp, 328
004053b0add x2, sp, 48
004053b4add x1, sp, 160
004053b8add x0, sp, 248
004053bcbl cmult
004053c0add x1, sp, 160
004053c4add x0, sp, 80
004053c8bl crecip
004053ccadd x2, sp, 80
004053d0add x1, sp, 248
004053d4add x0, sp, 160
004053d8bl fmul
004053dcadd x0, sp, 160
004053e0mov x1, x0
004053e4ldr x0, [sp+40]
004053e8bl fcontract
004053ecmovz w0, 0
004053f0ldp x29, x30, [sp], 416
004053f4ret x30
00405320
00405320curve25519_donna:
00405320stp x29, x30, [sp-416]!
00405324add x29, sp, 0
00405328str x0, [sp+40]
0040532cstr x1, [sp+32]
00405330str x2, [sp+24]
00405334str wzr, [sp+412]
00405338b 0x405364
0040533c
0040533cloc_40533c:
0040533cldrsw x0, [sp+412]
00405340ldr x1, [sp+32]
00405344add x0, x1, x0
00405348ldrb w2, [x0]
0040534cldrsw x0, [sp+412]
00405350add x1, sp, 48
00405354strb w2, [x1+x0]
00405358ldr w0, [sp+412]
0040535cadd w0, w0, 1
00405360str w0, [sp+412]
00405364
00405364loc_405364:
00405364ldr w0, [sp+412]
00405368subs wzr, w0, 31
0040536cb.le 0x40533c
00405370ldrb w0, [sp+48]
00405374and w0, w0, 0xfffffff8
00405378and w0, w0, 255
0040537cstrb w0, [sp+48]
00405380ldrb w0, [sp+79]
00405384and w0, w0, 127
00405388and w0, w0, 255
0040538cstrb w0, [sp+79]
00405390ldrb w0, [sp+79]
00405394orr w0, w0, 64
00405398and w0, w0, 255
0040539cstrb w0, [sp+79]
004053a0add x0, sp, 328
004053a4ldr x1, [sp+24]
004053a8bl fexpand
004053acadd x3, sp, 328
004053b0add x2, sp, 48
004053b4add x1, sp, 160
004053b8add x0, sp, 248
004053bcbl cmult
004053c0add x1, sp, 160
004053c4add x0, sp, 80
004053c8bl crecip
004053ccadd x2, sp, 80
004053d0add x1, sp, 248
004053d4add x0, sp, 160
004053d8bl fmul
004053dcadd x0, sp, 160
004053e0mov x1, x0
004053e4ldr x0, [sp+40]
004053e8bl fcontract
004053ecmovz w0, 0
004053f0ldp x29, x30, [sp], 416
004053f4ret x30
00405320
004053f8
004053f8_bswapw:
004053f8sub sp, sp, 16
004053fcstr x0, [sp+8]
00405400str w1, [sp+4]
00405404b 0x405458
00405408
00405408loc_405408:
00405408ldr w0, [sp+4]
0040540cubfm x0, x0, 62, 61
00405410ldr x1, [sp+8]
00405414add x0, x1, x0
00405418ldr w0, [x0]
0040541cextr w0, w0, w0, 24
00405420and w2, w0, 0xff00ff
00405424ldr w0, [sp+4]
00405428ubfm x0, x0, 62, 61
0040542cldr x1, [sp+8]
00405430add x0, x1, x0
00405434ldr w0, [x0]
00405438extr w0, w0, w0, 8
0040543cand w1, w0, 0xff00ff00
00405440ldr w0, [sp+4]
00405444ubfm x0, x0, 62, 61
00405448ldr x3, [sp+8]
0040544cadd x0, x3, x0
00405450orr w1, w2, w1
00405454str w1, [x0]
00405458
00405458loc_405458:
00405458ldr w0, [sp+4]
0040545csub w1, w0, 1
00405460str w1, [sp+4]
00405464subs wzr, w0, 0
00405468b.ne 0x405408
0040546chint
00405470hint
00405474add sp, sp, 16
00405478ret x30
004053f8
004053f8_bswapw:
004053f8sub sp, sp, 16
004053fcstr x0, [sp+8]
00405400str w1, [sp+4]
00405404b 0x405458
00405408
00405408loc_405408:
00405408ldr w0, [sp+4]
0040540cubfm x0, x0, 62, 61
00405410ldr x1, [sp+8]
00405414add x0, x1, x0
00405418ldr w0, [x0]
0040541cextr w0, w0, w0, 24
00405420and w2, w0, 0xff00ff
00405424ldr w0, [sp+4]
00405428ubfm x0, x0, 62, 61
0040542cldr x1, [sp+8]
00405430add x0, x1, x0
00405434ldr w0, [x0]
00405438extr w0, w0, w0, 8
0040543cand w1, w0, 0xff00ff00
00405440ldr w0, [sp+4]
00405444ubfm x0, x0, 62, 61
00405448ldr x3, [sp+8]
0040544cadd x0, x3, x0
00405450orr w1, w2, w1
00405454str w1, [x0]
00405458
00405458loc_405458:
00405458ldr w0, [sp+4]
0040545csub w1, w0, 1
00405460str w1, [sp+4]
00405464subs wzr, w0, 0
00405468b.ne 0x405408
0040546chint
00405470hint
00405474add sp, sp, 16
00405478ret x30
004053f8
0040547c
0040547c_memcp:
0040547csub sp, sp, 48
00405480str x0, [sp+24]
00405484str x1, [sp+16]
00405488str w2, [sp+12]
0040548cldr x0, [sp+24]
00405490str x0, [sp+40]
00405494b 0x4054c0
00405498
00405498loc_405498:
00405498ldr x0, [sp+16]
0040549cldrb w1, [x0]
004054a0ldr x0, [sp+24]
004054a4strb w1, [x0]
004054a8ldr x0, [sp+24]
004054acadd x0, x0, 1
004054b0str x0, [sp+24]
004054b4ldr x0, [sp+16]
004054b8add x0, x0, 1
004054bcstr x0, [sp+16]
004054c0
004054c0loc_4054c0:
004054c0ldr w0, [sp+12]
004054c4sub w1, w0, 1
004054c8str w1, [sp+12]
004054ccsubs wzr, w0, 0
004054d0b.ne 0x405498
004054d4ldr x0, [sp+40]
004054d8add sp, sp, 48
004054dcret x30
0040547c
0040547c_memcp:
0040547csub sp, sp, 48
00405480str x0, [sp+24]
00405484str x1, [sp+16]
00405488str w2, [sp+12]
0040548cldr x0, [sp+24]
00405490str x0, [sp+40]
00405494b 0x4054c0
00405498
00405498loc_405498:
00405498ldr x0, [sp+16]
0040549cldrb w1, [x0]
004054a0ldr x0, [sp+24]
004054a4strb w1, [x0]
004054a8ldr x0, [sp+24]
004054acadd x0, x0, 1
004054b0str x0, [sp+24]
004054b4ldr x0, [sp+16]
004054b8add x0, x0, 1
004054bcstr x0, [sp+16]
004054c0
004054c0loc_4054c0:
004054c0ldr w0, [sp+12]
004054c4sub w1, w0, 1
004054c8str w1, [sp+12]
004054ccsubs wzr, w0, 0
004054d0b.ne 0x405498
004054d4ldr x0, [sp+40]
004054d8add sp, sp, 48
004054dcret x30
0040547c
004054e0
004054e0_rtrf:
004054e0sub sp, sp, 32
004054e4str x0, [sp+24]
004054e8str x1, [sp+16]
004054ecstr w2, [sp+12]
004054f0str w3, [sp+8]
004054f4ldr w0, [sp+8]
004054f8subs wzr, w0, 0
004054fcb.eq 0x40564c
00405500ldr w0, [sp+12]
00405504and x0, x0, 15
00405508ubfm x0, x0, 62, 61
0040550cldr x1, [sp+16]
00405510add x0, x1, x0
00405514ldr w2, [x0]
00405518ldr w0, [sp+12]
0040551cadd w0, w0, 14
00405520mov w0, w0
00405524and x0, x0, 15
00405528ubfm x0, x0, 62, 61
0040552cldr x1, [sp+16]
00405530add x0, x1, x0
00405534ldr w0, [x0]
00405538extr w1, w0, w0, 17
0040553cldr w0, [sp+12]
00405540add w0, w0, 14
00405544mov w0, w0
00405548and x0, x0, 15
0040554cubfm x0, x0, 62, 61
00405550ldr x3, [sp+16]
00405554add x0, x3, x0
00405558ldr w0, [x0]
0040555cextr w0, w0, w0, 19
00405560eor w1, w1, w0
00405564ldr w0, [sp+12]
00405568add w0, w0, 14
0040556cmov w0, w0
00405570and x0, x0, 15
00405574ubfm x0, x0, 62, 61
00405578ldr x3, [sp+16]
0040557cadd x0, x3, x0
00405580ldr w0, [x0]
00405584ubfm w0, w0, 10, 31
00405588eor w1, w1, w0
0040558cldr w0, [sp+12]
00405590add w0, w0, 9
00405594mov w0, w0
00405598and x0, x0, 15
0040559cubfm x0, x0, 62, 61
004055a0ldr x3, [sp+16]
004055a4add x0, x3, x0
004055a8ldr w0, [x0]
004055acadd w1, w1, w0
004055b0ldr w0, [sp+12]
004055b4add w0, w0, 1
004055b8mov w0, w0
004055bcand x0, x0, 15
004055c0ubfm x0, x0, 62, 61
004055c4ldr x3, [sp+16]
004055c8add x0, x3, x0
004055ccldr w0, [x0]
004055d0extr w3, w0, w0, 7
004055d4ldr w0, [sp+12]
004055d8add w0, w0, 1
004055dcmov w0, w0
004055e0and x0, x0, 15
004055e4ubfm x0, x0, 62, 61
004055e8ldr x4, [sp+16]
004055ecadd x0, x4, x0
004055f0ldr w0, [x0]
004055f4extr w0, w0, w0, 18
004055f8eor w3, w3, w0
004055fcldr w0, [sp+12]
00405600add w0, w0, 1
00405604mov w0, w0
00405608and x0, x0, 15
0040560cubfm x0, x0, 62, 61
00405610ldr x4, [sp+16]
00405614add x0, x4, x0
00405618ldr w0, [x0]
0040561cubfm w0, w0, 3, 31
00405620eor w0, w3, w0
00405624add w1, w1, w0
00405628ldr w0, [sp+12]
0040562cand x0, x0, 15
00405630ubfm x0, x0, 62, 61
00405634ldr x3, [sp+16]
00405638add x0, x3, x0
0040563cadd w1, w2, w1
00405640str w1, [x0]
00405644ldr w0, [x0]
00405648b 0x405664
0040564c
0040564cloc_40564c:
0040564cldr w0, [sp+12]
00405650and x0, x0, 15
00405654ubfm x0, x0, 62, 61
00405658ldr x1, [sp+16]
0040565cadd x0, x1, x0
00405660ldr w0, [x0]
00405664
00405664loc_405664:
00405664ldr w2, [sp+12]
00405668ldr w1, [sp+8]
0040566cadd w2, w2, w1
00405670adrp x1, 8192
00405674add x1, x1, 3656
00405678mov w2, w2
0040567cldr w1, [x1+2*x2]
00405680add w1, w0, w1
00405684movz w2, 4
00405688ldr w0, [sp+12]
0040568csub w0, w2, w0
00405690mov w0, w0
00405694and x0, x0, 7
00405698ubfm x0, x0, 62, 61
0040569cldr x2, [sp+24]
004056a0add x0, x2, x0
004056a4ldr w0, [x0]
004056a8extr w2, w0, w0, 6
004056acmovz w3, 4
004056b0ldr w0, [sp+12]
004056b4sub w0, w3, w0
004056b8mov w0, w0
004056bcand x0, x0, 7
004056c0ubfm x0, x0, 62, 61
004056c4ldr x3, [sp+24]
004056c8add x0, x3, x0
004056ccldr w0, [x0]
004056d0extr w0, w0, w0, 11
004056d4eor w2, w2, w0
004056d8movz w3, 4
004056dcldr w0, [sp+12]
004056e0sub w0, w3, w0
004056e4mov w0, w0
004056e8and x0, x0, 7
004056ecubfm x0, x0, 62, 61
004056f0ldr x3, [sp+24]
004056f4add x0, x3, x0
004056f8ldr w0, [x0]
004056fcextr w0, w0, w0, 25
00405700eor w0, w2, w0
00405704add w1, w1, w0
00405708movz w2, 6
0040570cldr w0, [sp+12]
00405710sub w0, w2, w0
00405714mov w0, w0
00405718and x0, x0, 7
0040571cubfm x0, x0, 62, 61
00405720ldr x2, [sp+24]
00405724add x0, x2, x0
00405728ldr w2, [x0]
0040572cmovz w3, 4
00405730ldr w0, [sp+12]
00405734sub w0, w3, w0
00405738mov w0, w0
0040573cand x0, x0, 7
00405740ubfm x0, x0, 62, 61
00405744ldr x3, [sp+24]
00405748add x0, x3, x0
0040574cldr w3, [x0]
00405750movz w4, 5
00405754ldr w0, [sp+12]
00405758sub w0, w4, w0
0040575cmov w0, w0
00405760and x0, x0, 7
00405764ubfm x0, x0, 62, 61
00405768ldr x4, [sp+24]
0040576cadd x0, x4, x0
00405770ldr w4, [x0]
00405774movz w5, 6
00405778ldr w0, [sp+12]
0040577csub w0, w5, w0
00405780mov w0, w0
00405784and x0, x0, 7
00405788ubfm x0, x0, 62, 61
0040578cldr x5, [sp+24]
00405790add x0, x5, x0
00405794ldr w0, [x0]
00405798eor w0, w4, w0
0040579cand w0, w3, w0
004057a0eor w0, w2, w0
004057a4add w2, w1, w0
004057a8movz w1, 7
004057acldr w0, [sp+12]
004057b0sub w0, w1, w0
004057b4mov w0, w0
004057b8and x0, x0, 7
004057bcubfm x0, x0, 62, 61
004057c0ldr x1, [sp+24]
004057c4add x0, x1, x0
004057c8ldr w1, [x0]
004057ccmovz w3, 7
004057d0ldr w0, [sp+12]
004057d4sub w0, w3, w0
004057d8mov w0, w0
004057dcand x0, x0, 7
004057e0ubfm x0, x0, 62, 61
004057e4ldr x3, [sp+24]
004057e8add x0, x3, x0
004057ecadd w1, w2, w1
004057f0str w1, [x0]
004057f4movz w1, 3
004057f8ldr w0, [sp+12]
004057fcsub w0, w1, w0
00405800mov w0, w0
00405804and x0, x0, 7
00405808ubfm x0, x0, 62, 61
0040580cldr x1, [sp+24]
00405810add x0, x1, x0
00405814ldr w2, [x0]
00405818movz w1, 7
0040581cldr w0, [sp+12]
00405820sub w0, w1, w0
00405824mov w0, w0
00405828and x0, x0, 7
0040582cubfm x0, x0, 62, 61
00405830ldr x1, [sp+24]
00405834add x0, x1, x0
00405838ldr w1, [x0]
0040583cmovz w3, 3
00405840ldr w0, [sp+12]
00405844sub w0, w3, w0
00405848mov w0, w0
0040584cand x0, x0, 7
00405850ubfm x0, x0, 62, 61
00405854ldr x3, [sp+24]
00405858add x0, x3, x0
0040585cadd w1, w2, w1
00405860str w1, [x0]
00405864movz w1, 7
00405868ldr w0, [sp+12]
0040586csub w0, w1, w0
00405870mov w0, w0
00405874and x0, x0, 7
00405878ubfm x0, x0, 62, 61
0040587cldr x1, [sp+24]
00405880add x0, x1, x0
00405884ldr w2, [x0]
00405888ldr w0, [sp+12]
0040588csub w0, wzr, w0
00405890mov w0, w0
00405894and x0, x0, 7
00405898ubfm x0, x0, 62, 61
0040589cldr x1, [sp+24]
004058a0add x0, x1, x0
004058a4ldr w0, [x0]
004058a8extr w1, w0, w0, 2
004058acldr w0, [sp+12]
004058b0sub w0, wzr, w0
004058b4mov w0, w0
004058b8and x0, x0, 7
004058bcubfm x0, x0, 62, 61
004058c0ldr x3, [sp+24]
004058c4add x0, x3, x0
004058c8ldr w0, [x0]
004058ccextr w0, w0, w0, 13
004058d0eor w1, w1, w0
004058d4ldr w0, [sp+12]
004058d8sub w0, wzr, w0
004058dcmov w0, w0
004058e0and x0, x0, 7
004058e4ubfm x0, x0, 62, 61
004058e8ldr x3, [sp+24]
004058ecadd x0, x3, x0
004058f0ldr w0, [x0]
004058f4extr w0, w0, w0, 22
004058f8eor w1, w1, w0
004058fcldr w0, [sp+12]
00405900sub w0, wzr, w0
00405904mov w0, w0
00405908and x0, x0, 7
0040590cubfm x0, x0, 62, 61
00405910ldr x3, [sp+24]
00405914add x0, x3, x0
00405918ldr w3, [x0]
0040591cmovz w4, 1
00405920ldr w0, [sp+12]
00405924sub w0, w4, w0
00405928mov w0, w0
0040592cand x0, x0, 7
00405930ubfm x0, x0, 62, 61
00405934ldr x4, [sp+24]
00405938add x0, x4, x0
0040593cldr w0, [x0]
00405940and w3, w3, w0
00405944movz w4, 2
00405948ldr w0, [sp+12]
0040594csub w0, w4, w0
00405950mov w0, w0
00405954and x0, x0, 7
00405958ubfm x0, x0, 62, 61
0040595cldr x4, [sp+24]
00405960add x0, x4, x0
00405964ldr w4, [x0]
00405968ldr w0, [sp+12]
0040596csub w0, wzr, w0
00405970mov w0, w0
00405974and x0, x0, 7
00405978ubfm x0, x0, 62, 61
0040597cldr x5, [sp+24]
00405980add x0, x5, x0
00405984ldr w5, [x0]
00405988movz w6, 1
0040598cldr w0, [sp+12]
00405990sub w0, w6, w0
00405994mov w0, w0
00405998and x0, x0, 7
0040599cubfm x0, x0, 62, 61
004059a0ldr x6, [sp+24]
004059a4add x0, x6, x0
004059a8ldr w0, [x0]
004059aceor w0, w5, w0
004059b0and w0, w4, w0
004059b4orr w0, w3, w0
004059b8add w1, w1, w0
004059bcmovz w3, 7
004059c0ldr w0, [sp+12]
004059c4sub w0, w3, w0
004059c8mov w0, w0
004059ccand x0, x0, 7
004059d0ubfm x0, x0, 62, 61
004059d4ldr x3, [sp+24]
004059d8add x0, x3, x0
004059dcadd w1, w2, w1
004059e0str w1, [x0]
004059e4hint
004059e8add sp, sp, 32
004059ecret x30
004054e0
004054e0_rtrf:
004054e0sub sp, sp, 32
004054e4str x0, [sp+24]
004054e8str x1, [sp+16]
004054ecstr w2, [sp+12]
004054f0str w3, [sp+8]
004054f4ldr w0, [sp+8]
004054f8subs wzr, w0, 0
004054fcb.eq 0x40564c
00405500ldr w0, [sp+12]
00405504and x0, x0, 15
00405508ubfm x0, x0, 62, 61
0040550cldr x1, [sp+16]
00405510add x0, x1, x0
00405514ldr w2, [x0]
00405518ldr w0, [sp+12]
0040551cadd w0, w0, 14
00405520mov w0, w0
00405524and x0, x0, 15
00405528ubfm x0, x0, 62, 61
0040552cldr x1, [sp+16]
00405530add x0, x1, x0
00405534ldr w0, [x0]
00405538extr w1, w0, w0, 17
0040553cldr w0, [sp+12]
00405540add w0, w0, 14
00405544mov w0, w0
00405548and x0, x0, 15
0040554cubfm x0, x0, 62, 61
00405550ldr x3, [sp+16]
00405554add x0, x3, x0
00405558ldr w0, [x0]
0040555cextr w0, w0, w0, 19
00405560eor w1, w1, w0
00405564ldr w0, [sp+12]
00405568add w0, w0, 14
0040556cmov w0, w0
00405570and x0, x0, 15
00405574ubfm x0, x0, 62, 61
00405578ldr x3, [sp+16]
0040557cadd x0, x3, x0
00405580ldr w0, [x0]
00405584ubfm w0, w0, 10, 31
00405588eor w1, w1, w0
0040558cldr w0, [sp+12]
00405590add w0, w0, 9
00405594mov w0, w0
00405598and x0, x0, 15
0040559cubfm x0, x0, 62, 61
004055a0ldr x3, [sp+16]
004055a4add x0, x3, x0
004055a8ldr w0, [x0]
004055acadd w1, w1, w0
004055b0ldr w0, [sp+12]
004055b4add w0, w0, 1
004055b8mov w0, w0
004055bcand x0, x0, 15
004055c0ubfm x0, x0, 62, 61
004055c4ldr x3, [sp+16]
004055c8add x0, x3, x0
004055ccldr w0, [x0]
004055d0extr w3, w0, w0, 7
004055d4ldr w0, [sp+12]
004055d8add w0, w0, 1
004055dcmov w0, w0
004055e0and x0, x0, 15
004055e4ubfm x0, x0, 62, 61
004055e8ldr x4, [sp+16]
004055ecadd x0, x4, x0
004055f0ldr w0, [x0]
004055f4extr w0, w0, w0, 18
004055f8eor w3, w3, w0
004055fcldr w0, [sp+12]
00405600add w0, w0, 1
00405604mov w0, w0
00405608and x0, x0, 15
0040560cubfm x0, x0, 62, 61
00405610ldr x4, [sp+16]
00405614add x0, x4, x0
00405618ldr w0, [x0]
0040561cubfm w0, w0, 3, 31
00405620eor w0, w3, w0
00405624add w1, w1, w0
00405628ldr w0, [sp+12]
0040562cand x0, x0, 15
00405630ubfm x0, x0, 62, 61
00405634ldr x3, [sp+16]
00405638add x0, x3, x0
0040563cadd w1, w2, w1
00405640str w1, [x0]
00405644ldr w0, [x0]
00405648b 0x405664
0040564c
0040564cloc_40564c:
0040564cldr w0, [sp+12]
00405650and x0, x0, 15
00405654ubfm x0, x0, 62, 61
00405658ldr x1, [sp+16]
0040565cadd x0, x1, x0
00405660ldr w0, [x0]
00405664
00405664loc_405664:
00405664ldr w2, [sp+12]
00405668ldr w1, [sp+8]
0040566cadd w2, w2, w1
00405670adrp x1, 8192
00405674add x1, x1, 3656
00405678mov w2, w2
0040567cldr w1, [x1+2*x2]
00405680add w1, w0, w1
00405684movz w2, 4
00405688ldr w0, [sp+12]
0040568csub w0, w2, w0
00405690mov w0, w0
00405694and x0, x0, 7
00405698ubfm x0, x0, 62, 61
0040569cldr x2, [sp+24]
004056a0add x0, x2, x0
004056a4ldr w0, [x0]
004056a8extr w2, w0, w0, 6
004056acmovz w3, 4
004056b0ldr w0, [sp+12]
004056b4sub w0, w3, w0
004056b8mov w0, w0
004056bcand x0, x0, 7
004056c0ubfm x0, x0, 62, 61
004056c4ldr x3, [sp+24]
004056c8add x0, x3, x0
004056ccldr w0, [x0]
004056d0extr w0, w0, w0, 11
004056d4eor w2, w2, w0
004056d8movz w3, 4
004056dcldr w0, [sp+12]
004056e0sub w0, w3, w0
004056e4mov w0, w0
004056e8and x0, x0, 7
004056ecubfm x0, x0, 62, 61
004056f0ldr x3, [sp+24]
004056f4add x0, x3, x0
004056f8ldr w0, [x0]
004056fcextr w0, w0, w0, 25
00405700eor w0, w2, w0
00405704add w1, w1, w0
00405708movz w2, 6
0040570cldr w0, [sp+12]
00405710sub w0, w2, w0
00405714mov w0, w0
00405718and x0, x0, 7
0040571cubfm x0, x0, 62, 61
00405720ldr x2, [sp+24]
00405724add x0, x2, x0
00405728ldr w2, [x0]
0040572cmovz w3, 4
00405730ldr w0, [sp+12]
00405734sub w0, w3, w0
00405738mov w0, w0
0040573cand x0, x0, 7
00405740ubfm x0, x0, 62, 61
00405744ldr x3, [sp+24]
00405748add x0, x3, x0
0040574cldr w3, [x0]
00405750movz w4, 5
00405754ldr w0, [sp+12]
00405758sub w0, w4, w0
0040575cmov w0, w0
00405760and x0, x0, 7
00405764ubfm x0, x0, 62, 61
00405768ldr x4, [sp+24]
0040576cadd x0, x4, x0
00405770ldr w4, [x0]
00405774movz w5, 6
00405778ldr w0, [sp+12]
0040577csub w0, w5, w0
00405780mov w0, w0
00405784and x0, x0, 7
00405788ubfm x0, x0, 62, 61
0040578cldr x5, [sp+24]
00405790add x0, x5, x0
00405794ldr w0, [x0]
00405798eor w0, w4, w0
0040579cand w0, w3, w0
004057a0eor w0, w2, w0
004057a4add w2, w1, w0
004057a8movz w1, 7
004057acldr w0, [sp+12]
004057b0sub w0, w1, w0
004057b4mov w0, w0
004057b8and x0, x0, 7
004057bcubfm x0, x0, 62, 61
004057c0ldr x1, [sp+24]
004057c4add x0, x1, x0
004057c8ldr w1, [x0]
004057ccmovz w3, 7
004057d0ldr w0, [sp+12]
004057d4sub w0, w3, w0
004057d8mov w0, w0
004057dcand x0, x0, 7
004057e0ubfm x0, x0, 62, 61
004057e4ldr x3, [sp+24]
004057e8add x0, x3, x0
004057ecadd w1, w2, w1
004057f0str w1, [x0]
004057f4movz w1, 3
004057f8ldr w0, [sp+12]
004057fcsub w0, w1, w0
00405800mov w0, w0
00405804and x0, x0, 7
00405808ubfm x0, x0, 62, 61
0040580cldr x1, [sp+24]
00405810add x0, x1, x0
00405814ldr w2, [x0]
00405818movz w1, 7
0040581cldr w0, [sp+12]
00405820sub w0, w1, w0
00405824mov w0, w0
00405828and x0, x0, 7
0040582cubfm x0, x0, 62, 61
00405830ldr x1, [sp+24]
00405834add x0, x1, x0
00405838ldr w1, [x0]
0040583cmovz w3, 3
00405840ldr w0, [sp+12]
00405844sub w0, w3, w0
00405848mov w0, w0
0040584cand x0, x0, 7
00405850ubfm x0, x0, 62, 61
00405854ldr x3, [sp+24]
00405858add x0, x3, x0
0040585cadd w1, w2, w1
00405860str w1, [x0]
00405864movz w1, 7
00405868ldr w0, [sp+12]
0040586csub w0, w1, w0
00405870mov w0, w0
00405874and x0, x0, 7
00405878ubfm x0, x0, 62, 61
0040587cldr x1, [sp+24]
00405880add x0, x1, x0
00405884ldr w2, [x0]
00405888ldr w0, [sp+12]
0040588csub w0, wzr, w0
00405890mov w0, w0
00405894and x0, x0, 7
00405898ubfm x0, x0, 62, 61
0040589cldr x1, [sp+24]
004058a0add x0, x1, x0
004058a4ldr w0, [x0]
004058a8extr w1, w0, w0, 2
004058acldr w0, [sp+12]
004058b0sub w0, wzr, w0
004058b4mov w0, w0
004058b8and x0, x0, 7
004058bcubfm x0, x0, 62, 61
004058c0ldr x3, [sp+24]
004058c4add x0, x3, x0
004058c8ldr w0, [x0]
004058ccextr w0, w0, w0, 13
004058d0eor w1, w1, w0
004058d4ldr w0, [sp+12]
004058d8sub w0, wzr, w0
004058dcmov w0, w0
004058e0and x0, x0, 7
004058e4ubfm x0, x0, 62, 61
004058e8ldr x3, [sp+24]
004058ecadd x0, x3, x0
004058f0ldr w0, [x0]
004058f4extr w0, w0, w0, 22
004058f8eor w1, w1, w0
004058fcldr w0, [sp+12]
00405900sub w0, wzr, w0
00405904mov w0, w0
00405908and x0, x0, 7
0040590cubfm x0, x0, 62, 61
00405910ldr x3, [sp+24]
00405914add x0, x3, x0
00405918ldr w3, [x0]
0040591cmovz w4, 1
00405920ldr w0, [sp+12]
00405924sub w0, w4, w0
00405928mov w0, w0
0040592cand x0, x0, 7
00405930ubfm x0, x0, 62, 61
00405934ldr x4, [sp+24]
00405938add x0, x4, x0
0040593cldr w0, [x0]
00405940and w3, w3, w0
00405944movz w4, 2
00405948ldr w0, [sp+12]
0040594csub w0, w4, w0
00405950mov w0, w0
00405954and x0, x0, 7
00405958ubfm x0, x0, 62, 61
0040595cldr x4, [sp+24]
00405960add x0, x4, x0
00405964ldr w4, [x0]
00405968ldr w0, [sp+12]
0040596csub w0, wzr, w0
00405970mov w0, w0
00405974and x0, x0, 7
00405978ubfm x0, x0, 62, 61
0040597cldr x5, [sp+24]
00405980add x0, x5, x0
00405984ldr w5, [x0]
00405988movz w6, 1
0040598cldr w0, [sp+12]
00405990sub w0, w6, w0
00405994mov w0, w0
00405998and x0, x0, 7
0040599cubfm x0, x0, 62, 61
004059a0ldr x6, [sp+24]
004059a4add x0, x6, x0
004059a8ldr w0, [x0]
004059aceor w0, w5, w0
004059b0and w0, w4, w0
004059b4orr w0, w3, w0
004059b8add w1, w1, w0
004059bcmovz w3, 7
004059c0ldr w0, [sp+12]
004059c4sub w0, w3, w0
004059c8mov w0, w0
004059ccand x0, x0, 7
004059d0ubfm x0, x0, 62, 61
004059d4ldr x3, [sp+24]
004059d8add x0, x3, x0
004059dcadd w1, w2, w1
004059e0str w1, [x0]
004059e4hint
004059e8add sp, sp, 32
004059ecret x30
004054e0
004059f0
004059f0_hash:
004059f0stp x29, x30, [sp-80]!
004059f4add x29, sp, 0
004059f8str x0, [sp+24]
004059fcldr x0, [sp+24]
00405a00ldr w0, [x0+64]
00405a04str w0, [sp+32]
00405a08ldr x0, [sp+24]
00405a0cldr w0, [x0+68]
00405a10str w0, [sp+36]
00405a14ldr x0, [sp+24]
00405a18ldr w0, [x0+72]
00405a1cstr w0, [sp+40]
00405a20ldr x0, [sp+24]
00405a24ldr w0, [x0+76]
00405a28str w0, [sp+44]
00405a2cldr x0, [sp+24]
00405a30ldr w0, [x0+80]
00405a34str w0, [sp+48]
00405a38ldr x0, [sp+24]
00405a3cldr w0, [x0+84]
00405a40str w0, [sp+52]
00405a44ldr x0, [sp+24]
00405a48ldr w0, [x0+88]
00405a4cstr w0, [sp+56]
00405a50ldr x0, [sp+24]
00405a54ldr w0, [x0+92]
00405a58str w0, [sp+60]
00405a5cldr x0, [sp+24]
00405a60str x0, [sp+64]
00405a64str wzr, [sp+76]
00405a68b 0x405bb8
00405a6c
00405a6cloc_405a6c:
00405a6cadd x0, sp, 32
00405a70ldr w3, [sp+76]
00405a74movz w2, 0
00405a78ldr x1, [sp+64]
00405a7cbl _rtrf
00405a80add x0, sp, 32
00405a84ldr w3, [sp+76]
00405a88movz w2, 1
00405a8cldr x1, [sp+64]
00405a90bl _rtrf
00405a94add x0, sp, 32
00405a98ldr w3, [sp+76]
00405a9cmovz w2, 2
00405aa0ldr x1, [sp+64]
00405aa4bl _rtrf
00405aa8add x0, sp, 32
00405aacldr w3, [sp+76]
00405ab0movz w2, 3
00405ab4ldr x1, [sp+64]
00405ab8bl _rtrf
00405abcadd x0, sp, 32
00405ac0ldr w3, [sp+76]
00405ac4movz w2, 4
00405ac8ldr x1, [sp+64]
00405accbl _rtrf
00405ad0add x0, sp, 32
00405ad4ldr w3, [sp+76]
00405ad8movz w2, 5
00405adcldr x1, [sp+64]
00405ae0bl _rtrf
00405ae4add x0, sp, 32
00405ae8ldr w3, [sp+76]
00405aecmovz w2, 6
00405af0ldr x1, [sp+64]
00405af4bl _rtrf
00405af8add x0, sp, 32
00405afcldr w3, [sp+76]
00405b00movz w2, 7
00405b04ldr x1, [sp+64]
00405b08bl _rtrf
00405b0cadd x0, sp, 32
00405b10ldr w3, [sp+76]
00405b14movz w2, 8
00405b18ldr x1, [sp+64]
00405b1cbl _rtrf
00405b20add x0, sp, 32
00405b24ldr w3, [sp+76]
00405b28movz w2, 9
00405b2cldr x1, [sp+64]
00405b30bl _rtrf
00405b34add x0, sp, 32
00405b38ldr w3, [sp+76]
00405b3cmovz w2, 10
00405b40ldr x1, [sp+64]
00405b44bl _rtrf
00405b48add x0, sp, 32
00405b4cldr w3, [sp+76]
00405b50movz w2, 11
00405b54ldr x1, [sp+64]
00405b58bl _rtrf
00405b5cadd x0, sp, 32
00405b60ldr w3, [sp+76]
00405b64movz w2, 12
00405b68ldr x1, [sp+64]
00405b6cbl _rtrf
00405b70add x0, sp, 32
00405b74ldr w3, [sp+76]
00405b78movz w2, 13
00405b7cldr x1, [sp+64]
00405b80bl _rtrf
00405b84add x0, sp, 32
00405b88ldr w3, [sp+76]
00405b8cmovz w2, 14
00405b90ldr x1, [sp+64]
00405b94bl _rtrf
00405b98add x0, sp, 32
00405b9cldr w3, [sp+76]
00405ba0movz w2, 15
00405ba4ldr x1, [sp+64]
00405ba8bl _rtrf
00405bacldr w0, [sp+76]
00405bb0add w0, w0, 16
00405bb4str w0, [sp+76]
00405bb8
00405bb8loc_405bb8:
00405bb8ldr w0, [sp+76]
00405bbcsubs wzr, w0, 63
00405bc0b.ls 0x405a6c
00405bc4ldr x0, [sp+24]
00405bc8ldr w1, [x0+64]
00405bccldr w0, [sp+32]
00405bd0add w1, w1, w0
00405bd4ldr x0, [sp+24]
00405bd8str w1, [x0+64]
00405bdcldr x0, [sp+24]
00405be0ldr w1, [x0+68]
00405be4ldr w0, [sp+36]
00405be8add w1, w1, w0
00405becldr x0, [sp+24]
00405bf0str w1, [x0+68]
00405bf4ldr x0, [sp+24]
00405bf8ldr w1, [x0+72]
00405bfcldr w0, [sp+40]
00405c00add w1, w1, w0
00405c04ldr x0, [sp+24]
00405c08str w1, [x0+72]
00405c0cldr x0, [sp+24]
00405c10ldr w1, [x0+76]
00405c14ldr w0, [sp+44]
00405c18add w1, w1, w0
00405c1cldr x0, [sp+24]
00405c20str w1, [x0+76]
00405c24ldr x0, [sp+24]
00405c28ldr w1, [x0+80]
00405c2cldr w0, [sp+48]
00405c30add w1, w1, w0
00405c34ldr x0, [sp+24]
00405c38str w1, [x0+80]
00405c3cldr x0, [sp+24]
00405c40ldr w1, [x0+84]
00405c44ldr w0, [sp+52]
00405c48add w1, w1, w0
00405c4cldr x0, [sp+24]
00405c50str w1, [x0+84]
00405c54ldr x0, [sp+24]
00405c58ldr w1, [x0+88]
00405c5cldr w0, [sp+56]
00405c60add w1, w1, w0
00405c64ldr x0, [sp+24]
00405c68str w1, [x0+88]
00405c6cldr x0, [sp+24]
00405c70ldr w1, [x0+92]
00405c74ldr w0, [sp+60]
00405c78add w1, w1, w0
00405c7cldr x0, [sp+24]
00405c80str w1, [x0+92]
00405c84hint
00405c88ldp x29, x30, [sp], 80
00405c8cret x30
004059f0
004059f0_hash:
004059f0stp x29, x30, [sp-80]!
004059f4add x29, sp, 0
004059f8str x0, [sp+24]
004059fcldr x0, [sp+24]
00405a00ldr w0, [x0+64]
00405a04str w0, [sp+32]
00405a08ldr x0, [sp+24]
00405a0cldr w0, [x0+68]
00405a10str w0, [sp+36]
00405a14ldr x0, [sp+24]
00405a18ldr w0, [x0+72]
00405a1cstr w0, [sp+40]
00405a20ldr x0, [sp+24]
00405a24ldr w0, [x0+76]
00405a28str w0, [sp+44]
00405a2cldr x0, [sp+24]
00405a30ldr w0, [x0+80]
00405a34str w0, [sp+48]
00405a38ldr x0, [sp+24]
00405a3cldr w0, [x0+84]
00405a40str w0, [sp+52]
00405a44ldr x0, [sp+24]
00405a48ldr w0, [x0+88]
00405a4cstr w0, [sp+56]
00405a50ldr x0, [sp+24]
00405a54ldr w0, [x0+92]
00405a58str w0, [sp+60]
00405a5cldr x0, [sp+24]
00405a60str x0, [sp+64]
00405a64str wzr, [sp+76]
00405a68b 0x405bb8
00405a6c
00405a6cloc_405a6c:
00405a6cadd x0, sp, 32
00405a70ldr w3, [sp+76]
00405a74movz w2, 0
00405a78ldr x1, [sp+64]
00405a7cbl _rtrf
00405a80add x0, sp, 32
00405a84ldr w3, [sp+76]
00405a88movz w2, 1
00405a8cldr x1, [sp+64]
00405a90bl _rtrf
00405a94add x0, sp, 32
00405a98ldr w3, [sp+76]
00405a9cmovz w2, 2
00405aa0ldr x1, [sp+64]
00405aa4bl _rtrf
00405aa8add x0, sp, 32
00405aacldr w3, [sp+76]
00405ab0movz w2, 3
00405ab4ldr x1, [sp+64]
00405ab8bl _rtrf
00405abcadd x0, sp, 32
00405ac0ldr w3, [sp+76]
00405ac4movz w2, 4
00405ac8ldr x1, [sp+64]
00405accbl _rtrf
00405ad0add x0, sp, 32
00405ad4ldr w3, [sp+76]
00405ad8movz w2, 5
00405adcldr x1, [sp+64]
00405ae0bl _rtrf
00405ae4add x0, sp, 32
00405ae8ldr w3, [sp+76]
00405aecmovz w2, 6
00405af0ldr x1, [sp+64]
00405af4bl _rtrf
00405af8add x0, sp, 32
00405afcldr w3, [sp+76]
00405b00movz w2, 7
00405b04ldr x1, [sp+64]
00405b08bl _rtrf
00405b0cadd x0, sp, 32
00405b10ldr w3, [sp+76]
00405b14movz w2, 8
00405b18ldr x1, [sp+64]
00405b1cbl _rtrf
00405b20add x0, sp, 32
00405b24ldr w3, [sp+76]
00405b28movz w2, 9
00405b2cldr x1, [sp+64]
00405b30bl _rtrf
00405b34add x0, sp, 32
00405b38ldr w3, [sp+76]
00405b3cmovz w2, 10
00405b40ldr x1, [sp+64]
00405b44bl _rtrf
00405b48add x0, sp, 32
00405b4cldr w3, [sp+76]
00405b50movz w2, 11
00405b54ldr x1, [sp+64]
00405b58bl _rtrf
00405b5cadd x0, sp, 32
00405b60ldr w3, [sp+76]
00405b64movz w2, 12
00405b68ldr x1, [sp+64]
00405b6cbl _rtrf
00405b70add x0, sp, 32
00405b74ldr w3, [sp+76]
00405b78movz w2, 13
00405b7cldr x1, [sp+64]
00405b80bl _rtrf
00405b84add x0, sp, 32
00405b88ldr w3, [sp+76]
00405b8cmovz w2, 14
00405b90ldr x1, [sp+64]
00405b94bl _rtrf
00405b98add x0, sp, 32
00405b9cldr w3, [sp+76]
00405ba0movz w2, 15
00405ba4ldr x1, [sp+64]
00405ba8bl _rtrf
00405bacldr w0, [sp+76]
00405bb0add w0, w0, 16
00405bb4str w0, [sp+76]
00405bb8
00405bb8loc_405bb8:
00405bb8ldr w0, [sp+76]
00405bbcsubs wzr, w0, 63
00405bc0b.ls 0x405a6c
00405bc4ldr x0, [sp+24]
00405bc8ldr w1, [x0+64]
00405bccldr w0, [sp+32]
00405bd0add w1, w1, w0
00405bd4ldr x0, [sp+24]
00405bd8str w1, [x0+64]
00405bdcldr x0, [sp+24]
00405be0ldr w1, [x0+68]
00405be4ldr w0, [sp+36]
00405be8add w1, w1, w0
00405becldr x0, [sp+24]
00405bf0str w1, [x0+68]
00405bf4ldr x0, [sp+24]
00405bf8ldr w1, [x0+72]
00405bfcldr w0, [sp+40]
00405c00add w1, w1, w0
00405c04ldr x0, [sp+24]
00405c08str w1, [x0+72]
00405c0cldr x0, [sp+24]
00405c10ldr w1, [x0+76]
00405c14ldr w0, [sp+44]
00405c18add w1, w1, w0
00405c1cldr x0, [sp+24]
00405c20str w1, [x0+76]
00405c24ldr x0, [sp+24]
00405c28ldr w1, [x0+80]
00405c2cldr w0, [sp+48]
00405c30add w1, w1, w0
00405c34ldr x0, [sp+24]
00405c38str w1, [x0+80]
00405c3cldr x0, [sp+24]
00405c40ldr w1, [x0+84]
00405c44ldr w0, [sp+52]
00405c48add w1, w1, w0
00405c4cldr x0, [sp+24]
00405c50str w1, [x0+84]
00405c54ldr x0, [sp+24]
00405c58ldr w1, [x0+88]
00405c5cldr w0, [sp+56]
00405c60add w1, w1, w0
00405c64ldr x0, [sp+24]
00405c68str w1, [x0+88]
00405c6cldr x0, [sp+24]
00405c70ldr w1, [x0+92]
00405c74ldr w0, [sp+60]
00405c78add w1, w1, w0
00405c7cldr x0, [sp+24]
00405c80str w1, [x0+92]
00405c84hint
00405c88ldp x29, x30, [sp], 80
00405c8cret x30
004059f0
00405c90
00405c90sha256_init:
00405c90sub sp, sp, 16
00405c94str x0, [sp+8]
00405c98ldr x0, [sp+8]
00405c9cstr wzr, [x0+100]
00405ca0ldr x0, [sp+8]
00405ca4ldr w1, [x0+100]
00405ca8ldr x0, [sp+8]
00405cacstr w1, [x0+96]
00405cb0ldr x0, [sp+8]
00405cb4movz w1, 58983
00405cb8movk w1, 0x6a090000
00405cbcstr w1, [x0+64]
00405cc0ldr x0, [sp+8]
00405cc4movz w1, 44677
00405cc8movk w1, 0xbb670000
00405cccstr w1, [x0+68]
00405cd0ldr x0, [sp+8]
00405cd4movz w1, 62322
00405cd8movk w1, 0x3c6e0000
00405cdcstr w1, [x0+72]
00405ce0ldr x0, [sp+8]
00405ce4movz w1, 62778
00405ce8movk w1, 0xa54f0000
00405cecstr w1, [x0+76]
00405cf0ldr x0, [sp+8]
00405cf4movz w1, 21119
00405cf8movk w1, 0x510e0000
00405cfcstr w1, [x0+80]
00405d00ldr x0, [sp+8]
00405d04movz w1, 26764
00405d08movk w1, 0x9b050000
00405d0cstr w1, [x0+84]
00405d10ldr x0, [sp+8]
00405d14movz w1, 55723
00405d18movk w1, 0x1f830000
00405d1cstr w1, [x0+88]
00405d20ldr x0, [sp+8]
00405d24movz w1, 52505
00405d28movk w1, 0x5be00000
00405d2cstr w1, [x0+92]
00405d30hint
00405d34add sp, sp, 16
00405d38ret x30
00405c90
00405c90sha256_init:
00405c90sub sp, sp, 16
00405c94str x0, [sp+8]
00405c98ldr x0, [sp+8]
00405c9cstr wzr, [x0+100]
00405ca0ldr x0, [sp+8]
00405ca4ldr w1, [x0+100]
00405ca8ldr x0, [sp+8]
00405cacstr w1, [x0+96]
00405cb0ldr x0, [sp+8]
00405cb4movz w1, 58983
00405cb8movk w1, 0x6a090000
00405cbcstr w1, [x0+64]
00405cc0ldr x0, [sp+8]
00405cc4movz w1, 44677
00405cc8movk w1, 0xbb670000
00405cccstr w1, [x0+68]
00405cd0ldr x0, [sp+8]
00405cd4movz w1, 62322
00405cd8movk w1, 0x3c6e0000
00405cdcstr w1, [x0+72]
00405ce0ldr x0, [sp+8]
00405ce4movz w1, 62778
00405ce8movk w1, 0xa54f0000
00405cecstr w1, [x0+76]
00405cf0ldr x0, [sp+8]
00405cf4movz w1, 21119
00405cf8movk w1, 0x510e0000
00405cfcstr w1, [x0+80]
00405d00ldr x0, [sp+8]
00405d04movz w1, 26764
00405d08movk w1, 0x9b050000
00405d0cstr w1, [x0+84]
00405d10ldr x0, [sp+8]
00405d14movz w1, 55723
00405d18movk w1, 0x1f830000
00405d1cstr w1, [x0+88]
00405d20ldr x0, [sp+8]
00405d24movz w1, 52505
00405d28movk w1, 0x5be00000
00405d2cstr w1, [x0+92]
00405d30hint
00405d34add sp, sp, 16
00405d38ret x30
00405c90
00405d3c
00405d3csha256_hash:
00405d3cstp x29, x30, [sp-80]!
00405d40add x29, sp, 0
00405d44stp x19, x20, [sp+16]
00405d48str x21, [sp+32]
00405d4cstr x0, [sp+72]
00405d50str x1, [sp+64]
00405d54str w2, [sp+60]
00405d58ldr x0, [sp+72]
00405d5cldr w0, [x0+96]
00405d60and w21, w0, 63
00405d64ldr x0, [sp+72]
00405d68ldr w1, [x0+96]
00405d6cldr w0, [sp+60]
00405d70add w1, w1, w0
00405d74ldr x0, [sp+72]
00405d78str w1, [x0+96]
00405d7cldr x0, [sp+72]
00405d80ldr w0, [x0+96]
00405d84ldr w1, [sp+60]
00405d88subs wzr, w1, w0
00405d8cb.ls 0x405da4
00405d90ldr x0, [sp+72]
00405d94ldr w0, [x0+100]
00405d98add w1, w0, 1
00405d9cldr x0, [sp+72]
00405da0str w1, [x0+100]
00405da4
00405da4loc_405da4:
00405da4movz w20, 0
00405da8movz w0, 64
00405dacsub w19, w0, w21
00405db0b 0x405e08
00405db4
00405db4loc_405db4:
00405db4ldr x1, [sp+72]
00405db8mov w0, w21
00405dbcadd x3, x1, x0
00405dc0mov w0, w20
00405dc4ldr x1, [sp+64]
00405dc8add x0, x1, x0
00405dccmov w2, w19
00405dd0mov x1, x0
00405dd4mov x0, x3
00405dd8bl _memcp
00405ddcldr x0, [sp+72]
00405de0movz w1, 16
00405de4bl _bswapw
00405de8ldr x0, [sp+72]
00405decbl _hash
00405df0add w20, w20, w19
00405df4ldr w0, [sp+60]
00405df8sub w0, w0, w19
00405dfcstr w0, [sp+60]
00405e00movz w19, 64
00405e04movz w21, 0
00405e08
00405e08loc_405e08:
00405e08ldr w0, [sp+60]
00405e0csubs wzr, w0, w19
00405e10b.hs 0x405db4
00405e14ldr x1, [sp+72]
00405e18mov w0, w21
00405e1cadd x3, x1, x0
00405e20mov w0, w20
00405e24ldr x1, [sp+64]
00405e28add x0, x1, x0
00405e2cldr w2, [sp+60]
00405e30mov x1, x0
00405e34mov x0, x3
00405e38bl _memcp
00405e3chint
00405e40ldp x19, x20, [sp+16]
00405e44ldr x21, [sp+32]
00405e48ldp x29, x30, [sp], 80
00405e4cret x30
00405d3c
00405d3csha256_hash:
00405d3cstp x29, x30, [sp-80]!
00405d40add x29, sp, 0
00405d44stp x19, x20, [sp+16]
00405d48str x21, [sp+32]
00405d4cstr x0, [sp+72]
00405d50str x1, [sp+64]
00405d54str w2, [sp+60]
00405d58ldr x0, [sp+72]
00405d5cldr w0, [x0+96]
00405d60and w21, w0, 63
00405d64ldr x0, [sp+72]
00405d68ldr w1, [x0+96]
00405d6cldr w0, [sp+60]
00405d70add w1, w1, w0
00405d74ldr x0, [sp+72]
00405d78str w1, [x0+96]
00405d7cldr x0, [sp+72]
00405d80ldr w0, [x0+96]
00405d84ldr w1, [sp+60]
00405d88subs wzr, w1, w0
00405d8cb.ls 0x405da4
00405d90ldr x0, [sp+72]
00405d94ldr w0, [x0+100]
00405d98add w1, w0, 1
00405d9cldr x0, [sp+72]
00405da0str w1, [x0+100]
00405da4
00405da4loc_405da4:
00405da4movz w20, 0
00405da8movz w0, 64
00405dacsub w19, w0, w21
00405db0b 0x405e08
00405db4
00405db4loc_405db4:
00405db4ldr x1, [sp+72]
00405db8mov w0, w21
00405dbcadd x3, x1, x0
00405dc0mov w0, w20
00405dc4ldr x1, [sp+64]
00405dc8add x0, x1, x0
00405dccmov w2, w19
00405dd0mov x1, x0
00405dd4mov x0, x3
00405dd8bl _memcp
00405ddcldr x0, [sp+72]
00405de0movz w1, 16
00405de4bl _bswapw
00405de8ldr x0, [sp+72]
00405decbl _hash
00405df0add w20, w20, w19
00405df4ldr w0, [sp+60]
00405df8sub w0, w0, w19
00405dfcstr w0, [sp+60]
00405e00movz w19, 64
00405e04movz w21, 0
00405e08
00405e08loc_405e08:
00405e08ldr w0, [sp+60]
00405e0csubs wzr, w0, w19
00405e10b.hs 0x405db4
00405e14ldr x1, [sp+72]
00405e18mov w0, w21
00405e1cadd x3, x1, x0
00405e20mov w0, w20
00405e24ldr x1, [sp+64]
00405e28add x0, x1, x0
00405e2cldr w2, [sp+60]
00405e30mov x1, x0
00405e34mov x0, x3
00405e38bl _memcp
00405e3chint
00405e40ldp x19, x20, [sp+16]
00405e44ldr x21, [sp+32]
00405e48ldp x29, x30, [sp], 80
00405e4cret x30
00405d3c
00405e50
00405e50sha256_done:
00405e50stp x29, x30, [sp-48]!
00405e54add x29, sp, 0
00405e58str x0, [sp+24]
00405e5cstr x1, [sp+16]
00405e60ldr x0, [sp+24]
00405e64ldr w0, [x0+96]
00405e68and w0, w0, 63
00405e6cstr w0, [sp+44]
00405e70ldr w0, [sp+44]
00405e74orn w0, wzr, w0
00405e78ubfm w0, w0, 29, 28
00405e7cand w0, w0, 24
00405e80str w0, [sp+40]
00405e84ldr x2, [sp+24]
00405e88ldr w0, [sp+44]
00405e8cadd w0, w0, 3
00405e90ubfm w0, w0, 2, 31
00405e94mov w1, w0
00405e98mov x0, x2
00405e9cbl _bswapw
00405ea0ldr w0, [sp+44]
00405ea4ubfm w1, w0, 2, 31
00405ea8ldr x0, [sp+24]
00405eacmov w1, w1
00405eb0ldr w1, [x0+2*x1]
00405eb4ldr w0, [sp+40]
00405eb8movn w2, 127
00405ebclslv w0, w2, w0
00405ec0ldr w2, [sp+44]
00405ec4ubfm w3, w2, 2, 31
00405ec8and w2, w1, w0
00405eccldr x0, [sp+24]
00405ed0mov w1, w3
00405ed4str w2, [x0+2*x1]
00405ed8ldr w0, [sp+44]
00405edcubfm w1, w0, 2, 31
00405ee0ldr x0, [sp+24]
00405ee4mov w1, w1
00405ee8ldr w0, [x0+2*x1]
00405eecldr w1, [sp+40]
00405ef0movz w2, 128
00405ef4lslv w1, w2, w1
00405ef8mov w2, w1
00405efcldr w1, [sp+44]
00405f00ubfm w1, w1, 2, 31
00405f04orr w2, w0, w2
00405f08ldr x0, [sp+24]
00405f0cmov w1, w1
00405f10str w2, [x0+2*x1]
00405f14ldr w0, [sp+44]
00405f18subs wzr, w0, 55
00405f1cb.hi 0x405f34
00405f20ldr w0, [sp+44]
00405f24ubfm w0, w0, 2, 31
00405f28add w0, w0, 1
00405f2cstr w0, [sp+44]
00405f30b 0x405f8c
00405f34
00405f34loc_405f34:
00405f34ldr x0, [sp+24]
00405f38ldr w1, [x0+60]
00405f3cldr w0, [sp+44]
00405f40subs wzr, w0, 59
00405f44b.hi 0x405f54
00405f48ldr x0, [sp+24]
00405f4cldr w0, [x0+60]
00405f50b 0x405f58
00405f54
00405f54loc_405f54:
00405f54movz w0, 0
00405f58
00405f58loc_405f58:
00405f58eor w1, w0, w1
00405f5cldr x0, [sp+24]
00405f60str w1, [x0+60]
00405f64ldr x0, [sp+24]
00405f68bl _hash
00405f6cstr wzr, [sp+44]
00405f70b 0x405f8c
00405f74
00405f74loc_405f74:
00405f74ldr w0, [sp+44]
00405f78add w1, w0, 1
00405f7cstr w1, [sp+44]
00405f80ldr x1, [sp+24]
00405f84mov w0, w0
00405f88str wzr, [x1+2*x0]
00405f8c
00405f8cloc_405f8c:
00405f8cldr w0, [sp+44]
00405f90subs wzr, w0, 13
00405f94b.ls 0x405f74
00405f98ldr x0, [sp+24]
00405f9cldr w0, [x0+100]
00405fa0ubfm w1, w0, 29, 28
00405fa4ldr x0, [sp+24]
00405fa8ldr w0, [x0+96]
00405facubfm w0, w0, 29, 31
00405fb0orr w1, w1, w0
00405fb4ldr x0, [sp+24]
00405fb8str w1, [x0+56]
00405fbcldr x0, [sp+24]
00405fc0ldr w0, [x0+96]
00405fc4ubfm w1, w0, 29, 28
00405fc8ldr x0, [sp+24]
00405fccstr w1, [x0+60]
00405fd0ldr x0, [sp+24]
00405fd4bl _hash
00405fd8str wzr, [sp+44]
00405fdcb 0x406040
00405fe0
00405fe0loc_405fe0:
00405fe0ldr w0, [sp+44]
00405fe4and w1, w0, 15
00405fe8ldr x0, [sp+24]
00405fecmov w1, w1
00405ff0str wzr, [x0+2*x1]
00405ff4ldr w0, [sp+44]
00405ff8ubfm w1, w0, 2, 31
00405ffcldr x0, [sp+24]
00406000mov w1, w1
00406004add x1, x1, 16
00406008ldr w1, [x0+2*x1]
0040600cldr w0, [sp+44]
00406010orn w0, wzr, w0
00406014ubfm w0, w0, 29, 28
00406018and w0, w0, 24
0040601clsrv w2, w1, w0
00406020ldr w0, [sp+44]
00406024ldr x1, [sp+16]
00406028add x0, x1, x0
0040602cand w1, w2, 255
00406030strb w1, [x0]
00406034ldr w0, [sp+44]
00406038add w0, w0, 1
0040603cstr w0, [sp+44]
00406040
00406040loc_406040:
00406040ldr w0, [sp+44]
00406044subs wzr, w0, 31
00406048b.ls 0x405fe0
0040604chint
00406050hint
00406054ldp x29, x30, [sp], 48
00406058ret x30
00405e50
00405e50sha256_done:
00405e50stp x29, x30, [sp-48]!
00405e54add x29, sp, 0
00405e58str x0, [sp+24]
00405e5cstr x1, [sp+16]
00405e60ldr x0, [sp+24]
00405e64ldr w0, [x0+96]
00405e68and w0, w0, 63
00405e6cstr w0, [sp+44]
00405e70ldr w0, [sp+44]
00405e74orn w0, wzr, w0
00405e78ubfm w0, w0, 29, 28
00405e7cand w0, w0, 24
00405e80str w0, [sp+40]
00405e84ldr x2, [sp+24]
00405e88ldr w0, [sp+44]
00405e8cadd w0, w0, 3
00405e90ubfm w0, w0, 2, 31
00405e94mov w1, w0
00405e98mov x0, x2
00405e9cbl _bswapw
00405ea0ldr w0, [sp+44]
00405ea4ubfm w1, w0, 2, 31
00405ea8ldr x0, [sp+24]
00405eacmov w1, w1
00405eb0ldr w1, [x0+2*x1]
00405eb4ldr w0, [sp+40]
00405eb8movn w2, 127
00405ebclslv w0, w2, w0
00405ec0ldr w2, [sp+44]
00405ec4ubfm w3, w2, 2, 31
00405ec8and w2, w1, w0
00405eccldr x0, [sp+24]
00405ed0mov w1, w3
00405ed4str w2, [x0+2*x1]
00405ed8ldr w0, [sp+44]
00405edcubfm w1, w0, 2, 31
00405ee0ldr x0, [sp+24]
00405ee4mov w1, w1
00405ee8ldr w0, [x0+2*x1]
00405eecldr w1, [sp+40]
00405ef0movz w2, 128
00405ef4lslv w1, w2, w1
00405ef8mov w2, w1
00405efcldr w1, [sp+44]
00405f00ubfm w1, w1, 2, 31
00405f04orr w2, w0, w2
00405f08ldr x0, [sp+24]
00405f0cmov w1, w1
00405f10str w2, [x0+2*x1]
00405f14ldr w0, [sp+44]
00405f18subs wzr, w0, 55
00405f1cb.hi 0x405f34
00405f20ldr w0, [sp+44]
00405f24ubfm w0, w0, 2, 31
00405f28add w0, w0, 1
00405f2cstr w0, [sp+44]
00405f30b 0x405f8c
00405f34
00405f34loc_405f34:
00405f34ldr x0, [sp+24]
00405f38ldr w1, [x0+60]
00405f3cldr w0, [sp+44]
00405f40subs wzr, w0, 59
00405f44b.hi 0x405f54
00405f48ldr x0, [sp+24]
00405f4cldr w0, [x0+60]
00405f50b 0x405f58
00405f54
00405f54loc_405f54:
00405f54movz w0, 0
00405f58
00405f58loc_405f58:
00405f58eor w1, w0, w1
00405f5cldr x0, [sp+24]
00405f60str w1, [x0+60]
00405f64ldr x0, [sp+24]
00405f68bl _hash
00405f6cstr wzr, [sp+44]
00405f70b 0x405f8c
00405f74
00405f74loc_405f74:
00405f74ldr w0, [sp+44]
00405f78add w1, w0, 1
00405f7cstr w1, [sp+44]
00405f80ldr x1, [sp+24]
00405f84mov w0, w0
00405f88str wzr, [x1+2*x0]
00405f8c
00405f8cloc_405f8c:
00405f8cldr w0, [sp+44]
00405f90subs wzr, w0, 13
00405f94b.ls 0x405f74
00405f98ldr x0, [sp+24]
00405f9cldr w0, [x0+100]
00405fa0ubfm w1, w0, 29, 28
00405fa4ldr x0, [sp+24]
00405fa8ldr w0, [x0+96]
00405facubfm w0, w0, 29, 31
00405fb0orr w1, w1, w0
00405fb4ldr x0, [sp+24]
00405fb8str w1, [x0+56]
00405fbcldr x0, [sp+24]
00405fc0ldr w0, [x0+96]
00405fc4ubfm w1, w0, 29, 28
00405fc8ldr x0, [sp+24]
00405fccstr w1, [x0+60]
00405fd0ldr x0, [sp+24]
00405fd4bl _hash
00405fd8str wzr, [sp+44]
00405fdcb 0x406040
00405fe0
00405fe0loc_405fe0:
00405fe0ldr w0, [sp+44]
00405fe4and w1, w0, 15
00405fe8ldr x0, [sp+24]
00405fecmov w1, w1
00405ff0str wzr, [x0+2*x1]
00405ff4ldr w0, [sp+44]
00405ff8ubfm w1, w0, 2, 31
00405ffcldr x0, [sp+24]
00406000mov w1, w1
00406004add x1, x1, 16
00406008ldr w1, [x0+2*x1]
0040600cldr w0, [sp+44]
00406010orn w0, wzr, w0
00406014ubfm w0, w0, 29, 28
00406018and w0, w0, 24
0040601clsrv w2, w1, w0
00406020ldr w0, [sp+44]
00406024ldr x1, [sp+16]
00406028add x0, x1, x0
0040602cand w1, w2, 255
00406030strb w1, [x0]
00406034ldr w0, [sp+44]
00406038add w0, w0, 1
0040603cstr w0, [sp+44]
00406040
00406040loc_406040:
00406040ldr w0, [sp+44]
00406044subs wzr, w0, 31
00406048b.ls 0x405fe0
0040604chint
00406050hint
00406054ldp x29, x30, [sp], 48
00406058ret x30
00405e50
0040605c
0040605cthpool_init:
0040605cstp x29, x30, [sp-48]!
00406060add x29, sp, 0
00406064str w0, [sp+28]
00406068adrp x0, 0x14000
0040606cadd x0, x0, 692
00406070str wzr, [x0]
00406074adrp x0, 0x14000
00406078add x0, x0, 688
0040607cmovz w1, 1
00406080str w1, [x0]
00406084ldr w0, [sp+28]
00406088subs wzr, w0, 0
0040608cb.ge 0x406094
00406090str wzr, [sp+28]
00406094
00406094loc_406094:
00406094movz x0, 192
00406098bl malloc@plt
0040609cstr x0, [sp+32]
004060a0ldr x0, [sp+32]
004060a4subs xzr, x0, 0
004060a8b.ne 0x4060d8
004060acadrp x0, 0x14000
004060b0add x0, x0, 648
004060b4ldr x0, [x0]
004060b8mov x3, x0
004060bcmovz x2, 57
004060c0movz x1, 1
004060c4adrp x0, 4096
004060c8add x0, x0, 3912
004060ccbl fwrite@plt
004060d0movz x0, 0
004060d4b 0x40621c
004060d8
004060d8loc_4060d8:
004060d8ldr x0, [sp+32]
004060dcstr wzr, [x0+8]
004060e0ldr x0, [sp+32]
004060e4str wzr, [x0+12]
004060e8ldr x0, [sp+32]
004060ecadd x0, x0, 112
004060f0bl jobqueue_init
004060f4adds wzr, w0, 1
004060f8b.ne 0x406130
004060fcadrp x0, 0x14000
00406100add x0, x0, 648
00406104ldr x0, [x0]
00406108mov x3, x0
0040610cmovz x2, 55
00406110movz x1, 1
00406114adrp x0, 4096
00406118add x0, x0, 3976
0040611cbl fwrite@plt
00406120ldr x0, [sp+32]
00406124bl free@plt
00406128movz x0, 0
0040612cb 0x40621c
00406130
00406130loc_406130:
00406130ldrsw x0, [sp+28]
00406134ubfm x0, x0, 61, 60
00406138bl malloc@plt
0040613cmov x1, x0
00406140ldr x0, [sp+32]
00406144str x1, [x0]
00406148ldr x0, [sp+32]
0040614cldr x0, [x0]
00406150subs xzr, x0, 0
00406154b.ne 0x406198
00406158adrp x0, 0x14000
0040615cadd x0, x0, 648
00406160ldr x0, [x0]
00406164mov x3, x0
00406168movz x2, 53
0040616cmovz x1, 1
00406170adrp x0, 4096
00406174add x0, x0, 4032
00406178bl fwrite@plt
0040617cldr x0, [sp+32]
00406180add x0, x0, 112
00406184bl jobqueue_destroy
00406188ldr x0, [sp+32]
0040618cbl free@plt
00406190movz x0, 0
00406194b 0x40621c
00406198
00406198loc_406198:
00406198ldr x0, [sp+32]
0040619cadd x0, x0, 16
004061a0movz x1, 0
004061a4bl pthread_mutex_init@plt
004061a8ldr x0, [sp+32]
004061acadd x0, x0, 64
004061b0movz x1, 0
004061b4bl pthread_cond_init@plt
004061b8str wzr, [sp+44]
004061bcb 0x4061f0
004061c0
004061c0loc_4061c0:
004061c0ldr x0, [sp+32]
004061c4ldr x1, [x0]
004061c8ldrsw x0, [sp+44]
004061ccubfm x0, x0, 61, 60
004061d0add x0, x1, x0
004061d4ldr w2, [sp+44]
004061d8mov x1, x0
004061dcldr x0, [sp+32]
004061e0bl thread_init
004061e4ldr w0, [sp+44]
004061e8add w0, w0, 1
004061ecstr w0, [sp+44]
004061f0
004061f0loc_4061f0:
004061f0ldr w1, [sp+44]
004061f4ldr w0, [sp+28]
004061f8subs wzr, w1, w0
004061fcb.lt 0x4061c0
00406200hint
00406204
00406204loc_406204:
00406204ldr x0, [sp+32]
00406208ldr w0, [x0+8]
0040620cldr w1, [sp+28]
00406210subs wzr, w1, w0
00406214b.ne 0x406204
00406218ldr x0, [sp+32]
0040621c
0040621cloc_40621c:
0040621cldp x29, x30, [sp], 48
00406220ret x30
0040605c
0040605cthpool_init:
0040605cstp x29, x30, [sp-48]!
00406060add x29, sp, 0
00406064str w0, [sp+28]
00406068adrp x0, 0x14000
0040606cadd x0, x0, 692
00406070str wzr, [x0]
00406074adrp x0, 0x14000
00406078add x0, x0, 688
0040607cmovz w1, 1
00406080str w1, [x0]
00406084ldr w0, [sp+28]
00406088subs wzr, w0, 0
0040608cb.ge 0x406094
00406090str wzr, [sp+28]
00406094
00406094loc_406094:
00406094movz x0, 192
00406098bl malloc@plt
0040609cstr x0, [sp+32]
004060a0ldr x0, [sp+32]
004060a4subs xzr, x0, 0
004060a8b.ne 0x4060d8
004060acadrp x0, 0x14000
004060b0add x0, x0, 648
004060b4ldr x0, [x0]
004060b8mov x3, x0
004060bcmovz x2, 57
004060c0movz x1, 1
004060c4adrp x0, 4096
004060c8add x0, x0, 3912
004060ccbl fwrite@plt
004060d0movz x0, 0
004060d4b 0x40621c
004060d8
004060d8loc_4060d8:
004060d8ldr x0, [sp+32]
004060dcstr wzr, [x0+8]
004060e0ldr x0, [sp+32]
004060e4str wzr, [x0+12]
004060e8ldr x0, [sp+32]
004060ecadd x0, x0, 112
004060f0bl jobqueue_init
004060f4adds wzr, w0, 1
004060f8b.ne 0x406130
004060fcadrp x0, 0x14000
00406100add x0, x0, 648
00406104ldr x0, [x0]
00406108mov x3, x0
0040610cmovz x2, 55
00406110movz x1, 1
00406114adrp x0, 4096
00406118add x0, x0, 3976
0040611cbl fwrite@plt
00406120ldr x0, [sp+32]
00406124bl free@plt
00406128movz x0, 0
0040612cb 0x40621c
00406130
00406130loc_406130:
00406130ldrsw x0, [sp+28]
00406134ubfm x0, x0, 61, 60
00406138bl malloc@plt
0040613cmov x1, x0
00406140ldr x0, [sp+32]
00406144str x1, [x0]
00406148ldr x0, [sp+32]
0040614cldr x0, [x0]
00406150subs xzr, x0, 0
00406154b.ne 0x406198
00406158adrp x0, 0x14000
0040615cadd x0, x0, 648
00406160ldr x0, [x0]
00406164mov x3, x0
00406168movz x2, 53
0040616cmovz x1, 1
00406170adrp x0, 4096
00406174add x0, x0, 4032
00406178bl fwrite@plt
0040617cldr x0, [sp+32]
00406180add x0, x0, 112
00406184bl jobqueue_destroy
00406188ldr x0, [sp+32]
0040618cbl free@plt
00406190movz x0, 0
00406194b 0x40621c
00406198
00406198loc_406198:
00406198ldr x0, [sp+32]
0040619cadd x0, x0, 16
004061a0movz x1, 0
004061a4bl pthread_mutex_init@plt
004061a8ldr x0, [sp+32]
004061acadd x0, x0, 64
004061b0movz x1, 0
004061b4bl pthread_cond_init@plt
004061b8str wzr, [sp+44]
004061bcb 0x4061f0
004061c0
004061c0loc_4061c0:
004061c0ldr x0, [sp+32]
004061c4ldr x1, [x0]
004061c8ldrsw x0, [sp+44]
004061ccubfm x0, x0, 61, 60
004061d0add x0, x1, x0
004061d4ldr w2, [sp+44]
004061d8mov x1, x0
004061dcldr x0, [sp+32]
004061e0bl thread_init
004061e4ldr w0, [sp+44]
004061e8add w0, w0, 1
004061ecstr w0, [sp+44]
004061f0
004061f0loc_4061f0:
004061f0ldr w1, [sp+44]
004061f4ldr w0, [sp+28]
004061f8subs wzr, w1, w0
004061fcb.lt 0x4061c0
00406200hint
00406204
00406204loc_406204:
00406204ldr x0, [sp+32]
00406208ldr w0, [x0+8]
0040620cldr w1, [sp+28]
00406210subs wzr, w1, w0
00406214b.ne 0x406204
00406218ldr x0, [sp+32]
0040621c
0040621cloc_40621c:
0040621cldp x29, x30, [sp], 48
00406220ret x30
0040605c
00406224
00406224thpool_add_work:
00406224stp x29, x30, [sp-64]!
00406228add x29, sp, 0
0040622cstr x0, [sp+40]
00406230str x1, [sp+32]
00406234str x2, [sp+24]
00406238movz x0, 24
0040623cbl malloc@plt
00406240str x0, [sp+56]
00406244ldr x0, [sp+56]
00406248subs xzr, x0, 0
0040624cb.ne 0x40627c
00406250adrp x0, 0x14000
00406254add x0, x0, 648
00406258ldr x0, [x0]
0040625cmov x3, x0
00406260movz x2, 57
00406264movz x1, 1
00406268adrp x0, 4096
0040626cadd x0, x0, 4088
00406270bl fwrite@plt
00406274movn w0, 0
00406278b 0x4062a8
0040627c
0040627cloc_40627c:
0040627cldr x0, [sp+56]
00406280ldr x1, [sp+32]
00406284str x1, [x0+8]
00406288ldr x0, [sp+56]
0040628cldr x1, [sp+24]
00406290str x1, [x0+16]
00406294ldr x0, [sp+40]
00406298add x0, x0, 112
0040629cldr x1, [sp+56]
004062a0bl jobqueue_push
004062a4movz w0, 0
004062a8
004062a8loc_4062a8:
004062a8ldp x29, x30, [sp], 64
004062acret x30
00406224
00406224thpool_add_work:
00406224stp x29, x30, [sp-64]!
00406228add x29, sp, 0
0040622cstr x0, [sp+40]
00406230str x1, [sp+32]
00406234str x2, [sp+24]
00406238movz x0, 24
0040623cbl malloc@plt
00406240str x0, [sp+56]
00406244ldr x0, [sp+56]
00406248subs xzr, x0, 0
0040624cb.ne 0x40627c
00406250adrp x0, 0x14000
00406254add x0, x0, 648
00406258ldr x0, [x0]
0040625cmov x3, x0
00406260movz x2, 57
00406264movz x1, 1
00406268adrp x0, 4096
0040626cadd x0, x0, 4088
00406270bl fwrite@plt
00406274movn w0, 0
00406278b 0x4062a8
0040627c
0040627cloc_40627c:
0040627cldr x0, [sp+56]
00406280ldr x1, [sp+32]
00406284str x1, [x0+8]
00406288ldr x0, [sp+56]
0040628cldr x1, [sp+24]
00406290str x1, [x0+16]
00406294ldr x0, [sp+40]
00406298add x0, x0, 112
0040629cldr x1, [sp+56]
004062a0bl jobqueue_push
004062a4movz w0, 0
004062a8
004062a8loc_4062a8:
004062a8ldp x29, x30, [sp], 64
004062acret x30
00406224
004062b0
004062b0thpool_wait:
004062b0stp x29, x30, [sp-32]!
004062b4add x29, sp, 0
004062b8str x0, [sp+24]
004062bcldr x0, [sp+24]
004062c0add x0, x0, 16
004062c4bl pthread_mutex_lock@plt
004062c8b 0x4062e8
004062cc
004062ccloc_4062cc:
004062ccldr x0, [sp+24]
004062d0add x2, x0, 64
004062d4ldr x0, [sp+24]
004062d8add x0, x0, 16
004062dcmov x1, x0
004062e0mov x0, x2
004062e4bl pthread_cond_wait@plt
004062e8
004062e8loc_4062e8:
004062e8ldr x0, [sp+24]
004062ecldr w0, [x0+184]
004062f0subs wzr, w0, 0
004062f4b.ne 0x4062cc
004062f8ldr x0, [sp+24]
004062fcldr w0, [x0+12]
00406300subs wzr, w0, 0
00406304b.ne 0x4062cc
00406308ldr x0, [sp+24]
0040630cadd x0, x0, 16
00406310bl pthread_mutex_unlock@plt
00406314hint
00406318ldp x29, x30, [sp], 32
0040631cret x30
004062b0
004062b0thpool_wait:
004062b0stp x29, x30, [sp-32]!
004062b4add x29, sp, 0
004062b8str x0, [sp+24]
004062bcldr x0, [sp+24]
004062c0add x0, x0, 16
004062c4bl pthread_mutex_lock@plt
004062c8b 0x4062e8
004062cc
004062ccloc_4062cc:
004062ccldr x0, [sp+24]
004062d0add x2, x0, 64
004062d4ldr x0, [sp+24]
004062d8add x0, x0, 16
004062dcmov x1, x0
004062e0mov x0, x2
004062e4bl pthread_cond_wait@plt
004062e8
004062e8loc_4062e8:
004062e8ldr x0, [sp+24]
004062ecldr w0, [x0+184]
004062f0subs wzr, w0, 0
004062f4b.ne 0x4062cc
004062f8ldr x0, [sp+24]
004062fcldr w0, [x0+12]
00406300subs wzr, w0, 0
00406304b.ne 0x4062cc
00406308ldr x0, [sp+24]
0040630cadd x0, x0, 16
00406310bl pthread_mutex_unlock@plt
00406314hint
00406318ldp x29, x30, [sp], 32
0040631cret x30
004062b0
00406320
00406320thpool_destroy:
00406320stp x29, x30, [sp-80]!
00406324add x29, sp, 0
00406328str x0, [sp+24]
0040632cldr x0, [sp+24]
00406330subs xzr, x0, 0
00406334b.eq 0x40643c
00406338ldr x0, [sp+24]
0040633cldr w0, [x0+8]
00406340str w0, [sp+52]
00406344adrp x0, 0x14000
00406348add x0, x0, 688
0040634cstr wzr, [x0]
00406350fmov d0
00406354str d0, [sp+56]
00406358str xzr, [sp+72]
0040635cadd x0, sp, 40
00406360bl time@plt
00406364b 0x40638c
00406368
00406368loc_406368:
00406368ldr x0, [sp+24]
0040636cldr x0, [x0+176]
00406370bl bsem_post_all
00406374add x0, sp, 32
00406378bl time@plt
0040637cldr x0, [sp+32]
00406380ldr x1, [sp+40]
00406384bl difftime@plt
00406388str d0, [sp+72]
0040638c
0040638cloc_40638c:
0040638cldr d1, [sp+72]
00406390ldr d0, [sp+56]
00406394fcmpe d1, d0
00406398b.mi 0x4063a0
0040639cb 0x4063b0
004063a0
004063a0loc_4063a0:
004063a0ldr x0, [sp+24]
004063a4ldr w0, [x0+8]
004063a8subs wzr, w0, 0
004063acb.ne 0x406368
004063b0
004063b0loc_4063b0:
004063b0b 0x4063c8
004063b4
004063b4loc_4063b4:
004063b4ldr x0, [sp+24]
004063b8ldr x0, [x0+176]
004063bcbl bsem_post_all
004063c0movz w0, 1
004063c4bl sleep@plt
004063c8
004063c8loc_4063c8:
004063c8ldr x0, [sp+24]
004063ccldr w0, [x0+8]
004063d0subs wzr, w0, 0
004063d4b.ne 0x4063b4
004063d8ldr x0, [sp+24]
004063dcadd x0, x0, 112
004063e0bl jobqueue_destroy
004063e4str wzr, [sp+68]
004063e8b 0x406414
004063ec
004063ecloc_4063ec:
004063ecldr x0, [sp+24]
004063f0ldr x1, [x0]
004063f4ldrsw x0, [sp+68]
004063f8ubfm x0, x0, 61, 60
004063fcadd x0, x1, x0
00406400ldr x0, [x0]
00406404bl thread_destroy
00406408ldr w0, [sp+68]
0040640cadd w0, w0, 1
00406410str w0, [sp+68]
00406414
00406414loc_406414:
00406414ldr w0, [sp+52]
00406418ldr w1, [sp+68]
0040641csubs wzr, w1, w0
00406420b.lt 0x4063ec
00406424ldr x0, [sp+24]
00406428ldr x0, [x0]
0040642cbl free@plt
00406430ldr x0, [sp+24]
00406434bl free@plt
00406438b 0x406440
0040643c
0040643cloc_40643c:
0040643chint
00406440
00406440loc_406440:
00406440ldp x29, x30, [sp], 80
00406444ret x30
00406320
00406320thpool_destroy:
00406320stp x29, x30, [sp-80]!
00406324add x29, sp, 0
00406328str x0, [sp+24]
0040632cldr x0, [sp+24]
00406330subs xzr, x0, 0
00406334b.eq 0x40643c
00406338ldr x0, [sp+24]
0040633cldr w0, [x0+8]
00406340str w0, [sp+52]
00406344adrp x0, 0x14000
00406348add x0, x0, 688
0040634cstr wzr, [x0]
00406350fmov d0
00406354str d0, [sp+56]
00406358str xzr, [sp+72]
0040635cadd x0, sp, 40
00406360bl time@plt
00406364b 0x40638c
00406368
00406368loc_406368:
00406368ldr x0, [sp+24]
0040636cldr x0, [x0+176]
00406370bl bsem_post_all
00406374add x0, sp, 32
00406378bl time@plt
0040637cldr x0, [sp+32]
00406380ldr x1, [sp+40]
00406384bl difftime@plt
00406388str d0, [sp+72]
0040638c
0040638cloc_40638c:
0040638cldr d1, [sp+72]
00406390ldr d0, [sp+56]
00406394fcmpe d1, d0
00406398b.mi 0x4063a0
0040639cb 0x4063b0
004063a0
004063a0loc_4063a0:
004063a0ldr x0, [sp+24]
004063a4ldr w0, [x0+8]
004063a8subs wzr, w0, 0
004063acb.ne 0x406368
004063b0
004063b0loc_4063b0:
004063b0b 0x4063c8
004063b4
004063b4loc_4063b4:
004063b4ldr x0, [sp+24]
004063b8ldr x0, [x0+176]
004063bcbl bsem_post_all
004063c0movz w0, 1
004063c4bl sleep@plt
004063c8
004063c8loc_4063c8:
004063c8ldr x0, [sp+24]
004063ccldr w0, [x0+8]
004063d0subs wzr, w0, 0
004063d4b.ne 0x4063b4
004063d8ldr x0, [sp+24]
004063dcadd x0, x0, 112
004063e0bl jobqueue_destroy
004063e4str wzr, [sp+68]
004063e8b 0x406414
004063ec
004063ecloc_4063ec:
004063ecldr x0, [sp+24]
004063f0ldr x1, [x0]
004063f4ldrsw x0, [sp+68]
004063f8ubfm x0, x0, 61, 60
004063fcadd x0, x1, x0
00406400ldr x0, [x0]
00406404bl thread_destroy
00406408ldr w0, [sp+68]
0040640cadd w0, w0, 1
00406410str w0, [sp+68]
00406414
00406414loc_406414:
00406414ldr w0, [sp+52]
00406418ldr w1, [sp+68]
0040641csubs wzr, w1, w0
00406420b.lt 0x4063ec
00406424ldr x0, [sp+24]
00406428ldr x0, [x0]
0040642cbl free@plt
00406430ldr x0, [sp+24]
00406434bl free@plt
00406438b 0x406440
0040643c
0040643cloc_40643c:
0040643chint
00406440
00406440loc_406440:
00406440ldp x29, x30, [sp], 80
00406444ret x30
00406320
00406448
00406448thpool_pause:
00406448stp x29, x30, [sp-48]!
0040644cadd x29, sp, 0
00406450str x0, [sp+24]
00406454str wzr, [sp+44]
00406458b 0x40648c
0040645c
0040645cloc_40645c:
0040645cldr x0, [sp+24]
00406460ldr x1, [x0]
00406464ldrsw x0, [sp+44]
00406468ubfm x0, x0, 61, 60
0040646cadd x0, x1, x0
00406470ldr x0, [x0]
00406474ldr x0, [x0+8]
00406478movz w1, 10
0040647cbl pthread_kill@plt
00406480ldr w0, [sp+44]
00406484add w0, w0, 1
00406488str w0, [sp+44]
0040648c
0040648cloc_40648c:
0040648cldr x0, [sp+24]
00406490ldr w0, [x0+8]
00406494ldr w1, [sp+44]
00406498subs wzr, w1, w0
0040649cb.lt 0x40645c
004064a0hint
004064a4hint
004064a8ldp x29, x30, [sp], 48
004064acret x30
00406448
00406448thpool_pause:
00406448stp x29, x30, [sp-48]!
0040644cadd x29, sp, 0
00406450str x0, [sp+24]
00406454str wzr, [sp+44]
00406458b 0x40648c
0040645c
0040645cloc_40645c:
0040645cldr x0, [sp+24]
00406460ldr x1, [x0]
00406464ldrsw x0, [sp+44]
00406468ubfm x0, x0, 61, 60
0040646cadd x0, x1, x0
00406470ldr x0, [x0]
00406474ldr x0, [x0+8]
00406478movz w1, 10
0040647cbl pthread_kill@plt
00406480ldr w0, [sp+44]
00406484add w0, w0, 1
00406488str w0, [sp+44]
0040648c
0040648cloc_40648c:
0040648cldr x0, [sp+24]
00406490ldr w0, [x0+8]
00406494ldr w1, [sp+44]
00406498subs wzr, w1, w0
0040649cb.lt 0x40645c
004064a0hint
004064a4hint
004064a8ldp x29, x30, [sp], 48
004064acret x30
00406448
004064b0
004064b0thpool_resume:
004064b0sub sp, sp, 16
004064b4str x0, [sp+8]
004064b8adrp x0, 0x14000
004064bcadd x0, x0, 692
004064c0str wzr, [x0]
004064c4hint
004064c8add sp, sp, 16
004064ccret x30
004064b0
004064b0thpool_resume:
004064b0sub sp, sp, 16
004064b4str x0, [sp+8]
004064b8adrp x0, 0x14000
004064bcadd x0, x0, 692
004064c0str wzr, [x0]
004064c4hint
004064c8add sp, sp, 16
004064ccret x30
004064b0
004064d0
004064d0thpool_num_threads_working:
004064d0sub sp, sp, 16
004064d4str x0, [sp+8]
004064d8ldr x0, [sp+8]
004064dcldr w0, [x0+12]
004064e0add sp, sp, 16
004064e4ret x30
004064d0
004064d0thpool_num_threads_working:
004064d0sub sp, sp, 16
004064d4str x0, [sp+8]
004064d8ldr x0, [sp+8]
004064dcldr w0, [x0+12]
004064e0add sp, sp, 16
004064e4ret x30
004064d0
004064e8
004064e8thread_init:
004064e8stp x29, x30, [sp-48]!
004064ecadd x29, sp, 0
004064f0str x0, [sp+40]
004064f4str x1, [sp+32]
004064f8str w2, [sp+28]
004064fcmovz x0, 24
00406500bl malloc@plt
00406504mov x1, x0
00406508ldr x0, [sp+32]
0040650cstr x1, [x0]
00406510ldr x0, [sp+32]
00406514ldr x0, [x0]
00406518subs xzr, x0, 0
0040651cb.ne 0x40654c
00406520adrp x0, 0x14000
00406524add x0, x0, 648
00406528ldr x0, [x0]
0040652cmov x3, x0
00406530movz x2, 52
00406534movz x1, 1
00406538adrp x0, 8192
0040653cadd x0, x0, 56
00406540bl fwrite@plt
00406544movn w0, 0
00406548b 0x4065ac
0040654c
0040654cloc_40654c:
0040654cldr x0, [sp+32]
00406550ldr x0, [x0]
00406554ldr x1, [sp+40]
00406558str x1, [x0+16]
0040655cldr x0, [sp+32]
00406560ldr x0, [x0]
00406564ldr w1, [sp+28]
00406568str w1, [x0]
0040656cldr x0, [sp+32]
00406570ldr x0, [x0]
00406574add x4, x0, 8
00406578ldr x0, [sp+32]
0040657cldr x0, [x0]
00406580mov x3, x0
00406584adrp x0, 0
00406588add x2, x0, 1536
0040658cmovz x1, 0
00406590mov x0, x4
00406594bl pthread_create@plt
00406598ldr x0, [sp+32]
0040659cldr x0, [x0]
004065a0ldr x0, [x0+8]
004065a4bl pthread_detach@plt
004065a8movz w0, 0
004065ac
004065acloc_4065ac:
004065acldp x29, x30, [sp], 48
004065b0ret x30
004064e8
004064e8thread_init:
004064e8stp x29, x30, [sp-48]!
004064ecadd x29, sp, 0
004064f0str x0, [sp+40]
004064f4str x1, [sp+32]
004064f8str w2, [sp+28]
004064fcmovz x0, 24
00406500bl malloc@plt
00406504mov x1, x0
00406508ldr x0, [sp+32]
0040650cstr x1, [x0]
00406510ldr x0, [sp+32]
00406514ldr x0, [x0]
00406518subs xzr, x0, 0
0040651cb.ne 0x40654c
00406520adrp x0, 0x14000
00406524add x0, x0, 648
00406528ldr x0, [x0]
0040652cmov x3, x0
00406530movz x2, 52
00406534movz x1, 1
00406538adrp x0, 8192
0040653cadd x0, x0, 56
00406540bl fwrite@plt
00406544movn w0, 0
00406548b 0x4065ac
0040654c
0040654cloc_40654c:
0040654cldr x0, [sp+32]
00406550ldr x0, [x0]
00406554ldr x1, [sp+40]
00406558str x1, [x0+16]
0040655cldr x0, [sp+32]
00406560ldr x0, [x0]
00406564ldr w1, [sp+28]
00406568str w1, [x0]
0040656cldr x0, [sp+32]
00406570ldr x0, [x0]
00406574add x4, x0, 8
00406578ldr x0, [sp+32]
0040657cldr x0, [x0]
00406580mov x3, x0
00406584adrp x0, 0
00406588add x2, x0, 1536
0040658cmovz x1, 0
00406590mov x0, x4
00406594bl pthread_create@plt
00406598ldr x0, [sp+32]
0040659cldr x0, [x0]
004065a0ldr x0, [x0+8]
004065a4bl pthread_detach@plt
004065a8movz w0, 0
004065ac
004065acloc_4065ac:
004065acldp x29, x30, [sp], 48
004065b0ret x30
004064e8
004065b4
004065b4thread_hold:
004065b4stp x29, x30, [sp-32]!
004065b8add x29, sp, 0
004065bcstr w0, [sp+28]
004065c0adrp x0, 0x14000
004065c4add x0, x0, 692
004065c8movz w1, 1
004065ccstr w1, [x0]
004065d0b 0x4065dc
004065d4
004065d4loc_4065d4:
004065d4movz w0, 1
004065d8bl sleep@plt
004065dc
004065dcloc_4065dc:
004065dcadrp x0, 0x14000
004065e0add x0, x0, 692
004065e4ldr w0, [x0]
004065e8subs wzr, w0, 0
004065ecb.ne 0x4065d4
004065f0hint
004065f4hint
004065f8ldp x29, x30, [sp], 32
004065fcret x30
004065b4
004065b4thread_hold:
004065b4stp x29, x30, [sp-32]!
004065b8add x29, sp, 0
004065bcstr w0, [sp+28]
004065c0adrp x0, 0x14000
004065c4add x0, x0, 692
004065c8movz w1, 1
004065ccstr w1, [x0]
004065d0b 0x4065dc
004065d4
004065d4loc_4065d4:
004065d4movz w0, 1
004065d8bl sleep@plt
004065dc
004065dcloc_4065dc:
004065dcadrp x0, 0x14000
004065e0add x0, x0, 692
004065e4ldr w0, [x0]
004065e8subs wzr, w0, 0
004065ecb.ne 0x4065d4
004065f0hint
004065f4hint
004065f8ldp x29, x30, [sp], 32
004065fcret x30
004065b4
00406600
00406600thread_do:
00406600stp x29, x30, [sp-256]!
00406604add x29, sp, 0
00406608str x0, [sp+24]
0040660cstp xzr, xzr, [sp+192]
00406610stp xzr, xzr, [sp+208]
00406614ldr x0, [sp+24]
00406618ldr w0, [x0]
0040661cadd x4, sp, 192
00406620mov w3, w0
00406624adrp x0, 8192
00406628add x2, x0, 112
0040662cmovz x1, 32
00406630mov x0, x4
00406634bl snprintf@plt
00406638add x0, sp, 192
0040663cmov x1, x0
00406640movz w0, 15
00406644bl prctl@plt
00406648ldr x0, [sp+24]
0040664cldr x0, [x0+16]
00406650str x0, [sp+248]
00406654add x0, sp, 40
00406658add x0, x0, 8
0040665cbl sigemptyset@plt
00406660str wzr, [sp+176]
00406664adrp x0, 0
00406668add x0, x0, 1460
0040666cstr x0, [sp+40]
00406670add x0, sp, 40
00406674movz x2, 0
00406678mov x1, x0
0040667cmovz w0, 10
00406680bl sigaction@plt
00406684adds wzr, w0, 1
00406688b.ne 0x4066b0
0040668cadrp x0, 0x14000
00406690add x0, x0, 648
00406694ldr x0, [x0]
00406698mov x3, x0
0040669cmovz x2, 34
004066a0movz x1, 1
004066a4adrp x0, 8192
004066a8add x0, x0, 128
004066acbl fwrite@plt
004066b0
004066b0loc_4066b0:
004066b0ldr x0, [sp+248]
004066b4add x0, x0, 16
004066b8bl pthread_mutex_lock@plt
004066bcldr x0, [sp+248]
004066c0ldr w0, [x0+8]
004066c4add w1, w0, 1
004066c8ldr x0, [sp+248]
004066ccstr w1, [x0+8]
004066d0ldr x0, [sp+248]
004066d4add x0, x0, 16
004066d8bl pthread_mutex_unlock@plt
004066dcb 0x4067bc
004066e0
004066e0loc_4066e0:
004066e0ldr x0, [sp+248]
004066e4ldr x0, [x0+176]
004066e8bl bsem_wait
004066ecadrp x0, 0x14000
004066f0add x0, x0, 688
004066f4ldr w0, [x0]
004066f8subs wzr, w0, 0
004066fcb.eq 0x4067bc
00406700ldr x0, [sp+248]
00406704add x0, x0, 16
00406708bl pthread_mutex_lock@plt
0040670cldr x0, [sp+248]
00406710ldr w0, [x0+12]
00406714add w1, w0, 1
00406718ldr x0, [sp+248]
0040671cstr w1, [x0+12]
00406720ldr x0, [sp+248]
00406724add x0, x0, 16
00406728bl pthread_mutex_unlock@plt
0040672cldr x0, [sp+248]
00406730add x0, x0, 112
00406734bl jobqueue_pull
00406738str x0, [sp+240]
0040673cldr x0, [sp+240]
00406740subs xzr, x0, 0
00406744b.eq 0x406774
00406748ldr x0, [sp+240]
0040674cldr x0, [x0+8]
00406750str x0, [sp+232]
00406754ldr x0, [sp+240]
00406758ldr x0, [x0+16]
0040675cstr x0, [sp+224]
00406760ldr x1, [sp+232]
00406764ldr x0, [sp+224]
00406768blr x1
0040676cldr x0, [sp+240]
00406770bl free@plt
00406774
00406774loc_406774:
00406774ldr x0, [sp+248]
00406778add x0, x0, 16
0040677cbl pthread_mutex_lock@plt
00406780ldr x0, [sp+248]
00406784ldr w0, [x0+12]
00406788sub w1, w0, 1
0040678cldr x0, [sp+248]
00406790str w1, [x0+12]
00406794ldr x0, [sp+248]
00406798ldr w0, [x0+12]
0040679csubs wzr, w0, 0
004067a0b.ne 0x4067b0
004067a4ldr x0, [sp+248]
004067a8add x0, x0, 64
004067acbl pthread_cond_signal@plt
004067b0
004067b0loc_4067b0:
004067b0ldr x0, [sp+248]
004067b4add x0, x0, 16
004067b8bl pthread_mutex_unlock@plt
004067bc
004067bcloc_4067bc:
004067bcadrp x0, 0x14000
004067c0add x0, x0, 688
004067c4ldr w0, [x0]
004067c8subs wzr, w0, 0
004067ccb.ne 0x4066e0
004067d0ldr x0, [sp+248]
004067d4add x0, x0, 16
004067d8bl pthread_mutex_lock@plt
004067dcldr x0, [sp+248]
004067e0ldr w0, [x0+8]
004067e4sub w1, w0, 1
004067e8ldr x0, [sp+248]
004067ecstr w1, [x0+8]
004067f0ldr x0, [sp+248]
004067f4add x0, x0, 16
004067f8bl pthread_mutex_unlock@plt
004067fcmovz x0, 0
00406800ldp x29, x30, [sp], 256
00406804ret x30
00406600
00406600thread_do:
00406600stp x29, x30, [sp-256]!
00406604add x29, sp, 0
00406608str x0, [sp+24]
0040660cstp xzr, xzr, [sp+192]
00406610stp xzr, xzr, [sp+208]
00406614ldr x0, [sp+24]
00406618ldr w0, [x0]
0040661cadd x4, sp, 192
00406620mov w3, w0
00406624adrp x0, 8192
00406628add x2, x0, 112
0040662cmovz x1, 32
00406630mov x0, x4
00406634bl snprintf@plt
00406638add x0, sp, 192
0040663cmov x1, x0
00406640movz w0, 15
00406644bl prctl@plt
00406648ldr x0, [sp+24]
0040664cldr x0, [x0+16]
00406650str x0, [sp+248]
00406654add x0, sp, 40
00406658add x0, x0, 8
0040665cbl sigemptyset@plt
00406660str wzr, [sp+176]
00406664adrp x0, 0
00406668add x0, x0, 1460
0040666cstr x0, [sp+40]
00406670add x0, sp, 40
00406674movz x2, 0
00406678mov x1, x0
0040667cmovz w0, 10
00406680bl sigaction@plt
00406684adds wzr, w0, 1
00406688b.ne 0x4066b0
0040668cadrp x0, 0x14000
00406690add x0, x0, 648
00406694ldr x0, [x0]
00406698mov x3, x0
0040669cmovz x2, 34
004066a0movz x1, 1
004066a4adrp x0, 8192
004066a8add x0, x0, 128
004066acbl fwrite@plt
004066b0
004066b0loc_4066b0:
004066b0ldr x0, [sp+248]
004066b4add x0, x0, 16
004066b8bl pthread_mutex_lock@plt
004066bcldr x0, [sp+248]
004066c0ldr w0, [x0+8]
004066c4add w1, w0, 1
004066c8ldr x0, [sp+248]
004066ccstr w1, [x0+8]
004066d0ldr x0, [sp+248]
004066d4add x0, x0, 16
004066d8bl pthread_mutex_unlock@plt
004066dcb 0x4067bc
004066e0
004066e0loc_4066e0:
004066e0ldr x0, [sp+248]
004066e4ldr x0, [x0+176]
004066e8bl bsem_wait
004066ecadrp x0, 0x14000
004066f0add x0, x0, 688
004066f4ldr w0, [x0]
004066f8subs wzr, w0, 0
004066fcb.eq 0x4067bc
00406700ldr x0, [sp+248]
00406704add x0, x0, 16
00406708bl pthread_mutex_lock@plt
0040670cldr x0, [sp+248]
00406710ldr w0, [x0+12]
00406714add w1, w0, 1
00406718ldr x0, [sp+248]
0040671cstr w1, [x0+12]
00406720ldr x0, [sp+248]
00406724add x0, x0, 16
00406728bl pthread_mutex_unlock@plt
0040672cldr x0, [sp+248]
00406730add x0, x0, 112
00406734bl jobqueue_pull
00406738str x0, [sp+240]
0040673cldr x0, [sp+240]
00406740subs xzr, x0, 0
00406744b.eq 0x406774
00406748ldr x0, [sp+240]
0040674cldr x0, [x0+8]
00406750str x0, [sp+232]
00406754ldr x0, [sp+240]
00406758ldr x0, [x0+16]
0040675cstr x0, [sp+224]
00406760ldr x1, [sp+232]
00406764ldr x0, [sp+224]
00406768blr x1
0040676cldr x0, [sp+240]
00406770bl free@plt
00406774
00406774loc_406774:
00406774ldr x0, [sp+248]
00406778add x0, x0, 16
0040677cbl pthread_mutex_lock@plt
00406780ldr x0, [sp+248]
00406784ldr w0, [x0+12]
00406788sub w1, w0, 1
0040678cldr x0, [sp+248]
00406790str w1, [x0+12]
00406794ldr x0, [sp+248]
00406798ldr w0, [x0+12]
0040679csubs wzr, w0, 0
004067a0b.ne 0x4067b0
004067a4ldr x0, [sp+248]
004067a8add x0, x0, 64
004067acbl pthread_cond_signal@plt
004067b0
004067b0loc_4067b0:
004067b0ldr x0, [sp+248]
004067b4add x0, x0, 16
004067b8bl pthread_mutex_unlock@plt
004067bc
004067bcloc_4067bc:
004067bcadrp x0, 0x14000
004067c0add x0, x0, 688
004067c4ldr w0, [x0]
004067c8subs wzr, w0, 0
004067ccb.ne 0x4066e0
004067d0ldr x0, [sp+248]
004067d4add x0, x0, 16
004067d8bl pthread_mutex_lock@plt
004067dcldr x0, [sp+248]
004067e0ldr w0, [x0+8]
004067e4sub w1, w0, 1
004067e8ldr x0, [sp+248]
004067ecstr w1, [x0+8]
004067f0ldr x0, [sp+248]
004067f4add x0, x0, 16
004067f8bl pthread_mutex_unlock@plt
004067fcmovz x0, 0
00406800ldp x29, x30, [sp], 256
00406804ret x30
00406600
Loading..