File sliver_83cb34f62800fed14e14547c39337aab8e0427fe2c6310a3fb40ce0ac36168c9.elf
Function:
    0018c4b0
    0018c4b0sort.partition_func: ; void sort.partition_func(sort.lessSwap data, int a, int b, int pivot)
    0018c4b0ldr x16, [x28+16]
    0018c4b4subs xzr, sp, x16
    0018c4b8b.ls 0x18c7a4
    0018c4bcstr x30, [sp-64]!
    0018c4c0stur x29, [sp-8]
    0018c4c4sub x29, sp, 8
    0018c4c8str x0, [sp+72]
    0018c4ccstr x1, [sp+80]
    0018c4d0str x2, [sp+88]
    0018c4d4str x3, [sp+96]
    0018c4d8str x4, [sp+104]
    0018c4dcstr xzr, [sp+32]
    0018c4e0strb wzr, [sp+29]
    0018c4e4ldr x26, [sp+80]
    0018c4e8ldr x0, [sp+88]
    0018c4ecldr x1, [sp+104]
    0018c4f0ldr x2, [x26]
    0018c4f4blr x2
    0018c4f8ldr x2, [sp+88]
    0018c4fcadd x2, x2, 1
    0018c500str x2, [sp+48]
    0018c504ldr x2, [sp+96]
    0018c508sub x2, x2, 1
    0018c50cstr x2, [sp+40]
    0018c510b 0x18c514
    0018c514
    0018c514loc_18c514:
    0018c514ldr x2, [sp+40]
    0018c518ldr x3, [sp+48]
    0018c51csubs xzr, x2, x3
    0018c520cset x2, ge
    0018c524strb w2, [sp+31]
    0018c528b.ge 0x18c530
    0018c52cb 0x18c550
    0018c530
    0018c530loc_18c530:
    0018c530ldr x26, [sp+72]
    0018c534ldr x0, [sp+48]
    0018c538ldr x1, [sp+88]
    0018c53cldr x2, [x26]
    0018c540blr x2
    0018c544strb w0, [sp+30]
    0018c548strb w0, [sp+31]
    0018c54cb 0x18c554
    0018c550
    0018c550loc_18c550:
    0018c550b 0x18c554
    0018c554
    0018c554loc_18c554:
    0018c554ldrb w2, [sp+31]
    0018c558tbnz w2, 0, 0x18c560
    0018c55cb 0x18c574
    0018c560
    0018c560loc_18c560:
    0018c560ldr x2, [sp+48]
    0018c564add x2, x2, 1
    0018c568str x2, [sp+48]
    0018c56cb 0x18c570
    0018c570
    0018c570loc_18c570:
    0018c570b 0x18c514
    0018c574
    0018c574loc_18c574:
    0018c574b 0x18c578
    0018c578
    0018c578loc_18c578:
    0018c578ldr x2, [sp+40]
    0018c57cldr x3, [sp+48]
    0018c580subs xzr, x2, x3
    0018c584cset x2, ge
    0018c588strb w2, [sp+31]
    0018c58cb.ge 0x18c594
    0018c590b 0x18c5b8
    0018c594
    0018c594loc_18c594:
    0018c594ldr x26, [sp+72]
    0018c598ldr x0, [sp+40]
    0018c59cldr x1, [sp+88]
    0018c5a0ldr x2, [x26]
    0018c5a4blr x2
    0018c5a8strb w0, [sp+30]
    0018c5aceor x2, x0, 1
    0018c5b0strb w2, [sp+31]
    0018c5b4b 0x18c5bc
    0018c5b8
    0018c5b8loc_18c5b8:
    0018c5b8b 0x18c5bc
    0018c5bc
    0018c5bcloc_18c5bc:
    0018c5bcldrb w2, [sp+31]
    0018c5c0tbnz w2, 0, 0x18c5c8
    0018c5c4b 0x18c5dc
    0018c5c8
    0018c5c8loc_18c5c8:
    0018c5c8ldr x2, [sp+40]
    0018c5ccsub x2, x2, 1
    0018c5d0str x2, [sp+40]
    0018c5d4b 0x18c5d8
    0018c5d8
    0018c5d8loc_18c5d8:
    0018c5d8b 0x18c578
    0018c5dc
    0018c5dcloc_18c5dc:
    0018c5dcldr x2, [sp+40]
    0018c5e0ldr x3, [sp+48]
    0018c5e4subs xzr, x2, x3
    0018c5e8b.lt 0x18c5f0
    0018c5ecb 0x18c624
    0018c5f0
    0018c5f0loc_18c5f0:
    0018c5f0ldr x26, [sp+80]
    0018c5f4ldr x0, [sp+40]
    0018c5f8ldr x1, [sp+88]
    0018c5fcldr x2, [x26]
    0018c600blr x2
    0018c604ldr x2, [sp+40]
    0018c608str x2, [sp+32]
    0018c60corr x1, xzr, 1
    0018c610strb w1, [sp+29]
    0018c614ldr x0, [sp+32]
    0018c618ldur x29, [sp-8]
    0018c61cldr x30, [sp], 64
    0018c620ret x30
    0018c624
    0018c624loc_18c624:
    0018c624ldr x26, [sp+80]
    0018c628ldr x0, [sp+48]
    0018c62cldr x1, [sp+40]
    0018c630ldr x2, [x26]
    0018c634blr x2
    0018c638ldr x2, [sp+48]
    0018c63cadd x2, x2, 1
    0018c640str x2, [sp+48]
    0018c644ldr x2, [sp+40]
    0018c648sub x2, x2, 1
    0018c64cstr x2, [sp+40]
    0018c650b 0x18c654
    0018c654
    0018c654loc_18c654:
    0018c654b 0x18c658
    0018c658
    0018c658loc_18c658:
    0018c658b 0x18c65c
    0018c65c
    0018c65cloc_18c65c:
    0018c65cldr x2, [sp+40]
    0018c660ldr x3, [sp+48]
    0018c664subs xzr, x2, x3
    0018c668cset x2, ge
    0018c66cstrb w2, [sp+31]
    0018c670b.ge 0x18c678
    0018c674b 0x18c698
    0018c678
    0018c678loc_18c678:
    0018c678ldr x26, [sp+72]
    0018c67cldr x0, [sp+48]
    0018c680ldr x1, [sp+88]
    0018c684ldr x2, [x26]
    0018c688blr x2
    0018c68cstrb w0, [sp+30]
    0018c690strb w0, [sp+31]
    0018c694b 0x18c69c
    0018c698
    0018c698loc_18c698:
    0018c698b 0x18c69c
    0018c69c
    0018c69cloc_18c69c:
    0018c69cldrb w2, [sp+31]
    0018c6a0tbnz w2, 0, 0x18c6a8
    0018c6a4b 0x18c6bc
    0018c6a8
    0018c6a8loc_18c6a8:
    0018c6a8ldr x2, [sp+48]
    0018c6acadd x2, x2, 1
    0018c6b0str x2, [sp+48]
    0018c6b4b 0x18c6b8
    0018c6b8
    0018c6b8loc_18c6b8:
    0018c6b8b 0x18c65c
    0018c6bc
    0018c6bcloc_18c6bc:
    0018c6bcb 0x18c6c0
    0018c6c0
    0018c6c0loc_18c6c0:
    0018c6c0ldr x2, [sp+40]
    0018c6c4ldr x3, [sp+48]
    0018c6c8subs xzr, x2, x3
    0018c6cccset x2, ge
    0018c6d0strb w2, [sp+31]
    0018c6d4b.ge 0x18c6dc
    0018c6d8b 0x18c700
    0018c6dc
    0018c6dcloc_18c6dc:
    0018c6dcldr x26, [sp+72]
    0018c6e0ldr x0, [sp+40]
    0018c6e4ldr x1, [sp+88]
    0018c6e8ldr x2, [x26]
    0018c6ecblr x2
    0018c6f0strb w0, [sp+30]
    0018c6f4eor x2, x0, 1
    0018c6f8strb w2, [sp+31]
    0018c6fcb 0x18c704
    0018c700
    0018c700loc_18c700:
    0018c700b 0x18c704
    0018c704
    0018c704loc_18c704:
    0018c704ldrb w2, [sp+31]
    0018c708tbnz w2, 0, 0x18c710
    0018c70cb 0x18c724
    0018c710
    0018c710loc_18c710:
    0018c710ldr x2, [sp+40]
    0018c714sub x2, x2, 1
    0018c718str x2, [sp+40]
    0018c71cb 0x18c720
    0018c720
    0018c720loc_18c720:
    0018c720b 0x18c6c0
    0018c724
    0018c724loc_18c724:
    0018c724ldr x2, [sp+40]
    0018c728ldr x3, [sp+48]
    0018c72csubs xzr, x2, x3
    0018c730b.lt 0x18c738
    0018c734b 0x18c770
    0018c738
    0018c738loc_18c738:
    0018c738b 0x18c73c
    0018c73c
    0018c73cloc_18c73c:
    0018c73cldr x26, [sp+80]
    0018c740ldr x0, [sp+40]
    0018c744ldr x1, [sp+88]
    0018c748ldr x2, [x26]
    0018c74cblr x2
    0018c750ldr x2, [sp+40]
    0018c754str x2, [sp+32]
    0018c758strb wzr, [sp+29]
    0018c75cldr x0, [sp+32]
    0018c760mov x1, xzr
    0018c764ldur x29, [sp-8]
    0018c768ldr x30, [sp], 64
    0018c76cret x30
    0018c770
    0018c770loc_18c770:
    0018c770ldr x26, [sp+80]
    0018c774ldr x0, [sp+48]
    0018c778ldr x1, [sp+40]
    0018c77cldr x2, [x26]
    0018c780blr x2
    0018c784ldr x2, [sp+48]
    0018c788add x2, x2, 1
    0018c78cstr x2, [sp+48]
    0018c790ldr x2, [sp+40]
    0018c794sub x2, x2, 1
    0018c798str x2, [sp+40]
    0018c79cb 0x18c7a0
    0018c7a0
    0018c7a0loc_18c7a0:
    0018c7a0b 0x18c654
    0018c7a4
    0018c7a4loc_18c7a4:
    0018c7a4stp x0, x1, [sp+8]
    0018c7a8stp x2, x3, [sp+24]
    0018c7acstr x4, [sp+40]
    0018c7b0mov x3, x30
    0018c7b4bl runtime.morestack_noctxt.abi0
    0018c7b8ldp x0, x1, [sp+8]
    0018c7bcldp x2, x3, [sp+24]
    0018c7c0ldr x4, [sp+40]
    0018c7c4b 0x18c4b0
    0018c7c8udf 0
    0018c7ccudf 0
    0018c4b0
    0018c7d0
    0018c7d0sort.partitionEqual_func: ; void sort.partitionEqual_func(sort.lessSwap data, int a, int b, int pivot)
    0018c7d0ldr x16, [x28+16]
    0018c7d4subs xzr, sp, x16
    0018c7d8b.ls 0x18c960
    0018c7dcstr x30, [sp-64]!
    0018c7e0stur x29, [sp-8]
    0018c7e4sub x29, sp, 8
    0018c7e8str x0, [sp+72]
    0018c7ecstr x1, [sp+80]
    0018c7f0str x2, [sp+88]
    0018c7f4str x3, [sp+96]
    0018c7f8str x4, [sp+104]
    0018c7fcstr xzr, [sp+32]
    0018c800ldr x26, [sp+80]
    0018c804ldr x3, [x26]
    0018c808mov x0, x2
    0018c80cmov x1, x4
    0018c810blr x3
    0018c814ldr x2, [sp+88]
    0018c818add x2, x2, 1
    0018c81cstr x2, [sp+48]
    0018c820ldr x2, [sp+96]
    0018c824sub x2, x2, 1
    0018c828str x2, [sp+40]
    0018c82cb 0x18c830
    0018c830
    0018c830loc_18c830:
    0018c830b 0x18c834
    0018c834
    0018c834loc_18c834:
    0018c834b 0x18c838
    0018c838
    0018c838loc_18c838:
    0018c838ldr x2, [sp+40]
    0018c83cldr x3, [sp+48]
    0018c840subs xzr, x2, x3
    0018c844cset x2, ge
    0018c848strb w2, [sp+31]
    0018c84cb.ge 0x18c854
    0018c850b 0x18c878
    0018c854
    0018c854loc_18c854:
    0018c854ldr x26, [sp+72]
    0018c858ldr x0, [sp+88]
    0018c85cldr x1, [sp+48]
    0018c860ldr x2, [x26]
    0018c864blr x2
    0018c868strb w0, [sp+30]
    0018c86ceor x2, x0, 1
    0018c870strb w2, [sp+31]
    0018c874b 0x18c87c
    0018c878
    0018c878loc_18c878:
    0018c878b 0x18c87c
    0018c87c
    0018c87cloc_18c87c:
    0018c87cldrb w2, [sp+31]
    0018c880tbnz w2, 0, 0x18c888
    0018c884b 0x18c89c
    0018c888
    0018c888loc_18c888:
    0018c888ldr x2, [sp+48]
    0018c88cadd x2, x2, 1
    0018c890str x2, [sp+48]
    0018c894b 0x18c898
    0018c898
    0018c898loc_18c898:
    0018c898b 0x18c838
    0018c89c
    0018c89cloc_18c89c:
    0018c89cb 0x18c8a0
    0018c8a0
    0018c8a0loc_18c8a0:
    0018c8a0ldr x2, [sp+40]
    0018c8a4ldr x3, [sp+48]
    0018c8a8subs xzr, x2, x3
    0018c8accset x2, ge
    0018c8b0strb w2, [sp+31]
    0018c8b4b.ge 0x18c8bc
    0018c8b8b 0x18c8dc
    0018c8bc
    0018c8bcloc_18c8bc:
    0018c8bcldr x26, [sp+72]
    0018c8c0ldr x0, [sp+88]
    0018c8c4ldr x1, [sp+40]
    0018c8c8ldr x2, [x26]
    0018c8ccblr x2
    0018c8d0strb w0, [sp+30]
    0018c8d4strb w0, [sp+31]
    0018c8d8b 0x18c8e0
    0018c8dc
    0018c8dcloc_18c8dc:
    0018c8dcb 0x18c8e0
    0018c8e0
    0018c8e0loc_18c8e0:
    0018c8e0ldrb w2, [sp+31]
    0018c8e4tbnz w2, 0, 0x18c8ec
    0018c8e8b 0x18c900
    0018c8ec
    0018c8ecloc_18c8ec:
    0018c8ecldr x2, [sp+40]
    0018c8f0sub x2, x2, 1
    0018c8f4str x2, [sp+40]
    0018c8f8b 0x18c8fc
    0018c8fc
    0018c8fcloc_18c8fc:
    0018c8fcb 0x18c8a0
    0018c900
    0018c900loc_18c900:
    0018c900ldr x2, [sp+40]
    0018c904ldr x3, [sp+48]
    0018c908subs xzr, x2, x3
    0018c90cb.lt 0x18c914
    0018c910b 0x18c92c
    0018c914
    0018c914loc_18c914:
    0018c914b 0x18c918
    0018c918
    0018c918loc_18c918:
    0018c918ldr x0, [sp+48]
    0018c91cstr x0, [sp+32]
    0018c920ldur x29, [sp-8]
    0018c924ldr x30, [sp], 64
    0018c928ret x30
    0018c92c
    0018c92cloc_18c92c:
    0018c92cldr x26, [sp+80]
    0018c930ldr x0, [sp+48]
    0018c934ldr x1, [sp+40]
    0018c938ldr x2, [x26]
    0018c93cblr x2
    0018c940ldr x2, [sp+48]
    0018c944add x2, x2, 1
    0018c948str x2, [sp+48]
    0018c94cldr x2, [sp+40]
    0018c950sub x2, x2, 1
    0018c954str x2, [sp+40]
    0018c958b 0x18c95c
    0018c95c
    0018c95cloc_18c95c:
    0018c95cb 0x18c830
    0018c960
    0018c960loc_18c960:
    0018c960stp x0, x1, [sp+8]
    0018c964stp x2, x3, [sp+24]
    0018c968str x4, [sp+40]
    0018c96cmov x3, x30
    0018c970bl runtime.morestack_noctxt.abi0
    0018c974ldp x0, x1, [sp+8]
    0018c978ldp x2, x3, [sp+24]
    0018c97cldr x4, [sp+40]
    0018c980b 0x18c7d0
    0018c984udf 0
    0018c988udf 0
    0018c98cudf 0
    0018c7d0
    0018c990
    0018c990sort.partialInsertionSort_func: ; void sort.partialInsertionSort_func(sort.lessSwap data, int a, int b)
    0018c990ldr x16, [x28+16]
    0018c994subs xzr, sp, x16
    0018c998b.ls 0x18cc14
    0018c99cstr x30, [sp-80]!
    0018c9a0stur x29, [sp-8]
    0018c9a4sub x29, sp, 8
    0018c9a8str x0, [sp+88]
    0018c9acstr x1, [sp+96]
    0018c9b0str x2, [sp+104]
    0018c9b4str x3, [sp+112]
    0018c9b8strb wzr, [sp+37]
    0018c9bcldr x2, [sp+104]
    0018c9c0add x2, x2, 1
    0018c9c4str x2, [sp+64]
    0018c9c8str xzr, [sp+56]
    0018c9ccb 0x18c9d0
    0018c9d0
    0018c9d0loc_18c9d0:
    0018c9d0ldr x2, [sp+56]
    0018c9d4subs xzr, x2, 5
    0018c9d8b.lt 0x18c9e0
    0018c9dcb 0x18c9e4
    0018c9e0
    0018c9e0loc_18c9e0:
    0018c9e0b 0x18c9f8
    0018c9e4
    0018c9e4loc_18c9e4:
    0018c9e4strb wzr, [sp+37]
    0018c9e8mov x0, xzr
    0018c9ecldur x29, [sp-8]
    0018c9f0ldr x30, [sp], 80
    0018c9f4ret x30
    0018c9f8
    0018c9f8loc_18c9f8:
    0018c9f8ldr x2, [sp+112]
    0018c9fcldr x3, [sp+64]
    0018ca00subs xzr, x2, x3
    0018ca04cset x2, gt
    0018ca08strb w2, [sp+39]
    0018ca0cb.gt 0x18ca14
    0018ca10b 0x18ca3c
    0018ca14
    0018ca14loc_18ca14:
    0018ca14ldr x26, [sp+88]
    0018ca18ldr x0, [sp+64]
    0018ca1cldr x2, [x26]
    0018ca20ldr x3, [sp+64]
    0018ca24sub x1, x3, 1
    0018ca28blr x2
    0018ca2cstrb w0, [sp+38]
    0018ca30eor x2, x0, 1
    0018ca34strb w2, [sp+39]
    0018ca38b 0x18ca40
    0018ca3c
    0018ca3cloc_18ca3c:
    0018ca3cb 0x18ca40
    0018ca40
    0018ca40loc_18ca40:
    0018ca40ldrb w2, [sp+39]
    0018ca44tbnz w2, 0, 0x18ca4c
    0018ca48b 0x18ca60
    0018ca4c
    0018ca4cloc_18ca4c:
    0018ca4cldr x2, [sp+64]
    0018ca50add x2, x2, 1
    0018ca54str x2, [sp+64]
    0018ca58b 0x18ca5c
    0018ca5c
    0018ca5cloc_18ca5c:
    0018ca5cb 0x18c9f8
    0018ca60
    0018ca60loc_18ca60:
    0018ca60ldr x2, [sp+112]
    0018ca64ldr x3, [sp+64]
    0018ca68subs xzr, x2, x3
    0018ca6cb.eq 0x18ca74
    0018ca70b 0x18ca88
    0018ca74
    0018ca74loc_18ca74:
    0018ca74orr x0, xzr, 1
    0018ca78strb w0, [sp+37]
    0018ca7cldur x29, [sp-8]
    0018ca80ldr x30, [sp], 80
    0018ca84ret x30
    0018ca88
    0018ca88loc_18ca88:
    0018ca88ldr x2, [sp+104]
    0018ca8cldr x3, [sp+112]
    0018ca90sub x2, x3, x2
    0018ca94subs xzr, x2, 50
    0018ca98b.lt 0x18caa0
    0018ca9cb 0x18cab4
    0018caa0
    0018caa0loc_18caa0:
    0018caa0strb wzr, [sp+37]
    0018caa4mov x0, xzr
    0018caa8ldur x29, [sp-8]
    0018caacldr x30, [sp], 80
    0018cab0ret x30
    0018cab4
    0018cab4loc_18cab4:
    0018cab4ldr x26, [sp+96]
    0018cab8ldr x0, [sp+64]
    0018cabcldr x2, [x26]
    0018cac0ldr x3, [sp+64]
    0018cac4sub x1, x3, 1
    0018cac8blr x2
    0018caccldr x2, [sp+104]
    0018cad0ldr x3, [sp+64]
    0018cad4sub x2, x3, x2
    0018cad8subs xzr, x2, 2
    0018cadcb.ge 0x18cae4
    0018cae0b 0x18caf4
    0018cae4
    0018cae4loc_18cae4:
    0018cae4ldr x2, [sp+64]
    0018cae8sub x2, x2, 1
    0018caecstr x2, [sp+48]
    0018caf0b 0x18cba8
    0018caf4
    0018caf4loc_18caf4:
    0018caf4b 0x18caf8
    0018caf8
    0018caf8loc_18caf8:
    0018caf8ldr x2, [sp+64]
    0018cafcldr x3, [sp+112]
    0018cb00sub x2, x3, x2
    0018cb04subs xzr, x2, 2
    0018cb08b.ge 0x18cb10
    0018cb0cb 0x18cb20
    0018cb10
    0018cb10loc_18cb10:
    0018cb10ldr x2, [sp+64]
    0018cb14add x2, x2, 1
    0018cb18str x2, [sp+40]
    0018cb1cb 0x18cb38
    0018cb20
    0018cb20loc_18cb20:
    0018cb20b 0x18cb24
    0018cb24
    0018cb24loc_18cb24:
    0018cb24b 0x18cb28
    0018cb28
    0018cb28loc_18cb28:
    0018cb28ldr x2, [sp+56]
    0018cb2cadd x2, x2, 1
    0018cb30str x2, [sp+56]
    0018cb34b 0x18c9d0
    0018cb38
    0018cb38loc_18cb38:
    0018cb38ldr x2, [sp+112]
    0018cb3cldr x3, [sp+40]
    0018cb40subs xzr, x2, x3
    0018cb44b.gt 0x18cb4c
    0018cb48b 0x18cba0
    0018cb4c
    0018cb4cloc_18cb4c:
    0018cb4cldr x26, [sp+88]
    0018cb50ldr x0, [sp+40]
    0018cb54ldr x2, [x26]
    0018cb58ldr x3, [sp+40]
    0018cb5csub x1, x3, 1
    0018cb60blr x2
    0018cb64strb w0, [sp+39]
    0018cb68tbnz w0, 0, 0x18cb70
    0018cb6cb 0x18cb9c
    0018cb70
    0018cb70loc_18cb70:
    0018cb70ldr x26, [sp+96]
    0018cb74ldr x0, [sp+40]
    0018cb78ldr x2, [x26]
    0018cb7cldr x3, [sp+40]
    0018cb80sub x1, x3, 1
    0018cb84blr x2
    0018cb88b 0x18cb8c
    0018cb8c
    0018cb8cloc_18cb8c:
    0018cb8cldr x2, [sp+40]
    0018cb90add x2, x2, 1
    0018cb94str x2, [sp+40]
    0018cb98b 0x18cb38
    0018cb9c
    0018cb9cloc_18cb9c:
    0018cb9cb 0x18cba4
    0018cba0
    0018cba0loc_18cba0:
    0018cba0b 0x18cba4
    0018cba4
    0018cba4loc_18cba4:
    0018cba4b 0x18cb24
    0018cba8
    0018cba8loc_18cba8:
    0018cba8ldr x2, [sp+48]
    0018cbacsubs xzr, x2, 0
    0018cbb0b.gt 0x18cbb8
    0018cbb4b 0x18cc0c
    0018cbb8
    0018cbb8loc_18cbb8:
    0018cbb8ldr x26, [sp+88]
    0018cbbcldr x0, [sp+48]
    0018cbc0ldr x2, [x26]
    0018cbc4ldr x3, [sp+48]
    0018cbc8sub x1, x3, 1
    0018cbccblr x2
    0018cbd0strb w0, [sp+39]
    0018cbd4tbnz w0, 0, 0x18cbdc
    0018cbd8b 0x18cc08
    0018cbdc
    0018cbdcloc_18cbdc:
    0018cbdcldr x26, [sp+96]
    0018cbe0ldr x0, [sp+48]
    0018cbe4ldr x2, [x26]
    0018cbe8ldr x3, [sp+48]
    0018cbecsub x1, x3, 1
    0018cbf0blr x2
    0018cbf4b 0x18cbf8
    0018cbf8
    0018cbf8loc_18cbf8:
    0018cbf8ldr x2, [sp+48]
    0018cbfcsub x2, x2, 1
    0018cc00str x2, [sp+48]
    0018cc04b 0x18cba8
    0018cc08
    0018cc08loc_18cc08:
    0018cc08b 0x18cc10
    0018cc0c
    0018cc0cloc_18cc0c:
    0018cc0cb 0x18cc10
    0018cc10
    0018cc10loc_18cc10:
    0018cc10b 0x18caf8
    0018cc14
    0018cc14loc_18cc14:
    0018cc14stp x0, x1, [sp+8]
    0018cc18stp x2, x3, [sp+24]
    0018cc1cmov x3, x30
    0018cc20bl runtime.morestack_noctxt.abi0
    0018cc24ldp x0, x1, [sp+8]
    0018cc28ldp x2, x3, [sp+24]
    0018cc2cb 0x18c990
    0018c990
    0018cc30
    0018cc30sort.breakPatterns_func: ; void sort.breakPatterns_func(sort.lessSwap data, int a, int b)
    0018cc30ldr x16, [x28+16]
    0018cc34subs xzr, sp, x16
    0018cc38b.ls 0x18cd54
    0018cc3cstr x30, [sp-80]!
    0018cc40stur x29, [sp-8]
    0018cc44sub x29, sp, 8
    0018cc48str x0, [sp+88]
    0018cc4cstr x1, [sp+96]
    0018cc50str x2, [sp+104]
    0018cc54str x3, [sp+112]
    0018cc58sub x0, x3, x2
    0018cc5cstr x0, [sp+48]
    0018cc60subs xzr, x0, 8
    0018cc64b.ge 0x18cc6c
    0018cc68b 0x18cc9c
    0018cc6c
    0018cc6cloc_18cc6c:
    0018cc6cstr x0, [sp+24]
    0018cc70bl sort.nextPowerOfTwo
    0018cc74str x0, [sp+40]
    0018cc78ldr x1, [sp+104]
    0018cc7cldr x2, [sp+48]
    0018cc80sbfm x3, x2, 63, 63
    0018cc84add x2, x2, x3, lsr #62
    0018cc88sbfm x2, x2, 2, 63
    0018cc8cadd x1, x1, x2, lsl #1
    0018cc90sub x1, x1, 1
    0018cc94str x1, [sp+56]
    0018cc98b 0x18ccac
    0018cc9c
    0018cc9cloc_18cc9c:
    0018cc9cb 0x18cca0
    0018cca0
    0018cca0loc_18cca0:
    0018cca0ldur x29, [sp-8]
    0018cca4ldr x30, [sp], 80
    0018cca8ret x30
    0018ccac
    0018ccacloc_18ccac:
    0018ccacldr x1, [sp+56]
    0018ccb0ldr x2, [sp+104]
    0018ccb4ldr x3, [sp+48]
    0018ccb8sbfm x4, x3, 63, 63
    0018ccbcadd x3, x3, x4, lsr #62
    0018ccc0sbfm x3, x3, 2, 63
    0018ccc4add x2, x2, x3, lsl #1
    0018ccc8add x2, x2, 1
    0018ccccsubs xzr, x1, x2
    0018ccd0b.le 0x18ccd8
    0018ccd4b 0x18cd50
    0018ccd8
    0018ccd8loc_18ccd8:
    0018ccd8add x0, sp, 24
    0018ccdcbl sort.(*xorshift).Next
    0018cce0str x0, [sp+64]
    0018cce4ldr x1, [sp+40]
    0018cce8sub x1, x1, 1
    0018ccecand x1, x0, x1
    0018ccf0str x1, [sp+32]
    0018ccf4ldr x1, [sp+48]
    0018ccf8ldr x2, [sp+32]
    0018ccfcsubs xzr, x1, x2
    0018cd00b.le 0x18cd08
    0018cd04b 0x18cd1c
    0018cd08
    0018cd08loc_18cd08:
    0018cd08ldr x2, [sp+48]
    0018cd0cldr x3, [sp+32]
    0018cd10sub x2, x3, x2
    0018cd14str x2, [sp+32]
    0018cd18b 0x18cd20
    0018cd1c
    0018cd1cloc_18cd1c:
    0018cd1cb 0x18cd20
    0018cd20
    0018cd20loc_18cd20:
    0018cd20ldr x26, [sp+96]
    0018cd24ldr x0, [sp+56]
    0018cd28ldr x2, [x26]
    0018cd2cldr x3, [sp+104]
    0018cd30ldr x4, [sp+32]
    0018cd34add x1, x3, x4
    0018cd38blr x2
    0018cd3cb 0x18cd40
    0018cd40
    0018cd40loc_18cd40:
    0018cd40ldr x1, [sp+56]
    0018cd44add x1, x1, 1
    0018cd48str x1, [sp+56]
    0018cd4cb 0x18ccac
    0018cd50
    0018cd50loc_18cd50:
    0018cd50b 0x18cca0
    0018cd54
    0018cd54loc_18cd54:
    0018cd54stp x0, x1, [sp+8]
    0018cd58stp x2, x3, [sp+24]
    0018cd5cmov x3, x30
    0018cd60bl runtime.morestack_noctxt.abi0
    0018cd64ldp x0, x1, [sp+8]
    0018cd68ldp x2, x3, [sp+24]
    0018cd6cb 0x18cc30
    0018cc30
    0018cd70
    0018cd70sort.choosePivot_func: ; void sort.choosePivot_func(sort.lessSwap data, int a, int b)
    0018cd70ldr x16, [x28+16]
    0018cd74subs xzr, sp, x16
    0018cd78b.ls 0x18cf08
    0018cd7cstr x30, [sp-128]!
    0018cd80stur x29, [sp-8]
    0018cd84sub x29, sp, 8
    0018cd88str x0, [sp+136]
    0018cd8cstr x1, [sp+144]
    0018cd90str x2, [sp+152]
    0018cd94str x3, [sp+160]
    0018cd98str xzr, [sp+64]
    0018cd9cstr xzr, [sp+104]
    0018cda0sub x6, x3, x2
    0018cda4str x6, [sp+72]
    0018cda8str xzr, [sp+56]
    0018cdacldr x7, [sp+152]
    0018cdb0sbfm x8, x6, 63, 63
    0018cdb4add x8, x6, x8, lsr #62
    0018cdb8add x2, x7, x8, asr #2
    0018cdbcstr x2, [sp+96]
    0018cdc0ldr x7, [sp+152]
    0018cdc4sbfm x8, x6, 63, 63
    0018cdc8add x8, x6, x8, lsr #62
    0018cdccsbfm x8, x8, 2, 63
    0018cdd0add x7, x7, x8, lsl #1
    0018cdd4str x7, [sp+88]
    0018cdd8ldr x7, [sp+152]
    0018cddcsbfm x8, x6, 63, 63
    0018cde0add x6, x6, x8, lsr #62
    0018cde4sbfm x6, x6, 2, 63
    0018cde8add x6, x6, x6, lsl #1
    0018cdecadd x6, x7, x6
    0018cdf0str x6, [sp+80]
    0018cdf4ldr x6, [sp+72]
    0018cdf8subs xzr, x6, 8
    0018cdfcb.ge 0x18ce04
    0018ce00b 0x18ce84
    0018ce04
    0018ce04loc_18ce04:
    0018ce04ldr x6, [sp+72]
    0018ce08subs xzr, x6, 50
    0018ce0cb.ge 0x18ce14
    0018ce10b 0x18ce5c
    0018ce14
    0018ce14loc_18ce14:
    0018ce14ldr x0, [sp+136]
    0018ce18ldr x1, [sp+144]
    0018ce1cadd x3, sp, 56
    0018ce20bl sort.medianAdjacent_func
    0018ce24str x0, [sp+96]
    0018ce28ldr x2, [sp+88]
    0018ce2cldr x0, [sp+136]
    0018ce30ldr x1, [sp+144]
    0018ce34add x3, sp, 56
    0018ce38bl sort.medianAdjacent_func
    0018ce3cstr x0, [sp+88]
    0018ce40ldr x2, [sp+80]
    0018ce44ldr x0, [sp+136]
    0018ce48ldr x1, [sp+144]
    0018ce4cadd x3, sp, 56
    0018ce50bl sort.medianAdjacent_func
    0018ce54str x0, [sp+80]
    0018ce58b 0x18ce60
    0018ce5c
    0018ce5cloc_18ce5c:
    0018ce5cb 0x18ce60
    0018ce60
    0018ce60loc_18ce60:
    0018ce60ldr x3, [sp+88]
    0018ce64ldr x4, [sp+80]
    0018ce68ldr x2, [sp+96]
    0018ce6cldr x0, [sp+136]
    0018ce70ldr x1, [sp+144]
    0018ce74add x5, sp, 56
    0018ce78bl sort.median_func
    0018ce7cstr x0, [sp+88]
    0018ce80b 0x18ce88
    0018ce84
    0018ce84loc_18ce84:
    0018ce84b 0x18ce88
    0018ce88
    0018ce88loc_18ce88:
    0018ce88ldr x2, [sp+56]
    0018ce8cstr x2, [sp+112]
    0018ce90cbz x2, 0x18ce98
    0018ce94b 0x18ceb8
    0018ce98
    0018ce98loc_18ce98:
    0018ce98b 0x18ce9c
    0018ce9c
    0018ce9cloc_18ce9c:
    0018ce9cldr x0, [sp+88]
    0018cea0str x0, [sp+64]
    0018cea4orr x1, xzr, 1
    0018cea8str x1, [sp+104]
    0018ceacldur x29, [sp-8]
    0018ceb0ldr x30, [sp], 128
    0018ceb4ret x30
    0018ceb8
    0018ceb8loc_18ceb8:
    0018ceb8subs xzr, x2, 12
    0018cebcb.eq 0x18cec4
    0018cec0b 0x18cee4
    0018cec4
    0018cec4loc_18cec4:
    0018cec4b 0x18cec8
    0018cec8
    0018cec8loc_18cec8:
    0018cec8ldr x0, [sp+88]
    0018ceccstr x0, [sp+64]
    0018ced0orr x1, xzr, 2
    0018ced4str x1, [sp+104]
    0018ced8ldur x29, [sp-8]
    0018cedcldr x30, [sp], 128
    0018cee0ret x30
    0018cee4
    0018cee4loc_18cee4:
    0018cee4b 0x18cee8
    0018cee8
    0018cee8loc_18cee8:
    0018cee8b 0x18ceec
    0018ceec
    0018ceecloc_18ceec:
    0018ceecldr x0, [sp+88]
    0018cef0str x0, [sp+64]
    0018cef4str xzr, [sp+104]
    0018cef8mov x1, xzr
    0018cefcldur x29, [sp-8]
    0018cf00ldr x30, [sp], 128
    0018cf04ret x30
    0018cf08
    0018cf08loc_18cf08:
    0018cf08stp x0, x1, [sp+8]
    0018cf0cstp x2, x3, [sp+24]
    0018cf10mov x3, x30
    0018cf14bl runtime.morestack_noctxt.abi0
    0018cf18ldp x0, x1, [sp+8]
    0018cf1cldp x2, x3, [sp+24]
    0018cf20b 0x18cd70
    0018cf24udf 0
    0018cf28udf 0
    0018cf2cudf 0
    0018cd70
    0018cf30
    0018cf30sort.order2_func: ; void sort.order2_func(sort.lessSwap data, int a, int b, int * swaps)
    0018cf30ldr x16, [x28+16]
    0018cf34subs xzr, sp, x16
    0018cf38b.ls 0x18cfd8
    0018cf3cstr x30, [sp-64]!
    0018cf40stur x29, [sp-8]
    0018cf44sub x29, sp, 8
    0018cf48str x0, [sp+72]
    0018cf4cstr x1, [sp+80]
    0018cf50str x2, [sp+88]
    0018cf54str x3, [sp+96]
    0018cf58str x4, [sp+104]
    0018cf5cstr xzr, [sp+48]
    0018cf60str xzr, [sp+40]
    0018cf64ldr x26, [sp+72]
    0018cf68ldr x1, [sp+88]
    0018cf6cldr x2, [x26]
    0018cf70mov x0, x3
    0018cf74blr x2
    0018cf78strb w0, [sp+39]
    0018cf7ctbnz w0, 0, 0x18cf84
    0018cf80b 0x18cfbc
    0018cf84
    0018cf84loc_18cf84:
    0018cf84ldr x2, [sp+104]
    0018cf88ldrsb x27, [x2]
    0018cf8cldr x3, [sp+104]
    0018cf90ldrsb x27, [x3]
    0018cf94ldr x3, [x3]
    0018cf98add x3, x3, 1
    0018cf9cstr x3, [x2]
    0018cfa0ldr x0, [sp+96]
    0018cfa4str x0, [sp+48]
    0018cfa8ldr x1, [sp+88]
    0018cfacstr x1, [sp+40]
    0018cfb0ldur x29, [sp-8]
    0018cfb4ldr x30, [sp], 64
    0018cfb8ret x30
    0018cfbc
    0018cfbcloc_18cfbc:
    0018cfbcldr x0, [sp+88]
    0018cfc0str x0, [sp+48]
    0018cfc4ldr x1, [sp+96]
    0018cfc8str x1, [sp+40]
    0018cfccldur x29, [sp-8]
    0018cfd0ldr x30, [sp], 64
    0018cfd4ret x30
    0018cfd8
    0018cfd8loc_18cfd8:
    0018cfd8stp x0, x1, [sp+8]
    0018cfdcstp x2, x3, [sp+24]
    0018cfe0str x4, [sp+40]
    0018cfe4mov x3, x30
    0018cfe8bl runtime.morestack_noctxt.abi0
    0018cfecldp x0, x1, [sp+8]
    0018cff0ldp x2, x3, [sp+24]
    0018cff4ldr x4, [sp+40]
    0018cff8b 0x18cf30
    0018cffcudf 0
    0018cf30
    0018d000
    0018d000sort.median_func: ; void sort.median_func(sort.lessSwap data, int a, int b, int c, int * swaps)
    0018d000ldr x16, [x28+16]
    0018d004subs xzr, sp, x16
    0018d008b.ls 0x18d0dc
    0018d00cstr x30, [sp-128]!
    0018d010stur x29, [sp-8]
    0018d014sub x29, sp, 8
    0018d018str x0, [sp+136]
    0018d01cstr x1, [sp+144]
    0018d020str x2, [sp+152]
    0018d024str x3, [sp+160]
    0018d028str x4, [sp+168]
    0018d02cstr x5, [sp+176]
    0018d030str xzr, [sp+48]
    0018d034ldr x2, [sp+152]
    0018d038ldr x0, [sp+136]
    0018d03cldr x1, [sp+144]
    0018d040mov x4, x5
    0018d044bl sort.order2_func
    0018d048str x0, [sp+96]
    0018d04cstr x1, [sp+88]
    0018d050str x0, [sp+80]
    0018d054str x1, [sp+72]
    0018d058str x0, [sp+152]
    0018d05cstr x1, [sp+160]
    0018d060ldr x3, [sp+168]
    0018d064ldr x4, [sp+176]
    0018d068ldr x0, [sp+136]
    0018d06cldr x5, [sp+144]
    0018d070mov x2, x1
    0018d074mov x1, x5
    0018d078bl sort.order2_func
    0018d07cstr x0, [sp+88]
    0018d080str x1, [sp+96]
    0018d084str x0, [sp+64]
    0018d088str x1, [sp+56]
    0018d08cstr x0, [sp+160]
    0018d090str x1, [sp+168]
    0018d094ldr x4, [sp+176]
    0018d098ldr x2, [sp+152]
    0018d09cldr x5, [sp+136]
    0018d0a0ldr x1, [sp+144]
    0018d0a4mov x3, x0
    0018d0a8mov x0, x5
    0018d0acbl sort.order2_func
    0018d0b0str x0, [sp+96]
    0018d0b4str x1, [sp+88]
    0018d0b8str x0, [sp+112]
    0018d0bcstr x1, [sp+104]
    0018d0c0str x0, [sp+152]
    0018d0c4str x1, [sp+160]
    0018d0c8str x1, [sp+48]
    0018d0ccmov x0, x1
    0018d0d0ldur x29, [sp-8]
    0018d0d4ldr x30, [sp], 128
    0018d0d8ret x30
    0018d0dc
    0018d0dcloc_18d0dc:
    0018d0dcstp x0, x1, [sp+8]
    0018d0e0stp x2, x3, [sp+24]
    0018d0e4stp x4, x5, [sp+40]
    0018d0e8mov x3, x30
    0018d0ecbl runtime.morestack_noctxt.abi0
    0018d0f0ldp x0, x1, [sp+8]
    0018d0f4ldp x2, x3, [sp+24]
    0018d0f8ldp x4, x5, [sp+40]
    0018d0fcb 0x18d000
    0018d000
    0018d100
    0018d100sort.medianAdjacent_func: ; void sort.medianAdjacent_func(sort.lessSwap data, int a, int * swaps)
    0018d100ldr x16, [x28+16]
    0018d104subs xzr, sp, x16
    0018d108b.ls 0x18d15c
    0018d10cstr x30, [sp-80]!
    0018d110stur x29, [sp-8]
    0018d114sub x29, sp, 8
    0018d118str x0, [sp+88]
    0018d11cstr x1, [sp+96]
    0018d120str x2, [sp+104]
    0018d124str x3, [sp+112]
    0018d128str xzr, [sp+56]
    0018d12cldr x0, [sp+88]
    0018d130sub x6, x2, 1
    0018d134add x4, x2, 1
    0018d138mov x5, x3
    0018d13cmov x3, x2
    0018d140mov x2, x6
    0018d144bl sort.median_func
    0018d148str x0, [sp+64]
    0018d14cstr x0, [sp+56]
    0018d150ldur x29, [sp-8]
    0018d154ldr x30, [sp], 80
    0018d158ret x30
    0018d15c
    0018d15cloc_18d15c:
    0018d15cstp x0, x1, [sp+8]
    0018d160stp x2, x3, [sp+24]
    0018d164mov x3, x30
    0018d168bl runtime.morestack_noctxt.abi0
    0018d16cldp x0, x1, [sp+8]
    0018d170ldp x2, x3, [sp+24]
    0018d174b 0x18d100
    0018d178udf 0
    0018d17cudf 0
    0018d100
    0018d180
    0018d180sort.reverseRange_func: ; void sort.reverseRange_func(sort.lessSwap data, int a, int b)
    0018d180ldr x16, [x28+16]
    0018d184subs xzr, sp, x16
    0018d188b.ls 0x18d20c
    0018d18cstr x30, [sp-48]!
    0018d190stur x29, [sp-8]
    0018d194sub x29, sp, 8
    0018d198str x0, [sp+56]
    0018d19cstr x1, [sp+64]
    0018d1a0str x2, [sp+72]
    0018d1a4str x3, [sp+80]
    0018d1a8str x2, [sp+32]
    0018d1acsub x2, x3, 1
    0018d1b0str x2, [sp+24]
    0018d1b4b 0x18d1b8
    0018d1b8
    0018d1b8loc_18d1b8:
    0018d1b8ldr x2, [sp+24]
    0018d1bcldr x3, [sp+32]
    0018d1c0subs xzr, x2, x3
    0018d1c4b.gt 0x18d1cc
    0018d1c8b 0x18d200
    0018d1cc
    0018d1ccloc_18d1cc:
    0018d1ccldr x26, [sp+64]
    0018d1d0ldr x0, [sp+32]
    0018d1d4ldr x1, [sp+24]
    0018d1d8ldr x2, [x26]
    0018d1dcblr x2
    0018d1e0ldr x2, [sp+32]
    0018d1e4add x2, x2, 1
    0018d1e8str x2, [sp+32]
    0018d1ecldr x2, [sp+24]
    0018d1f0sub x2, x2, 1
    0018d1f4str x2, [sp+24]
    0018d1f8b 0x18d1fc
    0018d1fc
    0018d1fcloc_18d1fc:
    0018d1fcb 0x18d1b8
    0018d200
    0018d200loc_18d200:
    0018d200ldur x29, [sp-8]
    0018d204ldr x30, [sp], 48
    0018d208ret x30
    0018d20c
    0018d20cloc_18d20c:
    0018d20cstp x0, x1, [sp+8]
    0018d210stp x2, x3, [sp+24]
    0018d214mov x3, x30
    0018d218bl runtime.morestack_noctxt.abi0
    0018d21cldp x0, x1, [sp+8]
    0018d220ldp x2, x3, [sp+24]
    0018d224b 0x18d180
    0018d228udf 0
    0018d22cudf 0
    0018d180
    0018d230
    0018d230sort.insertionSort: ; void sort.insertionSort(sort.Interface data, int a, int b)
    0018d230ldr x16, [x28+16]
    0018d234subs xzr, sp, x16
    0018d238b.ls 0x18d330
    0018d23cstr x30, [sp-64]!
    0018d240stur x29, [sp-8]
    0018d244sub x29, sp, 8
    0018d248str x0, [sp+72]
    0018d24cstr x1, [sp+80]
    0018d250str x2, [sp+88]
    0018d254str x3, [sp+96]
    0018d258add x3, x2, 1
    0018d25cstr x3, [sp+48]
    0018d260b 0x18d264
    0018d264
    0018d264loc_18d264:
    0018d264ldr x3, [sp+96]
    0018d268ldr x4, [sp+48]
    0018d26csubs xzr, x3, x4
    0018d270b.gt 0x18d278
    0018d274b 0x18d284
    0018d278
    0018d278loc_18d278:
    0018d278ldr x3, [sp+48]
    0018d27cstr x3, [sp+40]
    0018d280b 0x18d290
    0018d284
    0018d284loc_18d284:
    0018d284ldur x29, [sp-8]
    0018d288ldr x30, [sp], 64
    0018d28cret x30
    0018d290
    0018d290loc_18d290:
    0018d290ldr x3, [sp+88]
    0018d294ldr x4, [sp+40]
    0018d298subs xzr, x3, x4
    0018d29ccset x3, lt
    0018d2a0strb w3, [sp+39]
    0018d2a4b.lt 0x18d2ac
    0018d2a8b 0x18d2d8
    0018d2ac
    0018d2acloc_18d2ac:
    0018d2acldr x3, [sp+72]
    0018d2b0ldrsb x27, [x3]
    0018d2b4ldr x1, [sp+40]
    0018d2b8ldr x0, [sp+80]
    0018d2bcldr x3, [x3+32]
    0018d2c0ldr x4, [sp+40]
    0018d2c4sub x2, x4, 1
    0018d2c8blr x3
    0018d2ccstrb w0, [sp+38]
    0018d2d0strb w0, [sp+39]
    0018d2d4b 0x18d2dc
    0018d2d8
    0018d2d8loc_18d2d8:
    0018d2d8b 0x18d2dc
    0018d2dc
    0018d2dcloc_18d2dc:
    0018d2dcldrb w3, [sp+39]
    0018d2e0tbnz w3, 0, 0x18d2e8
    0018d2e4b 0x18d31c
    0018d2e8
    0018d2e8loc_18d2e8:
    0018d2e8ldr x1, [sp+40]
    0018d2ecldr x3, [sp+72]
    0018d2f0ldrsb x27, [x3]
    0018d2f4ldr x3, [x3+40]
    0018d2f8ldr x0, [sp+80]
    0018d2fcldr x4, [sp+40]
    0018d300sub x2, x4, 1
    0018d304blr x3
    0018d308b 0x18d30c
    0018d30c
    0018d30cloc_18d30c:
    0018d30cldr x3, [sp+40]
    0018d310sub x3, x3, 1
    0018d314str x3, [sp+40]
    0018d318b 0x18d290
    0018d31c
    0018d31cloc_18d31c:
    0018d31cb 0x18d320
    0018d320
    0018d320loc_18d320:
    0018d320ldr x3, [sp+48]
    0018d324add x3, x3, 1
    0018d328str x3, [sp+48]
    0018d32cb 0x18d264
    0018d330
    0018d330loc_18d330:
    0018d330stp x0, x1, [sp+8]
    0018d334stp x2, x3, [sp+24]
    0018d338mov x3, x30
    0018d33cbl runtime.morestack_noctxt.abi0
    0018d340ldp x0, x1, [sp+8]
    0018d344ldp x2, x3, [sp+24]
    0018d348b 0x18d230
    0018d34cudf 0
    0018d230
    0018d350
    0018d350sort.siftDown: ; void sort.siftDown(sort.Interface data, int lo, int hi, int first)
    0018d350ldr x16, [x28+16]
    0018d354subs xzr, sp, x16
    0018d358b.ls 0x18d4b4
    0018d35cstr x30, [sp-64]!
    0018d360stur x29, [sp-8]
    0018d364sub x29, sp, 8
    0018d368str x0, [sp+72]
    0018d36cstr x1, [sp+80]
    0018d370str x2, [sp+88]
    0018d374str x3, [sp+96]
    0018d378str x4, [sp+104]
    0018d37cstr x2, [sp+40]
    0018d380b 0x18d384
    0018d384
    0018d384loc_18d384:
    0018d384b 0x18d388
    0018d388
    0018d388loc_18d388:
    0018d388ldr x3, [sp+40]
    0018d38cubfm x3, x3, 63, 62
    0018d390add x4, x3, 1
    0018d394str x4, [sp+48]
    0018d398ldr x5, [sp+96]
    0018d39csubs xzr, x5, x4
    0018d3a0b.le 0x18d3a8
    0018d3a4b 0x18d3b8
    0018d3a8
    0018d3a8loc_18d3a8:
    0018d3a8b 0x18d3ac
    0018d3ac
    0018d3acloc_18d3ac:
    0018d3acldur x29, [sp-8]
    0018d3b0ldr x30, [sp], 64
    0018d3b4ret x30
    0018d3b8
    0018d3b8loc_18d3b8:
    0018d3b8add x3, x3, 2
    0018d3bcldr x4, [sp+96]
    0018d3c0subs xzr, x4, x3
    0018d3c4cset x3, gt
    0018d3c8strb w3, [sp+39]
    0018d3ccb.gt 0x18d3d4
    0018d3d0b 0x18d410
    0018d3d4
    0018d3d4loc_18d3d4:
    0018d3d4ldr x3, [sp+72]
    0018d3d8ldrsb x27, [x3]
    0018d3dcldr x0, [sp+80]
    0018d3e0ldr x3, [x3+32]
    0018d3e4ldr x4, [sp+104]
    0018d3e8ldr x5, [sp+48]
    0018d3ecadd x1, x4, x5
    0018d3f0ldr x4, [sp+104]
    0018d3f4ldr x5, [sp+48]
    0018d3f8add x4, x4, x5
    0018d3fcadd x2, x4, 1
    0018d400blr x3
    0018d404strb w0, [sp+38]
    0018d408strb w0, [sp+39]
    0018d40cb 0x18d414
    0018d410
    0018d410loc_18d410:
    0018d410b 0x18d414
    0018d414
    0018d414loc_18d414:
    0018d414ldrb w3, [sp+39]
    0018d418tbnz w3, 0, 0x18d420
    0018d41cb 0x18d430
    0018d420
    0018d420loc_18d420:
    0018d420ldr x3, [sp+48]
    0018d424add x3, x3, 1
    0018d428str x3, [sp+48]
    0018d42cb 0x18d434
    0018d430
    0018d430loc_18d430:
    0018d430b 0x18d434
    0018d434
    0018d434loc_18d434:
    0018d434ldr x3, [sp+72]
    0018d438ldrsb x27, [x3]
    0018d43cldr x3, [x3+32]
    0018d440ldr x0, [sp+80]
    0018d444ldr x4, [sp+104]
    0018d448ldr x5, [sp+40]
    0018d44cadd x1, x4, x5
    0018d450ldr x4, [sp+104]
    0018d454ldr x5, [sp+48]
    0018d458add x2, x4, x5
    0018d45cblr x3
    0018d460strb w0, [sp+39]
    0018d464tbnz w0, 0, 0x18d46c
    0018d468b 0x18d4a8
    0018d46c
    0018d46cloc_18d46c:
    0018d46cldr x3, [sp+72]
    0018d470ldrsb x27, [x3]
    0018d474ldr x3, [x3+40]
    0018d478ldr x0, [sp+80]
    0018d47cldr x4, [sp+104]
    0018d480ldr x5, [sp+40]
    0018d484add x1, x4, x5
    0018d488ldr x4, [sp+104]
    0018d48cldr x5, [sp+48]
    0018d490add x2, x4, x5
    0018d494blr x3
    0018d498ldr x3, [sp+48]
    0018d49cstr x3, [sp+40]
    0018d4a0b 0x18d4a4
    0018d4a4
    0018d4a4loc_18d4a4:
    0018d4a4b 0x18d384
    0018d4a8
    0018d4a8loc_18d4a8:
    0018d4a8ldur x29, [sp-8]
    0018d4acldr x30, [sp], 64
    0018d4b0ret x30
    0018d4b4
    0018d4b4loc_18d4b4:
    0018d4b4stp x0, x1, [sp+8]
    0018d4b8stp x2, x3, [sp+24]
    0018d4bcstr x4, [sp+40]
    0018d4c0mov x3, x30
    0018d4c4bl runtime.morestack_noctxt.abi0
    0018d4c8ldp x0, x1, [sp+8]
    0018d4ccldp x2, x3, [sp+24]
    0018d4d0ldr x4, [sp+40]
    0018d4d4b 0x18d350
    0018d4d8udf 0
    0018d4dcudf 0
    0018d350
    0018d4e0
    0018d4e0sort.heapSort: ; void sort.heapSort(sort.Interface data, int a, int b)
    0018d4e0ldr x16, [x28+16]
    0018d4e4subs xzr, sp, x16
    0018d4e8b.ls 0x18d5e0
    0018d4ecstr x30, [sp-96]!
    0018d4f0stur x29, [sp-8]
    0018d4f4sub x29, sp, 8
    0018d4f8str x0, [sp+104]
    0018d4fcstr x1, [sp+112]
    0018d500str x2, [sp+120]
    0018d504str x3, [sp+128]
    0018d508str x2, [sp+80]
    0018d50cstr xzr, [sp+48]
    0018d510sub x5, x3, x2
    0018d514str x5, [sp+72]
    0018d518sub x6, x5, 1
    0018d51cadd x5, x5, x6, lsr #63
    0018d520sub x5, x5, 1
    0018d524sbfm x5, x5, 1, 63
    0018d528str x5, [sp+64]
    0018d52cb 0x18d530
    0018d530
    0018d530loc_18d530:
    0018d530ldr x5, [sp+64]
    0018d534tbz x5, 63, 0x18d53c
    0018d538b 0x18d568
    0018d53c
    0018d53cloc_18d53c:
    0018d53cldr x3, [sp+72]
    0018d540ldr x4, [sp+80]
    0018d544ldr x2, [sp+64]
    0018d548ldr x0, [sp+104]
    0018d54cldr x1, [sp+112]
    0018d550bl sort.siftDown
    0018d554b 0x18d558
    0018d558
    0018d558loc_18d558:
    0018d558ldr x5, [sp+64]
    0018d55csub x5, x5, 1
    0018d560str x5, [sp+64]
    0018d564b 0x18d530
    0018d568
    0018d568loc_18d568:
    0018d568ldr x3, [sp+72]
    0018d56csub x3, x3, 1
    0018d570str x3, [sp+56]
    0018d574b 0x18d578
    0018d578
    0018d578loc_18d578:
    0018d578ldr x3, [sp+56]
    0018d57ctbz x3, 63, 0x18d584
    0018d580b 0x18d5d4
    0018d584
    0018d584loc_18d584:
    0018d584ldr x1, [sp+80]
    0018d588ldr x3, [sp+104]
    0018d58cldrsb x27, [x3]
    0018d590ldr x3, [x3+40]
    0018d594ldr x0, [sp+112]
    0018d598ldr x4, [sp+80]
    0018d59cldr x5, [sp+56]
    0018d5a0add x2, x4, x5
    0018d5a4blr x3
    0018d5a8ldr x3, [sp+56]
    0018d5acldr x4, [sp+80]
    0018d5b0ldr x2, [sp+48]
    0018d5b4ldr x0, [sp+104]
    0018d5b8ldr x1, [sp+112]
    0018d5bcbl sort.siftDown
    0018d5c0b 0x18d5c4
    0018d5c4
    0018d5c4loc_18d5c4:
    0018d5c4ldr x3, [sp+56]
    0018d5c8sub x3, x3, 1
    0018d5ccstr x3, [sp+56]
    0018d5d0b 0x18d578
    0018d5d4
    0018d5d4loc_18d5d4:
    0018d5d4ldur x29, [sp-8]
    0018d5d8ldr x30, [sp], 96
    0018d5dcret x30
    0018d5e0
    0018d5e0loc_18d5e0:
    0018d5e0stp x0, x1, [sp+8]
    0018d5e4stp x2, x3, [sp+24]
    0018d5e8mov x3, x30
    0018d5ecbl runtime.morestack_noctxt.abi0
    0018d5f0ldp x0, x1, [sp+8]
    0018d5f4ldp x2, x3, [sp+24]
    0018d5f8b 0x18d4e0
    0018d5fcudf 0
    0018d4e0
    0018d600
    0018d600sort.pdqsort: ; void sort.pdqsort(sort.Interface data, int a, int b, int limit)
    0018d600ldr x16, [x28+16]
    0018d604sub x17, sp, 48
    0018d608subs xzr, x17, x16
    0018d60cb.ls 0x18d950
    0018d610str x30, [sp-176]!
    0018d614stur x29, [sp-8]
    0018d618sub x29, sp, 8
    0018d61cstr x0, [sp+184]
    0018d620str x1, [sp+192]
    0018d624str x2, [sp+200]
    0018d628str x3, [sp+208]
    0018d62cstr x4, [sp+216]
    0018d630orr x4, xzr, 1
    0018d634strb w4, [sp+59]
    0018d638strb w4, [sp+58]
    0018d63cb 0x18d640
    0018d640
    0018d640loc_18d640:
    0018d640b 0x18d644
    0018d644
    0018d644loc_18d644:
    0018d644ldr x4, [sp+208]
    0018d648ldr x5, [sp+200]
    0018d64csub x4, x4, x5
    0018d650str x4, [sp+96]
    0018d654subs xzr, x4, 12
    0018d658b.le 0x18d660
    0018d65cb 0x18d680
    0018d660
    0018d660loc_18d660:
    0018d660ldr x3, [sp+208]
    0018d664ldr x2, [sp+200]
    0018d668ldr x0, [sp+184]
    0018d66cldr x1, [sp+192]
    0018d670bl sort.insertionSort
    0018d674ldur x29, [sp-8]
    0018d678ldr x30, [sp], 176
    0018d67cret x30
    0018d680
    0018d680loc_18d680:
    0018d680ldr x4, [sp+216]
    0018d684cbz x4, 0x18d68c
    0018d688b 0x18d6ac
    0018d68c
    0018d68cloc_18d68c:
    0018d68cldr x3, [sp+208]
    0018d690ldr x2, [sp+200]
    0018d694ldr x0, [sp+184]
    0018d698ldr x1, [sp+192]
    0018d69cbl sort.heapSort
    0018d6a0ldur x29, [sp-8]
    0018d6a4ldr x30, [sp], 176
    0018d6a8ret x30
    0018d6ac
    0018d6acloc_18d6ac:
    0018d6acldrb w4, [sp+59]
    0018d6b0tbnz w4, 0, 0x18d6b8
    0018d6b4b 0x18d6bc
    0018d6b8
    0018d6b8loc_18d6b8:
    0018d6b8b 0x18d6e0
    0018d6bc
    0018d6bcloc_18d6bc:
    0018d6bcldr x3, [sp+208]
    0018d6c0ldr x2, [sp+200]
    0018d6c4ldr x0, [sp+184]
    0018d6c8ldr x1, [sp+192]
    0018d6ccbl sort.breakPatterns
    0018d6d0ldr x4, [sp+216]
    0018d6d4sub x4, x4, 1
    0018d6d8str x4, [sp+216]
    0018d6dcb 0x18d6e0
    0018d6e0
    0018d6e0loc_18d6e0:
    0018d6e0ldr x3, [sp+208]
    0018d6e4ldr x2, [sp+200]
    0018d6e8ldr x0, [sp+184]
    0018d6ecldr x1, [sp+192]
    0018d6f0bl sort.choosePivot
    0018d6f4str x0, [sp+144]
    0018d6f8str x1, [sp+136]
    0018d6fcstr x0, [sp+128]
    0018d700str x1, [sp+160]
    0018d704str x0, [sp+72]
    0018d708str x1, [sp+112]
    0018d70csubs xzr, x1, 2
    0018d710b.eq 0x18d718
    0018d714b 0x18d754
    0018d718
    0018d718loc_18d718:
    0018d718ldr x3, [sp+208]
    0018d71cldr x2, [sp+200]
    0018d720ldr x0, [sp+184]
    0018d724ldr x1, [sp+192]
    0018d728bl sort.reverseRange
    0018d72cldr x4, [sp+208]
    0018d730ldr x5, [sp+72]
    0018d734ldr x6, [sp+200]
    0018d738add x4, x4, x6
    0018d73csub x4, x4, x5
    0018d740sub x4, x4, 1
    0018d744str x4, [sp+72]
    0018d748orr x4, xzr, 1
    0018d74cstr x4, [sp+112]
    0018d750b 0x18d75c
    0018d754
    0018d754loc_18d754:
    0018d754orr x4, xzr, 1
    0018d758b 0x18d75c
    0018d75c
    0018d75cloc_18d75c:
    0018d75cldrb w5, [sp+59]
    0018d760strb w5, [sp+61]
    0018d764tbnz w5, 0, 0x18d76c
    0018d768b 0x18d778
    0018d76c
    0018d76cloc_18d76c:
    0018d76cldrb w5, [sp+58]
    0018d770strb w5, [sp+61]
    0018d774b 0x18d77c
    0018d778
    0018d778loc_18d778:
    0018d778b 0x18d77c
    0018d77c
    0018d77cloc_18d77c:
    0018d77cldrb w5, [sp+61]
    0018d780strb w5, [sp+62]
    0018d784tbnz w5, 0, 0x18d78c
    0018d788b 0x18d7a0
    0018d78c
    0018d78cloc_18d78c:
    0018d78cldr x5, [sp+112]
    0018d790subs xzr, x5, 1
    0018d794cset x5, eq
    0018d798strb w5, [sp+62]
    0018d79cb 0x18d7a4
    0018d7a0
    0018d7a0loc_18d7a0:
    0018d7a0b 0x18d7a4
    0018d7a4
    0018d7a4loc_18d7a4:
    0018d7a4ldrb w5, [sp+62]
    0018d7a8tbnz w5, 0, 0x18d7b0
    0018d7acb 0x18d7e0
    0018d7b0
    0018d7b0loc_18d7b0:
    0018d7b0ldr x3, [sp+208]
    0018d7b4ldr x2, [sp+200]
    0018d7b8ldr x0, [sp+184]
    0018d7bcldr x1, [sp+192]
    0018d7c0bl sort.partialInsertionSort
    0018d7c4strb w0, [sp+61]
    0018d7c8tbnz w0, 0, 0x18d7d0
    0018d7ccb 0x18d7dc
    0018d7d0
    0018d7d0loc_18d7d0:
    0018d7d0ldur x29, [sp-8]
    0018d7d4ldr x30, [sp], 176
    0018d7d8ret x30
    0018d7dc
    0018d7dcloc_18d7dc:
    0018d7dcb 0x18d7e4
    0018d7e0
    0018d7e0loc_18d7e0:
    0018d7e0b 0x18d7e4
    0018d7e4
    0018d7e4loc_18d7e4:
    0018d7e4ldr x5, [sp+200]
    0018d7e8subs xzr, x5, 0
    0018d7eccset x5, gt
    0018d7f0strb w5, [sp+61]
    0018d7f4b.gt 0x18d7fc
    0018d7f8b 0x18d82c
    0018d7fc
    0018d7fcloc_18d7fc:
    0018d7fcldr x3, [sp+184]
    0018d800ldrsb x27, [x3]
    0018d804ldr x2, [sp+72]
    0018d808ldr x0, [sp+192]
    0018d80cldr x3, [x3+32]
    0018d810ldr x4, [sp+200]
    0018d814sub x1, x4, 1
    0018d818blr x3
    0018d81cstrb w0, [sp+62]
    0018d820eor x3, x0, 1
    0018d824strb w3, [sp+61]
    0018d828b 0x18d830
    0018d82c
    0018d82cloc_18d82c:
    0018d82cb 0x18d830
    0018d830
    0018d830loc_18d830:
    0018d830ldrb w5, [sp+61]
    0018d834tbnz w5, 0, 0x18d83c
    0018d838b 0x18d860
    0018d83c
    0018d83cloc_18d83c:
    0018d83cldr x3, [sp+208]
    0018d840ldr x4, [sp+72]
    0018d844ldr x2, [sp+200]
    0018d848ldr x0, [sp+184]
    0018d84cldr x1, [sp+192]
    0018d850bl sort.partitionEqual
    0018d854str x0, [sp+88]
    0018d858str x0, [sp+200]
    0018d85cb 0x18d94c
    0018d860
    0018d860loc_18d860:
    0018d860ldr x3, [sp+208]
    0018d864ldr x4, [sp+72]
    0018d868ldr x2, [sp+200]
    0018d86cldr x0, [sp+184]
    0018d870ldr x1, [sp+192]
    0018d874bl sort.partition
    0018d878str x0, [sp+144]
    0018d87cstrb w1, [sp+61]
    0018d880ldr x5, [sp+144]
    0018d884str x5, [sp+152]
    0018d888ldrb w5, [sp+61]
    0018d88cstrb w5, [sp+63]
    0018d890ldr x5, [sp+152]
    0018d894str x5, [sp+80]
    0018d898ldrb w6, [sp+63]
    0018d89cstrb w6, [sp+60]
    0018d8a0strb w6, [sp+58]
    0018d8a4ldr x6, [sp+200]
    0018d8a8ldr x7, [sp+80]
    0018d8acsub x6, x7, x6
    0018d8b0str x6, [sp+104]
    0018d8b4ldr x7, [sp+208]
    0018d8b8sub x5, x7, x5
    0018d8bcstr x5, [sp+64]
    0018d8c0ldr x7, [sp+96]
    0018d8c4sbfm x8, x7, 63, 63
    0018d8c8add x7, x7, x8, lsr #61
    0018d8ccsbfm x8, x7, 3, 63
    0018d8d0str x8, [sp+120]
    0018d8d4subs xzr, x5, x6
    0018d8d8b.gt 0x18d8e0
    0018d8dcb 0x18d914
    0018d8e0
    0018d8e0loc_18d8e0:
    0018d8e0subs xzr, x6, x7, asr #3
    0018d8e4cset x5, ge
    0018d8e8strb w5, [sp+59]
    0018d8ecldr x3, [sp+80]
    0018d8f0ldr x4, [sp+216]
    0018d8f4ldr x2, [sp+200]
    0018d8f8ldr x0, [sp+184]
    0018d8fcldr x1, [sp+192]
    0018d900bl sort.pdqsort
    0018d904ldr x5, [sp+80]
    0018d908add x5, x5, 1
    0018d90cstr x5, [sp+200]
    0018d910b 0x18d948
    0018d914
    0018d914loc_18d914:
    0018d914subs xzr, x5, x7, asr #3
    0018d918cset x5, ge
    0018d91cstrb w5, [sp+59]
    0018d920ldr x3, [sp+208]
    0018d924ldr x4, [sp+216]
    0018d928ldr x0, [sp+184]
    0018d92cldr x1, [sp+192]
    0018d930ldr x5, [sp+80]
    0018d934add x2, x5, 1
    0018d938bl sort.pdqsort
    0018d93cldr x5, [sp+80]
    0018d940str x5, [sp+208]
    0018d944b 0x18d948
    0018d948
    0018d948loc_18d948:
    0018d948b 0x18d94c
    0018d94c
    0018d94cloc_18d94c:
    0018d94cb 0x18d640
    0018d950
    0018d950loc_18d950:
    0018d950stp x0, x1, [sp+8]
    0018d954stp x2, x3, [sp+24]
    0018d958str x4, [sp+40]
    0018d95cmov x3, x30
    0018d960bl runtime.morestack_noctxt.abi0
    0018d964ldp x0, x1, [sp+8]
    0018d968ldp x2, x3, [sp+24]
    0018d96cldr x4, [sp+40]
    0018d970b 0x18d600
    0018d974udf 0
    0018d978udf 0
    0018d97cudf 0
    0018d600
    0018d980
    0018d980sort.partition: ; void sort.partition(sort.Interface data, int a, int b, int pivot)
    0018d980ldr x16, [x28+16]
    0018d984subs xzr, sp, x16
    0018d988b.ls 0x18dcbc
    0018d98cstr x30, [sp-80]!
    0018d990stur x29, [sp-8]
    0018d994sub x29, sp, 8
    0018d998str x0, [sp+88]
    0018d99cstr x1, [sp+96]
    0018d9a0str x2, [sp+104]
    0018d9a4str x3, [sp+112]
    0018d9a8str x4, [sp+120]
    0018d9acstr xzr, [sp+48]
    0018d9b0strb wzr, [sp+45]
    0018d9b4ldr x1, [sp+104]
    0018d9b8ldr x2, [sp+120]
    0018d9bcldr x3, [sp+88]
    0018d9c0ldrsb x27, [x3]
    0018d9c4ldr x3, [x3+40]
    0018d9c8ldr x0, [sp+96]
    0018d9ccblr x3
    0018d9d0ldr x3, [sp+104]
    0018d9d4add x3, x3, 1
    0018d9d8str x3, [sp+64]
    0018d9dcldr x3, [sp+112]
    0018d9e0sub x3, x3, 1
    0018d9e4str x3, [sp+56]
    0018d9e8b 0x18d9ec
    0018d9ec
    0018d9ecloc_18d9ec:
    0018d9ecldr x3, [sp+56]
    0018d9f0ldr x4, [sp+64]
    0018d9f4subs xzr, x3, x4
    0018d9f8cset x3, ge
    0018d9fcstrb w3, [sp+47]
    0018da00b.ge 0x18da08
    0018da04b 0x18da30
    0018da08
    0018da08loc_18da08:
    0018da08ldr x3, [sp+88]
    0018da0cldrsb x27, [x3]
    0018da10ldr x1, [sp+64]
    0018da14ldr x2, [sp+104]
    0018da18ldr x0, [sp+96]
    0018da1cldr x3, [x3+32]
    0018da20blr x3
    0018da24strb w0, [sp+46]
    0018da28strb w0, [sp+47]
    0018da2cb 0x18da34
    0018da30
    0018da30loc_18da30:
    0018da30b 0x18da34
    0018da34
    0018da34loc_18da34:
    0018da34ldrb w3, [sp+47]
    0018da38tbnz w3, 0, 0x18da40
    0018da3cb 0x18da54
    0018da40
    0018da40loc_18da40:
    0018da40ldr x3, [sp+64]
    0018da44add x3, x3, 1
    0018da48str x3, [sp+64]
    0018da4cb 0x18da50
    0018da50
    0018da50loc_18da50:
    0018da50b 0x18d9ec
    0018da54
    0018da54loc_18da54:
    0018da54b 0x18da58
    0018da58
    0018da58loc_18da58:
    0018da58ldr x3, [sp+56]
    0018da5cldr x4, [sp+64]
    0018da60subs xzr, x3, x4
    0018da64cset x3, ge
    0018da68strb w3, [sp+47]
    0018da6cb.ge 0x18da74
    0018da70b 0x18daa0
    0018da74
    0018da74loc_18da74:
    0018da74ldr x3, [sp+88]
    0018da78ldrsb x27, [x3]
    0018da7cldr x1, [sp+56]
    0018da80ldr x2, [sp+104]
    0018da84ldr x0, [sp+96]
    0018da88ldr x3, [x3+32]
    0018da8cblr x3
    0018da90strb w0, [sp+46]
    0018da94eor x3, x0, 1
    0018da98strb w3, [sp+47]
    0018da9cb 0x18daa4
    0018daa0
    0018daa0loc_18daa0:
    0018daa0b 0x18daa4
    0018daa4
    0018daa4loc_18daa4:
    0018daa4ldrb w3, [sp+47]
    0018daa8tbnz w3, 0, 0x18dab0
    0018daacb 0x18dac4
    0018dab0
    0018dab0loc_18dab0:
    0018dab0ldr x3, [sp+56]
    0018dab4sub x3, x3, 1
    0018dab8str x3, [sp+56]
    0018dabcb 0x18dac0
    0018dac0
    0018dac0loc_18dac0:
    0018dac0b 0x18da58
    0018dac4
    0018dac4loc_18dac4:
    0018dac4ldr x3, [sp+56]
    0018dac8ldr x4, [sp+64]
    0018daccsubs xzr, x3, x4
    0018dad0b.lt 0x18dad8
    0018dad4b 0x18db14
    0018dad8
    0018dad8loc_18dad8:
    0018dad8ldr x1, [sp+56]
    0018dadcldr x2, [sp+104]
    0018dae0ldr x3, [sp+88]
    0018dae4ldrsb x27, [x3]
    0018dae8ldr x3, [x3+40]
    0018daecldr x0, [sp+96]
    0018daf0blr x3
    0018daf4ldr x3, [sp+56]
    0018daf8str x3, [sp+48]
    0018dafcorr x1, xzr, 1
    0018db00strb w1, [sp+45]
    0018db04ldr x0, [sp+48]
    0018db08ldur x29, [sp-8]
    0018db0cldr x30, [sp], 80
    0018db10ret x30
    0018db14
    0018db14loc_18db14:
    0018db14ldr x1, [sp+64]
    0018db18ldr x2, [sp+56]
    0018db1cldr x3, [sp+88]
    0018db20ldrsb x27, [x3]
    0018db24ldr x3, [x3+40]
    0018db28ldr x0, [sp+96]
    0018db2cblr x3
    0018db30ldr x3, [sp+64]
    0018db34add x3, x3, 1
    0018db38str x3, [sp+64]
    0018db3cldr x3, [sp+56]
    0018db40sub x3, x3, 1
    0018db44str x3, [sp+56]
    0018db48b 0x18db4c
    0018db4c
    0018db4cloc_18db4c:
    0018db4cb 0x18db50
    0018db50
    0018db50loc_18db50:
    0018db50b 0x18db54
    0018db54
    0018db54loc_18db54:
    0018db54ldr x3, [sp+56]
    0018db58ldr x4, [sp+64]
    0018db5csubs xzr, x3, x4
    0018db60cset x3, ge
    0018db64strb w3, [sp+47]
    0018db68b.ge 0x18db70
    0018db6cb 0x18db98
    0018db70
    0018db70loc_18db70:
    0018db70ldr x3, [sp+88]
    0018db74ldrsb x27, [x3]
    0018db78ldr x1, [sp+64]
    0018db7cldr x2, [sp+104]
    0018db80ldr x0, [sp+96]
    0018db84ldr x3, [x3+32]
    0018db88blr x3
    0018db8cstrb w0, [sp+46]
    0018db90strb w0, [sp+47]
    0018db94b 0x18db9c
    0018db98
    0018db98loc_18db98:
    0018db98b 0x18db9c
    0018db9c
    0018db9cloc_18db9c:
    0018db9cldrb w3, [sp+47]
    0018dba0tbnz w3, 0, 0x18dba8
    0018dba4b 0x18dbbc
    0018dba8
    0018dba8loc_18dba8:
    0018dba8ldr x3, [sp+64]
    0018dbacadd x3, x3, 1
    0018dbb0str x3, [sp+64]
    0018dbb4b 0x18dbb8
    0018dbb8
    0018dbb8loc_18dbb8:
    0018dbb8b 0x18db54
    0018dbbc
    0018dbbcloc_18dbbc:
    0018dbbcb 0x18dbc0
    0018dbc0
    0018dbc0loc_18dbc0:
    0018dbc0ldr x3, [sp+56]
    0018dbc4ldr x4, [sp+64]
    0018dbc8subs xzr, x3, x4
    0018dbcccset x3, ge
    0018dbd0strb w3, [sp+47]
    0018dbd4b.ge 0x18dbdc
    0018dbd8b 0x18dc08
    0018dbdc
    0018dbdcloc_18dbdc:
    0018dbdcldr x3, [sp+88]
    0018dbe0ldrsb x27, [x3]
    0018dbe4ldr x1, [sp+56]
    0018dbe8ldr x2, [sp+104]
    0018dbecldr x0, [sp+96]
    0018dbf0ldr x3, [x3+32]
    0018dbf4blr x3
    0018dbf8strb w0, [sp+46]
    0018dbfceor x3, x0, 1
    0018dc00strb w3, [sp+47]
    0018dc04b 0x18dc0c
    0018dc08
    0018dc08loc_18dc08:
    0018dc08b 0x18dc0c
    0018dc0c
    0018dc0cloc_18dc0c:
    0018dc0cldrb w3, [sp+47]
    0018dc10tbnz w3, 0, 0x18dc18
    0018dc14b 0x18dc2c
    0018dc18
    0018dc18loc_18dc18:
    0018dc18ldr x3, [sp+56]
    0018dc1csub x3, x3, 1
    0018dc20str x3, [sp+56]
    0018dc24b 0x18dc28
    0018dc28
    0018dc28loc_18dc28:
    0018dc28b 0x18dbc0
    0018dc2c
    0018dc2cloc_18dc2c:
    0018dc2cldr x3, [sp+56]
    0018dc30ldr x4, [sp+64]
    0018dc34subs xzr, x3, x4
    0018dc38b.lt 0x18dc40
    0018dc3cb 0x18dc80
    0018dc40
    0018dc40loc_18dc40:
    0018dc40b 0x18dc44
    0018dc44
    0018dc44loc_18dc44:
    0018dc44ldr x1, [sp+56]
    0018dc48ldr x2, [sp+104]
    0018dc4cldr x3, [sp+88]
    0018dc50ldrsb x27, [x3]
    0018dc54ldr x3, [x3+40]
    0018dc58ldr x0, [sp+96]
    0018dc5cblr x3
    0018dc60ldr x3, [sp+56]
    0018dc64str x3, [sp+48]
    0018dc68strb wzr, [sp+45]
    0018dc6cldr x0, [sp+48]
    0018dc70mov x1, xzr
    0018dc74ldur x29, [sp-8]
    0018dc78ldr x30, [sp], 80
    0018dc7cret x30
    0018dc80
    0018dc80loc_18dc80:
    0018dc80ldr x1, [sp+64]
    0018dc84ldr x2, [sp+56]
    0018dc88ldr x3, [sp+88]
    0018dc8cldrsb x27, [x3]
    0018dc90ldr x3, [x3+40]
    0018dc94ldr x0, [sp+96]
    0018dc98blr x3
    0018dc9cldr x3, [sp+64]
    0018dca0add x3, x3, 1
    0018dca4str x3, [sp+64]
    0018dca8ldr x3, [sp+56]
    0018dcacsub x3, x3, 1
    0018dcb0str x3, [sp+56]
    0018dcb4b 0x18dcb8
    0018dcb8
    0018dcb8loc_18dcb8:
    0018dcb8b 0x18db4c
    0018dcbc
    0018dcbcloc_18dcbc:
    0018dcbcstp x0, x1, [sp+8]
    0018dcc0stp x2, x3, [sp+24]
    0018dcc4str x4, [sp+40]
    0018dcc8mov x3, x30
    0018dcccbl runtime.morestack_noctxt.abi0
    0018dcd0ldp x0, x1, [sp+8]
    0018dcd4ldp x2, x3, [sp+24]
    0018dcd8ldr x4, [sp+40]
    0018dcdcb 0x18d980
    0018d980
    0018dce0
    0018dce0sort.partitionEqual: ; void sort.partitionEqual(sort.Interface data, int a, int b, int pivot)
    0018dce0ldr x16, [x28+16]
    0018dce4subs xzr, sp, x16
    0018dce8b.ls 0x18de90
    0018dcecstr x30, [sp-80]!
    0018dcf0stur x29, [sp-8]
    0018dcf4sub x29, sp, 8
    0018dcf8str x0, [sp+88]
    0018dcfcstr x1, [sp+96]
    0018dd00str x2, [sp+104]
    0018dd04str x3, [sp+112]
    0018dd08str x4, [sp+120]
    0018dd0cstr xzr, [sp+48]
    0018dd10ldr x3, [sp+88]
    0018dd14ldrsb x27, [x3]
    0018dd18ldr x3, [x3+40]
    0018dd1cldr x0, [sp+96]
    0018dd20mov x1, x2
    0018dd24mov x2, x4
    0018dd28blr x3
    0018dd2cldr x3, [sp+104]
    0018dd30add x3, x3, 1
    0018dd34str x3, [sp+64]
    0018dd38ldr x3, [sp+112]
    0018dd3csub x3, x3, 1
    0018dd40str x3, [sp+56]
    0018dd44b 0x18dd48
    0018dd48
    0018dd48loc_18dd48:
    0018dd48b 0x18dd4c
    0018dd4c
    0018dd4cloc_18dd4c:
    0018dd4cb 0x18dd50
    0018dd50
    0018dd50loc_18dd50:
    0018dd50ldr x3, [sp+56]
    0018dd54ldr x4, [sp+64]
    0018dd58subs xzr, x3, x4
    0018dd5ccset x3, ge
    0018dd60strb w3, [sp+47]
    0018dd64b.ge 0x18dd6c
    0018dd68b 0x18dd98
    0018dd6c
    0018dd6cloc_18dd6c:
    0018dd6cldr x3, [sp+88]
    0018dd70ldrsb x27, [x3]
    0018dd74ldr x1, [sp+104]
    0018dd78ldr x2, [sp+64]
    0018dd7cldr x0, [sp+96]
    0018dd80ldr x3, [x3+32]
    0018dd84blr x3
    0018dd88strb w0, [sp+46]
    0018dd8ceor x3, x0, 1
    0018dd90strb w3, [sp+47]
    0018dd94b 0x18dd9c
    0018dd98
    0018dd98loc_18dd98:
    0018dd98b 0x18dd9c
    0018dd9c
    0018dd9cloc_18dd9c:
    0018dd9cldrb w3, [sp+47]
    0018dda0tbnz w3, 0, 0x18dda8
    0018dda4b 0x18ddbc
    0018dda8
    0018dda8loc_18dda8:
    0018dda8ldr x3, [sp+64]
    0018ddacadd x3, x3, 1
    0018ddb0str x3, [sp+64]
    0018ddb4b 0x18ddb8
    0018ddb8
    0018ddb8loc_18ddb8:
    0018ddb8b 0x18dd50
    0018ddbc
    0018ddbcloc_18ddbc:
    0018ddbcb 0x18ddc0
    0018ddc0
    0018ddc0loc_18ddc0:
    0018ddc0ldr x3, [sp+56]
    0018ddc4ldr x4, [sp+64]
    0018ddc8subs xzr, x3, x4
    0018ddcccset x3, ge
    0018ddd0strb w3, [sp+47]
    0018ddd4b.ge 0x18dddc
    0018ddd8b 0x18de04
    0018dddc
    0018dddcloc_18dddc:
    0018dddcldr x3, [sp+88]
    0018dde0ldrsb x27, [x3]
    0018dde4ldr x1, [sp+104]
    0018dde8ldr x2, [sp+56]
    0018ddecldr x0, [sp+96]
    0018ddf0ldr x3, [x3+32]
    0018ddf4blr x3
    0018ddf8strb w0, [sp+46]
    0018ddfcstrb w0, [sp+47]
    0018de00b 0x18de08
    0018de04
    0018de04loc_18de04:
    0018de04b 0x18de08
    0018de08
    0018de08loc_18de08:
    0018de08ldrb w3, [sp+47]
    0018de0ctbnz w3, 0, 0x18de14
    0018de10b 0x18de28
    0018de14
    0018de14loc_18de14:
    0018de14ldr x3, [sp+56]
    0018de18sub x3, x3, 1
    0018de1cstr x3, [sp+56]
    0018de20b 0x18de24
    0018de24
    0018de24loc_18de24:
    0018de24b 0x18ddc0
    0018de28
    0018de28loc_18de28:
    0018de28ldr x3, [sp+56]
    0018de2cldr x4, [sp+64]
    0018de30subs xzr, x3, x4
    0018de34b.lt 0x18de3c
    0018de38b 0x18de54
    0018de3c
    0018de3cloc_18de3c:
    0018de3cb 0x18de40
    0018de40
    0018de40loc_18de40:
    0018de40ldr x0, [sp+64]
    0018de44str x0, [sp+48]
    0018de48ldur x29, [sp-8]
    0018de4cldr x30, [sp], 80
    0018de50ret x30
    0018de54
    0018de54loc_18de54:
    0018de54ldr x1, [sp+64]
    0018de58ldr x2, [sp+56]
    0018de5cldr x3, [sp+88]
    0018de60ldrsb x27, [x3]
    0018de64ldr x3, [x3+40]
    0018de68ldr x0, [sp+96]
    0018de6cblr x3
    0018de70ldr x3, [sp+64]
    0018de74add x3, x3, 1
    0018de78str x3, [sp+64]
    0018de7cldr x3, [sp+56]
    0018de80sub x3, x3, 1
    0018de84str x3, [sp+56]
    0018de88b 0x18de8c
    0018de8c
    0018de8cloc_18de8c:
    0018de8cb 0x18dd48
    0018de90
    0018de90loc_18de90:
    0018de90stp x0, x1, [sp+8]
    0018de94stp x2, x3, [sp+24]
    0018de98str x4, [sp+40]
    0018de9cmov x3, x30
    0018dea0bl runtime.morestack_noctxt.abi0
    0018dea4ldp x0, x1, [sp+8]
    0018dea8ldp x2, x3, [sp+24]
    0018deacldr x4, [sp+40]
    0018deb0b 0x18dce0
    0018deb4udf 0
    0018deb8udf 0
    0018debcudf 0
    0018dce0
    0018dec0
    0018dec0sort.partialInsertionSort: ; void sort.partialInsertionSort(sort.Interface data, int a, int b)
    0018dec0ldr x16, [x28+16]
    0018dec4subs xzr, sp, x16
    0018dec8b.ls 0x18e174
    0018deccstr x30, [sp-80]!
    0018ded0stur x29, [sp-8]
    0018ded4sub x29, sp, 8
    0018ded8str x0, [sp+88]
    0018dedcstr x1, [sp+96]
    0018dee0str x2, [sp+104]
    0018dee4str x3, [sp+112]
    0018dee8strb wzr, [sp+37]
    0018deecldr x3, [sp+104]
    0018def0add x3, x3, 1
    0018def4str x3, [sp+64]
    0018def8str xzr, [sp+56]
    0018defcb 0x18df00
    0018df00
    0018df00loc_18df00:
    0018df00ldr x3, [sp+56]
    0018df04subs xzr, x3, 5
    0018df08b.lt 0x18df10
    0018df0cb 0x18df14
    0018df10
    0018df10loc_18df10:
    0018df10b 0x18df28
    0018df14
    0018df14loc_18df14:
    0018df14strb wzr, [sp+37]
    0018df18mov x0, xzr
    0018df1cldur x29, [sp-8]
    0018df20ldr x30, [sp], 80
    0018df24ret x30
    0018df28
    0018df28loc_18df28:
    0018df28ldr x3, [sp+112]
    0018df2cldr x4, [sp+64]
    0018df30subs xzr, x3, x4
    0018df34cset x3, gt
    0018df38strb w3, [sp+39]
    0018df3cb.gt 0x18df44
    0018df40b 0x18df74
    0018df44
    0018df44loc_18df44:
    0018df44ldr x3, [sp+88]
    0018df48ldrsb x27, [x3]
    0018df4cldr x1, [sp+64]
    0018df50ldr x0, [sp+96]
    0018df54ldr x3, [x3+32]
    0018df58ldr x4, [sp+64]
    0018df5csub x2, x4, 1
    0018df60blr x3
    0018df64strb w0, [sp+38]
    0018df68eor x3, x0, 1
    0018df6cstrb w3, [sp+39]
    0018df70b 0x18df78
    0018df74
    0018df74loc_18df74:
    0018df74b 0x18df78
    0018df78
    0018df78loc_18df78:
    0018df78ldrb w3, [sp+39]
    0018df7ctbnz w3, 0, 0x18df84
    0018df80b 0x18df98
    0018df84
    0018df84loc_18df84:
    0018df84ldr x3, [sp+64]
    0018df88add x3, x3, 1
    0018df8cstr x3, [sp+64]
    0018df90b 0x18df94
    0018df94
    0018df94loc_18df94:
    0018df94b 0x18df28
    0018df98
    0018df98loc_18df98:
    0018df98ldr x3, [sp+112]
    0018df9cldr x4, [sp+64]
    0018dfa0subs xzr, x3, x4
    0018dfa4b.eq 0x18dfac
    0018dfa8b 0x18dfc0
    0018dfac
    0018dfacloc_18dfac:
    0018dfacorr x0, xzr, 1
    0018dfb0strb w0, [sp+37]
    0018dfb4ldur x29, [sp-8]
    0018dfb8ldr x30, [sp], 80
    0018dfbcret x30
    0018dfc0
    0018dfc0loc_18dfc0:
    0018dfc0ldr x3, [sp+104]
    0018dfc4ldr x4, [sp+112]
    0018dfc8sub x3, x4, x3
    0018dfccsubs xzr, x3, 50
    0018dfd0b.lt 0x18dfd8
    0018dfd4b 0x18dfec
    0018dfd8
    0018dfd8loc_18dfd8:
    0018dfd8strb wzr, [sp+37]
    0018dfdcmov x0, xzr
    0018dfe0ldur x29, [sp-8]
    0018dfe4ldr x30, [sp], 80
    0018dfe8ret x30
    0018dfec
    0018dfecloc_18dfec:
    0018dfecldr x1, [sp+64]
    0018dff0ldr x3, [sp+88]
    0018dff4ldrsb x27, [x3]
    0018dff8ldr x3, [x3+40]
    0018dffcldr x0, [sp+96]
    0018e000ldr x4, [sp+64]
    0018e004sub x2, x4, 1
    0018e008blr x3
    0018e00cldr x3, [sp+104]
    0018e010ldr x4, [sp+64]
    0018e014sub x3, x4, x3
    0018e018subs xzr, x3, 2
    0018e01cb.ge 0x18e024
    0018e020b 0x18e034
    0018e024
    0018e024loc_18e024:
    0018e024ldr x3, [sp+64]
    0018e028sub x3, x3, 1
    0018e02cstr x3, [sp+48]
    0018e030b 0x18e0f8
    0018e034
    0018e034loc_18e034:
    0018e034b 0x18e038
    0018e038
    0018e038loc_18e038:
    0018e038ldr x3, [sp+64]
    0018e03cldr x4, [sp+112]
    0018e040sub x3, x4, x3
    0018e044subs xzr, x3, 2
    0018e048b.ge 0x18e050
    0018e04cb 0x18e060
    0018e050
    0018e050loc_18e050:
    0018e050ldr x3, [sp+64]
    0018e054add x3, x3, 1
    0018e058str x3, [sp+40]
    0018e05cb 0x18e078
    0018e060
    0018e060loc_18e060:
    0018e060b 0x18e064
    0018e064
    0018e064loc_18e064:
    0018e064b 0x18e068
    0018e068
    0018e068loc_18e068:
    0018e068ldr x3, [sp+56]
    0018e06cadd x3, x3, 1
    0018e070str x3, [sp+56]
    0018e074b 0x18df00
    0018e078
    0018e078loc_18e078:
    0018e078ldr x3, [sp+112]
    0018e07cldr x4, [sp+40]
    0018e080subs xzr, x3, x4
    0018e084b.gt 0x18e08c
    0018e088b 0x18e0f0
    0018e08c
    0018e08cloc_18e08c:
    0018e08cldr x1, [sp+40]
    0018e090ldr x3, [sp+88]
    0018e094ldrsb x27, [x3]
    0018e098ldr x3, [x3+32]
    0018e09cldr x0, [sp+96]
    0018e0a0ldr x4, [sp+40]
    0018e0a4sub x2, x4, 1
    0018e0a8blr x3
    0018e0acstrb w0, [sp+39]
    0018e0b0tbnz w0, 0, 0x18e0b8
    0018e0b4b 0x18e0ec
    0018e0b8
    0018e0b8loc_18e0b8:
    0018e0b8ldr x1, [sp+40]
    0018e0bcldr x3, [sp+88]
    0018e0c0ldrsb x27, [x3]
    0018e0c4ldr x3, [x3+40]
    0018e0c8ldr x0, [sp+96]
    0018e0ccldr x4, [sp+40]
    0018e0d0sub x2, x4, 1
    0018e0d4blr x3
    0018e0d8b 0x18e0dc
    0018e0dc
    0018e0dcloc_18e0dc:
    0018e0dcldr x3, [sp+40]
    0018e0e0add x3, x3, 1
    0018e0e4str x3, [sp+40]
    0018e0e8b 0x18e078
    0018e0ec
    0018e0ecloc_18e0ec:
    0018e0ecb 0x18e0f4
    0018e0f0
    0018e0f0loc_18e0f0:
    0018e0f0b 0x18e0f4
    0018e0f4
    0018e0f4loc_18e0f4:
    0018e0f4b 0x18e064
    0018e0f8
    0018e0f8loc_18e0f8:
    0018e0f8ldr x3, [sp+48]
    0018e0fcsubs xzr, x3, 0
    0018e100b.gt 0x18e108
    0018e104b 0x18e16c
    0018e108
    0018e108loc_18e108:
    0018e108ldr x1, [sp+48]
    0018e10cldr x3, [sp+88]
    0018e110ldrsb x27, [x3]
    0018e114ldr x3, [x3+32]
    0018e118ldr x0, [sp+96]
    0018e11cldr x4, [sp+48]
    0018e120sub x2, x4, 1
    0018e124blr x3
    0018e128strb w0, [sp+39]
    0018e12ctbnz w0, 0, 0x18e134
    0018e130b 0x18e168
    0018e134
    0018e134loc_18e134:
    0018e134ldr x1, [sp+48]
    0018e138ldr x3, [sp+88]
    0018e13cldrsb x27, [x3]
    0018e140ldr x3, [x3+40]
    0018e144ldr x0, [sp+96]
    0018e148ldr x4, [sp+48]
    0018e14csub x2, x4, 1
    0018e150blr x3
    0018e154b 0x18e158
    0018e158
    0018e158loc_18e158:
    0018e158ldr x3, [sp+48]
    0018e15csub x3, x3, 1
    0018e160str x3, [sp+48]
    0018e164b 0x18e0f8
    0018e168
    0018e168loc_18e168:
    0018e168b 0x18e170
    0018e16c
    0018e16cloc_18e16c:
    0018e16cb 0x18e170
    0018e170
    0018e170loc_18e170:
    0018e170b 0x18e038
    0018e174
    0018e174loc_18e174:
    0018e174stp x0, x1, [sp+8]
    0018e178stp x2, x3, [sp+24]
    0018e17cmov x3, x30
    0018e180bl runtime.morestack_noctxt.abi0
    0018e184ldp x0, x1, [sp+8]
    0018e188ldp x2, x3, [sp+24]
    0018e18cb 0x18dec0
    0018dec0
    0018e190
    0018e190sort.breakPatterns: ; void sort.breakPatterns(sort.Interface data, int a, int b)
    0018e190ldr x16, [x28+16]
    0018e194subs xzr, sp, x16
    0018e198b.ls 0x18e2bc
    0018e19cstr x30, [sp-96]!
    0018e1a0stur x29, [sp-8]
    0018e1a4sub x29, sp, 8
    0018e1a8str x0, [sp+104]
    0018e1acstr x1, [sp+112]
    0018e1b0str x2, [sp+120]
    0018e1b4str x3, [sp+128]
    0018e1b8sub x0, x3, x2
    0018e1bcstr x0, [sp+64]
    0018e1c0subs xzr, x0, 8
    0018e1c4b.ge 0x18e1cc
    0018e1c8b 0x18e1fc
    0018e1cc
    0018e1ccloc_18e1cc:
    0018e1ccstr x0, [sp+40]
    0018e1d0bl sort.nextPowerOfTwo
    0018e1d4str x0, [sp+56]
    0018e1d8ldr x1, [sp+120]
    0018e1dcldr x2, [sp+64]
    0018e1e0sbfm x3, x2, 63, 63
    0018e1e4add x2, x2, x3, lsr #62
    0018e1e8sbfm x2, x2, 2, 63
    0018e1ecadd x1, x1, x2, lsl #1
    0018e1f0sub x1, x1, 1
    0018e1f4str x1, [sp+72]
    0018e1f8b 0x18e20c
    0018e1fc
    0018e1fcloc_18e1fc:
    0018e1fcb 0x18e200
    0018e200
    0018e200loc_18e200:
    0018e200ldur x29, [sp-8]
    0018e204ldr x30, [sp], 96
    0018e208ret x30
    0018e20c
    0018e20cloc_18e20c:
    0018e20cldr x1, [sp+72]
    0018e210ldr x2, [sp+120]
    0018e214ldr x3, [sp+64]
    0018e218sbfm x4, x3, 63, 63
    0018e21cadd x3, x3, x4, lsr #62
    0018e220sbfm x3, x3, 2, 63
    0018e224add x2, x2, x3, lsl #1
    0018e228add x2, x2, 1
    0018e22csubs xzr, x1, x2
    0018e230b.le 0x18e238
    0018e234b 0x18e2b8
    0018e238
    0018e238loc_18e238:
    0018e238add x0, sp, 40
    0018e23cbl sort.(*xorshift).Next
    0018e240str x0, [sp+80]
    0018e244ldr x1, [sp+56]
    0018e248sub x1, x1, 1
    0018e24cand x1, x0, x1
    0018e250str x1, [sp+48]
    0018e254ldr x1, [sp+64]
    0018e258ldr x2, [sp+48]
    0018e25csubs xzr, x1, x2
    0018e260b.le 0x18e268
    0018e264b 0x18e27c
    0018e268
    0018e268loc_18e268:
    0018e268ldr x3, [sp+64]
    0018e26cldr x4, [sp+48]
    0018e270sub x3, x4, x3
    0018e274str x3, [sp+48]
    0018e278b 0x18e280
    0018e27c
    0018e27cloc_18e27c:
    0018e27cb 0x18e280
    0018e280
    0018e280loc_18e280:
    0018e280ldr x1, [sp+72]
    0018e284ldr x3, [sp+104]
    0018e288ldrsb x27, [x3]
    0018e28cldr x3, [x3+40]
    0018e290ldr x0, [sp+112]
    0018e294ldr x4, [sp+120]
    0018e298ldr x5, [sp+48]
    0018e29cadd x2, x4, x5
    0018e2a0blr x3
    0018e2a4b 0x18e2a8
    0018e2a8
    0018e2a8loc_18e2a8:
    0018e2a8ldr x1, [sp+72]
    0018e2acadd x1, x1, 1
    0018e2b0str x1, [sp+72]
    0018e2b4b 0x18e20c
    0018e2b8
    0018e2b8loc_18e2b8:
    0018e2b8b 0x18e200
    0018e2bc
    0018e2bcloc_18e2bc:
    0018e2bcstp x0, x1, [sp+8]
    0018e2c0stp x2, x3, [sp+24]
    0018e2c4mov x3, x30
    0018e2c8bl runtime.morestack_noctxt.abi0
    0018e2ccldp x0, x1, [sp+8]
    0018e2d0ldp x2, x3, [sp+24]
    0018e2d4b 0x18e190
    0018e2d8udf 0
    0018e2dcudf 0
    0018e190
    0018e2e0
    0018e2e0sort.choosePivot: ; void sort.choosePivot(sort.Interface data, int a, int b)
    0018e2e0ldr x16, [x28+16]
    0018e2e4subs xzr, sp, x16
    0018e2e8b.ls 0x18e478
    0018e2ecstr x30, [sp-128]!
    0018e2f0stur x29, [sp-8]
    0018e2f4sub x29, sp, 8
    0018e2f8str x0, [sp+136]
    0018e2fcstr x1, [sp+144]
    0018e300str x2, [sp+152]
    0018e304str x3, [sp+160]
    0018e308str xzr, [sp+64]
    0018e30cstr xzr, [sp+104]
    0018e310sub x6, x3, x2
    0018e314str x6, [sp+72]
    0018e318str xzr, [sp+56]
    0018e31cldr x7, [sp+152]
    0018e320sbfm x8, x6, 63, 63
    0018e324add x8, x6, x8, lsr #62
    0018e328add x2, x7, x8, asr #2
    0018e32cstr x2, [sp+96]
    0018e330ldr x7, [sp+152]
    0018e334sbfm x8, x6, 63, 63
    0018e338add x8, x6, x8, lsr #62
    0018e33csbfm x8, x8, 2, 63
    0018e340add x7, x7, x8, lsl #1
    0018e344str x7, [sp+88]
    0018e348ldr x7, [sp+152]
    0018e34csbfm x8, x6, 63, 63
    0018e350add x6, x6, x8, lsr #62
    0018e354sbfm x6, x6, 2, 63
    0018e358add x6, x6, x6, lsl #1
    0018e35cadd x6, x7, x6
    0018e360str x6, [sp+80]
    0018e364ldr x6, [sp+72]
    0018e368subs xzr, x6, 8
    0018e36cb.ge 0x18e374
    0018e370b 0x18e3f4
    0018e374
    0018e374loc_18e374:
    0018e374ldr x6, [sp+72]
    0018e378subs xzr, x6, 50
    0018e37cb.ge 0x18e384
    0018e380b 0x18e3cc
    0018e384
    0018e384loc_18e384:
    0018e384ldr x0, [sp+136]
    0018e388ldr x1, [sp+144]
    0018e38cadd x3, sp, 56
    0018e390bl sort.medianAdjacent
    0018e394str x0, [sp+96]
    0018e398ldr x2, [sp+88]
    0018e39cldr x0, [sp+136]
    0018e3a0ldr x1, [sp+144]
    0018e3a4add x3, sp, 56
    0018e3a8bl sort.medianAdjacent
    0018e3acstr x0, [sp+88]
    0018e3b0ldr x2, [sp+80]
    0018e3b4ldr x0, [sp+136]
    0018e3b8ldr x1, [sp+144]
    0018e3bcadd x3, sp, 56
    0018e3c0bl sort.medianAdjacent
    0018e3c4str x0, [sp+80]
    0018e3c8b 0x18e3d0
    0018e3cc
    0018e3ccloc_18e3cc:
    0018e3ccb 0x18e3d0
    0018e3d0
    0018e3d0loc_18e3d0:
    0018e3d0ldr x3, [sp+88]
    0018e3d4ldr x4, [sp+80]
    0018e3d8ldr x2, [sp+96]
    0018e3dcldr x0, [sp+136]
    0018e3e0ldr x1, [sp+144]
    0018e3e4add x5, sp, 56
    0018e3e8bl sort.median
    0018e3ecstr x0, [sp+88]
    0018e3f0b 0x18e3f8
    0018e3f4
    0018e3f4loc_18e3f4:
    0018e3f4b 0x18e3f8
    0018e3f8
    0018e3f8loc_18e3f8:
    0018e3f8ldr x2, [sp+56]
    0018e3fcstr x2, [sp+112]
    0018e400cbz x2, 0x18e408
    0018e404b 0x18e428
    0018e408
    0018e408loc_18e408:
    0018e408b 0x18e40c
    0018e40c
    0018e40cloc_18e40c:
    0018e40cldr x0, [sp+88]
    0018e410str x0, [sp+64]
    0018e414orr x1, xzr, 1
    0018e418str x1, [sp+104]
    0018e41cldur x29, [sp-8]
    0018e420ldr x30, [sp], 128
    0018e424ret x30
    0018e428
    0018e428loc_18e428:
    0018e428subs xzr, x2, 12
    0018e42cb.eq 0x18e434
    0018e430b 0x18e454
    0018e434
    0018e434loc_18e434:
    0018e434b 0x18e438
    0018e438
    0018e438loc_18e438:
    0018e438ldr x0, [sp+88]
    0018e43cstr x0, [sp+64]
    0018e440orr x1, xzr, 2
    0018e444str x1, [sp+104]
    0018e448ldur x29, [sp-8]
    0018e44cldr x30, [sp], 128
    0018e450ret x30
    0018e454
    0018e454loc_18e454:
    0018e454b 0x18e458
    0018e458
    0018e458loc_18e458:
    0018e458b 0x18e45c
    0018e45c
    0018e45cloc_18e45c:
    0018e45cldr x0, [sp+88]
    0018e460str x0, [sp+64]
    0018e464str xzr, [sp+104]
    0018e468mov x1, xzr
    0018e46cldur x29, [sp-8]
    0018e470ldr x30, [sp], 128
    0018e474ret x30
    0018e478
    0018e478loc_18e478:
    0018e478stp x0, x1, [sp+8]
    0018e47cstp x2, x3, [sp+24]
    0018e480mov x3, x30
    0018e484bl runtime.morestack_noctxt.abi0
    0018e488ldp x0, x1, [sp+8]
    0018e48cldp x2, x3, [sp+24]
    0018e490b 0x18e2e0
    0018e494udf 0
    0018e498udf 0
    0018e49cudf 0
    0018e2e0
    0018e4a0
    0018e4a0sort.order2: ; void sort.order2(sort.Interface data, int a, int b, int * swaps)
    0018e4a0ldr x16, [x28+16]
    0018e4a4subs xzr, sp, x16
    0018e4a8b.ls 0x18e550
    0018e4acstr x30, [sp-64]!
    0018e4b0stur x29, [sp-8]
    0018e4b4sub x29, sp, 8
    0018e4b8str x0, [sp+72]
    0018e4bcstr x1, [sp+80]
    0018e4c0str x2, [sp+88]
    0018e4c4str x3, [sp+96]
    0018e4c8str x4, [sp+104]
    0018e4ccstr xzr, [sp+48]
    0018e4d0str xzr, [sp+40]
    0018e4d4ldr x2, [sp+88]
    0018e4d8ldr x4, [sp+72]
    0018e4dcldrsb x27, [x4]
    0018e4e0ldr x4, [x4+32]
    0018e4e4ldr x0, [sp+80]
    0018e4e8mov x1, x3
    0018e4ecblr x4
    0018e4f0strb w0, [sp+39]
    0018e4f4tbnz w0, 0, 0x18e4fc
    0018e4f8b 0x18e534
    0018e4fc
    0018e4fcloc_18e4fc:
    0018e4fcldr x2, [sp+104]
    0018e500ldrsb x27, [x2]
    0018e504ldr x3, [sp+104]
    0018e508ldrsb x27, [x3]
    0018e50cldr x3, [x3]
    0018e510add x3, x3, 1
    0018e514str x3, [x2]
    0018e518ldr x0, [sp+96]
    0018e51cstr x0, [sp+48]
    0018e520ldr x1, [sp+88]
    0018e524str x1, [sp+40]
    0018e528ldur x29, [sp-8]
    0018e52cldr x30, [sp], 64
    0018e530ret x30
    0018e534
    0018e534loc_18e534:
    0018e534ldr x0, [sp+88]
    0018e538str x0, [sp+48]
    0018e53cldr x1, [sp+96]
    0018e540str x1, [sp+40]
    0018e544ldur x29, [sp-8]
    0018e548ldr x30, [sp], 64
    0018e54cret x30
    0018e550
    0018e550loc_18e550:
    0018e550stp x0, x1, [sp+8]
    0018e554stp x2, x3, [sp+24]
    0018e558str x4, [sp+40]
    0018e55cmov x3, x30
    0018e560bl runtime.morestack_noctxt.abi0
    0018e564ldp x0, x1, [sp+8]
    0018e568ldp x2, x3, [sp+24]
    0018e56cldr x4, [sp+40]
    0018e570b 0x18e4a0
    0018e574udf 0
    0018e578udf 0
    0018e57cudf 0
    0018e4a0
    0018e580
    0018e580sort.median: ; void sort.median(sort.Interface data, int a, int b, int c, int * swaps)
    0018e580ldr x16, [x28+16]
    0018e584subs xzr, sp, x16
    0018e588b.ls 0x18e65c
    0018e58cstr x30, [sp-128]!
    0018e590stur x29, [sp-8]
    0018e594sub x29, sp, 8
    0018e598str x0, [sp+136]
    0018e59cstr x1, [sp+144]
    0018e5a0str x2, [sp+152]
    0018e5a4str x3, [sp+160]
    0018e5a8str x4, [sp+168]
    0018e5acstr x5, [sp+176]
    0018e5b0str xzr, [sp+48]
    0018e5b4ldr x2, [sp+152]
    0018e5b8ldr x0, [sp+136]
    0018e5bcldr x1, [sp+144]
    0018e5c0mov x4, x5
    0018e5c4bl sort.order2
    0018e5c8str x0, [sp+96]
    0018e5ccstr x1, [sp+88]
    0018e5d0str x0, [sp+80]
    0018e5d4str x1, [sp+72]
    0018e5d8str x0, [sp+152]
    0018e5dcstr x1, [sp+160]
    0018e5e0ldr x4, [sp+176]
    0018e5e4ldr x3, [sp+168]
    0018e5e8ldr x0, [sp+136]
    0018e5ecldr x5, [sp+144]
    0018e5f0mov x2, x1
    0018e5f4mov x1, x5
    0018e5f8bl sort.order2
    0018e5fcstr x0, [sp+88]
    0018e600str x1, [sp+96]
    0018e604str x0, [sp+64]
    0018e608str x1, [sp+56]
    0018e60cstr x0, [sp+160]
    0018e610str x1, [sp+168]
    0018e614ldr x4, [sp+176]
    0018e618ldr x2, [sp+152]
    0018e61cldr x5, [sp+136]
    0018e620ldr x1, [sp+144]
    0018e624mov x3, x0
    0018e628mov x0, x5
    0018e62cbl sort.order2
    0018e630str x0, [sp+96]
    0018e634str x1, [sp+88]
    0018e638str x0, [sp+112]
    0018e63cstr x1, [sp+104]
    0018e640str x0, [sp+152]
    0018e644str x1, [sp+160]
    0018e648str x1, [sp+48]
    0018e64cmov x0, x1
    0018e650ldur x29, [sp-8]
    0018e654ldr x30, [sp], 128
    0018e658ret x30
    0018e65c
    0018e65cloc_18e65c:
    0018e65cstp x0, x1, [sp+8]
    0018e660stp x2, x3, [sp+24]
    0018e664stp x4, x5, [sp+40]
    0018e668mov x3, x30
    0018e66cbl runtime.morestack_noctxt.abi0
    0018e670ldp x0, x1, [sp+8]
    0018e674ldp x2, x3, [sp+24]
    0018e678ldp x4, x5, [sp+40]
    0018e67cb 0x18e580
    0018e580
    0018e680
    0018e680sort.medianAdjacent: ; void sort.medianAdjacent(sort.Interface data, int a, int * swaps)
    0018e680ldr x16, [x28+16]
    0018e684subs xzr, sp, x16
    0018e688b.ls 0x18e6dc
    0018e68cstr x30, [sp-80]!
    0018e690stur x29, [sp-8]
    0018e694sub x29, sp, 8
    0018e698str x0, [sp+88]
    0018e69cstr x1, [sp+96]
    0018e6a0str x2, [sp+104]
    0018e6a4str x3, [sp+112]
    0018e6a8str xzr, [sp+56]
    0018e6acldr x0, [sp+88]
    0018e6b0sub x6, x2, 1
    0018e6b4add x4, x2, 1
    0018e6b8mov x5, x3
    0018e6bcmov x3, x2
    0018e6c0mov x2, x6
    0018e6c4bl sort.median
    0018e6c8str x0, [sp+64]
    0018e6ccstr x0, [sp+56]
    0018e6d0ldur x29, [sp-8]
    0018e6d4ldr x30, [sp], 80
    0018e6d8ret x30
    0018e6dc
    0018e6dcloc_18e6dc:
    0018e6dcstp x0, x1, [sp+8]
    0018e6e0stp x2, x3, [sp+24]
    0018e6e4mov x3, x30
    0018e6e8bl runtime.morestack_noctxt.abi0
    0018e6ecldp x0, x1, [sp+8]
    0018e6f0ldp x2, x3, [sp+24]
    0018e6f4b 0x18e680
    0018e6f8udf 0
    0018e6fcudf 0
    0018e680