File sliver_83cb34f62800fed14e14547c39337aab8e0427fe2c6310a3fb40ce0ac36168c9.elf
Function:
    003a8790
    003a8790golang.org/x/crypto/internal/poly1305.bitsSub64: ; void golang.org/x/crypto/internal/poly1305.bitsSub64(uint64 x, uint64 y, uint64 borrow)
    003a8790str x30, [sp-64]!
    003a8794stur x29, [sp-8]
    003a8798sub x29, sp, 8
    003a879cstr x0, [sp+72]
    003a87a0str x1, [sp+80]
    003a87a4str x2, [sp+88]
    003a87a8str xzr, [sp+8]
    003a87acstr xzr, [sp+16]
    003a87b0ldr x3, [sp+72]
    003a87b4subs x4, xzr, x2
    003a87b8sbcs x0, x3, x1
    003a87bcstr x0, [sp+32]
    003a87c0subs x2, xzr, x2
    003a87c4sbcs x2, x3, x1
    003a87c8sbc x2, xzr, xzr
    003a87ccsub x1, xzr, x2
    003a87d0str x1, [sp+24]
    003a87d4str x0, [sp+48]
    003a87d8str x1, [sp+40]
    003a87dcstr x0, [sp+8]
    003a87e0str x1, [sp+16]
    003a87e4add x29, sp, 56
    003a87e8add sp, sp, 64
    003a87ecret x30
    003a8790
    003a87f0
    003a87f0golang.org/x/crypto/internal/poly1305.bitsMul64: ; void golang.org/x/crypto/internal/poly1305.bitsMul64(uint64 x, uint64 y)
    003a87f0str x30, [sp-64]!
    003a87f4stur x29, [sp-8]
    003a87f8sub x29, sp, 8
    003a87fcstr x0, [sp+72]
    003a8800str x1, [sp+80]
    003a8804str xzr, [sp+16]
    003a8808str xzr, [sp+8]
    003a880cmadd x2, x0, x1, xzr
    003a8810umulh x0, x0, x1
    003a8814str x0, [sp+32]
    003a8818str x2, [sp+24]
    003a881cstr x0, [sp+48]
    003a8820str x2, [sp+40]
    003a8824str x0, [sp+16]
    003a8828str x2, [sp+8]
    003a882cmov x1, x2
    003a8830add x29, sp, 56
    003a8834add sp, sp, 64
    003a8838ret x30
    003a883cudf 0
    003a87f0
    003a8840
    003a8840golang.org/x/crypto/internal/poly1305.Sum: ; void golang.org/x/crypto/internal/poly1305.Sum(uint8[16] * out, struct []uint8 m, uint8[32] * key)
    003a8840ldr x16, [x28+16]
    003a8844subs xzr, sp, x16
    003a8848b.ls 0x3a88c0
    003a884cstr x30, [sp-80]!
    003a8850stur x29, [sp-8]
    003a8854sub x29, sp, 8
    003a8858str x0, [sp+88]
    003a885cstr x1, [sp+96]
    003a8860str x2, [sp+104]
    003a8864str x3, [sp+112]
    003a8868str x4, [sp+120]
    003a886cmov x0, x4
    003a8870bl golang.org/x/crypto/internal/poly1305.New
    003a8874str x0, [sp+40]
    003a8878ldr x2, [sp+104]
    003a887cldr x3, [sp+112]
    003a8880ldr x1, [sp+96]
    003a8884bl golang.org/x/crypto/internal/poly1305.(*MAC).Write
    003a8888ldr x1, [sp+88]
    003a888cldrsb x27, [x1]
    003a8890b 0x3a8894
    003a8894
    003a8894loc_3a8894:
    003a8894b 0x3a8898
    003a8898
    003a8898loc_3a8898:
    003a8898str x1, [sp+48]
    003a889cstr xzr, [sp+56]
    003a88a0orr x3, xzr, 16
    003a88a4str x3, [sp+64]
    003a88a8ldr x0, [sp+40]
    003a88acmov x2, xzr
    003a88b0bl golang.org/x/crypto/internal/poly1305.(*MAC).Sum
    003a88b4ldur x29, [sp-8]
    003a88b8ldr x30, [sp], 80
    003a88bcret x30
    003a88c0
    003a88c0loc_3a88c0:
    003a88c0stp x0, x1, [sp+8]
    003a88c4stp x2, x3, [sp+24]
    003a88c8str x4, [sp+40]
    003a88ccmov x3, x30
    003a88d0bl runtime.morestack_noctxt.abi0
    003a88d4ldp x0, x1, [sp+8]
    003a88d8ldp x2, x3, [sp+24]
    003a88dcldr x4, [sp+40]
    003a88e0b 0x3a8840
    003a88e4udf 0
    003a88e8udf 0
    003a88ecudf 0
    003a8840
    003a88f0
    003a88f0golang.org/x/crypto/internal/poly1305.Verify: ; void golang.org/x/crypto/internal/poly1305.Verify(uint8[16] * mac, struct []uint8 m, uint8[32] * key)
    003a88f0ldr x16, [x28+16]
    003a88f4sub x17, sp, 16
    003a88f8subs xzr, x17, x16
    003a88fcb.ls 0x3a89a4
    003a8900str x30, [sp-144]!
    003a8904stur x29, [sp-8]
    003a8908sub x29, sp, 8
    003a890cstr x0, [sp+152]
    003a8910str x1, [sp+160]
    003a8914str x2, [sp+168]
    003a8918str x3, [sp+176]
    003a891cstr x4, [sp+184]
    003a8920strb wzr, [sp+63]
    003a8924stp xzr, xzr, [sp+64]
    003a8928ldr x1, [sp+160]
    003a892cldr x4, [sp+184]
    003a8930ldr x2, [sp+168]
    003a8934ldr x3, [sp+176]
    003a8938add x0, sp, 64
    003a893cbl golang.org/x/crypto/internal/poly1305.Sum
    003a8940add x5, sp, 64
    003a8944ldrsb x27, [x5]
    003a8948b 0x3a894c
    003a894c
    003a894cloc_3a894c:
    003a894cstr x5, [sp+112]
    003a8950orr x5, xzr, 16
    003a8954str x5, [sp+120]
    003a8958str x5, [sp+128]
    003a895cldr x3, [sp+152]
    003a8960ldrsb x27, [x3]
    003a8964b 0x3a8968
    003a8968
    003a8968loc_3a8968:
    003a8968str x3, [sp+88]
    003a896cstr x5, [sp+96]
    003a8970str x5, [sp+104]
    003a8974ldr x0, [sp+112]
    003a8978ldr x1, [sp+120]
    003a897cldr x2, [sp+128]
    003a8980mov x4, x5
    003a8984bl crypto/subtle.ConstantTimeCompare
    003a8988str x0, [sp+80]
    003a898csubs xzr, x0, 1
    003a8990cset x0, eq
    003a8994strb w0, [sp+63]
    003a8998ldur x29, [sp-8]
    003a899cldr x30, [sp], 144
    003a89a0ret x30
    003a89a4
    003a89a4loc_3a89a4:
    003a89a4stp x0, x1, [sp+8]
    003a89a8stp x2, x3, [sp+24]
    003a89acstr x4, [sp+40]
    003a89b0mov x3, x30
    003a89b4bl runtime.morestack_noctxt.abi0
    003a89b8ldp x0, x1, [sp+8]
    003a89bcldp x2, x3, [sp+24]
    003a89c0ldr x4, [sp+40]
    003a89c4b 0x3a88f0
    003a89c8udf 0
    003a89ccudf 0
    003a88f0
    003a89d0
    003a89d0golang.org/x/crypto/internal/poly1305.New: ; void golang.org/x/crypto/internal/poly1305.New(uint8[32] * key)
    003a89d0ldr x16, [x28+16]
    003a89d4subs xzr, sp, x16
    003a89d8b.ls 0x3a8a48
    003a89dcstr x30, [sp-80]!
    003a89e0stur x29, [sp-8]
    003a89e4sub x29, sp, 8
    003a89e8str x0, [sp+88]
    003a89ecstr xzr, [sp+40]
    003a89f0adrp x0, 0x29f000
    003a89f4add x0, x0, 2752
    003a89f8bl runtime.newobject
    003a89fcstr x0, [sp+64]
    003a8a00mov x20, x0
    003a8a04adr x27, 16
    003a8a08stp x29, x27, [sp-24]
    003a8a0csub x29, sp, 24
    003a8a10bl fn_87cfc
    003a8a14sub x29, sp, 8
    003a8a18str xzr, [x0+80]
    003a8a1cldr x1, [sp+64]
    003a8a20str x1, [sp+48]
    003a8a24ldrsb x27, [x1]
    003a8a28str x1, [sp+56]
    003a8a2cldr x0, [sp+88]
    003a8a30bl golang.org/x/crypto/internal/poly1305.initialize
    003a8a34ldr x0, [sp+48]
    003a8a38str x0, [sp+40]
    003a8a3cldur x29, [sp-8]
    003a8a40ldr x30, [sp], 80
    003a8a44ret x30
    003a8a48
    003a8a48loc_3a8a48:
    003a8a48str x0, [sp+8]
    003a8a4cmov x3, x30
    003a8a50bl runtime.morestack_noctxt.abi0
    003a8a54ldr x0, [sp+8]
    003a8a58b 0x3a89d0
    003a8a5cudf 0
    003a89d0
    003a8a60
    003a8a60golang.org/x/crypto/internal/poly1305.(*MAC).Write: ; void golang.org/x/crypto/internal/poly1305.(*MAC).Write(golang.org/x/crypto/internal/poly1305.MAC * h, struct []uint8 p)
    003a8a60ldr x16, [x28+16]
    003a8a64subs xzr, sp, x16
    003a8a68b.ls 0x3a8b18
    003a8a6cstr x30, [sp-128]!
    003a8a70stur x29, [sp-8]
    003a8a74sub x29, sp, 8
    003a8a78str x0, [sp+136]
    003a8a7cstr x1, [sp+144]
    003a8a80str x2, [sp+152]
    003a8a84str x3, [sp+160]
    003a8a88str xzr, [sp+40]
    003a8a8cstp xzr, xzr, [sp+64]
    003a8a90ldr x4, [sp+136]
    003a8a94ldrsb x27, [x4]
    003a8a98ldrb w4, [x4+80]
    003a8a9ctbnz w4, 0, 0x3a8b00
    003a8aa0b 0x3a8aa4
    003a8aa4
    003a8aa4loc_3a8aa4:
    003a8aa4stp xzr, xzr, [sp+88]
    003a8aa8ldr x0, [sp+136]
    003a8aacldrsb x27, [x0]
    003a8ab0str x0, [sp+80]
    003a8ab4ldr x1, [sp+144]
    003a8ab8ldr x2, [sp+152]
    003a8abcldr x3, [sp+160]
    003a8ac0bl golang.org/x/crypto/internal/poly1305.(*macGeneric).Write
    003a8ac4str x0, [sp+48]
    003a8ac8str x1, [sp+88]
    003a8accstr x2, [sp+96]
    003a8ad0ldr x4, [sp+48]
    003a8ad4str x4, [sp+56]
    003a8ad8str x1, [sp+104]
    003a8adcstr x2, [sp+112]
    003a8ae0ldr x4, [sp+56]
    003a8ae4str x4, [sp+40]
    003a8ae8str x1, [sp+64]
    003a8aecstr x2, [sp+72]
    003a8af0ldr x0, [sp+40]
    003a8af4ldur x29, [sp-8]
    003a8af8ldr x30, [sp], 128
    003a8afcret x30
    003a8b00
    003a8b00loc_3a8b00:
    003a8b00adrp x0, 0x24d000
    003a8b04add x0, x0, 2944
    003a8b08adrp x1, 0x36a000
    003a8b0cadd x1, x1, 3536
    003a8b10bl runtime.gopanic
    003a8b14hint
    003a8b18
    003a8b18loc_3a8b18:
    003a8b18stp x0, x1, [sp+8]
    003a8b1cstp x2, x3, [sp+24]
    003a8b20mov x3, x30
    003a8b24bl runtime.morestack_noctxt.abi0
    003a8b28ldp x0, x1, [sp+8]
    003a8b2cldp x2, x3, [sp+24]
    003a8b30b 0x3a8a60
    003a8b34udf 0
    003a8b38udf 0
    003a8b3cudf 0
    003a8a60
    003a8b40
    003a8b40golang.org/x/crypto/internal/poly1305.(*MAC).Sum: ; void golang.org/x/crypto/internal/poly1305.(*MAC).Sum(golang.org/x/crypto/internal/poly1305.MAC * h, struct []uint8 b)
    003a8b40ldr x16, [x28+16]
    003a8b44sub x17, sp, 80
    003a8b48subs xzr, x17, x16
    003a8b4cb.ls 0x3a8c6c
    003a8b50str x30, [sp-208]!
    003a8b54stur x29, [sp-8]
    003a8b58sub x29, sp, 8
    003a8b5cstr x0, [sp+216]
    003a8b60str x1, [sp+224]
    003a8b64str x2, [sp+232]
    003a8b68str x3, [sp+240]
    003a8b6cstr xzr, [sp+88]
    003a8b70stp xzr, xzr, [sp+96]
    003a8b74stp xzr, xzr, [sp+56]
    003a8b78ldr x0, [sp+216]
    003a8b7cldrsb x27, [x0]
    003a8b80str x0, [sp+136]
    003a8b84add x1, sp, 56
    003a8b88bl golang.org/x/crypto/internal/poly1305.(*macGeneric).Sum
    003a8b8cldr x2, [sp+216]
    003a8b90ldrsb x27, [x2]
    003a8b94orr x3, xzr, 1
    003a8b98strb w3, [x2+80]
    003a8b9cadd x2, sp, 56
    003a8ba0ldrsb x27, [x2]
    003a8ba4b 0x3a8ba8
    003a8ba8
    003a8ba8loc_3a8ba8:
    003a8ba8str x2, [sp+168]
    003a8bacorr x5, xzr, 16
    003a8bb0str x5, [sp+176]
    003a8bb4str x5, [sp+184]
    003a8bb8ldr x2, [sp+240]
    003a8bbcldr x0, [sp+224]
    003a8bc0ldr x5, [sp+232]
    003a8bc4str x0, [sp+112]
    003a8bc8str x5, [sp+120]
    003a8bccstr x2, [sp+128]
    003a8bd0ldr x6, [sp+176]
    003a8bd4add x1, x5, x6
    003a8bd8str x1, [sp+80]
    003a8bdcsubs xzr, x2, x1
    003a8be0b.hs 0x3a8be8
    003a8be4b 0x3a8bf0
    003a8be8
    003a8be8loc_3a8be8:
    003a8be8str x1, [sp+120]
    003a8becb 0x3a8c10
    003a8bf0
    003a8bf0loc_3a8bf0:
    003a8bf0ldr x3, [sp+176]
    003a8bf4adrp x4, 0x24d000
    003a8bf8add x4, x4, 3072
    003a8bfcbl runtime.growslice
    003a8c00str x0, [sp+112]
    003a8c04str x1, [sp+120]
    003a8c08str x2, [sp+128]
    003a8c0cb 0x3a8c10
    003a8c10
    003a8c10loc_3a8c10:
    003a8c10ldr x3, [sp+176]
    003a8c14str x3, [sp+72]
    003a8c18ldr x3, [sp+80]
    003a8c1cldr x4, [sp+176]
    003a8c20sub x3, x3, x4
    003a8c24ldr x4, [sp+112]
    003a8c28add x0, x4, x3
    003a8c2cstr x0, [sp+192]
    003a8c30ldr x2, [sp+72]
    003a8c34ldr x1, [sp+168]
    003a8c38bl runtime.memmove
    003a8c3cldr x0, [sp+112]
    003a8c40ldr x1, [sp+120]
    003a8c44ldr x2, [sp+128]
    003a8c48str x0, [sp+144]
    003a8c4cstr x1, [sp+152]
    003a8c50str x2, [sp+160]
    003a8c54str x0, [sp+88]
    003a8c58str x1, [sp+96]
    003a8c5cstr x2, [sp+104]
    003a8c60ldur x29, [sp-8]
    003a8c64ldr x30, [sp], 208
    003a8c68ret x30
    003a8c6c
    003a8c6cloc_3a8c6c:
    003a8c6cstp x0, x1, [sp+8]
    003a8c70stp x2, x3, [sp+24]
    003a8c74mov x3, x30
    003a8c78bl runtime.morestack_noctxt.abi0
    003a8c7cldp x0, x1, [sp+8]
    003a8c80ldp x2, x3, [sp+24]
    003a8c84b 0x3a8b40
    003a8c88udf 0
    003a8c8cudf 0
    003a8b40
    003a8c90
    003a8c90golang.org/x/crypto/internal/poly1305.(*MAC).Verify: ; void golang.org/x/crypto/internal/poly1305.(*MAC).Verify(golang.org/x/crypto/internal/poly1305.MAC * h, struct []uint8 expected)
    003a8c90ldr x16, [x28+16]
    003a8c94subs xzr, sp, x16
    003a8c98b.ls 0x3a8d30
    003a8c9cstr x30, [sp-128]!
    003a8ca0stur x29, [sp-8]
    003a8ca4sub x29, sp, 8
    003a8ca8str x0, [sp+136]
    003a8cacstr x1, [sp+144]
    003a8cb0str x2, [sp+152]
    003a8cb4str x3, [sp+160]
    003a8cb8strb wzr, [sp+63]
    003a8cbcstp xzr, xzr, [sp+64]
    003a8cc0ldr x0, [sp+136]
    003a8cc4ldrsb x27, [x0]
    003a8cc8str x0, [sp+88]
    003a8cccadd x1, sp, 64
    003a8cd0bl golang.org/x/crypto/internal/poly1305.(*macGeneric).Sum
    003a8cd4ldr x2, [sp+136]
    003a8cd8ldrsb x27, [x2]
    003a8cdcorr x3, xzr, 1
    003a8ce0strb w3, [x2+80]
    003a8ce4add x3, sp, 64
    003a8ce8ldrsb x27, [x3]
    003a8cecb 0x3a8cf0
    003a8cf0
    003a8cf0loc_3a8cf0:
    003a8cf0str x3, [sp+96]
    003a8cf4orr x5, xzr, 16
    003a8cf8str x5, [sp+104]
    003a8cfcstr x5, [sp+112]
    003a8d00ldr x0, [sp+144]
    003a8d04ldr x1, [sp+152]
    003a8d08ldr x2, [sp+160]
    003a8d0cmov x4, x5
    003a8d10bl crypto/subtle.ConstantTimeCompare
    003a8d14str x0, [sp+80]
    003a8d18subs xzr, x0, 1
    003a8d1ccset x0, eq
    003a8d20strb w0, [sp+63]
    003a8d24ldur x29, [sp-8]
    003a8d28ldr x30, [sp], 128
    003a8d2cret x30
    003a8d30
    003a8d30loc_3a8d30:
    003a8d30stp x0, x1, [sp+8]
    003a8d34stp x2, x3, [sp+24]
    003a8d38mov x3, x30
    003a8d3cbl runtime.morestack_noctxt.abi0
    003a8d40ldp x0, x1, [sp+8]
    003a8d44ldp x2, x3, [sp+24]
    003a8d48b 0x3a8c90
    003a8d4cudf 0
    003a8c90
    003a8d50
    003a8d50golang.org/x/crypto/internal/poly1305.(*macGeneric).Write: ; void golang.org/x/crypto/internal/poly1305.(*macGeneric).Write(golang.org/x/crypto/internal/poly1305.macGeneric * h, struct []uint8 p)
    003a8d50ldr x16, [x28+16]
    003a8d54sub x17, sp, 160
    003a8d58subs xzr, x17, x16
    003a8d5cb.ls 0x3a9154
    003a8d60sub x20, sp, 288
    003a8d64stp x29, x30, [x20-8]
    003a8d68add sp, x20, 0
    003a8d6csub x29, sp, 8
    003a8d70str x0, [sp+296]
    003a8d74str x1, [sp+304]
    003a8d78str x2, [sp+312]
    003a8d7cstr x3, [sp+320]
    003a8d80str xzr, [sp+48]
    003a8d84stp xzr, xzr, [sp+128]
    003a8d88ldr x4, [sp+312]
    003a8d8cstr x4, [sp+56]
    003a8d90ldr x4, [sp+296]
    003a8d94ldrsb x27, [x4]
    003a8d98ldr x4, [x4+72]
    003a8d9csubs xzr, x4, 0
    003a8da0b.gt 0x3a8da8
    003a8da4b 0x3a8f5c
    003a8da8
    003a8da8loc_3a8da8:
    003a8da8ldr x4, [sp+296]
    003a8dacldrsb x27, [x4]
    003a8db0ldr x0, [x4+72]
    003a8db4str x0, [sp+88]
    003a8db8ldr x4, [sp+296]
    003a8dbcldrsb x27, [x4]
    003a8dc0add x4, x4, 56
    003a8dc4ldrsb x27, [x4]
    003a8dc8subs xzr, x0, 16
    003a8dccb.ls 0x3a8dd4
    003a8dd0b 0x3a9148
    003a8dd4
    003a8dd4loc_3a8dd4:
    003a8dd4orr x5, xzr, 16
    003a8dd8sub x6, x5, x0
    003a8ddcsub x7, xzr, x6
    003a8de0and x7, x0, x7, asr #63
    003a8de4add x4, x4, x7
    003a8de8str x4, [sp+144]
    003a8decstr x6, [sp+152]
    003a8df0str x6, [sp+160]
    003a8df4str x4, [sp+256]
    003a8df8str x6, [sp+264]
    003a8dfcstr x6, [sp+272]
    003a8e00ldr x4, [sp+312]
    003a8e04ldr x6, [sp+304]
    003a8e08ldr x7, [sp+320]
    003a8e0cstr x6, [sp+232]
    003a8e10str x4, [sp+240]
    003a8e14str x7, [sp+248]
    003a8e18ldr x6, [sp+264]
    003a8e1cstr x6, [sp+120]
    003a8e20subs xzr, x4, x6
    003a8e24b.lt 0x3a8e2c
    003a8e28b 0x3a8e34
    003a8e2c
    003a8e2cloc_3a8e2c:
    003a8e2cstr x4, [sp+120]
    003a8e30b 0x3a8e38
    003a8e34
    003a8e34loc_3a8e34:
    003a8e34b 0x3a8e38
    003a8e38
    003a8e38loc_3a8e38:
    003a8e38ldr x4, [sp+232]
    003a8e3cldr x6, [sp+256]
    003a8e40subs xzr, x6, x4
    003a8e44b.ne 0x3a8e4c
    003a8e48b 0x3a8e68
    003a8e4c
    003a8e4cloc_3a8e4c:
    003a8e4cldr x3, [sp+120]
    003a8e50str x3, [sp+112]
    003a8e54ldr x2, [sp+112]
    003a8e58ldr x0, [sp+256]
    003a8e5cldr x1, [sp+232]
    003a8e60bl runtime.memmove
    003a8e64b 0x3a8e6c
    003a8e68
    003a8e68loc_3a8e68:
    003a8e68b 0x3a8e6c
    003a8e6c
    003a8e6cloc_3a8e6c:
    003a8e6cldr x0, [sp+120]
    003a8e70str x0, [sp+72]
    003a8e74ldr x4, [sp+296]
    003a8e78ldrsb x27, [x4]
    003a8e7cldr x4, [x4+72]
    003a8e80add x4, x4, x0
    003a8e84subs xzr, x4, 16
    003a8e88b.lt 0x3a8e90
    003a8e8cb 0x3a8ed0
    003a8e90
    003a8e90loc_3a8e90:
    003a8e90ldr x3, [sp+296]
    003a8e94ldrsb x27, [x3]
    003a8e98ldr x4, [sp+296]
    003a8e9cldrsb x27, [x4]
    003a8ea0ldr x4, [x4+72]
    003a8ea4add x4, x4, x0
    003a8ea8str x4, [x3+72]
    003a8eacldr x3, [sp+56]
    003a8eb0str x3, [sp+48]
    003a8eb4stp xzr, xzr, [sp+128]
    003a8eb8ldr x0, [sp+48]
    003a8ebcmov x1, xzr
    003a8ec0mov x2, xzr
    003a8ec4ldp x29, x30, [sp-8]
    003a8ec8add sp, sp, 288
    003a8eccret x30
    003a8ed0
    003a8ed0loc_3a8ed0:
    003a8ed0ldr x1, [sp+312]
    003a8ed4ldr x4, [sp+304]
    003a8ed8ldr x5, [sp+320]
    003a8edcb 0x3a8ee0
    003a8ee0
    003a8ee0loc_3a8ee0:
    003a8ee0subs xzr, x1, x0
    003a8ee4b.hs 0x3a8eec
    003a8ee8b 0x3a9144
    003a8eec
    003a8eecloc_3a8eec:
    003a8eecsub x5, x5, x0
    003a8ef0sub x6, x1, x0
    003a8ef4sub x7, xzr, x5
    003a8ef8and x7, x0, x7, asr #63
    003a8efcadd x4, x4, x7
    003a8f00str x4, [sp+304]
    003a8f04str x6, [sp+312]
    003a8f08str x5, [sp+320]
    003a8f0cldr x4, [sp+296]
    003a8f10ldrsb x27, [x4]
    003a8f14str xzr, [x4+72]
    003a8f18ldr x4, [sp+296]
    003a8f1cldrsb x27, [x4]
    003a8f20add x4, x4, 56
    003a8f24ldrsb x27, [x4]
    003a8f28b 0x3a8f2c
    003a8f2c
    003a8f2cloc_3a8f2c:
    003a8f2cstr x4, [sp+144]
    003a8f30orr x4, xzr, 16
    003a8f34str x4, [sp+152]
    003a8f38str x4, [sp+160]
    003a8f3cldr x0, [sp+296]
    003a8f40ldrsb x27, [x0]
    003a8f44str x0, [sp+224]
    003a8f48ldr x1, [sp+144]
    003a8f4cldr x2, [sp+152]
    003a8f50ldr x3, [sp+160]
    003a8f54bl golang.org/x/crypto/internal/poly1305.updateGeneric
    003a8f58b 0x3a8f60
    003a8f5c
    003a8f5cloc_3a8f5c:
    003a8f5cb 0x3a8f60
    003a8f60
    003a8f60loc_3a8f60:
    003a8f60ldr x4, [sp+312]
    003a8f64str x4, [sp+88]
    003a8f68ldr x5, [sp+312]
    003a8f6cstr x5, [sp+80]
    003a8f70and x5, x5, 15
    003a8f74sub x1, x4, x5
    003a8f78str x1, [sp+64]
    003a8f7csubs xzr, x1, 0
    003a8f80b.gt 0x3a8f88
    003a8f84b 0x3a900c
    003a8f88
    003a8f88loc_3a8f88:
    003a8f88ldr x2, [sp+320]
    003a8f8cldr x4, [sp+304]
    003a8f90subs xzr, x2, x1
    003a8f94b.hs 0x3a8f9c
    003a8f98b 0x3a9140
    003a8f9c
    003a8f9cloc_3a8f9c:
    003a8f9cb 0x3a8fa0
    003a8fa0
    003a8fa0loc_3a8fa0:
    003a8fa0str x4, [sp+144]
    003a8fa4str x1, [sp+152]
    003a8fa8str x2, [sp+160]
    003a8facldr x0, [sp+296]
    003a8fb0ldrsb x27, [x0]
    003a8fb4str x0, [sp+216]
    003a8fb8ldr x1, [sp+144]
    003a8fbcldr x2, [sp+152]
    003a8fc0ldr x3, [sp+160]
    003a8fc4bl golang.org/x/crypto/internal/poly1305.updateGeneric
    003a8fc8ldr x0, [sp+64]
    003a8fccldr x1, [sp+312]
    003a8fd0ldr x4, [sp+304]
    003a8fd4ldr x5, [sp+320]
    003a8fd8b 0x3a8fdc
    003a8fdc
    003a8fdcloc_3a8fdc:
    003a8fdcsubs xzr, x1, x0
    003a8fe0b.hs 0x3a8fe8
    003a8fe4b 0x3a913c
    003a8fe8
    003a8fe8loc_3a8fe8:
    003a8fe8sub x3, x5, x0
    003a8fecsub x5, x1, x0
    003a8ff0sub x6, xzr, x3
    003a8ff4and x6, x0, x6, asr #63
    003a8ff8add x4, x4, x6
    003a8ffcstr x4, [sp+304]
    003a9000str x5, [sp+312]
    003a9004str x3, [sp+320]
    003a9008b 0x3a9010
    003a900c
    003a900cloc_3a900c:
    003a900cb 0x3a9010
    003a9010
    003a9010loc_3a9010:
    003a9010ldr x3, [sp+312]
    003a9014str x3, [sp+80]
    003a9018cbnz x3, 0x3a9020
    003a901cb 0x3a910c
    003a9020
    003a9020loc_3a9020:
    003a9020ldr x3, [sp+296]
    003a9024ldrsb x27, [x3]
    003a9028ldr x0, [x3+72]
    003a902cstr x0, [sp+80]
    003a9030ldr x3, [sp+296]
    003a9034ldrsb x27, [x3]
    003a9038add x3, x3, 56
    003a903cldrsb x27, [x3]
    003a9040subs xzr, x0, 16
    003a9044b.ls 0x3a904c
    003a9048b 0x3a9134
    003a904c
    003a904cloc_3a904c:
    003a904corr x4, xzr, 16
    003a9050sub x4, x4, x0
    003a9054sub x5, xzr, x4
    003a9058and x5, x0, x5, asr #63
    003a905cadd x3, x3, x5
    003a9060str x3, [sp+144]
    003a9064str x4, [sp+152]
    003a9068str x4, [sp+160]
    003a906cstr x3, [sp+192]
    003a9070str x4, [sp+200]
    003a9074str x4, [sp+208]
    003a9078ldr x3, [sp+312]
    003a907cldr x4, [sp+304]
    003a9080ldr x5, [sp+320]
    003a9084str x4, [sp+168]
    003a9088str x3, [sp+176]
    003a908cstr x5, [sp+184]
    003a9090ldr x4, [sp+200]
    003a9094str x4, [sp+104]
    003a9098subs xzr, x4, x3
    003a909cb.gt 0x3a90a4
    003a90a0b 0x3a90ac
    003a90a4
    003a90a4loc_3a90a4:
    003a90a4str x3, [sp+104]
    003a90a8b 0x3a90b0
    003a90ac
    003a90acloc_3a90ac:
    003a90acb 0x3a90b0
    003a90b0
    003a90b0loc_3a90b0:
    003a90b0ldr x3, [sp+192]
    003a90b4ldr x4, [sp+168]
    003a90b8subs xzr, x4, x3
    003a90bcb.ne 0x3a90c4
    003a90c0b 0x3a90e0
    003a90c4
    003a90c4loc_3a90c4:
    003a90c4ldr x3, [sp+104]
    003a90c8str x3, [sp+96]
    003a90ccldr x2, [sp+96]
    003a90d0ldr x1, [sp+168]
    003a90d4ldr x0, [sp+192]
    003a90d8bl runtime.memmove
    003a90dcb 0x3a90e4
    003a90e0
    003a90e0loc_3a90e0:
    003a90e0b 0x3a90e4
    003a90e4
    003a90e4loc_3a90e4:
    003a90e4ldr x3, [sp+104]
    003a90e8str x3, [sp+88]
    003a90ecldr x4, [sp+296]
    003a90f0ldrsb x27, [x4]
    003a90f4ldr x5, [sp+296]
    003a90f8ldrsb x27, [x5]
    003a90fcldr x4, [x4+72]
    003a9100add x3, x4, x3
    003a9104str x3, [x5+72]
    003a9108b 0x3a9110
    003a910c
    003a910cloc_3a910c:
    003a910cb 0x3a9110
    003a9110
    003a9110loc_3a9110:
    003a9110ldr x3, [sp+56]
    003a9114str x3, [sp+48]
    003a9118stp xzr, xzr, [sp+128]
    003a911cldr x0, [sp+48]
    003a9120mov x1, xzr
    003a9124mov x2, xzr
    003a9128ldp x29, x30, [sp-8]
    003a912cadd sp, sp, 288
    003a9130ret x30
    003a9134
    003a9134loc_3a9134:
    003a9134orr x1, xzr, 16
    003a9138bl runtime.panicSliceB
    003a913c
    003a913cloc_3a913c:
    003a913cbl runtime.panicSliceB
    003a9140
    003a9140loc_3a9140:
    003a9140bl runtime.panicSliceAcap
    003a9144
    003a9144loc_3a9144:
    003a9144bl runtime.panicSliceB
    003a9148
    003a9148loc_3a9148:
    003a9148orr x1, xzr, 16
    003a914cbl runtime.panicSliceB
    003a9150hint
    003a9154
    003a9154loc_3a9154:
    003a9154stp x0, x1, [sp+8]
    003a9158stp x2, x3, [sp+24]
    003a915cmov x3, x30
    003a9160bl runtime.morestack_noctxt.abi0
    003a9164ldp x0, x1, [sp+8]
    003a9168ldp x2, x3, [sp+24]
    003a916cb 0x3a8d50
    003a8d50
    003a9170
    003a9170golang.org/x/crypto/internal/poly1305.(*macGeneric).Sum: ; void golang.org/x/crypto/internal/poly1305.(*macGeneric).Sum(golang.org/x/crypto/internal/poly1305.macGeneric * h, uint8[16] * out)
    003a9170ldr x16, [x28+16]
    003a9174sub x17, sp, 16
    003a9178subs xzr, x17, x16
    003a917cb.ls 0x3a9250
    003a9180str x30, [sp-144]!
    003a9184stur x29, [sp-8]
    003a9188sub x29, sp, 8
    003a918cstr x0, [sp+152]
    003a9190str x1, [sp+160]
    003a9194ldrsb x27, [x0]
    003a9198ldp x4, x5, [x0]
    003a919cldp x6, x7, [x0+16]
    003a91a0ldp x8, x9, [x0+32]
    003a91a4stp x4, x5, [sp+48]
    003a91a8stp x6, x7, [sp+64]
    003a91acstp x8, x9, [sp+80]
    003a91b0ldr x4, [x0+48]
    003a91b4str x4, [sp+96]
    003a91b8ldr x4, [sp+152]
    003a91bcldrsb x27, [x4]
    003a91c0ldr x4, [x4+72]
    003a91c4subs xzr, x4, 0
    003a91c8b.gt 0x3a91d0
    003a91ccb 0x3a9224
    003a91d0
    003a91d0loc_3a91d0:
    003a91d0ldr x4, [sp+152]
    003a91d4ldrsb x27, [x4]
    003a91d8ldr x1, [x4+72]
    003a91dcstr x1, [sp+104]
    003a91e0ldr x4, [sp+152]
    003a91e4ldrsb x27, [x4]
    003a91e8add x4, x4, 56
    003a91ecldrsb x27, [x4]
    003a91f0subs xzr, x1, 16
    003a91f4b.ls 0x3a91fc
    003a91f8b 0x3a9244
    003a91fc
    003a91fcloc_3a91fc:
    003a91fcb 0x3a9200
    003a9200
    003a9200loc_3a9200:
    003a9200str x4, [sp+112]
    003a9204str x1, [sp+120]
    003a9208orr x3, xzr, 16
    003a920cstr x3, [sp+128]
    003a9210add x0, sp, 48
    003a9214mov x2, x1
    003a9218mov x1, x4
    003a921cbl golang.org/x/crypto/internal/poly1305.updateGeneric
    003a9220b 0x3a9228
    003a9224
    003a9224loc_3a9224:
    003a9224b 0x3a9228
    003a9228
    003a9228loc_3a9228:
    003a9228ldr x0, [sp+160]
    003a922cadd x1, sp, 48
    003a9230add x2, sp, 88
    003a9234bl golang.org/x/crypto/internal/poly1305.finalize
    003a9238ldur x29, [sp-8]
    003a923cldr x30, [sp], 144
    003a9240ret x30
    003a9244
    003a9244loc_3a9244:
    003a9244orr x2, xzr, 16
    003a9248bl runtime.panicSliceAlen
    003a924chint
    003a9250
    003a9250loc_3a9250:
    003a9250stp x0, x1, [sp+8]
    003a9254mov x3, x30
    003a9258bl runtime.morestack_noctxt.abi0
    003a925cldp x0, x1, [sp+8]
    003a9260b 0x3a9170
    003a9264udf 0
    003a9268udf 0
    003a926cudf 0
    003a9170
    003a9270
    003a9270golang.org/x/crypto/internal/poly1305.initialize: ; void golang.org/x/crypto/internal/poly1305.initialize(uint8[32] * key, golang.org/x/crypto/internal/poly1305.macState * m)
    003a9270ldr x16, [x28+16]
    003a9274subs xzr, sp, x16
    003a9278b.ls 0x3a9394
    003a927cstr x30, [sp-80]!
    003a9280stur x29, [sp-8]
    003a9284sub x29, sp, 8
    003a9288str x0, [sp+88]
    003a928cstr x1, [sp+96]
    003a9290ldrsb x27, [x0]
    003a9294b 0x3a9298
    003a9298
    003a9298loc_3a9298:
    003a9298b 0x3a929c
    003a929c
    003a929cloc_3a929c:
    003a929cstr x0, [sp+48]
    003a92a0orr x1, xzr, 8
    003a92a4str x1, [sp+56]
    003a92a8orr x2, xzr, 32
    003a92acstr x2, [sp+64]
    003a92b0bl encoding/binary.littleEndian.Uint64
    003a92b4str x0, [sp+40]
    003a92b8ldr x3, [sp+96]
    003a92bcldrsb x27, [x3]
    003a92c0movn x4, 0xf0000000
    003a92c4movk x4, 0xfffc00000000
    003a92c8movk x4, 0xfff000000000000
    003a92ccand x4, x0, x4
    003a92d0str x4, [x3+24]
    003a92d4ldr x3, [sp+88]
    003a92d8ldrsb x27, [x3]
    003a92dcb 0x3a92e0
    003a92e0
    003a92e0loc_3a92e0:
    003a92e0b 0x3a92e4
    003a92e4
    003a92e4loc_3a92e4:
    003a92e4add x0, x3, 8
    003a92e8str x0, [sp+48]
    003a92ecorr x1, xzr, 8
    003a92f0str x1, [sp+56]
    003a92f4orr x2, xzr, 24
    003a92f8str x2, [sp+64]
    003a92fcbl encoding/binary.littleEndian.Uint64
    003a9300str x0, [sp+40]
    003a9304ldr x3, [sp+96]
    003a9308ldrsb x27, [x3]
    003a930cand x4, x0, 0xffffffc0ffffffc
    003a9310str x4, [x3+32]
    003a9314ldr x3, [sp+88]
    003a9318ldrsb x27, [x3]
    003a931cb 0x3a9320
    003a9320
    003a9320loc_3a9320:
    003a9320b 0x3a9324
    003a9324
    003a9324loc_3a9324:
    003a9324add x0, x3, 16
    003a9328str x0, [sp+48]
    003a932corr x1, xzr, 8
    003a9330str x1, [sp+56]
    003a9334orr x2, xzr, 16
    003a9338str x2, [sp+64]
    003a933cbl encoding/binary.littleEndian.Uint64
    003a9340str x0, [sp+40]
    003a9344ldr x3, [sp+96]
    003a9348ldrsb x27, [x3]
    003a934cstr x0, [x3+40]
    003a9350ldr x3, [sp+88]
    003a9354ldrsb x27, [x3]
    003a9358b 0x3a935c
    003a935c
    003a935cloc_3a935c:
    003a935cadd x0, x3, 24
    003a9360str x0, [sp+48]
    003a9364orr x2, xzr, 8
    003a9368str x2, [sp+56]
    003a936cstr x2, [sp+64]
    003a9370mov x1, x2
    003a9374bl encoding/binary.littleEndian.Uint64
    003a9378str x0, [sp+40]
    003a937cldr x3, [sp+96]
    003a9380ldrsb x27, [x3]
    003a9384str x0, [x3+48]
    003a9388ldur x29, [sp-8]
    003a938cldr x30, [sp], 80
    003a9390ret x30
    003a9394
    003a9394loc_3a9394:
    003a9394stp x0, x1, [sp+8]
    003a9398mov x3, x30
    003a939cbl runtime.morestack_noctxt.abi0
    003a93a0ldp x0, x1, [sp+8]
    003a93a4b 0x3a9270
    003a93a8udf 0
    003a93acudf 0
    003a9270
    003a93b0
    003a93b0golang.org/x/crypto/internal/poly1305.mul64: ; void golang.org/x/crypto/internal/poly1305.mul64(uint64 a, uint64 b)
    003a93b0ldr x16, [x28+16]
    003a93b4subs xzr, sp, x16
    003a93b8b.ls 0x3a9414
    003a93bcstr x30, [sp-96]!
    003a93c0stur x29, [sp-8]
    003a93c4sub x29, sp, 8
    003a93c8str x0, [sp+104]
    003a93ccstr x1, [sp+112]
    003a93d0stp xzr, xzr, [sp+24]
    003a93d4bl golang.org/x/crypto/internal/poly1305.bitsMul64
    003a93d8str x0, [sp+64]
    003a93dcstr x1, [sp+56]
    003a93e0str x0, [sp+80]
    003a93e4str x1, [sp+72]
    003a93e8str x0, [sp+48]
    003a93ecstr x1, [sp+40]
    003a93f0stp xzr, xzr, [sp+24]
    003a93f4str x1, [sp+24]
    003a93f8ldr x2, [sp+48]
    003a93fcstr x2, [sp+32]
    003a9400mov x0, x1
    003a9404mov x1, x2
    003a9408ldur x29, [sp-8]
    003a940cldr x30, [sp], 96
    003a9410ret x30
    003a9414
    003a9414loc_3a9414:
    003a9414stp x0, x1, [sp+8]
    003a9418mov x3, x30
    003a941cbl runtime.morestack_noctxt.abi0
    003a9420ldp x0, x1, [sp+8]
    003a9424b 0x3a93b0
    003a9428udf 0
    003a942cudf 0
    003a93b0
    003a9430
    003a9430golang.org/x/crypto/internal/poly1305.add128: ; void golang.org/x/crypto/internal/poly1305.add128(golang.org/x/crypto/internal/poly1305.uint128 a, golang.org/x/crypto/internal/poly1305.uint128 b)
    003a9430ldr x16, [x28+16]
    003a9434subs xzr, sp, x16
    003a9438b.ls 0x3a94f0
    003a943cstr x30, [sp-128]!
    003a9440stur x29, [sp-8]
    003a9444sub x29, sp, 8
    003a9448str x0, [sp+136]
    003a944cstr x1, [sp+144]
    003a9450str x2, [sp+152]
    003a9454str x3, [sp+160]
    003a9458stp xzr, xzr, [sp+32]
    003a945cldr x0, [sp+136]
    003a9460mov x1, x2
    003a9464mov x2, xzr
    003a9468bl golang.org/x/crypto/internal/poly1305.bitsAdd64
    003a946cstr x0, [sp+112]
    003a9470str x1, [sp+104]
    003a9474str x0, [sp+96]
    003a9478str x1, [sp+88]
    003a947cstr x0, [sp+48]
    003a9480str x1, [sp+64]
    003a9484ldr x0, [sp+144]
    003a9488ldr x3, [sp+160]
    003a948cmov x2, x1
    003a9490mov x1, x3
    003a9494bl golang.org/x/crypto/internal/poly1305.bitsAdd64
    003a9498str x0, [sp+104]
    003a949cstr x1, [sp+112]
    003a94a0str x0, [sp+80]
    003a94a4str x1, [sp+72]
    003a94a8str x0, [sp+56]
    003a94acstr x1, [sp+64]
    003a94b0cbnz x1, 0x3a94d8
    003a94b4b 0x3a94b8
    003a94b8
    003a94b8loc_3a94b8:
    003a94b8stp xzr, xzr, [sp+32]
    003a94bcldr x0, [sp+48]
    003a94c0str x0, [sp+32]
    003a94c4ldr x1, [sp+56]
    003a94c8str x1, [sp+40]
    003a94ccldur x29, [sp-8]
    003a94d0ldr x30, [sp], 128
    003a94d4ret x30
    003a94d8
    003a94d8loc_3a94d8:
    003a94d8adrp x0, 0x24c000
    003a94dcadd x0, x0, 2944
    003a94e0adrp x1, 0x369000
    003a94e4add x1, x1, 3552
    003a94e8bl runtime.gopanic
    003a94echint
    003a94f0
    003a94f0loc_3a94f0:
    003a94f0stp x0, x1, [sp+8]
    003a94f4stp x2, x3, [sp+24]
    003a94f8mov x3, x30
    003a94fcbl runtime.morestack_noctxt.abi0
    003a9500ldp x0, x1, [sp+8]
    003a9504ldp x2, x3, [sp+24]
    003a9508b 0x3a9430
    003a950cudf 0
    003a9430
    003a9510
    003a9510golang.org/x/crypto/internal/poly1305.shiftRightBy2: ; void golang.org/x/crypto/internal/poly1305.shiftRightBy2(golang.org/x/crypto/internal/poly1305.uint128 a)
    003a9510str x30, [sp-32]!
    003a9514stur x29, [sp-8]
    003a9518sub x29, sp, 8
    003a951cstr x0, [sp+40]
    003a9520str x1, [sp+48]
    003a9524stp xzr, xzr, [sp+8]
    003a9528and x2, x1, 3
    003a952cextr x0, x2, x0, 2
    003a9530str x0, [sp+40]
    003a9534ubfm x1, x1, 2, 63
    003a9538str x1, [sp+48]
    003a953cstr x0, [sp+8]
    003a9540str x1, [sp+16]
    003a9544add x29, sp, 24
    003a9548add sp, sp, 32
    003a954cret x30
    003a9510
    003a9550
    003a9550golang.org/x/crypto/internal/poly1305.updateGeneric: ; void golang.org/x/crypto/internal/poly1305.updateGeneric(golang.org/x/crypto/internal/poly1305.macState * state, struct []uint8 msg)
    003a9550ldr x16, [x28+16]
    003a9554sub x17, sp, 496
    003a9558subs xzr, x17, x16
    003a955cb.ls 0x3a9b94
    003a9560sub x20, sp, 624
    003a9564stp x29, x30, [x20-8]
    003a9568add sp, x20, 0
    003a956csub x29, sp, 8
    003a9570str x0, [sp+632]
    003a9574str x1, [sp+640]
    003a9578str x2, [sp+648]
    003a957cstr x3, [sp+656]
    003a9580ldrsb x27, [x0]
    003a9584ldr x3, [x0]
    003a9588str x3, [sp+280]
    003a958cldrsb x27, [x0]
    003a9590ldr x3, [x0+8]
    003a9594str x3, [sp+240]
    003a9598ldrsb x27, [x0]
    003a959cldr x3, [x0+16]
    003a95a0str x3, [sp+200]
    003a95a4ldr x3, [sp+632]
    003a95a8ldrsb x27, [x3]
    003a95acldr x3, [x3+24]
    003a95b0str x3, [sp+96]
    003a95b4ldr x3, [sp+632]
    003a95b8ldrsb x27, [x3]
    003a95bcldr x3, [x3+32]
    003a95c0str x3, [sp+88]
    003a95c4b 0x3a95c8
    003a95c8
    003a95c8loc_3a95c8:
    003a95c8ldr x3, [sp+648]
    003a95ccstr x3, [sp+376]
    003a95d0cbnz x3, 0x3a95d8
    003a95d4b 0x3a9b0c
    003a95d8
    003a95d8loc_3a95d8:
    003a95d8str xzr, [sp+304]
    003a95dcldr x3, [sp+648]
    003a95e0str x3, [sp+368]
    003a95e4subs xzr, x3, 16
    003a95e8b.ge 0x3a95f0
    003a95ecb 0x3a9710
    003a95f0
    003a95f0loc_3a95f0:
    003a95f0ldr x2, [sp+656]
    003a95f4ldr x0, [sp+640]
    003a95f8subs xzr, x2, 8
    003a95fcb.hs 0x3a9604
    003a9600b 0x3a9b88
    003a9604
    003a9604loc_3a9604:
    003a9604b 0x3a9608
    003a9608
    003a9608loc_3a9608:
    003a9608str x0, [sp+592]
    003a960corr x1, xzr, 8
    003a9610str x1, [sp+600]
    003a9614str x2, [sp+608]
    003a9618bl encoding/binary.littleEndian.Uint64
    003a961cstr x0, [sp+360]
    003a9620ldr x3, [sp+280]
    003a9624mov x1, x0
    003a9628mov x2, xzr
    003a962cmov x0, x3
    003a9630bl golang.org/x/crypto/internal/poly1305.bitsAdd64
    003a9634str x0, [sp+352]
    003a9638str x1, [sp+344]
    003a963cstr x0, [sp+320]
    003a9640str x1, [sp+312]
    003a9644str x0, [sp+280]
    003a9648str x1, [sp+304]
    003a964cldr x2, [sp+656]
    003a9650ldr x3, [sp+640]
    003a9654subs xzr, x2, 16
    003a9658b.hs 0x3a9660
    003a965cb 0x3a9b80
    003a9660
    003a9660loc_3a9660:
    003a9660b 0x3a9664
    003a9664
    003a9664loc_3a9664:
    003a9664sub x2, x2, 8
    003a9668sub x4, xzr, x2
    003a966csbfm x4, x4, 63, 63
    003a9670and x4, x4, 8
    003a9674add x0, x3, x4
    003a9678str x0, [sp+592]
    003a967corr x1, xzr, 8
    003a9680str x1, [sp+600]
    003a9684str x2, [sp+608]
    003a9688bl encoding/binary.littleEndian.Uint64
    003a968cstr x0, [sp+344]
    003a9690ldr x3, [sp+240]
    003a9694ldr x2, [sp+304]
    003a9698mov x1, x0
    003a969cmov x0, x3
    003a96a0bl golang.org/x/crypto/internal/poly1305.bitsAdd64
    003a96a4str x0, [sp+352]
    003a96a8str x1, [sp+360]
    003a96acstr x0, [sp+536]
    003a96b0str x1, [sp+528]
    003a96b4str x0, [sp+240]
    003a96b8str x1, [sp+304]
    003a96bcldr x3, [sp+200]
    003a96c0add x3, x1, x3
    003a96c4add x3, x3, 1
    003a96c8str x3, [sp+200]
    003a96ccldr x1, [sp+648]
    003a96d0ldr x3, [sp+640]
    003a96d4ldr x4, [sp+656]
    003a96d8b 0x3a96dc
    003a96dc
    003a96dcloc_3a96dc:
    003a96dcsubs xzr, x1, 16
    003a96e0b.hs 0x3a96e8
    003a96e4b 0x3a9b78
    003a96e8
    003a96e8loc_3a96e8:
    003a96e8sub x2, x4, 16
    003a96ecsub x4, xzr, x2
    003a96f0sub x5, x1, 16
    003a96f4sbfm x4, x4, 63, 63
    003a96f8and x4, x4, 16
    003a96fcadd x3, x3, x4
    003a9700str x3, [sp+640]
    003a9704str x5, [sp+648]
    003a9708str x2, [sp+656]
    003a970cb 0x3a9894
    003a9710
    003a9710loc_3a9710:
    003a9710stp xzr, xzr, [sp+40]
    003a9714add x3, sp, 40
    003a9718ldrsb x27, [x3]
    003a971cb 0x3a9720
    003a9720
    003a9720loc_3a9720:
    003a9720str x3, [sp+592]
    003a9724orr x1, xzr, 16
    003a9728str x1, [sp+600]
    003a972cstr x1, [sp+608]
    003a9730str x3, [sp+568]
    003a9734str x1, [sp+576]
    003a9738str x1, [sp+584]
    003a973cldr x3, [sp+648]
    003a9740ldr x4, [sp+640]
    003a9744ldr x5, [sp+656]
    003a9748str x4, [sp+544]
    003a974cstr x3, [sp+552]
    003a9750str x5, [sp+560]
    003a9754ldr x4, [sp+576]
    003a9758str x4, [sp+336]
    003a975csubs xzr, x3, x4
    003a9760b.lt 0x3a9768
    003a9764b 0x3a9770
    003a9768
    003a9768loc_3a9768:
    003a9768str x3, [sp+336]
    003a976cb 0x3a9774
    003a9770
    003a9770loc_3a9770:
    003a9770b 0x3a9774
    003a9774
    003a9774loc_3a9774:
    003a9774ldr x3, [sp+568]
    003a9778ldr x4, [sp+544]
    003a977csubs xzr, x3, x4
    003a9780b.ne 0x3a9788
    003a9784b 0x3a97a4
    003a9788
    003a9788loc_3a9788:
    003a9788ldr x3, [sp+336]
    003a978cstr x3, [sp+328]
    003a9790ldr x2, [sp+328]
    003a9794ldr x0, [sp+568]
    003a9798ldr x1, [sp+544]
    003a979cbl runtime.memmove
    003a97a0b 0x3a97a8
    003a97a4
    003a97a4loc_3a97a4:
    003a97a4b 0x3a97a8
    003a97a8
    003a97a8loc_3a97a8:
    003a97a8ldr x0, [sp+648]
    003a97acstr x0, [sp+368]
    003a97b0subs xzr, x0, 16
    003a97b4b.lo 0x3a97bc
    003a97b8b 0x3a9b70
    003a97bc
    003a97bcloc_3a97bc:
    003a97bcorr x3, xzr, 1
    003a97c0add x4, sp, 40
    003a97c4strb w3, [x4+x0]
    003a97c8add x0, sp, 40
    003a97ccldrsb x27, [x0]
    003a97d0b 0x3a97d4
    003a97d4
    003a97d4loc_3a97d4:
    003a97d4b 0x3a97d8
    003a97d8
    003a97d8loc_3a97d8:
    003a97d8str x0, [sp+592]
    003a97dcorr x1, xzr, 8
    003a97e0str x1, [sp+600]
    003a97e4orr x2, xzr, 16
    003a97e8str x2, [sp+608]
    003a97ecbl encoding/binary.littleEndian.Uint64
    003a97f0str x0, [sp+360]
    003a97f4ldr x3, [sp+280]
    003a97f8mov x1, x0
    003a97fcmov x2, xzr
    003a9800mov x0, x3
    003a9804bl golang.org/x/crypto/internal/poly1305.bitsAdd64
    003a9808str x0, [sp+352]
    003a980cstr x1, [sp+344]
    003a9810str x0, [sp+520]
    003a9814str x1, [sp+512]
    003a9818str x0, [sp+280]
    003a981cstr x1, [sp+304]
    003a9820add x3, sp, 40
    003a9824ldrsb x27, [x3]
    003a9828b 0x3a982c
    003a982c
    003a982cloc_3a982c:
    003a982cadd x0, x3, 8
    003a9830str x0, [sp+592]
    003a9834orr x2, xzr, 8
    003a9838str x2, [sp+600]
    003a983cstr x2, [sp+608]
    003a9840mov x1, x2
    003a9844bl encoding/binary.littleEndian.Uint64
    003a9848str x0, [sp+344]
    003a984cldr x3, [sp+240]
    003a9850ldr x2, [sp+304]
    003a9854mov x1, x0
    003a9858mov x0, x3
    003a985cbl golang.org/x/crypto/internal/poly1305.bitsAdd64
    003a9860str x0, [sp+352]
    003a9864str x1, [sp+360]
    003a9868str x0, [sp+504]
    003a986cstr x1, [sp+496]
    003a9870str x0, [sp+240]
    003a9874str x1, [sp+304]
    003a9878ldr x3, [sp+200]
    003a987cadd x3, x3, x1
    003a9880str x3, [sp+200]
    003a9884str xzr, [sp+640]
    003a9888add x27, sp, 648
    003a988cstp xzr, xzr, [x27]
    003a9890b 0x3a9894
    003a9894
    003a9894loc_3a9894:
    003a9894ldr x1, [sp+96]
    003a9898ldr x0, [sp+280]
    003a989cbl golang.org/x/crypto/internal/poly1305.mul64
    003a98a0str x0, [sp+264]
    003a98a4str x1, [sp+272]
    003a98a8ldr x1, [sp+96]
    003a98acldr x0, [sp+240]
    003a98b0bl golang.org/x/crypto/internal/poly1305.mul64
    003a98b4str x0, [sp+224]
    003a98b8str x1, [sp+232]
    003a98bcldr x1, [sp+96]
    003a98c0ldr x0, [sp+200]
    003a98c4bl golang.org/x/crypto/internal/poly1305.mul64
    003a98c8str x0, [sp+184]
    003a98ccstr x1, [sp+192]
    003a98d0ldr x1, [sp+88]
    003a98d4ldr x0, [sp+280]
    003a98d8bl golang.org/x/crypto/internal/poly1305.mul64
    003a98dcstr x0, [sp+248]
    003a98e0str x1, [sp+256]
    003a98e4ldr x1, [sp+88]
    003a98e8ldr x0, [sp+240]
    003a98ecbl golang.org/x/crypto/internal/poly1305.mul64
    003a98f0str x0, [sp+208]
    003a98f4str x1, [sp+216]
    003a98f8ldr x1, [sp+88]
    003a98fcldr x0, [sp+200]
    003a9900bl golang.org/x/crypto/internal/poly1305.mul64
    003a9904str x0, [sp+168]
    003a9908str x1, [sp+176]
    003a990cldr x2, [sp+192]
    003a9910cbnz x2, 0x3a9b5c
    003a9914b 0x3a9918
    003a9918
    003a9918loc_3a9918:
    003a9918cbnz x1, 0x3a9b48
    003a991cb 0x3a9920
    003a9920
    003a9920loc_3a9920:
    003a9920ldr x4, [sp+264]
    003a9924ldr x5, [sp+272]
    003a9928str x4, [sp+152]
    003a992cstr x5, [sp+160]
    003a9930ldr x0, [sp+224]
    003a9934ldr x2, [sp+248]
    003a9938ldr x1, [sp+232]
    003a993cldr x3, [sp+256]
    003a9940bl golang.org/x/crypto/internal/poly1305.add128
    003a9944str x0, [sp+136]
    003a9948str x1, [sp+144]
    003a994cldr x0, [sp+184]
    003a9950ldr x2, [sp+208]
    003a9954ldr x1, [sp+192]
    003a9958ldr x3, [sp+216]
    003a995cbl golang.org/x/crypto/internal/poly1305.add128
    003a9960str x0, [sp+120]
    003a9964str x1, [sp+128]
    003a9968ldr x4, [sp+168]
    003a996cldr x5, [sp+176]
    003a9970str x4, [sp+104]
    003a9974str x5, [sp+112]
    003a9978ldr x4, [sp+152]
    003a997cstr x4, [sp+80]
    003a9980ldr x0, [sp+136]
    003a9984ldr x1, [sp+160]
    003a9988mov x2, xzr
    003a998cbl golang.org/x/crypto/internal/poly1305.bitsAdd64
    003a9990str x0, [sp+360]
    003a9994str x1, [sp+352]
    003a9998str x0, [sp+488]
    003a999cstr x1, [sp+480]
    003a99a0str x0, [sp+72]
    003a99a4str x1, [sp+304]
    003a99a8ldr x0, [sp+120]
    003a99acldr x4, [sp+144]
    003a99b0mov x2, x1
    003a99b4mov x1, x4
    003a99b8bl golang.org/x/crypto/internal/poly1305.bitsAdd64
    003a99bcstr x0, [sp+352]
    003a99c0str x1, [sp+360]
    003a99c4str x0, [sp+472]
    003a99c8str x1, [sp+464]
    003a99ccstr x0, [sp+64]
    003a99d0str x1, [sp+304]
    003a99d4ldr x0, [sp+104]
    003a99d8ldr x4, [sp+128]
    003a99dcmov x2, x1
    003a99e0mov x1, x4
    003a99e4bl golang.org/x/crypto/internal/poly1305.bitsAdd64
    003a99e8str x0, [sp+360]
    003a99ecstr x1, [sp+352]
    003a99f0str x0, [sp+456]
    003a99f4str x1, [sp+448]
    003a99f8str x0, [sp+56]
    003a99fcldr x4, [sp+80]
    003a9a00str x4, [sp+280]
    003a9a04ldr x4, [sp+72]
    003a9a08str x4, [sp+240]
    003a9a0cldr x4, [sp+64]
    003a9a10and x4, x4, 3
    003a9a14str x4, [sp+200]
    003a9a18stp xzr, xzr, [sp+288]
    003a9a1cldr x4, [sp+64]
    003a9a20and x1, x4, -4
    003a9a24str x1, [sp+288]
    003a9a28ldr x4, [sp+56]
    003a9a2cstr x4, [sp+296]
    003a9a30ldr x0, [sp+280]
    003a9a34mov x2, xzr
    003a9a38bl golang.org/x/crypto/internal/poly1305.bitsAdd64
    003a9a3cstr x0, [sp+352]
    003a9a40str x1, [sp+360]
    003a9a44str x0, [sp+440]
    003a9a48str x1, [sp+432]
    003a9a4cstr x0, [sp+280]
    003a9a50str x1, [sp+304]
    003a9a54ldr x0, [sp+240]
    003a9a58ldr x4, [sp+296]
    003a9a5cmov x2, x1
    003a9a60mov x1, x4
    003a9a64bl golang.org/x/crypto/internal/poly1305.bitsAdd64
    003a9a68str x0, [sp+360]
    003a9a6cstr x1, [sp+352]
    003a9a70str x0, [sp+424]
    003a9a74str x1, [sp+416]
    003a9a78str x0, [sp+240]
    003a9a7cstr x1, [sp+304]
    003a9a80ldr x4, [sp+200]
    003a9a84add x4, x4, x1
    003a9a88str x4, [sp+200]
    003a9a8cldr x0, [sp+288]
    003a9a90ldr x1, [sp+296]
    003a9a94bl golang.org/x/crypto/internal/poly1305.shiftRightBy2
    003a9a98str x0, [sp+288]
    003a9a9cstr x1, [sp+296]
    003a9aa0ldr x4, [sp+280]
    003a9aa4mov x1, x0
    003a9aa8mov x2, xzr
    003a9aacmov x0, x4
    003a9ab0bl golang.org/x/crypto/internal/poly1305.bitsAdd64
    003a9ab4str x0, [sp+352]
    003a9ab8str x1, [sp+360]
    003a9abcstr x0, [sp+408]
    003a9ac0str x1, [sp+400]
    003a9ac4str x0, [sp+280]
    003a9ac8str x1, [sp+304]
    003a9accldr x0, [sp+240]
    003a9ad0ldr x4, [sp+296]
    003a9ad4mov x2, x1
    003a9ad8mov x1, x4
    003a9adcbl golang.org/x/crypto/internal/poly1305.bitsAdd64
    003a9ae0str x0, [sp+360]
    003a9ae4str x1, [sp+352]
    003a9ae8str x0, [sp+392]
    003a9aecstr x1, [sp+384]
    003a9af0str x0, [sp+240]
    003a9af4str x1, [sp+304]
    003a9af8ldr x4, [sp+200]
    003a9afcadd x4, x4, x1
    003a9b00str x4, [sp+200]
    003a9b04b 0x3a9b08
    003a9b08
    003a9b08loc_3a9b08:
    003a9b08b 0x3a95c8
    003a9b0c
    003a9b0cloc_3a9b0c:
    003a9b0cldr x0, [sp+632]
    003a9b10ldrsb x27, [x0]
    003a9b14ldr x1, [sp+280]
    003a9b18str x1, [x0]
    003a9b1cldr x0, [sp+632]
    003a9b20ldrsb x27, [x0]
    003a9b24ldr x1, [sp+240]
    003a9b28str x1, [x0+8]
    003a9b2cldr x0, [sp+632]
    003a9b30ldrsb x27, [x0]
    003a9b34ldr x1, [sp+200]
    003a9b38str x1, [x0+16]
    003a9b3cldp x29, x30, [sp-8]
    003a9b40add sp, sp, 624
    003a9b44ret x30
    003a9b48
    003a9b48loc_3a9b48:
    003a9b48adrp x0, 0x24c000
    003a9b4cadd x0, x0, 2944
    003a9b50adrp x1, 0x369000
    003a9b54add x1, x1, 3552
    003a9b58bl runtime.gopanic
    003a9b5c
    003a9b5cloc_3a9b5c:
    003a9b5cadrp x0, 0x24c000
    003a9b60add x0, x0, 2944
    003a9b64adrp x1, 0x369000
    003a9b68add x1, x1, 3552
    003a9b6cbl runtime.gopanic
    003a9b70
    003a9b70loc_3a9b70:
    003a9b70orr x1, xzr, 16
    003a9b74bl runtime.panicIndex
    003a9b78
    003a9b78loc_3a9b78:
    003a9b78orr x0, xzr, 16
    003a9b7cbl runtime.panicSliceB
    003a9b80
    003a9b80loc_3a9b80:
    003a9b80orr x1, xzr, 16
    003a9b84bl runtime.panicSliceAcap
    003a9b88
    003a9b88loc_3a9b88:
    003a9b88orr x1, xzr, 8
    003a9b8cbl runtime.panicSliceAcap
    003a9b90hint
    003a9b94
    003a9b94loc_3a9b94:
    003a9b94stp x0, x1, [sp+8]
    003a9b98stp x2, x3, [sp+24]
    003a9b9cmov x3, x30
    003a9ba0bl runtime.morestack_noctxt.abi0
    003a9ba4ldp x0, x1, [sp+8]
    003a9ba8ldp x2, x3, [sp+24]
    003a9bacb 0x3a9550
    003a9550
    003a9bb0
    003a9bb0golang.org/x/crypto/internal/poly1305.select64: ; void golang.org/x/crypto/internal/poly1305.select64(uint64 v, uint64 x, uint64 y)
    003a9bb0str x30, [sp-32]!
    003a9bb4stur x29, [sp-8]
    003a9bb8sub x29, sp, 8
    003a9bbcstr x0, [sp+40]
    003a9bc0str x1, [sp+48]
    003a9bc4str x2, [sp+56]
    003a9bc8str xzr, [sp+16]
    003a9bccsub x3, xzr, x0
    003a9bd0and x1, x3, x1
    003a9bd4sub x3, x0, 1
    003a9bd8and x2, x3, x2
    003a9bdcorr x0, x1, x2
    003a9be0str x0, [sp+16]
    003a9be4add x29, sp, 24
    003a9be8add sp, sp, 32
    003a9becret x30
    003a9bb0
    003a9bf0
    003a9bf0golang.org/x/crypto/internal/poly1305.finalize: ; void golang.org/x/crypto/internal/poly1305.finalize(uint8[16] * out, uint64[3] * h, uint64[2] * s)
    003a9bf0ldr x16, [x28+16]
    003a9bf4sub x17, sp, 112
    003a9bf8subs xzr, x17, x16
    003a9bfcb.ls 0x3a9da4
    003a9c00str x30, [sp-240]!
    003a9c04stur x29, [sp-8]
    003a9c08sub x29, sp, 8
    003a9c0cstr x0, [sp+248]
    003a9c10str x1, [sp+256]
    003a9c14str x2, [sp+264]
    003a9c18ldrsb x27, [x1]
    003a9c1cldr x0, [x1]
    003a9c20str x0, [sp+72]
    003a9c24ldrsb x27, [x1]
    003a9c28ldr x3, [x1+8]
    003a9c2cstr x3, [sp+64]
    003a9c30ldrsb x27, [x1]
    003a9c34ldr x3, [x1+16]
    003a9c38str x3, [sp+56]
    003a9c3cmovn x1, 4
    003a9c40mov x2, xzr
    003a9c44bl golang.org/x/crypto/internal/poly1305.bitsSub64
    003a9c48str x0, [sp+136]
    003a9c4cstr x1, [sp+128]
    003a9c50str x0, [sp+104]
    003a9c54str x1, [sp+96]
    003a9c58str x0, [sp+48]
    003a9c5cstr x1, [sp+88]
    003a9c60ldr x0, [sp+64]
    003a9c64mov x2, x1
    003a9c68movn x1, 0
    003a9c6cbl golang.org/x/crypto/internal/poly1305.bitsSub64
    003a9c70str x0, [sp+128]
    003a9c74str x1, [sp+136]
    003a9c78str x0, [sp+200]
    003a9c7cstr x1, [sp+192]
    003a9c80str x0, [sp+40]
    003a9c84str x1, [sp+88]
    003a9c88ldr x0, [sp+56]
    003a9c8cmov x2, x1
    003a9c90orr x1, xzr, 3
    003a9c94bl golang.org/x/crypto/internal/poly1305.bitsSub64
    003a9c98str x0, [sp+136]
    003a9c9cstr x1, [sp+128]
    003a9ca0str x0, [sp+184]
    003a9ca4str x1, [sp+176]
    003a9ca8str x1, [sp+88]
    003a9cacldr x3, [sp+72]
    003a9cb0ldr x2, [sp+48]
    003a9cb4mov x0, x1
    003a9cb8mov x1, x3
    003a9cbcbl golang.org/x/crypto/internal/poly1305.select64
    003a9cc0str x0, [sp+72]
    003a9cc4ldr x1, [sp+64]
    003a9cc8ldr x2, [sp+40]
    003a9cccldr x0, [sp+88]
    003a9cd0bl golang.org/x/crypto/internal/poly1305.select64
    003a9cd4str x0, [sp+64]
    003a9cd8ldr x3, [sp+264]
    003a9cdcldrsb x27, [x3]
    003a9ce0ldr x1, [x3]
    003a9ce4str x1, [sp+120]
    003a9ce8ldr x0, [sp+72]
    003a9cecmov x2, xzr
    003a9cf0bl golang.org/x/crypto/internal/poly1305.bitsAdd64
    003a9cf4str x0, [sp+128]
    003a9cf8str x1, [sp+136]
    003a9cfcstr x0, [sp+168]
    003a9d00str x1, [sp+160]
    003a9d04str x0, [sp+72]
    003a9d08str x1, [sp+80]
    003a9d0cldr x3, [sp+264]
    003a9d10ldrsb x27, [x3]
    003a9d14ldr x3, [x3+8]
    003a9d18str x3, [sp+112]
    003a9d1cldr x0, [sp+64]
    003a9d20mov x2, x1
    003a9d24mov x1, x3
    003a9d28bl golang.org/x/crypto/internal/poly1305.bitsAdd64
    003a9d2cstr x0, [sp+136]
    003a9d30str x1, [sp+128]
    003a9d34str x0, [sp+152]
    003a9d38str x1, [sp+144]
    003a9d3cstr x0, [sp+64]
    003a9d40ldr x0, [sp+248]
    003a9d44ldrsb x27, [x0]
    003a9d48b 0x3a9d4c
    003a9d4c
    003a9d4cloc_3a9d4c:
    003a9d4cb 0x3a9d50
    003a9d50
    003a9d50loc_3a9d50:
    003a9d50str x0, [sp+208]
    003a9d54orr x1, xzr, 8
    003a9d58str x1, [sp+216]
    003a9d5corr x2, xzr, 16
    003a9d60str x2, [sp+224]
    003a9d64ldr x3, [sp+72]
    003a9d68bl encoding/binary.littleEndian.PutUint64
    003a9d6cldr x4, [sp+248]
    003a9d70ldrsb x27, [x4]
    003a9d74b 0x3a9d78
    003a9d78
    003a9d78loc_3a9d78:
    003a9d78add x0, x4, 8
    003a9d7cstr x0, [sp+208]
    003a9d80orr x2, xzr, 8
    003a9d84str x2, [sp+216]
    003a9d88str x2, [sp+224]
    003a9d8cldr x3, [sp+64]
    003a9d90mov x1, x2
    003a9d94bl encoding/binary.littleEndian.PutUint64
    003a9d98ldur x29, [sp-8]
    003a9d9cldr x30, [sp], 240
    003a9da0ret x30
    003a9da4
    003a9da4loc_3a9da4:
    003a9da4stp x0, x1, [sp+8]
    003a9da8str x2, [sp+24]
    003a9dacmov x3, x30
    003a9db0bl runtime.morestack_noctxt.abi0
    003a9db4ldp x0, x1, [sp+8]
    003a9db8ldr x2, [sp+24]
    003a9dbcb 0x3a9bf0
    003a9bf0
    003a9dc0
    003a9dc0type:.eq.golang.org/x/crypto/internal/poly1305.MAC: ; void type:.eq.golang.org/x/crypto/internal/poly1305.MAC(golang.org/x/crypto/internal/poly1305.MAC * p, golang.org/x/crypto/internal/poly1305.MAC * q)
    003a9dc0ldr x16, [x28+16]
    003a9dc4subs xzr, sp, x16
    003a9dc8b.ls 0x3a9e14
    003a9dccstr x30, [sp-64]!
    003a9dd0stur x29, [sp-8]
    003a9dd4sub x29, sp, 8
    003a9dd8str x0, [sp+72]
    003a9ddcstr x1, [sp+80]
    003a9de0strb wzr, [sp+39]
    003a9de4ldr x3, [sp+72]
    003a9de8str x3, [sp+48]
    003a9decldr x1, [sp+80]
    003a9df0str x1, [sp+40]
    003a9df4ldr x0, [sp+48]
    003a9df8movz x2, 81
    003a9dfcbl runtime.memequal
    003a9e00strb w0, [sp+39]
    003a9e04b 0x3a9e08
    003a9e08
    003a9e08loc_3a9e08:
    003a9e08ldur x29, [sp-8]
    003a9e0cldr x30, [sp], 64
    003a9e10ret x30
    003a9e14
    003a9e14loc_3a9e14:
    003a9e14stp x0, x1, [sp+8]
    003a9e18mov x3, x30
    003a9e1cbl runtime.morestack_noctxt.abi0
    003a9e20ldp x0, x1, [sp+8]
    003a9e24b 0x3a9dc0
    003a9e28udf 0
    003a9e2cudf 0
    003a9dc0
    003a9e30
    003a9e30golang.org/x/crypto/chacha20poly1305.init: ; void golang.org/x/crypto/chacha20poly1305.init(void)
    003a9e30ldr x16, [x28+16]
    003a9e34subs xzr, sp, x16
    003a9e38b.ls 0x3a9ea0
    003a9e3cstr x30, [sp-32]!
    003a9e40stur x29, [sp-8]
    003a9e44sub x29, sp, 8
    003a9e48adrp x0, 0x31f000
    003a9e4cadd x0, x0, 230
    003a9e50movz x1, 47
    003a9e54bl errors.New
    003a9e58adrp x27, 0x678000
    003a9e5cstr x0, [x27+3920]
    003a9e60adrp x27, 0x6a2000
    003a9e64ldr w2, [x27+3056]
    003a9e68cbz w2, 0x3a9e70
    003a9e6cb 0x3a9e74
    003a9e70
    003a9e70loc_3a9e70:
    003a9e70b 0x3a9e8c
    003a9e74
    003a9e74loc_3a9e74:
    003a9e74bl runtime.gcWriteBarrier2
    003a9e78str x1, [x25]
    003a9e7cadrp x27, 0x678000
    003a9e80ldr x0, [x27+3928]
    003a9e84str x0, [x25+8]
    003a9e88b 0x3a9e8c
    003a9e8c
    003a9e8cloc_3a9e8c:
    003a9e8cadrp x27, 0x678000
    003a9e90str x1, [x27+3928]
    003a9e94ldur x29, [sp-8]
    003a9e98ldr x30, [sp], 32
    003a9e9cret x30
    003a9ea0
    003a9ea0loc_3a9ea0:
    003a9ea0mov x3, x30
    003a9ea4bl runtime.morestack_noctxt.abi0
    003a9ea8b 0x3a9e30
    003a9eacudf 0
    003a9e30
    003a9eb0
    003a9eb0golang.org/x/crypto/chacha20poly1305.New: ; void golang.org/x/crypto/chacha20poly1305.New(struct []uint8 key)
    003a9eb0ldr x16, [x28+16]
    003a9eb4sub x17, sp, 80
    003a9eb8subs xzr, x17, x16
    003a9ebcb.ls 0x3aa008
    003a9ec0str x30, [sp-208]!
    003a9ec4stur x29, [sp-8]
    003a9ec8sub x29, sp, 8
    003a9eccstr x0, [sp+216]
    003a9ed0str x1, [sp+224]
    003a9ed4str x2, [sp+232]
    003a9ed8stp xzr, xzr, [sp+80]
    003a9edcstp xzr, xzr, [sp+64]
    003a9ee0ldr x2, [sp+224]
    003a9ee4str x2, [sp+40]
    003a9ee8subs xzr, x2, 32
    003a9eecb.ne 0x3a9ef4
    003a9ef0b 0x3a9f34
    003a9ef4
    003a9ef4loc_3a9ef4:
    003a9ef4adrp x0, 0x315000
    003a9ef8add x0, x0, 3152
    003a9efcorr x1, xzr, 32
    003a9f00bl errors.New
    003a9f04str x0, [sp+184]
    003a9f08str x1, [sp+192]
    003a9f0cstp xzr, xzr, [sp+80]
    003a9f10ldr x2, [sp+184]
    003a9f14ldr x3, [sp+192]
    003a9f18str x2, [sp+64]
    003a9f1cstr x3, [sp+72]
    003a9f20ldr x0, [sp+80]
    003a9f24ldr x1, [sp+88]
    003a9f28ldur x29, [sp-8]
    003a9f2cldr x30, [sp], 208
    003a9f30ret x30
    003a9f34
    003a9f34loc_3a9f34:
    003a9f34adrp x0, 0x283000
    003a9f38add x0, x0, 3424
    003a9f3cbl runtime.newobject
    003a9f40str x0, [sp+96]
    003a9f44b 0x3a9f48
    003a9f48
    003a9f48loc_3a9f48:
    003a9f48str x0, [sp+160]
    003a9f4corr x4, xzr, 32
    003a9f50str x4, [sp+168]
    003a9f54str x4, [sp+176]
    003a9f58str x0, [sp+128]
    003a9f5cstr x4, [sp+136]
    003a9f60str x4, [sp+144]
    003a9f64ldr x4, [sp+224]
    003a9f68ldr x5, [sp+216]
    003a9f6cldr x6, [sp+232]
    003a9f70str x5, [sp+104]
    003a9f74str x4, [sp+112]
    003a9f78str x6, [sp+120]
    003a9f7cldr x5, [sp+136]
    003a9f80str x5, [sp+56]
    003a9f84subs xzr, x5, x4
    003a9f88b.gt 0x3a9f90
    003a9f8cb 0x3a9f98
    003a9f90
    003a9f90loc_3a9f90:
    003a9f90str x4, [sp+56]
    003a9f94b 0x3a9f9c
    003a9f98
    003a9f98loc_3a9f98:
    003a9f98b 0x3a9f9c
    003a9f9c
    003a9f9cloc_3a9f9c:
    003a9f9cldr x4, [sp+104]
    003a9fa0ldr x5, [sp+128]
    003a9fa4subs xzr, x4, x5
    003a9fa8b.ne 0x3a9fb0
    003a9facb 0x3a9fcc
    003a9fb0
    003a9fb0loc_3a9fb0:
    003a9fb0ldr x3, [sp+56]
    003a9fb4str x3, [sp+48]
    003a9fb8ldr x2, [sp+48]
    003a9fbcldr x1, [sp+104]
    003a9fc0ldr x0, [sp+128]
    003a9fc4bl runtime.memmove
    003a9fc8b 0x3a9fd0
    003a9fcc
    003a9fccloc_3a9fcc:
    003a9fccb 0x3a9fd0
    003a9fd0
    003a9fd0loc_3a9fd0:
    003a9fd0ldr x4, [sp+96]
    003a9fd4str x4, [sp+152]
    003a9fd8adrp x5, 0x370000
    003a9fdcadd x5, x5, 920
    003a9fe0str x5, [sp+80]
    003a9fe4str x4, [sp+88]
    003a9fe8stp xzr, xzr, [sp+64]
    003a9fecldr x0, [sp+80]
    003a9ff0ldr x1, [sp+88]
    003a9ff4mov x2, xzr
    003a9ff8mov x3, xzr
    003a9ffcldur x29, [sp-8]
    003aa000ldr x30, [sp], 208
    003aa004ret x30
    003aa008
    003aa008loc_3aa008:
    003aa008stp x0, x1, [sp+8]
    003aa00cstr x2, [sp+24]
    003aa010mov x3, x30
    003aa014bl runtime.morestack_noctxt.abi0
    003aa018ldp x0, x1, [sp+8]
    003aa01cldr x2, [sp+24]
    003aa020b 0x3a9eb0
    003aa024udf 0
    003aa028udf 0
    003aa02cudf 0
    003a9eb0
    003aa030
    003aa030golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).NonceSize: ; void golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).NonceSize(golang.org/x/crypto/chacha20poly1305.chacha20poly1305 * c)
    003aa030str x30, [sp-32]!
    003aa034stur x29, [sp-8]
    003aa038sub x29, sp, 8
    003aa03cstr x0, [sp+40]
    003aa040str xzr, [sp+16]
    003aa044orr x0, xzr, 12
    003aa048str x0, [sp+16]
    003aa04cadd x29, sp, 24
    003aa050add sp, sp, 32
    003aa054ret x30
    003aa058udf 0
    003aa05cudf 0
    003aa030
    003aa060
    003aa060golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).Overhead: ; void golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).Overhead(golang.org/x/crypto/chacha20poly1305.chacha20poly1305 * c)
    003aa060str x30, [sp-32]!
    003aa064stur x29, [sp-8]
    003aa068sub x29, sp, 8
    003aa06cstr x0, [sp+40]
    003aa070str xzr, [sp+16]
    003aa074orr x0, xzr, 16
    003aa078str x0, [sp+16]
    003aa07cadd x29, sp, 24
    003aa080add sp, sp, 32
    003aa084ret x30
    003aa088udf 0
    003aa08cudf 0
    003aa060
    003aa090
    003aa090golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).Seal: ; void golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).Seal(golang.org/x/crypto/chacha20poly1305.chacha20poly1305 * c, struct []uint8 dst, struct []uint8 nonce, struct []uint8 plaintext, struct []uint8 additionalData)
    003aa090ldr x16, [x28+16]
    003aa094sub x17, sp, 48
    003aa098subs xzr, x17, x16
    003aa09cb.ls 0x3aa19c
    003aa0a0str x30, [sp-176]!
    003aa0a4stur x29, [sp-8]
    003aa0a8sub x29, sp, 8
    003aa0acstr x0, [sp+184]
    003aa0b0str x1, [sp+192]
    003aa0b4str x2, [sp+200]
    003aa0b8str x3, [sp+208]
    003aa0bcstr x4, [sp+216]
    003aa0c0str x5, [sp+224]
    003aa0c4str x6, [sp+232]
    003aa0c8str x7, [sp+240]
    003aa0ccstr x8, [sp+248]
    003aa0d0str x9, [sp+256]
    003aa0d4str x10, [sp+264]
    003aa0d8str x11, [sp+272]
    003aa0dcstr x12, [sp+280]
    003aa0e0str xzr, [sp+120]
    003aa0e4stp xzr, xzr, [sp+128]
    003aa0e8ldr x13, [sp+224]
    003aa0ecstr x13, [sp+112]
    003aa0f0subs xzr, x13, 12
    003aa0f4b.ne 0x3aa184
    003aa0f8b 0x3aa0fc
    003aa0fc
    003aa0fcloc_3aa0fc:
    003aa0fcldr x13, [sp+248]
    003aa100str x13, [sp+112]
    003aa104orr x14, xzr, 0x3fffffffc0
    003aa108subs xzr, x13, x14
    003aa10cb.hi 0x3aa170
    003aa110b 0x3aa114
    003aa114
    003aa114loc_3aa114:
    003aa114ldr x1, [sp+192]
    003aa118ldr x4, [sp+216]
    003aa11cldr x7, [sp+240]
    003aa120ldr x10, [sp+264]
    003aa124ldr x2, [sp+200]
    003aa128ldr x5, [sp+224]
    003aa12cldr x8, [sp+248]
    003aa130ldr x11, [sp+272]
    003aa134ldr x3, [sp+208]
    003aa138ldr x6, [sp+232]
    003aa13cldr x9, [sp+256]
    003aa140ldr x12, [sp+280]
    003aa144ldr x0, [sp+184]
    003aa148bl golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).seal
    003aa14cstr x0, [sp+144]
    003aa150str x1, [sp+152]
    003aa154str x2, [sp+160]
    003aa158str x0, [sp+120]
    003aa15cstr x1, [sp+128]
    003aa160str x2, [sp+136]
    003aa164ldur x29, [sp-8]
    003aa168ldr x30, [sp], 176
    003aa16cret x30
    003aa170
    003aa170loc_3aa170:
    003aa170adrp x0, 0x24b000
    003aa174add x0, x0, 2944
    003aa178adrp x1, 0x368000
    003aa17cadd x1, x1, 1456
    003aa180bl runtime.gopanic
    003aa184
    003aa184loc_3aa184:
    003aa184adrp x0, 0x24b000
    003aa188add x0, x0, 2944
    003aa18cadrp x1, 0x368000
    003aa190add x1, x1, 1440
    003aa194bl runtime.gopanic
    003aa198hint
    003aa19c
    003aa19cloc_3aa19c:
    003aa19cstp x0, x1, [sp+8]
    003aa1a0stp x2, x3, [sp+24]
    003aa1a4stp x4, x5, [sp+40]
    003aa1a8stp x6, x7, [sp+56]
    003aa1acstp x8, x9, [sp+72]
    003aa1b0stp x10, x11, [sp+88]
    003aa1b4str x12, [sp+104]
    003aa1b8mov x3, x30
    003aa1bcbl runtime.morestack_noctxt.abi0
    003aa1c0ldp x0, x1, [sp+8]
    003aa1c4ldp x2, x3, [sp+24]
    003aa1c8ldp x4, x5, [sp+40]
    003aa1ccldp x6, x7, [sp+56]
    003aa1d0ldp x8, x9, [sp+72]
    003aa1d4ldp x10, x11, [sp+88]
    003aa1d8ldr x12, [sp+104]
    003aa1dcb 0x3aa090
    003aa090
    003aa1e0
    003aa1e0golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).Open: ; void golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).Open(golang.org/x/crypto/chacha20poly1305.chacha20poly1305 * c, struct []uint8 dst, struct []uint8 nonce, struct []uint8 ciphertext, struct []uint8 additionalData)
    003aa1e0ldr x16, [x28+16]
    003aa1e4sub x17, sp, 128
    003aa1e8subs xzr, x17, x16
    003aa1ecb.ls 0x3aa3ac
    003aa1f0sub x20, sp, 256
    003aa1f4stp x29, x30, [x20-8]
    003aa1f8add sp, x20, 0
    003aa1fcsub x29, sp, 8
    003aa200str x0, [sp+264]
    003aa204str x1, [sp+272]
    003aa208str x2, [sp+280]
    003aa20cstr x3, [sp+288]
    003aa210str x4, [sp+296]
    003aa214str x5, [sp+304]
    003aa218str x6, [sp+312]
    003aa21cstr x7, [sp+320]
    003aa220str x8, [sp+328]
    003aa224str x9, [sp+336]
    003aa228str x10, [sp+344]
    003aa22cstr x11, [sp+352]
    003aa230str x12, [sp+360]
    003aa234str xzr, [sp+144]
    003aa238stp xzr, xzr, [sp+152]
    003aa23cstp xzr, xzr, [sp+128]
    003aa240ldr x13, [sp+304]
    003aa244str x13, [sp+120]
    003aa248subs xzr, x13, 12
    003aa24cb.ne 0x3aa394
    003aa250b 0x3aa254
    003aa254
    003aa254loc_3aa254:
    003aa254ldr x13, [sp+328]
    003aa258str x13, [sp+120]
    003aa25csubs xzr, x13, 16
    003aa260b.lt 0x3aa268
    003aa264b 0x3aa2a0
    003aa268
    003aa268loc_3aa268:
    003aa268str xzr, [sp+144]
    003aa26cstp xzr, xzr, [sp+152]
    003aa270adrp x27, 0x677000
    003aa274ldr x3, [x27+3920]
    003aa278adrp x27, 0x677000
    003aa27cldr x4, [x27+3928]
    003aa280str x3, [sp+128]
    003aa284str x4, [sp+136]
    003aa288ldr x0, [sp+144]
    003aa28cldr x1, [sp+152]
    003aa290ldr x2, [sp+160]
    003aa294ldp x29, x30, [sp-8]
    003aa298add sp, sp, 256
    003aa29cret x30
    003aa2a0
    003aa2a0loc_3aa2a0:
    003aa2a0ldr x13, [sp+328]
    003aa2a4str x13, [sp+120]
    003aa2a8movz x14, 65488
    003aa2acmovk x14, 0xffff0000
    003aa2b0movk x14, 0x3f00000000
    003aa2b4subs xzr, x13, x14
    003aa2b8b.hi 0x3aa380
    003aa2bcb 0x3aa2c0
    003aa2c0
    003aa2c0loc_3aa2c0:
    003aa2c0str xzr, [sp+224]
    003aa2c4stp xzr, xzr, [sp+232]
    003aa2c8stp xzr, xzr, [sp+208]
    003aa2ccldr x1, [sp+272]
    003aa2d0ldr x4, [sp+296]
    003aa2d4ldr x7, [sp+320]
    003aa2d8ldr x10, [sp+344]
    003aa2dcldr x2, [sp+280]
    003aa2e0ldr x5, [sp+304]
    003aa2e4ldr x8, [sp+328]
    003aa2e8ldr x11, [sp+352]
    003aa2ecldr x3, [sp+288]
    003aa2f0ldr x6, [sp+312]
    003aa2f4ldr x9, [sp+336]
    003aa2f8ldr x12, [sp+360]
    003aa2fcldr x0, [sp+264]
    003aa300bl golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).open
    003aa304str x0, [sp+224]
    003aa308str x1, [sp+232]
    003aa30cstr x2, [sp+240]
    003aa310str x3, [sp+208]
    003aa314str x4, [sp+216]
    003aa318ldr x13, [sp+224]
    003aa31cldr x14, [sp+232]
    003aa320ldr x15, [sp+240]
    003aa324str x13, [sp+184]
    003aa328str x14, [sp+192]
    003aa32cstr x15, [sp+200]
    003aa330ldr x13, [sp+208]
    003aa334ldr x14, [sp+216]
    003aa338str x13, [sp+168]
    003aa33cstr x14, [sp+176]
    003aa340ldr x13, [sp+184]
    003aa344ldr x14, [sp+192]
    003aa348ldr x15, [sp+200]
    003aa34cstr x13, [sp+144]
    003aa350str x14, [sp+152]
    003aa354str x15, [sp+160]
    003aa358ldr x3, [sp+168]
    003aa35cldr x4, [sp+176]
    003aa360str x3, [sp+128]
    003aa364str x4, [sp+136]
    003aa368ldr x0, [sp+144]
    003aa36cldr x1, [sp+152]
    003aa370ldr x2, [sp+160]
    003aa374ldp x29, x30, [sp-8]
    003aa378add sp, sp, 256
    003aa37cret x30
    003aa380
    003aa380loc_3aa380:
    003aa380adrp x0, 0x24b000
    003aa384add x0, x0, 2944
    003aa388adrp x1, 0x368000
    003aa38cadd x1, x1, 1488
    003aa390bl runtime.gopanic
    003aa394
    003aa394loc_3aa394:
    003aa394adrp x0, 0x24b000
    003aa398add x0, x0, 2944
    003aa39cadrp x1, 0x368000
    003aa3a0add x1, x1, 1472
    003aa3a4bl runtime.gopanic
    003aa3a8hint
    003aa3ac
    003aa3acloc_3aa3ac:
    003aa3acstp x0, x1, [sp+8]
    003aa3b0stp x2, x3, [sp+24]
    003aa3b4stp x4, x5, [sp+40]
    003aa3b8stp x6, x7, [sp+56]
    003aa3bcstp x8, x9, [sp+72]
    003aa3c0stp x10, x11, [sp+88]
    003aa3c4str x12, [sp+104]
    003aa3c8mov x3, x30
    003aa3ccbl runtime.morestack_noctxt.abi0
    003aa3d0ldp x0, x1, [sp+8]
    003aa3d4ldp x2, x3, [sp+24]
    003aa3d8ldp x4, x5, [sp+40]
    003aa3dcldp x6, x7, [sp+56]
    003aa3e0ldp x8, x9, [sp+72]
    003aa3e4ldp x10, x11, [sp+88]
    003aa3e8ldr x12, [sp+104]
    003aa3ecb 0x3aa1e0
    003aa1e0
    003aa3f0
    003aa3f0golang.org/x/crypto/chacha20poly1305.sliceForAppend: ; void golang.org/x/crypto/chacha20poly1305.sliceForAppend(struct []uint8 in, int n)
    003aa3f0ldr x16, [x28+16]
    003aa3f4sub x17, sp, 48
    003aa3f8subs xzr, x17, x16
    003aa3fcb.ls 0x3aa58c
    003aa400str x30, [sp-176]!
    003aa404stur x29, [sp-8]
    003aa408sub x29, sp, 8
    003aa40cstr x0, [sp+184]
    003aa410str x1, [sp+192]
    003aa414str x2, [sp+200]
    003aa418str x3, [sp+208]
    003aa41cstr xzr, [sp+96]
    003aa420stp xzr, xzr, [sp+104]
    003aa424str xzr, [sp+72]
    003aa428stp xzr, xzr, [sp+80]
    003aa42cldr x6, [sp+192]
    003aa430str x6, [sp+64]
    003aa434ldr x7, [sp+208]
    003aa438add x2, x6, x7
    003aa43cstr x2, [sp+40]
    003aa440ldr x6, [sp+200]
    003aa444str x6, [sp+64]
    003aa448subs xzr, x6, x2
    003aa44cb.ge 0x3aa454
    003aa450b 0x3aa47c
    003aa454
    003aa454loc_3aa454:
    003aa454ldr x6, [sp+200]
    003aa458ldr x7, [sp+184]
    003aa45csubs xzr, x6, x2
    003aa460b.hs 0x3aa468
    003aa464b 0x3aa57c
    003aa468
    003aa468loc_3aa468:
    003aa468b 0x3aa46c
    003aa46c
    003aa46cloc_3aa46c:
    003aa46cstr x7, [sp+96]
    003aa470str x2, [sp+104]
    003aa474str x6, [sp+112]
    003aa478b 0x3aa51c
    003aa47c
    003aa47cloc_3aa47c:
    003aa47cadrp x0, 0x24b000
    003aa480add x0, x0, 3072
    003aa484mov x1, x2
    003aa488bl runtime.makeslice
    003aa48cldr x3, [sp+40]
    003aa490ldr x4, [sp+40]
    003aa494str x0, [sp+96]
    003aa498str x3, [sp+104]
    003aa49cstr x4, [sp+112]
    003aa4a0str x0, [sp+144]
    003aa4a4str x3, [sp+152]
    003aa4a8str x4, [sp+160]
    003aa4acldr x3, [sp+192]
    003aa4b0ldr x4, [sp+184]
    003aa4b4ldr x5, [sp+200]
    003aa4b8str x4, [sp+120]
    003aa4bcstr x3, [sp+128]
    003aa4c0str x5, [sp+136]
    003aa4c4ldr x4, [sp+152]
    003aa4c8str x4, [sp+56]
    003aa4ccsubs xzr, x4, x3
    003aa4d0b.gt 0x3aa4d8
    003aa4d4b 0x3aa4e0
    003aa4d8
    003aa4d8loc_3aa4d8:
    003aa4d8str x3, [sp+56]
    003aa4dcb 0x3aa4e4
    003aa4e0
    003aa4e0loc_3aa4e0:
    003aa4e0b 0x3aa4e4
    003aa4e4
    003aa4e4loc_3aa4e4:
    003aa4e4ldr x6, [sp+120]
    003aa4e8ldr x7, [sp+144]
    003aa4ecsubs xzr, x6, x7
    003aa4f0b.ne 0x3aa4f8
    003aa4f4b 0x3aa514
    003aa4f8
    003aa4f8loc_3aa4f8:
    003aa4f8ldr x3, [sp+56]
    003aa4fcstr x3, [sp+48]
    003aa500ldr x2, [sp+48]
    003aa504ldr x1, [sp+120]
    003aa508ldr x0, [sp+144]
    003aa50cbl runtime.memmove
    003aa510b 0x3aa518
    003aa514
    003aa514loc_3aa514:
    003aa514b 0x3aa518
    003aa518
    003aa518loc_3aa518:
    003aa518b 0x3aa51c
    003aa51c
    003aa51cloc_3aa51c:
    003aa51cldr x0, [sp+192]
    003aa520str x0, [sp+64]
    003aa524ldr x1, [sp+104]
    003aa528ldr x6, [sp+112]
    003aa52cldr x7, [sp+96]
    003aa530b 0x3aa534
    003aa534
    003aa534loc_3aa534:
    003aa534subs xzr, x0, x1
    003aa538b.ls 0x3aa540
    003aa53cb 0x3aa578
    003aa540
    003aa540loc_3aa540:
    003aa540sub x5, x6, x0
    003aa544sub x4, x1, x0
    003aa548sub x6, xzr, x5
    003aa54cand x6, x0, x6, asr #63
    003aa550add x3, x7, x6
    003aa554str x3, [sp+72]
    003aa558str x4, [sp+80]
    003aa55cstr x5, [sp+88]
    003aa560ldr x0, [sp+96]
    003aa564ldr x1, [sp+104]
    003aa568ldr x2, [sp+112]
    003aa56cldur x29, [sp-8]
    003aa570ldr x30, [sp], 176
    003aa574ret x30
    003aa578
    003aa578loc_3aa578:
    003aa578bl runtime.panicSliceB
    003aa57c
    003aa57cloc_3aa57c:
    003aa57cmov x1, x2
    003aa580mov x2, x6
    003aa584bl runtime.panicSliceAcap
    003aa588hint
    003aa58c
    003aa58cloc_3aa58c:
    003aa58cstp x0, x1, [sp+8]
    003aa590stp x2, x3, [sp+24]
    003aa594mov x3, x30
    003aa598bl runtime.morestack_noctxt.abi0
    003aa59cldp x0, x1, [sp+8]
    003aa5a0ldp x2, x3, [sp+24]
    003aa5a4b 0x3aa3f0
    003aa5a8udf 0
    003aa5acudf 0
    003aa3f0
    003aa5b0
    003aa5b0golang.org/x/crypto/chacha20poly1305.writeWithPadding: ; void golang.org/x/crypto/chacha20poly1305.writeWithPadding(golang.org/x/crypto/internal/poly1305.MAC * p, struct []uint8 b)
    003aa5b0ldr x16, [x28+16]
    003aa5b4subs xzr, sp, x16
    003aa5b8b.ls 0x3aa65c
    003aa5bcstr x30, [sp-112]!
    003aa5c0stur x29, [sp-8]
    003aa5c4sub x29, sp, 8
    003aa5c8str x0, [sp+120]
    003aa5ccstr x1, [sp+128]
    003aa5d0str x2, [sp+136]
    003aa5d4str x3, [sp+144]
    003aa5d8bl golang.org/x/crypto/internal/poly1305.(*MAC).Write
    003aa5dcldr x4, [sp+136]
    003aa5e0str x4, [sp+72]
    003aa5e4and x4, x4, 15
    003aa5e8str x4, [sp+56]
    003aa5eccbnz x4, 0x3aa5f4
    003aa5f0b 0x3aa644
    003aa5f4
    003aa5f4loc_3aa5f4:
    003aa5f4stp xzr, xzr, [sp+40]
    003aa5f8ldr x4, [sp+56]
    003aa5fcorr x2, xzr, 16
    003aa600sub x1, x2, x4
    003aa604str x1, [sp+64]
    003aa608add x4, sp, 40
    003aa60cldrsb x27, [x4]
    003aa610subs xzr, x1, 16
    003aa614b.ls 0x3aa61c
    003aa618b 0x3aa654
    003aa61c
    003aa61cloc_3aa61c:
    003aa61cb 0x3aa620
    003aa620
    003aa620loc_3aa620:
    003aa620str x4, [sp+80]
    003aa624str x1, [sp+88]
    003aa628str x2, [sp+96]
    003aa62cldr x0, [sp+120]
    003aa630mov x3, x2
    003aa634mov x2, x1
    003aa638mov x1, x4
    003aa63cbl golang.org/x/crypto/internal/poly1305.(*MAC).Write
    003aa640b 0x3aa648
    003aa644
    003aa644loc_3aa644:
    003aa644b 0x3aa648
    003aa648
    003aa648loc_3aa648:
    003aa648ldur x29, [sp-8]
    003aa64cldr x30, [sp], 112
    003aa650ret x30
    003aa654
    003aa654loc_3aa654:
    003aa654bl runtime.panicSliceAlen
    003aa658hint
    003aa65c
    003aa65cloc_3aa65c:
    003aa65cstp x0, x1, [sp+8]
    003aa660stp x2, x3, [sp+24]
    003aa664mov x3, x30
    003aa668bl runtime.morestack_noctxt.abi0
    003aa66cldp x0, x1, [sp+8]
    003aa670ldp x2, x3, [sp+24]
    003aa674b 0x3aa5b0
    003aa678udf 0
    003aa67cudf 0
    003aa5b0
    003aa680
    003aa680golang.org/x/crypto/chacha20poly1305.writeUint64: ; void golang.org/x/crypto/chacha20poly1305.writeUint64(golang.org/x/crypto/internal/poly1305.MAC * p, int n)
    003aa680ldr x16, [x28+16]
    003aa684subs xzr, sp, x16
    003aa688b.ls 0x3aa700
    003aa68cstr x30, [sp-80]!
    003aa690stur x29, [sp-8]
    003aa694sub x29, sp, 8
    003aa698str x0, [sp+88]
    003aa69cstr x1, [sp+96]
    003aa6a0str xzr, [sp+40]
    003aa6a4add x0, sp, 40
    003aa6a8ldrsb x27, [x0]
    003aa6acb 0x3aa6b0
    003aa6b0
    003aa6b0loc_3aa6b0:
    003aa6b0str x0, [sp+48]
    003aa6b4orr x2, xzr, 8
    003aa6b8str x2, [sp+56]
    003aa6bcstr x2, [sp+64]
    003aa6c0ldr x3, [sp+96]
    003aa6c4mov x1, x2
    003aa6c8bl encoding/binary.littleEndian.PutUint64
    003aa6ccadd x1, sp, 40
    003aa6d0ldrsb x27, [x1]
    003aa6d4b 0x3aa6d8
    003aa6d8
    003aa6d8loc_3aa6d8:
    003aa6d8str x1, [sp+48]
    003aa6dcorr x3, xzr, 8
    003aa6e0str x3, [sp+56]
    003aa6e4str x3, [sp+64]
    003aa6e8ldr x0, [sp+88]
    003aa6ecmov x2, x3
    003aa6f0bl golang.org/x/crypto/internal/poly1305.(*MAC).Write
    003aa6f4ldur x29, [sp-8]
    003aa6f8ldr x30, [sp], 80
    003aa6fcret x30
    003aa700
    003aa700loc_3aa700:
    003aa700stp x0, x1, [sp+8]
    003aa704mov x3, x30
    003aa708bl runtime.morestack_noctxt.abi0
    003aa70cldp x0, x1, [sp+8]
    003aa710b 0x3aa680
    003aa714udf 0
    003aa718udf 0
    003aa71cudf 0
    003aa680
    003aa720
    003aa720golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).sealGeneric: ; void golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).sealGeneric(golang.org/x/crypto/chacha20poly1305.chacha20poly1305 * c, struct []uint8 dst, struct []uint8 nonce, struct []uint8 plaintext, struct []uint8 additionalData)
    003aa720ldr x16, [x28+16]
    003aa724sub x17, sp, 288
    003aa728subs xzr, x17, x16
    003aa72cb.ls 0x3aaa98
    003aa730sub x20, sp, 416
    003aa734stp x29, x30, [x20-8]
    003aa738add sp, x20, 0
    003aa73csub x29, sp, 8
    003aa740str x0, [sp+424]
    003aa744str x1, [sp+432]
    003aa748str x2, [sp+440]
    003aa74cstr x3, [sp+448]
    003aa750str x4, [sp+456]
    003aa754str x5, [sp+464]
    003aa758str x6, [sp+472]
    003aa75cstr x7, [sp+480]
    003aa760str x8, [sp+488]
    003aa764str x9, [sp+496]
    003aa768str x10, [sp+504]
    003aa76cstr x11, [sp+512]
    003aa770str x12, [sp+520]
    003aa774str xzr, [sp+128]
    003aa778stp xzr, xzr, [sp+136]
    003aa77cldr x4, [sp+488]
    003aa780str x4, [sp+120]
    003aa784str xzr, [sp+360]
    003aa788stp xzr, xzr, [sp+368]
    003aa78cstr xzr, [sp+336]
    003aa790stp xzr, xzr, [sp+344]
    003aa794ldr x1, [sp+440]
    003aa798ldr x2, [sp+448]
    003aa79cldr x0, [sp+432]
    003aa7a0ldr x4, [sp+120]
    003aa7a4add x3, x4, 16
    003aa7a8bl golang.org/x/crypto/chacha20poly1305.sliceForAppend
    003aa7acstr x0, [sp+360]
    003aa7b0str x1, [sp+368]
    003aa7b4str x2, [sp+376]
    003aa7b8str x3, [sp+336]
    003aa7bcstr x4, [sp+344]
    003aa7c0str x5, [sp+352]
    003aa7c4ldr x4, [sp+360]
    003aa7c8ldr x5, [sp+368]
    003aa7ccldr x6, [sp+376]
    003aa7d0str x4, [sp+288]
    003aa7d4str x5, [sp+296]
    003aa7d8str x6, [sp+304]
    003aa7dcldr x4, [sp+336]
    003aa7e0ldr x5, [sp+344]
    003aa7e4ldr x6, [sp+352]
    003aa7e8str x4, [sp+264]
    003aa7ecstr x5, [sp+272]
    003aa7f0str x6, [sp+280]
    003aa7f4ldr x4, [sp+288]
    003aa7f8ldr x5, [sp+296]
    003aa7fcldr x6, [sp+304]
    003aa800str x4, [sp+184]
    003aa804str x5, [sp+192]
    003aa808str x6, [sp+200]
    003aa80cldr x2, [sp+280]
    003aa810ldr x4, [sp+264]
    003aa814ldr x5, [sp+272]
    003aa818str x4, [sp+216]
    003aa81cstr x5, [sp+224]
    003aa820str x2, [sp+232]
    003aa824ldr x1, [sp+488]
    003aa828str x1, [sp+120]
    003aa82csubs xzr, x1, x2
    003aa830b.ls 0x3aa838
    003aa834b 0x3aaa90
    003aa838
    003aa838loc_3aa838:
    003aa838b 0x3aa83c
    003aa83c
    003aa83cloc_3aa83c:
    003aa83cstr x4, [sp+336]
    003aa840str x1, [sp+344]
    003aa844str x2, [sp+352]
    003aa848ldr x0, [sp+488]
    003aa84cstr x0, [sp+112]
    003aa850ldr x1, [sp+224]
    003aa854ldr x6, [sp+216]
    003aa858ldr x7, [sp+232]
    003aa85cb 0x3aa860
    003aa860
    003aa860loc_3aa860:
    003aa860subs xzr, x1, x0
    003aa864b.hs 0x3aa86c
    003aa868b 0x3aaa8c
    003aa86c
    003aa86cloc_3aa86c:
    003aa86csub x7, x7, x0
    003aa870sub x8, x1, x0
    003aa874sub x9, xzr, x7
    003aa878and x9, x0, x9, asr #63
    003aa87cadd x6, x6, x9
    003aa880str x6, [sp+360]
    003aa884str x8, [sp+368]
    003aa888str x7, [sp+376]
    003aa88cldr x6, [sp+336]
    003aa890ldr x7, [sp+344]
    003aa894ldr x8, [sp+352]
    003aa898str x6, [sp+240]
    003aa89cstr x7, [sp+248]
    003aa8a0str x8, [sp+256]
    003aa8a4ldr x6, [sp+360]
    003aa8a8ldr x7, [sp+368]
    003aa8acldr x8, [sp+376]
    003aa8b0str x6, [sp+152]
    003aa8b4str x7, [sp+160]
    003aa8b8str x8, [sp+168]
    003aa8bcldr x0, [sp+216]
    003aa8c0ldr x3, [sp+480]
    003aa8c4ldr x1, [sp+224]
    003aa8c8ldr x4, [sp+488]
    003aa8ccldr x2, [sp+232]
    003aa8d0ldr x5, [sp+496]
    003aa8d4bl golang.org/x/crypto/internal/alias.InexactOverlap
    003aa8d8strb w0, [sp+111]
    003aa8dctbnz w0, 0, 0x3aaa78
    003aa8e0b 0x3aa8e4
    003aa8e4
    003aa8e4loc_3aa8e4:
    003aa8e4add x27, sp, 79
    003aa8e8stp xzr, xzr, [x27]
    003aa8ecadd x27, sp, 95
    003aa8f0stp xzr, xzr, [x27]
    003aa8f4ldr x6, [sp+424]
    003aa8f8ldrsb x27, [x6]
    003aa8fcldrsb x27, [x6]
    003aa900b 0x3aa904
    003aa904
    003aa904loc_3aa904:
    003aa904str x6, [sp+360]
    003aa908orr x6, xzr, 32
    003aa90cstr x6, [sp+368]
    003aa910str x6, [sp+376]
    003aa914str xzr, [sp+328]
    003aa918stp xzr, xzr, [sp+312]
    003aa91cldr x3, [sp+456]
    003aa920ldr x4, [sp+464]
    003aa924ldr x5, [sp+472]
    003aa928ldr x0, [sp+360]
    003aa92cldr x1, [sp+368]
    003aa930ldr x2, [sp+376]
    003aa934bl golang.org/x/crypto/chacha20.NewUnauthenticatedCipher
    003aa938str x0, [sp+328]
    003aa93cstr x1, [sp+312]
    003aa940str x2, [sp+320]
    003aa944ldr x6, [sp+328]
    003aa948str x6, [sp+400]
    003aa94cldr x6, [sp+312]
    003aa950ldr x7, [sp+320]
    003aa954str x6, [sp+384]
    003aa958str x7, [sp+392]
    003aa95cldr x6, [sp+400]
    003aa960str x6, [sp+176]
    003aa964add x6, sp, 79
    003aa968ldrsb x27, [x6]
    003aa96cb 0x3aa970
    003aa970
    003aa970loc_3aa970:
    003aa970str x6, [sp+360]
    003aa974orr x6, xzr, 32
    003aa978str x6, [sp+368]
    003aa97cstr x6, [sp+376]
    003aa980add x4, sp, 79
    003aa984ldrsb x27, [x4]
    003aa988b 0x3aa98c
    003aa98c
    003aa98cloc_3aa98c:
    003aa98cstr x4, [sp+336]
    003aa990str x6, [sp+344]
    003aa994str x6, [sp+352]
    003aa998ldr x0, [sp+176]
    003aa99cldr x1, [sp+360]
    003aa9a0ldr x2, [sp+368]
    003aa9a4ldr x3, [sp+376]
    003aa9a8mov x5, x6
    003aa9acbl golang.org/x/crypto/chacha20.(*Cipher).XORKeyStream
    003aa9b0ldr x0, [sp+176]
    003aa9b4orr x1, xzr, 1
    003aa9b8bl golang.org/x/crypto/chacha20.(*Cipher).SetCounter
    003aa9bcldr x1, [sp+240]
    003aa9c0ldr x4, [sp+480]
    003aa9c4ldr x2, [sp+248]
    003aa9c8ldr x5, [sp+488]
    003aa9ccldr x3, [sp+256]
    003aa9d0ldr x6, [sp+496]
    003aa9d4ldr x0, [sp+176]
    003aa9d8bl golang.org/x/crypto/chacha20.(*Cipher).XORKeyStream
    003aa9dcadd x0, sp, 79
    003aa9e0bl golang.org/x/crypto/internal/poly1305.New
    003aa9e4str x0, [sp+208]
    003aa9e8ldr x2, [sp+512]
    003aa9ecldr x3, [sp+520]
    003aa9f0ldr x1, [sp+504]
    003aa9f4bl golang.org/x/crypto/chacha20poly1305.writeWithPadding
    003aa9f8ldr x1, [sp+240]
    003aa9fcldr x2, [sp+248]
    003aaa00ldr x3, [sp+256]
    003aaa04ldr x0, [sp+208]
    003aaa08bl golang.org/x/crypto/chacha20poly1305.writeWithPadding
    003aaa0cldr x1, [sp+512]
    003aaa10str x1, [sp+112]
    003aaa14ldr x0, [sp+208]
    003aaa18bl golang.org/x/crypto/chacha20poly1305.writeUint64
    003aaa1cldr x1, [sp+488]
    003aaa20str x1, [sp+112]
    003aaa24ldr x0, [sp+208]
    003aaa28bl golang.org/x/crypto/chacha20poly1305.writeUint64
    003aaa2cldr x1, [sp+152]
    003aaa30ldr x3, [sp+168]
    003aaa34b 0x3aaa38
    003aaa38
    003aaa38loc_3aaa38:
    003aaa38b 0x3aaa3c
    003aaa3c
    003aaa3cloc_3aaa3c:
    003aaa3cstr x1, [sp+336]
    003aaa40str xzr, [sp+344]
    003aaa44str x3, [sp+352]
    003aaa48ldr x0, [sp+208]
    003aaa4cmov x2, xzr
    003aaa50bl golang.org/x/crypto/internal/poly1305.(*MAC).Sum
    003aaa54ldr x0, [sp+184]
    003aaa58ldr x1, [sp+192]
    003aaa5cldr x2, [sp+200]
    003aaa60str x0, [sp+128]
    003aaa64str x1, [sp+136]
    003aaa68str x2, [sp+144]
    003aaa6cldp x29, x30, [sp-8]
    003aaa70add sp, sp, 416
    003aaa74ret x30
    003aaa78
    003aaa78loc_3aaa78:
    003aaa78adrp x0, 0x24b000
    003aaa7cadd x0, x0, 2944
    003aaa80adrp x1, 0x368000
    003aaa84add x1, x1, 1504
    003aaa88bl runtime.gopanic
    003aaa8c
    003aaa8cloc_3aaa8c:
    003aaa8cbl runtime.panicSliceB
    003aaa90
    003aaa90loc_3aaa90:
    003aaa90bl runtime.panicSliceAcap
    003aaa94hint
    003aaa98
    003aaa98loc_3aaa98:
    003aaa98stp x0, x1, [sp+8]
    003aaa9cstp x2, x3, [sp+24]
    003aaaa0stp x4, x5, [sp+40]
    003aaaa4stp x6, x7, [sp+56]
    003aaaa8stp x8, x9, [sp+72]
    003aaaacstp x10, x11, [sp+88]
    003aaab0str x12, [sp+104]
    003aaab4mov x3, x30
    003aaab8bl runtime.morestack_noctxt.abi0
    003aaabcldp x0, x1, [sp+8]
    003aaac0ldp x2, x3, [sp+24]
    003aaac4ldp x4, x5, [sp+40]
    003aaac8ldp x6, x7, [sp+56]
    003aaaccldp x8, x9, [sp+72]
    003aaad0ldp x10, x11, [sp+88]
    003aaad4ldr x12, [sp+104]
    003aaad8b 0x3aa720
    003aaadcudf 0
    003aa720