File sliver_83cb34f62800fed14e14547c39337aab8e0427fe2c6310a3fb40ce0ac36168c9.elf
Function:
    00589540
    00589540crypto/internal/fips140/ecdsa.verifyGeneric[go.shape.*crypto/internal/fips140/nistec.P521Point]: ; void crypto/internal/fips140/ecdsa.verifyGeneric[go.shape.*crypto/internal/fips140/nistec.P521Point](uintptr[9] * dict, crypto/internal/fips140/ecdsa.Curve[go.shape.*crypto/internal/fips140/nistec.P521Point] * c, crypto/internal/fips140/ecdsa.PublicKey * pub, struct []uint8 hash, crypto/internal/fips140/ecdsa.Signature * sig)
    00589540ldr x16, [x28+16]
    00589544sub x17, sp, 464
    00589548subs xzr, x17, x16
    0058954cb.ls 0x589be0
    00589550sub x20, sp, 592
    00589554stp x29, x30, [x20-8]
    00589558add sp, x20, 0
    0058955csub x29, sp, 8
    00589560str x0, [sp+600]
    00589564str x1, [sp+608]
    00589568str x2, [sp+616]
    0058956cstr x3, [sp+624]
    00589570str x4, [sp+632]
    00589574str x5, [sp+640]
    00589578str x6, [sp+648]
    0058957cstp xzr, xzr, [sp+64]
    00589580ldr x0, [sp+608]
    00589584ldrsb x27, [x0]
    00589588ldr x26, [x0+16]
    0058958cldr x0, [x26]
    00589590blr x0
    00589594str x0, [sp+416]
    00589598str xzr, [sp+408]
    0058959cstp xzr, xzr, [sp+392]
    005895a0ldr x0, [sp+616]
    005895a4ldrsb x27, [x0]
    005895a8ldr x1, [x0+16]
    005895acldr x2, [x0+24]
    005895b0ldr x3, [x0+32]
    005895b4str x1, [sp+328]
    005895b8str x2, [sp+336]
    005895bcstr x3, [sp+344]
    005895c0ldr x26, [sp+600]
    005895c4ldrsb x27, [x26]
    005895c8ldr x0, [x26]
    005895ccldr x4, [sp+416]
    005895d0mov x5, x0
    005895d4mov x0, x4
    005895d8blr x5
    005895dcstr x0, [sp+408]
    005895e0str x1, [sp+392]
    005895e4str x2, [sp+400]
    005895e8ldr x0, [sp+408]
    005895ecstr x0, [sp+200]
    005895f0ldr x0, [sp+392]
    005895f4ldr x1, [sp+400]
    005895f8str x0, [sp+184]
    005895fcstr x1, [sp+192]
    00589600ldr x0, [sp+200]
    00589604str x0, [sp+176]
    00589608ldr x1, [sp+192]
    0058960cldr x0, [sp+184]
    00589610str x0, [sp+128]
    00589614str x1, [sp+136]
    00589618cbnz x0, 0x589620
    0058961cb 0x589634
    00589620
    00589620loc_589620:
    00589620str x0, [sp+64]
    00589624str x1, [sp+72]
    00589628ldp x29, x30, [sp-8]
    0058962cadd sp, sp, 592
    00589630ret x30
    00589634
    00589634loc_589634:
    00589634bl crypto/internal/fips140/bigmod.NewNat
    00589638str x0, [sp+384]
    0058963cstr xzr, [sp+376]
    00589640stp xzr, xzr, [sp+392]
    00589644ldr x0, [sp+648]
    00589648ldrsb x27, [x0]
    0058964cldr x1, [x0]
    00589650ldr x2, [x0+8]
    00589654ldr x0, [x0+16]
    00589658str x1, [sp+304]
    0058965cstr x2, [sp+312]
    00589660str x0, [sp+320]
    00589664ldr x0, [sp+608]
    00589668ldrsb x27, [x0]
    0058966cldr x4, [x0+32]
    00589670str x4, [sp+296]
    00589674ldr x1, [sp+304]
    00589678ldr x2, [sp+312]
    0058967cldr x3, [sp+320]
    00589680ldr x0, [sp+384]
    00589684bl crypto/internal/fips140/bigmod.(*Nat).SetBytes
    00589688str x0, [sp+376]
    0058968cstr x1, [sp+392]
    00589690str x2, [sp+400]
    00589694ldr x0, [sp+376]
    00589698str x0, [sp+576]
    0058969cldr x0, [sp+392]
    005896a0ldr x1, [sp+400]
    005896a4str x0, [sp+560]
    005896a8str x1, [sp+568]
    005896acldr x0, [sp+576]
    005896b0str x0, [sp+104]
    005896b4ldr x1, [sp+568]
    005896b8ldr x0, [sp+560]
    005896bcstr x0, [sp+128]
    005896c0str x1, [sp+136]
    005896c4cbnz x0, 0x5896cc
    005896c8b 0x5896e0
    005896cc
    005896ccloc_5896cc:
    005896ccstr x0, [sp+64]
    005896d0str x1, [sp+72]
    005896d4ldp x29, x30, [sp-8]
    005896d8add sp, sp, 592
    005896dcret x30
    005896e0
    005896e0loc_5896e0:
    005896e0ldr x0, [sp+104]
    005896e4bl crypto/internal/fips140/bigmod.(*Nat).IsZero
    005896e8str x0, [sp+56]
    005896ecsubs xzr, x0, 1
    005896f0b.eq 0x5896f8
    005896f4b 0x589724
    005896f8
    005896f8loc_5896f8:
    005896f8adrp x0, 0x137000
    005896fcadd x0, x0, 4031
    00589700movz x1, 35
    00589704bl errors.New
    00589708str x0, [sp+392]
    0058970cstr x1, [sp+400]
    00589710str x0, [sp+64]
    00589714str x1, [sp+72]
    00589718ldp x29, x30, [sp-8]
    0058971cadd sp, sp, 592
    00589720ret x30
    00589724
    00589724loc_589724:
    00589724bl crypto/internal/fips140/bigmod.NewNat
    00589728str x0, [sp+376]
    0058972cstr xzr, [sp+384]
    00589730stp xzr, xzr, [sp+392]
    00589734ldr x0, [sp+648]
    00589738ldrsb x27, [x0]
    0058973cldr x1, [x0+24]
    00589740ldr x2, [x0+32]
    00589744ldr x0, [x0+40]
    00589748str x1, [sp+272]
    0058974cstr x2, [sp+280]
    00589750str x0, [sp+288]
    00589754ldr x0, [sp+608]
    00589758ldrsb x27, [x0]
    0058975cldr x4, [x0+32]
    00589760str x4, [sp+264]
    00589764ldr x1, [sp+272]
    00589768ldr x2, [sp+280]
    0058976cldr x3, [sp+288]
    00589770ldr x0, [sp+376]
    00589774bl crypto/internal/fips140/bigmod.(*Nat).SetBytes
    00589778str x0, [sp+384]
    0058977cstr x1, [sp+392]
    00589780str x2, [sp+400]
    00589784ldr x0, [sp+384]
    00589788str x0, [sp+552]
    0058978cldr x0, [sp+392]
    00589790ldr x1, [sp+400]
    00589794str x0, [sp+536]
    00589798str x1, [sp+544]
    0058979cldr x0, [sp+552]
    005897a0str x0, [sp+96]
    005897a4ldr x1, [sp+544]
    005897a8ldr x0, [sp+536]
    005897acstr x0, [sp+128]
    005897b0str x1, [sp+136]
    005897b4cbnz x0, 0x5897bc
    005897b8b 0x5897d0
    005897bc
    005897bcloc_5897bc:
    005897bcstr x0, [sp+64]
    005897c0str x1, [sp+72]
    005897c4ldp x29, x30, [sp-8]
    005897c8add sp, sp, 592
    005897ccret x30
    005897d0
    005897d0loc_5897d0:
    005897d0ldr x0, [sp+96]
    005897d4bl crypto/internal/fips140/bigmod.(*Nat).IsZero
    005897d8str x0, [sp+56]
    005897dcsubs xzr, x0, 1
    005897e0b.eq 0x5897e8
    005897e4b 0x589814
    005897e8
    005897e8loc_5897e8:
    005897e8adrp x0, 0x137000
    005897ecadd x0, x0, 4066
    005897f0movz x1, 35
    005897f4bl errors.New
    005897f8str x0, [sp+392]
    005897fcstr x1, [sp+400]
    00589800str x0, [sp+64]
    00589804str x1, [sp+72]
    00589808ldp x29, x30, [sp-8]
    0058980cadd sp, sp, 592
    00589810ret x30
    00589814
    00589814loc_589814:
    00589814bl crypto/internal/fips140/bigmod.NewNat
    00589818str x0, [sp+144]
    0058981cldr x0, [sp+600]
    00589820ldrsb x27, [x0]
    00589824ldr x0, [x0+40]
    00589828str x0, [sp+256]
    0058982cldr x3, [sp+624]
    00589830ldr x2, [sp+144]
    00589834ldr x1, [sp+608]
    00589838ldr x4, [sp+632]
    0058983cldr x5, [sp+640]
    00589840bl crypto/internal/fips140/ecdsa.hashToNat[go.shape.*crypto/internal/fips140/nistec.P521Point]
    00589844bl crypto/internal/fips140/bigmod.NewNat
    00589848str x0, [sp+80]
    0058984cldr x0, [sp+600]
    00589850ldrsb x27, [x0]
    00589854ldr x0, [x0+48]
    00589858str x0, [sp+248]
    0058985cldr x2, [sp+80]
    00589860ldr x3, [sp+96]
    00589864ldr x1, [sp+608]
    00589868bl crypto/internal/fips140/ecdsa.inverse[go.shape.*crypto/internal/fips140/nistec.P521Point]
    0058986cldr x0, [sp+608]
    00589870ldrsb x27, [x0]
    00589874ldr x26, [x0+16]
    00589878ldr x0, [x26]
    0058987cblr x0
    00589880str x0, [sp+408]
    00589884ldr x0, [sp+608]
    00589888ldrsb x27, [x0]
    0058988cldr x2, [x0+32]
    00589890str x2, [sp+240]
    00589894ldr x0, [sp+144]
    00589898ldr x1, [sp+80]
    0058989cbl crypto/internal/fips140/bigmod.(*Nat).Mul
    005898a0str x0, [sp+384]
    005898a4ldr x0, [sp+608]
    005898a8ldrsb x27, [x0]
    005898acldr x1, [x0+32]
    005898b0str x1, [sp+232]
    005898b4ldr x0, [sp+384]
    005898b8bl crypto/internal/fips140/bigmod.(*Nat).Bytes
    005898bcstr x0, [sp+352]
    005898c0str x1, [sp+360]
    005898c4str x2, [sp+368]
    005898c8str xzr, [sp+416]
    005898ccstp xzr, xzr, [sp+392]
    005898d0ldr x0, [sp+600]
    005898d4ldrsb x27, [x0]
    005898d8add x26, x0, 8
    005898dcldr x0, [x0+8]
    005898e0ldr x1, [sp+352]
    005898e4ldr x2, [sp+360]
    005898e8ldr x3, [sp+368]
    005898ecldr x4, [sp+408]
    005898f0mov x5, x0
    005898f4mov x0, x4
    005898f8blr x5
    005898fcstr x0, [sp+416]
    00589900str x1, [sp+392]
    00589904str x2, [sp+400]
    00589908ldr x0, [sp+416]
    0058990cstr x0, [sp+528]
    00589910ldr x0, [sp+392]
    00589914ldr x1, [sp+400]
    00589918str x0, [sp+512]
    0058991cstr x1, [sp+520]
    00589920ldr x0, [sp+528]
    00589924str x0, [sp+120]
    00589928ldr x1, [sp+520]
    0058992cldr x0, [sp+512]
    00589930str x0, [sp+128]
    00589934str x1, [sp+136]
    00589938cbnz x0, 0x589940
    0058993cb 0x589954
    00589940
    00589940loc_589940:
    00589940str x0, [sp+64]
    00589944str x1, [sp+72]
    00589948ldp x29, x30, [sp-8]
    0058994cadd sp, sp, 592
    00589950ret x30
    00589954
    00589954loc_589954:
    00589954ldr x3, [sp+608]
    00589958ldrsb x27, [x3]
    0058995cldr x2, [x3+32]
    00589960str x2, [sp+224]
    00589964ldr x0, [sp+80]
    00589968ldr x1, [sp+104]
    0058996cbl crypto/internal/fips140/bigmod.(*Nat).Mul
    00589970str x0, [sp+384]
    00589974ldr x3, [sp+608]
    00589978ldrsb x27, [x3]
    0058997cldr x1, [x3+32]
    00589980str x1, [sp+216]
    00589984ldr x0, [sp+384]
    00589988bl crypto/internal/fips140/bigmod.(*Nat).Bytes
    0058998cstr x0, [sp+352]
    00589990str x1, [sp+360]
    00589994str x2, [sp+368]
    00589998str xzr, [sp+416]
    0058999cstp xzr, xzr, [sp+392]
    005899a0ldr x3, [sp+600]
    005899a4ldrsb x27, [x3]
    005899a8add x26, x3, 16
    005899acldr x0, [sp+176]
    005899b0ldr x1, [sp+176]
    005899b4ldr x3, [x3+16]
    005899b8ldr x2, [sp+352]
    005899bcldr x4, [sp+360]
    005899c0ldr x5, [sp+368]
    005899c4mov x6, x3
    005899c8mov x3, x4
    005899ccmov x4, x5
    005899d0blr x6
    005899d4str x0, [sp+416]
    005899d8str x1, [sp+392]
    005899dcstr x2, [sp+400]
    005899e0ldr x3, [sp+416]
    005899e4str x3, [sp+504]
    005899e8ldr x3, [sp+392]
    005899ecldr x4, [sp+400]
    005899f0str x3, [sp+488]
    005899f4str x4, [sp+496]
    005899f8ldr x3, [sp+504]
    005899fcstr x3, [sp+112]
    00589a00ldr x1, [sp+496]
    00589a04ldr x0, [sp+488]
    00589a08str x0, [sp+128]
    00589a0cstr x1, [sp+136]
    00589a10cbnz x0, 0x589a18
    00589a14b 0x589a2c
    00589a18
    00589a18loc_589a18:
    00589a18str x0, [sp+64]
    00589a1cstr x1, [sp+72]
    00589a20ldp x29, x30, [sp-8]
    00589a24add sp, sp, 592
    00589a28ret x30
    00589a2c
    00589a2cloc_589a2c:
    00589a2cldr x3, [sp+600]
    00589a30ldrsb x27, [x3]
    00589a34add x26, x3, 24
    00589a38ldr x0, [sp+120]
    00589a3cldr x1, [sp+120]
    00589a40ldr x2, [sp+112]
    00589a44ldr x3, [x3+24]
    00589a48blr x3
    00589a4cstr x0, [sp+416]
    00589a50str xzr, [sp+352]
    00589a54stp xzr, xzr, [sp+360]
    00589a58stp xzr, xzr, [sp+392]
    00589a5cldr x3, [sp+600]
    00589a60ldrsb x27, [x3]
    00589a64add x26, x3, 32
    00589a68ldr x3, [x3+32]
    00589a6cldr x0, [sp+416]
    00589a70blr x3
    00589a74str x0, [sp+352]
    00589a78str x1, [sp+360]
    00589a7cstr x2, [sp+368]
    00589a80str x3, [sp+392]
    00589a84str x4, [sp+400]
    00589a88ldr x3, [sp+352]
    00589a8cldr x4, [sp+360]
    00589a90ldr x5, [sp+368]
    00589a94str x3, [sp+464]
    00589a98str x4, [sp+472]
    00589a9cstr x5, [sp+480]
    00589aa0ldr x3, [sp+392]
    00589aa4ldr x4, [sp+400]
    00589aa8str x3, [sp+448]
    00589aacstr x4, [sp+456]
    00589ab0ldr x3, [sp+464]
    00589ab4ldr x4, [sp+472]
    00589ab8ldr x5, [sp+480]
    00589abcstr x3, [sp+152]
    00589ac0str x4, [sp+160]
    00589ac4str x5, [sp+168]
    00589ac8ldr x1, [sp+456]
    00589accldr x0, [sp+448]
    00589ad0str x0, [sp+128]
    00589ad4str x1, [sp+136]
    00589ad8cbnz x0, 0x589ae0
    00589adcb 0x589af4
    00589ae0
    00589ae0loc_589ae0:
    00589ae0str x0, [sp+64]
    00589ae4str x1, [sp+72]
    00589ae8ldp x29, x30, [sp-8]
    00589aecadd sp, sp, 592
    00589af0ret x30
    00589af4
    00589af4loc_589af4:
    00589af4bl crypto/internal/fips140/bigmod.NewNat
    00589af8str x0, [sp+384]
    00589afcstr xzr, [sp+376]
    00589b00stp xzr, xzr, [sp+392]
    00589b04ldr x0, [sp+608]
    00589b08ldrsb x27, [x0]
    00589b0cldr x4, [x0+32]
    00589b10str x4, [sp+208]
    00589b14ldr x1, [sp+152]
    00589b18ldr x2, [sp+160]
    00589b1cldr x3, [sp+168]
    00589b20ldr x0, [sp+384]
    00589b24bl crypto/internal/fips140/bigmod.(*Nat).SetOverflowingBytes
    00589b28str x0, [sp+376]
    00589b2cstr x1, [sp+392]
    00589b30str x2, [sp+400]
    00589b34ldr x0, [sp+376]
    00589b38str x0, [sp+440]
    00589b3cldr x0, [sp+392]
    00589b40ldr x1, [sp+400]
    00589b44str x0, [sp+424]
    00589b48str x1, [sp+432]
    00589b4cldr x0, [sp+440]
    00589b50str x0, [sp+88]
    00589b54ldr x1, [sp+432]
    00589b58ldr x0, [sp+424]
    00589b5cstr x0, [sp+128]
    00589b60str x1, [sp+136]
    00589b64cbnz x0, 0x589b6c
    00589b68b 0x589b80
    00589b6c
    00589b6cloc_589b6c:
    00589b6cstr x0, [sp+64]
    00589b70str x1, [sp+72]
    00589b74ldp x29, x30, [sp-8]
    00589b78add sp, sp, 592
    00589b7cret x30
    00589b80
    00589b80loc_589b80:
    00589b80ldr x1, [sp+104]
    00589b84ldr x0, [sp+88]
    00589b88bl crypto/internal/fips140/bigmod.(*Nat).Equal
    00589b8cstr x0, [sp+56]
    00589b90subs xzr, x0, 1
    00589b94b.ne 0x589b9c
    00589b98b 0x589bc8
    00589b9c
    00589b9cloc_589b9c:
    00589b9cadrp x0, 0x135000
    00589ba0add x0, x0, 351
    00589ba4orr x1, xzr, 31
    00589ba8bl errors.New
    00589bacstr x0, [sp+392]
    00589bb0str x1, [sp+400]
    00589bb4str x0, [sp+64]
    00589bb8str x1, [sp+72]
    00589bbcldp x29, x30, [sp-8]
    00589bc0add sp, sp, 592
    00589bc4ret x30
    00589bc8
    00589bc8loc_589bc8:
    00589bc8stp xzr, xzr, [sp+64]
    00589bccmov x0, xzr
    00589bd0mov x1, xzr
    00589bd4ldp x29, x30, [sp-8]
    00589bd8add sp, sp, 592
    00589bdcret x30
    00589be0
    00589be0loc_589be0:
    00589be0stp x0, x1, [sp+8]
    00589be4stp x2, x3, [sp+24]
    00589be8stp x4, x5, [sp+40]
    00589becstr x6, [sp+56]
    00589bf0mov x3, x30
    00589bf4bl runtime.morestack_noctxt.abi0
    00589bf8ldp x0, x1, [sp+8]
    00589bfcldp x2, x3, [sp+24]
    00589c00ldp x4, x5, [sp+40]
    00589c04ldr x6, [sp+56]
    00589c08b 0x589540
    00589c0cudf 0
    00589540
    00589c10
    00589c10crypto/internal/fips140/ecdsa.inverse[go.shape.*crypto/internal/fips140/nistec.P521Point]: ; void crypto/internal/fips140/ecdsa.inverse[go.shape.*crypto/internal/fips140/nistec.P521Point](uintptr[1] * dict, crypto/internal/fips140/ecdsa.Curve[go.shape.*crypto/internal/fips140/nistec.P521Point] * c, crypto/internal/fips140/bigmod.Nat * kInv, crypto/internal/fips140/bigmod.Nat * k)
    00589c10ldr x16, [x28+16]
    00589c14sub x17, sp, 176
    00589c18subs xzr, x17, x16
    00589c1cb.ls 0x589df0
    00589c20sub x20, sp, 304
    00589c24stp x29, x30, [x20-8]
    00589c28add sp, x20, 0
    00589c2csub x29, sp, 8
    00589c30str x0, [sp+312]
    00589c34str x1, [sp+320]
    00589c38str x2, [sp+328]
    00589c3cstr x3, [sp+336]
    00589c40ldrsb x27, [x1]
    00589c44ldr x6, [x1+24]
    00589c48cbnz x6, 0x589c50
    00589c4cb 0x589d80
    00589c50
    00589c50loc_589c50:
    00589c50ldrsb x27, [x1]
    00589c54ldr x1, [x1+32]
    00589c58str x1, [sp+200]
    00589c5cldr x0, [sp+336]
    00589c60bl crypto/internal/fips140/bigmod.(*Nat).Bytes
    00589c64str x0, [sp+256]
    00589c68str x1, [sp+264]
    00589c6cstr x2, [sp+272]
    00589c70str xzr, [sp+232]
    00589c74stp xzr, xzr, [sp+240]
    00589c78stp xzr, xzr, [sp+216]
    00589c7cldr x2, [sp+320]
    00589c80ldrsb x27, [x2]
    00589c84ldr x26, [x2+24]
    00589c88ldr x2, [x26]
    00589c8cldr x0, [sp+256]
    00589c90ldr x1, [sp+264]
    00589c94ldr x3, [sp+272]
    00589c98mov x4, x2
    00589c9cmov x2, x3
    00589ca0blr x4
    00589ca4str x0, [sp+232]
    00589ca8str x1, [sp+240]
    00589cacstr x2, [sp+248]
    00589cb0str x3, [sp+216]
    00589cb4str x4, [sp+224]
    00589cb8ldr x2, [sp+232]
    00589cbcldr x3, [sp+240]
    00589cc0ldr x4, [sp+248]
    00589cc4str x2, [sp+136]
    00589cc8str x3, [sp+144]
    00589cccstr x4, [sp+152]
    00589cd0ldr x2, [sp+216]
    00589cd4ldr x3, [sp+224]
    00589cd8str x2, [sp+120]
    00589cdcstr x3, [sp+128]
    00589ce0ldr x2, [sp+136]
    00589ce4ldr x3, [sp+144]
    00589ce8ldr x4, [sp+152]
    00589cecstr x2, [sp+56]
    00589cf0str x3, [sp+64]
    00589cf4str x4, [sp+72]
    00589cf8ldr x2, [sp+128]
    00589cfcldr x3, [sp+120]
    00589d00str x3, [sp+96]
    00589d04str x2, [sp+104]
    00589d08cbnz x3, 0x589d10
    00589d0cb 0x589d14
    00589d10
    00589d10loc_589d10:
    00589d10b 0x589d84
    00589d14
    00589d14loc_589d14:
    00589d14str xzr, [sp+208]
    00589d18stp xzr, xzr, [sp+216]
    00589d1cldr x5, [sp+320]
    00589d20ldrsb x27, [x5]
    00589d24ldr x4, [x5+32]
    00589d28str x4, [sp+192]
    00589d2cldr x1, [sp+56]
    00589d30ldr x0, [sp+328]
    00589d34ldr x2, [sp+64]
    00589d38ldr x3, [sp+72]
    00589d3cbl crypto/internal/fips140/bigmod.(*Nat).SetBytes
    00589d40str x0, [sp+208]
    00589d44str x1, [sp+216]
    00589d48str x2, [sp+224]
    00589d4cldr x5, [sp+208]
    00589d50str x5, [sp+112]
    00589d54ldr x5, [sp+224]
    00589d58ldr x6, [sp+216]
    00589d5cstr x6, [sp+280]
    00589d60str x5, [sp+288]
    00589d64str x6, [sp+80]
    00589d68str x5, [sp+88]
    00589d6ccbnz x6, 0x589dd8
    00589d70b 0x589d74
    00589d74
    00589d74loc_589d74:
    00589d74ldp x29, x30, [sp-8]
    00589d78add sp, sp, 304
    00589d7cret x30
    00589d80
    00589d80loc_589d80:
    00589d80b 0x589d84
    00589d84
    00589d84loc_589d84:
    00589d84ldr x6, [sp+320]
    00589d88ldrsb x27, [x6]
    00589d8cldr x7, [x6+40]
    00589d90ldr x8, [x6+48]
    00589d94ldr x6, [x6+56]
    00589d98str x7, [sp+168]
    00589d9cstr x8, [sp+176]
    00589da0str x6, [sp+184]
    00589da4ldr x6, [sp+320]
    00589da8ldrsb x27, [x6]
    00589dacldr x5, [x6+32]
    00589db0str x5, [sp+160]
    00589db4ldr x0, [sp+328]
    00589db8ldr x1, [sp+336]
    00589dbcldr x2, [sp+168]
    00589dc0ldr x3, [sp+176]
    00589dc4ldr x4, [sp+184]
    00589dc8bl crypto/internal/fips140/bigmod.(*Nat).Exp
    00589dccldp x29, x30, [sp-8]
    00589dd0add sp, sp, 304
    00589dd4ret x30
    00589dd8
    00589dd8loc_589dd8:
    00589dd8adrp x0, 0x6c000
    00589ddcadd x0, x0, 2944
    00589de0adrp x1, 0x189000
    00589de4add x1, x1, 1568
    00589de8bl runtime.gopanic
    00589dechint
    00589df0
    00589df0loc_589df0:
    00589df0stp x0, x1, [sp+8]
    00589df4stp x2, x3, [sp+24]
    00589df8mov x3, x30
    00589dfcbl runtime.morestack_noctxt.abi0
    00589e00ldp x0, x1, [sp+8]
    00589e04ldp x2, x3, [sp+24]
    00589e08b 0x589c10
    00589e0cudf 0
    00589c10
    00589e10
    00589e10crypto/internal/fips140/ecdsa.hashToNat[go.shape.*crypto/internal/fips140/nistec.P521Point]: ; void crypto/internal/fips140/ecdsa.hashToNat[go.shape.*crypto/internal/fips140/nistec.P521Point](uintptr[1] * dict, crypto/internal/fips140/ecdsa.Curve[go.shape.*crypto/internal/fips140/nistec.P521Point] * c, crypto/internal/fips140/bigmod.Nat * e, struct []uint8 hash)
    00589e10ldr x16, [x28+16]
    00589e14sub x17, sp, 48
    00589e18subs xzr, x17, x16
    00589e1cb.ls 0x589f78
    00589e20str x30, [sp-176]!
    00589e24stur x29, [sp-8]
    00589e28sub x29, sp, 8
    00589e2cstr x0, [sp+184]
    00589e30str x1, [sp+192]
    00589e34str x2, [sp+200]
    00589e38str x3, [sp+208]
    00589e3cstr x4, [sp+216]
    00589e40str x5, [sp+224]
    00589e44ldr x1, [sp+192]
    00589e48ldrsb x27, [x1]
    00589e4cldr x0, [x1+32]
    00589e50str x0, [sp+136]
    00589e54bl crypto/internal/fips140/bigmod.(*Modulus).Size
    00589e58str x0, [sp+48]
    00589e5cldr x1, [sp+216]
    00589e60str x1, [sp+64]
    00589e64subs xzr, x0, x1
    00589e68b.le 0x589e70
    00589e6cb 0x589ee8
    00589e70
    00589e70loc_589e70:
    00589e70ldr x2, [sp+224]
    00589e74subs xzr, x0, x2
    00589e78b.ls 0x589e80
    00589e7cb 0x589f6c
    00589e80
    00589e80loc_589e80:
    00589e80b 0x589e84
    00589e84
    00589e84loc_589e84:
    00589e84str x0, [sp+216]
    00589e88str x0, [sp+64]
    00589e8cldr x1, [sp+192]
    00589e90ldrsb x27, [x1]
    00589e94ldr x0, [x1+32]
    00589e98str x0, [sp+128]
    00589e9cbl crypto/internal/fips140/bigmod.(*Modulus).BitLen
    00589ea0str x0, [sp+72]
    00589ea4ldr x1, [sp+64]
    00589ea8ubfm x1, x1, 61, 60
    00589eacsub x3, x1, x0
    00589eb0str x3, [sp+56]
    00589eb4subs xzr, x3, 0
    00589eb8b.gt 0x589ec0
    00589ebcb 0x589ee0
    00589ec0
    00589ec0loc_589ec0:
    00589ec0ldr x0, [sp+208]
    00589ec4ldr x1, [sp+216]
    00589ec8ldr x2, [sp+224]
    00589eccbl crypto/internal/fips140/ecdsa.rightShift
    00589ed0str x0, [sp+208]
    00589ed4str x1, [sp+216]
    00589ed8str x2, [sp+224]
    00589edcb 0x589ee4
    00589ee0
    00589ee0loc_589ee0:
    00589ee0b 0x589ee4
    00589ee4
    00589ee4loc_589ee4:
    00589ee4b 0x589eec
    00589ee8
    00589ee8loc_589ee8:
    00589ee8b 0x589eec
    00589eec
    00589eecloc_589eec:
    00589eecstr xzr, [sp+160]
    00589ef0stp xzr, xzr, [sp+144]
    00589ef4ldr x5, [sp+192]
    00589ef8ldrsb x27, [x5]
    00589efcldr x4, [x5+32]
    00589f00str x4, [sp+120]
    00589f04ldr x1, [sp+208]
    00589f08ldr x0, [sp+200]
    00589f0cldr x2, [sp+216]
    00589f10ldr x3, [sp+224]
    00589f14bl crypto/internal/fips140/bigmod.(*Nat).SetOverflowingBytes
    00589f18str x0, [sp+160]
    00589f1cstr x1, [sp+144]
    00589f20str x2, [sp+152]
    00589f24ldr x5, [sp+160]
    00589f28str x5, [sp+112]
    00589f2cldr x5, [sp+152]
    00589f30ldr x6, [sp+144]
    00589f34str x6, [sp+96]
    00589f38str x5, [sp+104]
    00589f3cstr x6, [sp+80]
    00589f40str x5, [sp+88]
    00589f44cbnz x6, 0x589f58
    00589f48b 0x589f4c
    00589f4c
    00589f4cloc_589f4c:
    00589f4cldur x29, [sp-8]
    00589f50ldr x30, [sp], 176
    00589f54ret x30
    00589f58
    00589f58loc_589f58:
    00589f58adrp x0, 0x6c000
    00589f5cadd x0, x0, 2944
    00589f60adrp x1, 0x189000
    00589f64add x1, x1, 1584
    00589f68bl runtime.gopanic
    00589f6c
    00589f6cloc_589f6c:
    00589f6cmov x1, x0
    00589f70bl runtime.panicSliceAcap
    00589f74hint
    00589f78
    00589f78loc_589f78:
    00589f78stp x0, x1, [sp+8]
    00589f7cstp x2, x3, [sp+24]
    00589f80stp x4, x5, [sp+40]
    00589f84mov x3, x30
    00589f88bl runtime.morestack_noctxt.abi0
    00589f8cldp x0, x1, [sp+8]
    00589f90ldp x2, x3, [sp+24]
    00589f94ldp x4, x5, [sp+40]
    00589f98b 0x589e10
    00589f9cudf 0
    00589e10
    00589fa0
    00589fa0crypto/internal/fips140/ecdsa.NewPublicKey[go.shape.*crypto/internal/fips140/nistec.P521Point]: ; void crypto/internal/fips140/ecdsa.NewPublicKey[go.shape.*crypto/internal/fips140/nistec.P521Point](uintptr[2] * dict, crypto/internal/fips140/ecdsa.Curve[go.shape.*crypto/internal/fips140/nistec.P521Point] * c, struct []uint8 Q)
    00589fa0ldr x16, [x28+16]
    00589fa4sub x17, sp, 32
    00589fa8subs xzr, x17, x16
    00589facb.ls 0x58a134
    00589fb0str x30, [sp-160]!
    00589fb4stur x29, [sp-8]
    00589fb8sub x29, sp, 8
    00589fbcstr x0, [sp+168]
    00589fc0str x1, [sp+176]
    00589fc4str x2, [sp+184]
    00589fc8str x3, [sp+192]
    00589fccstr x4, [sp+200]
    00589fd0str xzr, [sp+64]
    00589fd4stp xzr, xzr, [sp+48]
    00589fd8ldr x0, [sp+176]
    00589fdcldrsb x27, [x0]
    00589fe0ldr x26, [x0+16]
    00589fe4ldr x0, [x26]
    00589fe8blr x0
    00589fecstr x0, [sp+96]
    00589ff0str xzr, [sp+88]
    00589ff4stp xzr, xzr, [sp+136]
    00589ff8ldr x26, [sp+168]
    00589ffcldrsb x27, [x26]
    0058a000ldr x0, [x26]
    0058a004ldr x1, [sp+184]
    0058a008ldr x2, [sp+192]
    0058a00cldr x3, [sp+200]
    0058a010ldr x4, [sp+96]
    0058a014mov x5, x0
    0058a018mov x0, x4
    0058a01cblr x5
    0058a020str x0, [sp+88]
    0058a024str x1, [sp+136]
    0058a028str x2, [sp+144]
    0058a02cldr x0, [sp+88]
    0058a030str x0, [sp+120]
    0058a034ldr x0, [sp+144]
    0058a038ldr x1, [sp+136]
    0058a03cstr x1, [sp+104]
    0058a040str x0, [sp+112]
    0058a044str x1, [sp+72]
    0058a048str x0, [sp+80]
    0058a04ccbnz x1, 0x58a054
    0058a050b 0x58a078
    0058a054
    0058a054loc_58a054:
    0058a054str xzr, [sp+64]
    0058a058ldr x1, [sp+72]
    0058a05cldr x2, [sp+80]
    0058a060str x1, [sp+48]
    0058a064str x2, [sp+56]
    0058a068ldr x0, [sp+64]
    0058a06cldur x29, [sp-8]
    0058a070ldr x30, [sp], 160
    0058a074ret x30
    0058a078
    0058a078loc_58a078:
    0058a078adrp x0, 0xbd000
    0058a07cadd x0, x0, 3872
    0058a080bl runtime.newobject
    0058a084str x0, [sp+128]
    0058a088ldr x1, [sp+176]
    0058a08cldrsb x27, [x1]
    0058a090ldr x2, [x1]
    0058a094ldr x1, [x1+8]
    0058a098str x1, [x0+8]
    0058a09cadrp x27, 0x4c1000
    0058a0a0ldr w1, [x27+3056]
    0058a0a4cbz w1, 0x58a0ac
    0058a0a8b 0x58a0b0
    0058a0ac
    0058a0acloc_58a0ac:
    0058a0acb 0x58a0c4
    0058a0b0
    0058a0b0loc_58a0b0:
    0058a0b0bl runtime.gcWriteBarrier2
    0058a0b4str x2, [x25]
    0058a0b8ldr x3, [x0]
    0058a0bcstr x3, [x25+8]
    0058a0c0b 0x58a0c4
    0058a0c4
    0058a0c4loc_58a0c4:
    0058a0c4str x2, [x0]
    0058a0c8ldr x3, [sp+128]
    0058a0ccldrsb x27, [x3]
    0058a0d0ldr x4, [sp+184]
    0058a0d4ldr x5, [sp+192]
    0058a0d8ldr x6, [sp+200]
    0058a0dcstr x5, [x3+24]
    0058a0e0str x6, [x3+32]
    0058a0e4adrp x27, 0x4c1000
    0058a0e8ldr w5, [x27+3056]
    0058a0eccbz w5, 0x58a0f4
    0058a0f0b 0x58a0f8
    0058a0f4
    0058a0f4loc_58a0f4:
    0058a0f4b 0x58a10c
    0058a0f8
    0058a0f8loc_58a0f8:
    0058a0f8bl runtime.gcWriteBarrier2
    0058a0fcstr x4, [x25]
    0058a100ldr x5, [x3+16]
    0058a104str x5, [x25+8]
    0058a108b 0x58a10c
    0058a10c
    0058a10cloc_58a10c:
    0058a10cstr x4, [x3+16]
    0058a110ldr x3, [sp+128]
    0058a114str x3, [sp+64]
    0058a118stp xzr, xzr, [sp+48]
    0058a11cldr x0, [sp+64]
    0058a120mov x1, xzr
    0058a124mov x2, xzr
    0058a128ldur x29, [sp-8]
    0058a12cldr x30, [sp], 160
    0058a130ret x30
    0058a134
    0058a134loc_58a134:
    0058a134stp x0, x1, [sp+8]
    0058a138stp x2, x3, [sp+24]
    0058a13cstr x4, [sp+40]
    0058a140mov x3, x30
    0058a144bl runtime.morestack_noctxt.abi0
    0058a148ldp x0, x1, [sp+8]
    0058a14cldp x2, x3, [sp+24]
    0058a150ldr x4, [sp+40]
    0058a154b 0x589fa0
    0058a158udf 0
    0058a15cudf 0
    00589fa0
    0058a160
    0058a160crypto/internal/fips140/ecdsa.Verify[go.shape.*crypto/internal/fips140/nistec.P384Point]: ; void crypto/internal/fips140/ecdsa.Verify[go.shape.*crypto/internal/fips140/nistec.P384Point](uintptr[2] * dict, crypto/internal/fips140/ecdsa.Curve[go.shape.*crypto/internal/fips140/nistec.P384Point] * c, crypto/internal/fips140/ecdsa.PublicKey * pub, struct []uint8 hash, crypto/internal/fips140/ecdsa.Signature * sig)
    0058a160ldr x16, [x28+16]
    0058a164sub x17, sp, 16
    0058a168subs xzr, x17, x16
    0058a16cb.ls 0x58a280
    0058a170str x30, [sp-144]!
    0058a174stur x29, [sp-8]
    0058a178sub x29, sp, 8
    0058a17cstr x0, [sp+152]
    0058a180str x1, [sp+160]
    0058a184str x2, [sp+168]
    0058a188str x3, [sp+176]
    0058a18cstr x4, [sp+184]
    0058a190str x5, [sp+192]
    0058a194str x6, [sp+200]
    0058a198stp xzr, xzr, [sp+64]
    0058a19cldr x3, [sp+168]
    0058a1a0ldrsb x27, [x3]
    0058a1a4ldr x4, [x3]
    0058a1a8ldr x3, [x3+8]
    0058a1acstr x4, [sp+104]
    0058a1b0str x3, [sp+112]
    0058a1b4ldr x3, [sp+160]
    0058a1b8ldrsb x27, [x3]
    0058a1bcldr x1, [x3]
    0058a1c0ldr x3, [x3+8]
    0058a1c4str x1, [sp+88]
    0058a1c8str x3, [sp+96]
    0058a1ccldr x4, [sp+112]
    0058a1d0subs xzr, x4, x3
    0058a1d4b.ne 0x58a1dc
    0058a1d8b 0x58a1e0
    0058a1dc
    0058a1dcloc_58a1dc:
    0058a1dcb 0x58a254
    0058a1e0
    0058a1e0loc_58a1e0:
    0058a1e0ldr x2, [sp+112]
    0058a1e4ldr x0, [sp+104]
    0058a1e8bl runtime.memequal
    0058a1ectbnz w0, 0, 0x58a1f4
    0058a1f0b 0x58a250
    0058a1f4
    0058a1f4loc_58a1f4:
    0058a1f4bl crypto/internal/fips140.RecordApproved
    0058a1f8adrp x27, 0x497000
    0058a1fcldr x26, [x27+328]
    0058a200ldr x0, [x26]
    0058a204blr x0
    0058a208ldr x0, [sp+152]
    0058a20cldrsb x27, [x0]
    0058a210ldr x0, [x0]
    0058a214str x0, [sp+80]
    0058a218ldr x3, [sp+176]
    0058a21cldr x2, [sp+168]
    0058a220ldr x6, [sp+200]
    0058a224ldr x1, [sp+160]
    0058a228ldr x4, [sp+184]
    0058a22cldr x5, [sp+192]
    0058a230bl crypto/internal/fips140/ecdsa.verify[go.shape.*crypto/internal/fips140/nistec.P384Point]
    0058a234str x0, [sp+120]
    0058a238str x1, [sp+128]
    0058a23cstr x0, [sp+64]
    0058a240str x1, [sp+72]
    0058a244ldur x29, [sp-8]
    0058a248ldr x30, [sp], 144
    0058a24cret x30
    0058a250
    0058a250loc_58a250:
    0058a250b 0x58a254
    0058a254
    0058a254loc_58a254:
    0058a254adrp x0, 0x139000
    0058a258add x0, x0, 576
    0058a25cmovz x1, 38
    0058a260bl errors.New
    0058a264str x0, [sp+120]
    0058a268str x1, [sp+128]
    0058a26cstr x0, [sp+64]
    0058a270str x1, [sp+72]
    0058a274ldur x29, [sp-8]
    0058a278ldr x30, [sp], 144
    0058a27cret x30
    0058a280
    0058a280loc_58a280:
    0058a280stp x0, x1, [sp+8]
    0058a284stp x2, x3, [sp+24]
    0058a288stp x4, x5, [sp+40]
    0058a28cstr x6, [sp+56]
    0058a290mov x3, x30
    0058a294bl runtime.morestack_noctxt.abi0
    0058a298ldp x0, x1, [sp+8]
    0058a29cldp x2, x3, [sp+24]
    0058a2a0ldp x4, x5, [sp+40]
    0058a2a4ldr x6, [sp+56]
    0058a2a8b 0x58a160
    0058a2acudf 0
    0058a160
    0058a2b0
    0058a2b0crypto/internal/fips140/ecdsa.verify[go.shape.*crypto/internal/fips140/nistec.P384Point]: ; void crypto/internal/fips140/ecdsa.verify[go.shape.*crypto/internal/fips140/nistec.P384Point](uintptr[2] * dict, crypto/internal/fips140/ecdsa.Curve[go.shape.*crypto/internal/fips140/nistec.P384Point] * c, crypto/internal/fips140/ecdsa.PublicKey * pub, struct []uint8 hash, crypto/internal/fips140/ecdsa.Signature * sig)
    0058a2b0ldr x16, [x28+16]
    0058a2b4subs xzr, sp, x16
    0058a2b8b.ls 0x58a330
    0058a2bcstr x30, [sp-112]!
    0058a2c0stur x29, [sp-8]
    0058a2c4sub x29, sp, 8
    0058a2c8str x0, [sp+120]
    0058a2ccstr x1, [sp+128]
    0058a2d0str x2, [sp+136]
    0058a2d4str x3, [sp+144]
    0058a2d8str x4, [sp+152]
    0058a2dcstr x5, [sp+160]
    0058a2e0str x6, [sp+168]
    0058a2e4stp xzr, xzr, [sp+64]
    0058a2e8ldr x7, [sp+120]
    0058a2ecldrsb x27, [x7]
    0058a2f0ldr x0, [x7]
    0058a2f4str x0, [sp+80]
    0058a2f8ldr x3, [sp+144]
    0058a2fcldr x2, [sp+136]
    0058a300ldr x6, [sp+168]
    0058a304ldr x1, [sp+128]
    0058a308ldr x4, [sp+152]
    0058a30cldr x5, [sp+160]
    0058a310bl crypto/internal/fips140/ecdsa.verifyGeneric[go.shape.*crypto/internal/fips140/nistec.P384Point]
    0058a314str x0, [sp+88]
    0058a318str x1, [sp+96]
    0058a31cstr x0, [sp+64]
    0058a320str x1, [sp+72]
    0058a324ldur x29, [sp-8]
    0058a328ldr x30, [sp], 112
    0058a32cret x30
    0058a330
    0058a330loc_58a330:
    0058a330stp x0, x1, [sp+8]
    0058a334stp x2, x3, [sp+24]
    0058a338stp x4, x5, [sp+40]
    0058a33cstr x6, [sp+56]
    0058a340mov x3, x30
    0058a344bl runtime.morestack_noctxt.abi0
    0058a348ldp x0, x1, [sp+8]
    0058a34cldp x2, x3, [sp+24]
    0058a350ldp x4, x5, [sp+40]
    0058a354ldr x6, [sp+56]
    0058a358b 0x58a2b0
    0058a35cudf 0
    0058a2b0
    0058a360
    0058a360crypto/internal/fips140/ecdsa.verifyGeneric[go.shape.*crypto/internal/fips140/nistec.P384Point]: ; void crypto/internal/fips140/ecdsa.verifyGeneric[go.shape.*crypto/internal/fips140/nistec.P384Point](uintptr[9] * dict, crypto/internal/fips140/ecdsa.Curve[go.shape.*crypto/internal/fips140/nistec.P384Point] * c, crypto/internal/fips140/ecdsa.PublicKey * pub, struct []uint8 hash, crypto/internal/fips140/ecdsa.Signature * sig)
    0058a360ldr x16, [x28+16]
    0058a364sub x17, sp, 464
    0058a368subs xzr, x17, x16
    0058a36cb.ls 0x58aa00
    0058a370sub x20, sp, 592
    0058a374stp x29, x30, [x20-8]
    0058a378add sp, x20, 0
    0058a37csub x29, sp, 8
    0058a380str x0, [sp+600]
    0058a384str x1, [sp+608]
    0058a388str x2, [sp+616]
    0058a38cstr x3, [sp+624]
    0058a390str x4, [sp+632]
    0058a394str x5, [sp+640]
    0058a398str x6, [sp+648]
    0058a39cstp xzr, xzr, [sp+64]
    0058a3a0ldr x0, [sp+608]
    0058a3a4ldrsb x27, [x0]
    0058a3a8ldr x26, [x0+16]
    0058a3acldr x0, [x26]
    0058a3b0blr x0
    0058a3b4str x0, [sp+416]
    0058a3b8str xzr, [sp+408]
    0058a3bcstp xzr, xzr, [sp+392]
    0058a3c0ldr x0, [sp+616]
    0058a3c4ldrsb x27, [x0]
    0058a3c8ldr x1, [x0+16]
    0058a3ccldr x2, [x0+24]
    0058a3d0ldr x3, [x0+32]
    0058a3d4str x1, [sp+328]
    0058a3d8str x2, [sp+336]
    0058a3dcstr x3, [sp+344]
    0058a3e0ldr x26, [sp+600]
    0058a3e4ldrsb x27, [x26]
    0058a3e8ldr x0, [x26]
    0058a3ecldr x4, [sp+416]
    0058a3f0mov x5, x0
    0058a3f4mov x0, x4
    0058a3f8blr x5
    0058a3fcstr x0, [sp+408]
    0058a400str x1, [sp+392]
    0058a404str x2, [sp+400]
    0058a408ldr x0, [sp+408]
    0058a40cstr x0, [sp+200]
    0058a410ldr x0, [sp+392]
    0058a414ldr x1, [sp+400]
    0058a418str x0, [sp+184]
    0058a41cstr x1, [sp+192]
    0058a420ldr x0, [sp+200]
    0058a424str x0, [sp+176]
    0058a428ldr x1, [sp+192]
    0058a42cldr x0, [sp+184]
    0058a430str x0, [sp+128]
    0058a434str x1, [sp+136]
    0058a438cbnz x0, 0x58a440
    0058a43cb 0x58a454
    0058a440
    0058a440loc_58a440:
    0058a440str x0, [sp+64]
    0058a444str x1, [sp+72]
    0058a448ldp x29, x30, [sp-8]
    0058a44cadd sp, sp, 592
    0058a450ret x30
    0058a454
    0058a454loc_58a454:
    0058a454bl crypto/internal/fips140/bigmod.NewNat
    0058a458str x0, [sp+384]
    0058a45cstr xzr, [sp+376]
    0058a460stp xzr, xzr, [sp+392]
    0058a464ldr x0, [sp+648]
    0058a468ldrsb x27, [x0]
    0058a46cldr x1, [x0]
    0058a470ldr x2, [x0+8]
    0058a474ldr x0, [x0+16]
    0058a478str x1, [sp+304]
    0058a47cstr x2, [sp+312]
    0058a480str x0, [sp+320]
    0058a484ldr x0, [sp+608]
    0058a488ldrsb x27, [x0]
    0058a48cldr x4, [x0+32]
    0058a490str x4, [sp+296]
    0058a494ldr x1, [sp+304]
    0058a498ldr x2, [sp+312]
    0058a49cldr x3, [sp+320]
    0058a4a0ldr x0, [sp+384]
    0058a4a4bl crypto/internal/fips140/bigmod.(*Nat).SetBytes
    0058a4a8str x0, [sp+376]
    0058a4acstr x1, [sp+392]
    0058a4b0str x2, [sp+400]
    0058a4b4ldr x0, [sp+376]
    0058a4b8str x0, [sp+576]
    0058a4bcldr x0, [sp+392]
    0058a4c0ldr x1, [sp+400]
    0058a4c4str x0, [sp+560]
    0058a4c8str x1, [sp+568]
    0058a4ccldr x0, [sp+576]
    0058a4d0str x0, [sp+104]
    0058a4d4ldr x1, [sp+568]
    0058a4d8ldr x0, [sp+560]
    0058a4dcstr x0, [sp+128]
    0058a4e0str x1, [sp+136]
    0058a4e4cbnz x0, 0x58a4ec
    0058a4e8b 0x58a500
    0058a4ec
    0058a4ecloc_58a4ec:
    0058a4ecstr x0, [sp+64]
    0058a4f0str x1, [sp+72]
    0058a4f4ldp x29, x30, [sp-8]
    0058a4f8add sp, sp, 592
    0058a4fcret x30
    0058a500
    0058a500loc_58a500:
    0058a500ldr x0, [sp+104]
    0058a504bl crypto/internal/fips140/bigmod.(*Nat).IsZero
    0058a508str x0, [sp+56]
    0058a50csubs xzr, x0, 1
    0058a510b.eq 0x58a518
    0058a514b 0x58a544
    0058a518
    0058a518loc_58a518:
    0058a518adrp x0, 0x136000
    0058a51cadd x0, x0, 4031
    0058a520movz x1, 35
    0058a524bl errors.New
    0058a528str x0, [sp+392]
    0058a52cstr x1, [sp+400]
    0058a530str x0, [sp+64]
    0058a534str x1, [sp+72]
    0058a538ldp x29, x30, [sp-8]
    0058a53cadd sp, sp, 592
    0058a540ret x30
    0058a544
    0058a544loc_58a544:
    0058a544bl crypto/internal/fips140/bigmod.NewNat
    0058a548str x0, [sp+376]
    0058a54cstr xzr, [sp+384]
    0058a550stp xzr, xzr, [sp+392]
    0058a554ldr x0, [sp+648]
    0058a558ldrsb x27, [x0]
    0058a55cldr x1, [x0+24]
    0058a560ldr x2, [x0+32]
    0058a564ldr x0, [x0+40]
    0058a568str x1, [sp+272]
    0058a56cstr x2, [sp+280]
    0058a570str x0, [sp+288]
    0058a574ldr x0, [sp+608]
    0058a578ldrsb x27, [x0]
    0058a57cldr x4, [x0+32]
    0058a580str x4, [sp+264]
    0058a584ldr x1, [sp+272]
    0058a588ldr x2, [sp+280]
    0058a58cldr x3, [sp+288]
    0058a590ldr x0, [sp+376]
    0058a594bl crypto/internal/fips140/bigmod.(*Nat).SetBytes
    0058a598str x0, [sp+384]
    0058a59cstr x1, [sp+392]
    0058a5a0str x2, [sp+400]
    0058a5a4ldr x0, [sp+384]
    0058a5a8str x0, [sp+552]
    0058a5acldr x0, [sp+392]
    0058a5b0ldr x1, [sp+400]
    0058a5b4str x0, [sp+536]
    0058a5b8str x1, [sp+544]
    0058a5bcldr x0, [sp+552]
    0058a5c0str x0, [sp+96]
    0058a5c4ldr x1, [sp+544]
    0058a5c8ldr x0, [sp+536]
    0058a5ccstr x0, [sp+128]
    0058a5d0str x1, [sp+136]
    0058a5d4cbnz x0, 0x58a5dc
    0058a5d8b 0x58a5f0
    0058a5dc
    0058a5dcloc_58a5dc:
    0058a5dcstr x0, [sp+64]
    0058a5e0str x1, [sp+72]
    0058a5e4ldp x29, x30, [sp-8]
    0058a5e8add sp, sp, 592
    0058a5ecret x30
    0058a5f0
    0058a5f0loc_58a5f0:
    0058a5f0ldr x0, [sp+96]
    0058a5f4bl crypto/internal/fips140/bigmod.(*Nat).IsZero
    0058a5f8str x0, [sp+56]
    0058a5fcsubs xzr, x0, 1
    0058a600b.eq 0x58a608
    0058a604b 0x58a634
    0058a608
    0058a608loc_58a608:
    0058a608adrp x0, 0x136000
    0058a60cadd x0, x0, 4066
    0058a610movz x1, 35
    0058a614bl errors.New
    0058a618str x0, [sp+392]
    0058a61cstr x1, [sp+400]
    0058a620str x0, [sp+64]
    0058a624str x1, [sp+72]
    0058a628ldp x29, x30, [sp-8]
    0058a62cadd sp, sp, 592
    0058a630ret x30
    0058a634
    0058a634loc_58a634:
    0058a634bl crypto/internal/fips140/bigmod.NewNat
    0058a638str x0, [sp+144]
    0058a63cldr x0, [sp+600]
    0058a640ldrsb x27, [x0]
    0058a644ldr x0, [x0+40]
    0058a648str x0, [sp+256]
    0058a64cldr x3, [sp+624]
    0058a650ldr x2, [sp+144]
    0058a654ldr x1, [sp+608]
    0058a658ldr x4, [sp+632]
    0058a65cldr x5, [sp+640]
    0058a660bl crypto/internal/fips140/ecdsa.hashToNat[go.shape.*crypto/internal/fips140/nistec.P384Point]
    0058a664bl crypto/internal/fips140/bigmod.NewNat
    0058a668str x0, [sp+80]
    0058a66cldr x0, [sp+600]
    0058a670ldrsb x27, [x0]
    0058a674ldr x0, [x0+48]
    0058a678str x0, [sp+248]
    0058a67cldr x2, [sp+80]
    0058a680ldr x3, [sp+96]
    0058a684ldr x1, [sp+608]
    0058a688bl crypto/internal/fips140/ecdsa.inverse[go.shape.*crypto/internal/fips140/nistec.P384Point]
    0058a68cldr x0, [sp+608]
    0058a690ldrsb x27, [x0]
    0058a694ldr x26, [x0+16]
    0058a698ldr x0, [x26]
    0058a69cblr x0
    0058a6a0str x0, [sp+408]
    0058a6a4ldr x0, [sp+608]
    0058a6a8ldrsb x27, [x0]
    0058a6acldr x2, [x0+32]
    0058a6b0str x2, [sp+240]
    0058a6b4ldr x0, [sp+144]
    0058a6b8ldr x1, [sp+80]
    0058a6bcbl crypto/internal/fips140/bigmod.(*Nat).Mul
    0058a6c0str x0, [sp+384]
    0058a6c4ldr x0, [sp+608]
    0058a6c8ldrsb x27, [x0]
    0058a6ccldr x1, [x0+32]
    0058a6d0str x1, [sp+232]
    0058a6d4ldr x0, [sp+384]
    0058a6d8bl crypto/internal/fips140/bigmod.(*Nat).Bytes
    0058a6dcstr x0, [sp+352]
    0058a6e0str x1, [sp+360]
    0058a6e4str x2, [sp+368]
    0058a6e8str xzr, [sp+416]
    0058a6ecstp xzr, xzr, [sp+392]
    0058a6f0ldr x0, [sp+600]
    0058a6f4ldrsb x27, [x0]
    0058a6f8add x26, x0, 8
    0058a6fcldr x0, [x0+8]
    0058a700ldr x1, [sp+352]
    0058a704ldr x2, [sp+360]
    0058a708ldr x3, [sp+368]
    0058a70cldr x4, [sp+408]
    0058a710mov x5, x0
    0058a714mov x0, x4
    0058a718blr x5
    0058a71cstr x0, [sp+416]
    0058a720str x1, [sp+392]
    0058a724str x2, [sp+400]
    0058a728ldr x0, [sp+416]
    0058a72cstr x0, [sp+528]
    0058a730ldr x0, [sp+392]
    0058a734ldr x1, [sp+400]
    0058a738str x0, [sp+512]
    0058a73cstr x1, [sp+520]
    0058a740ldr x0, [sp+528]
    0058a744str x0, [sp+120]
    0058a748ldr x1, [sp+520]
    0058a74cldr x0, [sp+512]
    0058a750str x0, [sp+128]
    0058a754str x1, [sp+136]
    0058a758cbnz x0, 0x58a760
    0058a75cb 0x58a774
    0058a760
    0058a760loc_58a760:
    0058a760str x0, [sp+64]
    0058a764str x1, [sp+72]
    0058a768ldp x29, x30, [sp-8]
    0058a76cadd sp, sp, 592
    0058a770ret x30
    0058a774
    0058a774loc_58a774:
    0058a774ldr x3, [sp+608]
    0058a778ldrsb x27, [x3]
    0058a77cldr x2, [x3+32]
    0058a780str x2, [sp+224]
    0058a784ldr x0, [sp+80]
    0058a788ldr x1, [sp+104]
    0058a78cbl crypto/internal/fips140/bigmod.(*Nat).Mul
    0058a790str x0, [sp+384]
    0058a794ldr x3, [sp+608]
    0058a798ldrsb x27, [x3]
    0058a79cldr x1, [x3+32]
    0058a7a0str x1, [sp+216]
    0058a7a4ldr x0, [sp+384]
    0058a7a8bl crypto/internal/fips140/bigmod.(*Nat).Bytes
    0058a7acstr x0, [sp+352]
    0058a7b0str x1, [sp+360]
    0058a7b4str x2, [sp+368]
    0058a7b8str xzr, [sp+416]
    0058a7bcstp xzr, xzr, [sp+392]
    0058a7c0ldr x3, [sp+600]
    0058a7c4ldrsb x27, [x3]
    0058a7c8add x26, x3, 16
    0058a7ccldr x0, [sp+176]
    0058a7d0ldr x1, [sp+176]
    0058a7d4ldr x3, [x3+16]
    0058a7d8ldr x2, [sp+352]
    0058a7dcldr x4, [sp+360]
    0058a7e0ldr x5, [sp+368]
    0058a7e4mov x6, x3
    0058a7e8mov x3, x4
    0058a7ecmov x4, x5
    0058a7f0blr x6
    0058a7f4str x0, [sp+416]
    0058a7f8str x1, [sp+392]
    0058a7fcstr x2, [sp+400]
    0058a800ldr x3, [sp+416]
    0058a804str x3, [sp+504]
    0058a808ldr x3, [sp+392]
    0058a80cldr x4, [sp+400]
    0058a810str x3, [sp+488]
    0058a814str x4, [sp+496]
    0058a818ldr x3, [sp+504]
    0058a81cstr x3, [sp+112]
    0058a820ldr x1, [sp+496]
    0058a824ldr x0, [sp+488]
    0058a828str x0, [sp+128]
    0058a82cstr x1, [sp+136]
    0058a830cbnz x0, 0x58a838
    0058a834b 0x58a84c
    0058a838
    0058a838loc_58a838:
    0058a838str x0, [sp+64]
    0058a83cstr x1, [sp+72]
    0058a840ldp x29, x30, [sp-8]
    0058a844add sp, sp, 592
    0058a848ret x30
    0058a84c
    0058a84cloc_58a84c:
    0058a84cldr x3, [sp+600]
    0058a850ldrsb x27, [x3]
    0058a854add x26, x3, 24
    0058a858ldr x0, [sp+120]
    0058a85cldr x1, [sp+120]
    0058a860ldr x2, [sp+112]
    0058a864ldr x3, [x3+24]
    0058a868blr x3
    0058a86cstr x0, [sp+416]
    0058a870str xzr, [sp+352]
    0058a874stp xzr, xzr, [sp+360]
    0058a878stp xzr, xzr, [sp+392]
    0058a87cldr x3, [sp+600]
    0058a880ldrsb x27, [x3]
    0058a884add x26, x3, 32
    0058a888ldr x3, [x3+32]
    0058a88cldr x0, [sp+416]
    0058a890blr x3
    0058a894str x0, [sp+352]
    0058a898str x1, [sp+360]
    0058a89cstr x2, [sp+368]
    0058a8a0str x3, [sp+392]
    0058a8a4str x4, [sp+400]
    0058a8a8ldr x3, [sp+352]
    0058a8acldr x4, [sp+360]
    0058a8b0ldr x5, [sp+368]
    0058a8b4str x3, [sp+464]
    0058a8b8str x4, [sp+472]
    0058a8bcstr x5, [sp+480]
    0058a8c0ldr x3, [sp+392]
    0058a8c4ldr x4, [sp+400]
    0058a8c8str x3, [sp+448]
    0058a8ccstr x4, [sp+456]
    0058a8d0ldr x3, [sp+464]
    0058a8d4ldr x4, [sp+472]
    0058a8d8ldr x5, [sp+480]
    0058a8dcstr x3, [sp+152]
    0058a8e0str x4, [sp+160]
    0058a8e4str x5, [sp+168]
    0058a8e8ldr x1, [sp+456]
    0058a8ecldr x0, [sp+448]
    0058a8f0str x0, [sp+128]
    0058a8f4str x1, [sp+136]
    0058a8f8cbnz x0, 0x58a900
    0058a8fcb 0x58a914
    0058a900
    0058a900loc_58a900:
    0058a900str x0, [sp+64]
    0058a904str x1, [sp+72]
    0058a908ldp x29, x30, [sp-8]
    0058a90cadd sp, sp, 592
    0058a910ret x30
    0058a914
    0058a914loc_58a914:
    0058a914bl crypto/internal/fips140/bigmod.NewNat
    0058a918str x0, [sp+384]
    0058a91cstr xzr, [sp+376]
    0058a920stp xzr, xzr, [sp+392]
    0058a924ldr x0, [sp+608]
    0058a928ldrsb x27, [x0]
    0058a92cldr x4, [x0+32]
    0058a930str x4, [sp+208]
    0058a934ldr x1, [sp+152]
    0058a938ldr x2, [sp+160]
    0058a93cldr x3, [sp+168]
    0058a940ldr x0, [sp+384]
    0058a944bl crypto/internal/fips140/bigmod.(*Nat).SetOverflowingBytes
    0058a948str x0, [sp+376]
    0058a94cstr x1, [sp+392]
    0058a950str x2, [sp+400]
    0058a954ldr x0, [sp+376]
    0058a958str x0, [sp+440]
    0058a95cldr x0, [sp+392]
    0058a960ldr x1, [sp+400]
    0058a964str x0, [sp+424]
    0058a968str x1, [sp+432]
    0058a96cldr x0, [sp+440]
    0058a970str x0, [sp+88]
    0058a974ldr x1, [sp+432]
    0058a978ldr x0, [sp+424]
    0058a97cstr x0, [sp+128]
    0058a980str x1, [sp+136]
    0058a984cbnz x0, 0x58a98c
    0058a988b 0x58a9a0
    0058a98c
    0058a98cloc_58a98c:
    0058a98cstr x0, [sp+64]
    0058a990str x1, [sp+72]
    0058a994ldp x29, x30, [sp-8]
    0058a998add sp, sp, 592
    0058a99cret x30
    0058a9a0
    0058a9a0loc_58a9a0:
    0058a9a0ldr x1, [sp+104]
    0058a9a4ldr x0, [sp+88]
    0058a9a8bl crypto/internal/fips140/bigmod.(*Nat).Equal
    0058a9acstr x0, [sp+56]
    0058a9b0subs xzr, x0, 1
    0058a9b4b.ne 0x58a9bc
    0058a9b8b 0x58a9e8
    0058a9bc
    0058a9bcloc_58a9bc:
    0058a9bcadrp x0, 0x134000
    0058a9c0add x0, x0, 351
    0058a9c4orr x1, xzr, 31
    0058a9c8bl errors.New
    0058a9ccstr x0, [sp+392]
    0058a9d0str x1, [sp+400]
    0058a9d4str x0, [sp+64]
    0058a9d8str x1, [sp+72]
    0058a9dcldp x29, x30, [sp-8]
    0058a9e0add sp, sp, 592
    0058a9e4ret x30
    0058a9e8
    0058a9e8loc_58a9e8:
    0058a9e8stp xzr, xzr, [sp+64]
    0058a9ecmov x0, xzr
    0058a9f0mov x1, xzr
    0058a9f4ldp x29, x30, [sp-8]
    0058a9f8add sp, sp, 592
    0058a9fcret x30
    0058aa00
    0058aa00loc_58aa00:
    0058aa00stp x0, x1, [sp+8]
    0058aa04stp x2, x3, [sp+24]
    0058aa08stp x4, x5, [sp+40]
    0058aa0cstr x6, [sp+56]
    0058aa10mov x3, x30
    0058aa14bl runtime.morestack_noctxt.abi0
    0058aa18ldp x0, x1, [sp+8]
    0058aa1cldp x2, x3, [sp+24]
    0058aa20ldp x4, x5, [sp+40]
    0058aa24ldr x6, [sp+56]
    0058aa28b 0x58a360
    0058aa2cudf 0
    0058a360
    0058aa30
    0058aa30crypto/internal/fips140/ecdsa.inverse[go.shape.*crypto/internal/fips140/nistec.P384Point]: ; void crypto/internal/fips140/ecdsa.inverse[go.shape.*crypto/internal/fips140/nistec.P384Point](uintptr[1] * dict, crypto/internal/fips140/ecdsa.Curve[go.shape.*crypto/internal/fips140/nistec.P384Point] * c, crypto/internal/fips140/bigmod.Nat * kInv, crypto/internal/fips140/bigmod.Nat * k)
    0058aa30ldr x16, [x28+16]
    0058aa34sub x17, sp, 176
    0058aa38subs xzr, x17, x16
    0058aa3cb.ls 0x58ac10
    0058aa40sub x20, sp, 304
    0058aa44stp x29, x30, [x20-8]
    0058aa48add sp, x20, 0
    0058aa4csub x29, sp, 8
    0058aa50str x0, [sp+312]
    0058aa54str x1, [sp+320]
    0058aa58str x2, [sp+328]
    0058aa5cstr x3, [sp+336]
    0058aa60ldrsb x27, [x1]
    0058aa64ldr x6, [x1+24]
    0058aa68cbnz x6, 0x58aa70
    0058aa6cb 0x58aba0
    0058aa70
    0058aa70loc_58aa70:
    0058aa70ldrsb x27, [x1]
    0058aa74ldr x1, [x1+32]
    0058aa78str x1, [sp+200]
    0058aa7cldr x0, [sp+336]
    0058aa80bl crypto/internal/fips140/bigmod.(*Nat).Bytes
    0058aa84str x0, [sp+256]
    0058aa88str x1, [sp+264]
    0058aa8cstr x2, [sp+272]
    0058aa90str xzr, [sp+232]
    0058aa94stp xzr, xzr, [sp+240]
    0058aa98stp xzr, xzr, [sp+216]
    0058aa9cldr x2, [sp+320]
    0058aaa0ldrsb x27, [x2]
    0058aaa4ldr x26, [x2+24]
    0058aaa8ldr x2, [x26]
    0058aaacldr x0, [sp+256]
    0058aab0ldr x1, [sp+264]
    0058aab4ldr x3, [sp+272]
    0058aab8mov x4, x2
    0058aabcmov x2, x3
    0058aac0blr x4
    0058aac4str x0, [sp+232]
    0058aac8str x1, [sp+240]
    0058aaccstr x2, [sp+248]
    0058aad0str x3, [sp+216]
    0058aad4str x4, [sp+224]
    0058aad8ldr x2, [sp+232]
    0058aadcldr x3, [sp+240]
    0058aae0ldr x4, [sp+248]
    0058aae4str x2, [sp+136]
    0058aae8str x3, [sp+144]
    0058aaecstr x4, [sp+152]
    0058aaf0ldr x2, [sp+216]
    0058aaf4ldr x3, [sp+224]
    0058aaf8str x2, [sp+120]
    0058aafcstr x3, [sp+128]
    0058ab00ldr x2, [sp+136]
    0058ab04ldr x3, [sp+144]
    0058ab08ldr x4, [sp+152]
    0058ab0cstr x2, [sp+56]
    0058ab10str x3, [sp+64]
    0058ab14str x4, [sp+72]
    0058ab18ldr x2, [sp+128]
    0058ab1cldr x3, [sp+120]
    0058ab20str x3, [sp+96]
    0058ab24str x2, [sp+104]
    0058ab28cbnz x3, 0x58ab30
    0058ab2cb 0x58ab34
    0058ab30
    0058ab30loc_58ab30:
    0058ab30b 0x58aba4
    0058ab34
    0058ab34loc_58ab34:
    0058ab34str xzr, [sp+208]
    0058ab38stp xzr, xzr, [sp+216]
    0058ab3cldr x5, [sp+320]
    0058ab40ldrsb x27, [x5]
    0058ab44ldr x4, [x5+32]
    0058ab48str x4, [sp+192]
    0058ab4cldr x1, [sp+56]
    0058ab50ldr x0, [sp+328]
    0058ab54ldr x2, [sp+64]
    0058ab58ldr x3, [sp+72]
    0058ab5cbl crypto/internal/fips140/bigmod.(*Nat).SetBytes
    0058ab60str x0, [sp+208]
    0058ab64str x1, [sp+216]
    0058ab68str x2, [sp+224]
    0058ab6cldr x5, [sp+208]
    0058ab70str x5, [sp+112]
    0058ab74ldr x5, [sp+224]
    0058ab78ldr x6, [sp+216]
    0058ab7cstr x6, [sp+280]
    0058ab80str x5, [sp+288]
    0058ab84str x6, [sp+80]
    0058ab88str x5, [sp+88]
    0058ab8ccbnz x6, 0x58abf8
    0058ab90b 0x58ab94
    0058ab94
    0058ab94loc_58ab94:
    0058ab94ldp x29, x30, [sp-8]
    0058ab98add sp, sp, 304
    0058ab9cret x30
    0058aba0
    0058aba0loc_58aba0:
    0058aba0b 0x58aba4
    0058aba4
    0058aba4loc_58aba4:
    0058aba4ldr x6, [sp+320]
    0058aba8ldrsb x27, [x6]
    0058abacldr x7, [x6+40]
    0058abb0ldr x8, [x6+48]
    0058abb4ldr x6, [x6+56]
    0058abb8str x7, [sp+168]
    0058abbcstr x8, [sp+176]
    0058abc0str x6, [sp+184]
    0058abc4ldr x6, [sp+320]
    0058abc8ldrsb x27, [x6]
    0058abccldr x5, [x6+32]
    0058abd0str x5, [sp+160]
    0058abd4ldr x0, [sp+328]
    0058abd8ldr x1, [sp+336]
    0058abdcldr x2, [sp+168]
    0058abe0ldr x3, [sp+176]
    0058abe4ldr x4, [sp+184]
    0058abe8bl crypto/internal/fips140/bigmod.(*Nat).Exp
    0058abecldp x29, x30, [sp-8]
    0058abf0add sp, sp, 304
    0058abf4ret x30
    0058abf8
    0058abf8loc_58abf8:
    0058abf8adrp x0, 0x6b000
    0058abfcadd x0, x0, 2944
    0058ac00adrp x1, 0x188000
    0058ac04add x1, x1, 1568
    0058ac08bl runtime.gopanic
    0058ac0chint
    0058ac10
    0058ac10loc_58ac10:
    0058ac10stp x0, x1, [sp+8]
    0058ac14stp x2, x3, [sp+24]
    0058ac18mov x3, x30
    0058ac1cbl runtime.morestack_noctxt.abi0
    0058ac20ldp x0, x1, [sp+8]
    0058ac24ldp x2, x3, [sp+24]
    0058ac28b 0x58aa30
    0058ac2cudf 0
    0058aa30
    0058ac30
    0058ac30crypto/internal/fips140/ecdsa.hashToNat[go.shape.*crypto/internal/fips140/nistec.P384Point]: ; void crypto/internal/fips140/ecdsa.hashToNat[go.shape.*crypto/internal/fips140/nistec.P384Point](uintptr[1] * dict, crypto/internal/fips140/ecdsa.Curve[go.shape.*crypto/internal/fips140/nistec.P384Point] * c, crypto/internal/fips140/bigmod.Nat * e, struct []uint8 hash)
    0058ac30ldr x16, [x28+16]
    0058ac34sub x17, sp, 48
    0058ac38subs xzr, x17, x16
    0058ac3cb.ls 0x58ad98
    0058ac40str x30, [sp-176]!
    0058ac44stur x29, [sp-8]
    0058ac48sub x29, sp, 8
    0058ac4cstr x0, [sp+184]
    0058ac50str x1, [sp+192]
    0058ac54str x2, [sp+200]
    0058ac58str x3, [sp+208]
    0058ac5cstr x4, [sp+216]
    0058ac60str x5, [sp+224]
    0058ac64ldr x1, [sp+192]
    0058ac68ldrsb x27, [x1]
    0058ac6cldr x0, [x1+32]
    0058ac70str x0, [sp+136]
    0058ac74bl crypto/internal/fips140/bigmod.(*Modulus).Size
    0058ac78str x0, [sp+48]
    0058ac7cldr x1, [sp+216]
    0058ac80str x1, [sp+64]
    0058ac84subs xzr, x0, x1
    0058ac88b.le 0x58ac90
    0058ac8cb 0x58ad08
    0058ac90
    0058ac90loc_58ac90:
    0058ac90ldr x2, [sp+224]
    0058ac94subs xzr, x0, x2
    0058ac98b.ls 0x58aca0
    0058ac9cb 0x58ad8c
    0058aca0
    0058aca0loc_58aca0:
    0058aca0b 0x58aca4
    0058aca4
    0058aca4loc_58aca4:
    0058aca4str x0, [sp+216]
    0058aca8str x0, [sp+64]
    0058acacldr x1, [sp+192]
    0058acb0ldrsb x27, [x1]
    0058acb4ldr x0, [x1+32]
    0058acb8str x0, [sp+128]
    0058acbcbl crypto/internal/fips140/bigmod.(*Modulus).BitLen
    0058acc0str x0, [sp+72]
    0058acc4ldr x1, [sp+64]
    0058acc8ubfm x1, x1, 61, 60
    0058acccsub x3, x1, x0
    0058acd0str x3, [sp+56]
    0058acd4subs xzr, x3, 0
    0058acd8b.gt 0x58ace0
    0058acdcb 0x58ad00
    0058ace0
    0058ace0loc_58ace0:
    0058ace0ldr x0, [sp+208]
    0058ace4ldr x1, [sp+216]
    0058ace8ldr x2, [sp+224]
    0058acecbl crypto/internal/fips140/ecdsa.rightShift
    0058acf0str x0, [sp+208]
    0058acf4str x1, [sp+216]
    0058acf8str x2, [sp+224]
    0058acfcb 0x58ad04
    0058ad00
    0058ad00loc_58ad00:
    0058ad00b 0x58ad04
    0058ad04
    0058ad04loc_58ad04:
    0058ad04b 0x58ad0c
    0058ad08
    0058ad08loc_58ad08:
    0058ad08b 0x58ad0c
    0058ad0c
    0058ad0cloc_58ad0c:
    0058ad0cstr xzr, [sp+160]
    0058ad10stp xzr, xzr, [sp+144]
    0058ad14ldr x5, [sp+192]
    0058ad18ldrsb x27, [x5]
    0058ad1cldr x4, [x5+32]
    0058ad20str x4, [sp+120]
    0058ad24ldr x1, [sp+208]
    0058ad28ldr x0, [sp+200]
    0058ad2cldr x2, [sp+216]
    0058ad30ldr x3, [sp+224]
    0058ad34bl crypto/internal/fips140/bigmod.(*Nat).SetOverflowingBytes
    0058ad38str x0, [sp+160]
    0058ad3cstr x1, [sp+144]
    0058ad40str x2, [sp+152]
    0058ad44ldr x5, [sp+160]
    0058ad48str x5, [sp+112]
    0058ad4cldr x5, [sp+152]
    0058ad50ldr x6, [sp+144]
    0058ad54str x6, [sp+96]
    0058ad58str x5, [sp+104]
    0058ad5cstr x6, [sp+80]
    0058ad60str x5, [sp+88]
    0058ad64cbnz x6, 0x58ad78
    0058ad68b 0x58ad6c
    0058ad6c
    0058ad6cloc_58ad6c:
    0058ad6cldur x29, [sp-8]
    0058ad70ldr x30, [sp], 176
    0058ad74ret x30
    0058ad78
    0058ad78loc_58ad78:
    0058ad78adrp x0, 0x6b000
    0058ad7cadd x0, x0, 2944
    0058ad80adrp x1, 0x188000
    0058ad84add x1, x1, 1584
    0058ad88bl runtime.gopanic
    0058ad8c
    0058ad8cloc_58ad8c:
    0058ad8cmov x1, x0
    0058ad90bl runtime.panicSliceAcap
    0058ad94hint
    0058ad98
    0058ad98loc_58ad98:
    0058ad98stp x0, x1, [sp+8]
    0058ad9cstp x2, x3, [sp+24]
    0058ada0stp x4, x5, [sp+40]
    0058ada4mov x3, x30
    0058ada8bl runtime.morestack_noctxt.abi0
    0058adacldp x0, x1, [sp+8]
    0058adb0ldp x2, x3, [sp+24]
    0058adb4ldp x4, x5, [sp+40]
    0058adb8b 0x58ac30
    0058adbcudf 0
    0058ac30
    0058adc0
    0058adc0crypto/internal/fips140/ecdsa.NewPublicKey[go.shape.*crypto/internal/fips140/nistec.P384Point]: ; void crypto/internal/fips140/ecdsa.NewPublicKey[go.shape.*crypto/internal/fips140/nistec.P384Point](uintptr[2] * dict, crypto/internal/fips140/ecdsa.Curve[go.shape.*crypto/internal/fips140/nistec.P384Point] * c, struct []uint8 Q)
    0058adc0ldr x16, [x28+16]
    0058adc4sub x17, sp, 32
    0058adc8subs xzr, x17, x16
    0058adccb.ls 0x58af54
    0058add0str x30, [sp-160]!
    0058add4stur x29, [sp-8]
    0058add8sub x29, sp, 8
    0058addcstr x0, [sp+168]
    0058ade0str x1, [sp+176]
    0058ade4str x2, [sp+184]
    0058ade8str x3, [sp+192]
    0058adecstr x4, [sp+200]
    0058adf0str xzr, [sp+64]
    0058adf4stp xzr, xzr, [sp+48]
    0058adf8ldr x0, [sp+176]
    0058adfcldrsb x27, [x0]
    0058ae00ldr x26, [x0+16]
    0058ae04ldr x0, [x26]
    0058ae08blr x0
    0058ae0cstr x0, [sp+96]
    0058ae10str xzr, [sp+88]
    0058ae14stp xzr, xzr, [sp+136]
    0058ae18ldr x26, [sp+168]
    0058ae1cldrsb x27, [x26]
    0058ae20ldr x0, [x26]
    0058ae24ldr x1, [sp+184]
    0058ae28ldr x2, [sp+192]
    0058ae2cldr x3, [sp+200]
    0058ae30ldr x4, [sp+96]
    0058ae34mov x5, x0
    0058ae38mov x0, x4
    0058ae3cblr x5
    0058ae40str x0, [sp+88]
    0058ae44str x1, [sp+136]
    0058ae48str x2, [sp+144]
    0058ae4cldr x0, [sp+88]
    0058ae50str x0, [sp+120]
    0058ae54ldr x0, [sp+144]
    0058ae58ldr x1, [sp+136]
    0058ae5cstr x1, [sp+104]
    0058ae60str x0, [sp+112]
    0058ae64str x1, [sp+72]
    0058ae68str x0, [sp+80]
    0058ae6ccbnz x1, 0x58ae74
    0058ae70b 0x58ae98
    0058ae74
    0058ae74loc_58ae74:
    0058ae74str xzr, [sp+64]
    0058ae78ldr x1, [sp+72]
    0058ae7cldr x2, [sp+80]
    0058ae80str x1, [sp+48]
    0058ae84str x2, [sp+56]
    0058ae88ldr x0, [sp+64]
    0058ae8cldur x29, [sp-8]
    0058ae90ldr x30, [sp], 160
    0058ae94ret x30
    0058ae98
    0058ae98loc_58ae98:
    0058ae98adrp x0, 0xbd000
    0058ae9cadd x0, x0, 3872
    0058aea0bl runtime.newobject
    0058aea4str x0, [sp+128]
    0058aea8ldr x1, [sp+176]
    0058aeacldrsb x27, [x1]
    0058aeb0ldr x2, [x1]
    0058aeb4ldr x1, [x1+8]
    0058aeb8str x1, [x0+8]
    0058aebcadrp x27, 0x4c1000
    0058aec0ldr w1, [x27+3056]
    0058aec4cbz w1, 0x58aecc
    0058aec8b 0x58aed0
    0058aecc
    0058aeccloc_58aecc:
    0058aeccb 0x58aee4
    0058aed0
    0058aed0loc_58aed0:
    0058aed0bl runtime.gcWriteBarrier2
    0058aed4str x2, [x25]
    0058aed8ldr x3, [x0]
    0058aedcstr x3, [x25+8]
    0058aee0b 0x58aee4
    0058aee4
    0058aee4loc_58aee4:
    0058aee4str x2, [x0]
    0058aee8ldr x3, [sp+128]
    0058aeecldrsb x27, [x3]
    0058aef0ldr x4, [sp+184]
    0058aef4ldr x5, [sp+192]
    0058aef8ldr x6, [sp+200]
    0058aefcstr x5, [x3+24]
    0058af00str x6, [x3+32]
    0058af04adrp x27, 0x4c1000
    0058af08ldr w5, [x27+3056]
    0058af0ccbz w5, 0x58af14
    0058af10b 0x58af18
    0058af14
    0058af14loc_58af14:
    0058af14b 0x58af2c
    0058af18
    0058af18loc_58af18:
    0058af18bl runtime.gcWriteBarrier2
    0058af1cstr x4, [x25]
    0058af20ldr x5, [x3+16]
    0058af24str x5, [x25+8]
    0058af28b 0x58af2c
    0058af2c
    0058af2cloc_58af2c:
    0058af2cstr x4, [x3+16]
    0058af30ldr x3, [sp+128]
    0058af34str x3, [sp+64]
    0058af38stp xzr, xzr, [sp+48]
    0058af3cldr x0, [sp+64]
    0058af40mov x1, xzr
    0058af44mov x2, xzr
    0058af48ldur x29, [sp-8]
    0058af4cldr x30, [sp], 160
    0058af50ret x30
    0058af54
    0058af54loc_58af54:
    0058af54stp x0, x1, [sp+8]
    0058af58stp x2, x3, [sp+24]
    0058af5cstr x4, [sp+40]
    0058af60mov x3, x30
    0058af64bl runtime.morestack_noctxt.abi0
    0058af68ldp x0, x1, [sp+8]
    0058af6cldp x2, x3, [sp+24]
    0058af70ldr x4, [sp+40]
    0058af74b 0x58adc0
    0058af78udf 0
    0058af7cudf 0
    0058adc0
    0058af80
    0058af80crypto/internal/fips140/ecdsa.Verify[go.shape.*crypto/internal/fips140/nistec.P256Point]: ; void crypto/internal/fips140/ecdsa.Verify[go.shape.*crypto/internal/fips140/nistec.P256Point](uintptr[2] * dict, crypto/internal/fips140/ecdsa.Curve[go.shape.*crypto/internal/fips140/nistec.P256Point] * c, crypto/internal/fips140/ecdsa.PublicKey * pub, struct []uint8 hash, crypto/internal/fips140/ecdsa.Signature * sig)
    0058af80ldr x16, [x28+16]
    0058af84sub x17, sp, 16
    0058af88subs xzr, x17, x16
    0058af8cb.ls 0x58b0a0
    0058af90str x30, [sp-144]!
    0058af94stur x29, [sp-8]
    0058af98sub x29, sp, 8
    0058af9cstr x0, [sp+152]
    0058afa0str x1, [sp+160]
    0058afa4str x2, [sp+168]
    0058afa8str x3, [sp+176]
    0058afacstr x4, [sp+184]
    0058afb0str x5, [sp+192]
    0058afb4str x6, [sp+200]
    0058afb8stp xzr, xzr, [sp+64]
    0058afbcldr x3, [sp+168]
    0058afc0ldrsb x27, [x3]
    0058afc4ldr x4, [x3]
    0058afc8ldr x3, [x3+8]
    0058afccstr x4, [sp+104]
    0058afd0str x3, [sp+112]
    0058afd4ldr x3, [sp+160]
    0058afd8ldrsb x27, [x3]
    0058afdcldr x1, [x3]
    0058afe0ldr x3, [x3+8]
    0058afe4str x1, [sp+88]
    0058afe8str x3, [sp+96]
    0058afecldr x4, [sp+112]
    0058aff0subs xzr, x4, x3
    0058aff4b.ne 0x58affc
    0058aff8b 0x58b000
    0058affc
    0058affcloc_58affc:
    0058affcb 0x58b074
    0058b000
    0058b000loc_58b000:
    0058b000ldr x2, [sp+112]
    0058b004ldr x0, [sp+104]
    0058b008bl runtime.memequal
    0058b00ctbnz w0, 0, 0x58b014
    0058b010b 0x58b070
    0058b014
    0058b014loc_58b014:
    0058b014bl crypto/internal/fips140.RecordApproved
    0058b018adrp x27, 0x496000
    0058b01cldr x26, [x27+328]
    0058b020ldr x0, [x26]
    0058b024blr x0
    0058b028ldr x0, [sp+152]
    0058b02cldrsb x27, [x0]
    0058b030ldr x0, [x0]
    0058b034str x0, [sp+80]
    0058b038ldr x3, [sp+176]
    0058b03cldr x2, [sp+168]
    0058b040ldr x6, [sp+200]
    0058b044ldr x1, [sp+160]
    0058b048ldr x4, [sp+184]
    0058b04cldr x5, [sp+192]
    0058b050bl crypto/internal/fips140/ecdsa.verify[go.shape.*crypto/internal/fips140/nistec.P256Point]
    0058b054str x0, [sp+120]
    0058b058str x1, [sp+128]
    0058b05cstr x0, [sp+64]
    0058b060str x1, [sp+72]
    0058b064ldur x29, [sp-8]
    0058b068ldr x30, [sp], 144
    0058b06cret x30
    0058b070
    0058b070loc_58b070:
    0058b070b 0x58b074
    0058b074
    0058b074loc_58b074:
    0058b074adrp x0, 0x138000
    0058b078add x0, x0, 576
    0058b07cmovz x1, 38
    0058b080bl errors.New
    0058b084str x0, [sp+120]
    0058b088str x1, [sp+128]
    0058b08cstr x0, [sp+64]
    0058b090str x1, [sp+72]
    0058b094ldur x29, [sp-8]
    0058b098ldr x30, [sp], 144
    0058b09cret x30
    0058b0a0
    0058b0a0loc_58b0a0:
    0058b0a0stp x0, x1, [sp+8]
    0058b0a4stp x2, x3, [sp+24]
    0058b0a8stp x4, x5, [sp+40]
    0058b0acstr x6, [sp+56]
    0058b0b0mov x3, x30
    0058b0b4bl runtime.morestack_noctxt.abi0
    0058b0b8ldp x0, x1, [sp+8]
    0058b0bcldp x2, x3, [sp+24]
    0058b0c0ldp x4, x5, [sp+40]
    0058b0c4ldr x6, [sp+56]
    0058b0c8b 0x58af80
    0058b0ccudf 0
    0058af80
    0058b0d0
    0058b0d0crypto/internal/fips140/ecdsa.NewPublicKey[go.shape.*crypto/internal/fips140/nistec.P256Point]: ; void crypto/internal/fips140/ecdsa.NewPublicKey[go.shape.*crypto/internal/fips140/nistec.P256Point](uintptr[2] * dict, crypto/internal/fips140/ecdsa.Curve[go.shape.*crypto/internal/fips140/nistec.P256Point] * c, struct []uint8 Q)
    0058b0d0ldr x16, [x28+16]
    0058b0d4sub x17, sp, 32
    0058b0d8subs xzr, x17, x16
    0058b0dcb.ls 0x58b264
    0058b0e0str x30, [sp-160]!
    0058b0e4stur x29, [sp-8]
    0058b0e8sub x29, sp, 8
    0058b0ecstr x0, [sp+168]
    0058b0f0str x1, [sp+176]
    0058b0f4str x2, [sp+184]
    0058b0f8str x3, [sp+192]
    0058b0fcstr x4, [sp+200]
    0058b100str xzr, [sp+64]
    0058b104stp xzr, xzr, [sp+48]
    0058b108ldr x0, [sp+176]
    0058b10cldrsb x27, [x0]
    0058b110ldr x26, [x0+16]
    0058b114ldr x0, [x26]
    0058b118blr x0
    0058b11cstr x0, [sp+96]
    0058b120str xzr, [sp+88]
    0058b124stp xzr, xzr, [sp+136]
    0058b128ldr x26, [sp+168]
    0058b12cldrsb x27, [x26]
    0058b130ldr x0, [x26]
    0058b134ldr x1, [sp+184]
    0058b138ldr x2, [sp+192]
    0058b13cldr x3, [sp+200]
    0058b140ldr x4, [sp+96]
    0058b144mov x5, x0
    0058b148mov x0, x4
    0058b14cblr x5
    0058b150str x0, [sp+88]
    0058b154str x1, [sp+136]
    0058b158str x2, [sp+144]
    0058b15cldr x0, [sp+88]
    0058b160str x0, [sp+120]
    0058b164ldr x0, [sp+144]
    0058b168ldr x1, [sp+136]
    0058b16cstr x1, [sp+104]
    0058b170str x0, [sp+112]
    0058b174str x1, [sp+72]
    0058b178str x0, [sp+80]
    0058b17ccbnz x1, 0x58b184
    0058b180b 0x58b1a8
    0058b184
    0058b184loc_58b184:
    0058b184str xzr, [sp+64]
    0058b188ldr x1, [sp+72]
    0058b18cldr x2, [sp+80]
    0058b190str x1, [sp+48]
    0058b194str x2, [sp+56]
    0058b198ldr x0, [sp+64]
    0058b19cldur x29, [sp-8]
    0058b1a0ldr x30, [sp], 160
    0058b1a4ret x30
    0058b1a8
    0058b1a8loc_58b1a8:
    0058b1a8adrp x0, 0xbc000
    0058b1acadd x0, x0, 3872
    0058b1b0bl runtime.newobject
    0058b1b4str x0, [sp+128]
    0058b1b8ldr x1, [sp+176]
    0058b1bcldrsb x27, [x1]
    0058b1c0ldr x2, [x1]
    0058b1c4ldr x1, [x1+8]
    0058b1c8str x1, [x0+8]
    0058b1ccadrp x27, 0x4c0000
    0058b1d0ldr w1, [x27+3056]
    0058b1d4cbz w1, 0x58b1dc
    0058b1d8b 0x58b1e0
    0058b1dc
    0058b1dcloc_58b1dc:
    0058b1dcb 0x58b1f4
    0058b1e0
    0058b1e0loc_58b1e0:
    0058b1e0bl runtime.gcWriteBarrier2
    0058b1e4str x2, [x25]
    0058b1e8ldr x3, [x0]
    0058b1ecstr x3, [x25+8]
    0058b1f0b 0x58b1f4
    0058b1f4
    0058b1f4loc_58b1f4:
    0058b1f4str x2, [x0]
    0058b1f8ldr x3, [sp+128]
    0058b1fcldrsb x27, [x3]
    0058b200ldr x4, [sp+184]
    0058b204ldr x5, [sp+192]
    0058b208ldr x6, [sp+200]
    0058b20cstr x5, [x3+24]
    0058b210str x6, [x3+32]
    0058b214adrp x27, 0x4c0000
    0058b218ldr w5, [x27+3056]
    0058b21ccbz w5, 0x58b224
    0058b220b 0x58b228
    0058b224
    0058b224loc_58b224:
    0058b224b 0x58b23c
    0058b228
    0058b228loc_58b228:
    0058b228bl runtime.gcWriteBarrier2
    0058b22cstr x4, [x25]
    0058b230ldr x5, [x3+16]
    0058b234str x5, [x25+8]
    0058b238b 0x58b23c
    0058b23c
    0058b23cloc_58b23c:
    0058b23cstr x4, [x3+16]
    0058b240ldr x3, [sp+128]
    0058b244str x3, [sp+64]
    0058b248stp xzr, xzr, [sp+48]
    0058b24cldr x0, [sp+64]
    0058b250mov x1, xzr
    0058b254mov x2, xzr
    0058b258ldur x29, [sp-8]
    0058b25cldr x30, [sp], 160
    0058b260ret x30
    0058b264
    0058b264loc_58b264:
    0058b264stp x0, x1, [sp+8]
    0058b268stp x2, x3, [sp+24]
    0058b26cstr x4, [sp+40]
    0058b270mov x3, x30
    0058b274bl runtime.morestack_noctxt.abi0
    0058b278ldp x0, x1, [sp+8]
    0058b27cldp x2, x3, [sp+24]
    0058b280ldr x4, [sp+40]
    0058b284b 0x58b0d0
    0058b288udf 0
    0058b28cudf 0
    0058b0d0
    0058b290
    0058b290crypto/internal/fips140/ecdsa.Verify[go.shape.*crypto/internal/fips140/nistec.P224Point]: ; void crypto/internal/fips140/ecdsa.Verify[go.shape.*crypto/internal/fips140/nistec.P224Point](uintptr[2] * dict, crypto/internal/fips140/ecdsa.Curve[go.shape.*crypto/internal/fips140/nistec.P224Point] * c, crypto/internal/fips140/ecdsa.PublicKey * pub, struct []uint8 hash, crypto/internal/fips140/ecdsa.Signature * sig)
    0058b290ldr x16, [x28+16]
    0058b294sub x17, sp, 16
    0058b298subs xzr, x17, x16
    0058b29cb.ls 0x58b3b0
    0058b2a0str x30, [sp-144]!
    0058b2a4stur x29, [sp-8]
    0058b2a8sub x29, sp, 8
    0058b2acstr x0, [sp+152]
    0058b2b0str x1, [sp+160]
    0058b2b4str x2, [sp+168]
    0058b2b8str x3, [sp+176]
    0058b2bcstr x4, [sp+184]
    0058b2c0str x5, [sp+192]
    0058b2c4str x6, [sp+200]
    0058b2c8stp xzr, xzr, [sp+64]
    0058b2ccldr x3, [sp+168]
    0058b2d0ldrsb x27, [x3]
    0058b2d4ldr x4, [x3]
    0058b2d8ldr x3, [x3+8]
    0058b2dcstr x4, [sp+104]
    0058b2e0str x3, [sp+112]
    0058b2e4ldr x3, [sp+160]
    0058b2e8ldrsb x27, [x3]
    0058b2ecldr x1, [x3]
    0058b2f0ldr x3, [x3+8]
    0058b2f4str x1, [sp+88]
    0058b2f8str x3, [sp+96]
    0058b2fcldr x4, [sp+112]
    0058b300subs xzr, x4, x3
    0058b304b.ne 0x58b30c
    0058b308b 0x58b310
    0058b30c
    0058b30cloc_58b30c:
    0058b30cb 0x58b384
    0058b310
    0058b310loc_58b310:
    0058b310ldr x2, [sp+112]
    0058b314ldr x0, [sp+104]
    0058b318bl runtime.memequal
    0058b31ctbnz w0, 0, 0x58b324
    0058b320b 0x58b380
    0058b324
    0058b324loc_58b324:
    0058b324bl crypto/internal/fips140.RecordApproved
    0058b328adrp x27, 0x496000
    0058b32cldr x26, [x27+328]
    0058b330ldr x0, [x26]
    0058b334blr x0
    0058b338ldr x0, [sp+152]
    0058b33cldrsb x27, [x0]
    0058b340ldr x0, [x0]
    0058b344str x0, [sp+80]
    0058b348ldr x3, [sp+176]
    0058b34cldr x2, [sp+168]
    0058b350ldr x6, [sp+200]
    0058b354ldr x1, [sp+160]
    0058b358ldr x4, [sp+184]
    0058b35cldr x5, [sp+192]
    0058b360bl crypto/internal/fips140/ecdsa.verify[go.shape.*crypto/internal/fips140/nistec.P224Point]
    0058b364str x0, [sp+120]
    0058b368str x1, [sp+128]
    0058b36cstr x0, [sp+64]
    0058b370str x1, [sp+72]
    0058b374ldur x29, [sp-8]
    0058b378ldr x30, [sp], 144
    0058b37cret x30
    0058b380
    0058b380loc_58b380:
    0058b380b 0x58b384
    0058b384
    0058b384loc_58b384:
    0058b384adrp x0, 0x138000
    0058b388add x0, x0, 576
    0058b38cmovz x1, 38
    0058b390bl errors.New
    0058b394str x0, [sp+120]
    0058b398str x1, [sp+128]
    0058b39cstr x0, [sp+64]
    0058b3a0str x1, [sp+72]
    0058b3a4ldur x29, [sp-8]
    0058b3a8ldr x30, [sp], 144
    0058b3acret x30
    0058b3b0
    0058b3b0loc_58b3b0:
    0058b3b0stp x0, x1, [sp+8]
    0058b3b4stp x2, x3, [sp+24]
    0058b3b8stp x4, x5, [sp+40]
    0058b3bcstr x6, [sp+56]
    0058b3c0mov x3, x30
    0058b3c4bl runtime.morestack_noctxt.abi0
    0058b3c8ldp x0, x1, [sp+8]
    0058b3ccldp x2, x3, [sp+24]
    0058b3d0ldp x4, x5, [sp+40]
    0058b3d4ldr x6, [sp+56]
    0058b3d8b 0x58b290
    0058b3dcudf 0
    0058b290
    0058b3e0
    0058b3e0crypto/internal/fips140/ecdsa.verify[go.shape.*crypto/internal/fips140/nistec.P224Point]: ; void crypto/internal/fips140/ecdsa.verify[go.shape.*crypto/internal/fips140/nistec.P224Point](uintptr[2] * dict, crypto/internal/fips140/ecdsa.Curve[go.shape.*crypto/internal/fips140/nistec.P224Point] * c, crypto/internal/fips140/ecdsa.PublicKey * pub, struct []uint8 hash, crypto/internal/fips140/ecdsa.Signature * sig)
    0058b3e0ldr x16, [x28+16]
    0058b3e4subs xzr, sp, x16
    0058b3e8b.ls 0x58b460
    0058b3ecstr x30, [sp-112]!
    0058b3f0stur x29, [sp-8]
    0058b3f4sub x29, sp, 8
    0058b3f8str x0, [sp+120]
    0058b3fcstr x1, [sp+128]
    0058b400str x2, [sp+136]
    0058b404str x3, [sp+144]
    0058b408str x4, [sp+152]
    0058b40cstr x5, [sp+160]
    0058b410str x6, [sp+168]
    0058b414stp xzr, xzr, [sp+64]
    0058b418ldr x7, [sp+120]
    0058b41cldrsb x27, [x7]
    0058b420ldr x0, [x7]
    0058b424str x0, [sp+80]
    0058b428ldr x3, [sp+144]
    0058b42cldr x2, [sp+136]
    0058b430ldr x6, [sp+168]
    0058b434ldr x1, [sp+128]
    0058b438ldr x4, [sp+152]
    0058b43cldr x5, [sp+160]
    0058b440bl crypto/internal/fips140/ecdsa.verifyGeneric[go.shape.*crypto/internal/fips140/nistec.P224Point]
    0058b444str x0, [sp+88]
    0058b448str x1, [sp+96]
    0058b44cstr x0, [sp+64]
    0058b450str x1, [sp+72]
    0058b454ldur x29, [sp-8]
    0058b458ldr x30, [sp], 112
    0058b45cret x30
    0058b460
    0058b460loc_58b460:
    0058b460stp x0, x1, [sp+8]
    0058b464stp x2, x3, [sp+24]
    0058b468stp x4, x5, [sp+40]
    0058b46cstr x6, [sp+56]
    0058b470mov x3, x30
    0058b474bl runtime.morestack_noctxt.abi0
    0058b478ldp x0, x1, [sp+8]
    0058b47cldp x2, x3, [sp+24]
    0058b480ldp x4, x5, [sp+40]
    0058b484ldr x6, [sp+56]
    0058b488b 0x58b3e0
    0058b48cudf 0
    0058b3e0
    0058b490
    0058b490crypto/internal/fips140/ecdsa.verifyGeneric[go.shape.*crypto/internal/fips140/nistec.P224Point]: ; void crypto/internal/fips140/ecdsa.verifyGeneric[go.shape.*crypto/internal/fips140/nistec.P224Point](uintptr[9] * dict, crypto/internal/fips140/ecdsa.Curve[go.shape.*crypto/internal/fips140/nistec.P224Point] * c, crypto/internal/fips140/ecdsa.PublicKey * pub, struct []uint8 hash, crypto/internal/fips140/ecdsa.Signature * sig)
    0058b490ldr x16, [x28+16]
    0058b494sub x17, sp, 464
    0058b498subs xzr, x17, x16
    0058b49cb.ls 0x58bb30
    0058b4a0sub x20, sp, 592
    0058b4a4stp x29, x30, [x20-8]
    0058b4a8add sp, x20, 0
    0058b4acsub x29, sp, 8
    0058b4b0str x0, [sp+600]
    0058b4b4str x1, [sp+608]
    0058b4b8str x2, [sp+616]
    0058b4bcstr x3, [sp+624]
    0058b4c0str x4, [sp+632]
    0058b4c4str x5, [sp+640]
    0058b4c8str x6, [sp+648]
    0058b4ccstp xzr, xzr, [sp+64]
    0058b4d0ldr x0, [sp+608]
    0058b4d4ldrsb x27, [x0]
    0058b4d8ldr x26, [x0+16]
    0058b4dcldr x0, [x26]
    0058b4e0blr x0
    0058b4e4str x0, [sp+416]
    0058b4e8str xzr, [sp+408]
    0058b4ecstp xzr, xzr, [sp+392]
    0058b4f0ldr x0, [sp+616]
    0058b4f4ldrsb x27, [x0]
    0058b4f8ldr x1, [x0+16]
    0058b4fcldr x2, [x0+24]
    0058b500ldr x3, [x0+32]
    0058b504str x1, [sp+328]
    0058b508str x2, [sp+336]
    0058b50cstr x3, [sp+344]
    0058b510ldr x26, [sp+600]
    0058b514ldrsb x27, [x26]
    0058b518ldr x0, [x26]
    0058b51cldr x4, [sp+416]
    0058b520mov x5, x0
    0058b524mov x0, x4
    0058b528blr x5
    0058b52cstr x0, [sp+408]
    0058b530str x1, [sp+392]
    0058b534str x2, [sp+400]
    0058b538ldr x0, [sp+408]
    0058b53cstr x0, [sp+200]
    0058b540ldr x0, [sp+392]
    0058b544ldr x1, [sp+400]
    0058b548str x0, [sp+184]
    0058b54cstr x1, [sp+192]
    0058b550ldr x0, [sp+200]
    0058b554str x0, [sp+176]
    0058b558ldr x1, [sp+192]
    0058b55cldr x0, [sp+184]
    0058b560str x0, [sp+128]
    0058b564str x1, [sp+136]
    0058b568cbnz x0, 0x58b570
    0058b56cb 0x58b584
    0058b570
    0058b570loc_58b570:
    0058b570str x0, [sp+64]
    0058b574str x1, [sp+72]
    0058b578ldp x29, x30, [sp-8]
    0058b57cadd sp, sp, 592
    0058b580ret x30
    0058b584
    0058b584loc_58b584:
    0058b584bl crypto/internal/fips140/bigmod.NewNat
    0058b588str x0, [sp+384]
    0058b58cstr xzr, [sp+376]
    0058b590stp xzr, xzr, [sp+392]
    0058b594ldr x0, [sp+648]
    0058b598ldrsb x27, [x0]
    0058b59cldr x1, [x0]
    0058b5a0ldr x2, [x0+8]
    0058b5a4ldr x0, [x0+16]
    0058b5a8str x1, [sp+304]
    0058b5acstr x2, [sp+312]
    0058b5b0str x0, [sp+320]
    0058b5b4ldr x0, [sp+608]
    0058b5b8ldrsb x27, [x0]
    0058b5bcldr x4, [x0+32]
    0058b5c0str x4, [sp+296]
    0058b5c4ldr x1, [sp+304]
    0058b5c8ldr x2, [sp+312]
    0058b5ccldr x3, [sp+320]
    0058b5d0ldr x0, [sp+384]
    0058b5d4bl crypto/internal/fips140/bigmod.(*Nat).SetBytes
    0058b5d8str x0, [sp+376]
    0058b5dcstr x1, [sp+392]
    0058b5e0str x2, [sp+400]
    0058b5e4ldr x0, [sp+376]
    0058b5e8str x0, [sp+576]
    0058b5ecldr x0, [sp+392]
    0058b5f0ldr x1, [sp+400]
    0058b5f4str x0, [sp+560]
    0058b5f8str x1, [sp+568]
    0058b5fcldr x0, [sp+576]
    0058b600str x0, [sp+104]
    0058b604ldr x1, [sp+568]
    0058b608ldr x0, [sp+560]
    0058b60cstr x0, [sp+128]
    0058b610str x1, [sp+136]
    0058b614cbnz x0, 0x58b61c
    0058b618b 0x58b630
    0058b61c
    0058b61cloc_58b61c:
    0058b61cstr x0, [sp+64]
    0058b620str x1, [sp+72]
    0058b624ldp x29, x30, [sp-8]
    0058b628add sp, sp, 592
    0058b62cret x30
    0058b630
    0058b630loc_58b630:
    0058b630ldr x0, [sp+104]
    0058b634bl crypto/internal/fips140/bigmod.(*Nat).IsZero
    0058b638str x0, [sp+56]
    0058b63csubs xzr, x0, 1
    0058b640b.eq 0x58b648
    0058b644b 0x58b674
    0058b648
    0058b648loc_58b648:
    0058b648adrp x0, 0x135000
    0058b64cadd x0, x0, 4031
    0058b650movz x1, 35
    0058b654bl errors.New
    0058b658str x0, [sp+392]
    0058b65cstr x1, [sp+400]
    0058b660str x0, [sp+64]
    0058b664str x1, [sp+72]
    0058b668ldp x29, x30, [sp-8]
    0058b66cadd sp, sp, 592
    0058b670ret x30
    0058b674
    0058b674loc_58b674:
    0058b674bl crypto/internal/fips140/bigmod.NewNat
    0058b678str x0, [sp+376]
    0058b67cstr xzr, [sp+384]
    0058b680stp xzr, xzr, [sp+392]
    0058b684ldr x0, [sp+648]
    0058b688ldrsb x27, [x0]
    0058b68cldr x1, [x0+24]
    0058b690ldr x2, [x0+32]
    0058b694ldr x0, [x0+40]
    0058b698str x1, [sp+272]
    0058b69cstr x2, [sp+280]
    0058b6a0str x0, [sp+288]
    0058b6a4ldr x0, [sp+608]
    0058b6a8ldrsb x27, [x0]
    0058b6acldr x4, [x0+32]
    0058b6b0str x4, [sp+264]
    0058b6b4ldr x1, [sp+272]
    0058b6b8ldr x2, [sp+280]
    0058b6bcldr x3, [sp+288]
    0058b6c0ldr x0, [sp+376]
    0058b6c4bl crypto/internal/fips140/bigmod.(*Nat).SetBytes
    0058b6c8str x0, [sp+384]
    0058b6ccstr x1, [sp+392]
    0058b6d0str x2, [sp+400]
    0058b6d4ldr x0, [sp+384]
    0058b6d8str x0, [sp+552]
    0058b6dcldr x0, [sp+392]
    0058b6e0ldr x1, [sp+400]
    0058b6e4str x0, [sp+536]
    0058b6e8str x1, [sp+544]
    0058b6ecldr x0, [sp+552]
    0058b6f0str x0, [sp+96]
    0058b6f4ldr x1, [sp+544]
    0058b6f8ldr x0, [sp+536]
    0058b6fcstr x0, [sp+128]
    0058b700str x1, [sp+136]
    0058b704cbnz x0, 0x58b70c
    0058b708b 0x58b720
    0058b70c
    0058b70cloc_58b70c:
    0058b70cstr x0, [sp+64]
    0058b710str x1, [sp+72]
    0058b714ldp x29, x30, [sp-8]
    0058b718add sp, sp, 592
    0058b71cret x30
    0058b720
    0058b720loc_58b720:
    0058b720ldr x0, [sp+96]
    0058b724bl crypto/internal/fips140/bigmod.(*Nat).IsZero
    0058b728str x0, [sp+56]
    0058b72csubs xzr, x0, 1
    0058b730b.eq 0x58b738
    0058b734b 0x58b764
    0058b738
    0058b738loc_58b738:
    0058b738adrp x0, 0x135000
    0058b73cadd x0, x0, 4066
    0058b740movz x1, 35
    0058b744bl errors.New
    0058b748str x0, [sp+392]
    0058b74cstr x1, [sp+400]
    0058b750str x0, [sp+64]
    0058b754str x1, [sp+72]
    0058b758ldp x29, x30, [sp-8]
    0058b75cadd sp, sp, 592
    0058b760ret x30
    0058b764
    0058b764loc_58b764:
    0058b764bl crypto/internal/fips140/bigmod.NewNat
    0058b768str x0, [sp+144]
    0058b76cldr x0, [sp+600]
    0058b770ldrsb x27, [x0]
    0058b774ldr x0, [x0+40]
    0058b778str x0, [sp+256]
    0058b77cldr x3, [sp+624]
    0058b780ldr x2, [sp+144]
    0058b784ldr x1, [sp+608]
    0058b788ldr x4, [sp+632]
    0058b78cldr x5, [sp+640]
    0058b790bl crypto/internal/fips140/ecdsa.hashToNat[go.shape.*crypto/internal/fips140/nistec.P224Point]
    0058b794bl crypto/internal/fips140/bigmod.NewNat
    0058b798str x0, [sp+80]
    0058b79cldr x0, [sp+600]
    0058b7a0ldrsb x27, [x0]
    0058b7a4ldr x0, [x0+48]
    0058b7a8str x0, [sp+248]
    0058b7acldr x2, [sp+80]
    0058b7b0ldr x3, [sp+96]
    0058b7b4ldr x1, [sp+608]
    0058b7b8bl crypto/internal/fips140/ecdsa.inverse[go.shape.*crypto/internal/fips140/nistec.P224Point]
    0058b7bcldr x0, [sp+608]
    0058b7c0ldrsb x27, [x0]
    0058b7c4ldr x26, [x0+16]
    0058b7c8ldr x0, [x26]
    0058b7ccblr x0
    0058b7d0str x0, [sp+408]
    0058b7d4ldr x0, [sp+608]
    0058b7d8ldrsb x27, [x0]
    0058b7dcldr x2, [x0+32]
    0058b7e0str x2, [sp+240]
    0058b7e4ldr x0, [sp+144]
    0058b7e8ldr x1, [sp+80]
    0058b7ecbl crypto/internal/fips140/bigmod.(*Nat).Mul
    0058b7f0str x0, [sp+384]
    0058b7f4ldr x0, [sp+608]
    0058b7f8ldrsb x27, [x0]
    0058b7fcldr x1, [x0+32]
    0058b800str x1, [sp+232]
    0058b804ldr x0, [sp+384]
    0058b808bl crypto/internal/fips140/bigmod.(*Nat).Bytes
    0058b80cstr x0, [sp+352]
    0058b810str x1, [sp+360]
    0058b814str x2, [sp+368]
    0058b818str xzr, [sp+416]
    0058b81cstp xzr, xzr, [sp+392]
    0058b820ldr x0, [sp+600]
    0058b824ldrsb x27, [x0]
    0058b828add x26, x0, 8
    0058b82cldr x0, [x0+8]
    0058b830ldr x1, [sp+352]
    0058b834ldr x2, [sp+360]
    0058b838ldr x3, [sp+368]
    0058b83cldr x4, [sp+408]
    0058b840mov x5, x0
    0058b844mov x0, x4
    0058b848blr x5
    0058b84cstr x0, [sp+416]
    0058b850str x1, [sp+392]
    0058b854str x2, [sp+400]
    0058b858ldr x0, [sp+416]
    0058b85cstr x0, [sp+528]
    0058b860ldr x0, [sp+392]
    0058b864ldr x1, [sp+400]
    0058b868str x0, [sp+512]
    0058b86cstr x1, [sp+520]
    0058b870ldr x0, [sp+528]
    0058b874str x0, [sp+120]
    0058b878ldr x1, [sp+520]
    0058b87cldr x0, [sp+512]
    0058b880str x0, [sp+128]
    0058b884str x1, [sp+136]
    0058b888cbnz x0, 0x58b890
    0058b88cb 0x58b8a4
    0058b890
    0058b890loc_58b890:
    0058b890str x0, [sp+64]
    0058b894str x1, [sp+72]
    0058b898ldp x29, x30, [sp-8]
    0058b89cadd sp, sp, 592
    0058b8a0ret x30
    0058b8a4
    0058b8a4loc_58b8a4:
    0058b8a4ldr x3, [sp+608]
    0058b8a8ldrsb x27, [x3]
    0058b8acldr x2, [x3+32]
    0058b8b0str x2, [sp+224]
    0058b8b4ldr x0, [sp+80]
    0058b8b8ldr x1, [sp+104]
    0058b8bcbl crypto/internal/fips140/bigmod.(*Nat).Mul
    0058b8c0str x0, [sp+384]
    0058b8c4ldr x3, [sp+608]
    0058b8c8ldrsb x27, [x3]
    0058b8ccldr x1, [x3+32]
    0058b8d0str x1, [sp+216]
    0058b8d4ldr x0, [sp+384]
    0058b8d8bl crypto/internal/fips140/bigmod.(*Nat).Bytes
    0058b8dcstr x0, [sp+352]
    0058b8e0str x1, [sp+360]
    0058b8e4str x2, [sp+368]
    0058b8e8str xzr, [sp+416]
    0058b8ecstp xzr, xzr, [sp+392]
    0058b8f0ldr x3, [sp+600]
    0058b8f4ldrsb x27, [x3]
    0058b8f8add x26, x3, 16
    0058b8fcldr x0, [sp+176]
    0058b900ldr x1, [sp+176]
    0058b904ldr x3, [x3+16]
    0058b908ldr x2, [sp+352]
    0058b90cldr x4, [sp+360]
    0058b910ldr x5, [sp+368]
    0058b914mov x6, x3
    0058b918mov x3, x4
    0058b91cmov x4, x5
    0058b920blr x6
    0058b924str x0, [sp+416]
    0058b928str x1, [sp+392]
    0058b92cstr x2, [sp+400]
    0058b930ldr x3, [sp+416]
    0058b934str x3, [sp+504]
    0058b938ldr x3, [sp+392]
    0058b93cldr x4, [sp+400]
    0058b940str x3, [sp+488]
    0058b944str x4, [sp+496]
    0058b948ldr x3, [sp+504]
    0058b94cstr x3, [sp+112]
    0058b950ldr x1, [sp+496]
    0058b954ldr x0, [sp+488]
    0058b958str x0, [sp+128]
    0058b95cstr x1, [sp+136]
    0058b960cbnz x0, 0x58b968
    0058b964b 0x58b97c
    0058b968
    0058b968loc_58b968:
    0058b968str x0, [sp+64]
    0058b96cstr x1, [sp+72]
    0058b970ldp x29, x30, [sp-8]
    0058b974add sp, sp, 592
    0058b978ret x30
    0058b97c
    0058b97cloc_58b97c:
    0058b97cldr x3, [sp+600]
    0058b980ldrsb x27, [x3]
    0058b984add x26, x3, 24
    0058b988ldr x0, [sp+120]
    0058b98cldr x1, [sp+120]
    0058b990ldr x2, [sp+112]
    0058b994ldr x3, [x3+24]
    0058b998blr x3
    0058b99cstr x0, [sp+416]
    0058b9a0str xzr, [sp+352]
    0058b9a4stp xzr, xzr, [sp+360]
    0058b9a8stp xzr, xzr, [sp+392]
    0058b9acldr x3, [sp+600]
    0058b9b0ldrsb x27, [x3]
    0058b9b4add x26, x3, 32
    0058b9b8ldr x3, [x3+32]
    0058b9bcldr x0, [sp+416]
    0058b9c0blr x3
    0058b9c4str x0, [sp+352]
    0058b9c8str x1, [sp+360]
    0058b9ccstr x2, [sp+368]
    0058b9d0str x3, [sp+392]
    0058b9d4str x4, [sp+400]
    0058b9d8ldr x3, [sp+352]
    0058b9dcldr x4, [sp+360]
    0058b9e0ldr x5, [sp+368]
    0058b9e4str x3, [sp+464]
    0058b9e8str x4, [sp+472]
    0058b9ecstr x5, [sp+480]
    0058b9f0ldr x3, [sp+392]
    0058b9f4ldr x4, [sp+400]
    0058b9f8str x3, [sp+448]
    0058b9fcstr x4, [sp+456]
    0058ba00ldr x3, [sp+464]
    0058ba04ldr x4, [sp+472]
    0058ba08ldr x5, [sp+480]
    0058ba0cstr x3, [sp+152]
    0058ba10str x4, [sp+160]
    0058ba14str x5, [sp+168]
    0058ba18ldr x1, [sp+456]
    0058ba1cldr x0, [sp+448]
    0058ba20str x0, [sp+128]
    0058ba24str x1, [sp+136]
    0058ba28cbnz x0, 0x58ba30
    0058ba2cb 0x58ba44
    0058ba30
    0058ba30loc_58ba30:
    0058ba30str x0, [sp+64]
    0058ba34str x1, [sp+72]
    0058ba38ldp x29, x30, [sp-8]
    0058ba3cadd sp, sp, 592
    0058ba40ret x30
    0058ba44
    0058ba44loc_58ba44:
    0058ba44bl crypto/internal/fips140/bigmod.NewNat
    0058ba48str x0, [sp+384]
    0058ba4cstr xzr, [sp+376]
    0058ba50stp xzr, xzr, [sp+392]
    0058ba54ldr x0, [sp+608]
    0058ba58ldrsb x27, [x0]
    0058ba5cldr x4, [x0+32]
    0058ba60str x4, [sp+208]
    0058ba64ldr x1, [sp+152]
    0058ba68ldr x2, [sp+160]
    0058ba6cldr x3, [sp+168]
    0058ba70ldr x0, [sp+384]
    0058ba74bl crypto/internal/fips140/bigmod.(*Nat).SetOverflowingBytes
    0058ba78str x0, [sp+376]
    0058ba7cstr x1, [sp+392]
    0058ba80str x2, [sp+400]
    0058ba84ldr x0, [sp+376]
    0058ba88str x0, [sp+440]
    0058ba8cldr x0, [sp+392]
    0058ba90ldr x1, [sp+400]
    0058ba94str x0, [sp+424]
    0058ba98str x1, [sp+432]
    0058ba9cldr x0, [sp+440]
    0058baa0str x0, [sp+88]
    0058baa4ldr x1, [sp+432]
    0058baa8ldr x0, [sp+424]
    0058baacstr x0, [sp+128]
    0058bab0str x1, [sp+136]
    0058bab4cbnz x0, 0x58babc
    0058bab8b 0x58bad0
    0058babc
    0058babcloc_58babc:
    0058babcstr x0, [sp+64]
    0058bac0str x1, [sp+72]
    0058bac4ldp x29, x30, [sp-8]
    0058bac8add sp, sp, 592
    0058baccret x30
    0058bad0
    0058bad0loc_58bad0:
    0058bad0ldr x1, [sp+104]
    0058bad4ldr x0, [sp+88]
    0058bad8bl crypto/internal/fips140/bigmod.(*Nat).Equal
    0058badcstr x0, [sp+56]
    0058bae0subs xzr, x0, 1
    0058bae4b.ne 0x58baec
    0058bae8b 0x58bb18
    0058baec
    0058baecloc_58baec:
    0058baecadrp x0, 0x133000
    0058baf0add x0, x0, 351
    0058baf4orr x1, xzr, 31
    0058baf8bl errors.New
    0058bafcstr x0, [sp+392]
    0058bb00str x1, [sp+400]
    0058bb04str x0, [sp+64]
    0058bb08str x1, [sp+72]
    0058bb0cldp x29, x30, [sp-8]
    0058bb10add sp, sp, 592
    0058bb14ret x30
    0058bb18
    0058bb18loc_58bb18:
    0058bb18stp xzr, xzr, [sp+64]
    0058bb1cmov x0, xzr
    0058bb20mov x1, xzr
    0058bb24ldp x29, x30, [sp-8]
    0058bb28add sp, sp, 592
    0058bb2cret x30
    0058bb30
    0058bb30loc_58bb30:
    0058bb30stp x0, x1, [sp+8]
    0058bb34stp x2, x3, [sp+24]
    0058bb38stp x4, x5, [sp+40]
    0058bb3cstr x6, [sp+56]
    0058bb40mov x3, x30
    0058bb44bl runtime.morestack_noctxt.abi0
    0058bb48ldp x0, x1, [sp+8]
    0058bb4cldp x2, x3, [sp+24]
    0058bb50ldp x4, x5, [sp+40]
    0058bb54ldr x6, [sp+56]
    0058bb58b 0x58b490
    0058bb5cudf 0
    0058b490