File sliver_83cb34f62800fed14e14547c39337aab8e0427fe2c6310a3fb40ce0ac36168c9.elf
Function:
    002862d0
    002862d0math/big.(*Int).BitLen: ; void math/big.(*Int).BitLen(math/big.Int * x)
    002862d0ldr x16, [x28+16]
    002862d4subs xzr, sp, x16
    002862d8b.ls 0x286328
    002862dcstr x30, [sp-80]!
    002862e0stur x29, [sp-8]
    002862e4sub x29, sp, 8
    002862e8str x0, [sp+88]
    002862ecstr xzr, [sp+32]
    002862f0ldrsb x27, [x0]
    002862f4ldr x3, [x0+8]
    002862f8ldr x1, [x0+16]
    002862fcldr x2, [x0+24]
    00286300str x3, [sp+48]
    00286304str x1, [sp+56]
    00286308str x2, [sp+64]
    0028630cmov x0, x3
    00286310bl math/big.nat.bitLen
    00286314str x0, [sp+40]
    00286318str x0, [sp+32]
    0028631cldur x29, [sp-8]
    00286320ldr x30, [sp], 80
    00286324ret x30
    00286328
    00286328loc_286328:
    00286328str x0, [sp+8]
    0028632cmov x3, x30
    00286330bl runtime.morestack_noctxt.abi0
    00286334ldr x0, [sp+8]
    00286338b 0x2862d0
    0028633cudf 0
    002862d0
    00286340
    00286340math/big.(*Int).Exp: ; void math/big.(*Int).Exp(math/big.Int * z, math/big.Int * x, math/big.Int * y, math/big.Int * m)
    00286340ldr x16, [x28+16]
    00286344subs xzr, sp, x16
    00286348b.ls 0x286398
    0028634cstr x30, [sp-80]!
    00286350stur x29, [sp-8]
    00286354sub x29, sp, 8
    00286358str x0, [sp+88]
    0028635cstr x1, [sp+96]
    00286360str x2, [sp+104]
    00286364str x3, [sp+112]
    00286368str xzr, [sp+56]
    0028636cldr x1, [sp+96]
    00286370ldr x2, [sp+104]
    00286374ldr x3, [sp+112]
    00286378ldr x0, [sp+88]
    0028637cmov x4, xzr
    00286380bl math/big.(*Int).exp
    00286384str x0, [sp+64]
    00286388str x0, [sp+56]
    0028638cldur x29, [sp-8]
    00286390ldr x30, [sp], 80
    00286394ret x30
    00286398
    00286398loc_286398:
    00286398stp x0, x1, [sp+8]
    0028639cstp x2, x3, [sp+24]
    002863a0mov x3, x30
    002863a4bl runtime.morestack_noctxt.abi0
    002863a8ldp x0, x1, [sp+8]
    002863acldp x2, x3, [sp+24]
    002863b0b 0x286340
    002863b4udf 0
    002863b8udf 0
    002863bcudf 0
    00286340
    002863c0
    002863c0math/big.(*Int).exp: ; void math/big.(*Int).exp(math/big.Int * z, math/big.Int * x, math/big.Int * y, math/big.Int * m, bool slow)
    002863c0ldr x16, [x28+16]
    002863c4sub x17, sp, 320
    002863c8subs xzr, x17, x16
    002863ccb.ls 0x286868
    002863d0sub x20, sp, 448
    002863d4stp x29, x30, [x20-8]
    002863d8add sp, x20, 0
    002863dcsub x29, sp, 8
    002863e0str x0, [sp+456]
    002863e4str x1, [sp+464]
    002863e8str x2, [sp+472]
    002863ecstr x3, [sp+480]
    002863f0strb w4, [sp+488]
    002863f4str xzr, [sp+136]
    002863f8ldr x13, [sp+464]
    002863fcldrsb x27, [x13]
    00286400ldr x14, [x13+8]
    00286404ldr x15, [x13+16]
    00286408ldr x13, [x13+24]
    0028640cstr x14, [sp+168]
    00286410str x15, [sp+176]
    00286414str x13, [sp+184]
    00286418ldr x13, [sp+472]
    0028641cldrsb x27, [x13]
    00286420ldrb w13, [x13]
    00286424tbnz w13, 0, 0x28642c
    00286428b 0x2864f8
    0028642c
    0028642cloc_28642c:
    0028642cldr x3, [sp+480]
    00286430subs xzr, x3, 0
    00286434cset x4, ne
    00286438eor x4, x4, 1
    0028643cstrb w4, [sp+119]
    00286440cbnz x3, 0x286448
    00286444b 0x286468
    00286448
    00286448loc_286448:
    00286448ldr x3, [sp+480]
    0028644cldrsb x27, [x3]
    00286450ldr x3, [x3+16]
    00286454str x3, [sp+128]
    00286458subs xzr, x3, 0
    0028645ccset x3, eq
    00286460strb w3, [sp+119]
    00286464b 0x28646c
    00286468
    00286468loc_286468:
    00286468b 0x28646c
    0028646c
    0028646cloc_28646c:
    0028646cldrb w3, [sp+119]
    00286470tbnz w3, 0, 0x286478
    00286474b 0x286498
    00286478
    00286478loc_286478:
    00286478ldr x0, [sp+456]
    0028647corr x1, xzr, 1
    00286480bl math/big.(*Int).SetInt64
    00286484str x0, [sp+432]
    00286488str x0, [sp+136]
    0028648cldp x29, x30, [sp-8]
    00286490add sp, sp, 448
    00286494ret x30
    00286498
    00286498loc_286498:
    00286498strb wzr, [sp+376]
    0028649cstr xzr, [sp+384]
    002864a0stp xzr, xzr, [sp+392]
    002864a4add x0, sp, 376
    002864a8str x0, [sp+432]
    002864acldr x1, [sp+464]
    002864b0ldr x2, [sp+480]
    002864b4bl math/big.(*Int).ModInverse
    002864b8str x0, [sp+216]
    002864bccbnz x0, 0x2864c4
    002864c0b 0x2864e4
    002864c4
    002864c4loc_2864c4:
    002864c4ldrsb x27, [x0]
    002864c8ldr x13, [x0+8]
    002864ccldr x14, [x0+16]
    002864d0ldr x15, [x0+24]
    002864d4str x13, [sp+168]
    002864d8str x14, [sp+176]
    002864dcstr x15, [sp+184]
    002864e0b 0x2864fc
    002864e4
    002864e4loc_2864e4:
    002864e4str xzr, [sp+136]
    002864e8mov x0, xzr
    002864ecldp x29, x30, [sp-8]
    002864f0add sp, sp, 448
    002864f4ret x30
    002864f8
    002864f8loc_2864f8:
    002864f8b 0x2864fc
    002864fc
    002864fcloc_2864fc:
    002864fcldr x13, [sp+472]
    00286500ldrsb x27, [x13]
    00286504ldr x14, [x13+8]
    00286508ldr x15, [x13+16]
    0028650cldr x13, [x13+24]
    00286510str x14, [sp+144]
    00286514str x15, [sp+152]
    00286518str x13, [sp+160]
    0028651cstr xzr, [sp+192]
    00286520stp xzr, xzr, [sp+200]
    00286524ldr x13, [sp+480]
    00286528cbnz x13, 0x286530
    0028652cb 0x286604
    00286530
    00286530loc_286530:
    00286530ldr x13, [sp+480]
    00286534ldr x14, [sp+456]
    00286538subs xzr, x13, x14
    0028653ccset x13, eq
    00286540strb w13, [sp+119]
    00286544b.eq 0x28654c
    00286548b 0x286550
    0028654c
    0028654cloc_28654c:
    0028654cb 0x2865ac
    00286550
    00286550loc_286550:
    00286550ldr x6, [sp+456]
    00286554ldrsb x27, [x6]
    00286558ldr x7, [x6+8]
    0028655cldr x8, [x6+16]
    00286560ldr x6, [x6+24]
    00286564str x7, [sp+352]
    00286568str x8, [sp+360]
    0028656cstr x6, [sp+368]
    00286570ldr x6, [sp+480]
    00286574ldrsb x27, [x6]
    00286578ldr x3, [x6+8]
    0028657cldr x4, [x6+16]
    00286580ldr x5, [x6+24]
    00286584str x3, [sp+328]
    00286588str x4, [sp+336]
    0028658cstr x5, [sp+344]
    00286590ldr x0, [sp+352]
    00286594ldr x1, [sp+360]
    00286598ldr x2, [sp+368]
    0028659cbl math/big.alias
    002865a0strb w0, [sp+118]
    002865a4strb w0, [sp+119]
    002865a8b 0x2865ac
    002865ac
    002865acloc_2865ac:
    002865acldrb w13, [sp+119]
    002865b0tbnz w13, 0, 0x2865b8
    002865b4b 0x2865dc
    002865b8
    002865b8loc_2865b8:
    002865b8strb wzr, [sp+296]
    002865bcstr xzr, [sp+304]
    002865c0stp xzr, xzr, [sp+312]
    002865c4add x0, sp, 296
    002865c8str x0, [sp+432]
    002865ccldr x1, [sp+480]
    002865d0bl math/big.(*Int).Set
    002865d4str x0, [sp+480]
    002865d8b 0x2865e0
    002865dc
    002865dcloc_2865dc:
    002865dcb 0x2865e0
    002865e0
    002865e0loc_2865e0:
    002865e0ldr x13, [sp+480]
    002865e4ldrsb x27, [x13]
    002865e8ldr x14, [x13+8]
    002865ecldr x15, [x13+16]
    002865f0ldr x13, [x13+24]
    002865f4str x14, [sp+192]
    002865f8str x15, [sp+200]
    002865fcstr x13, [sp+208]
    00286600b 0x286608
    00286604
    00286604loc_286604:
    00286604b 0x286608
    00286608
    00286608loc_286608:
    00286608ldr x13, [sp+456]
    0028660cldrsb x27, [x13]
    00286610ldr x0, [x13+8]
    00286614ldr x1, [x13+16]
    00286618ldr x2, [x13+24]
    0028661cstr x0, [sp+272]
    00286620str x1, [sp+280]
    00286624str x2, [sp+288]
    00286628ldrb w12, [sp+488]
    0028662cldr x3, [sp+168]
    00286630ldr x6, [sp+144]
    00286634ldr x9, [sp+192]
    00286638ldr x4, [sp+176]
    0028663cldr x7, [sp+152]
    00286640ldr x10, [sp+200]
    00286644ldr x5, [sp+184]
    00286648ldr x8, [sp+160]
    0028664cldr x11, [sp+208]
    00286650bl math/big.nat.expNN
    00286654str x0, [sp+408]
    00286658str x1, [sp+416]
    0028665cstr x2, [sp+424]
    00286660ldr x13, [sp+456]
    00286664ldrsb x27, [x13]
    00286668str x1, [x13+16]
    0028666cstr x2, [x13+24]
    00286670adrp x27, 0x7c5000
    00286674ldr w14, [x27+3056]
    00286678cbz w14, 0x286680
    0028667cb 0x286684
    00286680
    00286680loc_286680:
    00286680b 0x286698
    00286684
    00286684loc_286684:
    00286684bl runtime.gcWriteBarrier2
    00286688str x0, [x25]
    0028668cldr x9, [x13+8]
    00286690str x9, [x25+8]
    00286694b 0x286698
    00286698
    00286698loc_286698:
    00286698str x0, [x13+8]
    0028669cldr x9, [sp+456]
    002866a0ldrsb x27, [x9]
    002866a4ldr x9, [x9+16]
    002866a8str x9, [sp+128]
    002866acsubs xzr, x9, 0
    002866b0cset x10, ne
    002866b4strb w10, [sp+117]
    002866b8cbnz x9, 0x2866c0
    002866bcb 0x2866d4
    002866c0
    002866c0loc_2866c0:
    002866c0ldr x9, [sp+464]
    002866c4ldrsb x27, [x9]
    002866c8ldrb w9, [x9]
    002866ccstrb w9, [sp+117]
    002866d0b 0x2866d8
    002866d4
    002866d4loc_2866d4:
    002866d4b 0x2866d8
    002866d8
    002866d8loc_2866d8:
    002866d8ldrb w9, [sp+117]
    002866dcstrb w9, [sp+118]
    002866e0tbnz w9, 0, 0x2866e8
    002866e4b 0x286700
    002866e8
    002866e8loc_2866e8:
    002866e8ldr x9, [sp+152]
    002866ecstr x9, [sp+120]
    002866f0subs xzr, x9, 0
    002866f4cset x9, ne
    002866f8strb w9, [sp+118]
    002866fcb 0x286704
    00286700
    00286700loc_286700:
    00286700b 0x286704
    00286704
    00286704loc_286704:
    00286704ldrb w9, [sp+118]
    00286708strb w9, [sp+119]
    0028670ctbnz w9, 0, 0x286714
    00286710b 0x28673c
    00286714
    00286714loc_286714:
    00286714ldr x1, [sp+152]
    00286718ldr x9, [sp+144]
    0028671csubs xzr, x1, 0
    00286720b.hi 0x286728
    00286724b 0x28685c
    00286728
    00286728loc_286728:
    00286728ldr x9, [x9]
    0028672cands xzr, x9, 1
    00286730cset x9, ne
    00286734strb w9, [sp+119]
    00286738b 0x286740
    0028673c
    0028673cloc_28673c:
    0028673cb 0x286740
    00286740
    00286740loc_286740:
    00286740ldr x9, [sp+456]
    00286744ldrsb x27, [x9]
    00286748ldrb w10, [sp+119]
    0028674cstrb w10, [x9]
    00286750ldr x9, [sp+456]
    00286754ldrsb x27, [x9]
    00286758ldrb w9, [x9]
    0028675cstrb w9, [sp+117]
    00286760tbnz w9, 0, 0x286768
    00286764b 0x286780
    00286768
    00286768loc_286768:
    00286768ldr x9, [sp+200]
    0028676cstr x9, [sp+128]
    00286770subs xzr, x9, 0
    00286774cset x9, ne
    00286778strb w9, [sp+117]
    0028677cb 0x286784
    00286780
    00286780loc_286780:
    00286780b 0x286784
    00286784
    00286784loc_286784:
    00286784ldrb w9, [sp+117]
    00286788tbnz w9, 0, 0x286790
    0028678cb 0x286844
    00286790
    00286790loc_286790:
    00286790ldr x9, [sp+456]
    00286794ldrsb x27, [x9]
    00286798ldr x10, [x9+8]
    0028679cldr x11, [x9+16]
    002867a0ldr x9, [x9+24]
    002867a4str x10, [sp+248]
    002867a8str x11, [sp+256]
    002867acstr x9, [sp+264]
    002867b0ldr x9, [sp+456]
    002867b4ldrsb x27, [x9]
    002867b8ldr x6, [x9+8]
    002867bcldr x7, [x9+16]
    002867c0ldr x8, [x9+24]
    002867c4str x6, [sp+224]
    002867c8str x7, [sp+232]
    002867ccstr x8, [sp+240]
    002867d0ldr x3, [sp+192]
    002867d4ldr x4, [sp+200]
    002867d8ldr x5, [sp+208]
    002867dcldr x0, [sp+248]
    002867e0ldr x1, [sp+256]
    002867e4ldr x2, [sp+264]
    002867e8bl math/big.nat.sub
    002867ecstr x0, [sp+408]
    002867f0str x1, [sp+416]
    002867f4str x2, [sp+424]
    002867f8ldr x9, [sp+456]
    002867fcldrsb x27, [x9]
    00286800str x1, [x9+16]
    00286804str x2, [x9+24]
    00286808adrp x27, 0x7c5000
    0028680cldr w10, [x27+3056]
    00286810cbz w10, 0x286818
    00286814b 0x28681c
    00286818
    00286818loc_286818:
    00286818b 0x286830
    0028681c
    0028681cloc_28681c:
    0028681cbl runtime.gcWriteBarrier2
    00286820str x0, [x25]
    00286824ldr x1, [x9+8]
    00286828str x1, [x25+8]
    0028682cb 0x286830
    00286830
    00286830loc_286830:
    00286830str x0, [x9+8]
    00286834ldr x1, [sp+456]
    00286838ldrsb x27, [x1]
    0028683cstrb wzr, [x1]
    00286840b 0x286848
    00286844
    00286844loc_286844:
    00286844b 0x286848
    00286848
    00286848loc_286848:
    00286848ldr x0, [sp+456]
    0028684cstr x0, [sp+136]
    00286850ldp x29, x30, [sp-8]
    00286854add sp, sp, 448
    00286858ret x30
    0028685c
    0028685cloc_28685c:
    0028685cmov x0, xzr
    00286860bl runtime.panicIndex
    00286864hint
    00286868
    00286868loc_286868:
    00286868stp x0, x1, [sp+8]
    0028686cstp x2, x3, [sp+24]
    00286870strb w4, [sp+40]
    00286874mov x3, x30
    00286878bl runtime.morestack_noctxt.abi0
    0028687cldp x0, x1, [sp+8]
    00286880ldp x2, x3, [sp+24]
    00286884ldrb w4, [sp+40]
    00286888b 0x2863c0
    0028688cudf 0
    002863c0
    00286890
    00286890math/big.(*Int).GCD: ; void math/big.(*Int).GCD(math/big.Int * z, math/big.Int * x, math/big.Int * y, math/big.Int * a, math/big.Int * b)
    00286890ldr x16, [x28+16]
    00286894subs xzr, sp, x16
    00286898b.ls 0x286a74
    0028689cstr x30, [sp-112]!
    002868a0stur x29, [sp-8]
    002868a4sub x29, sp, 8
    002868a8str x0, [sp+120]
    002868acstr x1, [sp+128]
    002868b0str x2, [sp+136]
    002868b4str x3, [sp+144]
    002868b8str x4, [sp+152]
    002868bcstr xzr, [sp+88]
    002868c0ldr x5, [sp+144]
    002868c4ldrsb x27, [x5]
    002868c8ldr x5, [x5+16]
    002868ccstr x5, [sp+80]
    002868d0subs xzr, x5, 0
    002868d4cset x6, eq
    002868d8strb w6, [sp+55]
    002868dccbz x5, 0x2868e4
    002868e0b 0x2868e8
    002868e4
    002868e4loc_2868e4:
    002868e4b 0x286908
    002868e8
    002868e8loc_2868e8:
    002868e8ldr x5, [sp+152]
    002868ecldrsb x27, [x5]
    002868f0ldr x5, [x5+16]
    002868f4str x5, [sp+72]
    002868f8subs xzr, x5, 0
    002868fccset x5, eq
    00286900strb w5, [sp+55]
    00286904b 0x286908
    00286908
    00286908loc_286908:
    00286908ldrb w5, [sp+55]
    0028690ctbnz w5, 0, 0x286914
    00286910b 0x286a48
    00286914
    00286914loc_286914:
    00286914ldr x2, [sp+144]
    00286918ldrsb x27, [x2]
    0028691cldr x2, [x2+16]
    00286920str x2, [sp+80]
    00286924ldr x3, [sp+152]
    00286928ldrsb x27, [x3]
    0028692cldr x3, [x3+16]
    00286930str x3, [sp+72]
    00286934str x2, [sp+64]
    00286938str x3, [sp+56]
    0028693cldr x2, [sp+144]
    00286940ldrsb x27, [x2]
    00286944ldrb w2, [x2]
    00286948strb w2, [sp+54]
    0028694cldr x2, [sp+152]
    00286950ldrsb x27, [x2]
    00286954ldrb w2, [x2]
    00286958strb w2, [sp+53]
    0028695cldr x2, [sp+64]
    00286960cbz x2, 0x286968
    00286964b 0x286978
    00286968
    00286968loc_286968:
    00286968ldr x1, [sp+152]
    0028696cldr x0, [sp+120]
    00286970bl math/big.(*Int).Set
    00286974b 0x286988
    00286978
    00286978loc_286978:
    00286978ldr x1, [sp+144]
    0028697cldr x0, [sp+120]
    00286980bl math/big.(*Int).Set
    00286984b 0x286988
    00286988
    00286988loc_286988:
    00286988ldr x2, [sp+120]
    0028698cldrsb x27, [x2]
    00286990strb wzr, [x2]
    00286994ldr x2, [sp+128]
    00286998cbnz x2, 0x2869a0
    0028699cb 0x2869e0
    002869a0
    002869a0loc_2869a0:
    002869a0ldr x2, [sp+64]
    002869a4cbz x2, 0x2869ac
    002869a8b 0x2869bc
    002869ac
    002869acloc_2869ac:
    002869acldr x0, [sp+128]
    002869b0mov x1, xzr
    002869b4bl math/big.(*Int).SetUint64
    002869b8b 0x2869dc
    002869bc
    002869bcloc_2869bc:
    002869bcldr x0, [sp+128]
    002869c0orr x1, xzr, 1
    002869c4bl math/big.(*Int).SetUint64
    002869c8ldr x2, [sp+128]
    002869ccldrsb x27, [x2]
    002869d0ldrb w3, [sp+54]
    002869d4strb w3, [x2]
    002869d8b 0x2869dc
    002869dc
    002869dcloc_2869dc:
    002869dcb 0x2869e4
    002869e0
    002869e0loc_2869e0:
    002869e0b 0x2869e4
    002869e4
    002869e4loc_2869e4:
    002869e4ldr x2, [sp+136]
    002869e8cbnz x2, 0x2869f0
    002869ecb 0x286a30
    002869f0
    002869f0loc_2869f0:
    002869f0ldr x2, [sp+56]
    002869f4cbz x2, 0x2869fc
    002869f8b 0x286a0c
    002869fc
    002869fcloc_2869fc:
    002869fcldr x0, [sp+136]
    00286a00mov x1, xzr
    00286a04bl math/big.(*Int).SetUint64
    00286a08b 0x286a2c
    00286a0c
    00286a0cloc_286a0c:
    00286a0cldr x0, [sp+136]
    00286a10orr x1, xzr, 1
    00286a14bl math/big.(*Int).SetUint64
    00286a18ldr x2, [sp+136]
    00286a1cldrsb x27, [x2]
    00286a20ldrb w3, [sp+53]
    00286a24strb w3, [x2]
    00286a28b 0x286a2c
    00286a2c
    00286a2cloc_286a2c:
    00286a2cb 0x286a34
    00286a30
    00286a30loc_286a30:
    00286a30b 0x286a34
    00286a34
    00286a34loc_286a34:
    00286a34ldr x0, [sp+120]
    00286a38str x0, [sp+88]
    00286a3cldur x29, [sp-8]
    00286a40ldr x30, [sp], 112
    00286a44ret x30
    00286a48
    00286a48loc_286a48:
    00286a48ldr x1, [sp+128]
    00286a4cldr x2, [sp+136]
    00286a50ldr x3, [sp+144]
    00286a54ldr x4, [sp+152]
    00286a58ldr x0, [sp+120]
    00286a5cbl math/big.(*Int).lehmerGCD
    00286a60str x0, [sp+96]
    00286a64str x0, [sp+88]
    00286a68ldur x29, [sp-8]
    00286a6cldr x30, [sp], 112
    00286a70ret x30
    00286a74
    00286a74loc_286a74:
    00286a74stp x0, x1, [sp+8]
    00286a78stp x2, x3, [sp+24]
    00286a7cstr x4, [sp+40]
    00286a80mov x3, x30
    00286a84bl runtime.morestack_noctxt.abi0
    00286a88ldp x0, x1, [sp+8]
    00286a8cldp x2, x3, [sp+24]
    00286a90ldr x4, [sp+40]
    00286a94b 0x286890
    00286a98udf 0
    00286a9cudf 0
    00286890
    00286aa0
    00286aa0math/big.lehmerSimulate: ; void math/big.lehmerSimulate(math/big.Int * A, math/big.Int * B)
    00286aa0ldr x16, [x28+16]
    00286aa4sub x17, sp, 48
    00286aa8subs xzr, x17, x16
    00286aacb.ls 0x286e20
    00286ab0str x30, [sp-176]!
    00286ab4stur x29, [sp-8]
    00286ab8sub x29, sp, 8
    00286abcstr x0, [sp+184]
    00286ac0str x1, [sp+192]
    00286ac4str xzr, [sp+80]
    00286ac8str xzr, [sp+72]
    00286accstr xzr, [sp+56]
    00286ad0str xzr, [sp+48]
    00286ad4strb wzr, [sp+38]
    00286ad8str xzr, [sp+136]
    00286adcstr xzr, [sp+128]
    00286ae0str xzr, [sp+64]
    00286ae4str xzr, [sp+40]
    00286ae8ldr x2, [sp+192]
    00286aecldrsb x27, [x2]
    00286af0ldr x2, [x2+16]
    00286af4str x2, [sp+112]
    00286af8ldr x2, [sp+184]
    00286afcldrsb x27, [x2]
    00286b00ldr x2, [x2+16]
    00286b04str x2, [sp+104]
    00286b08ldr x3, [sp+184]
    00286b0cldrsb x27, [x3]
    00286b10ldr x1, [x3+16]
    00286b14ldr x3, [x3+8]
    00286b18sub x0, x2, 1
    00286b1csubs xzr, x1, x0
    00286b20b.hi 0x286b28
    00286b24b 0x286e18
    00286b28
    00286b28loc_286b28:
    00286b28ldr x0, [x3+3*x0]
    00286b2cstr x0, [sp+160]
    00286b30bl math/big.nlz
    00286b34str x0, [sp+120]
    00286b38ldr x1, [sp+184]
    00286b3cldrsb x27, [x1]
    00286b40ldr x2, [x1+16]
    00286b44ldr x1, [x1+8]
    00286b48ldr x3, [sp+104]
    00286b4csub x3, x3, 1
    00286b50subs xzr, x2, x3
    00286b54b.hi 0x286b5c
    00286b58b 0x286e0c
    00286b5c
    00286b5cloc_286b5c:
    00286b5cldr x5, [x1+3*x3]
    00286b60lslv x5, x5, x0
    00286b64ldr x6, [sp+184]
    00286b68ldrsb x27, [x6]
    00286b6cldr x1, [x6+16]
    00286b70ldr x6, [x6+8]
    00286b74ldr x7, [sp+104]
    00286b78sub x7, x7, 2
    00286b7csubs xzr, x0, 64
    00286b80csel x5, x5, xzr, lo
    00286b84subs xzr, x1, x7
    00286b88b.hi 0x286b90
    00286b8cb 0x286e04
    00286b90
    00286b90loc_286b90:
    00286b90ldr x6, [x6+3*x7]
    00286b94orr x7, xzr, 64
    00286b98sub x8, x7, x0
    00286b9clsrv x6, x6, x8
    00286ba0subs xzr, x8, 64
    00286ba4csel x6, x6, xzr, lo
    00286ba8orr x5, x5, x6
    00286bacstr x5, [sp+136]
    00286bb0ldr x5, [sp+112]
    00286bb4ldr x6, [sp+104]
    00286bb8subs xzr, x5, x6
    00286bbcb.eq 0x286bc4
    00286bc0b 0x286c40
    00286bc4
    00286bc4loc_286bc4:
    00286bc4b 0x286bc8
    00286bc8
    00286bc8loc_286bc8:
    00286bc8ldr x5, [sp+192]
    00286bccldrsb x27, [x5]
    00286bd0ldr x1, [x5+16]
    00286bd4ldr x5, [x5+8]
    00286bd8ldr x6, [sp+104]
    00286bdcsub x6, x6, 1
    00286be0subs xzr, x1, x6
    00286be4b.hi 0x286bec
    00286be8b 0x286dfc
    00286bec
    00286becloc_286bec:
    00286becldr x5, [x5+3*x6]
    00286bf0lslv x5, x5, x0
    00286bf4ldr x6, [sp+192]
    00286bf8ldrsb x27, [x6]
    00286bfcldr x1, [x6+16]
    00286c00ldr x6, [x6+8]
    00286c04ldr x8, [sp+104]
    00286c08sub x8, x8, 2
    00286c0csubs xzr, x0, 64
    00286c10csel x5, x5, xzr, lo
    00286c14subs xzr, x1, x8
    00286c18b.hi 0x286c20
    00286c1cb 0x286df4
    00286c20
    00286c20loc_286c20:
    00286c20ldr x6, [x6+3*x8]
    00286c24sub x7, x7, x0
    00286c28lsrv x6, x6, x7
    00286c2csubs xzr, x7, 64
    00286c30csel x6, x6, xzr, lo
    00286c34orr x5, x5, x6
    00286c38str x5, [sp+128]
    00286c3cb 0x286ca8
    00286c40
    00286c40loc_286c40:
    00286c40ldr x5, [sp+104]
    00286c44ldr x6, [sp+112]
    00286c48add x6, x6, 1
    00286c4csubs xzr, x5, x6
    00286c50b.eq 0x286c58
    00286c54b 0x286c9c
    00286c58
    00286c58loc_286c58:
    00286c58b 0x286c5c
    00286c5c
    00286c5cloc_286c5c:
    00286c5cldr x5, [sp+192]
    00286c60ldrsb x27, [x5]
    00286c64ldr x1, [x5+16]
    00286c68ldr x5, [x5+8]
    00286c6cldr x6, [sp+104]
    00286c70sub x6, x6, 2
    00286c74subs xzr, x1, x6
    00286c78b.hi 0x286c80
    00286c7cb 0x286dec
    00286c80
    00286c80loc_286c80:
    00286c80ldr x5, [x5+3*x6]
    00286c84sub x6, x7, x0
    00286c88lsrv x5, x5, x6
    00286c8csubs xzr, x6, 64
    00286c90csel x5, x5, xzr, lo
    00286c94str x5, [sp+128]
    00286c98b 0x286ca8
    00286c9c
    00286c9cloc_286c9c:
    00286c9cb 0x286ca0
    00286ca0
    00286ca0loc_286ca0:
    00286ca0str xzr, [sp+128]
    00286ca4b 0x286ca8
    00286ca8
    00286ca8loc_286ca8:
    00286ca8strb wzr, [sp+38]
    00286cacstr xzr, [sp+80]
    00286cb0orr x5, xzr, 1
    00286cb4str x5, [sp+72]
    00286cb8str xzr, [sp+64]
    00286cbcstr xzr, [sp+56]
    00286cc0str xzr, [sp+48]
    00286cc4str x5, [sp+40]
    00286cc8b 0x286ccc
    00286ccc
    00286cccloc_286ccc:
    00286cccldr x5, [sp+40]
    00286cd0ldr x6, [sp+128]
    00286cd4subs xzr, x5, x6
    00286cd8cset x5, ls
    00286cdcstrb w5, [sp+39]
    00286ce0b.ls 0x286ce8
    00286ce4b 0x286d10
    00286ce8
    00286ce8loc_286ce8:
    00286ce8ldr x5, [sp+136]
    00286cecldr x6, [sp+128]
    00286cf0sub x5, x5, x6
    00286cf4ldr x6, [sp+48]
    00286cf8ldr x7, [sp+40]
    00286cfcadd x6, x6, x7
    00286d00subs xzr, x5, x6
    00286d04cset x5, hs
    00286d08strb w5, [sp+39]
    00286d0cb 0x286d14
    00286d10
    00286d10loc_286d10:
    00286d10b 0x286d14
    00286d14
    00286d14loc_286d14:
    00286d14ldrb w5, [sp+39]
    00286d18tbnz w5, 0, 0x286d20
    00286d1cb 0x286dc0
    00286d20
    00286d20loc_286d20:
    00286d20ldr x5, [sp+136]
    00286d24ldr x6, [sp+128]
    00286d28cbnz x6, 0x286d30
    00286d2cb 0x286de8
    00286d30
    00286d30loc_286d30:
    00286d30udiv x5, x5, x6
    00286d34str x5, [sp+96]
    00286d38ldr x6, [sp+136]
    00286d3cldr x7, [sp+128]
    00286d40cbnz x7, 0x286d48
    00286d44b 0x286de0
    00286d48
    00286d48loc_286d48:
    00286d48udiv x27, x6, x7
    00286d4cmsub x6, x27, x7, x6
    00286d50str x6, [sp+88]
    00286d54ldr x7, [sp+128]
    00286d58str x7, [sp+136]
    00286d5cstr x6, [sp+128]
    00286d60ldr x6, [sp+72]
    00286d64ldr x7, [sp+64]
    00286d68madd x5, x7, x5, x6
    00286d6cstr x5, [sp+152]
    00286d70ldr x6, [sp+72]
    00286d74str x6, [sp+80]
    00286d78ldr x6, [sp+64]
    00286d7cstr x6, [sp+72]
    00286d80str x5, [sp+64]
    00286d84ldr x5, [sp+48]
    00286d88ldr x6, [sp+96]
    00286d8cldr x7, [sp+40]
    00286d90madd x5, x7, x6, x5
    00286d94str x5, [sp+144]
    00286d98ldr x6, [sp+48]
    00286d9cstr x6, [sp+56]
    00286da0ldr x6, [sp+40]
    00286da4str x6, [sp+48]
    00286da8str x5, [sp+40]
    00286dacldrb w5, [sp+38]
    00286db0eor x5, x5, 1
    00286db4strb w5, [sp+38]
    00286db8b 0x286dbc
    00286dbc
    00286dbcloc_286dbc:
    00286dbcb 0x286ccc
    00286dc0
    00286dc0loc_286dc0:
    00286dc0ldr x1, [sp+72]
    00286dc4ldr x2, [sp+56]
    00286dc8ldr x3, [sp+48]
    00286dccldrb w4, [sp+38]
    00286dd0ldr x0, [sp+80]
    00286dd4ldur x29, [sp-8]
    00286dd8ldr x30, [sp], 176
    00286ddcret x30
    00286de0
    00286de0loc_286de0:
    00286de0b 0x286de4
    00286de4
    00286de4loc_286de4:
    00286de4bl runtime.panicdivide
    00286de8
    00286de8loc_286de8:
    00286de8b 0x286de4
    00286dec
    00286decloc_286dec:
    00286decmov x0, x6
    00286df0bl runtime.panicIndex
    00286df4
    00286df4loc_286df4:
    00286df4mov x0, x8
    00286df8bl runtime.panicIndex
    00286dfc
    00286dfcloc_286dfc:
    00286dfcmov x0, x6
    00286e00bl runtime.panicIndex
    00286e04
    00286e04loc_286e04:
    00286e04mov x0, x7
    00286e08bl runtime.panicIndex
    00286e0c
    00286e0cloc_286e0c:
    00286e0cmov x0, x3
    00286e10mov x1, x2
    00286e14bl runtime.panicIndex
    00286e18
    00286e18loc_286e18:
    00286e18bl runtime.panicIndex
    00286e1chint
    00286e20
    00286e20loc_286e20:
    00286e20stp x0, x1, [sp+8]
    00286e24mov x3, x30
    00286e28bl runtime.morestack_noctxt.abi0
    00286e2cldp x0, x1, [sp+8]
    00286e30b 0x286aa0
    00286e34udf 0
    00286e38udf 0
    00286e3cudf 0
    00286aa0
    00286e40
    00286e40math/big.lehmerUpdate: ; void math/big.lehmerUpdate(math/big.Int * A, math/big.Int * B, math/big.Int * q, math/big.Int * r, math/big.Int * s, math/big.Int * t, math/big.Word u0, math/big.Word u1, math/big.Word v0, math/big.Word v1, bool even)
    00286e40ldr x16, [x28+16]
    00286e44sub x17, sp, 48
    00286e48subs xzr, x17, x16
    00286e4cb.ls 0x2870fc
    00286e50str x30, [sp-176]!
    00286e54stur x29, [sp-8]
    00286e58sub x29, sp, 8
    00286e5cstr x0, [sp+184]
    00286e60str x1, [sp+192]
    00286e64str x2, [sp+200]
    00286e68str x3, [sp+208]
    00286e6cstr x4, [sp+216]
    00286e70str x5, [sp+224]
    00286e74str x6, [sp+232]
    00286e78str x7, [sp+240]
    00286e7cstr x8, [sp+248]
    00286e80str x9, [sp+256]
    00286e84strb w10, [sp+264]
    00286e88ldr x4, [sp+224]
    00286e8cldrsb x27, [x4]
    00286e90ldr x0, [x4+8]
    00286e94ldr x1, [x4+16]
    00286e98ldr x2, [x4+24]
    00286e9cstr x0, [sp+120]
    00286ea0str x1, [sp+128]
    00286ea4str x2, [sp+136]
    00286ea8ldr x3, [sp+232]
    00286eacbl math/big.nat.setWord
    00286eb0str x0, [sp+144]
    00286eb4str x1, [sp+152]
    00286eb8str x2, [sp+160]
    00286ebcldr x4, [sp+224]
    00286ec0ldrsb x27, [x4]
    00286ec4str x1, [x4+16]
    00286ec8str x2, [x4+24]
    00286eccadrp x27, 0x7c5000
    00286ed0ldr w5, [x27+3056]
    00286ed4cbz w5, 0x286edc
    00286ed8b 0x286ee0
    00286edc
    00286edcloc_286edc:
    00286edcb 0x286ef4
    00286ee0
    00286ee0loc_286ee0:
    00286ee0bl runtime.gcWriteBarrier2
    00286ee4str x0, [x25]
    00286ee8ldr x5, [x4+8]
    00286eecstr x5, [x25+8]
    00286ef0b 0x286ef4
    00286ef4
    00286ef4loc_286ef4:
    00286ef4str x0, [x4+8]
    00286ef8ldr x4, [sp+216]
    00286efcldrsb x27, [x4]
    00286f00ldr x0, [x4+8]
    00286f04ldr x1, [x4+16]
    00286f08ldr x2, [x4+24]
    00286f0cstr x0, [sp+96]
    00286f10str x1, [sp+104]
    00286f14str x2, [sp+112]
    00286f18ldr x3, [sp+248]
    00286f1cbl math/big.nat.setWord
    00286f20str x0, [sp+144]
    00286f24str x1, [sp+152]
    00286f28str x2, [sp+160]
    00286f2cldr x4, [sp+216]
    00286f30ldrsb x27, [x4]
    00286f34str x1, [x4+16]
    00286f38str x2, [x4+24]
    00286f3cadrp x27, 0x7c5000
    00286f40ldr w5, [x27+3056]
    00286f44cbz w5, 0x286f4c
    00286f48b 0x286f50
    00286f4c
    00286f4cloc_286f4c:
    00286f4cb 0x286f64
    00286f50
    00286f50loc_286f50:
    00286f50bl runtime.gcWriteBarrier2
    00286f54str x0, [x25]
    00286f58ldr x3, [x4+8]
    00286f5cstr x3, [x25+8]
    00286f60b 0x286f64
    00286f64
    00286f64loc_286f64:
    00286f64str x0, [x4+8]
    00286f68ldr x3, [sp+224]
    00286f6cldrsb x27, [x3]
    00286f70ldrb w4, [sp+264]
    00286f74eor x4, x4, 1
    00286f78strb w4, [x3]
    00286f7cldr x3, [sp+216]
    00286f80ldrsb x27, [x3]
    00286f84ldrb w4, [sp+264]
    00286f88strb w4, [x3]
    00286f8cldr x1, [sp+184]
    00286f90ldr x2, [sp+224]
    00286f94ldr x0, [sp+224]
    00286f98bl math/big.(*Int).Mul
    00286f9cldr x1, [sp+192]
    00286fa0ldr x2, [sp+216]
    00286fa4ldr x0, [sp+216]
    00286fa8bl math/big.(*Int).Mul
    00286facldr x3, [sp+208]
    00286fb0ldrsb x27, [x3]
    00286fb4ldr x0, [x3+8]
    00286fb8ldr x1, [x3+16]
    00286fbcldr x2, [x3+24]
    00286fc0str x0, [sp+72]
    00286fc4str x1, [sp+80]
    00286fc8str x2, [sp+88]
    00286fccldr x3, [sp+240]
    00286fd0bl math/big.nat.setWord
    00286fd4str x0, [sp+144]
    00286fd8str x1, [sp+152]
    00286fdcstr x2, [sp+160]
    00286fe0ldr x3, [sp+208]
    00286fe4ldrsb x27, [x3]
    00286fe8str x1, [x3+16]
    00286fecstr x2, [x3+24]
    00286ff0adrp x27, 0x7c5000
    00286ff4ldr w4, [x27+3056]
    00286ff8cbz w4, 0x287000
    00286ffcb 0x287004
    00287000
    00287000loc_287000:
    00287000b 0x287018
    00287004
    00287004loc_287004:
    00287004bl runtime.gcWriteBarrier2
    00287008str x0, [x25]
    0028700cldr x4, [x3+8]
    00287010str x4, [x25+8]
    00287014b 0x287018
    00287018
    00287018loc_287018:
    00287018str x0, [x3+8]
    0028701cldr x4, [sp+200]
    00287020ldrsb x27, [x4]
    00287024ldr x0, [x4+8]
    00287028ldr x1, [x4+16]
    0028702cldr x2, [x4+24]
    00287030str x0, [sp+48]
    00287034str x1, [sp+56]
    00287038str x2, [sp+64]
    0028703cldr x3, [sp+256]
    00287040bl math/big.nat.setWord
    00287044str x0, [sp+144]
    00287048str x1, [sp+152]
    0028704cstr x2, [sp+160]
    00287050ldr x4, [sp+200]
    00287054ldrsb x27, [x4]
    00287058str x1, [x4+16]
    0028705cstr x2, [x4+24]
    00287060adrp x27, 0x7c4000
    00287064ldr w5, [x27+3056]
    00287068cbz w5, 0x287070
    0028706cb 0x287074
    00287070
    00287070loc_287070:
    00287070b 0x287088
    00287074
    00287074loc_287074:
    00287074bl runtime.gcWriteBarrier2
    00287078str x0, [x25]
    0028707cldr x3, [x4+8]
    00287080str x3, [x25+8]
    00287084b 0x287088
    00287088
    00287088loc_287088:
    00287088str x0, [x4+8]
    0028708cldr x3, [sp+208]
    00287090ldrsb x27, [x3]
    00287094ldrb w4, [sp+264]
    00287098strb w4, [x3]
    0028709cldr x3, [sp+200]
    002870a0ldrsb x27, [x3]
    002870a4ldrb w4, [sp+264]
    002870a8eor x4, x4, 1
    002870acstrb w4, [x3]
    002870b0ldr x1, [sp+184]
    002870b4ldr x2, [sp+208]
    002870b8ldr x0, [sp+208]
    002870bcbl math/big.(*Int).Mul
    002870c0ldr x1, [sp+192]
    002870c4ldr x2, [sp+200]
    002870c8ldr x0, [sp+200]
    002870ccbl math/big.(*Int).Mul
    002870d0ldr x1, [sp+224]
    002870d4ldr x2, [sp+216]
    002870d8ldr x0, [sp+184]
    002870dcbl math/big.(*Int).Add
    002870e0ldr x1, [sp+208]
    002870e4ldr x2, [sp+200]
    002870e8ldr x0, [sp+192]
    002870ecbl math/big.(*Int).Add
    002870f0ldur x29, [sp-8]
    002870f4ldr x30, [sp], 176
    002870f8ret x30
    002870fc
    002870fcloc_2870fc:
    002870fcstp x0, x1, [sp+8]
    00287100stp x2, x3, [sp+24]
    00287104stp x4, x5, [sp+40]
    00287108stp x6, x7, [sp+56]
    0028710cstp x8, x9, [sp+72]
    00287110strb w10, [sp+88]
    00287114mov x3, x30
    00287118bl runtime.morestack_noctxt.abi0
    0028711cldp x0, x1, [sp+8]
    00287120ldp x2, x3, [sp+24]
    00287124ldp x4, x5, [sp+40]
    00287128ldp x6, x7, [sp+56]
    0028712cldp x8, x9, [sp+72]
    00287130ldrb w10, [sp+88]
    00287134b 0x286e40
    00287138udf 0
    0028713cudf 0
    00286e40
    00287140
    00287140math/big.euclidUpdate: ; void math/big.euclidUpdate(math/big.Int * A, math/big.Int * B, math/big.Int * Ua, math/big.Int * Ub, math/big.Int * q, math/big.Int * r, math/big.Int * s, math/big.Int * t, bool extended)
    00287140ldr x16, [x28+16]
    00287144sub x17, sp, 16
    00287148subs xzr, x17, x16
    0028714cb.ls 0x287360
    00287150str x30, [sp-144]!
    00287154stur x29, [sp-8]
    00287158sub x29, sp, 8
    0028715cstr x0, [sp+152]
    00287160str x1, [sp+160]
    00287164str x2, [sp+168]
    00287168str x3, [sp+176]
    0028716cstr x4, [sp+184]
    00287170str x5, [sp+192]
    00287174str x6, [sp+200]
    00287178str x7, [sp+208]
    0028717cstrb w8, [sp+216]
    00287180str xzr, [sp+120]
    00287184str xzr, [sp+112]
    00287188ldr x1, [sp+152]
    0028718cldr x2, [sp+160]
    00287190ldr x3, [sp+192]
    00287194ldr x0, [sp+184]
    00287198bl math/big.(*Int).QuoRem
    0028719cstr x0, [sp+120]
    002871a0str x1, [sp+112]
    002871a4ldr x4, [sp+120]
    002871a8str x4, [sp+40]
    002871acldr x4, [sp+112]
    002871b0str x4, [sp+128]
    002871b4ldr x4, [sp+40]
    002871b8str x4, [sp+184]
    002871bcldr x4, [sp+128]
    002871c0str x4, [sp+192]
    002871c4ldrsb x27, [x4]
    002871c8ldrb w5, [x4]
    002871ccldr x6, [x4+8]
    002871d0ldr x7, [x4+16]
    002871d4ldr x4, [x4+24]
    002871d8strb w5, [sp+80]
    002871dcstr x6, [sp+88]
    002871e0str x7, [sp+96]
    002871e4str x4, [sp+104]
    002871e8ldr x4, [sp+152]
    002871ecldrsb x27, [x4]
    002871f0ldrb w5, [x4]
    002871f4ldr x6, [x4+8]
    002871f8ldr x7, [x4+16]
    002871fcldr x4, [x4+24]
    00287200strb w5, [sp+48]
    00287204str x6, [sp+56]
    00287208str x7, [sp+64]
    0028720cstr x4, [sp+72]
    00287210ldr x4, [sp+152]
    00287214ldrsb x27, [x4]
    00287218ldr x5, [sp+160]
    0028721cldrsb x27, [x5]
    00287220ldr x6, [x5+8]
    00287224ldr x7, [x5+16]
    00287228ldr x8, [x5+24]
    0028722cldrb w5, [x5]
    00287230strb w5, [x4]
    00287234str x7, [x4+16]
    00287238str x8, [x4+24]
    0028723cadrp x27, 0x7c4000
    00287240ldr w5, [x27+3056]
    00287244cbz w5, 0x28724c
    00287248b 0x287250
    0028724c
    0028724cloc_28724c:
    0028724cb 0x287264
    00287250
    00287250loc_287250:
    00287250bl runtime.gcWriteBarrier2
    00287254str x6, [x25]
    00287258ldr x2, [x4+8]
    0028725cstr x2, [x25+8]
    00287260b 0x287264
    00287264
    00287264loc_287264:
    00287264str x6, [x4+8]
    00287268ldr x2, [sp+160]
    0028726cldrsb x27, [x2]
    00287270ldr x3, [sp+88]
    00287274ldrb w4, [sp+80]
    00287278ldr x5, [sp+96]
    0028727cldr x6, [sp+104]
    00287280strb w4, [x2]
    00287284str x5, [x2+16]
    00287288str x6, [x2+24]
    0028728cadrp x27, 0x7c4000
    00287290ldr w4, [x27+3056]
    00287294cbz w4, 0x28729c
    00287298b 0x2872a0
    0028729c
    0028729cloc_28729c:
    0028729cb 0x2872b4
    002872a0
    002872a0loc_2872a0:
    002872a0bl runtime.gcWriteBarrier2
    002872a4str x3, [x25]
    002872a8ldr x4, [x2+8]
    002872acstr x4, [x25+8]
    002872b0b 0x2872b4
    002872b4
    002872b4loc_2872b4:
    002872b4str x3, [x2+8]
    002872b8ldr x2, [sp+192]
    002872bcldrsb x27, [x2]
    002872c0ldr x3, [sp+56]
    002872c4ldrb w4, [sp+48]
    002872c8ldr x5, [sp+64]
    002872ccldr x6, [sp+72]
    002872d0strb w4, [x2]
    002872d4str x5, [x2+16]
    002872d8str x6, [x2+24]
    002872dcadrp x27, 0x7c4000
    002872e0ldr w4, [x27+3056]
    002872e4cbz w4, 0x2872ec
    002872e8b 0x2872f0
    002872ec
    002872ecloc_2872ec:
    002872ecb 0x287304
    002872f0
    002872f0loc_2872f0:
    002872f0bl runtime.gcWriteBarrier2
    002872f4str x3, [x25]
    002872f8ldr x4, [x2+8]
    002872fcstr x4, [x25+8]
    00287300b 0x287304
    00287304
    00287304loc_287304:
    00287304str x3, [x2+8]
    00287308ldrb w2, [sp+216]
    0028730ctbnz w2, 0, 0x287314
    00287310b 0x287350
    00287314
    00287314loc_287314:
    00287314ldr x1, [sp+176]
    00287318ldr x0, [sp+208]
    0028731cbl math/big.(*Int).Set
    00287320ldr x1, [sp+176]
    00287324ldr x2, [sp+184]
    00287328ldr x0, [sp+200]
    0028732cbl math/big.(*Int).Mul
    00287330ldr x1, [sp+168]
    00287334ldr x2, [sp+200]
    00287338ldr x0, [sp+176]
    0028733cbl math/big.(*Int).Sub
    00287340ldr x1, [sp+208]
    00287344ldr x0, [sp+168]
    00287348bl math/big.(*Int).Set
    0028734cb 0x287354
    00287350
    00287350loc_287350:
    00287350b 0x287354
    00287354
    00287354loc_287354:
    00287354ldur x29, [sp-8]
    00287358ldr x30, [sp], 144
    0028735cret x30
    00287360
    00287360loc_287360:
    00287360stp x0, x1, [sp+8]
    00287364stp x2, x3, [sp+24]
    00287368stp x4, x5, [sp+40]
    0028736cstp x6, x7, [sp+56]
    00287370strb w8, [sp+72]
    00287374mov x3, x30
    00287378bl runtime.morestack_noctxt.abi0
    0028737cldp x0, x1, [sp+8]
    00287380ldp x2, x3, [sp+24]
    00287384ldp x4, x5, [sp+40]
    00287388ldp x6, x7, [sp+56]
    0028738cldrb w8, [sp+72]
    00287390b 0x287140
    00287394udf 0
    00287398udf 0
    0028739cudf 0
    00287140
    002873a0
    002873a0math/big.(*Int).lehmerGCD: ; void math/big.(*Int).lehmerGCD(math/big.Int * z, math/big.Int * x, math/big.Int * y, math/big.Int * a, math/big.Int * b)
    002873a0ldr x16, [x28+16]
    002873a4sub x17, sp, 656
    002873a8subs xzr, x17, x16
    002873acb.ls 0x287c1c
    002873b0sub x20, sp, 784
    002873b4stp x29, x30, [x20-8]
    002873b8add sp, x20, 0
    002873bcsub x29, sp, 8
    002873c0str x0, [sp+792]
    002873c4str x1, [sp+800]
    002873c8str x2, [sp+808]
    002873ccstr x3, [sp+816]
    002873d0str x4, [sp+824]
    002873d4str xzr, [sp+304]
    002873d8str xzr, [sp+368]
    002873dcstr xzr, [sp+360]
    002873e0str xzr, [sp+352]
    002873e4str xzr, [sp+344]
    002873e8strb wzr, [sp+712]
    002873ecstr xzr, [sp+720]
    002873f0add x27, sp, 728
    002873f4stp xzr, xzr, [x27]
    002873f8add x0, sp, 712
    002873fcstr x0, [sp+768]
    00287400ldr x1, [sp+816]
    00287404bl math/big.(*Int).Abs
    00287408str x0, [sp+368]
    0028740cstrb wzr, [sp+680]
    00287410str xzr, [sp+688]
    00287414add x27, sp, 696
    00287418stp xzr, xzr, [x27]
    0028741cadd x0, sp, 680
    00287420str x0, [sp+768]
    00287424ldr x1, [sp+824]
    00287428bl math/big.(*Int).Abs
    0028742cstr x0, [sp+360]
    00287430ldr x2, [sp+800]
    00287434subs xzr, x2, 0
    00287438cset x3, ne
    0028743cstrb w3, [sp+110]
    00287440cbnz x2, 0x287448
    00287444b 0x28744c
    00287448
    00287448loc_287448:
    00287448b 0x287460
    0028744c
    0028744cloc_28744c:
    0028744cldr x6, [sp+808]
    00287450subs xzr, x6, 0
    00287454cset x6, ne
    00287458strb w6, [sp+110]
    0028745cb 0x287460
    00287460
    00287460loc_287460:
    00287460ldrb w6, [sp+110]
    00287464strb w6, [sp+107]
    00287468tbnz w6, 0, 0x287470
    0028746cb 0x2874b0
    00287470
    00287470loc_287470:
    00287470strb wzr, [sp+648]
    00287474str xzr, [sp+656]
    00287478add x27, sp, 664
    0028747cstp xzr, xzr, [x27]
    00287480add x0, sp, 648
    00287484str x0, [sp+768]
    00287488orr x1, xzr, 1
    0028748cbl math/big.(*Int).SetInt64
    00287490str x0, [sp+352]
    00287494strb wzr, [sp+616]
    00287498str xzr, [sp+624]
    0028749cadd x27, sp, 632
    002874a0stp xzr, xzr, [x27]
    002874a4add x2, sp, 616
    002874a8str x2, [sp+344]
    002874acb 0x2874b4
    002874b0
    002874b0loc_2874b0:
    002874b0b 0x2874b4
    002874b4
    002874b4loc_2874b4:
    002874b4strb wzr, [sp+584]
    002874b8str xzr, [sp+592]
    002874bcadd x27, sp, 600
    002874c0stp xzr, xzr, [x27]
    002874c4add x6, sp, 584
    002874c8str x6, [sp+336]
    002874ccstrb wzr, [sp+552]
    002874d0str xzr, [sp+560]
    002874d4add x27, sp, 568
    002874d8stp xzr, xzr, [x27]
    002874dcadd x6, sp, 552
    002874e0str x6, [sp+328]
    002874e4strb wzr, [sp+520]
    002874e8str xzr, [sp+528]
    002874ecadd x27, sp, 536
    002874f0stp xzr, xzr, [x27]
    002874f4add x6, sp, 520
    002874f8str x6, [sp+320]
    002874fcstrb wzr, [sp+488]
    00287500str xzr, [sp+496]
    00287504stp xzr, xzr, [sp+504]
    00287508add x6, sp, 488
    0028750cstr x6, [sp+312]
    00287510ldr x6, [sp+368]
    00287514ldrsb x27, [x6]
    00287518ldr x7, [x6+8]
    0028751cldr x8, [x6+16]
    00287520ldr x6, [x6+24]
    00287524str x7, [sp+464]
    00287528str x8, [sp+472]
    0028752cstr x6, [sp+480]
    00287530ldr x6, [sp+360]
    00287534ldrsb x27, [x6]
    00287538ldr x3, [x6+8]
    0028753cldr x4, [x6+16]
    00287540ldr x5, [x6+24]
    00287544str x3, [sp+440]
    00287548str x4, [sp+448]
    0028754cstr x5, [sp+456]
    00287550ldr x0, [sp+464]
    00287554ldr x1, [sp+472]
    00287558ldr x2, [sp+480]
    0028755cbl math/big.nat.cmp
    00287560str x0, [sp+264]
    00287564tbnz x0, 63, 0x28756c
    00287568b 0x2875a0
    0028756c
    0028756cloc_28756c:
    0028756cldr x9, [sp+368]
    00287570str x9, [sp+432]
    00287574ldr x9, [sp+360]
    00287578str x9, [sp+368]
    0028757cldr x9, [sp+432]
    00287580str x9, [sp+360]
    00287584ldr x9, [sp+344]
    00287588str x9, [sp+424]
    0028758cldr x9, [sp+352]
    00287590str x9, [sp+344]
    00287594ldr x9, [sp+424]
    00287598str x9, [sp+352]
    0028759cb 0x2875a4
    002875a0
    002875a0loc_2875a0:
    002875a0b 0x2875a4
    002875a4
    002875a4loc_2875a4:
    002875a4b 0x2875a8
    002875a8
    002875a8loc_2875a8:
    002875a8ldr x9, [sp+360]
    002875acldrsb x27, [x9]
    002875b0ldr x9, [x9+16]
    002875b4str x9, [sp+264]
    002875b8subs xzr, x9, 1
    002875bcb.gt 0x2875c4
    002875c0b 0x2876e8
    002875c4
    002875c4loc_2875c4:
    002875c4ldr x1, [sp+360]
    002875c8ldr x0, [sp+368]
    002875ccbl math/big.lehmerSimulate
    002875d0str x0, [sp+256]
    002875d4str x1, [sp+248]
    002875d8str x2, [sp+240]
    002875dcstr x3, [sp+232]
    002875e0strb w4, [sp+110]
    002875e4ldr x2, [sp+256]
    002875e8str x2, [sp+296]
    002875ecldr x2, [sp+248]
    002875f0str x2, [sp+288]
    002875f4ldr x2, [sp+240]
    002875f8str x2, [sp+280]
    002875fcldr x2, [sp+232]
    00287600str x2, [sp+272]
    00287604ldrb w2, [sp+110]
    00287608strb w2, [sp+111]
    0028760cldr x2, [sp+296]
    00287610str x2, [sp+168]
    00287614ldr x2, [sp+288]
    00287618str x2, [sp+160]
    0028761cldr x2, [sp+280]
    00287620str x2, [sp+136]
    00287624ldr x2, [sp+272]
    00287628str x2, [sp+128]
    0028762cldrb w10, [sp+111]
    00287630strb w10, [sp+109]
    00287634ldr x2, [sp+136]
    00287638cbnz x2, 0x287640
    0028763cb 0x2876b4
    00287640
    00287640loc_287640:
    00287640ldr x6, [sp+168]
    00287644ldr x7, [sp+160]
    00287648ldr x8, [sp+136]
    0028764cldr x9, [sp+128]
    00287650ldr x1, [sp+360]
    00287654ldr x2, [sp+336]
    00287658ldr x3, [sp+328]
    0028765cldr x4, [sp+320]
    00287660ldr x5, [sp+312]
    00287664ldr x0, [sp+368]
    00287668bl math/big.lehmerUpdate
    0028766cldrb w11, [sp+107]
    00287670tbnz w11, 0, 0x287678
    00287674b 0x2876ac
    00287678
    00287678loc_287678:
    00287678ldr x6, [sp+168]
    0028767cldr x7, [sp+160]
    00287680ldr x8, [sp+136]
    00287684ldr x9, [sp+128]
    00287688ldrb w10, [sp+109]
    0028768cldr x1, [sp+344]
    00287690ldr x2, [sp+336]
    00287694ldr x3, [sp+328]
    00287698ldr x4, [sp+320]
    0028769cldr x5, [sp+312]
    002876a0ldr x0, [sp+352]
    002876a4bl math/big.lehmerUpdate
    002876a8b 0x2876b0
    002876ac
    002876acloc_2876ac:
    002876acb 0x2876b0
    002876b0
    002876b0loc_2876b0:
    002876b0b 0x2876e0
    002876b4
    002876b4loc_2876b4:
    002876b4ldrb w8, [sp+107]
    002876b8ldr x1, [sp+360]
    002876bcldr x2, [sp+352]
    002876c0ldr x3, [sp+344]
    002876c4ldr x4, [sp+336]
    002876c8ldr x5, [sp+328]
    002876ccldr x6, [sp+320]
    002876d0ldr x7, [sp+312]
    002876d4ldr x0, [sp+368]
    002876d8bl math/big.euclidUpdate
    002876dcb 0x2876e0
    002876e0
    002876e0loc_2876e0:
    002876e0b 0x2876e4
    002876e4
    002876e4loc_2876e4:
    002876e4b 0x2875a8
    002876e8
    002876e8loc_2876e8:
    002876e8ldr x9, [sp+360]
    002876ecldrsb x27, [x9]
    002876f0ldr x9, [x9+16]
    002876f4str x9, [sp+264]
    002876f8cbnz x9, 0x287700
    002876fcb 0x2877f0
    00287700
    00287700loc_287700:
    00287700ldr x9, [sp+368]
    00287704ldrsb x27, [x9]
    00287708ldr x9, [x9+16]
    0028770cstr x9, [sp+264]
    00287710subs xzr, x9, 1
    00287714b.gt 0x28771c
    00287718b 0x287748
    0028771c
    0028771cloc_28771c:
    0028771cldrb w8, [sp+107]
    00287720ldr x1, [sp+360]
    00287724ldr x2, [sp+352]
    00287728ldr x3, [sp+344]
    0028772cldr x4, [sp+336]
    00287730ldr x5, [sp+328]
    00287734ldr x6, [sp+320]
    00287738ldr x7, [sp+312]
    0028773cldr x0, [sp+368]
    00287740bl math/big.euclidUpdate
    00287744b 0x28774c
    00287748
    00287748loc_287748:
    00287748b 0x28774c
    0028774c
    0028774cloc_28774c:
    0028774cldr x4, [sp+360]
    00287750ldrsb x27, [x4]
    00287754ldr x4, [x4+16]
    00287758str x4, [sp+264]
    0028775ccbnz x4, 0x287764
    00287760b 0x2877ec
    00287764
    00287764loc_287764:
    00287764ldr x4, [sp+368]
    00287768ldrsb x27, [x4]
    0028776cldr x1, [x4+16]
    00287770ldr x4, [x4+8]
    00287774subs xzr, x1, 0
    00287778b.hi 0x287780
    0028777cb 0x287c10
    00287780
    00287780loc_287780:
    00287780ldr x4, [x4]
    00287784str x4, [sp+200]
    00287788ldr x4, [sp+360]
    0028778cldrsb x27, [x4]
    00287790ldr x1, [x4+16]
    00287794ldr x4, [x4+8]
    00287798subs xzr, x1, 0
    0028779cb.hi 0x2877a4
    002877a0b 0x287c08
    002877a4
    002877a4loc_2877a4:
    002877a4ldr x4, [x4]
    002877a8str x4, [sp+192]
    002877acldrb w4, [sp+107]
    002877b0tbnz w4, 0, 0x2877b8
    002877b4b 0x2877e8
    002877b8
    002877b8loc_2877b8:
    002877b8str xzr, [sp+152]
    002877bcstr xzr, [sp+144]
    002877c0str xzr, [sp+120]
    002877c4str xzr, [sp+112]
    002877c8orr x4, xzr, 1
    002877ccstr x4, [sp+152]
    002877d0str xzr, [sp+144]
    002877d4str xzr, [sp+120]
    002877d8str x4, [sp+112]
    002877dcorr x4, xzr, 1
    002877e0strb w4, [sp+108]
    002877e4b 0x287a28
    002877e8
    002877e8loc_2877e8:
    002877e8b 0x2879b4
    002877ec
    002877ecloc_2877ec:
    002877ecb 0x2879b0
    002877f0
    002877f0loc_2877f0:
    002877f0b 0x2877f4
    002877f4
    002877f4loc_2877f4:
    002877f4ldr x3, [sp+816]
    002877f8ldrsb x27, [x3]
    002877fcldrb w3, [x3]
    00287800strb w3, [sp+106]
    00287804ldr x3, [sp+808]
    00287808cbnz x3, 0x287810
    0028780cb 0x2878a4
    00287810
    00287810loc_287810:
    00287810ldr x3, [sp+824]
    00287814ldr x4, [sp+808]
    00287818subs xzr, x3, x4
    0028781cb.eq 0x287824
    00287820b 0x287834
    00287824
    00287824loc_287824:
    00287824ldr x1, [sp+824]
    00287828ldr x0, [sp+360]
    0028782cbl math/big.(*Int).Set
    00287830b 0x287840
    00287834
    00287834loc_287834:
    00287834ldr x3, [sp+824]
    00287838str x3, [sp+360]
    0028783cb 0x287840
    00287840
    00287840loc_287840:
    00287840ldr x1, [sp+816]
    00287844ldr x2, [sp+352]
    00287848ldr x0, [sp+808]
    0028784cbl math/big.(*Int).Mul
    00287850ldrb w3, [sp+106]
    00287854tbnz w3, 0, 0x28785c
    00287858b 0x28787c
    0028785c
    0028785cloc_28785c:
    0028785cldr x3, [sp+808]
    00287860ldrsb x27, [x3]
    00287864ldr x4, [sp+808]
    00287868ldrsb x27, [x4]
    0028786cldrb w4, [x4]
    00287870eor x4, x4, 1
    00287874strb w4, [x3]
    00287878b 0x287880
    0028787c
    0028787cloc_28787c:
    0028787cb 0x287880
    00287880
    00287880loc_287880:
    00287880ldr x1, [sp+368]
    00287884ldr x2, [sp+808]
    00287888ldr x0, [sp+808]
    0028788cbl math/big.(*Int).Sub
    00287890ldr x1, [sp+808]
    00287894ldr x2, [sp+360]
    00287898ldr x0, [sp+808]
    0028789cbl math/big.(*Int).Div
    002878a0b 0x2878a8
    002878a4
    002878a4loc_2878a4:
    002878a4b 0x2878a8
    002878a8
    002878a8loc_2878a8:
    002878a8ldr x1, [sp+800]
    002878accbnz x1, 0x2878b4
    002878b0b 0x287940
    002878b4
    002878b4loc_2878b4:
    002878b4ldr x1, [sp+800]
    002878b8ldrsb x27, [x1]
    002878bcldr x2, [sp+352]
    002878c0ldrsb x27, [x2]
    002878c4ldr x3, [x2+8]
    002878c8ldr x4, [x2+16]
    002878ccldr x5, [x2+24]
    002878d0ldrb w2, [x2]
    002878d4strb w2, [x1]
    002878d8str x4, [x1+16]
    002878dcstr x5, [x1+24]
    002878e0adrp x27, 0x7c4000
    002878e4ldr w2, [x27+3056]
    002878e8cbz w2, 0x2878f0
    002878ecb 0x2878f4
    002878f0
    002878f0loc_2878f0:
    002878f0b 0x287908
    002878f4
    002878f4loc_2878f4:
    002878f4bl runtime.gcWriteBarrier2
    002878f8str x3, [x25]
    002878fcldr x2, [x1+8]
    00287900str x2, [x25+8]
    00287904b 0x287908
    00287908
    00287908loc_287908:
    00287908str x3, [x1+8]
    0028790cldrb w1, [sp+106]
    00287910tbnz w1, 0, 0x287918
    00287914b 0x287938
    00287918
    00287918loc_287918:
    00287918ldr x1, [sp+800]
    0028791cldrsb x27, [x1]
    00287920ldr x2, [sp+800]
    00287924ldrsb x27, [x2]
    00287928ldrb w2, [x2]
    0028792ceor x2, x2, 1
    00287930strb w2, [x1]
    00287934b 0x28793c
    00287938
    00287938loc_287938:
    00287938b 0x28793c
    0028793c
    0028793cloc_28793c:
    0028793cb 0x287944
    00287940
    00287940loc_287940:
    00287940b 0x287944
    00287944
    00287944loc_287944:
    00287944ldr x1, [sp+792]
    00287948ldrsb x27, [x1]
    0028794cldr x2, [sp+368]
    00287950ldrsb x27, [x2]
    00287954ldr x3, [x2+8]
    00287958ldr x4, [x2+16]
    0028795cldr x5, [x2+24]
    00287960ldrb w2, [x2]
    00287964strb w2, [x1]
    00287968str x4, [x1+16]
    0028796cstr x5, [x1+24]
    00287970adrp x27, 0x7c4000
    00287974ldr w2, [x27+3056]
    00287978cbz w2, 0x287980
    0028797cb 0x287984
    00287980
    00287980loc_287980:
    00287980b 0x287998
    00287984
    00287984loc_287984:
    00287984bl runtime.gcWriteBarrier2
    00287988str x3, [x25]
    0028798cldr x2, [x1+8]
    00287990str x2, [x25+8]
    00287994b 0x287998
    00287998
    00287998loc_287998:
    00287998str x3, [x1+8]
    0028799cldr x0, [sp+792]
    002879a0str x0, [sp+304]
    002879a4ldp x29, x30, [sp-8]
    002879a8add sp, sp, 784
    002879acret x30
    002879b0
    002879b0loc_2879b0:
    002879b0b 0x2877f4
    002879b4
    002879b4loc_2879b4:
    002879b4ldr x3, [sp+192]
    002879b8cbnz x3, 0x2879c0
    002879bcb 0x2879f0
    002879c0
    002879c0loc_2879c0:
    002879c0ldr x3, [sp+200]
    002879c4ldr x4, [sp+192]
    002879c8cbnz x4, 0x2879d0
    002879ccb 0x287a24
    002879d0
    002879d0loc_2879d0:
    002879d0udiv x27, x3, x4
    002879d4msub x3, x27, x4, x3
    002879d8str x3, [sp+208]
    002879dcldr x4, [sp+192]
    002879e0str x4, [sp+200]
    002879e4str x3, [sp+192]
    002879e8b 0x2879ec
    002879ec
    002879ecloc_2879ec:
    002879ecb 0x2879b4
    002879f0
    002879f0loc_2879f0:
    002879f0b 0x2879f4
    002879f4
    002879f4loc_2879f4:
    002879f4ldr x3, [sp+368]
    002879f8ldrsb x27, [x3]
    002879fcldr x1, [x3+16]
    00287a00ldr x3, [x3+8]
    00287a04ldr x4, [sp+200]
    00287a08subs xzr, x1, 0
    00287a0cb.hi 0x287a14
    00287a10b 0x287a1c
    00287a14
    00287a14loc_287a14:
    00287a14str x4, [x3]
    00287a18b 0x2879b0
    00287a1c
    00287a1cloc_287a1c:
    00287a1cmov x0, xzr
    00287a20bl runtime.panicIndex
    00287a24
    00287a24loc_287a24:
    00287a24bl runtime.panicdivide
    00287a28
    00287a28loc_287a28:
    00287a28ldr x4, [sp+192]
    00287a2ccbnz x4, 0x287a34
    00287a30b 0x287ac4
    00287a34
    00287a34loc_287a34:
    00287a34ldr x4, [sp+200]
    00287a38ldr x5, [sp+192]
    00287a3ccbnz x5, 0x287a44
    00287a40b 0x287c04
    00287a44
    00287a44loc_287a44:
    00287a44udiv x4, x4, x5
    00287a48str x4, [sp+184]
    00287a4cldr x5, [sp+200]
    00287a50ldr x6, [sp+192]
    00287a54cbnz x6, 0x287a5c
    00287a58b 0x287bfc
    00287a5c
    00287a5cloc_287a5c:
    00287a5cudiv x27, x5, x6
    00287a60msub x5, x27, x6, x5
    00287a64str x5, [sp+176]
    00287a68ldr x6, [sp+192]
    00287a6cstr x6, [sp+200]
    00287a70str x5, [sp+192]
    00287a74ldr x5, [sp+152]
    00287a78ldr x6, [sp+144]
    00287a7cmadd x4, x6, x4, x5
    00287a80str x4, [sp+224]
    00287a84ldr x5, [sp+144]
    00287a88str x5, [sp+152]
    00287a8cstr x4, [sp+144]
    00287a90ldr x4, [sp+120]
    00287a94ldr x5, [sp+184]
    00287a98ldr x6, [sp+112]
    00287a9cmadd x4, x6, x5, x4
    00287aa0str x4, [sp+216]
    00287aa4ldr x5, [sp+112]
    00287aa8str x5, [sp+120]
    00287aacstr x4, [sp+112]
    00287ab0ldrb w4, [sp+108]
    00287ab4eor x4, x4, 1
    00287ab8strb w4, [sp+108]
    00287abcb 0x287ac0
    00287ac0
    00287ac0loc_287ac0:
    00287ac0b 0x287a28
    00287ac4
    00287ac4loc_287ac4:
    00287ac4ldr x4, [sp+312]
    00287ac8ldrsb x27, [x4]
    00287accldr x0, [x4+8]
    00287ad0ldr x1, [x4+16]
    00287ad4ldr x2, [x4+24]
    00287ad8str x0, [sp+400]
    00287adcstr x1, [sp+408]
    00287ae0str x2, [sp+416]
    00287ae4ldr x3, [sp+152]
    00287ae8bl math/big.nat.setWord
    00287aecstr x0, [sp+744]
    00287af0str x1, [sp+752]
    00287af4str x2, [sp+760]
    00287af8ldr x4, [sp+312]
    00287afcldrsb x27, [x4]
    00287b00str x1, [x4+16]
    00287b04str x2, [x4+24]
    00287b08adrp x27, 0x7c4000
    00287b0cldr w5, [x27+3056]
    00287b10cbz w5, 0x287b18
    00287b14b 0x287b1c
    00287b18
    00287b18loc_287b18:
    00287b18b 0x287b30
    00287b1c
    00287b1cloc_287b1c:
    00287b1cbl runtime.gcWriteBarrier2
    00287b20str x0, [x25]
    00287b24ldr x5, [x4+8]
    00287b28str x5, [x25+8]
    00287b2cb 0x287b30
    00287b30
    00287b30loc_287b30:
    00287b30str x0, [x4+8]
    00287b34ldr x4, [sp+320]
    00287b38ldrsb x27, [x4]
    00287b3cldr x0, [x4+8]
    00287b40ldr x1, [x4+16]
    00287b44ldr x2, [x4+24]
    00287b48str x0, [sp+376]
    00287b4cstr x1, [sp+384]
    00287b50str x2, [sp+392]
    00287b54ldr x3, [sp+120]
    00287b58bl math/big.nat.setWord
    00287b5cstr x0, [sp+744]
    00287b60str x1, [sp+752]
    00287b64str x2, [sp+760]
    00287b68ldr x4, [sp+320]
    00287b6cldrsb x27, [x4]
    00287b70str x1, [x4+16]
    00287b74str x2, [x4+24]
    00287b78adrp x27, 0x7c4000
    00287b7cldr w5, [x27+3056]
    00287b80cbz w5, 0x287b88
    00287b84b 0x287b8c
    00287b88
    00287b88loc_287b88:
    00287b88b 0x287ba0
    00287b8c
    00287b8cloc_287b8c:
    00287b8cbl runtime.gcWriteBarrier2
    00287b90str x0, [x25]
    00287b94ldr x3, [x4+8]
    00287b98str x3, [x25+8]
    00287b9cb 0x287ba0
    00287ba0
    00287ba0loc_287ba0:
    00287ba0str x0, [x4+8]
    00287ba4ldr x3, [sp+312]
    00287ba8ldrsb x27, [x3]
    00287bacldrb w4, [sp+108]
    00287bb0eor x4, x4, 1
    00287bb4strb w4, [x3]
    00287bb8ldr x3, [sp+320]
    00287bbcldrsb x27, [x3]
    00287bc0ldrb w4, [sp+108]
    00287bc4strb w4, [x3]
    00287bc8ldr x1, [sp+352]
    00287bccldr x2, [sp+312]
    00287bd0ldr x0, [sp+312]
    00287bd4bl math/big.(*Int).Mul
    00287bd8ldr x1, [sp+344]
    00287bdcldr x2, [sp+320]
    00287be0ldr x0, [sp+320]
    00287be4bl math/big.(*Int).Mul
    00287be8ldr x1, [sp+312]
    00287becldr x2, [sp+320]
    00287bf0ldr x0, [sp+352]
    00287bf4bl math/big.(*Int).Add
    00287bf8b 0x2879f4
    00287bfc
    00287bfcloc_287bfc:
    00287bfcb 0x287c00
    00287c00
    00287c00loc_287c00:
    00287c00bl runtime.panicdivide
    00287c04
    00287c04loc_287c04:
    00287c04b 0x287c00
    00287c08
    00287c08loc_287c08:
    00287c08mov x0, xzr
    00287c0cbl runtime.panicIndex
    00287c10
    00287c10loc_287c10:
    00287c10mov x0, xzr
    00287c14bl runtime.panicIndex
    00287c18hint
    00287c1c
    00287c1cloc_287c1c:
    00287c1cstp x0, x1, [sp+8]
    00287c20stp x2, x3, [sp+24]
    00287c24str x4, [sp+40]
    00287c28mov x3, x30
    00287c2cbl runtime.morestack_noctxt.abi0
    00287c30ldp x0, x1, [sp+8]
    00287c34ldp x2, x3, [sp+24]
    00287c38ldr x4, [sp+40]
    00287c3cb 0x2873a0
    002873a0
    00287c40
    00287c40math/big.(*Int).ModInverse: ; void math/big.(*Int).ModInverse(math/big.Int * z, math/big.Int * g, math/big.Int * n)
    00287c40ldr x16, [x28+16]
    00287c44sub x17, sp, 80
    00287c48subs xzr, x17, x16
    00287c4cb.ls 0x287d84
    00287c50str x30, [sp-208]!
    00287c54stur x29, [sp-8]
    00287c58sub x29, sp, 8
    00287c5cstr x0, [sp+216]
    00287c60str x1, [sp+224]
    00287c64str x2, [sp+232]
    00287c68str xzr, [sp+64]
    00287c6cldr x5, [sp+232]
    00287c70ldrsb x27, [x5]
    00287c74ldrb w5, [x5]
    00287c78tbnz w5, 0, 0x287c80
    00287c7cb 0x287ca0
    00287c80
    00287c80loc_287c80:
    00287c80strb wzr, [sp+104]
    00287c84str xzr, [sp+112]
    00287c88stp xzr, xzr, [sp+120]
    00287c8cldr x1, [sp+232]
    00287c90add x0, sp, 104
    00287c94bl math/big.(*Int).Neg
    00287c98str x0, [sp+232]
    00287c9cb 0x287ca4
    00287ca0
    00287ca0loc_287ca0:
    00287ca0b 0x287ca4
    00287ca4
    00287ca4loc_287ca4:
    00287ca4ldr x5, [sp+224]
    00287ca8ldrsb x27, [x5]
    00287cacldrb w5, [x5]
    00287cb0tbnz w5, 0, 0x287cb8
    00287cb4b 0x287cdc
    00287cb8
    00287cb8loc_287cb8:
    00287cb8strb wzr, [sp+136]
    00287cbcstr xzr, [sp+144]
    00287cc0stp xzr, xzr, [sp+152]
    00287cc4ldr x2, [sp+232]
    00287cc8ldr x1, [sp+224]
    00287cccadd x0, sp, 136
    00287cd0bl math/big.(*Int).Mod
    00287cd4str x0, [sp+224]
    00287cd8b 0x287ce0
    00287cdc
    00287cdcloc_287cdc:
    00287cdcb 0x287ce0
    00287ce0
    00287ce0loc_287ce0:
    00287ce0strb wzr, [sp+168]
    00287ce4str xzr, [sp+176]
    00287ce8stp xzr, xzr, [sp+184]
    00287cecstrb wzr, [sp+72]
    00287cf0str xzr, [sp+80]
    00287cf4stp xzr, xzr, [sp+88]
    00287cf8ldr x4, [sp+232]
    00287cfcldr x3, [sp+224]
    00287d00add x0, sp, 168
    00287d04add x1, sp, 72
    00287d08mov x2, xzr
    00287d0cbl math/big.(*Int).GCD
    00287d10adrp x27, 0x786000
    00287d14ldr x1, [x27+1960]
    00287d18add x0, sp, 168
    00287d1cbl math/big.(*Int).Cmp
    00287d20str x0, [sp+56]
    00287d24cbnz x0, 0x287d2c
    00287d28b 0x287d40
    00287d2c
    00287d2cloc_287d2c:
    00287d2cstr xzr, [sp+64]
    00287d30mov x0, xzr
    00287d34ldur x29, [sp-8]
    00287d38ldr x30, [sp], 208
    00287d3cret x30
    00287d40
    00287d40loc_287d40:
    00287d40ldrb w3, [sp+72]
    00287d44tbnz w3, 0, 0x287d4c
    00287d48b 0x287d60
    00287d4c
    00287d4cloc_287d4c:
    00287d4cldr x2, [sp+232]
    00287d50ldr x0, [sp+216]
    00287d54add x1, sp, 72
    00287d58bl math/big.(*Int).Add
    00287d5cb 0x287d70
    00287d60
    00287d60loc_287d60:
    00287d60ldr x0, [sp+216]
    00287d64add x1, sp, 72
    00287d68bl math/big.(*Int).Set
    00287d6cb 0x287d70
    00287d70
    00287d70loc_287d70:
    00287d70ldr x0, [sp+216]
    00287d74str x0, [sp+64]
    00287d78ldur x29, [sp-8]
    00287d7cldr x30, [sp], 208
    00287d80ret x30
    00287d84
    00287d84loc_287d84:
    00287d84stp x0, x1, [sp+8]
    00287d88str x2, [sp+24]
    00287d8cmov x3, x30
    00287d90bl runtime.morestack_noctxt.abi0
    00287d94ldp x0, x1, [sp+8]
    00287d98ldr x2, [sp+24]
    00287d9cb 0x287c40
    00287c40
    00287da0
    00287da0math/big.nat.modInverse: ; void math/big.nat.modInverse(math/big.nat z, math/big.nat g, math/big.nat n)
    00287da0ldr x16, [x28+16]
    00287da4sub x17, sp, 64
    00287da8subs xzr, x17, x16
    00287dacb.ls 0x287fd8
    00287db0str x30, [sp-192]!
    00287db4stur x29, [sp-8]
    00287db8sub x29, sp, 8
    00287dbcstr x0, [sp+200]
    00287dc0str x1, [sp+208]
    00287dc4str x2, [sp+216]
    00287dc8str x3, [sp+224]
    00287dccstr x4, [sp+232]
    00287dd0str x5, [sp+240]
    00287dd4str x6, [sp+248]
    00287dd8str x7, [sp+256]
    00287ddcstr x8, [sp+264]
    00287de0stp xzr, xzr, [sp+32]
    00287de4str xzr, [sp+48]
    00287de8strb wzr, [sp+104]
    00287decstp xzr, xzr, [sp+112]
    00287df0str xzr, [sp+128]
    00287df4add x3, sp, 104
    00287df8str x3, [sp+136]
    00287dfcldrsb x27, [x3]
    00287e00strb wzr, [x3]
    00287e04stp xzr, xzr, [x3+16]
    00287e08adrp x27, 0x7c4000
    00287e0cldr w4, [x27+3056]
    00287e10cbz w4, 0x287e18
    00287e14b 0x287e1c
    00287e18
    00287e18loc_287e18:
    00287e18b 0x287e2c
    00287e1c
    00287e1cloc_287e1c:
    00287e1cldr x4, [x3+8]
    00287e20bl runtime.gcWriteBarrier1
    00287e24str x4, [x25]
    00287e28b 0x287e2c
    00287e2c
    00287e2cloc_287e2c:
    00287e2cstr xzr, [x3+8]
    00287e30ldr x3, [sp+136]
    00287e34ldrsb x27, [x3]
    00287e38ldr x4, [sp+200]
    00287e3cldr x5, [sp+208]
    00287e40ldr x6, [sp+216]
    00287e44str x5, [x3+16]
    00287e48str x6, [x3+24]
    00287e4cadrp x27, 0x7c4000
    00287e50ldr w5, [x27+3056]
    00287e54cbz w5, 0x287e5c
    00287e58b 0x287e60
    00287e5c
    00287e5cloc_287e5c:
    00287e5cb 0x287e74
    00287e60
    00287e60loc_287e60:
    00287e60bl runtime.gcWriteBarrier2
    00287e64str x4, [x25]
    00287e68ldr x5, [x3+8]
    00287e6cstr x5, [x25+8]
    00287e70b 0x287e74
    00287e74
    00287e74loc_287e74:
    00287e74str x4, [x3+8]
    00287e78strb wzr, [sp+64]
    00287e7cstp xzr, xzr, [sp+72]
    00287e80str xzr, [sp+88]
    00287e84add x3, sp, 64
    00287e88str x3, [sp+96]
    00287e8cldrsb x27, [x3]
    00287e90strb wzr, [x3]
    00287e94stp xzr, xzr, [x3+16]
    00287e98adrp x27, 0x7c4000
    00287e9cldr w4, [x27+3056]
    00287ea0cbz w4, 0x287ea8
    00287ea4b 0x287eac
    00287ea8
    00287ea8loc_287ea8:
    00287ea8b 0x287ebc
    00287eac
    00287eacloc_287eac:
    00287eacldr x4, [x3+8]
    00287eb0bl runtime.gcWriteBarrier1
    00287eb4str x4, [x25]
    00287eb8b 0x287ebc
    00287ebc
    00287ebcloc_287ebc:
    00287ebcstr xzr, [x3+8]
    00287ec0ldr x3, [sp+96]
    00287ec4ldrsb x27, [x3]
    00287ec8ldr x4, [sp+224]
    00287eccldr x5, [sp+232]
    00287ed0ldr x6, [sp+240]
    00287ed4str x5, [x3+16]
    00287ed8str x6, [x3+24]
    00287edcadrp x27, 0x7c4000
    00287ee0ldr w5, [x27+3056]
    00287ee4cbz w5, 0x287eec
    00287ee8b 0x287ef0
    00287eec
    00287eecloc_287eec:
    00287eecb 0x287f04
    00287ef0
    00287ef0loc_287ef0:
    00287ef0bl runtime.gcWriteBarrier2
    00287ef4str x4, [x25]
    00287ef8ldr x5, [x3+8]
    00287efcstr x5, [x25+8]
    00287f00b 0x287f04
    00287f04
    00287f04loc_287f04:
    00287f04str x4, [x3+8]
    00287f08strb wzr, [sp+152]
    00287f0cstp xzr, xzr, [sp+160]
    00287f10str xzr, [sp+176]
    00287f14add x3, sp, 152
    00287f18str x3, [sp+56]
    00287f1cldrsb x27, [x3]
    00287f20strb wzr, [x3]
    00287f24stp xzr, xzr, [x3+16]
    00287f28adrp x27, 0x7c4000
    00287f2cldr w4, [x27+3056]
    00287f30cbz w4, 0x287f38
    00287f34b 0x287f3c
    00287f38
    00287f38loc_287f38:
    00287f38b 0x287f4c
    00287f3c
    00287f3cloc_287f3c:
    00287f3cldr x4, [x3+8]
    00287f40bl runtime.gcWriteBarrier1
    00287f44str x4, [x25]
    00287f48b 0x287f4c
    00287f4c
    00287f4cloc_287f4c:
    00287f4cstr xzr, [x3+8]
    00287f50ldr x3, [sp+56]
    00287f54ldrsb x27, [x3]
    00287f58ldr x4, [sp+248]
    00287f5cldr x5, [sp+256]
    00287f60ldr x6, [sp+264]
    00287f64str x5, [x3+16]
    00287f68str x6, [x3+24]
    00287f6cadrp x27, 0x7c4000
    00287f70ldr w5, [x27+3056]
    00287f74cbz w5, 0x287f7c
    00287f78b 0x287f80
    00287f7c
    00287f7cloc_287f7c:
    00287f7cb 0x287f94
    00287f80
    00287f80loc_287f80:
    00287f80bl runtime.gcWriteBarrier2
    00287f84str x4, [x25]
    00287f88ldr x5, [x3+8]
    00287f8cstr x5, [x25+8]
    00287f90b 0x287f94
    00287f94
    00287f94loc_287f94:
    00287f94str x4, [x3+8]
    00287f98ldr x0, [sp+136]
    00287f9cldr x1, [sp+96]
    00287fa0ldr x2, [sp+56]
    00287fa4bl math/big.(*Int).ModInverse
    00287fa8str x0, [sp+144]
    00287facldrsb x27, [x0]
    00287fb0ldr x3, [x0+8]
    00287fb4ldr x1, [x0+16]
    00287fb8ldr x2, [x0+24]
    00287fbcstr x3, [sp+32]
    00287fc0str x1, [sp+40]
    00287fc4str x2, [sp+48]
    00287fc8mov x0, x3
    00287fccldur x29, [sp-8]
    00287fd0ldr x30, [sp], 192
    00287fd4ret x30
    00287fd8
    00287fd8loc_287fd8:
    00287fd8stp x0, x1, [sp+8]
    00287fdcstp x2, x3, [sp+24]
    00287fe0stp x4, x5, [sp+40]
    00287fe4stp x6, x7, [sp+56]
    00287fe8str x8, [sp+72]
    00287fecmov x3, x30
    00287ff0bl runtime.morestack_noctxt.abi0
    00287ff4ldp x0, x1, [sp+8]
    00287ff8ldp x2, x3, [sp+24]
    00287ffcldp x4, x5, [sp+40]
    00288000ldp x6, x7, [sp+56]
    00288004ldr x8, [sp+72]
    00288008b 0x287da0
    0028800cudf 0
    00287da0
    00288010
    00288010math/big.(*Int).Lsh: ; void math/big.(*Int).Lsh(math/big.Int * z, math/big.Int * x, uint n)
    00288010ldr x16, [x28+16]
    00288014sub x17, sp, 32
    00288018subs xzr, x17, x16
    0028801cb.ls 0x288104
    00288020str x30, [sp-160]!
    00288024stur x29, [sp-8]
    00288028sub x29, sp, 8
    0028802cstr x0, [sp+168]
    00288030str x1, [sp+176]
    00288034str x2, [sp+184]
    00288038str xzr, [sp+72]
    0028803cldr x7, [sp+168]
    00288040ldrsb x27, [x7]
    00288044ldr x8, [x7+8]
    00288048ldr x9, [x7+16]
    0028804cldr x7, [x7+24]
    00288050str x8, [sp+104]
    00288054str x9, [sp+112]
    00288058str x7, [sp+120]
    0028805cldr x7, [sp+176]
    00288060ldrsb x27, [x7]
    00288064ldr x3, [x7+8]
    00288068ldr x4, [x7+16]
    0028806cldr x5, [x7+24]
    00288070str x3, [sp+80]
    00288074str x4, [sp+88]
    00288078str x5, [sp+96]
    0028807cldr x6, [sp+184]
    00288080ldr x0, [sp+104]
    00288084ldr x1, [sp+112]
    00288088ldr x2, [sp+120]
    0028808cbl math/big.nat.shl
    00288090str x0, [sp+128]
    00288094str x1, [sp+136]
    00288098str x2, [sp+144]
    0028809cldr x7, [sp+168]
    002880a0ldrsb x27, [x7]
    002880a4str x1, [x7+16]
    002880a8str x2, [x7+24]
    002880acadrp x27, 0x7c3000
    002880b0ldr w8, [x27+3056]
    002880b4cbz w8, 0x2880bc
    002880b8b 0x2880c0
    002880bc
    002880bcloc_2880bc:
    002880bcb 0x2880d4
    002880c0
    002880c0loc_2880c0:
    002880c0bl runtime.gcWriteBarrier2
    002880c4str x0, [x25]
    002880c8ldr x1, [x7+8]
    002880ccstr x1, [x25+8]
    002880d0b 0x2880d4
    002880d4
    002880d4loc_2880d4:
    002880d4str x0, [x7+8]
    002880d8ldr x1, [sp+168]
    002880dcldrsb x27, [x1]
    002880e0ldr x2, [sp+176]
    002880e4ldrsb x27, [x2]
    002880e8ldrb w2, [x2]
    002880ecstrb w2, [x1]
    002880f0ldr x0, [sp+168]
    002880f4str x0, [sp+72]
    002880f8ldur x29, [sp-8]
    002880fcldr x30, [sp], 160
    00288100ret x30
    00288104
    00288104loc_288104:
    00288104stp x0, x1, [sp+8]
    00288108str x2, [sp+24]
    0028810cmov x3, x30
    00288110bl runtime.morestack_noctxt.abi0
    00288114ldp x0, x1, [sp+8]
    00288118ldr x2, [sp+24]
    0028811cb 0x288010
    00288010
    00288120
    00288120math/big.(*Int).Rsh: ; void math/big.(*Int).Rsh(math/big.Int * z, math/big.Int * x, uint n)
    00288120ldr x16, [x28+16]
    00288124sub x17, sp, 112
    00288128subs xzr, x17, x16
    0028812cb.ls 0x288344
    00288130str x30, [sp-240]!
    00288134stur x29, [sp-8]
    00288138sub x29, sp, 8
    0028813cstr x0, [sp+248]
    00288140str x1, [sp+256]
    00288144str x2, [sp+264]
    00288148str xzr, [sp+80]
    0028814cldr x9, [sp+256]
    00288150ldrsb x27, [x9]
    00288154ldrb w9, [x9]
    00288158tbnz w9, 0, 0x288160
    0028815cb 0x288288
    00288160
    00288160loc_288160:
    00288160ldr x9, [sp+248]
    00288164ldrsb x27, [x9]
    00288168ldr x10, [x9+8]
    0028816cldr x11, [x9+16]
    00288170ldr x9, [x9+24]
    00288174str x10, [sp+184]
    00288178str x11, [sp+192]
    0028817cstr x9, [sp+200]
    00288180ldr x9, [sp+256]
    00288184ldrsb x27, [x9]
    00288188ldr x3, [x9+8]
    0028818cldr x4, [x9+16]
    00288190ldr x5, [x9+24]
    00288194str x3, [sp+160]
    00288198str x4, [sp+168]
    0028819cstr x5, [sp+176]
    002881a0adrp x27, 0x788000
    002881a4ldr x6, [x27+2096]
    002881a8adrp x27, 0x788000
    002881acldr x7, [x27+2104]
    002881b0adrp x27, 0x788000
    002881b4ldr x8, [x27+2112]
    002881b8ldr x0, [sp+184]
    002881bcldr x1, [sp+192]
    002881c0ldr x2, [sp+200]
    002881c4bl math/big.nat.sub
    002881c8str x0, [sp+88]
    002881ccstr x1, [sp+96]
    002881d0str x2, [sp+104]
    002881d4ldr x6, [sp+264]
    002881d8mov x3, x0
    002881dcmov x4, x1
    002881e0mov x5, x2
    002881e4bl math/big.nat.shr
    002881e8str x0, [sp+88]
    002881ecstr x1, [sp+96]
    002881f0str x2, [sp+104]
    002881f4adrp x27, 0x788000
    002881f8ldr x7, [x27+2104]
    002881fcadrp x27, 0x788000
    00288200ldr x8, [x27+2112]
    00288204adrp x27, 0x788000
    00288208ldr x6, [x27+2096]
    0028820cmov x3, x0
    00288210mov x4, x1
    00288214mov x5, x2
    00288218bl math/big.nat.add
    0028821cstr x0, [sp+208]
    00288220str x1, [sp+216]
    00288224str x2, [sp+224]
    00288228ldr x9, [sp+248]
    0028822cldrsb x27, [x9]
    00288230str x1, [x9+16]
    00288234str x2, [x9+24]
    00288238adrp x27, 0x7c3000
    0028823cldr w10, [x27+3056]
    00288240cbz w10, 0x288248
    00288244b 0x28824c
    00288248
    00288248loc_288248:
    00288248b 0x288260
    0028824c
    0028824cloc_28824c:
    0028824cbl runtime.gcWriteBarrier2
    00288250str x0, [x25]
    00288254ldr x1, [x9+8]
    00288258str x1, [x25+8]
    0028825cb 0x288260
    00288260
    00288260loc_288260:
    00288260str x0, [x9+8]
    00288264ldr x1, [sp+248]
    00288268ldrsb x27, [x1]
    0028826corr x2, xzr, 1
    00288270strb w2, [x1]
    00288274ldr x0, [sp+248]
    00288278str x0, [sp+80]
    0028827cldur x29, [sp-8]
    00288280ldr x30, [sp], 240
    00288284ret x30
    00288288
    00288288loc_288288:
    00288288ldr x7, [sp+248]
    0028828cldrsb x27, [x7]
    00288290ldr x8, [x7+8]
    00288294ldr x9, [x7+16]
    00288298ldr x7, [x7+24]
    0028829cstr x8, [sp+136]
    002882a0str x9, [sp+144]
    002882a4str x7, [sp+152]
    002882a8ldr x7, [sp+256]
    002882acldrsb x27, [x7]
    002882b0ldr x3, [x7+8]
    002882b4ldr x4, [x7+16]
    002882b8ldr x5, [x7+24]
    002882bcstr x3, [sp+112]
    002882c0str x4, [sp+120]
    002882c4str x5, [sp+128]
    002882c8ldr x6, [sp+264]
    002882ccldr x0, [sp+136]
    002882d0ldr x1, [sp+144]
    002882d4ldr x2, [sp+152]
    002882d8bl math/big.nat.shr
    002882dcstr x0, [sp+208]
    002882e0str x1, [sp+216]
    002882e4str x2, [sp+224]
    002882e8ldr x7, [sp+248]
    002882ecldrsb x27, [x7]
    002882f0str x1, [x7+16]
    002882f4str x2, [x7+24]
    002882f8adrp x27, 0x7c3000
    002882fcldr w8, [x27+3056]
    00288300cbz w8, 0x288308
    00288304b 0x28830c
    00288308
    00288308loc_288308:
    00288308b 0x288320
    0028830c
    0028830cloc_28830c:
    0028830cbl runtime.gcWriteBarrier2
    00288310str x0, [x25]
    00288314ldr x1, [x7+8]
    00288318str x1, [x25+8]
    0028831cb 0x288320
    00288320
    00288320loc_288320:
    00288320str x0, [x7+8]
    00288324ldr x1, [sp+248]
    00288328ldrsb x27, [x1]
    0028832cstrb wzr, [x1]
    00288330ldr x0, [sp+248]
    00288334str x0, [sp+80]
    00288338ldur x29, [sp-8]
    0028833cldr x30, [sp], 240
    00288340ret x30
    00288344
    00288344loc_288344:
    00288344stp x0, x1, [sp+8]
    00288348str x2, [sp+24]
    0028834cmov x3, x30
    00288350bl runtime.morestack_noctxt.abi0
    00288354ldp x0, x1, [sp+8]
    00288358ldr x2, [sp+24]
    0028835cb 0x288120
    00288120