File sliver_83cb34f62800fed14e14547c39337aab8e0427fe2c6310a3fb40ce0ac36168c9.elf
Function:
Loading..
00282040
00282040crypto/ecdh.init.func12: ; void crypto/ecdh.init.func12(crypto/internal/fips140/ecdh.PrivateKey * priv, crypto/internal/fips140/ecdh.PublicKey * pub)
00282040ldr x16, [x28+16]
00282044sub x17, sp, 48
00282048subs xzr, x17, x16
0028204cb.ls 0x282118
00282050str x30, [sp-176]!
00282054stur x29, [sp-8]
00282058sub x29, sp, 8
0028205cstr x0, [sp+184]
00282060str x1, [sp+192]
00282064str xzr, [sp+40]
00282068stp xzr, xzr, [sp+48]
0028206cstp xzr, xzr, [sp+64]
00282070bl crypto/internal/fips140/ecdh.P521
00282074str x0, [sp+120]
00282078str xzr, [sp+96]
0028207cstp xzr, xzr, [sp+104]
00282080stp xzr, xzr, [sp+80]
00282084ldr x3, [sp+192]
00282088ldr x2, [sp+184]
0028208cldr x1, [sp+120]
00282090adrp x0, 0x490000
00282094add x0, x0, 2864
00282098bl crypto/internal/fips140/ecdh.ECDH[go.shape.*crypto/internal/fips140/nistec.P521Point]
0028209cstr x0, [sp+96]
002820a0str x1, [sp+104]
002820a4str x2, [sp+112]
002820a8str x3, [sp+80]
002820acstr x4, [sp+88]
002820b0ldr x0, [sp+96]
002820b4ldr x1, [sp+104]
002820b8ldr x2, [sp+112]
002820bcstr x0, [sp+144]
002820c0str x1, [sp+152]
002820c4str x2, [sp+160]
002820c8ldr x0, [sp+80]
002820ccldr x1, [sp+88]
002820d0str x0, [sp+128]
002820d4str x1, [sp+136]
002820d8ldr x0, [sp+144]
002820dcldr x1, [sp+152]
002820e0ldr x2, [sp+160]
002820e4str x0, [sp+40]
002820e8str x1, [sp+48]
002820ecstr x2, [sp+56]
002820f0ldr x3, [sp+128]
002820f4ldr x4, [sp+136]
002820f8str x3, [sp+64]
002820fcstr x4, [sp+72]
00282100ldr x0, [sp+40]
00282104ldr x1, [sp+48]
00282108ldr x2, [sp+56]
0028210cldur x29, [sp-8]
00282110ldr x30, [sp], 176
00282114ret x30
00282118
00282118loc_282118:
00282118stp x0, x1, [sp+8]
0028211cmov x3, x30
00282120bl runtime.morestack_noctxt.abi0
00282124ldp x0, x1, [sp+8]
00282128b 0x282040
0028212cudf 0
00282040
00282040crypto/ecdh.init.func12: ; void crypto/ecdh.init.func12(crypto/internal/fips140/ecdh.PrivateKey * priv, crypto/internal/fips140/ecdh.PublicKey * pub)
00282040ldr x16, [x28+16]
00282044sub x17, sp, 48
00282048subs xzr, x17, x16
0028204cb.ls 0x282118
00282050str x30, [sp-176]!
00282054stur x29, [sp-8]
00282058sub x29, sp, 8
0028205cstr x0, [sp+184]
00282060str x1, [sp+192]
00282064str xzr, [sp+40]
00282068stp xzr, xzr, [sp+48]
0028206cstp xzr, xzr, [sp+64]
00282070bl crypto/internal/fips140/ecdh.P521
00282074str x0, [sp+120]
00282078str xzr, [sp+96]
0028207cstp xzr, xzr, [sp+104]
00282080stp xzr, xzr, [sp+80]
00282084ldr x3, [sp+192]
00282088ldr x2, [sp+184]
0028208cldr x1, [sp+120]
00282090adrp x0, 0x490000
00282094add x0, x0, 2864
00282098bl crypto/internal/fips140/ecdh.ECDH[go.shape.*crypto/internal/fips140/nistec.P521Point]
0028209cstr x0, [sp+96]
002820a0str x1, [sp+104]
002820a4str x2, [sp+112]
002820a8str x3, [sp+80]
002820acstr x4, [sp+88]
002820b0ldr x0, [sp+96]
002820b4ldr x1, [sp+104]
002820b8ldr x2, [sp+112]
002820bcstr x0, [sp+144]
002820c0str x1, [sp+152]
002820c4str x2, [sp+160]
002820c8ldr x0, [sp+80]
002820ccldr x1, [sp+88]
002820d0str x0, [sp+128]
002820d4str x1, [sp+136]
002820d8ldr x0, [sp+144]
002820dcldr x1, [sp+152]
002820e0ldr x2, [sp+160]
002820e4str x0, [sp+40]
002820e8str x1, [sp+48]
002820ecstr x2, [sp+56]
002820f0ldr x3, [sp+128]
002820f4ldr x4, [sp+136]
002820f8str x3, [sp+64]
002820fcstr x4, [sp+72]
00282100ldr x0, [sp+40]
00282104ldr x1, [sp+48]
00282108ldr x2, [sp+56]
0028210cldur x29, [sp-8]
00282110ldr x30, [sp], 176
00282114ret x30
00282118
00282118loc_282118:
00282118stp x0, x1, [sp+8]
0028211cmov x3, x30
00282120bl runtime.morestack_noctxt.abi0
00282124ldp x0, x1, [sp+8]
00282128b 0x282040
0028212cudf 0
00282040
00282130
00282130crypto/ecdh.(*PublicKey).Bytes: ; void crypto/ecdh.(*PublicKey).Bytes(crypto/ecdh.PublicKey * k)
00282130ldr x16, [x28+16]
00282134sub x17, sp, 80
00282138subs xzr, x17, x16
0028213cb.ls 0x282278
00282140str x30, [sp-208]!
00282144stur x29, [sp-8]
00282148sub x29, sp, 8
0028214cstr x0, [sp+216]
00282150str xzr, [sp+64]
00282154stp xzr, xzr, [sp+72]
00282158adrp x0, 0x384000
0028215cadd x0, x0, 672
00282160bl runtime.newobject
00282164str x0, [sp+192]
00282168mov x20, x0
0028216cadr x27, 16
00282170stp x29, x27, [sp-24]
00282174sub x29, sp, 24
00282178bl fn_87cf0
0028217csub x29, sp, 8
00282180stur xzr, [x0+125]
00282184ldr x1, [sp+192]
00282188ldrsb x27, [x1]
0028218cb 0x282190
00282190
00282190loc_282190:
00282190b 0x282194
00282194
00282194loc_282194:
00282194str x1, [sp+168]
00282198str xzr, [sp+176]
0028219cmovz x5, 133
002821a0str x5, [sp+184]
002821a4ldr x5, [sp+216]
002821a8ldrsb x27, [x5]
002821acldr x6, [x5+16]
002821b0ldr x7, [x5+24]
002821b4ldr x5, [x5+32]
002821b8str x6, [sp+120]
002821bcstr x7, [sp+128]
002821c0str x5, [sp+136]
002821c4ldr x2, [sp+184]
002821c8ldr x0, [sp+168]
002821ccldr x5, [sp+176]
002821d0str x0, [sp+96]
002821d4str x5, [sp+104]
002821d8str x2, [sp+112]
002821dcldr x6, [sp+128]
002821e0add x1, x5, x6
002821e4str x1, [sp+56]
002821e8subs xzr, x2, x1
002821ecb.hs 0x2821f4
002821f0b 0x2821fc
002821f4
002821f4loc_2821f4:
002821f4str x1, [sp+104]
002821f8b 0x28221c
002821fc
002821fcloc_2821fc:
002821fcldr x3, [sp+128]
00282200adrp x4, 0x373000
00282204add x4, x4, 3072
00282208bl runtime.growslice
0028220cstr x0, [sp+96]
00282210str x1, [sp+104]
00282214str x2, [sp+112]
00282218b 0x28221c
0028221c
0028221cloc_28221c:
0028221cldr x3, [sp+128]
00282220str x3, [sp+48]
00282224ldr x3, [sp+56]
00282228ldr x4, [sp+128]
0028222csub x3, x3, x4
00282230ldr x4, [sp+96]
00282234add x0, x4, x3
00282238str x0, [sp+88]
0028223cldr x2, [sp+48]
00282240ldr x1, [sp+120]
00282244bl runtime.memmove
00282248ldr x0, [sp+96]
0028224cldr x1, [sp+104]
00282250ldr x2, [sp+112]
00282254str x0, [sp+144]
00282258str x1, [sp+152]
0028225cstr x2, [sp+160]
00282260str x0, [sp+64]
00282264str x1, [sp+72]
00282268str x2, [sp+80]
0028226cldur x29, [sp-8]
00282270ldr x30, [sp], 208
00282274ret x30
00282278
00282278loc_282278:
00282278str x0, [sp+8]
0028227cmov x3, x30
00282280bl runtime.morestack_noctxt.abi0
00282284ldr x0, [sp+8]
00282288b 0x282130
0028228cudf 0
00282130
00282130crypto/ecdh.(*PublicKey).Bytes: ; void crypto/ecdh.(*PublicKey).Bytes(crypto/ecdh.PublicKey * k)
00282130ldr x16, [x28+16]
00282134sub x17, sp, 80
00282138subs xzr, x17, x16
0028213cb.ls 0x282278
00282140str x30, [sp-208]!
00282144stur x29, [sp-8]
00282148sub x29, sp, 8
0028214cstr x0, [sp+216]
00282150str xzr, [sp+64]
00282154stp xzr, xzr, [sp+72]
00282158adrp x0, 0x384000
0028215cadd x0, x0, 672
00282160bl runtime.newobject
00282164str x0, [sp+192]
00282168mov x20, x0
0028216cadr x27, 16
00282170stp x29, x27, [sp-24]
00282174sub x29, sp, 24
00282178bl fn_87cf0
0028217csub x29, sp, 8
00282180stur xzr, [x0+125]
00282184ldr x1, [sp+192]
00282188ldrsb x27, [x1]
0028218cb 0x282190
00282190
00282190loc_282190:
00282190b 0x282194
00282194
00282194loc_282194:
00282194str x1, [sp+168]
00282198str xzr, [sp+176]
0028219cmovz x5, 133
002821a0str x5, [sp+184]
002821a4ldr x5, [sp+216]
002821a8ldrsb x27, [x5]
002821acldr x6, [x5+16]
002821b0ldr x7, [x5+24]
002821b4ldr x5, [x5+32]
002821b8str x6, [sp+120]
002821bcstr x7, [sp+128]
002821c0str x5, [sp+136]
002821c4ldr x2, [sp+184]
002821c8ldr x0, [sp+168]
002821ccldr x5, [sp+176]
002821d0str x0, [sp+96]
002821d4str x5, [sp+104]
002821d8str x2, [sp+112]
002821dcldr x6, [sp+128]
002821e0add x1, x5, x6
002821e4str x1, [sp+56]
002821e8subs xzr, x2, x1
002821ecb.hs 0x2821f4
002821f0b 0x2821fc
002821f4
002821f4loc_2821f4:
002821f4str x1, [sp+104]
002821f8b 0x28221c
002821fc
002821fcloc_2821fc:
002821fcldr x3, [sp+128]
00282200adrp x4, 0x373000
00282204add x4, x4, 3072
00282208bl runtime.growslice
0028220cstr x0, [sp+96]
00282210str x1, [sp+104]
00282214str x2, [sp+112]
00282218b 0x28221c
0028221c
0028221cloc_28221c:
0028221cldr x3, [sp+128]
00282220str x3, [sp+48]
00282224ldr x3, [sp+56]
00282228ldr x4, [sp+128]
0028222csub x3, x3, x4
00282230ldr x4, [sp+96]
00282234add x0, x4, x3
00282238str x0, [sp+88]
0028223cldr x2, [sp+48]
00282240ldr x1, [sp+120]
00282244bl runtime.memmove
00282248ldr x0, [sp+96]
0028224cldr x1, [sp+104]
00282250ldr x2, [sp+112]
00282254str x0, [sp+144]
00282258str x1, [sp+152]
0028225cstr x2, [sp+160]
00282260str x0, [sp+64]
00282264str x1, [sp+72]
00282268str x2, [sp+80]
0028226cldur x29, [sp-8]
00282270ldr x30, [sp], 208
00282274ret x30
00282278
00282278loc_282278:
00282278str x0, [sp+8]
0028227cmov x3, x30
00282280bl runtime.morestack_noctxt.abi0
00282284ldr x0, [sp+8]
00282288b 0x282130
0028228cudf 0
00282130
00282290
00282290crypto/ecdh.(*PublicKey).Equal: ; void crypto/ecdh.(*PublicKey).Equal(crypto/ecdh.PublicKey * k, crypto.PublicKey x)
00282290ldr x16, [x28+16]
00282294sub x17, sp, 64
00282298subs xzr, x17, x16
0028229cb.ls 0x282414
002822a0str x30, [sp-192]!
002822a4stur x29, [sp-8]
002822a8sub x29, sp, 8
002822acstr x0, [sp+200]
002822b0str x1, [sp+208]
002822b4str x2, [sp+216]
002822b8strb wzr, [sp+68]
002822bcstr xzr, [sp+88]
002822c0ldr x6, [sp+208]
002822c4ldr x7, [sp+216]
002822c8adrp x8, 0x3ab000
002822ccadd x8, x8, 2016
002822d0subs xzr, x6, x8
002822d4b.eq 0x2822dc
002822d8b 0x2822e4
002822dc
002822dcloc_2822dc:
002822dcorr x0, xzr, 1
002822e0b 0x2822f0
002822e4
002822e4loc_2822e4:
002822e4mov x0, xzr
002822e8mov x7, xzr
002822ecb 0x2822f0
002822f0
002822f0loc_2822f0:
002822f0str x7, [sp+88]
002822f4strb w0, [sp+70]
002822f8ldr x6, [sp+88]
002822fcstr x6, [sp+96]
00282300ldrb w6, [sp+70]
00282304strb w6, [sp+71]
00282308ldr x6, [sp+96]
0028230cstr x6, [sp+80]
00282310ldrb w6, [sp+71]
00282314strb w6, [sp+69]
00282318tbnz w6, 0, 0x282320
0028231cb 0x282400
00282320
00282320loc_282320:
00282320ldr x6, [sp+80]
00282324ldrsb x27, [x6]
00282328ldr x7, [x6]
0028232cldr x6, [x6+8]
00282330str x7, [sp+168]
00282334str x6, [sp+176]
00282338ldr x6, [sp+200]
0028233cldrsb x27, [x6]
00282340ldr x0, [x6]
00282344ldr x1, [x6+8]
00282348str x0, [sp+152]
0028234cstr x1, [sp+160]
00282350ldr x6, [sp+168]
00282354subs xzr, x6, x0
00282358cset x6, eq
0028235cb.eq 0x282364
00282360b 0x282370
00282364
00282364loc_282364:
00282364ldr x2, [sp+176]
00282368bl runtime.ifaceeq
0028236cb 0x282378
00282370
00282370loc_282370:
00282370mov x0, x6
00282374b 0x282378
00282378
00282378loc_282378:
00282378strb w0, [sp+70]
0028237ctbnz w0, 0, 0x282384
00282380b 0x2823e8
00282384
00282384loc_282384:
00282384ldr x6, [sp+200]
00282388ldrsb x27, [x6]
0028238cldr x7, [x6+16]
00282390ldr x8, [x6+24]
00282394ldr x6, [x6+32]
00282398str x7, [sp+128]
0028239cstr x8, [sp+136]
002823a0str x6, [sp+144]
002823a4ldr x6, [sp+80]
002823a8ldrsb x27, [x6]
002823acldr x3, [x6+16]
002823b0ldr x4, [x6+24]
002823b4ldr x5, [x6+32]
002823b8str x3, [sp+104]
002823bcstr x4, [sp+112]
002823c0str x5, [sp+120]
002823c4ldr x0, [sp+128]
002823c8ldr x1, [sp+136]
002823ccldr x2, [sp+144]
002823d0bl crypto/subtle.ConstantTimeCompare
002823d4str x0, [sp+72]
002823d8subs xzr, x0, 1
002823dccset x6, eq
002823e0strb w6, [sp+70]
002823e4b 0x2823ec
002823e8
002823e8loc_2823e8:
002823e8b 0x2823ec
002823ec
002823ecloc_2823ec:
002823ecldrb w0, [sp+70]
002823f0strb w0, [sp+68]
002823f4ldur x29, [sp-8]
002823f8ldr x30, [sp], 192
002823fcret x30
00282400
00282400loc_282400:
00282400strb wzr, [sp+68]
00282404mov x0, xzr
00282408ldur x29, [sp-8]
0028240cldr x30, [sp], 192
00282410ret x30
00282414
00282414loc_282414:
00282414stp x0, x1, [sp+8]
00282418str x2, [sp+24]
0028241cmov x3, x30
00282420bl runtime.morestack_noctxt.abi0
00282424ldp x0, x1, [sp+8]
00282428ldr x2, [sp+24]
0028242cb 0x282290
00282290
00282290crypto/ecdh.(*PublicKey).Equal: ; void crypto/ecdh.(*PublicKey).Equal(crypto/ecdh.PublicKey * k, crypto.PublicKey x)
00282290ldr x16, [x28+16]
00282294sub x17, sp, 64
00282298subs xzr, x17, x16
0028229cb.ls 0x282414
002822a0str x30, [sp-192]!
002822a4stur x29, [sp-8]
002822a8sub x29, sp, 8
002822acstr x0, [sp+200]
002822b0str x1, [sp+208]
002822b4str x2, [sp+216]
002822b8strb wzr, [sp+68]
002822bcstr xzr, [sp+88]
002822c0ldr x6, [sp+208]
002822c4ldr x7, [sp+216]
002822c8adrp x8, 0x3ab000
002822ccadd x8, x8, 2016
002822d0subs xzr, x6, x8
002822d4b.eq 0x2822dc
002822d8b 0x2822e4
002822dc
002822dcloc_2822dc:
002822dcorr x0, xzr, 1
002822e0b 0x2822f0
002822e4
002822e4loc_2822e4:
002822e4mov x0, xzr
002822e8mov x7, xzr
002822ecb 0x2822f0
002822f0
002822f0loc_2822f0:
002822f0str x7, [sp+88]
002822f4strb w0, [sp+70]
002822f8ldr x6, [sp+88]
002822fcstr x6, [sp+96]
00282300ldrb w6, [sp+70]
00282304strb w6, [sp+71]
00282308ldr x6, [sp+96]
0028230cstr x6, [sp+80]
00282310ldrb w6, [sp+71]
00282314strb w6, [sp+69]
00282318tbnz w6, 0, 0x282320
0028231cb 0x282400
00282320
00282320loc_282320:
00282320ldr x6, [sp+80]
00282324ldrsb x27, [x6]
00282328ldr x7, [x6]
0028232cldr x6, [x6+8]
00282330str x7, [sp+168]
00282334str x6, [sp+176]
00282338ldr x6, [sp+200]
0028233cldrsb x27, [x6]
00282340ldr x0, [x6]
00282344ldr x1, [x6+8]
00282348str x0, [sp+152]
0028234cstr x1, [sp+160]
00282350ldr x6, [sp+168]
00282354subs xzr, x6, x0
00282358cset x6, eq
0028235cb.eq 0x282364
00282360b 0x282370
00282364
00282364loc_282364:
00282364ldr x2, [sp+176]
00282368bl runtime.ifaceeq
0028236cb 0x282378
00282370
00282370loc_282370:
00282370mov x0, x6
00282374b 0x282378
00282378
00282378loc_282378:
00282378strb w0, [sp+70]
0028237ctbnz w0, 0, 0x282384
00282380b 0x2823e8
00282384
00282384loc_282384:
00282384ldr x6, [sp+200]
00282388ldrsb x27, [x6]
0028238cldr x7, [x6+16]
00282390ldr x8, [x6+24]
00282394ldr x6, [x6+32]
00282398str x7, [sp+128]
0028239cstr x8, [sp+136]
002823a0str x6, [sp+144]
002823a4ldr x6, [sp+80]
002823a8ldrsb x27, [x6]
002823acldr x3, [x6+16]
002823b0ldr x4, [x6+24]
002823b4ldr x5, [x6+32]
002823b8str x3, [sp+104]
002823bcstr x4, [sp+112]
002823c0str x5, [sp+120]
002823c4ldr x0, [sp+128]
002823c8ldr x1, [sp+136]
002823ccldr x2, [sp+144]
002823d0bl crypto/subtle.ConstantTimeCompare
002823d4str x0, [sp+72]
002823d8subs xzr, x0, 1
002823dccset x6, eq
002823e0strb w6, [sp+70]
002823e4b 0x2823ec
002823e8
002823e8loc_2823e8:
002823e8b 0x2823ec
002823ec
002823ecloc_2823ec:
002823ecldrb w0, [sp+70]
002823f0strb w0, [sp+68]
002823f4ldur x29, [sp-8]
002823f8ldr x30, [sp], 192
002823fcret x30
00282400
00282400loc_282400:
00282400strb wzr, [sp+68]
00282404mov x0, xzr
00282408ldur x29, [sp-8]
0028240cldr x30, [sp], 192
00282410ret x30
00282414
00282414loc_282414:
00282414stp x0, x1, [sp+8]
00282418str x2, [sp+24]
0028241cmov x3, x30
00282420bl runtime.morestack_noctxt.abi0
00282424ldp x0, x1, [sp+8]
00282428ldr x2, [sp+24]
0028242cb 0x282290
00282290
00282430
00282430crypto/ecdh.(*PrivateKey).ECDH: ; void crypto/ecdh.(*PrivateKey).ECDH(crypto/ecdh.PrivateKey * k, crypto/ecdh.PublicKey * remote)
00282430ldr x16, [x28+16]
00282434sub x17, sp, 64
00282438subs xzr, x17, x16
0028243cb.ls 0x2825ac
00282440str x30, [sp-192]!
00282444stur x29, [sp-8]
00282448sub x29, sp, 8
0028244cstr x0, [sp+200]
00282450str x1, [sp+208]
00282454str xzr, [sp+48]
00282458stp xzr, xzr, [sp+56]
0028245cstp xzr, xzr, [sp+32]
00282460ldr x3, [sp+208]
00282464ldrsb x27, [x3]
00282468ldr x4, [x3]
0028246cldr x3, [x3+8]
00282470str x4, [sp+88]
00282474str x3, [sp+96]
00282478ldr x3, [sp+200]
0028247cldrsb x27, [x3]
00282480ldr x0, [x3]
00282484ldr x1, [x3+8]
00282488str x0, [sp+72]
0028248cstr x1, [sp+80]
00282490ldr x3, [sp+88]
00282494subs xzr, x3, x0
00282498b.ne 0x2824a0
0028249cb 0x2824a4
002824a0
002824a0loc_2824a0:
002824a0b 0x282564
002824a4
002824a4loc_2824a4:
002824a4ldr x2, [sp+96]
002824a8bl runtime.ifaceeq
002824actbnz w0, 0, 0x2824b4
002824b0b 0x282560
002824b4
002824b4loc_2824b4:
002824b4str xzr, [sp+104]
002824b8stp xzr, xzr, [sp+112]
002824bcstp xzr, xzr, [sp+128]
002824c0ldr x3, [sp+200]
002824c4ldrsb x27, [x3]
002824c8ldr x4, [x3]
002824ccldrsb x27, [x4]
002824d0ldr x0, [x3+8]
002824d4ldr x2, [sp+208]
002824d8ldr x1, [sp+200]
002824dcldr x3, [x4+48]
002824e0blr x3
002824e4str x0, [sp+104]
002824e8str x1, [sp+112]
002824ecstr x2, [sp+120]
002824f0str x3, [sp+128]
002824f4str x4, [sp+136]
002824f8ldr x3, [sp+104]
002824fcldr x4, [sp+112]
00282500ldr x5, [sp+120]
00282504str x3, [sp+160]
00282508str x4, [sp+168]
0028250cstr x5, [sp+176]
00282510ldr x3, [sp+128]
00282514ldr x4, [sp+136]
00282518str x3, [sp+144]
0028251cstr x4, [sp+152]
00282520ldr x3, [sp+160]
00282524ldr x4, [sp+168]
00282528ldr x5, [sp+176]
0028252cstr x3, [sp+48]
00282530str x4, [sp+56]
00282534str x5, [sp+64]
00282538ldr x3, [sp+144]
0028253cldr x4, [sp+152]
00282540str x3, [sp+32]
00282544str x4, [sp+40]
00282548ldr x0, [sp+48]
0028254cldr x1, [sp+56]
00282550ldr x2, [sp+64]
00282554ldur x29, [sp-8]
00282558ldr x30, [sp], 192
0028255cret x30
00282560
00282560loc_282560:
00282560b 0x282564
00282564
00282564loc_282564:
00282564adrp x0, 0x44a000
00282568add x0, x0, 1094
0028256cmovz x1, 59
00282570bl errors.New
00282574str x0, [sp+128]
00282578str x1, [sp+136]
0028257cstr xzr, [sp+48]
00282580stp xzr, xzr, [sp+56]
00282584ldr x3, [sp+128]
00282588ldr x4, [sp+136]
0028258cstr x3, [sp+32]
00282590str x4, [sp+40]
00282594ldr x0, [sp+48]
00282598ldr x1, [sp+56]
0028259cldr x2, [sp+64]
002825a0ldur x29, [sp-8]
002825a4ldr x30, [sp], 192
002825a8ret x30
002825ac
002825acloc_2825ac:
002825acstp x0, x1, [sp+8]
002825b0mov x3, x30
002825b4bl runtime.morestack_noctxt.abi0
002825b8ldp x0, x1, [sp+8]
002825bcb 0x282430
00282430
00282430crypto/ecdh.(*PrivateKey).ECDH: ; void crypto/ecdh.(*PrivateKey).ECDH(crypto/ecdh.PrivateKey * k, crypto/ecdh.PublicKey * remote)
00282430ldr x16, [x28+16]
00282434sub x17, sp, 64
00282438subs xzr, x17, x16
0028243cb.ls 0x2825ac
00282440str x30, [sp-192]!
00282444stur x29, [sp-8]
00282448sub x29, sp, 8
0028244cstr x0, [sp+200]
00282450str x1, [sp+208]
00282454str xzr, [sp+48]
00282458stp xzr, xzr, [sp+56]
0028245cstp xzr, xzr, [sp+32]
00282460ldr x3, [sp+208]
00282464ldrsb x27, [x3]
00282468ldr x4, [x3]
0028246cldr x3, [x3+8]
00282470str x4, [sp+88]
00282474str x3, [sp+96]
00282478ldr x3, [sp+200]
0028247cldrsb x27, [x3]
00282480ldr x0, [x3]
00282484ldr x1, [x3+8]
00282488str x0, [sp+72]
0028248cstr x1, [sp+80]
00282490ldr x3, [sp+88]
00282494subs xzr, x3, x0
00282498b.ne 0x2824a0
0028249cb 0x2824a4
002824a0
002824a0loc_2824a0:
002824a0b 0x282564
002824a4
002824a4loc_2824a4:
002824a4ldr x2, [sp+96]
002824a8bl runtime.ifaceeq
002824actbnz w0, 0, 0x2824b4
002824b0b 0x282560
002824b4
002824b4loc_2824b4:
002824b4str xzr, [sp+104]
002824b8stp xzr, xzr, [sp+112]
002824bcstp xzr, xzr, [sp+128]
002824c0ldr x3, [sp+200]
002824c4ldrsb x27, [x3]
002824c8ldr x4, [x3]
002824ccldrsb x27, [x4]
002824d0ldr x0, [x3+8]
002824d4ldr x2, [sp+208]
002824d8ldr x1, [sp+200]
002824dcldr x3, [x4+48]
002824e0blr x3
002824e4str x0, [sp+104]
002824e8str x1, [sp+112]
002824ecstr x2, [sp+120]
002824f0str x3, [sp+128]
002824f4str x4, [sp+136]
002824f8ldr x3, [sp+104]
002824fcldr x4, [sp+112]
00282500ldr x5, [sp+120]
00282504str x3, [sp+160]
00282508str x4, [sp+168]
0028250cstr x5, [sp+176]
00282510ldr x3, [sp+128]
00282514ldr x4, [sp+136]
00282518str x3, [sp+144]
0028251cstr x4, [sp+152]
00282520ldr x3, [sp+160]
00282524ldr x4, [sp+168]
00282528ldr x5, [sp+176]
0028252cstr x3, [sp+48]
00282530str x4, [sp+56]
00282534str x5, [sp+64]
00282538ldr x3, [sp+144]
0028253cldr x4, [sp+152]
00282540str x3, [sp+32]
00282544str x4, [sp+40]
00282548ldr x0, [sp+48]
0028254cldr x1, [sp+56]
00282550ldr x2, [sp+64]
00282554ldur x29, [sp-8]
00282558ldr x30, [sp], 192
0028255cret x30
00282560
00282560loc_282560:
00282560b 0x282564
00282564
00282564loc_282564:
00282564adrp x0, 0x44a000
00282568add x0, x0, 1094
0028256cmovz x1, 59
00282570bl errors.New
00282574str x0, [sp+128]
00282578str x1, [sp+136]
0028257cstr xzr, [sp+48]
00282580stp xzr, xzr, [sp+56]
00282584ldr x3, [sp+128]
00282588ldr x4, [sp+136]
0028258cstr x3, [sp+32]
00282590str x4, [sp+40]
00282594ldr x0, [sp+48]
00282598ldr x1, [sp+56]
0028259cldr x2, [sp+64]
002825a0ldur x29, [sp-8]
002825a4ldr x30, [sp], 192
002825a8ret x30
002825ac
002825acloc_2825ac:
002825acstp x0, x1, [sp+8]
002825b0mov x3, x30
002825b4bl runtime.morestack_noctxt.abi0
002825b8ldp x0, x1, [sp+8]
002825bcb 0x282430
00282430
002825c0
002825c0crypto/ecdh.(*PrivateKey).Curve: ; void crypto/ecdh.(*PrivateKey).Curve(crypto/ecdh.PrivateKey * k)
002825c0str x30, [sp-32]!
002825c4stur x29, [sp-8]
002825c8sub x29, sp, 8
002825ccstr x0, [sp+40]
002825d0stp xzr, xzr, [sp+8]
002825d4ldr x2, [sp+40]
002825d8ldrsb x27, [x2]
002825dcldr x0, [x2]
002825e0ldr x1, [x2+8]
002825e4str x0, [sp+8]
002825e8str x1, [sp+16]
002825ecadd x29, sp, 24
002825f0add sp, sp, 32
002825f4ret x30
002825f8udf 0
002825fcudf 0
002825c0
002825c0crypto/ecdh.(*PrivateKey).Curve: ; void crypto/ecdh.(*PrivateKey).Curve(crypto/ecdh.PrivateKey * k)
002825c0str x30, [sp-32]!
002825c4stur x29, [sp-8]
002825c8sub x29, sp, 8
002825ccstr x0, [sp+40]
002825d0stp xzr, xzr, [sp+8]
002825d4ldr x2, [sp+40]
002825d8ldrsb x27, [x2]
002825dcldr x0, [x2]
002825e0ldr x1, [x2+8]
002825e4str x0, [sp+8]
002825e8str x1, [sp+16]
002825ecadd x29, sp, 24
002825f0add sp, sp, 32
002825f4ret x30
002825f8udf 0
002825fcudf 0
002825c0
00282600
00282600crypto/ecdh.(*PrivateKey).PublicKey: ; void crypto/ecdh.(*PrivateKey).PublicKey(crypto/ecdh.PrivateKey * k)
00282600str x30, [sp-32]!
00282604stur x29, [sp-8]
00282608sub x29, sp, 8
0028260cstr x0, [sp+40]
00282610str xzr, [sp+16]
00282614ldr x1, [sp+40]
00282618ldrsb x27, [x1]
0028261cldr x0, [x1+40]
00282620str x0, [sp+16]
00282624add x29, sp, 24
00282628add sp, sp, 32
0028262cret x30
00282600
00282600crypto/ecdh.(*PrivateKey).PublicKey: ; void crypto/ecdh.(*PrivateKey).PublicKey(crypto/ecdh.PrivateKey * k)
00282600str x30, [sp-32]!
00282604stur x29, [sp-8]
00282608sub x29, sp, 8
0028260cstr x0, [sp+40]
00282610str xzr, [sp+16]
00282614ldr x1, [sp+40]
00282618ldrsb x27, [x1]
0028261cldr x0, [x1+40]
00282620str x0, [sp+16]
00282624add x29, sp, 24
00282628add sp, sp, 32
0028262cret x30
00282600
00282630
00282630crypto/ecdh.(*PrivateKey).Public: ; void crypto/ecdh.(*PrivateKey).Public(crypto/ecdh.PrivateKey * k)
00282630ldr x16, [x28+16]
00282634subs xzr, sp, x16
00282638b.ls 0x282684
0028263cstr x30, [sp-64]!
00282640stur x29, [sp-8]
00282644sub x29, sp, 8
00282648str x0, [sp+72]
0028264cstp xzr, xzr, [sp+24]
00282650ldr x0, [sp+72]
00282654bl crypto/ecdh.(*PrivateKey).PublicKey
00282658str x0, [sp+48]
0028265cstr x0, [sp+40]
00282660adrp x1, 0x3ab000
00282664add x1, x1, 2016
00282668str x1, [sp+24]
0028266cstr x0, [sp+32]
00282670ldr x0, [sp+24]
00282674ldr x1, [sp+32]
00282678ldur x29, [sp-8]
0028267cldr x30, [sp], 64
00282680ret x30
00282684
00282684loc_282684:
00282684str x0, [sp+8]
00282688mov x3, x30
0028268cbl runtime.morestack_noctxt.abi0
00282690ldr x0, [sp+8]
00282694b 0x282630
00282698udf 0
0028269cudf 0
00282630
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
Loading..