File sliver_83cb34f62800fed14e14547c39337aab8e0427fe2c6310a3fb40ce0ac36168c9.elf
Function:
    002804d0
    002804d0crypto/cipher.(*gcmFallback).Open: ; void crypto/cipher.(*gcmFallback).Open(crypto/cipher.gcmFallback * g, struct []uint8 dst, struct []uint8 nonce, struct []uint8 ciphertext, struct []uint8 additionalData)
    002804d0ldr x16, [x28+16]
    002804d4sub x17, sp, 320
    002804d8subs xzr, x17, x16
    002804dcb.ls 0x280aa8
    002804e0sub x20, sp, 448
    002804e4stp x29, x30, [x20-8]
    002804e8add sp, x20, 0
    002804ecsub x29, sp, 8
    002804f0str x0, [sp+456]
    002804f4str x1, [sp+464]
    002804f8str x2, [sp+472]
    002804fcstr x3, [sp+480]
    00280500str x4, [sp+488]
    00280504str x5, [sp+496]
    00280508str x6, [sp+504]
    0028050cstr x7, [sp+512]
    00280510str x8, [sp+520]
    00280514str x9, [sp+528]
    00280518str x10, [sp+536]
    0028051cstr x11, [sp+544]
    00280520str x12, [sp+552]
    00280524str xzr, [sp+192]
    00280528stp xzr, xzr, [sp+200]
    0028052cstp xzr, xzr, [sp+176]
    00280530ldr x5, [sp+496]
    00280534str x5, [sp+168]
    00280538ldr x6, [sp+456]
    0028053cldrsb x27, [x6]
    00280540ldr x6, [x6+16]
    00280544subs xzr, x5, x6
    00280548b.ne 0x280a90
    0028054cb 0x280550
    00280550
    00280550loc_280550:
    00280550ldr x5, [sp+456]
    00280554ldrsb x27, [x5]
    00280558ldr x5, [x5+24]
    0028055csubs xzr, x5, 12
    00280560b.lt 0x280a7c
    00280564b 0x280568
    00280568
    00280568loc_280568:
    00280568ldr x5, [sp+520]
    0028056cstr x5, [sp+168]
    00280570ldr x6, [sp+456]
    00280574ldrsb x27, [x6]
    00280578ldr x6, [x6+24]
    0028057csubs xzr, x5, x6
    00280580b.lt 0x280588
    00280584b 0x2805c0
    00280588
    00280588loc_280588:
    00280588str xzr, [sp+192]
    0028058cstp xzr, xzr, [sp+200]
    00280590adrp x27, 0x7a1000
    00280594ldr x3, [x27+4048]
    00280598adrp x27, 0x7a1000
    0028059cldr x4, [x27+4056]
    002805a0str x3, [sp+176]
    002805a4str x4, [sp+184]
    002805a8ldr x0, [sp+192]
    002805acldr x1, [sp+200]
    002805b0ldr x2, [sp+208]
    002805b4ldp x29, x30, [sp-8]
    002805b8add sp, sp, 448
    002805bcret x30
    002805c0
    002805c0loc_2805c0:
    002805c0ldr x5, [sp+520]
    002805c4str x5, [sp+168]
    002805c8ldr x6, [sp+456]
    002805ccldrsb x27, [x6]
    002805d0ldr x6, [x6+24]
    002805d4orr x7, xzr, 0xfffffffe0
    002805d8add x6, x6, x7
    002805dcsubs xzr, x5, x6
    002805e0b.hi 0x2805e8
    002805e4b 0x280620
    002805e8
    002805e8loc_2805e8:
    002805e8str xzr, [sp+192]
    002805ecstp xzr, xzr, [sp+200]
    002805f0adrp x27, 0x7a1000
    002805f4ldr x3, [x27+4048]
    002805f8adrp x27, 0x7a1000
    002805fcldr x4, [x27+4056]
    00280600str x3, [sp+176]
    00280604str x4, [sp+184]
    00280608ldr x0, [sp+192]
    0028060cldr x1, [sp+200]
    00280610ldr x2, [sp+208]
    00280614ldp x29, x30, [sp-8]
    00280618add sp, sp, 448
    0028061cret x30
    00280620
    00280620loc_280620:
    00280620ldr x4, [sp+520]
    00280624str x4, [sp+168]
    00280628str xzr, [sp+376]
    0028062cstp xzr, xzr, [sp+384]
    00280630str xzr, [sp+352]
    00280634stp xzr, xzr, [sp+360]
    00280638ldr x4, [sp+168]
    0028063cldr x5, [sp+456]
    00280640ldrsb x27, [x5]
    00280644ldr x5, [x5+24]
    00280648sub x3, x4, x5
    0028064cstr x3, [sp+152]
    00280650ldr x1, [sp+472]
    00280654ldr x2, [sp+480]
    00280658ldr x0, [sp+464]
    0028065cbl crypto/cipher.sliceForAppend
    00280660str x0, [sp+376]
    00280664str x1, [sp+384]
    00280668str x2, [sp+392]
    0028066cstr x3, [sp+352]
    00280670str x4, [sp+360]
    00280674str x5, [sp+368]
    00280678ldr x4, [sp+376]
    0028067cldr x5, [sp+384]
    00280680ldr x6, [sp+392]
    00280684str x4, [sp+288]
    00280688str x5, [sp+296]
    0028068cstr x6, [sp+304]
    00280690ldr x4, [sp+352]
    00280694ldr x5, [sp+360]
    00280698ldr x6, [sp+368]
    0028069cstr x4, [sp+400]
    002806a0str x5, [sp+408]
    002806a4str x6, [sp+416]
    002806a8ldr x4, [sp+288]
    002806acldr x5, [sp+296]
    002806b0ldr x6, [sp+304]
    002806b4str x4, [sp+240]
    002806b8str x5, [sp+248]
    002806bcstr x6, [sp+256]
    002806c0ldr x0, [sp+400]
    002806c4ldr x1, [sp+408]
    002806c8ldr x2, [sp+416]
    002806ccstr x0, [sp+264]
    002806d0str x1, [sp+272]
    002806d4str x2, [sp+280]
    002806d8ldr x4, [sp+520]
    002806dcldr x5, [sp+528]
    002806e0ldr x3, [sp+512]
    002806e4bl crypto/internal/fips140/alias.InexactOverlap
    002806e8strb w0, [sp+143]
    002806ectbnz w0, 0, 0x280a68
    002806f0b 0x2806f4
    002806f4
    002806f4loc_2806f4:
    002806f4ldr x0, [sp+264]
    002806f8ldr x3, [sp+536]
    002806fcldr x1, [sp+272]
    00280700ldr x4, [sp+544]
    00280704ldr x2, [sp+280]
    00280708ldr x5, [sp+552]
    0028070cbl crypto/internal/fips140/alias.AnyOverlap
    00280710strb w0, [sp+143]
    00280714tbnz w0, 0, 0x280a54
    00280718b 0x28071c
    0028071c
    0028071cloc_28071c:
    0028071cadrp x0, 0x37c000
    00280720add x0, x0, 3264
    00280724bl runtime.newobject
    00280728str x0, [sp+432]
    0028072cstp xzr, xzr, [x0]
    00280730adrp x0, 0x37c000
    00280734add x0, x0, 3264
    00280738bl runtime.newobject
    0028073cstr x0, [sp+424]
    00280740stp xzr, xzr, [x0]
    00280744add x27, sp, 111
    00280748stp xzr, xzr, [x27]
    0028074cldr x1, [sp+432]
    00280750ldrsb x27, [x1]
    00280754b 0x280758
    00280758
    00280758loc_280758:
    00280758str x1, [sp+352]
    0028075corr x6, xzr, 16
    00280760str x6, [sp+360]
    00280764str x6, [sp+368]
    00280768ldr x4, [sp+432]
    0028076cldrsb x27, [x4]
    00280770b 0x280774
    00280774
    00280774loc_280774:
    00280774str x4, [sp+376]
    00280778str x6, [sp+384]
    0028077cstr x6, [sp+392]
    00280780ldr x7, [sp+456]
    00280784ldrsb x27, [x7]
    00280788ldr x8, [x7]
    0028078cldrsb x27, [x8]
    00280790ldr x0, [x7+8]
    00280794ldr x7, [x8+40]
    00280798ldr x1, [sp+352]
    0028079cldr x2, [sp+360]
    002807a0ldr x3, [sp+368]
    002807a4mov x5, x6
    002807a8blr x7
    002807acldr x2, [sp+488]
    002807b0ldr x3, [sp+496]
    002807b4ldr x4, [sp+504]
    002807b8ldr x0, [sp+432]
    002807bcldr x1, [sp+424]
    002807c0bl crypto/cipher.deriveCounter
    002807c4add x7, sp, 111
    002807c8ldrsb x27, [x7]
    002807ccb 0x2807d0
    002807d0
    002807d0loc_2807d0:
    002807d0str x7, [sp+376]
    002807d4orr x9, xzr, 16
    002807d8str x9, [sp+384]
    002807dcstr x9, [sp+392]
    002807e0add x10, sp, 111
    002807e4ldrsb x27, [x10]
    002807e8b 0x2807ec
    002807ec
    002807ecloc_2807ec:
    002807ecstr x10, [sp+352]
    002807f0str x9, [sp+360]
    002807f4str x9, [sp+368]
    002807f8ldr x9, [sp+456]
    002807fcldrsb x27, [x9]
    00280800ldr x0, [x9]
    00280804ldr x1, [x9+8]
    00280808str x0, [sp+336]
    0028080cstr x1, [sp+344]
    00280810ldr x5, [sp+352]
    00280814ldr x6, [sp+360]
    00280818ldr x7, [sp+368]
    0028081cldr x2, [sp+376]
    00280820ldr x3, [sp+384]
    00280824ldr x4, [sp+392]
    00280828ldr x8, [sp+424]
    0028082cbl crypto/cipher.gcmCounterCryptGeneric
    00280830ldr x9, [sp+520]
    00280834str x9, [sp+168]
    00280838ldr x10, [sp+456]
    0028083cldrsb x27, [x10]
    00280840ldr x10, [x10+24]
    00280844sub x0, x9, x10
    00280848str x0, [sp+160]
    0028084cldr x1, [sp+520]
    00280850ldr x11, [sp+528]
    00280854ldr x12, [sp+512]
    00280858b 0x28085c
    0028085c
    0028085cloc_28085c:
    0028085csubs xzr, x1, x0
    00280860b.hs 0x280868
    00280864b 0x280a50
    00280868
    00280868loc_280868:
    00280868add x11, x11, x10
    0028086csub x11, x11, x9
    00280870add x13, x1, x10
    00280874sub x13, x13, x9
    00280878sub x14, xzr, x11
    0028087cand x14, x0, x14, asr #63
    00280880add x12, x12, x14
    00280884str x12, [sp+216]
    00280888str x13, [sp+224]
    0028088cstr x11, [sp+232]
    00280890ldr x11, [sp+520]
    00280894str x11, [sp+160]
    00280898ldr x12, [sp+456]
    0028089cldrsb x27, [x12]
    002808a0ldr x12, [x12+24]
    002808a4sub x1, x11, x12
    002808a8str x1, [sp+168]
    002808acldr x2, [sp+528]
    002808b0subs xzr, x2, x1
    002808b4b.hs 0x2808bc
    002808b8b 0x280a4c
    002808bc
    002808bcloc_2808bc:
    002808bcb 0x2808c0
    002808c0
    002808c0loc_2808c0:
    002808c0str x1, [sp+520]
    002808c4add x27, sp, 127
    002808c8stp xzr, xzr, [x27]
    002808ccadd x0, sp, 127
    002808d0ldrsb x27, [x0]
    002808d4b 0x2808d8
    002808d8
    002808d8loc_2808d8:
    002808d8str x0, [sp+352]
    002808dcorr x2, xzr, 16
    002808e0str x2, [sp+360]
    002808e4str x2, [sp+368]
    002808e8ldr x5, [sp+512]
    002808ecldr x8, [sp+536]
    002808f0ldr x6, [sp+520]
    002808f4ldr x9, [sp+544]
    002808f8ldr x7, [sp+528]
    002808fcldr x10, [sp+552]
    00280900ldr x3, [sp+432]
    00280904mov x1, x2
    00280908add x4, sp, 111
    0028090cbl crypto/cipher.gcmAuth
    00280910ldr x11, [sp+456]
    00280914ldrsb x27, [x11]
    00280918ldr x1, [x11+24]
    0028091cstr x1, [sp+168]
    00280920add x0, sp, 127
    00280924ldrsb x27, [x0]
    00280928subs xzr, x1, 16
    0028092cb.ls 0x280934
    00280930b 0x280a44
    00280934
    00280934loc_280934:
    00280934b 0x280938
    00280938
    00280938loc_280938:
    00280938str x0, [sp+352]
    0028093cstr x1, [sp+360]
    00280940orr x2, xzr, 16
    00280944str x2, [sp+368]
    00280948ldr x3, [sp+216]
    0028094cldr x4, [sp+224]
    00280950ldr x5, [sp+232]
    00280954bl crypto/subtle.ConstantTimeCompare
    00280958str x0, [sp+160]
    0028095csubs xzr, x0, 1
    00280960b.ne 0x280968
    00280964b 0x2809d0
    00280968
    00280968loc_280968:
    00280968ldr x5, [sp+272]
    0028096ccbnz x5, 0x280974
    00280970b 0x280994
    00280974
    00280974loc_280974:
    00280974ldr x2, [sp+264]
    00280978str x2, [sp+328]
    0028097cldr x2, [sp+272]
    00280980str x2, [sp+144]
    00280984ldr x1, [sp+144]
    00280988ldr x0, [sp+328]
    0028098cbl runtime.memclrNoHeapPointers
    00280990b 0x280998
    00280994
    00280994loc_280994:
    00280994b 0x280998
    00280998
    00280998loc_280998:
    00280998str xzr, [sp+192]
    0028099cstp xzr, xzr, [sp+200]
    002809a0adrp x27, 0x7a1000
    002809a4ldr x3, [x27+4048]
    002809a8adrp x27, 0x7a1000
    002809acldr x4, [x27+4056]
    002809b0str x3, [sp+176]
    002809b4str x4, [sp+184]
    002809b8ldr x0, [sp+192]
    002809bcldr x1, [sp+200]
    002809c0ldr x2, [sp+208]
    002809c4ldp x29, x30, [sp-8]
    002809c8add sp, sp, 448
    002809ccret x30
    002809d0
    002809d0loc_2809d0:
    002809d0ldr x9, [sp+456]
    002809d4ldrsb x27, [x9]
    002809d8ldr x0, [x9]
    002809dcldr x1, [x9+8]
    002809e0str x0, [sp+312]
    002809e4str x1, [sp+320]
    002809e8ldr x2, [sp+264]
    002809ecldr x5, [sp+512]
    002809f0ldr x3, [sp+272]
    002809f4ldr x6, [sp+520]
    002809f8ldr x4, [sp+280]
    002809fcldr x7, [sp+528]
    00280a00ldr x8, [sp+424]
    00280a04bl crypto/cipher.gcmCounterCryptGeneric
    00280a08ldr x9, [sp+240]
    00280a0cldr x10, [sp+248]
    00280a10ldr x11, [sp+256]
    00280a14str x9, [sp+192]
    00280a18str x10, [sp+200]
    00280a1cstr x11, [sp+208]
    00280a20stp xzr, xzr, [sp+176]
    00280a24ldr x0, [sp+192]
    00280a28ldr x1, [sp+200]
    00280a2cldr x2, [sp+208]
    00280a30mov x3, xzr
    00280a34mov x4, xzr
    00280a38ldp x29, x30, [sp-8]
    00280a3cadd sp, sp, 448
    00280a40ret x30
    00280a44
    00280a44loc_280a44:
    00280a44orr x2, xzr, 16
    00280a48bl runtime.panicSliceAlen
    00280a4c
    00280a4cloc_280a4c:
    00280a4cbl runtime.panicSliceAcap
    00280a50
    00280a50loc_280a50:
    00280a50bl runtime.panicSliceB
    00280a54
    00280a54loc_280a54:
    00280a54adrp x0, 0x375000
    00280a58add x0, x0, 2944
    00280a5cadrp x1, 0x492000
    00280a60add x1, x1, 2400
    00280a64bl runtime.gopanic
    00280a68
    00280a68loc_280a68:
    00280a68adrp x0, 0x375000
    00280a6cadd x0, x0, 2944
    00280a70adrp x1, 0x492000
    00280a74add x1, x1, 2384
    00280a78bl runtime.gopanic
    00280a7c
    00280a7cloc_280a7c:
    00280a7cadrp x0, 0x375000
    00280a80add x0, x0, 2944
    00280a84adrp x1, 0x492000
    00280a88add x1, x1, 2464
    00280a8cbl runtime.gopanic
    00280a90
    00280a90loc_280a90:
    00280a90adrp x0, 0x375000
    00280a94add x0, x0, 2944
    00280a98adrp x1, 0x492000
    00280a9cadd x1, x1, 2416
    00280aa0bl runtime.gopanic
    00280aa4hint
    00280aa8
    00280aa8loc_280aa8:
    00280aa8stp x0, x1, [sp+8]
    00280aacstp x2, x3, [sp+24]
    00280ab0stp x4, x5, [sp+40]
    00280ab4stp x6, x7, [sp+56]
    00280ab8stp x8, x9, [sp+72]
    00280abcstp x10, x11, [sp+88]
    00280ac0str x12, [sp+104]
    00280ac4mov x3, x30
    00280ac8bl runtime.morestack_noctxt.abi0
    00280accldp x0, x1, [sp+8]
    00280ad0ldp x2, x3, [sp+24]
    00280ad4ldp x4, x5, [sp+40]
    00280ad8ldp x6, x7, [sp+56]
    00280adcldp x8, x9, [sp+72]
    00280ae0ldp x10, x11, [sp+88]
    00280ae4ldr x12, [sp+104]
    00280ae8b 0x2804d0
    00280aecudf 0
    002804d0
    00280af0
    00280af0crypto/cipher.deriveCounter: ; void crypto/cipher.deriveCounter(uint8[16] * H, uint8[16] * counter, struct []uint8 nonce)
    00280af0ldr x16, [x28+16]
    00280af4sub x17, sp, 224
    00280af8subs xzr, x17, x16
    00280afcb.ls 0x280da0
    00280b00sub x20, sp, 352
    00280b04stp x29, x30, [x20-8]
    00280b08add sp, x20, 0
    00280b0csub x29, sp, 8
    00280b10str x0, [sp+360]
    00280b14str x1, [sp+368]
    00280b18str x2, [sp+376]
    00280b1cstr x3, [sp+384]
    00280b20str x4, [sp+392]
    00280b24str x3, [sp+56]
    00280b28subs xzr, x3, 12
    00280b2cb.eq 0x280b34
    00280b30b 0x280bd8
    00280b34
    00280b34loc_280b34:
    00280b34ldrsb x27, [x1]
    00280b38b 0x280b3c
    00280b3c
    00280b3cloc_280b3c:
    00280b3cstr x1, [sp+240]
    00280b40orr x3, xzr, 16
    00280b44str x3, [sp+248]
    00280b48str x3, [sp+256]
    00280b4cstr x1, [sp+168]
    00280b50str x3, [sp+176]
    00280b54str x3, [sp+184]
    00280b58ldr x3, [sp+384]
    00280b5cldr x4, [sp+376]
    00280b60ldr x5, [sp+392]
    00280b64str x4, [sp+144]
    00280b68str x3, [sp+152]
    00280b6cstr x5, [sp+160]
    00280b70ldr x4, [sp+176]
    00280b74str x4, [sp+88]
    00280b78subs xzr, x4, x3
    00280b7cb.gt 0x280b84
    00280b80b 0x280b8c
    00280b84
    00280b84loc_280b84:
    00280b84str x3, [sp+88]
    00280b88b 0x280b90
    00280b8c
    00280b8cloc_280b8c:
    00280b8cb 0x280b90
    00280b90
    00280b90loc_280b90:
    00280b90ldr x3, [sp+144]
    00280b94ldr x4, [sp+168]
    00280b98subs xzr, x4, x3
    00280b9cb.ne 0x280ba4
    00280ba0b 0x280bc0
    00280ba4
    00280ba4loc_280ba4:
    00280ba4ldr x3, [sp+88]
    00280ba8str x3, [sp+80]
    00280bacldr x2, [sp+80]
    00280bb0ldr x1, [sp+144]
    00280bb4ldr x0, [sp+168]
    00280bb8bl runtime.memmove
    00280bbcb 0x280bc4
    00280bc0
    00280bc0loc_280bc0:
    00280bc0b 0x280bc4
    00280bc4
    00280bc4loc_280bc4:
    00280bc4ldr x0, [sp+368]
    00280bc8ldrsb x27, [x0]
    00280bccorr x1, xzr, 1
    00280bd0strb w1, [x0+15]
    00280bd4b 0x280d94
    00280bd8
    00280bd8loc_280bd8:
    00280bd8b 0x280bdc
    00280bdc
    00280bdcloc_280bdc:
    00280bdcstp xzr, xzr, [sp+40]
    00280be0add x4, sp, 40
    00280be4ldrsb x27, [x4]
    00280be8b 0x280bec
    00280bec
    00280becloc_280bec:
    00280becstr x4, [sp+96]
    00280bf0orr x5, xzr, 16
    00280bf4str x5, [sp+104]
    00280bf8str x5, [sp+112]
    00280bfcb 0x280c00
    00280c00
    00280c00loc_280c00:
    00280c00b 0x280c04
    00280c04
    00280c04loc_280c04:
    00280c04add x0, x4, 8
    00280c08str x0, [sp+240]
    00280c0corr x2, xzr, 8
    00280c10str x2, [sp+248]
    00280c14str x2, [sp+256]
    00280c18ldr x4, [sp+384]
    00280c1cstr x4, [sp+56]
    00280c20ubfm x3, x4, 61, 60
    00280c24mov x1, x2
    00280c28bl internal/byteorder.BEPutUint64
    00280c2cstp xzr, xzr, [sp+192]
    00280c30stp xzr, xzr, [sp+208]
    00280c34stp xzr, xzr, [sp+224]
    00280c38add x4, sp, 192
    00280c3cstr x4, [sp+312]
    00280c40ldrsb x27, [x4]
    00280c44ldr x5, [sp+376]
    00280c48ldr x6, [sp+384]
    00280c4cldr x7, [sp+392]
    00280c50str x6, [x4+8]
    00280c54str x7, [x4+16]
    00280c58adrp x27, 0x7cb000
    00280c5cldr w6, [x27+3056]
    00280c60cbz w6, 0x280c68
    00280c64b 0x280c6c
    00280c68
    00280c68loc_280c68:
    00280c68b 0x280c80
    00280c6c
    00280c6cloc_280c6c:
    00280c6cbl runtime.gcWriteBarrier2
    00280c70str x5, [x25]
    00280c74ldr x6, [x4]
    00280c78str x6, [x25+8]
    00280c7cb 0x280c80
    00280c80
    00280c80loc_280c80:
    00280c80str x5, [x4]
    00280c84ldrsb x27, [x4]
    00280c88ldr x5, [sp+96]
    00280c8cldr x6, [sp+104]
    00280c90ldr x7, [sp+112]
    00280c94str x6, [x4+32]
    00280c98str x7, [x4+40]
    00280c9cadrp x27, 0x7cb000
    00280ca0ldr w6, [x27+3056]
    00280ca4cbz w6, 0x280cac
    00280ca8b 0x280cb0
    00280cac
    00280cacloc_280cac:
    00280cacb 0x280cc4
    00280cb0
    00280cb0loc_280cb0:
    00280cb0bl runtime.gcWriteBarrier2
    00280cb4str x5, [x25]
    00280cb8ldr x6, [x4+24]
    00280cbcstr x6, [x25+8]
    00280cc0b 0x280cc4
    00280cc4
    00280cc4loc_280cc4:
    00280cc4str x5, [x4+24]
    00280cc8ldr x1, [sp+312]
    00280cccldrsb x27, [x1]
    00280cd0b 0x280cd4
    00280cd4
    00280cd4loc_280cd4:
    00280cd4str x1, [sp+320]
    00280cd8orr x3, xzr, 2
    00280cdcstr x3, [sp+328]
    00280ce0str x3, [sp+336]
    00280ce4ldr x0, [sp+360]
    00280ce8mov x2, x3
    00280cecbl crypto/internal/fips140/aes/gcm.GHASH
    00280cf0str x0, [sp+120]
    00280cf4str x1, [sp+128]
    00280cf8str x2, [sp+136]
    00280cfcldr x4, [sp+368]
    00280d00ldrsb x27, [x4]
    00280d04b 0x280d08
    00280d08
    00280d08loc_280d08:
    00280d08str x4, [sp+240]
    00280d0corr x3, xzr, 16
    00280d10str x3, [sp+248]
    00280d14str x3, [sp+256]
    00280d18str x4, [sp+288]
    00280d1cstr x3, [sp+296]
    00280d20str x3, [sp+304]
    00280d24ldr x3, [sp+128]
    00280d28ldr x4, [sp+120]
    00280d2cldr x5, [sp+136]
    00280d30str x4, [sp+264]
    00280d34str x3, [sp+272]
    00280d38str x5, [sp+280]
    00280d3cldr x4, [sp+296]
    00280d40str x4, [sp+72]
    00280d44subs xzr, x4, x3
    00280d48b.gt 0x280d50
    00280d4cb 0x280d58
    00280d50
    00280d50loc_280d50:
    00280d50str x3, [sp+72]
    00280d54b 0x280d5c
    00280d58
    00280d58loc_280d58:
    00280d58b 0x280d5c
    00280d5c
    00280d5cloc_280d5c:
    00280d5cldr x3, [sp+288]
    00280d60ldr x4, [sp+264]
    00280d64subs xzr, x4, x3
    00280d68b.ne 0x280d70
    00280d6cb 0x280d8c
    00280d70
    00280d70loc_280d70:
    00280d70ldr x3, [sp+72]
    00280d74str x3, [sp+64]
    00280d78ldr x2, [sp+64]
    00280d7cldr x1, [sp+264]
    00280d80ldr x0, [sp+288]
    00280d84bl runtime.memmove
    00280d88b 0x280d90
    00280d8c
    00280d8cloc_280d8c:
    00280d8cb 0x280d90
    00280d90
    00280d90loc_280d90:
    00280d90b 0x280d94
    00280d94
    00280d94loc_280d94:
    00280d94ldp x29, x30, [sp-8]
    00280d98add sp, sp, 352
    00280d9cret x30
    00280da0
    00280da0loc_280da0:
    00280da0stp x0, x1, [sp+8]
    00280da4stp x2, x3, [sp+24]
    00280da8str x4, [sp+40]
    00280dacmov x3, x30
    00280db0bl runtime.morestack_noctxt.abi0
    00280db4ldp x0, x1, [sp+8]
    00280db8ldp x2, x3, [sp+24]
    00280dbcldr x4, [sp+40]
    00280dc0b 0x280af0
    00280dc4udf 0
    00280dc8udf 0
    00280dccudf 0
    00280af0
    00280dd0
    00280dd0crypto/cipher.gcmCounterCryptGeneric: ; void crypto/cipher.gcmCounterCryptGeneric(crypto/cipher.Block b, struct []uint8 out, struct []uint8 src, uint8[16] * counter)
    00280dd0ldr x16, [x28+16]
    00280dd4sub x17, sp, 32
    00280dd8subs xzr, x17, x16
    00280ddcb.ls 0x281034
    00280de0str x30, [sp-160]!
    00280de4stur x29, [sp-8]
    00280de8sub x29, sp, 8
    00280decstr x0, [sp+168]
    00280df0str x1, [sp+176]
    00280df4str x2, [sp+184]
    00280df8str x3, [sp+192]
    00280dfcstr x4, [sp+200]
    00280e00str x5, [sp+208]
    00280e04str x6, [sp+216]
    00280e08str x7, [sp+224]
    00280e0cstr x8, [sp+232]
    00280e10adrp x0, 0x37c000
    00280e14add x0, x0, 3264
    00280e18bl runtime.newobject
    00280e1cstr x0, [sp+144]
    00280e20stp xzr, xzr, [x0]
    00280e24b 0x280e28
    00280e28
    00280e28loc_280e28:
    00280e28ldr x7, [sp+216]
    00280e2cstr x7, [sp+88]
    00280e30subs xzr, x7, 16
    00280e34b.ge 0x280e3c
    00280e38b 0x280f60
    00280e3c
    00280e3cloc_280e3c:
    00280e3cldr x7, [sp+144]
    00280e40ldrsb x27, [x7]
    00280e44b 0x280e48
    00280e48
    00280e48loc_280e48:
    00280e48str x7, [sp+120]
    00280e4corr x6, xzr, 16
    00280e50str x6, [sp+128]
    00280e54str x6, [sp+136]
    00280e58ldr x4, [sp+232]
    00280e5cldrsb x27, [x4]
    00280e60b 0x280e64
    00280e64
    00280e64loc_280e64:
    00280e64str x4, [sp+96]
    00280e68str x6, [sp+104]
    00280e6cstr x6, [sp+112]
    00280e70ldr x7, [sp+168]
    00280e74ldrsb x27, [x7]
    00280e78ldr x0, [sp+176]
    00280e7cldr x7, [x7+40]
    00280e80ldr x1, [sp+120]
    00280e84ldr x2, [sp+128]
    00280e88ldr x3, [sp+136]
    00280e8cmov x5, x6
    00280e90blr x7
    00280e94ldr x0, [sp+232]
    00280e98bl crypto/cipher.gcmInc32
    00280e9cldr x6, [sp+144]
    00280ea0ldrsb x27, [x6]
    00280ea4b 0x280ea8
    00280ea8
    00280ea8loc_280ea8:
    00280ea8str x6, [sp+96]
    00280eacorr x8, xzr, 16
    00280eb0str x8, [sp+104]
    00280eb4str x8, [sp+112]
    00280eb8ldr x0, [sp+184]
    00280ebcldr x3, [sp+208]
    00280ec0ldr x1, [sp+192]
    00280ec4ldr x4, [sp+216]
    00280ec8ldr x2, [sp+200]
    00280eccldr x5, [sp+224]
    00280ed0mov x7, x8
    00280ed4bl crypto/subtle.XORBytes
    00280ed8ldr x1, [sp+192]
    00280edcldr x9, [sp+184]
    00280ee0ldr x10, [sp+200]
    00280ee4b 0x280ee8
    00280ee8
    00280ee8loc_280ee8:
    00280ee8subs xzr, x1, 16
    00280eecb.hs 0x280ef4
    00280ef0b 0x281028
    00280ef4
    00280ef4loc_280ef4:
    00280ef4sub x7, x10, 16
    00280ef8sub x8, xzr, x7
    00280efcsub x10, x1, 16
    00280f00sbfm x8, x8, 63, 63
    00280f04and x8, x8, 16
    00280f08add x8, x9, x8
    00280f0cstr x8, [sp+184]
    00280f10str x10, [sp+192]
    00280f14str x7, [sp+200]
    00280f18ldr x1, [sp+216]
    00280f1cldr x7, [sp+208]
    00280f20ldr x8, [sp+224]
    00280f24b 0x280f28
    00280f28
    00280f28loc_280f28:
    00280f28subs xzr, x1, 16
    00280f2cb.hs 0x280f34
    00280f30b 0x281020
    00280f34
    00280f34loc_280f34:
    00280f34sub x8, x8, 16
    00280f38sub x9, xzr, x8
    00280f3csub x10, x1, 16
    00280f40sbfm x9, x9, 63, 63
    00280f44and x9, x9, 16
    00280f48add x7, x7, x9
    00280f4cstr x7, [sp+208]
    00280f50str x10, [sp+216]
    00280f54str x8, [sp+224]
    00280f58b 0x280f5c
    00280f5c
    00280f5cloc_280f5c:
    00280f5cb 0x280e28
    00280f60
    00280f60loc_280f60:
    00280f60ldr x7, [sp+216]
    00280f64str x7, [sp+88]
    00280f68cbnz x7, 0x280f70
    00280f6cb 0x281010
    00280f70
    00280f70loc_280f70:
    00280f70ldr x7, [sp+144]
    00280f74ldrsb x27, [x7]
    00280f78b 0x280f7c
    00280f7c
    00280f7cloc_280f7c:
    00280f7cstr x7, [sp+96]
    00280f80orr x6, xzr, 16
    00280f84str x6, [sp+104]
    00280f88str x6, [sp+112]
    00280f8cldr x4, [sp+232]
    00280f90ldrsb x27, [x4]
    00280f94b 0x280f98
    00280f98
    00280f98loc_280f98:
    00280f98str x4, [sp+120]
    00280f9cstr x6, [sp+128]
    00280fa0str x6, [sp+136]
    00280fa4ldr x7, [sp+168]
    00280fa8ldrsb x27, [x7]
    00280facldr x0, [sp+176]
    00280fb0ldr x7, [x7+40]
    00280fb4ldr x1, [sp+96]
    00280fb8ldr x2, [sp+104]
    00280fbcldr x3, [sp+112]
    00280fc0mov x5, x6
    00280fc4blr x7
    00280fc8ldr x0, [sp+232]
    00280fccbl crypto/cipher.gcmInc32
    00280fd0ldr x6, [sp+144]
    00280fd4ldrsb x27, [x6]
    00280fd8b 0x280fdc
    00280fdc
    00280fdcloc_280fdc:
    00280fdcstr x6, [sp+120]
    00280fe0orr x8, xzr, 16
    00280fe4str x8, [sp+128]
    00280fe8str x8, [sp+136]
    00280fecldr x0, [sp+184]
    00280ff0ldr x3, [sp+208]
    00280ff4ldr x1, [sp+192]
    00280ff8ldr x4, [sp+216]
    00280ffcldr x2, [sp+200]
    00281000ldr x5, [sp+224]
    00281004mov x7, x8
    00281008bl crypto/subtle.XORBytes
    0028100cb 0x281014
    00281010
    00281010loc_281010:
    00281010b 0x281014
    00281014
    00281014loc_281014:
    00281014ldur x29, [sp-8]
    00281018ldr x30, [sp], 160
    0028101cret x30
    00281020
    00281020loc_281020:
    00281020orr x0, xzr, 16
    00281024bl runtime.panicSliceB
    00281028
    00281028loc_281028:
    00281028orr x0, xzr, 16
    0028102cbl runtime.panicSliceB
    00281030hint
    00281034
    00281034loc_281034:
    00281034stp x0, x1, [sp+8]
    00281038stp x2, x3, [sp+24]
    0028103cstp x4, x5, [sp+40]
    00281040stp x6, x7, [sp+56]
    00281044str x8, [sp+72]
    00281048mov x3, x30
    0028104cbl runtime.morestack_noctxt.abi0
    00281050ldp x0, x1, [sp+8]
    00281054ldp x2, x3, [sp+24]
    00281058ldp x4, x5, [sp+40]
    0028105cldp x6, x7, [sp+56]
    00281060ldr x8, [sp+72]
    00281064b 0x280dd0
    00281068udf 0
    0028106cudf 0
    00280dd0
    00281070
    00281070crypto/cipher.gcmInc32: ; void crypto/cipher.gcmInc32(uint8[16] * counterBlock)
    00281070ldr x16, [x28+16]
    00281074subs xzr, sp, x16
    00281078b.ls 0x2810dc
    0028107cstr x30, [sp-80]!
    00281080stur x29, [sp-8]
    00281084sub x29, sp, 8
    00281088str x0, [sp+88]
    0028108cldrsb x27, [x0]
    00281090b 0x281094
    00281094
    00281094loc_281094:
    00281094add x0, x0, 12
    00281098str x0, [sp+48]
    0028109corr x2, xzr, 4
    002810a0str x2, [sp+56]
    002810a4str x2, [sp+64]
    002810a8mov x1, x2
    002810acbl internal/byteorder.BEUint32
    002810b0str w0, [sp+44]
    002810b4ldr x3, [sp+48]
    002810b8ldr x1, [sp+56]
    002810bcldr x2, [sp+64]
    002810c0add x4, x0, 1
    002810c4mov x0, x3
    002810c8mov x3, x4
    002810ccbl internal/byteorder.BEPutUint32
    002810d0ldur x29, [sp-8]
    002810d4ldr x30, [sp], 80
    002810d8ret x30
    002810dc
    002810dcloc_2810dc:
    002810dcstr x0, [sp+8]
    002810e0mov x3, x30
    002810e4bl runtime.morestack_noctxt.abi0
    002810e8ldr x0, [sp+8]
    002810ecb 0x281070
    00281070
    002810f0
    002810f0crypto/cipher.gcmAuth: ; void crypto/cipher.gcmAuth(struct []uint8 out, uint8[16] * H, uint8[16] * tagMask, struct []uint8 ciphertext, struct []uint8 additionalData)
    002810f0ldr x16, [x28+16]
    002810f4sub x17, sp, 160
    002810f8subs xzr, x17, x16
    002810fcb.ls 0x281350
    00281100sub x20, sp, 288
    00281104stp x29, x30, [x20-8]
    00281108add sp, x20, 0
    0028110csub x29, sp, 8
    00281110str x0, [sp+296]
    00281114str x1, [sp+304]
    00281118str x2, [sp+312]
    0028111cstr x3, [sp+320]
    00281120str x4, [sp+328]
    00281124str x5, [sp+336]
    00281128str x6, [sp+344]
    0028112cstr x7, [sp+352]
    00281130str x8, [sp+360]
    00281134str x9, [sp+368]
    00281138str x10, [sp+376]
    0028113cb 0x281140
    00281140
    00281140loc_281140:
    00281140stp xzr, xzr, [sp+80]
    00281144add x4, sp, 80
    00281148ldrsb x27, [x4]
    0028114cb 0x281150
    00281150
    00281150loc_281150:
    00281150str x4, [sp+104]
    00281154orr x2, xzr, 16
    00281158str x2, [sp+112]
    0028115cstr x2, [sp+120]
    00281160b 0x281164
    00281164
    00281164loc_281164:
    00281164b 0x281168
    00281168
    00281168loc_281168:
    00281168str x4, [sp+224]
    0028116corr x1, xzr, 8
    00281170str x1, [sp+232]
    00281174str x2, [sp+240]
    00281178ldr x4, [sp+368]
    0028117cstr x4, [sp+96]
    00281180ldr x0, [sp+224]
    00281184ubfm x3, x4, 61, 60
    00281188bl internal/byteorder.BEPutUint64
    0028118cldr x1, [sp+112]
    00281190ldr x4, [sp+104]
    00281194ldr x5, [sp+120]
    00281198b 0x28119c
    0028119c
    0028119cloc_28119c:
    0028119csubs xzr, x1, 8
    002811a0b.hs 0x2811a8
    002811a4b 0x281344
    002811a8
    002811a8loc_2811a8:
    002811a8sub x2, x5, 8
    002811acsub x1, x1, 8
    002811b0sub x5, xzr, x2
    002811b4sbfm x5, x5, 63, 63
    002811b8and x5, x5, 8
    002811bcadd x0, x4, x5
    002811c0str x0, [sp+224]
    002811c4str x1, [sp+232]
    002811c8str x2, [sp+240]
    002811ccldr x4, [sp+344]
    002811d0str x4, [sp+96]
    002811d4ubfm x3, x4, 61, 60
    002811d8bl internal/byteorder.BEPutUint64
    002811dcstp xzr, xzr, [sp+152]
    002811e0stp xzr, xzr, [sp+168]
    002811e4stp xzr, xzr, [sp+184]
    002811e8stp xzr, xzr, [sp+200]
    002811ecstr xzr, [sp+216]
    002811f0add x4, sp, 152
    002811f4str x4, [sp+248]
    002811f8ldrsb x27, [x4]
    002811fcldr x5, [sp+360]
    00281200ldr x6, [sp+368]
    00281204ldr x7, [sp+376]
    00281208str x6, [x4+8]
    0028120cstr x7, [x4+16]
    00281210adrp x27, 0x7ca000
    00281214ldr w6, [x27+3056]
    00281218cbz w6, 0x281220
    0028121cb 0x281224
    00281220
    00281220loc_281220:
    00281220b 0x281238
    00281224
    00281224loc_281224:
    00281224bl runtime.gcWriteBarrier2
    00281228str x5, [x25]
    0028122cldr x6, [x4]
    00281230str x6, [x25+8]
    00281234b 0x281238
    00281238
    00281238loc_281238:
    00281238str x5, [x4]
    0028123cldrsb x27, [x4]
    00281240ldr x5, [sp+336]
    00281244ldr x6, [sp+344]
    00281248ldr x7, [sp+352]
    0028124cstr x6, [x4+32]
    00281250str x7, [x4+40]
    00281254adrp x27, 0x7ca000
    00281258ldr w6, [x27+3056]
    0028125ccbz w6, 0x281264
    00281260b 0x281268
    00281264
    00281264loc_281264:
    00281264b 0x28127c
    00281268
    00281268loc_281268:
    00281268bl runtime.gcWriteBarrier2
    0028126cstr x5, [x25]
    00281270ldr x6, [x4+24]
    00281274str x6, [x25+8]
    00281278b 0x28127c
    0028127c
    0028127cloc_28127c:
    0028127cstr x5, [x4+24]
    00281280ldr x4, [sp+104]
    00281284ldr x5, [sp+112]
    00281288ldr x6, [sp+120]
    0028128cldr x7, [sp+248]
    00281290ldrsb x27, [x7]
    00281294str x5, [x7+56]
    00281298str x6, [x7+64]
    0028129cadrp x27, 0x7ca000
    002812a0ldr w5, [x27+3056]
    002812a4cbz w5, 0x2812ac
    002812a8b 0x2812b0
    002812ac
    002812acloc_2812ac:
    002812acb 0x2812c4
    002812b0
    002812b0loc_2812b0:
    002812b0bl runtime.gcWriteBarrier2
    002812b4str x4, [x25]
    002812b8ldr x5, [x7+48]
    002812bcstr x5, [x25+8]
    002812c0b 0x2812c4
    002812c4
    002812c4loc_2812c4:
    002812c4str x4, [x7+48]
    002812c8ldr x1, [sp+248]
    002812ccldrsb x27, [x1]
    002812d0b 0x2812d4
    002812d4
    002812d4loc_2812d4:
    002812d4str x1, [sp+256]
    002812d8orr x3, xzr, 3
    002812dcstr x3, [sp+264]
    002812e0str x3, [sp+272]
    002812e4ldr x0, [sp+320]
    002812e8mov x2, x3
    002812ecbl crypto/internal/fips140/aes/gcm.GHASH
    002812f0str x0, [sp+128]
    002812f4str x1, [sp+136]
    002812f8str x2, [sp+144]
    002812fcldr x6, [sp+328]
    00281300ldrsb x27, [x6]
    00281304b 0x281308
    00281308
    00281308loc_281308:
    00281308str x6, [sp+224]
    0028130corr x8, xzr, 16
    00281310str x8, [sp+232]
    00281314str x8, [sp+240]
    00281318ldr x0, [sp+296]
    0028131cldr x3, [sp+128]
    00281320ldr x1, [sp+304]
    00281324ldr x4, [sp+136]
    00281328ldr x2, [sp+312]
    0028132cldr x5, [sp+144]
    00281330mov x7, x8
    00281334bl crypto/subtle.XORBytes
    00281338ldp x29, x30, [sp-8]
    0028133cadd sp, sp, 288
    00281340ret x30
    00281344
    00281344loc_281344:
    00281344orr x0, xzr, 8
    00281348bl runtime.panicSliceB
    0028134chint
    00281350
    00281350loc_281350:
    00281350stp x0, x1, [sp+8]
    00281354stp x2, x3, [sp+24]
    00281358stp x4, x5, [sp+40]
    0028135cstp x6, x7, [sp+56]
    00281360stp x8, x9, [sp+72]
    00281364str x10, [sp+88]
    00281368mov x3, x30
    0028136cbl runtime.morestack_noctxt.abi0
    00281370ldp x0, x1, [sp+8]
    00281374ldp x2, x3, [sp+24]
    00281378ldp x4, x5, [sp+40]
    0028137cldp x6, x7, [sp+56]
    00281380ldp x8, x9, [sp+72]
    00281384ldr x10, [sp+88]
    00281388b 0x2810f0
    0028138cudf 0
    002810f0
    00281390
    00281390crypto/cipher.sliceForAppend: ; void crypto/cipher.sliceForAppend(struct []uint8 in, int n)
    00281390ldr x16, [x28+16]
    00281394sub x17, sp, 48
    00281398subs xzr, x17, x16
    0028139cb.ls 0x28152c
    002813a0str x30, [sp-176]!
    002813a4stur x29, [sp-8]
    002813a8sub x29, sp, 8
    002813acstr x0, [sp+184]
    002813b0str x1, [sp+192]
    002813b4str x2, [sp+200]
    002813b8str x3, [sp+208]
    002813bcstr xzr, [sp+96]
    002813c0stp xzr, xzr, [sp+104]
    002813c4str xzr, [sp+72]
    002813c8stp xzr, xzr, [sp+80]
    002813ccldr x6, [sp+192]
    002813d0str x6, [sp+64]
    002813d4ldr x7, [sp+208]
    002813d8add x2, x6, x7
    002813dcstr x2, [sp+40]
    002813e0ldr x6, [sp+200]
    002813e4str x6, [sp+64]
    002813e8subs xzr, x6, x2
    002813ecb.ge 0x2813f4
    002813f0b 0x28141c
    002813f4
    002813f4loc_2813f4:
    002813f4ldr x6, [sp+200]
    002813f8ldr x7, [sp+184]
    002813fcsubs xzr, x6, x2
    00281400b.hs 0x281408
    00281404b 0x28151c
    00281408
    00281408loc_281408:
    00281408b 0x28140c
    0028140c
    0028140cloc_28140c:
    0028140cstr x7, [sp+96]
    00281410str x2, [sp+104]
    00281414str x6, [sp+112]
    00281418b 0x2814bc
    0028141c
    0028141cloc_28141c:
    0028141cadrp x0, 0x374000
    00281420add x0, x0, 3072
    00281424mov x1, x2
    00281428bl runtime.makeslice
    0028142cldr x3, [sp+40]
    00281430ldr x4, [sp+40]
    00281434str x0, [sp+96]
    00281438str x3, [sp+104]
    0028143cstr x4, [sp+112]
    00281440str x0, [sp+144]
    00281444str x3, [sp+152]
    00281448str x4, [sp+160]
    0028144cldr x3, [sp+192]
    00281450ldr x4, [sp+184]
    00281454ldr x5, [sp+200]
    00281458str x4, [sp+120]
    0028145cstr x3, [sp+128]
    00281460str x5, [sp+136]
    00281464ldr x4, [sp+152]
    00281468str x4, [sp+56]
    0028146csubs xzr, x4, x3
    00281470b.gt 0x281478
    00281474b 0x281480
    00281478
    00281478loc_281478:
    00281478str x3, [sp+56]
    0028147cb 0x281484
    00281480
    00281480loc_281480:
    00281480b 0x281484
    00281484
    00281484loc_281484:
    00281484ldr x6, [sp+120]
    00281488ldr x7, [sp+144]
    0028148csubs xzr, x6, x7
    00281490b.ne 0x281498
    00281494b 0x2814b4
    00281498
    00281498loc_281498:
    00281498ldr x3, [sp+56]
    0028149cstr x3, [sp+48]
    002814a0ldr x2, [sp+48]
    002814a4ldr x1, [sp+120]
    002814a8ldr x0, [sp+144]
    002814acbl runtime.memmove
    002814b0b 0x2814b8
    002814b4
    002814b4loc_2814b4:
    002814b4b 0x2814b8
    002814b8
    002814b8loc_2814b8:
    002814b8b 0x2814bc
    002814bc
    002814bcloc_2814bc:
    002814bcldr x0, [sp+192]
    002814c0str x0, [sp+64]
    002814c4ldr x1, [sp+104]
    002814c8ldr x6, [sp+112]
    002814ccldr x7, [sp+96]
    002814d0b 0x2814d4
    002814d4
    002814d4loc_2814d4:
    002814d4subs xzr, x0, x1
    002814d8b.ls 0x2814e0
    002814dcb 0x281518
    002814e0
    002814e0loc_2814e0:
    002814e0sub x5, x6, x0
    002814e4sub x4, x1, x0
    002814e8sub x6, xzr, x5
    002814ecand x6, x0, x6, asr #63
    002814f0add x3, x7, x6
    002814f4str x3, [sp+72]
    002814f8str x4, [sp+80]
    002814fcstr x5, [sp+88]
    00281500ldr x0, [sp+96]
    00281504ldr x1, [sp+104]
    00281508ldr x2, [sp+112]
    0028150cldur x29, [sp-8]
    00281510ldr x30, [sp], 176
    00281514ret x30
    00281518
    00281518loc_281518:
    00281518bl runtime.panicSliceB
    0028151c
    0028151cloc_28151c:
    0028151cmov x1, x2
    00281520mov x2, x6
    00281524bl runtime.panicSliceAcap
    00281528hint
    0028152c
    0028152cloc_28152c:
    0028152cstp x0, x1, [sp+8]
    00281530stp x2, x3, [sp+24]
    00281534mov x3, x30
    00281538bl runtime.morestack_noctxt.abi0
    0028153cldp x0, x1, [sp+8]
    00281540ldp x2, x3, [sp+24]
    00281544b 0x281390
    00281548udf 0
    0028154cudf 0
    00281390
    00281550
    00281550type:.eq.crypto/cipher.gcmFallback: ; void type:.eq.crypto/cipher.gcmFallback(crypto/cipher.gcmFallback * p, crypto/cipher.gcmFallback * q)
    00281550ldr x16, [x28+16]
    00281554subs xzr, sp, x16
    00281558b.ls 0x281620
    0028155cstr x30, [sp-80]!
    00281560stur x29, [sp-8]
    00281564sub x29, sp, 8
    00281568str x0, [sp+88]
    0028156cstr x1, [sp+96]
    00281570strb wzr, [sp+39]
    00281574ldr x3, [sp+96]
    00281578ldr x4, [x3]
    0028157cldr x3, [x3+8]
    00281580str x4, [sp+56]
    00281584str x3, [sp+64]
    00281588ldr x3, [sp+88]
    0028158cldr x0, [x3]
    00281590ldr x1, [x3+8]
    00281594str x0, [sp+40]
    00281598str x1, [sp+48]
    0028159cldr x3, [sp+56]
    002815a0subs xzr, x3, x0
    002815a4b.eq 0x2815ac
    002815a8b 0x281600
    002815ac
    002815acloc_2815ac:
    002815acldr x2, [sp+64]
    002815b0bl runtime.ifaceeq
    002815b4tbnz w0, 0, 0x2815bc
    002815b8b 0x2815fc
    002815bc
    002815bcloc_2815bc:
    002815bcldr x1, [sp+88]
    002815c0ldr x2, [sp+96]
    002815c4ldr x1, [x1+16]
    002815c8ldr x2, [x2+16]
    002815ccsubs xzr, x2, x1
    002815d0b.eq 0x2815d8
    002815d4b 0x2815f8
    002815d8
    002815d8loc_2815d8:
    002815d8ldr x1, [sp+88]
    002815dcldr x2, [sp+96]
    002815e0ldr x1, [x1+24]
    002815e4ldr x2, [x2+24]
    002815e8subs xzr, x2, x1
    002815eccset x1, eq
    002815f0strb w1, [sp+39]
    002815f4b 0x281610
    002815f8
    002815f8loc_2815f8:
    002815f8b 0x281608
    002815fc
    002815fcloc_2815fc:
    002815fcb 0x281604
    00281600
    00281600loc_281600:
    00281600b 0x281604
    00281604
    00281604loc_281604:
    00281604b 0x281608
    00281608
    00281608loc_281608:
    00281608strb wzr, [sp+39]
    0028160cb 0x281610
    00281610
    00281610loc_281610:
    00281610ldrb w0, [sp+39]
    00281614ldur x29, [sp-8]
    00281618ldr x30, [sp], 80
    0028161cret x30
    00281620
    00281620loc_281620:
    00281620stp x0, x1, [sp+8]
    00281624mov x3, x30
    00281628bl runtime.morestack_noctxt.abi0
    0028162cldp x0, x1, [sp+8]
    00281630b 0x281550
    00281634udf 0
    00281638udf 0
    0028163cudf 0
    00281550
    00281640
    00281640crypto/cipher.(*aesCtrWrapper).XORKeyStream: ; void crypto/cipher.(*aesCtrWrapper).XORKeyStream(crypto/cipher.aesCtrWrapper * x, struct []uint8 dst, struct []uint8 src)
    00281640ldr x16, [x28+16]
    00281644subs xzr, sp, x16
    00281648b.ls 0x2816c8
    0028164cstr x30, [sp-80]!
    00281650stur x29, [sp-8]
    00281654sub x29, sp, 8
    00281658ldr x16, [x28+32]
    0028165ccbnz x16, 0x2816f4
    00281660
    00281660loc_281660:
    00281660str x0, [sp+88]
    00281664str x1, [sp+96]
    00281668str x2, [sp+104]
    0028166cstr x3, [sp+112]
    00281670str x4, [sp+120]
    00281674str x5, [sp+128]
    00281678str x6, [sp+136]
    0028167cldr x7, [sp+88]
    00281680cbnz x7, 0x281688
    00281684b 0x2816c0
    00281688
    00281688loc_281688:
    00281688ldr x7, [sp+88]
    0028168cldrsb x27, [x7]
    00281690ldr x0, [x7]
    00281694str x0, [sp+64]
    00281698ldr x1, [sp+96]
    0028169cldr x4, [sp+120]
    002816a0ldr x2, [sp+104]
    002816a4ldr x5, [sp+128]
    002816a8ldr x3, [sp+112]
    002816acldr x6, [sp+136]
    002816b0bl crypto/cipher.aesCtrWrapper.XORKeyStream
    002816b4ldur x29, [sp-8]
    002816b8ldr x30, [sp], 80
    002816bcret x30
    002816c0
    002816c0loc_2816c0:
    002816c0bl runtime.panicwrap
    002816c4hint
    002816c8
    002816c8loc_2816c8:
    002816c8stp x0, x1, [sp+8]
    002816ccstp x2, x3, [sp+24]
    002816d0stp x4, x5, [sp+40]
    002816d4str x6, [sp+56]
    002816d8mov x3, x30
    002816dcbl runtime.morestack_noctxt.abi0
    002816e0ldp x0, x1, [sp+8]
    002816e4ldp x2, x3, [sp+24]
    002816e8ldp x4, x5, [sp+40]
    002816ecldr x6, [sp+56]
    002816f0b 0x281640
    002816f4
    002816f4loc_2816f4:
    002816f4ldr x17, [x16]
    002816f8add x20, sp, 88
    002816fcsubs xzr, x20, x17
    00281700b.ne 0x281660
    00281704add x20, sp, 8
    00281708str x20, [x16]
    0028170cb 0x281660
    00281640
    00281710
    00281710crypto/internal/boring/sig.StandardCrypto.abi0: ; void crypto/internal/boring/sig.StandardCrypto(void)
    00281710ret x30
    00281714udf 0
    00281718udf 0
    0028171cudf 0
    00281710
    00281720
    00281720crypto/internal/boring.Unreachable: ; void crypto/internal/boring.Unreachable(void)
    00281720ldr x16, [x28+16]
    00281724subs xzr, sp, x16
    00281728b.ls 0x281748
    0028172cstr x30, [sp-16]!
    00281730stur x29, [sp-8]
    00281734sub x29, sp, 8
    00281738bl crypto/internal/boring/sig.StandardCrypto.abi0
    0028173cldur x29, [sp-8]
    00281740ldr x30, [sp], 16
    00281744ret x30
    00281748
    00281748loc_281748:
    00281748mov x3, x30
    0028174cbl runtime.morestack_noctxt.abi0
    00281750b 0x281720
    00281754udf 0
    00281758udf 0
    0028175cudf 0
    00281720
    00281760
    00281760crypto/internal/boring.UnreachableExceptTests: ; void crypto/internal/boring.UnreachableExceptTests(void)
    00281760ret x30
    00281764udf 0
    00281768udf 0
    0028176cudf 0
    00281760
    00281770
    00281770crypto/ecdh.init.func1: ; void crypto/ecdh.init.func1(io.Reader r)
    00281770ldr x16, [x28+16]
    00281774subs xzr, sp, x16
    00281778b.ls 0x28180c
    0028177cstr x30, [sp-128]!
    00281780stur x29, [sp-8]
    00281784sub x29, sp, 8
    00281788str x0, [sp+136]
    0028178cstr x1, [sp+144]
    00281790str xzr, [sp+56]
    00281794stp xzr, xzr, [sp+40]
    00281798bl crypto/internal/fips140/ecdh.P256
    0028179cstr x0, [sp+88]
    002817a0str xzr, [sp+80]
    002817a4stp xzr, xzr, [sp+64]
    002817a8ldr x2, [sp+136]
    002817acldr x3, [sp+144]
    002817b0ldr x1, [sp+88]
    002817b4adrp x0, 0x491000
    002817b8add x0, x0, 2736
    002817bcbl crypto/internal/fips140/ecdh.GenerateKey[go.shape.*crypto/internal/fips140/nistec.P256Point]
    002817c0str x0, [sp+80]
    002817c4str x1, [sp+64]
    002817c8str x2, [sp+72]
    002817ccldr x0, [sp+80]
    002817d0str x0, [sp+112]
    002817d4ldr x0, [sp+64]
    002817d8ldr x1, [sp+72]
    002817dcstr x0, [sp+96]
    002817e0str x1, [sp+104]
    002817e4ldr x0, [sp+112]
    002817e8str x0, [sp+56]
    002817ecldr x1, [sp+96]
    002817f0ldr x2, [sp+104]
    002817f4str x1, [sp+40]
    002817f8str x2, [sp+48]
    002817fcldr x0, [sp+56]
    00281800ldur x29, [sp-8]
    00281804ldr x30, [sp], 128
    00281808ret x30
    0028180c
    0028180cloc_28180c:
    0028180cstp x0, x1, [sp+8]
    00281810mov x3, x30
    00281814bl runtime.morestack_noctxt.abi0
    00281818ldp x0, x1, [sp+8]
    0028181cb 0x281770
    00281770
    00281820
    00281820crypto/ecdh.init.func2: ; void crypto/ecdh.init.func2(struct []uint8 b)
    00281820ldr x16, [x28+16]
    00281824sub x17, sp, 16
    00281828subs xzr, x17, x16
    0028182cb.ls 0x2818c8
    00281830str x30, [sp-144]!
    00281834stur x29, [sp-8]
    00281838sub x29, sp, 8
    0028183cstr x0, [sp+152]
    00281840str x1, [sp+160]
    00281844str x2, [sp+168]
    00281848str xzr, [sp+72]
    0028184cstp xzr, xzr, [sp+56]
    00281850bl crypto/internal/fips140/ecdh.P256
    00281854str x0, [sp+104]
    00281858str xzr, [sp+96]
    0028185cstp xzr, xzr, [sp+80]
    00281860ldr x2, [sp+152]
    00281864ldr x3, [sp+160]
    00281868ldr x4, [sp+168]
    0028186cldr x1, [sp+104]
    00281870adrp x0, 0x495000
    00281874add x0, x0, 1152
    00281878bl crypto/internal/fips140/ecdh.NewPrivateKey[go.shape.*crypto/internal/fips140/nistec.P256Point]
    0028187cstr x0, [sp+96]
    00281880str x1, [sp+80]
    00281884str x2, [sp+88]
    00281888ldr x0, [sp+96]
    0028188cstr x0, [sp+128]
    00281890ldr x0, [sp+80]
    00281894ldr x1, [sp+88]
    00281898str x0, [sp+112]
    0028189cstr x1, [sp+120]
    002818a0ldr x0, [sp+128]
    002818a4str x0, [sp+72]
    002818a8ldr x1, [sp+112]
    002818acldr x2, [sp+120]
    002818b0str x1, [sp+56]
    002818b4str x2, [sp+64]
    002818b8ldr x0, [sp+72]
    002818bcldur x29, [sp-8]
    002818c0ldr x30, [sp], 144
    002818c4ret x30
    002818c8
    002818c8loc_2818c8:
    002818c8stp x0, x1, [sp+8]
    002818ccstr x2, [sp+24]
    002818d0mov x3, x30
    002818d4bl runtime.morestack_noctxt.abi0
    002818d8ldp x0, x1, [sp+8]
    002818dcldr x2, [sp+24]
    002818e0b 0x281820
    002818e4udf 0
    002818e8udf 0
    002818ecudf 0
    00281820
    002818f0
    002818f0crypto/ecdh.init.func3: ; void crypto/ecdh.init.func3(struct []uint8 publicKey)
    002818f0ldr x16, [x28+16]
    002818f4sub x17, sp, 16
    002818f8subs xzr, x17, x16
    002818fcb.ls 0x281998
    00281900str x30, [sp-144]!
    00281904stur x29, [sp-8]
    00281908sub x29, sp, 8
    0028190cstr x0, [sp+152]
    00281910str x1, [sp+160]
    00281914str x2, [sp+168]
    00281918str xzr, [sp+72]
    0028191cstp xzr, xzr, [sp+56]
    00281920bl crypto/internal/fips140/ecdh.P256
    00281924str x0, [sp+104]
    00281928str xzr, [sp+96]
    0028192cstp xzr, xzr, [sp+80]
    00281930ldr x2, [sp+152]
    00281934ldr x3, [sp+160]
    00281938ldr x4, [sp+168]
    0028193cldr x1, [sp+104]
    00281940adrp x0, 0x491000
    00281944add x0, x0, 2752
    00281948bl crypto/internal/fips140/ecdh.NewPublicKey[go.shape.*crypto/internal/fips140/nistec.P256Point]
    0028194cstr x0, [sp+96]
    00281950str x1, [sp+80]
    00281954str x2, [sp+88]
    00281958ldr x0, [sp+96]
    0028195cstr x0, [sp+128]
    00281960ldr x0, [sp+80]
    00281964ldr x1, [sp+88]
    00281968str x0, [sp+112]
    0028196cstr x1, [sp+120]
    00281970ldr x0, [sp+128]
    00281974str x0, [sp+72]
    00281978ldr x1, [sp+112]
    0028197cldr x2, [sp+120]
    00281980str x1, [sp+56]
    00281984str x2, [sp+64]
    00281988ldr x0, [sp+72]
    0028198cldur x29, [sp-8]
    00281990ldr x30, [sp], 144
    00281994ret x30
    00281998
    00281998loc_281998:
    00281998stp x0, x1, [sp+8]
    0028199cstr x2, [sp+24]
    002819a0mov x3, x30
    002819a4bl runtime.morestack_noctxt.abi0
    002819a8ldp x0, x1, [sp+8]
    002819acldr x2, [sp+24]
    002819b0b 0x2818f0
    002819b4udf 0
    002819b8udf 0
    002819bcudf 0
    002818f0
    002819c0
    002819c0crypto/ecdh.init.func4: ; void crypto/ecdh.init.func4(crypto/internal/fips140/ecdh.PrivateKey * priv, crypto/internal/fips140/ecdh.PublicKey * pub)
    002819c0ldr x16, [x28+16]
    002819c4sub x17, sp, 48
    002819c8subs xzr, x17, x16
    002819ccb.ls 0x281a98
    002819d0str x30, [sp-176]!
    002819d4stur x29, [sp-8]
    002819d8sub x29, sp, 8
    002819dcstr x0, [sp+184]
    002819e0str x1, [sp+192]
    002819e4str xzr, [sp+40]
    002819e8stp xzr, xzr, [sp+48]
    002819ecstp xzr, xzr, [sp+64]
    002819f0bl crypto/internal/fips140/ecdh.P256
    002819f4str x0, [sp+120]
    002819f8str xzr, [sp+96]
    002819fcstp xzr, xzr, [sp+104]
    00281a00stp xzr, xzr, [sp+80]
    00281a04ldr x3, [sp+192]
    00281a08ldr x2, [sp+184]
    00281a0cldr x1, [sp+120]
    00281a10adrp x0, 0x491000
    00281a14add x0, x0, 2768
    00281a18bl crypto/internal/fips140/ecdh.ECDH[go.shape.*crypto/internal/fips140/nistec.P256Point]
    00281a1cstr x0, [sp+96]
    00281a20str x1, [sp+104]
    00281a24str x2, [sp+112]
    00281a28str x3, [sp+80]
    00281a2cstr x4, [sp+88]
    00281a30ldr x0, [sp+96]
    00281a34ldr x1, [sp+104]
    00281a38ldr x2, [sp+112]
    00281a3cstr x0, [sp+144]
    00281a40str x1, [sp+152]
    00281a44str x2, [sp+160]
    00281a48ldr x0, [sp+80]
    00281a4cldr x1, [sp+88]
    00281a50str x0, [sp+128]
    00281a54str x1, [sp+136]
    00281a58ldr x0, [sp+144]
    00281a5cldr x1, [sp+152]
    00281a60ldr x2, [sp+160]
    00281a64str x0, [sp+40]
    00281a68str x1, [sp+48]
    00281a6cstr x2, [sp+56]
    00281a70ldr x3, [sp+128]
    00281a74ldr x4, [sp+136]
    00281a78str x3, [sp+64]
    00281a7cstr x4, [sp+72]
    00281a80ldr x0, [sp+40]
    00281a84ldr x1, [sp+48]
    00281a88ldr x2, [sp+56]
    00281a8cldur x29, [sp-8]
    00281a90ldr x30, [sp], 176
    00281a94ret x30
    00281a98
    00281a98loc_281a98:
    00281a98stp x0, x1, [sp+8]
    00281a9cmov x3, x30
    00281aa0bl runtime.morestack_noctxt.abi0
    00281aa4ldp x0, x1, [sp+8]
    00281aa8b 0x2819c0
    00281aacudf 0
    002819c0
    00281ab0
    00281ab0crypto/ecdh.init.func5: ; void crypto/ecdh.init.func5(io.Reader r)
    00281ab0ldr x16, [x28+16]
    00281ab4subs xzr, sp, x16
    00281ab8b.ls 0x281b4c
    00281abcstr x30, [sp-128]!
    00281ac0stur x29, [sp-8]
    00281ac4sub x29, sp, 8
    00281ac8str x0, [sp+136]
    00281accstr x1, [sp+144]
    00281ad0str xzr, [sp+56]
    00281ad4stp xzr, xzr, [sp+40]
    00281ad8bl crypto/internal/fips140/ecdh.P384
    00281adcstr x0, [sp+88]
    00281ae0str xzr, [sp+80]
    00281ae4stp xzr, xzr, [sp+64]
    00281ae8ldr x2, [sp+136]
    00281aecldr x3, [sp+144]
    00281af0ldr x1, [sp+88]
    00281af4adrp x0, 0x491000
    00281af8add x0, x0, 2784
    00281afcbl crypto/internal/fips140/ecdh.GenerateKey[go.shape.*crypto/internal/fips140/nistec.P384Point]
    00281b00str x0, [sp+80]
    00281b04str x1, [sp+64]
    00281b08str x2, [sp+72]
    00281b0cldr x0, [sp+80]
    00281b10str x0, [sp+112]
    00281b14ldr x0, [sp+64]
    00281b18ldr x1, [sp+72]
    00281b1cstr x0, [sp+96]
    00281b20str x1, [sp+104]
    00281b24ldr x0, [sp+112]
    00281b28str x0, [sp+56]
    00281b2cldr x1, [sp+96]
    00281b30ldr x2, [sp+104]
    00281b34str x1, [sp+40]
    00281b38str x2, [sp+48]
    00281b3cldr x0, [sp+56]
    00281b40ldur x29, [sp-8]
    00281b44ldr x30, [sp], 128
    00281b48ret x30
    00281b4c
    00281b4cloc_281b4c:
    00281b4cstp x0, x1, [sp+8]
    00281b50mov x3, x30
    00281b54bl runtime.morestack_noctxt.abi0
    00281b58ldp x0, x1, [sp+8]
    00281b5cb 0x281ab0
    00281ab0
    00281b60
    00281b60crypto/ecdh.init.func6: ; void crypto/ecdh.init.func6(struct []uint8 b)
    00281b60ldr x16, [x28+16]
    00281b64sub x17, sp, 16
    00281b68subs xzr, x17, x16
    00281b6cb.ls 0x281c08
    00281b70str x30, [sp-144]!
    00281b74stur x29, [sp-8]
    00281b78sub x29, sp, 8
    00281b7cstr x0, [sp+152]
    00281b80str x1, [sp+160]
    00281b84str x2, [sp+168]
    00281b88str xzr, [sp+72]
    00281b8cstp xzr, xzr, [sp+56]
    00281b90bl crypto/internal/fips140/ecdh.P384
    00281b94str x0, [sp+104]
    00281b98str xzr, [sp+96]
    00281b9cstp xzr, xzr, [sp+80]
    00281ba0ldr x2, [sp+152]
    00281ba4ldr x3, [sp+160]
    00281ba8ldr x4, [sp+168]
    00281bacldr x1, [sp+104]
    00281bb0adrp x0, 0x495000
    00281bb4add x0, x0, 1184
    00281bb8bl crypto/internal/fips140/ecdh.NewPrivateKey[go.shape.*crypto/internal/fips140/nistec.P384Point]
    00281bbcstr x0, [sp+96]
    00281bc0str x1, [sp+80]
    00281bc4str x2, [sp+88]
    00281bc8ldr x0, [sp+96]
    00281bccstr x0, [sp+128]
    00281bd0ldr x0, [sp+80]
    00281bd4ldr x1, [sp+88]
    00281bd8str x0, [sp+112]
    00281bdcstr x1, [sp+120]
    00281be0ldr x0, [sp+128]
    00281be4str x0, [sp+72]
    00281be8ldr x1, [sp+112]
    00281becldr x2, [sp+120]
    00281bf0str x1, [sp+56]
    00281bf4str x2, [sp+64]
    00281bf8ldr x0, [sp+72]
    00281bfcldur x29, [sp-8]
    00281c00ldr x30, [sp], 144
    00281c04ret x30
    00281c08
    00281c08loc_281c08:
    00281c08stp x0, x1, [sp+8]
    00281c0cstr x2, [sp+24]
    00281c10mov x3, x30
    00281c14bl runtime.morestack_noctxt.abi0
    00281c18ldp x0, x1, [sp+8]
    00281c1cldr x2, [sp+24]
    00281c20b 0x281b60
    00281c24udf 0
    00281c28udf 0
    00281c2cudf 0
    00281b60
    00281c30
    00281c30crypto/ecdh.init.func7: ; void crypto/ecdh.init.func7(struct []uint8 publicKey)
    00281c30ldr x16, [x28+16]
    00281c34sub x17, sp, 16
    00281c38subs xzr, x17, x16
    00281c3cb.ls 0x281cd8
    00281c40str x30, [sp-144]!
    00281c44stur x29, [sp-8]
    00281c48sub x29, sp, 8
    00281c4cstr x0, [sp+152]
    00281c50str x1, [sp+160]
    00281c54str x2, [sp+168]
    00281c58str xzr, [sp+72]
    00281c5cstp xzr, xzr, [sp+56]
    00281c60bl crypto/internal/fips140/ecdh.P384
    00281c64str x0, [sp+104]
    00281c68str xzr, [sp+96]
    00281c6cstp xzr, xzr, [sp+80]
    00281c70ldr x2, [sp+152]
    00281c74ldr x3, [sp+160]
    00281c78ldr x4, [sp+168]
    00281c7cldr x1, [sp+104]
    00281c80adrp x0, 0x491000
    00281c84add x0, x0, 2800
    00281c88bl crypto/internal/fips140/ecdh.NewPublicKey[go.shape.*crypto/internal/fips140/nistec.P384Point]
    00281c8cstr x0, [sp+96]
    00281c90str x1, [sp+80]
    00281c94str x2, [sp+88]
    00281c98ldr x0, [sp+96]
    00281c9cstr x0, [sp+128]
    00281ca0ldr x0, [sp+80]
    00281ca4ldr x1, [sp+88]
    00281ca8str x0, [sp+112]
    00281cacstr x1, [sp+120]
    00281cb0ldr x0, [sp+128]
    00281cb4str x0, [sp+72]
    00281cb8ldr x1, [sp+112]
    00281cbcldr x2, [sp+120]
    00281cc0str x1, [sp+56]
    00281cc4str x2, [sp+64]
    00281cc8ldr x0, [sp+72]
    00281cccldur x29, [sp-8]
    00281cd0ldr x30, [sp], 144
    00281cd4ret x30
    00281cd8
    00281cd8loc_281cd8:
    00281cd8stp x0, x1, [sp+8]
    00281cdcstr x2, [sp+24]
    00281ce0mov x3, x30
    00281ce4bl runtime.morestack_noctxt.abi0
    00281ce8ldp x0, x1, [sp+8]
    00281cecldr x2, [sp+24]
    00281cf0b 0x281c30
    00281cf4udf 0
    00281cf8udf 0
    00281cfcudf 0
    00281c30
    00281d00
    00281d00crypto/ecdh.init.func8: ; void crypto/ecdh.init.func8(crypto/internal/fips140/ecdh.PrivateKey * priv, crypto/internal/fips140/ecdh.PublicKey * pub)
    00281d00ldr x16, [x28+16]
    00281d04sub x17, sp, 48
    00281d08subs xzr, x17, x16
    00281d0cb.ls 0x281dd8
    00281d10str x30, [sp-176]!
    00281d14stur x29, [sp-8]
    00281d18sub x29, sp, 8
    00281d1cstr x0, [sp+184]
    00281d20str x1, [sp+192]
    00281d24str xzr, [sp+40]
    00281d28stp xzr, xzr, [sp+48]
    00281d2cstp xzr, xzr, [sp+64]
    00281d30bl crypto/internal/fips140/ecdh.P384
    00281d34str x0, [sp+120]
    00281d38str xzr, [sp+96]
    00281d3cstp xzr, xzr, [sp+104]
    00281d40stp xzr, xzr, [sp+80]
    00281d44ldr x3, [sp+192]
    00281d48ldr x2, [sp+184]
    00281d4cldr x1, [sp+120]
    00281d50adrp x0, 0x491000
    00281d54add x0, x0, 2816
    00281d58bl crypto/internal/fips140/ecdh.ECDH[go.shape.*crypto/internal/fips140/nistec.P384Point]
    00281d5cstr x0, [sp+96]
    00281d60str x1, [sp+104]
    00281d64str x2, [sp+112]
    00281d68str x3, [sp+80]
    00281d6cstr x4, [sp+88]
    00281d70ldr x0, [sp+96]
    00281d74ldr x1, [sp+104]
    00281d78ldr x2, [sp+112]
    00281d7cstr x0, [sp+144]
    00281d80str x1, [sp+152]
    00281d84str x2, [sp+160]
    00281d88ldr x0, [sp+80]
    00281d8cldr x1, [sp+88]
    00281d90str x0, [sp+128]
    00281d94str x1, [sp+136]
    00281d98ldr x0, [sp+144]
    00281d9cldr x1, [sp+152]
    00281da0ldr x2, [sp+160]
    00281da4str x0, [sp+40]
    00281da8str x1, [sp+48]
    00281dacstr x2, [sp+56]
    00281db0ldr x3, [sp+128]
    00281db4ldr x4, [sp+136]
    00281db8str x3, [sp+64]
    00281dbcstr x4, [sp+72]
    00281dc0ldr x0, [sp+40]
    00281dc4ldr x1, [sp+48]
    00281dc8ldr x2, [sp+56]
    00281dccldur x29, [sp-8]
    00281dd0ldr x30, [sp], 176
    00281dd4ret x30
    00281dd8
    00281dd8loc_281dd8:
    00281dd8stp x0, x1, [sp+8]
    00281ddcmov x3, x30
    00281de0bl runtime.morestack_noctxt.abi0
    00281de4ldp x0, x1, [sp+8]
    00281de8b 0x281d00
    00281decudf 0
    00281d00
    00281df0
    00281df0crypto/ecdh.init.func9: ; void crypto/ecdh.init.func9(io.Reader r)
    00281df0ldr x16, [x28+16]
    00281df4subs xzr, sp, x16
    00281df8b.ls 0x281e8c
    00281dfcstr x30, [sp-128]!
    00281e00stur x29, [sp-8]
    00281e04sub x29, sp, 8
    00281e08str x0, [sp+136]
    00281e0cstr x1, [sp+144]
    00281e10str xzr, [sp+56]
    00281e14stp xzr, xzr, [sp+40]
    00281e18bl crypto/internal/fips140/ecdh.P521
    00281e1cstr x0, [sp+88]
    00281e20str xzr, [sp+80]
    00281e24stp xzr, xzr, [sp+64]
    00281e28ldr x2, [sp+136]
    00281e2cldr x3, [sp+144]
    00281e30ldr x1, [sp+88]
    00281e34adrp x0, 0x491000
    00281e38add x0, x0, 2832
    00281e3cbl crypto/internal/fips140/ecdh.GenerateKey[go.shape.*crypto/internal/fips140/nistec.P521Point]
    00281e40str x0, [sp+80]
    00281e44str x1, [sp+64]
    00281e48str x2, [sp+72]
    00281e4cldr x0, [sp+80]
    00281e50str x0, [sp+112]
    00281e54ldr x0, [sp+64]
    00281e58ldr x1, [sp+72]
    00281e5cstr x0, [sp+96]
    00281e60str x1, [sp+104]
    00281e64ldr x0, [sp+112]
    00281e68str x0, [sp+56]
    00281e6cldr x1, [sp+96]
    00281e70ldr x2, [sp+104]
    00281e74str x1, [sp+40]
    00281e78str x2, [sp+48]
    00281e7cldr x0, [sp+56]
    00281e80ldur x29, [sp-8]
    00281e84ldr x30, [sp], 128
    00281e88ret x30
    00281e8c
    00281e8cloc_281e8c:
    00281e8cstp x0, x1, [sp+8]
    00281e90mov x3, x30
    00281e94bl runtime.morestack_noctxt.abi0
    00281e98ldp x0, x1, [sp+8]
    00281e9cb 0x281df0
    00281df0
    00281ea0
    00281ea0crypto/ecdh.init.func10: ; void crypto/ecdh.init.func10(struct []uint8 b)
    00281ea0ldr x16, [x28+16]
    00281ea4sub x17, sp, 16
    00281ea8subs xzr, x17, x16
    00281eacb.ls 0x281f48
    00281eb0str x30, [sp-144]!
    00281eb4stur x29, [sp-8]
    00281eb8sub x29, sp, 8
    00281ebcstr x0, [sp+152]
    00281ec0str x1, [sp+160]
    00281ec4str x2, [sp+168]
    00281ec8str xzr, [sp+72]
    00281eccstp xzr, xzr, [sp+56]
    00281ed0bl crypto/internal/fips140/ecdh.P521
    00281ed4str x0, [sp+104]
    00281ed8str xzr, [sp+96]
    00281edcstp xzr, xzr, [sp+80]
    00281ee0ldr x2, [sp+152]
    00281ee4ldr x3, [sp+160]
    00281ee8ldr x4, [sp+168]
    00281eecldr x1, [sp+104]
    00281ef0adrp x0, 0x495000
    00281ef4add x0, x0, 1216
    00281ef8bl crypto/internal/fips140/ecdh.NewPrivateKey[go.shape.*crypto/internal/fips140/nistec.P521Point]
    00281efcstr x0, [sp+96]
    00281f00str x1, [sp+80]
    00281f04str x2, [sp+88]
    00281f08ldr x0, [sp+96]
    00281f0cstr x0, [sp+128]
    00281f10ldr x0, [sp+80]
    00281f14ldr x1, [sp+88]
    00281f18str x0, [sp+112]
    00281f1cstr x1, [sp+120]
    00281f20ldr x0, [sp+128]
    00281f24str x0, [sp+72]
    00281f28ldr x1, [sp+112]
    00281f2cldr x2, [sp+120]
    00281f30str x1, [sp+56]
    00281f34str x2, [sp+64]
    00281f38ldr x0, [sp+72]
    00281f3cldur x29, [sp-8]
    00281f40ldr x30, [sp], 144
    00281f44ret x30
    00281f48
    00281f48loc_281f48:
    00281f48stp x0, x1, [sp+8]
    00281f4cstr x2, [sp+24]
    00281f50mov x3, x30
    00281f54bl runtime.morestack_noctxt.abi0
    00281f58ldp x0, x1, [sp+8]
    00281f5cldr x2, [sp+24]
    00281f60b 0x281ea0
    00281f64udf 0
    00281f68udf 0
    00281f6cudf 0
    00281ea0
    00281f70
    00281f70crypto/ecdh.init.func11: ; void crypto/ecdh.init.func11(struct []uint8 publicKey)
    00281f70ldr x16, [x28+16]
    00281f74sub x17, sp, 16
    00281f78subs xzr, x17, x16
    00281f7cb.ls 0x282018
    00281f80str x30, [sp-144]!
    00281f84stur x29, [sp-8]
    00281f88sub x29, sp, 8
    00281f8cstr x0, [sp+152]
    00281f90str x1, [sp+160]
    00281f94str x2, [sp+168]
    00281f98str xzr, [sp+72]
    00281f9cstp xzr, xzr, [sp+56]
    00281fa0bl crypto/internal/fips140/ecdh.P521
    00281fa4str x0, [sp+104]
    00281fa8str xzr, [sp+96]
    00281facstp xzr, xzr, [sp+80]
    00281fb0ldr x2, [sp+152]
    00281fb4ldr x3, [sp+160]
    00281fb8ldr x4, [sp+168]
    00281fbcldr x1, [sp+104]
    00281fc0adrp x0, 0x491000
    00281fc4add x0, x0, 2848
    00281fc8bl crypto/internal/fips140/ecdh.NewPublicKey[go.shape.*crypto/internal/fips140/nistec.P521Point]
    00281fccstr x0, [sp+96]
    00281fd0str x1, [sp+80]
    00281fd4str x2, [sp+88]
    00281fd8ldr x0, [sp+96]
    00281fdcstr x0, [sp+128]
    00281fe0ldr x0, [sp+80]
    00281fe4ldr x1, [sp+88]
    00281fe8str x0, [sp+112]
    00281fecstr x1, [sp+120]
    00281ff0ldr x0, [sp+128]
    00281ff4str x0, [sp+72]
    00281ff8ldr x1, [sp+112]
    00281ffcldr x2, [sp+120]
    00282000str x1, [sp+56]
    00282004str x2, [sp+64]
    00282008ldr x0, [sp+72]
    0028200cldur x29, [sp-8]
    00282010ldr x30, [sp], 144
    00282014ret x30
    00282018
    00282018loc_282018:
    00282018stp x0, x1, [sp+8]
    0028201cstr x2, [sp+24]
    00282020mov x3, x30
    00282024bl runtime.morestack_noctxt.abi0
    00282028ldp x0, x1, [sp+8]
    0028202cldr x2, [sp+24]
    00282030b 0x281f70
    00282034udf 0
    00282038udf 0
    0028203cudf 0
    00281f70
    00282040
    00282040crypto/ecdh.init.func12: ; void crypto/ecdh.init.func12(crypto/internal/fips140/ecdh.PrivateKey * priv, crypto/internal/fips140/ecdh.PublicKey * pub)
    00282040ldr x16, [x28+16]
    00282044sub x17, sp, 48
    00282048subs xzr, x17, x16
    0028204cb.ls 0x282118
    00282050str x30, [sp-176]!
    00282054stur x29, [sp-8]
    00282058sub x29, sp, 8
    0028205cstr x0, [sp+184]
    00282060str x1, [sp+192]
    00282064str xzr, [sp+40]
    00282068stp xzr, xzr, [sp+48]
    0028206cstp xzr, xzr, [sp+64]
    00282070bl crypto/internal/fips140/ecdh.P521
    00282074str x0, [sp+120]
    00282078str xzr, [sp+96]
    0028207cstp xzr, xzr, [sp+104]
    00282080stp xzr, xzr, [sp+80]
    00282084ldr x3, [sp+192]
    00282088ldr x2, [sp+184]
    0028208cldr x1, [sp+120]
    00282090adrp x0, 0x490000
    00282094add x0, x0, 2864
    00282098bl crypto/internal/fips140/ecdh.ECDH[go.shape.*crypto/internal/fips140/nistec.P521Point]
    0028209cstr x0, [sp+96]
    002820a0str x1, [sp+104]
    002820a4str x2, [sp+112]
    002820a8str x3, [sp+80]
    002820acstr x4, [sp+88]
    002820b0ldr x0, [sp+96]
    002820b4ldr x1, [sp+104]
    002820b8ldr x2, [sp+112]
    002820bcstr x0, [sp+144]
    002820c0str x1, [sp+152]
    002820c4str x2, [sp+160]
    002820c8ldr x0, [sp+80]
    002820ccldr x1, [sp+88]
    002820d0str x0, [sp+128]
    002820d4str x1, [sp+136]
    002820d8ldr x0, [sp+144]
    002820dcldr x1, [sp+152]
    002820e0ldr x2, [sp+160]
    002820e4str x0, [sp+40]
    002820e8str x1, [sp+48]
    002820ecstr x2, [sp+56]
    002820f0ldr x3, [sp+128]
    002820f4ldr x4, [sp+136]
    002820f8str x3, [sp+64]
    002820fcstr x4, [sp+72]
    00282100ldr x0, [sp+40]
    00282104ldr x1, [sp+48]
    00282108ldr x2, [sp+56]
    0028210cldur x29, [sp-8]
    00282110ldr x30, [sp], 176
    00282114ret x30
    00282118
    00282118loc_282118:
    00282118stp x0, x1, [sp+8]
    0028211cmov x3, x30
    00282120bl runtime.morestack_noctxt.abi0
    00282124ldp x0, x1, [sp+8]
    00282128b 0x282040
    0028212cudf 0
    00282040
    00282130
    00282130crypto/ecdh.(*PublicKey).Bytes: ; void crypto/ecdh.(*PublicKey).Bytes(crypto/ecdh.PublicKey * k)
    00282130ldr x16, [x28+16]
    00282134sub x17, sp, 80
    00282138subs xzr, x17, x16
    0028213cb.ls 0x282278
    00282140str x30, [sp-208]!
    00282144stur x29, [sp-8]
    00282148sub x29, sp, 8
    0028214cstr x0, [sp+216]
    00282150str xzr, [sp+64]
    00282154stp xzr, xzr, [sp+72]
    00282158adrp x0, 0x384000
    0028215cadd x0, x0, 672
    00282160bl runtime.newobject
    00282164str x0, [sp+192]
    00282168mov x20, x0
    0028216cadr x27, 16
    00282170stp x29, x27, [sp-24]
    00282174sub x29, sp, 24
    00282178bl fn_87cf0
    0028217csub x29, sp, 8
    00282180stur xzr, [x0+125]
    00282184ldr x1, [sp+192]
    00282188ldrsb x27, [x1]
    0028218cb 0x282190
    00282190
    00282190loc_282190:
    00282190b 0x282194
    00282194
    00282194loc_282194:
    00282194str x1, [sp+168]
    00282198str xzr, [sp+176]
    0028219cmovz x5, 133
    002821a0str x5, [sp+184]
    002821a4ldr x5, [sp+216]
    002821a8ldrsb x27, [x5]
    002821acldr x6, [x5+16]
    002821b0ldr x7, [x5+24]
    002821b4ldr x5, [x5+32]
    002821b8str x6, [sp+120]
    002821bcstr x7, [sp+128]
    002821c0str x5, [sp+136]
    002821c4ldr x2, [sp+184]
    002821c8ldr x0, [sp+168]
    002821ccldr x5, [sp+176]
    002821d0str x0, [sp+96]
    002821d4str x5, [sp+104]
    002821d8str x2, [sp+112]
    002821dcldr x6, [sp+128]
    002821e0add x1, x5, x6
    002821e4str x1, [sp+56]
    002821e8subs xzr, x2, x1
    002821ecb.hs 0x2821f4
    002821f0b 0x2821fc
    002821f4
    002821f4loc_2821f4:
    002821f4str x1, [sp+104]
    002821f8b 0x28221c
    002821fc
    002821fcloc_2821fc:
    002821fcldr x3, [sp+128]
    00282200adrp x4, 0x373000
    00282204add x4, x4, 3072
    00282208bl runtime.growslice
    0028220cstr x0, [sp+96]
    00282210str x1, [sp+104]
    00282214str x2, [sp+112]
    00282218b 0x28221c
    0028221c
    0028221cloc_28221c:
    0028221cldr x3, [sp+128]
    00282220str x3, [sp+48]
    00282224ldr x3, [sp+56]
    00282228ldr x4, [sp+128]
    0028222csub x3, x3, x4
    00282230ldr x4, [sp+96]
    00282234add x0, x4, x3
    00282238str x0, [sp+88]
    0028223cldr x2, [sp+48]
    00282240ldr x1, [sp+120]
    00282244bl runtime.memmove
    00282248ldr x0, [sp+96]
    0028224cldr x1, [sp+104]
    00282250ldr x2, [sp+112]
    00282254str x0, [sp+144]
    00282258str x1, [sp+152]
    0028225cstr x2, [sp+160]
    00282260str x0, [sp+64]
    00282264str x1, [sp+72]
    00282268str x2, [sp+80]
    0028226cldur x29, [sp-8]
    00282270ldr x30, [sp], 208
    00282274ret x30
    00282278
    00282278loc_282278:
    00282278str x0, [sp+8]
    0028227cmov x3, x30
    00282280bl runtime.morestack_noctxt.abi0
    00282284ldr x0, [sp+8]
    00282288b 0x282130
    0028228cudf 0
    00282130
    00282290
    00282290crypto/ecdh.(*PublicKey).Equal: ; void crypto/ecdh.(*PublicKey).Equal(crypto/ecdh.PublicKey * k, crypto.PublicKey x)
    00282290ldr x16, [x28+16]
    00282294sub x17, sp, 64
    00282298subs xzr, x17, x16
    0028229cb.ls 0x282414
    002822a0str x30, [sp-192]!
    002822a4stur x29, [sp-8]
    002822a8sub x29, sp, 8
    002822acstr x0, [sp+200]
    002822b0str x1, [sp+208]
    002822b4str x2, [sp+216]
    002822b8strb wzr, [sp+68]
    002822bcstr xzr, [sp+88]
    002822c0ldr x6, [sp+208]
    002822c4ldr x7, [sp+216]
    002822c8adrp x8, 0x3ab000
    002822ccadd x8, x8, 2016
    002822d0subs xzr, x6, x8
    002822d4b.eq 0x2822dc
    002822d8b 0x2822e4
    002822dc
    002822dcloc_2822dc:
    002822dcorr x0, xzr, 1
    002822e0b 0x2822f0
    002822e4
    002822e4loc_2822e4:
    002822e4mov x0, xzr
    002822e8mov x7, xzr
    002822ecb 0x2822f0
    002822f0
    002822f0loc_2822f0:
    002822f0str x7, [sp+88]
    002822f4strb w0, [sp+70]
    002822f8ldr x6, [sp+88]
    002822fcstr x6, [sp+96]
    00282300ldrb w6, [sp+70]
    00282304strb w6, [sp+71]
    00282308ldr x6, [sp+96]
    0028230cstr x6, [sp+80]
    00282310ldrb w6, [sp+71]
    00282314strb w6, [sp+69]
    00282318tbnz w6, 0, 0x282320
    0028231cb 0x282400
    00282320
    00282320loc_282320:
    00282320ldr x6, [sp+80]
    00282324ldrsb x27, [x6]
    00282328ldr x7, [x6]
    0028232cldr x6, [x6+8]
    00282330str x7, [sp+168]
    00282334str x6, [sp+176]
    00282338ldr x6, [sp+200]
    0028233cldrsb x27, [x6]
    00282340ldr x0, [x6]
    00282344ldr x1, [x6+8]
    00282348str x0, [sp+152]
    0028234cstr x1, [sp+160]
    00282350ldr x6, [sp+168]
    00282354subs xzr, x6, x0
    00282358cset x6, eq
    0028235cb.eq 0x282364
    00282360b 0x282370
    00282364
    00282364loc_282364:
    00282364ldr x2, [sp+176]
    00282368bl runtime.ifaceeq
    0028236cb 0x282378
    00282370
    00282370loc_282370:
    00282370mov x0, x6
    00282374b 0x282378
    00282378
    00282378loc_282378:
    00282378strb w0, [sp+70]
    0028237ctbnz w0, 0, 0x282384
    00282380b 0x2823e8
    00282384
    00282384loc_282384:
    00282384ldr x6, [sp+200]
    00282388ldrsb x27, [x6]
    0028238cldr x7, [x6+16]
    00282390ldr x8, [x6+24]
    00282394ldr x6, [x6+32]
    00282398str x7, [sp+128]
    0028239cstr x8, [sp+136]
    002823a0str x6, [sp+144]
    002823a4ldr x6, [sp+80]
    002823a8ldrsb x27, [x6]
    002823acldr x3, [x6+16]
    002823b0ldr x4, [x6+24]
    002823b4ldr x5, [x6+32]
    002823b8str x3, [sp+104]
    002823bcstr x4, [sp+112]
    002823c0str x5, [sp+120]
    002823c4ldr x0, [sp+128]
    002823c8ldr x1, [sp+136]
    002823ccldr x2, [sp+144]
    002823d0bl crypto/subtle.ConstantTimeCompare
    002823d4str x0, [sp+72]
    002823d8subs xzr, x0, 1
    002823dccset x6, eq
    002823e0strb w6, [sp+70]
    002823e4b 0x2823ec
    002823e8
    002823e8loc_2823e8:
    002823e8b 0x2823ec
    002823ec
    002823ecloc_2823ec:
    002823ecldrb w0, [sp+70]
    002823f0strb w0, [sp+68]
    002823f4ldur x29, [sp-8]
    002823f8ldr x30, [sp], 192
    002823fcret x30
    00282400
    00282400loc_282400:
    00282400strb wzr, [sp+68]
    00282404mov x0, xzr
    00282408ldur x29, [sp-8]
    0028240cldr x30, [sp], 192
    00282410ret x30
    00282414
    00282414loc_282414:
    00282414stp x0, x1, [sp+8]
    00282418str x2, [sp+24]
    0028241cmov x3, x30
    00282420bl runtime.morestack_noctxt.abi0
    00282424ldp x0, x1, [sp+8]
    00282428ldr x2, [sp+24]
    0028242cb 0x282290
    00282290
    00282430
    00282430crypto/ecdh.(*PrivateKey).ECDH: ; void crypto/ecdh.(*PrivateKey).ECDH(crypto/ecdh.PrivateKey * k, crypto/ecdh.PublicKey * remote)
    00282430ldr x16, [x28+16]
    00282434sub x17, sp, 64
    00282438subs xzr, x17, x16
    0028243cb.ls 0x2825ac
    00282440str x30, [sp-192]!
    00282444stur x29, [sp-8]
    00282448sub x29, sp, 8
    0028244cstr x0, [sp+200]
    00282450str x1, [sp+208]
    00282454str xzr, [sp+48]
    00282458stp xzr, xzr, [sp+56]
    0028245cstp xzr, xzr, [sp+32]
    00282460ldr x3, [sp+208]
    00282464ldrsb x27, [x3]
    00282468ldr x4, [x3]
    0028246cldr x3, [x3+8]
    00282470str x4, [sp+88]
    00282474str x3, [sp+96]
    00282478ldr x3, [sp+200]
    0028247cldrsb x27, [x3]
    00282480ldr x0, [x3]
    00282484ldr x1, [x3+8]
    00282488str x0, [sp+72]
    0028248cstr x1, [sp+80]
    00282490ldr x3, [sp+88]
    00282494subs xzr, x3, x0
    00282498b.ne 0x2824a0
    0028249cb 0x2824a4
    002824a0
    002824a0loc_2824a0:
    002824a0b 0x282564
    002824a4
    002824a4loc_2824a4:
    002824a4ldr x2, [sp+96]
    002824a8bl runtime.ifaceeq
    002824actbnz w0, 0, 0x2824b4
    002824b0b 0x282560
    002824b4
    002824b4loc_2824b4:
    002824b4str xzr, [sp+104]
    002824b8stp xzr, xzr, [sp+112]
    002824bcstp xzr, xzr, [sp+128]
    002824c0ldr x3, [sp+200]
    002824c4ldrsb x27, [x3]
    002824c8ldr x4, [x3]
    002824ccldrsb x27, [x4]
    002824d0ldr x0, [x3+8]
    002824d4ldr x2, [sp+208]
    002824d8ldr x1, [sp+200]
    002824dcldr x3, [x4+48]
    002824e0blr x3
    002824e4str x0, [sp+104]
    002824e8str x1, [sp+112]
    002824ecstr x2, [sp+120]
    002824f0str x3, [sp+128]
    002824f4str x4, [sp+136]
    002824f8ldr x3, [sp+104]
    002824fcldr x4, [sp+112]
    00282500ldr x5, [sp+120]
    00282504str x3, [sp+160]
    00282508str x4, [sp+168]
    0028250cstr x5, [sp+176]
    00282510ldr x3, [sp+128]
    00282514ldr x4, [sp+136]
    00282518str x3, [sp+144]
    0028251cstr x4, [sp+152]
    00282520ldr x3, [sp+160]
    00282524ldr x4, [sp+168]
    00282528ldr x5, [sp+176]
    0028252cstr x3, [sp+48]
    00282530str x4, [sp+56]
    00282534str x5, [sp+64]
    00282538ldr x3, [sp+144]
    0028253cldr x4, [sp+152]
    00282540str x3, [sp+32]
    00282544str x4, [sp+40]
    00282548ldr x0, [sp+48]
    0028254cldr x1, [sp+56]
    00282550ldr x2, [sp+64]
    00282554ldur x29, [sp-8]
    00282558ldr x30, [sp], 192
    0028255cret x30
    00282560
    00282560loc_282560:
    00282560b 0x282564
    00282564
    00282564loc_282564:
    00282564adrp x0, 0x44a000
    00282568add x0, x0, 1094
    0028256cmovz x1, 59
    00282570bl errors.New
    00282574str x0, [sp+128]
    00282578str x1, [sp+136]
    0028257cstr xzr, [sp+48]
    00282580stp xzr, xzr, [sp+56]
    00282584ldr x3, [sp+128]
    00282588ldr x4, [sp+136]
    0028258cstr x3, [sp+32]
    00282590str x4, [sp+40]
    00282594ldr x0, [sp+48]
    00282598ldr x1, [sp+56]
    0028259cldr x2, [sp+64]
    002825a0ldur x29, [sp-8]
    002825a4ldr x30, [sp], 192
    002825a8ret x30
    002825ac
    002825acloc_2825ac:
    002825acstp x0, x1, [sp+8]
    002825b0mov x3, x30
    002825b4bl runtime.morestack_noctxt.abi0
    002825b8ldp x0, x1, [sp+8]
    002825bcb 0x282430
    00282430
    002825c0
    002825c0crypto/ecdh.(*PrivateKey).Curve: ; void crypto/ecdh.(*PrivateKey).Curve(crypto/ecdh.PrivateKey * k)
    002825c0str x30, [sp-32]!
    002825c4stur x29, [sp-8]
    002825c8sub x29, sp, 8
    002825ccstr x0, [sp+40]
    002825d0stp xzr, xzr, [sp+8]
    002825d4ldr x2, [sp+40]
    002825d8ldrsb x27, [x2]
    002825dcldr x0, [x2]
    002825e0ldr x1, [x2+8]
    002825e4str x0, [sp+8]
    002825e8str x1, [sp+16]
    002825ecadd x29, sp, 24
    002825f0add sp, sp, 32
    002825f4ret x30
    002825f8udf 0
    002825fcudf 0
    002825c0
    00282600
    00282600crypto/ecdh.(*PrivateKey).PublicKey: ; void crypto/ecdh.(*PrivateKey).PublicKey(crypto/ecdh.PrivateKey * k)
    00282600str x30, [sp-32]!
    00282604stur x29, [sp-8]
    00282608sub x29, sp, 8
    0028260cstr x0, [sp+40]
    00282610str xzr, [sp+16]
    00282614ldr x1, [sp+40]
    00282618ldrsb x27, [x1]
    0028261cldr x0, [x1+40]
    00282620str x0, [sp+16]
    00282624add x29, sp, 24
    00282628add sp, sp, 32
    0028262cret x30
    00282600
    00282630
    00282630crypto/ecdh.(*PrivateKey).Public: ; void crypto/ecdh.(*PrivateKey).Public(crypto/ecdh.PrivateKey * k)
    00282630ldr x16, [x28+16]
    00282634subs xzr, sp, x16
    00282638b.ls 0x282684
    0028263cstr x30, [sp-64]!
    00282640stur x29, [sp-8]
    00282644sub x29, sp, 8
    00282648str x0, [sp+72]
    0028264cstp xzr, xzr, [sp+24]
    00282650ldr x0, [sp+72]
    00282654bl crypto/ecdh.(*PrivateKey).PublicKey
    00282658str x0, [sp+48]
    0028265cstr x0, [sp+40]
    00282660adrp x1, 0x3ab000
    00282664add x1, x1, 2016
    00282668str x1, [sp+24]
    0028266cstr x0, [sp+32]
    00282670ldr x0, [sp+24]
    00282674ldr x1, [sp+32]
    00282678ldur x29, [sp-8]
    0028267cldr x30, [sp], 64
    00282680ret x30
    00282684
    00282684loc_282684:
    00282684str x0, [sp+8]
    00282688mov x3, x30
    0028268cbl runtime.morestack_noctxt.abi0
    00282690ldr x0, [sp+8]
    00282694b 0x282630
    00282698udf 0
    0028269cudf 0
    00282630
    002826a0
    002826a0crypto/ecdh.(*nistCurve).String: ; void crypto/ecdh.(*nistCurve).String(crypto/ecdh.nistCurve * c)
    002826a0str x30, [sp-32]!
    002826a4stur x29, [sp-8]
    002826a8sub x29, sp, 8
    002826acstr x0, [sp+40]
    002826b0stp xzr, xzr, [sp+8]
    002826b4ldr x2, [sp+40]
    002826b8ldrsb x27, [x2]
    002826bcldr x0, [x2]
    002826c0ldr x1, [x2+8]
    002826c4str x0, [sp+8]
    002826c8str x1, [sp+16]
    002826ccadd x29, sp, 24
    002826d0add sp, sp, 32
    002826d4ret x30
    002826d8udf 0
    002826dcudf 0
    002826a0
    002826e0
    002826e0crypto/ecdh.(*nistCurve).GenerateKey: ; void crypto/ecdh.(*nistCurve).GenerateKey(crypto/ecdh.nistCurve * c, io.Reader rand)
    002826e0ldr x16, [x28+16]
    002826e4sub x17, sp, 128
    002826e8subs xzr, x17, x16
    002826ecb.ls 0x282ae0
    002826f0sub x20, sp, 256
    002826f4stp x29, x30, [x20-8]
    002826f8add sp, x20, 0
    002826fcsub x29, sp, 8
    00282700str x0, [sp+264]
    00282704str x1, [sp+272]
    00282708str x2, [sp+280]
    0028270cstr xzr, [sp+64]
    00282710stp xzr, xzr, [sp+48]
    00282714adrp x27, 0x7c9000
    00282718ldrb w2, [x27+1551]
    0028271cstrb w2, [sp+46]
    00282720tbnz w2, 0, 0x282728
    00282724b 0x282744
    00282728
    00282728loc_282728:
    00282728ldr x0, [sp+272]
    0028272cldr x1, [sp+280]
    00282730bl crypto/internal/fips140only.ApprovedRandomReader
    00282734strb w0, [sp+47]
    00282738eor x2, x0, 1
    0028273cstrb w2, [sp+46]
    00282740b 0x282748
    00282744
    00282744loc_282744:
    00282744b 0x282748
    00282748
    00282748loc_282748:
    00282748ldrb w2, [sp+46]
    0028274ctbnz w2, 0, 0x282754
    00282750b 0x282790
    00282754
    00282754loc_282754:
    00282754adrp x0, 0x44c000
    00282758add x0, x0, 1676
    0028275cmovz x1, 69
    00282760bl errors.New
    00282764str x0, [sp+232]
    00282768str x1, [sp+240]
    0028276cstr xzr, [sp+64]
    00282770ldr x1, [sp+232]
    00282774ldr x2, [sp+240]
    00282778str x1, [sp+48]
    0028277cstr x2, [sp+56]
    00282780ldr x0, [sp+64]
    00282784ldp x29, x30, [sp-8]
    00282788add sp, sp, 256
    0028278cret x30
    00282790
    00282790loc_282790:
    00282790str xzr, [sp+224]
    00282794stp xzr, xzr, [sp+232]
    00282798ldr x2, [sp+264]
    0028279cldrsb x27, [x2]
    002827a0ldr x26, [x2+16]
    002827a4ldr x2, [x26]
    002827a8ldr x0, [sp+272]
    002827acldr x1, [sp+280]
    002827b0blr x2
    002827b4str x0, [sp+224]
    002827b8str x1, [sp+232]
    002827bcstr x2, [sp+240]
    002827c0ldr x2, [sp+224]
    002827c4str x2, [sp+120]
    002827c8ldr x2, [sp+232]
    002827ccldr x3, [sp+240]
    002827d0str x2, [sp+104]
    002827d4str x3, [sp+112]
    002827d8ldr x2, [sp+120]
    002827dcstr x2, [sp+72]
    002827e0ldr x2, [sp+112]
    002827e4ldr x3, [sp+104]
    002827e8str x3, [sp+88]
    002827ecstr x2, [sp+96]
    002827f0cbnz x3, 0x2827f8
    002827f4b 0x28281c
    002827f8
    002827f8loc_2827f8:
    002827f8str xzr, [sp+64]
    002827fcldr x1, [sp+88]
    00282800ldr x2, [sp+96]
    00282804str x1, [sp+48]
    00282808str x2, [sp+56]
    0028280cldr x0, [sp+64]
    00282810ldp x29, x30, [sp-8]
    00282814add sp, sp, 256
    00282818ret x30
    0028281c
    0028281cloc_28281c:
    0028281cldr x0, [sp+72]
    00282820bl crypto/internal/fips140/ecdh.(*PrivateKey).Bytes
    00282824str x0, [sp+200]
    00282828str x1, [sp+208]
    0028282cstr x2, [sp+216]
    00282830ldr x0, [sp+72]
    00282834bl crypto/internal/fips140/ecdh.(*PrivateKey).PublicKey
    00282838str x0, [sp+192]
    0028283cbl crypto/internal/fips140/ecdh.(*PublicKey).Bytes
    00282840str x0, [sp+168]
    00282844str x1, [sp+176]
    00282848str x2, [sp+184]
    0028284cldr x0, [sp+72]
    00282850bl crypto/internal/fips140/ecdh.(*PrivateKey).PublicKey
    00282854str x0, [sp+160]
    00282858adrp x0, 0x3f4000
    0028285cadd x0, x0, 2816
    00282860bl runtime.newobject
    00282864str x0, [sp+152]
    00282868adrp x27, 0x7c9000
    0028286cldr w1, [x27+3056]
    00282870cbz w1, 0x282878
    00282874b 0x28287c
    00282878
    00282878loc_282878:
    00282878b 0x282898
    0028287c
    0028287cloc_28287c:
    0028287cstr x0, [sp+136]
    00282880mov x1, x0
    00282884adrp x0, 0x3f4000
    00282888add x0, x0, 2816
    0028288cbl runtime.wbZero
    00282890ldr x0, [sp+136]
    00282894b 0x282898
    00282898
    00282898loc_282898:
    00282898stp xzr, xzr, [x0]
    0028289cstp xzr, xzr, [x0+16]
    002828a0stp xzr, xzr, [x0+32]
    002828a4stp xzr, xzr, [x0+48]
    002828a8ldr x1, [sp+152]
    002828acldrsb x27, [x1]
    002828b0ldr x2, [sp+264]
    002828b4adrp x3, 0x497000
    002828b8add x3, x3, 1200
    002828bcstr x3, [x1]
    002828c0adrp x27, 0x7c9000
    002828c4ldr w3, [x27+3056]
    002828c8cbz w3, 0x2828d0
    002828ccb 0x2828d4
    002828d0
    002828d0loc_2828d0:
    002828d0b 0x2828e8
    002828d4
    002828d4loc_2828d4:
    002828d4bl runtime.gcWriteBarrier2
    002828d8str x2, [x25]
    002828dcldr x3, [x1+8]
    002828e0str x3, [x25+8]
    002828e4b 0x2828e8
    002828e8
    002828e8loc_2828e8:
    002828e8str x2, [x1+8]
    002828ecldr x1, [sp+152]
    002828f0ldrsb x27, [x1]
    002828f4ldr x2, [sp+200]
    002828f8ldr x3, [sp+208]
    002828fcldr x4, [sp+216]
    00282900str x3, [x1+24]
    00282904str x4, [x1+32]
    00282908adrp x27, 0x7c9000
    0028290cldr w3, [x27+3056]
    00282910cbz w3, 0x282918
    00282914b 0x28291c
    00282918
    00282918loc_282918:
    00282918b 0x282930
    0028291c
    0028291cloc_28291c:
    0028291cbl runtime.gcWriteBarrier2
    00282920str x2, [x25]
    00282924ldr x3, [x1+16]
    00282928str x3, [x25+8]
    0028292cb 0x282930
    00282930
    00282930loc_282930:
    00282930str x2, [x1+16]
    00282934ldr x1, [sp+152]
    00282938ldrsb x27, [x1]
    0028293cldr x2, [sp+72]
    00282940adrp x27, 0x7c9000
    00282944ldr w3, [x27+3056]
    00282948cbz w3, 0x282950
    0028294cb 0x282954
    00282950
    00282950loc_282950:
    00282950b 0x282968
    00282954
    00282954loc_282954:
    00282954bl runtime.gcWriteBarrier2
    00282958str x2, [x25]
    0028295cldr x3, [x1+56]
    00282960str x3, [x25+8]
    00282964b 0x282968
    00282968
    00282968loc_282968:
    00282968str x2, [x1+56]
    0028296cadrp x0, 0x3e5000
    00282970add x0, x0, 2592
    00282974bl runtime.newobject
    00282978str x0, [sp+144]
    0028297cadrp x27, 0x7c9000
    00282980ldr w1, [x27+3056]
    00282984cbz w1, 0x28298c
    00282988b 0x282990
    0028298c
    0028298cloc_28298c:
    0028298cb 0x2829ac
    00282990
    00282990loc_282990:
    00282990str x0, [sp+128]
    00282994mov x1, x0
    00282998adrp x0, 0x3e5000
    0028299cadd x0, x0, 2592
    002829a0bl runtime.wbZero
    002829a4ldr x0, [sp+128]
    002829a8b 0x2829ac
    002829ac
    002829acloc_2829ac:
    002829acstp xzr, xzr, [x0]
    002829b0stp xzr, xzr, [x0+16]
    002829b4stp xzr, xzr, [x0+32]
    002829b8str xzr, [x0+48]
    002829bcldr x3, [sp+144]
    002829c0ldrsb x27, [x3]
    002829c4ldr x4, [sp+264]
    002829c8adrp x5, 0x497000
    002829ccadd x5, x5, 1200
    002829d0str x5, [x3]
    002829d4adrp x27, 0x7c9000
    002829d8ldr w5, [x27+3056]
    002829dccbz w5, 0x2829e4
    002829e0b 0x2829e8
    002829e4
    002829e4loc_2829e4:
    002829e4b 0x2829fc
    002829e8
    002829e8loc_2829e8:
    002829e8bl runtime.gcWriteBarrier2
    002829ecstr x4, [x25]
    002829f0ldr x5, [x3+8]
    002829f4str x5, [x25+8]
    002829f8b 0x2829fc
    002829fc
    002829fcloc_2829fc:
    002829fcstr x4, [x3+8]
    00282a00ldr x3, [sp+144]
    00282a04ldrsb x27, [x3]
    00282a08ldr x4, [sp+168]
    00282a0cldr x5, [sp+176]
    00282a10ldr x6, [sp+184]
    00282a14str x5, [x3+24]
    00282a18str x6, [x3+32]
    00282a1cadrp x27, 0x7c9000
    00282a20ldr w5, [x27+3056]
    00282a24cbz w5, 0x282a2c
    00282a28b 0x282a30
    00282a2c
    00282a2cloc_282a2c:
    00282a2cb 0x282a44
    00282a30
    00282a30loc_282a30:
    00282a30bl runtime.gcWriteBarrier2
    00282a34str x4, [x25]
    00282a38ldr x5, [x3+16]
    00282a3cstr x5, [x25+8]
    00282a40b 0x282a44
    00282a44
    00282a44loc_282a44:
    00282a44str x4, [x3+16]
    00282a48ldr x3, [sp+144]
    00282a4cldrsb x27, [x3]
    00282a50ldr x4, [sp+160]
    00282a54adrp x27, 0x7c9000
    00282a58ldr w5, [x27+3056]
    00282a5ccbz w5, 0x282a64
    00282a60b 0x282a68
    00282a64
    00282a64loc_282a64:
    00282a64b 0x282a7c
    00282a68
    00282a68loc_282a68:
    00282a68bl runtime.gcWriteBarrier2
    00282a6cstr x4, [x25]
    00282a70ldr x5, [x3+48]
    00282a74str x5, [x25+8]
    00282a78b 0x282a7c
    00282a7c
    00282a7cloc_282a7c:
    00282a7cstr x4, [x3+48]
    00282a80ldr x3, [sp+152]
    00282a84ldrsb x27, [x3]
    00282a88ldr x4, [sp+144]
    00282a8cadrp x27, 0x7c9000
    00282a90ldr w5, [x27+3056]
    00282a94cbz w5, 0x282a9c
    00282a98b 0x282aa0
    00282a9c
    00282a9cloc_282a9c:
    00282a9cb 0x282ab4
    00282aa0
    00282aa0loc_282aa0:
    00282aa0bl runtime.gcWriteBarrier2
    00282aa4str x4, [x25]
    00282aa8ldr x5, [x3+40]
    00282aacstr x5, [x25+8]
    00282ab0b 0x282ab4
    00282ab4
    00282ab4loc_282ab4:
    00282ab4str x4, [x3+40]
    00282ab8ldr x3, [sp+152]
    00282abcstr x3, [sp+80]
    00282ac0str x3, [sp+64]
    00282ac4stp xzr, xzr, [sp+48]
    00282ac8ldr x0, [sp+64]
    00282accmov x1, xzr
    00282ad0mov x2, xzr
    00282ad4ldp x29, x30, [sp-8]
    00282ad8add sp, sp, 256
    00282adcret x30
    00282ae0
    00282ae0loc_282ae0:
    00282ae0stp x0, x1, [sp+8]
    00282ae4str x2, [sp+24]
    00282ae8mov x3, x30
    00282aecbl runtime.morestack_noctxt.abi0
    00282af0ldp x0, x1, [sp+8]
    00282af4ldr x2, [sp+24]
    00282af8b 0x2826e0
    00282afcudf 0
    002826e0