File sliver_83cb34f62800fed14e14547c39337aab8e0427fe2c6310a3fb40ce0ac36168c9.elf
Function:
Loading..
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
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
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
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
00282b00
00282b00crypto/ecdh.(*nistCurve).NewPrivateKey: ; void crypto/ecdh.(*nistCurve).NewPrivateKey(crypto/ecdh.nistCurve * c, struct []uint8 key)
00282b00ldr x16, [x28+16]
00282b04sub x17, sp, 112
00282b08subs xzr, x17, x16
00282b0cb.ls 0x282e90
00282b10str x30, [sp-240]!
00282b14stur x29, [sp-8]
00282b18sub x29, sp, 8
00282b1cstr x0, [sp+248]
00282b20str x1, [sp+256]
00282b24str x2, [sp+264]
00282b28str x3, [sp+272]
00282b2cstr xzr, [sp+48]
00282b30stp xzr, xzr, [sp+32]
00282b34str xzr, [sp+88]
00282b38stp xzr, xzr, [sp+216]
00282b3cldr x3, [sp+248]
00282b40ldrsb x27, [x3]
00282b44ldr x26, [x3+24]
00282b48ldr x3, [x26]
00282b4cldr x0, [sp+256]
00282b50ldr x1, [sp+264]
00282b54ldr x2, [sp+272]
00282b58blr x3
00282b5cstr x0, [sp+88]
00282b60str x1, [sp+216]
00282b64str x2, [sp+224]
00282b68ldr x3, [sp+88]
00282b6cstr x3, [sp+112]
00282b70ldr x3, [sp+216]
00282b74ldr x4, [sp+224]
00282b78str x3, [sp+96]
00282b7cstr x4, [sp+104]
00282b80ldr x3, [sp+112]
00282b84str x3, [sp+64]
00282b88ldr x3, [sp+104]
00282b8cldr x4, [sp+96]
00282b90str x4, [sp+72]
00282b94str x3, [sp+80]
00282b98cbnz x4, 0x282ba0
00282b9cb 0x282bc4
00282ba0
00282ba0loc_282ba0:
00282ba0str xzr, [sp+48]
00282ba4ldr x1, [sp+72]
00282ba8ldr x2, [sp+80]
00282bacstr x1, [sp+32]
00282bb0str x2, [sp+40]
00282bb4ldr x0, [sp+48]
00282bb8ldur x29, [sp-8]
00282bbcldr x30, [sp], 240
00282bc0ret x30
00282bc4
00282bc4loc_282bc4:
00282bc4ldr x0, [sp+256]
00282bc8ldr x1, [sp+264]
00282bccldr x2, [sp+272]
00282bd0bl bytes.Clone
00282bd4str x0, [sp+192]
00282bd8str x1, [sp+200]
00282bdcstr x2, [sp+208]
00282be0ldr x0, [sp+64]
00282be4bl crypto/internal/fips140/ecdh.(*PrivateKey).PublicKey
00282be8str x0, [sp+184]
00282becbl crypto/internal/fips140/ecdh.(*PublicKey).Bytes
00282bf0str x0, [sp+160]
00282bf4str x1, [sp+168]
00282bf8str x2, [sp+176]
00282bfcldr x0, [sp+64]
00282c00bl crypto/internal/fips140/ecdh.(*PrivateKey).PublicKey
00282c04str x0, [sp+152]
00282c08adrp x0, 0x3f4000
00282c0cadd x0, x0, 2816
00282c10bl runtime.newobject
00282c14str x0, [sp+144]
00282c18adrp x27, 0x7c9000
00282c1cldr w3, [x27+3056]
00282c20cbz w3, 0x282c28
00282c24b 0x282c2c
00282c28
00282c28loc_282c28:
00282c28b 0x282c48
00282c2c
00282c2cloc_282c2c:
00282c2cstr x0, [sp+128]
00282c30mov x1, x0
00282c34adrp x0, 0x3f4000
00282c38add x0, x0, 2816
00282c3cbl runtime.wbZero
00282c40ldr x0, [sp+128]
00282c44b 0x282c48
00282c48
00282c48loc_282c48:
00282c48stp xzr, xzr, [x0]
00282c4cstp xzr, xzr, [x0+16]
00282c50stp xzr, xzr, [x0+32]
00282c54stp xzr, xzr, [x0+48]
00282c58ldr x1, [sp+144]
00282c5cldrsb x27, [x1]
00282c60ldr x2, [sp+248]
00282c64adrp x3, 0x497000
00282c68add x3, x3, 1200
00282c6cstr x3, [x1]
00282c70adrp x27, 0x7c9000
00282c74ldr w3, [x27+3056]
00282c78cbz w3, 0x282c80
00282c7cb 0x282c84
00282c80
00282c80loc_282c80:
00282c80b 0x282c98
00282c84
00282c84loc_282c84:
00282c84bl runtime.gcWriteBarrier2
00282c88str x2, [x25]
00282c8cldr x3, [x1+8]
00282c90str x3, [x25+8]
00282c94b 0x282c98
00282c98
00282c98loc_282c98:
00282c98str x2, [x1+8]
00282c9cldr x1, [sp+144]
00282ca0ldrsb x27, [x1]
00282ca4ldr x2, [sp+192]
00282ca8ldr x3, [sp+200]
00282cacldr x4, [sp+208]
00282cb0str x3, [x1+24]
00282cb4str x4, [x1+32]
00282cb8adrp x27, 0x7c9000
00282cbcldr w3, [x27+3056]
00282cc0cbz w3, 0x282cc8
00282cc4b 0x282ccc
00282cc8
00282cc8loc_282cc8:
00282cc8b 0x282ce0
00282ccc
00282cccloc_282ccc:
00282cccbl runtime.gcWriteBarrier2
00282cd0str x2, [x25]
00282cd4ldr x3, [x1+16]
00282cd8str x3, [x25+8]
00282cdcb 0x282ce0
00282ce0
00282ce0loc_282ce0:
00282ce0str x2, [x1+16]
00282ce4ldr x1, [sp+144]
00282ce8ldrsb x27, [x1]
00282cecldr x2, [sp+64]
00282cf0adrp x27, 0x7c9000
00282cf4ldr w3, [x27+3056]
00282cf8cbz w3, 0x282d00
00282cfcb 0x282d04
00282d00
00282d00loc_282d00:
00282d00b 0x282d18
00282d04
00282d04loc_282d04:
00282d04bl runtime.gcWriteBarrier2
00282d08str x2, [x25]
00282d0cldr x3, [x1+56]
00282d10str x3, [x25+8]
00282d14b 0x282d18
00282d18
00282d18loc_282d18:
00282d18str x2, [x1+56]
00282d1cadrp x0, 0x3e5000
00282d20add x0, x0, 2592
00282d24bl runtime.newobject
00282d28str x0, [sp+136]
00282d2cadrp x27, 0x7c9000
00282d30ldr w1, [x27+3056]
00282d34cbz w1, 0x282d3c
00282d38b 0x282d40
00282d3c
00282d3cloc_282d3c:
00282d3cb 0x282d5c
00282d40
00282d40loc_282d40:
00282d40str x0, [sp+120]
00282d44mov x1, x0
00282d48adrp x0, 0x3e5000
00282d4cadd x0, x0, 2592
00282d50bl runtime.wbZero
00282d54ldr x0, [sp+120]
00282d58b 0x282d5c
00282d5c
00282d5cloc_282d5c:
00282d5cstp xzr, xzr, [x0]
00282d60stp xzr, xzr, [x0+16]
00282d64stp xzr, xzr, [x0+32]
00282d68str xzr, [x0+48]
00282d6cldr x3, [sp+136]
00282d70ldrsb x27, [x3]
00282d74ldr x4, [sp+248]
00282d78adrp x5, 0x497000
00282d7cadd x5, x5, 1200
00282d80str x5, [x3]
00282d84adrp x27, 0x7c9000
00282d88ldr w5, [x27+3056]
00282d8ccbz w5, 0x282d94
00282d90b 0x282d98
00282d94
00282d94loc_282d94:
00282d94b 0x282dac
00282d98
00282d98loc_282d98:
00282d98bl runtime.gcWriteBarrier2
00282d9cstr x4, [x25]
00282da0ldr x5, [x3+8]
00282da4str x5, [x25+8]
00282da8b 0x282dac
00282dac
00282dacloc_282dac:
00282dacstr x4, [x3+8]
00282db0ldr x3, [sp+136]
00282db4ldrsb x27, [x3]
00282db8ldr x4, [sp+160]
00282dbcldr x5, [sp+168]
00282dc0ldr x6, [sp+176]
00282dc4str x5, [x3+24]
00282dc8str x6, [x3+32]
00282dccadrp x27, 0x7c9000
00282dd0ldr w5, [x27+3056]
00282dd4cbz w5, 0x282ddc
00282dd8b 0x282de0
00282ddc
00282ddcloc_282ddc:
00282ddcb 0x282df4
00282de0
00282de0loc_282de0:
00282de0bl runtime.gcWriteBarrier2
00282de4str x4, [x25]
00282de8ldr x5, [x3+16]
00282decstr x5, [x25+8]
00282df0b 0x282df4
00282df4
00282df4loc_282df4:
00282df4str x4, [x3+16]
00282df8ldr x3, [sp+136]
00282dfcldrsb x27, [x3]
00282e00ldr x4, [sp+152]
00282e04adrp x27, 0x7c9000
00282e08ldr w5, [x27+3056]
00282e0ccbz w5, 0x282e14
00282e10b 0x282e18
00282e14
00282e14loc_282e14:
00282e14b 0x282e2c
00282e18
00282e18loc_282e18:
00282e18bl runtime.gcWriteBarrier2
00282e1cstr x4, [x25]
00282e20ldr x5, [x3+48]
00282e24str x5, [x25+8]
00282e28b 0x282e2c
00282e2c
00282e2cloc_282e2c:
00282e2cstr x4, [x3+48]
00282e30ldr x3, [sp+144]
00282e34ldrsb x27, [x3]
00282e38ldr x4, [sp+136]
00282e3cadrp x27, 0x7c9000
00282e40ldr w5, [x27+3056]
00282e44cbz w5, 0x282e4c
00282e48b 0x282e50
00282e4c
00282e4cloc_282e4c:
00282e4cb 0x282e64
00282e50
00282e50loc_282e50:
00282e50bl runtime.gcWriteBarrier2
00282e54str x4, [x25]
00282e58ldr x5, [x3+40]
00282e5cstr x5, [x25+8]
00282e60b 0x282e64
00282e64
00282e64loc_282e64:
00282e64str x4, [x3+40]
00282e68ldr x3, [sp+144]
00282e6cstr x3, [sp+56]
00282e70str x3, [sp+48]
00282e74stp xzr, xzr, [sp+32]
00282e78ldr x0, [sp+48]
00282e7cmov x1, xzr
00282e80mov x2, xzr
00282e84ldur x29, [sp-8]
00282e88ldr x30, [sp], 240
00282e8cret x30
00282e90
00282e90loc_282e90:
00282e90stp x0, x1, [sp+8]
00282e94stp x2, x3, [sp+24]
00282e98mov x3, x30
00282e9cbl runtime.morestack_noctxt.abi0
00282ea0ldp x0, x1, [sp+8]
00282ea4ldp x2, x3, [sp+24]
00282ea8b 0x282b00
00282eacudf 0
00282b00
00282b00crypto/ecdh.(*nistCurve).NewPrivateKey: ; void crypto/ecdh.(*nistCurve).NewPrivateKey(crypto/ecdh.nistCurve * c, struct []uint8 key)
00282b00ldr x16, [x28+16]
00282b04sub x17, sp, 112
00282b08subs xzr, x17, x16
00282b0cb.ls 0x282e90
00282b10str x30, [sp-240]!
00282b14stur x29, [sp-8]
00282b18sub x29, sp, 8
00282b1cstr x0, [sp+248]
00282b20str x1, [sp+256]
00282b24str x2, [sp+264]
00282b28str x3, [sp+272]
00282b2cstr xzr, [sp+48]
00282b30stp xzr, xzr, [sp+32]
00282b34str xzr, [sp+88]
00282b38stp xzr, xzr, [sp+216]
00282b3cldr x3, [sp+248]
00282b40ldrsb x27, [x3]
00282b44ldr x26, [x3+24]
00282b48ldr x3, [x26]
00282b4cldr x0, [sp+256]
00282b50ldr x1, [sp+264]
00282b54ldr x2, [sp+272]
00282b58blr x3
00282b5cstr x0, [sp+88]
00282b60str x1, [sp+216]
00282b64str x2, [sp+224]
00282b68ldr x3, [sp+88]
00282b6cstr x3, [sp+112]
00282b70ldr x3, [sp+216]
00282b74ldr x4, [sp+224]
00282b78str x3, [sp+96]
00282b7cstr x4, [sp+104]
00282b80ldr x3, [sp+112]
00282b84str x3, [sp+64]
00282b88ldr x3, [sp+104]
00282b8cldr x4, [sp+96]
00282b90str x4, [sp+72]
00282b94str x3, [sp+80]
00282b98cbnz x4, 0x282ba0
00282b9cb 0x282bc4
00282ba0
00282ba0loc_282ba0:
00282ba0str xzr, [sp+48]
00282ba4ldr x1, [sp+72]
00282ba8ldr x2, [sp+80]
00282bacstr x1, [sp+32]
00282bb0str x2, [sp+40]
00282bb4ldr x0, [sp+48]
00282bb8ldur x29, [sp-8]
00282bbcldr x30, [sp], 240
00282bc0ret x30
00282bc4
00282bc4loc_282bc4:
00282bc4ldr x0, [sp+256]
00282bc8ldr x1, [sp+264]
00282bccldr x2, [sp+272]
00282bd0bl bytes.Clone
00282bd4str x0, [sp+192]
00282bd8str x1, [sp+200]
00282bdcstr x2, [sp+208]
00282be0ldr x0, [sp+64]
00282be4bl crypto/internal/fips140/ecdh.(*PrivateKey).PublicKey
00282be8str x0, [sp+184]
00282becbl crypto/internal/fips140/ecdh.(*PublicKey).Bytes
00282bf0str x0, [sp+160]
00282bf4str x1, [sp+168]
00282bf8str x2, [sp+176]
00282bfcldr x0, [sp+64]
00282c00bl crypto/internal/fips140/ecdh.(*PrivateKey).PublicKey
00282c04str x0, [sp+152]
00282c08adrp x0, 0x3f4000
00282c0cadd x0, x0, 2816
00282c10bl runtime.newobject
00282c14str x0, [sp+144]
00282c18adrp x27, 0x7c9000
00282c1cldr w3, [x27+3056]
00282c20cbz w3, 0x282c28
00282c24b 0x282c2c
00282c28
00282c28loc_282c28:
00282c28b 0x282c48
00282c2c
00282c2cloc_282c2c:
00282c2cstr x0, [sp+128]
00282c30mov x1, x0
00282c34adrp x0, 0x3f4000
00282c38add x0, x0, 2816
00282c3cbl runtime.wbZero
00282c40ldr x0, [sp+128]
00282c44b 0x282c48
00282c48
00282c48loc_282c48:
00282c48stp xzr, xzr, [x0]
00282c4cstp xzr, xzr, [x0+16]
00282c50stp xzr, xzr, [x0+32]
00282c54stp xzr, xzr, [x0+48]
00282c58ldr x1, [sp+144]
00282c5cldrsb x27, [x1]
00282c60ldr x2, [sp+248]
00282c64adrp x3, 0x497000
00282c68add x3, x3, 1200
00282c6cstr x3, [x1]
00282c70adrp x27, 0x7c9000
00282c74ldr w3, [x27+3056]
00282c78cbz w3, 0x282c80
00282c7cb 0x282c84
00282c80
00282c80loc_282c80:
00282c80b 0x282c98
00282c84
00282c84loc_282c84:
00282c84bl runtime.gcWriteBarrier2
00282c88str x2, [x25]
00282c8cldr x3, [x1+8]
00282c90str x3, [x25+8]
00282c94b 0x282c98
00282c98
00282c98loc_282c98:
00282c98str x2, [x1+8]
00282c9cldr x1, [sp+144]
00282ca0ldrsb x27, [x1]
00282ca4ldr x2, [sp+192]
00282ca8ldr x3, [sp+200]
00282cacldr x4, [sp+208]
00282cb0str x3, [x1+24]
00282cb4str x4, [x1+32]
00282cb8adrp x27, 0x7c9000
00282cbcldr w3, [x27+3056]
00282cc0cbz w3, 0x282cc8
00282cc4b 0x282ccc
00282cc8
00282cc8loc_282cc8:
00282cc8b 0x282ce0
00282ccc
00282cccloc_282ccc:
00282cccbl runtime.gcWriteBarrier2
00282cd0str x2, [x25]
00282cd4ldr x3, [x1+16]
00282cd8str x3, [x25+8]
00282cdcb 0x282ce0
00282ce0
00282ce0loc_282ce0:
00282ce0str x2, [x1+16]
00282ce4ldr x1, [sp+144]
00282ce8ldrsb x27, [x1]
00282cecldr x2, [sp+64]
00282cf0adrp x27, 0x7c9000
00282cf4ldr w3, [x27+3056]
00282cf8cbz w3, 0x282d00
00282cfcb 0x282d04
00282d00
00282d00loc_282d00:
00282d00b 0x282d18
00282d04
00282d04loc_282d04:
00282d04bl runtime.gcWriteBarrier2
00282d08str x2, [x25]
00282d0cldr x3, [x1+56]
00282d10str x3, [x25+8]
00282d14b 0x282d18
00282d18
00282d18loc_282d18:
00282d18str x2, [x1+56]
00282d1cadrp x0, 0x3e5000
00282d20add x0, x0, 2592
00282d24bl runtime.newobject
00282d28str x0, [sp+136]
00282d2cadrp x27, 0x7c9000
00282d30ldr w1, [x27+3056]
00282d34cbz w1, 0x282d3c
00282d38b 0x282d40
00282d3c
00282d3cloc_282d3c:
00282d3cb 0x282d5c
00282d40
00282d40loc_282d40:
00282d40str x0, [sp+120]
00282d44mov x1, x0
00282d48adrp x0, 0x3e5000
00282d4cadd x0, x0, 2592
00282d50bl runtime.wbZero
00282d54ldr x0, [sp+120]
00282d58b 0x282d5c
00282d5c
00282d5cloc_282d5c:
00282d5cstp xzr, xzr, [x0]
00282d60stp xzr, xzr, [x0+16]
00282d64stp xzr, xzr, [x0+32]
00282d68str xzr, [x0+48]
00282d6cldr x3, [sp+136]
00282d70ldrsb x27, [x3]
00282d74ldr x4, [sp+248]
00282d78adrp x5, 0x497000
00282d7cadd x5, x5, 1200
00282d80str x5, [x3]
00282d84adrp x27, 0x7c9000
00282d88ldr w5, [x27+3056]
00282d8ccbz w5, 0x282d94
00282d90b 0x282d98
00282d94
00282d94loc_282d94:
00282d94b 0x282dac
00282d98
00282d98loc_282d98:
00282d98bl runtime.gcWriteBarrier2
00282d9cstr x4, [x25]
00282da0ldr x5, [x3+8]
00282da4str x5, [x25+8]
00282da8b 0x282dac
00282dac
00282dacloc_282dac:
00282dacstr x4, [x3+8]
00282db0ldr x3, [sp+136]
00282db4ldrsb x27, [x3]
00282db8ldr x4, [sp+160]
00282dbcldr x5, [sp+168]
00282dc0ldr x6, [sp+176]
00282dc4str x5, [x3+24]
00282dc8str x6, [x3+32]
00282dccadrp x27, 0x7c9000
00282dd0ldr w5, [x27+3056]
00282dd4cbz w5, 0x282ddc
00282dd8b 0x282de0
00282ddc
00282ddcloc_282ddc:
00282ddcb 0x282df4
00282de0
00282de0loc_282de0:
00282de0bl runtime.gcWriteBarrier2
00282de4str x4, [x25]
00282de8ldr x5, [x3+16]
00282decstr x5, [x25+8]
00282df0b 0x282df4
00282df4
00282df4loc_282df4:
00282df4str x4, [x3+16]
00282df8ldr x3, [sp+136]
00282dfcldrsb x27, [x3]
00282e00ldr x4, [sp+152]
00282e04adrp x27, 0x7c9000
00282e08ldr w5, [x27+3056]
00282e0ccbz w5, 0x282e14
00282e10b 0x282e18
00282e14
00282e14loc_282e14:
00282e14b 0x282e2c
00282e18
00282e18loc_282e18:
00282e18bl runtime.gcWriteBarrier2
00282e1cstr x4, [x25]
00282e20ldr x5, [x3+48]
00282e24str x5, [x25+8]
00282e28b 0x282e2c
00282e2c
00282e2cloc_282e2c:
00282e2cstr x4, [x3+48]
00282e30ldr x3, [sp+144]
00282e34ldrsb x27, [x3]
00282e38ldr x4, [sp+136]
00282e3cadrp x27, 0x7c9000
00282e40ldr w5, [x27+3056]
00282e44cbz w5, 0x282e4c
00282e48b 0x282e50
00282e4c
00282e4cloc_282e4c:
00282e4cb 0x282e64
00282e50
00282e50loc_282e50:
00282e50bl runtime.gcWriteBarrier2
00282e54str x4, [x25]
00282e58ldr x5, [x3+40]
00282e5cstr x5, [x25+8]
00282e60b 0x282e64
00282e64
00282e64loc_282e64:
00282e64str x4, [x3+40]
00282e68ldr x3, [sp+144]
00282e6cstr x3, [sp+56]
00282e70str x3, [sp+48]
00282e74stp xzr, xzr, [sp+32]
00282e78ldr x0, [sp+48]
00282e7cmov x1, xzr
00282e80mov x2, xzr
00282e84ldur x29, [sp-8]
00282e88ldr x30, [sp], 240
00282e8cret x30
00282e90
00282e90loc_282e90:
00282e90stp x0, x1, [sp+8]
00282e94stp x2, x3, [sp+24]
00282e98mov x3, x30
00282e9cbl runtime.morestack_noctxt.abi0
00282ea0ldp x0, x1, [sp+8]
00282ea4ldp x2, x3, [sp+24]
00282ea8b 0x282b00
00282eacudf 0
00282b00
00282eb0
00282eb0crypto/ecdh.(*nistCurve).NewPublicKey: ; void crypto/ecdh.(*nistCurve).NewPublicKey(crypto/ecdh.nistCurve * c, struct []uint8 key)
00282eb0ldr x16, [x28+16]
00282eb4sub x17, sp, 80
00282eb8subs xzr, x17, x16
00282ebcb.ls 0x28316c
00282ec0str x30, [sp-208]!
00282ec4stur x29, [sp-8]
00282ec8sub x29, sp, 8
00282eccstr x0, [sp+216]
00282ed0str x1, [sp+224]
00282ed4str x2, [sp+232]
00282ed8str x3, [sp+240]
00282edcstr xzr, [sp+72]
00282ee0stp xzr, xzr, [sp+56]
00282ee4ldr x3, [sp+232]
00282ee8str x3, [sp+48]
00282eecsubs xzr, x3, 0
00282ef0cset x4, eq
00282ef4strb w4, [sp+47]
00282ef8cbz x3, 0x282f00
00282efcb 0x282f04
00282f00
00282f00loc_282f00:
00282f00b 0x282f2c
00282f04
00282f04loc_282f04:
00282f04ldr x1, [sp+232]
00282f08ldr x3, [sp+224]
00282f0csubs xzr, x1, 0
00282f10b.hi 0x282f18
00282f14b 0x283160
00282f18
00282f18loc_282f18:
00282f18ldrb w3, [x3]
00282f1csubs wzr, w3, 4
00282f20cset x3, ne
00282f24strb w3, [sp+47]
00282f28b 0x282f2c
00282f2c
00282f2cloc_282f2c:
00282f2cldrb w3, [sp+47]
00282f30tbnz w3, 0, 0x282f38
00282f34b 0x282f74
00282f38
00282f38loc_282f38:
00282f38adrp x0, 0x43c000
00282f3cadd x0, x0, 444
00282f40orr x1, xzr, 31
00282f44bl errors.New
00282f48str x0, [sp+184]
00282f4cstr x1, [sp+192]
00282f50str xzr, [sp+72]
00282f54ldr x1, [sp+184]
00282f58ldr x2, [sp+192]
00282f5cstr x1, [sp+56]
00282f60str x2, [sp+64]
00282f64ldr x0, [sp+72]
00282f68ldur x29, [sp-8]
00282f6cldr x30, [sp], 208
00282f70ret x30
00282f74
00282f74loc_282f74:
00282f74ldr x0, [sp+224]
00282f78ldr x1, [sp+232]
00282f7cldr x2, [sp+240]
00282f80bl bytes.Clone
00282f84str x0, [sp+160]
00282f88str x1, [sp+168]
00282f8cstr x2, [sp+176]
00282f90adrp x0, 0x3e5000
00282f94add x0, x0, 2592
00282f98bl runtime.newobject
00282f9cstr x0, [sp+144]
00282fa0adrp x27, 0x7c9000
00282fa4ldr w3, [x27+3056]
00282fa8cbz w3, 0x282fb0
00282facb 0x282fb4
00282fb0
00282fb0loc_282fb0:
00282fb0b 0x282fd0
00282fb4
00282fb4loc_282fb4:
00282fb4str x0, [sp+136]
00282fb8mov x1, x0
00282fbcadrp x0, 0x3e5000
00282fc0add x0, x0, 2592
00282fc4bl runtime.wbZero
00282fc8ldr x0, [sp+136]
00282fccb 0x282fd0
00282fd0
00282fd0loc_282fd0:
00282fd0stp xzr, xzr, [x0]
00282fd4stp xzr, xzr, [x0+16]
00282fd8stp xzr, xzr, [x0+32]
00282fdcstr xzr, [x0+48]
00282fe0ldr x3, [sp+144]
00282fe4ldrsb x27, [x3]
00282fe8ldr x4, [sp+216]
00282fecadrp x5, 0x497000
00282ff0add x5, x5, 1200
00282ff4str x5, [x3]
00282ff8adrp x27, 0x7c9000
00282ffcldr w5, [x27+3056]
00283000cbz w5, 0x283008
00283004b 0x28300c
00283008
00283008loc_283008:
00283008b 0x283020
0028300c
0028300cloc_28300c:
0028300cbl runtime.gcWriteBarrier2
00283010str x4, [x25]
00283014ldr x5, [x3+8]
00283018str x5, [x25+8]
0028301cb 0x283020
00283020
00283020loc_283020:
00283020str x4, [x3+8]
00283024ldr x3, [sp+144]
00283028ldrsb x27, [x3]
0028302cldr x4, [sp+160]
00283030ldr x5, [sp+168]
00283034ldr x6, [sp+176]
00283038str x5, [x3+24]
0028303cstr x6, [x3+32]
00283040adrp x27, 0x7c8000
00283044ldr w5, [x27+3056]
00283048cbz w5, 0x283050
0028304cb 0x283054
00283050
00283050loc_283050:
00283050b 0x283068
00283054
00283054loc_283054:
00283054bl runtime.gcWriteBarrier2
00283058str x4, [x25]
0028305cldr x5, [x3+16]
00283060str x5, [x25+8]
00283064b 0x283068
00283068
00283068loc_283068:
00283068str x4, [x3+16]
0028306cldr x3, [sp+144]
00283070str x3, [sp+80]
00283074str xzr, [sp+152]
00283078stp xzr, xzr, [sp+184]
0028307cldr x3, [sp+216]
00283080ldrsb x27, [x3]
00283084ldr x26, [x3+32]
00283088ldr x3, [x26]
0028308cldr x0, [sp+224]
00283090ldr x1, [sp+232]
00283094ldr x2, [sp+240]
00283098blr x3
0028309cstr x0, [sp+152]
002830a0str x1, [sp+184]
002830a4str x2, [sp+192]
002830a8ldr x3, [sp+152]
002830acstr x3, [sp+128]
002830b0ldr x3, [sp+184]
002830b4ldr x4, [sp+192]
002830b8str x3, [sp+112]
002830bcstr x4, [sp+120]
002830c0ldr x3, [sp+128]
002830c4str x3, [sp+88]
002830c8ldr x3, [sp+120]
002830ccldr x4, [sp+112]
002830d0str x4, [sp+96]
002830d4str x3, [sp+104]
002830d8cbnz x4, 0x2830e0
002830dcb 0x283104
002830e0
002830e0loc_2830e0:
002830e0str xzr, [sp+72]
002830e4ldr x1, [sp+96]
002830e8ldr x2, [sp+104]
002830ecstr x1, [sp+56]
002830f0str x2, [sp+64]
002830f4ldr x0, [sp+72]
002830f8ldur x29, [sp-8]
002830fcldr x30, [sp], 208
00283100ret x30
00283104
00283104loc_283104:
00283104ldr x3, [sp+80]
00283108ldrsb x27, [x3]
0028310cldr x4, [sp+88]
00283110adrp x27, 0x7c8000
00283114ldr w5, [x27+3056]
00283118cbz w5, 0x283120
0028311cb 0x283124
00283120
00283120loc_283120:
00283120b 0x283138
00283124
00283124loc_283124:
00283124bl runtime.gcWriteBarrier2
00283128str x4, [x25]
0028312cldr x5, [x3+48]
00283130str x5, [x25+8]
00283134b 0x283138
00283138
00283138loc_283138:
00283138str x4, [x3+48]
0028313cldr x3, [sp+80]
00283140str x3, [sp+72]
00283144stp xzr, xzr, [sp+56]
00283148ldr x0, [sp+72]
0028314cmov x1, xzr
00283150mov x2, xzr
00283154ldur x29, [sp-8]
00283158ldr x30, [sp], 208
0028315cret x30
00283160
00283160loc_283160:
00283160mov x0, xzr
00283164bl runtime.panicIndex
00283168hint
0028316c
0028316cloc_28316c:
0028316cstp x0, x1, [sp+8]
00283170stp x2, x3, [sp+24]
00283174mov x3, x30
00283178bl runtime.morestack_noctxt.abi0
0028317cldp x0, x1, [sp+8]
00283180ldp x2, x3, [sp+24]
00283184b 0x282eb0
00283188udf 0
0028318cudf 0
00282eb0
00282eb0crypto/ecdh.(*nistCurve).NewPublicKey: ; void crypto/ecdh.(*nistCurve).NewPublicKey(crypto/ecdh.nistCurve * c, struct []uint8 key)
00282eb0ldr x16, [x28+16]
00282eb4sub x17, sp, 80
00282eb8subs xzr, x17, x16
00282ebcb.ls 0x28316c
00282ec0str x30, [sp-208]!
00282ec4stur x29, [sp-8]
00282ec8sub x29, sp, 8
00282eccstr x0, [sp+216]
00282ed0str x1, [sp+224]
00282ed4str x2, [sp+232]
00282ed8str x3, [sp+240]
00282edcstr xzr, [sp+72]
00282ee0stp xzr, xzr, [sp+56]
00282ee4ldr x3, [sp+232]
00282ee8str x3, [sp+48]
00282eecsubs xzr, x3, 0
00282ef0cset x4, eq
00282ef4strb w4, [sp+47]
00282ef8cbz x3, 0x282f00
00282efcb 0x282f04
00282f00
00282f00loc_282f00:
00282f00b 0x282f2c
00282f04
00282f04loc_282f04:
00282f04ldr x1, [sp+232]
00282f08ldr x3, [sp+224]
00282f0csubs xzr, x1, 0
00282f10b.hi 0x282f18
00282f14b 0x283160
00282f18
00282f18loc_282f18:
00282f18ldrb w3, [x3]
00282f1csubs wzr, w3, 4
00282f20cset x3, ne
00282f24strb w3, [sp+47]
00282f28b 0x282f2c
00282f2c
00282f2cloc_282f2c:
00282f2cldrb w3, [sp+47]
00282f30tbnz w3, 0, 0x282f38
00282f34b 0x282f74
00282f38
00282f38loc_282f38:
00282f38adrp x0, 0x43c000
00282f3cadd x0, x0, 444
00282f40orr x1, xzr, 31
00282f44bl errors.New
00282f48str x0, [sp+184]
00282f4cstr x1, [sp+192]
00282f50str xzr, [sp+72]
00282f54ldr x1, [sp+184]
00282f58ldr x2, [sp+192]
00282f5cstr x1, [sp+56]
00282f60str x2, [sp+64]
00282f64ldr x0, [sp+72]
00282f68ldur x29, [sp-8]
00282f6cldr x30, [sp], 208
00282f70ret x30
00282f74
00282f74loc_282f74:
00282f74ldr x0, [sp+224]
00282f78ldr x1, [sp+232]
00282f7cldr x2, [sp+240]
00282f80bl bytes.Clone
00282f84str x0, [sp+160]
00282f88str x1, [sp+168]
00282f8cstr x2, [sp+176]
00282f90adrp x0, 0x3e5000
00282f94add x0, x0, 2592
00282f98bl runtime.newobject
00282f9cstr x0, [sp+144]
00282fa0adrp x27, 0x7c9000
00282fa4ldr w3, [x27+3056]
00282fa8cbz w3, 0x282fb0
00282facb 0x282fb4
00282fb0
00282fb0loc_282fb0:
00282fb0b 0x282fd0
00282fb4
00282fb4loc_282fb4:
00282fb4str x0, [sp+136]
00282fb8mov x1, x0
00282fbcadrp x0, 0x3e5000
00282fc0add x0, x0, 2592
00282fc4bl runtime.wbZero
00282fc8ldr x0, [sp+136]
00282fccb 0x282fd0
00282fd0
00282fd0loc_282fd0:
00282fd0stp xzr, xzr, [x0]
00282fd4stp xzr, xzr, [x0+16]
00282fd8stp xzr, xzr, [x0+32]
00282fdcstr xzr, [x0+48]
00282fe0ldr x3, [sp+144]
00282fe4ldrsb x27, [x3]
00282fe8ldr x4, [sp+216]
00282fecadrp x5, 0x497000
00282ff0add x5, x5, 1200
00282ff4str x5, [x3]
00282ff8adrp x27, 0x7c9000
00282ffcldr w5, [x27+3056]
00283000cbz w5, 0x283008
00283004b 0x28300c
00283008
00283008loc_283008:
00283008b 0x283020
0028300c
0028300cloc_28300c:
0028300cbl runtime.gcWriteBarrier2
00283010str x4, [x25]
00283014ldr x5, [x3+8]
00283018str x5, [x25+8]
0028301cb 0x283020
00283020
00283020loc_283020:
00283020str x4, [x3+8]
00283024ldr x3, [sp+144]
00283028ldrsb x27, [x3]
0028302cldr x4, [sp+160]
00283030ldr x5, [sp+168]
00283034ldr x6, [sp+176]
00283038str x5, [x3+24]
0028303cstr x6, [x3+32]
00283040adrp x27, 0x7c8000
00283044ldr w5, [x27+3056]
00283048cbz w5, 0x283050
0028304cb 0x283054
00283050
00283050loc_283050:
00283050b 0x283068
00283054
00283054loc_283054:
00283054bl runtime.gcWriteBarrier2
00283058str x4, [x25]
0028305cldr x5, [x3+16]
00283060str x5, [x25+8]
00283064b 0x283068
00283068
00283068loc_283068:
00283068str x4, [x3+16]
0028306cldr x3, [sp+144]
00283070str x3, [sp+80]
00283074str xzr, [sp+152]
00283078stp xzr, xzr, [sp+184]
0028307cldr x3, [sp+216]
00283080ldrsb x27, [x3]
00283084ldr x26, [x3+32]
00283088ldr x3, [x26]
0028308cldr x0, [sp+224]
00283090ldr x1, [sp+232]
00283094ldr x2, [sp+240]
00283098blr x3
0028309cstr x0, [sp+152]
002830a0str x1, [sp+184]
002830a4str x2, [sp+192]
002830a8ldr x3, [sp+152]
002830acstr x3, [sp+128]
002830b0ldr x3, [sp+184]
002830b4ldr x4, [sp+192]
002830b8str x3, [sp+112]
002830bcstr x4, [sp+120]
002830c0ldr x3, [sp+128]
002830c4str x3, [sp+88]
002830c8ldr x3, [sp+120]
002830ccldr x4, [sp+112]
002830d0str x4, [sp+96]
002830d4str x3, [sp+104]
002830d8cbnz x4, 0x2830e0
002830dcb 0x283104
002830e0
002830e0loc_2830e0:
002830e0str xzr, [sp+72]
002830e4ldr x1, [sp+96]
002830e8ldr x2, [sp+104]
002830ecstr x1, [sp+56]
002830f0str x2, [sp+64]
002830f4ldr x0, [sp+72]
002830f8ldur x29, [sp-8]
002830fcldr x30, [sp], 208
00283100ret x30
00283104
00283104loc_283104:
00283104ldr x3, [sp+80]
00283108ldrsb x27, [x3]
0028310cldr x4, [sp+88]
00283110adrp x27, 0x7c8000
00283114ldr w5, [x27+3056]
00283118cbz w5, 0x283120
0028311cb 0x283124
00283120
00283120loc_283120:
00283120b 0x283138
00283124
00283124loc_283124:
00283124bl runtime.gcWriteBarrier2
00283128str x4, [x25]
0028312cldr x5, [x3+48]
00283130str x5, [x25+8]
00283134b 0x283138
00283138
00283138loc_283138:
00283138str x4, [x3+48]
0028313cldr x3, [sp+80]
00283140str x3, [sp+72]
00283144stp xzr, xzr, [sp+56]
00283148ldr x0, [sp+72]
0028314cmov x1, xzr
00283150mov x2, xzr
00283154ldur x29, [sp-8]
00283158ldr x30, [sp], 208
0028315cret x30
00283160
00283160loc_283160:
00283160mov x0, xzr
00283164bl runtime.panicIndex
00283168hint
0028316c
0028316cloc_28316c:
0028316cstp x0, x1, [sp+8]
00283170stp x2, x3, [sp+24]
00283174mov x3, x30
00283178bl runtime.morestack_noctxt.abi0
0028317cldp x0, x1, [sp+8]
00283180ldp x2, x3, [sp+24]
00283184b 0x282eb0
00283188udf 0
0028318cudf 0
00282eb0
00283190
00283190crypto/ecdh.(*nistCurve).ecdh: ; void crypto/ecdh.(*nistCurve).ecdh(crypto/ecdh.nistCurve * c, crypto/ecdh.PrivateKey * local, crypto/ecdh.PublicKey * remote)
00283190ldr x16, [x28+16]
00283194sub x17, sp, 48
00283198subs xzr, x17, x16
0028319cb.ls 0x283284
002831a0str x30, [sp-176]!
002831a4stur x29, [sp-8]
002831a8sub x29, sp, 8
002831acstr x0, [sp+184]
002831b0str x1, [sp+192]
002831b4str x2, [sp+200]
002831b8str xzr, [sp+48]
002831bcstp xzr, xzr, [sp+56]
002831c0stp xzr, xzr, [sp+32]
002831c4str xzr, [sp+96]
002831c8stp xzr, xzr, [sp+104]
002831ccstp xzr, xzr, [sp+80]
002831d0ldr x2, [sp+192]
002831d4ldrsb x27, [x2]
002831d8ldr x2, [x2+56]
002831dcstr x2, [sp+72]
002831e0ldr x2, [sp+200]
002831e4ldrsb x27, [x2]
002831e8ldr x1, [x2+48]
002831ecstr x1, [sp+160]
002831f0ldr x2, [sp+184]
002831f4ldrsb x27, [x2]
002831f8ldr x26, [x2+40]
002831fcldr x2, [x26]
00283200ldr x0, [sp+72]
00283204blr x2
00283208str x0, [sp+96]
0028320cstr x1, [sp+104]
00283210str x2, [sp+112]
00283214str x3, [sp+80]
00283218str x4, [sp+88]
0028321cldr x2, [sp+96]
00283220ldr x3, [sp+104]
00283224ldr x4, [sp+112]
00283228str x2, [sp+136]
0028322cstr x3, [sp+144]
00283230str x4, [sp+152]
00283234ldr x2, [sp+80]
00283238ldr x3, [sp+88]
0028323cstr x2, [sp+120]
00283240str x3, [sp+128]
00283244ldr x2, [sp+136]
00283248ldr x3, [sp+144]
0028324cldr x4, [sp+152]
00283250str x2, [sp+48]
00283254str x3, [sp+56]
00283258str x4, [sp+64]
0028325cldr x3, [sp+120]
00283260ldr x4, [sp+128]
00283264str x3, [sp+32]
00283268str x4, [sp+40]
0028326cldr x0, [sp+48]
00283270ldr x1, [sp+56]
00283274ldr x2, [sp+64]
00283278ldur x29, [sp-8]
0028327cldr x30, [sp], 176
00283280ret x30
00283284
00283284loc_283284:
00283284stp x0, x1, [sp+8]
00283288str x2, [sp+24]
0028328cmov x3, x30
00283290bl runtime.morestack_noctxt.abi0
00283294ldp x0, x1, [sp+8]
00283298ldr x2, [sp+24]
0028329cb 0x283190
00283190
00283190crypto/ecdh.(*nistCurve).ecdh: ; void crypto/ecdh.(*nistCurve).ecdh(crypto/ecdh.nistCurve * c, crypto/ecdh.PrivateKey * local, crypto/ecdh.PublicKey * remote)
00283190ldr x16, [x28+16]
00283194sub x17, sp, 48
00283198subs xzr, x17, x16
0028319cb.ls 0x283284
002831a0str x30, [sp-176]!
002831a4stur x29, [sp-8]
002831a8sub x29, sp, 8
002831acstr x0, [sp+184]
002831b0str x1, [sp+192]
002831b4str x2, [sp+200]
002831b8str xzr, [sp+48]
002831bcstp xzr, xzr, [sp+56]
002831c0stp xzr, xzr, [sp+32]
002831c4str xzr, [sp+96]
002831c8stp xzr, xzr, [sp+104]
002831ccstp xzr, xzr, [sp+80]
002831d0ldr x2, [sp+192]
002831d4ldrsb x27, [x2]
002831d8ldr x2, [x2+56]
002831dcstr x2, [sp+72]
002831e0ldr x2, [sp+200]
002831e4ldrsb x27, [x2]
002831e8ldr x1, [x2+48]
002831ecstr x1, [sp+160]
002831f0ldr x2, [sp+184]
002831f4ldrsb x27, [x2]
002831f8ldr x26, [x2+40]
002831fcldr x2, [x26]
00283200ldr x0, [sp+72]
00283204blr x2
00283208str x0, [sp+96]
0028320cstr x1, [sp+104]
00283210str x2, [sp+112]
00283214str x3, [sp+80]
00283218str x4, [sp+88]
0028321cldr x2, [sp+96]
00283220ldr x3, [sp+104]
00283224ldr x4, [sp+112]
00283228str x2, [sp+136]
0028322cstr x3, [sp+144]
00283230str x4, [sp+152]
00283234ldr x2, [sp+80]
00283238ldr x3, [sp+88]
0028323cstr x2, [sp+120]
00283240str x3, [sp+128]
00283244ldr x2, [sp+136]
00283248ldr x3, [sp+144]
0028324cldr x4, [sp+152]
00283250str x2, [sp+48]
00283254str x3, [sp+56]
00283258str x4, [sp+64]
0028325cldr x3, [sp+120]
00283260ldr x4, [sp+128]
00283264str x3, [sp+32]
00283268str x4, [sp+40]
0028326cldr x0, [sp+48]
00283270ldr x1, [sp+56]
00283274ldr x2, [sp+64]
00283278ldur x29, [sp-8]
0028327cldr x30, [sp], 176
00283280ret x30
00283284
00283284loc_283284:
00283284stp x0, x1, [sp+8]
00283288str x2, [sp+24]
0028328cmov x3, x30
00283290bl runtime.morestack_noctxt.abi0
00283294ldp x0, x1, [sp+8]
00283298ldr x2, [sp+24]
0028329cb 0x283190
00283190
002832a0
002832a0crypto/ecdh.P256: ; void crypto/ecdh.P256(void)
002832a0str x30, [sp-32]!
002832a4stur x29, [sp-8]
002832a8sub x29, sp, 8
002832acstp xzr, xzr, [sp+8]
002832b0adrp x27, 0x78a000
002832b4ldr x2, [x27+2008]
002832b8adrp x3, 0x496000
002832bcadd x3, x3, 1200
002832c0str x3, [sp+8]
002832c4str x2, [sp+16]
002832c8ldr x0, [sp+8]
002832ccldr x1, [sp+16]
002832d0add x29, sp, 24
002832d4add sp, sp, 32
002832d8ret x30
002832dcudf 0
002832a0
002832a0crypto/ecdh.P256: ; void crypto/ecdh.P256(void)
002832a0str x30, [sp-32]!
002832a4stur x29, [sp-8]
002832a8sub x29, sp, 8
002832acstp xzr, xzr, [sp+8]
002832b0adrp x27, 0x78a000
002832b4ldr x2, [x27+2008]
002832b8adrp x3, 0x496000
002832bcadd x3, x3, 1200
002832c0str x3, [sp+8]
002832c4str x2, [sp+16]
002832c8ldr x0, [sp+8]
002832ccldr x1, [sp+16]
002832d0add x29, sp, 24
002832d4add sp, sp, 32
002832d8ret x30
002832dcudf 0
002832a0
002832e0
002832e0crypto/ecdh.P384: ; void crypto/ecdh.P384(void)
002832e0str x30, [sp-32]!
002832e4stur x29, [sp-8]
002832e8sub x29, sp, 8
002832ecstp xzr, xzr, [sp+8]
002832f0adrp x27, 0x78a000
002832f4ldr x2, [x27+2016]
002832f8adrp x3, 0x496000
002832fcadd x3, x3, 1200
00283300str x3, [sp+8]
00283304str x2, [sp+16]
00283308ldr x0, [sp+8]
0028330cldr x1, [sp+16]
00283310add x29, sp, 24
00283314add sp, sp, 32
00283318ret x30
0028331cudf 0
002832e0
002832e0crypto/ecdh.P384: ; void crypto/ecdh.P384(void)
002832e0str x30, [sp-32]!
002832e4stur x29, [sp-8]
002832e8sub x29, sp, 8
002832ecstp xzr, xzr, [sp+8]
002832f0adrp x27, 0x78a000
002832f4ldr x2, [x27+2016]
002832f8adrp x3, 0x496000
002832fcadd x3, x3, 1200
00283300str x3, [sp+8]
00283304str x2, [sp+16]
00283308ldr x0, [sp+8]
0028330cldr x1, [sp+16]
00283310add x29, sp, 24
00283314add sp, sp, 32
00283318ret x30
0028331cudf 0
002832e0
00283320
00283320crypto/ecdh.P521: ; void crypto/ecdh.P521(void)
00283320str x30, [sp-32]!
00283324stur x29, [sp-8]
00283328sub x29, sp, 8
0028332cstp xzr, xzr, [sp+8]
00283330adrp x27, 0x78a000
00283334ldr x2, [x27+2024]
00283338adrp x3, 0x496000
0028333cadd x3, x3, 1200
00283340str x3, [sp+8]
00283344str x2, [sp+16]
00283348ldr x0, [sp+8]
0028334cldr x1, [sp+16]
00283350add x29, sp, 24
00283354add sp, sp, 32
00283358ret x30
0028335cudf 0
00283320
00283320crypto/ecdh.P521: ; void crypto/ecdh.P521(void)
00283320str x30, [sp-32]!
00283324stur x29, [sp-8]
00283328sub x29, sp, 8
0028332cstp xzr, xzr, [sp+8]
00283330adrp x27, 0x78a000
00283334ldr x2, [x27+2024]
00283338adrp x3, 0x496000
0028333cadd x3, x3, 1200
00283340str x3, [sp+8]
00283344str x2, [sp+16]
00283348ldr x0, [sp+8]
0028334cldr x1, [sp+16]
00283350add x29, sp, 24
00283354add sp, sp, 32
00283358ret x30
0028335cudf 0
00283320
00283360
00283360crypto/ecdh.X25519: ; void crypto/ecdh.X25519(void)
00283360str x30, [sp-32]!
00283364stur x29, [sp-8]
00283368sub x29, sp, 8
0028336cstp xzr, xzr, [sp+8]
00283370adrp x27, 0x78a000
00283374ldr x2, [x27+2032]
00283378adrp x3, 0x496000
0028337cadd x3, x3, 1144
00283380str x3, [sp+8]
00283384str x2, [sp+16]
00283388ldr x0, [sp+8]
0028338cldr x1, [sp+16]
00283390add x29, sp, 24
00283394add sp, sp, 32
00283398ret x30
0028339cudf 0
00283360
00283360crypto/ecdh.X25519: ; void crypto/ecdh.X25519(void)
00283360str x30, [sp-32]!
00283364stur x29, [sp-8]
00283368sub x29, sp, 8
0028336cstp xzr, xzr, [sp+8]
00283370adrp x27, 0x78a000
00283374ldr x2, [x27+2032]
00283378adrp x3, 0x496000
0028337cadd x3, x3, 1144
00283380str x3, [sp+8]
00283384str x2, [sp+16]
00283388ldr x0, [sp+8]
0028338cldr x1, [sp+16]
00283390add x29, sp, 24
00283394add sp, sp, 32
00283398ret x30
0028339cudf 0
00283360
002833a0
002833a0crypto/ecdh.(*x25519Curve).String: ; void crypto/ecdh.(*x25519Curve).String(crypto/ecdh.x25519Curve * c)
002833a0str x30, [sp-32]!
002833a4stur x29, [sp-8]
002833a8sub x29, sp, 8
002833acstr x0, [sp+40]
002833b0stp xzr, xzr, [sp+8]
002833b4adrp x0, 0x42d000
002833b8add x0, x0, 2935
002833bcstr x0, [sp+8]
002833c0orr x1, xzr, 6
002833c4str x1, [sp+16]
002833c8add x29, sp, 24
002833ccadd sp, sp, 32
002833d0ret x30
002833d4udf 0
002833d8udf 0
002833dcudf 0
002833a0
002833a0crypto/ecdh.(*x25519Curve).String: ; void crypto/ecdh.(*x25519Curve).String(crypto/ecdh.x25519Curve * c)
002833a0str x30, [sp-32]!
002833a4stur x29, [sp-8]
002833a8sub x29, sp, 8
002833acstr x0, [sp+40]
002833b0stp xzr, xzr, [sp+8]
002833b4adrp x0, 0x42d000
002833b8add x0, x0, 2935
002833bcstr x0, [sp+8]
002833c0orr x1, xzr, 6
002833c4str x1, [sp+16]
002833c8add x29, sp, 24
002833ccadd sp, sp, 32
002833d0ret x30
002833d4udf 0
002833d8udf 0
002833dcudf 0
002833a0
002833e0
002833e0crypto/ecdh.(*x25519Curve).GenerateKey: ; void crypto/ecdh.(*x25519Curve).GenerateKey(crypto/ecdh.x25519Curve * c, io.Reader rand)
002833e0ldr x16, [x28+16]
002833e4sub x17, sp, 80
002833e8subs xzr, x17, x16
002833ecb.ls 0x283574
002833f0str x30, [sp-208]!
002833f4stur x29, [sp-8]
002833f8sub x29, sp, 8
002833fcstr x0, [sp+216]
00283400str x1, [sp+224]
00283404str x2, [sp+232]
00283408str xzr, [sp+88]
0028340cstp xzr, xzr, [sp+72]
00283410adrp x27, 0x7c8000
00283414ldrb w3, [x27+1551]
00283418tbnz w3, 0, 0x283420
0028341cb 0x28345c
00283420
00283420loc_283420:
00283420adrp x0, 0x44a000
00283424add x0, x0, 654
00283428orr x1, xzr, 63
0028342cbl errors.New
00283430str x0, [sp+184]
00283434str x1, [sp+192]
00283438str xzr, [sp+88]
0028343cldr x1, [sp+184]
00283440ldr x2, [sp+192]
00283444str x1, [sp+72]
00283448str x2, [sp+80]
0028344cldr x0, [sp+88]
00283450ldur x29, [sp-8]
00283454ldr x30, [sp], 208
00283458ret x30
0028345c
0028345cloc_28345c:
0028345cadrp x27, 0x73d000
00283460ldr x2, [x27+2056]
00283464adrp x27, 0x73d000
00283468ldr x1, [x27+2056]
0028346cadrp x0, 0x372000
00283470add x0, x0, 3072
00283474bl runtime.makeslice
00283478adrp x27, 0x73d000
0028347cldr x3, [x27+2056]
00283480adrp x27, 0x73d000
00283484ldr x4, [x27+2056]
00283488str x0, [sp+96]
0028348cstr x3, [sp+104]
00283490str x4, [sp+112]
00283494ldr x0, [sp+224]
00283498ldr x1, [sp+232]
0028349cbl crypto/internal/randutil.MaybeReadByte
002834a0stp xzr, xzr, [sp+184]
002834a4ldr x0, [sp+224]
002834a8ldr x2, [sp+96]
002834acldr x3, [sp+104]
002834b0ldr x1, [sp+232]
002834b4ldr x4, [sp+112]
002834b8bl io.ReadFull
002834bcstr x0, [sp+64]
002834c0str x1, [sp+184]
002834c4str x2, [sp+192]
002834c8ldr x3, [sp+64]
002834ccstr x3, [sp+56]
002834d0str x1, [sp+160]
002834d4str x2, [sp+168]
002834d8str x1, [sp+120]
002834dcstr x2, [sp+128]
002834e0cbnz x1, 0x2834e8
002834e4b 0x28350c
002834e8
002834e8loc_2834e8:
002834e8str xzr, [sp+88]
002834ecldr x1, [sp+120]
002834f0ldr x2, [sp+128]
002834f4str x1, [sp+72]
002834f8str x2, [sp+80]
002834fcldr x0, [sp+88]
00283500ldur x29, [sp-8]
00283504ldr x30, [sp], 208
00283508ret x30
0028350c
0028350cloc_28350c:
0028350cstr xzr, [sp+176]
00283510stp xzr, xzr, [sp+184]
00283514ldr x1, [sp+96]
00283518ldr x2, [sp+104]
0028351cldr x3, [sp+112]
00283520ldr x0, [sp+216]
00283524bl crypto/ecdh.(*x25519Curve).NewPrivateKey
00283528str x0, [sp+176]
0028352cstr x1, [sp+184]
00283530str x2, [sp+192]
00283534ldr x4, [sp+176]
00283538str x4, [sp+152]
0028353cldr x4, [sp+184]
00283540ldr x5, [sp+192]
00283544str x4, [sp+136]
00283548str x5, [sp+144]
0028354cldr x4, [sp+152]
00283550str x4, [sp+88]
00283554ldr x1, [sp+136]
00283558ldr x2, [sp+144]
0028355cstr x1, [sp+72]
00283560str x2, [sp+80]
00283564ldr x0, [sp+88]
00283568ldur x29, [sp-8]
0028356cldr x30, [sp], 208
00283570ret x30
00283574
00283574loc_283574:
00283574stp x0, x1, [sp+8]
00283578str x2, [sp+24]
0028357cmov x3, x30
00283580bl runtime.morestack_noctxt.abi0
00283584ldp x0, x1, [sp+8]
00283588ldr x2, [sp+24]
0028358cb 0x2833e0
002833e0
002833e0crypto/ecdh.(*x25519Curve).GenerateKey: ; void crypto/ecdh.(*x25519Curve).GenerateKey(crypto/ecdh.x25519Curve * c, io.Reader rand)
002833e0ldr x16, [x28+16]
002833e4sub x17, sp, 80
002833e8subs xzr, x17, x16
002833ecb.ls 0x283574
002833f0str x30, [sp-208]!
002833f4stur x29, [sp-8]
002833f8sub x29, sp, 8
002833fcstr x0, [sp+216]
00283400str x1, [sp+224]
00283404str x2, [sp+232]
00283408str xzr, [sp+88]
0028340cstp xzr, xzr, [sp+72]
00283410adrp x27, 0x7c8000
00283414ldrb w3, [x27+1551]
00283418tbnz w3, 0, 0x283420
0028341cb 0x28345c
00283420
00283420loc_283420:
00283420adrp x0, 0x44a000
00283424add x0, x0, 654
00283428orr x1, xzr, 63
0028342cbl errors.New
00283430str x0, [sp+184]
00283434str x1, [sp+192]
00283438str xzr, [sp+88]
0028343cldr x1, [sp+184]
00283440ldr x2, [sp+192]
00283444str x1, [sp+72]
00283448str x2, [sp+80]
0028344cldr x0, [sp+88]
00283450ldur x29, [sp-8]
00283454ldr x30, [sp], 208
00283458ret x30
0028345c
0028345cloc_28345c:
0028345cadrp x27, 0x73d000
00283460ldr x2, [x27+2056]
00283464adrp x27, 0x73d000
00283468ldr x1, [x27+2056]
0028346cadrp x0, 0x372000
00283470add x0, x0, 3072
00283474bl runtime.makeslice
00283478adrp x27, 0x73d000
0028347cldr x3, [x27+2056]
00283480adrp x27, 0x73d000
00283484ldr x4, [x27+2056]
00283488str x0, [sp+96]
0028348cstr x3, [sp+104]
00283490str x4, [sp+112]
00283494ldr x0, [sp+224]
00283498ldr x1, [sp+232]
0028349cbl crypto/internal/randutil.MaybeReadByte
002834a0stp xzr, xzr, [sp+184]
002834a4ldr x0, [sp+224]
002834a8ldr x2, [sp+96]
002834acldr x3, [sp+104]
002834b0ldr x1, [sp+232]
002834b4ldr x4, [sp+112]
002834b8bl io.ReadFull
002834bcstr x0, [sp+64]
002834c0str x1, [sp+184]
002834c4str x2, [sp+192]
002834c8ldr x3, [sp+64]
002834ccstr x3, [sp+56]
002834d0str x1, [sp+160]
002834d4str x2, [sp+168]
002834d8str x1, [sp+120]
002834dcstr x2, [sp+128]
002834e0cbnz x1, 0x2834e8
002834e4b 0x28350c
002834e8
002834e8loc_2834e8:
002834e8str xzr, [sp+88]
002834ecldr x1, [sp+120]
002834f0ldr x2, [sp+128]
002834f4str x1, [sp+72]
002834f8str x2, [sp+80]
002834fcldr x0, [sp+88]
00283500ldur x29, [sp-8]
00283504ldr x30, [sp], 208
00283508ret x30
0028350c
0028350cloc_28350c:
0028350cstr xzr, [sp+176]
00283510stp xzr, xzr, [sp+184]
00283514ldr x1, [sp+96]
00283518ldr x2, [sp+104]
0028351cldr x3, [sp+112]
00283520ldr x0, [sp+216]
00283524bl crypto/ecdh.(*x25519Curve).NewPrivateKey
00283528str x0, [sp+176]
0028352cstr x1, [sp+184]
00283530str x2, [sp+192]
00283534ldr x4, [sp+176]
00283538str x4, [sp+152]
0028353cldr x4, [sp+184]
00283540ldr x5, [sp+192]
00283544str x4, [sp+136]
00283548str x5, [sp+144]
0028354cldr x4, [sp+152]
00283550str x4, [sp+88]
00283554ldr x1, [sp+136]
00283558ldr x2, [sp+144]
0028355cstr x1, [sp+72]
00283560str x2, [sp+80]
00283564ldr x0, [sp+88]
00283568ldur x29, [sp-8]
0028356cldr x30, [sp], 208
00283570ret x30
00283574
00283574loc_283574:
00283574stp x0, x1, [sp+8]
00283578str x2, [sp+24]
0028357cmov x3, x30
00283580bl runtime.morestack_noctxt.abi0
00283584ldp x0, x1, [sp+8]
00283588ldr x2, [sp+24]
0028358cb 0x2833e0
002833e0
00283590
00283590crypto/ecdh.(*x25519Curve).NewPrivateKey: ; void crypto/ecdh.(*x25519Curve).NewPrivateKey(crypto/ecdh.x25519Curve * c, struct []uint8 key)
00283590ldr x16, [x28+16]
00283594sub x17, sp, 128
00283598subs xzr, x17, x16
0028359cb.ls 0x283930
002835a0sub x20, sp, 256
002835a4stp x29, x30, [x20-8]
002835a8add sp, x20, 0
002835acsub x29, sp, 8
002835b0str x0, [sp+264]
002835b4str x1, [sp+272]
002835b8str x2, [sp+280]
002835bcstr x3, [sp+288]
002835c0str xzr, [sp+144]
002835c4stp xzr, xzr, [sp+128]
002835c8adrp x27, 0x7c8000
002835ccldrb w3, [x27+1551]
002835d0tbnz w3, 0, 0x2835d8
002835d4b 0x283614
002835d8
002835d8loc_2835d8:
002835d8adrp x0, 0x44a000
002835dcadd x0, x0, 654
002835e0orr x1, xzr, 63
002835e4bl errors.New
002835e8str x0, [sp+208]
002835ecstr x1, [sp+216]
002835f0str xzr, [sp+144]
002835f4ldr x1, [sp+208]
002835f8ldr x2, [sp+216]
002835fcstr x1, [sp+128]
00283600str x2, [sp+136]
00283604ldr x0, [sp+144]
00283608ldp x29, x30, [sp-8]
0028360cadd sp, sp, 256
00283610ret x30
00283614
00283614loc_283614:
00283614ldr x3, [sp+280]
00283618str x3, [sp+120]
0028361cadrp x27, 0x73d000
00283620ldr x4, [x27+2056]
00283624subs xzr, x3, x4
00283628b.ne 0x283630
0028362cb 0x28366c
00283630
00283630loc_283630:
00283630adrp x0, 0x43f000
00283634add x0, x0, 1875
00283638movz x1, 37
0028363cbl errors.New
00283640str x0, [sp+208]
00283644str x1, [sp+216]
00283648str xzr, [sp+144]
0028364cldr x1, [sp+208]
00283650ldr x2, [sp+216]
00283654str x1, [sp+128]
00283658str x2, [sp+136]
0028365cldr x0, [sp+144]
00283660ldp x29, x30, [sp-8]
00283664add sp, sp, 256
00283668ret x30
0028366c
0028366cloc_28366c:
0028366cadrp x27, 0x73d000
00283670ldr x2, [x27+2048]
00283674adrp x27, 0x73d000
00283678ldr x1, [x27+2048]
0028367cadrp x0, 0x372000
00283680add x0, x0, 3072
00283684bl runtime.makeslice
00283688adrp x27, 0x73d000
0028368cldr x3, [x27+2048]
00283690adrp x27, 0x73d000
00283694ldr x4, [x27+2048]
00283698str x0, [sp+152]
0028369cstr x3, [sp+160]
002836a0str x4, [sp+168]
002836a4adrp x27, 0x493000
002836a8add x27, x27, 1120
002836acldp x3, x4, [x27]
002836b0adrp x27, 0x493000
002836b4add x27, x27, 1136
002836b8ldp x5, x6, [x27]
002836bcstp x3, x4, [sp+88]
002836c0stp x5, x6, [sp+104]
002836c4add x6, sp, 88
002836c8ldrsb x27, [x6]
002836ccb 0x2836d0
002836d0
002836d0loc_2836d0:
002836d0str x6, [sp+184]
002836d4orr x8, xzr, 32
002836d8str x8, [sp+192]
002836dcstr x8, [sp+200]
002836e0ldr x0, [sp+152]
002836e4ldr x3, [sp+272]
002836e8ldr x1, [sp+160]
002836ecldr x4, [sp+280]
002836f0ldr x2, [sp+168]
002836f4ldr x5, [sp+288]
002836f8mov x7, x8
002836fcbl crypto/ecdh.x25519ScalarMult
00283700ldr x0, [sp+272]
00283704ldr x1, [sp+280]
00283708ldr x2, [sp+288]
0028370cbl bytes.Clone
00283710str x0, [sp+184]
00283714str x1, [sp+192]
00283718str x2, [sp+200]
0028371cadrp x0, 0x3f3000
00283720add x0, x0, 2816
00283724bl runtime.newobject
00283728str x0, [sp+176]
0028372cadrp x27, 0x7c8000
00283730ldr w9, [x27+3056]
00283734cbz w9, 0x28373c
00283738b 0x283740
0028373c
0028373cloc_28373c:
0028373cb 0x28375c
00283740
00283740loc_283740:
00283740str x0, [sp+232]
00283744mov x1, x0
00283748adrp x0, 0x3f3000
0028374cadd x0, x0, 2816
00283750bl runtime.wbZero
00283754ldr x0, [sp+232]
00283758b 0x28375c
0028375c
0028375cloc_28375c:
0028375cstp xzr, xzr, [x0]
00283760stp xzr, xzr, [x0+16]
00283764stp xzr, xzr, [x0+32]
00283768stp xzr, xzr, [x0+48]
0028376cldr x1, [sp+176]
00283770ldrsb x27, [x1]
00283774ldr x2, [sp+264]
00283778adrp x3, 0x496000
0028377cadd x3, x3, 1144
00283780str x3, [x1]
00283784adrp x27, 0x7c8000
00283788ldr w3, [x27+3056]
0028378ccbz w3, 0x283794
00283790b 0x283798
00283794
00283794loc_283794:
00283794b 0x2837ac
00283798
00283798loc_283798:
00283798bl runtime.gcWriteBarrier2
0028379cstr x2, [x25]
002837a0ldr x3, [x1+8]
002837a4str x3, [x25+8]
002837a8b 0x2837ac
002837ac
002837acloc_2837ac:
002837acstr x2, [x1+8]
002837b0ldr x1, [sp+176]
002837b4ldrsb x27, [x1]
002837b8ldr x2, [sp+184]
002837bcldr x3, [sp+192]
002837c0ldr x4, [sp+200]
002837c4str x3, [x1+24]
002837c8str x4, [x1+32]
002837ccadrp x27, 0x7c8000
002837d0ldr w3, [x27+3056]
002837d4cbz w3, 0x2837dc
002837d8b 0x2837e0
002837dc
002837dcloc_2837dc:
002837dcb 0x2837f4
002837e0
002837e0loc_2837e0:
002837e0bl runtime.gcWriteBarrier2
002837e4str x2, [x25]
002837e8ldr x3, [x1+16]
002837ecstr x3, [x25+8]
002837f0b 0x2837f4
002837f4
002837f4loc_2837f4:
002837f4str x2, [x1+16]
002837f8adrp x0, 0x3e4000
002837fcadd x0, x0, 2592
00283800bl runtime.newobject
00283804str x0, [sp+240]
00283808adrp x27, 0x7c8000
0028380cldr w1, [x27+3056]
00283810cbz w1, 0x283818
00283814b 0x28381c
00283818
00283818loc_283818:
00283818b 0x283838
0028381c
0028381cloc_28381c:
0028381cstr x0, [sp+224]
00283820mov x1, x0
00283824adrp x0, 0x3e4000
00283828add x0, x0, 2592
0028382cbl runtime.wbZero
00283830ldr x0, [sp+224]
00283834b 0x283838
00283838
00283838loc_283838:
00283838stp xzr, xzr, [x0]
0028383cstp xzr, xzr, [x0+16]
00283840stp xzr, xzr, [x0+32]
00283844str xzr, [x0+48]
00283848ldr x3, [sp+240]
0028384cldrsb x27, [x3]
00283850ldr x4, [sp+264]
00283854adrp x5, 0x496000
00283858add x5, x5, 1144
0028385cstr x5, [x3]
00283860adrp x27, 0x7c8000
00283864ldr w5, [x27+3056]
00283868cbz w5, 0x283870
0028386cb 0x283874
00283870
00283870loc_283870:
00283870b 0x283888
00283874
00283874loc_283874:
00283874bl runtime.gcWriteBarrier2
00283878str x4, [x25]
0028387cldr x5, [x3+8]
00283880str x5, [x25+8]
00283884b 0x283888
00283888
00283888loc_283888:
00283888str x4, [x3+8]
0028388cldr x3, [sp+240]
00283890ldrsb x27, [x3]
00283894ldr x4, [sp+152]
00283898ldr x5, [sp+160]
0028389cldr x6, [sp+168]
002838a0str x5, [x3+24]
002838a4str x6, [x3+32]
002838a8adrp x27, 0x7c8000
002838acldr w5, [x27+3056]
002838b0cbz w5, 0x2838b8
002838b4b 0x2838bc
002838b8
002838b8loc_2838b8:
002838b8b 0x2838d0
002838bc
002838bcloc_2838bc:
002838bcbl runtime.gcWriteBarrier2
002838c0str x4, [x25]
002838c4ldr x5, [x3+16]
002838c8str x5, [x25+8]
002838ccb 0x2838d0
002838d0
002838d0loc_2838d0:
002838d0str x4, [x3+16]
002838d4ldr x3, [sp+176]
002838d8ldrsb x27, [x3]
002838dcldr x4, [sp+240]
002838e0adrp x27, 0x7c8000
002838e4ldr w5, [x27+3056]
002838e8cbz w5, 0x2838f0
002838ecb 0x2838f4
002838f0
002838f0loc_2838f0:
002838f0b 0x283908
002838f4
002838f4loc_2838f4:
002838f4bl runtime.gcWriteBarrier2
002838f8str x4, [x25]
002838fcldr x5, [x3+40]
00283900str x5, [x25+8]
00283904b 0x283908
00283908
00283908loc_283908:
00283908str x4, [x3+40]
0028390cldr x3, [sp+176]
00283910str x3, [sp+144]
00283914stp xzr, xzr, [sp+128]
00283918ldr x0, [sp+144]
0028391cmov x1, xzr
00283920mov x2, xzr
00283924ldp x29, x30, [sp-8]
00283928add sp, sp, 256
0028392cret x30
00283930
00283930loc_283930:
00283930stp x0, x1, [sp+8]
00283934stp x2, x3, [sp+24]
00283938mov x3, x30
0028393cbl runtime.morestack_noctxt.abi0
00283940ldp x0, x1, [sp+8]
00283944ldp x2, x3, [sp+24]
00283948b 0x283590
0028394cudf 0
00283590
00283590crypto/ecdh.(*x25519Curve).NewPrivateKey: ; void crypto/ecdh.(*x25519Curve).NewPrivateKey(crypto/ecdh.x25519Curve * c, struct []uint8 key)
00283590ldr x16, [x28+16]
00283594sub x17, sp, 128
00283598subs xzr, x17, x16
0028359cb.ls 0x283930
002835a0sub x20, sp, 256
002835a4stp x29, x30, [x20-8]
002835a8add sp, x20, 0
002835acsub x29, sp, 8
002835b0str x0, [sp+264]
002835b4str x1, [sp+272]
002835b8str x2, [sp+280]
002835bcstr x3, [sp+288]
002835c0str xzr, [sp+144]
002835c4stp xzr, xzr, [sp+128]
002835c8adrp x27, 0x7c8000
002835ccldrb w3, [x27+1551]
002835d0tbnz w3, 0, 0x2835d8
002835d4b 0x283614
002835d8
002835d8loc_2835d8:
002835d8adrp x0, 0x44a000
002835dcadd x0, x0, 654
002835e0orr x1, xzr, 63
002835e4bl errors.New
002835e8str x0, [sp+208]
002835ecstr x1, [sp+216]
002835f0str xzr, [sp+144]
002835f4ldr x1, [sp+208]
002835f8ldr x2, [sp+216]
002835fcstr x1, [sp+128]
00283600str x2, [sp+136]
00283604ldr x0, [sp+144]
00283608ldp x29, x30, [sp-8]
0028360cadd sp, sp, 256
00283610ret x30
00283614
00283614loc_283614:
00283614ldr x3, [sp+280]
00283618str x3, [sp+120]
0028361cadrp x27, 0x73d000
00283620ldr x4, [x27+2056]
00283624subs xzr, x3, x4
00283628b.ne 0x283630
0028362cb 0x28366c
00283630
00283630loc_283630:
00283630adrp x0, 0x43f000
00283634add x0, x0, 1875
00283638movz x1, 37
0028363cbl errors.New
00283640str x0, [sp+208]
00283644str x1, [sp+216]
00283648str xzr, [sp+144]
0028364cldr x1, [sp+208]
00283650ldr x2, [sp+216]
00283654str x1, [sp+128]
00283658str x2, [sp+136]
0028365cldr x0, [sp+144]
00283660ldp x29, x30, [sp-8]
00283664add sp, sp, 256
00283668ret x30
0028366c
0028366cloc_28366c:
0028366cadrp x27, 0x73d000
00283670ldr x2, [x27+2048]
00283674adrp x27, 0x73d000
00283678ldr x1, [x27+2048]
0028367cadrp x0, 0x372000
00283680add x0, x0, 3072
00283684bl runtime.makeslice
00283688adrp x27, 0x73d000
0028368cldr x3, [x27+2048]
00283690adrp x27, 0x73d000
00283694ldr x4, [x27+2048]
00283698str x0, [sp+152]
0028369cstr x3, [sp+160]
002836a0str x4, [sp+168]
002836a4adrp x27, 0x493000
002836a8add x27, x27, 1120
002836acldp x3, x4, [x27]
002836b0adrp x27, 0x493000
002836b4add x27, x27, 1136
002836b8ldp x5, x6, [x27]
002836bcstp x3, x4, [sp+88]
002836c0stp x5, x6, [sp+104]
002836c4add x6, sp, 88
002836c8ldrsb x27, [x6]
002836ccb 0x2836d0
002836d0
002836d0loc_2836d0:
002836d0str x6, [sp+184]
002836d4orr x8, xzr, 32
002836d8str x8, [sp+192]
002836dcstr x8, [sp+200]
002836e0ldr x0, [sp+152]
002836e4ldr x3, [sp+272]
002836e8ldr x1, [sp+160]
002836ecldr x4, [sp+280]
002836f0ldr x2, [sp+168]
002836f4ldr x5, [sp+288]
002836f8mov x7, x8
002836fcbl crypto/ecdh.x25519ScalarMult
00283700ldr x0, [sp+272]
00283704ldr x1, [sp+280]
00283708ldr x2, [sp+288]
0028370cbl bytes.Clone
00283710str x0, [sp+184]
00283714str x1, [sp+192]
00283718str x2, [sp+200]
0028371cadrp x0, 0x3f3000
00283720add x0, x0, 2816
00283724bl runtime.newobject
00283728str x0, [sp+176]
0028372cadrp x27, 0x7c8000
00283730ldr w9, [x27+3056]
00283734cbz w9, 0x28373c
00283738b 0x283740
0028373c
0028373cloc_28373c:
0028373cb 0x28375c
00283740
00283740loc_283740:
00283740str x0, [sp+232]
00283744mov x1, x0
00283748adrp x0, 0x3f3000
0028374cadd x0, x0, 2816
00283750bl runtime.wbZero
00283754ldr x0, [sp+232]
00283758b 0x28375c
0028375c
0028375cloc_28375c:
0028375cstp xzr, xzr, [x0]
00283760stp xzr, xzr, [x0+16]
00283764stp xzr, xzr, [x0+32]
00283768stp xzr, xzr, [x0+48]
0028376cldr x1, [sp+176]
00283770ldrsb x27, [x1]
00283774ldr x2, [sp+264]
00283778adrp x3, 0x496000
0028377cadd x3, x3, 1144
00283780str x3, [x1]
00283784adrp x27, 0x7c8000
00283788ldr w3, [x27+3056]
0028378ccbz w3, 0x283794
00283790b 0x283798
00283794
00283794loc_283794:
00283794b 0x2837ac
00283798
00283798loc_283798:
00283798bl runtime.gcWriteBarrier2
0028379cstr x2, [x25]
002837a0ldr x3, [x1+8]
002837a4str x3, [x25+8]
002837a8b 0x2837ac
002837ac
002837acloc_2837ac:
002837acstr x2, [x1+8]
002837b0ldr x1, [sp+176]
002837b4ldrsb x27, [x1]
002837b8ldr x2, [sp+184]
002837bcldr x3, [sp+192]
002837c0ldr x4, [sp+200]
002837c4str x3, [x1+24]
002837c8str x4, [x1+32]
002837ccadrp x27, 0x7c8000
002837d0ldr w3, [x27+3056]
002837d4cbz w3, 0x2837dc
002837d8b 0x2837e0
002837dc
002837dcloc_2837dc:
002837dcb 0x2837f4
002837e0
002837e0loc_2837e0:
002837e0bl runtime.gcWriteBarrier2
002837e4str x2, [x25]
002837e8ldr x3, [x1+16]
002837ecstr x3, [x25+8]
002837f0b 0x2837f4
002837f4
002837f4loc_2837f4:
002837f4str x2, [x1+16]
002837f8adrp x0, 0x3e4000
002837fcadd x0, x0, 2592
00283800bl runtime.newobject
00283804str x0, [sp+240]
00283808adrp x27, 0x7c8000
0028380cldr w1, [x27+3056]
00283810cbz w1, 0x283818
00283814b 0x28381c
00283818
00283818loc_283818:
00283818b 0x283838
0028381c
0028381cloc_28381c:
0028381cstr x0, [sp+224]
00283820mov x1, x0
00283824adrp x0, 0x3e4000
00283828add x0, x0, 2592
0028382cbl runtime.wbZero
00283830ldr x0, [sp+224]
00283834b 0x283838
00283838
00283838loc_283838:
00283838stp xzr, xzr, [x0]
0028383cstp xzr, xzr, [x0+16]
00283840stp xzr, xzr, [x0+32]
00283844str xzr, [x0+48]
00283848ldr x3, [sp+240]
0028384cldrsb x27, [x3]
00283850ldr x4, [sp+264]
00283854adrp x5, 0x496000
00283858add x5, x5, 1144
0028385cstr x5, [x3]
00283860adrp x27, 0x7c8000
00283864ldr w5, [x27+3056]
00283868cbz w5, 0x283870
0028386cb 0x283874
00283870
00283870loc_283870:
00283870b 0x283888
00283874
00283874loc_283874:
00283874bl runtime.gcWriteBarrier2
00283878str x4, [x25]
0028387cldr x5, [x3+8]
00283880str x5, [x25+8]
00283884b 0x283888
00283888
00283888loc_283888:
00283888str x4, [x3+8]
0028388cldr x3, [sp+240]
00283890ldrsb x27, [x3]
00283894ldr x4, [sp+152]
00283898ldr x5, [sp+160]
0028389cldr x6, [sp+168]
002838a0str x5, [x3+24]
002838a4str x6, [x3+32]
002838a8adrp x27, 0x7c8000
002838acldr w5, [x27+3056]
002838b0cbz w5, 0x2838b8
002838b4b 0x2838bc
002838b8
002838b8loc_2838b8:
002838b8b 0x2838d0
002838bc
002838bcloc_2838bc:
002838bcbl runtime.gcWriteBarrier2
002838c0str x4, [x25]
002838c4ldr x5, [x3+16]
002838c8str x5, [x25+8]
002838ccb 0x2838d0
002838d0
002838d0loc_2838d0:
002838d0str x4, [x3+16]
002838d4ldr x3, [sp+176]
002838d8ldrsb x27, [x3]
002838dcldr x4, [sp+240]
002838e0adrp x27, 0x7c8000
002838e4ldr w5, [x27+3056]
002838e8cbz w5, 0x2838f0
002838ecb 0x2838f4
002838f0
002838f0loc_2838f0:
002838f0b 0x283908
002838f4
002838f4loc_2838f4:
002838f4bl runtime.gcWriteBarrier2
002838f8str x4, [x25]
002838fcldr x5, [x3+40]
00283900str x5, [x25+8]
00283904b 0x283908
00283908
00283908loc_283908:
00283908str x4, [x3+40]
0028390cldr x3, [sp+176]
00283910str x3, [sp+144]
00283914stp xzr, xzr, [sp+128]
00283918ldr x0, [sp+144]
0028391cmov x1, xzr
00283920mov x2, xzr
00283924ldp x29, x30, [sp-8]
00283928add sp, sp, 256
0028392cret x30
00283930
00283930loc_283930:
00283930stp x0, x1, [sp+8]
00283934stp x2, x3, [sp+24]
00283938mov x3, x30
0028393cbl runtime.morestack_noctxt.abi0
00283940ldp x0, x1, [sp+8]
00283944ldp x2, x3, [sp+24]
00283948b 0x283590
0028394cudf 0
00283590
00283950
00283950crypto/ecdh.(*x25519Curve).NewPublicKey: ; void crypto/ecdh.(*x25519Curve).NewPublicKey(crypto/ecdh.x25519Curve * c, struct []uint8 key)
00283950ldr x16, [x28+16]
00283954subs xzr, sp, x16
00283958b.ls 0x283b40
0028395cstr x30, [sp-128]!
00283960stur x29, [sp-8]
00283964sub x29, sp, 8
00283968str x0, [sp+136]
0028396cstr x1, [sp+144]
00283970str x2, [sp+152]
00283974str x3, [sp+160]
00283978str xzr, [sp+56]
0028397cstp xzr, xzr, [sp+40]
00283980adrp x27, 0x7c8000
00283984ldrb w3, [x27+1551]
00283988tbnz w3, 0, 0x283990
0028398cb 0x2839cc
00283990
00283990loc_283990:
00283990adrp x0, 0x44a000
00283994add x0, x0, 654
00283998orr x1, xzr, 63
0028399cbl errors.New
002839a0str x0, [sp+104]
002839a4str x1, [sp+112]
002839a8str xzr, [sp+56]
002839acldr x1, [sp+104]
002839b0ldr x2, [sp+112]
002839b4str x1, [sp+40]
002839b8str x2, [sp+48]
002839bcldr x0, [sp+56]
002839c0ldur x29, [sp-8]
002839c4ldr x30, [sp], 128
002839c8ret x30
002839cc
002839ccloc_2839cc:
002839ccldr x3, [sp+152]
002839d0str x3, [sp+32]
002839d4adrp x27, 0x73d000
002839d8ldr x4, [x27+2048]
002839dcsubs xzr, x3, x4
002839e0b.ne 0x2839e8
002839e4b 0x283a24
002839e8
002839e8loc_2839e8:
002839e8adrp x0, 0x43b000
002839ecadd x0, x0, 444
002839f0orr x1, xzr, 31
002839f4bl errors.New
002839f8str x0, [sp+104]
002839fcstr x1, [sp+112]
00283a00str xzr, [sp+56]
00283a04ldr x1, [sp+104]
00283a08ldr x2, [sp+112]
00283a0cstr x1, [sp+40]
00283a10str x2, [sp+48]
00283a14ldr x0, [sp+56]
00283a18ldur x29, [sp-8]
00283a1cldr x30, [sp], 128
00283a20ret x30
00283a24
00283a24loc_283a24:
00283a24ldr x0, [sp+144]
00283a28ldr x1, [sp+152]
00283a2cldr x2, [sp+160]
00283a30bl bytes.Clone
00283a34str x0, [sp+80]
00283a38str x1, [sp+88]
00283a3cstr x2, [sp+96]
00283a40adrp x0, 0x3e4000
00283a44add x0, x0, 2592
00283a48bl runtime.newobject
00283a4cstr x0, [sp+72]
00283a50adrp x27, 0x7c8000
00283a54ldr w3, [x27+3056]
00283a58cbz w3, 0x283a60
00283a5cb 0x283a64
00283a60
00283a60loc_283a60:
00283a60b 0x283a80
00283a64
00283a64loc_283a64:
00283a64str x0, [sp+64]
00283a68mov x1, x0
00283a6cadrp x0, 0x3e4000
00283a70add x0, x0, 2592
00283a74bl runtime.wbZero
00283a78ldr x0, [sp+64]
00283a7cb 0x283a80
00283a80
00283a80loc_283a80:
00283a80stp xzr, xzr, [x0]
00283a84stp xzr, xzr, [x0+16]
00283a88stp xzr, xzr, [x0+32]
00283a8cstr xzr, [x0+48]
00283a90ldr x3, [sp+72]
00283a94ldrsb x27, [x3]
00283a98ldr x4, [sp+136]
00283a9cadrp x5, 0x496000
00283aa0add x5, x5, 1144
00283aa4str x5, [x3]
00283aa8adrp x27, 0x7c8000
00283aacldr w5, [x27+3056]
00283ab0cbz w5, 0x283ab8
00283ab4b 0x283abc
00283ab8
00283ab8loc_283ab8:
00283ab8b 0x283ad0
00283abc
00283abcloc_283abc:
00283abcbl runtime.gcWriteBarrier2
00283ac0str x4, [x25]
00283ac4ldr x5, [x3+8]
00283ac8str x5, [x25+8]
00283accb 0x283ad0
00283ad0
00283ad0loc_283ad0:
00283ad0str x4, [x3+8]
00283ad4ldr x3, [sp+72]
00283ad8ldrsb x27, [x3]
00283adcldr x4, [sp+80]
00283ae0ldr x5, [sp+88]
00283ae4ldr x6, [sp+96]
00283ae8str x5, [x3+24]
00283aecstr x6, [x3+32]
00283af0adrp x27, 0x7c8000
00283af4ldr w5, [x27+3056]
00283af8cbz w5, 0x283b00
00283afcb 0x283b04
00283b00
00283b00loc_283b00:
00283b00b 0x283b18
00283b04
00283b04loc_283b04:
00283b04bl runtime.gcWriteBarrier2
00283b08str x4, [x25]
00283b0cldr x5, [x3+16]
00283b10str x5, [x25+8]
00283b14b 0x283b18
00283b18
00283b18loc_283b18:
00283b18str x4, [x3+16]
00283b1cldr x3, [sp+72]
00283b20str x3, [sp+56]
00283b24stp xzr, xzr, [sp+40]
00283b28ldr x0, [sp+56]
00283b2cmov x1, xzr
00283b30mov x2, xzr
00283b34ldur x29, [sp-8]
00283b38ldr x30, [sp], 128
00283b3cret x30
00283b40
00283b40loc_283b40:
00283b40stp x0, x1, [sp+8]
00283b44stp x2, x3, [sp+24]
00283b48mov x3, x30
00283b4cbl runtime.morestack_noctxt.abi0
00283b50ldp x0, x1, [sp+8]
00283b54ldp x2, x3, [sp+24]
00283b58b 0x283950
00283b5cudf 0
00283950
00283950crypto/ecdh.(*x25519Curve).NewPublicKey: ; void crypto/ecdh.(*x25519Curve).NewPublicKey(crypto/ecdh.x25519Curve * c, struct []uint8 key)
00283950ldr x16, [x28+16]
00283954subs xzr, sp, x16
00283958b.ls 0x283b40
0028395cstr x30, [sp-128]!
00283960stur x29, [sp-8]
00283964sub x29, sp, 8
00283968str x0, [sp+136]
0028396cstr x1, [sp+144]
00283970str x2, [sp+152]
00283974str x3, [sp+160]
00283978str xzr, [sp+56]
0028397cstp xzr, xzr, [sp+40]
00283980adrp x27, 0x7c8000
00283984ldrb w3, [x27+1551]
00283988tbnz w3, 0, 0x283990
0028398cb 0x2839cc
00283990
00283990loc_283990:
00283990adrp x0, 0x44a000
00283994add x0, x0, 654
00283998orr x1, xzr, 63
0028399cbl errors.New
002839a0str x0, [sp+104]
002839a4str x1, [sp+112]
002839a8str xzr, [sp+56]
002839acldr x1, [sp+104]
002839b0ldr x2, [sp+112]
002839b4str x1, [sp+40]
002839b8str x2, [sp+48]
002839bcldr x0, [sp+56]
002839c0ldur x29, [sp-8]
002839c4ldr x30, [sp], 128
002839c8ret x30
002839cc
002839ccloc_2839cc:
002839ccldr x3, [sp+152]
002839d0str x3, [sp+32]
002839d4adrp x27, 0x73d000
002839d8ldr x4, [x27+2048]
002839dcsubs xzr, x3, x4
002839e0b.ne 0x2839e8
002839e4b 0x283a24
002839e8
002839e8loc_2839e8:
002839e8adrp x0, 0x43b000
002839ecadd x0, x0, 444
002839f0orr x1, xzr, 31
002839f4bl errors.New
002839f8str x0, [sp+104]
002839fcstr x1, [sp+112]
00283a00str xzr, [sp+56]
00283a04ldr x1, [sp+104]
00283a08ldr x2, [sp+112]
00283a0cstr x1, [sp+40]
00283a10str x2, [sp+48]
00283a14ldr x0, [sp+56]
00283a18ldur x29, [sp-8]
00283a1cldr x30, [sp], 128
00283a20ret x30
00283a24
00283a24loc_283a24:
00283a24ldr x0, [sp+144]
00283a28ldr x1, [sp+152]
00283a2cldr x2, [sp+160]
00283a30bl bytes.Clone
00283a34str x0, [sp+80]
00283a38str x1, [sp+88]
00283a3cstr x2, [sp+96]
00283a40adrp x0, 0x3e4000
00283a44add x0, x0, 2592
00283a48bl runtime.newobject
00283a4cstr x0, [sp+72]
00283a50adrp x27, 0x7c8000
00283a54ldr w3, [x27+3056]
00283a58cbz w3, 0x283a60
00283a5cb 0x283a64
00283a60
00283a60loc_283a60:
00283a60b 0x283a80
00283a64
00283a64loc_283a64:
00283a64str x0, [sp+64]
00283a68mov x1, x0
00283a6cadrp x0, 0x3e4000
00283a70add x0, x0, 2592
00283a74bl runtime.wbZero
00283a78ldr x0, [sp+64]
00283a7cb 0x283a80
00283a80
00283a80loc_283a80:
00283a80stp xzr, xzr, [x0]
00283a84stp xzr, xzr, [x0+16]
00283a88stp xzr, xzr, [x0+32]
00283a8cstr xzr, [x0+48]
00283a90ldr x3, [sp+72]
00283a94ldrsb x27, [x3]
00283a98ldr x4, [sp+136]
00283a9cadrp x5, 0x496000
00283aa0add x5, x5, 1144
00283aa4str x5, [x3]
00283aa8adrp x27, 0x7c8000
00283aacldr w5, [x27+3056]
00283ab0cbz w5, 0x283ab8
00283ab4b 0x283abc
00283ab8
00283ab8loc_283ab8:
00283ab8b 0x283ad0
00283abc
00283abcloc_283abc:
00283abcbl runtime.gcWriteBarrier2
00283ac0str x4, [x25]
00283ac4ldr x5, [x3+8]
00283ac8str x5, [x25+8]
00283accb 0x283ad0
00283ad0
00283ad0loc_283ad0:
00283ad0str x4, [x3+8]
00283ad4ldr x3, [sp+72]
00283ad8ldrsb x27, [x3]
00283adcldr x4, [sp+80]
00283ae0ldr x5, [sp+88]
00283ae4ldr x6, [sp+96]
00283ae8str x5, [x3+24]
00283aecstr x6, [x3+32]
00283af0adrp x27, 0x7c8000
00283af4ldr w5, [x27+3056]
00283af8cbz w5, 0x283b00
00283afcb 0x283b04
00283b00
00283b00loc_283b00:
00283b00b 0x283b18
00283b04
00283b04loc_283b04:
00283b04bl runtime.gcWriteBarrier2
00283b08str x4, [x25]
00283b0cldr x5, [x3+16]
00283b10str x5, [x25+8]
00283b14b 0x283b18
00283b18
00283b18loc_283b18:
00283b18str x4, [x3+16]
00283b1cldr x3, [sp+72]
00283b20str x3, [sp+56]
00283b24stp xzr, xzr, [sp+40]
00283b28ldr x0, [sp+56]
00283b2cmov x1, xzr
00283b30mov x2, xzr
00283b34ldur x29, [sp-8]
00283b38ldr x30, [sp], 128
00283b3cret x30
00283b40
00283b40loc_283b40:
00283b40stp x0, x1, [sp+8]
00283b44stp x2, x3, [sp+24]
00283b48mov x3, x30
00283b4cbl runtime.morestack_noctxt.abi0
00283b50ldp x0, x1, [sp+8]
00283b54ldp x2, x3, [sp+24]
00283b58b 0x283950
00283b5cudf 0
00283950
00283b60
00283b60crypto/ecdh.(*x25519Curve).ecdh: ; void crypto/ecdh.(*x25519Curve).ecdh(crypto/ecdh.x25519Curve * c, crypto/ecdh.PrivateKey * local, crypto/ecdh.PublicKey * remote)
00283b60ldr x16, [x28+16]
00283b64sub x17, sp, 96
00283b68subs xzr, x17, x16
00283b6cb.ls 0x283cc8
00283b70str x30, [sp-224]!
00283b74stur x29, [sp-8]
00283b78sub x29, sp, 8
00283b7cstr x0, [sp+232]
00283b80str x1, [sp+240]
00283b84str x2, [sp+248]
00283b88str xzr, [sp+104]
00283b8cstp xzr, xzr, [sp+112]
00283b90stp xzr, xzr, [sp+88]
00283b94adrp x27, 0x73d000
00283b98ldr x2, [x27+2064]
00283b9cadrp x27, 0x73d000
00283ba0ldr x1, [x27+2064]
00283ba4adrp x0, 0x372000
00283ba8add x0, x0, 3072
00283bacbl runtime.makeslice
00283bb0adrp x27, 0x73d000
00283bb4ldr x3, [x27+2064]
00283bb8adrp x27, 0x73d000
00283bbcldr x4, [x27+2064]
00283bc0str x0, [sp+128]
00283bc4str x3, [sp+136]
00283bc8str x4, [sp+144]
00283bccldr x3, [sp+240]
00283bd0ldrsb x27, [x3]
00283bd4ldr x4, [x3+16]
00283bd8ldr x5, [x3+24]
00283bdcldr x3, [x3+32]
00283be0str x4, [sp+176]
00283be4str x5, [sp+184]
00283be8str x3, [sp+192]
00283becldr x3, [sp+248]
00283bf0ldrsb x27, [x3]
00283bf4ldr x6, [x3+16]
00283bf8ldr x7, [x3+24]
00283bfcldr x8, [x3+32]
00283c00str x6, [sp+152]
00283c04str x7, [sp+160]
00283c08str x8, [sp+168]
00283c0cldr x0, [sp+128]
00283c10ldr x1, [sp+136]
00283c14ldr x2, [sp+144]
00283c18ldr x3, [sp+176]
00283c1cldr x4, [sp+184]
00283c20ldr x5, [sp+192]
00283c24bl crypto/ecdh.x25519ScalarMult
00283c28ldr x0, [sp+128]
00283c2cldr x1, [sp+136]
00283c30ldr x2, [sp+144]
00283c34bl crypto/ecdh.isZero
00283c38strb w0, [sp+87]
00283c3ctbnz w0, 0, 0x283c44
00283c40b 0x283c8c
00283c44
00283c44loc_283c44:
00283c44adrp x0, 0x449000
00283c48add x0, x0, 95
00283c4cmovz x1, 58
00283c50bl errors.New
00283c54str x0, [sp+200]
00283c58str x1, [sp+208]
00283c5cstr xzr, [sp+104]
00283c60stp xzr, xzr, [sp+112]
00283c64ldr x3, [sp+200]
00283c68ldr x4, [sp+208]
00283c6cstr x3, [sp+88]
00283c70str x4, [sp+96]
00283c74ldr x0, [sp+104]
00283c78ldr x1, [sp+112]
00283c7cldr x2, [sp+120]
00283c80ldur x29, [sp-8]
00283c84ldr x30, [sp], 224
00283c88ret x30
00283c8c
00283c8cloc_283c8c:
00283c8cldr x5, [sp+128]
00283c90ldr x6, [sp+136]
00283c94ldr x7, [sp+144]
00283c98str x5, [sp+104]
00283c9cstr x6, [sp+112]
00283ca0str x7, [sp+120]
00283ca4stp xzr, xzr, [sp+88]
00283ca8ldr x0, [sp+104]
00283cacldr x1, [sp+112]
00283cb0ldr x2, [sp+120]
00283cb4mov x3, xzr
00283cb8mov x4, xzr
00283cbcldur x29, [sp-8]
00283cc0ldr x30, [sp], 224
00283cc4ret x30
00283cc8
00283cc8loc_283cc8:
00283cc8stp x0, x1, [sp+8]
00283cccstr x2, [sp+24]
00283cd0mov x3, x30
00283cd4bl runtime.morestack_noctxt.abi0
00283cd8ldp x0, x1, [sp+8]
00283cdcldr x2, [sp+24]
00283ce0b 0x283b60
00283ce4udf 0
00283ce8udf 0
00283cecudf 0
00283b60
00283b60crypto/ecdh.(*x25519Curve).ecdh: ; void crypto/ecdh.(*x25519Curve).ecdh(crypto/ecdh.x25519Curve * c, crypto/ecdh.PrivateKey * local, crypto/ecdh.PublicKey * remote)
00283b60ldr x16, [x28+16]
00283b64sub x17, sp, 96
00283b68subs xzr, x17, x16
00283b6cb.ls 0x283cc8
00283b70str x30, [sp-224]!
00283b74stur x29, [sp-8]
00283b78sub x29, sp, 8
00283b7cstr x0, [sp+232]
00283b80str x1, [sp+240]
00283b84str x2, [sp+248]
00283b88str xzr, [sp+104]
00283b8cstp xzr, xzr, [sp+112]
00283b90stp xzr, xzr, [sp+88]
00283b94adrp x27, 0x73d000
00283b98ldr x2, [x27+2064]
00283b9cadrp x27, 0x73d000
00283ba0ldr x1, [x27+2064]
00283ba4adrp x0, 0x372000
00283ba8add x0, x0, 3072
00283bacbl runtime.makeslice
00283bb0adrp x27, 0x73d000
00283bb4ldr x3, [x27+2064]
00283bb8adrp x27, 0x73d000
00283bbcldr x4, [x27+2064]
00283bc0str x0, [sp+128]
00283bc4str x3, [sp+136]
00283bc8str x4, [sp+144]
00283bccldr x3, [sp+240]
00283bd0ldrsb x27, [x3]
00283bd4ldr x4, [x3+16]
00283bd8ldr x5, [x3+24]
00283bdcldr x3, [x3+32]
00283be0str x4, [sp+176]
00283be4str x5, [sp+184]
00283be8str x3, [sp+192]
00283becldr x3, [sp+248]
00283bf0ldrsb x27, [x3]
00283bf4ldr x6, [x3+16]
00283bf8ldr x7, [x3+24]
00283bfcldr x8, [x3+32]
00283c00str x6, [sp+152]
00283c04str x7, [sp+160]
00283c08str x8, [sp+168]
00283c0cldr x0, [sp+128]
00283c10ldr x1, [sp+136]
00283c14ldr x2, [sp+144]
00283c18ldr x3, [sp+176]
00283c1cldr x4, [sp+184]
00283c20ldr x5, [sp+192]
00283c24bl crypto/ecdh.x25519ScalarMult
00283c28ldr x0, [sp+128]
00283c2cldr x1, [sp+136]
00283c30ldr x2, [sp+144]
00283c34bl crypto/ecdh.isZero
00283c38strb w0, [sp+87]
00283c3ctbnz w0, 0, 0x283c44
00283c40b 0x283c8c
00283c44
00283c44loc_283c44:
00283c44adrp x0, 0x449000
00283c48add x0, x0, 95
00283c4cmovz x1, 58
00283c50bl errors.New
00283c54str x0, [sp+200]
00283c58str x1, [sp+208]
00283c5cstr xzr, [sp+104]
00283c60stp xzr, xzr, [sp+112]
00283c64ldr x3, [sp+200]
00283c68ldr x4, [sp+208]
00283c6cstr x3, [sp+88]
00283c70str x4, [sp+96]
00283c74ldr x0, [sp+104]
00283c78ldr x1, [sp+112]
00283c7cldr x2, [sp+120]
00283c80ldur x29, [sp-8]
00283c84ldr x30, [sp], 224
00283c88ret x30
00283c8c
00283c8cloc_283c8c:
00283c8cldr x5, [sp+128]
00283c90ldr x6, [sp+136]
00283c94ldr x7, [sp+144]
00283c98str x5, [sp+104]
00283c9cstr x6, [sp+112]
00283ca0str x7, [sp+120]
00283ca4stp xzr, xzr, [sp+88]
00283ca8ldr x0, [sp+104]
00283cacldr x1, [sp+112]
00283cb0ldr x2, [sp+120]
00283cb4mov x3, xzr
00283cb8mov x4, xzr
00283cbcldur x29, [sp-8]
00283cc0ldr x30, [sp], 224
00283cc4ret x30
00283cc8
00283cc8loc_283cc8:
00283cc8stp x0, x1, [sp+8]
00283cccstr x2, [sp+24]
00283cd0mov x3, x30
00283cd4bl runtime.morestack_noctxt.abi0
00283cd8ldp x0, x1, [sp+8]
00283cdcldr x2, [sp+24]
00283ce0b 0x283b60
00283ce4udf 0
00283ce8udf 0
00283cecudf 0
00283b60
00283cf0
00283cf0crypto/ecdh.x25519ScalarMult: ; void crypto/ecdh.x25519ScalarMult(struct []uint8 dst, struct []uint8 scalar, struct []uint8 point)
00283cf0ldr x16, [x28+16]
00283cf4sub x17, sp, 432
00283cf8subs xzr, x17, x16
00283cfcb.ls 0x284164
00283d00sub x20, sp, 560
00283d04stp x29, x30, [x20-8]
00283d08add sp, x20, 0
00283d0csub x29, sp, 8
00283d10str x0, [sp+568]
00283d14str x1, [sp+576]
00283d18str x2, [sp+584]
00283d1cstr x3, [sp+592]
00283d20str x4, [sp+600]
00283d24str x5, [sp+608]
00283d28str x6, [sp+616]
00283d2cstr x7, [sp+624]
00283d30str x8, [sp+632]
00283d34add x27, sp, 47
00283d38stp xzr, xzr, [x27]
00283d3cadd x27, sp, 63
00283d40stp xzr, xzr, [x27]
00283d44add x4, sp, 47
00283d48ldrsb x27, [x4]
00283d4cb 0x283d50
00283d50
00283d50loc_283d50:
00283d50str x4, [sp+528]
00283d54orr x4, xzr, 32
00283d58str x4, [sp+536]
00283d5cstr x4, [sp+544]
00283d60ldr x5, [sp+592]
00283d64ldr x6, [sp+600]
00283d68ldr x7, [sp+608]
00283d6cstr x5, [sp+504]
00283d70str x6, [sp+512]
00283d74str x7, [sp+520]
00283d78ldr x5, [sp+528]
00283d7cldr x6, [sp+536]
00283d80ldr x7, [sp+544]
00283d84str x5, [sp+480]
00283d88str x6, [sp+488]
00283d8cstr x7, [sp+496]
00283d90ldr x5, [sp+512]
00283d94ldr x6, [sp+504]
00283d98ldr x7, [sp+520]
00283d9cstr x6, [sp+456]
00283da0str x5, [sp+464]
00283da4str x7, [sp+472]
00283da8ldr x6, [sp+488]
00283dacstr x6, [sp+400]
00283db0subs xzr, x5, x6
00283db4b.lt 0x283dbc
00283db8b 0x283dc4
00283dbc
00283dbcloc_283dbc:
00283dbcstr x5, [sp+400]
00283dc0b 0x283dc8
00283dc4
00283dc4loc_283dc4:
00283dc4b 0x283dc8
00283dc8
00283dc8loc_283dc8:
00283dc8ldr x5, [sp+456]
00283dccldr x6, [sp+480]
00283dd0subs xzr, x6, x5
00283dd4b.ne 0x283ddc
00283dd8b 0x283df8
00283ddc
00283ddcloc_283ddc:
00283ddcldr x3, [sp+400]
00283de0str x3, [sp+392]
00283de4ldr x2, [sp+392]
00283de8ldr x1, [sp+456]
00283decldr x0, [sp+480]
00283df0bl runtime.memmove
00283df4b 0x283dfc
00283df8
00283df8loc_283df8:
00283df8b 0x283dfc
00283dfc
00283dfcloc_283dfc:
00283dfcldrb w4, [sp+47]
00283e00and x4, x4, -8
00283e04strb w4, [sp+47]
00283e08ldrb w4, [sp+78]
00283e0cand x4, x4, 127
00283e10strb w4, [sp+78]
00283e14orr x4, x4, 64
00283e18strb w4, [sp+78]
00283e1cstp xzr, xzr, [sp+240]
00283e20stp xzr, xzr, [sp+256]
00283e24str xzr, [sp+272]
00283e28stp xzr, xzr, [sp+200]
00283e2cstp xzr, xzr, [sp+216]
00283e30str xzr, [sp+232]
00283e34stp xzr, xzr, [sp+120]
00283e38stp xzr, xzr, [sp+136]
00283e3cstr xzr, [sp+152]
00283e40stp xzr, xzr, [sp+160]
00283e44stp xzr, xzr, [sp+176]
00283e48str xzr, [sp+192]
00283e4cstp xzr, xzr, [sp+80]
00283e50stp xzr, xzr, [sp+96]
00283e54str xzr, [sp+112]
00283e58stp xzr, xzr, [sp+320]
00283e5cstp xzr, xzr, [sp+336]
00283e60str xzr, [sp+352]
00283e64stp xzr, xzr, [sp+280]
00283e68stp xzr, xzr, [sp+296]
00283e6cstr xzr, [sp+312]
00283e70ldr x1, [sp+616]
00283e74ldr x2, [sp+624]
00283e78ldr x3, [sp+632]
00283e7cstr x1, [sp+504]
00283e80str x2, [sp+512]
00283e84str x3, [sp+520]
00283e88add x0, sp, 240
00283e8cbl crypto/internal/fips140/edwards25519/field.(*Element).SetBytes
00283e90add x0, sp, 200
00283e94bl crypto/internal/fips140/edwards25519/field.(*Element).One
00283e98add x0, sp, 160
00283e9cadd x1, sp, 240
00283ea0bl crypto/internal/fips140/edwards25519/field.(*Element).Set
00283ea4add x0, sp, 80
00283ea8bl crypto/internal/fips140/edwards25519/field.(*Element).One
00283eacstr xzr, [sp+360]
00283eb0orr x4, xzr, 254
00283eb4str x4, [sp+368]
00283eb8b 0x283ebc
00283ebc
00283ebcloc_283ebc:
00283ebcldr x3, [sp+368]
00283ec0tbz x3, 63, 0x283ec8
00283ec4b 0x284060
00283ec8
00283ec8loc_283ec8:
00283ec8ldr x3, [sp+368]
00283eccsbfm x4, x3, 63, 63
00283ed0add x3, x3, x4, lsr #61
00283ed4sbfm x0, x3, 3, 63
00283ed8subs xzr, x0, 32
00283edcb.lo 0x283ee4
00283ee0b 0x284158
00283ee4
00283ee4loc_283ee4:
00283ee4add x3, sp, 47
00283ee8ldrb w3, [x3+x0]
00283eecldr x4, [sp+368]
00283ef0and x4, x4, 7
00283ef4lsrv x3, x3, x4
00283ef8strb w3, [sp+79]
00283efcand x4, x3, 1
00283f00strb w4, [sp+79]
00283f04ldr x4, [sp+360]
00283f08and x3, x3, 1
00283f0ceor x2, x4, x3
00283f10str x2, [sp+360]
00283f14add x0, sp, 200
00283f18add x1, sp, 160
00283f1cbl crypto/internal/fips140/edwards25519/field.(*Element).Swap
00283f20ldr x2, [sp+360]
00283f24add x0, sp, 120
00283f28add x1, sp, 80
00283f2cbl crypto/internal/fips140/edwards25519/field.(*Element).Swap
00283f30ldrb w3, [sp+79]
00283f34str x3, [sp+360]
00283f38add x0, sp, 320
00283f3cadd x1, sp, 160
00283f40add x2, sp, 80
00283f44bl crypto/internal/fips140/edwards25519/field.(*Element).Subtract
00283f48add x0, sp, 280
00283f4cadd x1, sp, 200
00283f50add x2, sp, 120
00283f54bl crypto/internal/fips140/edwards25519/field.(*Element).Subtract
00283f58add x0, sp, 200
00283f5cadd x1, sp, 200
00283f60add x2, sp, 120
00283f64bl crypto/internal/fips140/edwards25519/field.(*Element).Add
00283f68add x0, sp, 120
00283f6cadd x1, sp, 160
00283f70add x2, sp, 80
00283f74bl crypto/internal/fips140/edwards25519/field.(*Element).Add
00283f78add x0, sp, 80
00283f7cadd x1, sp, 320
00283f80add x2, sp, 200
00283f84bl crypto/internal/fips140/edwards25519/field.(*Element).Multiply
00283f88add x0, sp, 120
00283f8cadd x1, sp, 120
00283f90add x2, sp, 280
00283f94bl crypto/internal/fips140/edwards25519/field.(*Element).Multiply
00283f98add x0, sp, 320
00283f9cadd x1, sp, 280
00283fa0bl crypto/internal/fips140/edwards25519/field.(*Element).Square
00283fa4add x0, sp, 280
00283fa8add x1, sp, 200
00283facbl crypto/internal/fips140/edwards25519/field.(*Element).Square
00283fb0add x0, sp, 160
00283fb4add x1, sp, 80
00283fb8add x2, sp, 120
00283fbcbl crypto/internal/fips140/edwards25519/field.(*Element).Add
00283fc0add x0, sp, 120
00283fc4add x1, sp, 80
00283fc8add x2, sp, 120
00283fccbl crypto/internal/fips140/edwards25519/field.(*Element).Subtract
00283fd0add x0, sp, 200
00283fd4add x1, sp, 280
00283fd8add x2, sp, 320
00283fdcbl crypto/internal/fips140/edwards25519/field.(*Element).Multiply
00283fe0add x0, sp, 280
00283fe4add x1, sp, 280
00283fe8add x2, sp, 320
00283fecbl crypto/internal/fips140/edwards25519/field.(*Element).Subtract
00283ff0add x0, sp, 120
00283ff4add x1, sp, 120
00283ff8bl crypto/internal/fips140/edwards25519/field.(*Element).Square
00283ffcadd x0, sp, 80
00284000add x1, sp, 280
00284004movz x2, 56130
00284008movk x2, 0x10000
0028400cbl crypto/internal/fips140/edwards25519/field.(*Element).Mult32
00284010add x0, sp, 160
00284014add x1, sp, 160
00284018bl crypto/internal/fips140/edwards25519/field.(*Element).Square
0028401cadd x0, sp, 320
00284020add x1, sp, 320
00284024add x2, sp, 80
00284028bl crypto/internal/fips140/edwards25519/field.(*Element).Add
0028402cadd x0, sp, 80
00284030add x1, sp, 240
00284034add x2, sp, 120
00284038bl crypto/internal/fips140/edwards25519/field.(*Element).Multiply
0028403cadd x0, sp, 120
00284040add x1, sp, 280
00284044add x2, sp, 320
00284048bl crypto/internal/fips140/edwards25519/field.(*Element).Multiply
0028404cb 0x284050
00284050
00284050loc_284050:
00284050ldr x3, [sp+368]
00284054sub x3, x3, 1
00284058str x3, [sp+368]
0028405cb 0x283ebc
00284060
00284060loc_284060:
00284060ldr x2, [sp+360]
00284064add x0, sp, 200
00284068add x1, sp, 160
0028406cbl crypto/internal/fips140/edwards25519/field.(*Element).Swap
00284070ldr x2, [sp+360]
00284074add x0, sp, 120
00284078add x1, sp, 80
0028407cbl crypto/internal/fips140/edwards25519/field.(*Element).Swap
00284080add x0, sp, 120
00284084add x1, sp, 120
00284088bl crypto/internal/fips140/edwards25519/field.(*Element).Invert
0028408cadd x0, sp, 200
00284090add x1, sp, 200
00284094add x2, sp, 120
00284098bl crypto/internal/fips140/edwards25519/field.(*Element).Multiply
0028409cldr x3, [sp+568]
002840a0ldr x4, [sp+576]
002840a4ldr x5, [sp+584]
002840a8str x3, [sp+504]
002840acstr x4, [sp+512]
002840b0str x5, [sp+520]
002840b4add x0, sp, 200
002840b8bl crypto/internal/fips140/edwards25519/field.(*Element).Bytes
002840bcstr x0, [sp+528]
002840c0str x1, [sp+536]
002840c4str x2, [sp+544]
002840c8ldr x3, [sp+512]
002840ccldr x4, [sp+520]
002840d0ldr x5, [sp+504]
002840d4str x5, [sp+432]
002840d8str x3, [sp+440]
002840dcstr x4, [sp+448]
002840e0ldr x3, [sp+536]
002840e4ldr x4, [sp+528]
002840e8ldr x5, [sp+544]
002840ecstr x4, [sp+408]
002840f0str x3, [sp+416]
002840f4str x5, [sp+424]
002840f8ldr x4, [sp+440]
002840fcstr x4, [sp+384]
00284100subs xzr, x4, x3
00284104b.gt 0x28410c
00284108b 0x284114
0028410c
0028410cloc_28410c:
0028410cstr x3, [sp+384]
00284110b 0x284118
00284114
00284114loc_284114:
00284114b 0x284118
00284118
00284118loc_284118:
00284118ldr x3, [sp+408]
0028411cldr x4, [sp+432]
00284120subs xzr, x3, x4
00284124b.ne 0x28412c
00284128b 0x284148
0028412c
0028412cloc_28412c:
0028412cldr x3, [sp+384]
00284130str x3, [sp+376]
00284134ldr x2, [sp+376]
00284138ldr x0, [sp+432]
0028413cldr x1, [sp+408]
00284140bl runtime.memmove
00284144b 0x28414c
00284148
00284148loc_284148:
00284148b 0x28414c
0028414c
0028414cloc_28414c:
0028414cldp x29, x30, [sp-8]
00284150add sp, sp, 560
00284154ret x30
00284158
00284158loc_284158:
00284158orr x1, xzr, 32
0028415cbl runtime.panicIndex
00284160hint
00284164
00284164loc_284164:
00284164stp x0, x1, [sp+8]
00284168stp x2, x3, [sp+24]
0028416cstp x4, x5, [sp+40]
00284170stp x6, x7, [sp+56]
00284174str x8, [sp+72]
00284178mov x3, x30
0028417cbl runtime.morestack_noctxt.abi0
00284180ldp x0, x1, [sp+8]
00284184ldp x2, x3, [sp+24]
00284188ldp x4, x5, [sp+40]
0028418cldp x6, x7, [sp+56]
00284190ldr x8, [sp+72]
00284194b 0x283cf0
00284198udf 0
0028419cudf 0
00283cf0
00283cf0crypto/ecdh.x25519ScalarMult: ; void crypto/ecdh.x25519ScalarMult(struct []uint8 dst, struct []uint8 scalar, struct []uint8 point)
00283cf0ldr x16, [x28+16]
00283cf4sub x17, sp, 432
00283cf8subs xzr, x17, x16
00283cfcb.ls 0x284164
00283d00sub x20, sp, 560
00283d04stp x29, x30, [x20-8]
00283d08add sp, x20, 0
00283d0csub x29, sp, 8
00283d10str x0, [sp+568]
00283d14str x1, [sp+576]
00283d18str x2, [sp+584]
00283d1cstr x3, [sp+592]
00283d20str x4, [sp+600]
00283d24str x5, [sp+608]
00283d28str x6, [sp+616]
00283d2cstr x7, [sp+624]
00283d30str x8, [sp+632]
00283d34add x27, sp, 47
00283d38stp xzr, xzr, [x27]
00283d3cadd x27, sp, 63
00283d40stp xzr, xzr, [x27]
00283d44add x4, sp, 47
00283d48ldrsb x27, [x4]
00283d4cb 0x283d50
00283d50
00283d50loc_283d50:
00283d50str x4, [sp+528]
00283d54orr x4, xzr, 32
00283d58str x4, [sp+536]
00283d5cstr x4, [sp+544]
00283d60ldr x5, [sp+592]
00283d64ldr x6, [sp+600]
00283d68ldr x7, [sp+608]
00283d6cstr x5, [sp+504]
00283d70str x6, [sp+512]
00283d74str x7, [sp+520]
00283d78ldr x5, [sp+528]
00283d7cldr x6, [sp+536]
00283d80ldr x7, [sp+544]
00283d84str x5, [sp+480]
00283d88str x6, [sp+488]
00283d8cstr x7, [sp+496]
00283d90ldr x5, [sp+512]
00283d94ldr x6, [sp+504]
00283d98ldr x7, [sp+520]
00283d9cstr x6, [sp+456]
00283da0str x5, [sp+464]
00283da4str x7, [sp+472]
00283da8ldr x6, [sp+488]
00283dacstr x6, [sp+400]
00283db0subs xzr, x5, x6
00283db4b.lt 0x283dbc
00283db8b 0x283dc4
00283dbc
00283dbcloc_283dbc:
00283dbcstr x5, [sp+400]
00283dc0b 0x283dc8
00283dc4
00283dc4loc_283dc4:
00283dc4b 0x283dc8
00283dc8
00283dc8loc_283dc8:
00283dc8ldr x5, [sp+456]
00283dccldr x6, [sp+480]
00283dd0subs xzr, x6, x5
00283dd4b.ne 0x283ddc
00283dd8b 0x283df8
00283ddc
00283ddcloc_283ddc:
00283ddcldr x3, [sp+400]
00283de0str x3, [sp+392]
00283de4ldr x2, [sp+392]
00283de8ldr x1, [sp+456]
00283decldr x0, [sp+480]
00283df0bl runtime.memmove
00283df4b 0x283dfc
00283df8
00283df8loc_283df8:
00283df8b 0x283dfc
00283dfc
00283dfcloc_283dfc:
00283dfcldrb w4, [sp+47]
00283e00and x4, x4, -8
00283e04strb w4, [sp+47]
00283e08ldrb w4, [sp+78]
00283e0cand x4, x4, 127
00283e10strb w4, [sp+78]
00283e14orr x4, x4, 64
00283e18strb w4, [sp+78]
00283e1cstp xzr, xzr, [sp+240]
00283e20stp xzr, xzr, [sp+256]
00283e24str xzr, [sp+272]
00283e28stp xzr, xzr, [sp+200]
00283e2cstp xzr, xzr, [sp+216]
00283e30str xzr, [sp+232]
00283e34stp xzr, xzr, [sp+120]
00283e38stp xzr, xzr, [sp+136]
00283e3cstr xzr, [sp+152]
00283e40stp xzr, xzr, [sp+160]
00283e44stp xzr, xzr, [sp+176]
00283e48str xzr, [sp+192]
00283e4cstp xzr, xzr, [sp+80]
00283e50stp xzr, xzr, [sp+96]
00283e54str xzr, [sp+112]
00283e58stp xzr, xzr, [sp+320]
00283e5cstp xzr, xzr, [sp+336]
00283e60str xzr, [sp+352]
00283e64stp xzr, xzr, [sp+280]
00283e68stp xzr, xzr, [sp+296]
00283e6cstr xzr, [sp+312]
00283e70ldr x1, [sp+616]
00283e74ldr x2, [sp+624]
00283e78ldr x3, [sp+632]
00283e7cstr x1, [sp+504]
00283e80str x2, [sp+512]
00283e84str x3, [sp+520]
00283e88add x0, sp, 240
00283e8cbl crypto/internal/fips140/edwards25519/field.(*Element).SetBytes
00283e90add x0, sp, 200
00283e94bl crypto/internal/fips140/edwards25519/field.(*Element).One
00283e98add x0, sp, 160
00283e9cadd x1, sp, 240
00283ea0bl crypto/internal/fips140/edwards25519/field.(*Element).Set
00283ea4add x0, sp, 80
00283ea8bl crypto/internal/fips140/edwards25519/field.(*Element).One
00283eacstr xzr, [sp+360]
00283eb0orr x4, xzr, 254
00283eb4str x4, [sp+368]
00283eb8b 0x283ebc
00283ebc
00283ebcloc_283ebc:
00283ebcldr x3, [sp+368]
00283ec0tbz x3, 63, 0x283ec8
00283ec4b 0x284060
00283ec8
00283ec8loc_283ec8:
00283ec8ldr x3, [sp+368]
00283eccsbfm x4, x3, 63, 63
00283ed0add x3, x3, x4, lsr #61
00283ed4sbfm x0, x3, 3, 63
00283ed8subs xzr, x0, 32
00283edcb.lo 0x283ee4
00283ee0b 0x284158
00283ee4
00283ee4loc_283ee4:
00283ee4add x3, sp, 47
00283ee8ldrb w3, [x3+x0]
00283eecldr x4, [sp+368]
00283ef0and x4, x4, 7
00283ef4lsrv x3, x3, x4
00283ef8strb w3, [sp+79]
00283efcand x4, x3, 1
00283f00strb w4, [sp+79]
00283f04ldr x4, [sp+360]
00283f08and x3, x3, 1
00283f0ceor x2, x4, x3
00283f10str x2, [sp+360]
00283f14add x0, sp, 200
00283f18add x1, sp, 160
00283f1cbl crypto/internal/fips140/edwards25519/field.(*Element).Swap
00283f20ldr x2, [sp+360]
00283f24add x0, sp, 120
00283f28add x1, sp, 80
00283f2cbl crypto/internal/fips140/edwards25519/field.(*Element).Swap
00283f30ldrb w3, [sp+79]
00283f34str x3, [sp+360]
00283f38add x0, sp, 320
00283f3cadd x1, sp, 160
00283f40add x2, sp, 80
00283f44bl crypto/internal/fips140/edwards25519/field.(*Element).Subtract
00283f48add x0, sp, 280
00283f4cadd x1, sp, 200
00283f50add x2, sp, 120
00283f54bl crypto/internal/fips140/edwards25519/field.(*Element).Subtract
00283f58add x0, sp, 200
00283f5cadd x1, sp, 200
00283f60add x2, sp, 120
00283f64bl crypto/internal/fips140/edwards25519/field.(*Element).Add
00283f68add x0, sp, 120
00283f6cadd x1, sp, 160
00283f70add x2, sp, 80
00283f74bl crypto/internal/fips140/edwards25519/field.(*Element).Add
00283f78add x0, sp, 80
00283f7cadd x1, sp, 320
00283f80add x2, sp, 200
00283f84bl crypto/internal/fips140/edwards25519/field.(*Element).Multiply
00283f88add x0, sp, 120
00283f8cadd x1, sp, 120
00283f90add x2, sp, 280
00283f94bl crypto/internal/fips140/edwards25519/field.(*Element).Multiply
00283f98add x0, sp, 320
00283f9cadd x1, sp, 280
00283fa0bl crypto/internal/fips140/edwards25519/field.(*Element).Square
00283fa4add x0, sp, 280
00283fa8add x1, sp, 200
00283facbl crypto/internal/fips140/edwards25519/field.(*Element).Square
00283fb0add x0, sp, 160
00283fb4add x1, sp, 80
00283fb8add x2, sp, 120
00283fbcbl crypto/internal/fips140/edwards25519/field.(*Element).Add
00283fc0add x0, sp, 120
00283fc4add x1, sp, 80
00283fc8add x2, sp, 120
00283fccbl crypto/internal/fips140/edwards25519/field.(*Element).Subtract
00283fd0add x0, sp, 200
00283fd4add x1, sp, 280
00283fd8add x2, sp, 320
00283fdcbl crypto/internal/fips140/edwards25519/field.(*Element).Multiply
00283fe0add x0, sp, 280
00283fe4add x1, sp, 280
00283fe8add x2, sp, 320
00283fecbl crypto/internal/fips140/edwards25519/field.(*Element).Subtract
00283ff0add x0, sp, 120
00283ff4add x1, sp, 120
00283ff8bl crypto/internal/fips140/edwards25519/field.(*Element).Square
00283ffcadd x0, sp, 80
00284000add x1, sp, 280
00284004movz x2, 56130
00284008movk x2, 0x10000
0028400cbl crypto/internal/fips140/edwards25519/field.(*Element).Mult32
00284010add x0, sp, 160
00284014add x1, sp, 160
00284018bl crypto/internal/fips140/edwards25519/field.(*Element).Square
0028401cadd x0, sp, 320
00284020add x1, sp, 320
00284024add x2, sp, 80
00284028bl crypto/internal/fips140/edwards25519/field.(*Element).Add
0028402cadd x0, sp, 80
00284030add x1, sp, 240
00284034add x2, sp, 120
00284038bl crypto/internal/fips140/edwards25519/field.(*Element).Multiply
0028403cadd x0, sp, 120
00284040add x1, sp, 280
00284044add x2, sp, 320
00284048bl crypto/internal/fips140/edwards25519/field.(*Element).Multiply
0028404cb 0x284050
00284050
00284050loc_284050:
00284050ldr x3, [sp+368]
00284054sub x3, x3, 1
00284058str x3, [sp+368]
0028405cb 0x283ebc
00284060
00284060loc_284060:
00284060ldr x2, [sp+360]
00284064add x0, sp, 200
00284068add x1, sp, 160
0028406cbl crypto/internal/fips140/edwards25519/field.(*Element).Swap
00284070ldr x2, [sp+360]
00284074add x0, sp, 120
00284078add x1, sp, 80
0028407cbl crypto/internal/fips140/edwards25519/field.(*Element).Swap
00284080add x0, sp, 120
00284084add x1, sp, 120
00284088bl crypto/internal/fips140/edwards25519/field.(*Element).Invert
0028408cadd x0, sp, 200
00284090add x1, sp, 200
00284094add x2, sp, 120
00284098bl crypto/internal/fips140/edwards25519/field.(*Element).Multiply
0028409cldr x3, [sp+568]
002840a0ldr x4, [sp+576]
002840a4ldr x5, [sp+584]
002840a8str x3, [sp+504]
002840acstr x4, [sp+512]
002840b0str x5, [sp+520]
002840b4add x0, sp, 200
002840b8bl crypto/internal/fips140/edwards25519/field.(*Element).Bytes
002840bcstr x0, [sp+528]
002840c0str x1, [sp+536]
002840c4str x2, [sp+544]
002840c8ldr x3, [sp+512]
002840ccldr x4, [sp+520]
002840d0ldr x5, [sp+504]
002840d4str x5, [sp+432]
002840d8str x3, [sp+440]
002840dcstr x4, [sp+448]
002840e0ldr x3, [sp+536]
002840e4ldr x4, [sp+528]
002840e8ldr x5, [sp+544]
002840ecstr x4, [sp+408]
002840f0str x3, [sp+416]
002840f4str x5, [sp+424]
002840f8ldr x4, [sp+440]
002840fcstr x4, [sp+384]
00284100subs xzr, x4, x3
00284104b.gt 0x28410c
00284108b 0x284114
0028410c
0028410cloc_28410c:
0028410cstr x3, [sp+384]
00284110b 0x284118
00284114
00284114loc_284114:
00284114b 0x284118
00284118
00284118loc_284118:
00284118ldr x3, [sp+408]
0028411cldr x4, [sp+432]
00284120subs xzr, x3, x4
00284124b.ne 0x28412c
00284128b 0x284148
0028412c
0028412cloc_28412c:
0028412cldr x3, [sp+384]
00284130str x3, [sp+376]
00284134ldr x2, [sp+376]
00284138ldr x0, [sp+432]
0028413cldr x1, [sp+408]
00284140bl runtime.memmove
00284144b 0x28414c
00284148
00284148loc_284148:
00284148b 0x28414c
0028414c
0028414cloc_28414c:
0028414cldp x29, x30, [sp-8]
00284150add sp, sp, 560
00284154ret x30
00284158
00284158loc_284158:
00284158orr x1, xzr, 32
0028415cbl runtime.panicIndex
00284160hint
00284164
00284164loc_284164:
00284164stp x0, x1, [sp+8]
00284168stp x2, x3, [sp+24]
0028416cstp x4, x5, [sp+40]
00284170stp x6, x7, [sp+56]
00284174str x8, [sp+72]
00284178mov x3, x30
0028417cbl runtime.morestack_noctxt.abi0
00284180ldp x0, x1, [sp+8]
00284184ldp x2, x3, [sp+24]
00284188ldp x4, x5, [sp+40]
0028418cldp x6, x7, [sp+56]
00284190ldr x8, [sp+72]
00284194b 0x283cf0
00284198udf 0
0028419cudf 0
00283cf0
002841a0
002841a0crypto/ecdh.isZero: ; void crypto/ecdh.isZero(struct []uint8 x)
002841a0str x30, [sp-64]!
002841a4stur x29, [sp-8]
002841a8sub x29, sp, 8
002841acstr x0, [sp+72]
002841b0str x1, [sp+80]
002841b4str x2, [sp+88]
002841b8strb wzr, [sp+13]
002841bcstrb wzr, [sp+15]
002841c0ldr x1, [sp+80]
002841c4ldr x2, [sp+72]
002841c8ldr x3, [sp+88]
002841ccstr x2, [sp+32]
002841d0str x1, [sp+40]
002841d4str x3, [sp+48]
002841d8str xzr, [sp+24]
002841dcstr x1, [sp+16]
002841e0b 0x2841e4
002841e4
002841e4loc_2841e4:
002841e4ldr x1, [sp+16]
002841e8ldr x2, [sp+24]
002841ecsubs xzr, x1, x2
002841f0b.gt 0x2841f8
002841f4b 0x284228
002841f8
002841f8loc_2841f8:
002841f8ldr x1, [sp+24]
002841fcldr x2, [sp+32]
00284200ldrb w1, [x2+x1]
00284204strb w1, [sp+14]
00284208ldrb w2, [sp+15]
0028420corr x1, x2, x1
00284210strb w1, [sp+15]
00284214b 0x284218
00284218
00284218loc_284218:
00284218ldr x1, [sp+24]
0028421cadd x1, x1, 1
00284220str x1, [sp+24]
00284224b 0x2841e4
00284228
00284228loc_284228:
00284228ldrb w1, [sp+15]
0028422csubs wzr, w1, 0
00284230cset x0, eq
00284234strb w0, [sp+13]
00284238add x29, sp, 56
0028423cadd sp, sp, 64
00284240ret x30
00284244udf 0
00284248udf 0
0028424cudf 0
002841a0
002841a0crypto/ecdh.isZero: ; void crypto/ecdh.isZero(struct []uint8 x)
002841a0str x30, [sp-64]!
002841a4stur x29, [sp-8]
002841a8sub x29, sp, 8
002841acstr x0, [sp+72]
002841b0str x1, [sp+80]
002841b4str x2, [sp+88]
002841b8strb wzr, [sp+13]
002841bcstrb wzr, [sp+15]
002841c0ldr x1, [sp+80]
002841c4ldr x2, [sp+72]
002841c8ldr x3, [sp+88]
002841ccstr x2, [sp+32]
002841d0str x1, [sp+40]
002841d4str x3, [sp+48]
002841d8str xzr, [sp+24]
002841dcstr x1, [sp+16]
002841e0b 0x2841e4
002841e4
002841e4loc_2841e4:
002841e4ldr x1, [sp+16]
002841e8ldr x2, [sp+24]
002841ecsubs xzr, x1, x2
002841f0b.gt 0x2841f8
002841f4b 0x284228
002841f8
002841f8loc_2841f8:
002841f8ldr x1, [sp+24]
002841fcldr x2, [sp+32]
00284200ldrb w1, [x2+x1]
00284204strb w1, [sp+14]
00284208ldrb w2, [sp+15]
0028420corr x1, x2, x1
00284210strb w1, [sp+15]
00284214b 0x284218
00284218
00284218loc_284218:
00284218ldr x1, [sp+24]
0028421cadd x1, x1, 1
00284220str x1, [sp+24]
00284224b 0x2841e4
00284228
00284228loc_284228:
00284228ldrb w1, [sp+15]
0028422csubs wzr, w1, 0
00284230cset x0, eq
00284234strb w0, [sp+13]
00284238add x29, sp, 56
0028423cadd sp, sp, 64
00284240ret x30
00284244udf 0
00284248udf 0
0028424cudf 0
002841a0
00284250
00284250math/big.init: ; void math/big.init(void)
00284250ldr x16, [x28+16]
00284254subs xzr, sp, x16
00284258b.ls 0x28430c
0028425cstr x30, [sp-32]!
00284260stur x29, [sp-8]
00284264sub x29, sp, 8
00284268adrp x0, 0x432000
0028426cadd x0, x0, 3827
00284270movz x1, 20
00284274bl errors.New
00284278adrp x27, 0x79d000
0028427cstr x0, [x27+3776]
00284280adrp x27, 0x7c7000
00284284ldr w2, [x27+3056]
00284288cbz w2, 0x284290
0028428cb 0x284294
00284290
00284290loc_284290:
00284290b 0x2842ac
00284294
00284294loc_284294:
00284294bl runtime.gcWriteBarrier2
00284298str x1, [x25]
0028429cadrp x27, 0x79d000
002842a0ldr x2, [x27+3784]
002842a4str x2, [x25+8]
002842a8b 0x2842ac
002842ac
002842acloc_2842ac:
002842acadrp x27, 0x79d000
002842b0str x1, [x27+3784]
002842b4adrp x0, 0x43c000
002842b8add x0, x0, 3821
002842bcmovz x1, 35
002842c0bl errors.New
002842c4adrp x27, 0x79d000
002842c8str x0, [x27+3792]
002842ccadrp x27, 0x7c7000
002842d0ldr w2, [x27+3056]
002842d4cbz w2, 0x2842dc
002842d8b 0x2842e0
002842dc
002842dcloc_2842dc:
002842dcb 0x2842f8
002842e0
002842e0loc_2842e0:
002842e0bl runtime.gcWriteBarrier2
002842e4str x1, [x25]
002842e8adrp x27, 0x79d000
002842ecldr x0, [x27+3800]
002842f0str x0, [x25+8]
002842f4b 0x2842f8
002842f8
002842f8loc_2842f8:
002842f8adrp x27, 0x79d000
002842fcstr x1, [x27+3800]
00284300ldur x29, [sp-8]
00284304ldr x30, [sp], 32
00284308ret x30
0028430c
0028430cloc_28430c:
0028430cmov x3, x30
00284310bl runtime.morestack_noctxt.abi0
00284314b 0x284250
00284318udf 0
0028431cudf 0
00284250
00284250math/big.init: ; void math/big.init(void)
00284250ldr x16, [x28+16]
00284254subs xzr, sp, x16
00284258b.ls 0x28430c
0028425cstr x30, [sp-32]!
00284260stur x29, [sp-8]
00284264sub x29, sp, 8
00284268adrp x0, 0x432000
0028426cadd x0, x0, 3827
00284270movz x1, 20
00284274bl errors.New
00284278adrp x27, 0x79d000
0028427cstr x0, [x27+3776]
00284280adrp x27, 0x7c7000
00284284ldr w2, [x27+3056]
00284288cbz w2, 0x284290
0028428cb 0x284294
00284290
00284290loc_284290:
00284290b 0x2842ac
00284294
00284294loc_284294:
00284294bl runtime.gcWriteBarrier2
00284298str x1, [x25]
0028429cadrp x27, 0x79d000
002842a0ldr x2, [x27+3784]
002842a4str x2, [x25+8]
002842a8b 0x2842ac
002842ac
002842acloc_2842ac:
002842acadrp x27, 0x79d000
002842b0str x1, [x27+3784]
002842b4adrp x0, 0x43c000
002842b8add x0, x0, 3821
002842bcmovz x1, 35
002842c0bl errors.New
002842c4adrp x27, 0x79d000
002842c8str x0, [x27+3792]
002842ccadrp x27, 0x7c7000
002842d0ldr w2, [x27+3056]
002842d4cbz w2, 0x2842dc
002842d8b 0x2842e0
002842dc
002842dcloc_2842dc:
002842dcb 0x2842f8
002842e0
002842e0loc_2842e0:
002842e0bl runtime.gcWriteBarrier2
002842e4str x1, [x25]
002842e8adrp x27, 0x79d000
002842ecldr x0, [x27+3800]
002842f0str x0, [x25+8]
002842f4b 0x2842f8
002842f8
002842f8loc_2842f8:
002842f8adrp x27, 0x79d000
002842fcstr x1, [x27+3800]
00284300ldur x29, [sp-8]
00284304ldr x30, [sp], 32
00284308ret x30
0028430c
0028430cloc_28430c:
0028430cmov x3, x30
00284310bl runtime.morestack_noctxt.abi0
00284314b 0x284250
00284318udf 0
0028431cudf 0
00284250
00284320
00284320math/big.nlz: ; void math/big.nlz(math/big.Word x)
00284320ldr x16, [x28+16]
00284324subs xzr, sp, x16
00284328b.ls 0x28435c
0028432cstr x30, [sp-48]!
00284330stur x29, [sp-8]
00284334sub x29, sp, 8
00284338str x0, [sp+56]
0028433cstr xzr, [sp+24]
00284340bl math/bits.LeadingZeros
00284344str x0, [sp+32]
00284348str x0, [sp+24]
0028434cldr x0, [sp+24]
00284350ldur x29, [sp-8]
00284354ldr x30, [sp], 48
00284358ret x30
0028435c
0028435cloc_28435c:
0028435cstr x0, [sp+8]
00284360mov x3, x30
00284364bl runtime.morestack_noctxt.abi0
00284368ldr x0, [sp+8]
0028436cb 0x284320
00284320
00284320math/big.nlz: ; void math/big.nlz(math/big.Word x)
00284320ldr x16, [x28+16]
00284324subs xzr, sp, x16
00284328b.ls 0x28435c
0028432cstr x30, [sp-48]!
00284330stur x29, [sp-8]
00284334sub x29, sp, 8
00284338str x0, [sp+56]
0028433cstr xzr, [sp+24]
00284340bl math/bits.LeadingZeros
00284344str x0, [sp+32]
00284348str x0, [sp+24]
0028434cldr x0, [sp+24]
00284350ldur x29, [sp-8]
00284354ldr x30, [sp], 48
00284358ret x30
0028435c
0028435cloc_28435c:
0028435cstr x0, [sp+8]
00284360mov x3, x30
00284364bl runtime.morestack_noctxt.abi0
00284368ldr x0, [sp+8]
0028436cb 0x284320
00284320
00284370
00284370math/big.divWW: ; void math/big.divWW(math/big.Word x1, math/big.Word x0, math/big.Word y, math/big.Word m)
00284370ldr x16, [x28+16]
00284374sub x17, sp, 112
00284378subs xzr, x17, x16
0028437cb.ls 0x2845c4
00284380str x30, [sp-240]!
00284384stur x29, [sp-8]
00284388sub x29, sp, 8
0028438cstr x0, [sp+248]
00284390str x1, [sp+256]
00284394str x2, [sp+264]
00284398str x3, [sp+272]
0028439cstr xzr, [sp+72]
002843a0str xzr, [sp+56]
002843a4mov x0, x2
002843a8bl math/big.nlz
002843acstr x0, [sp+32]
002843b0cbnz x0, 0x2843b8
002843b4b 0x284414
002843b8
002843b8loc_2843b8:
002843b8ldr x2, [sp+248]
002843bclslv x2, x2, x0
002843c0ldr x3, [sp+256]
002843c4orr x4, xzr, 64
002843c8sub x4, x4, x0
002843cclsrv x3, x3, x4
002843d0subs xzr, x0, 64
002843d4csel x2, x2, xzr, lo
002843d8subs xzr, x4, 64
002843dccsel x3, x3, xzr, lo
002843e0orr x2, x2, x3
002843e4str x2, [sp+248]
002843e8ldr x2, [sp+256]
002843eclslv x2, x2, x0
002843f0subs xzr, x0, 64
002843f4csel x2, x2, xzr, lo
002843f8str x2, [sp+256]
002843fcldr x2, [sp+264]
00284400lslv x2, x2, x0
00284404subs xzr, x0, 64
00284408csel x2, x2, xzr, lo
0028440cstr x2, [sp+264]
00284410b 0x284418
00284414
00284414loc_284414:
00284414b 0x284418
00284418
00284418loc_284418:
00284418ldr x2, [sp+264]
0028441cstr x2, [sp+96]
00284420ldr x2, [sp+272]
00284424ldr x3, [sp+248]
00284428madd x4, x2, x3, xzr
0028442cumulh x2, x2, x3
00284430str x2, [sp+128]
00284434str x4, [sp+120]
00284438str x2, [sp+224]
0028443cstr x4, [sp+216]
00284440str x2, [sp+16]
00284444str x4, [sp+24]
00284448ldr x2, [sp+256]
0028444cadds x3, x4, x2
00284450adc x3, xzr, xzr
00284454adds x5, x4, x2
00284458str x5, [sp+120]
0028445cstr x3, [sp+128]
00284460str x5, [sp+208]
00284464str x3, [sp+200]
00284468str x3, [sp+104]
0028446cldr x3, [sp+16]
00284470ldr x5, [sp+248]
00284474adds x6, x4, x2
00284478adcs x6, x3, x5
0028447cadds x6, x4, x2
00284480adcs x6, x3, x5
00284484str x6, [sp+128]
00284488adds x2, x4, x2
0028448cadcs x2, x3, x5
00284490adc x2, xzr, xzr
00284494str x2, [sp+120]
00284498str x6, [sp+192]
0028449cstr x2, [sp+184]
002844a0str x6, [sp+16]
002844a4str x6, [sp+64]
002844a8ldr x2, [sp+96]
002844acmadd x3, x2, x6, xzr
002844b0umulh x2, x2, x6
002844b4str x2, [sp+120]
002844b8str x3, [sp+128]
002844bcstr x2, [sp+176]
002844c0str x3, [sp+168]
002844c4str x2, [sp+80]
002844c8str x3, [sp+88]
002844ccldr x2, [sp+256]
002844d0subs x4, x2, x3
002844d4sbc x4, xzr, xzr
002844d8sub x4, xzr, x4
002844dcsubs x5, x2, x3
002844e0str x5, [sp+128]
002844e4str x4, [sp+120]
002844e8str x5, [sp+160]
002844ecstr x4, [sp+152]
002844f0str x5, [sp+48]
002844f4str x4, [sp+112]
002844f8ldr x4, [sp+80]
002844fcldr x5, [sp+248]
00284500subs x6, x2, x3
00284504sbcs x6, x5, x4
00284508sbc x6, xzr, xzr
0028450csub x6, xzr, x6
00284510subs x2, x2, x3
00284514sbcs x2, x5, x4
00284518str x2, [sp+120]
0028451cstr x6, [sp+128]
00284520str x2, [sp+144]
00284524str x6, [sp+136]
00284528str x2, [sp+40]
0028452ccbnz x2, 0x284534
00284530b 0x284554
00284534
00284534loc_284534:
00284534ldr x2, [sp+64]
00284538add x2, x2, 1
0028453cstr x2, [sp+64]
00284540ldr x2, [sp+96]
00284544ldr x3, [sp+48]
00284548sub x2, x3, x2
0028454cstr x2, [sp+48]
00284550b 0x284558
00284554
00284554loc_284554:
00284554b 0x284558
00284558
00284558loc_284558:
00284558ldr x2, [sp+96]
0028455cldr x3, [sp+48]
00284560subs xzr, x2, x3
00284564b.ls 0x28456c
00284568b 0x28458c
0028456c
0028456cloc_28456c:
0028456cldr x2, [sp+64]
00284570add x2, x2, 1
00284574str x2, [sp+64]
00284578ldr x2, [sp+96]
0028457cldr x3, [sp+48]
00284580sub x2, x3, x2
00284584str x2, [sp+48]
00284588b 0x284590
0028458c
0028458cloc_28458c:
0028458cb 0x284590
00284590
00284590loc_284590:
00284590ldr x2, [sp+64]
00284594str x2, [sp+72]
00284598ldr x2, [sp+32]
0028459cldr x3, [sp+48]
002845a0lsrv x3, x3, x2
002845a4subs xzr, x2, 64
002845a8csel x2, x3, xzr, lo
002845acstr x2, [sp+56]
002845b0ldr x0, [sp+72]
002845b4ldr x1, [sp+56]
002845b8ldur x29, [sp-8]
002845bcldr x30, [sp], 240
002845c0ret x30
002845c4
002845c4loc_2845c4:
002845c4stp x0, x1, [sp+8]
002845c8stp x2, x3, [sp+24]
002845ccmov x3, x30
002845d0bl runtime.morestack_noctxt.abi0
002845d4ldp x0, x1, [sp+8]
002845d8ldp x2, x3, [sp+24]
002845dcb 0x284370
00284370
00284370math/big.divWW: ; void math/big.divWW(math/big.Word x1, math/big.Word x0, math/big.Word y, math/big.Word m)
00284370ldr x16, [x28+16]
00284374sub x17, sp, 112
00284378subs xzr, x17, x16
0028437cb.ls 0x2845c4
00284380str x30, [sp-240]!
00284384stur x29, [sp-8]
00284388sub x29, sp, 8
0028438cstr x0, [sp+248]
00284390str x1, [sp+256]
00284394str x2, [sp+264]
00284398str x3, [sp+272]
0028439cstr xzr, [sp+72]
002843a0str xzr, [sp+56]
002843a4mov x0, x2
002843a8bl math/big.nlz
002843acstr x0, [sp+32]
002843b0cbnz x0, 0x2843b8
002843b4b 0x284414
002843b8
002843b8loc_2843b8:
002843b8ldr x2, [sp+248]
002843bclslv x2, x2, x0
002843c0ldr x3, [sp+256]
002843c4orr x4, xzr, 64
002843c8sub x4, x4, x0
002843cclsrv x3, x3, x4
002843d0subs xzr, x0, 64
002843d4csel x2, x2, xzr, lo
002843d8subs xzr, x4, 64
002843dccsel x3, x3, xzr, lo
002843e0orr x2, x2, x3
002843e4str x2, [sp+248]
002843e8ldr x2, [sp+256]
002843eclslv x2, x2, x0
002843f0subs xzr, x0, 64
002843f4csel x2, x2, xzr, lo
002843f8str x2, [sp+256]
002843fcldr x2, [sp+264]
00284400lslv x2, x2, x0
00284404subs xzr, x0, 64
00284408csel x2, x2, xzr, lo
0028440cstr x2, [sp+264]
00284410b 0x284418
00284414
00284414loc_284414:
00284414b 0x284418
00284418
00284418loc_284418:
00284418ldr x2, [sp+264]
0028441cstr x2, [sp+96]
00284420ldr x2, [sp+272]
00284424ldr x3, [sp+248]
00284428madd x4, x2, x3, xzr
0028442cumulh x2, x2, x3
00284430str x2, [sp+128]
00284434str x4, [sp+120]
00284438str x2, [sp+224]
0028443cstr x4, [sp+216]
00284440str x2, [sp+16]
00284444str x4, [sp+24]
00284448ldr x2, [sp+256]
0028444cadds x3, x4, x2
00284450adc x3, xzr, xzr
00284454adds x5, x4, x2
00284458str x5, [sp+120]
0028445cstr x3, [sp+128]
00284460str x5, [sp+208]
00284464str x3, [sp+200]
00284468str x3, [sp+104]
0028446cldr x3, [sp+16]
00284470ldr x5, [sp+248]
00284474adds x6, x4, x2
00284478adcs x6, x3, x5
0028447cadds x6, x4, x2
00284480adcs x6, x3, x5
00284484str x6, [sp+128]
00284488adds x2, x4, x2
0028448cadcs x2, x3, x5
00284490adc x2, xzr, xzr
00284494str x2, [sp+120]
00284498str x6, [sp+192]
0028449cstr x2, [sp+184]
002844a0str x6, [sp+16]
002844a4str x6, [sp+64]
002844a8ldr x2, [sp+96]
002844acmadd x3, x2, x6, xzr
002844b0umulh x2, x2, x6
002844b4str x2, [sp+120]
002844b8str x3, [sp+128]
002844bcstr x2, [sp+176]
002844c0str x3, [sp+168]
002844c4str x2, [sp+80]
002844c8str x3, [sp+88]
002844ccldr x2, [sp+256]
002844d0subs x4, x2, x3
002844d4sbc x4, xzr, xzr
002844d8sub x4, xzr, x4
002844dcsubs x5, x2, x3
002844e0str x5, [sp+128]
002844e4str x4, [sp+120]
002844e8str x5, [sp+160]
002844ecstr x4, [sp+152]
002844f0str x5, [sp+48]
002844f4str x4, [sp+112]
002844f8ldr x4, [sp+80]
002844fcldr x5, [sp+248]
00284500subs x6, x2, x3
00284504sbcs x6, x5, x4
00284508sbc x6, xzr, xzr
0028450csub x6, xzr, x6
00284510subs x2, x2, x3
00284514sbcs x2, x5, x4
00284518str x2, [sp+120]
0028451cstr x6, [sp+128]
00284520str x2, [sp+144]
00284524str x6, [sp+136]
00284528str x2, [sp+40]
0028452ccbnz x2, 0x284534
00284530b 0x284554
00284534
00284534loc_284534:
00284534ldr x2, [sp+64]
00284538add x2, x2, 1
0028453cstr x2, [sp+64]
00284540ldr x2, [sp+96]
00284544ldr x3, [sp+48]
00284548sub x2, x3, x2
0028454cstr x2, [sp+48]
00284550b 0x284558
00284554
00284554loc_284554:
00284554b 0x284558
00284558
00284558loc_284558:
00284558ldr x2, [sp+96]
0028455cldr x3, [sp+48]
00284560subs xzr, x2, x3
00284564b.ls 0x28456c
00284568b 0x28458c
0028456c
0028456cloc_28456c:
0028456cldr x2, [sp+64]
00284570add x2, x2, 1
00284574str x2, [sp+64]
00284578ldr x2, [sp+96]
0028457cldr x3, [sp+48]
00284580sub x2, x3, x2
00284584str x2, [sp+48]
00284588b 0x284590
0028458c
0028458cloc_28458c:
0028458cb 0x284590
00284590
00284590loc_284590:
00284590ldr x2, [sp+64]
00284594str x2, [sp+72]
00284598ldr x2, [sp+32]
0028459cldr x3, [sp+48]
002845a0lsrv x3, x3, x2
002845a4subs xzr, x2, 64
002845a8csel x2, x3, xzr, lo
002845acstr x2, [sp+56]
002845b0ldr x0, [sp+72]
002845b4ldr x1, [sp+56]
002845b8ldur x29, [sp-8]
002845bcldr x30, [sp], 240
002845c0ret x30
002845c4
002845c4loc_2845c4:
002845c4stp x0, x1, [sp+8]
002845c8stp x2, x3, [sp+24]
002845ccmov x3, x30
002845d0bl runtime.morestack_noctxt.abi0
002845d4ldp x0, x1, [sp+8]
002845d8ldp x2, x3, [sp+24]
002845dcb 0x284370
00284370
002845e0
002845e0math/big.reciprocalWord: ; void math/big.reciprocalWord(math/big.Word d1)
002845e0ldr x16, [x28+16]
002845e4subs xzr, sp, x16
002845e8b.ls 0x284660
002845ecstr x30, [sp-112]!
002845f0stur x29, [sp-8]
002845f4sub x29, sp, 8
002845f8str x0, [sp+120]
002845fcstr xzr, [sp+32]
00284600bl math/big.nlz
00284604str x0, [sp+80]
00284608ldr x1, [sp+120]
0028460clslv x1, x1, x0
00284610subs xzr, x0, 64
00284614csel x1, x1, xzr, lo
00284618str x1, [sp+56]
0028461cldr x1, [sp+56]
00284620orn x0, xzr, x1
00284624str x0, [sp+40]
00284628movn x1, 0
0028462cstr x1, [sp+48]
00284630ldr x2, [sp+56]
00284634bl math/bits.Div
00284638str x0, [sp+80]
0028463cstr x1, [sp+72]
00284640str x0, [sp+96]
00284644str x1, [sp+88]
00284648str x0, [sp+64]
0028464cstr x0, [sp+32]
00284650ldr x0, [sp+32]
00284654ldur x29, [sp-8]
00284658ldr x30, [sp], 112
0028465cret x30
00284660
00284660loc_284660:
00284660str x0, [sp+8]
00284664mov x3, x30
00284668bl runtime.morestack_noctxt.abi0
0028466cldr x0, [sp+8]
00284670b 0x2845e0
00284674udf 0
00284678udf 0
0028467cudf 0
002845e0
002845e0math/big.reciprocalWord: ; void math/big.reciprocalWord(math/big.Word d1)
002845e0ldr x16, [x28+16]
002845e4subs xzr, sp, x16
002845e8b.ls 0x284660
002845ecstr x30, [sp-112]!
002845f0stur x29, [sp-8]
002845f4sub x29, sp, 8
002845f8str x0, [sp+120]
002845fcstr xzr, [sp+32]
00284600bl math/big.nlz
00284604str x0, [sp+80]
00284608ldr x1, [sp+120]
0028460clslv x1, x1, x0
00284610subs xzr, x0, 64
00284614csel x1, x1, xzr, lo
00284618str x1, [sp+56]
0028461cldr x1, [sp+56]
00284620orn x0, xzr, x1
00284624str x0, [sp+40]
00284628movn x1, 0
0028462cstr x1, [sp+48]
00284630ldr x2, [sp+56]
00284634bl math/bits.Div
00284638str x0, [sp+80]
0028463cstr x1, [sp+72]
00284640str x0, [sp+96]
00284644str x1, [sp+88]
00284648str x0, [sp+64]
0028464cstr x0, [sp+32]
00284650ldr x0, [sp+32]
00284654ldur x29, [sp-8]
00284658ldr x30, [sp], 112
0028465cret x30
00284660
00284660loc_284660:
00284660str x0, [sp+8]
00284664mov x3, x30
00284668bl runtime.morestack_noctxt.abi0
0028466cldr x0, [sp+8]
00284670b 0x2845e0
00284674udf 0
00284678udf 0
0028467cudf 0
002845e0
Loading..