File sliver_83cb34f62800fed14e14547c39337aab8e0427fe2c6310a3fb40ce0ac36168c9.elf
Function:
    0028cf50
    0028cf50math/big.basicSqr: ; void math/big.basicSqr(math/big.nat z, math/big.nat x)
    0028cf50ldr x16, [x28+16]
    0028cf54sub x17, sp, 208
    0028cf58subs xzr, x17, x16
    0028cf5cb.ls 0x28d3e0
    0028cf60sub x20, sp, 336
    0028cf64stp x29, x30, [x20-8]
    0028cf68add sp, x20, 0
    0028cf6csub x29, sp, 8
    0028cf70str x0, [sp+344]
    0028cf74str x1, [sp+352]
    0028cf78str x2, [sp+360]
    0028cf7cstr x3, [sp+368]
    0028cf80str x4, [sp+376]
    0028cf84str x5, [sp+384]
    0028cf88str x4, [sp+96]
    0028cf8cubfm x0, x4, 63, 62
    0028cf90bl math/big.getNat
    0028cf94str x0, [sp+240]
    0028cf98ldrsb x27, [x0]
    0028cf9cldr x1, [x0]
    0028cfa0ldr x2, [x0+16]
    0028cfa4ldr x3, [x0+8]
    0028cfa8str x1, [sp+248]
    0028cfacstr x3, [sp+256]
    0028cfb0str x2, [sp+264]
    0028cfb4cbnz x3, 0x28cfbc
    0028cfb8b 0x28cfdc
    0028cfbc
    0028cfbcloc_28cfbc:
    0028cfbcstr x1, [sp+272]
    0028cfc0ldr x2, [sp+256]
    0028cfc4ubfm x2, x2, 61, 60
    0028cfc8str x2, [sp+192]
    0028cfccldr x1, [sp+192]
    0028cfd0ldr x0, [sp+272]
    0028cfd4bl runtime.memclrNoHeapPointers
    0028cfd8b 0x28cfe0
    0028cfdc
    0028cfdcloc_28cfdc:
    0028cfdcb 0x28cfe0
    0028cfe0
    0028cfe0loc_28cfe0:
    0028cfe0ldr x1, [sp+376]
    0028cfe4ldr x3, [sp+368]
    0028cfe8subs xzr, x1, 0
    0028cfecb.hi 0x28cff4
    0028cff0b 0x28d3d4
    0028cff4
    0028cff4loc_28cff4:
    0028cff4ldr x3, [x3]
    0028cff8str x3, [sp+184]
    0028cffcldr x1, [sp+376]
    0028d000ldr x4, [sp+368]
    0028d004subs xzr, x1, 0
    0028d008b.hi 0x28d010
    0028d00cb 0x28d3cc
    0028d010
    0028d010loc_28d010:
    0028d010ldr x4, [x4]
    0028d014str x4, [sp+176]
    0028d018umulh x5, x3, x4
    0028d01cstr x5, [sp+224]
    0028d020madd x3, x3, x4, xzr
    0028d024str x3, [sp+216]
    0028d028str x5, [sp+136]
    0028d02cstr x3, [sp+128]
    0028d030ldr x1, [sp+352]
    0028d034ldr x3, [sp+344]
    0028d038subs xzr, x1, 1
    0028d03cb.hi 0x28d044
    0028d040b 0x28d3c4
    0028d044
    0028d044loc_28d044:
    0028d044str x5, [x3+8]
    0028d048ldr x1, [sp+352]
    0028d04cldr x3, [sp+344]
    0028d050ldr x4, [sp+128]
    0028d054subs xzr, x1, 0
    0028d058b.hi 0x28d060
    0028d05cb 0x28d3bc
    0028d060
    0028d060loc_28d060:
    0028d060str x4, [x3]
    0028d064orr x0, xzr, 1
    0028d068str x0, [sp+104]
    0028d06cb 0x28d070
    0028d070
    0028d070loc_28d070:
    0028d070ldr x3, [sp+96]
    0028d074ldr x4, [sp+104]
    0028d078subs xzr, x3, x4
    0028d07cb.gt 0x28d084
    0028d080b 0x28d204
    0028d084
    0028d084loc_28d084:
    0028d084ldr x3, [sp+104]
    0028d088ldr x1, [sp+376]
    0028d08cldr x4, [sp+368]
    0028d090subs xzr, x3, x1
    0028d094b.lo 0x28d09c
    0028d098b 0x28d3b4
    0028d09c
    0028d09cloc_28d09c:
    0028d09cldr x3, [x4+3*x3]
    0028d0a0str x3, [sp+112]
    0028d0a4madd x4, x3, x3, xzr
    0028d0a8umulh x3, x3, x3
    0028d0acstr x3, [sp+216]
    0028d0b0str x4, [sp+224]
    0028d0b4str x3, [sp+120]
    0028d0b8str x4, [sp+232]
    0028d0bcldr x4, [sp+104]
    0028d0c0ubfm x4, x4, 63, 62
    0028d0c4add x4, x4, 1
    0028d0c8str x4, [sp+168]
    0028d0ccldr x1, [sp+352]
    0028d0d0ldr x5, [sp+344]
    0028d0d4subs xzr, x1, x4
    0028d0d8b.hi 0x28d0e0
    0028d0dcb 0x28d3ac
    0028d0e0
    0028d0e0loc_28d0e0:
    0028d0e0str x3, [x5+3*x4]
    0028d0e4ldr x3, [sp+104]
    0028d0e8ubfm x4, x3, 63, 62
    0028d0ecstr x4, [sp+160]
    0028d0f0ldr x1, [sp+352]
    0028d0f4ldr x5, [sp+344]
    0028d0f8ldr x6, [sp+232]
    0028d0fcsubs xzr, x1, x3, lsl #1
    0028d100b.hi 0x28d108
    0028d104b 0x28d3a4
    0028d108
    0028d108loc_28d108:
    0028d108ubfm x3, x3, 60, 59
    0028d10cstr x6, [x5+x3]
    0028d110ldr x3, [sp+104]
    0028d114ubfm x1, x3, 63, 62
    0028d118str x1, [sp+208]
    0028d11cldr x4, [sp+104]
    0028d120ldr x2, [sp+264]
    0028d124ldr x5, [sp+248]
    0028d128subs xzr, x2, x3, lsl #1
    0028d12cb.hs 0x28d134
    0028d130b 0x28d3a0
    0028d134
    0028d134loc_28d134:
    0028d134subs xzr, x4, x3, lsl #1
    0028d138b.ls 0x28d140
    0028d13cb 0x28d398
    0028d140
    0028d140loc_28d140:
    0028d140sub x3, x2, x4
    0028d144sub x6, x1, x4
    0028d148sub x7, xzr, x3
    0028d14cubfm x4, x4, 61, 60
    0028d150and x4, x4, x7, asr #63
    0028d154add x4, x5, x4
    0028d158str x4, [sp+304]
    0028d15cstr x6, [sp+312]
    0028d160str x3, [sp+320]
    0028d164ldr x1, [sp+104]
    0028d168ldr x2, [sp+384]
    0028d16cldr x3, [sp+368]
    0028d170subs xzr, x1, x2
    0028d174b.ls 0x28d17c
    0028d178b 0x28d394
    0028d17c
    0028d17cloc_28d17c:
    0028d17cb 0x28d180
    0028d180
    0028d180loc_28d180:
    0028d180str x3, [sp+280]
    0028d184str x1, [sp+288]
    0028d188str x2, [sp+296]
    0028d18cldr x0, [sp+112]
    0028d190ldr x4, [sp+304]
    0028d194ldr x5, [sp+312]
    0028d198ldr x6, [sp+320]
    0028d19cstr x4, [sp+8]
    0028d1a0str x5, [sp+16]
    0028d1a4str x6, [sp+24]
    0028d1a8str x3, [sp+32]
    0028d1acstr x1, [sp+40]
    0028d1b0str x2, [sp+48]
    0028d1b4str x0, [sp+56]
    0028d1b8bl math/big.addMulVVW.abi0
    0028d1bcldr x0, [sp+64]
    0028d1c0str x0, [sp+224]
    0028d1c4ldr x1, [sp+104]
    0028d1c8ubfm x2, x1, 63, 62
    0028d1ccstr x2, [sp+152]
    0028d1d0ldr x3, [sp+256]
    0028d1d4ldr x4, [sp+248]
    0028d1d8subs xzr, x3, x1, lsl #1
    0028d1dcb.hi 0x28d1e4
    0028d1e0b 0x28d388
    0028d1e4
    0028d1e4loc_28d1e4:
    0028d1e4ubfm x3, x1, 60, 59
    0028d1e8str x0, [x4+x3]
    0028d1ecb 0x28d1f0
    0028d1f0
    0028d1f0loc_28d1f0:
    0028d1f0ldr x3, [sp+104]
    0028d1f4add x3, x3, 1
    0028d1f8str x3, [sp+104]
    0028d1fcorr x0, xzr, 1
    0028d200b 0x28d070
    0028d204
    0028d204loc_28d204:
    0028d204ldr x3, [sp+96]
    0028d208ubfm x3, x3, 63, 62
    0028d20csub x1, x3, 1
    0028d210str x1, [sp+208]
    0028d214ldr x2, [sp+264]
    0028d218ldr x4, [sp+248]
    0028d21csubs xzr, x2, x1
    0028d220b.hs 0x28d228
    0028d224b 0x28d384
    0028d228
    0028d228loc_28d228:
    0028d228subs xzr, x1, 1
    0028d22cb.hs 0x28d234
    0028d230b 0x28d380
    0028d234
    0028d234loc_28d234:
    0028d234sub x5, x2, 1
    0028d238sub x6, xzr, x5
    0028d23csub x3, x3, 2
    0028d240sbfm x6, x6, 63, 63
    0028d244and x6, x6, 8
    0028d248add x4, x4, x6
    0028d24cstr x4, [sp+280]
    0028d250str x3, [sp+288]
    0028d254str x5, [sp+296]
    0028d258ldr x3, [sp+96]
    0028d25cubfm x3, x3, 63, 62
    0028d260sub x1, x3, 1
    0028d264str x1, [sp+200]
    0028d268ldr x2, [sp+264]
    0028d26cldr x4, [sp+248]
    0028d270subs xzr, x2, x1
    0028d274b.hs 0x28d27c
    0028d278b 0x28d37c
    0028d27c
    0028d27cloc_28d27c:
    0028d27csubs xzr, x1, 1
    0028d280b.hs 0x28d288
    0028d284b 0x28d378
    0028d288
    0028d288loc_28d288:
    0028d288sub x0, x2, 1
    0028d28csub x1, x3, 2
    0028d290sub x2, xzr, x0
    0028d294sbfm x2, x2, 63, 63
    0028d298and x2, x2, 8
    0028d29cadd x2, x4, x2
    0028d2a0str x2, [sp+304]
    0028d2a4str x1, [sp+312]
    0028d2a8str x0, [sp+320]
    0028d2acldr x3, [sp+280]
    0028d2b0ldr x4, [sp+288]
    0028d2b4ldr x5, [sp+296]
    0028d2b8str x3, [sp+8]
    0028d2bcstr x4, [sp+16]
    0028d2c0str x5, [sp+24]
    0028d2c4str x2, [sp+32]
    0028d2c8str x1, [sp+40]
    0028d2ccstr x0, [sp+48]
    0028d2d0orr x0, xzr, 1
    0028d2d4str x0, [sp+56]
    0028d2d8bl math/big.shlVU.abi0
    0028d2dcldr x0, [sp+64]
    0028d2e0str x0, [sp+224]
    0028d2e4ldr x1, [sp+96]
    0028d2e8ubfm x1, x1, 63, 62
    0028d2ecsub x1, x1, 1
    0028d2f0str x1, [sp+144]
    0028d2f4ldr x2, [sp+256]
    0028d2f8ldr x3, [sp+248]
    0028d2fcsubs xzr, x2, x1
    0028d300b.hi 0x28d308
    0028d304b 0x28d36c
    0028d308
    0028d308loc_28d308:
    0028d308str x0, [x3+3*x1]
    0028d30cldr x0, [sp+344]
    0028d310ldr x1, [sp+352]
    0028d314ldr x2, [sp+360]
    0028d318ldr x3, [sp+344]
    0028d31cldr x4, [sp+352]
    0028d320ldr x5, [sp+360]
    0028d324ldr x6, [sp+248]
    0028d328ldr x7, [sp+256]
    0028d32cldr x8, [sp+264]
    0028d330str x0, [sp+8]
    0028d334str x1, [sp+16]
    0028d338str x2, [sp+24]
    0028d33cstr x3, [sp+32]
    0028d340str x4, [sp+40]
    0028d344str x5, [sp+48]
    0028d348str x6, [sp+56]
    0028d34cstr x7, [sp+64]
    0028d350str x8, [sp+72]
    0028d354bl math/big.addVV.abi0
    0028d358ldr x0, [sp+240]
    0028d35cbl math/big.putNat
    0028d360ldp x29, x30, [sp-8]
    0028d364add sp, sp, 336
    0028d368ret x30
    0028d36c
    0028d36cloc_28d36c:
    0028d36cmov x0, x1
    0028d370mov x1, x2
    0028d374bl runtime.panicIndex
    0028d378
    0028d378loc_28d378:
    0028d378bl runtime.panicSliceB
    0028d37c
    0028d37cloc_28d37c:
    0028d37cbl runtime.panicSliceAcap
    0028d380
    0028d380loc_28d380:
    0028d380bl runtime.panicSliceB
    0028d384
    0028d384loc_28d384:
    0028d384bl runtime.panicSliceAcap
    0028d388
    0028d388loc_28d388:
    0028d388mov x0, x2
    0028d38cmov x1, x3
    0028d390bl runtime.panicIndex
    0028d394
    0028d394loc_28d394:
    0028d394bl runtime.panicSliceAcap
    0028d398
    0028d398loc_28d398:
    0028d398mov x0, x4
    0028d39cbl runtime.panicSliceB
    0028d3a0
    0028d3a0loc_28d3a0:
    0028d3a0bl runtime.panicSliceAcap
    0028d3a4
    0028d3a4loc_28d3a4:
    0028d3a4mov x0, x4
    0028d3a8bl runtime.panicIndex
    0028d3ac
    0028d3acloc_28d3ac:
    0028d3acmov x0, x4
    0028d3b0bl runtime.panicIndex
    0028d3b4
    0028d3b4loc_28d3b4:
    0028d3b4mov x0, x3
    0028d3b8bl runtime.panicIndex
    0028d3bc
    0028d3bcloc_28d3bc:
    0028d3bcmov x0, xzr
    0028d3c0bl runtime.panicIndex
    0028d3c4
    0028d3c4loc_28d3c4:
    0028d3c4orr x0, xzr, 1
    0028d3c8bl runtime.panicIndex
    0028d3cc
    0028d3ccloc_28d3cc:
    0028d3ccmov x0, xzr
    0028d3d0bl runtime.panicIndex
    0028d3d4
    0028d3d4loc_28d3d4:
    0028d3d4mov x0, xzr
    0028d3d8bl runtime.panicIndex
    0028d3dchint
    0028d3e0
    0028d3e0loc_28d3e0:
    0028d3e0stp x0, x1, [sp+8]
    0028d3e4stp x2, x3, [sp+24]
    0028d3e8stp x4, x5, [sp+40]
    0028d3ecmov x3, x30
    0028d3f0bl runtime.morestack_noctxt.abi0
    0028d3f4ldp x0, x1, [sp+8]
    0028d3f8ldp x2, x3, [sp+24]
    0028d3fcldp x4, x5, [sp+40]
    0028d400b 0x28cf50
    0028d404udf 0
    0028d408udf 0
    0028d40cudf 0
    0028cf50
    0028d410
    0028d410math/big.karatsubaSqr: ; void math/big.karatsubaSqr(math/big.nat z, math/big.nat x)
    0028d410ldr x16, [x28+16]
    0028d414sub x17, sp, 256
    0028d418subs xzr, x17, x16
    0028d41cb.ls 0x28d9fc
    0028d420sub x20, sp, 384
    0028d424stp x29, x30, [x20-8]
    0028d428add sp, x20, 0
    0028d42csub x29, sp, 8
    0028d430str x0, [sp+392]
    0028d434str x1, [sp+400]
    0028d438str x2, [sp+408]
    0028d43cstr x3, [sp+416]
    0028d440str x4, [sp+424]
    0028d444str x5, [sp+432]
    0028d448str x4, [sp+112]
    0028d44cands xzr, x4, 1
    0028d450cset x6, ne
    0028d454strb w6, [sp+103]
    0028d458tbnz w4, 0, 0x28d460
    0028d45cb 0x28d464
    0028d460
    0028d460loc_28d460:
    0028d460b 0x28d480
    0028d464
    0028d464loc_28d464:
    0028d464ldr x6, [sp+112]
    0028d468adrp x27, 0x733000
    0028d46cldr x7, [x27+2024]
    0028d470subs xzr, x7, x6
    0028d474cset x6, gt
    0028d478strb w6, [sp+103]
    0028d47cb 0x28d480
    0028d480
    0028d480loc_28d480:
    0028d480ldrb w6, [sp+103]
    0028d484strb w6, [sp+102]
    0028d488tbnz w6, 0, 0x28d490
    0028d48cb 0x28d494
    0028d490
    0028d490loc_28d490:
    0028d490b 0x28d4a8
    0028d494
    0028d494loc_28d494:
    0028d494ldr x6, [sp+112]
    0028d498subs xzr, x6, 2
    0028d49ccset x6, lt
    0028d4a0strb w6, [sp+102]
    0028d4a4b 0x28d4a8
    0028d4a8
    0028d4a8loc_28d4a8:
    0028d4a8ldrb w6, [sp+102]
    0028d4actbnz w6, 0, 0x28d4b4
    0028d4b0b 0x28d500
    0028d4b4
    0028d4b4loc_28d4b4:
    0028d4b4ldr x6, [sp+112]
    0028d4b8ubfm x1, x6, 63, 62
    0028d4bcstr x1, [sp+152]
    0028d4c0ldr x2, [sp+408]
    0028d4c4ldr x0, [sp+392]
    0028d4c8subs xzr, x2, x6, lsl #1
    0028d4ccb.hs 0x28d4d4
    0028d4d0b 0x28d9f4
    0028d4d4
    0028d4d4loc_28d4d4:
    0028d4d4b 0x28d4d8
    0028d4d8
    0028d4d8loc_28d4d8:
    0028d4d8str x0, [sp+352]
    0028d4dcstr x1, [sp+360]
    0028d4e0str x2, [sp+368]
    0028d4e4ldr x3, [sp+416]
    0028d4e8ldr x4, [sp+424]
    0028d4ecldr x5, [sp+432]
    0028d4f0bl math/big.basicSqr
    0028d4f4ldp x29, x30, [sp-8]
    0028d4f8add sp, sp, 384
    0028d4fcret x30
    0028d500
    0028d500loc_28d500:
    0028d500ldr x6, [sp+112]
    0028d504sbfm x0, x6, 1, 63
    0028d508str x0, [sp+104]
    0028d50cldr x1, [sp+424]
    0028d510ldr x7, [sp+416]
    0028d514ldr x8, [sp+432]
    0028d518b 0x28d51c
    0028d51c
    0028d51cloc_28d51c:
    0028d51csubs xzr, x1, x6, asr #1
    0028d520b.hs 0x28d528
    0028d524b 0x28d9f0
    0028d528
    0028d528loc_28d528:
    0028d528sub x8, x8, x6, asr #1
    0028d52csub x6, x1, x6, asr #1
    0028d530sub x9, xzr, x8
    0028d534ubfm x10, x0, 61, 60
    0028d538and x9, x10, x9, asr #63
    0028d53cadd x7, x7, x9
    0028d540str x7, [sp+352]
    0028d544str x6, [sp+360]
    0028d548str x8, [sp+368]
    0028d54cldr x1, [sp+104]
    0028d550ldr x2, [sp+432]
    0028d554ldr x6, [sp+416]
    0028d558subs xzr, x1, x2
    0028d55cb.ls 0x28d564
    0028d560b 0x28d9ec
    0028d564
    0028d564loc_28d564:
    0028d564b 0x28d568
    0028d568
    0028d568loc_28d568:
    0028d568str x6, [sp+328]
    0028d56cstr x1, [sp+336]
    0028d570str x2, [sp+344]
    0028d574ldr x6, [sp+352]
    0028d578ldr x7, [sp+360]
    0028d57cldr x8, [sp+368]
    0028d580str x6, [sp+184]
    0028d584str x7, [sp+192]
    0028d588str x8, [sp+200]
    0028d58cldr x3, [sp+328]
    0028d590ldr x4, [sp+336]
    0028d594ldr x5, [sp+344]
    0028d598str x3, [sp+208]
    0028d59cstr x4, [sp+216]
    0028d5a0str x5, [sp+224]
    0028d5a4ldr x0, [sp+392]
    0028d5a8ldr x1, [sp+400]
    0028d5acldr x2, [sp+408]
    0028d5b0bl math/big.karatsubaSqr
    0028d5b4ldr x0, [sp+112]
    0028d5b8ldr x1, [sp+400]
    0028d5bcldr x6, [sp+392]
    0028d5c0ldr x7, [sp+408]
    0028d5c4b 0x28d5c8
    0028d5c8
    0028d5c8loc_28d5c8:
    0028d5c8subs xzr, x1, x0
    0028d5ccb.hs 0x28d5d4
    0028d5d0b 0x28d9e8
    0028d5d4
    0028d5d4loc_28d5d4:
    0028d5d4sub x2, x7, x0
    0028d5d8sub x1, x1, x0
    0028d5dcsub x7, xzr, x2
    0028d5e0ubfm x8, x0, 61, 60
    0028d5e4and x7, x8, x7, asr #63
    0028d5e8add x0, x6, x7
    0028d5ecstr x0, [sp+328]
    0028d5f0str x1, [sp+336]
    0028d5f4str x2, [sp+344]
    0028d5f8ldr x3, [sp+184]
    0028d5fcldr x4, [sp+192]
    0028d600ldr x5, [sp+200]
    0028d604bl math/big.karatsubaSqr
    0028d608ldr x6, [sp+112]
    0028d60cubfm x0, x6, 63, 62
    0028d610str x0, [sp+152]
    0028d614ldr x7, [sp+112]
    0028d618ldr x8, [sp+104]
    0028d61cadd x1, x8, x7, lsl #1
    0028d620str x1, [sp+144]
    0028d624ldr x2, [sp+408]
    0028d628ldr x7, [sp+392]
    0028d62csubs xzr, x2, x1
    0028d630b.hs 0x28d638
    0028d634b 0x28d9e4
    0028d638
    0028d638loc_28d638:
    0028d638subs xzr, x1, x6, lsl #1
    0028d63cb.hs 0x28d644
    0028d640b 0x28d9e0
    0028d644
    0028d644loc_28d644:
    0028d644sub x0, x2, x6, lsl #1
    0028d648sub x1, x1, x6, lsl #1
    0028d64csub x2, xzr, x0
    0028d650ubfm x3, x6, 60, 59
    0028d654and x2, x3, x2, asr #63
    0028d658add x2, x7, x2
    0028d65cstr x2, [sp+160]
    0028d660str x1, [sp+168]
    0028d664str x0, [sp+176]
    0028d668ldr x3, [sp+184]
    0028d66cldr x4, [sp+192]
    0028d670ldr x5, [sp+200]
    0028d674ldr x6, [sp+208]
    0028d678ldr x7, [sp+216]
    0028d67cldr x8, [sp+224]
    0028d680str x2, [sp+8]
    0028d684str x1, [sp+16]
    0028d688str x0, [sp+24]
    0028d68cstr x3, [sp+32]
    0028d690str x4, [sp+40]
    0028d694str x5, [sp+48]
    0028d698str x6, [sp+56]
    0028d69cstr x7, [sp+64]
    0028d6a0str x8, [sp+72]
    0028d6a4bl math/big.subVV.abi0
    0028d6a8ldr x0, [sp+80]
    0028d6acstr x0, [sp+136]
    0028d6b0cbnz x0, 0x28d6b8
    0028d6b4b 0x28d708
    0028d6b8
    0028d6b8loc_28d6b8:
    0028d6b8ldr x0, [sp+160]
    0028d6bcldr x1, [sp+168]
    0028d6c0ldr x2, [sp+176]
    0028d6c4ldr x3, [sp+208]
    0028d6c8ldr x4, [sp+216]
    0028d6ccldr x5, [sp+224]
    0028d6d0ldr x6, [sp+184]
    0028d6d4ldr x7, [sp+192]
    0028d6d8ldr x8, [sp+200]
    0028d6dcstr x0, [sp+8]
    0028d6e0str x1, [sp+16]
    0028d6e4str x2, [sp+24]
    0028d6e8str x3, [sp+32]
    0028d6ecstr x4, [sp+40]
    0028d6f0str x5, [sp+48]
    0028d6f4str x6, [sp+56]
    0028d6f8str x7, [sp+64]
    0028d6fcstr x8, [sp+72]
    0028d700bl math/big.subVV.abi0
    0028d704b 0x28d70c
    0028d708
    0028d708loc_28d708:
    0028d708b 0x28d70c
    0028d70c
    0028d70cloc_28d70c:
    0028d70cldr x6, [sp+112]
    0028d710add x0, x6, x6, lsl #1
    0028d714str x0, [sp+144]
    0028d718ldr x1, [sp+400]
    0028d71cldr x6, [sp+392]
    0028d720ldr x7, [sp+408]
    0028d724b 0x28d728
    0028d728
    0028d728loc_28d728:
    0028d728subs xzr, x1, x0
    0028d72cb.hs 0x28d734
    0028d730b 0x28d9dc
    0028d734
    0028d734loc_28d734:
    0028d734sub x2, x7, x0
    0028d738sub x1, x1, x0
    0028d73csub x7, xzr, x2
    0028d740ubfm x8, x0, 61, 60
    0028d744and x7, x8, x7, asr #63
    0028d748add x0, x6, x7
    0028d74cstr x0, [sp+256]
    0028d750str x1, [sp+264]
    0028d754str x2, [sp+272]
    0028d758ldr x4, [sp+168]
    0028d75cldr x5, [sp+176]
    0028d760ldr x3, [sp+160]
    0028d764bl math/big.karatsubaSqr
    0028d768ldr x6, [sp+112]
    0028d76cubfm x0, x6, 62, 61
    0028d770str x0, [sp+144]
    0028d774ldr x1, [sp+400]
    0028d778ldr x7, [sp+392]
    0028d77cldr x8, [sp+408]
    0028d780b 0x28d784
    0028d784
    0028d784loc_28d784:
    0028d784subs xzr, x1, x6, lsl #2
    0028d788b.hs 0x28d790
    0028d78cb 0x28d9d8
    0028d790
    0028d790loc_28d790:
    0028d790sub x8, x8, x6, lsl #2
    0028d794sub x9, x1, x6, lsl #2
    0028d798sub x10, xzr, x8
    0028d79cubfm x11, x6, 59, 58
    0028d7a0and x10, x11, x10, asr #63
    0028d7a4add x7, x7, x10
    0028d7a8str x7, [sp+232]
    0028d7acstr x9, [sp+240]
    0028d7b0str x8, [sp+248]
    0028d7b4ldr x7, [sp+112]
    0028d7b8ubfm x1, x7, 63, 62
    0028d7bcstr x1, [sp+144]
    0028d7c0ldr x2, [sp+408]
    0028d7c4ldr x8, [sp+392]
    0028d7c8subs xzr, x2, x7, lsl #1
    0028d7ccb.hs 0x28d7d4
    0028d7d0b 0x28d9d4
    0028d7d4
    0028d7d4loc_28d7d4:
    0028d7d4b 0x28d7d8
    0028d7d8
    0028d7d8loc_28d7d8:
    0028d7d8str x8, [sp+328]
    0028d7dcstr x1, [sp+336]
    0028d7e0str x2, [sp+344]
    0028d7e4ldr x7, [sp+232]
    0028d7e8ldr x8, [sp+240]
    0028d7ecldr x9, [sp+248]
    0028d7f0str x7, [sp+304]
    0028d7f4str x8, [sp+312]
    0028d7f8str x9, [sp+320]
    0028d7fcldr x7, [sp+336]
    0028d800ldr x8, [sp+328]
    0028d804ldr x9, [sp+344]
    0028d808str x8, [sp+280]
    0028d80cstr x7, [sp+288]
    0028d810str x9, [sp+296]
    0028d814ldr x8, [sp+312]
    0028d818str x8, [sp+128]
    0028d81csubs xzr, x8, x7
    0028d820b.gt 0x28d828
    0028d824b 0x28d830
    0028d828
    0028d828loc_28d828:
    0028d828str x7, [sp+128]
    0028d82cb 0x28d834
    0028d830
    0028d830loc_28d830:
    0028d830b 0x28d834
    0028d834
    0028d834loc_28d834:
    0028d834ldr x7, [sp+280]
    0028d838ldr x8, [sp+304]
    0028d83csubs xzr, x7, x8
    0028d840b.ne 0x28d848
    0028d844b 0x28d868
    0028d848
    0028d848loc_28d848:
    0028d848ldr x3, [sp+128]
    0028d84cstr x3, [sp+120]
    0028d850ldr x3, [sp+120]
    0028d854ubfm x2, x3, 61, 60
    0028d858ldr x0, [sp+304]
    0028d85cldr x1, [sp+280]
    0028d860bl runtime.memmove
    0028d864b 0x28d86c
    0028d868
    0028d868loc_28d868:
    0028d868b 0x28d86c
    0028d86c
    0028d86cloc_28d86c:
    0028d86cldr x0, [sp+104]
    0028d870ldr x1, [sp+400]
    0028d874ldr x7, [sp+392]
    0028d878ldr x8, [sp+408]
    0028d87cb 0x28d880
    0028d880
    0028d880loc_28d880:
    0028d880subs xzr, x1, x0
    0028d884b.hs 0x28d88c
    0028d888b 0x28d9d0
    0028d88c
    0028d88cloc_28d88c:
    0028d88csub x2, x8, x0
    0028d890sub x1, x1, x0
    0028d894sub x8, xzr, x2
    0028d898ubfm x9, x0, 61, 60
    0028d89cand x8, x9, x8, asr #63
    0028d8a0add x0, x7, x8
    0028d8a4str x0, [sp+328]
    0028d8a8str x1, [sp+336]
    0028d8acstr x2, [sp+344]
    0028d8b0ldr x6, [sp+112]
    0028d8b4ldr x3, [sp+232]
    0028d8b8ldr x4, [sp+240]
    0028d8bcldr x5, [sp+248]
    0028d8c0bl math/big.karatsubaAdd
    0028d8c4ldr x0, [sp+104]
    0028d8c8ldr x1, [sp+400]
    0028d8ccldr x7, [sp+392]
    0028d8d0ldr x8, [sp+408]
    0028d8d4b 0x28d8d8
    0028d8d8
    0028d8d8loc_28d8d8:
    0028d8d8subs xzr, x1, x0
    0028d8dcb.hs 0x28d8e4
    0028d8e0b 0x28d9cc
    0028d8e4
    0028d8e4loc_28d8e4:
    0028d8e4sub x8, x8, x0
    0028d8e8sub x9, x1, x0
    0028d8ecsub x10, xzr, x8
    0028d8f0ubfm x11, x0, 61, 60
    0028d8f4and x10, x11, x10, asr #63
    0028d8f8add x7, x7, x10
    0028d8fcstr x7, [sp+328]
    0028d900str x9, [sp+336]
    0028d904str x8, [sp+344]
    0028d908ldr x0, [sp+112]
    0028d90cldr x1, [sp+240]
    0028d910ldr x7, [sp+232]
    0028d914ldr x8, [sp+248]
    0028d918b 0x28d91c
    0028d91c
    0028d91cloc_28d91c:
    0028d91csubs xzr, x1, x0
    0028d920b.hs 0x28d928
    0028d924b 0x28d9c8
    0028d928
    0028d928loc_28d928:
    0028d928sub x5, x8, x0
    0028d92csub x4, x1, x0
    0028d930sub x8, xzr, x5
    0028d934ubfm x9, x0, 61, 60
    0028d938and x8, x9, x8, asr #63
    0028d93cadd x3, x7, x8
    0028d940str x3, [sp+352]
    0028d944str x4, [sp+360]
    0028d948str x5, [sp+368]
    0028d94cldr x6, [sp+112]
    0028d950ldr x0, [sp+328]
    0028d954ldr x1, [sp+336]
    0028d958ldr x2, [sp+344]
    0028d95cbl math/big.karatsubaAdd
    0028d960ldr x0, [sp+104]
    0028d964ldr x1, [sp+400]
    0028d968ldr x7, [sp+392]
    0028d96cldr x8, [sp+408]
    0028d970b 0x28d974
    0028d974
    0028d974loc_28d974:
    0028d974subs xzr, x1, x0
    0028d978b.hs 0x28d980
    0028d97cb 0x28d9c4
    0028d980
    0028d980loc_28d980:
    0028d980sub x2, x8, x0
    0028d984sub x1, x1, x0
    0028d988sub x8, xzr, x2
    0028d98cubfm x9, x0, 61, 60
    0028d990and x8, x9, x8, asr #63
    0028d994add x0, x7, x8
    0028d998str x0, [sp+352]
    0028d99cstr x1, [sp+360]
    0028d9a0str x2, [sp+368]
    0028d9a4ldr x6, [sp+112]
    0028d9a8ldr x3, [sp+256]
    0028d9acldr x4, [sp+264]
    0028d9b0ldr x5, [sp+272]
    0028d9b4bl math/big.karatsubaSub
    0028d9b8ldp x29, x30, [sp-8]
    0028d9bcadd sp, sp, 384
    0028d9c0ret x30
    0028d9c4
    0028d9c4loc_28d9c4:
    0028d9c4bl runtime.panicSliceB
    0028d9c8
    0028d9c8loc_28d9c8:
    0028d9c8bl runtime.panicSliceB
    0028d9cc
    0028d9ccloc_28d9cc:
    0028d9ccbl runtime.panicSliceB
    0028d9d0
    0028d9d0loc_28d9d0:
    0028d9d0bl runtime.panicSliceB
    0028d9d4
    0028d9d4loc_28d9d4:
    0028d9d4bl runtime.panicSliceAcap
    0028d9d8
    0028d9d8loc_28d9d8:
    0028d9d8bl runtime.panicSliceB
    0028d9dc
    0028d9dcloc_28d9dc:
    0028d9dcbl runtime.panicSliceB
    0028d9e0
    0028d9e0loc_28d9e0:
    0028d9e0bl runtime.panicSliceB
    0028d9e4
    0028d9e4loc_28d9e4:
    0028d9e4bl runtime.panicSliceAcap
    0028d9e8
    0028d9e8loc_28d9e8:
    0028d9e8bl runtime.panicSliceB
    0028d9ec
    0028d9ecloc_28d9ec:
    0028d9ecbl runtime.panicSliceAcap
    0028d9f0
    0028d9f0loc_28d9f0:
    0028d9f0bl runtime.panicSliceB
    0028d9f4
    0028d9f4loc_28d9f4:
    0028d9f4bl runtime.panicSliceAcap
    0028d9f8hint
    0028d9fc
    0028d9fcloc_28d9fc:
    0028d9fcstp x0, x1, [sp+8]
    0028da00stp x2, x3, [sp+24]
    0028da04stp x4, x5, [sp+40]
    0028da08mov x3, x30
    0028da0cbl runtime.morestack_noctxt.abi0
    0028da10ldp x0, x1, [sp+8]
    0028da14ldp x2, x3, [sp+24]
    0028da18ldp x4, x5, [sp+40]
    0028da1cb 0x28d410
    0028d410
    0028da20
    0028da20math/big.nat.sqr: ; void math/big.nat.sqr(math/big.nat z, math/big.nat x)
    0028da20ldr x16, [x28+16]
    0028da24sub x17, sp, 208
    0028da28subs xzr, x17, x16
    0028da2cb.ls 0x28dfd8
    0028da30sub x20, sp, 336
    0028da34stp x29, x30, [x20-8]
    0028da38add sp, x20, 0
    0028da3csub x29, sp, 8
    0028da40str x0, [sp+344]
    0028da44str x1, [sp+352]
    0028da48str x2, [sp+360]
    0028da4cstr x3, [sp+368]
    0028da50str x4, [sp+376]
    0028da54str x5, [sp+384]
    0028da58str xzr, [sp+168]
    0028da5cstp xzr, xzr, [sp+176]
    0028da60ldr x6, [sp+376]
    0028da64str x6, [sp+96]
    0028da68cbz x6, 0x28da70
    0028da6cb 0x28daac
    0028da70
    0028da70loc_28da70:
    0028da70b 0x28da74
    0028da74
    0028da74loc_28da74:
    0028da74ldr x0, [sp+344]
    0028da78ldr x2, [sp+360]
    0028da7cb 0x28da80
    0028da80
    0028da80loc_28da80:
    0028da80b 0x28da84
    0028da84
    0028da84loc_28da84:
    0028da84str x0, [sp+304]
    0028da88str xzr, [sp+312]
    0028da8cstr x2, [sp+320]
    0028da90str x0, [sp+168]
    0028da94str xzr, [sp+176]
    0028da98str x2, [sp+184]
    0028da9cmov x1, xzr
    0028daa0ldp x29, x30, [sp-8]
    0028daa4add sp, sp, 336
    0028daa8ret x30
    0028daac
    0028daacloc_28daac:
    0028daacsubs xzr, x6, 1
    0028dab0b.eq 0x28dab8
    0028dab4b 0x28db80
    0028dab8
    0028dab8loc_28dab8:
    0028dab8b 0x28dabc
    0028dabc
    0028dabcloc_28dabc:
    0028dabcldr x1, [sp+376]
    0028dac0ldr x4, [sp+368]
    0028dac4subs xzr, x1, 0
    0028dac8b.hi 0x28dad0
    0028daccb 0x28dfcc
    0028dad0
    0028dad0loc_28dad0:
    0028dad0ldr x4, [x4]
    0028dad4str x4, [sp+112]
    0028dad8ldr x0, [sp+344]
    0028dadcldr x1, [sp+352]
    0028dae0ldr x2, [sp+360]
    0028dae4orr x3, xzr, 2
    0028dae8bl math/big.nat.make
    0028daecstr x0, [sp+344]
    0028daf0str x1, [sp+352]
    0028daf4str x2, [sp+360]
    0028daf8ldr x4, [sp+112]
    0028dafcldr x5, [sp+112]
    0028db00umulh x6, x5, x4
    0028db04str x6, [sp+160]
    0028db08madd x4, x5, x4, xzr
    0028db0cstr x4, [sp+152]
    0028db10str x6, [sp+128]
    0028db14str x4, [sp+120]
    0028db18ldr x1, [sp+352]
    0028db1cldr x4, [sp+344]
    0028db20subs xzr, x1, 1
    0028db24b.hi 0x28db2c
    0028db28b 0x28dfc4
    0028db2c
    0028db2cloc_28db2c:
    0028db2cstr x6, [x4+8]
    0028db30ldr x1, [sp+352]
    0028db34ldr x3, [sp+344]
    0028db38ldr x4, [sp+120]
    0028db3csubs xzr, x1, 0
    0028db40b.hi 0x28db48
    0028db44b 0x28dfbc
    0028db48
    0028db48loc_28db48:
    0028db48str x4, [x3]
    0028db4cldr x0, [sp+344]
    0028db50ldr x1, [sp+352]
    0028db54ldr x2, [sp+360]
    0028db58bl math/big.nat.norm
    0028db5cstr x0, [sp+304]
    0028db60str x1, [sp+312]
    0028db64str x2, [sp+320]
    0028db68str x0, [sp+168]
    0028db6cstr x1, [sp+176]
    0028db70str x2, [sp+184]
    0028db74ldp x29, x30, [sp-8]
    0028db78add sp, sp, 336
    0028db7cret x30
    0028db80
    0028db80loc_28db80:
    0028db80b 0x28db84
    0028db84
    0028db84loc_28db84:
    0028db84ldr x0, [sp+344]
    0028db88ldr x3, [sp+368]
    0028db8cldr x1, [sp+352]
    0028db90ldr x4, [sp+376]
    0028db94ldr x2, [sp+360]
    0028db98ldr x5, [sp+384]
    0028db9cbl math/big.alias
    0028dba0strb w0, [sp+95]
    0028dba4tbnz w0, 0, 0x28dbac
    0028dba8b 0x28dbb8
    0028dbac
    0028dbacloc_28dbac:
    0028dbacstr xzr, [sp+344]
    0028dbb0stp xzr, xzr, [sp+352]
    0028dbb4b 0x28dbbc
    0028dbb8
    0028dbb8loc_28dbb8:
    0028dbb8b 0x28dbbc
    0028dbbc
    0028dbbcloc_28dbbc:
    0028dbbcadrp x27, 0x733000
    0028dbc0ldr x4, [x27+2016]
    0028dbc4ldr x5, [sp+96]
    0028dbc8subs xzr, x4, x5
    0028dbccb.gt 0x28dbd4
    0028dbd0b 0x28dc48
    0028dbd4
    0028dbd4loc_28dbd4:
    0028dbd4ldr x0, [sp+344]
    0028dbd8ldr x1, [sp+352]
    0028dbdcldr x2, [sp+360]
    0028dbe0ldr x4, [sp+96]
    0028dbe4ubfm x3, x4, 63, 62
    0028dbe8bl math/big.nat.make
    0028dbecstr x0, [sp+344]
    0028dbf0str x1, [sp+352]
    0028dbf4str x2, [sp+360]
    0028dbf8ldr x4, [sp+376]
    0028dbfcldr x7, [sp+376]
    0028dc00ldr x5, [sp+384]
    0028dc04ldr x8, [sp+384]
    0028dc08ldr x3, [sp+368]
    0028dc0cldr x6, [sp+368]
    0028dc10bl math/big.basicMul
    0028dc14ldr x0, [sp+344]
    0028dc18ldr x1, [sp+352]
    0028dc1cldr x2, [sp+360]
    0028dc20bl math/big.nat.norm
    0028dc24str x0, [sp+304]
    0028dc28str x1, [sp+312]
    0028dc2cstr x2, [sp+320]
    0028dc30str x0, [sp+168]
    0028dc34str x1, [sp+176]
    0028dc38str x2, [sp+184]
    0028dc3cldp x29, x30, [sp-8]
    0028dc40add sp, sp, 336
    0028dc44ret x30
    0028dc48
    0028dc48loc_28dc48:
    0028dc48adrp x27, 0x733000
    0028dc4cldr x4, [x27+2024]
    0028dc50ldr x5, [sp+96]
    0028dc54subs xzr, x4, x5
    0028dc58b.gt 0x28dc60
    0028dc5cb 0x28dcc8
    0028dc60
    0028dc60loc_28dc60:
    0028dc60ldr x0, [sp+344]
    0028dc64ldr x1, [sp+352]
    0028dc68ldr x2, [sp+360]
    0028dc6cldr x4, [sp+96]
    0028dc70ubfm x3, x4, 63, 62
    0028dc74bl math/big.nat.make
    0028dc78str x0, [sp+344]
    0028dc7cstr x1, [sp+352]
    0028dc80str x2, [sp+360]
    0028dc84ldr x4, [sp+376]
    0028dc88ldr x5, [sp+384]
    0028dc8cldr x3, [sp+368]
    0028dc90bl math/big.basicSqr
    0028dc94ldr x0, [sp+344]
    0028dc98ldr x1, [sp+352]
    0028dc9cldr x2, [sp+360]
    0028dca0bl math/big.nat.norm
    0028dca4str x0, [sp+304]
    0028dca8str x1, [sp+312]
    0028dcacstr x2, [sp+320]
    0028dcb0str x0, [sp+168]
    0028dcb4str x1, [sp+176]
    0028dcb8str x2, [sp+184]
    0028dcbcldp x29, x30, [sp-8]
    0028dcc0add sp, sp, 336
    0028dcc4ret x30
    0028dcc8
    0028dcc8loc_28dcc8:
    0028dcc8adrp x27, 0x733000
    0028dcccldr x1, [x27+2024]
    0028dcd0ldr x0, [sp+96]
    0028dcd4bl math/big.karatsubaLen
    0028dcd8str x0, [sp+104]
    0028dcdcldr x2, [sp+384]
    0028dce0ldr x3, [sp+368]
    0028dce4subs xzr, x0, x2
    0028dce8b.ls 0x28dcf0
    0028dcecb 0x28dfb4
    0028dcf0
    0028dcf0loc_28dcf0:
    0028dcf0b 0x28dcf4
    0028dcf4
    0028dcf4loc_28dcf4:
    0028dcf4str x3, [sp+240]
    0028dcf8str x0, [sp+248]
    0028dcfcstr x2, [sp+256]
    0028dd00ldr x4, [sp+104]
    0028dd04add x4, x4, x4, lsl #1
    0028dd08ubfm x5, x4, 63, 62
    0028dd0cldr x6, [sp+96]
    0028dd10ubfm x6, x6, 63, 62
    0028dd14subs xzr, x6, x4, lsl #1
    0028dd18b.gt 0x28dd20
    0028dd1cb 0x28dd24
    0028dd20
    0028dd20loc_28dd20:
    0028dd20b 0x28dd2c
    0028dd24
    0028dd24loc_28dd24:
    0028dd24mov x6, x5
    0028dd28b 0x28dd2c
    0028dd2c
    0028dd2cloc_28dd2c:
    0028dd2cstr x6, [sp+144]
    0028dd30ldr x0, [sp+344]
    0028dd34ldr x1, [sp+352]
    0028dd38ldr x2, [sp+360]
    0028dd3cmov x3, x6
    0028dd40bl math/big.nat.make
    0028dd44str x0, [sp+344]
    0028dd48str x1, [sp+352]
    0028dd4cstr x2, [sp+360]
    0028dd50ldr x4, [sp+248]
    0028dd54ldr x5, [sp+256]
    0028dd58ldr x3, [sp+240]
    0028dd5cbl math/big.karatsubaSqr
    0028dd60ldr x4, [sp+96]
    0028dd64ubfm x1, x4, 63, 62
    0028dd68str x1, [sp+144]
    0028dd6cldr x2, [sp+360]
    0028dd70subs xzr, x2, x4, lsl #1
    0028dd74b.hs 0x28dd7c
    0028dd78b 0x28dfb0
    0028dd7c
    0028dd7cloc_28dd7c:
    0028dd7cb 0x28dd80
    0028dd80
    0028dd80loc_28dd80:
    0028dd80str x1, [sp+352]
    0028dd84ldr x3, [sp+104]
    0028dd88ubfm x0, x3, 63, 62
    0028dd8cstr x0, [sp+144]
    0028dd90ldr x5, [sp+344]
    0028dd94ldr x6, [sp+360]
    0028dd98b 0x28dd9c
    0028dd9c
    0028dd9cloc_28dd9c:
    0028dd9csubs xzr, x0, x4, lsl #1
    0028dda0b.ls 0x28dda8
    0028dda4b 0x28dfac
    0028dda8
    0028dda8loc_28dda8:
    0028dda8sub x4, x6, x3, lsl #1
    0028ddacsub x6, xzr, x4
    0028ddb0ubfm x7, x3, 60, 59
    0028ddb4and x6, x7, x6, asr #63
    0028ddb8add x5, x5, x6
    0028ddbcstr x5, [sp+304]
    0028ddc0sub x3, x1, x3, lsl #1
    0028ddc4str x3, [sp+312]
    0028ddc8str x4, [sp+320]
    0028ddcccbnz x3, 0x28ddd4
    0028ddd0b 0x28ddf4
    0028ddd4
    0028ddd4loc_28ddd4:
    0028ddd4str x5, [sp+296]
    0028ddd8ldr x2, [sp+312]
    0028dddcubfm x2, x2, 61, 60
    0028dde0str x2, [sp+136]
    0028dde4ldr x1, [sp+136]
    0028dde8ldr x0, [sp+296]
    0028ddecbl runtime.memclrNoHeapPointers
    0028ddf0b 0x28ddf8
    0028ddf4
    0028ddf4loc_28ddf4:
    0028ddf4b 0x28ddf8
    0028ddf8
    0028ddf8loc_28ddf8:
    0028ddf8ldr x3, [sp+96]
    0028ddfcldr x4, [sp+104]
    0028de00subs xzr, x3, x4
    0028de04b.gt 0x28de0c
    0028de08b 0x28df70
    0028de0c
    0028de0cloc_28de0c:
    0028de0cldr x1, [sp+104]
    0028de10ubfm x0, x1, 63, 62
    0028de14bl math/big.getNat
    0028de18str x0, [sp+264]
    0028de1cldrsb x27, [x0]
    0028de20ldr x1, [x0]
    0028de24ldr x2, [x0+8]
    0028de28ldr x3, [x0+16]
    0028de2cstr x1, [sp+272]
    0028de30str x2, [sp+280]
    0028de34str x3, [sp+288]
    0028de38ldr x0, [sp+240]
    0028de3cldr x1, [sp+248]
    0028de40ldr x2, [sp+256]
    0028de44bl math/big.nat.norm
    0028de48str x0, [sp+216]
    0028de4cstr x1, [sp+224]
    0028de50str x2, [sp+232]
    0028de54ldr x0, [sp+104]
    0028de58ldr x1, [sp+376]
    0028de5cldr x2, [sp+368]
    0028de60ldr x3, [sp+384]
    0028de64b 0x28de68
    0028de68
    0028de68loc_28de68:
    0028de68subs xzr, x1, x0
    0028de6cb.hs 0x28de74
    0028de70b 0x28dfa8
    0028de74
    0028de74loc_28de74:
    0028de74sub x8, x3, x0
    0028de78sub x7, x1, x0
    0028de7csub x9, xzr, x8
    0028de80ubfm x10, x0, 61, 60
    0028de84and x9, x10, x9, asr #63
    0028de88add x6, x2, x9
    0028de8cstr x6, [sp+192]
    0028de90str x7, [sp+200]
    0028de94str x8, [sp+208]
    0028de98ldr x0, [sp+272]
    0028de9cldr x3, [sp+216]
    0028dea0ldr x1, [sp+280]
    0028dea4ldr x4, [sp+224]
    0028dea8ldr x2, [sp+288]
    0028deacldr x5, [sp+232]
    0028deb0bl math/big.nat.mul
    0028deb4str x0, [sp+272]
    0028deb8str x1, [sp+280]
    0028debcstr x2, [sp+288]
    0028dec0ldr x6, [sp+104]
    0028dec4ldr x9, [sp+344]
    0028dec8ldr x10, [sp+352]
    0028deccldr x11, [sp+360]
    0028ded0mov x3, x0
    0028ded4mov x4, x1
    0028ded8mov x5, x2
    0028dedcmov x0, x9
    0028dee0mov x1, x10
    0028dee4mov x2, x11
    0028dee8bl math/big.addAt
    0028deecldr x6, [sp+104]
    0028def0ldr x0, [sp+344]
    0028def4ldr x3, [sp+272]
    0028def8ldr x1, [sp+352]
    0028defcldr x4, [sp+280]
    0028df00ldr x2, [sp+360]
    0028df04ldr x5, [sp+288]
    0028df08bl math/big.addAt
    0028df0cldr x0, [sp+272]
    0028df10ldr x3, [sp+192]
    0028df14ldr x1, [sp+280]
    0028df18ldr x4, [sp+200]
    0028df1cldr x2, [sp+288]
    0028df20ldr x5, [sp+208]
    0028df24bl math/big.nat.sqr
    0028df28str x0, [sp+272]
    0028df2cstr x1, [sp+280]
    0028df30str x2, [sp+288]
    0028df34ldr x9, [sp+344]
    0028df38ldr x10, [sp+352]
    0028df3cldr x11, [sp+360]
    0028df40ldr x12, [sp+104]
    0028df44ubfm x6, x12, 63, 62
    0028df48mov x3, x0
    0028df4cmov x4, x1
    0028df50mov x5, x2
    0028df54mov x0, x9
    0028df58mov x1, x10
    0028df5cmov x2, x11
    0028df60bl math/big.addAt
    0028df64ldr x0, [sp+264]
    0028df68bl math/big.putNat
    0028df6cb 0x28df74
    0028df70
    0028df70loc_28df70:
    0028df70b 0x28df74
    0028df74
    0028df74loc_28df74:
    0028df74ldr x0, [sp+344]
    0028df78ldr x1, [sp+352]
    0028df7cldr x2, [sp+360]
    0028df80bl math/big.nat.norm
    0028df84str x0, [sp+304]
    0028df88str x1, [sp+312]
    0028df8cstr x2, [sp+320]
    0028df90str x0, [sp+168]
    0028df94str x1, [sp+176]
    0028df98str x2, [sp+184]
    0028df9cldp x29, x30, [sp-8]
    0028dfa0add sp, sp, 336
    0028dfa4ret x30
    0028dfa8
    0028dfa8loc_28dfa8:
    0028dfa8bl runtime.panicSliceB
    0028dfac
    0028dfacloc_28dfac:
    0028dfacbl runtime.panicSliceB
    0028dfb0
    0028dfb0loc_28dfb0:
    0028dfb0bl runtime.panicSliceAcap
    0028dfb4
    0028dfb4loc_28dfb4:
    0028dfb4mov x1, x0
    0028dfb8bl runtime.panicSliceAcap
    0028dfbc
    0028dfbcloc_28dfbc:
    0028dfbcmov x0, xzr
    0028dfc0bl runtime.panicIndex
    0028dfc4
    0028dfc4loc_28dfc4:
    0028dfc4orr x0, xzr, 1
    0028dfc8bl runtime.panicIndex
    0028dfcc
    0028dfccloc_28dfcc:
    0028dfccmov x0, xzr
    0028dfd0bl runtime.panicIndex
    0028dfd4hint
    0028dfd8
    0028dfd8loc_28dfd8:
    0028dfd8stp x0, x1, [sp+8]
    0028dfdcstp x2, x3, [sp+24]
    0028dfe0stp x4, x5, [sp+40]
    0028dfe4mov x3, x30
    0028dfe8bl runtime.morestack_noctxt.abi0
    0028dfecldp x0, x1, [sp+8]
    0028dff0ldp x2, x3, [sp+24]
    0028dff4ldp x4, x5, [sp+40]
    0028dff8b 0x28da20
    0028dffcudf 0
    0028da20
    0028e000
    0028e000math/big.getNat: ; void math/big.getNat(int n)
    0028e000ldr x16, [x28+16]
    0028e004subs xzr, sp, x16
    0028e008b.ls 0x28e164
    0028e00cstr x30, [sp-128]!
    0028e010stur x29, [sp-8]
    0028e014sub x29, sp, 8
    0028e018str x0, [sp+136]
    0028e01cstr xzr, [sp+40]
    0028e020str xzr, [sp+48]
    0028e024adrp x0, 0x795000
    0028e028add x0, x0, 1440
    0028e02cbl sync.(*Pool).Get
    0028e030str x0, [sp+56]
    0028e034str x1, [sp+64]
    0028e038cbnz x0, 0x28e040
    0028e03cb 0x28e05c
    0028e040
    0028e040loc_28e040:
    0028e040adrp x4, 0x41c000
    0028e044add x4, x4, 2752
    0028e048subs xzr, x0, x4
    0028e04cb.eq 0x28e054
    0028e050b 0x28e150
    0028e054
    0028e054loc_28e054:
    0028e054str x1, [sp+48]
    0028e058b 0x28e060
    0028e05c
    0028e05cloc_28e05c:
    0028e05cb 0x28e060
    0028e060
    0028e060loc_28e060:
    0028e060ldr x4, [sp+48]
    0028e064cbnz x4, 0x28e06c
    0028e068b 0x28e070
    0028e06c
    0028e06cloc_28e06c:
    0028e06cb 0x28e084
    0028e070
    0028e070loc_28e070:
    0028e070adrp x0, 0x41c000
    0028e074add x0, x0, 3680
    0028e078bl runtime.newobject
    0028e07cstr x0, [sp+48]
    0028e080b 0x28e084
    0028e084
    0028e084loc_28e084:
    0028e084ldr x4, [sp+48]
    0028e088ldrsb x27, [x4]
    0028e08cldr x0, [x4]
    0028e090ldr x1, [x4+8]
    0028e094ldr x2, [x4+16]
    0028e098str x0, [sp+72]
    0028e09cstr x1, [sp+80]
    0028e0a0str x2, [sp+88]
    0028e0a4ldr x3, [sp+136]
    0028e0a8bl math/big.nat.make
    0028e0acstr x0, [sp+96]
    0028e0b0str x1, [sp+104]
    0028e0b4str x2, [sp+112]
    0028e0b8ldr x4, [sp+48]
    0028e0bcldrsb x27, [x4]
    0028e0c0str x1, [x4+8]
    0028e0c4str x2, [x4+16]
    0028e0c8adrp x27, 0x7bd000
    0028e0ccldr w5, [x27+3056]
    0028e0d0cbz w5, 0x28e0d8
    0028e0d4b 0x28e0dc
    0028e0d8
    0028e0d8loc_28e0d8:
    0028e0d8b 0x28e0f0
    0028e0dc
    0028e0dcloc_28e0dc:
    0028e0dcbl runtime.gcWriteBarrier2
    0028e0e0str x0, [x25]
    0028e0e4ldr x2, [x4]
    0028e0e8str x2, [x25+8]
    0028e0ecb 0x28e0f0
    0028e0f0
    0028e0f0loc_28e0f0:
    0028e0f0str x0, [x4]
    0028e0f4ldr x2, [sp+136]
    0028e0f8subs xzr, x2, 0
    0028e0fcb.gt 0x28e104
    0028e100b 0x28e130
    0028e104
    0028e104loc_28e104:
    0028e104ldr x2, [sp+48]
    0028e108ldrsb x27, [x2]
    0028e10cldr x1, [x2+8]
    0028e110ldr x2, [x2]
    0028e114subs xzr, x1, 0
    0028e118b.hi 0x28e120
    0028e11cb 0x28e148
    0028e120
    0028e120loc_28e120:
    0028e120movz x1, 60875
    0028e124movk x1, 0xf0000
    0028e128str x1, [x2]
    0028e12cb 0x28e134
    0028e130
    0028e130loc_28e130:
    0028e130b 0x28e134
    0028e134
    0028e134loc_28e134:
    0028e134ldr x0, [sp+48]
    0028e138str x0, [sp+40]
    0028e13cldur x29, [sp-8]
    0028e140ldr x30, [sp], 128
    0028e144ret x30
    0028e148
    0028e148loc_28e148:
    0028e148mov x0, xzr
    0028e14cbl runtime.panicIndex
    0028e150
    0028e150loc_28e150:
    0028e150mov x1, x4
    0028e154adrp x2, 0x37c000
    0028e158add x2, x2, 3520
    0028e15cbl runtime.panicdottypeE
    0028e160hint
    0028e164
    0028e164loc_28e164:
    0028e164str x0, [sp+8]
    0028e168mov x3, x30
    0028e16cbl runtime.morestack_noctxt.abi0
    0028e170ldr x0, [sp+8]
    0028e174b 0x28e000
    0028e178udf 0
    0028e17cudf 0
    0028e000
    0028e180
    0028e180math/big.putNat: ; void math/big.putNat(math/big.nat * x)
    0028e180ldr x16, [x28+16]
    0028e184subs xzr, sp, x16
    0028e188b.ls 0x28e1c0
    0028e18cstr x30, [sp-48]!
    0028e190stur x29, [sp-8]
    0028e194sub x29, sp, 8
    0028e198str x0, [sp+56]
    0028e19cadrp x1, 0x41c000
    0028e1a0add x1, x1, 2752
    0028e1a4mov x2, x0
    0028e1a8adrp x0, 0x795000
    0028e1acadd x0, x0, 1440
    0028e1b0bl sync.(*Pool).Put
    0028e1b4ldur x29, [sp-8]
    0028e1b8ldr x30, [sp], 48
    0028e1bcret x30
    0028e1c0
    0028e1c0loc_28e1c0:
    0028e1c0str x0, [sp+8]
    0028e1c4mov x3, x30
    0028e1c8bl runtime.morestack_noctxt.abi0
    0028e1ccldr x0, [sp+8]
    0028e1d0b 0x28e180
    0028e1d4udf 0
    0028e1d8udf 0
    0028e1dcudf 0
    0028e180
    0028e1e0
    0028e1e0math/big.nat.bitLen: ; void math/big.nat.bitLen(math/big.nat x)
    0028e1e0ldr x16, [x28+16]
    0028e1e4subs xzr, sp, x16
    0028e1e8b.ls 0x28e2b4
    0028e1ecstr x30, [sp-64]!
    0028e1f0stur x29, [sp-8]
    0028e1f4sub x29, sp, 8
    0028e1f8str x0, [sp+72]
    0028e1fcstr x1, [sp+80]
    0028e200str x2, [sp+88]
    0028e204str xzr, [sp+24]
    0028e208str x1, [sp+48]
    0028e20csub x0, x1, 1
    0028e210str x0, [sp+40]
    0028e214tbz x0, 63, 0x28e21c
    0028e218b 0x28e298
    0028e21c
    0028e21cloc_28e21c:
    0028e21cldr x1, [sp+80]
    0028e220ldr x2, [sp+72]
    0028e224subs xzr, x1, x0
    0028e228b.hi 0x28e230
    0028e22cb 0x28e2ac
    0028e230
    0028e230loc_28e230:
    0028e230ldr x1, [x2+3*x0]
    0028e234str x1, [sp+32]
    0028e238ldr x1, [sp+32]
    0028e23cldr x2, [sp+32]
    0028e240orr x1, x1, x2, lsr #1
    0028e244str x1, [sp+32]
    0028e248orr x1, x1, x1, lsr #2
    0028e24cstr x1, [sp+32]
    0028e250orr x1, x1, x1, lsr #4
    0028e254str x1, [sp+32]
    0028e258orr x1, x1, x1, lsr #8
    0028e25cstr x1, [sp+32]
    0028e260orr x1, x1, x1, lsr #16
    0028e264str x1, [sp+32]
    0028e268orr x1, x1, x1, lsr #32
    0028e26cstr x1, [sp+32]
    0028e270clz x1, x1
    0028e274orr x2, xzr, 64
    0028e278sub x1, x2, x1
    0028e27cstr x1, [sp+48]
    0028e280ldr x2, [sp+40]
    0028e284add x0, x1, x2, lsl #6
    0028e288str x0, [sp+24]
    0028e28cldur x29, [sp-8]
    0028e290ldr x30, [sp], 64
    0028e294ret x30
    0028e298
    0028e298loc_28e298:
    0028e298str xzr, [sp+24]
    0028e29cmov x0, xzr
    0028e2a0ldur x29, [sp-8]
    0028e2a4ldr x30, [sp], 64
    0028e2a8ret x30
    0028e2ac
    0028e2acloc_28e2ac:
    0028e2acbl runtime.panicIndex
    0028e2b0hint
    0028e2b4
    0028e2b4loc_28e2b4:
    0028e2b4stp x0, x1, [sp+8]
    0028e2b8str x2, [sp+24]
    0028e2bcmov x3, x30
    0028e2c0bl runtime.morestack_noctxt.abi0
    0028e2c4ldp x0, x1, [sp+8]
    0028e2c8ldr x2, [sp+24]
    0028e2ccb 0x28e1e0
    0028e1e0
    0028e2d0
    0028e2d0math/big.nat.trailingZeroBits: ; void math/big.nat.trailingZeroBits(math/big.nat x)
    0028e2d0ldr x16, [x28+16]
    0028e2d4subs xzr, sp, x16
    0028e2d8b.ls 0x28e3a8
    0028e2dcstr x30, [sp-64]!
    0028e2e0stur x29, [sp-8]
    0028e2e4sub x29, sp, 8
    0028e2e8str x0, [sp+72]
    0028e2ecstr x1, [sp+80]
    0028e2f0str x2, [sp+88]
    0028e2f4str xzr, [sp+24]
    0028e2f8str x1, [sp+48]
    0028e2fccbz x1, 0x28e304
    0028e300b 0x28e318
    0028e304
    0028e304loc_28e304:
    0028e304str xzr, [sp+24]
    0028e308mov x0, xzr
    0028e30cldur x29, [sp-8]
    0028e310ldr x30, [sp], 64
    0028e314ret x30
    0028e318
    0028e318loc_28e318:
    0028e318str xzr, [sp+32]
    0028e31cb 0x28e320
    0028e320
    0028e320loc_28e320:
    0028e320ldr x0, [sp+32]
    0028e324ldr x1, [sp+80]
    0028e328ldr x2, [sp+72]
    0028e32csubs xzr, x0, x1
    0028e330b.lo 0x28e338
    0028e334b 0x28e3a0
    0028e338
    0028e338loc_28e338:
    0028e338ldr x2, [x2+3*x0]
    0028e33ccbz x2, 0x28e344
    0028e340b 0x28e358
    0028e344
    0028e344loc_28e344:
    0028e344ldr x2, [sp+32]
    0028e348add x2, x2, 1
    0028e34cstr x2, [sp+32]
    0028e350b 0x28e354
    0028e354
    0028e354loc_28e354:
    0028e354b 0x28e320
    0028e358
    0028e358loc_28e358:
    0028e358ldr x0, [sp+32]
    0028e35cldr x1, [sp+80]
    0028e360ldr x2, [sp+72]
    0028e364subs xzr, x1, x0
    0028e368b.hi 0x28e370
    0028e36cb 0x28e39c
    0028e370
    0028e370loc_28e370:
    0028e370ldr x1, [x2+3*x0]
    0028e374str x1, [sp+40]
    0028e378ldr x0, [sp+40]
    0028e37cbl math/bits.TrailingZeros
    0028e380str x0, [sp+48]
    0028e384ldr x1, [sp+32]
    0028e388add x0, x0, x1, lsl #6
    0028e38cstr x0, [sp+24]
    0028e390ldur x29, [sp-8]
    0028e394ldr x30, [sp], 64
    0028e398ret x30
    0028e39c
    0028e39cloc_28e39c:
    0028e39cbl runtime.panicIndexU
    0028e3a0
    0028e3a0loc_28e3a0:
    0028e3a0bl runtime.panicIndexU
    0028e3a4hint
    0028e3a8
    0028e3a8loc_28e3a8:
    0028e3a8stp x0, x1, [sp+8]
    0028e3acstr x2, [sp+24]
    0028e3b0mov x3, x30
    0028e3b4bl runtime.morestack_noctxt.abi0
    0028e3b8ldp x0, x1, [sp+8]
    0028e3bcldr x2, [sp+24]
    0028e3c0b 0x28e2d0
    0028e3c4udf 0
    0028e3c8udf 0
    0028e3ccudf 0
    0028e2d0
    0028e3d0
    0028e3d0math/big.nat.isPow2: ; void math/big.nat.isPow2(math/big.nat x)
    0028e3d0ldr x16, [x28+16]
    0028e3d4subs xzr, sp, x16
    0028e3d8b.ls 0x28e53c
    0028e3dcstr x30, [sp-80]!
    0028e3e0stur x29, [sp-8]
    0028e3e4sub x29, sp, 8
    0028e3e8str x0, [sp+88]
    0028e3ecstr x1, [sp+96]
    0028e3f0str x2, [sp+104]
    0028e3f4str xzr, [sp+40]
    0028e3f8strb wzr, [sp+38]
    0028e3fcstr xzr, [sp+48]
    0028e400b 0x28e404
    0028e404
    0028e404loc_28e404:
    0028e404ldr x0, [sp+48]
    0028e408ldr x1, [sp+96]
    0028e40cldr x2, [sp+88]
    0028e410subs xzr, x1, x0
    0028e414b.hi 0x28e41c
    0028e418b 0x28e534
    0028e41c
    0028e41cloc_28e41c:
    0028e41cldr x2, [x2+3*x0]
    0028e420cbz x2, 0x28e428
    0028e424b 0x28e43c
    0028e428
    0028e428loc_28e428:
    0028e428ldr x2, [sp+48]
    0028e42cadd x2, x2, 1
    0028e430str x2, [sp+48]
    0028e434b 0x28e438
    0028e438
    0028e438loc_28e438:
    0028e438b 0x28e404
    0028e43c
    0028e43cloc_28e43c:
    0028e43cldr x2, [sp+96]
    0028e440str x2, [sp+64]
    0028e444ldr x3, [sp+48]
    0028e448sub x2, x2, 1
    0028e44csubs xzr, x3, x2
    0028e450cset x2, eq
    0028e454strb w2, [sp+39]
    0028e458b.eq 0x28e460
    0028e45cb 0x28e4ac
    0028e460
    0028e460loc_28e460:
    0028e460ldr x0, [sp+48]
    0028e464ldr x1, [sp+96]
    0028e468ldr x2, [sp+88]
    0028e46csubs xzr, x0, x1
    0028e470b.lo 0x28e478
    0028e474b 0x28e530
    0028e478
    0028e478loc_28e478:
    0028e478ldr x2, [x2+3*x0]
    0028e47cldr x0, [sp+48]
    0028e480ldr x1, [sp+96]
    0028e484ldr x3, [sp+88]
    0028e488subs xzr, x1, x0
    0028e48cb.hi 0x28e494
    0028e490b 0x28e52c
    0028e494
    0028e494loc_28e494:
    0028e494ldr x3, [x3+3*x0]
    0028e498sub x3, x3, 1
    0028e49cands xzr, x2, x3
    0028e4a0cset x2, eq
    0028e4a4strb w2, [sp+39]
    0028e4a8b 0x28e4b0
    0028e4ac
    0028e4acloc_28e4ac:
    0028e4acb 0x28e4b0
    0028e4b0
    0028e4b0loc_28e4b0:
    0028e4b0ldrb w2, [sp+39]
    0028e4b4tbnz w2, 0, 0x28e4bc
    0028e4b8b 0x28e50c
    0028e4bc
    0028e4bcloc_28e4bc:
    0028e4bcldr x0, [sp+48]
    0028e4c0ldr x1, [sp+96]
    0028e4c4ldr x2, [sp+88]
    0028e4c8subs xzr, x1, x0
    0028e4ccb.hi 0x28e4d4
    0028e4d0b 0x28e528
    0028e4d4
    0028e4d4loc_28e4d4:
    0028e4d4ldr x1, [x2+3*x0]
    0028e4d8str x1, [sp+56]
    0028e4dcldr x0, [sp+56]
    0028e4e0bl math/bits.TrailingZeros
    0028e4e4str x0, [sp+64]
    0028e4e8ldr x1, [sp+48]
    0028e4ecadd x1, x0, x1, lsl #6
    0028e4f0str x1, [sp+40]
    0028e4f4orr x1, xzr, 1
    0028e4f8strb w1, [sp+38]
    0028e4fcldr x0, [sp+40]
    0028e500ldur x29, [sp-8]
    0028e504ldr x30, [sp], 80
    0028e508ret x30
    0028e50c
    0028e50cloc_28e50c:
    0028e50cstr xzr, [sp+40]
    0028e510strb wzr, [sp+38]
    0028e514ldr x0, [sp+40]
    0028e518mov x1, xzr
    0028e51cldur x29, [sp-8]
    0028e520ldr x30, [sp], 80
    0028e524ret x30
    0028e528
    0028e528loc_28e528:
    0028e528bl runtime.panicIndexU
    0028e52c
    0028e52cloc_28e52c:
    0028e52cbl runtime.panicIndexU
    0028e530
    0028e530loc_28e530:
    0028e530bl runtime.panicIndexU
    0028e534
    0028e534loc_28e534:
    0028e534bl runtime.panicIndexU
    0028e538hint
    0028e53c
    0028e53cloc_28e53c:
    0028e53cstp x0, x1, [sp+8]
    0028e540str x2, [sp+24]
    0028e544mov x3, x30
    0028e548bl runtime.morestack_noctxt.abi0
    0028e54cldp x0, x1, [sp+8]
    0028e550ldr x2, [sp+24]
    0028e554b 0x28e3d0
    0028e558udf 0
    0028e55cudf 0
    0028e3d0
    0028e560
    0028e560math/big.same: ; void math/big.same(math/big.nat x, math/big.nat y)
    0028e560ldr x16, [x28+16]
    0028e564subs xzr, sp, x16
    0028e568b.ls 0x28e644
    0028e56cstr x30, [sp-64]!
    0028e570stur x29, [sp-8]
    0028e574sub x29, sp, 8
    0028e578str x0, [sp+72]
    0028e57cstr x1, [sp+80]
    0028e580str x2, [sp+88]
    0028e584str x3, [sp+96]
    0028e588str x4, [sp+104]
    0028e58cstr x5, [sp+112]
    0028e590strb wzr, [sp+29]
    0028e594ldr x2, [sp+80]
    0028e598str x2, [sp+48]
    0028e59cstr x4, [sp+40]
    0028e5a0subs xzr, x4, x2
    0028e5a4cset x2, eq
    0028e5a8strb w2, [sp+30]
    0028e5acb.eq 0x28e5b4
    0028e5b0b 0x28e5cc
    0028e5b4
    0028e5b4loc_28e5b4:
    0028e5b4ldr x2, [sp+80]
    0028e5b8str x2, [sp+32]
    0028e5bcsubs xzr, x2, 0
    0028e5c0cset x2, ne
    0028e5c4strb w2, [sp+30]
    0028e5c8b 0x28e5d0
    0028e5cc
    0028e5ccloc_28e5cc:
    0028e5ccb 0x28e5d0
    0028e5d0
    0028e5d0loc_28e5d0:
    0028e5d0ldrb w2, [sp+30]
    0028e5d4strb w2, [sp+31]
    0028e5d8tbnz w2, 0, 0x28e5e0
    0028e5dcb 0x28e618
    0028e5e0
    0028e5e0loc_28e5e0:
    0028e5e0ldr x1, [sp+80]
    0028e5e4ldr x2, [sp+72]
    0028e5e8subs xzr, x1, 0
    0028e5ecb.hi 0x28e5f4
    0028e5f0b 0x28e638
    0028e5f4
    0028e5f4loc_28e5f4:
    0028e5f4ldr x1, [sp+104]
    0028e5f8ldr x3, [sp+96]
    0028e5fcsubs xzr, x1, 0
    0028e600b.hi 0x28e608
    0028e604b 0x28e630
    0028e608
    0028e608loc_28e608:
    0028e608subs xzr, x3, x2
    0028e60ccset x1, eq
    0028e610strb w1, [sp+31]
    0028e614b 0x28e61c
    0028e618
    0028e618loc_28e618:
    0028e618b 0x28e61c
    0028e61c
    0028e61cloc_28e61c:
    0028e61cldrb w0, [sp+31]
    0028e620strb w0, [sp+29]
    0028e624ldur x29, [sp-8]
    0028e628ldr x30, [sp], 64
    0028e62cret x30
    0028e630
    0028e630loc_28e630:
    0028e630mov x0, xzr
    0028e634bl runtime.panicIndex
    0028e638
    0028e638loc_28e638:
    0028e638mov x0, xzr
    0028e63cbl runtime.panicIndex
    0028e640hint
    0028e644
    0028e644loc_28e644:
    0028e644stp x0, x1, [sp+8]
    0028e648stp x2, x3, [sp+24]
    0028e64cstp x4, x5, [sp+40]
    0028e650mov x3, x30
    0028e654bl runtime.morestack_noctxt.abi0
    0028e658ldp x0, x1, [sp+8]
    0028e65cldp x2, x3, [sp+24]
    0028e660ldp x4, x5, [sp+40]
    0028e664b 0x28e560
    0028e668udf 0
    0028e66cudf 0
    0028e560
    0028e670
    0028e670math/big.nat.shl: ; void math/big.nat.shl(math/big.nat z, math/big.nat x, uint s)
    0028e670ldr x16, [x28+16]
    0028e674sub x17, sp, 64
    0028e678subs xzr, x17, x16
    0028e67cb.ls 0x28e954
    0028e680str x30, [sp-192]!
    0028e684stur x29, [sp-8]
    0028e688sub x29, sp, 8
    0028e68cstr x0, [sp+200]
    0028e690str x1, [sp+208]
    0028e694str x2, [sp+216]
    0028e698str x3, [sp+224]
    0028e69cstr x4, [sp+232]
    0028e6a0str x5, [sp+240]
    0028e6a4str x6, [sp+248]
    0028e6a8str xzr, [sp+128]
    0028e6acstp xzr, xzr, [sp+136]
    0028e6b0ldr x6, [sp+248]
    0028e6b4cbz x6, 0x28e6bc
    0028e6b8b 0x28e774
    0028e6bc
    0028e6bcloc_28e6bc:
    0028e6bcldr x0, [sp+200]
    0028e6c0ldr x3, [sp+224]
    0028e6c4ldr x1, [sp+208]
    0028e6c8ldr x4, [sp+232]
    0028e6ccldr x2, [sp+216]
    0028e6d0ldr x5, [sp+240]
    0028e6d4bl math/big.same
    0028e6d8strb w0, [sp+79]
    0028e6dctbnz w0, 0, 0x28e6e4
    0028e6e0b 0x28e708
    0028e6e4
    0028e6e4loc_28e6e4:
    0028e6e4ldr x0, [sp+200]
    0028e6e8ldr x1, [sp+208]
    0028e6ecldr x2, [sp+216]
    0028e6f0str x0, [sp+128]
    0028e6f4str x1, [sp+136]
    0028e6f8str x2, [sp+144]
    0028e6fcldur x29, [sp-8]
    0028e700ldr x30, [sp], 192
    0028e704ret x30
    0028e708
    0028e708loc_28e708:
    0028e708ldr x0, [sp+200]
    0028e70cldr x3, [sp+224]
    0028e710ldr x1, [sp+208]
    0028e714ldr x4, [sp+232]
    0028e718ldr x2, [sp+216]
    0028e71cldr x5, [sp+240]
    0028e720bl math/big.alias
    0028e724strb w0, [sp+79]
    0028e728tbnz w0, 0, 0x28e730
    0028e72cb 0x28e734
    0028e730
    0028e730loc_28e730:
    0028e730b 0x28e778
    0028e734
    0028e734loc_28e734:
    0028e734ldr x0, [sp+200]
    0028e738ldr x3, [sp+224]
    0028e73cldr x1, [sp+208]
    0028e740ldr x4, [sp+232]
    0028e744ldr x2, [sp+216]
    0028e748ldr x5, [sp+240]
    0028e74cbl math/big.nat.set
    0028e750str x0, [sp+152]
    0028e754str x1, [sp+160]
    0028e758str x2, [sp+168]
    0028e75cstr x0, [sp+128]
    0028e760str x1, [sp+136]
    0028e764str x2, [sp+144]
    0028e768ldur x29, [sp-8]
    0028e76cldr x30, [sp], 192
    0028e770ret x30
    0028e774
    0028e774loc_28e774:
    0028e774b 0x28e778
    0028e778
    0028e778loc_28e778:
    0028e778ldr x4, [sp+232]
    0028e77cstr x4, [sp+88]
    0028e780cbz x4, 0x28e788
    0028e784b 0x28e7c0
    0028e788
    0028e788loc_28e788:
    0028e788ldr x0, [sp+200]
    0028e78cldr x2, [sp+216]
    0028e790b 0x28e794
    0028e794
    0028e794loc_28e794:
    0028e794b 0x28e798
    0028e798
    0028e798loc_28e798:
    0028e798str x0, [sp+152]
    0028e79cstr xzr, [sp+160]
    0028e7a0str x2, [sp+168]
    0028e7a4str x0, [sp+128]
    0028e7a8str xzr, [sp+136]
    0028e7acstr x2, [sp+144]
    0028e7b0mov x1, xzr
    0028e7b4ldur x29, [sp-8]
    0028e7b8ldr x30, [sp], 192
    0028e7bcret x30
    0028e7c0
    0028e7c0loc_28e7c0:
    0028e7c0ldr x5, [sp+248]
    0028e7c4add x4, x4, x5, lsr #6
    0028e7c8str x4, [sp+80]
    0028e7ccldr x0, [sp+200]
    0028e7d0ldr x1, [sp+208]
    0028e7d4ldr x2, [sp+216]
    0028e7d8add x3, x4, 1
    0028e7dcbl math/big.nat.make
    0028e7e0str x0, [sp+200]
    0028e7e4str x1, [sp+208]
    0028e7e8str x2, [sp+216]
    0028e7ecldr x4, [sp+88]
    0028e7f0ldr x5, [sp+80]
    0028e7f4sub x6, x5, x4
    0028e7f8str x6, [sp+104]
    0028e7fcldr x1, [sp+80]
    0028e800subs xzr, x2, x1
    0028e804b.hs 0x28e80c
    0028e808b 0x28e94c
    0028e80c
    0028e80cloc_28e80c:
    0028e80csubs xzr, x1, x6
    0028e810b.hs 0x28e818
    0028e814b 0x28e944
    0028e818
    0028e818loc_28e818:
    0028e818add x2, x2, x4
    0028e81csub x2, x2, x5
    0028e820add x1, x1, x4
    0028e824sub x1, x1, x5
    0028e828sub x3, xzr, x2
    0028e82cubfm x4, x6, 61, 60
    0028e830and x3, x4, x3, asr #63
    0028e834add x0, x0, x3
    0028e838str x0, [sp+152]
    0028e83cstr x1, [sp+160]
    0028e840str x2, [sp+168]
    0028e844ldr x3, [sp+248]
    0028e848and x3, x3, 63
    0028e84cstr x3, [sp+120]
    0028e850ldr x4, [sp+224]
    0028e854ldr x5, [sp+232]
    0028e858ldr x6, [sp+240]
    0028e85cstr x0, [sp+8]
    0028e860str x1, [sp+16]
    0028e864str x2, [sp+24]
    0028e868str x4, [sp+32]
    0028e86cstr x5, [sp+40]
    0028e870str x6, [sp+48]
    0028e874str x3, [sp+56]
    0028e878bl math/big.shlVU.abi0
    0028e87cldr x0, [sp+64]
    0028e880str x0, [sp+96]
    0028e884ldr x1, [sp+80]
    0028e888ldr x2, [sp+208]
    0028e88cldr x3, [sp+200]
    0028e890subs xzr, x2, x1
    0028e894b.hi 0x28e89c
    0028e898b 0x28e938
    0028e89c
    0028e89cloc_28e89c:
    0028e89cstr x0, [x3+3*x1]
    0028e8a0ldr x3, [sp+88]
    0028e8a4ldr x4, [sp+80]
    0028e8a8sub x1, x4, x3
    0028e8acstr x1, [sp+104]
    0028e8b0ldr x2, [sp+216]
    0028e8b4ldr x3, [sp+200]
    0028e8b8subs xzr, x2, x1
    0028e8bcb.hs 0x28e8c4
    0028e8c0b 0x28e934
    0028e8c4
    0028e8c4loc_28e8c4:
    0028e8c4b 0x28e8c8
    0028e8c8
    0028e8c8loc_28e8c8:
    0028e8c8str x3, [sp+152]
    0028e8ccstr x1, [sp+160]
    0028e8d0str x2, [sp+168]
    0028e8d4cbnz x1, 0x28e8dc
    0028e8d8b 0x28e8fc
    0028e8dc
    0028e8dcloc_28e8dc:
    0028e8dcstr x3, [sp+176]
    0028e8e0ldr x2, [sp+160]
    0028e8e4ubfm x2, x2, 61, 60
    0028e8e8str x2, [sp+112]
    0028e8ecldr x1, [sp+112]
    0028e8f0ldr x0, [sp+176]
    0028e8f4bl runtime.memclrNoHeapPointers
    0028e8f8b 0x28e900
    0028e8fc
    0028e8fcloc_28e8fc:
    0028e8fcb 0x28e900
    0028e900
    0028e900loc_28e900:
    0028e900ldr x0, [sp+200]
    0028e904ldr x1, [sp+208]
    0028e908ldr x2, [sp+216]
    0028e90cbl math/big.nat.norm
    0028e910str x0, [sp+152]
    0028e914str x1, [sp+160]
    0028e918str x2, [sp+168]
    0028e91cstr x0, [sp+128]
    0028e920str x1, [sp+136]
    0028e924str x2, [sp+144]
    0028e928ldur x29, [sp-8]
    0028e92cldr x30, [sp], 192
    0028e930ret x30
    0028e934
    0028e934loc_28e934:
    0028e934bl runtime.panicSliceAcap
    0028e938
    0028e938loc_28e938:
    0028e938mov x0, x1
    0028e93cmov x1, x2
    0028e940bl runtime.panicIndex
    0028e944
    0028e944loc_28e944:
    0028e944mov x0, x6
    0028e948bl runtime.panicSliceB
    0028e94c
    0028e94cloc_28e94c:
    0028e94cbl runtime.panicSliceAcap
    0028e950hint
    0028e954
    0028e954loc_28e954:
    0028e954stp x0, x1, [sp+8]
    0028e958stp x2, x3, [sp+24]
    0028e95cstp x4, x5, [sp+40]
    0028e960str x6, [sp+56]
    0028e964mov x3, x30
    0028e968bl runtime.morestack_noctxt.abi0
    0028e96cldp x0, x1, [sp+8]
    0028e970ldp x2, x3, [sp+24]
    0028e974ldp x4, x5, [sp+40]
    0028e978ldr x6, [sp+56]
    0028e97cb 0x28e670
    0028e670
    0028e980
    0028e980math/big.nat.shr: ; void math/big.nat.shr(math/big.nat z, math/big.nat x, uint s)
    0028e980ldr x16, [x28+16]
    0028e984sub x17, sp, 48
    0028e988subs xzr, x17, x16
    0028e98cb.ls 0x28ebc8
    0028e990str x30, [sp-176]!
    0028e994stur x29, [sp-8]
    0028e998sub x29, sp, 8
    0028e99cstr x0, [sp+184]
    0028e9a0str x1, [sp+192]
    0028e9a4str x2, [sp+200]
    0028e9a8str x3, [sp+208]
    0028e9acstr x4, [sp+216]
    0028e9b0str x5, [sp+224]
    0028e9b4str x6, [sp+232]
    0028e9b8str xzr, [sp+120]
    0028e9bcstp xzr, xzr, [sp+128]
    0028e9c0ldr x6, [sp+232]
    0028e9c4cbz x6, 0x28e9cc
    0028e9c8b 0x28ea84
    0028e9cc
    0028e9ccloc_28e9cc:
    0028e9ccldr x0, [sp+184]
    0028e9d0ldr x3, [sp+208]
    0028e9d4ldr x1, [sp+192]
    0028e9d8ldr x4, [sp+216]
    0028e9dcldr x2, [sp+200]
    0028e9e0ldr x5, [sp+224]
    0028e9e4bl math/big.same
    0028e9e8strb w0, [sp+87]
    0028e9ectbnz w0, 0, 0x28e9f4
    0028e9f0b 0x28ea18
    0028e9f4
    0028e9f4loc_28e9f4:
    0028e9f4ldr x0, [sp+184]
    0028e9f8ldr x1, [sp+192]
    0028e9fcldr x2, [sp+200]
    0028ea00str x0, [sp+120]
    0028ea04str x1, [sp+128]
    0028ea08str x2, [sp+136]
    0028ea0cldur x29, [sp-8]
    0028ea10ldr x30, [sp], 176
    0028ea14ret x30
    0028ea18
    0028ea18loc_28ea18:
    0028ea18ldr x0, [sp+184]
    0028ea1cldr x3, [sp+208]
    0028ea20ldr x1, [sp+192]
    0028ea24ldr x4, [sp+216]
    0028ea28ldr x2, [sp+200]
    0028ea2cldr x5, [sp+224]
    0028ea30bl math/big.alias
    0028ea34strb w0, [sp+87]
    0028ea38tbnz w0, 0, 0x28ea40
    0028ea3cb 0x28ea44
    0028ea40
    0028ea40loc_28ea40:
    0028ea40b 0x28ea88
    0028ea44
    0028ea44loc_28ea44:
    0028ea44ldr x0, [sp+184]
    0028ea48ldr x3, [sp+208]
    0028ea4cldr x1, [sp+192]
    0028ea50ldr x4, [sp+216]
    0028ea54ldr x2, [sp+200]
    0028ea58ldr x5, [sp+224]
    0028ea5cbl math/big.nat.set
    0028ea60str x0, [sp+144]
    0028ea64str x1, [sp+152]
    0028ea68str x2, [sp+160]
    0028ea6cstr x0, [sp+120]
    0028ea70str x1, [sp+128]
    0028ea74str x2, [sp+136]
    0028ea78ldur x29, [sp-8]
    0028ea7cldr x30, [sp], 176
    0028ea80ret x30
    0028ea84
    0028ea84loc_28ea84:
    0028ea84b 0x28ea88
    0028ea88
    0028ea88loc_28ea88:
    0028ea88ldr x4, [sp+216]
    0028ea8cstr x4, [sp+96]
    0028ea90ldr x5, [sp+232]
    0028ea94sub x3, x4, x5, lsr #6
    0028ea98str x3, [sp+88]
    0028ea9csubs xzr, x3, 0
    0028eaa0b.le 0x28eaa8
    0028eaa4b 0x28eae0
    0028eaa8
    0028eaa8loc_28eaa8:
    0028eaa8ldr x0, [sp+184]
    0028eaacldr x2, [sp+200]
    0028eab0b 0x28eab4
    0028eab4
    0028eab4loc_28eab4:
    0028eab4b 0x28eab8
    0028eab8
    0028eab8loc_28eab8:
    0028eab8str x0, [sp+144]
    0028eabcstr xzr, [sp+152]
    0028eac0str x2, [sp+160]
    0028eac4str x0, [sp+120]
    0028eac8str xzr, [sp+128]
    0028eaccstr x2, [sp+136]
    0028ead0mov x1, xzr
    0028ead4ldur x29, [sp-8]
    0028ead8ldr x30, [sp], 176
    0028eadcret x30
    0028eae0
    0028eae0loc_28eae0:
    0028eae0ldr x0, [sp+184]
    0028eae4ldr x1, [sp+192]
    0028eae8ldr x2, [sp+200]
    0028eaecbl math/big.nat.make
    0028eaf0str x0, [sp+184]
    0028eaf4str x1, [sp+192]
    0028eaf8str x2, [sp+200]
    0028eafcldr x4, [sp+88]
    0028eb00ldr x5, [sp+96]
    0028eb04sub x0, x5, x4
    0028eb08str x0, [sp+112]
    0028eb0cldr x1, [sp+216]
    0028eb10ldr x6, [sp+208]
    0028eb14ldr x7, [sp+224]
    0028eb18b 0x28eb1c
    0028eb1c
    0028eb1cloc_28eb1c:
    0028eb1csubs xzr, x1, x0
    0028eb20b.hs 0x28eb28
    0028eb24b 0x28ebc0
    0028eb28
    0028eb28loc_28eb28:
    0028eb28add x2, x7, x4
    0028eb2csub x2, x2, x5
    0028eb30add x1, x1, x4
    0028eb34sub x1, x1, x5
    0028eb38sub x3, xzr, x2
    0028eb3cubfm x0, x0, 61, 60
    0028eb40and x0, x0, x3, asr #63
    0028eb44add x0, x6, x0
    0028eb48str x0, [sp+144]
    0028eb4cstr x1, [sp+152]
    0028eb50str x2, [sp+160]
    0028eb54ldr x3, [sp+232]
    0028eb58and x3, x3, 63
    0028eb5cstr x3, [sp+104]
    0028eb60ldr x4, [sp+184]
    0028eb64ldr x5, [sp+192]
    0028eb68ldr x6, [sp+200]
    0028eb6cstr x4, [sp+8]
    0028eb70str x5, [sp+16]
    0028eb74str x6, [sp+24]
    0028eb78str x0, [sp+32]
    0028eb7cstr x1, [sp+40]
    0028eb80str x2, [sp+48]
    0028eb84str x3, [sp+56]
    0028eb88bl math/big.shrVU.abi0
    0028eb8cldr x0, [sp+184]
    0028eb90ldr x1, [sp+192]
    0028eb94ldr x2, [sp+200]
    0028eb98bl math/big.nat.norm
    0028eb9cstr x0, [sp+144]
    0028eba0str x1, [sp+152]
    0028eba4str x2, [sp+160]
    0028eba8str x0, [sp+120]
    0028ebacstr x1, [sp+128]
    0028ebb0str x2, [sp+136]
    0028ebb4ldur x29, [sp-8]
    0028ebb8ldr x30, [sp], 176
    0028ebbcret x30
    0028ebc0
    0028ebc0loc_28ebc0:
    0028ebc0bl runtime.panicSliceB
    0028ebc4hint
    0028ebc8
    0028ebc8loc_28ebc8:
    0028ebc8stp x0, x1, [sp+8]
    0028ebccstp x2, x3, [sp+24]
    0028ebd0stp x4, x5, [sp+40]
    0028ebd4str x6, [sp+56]
    0028ebd8mov x3, x30
    0028ebdcbl runtime.morestack_noctxt.abi0
    0028ebe0ldp x0, x1, [sp+8]
    0028ebe4ldp x2, x3, [sp+24]
    0028ebe8ldp x4, x5, [sp+40]
    0028ebecldr x6, [sp+56]
    0028ebf0b 0x28e980
    0028ebf4udf 0
    0028ebf8udf 0
    0028ebfcudf 0
    0028e980
    0028ec00
    0028ec00math/big.nat.and: ; void math/big.nat.and(math/big.nat z, math/big.nat x, math/big.nat y)
    0028ec00ldr x16, [x28+16]
    0028ec04subs xzr, sp, x16
    0028ec08b.ls 0x28ed5c
    0028ec0cstr x30, [sp-128]!
    0028ec10stur x29, [sp-8]
    0028ec14sub x29, sp, 8
    0028ec18str x0, [sp+136]
    0028ec1cstr x1, [sp+144]
    0028ec20str x2, [sp+152]
    0028ec24str x3, [sp+160]
    0028ec28str x4, [sp+168]
    0028ec2cstr x5, [sp+176]
    0028ec30str x6, [sp+184]
    0028ec34str x7, [sp+192]
    0028ec38str x8, [sp+200]
    0028ec3cstr xzr, [sp+72]
    0028ec40stp xzr, xzr, [sp+80]
    0028ec44ldr x4, [sp+168]
    0028ec48str x4, [sp+56]
    0028ec4cldr x5, [sp+192]
    0028ec50str x5, [sp+48]
    0028ec54subs xzr, x5, x4
    0028ec58b.lt 0x28ec60
    0028ec5cb 0x28ec68
    0028ec60
    0028ec60loc_28ec60:
    0028ec60str x5, [sp+56]
    0028ec64b 0x28ec6c
    0028ec68
    0028ec68loc_28ec68:
    0028ec68b 0x28ec6c
    0028ec6c
    0028ec6cloc_28ec6c:
    0028ec6cldr x3, [sp+56]
    0028ec70ldr x0, [sp+136]
    0028ec74ldr x1, [sp+144]
    0028ec78ldr x2, [sp+152]
    0028ec7cbl math/big.nat.make
    0028ec80str x0, [sp+136]
    0028ec84str x1, [sp+144]
    0028ec88str x2, [sp+152]
    0028ec8cstr xzr, [sp+64]
    0028ec90b 0x28ec94
    0028ec94
    0028ec94loc_28ec94:
    0028ec94ldr x3, [sp+56]
    0028ec98ldr x4, [sp+64]
    0028ec9csubs xzr, x3, x4
    0028eca0b.gt 0x28eca8
    0028eca4b 0x28ed14
    0028eca8
    0028eca8loc_28eca8:
    0028eca8ldr x0, [sp+64]
    0028ecacldr x1, [sp+168]
    0028ecb0ldr x3, [sp+160]
    0028ecb4subs xzr, x1, x0
    0028ecb8b.hi 0x28ecc0
    0028ecbcb 0x28ed54
    0028ecc0
    0028ecc0loc_28ecc0:
    0028ecc0ldr x3, [x3+3*x0]
    0028ecc4ldr x0, [sp+64]
    0028ecc8ldr x1, [sp+192]
    0028ecccldr x4, [sp+184]
    0028ecd0subs xzr, x1, x0
    0028ecd4b.hi 0x28ecdc
    0028ecd8b 0x28ed50
    0028ecdc
    0028ecdcloc_28ecdc:
    0028ecdcldr x5, [sp+64]
    0028ece0ldr x1, [sp+144]
    0028ece4ldr x6, [sp+136]
    0028ece8ldr x4, [x4+3*x0]
    0028ececand x3, x3, x4
    0028ecf0subs xzr, x1, x5
    0028ecf4b.hi 0x28ecfc
    0028ecf8b 0x28ed48
    0028ecfc
    0028ecfcloc_28ecfc:
    0028ecfcstr x3, [x6+3*x5]
    0028ed00b 0x28ed04
    0028ed04
    0028ed04loc_28ed04:
    0028ed04ldr x3, [sp+64]
    0028ed08add x3, x3, 1
    0028ed0cstr x3, [sp+64]
    0028ed10b 0x28ec94
    0028ed14
    0028ed14loc_28ed14:
    0028ed14ldr x0, [sp+136]
    0028ed18ldr x1, [sp+144]
    0028ed1cldr x2, [sp+152]
    0028ed20bl math/big.nat.norm
    0028ed24str x0, [sp+96]
    0028ed28str x1, [sp+104]
    0028ed2cstr x2, [sp+112]
    0028ed30str x0, [sp+72]
    0028ed34str x1, [sp+80]
    0028ed38str x2, [sp+88]
    0028ed3cldur x29, [sp-8]
    0028ed40ldr x30, [sp], 128
    0028ed44ret x30
    0028ed48
    0028ed48loc_28ed48:
    0028ed48mov x0, x5
    0028ed4cbl runtime.panicIndex
    0028ed50
    0028ed50loc_28ed50:
    0028ed50bl runtime.panicIndex
    0028ed54
    0028ed54loc_28ed54:
    0028ed54bl runtime.panicIndex
    0028ed58hint
    0028ed5c
    0028ed5cloc_28ed5c:
    0028ed5cstp x0, x1, [sp+8]
    0028ed60stp x2, x3, [sp+24]
    0028ed64stp x4, x5, [sp+40]
    0028ed68stp x6, x7, [sp+56]
    0028ed6cstr x8, [sp+72]
    0028ed70mov x3, x30
    0028ed74bl runtime.morestack_noctxt.abi0
    0028ed78ldp x0, x1, [sp+8]
    0028ed7cldp x2, x3, [sp+24]
    0028ed80ldp x4, x5, [sp+40]
    0028ed84ldp x6, x7, [sp+56]
    0028ed88ldr x8, [sp+72]
    0028ed8cb 0x28ec00
    0028ec00
    0028ed90
    0028ed90math/big.nat.trunc: ; void math/big.nat.trunc(math/big.nat z, math/big.nat x, uint n)
    0028ed90ldr x16, [x28+16]
    0028ed94sub x17, sp, 80
    0028ed98subs xzr, x17, x16
    0028ed9cb.ls 0x28ef78
    0028eda0str x30, [sp-208]!
    0028eda4stur x29, [sp-8]
    0028eda8sub x29, sp, 8
    0028edacstr x0, [sp+216]
    0028edb0str x1, [sp+224]
    0028edb4str x2, [sp+232]
    0028edb8str x3, [sp+240]
    0028edbcstr x4, [sp+248]
    0028edc0str x5, [sp+256]
    0028edc4str x6, [sp+264]
    0028edc8str xzr, [sp+104]
    0028edccstp xzr, xzr, [sp+112]
    0028edd0ldr x6, [sp+264]
    0028edd4add x6, x6, 63
    0028edd8ubfm x3, x6, 6, 63
    0028eddcstr x3, [sp+64]
    0028ede0ldr x7, [sp+248]
    0028ede4str x7, [sp+80]
    0028ede8subs xzr, x7, x6, lsr #6
    0028edecb.lo 0x28edf4
    0028edf0b 0x28ee34
    0028edf4
    0028edf4loc_28edf4:
    0028edf4ldr x0, [sp+216]
    0028edf8ldr x3, [sp+240]
    0028edfcldr x1, [sp+224]
    0028ee00ldr x4, [sp+248]
    0028ee04ldr x2, [sp+232]
    0028ee08ldr x5, [sp+256]
    0028ee0cbl math/big.nat.set
    0028ee10str x0, [sp+176]
    0028ee14str x1, [sp+184]
    0028ee18str x2, [sp+192]
    0028ee1cstr x0, [sp+104]
    0028ee20str x1, [sp+112]
    0028ee24str x2, [sp+120]
    0028ee28ldur x29, [sp-8]
    0028ee2cldr x30, [sp], 208
    0028ee30ret x30
    0028ee34
    0028ee34loc_28ee34:
    0028ee34ldr x0, [sp+216]
    0028ee38ldr x1, [sp+224]
    0028ee3cldr x2, [sp+232]
    0028ee40bl math/big.nat.make
    0028ee44str x0, [sp+216]
    0028ee48str x1, [sp+224]
    0028ee4cstr x2, [sp+232]
    0028ee50str x0, [sp+152]
    0028ee54str x1, [sp+160]
    0028ee58str x2, [sp+168]
    0028ee5cldr x4, [sp+248]
    0028ee60ldr x5, [sp+240]
    0028ee64ldr x6, [sp+256]
    0028ee68str x5, [sp+128]
    0028ee6cstr x4, [sp+136]
    0028ee70str x6, [sp+144]
    0028ee74ldr x5, [sp+160]
    0028ee78str x5, [sp+72]
    0028ee7csubs xzr, x5, x4
    0028ee80b.gt 0x28ee88
    0028ee84b 0x28ee90
    0028ee88
    0028ee88loc_28ee88:
    0028ee88str x4, [sp+72]
    0028ee8cb 0x28ee94
    0028ee90
    0028ee90loc_28ee90:
    0028ee90b 0x28ee94
    0028ee94
    0028ee94loc_28ee94:
    0028ee94ldr x3, [sp+128]
    0028ee98ldr x4, [sp+152]
    0028ee9csubs xzr, x3, x4
    0028eea0b.ne 0x28eea8
    0028eea4b 0x28eec8
    0028eea8
    0028eea8loc_28eea8:
    0028eea8ldr x3, [sp+72]
    0028eeacstr x3, [sp+96]
    0028eeb0ldr x3, [sp+96]
    0028eeb4ubfm x2, x3, 61, 60
    0028eeb8ldr x1, [sp+128]
    0028eebcldr x0, [sp+152]
    0028eec0bl runtime.memmove
    0028eec4b 0x28eecc
    0028eec8
    0028eec8loc_28eec8:
    0028eec8b 0x28eecc
    0028eecc
    0028eeccloc_28eecc:
    0028eeccldr x3, [sp+264]
    0028eed0ands xzr, x3, 63
    0028eed4b.ne 0x28eedc
    0028eed8b 0x28ef34
    0028eedc
    0028eedcloc_28eedc:
    0028eedcldr x3, [sp+224]
    0028eee0str x3, [sp+80]
    0028eee4sub x0, x3, 1
    0028eee8str x0, [sp+88]
    0028eeecldr x1, [sp+224]
    0028eef0ldr x3, [sp+216]
    0028eef4subs xzr, x1, x0
    0028eef8b.hi 0x28ef00
    0028eefcb 0x28ef70
    0028ef00
    0028ef00loc_28ef00:
    0028ef00ldr x3, [x3+3*x0]
    0028ef04ldr x1, [sp+224]
    0028ef08ldr x4, [sp+216]
    0028ef0cldr x5, [sp+264]
    0028ef10orr x6, xzr, 1
    0028ef14lslv x5, x6, x5
    0028ef18sub x5, x5, 1
    0028ef1cand x3, x3, x5
    0028ef20subs xzr, x1, x0
    0028ef24b.hi 0x28ef2c
    0028ef28b 0x28ef6c
    0028ef2c
    0028ef2cloc_28ef2c:
    0028ef2cstr x3, [x4+3*x0]
    0028ef30b 0x28ef38
    0028ef34
    0028ef34loc_28ef34:
    0028ef34b 0x28ef38
    0028ef38
    0028ef38loc_28ef38:
    0028ef38ldr x0, [sp+216]
    0028ef3cldr x1, [sp+224]
    0028ef40ldr x2, [sp+232]
    0028ef44bl math/big.nat.norm
    0028ef48str x0, [sp+176]
    0028ef4cstr x1, [sp+184]
    0028ef50str x2, [sp+192]
    0028ef54str x0, [sp+104]
    0028ef58str x1, [sp+112]
    0028ef5cstr x2, [sp+120]
    0028ef60ldur x29, [sp-8]
    0028ef64ldr x30, [sp], 208
    0028ef68ret x30
    0028ef6c
    0028ef6cloc_28ef6c:
    0028ef6cbl runtime.panicIndex
    0028ef70
    0028ef70loc_28ef70:
    0028ef70bl runtime.panicIndex
    0028ef74hint
    0028ef78
    0028ef78loc_28ef78:
    0028ef78stp x0, x1, [sp+8]
    0028ef7cstp x2, x3, [sp+24]
    0028ef80stp x4, x5, [sp+40]
    0028ef84str x6, [sp+56]
    0028ef88mov x3, x30
    0028ef8cbl runtime.morestack_noctxt.abi0
    0028ef90ldp x0, x1, [sp+8]
    0028ef94ldp x2, x3, [sp+24]
    0028ef98ldp x4, x5, [sp+40]
    0028ef9cldr x6, [sp+56]
    0028efa0b 0x28ed90
    0028efa4udf 0
    0028efa8udf 0
    0028efacudf 0
    0028ed90
    0028efb0
    0028efb0math/big.nat.andNot: ; void math/big.nat.andNot(math/big.nat z, math/big.nat x, math/big.nat y)
    0028efb0ldr x16, [x28+16]
    0028efb4sub x17, sp, 80
    0028efb8subs xzr, x17, x16
    0028efbcb.ls 0x28f240
    0028efc0str x30, [sp-208]!
    0028efc4stur x29, [sp-8]
    0028efc8sub x29, sp, 8
    0028efccstr x0, [sp+216]
    0028efd0str x1, [sp+224]
    0028efd4str x2, [sp+232]
    0028efd8str x3, [sp+240]
    0028efdcstr x4, [sp+248]
    0028efe0str x5, [sp+256]
    0028efe4str x6, [sp+264]
    0028efe8str x7, [sp+272]
    0028efecstr x8, [sp+280]
    0028eff0str xzr, [sp+80]
    0028eff4stp xzr, xzr, [sp+88]
    0028eff8ldr x4, [sp+248]
    0028effcstr x4, [sp+48]
    0028f000ldr x5, [sp+272]
    0028f004str x5, [sp+40]
    0028f008subs xzr, x5, x4
    0028f00cb.gt 0x28f014
    0028f010b 0x28f01c
    0028f014
    0028f014loc_28f014:
    0028f014str x4, [sp+40]
    0028f018b 0x28f020
    0028f01c
    0028f01cloc_28f01c:
    0028f01cb 0x28f020
    0028f020
    0028f020loc_28f020:
    0028f020ldr x3, [sp+48]
    0028f024ldr x0, [sp+216]
    0028f028ldr x1, [sp+224]
    0028f02cldr x2, [sp+232]
    0028f030bl math/big.nat.make
    0028f034str x0, [sp+216]
    0028f038str x1, [sp+224]
    0028f03cstr x2, [sp+232]
    0028f040str xzr, [sp+56]
    0028f044b 0x28f048
    0028f048
    0028f048loc_28f048:
    0028f048ldr x3, [sp+40]
    0028f04cldr x4, [sp+56]
    0028f050subs xzr, x3, x4
    0028f054b.gt 0x28f05c
    0028f058b 0x28f0c8
    0028f05c
    0028f05cloc_28f05c:
    0028f05cldr x0, [sp+56]
    0028f060ldr x1, [sp+248]
    0028f064ldr x3, [sp+240]
    0028f068subs xzr, x1, x0
    0028f06cb.hi 0x28f074
    0028f070b 0x28f238
    0028f074
    0028f074loc_28f074:
    0028f074ldr x3, [x3+3*x0]
    0028f078ldr x0, [sp+56]
    0028f07cldr x1, [sp+272]
    0028f080ldr x4, [sp+264]
    0028f084subs xzr, x1, x0
    0028f088b.hi 0x28f090
    0028f08cb 0x28f234
    0028f090
    0028f090loc_28f090:
    0028f090ldr x5, [sp+56]
    0028f094ldr x1, [sp+224]
    0028f098ldr x6, [sp+216]
    0028f09cldr x4, [x4+3*x0]
    0028f0a0bic x3, x3, x4
    0028f0a4subs xzr, x1, x5
    0028f0a8b.hi 0x28f0b0
    0028f0acb 0x28f22c
    0028f0b0
    0028f0b0loc_28f0b0:
    0028f0b0str x3, [x6+3*x5]
    0028f0b4b 0x28f0b8
    0028f0b8
    0028f0b8loc_28f0b8:
    0028f0b8ldr x3, [sp+56]
    0028f0bcadd x3, x3, 1
    0028f0c0str x3, [sp+56]
    0028f0c4b 0x28f048
    0028f0c8
    0028f0c8loc_28f0c8:
    0028f0c8ldr x1, [sp+48]
    0028f0ccldr x0, [sp+40]
    0028f0d0ldr x2, [sp+232]
    0028f0d4ldr x3, [sp+216]
    0028f0d8subs xzr, x2, x1
    0028f0dcb.hs 0x28f0e4
    0028f0e0b 0x28f228
    0028f0e4
    0028f0e4loc_28f0e4:
    0028f0e4subs xzr, x1, x0
    0028f0e8b.hs 0x28f0f0
    0028f0ecb 0x28f224
    0028f0f0
    0028f0f0loc_28f0f0:
    0028f0f0sub x4, x2, x0
    0028f0f4sub x5, x1, x0
    0028f0f8sub x6, xzr, x4
    0028f0fcubfm x7, x0, 61, 60
    0028f100and x6, x7, x6, asr #63
    0028f104add x3, x3, x6
    0028f108str x3, [sp+152]
    0028f10cstr x5, [sp+160]
    0028f110str x4, [sp+168]
    0028f114ldr x0, [sp+40]
    0028f118ldr x1, [sp+48]
    0028f11cldr x2, [sp+256]
    0028f120ldr x3, [sp+240]
    0028f124subs xzr, x2, x1
    0028f128b.hs 0x28f130
    0028f12cb 0x28f220
    0028f130
    0028f130loc_28f130:
    0028f130subs xzr, x1, x0
    0028f134b.hs 0x28f13c
    0028f138b 0x28f21c
    0028f13c
    0028f13cloc_28f13c:
    0028f13csub x4, x2, x0
    0028f140sub x5, x1, x0
    0028f144sub x6, xzr, x4
    0028f148ubfm x7, x0, 61, 60
    0028f14cand x6, x7, x6, asr #63
    0028f150add x3, x3, x6
    0028f154str x3, [sp+128]
    0028f158str x5, [sp+136]
    0028f15cstr x4, [sp+144]
    0028f160ldr x3, [sp+152]
    0028f164ldr x4, [sp+160]
    0028f168ldr x5, [sp+168]
    0028f16cstr x3, [sp+104]
    0028f170str x4, [sp+112]
    0028f174str x5, [sp+120]
    0028f178ldr x3, [sp+136]
    0028f17cldr x4, [sp+128]
    0028f180ldr x5, [sp+144]
    0028f184str x4, [sp+176]
    0028f188str x3, [sp+184]
    0028f18cstr x5, [sp+192]
    0028f190ldr x4, [sp+112]
    0028f194str x4, [sp+72]
    0028f198subs xzr, x4, x3
    0028f19cb.gt 0x28f1a4
    0028f1a0b 0x28f1ac
    0028f1a4
    0028f1a4loc_28f1a4:
    0028f1a4str x3, [sp+72]
    0028f1a8b 0x28f1b0
    0028f1ac
    0028f1acloc_28f1ac:
    0028f1acb 0x28f1b0
    0028f1b0
    0028f1b0loc_28f1b0:
    0028f1b0ldr x3, [sp+176]
    0028f1b4ldr x4, [sp+104]
    0028f1b8subs xzr, x3, x4
    0028f1bcb.ne 0x28f1c4
    0028f1c0b 0x28f1e4
    0028f1c4
    0028f1c4loc_28f1c4:
    0028f1c4ldr x3, [sp+72]
    0028f1c8str x3, [sp+64]
    0028f1ccldr x3, [sp+64]
    0028f1d0ubfm x2, x3, 61, 60
    0028f1d4ldr x1, [sp+176]
    0028f1d8ldr x0, [sp+104]
    0028f1dcbl runtime.memmove
    0028f1e0b 0x28f1e8
    0028f1e4
    0028f1e4loc_28f1e4:
    0028f1e4b 0x28f1e8
    0028f1e8
    0028f1e8loc_28f1e8:
    0028f1e8ldr x0, [sp+216]
    0028f1ecldr x1, [sp+224]
    0028f1f0ldr x2, [sp+232]
    0028f1f4bl math/big.nat.norm
    0028f1f8str x0, [sp+128]
    0028f1fcstr x1, [sp+136]
    0028f200str x2, [sp+144]
    0028f204str x0, [sp+80]
    0028f208str x1, [sp+88]
    0028f20cstr x2, [sp+96]
    0028f210ldur x29, [sp-8]
    0028f214ldr x30, [sp], 208
    0028f218ret x30
    0028f21c
    0028f21cloc_28f21c:
    0028f21cbl runtime.panicSliceB
    0028f220
    0028f220loc_28f220:
    0028f220bl runtime.panicSliceAcap
    0028f224
    0028f224loc_28f224:
    0028f224bl runtime.panicSliceB
    0028f228
    0028f228loc_28f228:
    0028f228bl runtime.panicSliceAcap
    0028f22c
    0028f22cloc_28f22c:
    0028f22cmov x0, x5
    0028f230bl runtime.panicIndex
    0028f234
    0028f234loc_28f234:
    0028f234bl runtime.panicIndex
    0028f238
    0028f238loc_28f238:
    0028f238bl runtime.panicIndex
    0028f23chint
    0028f240
    0028f240loc_28f240:
    0028f240stp x0, x1, [sp+8]
    0028f244stp x2, x3, [sp+24]
    0028f248stp x4, x5, [sp+40]
    0028f24cstp x6, x7, [sp+56]
    0028f250str x8, [sp+72]
    0028f254mov x3, x30
    0028f258bl runtime.morestack_noctxt.abi0
    0028f25cldp x0, x1, [sp+8]
    0028f260ldp x2, x3, [sp+24]
    0028f264ldp x4, x5, [sp+40]
    0028f268ldp x6, x7, [sp+56]
    0028f26cldr x8, [sp+72]
    0028f270b 0x28efb0
    0028f274udf 0
    0028f278udf 0
    0028f27cudf 0
    0028efb0