diff --git a/README.md b/README.md
index 62bb11f..1c9fe4b 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,24 @@
-# biRISC-V - 32-bit dual issue RISC-V CPU
+
Computer Organization and Architecture III
+
+
+This project is part of the Computer Organization and Architecture III (2024.2) course. The objective of the project was to implement a logical synthesis of [biRISC-V Core](http://github.com/ultraembedded/biriscv) using IBM 180 PDK and perform a Gate Level Simulation.
+
+
+1. [biRISC-V](#biriscv)
+2. [Logic Synthesis](#logic-synthesis)
+3. [Generating Applications](#generating-applications)
+4. [Gate Level Simulation](#gate-level-simulation)
+
+
+
+## biRISC-V
+
+biRISC-V is a 32-bit dual issue RISC-V CPU made by [Ultraembedded](http://github.com/ultraembedded).
-Github: [http://github.com/ultraembedded/biriscv](http://github.com/ultraembedded/biriscv)

-## Features
+### Features
* 32-bit RISC-V ISA CPU core.
* Superscalar (dual-issue) in-order 6 or 7 stage pipeline.
* Support RISC-V’s integer (I), multiplication and division (M), and CSR instructions (Z) extensions (RV32IMZicsr).
@@ -26,109 +40,67 @@ Github: [http://github.com/ultraembedded/biriscv](http://github.com/ultraembedde
*A sequence showing execution of 2 instructions per cycle;*

-## Documentation
-* [Configuration](docs/configuration.md)
-* [Booting Linux](docs/linux.md)
-* [Integration](docs/integration.md)
-* [Custom Features](docs/custom.md)
-
-## Similar Cores
-* [SiFive E76](https://www.sifive.com/cores/e76)
- * RV32IMAFC
- * Dual issue in-order 8 stage pipeline
- * 4 ALU units (2 early, 2 late)
- * :heavy_multiplication_x: *Commercial closed source core/$$*
-* [WD SweRV RISC-V Core EH1](https://github.com/chipsalliance/Cores-SweRV)
- * RV32IMC
- * Dual issue in-order 9 stage pipeline
- * 4 ALU units (2 early, 2 late)
- * :heavy_multiplication_x: *System Verilog + auto signal hookup*
- * :heavy_multiplication_x: *No data cache option*
- * :heavy_multiplication_x: *Not able to boot Linux*
-
-## Project Aims
-* Boot Linux all the way to a functional userspace environment. :heavy_check_mark:
-* Achieve competitive performance for this class of in-order machine (i.e. aim for 80% of WD SweRV CoreMark score). :heavy_check_mark:
-* Reasonable PPA / FPGA resource friendly. :heavy_check_mark:
-* Fit easily onto cheap hobbyist FPGAs (e.g. Xilinx Artix 7) without using all LUT resources and synthesize > 50MHz. :heavy_check_mark:
-* Support various cache and TCM options. :heavy_check_mark:
-* Be constructed using readable, maintainable and documented IEEE 1364-2001 Verilog. :heavy_check_mark:
-* Simulate in open-source tools such as Verilator and Icarus Verilog. :heavy_check_mark:
-* *In later releases, add support for atomic extensions.*
-
-*Booting the stock Linux 5.0.0-rc8 kernel built for RV32IMA to userspace on a Digilent Arty Artix 7 with biRISC-V (with atomic instructions emulated in the bootloader);*
-
-
-## Prior Work
-Based on my previous work;
-* Github: [http://github.com/ultraembedded/riscv](http://github.com/ultraembedded/riscv)
-
-## Getting Started
-
-#### Cloning
-
-To clone this project and its dependencies;
+## Logic Synthesis
+
+The synsthesis was performed with Cadence RTL Compiler , the execution scripts and the PDK (IBM 180) were provided by professor Mateus Beck.
+The core modules that must be included in the synthesis filelist are:
+
+```
+project
+│
+│
+└───src
+ │ biriscv_defs.v
+ │ biriscv_alu.v
+ │ biriscv_csr_regfile.v
+ │ biriscv_csr.v
+ │ biriscv_decoder.v
+ │ biriscv_decode.v
+ │ biriscv_divider.v
+ │ biriscv_exec.v
+ │ biriscv_fetch.v
+ │ biriscv_frontend.v
+ │ biriscv_issue.v
+ │ biriscv_lsu.v
+ │ biriscv_mmu.v
+ │ biriscv_multiplier.v
+ │ biriscv_npc.v
+ │ biriscv_pipe_ctrl.v
+ │ biriscv_regfile.v
+ │ biriscv_trace_sim.v
+ │ biriscv_xilinx_2r1w.v
+ │ riscv_core.v
```
-git clone --recursive https://github.com/ultraembedded/biriscv.git
+The non-synthesizable testbench modules are:
+
+```
+project
+│
+│
+└───tb
+ └───tb_core_icarus
+ │ tcm_mem_ram.v
+ │ tcm_mem.v
+ │ biriscv_trace_sim_gls.sv
+ │ tb_top.v
+
```
-#### Running Helloworld
+## Generating Applications
-To run a simple test image on the core RTL using Icarus Verilog;
+On `riscv-app-gen` you can find some risc-v applications (C, bin, elf) in the subdirectories. Also, you can generate your own program file by executing the `make` command specifying the C code e.g `make SRC=main.c`.
-```
-# Install Icarus Verilog (Debian / Ubuntu / Linux Mint)
-sudo apt-get install iverilog
+You must have [riscv-gnu-toolchain](https://github.com/riscv-collab/riscv-gnu-toolchain) installed with Linux multilib and available in your `PATH` environment variable.
-# [or] Install Icarus Verilog (Redhat / Centos)
-#sudo yum install iverilog
+The linker script `riscv-app-gen/link.ld` was obtained from [Google's RISCV-DV](https://github.com/google/riscv-dv).
-# Run a simple test image (test.elf)
-cd tb/tb_core_icarus
-make
-```
+The entry point specified in the linker command is the main function, therefore, you must check the entry point address code with the comand `make info` e.g `make info ELF=main.elf`. This entry point is required to execute the testbench and need to be passed to the `reset_vector_i` input in `src/riscv_core.v` .
-The expected output is;
-```
-Starting bench
-VCD info: dumpfile waveform.vcd opened for output.
-
-Test:
-1. Initialised data
-2. Multiply
-3. Divide
-4. Shift left
-5. Shift right
-6. Shift right arithmetic
-7. Signed comparision
-8. Word access
-9. Byte access
-10. Comparision
-```
-#### Configuration
-
-| Param Name | Valid Range | Description |
-| ------------------------- |:--------------------:| ----------------------------------------------|
-| SUPPORT_SUPER | 1/0 | Enable supervisor / user privilege levels. |
-| SUPPORT_MMU | 1/0 | Enable basic memory management unit. |
-| SUPPORT_MULDIV | 1/0 | Enable HW multiply / divide (RV-M). |
-| SUPPORT_DUAL_ISSUE | 1/0 | Support superscalar operation. |
-| SUPPORT_LOAD_BYPASS | 1/0 | Support load result bypass paths. |
-| SUPPORT_MUL_BYPASS | 1/0 | Support multiply result bypass paths. |
-| SUPPORT_REGFILE_XILINX | 1/0 | Support Xilinx optimised register file. |
-| SUPPORT_BRANCH_PREDICTION | 1/0 | Enable branch prediction structures. |
-| NUM_BTB_ENTRIES | 2 - | Number of branch target buffer entries. |
-| NUM_BTB_ENTRIES_W | 1 - | Set to log2(NUM_BTB_ENTRIES). |
-| NUM_BHT_ENTRIES | 2 - | Number of branch history table entries. |
-| NUM_BHT_ENTRIES_W | 1 - | Set to log2(NUM_BHT_ENTRIES_W). |
-| BHT_ENABLE | 1/0 | Enable branch history table based prediction. |
-| GSHARE_ENABLE | 1/0 | Enable GSHARE branch prediction algorithm. |
-| RAS_ENABLE | 1/0 | Enable return address stack prediction. |
-| NUM_RAS_ENTRIES | 2 - | Number of return stack addresses supported. |
-| NUM_RAS_ENTRIES_W | 1 - | Set to log2(NUM_RAS_ENTRIES_W). |
-| EXTRA_DECODE_STAGE | 1/0 | Extra decode pipe stage for improved timing. |
-| MEM_CACHE_ADDR_MIN | 32'h0 - 32'hffffffff | Lowest cacheable memory address. |
-| MEM_CACHE_ADDR_MAX | 32'h0 - 32'hffffffff | Highest cacheable memory address. |
+## Gate Level Simulation
+
+Post-synthesis Simulation using Cadence SimVision. Bubble sort execution.
+
+
\ No newline at end of file
diff --git a/docs/gls_sim_vision_bubble.png b/docs/gls_sim_vision_bubble.png
new file mode 100644
index 0000000..c17509e
Binary files /dev/null and b/docs/gls_sim_vision_bubble.png differ
diff --git a/riscv-app-gen/Makefile b/riscv-app-gen/Makefile
new file mode 100644
index 0000000..350e372
--- /dev/null
+++ b/riscv-app-gen/Makefile
@@ -0,0 +1,32 @@
+
+SRC ?= main.c
+
+CC = riscv64-unknown-elf-gcc
+OBJDUMP = riscv64-unknown-elf-objdump
+READELF = riscv64-unknown-elf-readelf
+OBJCOPY = riscv64-unknown-elf-objcopy
+
+CFLAGS = -march=rv32im -mabi=ilp32
+GCC_LDFLAGS = -T link.ld -nostartfiles -e main -O2
+
+OBJ = $(SRC:.c=.o)
+ELF = $(SRC:.c=.elf)
+ASM = $(SRC:.c=.s)
+BIN = $(SRC:.c=.bin)
+
+# Regras
+all: gcc_elf
+
+info: $(ELF)
+ $(READELF) -h $(ELF)
+
+gcc_elf: $(SRC)
+ $(CC) $(CFLAGS) $(GCC_LDFLAGS) -o $(ELF) $<
+ $(OBJCOPY) -O binary $(ELF) $(BIN)
+ $(OBJDUMP) -d $(ELF) > $(ASM)
+ $(READELF) -h $(ELF)
+
+clean:
+ rm -f *.o *.elf *.s *.bin
+
+.PHONY: all clean info
\ No newline at end of file
diff --git a/riscv-app-gen/array_sum_mul/arraysum_mul.bin b/riscv-app-gen/array_sum_mul/arraysum_mul.bin
new file mode 100755
index 0000000..9546c5a
Binary files /dev/null and b/riscv-app-gen/array_sum_mul/arraysum_mul.bin differ
diff --git a/riscv-app-gen/array_sum_mul/arraysum_mul.c b/riscv-app-gen/array_sum_mul/arraysum_mul.c
new file mode 100644
index 0000000..645c9ea
--- /dev/null
+++ b/riscv-app-gen/array_sum_mul/arraysum_mul.c
@@ -0,0 +1,23 @@
+#include
+
+
+int main() {
+ int vetor1[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 7};
+ int vetor2[] = {7, 1, 8, 7, 6, 5, 4, 3, 2, 1};
+
+ int vetor_soma[10];
+ int vetor_produto[10];
+
+ // Multiplicacao ingenua
+ for (int i = 0; i < 10; i++) {
+ vetor_produto[i] = vetor1[i] * vetor2[i];
+ }
+
+ // Soma
+ for (int i = 0; i < 10; i++) {
+ vetor_soma[i] = vetor1[i] + vetor2[i];
+ }
+
+
+ return 0;
+}
\ No newline at end of file
diff --git a/riscv-app-gen/array_sum_mul/arraysum_mul.elf b/riscv-app-gen/array_sum_mul/arraysum_mul.elf
new file mode 100755
index 0000000..f64dad0
Binary files /dev/null and b/riscv-app-gen/array_sum_mul/arraysum_mul.elf differ
diff --git a/riscv-app-gen/array_sum_mul/arraysum_mul.s b/riscv-app-gen/array_sum_mul/arraysum_mul.s
new file mode 100644
index 0000000..c73c548
--- /dev/null
+++ b/riscv-app-gen/array_sum_mul/arraysum_mul.s
@@ -0,0 +1,9 @@
+
+arraysum_mul.elf: file format elf32-littleriscv
+
+
+Disassembly of section .text.startup:
+
+80000000 :
+80000000: 00000513 li a0,0
+80000004: 00008067 ret
diff --git a/riscv-app-gen/bubblesort/bubblesort.bin b/riscv-app-gen/bubblesort/bubblesort.bin
new file mode 100755
index 0000000..749c88e
Binary files /dev/null and b/riscv-app-gen/bubblesort/bubblesort.bin differ
diff --git a/riscv-app-gen/bubblesort/bubblesort.c b/riscv-app-gen/bubblesort/bubblesort.c
new file mode 100644
index 0000000..e5faf26
--- /dev/null
+++ b/riscv-app-gen/bubblesort/bubblesort.c
@@ -0,0 +1,23 @@
+#include
+
+void bubbleSort(int arr[], int n) {
+ for (int i = 0; i < n - 1; i++) {
+ for (int j = 0; j < n - i - 1; j++) {
+ if (arr[j] > arr[j + 1]) {
+ // Troca os elementos
+ int temp = arr[j];
+ arr[j] = arr[j + 1];
+ arr[j + 1] = temp;
+ }
+ }
+ }
+}
+
+int main() {
+ int arr[] = {5, 4, 3, 2, 1, 0,3};
+
+ bubbleSort(arr, 7);
+
+ return 0;
+}
+
diff --git a/riscv-app-gen/bubblesort/bubblesort.elf b/riscv-app-gen/bubblesort/bubblesort.elf
new file mode 100755
index 0000000..3d41846
Binary files /dev/null and b/riscv-app-gen/bubblesort/bubblesort.elf differ
diff --git a/riscv-app-gen/bubblesort/bubblesort.s b/riscv-app-gen/bubblesort/bubblesort.s
new file mode 100644
index 0000000..bf5d3ce
--- /dev/null
+++ b/riscv-app-gen/bubblesort/bubblesort.s
@@ -0,0 +1,57 @@
+
+bubblesort.elf: file format elf32-littleriscv
+
+
+Disassembly of section .text:
+
+80000000 :
+80000000: 00100813 li a6,1
+80000004: 04b85063 bge a6,a1,80000044
+80000008: 00259613 slli a2,a1,0x2
+8000000c: 00c50633 add a2,a0,a2
+80000010: 00450513 addi a0,a0,4
+80000014: 00050793 mv a5,a0
+80000018: 02b85863 bge a6,a1,80000048
+8000001c: ffc7a703 lw a4,-4(a5)
+80000020: 0007a683 lw a3,0(a5)
+80000024: 00e6d663 bge a3,a4,80000030
+80000028: fed7ae23 sw a3,-4(a5)
+8000002c: 00e7a023 sw a4,0(a5)
+80000030: 00478793 addi a5,a5,4
+80000034: fec794e3 bne a5,a2,8000001c
+80000038: fff58593 addi a1,a1,-1
+8000003c: ffc60613 addi a2,a2,-4
+80000040: fd059ae3 bne a1,a6,80000014
+80000044: 00008067 ret
+80000048: fff58593 addi a1,a1,-1
+8000004c: ffc60613 addi a2,a2,-4
+80000050: fc5ff06f j 80000014
+
+Disassembly of section .text.startup:
+
+80000054 :
+80000054: 800007b7 lui a5,0x80000
+80000058: 0b878793 addi a5,a5,184 # 800000b8
+8000005c: 0007a303 lw t1,0(a5)
+80000060: 0047a883 lw a7,4(a5)
+80000064: 0087a803 lw a6,8(a5)
+80000068: 00c7a603 lw a2,12(a5)
+8000006c: 0107a683 lw a3,16(a5)
+80000070: 0147a703 lw a4,20(a5)
+80000074: 0187a783 lw a5,24(a5)
+80000078: fd010113 addi sp,sp,-48
+8000007c: 00410513 addi a0,sp,4
+80000080: 00700593 li a1,7
+80000084: 02112623 sw ra,44(sp)
+80000088: 00612223 sw t1,4(sp)
+8000008c: 01112423 sw a7,8(sp)
+80000090: 01012623 sw a6,12(sp)
+80000094: 00c12823 sw a2,16(sp)
+80000098: 00d12a23 sw a3,20(sp)
+8000009c: 00e12c23 sw a4,24(sp)
+800000a0: 00f12e23 sw a5,28(sp)
+800000a4: f5dff0ef jal 80000000
+800000a8: 02c12083 lw ra,44(sp)
+800000ac: 00000513 li a0,0
+800000b0: 03010113 addi sp,sp,48
+800000b4: 00008067 ret
diff --git a/riscv-app-gen/dot_product/dotproduct.bin b/riscv-app-gen/dot_product/dotproduct.bin
new file mode 100755
index 0000000..6ac461c
Binary files /dev/null and b/riscv-app-gen/dot_product/dotproduct.bin differ
diff --git a/riscv-app-gen/dot_product/dotproduct.c b/riscv-app-gen/dot_product/dotproduct.c
new file mode 100644
index 0000000..563d078
--- /dev/null
+++ b/riscv-app-gen/dot_product/dotproduct.c
@@ -0,0 +1,21 @@
+#include
+
+int produto_escalar(const int *vetor1, const int *vetor2) {
+ int resultado = 0;
+ for (int i = 0; i < 7; i++) {
+ resultado += vetor1[i] * vetor2[i];
+ }
+ return resultado;
+}
+
+int main() {
+ int n;
+
+ int vector1[] = {5, 8, 0, 2, 1, 5,3};
+
+ int vector2[] = {7, 6, 1, 0, 4, 1,2};
+
+ int resultado = produto_escalar(vector1, vector2);
+
+ return 0;
+}
diff --git a/riscv-app-gen/dot_product/dotproduct.elf b/riscv-app-gen/dot_product/dotproduct.elf
new file mode 100755
index 0000000..4624704
Binary files /dev/null and b/riscv-app-gen/dot_product/dotproduct.elf differ
diff --git a/riscv-app-gen/dot_product/dotproduct.s b/riscv-app-gen/dot_product/dotproduct.s
new file mode 100644
index 0000000..42d26c7
--- /dev/null
+++ b/riscv-app-gen/dot_product/dotproduct.s
@@ -0,0 +1,24 @@
+
+dotproduct.elf: file format elf32-littleriscv
+
+
+Disassembly of section .text:
+
+80000000 :
+80000000: 00050793 mv a5,a0
+80000004: 01c50613 addi a2,a0,28
+80000008: 00000513 li a0,0
+8000000c: 0007a703 lw a4,0(a5)
+80000010: 0005a683 lw a3,0(a1)
+80000014: 00478793 addi a5,a5,4
+80000018: 00458593 addi a1,a1,4
+8000001c: 02d70733 mul a4,a4,a3
+80000020: 00e50533 add a0,a0,a4
+80000024: fec794e3 bne a5,a2,8000000c
+80000028: 00008067 ret
+
+Disassembly of section .text.startup:
+
+8000002c :
+8000002c: 00000513 li a0,0
+80000030: 00008067 ret
diff --git a/riscv-app-gen/link.ld b/riscv-app-gen/link.ld
new file mode 100644
index 0000000..df08889
--- /dev/null
+++ b/riscv-app-gen/link.ld
@@ -0,0 +1,33 @@
+/* Copyright 2018 Google LLC
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http:*www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+OUTPUT_ARCH( "riscv" )
+ENTRY(_start)
+
+SECTIONS
+{
+ . = 0x80000000;
+ .text : { *(.text) }
+ . = ALIGN(0x1000);
+ .tohost : { *(.tohost) }
+ . = ALIGN(0x1000);
+ .page_table : { *(.page_table) }
+ .data : { *(.data) }
+ .user_stack : { *(.user_stack) }
+ .kernel_data : { *(.kernel_data) }
+ .kernel_stack : { *(.kernel_stack) }
+ .bss : { *(.bss) }
+ _end = .;
+}
diff --git a/riscv-app-gen/original_test_code/test.bin b/riscv-app-gen/original_test_code/test.bin
new file mode 100755
index 0000000..a8881f6
Binary files /dev/null and b/riscv-app-gen/original_test_code/test.bin differ
diff --git a/riscv-app-gen/original_test_code/test.elf b/riscv-app-gen/original_test_code/test.elf
new file mode 100755
index 0000000..4b0b695
Binary files /dev/null and b/riscv-app-gen/original_test_code/test.elf differ
diff --git a/riscv-app-gen/original_test_code/test.s b/riscv-app-gen/original_test_code/test.s
new file mode 100644
index 0000000..078300d
--- /dev/null
+++ b/riscv-app-gen/original_test_code/test.s
@@ -0,0 +1,2159 @@
+
+test.elf: file format elf32-littleriscv
+
+
+Disassembly of section .text:
+
+80000000 :
+80000000: 2600006f j 80000260
+80000004: 0000 unimp
+ ...
+
+80000008 :
+ ...
+80000010: 1140006f j 80000124
+ ...
+
+80000020 :
+80000020: 0000 unimp
+ ...
+
+80000024 :
+ ...
+
+80000124 :
+80000124: f7410113 addi sp,sp,-140
+80000128: 09f12423 sw t6,136(sp)
+8000012c: 09e12223 sw t5,132(sp)
+80000130: 09d12023 sw t4,128(sp)
+80000134: 07c12e23 sw t3,124(sp)
+80000138: 07b12c23 sw s11,120(sp)
+8000013c: 07a12a23 sw s10,116(sp)
+80000140: 07912823 sw s9,112(sp)
+80000144: 07812623 sw s8,108(sp)
+80000148: 07712423 sw s7,104(sp)
+8000014c: 07612223 sw s6,100(sp)
+80000150: 07512023 sw s5,96(sp)
+80000154: 05412e23 sw s4,92(sp)
+80000158: 05312c23 sw s3,88(sp)
+8000015c: 05212a23 sw s2,84(sp)
+80000160: 05112823 sw a7,80(sp)
+80000164: 05012623 sw a6,76(sp)
+80000168: 04f12423 sw a5,72(sp)
+8000016c: 04e12223 sw a4,68(sp)
+80000170: 04d12023 sw a3,64(sp)
+80000174: 02c12e23 sw a2,60(sp)
+80000178: 02b12c23 sw a1,56(sp)
+8000017c: 02a12a23 sw a0,52(sp)
+80000180: 02912823 sw s1,48(sp)
+80000184: 02812623 sw s0,44(sp)
+80000188: 02712423 sw t2,40(sp)
+8000018c: 02612223 sw t1,36(sp)
+80000190: 02512023 sw t0,32(sp)
+80000194: 00412e23 sw tp,28(sp)
+80000198: 00312c23 sw gp,24(sp)
+8000019c: 00212a23 sw sp,20(sp)
+800001a0: 00112823 sw ra,16(sp)
+800001a4: 34202473 csrr s0,mcause
+800001a8: 00812423 sw s0,8(sp)
+800001ac: 30002473 csrr s0,mstatus
+800001b0: 00812223 sw s0,4(sp)
+800001b4: 34102473 csrr s0,mepc
+800001b8: 00812023 sw s0,0(sp)
+800001bc: 00010513 mv a0,sp
+800001c0: 148000ef jal 80000308
+
+800001c4 :
+800001c4: 00050113 mv sp,a0
+800001c8: 00012403 lw s0,0(sp)
+800001cc: 34141073 csrw mepc,s0
+800001d0: 00412403 lw s0,4(sp)
+800001d4: 30041073 csrw mstatus,s0
+800001d8: 01012083 lw ra,16(sp)
+800001dc: 01812183 lw gp,24(sp)
+800001e0: 01c12203 lw tp,28(sp)
+800001e4: 02012283 lw t0,32(sp)
+800001e8: 02412303 lw t1,36(sp)
+800001ec: 02812383 lw t2,40(sp)
+800001f0: 02c12403 lw s0,44(sp)
+800001f4: 03012483 lw s1,48(sp)
+800001f8: 03412503 lw a0,52(sp)
+800001fc: 03812583 lw a1,56(sp)
+80000200: 03c12603 lw a2,60(sp)
+80000204: 04012683 lw a3,64(sp)
+80000208: 04412703 lw a4,68(sp)
+8000020c: 04812783 lw a5,72(sp)
+80000210: 04c12803 lw a6,76(sp)
+80000214: 05012883 lw a7,80(sp)
+80000218: 05412903 lw s2,84(sp)
+8000021c: 05812983 lw s3,88(sp)
+80000220: 05c12a03 lw s4,92(sp)
+80000224: 06012a83 lw s5,96(sp)
+80000228: 06412b03 lw s6,100(sp)
+8000022c: 06812b83 lw s7,104(sp)
+80000230: 06c12c03 lw s8,108(sp)
+80000234: 07012c83 lw s9,112(sp)
+80000238: 07412d03 lw s10,116(sp)
+8000023c: 07812d83 lw s11,120(sp)
+80000240: 07c12e03 lw t3,124(sp)
+80000244: 08012e83 lw t4,128(sp)
+80000248: 08412f03 lw t5,132(sp)
+8000024c: 08812f83 lw t6,136(sp)
+80000250: 08c10113 addi sp,sp,140
+80000254: 30200073 mret
+
+80000258 :
+80000258: 00000073 ecall
+8000025c: 00008067 ret
+
+80000260 :
+80000260: 80003137 lui sp,0x80003
+80000264: e4010113 addi sp,sp,-448 # 80002e40 <_sp>
+80000268: 800002b7 lui t0,0x80000
+8000026c: 12428293 addi t0,t0,292 # 80000124
+80000270: 30529073 csrw mtvec,t0
+80000274: 800022b7 lui t0,0x80002
+80000278: df828293 addi t0,t0,-520 # 80001df8 <_exception_table>
+8000027c: 80003337 lui t1,0x80003
+80000280: e5030313 addi t1,t1,-432 # 80002e50 <_end>
+
+80000284 :
+80000284: 028000ef jal 800002ac
+80000288: 80000537 lui a0,0x80000
+8000028c: 02050513 addi a0,a0,32 # 80000020
+80000290: 00052503 lw a0,0(a0)
+80000294: 800005b7 lui a1,0x80000
+80000298: 02458593 addi a1,a1,36 # 80000024
+8000029c: 388000ef jal 80000624
+
+800002a0 <_exit>:
+800002a0: 7b201073 csrw dscratch0,zero
+
+800002a4 <_exit_loop>:
+800002a4: 000000ef jal 800002a4 <_exit_loop>
+
+800002a8 :
+800002a8: 00008067 ret
+
+800002ac :
+800002ac: ff010113 addi sp,sp,-16
+800002b0: 00112623 sw ra,12(sp)
+800002b4: 2d4000ef jal 80000588
+800002b8: 00c12083 lw ra,12(sp)
+800002bc: 80000537 lui a0,0x80000
+800002c0: 56450513 addi a0,a0,1380 # 80000564
+800002c4: 01010113 addi sp,sp,16
+800002c8: 6c50006f j 8000118c
+
+800002cc :
+800002cc: 800027b7 lui a5,0x80002
+800002d0: e2a7ac23 sw a0,-456(a5) # 80001e38 <_irq_handler>
+800002d4: 00008067 ret
+
+800002d8 :
+800002d8: 800027b7 lui a5,0x80002
+800002dc: df878793 addi a5,a5,-520 # 80001df8 <_exception_table>
+800002e0: 02a7a023 sw a0,32(a5)
+800002e4: 02a7a223 sw a0,36(a5)
+800002e8: 02a7a623 sw a0,44(a5)
+800002ec: 00008067 ret
+
+800002f0 :
+800002f0: 00251793 slli a5,a0,0x2
+800002f4: 80002537 lui a0,0x80002
+800002f8: df850513 addi a0,a0,-520 # 80001df8 <_exception_table>
+800002fc: 00f50533 add a0,a0,a5
+80000300: 00b52023 sw a1,0(a0)
+80000304: 00008067 ret
+
+80000308 :
+80000308: 00452783 lw a5,4(a0)
+8000030c: ffffe737 lui a4,0xffffe
+80000310: 7ff70713 addi a4,a4,2047 # ffffe7ff <_end+0x7fffb9af>
+80000314: 00e7f7b3 and a5,a5,a4
+80000318: 00002737 lui a4,0x2
+8000031c: ff010113 addi sp,sp,-16
+80000320: 80070713 addi a4,a4,-2048 # 1800
+80000324: 00852603 lw a2,8(a0)
+80000328: 00812423 sw s0,8(sp)
+8000032c: 00112623 sw ra,12(sp)
+80000330: 00e7e7b3 or a5,a5,a4
+80000334: 00f52223 sw a5,4(a0)
+80000338: 00050413 mv s0,a0
+8000033c: 08064c63 bltz a2,800003d4
+80000340: ff860713 addi a4,a2,-8
+80000344: 00300793 li a5,3
+80000348: 04e7f863 bgeu a5,a4,80000398
+8000034c: 00f00793 li a5,15
+80000350: 04c7fc63 bgeu a5,a2,800003a8
+80000354: 00042583 lw a1,0(s0)
+80000358: 80002537 lui a0,0x80002
+8000035c: 9dc50513 addi a0,a0,-1572 # 800019dc <__modsi3+0x58>
+80000360: 23c010ef jal 8000159c
+80000364: 80002637 lui a2,0x80002
+80000368: 800025b7 lui a1,0x80002
+8000036c: 80002537 lui a0,0x80002
+80000370: 04400693 li a3,68
+80000374: a0860613 addi a2,a2,-1528 # 80001a08 <__modsi3+0x84>
+80000378: a4058593 addi a1,a1,-1472 # 80001a40 <__modsi3+0xbc>
+8000037c: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000380: 230000ef jal 800005b0
+80000384: 00040513 mv a0,s0
+80000388: 00c12083 lw ra,12(sp)
+8000038c: 00812403 lw s0,8(sp)
+80000390: 01010113 addi sp,sp,16
+80000394: 00008067 ret
+80000398: 00100793 li a5,1
+8000039c: 00e797b3 sll a5,a5,a4
+800003a0: 00b7f793 andi a5,a5,11
+800003a4: 04079663 bnez a5,800003f0
+800003a8: 80002737 lui a4,0x80002
+800003ac: 00261793 slli a5,a2,0x2
+800003b0: df870713 addi a4,a4,-520 # 80001df8 <_exception_table>
+800003b4: 00f707b3 add a5,a4,a5
+800003b8: 0007a303 lw t1,0(a5)
+800003bc: f8030ce3 beqz t1,80000354
+800003c0: 00040513 mv a0,s0
+800003c4: 00812403 lw s0,8(sp)
+800003c8: 00c12083 lw ra,12(sp)
+800003cc: 01010113 addi sp,sp,16
+800003d0: 00030067 jr t1
+800003d4: 800027b7 lui a5,0x80002
+800003d8: e387a303 lw t1,-456(a5) # 80001e38 <_irq_handler>
+800003dc: fe0314e3 bnez t1,800003c4
+800003e0: 80002537 lui a0,0x80002
+800003e4: 9cc50513 addi a0,a0,-1588 # 800019cc <__modsi3+0x48>
+800003e8: 5b1000ef jal 80001198
+800003ec: f99ff06f j 80000384
+800003f0: 00052783 lw a5,0(a0)
+800003f4: 00478793 addi a5,a5,4
+800003f8: 00f52023 sw a5,0(a0)
+800003fc: fadff06f j 800003a8
+
+80000400 :
+80000400: fe010113 addi sp,sp,-32
+80000404: 00452683 lw a3,4(a0)
+80000408: 00852603 lw a2,8(a0)
+8000040c: 00052583 lw a1,0(a0)
+80000410: 00912a23 sw s1,20(sp)
+80000414: 00050493 mv s1,a0
+80000418: 80002537 lui a0,0x80002
+8000041c: a6050513 addi a0,a0,-1440 # 80001a60 <__modsi3+0xdc>
+80000420: 00812c23 sw s0,24(sp)
+80000424: 01212823 sw s2,16(sp)
+80000428: 01312623 sw s3,12(sp)
+8000042c: 00112e23 sw ra,28(sp)
+80000430: 00c48493 addi s1,s1,12
+80000434: 168010ef jal 8000159c
+80000438: 00000413 li s0,0
+8000043c: 800029b7 lui s3,0x80002
+80000440: 02000913 li s2,32
+80000444: 0004a603 lw a2,0(s1)
+80000448: 00040593 mv a1,s0
+8000044c: a8c98513 addi a0,s3,-1396 # 80001a8c <__modsi3+0x108>
+80000450: 00140413 addi s0,s0,1
+80000454: 148010ef jal 8000159c
+80000458: 00448493 addi s1,s1,4
+8000045c: ff2414e3 bne s0,s2,80000444
+80000460: 01c12083 lw ra,28(sp)
+80000464: 01812403 lw s0,24(sp)
+80000468: 01412483 lw s1,20(sp)
+8000046c: 01012903 lw s2,16(sp)
+80000470: 00c12983 lw s3,12(sp)
+80000474: 02010113 addi sp,sp,32
+80000478: 00008067 ret
+
+8000047c :
+8000047c: fe010113 addi sp,sp,-32
+80000480: 00812c23 sw s0,24(sp)
+80000484: 00912a23 sw s1,20(sp)
+80000488: 01212823 sw s2,16(sp)
+8000048c: 01312623 sw s3,12(sp)
+80000490: 00112e23 sw ra,28(sp)
+80000494: 00050413 mv s0,a0
+80000498: 00058493 mv s1,a1
+8000049c: 00060993 mv s3,a2
+800004a0: 00068913 mv s2,a3
+800004a4: 08050e63 beqz a0,80000540
+800004a8: 06048a63 beqz s1,8000051c
+800004ac: 00249613 slli a2,s1,0x2
+800004b0: ffc60613 addi a2,a2,-4
+800004b4: 00c40633 add a2,s0,a2
+800004b8: f7460513 addi a0,a2,-140
+800004bc: f8060713 addi a4,a2,-128
+800004c0: 00000793 li a5,0
+800004c4: 02000693 li a3,32
+800004c8: 00f72023 sw a5,0(a4)
+800004cc: 00178793 addi a5,a5,1
+800004d0: 00470713 addi a4,a4,4
+800004d4: fed79ae3 bne a5,a3,800004c8
+800004d8: 800007b7 lui a5,0x80000
+800004dc: 2a078793 addi a5,a5,672 # 800002a0 <_exit>
+800004e0: f8f62223 sw a5,-124(a2)
+800004e4: 01c12083 lw ra,28(sp)
+800004e8: 01812403 lw s0,24(sp)
+800004ec: 000027b7 lui a5,0x2
+800004f0: 88078793 addi a5,a5,-1920 # 1880
+800004f4: f7362a23 sw s3,-140(a2)
+800004f8: fb262423 sw s2,-88(a2)
+800004fc: f8a62423 sw a0,-120(a2)
+80000500: f6062e23 sw zero,-132(a2)
+80000504: f6f62c23 sw a5,-136(a2)
+80000508: 01412483 lw s1,20(sp)
+8000050c: 01012903 lw s2,16(sp)
+80000510: 00c12983 lw s3,12(sp)
+80000514: 02010113 addi sp,sp,32
+80000518: 00008067 ret
+8000051c: 80002637 lui a2,0x80002
+80000520: 800025b7 lui a1,0x80002
+80000524: 80002537 lui a0,0x80002
+80000528: 05f00693 li a3,95
+8000052c: a0860613 addi a2,a2,-1528 # 80001a08 <__modsi3+0x84>
+80000530: aa458593 addi a1,a1,-1372 # 80001aa4 <__modsi3+0x120>
+80000534: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000538: 078000ef jal 800005b0
+8000053c: f71ff06f j 800004ac
+80000540: 80002637 lui a2,0x80002
+80000544: 800025b7 lui a1,0x80002
+80000548: 80002537 lui a0,0x80002
+8000054c: 05e00693 li a3,94
+80000550: a0860613 addi a2,a2,-1528 # 80001a08 <__modsi3+0x84>
+80000554: a9c58593 addi a1,a1,-1380 # 80001a9c <__modsi3+0x118>
+80000558: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+8000055c: 054000ef jal 800005b0
+80000560: f49ff06f j 800004a8
+
+80000564 :
+80000564: 010007b7 lui a5,0x1000
+80000568: 00f56533 or a0,a0,a5
+8000056c: 7b251073 csrw dscratch0,a0
+80000570: 00000513 li a0,0
+80000574: 00008067 ret
+
+80000578 :
+80000578: 00000513 li a0,0
+8000057c: 00008067 ret
+
+80000580 :
+80000580: fff00513 li a0,-1
+80000584: 00008067 ret
+
+80000588 :
+80000588: 00008067 ret
+
+8000058c :
+8000058c: 00054783 lbu a5,0(a0)
+80000590: 00078e63 beqz a5,800005ac
+80000594: 01000737 lui a4,0x1000
+80000598: 00150513 addi a0,a0,1
+8000059c: 00e7e7b3 or a5,a5,a4
+800005a0: 7b279073 csrw dscratch0,a5
+800005a4: 00054783 lbu a5,0(a0)
+800005a8: fe0798e3 bnez a5,80000598
+800005ac: 00008067 ret
+
+800005b0 :
+800005b0: 00068713 mv a4,a3
+800005b4: 00060693 mv a3,a2
+800005b8: 00058613 mv a2,a1
+800005bc: 00050593 mv a1,a0
+800005c0: 80002537 lui a0,0x80002
+800005c4: ff010113 addi sp,sp,-16
+800005c8: ab450513 addi a0,a0,-1356 # 80001ab4 <__modsi3+0x130>
+800005cc: 00112623 sw ra,12(sp)
+800005d0: 7cd000ef jal 8000159c
+800005d4: 0ff00793 li a5,255
+800005d8: 7b279073 csrw dscratch0,a5
+800005dc: 00c12083 lw ra,12(sp)
+800005e0: 01010113 addi sp,sp,16
+800005e4: 00008067 ret
+
+800005e8 :
+800005e8: 00008067 ret
+
+800005ec :
+800005ec: c00026f3 rdcycle a3
+800005f0: 0000c737 lui a4,0xc
+800005f4: 35070713 addi a4,a4,848 # c350
+800005f8: 02e6d6b3 divu a3,a3,a4
+800005fc: c00027f3 rdcycle a5
+80000600: 02e7d7b3 divu a5,a5,a4
+80000604: 40d787b3 sub a5,a5,a3
+80000608: fea7cae3 blt a5,a0,800005fc
+8000060c: 00008067 ret
+
+80000610 :
+80000610: c0002573 rdcycle a0
+80000614: 0000c7b7 lui a5,0xc
+80000618: 35078793 addi a5,a5,848 # c350
+8000061c: 02f55533 divu a0,a0,a5
+80000620: 00008067 ret
+
+80000624 :
+80000624: 80002537 lui a0,0x80002
+80000628: fe010113 addi sp,sp,-32
+8000062c: ac450513 addi a0,a0,-1340 # 80001ac4 <__modsi3+0x140>
+80000630: 00112e23 sw ra,28(sp)
+80000634: 00812c23 sw s0,24(sp)
+80000638: 00912a23 sw s1,20(sp)
+8000063c: 01212823 sw s2,16(sp)
+80000640: 01312623 sw s3,12(sp)
+80000644: 355000ef jal 80001198
+80000648: 80002537 lui a0,0x80002
+8000064c: acc50513 addi a0,a0,-1332 # 80001acc <__modsi3+0x148>
+80000650: 349000ef jal 80001198
+80000654: 80002437 lui s0,0x80002
+80000658: df042703 lw a4,-528(s0) # 80001df0
+8000065c: 000017b7 lui a5,0x1
+80000660: 23478793 addi a5,a5,564 # 1234
+80000664: 02f70263 beq a4,a5,80000688
+80000668: 80002637 lui a2,0x80002
+8000066c: 800025b7 lui a1,0x80002
+80000670: 80002537 lui a0,0x80002
+80000674: 02100693 li a3,33
+80000678: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+8000067c: ae858593 addi a1,a1,-1304 # 80001ae8 <__modsi3+0x164>
+80000680: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000684: f2dff0ef jal 800005b0
+80000688: 800024b7 lui s1,0x80002
+8000068c: e484a783 lw a5,-440(s1) # 80001e48
+80000690: 04079ee3 bnez a5,80000eec
+80000694: 80002537 lui a0,0x80002
+80000698: b0450513 addi a0,a0,-1276 # 80001b04 <__modsi3+0x180>
+8000069c: 2fd000ef jal 80001198
+800006a0: df042683 lw a3,-528(s0)
+800006a4: 000037b7 lui a5,0x3
+800006a8: 69c78793 addi a5,a5,1692 # 369c
+800006ac: 00169713 slli a4,a3,0x1
+800006b0: 00d70733 add a4,a4,a3
+800006b4: dee42823 sw a4,-528(s0)
+800006b8: df042703 lw a4,-528(s0)
+800006bc: 02f70263 beq a4,a5,800006e0
+800006c0: 80002637 lui a2,0x80002
+800006c4: 800025b7 lui a1,0x80002
+800006c8: 80002537 lui a0,0x80002
+800006cc: 02600693 li a3,38
+800006d0: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+800006d4: b1058593 addi a1,a1,-1264 # 80001b10 <__modsi3+0x18c>
+800006d8: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+800006dc: ed5ff0ef jal 800005b0
+800006e0: fff00793 li a5,-1
+800006e4: def42823 sw a5,-528(s0)
+800006e8: df042703 lw a4,-528(s0)
+800006ec: ffd00693 li a3,-3
+800006f0: 00171793 slli a5,a4,0x1
+800006f4: 00e787b3 add a5,a5,a4
+800006f8: def42823 sw a5,-528(s0)
+800006fc: df042783 lw a5,-528(s0)
+80000700: 02d78263 beq a5,a3,80000724
+80000704: 80002637 lui a2,0x80002
+80000708: 800025b7 lui a1,0x80002
+8000070c: 80002537 lui a0,0x80002
+80000710: 02900693 li a3,41
+80000714: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000718: b2058593 addi a1,a1,-1248 # 80001b20 <__modsi3+0x19c>
+8000071c: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000720: e91ff0ef jal 800005b0
+80000724: ffb00793 li a5,-5
+80000728: def42823 sw a5,-528(s0)
+8000072c: df042703 lw a4,-528(s0)
+80000730: fbf00693 li a3,-65
+80000734: 00171793 slli a5,a4,0x1
+80000738: 00e787b3 add a5,a5,a4
+8000073c: 00279793 slli a5,a5,0x2
+80000740: 00e787b3 add a5,a5,a4
+80000744: def42823 sw a5,-528(s0)
+80000748: df042783 lw a5,-528(s0)
+8000074c: 02d78263 beq a5,a3,80000770
+80000750: 80002637 lui a2,0x80002
+80000754: 800025b7 lui a1,0x80002
+80000758: 80002537 lui a0,0x80002
+8000075c: 02c00693 li a3,44
+80000760: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000764: b2c58593 addi a1,a1,-1236 # 80001b2c <__modsi3+0x1a8>
+80000768: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+8000076c: e45ff0ef jal 800005b0
+80000770: ffb00793 li a5,-5
+80000774: def42823 sw a5,-528(s0)
+80000778: df042703 lw a4,-528(s0)
+8000077c: 04100693 li a3,65
+80000780: 00371793 slli a5,a4,0x3
+80000784: 40f707b3 sub a5,a4,a5
+80000788: 00179793 slli a5,a5,0x1
+8000078c: 00e787b3 add a5,a5,a4
+80000790: def42823 sw a5,-528(s0)
+80000794: df042783 lw a5,-528(s0)
+80000798: 02d78263 beq a5,a3,800007bc
+8000079c: 80002637 lui a2,0x80002
+800007a0: 800025b7 lui a1,0x80002
+800007a4: 80002537 lui a0,0x80002
+800007a8: 02f00693 li a3,47
+800007ac: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+800007b0: b3858593 addi a1,a1,-1224 # 80001b38 <__modsi3+0x1b4>
+800007b4: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+800007b8: df9ff0ef jal 800005b0
+800007bc: f8a957b7 lui a5,0xf8a95
+800007c0: 92978793 addi a5,a5,-1751 # f8a94929 <_end+0x78a91ad9>
+800007c4: def42823 sw a5,-528(s0)
+800007c8: df042703 lw a4,-528(s0)
+800007cc: 009387b7 lui a5,0x938
+800007d0: 83378793 addi a5,a5,-1997 # 937833
+800007d4: 02f70733 mul a4,a4,a5
+800007d8: e68fd7b7 lui a5,0xe68fd
+800007dc: b2b78793 addi a5,a5,-1237 # e68fcb2b <_end+0x668f9cdb>
+800007e0: dee42823 sw a4,-528(s0)
+800007e4: df042703 lw a4,-528(s0)
+800007e8: 02f70263 beq a4,a5,8000080c
+800007ec: 80002637 lui a2,0x80002
+800007f0: 800025b7 lui a1,0x80002
+800007f4: 80002537 lui a0,0x80002
+800007f8: 03200693 li a3,50
+800007fc: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000800: b4858593 addi a1,a1,-1208 # 80001b48 <__modsi3+0x1c4>
+80000804: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000808: da9ff0ef jal 800005b0
+8000080c: 80002537 lui a0,0x80002
+80000810: b6450513 addi a0,a0,-1180 # 80001b64 <__modsi3+0x1e0>
+80000814: 185000ef jal 80001198
+80000818: 000037b7 lui a5,0x3
+8000081c: 69c78793 addi a5,a5,1692 # 369c
+80000820: def42823 sw a5,-528(s0)
+80000824: df042703 lw a4,-528(s0)
+80000828: 00500793 li a5,5
+8000082c: 02f74733 div a4,a4,a5
+80000830: 000017b7 lui a5,0x1
+80000834: aec78793 addi a5,a5,-1300 # aec
+80000838: dee42823 sw a4,-528(s0)
+8000083c: df042703 lw a4,-528(s0)
+80000840: 02f70263 beq a4,a5,80000864
+80000844: 80002637 lui a2,0x80002
+80000848: 800025b7 lui a1,0x80002
+8000084c: 80002537 lui a0,0x80002
+80000850: 03700693 li a3,55
+80000854: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000858: b7058593 addi a1,a1,-1168 # 80001b70 <__modsi3+0x1ec>
+8000085c: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000860: d51ff0ef jal 800005b0
+80000864: df042783 lw a5,-528(s0)
+80000868: 06400693 li a3,100
+8000086c: 06000713 li a4,96
+80000870: 02d7e7b3 rem a5,a5,a3
+80000874: def42823 sw a5,-528(s0)
+80000878: df042783 lw a5,-528(s0)
+8000087c: 02e78263 beq a5,a4,800008a0
+80000880: 80002637 lui a2,0x80002
+80000884: 800025b7 lui a1,0x80002
+80000888: 80002537 lui a0,0x80002
+8000088c: 03900693 li a3,57
+80000890: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000894: b7c58593 addi a1,a1,-1156 # 80001b7c <__modsi3+0x1f8>
+80000898: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+8000089c: d15ff0ef jal 800005b0
+800008a0: b0700793 li a5,-1273
+800008a4: def42823 sw a5,-528(s0)
+800008a8: df042783 lw a5,-528(s0)
+800008ac: 01300693 li a3,19
+800008b0: fbd00713 li a4,-67
+800008b4: 02d7c7b3 div a5,a5,a3
+800008b8: def42823 sw a5,-528(s0)
+800008bc: df042783 lw a5,-528(s0)
+800008c0: 02e78263 beq a5,a4,800008e4
+800008c4: 80002637 lui a2,0x80002
+800008c8: 800025b7 lui a1,0x80002
+800008cc: 80002537 lui a0,0x80002
+800008d0: 03c00693 li a3,60
+800008d4: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+800008d8: b8858593 addi a1,a1,-1144 # 80001b88 <__modsi3+0x204>
+800008dc: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+800008e0: cd1ff0ef jal 800005b0
+800008e4: 80002537 lui a0,0x80002
+800008e8: b9450513 addi a0,a0,-1132 # 80001b94 <__modsi3+0x210>
+800008ec: 0ad000ef jal 80001198
+800008f0: 00100793 li a5,1
+800008f4: def42823 sw a5,-528(s0)
+800008f8: df042783 lw a5,-528(s0)
+800008fc: 80000737 lui a4,0x80000
+80000900: 01f79793 slli a5,a5,0x1f
+80000904: def42823 sw a5,-528(s0)
+80000908: df042783 lw a5,-528(s0)
+8000090c: 02e78263 beq a5,a4,80000930
+80000910: 80002637 lui a2,0x80002
+80000914: 800025b7 lui a1,0x80002
+80000918: 80002537 lui a0,0x80002
+8000091c: 04100693 li a3,65
+80000920: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000924: ba458593 addi a1,a1,-1116 # 80001ba4 <__modsi3+0x220>
+80000928: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+8000092c: c85ff0ef jal 800005b0
+80000930: 80002537 lui a0,0x80002
+80000934: bb850513 addi a0,a0,-1096 # 80001bb8 <__modsi3+0x234>
+80000938: 061000ef jal 80001198
+8000093c: 800007b7 lui a5,0x80000
+80000940: e4f4a423 sw a5,-440(s1)
+80000944: e484a783 lw a5,-440(s1)
+80000948: 40000737 lui a4,0x40000
+8000094c: 0017d793 srli a5,a5,0x1
+80000950: e4f4a423 sw a5,-440(s1)
+80000954: e484a783 lw a5,-440(s1)
+80000958: 00e78a63 beq a5,a4,8000096c
+8000095c: e484a583 lw a1,-440(s1)
+80000960: 80002537 lui a0,0x80002
+80000964: bc850513 addi a0,a0,-1080 # 80001bc8 <__modsi3+0x244>
+80000968: 435000ef jal 8000159c
+8000096c: e484a703 lw a4,-440(s1)
+80000970: 400007b7 lui a5,0x40000
+80000974: 02f70263 beq a4,a5,80000998
+80000978: 80002637 lui a2,0x80002
+8000097c: 800025b7 lui a1,0x80002
+80000980: 80002537 lui a0,0x80002
+80000984: 04800693 li a3,72
+80000988: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+8000098c: bcc58593 addi a1,a1,-1076 # 80001bcc <__modsi3+0x248>
+80000990: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000994: c1dff0ef jal 800005b0
+80000998: e484a783 lw a5,-440(s1)
+8000099c: 00100713 li a4,1
+800009a0: 01e7d793 srli a5,a5,0x1e
+800009a4: e4f4a423 sw a5,-440(s1)
+800009a8: e484a783 lw a5,-440(s1)
+800009ac: 02e78263 beq a5,a4,800009d0
+800009b0: 80002637 lui a2,0x80002
+800009b4: 800025b7 lui a1,0x80002
+800009b8: 80002537 lui a0,0x80002
+800009bc: 04a00693 li a3,74
+800009c0: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+800009c4: be058593 addi a1,a1,-1056 # 80001be0 <__modsi3+0x25c>
+800009c8: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+800009cc: be5ff0ef jal 800005b0
+800009d0: 80002537 lui a0,0x80002
+800009d4: bf450513 addi a0,a0,-1036 # 80001bf4 <__modsi3+0x270>
+800009d8: 7c0000ef jal 80001198
+800009dc: 800007b7 lui a5,0x80000
+800009e0: def42823 sw a5,-528(s0)
+800009e4: df042783 lw a5,-528(s0)
+800009e8: c0000737 lui a4,0xc0000
+800009ec: 4017d793 srai a5,a5,0x1
+800009f0: def42823 sw a5,-528(s0)
+800009f4: df042783 lw a5,-528(s0)
+800009f8: 02e78263 beq a5,a4,80000a1c
+800009fc: 80002637 lui a2,0x80002
+80000a00: 800025b7 lui a1,0x80002
+80000a04: 80002537 lui a0,0x80002
+80000a08: 04f00693 li a3,79
+80000a0c: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000a10: c1058593 addi a1,a1,-1008 # 80001c10 <__modsi3+0x28c>
+80000a14: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000a18: b99ff0ef jal 800005b0
+80000a1c: 80002537 lui a0,0x80002
+80000a20: c2450513 addi a0,a0,-988 # 80001c24 <__modsi3+0x2a0>
+80000a24: 774000ef jal 80001198
+80000a28: fff00793 li a5,-1
+80000a2c: def42823 sw a5,-528(s0)
+80000a30: df042783 lw a5,-528(s0)
+80000a34: 02f05263 blez a5,80000a58
+80000a38: 80002637 lui a2,0x80002
+80000a3c: 800025b7 lui a1,0x80002
+80000a40: 80002537 lui a0,0x80002
+80000a44: 05300693 li a3,83
+80000a48: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000a4c: c3c58593 addi a1,a1,-964 # 80001c3c <__modsi3+0x2b8>
+80000a50: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000a54: b5dff0ef jal 800005b0
+80000a58: df042703 lw a4,-528(s0)
+80000a5c: 00900793 li a5,9
+80000a60: 46e7c463 blt a5,a4,80000ec8
+80000a64: df042703 lw a4,-528(s0)
+80000a68: 00a00793 li a5,10
+80000a6c: 42e7cc63 blt a5,a4,80000ea4
+80000a70: df042703 lw a4,-528(s0)
+80000a74: ffe00793 li a5,-2
+80000a78: 40f74463 blt a4,a5,80000e80
+80000a7c: df042703 lw a4,-528(s0)
+80000a80: ffd00793 li a5,-3
+80000a84: 3cf74c63 blt a4,a5,80000e5c
+80000a88: 80002537 lui a0,0x80002
+80000a8c: c6c50513 addi a0,a0,-916 # 80001c6c <__modsi3+0x2e8>
+80000a90: 708000ef jal 80001198
+80000a94: 123457b7 lui a5,0x12345
+80000a98: 67878793 addi a5,a5,1656 # 12345678
+80000a9c: e4f4a423 sw a5,-440(s1)
+80000aa0: e484a703 lw a4,-440(s1)
+80000aa4: 02f70263 beq a4,a5,80000ac8
+80000aa8: 80002637 lui a2,0x80002
+80000aac: 800025b7 lui a1,0x80002
+80000ab0: 80002537 lui a0,0x80002
+80000ab4: 05d00693 li a3,93
+80000ab8: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000abc: c7c58593 addi a1,a1,-900 # 80001c7c <__modsi3+0x2f8>
+80000ac0: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000ac4: aedff0ef jal 800005b0
+80000ac8: e484a703 lw a4,-440(s1)
+80000acc: 000057b7 lui a5,0x5
+80000ad0: 67878793 addi a5,a5,1656 # 5678
+80000ad4: 01071713 slli a4,a4,0x10
+80000ad8: 01075713 srli a4,a4,0x10
+80000adc: 02f70263 beq a4,a5,80000b00
+80000ae0: 80002637 lui a2,0x80002
+80000ae4: 800025b7 lui a1,0x80002
+80000ae8: 80002537 lui a0,0x80002
+80000aec: 05f00693 li a3,95
+80000af0: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000af4: c9058593 addi a1,a1,-880 # 80001c90 <__modsi3+0x30c>
+80000af8: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000afc: ab5ff0ef jal 800005b0
+80000b00: e484d703 lhu a4,-440(s1)
+80000b04: 000057b7 lui a5,0x5
+80000b08: 67878793 addi a5,a5,1656 # 5678
+80000b0c: 02f70263 beq a4,a5,80000b30
+80000b10: 80002637 lui a2,0x80002
+80000b14: 800025b7 lui a1,0x80002
+80000b18: 80002537 lui a0,0x80002
+80000b1c: 06100693 li a3,97
+80000b20: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000b24: ca058593 addi a1,a1,-864 # 80001ca0 <__modsi3+0x31c>
+80000b28: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000b2c: a85ff0ef jal 800005b0
+80000b30: e4848413 addi s0,s1,-440
+80000b34: 00245703 lhu a4,2(s0)
+80000b38: 000017b7 lui a5,0x1
+80000b3c: 23478793 addi a5,a5,564 # 1234
+80000b40: 02f70263 beq a4,a5,80000b64
+80000b44: 80002637 lui a2,0x80002
+80000b48: 800025b7 lui a1,0x80002
+80000b4c: 80002537 lui a0,0x80002
+80000b50: 06200693 li a3,98
+80000b54: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000b58: cb458593 addi a1,a1,-844 # 80001cb4 <__modsi3+0x330>
+80000b5c: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000b60: a51ff0ef jal 800005b0
+80000b64: ffffd7b7 lui a5,0xffffd
+80000b68: afe78793 addi a5,a5,-1282 # ffffcafe <_end+0x7fff9cae>
+80000b6c: 00245703 lhu a4,2(s0)
+80000b70: e4f49423 sh a5,-440(s1)
+80000b74: 000017b7 lui a5,0x1
+80000b78: 23478793 addi a5,a5,564 # 1234
+80000b7c: 02f70263 beq a4,a5,80000ba0
+80000b80: 80002637 lui a2,0x80002
+80000b84: 800025b7 lui a1,0x80002
+80000b88: 80002537 lui a0,0x80002
+80000b8c: 06600693 li a3,102
+80000b90: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000b94: cb458593 addi a1,a1,-844 # 80001cb4 <__modsi3+0x330>
+80000b98: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000b9c: a15ff0ef jal 800005b0
+80000ba0: ffffc7b7 lui a5,0xffffc
+80000ba4: abe78793 addi a5,a5,-1346 # ffffbabe <_end+0x7fff8c6e>
+80000ba8: e484d703 lhu a4,-440(s1)
+80000bac: 00f41123 sh a5,2(s0)
+80000bb0: 0000d7b7 lui a5,0xd
+80000bb4: afe78793 addi a5,a5,-1282 # cafe
+80000bb8: 24f71c63 bne a4,a5,80000e10
+80000bbc: 80002537 lui a0,0x80002
+80000bc0: cf050513 addi a0,a0,-784 # 80001cf0 <__modsi3+0x36c>
+80000bc4: 5d4000ef jal 80001198
+80000bc8: 123457b7 lui a5,0x12345
+80000bcc: 67878793 addi a5,a5,1656 # 12345678
+80000bd0: e4f4a423 sw a5,-440(s1)
+80000bd4: e484a703 lw a4,-440(s1)
+80000bd8: 02f70263 beq a4,a5,80000bfc
+80000bdc: 80002637 lui a2,0x80002
+80000be0: 800025b7 lui a1,0x80002
+80000be4: 80002537 lui a0,0x80002
+80000be8: 06f00693 li a3,111
+80000bec: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000bf0: c7c58593 addi a1,a1,-900 # 80001c7c <__modsi3+0x2f8>
+80000bf4: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000bf8: 9b9ff0ef jal 800005b0
+80000bfc: e484a783 lw a5,-440(s1)
+80000c00: 07800713 li a4,120
+80000c04: 0ff7f793 zext.b a5,a5
+80000c08: 02e78263 beq a5,a4,80000c2c
+80000c0c: 80002637 lui a2,0x80002
+80000c10: 800025b7 lui a1,0x80002
+80000c14: 80002537 lui a0,0x80002
+80000c18: 07100693 li a3,113
+80000c1c: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000c20: d0058593 addi a1,a1,-768 # 80001d00 <__modsi3+0x37c>
+80000c24: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000c28: 989ff0ef jal 800005b0
+80000c2c: e484c703 lbu a4,-440(s1)
+80000c30: 07800793 li a5,120
+80000c34: 02f70263 beq a4,a5,80000c58
+80000c38: 80002637 lui a2,0x80002
+80000c3c: 800025b7 lui a1,0x80002
+80000c40: 80002537 lui a0,0x80002
+80000c44: 07300693 li a3,115
+80000c48: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000c4c: d0c58593 addi a1,a1,-756 # 80001d0c <__modsi3+0x388>
+80000c50: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000c54: 95dff0ef jal 800005b0
+80000c58: 00144703 lbu a4,1(s0)
+80000c5c: 05600793 li a5,86
+80000c60: 02f70263 beq a4,a5,80000c84
+80000c64: 80002637 lui a2,0x80002
+80000c68: 800025b7 lui a1,0x80002
+80000c6c: 80002537 lui a0,0x80002
+80000c70: 07400693 li a3,116
+80000c74: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000c78: d1c58593 addi a1,a1,-740 # 80001d1c <__modsi3+0x398>
+80000c7c: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000c80: 931ff0ef jal 800005b0
+80000c84: 00244703 lbu a4,2(s0)
+80000c88: 03400793 li a5,52
+80000c8c: 02f70263 beq a4,a5,80000cb0
+80000c90: 80002637 lui a2,0x80002
+80000c94: 800025b7 lui a1,0x80002
+80000c98: 80002537 lui a0,0x80002
+80000c9c: 07500693 li a3,117
+80000ca0: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000ca4: d2c58593 addi a1,a1,-724 # 80001d2c <__modsi3+0x3a8>
+80000ca8: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000cac: 905ff0ef jal 800005b0
+80000cb0: 00344703 lbu a4,3(s0)
+80000cb4: 01200793 li a5,18
+80000cb8: 02f70263 beq a4,a5,80000cdc
+80000cbc: 80002637 lui a2,0x80002
+80000cc0: 800025b7 lui a1,0x80002
+80000cc4: 80002537 lui a0,0x80002
+80000cc8: 07600693 li a3,118
+80000ccc: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000cd0: d3c58593 addi a1,a1,-708 # 80001d3c <__modsi3+0x3b8>
+80000cd4: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000cd8: 8d9ff0ef jal 800005b0
+80000cdc: fab00793 li a5,-85
+80000ce0: e4f48423 sb a5,-440(s1)
+80000ce4: e484a703 lw a4,-440(s1)
+80000ce8: 123457b7 lui a5,0x12345
+80000cec: 6ab78793 addi a5,a5,1707 # 123456ab
+80000cf0: 02f70263 beq a4,a5,80000d14
+80000cf4: 80002637 lui a2,0x80002
+80000cf8: 800025b7 lui a1,0x80002
+80000cfc: 80002537 lui a0,0x80002
+80000d00: 07900693 li a3,121
+80000d04: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000d08: d4c58593 addi a1,a1,-692 # 80001d4c <__modsi3+0x3c8>
+80000d0c: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000d10: 8a1ff0ef jal 800005b0
+80000d14: fcd00793 li a5,-51
+80000d18: 00f400a3 sb a5,1(s0)
+80000d1c: e484a703 lw a4,-440(s1)
+80000d20: 1234d7b7 lui a5,0x1234d
+80000d24: dab78793 addi a5,a5,-597 # 1234cdab
+80000d28: 02f70263 beq a4,a5,80000d4c
+80000d2c: 80002637 lui a2,0x80002
+80000d30: 800025b7 lui a1,0x80002
+80000d34: 80002537 lui a0,0x80002
+80000d38: 07b00693 li a3,123
+80000d3c: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000d40: d6058593 addi a1,a1,-672 # 80001d60 <__modsi3+0x3dc>
+80000d44: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000d48: 869ff0ef jal 800005b0
+80000d4c: fef00793 li a5,-17
+80000d50: 00f40123 sb a5,2(s0)
+80000d54: e484a703 lw a4,-440(s1)
+80000d58: 12efd7b7 lui a5,0x12efd
+80000d5c: dab78793 addi a5,a5,-597 # 12efcdab
+80000d60: 02f70263 beq a4,a5,80000d84
+80000d64: 80002637 lui a2,0x80002
+80000d68: 800025b7 lui a1,0x80002
+80000d6c: 80002537 lui a0,0x80002
+80000d70: 07d00693 li a3,125
+80000d74: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000d78: d7458593 addi a1,a1,-652 # 80001d74 <__modsi3+0x3f0>
+80000d7c: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000d80: 831ff0ef jal 800005b0
+80000d84: 00100793 li a5,1
+80000d88: 00f401a3 sb a5,3(s0)
+80000d8c: e484a703 lw a4,-440(s1)
+80000d90: 01efd7b7 lui a5,0x1efd
+80000d94: dab78793 addi a5,a5,-597 # 1efcdab
+80000d98: 02f70263 beq a4,a5,80000dbc
+80000d9c: 80002637 lui a2,0x80002
+80000da0: 800025b7 lui a1,0x80002
+80000da4: 80002537 lui a0,0x80002
+80000da8: 07f00693 li a3,127
+80000dac: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000db0: d8858593 addi a1,a1,-632 # 80001d88 <__modsi3+0x404>
+80000db4: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000db8: ff8ff0ef jal 800005b0
+80000dbc: 80002537 lui a0,0x80002
+80000dc0: d9c50513 addi a0,a0,-612 # 80001d9c <__modsi3+0x418>
+80000dc4: 3d4000ef jal 80001198
+80000dc8: 000027b7 lui a5,0x2
+80000dcc: 80002737 lui a4,0x80002
+80000dd0: db978793 addi a5,a5,-583 # 1db9
+80000dd4: e4f72223 sw a5,-444(a4) # 80001e44
+80000dd8: e4472603 lw a2,-444(a4)
+80000ddc: 000107b7 lui a5,0x10
+80000de0: ff778693 addi a3,a5,-9 # fff7
+80000de4: 00c6f663 bgeu a3,a2,80000df0
+80000de8: e4472703 lw a4,-444(a4)
+80000dec: 12f76263 bltu a4,a5,80000f10
+80000df0: 01c12083 lw ra,28(sp)
+80000df4: 01812403 lw s0,24(sp)
+80000df8: 01412483 lw s1,20(sp)
+80000dfc: 01012903 lw s2,16(sp)
+80000e00: 00c12983 lw s3,12(sp)
+80000e04: 00000513 li a0,0
+80000e08: 02010113 addi sp,sp,32
+80000e0c: 00008067 ret
+80000e10: 800029b7 lui s3,0x80002
+80000e14: 80002937 lui s2,0x80002
+80000e18: 800025b7 lui a1,0x80002
+80000e1c: 06a00693 li a3,106
+80000e20: ae098613 addi a2,s3,-1312 # 80001ae0 <__modsi3+0x15c>
+80000e24: cc858593 addi a1,a1,-824 # 80001cc8 <__modsi3+0x344>
+80000e28: a5890513 addi a0,s2,-1448 # 80001a58 <__modsi3+0xd4>
+80000e2c: f84ff0ef jal 800005b0
+80000e30: 00245703 lhu a4,2(s0)
+80000e34: 0000c7b7 lui a5,0xc
+80000e38: abe78793 addi a5,a5,-1346 # babe
+80000e3c: d8f700e3 beq a4,a5,80000bbc
+80000e40: 800025b7 lui a1,0x80002
+80000e44: 06b00693 li a3,107
+80000e48: ae098613 addi a2,s3,-1312
+80000e4c: cdc58593 addi a1,a1,-804 # 80001cdc <__modsi3+0x358>
+80000e50: a5890513 addi a0,s2,-1448
+80000e54: f5cff0ef jal 800005b0
+80000e58: d65ff06f j 80000bbc
+80000e5c: 80002637 lui a2,0x80002
+80000e60: 800025b7 lui a1,0x80002
+80000e64: 80002537 lui a0,0x80002
+80000e68: 05900693 li a3,89
+80000e6c: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000e70: c6058593 addi a1,a1,-928 # 80001c60 <__modsi3+0x2dc>
+80000e74: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000e78: f38ff0ef jal 800005b0
+80000e7c: c0dff06f j 80000a88
+80000e80: 80002637 lui a2,0x80002
+80000e84: 800025b7 lui a1,0x80002
+80000e88: 80002537 lui a0,0x80002
+80000e8c: 05800693 li a3,88
+80000e90: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000e94: c5858593 addi a1,a1,-936 # 80001c58 <__modsi3+0x2d4>
+80000e98: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000e9c: f14ff0ef jal 800005b0
+80000ea0: bddff06f j 80000a7c
+80000ea4: 80002637 lui a2,0x80002
+80000ea8: 800025b7 lui a1,0x80002
+80000eac: 80002537 lui a0,0x80002
+80000eb0: 05600693 li a3,86
+80000eb4: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000eb8: c4c58593 addi a1,a1,-948 # 80001c4c <__modsi3+0x2c8>
+80000ebc: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000ec0: ef0ff0ef jal 800005b0
+80000ec4: badff06f j 80000a70
+80000ec8: 80002637 lui a2,0x80002
+80000ecc: 800025b7 lui a1,0x80002
+80000ed0: 80002537 lui a0,0x80002
+80000ed4: 05500693 li a3,85
+80000ed8: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000edc: c4458593 addi a1,a1,-956 # 80001c44 <__modsi3+0x2c0>
+80000ee0: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000ee4: eccff0ef jal 800005b0
+80000ee8: b7dff06f j 80000a64
+80000eec: 80002637 lui a2,0x80002
+80000ef0: 800025b7 lui a1,0x80002
+80000ef4: 80002537 lui a0,0x80002
+80000ef8: 02200693 li a3,34
+80000efc: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000f00: af858593 addi a1,a1,-1288 # 80001af8 <__modsi3+0x174>
+80000f04: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000f08: ea8ff0ef jal 800005b0
+80000f0c: f88ff06f j 80000694
+80000f10: 80002537 lui a0,0x80002
+80000f14: dac50513 addi a0,a0,-596 # 80001dac <__modsi3+0x428>
+80000f18: 280000ef jal 80001198
+80000f1c: 80002637 lui a2,0x80002
+80000f20: 800025b7 lui a1,0x80002
+80000f24: 80002537 lui a0,0x80002
+80000f28: 08600693 li a3,134
+80000f2c: ae060613 addi a2,a2,-1312 # 80001ae0 <__modsi3+0x15c>
+80000f30: bb458593 addi a1,a1,-1100 # 80001bb4 <__modsi3+0x230>
+80000f34: a5850513 addi a0,a0,-1448 # 80001a58 <__modsi3+0xd4>
+80000f38: e78ff0ef jal 800005b0
+80000f3c: eb5ff06f j 80000df0
+
+80000f40 :
+80000f40: 00052303 lw t1,0(a0)
+80000f44: 00030663 beqz t1,80000f50
+80000f48: 00058513 mv a0,a1
+80000f4c: 00030067 jr t1
+80000f50: 00452703 lw a4,4(a0)
+80000f54: 02070063 beqz a4,80000f74
+80000f58: 00852683 lw a3,8(a0)
+80000f5c: 00c52603 lw a2,12(a0)
+80000f60: 00c6da63 bge a3,a2,80000f74
+80000f64: 00168613 addi a2,a3,1
+80000f68: 00c52423 sw a2,8(a0)
+80000f6c: 00d70733 add a4,a4,a3
+80000f70: 00b70023 sb a1,0(a4)
+80000f74: 00008067 ret
+
+80000f78 :
+80000f78: 01062783 lw a5,16(a2)
+80000f7c: 04078263 beqz a5,80000fc0
+80000f80: 04058063 beqz a1,80000fc0
+80000f84: ff010113 addi sp,sp,-16
+80000f88: 00912223 sw s1,4(sp)
+80000f8c: 00462783 lw a5,4(a2)
+80000f90: 00062483 lw s1,0(a2)
+80000f94: 00812423 sw s0,8(sp)
+80000f98: 01212023 sw s2,0(sp)
+80000f9c: 00112623 sw ra,12(sp)
+80000fa0: 00060413 mv s0,a2
+80000fa4: 00050913 mv s2,a0
+80000fa8: 02f4c863 blt s1,a5,80000fd8
+80000fac: 00c12083 lw ra,12(sp)
+80000fb0: 00812403 lw s0,8(sp)
+80000fb4: 00412483 lw s1,4(sp)
+80000fb8: 00012903 lw s2,0(sp)
+80000fbc: 01010113 addi sp,sp,16
+80000fc0: 00008067 ret
+80000fc4: 00c44583 lbu a1,12(s0)
+80000fc8: 00090513 mv a0,s2
+80000fcc: 00148493 addi s1,s1,1
+80000fd0: 00000317 auipc t1,0x0
+80000fd4: f70300e7 jalr -144(t1) # 80000f40
+80000fd8: 00442783 lw a5,4(s0)
+80000fdc: fef4c4e3 blt s1,a5,80000fc4
+80000fe0: fcdff06f j 80000fac
+
+80000fe4 :
+80000fe4: f8010113 addi sp,sp,-128
+80000fe8: 06912a23 sw s1,116(sp)
+80000fec: 00058493 mv s1,a1
+80000ff0: 800025b7 lui a1,0x80002
+80000ff4: 07412423 sw s4,104(sp)
+80000ff8: 07612023 sw s6,96(sp)
+80000ffc: dc458593 addi a1,a1,-572 # 80001dc4 <__modsi3+0x440>
+80001000: 00050b13 mv s6,a0
+80001004: 00060a13 mv s4,a2
+80001008: 00810513 addi a0,sp,8
+8000100c: 01100613 li a2,17
+80001010: 06112e23 sw ra,124(sp)
+80001014: 07212823 sw s2,112(sp)
+80001018: 06812c23 sw s0,120(sp)
+8000101c: 00068913 mv s2,a3
+80001020: 07312623 sw s3,108(sp)
+80001024: 07512223 sw s5,100(sp)
+80001028: 05712e23 sw s7,92(sp)
+8000102c: 00000317 auipc t1,0x0
+80001030: 7ec300e7 jalr 2028(t1) # 80001818
+80001034: 800025b7 lui a1,0x80002
+80001038: 01100613 li a2,17
+8000103c: dd858593 addi a1,a1,-552 # 80001dd8 <__modsi3+0x454>
+80001040: 01c10513 addi a0,sp,28
+80001044: 00000317 auipc t1,0x0
+80001048: 7d4300e7 jalr 2004(t1) # 80001818
+8000104c: 00a00793 li a5,10
+80001050: 0efa1e63 bne s4,a5,8000114c
+80001054: 0e04dc63 bgez s1,8000114c
+80001058: 409004b3 neg s1,s1
+8000105c: 00100b93 li s7,1
+80001060: 01892783 lw a5,24(s2)
+80001064: 00810993 addi s3,sp,8
+80001068: 00079463 bnez a5,80001070
+8000106c: 01c10993 addi s3,sp,28
+80001070: 03010a93 addi s5,sp,48
+80001074: 00a00793 li a5,10
+80001078: 000a8413 mv s0,s5
+8000107c: 0cfa1c63 bne s4,a5,80001154
+80001080: 000a0593 mv a1,s4
+80001084: 00048513 mv a0,s1
+80001088: 00001317 auipc t1,0x1
+8000108c: 8f0300e7 jalr -1808(t1) # 80001978 <__umodsi3>
+80001090: 00a98533 add a0,s3,a0
+80001094: 00054783 lbu a5,0(a0)
+80001098: 00140413 addi s0,s0,1
+8000109c: 00048513 mv a0,s1
+800010a0: fef40fa3 sb a5,-1(s0)
+800010a4: 000a0593 mv a1,s4
+800010a8: 00001317 auipc t1,0x1
+800010ac: 840300e7 jalr -1984(t1) # 800018e8 <__udivsi3>
+800010b0: 00050493 mv s1,a0
+800010b4: fc0516e3 bnez a0,80001080
+800010b8: 000b8863 beqz s7,800010c8
+800010bc: 02d00793 li a5,45
+800010c0: 00f40023 sb a5,0(s0)
+800010c4: 00140413 addi s0,s0,1
+800010c8: 00040023 sb zero,0(s0)
+800010cc: 000a8513 mv a0,s5
+800010d0: 00000317 auipc t1,0x0
+800010d4: 6f8300e7 jalr 1784(t1) # 800017c8
+800010d8: 01492583 lw a1,20(s2)
+800010dc: 00a92023 sw a0,0(s2)
+800010e0: 00090613 mv a2,s2
+800010e4: 0015b593 seqz a1,a1
+800010e8: 000b0513 mv a0,s6
+800010ec: fff40493 addi s1,s0,-1
+800010f0: 00000317 auipc t1,0x0
+800010f4: e88300e7 jalr -376(t1) # 80000f78
+800010f8: fff4c793 not a5,s1
+800010fc: 00f407b3 add a5,s0,a5
+80001100: 0154e663 bltu s1,s5,8000110c
+80001104: 01c92703 lw a4,28(s2)
+80001108: 06e7c663 blt a5,a4,80001174
+8000110c: 01492583 lw a1,20(s2)
+80001110: 00090613 mv a2,s2
+80001114: 000b0513 mv a0,s6
+80001118: 00000317 auipc t1,0x0
+8000111c: e60300e7 jalr -416(t1) # 80000f78
+80001120: 07c12083 lw ra,124(sp)
+80001124: 07812403 lw s0,120(sp)
+80001128: 07412483 lw s1,116(sp)
+8000112c: 07012903 lw s2,112(sp)
+80001130: 06c12983 lw s3,108(sp)
+80001134: 06812a03 lw s4,104(sp)
+80001138: 06412a83 lw s5,100(sp)
+8000113c: 06012b03 lw s6,96(sp)
+80001140: 05c12b83 lw s7,92(sp)
+80001144: 08010113 addi sp,sp,128
+80001148: 00008067 ret
+8000114c: 00000b93 li s7,0
+80001150: f11ff06f j 80001060
+80001154: 00f4f793 andi a5,s1,15
+80001158: 00f987b3 add a5,s3,a5
+8000115c: 0007c783 lbu a5,0(a5)
+80001160: 00140413 addi s0,s0,1
+80001164: 0044d493 srli s1,s1,0x4
+80001168: fef40fa3 sb a5,-1(s0)
+8000116c: fe0494e3 bnez s1,80001154
+80001170: f49ff06f j 800010b8
+80001174: fff48493 addi s1,s1,-1
+80001178: 0014c583 lbu a1,1(s1)
+8000117c: 000b0513 mv a0,s6
+80001180: 00000317 auipc t1,0x0
+80001184: dc0300e7 jalr -576(t1) # 80000f40
+80001188: f71ff06f j 800010f8
+
+8000118c :
+8000118c: 800027b7 lui a5,0x80002
+80001190: e4a7a023 sw a0,-448(a5) # 80001e40 <_stdout>
+80001194: 00008067 ret
+
+80001198 :
+80001198: ff010113 addi sp,sp,-16
+8000119c: 00812423 sw s0,8(sp)
+800011a0: 80002437 lui s0,0x80002
+800011a4: e4042783 lw a5,-448(s0) # 80001e40 <_stdout>
+800011a8: 00912223 sw s1,4(sp)
+800011ac: 00112623 sw ra,12(sp)
+800011b0: 00050493 mv s1,a0
+800011b4: 02079463 bnez a5,800011dc
+800011b8: 00c12083 lw ra,12(sp)
+800011bc: fff00513 li a0,-1
+800011c0: 00812403 lw s0,8(sp)
+800011c4: 00412483 lw s1,4(sp)
+800011c8: 01010113 addi sp,sp,16
+800011cc: 00008067 ret
+800011d0: e4042783 lw a5,-448(s0)
+800011d4: 00148493 addi s1,s1,1
+800011d8: 000780e7 jalr a5
+800011dc: 0004c503 lbu a0,0(s1)
+800011e0: fe0518e3 bnez a0,800011d0
+800011e4: e4042303 lw t1,-448(s0)
+800011e8: 00c12083 lw ra,12(sp)
+800011ec: 00812403 lw s0,8(sp)
+800011f0: 00412483 lw s1,4(sp)
+800011f4: 00a00513 li a0,10
+800011f8: 01010113 addi sp,sp,16
+800011fc: 00030067 jr t1
+
+80001200 :
+80001200: 800027b7 lui a5,0x80002
+80001204: e407a783 lw a5,-448(a5) # 80001e40 <_stdout>
+80001208: ff010113 addi sp,sp,-16
+8000120c: 00812423 sw s0,8(sp)
+80001210: 00112623 sw ra,12(sp)
+80001214: fff00413 li s0,-1
+80001218: 00078863 beqz a5,80001228
+8000121c: 00050413 mv s0,a0
+80001220: 0ff57513 zext.b a0,a0
+80001224: 000780e7 jalr a5
+80001228: 00c12083 lw ra,12(sp)
+8000122c: 00040513 mv a0,s0
+80001230: 00812403 lw s0,8(sp)
+80001234: 01010113 addi sp,sp,16
+80001238: 00008067 ret
+
+8000123c :
+8000123c: 000087b7 lui a5,0x8
+80001240: f9010113 addi sp,sp,-112
+80001244: fff78793 addi a5,a5,-1 # 7fff
+80001248: 06812423 sw s0,104(sp)
+8000124c: 06912223 sw s1,100(sp)
+80001250: 07212023 sw s2,96(sp)
+80001254: 05712623 sw s7,76(sp)
+80001258: 05812423 sw s8,72(sp)
+8000125c: 06112623 sw ra,108(sp)
+80001260: 05312e23 sw s3,92(sp)
+80001264: 05412c23 sw s4,88(sp)
+80001268: 05512a23 sw s5,84(sp)
+8000126c: 05612823 sw s6,80(sp)
+80001270: 05912223 sw s9,68(sp)
+80001274: 05a12023 sw s10,64(sp)
+80001278: 03b12e23 sw s11,60(sp)
+8000127c: 00050913 mv s2,a0
+80001280: 00060493 mv s1,a2
+80001284: 00058413 mv s0,a1
+80001288: 00f12423 sw a5,8(sp)
+8000128c: 06300b93 li s7,99
+80001290: 07000c13 li s8,112
+80001294: 00044583 lbu a1,0(s0)
+80001298: 04059263 bnez a1,800012dc
+8000129c: 06c12083 lw ra,108(sp)
+800012a0: 00000513 li a0,0
+800012a4: 06812403 lw s0,104(sp)
+800012a8: 06412483 lw s1,100(sp)
+800012ac: 06012903 lw s2,96(sp)
+800012b0: 05c12983 lw s3,92(sp)
+800012b4: 05812a03 lw s4,88(sp)
+800012b8: 05412a83 lw s5,84(sp)
+800012bc: 05012b03 lw s6,80(sp)
+800012c0: 04c12b83 lw s7,76(sp)
+800012c4: 04812c03 lw s8,72(sp)
+800012c8: 04412c83 lw s9,68(sp)
+800012cc: 04012d03 lw s10,64(sp)
+800012d0: 03c12d83 lw s11,60(sp)
+800012d4: 07010113 addi sp,sp,112
+800012d8: 00008067 ret
+800012dc: 02500793 li a5,37
+800012e0: 00f58a63 beq a1,a5,800012f4
+800012e4: 00090513 mv a0,s2
+800012e8: 00000317 auipc t1,0x0
+800012ec: c58300e7 jalr -936(t1) # 80000f40
+800012f0: 1300006f j 80001420
+800012f4: 02000793 li a5,32
+800012f8: 00f10e23 sb a5,28(sp)
+800012fc: 00812783 lw a5,8(sp)
+80001300: 02012023 sw zero,32(sp)
+80001304: 02012223 sw zero,36(sp)
+80001308: 00f12c23 sw a5,24(sp)
+8000130c: 00a00793 li a5,10
+80001310: 02f12623 sw a5,44(sp)
+80001314: 00040a13 mv s4,s0
+80001318: 00000c93 li s9,0
+8000131c: 00900b13 li s6,9
+80001320: 06c00d93 li s11,108
+80001324: 00100993 li s3,1
+80001328: 02d00d13 li s10,45
+8000132c: 001a4583 lbu a1,1(s4)
+80001330: 00140413 addi s0,s0,1
+80001334: fd058793 addi a5,a1,-48
+80001338: 0ff7f793 zext.b a5,a5
+8000133c: 0afb6463 bltu s6,a5,800013e4
+80001340: 040c8a63 beqz s9,80001394
+80001344: 00000513 li a0,0
+80001348: 00a00713 li a4,10
+8000134c: 00044a03 lbu s4,0(s0)
+80001350: fd0a0a13 addi s4,s4,-48
+80001354: 0ffa7793 zext.b a5,s4
+80001358: 00fb7e63 bgeu s6,a5,80001374
+8000135c: 00a12c23 sw a0,24(sp)
+80001360: fff40413 addi s0,s0,-1
+80001364: 0080006f j 8000136c
+80001368: 00098c93 mv s9,s3
+8000136c: 00040a13 mv s4,s0
+80001370: fbdff06f j 8000132c
+80001374: 00070593 mv a1,a4
+80001378: 00e12623 sw a4,12(sp)
+8000137c: 00000317 auipc t1,0x0
+80001380: 4ec300e7 jalr 1260(t1) # 80001868 <__mulsi3>
+80001384: 00140413 addi s0,s0,1
+80001388: 00aa0533 add a0,s4,a0
+8000138c: 00c12703 lw a4,12(sp)
+80001390: fbdff06f j 8000134c
+80001394: 03000793 li a5,48
+80001398: 00f59463 bne a1,a5,800013a0
+8000139c: 00b10e23 sb a1,28(sp)
+800013a0: 00000513 li a0,0
+800013a4: 00a00713 li a4,10
+800013a8: 00044a03 lbu s4,0(s0)
+800013ac: fd0a0a13 addi s4,s4,-48
+800013b0: 0ffa7793 zext.b a5,s4
+800013b4: 00fb7863 bgeu s6,a5,800013c4
+800013b8: 00a12a23 sw a0,20(sp)
+800013bc: 03312023 sw s3,32(sp)
+800013c0: fa1ff06f j 80001360
+800013c4: 00070593 mv a1,a4
+800013c8: 00e12623 sw a4,12(sp)
+800013cc: 00000317 auipc t1,0x0
+800013d0: 49c300e7 jalr 1180(t1) # 80001868 <__mulsi3>
+800013d4: 00140413 addi s0,s0,1
+800013d8: 00aa0533 add a0,s4,a0
+800013dc: 00c12703 lw a4,12(sp)
+800013e0: fc9ff06f j 800013a8