File 8base_80736669542d3727c77ccda1589f9d7c17568a1d97d98ffae84afbbbf081be67.elf
Function:
    004030c0
    004030c0fsquare_inner:
    004030c0sub sp, sp, 16
    004030c4str x0, [sp+8]
    004030c8str x1, [sp]
    004030ccldr x0, [sp]
    004030d0ldr x0, [x0]
    004030d4sbfm x1, x0, 0, 31
    004030d8ldr x0, [sp]
    004030dcldr x0, [x0]
    004030e0sbfm x0, x0, 0, 31
    004030e4madd x1, x1, x0, xzr
    004030e8ldr x0, [sp+8]
    004030ecstr x1, [x0]
    004030f0ldr x0, [sp]
    004030f4ldr x0, [x0]
    004030f8sbfm x1, x0, 0, 31
    004030fcldr x0, [sp]
    00403100add x0, x0, 8
    00403104ldr x0, [x0]
    00403108sbfm x0, x0, 0, 31
    0040310cmadd x1, x1, x0, xzr
    00403110ldr x0, [sp+8]
    00403114add x0, x0, 8
    00403118ubfm x1, x1, 63, 62
    0040311cstr x1, [x0]
    00403120ldr x0, [sp]
    00403124add x0, x0, 8
    00403128ldr x0, [x0]
    0040312csbfm x1, x0, 0, 31
    00403130ldr x0, [sp]
    00403134add x0, x0, 8
    00403138ldr x0, [x0]
    0040313csbfm x0, x0, 0, 31
    00403140madd x1, x1, x0, xzr
    00403144ldr x0, [sp]
    00403148ldr x0, [x0]
    0040314csbfm x2, x0, 0, 31
    00403150ldr x0, [sp]
    00403154add x0, x0, 16
    00403158ldr x0, [x0]
    0040315csbfm x0, x0, 0, 31
    00403160madd x0, x2, x0, xzr
    00403164add x1, x1, x0
    00403168ldr x0, [sp+8]
    0040316cadd x0, x0, 16
    00403170ubfm x1, x1, 63, 62
    00403174str x1, [x0]
    00403178ldr x0, [sp]
    0040317cadd x0, x0, 8
    00403180ldr x0, [x0]
    00403184sbfm x1, x0, 0, 31
    00403188ldr x0, [sp]
    0040318cadd x0, x0, 16
    00403190ldr x0, [x0]
    00403194sbfm x0, x0, 0, 31
    00403198madd x1, x1, x0, xzr
    0040319cldr x0, [sp]
    004031a0ldr x0, [x0]
    004031a4sbfm x2, x0, 0, 31
    004031a8ldr x0, [sp]
    004031acadd x0, x0, 24
    004031b0ldr x0, [x0]
    004031b4sbfm x0, x0, 0, 31
    004031b8madd x0, x2, x0, xzr
    004031bcadd x1, x1, x0
    004031c0ldr x0, [sp+8]
    004031c4add x0, x0, 24
    004031c8ubfm x1, x1, 63, 62
    004031ccstr x1, [x0]
    004031d0ldr x0, [sp]
    004031d4add x0, x0, 16
    004031d8ldr x0, [x0]
    004031dcsbfm x1, x0, 0, 31
    004031e0ldr x0, [sp]
    004031e4add x0, x0, 16
    004031e8ldr x0, [x0]
    004031ecsbfm x0, x0, 0, 31
    004031f0madd x1, x1, x0, xzr
    004031f4ldr x0, [sp]
    004031f8add x0, x0, 8
    004031fcldr x0, [x0]
    00403200sbfm x2, x0, 0, 31
    00403204ldr x0, [sp]
    00403208add x0, x0, 24
    0040320cldr x0, [x0]
    00403210sbfm x0, x0, 0, 31
    00403214madd x0, x2, x0, xzr
    00403218ubfm x0, x0, 62, 61
    0040321cadd x2, x1, x0
    00403220ldr x0, [sp]
    00403224ldr x0, [x0]
    00403228sbfm x1, x0, 0, 31
    0040322cldr x0, [sp]
    00403230add x0, x0, 32
    00403234ldr x0, [x0]
    00403238sbfm x0, x0, 0, 31
    0040323cmadd x0, x1, x0, xzr
    00403240ubfm x1, x0, 63, 62
    00403244ldr x0, [sp+8]
    00403248add x0, x0, 32
    0040324cadd x1, x2, x1
    00403250str x1, [x0]
    00403254ldr x0, [sp]
    00403258add x0, x0, 16
    0040325cldr x0, [x0]
    00403260sbfm x1, x0, 0, 31
    00403264ldr x0, [sp]
    00403268add x0, x0, 24
    0040326cldr x0, [x0]
    00403270sbfm x0, x0, 0, 31
    00403274madd x1, x1, x0, xzr
    00403278ldr x0, [sp]
    0040327cadd x0, x0, 8
    00403280ldr x0, [x0]
    00403284sbfm x2, x0, 0, 31
    00403288ldr x0, [sp]
    0040328cadd x0, x0, 32
    00403290ldr x0, [x0]
    00403294sbfm x0, x0, 0, 31
    00403298madd x0, x2, x0, xzr
    0040329cadd x1, x1, x0
    004032a0ldr x0, [sp]
    004032a4ldr x0, [x0]
    004032a8sbfm x2, x0, 0, 31
    004032acldr x0, [sp]
    004032b0add x0, x0, 40
    004032b4ldr x0, [x0]
    004032b8sbfm x0, x0, 0, 31
    004032bcmadd x0, x2, x0, xzr
    004032c0add x1, x1, x0
    004032c4ldr x0, [sp+8]
    004032c8add x0, x0, 40
    004032ccubfm x1, x1, 63, 62
    004032d0str x1, [x0]
    004032d4ldr x0, [sp]
    004032d8add x0, x0, 24
    004032dcldr x0, [x0]
    004032e0sbfm x1, x0, 0, 31
    004032e4ldr x0, [sp]
    004032e8add x0, x0, 24
    004032ecldr x0, [x0]
    004032f0sbfm x0, x0, 0, 31
    004032f4madd x1, x1, x0, xzr
    004032f8ldr x0, [sp]
    004032fcadd x0, x0, 16
    00403300ldr x0, [x0]
    00403304sbfm x2, x0, 0, 31
    00403308ldr x0, [sp]
    0040330cadd x0, x0, 32
    00403310ldr x0, [x0]
    00403314sbfm x0, x0, 0, 31
    00403318madd x0, x2, x0, xzr
    0040331cadd x1, x1, x0
    00403320ldr x0, [sp]
    00403324ldr x0, [x0]
    00403328sbfm x2, x0, 0, 31
    0040332cldr x0, [sp]
    00403330add x0, x0, 48
    00403334ldr x0, [x0]
    00403338sbfm x0, x0, 0, 31
    0040333cmadd x0, x2, x0, xzr
    00403340add x1, x1, x0
    00403344ldr x0, [sp]
    00403348add x0, x0, 8
    0040334cldr x0, [x0]
    00403350sbfm x2, x0, 0, 31
    00403354ldr x0, [sp]
    00403358add x0, x0, 40
    0040335cldr x0, [x0]
    00403360sbfm x0, x0, 0, 31
    00403364madd x0, x2, x0, xzr
    00403368ubfm x0, x0, 63, 62
    0040336cadd x1, x1, x0
    00403370ldr x0, [sp+8]
    00403374add x0, x0, 48
    00403378ubfm x1, x1, 63, 62
    0040337cstr x1, [x0]
    00403380ldr x0, [sp]
    00403384add x0, x0, 24
    00403388ldr x0, [x0]
    0040338csbfm x1, x0, 0, 31
    00403390ldr x0, [sp]
    00403394add x0, x0, 32
    00403398ldr x0, [x0]
    0040339csbfm x0, x0, 0, 31
    004033a0madd x1, x1, x0, xzr
    004033a4ldr x0, [sp]
    004033a8add x0, x0, 16
    004033acldr x0, [x0]
    004033b0sbfm x2, x0, 0, 31
    004033b4ldr x0, [sp]
    004033b8add x0, x0, 40
    004033bcldr x0, [x0]
    004033c0sbfm x0, x0, 0, 31
    004033c4madd x0, x2, x0, xzr
    004033c8add x1, x1, x0
    004033ccldr x0, [sp]
    004033d0add x0, x0, 8
    004033d4ldr x0, [x0]
    004033d8sbfm x2, x0, 0, 31
    004033dcldr x0, [sp]
    004033e0add x0, x0, 48
    004033e4ldr x0, [x0]
    004033e8sbfm x0, x0, 0, 31
    004033ecmadd x0, x2, x0, xzr
    004033f0add x1, x1, x0
    004033f4ldr x0, [sp]
    004033f8ldr x0, [x0]
    004033fcsbfm x2, x0, 0, 31
    00403400ldr x0, [sp]
    00403404add x0, x0, 56
    00403408ldr x0, [x0]
    0040340csbfm x0, x0, 0, 31
    00403410madd x0, x2, x0, xzr
    00403414add x1, x1, x0
    00403418ldr x0, [sp+8]
    0040341cadd x0, x0, 56
    00403420ubfm x1, x1, 63, 62
    00403424str x1, [x0]
    00403428ldr x0, [sp]
    0040342cadd x0, x0, 32
    00403430ldr x0, [x0]
    00403434sbfm x1, x0, 0, 31
    00403438ldr x0, [sp]
    0040343cadd x0, x0, 32
    00403440ldr x0, [x0]
    00403444sbfm x0, x0, 0, 31
    00403448madd x2, x1, x0, xzr
    0040344cldr x0, [sp]
    00403450add x0, x0, 16
    00403454ldr x0, [x0]
    00403458sbfm x1, x0, 0, 31
    0040345cldr x0, [sp]
    00403460add x0, x0, 48
    00403464ldr x0, [x0]
    00403468sbfm x0, x0, 0, 31
    0040346cmadd x1, x1, x0, xzr
    00403470ldr x0, [sp]
    00403474ldr x0, [x0]
    00403478sbfm x3, x0, 0, 31
    0040347cldr x0, [sp]
    00403480add x0, x0, 64
    00403484ldr x0, [x0]
    00403488sbfm x0, x0, 0, 31
    0040348cmadd x0, x3, x0, xzr
    00403490add x1, x1, x0
    00403494ldr x0, [sp]
    00403498add x0, x0, 8
    0040349cldr x0, [x0]
    004034a0sbfm x3, x0, 0, 31
    004034a4ldr x0, [sp]
    004034a8add x0, x0, 56
    004034acldr x0, [x0]
    004034b0sbfm x0, x0, 0, 31
    004034b4madd x3, x3, x0, xzr
    004034b8ldr x0, [sp]
    004034bcadd x0, x0, 24
    004034c0ldr x0, [x0]
    004034c4sbfm x4, x0, 0, 31
    004034c8ldr x0, [sp]
    004034ccadd x0, x0, 40
    004034d0ldr x0, [x0]
    004034d4sbfm x0, x0, 0, 31
    004034d8madd x0, x4, x0, xzr
    004034dcadd x0, x3, x0
    004034e0ubfm x0, x0, 63, 62
    004034e4add x0, x1, x0
    004034e8ubfm x1, x0, 63, 62
    004034ecldr x0, [sp+8]
    004034f0add x0, x0, 64
    004034f4add x1, x2, x1
    004034f8str x1, [x0]
    004034fcldr x0, [sp]
    00403500add x0, x0, 32
    00403504ldr x0, [x0]
    00403508sbfm x1, x0, 0, 31
    0040350cldr x0, [sp]
    00403510add x0, x0, 40
    00403514ldr x0, [x0]
    00403518sbfm x0, x0, 0, 31
    0040351cmadd x1, x1, x0, xzr
    00403520ldr x0, [sp]
    00403524add x0, x0, 24
    00403528ldr x0, [x0]
    0040352csbfm x2, x0, 0, 31
    00403530ldr x0, [sp]
    00403534add x0, x0, 48
    00403538ldr x0, [x0]
    0040353csbfm x0, x0, 0, 31
    00403540madd x0, x2, x0, xzr
    00403544add x1, x1, x0
    00403548ldr x0, [sp]
    0040354cadd x0, x0, 16
    00403550ldr x0, [x0]
    00403554sbfm x2, x0, 0, 31
    00403558ldr x0, [sp]
    0040355cadd x0, x0, 56
    00403560ldr x0, [x0]
    00403564sbfm x0, x0, 0, 31
    00403568madd x0, x2, x0, xzr
    0040356cadd x1, x1, x0
    00403570ldr x0, [sp]
    00403574add x0, x0, 8
    00403578ldr x0, [x0]
    0040357csbfm x2, x0, 0, 31
    00403580ldr x0, [sp]
    00403584add x0, x0, 64
    00403588ldr x0, [x0]
    0040358csbfm x0, x0, 0, 31
    00403590madd x0, x2, x0, xzr
    00403594add x1, x1, x0
    00403598ldr x0, [sp]
    0040359cldr x0, [x0]
    004035a0sbfm x2, x0, 0, 31
    004035a4ldr x0, [sp]
    004035a8add x0, x0, 72
    004035acldr x0, [x0]
    004035b0sbfm x0, x0, 0, 31
    004035b4madd x0, x2, x0, xzr
    004035b8add x1, x1, x0
    004035bcldr x0, [sp+8]
    004035c0add x0, x0, 72
    004035c4ubfm x1, x1, 63, 62
    004035c8str x1, [x0]
    004035ccldr x0, [sp]
    004035d0add x0, x0, 40
    004035d4ldr x0, [x0]
    004035d8sbfm x1, x0, 0, 31
    004035dcldr x0, [sp]
    004035e0add x0, x0, 40
    004035e4ldr x0, [x0]
    004035e8sbfm x0, x0, 0, 31
    004035ecmadd x1, x1, x0, xzr
    004035f0ldr x0, [sp]
    004035f4add x0, x0, 32
    004035f8ldr x0, [x0]
    004035fcsbfm x2, x0, 0, 31
    00403600ldr x0, [sp]
    00403604add x0, x0, 48
    00403608ldr x0, [x0]
    0040360csbfm x0, x0, 0, 31
    00403610madd x0, x2, x0, xzr
    00403614add x1, x1, x0
    00403618ldr x0, [sp]
    0040361cadd x0, x0, 16
    00403620ldr x0, [x0]
    00403624sbfm x2, x0, 0, 31
    00403628ldr x0, [sp]
    0040362cadd x0, x0, 64
    00403630ldr x0, [x0]
    00403634sbfm x0, x0, 0, 31
    00403638madd x0, x2, x0, xzr
    0040363cadd x1, x1, x0
    00403640ldr x0, [sp]
    00403644add x0, x0, 24
    00403648ldr x0, [x0]
    0040364csbfm x2, x0, 0, 31
    00403650ldr x0, [sp]
    00403654add x0, x0, 56
    00403658ldr x0, [x0]
    0040365csbfm x0, x0, 0, 31
    00403660madd x2, x2, x0, xzr
    00403664ldr x0, [sp]
    00403668add x0, x0, 8
    0040366cldr x0, [x0]
    00403670sbfm x3, x0, 0, 31
    00403674ldr x0, [sp]
    00403678add x0, x0, 72
    0040367cldr x0, [x0]
    00403680sbfm x0, x0, 0, 31
    00403684madd x0, x3, x0, xzr
    00403688add x0, x2, x0
    0040368cubfm x0, x0, 63, 62
    00403690add x1, x1, x0
    00403694ldr x0, [sp+8]
    00403698add x0, x0, 80
    0040369cubfm x1, x1, 63, 62
    004036a0str x1, [x0]
    004036a4ldr x0, [sp]
    004036a8add x0, x0, 40
    004036acldr x0, [x0]
    004036b0sbfm x1, x0, 0, 31
    004036b4ldr x0, [sp]
    004036b8add x0, x0, 48
    004036bcldr x0, [x0]
    004036c0sbfm x0, x0, 0, 31
    004036c4madd x1, x1, x0, xzr
    004036c8ldr x0, [sp]
    004036ccadd x0, x0, 32
    004036d0ldr x0, [x0]
    004036d4sbfm x2, x0, 0, 31
    004036d8ldr x0, [sp]
    004036dcadd x0, x0, 56
    004036e0ldr x0, [x0]
    004036e4sbfm x0, x0, 0, 31
    004036e8madd x0, x2, x0, xzr
    004036ecadd x1, x1, x0
    004036f0ldr x0, [sp]
    004036f4add x0, x0, 24
    004036f8ldr x0, [x0]
    004036fcsbfm x2, x0, 0, 31
    00403700ldr x0, [sp]
    00403704add x0, x0, 64
    00403708ldr x0, [x0]
    0040370csbfm x0, x0, 0, 31
    00403710madd x0, x2, x0, xzr
    00403714add x1, x1, x0
    00403718ldr x0, [sp]
    0040371cadd x0, x0, 16
    00403720ldr x0, [x0]
    00403724sbfm x2, x0, 0, 31
    00403728ldr x0, [sp]
    0040372cadd x0, x0, 72
    00403730ldr x0, [x0]
    00403734sbfm x0, x0, 0, 31
    00403738madd x0, x2, x0, xzr
    0040373cadd x1, x1, x0
    00403740ldr x0, [sp+8]
    00403744add x0, x0, 88
    00403748ubfm x1, x1, 63, 62
    0040374cstr x1, [x0]
    00403750ldr x0, [sp]
    00403754add x0, x0, 48
    00403758ldr x0, [x0]
    0040375csbfm x1, x0, 0, 31
    00403760ldr x0, [sp]
    00403764add x0, x0, 48
    00403768ldr x0, [x0]
    0040376csbfm x0, x0, 0, 31
    00403770madd x2, x1, x0, xzr
    00403774ldr x0, [sp]
    00403778add x0, x0, 32
    0040377cldr x0, [x0]
    00403780sbfm x1, x0, 0, 31
    00403784ldr x0, [sp]
    00403788add x0, x0, 64
    0040378cldr x0, [x0]
    00403790sbfm x0, x0, 0, 31
    00403794madd x1, x1, x0, xzr
    00403798ldr x0, [sp]
    0040379cadd x0, x0, 40
    004037a0ldr x0, [x0]
    004037a4sbfm x3, x0, 0, 31
    004037a8ldr x0, [sp]
    004037acadd x0, x0, 56
    004037b0ldr x0, [x0]
    004037b4sbfm x0, x0, 0, 31
    004037b8madd x3, x3, x0, xzr
    004037bcldr x0, [sp]
    004037c0add x0, x0, 24
    004037c4ldr x0, [x0]
    004037c8sbfm x4, x0, 0, 31
    004037ccldr x0, [sp]
    004037d0add x0, x0, 72
    004037d4ldr x0, [x0]
    004037d8sbfm x0, x0, 0, 31
    004037dcmadd x0, x4, x0, xzr
    004037e0add x0, x3, x0
    004037e4ubfm x0, x0, 63, 62
    004037e8add x0, x1, x0
    004037ecubfm x1, x0, 63, 62
    004037f0ldr x0, [sp+8]
    004037f4add x0, x0, 96
    004037f8add x1, x2, x1
    004037fcstr x1, [x0]
    00403800ldr x0, [sp]
    00403804add x0, x0, 48
    00403808ldr x0, [x0]
    0040380csbfm x1, x0, 0, 31
    00403810ldr x0, [sp]
    00403814add x0, x0, 56
    00403818ldr x0, [x0]
    0040381csbfm x0, x0, 0, 31
    00403820madd x1, x1, x0, xzr
    00403824ldr x0, [sp]
    00403828add x0, x0, 40
    0040382cldr x0, [x0]
    00403830sbfm x2, x0, 0, 31
    00403834ldr x0, [sp]
    00403838add x0, x0, 64
    0040383cldr x0, [x0]
    00403840sbfm x0, x0, 0, 31
    00403844madd x0, x2, x0, xzr
    00403848add x1, x1, x0
    0040384cldr x0, [sp]
    00403850add x0, x0, 32
    00403854ldr x0, [x0]
    00403858sbfm x2, x0, 0, 31
    0040385cldr x0, [sp]
    00403860add x0, x0, 72
    00403864ldr x0, [x0]
    00403868sbfm x0, x0, 0, 31
    0040386cmadd x0, x2, x0, xzr
    00403870add x1, x1, x0
    00403874ldr x0, [sp+8]
    00403878add x0, x0, 104
    0040387cubfm x1, x1, 63, 62
    00403880str x1, [x0]
    00403884ldr x0, [sp]
    00403888add x0, x0, 56
    0040388cldr x0, [x0]
    00403890sbfm x1, x0, 0, 31
    00403894ldr x0, [sp]
    00403898add x0, x0, 56
    0040389cldr x0, [x0]
    004038a0sbfm x0, x0, 0, 31
    004038a4madd x1, x1, x0, xzr
    004038a8ldr x0, [sp]
    004038acadd x0, x0, 48
    004038b0ldr x0, [x0]
    004038b4sbfm x2, x0, 0, 31
    004038b8ldr x0, [sp]
    004038bcadd x0, x0, 64
    004038c0ldr x0, [x0]
    004038c4sbfm x0, x0, 0, 31
    004038c8madd x0, x2, x0, xzr
    004038ccadd x1, x1, x0
    004038d0ldr x0, [sp]
    004038d4add x0, x0, 40
    004038d8ldr x0, [x0]
    004038dcsbfm x2, x0, 0, 31
    004038e0ldr x0, [sp]
    004038e4add x0, x0, 72
    004038e8ldr x0, [x0]
    004038ecsbfm x0, x0, 0, 31
    004038f0madd x0, x2, x0, xzr
    004038f4ubfm x0, x0, 63, 62
    004038f8add x1, x1, x0
    004038fcldr x0, [sp+8]
    00403900add x0, x0, 112
    00403904ubfm x1, x1, 63, 62
    00403908str x1, [x0]
    0040390cldr x0, [sp]
    00403910add x0, x0, 56
    00403914ldr x0, [x0]
    00403918sbfm x1, x0, 0, 31
    0040391cldr x0, [sp]
    00403920add x0, x0, 64
    00403924ldr x0, [x0]
    00403928sbfm x0, x0, 0, 31
    0040392cmadd x1, x1, x0, xzr
    00403930ldr x0, [sp]
    00403934add x0, x0, 48
    00403938ldr x0, [x0]
    0040393csbfm x2, x0, 0, 31
    00403940ldr x0, [sp]
    00403944add x0, x0, 72
    00403948ldr x0, [x0]
    0040394csbfm x0, x0, 0, 31
    00403950madd x0, x2, x0, xzr
    00403954add x1, x1, x0
    00403958ldr x0, [sp+8]
    0040395cadd x0, x0, 120
    00403960ubfm x1, x1, 63, 62
    00403964str x1, [x0]
    00403968ldr x0, [sp]
    0040396cadd x0, x0, 64
    00403970ldr x0, [x0]
    00403974sbfm x1, x0, 0, 31
    00403978ldr x0, [sp]
    0040397cadd x0, x0, 64
    00403980ldr x0, [x0]
    00403984sbfm x0, x0, 0, 31
    00403988madd x2, x1, x0, xzr
    0040398cldr x0, [sp]
    00403990add x0, x0, 56
    00403994ldr x0, [x0]
    00403998sbfm x1, x0, 0, 31
    0040399cldr x0, [sp]
    004039a0add x0, x0, 72
    004039a4ldr x0, [x0]
    004039a8sbfm x0, x0, 0, 31
    004039acmadd x0, x1, x0, xzr
    004039b0ubfm x1, x0, 62, 61
    004039b4ldr x0, [sp+8]
    004039b8add x0, x0, 128
    004039bcadd x1, x2, x1
    004039c0str x1, [x0]
    004039c4ldr x0, [sp]
    004039c8add x0, x0, 64
    004039ccldr x0, [x0]
    004039d0sbfm x1, x0, 0, 31
    004039d4ldr x0, [sp]
    004039d8add x0, x0, 72
    004039dcldr x0, [x0]
    004039e0sbfm x0, x0, 0, 31
    004039e4madd x1, x1, x0, xzr
    004039e8ldr x0, [sp+8]
    004039ecadd x0, x0, 136
    004039f0ubfm x1, x1, 63, 62
    004039f4str x1, [x0]
    004039f8ldr x0, [sp]
    004039fcadd x0, x0, 72
    00403a00ldr x0, [x0]
    00403a04sbfm x1, x0, 0, 31
    00403a08ldr x0, [sp]
    00403a0cadd x0, x0, 72
    00403a10ldr x0, [x0]
    00403a14sbfm x0, x0, 0, 31
    00403a18madd x1, x1, x0, xzr
    00403a1cldr x0, [sp+8]
    00403a20add x0, x0, 144
    00403a24ubfm x1, x1, 63, 62
    00403a28str x1, [x0]
    00403a2chint
    00403a30add sp, sp, 16
    00403a34ret x30
    004030c0
    00403a38
    00403a38fsquare:
    00403a38stp x29, x30, [sp-192]!
    00403a3cadd x29, sp, 0
    00403a40str x0, [sp+24]
    00403a44str x1, [sp+16]
    00403a48add x0, sp, 40
    00403a4cldr x1, [sp+16]
    00403a50bl fsquare_inner
    00403a54add x0, sp, 40
    00403a58bl freduce_degree
    00403a5cadd x0, sp, 40
    00403a60bl freduce_coefficients
    00403a64add x0, sp, 40
    00403a68movz x2, 80
    00403a6cmov x1, x0
    00403a70ldr x0, [sp+24]
    00403a74bl memcpy@plt
    00403a78hint
    00403a7cldp x29, x30, [sp], 192
    00403a80ret x30
    00403a38
    00403a84
    00403a84fexpand:
    00403a84sub sp, sp, 16
    00403a88str x0, [sp+8]
    00403a8cstr x1, [sp]
    00403a90ldr x0, [sp]
    00403a94ldrb w0, [x0]
    00403a98and x1, x0, 255
    00403a9cldr x0, [sp]
    00403aa0add x0, x0, 1
    00403aa4ldrb w0, [x0]
    00403aa8and x0, x0, 255
    00403aacubfm x0, x0, 56, 55
    00403ab0orr x1, x1, x0
    00403ab4ldr x0, [sp]
    00403ab8add x0, x0, 2
    00403abcldrb w0, [x0]
    00403ac0and x0, x0, 255
    00403ac4ubfm x0, x0, 48, 47
    00403ac8orr x1, x1, x0
    00403accldr x0, [sp]
    00403ad0add x0, x0, 3
    00403ad4ldrb w0, [x0]
    00403ad8and x0, x0, 255
    00403adcubfm x0, x0, 40, 39
    00403ae0orr x0, x1, x0
    00403ae4and x1, x0, 0x3ffffff
    00403ae8ldr x0, [sp+8]
    00403aecstr x1, [x0]
    00403af0ldr x0, [sp]
    00403af4add x0, x0, 3
    00403af8ldrb w0, [x0]
    00403afcand x1, x0, 255
    00403b00ldr x0, [sp]
    00403b04add x0, x0, 4
    00403b08ldrb w0, [x0]
    00403b0cand x0, x0, 255
    00403b10ubfm x0, x0, 56, 55
    00403b14orr x1, x1, x0
    00403b18ldr x0, [sp]
    00403b1cadd x0, x0, 5
    00403b20ldrb w0, [x0]
    00403b24and x0, x0, 255
    00403b28ubfm x0, x0, 48, 47
    00403b2corr x1, x1, x0
    00403b30ldr x0, [sp]
    00403b34add x0, x0, 6
    00403b38ldrb w0, [x0]
    00403b3cand x0, x0, 255
    00403b40ubfm x0, x0, 40, 39
    00403b44orr x0, x1, x0
    00403b48sbfm x1, x0, 2, 63
    00403b4cldr x0, [sp+8]
    00403b50add x0, x0, 8
    00403b54and x1, x1, 0x1ffffff
    00403b58str x1, [x0]
    00403b5cldr x0, [sp]
    00403b60add x0, x0, 6
    00403b64ldrb w0, [x0]
    00403b68and x1, x0, 255
    00403b6cldr x0, [sp]
    00403b70add x0, x0, 7
    00403b74ldrb w0, [x0]
    00403b78and x0, x0, 255
    00403b7cubfm x0, x0, 56, 55
    00403b80orr x1, x1, x0
    00403b84ldr x0, [sp]
    00403b88add x0, x0, 8
    00403b8cldrb w0, [x0]
    00403b90and x0, x0, 255
    00403b94ubfm x0, x0, 48, 47
    00403b98orr x1, x1, x0
    00403b9cldr x0, [sp]
    00403ba0add x0, x0, 9
    00403ba4ldrb w0, [x0]
    00403ba8and x0, x0, 255
    00403bacubfm x0, x0, 40, 39
    00403bb0orr x0, x1, x0
    00403bb4sbfm x1, x0, 3, 63
    00403bb8ldr x0, [sp+8]
    00403bbcadd x0, x0, 16
    00403bc0and x1, x1, 0x3ffffff
    00403bc4str x1, [x0]
    00403bc8ldr x0, [sp]
    00403bccadd x0, x0, 9
    00403bd0ldrb w0, [x0]
    00403bd4and x1, x0, 255
    00403bd8ldr x0, [sp]
    00403bdcadd x0, x0, 10
    00403be0ldrb w0, [x0]
    00403be4and x0, x0, 255
    00403be8ubfm x0, x0, 56, 55
    00403becorr x1, x1, x0
    00403bf0ldr x0, [sp]
    00403bf4add x0, x0, 11
    00403bf8ldrb w0, [x0]
    00403bfcand x0, x0, 255
    00403c00ubfm x0, x0, 48, 47
    00403c04orr x1, x1, x0
    00403c08ldr x0, [sp]
    00403c0cadd x0, x0, 12
    00403c10ldrb w0, [x0]
    00403c14and x0, x0, 255
    00403c18ubfm x0, x0, 40, 39
    00403c1corr x0, x1, x0
    00403c20sbfm x1, x0, 5, 63
    00403c24ldr x0, [sp+8]
    00403c28add x0, x0, 24
    00403c2cand x1, x1, 0x1ffffff
    00403c30str x1, [x0]
    00403c34ldr x0, [sp]
    00403c38add x0, x0, 12
    00403c3cldrb w0, [x0]
    00403c40and x1, x0, 255
    00403c44ldr x0, [sp]
    00403c48add x0, x0, 13
    00403c4cldrb w0, [x0]
    00403c50and x0, x0, 255
    00403c54ubfm x0, x0, 56, 55
    00403c58orr x1, x1, x0
    00403c5cldr x0, [sp]
    00403c60add x0, x0, 14
    00403c64ldrb w0, [x0]
    00403c68and x0, x0, 255
    00403c6cubfm x0, x0, 48, 47
    00403c70orr x1, x1, x0
    00403c74ldr x0, [sp]
    00403c78add x0, x0, 15
    00403c7cldrb w0, [x0]
    00403c80and x0, x0, 255
    00403c84ubfm x0, x0, 40, 39
    00403c88orr x0, x1, x0
    00403c8csbfm x1, x0, 6, 63
    00403c90ldr x0, [sp+8]
    00403c94add x0, x0, 32
    00403c98and x1, x1, 0x3ffffff
    00403c9cstr x1, [x0]
    00403ca0ldr x0, [sp]
    00403ca4add x0, x0, 16
    00403ca8ldrb w0, [x0]
    00403cacand x1, x0, 255
    00403cb0ldr x0, [sp]
    00403cb4add x0, x0, 17
    00403cb8ldrb w0, [x0]
    00403cbcand x0, x0, 255
    00403cc0ubfm x0, x0, 56, 55
    00403cc4orr x1, x1, x0
    00403cc8ldr x0, [sp]
    00403cccadd x0, x0, 18
    00403cd0ldrb w0, [x0]
    00403cd4and x0, x0, 255
    00403cd8ubfm x0, x0, 48, 47
    00403cdcorr x1, x1, x0
    00403ce0ldr x0, [sp]
    00403ce4add x0, x0, 19
    00403ce8ldrb w0, [x0]
    00403cecand x0, x0, 255
    00403cf0ubfm x0, x0, 40, 39
    00403cf4orr x1, x1, x0
    00403cf8ldr x0, [sp+8]
    00403cfcadd x0, x0, 40
    00403d00and x1, x1, 0x1ffffff
    00403d04str x1, [x0]
    00403d08ldr x0, [sp]
    00403d0cadd x0, x0, 19
    00403d10ldrb w0, [x0]
    00403d14and x1, x0, 255
    00403d18ldr x0, [sp]
    00403d1cadd x0, x0, 20
    00403d20ldrb w0, [x0]
    00403d24and x0, x0, 255
    00403d28ubfm x0, x0, 56, 55
    00403d2corr x1, x1, x0
    00403d30ldr x0, [sp]
    00403d34add x0, x0, 21
    00403d38ldrb w0, [x0]
    00403d3cand x0, x0, 255
    00403d40ubfm x0, x0, 48, 47
    00403d44orr x1, x1, x0
    00403d48ldr x0, [sp]
    00403d4cadd x0, x0, 22
    00403d50ldrb w0, [x0]
    00403d54and x0, x0, 255
    00403d58ubfm x0, x0, 40, 39
    00403d5corr x0, x1, x0
    00403d60sbfm x1, x0, 1, 63
    00403d64ldr x0, [sp+8]
    00403d68add x0, x0, 48
    00403d6cand x1, x1, 0x3ffffff
    00403d70str x1, [x0]
    00403d74ldr x0, [sp]
    00403d78add x0, x0, 22
    00403d7cldrb w0, [x0]
    00403d80and x1, x0, 255
    00403d84ldr x0, [sp]
    00403d88add x0, x0, 23
    00403d8cldrb w0, [x0]
    00403d90and x0, x0, 255
    00403d94ubfm x0, x0, 56, 55
    00403d98orr x1, x1, x0
    00403d9cldr x0, [sp]
    00403da0add x0, x0, 24
    00403da4ldrb w0, [x0]
    00403da8and x0, x0, 255
    00403dacubfm x0, x0, 48, 47
    00403db0orr x1, x1, x0
    00403db4ldr x0, [sp]
    00403db8add x0, x0, 25
    00403dbcldrb w0, [x0]
    00403dc0and x0, x0, 255
    00403dc4ubfm x0, x0, 40, 39
    00403dc8orr x0, x1, x0
    00403dccsbfm x1, x0, 3, 63
    00403dd0ldr x0, [sp+8]
    00403dd4add x0, x0, 56
    00403dd8and x1, x1, 0x1ffffff
    00403ddcstr x1, [x0]
    00403de0ldr x0, [sp]
    00403de4add x0, x0, 25
    00403de8ldrb w0, [x0]
    00403decand x1, x0, 255
    00403df0ldr x0, [sp]
    00403df4add x0, x0, 26
    00403df8ldrb w0, [x0]
    00403dfcand x0, x0, 255
    00403e00ubfm x0, x0, 56, 55
    00403e04orr x1, x1, x0
    00403e08ldr x0, [sp]
    00403e0cadd x0, x0, 27
    00403e10ldrb w0, [x0]
    00403e14and x0, x0, 255
    00403e18ubfm x0, x0, 48, 47
    00403e1corr x1, x1, x0
    00403e20ldr x0, [sp]
    00403e24add x0, x0, 28
    00403e28ldrb w0, [x0]
    00403e2cand x0, x0, 255
    00403e30ubfm x0, x0, 40, 39
    00403e34orr x0, x1, x0
    00403e38sbfm x1, x0, 4, 63
    00403e3cldr x0, [sp+8]
    00403e40add x0, x0, 64
    00403e44and x1, x1, 0x3ffffff
    00403e48str x1, [x0]
    00403e4cldr x0, [sp]
    00403e50add x0, x0, 28
    00403e54ldrb w0, [x0]
    00403e58and x1, x0, 255
    00403e5cldr x0, [sp]
    00403e60add x0, x0, 29
    00403e64ldrb w0, [x0]
    00403e68and x0, x0, 255
    00403e6cubfm x0, x0, 56, 55
    00403e70orr x1, x1, x0
    00403e74ldr x0, [sp]
    00403e78add x0, x0, 30
    00403e7cldrb w0, [x0]
    00403e80and x0, x0, 255
    00403e84ubfm x0, x0, 48, 47
    00403e88orr x1, x1, x0
    00403e8cldr x0, [sp]
    00403e90add x0, x0, 31
    00403e94ldrb w0, [x0]
    00403e98and x0, x0, 255
    00403e9cubfm x0, x0, 40, 39
    00403ea0orr x0, x1, x0
    00403ea4sbfm x1, x0, 6, 63
    00403ea8ldr x0, [sp+8]
    00403eacadd x0, x0, 72
    00403eb0and x1, x1, 0x1ffffff
    00403eb4str x1, [x0]
    00403eb8hint
    00403ebcadd sp, sp, 16
    00403ec0ret x30
    00403a84
    00403ec4
    00403ec4s32_eq:
    00403ec4sub sp, sp, 16
    00403ec8str w0, [sp+12]
    00403eccstr w1, [sp+8]
    00403ed0ldr w1, [sp+12]
    00403ed4ldr w0, [sp+8]
    00403ed8eor w0, w1, w0
    00403edcorn w0, wzr, w0
    00403ee0str w0, [sp+12]
    00403ee4ldr w0, [sp+12]
    00403ee8ubfm w0, w0, 16, 15
    00403eecldr w1, [sp+12]
    00403ef0and w0, w1, w0
    00403ef4str w0, [sp+12]
    00403ef8ldr w0, [sp+12]
    00403efcubfm w0, w0, 24, 23
    00403f00ldr w1, [sp+12]
    00403f04and w0, w1, w0
    00403f08str w0, [sp+12]
    00403f0cldr w0, [sp+12]
    00403f10ubfm w0, w0, 28, 27
    00403f14ldr w1, [sp+12]
    00403f18and w0, w1, w0
    00403f1cstr w0, [sp+12]
    00403f20ldr w0, [sp+12]
    00403f24ubfm w0, w0, 30, 29
    00403f28ldr w1, [sp+12]
    00403f2cand w0, w1, w0
    00403f30str w0, [sp+12]
    00403f34ldr w0, [sp+12]
    00403f38ubfm w0, w0, 31, 30
    00403f3cldr w1, [sp+12]
    00403f40and w0, w1, w0
    00403f44str w0, [sp+12]
    00403f48ldr w0, [sp+12]
    00403f4csbfm w0, w0, 31, 31
    00403f50add sp, sp, 16
    00403f54ret x30
    00403ec4
    00403f58
    00403f58s32_gte:
    00403f58sub sp, sp, 16
    00403f5cstr w0, [sp+12]
    00403f60str w1, [sp+8]
    00403f64ldr w1, [sp+12]
    00403f68ldr w0, [sp+8]
    00403f6csub w0, w1, w0
    00403f70str w0, [sp+12]
    00403f74ldr w0, [sp+12]
    00403f78sbfm w0, w0, 31, 31
    00403f7corn w0, wzr, w0
    00403f80add sp, sp, 16
    00403f84ret x30
    00403f58
    00403f88
    00403f88fcontract:
    00403f88stp x29, x30, [sp-128]!
    00403f8cadd x29, sp, 0
    00403f90str x0, [sp+24]
    00403f94str x1, [sp+16]
    00403f98str wzr, [sp+124]
    00403f9cb 0x403fd4
    00403fa0
    00403fa0loc_403fa0:
    00403fa0ldrsw x0, [sp+124]
    00403fa4ubfm x0, x0, 61, 60
    00403fa8ldr x1, [sp+16]
    00403facadd x0, x1, x0
    00403fb0ldr x0, [x0]
    00403fb4mov w2, w0
    00403fb8ldrsw x0, [sp+124]
    00403fbcubfm x0, x0, 62, 61
    00403fc0add x1, sp, 32
    00403fc4str w2, [x1+x0]
    00403fc8ldr w0, [sp+124]
    00403fccadd w0, w0, 1
    00403fd0str w0, [sp+124]
    00403fd4
    00403fd4loc_403fd4:
    00403fd4ldr w0, [sp+124]
    00403fd8subs wzr, w0, 9
    00403fdcb.le 0x403fa0
    00403fe0str wzr, [sp+120]
    00403fe4b 0x4041b8
    00403fe8
    00403fe8loc_403fe8:
    00403fe8str wzr, [sp+124]
    00403fecb 0x404150
    00403ff0
    00403ff0loc_403ff0:
    00403ff0ldr w0, [sp+124]
    00403ff4and w0, w0, 1
    00403ff8subs wzr, w0, 0
    00403ffcb.eq 0x4040a4
    00404000ldrsw x0, [sp+124]
    00404004ubfm x0, x0, 62, 61
    00404008add x1, sp, 32
    0040400cldr w0, [x1+x0]
    00404010sbfm w0, w0, 31, 31
    00404014str w0, [sp+76]
    00404018ldrsw x0, [sp+124]
    0040401cubfm x0, x0, 62, 61
    00404020add x1, sp, 32
    00404024ldr w1, [x1+x0]
    00404028ldr w0, [sp+76]
    0040402cand w0, w1, w0
    00404030sbfm w0, w0, 25, 31
    00404034sub w0, wzr, w0
    00404038str w0, [sp+72]
    0040403cldrsw x0, [sp+124]
    00404040ubfm x0, x0, 62, 61
    00404044add x1, sp, 32
    00404048ldr w1, [x1+x0]
    0040404cldr w0, [sp+72]
    00404050ubfm w0, w0, 7, 6
    00404054add w2, w1, w0
    00404058ldrsw x0, [sp+124]
    0040405cubfm x0, x0, 62, 61
    00404060add x1, sp, 32
    00404064str w2, [x1+x0]
    00404068ldr w0, [sp+124]
    0040406cadd w0, w0, 1
    00404070sbfm x0, x0, 0, 31
    00404074ubfm x0, x0, 62, 61
    00404078add x1, sp, 32
    0040407cldr w1, [x1+x0]
    00404080ldr w0, [sp+124]
    00404084add w3, w0, 1
    00404088ldr w0, [sp+72]
    0040408csub w2, w1, w0
    00404090sbfm x0, x3, 0, 31
    00404094ubfm x0, x0, 62, 61
    00404098add x1, sp, 32
    0040409cstr w2, [x1+x0]
    004040a0b 0x404144
    004040a4
    004040a4loc_4040a4:
    004040a4ldrsw x0, [sp+124]
    004040a8ubfm x0, x0, 62, 61
    004040acadd x1, sp, 32
    004040b0ldr w0, [x1+x0]
    004040b4sbfm w0, w0, 31, 31
    004040b8str w0, [sp+84]
    004040bcldrsw x0, [sp+124]
    004040c0ubfm x0, x0, 62, 61
    004040c4add x1, sp, 32
    004040c8ldr w1, [x1+x0]
    004040ccldr w0, [sp+84]
    004040d0and w0, w1, w0
    004040d4sbfm w0, w0, 26, 31
    004040d8sub w0, wzr, w0
    004040dcstr w0, [sp+80]
    004040e0ldrsw x0, [sp+124]
    004040e4ubfm x0, x0, 62, 61
    004040e8add x1, sp, 32
    004040ecldr w1, [x1+x0]
    004040f0ldr w0, [sp+80]
    004040f4ubfm w0, w0, 6, 5
    004040f8add w2, w1, w0
    004040fcldrsw x0, [sp+124]
    00404100ubfm x0, x0, 62, 61
    00404104add x1, sp, 32
    00404108str w2, [x1+x0]
    0040410cldr w0, [sp+124]
    00404110add w0, w0, 1
    00404114sbfm x0, x0, 0, 31
    00404118ubfm x0, x0, 62, 61
    0040411cadd x1, sp, 32
    00404120ldr w1, [x1+x0]
    00404124ldr w0, [sp+124]
    00404128add w3, w0, 1
    0040412cldr w0, [sp+80]
    00404130sub w2, w1, w0
    00404134sbfm x0, x3, 0, 31
    00404138ubfm x0, x0, 62, 61
    0040413cadd x1, sp, 32
    00404140str w2, [x1+x0]
    00404144
    00404144loc_404144:
    00404144ldr w0, [sp+124]
    00404148add w0, w0, 1
    0040414cstr w0, [sp+124]
    00404150
    00404150loc_404150:
    00404150ldr w0, [sp+124]
    00404154subs wzr, w0, 8
    00404158b.le 0x403ff0
    0040415cldr w0, [sp+68]
    00404160sbfm w0, w0, 31, 31
    00404164str w0, [sp+92]
    00404168ldr w1, [sp+68]
    0040416cldr w0, [sp+92]
    00404170and w0, w1, w0
    00404174sbfm w0, w0, 25, 31
    00404178sub w0, wzr, w0
    0040417cstr w0, [sp+88]
    00404180ldr w1, [sp+68]
    00404184ldr w0, [sp+88]
    00404188ubfm w0, w0, 7, 6
    0040418cadd w0, w1, w0
    00404190str w0, [sp+68]
    00404194ldr w1, [sp+32]
    00404198ldr w2, [sp+88]
    0040419cmovn w0, 18
    004041a0madd w0, w2, w0, wzr
    004041a4add w0, w1, w0
    004041a8str w0, [sp+32]
    004041acldr w0, [sp+120]
    004041b0add w0, w0, 1
    004041b4str w0, [sp+120]
    004041b8
    004041b8loc_4041b8:
    004041b8ldr w0, [sp+120]
    004041bcsubs wzr, w0, 1
    004041c0b.le 0x403fe8
    004041c4ldr w0, [sp+32]
    004041c8sbfm w0, w0, 31, 31
    004041ccstr w0, [sp+112]
    004041d0ldr w1, [sp+32]
    004041d4ldr w0, [sp+112]
    004041d8and w0, w1, w0
    004041dcsbfm w0, w0, 26, 31
    004041e0sub w0, wzr, w0
    004041e4str w0, [sp+108]
    004041e8ldr w1, [sp+32]
    004041ecldr w0, [sp+108]
    004041f0ubfm w0, w0, 6, 5
    004041f4add w0, w1, w0
    004041f8str w0, [sp+32]
    004041fcldr w1, [sp+36]
    00404200ldr w0, [sp+108]
    00404204sub w0, w1, w0
    00404208str w0, [sp+36]
    0040420cstr wzr, [sp+120]
    00404210b 0x40436c
    00404214
    00404214loc_404214:
    00404214str wzr, [sp+124]
    00404218b 0x404324
    0040421c
    0040421cloc_40421c:
    0040421cldr w0, [sp+124]
    00404220and w0, w0, 1
    00404224subs wzr, w0, 0
    00404228b.eq 0x4042a4
    0040422cldrsw x0, [sp+124]
    00404230ubfm x0, x0, 62, 61
    00404234add x1, sp, 32
    00404238ldr w0, [x1+x0]
    0040423csbfm w0, w0, 25, 31
    00404240str w0, [sp+96]
    00404244ldrsw x0, [sp+124]
    00404248ubfm x0, x0, 62, 61
    0040424cadd x1, sp, 32
    00404250ldr w0, [x1+x0]
    00404254and w2, w0, 0x1ffffff
    00404258ldrsw x0, [sp+124]
    0040425cubfm x0, x0, 62, 61
    00404260add x1, sp, 32
    00404264str w2, [x1+x0]
    00404268ldr w0, [sp+124]
    0040426cadd w0, w0, 1
    00404270sbfm x0, x0, 0, 31
    00404274ubfm x0, x0, 62, 61
    00404278add x1, sp, 32
    0040427cldr w1, [x1+x0]
    00404280ldr w0, [sp+124]
    00404284add w3, w0, 1
    00404288ldr w0, [sp+96]
    0040428cadd w2, w1, w0
    00404290sbfm x0, x3, 0, 31
    00404294ubfm x0, x0, 62, 61
    00404298add x1, sp, 32
    0040429cstr w2, [x1+x0]
    004042a0b 0x404318
    004042a4
    004042a4loc_4042a4:
    004042a4ldrsw x0, [sp+124]
    004042a8ubfm x0, x0, 62, 61
    004042acadd x1, sp, 32
    004042b0ldr w0, [x1+x0]
    004042b4sbfm w0, w0, 26, 31
    004042b8str w0, [sp+100]
    004042bcldrsw x0, [sp+124]
    004042c0ubfm x0, x0, 62, 61
    004042c4add x1, sp, 32
    004042c8ldr w0, [x1+x0]
    004042ccand w2, w0, 0x3ffffff
    004042d0ldrsw x0, [sp+124]
    004042d4ubfm x0, x0, 62, 61
    004042d8add x1, sp, 32
    004042dcstr w2, [x1+x0]
    004042e0ldr w0, [sp+124]
    004042e4add w0, w0, 1
    004042e8sbfm x0, x0, 0, 31
    004042ecubfm x0, x0, 62, 61
    004042f0add x1, sp, 32
    004042f4ldr w1, [x1+x0]
    004042f8ldr w0, [sp+124]
    004042fcadd w3, w0, 1
    00404300ldr w0, [sp+100]
    00404304add w2, w1, w0
    00404308sbfm x0, x3, 0, 31
    0040430cubfm x0, x0, 62, 61
    00404310add x1, sp, 32
    00404314str w2, [x1+x0]
    00404318
    00404318loc_404318:
    00404318ldr w0, [sp+124]
    0040431cadd w0, w0, 1
    00404320str w0, [sp+124]
    00404324
    00404324loc_404324:
    00404324ldr w0, [sp+124]
    00404328subs wzr, w0, 8
    0040432cb.le 0x40421c
    00404330ldr w0, [sp+68]
    00404334sbfm w0, w0, 25, 31
    00404338str w0, [sp+104]
    0040433cldr w0, [sp+68]
    00404340and w0, w0, 0x1ffffff
    00404344str w0, [sp+68]
    00404348ldr w1, [sp+32]
    0040434cldr w2, [sp+104]
    00404350movz w0, 19
    00404354madd w0, w2, w0, wzr
    00404358add w0, w1, w0
    0040435cstr w0, [sp+32]
    00404360ldr w0, [sp+120]
    00404364add w0, w0, 1
    00404368str w0, [sp+120]
    0040436c
    0040436cloc_40436c:
    0040436cldr w0, [sp+120]
    00404370subs wzr, w0, 1
    00404374b.le 0x404214
    00404378ldr w0, [sp+32]
    0040437cmovz w1, 65517
    00404380movk w1, 0x3ff0000
    00404384bl s32_gte
    00404388str w0, [sp+116]
    0040438cmovz w0, 1
    00404390str w0, [sp+124]
    00404394b 0x404408
    00404398
    00404398loc_404398:
    00404398ldr w0, [sp+124]
    0040439cand w0, w0, 1
    004043a0subs wzr, w0, 0
    004043a4b.eq 0x4043d4
    004043a8ldrsw x0, [sp+124]
    004043acubfm x0, x0, 62, 61
    004043b0add x1, sp, 32
    004043b4ldr w0, [x1+x0]
    004043b8movn w1, 0xfe000000
    004043bcbl s32_eq
    004043c0mov w1, w0
    004043c4ldr w0, [sp+116]
    004043c8and w0, w0, w1
    004043ccstr w0, [sp+116]
    004043d0b 0x4043fc
    004043d4
    004043d4loc_4043d4:
    004043d4ldrsw x0, [sp+124]
    004043d8ubfm x0, x0, 62, 61
    004043dcadd x1, sp, 32
    004043e0ldr w0, [x1+x0]
    004043e4movn w1, 0xfc000000
    004043e8bl s32_eq
    004043ecmov w1, w0
    004043f0ldr w0, [sp+116]
    004043f4and w0, w0, w1
    004043f8str w0, [sp+116]
    004043fc
    004043fcloc_4043fc:
    004043fcldr w0, [sp+124]
    00404400add w0, w0, 1
    00404404str w0, [sp+124]
    00404408
    00404408loc_404408:
    00404408ldr w0, [sp+124]
    0040440csubs wzr, w0, 9
    00404410b.le 0x404398
    00404414ldr w1, [sp+32]
    00404418ldr w2, [sp+116]
    0040441cmovz w0, 65517
    00404420movk w0, 0x3ff0000
    00404424and w0, w2, w0
    00404428sub w0, w1, w0
    0040442cstr w0, [sp+32]
    00404430movz w0, 1
    00404434str w0, [sp+124]
    00404438b 0x4044b4
    0040443c
    0040443cloc_40443c:
    0040443cldr w0, [sp+124]
    00404440and w0, w0, 1
    00404444subs wzr, w0, 0
    00404448b.eq 0x40447c
    0040444cldrsw x0, [sp+124]
    00404450ubfm x0, x0, 62, 61
    00404454add x1, sp, 32
    00404458ldr w1, [x1+x0]
    0040445cldr w0, [sp+116]
    00404460and w0, w0, 0x1ffffff
    00404464sub w2, w1, w0
    00404468ldrsw x0, [sp+124]
    0040446cubfm x0, x0, 62, 61
    00404470add x1, sp, 32
    00404474str w2, [x1+x0]
    00404478b 0x4044a8
    0040447c
    0040447cloc_40447c:
    0040447cldrsw x0, [sp+124]
    00404480ubfm x0, x0, 62, 61
    00404484add x1, sp, 32
    00404488ldr w1, [x1+x0]
    0040448cldr w0, [sp+116]
    00404490and w0, w0, 0x3ffffff
    00404494sub w2, w1, w0
    00404498ldrsw x0, [sp+124]
    0040449cubfm x0, x0, 62, 61
    004044a0add x1, sp, 32
    004044a4str w2, [x1+x0]
    004044a8
    004044a8loc_4044a8:
    004044a8ldr w0, [sp+124]
    004044acadd w0, w0, 1
    004044b0str w0, [sp+124]
    004044b4
    004044b4loc_4044b4:
    004044b4ldr w0, [sp+124]
    004044b8subs wzr, w0, 9
    004044bcb.le 0x40443c
    004044c0ldr w0, [sp+36]
    004044c4ubfm w0, w0, 30, 29
    004044c8str w0, [sp+36]
    004044ccldr w0, [sp+40]
    004044d0ubfm w0, w0, 29, 28
    004044d4str w0, [sp+40]
    004044d8ldr w0, [sp+44]
    004044dcubfm w0, w0, 27, 26
    004044e0str w0, [sp+44]
    004044e4ldr w0, [sp+48]
    004044e8ubfm w0, w0, 26, 25
    004044ecstr w0, [sp+48]
    004044f0ldr w0, [sp+56]
    004044f4ubfm w0, w0, 31, 30
    004044f8str w0, [sp+56]
    004044fcldr w0, [sp+60]
    00404500ubfm w0, w0, 29, 28
    00404504str w0, [sp+60]
    00404508ldr w0, [sp+64]
    0040450cubfm w0, w0, 28, 27
    00404510str w0, [sp+64]
    00404514ldr w0, [sp+68]
    00404518ubfm w0, w0, 26, 25
    0040451cstr w0, [sp+68]
    00404520ldr x0, [sp+24]
    00404524strb wzr, [x0]
    00404528ldr x0, [sp+24]
    0040452cadd x0, x0, 16
    00404530strb wzr, [x0]
    00404534ldr x0, [sp+24]
    00404538ldrb w0, [x0]
    0040453csbfm w1, w0, 0, 7
    00404540ldr w0, [sp+32]
    00404544sbfm w0, w0, 0, 7
    00404548orr w0, w1, w0
    0040454csbfm w0, w0, 0, 7
    00404550and w1, w0, 255
    00404554ldr x0, [sp+24]
    00404558strb w1, [x0]
    0040455cldr w0, [sp+32]
    00404560sbfm w1, w0, 8, 31
    00404564ldr x0, [sp+24]
    00404568add x0, x0, 1
    0040456cand w1, w1, 255
    00404570strb w1, [x0]
    00404574ldr w0, [sp+32]
    00404578sbfm w1, w0, 16, 31
    0040457cldr x0, [sp+24]
    00404580add x0, x0, 2
    00404584and w1, w1, 255
    00404588strb w1, [x0]
    0040458cldr w0, [sp+32]
    00404590ubfm w1, w0, 24, 31
    00404594ldr x0, [sp+24]
    00404598add x0, x0, 3
    0040459cand w1, w1, 255
    004045a0strb w1, [x0]
    004045a4ldr x0, [sp+24]
    004045a8add x0, x0, 3
    004045acldrb w0, [x0]
    004045b0sbfm w1, w0, 0, 7
    004045b4ldr w0, [sp+36]
    004045b8sbfm w0, w0, 0, 7
    004045bcorr w0, w1, w0
    004045c0sbfm w1, w0, 0, 7
    004045c4ldr x0, [sp+24]
    004045c8add x0, x0, 3
    004045ccand w1, w1, 255
    004045d0strb w1, [x0]
    004045d4ldr w0, [sp+36]
    004045d8sbfm w1, w0, 8, 31
    004045dcldr x0, [sp+24]
    004045e0add x0, x0, 4
    004045e4and w1, w1, 255
    004045e8strb w1, [x0]
    004045ecldr w0, [sp+36]
    004045f0sbfm w1, w0, 16, 31
    004045f4ldr x0, [sp+24]
    004045f8add x0, x0, 5
    004045fcand w1, w1, 255
    00404600strb w1, [x0]
    00404604ldr w0, [sp+36]
    00404608ubfm w1, w0, 24, 31
    0040460cldr x0, [sp+24]
    00404610add x0, x0, 6
    00404614and w1, w1, 255
    00404618strb w1, [x0]
    0040461cldr x0, [sp+24]
    00404620add x0, x0, 6
    00404624ldrb w0, [x0]
    00404628sbfm w1, w0, 0, 7
    0040462cldr w0, [sp+40]
    00404630sbfm w0, w0, 0, 7
    00404634orr w0, w1, w0
    00404638sbfm w1, w0, 0, 7
    0040463cldr x0, [sp+24]
    00404640add x0, x0, 6
    00404644and w1, w1, 255
    00404648strb w1, [x0]
    0040464cldr w0, [sp+40]
    00404650sbfm w1, w0, 8, 31
    00404654ldr x0, [sp+24]
    00404658add x0, x0, 7
    0040465cand w1, w1, 255
    00404660strb w1, [x0]
    00404664ldr w0, [sp+40]
    00404668sbfm w1, w0, 16, 31
    0040466cldr x0, [sp+24]
    00404670add x0, x0, 8
    00404674and w1, w1, 255
    00404678strb w1, [x0]
    0040467cldr w0, [sp+40]
    00404680ubfm w1, w0, 24, 31
    00404684ldr x0, [sp+24]
    00404688add x0, x0, 9
    0040468cand w1, w1, 255
    00404690strb w1, [x0]
    00404694ldr x0, [sp+24]
    00404698add x0, x0, 9
    0040469cldrb w0, [x0]
    004046a0sbfm w1, w0, 0, 7
    004046a4ldr w0, [sp+44]
    004046a8sbfm w0, w0, 0, 7
    004046acorr w0, w1, w0
    004046b0sbfm w1, w0, 0, 7
    004046b4ldr x0, [sp+24]
    004046b8add x0, x0, 9
    004046bcand w1, w1, 255
    004046c0strb w1, [x0]
    004046c4ldr w0, [sp+44]
    004046c8sbfm w1, w0, 8, 31
    004046ccldr x0, [sp+24]
    004046d0add x0, x0, 10
    004046d4and w1, w1, 255
    004046d8strb w1, [x0]
    004046dcldr w0, [sp+44]
    004046e0sbfm w1, w0, 16, 31
    004046e4ldr x0, [sp+24]
    004046e8add x0, x0, 11
    004046ecand w1, w1, 255
    004046f0strb w1, [x0]
    004046f4ldr w0, [sp+44]
    004046f8ubfm w1, w0, 24, 31
    004046fcldr x0, [sp+24]
    00404700add x0, x0, 12
    00404704and w1, w1, 255
    00404708strb w1, [x0]
    0040470cldr x0, [sp+24]
    00404710add x0, x0, 12
    00404714ldrb w0, [x0]
    00404718sbfm w1, w0, 0, 7
    0040471cldr w0, [sp+48]
    00404720sbfm w0, w0, 0, 7
    00404724orr w0, w1, w0
    00404728sbfm w1, w0, 0, 7
    0040472cldr x0, [sp+24]
    00404730add x0, x0, 12
    00404734and w1, w1, 255
    00404738strb w1, [x0]
    0040473cldr w0, [sp+48]
    00404740sbfm w1, w0, 8, 31
    00404744ldr x0, [sp+24]
    00404748add x0, x0, 13
    0040474cand w1, w1, 255
    00404750strb w1, [x0]
    00404754ldr w0, [sp+48]
    00404758sbfm w1, w0, 16, 31
    0040475cldr x0, [sp+24]
    00404760add x0, x0, 14
    00404764and w1, w1, 255
    00404768strb w1, [x0]
    0040476cldr w0, [sp+48]
    00404770ubfm w1, w0, 24, 31
    00404774ldr x0, [sp+24]
    00404778add x0, x0, 15
    0040477cand w1, w1, 255
    00404780strb w1, [x0]
    00404784ldr x0, [sp+24]
    00404788add x0, x0, 16
    0040478cldrb w0, [x0]
    00404790sbfm w1, w0, 0, 7
    00404794ldr w0, [sp+52]
    00404798sbfm w0, w0, 0, 7
    0040479corr w0, w1, w0
    004047a0sbfm w1, w0, 0, 7
    004047a4ldr x0, [sp+24]
    004047a8add x0, x0, 16
    004047acand w1, w1, 255
    004047b0strb w1, [x0]
    004047b4ldr w0, [sp+52]
    004047b8sbfm w1, w0, 8, 31
    004047bcldr x0, [sp+24]
    004047c0add x0, x0, 17
    004047c4and w1, w1, 255
    004047c8strb w1, [x0]
    004047ccldr w0, [sp+52]
    004047d0sbfm w1, w0, 16, 31
    004047d4ldr x0, [sp+24]
    004047d8add x0, x0, 18
    004047dcand w1, w1, 255
    004047e0strb w1, [x0]
    004047e4ldr w0, [sp+52]
    004047e8ubfm w1, w0, 24, 31
    004047ecldr x0, [sp+24]
    004047f0add x0, x0, 19
    004047f4and w1, w1, 255
    004047f8strb w1, [x0]
    004047fcldr x0, [sp+24]
    00404800add x0, x0, 19
    00404804ldrb w0, [x0]
    00404808sbfm w1, w0, 0, 7
    0040480cldr w0, [sp+56]
    00404810sbfm w0, w0, 0, 7
    00404814orr w0, w1, w0
    00404818sbfm w1, w0, 0, 7
    0040481cldr x0, [sp+24]
    00404820add x0, x0, 19
    00404824and w1, w1, 255
    00404828strb w1, [x0]
    0040482cldr w0, [sp+56]
    00404830sbfm w1, w0, 8, 31
    00404834ldr x0, [sp+24]
    00404838add x0, x0, 20
    0040483cand w1, w1, 255
    00404840strb w1, [x0]
    00404844ldr w0, [sp+56]
    00404848sbfm w1, w0, 16, 31
    0040484cldr x0, [sp+24]
    00404850add x0, x0, 21
    00404854and w1, w1, 255
    00404858strb w1, [x0]
    0040485cldr w0, [sp+56]
    00404860ubfm w1, w0, 24, 31
    00404864ldr x0, [sp+24]
    00404868add x0, x0, 22
    0040486cand w1, w1, 255
    00404870strb w1, [x0]
    00404874ldr x0, [sp+24]
    00404878add x0, x0, 22
    0040487cldrb w0, [x0]
    00404880sbfm w1, w0, 0, 7
    00404884ldr w0, [sp+60]
    00404888sbfm w0, w0, 0, 7
    0040488corr w0, w1, w0
    00404890sbfm w1, w0, 0, 7
    00404894ldr x0, [sp+24]
    00404898add x0, x0, 22
    0040489cand w1, w1, 255
    004048a0strb w1, [x0]
    004048a4ldr w0, [sp+60]
    004048a8sbfm w1, w0, 8, 31
    004048acldr x0, [sp+24]
    004048b0add x0, x0, 23
    004048b4and w1, w1, 255
    004048b8strb w1, [x0]
    004048bcldr w0, [sp+60]
    004048c0sbfm w1, w0, 16, 31
    004048c4ldr x0, [sp+24]
    004048c8add x0, x0, 24
    004048ccand w1, w1, 255
    004048d0strb w1, [x0]
    004048d4ldr w0, [sp+60]
    004048d8ubfm w1, w0, 24, 31
    004048dcldr x0, [sp+24]
    004048e0add x0, x0, 25
    004048e4and w1, w1, 255
    004048e8strb w1, [x0]
    004048ecldr x0, [sp+24]
    004048f0add x0, x0, 25
    004048f4ldrb w0, [x0]
    004048f8sbfm w1, w0, 0, 7
    004048fcldr w0, [sp+64]
    00404900sbfm w0, w0, 0, 7
    00404904orr w0, w1, w0
    00404908sbfm w1, w0, 0, 7
    0040490cldr x0, [sp+24]
    00404910add x0, x0, 25
    00404914and w1, w1, 255
    00404918strb w1, [x0]
    0040491cldr w0, [sp+64]
    00404920sbfm w1, w0, 8, 31
    00404924ldr x0, [sp+24]
    00404928add x0, x0, 26
    0040492cand w1, w1, 255
    00404930strb w1, [x0]
    00404934ldr w0, [sp+64]
    00404938sbfm w1, w0, 16, 31
    0040493cldr x0, [sp+24]
    00404940add x0, x0, 27
    00404944and w1, w1, 255
    00404948strb w1, [x0]
    0040494cldr w0, [sp+64]
    00404950ubfm w1, w0, 24, 31
    00404954ldr x0, [sp+24]
    00404958add x0, x0, 28
    0040495cand w1, w1, 255
    00404960strb w1, [x0]
    00404964ldr x0, [sp+24]
    00404968add x0, x0, 28
    0040496cldrb w0, [x0]
    00404970sbfm w1, w0, 0, 7
    00404974ldr w0, [sp+68]
    00404978sbfm w0, w0, 0, 7
    0040497corr w0, w1, w0
    00404980sbfm w1, w0, 0, 7
    00404984ldr x0, [sp+24]
    00404988add x0, x0, 28
    0040498cand w1, w1, 255
    00404990strb w1, [x0]
    00404994ldr w0, [sp+68]
    00404998sbfm w1, w0, 8, 31
    0040499cldr x0, [sp+24]
    004049a0add x0, x0, 29
    004049a4and w1, w1, 255
    004049a8strb w1, [x0]
    004049acldr w0, [sp+68]
    004049b0sbfm w1, w0, 16, 31
    004049b4ldr x0, [sp+24]
    004049b8add x0, x0, 30
    004049bcand w1, w1, 255
    004049c0strb w1, [x0]
    004049c4ldr w0, [sp+68]
    004049c8ubfm w1, w0, 24, 31
    004049ccldr x0, [sp+24]
    004049d0add x0, x0, 31
    004049d4and w1, w1, 255
    004049d8strb w1, [x0]
    004049dchint
    004049e0ldp x29, x30, [sp], 128
    004049e4ret x30
    00403f88
    004049e8
    004049e8fmonty:
    004049e8sub sp, sp, 1312
    004049ecstp x29, x30, [sp]
    004049f0add x29, sp, 0
    004049f4str x0, [sp+72]
    004049f8str x1, [sp+64]
    004049fcstr x2, [sp+56]
    00404a00str x3, [sp+48]
    00404a04str x4, [sp+40]
    00404a08str x5, [sp+32]
    00404a0cstr x6, [sp+24]
    00404a10str x7, [sp+16]
    00404a14add x0, sp, 1232
    00404a18movz x2, 80
    00404a1cldr x1, [sp+40]
    00404a20bl memcpy@plt
    00404a24ldr x1, [sp+32]
    00404a28ldr x0, [sp+40]
    00404a2cbl fsum
    00404a30add x0, sp, 1232
    00404a34mov x1, x0
    00404a38ldr x0, [sp+32]
    00404a3cbl fdifference
    00404a40add x0, sp, 1152
    00404a44movz x2, 80
    00404a48ldr x1, [sp+24]
    00404a4cbl memcpy@plt
    00404a50ldr x1, [sp+16]
    00404a54ldr x0, [sp+24]
    00404a58bl fsum
    00404a5cadd x0, sp, 1152
    00404a60mov x1, x0
    00404a64ldr x0, [sp+16]
    00404a68bl fdifference
    00404a6cadd x0, sp, 544
    00404a70ldr x2, [sp+32]
    00404a74ldr x1, [sp+24]
    00404a78bl fproduct
    00404a7cadd x0, sp, 392
    00404a80ldr x2, [sp+16]
    00404a84ldr x1, [sp+40]
    00404a88bl fproduct
    00404a8cadd x0, sp, 544
    00404a90bl freduce_degree
    00404a94add x0, sp, 544
    00404a98bl freduce_coefficients
    00404a9cadd x0, sp, 392
    00404aa0bl freduce_degree
    00404aa4add x0, sp, 392
    00404aa8bl freduce_coefficients
    00404aacadd x0, sp, 1152
    00404ab0add x1, sp, 544
    00404ab4ldp q0, q1, [x1]
    00404ab8stp q0, q1, [x0]
    00404abcldp q0, q1, [x1+32]
    00404ac0stp q0, q1, [x0+32]
    00404ac4ldr q0, [x1+64]
    00404ac8str q0, [x0+64]
    00404accadd x1, sp, 392
    00404ad0add x0, sp, 544
    00404ad4bl fsum
    00404ad8add x1, sp, 1152
    00404adcadd x0, sp, 392
    00404ae0bl fdifference
    00404ae4add x1, sp, 544
    00404ae8add x0, sp, 88
    00404aecbl fsquare
    00404af0add x1, sp, 392
    00404af4add x0, sp, 240
    00404af8bl fsquare
    00404afcadd x1, sp, 240
    00404b00add x0, sp, 392
    00404b04ldr x2, [sp+1312]
    00404b08bl fproduct
    00404b0cadd x0, sp, 392
    00404b10bl freduce_degree
    00404b14add x0, sp, 392
    00404b18bl freduce_coefficients
    00404b1cadd x0, sp, 88
    00404b20movz x2, 80
    00404b24mov x1, x0
    00404b28ldr x0, [sp+56]
    00404b2cbl memcpy@plt
    00404b30add x0, sp, 392
    00404b34movz x2, 80
    00404b38mov x1, x0
    00404b3cldr x0, [sp+48]
    00404b40bl memcpy@plt
    00404b44add x0, sp, 848
    00404b48ldr x1, [sp+40]
    00404b4cbl fsquare
    00404b50add x0, sp, 696
    00404b54ldr x1, [sp+32]
    00404b58bl fsquare
    00404b5cadd x1, sp, 696
    00404b60add x0, sp, 848
    00404b64mov x2, x1
    00404b68mov x1, x0
    00404b6cldr x0, [sp+72]
    00404b70bl fproduct
    00404b74ldr x0, [sp+72]
    00404b78bl freduce_degree
    00404b7cldr x0, [sp+72]
    00404b80bl freduce_coefficients
    00404b84add x1, sp, 848
    00404b88add x0, sp, 696
    00404b8cbl fdifference
    00404b90add x0, sp, 1000
    00404b94add x0, x0, 80
    00404b98movz x2, 72
    00404b9cmovz w1, 0
    00404ba0bl memset@plt
    00404ba4add x1, sp, 696
    00404ba8add x0, sp, 1000
    00404bacmovz x2, 56129
    00404bb0movk x2, 0x10000
    00404bb4bl fscalar_product
    00404bb8add x0, sp, 1000
    00404bbcbl freduce_coefficients
    00404bc0add x1, sp, 848
    00404bc4add x0, sp, 1000
    00404bc8bl fsum
    00404bccadd x1, sp, 1000
    00404bd0add x0, sp, 696
    00404bd4mov x2, x1
    00404bd8mov x1, x0
    00404bdcldr x0, [sp+64]
    00404be0bl fproduct
    00404be4ldr x0, [sp+64]
    00404be8bl freduce_degree
    00404becldr x0, [sp+64]
    00404bf0bl freduce_coefficients
    00404bf4hint
    00404bf8ldp x29, x30, [sp]
    00404bfcadd sp, sp, 1312
    00404c00ret x30
    004049e8
    00404c04
    00404c04swap_conditional:
    00404c04sub sp, sp, 48
    00404c08str x0, [sp+24]
    00404c0cstr x1, [sp+16]
    00404c10str x2, [sp+8]
    00404c14ldr x0, [sp+8]
    00404c18sub w0, wzr, w0
    00404c1cstr w0, [sp+40]
    00404c20str wzr, [sp+44]
    00404c24b 0x404ce0
    00404c28
    00404c28loc_404c28:
    00404c28ldr w0, [sp+44]
    00404c2cubfm x0, x0, 61, 60
    00404c30ldr x1, [sp+24]
    00404c34add x0, x1, x0
    00404c38ldr x0, [x0]
    00404c3cmov w2, w0
    00404c40ldr w0, [sp+44]
    00404c44ubfm x0, x0, 61, 60
    00404c48ldr x1, [sp+16]
    00404c4cadd x0, x1, x0
    00404c50ldr x0, [x0]
    00404c54eor w0, w2, w0
    00404c58ldr w1, [sp+40]
    00404c5cand w0, w1, w0
    00404c60str w0, [sp+36]
    00404c64ldr w0, [sp+44]
    00404c68ubfm x0, x0, 61, 60
    00404c6cldr x1, [sp+24]
    00404c70add x0, x1, x0
    00404c74ldr x0, [x0]
    00404c78mov w1, w0
    00404c7cldr w0, [sp+36]
    00404c80eor w2, w1, w0
    00404c84ldr w0, [sp+44]
    00404c88ubfm x0, x0, 61, 60
    00404c8cldr x1, [sp+24]
    00404c90add x0, x1, x0
    00404c94sbfm x1, x2, 0, 31
    00404c98str x1, [x0]
    00404c9cldr w0, [sp+44]
    00404ca0ubfm x0, x0, 61, 60
    00404ca4ldr x1, [sp+16]
    00404ca8add x0, x1, x0
    00404cacldr x0, [x0]
    00404cb0mov w1, w0
    00404cb4ldr w0, [sp+36]
    00404cb8eor w2, w1, w0
    00404cbcldr w0, [sp+44]
    00404cc0ubfm x0, x0, 61, 60
    00404cc4ldr x1, [sp+16]
    00404cc8add x0, x1, x0
    00404cccsbfm x1, x2, 0, 31
    00404cd0str x1, [x0]
    00404cd4ldr w0, [sp+44]
    00404cd8add w0, w0, 1
    00404cdcstr w0, [sp+44]
    00404ce0
    00404ce0loc_404ce0:
    00404ce0ldr w0, [sp+44]
    00404ce4subs wzr, w0, 9
    00404ce8b.ls 0x404c28
    00404cechint
    00404cf0hint
    00404cf4add sp, sp, 48
    00404cf8ret x30
    00404c04
    00404cfc
    00404cfccmult:
    00404cfcsub sp, sp, 1376
    00404d00stp x29, x30, [sp+16]
    00404d04add x29, sp, 16
    00404d08str x0, [sp+56]
    00404d0cstr x1, [sp+48]
    00404d10str x2, [sp+40]
    00404d14str x3, [sp+32]
    00404d18add x0, sp, 1128
    00404d1cstr x0, [sp+1368]
    00404d20add x0, sp, 976
    00404d24str x0, [sp+1360]
    00404d28add x0, sp, 824
    00404d2cstr x0, [sp+1352]
    00404d30add x0, sp, 672
    00404d34str x0, [sp+1344]
    00404d38add x0, sp, 520
    00404d3cstr x0, [sp+1336]
    00404d40add x0, sp, 368
    00404d44str x0, [sp+1328]
    00404d48add x0, sp, 216
    00404d4cstr x0, [sp+1320]
    00404d50add x0, sp, 64
    00404d54str x0, [sp+1312]
    00404d58str wzr, [sp+1308]
    00404d5cb 0x404dec
    00404d60
    00404d60loc_404d60:
    00404d60ldrsw x0, [sp+1308]
    00404d64ubfm x0, x0, 61, 60
    00404d68add x1, sp, 1128
    00404d6cstr xzr, [x1+x0]
    00404d70ldrsw x0, [sp+1308]
    00404d74ubfm x0, x0, 61, 60
    00404d78add x1, sp, 976
    00404d7cstr xzr, [x1+x0]
    00404d80ldrsw x0, [sp+1308]
    00404d84ubfm x0, x0, 61, 60
    00404d88add x1, sp, 824
    00404d8cstr xzr, [x1+x0]
    00404d90ldrsw x0, [sp+1308]
    00404d94ubfm x0, x0, 61, 60
    00404d98add x1, sp, 672
    00404d9cstr xzr, [x1+x0]
    00404da0ldrsw x0, [sp+1308]
    00404da4ubfm x0, x0, 61, 60
    00404da8add x1, sp, 520
    00404dacstr xzr, [x1+x0]
    00404db0ldrsw x0, [sp+1308]
    00404db4ubfm x0, x0, 61, 60
    00404db8add x1, sp, 368
    00404dbcstr xzr, [x1+x0]
    00404dc0ldrsw x0, [sp+1308]
    00404dc4ubfm x0, x0, 61, 60
    00404dc8add x1, sp, 216
    00404dccstr xzr, [x1+x0]
    00404dd0ldrsw x0, [sp+1308]
    00404dd4ubfm x0, x0, 61, 60
    00404dd8add x1, sp, 64
    00404ddcstr xzr, [x1+x0]
    00404de0ldr w0, [sp+1308]
    00404de4add w0, w0, 1
    00404de8str w0, [sp+1308]
    00404dec
    00404decloc_404dec:
    00404decldr w0, [sp+1308]
    00404df0subs wzr, w0, 18
    00404df4b.le 0x404d60
    00404df8movz x0, 1
    00404dfcstr x0, [sp+976]
    00404e00movz x0, 1
    00404e04str x0, [sp+824]
    00404e08movz x0, 1
    00404e0cstr x0, [sp+368]
    00404e10movz x0, 1
    00404e14str x0, [sp+64]
    00404e18movz x2, 80
    00404e1cldr x1, [sp+32]
    00404e20ldr x0, [sp+1368]
    00404e24bl memcpy@plt
    00404e28str wzr, [sp+1304]
    00404e2cb 0x404f68
    00404e30
    00404e30loc_404e30:
    00404e30movz w1, 31
    00404e34ldr w0, [sp+1304]
    00404e38sub w0, w1, w0
    00404e3cmov w0, w0
    00404e40ldr x1, [sp+40]
    00404e44add x0, x1, x0
    00404e48ldrb w0, [x0]
    00404e4cstrb w0, [sp+1299]
    00404e50str wzr, [sp+1300]
    00404e54b 0x404f50
    00404e58
    00404e58loc_404e58:
    00404e58ldrb w0, [sp+1299]
    00404e5cubfm w0, w0, 7, 31
    00404e60and w0, w0, 255
    00404e64and x0, x0, 255
    00404e68str x0, [sp+1288]
    00404e6cldr x2, [sp+1288]
    00404e70ldr x1, [sp+1368]
    00404e74ldr x0, [sp+1352]
    00404e78bl swap_conditional
    00404e7cldr x2, [sp+1288]
    00404e80ldr x1, [sp+1360]
    00404e84ldr x0, [sp+1344]
    00404e88bl swap_conditional
    00404e8cldr x0, [sp+32]
    00404e90str x0, [sp]
    00404e94ldr x7, [sp+1360]
    00404e98ldr x6, [sp+1368]
    00404e9cldr x5, [sp+1344]
    00404ea0ldr x4, [sp+1352]
    00404ea4ldr x3, [sp+1328]
    00404ea8ldr x2, [sp+1336]
    00404eacldr x1, [sp+1312]
    00404eb0ldr x0, [sp+1320]
    00404eb4bl fmonty
    00404eb8ldr x2, [sp+1288]
    00404ebcldr x1, [sp+1336]
    00404ec0ldr x0, [sp+1320]
    00404ec4bl swap_conditional
    00404ec8ldr x2, [sp+1288]
    00404eccldr x1, [sp+1328]
    00404ed0ldr x0, [sp+1312]
    00404ed4bl swap_conditional
    00404ed8ldr x0, [sp+1352]
    00404edcstr x0, [sp+1280]
    00404ee0ldr x0, [sp+1320]
    00404ee4str x0, [sp+1352]
    00404ee8ldr x0, [sp+1280]
    00404eecstr x0, [sp+1320]
    00404ef0ldr x0, [sp+1344]
    00404ef4str x0, [sp+1280]
    00404ef8ldr x0, [sp+1312]
    00404efcstr x0, [sp+1344]
    00404f00ldr x0, [sp+1280]
    00404f04str x0, [sp+1312]
    00404f08ldr x0, [sp+1368]
    00404f0cstr x0, [sp+1280]
    00404f10ldr x0, [sp+1336]
    00404f14str x0, [sp+1368]
    00404f18ldr x0, [sp+1280]
    00404f1cstr x0, [sp+1336]
    00404f20ldr x0, [sp+1360]
    00404f24str x0, [sp+1280]
    00404f28ldr x0, [sp+1328]
    00404f2cstr x0, [sp+1360]
    00404f30ldr x0, [sp+1280]
    00404f34str x0, [sp+1328]
    00404f38ldrb w0, [sp+1299]
    00404f3cubfm w0, w0, 31, 6
    00404f40strb w0, [sp+1299]
    00404f44ldr w0, [sp+1300]
    00404f48add w0, w0, 1
    00404f4cstr w0, [sp+1300]
    00404f50
    00404f50loc_404f50:
    00404f50ldr w0, [sp+1300]
    00404f54subs wzr, w0, 7
    00404f58b.ls 0x404e58
    00404f5cldr w0, [sp+1304]
    00404f60add w0, w0, 1
    00404f64str w0, [sp+1304]
    00404f68
    00404f68loc_404f68:
    00404f68ldr w0, [sp+1304]
    00404f6csubs wzr, w0, 31
    00404f70b.ls 0x404e30
    00404f74movz x2, 80
    00404f78ldr x1, [sp+1352]
    00404f7cldr x0, [sp+56]
    00404f80bl memcpy@plt
    00404f84movz x2, 80
    00404f88ldr x1, [sp+1344]
    00404f8cldr x0, [sp+48]
    00404f90bl memcpy@plt
    00404f94hint
    00404f98ldp x29, x30, [sp+16]
    00404f9cadd sp, sp, 1376
    00404fa0ret x30
    00404cfc
    00404fa4
    00404fa4crecip:
    00404fa4sub sp, sp, 848
    00404fa8stp x29, x30, [sp]
    00404facadd x29, sp, 0
    00404fb0str x0, [sp+24]
    00404fb4str x1, [sp+16]
    00404fb8add x0, sp, 760
    00404fbcldr x1, [sp+16]
    00404fc0bl fsquare
    00404fc4add x1, sp, 760
    00404fc8add x0, sp, 40
    00404fccbl fsquare
    00404fd0add x1, sp, 40
    00404fd4add x0, sp, 120
    00404fd8bl fsquare
    00404fdcadd x1, sp, 120
    00404fe0add x0, sp, 680
    00404fe4ldr x2, [sp+16]
    00404fe8bl fmul
    00404fecadd x2, sp, 760
    00404ff0add x1, sp, 680
    00404ff4add x0, sp, 600
    00404ff8bl fmul
    00404ffcadd x1, sp, 600
    00405000add x0, sp, 120
    00405004bl fsquare
    00405008add x2, sp, 680
    0040500cadd x1, sp, 120
    00405010add x0, sp, 520
    00405014bl fmul
    00405018add x1, sp, 520
    0040501cadd x0, sp, 120
    00405020bl fsquare
    00405024add x1, sp, 120
    00405028add x0, sp, 40
    0040502cbl fsquare
    00405030add x1, sp, 40
    00405034add x0, sp, 120
    00405038bl fsquare
    0040503cadd x1, sp, 120
    00405040add x0, sp, 40
    00405044bl fsquare
    00405048add x1, sp, 40
    0040504cadd x0, sp, 120
    00405050bl fsquare
    00405054add x2, sp, 520
    00405058add x1, sp, 120
    0040505cadd x0, sp, 440
    00405060bl fmul
    00405064add x1, sp, 440
    00405068add x0, sp, 120
    0040506cbl fsquare
    00405070add x1, sp, 120
    00405074add x0, sp, 40
    00405078bl fsquare
    0040507cmovz w0, 2
    00405080str w0, [sp+844]
    00405084b 0x4050ac
    00405088
    00405088loc_405088:
    00405088add x1, sp, 40
    0040508cadd x0, sp, 120
    00405090bl fsquare
    00405094add x1, sp, 120
    00405098add x0, sp, 40
    0040509cbl fsquare
    004050a0ldr w0, [sp+844]
    004050a4add w0, w0, 2
    004050a8str w0, [sp+844]
    004050ac
    004050acloc_4050ac:
    004050acldr w0, [sp+844]
    004050b0subs wzr, w0, 9
    004050b4b.le 0x405088
    004050b8add x2, sp, 440
    004050bcadd x1, sp, 40
    004050c0add x0, sp, 360
    004050c4bl fmul
    004050c8add x1, sp, 360
    004050ccadd x0, sp, 120
    004050d0bl fsquare
    004050d4add x1, sp, 120
    004050d8add x0, sp, 40
    004050dcbl fsquare
    004050e0movz w0, 2
    004050e4str w0, [sp+844]
    004050e8b 0x405110
    004050ec
    004050ecloc_4050ec:
    004050ecadd x1, sp, 40
    004050f0add x0, sp, 120
    004050f4bl fsquare
    004050f8add x1, sp, 120
    004050fcadd x0, sp, 40
    00405100bl fsquare
    00405104ldr w0, [sp+844]
    00405108add w0, w0, 2
    0040510cstr w0, [sp+844]
    00405110
    00405110loc_405110:
    00405110ldr w0, [sp+844]
    00405114subs wzr, w0, 19
    00405118b.le 0x4050ec
    0040511cadd x2, sp, 360
    00405120add x1, sp, 40
    00405124add x0, sp, 120
    00405128bl fmul
    0040512cadd x1, sp, 120
    00405130add x0, sp, 40
    00405134bl fsquare
    00405138add x1, sp, 40
    0040513cadd x0, sp, 120
    00405140bl fsquare
    00405144movz w0, 2
    00405148str w0, [sp+844]
    0040514cb 0x405174
    00405150
    00405150loc_405150:
    00405150add x1, sp, 120
    00405154add x0, sp, 40
    00405158bl fsquare
    0040515cadd x1, sp, 40
    00405160add x0, sp, 120
    00405164bl fsquare
    00405168ldr w0, [sp+844]
    0040516cadd w0, w0, 2
    00405170str w0, [sp+844]
    00405174
    00405174loc_405174:
    00405174ldr w0, [sp+844]
    00405178subs wzr, w0, 9
    0040517cb.le 0x405150
    00405180add x2, sp, 440
    00405184add x1, sp, 120
    00405188add x0, sp, 280
    0040518cbl fmul
    00405190add x1, sp, 280
    00405194add x0, sp, 120
    00405198bl fsquare
    0040519cadd x1, sp, 120
    004051a0add x0, sp, 40
    004051a4bl fsquare
    004051a8movz w0, 2
    004051acstr w0, [sp+844]
    004051b0b 0x4051d8
    004051b4
    004051b4loc_4051b4:
    004051b4add x1, sp, 40
    004051b8add x0, sp, 120
    004051bcbl fsquare
    004051c0add x1, sp, 120
    004051c4add x0, sp, 40
    004051c8bl fsquare
    004051ccldr w0, [sp+844]
    004051d0add w0, w0, 2
    004051d4str w0, [sp+844]
    004051d8
    004051d8loc_4051d8:
    004051d8ldr w0, [sp+844]
    004051dcsubs wzr, w0, 49
    004051e0b.le 0x4051b4
    004051e4add x2, sp, 280
    004051e8add x1, sp, 40
    004051ecadd x0, sp, 200
    004051f0bl fmul
    004051f4add x1, sp, 200
    004051f8add x0, sp, 40
    004051fcbl fsquare
    00405200add x1, sp, 40
    00405204add x0, sp, 120
    00405208bl fsquare
    0040520cmovz w0, 2
    00405210str w0, [sp+844]
    00405214b 0x40523c
    00405218
    00405218loc_405218:
    00405218add x1, sp, 120
    0040521cadd x0, sp, 40
    00405220bl fsquare
    00405224add x1, sp, 40
    00405228add x0, sp, 120
    0040522cbl fsquare
    00405230ldr w0, [sp+844]
    00405234add w0, w0, 2
    00405238str w0, [sp+844]
    0040523c
    0040523cloc_40523c:
    0040523cldr w0, [sp+844]
    00405240subs wzr, w0, 99
    00405244b.le 0x405218
    00405248add x2, sp, 200
    0040524cadd x1, sp, 120
    00405250add x0, sp, 40
    00405254bl fmul
    00405258add x1, sp, 40
    0040525cadd x0, sp, 120
    00405260bl fsquare
    00405264add x1, sp, 120
    00405268add x0, sp, 40
    0040526cbl fsquare
    00405270movz w0, 2
    00405274str w0, [sp+844]
    00405278b 0x4052a0
    0040527c
    0040527cloc_40527c:
    0040527cadd x1, sp, 40
    00405280add x0, sp, 120
    00405284bl fsquare
    00405288add x1, sp, 120
    0040528cadd x0, sp, 40
    00405290bl fsquare
    00405294ldr w0, [sp+844]
    00405298add w0, w0, 2
    0040529cstr w0, [sp+844]
    004052a0
    004052a0loc_4052a0:
    004052a0ldr w0, [sp+844]
    004052a4subs wzr, w0, 49
    004052a8b.le 0x40527c
    004052acadd x2, sp, 280
    004052b0add x1, sp, 40
    004052b4add x0, sp, 120
    004052b8bl fmul
    004052bcadd x1, sp, 120
    004052c0add x0, sp, 40
    004052c4bl fsquare
    004052c8add x1, sp, 40
    004052ccadd x0, sp, 120
    004052d0bl fsquare
    004052d4add x1, sp, 120
    004052d8add x0, sp, 40
    004052dcbl fsquare
    004052e0add x1, sp, 40
    004052e4add x0, sp, 120
    004052e8bl fsquare
    004052ecadd x1, sp, 120
    004052f0add x0, sp, 40
    004052f4bl fsquare
    004052f8add x1, sp, 600
    004052fcadd x0, sp, 40
    00405300mov x2, x1
    00405304mov x1, x0
    00405308ldr x0, [sp+24]
    0040530cbl fmul
    00405310hint
    00405314ldp x29, x30, [sp]
    00405318add sp, sp, 848
    0040531cret x30
    00404fa4