Last active
May 15, 2021 04:11
-
-
Save wgwoods/2e31d1558a85e39f05b0ad5e939efb84 to your computer and use it in GitHub Desktop.
nds32 disassembly of GK64 firmware update image BBD8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ; vim: syn=asm: | |
| ; | |
| ; Hello and welcome to my hand-annotated disassembly of my GK64's firmware!! | |
| ; | |
| ; Please forgive the formatting and such, this is really just a bunch of my | |
| ; own notes that I wrote up while trying to RE this thing. I'm not an expert | |
| ; or an authority, I'm just trying to figure out how this thing works. | |
| ; | |
| ; If you have any questions, or better datasheets, or more info about the | |
| ; keyboard hardware itself (especially if you've got probes small enough | |
| ; to figure out where all the dang MCU pins are actually going, jeez) | |
| ; please do feel free to contact me. I could definitely use the help... | |
| ; | |
| ; Will Woods <w@wizard.zone> 15 Jan 2019 | |
| ; | |
| ; -------- MEMORY_MAP -------- | |
| ; | |
| ; According to a WT59F164 datasheet I found online, the memory layout is: | |
| ; 0x00000000 ~ 0x0000ffff: Flash Memory (64kb) | |
| ; 0x00100000 ~ 0x00101fff: SRAM (8kb) | |
| ; 0x001f5c00 ~ 0x001f63ff: PWM0-1 (0x400 each) | |
| ; 0x001f6800 ~ 0x001f6bff: GPIO A-D (0x80 each) | |
| ; 0x00200000 ~ 0x002003ff: System Control | |
| ; 0x00200400 ~ 0x002007ff: Flash Programmer | |
| ; 0x00200800 ~ 0x00200bff: Watchdog Timer | |
| ; 0x00200c00 ~ 0x00200fff: Wakeup & Interrupt | |
| ; 0x00201000 ~ 0x002013ff: RTC | |
| ; 0x00201400 ~ 0x002017ff: CEC (HDMI) | |
| ; 0x00201800 ~ 0x00201bff: IR Receiver | |
| ; 0x00201c00 ~ 0x002033ff: Timer 0-5 (0x400 each) | |
| ; 0x00203400 ~ 0x00203fff: UART 0-2 (0x400 each) | |
| ; 0x00204400 ~ 0x00204bff: SPI 0-1 (0x400 each) | |
| ; 0x00205400 ~ 0x002057ff: I2C 0-1 (0x400 each) | |
| ; 0x00206400 ~ 0x002067ff: ADC | |
| ; 0x00206c00 ~ 0x00206fff: I2S | |
| ; 0x00207800 ~ 0x00207bff: USB | |
| ; 0x00300000 ~ 0x003003ff: DMA | |
| ; 0x00400000 ~ 0x00401fff: Boot ROM (8kb) | |
| ; [blank/unlisted memory ranges are "RESERVED"] | |
| ; | |
| ; -------- FIRMWARE_LAYOUT -------- | |
| ; | |
| ; There's also a whole lot of reading/writing to various addresses and | |
| ; calling functions in the range 0xcaa4 ~ 0xdba4, which I assume is | |
| ; part of the system bootloader ("CDBOOT") and doesn't appear in this | |
| ; firmware dump. Here's a table of some of the more interesting addresses, | |
| ; with a count of how many times they appear in this dump: | |
| ; | |
| ; 0xcac8 (1): crc16 xor table, I think.. | |
| ; 0xccd0 (5): ??? | |
| ; 0xccd8 (5): ??? | |
| ; 0xcd10 (36): timer? counter? memory-mapped LED I/O? | |
| ; 0xcd20 (5): ??? | |
| ; 0xcd60 (6): ??? | |
| ; 0xd9c0 (5): ??? | |
| ; 0xdba4 (1): saved/default copy of global variables? (see below) | |
| ; | |
| ; One of my goals is to get a complete flash dump so I can figure out what | |
| ; the hell is going on with that stuff. | |
| ; | |
| ; -------- SRAM_LAYOUT -------- | |
| ; | |
| ; At boot, the firmware sets up the stack/heap like so (see _entry()): | |
| ; | |
| ; [Start of SRAM]: 0x00100000 | |
| ; $gp (global pointer): 0x001001c8 | |
| ; [Heap grows to higher addrs] | |
| ; ... | |
| ; [Stack grows to lower addrs] | |
| ; $sp (stack pointer): 0x00101ffc | |
| ; [End of SRAM]: 0x00101fff | |
| ; | |
| ; Then init_interrupt_table() (q.v.) does: | |
| ; | |
| ; * memcpy(dest=0x00100000, src=0x0015f848, n=0x40) | |
| ; 0x00100000 ~ 0x00100040 are loaded with data from an unknown source, then | |
| ; *try* to set the system $ivb register to use that as the Interrupt Vector | |
| ; table. Except according to the datasheet, MCU-variant chips ignore the | |
| ; given address and always use 0x0, so who knows what's going on here. | |
| ; | |
| ; And then init_globals_and_heap(): | |
| ; | |
| ; * memcpy(dest=$gp-392, src=0xdba4, n=396) | |
| ; 0x00100040 ~ 0x001001cc ($gp-392 ~ $gp+4) are loaded with some | |
| ; saved/default data from flash. | |
| ; | |
| ; * memset(dest=$gp+4, byte=0x00, n=0x194c) | |
| ; 0x001001cc ~ 0x00101b18 are cleared - presumably this is our heap. | |
| ; | |
| ; As far as I can tell, the stack "grows" downward (as usual). Most global | |
| ; variables live in the 0x1c8 bytes between 0x10000040 and $gp, and are | |
| ; generally indexed by their (negative) offset from $gp. | |
| ; | |
| ; Here's a table of interesting fixed offsets from $gp: | |
| ; | |
| ; #-152: boot_mode - a 32-bit magic value, selects boot mode on soft reset | |
| ; #-104: usb_ep2_intr: set to 1 when USB reports an interrupt on endpoint 2 | |
| ; #-100: usb_ep3_intr: set to 1 when USB reports an interrupt on endpoint 3 | |
| ; #-72: packet_in_progress: 1 if a packet is currently being handled | |
| ; #-38: 16-bit value (memory mapping offset?) used with values from [0xcd60] | |
| ; #0x38: 0xc8-byte buf of analog (microphone?) input; see setup_adc_dma() | |
| ; #0x870: pktbuf - a 64-byte buffer used in various packet handling routines | |
| ; #0x890: pktbufx? - another address used in packet handling? | |
| ; overlaps with packetbuf. hmm. | |
| ; #0x8b0: pktbuf2 - another 64-byte packet buffer | |
| ; #0x8f0: replypkt - cmd packet replies get build here. | |
| ; #0x978: tmppkt - USB handlers write incoming packets on EP4 here. | |
| ; #0x9c0: ringbuf - Ring buffer containing up to 5 outgoing packets. | |
| ; ringbuf[0] is the read-index (one byte) | |
| ; ringbuf[1] is the write-index (one byte) | |
| ; ringbuf+2 is slot 0 of the ringbuf | |
| ; (ringbuf+2)+(0x40*i) = address of ringbuf slot i | |
| ; #0xb34: validpkt - validate_packet copies tmppacket here, if valid | |
| ; | |
| ; (NOTE: disassembly shows negative values as decimal, not hex; I've kept that | |
| ; convention here to make it easier to grep for the exact values shown.. | |
| ; | |
| ; -------- ENOUGH NOTES, LET'S LOOK AT THE DANG CODE -------- | |
| ; | |
| ; Below here is the disassembly of the BBD8 firmware, which I made by: | |
| ; 1. Doing a wireshark packet dump of a firmware update, | |
| ; 2. Reverse-engineering the USB protocol to scrape the unscrambled BBD8.bin, | |
| ; 3. Grabbing a nds32 toolchain from Andes: http://knect.me/ide.html | |
| ; 4. `nds32le-linux-objdump -D -b binary -m n1h_v3m BBD8.usbdump.bin` | |
| ; | |
| ; Enjoy! | |
| ; | |
| ;-------------------------------------------------------------------------- | |
| ; | |
| ; /home/wwoods/Projects/GK64/dumps/BBD8.usbdump.bin: file format binary | |
| ; | |
| ; | |
| ;Disassembly of section .data: | |
| ; | |
| ;00000000 <.data>: | |
| ; ---- The first 16 items are our interrupt vector table. | |
| ; ---- This matches the V2 architecture compatibility mode (MSC_CFG.BASEV == 1) | |
| ; ---- There are some wrinkles if we're in MCU family mode (MSC_CFG.MCU == 1), which is likely | |
| 0: 48 00 4f b2 j 0x9f64 ; Reset / NMI - this is our _entry() | |
| 4: 48 00 00 30 j 0x64 ; TLB fill | |
| 8: 48 00 00 2e j 0x64 ; PTE not present | |
| c: 48 00 00 2c j 0x64 ; TLB misc | |
| 10: 48 00 00 2a j 0x64 ; TLB VLPT miss | |
| 14: 48 00 00 4a j 0xa8 ; Machine Error | |
| 18: 48 00 00 6a j 0xec ; Debug related | |
| 1c: 48 00 00 8a j 0x130 ; General Exception | |
| 20: 48 00 00 aa j 0x174 ; Syscall | |
| 24: 48 00 00 de j 0x1e0 ; HW0 | |
| 28: 48 00 01 44 j 0x2b0 ; HW1 | |
| 2c: 48 00 01 46 j 0x2b8 ; HW2 | |
| 30: 48 00 01 48 j 0x2c0 ; HW3 | |
| 34: 48 00 01 4a j 0x2c8 ; HW4 | |
| 38: 48 00 01 4c j 0x2d0 ; HW5 | |
| 3c: 48 00 01 4e j 0x2d8 ; SW0 | |
| ; ---- End v2 vector table | |
| ; ---- This chunk of disassembly looks like nonsense and screws up disasm | |
| ; ---- for the function at 0x64 - I think it's a vector table in little-endian | |
| ; ---- format, so I've jiggled around those bytes accordingly and left them here.. | |
| ; 40: 00 00 c9 94 ; 0xc994 shows up elsewhere too. Hmmmmmm... | |
| ; 44: 00 00 c9 94 ; Maybe these are unused defaults from template code? | |
| ; 48: 00 00 c9 94 | |
| ; 4c: 00 00 2d 48 ; HW0 interrupt handler also calls 0x2d48 | |
| ; 50: 00 00 c9 94 | |
| ; 54: 00 00 2d 44 | |
| ; 58: 00 00 2d 40 | |
| ; 5c: 00 00 c9 94 | |
| ; 60: 00 00 c9 94 | |
| ; ---- Resume disassembly from 0x64, as suggested by the vector table | |
| ; ---- NOTE: the first four handlers are identical except for what value they set $r0 to | |
| ; --------------- 0x64: TLB fill, PTE not present, TLB misc, TLB VLPT miss | |
| 64: 3a 0f 94 3c smw.adm $r0,[$sp],$r5,#0x0 ! {$r0~$r5} | |
| 68: 3a ff bf bc smw.adm $r15,[$sp],$r15,#0xe ! {$r15, $fp, $gp, $lp} | |
| 6c: 64 02 00 02 mfsr $r0,$psw | |
| 70: 64 12 a4 02 mfsr $r1,$ipc | |
| 74: 64 22 04 02 mfsr $r2,$ipsw | |
| 78: 3a 0f 88 3c smw.adm $r0,[$sp],$r2,#0x0 ! {$r0~$r2} | |
| 7c: 42 00 04 09 bclr $r0,$r0,#0x1 | |
| 80: 64 02 00 03 mtsr $r0,$psw | |
| 84: 64 00 00 08 dsb | |
| 88: 50 2f 80 00 addi $r2,$sp,#0x0 | |
| 8c: 54 1f 80 04 andi $r1,$sp,#0x4 | |
| 90: 52 10 80 04 subri $r1,$r1,#0x4 | |
| 94: 41 ff 84 01 sub $sp,$sp,$r1 | |
| 98: 3a 2f 88 3c smw.adm $r2,[$sp],$r2,#0x0 ! {$r2} | |
| 9c: 46 f0 00 0c sethi $r15,#0xc | |
| a0: 58 f7 89 94 ori $r15,$r15,#0x994 | |
| a4: 4a 00 3c 00 jr $r15 ; 0xc994 - unknown builtin handler, $r0=4 | |
| ; -------------- 0xa8: "Machine error" exception handler | |
| a8: 3a 0f 94 3c smw.adm $r0,[$sp],$r5,#0x0 ! {$r0~$r5} | |
| ac: 3a ff bf bc smw.adm $r15,[$sp],$r15,#0xe ! {$r15, $fp, $gp, $lp} | |
| b0: 64 02 00 02 mfsr $r0,$psw | |
| b4: 64 12 a4 02 mfsr $r1,$ipc | |
| b8: 64 22 04 02 mfsr $r2,$ipsw | |
| bc: 3a 0f 88 3c smw.adm $r0,[$sp],$r2,#0x0 ! {$r0~$r2} | |
| c0: 42 00 04 09 bclr $r0,$r0,#0x1 | |
| c4: 64 02 00 03 mtsr $r0,$psw | |
| c8: 64 00 00 08 dsb | |
| cc: 80 5f mov55 $r2,$sp | |
| ce: 54 1f 80 04 andi $r1,$sp,#0x4 | |
| d2: 52 10 80 04 subri $r1,$r1,#0x4 | |
| d6: 41 ff 84 01 sub $sp,$sp,$r1 | |
| da: 3a 2f 88 3c smw.adm $r2,[$sp],$r2,#0x0 ! {$r2} | |
| de: 84 05 movi55 $r0,#0x5 | |
| e0: 46 f0 00 0c sethi $r15,#0xc | |
| e4: 58 f7 89 94 ori $r15,$r15,#0x994 | |
| e8: 4a 00 3c 00 jr $r15 ; 0xc994 - unknown builtin handler, $r0=5 | |
| ; -------------- 0xec: "Debug related" exception handler | |
| ec: 3a 0f 94 3c smw.adm $r0,[$sp],$r5,#0x0 ! {$r0~$r5} | |
| f0: 3a ff bf bc smw.adm $r15,[$sp],$r15,#0xe ! {$r15, $fp, $gp, $lp} | |
| f4: 64 02 00 02 mfsr $r0,$psw | |
| f8: 64 12 a4 02 mfsr $r1,$ipc | |
| fc: 64 22 04 02 mfsr $r2,$ipsw | |
| 100: 3a 0f 88 3c smw.adm $r0,[$sp],$r2,#0x0 ! {$r0~$r2} | |
| 104: 42 00 04 09 bclr $r0,$r0,#0x1 | |
| 108: 64 02 00 03 mtsr $r0,$psw | |
| 10c: 64 00 00 08 dsb | |
| 110: 80 5f mov55 $r2,$sp | |
| 112: 54 1f 80 04 andi $r1,$sp,#0x4 | |
| 116: 52 10 80 04 subri $r1,$r1,#0x4 | |
| 11a: 41 ff 84 01 sub $sp,$sp,$r1 | |
| 11e: 3a 2f 88 3c smw.adm $r2,[$sp],$r2,#0x0 ! {$r2} | |
| 122: 84 06 movi55 $r0,#0x6 | |
| 124: 46 f0 00 0c sethi $r15,#0xc | |
| 128: 58 f7 89 94 ori $r15,$r15,#0x994 | |
| 12c: 4a 00 3c 00 jr $r15 ; 0xc994 - unknown builtin handler, $r0=6 | |
| ; -------------- 0x130: "General exception" handler | |
| 130: 3a 0f 94 3c smw.adm $r0,[$sp],$r5,#0x0 ! {$r0~$r5} | |
| 134: 3a ff bf bc smw.adm $r15,[$sp],$r15,#0xe ! {$r15, $fp, $gp, $lp} | |
| 138: 64 02 00 02 mfsr $r0,$psw | |
| 13c: 64 12 a4 02 mfsr $r1,$ipc | |
| 140: 64 22 04 02 mfsr $r2,$ipsw | |
| 144: 3a 0f 88 3c smw.adm $r0,[$sp],$r2,#0x0 ! {$r0~$r2} | |
| 148: 42 00 04 09 bclr $r0,$r0,#0x1 | |
| 14c: 64 02 00 03 mtsr $r0,$psw | |
| 150: 64 00 00 08 dsb | |
| 154: 80 5f mov55 $r2,$sp | |
| 156: 54 1f 80 04 andi $r1,$sp,#0x4 | |
| 15a: 52 10 80 04 subri $r1,$r1,#0x4 | |
| 15e: 41 ff 84 01 sub $sp,$sp,$r1 | |
| 162: 3a 2f 88 3c smw.adm $r2,[$sp],$r2,#0x0 ! {$r2} | |
| 166: 84 07 movi55 $r0,#0x7 | |
| 168: 46 f0 00 0c sethi $r15,#0xc | |
| 16c: 58 f7 89 94 ori $r15,$r15,#0x994 | |
| 170: 4a 00 3c 00 jr $r15 ; 0xc994 - unknown builtin handler, $r0=7 | |
| ; -------------- 0x174: "Syscall" handler | |
| 174: 3a 0f 94 3c smw.adm $r0,[$sp],$r5,#0x0 ! {$r0~$r5} | |
| 178: 3a ff bf bc smw.adm $r15,[$sp],$r15,#0xe ! {$r15, $fp, $gp, $lp} | |
| 17c: 64 02 00 02 mfsr $r0,$psw ; | |
| 180: 64 12 a4 02 mfsr $r1,$ipc ; | |
| 184: 9c 4c addi333 $r1,$r1,#0x4 ; $r1 = $ipc + 4 | |
| 186: 64 22 04 02 mfsr $r2,$ipsw | |
| 18a: 3a 0f 88 3c smw.adm $r0,[$sp],$r2,#0x0 ! {$r0~$r2} | |
| 18e: 42 00 04 09 bclr $r0,$r0,#0x1 | |
| 192: 64 02 00 03 mtsr $r0,$psw | |
| 196: 64 00 00 08 dsb | |
| 19a: 80 5f mov55 $r2,$sp | |
| 19c: 54 1f 80 04 andi $r1,$sp,#0x4 | |
| 1a0: 52 10 80 04 subri $r1,$r1,#0x4 | |
| 1a4: 41 ff 84 01 sub $sp,$sp,$r1 | |
| 1a8: 3a 2f 88 3c smw.adm $r2,[$sp],$r2,#0x0 ! {$r2} | |
| 1ac: 46 f0 00 0c sethi $r15,#0xc | |
| 1b0: 58 f7 89 94 ori $r15,$r15,#0x994 ; 0xc994 - unknown builtin handler, $r0=? | |
| 1b4: 4b e0 3c 01 jral $lp,$r15 ; jump (with return!) | |
| 1b8: 05 ff 80 00 lwi $sp,[$sp+#0x0] ; restore $sp | |
| 1bc: 3a 0f 88 04 lmw.bim $r0,[$sp],$r2,#0x0 ! {$r0~$r2} | |
| 1c0: 64 02 00 03 mtsr $r0,$psw | |
| 1c4: 64 00 00 08 dsb | |
| 1c8: 64 12 a4 03 mtsr $r1,$ipc | |
| 1cc: 64 22 04 03 mtsr $r2,$ipsw | |
| 1d0: 3a ff bf 84 lmw.bim $r15,[$sp],$r15,#0xe ! {$r15, $fp, $gp, $lp} | |
| 1d4: 51 ff 80 04 addi $sp,$sp,#0x4 | |
| 1d8: 3a 1f 94 04 lmw.bim $r1,[$sp],$r5,#0x0 ! {$r1~$r5} | |
| 1dc: 64 00 00 04 iret | |
| ; -------------- 0x1e0: HW0 interrupt handler | |
| 1e0: 3a 0f 94 3c smw.adm $r0,[$sp],$r5,#0x0 ! {$r0~$r5} | |
| 1e4: 3a ff bf bc smw.adm $r15,[$sp],$r15,#0xe ! {$r15, $fp, $gp, $lp} | |
| 1e8: 80 5f mov55 $r2,$sp ; $r2 = $sp | |
| 1ea: 54 1f 80 04 andi $r1,$sp,#0x4 ; $r1 = $sp & 0x4 | |
| 1ee: 52 10 80 04 subri $r1,$r1,#0x4 ; $r1 = 0x4 - $r1 | |
| 1f2: 41 ff 84 01 sub $sp,$sp,$r1 ; $sp = $sp - $r1 | |
| 1f6: 3a 2f 88 3c smw.adm $r2,[$sp],$r2,#0x0 ! {$r2} ; save old $sp onto the stack?? | |
| 1fa: 84 00 movi55 $r0,#0x0 ; $r0 = 0 | |
| 1fc: 46 10 00 02 sethi $r1,#0x2 ; $r1 = 0x2000 | |
| 200: 58 10 8d 48 ori $r1,$r1,#0xd48 ; $r1 = 0x2d48 | |
| 204: 4b e0 04 01 jral $lp,$r1 ; call 0x2d48 | |
| 208: 05 ff 80 00 lwi $sp,[$sp+#0x0] ; load old $sp | |
| 20c: 3a ff bf 84 lmw.bim $r15,[$sp],$r15,#0xe ! {$r15, $fp, $gp, $lp} | |
| 210: 3a 0f 94 04 lmw.bim $r0,[$sp],$r5,#0x0 ! {$r0~$r5} | |
| 214: 64 00 00 04 iret | |
| ; -------------- HW1 - HW5 interrupt handler (interrupt number in $r0, 1-5) | |
| 218: 3a 1f 94 3c smw.adm $r1,[$sp],$r5,#0x0 ! {$r1~$r5} | |
| 21c: 3a ff bf bc smw.adm $r15,[$sp],$r15,#0xe ! {$r15, $fp, $gp, $lp} | |
| 220: 64 13 00 02 mfsr $r1,$int_mask | |
| 224: 3a 1f 84 3c smw.adm $r1,[$sp],$r1,#0x0 ! {$r1} ; save original $int_mask | |
| 228: 58 10 80 3f ori $r1,$r1,#0x3f ; $r1 = 0b0011_1111 | |
| 22c: 84 41 movi55 $r2,#0x1 ; | |
| 22e: 40 21 00 0c sll $r2,$r2,$r0 ; $r2 = 1 << $r0 | |
| 232: 52 21 00 40 subri $r2,$r2,#0x40 ; $r2 = 0x40 - (1 << $r0) | |
| 236: 9a 4a sub333 $r1,$r1,$r2 ; $r1 = 0x3f - (0x40 - (1<<$r0)): 0b1111..., num bits = $r0 | |
| 238: 64 13 00 03 mtsr $r1,$int_mask ; enable all interrupts < $r0 | |
| 23c: 64 12 00 02 mfsr $r1,$psw ; save $psw | |
| 240: 64 22 a4 02 mfsr $r2,$ipc ; save $ipc | |
| 244: 64 32 04 02 mfsr $r3,$ipsw ; save $ipcw | |
| 248: 3a 1f 8c 3c smw.adm $r1,[$sp],$r3,#0x0 ! {$r1~$r3} | |
| 24c: 42 10 84 09 bclr $r1,$r1,#0x1 ; clear bit 1 of saved $psw (bits 1-2: INTL, interrupt level) | |
| 250: 64 12 00 03 mtsr $r1,$psw ; drop one interrupt level (3->2 or 1->0) | |
| 254: 64 12 00 43 setgie.e ; enable global interrupts again | |
| 258: 64 00 00 08 dsb ; data barrier | |
| 25c: 80 5f mov55 $r2,$sp ; | |
| 25e: 54 1f 80 04 andi $r1,$sp,#0x4 | |
| 262: 52 10 80 04 subri $r1,$r1,#0x4 | |
| 266: 41 ff 84 01 sub $sp,$sp,$r1 | |
| 26a: 3a 2f 88 3c smw.adm $r2,[$sp],$r2,#0x0 ! {$r2} | |
| 26e: 46 10 00 02 sethi $r1,#0x2 ; $r1 = 0x00002000 | |
| 272: 58 10 8a 4c ori $r1,$r1,#0xa4c ; $r1 = 0x00002a4c | |
| 276: 38 10 82 02 lw $r1,[$r1+($r0<<#0x2)] ; $r1 = [0x2a4c + ($r0 << 2)] | |
| 27a: dd 21 jral5 $r1 ; call $r1 (function table woooo) | |
| 27c: 05 ff 80 00 lwi $sp,[$sp+#0x0] ; reset stack pointer | |
| 280: 3a 0f 88 04 lmw.bim $r0,[$sp],$r2,#0x0 ! {$r0~$r2} | |
| 284: 64 02 00 43 setgie.d ; disable global interrupts | |
| 288: 64 00 00 08 dsb ; | |
| 28c: 64 02 00 03 mtsr $r0,$psw ; restore old $psw | |
| 290: 64 12 a4 03 mtsr $r1,$ipc ; restore old $ipc | |
| 294: 64 22 04 03 mtsr $r2,$ipsw ; restore old $ipsw | |
| 298: 3a 0f 80 04 lmw.bim $r0,[$sp],$r0,#0x0 ! {$r0} | |
| 29c: 64 03 00 03 mtsr $r0,$int_mask ; restore old $int_mask | |
| 2a0: 3a ff bf 84 lmw.bim $r15,[$sp],$r15,#0xe ! {$r15, $fp, $gp, $lp} | |
| 2a4: 3a 1f 94 04 lmw.bim $r1,[$sp],$r5,#0x0 ! {$r1~$r5} | |
| 2a8: 3a 0f 80 04 lmw.bim $r0,[$sp],$r0,#0x0 ! {$r0} | |
| 2ac: 64 00 00 04 iret | |
| ; -------------- 0x2b0: HW1 interrupt handler | |
| 2b0: 3a 0f 80 3c smw.adm $r0,[$sp],$r0,#0x0 ! {$r0} | |
| 2b4: 84 01 movi55 $r0,#0x1 | |
| 2b6: d5 b1 j8 0x218 | |
| ; -------------- 0x2b8: HW2 interrupt handler | |
| 2b8: 3a 0f 80 3c smw.adm $r0,[$sp],$r0,#0x0 ! {$r0} | |
| 2bc: 84 02 movi55 $r0,#0x2 | |
| 2be: d5 ad j8 0x218 | |
| ; -------------- 0x2c0: HW3 interrupt handler | |
| 2c0: 3a 0f 80 3c smw.adm $r0,[$sp],$r0,#0x0 ! {$r0} | |
| 2c4: 84 03 movi55 $r0,#0x3 | |
| 2c6: d5 a9 j8 0x218 | |
| ; -------------- 0x2c8: HW4 interrupt handler | |
| 2c8: 3a 0f 80 3c smw.adm $r0,[$sp],$r0,#0x0 ! {$r0} | |
| 2cc: 84 04 movi55 $r0,#0x4 | |
| 2ce: d5 a5 j8 0x218 | |
| ; -------------- 0x2d0: HW5 interrupt handler | |
| 2d0: 3a 0f 80 3c smw.adm $r0,[$sp],$r0,#0x0 ! {$r0} | |
| 2d4: 84 05 movi55 $r0,#0x5 | |
| 2d6: d5 a1 j8 0x218 | |
| ; -------------- 0x2d8: SW0 interrupt handler | |
| 2d8: 3a 0f 94 3c smw.adm $r0,[$sp],$r5,#0x0 ! {$r0~$r5} | |
| 2dc: 3a ff bf bc smw.adm $r15,[$sp],$r15,#0xe ! {$r15, $fp, $gp, $lp} | |
| 2e0: 64 02 00 02 mfsr $r0,$psw | |
| 2e4: 64 12 a4 02 mfsr $r1,$ipc | |
| 2e8: 64 22 04 02 mfsr $r2,$ipsw | |
| 2ec: 3a 0f 88 3c smw.adm $r0,[$sp],$r2,#0x0 ! {$r0~$r2} | |
| 2f0: 42 00 04 09 bclr $r0,$r0,#0x1 | |
| 2f4: 64 02 00 03 mtsr $r0,$psw | |
| 2f8: 64 00 00 08 dsb | |
| 2fc: 80 5f mov55 $r2,$sp | |
| 2fe: 54 1f 80 04 andi $r1,$sp,#0x4 | |
| 302: 52 10 80 04 subri $r1,$r1,#0x4 | |
| 306: 41 ff 84 01 sub $sp,$sp,$r1 | |
| 30a: 3a 2f 88 3c smw.adm $r2,[$sp],$r2,#0x0 ! {$r2} | |
| 30e: 84 0f movi55 $r0,#0xf ; $r0 = 0xf | |
| 310: 46 10 00 0c sethi $r1,#0xc | |
| 314: 58 10 89 94 ori $r1,$r1,#0x994 ; Unknown handler at 0xc994 | |
| 318: dd 21 jral5 $r1 | |
| 31a: 05 ff 80 00 lwi $sp,[$sp+#0x0] | |
| 31e: 3a 0f 88 04 lmw.bim $r0,[$sp],$r2,#0x0 ! {$r0~$r2} | |
| 322: 64 02 00 03 mtsr $r0,$psw | |
| 326: 64 00 00 08 dsb | |
| 32a: 64 12 a4 03 mtsr $r1,$ipc | |
| 32e: 64 22 04 03 mtsr $r2,$ipsw | |
| 332: 3a ff bf 84 lmw.bim $r15,[$sp],$r15,#0xe ! {$r15, $fp, $gp, $lp} | |
| 336: 3a 0f 94 04 lmw.bim $r0,[$sp],$r5,#0x0 ! {$r0~$r5} | |
| 33a: 64 00 00 04 iret | |
| 33e: 92 00 nop16 | |
| ; --- end of interrupt handlers | |
| 340: 48 00 2b b2 j 0x5aa4 ; only callsite for usb_handle_interrupt() | |
| 344: 48 00 2b 12 j 0x5968 | |
| 348: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 34c: 46 00 00 0c sethi $r0,#0xc | |
| 350: 04 60 03 5d lwi $r6,[$r0+#0xd74] | |
| 354: a0 34 lwi333 $r0,[$r6+#0x10] | |
| 356: 54 00 00 08 andi $r0,$r0,#0x8 | |
| 35a: c0 03 beqz38 $r0,0x360 | |
| 35c: 49 00 00 30 jal 0x3bc | |
| 360: a0 34 lwi333 $r0,[$r6+#0x10] | |
| 362: 54 00 00 10 andi $r0,$r0,#0x10 | |
| 366: c0 05 beqz38 $r0,0x370 | |
| 368: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 36c: 48 00 00 4e j 0x408 | |
| 370: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 374: dd 9e ret5 $lp | |
| 376: 92 00 nop16 | |
| ; --------- 0x378: poll_for_bit17(addr=$r0, b1=$r1), only called from 0x624, addr=[0xcd60] | |
| 378: a0 81 lwi333 $r2,[$r0+#0x4] ; $r2 = addr[1] | |
| 37a: 96 48 zeb33 $r1,$r1 ; $r1 = $r1 & 0xff | |
| 37c: 42 21 5c 08 bset $r2,$r2,#0x17 ; $r2 |= 1<<17 | |
| 380: a8 81 swi333 $r2,[$r0+#0x4] ; addr[1] |= 1 << 17 | |
| 382: a8 44 swi333 $r1,[$r0+#0x10] ; addr[4] = $r1 & 0xff - set addr[4] to $r1 | |
| 384: a0 43 lwi333 $r1,[$r0+#0xc] ; loop: $r1 = addr[3] | |
| 386: 40 10 bc 08 slli $r1,$r1,#0xf ; $r1 = $r1 << 15 | |
| 38a: 92 3f srli45 $r1,#0x1f ; $r1 = $r1 >> 31 (1 if addr[3] & (1<<17), else 0) | |
| 38c: c1 fc beqz38 $r1,0x384 ; loop until addr[3] bit 17 is not set | |
| 38e: dd 9e ret5 $lp ; return | |
| ; ---------- 0x390: poll_for_something(addr=$r0), only called from 0x658, addr=[0xcd60], -> $r0=[addr+0x14] & 0xff | |
| 390: a0 41 lwi333 $r1,[$r0+#0x4] ; | |
| 392: 42 10 d8 08 bset $r1,$r1,#0x16 ; | |
| 396: a8 41 swi333 $r1,[$r0+#0x4] ; addr[1] |= (1<<16) | |
| 398: a0 41 lwi333 $r1,[$r0+#0x4] ; | |
| 39a: 42 10 dc 08 bset $r1,$r1,#0x17 ; | |
| 39e: a8 41 swi333 $r1,[$r0+#0x4] ; addr[1] |= (1<<17) | |
| 3a0: 84 20 movi55 $r1,#0x0 ; | |
| 3a2: a8 44 swi333 $r1,[$r0+#0x10] ; addr[4] = 0 | |
| 3a4: a0 43 lwi333 $r1,[$r0+#0xc] ; loop: | |
| 3a6: 40 10 bc 08 slli $r1,$r1,#0xf ; $r1 = addr[3] | |
| 3aa: 92 3f srli45 $r1,#0x1f ; | |
| 3ac: c1 fc beqz38 $r1,0x3a4 ; until ($r1 & (1<<17)) | |
| 3ae: a0 43 lwi333 $r1,[$r0+#0xc] ; loop: | |
| 3b0: 96 4c xlsb33 $r1,$r1 ; $r1 = addr[3] | |
| 3b2: c1 fe beqz38 $r1,0x3ae ; until ($r1 & 1) | |
| 3b4: a0 05 lwi333 $r0,[$r0+#0x14] ; | |
| 3b6: 96 00 zeb33 $r0,$r0 ; $r0 = addr[5] & 0xff | |
| 3b8: dd 9e ret5 $lp ; return | |
| 3ba: 92 00 nop16 | |
| ; ----------- 0x3bc: more 0xcd60 nonsense | |
| 3bc: 46 00 00 0c sethi $r0,#0xc | |
| 3c0: 04 00 03 59 lwi $r0,[$r0+#0xd64] ; $r0 = [0xcd64] | |
| 3c4: 04 10 00 10 lwi $r1,[$r0+#0x40] ; $r1 = [$r0+0x40] | |
| 3c8: 54 10 80 10 andi $r1,$r1,#0x10 | |
| 3cc: c1 1c beqz38 $r1,0x404 | |
| 3ce: 3c 23 ff ed lhi.gp $r2,[+#-38] | |
| 3d2: 9c 91 addi333 $r2,$r2,#0x1 | |
| 3d4: 96 91 zeh33 $r2,$r2 | |
| 3d6: 3c 2b ff ed shi.gp $r2,[+#-38] | |
| 3da: 5c f1 01 6e slti $r15,$r2,#0x16e | |
| 3de: e9 09 bnezs8 0x3f0 | |
| 3e0: 3c 3d ff e5 lwi.gp $r3,[+#-108] | |
| 3e4: 84 80 movi55 $r4,#0x0 | |
| 3e6: 9c d9 addi333 $r3,$r3,#0x1 | |
| 3e8: 3c 4b ff ed shi.gp $r4,[+#-38] | |
| 3ec: 3c 3f ff e5 swi.gp $r3,[+#-108] | |
| 3f0: 44 10 00 10 movi $r1,#0x10 | |
| 3f4: 14 10 00 10 swi $r1,[$r0+#0x40] | |
| 3f8: 84 21 movi55 $r1,#0x1 | |
| 3fa: b6 20 swi450 $r1,[$r0] | |
| 3fc: b4 20 lwi450 $r1,[$r0] | |
| 3fe: 42 10 bc 08 bset $r1,$r1,#0xf | |
| 402: b6 20 swi450 $r1,[$r0] | |
| 404: dd 9e ret5 $lp | |
| 406: 92 00 nop16 | |
| 408: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 40c: 46 00 00 0c sethi $r0,#0xc | |
| 410: 04 60 03 5a lwi $r6,[$r0+#0xd68] | |
| 414: 04 03 00 10 lwi $r0,[$r6+#0x40] | |
| 418: 54 00 00 10 andi $r0,$r0,#0x10 | |
| 41c: 4e 02 00 08 beqz $r0,0x42c | |
| 420: 49 00 17 ee jal 0x33fc | |
| 424: 44 00 00 10 movi $r0,#0x10 | |
| 428: 14 03 00 10 swi $r0,[$r6+#0x40] | |
| 42c: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 430: dd 9e ret5 $lp | |
| 432: 92 00 nop16 | |
| ; ---------- 0x434: max_adc_byte() - return highest byte in ADC's ringbuf in $r0 | |
| 434: 3e 18 00 38 addi.gp $r1,#0x38 ; $r1 = $gp+0x38 (start of DMA buf) | |
| 438: 44 00 00 00 movi $r0,#0x0 ; max = 0 | |
| 43c: 08 30 80 01 lbi.bi $r3,[$r1],#0x1 ; do: cur = [$r1]; $r1++ | |
| 440: 80 40 mov55 $r2,$r0 ; prevmax = max | |
| 442: 40 40 0c 06 slt $r4,$r0,$r3 ; r = max < cur | |
| 446: 40 01 90 1b cmovn $r0,$r3,$r4 ; if r: max = cur | |
| 44a: 40 01 10 1a cmovz $r0,$r2,$r4 ; if !r: max = prevmax (why is this here?) | |
| 44e: 3e 28 01 00 addi.gp $r2,#0x100 ; | |
| 452: 4c 11 7f f5 bne $r1,$r2,0x43c ; until $r1 == $gp+100 (end of DMA buf) | |
| 456: dd 9e ret5 $lp | |
| ; --------- 0x458: watchdog_do_sys_reset() | |
| 458: 3b ff fc bc smw.adm $sp,[$sp],$sp,#0x2 ! {$lp} | |
| 45c: 51 ff ff fc addi $sp,$sp,#-4 | |
| 460: 49 00 4e 0a jal 0xa074 ; disable interrupts | |
| 464: 46 20 02 00 sethi $r2,#0x200 | |
| 468: 58 21 08 08 ori $r2,$r2,#0x808 ; $r2 = 0x00200808 - watchdog detection time register | |
| 46c: 84 60 movi55 $r3,#0x0 ; detect time: 1 second | |
| 46e: b6 62 swi450 $r3,[$r2] ; | |
| 470: 9e 54 subi333 $r1,$r2,#0x4 ; $r1 = 0x00200804 - watchdog reset time register | |
| 472: 9e 0c subi333 $r0,$r1,#0x4 ; $r0 = 0x00200800 - watchdog timer base | |
| 474: 84 42 movi55 $r2,#0x2 | |
| 476: b6 41 swi450 $r2,[$r1] ; watchdog reset time: 33ms | |
| 478: b6 60 swi450 $r3,[$r0] ; watchdog clear counter | |
| 47a: d5 00 j8 0x47a ; infinite loop -> watchdog reset? | |
| ; ---------- 0x47c: check_magic_and_reset(magic=$r0) -> $r0=1 if reset initiated | |
| ; ---------- writes magic to $gp-152 so the system can grab it on reset | |
| 47c: 3b ff fc bc smw.adm $sp,[$sp],$sp,#0x2 ! {$lp} | |
| 480: ef fc addi10.sp #-4 | |
| 482: 46 14 24 d4 sethi $r1,#0x424d4 ; | |
| 486: 58 10 81 50 ori $r1,$r1,#0x150 ; | |
| 48a: 4c 00 80 11 beq $r0,$r1,0x4ac ; if $r0 = "BMAP": goto ok | |
| 48e: 46 14 24 d4 sethi $r1,#0x424d4 | |
| 492: 58 10 89 41 ori $r1,$r1,#0x941 | |
| 496: 4c 00 80 0b beq $r0,$r1,0x4ac ; if $r0 = "BMIA": goto ok | |
| 49a: 46 14 24 d4 sethi $r1,#0x424d4 | |
| 49e: 58 10 89 53 ori $r1,$r1,#0x953 | |
| 4a2: 4c 00 80 05 beq $r0,$r1,0x4ac ; if $r0 = "BMIS": goto ok | |
| 4a6: 84 00 movi55 $r0,#0x0 ; $r0 = 0 | |
| 4a8: 48 00 00 08 j 0x4b8 ; goto out | |
| 4ac: 3c 1d ff da lwi.gp $r1,[+#-152] ;label ok: $r1 = [$gp-152] | |
| 4b0: b6 01 swi450 $r0,[$r1] ; [$gp-152][0] = magic | |
| 4b2: 49 ff ff d3 jal 0x458 ; watchdog_do_sys_reset(): reboot in 33ms! | |
| 4b6: 84 01 movi55 $r0,#0x1 ; $r0 = 1 | |
| 4b8: ec 04 addi10.sp #0x4 | |
| 4ba: 3b ff fc 84 lmw.bim $sp,[$sp],$sp,#0x2 ! {$lp} | |
| 4be: dd 9e ret5 $lp | |
| ; --------- 0x4c0: crc16(int iv=$r0, void *src=$r1, int length=$r2) -> $r0 (halfword) | |
| 4c0: 3a 6f 98 3c smw.adm $r6,[$sp],$r6,#0x0 ! {$r6} | |
| 4c4: 96 01 zeh33 $r0,$r0 | |
| 4c6: c2 15 beqz38 $r2,0x4f0 ; if $r2 == 0, goto out | |
| 4c8: 44 30 00 00 movi $r3,#0x0 ; $r3 = 0 | |
| 4cc: 44 60 ca c8 movi $r6,#0xcac8 ; $r6 = 0xcac8 (xor value table, I'm guessing) | |
| 4d0: 38 40 8c 00 lb $r4,[$r1+($r3<<#0x0)] ; start: $r4 = [$r1+$r3] | |
| 4d4: 40 50 20 09 srli $r5,$r0,#0x8 ; $r5 = $r0 >> 8 | |
| 4d8: 40 42 90 03 xor $r4,$r5,$r4 ; $r4 ^= $r5 | |
| 4dc: 38 43 11 01 lh $r4,[$r6+($r4<<#0x1)] ; $r4 = [0xcac8+($r4<<1)] | |
| 4e0: 40 00 20 08 slli $r0,$r0,#0x8 ; $r0 = $r0 << 8 | |
| 4e4: 40 02 00 03 xor $r0,$r4,$r0 ; $r0 = $r0 ^ $r4 | |
| 4e8: 9c d9 addi333 $r3,$r3,#0x1 ; $r3 += 1 | |
| 4ea: 96 01 zeh33 $r0,$r0 ; | |
| 4ec: 4c 21 ff f2 bne $r2,$r3,0x4d0 ; ...loop until $r3 == $r2 | |
| 4f0: 3a 6f 98 04 lmw.bim $r6,[$sp],$r6,#0x0 ! {$r6} | |
| 4f4: dd 9e ret5 $lp | |
| 4f6: 92 00 nop16 | |
| ; ---------- 0x4f8: ringbuf_full(ringbuf=$r0) -> bool $r0 | |
| 4f8: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 4fc: ef bc addi10.sp #-68 ; make room on the stack for an empty packet | |
| 4fe: 44 20 00 40 movi $r2,#0x40 ; memset size = 0x40 | |
| 502: 80 c0 mov55 $r6,$r0 ; (save cache in $r6) | |
| 504: 84 20 movi55 $r1,#0x0 ; memset byte = 0x00 | |
| 506: 80 1f mov55 $r0,$sp ; memset dest = $sp | |
| 508: 49 00 4d d8 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 50c: a6 f0 lbi333 $r3,[$r6+#0x0] ; $r3 = ringbuf.readidx | |
| 50e: a6 b1 lbi333 $r2,[$r6+#0x1] ; $r2 = ringbuf.writeidx | |
| 510: 80 ff mov55 $r7,$sp ; (save $sp in $r7) | |
| 512: 4c 21 80 04 beq $r2,$r3,0x51a ; if ringbuf.readidx != ringbuf.writeidx: | |
| 516: 84 00 movi55 $r0,#0x0 ; $r0 = 0 | |
| 518: d5 0c j8 0x530 ; goto out | |
| 51a: 94 96 slli333 $r2,$r2,#0x6 ; | |
| 51c: 9c 32 addi333 $r0,$r6,#0x2 ; | |
| 51e: 98 02 add333 $r0,$r0,$r2 ; memcmp s1 = ringbuf.writeaddr | |
| 520: 80 3f mov55 $r1,$sp ; memcmp s2 = $sp | |
| 522: 44 20 00 40 movi $r2,#0x40 ; memcmp n = 0x40 | |
| 526: 49 00 4d b3 jal 0xa08c ; memcmp(s1=$r0, s2=$r1, n=$r2) -> $r0=0 if writeaddr is empty | |
| 52a: 84 20 movi55 $r1,#0x0 ; | |
| 52c: 40 00 80 06 slt $r0,$r1,$r0 ; $r0 = 0 if writeaddr is empty, 1 if not | |
| 530: ec 44 addi10.sp #0x44 ;label out: | |
| 532: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 536: dd 9e ret5 $lp | |
| ; ---------- 0x538: ringbuf_write(ringbuf=$r0, packet=$r1) -> bool $r0 | |
| 538: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 53c: ef fc addi10.sp #-4 | |
| 53e: 80 e1 mov55 $r7,$r1 ; $r7 = packet | |
| 540: 50 60 00 00 addi $r6,$r0,#0x0 ; $r6 = ringbuf | |
| 544: 49 ff ff da jal 0x4f8 ; $r0 = ringbuf_full(ringbuf) | |
| 548: c0 03 beqz38 $r0,0x54e ; if ringbuf_full(ringbuf): | |
| 54a: 84 00 movi55 $r0,#0x0 ; $r0 = 0 | |
| 54c: d5 18 j8 0x57c ; goto out | |
| 54e: a6 31 lbi333 $r0,[$r6+#0x1] ; $r0 = ringbuf.writeidx | |
| 550: 9c 72 addi333 $r1,$r6,#0x2 ; $r1 = ringbuf+2 | |
| 552: 94 06 slli333 $r0,$r0,#0x6 ; $r0 = ringbuf.writeidx * 0x40 | |
| 554: 98 08 add333 $r0,$r1,$r0 ; memcpy dest = ringbuf.writeaddr | |
| 556: 44 20 00 40 movi $r2,#0x40 ; memcpy n = 0x40 | |
| 55a: 80 27 mov55 $r1,$r7 ; memcpy src = packet | |
| 55c: 49 00 4d a4 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 560: a6 b1 lbi333 $r2,[$r6+#0x1] ; $r2 = ringbuf.writeidx | |
| 562: 46 06 66 66 sethi $r0,#0x66666 ; $r0 = 0x66666000 | |
| 566: 9c 91 addi333 $r2,$r2,#0x1 ; $r2 += 1 | |
| 568: 58 00 06 67 ori $r0,$r0,#0x667 ; $r0 = 0x66666667 | |
| 56c: 42 01 00 68 mulsr64 $r0,$r2,$r0 ; ($r0, $r1) = ($r2 * 0x66666667) | |
| 570: 84 05 movi55 $r0,#0x5 ; $r0 = 5 | |
| 572: 90 21 srai45 $r1,#0x1 ; $r1 >>= 1 (~= $r2 / 5) | |
| 574: 42 20 80 75 msubr32 $r2,$r1,$r0 ; $r2 -= ($r1 * 5) & 0xffffffff (= chunk[1]+1 % 5) | |
| 578: 84 01 movi55 $r0,#0x1 ; $r0 = 1 | |
| 57a: ae b1 sbi333 $r2,[$r6+#0x1] ; ringbuf.writeidx = (ringbuf.writeidx+1) % 5 | |
| 57c: ec 04 addi10.sp #0x4 ;label out: | |
| 57e: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 582: dd 9e ret5 $lp | |
| ; ---------- 0x584: ringbuf_empty(ringbuf=$r0) -> bool $r0 | |
| 584: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 588: ef bc addi10.sp #-68 | |
| 58a: 44 20 00 40 movi $r2,#0x40 | |
| 58e: 80 c0 mov55 $r6,$r0 | |
| 590: 84 20 movi55 $r1,#0x0 | |
| 592: 80 1f mov55 $r0,$sp ; make empty packet on the stack | |
| 594: 49 00 4d 92 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 598: a6 f0 lbi333 $r3,[$r6+#0x0] ; $r3 = ringbuf.readidx | |
| 59a: a6 b1 lbi333 $r2,[$r6+#0x1] ; $r2 = ringbuf.writeidx | |
| 59c: 80 ff mov55 $r7,$sp ; (save $sp in $r7) | |
| 59e: 4c 21 80 04 beq $r2,$r3,0x5a6 ; if ringbuf.readidx != ringbuf.writeidx: | |
| 5a2: 84 00 movi55 $r0,#0x0 ; | |
| 5a4: d5 0c j8 0x5bc ; return 0 | |
| 5a6: 94 96 slli333 $r2,$r2,#0x6 ; | |
| 5a8: 9c 32 addi333 $r0,$r6,#0x2 ; | |
| 5aa: 98 02 add333 $r0,$r0,$r2 ; memcmp s1 = ringbuf.readaddr | |
| 5ac: 50 1f 80 00 addi $r1,$sp,#0x0 ; memcmp s2 = $sp (empty packet) | |
| 5b0: 44 20 00 40 movi $r2,#0x40 ; memcmp n = 0x40 | |
| 5b4: 49 00 4d 6c jal 0xa08c ; memcmp(s1=$r0, s2=$r1, n=$r2), $r0=0 if same, byte diff if not | |
| 5b8: 5c 00 00 01 slti $r0,$r0,#0x1 ; $r0 = 1 if readaddr is empty | |
| 5bc: ec 44 addi10.sp #0x44 | |
| 5be: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 5c2: dd 9e ret5 $lp | |
| ; --------- 0x5c4: ringbuf_read(ringbuf=$r0, packet=$r1) | |
| 5c4: 3a 6f a4 bc smw.adm $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 5c8: ef fc addi10.sp #-4 | |
| 5ca: 81 01 mov55 $r8,$r1 ; $r8 = packet | |
| 5cc: 80 c0 mov55 $r6,$r0 ; $r6 = ringbuf | |
| 5ce: 49 ff ff db jal 0x584 ; | |
| 5d2: 80 e0 mov55 $r7,$r0 ; | |
| 5d4: c0 03 beqz38 $r0,0x5da ; if ringbuf_empty(ringbuf): | |
| 5d6: 84 00 movi55 $r0,#0x0 ; rv = 0 | |
| 5d8: d5 21 j8 0x61a ; goto out | |
| 5da: a6 70 lbi333 $r1,[$r6+#0x0] ; | |
| 5dc: 50 93 00 02 addi $r9,$r6,#0x2 ; $r9 = ringbuf.pktbase | |
| 5e0: 94 4e slli333 $r1,$r1,#0x6 ; | |
| 5e2: 88 29 add45 $r1,$r9 ; memcpy src = ringbuf.readaddr | |
| 5e4: 44 20 00 40 movi $r2,#0x40 ; memcpy n = 0x40 | |
| 5e8: 80 08 mov55 $r0,$r8 ; memcpy dest = packet | |
| 5ea: 49 00 4d 5d jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 5ee: a6 30 lbi333 $r0,[$r6+#0x0] ; | |
| 5f0: 80 27 mov55 $r1,$r7 ; memset byte = 0 | |
| 5f2: 94 06 slli333 $r0,$r0,#0x6 ; | |
| 5f4: 44 20 00 40 movi $r2,#0x40 ; memset size = 0x40 | |
| 5f8: 88 09 add45 $r0,$r9 ; memset dest = ringbuf.readaddr | |
| 5fa: 49 00 4d 5f jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 5fe: a6 b0 lbi333 $r2,[$r6+#0x0] ; $r2 = ringbuf.readidx | |
| 600: 46 06 66 66 sethi $r0,#0x66666 ; (woo boy, integer division sucks) | |
| 604: 9c 91 addi333 $r2,$r2,#0x1 ; $r2 = cache[0]+1 | |
| 606: 58 00 06 67 ori $r0,$r0,#0x667 ; | |
| 60a: 42 01 00 68 mulsr64 $r0,$r2,$r0 ; $r1 =~ (cache[0]+1)*2 // 5 | |
| 60e: 84 05 movi55 $r0,#0x5 ; $r0 = 5 | |
| 610: 90 21 srai45 $r1,#0x1 ; $r1 =~ (cache[0]+1) // 5 | |
| 612: 42 20 80 75 msubr32 $r2,$r1,$r0 ; $r2 = (cache[0]+1) % 5 | |
| 616: 84 01 movi55 $r0,#0x1 ; $r0 = 1 (success!) | |
| 618: ae b0 sbi333 $r2,[$r6+#0x0] ; ringbuf.readidx = (ringbuf.readidx+1) % 5 | |
| 61a: ec 04 addi10.sp #0x4 | |
| 61c: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 620: dd 9e ret5 $lp | |
| 622: 92 00 nop16 | |
| ; --------- 0x624: wait_for_cd60_bit17(b1=$r0) | |
| 624: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 628: 51 cf 80 04 addi $fp,$sp,#0x4 ; $fp = $sp+4 | |
| 62c: 51 ff ff f8 addi $sp,$sp,#-8 ; $sp -= 8 | |
| 630: 80 00 mov55 $r0,$r0 ; | |
| 632: 10 0e 7f f8 sbi $r0,[$fp+#-8] ; [$fp-8] = $r0 (save $r0) | |
| 636: 44 00 cd 60 movi $r0,#0xcd60 ; | |
| 63a: 04 00 00 00 lwi $r0,[$r0+#0x0] ; $r0 = [0xcd60] | |
| 63e: 00 1e 7f f8 lbi $r1,[$fp+#-8] ; $r1 = [$fp-8] (saved $r0) | |
| 642: 54 10 80 ff andi $r1,$r1,#0xff ; $r1 &= 0xff | |
| 646: 49 ff fe 99 jal 0x378 ; poll_for_bit17([0xcd60], b1) | |
| 64a: 92 00 nop16 | |
| 64c: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 650: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 654: 4a 00 78 20 ret $lp | |
| ; ---------- 0x658: wait_for_cd60_something() | |
| 658: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 65c: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 660: 44 00 cd 60 movi $r0,#0xcd60 | |
| 664: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 668: 49 ff fe 94 jal 0x390 ; return poll_for_something(addr=[0xcd60]) | |
| 66c: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 670: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 674: 4a 00 78 20 ret $lp | |
| ; --------- 0x678: init_cd10() | |
| 678: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 67c: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 680: 49 00 00 c6 jal 0x80c ; setup_cd10() | |
| 684: 44 00 00 00 movi $r0,#0x0 | |
| 688: 49 00 01 04 jal 0x890 ; setup_cd10_arg(0) | |
| 68c: 49 00 00 c0 jal 0x80c ; setup_cd10() | |
| 690: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 694: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 698: 4a 00 78 20 ret $lp | |
| ; --------- 0x69c: ???? | |
| 69c: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 6a0: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 6a4: 49 00 00 b4 jal 0x80c ; TODO: returns $r0 | |
| 6a8: 54 00 00 01 andi $r0,$r0,#0x1 | |
| 6ac: 54 00 00 ff andi $r0,$r0,#0xff | |
| 6b0: c0 6f beqz38 $r0,0x78e ; if $r0 & 1: goto out_fail | |
| 6b2: 3e 0f ff 6c addi.gp $r0,#-148 ; $r0 = $gp-148 | |
| 6b6: 04 00 00 00 lwi $r0,[$r0+#0x0] ; | |
| 6ba: c0 5f beqz38 $r0,0x778 ; if [$gp-148] == 0: | |
| 6bc: 3e 0f ff 6c addi.gp $r0,#-148 | |
| 6c0: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 6c4: 49 00 1d 7e jal 0x41c0 | |
| 6c8: 80 20 mov55 $r1,$r0 | |
| 6ca: 46 00 00 92 sethi $r0,#0x92 | |
| 6ce: 58 00 07 c0 ori $r0,$r0,#0x7c0 | |
| 6d2: 40 f0 04 06 slt $r15,$r0,$r1 | |
| 6d6: e8 59 beqzs8 0x788 | |
| 6d8: 3e 08 08 f0 addi.gp $r0,#0x8f0 | |
| 6dc: 44 10 00 01 movi $r1,#0x1 | |
| 6e0: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 6e4: 3e 08 08 f0 addi.gp $r0,#0x8f0 | |
| 6e8: 44 10 00 0a movi $r1,#0xa | |
| 6ec: 10 10 00 01 sbi $r1,[$r0+#0x1] | |
| 6f0: 3e 0f ff dd addi.gp $r0,#-35 | |
| 6f4: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 6f8: 54 10 00 ff andi $r1,$r0,#0xff | |
| 6fc: 3e 08 08 f0 addi.gp $r0,#0x8f0 | |
| 700: 80 21 mov55 $r1,$r1 | |
| 702: 10 10 00 02 sbi $r1,[$r0+#0x2] | |
| 706: 3e 0f ff 70 addi.gp $r0,#-144 | |
| 70a: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 70e: 54 10 00 ff andi $r1,$r0,#0xff | |
| 712: 3e 08 08 f0 addi.gp $r0,#0x8f0 | |
| 716: 80 21 mov55 $r1,$r1 | |
| 718: 10 10 00 03 sbi $r1,[$r0+#0x3] | |
| 71c: 3e 0f ff 70 addi.gp $r0,#-144 | |
| 720: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 724: 40 00 20 09 srli $r0,$r0,#0x8 | |
| 728: 54 10 00 ff andi $r1,$r0,#0xff | |
| 72c: 3e 08 08 f0 addi.gp $r0,#0x8f0 | |
| 730: 80 21 mov55 $r1,$r1 | |
| 732: 10 10 00 04 sbi $r1,[$r0+#0x4] | |
| 736: 3e 0f ff 70 addi.gp $r0,#-144 | |
| 73a: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 73e: 40 00 40 09 srli $r0,$r0,#0x10 | |
| 742: 54 10 00 ff andi $r1,$r0,#0xff | |
| 746: 3e 08 08 f0 addi.gp $r0,#0x8f0 | |
| 74a: 80 21 mov55 $r1,$r1 | |
| 74c: 10 10 00 05 sbi $r1,[$r0+#0x5] | |
| 750: 3e 08 08 f0 addi.gp $r0,#0x8f0 | |
| 754: 49 00 2d 9c jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 758: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 75c: 3e 18 08 f0 addi.gp $r1,#0x8f0 | |
| 760: 49 ff fe ec jal 0x538 ; ringbuf_write() | |
| 764: 49 00 03 08 jal 0xd74 | |
| 768: 49 00 1d 12 jal 0x418c | |
| 76c: 80 20 mov55 $r1,$r0 | |
| 76e: 3e 0f ff 6c addi.gp $r0,#-148 | |
| 772: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 776: d5 09 j8 0x788 | |
| 778: 49 00 1d 0a jal 0x418c | |
| 77c: 80 20 mov55 $r1,$r0 | |
| 77e: 3e 0f ff 6c addi.gp $r0,#-148 | |
| 782: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 786: d5 01 j8 0x788 | |
| 788: 44 00 00 00 movi $r0,#0x0 | |
| 78c: d5 09 j8 0x79e ; goto out | |
| 78e: 3e 0f ff 6c addi.gp $r0,#-148 ;label out_fail: | |
| 792: 44 10 00 00 movi $r1,#0x0 ; | |
| 796: 14 10 00 00 swi $r1,[$r0+#0x0] ; [$gp-148] = 0 | |
| 79a: 44 00 00 01 movi $r0,#0x1 ; $r0 = 1 | |
| 79e: 51 fe 7f fc addi $sp,$fp,#-4 ;label out: | |
| 7a2: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 7a6: 4a 00 78 20 ret $lp | |
| 7aa: 92 00 nop16 | |
| ; --------- 0x7ac: some_setup() | |
| 7ac: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 7b0: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 7b4: 51 ff ff f8 addi $sp,$sp,#-8 | |
| 7b8: 44 00 00 00 movi $r0,#0x0 | |
| 7bc: 14 0e 7f fe swi $r0,[$fp+#-8] ; loop_arg ($fp-8) = 0 | |
| 7c0: d5 11 j8 0x7e2 ; loop: | |
| 7c2: 44 00 00 01 movi $r0,#0x1 ; $r0 = 1 | |
| 7c6: 49 00 1d 25 jal 0x4210 ; ??? | |
| 7ca: 04 0e 7f fe lwi $r0,[$fp+#-8] ; $r0 = loop_arg | |
| 7ce: 50 00 00 01 addi $r0,$r0,#0x1 ; $r0 += 1 | |
| 7d2: 14 0e 7f fe swi $r0,[$fp+#-8] ; loop_arg = $r0 | |
| 7d6: 04 1e 7f fe lwi $r1,[$fp+#-8] ; $r1 = loop_arg | |
| 7da: 44 00 07 d0 movi $r0,#0x7d0 ; $r0 = 0x7d0 | |
| 7de: 4c 10 00 06 beq $r1,$r0,0x7ea ; until (loop_arg == 0x7d0) | |
| 7e2: 49 ff ff 5d jal 0x69c | |
| 7e6: c0 ee beqz38 $r0,0x7c2 | |
| 7e8: d5 01 j8 0x7ea | |
| 7ea: 04 0e 7f fe lwi $r0,[$fp+#-8] | |
| 7ee: 5c f0 07 d0 slti $r15,$r0,#0x7d0 | |
| 7f2: e8 07 beqzs8 0x800 | |
| 7f4: 3e 0f ff dc addi.gp $r0,#-36 | |
| 7f8: 44 10 00 01 movi $r1,#0x1 | |
| 7fc: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 800: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 804: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 808: 4a 00 78 20 ret $lp | |
| ; --------- 0x80c: setup_cd10() | |
| 80c: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 810: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 814: 51 ff ff f8 addi $sp,$sp,#-8 | |
| 818: 44 00 00 00 movi $r0,#0x0 | |
| 81c: 10 0e 7f fb sbi $r0,[$fp+#-5] | |
| 820: 44 00 cd 10 movi $r0,#0xcd10 | |
| 824: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 828: 44 10 cd 10 movi $r1,#0xcd10 | |
| 82c: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| 830: 14 10 00 07 swi $r1,[$r0+#0x1c] | |
| 834: 44 00 00 05 movi $r0,#0x5 | |
| 838: 49 ff fe f6 jal 0x624 ; wait_for_cd60_bit17($r0) | |
| 83c: 49 ff ff 0e jal 0x658 ; wait_for_cd60_something() -> $r0 | |
| 840: 80 00 mov55 $r0,$r0 | |
| 842: 10 0e 7f fb sbi $r0,[$fp+#-5] | |
| 846: 40 00 00 09 nop | |
| 84a: 40 00 00 09 nop | |
| 84e: 40 00 00 09 nop | |
| 852: 40 00 00 09 nop | |
| 856: 40 00 00 09 nop | |
| 85a: 40 00 00 09 nop | |
| 85e: 40 00 00 09 nop | |
| 862: 40 00 00 09 nop | |
| 866: 44 00 cd 10 movi $r0,#0xcd10 | |
| 86a: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 86e: 44 10 cd 10 movi $r1,#0xcd10 | |
| 872: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| 876: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 87a: 00 0e 7f fb lbi $r0,[$fp+#-5] | |
| 87e: 54 00 00 ff andi $r0,$r0,#0xff | |
| 882: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 886: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 88a: 4a 00 78 20 ret $lp | |
| 88e: 92 00 nop16 | |
| ; --------- 0x890: setup_cd10_arg(b1=$r0) (only called from 0x678) | |
| 890: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 894: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 898: 51 ff ff f8 addi $sp,$sp,#-8 | |
| 89c: 80 00 mov55 $r0,$r0 | |
| 89e: 10 0e 7f f8 sbi $r0,[$fp+#-8] | |
| 8a2: 49 00 00 37 jal 0x910 | |
| 8a6: 44 00 cd 10 movi $r0,#0xcd10 | |
| 8aa: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 8ae: 44 10 cd 10 movi $r1,#0xcd10 | |
| 8b2: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| 8b6: 14 10 00 07 swi $r1,[$r0+#0x1c] | |
| 8ba: 44 00 00 01 movi $r0,#0x1 | |
| 8be: 49 ff fe b3 jal 0x624 ; wait_for_cd60_bit17($r0) | |
| 8c2: 00 0e 7f f8 lbi $r0,[$fp+#-8] | |
| 8c6: 54 00 00 ff andi $r0,$r0,#0xff | |
| 8ca: 49 ff fe ad jal 0x624 ; wait_for_cd60_bit17($r0) | |
| 8ce: 40 00 00 09 nop | |
| 8d2: 40 00 00 09 nop | |
| 8d6: 40 00 00 09 nop | |
| 8da: 40 00 00 09 nop | |
| 8de: 40 00 00 09 nop | |
| 8e2: 40 00 00 09 nop | |
| 8e6: 40 00 00 09 nop | |
| 8ea: 40 00 00 09 nop | |
| 8ee: 44 00 cd 10 movi $r0,#0xcd10 | |
| 8f2: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 8f6: 44 10 cd 10 movi $r1,#0xcd10 | |
| 8fa: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| 8fe: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 902: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 906: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 90a: 4a 00 78 20 ret $lp | |
| 90e: 92 00 nop16 | |
| ; ---------- 0x910: grab data from around 0xcd10 | |
| 910: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 914: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 918: 44 00 cd 10 movi $r0,#0xcd10 | |
| 91c: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 920: 44 10 cd 10 movi $r1,#0xcd10 | |
| 924: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| 928: 14 10 00 07 swi $r1,[$r0+#0x1c] | |
| 92c: 44 00 00 06 movi $r0,#0x6 | |
| 930: 49 ff fe 7a jal 0x624 ; wait_for_cd60_bit17($r0) | |
| 934: 40 00 00 09 nop | |
| 938: 40 00 00 09 nop | |
| 93c: 40 00 00 09 nop | |
| 940: 40 00 00 09 nop | |
| 944: 40 00 00 09 nop | |
| 948: 40 00 00 09 nop | |
| 94c: 40 00 00 09 nop | |
| 950: 40 00 00 09 nop | |
| 954: 44 00 cd 10 movi $r0,#0xcd10 | |
| 958: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 95c: 44 10 cd 10 movi $r1,#0xcd10 | |
| 960: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| 964: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 968: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 96c: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 970: 4a 00 78 20 ret $lp | |
| ; ---------- 0x974: func_974($r0, addr=$r1, size=$r2) | |
| 974: 3a 6f 9a bc smw.adm $r6,[$sp],$r6,#0xa ! {$r6, $fp, $lp} | |
| 978: 51 cf 80 08 addi $fp,$sp,#0x8 | |
| 97c: 51 ff ff e4 addi $sp,$sp,#-28 | |
| 980: 14 0e 7f fa swi $r0,[$fp+#-24] | |
| 984: 14 1e 7f f9 swi $r1,[$fp+#-28] | |
| 988: 14 2e 7f f8 swi $r2,[$fp+#-32] | |
| 98c: 3e 0f ff dd addi.gp $r0,#-35 | |
| 990: 44 10 00 01 movi $r1,#0x1 | |
| 994: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 998: 3e 0f ff 70 addi.gp $r0,#-144 | |
| 99c: 04 1e 7f fa lwi $r1,[$fp+#-24] | |
| 9a0: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 9a4: 44 00 cd 10 movi $r0,#0xcd10 | |
| 9a8: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 9ac: 44 10 cd 10 movi $r1,#0xcd10 | |
| 9b0: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| 9b4: 14 10 00 07 swi $r1,[$r0+#0x1c] | |
| 9b8: 44 00 00 03 movi $r0,#0x3 | |
| 9bc: 49 ff fe 34 jal 0x624 ; wait_for_cd60_bit17($r0) | |
| 9c0: 04 0e 7f fa lwi $r0,[$fp+#-24] | |
| 9c4: 40 00 40 09 srli $r0,$r0,#0x10 | |
| 9c8: 54 00 00 ff andi $r0,$r0,#0xff | |
| 9cc: 49 ff fe 2c jal 0x624 ; wait_for_cd60_bit17($r0) | |
| 9d0: 04 0e 7f fa lwi $r0,[$fp+#-24] | |
| 9d4: 40 00 20 09 srli $r0,$r0,#0x8 | |
| 9d8: 54 00 00 ff andi $r0,$r0,#0xff | |
| 9dc: 49 ff fe 24 jal 0x624 ; wait_for_cd60_bit17($r0) | |
| 9e0: 04 0e 7f fa lwi $r0,[$fp+#-24] | |
| 9e4: 54 00 00 ff andi $r0,$r0,#0xff | |
| 9e8: 49 ff fe 1e jal 0x624 ; wait_for_cd60_bit17($r0) | |
| 9ec: 44 00 00 00 movi $r0,#0x0 | |
| 9f0: 12 0e 7f f9 shi $r0,[$fp+#-14] | |
| 9f4: d5 15 j8 0xa1e | |
| 9f6: 02 0e 7f f9 lhi $r0,[$fp+#-14] | |
| 9fa: 40 00 00 13 zeh $r0,$r0 | |
| 9fe: 04 1e 7f f9 lwi $r1,[$fp+#-28] | |
| a02: 40 60 80 00 add $r6,$r1,$r0 | |
| a06: 49 ff fe 29 jal 0x658 ; wait_for_cd60_something() | |
| a0a: 80 00 mov55 $r0,$r0 | |
| a0c: 10 03 00 00 sbi $r0,[$r6+#0x0] | |
| a10: 02 0e 7f f9 lhi $r0,[$fp+#-14] | |
| a14: 50 00 00 01 addi $r0,$r0,#0x1 | |
| a18: 80 00 mov55 $r0,$r0 | |
| a1a: 12 0e 7f f9 shi $r0,[$fp+#-14] | |
| a1e: 02 0e 7f f9 lhi $r0,[$fp+#-14] | |
| a22: 40 10 00 13 zeh $r1,$r0 | |
| a26: 04 0e 7f f8 lwi $r0,[$fp+#-32] | |
| a2a: 40 f0 80 06 slt $r15,$r1,$r0 | |
| a2e: e9 e4 bnezs8 0x9f6 | |
| a30: 40 00 00 09 nop | |
| a34: 40 00 00 09 nop | |
| a38: 40 00 00 09 nop | |
| a3c: 40 00 00 09 nop | |
| a40: 40 00 00 09 nop | |
| a44: 40 00 00 09 nop | |
| a48: 40 00 00 09 nop | |
| a4c: 40 00 00 09 nop | |
| a50: 44 00 cd 10 movi $r0,#0xcd10 | |
| a54: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| a58: 44 10 cd 10 movi $r1,#0xcd10 | |
| a5c: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| a60: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| a64: 51 fe 7f f8 addi $sp,$fp,#-8 | |
| a68: 3a 6f 9a 84 lmw.bim $r6,[$sp],$r6,#0xa ! {$r6, $fp, $lp} | |
| a6c: 4a 00 78 20 ret $lp | |
| ; ---------- 0xa70: what is this shit | |
| a70: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| a74: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| a78: 51 ff ff e8 addi $sp,$sp,#-24 | |
| a7c: 14 0e 7f fc swi $r0,[$fp+#-16] | |
| a80: 14 1e 7f fb swi $r1,[$fp+#-20] | |
| a84: 80 02 mov55 $r0,$r2 | |
| a86: 80 00 mov55 $r0,$r0 | |
| a88: 12 0e 7f f4 shi $r0,[$fp+#-24] | |
| a8c: 3e 0f ff dd addi.gp $r0,#-35 | |
| a90: 44 10 00 02 movi $r1,#0x2 | |
| a94: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| a98: 3e 0f ff 70 addi.gp $r0,#-144 | |
| a9c: 04 1e 7f fc lwi $r1,[$fp+#-16] | |
| aa0: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| aa4: 48 00 00 a8 j 0xbf4 | |
| aa8: 49 ff fd fa jal 0x69c | |
| aac: c0 fe beqz38 $r0,0xaa8 | |
| aae: 04 0e 7f fc lwi $r0,[$fp+#-16] | |
| ab2: 80 00 mov55 $r0,$r0 | |
| ab4: 10 0e 7f fb sbi $r0,[$fp+#-5] | |
| ab8: 00 0e 7f fb lbi $r0,[$fp+#-5] | |
| abc: 54 10 00 ff andi $r1,$r0,#0xff | |
| ac0: 02 0e 7f f4 lhi $r0,[$fp+#-24] | |
| ac4: 40 00 00 13 zeh $r0,$r0 | |
| ac8: 40 00 80 00 add $r0,$r1,$r0 | |
| acc: 5e f0 01 01 sltsi $r15,$r0,#0x101 | |
| ad0: e9 0b bnezs8 0xae6 | |
| ad2: 00 0e 7f fb lbi $r0,[$fp+#-5] | |
| ad6: 54 00 00 ff andi $r0,$r0,#0xff | |
| ada: 52 00 01 00 subri $r0,$r0,#0x100 | |
| ade: 80 00 mov55 $r0,$r0 | |
| ae0: 12 0e 7f fc shi $r0,[$fp+#-8] | |
| ae4: d5 05 j8 0xaee | |
| ae6: 02 0e 7f f4 lhi $r0,[$fp+#-24] | |
| aea: 12 0e 7f fc shi $r0,[$fp+#-8] | |
| aee: 49 ff ff 11 jal 0x910 | |
| af2: 44 00 cd 10 movi $r0,#0xcd10 | |
| af6: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| afa: 44 10 cd 10 movi $r1,#0xcd10 | |
| afe: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| b02: 14 10 00 07 swi $r1,[$r0+#0x1c] | |
| b06: 44 00 00 02 movi $r0,#0x2 | |
| b0a: 49 ff fd 8d jal 0x624 ; wait_for_cd60_bit17($r0) | |
| b0e: 04 0e 7f fc lwi $r0,[$fp+#-16] | |
| b12: 40 00 40 09 srli $r0,$r0,#0x10 | |
| b16: 54 00 00 ff andi $r0,$r0,#0xff | |
| b1a: 49 ff fd 85 jal 0x624 ; wait_for_cd60_bit17($r0) | |
| b1e: 04 0e 7f fc lwi $r0,[$fp+#-16] | |
| b22: 40 00 20 09 srli $r0,$r0,#0x8 | |
| b26: 54 00 00 ff andi $r0,$r0,#0xff | |
| b2a: 49 ff fd 7d jal 0x624 ; wait_for_cd60_bit17($r0) | |
| b2e: 04 0e 7f fc lwi $r0,[$fp+#-16] | |
| b32: 54 00 00 ff andi $r0,$r0,#0xff | |
| b36: 49 ff fd 77 jal 0x624 ; wait_for_cd60_bit17($r0) | |
| b3a: 44 00 00 00 movi $r0,#0x0 | |
| b3e: 12 0e 7f fb shi $r0,[$fp+#-10] | |
| b42: d5 16 j8 0xb6e | |
| b44: 02 0e 7f fb lhi $r0,[$fp+#-10] | |
| b48: 40 00 00 13 zeh $r0,$r0 | |
| b4c: 04 1e 7f fb lwi $r1,[$fp+#-20] | |
| b50: 40 00 80 00 add $r0,$r1,$r0 | |
| b54: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| b58: 54 00 00 ff andi $r0,$r0,#0xff | |
| b5c: 49 ff fd 64 jal 0x624 ; wait_for_cd60_bit17($r0) | |
| b60: 02 0e 7f fb lhi $r0,[$fp+#-10] | |
| b64: 50 00 00 01 addi $r0,$r0,#0x1 | |
| b68: 80 00 mov55 $r0,$r0 | |
| b6a: 12 0e 7f fb shi $r0,[$fp+#-10] | |
| b6e: 02 0e 7f fb lhi $r0,[$fp+#-10] | |
| b72: 40 10 00 13 zeh $r1,$r0 | |
| b76: 02 0e 7f fc lhi $r0,[$fp+#-8] | |
| b7a: 40 00 00 13 zeh $r0,$r0 | |
| b7e: 40 f0 80 06 slt $r15,$r1,$r0 | |
| b82: 4e f3 ff e1 bnez $r15,0xb44 | |
| b86: 40 00 00 09 nop | |
| b8a: 40 00 00 09 nop | |
| b8e: 40 00 00 09 nop | |
| b92: 40 00 00 09 nop | |
| b96: 40 00 00 09 nop | |
| b9a: 40 00 00 09 nop | |
| b9e: 40 00 00 09 nop | |
| ba2: 40 00 00 09 nop | |
| ba6: 44 00 cd 10 movi $r0,#0xcd10 | |
| baa: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| bae: 44 10 cd 10 movi $r1,#0xcd10 | |
| bb2: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| bb6: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| bba: 02 0e 7f fc lhi $r0,[$fp+#-8] | |
| bbe: 40 00 00 13 zeh $r0,$r0 | |
| bc2: 04 1e 7f fb lwi $r1,[$fp+#-20] | |
| bc6: 40 00 80 00 add $r0,$r1,$r0 | |
| bca: 14 0e 7f fb swi $r0,[$fp+#-20] | |
| bce: 02 0e 7f fc lhi $r0,[$fp+#-8] | |
| bd2: 40 00 00 13 zeh $r0,$r0 | |
| bd6: 04 1e 7f fc lwi $r1,[$fp+#-16] | |
| bda: 40 00 80 00 add $r0,$r1,$r0 | |
| bde: 14 0e 7f fc swi $r0,[$fp+#-16] | |
| be2: 02 1e 7f f4 lhi $r1,[$fp+#-24] | |
| be6: 02 0e 7f fc lhi $r0,[$fp+#-8] | |
| bea: 40 00 80 01 sub $r0,$r1,$r0 | |
| bee: 80 00 mov55 $r0,$r0 | |
| bf0: 12 0e 7f f4 shi $r0,[$fp+#-24] | |
| bf4: 02 0e 7f f4 lhi $r0,[$fp+#-24] | |
| bf8: 40 00 00 13 zeh $r0,$r0 | |
| bfc: 4e 03 ff 56 bnez $r0,0xaa8 | |
| c00: 51 fe 7f fc addi $sp,$fp,#-4 | |
| c04: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| c08: 4a 00 78 20 ret $lp | |
| c0c: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| c10: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| c14: 51 ff ff f8 addi $sp,$sp,#-8 | |
| c18: 14 0e 7f fe swi $r0,[$fp+#-8] | |
| c1c: 3e 0f ff dd addi.gp $r0,#-35 | |
| c20: 44 10 00 03 movi $r1,#0x3 | |
| c24: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| c28: 3e 0f ff 70 addi.gp $r0,#-144 | |
| c2c: 04 1e 7f fe lwi $r1,[$fp+#-8] | |
| c30: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| c34: 49 ff fe 6e jal 0x910 | |
| c38: 44 00 cd 10 movi $r0,#0xcd10 | |
| c3c: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| c40: 44 10 cd 10 movi $r1,#0xcd10 | |
| c44: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| c48: 14 10 00 07 swi $r1,[$r0+#0x1c] | |
| c4c: 44 00 00 20 movi $r0,#0x20 | |
| c50: 49 ff fc ea jal 0x624 ; wait_for_cd60_bit17($r0) | |
| c54: 04 0e 7f fe lwi $r0,[$fp+#-8] | |
| c58: 40 00 40 09 srli $r0,$r0,#0x10 | |
| c5c: 54 00 00 ff andi $r0,$r0,#0xff | |
| c60: 49 ff fc e2 jal 0x624 ; wait_for_cd60_bit17($r0) | |
| c64: 04 0e 7f fe lwi $r0,[$fp+#-8] | |
| c68: 40 00 20 09 srli $r0,$r0,#0x8 | |
| c6c: 54 00 00 ff andi $r0,$r0,#0xff | |
| c70: 49 ff fc da jal 0x624 ; wait_for_cd60_bit17($r0) | |
| c74: 04 0e 7f fe lwi $r0,[$fp+#-8] | |
| c78: 54 00 00 ff andi $r0,$r0,#0xff | |
| c7c: 49 ff fc d4 jal 0x624 ; wait_for_cd60_bit17($r0) | |
| c80: 40 00 00 09 nop | |
| c84: 40 00 00 09 nop | |
| c88: 40 00 00 09 nop | |
| c8c: 40 00 00 09 nop | |
| c90: 40 00 00 09 nop | |
| c94: 40 00 00 09 nop | |
| c98: 40 00 00 09 nop | |
| c9c: 40 00 00 09 nop | |
| ca0: 44 00 cd 10 movi $r0,#0xcd10 | |
| ca4: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| ca8: 44 10 cd 10 movi $r1,#0xcd10 | |
| cac: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| cb0: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| cb4: 51 fe 7f fc addi $sp,$fp,#-4 | |
| cb8: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| cbc: 4a 00 78 20 ret $lp | |
| cc0: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| cc4: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| cc8: 51 ff ff f8 addi $sp,$sp,#-8 | |
| ccc: 14 0e 7f fe swi $r0,[$fp+#-8] | |
| cd0: 3e 0f ff dd addi.gp $r0,#-35 | |
| cd4: 44 10 00 04 movi $r1,#0x4 | |
| cd8: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| cdc: 3e 0f ff 70 addi.gp $r0,#-144 | |
| ce0: 04 1e 7f fe lwi $r1,[$fp+#-8] | |
| ce4: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| ce8: 49 ff fe 14 jal 0x910 | |
| cec: 44 00 cd 10 movi $r0,#0xcd10 | |
| cf0: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| cf4: 44 10 cd 10 movi $r1,#0xcd10 | |
| cf8: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| cfc: 14 10 00 07 swi $r1,[$r0+#0x1c] | |
| d00: 44 00 00 d8 movi $r0,#0xd8 | |
| d04: 49 ff fc 90 jal 0x624 ; wait_for_cd60_bit17($r0) | |
| d08: 04 0e 7f fe lwi $r0,[$fp+#-8] | |
| d0c: 40 00 40 09 srli $r0,$r0,#0x10 | |
| d10: 54 00 00 ff andi $r0,$r0,#0xff | |
| d14: 49 ff fc 88 jal 0x624 ; wait_for_cd60_bit17($r0) | |
| d18: 04 0e 7f fe lwi $r0,[$fp+#-8] | |
| d1c: 40 00 20 09 srli $r0,$r0,#0x8 | |
| d20: 54 00 00 ff andi $r0,$r0,#0xff | |
| d24: 49 ff fc 80 jal 0x624 ; wait_for_cd60_bit17($r0) | |
| d28: 04 0e 7f fe lwi $r0,[$fp+#-8] | |
| d2c: 54 00 00 ff andi $r0,$r0,#0xff | |
| d30: 49 ff fc 7a jal 0x624 ; wait_for_cd60_bit17($r0) | |
| d34: 40 00 00 09 nop | |
| d38: 40 00 00 09 nop | |
| d3c: 40 00 00 09 nop | |
| d40: 40 00 00 09 nop | |
| d44: 40 00 00 09 nop | |
| d48: 40 00 00 09 nop | |
| d4c: 40 00 00 09 nop | |
| d50: 40 00 00 09 nop | |
| d54: 44 00 cd 10 movi $r0,#0xcd10 | |
| d58: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| d5c: 44 10 cd 10 movi $r1,#0xcd10 | |
| d60: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| d64: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| d68: 51 fe 7f fc addi $sp,$fp,#-4 | |
| d6c: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| d70: 4a 00 78 20 ret $lp | |
| d74: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| d78: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| d7c: 44 00 cd 10 movi $r0,#0xcd10 | |
| d80: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| d84: 44 10 cd 10 movi $r1,#0xcd10 | |
| d88: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| d8c: 14 10 00 07 swi $r1,[$r0+#0x1c] | |
| d90: 44 00 00 66 movi $r0,#0x66 | |
| d94: 49 ff fc 48 jal 0x624 ; wait_for_cd60_bit17($r0) | |
| d98: 40 00 00 09 nop | |
| d9c: 40 00 00 09 nop | |
| da0: 40 00 00 09 nop | |
| da4: 40 00 00 09 nop | |
| da8: 40 00 00 09 nop | |
| dac: 40 00 00 09 nop | |
| db0: 40 00 00 09 nop | |
| db4: 40 00 00 09 nop | |
| db8: 44 00 cd 10 movi $r0,#0xcd10 | |
| dbc: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| dc0: 44 10 cd 10 movi $r1,#0xcd10 | |
| dc4: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| dc8: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| dcc: 40 00 00 09 nop | |
| dd0: 40 00 00 09 nop | |
| dd4: 40 00 00 09 nop | |
| dd8: 40 00 00 09 nop | |
| ddc: 40 00 00 09 nop | |
| de0: 40 00 00 09 nop | |
| de4: 40 00 00 09 nop | |
| de8: 40 00 00 09 nop | |
| dec: 44 00 cd 10 movi $r0,#0xcd10 | |
| df0: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| df4: 44 10 cd 10 movi $r1,#0xcd10 | |
| df8: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| dfc: 14 10 00 07 swi $r1,[$r0+#0x1c] | |
| e00: 44 00 00 99 movi $r0,#0x99 | |
| e04: 49 ff fc 10 jal 0x624 ; wait_for_cd60_bit17($r0) | |
| e08: 40 00 00 09 nop | |
| e0c: 40 00 00 09 nop | |
| e10: 40 00 00 09 nop | |
| e14: 40 00 00 09 nop | |
| e18: 40 00 00 09 nop | |
| e1c: 40 00 00 09 nop | |
| e20: 40 00 00 09 nop | |
| e24: 40 00 00 09 nop | |
| e28: 44 00 cd 10 movi $r0,#0xcd10 | |
| e2c: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| e30: 44 10 cd 10 movi $r1,#0xcd10 | |
| e34: 04 10 80 01 lwi $r1,[$r1+#0x4] | |
| e38: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| e3c: 51 fe 7f fc addi $sp,$fp,#-4 | |
| e40: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| e44: 4a 00 78 20 ret $lp | |
| e48: c1 14 beqz38 $r1,0xe70 | |
| e4a: a6 80 lbi333 $r2,[$r0+#0x0] | |
| e4c: 44 30 00 ff movi $r3,#0xff | |
| e50: 4c 21 c0 0e bne $r2,$r3,0xe6c | |
| e54: 84 40 movi55 $r2,#0x0 | |
| e56: d5 07 j8 0xe64 | |
| e58: 38 30 08 00 lb $r3,[$r0+($r2<<#0x0)] | |
| e5c: 44 40 00 ff movi $r4,#0xff | |
| e60: 4c 32 40 06 bne $r3,$r4,0xe6c | |
| e64: 9c 91 addi333 $r2,$r2,#0x1 | |
| e66: e2 41 slt45 $r2,$r1 | |
| e68: e9 f8 bnezs8 0xe58 | |
| e6a: d5 03 j8 0xe70 | |
| e6c: 84 01 movi55 $r0,#0x1 | |
| e6e: d5 02 j8 0xe72 | |
| e70: 84 00 movi55 $r0,#0x0 | |
| e72: dd 9e ret5 $lp | |
| e74: 3a 6f a0 bc smw.adm $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| e78: 84 22 movi55 $r1,#0x2 | |
| e7a: 96 00 zeb33 $r0,$r0 | |
| e7c: 4c 00 80 12 beq $r0,$r1,0xea0 | |
| e80: e6 03 slti45 $r0,#0x3 | |
| e82: e8 05 beqzs8 0xe8c | |
| e84: 84 21 movi55 $r1,#0x1 | |
| e86: 4c 00 c0 09 bne $r0,$r1,0xe98 | |
| e8a: d5 0f j8 0xea8 | |
| e8c: 84 23 movi55 $r1,#0x3 | |
| e8e: 4c 00 80 11 beq $r0,$r1,0xeb0 | |
| e92: 84 24 movi55 $r1,#0x4 | |
| e94: 4c 00 80 12 beq $r0,$r1,0xeb8 | |
| e98: 44 00 00 f0 movi $r0,#0xf0 | |
| e9c: 48 00 00 40 j 0xf1c | |
| ea0: 46 70 00 a0 sethi $r7,#0xa0 | |
| ea4: 48 00 00 0c j 0xebc | |
| ea8: 46 70 00 80 sethi $r7,#0x80 | |
| eac: 48 00 00 08 j 0xebc | |
| eb0: 46 70 00 c0 sethi $r7,#0xc0 | |
| eb4: 48 00 00 04 j 0xebc | |
| eb8: 46 70 00 e0 sethi $r7,#0xe0 | |
| ebc: 2e 17 ff dc lbi.gp $r1,[+#-36] | |
| ec0: c9 04 bnez38 $r1,0xec8 | |
| ec2: 84 04 movi55 $r0,#0x4 | |
| ec4: 48 00 00 2c j 0xf1c | |
| ec8: 2e 17 ff ea lbi.gp $r1,[+#-22] | |
| ecc: 4c 10 00 04 beq $r1,$r0,0xed4 | |
| ed0: 48 00 00 16 j 0xefc | |
| ed4: 3c 0d ff e0 lwi.gp $r0,[+#-128] | |
| ed8: 44 10 a5 50 movi $r1,#0xa550 | |
| edc: 4c 00 80 03 beq $r0,$r1,0xee2 | |
| ee0: d5 0e j8 0xefc | |
| ee2: 84 20 movi55 $r1,#0x0 | |
| ee4: 3e 08 03 00 addi.gp $r0,#0x300 | |
| ee8: 44 20 02 10 movi $r2,#0x210 | |
| eec: 49 00 48 e6 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| ef0: 84 21 movi55 $r1,#0x1 | |
| ef2: 3e 17 ff e8 sbi.gp $r1,[+#-24] | |
| ef6: 84 00 movi55 $r0,#0x0 | |
| ef8: 3c 0f ff e0 swi.gp $r0,[+#-128] | |
| efc: 49 ff fb d0 jal 0x69c | |
| f00: c0 fe beqz38 $r0,0xefc | |
| f02: 80 07 mov55 $r0,$r7 | |
| f04: 49 ff fe de jal 0xcc0 | |
| f08: 49 ff fb ca jal 0x69c | |
| f0c: c0 fe beqz38 $r0,0xf08 | |
| f0e: 44 11 00 00 movi $r1,#0x10000 | |
| f12: 98 39 add333 $r0,$r7,$r1 | |
| f14: 49 ff fe d6 jal 0xcc0 | |
| f18: 44 00 00 00 movi $r0,#0x0 | |
| f1c: 3a 6f a0 84 lmw.bim $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| f20: dd 9e ret5 $lp | |
| f22: 92 00 nop16 | |
| f24: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| f28: 84 22 movi55 $r1,#0x2 | |
| f2a: 96 00 zeb33 $r0,$r0 | |
| f2c: 4c 00 80 1a beq $r0,$r1,0xf60 | |
| f30: e6 03 slti45 $r0,#0x3 | |
| f32: e8 05 beqzs8 0xf3c | |
| f34: 84 21 movi55 $r1,#0x1 | |
| f36: 4c 00 c0 09 bne $r0,$r1,0xf48 | |
| f3a: d5 1d j8 0xf74 | |
| f3c: 84 23 movi55 $r1,#0x3 | |
| f3e: 4c 00 80 09 beq $r0,$r1,0xf50 | |
| f42: 84 24 movi55 $r1,#0x4 | |
| f44: 4c 00 80 0a beq $r0,$r1,0xf58 | |
| f48: 44 00 00 f0 movi $r0,#0xf0 | |
| f4c: 48 00 00 16 j 0xf78 | |
| f50: 44 65 00 00 movi $r6,#0x50000 | |
| f54: 48 00 00 08 j 0xf64 | |
| f58: 44 67 00 00 movi $r6,#0x70000 | |
| f5c: 48 00 00 04 j 0xf64 | |
| f60: 44 63 00 00 movi $r6,#0x30000 | |
| f64: 49 ff fb 9c jal 0x69c | |
| f68: c8 03 bnez38 $r0,0xf6e | |
| f6a: 84 01 movi55 $r0,#0x1 | |
| f6c: d5 06 j8 0xf78 | |
| f6e: 80 06 mov55 $r0,$r6 | |
| f70: 49 ff fe a8 jal 0xcc0 | |
| f74: 44 00 00 00 movi $r0,#0x0 | |
| f78: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| f7c: dd 9e ret5 $lp | |
| f7e: 92 00 nop16 | |
| f80: 3a 6f a8 bc smw.adm $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| f84: 81 21 mov55 $r9,$r1 ; $r9 = saved_r1 | |
| f86: 96 00 zeb33 $r0,$r0 ; $r0 &= 0xff | |
| f88: 84 22 movi55 $r1,#0x2 ; $r1 = 0x2 | |
| f8a: 81 02 mov55 $r8,$r2 ; $r8 = saved_r2 | |
| f8c: 81 43 mov55 $r10,$r3 ; $r10 = saved_r3 | |
| f8e: 4c 00 80 0f beq $r0,$r1,0xfac ; if $r0 == 2: goto 0xfac | |
| f92: e6 03 slti45 $r0,#0x3 ; | |
| f94: e8 05 beqzs8 0xf9e | |
| f96: 84 21 movi55 $r1,#0x1 | |
| f98: 4c 00 c0 2a bne $r0,$r1,0xfec | |
| f9c: d5 0c j8 0xfb4 | |
| f9e: 84 23 movi55 $r1,#0x3 | |
| fa0: 4c 00 80 0e beq $r0,$r1,0xfbc | |
| fa4: 84 24 movi55 $r1,#0x4 | |
| fa6: 4c 00 c0 23 bne $r0,$r1,0xfec | |
| faa: d5 0d j8 0xfc4 | |
| fac: 46 60 00 a0 sethi $r6,#0xa0 | |
| fb0: 48 00 00 0c j 0xfc8 | |
| fb4: 46 60 00 80 sethi $r6,#0x80 | |
| fb8: 48 00 00 08 j 0xfc8 | |
| fbc: 46 60 00 c0 sethi $r6,#0xc0 | |
| fc0: 48 00 00 04 j 0xfc8 | |
| fc4: 46 60 00 e0 sethi $r6,#0xe0 | |
| fc8: 46 f0 01 00 sethi $r15,#0x100 | |
| fcc: 2e 47 ff dc lbi.gp $r4,[+#-36] | |
| fd0: 4e 42 00 0e beqz $r4,0xfec ; if $gp-36 == 0: goto out | |
| fd4: 49 ff fb 64 jal 0x69c ; | |
| fd8: c0 fe beqz38 $r0,0xfd4 | |
| fda: 40 03 28 00 add $r0,$r6,$r10 | |
| fde: 80 29 mov55 $r1,$r9 | |
| fe0: 50 24 00 00 addi $r2,$r8,#0x0 | |
| fe4: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| fe8: 48 ff fc c6 j 0x974 | |
| fec: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| ff0: dd 9e ret5 $lp | |
| ff2: 92 00 nop16 | |
| ff4: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| ff8: ef f4 addi10.sp #-12 | |
| ffa: 54 80 80 ff andi $r8,$r1,#0xff | |
| ffe: 96 00 zeb33 $r0,$r0 | |
| 1000: 84 23 movi55 $r1,#0x3 | |
| 1002: 83 82 mov55 $fp,$r2 | |
| 1004: 4c 00 80 0a beq $r0,$r1,0x1018 | |
| 1008: 84 24 movi55 $r1,#0x4 | |
| 100a: 4c 00 80 13 beq $r0,$r1,0x1030 | |
| 100e: 84 22 movi55 $r1,#0x2 | |
| 1010: 4c 00 c0 35 bne $r0,$r1,0x107a | |
| 1014: 48 00 00 08 j 0x1024 | |
| 1018: 44 75 00 00 movi $r7,#0x50000 | |
| 101c: 44 60 30 9c movi $r6,#0x309c | |
| 1020: 48 00 00 0c j 0x1038 | |
| 1024: 44 73 00 00 movi $r7,#0x30000 | |
| 1028: 44 60 30 9c movi $r6,#0x309c | |
| 102c: 48 00 00 06 j 0x1038 | |
| 1030: 44 77 00 00 movi $r7,#0x70000 | |
| 1034: 44 60 30 9c movi $r6,#0x309c | |
| 1038: dd 26 jral5 $r6 | |
| 103a: c0 ff beqz38 $r0,0x1038 | |
| 103c: 44 00 fe 00 movi $r0,#0xfe00 | |
| 1040: 80 df mov55 $r6,$sp | |
| 1042: 40 a3 80 00 add $r10,$r7,$r0 | |
| 1046: 80 07 mov55 $r0,$r7 | |
| 1048: 80 26 mov55 $r1,$r6 | |
| 104a: 84 48 movi55 $r2,#0x8 | |
| 104c: 49 ff fc 94 jal 0x974 | |
| 1050: a4 30 lhi333 $r0,[$r6+#0x0] | |
| 1052: 44 10 55 aa movi $r1,#0x55aa | |
| 1056: 4c 00 c0 12 bne $r0,$r1,0x107a | |
| 105a: a6 35 lbi333 $r0,[$r6+#0x5] | |
| 105c: 4c 04 40 0a bne $r0,$r8,0x1070 | |
| 1060: 80 07 mov55 $r0,$r7 | |
| 1062: 80 3c mov55 $r1,$fp | |
| 1064: 44 20 02 00 movi $r2,#0x200 | |
| 1068: 49 ff fc 86 jal 0x974 | |
| 106c: 84 01 movi55 $r0,#0x1 | |
| 106e: d5 07 j8 0x107c | |
| 1070: 4c 75 00 05 beq $r7,$r10,0x107a | |
| 1074: 50 73 82 00 addi $r7,$r7,#0x200 | |
| 1078: d5 e7 j8 0x1046 | |
| 107a: 84 00 movi55 $r0,#0x0 | |
| 107c: ec 0c addi10.sp #0xc | |
| 107e: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 1082: dd 9e ret5 $lp | |
| ; ---------- 0x1084: func_1084(b1=$r0, addr=$r1, size=$r2, arg3=$r3 | |
| 1084: 3a 6f a8 bc smw.adm $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 1088: 97 00 zeb33 $r4,$r0 | |
| 108a: 84 02 movi55 $r0,#0x2 | |
| 108c: 81 01 mov55 $r8,$r1 | |
| 108e: 80 e2 mov55 $r7,$r2 | |
| 1090: 81 43 mov55 $r10,$r3 | |
| 1092: 4c 40 00 0f beq $r4,$r0,0x10b0 | |
| 1096: e6 83 slti45 $r4,#0x3 | |
| 1098: e8 05 beqzs8 0x10a2 | |
| 109a: 84 01 movi55 $r0,#0x1 | |
| 109c: 4c 40 40 30 bne $r4,$r0,0x10fc | |
| 10a0: d5 0c j8 0x10b8 | |
| 10a2: 84 03 movi55 $r0,#0x3 | |
| 10a4: 4c 40 00 0e beq $r4,$r0,0x10c0 | |
| 10a8: 84 04 movi55 $r0,#0x4 | |
| 10aa: 4c 40 40 29 bne $r4,$r0,0x10fc | |
| 10ae: d5 0d j8 0x10c8 | |
| 10b0: 44 92 a0 00 movi $r9,#0x2a000 | |
| 10b4: 48 00 00 0c j 0x10cc | |
| 10b8: 44 90 a0 00 movi $r9,#0xa000 | |
| 10bc: 48 00 00 08 j 0x10cc | |
| 10c0: 44 94 a0 00 movi $r9,#0x4a000 | |
| 10c4: 48 00 00 04 j 0x10cc | |
| 10c8: 44 96 a0 00 movi $r9,#0x6a000 | |
| 10cc: 44 10 00 ff movi $r1,#0xff | |
| 10d0: 80 08 mov55 $r0,$r8 | |
| 10d2: 80 47 mov55 $r2,$r7 | |
| 10d4: 49 00 47 f2 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 10d8: 46 f0 01 00 sethi $r15,#0x100 | |
| 10dc: 2e 17 ff dc lbi.gp $r1,[+#-36] | |
| 10e0: 4e 12 00 0e beqz $r1,0x10fc | |
| 10e4: 49 ff fa dc jal 0x69c | |
| 10e8: c0 fe beqz38 $r0,0x10e4 | |
| 10ea: 40 04 a8 00 add $r0,$r9,$r10 | |
| 10ee: 80 28 mov55 $r1,$r8 | |
| 10f0: 50 23 80 00 addi $r2,$r7,#0x0 | |
| 10f4: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 10f8: 48 ff fc 3e j 0x974 | |
| 10fc: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 1100: dd 9e ret5 $lp | |
| 1102: 92 00 nop16 | |
| 1104: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 1108: ef dc addi10.sp #-36 | |
| 110a: 83 80 mov55 $fp,$r0 | |
| 110c: 81 21 mov55 $r9,$r1 | |
| 110e: 85 00 movi55 $r8,#0x0 | |
| 1110: 44 70 00 20 movi $r7,#0x20 | |
| 1114: 50 6f 80 00 addi $r6,$sp,#0x0 | |
| 1118: 50 14 00 20 addi $r1,$r8,#0x20 | |
| 111c: e3 21 slt45 $r9,$r1 | |
| 111e: e8 05 beqzs8 0x1128 | |
| 1120: 40 74 a0 01 sub $r7,$r9,$r8 | |
| 1124: 54 73 80 ff andi $r7,$r7,#0xff | |
| 1128: 40 04 70 00 add $r0,$r8,$fp | |
| 112c: 80 3f mov55 $r1,$sp | |
| 112e: 80 47 mov55 $r2,$r7 | |
| 1130: 49 ff fc 22 jal 0x974 | |
| 1134: c7 15 beqz38 $r7,0x115e | |
| 1136: a6 70 lbi333 $r1,[$r6+#0x0] | |
| 1138: 44 00 00 ff movi $r0,#0xff | |
| 113c: 4c 10 40 0c bne $r1,$r0,0x1154 | |
| 1140: 84 60 movi55 $r3,#0x0 | |
| 1142: d5 05 j8 0x114c | |
| 1144: 38 23 0c 00 lb $r2,[$r6+($r3<<#0x0)] | |
| 1148: 4c 20 40 06 bne $r2,$r0,0x1154 | |
| 114c: 9c d9 addi333 $r3,$r3,#0x1 | |
| 114e: e2 67 slt45 $r3,$r7 | |
| 1150: e9 fa bnezs8 0x1144 | |
| 1152: d5 06 j8 0x115e | |
| 1154: 84 00 movi55 $r0,#0x0 | |
| 1156: ec 24 addi10.sp #0x24 | |
| 1158: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 115c: dd 9e ret5 $lp | |
| 115e: 89 07 add45 $r8,$r7 | |
| 1160: 4c 84 ff dc bne $r8,$r9,0x1118 | |
| 1164: 84 01 movi55 $r0,#0x1 | |
| 1166: d5 f8 j8 0x1156 | |
| ; ---------- 0x1168: func_1168(byte1=$r0, addr=$r1, size=$r2, arg3=$r3) | |
| 1168: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 116c: ef fc addi10.sp #-4 | |
| 116e: 97 80 zeb33 $r6,$r0 | |
| 1170: 81 41 mov55 $r10,$r1 | |
| 1172: 81 02 mov55 $r8,$r2 | |
| 1174: 45 c0 ca a4 movi $fp,#0xcaa4 | |
| 1178: 3e 08 11 48 addi.gp $r0,#0x1148 | |
| 117c: 44 10 d9 c0 movi $r1,#0xd9c0 | |
| 1180: 44 20 01 e0 movi $r2,#0x1e0 | |
| 1184: 81 23 mov55 $r9,$r3 | |
| 1186: dd 3c jral5 $fp | |
| 1188: 84 03 movi55 $r0,#0x3 | |
| 118a: 4c 60 00 09 beq $r6,$r0,0x119c | |
| 118e: 84 24 movi55 $r1,#0x4 | |
| 1190: 4c 60 80 12 beq $r6,$r1,0x11b4 | |
| 1194: 84 02 movi55 $r0,#0x2 | |
| 1196: 4c 60 40 49 bne $r6,$r0,0x1228 | |
| 119a: d5 07 j8 0x11a8 | |
| 119c: 44 74 30 00 movi $r7,#0x43000 | |
| 11a0: 44 60 30 9c movi $r6,#0x309c | |
| 11a4: 48 00 00 0c j 0x11bc | |
| 11a8: 44 72 30 00 movi $r7,#0x23000 | |
| 11ac: 44 60 30 9c movi $r6,#0x309c | |
| 11b0: 48 00 00 06 j 0x11bc | |
| 11b4: 44 76 30 00 movi $r7,#0x63000 | |
| 11b8: 44 60 30 9c movi $r6,#0x309c | |
| 11bc: 4b e0 18 01 jral $lp,$r6 | |
| 11c0: c0 fe beqz38 $r0,0x11bc | |
| 11c2: 88 e9 add45 $r7,$r9 | |
| 11c4: 80 07 mov55 $r0,$r7 | |
| 11c6: 80 28 mov55 $r1,$r8 | |
| 11c8: 49 ff ff 9e jal 0x1104 | |
| 11cc: c8 2e bnez38 $r0,0x1228 | |
| 11ce: 80 07 mov55 $r0,$r7 | |
| 11d0: 80 48 mov55 $r2,$r8 | |
| 11d2: 80 2a mov55 $r1,$r10 | |
| 11d4: 49 ff fb d0 jal 0x974 | |
| 11d8: 44 90 d9 c0 movi $r9,#0xd9c0 | |
| 11dc: d5 22 j8 0x1220 | |
| 11de: a6 30 lbi333 $r0,[$r6+#0x0] | |
| 11e0: 44 10 00 ff movi $r1,#0xff | |
| 11e4: 4c 00 c0 0f bne $r0,$r1,0x1202 | |
| 11e8: a6 b1 lbi333 $r2,[$r6+#0x1] | |
| 11ea: 4c 20 40 0c bne $r2,$r0,0x1202 | |
| 11ee: a6 32 lbi333 $r0,[$r6+#0x2] | |
| 11f0: 4c 01 40 09 bne $r0,$r2,0x1202 | |
| 11f4: a6 73 lbi333 $r1,[$r6+#0x3] | |
| 11f6: 4c 10 40 06 bne $r1,$r0,0x1202 | |
| 11fa: 80 06 mov55 $r0,$r6 | |
| 11fc: 80 28 mov55 $r1,$r8 | |
| 11fe: 84 44 movi55 $r2,#0x4 | |
| 1200: dd 3c jral5 $fp | |
| 1202: 9d f9 addi333 $r7,$r7,#0x1 | |
| 1204: 97 f9 zeh33 $r7,$r7 | |
| 1206: 84 08 movi55 $r0,#0x8 | |
| 1208: 9d b4 addi333 $r6,$r6,#0x4 | |
| 120a: 8d 04 addi45 $r8,#0x4 | |
| 120c: 4c 70 7f e9 bne $r7,$r0,0x11de | |
| 1210: 50 94 80 20 addi $r9,$r9,#0x20 | |
| 1214: 44 10 db a0 movi $r1,#0xdba0 | |
| 1218: 50 a5 00 20 addi $r10,$r10,#0x20 | |
| 121c: 4c 90 80 06 beq $r9,$r1,0x1228 | |
| 1220: 81 09 mov55 $r8,$r9 | |
| 1222: 80 ca mov55 $r6,$r10 | |
| 1224: 84 e0 movi55 $r7,#0x0 | |
| 1226: d5 dc j8 0x11de | |
| 1228: ec 04 addi10.sp #0x4 | |
| 122a: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 122e: dd 9e ret5 $lp | |
| ; ---------- 0x1230: func_1230(byte arg1=$r0, void *addr=$r1, size=$r2, arg3=$r3) | |
| 1230: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 1234: ef fc addi10.sp #-4 | |
| 1236: 81 41 mov55 $r10,$r1 | |
| 1238: 96 00 zeb33 $r0,$r0 | |
| 123a: 84 22 movi55 $r1,#0x2 | |
| 123c: 81 02 mov55 $r8,$r2 | |
| 123e: 81 23 mov55 $r9,$r3 | |
| 1240: 4c 00 80 10 beq $r0,$r1,0x1260 | |
| 1244: e6 03 slti45 $r0,#0x3 | |
| 1246: e8 05 beqzs8 0x1250 | |
| 1248: 84 21 movi55 $r1,#0x1 | |
| 124a: 4c 00 c0 5b bne $r0,$r1,0x1300 | |
| 124e: d5 0f j8 0x126c | |
| 1250: 84 23 movi55 $r1,#0x3 | |
| 1252: 4c 00 80 13 beq $r0,$r1,0x1278 | |
| 1256: 84 24 movi55 $r1,#0x4 | |
| 1258: 4c 00 c0 54 bne $r0,$r1,0x1300 | |
| 125c: 48 00 00 14 j 0x1284 | |
| 1260: 44 72 20 00 movi $r7,#0x22000 | |
| 1264: 44 60 30 9c movi $r6,#0x309c | |
| 1268: 48 00 00 12 j 0x128c | |
| 126c: 44 70 40 00 movi $r7,#0x4000 | |
| 1270: 44 60 30 9c movi $r6,#0x309c | |
| 1274: 48 00 00 0c j 0x128c | |
| 1278: 44 74 20 00 movi $r7,#0x42000 | |
| 127c: 44 60 30 9c movi $r6,#0x309c | |
| 1280: 48 00 00 06 j 0x128c | |
| 1284: 44 76 20 00 movi $r7,#0x62000 | |
| 1288: 44 60 30 9c movi $r6,#0x309c | |
| 128c: 4b e0 18 01 jral $lp,$r6 ; jump to 0x309c | |
| 1290: c0 fe beqz38 $r0,0x128c | |
| 1292: 88 e9 add45 $r7,$r9 | |
| 1294: 80 07 mov55 $r0,$r7 | |
| 1296: 80 28 mov55 $r1,$r8 | |
| 1298: 49 ff ff 36 jal 0x1104 | |
| 129c: c8 32 bnez38 $r0,0x1300 | |
| 129e: 80 07 mov55 $r0,$r7 | |
| 12a0: 80 48 mov55 $r2,$r8 | |
| 12a2: 80 2a mov55 $r1,$r10 | |
| 12a4: 47 c0 00 0c sethi $fp,#0xc | |
| 12a8: 49 ff fb 66 jal 0x974 | |
| 12ac: 44 90 d7 e0 movi $r9,#0xd7e0 | |
| 12b0: 45 c0 ca a4 movi $fp,#0xcaa4 | |
| 12b4: d5 22 j8 0x12f8 | |
| 12b6: a6 30 lbi333 $r0,[$r6+#0x0] | |
| 12b8: 44 10 00 ff movi $r1,#0xff | |
| 12bc: 4c 00 c0 0f bne $r0,$r1,0x12da | |
| 12c0: a6 b1 lbi333 $r2,[$r6+#0x1] | |
| 12c2: 4c 20 40 0c bne $r2,$r0,0x12da | |
| 12c6: a6 32 lbi333 $r0,[$r6+#0x2] | |
| 12c8: 4c 01 40 09 bne $r0,$r2,0x12da | |
| 12cc: a6 73 lbi333 $r1,[$r6+#0x3] | |
| 12ce: 4c 10 40 06 bne $r1,$r0,0x12da | |
| 12d2: 80 06 mov55 $r0,$r6 | |
| 12d4: 80 28 mov55 $r1,$r8 | |
| 12d6: 84 44 movi55 $r2,#0x4 | |
| 12d8: dd 3c jral5 $fp | |
| 12da: 9d f9 addi333 $r7,$r7,#0x1 | |
| 12dc: 97 f9 zeh33 $r7,$r7 | |
| 12de: 84 08 movi55 $r0,#0x8 | |
| 12e0: 9d b4 addi333 $r6,$r6,#0x4 | |
| 12e2: 8d 04 addi45 $r8,#0x4 | |
| 12e4: 4c 70 7f e9 bne $r7,$r0,0x12b6 | |
| 12e8: 50 94 80 20 addi $r9,$r9,#0x20 | |
| 12ec: 44 10 d9 c0 movi $r1,#0xd9c0 | |
| 12f0: 50 a5 00 20 addi $r10,$r10,#0x20 | |
| 12f4: 4c 90 80 06 beq $r9,$r1,0x1300 | |
| 12f8: 81 09 mov55 $r8,$r9 | |
| 12fa: 80 ca mov55 $r6,$r10 | |
| 12fc: 84 e0 movi55 $r7,#0x0 | |
| 12fe: d5 dc j8 0x12b6 | |
| 1300: ec 04 addi10.sp #0x4 | |
| 1302: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 1306: dd 9e ret5 $lp | |
| 1308: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 130c: ef ec addi10.sp #-20 | |
| 130e: 47 c0 01 00 sethi $fp,#0x100 | |
| 1312: 84 1f movi55 $r0,#-1 | |
| 1314: 3c 0b ff eb shi.gp $r0,[+#-42] | |
| 1318: 49 ff f9 c2 jal 0x69c | |
| 131c: c0 fe beqz38 $r0,0x1318 | |
| 131e: 85 00 movi55 $r8,#0x0 | |
| 1320: 84 1f movi55 $r0,#-1 | |
| 1322: f0 81 swi37.sp $r0,[+#0x4] | |
| 1324: 50 6f 80 08 addi $r6,$sp,#0x8 | |
| 1328: 80 e8 mov55 $r7,$r8 | |
| 132a: d5 03 j8 0x1330 | |
| 132c: 50 80 00 00 addi $r8,$r0,#0x0 | |
| 1330: 44 11 80 00 movi $r1,#0x18000 | |
| 1334: 98 39 add333 $r0,$r7,$r1 | |
| 1336: 84 48 movi55 $r2,#0x8 | |
| 1338: 50 13 00 00 addi $r1,$r6,#0x0 | |
| 133c: 49 ff fb 1c jal 0x974 | |
| 1340: 44 20 80 00 movi $r2,#0x8000 | |
| 1344: 4c 71 40 57 bne $r7,$r2,0x13f2 | |
| 1348: 3c 03 ff eb lhi.gp $r0,[+#-42] | |
| 134c: 44 30 ff ff movi $r3,#0xffff | |
| 1350: 4c 01 c0 24 bne $r0,$r3,0x1398 | |
| 1354: 44 40 7e 00 movi $r4,#0x7e00 | |
| 1358: 3e 08 06 60 addi.gp $r0,#0x660 | |
| 135c: 84 20 movi55 $r1,#0x0 | |
| 135e: 44 20 00 80 movi $r2,#0x80 | |
| 1362: 3c 4b ff eb shi.gp $r4,[+#-42] | |
| 1366: 84 c0 movi55 $r6,#0x0 | |
| 1368: 49 00 46 a8 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 136c: 49 ff f9 98 jal 0x69c | |
| 1370: c0 fe beqz38 $r0,0x136c | |
| 1372: 44 11 80 00 movi $r1,#0x18000 | |
| 1376: 98 31 add333 $r0,$r6,$r1 | |
| 1378: 50 63 10 00 addi $r6,$r6,#0x1000 | |
| 137c: 49 ff fc 48 jal 0xc0c | |
| 1380: 97 b1 zeh33 $r6,$r6 | |
| 1382: 44 20 80 00 movi $r2,#0x8000 | |
| 1386: 4c 61 7f f3 bne $r6,$r2,0x136c | |
| 138a: 46 00 01 00 sethi $r0,#0x100 | |
| 138e: 84 21 movi55 $r1,#0x1 | |
| 1390: 3e 17 ff e1 sbi.gp $r1,[+#-31] | |
| 1394: 48 00 00 43 j 0x141a | |
| 1398: 44 31 80 00 movi $r3,#0x18000 | |
| 139c: 98 03 add333 $r0,$r0,$r3 | |
| 139e: 80 26 mov55 $r1,$r6 | |
| 13a0: 44 20 00 08 movi $r2,#0x8 | |
| 13a4: 49 ff fa e8 jal 0x974 | |
| 13a8: 3c 03 ff eb lhi.gp $r0,[+#-42] | |
| 13ac: 44 21 80 08 movi $r2,#0x18008 | |
| 13b0: 98 02 add333 $r0,$r0,$r2 | |
| 13b2: 3e 18 06 60 addi.gp $r1,#0x660 | |
| 13b6: 44 20 00 78 movi $r2,#0x78 | |
| 13ba: 49 ff fa dd jal 0x974 | |
| 13be: 3e 18 06 60 addi.gp $r1,#0x660 | |
| 13c2: 44 00 ff ff movi $r0,#0xffff | |
| 13c6: 44 20 00 78 movi $r2,#0x78 | |
| 13ca: 49 ff f8 7b jal 0x4c0 ; crc16(int iv=$r0, void *src=$r1, int length=$r2) -> (short)$r0 | |
| 13ce: a4 71 lhi333 $r1,[$r6+#0x2] | |
| 13d0: 4c 10 40 08 bne $r1,$r0,0x13e0 | |
| 13d4: a1 b1 lwi333 $r6,[$r6+#0x4] | |
| 13d6: 46 00 01 00 sethi $r0,#0x100 | |
| 13da: 3c 6f ff de swi.gp $r6,[+#-136] | |
| 13de: d5 1e j8 0x141a | |
| 13e0: 84 e0 movi55 $r7,#0x0 | |
| 13e2: 84 3f movi55 $r1,#-1 | |
| 13e4: 3c 1b ff eb shi.gp $r1,[+#-42] | |
| 13e8: 14 8f 80 01 swi $r8,[$sp+#0x4] | |
| 13ec: 80 07 mov55 $r0,$r7 | |
| 13ee: 48 ff ff 9f j 0x132c | |
| 13f2: a4 30 lhi333 $r0,[$r6+#0x0] | |
| 13f4: 44 20 55 aa movi $r2,#0x55aa | |
| 13f8: 4c 01 40 0b bne $r0,$r2,0x140e | |
| 13fc: a0 31 lwi333 $r0,[$r6+#0x4] | |
| 13fe: e3 00 slt45 $r8,$r0 | |
| 1400: e8 07 beqzs8 0x140e | |
| 1402: f3 01 lwi37.sp $r3,[+#0x4] | |
| 1404: e2 03 slt45 $r0,$r3 | |
| 1406: e8 04 beqzs8 0x140e | |
| 1408: 3c 7b ff eb shi.gp $r7,[+#-42] | |
| 140c: d5 02 j8 0x1410 | |
| 140e: 80 08 mov55 $r0,$r8 | |
| 1410: 50 73 82 00 addi $r7,$r7,#0x200 | |
| 1414: 97 f9 zeh33 $r7,$r7 | |
| 1416: 48 ff ff 8b j 0x132c | |
| 141a: ec 14 addi10.sp #0x14 | |
| 141c: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 1420: dd 9e ret5 $lp | |
| 1422: 92 00 nop16 | |
| 1424: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 1428: ef ec addi10.sp #-20 | |
| 142a: 47 c0 01 00 sethi $fp,#0x100 | |
| 142e: 84 1f movi55 $r0,#-1 | |
| 1430: 3c 0b ff ea shi.gp $r0,[+#-44] | |
| 1434: 49 ff f9 34 jal 0x69c | |
| 1438: c0 fe beqz38 $r0,0x1434 | |
| 143a: 85 00 movi55 $r8,#0x0 | |
| 143c: 84 1f movi55 $r0,#-1 | |
| 143e: f0 81 swi37.sp $r0,[+#0x4] | |
| 1440: 50 6f 80 08 addi $r6,$sp,#0x8 | |
| 1444: 80 e8 mov55 $r7,$r8 | |
| 1446: d5 03 j8 0x144c | |
| 1448: 50 80 00 00 addi $r8,$r0,#0x0 | |
| 144c: 44 11 00 00 movi $r1,#0x10000 | |
| 1450: 98 39 add333 $r0,$r7,$r1 | |
| 1452: 84 48 movi55 $r2,#0x8 | |
| 1454: 50 13 00 00 addi $r1,$r6,#0x0 | |
| 1458: 49 ff fa 8e jal 0x974 | |
| 145c: 44 20 80 00 movi $r2,#0x8000 | |
| 1460: 4c 71 40 54 bne $r7,$r2,0x1508 | |
| 1464: 3c 03 ff ea lhi.gp $r0,[+#-44] | |
| 1468: 44 30 ff ff movi $r3,#0xffff | |
| 146c: 4c 01 c0 23 bne $r0,$r3,0x14b2 | |
| 1470: 44 40 7e 00 movi $r4,#0x7e00 | |
| 1474: 3e 08 15 2c addi.gp $r0,#0x152c | |
| 1478: 84 20 movi55 $r1,#0x0 | |
| 147a: 44 20 02 00 movi $r2,#0x200 | |
| 147e: 3c 4b ff ea shi.gp $r4,[+#-44] | |
| 1482: 84 c0 movi55 $r6,#0x0 | |
| 1484: 49 00 46 1a jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 1488: 49 ff f9 0a jal 0x69c | |
| 148c: c0 fe beqz38 $r0,0x1488 | |
| 148e: 44 11 00 00 movi $r1,#0x10000 | |
| 1492: 98 31 add333 $r0,$r6,$r1 | |
| 1494: 50 63 10 00 addi $r6,$r6,#0x1000 | |
| 1498: 49 ff fb ba jal 0xc0c | |
| 149c: 97 b1 zeh33 $r6,$r6 | |
| 149e: 44 20 80 00 movi $r2,#0x8000 | |
| 14a2: 4c 61 7f f3 bne $r6,$r2,0x1488 | |
| 14a6: 46 00 01 00 sethi $r0,#0x100 | |
| 14aa: 84 21 movi55 $r1,#0x1 | |
| 14ac: 3e 17 ff e0 sbi.gp $r1,[+#-32] | |
| 14b0: d5 41 j8 0x1532 | |
| 14b2: 94 d1 slli333 $r3,$r2,#0x1 | |
| 14b4: 98 03 add333 $r0,$r0,$r3 | |
| 14b6: 80 26 mov55 $r1,$r6 | |
| 14b8: 44 20 00 08 movi $r2,#0x8 | |
| 14bc: 49 ff fa 5c jal 0x974 | |
| 14c0: 3c 03 ff ea lhi.gp $r0,[+#-44] | |
| 14c4: 44 21 00 08 movi $r2,#0x10008 | |
| 14c8: 98 02 add333 $r0,$r0,$r2 | |
| 14ca: 3e 18 15 2c addi.gp $r1,#0x152c | |
| 14ce: 44 20 01 f8 movi $r2,#0x1f8 | |
| 14d2: 49 ff fa 51 jal 0x974 | |
| 14d6: 3e 18 15 2c addi.gp $r1,#0x152c | |
| 14da: 44 00 ff ff movi $r0,#0xffff | |
| 14de: 44 20 01 f8 movi $r2,#0x1f8 | |
| 14e2: 49 ff f7 ef jal 0x4c0 ; crc16(int iv=$r0, void *src=$r1, int length=$r2) -> (short)$r0 | |
| 14e6: a4 71 lhi333 $r1,[$r6+#0x2] | |
| 14e8: 4c 10 40 08 bne $r1,$r0,0x14f8 | |
| 14ec: a1 b1 lwi333 $r6,[$r6+#0x4] | |
| 14ee: 46 00 01 00 sethi $r0,#0x100 | |
| 14f2: 3c 6f ff dd swi.gp $r6,[+#-140] | |
| 14f6: d5 1e j8 0x1532 | |
| 14f8: 84 e0 movi55 $r7,#0x0 | |
| 14fa: 84 3f movi55 $r1,#-1 | |
| 14fc: 3c 1b ff ea shi.gp $r1,[+#-44] | |
| 1500: 14 8f 80 01 swi $r8,[$sp+#0x4] | |
| 1504: 80 07 mov55 $r0,$r7 | |
| 1506: d5 a1 j8 0x1448 | |
| 1508: a4 30 lhi333 $r0,[$r6+#0x0] | |
| 150a: 44 20 55 aa movi $r2,#0x55aa | |
| 150e: 4c 01 40 0b bne $r0,$r2,0x1524 | |
| 1512: a0 31 lwi333 $r0,[$r6+#0x4] | |
| 1514: e3 00 slt45 $r8,$r0 | |
| 1516: e8 07 beqzs8 0x1524 | |
| 1518: f3 01 lwi37.sp $r3,[+#0x4] | |
| 151a: e2 03 slt45 $r0,$r3 | |
| 151c: e8 04 beqzs8 0x1524 | |
| 151e: 3c 7b ff ea shi.gp $r7,[+#-44] | |
| 1522: d5 03 j8 0x1528 | |
| 1524: 50 04 00 00 addi $r0,$r8,#0x0 | |
| 1528: 50 73 82 00 addi $r7,$r7,#0x200 | |
| 152c: 97 f9 zeh33 $r7,$r7 | |
| 152e: 48 ff ff 8d j 0x1448 | |
| 1532: ec 14 addi10.sp #0x14 | |
| 1534: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 1538: dd 9e ret5 $lp | |
| 153a: 92 00 nop16 | |
| 153c: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 1540: ef fc addi10.sp #-4 | |
| 1542: 84 22 movi55 $r1,#0x2 | |
| 1544: 96 00 zeb33 $r0,$r0 | |
| 1546: 4c 00 80 13 beq $r0,$r1,0x156c | |
| 154a: e6 03 slti45 $r0,#0x3 | |
| 154c: e8 05 beqzs8 0x1556 | |
| 154e: 84 21 movi55 $r1,#0x1 | |
| 1550: 4c 00 c0 0a bne $r0,$r1,0x1564 | |
| 1554: d5 10 j8 0x1574 | |
| 1556: 84 23 movi55 $r1,#0x3 | |
| 1558: 4c 00 80 12 beq $r0,$r1,0x157c | |
| 155c: 44 10 00 04 movi $r1,#0x4 | |
| 1560: 4c 00 80 12 beq $r0,$r1,0x1584 | |
| 1564: 44 00 00 f0 movi $r0,#0xf0 | |
| 1568: 48 00 00 1d j 0x15a2 | |
| 156c: 44 72 a0 00 movi $r7,#0x2a000 | |
| 1570: 48 00 00 0c j 0x1588 | |
| 1574: 44 70 a0 00 movi $r7,#0xa000 | |
| 1578: 48 00 00 08 j 0x1588 | |
| 157c: 44 74 a0 00 movi $r7,#0x4a000 | |
| 1580: 48 00 00 04 j 0x1588 | |
| 1584: 44 76 a0 00 movi $r7,#0x6a000 | |
| 1588: 2e 07 ff dc lbi.gp $r0,[+#-36] | |
| 158c: c0 02 beqz38 $r0,0x1590 | |
| 158e: d5 03 j8 0x1594 | |
| 1590: 84 04 movi55 $r0,#0x4 | |
| 1592: d5 08 j8 0x15a2 | |
| 1594: 49 ff f8 84 jal 0x69c | |
| 1598: c0 fe beqz38 $r0,0x1594 | |
| 159a: 80 07 mov55 $r0,$r7 | |
| 159c: 49 ff fb 38 jal 0xc0c | |
| 15a0: 84 00 movi55 $r0,#0x0 | |
| 15a2: ec 04 addi10.sp #0x4 | |
| 15a4: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 15a8: dd 9e ret5 $lp | |
| 15aa: 92 00 nop16 | |
| ; ---------- 0x15ac: val_handler(val=$r0) | |
| 15ac: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 15b0: 84 23 movi55 $r1,#0x3 | |
| 15b2: 96 00 zeb33 $r0,$r0 | |
| 15b4: 4c 00 80 0c beq $r0,$r1,0x15cc ; if $r0 == 3.. | |
| 15b8: 84 24 movi55 $r1,#0x4 | |
| 15ba: 4c 00 80 11 beq $r0,$r1,0x15dc ; if $r0 == 4.. | |
| 15be: 84 22 movi55 $r1,#0x2 | |
| 15c0: 4c 00 80 0a beq $r0,$r1,0x15d4 ; if $r0 == 2.. | |
| 15c4: 44 00 00 f0 movi $r0,#0xf0 ; else: rv = 0xf0 | |
| 15c8: 48 00 00 16 j 0x15f4 ; goto out | |
| 15cc: 44 64 30 00 movi $r6,#0x43000 ; 3) $r6 = 0x43000 ;; | |
| 15d0: 48 00 00 08 j 0x15e0 | |
| 15d4: 44 62 30 00 movi $r6,#0x23000 ; 2) $r6 = 0x23000 ;; | |
| 15d8: 48 00 00 04 j 0x15e0 | |
| 15dc: 44 66 30 00 movi $r6,#0x63000 ; 4) $r6 = 0630000 ;; | |
| 15e0: 49 ff f8 5e jal 0x69c | |
| 15e4: c8 03 bnez38 $r0,0x15ea | |
| 15e6: 84 01 movi55 $r0,#0x1 | |
| 15e8: d5 06 j8 0x15f4 | |
| 15ea: 80 06 mov55 $r0,$r6 | |
| 15ec: 49 ff fb 10 jal 0xc0c | |
| 15f0: 44 00 00 00 movi $r0,#0x0 | |
| 15f4: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 15f8: dd 9e ret5 $lp | |
| 15fa: 92 00 nop16 | |
| 15fc: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 1600: 84 22 movi55 $r1,#0x2 | |
| 1602: 96 00 zeb33 $r0,$r0 | |
| 1604: 4c 00 80 12 beq $r0,$r1,0x1628 | |
| 1608: e6 03 slti45 $r0,#0x3 | |
| 160a: e8 05 beqzs8 0x1614 | |
| 160c: 84 21 movi55 $r1,#0x1 | |
| 160e: 4c 00 c0 09 bne $r0,$r1,0x1620 | |
| 1612: d5 0f j8 0x1630 | |
| 1614: 84 23 movi55 $r1,#0x3 | |
| 1616: 4c 00 80 11 beq $r0,$r1,0x1638 | |
| 161a: 84 24 movi55 $r1,#0x4 | |
| 161c: 4c 00 80 12 beq $r0,$r1,0x1640 | |
| 1620: 44 00 00 f0 movi $r0,#0xf0 | |
| 1624: 48 00 00 1a j 0x1658 | |
| 1628: 44 62 20 00 movi $r6,#0x22000 | |
| 162c: 48 00 00 0c j 0x1644 | |
| 1630: 44 60 40 00 movi $r6,#0x4000 | |
| 1634: 48 00 00 08 j 0x1644 | |
| 1638: 44 64 20 00 movi $r6,#0x42000 | |
| 163c: 48 00 00 04 j 0x1644 | |
| 1640: 44 66 20 00 movi $r6,#0x62000 | |
| 1644: 49 ff f8 2c jal 0x69c | |
| 1648: c8 03 bnez38 $r0,0x164e | |
| 164a: 84 01 movi55 $r0,#0x1 | |
| 164c: d5 06 j8 0x1658 | |
| 164e: 80 06 mov55 $r0,$r6 | |
| 1650: 49 ff fa de jal 0xc0c | |
| 1654: 44 00 00 00 movi $r0,#0x0 | |
| 1658: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 165c: dd 9e ret5 $lp | |
| 165e: 92 00 nop16 | |
| 1660: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 1664: 84 23 movi55 $r1,#0x3 | |
| 1666: 96 00 zeb33 $r0,$r0 | |
| 1668: 4c 00 80 0c beq $r0,$r1,0x1680 | |
| 166c: 84 24 movi55 $r1,#0x4 | |
| 166e: 4c 00 80 11 beq $r0,$r1,0x1690 | |
| 1672: 84 22 movi55 $r1,#0x2 | |
| 1674: 4c 00 80 0a beq $r0,$r1,0x1688 | |
| 1678: 44 00 00 f0 movi $r0,#0xf0 | |
| 167c: 48 00 00 16 j 0x16a8 | |
| 1680: 44 64 10 00 movi $r6,#0x41000 | |
| 1684: 48 00 00 08 j 0x1694 | |
| 1688: 44 62 10 00 movi $r6,#0x21000 | |
| 168c: 48 00 00 04 j 0x1694 | |
| 1690: 44 66 10 00 movi $r6,#0x61000 | |
| 1694: 49 ff f8 04 jal 0x69c | |
| 1698: c8 03 bnez38 $r0,0x169e | |
| 169a: 84 01 movi55 $r0,#0x1 | |
| 169c: d5 06 j8 0x16a8 | |
| 169e: 80 06 mov55 $r0,$r6 | |
| 16a0: 49 ff fa b6 jal 0xc0c | |
| 16a4: 44 00 00 00 movi $r0,#0x0 | |
| 16a8: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 16ac: dd 9e ret5 $lp | |
| 16ae: 92 00 nop16 | |
| 16b0: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 16b4: 84 22 movi55 $r1,#0x2 | |
| 16b6: 96 00 zeb33 $r0,$r0 | |
| 16b8: 4c 00 80 12 beq $r0,$r1,0x16dc | |
| 16bc: e6 03 slti45 $r0,#0x3 | |
| 16be: e8 05 beqzs8 0x16c8 | |
| 16c0: 84 21 movi55 $r1,#0x1 | |
| 16c2: 4c 00 c0 09 bne $r0,$r1,0x16d4 | |
| 16c6: d5 0f j8 0x16e4 | |
| 16c8: 84 23 movi55 $r1,#0x3 | |
| 16ca: 4c 00 80 0f beq $r0,$r1,0x16e8 | |
| 16ce: 84 24 movi55 $r1,#0x4 | |
| 16d0: 4c 00 80 10 beq $r0,$r1,0x16f0 | |
| 16d4: 44 00 00 f0 movi $r0,#0xf0 | |
| 16d8: 48 00 00 18 j 0x1708 ; goto out | |
| 16dc: 44 62 00 00 movi $r6,#0x20000 | |
| 16e0: 48 00 00 0a j 0x16f4 | |
| 16e4: 84 c0 movi55 $r6,#0x0 | |
| 16e6: d5 07 j8 0x16f4 | |
| 16e8: 44 64 00 00 movi $r6,#0x40000 | |
| 16ec: 48 00 00 04 j 0x16f4 | |
| 16f0: 44 66 00 00 movi $r6,#0x60000 | |
| 16f4: 49 ff f7 d4 jal 0x69c | |
| 16f8: c8 03 bnez38 $r0,0x16fe | |
| 16fa: 84 01 movi55 $r0,#0x1 | |
| 16fc: d5 06 j8 0x1708 | |
| 16fe: 80 06 mov55 $r0,$r6 | |
| 1700: 49 ff fa 86 jal 0xc0c | |
| 1704: 44 00 00 00 movi $r0,#0x0 | |
| 1708: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 170c: dd 9e ret5 $lp | |
| 170e: 92 00 nop16 | |
| ; ---------- 0x1710: looks like a dispatch table / command handler | |
| 1710: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 1714: 84 02 movi55 $r0,#0x2 | |
| 1716: 49 ff fc 07 jal 0xf24 | |
| 171a: 84 21 movi55 $r1,#0x1 | |
| 171c: 4c 00 bf fc beq $r0,$r1,0x1714 | |
| 1720: 84 03 movi55 $r0,#0x3 | |
| 1722: 49 ff fc 01 jal 0xf24 | |
| 1726: 84 21 movi55 $r1,#0x1 | |
| 1728: 4c 00 bf fc beq $r0,$r1,0x1720 | |
| 172c: 84 04 movi55 $r0,#0x4 | |
| 172e: 49 ff fb fb jal 0xf24 | |
| 1732: 84 21 movi55 $r1,#0x1 | |
| 1734: 4c 00 bf fc beq $r0,$r1,0x172c | |
| 1738: 84 02 movi55 $r0,#0x2 | |
| 173a: 49 ff ff 93 jal 0x1660 | |
| 173e: 84 21 movi55 $r1,#0x1 | |
| 1740: 4c 00 bf fc beq $r0,$r1,0x1738 | |
| 1744: 84 03 movi55 $r0,#0x3 | |
| 1746: 49 ff ff 8d jal 0x1660 | |
| 174a: 84 21 movi55 $r1,#0x1 | |
| 174c: 4c 00 bf fc beq $r0,$r1,0x1744 | |
| 1750: 84 04 movi55 $r0,#0x4 | |
| 1752: 49 ff ff 87 jal 0x1660 | |
| 1756: 84 21 movi55 $r1,#0x1 | |
| 1758: 4c 00 bf fc beq $r0,$r1,0x1750 | |
| 175c: 44 60 3f fc movi $r6,#0x3ffc | |
| 1760: 84 01 movi55 $r0,#0x1 | |
| 1762: dd 26 jral5 $r6 | |
| 1764: 84 21 movi55 $r1,#0x1 | |
| 1766: 4c 00 bf fd beq $r0,$r1,0x1760 | |
| 176a: 84 02 movi55 $r0,#0x2 | |
| 176c: dd 26 jral5 $r6 | |
| 176e: 84 21 movi55 $r1,#0x1 | |
| 1770: 4c 00 bf fd beq $r0,$r1,0x176a | |
| 1774: 84 03 movi55 $r0,#0x3 | |
| 1776: dd 26 jral5 $r6 | |
| 1778: 84 21 movi55 $r1,#0x1 | |
| 177a: 4c 00 bf fd beq $r0,$r1,0x1774 | |
| 177e: 84 04 movi55 $r0,#0x4 | |
| 1780: dd 26 jral5 $r6 | |
| 1782: 84 21 movi55 $r1,#0x1 | |
| 1784: 4c 00 bf fd beq $r0,$r1,0x177e | |
| 1788: 84 02 movi55 $r0,#0x2 | |
| 178a: 49 ff ff 11 jal 0x15ac | |
| 178e: 84 21 movi55 $r1,#0x1 | |
| 1790: 4c 00 bf fc beq $r0,$r1,0x1788 | |
| 1794: 84 03 movi55 $r0,#0x3 | |
| 1796: 49 ff ff 0b jal 0x15ac | |
| 179a: 84 21 movi55 $r1,#0x1 | |
| 179c: 4c 00 bf fc beq $r0,$r1,0x1794 | |
| 17a0: 84 04 movi55 $r0,#0x4 | |
| 17a2: 49 ff ff 05 jal 0x15ac | |
| 17a6: 84 21 movi55 $r1,#0x1 | |
| 17a8: 4c 00 bf fc beq $r0,$r1,0x17a0 | |
| 17ac: 44 60 40 b0 movi $r6,#0x40b0 | |
| 17b0: 84 01 movi55 $r0,#0x1 | |
| 17b2: dd 26 jral5 $r6 | |
| 17b4: 84 21 movi55 $r1,#0x1 | |
| 17b6: 4c 00 bf fd beq $r0,$r1,0x17b0 | |
| 17ba: 84 02 movi55 $r0,#0x2 | |
| 17bc: dd 26 jral5 $r6 | |
| 17be: 84 21 movi55 $r1,#0x1 | |
| 17c0: 4c 00 bf fd beq $r0,$r1,0x17ba | |
| 17c4: 84 03 movi55 $r0,#0x3 | |
| 17c6: dd 26 jral5 $r6 | |
| 17c8: 84 21 movi55 $r1,#0x1 | |
| 17ca: 4c 00 bf fd beq $r0,$r1,0x17c4 | |
| 17ce: 84 04 movi55 $r0,#0x4 | |
| 17d0: dd 26 jral5 $r6 | |
| 17d2: 84 21 movi55 $r1,#0x1 | |
| 17d4: 4c 00 bf fd beq $r0,$r1,0x17ce | |
| 17d8: 80 01 mov55 $r0,$r1 | |
| 17da: 44 60 3f 3c movi $r6,#0x3f3c | |
| 17de: dd 26 jral5 $r6 | |
| 17e0: 84 02 movi55 $r0,#0x2 | |
| 17e2: dd 26 jral5 $r6 | |
| 17e4: 84 03 movi55 $r0,#0x3 | |
| 17e6: dd 26 jral5 $r6 | |
| 17e8: 84 04 movi55 $r0,#0x4 | |
| 17ea: dd 26 jral5 $r6 | |
| 17ec: 84 01 movi55 $r0,#0x1 | |
| 17ee: 49 ff fb 43 jal 0xe74 | |
| 17f2: 84 02 movi55 $r0,#0x2 | |
| 17f4: 49 ff fb 40 jal 0xe74 | |
| 17f8: 84 03 movi55 $r0,#0x3 | |
| 17fa: 49 ff fb 3d jal 0xe74 | |
| 17fe: 84 04 movi55 $r0,#0x4 | |
| 1800: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 1804: 48 ff fb 38 j 0xe74 | |
| 1808: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 180c: ef dc addi10.sp #-36 | |
| 180e: 84 c0 movi55 $r6,#0x0 | |
| 1810: 50 1f 80 14 addi $r1,$sp,#0x14 | |
| 1814: b6 c1 swi450 $r6,[$r1] | |
| 1816: 50 1f 80 18 addi $r1,$sp,#0x18 | |
| 181a: b6 c1 swi450 $r6,[$r1] | |
| 181c: 51 cf 80 10 addi $fp,$sp,#0x10 | |
| 1820: 50 1f 80 1c addi $r1,$sp,#0x1c | |
| 1824: b6 c1 swi450 $r6,[$r1] | |
| 1826: b6 dc swi450 $r6,[$fp] | |
| 1828: 44 90 30 9c movi $r9,#0x309c | |
| 182c: 97 c0 zeb33 $r7,$r0 | |
| 182e: dd 29 jral5 $r9 | |
| 1830: c8 04 bnez38 $r0,0x1838 | |
| 1832: 84 01 movi55 $r0,#0x1 | |
| 1834: 48 00 00 b2 j 0x1998 | |
| 1838: 84 02 movi55 $r0,#0x2 | |
| 183a: 4c 70 00 13 beq $r7,$r0,0x1860 | |
| 183e: e6 e3 slti45 $r7,#0x3 | |
| 1840: e8 05 beqzs8 0x184a | |
| 1842: 84 21 movi55 $r1,#0x1 | |
| 1844: 4c 70 c0 0a bne $r7,$r1,0x1858 | |
| 1848: d5 13 j8 0x186e | |
| 184a: 84 63 movi55 $r3,#0x3 | |
| 184c: 4c 71 80 16 beq $r7,$r3,0x1878 | |
| 1850: 44 00 00 04 movi $r0,#0x4 | |
| 1854: 4c 70 00 1a beq $r7,$r0,0x1888 | |
| 1858: 44 00 00 f0 movi $r0,#0xf0 | |
| 185c: 48 00 00 9e j 0x1998 | |
| 1860: 44 12 00 10 movi $r1,#0x20010 | |
| 1864: 44 32 00 00 movi $r3,#0x20000 | |
| 1868: f1 83 swi37.sp $r1,[+#0xc] | |
| 186a: f3 82 swi37.sp $r3,[+#0x8] | |
| 186c: d5 14 j8 0x1894 | |
| 186e: 8c 0e addi45 $r0,#0xe | |
| 1870: f6 82 swi37.sp $r6,[+#0x8] | |
| 1872: 14 0f 80 03 swi $r0,[$sp+#0xc] | |
| 1876: d5 0f j8 0x1894 | |
| 1878: 44 14 00 10 movi $r1,#0x40010 | |
| 187c: 44 34 00 00 movi $r3,#0x40000 | |
| 1880: f1 83 swi37.sp $r1,[+#0xc] | |
| 1882: f3 82 swi37.sp $r3,[+#0x8] | |
| 1884: 48 00 00 08 j 0x1894 | |
| 1888: 44 06 00 10 movi $r0,#0x60010 | |
| 188c: 44 16 00 00 movi $r1,#0x60000 | |
| 1890: f0 83 swi37.sp $r0,[+#0xc] | |
| 1892: f1 82 swi37.sp $r1,[+#0x8] | |
| 1894: 85 40 movi55 $r10,#0x0 | |
| 1896: 81 0a mov55 $r8,$r10 | |
| 1898: 48 00 00 26 j 0x18e4 | |
| 189c: 50 0f 80 12 addi $r0,$sp,#0x12 | |
| 18a0: 80 2a mov55 $r1,$r10 | |
| 18a2: 80 47 mov55 $r2,$r7 | |
| 18a4: 97 b8 zeb33 $r6,$r7 | |
| 18a6: 49 00 0b 7f jal 0x2fa4 | |
| 18aa: c0 14 beqz38 $r0,0x18d2 | |
| 18ac: f3 01 lwi37.sp $r3,[+#0x4] | |
| 18ae: f1 02 lwi37.sp $r1,[+#0x8] | |
| 18b0: 10 3e 00 00 sbi $r3,[$fp+#0x0] | |
| 18b4: 84 61 movi55 $r3,#0x1 | |
| 18b6: 10 3e 00 08 sbi $r3,[$fp+#0x8] | |
| 18ba: 10 6e 00 01 sbi $r6,[$fp+#0x1] | |
| 18be: 40 04 04 00 add $r0,$r8,$r1 | |
| 18c2: 44 20 00 10 movi $r2,#0x10 | |
| 18c6: 80 3c mov55 $r1,$fp | |
| 18c8: 49 ff f8 d4 jal 0xa70 | |
| 18cc: dd 29 jral5 $r9 | |
| 18ce: c0 ff beqz38 $r0,0x18cc | |
| 18d0: 8d 10 addi45 $r8,#0x10 | |
| 18d2: 9d f9 addi333 $r7,$r7,#0x1 | |
| 18d4: 84 04 movi55 $r0,#0x4 | |
| 18d6: 4c 70 7f e3 bne $r7,$r0,0x189c | |
| 18da: 8d 41 addi45 $r10,#0x1 | |
| 18dc: 44 10 00 f2 movi $r1,#0xf2 | |
| 18e0: 4c a0 80 07 beq $r10,$r1,0x18ee | |
| 18e4: 54 35 00 ff andi $r3,$r10,#0xff | |
| 18e8: f3 81 swi37.sp $r3,[+#0x4] | |
| 18ea: 84 e0 movi55 $r7,#0x0 | |
| 18ec: d5 d8 j8 0x189c | |
| 18ee: 84 60 movi55 $r3,#0x0 | |
| 18f0: 10 3e 00 01 sbi $r3,[$fp+#0x1] | |
| 18f4: 10 3e 00 00 sbi $r3,[$fp+#0x0] | |
| 18f8: 3e 18 08 6a addi.gp $r1,#0x86a | |
| 18fc: 84 46 movi55 $r2,#0x6 | |
| 18fe: 44 60 ca a4 movi $r6,#0xcaa4 | |
| 1902: 50 0f 80 12 addi $r0,$sp,#0x12 | |
| 1906: dd 26 jral5 $r6 | |
| 1908: f1 02 lwi37.sp $r1,[+#0x8] | |
| 190a: 84 61 movi55 $r3,#0x1 | |
| 190c: 10 3e 00 08 sbi $r3,[$fp+#0x8] | |
| 1910: 40 04 04 00 add $r0,$r8,$r1 | |
| 1914: 44 20 00 10 movi $r2,#0x10 | |
| 1918: 80 3c mov55 $r1,$fp | |
| 191a: 49 ff f8 ab jal 0xa70 | |
| 191e: dd 29 jral5 $r9 | |
| 1920: c0 ff beqz38 $r0,0x191e | |
| 1922: 3e 1f fe 82 addi.gp $r1,#-382 | |
| 1926: 84 46 movi55 $r2,#0x6 | |
| 1928: 50 0f 80 12 addi $r0,$sp,#0x12 | |
| 192c: dd 26 jral5 $r6 | |
| 192e: f1 02 lwi37.sp $r1,[+#0x8] | |
| 1930: 84 62 movi55 $r3,#0x2 | |
| 1932: 50 74 00 10 addi $r7,$r8,#0x10 | |
| 1936: 10 3e 00 08 sbi $r3,[$fp+#0x8] | |
| 193a: 98 39 add333 $r0,$r7,$r1 | |
| 193c: 44 20 00 10 movi $r2,#0x10 | |
| 1940: 80 3c mov55 $r1,$fp | |
| 1942: 49 ff f8 97 jal 0xa70 | |
| 1946: dd 29 jral5 $r9 | |
| 1948: c0 ff beqz38 $r0,0x1946 | |
| 194a: 3e 1f fe 8a addi.gp $r1,#-374 | |
| 194e: 84 46 movi55 $r2,#0x6 | |
| 1950: 50 0f 80 12 addi $r0,$sp,#0x12 | |
| 1954: dd 26 jral5 $r6 | |
| 1956: f1 02 lwi37.sp $r1,[+#0x8] | |
| 1958: 84 63 movi55 $r3,#0x3 | |
| 195a: 8c f0 addi45 $r7,#0x10 | |
| 195c: 10 3e 00 08 sbi $r3,[$fp+#0x8] | |
| 1960: 98 39 add333 $r0,$r7,$r1 | |
| 1962: 44 20 00 10 movi $r2,#0x10 | |
| 1966: 80 3c mov55 $r1,$fp | |
| 1968: 49 ff f8 84 jal 0xa70 | |
| 196c: 4b e0 24 01 jral $lp,$r9 | |
| 1970: c0 fe beqz38 $r0,0x196c | |
| 1972: 3e 1f fe 92 addi.gp $r1,#-366 | |
| 1976: 84 46 movi55 $r2,#0x6 | |
| 1978: 50 0f 80 12 addi $r0,$sp,#0x12 | |
| 197c: dd 26 jral5 $r6 | |
| 197e: f1 03 lwi37.sp $r1,[+#0xc] | |
| 1980: 84 64 movi55 $r3,#0x4 | |
| 1982: 10 3e 00 08 sbi $r3,[$fp+#0x8] | |
| 1986: 98 39 add333 $r0,$r7,$r1 | |
| 1988: 44 20 00 10 movi $r2,#0x10 | |
| 198c: 80 3c mov55 $r1,$fp | |
| 198e: 49 ff f8 71 jal 0xa70 | |
| 1992: dd 29 jral5 $r9 | |
| 1994: c0 ff beqz38 $r0,0x1992 | |
| 1996: 84 00 movi55 $r0,#0x0 | |
| 1998: ec 24 addi10.sp #0x24 | |
| 199a: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 199e: dd 9e ret5 $lp | |
| ; ----------- 0x19a0: hardware-specific startup? | |
| 19a0: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 19a4: ef ec addi10.sp #-20 | |
| 19a6: 84 22 movi55 $r1,#0x2 | |
| 19a8: 96 00 zeb33 $r0,$r0 | |
| 19aa: 4c 00 80 0f beq $r0,$r1,0x19c8 | |
| 19ae: e6 03 slti45 $r0,#0x3 | |
| 19b0: e8 05 beqzs8 0x19ba | |
| 19b2: 84 41 movi55 $r2,#0x1 | |
| 19b4: 4c 01 40 6a bne $r0,$r2,0x1a88 | |
| 19b8: d5 0e j8 0x19d4 | |
| 19ba: 84 23 movi55 $r1,#0x3 | |
| 19bc: 4c 00 80 10 beq $r0,$r1,0x19dc | |
| 19c0: 84 44 movi55 $r2,#0x4 | |
| 19c2: 4c 01 40 63 bne $r0,$r2,0x1a88 | |
| 19c6: d5 11 j8 0x19e8 | |
| 19c8: 44 92 00 00 movi $r9,#0x20000 | |
| 19cc: 44 60 30 9c movi $r6,#0x309c | |
| 19d0: 48 00 00 10 j 0x19f0 | |
| 19d4: 85 20 movi55 $r9,#0x0 | |
| 19d6: 44 60 30 9c movi $r6,#0x309c | |
| 19da: d5 0b j8 0x19f0 | |
| 19dc: 44 94 00 00 movi $r9,#0x40000 | |
| 19e0: 44 60 30 9c movi $r6,#0x309c | |
| 19e4: 48 00 00 06 j 0x19f0 | |
| 19e8: 44 96 00 00 movi $r9,#0x60000 | |
| 19ec: 44 60 30 9c movi $r6,#0x309c | |
| 19f0: dd 26 jral5 $r6 ; call 0x309c | |
| 19f2: c0 ff beqz38 $r0,0x19f0 | |
| 19f4: 85 00 movi55 $r8,#0x0 | |
| 19f6: 80 df mov55 $r6,$sp | |
| 19f8: 45 c0 33 74 movi $fp,#0x3374 | |
| 19fc: 50 7f 80 08 addi $r7,$sp,#0x8 | |
| 1a00: 40 04 24 00 add $r0,$r8,$r9 | |
| 1a04: 80 3f mov55 $r1,$sp | |
| 1a06: 44 20 00 10 movi $r2,#0x10 | |
| 1a0a: dd 3c jral5 $fp | |
| 1a0c: 80 1f mov55 $r0,$sp | |
| 1a0e: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 1a10: 44 20 00 ff movi $r2,#0xff | |
| 1a14: 9c 01 addi333 $r0,$r0,#0x1 | |
| 1a16: 4c 11 40 05 bne $r1,$r2,0x1a20 | |
| 1a1a: 4c 03 ff fa bne $r0,$r7,0x1a0e | |
| 1a1e: d5 35 j8 0x1a88 | |
| 1a20: 00 03 00 08 lbi $r0,[$r6+#0x8] | |
| 1a24: 8d 10 addi45 $r8,#0x10 | |
| 1a26: 9e 41 subi333 $r1,$r0,#0x1 | |
| 1a28: 96 48 zeb33 $r1,$r1 | |
| 1a2a: e6 24 slti45 $r1,#0x4 | |
| 1a2c: e8 17 beqzs8 0x1a5a | |
| 1a2e: 84 41 movi55 $r2,#0x1 | |
| 1a30: 3e 07 ff ea sbi.gp $r0,[+#-22] | |
| 1a34: 4c 01 40 08 bne $r0,$r2,0x1a44 | |
| 1a38: 80 1f mov55 $r0,$sp | |
| 1a3a: 84 28 movi55 $r1,#0x8 | |
| 1a3c: 49 00 0c 90 jal 0x335c | |
| 1a40: 00 03 00 08 lbi $r0,[$r6+#0x8] | |
| 1a44: 84 22 movi55 $r1,#0x2 | |
| 1a46: 4c 00 c0 0a bne $r0,$r1,0x1a5a | |
| 1a4a: 80 3f mov55 $r1,$sp | |
| 1a4c: 44 20 00 08 movi $r2,#0x8 | |
| 1a50: 3e 0f fe 80 addi.gp $r0,#-384 | |
| 1a54: 49 00 43 28 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 1a58: d5 14 j8 0x1a80 | |
| 1a5a: 84 43 movi55 $r2,#0x3 | |
| 1a5c: 4c 01 40 09 bne $r0,$r2,0x1a6e | |
| 1a60: 80 3f mov55 $r1,$sp | |
| 1a62: 84 48 movi55 $r2,#0x8 | |
| 1a64: 3e 0f fe 88 addi.gp $r0,#-376 | |
| 1a68: 49 00 43 1e jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 1a6c: d5 0a j8 0x1a80 | |
| 1a6e: 84 24 movi55 $r1,#0x4 | |
| 1a70: 4c 00 c0 08 bne $r0,$r1,0x1a80 | |
| 1a74: 3e 0f fe 90 addi.gp $r0,#-368 | |
| 1a78: 80 3f mov55 $r1,$sp | |
| 1a7a: 84 48 movi55 $r2,#0x8 | |
| 1a7c: 49 00 43 14 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 1a80: 44 20 10 00 movi $r2,#0x1000 | |
| 1a84: 4c 81 7f be bne $r8,$r2,0x1a00 | |
| 1a88: ec 14 addi10.sp #0x14 | |
| 1a8a: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 1a8e: dd 9e ret5 $lp | |
| ; ----------- 0x1a90: command_27_memcmp(addr1, size, addr2) | |
| 1a90: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 1a94: ef d4 addi10.sp #-44 | |
| 1a96: b6 1f swi450 $r0,[$sp] | |
| 1a98: f2 81 swi37.sp $r2,[+#0x4] | |
| 1a9a: 81 21 mov55 $r9,$r1 | |
| 1a9c: 44 80 00 20 movi $r8,#0x20 | |
| 1aa0: 84 e0 movi55 $r7,#0x0 | |
| 1aa2: 50 6f 80 08 addi $r6,$sp,#0x8 | |
| 1aa6: 45 c0 33 74 movi $fp,#0x3374 | |
| 1aaa: b4 3f lwi450 $r1,[$sp] | |
| 1aac: 50 33 80 20 addi $r3,$r7,#0x20 | |
| 1ab0: 98 39 add333 $r0,$r7,$r1 | |
| 1ab2: 40 44 9c 01 sub $r4,$r9,$r7 | |
| 1ab6: 80 26 mov55 $r1,$r6 | |
| 1ab8: e3 23 slt45 $r9,$r3 | |
| 1aba: e8 03 beqzs8 0x1ac0 | |
| 1abc: 54 82 00 ff andi $r8,$r4,#0xff | |
| 1ac0: 80 48 mov55 $r2,$r8 | |
| 1ac2: dd 3c jral5 $fp | |
| 1ac4: f2 01 lwi37.sp $r2,[+#0x4] | |
| 1ac6: 80 06 mov55 $r0,$r6 | |
| 1ac8: 98 57 add333 $r1,$r2,$r7 | |
| 1aca: 80 48 mov55 $r2,$r8 | |
| 1acc: 49 00 42 e0 jal 0xa08c ; memcmp(s1=$r0, s2=$r1, n=$r2), $r0=0 if same, byte diff if not | |
| 1ad0: 88 e8 add45 $r7,$r8 | |
| 1ad2: c0 03 beqz38 $r0,0x1ad8 | |
| 1ad4: 84 00 movi55 $r0,#0x0 | |
| 1ad6: d5 04 j8 0x1ade | |
| 1ad8: 4c 74 ff e9 bne $r7,$r9,0x1aaa | |
| 1adc: 84 01 movi55 $r0,#0x1 | |
| 1ade: ec 2c addi10.sp #0x2c | |
| 1ae0: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 1ae4: dd 9e ret5 $lp | |
| 1ae6: 92 00 nop16 | |
| ; ----------- 0x1ae8: command_27_thingy($r0=subcmd, $r1=src, $r2=size, $r3=mem_addr) | |
| 1ae8: 3a 6f a8 bc smw.adm $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 1aec: 81 21 mov55 $r9,$r1 ; $r9 = src | |
| 1aee: 96 00 zeb33 $r0,$r0 | |
| 1af0: 84 22 movi55 $r1,#0x2 ; $r1 = 2 | |
| 1af2: 81 02 mov55 $r8,$r2 ; $r8 = size | |
| 1af4: 81 43 mov55 $r10,$r3 ; $r10 = $r3 = mem_addr | |
| 1af6: 4c 00 80 13 beq $r0,$r1,0x1b1c ; if subcmd == 2: goto CMD27_2 | |
| 1afa: e6 03 slti45 $r0,#0x3 ; | |
| 1afc: e8 05 beqzs8 0x1b06 ; if subcmd >= 3: goto CMD27_GE_3 | |
| 1afe: 84 21 movi55 $r1,#0x1 ; | |
| 1b00: 4c 00 c0 0a bne $r0,$r1,0x1b14 ; if subcmd != 1: goto CMD27_RET_ERR | |
| 1b04: d5 10 j8 0x1b24 ; goto CMD27_1 | |
| 1b06: 84 23 movi55 $r1,#0x3 ;CMD27_GE_3: | |
| 1b08: 4c 00 80 12 beq $r0,$r1,0x1b2c ; if subcmd == 3: goto CMD27_3 | |
| 1b0c: 44 10 00 04 movi $r1,#0x4 ; | |
| 1b10: 4c 00 80 12 beq $r0,$r1,0x1b34 ; if subcmd == 4: goto CMD27_4 | |
| 1b14: 44 00 00 f0 movi $r0,#0xf0 ;CMD27_RET_ERR: | |
| 1b18: 48 00 00 3a j 0x1b8c ; return 0xf0 | |
| 1b1c: 46 60 00 a0 sethi $r6,#0xa0 ;CMD27_2: $r6=0xa0 (offset) | |
| 1b20: 48 00 00 0c j 0x1b38 | |
| 1b24: 46 60 00 80 sethi $r6,#0x80 ;CMD27_1: $r6=0x80 (offset) | |
| 1b28: 48 00 00 08 j 0x1b38 | |
| 1b2c: 46 60 00 c0 sethi $r6,#0xc0 ;CMD27_3: $r6=0xc0 (offset) | |
| 1b30: 48 00 00 04 j 0x1b38 | |
| 1b34: 46 60 00 e0 sethi $r6,#0xe0 ;CMD27_4: $r6=0xe0 (offset) | |
| 1b38: 2e 07 ff dc lbi.gp $r0,[+#-36] ;CMD27_CHECK: | |
| 1b3c: c0 02 beqz38 $r0,0x1b40 ; if $gp-36 != 0: | |
| 1b3e: d5 03 j8 0x1b44 | |
| 1b40: 84 04 movi55 $r0,#0x4 | |
| 1b42: d5 25 j8 0x1b8c ; return 4 | |
| 1b44: 49 ff f5 ac jal 0x69c ; (goddamn 0x69c, what does it do) | |
| 1b48: c0 fe beqz38 $r0,0x1b44 ; call 0x69c until it returns 1 | |
| 1b4a: 88 ca add45 $r6,$r10 ; $r6 = mem_addr + offset | |
| 1b4c: 80 06 mov55 $r0,$r6 ; $r0 = mem_addr + offset | |
| 1b4e: 80 28 mov55 $r1,$r8 ; $r1 = size | |
| 1b50: 80 49 mov55 $r2,$r9 ; $r2 = src | |
| 1b52: 49 ff ff 9f jal 0x1a90 ; command_27_memcmp(mem_addr+offset, size, src) | |
| 1b56: c8 1a bnez38 $r0,0x1b8a ; if $r0 != 0: return 0 | |
| 1b58: 80 06 mov55 $r0,$r6 ; $r0 = mem_addr + offset | |
| 1b5a: 80 28 mov55 $r1,$r8 ; $r1 = size | |
| 1b5c: 49 ff fa d4 jal 0x1104 ; func_1104(memaddr+offset, size, src) | |
| 1b60: c8 03 bnez38 $r0,0x1b66 ; if $r0 == 0: | |
| 1b62: 84 02 movi55 $r0,#0x2 ; | |
| 1b64: d5 14 j8 0x1b8c ; return 2 | |
| 1b66: 80 06 mov55 $r0,$r6 ; | |
| 1b68: 50 14 80 00 addi $r1,$r9,#0x0 | |
| 1b6c: 40 24 00 13 zeh $r2,$r8 | |
| 1b70: 49 ff f7 80 jal 0xa70 ; func_a70(mem_addr+offset, src, size) | |
| 1b74: 49 ff f5 94 jal 0x69c ; loop: | |
| 1b78: c0 fe beqz38 $r0,0x1b74 ; call 0x69c until it returns 1 | |
| 1b7a: 80 06 mov55 $r0,$r6 | |
| 1b7c: 80 28 mov55 $r1,$r8 | |
| 1b7e: 80 49 mov55 $r2,$r9 | |
| 1b80: 49 ff ff 88 jal 0x1a90 ; command_27_memcmp(mem_addr+offset, size, src) | |
| 1b84: c8 03 bnez38 $r0,0x1b8a ; if $r0 != 0: return 0 | |
| 1b86: 84 03 movi55 $r0,#0x3 | |
| 1b88: d5 02 j8 0x1b8c ; return 3 | |
| 1b8a: 84 00 movi55 $r0,#0x0 | |
| 1b8c: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 1b90: dd 9e ret5 $lp | |
| 1b92: 92 00 nop16 | |
| 1b94: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 1b98: 51 cf 80 18 addi $fp,$sp,#0x18 | |
| 1b9c: ef f4 addi10.sp #-12 | |
| 1b9e: 50 41 00 0e addi $r4,$r2,#0xe | |
| 1ba2: 92 83 srli45 $r4,#0x3 | |
| 1ba4: 95 23 slli333 $r4,$r4,#0x3 | |
| 1ba6: 81 5f mov55 $r10,$sp | |
| 1ba8: 41 ff 90 01 sub $sp,$sp,$r4 | |
| 1bac: 97 80 zeb33 $r6,$r0 | |
| 1bae: 81 21 mov55 $r9,$r1 | |
| 1bb0: 80 1f mov55 $r0,$sp | |
| 1bb2: 44 10 00 ff movi $r1,#0xff | |
| 1bb6: 80 e2 mov55 $r7,$r2 | |
| 1bb8: 14 3e 7f f8 swi $r3,[$fp+#-32] | |
| 1bbc: 49 00 42 7e jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 1bc0: 84 03 movi55 $r0,#0x3 | |
| 1bc2: 4c 60 00 0b beq $r6,$r0,0x1bd8 | |
| 1bc6: 84 64 movi55 $r3,#0x4 | |
| 1bc8: 4c 61 80 14 beq $r6,$r3,0x1bf0 | |
| 1bcc: 44 50 00 02 movi $r5,#0x2 | |
| 1bd0: d6 0a beqs38 $r6,0x1be4 | |
| 1bd2: 44 00 00 f0 movi $r0,#0xf0 | |
| 1bd6: d5 33 j8 0x1c3c | |
| 1bd8: 44 85 00 00 movi $r8,#0x50000 | |
| 1bdc: 44 60 30 9c movi $r6,#0x309c | |
| 1be0: 48 00 00 0c j 0x1bf8 | |
| 1be4: 44 83 00 00 movi $r8,#0x30000 | |
| 1be8: 44 60 30 9c movi $r6,#0x309c | |
| 1bec: 48 00 00 06 j 0x1bf8 | |
| 1bf0: 44 87 00 00 movi $r8,#0x70000 | |
| 1bf4: 44 60 30 9c movi $r6,#0x309c | |
| 1bf8: dd 26 jral5 $r6 | |
| 1bfa: c0 ff beqz38 $r0,0x1bf8 | |
| 1bfc: 04 0e 7f f8 lwi $r0,[$fp+#-32] | |
| 1c00: 89 00 add45 $r8,$r0 | |
| 1c02: 80 08 mov55 $r0,$r8 | |
| 1c04: 80 27 mov55 $r1,$r7 | |
| 1c06: 80 49 mov55 $r2,$r9 | |
| 1c08: 49 ff ff 44 jal 0x1a90 | |
| 1c0c: c8 17 bnez38 $r0,0x1c3a | |
| 1c0e: 80 08 mov55 $r0,$r8 | |
| 1c10: 80 27 mov55 $r1,$r7 | |
| 1c12: 49 ff fa 79 jal 0x1104 | |
| 1c16: c8 03 bnez38 $r0,0x1c1c | |
| 1c18: 84 02 movi55 $r0,#0x2 | |
| 1c1a: d5 11 j8 0x1c3c | |
| 1c1c: 80 08 mov55 $r0,$r8 | |
| 1c1e: 80 29 mov55 $r1,$r9 | |
| 1c20: 96 b9 zeh33 $r2,$r7 | |
| 1c22: 49 ff f7 27 jal 0xa70 | |
| 1c26: dd 26 jral5 $r6 | |
| 1c28: c0 ff beqz38 $r0,0x1c26 | |
| 1c2a: 80 08 mov55 $r0,$r8 | |
| 1c2c: 80 27 mov55 $r1,$r7 | |
| 1c2e: 80 49 mov55 $r2,$r9 | |
| 1c30: 49 ff ff 30 jal 0x1a90 | |
| 1c34: c8 03 bnez38 $r0,0x1c3a | |
| 1c36: 84 03 movi55 $r0,#0x3 | |
| 1c38: d5 02 j8 0x1c3c | |
| 1c3a: 84 00 movi55 $r0,#0x0 | |
| 1c3c: 83 ea mov55 $sp,$r10 | |
| 1c3e: 51 fe 7f e8 addi $sp,$fp,#-24 | |
| 1c42: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 1c46: dd 9e ret5 $lp | |
| 1c48: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 1c4c: ef f4 addi10.sp #-12 | |
| 1c4e: 44 60 30 9c movi $r6,#0x309c | |
| 1c52: dd 26 jral5 $r6 | |
| 1c54: c8 04 bnez38 $r0,0x1c5c | |
| 1c56: 84 01 movi55 $r0,#0x1 | |
| 1c58: 48 00 00 92 j 0x1d7c | |
| 1c5c: 46 80 01 00 sethi $r8,#0x100 | |
| 1c60: 3d c3 ff eb lhi.gp $fp,[+#-42] | |
| 1c64: 81 48 mov55 $r10,$r8 | |
| 1c66: 80 1c mov55 $r0,$fp | |
| 1c68: 44 90 00 00 movi $r9,#0x0 | |
| 1c6c: 50 00 02 00 addi $r0,$r0,#0x200 | |
| 1c70: 96 81 zeh33 $r2,$r0 | |
| 1c72: 96 13 seh33 $r0,$r2 | |
| 1c74: 84 28 movi55 $r1,#0x8 | |
| 1c76: 3c 2b ff eb shi.gp $r2,[+#-42] | |
| 1c7a: 4e 04 00 05 bgez $r0,0x1c84 | |
| 1c7e: 3c 9b ff eb shi.gp $r9,[+#-42] | |
| 1c82: 84 40 movi55 $r2,#0x0 | |
| 1c84: 44 31 80 00 movi $r3,#0x18000 | |
| 1c88: 40 01 0c 00 add $r0,$r2,$r3 | |
| 1c8c: 4d c1 40 06 bne $fp,$r2,0x1c98 | |
| 1c90: 44 00 00 f0 movi $r0,#0xf0 | |
| 1c94: 48 00 00 74 j 0x1d7c | |
| 1c98: 49 ff fa 36 jal 0x1104 | |
| 1c9c: c8 04 bnez38 $r0,0x1ca4 | |
| 1c9e: 3c 03 ff eb lhi.gp $r0,[+#-42] | |
| 1ca2: d5 e5 j8 0x1c6c | |
| 1ca4: 3c 4d ff de lwi.gp $r4,[+#-136] | |
| 1ca8: 9d 21 addi333 $r4,$r4,#0x1 | |
| 1caa: 3e 18 06 60 addi.gp $r1,#0x660 | |
| 1cae: 44 20 00 78 movi $r2,#0x78 | |
| 1cb2: 44 50 55 aa movi $r5,#0x55aa | |
| 1cb6: 44 00 ff ff movi $r0,#0xffff | |
| 1cba: 12 5f 80 00 shi $r5,[$sp+#0x0] | |
| 1cbe: 3c 4f ff de swi.gp $r4,[+#-136] | |
| 1cc2: f4 81 swi37.sp $r4,[+#0x4] | |
| 1cc4: 49 ff f3 fe jal 0x4c0 ; crc16(int iv=$r0, void *src=$r1, int length=$r2) -> (short)$r0 | |
| 1cc8: 3c 13 ff eb lhi.gp $r1,[+#-42] | |
| 1ccc: 44 21 80 00 movi $r2,#0x18000 | |
| 1cd0: 12 0f 80 01 shi $r0,[$sp+#0x2] | |
| 1cd4: 98 0a add333 $r0,$r1,$r2 | |
| 1cd6: 80 3f mov55 $r1,$sp | |
| 1cd8: 84 48 movi55 $r2,#0x8 | |
| 1cda: 80 ff mov55 $r7,$sp | |
| 1cdc: 49 ff f6 ca jal 0xa70 | |
| 1ce0: 4b e0 18 01 jral $lp,$r6 | |
| 1ce4: c0 fe beqz38 $r0,0x1ce0 | |
| 1ce6: 3c 03 ff eb lhi.gp $r0,[+#-42] | |
| 1cea: 44 31 80 00 movi $r3,#0x18000 | |
| 1cee: 98 03 add333 $r0,$r0,$r3 | |
| 1cf0: 80 47 mov55 $r2,$r7 | |
| 1cf2: 84 28 movi55 $r1,#0x8 | |
| 1cf4: 49 ff fe ce jal 0x1a90 | |
| 1cf8: c0 3f beqz38 $r0,0x1d76 | |
| 1cfa: 3e a8 06 60 addi.gp $r10,#0x660 | |
| 1cfe: 80 ea mov55 $r7,$r10 | |
| 1d00: 3c 13 ff eb lhi.gp $r1,[+#-42] | |
| 1d04: 40 03 a8 01 sub $r0,$r7,$r10 | |
| 1d08: 98 08 add333 $r0,$r1,$r0 | |
| 1d0a: 44 11 80 08 movi $r1,#0x18008 | |
| 1d0e: 98 01 add333 $r0,$r0,$r1 | |
| 1d10: 84 48 movi55 $r2,#0x8 | |
| 1d12: 80 27 mov55 $r1,$r7 | |
| 1d14: 49 ff f6 ae jal 0xa70 | |
| 1d18: dd 26 jral5 $r6 | |
| 1d1a: c0 ff beqz38 $r0,0x1d18 | |
| 1d1c: 8c e8 addi45 $r7,#0x8 | |
| 1d1e: 3e 28 08 58 addi.gp $r2,#0x858 | |
| 1d22: 4c 71 7f ef bne $r7,$r2,0x1d00 | |
| 1d26: 3c 03 ff eb lhi.gp $r0,[+#-42] | |
| 1d2a: 44 31 80 08 movi $r3,#0x18008 | |
| 1d2e: 98 03 add333 $r0,$r0,$r3 | |
| 1d30: 44 10 01 f8 movi $r1,#0x1f8 | |
| 1d34: 3e 28 06 60 addi.gp $r2,#0x660 | |
| 1d38: 49 ff fe ac jal 0x1a90 | |
| 1d3c: c0 1d beqz38 $r0,0x1d76 | |
| 1d3e: 3c 83 ff eb lhi.gp $r8,[+#-42] | |
| 1d42: 44 00 f0 00 movi $r0,#0xf000 | |
| 1d46: 40 7e 00 02 and $r7,$fp,$r0 | |
| 1d4a: 40 84 00 02 and $r8,$r8,$r0 | |
| 1d4e: 4c 74 00 16 beq $r7,$r8,0x1d7a | |
| 1d52: 85 20 movi55 $r9,#0x0 | |
| 1d54: dd 26 jral5 $r6 | |
| 1d56: c0 ff beqz38 $r0,0x1d54 | |
| 1d58: 44 11 80 00 movi $r1,#0x18000 | |
| 1d5c: 98 39 add333 $r0,$r7,$r1 | |
| 1d5e: 50 73 90 00 addi $r7,$r7,#0x1000 | |
| 1d62: 97 f9 zeh33 $r7,$r7 | |
| 1d64: 49 ff f7 54 jal 0xc0c | |
| 1d68: 40 03 bc 09 srli $r0,$r7,#0xf | |
| 1d6c: 40 74 80 1b cmovn $r7,$r9,$r0 | |
| 1d70: 4c 83 ff f2 bne $r8,$r7,0x1d54 | |
| 1d74: d5 03 j8 0x1d7a | |
| 1d76: 84 03 movi55 $r0,#0x3 | |
| 1d78: d5 02 j8 0x1d7c | |
| 1d7a: 84 00 movi55 $r0,#0x0 | |
| 1d7c: ec 0c addi10.sp #0xc | |
| 1d7e: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 1d82: dd 9e ret5 $lp | |
| 1d84: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 1d88: ef f4 addi10.sp #-12 | |
| 1d8a: 44 60 30 9c movi $r6,#0x309c | |
| 1d8e: dd 26 jral5 $r6 | |
| 1d90: c8 04 bnez38 $r0,0x1d98 | |
| 1d92: 84 01 movi55 $r0,#0x1 | |
| 1d94: 48 00 00 92 j 0x1eb8 | |
| 1d98: 46 80 01 00 sethi $r8,#0x100 | |
| 1d9c: 3d c3 ff ea lhi.gp $fp,[+#-44] | |
| 1da0: 81 48 mov55 $r10,$r8 | |
| 1da2: 80 1c mov55 $r0,$fp | |
| 1da4: 44 90 00 00 movi $r9,#0x0 | |
| 1da8: 50 00 02 00 addi $r0,$r0,#0x200 | |
| 1dac: 96 81 zeh33 $r2,$r0 | |
| 1dae: 96 13 seh33 $r0,$r2 | |
| 1db0: 84 28 movi55 $r1,#0x8 | |
| 1db2: 3c 2b ff ea shi.gp $r2,[+#-44] | |
| 1db6: 4e 04 00 05 bgez $r0,0x1dc0 | |
| 1dba: 3c 9b ff ea shi.gp $r9,[+#-44] | |
| 1dbe: 84 40 movi55 $r2,#0x0 | |
| 1dc0: 44 31 00 00 movi $r3,#0x10000 | |
| 1dc4: 40 01 0c 00 add $r0,$r2,$r3 | |
| 1dc8: 4d c1 40 06 bne $fp,$r2,0x1dd4 | |
| 1dcc: 44 00 00 f0 movi $r0,#0xf0 | |
| 1dd0: 48 00 00 74 j 0x1eb8 | |
| 1dd4: 49 ff f9 98 jal 0x1104 | |
| 1dd8: c8 04 bnez38 $r0,0x1de0 | |
| 1dda: 3c 03 ff ea lhi.gp $r0,[+#-44] | |
| 1dde: d5 e5 j8 0x1da8 | |
| 1de0: 3c 4d ff dd lwi.gp $r4,[+#-140] | |
| 1de4: 9d 21 addi333 $r4,$r4,#0x1 | |
| 1de6: 3e 18 15 2c addi.gp $r1,#0x152c | |
| 1dea: 44 20 01 f8 movi $r2,#0x1f8 | |
| 1dee: 44 50 55 aa movi $r5,#0x55aa | |
| 1df2: 44 00 ff ff movi $r0,#0xffff | |
| 1df6: 12 5f 80 00 shi $r5,[$sp+#0x0] | |
| 1dfa: 3c 4f ff dd swi.gp $r4,[+#-140] | |
| 1dfe: f4 81 swi37.sp $r4,[+#0x4] | |
| 1e00: 49 ff f3 60 jal 0x4c0 ; crc16(int iv=$r0, void *src=$r1, int length=$r2) -> (short)$r0 | |
| 1e04: 3c 13 ff ea lhi.gp $r1,[+#-44] | |
| 1e08: 44 21 00 00 movi $r2,#0x10000 | |
| 1e0c: 12 0f 80 01 shi $r0,[$sp+#0x2] | |
| 1e10: 98 0a add333 $r0,$r1,$r2 | |
| 1e12: 80 3f mov55 $r1,$sp | |
| 1e14: 84 48 movi55 $r2,#0x8 | |
| 1e16: 80 ff mov55 $r7,$sp | |
| 1e18: 49 ff f6 2c jal 0xa70 | |
| 1e1c: 4b e0 18 01 jral $lp,$r6 | |
| 1e20: c0 fe beqz38 $r0,0x1e1c | |
| 1e22: 3c 03 ff ea lhi.gp $r0,[+#-44] | |
| 1e26: 44 31 00 00 movi $r3,#0x10000 | |
| 1e2a: 98 03 add333 $r0,$r0,$r3 | |
| 1e2c: 80 47 mov55 $r2,$r7 | |
| 1e2e: 84 28 movi55 $r1,#0x8 | |
| 1e30: 49 ff fe 30 jal 0x1a90 | |
| 1e34: c0 3f beqz38 $r0,0x1eb2 | |
| 1e36: 3e a8 15 2c addi.gp $r10,#0x152c | |
| 1e3a: 80 ea mov55 $r7,$r10 | |
| 1e3c: 3c 13 ff ea lhi.gp $r1,[+#-44] | |
| 1e40: 40 03 a8 01 sub $r0,$r7,$r10 | |
| 1e44: 98 08 add333 $r0,$r1,$r0 | |
| 1e46: 44 11 00 08 movi $r1,#0x10008 | |
| 1e4a: 98 01 add333 $r0,$r0,$r1 | |
| 1e4c: 84 48 movi55 $r2,#0x8 | |
| 1e4e: 80 27 mov55 $r1,$r7 | |
| 1e50: 49 ff f6 10 jal 0xa70 | |
| 1e54: dd 26 jral5 $r6 | |
| 1e56: c0 ff beqz38 $r0,0x1e54 | |
| 1e58: 8c e8 addi45 $r7,#0x8 | |
| 1e5a: 3e 28 17 24 addi.gp $r2,#0x1724 | |
| 1e5e: 4c 71 7f ef bne $r7,$r2,0x1e3c | |
| 1e62: 3c 03 ff ea lhi.gp $r0,[+#-44] | |
| 1e66: 44 31 00 08 movi $r3,#0x10008 | |
| 1e6a: 98 03 add333 $r0,$r0,$r3 | |
| 1e6c: 44 10 01 f8 movi $r1,#0x1f8 | |
| 1e70: 3e 28 15 2c addi.gp $r2,#0x152c | |
| 1e74: 49 ff fe 0e jal 0x1a90 | |
| 1e78: c0 1d beqz38 $r0,0x1eb2 | |
| 1e7a: 3c 83 ff ea lhi.gp $r8,[+#-44] | |
| 1e7e: 44 00 f0 00 movi $r0,#0xf000 | |
| 1e82: 40 7e 00 02 and $r7,$fp,$r0 | |
| 1e86: 40 84 00 02 and $r8,$r8,$r0 | |
| 1e8a: 4c 74 00 16 beq $r7,$r8,0x1eb6 | |
| 1e8e: 85 20 movi55 $r9,#0x0 | |
| 1e90: dd 26 jral5 $r6 | |
| 1e92: c0 ff beqz38 $r0,0x1e90 | |
| 1e94: 44 11 00 00 movi $r1,#0x10000 | |
| 1e98: 98 39 add333 $r0,$r7,$r1 | |
| 1e9a: 50 73 90 00 addi $r7,$r7,#0x1000 | |
| 1e9e: 97 f9 zeh33 $r7,$r7 | |
| 1ea0: 49 ff f6 b6 jal 0xc0c | |
| 1ea4: 40 03 bc 09 srli $r0,$r7,#0xf | |
| 1ea8: 40 74 80 1b cmovn $r7,$r9,$r0 | |
| 1eac: 4c 83 ff f2 bne $r8,$r7,0x1e90 | |
| 1eb0: d5 03 j8 0x1eb6 | |
| 1eb2: 84 03 movi55 $r0,#0x3 | |
| 1eb4: d5 02 j8 0x1eb8 | |
| 1eb6: 84 00 movi55 $r0,#0x0 | |
| 1eb8: ec 0c addi10.sp #0xc | |
| 1eba: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 1ebe: dd 9e ret5 $lp | |
| 1ec0: 3a 6f a8 bc smw.adm $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 1ec4: 81 01 mov55 $r8,$r1 | |
| 1ec6: 96 00 zeb33 $r0,$r0 | |
| 1ec8: 84 22 movi55 $r1,#0x2 | |
| 1eca: 80 e2 mov55 $r7,$r2 | |
| 1ecc: 81 43 mov55 $r10,$r3 | |
| 1ece: 4c 00 80 13 beq $r0,$r1,0x1ef4 | |
| 1ed2: e6 03 slti45 $r0,#0x3 | |
| 1ed4: e8 05 beqzs8 0x1ede | |
| 1ed6: 84 21 movi55 $r1,#0x1 | |
| 1ed8: 4c 00 c0 0a bne $r0,$r1,0x1eec | |
| 1edc: d5 10 j8 0x1efc | |
| 1ede: 84 23 movi55 $r1,#0x3 | |
| 1ee0: 4c 00 80 12 beq $r0,$r1,0x1f04 | |
| 1ee4: 44 10 00 04 movi $r1,#0x4 | |
| 1ee8: 4c 00 80 12 beq $r0,$r1,0x1f0c | |
| 1eec: 44 00 00 f0 movi $r0,#0xf0 | |
| 1ef0: 48 00 00 38 j 0x1f60 | |
| 1ef4: 44 92 a0 00 movi $r9,#0x2a000 | |
| 1ef8: 48 00 00 0c j 0x1f10 | |
| 1efc: 44 90 a0 00 movi $r9,#0xa000 | |
| 1f00: 48 00 00 08 j 0x1f10 | |
| 1f04: 44 94 a0 00 movi $r9,#0x4a000 | |
| 1f08: 48 00 00 04 j 0x1f10 | |
| 1f0c: 44 96 a0 00 movi $r9,#0x6a000 | |
| 1f10: 2e 07 ff dc lbi.gp $r0,[+#-36] | |
| 1f14: c0 02 beqz38 $r0,0x1f18 | |
| 1f16: d5 03 j8 0x1f1c | |
| 1f18: 84 04 movi55 $r0,#0x4 | |
| 1f1a: d5 23 j8 0x1f60 | |
| 1f1c: 49 ff f3 c0 jal 0x69c | |
| 1f20: c0 fe beqz38 $r0,0x1f1c | |
| 1f22: 89 2a add45 $r9,$r10 | |
| 1f24: 80 09 mov55 $r0,$r9 | |
| 1f26: 80 27 mov55 $r1,$r7 | |
| 1f28: 80 48 mov55 $r2,$r8 | |
| 1f2a: 49 ff fd b3 jal 0x1a90 | |
| 1f2e: c8 18 bnez38 $r0,0x1f5e | |
| 1f30: 80 09 mov55 $r0,$r9 | |
| 1f32: 80 27 mov55 $r1,$r7 | |
| 1f34: 49 ff f8 e8 jal 0x1104 | |
| 1f38: c8 03 bnez38 $r0,0x1f3e | |
| 1f3a: 84 02 movi55 $r0,#0x2 | |
| 1f3c: d5 12 j8 0x1f60 | |
| 1f3e: 80 09 mov55 $r0,$r9 | |
| 1f40: 80 28 mov55 $r1,$r8 | |
| 1f42: 96 b9 zeh33 $r2,$r7 | |
| 1f44: 49 ff f5 96 jal 0xa70 | |
| 1f48: 49 ff f3 aa jal 0x69c | |
| 1f4c: c0 fe beqz38 $r0,0x1f48 | |
| 1f4e: 80 09 mov55 $r0,$r9 | |
| 1f50: 80 27 mov55 $r1,$r7 | |
| 1f52: 80 48 mov55 $r2,$r8 | |
| 1f54: 49 ff fd 9e jal 0x1a90 | |
| 1f58: c8 03 bnez38 $r0,0x1f5e | |
| 1f5a: 84 03 movi55 $r0,#0x3 | |
| 1f5c: d5 02 j8 0x1f60 | |
| 1f5e: 84 00 movi55 $r0,#0x0 | |
| 1f60: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 1f64: dd 9e ret5 $lp | |
| 1f66: 92 00 nop16 | |
| 1f68: 3a 6f a8 bc smw.adm $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 1f6c: 80 e1 mov55 $r7,$r1 | |
| 1f6e: 96 00 zeb33 $r0,$r0 | |
| 1f70: 84 23 movi55 $r1,#0x3 | |
| 1f72: 80 c2 mov55 $r6,$r2 | |
| 1f74: 81 43 mov55 $r10,$r3 | |
| 1f76: 4c 00 80 0b beq $r0,$r1,0x1f8c | |
| 1f7a: 84 24 movi55 $r1,#0x4 | |
| 1f7c: 4c 00 80 10 beq $r0,$r1,0x1f9c | |
| 1f80: 84 22 movi55 $r1,#0x2 | |
| 1f82: 4c 00 80 09 beq $r0,$r1,0x1f94 | |
| 1f86: 44 00 00 f0 movi $r0,#0xf0 | |
| 1f8a: d5 2f j8 0x1fe8 | |
| 1f8c: 44 94 30 00 movi $r9,#0x43000 | |
| 1f90: 48 00 00 08 j 0x1fa0 | |
| 1f94: 44 92 30 00 movi $r9,#0x23000 | |
| 1f98: 48 00 00 04 j 0x1fa0 | |
| 1f9c: 44 96 30 00 movi $r9,#0x63000 | |
| 1fa0: 49 ff f3 7e jal 0x69c | |
| 1fa4: c8 03 bnez38 $r0,0x1faa | |
| 1fa6: 84 01 movi55 $r0,#0x1 | |
| 1fa8: d5 20 j8 0x1fe8 | |
| 1faa: 89 2a add45 $r9,$r10 | |
| 1fac: 80 09 mov55 $r0,$r9 | |
| 1fae: 80 26 mov55 $r1,$r6 | |
| 1fb0: 80 47 mov55 $r2,$r7 | |
| 1fb2: 49 ff fd 6f jal 0x1a90 | |
| 1fb6: c8 18 bnez38 $r0,0x1fe6 | |
| 1fb8: 80 09 mov55 $r0,$r9 | |
| 1fba: 80 26 mov55 $r1,$r6 | |
| 1fbc: 49 ff f8 a4 jal 0x1104 | |
| 1fc0: c8 03 bnez38 $r0,0x1fc6 | |
| 1fc2: 84 02 movi55 $r0,#0x2 | |
| 1fc4: d5 12 j8 0x1fe8 | |
| 1fc6: 80 09 mov55 $r0,$r9 | |
| 1fc8: 80 27 mov55 $r1,$r7 | |
| 1fca: 96 b1 zeh33 $r2,$r6 | |
| 1fcc: 49 ff f5 52 jal 0xa70 | |
| 1fd0: 49 ff f3 66 jal 0x69c | |
| 1fd4: c0 fe beqz38 $r0,0x1fd0 | |
| 1fd6: 80 09 mov55 $r0,$r9 | |
| 1fd8: 80 26 mov55 $r1,$r6 | |
| 1fda: 80 47 mov55 $r2,$r7 | |
| 1fdc: 49 ff fd 5a jal 0x1a90 | |
| 1fe0: c8 03 bnez38 $r0,0x1fe6 | |
| 1fe2: 84 03 movi55 $r0,#0x3 | |
| 1fe4: d5 02 j8 0x1fe8 | |
| 1fe6: 84 00 movi55 $r0,#0x0 | |
| 1fe8: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 1fec: dd 9e ret5 $lp | |
| 1fee: 92 00 nop16 | |
| 1ff0: 3a 6f a8 bc smw.adm $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 1ff4: 80 e1 mov55 $r7,$r1 | |
| 1ff6: 96 00 zeb33 $r0,$r0 | |
| 1ff8: 84 22 movi55 $r1,#0x2 | |
| 1ffa: 80 c2 mov55 $r6,$r2 | |
| 1ffc: 81 43 mov55 $r10,$r3 | |
| 1ffe: 4c 00 80 13 beq $r0,$r1,0x2024 | |
| 2002: e6 03 slti45 $r0,#0x3 | |
| 2004: e8 05 beqzs8 0x200e | |
| 2006: 84 21 movi55 $r1,#0x1 | |
| 2008: 4c 00 c0 0a bne $r0,$r1,0x201c | |
| 200c: d5 10 j8 0x202c | |
| 200e: 84 23 movi55 $r1,#0x3 | |
| 2010: 4c 00 80 12 beq $r0,$r1,0x2034 | |
| 2014: 44 10 00 04 movi $r1,#0x4 | |
| 2018: 4c 00 80 12 beq $r0,$r1,0x203c | |
| 201c: 44 00 00 f0 movi $r0,#0xf0 | |
| 2020: 48 00 00 34 j 0x2088 | |
| 2024: 44 92 20 00 movi $r9,#0x22000 | |
| 2028: 48 00 00 0c j 0x2040 | |
| 202c: 44 90 40 00 movi $r9,#0x4000 | |
| 2030: 48 00 00 08 j 0x2040 | |
| 2034: 44 94 20 00 movi $r9,#0x42000 | |
| 2038: 48 00 00 04 j 0x2040 | |
| 203c: 44 96 20 00 movi $r9,#0x62000 | |
| 2040: 49 ff f3 2e jal 0x69c | |
| 2044: c8 03 bnez38 $r0,0x204a | |
| 2046: 84 01 movi55 $r0,#0x1 | |
| 2048: d5 20 j8 0x2088 | |
| 204a: 89 2a add45 $r9,$r10 | |
| 204c: 80 09 mov55 $r0,$r9 | |
| 204e: 80 26 mov55 $r1,$r6 | |
| 2050: 80 47 mov55 $r2,$r7 | |
| 2052: 49 ff fd 1f jal 0x1a90 | |
| 2056: c8 18 bnez38 $r0,0x2086 | |
| 2058: 80 09 mov55 $r0,$r9 | |
| 205a: 80 26 mov55 $r1,$r6 | |
| 205c: 49 ff f8 54 jal 0x1104 | |
| 2060: c8 03 bnez38 $r0,0x2066 | |
| 2062: 84 02 movi55 $r0,#0x2 | |
| 2064: d5 12 j8 0x2088 | |
| 2066: 80 09 mov55 $r0,$r9 | |
| 2068: 80 27 mov55 $r1,$r7 | |
| 206a: 96 b1 zeh33 $r2,$r6 | |
| 206c: 49 ff f5 02 jal 0xa70 | |
| 2070: 49 ff f3 16 jal 0x69c | |
| 2074: c0 fe beqz38 $r0,0x2070 | |
| 2076: 80 09 mov55 $r0,$r9 | |
| 2078: 80 26 mov55 $r1,$r6 | |
| 207a: 80 47 mov55 $r2,$r7 | |
| 207c: 49 ff fd 0a jal 0x1a90 | |
| 2080: c8 03 bnez38 $r0,0x2086 | |
| 2082: 84 03 movi55 $r0,#0x3 | |
| 2084: d5 02 j8 0x2088 | |
| 2086: 84 00 movi55 $r0,#0x0 | |
| 2088: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 208c: dd 9e ret5 $lp | |
| 208e: 92 00 nop16 | |
| 2090: 3a 6f a8 bc smw.adm $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 2094: 80 e1 mov55 $r7,$r1 | |
| 2096: 96 00 zeb33 $r0,$r0 | |
| 2098: 84 23 movi55 $r1,#0x3 | |
| 209a: 80 c2 mov55 $r6,$r2 | |
| 209c: 81 43 mov55 $r10,$r3 | |
| 209e: 4c 00 80 0b beq $r0,$r1,0x20b4 | |
| 20a2: 84 24 movi55 $r1,#0x4 | |
| 20a4: 4c 00 80 10 beq $r0,$r1,0x20c4 | |
| 20a8: 84 22 movi55 $r1,#0x2 | |
| 20aa: 4c 00 80 09 beq $r0,$r1,0x20bc | |
| 20ae: 44 00 00 f0 movi $r0,#0xf0 | |
| 20b2: d5 2f j8 0x2110 | |
| 20b4: 44 94 10 00 movi $r9,#0x41000 | |
| 20b8: 48 00 00 08 j 0x20c8 | |
| 20bc: 44 92 10 00 movi $r9,#0x21000 | |
| 20c0: 48 00 00 04 j 0x20c8 | |
| 20c4: 44 96 10 00 movi $r9,#0x61000 | |
| 20c8: 49 ff f2 ea jal 0x69c | |
| 20cc: c8 03 bnez38 $r0,0x20d2 | |
| 20ce: 84 01 movi55 $r0,#0x1 | |
| 20d0: d5 20 j8 0x2110 | |
| 20d2: 89 2a add45 $r9,$r10 | |
| 20d4: 80 09 mov55 $r0,$r9 | |
| 20d6: 80 26 mov55 $r1,$r6 | |
| 20d8: 80 47 mov55 $r2,$r7 | |
| 20da: 49 ff fc db jal 0x1a90 | |
| 20de: c8 18 bnez38 $r0,0x210e | |
| 20e0: 80 09 mov55 $r0,$r9 | |
| 20e2: 80 26 mov55 $r1,$r6 | |
| 20e4: 49 ff f8 10 jal 0x1104 | |
| 20e8: c8 03 bnez38 $r0,0x20ee | |
| 20ea: 84 02 movi55 $r0,#0x2 | |
| 20ec: d5 12 j8 0x2110 | |
| 20ee: 80 09 mov55 $r0,$r9 | |
| 20f0: 80 27 mov55 $r1,$r7 | |
| 20f2: 96 b1 zeh33 $r2,$r6 | |
| 20f4: 49 ff f4 be jal 0xa70 | |
| 20f8: 49 ff f2 d2 jal 0x69c | |
| 20fc: c0 fe beqz38 $r0,0x20f8 | |
| 20fe: 80 09 mov55 $r0,$r9 | |
| 2100: 80 26 mov55 $r1,$r6 | |
| 2102: 80 47 mov55 $r2,$r7 | |
| 2104: 49 ff fc c6 jal 0x1a90 | |
| 2108: c8 03 bnez38 $r0,0x210e | |
| 210a: 84 03 movi55 $r0,#0x3 | |
| 210c: d5 02 j8 0x2110 | |
| 210e: 84 00 movi55 $r0,#0x0 | |
| 2110: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 2114: dd 9e ret5 $lp | |
| 2116: 92 00 nop16 | |
| ; ---------- 0x2118: ??? | |
| 2118: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 211c: ef f4 addi10.sp #-12 | |
| 211e: f1 81 swi37.sp $r1,[+#0x4] | |
| 2120: 54 a0 00 ff andi $r10,$r0,#0xff | |
| 2124: 49 ff f2 bc jal 0x69c | |
| 2128: c0 65 beqz38 $r0,0x21f2 | |
| 212a: 84 02 movi55 $r0,#0x2 | |
| 212c: 4c a0 00 12 beq $r10,$r0,0x2150 | |
| 2130: e7 43 slti45 $r10,#0x3 | |
| 2132: e8 05 beqzs8 0x213c | |
| 2134: 84 21 movi55 $r1,#0x1 | |
| 2136: 4c a0 c0 09 bne $r10,$r1,0x2148 | |
| 213a: d5 0f j8 0x2158 | |
| 213c: 84 03 movi55 $r0,#0x3 | |
| 213e: 4c a0 00 0f beq $r10,$r0,0x215c | |
| 2142: 84 24 movi55 $r1,#0x4 | |
| 2144: 4c a0 80 10 beq $r10,$r1,0x2164 | |
| 2148: 44 00 00 f0 movi $r0,#0xf0 | |
| 214c: 48 00 00 54 j 0x21f4 | |
| 2150: 44 92 00 00 movi $r9,#0x20000 | |
| 2154: 48 00 00 0a j 0x2168 | |
| 2158: 85 20 movi55 $r9,#0x0 | |
| 215a: d5 07 j8 0x2168 | |
| 215c: 44 94 00 00 movi $r9,#0x40000 | |
| 2160: 48 00 00 04 j 0x2168 | |
| 2164: 44 96 00 00 movi $r9,#0x60000 | |
| 2168: 2e 07 ff df lbi.gp $r0,[+#-33] | |
| 216c: c0 0d beqz38 $r0,0x2186 | |
| 216e: 84 01 movi55 $r0,#0x1 | |
| 2170: 49 ff fb 4c jal 0x1808 | |
| 2174: 84 21 movi55 $r1,#0x1 | |
| 2176: 4c 00 80 3e beq $r0,$r1,0x21f2 | |
| 217a: 84 00 movi55 $r0,#0x0 | |
| 217c: 3e 07 ff df sbi.gp $r0,[+#-33] | |
| 2180: 49 ff f2 8e jal 0x69c | |
| 2184: c0 fe beqz38 $r0,0x2180 | |
| 2186: 84 c0 movi55 $r6,#0x0 | |
| 2188: 45 c0 3b 04 movi $fp,#0x3b04 | |
| 218c: 40 73 24 00 add $r7,$r6,$r9 | |
| 2190: 80 07 mov55 $r0,$r7 | |
| 2192: 44 10 00 10 movi $r1,#0x10 | |
| 2196: dd 3c jral5 $fp | |
| 2198: c0 06 beqz38 $r0,0x21a4 | |
| 219a: 8c d0 addi45 $r6,#0x10 | |
| 219c: 5c f3 10 01 slti $r15,$r6,#0x1001 | |
| 21a0: e9 11 bnezs8 0x21c2 | |
| 21a2: d5 06 j8 0x21ae | |
| 21a4: 8c d0 addi45 $r6,#0x10 | |
| 21a6: 44 00 10 00 movi $r0,#0x1000 | |
| 21aa: 4c 60 7f f1 bne $r6,$r0,0x218c | |
| 21ae: 80 0a mov55 $r0,$r10 | |
| 21b0: 49 ff fa 80 jal 0x16b0 | |
| 21b4: 84 01 movi55 $r0,#0x1 | |
| 21b6: 46 10 01 00 sethi $r1,#0x100 | |
| 21ba: 3e 07 ff df sbi.gp $r0,[+#-33] | |
| 21be: 84 01 movi55 $r0,#0x1 | |
| 21c0: d5 1a j8 0x21f4 | |
| 21c2: f1 01 lwi37.sp $r1,[+#0x4] | |
| 21c4: 50 03 80 00 addi $r0,$r7,#0x0 | |
| 21c8: 44 20 00 10 movi $r2,#0x10 | |
| 21cc: 49 ff f4 52 jal 0xa70 | |
| 21d0: 49 ff f2 66 jal 0x69c | |
| 21d4: c0 fe beqz38 $r0,0x21d0 | |
| 21d6: f2 01 lwi37.sp $r2,[+#0x4] | |
| 21d8: 44 10 00 10 movi $r1,#0x10 | |
| 21dc: 80 07 mov55 $r0,$r7 | |
| 21de: 49 ff fc 59 jal 0x1a90 | |
| 21e2: 80 20 mov55 $r1,$r0 | |
| 21e4: 84 40 movi55 $r2,#0x0 | |
| 21e6: 84 63 movi55 $r3,#0x3 | |
| 21e8: 40 01 84 1a cmovz $r0,$r3,$r1 | |
| 21ec: 40 01 04 1b cmovn $r0,$r2,$r1 | |
| 21f0: d5 02 j8 0x21f4 | |
| 21f2: 84 01 movi55 $r0,#0x1 | |
| 21f4: ec 0c addi10.sp #0xc | |
| 21f6: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 21fa: dd 9e ret5 $lp | |
| ; ----------- 0x21fc: mainloop_21fc() | |
| 21fc: 3a 6f a0 bc smw.adm $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 2200: ef f0 addi10.sp #-16 ; $sp -= 0x10 | |
| 2202: 2e 77 ff de lbi.gp $r7,[+#-34] ; if [$gp-34] == 0: | |
| 2206: c7 29 beqz38 $r7,0x2258 ; goto nope_gp34 | |
| 2208: 44 10 00 ff movi $r1,#0xff ; memset byte = 0xff | |
| 220c: 44 20 00 10 movi $r2,#0x10 ; memset size = 0x10 | |
| 2210: 50 0f 80 00 addi $r0,$sp,#0x0 ; memset dest = $sp | |
| 2214: 49 00 3f 52 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 2218: 3e 3f fe 78 addi.gp $r3,#-392 | |
| 221c: a0 59 lwi333 $r1,[$r3+#0x4] ; $r1 = [$gp-392+4] | |
| 221e: 08 01 80 01 lbi.bi $r0,[$r3],#0x1 ; $r0 = [$gp-392] | |
| 2222: 84 46 movi55 $r2,#0x6 ; memcpy size = 0x6 | |
| 2224: a6 d8 lbi333 $r3,[$r3+#0x0] ; $r3 = [$gp-392+1] | |
| 2226: 10 0f 80 00 sbi $r0,[$sp+#0x0] ; [$sp+0] = [$gp-392+0] | |
| 222a: 10 3f 80 01 sbi $r3,[$sp+#0x1] ; [$sp+1] = [$gp-392+1] | |
| 222e: 2e 37 ff ea lbi.gp $r3,[+#-22] | |
| 2232: 50 0f 80 02 addi $r0,$sp,#0x2 ; memcpy dest = $sp+2 | |
| 2236: ae c6 sbi333 $r3,[$r0+#0x6] ; [$sp+8] = [$gp-22] | |
| 2238: 49 00 3f 36 jal 0xa0a4 ; memcpy(dest=$sp+2, src=[$gp-392+4], n=6) | |
| 223c: 80 3f mov55 $r1,$sp ; $r1 = $sp | |
| 223e: 84 01 movi55 $r0,#0x1 | |
| 2240: 94 84 slli333 $r2,$r0,#0x4 | |
| 2242: 49 ff ff 6b jal 0x2118 | |
| 2246: 84 21 movi55 $r1,#0x1 | |
| 2248: 80 ff mov55 $r7,$sp | |
| 224a: 4c 00 80 1d beq $r0,$r1,0x2284 | |
| 224e: 84 00 movi55 $r0,#0x0 | |
| 2250: 3e 07 ff de sbi.gp $r0,[+#-34] | |
| 2254: 48 00 00 18 j 0x2284 | |
| 2258: 2e 67 ff e0 lbi.gp $r6,[+#-32] | |
| 225c: c6 0a beqz38 $r6,0x2270 | |
| 225e: 49 ff fd 93 jal 0x1d84 | |
| 2262: 84 21 movi55 $r1,#0x1 | |
| 2264: 4c 00 80 10 beq $r0,$r1,0x2284 ; if | |
| 2268: 3e 77 ff e0 sbi.gp $r7,[+#-32] | |
| 226c: 48 00 00 0c j 0x2284 ; goto out | |
| 2270: 2e 07 ff e1 lbi.gp $r0,[+#-31] | |
| 2274: c0 08 beqz38 $r0,0x2284 | |
| 2276: 49 ff fc e9 jal 0x1c48 | |
| 227a: 84 21 movi55 $r1,#0x1 | |
| 227c: 4c 00 80 04 beq $r0,$r1,0x2284 | |
| 2280: 3e 67 ff e1 sbi.gp $r6,[+#-31] | |
| 2284: ec 10 addi10.sp #0x10 | |
| 2286: 3a 6f a0 84 lmw.bim $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 228a: dd 9e ret5 $lp | |
| ; ----------- 0x228c: setup_gpio_b8_output() | |
| 228c: 46 00 01 f6 sethi $r0,#0x1f6 ; GPIO: 0x001f6800~0x001f6bff | |
| 2290: 58 00 08 80 ori $r0,$r0,#0x880 ; GPIO offset 0x80: GPIOB base offset | |
| 2294: b4 20 lwi450 $r1,[$r0] ; $r1 = GPIO_ACT_PB | |
| 2296: 58 10 81 00 ori $r1,$r1,#0x100 ; | |
| 229a: b6 20 swi450 $r1,[$r0] ; set GPIOB8 active | |
| 229c: a0 41 lwi333 $r1,[$r0+#0x4] | |
| 229e: 42 10 a0 09 bclr $r1,$r1,#0x8 | |
| 22a2: a8 41 swi333 $r1,[$r0+#0x4] ; set GPIOB8 as output | |
| 22a4: a0 42 lwi333 $r1,[$r0+#0x8] | |
| 22a6: 58 10 81 00 ori $r1,$r1,#0x100 | |
| 22aa: a8 42 swi333 $r1,[$r0+#0x8] ; set GPIOB8 to open-drain | |
| 22ac: 44 10 01 00 movi $r1,#0x100 | |
| 22b0: 14 10 00 08 swi $r1,[$r0+#0x20] ; set GPIOB8 status high | |
| 22b4: dd 9e ret5 $lp | |
| 22b6: 92 00 nop16 | |
| ; ----------- 0x22b8: setup_gpiob_and_timer2() | |
| 22b8: 46 00 01 f6 sethi $r0,#0x1f6 | |
| 22bc: 58 00 08 80 ori $r0,$r0,#0x880 ; $r0 = GPIO offset 0x80: GPIOB base offset | |
| 22c0: b4 40 lwi450 $r2,[$r0] ; $r2 = which GPIO pins are enabled? | |
| 22c2: 58 21 40 00 ori $r2,$r2,#0x4000 ; $r2 |= 0x4000 (enable GPIO 14) | |
| 22c6: b6 40 swi450 $r2,[$r0] ; enable GPIOB14 | |
| 22c8: 46 10 02 02 sethi $r1,#0x202 ; Timer2: 0x0020_2400~0x0020_27FF | |
| 22cc: a0 c1 lwi333 $r3,[$r0+#0x4] ; $r3 = [$r0+4] = GPIO_OEN_BP - output enabled? | |
| 22ce: 58 10 84 00 ori $r1,$r1,#0x400 ; $r1 = TIMER2 base offset | |
| 22d2: 42 31 b8 09 bclr $r3,$r3,#0xe ; $r3 = clear bit 14 (GPIO 14 = input) | |
| 22d6: a8 c1 swi333 $r3,[$r0+#0x4] ; GPIOB14 is now active for input | |
| 22d8: a0 c2 lwi333 $r3,[$r0+#0x8] ; $r3 = GPIO_OMOD_PB - 0=push/pull, 1=open-drain | |
| 22da: 84 41 movi55 $r2,#0x1 ; | |
| 22dc: 58 31 c0 00 ori $r3,$r3,#0x4000 ; | |
| 22e0: a8 c2 swi333 $r3,[$r0+#0x8] ; GPIOB14 is now open-drain | |
| 22e2: b4 60 lwi450 $r3,[$r0] | |
| 22e4: 58 31 a0 00 ori $r3,$r3,#0x2000 ; Okay, now we're doing GPIOB13 | |
| 22e8: b6 60 swi450 $r3,[$r0] ; | |
| 22ea: a0 c1 lwi333 $r3,[$r0+#0x4] ; | |
| 22ec: 42 31 b4 09 bclr $r3,$r3,#0xd ; | |
| 22f0: a8 c1 swi333 $r3,[$r0+#0x4] ; | |
| 22f2: a0 c2 lwi333 $r3,[$r0+#0x8] ; | |
| 22f4: 58 31 a0 00 ori $r3,$r3,#0x2000 ; | |
| 22f8: a8 c2 swi333 $r3,[$r0+#0x8] ; Same deal - GPIOB13 open-drain input | |
| 22fa: b4 60 lwi450 $r3,[$r0] | |
| 22fc: 58 31 90 00 ori $r3,$r3,#0x1000 ; aaaand now we're doing GPIOB12 | |
| 2300: b6 60 swi450 $r3,[$r0] | |
| 2302: a0 c1 lwi333 $r3,[$r0+#0x4] | |
| 2304: 42 31 b0 09 bclr $r3,$r3,#0xc | |
| 2308: a8 c1 swi333 $r3,[$r0+#0x4] | |
| 230a: 44 40 80 00 movi $r4,#0x8000 | |
| 230e: a0 c2 lwi333 $r3,[$r0+#0x8] | |
| 2310: 58 31 90 00 ori $r3,$r3,#0x1000 | |
| 2314: a8 c2 swi333 $r3,[$r0+#0x8] | |
| 2316: b4 60 lwi450 $r3,[$r0] | |
| 2318: 40 31 90 04 or $r3,$r3,$r4 | |
| 231c: b6 60 swi450 $r3,[$r0] | |
| 231e: a0 c1 lwi333 $r3,[$r0+#0x4] | |
| 2320: 40 31 90 04 or $r3,$r3,$r4 | |
| 2324: a8 c1 swi333 $r3,[$r0+#0x4] | |
| 2326: a0 c5 lwi333 $r3,[$r0+#0x14] | |
| 2328: 42 31 bc 09 bclr $r3,$r3,#0xf | |
| 232c: a8 c5 swi333 $r3,[$r0+#0x14] | |
| 232e: a0 c6 lwi333 $r3,[$r0+#0x18] | |
| 2330: 42 31 bc 08 bset $r3,$r3,#0xf | |
| 2334: a8 c6 swi333 $r3,[$r0+#0x18] | |
| 2336: b4 60 lwi450 $r3,[$r0] | |
| 2338: 42 31 98 09 bclr $r3,$r3,#0x6 | |
| 233c: b6 60 swi450 $r3,[$r0] ; match control has "external match bit" | |
| 233e: 84 03 movi55 $r0,#0x3 ; (mctl: 00=none, 01=clear to 0, 10=set to 1, 11=toggle match bit) | |
| 2340: a8 0e swi333 $r0,[$r1+#0x18] ; TIMER2+0x18 = 0x3 (1:0 = match control mat0a, 3:2 = mat0b) | |
| 2342: 84 00 movi55 $r0,#0x0 ; | |
| 2344: a8 8f swi333 $r2,[$r1+#0x1c] ; TIMER2+0x1c = 0x1 (mat0a reset counter = 1) | |
| 2346: 14 00 80 0c swi $r0,[$r1+#0x30] ; TIMER2+0x32 = 0x0 (mat0a match register) | |
| 234a: 94 17 slli333 $r0,$r2,#0x7 ; | |
| 234c: b6 01 swi450 $r0,[$r1] | |
| 234e: b6 41 swi450 $r2,[$r1] | |
| 2350: b4 01 lwi450 $r0,[$r1] | |
| 2352: 42 00 3c 08 bset $r0,$r0,#0xf | |
| 2356: b6 01 swi450 $r0,[$r1] | |
| 2358: dd 9e ret5 $lp | |
| 235a: 92 00 nop16 | |
| ; ---------- 0x235c: setup_timer1() | |
| 235c: 46 00 02 02 sethi $r0,#0x202 ; $r0 = 0x0020_2000: TIMER1 base | |
| 2360: 44 20 00 10 movi $r2,#0x10 | |
| 2364: 14 20 00 11 swi $r2,[$r0+#0x44] ; set bit 4, TIMER1 offset 0x44: ie_mat0a, interrupt enable for mat0a | |
| 2368: 44 20 5d c0 movi $r2,#0x5dc0 | |
| 236c: 14 20 00 0c swi $r2,[$r0+#0x30] ; set TIMER1 offset 0x30: mat0a = 0x5dc0 (intr every 0x5dc0 ticks) | |
| 2370: 84 21 movi55 $r1,#0x1 | |
| 2372: 94 8f slli333 $r2,$r1,#0x7 | |
| 2374: a8 47 swi333 $r1,[$r0+#0x1c] ; TIMER1 offset 0x1c = 0x1: reset counter mat0a | |
| 2376: b6 40 swi450 $r2,[$r0] ; TIMER1 offset 0x00 = 0x80: debug enable | |
| 2378: b6 20 swi450 $r1,[$r0] ; TIMER1 offset 0x00 = 0x1: tctl_st (start timer!) | |
| 237a: 46 10 02 00 sethi $r1,#0x200 ; $r1 = 0x0020_0000 | |
| 237e: b4 40 lwi450 $r2,[$r0] | |
| 2380: 58 10 8d 00 ori $r1,$r1,#0xd00 ; $r1 = 0x0020_0d00: Wakeup/Interrupt (0x00200c00~0x00200fff) | |
| 2384: 42 21 3c 08 bset $r2,$r2,#0xf | |
| 2388: b6 40 swi450 $r2,[$r0] | |
| 238a: b4 01 lwi450 $r0,[$r1] | |
| 238c: 58 00 00 10 ori $r0,$r0,#0x10 | |
| 2390: b6 01 swi450 $r0,[$r1] ; set bit 4, IE0_TMR1: enable HW0 interrupt for TIMER1 | |
| 2392: dd 9e ret5 $lp | |
| 2394: 44 10 cd 20 movi $r1,#0xcd20 | |
| 2398: b4 01 lwi450 $r0,[$r1] | |
| 239a: a0 89 lwi333 $r2,[$r1+#0x4] | |
| 239c: b4 60 lwi450 $r3,[$r0] | |
| 239e: 40 41 08 05 nor $r4,$r2,$r2 | |
| 23a2: 40 31 0c 04 or $r3,$r2,$r3 | |
| 23a6: b6 60 swi450 $r3,[$r0] | |
| 23a8: 8c 28 addi45 $r1,#0x8 | |
| 23aa: a0 c1 lwi333 $r3,[$r0+#0x4] | |
| 23ac: 40 32 0c 02 and $r3,$r4,$r3 | |
| 23b0: a8 c1 swi333 $r3,[$r0+#0x4] | |
| 23b2: a0 c2 lwi333 $r3,[$r0+#0x8] | |
| 23b4: 40 21 88 04 or $r2,$r3,$r2 | |
| 23b8: a8 82 swi333 $r2,[$r0+#0x8] | |
| 23ba: 44 00 cd 60 movi $r0,#0xcd60 | |
| 23be: 4c 10 7f ed bne $r1,$r0,0x2398 | |
| 23c2: dd 9e ret5 $lp | |
| 23c4: 44 00 cd 20 movi $r0,#0xcd20 | |
| 23c8: b4 20 lwi450 $r1,[$r0] | |
| 23ca: a0 81 lwi333 $r2,[$r0+#0x4] | |
| 23cc: a0 c9 lwi333 $r3,[$r1+#0x4] | |
| 23ce: 8c 08 addi45 $r0,#0x8 | |
| 23d0: 40 31 0c 04 or $r3,$r2,$r3 | |
| 23d4: a8 c9 swi333 $r3,[$r1+#0x4] | |
| 23d6: a0 cd lwi333 $r3,[$r1+#0x14] | |
| 23d8: 40 21 88 04 or $r2,$r3,$r2 | |
| 23dc: a8 8d swi333 $r2,[$r1+#0x14] | |
| 23de: 44 10 cd 60 movi $r1,#0xcd60 | |
| 23e2: 4c 00 ff f3 bne $r0,$r1,0x23c8 | |
| 23e6: dd 9e ret5 $lp | |
| 23e8: 46 00 01 f6 sethi $r0,#0x1f6 | |
| 23ec: 58 00 08 80 ori $r0,$r0,#0x880 ; GPIO offset 0x80: GPIOB base offset | |
| 23f0: a0 41 lwi333 $r1,[$r0+#0x4] | |
| 23f2: 44 20 80 00 movi $r2,#0x8000 | |
| 23f6: 58 10 c0 00 ori $r1,$r1,#0x4000 | |
| 23fa: a8 41 swi333 $r1,[$r0+#0x4] | |
| 23fc: a0 45 lwi333 $r1,[$r0+#0x14] | |
| 23fe: 58 10 c0 00 ori $r1,$r1,#0x4000 | |
| 2402: a8 45 swi333 $r1,[$r0+#0x14] | |
| 2404: a0 41 lwi333 $r1,[$r0+#0x4] | |
| 2406: 58 10 a0 00 ori $r1,$r1,#0x2000 | |
| 240a: a8 41 swi333 $r1,[$r0+#0x4] | |
| 240c: a0 45 lwi333 $r1,[$r0+#0x14] | |
| 240e: 58 10 a0 00 ori $r1,$r1,#0x2000 | |
| 2412: a8 45 swi333 $r1,[$r0+#0x14] | |
| 2414: a0 41 lwi333 $r1,[$r0+#0x4] | |
| 2416: 58 10 90 00 ori $r1,$r1,#0x1000 | |
| 241a: a8 41 swi333 $r1,[$r0+#0x4] | |
| 241c: a0 45 lwi333 $r1,[$r0+#0x14] | |
| 241e: 58 10 90 00 ori $r1,$r1,#0x1000 | |
| 2422: a8 45 swi333 $r1,[$r0+#0x14] | |
| 2424: a0 41 lwi333 $r1,[$r0+#0x4] | |
| 2426: 40 10 88 04 or $r1,$r1,$r2 | |
| 242a: a8 41 swi333 $r1,[$r0+#0x4] | |
| 242c: a0 45 lwi333 $r1,[$r0+#0x14] | |
| 242e: 40 10 88 04 or $r1,$r1,$r2 | |
| 2432: a8 45 swi333 $r1,[$r0+#0x14] | |
| 2434: b4 20 lwi450 $r1,[$r0] | |
| 2436: 58 10 80 40 ori $r1,$r1,#0x40 | |
| 243a: b6 20 swi450 $r1,[$r0] | |
| 243c: a0 41 lwi333 $r1,[$r0+#0x4] | |
| 243e: 58 10 80 40 ori $r1,$r1,#0x40 | |
| 2442: a8 41 swi333 $r1,[$r0+#0x4] | |
| 2444: a0 45 lwi333 $r1,[$r0+#0x14] | |
| 2446: 58 10 80 40 ori $r1,$r1,#0x40 | |
| 244a: a8 45 swi333 $r1,[$r0+#0x14] | |
| 244c: dd 9e ret5 $lp | |
| 244e: 92 00 nop16 | |
| 2450: 46 10 01 f6 sethi $r1,#0x1f6 | |
| 2454: 58 10 88 80 ori $r1,$r1,#0x880 ; GPIO offset 0x80: GPIOB base offset | |
| 2458: b4 41 lwi450 $r2,[$r1] | |
| 245a: 58 21 00 10 ori $r2,$r2,#0x10 | |
| 245e: b6 41 swi450 $r2,[$r1] | |
| 2460: 50 00 81 00 addi $r0,$r1,#0x100 | |
| 2464: a0 c9 lwi333 $r3,[$r1+#0x4] | |
| 2466: 46 20 02 04 sethi $r2,#0x204 | |
| 246a: 58 31 80 10 ori $r3,$r3,#0x10 | |
| 246e: a8 c9 swi333 $r3,[$r1+#0x4] | |
| 2470: 58 21 08 00 ori $r2,$r2,#0x800 ; 0x0020_4800~0x0020_4bff: SPI1 | |
| 2474: a0 cd lwi333 $r3,[$r1+#0x14] | |
| 2476: 58 31 80 10 ori $r3,$r3,#0x10 | |
| 247a: a8 cd swi333 $r3,[$r1+#0x14] | |
| 247c: b4 61 lwi450 $r3,[$r1] | |
| 247e: 58 31 80 08 ori $r3,$r3,#0x8 | |
| 2482: b6 61 swi450 $r3,[$r1] | |
| 2484: a0 c9 lwi333 $r3,[$r1+#0x4] | |
| 2486: 58 31 80 08 ori $r3,$r3,#0x8 | |
| 248a: a8 c9 swi333 $r3,[$r1+#0x4] | |
| 248c: a0 cd lwi333 $r3,[$r1+#0x14] | |
| 248e: 58 31 80 08 ori $r3,$r3,#0x8 | |
| 2492: a8 cd swi333 $r3,[$r1+#0x14] | |
| 2494: b4 20 lwi450 $r1,[$r0] | |
| 2496: 58 10 80 08 ori $r1,$r1,#0x8 | |
| 249a: b6 20 swi450 $r1,[$r0] | |
| 249c: a0 41 lwi333 $r1,[$r0+#0x4] | |
| 249e: 58 10 80 08 ori $r1,$r1,#0x8 | |
| 24a2: a8 41 swi333 $r1,[$r0+#0x4] | |
| 24a4: a0 45 lwi333 $r1,[$r0+#0x14] | |
| 24a6: 58 10 80 08 ori $r1,$r1,#0x8 | |
| 24aa: a8 45 swi333 $r1,[$r0+#0x14] | |
| 24ac: b4 20 lwi450 $r1,[$r0] | |
| 24ae: 58 10 80 04 ori $r1,$r1,#0x4 | |
| 24b2: b6 20 swi450 $r1,[$r0] | |
| 24b4: a0 41 lwi333 $r1,[$r0+#0x4] | |
| 24b6: 58 10 80 04 ori $r1,$r1,#0x4 | |
| 24ba: a8 41 swi333 $r1,[$r0+#0x4] | |
| 24bc: a0 45 lwi333 $r1,[$r0+#0x14] | |
| 24be: 58 10 80 04 ori $r1,$r1,#0x4 | |
| 24c2: a8 45 swi333 $r1,[$r0+#0x14] | |
| 24c4: 04 10 00 08 lwi $r1,[$r0+#0x20] | |
| 24c8: 42 10 88 09 bclr $r1,$r1,#0x2 | |
| 24cc: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 24d0: b4 02 lwi450 $r0,[$r2] | |
| 24d2: 42 00 1c 09 bclr $r0,$r0,#0x7 | |
| 24d6: b6 02 swi450 $r0,[$r2] | |
| ; -------------- 0x24d8: called from HW0 | |
| 24d8: dd 9e ret5 $lp ; Return? THAT'S IT? wow | |
| 24da: 92 00 nop16 | |
| 24dc: 46 00 01 f6 sethi $r0,#0x1f6 | |
| 24e0: 58 00 08 80 ori $r0,$r0,#0x880 ; GPIO offset 0x80: GPIOB base offset | |
| 24e4: a0 41 lwi333 $r1,[$r0+#0x4] | |
| 24e6: 58 10 81 00 ori $r1,$r1,#0x100 | |
| 24ea: a8 41 swi333 $r1,[$r0+#0x4] | |
| 24ec: a0 45 lwi333 $r1,[$r0+#0x14] | |
| 24ee: 58 10 81 00 ori $r1,$r1,#0x100 | |
| 24f2: a8 45 swi333 $r1,[$r0+#0x14] | |
| 24f4: dd 9e ret5 $lp | |
| 24f6: 92 00 nop16 | |
| ; ----------- 0x24f8: messing with stuff at 0xcd20 | |
| 24f8: 3b ff fc bc smw.adm $sp,[$sp],$sp,#0x2 ! {$lp} | |
| 24fc: ef fc addi10.sp #-4 | |
| 24fe: 44 00 cd 20 movi $r0,#0xcd20 | |
| 2502: b4 20 lwi450 $r1,[$r0] | |
| 2504: a0 81 lwi333 $r2,[$r0+#0x4] | |
| 2506: a0 c9 lwi333 $r3,[$r1+#0x4] | |
| 2508: 8c 08 addi45 $r0,#0x8 | |
| 250a: 40 31 0c 04 or $r3,$r2,$r3 | |
| 250e: a8 c9 swi333 $r3,[$r1+#0x4] | |
| 2510: a0 cd lwi333 $r3,[$r1+#0x14] | |
| 2512: 40 21 88 04 or $r2,$r3,$r2 | |
| 2516: a8 8d swi333 $r2,[$r1+#0x14] | |
| 2518: 44 10 cd 60 movi $r1,#0xcd60 | |
| 251c: 4c 00 ff f3 bne $r0,$r1,0x2502 | |
| 2520: 49 ff ff 64 jal 0x23e8 | |
| 2524: 49 ff ff 96 jal 0x2450 | |
| 2528: 46 00 01 f6 sethi $r0,#0x1f6 | |
| 252c: 58 00 08 80 ori $r0,$r0,#0x880 ; GPIO offset 0x80: GPIOB base offset | |
| 2530: a0 81 lwi333 $r2,[$r0+#0x4] | |
| 2532: 46 10 02 06 sethi $r1,#0x206 | |
| 2536: 58 21 01 00 ori $r2,$r2,#0x100 ; | |
| 253a: a8 81 swi333 $r2,[$r0+#0x4] | |
| 253c: 58 10 84 00 ori $r1,$r1,#0x400 ; $r1 = 0x0020_6400, ADC base addr | |
| 2540: a0 85 lwi333 $r2,[$r0+#0x14] | |
| 2542: 58 21 01 00 ori $r2,$r2,#0x100 | |
| 2546: a8 85 swi333 $r2,[$r0+#0x14] | |
| 2548: b4 40 lwi450 $r2,[$r0] | |
| 254a: 58 21 00 01 ori $r2,$r2,#0x1 | |
| 254e: b6 40 swi450 $r2,[$r0] | |
| 2550: a0 85 lwi333 $r2,[$r0+#0x14] | |
| 2552: 58 21 00 01 ori $r2,$r2,#0x1 | |
| 2556: a8 85 swi333 $r2,[$r0+#0x14] | |
| 2558: b4 01 lwi450 $r0,[$r1] ; $r0 = ADC_CTL | |
| 255a: 42 00 1c 09 bclr $r0,$r0,#0x7 ; clear bit 7 (ADC_ON) | |
| 255e: b6 01 swi450 $r0,[$r1] ; power down ADC | |
| 2560: ec 04 addi10.sp #0x4 | |
| 2562: 3b ff fc 84 lmw.bim $sp,[$sp],$sp,#0x2 ! {$lp} | |
| 2566: dd 9e ret5 $lp | |
| ; ---------- 0x2568: setup_adc_dma() - sets up pin 26/GPIOB0 as ADC8, writing to $gp+0x38 via DMA | |
| ; ---------- I'm guessing this is the microphone input? | |
| 2568: 46 00 01 f6 sethi $r0,#0x1f6 | |
| 256c: 58 00 08 80 ori $r0,$r0,#0x880 ; GPIO offset 0x80: GPIOB base offset | |
| 2570: b4 40 lwi450 $r2,[$r0] ; $r0 = GPIOB | |
| 2572: 84 7e movi55 $r3,#-2 ; $r3 = 0xffff_fffe | |
| 2574: 40 21 0c 02 and $r2,$r2,$r3 ; | |
| 2578: b6 40 swi450 $r2,[$r0] ; clear bit 0 of GPIOB (disable GPIOB0) | |
| 257a: 46 10 02 06 sethi $r1,#0x206 ; | |
| 257e: a0 85 lwi333 $r2,[$r0+#0x14] ; $r2 = GPIO_REN_PB: resister enable | |
| 2580: 58 10 84 00 ori $r1,$r1,#0x400 ; $r1 = 0x0020_6400, ADC base offset | |
| 2584: 40 21 0c 02 and $r2,$r2,$r3 ; | |
| 2588: a8 85 swi333 $r2,[$r0+#0x14] ; disable internal resistor for GPIOB0 | |
| 258a: a0 86 lwi333 $r2,[$r0+#0x18] ; | |
| 258c: 40 21 0c 02 and $r2,$r2,$r3 ; | |
| 2590: a8 86 swi333 $r2,[$r0+#0x18] ; GPIOB0: internal resistor = pull-down mode | |
| 2592: 44 00 02 b0 movi $r0,#0x2b0 ; = 0010_1011_0000 | |
| 2596: a8 0b swi333 $r0,[$r1+#0xc] ; ADC 0x0c: continuous, clock 62.5kHz, 8-bit data | |
| 2598: 44 00 02 88 movi $r0,#0x288 ; = 0010_1000_1000 | |
| 259c: b6 01 swi450 $r0,[$r1] ; ADC 0x00: enable, input channel=8, enable DMA | |
| 259e: 44 00 00 91 movi $r0,#0x91 ; = 0000_1001_0001 | |
| 25a2: a8 0e swi333 $r0,[$r1+#0x18] ; ADC 0x18 (dual-channel): enable, input channel=9 | |
| 25a4: 46 20 02 06 sethi $r2,#0x206 ; | |
| 25a8: b4 61 lwi450 $r3,[$r1] ; $r3 = ADC_00 | |
| 25aa: 46 00 03 00 sethi $r0,#0x300 ; | |
| 25ae: 58 31 80 40 ori $r3,$r3,#0x40 ; | |
| 25b2: b6 61 swi450 $r3,[$r1] ; set bit 6 in ADC_CTL: STR_CVT, start ADC converter | |
| 25b4: 58 00 00 10 ori $r0,$r0,#0x10 ; $r0 = 0x0030_0010 - dma_saddr0, source address for DMA channel 0 | |
| 25b8: 58 21 04 04 ori $r2,$r2,#0x404 ; $r2 = 0x0020_6404 | |
| 25bc: 3e 18 00 38 addi.gp $r1,#0x38 | |
| 25c0: b6 40 swi450 $r2,[$r0] ; dma_saddr0 = 0020_6404 (AD_DATA - ADC convert data) | |
| 25c2: a8 41 swi333 $r1,[$r0+#0x4] ; dma_daddr0 = $gp+0x38 | |
| 25c4: 44 10 00 c8 movi $r1,#0xc8 | |
| 25c8: a8 42 swi333 $r1,[$r0+#0x8] ; dma_length0 = 0xc8 | |
| 25ca: 44 10 04 81 movi $r1,#0x481 ; 0b0000_0100_1000_0001: bit0 = channel enable, bit 7:6=10=src_addr fixed, | |
| 25ce: a8 43 swi333 $r1,[$r0+#0xc] ; dma_conf0 bit10=circ_mode enable | |
| 25d0: dd 9e ret5 $lp | |
| 25d2: 92 00 nop16 | |
| 25d4: 46 00 01 f6 sethi $r0,#0x1f6 | |
| 25d8: 58 00 08 80 ori $r0,$r0,#0x880 ; GPIO offset 0x80: GPIOB base offset | |
| 25dc: b4 40 lwi450 $r2,[$r0] | |
| 25de: 46 10 02 06 sethi $r1,#0x206 | |
| 25e2: 58 21 00 01 ori $r2,$r2,#0x1 | |
| 25e6: b6 40 swi450 $r2,[$r0] | |
| 25e8: 58 10 84 00 ori $r1,$r1,#0x400 | |
| 25ec: a0 85 lwi333 $r2,[$r0+#0x14] | |
| 25ee: 58 21 00 01 ori $r2,$r2,#0x1 | |
| 25f2: a8 85 swi333 $r2,[$r0+#0x14] | |
| 25f4: b4 01 lwi450 $r0,[$r1] | |
| 25f6: 42 00 1c 09 bclr $r0,$r0,#0x7 | |
| 25fa: b6 01 swi450 $r0,[$r1] | |
| 25fc: dd 9e ret5 $lp | |
| 25fe: 92 00 nop16 | |
| ; ---------- 0x2600: set up GPIOD | |
| 2600: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 2604: 46 60 01 f6 sethi $r6,#0x1f6 ; GPIO: 0x001f6800~0x001f6bff | |
| 2608: 58 63 09 80 ori $r6,$r6,#0x980 ; $r6 = 0x001f6980, base address for GPIOD | |
| 260c: b4 26 lwi450 $r1,[$r6] | |
| 260e: 84 5b movi55 $r2,#-5 | |
| 2610: 58 10 80 04 ori $r1,$r1,#0x4 | |
| 2614: b6 26 swi450 $r1,[$r6] | |
| 2616: 84 01 movi55 $r0,#0x1 | |
| 2618: a0 71 lwi333 $r1,[$r6+#0x4] | |
| 261a: 40 10 88 02 and $r1,$r1,$r2 | |
| 261e: a8 71 swi333 $r1,[$r6+#0x4] | |
| 2620: a0 72 lwi333 $r1,[$r6+#0x8] | |
| 2622: 40 10 88 02 and $r1,$r1,$r2 | |
| 2626: a8 72 swi333 $r1,[$r6+#0x8] | |
| 2628: 04 13 00 08 lwi $r1,[$r6+#0x20] | |
| 262c: 58 10 80 04 ori $r1,$r1,#0x4 | |
| 2630: 14 13 00 08 swi $r1,[$r6+#0x20] | |
| 2634: 49 00 0d ee jal 0x4210 | |
| 2638: 50 03 7f 00 addi $r0,$r6,#-256 | |
| 263c: b4 40 lwi450 $r2,[$r0] | |
| 263e: 42 21 10 09 bclr $r2,$r2,#0x4 | |
| 2642: b6 40 swi450 $r2,[$r0] | |
| 2644: 44 4f ff ef movi $r4,#-17 | |
| 2648: a0 c1 lwi333 $r3,[$r0+#0x4] | |
| 264a: 46 10 02 04 sethi $r1,#0x204 | |
| 264e: 40 31 90 02 and $r3,$r3,$r4 | |
| 2652: a8 c1 swi333 $r3,[$r0+#0x4] | |
| 2654: 46 20 0c 00 sethi $r2,#0xc00 | |
| 2658: a0 c2 lwi333 $r3,[$r0+#0x8] | |
| 265a: 58 10 88 00 ori $r1,$r1,#0x800 | |
| 265e: 40 31 90 02 and $r3,$r3,$r4 | |
| 2662: a8 c2 swi333 $r3,[$r0+#0x8] | |
| 2664: 84 97 movi55 $r4,#-9 | |
| 2666: b4 60 lwi450 $r3,[$r0] | |
| 2668: 40 31 90 02 and $r3,$r3,$r4 | |
| 266c: b6 60 swi450 $r3,[$r0] | |
| 266e: a0 c1 lwi333 $r3,[$r0+#0x4] | |
| 2670: 40 31 90 02 and $r3,$r3,$r4 | |
| 2674: a8 c1 swi333 $r3,[$r0+#0x4] | |
| 2676: a0 c2 lwi333 $r3,[$r0+#0x8] | |
| 2678: 40 31 90 02 and $r3,$r3,$r4 | |
| 267c: a8 c2 swi333 $r3,[$r0+#0x8] | |
| 267e: b4 06 lwi450 $r0,[$r6] | |
| 2680: 40 00 10 02 and $r0,$r0,$r4 | |
| 2684: b6 06 swi450 $r0,[$r6] | |
| 2686: a0 31 lwi333 $r0,[$r6+#0x4] | |
| 2688: 40 00 10 02 and $r0,$r0,$r4 | |
| 268c: a8 31 swi333 $r0,[$r6+#0x4] | |
| 268e: a0 32 lwi333 $r0,[$r6+#0x8] | |
| 2690: 40 00 10 02 and $r0,$r0,$r4 | |
| 2694: a8 32 swi333 $r0,[$r6+#0x8] | |
| 2696: 44 00 00 a3 movi $r0,#0xa3 | |
| 269a: b6 01 swi450 $r0,[$r1] | |
| 269c: a8 89 swi333 $r2,[$r1+#0x4] | |
| 269e: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 26a2: dd 9e ret5 $lp | |
| 26a4: 3b ff fc bc smw.adm $sp,[$sp],$sp,#0x2 ! {$lp} | |
| 26a8: ef fc addi10.sp #-4 | |
| 26aa: 44 10 cd 20 movi $r1,#0xcd20 | |
| 26ae: b4 01 lwi450 $r0,[$r1] | |
| 26b0: a0 89 lwi333 $r2,[$r1+#0x4] | |
| 26b2: b4 60 lwi450 $r3,[$r0] | |
| 26b4: 40 41 08 05 nor $r4,$r2,$r2 | |
| 26b8: 40 31 0c 04 or $r3,$r2,$r3 | |
| 26bc: b6 60 swi450 $r3,[$r0] | |
| 26be: 8c 28 addi45 $r1,#0x8 | |
| 26c0: a0 c1 lwi333 $r3,[$r0+#0x4] | |
| 26c2: 40 32 0c 02 and $r3,$r4,$r3 | |
| 26c6: a8 c1 swi333 $r3,[$r0+#0x4] | |
| 26c8: a0 c2 lwi333 $r3,[$r0+#0x8] | |
| 26ca: 40 21 88 04 or $r2,$r3,$r2 | |
| 26ce: a8 82 swi333 $r2,[$r0+#0x8] | |
| 26d0: 44 00 cd 60 movi $r0,#0xcd60 | |
| 26d4: 4c 10 7f ed bne $r1,$r0,0x26ae | |
| 26d8: 46 00 01 f6 sethi $r0,#0x1f6 | |
| 26dc: 58 00 08 80 ori $r0,$r0,#0x880 ; GPIO offset 0x80: GPIOB base offset | |
| 26e0: b4 20 lwi450 $r1,[$r0] | |
| 26e2: 58 10 81 00 ori $r1,$r1,#0x100 | |
| 26e6: b6 20 swi450 $r1,[$r0] | |
| 26e8: a0 41 lwi333 $r1,[$r0+#0x4] | |
| 26ea: 42 10 a0 09 bclr $r1,$r1,#0x8 | |
| 26ee: a8 41 swi333 $r1,[$r0+#0x4] | |
| 26f0: a0 42 lwi333 $r1,[$r0+#0x8] | |
| 26f2: 58 10 81 00 ori $r1,$r1,#0x100 | |
| 26f6: a8 42 swi333 $r1,[$r0+#0x8] | |
| 26f8: 44 10 01 00 movi $r1,#0x100 | |
| 26fc: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 2700: 49 ff fd dc jal 0x22b8 ; GPIO input setup / TIMER2 setup | |
| 2704: 49 ff ff 7e jal 0x2600 | |
| 2708: 49 00 04 0a jal 0x2f1c | |
| 270c: ec 04 addi10.sp #0x4 | |
| 270e: 3b ff fc 84 lmw.bim $sp,[$sp],$sp,#0x2 ! {$lp} | |
| 2712: 48 ff ff 2b j 0x2568 | |
| 2716: 92 00 nop16 | |
| 2718: 44 30 cc d8 movi $r3,#0xccd8 | |
| 271c: 44 10 cc d0 movi $r1,#0xccd0 | |
| 2720: a2 09 lwi333.bi $r0,[$r1],#0x4 ; $r0 = ccd0[0] | |
| 2722: a2 99 lwi333.bi $r2,[$r3],#0x4 ; $r2 = ccd8[0] | |
| 2724: b4 21 lwi450 $r1,[$r1] ; $r1 = ccd0[1] | |
| 2726: b4 63 lwi450 $r3,[$r3] ; $r3 = ccd8[1] | |
| 2728: a8 d7 swi333 $r3,[$r2+#0x1c] ; ccd8[0][7] = ccd8[1] | |
| 272a: 14 31 00 08 swi $r3,[$r2+#0x20] ; ccd8[0][8] = ccd8[1] | |
| 272e: a8 47 swi333 $r1,[$r0+#0x1c] ; ccd0[0][7] = ccd0[1] | |
| 2730: 14 10 00 08 swi $r1,[$r0+#0x20] ; ccd0[0][8] = ccd0[1] | |
| 2734: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 2736: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 273a: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 273c: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 2740: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 2742: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 2746: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 2748: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 274c: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 274e: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 2752: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 2754: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 2758: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 275a: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 275e: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 2760: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 2764: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 2766: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 276a: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 276c: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 2770: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 2772: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 2776: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 2778: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 277c: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 277e: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 2782: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 2784: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 2788: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 278a: dd 9e ret5 $lp | |
| 278c: 3a 6f a4 3c smw.adm $r6,[$sp],$r9,#0x0 ! {$r6~$r9} | |
| 2790: 44 10 cc d8 movi $r1,#0xccd8 | |
| 2794: 0c 80 80 01 lwi.bi $r8,[$r1],#0x4 | |
| 2798: 44 20 cc d0 movi $r2,#0xccd0 | |
| 279c: 44 30 cc c8 movi $r3,#0xccc8 | |
| 27a0: b5 21 lwi450 $r9,[$r1] | |
| 27a2: a2 51 lwi333.bi $r1,[$r2],#0x4 | |
| 27a4: a3 19 lwi333.bi $r4,[$r3],#0x4 | |
| 27a6: 14 94 00 07 swi $r9,[$r8+#0x1c] | |
| 27aa: b4 42 lwi450 $r2,[$r2] | |
| 27ac: a5 c2 lhi333 $r7,[$r0+#0x4] | |
| 27ae: b4 a3 lwi450 $r5,[$r3] | |
| 27b0: 44 30 00 0f movi $r3,#0xf | |
| 27b4: 40 63 8c 0e sra $r6,$r7,$r3 | |
| 27b8: 97 b4 xlsb33 $r6,$r6 | |
| 27ba: a8 8f swi333 $r2,[$r1+#0x1c] | |
| 27bc: c6 04 beqz38 $r6,0x27c4 | |
| 27be: 14 52 00 08 swi $r5,[$r4+#0x20] | |
| 27c2: d5 02 j8 0x27c6 | |
| 27c4: a9 67 swi333 $r5,[$r4+#0x1c] | |
| 27c6: 9e d9 subi333 $r3,$r3,#0x1 | |
| 27c8: 84 df movi55 $r6,#-1 | |
| 27ca: 14 20 80 08 swi $r2,[$r1+#0x20] | |
| 27ce: 4c 33 7f f3 bne $r3,$r6,0x27b4 | |
| 27d2: a5 c1 lhi333 $r7,[$r0+#0x2] | |
| 27d4: 44 30 00 0f movi $r3,#0xf | |
| 27d8: 40 63 8c 0e sra $r6,$r7,$r3 | |
| 27dc: 97 b4 xlsb33 $r6,$r6 | |
| 27de: a8 8f swi333 $r2,[$r1+#0x1c] | |
| 27e0: c6 04 beqz38 $r6,0x27e8 | |
| 27e2: 14 52 00 08 swi $r5,[$r4+#0x20] | |
| 27e6: d5 02 j8 0x27ea | |
| 27e8: a9 67 swi333 $r5,[$r4+#0x1c] | |
| 27ea: 9e d9 subi333 $r3,$r3,#0x1 | |
| 27ec: 84 df movi55 $r6,#-1 | |
| 27ee: 14 20 80 08 swi $r2,[$r1+#0x20] | |
| 27f2: 4c 33 7f f3 bne $r3,$r6,0x27d8 | |
| 27f6: d5 1c j8 0x282e | |
| 27f8: 84 ca movi55 $r6,#0xa | |
| 27fa: 4c 03 40 04 bne $r0,$r6,0x2802 | |
| 27fe: 14 94 00 08 swi $r9,[$r8+#0x20] | |
| 2802: 9e d9 subi333 $r3,$r3,#0x1 | |
| 2804: 40 63 8c 0e sra $r6,$r7,$r3 | |
| 2808: 97 b4 xlsb33 $r6,$r6 | |
| 280a: a8 8f swi333 $r2,[$r1+#0x1c] | |
| 280c: c6 04 beqz38 $r6,0x2814 | |
| 280e: 14 52 00 08 swi $r5,[$r4+#0x20] | |
| 2812: d5 02 j8 0x2816 | |
| 2814: a9 67 swi333 $r5,[$r4+#0x1c] | |
| 2816: 9e 01 subi333 $r0,$r0,#0x1 | |
| 2818: 96 02 seb33 $r0,$r0 | |
| 281a: 84 df movi55 $r6,#-1 | |
| 281c: 14 20 80 08 swi $r2,[$r1+#0x20] | |
| 2820: 4c 03 7f ec bne $r0,$r6,0x27f8 | |
| 2824: 14 94 00 07 swi $r9,[$r8+#0x1c] | |
| 2828: 3a 6f a4 04 lmw.bim $r6,[$sp],$r9,#0x0 ! {$r6~$r9} | |
| 282c: dd 9e ret5 $lp | |
| 282e: 84 6f movi55 $r3,#0xf | |
| 2830: a5 c0 lhi333 $r7,[$r0+#0x0] | |
| 2832: 80 03 mov55 $r0,$r3 | |
| 2834: d5 e8 j8 0x2804 | |
| 2836: 92 00 nop16 | |
| ; ----------- 0x2838: ??? using 0xccd8, 0xccd0, 0xcce0 | |
| 2838: 3a 6f a8 3c smw.adm $r6,[$sp],$r10,#0x0 ! {$r6~$r10} | |
| 283c: 44 40 cc d8 movi $r4,#0xccd8 | |
| 2840: 44 30 cc d0 movi $r3,#0xccd0 | |
| 2844: a2 99 lwi333.bi $r2,[$r3],#0x4 | |
| 2846: a3 61 lwi333.bi $r5,[$r4],#0x4 | |
| 2848: 44 10 cc e0 movi $r1,#0xcce0 | |
| 284c: b4 63 lwi450 $r3,[$r3] | |
| 284e: b4 84 lwi450 $r4,[$r4] | |
| 2850: a3 c9 lwi333.bi $r7,[$r1],#0x4 | |
| 2852: a9 2f swi333 $r4,[$r5+#0x1c] | |
| 2854: 85 20 movi55 $r9,#0x0 | |
| 2856: 14 42 80 08 swi $r4,[$r5+#0x20] | |
| 285a: b5 01 lwi450 $r8,[$r1] | |
| 285c: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 285e: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2862: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2864: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2868: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 286a: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 286e: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2870: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2874: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2876: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 287a: a9 2f swi333 $r4,[$r5+#0x1c] | |
| 287c: 9c 04 addi333 $r0,$r0,#0x4 | |
| 287e: 81 49 mov55 $r10,$r9 | |
| 2880: 44 60 00 01 movi $r6,#0x1 | |
| 2884: 12 a0 00 00 shi $r10,[$r0+#0x0] | |
| 2888: 84 2f movi55 $r1,#0xf | |
| 288a: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 288c: 40 53 04 0c sll $r5,$r6,$r1 | |
| 2890: a1 3b lwi333 $r4,[$r7+#0xc] | |
| 2892: 9e 49 subi333 $r1,$r1,#0x1 | |
| 2894: 40 44 10 02 and $r4,$r8,$r4 | |
| 2898: c4 05 beqz38 $r4,0x28a2 | |
| 289a: a5 00 lhi333 $r4,[$r0+#0x0] | |
| 289c: 40 52 90 04 or $r5,$r5,$r4 | |
| 28a0: ad 40 shi333 $r5,[$r0+#0x0] | |
| 28a2: 84 9f movi55 $r4,#-1 | |
| 28a4: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 28a8: 4c 12 7f f1 bne $r1,$r4,0x288a | |
| 28ac: 8d 21 addi45 $r9,#0x1 | |
| 28ae: 54 94 80 ff andi $r9,$r9,#0xff | |
| 28b2: 84 23 movi55 $r1,#0x3 | |
| 28b4: 9e 02 subi333 $r0,$r0,#0x2 | |
| 28b6: 4c 90 ff e7 bne $r9,$r1,0x2884 | |
| 28ba: 3a 6f a8 04 lmw.bim $r6,[$sp],$r10,#0x0 ! {$r6~$r10} | |
| 28be: dd 9e ret5 $lp | |
| 28c0: 44 30 cc d8 movi $r3,#0xccd8 | |
| 28c4: 44 10 cc d0 movi $r1,#0xccd0 | |
| 28c8: a2 09 lwi333.bi $r0,[$r1],#0x4 | |
| 28ca: a2 99 lwi333.bi $r2,[$r3],#0x4 | |
| 28cc: b4 21 lwi450 $r1,[$r1] | |
| 28ce: b4 63 lwi450 $r3,[$r3] | |
| 28d0: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 28d2: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 28d6: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 28d8: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 28dc: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 28de: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 28e2: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 28e4: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 28e8: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 28ea: dd 9e ret5 $lp | |
| 28ec: 3a 6f a4 3c smw.adm $r6,[$sp],$r9,#0x0 ! {$r6~$r9} | |
| 28f0: 44 10 cc d8 movi $r1,#0xccd8 | |
| 28f4: a3 c9 lwi333.bi $r7,[$r1],#0x4 | |
| 28f6: 44 30 cc d0 movi $r3,#0xccd0 | |
| 28fa: 44 40 cc c8 movi $r4,#0xccc8 | |
| 28fe: b5 01 lwi450 $r8,[$r1] | |
| 2900: a2 99 lwi333.bi $r2,[$r3],#0x4 | |
| 2902: a2 61 lwi333.bi $r1,[$r4],#0x4 | |
| 2904: 14 83 80 07 swi $r8,[$r7+#0x1c] | |
| 2908: b4 63 lwi450 $r3,[$r3] | |
| 290a: b4 84 lwi450 $r4,[$r4] | |
| 290c: 50 00 00 5e addi $r0,$r0,#0x5e | |
| 2910: 84 cf movi55 $r6,#0xf | |
| 2912: a5 40 lhi333 $r5,[$r0+#0x0] | |
| 2914: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2916: 40 92 80 11 seh $r9,$r5 | |
| 291a: 4e 94 00 07 bgez $r9,0x2928 | |
| 291e: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2922: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2926: d5 05 j8 0x2930 | |
| 2928: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 292c: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2930: 54 92 c0 00 andi $r9,$r5,#0x4000 | |
| 2934: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2938: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 293a: 4e 92 00 07 beqz $r9,0x2948 | |
| 293e: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2942: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2946: d5 05 j8 0x2950 | |
| 2948: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 294c: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2950: 54 92 a0 00 andi $r9,$r5,#0x2000 | |
| 2954: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2958: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 295a: 4e 92 00 07 beqz $r9,0x2968 | |
| 295e: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2962: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2966: d5 05 j8 0x2970 | |
| 2968: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 296c: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2970: 54 92 90 00 andi $r9,$r5,#0x1000 | |
| 2974: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2978: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 297a: 4e 92 00 07 beqz $r9,0x2988 | |
| 297e: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2982: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2986: d5 05 j8 0x2990 | |
| 2988: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 298c: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2990: 54 92 88 00 andi $r9,$r5,#0x800 | |
| 2994: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2998: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 299a: 4e 92 00 07 beqz $r9,0x29a8 | |
| 299e: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 29a2: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 29a6: d5 05 j8 0x29b0 | |
| 29a8: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 29ac: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 29b0: 54 92 84 00 andi $r9,$r5,#0x400 | |
| 29b4: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 29b8: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 29ba: 4e 92 00 07 beqz $r9,0x29c8 | |
| 29be: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 29c2: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 29c6: d5 05 j8 0x29d0 | |
| 29c8: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 29cc: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 29d0: 54 92 82 00 andi $r9,$r5,#0x200 | |
| 29d4: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 29d8: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 29da: 4e 92 00 07 beqz $r9,0x29e8 | |
| 29de: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 29e2: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 29e6: d5 05 j8 0x29f0 | |
| 29e8: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 29ec: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 29f0: 54 92 81 00 andi $r9,$r5,#0x100 | |
| 29f4: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 29f8: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 29fa: 4e 92 00 07 beqz $r9,0x2a08 | |
| 29fe: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2a02: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2a06: d5 05 j8 0x2a10 | |
| 2a08: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2a0c: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2a10: 54 92 80 80 andi $r9,$r5,#0x80 | |
| 2a14: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2a18: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2a1a: 4e 92 00 07 beqz $r9,0x2a28 | |
| 2a1e: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2a22: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2a26: d5 05 j8 0x2a30 | |
| 2a28: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2a2c: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2a30: 54 92 80 40 andi $r9,$r5,#0x40 | |
| 2a34: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2a38: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2a3a: 4e 92 00 07 beqz $r9,0x2a48 | |
| 2a3e: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2a42: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2a46: d5 05 j8 0x2a50 | |
| 2a48: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2a4c: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| ; ---- This is the HW1-HW5 interrupt jump table | |
| ; ---- Address for HWn is 0x2a4c + (n << 2) | |
| ; ---- HW1: 0x2a50 | |
| ; ---- HW2: 0x2454 | |
| ; ---- HW3: 0x2458 | |
| ; ---- HW4: 0x245c | |
| ; ---- HW5: 0x2460 | |
| 2a50: 54 92 80 20 andi $r9,$r5,#0x20 | |
| 2a54: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2a58: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2a5a: 4e 92 00 07 beqz $r9,0x2a68 | |
| 2a5e: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2a62: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2a66: d5 05 j8 0x2a70 | |
| 2a68: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2a6c: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2a70: 54 92 80 10 andi $r9,$r5,#0x10 | |
| 2a74: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2a78: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2a7a: 4e 92 00 07 beqz $r9,0x2a88 | |
| 2a7e: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2a82: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2a86: d5 05 j8 0x2a90 | |
| 2a88: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2a8c: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2a90: 54 92 80 08 andi $r9,$r5,#0x8 | |
| 2a94: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2a98: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2a9a: 4e 92 00 07 beqz $r9,0x2aa8 | |
| 2a9e: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2aa2: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2aa6: d5 05 j8 0x2ab0 | |
| 2aa8: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2aac: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2ab0: 54 92 80 04 andi $r9,$r5,#0x4 | |
| 2ab4: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2ab8: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2aba: 4e 92 00 07 beqz $r9,0x2ac8 | |
| 2abe: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2ac2: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2ac6: d5 05 j8 0x2ad0 | |
| 2ac8: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2acc: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2ad0: 54 92 80 02 andi $r9,$r5,#0x2 | |
| 2ad4: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2ad8: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2ada: 4e 92 00 07 beqz $r9,0x2ae8 | |
| 2ade: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2ae2: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2ae6: d5 04 j8 0x2aee | |
| 2ae8: a9 0f swi333 $r4,[$r1+#0x1c] | |
| 2aea: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2aee: 97 6c xlsb33 $r5,$r5 | |
| 2af0: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2af4: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2af6: c5 06 beqz38 $r5,0x2b02 | |
| 2af8: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2afc: 04 50 80 08 lwi $r5,[$r1+#0x20] | |
| 2b00: d5 04 j8 0x2b08 | |
| 2b02: a9 0f swi333 $r4,[$r1+#0x1c] | |
| 2b04: 04 50 80 07 lwi $r5,[$r1+#0x1c] | |
| 2b08: 02 50 7f ff lhi $r5,[$r0+#-2] | |
| 2b0c: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2b10: 40 92 80 11 seh $r9,$r5 | |
| 2b14: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2b16: 4e 94 00 07 bgez $r9,0x2b24 | |
| 2b1a: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2b1e: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2b22: d5 05 j8 0x2b2c | |
| 2b24: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2b28: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2b2c: 54 92 c0 00 andi $r9,$r5,#0x4000 | |
| 2b30: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2b34: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2b36: 4e 92 00 07 beqz $r9,0x2b44 | |
| 2b3a: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2b3e: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2b42: d5 05 j8 0x2b4c | |
| 2b44: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2b48: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2b4c: 54 92 a0 00 andi $r9,$r5,#0x2000 | |
| 2b50: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2b54: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2b56: 4e 92 00 07 beqz $r9,0x2b64 | |
| 2b5a: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2b5e: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2b62: d5 05 j8 0x2b6c | |
| 2b64: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2b68: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2b6c: 54 92 90 00 andi $r9,$r5,#0x1000 | |
| 2b70: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2b74: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2b76: 4e 92 00 07 beqz $r9,0x2b84 | |
| 2b7a: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2b7e: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2b82: d5 05 j8 0x2b8c | |
| 2b84: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2b88: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2b8c: 54 92 88 00 andi $r9,$r5,#0x800 | |
| 2b90: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2b94: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2b96: 4e 92 00 07 beqz $r9,0x2ba4 | |
| 2b9a: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2b9e: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2ba2: d5 05 j8 0x2bac | |
| 2ba4: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2ba8: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2bac: 54 92 84 00 andi $r9,$r5,#0x400 | |
| 2bb0: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2bb4: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2bb6: 4e 92 00 07 beqz $r9,0x2bc4 | |
| 2bba: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2bbe: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2bc2: d5 05 j8 0x2bcc | |
| 2bc4: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2bc8: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2bcc: 54 92 82 00 andi $r9,$r5,#0x200 | |
| 2bd0: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2bd4: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2bd6: 4e 92 00 07 beqz $r9,0x2be4 | |
| 2bda: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2bde: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2be2: d5 05 j8 0x2bec | |
| 2be4: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2be8: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2bec: 54 92 81 00 andi $r9,$r5,#0x100 | |
| 2bf0: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2bf4: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2bf6: 4e 92 00 07 beqz $r9,0x2c04 | |
| 2bfa: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2bfe: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2c02: d5 05 j8 0x2c0c | |
| 2c04: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2c08: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2c0c: 54 92 80 80 andi $r9,$r5,#0x80 | |
| 2c10: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2c14: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2c16: 4e 92 00 07 beqz $r9,0x2c24 | |
| 2c1a: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2c1e: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2c22: d5 05 j8 0x2c2c | |
| 2c24: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2c28: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2c2c: 54 92 80 40 andi $r9,$r5,#0x40 | |
| 2c30: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2c34: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2c36: 4e 92 00 07 beqz $r9,0x2c44 | |
| 2c3a: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2c3e: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2c42: d5 05 j8 0x2c4c | |
| 2c44: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2c48: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2c4c: 54 92 80 20 andi $r9,$r5,#0x20 | |
| 2c50: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2c54: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2c56: 4e 92 00 07 beqz $r9,0x2c64 | |
| 2c5a: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2c5e: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2c62: d5 05 j8 0x2c6c | |
| 2c64: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2c68: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2c6c: 54 92 80 10 andi $r9,$r5,#0x10 | |
| 2c70: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2c74: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2c76: 4e 92 00 07 beqz $r9,0x2c84 | |
| 2c7a: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2c7e: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2c82: d5 05 j8 0x2c8c | |
| 2c84: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2c88: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2c8c: 54 92 80 08 andi $r9,$r5,#0x8 | |
| 2c90: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2c94: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2c96: 4e 92 00 07 beqz $r9,0x2ca4 | |
| 2c9a: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2c9e: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2ca2: d5 05 j8 0x2cac | |
| 2ca4: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2ca8: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2cac: 54 92 80 04 andi $r9,$r5,#0x4 | |
| 2cb0: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2cb4: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2cb6: 4e 92 00 07 beqz $r9,0x2cc4 | |
| 2cba: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2cbe: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2cc2: d5 05 j8 0x2ccc | |
| 2cc4: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2cc8: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2ccc: 54 92 80 02 andi $r9,$r5,#0x2 | |
| 2cd0: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2cd4: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2cd6: 4e 92 00 07 beqz $r9,0x2ce4 | |
| 2cda: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2cde: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2ce2: d5 04 j8 0x2cea | |
| 2ce4: a9 0f swi333 $r4,[$r1+#0x1c] | |
| 2ce6: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2cea: 97 6c xlsb33 $r5,$r5 | |
| 2cec: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2cf0: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2cf2: c5 06 beqz38 $r5,0x2cfe | |
| 2cf4: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2cf8: 04 50 80 08 lwi $r5,[$r1+#0x20] | |
| 2cfc: d5 04 j8 0x2d04 | |
| 2cfe: a9 0f swi333 $r4,[$r1+#0x1c] | |
| 2d00: 04 50 80 07 lwi $r5,[$r1+#0x1c] | |
| 2d04: 02 50 7f fe lhi $r5,[$r0+#-4] | |
| 2d08: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2d0c: 40 92 80 11 seh $r9,$r5 | |
| 2d10: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2d12: 4e 94 00 07 bgez $r9,0x2d20 | |
| 2d16: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2d1a: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2d1e: d5 05 j8 0x2d28 | |
| 2d20: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2d24: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2d28: 54 92 c0 00 andi $r9,$r5,#0x4000 | |
| 2d2c: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2d30: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2d32: 4e 92 00 07 beqz $r9,0x2d40 | |
| 2d36: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2d3a: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2d3e: d5 05 j8 0x2d48 | |
| ; -------------- 0x2d40: entrypoint for some interrupt handlers | |
| 2d40: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| ; -------------- 0x2d44: entrypoint for some other interrupt handlers | |
| 2d44: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| ; -------------- 0x2d48: HW0_int_handler($r0=0, $r1=0x2d48, $r2=caller's $sp, $r3=???, $r4=???, $r5=???) | |
| 2d48: 54 92 a0 00 andi $r9,$r5,#0x2000 | |
| 2d4c: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2d50: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2d52: 4e 92 00 07 beqz $r9,0x2d60 | |
| 2d56: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2d5a: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2d5e: d5 05 j8 0x2d68 | |
| 2d60: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2d64: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2d68: 54 92 90 00 andi $r9,$r5,#0x1000 | |
| 2d6c: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2d70: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2d72: 4e 92 00 07 beqz $r9,0x2d80 | |
| 2d76: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2d7a: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2d7e: d5 05 j8 0x2d88 | |
| 2d80: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2d84: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2d88: 54 92 88 00 andi $r9,$r5,#0x800 | |
| 2d8c: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2d90: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2d92: 4e 92 00 07 beqz $r9,0x2da0 | |
| 2d96: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2d9a: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2d9e: d5 05 j8 0x2da8 | |
| 2da0: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2da4: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2da8: 54 92 84 00 andi $r9,$r5,#0x400 | |
| 2dac: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2db0: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2db2: 4e 92 00 07 beqz $r9,0x2dc0 | |
| 2db6: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2dba: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2dbe: d5 05 j8 0x2dc8 | |
| 2dc0: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2dc4: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2dc8: 54 92 82 00 andi $r9,$r5,#0x200 | |
| 2dcc: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2dd0: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2dd2: 4e 92 00 07 beqz $r9,0x2de0 | |
| 2dd6: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2dda: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2dde: d5 05 j8 0x2de8 | |
| 2de0: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2de4: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2de8: 54 92 81 00 andi $r9,$r5,#0x100 | |
| 2dec: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2df0: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2df2: 4e 92 00 07 beqz $r9,0x2e00 | |
| 2df6: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2dfa: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2dfe: d5 05 j8 0x2e08 | |
| 2e00: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2e04: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2e08: 54 92 80 80 andi $r9,$r5,#0x80 | |
| 2e0c: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2e10: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2e12: 4e 92 00 07 beqz $r9,0x2e20 | |
| 2e16: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2e1a: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2e1e: d5 05 j8 0x2e28 | |
| 2e20: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2e24: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2e28: 54 92 80 40 andi $r9,$r5,#0x40 | |
| 2e2c: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2e30: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2e32: 4e 92 00 07 beqz $r9,0x2e40 | |
| 2e36: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2e3a: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2e3e: d5 05 j8 0x2e48 | |
| 2e40: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2e44: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2e48: 54 92 80 20 andi $r9,$r5,#0x20 | |
| 2e4c: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2e50: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2e52: 4e 92 00 07 beqz $r9,0x2e60 | |
| 2e56: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2e5a: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2e5e: d5 05 j8 0x2e68 | |
| 2e60: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2e64: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2e68: 54 92 80 10 andi $r9,$r5,#0x10 | |
| 2e6c: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2e70: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2e72: 4e 92 00 07 beqz $r9,0x2e80 | |
| 2e76: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2e7a: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2e7e: d5 05 j8 0x2e88 | |
| 2e80: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2e84: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2e88: 54 92 80 08 andi $r9,$r5,#0x8 | |
| 2e8c: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2e90: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2e92: 4e 92 00 07 beqz $r9,0x2ea0 | |
| 2e96: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2e9a: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2e9e: d5 05 j8 0x2ea8 | |
| 2ea0: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2ea4: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2ea8: 54 92 80 04 andi $r9,$r5,#0x4 | |
| 2eac: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2eb0: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2eb2: 4e 92 00 07 beqz $r9,0x2ec0 | |
| 2eb6: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2eba: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2ebe: d5 05 j8 0x2ec8 | |
| 2ec0: 14 40 80 07 swi $r4,[$r1+#0x1c] | |
| 2ec4: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2ec8: 54 92 80 02 andi $r9,$r5,#0x2 | |
| 2ecc: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2ed0: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2ed2: 4e 92 00 07 beqz $r9,0x2ee0 | |
| 2ed6: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2eda: 04 90 80 08 lwi $r9,[$r1+#0x20] | |
| 2ede: d5 04 j8 0x2ee6 | |
| 2ee0: a9 0f swi333 $r4,[$r1+#0x1c] | |
| 2ee2: 04 90 80 07 lwi $r9,[$r1+#0x1c] | |
| 2ee6: 97 6c xlsb33 $r5,$r5 | |
| 2ee8: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2eec: a8 d7 swi333 $r3,[$r2+#0x1c] | |
| 2eee: 14 83 80 08 swi $r8,[$r7+#0x20] | |
| 2ef2: c5 06 beqz38 $r5,0x2efe | |
| 2ef4: 14 40 80 08 swi $r4,[$r1+#0x20] | |
| 2ef8: 04 50 80 08 lwi $r5,[$r1+#0x20] | |
| 2efc: d5 03 j8 0x2f02 | |
| 2efe: a9 0f swi333 $r4,[$r1+#0x1c] | |
| 2f00: a1 4f lwi333 $r5,[$r1+#0x1c] | |
| 2f02: 9f b1 subi333 $r6,$r6,#0x1 | |
| 2f04: 97 b2 seb33 $r6,$r6 | |
| 2f06: 84 bf movi55 $r5,#-1 | |
| 2f08: 14 31 00 08 swi $r3,[$r2+#0x20] | |
| 2f0c: 9e 06 subi333 $r0,$r0,#0x6 | |
| 2f0e: 14 83 80 07 swi $r8,[$r7+#0x1c] | |
| 2f12: 4c 62 fd 00 bne $r6,$r5,0x2912 | |
| 2f16: 3a 6f a4 04 lmw.bim $r6,[$sp],$r9,#0x0 ! {$r6~$r9} | |
| 2f1a: dd 9e ret5 $lp | |
| ; ----------- 0x2f1c: messing with 0xcd80, called during system init | |
| 2f1c: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 2f20: ef ec addi10.sp #-20 | |
| 2f22: 44 00 cd 80 movi $r0,#0xcd80 | |
| 2f26: 3a 00 04 00 lmw.bi $r0,[$r0],$r1,#0x0 ! {$r0~$r1} | |
| 2f2a: 84 40 movi55 $r2,#0x0 | |
| 2f2c: 50 7f 80 08 addi $r7,$sp,#0x8 | |
| 2f30: 80 df mov55 $r6,$sp | |
| 2f32: b6 07 swi450 $r0,[$r7] | |
| 2f34: ac 7a shi333 $r1,[$r7+#0x4] | |
| 2f36: 12 2f 80 02 shi $r2,[$sp+#0x4] | |
| 2f3a: b6 5f swi450 $r2,[$sp] | |
| 2f3c: 85 09 movi55 $r8,#0x9 | |
| 2f3e: 45 c0 51 18 movi $fp,#0x5118 | |
| 2f42: d5 05 j8 0x2f4c | |
| 2f44: 4e 82 00 1c beqz $r8,0x2f7c | |
| 2f48: 40 80 80 10 seb $r8,$r1 | |
| 2f4c: 44 00 00 14 movi $r0,#0x14 | |
| 2f50: 49 00 09 86 jal 0x425c | |
| 2f54: dd 3c jral5 $fp | |
| 2f56: 80 07 mov55 $r0,$r7 | |
| 2f58: 49 ff fc 1a jal 0x278c | |
| 2f5c: 80 1f mov55 $r0,$sp | |
| 2f5e: 49 ff fc 6d jal 0x2838 | |
| 2f62: a4 30 lhi333 $r0,[$r6+#0x0] | |
| 2f64: 44 20 87 f0 movi $r2,#0x87f0 | |
| 2f68: 50 14 7f ff addi $r1,$r8,#-1 | |
| 2f6c: 4c 01 7f ec bne $r0,$r2,0x2f44 | |
| 2f70: a4 b1 lhi333 $r2,[$r6+#0x2] | |
| 2f72: 4c 20 7f e9 bne $r2,$r0,0x2f44 | |
| 2f76: a4 32 lhi333 $r0,[$r6+#0x4] | |
| 2f78: 4c 01 7f e6 bne $r0,$r2,0x2f44 | |
| 2f7c: ec 14 addi10.sp #0x14 | |
| 2f7e: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 2f82: dd 9e ret5 $lp | |
| ; ----------- 0x2f84 - ccf0_twiddle($r0) | |
| 2f84: 96 00 zeb33 $r0,$r0 ; clear all but the low byte (?) | |
| 2f86: c0 09 beqz38 $r0,0x2f98 ; if $r0 != 0: | |
| 2f88: 44 00 cc f0 movi $r0,#0xccf0 ; $r0 = 0xccf0 | |
| 2f8c: a2 41 lwi333.bi $r1,[$r0],#0x4 ; $r1 = [0xccf0] | |
| 2f8e: b4 00 lwi450 $r0,[$r0] ; $r0 = [0xccf4] | |
| 2f90: 14 00 80 08 swi $r0,[$r1+#0x20] ; [$r1+0x20] = $r0 | |
| 2f94: 48 00 00 07 j 0x2fa2 ; else: | |
| 2f98: 44 00 cc f0 movi $r0,#0xccf0 ; $r0 = 0xccf0 | |
| 2f9c: a2 41 lwi333.bi $r1,[$r0],#0x4 ; $r1 = [0xccf0] | |
| 2f9e: b4 00 lwi450 $r0,[$r0] ; $r0 = [0xccf4] | |
| 2fa0: a8 0f swi333 $r0,[$r1+#0x1c] ; [$r1+0x1c] = $r0 | |
| 2fa2: dd 9e ret5 $lp | |
| ; ---------- 0x2fa4 - func_2fa4(dest=$r0, b1=$r1, b2=$r2) | |
| 2fa4: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 2fa8: 97 90 zeb33 $r6,$r2 | |
| 2faa: 96 48 zeb33 $r1,$r1 | |
| 2fac: 84 47 movi55 $r2,#0x7 | |
| 2fae: 4c 11 00 12 beq $r1,$r2,0x2fd2 ; if b1 == 7: goto BYTE1_7 | |
| 2fb2: 84 48 movi55 $r2,#0x8 | |
| 2fb4: 4c 11 00 19 beq $r1,$r2,0x2fe6 ; if b1 == 8: goto BYTE1_8 | |
| 2fb8: 84 45 movi55 $r2,#0x5 | |
| 2fba: 4c 11 40 20 bne $r1,$r2,0x2ffa ; if b1 != 5: goto EXIT_FAIL | |
| 2fbe: 84 21 movi55 $r1,#0x1 | |
| 2fc0: 4c 60 c0 1d bne $r6,$r1,0x2ffa ; if b2 != 1: goto EXIT_FAIL | |
| 2fc4: 3e 1f ff 48 addi.gp $r1,#-184 ;label BYTE1_5_BYTE2_1: | |
| 2fc8: 84 46 movi55 $r2,#0x6 | |
| 2fca: 49 00 38 6d jal 0xa0a4 ; memcpy(dest=$r0, src=$gp-184, n=6) | |
| 2fce: 80 06 mov55 $r0,$r6 | |
| 2fd0: d5 16 j8 0x2ffc ; return 1 | |
| 2fd2: 84 41 movi55 $r2,#0x1 ;label BYTE1_7: | |
| 2fd4: 4c 61 40 13 bne $r6,$r2,0x2ffa ; if b2 != 1: goto EXIT_FAIL | |
| 2fd8: 3e 1f ff 40 addi.gp $r1,#-192 | |
| 2fdc: 84 46 movi55 $r2,#0x6 | |
| 2fde: 49 00 38 63 jal 0xa0a4 ; memcpy(dest=$r0, src=$gp-192, n=6) | |
| 2fe2: 80 06 mov55 $r0,$r6 | |
| 2fe4: d5 0c j8 0x2ffc ; return 1 | |
| 2fe6: 84 21 movi55 $r1,#0x1 ;label BYTE1_8: | |
| 2fe8: 4c 60 c0 09 bne $r6,$r1,0x2ffa ; if b2 != 1: goto EXIT_FAIL | |
| 2fec: 3e 1f ff 30 addi.gp $r1,#-208 | |
| 2ff0: 84 46 movi55 $r2,#0x6 | |
| 2ff2: 49 00 38 59 jal 0xa0a4 ; memcpy(dest=$r0, src=$gp-208, n=6) | |
| 2ff6: 80 06 mov55 $r0,$r6 | |
| 2ff8: d5 02 j8 0x2ffc ; return 1 | |
| 2ffa: 84 00 movi55 $r0,#0x0 ;label EXIT_FAIL: return 0 | |
| 2ffc: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 3000: dd 9e ret5 $lp | |
| 3002: 92 00 nop16 | |
| 3004: 3a 6f aa 3c smw.adm $r6,[$sp],$r10,#0x8 ! {$r6~$r10, $fp} | |
| 3008: 3c 3c 00 07 lwi.gp $r3,[+#0x1c] | |
| 300c: 44 00 d3 04 movi $r0,#0xd304 | |
| 3010: 44 20 d3 10 movi $r2,#0xd310 | |
| 3014: 44 70 00 2c movi $r7,#0x2c | |
| 3018: 45 c0 00 16 movi $fp,#0x16 | |
| 301c: 44 a0 ce 68 movi $r10,#0xce68 | |
| 3020: 3e 98 01 00 addi.gp $r9,#0x100 | |
| 3024: 20 60 00 00 lbsi $r6,[$r0+#0x0] | |
| 3028: 80 a3 mov55 $r5,$r3 | |
| 302a: 20 10 00 01 lbsi $r1,[$r0+#0x1] | |
| 302e: 42 53 1c 73 maddr32 $r5,$r6,$r7 | |
| 3032: 85 1f movi55 $r8,#-1 | |
| 3034: 38 42 85 10 lbs $r4,[$r5+($r1<<#0x1)] | |
| 3038: 9c 02 addi333 $r0,$r0,#0x2 | |
| 303a: 4c 44 40 21 bne $r4,$r8,0x307c | |
| 303e: 40 80 84 00 add $r8,$r1,$r1 | |
| 3042: 88 a8 add45 $r5,$r8 | |
| 3044: 20 52 80 01 lbsi $r5,[$r5+#0x1] | |
| 3048: dc 1a bnes38 $r4,0x307c | |
| 304a: 42 13 70 73 maddr32 $r1,$r6,$fp | |
| 304e: 99 89 add333 $r6,$r1,$r1 | |
| 3050: 44 40 ce 68 movi $r4,#0xce68 | |
| 3054: 99 b4 add333 $r6,$r6,$r4 | |
| 3056: 38 45 05 00 lb $r4,[$r10+($r1<<#0x1)] | |
| 305a: a6 71 lbi333 $r1,[$r6+#0x1] | |
| 305c: 95 24 slli333 $r4,$r4,#0x4 | |
| 305e: 99 21 add333 $r4,$r4,$r1 | |
| 3060: 94 62 slli333 $r1,$r4,#0x2 | |
| 3062: 3e 68 01 00 addi.gp $r6,#0x100 | |
| 3066: 00 81 00 00 lbi $r8,[$r2+#0x0] | |
| 306a: 98 4e add333 $r1,$r1,$r6 | |
| 306c: af 4b sbi333 $r5,[$r1+#0x3] | |
| 306e: 38 84 92 08 sb $r8,[$r9+($r4<<#0x2)] | |
| 3072: a7 52 lbi333 $r5,[$r2+#0x2] | |
| 3074: a7 11 lbi333 $r4,[$r2+#0x1] | |
| 3076: af 4a sbi333 $r5,[$r1+#0x2] | |
| 3078: 10 40 80 01 sbi $r4,[$r1+#0x1] | |
| 307c: 44 60 d3 10 movi $r6,#0xd310 | |
| 3080: 9c 94 addi333 $r2,$r2,#0x4 | |
| 3082: 4c 03 7f d1 bne $r0,$r6,0x3024 | |
| 3086: 50 01 80 58 addi $r0,$r3,#0x58 | |
| 308a: 20 10 00 14 lbsi $r1,[$r0+#0x14] | |
| 308e: 85 1f movi55 $r8,#-1 | |
| 3090: 4c 14 40 1a bne $r1,$r8,0x30c4 | |
| 3094: 2e 60 05 1b lbi.gp $r6,[+#0x51b] | |
| 3098: 44 10 00 ff movi $r1,#0xff | |
| ; ---------- 0x309c: weird_call_weird_math: $r1=multiplier, $r6=addr, $r7=mask(?), $r9=addr... | |
| 309c: 42 63 04 24 mul $r6,$r6,$r1 ; $r6 *= $r1 | |
| 30a0: 46 25 1e b8 sethi $r2,#0x51eb8 ; $r2 = 0x51eb8000 | |
| 30a4: 3e 18 02 68 addi.gp $r1,#0x268 ; $r1 = $gp+0x268 | |
| 30a8: 58 21 05 1f ori $r2,$r2,#0x51f ; $r2 = 0x51eb851f (combine with >> 5 -> divide by 100) | |
| 30ac: 42 63 08 68 mulsr64 $r6,$r6,$r2 ; ($r6, $r7) = ($r6 * 0x51eb851f) | |
| 30b0: 80 81 mov55 $r4,$r1 ; $r4 = $gp+0x268 | |
| 30b2: 84 5a movi55 $r2,#-6 ; $r2 = -6 | |
| 30b4: 18 22 00 01 sbi.bi $r2,[$r4],#0x1 ; [$r4] = -6; $r4++ | |
| 30b8: 40 53 94 0a srai $r5,$r7,#0x5 ; $r5 = $r6 // 100 | |
| 30bc: af 4b sbi333 $r5,[$r1+#0x3] ; [$gp+0x26b] = $r6 // 100 (????) | |
| 30be: ae a0 sbi333 $r2,[$r4+#0x0] | |
| 30c0: 10 20 80 02 sbi $r2,[$r1+#0x2] | |
| 30c4: 20 00 00 16 lbsi $r0,[$r0+#0x16] | |
| 30c8: 84 3f movi55 $r1,#-1 | |
| 30ca: 4c 00 c0 19 bne $r0,$r1,0x30fc | |
| 30ce: 2e 40 05 17 lbi.gp $r4,[+#0x517] | |
| 30d2: 44 00 00 ff movi $r0,#0xff | |
| 30d6: 42 42 00 24 mul $r4,$r4,$r0 | |
| 30da: 46 15 1e b8 sethi $r1,#0x51eb8 | |
| 30de: 3e 08 02 6c addi.gp $r0,#0x26c | |
| 30e2: 58 10 85 1f ori $r1,$r1,#0x51f | |
| 30e6: 42 42 04 68 mulsr64 $r4,$r4,$r1 | |
| 30ea: 80 40 mov55 $r2,$r0 | |
| 30ec: 84 3a movi55 $r1,#-6 | |
| 30ee: 18 11 00 01 sbi.bi $r1,[$r2],#0x1 | |
| 30f2: 40 42 94 0a srai $r4,$r5,#0x5 | |
| 30f6: af 03 sbi333 $r4,[$r0+#0x3] | |
| 30f8: ae 50 sbi333 $r1,[$r2+#0x0] | |
| 30fa: ae 42 sbi333 $r1,[$r0+#0x2] | |
| 30fc: 50 01 80 84 addi $r0,$r3,#0x84 | |
| 3100: 20 10 00 14 lbsi $r1,[$r0+#0x14] | |
| 3104: 84 5f movi55 $r2,#-1 | |
| 3106: 4c 11 40 19 bne $r1,$r2,0x3138 | |
| 310a: 2e 60 05 23 lbi.gp $r6,[+#0x523] | |
| 310e: 44 10 00 ff movi $r1,#0xff | |
| 3112: 42 63 04 24 mul $r6,$r6,$r1 | |
| 3116: 46 25 1e b8 sethi $r2,#0x51eb8 | |
| 311a: 3e 18 02 28 addi.gp $r1,#0x228 | |
| 311e: 58 21 05 1f ori $r2,$r2,#0x51f | |
| 3122: 42 63 08 68 mulsr64 $r6,$r6,$r2 | |
| 3126: 80 81 mov55 $r4,$r1 | |
| 3128: 84 5a movi55 $r2,#-6 | |
| 312a: 18 22 00 01 sbi.bi $r2,[$r4],#0x1 | |
| 312e: 40 53 94 0a srai $r5,$r7,#0x5 | |
| 3132: af 4b sbi333 $r5,[$r1+#0x3] | |
| 3134: ae a0 sbi333 $r2,[$r4+#0x0] | |
| 3136: ae 8a sbi333 $r2,[$r1+#0x2] | |
| 3138: 20 00 00 16 lbsi $r0,[$r0+#0x16] | |
| 313c: 84 9f movi55 $r4,#-1 | |
| 313e: 4c 02 40 19 bne $r0,$r4,0x3170 | |
| 3142: 2e 40 05 1f lbi.gp $r4,[+#0x51f] | |
| 3146: 44 00 00 ff movi $r0,#0xff | |
| 314a: 42 42 00 24 mul $r4,$r4,$r0 | |
| 314e: 46 15 1e b8 sethi $r1,#0x51eb8 | |
| 3152: 3e 08 02 2c addi.gp $r0,#0x22c | |
| 3156: 58 10 85 1f ori $r1,$r1,#0x51f | |
| 315a: 42 42 04 68 mulsr64 $r4,$r4,$r1 | |
| 315e: 80 40 mov55 $r2,$r0 | |
| 3160: 84 3a movi55 $r1,#-6 | |
| 3162: 18 11 00 01 sbi.bi $r1,[$r2],#0x1 | |
| 3166: 40 42 94 0a srai $r4,$r5,#0x5 | |
| 316a: af 03 sbi333 $r4,[$r0+#0x3] | |
| 316c: ae 50 sbi333 $r1,[$r2+#0x0] | |
| 316e: ae 42 sbi333 $r1,[$r0+#0x2] | |
| 3170: 20 01 80 f8 lbsi $r0,[$r3+#0xf8] | |
| 3174: 84 bf movi55 $r5,#-1 | |
| 3176: d8 19 bnes38 $r0,0x31a8 | |
| 3178: 2e 40 05 13 lbi.gp $r4,[+#0x513] | |
| 317c: 44 00 00 ff movi $r0,#0xff | |
| 3180: 42 42 00 24 mul $r4,$r4,$r0 | |
| 3184: 46 15 1e b8 sethi $r1,#0x51eb8 | |
| 3188: 3e 08 01 b0 addi.gp $r0,#0x1b0 | |
| 318c: 58 10 85 1f ori $r1,$r1,#0x51f | |
| 3190: 42 42 04 68 mulsr64 $r4,$r4,$r1 | |
| 3194: 80 40 mov55 $r2,$r0 | |
| 3196: 84 3a movi55 $r1,#-6 | |
| 3198: 18 11 00 01 sbi.bi $r1,[$r2],#0x1 | |
| 319c: 40 32 94 0a srai $r3,$r5,#0x5 | |
| 31a0: ae c3 sbi333 $r3,[$r0+#0x3] | |
| 31a2: ae 50 sbi333 $r1,[$r2+#0x0] | |
| 31a4: 10 10 00 02 sbi $r1,[$r0+#0x2] | |
| 31a8: 3a 6f aa 04 lmw.bim $r6,[$sp],$r10,#0x8 ! {$r6~$r10, $fp} | |
| 31ac: dd 9e ret5 $lp | |
| 31ae: 92 00 nop16 | |
| ; ----------- 0x31b0: func_31b0() | |
| ; ----------- callers: func_39c0, ... | |
| 31b0: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 31b4: ef ec addi10.sp #-20 | |
| 31b6: 46 00 01 00 sethi $r0,#0x100 | |
| 31ba: 3c ad ff 9f lwi.gp $r10,[+#-388] | |
| 31be: 4e a2 00 62 beqz $r10,0x3282 | |
| 31c2: 84 00 movi55 $r0,#0x0 | |
| 31c4: f0 81 swi37.sp $r0,[+#0x4] | |
| 31c6: 3c 0c 00 07 lwi.gp $r0,[+#0x1c] | |
| 31ca: 46 91 06 24 sethi $r9,#0x10624 | |
| 31ce: 58 94 8d d3 ori $r9,$r9,#0xdd3 ; $r9 = 0x1062_4dd3 (probably part of an optimized integer divide) | |
| 31d2: f0 82 swi37.sp $r0,[+#0x8] | |
| 31d4: 84 00 movi55 $r0,#0x0 | |
| 31d6: 14 9f 80 03 swi $r9,[$sp+#0xc] | |
| 31da: 2e 87 ff e3 lbi.gp $r8,[+#-29] | |
| 31de: 3e 68 03 5b addi.gp $r6,#0x35b | |
| 31e2: 3e 78 01 00 addi.gp $r7,#0x100 | |
| 31e6: 83 c0 mov55 $lp,$r0 | |
| 31e8: 45 c0 00 82 movi $fp,#0x82 | |
| 31ec: 81 20 mov55 $r9,$r0 | |
| 31ee: d5 3d j8 0x3268 | |
| 31f0: 20 02 80 00 lbsi $r0,[$r5+#0x0] | |
| 31f4: 84 3f movi55 $r1,#-1 | |
| 31f6: 4c 00 80 05 beq $r0,$r1,0x3200 | |
| 31fa: 20 12 80 01 lbsi $r1,[$r5+#0x1] | |
| 31fe: d5 05 j8 0x3208 | |
| 3200: 20 12 80 01 lbsi $r1,[$r5+#0x1] | |
| 3204: 4c 10 00 24 beq $r1,$r0,0x324c | |
| 3208: 00 22 7f fd lbi $r2,[$r4+#-3] | |
| 320c: 94 04 slli333 $r0,$r0,#0x4 | |
| 320e: 98 01 add333 $r0,$r0,$r1 | |
| 3210: 38 23 82 08 sb $r2,[$r7+($r0<<#0x2)] | |
| 3214: 94 42 slli333 $r1,$r0,#0x2 | |
| 3216: 3e 08 01 00 addi.gp $r0,#0x100 | |
| 321a: 98 88 add333 $r2,$r1,$r0 | |
| 321c: 00 12 7f fe lbi $r1,[$r4+#-2] | |
| 3220: ae 51 sbi333 $r1,[$r2+#0x1] | |
| 3222: 00 02 7f ff lbi $r0,[$r4+#-1] | |
| 3226: ae 12 sbi333 $r0,[$r2+#0x2] | |
| 3228: 4e 83 00 10 bnez $r8,0x3248 | |
| 322c: a6 60 lbi333 $r1,[$r4+#0x0] | |
| 322e: 00 05 00 00 lbi $r0,[$r10+#0x0] | |
| 3232: 42 00 80 24 mul $r0,$r1,$r0 | |
| 3236: 42 00 70 24 mul $r0,$r0,$fp | |
| 323a: 42 00 0c 68 mulsr64 $r0,$r0,$r3 | |
| 323e: 40 00 9c 0a srai $r0,$r1,#0x7 | |
| 3242: ae 13 sbi333 $r0,[$r2+#0x3] | |
| 3244: 48 00 00 04 j 0x324c | |
| 3248: 11 e1 00 03 sbi $lp,[$r2+#0x3] | |
| 324c: 9d 24 addi333 $r4,$r4,#0x4 | |
| 324e: 9d 6a addi333 $r5,$r5,#0x2 | |
| 3250: 4c 62 7f d0 bne $r6,$r4,0x31f0 | |
| 3254: f1 01 lwi37.sp $r1,[+#0x4] | |
| 3256: 8d 21 addi45 $r9,#0x1 | |
| 3258: 50 10 80 2c addi $r1,$r1,#0x2c | |
| 325c: 84 46 movi55 $r2,#0x6 | |
| 325e: f1 81 swi37.sp $r1,[+#0x4] | |
| 3260: 50 63 00 58 addi $r6,$r6,#0x58 | |
| 3264: 4c 91 00 0f beq $r9,$r2,0x3282 | |
| 3268: 44 40 00 58 movi $r4,#0x58 | |
| 326c: 42 44 90 24 mul $r4,$r9,$r4 | |
| 3270: f0 02 lwi37.sp $r0,[+#0x8] | |
| 3272: f1 01 lwi37.sp $r1,[+#0x4] | |
| 3274: 3e 28 03 00 addi.gp $r2,#0x300 | |
| 3278: 99 22 add333 $r4,$r4,$r2 | |
| 327a: 99 41 add333 $r5,$r0,$r1 | |
| 327c: 9d 23 addi333 $r4,$r4,#0x3 | |
| 327e: f3 03 lwi37.sp $r3,[+#0xc] | |
| 3280: d5 b8 j8 0x31f0 | |
| 3282: ec 14 addi10.sp #0x14 | |
| 3284: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 3288: dd 9e ret5 $lp | |
| 328a: 92 00 nop16 | |
| 328c: 3a 6f a0 bc smw.adm $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 3290: 3e 7f fe 7c addi.gp $r7,#-388 | |
| 3294: b4 27 lwi450 $r1,[$r7] | |
| 3296: 97 80 zeb33 $r6,$r0 | |
| 3298: c1 5e beqz38 $r1,0x3354 | |
| 329a: 54 83 00 04 andi $r8,$r6,#0x4 | |
| 329e: 4e 82 00 0f beqz $r8,0x32bc | |
| 32a2: a6 08 lbi333 $r0,[$r1+#0x0] | |
| 32a4: e6 14 slti45 $r0,#0x14 | |
| 32a6: e8 07 beqzs8 0x32b4 | |
| 32a8: 9c 01 addi333 $r0,$r0,#0x1 | |
| 32aa: ae 08 sbi333 $r0,[$r1+#0x0] | |
| 32ac: 85 01 movi55 $r8,#0x1 | |
| 32ae: 49 ff ff 81 jal 0x31b0 | |
| 32b2: d5 05 j8 0x32bc | |
| 32b4: 84 2c movi55 $r1,#0xc | |
| 32b6: 3e 17 ff e6 sbi.gp $r1,[+#-26] | |
| 32ba: 85 00 movi55 $r8,#0x0 | |
| 32bc: 54 03 00 08 andi $r0,$r6,#0x8 | |
| 32c0: c0 0e beqz38 $r0,0x32dc | |
| 32c2: b4 07 lwi450 $r0,[$r7] | |
| 32c4: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 32c6: c1 07 beqz38 $r1,0x32d4 | |
| 32c8: 9e 49 subi333 $r1,$r1,#0x1 | |
| 32ca: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 32cc: 85 01 movi55 $r8,#0x1 | |
| 32ce: 49 ff ff 71 jal 0x31b0 | |
| 32d2: d5 05 j8 0x32dc | |
| 32d4: 44 10 00 0c movi $r1,#0xc | |
| 32d8: 3e 17 ff e7 sbi.gp $r1,[+#-25] | |
| 32dc: 54 03 00 30 andi $r0,$r6,#0x30 | |
| 32e0: c0 08 beqz38 $r0,0x32f0 | |
| 32e2: 3c 1d ff e2 lwi.gp $r1,[+#-120] | |
| 32e6: c1 05 beqz38 $r1,0x32f0 | |
| 32e8: 80 06 mov55 $r0,$r6 | |
| 32ea: dd 21 jral5 $r1 | |
| 32ec: 48 00 00 20 j 0x332c | |
| 32f0: 54 03 00 10 andi $r0,$r6,#0x10 | |
| 32f4: c0 0c beqz38 $r0,0x330c | |
| 32f6: b4 07 lwi450 $r0,[$r7] | |
| 32f8: a6 41 lbi333 $r1,[$r0+#0x1] | |
| 32fa: e6 24 slti45 $r1,#0x4 | |
| 32fc: e8 05 beqzs8 0x3306 | |
| 32fe: 9c 49 addi333 $r1,$r1,#0x1 | |
| 3300: ae 41 sbi333 $r1,[$r0+#0x1] | |
| 3302: 85 01 movi55 $r8,#0x1 | |
| 3304: d5 04 j8 0x330c | |
| 3306: 84 2c movi55 $r1,#0xc | |
| 3308: 3e 17 ff e4 sbi.gp $r1,[+#-28] | |
| 330c: 54 03 00 20 andi $r0,$r6,#0x20 | |
| 3310: c0 0e beqz38 $r0,0x332c | |
| 3312: b4 07 lwi450 $r0,[$r7] | |
| 3314: a6 41 lbi333 $r1,[$r0+#0x1] | |
| 3316: c1 05 beqz38 $r1,0x3320 | |
| 3318: 9e 49 subi333 $r1,$r1,#0x1 | |
| 331a: ae 41 sbi333 $r1,[$r0+#0x1] | |
| 331c: 85 01 movi55 $r8,#0x1 | |
| 331e: d5 07 j8 0x332c | |
| 3320: 46 00 01 00 sethi $r0,#0x100 | |
| 3324: 44 10 00 0c movi $r1,#0xc | |
| 3328: 3e 17 ff e5 sbi.gp $r1,[+#-27] | |
| 332c: 54 63 00 40 andi $r6,$r6,#0x40 | |
| 3330: 4e 62 00 0a beqz $r6,0x3344 | |
| 3334: 46 00 01 00 sethi $r0,#0x100 | |
| 3338: 2e 17 ff e2 lbi.gp $r1,[+#-30] | |
| 333c: 5c 10 80 01 slti $r1,$r1,#0x1 | |
| 3340: 3e 17 ff e2 sbi.gp $r1,[+#-30] | |
| 3344: 4e 82 00 08 beqz $r8,0x3354 | |
| 3348: 46 00 01 00 sethi $r0,#0x100 | |
| 334c: 44 10 00 01 movi $r1,#0x1 | |
| 3350: 3e 17 ff de sbi.gp $r1,[+#-34] | |
| 3354: 3a 6f a0 84 lmw.bim $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 3358: dd 9e ret5 $lp | |
| 335a: 92 00 nop16 | |
| 335c: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 335e: 9e 89 subi333 $r2,$r1,#0x1 | |
| 3360: 96 90 zeb33 $r2,$r2 | |
| 3362: 5c f1 00 f1 slti $r15,$r2,#0xf1 | |
| 3366: e8 03 beqzs8 0x336c | |
| 3368: 3e 17 fe 78 sbi.gp $r1,[+#-392] | |
| 336c: 9c 81 addi333 $r2,$r0,#0x1 | |
| 336e: a6 50 lbi333 $r1,[$r2+#0x0] | |
| 3370: 9e c9 subi333 $r3,$r1,#0x1 | |
| 3372: 96 d8 zeb33 $r3,$r3 | |
| 3374: e6 63 slti45 $r3,#0x3 | |
| 3376: e8 03 beqzs8 0x337c | |
| 3378: 3e 17 fe 79 sbi.gp $r1,[+#-391] | |
| 337c: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 337e: 84 68 movi55 $r3,#0x8 | |
| 3380: 4c 11 80 27 beq $r1,$r3,0x33ce | |
| 3384: e6 29 slti45 $r1,#0x9 | |
| 3386: e8 08 beqzs8 0x3396 | |
| 3388: 84 65 movi55 $r3,#0x5 | |
| 338a: 4c 11 80 0e beq $r1,$r3,0x33a6 | |
| 338e: 84 67 movi55 $r3,#0x7 | |
| 3390: 4c 11 c0 35 bne $r1,$r3,0x33fa | |
| 3394: d5 13 j8 0x33ba | |
| 3396: 84 4e movi55 $r2,#0xe | |
| 3398: 4c 11 00 2b beq $r1,$r2,0x33ee | |
| 339c: 44 30 00 f1 movi $r3,#0xf1 | |
| 33a0: 4c 11 c0 2d bne $r1,$r3,0x33fa | |
| 33a4: d5 1f j8 0x33e2 | |
| 33a6: a6 50 lbi333 $r1,[$r2+#0x0] | |
| 33a8: 84 41 movi55 $r2,#0x1 | |
| 33aa: 4c 11 40 28 bne $r1,$r2,0x33fa | |
| 33ae: 9c 42 addi333 $r1,$r0,#0x2 | |
| 33b0: 3e 0f ff 48 addi.gp $r0,#-184 | |
| 33b4: 84 46 movi55 $r2,#0x6 | |
| 33b6: 48 00 36 77 j 0xa0a4 ; memcpy(void *dest=$r0, void *src=$r1, size_t n=$r2); return | |
| 33ba: a6 50 lbi333 $r1,[$r2+#0x0] | |
| 33bc: 84 61 movi55 $r3,#0x1 | |
| 33be: 4c 11 c0 1e bne $r1,$r3,0x33fa | |
| 33c2: 9c 42 addi333 $r1,$r0,#0x2 | |
| 33c4: 3e 0f ff 40 addi.gp $r0,#-192 | |
| 33c8: 84 46 movi55 $r2,#0x6 | |
| 33ca: 48 00 36 6d j 0xa0a4 ; memcpy(void *dest=$r0, void *src=$r1, size_t n=$r2); return | |
| 33ce: a6 50 lbi333 $r1,[$r2+#0x0] | |
| 33d0: 84 41 movi55 $r2,#0x1 | |
| 33d2: 4c 11 40 14 bne $r1,$r2,0x33fa | |
| 33d6: 9c 42 addi333 $r1,$r0,#0x2 | |
| 33d8: 3e 0f ff 30 addi.gp $r0,#-208 | |
| 33dc: 84 46 movi55 $r2,#0x6 | |
| 33de: 48 00 36 63 j 0xa0a4 ; memcpy(void *dest=$r0, void *src=$r1, size_t n=$r2); return | |
| 33e2: 9c 42 addi333 $r1,$r0,#0x2 | |
| 33e4: 3e 0f ff 38 addi.gp $r0,#-200 | |
| 33e8: 84 46 movi55 $r2,#0x6 | |
| 33ea: 48 00 36 5d j 0xa0a4 ; memcpy(void *dest=$r0, void *src=$r1, size_t n=$r2); return | |
| 33ee: 9c 42 addi333 $r1,$r0,#0x2 | |
| 33f0: 3e 0f ff 28 addi.gp $r0,#-216 | |
| 33f4: 84 46 movi55 $r2,#0x6 | |
| 33f6: 48 00 36 57 j 0xa0a4 ; memcpy(void *dest=$r0, void *src=$r1, size_t n=$r2); return | |
| 33fa: dd 9e ret5 $lp | |
| ; ----------- 0x33fc: what the FUCK is going on | |
| 33fc: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 3400: ef bc addi10.sp #-68 | |
| 3402: 2e 07 ff e9 lbi.gp $r0,[+#-23] | |
| 3406: 9c 01 addi333 $r0,$r0,#0x1 | |
| 3408: 55 e0 00 07 andi $lp,$r0,#0x7 | |
| 340c: 40 2f 18 08 slli $r2,$lp,#0x6 | |
| 3410: f2 82 swi37.sp $r2,[+#0x8] | |
| 3412: 3e a8 01 00 addi.gp $r10,#0x100 | |
| 3416: 40 75 08 00 add $r7,$r10,$r2 | |
| 341a: 01 c3 80 02 lbi $fp,[$r7+#0x2] | |
| 341e: a7 7b lbi333 $r5,[$r7+#0x3] | |
| 3420: 00 93 80 00 lbi $r9,[$r7+#0x0] | |
| 3424: 40 1f 10 08 slli $r1,$lp,#0x4 | |
| 3428: 15 cf 80 03 swi $fp,[$sp+#0xc] | |
| 342c: 9d 09 addi333 $r4,$r1,#0x1 | |
| 342e: 94 62 slli333 $r1,$r4,#0x2 | |
| 3430: 38 45 12 00 lb $r4,[$r10+($r4<<#0x2)] | |
| 3434: 04 8f 80 02 lwi $r8,[$sp+#0x8] | |
| 3438: f4 84 swi37.sp $r4,[+#0x10] | |
| 343a: 50 35 00 0c addi $r3,$r10,#0xc | |
| 343e: 88 68 add45 $r3,$r8 | |
| 3440: 40 85 04 00 add $r8,$r10,$r1 | |
| 3444: 00 14 00 02 lbi $r1,[$r8+#0x2] | |
| 3448: 40 0f 0c 08 slli $r0,$lp,#0x3 | |
| 344c: f1 85 swi37.sp $r1,[+#0x14] | |
| 344e: 9d 81 addi333 $r6,$r0,#0x1 | |
| 3450: 94 33 slli333 $r0,$r6,#0x3 | |
| 3452: 38 65 1b 00 lb $r6,[$r10+($r6<<#0x3)] | |
| 3456: 88 0a add45 $r0,$r10 | |
| 3458: f6 8a swi37.sp $r6,[+#0x28] | |
| 345a: 42 92 a4 24 mul $r9,$r5,$r9 | |
| 345e: 01 c0 00 02 lbi $fp,[$r0+#0x2] | |
| 3462: 8c 50 addi45 $r2,#0x10 | |
| 3464: 15 cf 80 0b swi $fp,[$sp+#0x2c] | |
| 3468: 88 4a add45 $r2,$r10 | |
| 346a: a6 5a lbi333 $r1,[$r3+#0x2] | |
| 346c: 14 9f 80 08 swi $r9,[$sp+#0x20] | |
| 3470: 40 9f 78 00 add $r9,$lp,$lp | |
| 3474: f1 8f swi37.sp $r1,[+#0x3c] | |
| 3476: 14 9f 80 09 swi $r9,[$sp+#0x24] | |
| 347a: 00 91 00 03 lbi $r9,[$r2+#0x3] | |
| 347e: 00 44 00 03 lbi $r4,[$r8+#0x3] | |
| 3482: 01 c0 00 03 lbi $fp,[$r0+#0x3] | |
| 3486: a6 5b lbi333 $r1,[$r3+#0x3] | |
| 3488: 14 9f 80 0c swi $r9,[$sp+#0x30] | |
| 348c: 3e 68 05 7c addi.gp $r6,#0x57c ; $r6 = $gp+0x57c | |
| 3490: a6 01 lbi333 $r0,[$r0+#0x1] | |
| 3492: a7 f9 lbi333 $r7,[$r7+#0x1] | |
| 3494: 00 84 00 01 lbi $r8,[$r8+#0x1] | |
| 3498: f0 86 swi37.sp $r0,[+#0x18] | |
| 349a: 42 82 20 24 mul $r8,$r4,$r8 | |
| 349e: a6 18 lbi333 $r0,[$r3+#0x0] | |
| 34a0: f0 87 swi37.sp $r0,[+#0x1c] | |
| 34a2: a6 d9 lbi333 $r3,[$r3+#0x1] | |
| 34a4: f3 8e swi37.sp $r3,[+#0x38] | |
| 34a6: a6 d0 lbi333 $r3,[$r2+#0x0] | |
| 34a8: f3 81 swi37.sp $r3,[+#0x4] | |
| 34aa: 00 91 00 01 lbi $r9,[$r2+#0x1] | |
| 34ae: f0 09 lwi37.sp $r0,[+#0x24] | |
| 34b0: b7 3f swi450 $r9,[$sp] | |
| 34b2: 50 90 00 01 addi $r9,$r0,#0x1 | |
| 34b6: f0 08 lwi37.sp $r0,[+#0x20] | |
| 34b8: 80 66 mov55 $r3,$r6 | |
| 34ba: 1a 01 80 01 shi.bi $r0,[$r3],#0x2 | |
| 34be: f0 05 lwi37.sp $r0,[+#0x14] | |
| 34c0: f3 89 swi37.sp $r3,[+#0x24] | |
| 34c2: f3 03 lwi37.sp $r3,[+#0xc] | |
| 34c4: 42 02 00 24 mul $r0,$r4,$r0 | |
| 34c8: 42 32 8c 24 mul $r3,$r5,$r3 | |
| 34cc: f0 8d swi37.sp $r0,[+#0x34] | |
| 34ce: f3 83 swi37.sp $r3,[+#0xc] | |
| 34d0: f3 0b lwi37.sp $r3,[+#0x2c] | |
| 34d2: f0 0f lwi37.sp $r0,[+#0x3c] | |
| 34d4: 42 3e 0c 24 mul $r3,$fp,$r3 | |
| 34d8: 42 00 80 24 mul $r0,$r1,$r0 | |
| 34dc: f3 8b swi37.sp $r3,[+#0x2c] | |
| 34de: f3 04 lwi37.sp $r3,[+#0x10] | |
| 34e0: f0 8f swi37.sp $r0,[+#0x3c] | |
| 34e2: 42 32 0c 24 mul $r3,$r4,$r3 | |
| 34e6: f0 06 lwi37.sp $r0,[+#0x18] | |
| 34e8: f3 84 swi37.sp $r3,[+#0x10] | |
| 34ea: f3 07 lwi37.sp $r3,[+#0x1c] | |
| 34ec: 14 8f 80 05 swi $r8,[$sp+#0x14] | |
| 34f0: 42 30 8c 24 mul $r3,$r1,$r3 | |
| 34f4: 04 8f 80 0a lwi $r8,[$sp+#0x28] | |
| 34f8: f3 86 swi37.sp $r3,[+#0x18] | |
| 34fa: 42 8e 20 24 mul $r8,$fp,$r8 | |
| 34fe: f3 01 lwi37.sp $r3,[+#0x4] | |
| 3500: 43 ce 00 24 mul $fp,$fp,$r0 | |
| 3504: f0 0c lwi37.sp $r0,[+#0x30] | |
| 3506: 14 8f 80 0a swi $r8,[$sp+#0x28] | |
| 350a: 42 00 0c 24 mul $r0,$r0,$r3 | |
| 350e: 04 8f 80 0e lwi $r8,[$sp+#0x38] | |
| 3512: f0 87 swi37.sp $r0,[+#0x1c] | |
| 3514: 42 10 a0 24 mul $r1,$r1,$r8 | |
| 3518: b4 1f lwi450 $r0,[$sp] | |
| 351a: 04 8f 80 0c lwi $r8,[$sp+#0x30] | |
| 351e: 42 52 9c 24 mul $r5,$r5,$r7 | |
| 3522: 42 84 00 24 mul $r8,$r8,$r0 | |
| 3526: f0 02 lwi37.sp $r0,[+#0x8] | |
| 3528: 14 8f 80 0e swi $r8,[$sp+#0x38] | |
| 352c: 50 85 00 24 addi $r8,$r10,#0x24 | |
| 3530: 89 00 add45 $r8,$r0 | |
| 3532: 50 75 00 14 addi $r7,$r10,#0x14 | |
| 3536: 50 45 00 18 addi $r4,$r10,#0x18 | |
| 353a: 50 35 00 1c addi $r3,$r10,#0x1c | |
| 353e: 98 d8 add333 $r3,$r3,$r0 | |
| 3540: 99 f8 add333 $r7,$r7,$r0 | |
| 3542: 99 20 add333 $r4,$r4,$r0 | |
| 3544: 14 8f 80 08 swi $r8,[$sp+#0x20] | |
| 3548: f0 03 lwi37.sp $r0,[+#0xc] | |
| 354a: 04 8f 80 09 lwi $r8,[$sp+#0x24] | |
| 354e: 40 94 94 08 slli $r9,$r9,#0x5 | |
| 3552: 12 54 00 00 shi $r5,[$r8+#0x0] | |
| 3556: ac 32 shi333 $r0,[$r6+#0x4] | |
| 3558: 04 8f 80 05 lwi $r8,[$sp+#0x14] | |
| 355c: f5 04 lwi37.sp $r5,[+#0x10] | |
| 355e: 12 83 00 04 shi $r8,[$r6+#0x8] | |
| 3562: f0 0d lwi37.sp $r0,[+#0x34] | |
| 3564: 04 8f 80 0b lwi $r8,[$sp+#0x2c] | |
| 3568: ad 73 shi333 $r5,[$r6+#0x6] | |
| 356a: f5 0a lwi37.sp $r5,[+#0x28] | |
| 356c: ac 35 shi333 $r0,[$r6+#0xa] | |
| 356e: 13 c3 00 07 shi $fp,[$r6+#0xe] | |
| 3572: 12 83 00 08 shi $r8,[$r6+#0x10] | |
| 3576: 12 13 00 0a shi $r1,[$r6+#0x14] | |
| 357a: 04 8f 80 0e lwi $r8,[$sp+#0x38] | |
| 357e: f1 07 lwi37.sp $r1,[+#0x1c] | |
| 3580: 05 cf 80 06 lwi $fp,[$sp+#0x18] | |
| 3584: f0 0f lwi37.sp $r0,[+#0x3c] | |
| 3586: ad 76 shi333 $r5,[$r6+#0xc] | |
| 3588: 13 c3 00 09 shi $fp,[$r6+#0x12] | |
| 358c: 12 03 00 0b shi $r0,[$r6+#0x16] | |
| 3590: 12 13 00 0c shi $r1,[$r6+#0x18] | |
| 3594: 3f e7 ff e9 sbi.gp $lp,[+#-23] | |
| 3598: 12 83 00 0d shi $r8,[$r6+#0x1a] | |
| 359c: 89 2a add45 $r9,$r10 | |
| 359e: a6 92 lbi333 $r2,[$r2+#0x2] | |
| 35a0: f5 08 lwi37.sp $r5,[+#0x20] | |
| 35a2: f2 83 swi37.sp $r2,[+#0xc] | |
| 35a4: 01 c3 80 02 lbi $fp,[$r7+#0x2] | |
| 35a8: 15 cf 80 0d swi $fp,[$sp+#0x34] | |
| 35ac: a6 22 lbi333 $r0,[$r4+#0x2] | |
| 35ae: f0 8b swi37.sp $r0,[+#0x2c] | |
| 35b0: a6 5a lbi333 $r1,[$r3+#0x2] | |
| 35b2: f1 87 swi37.sp $r1,[+#0x1c] | |
| 35b4: 00 24 80 02 lbi $r2,[$r9+#0x2] | |
| 35b8: f2 8e swi37.sp $r2,[+#0x38] | |
| 35ba: a7 6b lbi333 $r5,[$r5+#0x3] | |
| 35bc: a6 3b lbi333 $r0,[$r7+#0x3] | |
| 35be: 01 c1 80 03 lbi $fp,[$r3+#0x3] | |
| 35c2: a6 a3 lbi333 $r2,[$r4+#0x3] | |
| 35c4: 01 e4 80 03 lbi $lp,[$r9+#0x3] | |
| 35c8: f5 89 swi37.sp $r5,[+#0x24] | |
| 35ca: 00 83 80 00 lbi $r8,[$r7+#0x0] | |
| 35ce: 14 8f 80 04 swi $r8,[$sp+#0x10] | |
| 35d2: a7 f9 lbi333 $r7,[$r7+#0x1] | |
| 35d4: f7 85 swi37.sp $r7,[+#0x14] | |
| 35d6: a6 60 lbi333 $r1,[$r4+#0x0] | |
| 35d8: f1 8a swi37.sp $r1,[+#0x28] | |
| 35da: a7 21 lbi333 $r4,[$r4+#0x1] | |
| 35dc: f4 86 swi37.sp $r4,[+#0x18] | |
| 35de: 00 44 80 01 lbi $r4,[$r9+#0x1] | |
| 35e2: 00 54 80 00 lbi $r5,[$r9+#0x0] | |
| 35e6: 04 9f 80 08 lwi $r9,[$sp+#0x20] | |
| 35ea: a7 d9 lbi333 $r7,[$r3+#0x1] | |
| 35ec: 00 14 80 01 lbi $r1,[$r9+#0x1] | |
| 35f0: 00 81 80 00 lbi $r8,[$r3+#0x0] | |
| 35f4: 00 34 80 00 lbi $r3,[$r9+#0x0] | |
| 35f8: b6 3f swi450 $r1,[$sp] | |
| 35fa: 04 9f 80 0c lwi $r9,[$sp+#0x30] | |
| 35fe: f1 03 lwi37.sp $r1,[+#0xc] | |
| 3600: 42 5f 14 24 mul $r5,$lp,$r5 | |
| 3604: 42 94 84 24 mul $r9,$r9,$r1 | |
| 3608: f1 0b lwi37.sp $r1,[+#0x2c] | |
| 360a: 14 9f 80 03 swi $r9,[$sp+#0xc] | |
| 360e: 04 9f 80 0d lwi $r9,[$sp+#0x34] | |
| 3612: 42 11 04 24 mul $r1,$r2,$r1 | |
| 3616: 42 90 24 24 mul $r9,$r0,$r9 | |
| 361a: f1 8b swi37.sp $r1,[+#0x2c] | |
| 361c: 14 9f 80 0d swi $r9,[$sp+#0x34] | |
| 3620: 04 9f 80 07 lwi $r9,[$sp+#0x1c] | |
| 3624: f1 0e lwi37.sp $r1,[+#0x38] | |
| 3626: 42 9e 24 24 mul $r9,$fp,$r9 | |
| 362a: 42 1f 04 24 mul $r1,$lp,$r1 | |
| 362e: 14 9f 80 07 swi $r9,[$sp+#0x1c] | |
| 3632: 04 9f 80 04 lwi $r9,[$sp+#0x10] | |
| 3636: f1 8f swi37.sp $r1,[+#0x3c] | |
| 3638: 42 90 24 24 mul $r9,$r0,$r9 | |
| 363c: f1 05 lwi37.sp $r1,[+#0x14] | |
| 363e: 14 9f 80 04 swi $r9,[$sp+#0x10] | |
| 3642: 42 90 04 24 mul $r9,$r0,$r1 | |
| 3646: f1 06 lwi37.sp $r1,[+#0x18] | |
| 3648: f0 0a lwi37.sp $r0,[+#0x28] | |
| 364a: 42 8e 20 24 mul $r8,$fp,$r8 | |
| 364e: 42 01 00 24 mul $r0,$r2,$r0 | |
| 3652: 42 21 04 24 mul $r2,$r2,$r1 | |
| 3656: f0 85 swi37.sp $r0,[+#0x14] | |
| 3658: f2 8a swi37.sp $r2,[+#0x28] | |
| 365a: f2 09 lwi37.sp $r2,[+#0x24] | |
| 365c: f5 8e swi37.sp $r5,[+#0x38] | |
| 365e: 42 31 0c 24 mul $r3,$r2,$r3 | |
| 3662: f5 02 lwi37.sp $r5,[+#0x8] | |
| 3664: f3 81 swi37.sp $r3,[+#0x4] | |
| 3666: b4 7f lwi450 $r3,[$sp] | |
| 3668: 50 05 00 38 addi $r0,$r10,#0x38 | |
| 366c: 42 11 0c 24 mul $r1,$r2,$r3 | |
| 3670: 98 05 add333 $r0,$r0,$r5 | |
| 3672: 50 25 00 34 addi $r2,$r10,#0x34 | |
| 3676: 14 8f 80 06 swi $r8,[$sp+#0x18] | |
| 367a: f0 8c swi37.sp $r0,[+#0x30] | |
| 367c: 42 8e 1c 24 mul $r8,$fp,$r7 | |
| 3680: f0 03 lwi37.sp $r0,[+#0xc] | |
| 3682: 41 c1 14 00 add $fp,$r2,$r5 | |
| 3686: f2 04 lwi37.sp $r2,[+#0x10] | |
| 3688: 43 ef 10 24 mul $lp,$lp,$r4 | |
| 368c: 50 75 00 28 addi $r7,$r10,#0x28 | |
| 3690: 50 45 00 2c addi $r4,$r10,#0x2c | |
| 3694: 50 35 00 30 addi $r3,$r10,#0x30 | |
| 3698: 98 dd add333 $r3,$r3,$r5 | |
| 369a: 99 fd add333 $r7,$r7,$r5 | |
| 369c: 99 25 add333 $r4,$r4,$r5 | |
| 369e: 12 03 00 0e shi $r0,[$r6+#0x1c] | |
| 36a2: 12 23 00 0f shi $r2,[$r6+#0x1e] | |
| 36a6: 12 93 00 10 shi $r9,[$r6+#0x20] | |
| 36aa: f5 0d lwi37.sp $r5,[+#0x34] | |
| 36ac: 04 9f 80 05 lwi $r9,[$sp+#0x14] | |
| 36b0: f0 0a lwi37.sp $r0,[+#0x28] | |
| 36b2: f2 0b lwi37.sp $r2,[+#0x2c] | |
| 36b4: 12 53 00 11 shi $r5,[$r6+#0x22] | |
| 36b8: 12 93 00 12 shi $r9,[$r6+#0x24] | |
| 36bc: 12 03 00 13 shi $r0,[$r6+#0x26] | |
| 36c0: 12 23 00 14 shi $r2,[$r6+#0x28] | |
| 36c4: f5 06 lwi37.sp $r5,[+#0x18] | |
| 36c6: 12 83 00 16 shi $r8,[$r6+#0x2c] | |
| 36ca: 04 9f 80 0e lwi $r9,[$sp+#0x38] | |
| 36ce: 04 8f 80 07 lwi $r8,[$sp+#0x1c] | |
| 36d2: f0 0f lwi37.sp $r0,[+#0x3c] | |
| 36d4: f2 01 lwi37.sp $r2,[+#0x4] | |
| 36d6: 12 53 00 15 shi $r5,[$r6+#0x2a] | |
| 36da: 12 83 00 17 shi $r8,[$r6+#0x2e] | |
| 36de: 12 93 00 18 shi $r9,[$r6+#0x30] | |
| 36e2: 13 e3 00 19 shi $lp,[$r6+#0x32] | |
| 36e6: 12 03 00 1a shi $r0,[$r6+#0x34] | |
| 36ea: 12 23 00 1b shi $r2,[$r6+#0x36] | |
| 36ee: 12 13 00 1c shi $r1,[$r6+#0x38] | |
| 36f2: f5 08 lwi37.sp $r5,[+#0x20] | |
| 36f4: a7 6a lbi333 $r5,[$r5+#0x2] | |
| 36f6: f5 88 swi37.sp $r5,[+#0x20] | |
| 36f8: 00 83 80 02 lbi $r8,[$r7+#0x2] | |
| 36fc: f5 0c lwi37.sp $r5,[+#0x30] | |
| 36fe: 14 8f 80 05 swi $r8,[$sp+#0x14] | |
| 3702: 00 92 00 02 lbi $r9,[$r4+#0x2] | |
| 3706: 14 9f 80 06 swi $r9,[$sp+#0x18] | |
| 370a: a6 1a lbi333 $r0,[$r3+#0x2] | |
| 370c: f0 87 swi37.sp $r0,[+#0x1c] | |
| 370e: 00 1e 00 02 lbi $r1,[$fp+#0x2] | |
| 3712: f1 8e swi37.sp $r1,[+#0x38] | |
| 3714: a6 78 lbi333 $r1,[$r7+#0x0] | |
| 3716: a6 2b lbi333 $r0,[$r5+#0x3] | |
| 3718: 00 83 80 03 lbi $r8,[$r7+#0x3] | |
| 371c: 00 92 00 03 lbi $r9,[$r4+#0x3] | |
| 3720: a6 9b lbi333 $r2,[$r3+#0x3] | |
| 3722: 01 ee 00 03 lbi $lp,[$fp+#0x3] | |
| 3726: f1 83 swi37.sp $r1,[+#0xc] | |
| 3728: a7 f9 lbi333 $r7,[$r7+#0x1] | |
| 372a: f7 84 swi37.sp $r7,[+#0x10] | |
| 372c: a7 60 lbi333 $r5,[$r4+#0x0] | |
| 372e: f5 8d swi37.sp $r5,[+#0x34] | |
| 3730: a7 21 lbi333 $r4,[$r4+#0x1] | |
| 3732: f4 8a swi37.sp $r4,[+#0x28] | |
| 3734: a6 58 lbi333 $r1,[$r3+#0x0] | |
| 3736: f1 8b swi37.sp $r1,[+#0x2c] | |
| 3738: f1 08 lwi37.sp $r1,[+#0x20] | |
| 373a: 00 4e 00 00 lbi $r4,[$fp+#0x0] | |
| 373e: 01 ce 00 01 lbi $fp,[$fp+#0x1] | |
| 3742: a7 59 lbi333 $r5,[$r3+#0x1] | |
| 3744: 15 cf 80 0f swi $fp,[$sp+#0x3c] | |
| 3748: 05 cf 80 09 lwi $fp,[$sp+#0x24] | |
| 374c: f3 0c lwi37.sp $r3,[+#0x30] | |
| 374e: 43 ce 04 24 mul $fp,$fp,$r1 | |
| 3752: a7 d8 lbi333 $r7,[$r3+#0x0] | |
| 3754: a6 d9 lbi333 $r3,[$r3+#0x1] | |
| 3756: 15 cf 80 08 swi $fp,[$sp+#0x20] | |
| 375a: f1 06 lwi37.sp $r1,[+#0x18] | |
| 375c: 05 cf 80 05 lwi $fp,[$sp+#0x14] | |
| 3760: 42 14 84 24 mul $r1,$r9,$r1 | |
| 3764: 43 c4 70 24 mul $fp,$r8,$fp | |
| 3768: f1 85 swi37.sp $r1,[+#0x14] | |
| 376a: f1 0e lwi37.sp $r1,[+#0x38] | |
| 376c: 15 cf 80 09 swi $fp,[$sp+#0x24] | |
| 3770: 42 1f 04 24 mul $r1,$lp,$r1 | |
| 3774: 05 cf 80 07 lwi $fp,[$sp+#0x1c] | |
| 3778: f1 87 swi37.sp $r1,[+#0x1c] | |
| 377a: 43 c1 70 24 mul $fp,$r2,$fp | |
| 377e: f1 03 lwi37.sp $r1,[+#0xc] | |
| 3780: 15 cf 80 06 swi $fp,[$sp+#0x18] | |
| 3784: 43 c4 04 24 mul $fp,$r8,$r1 | |
| 3788: f1 04 lwi37.sp $r1,[+#0x10] | |
| 378a: 42 4f 10 24 mul $r4,$lp,$r4 | |
| 378e: 42 84 04 24 mul $r8,$r8,$r1 | |
| 3792: f1 0d lwi37.sp $r1,[+#0x34] | |
| 3794: 13 c3 00 1e shi $fp,[$r6+#0x3c] | |
| 3798: 42 14 84 24 mul $r1,$r9,$r1 | |
| 379c: 12 83 00 1f shi $r8,[$r6+#0x3e] | |
| 37a0: f1 83 swi37.sp $r1,[+#0xc] | |
| 37a2: f1 0a lwi37.sp $r1,[+#0x28] | |
| 37a4: 04 8f 80 09 lwi $r8,[$sp+#0x24] | |
| 37a8: 42 94 84 24 mul $r9,$r9,$r1 | |
| 37ac: f1 0b lwi37.sp $r1,[+#0x2c] | |
| 37ae: 14 9f 80 04 swi $r9,[$sp+#0x10] | |
| 37b2: 42 91 04 24 mul $r9,$r2,$r1 | |
| 37b6: 42 21 14 24 mul $r2,$r2,$r5 | |
| 37ba: 50 15 00 3c addi $r1,$r10,#0x3c | |
| 37be: f5 0f lwi37.sp $r5,[+#0x3c] | |
| 37c0: 04 af 80 02 lwi $r10,[$sp+#0x8] | |
| 37c4: 43 ef 14 24 mul $lp,$lp,$r5 | |
| 37c8: 40 50 a8 00 add $r5,$r1,$r10 | |
| 37cc: f1 08 lwi37.sp $r1,[+#0x20] | |
| 37ce: 04 af 80 03 lwi $r10,[$sp+#0xc] | |
| 37d2: 12 13 00 1d shi $r1,[$r6+#0x3a] | |
| 37d6: 05 cf 80 04 lwi $fp,[$sp+#0x10] | |
| 37da: f1 05 lwi37.sp $r1,[+#0x14] | |
| 37dc: 12 23 00 25 shi $r2,[$r6+#0x4a] | |
| 37e0: f2 06 lwi37.sp $r2,[+#0x18] | |
| 37e2: 42 70 1c 24 mul $r7,$r0,$r7 | |
| 37e6: 42 30 0c 24 mul $r3,$r0,$r3 | |
| 37ea: 12 83 00 20 shi $r8,[$r6+#0x40] | |
| 37ee: 12 a3 00 21 shi $r10,[$r6+#0x42] | |
| 37f2: 13 c3 00 22 shi $fp,[$r6+#0x44] | |
| 37f6: 12 13 00 23 shi $r1,[$r6+#0x46] | |
| 37fa: 12 93 00 24 shi $r9,[$r6+#0x48] | |
| 37fe: 12 23 00 26 shi $r2,[$r6+#0x4c] | |
| 3802: 12 43 00 27 shi $r4,[$r6+#0x4e] | |
| 3806: 04 8f 80 07 lwi $r8,[$sp+#0x1c] | |
| 380a: 13 e3 00 28 shi $lp,[$r6+#0x50] | |
| 380e: 12 83 00 29 shi $r8,[$r6+#0x52] | |
| 3812: 12 73 00 2a shi $r7,[$r6+#0x54] | |
| 3816: 12 33 00 2b shi $r3,[$r6+#0x56] | |
| 381a: 04 9f 80 0c lwi $r9,[$sp+#0x30] | |
| 381e: a6 6b lbi333 $r1,[$r5+#0x3] | |
| 3820: 00 44 80 02 lbi $r4,[$r9+#0x2] | |
| 3824: a6 aa lbi333 $r2,[$r5+#0x2] | |
| 3826: a6 e8 lbi333 $r3,[$r5+#0x0] | |
| 3828: a7 69 lbi333 $r5,[$r5+#0x1] | |
| 382a: 42 40 10 24 mul $r4,$r0,$r4 | |
| 382e: 42 20 88 24 mul $r2,$r1,$r2 | |
| 3832: 42 30 8c 24 mul $r3,$r1,$r3 | |
| 3836: 42 10 94 24 mul $r1,$r1,$r5 | |
| 383a: 12 43 00 2c shi $r4,[$r6+#0x58] | |
| 383e: 12 33 00 2d shi $r3,[$r6+#0x5a] | |
| 3842: 12 23 00 2f shi $r2,[$r6+#0x5e] | |
| 3846: 12 13 00 2e shi $r1,[$r6+#0x5c] | |
| 384a: 80 06 mov55 $r0,$r6 | |
| 384c: 49 ff f8 50 jal 0x28ec | |
| 3850: 2e 07 ff e9 lbi.gp $r0,[+#-23] | |
| 3854: 44 60 cd 20 movi $r6,#0xcd20 | |
| 3858: 9c 07 addi333 $r0,$r0,#0x7 | |
| 385a: 9d f4 addi333 $r7,$r6,#0x4 | |
| 385c: 54 00 00 07 andi $r0,$r0,#0x7 | |
| 3860: 38 13 83 02 lw $r1,[$r7+($r0<<#0x3)] | |
| 3864: 38 03 03 02 lw $r0,[$r6+($r0<<#0x3)] | |
| 3868: 14 10 00 08 swi $r1,[$r0+#0x20] | |
| 386c: 49 ff f8 2a jal 0x28c0 | |
| 3870: 2e 07 ff e9 lbi.gp $r0,[+#-23] | |
| 3874: 38 13 83 02 lw $r1,[$r7+($r0<<#0x3)] | |
| 3878: 38 03 03 02 lw $r0,[$r6+($r0<<#0x3)] | |
| 387c: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 387e: ec 44 addi10.sp #0x44 | |
| 3880: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 3884: dd 9e ret5 $lp | |
| 3886: 92 00 nop16 | |
| ; ---------- 0x3888: ??? interesting bit twiddling | |
| 3888: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 388c: ef f4 addi10.sp #-12 | |
| 388e: 3f e8 05 3c addi.gp $lp,#0x53c | |
| 3892: 3f c8 05 24 addi.gp $fp,#0x524 | |
| 3896: 3e a8 05 54 addi.gp $r10,#0x554 | |
| 389a: 84 00 movi55 $r0,#0x0 | |
| 389c: 80 7e mov55 $r3,$lp | |
| 389e: 80 5c mov55 $r2,$fp | |
| 38a0: 80 2a mov55 $r1,$r10 | |
| 38a2: aa 19 swi333.bi $r0,[$r3],#0x4 | |
| 38a4: aa 11 swi333.bi $r0,[$r2],#0x4 | |
| 38a6: aa 09 swi333.bi $r0,[$r1],#0x4 | |
| 38a8: b6 03 swi450 $r0,[$r3] | |
| 38aa: b6 02 swi450 $r0,[$r2] | |
| 38ac: 50 3f 00 08 addi $r3,$lp,#0x8 | |
| 38b0: 50 2e 00 08 addi $r2,$fp,#0x8 | |
| 38b4: b6 01 swi450 $r0,[$r1] | |
| 38b6: 50 15 00 08 addi $r1,$r10,#0x8 | |
| 38ba: b6 03 swi450 $r0,[$r3] | |
| 38bc: b6 02 swi450 $r0,[$r2] | |
| 38be: 50 3f 00 0c addi $r3,$lp,#0xc | |
| 38c2: 50 2e 00 0c addi $r2,$fp,#0xc | |
| 38c6: b6 01 swi450 $r0,[$r1] | |
| 38c8: 50 15 00 0c addi $r1,$r10,#0xc | |
| 38cc: b6 03 swi450 $r0,[$r3] | |
| 38ce: b6 02 swi450 $r0,[$r2] | |
| 38d0: 50 3f 00 10 addi $r3,$lp,#0x10 | |
| 38d4: 50 2e 00 10 addi $r2,$fp,#0x10 | |
| 38d8: b6 01 swi450 $r0,[$r1] | |
| 38da: 50 15 00 10 addi $r1,$r10,#0x10 | |
| 38de: b6 03 swi450 $r0,[$r3] | |
| 38e0: b6 02 swi450 $r0,[$r2] | |
| 38e2: b6 01 swi450 $r0,[$r1] | |
| 38e4: 50 3f 00 14 addi $r3,$lp,#0x14 | |
| 38e8: 50 2e 00 14 addi $r2,$fp,#0x14 | |
| 38ec: 50 15 00 14 addi $r1,$r10,#0x14 | |
| 38f0: ac 18 shi333 $r0,[$r3+#0x0] | |
| 38f2: ac 10 shi333 $r0,[$r2+#0x0] | |
| 38f4: ac 08 shi333 $r0,[$r1+#0x0] | |
| 38f6: 81 00 mov55 $r8,$r0 | |
| 38f8: 3e 08 10 a0 addi.gp $r0,#0x10a0 | |
| 38fc: 3e 18 05 6c addi.gp $r1,#0x56c | |
| 3900: 38 70 20 00 lb $r7,[$r0+($r8<<#0x0)] | |
| 3904: 38 00 a0 00 lb $r0,[$r1+($r8<<#0x0)] | |
| 3908: 40 20 1c 04 or $r2,$r0,$r7 | |
| 390c: 40 14 20 00 add $r1,$r8,$r8 | |
| 3910: 44 30 cd 88 movi $r3,#0xcd88 | |
| 3914: 40 00 00 05 nor $r0,$r0,$r0 | |
| 3918: 98 4b add333 $r1,$r1,$r3 | |
| 391a: 40 03 80 02 and $r0,$r7,$r0 | |
| 391e: 40 91 1c 03 xor $r9,$r2,$r7 | |
| 3922: 14 8f 80 01 swi $r8,[$sp+#0x4] | |
| 3926: 9d 49 addi333 $r5,$r1,#0x1 | |
| 3928: 81 07 mov55 $r8,$r7 | |
| 392a: 84 c0 movi55 $r6,#0x0 | |
| 392c: 50 70 00 00 addi $r7,$r0,#0x0 | |
| 3930: 40 03 98 0e sra $r0,$r7,$r6 | |
| 3934: 40 24 18 0e sra $r2,$r8,$r6 | |
| 3938: 40 14 98 0e sra $r1,$r9,$r6 | |
| 393c: 96 04 xlsb33 $r0,$r0 | |
| 393e: 96 94 xlsb33 $r2,$r2 | |
| 3940: 96 4c xlsb33 $r1,$r1 | |
| 3942: 9d b1 addi333 $r6,$r6,#0x1 | |
| 3944: c0 0e beqz38 $r0,0x3960 | |
| 3946: 20 32 80 00 lbsi $r3,[$r5+#0x0] | |
| 394a: 20 02 ff ff lbsi $r0,[$r5+#-1] | |
| 394e: 84 81 movi55 $r4,#0x1 | |
| 3950: 40 02 00 0c sll $r0,$r4,$r0 | |
| 3954: 38 4e 0c 00 lb $r4,[$fp+($r3<<#0x0)] | |
| 3958: 40 00 10 04 or $r0,$r0,$r4 | |
| 395c: 38 0e 0c 08 sb $r0,[$fp+($r3<<#0x0)] | |
| 3960: c2 0e beqz38 $r2,0x397c | |
| 3962: 20 22 80 00 lbsi $r2,[$r5+#0x0] | |
| 3966: 20 02 ff ff lbsi $r0,[$r5+#-1] | |
| 396a: 38 3f 08 00 lb $r3,[$lp+($r2<<#0x0)] | |
| 396e: 84 81 movi55 $r4,#0x1 | |
| 3970: 40 02 00 0c sll $r0,$r4,$r0 | |
| 3974: 40 00 0c 04 or $r0,$r0,$r3 | |
| 3978: 38 0f 08 08 sb $r0,[$lp+($r2<<#0x0)] | |
| 397c: c1 0e beqz38 $r1,0x3998 | |
| 397e: 20 12 80 00 lbsi $r1,[$r5+#0x0] | |
| 3982: 20 02 ff ff lbsi $r0,[$r5+#-1] | |
| 3986: 38 25 04 00 lb $r2,[$r10+($r1<<#0x0)] | |
| 398a: 84 61 movi55 $r3,#0x1 | |
| 398c: 40 01 80 0c sll $r0,$r3,$r0 | |
| 3990: 40 00 08 04 or $r0,$r0,$r2 | |
| 3994: 38 05 04 08 sb $r0,[$r10+($r1<<#0x0)] | |
| 3998: 84 88 movi55 $r4,#0x8 | |
| 399a: 8c bc addi45 $r5,#0x1c | |
| 399c: 4c 62 7f ca bne $r6,$r4,0x3930 | |
| 39a0: 04 8f 80 01 lwi $r8,[$sp+#0x4] | |
| 39a4: 84 0f movi55 $r0,#0xf | |
| 39a6: 8d 01 addi45 $r8,#0x1 | |
| 39a8: 4c 80 7f a8 bne $r8,$r0,0x38f8 | |
| 39ac: 80 48 mov55 $r2,$r8 | |
| 39ae: 3e 08 05 6c addi.gp $r0,#0x56c | |
| 39b2: 3e 18 10 a0 addi.gp $r1,#0x10a0 | |
| 39b6: ec 0c addi10.sp #0xc | |
| 39b8: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 39bc: 48 00 33 74 j 0xa0a4 ; memcpy(void *dest=$r0, void *src=$r1, size_t n=$r2); return | |
| ; ----------- 0x39c0: func_39c0(arg=$r0) | |
| 39c0: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 39c4: 84 20 movi55 $r1,#0x0 | |
| 39c6: 2e 27 ff fa lbi.gp $r2,[+#-6] ; $r2 = [$gp-6] | |
| 39ca: 3e 17 ff e3 sbi.gp $r1,[+#-29] ; [$gp-29] = 0 | |
| 39ce: 3e 17 ff e2 sbi.gp $r1,[+#-30] ; [$gp-30] = 0 | |
| 39d2: 96 00 zeb33 $r0,$r0 | |
| 39d4: ca 04 bnez38 $r2,0x39dc ; if [$gp-6] == 0: | |
| 39d6: c0 75 beqz38 $r0,0x3ac0 ; if bytearg == 0: goto BYTEARG_EQ_0_SHORTCUT | |
| 39d8: 48 00 00 78 j 0x3ac8 ; else: goto 39c0_out | |
| 39dc: 84 40 movi55 $r2,#0x0 | |
| 39de: 3c 2f ff e2 swi.gp $r2,[+#-120] ; [$gp-120] = 0 | |
| 39e2: 84 47 movi55 $r2,#0x7 ; | |
| 39e4: 4c 01 00 40 beq $r0,$r2,0x3a64 ; if bytearg == 7: goto BYTEARG_EQ_7 | |
| 39e8: e6 08 slti45 $r0,#0x8 ; | |
| 39ea: e8 06 beqzs8 0x39f6 ; if bytearg >= 8: goto BYTEARG_GE_8 | |
| 39ec: c0 10 beqz38 $r0,0x3a0c ; if bytearg == 0: goto BYTEARG_EQ_0 | |
| 39ee: 84 25 movi55 $r1,#0x5 ; | |
| 39f0: 4c 00 c0 4d bne $r0,$r1,0x3a8a ; if bytearg != 5: goto BYTEARG_IN_1234 | |
| 39f4: d5 2e j8 0x3a50 ; else: goto BYTEARG_IN_56 | |
| ; label BYTEARG_GE_8: | |
| 39f6: 84 4e movi55 $r2,#0xe | |
| 39f8: 4c 01 00 22 beq $r0,$r2,0x3a3c ; if bytearg == 14: goto BYTEARG_EQ_14 | |
| 39fc: 44 20 00 f1 movi $r2,#0xf1 | |
| 3a00: 4c 01 00 10 beq $r0,$r2,0x3a20 ; if bytearg == 0xf1: goto BYTEARG_EQ_0xf1 | |
| 3a04: 84 28 movi55 $r1,#0x8 | |
| 3a06: 4c 00 c0 42 bne $r0,$r1,0x3a8a ; if bytearg != 8: goto BYTEARG_DEFAULT | |
| 3a0a: d5 37 j8 0x3a78 ; goto BYTEARG_EQ_8 | |
| ; label BYTEARG_EQ_0: | |
| 3a0c: 44 10 ac d0 movi $r1,#0xacd0 ; | |
| 3a10: 3c 1f ff e0 swi.gp $r1,[+#-128] ; [$gp-128] = 0xacd0 | |
| 3a14: 44 00 ad 9c movi $r0,#0xad9c | |
| 3a18: 3c 0f ff e1 swi.gp $r0,[+#-124] ; target_func = 0xad9c | |
| 3a1c: 48 00 00 3c j 0x3a94 ; goto BYTEARG_DONE | |
| ; label BYTEARG_EQ_0xf1: | |
| 3a20: 44 20 a5 50 movi $r2,#0xa550 | |
| 3a24: 3c 2f ff e0 swi.gp $r2,[+#-128] | |
| 3a28: 44 00 a2 e8 movi $r0,#0xa2e8 | |
| 3a2c: 3c 0f ff e2 swi.gp $r0,[+#-120] | |
| 3a30: 44 00 a6 90 movi $r0,#0xa690 | |
| 3a34: 3c 0f ff e1 swi.gp $r0,[+#-124] ; target_func = 0xa690 | |
| 3a38: 48 00 00 2e j 0x3a94 ; goto BYTEARG_DONE | |
| ; label BYTEARG_EQ_14: | |
| 3a3c: 44 10 9b b0 movi $r1,#0x9bb0 | |
| 3a40: 3c 1f ff e0 swi.gp $r1,[+#-128] | |
| 3a44: 44 00 9b 44 movi $r0,#0x9b44 ; target_func = 0x9bb4 | |
| 3a48: 3c 0f ff e1 swi.gp $r0,[+#-124] | |
| 3a4c: 48 00 00 24 j 0x3a94 ; goto BYTEARG_DONE | |
| ; label BYTEARG_IN_56: | |
| 3a50: 44 10 aa a0 movi $r1,#0xaaa0 | |
| 3a54: 3c 1f ff e0 swi.gp $r1,[+#-128] | |
| 3a58: 44 00 ac 74 movi $r0,#0xac74 ; target_func = 0xac74 | |
| 3a5c: 3c 0f ff e1 swi.gp $r0,[+#-124] | |
| 3a60: 48 00 00 1a j 0x3a94 ; goto BYTEARG_DONE | |
| ; label BYTEARG_EQ_7: | |
| 3a64: 44 10 a9 7c movi $r1,#0xa97c | |
| 3a68: 3c 1f ff e0 swi.gp $r1,[+#-128] | |
| 3a6c: 44 00 aa 60 movi $r0,#0xaa60 ; target_func = 0xaa60 | |
| 3a70: 3c 0f ff e1 swi.gp $r0,[+#-124] | |
| 3a74: 48 00 00 10 j 0x3a94 ; goto BYTEARG_DONE | |
| ; label BYTEARG_EQ_8: | |
| 3a78: 44 10 9c 40 movi $r1,#0x9c40 | |
| 3a7c: 3c 1f ff e0 swi.gp $r1,[+#-128] | |
| 3a80: 44 00 9e 28 movi $r0,#0x9e28 ; target_func = 0x9e28 | |
| 3a84: 3c 0f ff e1 swi.gp $r0,[+#-124] | |
| 3a88: d5 06 j8 0x3a94 ; goto BYTEARG_DONE | |
| ; label BYTEARG_IN_1234: | |
| 3a8a: 84 00 movi55 $r0,#0x0 | |
| 3a8c: 3c 0f ff e0 swi.gp $r0,[+#-128] | |
| 3a90: 3c 0f ff e1 swi.gp $r0,[+#-124] ; target_func = 0 | |
| ; label BYTEARG_DONE: | |
| 3a94: 44 10 00 00 movi $r1,#0x0 | |
| 3a98: 44 20 02 10 movi $r2,#0x210 | |
| 3a9c: 3e 08 03 00 addi.gp $r0,#0x300 | |
| 3aa0: 49 00 33 0c jal 0xa0b8 ; memset(dest=$gp+0x300, byte=0x00, size=0x210) | |
| 3aa4: 3c 0d ff e1 lwi.gp $r0,[+#-124] ; $r0 = [$gp-124] (target_func) | |
| 3aa8: 46 10 01 00 sethi $r1,#0x100 ; $r1 = 0x0010_0000 | |
| 3aac: 84 41 movi55 $r2,#0x1 ; $r2 = 1 | |
| 3aae: 3e 27 ff e8 sbi.gp $r2,[+#-24] ; $gp-24 = 1 | |
| 3ab2: c0 0b beqz38 $r0,0x3ac8 ; if target_func == 0: goto 39c0_out | |
| 3ab4: 4b e0 00 01 jral $lp,$r0 ; call target_func | |
| 3ab8: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 3abc: 48 ff fb 7a j 0x31b0 ; return func_31b0() | |
| ; label BYTEARG_EQ_0_SHORTCUT: | |
| 3ac0: 3c 0f ff e2 swi.gp $r0,[+#-120] ; [$gp-120] = 0 | |
| 3ac4: 48 ff ff a4 j 0x3a0c ; jump back to BYTEARG_EQ_0 | |
| ; label 39c0_out: | |
| 3ac8: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 3acc: dd 9e ret5 $lp | |
| 3ace: 92 00 nop16 | |
| ; ----------- 0x3ad0: mainloop_3ad0() | |
| 3ad0: 3a 6f a4 bc smw.adm $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 3ad4: ef fc addi10.sp #-4 | |
| 3ad6: 46 f0 01 00 sethi $r15,#0x100 | |
| 3ada: 2e 00 00 04 lbi.gp $r0,[+#0x4] | |
| 3ade: c0 33 beqz38 $r0,0x3b44 | |
| 3ae0: 46 00 01 00 sethi $r0,#0x100 | |
| 3ae4: 2e 50 00 05 lbi.gp $r5,[+#0x5] | |
| 3ae8: 2e 10 00 06 lbi.gp $r1,[+#0x6] | |
| 3aec: d1 5d beqs38 $r1,0x3ba6 | |
| 3aee: 85 00 movi55 $r8,#0x0 | |
| 3af0: 3e 50 00 06 sbi.gp $r5,[+#0x6] | |
| 3af4: 54 72 80 04 andi $r7,$r5,#0x4 | |
| 3af8: 97 ac xlsb33 $r6,$r5 | |
| 3afa: 80 48 mov55 $r2,$r8 | |
| 3afc: 54 52 80 02 andi $r5,$r5,#0x2 | |
| 3b00: 84 7f movi55 $r3,#-1 | |
| 3b02: 44 4f ff 82 movi $r4,#-126 | |
| 3b06: d5 17 j8 0x3b34 | |
| 3b08: 9c 49 addi333 $r1,$r1,#0x1 | |
| 3b0a: 96 48 zeb33 $r1,$r1 | |
| 3b0c: ae 80 sbi333 $r2,[$r0+#0x0] | |
| 3b0e: ae 81 sbi333 $r2,[$r0+#0x1] | |
| 3b10: ae 82 sbi333 $r2,[$r0+#0x2] | |
| 3b12: c6 03 beqz38 $r6,0x3b18 | |
| 3b14: 10 30 00 00 sbi $r3,[$r0+#0x0] | |
| 3b18: c5 02 beqz38 $r5,0x3b1c | |
| 3b1a: ae c1 sbi333 $r3,[$r0+#0x1] | |
| 3b1c: c7 02 beqz38 $r7,0x3b20 | |
| 3b1e: ae c2 sbi333 $r3,[$r0+#0x2] | |
| 3b20: 44 90 00 10 movi $r9,#0x10 | |
| 3b24: af 03 sbi333 $r4,[$r0+#0x3] | |
| 3b26: 9c 04 addi333 $r0,$r0,#0x4 | |
| 3b28: 4c 14 ff f0 bne $r1,$r9,0x3b08 | |
| 3b2c: 8d 01 addi45 $r8,#0x1 | |
| 3b2e: 84 08 movi55 $r0,#0x8 | |
| 3b30: 4c 80 00 3b beq $r8,$r0,0x3ba6 | |
| 3b34: 3e 18 01 00 addi.gp $r1,#0x100 | |
| 3b38: 40 04 18 08 slli $r0,$r8,#0x6 | |
| 3b3c: 98 01 add333 $r0,$r0,$r1 | |
| 3b3e: 84 20 movi55 $r1,#0x0 | |
| 3b40: 48 ff ff e4 j 0x3b08 | |
| 3b44: 3c 1d ff e3 lwi.gp $r1,[+#-116] | |
| 3b48: c9 10 bnez38 $r1,0x3b68 | |
| 3b4a: 46 30 01 00 sethi $r3,#0x100 | |
| 3b4e: 84 81 movi55 $r4,#0x1 | |
| 3b50: 3e 08 01 00 addi.gp $r0,#0x100 | |
| 3b54: 44 20 02 00 movi $r2,#0x200 | |
| 3b58: 3e 47 ff e8 sbi.gp $r4,[+#-24] | |
| 3b5c: 51 ff 80 04 addi $sp,$sp,#0x4 | |
| 3b60: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 3b64: 48 00 32 aa j 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2); return | |
| 3b68: 49 ff fe 90 jal 0x3888 | |
| 3b6c: 49 00 24 40 jal 0x83ec | |
| 3b70: 49 00 24 62 jal 0x8434 | |
| 3b74: 49 ff fa 48 jal 0x3004 | |
| 3b78: 3c 0d ff e0 lwi.gp $r0,[+#-128] | |
| 3b7c: c0 08 beqz38 $r0,0x3b8c | |
| 3b7e: 2e 17 ff e2 lbi.gp $r1,[+#-30] | |
| 3b82: c9 05 bnez38 $r1,0x3b8c | |
| 3b84: 4b e0 00 01 jral $lp,$r0 | |
| 3b88: c0 02 beqz38 $r0,0x3b8c | |
| 3b8a: d5 06 j8 0x3b96 | |
| 3b8c: 46 00 01 00 sethi $r0,#0x100 | |
| 3b90: 2e 17 ff e8 lbi.gp $r1,[+#-24] | |
| 3b94: c1 09 beqz38 $r1,0x3ba6 | |
| 3b96: 84 20 movi55 $r1,#0x0 | |
| 3b98: 3e 17 ff e8 sbi.gp $r1,[+#-24] | |
| 3b9c: ec 04 addi10.sp #0x4 | |
| 3b9e: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 3ba2: 48 ff fb 07 j 0x31b0 | |
| 3ba6: ec 04 addi10.sp #0x4 | |
| 3ba8: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 3bac: dd 9e ret5 $lp | |
| 3bae: 92 00 nop16 | |
| 3bb0: 3b ff fc bc smw.adm $sp,[$sp],$sp,#0x2 ! {$lp} | |
| 3bb4: ef fc addi10.sp #-4 | |
| 3bb6: 49 00 02 eb jal 0x418c | |
| 3bba: 96 00 zeb33 $r0,$r0 | |
| 3bbc: ec 04 addi10.sp #0x4 | |
| 3bbe: 3b ff fc 84 lmw.bim $sp,[$sp],$sp,#0x2 ! {$lp} | |
| 3bc2: dd 9e ret5 $lp | |
| 3bc4: 3a 6f a0 bc smw.adm $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 3bc8: 80 e1 mov55 $r7,$r1 | |
| 3bca: 80 c2 mov55 $r6,$r2 | |
| 3bcc: 50 80 00 00 addi $r8,$r0,#0x0 | |
| 3bd0: 49 00 02 de jal 0x418c | |
| 3bd4: 46 3a aa aa sethi $r3,#0xaaaaa | |
| 3bd8: 58 31 8a ab ori $r3,$r3,#0xaab | |
| 3bdc: 42 40 0c 69 mulr64 $r4,$r0,$r3 | |
| 3be0: 44 10 00 18 movi $r1,#0x18 | |
| 3be4: 40 32 90 09 srli $r3,$r5,#0x4 | |
| 3be8: 42 01 84 75 msubr32 $r0,$r3,$r1 | |
| 3bec: 80 60 mov55 $r3,$r0 | |
| 3bee: 44 00 d2 88 movi $r0,#0xd288 | |
| 3bf2: 38 30 0e 02 lw $r3,[$r0+($r3<<#0x2)] | |
| 3bf6: 40 21 c0 09 srli $r2,$r3,#0x10 | |
| 3bfa: 40 11 a0 09 srli $r1,$r3,#0x8 | |
| 3bfe: 10 34 00 00 sbi $r3,[$r8+#0x0] | |
| 3c02: ae 78 sbi333 $r1,[$r7+#0x0] | |
| 3c04: ae b0 sbi333 $r2,[$r6+#0x0] | |
| 3c06: 3a 6f a0 84 lmw.bim $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 3c0a: dd 9e ret5 $lp | |
| 3c0c: 3b ff fc bc smw.adm $sp,[$sp],$sp,#0x2 ! {$lp} | |
| 3c10: ef fc addi10.sp #-4 | |
| 3c12: 84 21 movi55 $r1,#0x1 | |
| 3c14: 3e 0f fe 78 addi.gp $r0,#-392 | |
| 3c18: 18 10 00 01 sbi.bi $r1,[$r0],#0x1 | |
| 3c1c: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 3c20: 49 00 1b 08 jal 0x7230 | |
| 3c24: 49 00 21 a4 jal 0x7f6c | |
| 3c28: 49 00 22 34 jal 0x8090 | |
| 3c2c: 49 00 23 48 jal 0x82bc | |
| 3c30: ec 04 addi10.sp #0x4 | |
| 3c32: 3b ff fc 84 lmw.bim $sp,[$sp],$sp,#0x2 ! {$lp} | |
| 3c36: 48 00 1a 7d j 0x7130 | |
| 3c3a: 92 00 nop16 | |
| 3c3c: ef f8 addi10.sp #-8 | |
| 3c3e: f0 81 swi37.sp $r0,[+#0x4] | |
| 3c40: f0 01 lwi37.sp $r0,[+#0x4] | |
| 3c42: c0 06 beqz38 $r0,0x3c4e | |
| 3c44: f0 01 lwi37.sp $r0,[+#0x4] | |
| 3c46: 9e 01 subi333 $r0,$r0,#0x1 | |
| 3c48: f0 81 swi37.sp $r0,[+#0x4] | |
| 3c4a: f0 01 lwi37.sp $r0,[+#0x4] | |
| 3c4c: c8 fc bnez38 $r0,0x3c44 | |
| 3c4e: ec 08 addi10.sp #0x8 | |
| 3c50: dd 9e ret5 $lp | |
| 3c52: 92 00 nop16 | |
| 3c54: 46 00 02 00 sethi $r0,#0x200 | |
| 3c58: 58 00 0c 04 ori $r0,$r0,#0xc04 | |
| 3c5c: b4 40 lwi450 $r2,[$r0] | |
| 3c5e: 58 21 18 00 ori $r2,$r2,#0x1800 | |
| 3c62: b6 40 swi450 $r2,[$r0] | |
| 3c64: 50 10 00 2c addi $r1,$r0,#0x2c | |
| 3c68: 84 01 movi55 $r0,#0x1 | |
| 3c6a: b6 01 swi450 $r0,[$r1] | |
| 3c6c: dd 9e ret5 $lp | |
| 3c6e: 92 00 nop16 | |
| 3c70: 46 00 02 00 sethi $r0,#0x200 | |
| 3c74: 58 00 0c 04 ori $r0,$r0,#0xc04 | |
| 3c78: b4 40 lwi450 $r2,[$r0] | |
| 3c7a: 44 3f e7 ff movi $r3,#-6145 | |
| 3c7e: 40 21 0c 02 and $r2,$r2,$r3 | |
| 3c82: b6 40 swi450 $r2,[$r0] | |
| 3c84: 50 10 00 2c addi $r1,$r0,#0x2c | |
| 3c88: 84 01 movi55 $r0,#0x1 | |
| 3c8a: b6 01 swi450 $r0,[$r1] | |
| 3c8c: dd 9e ret5 $lp | |
| 3c8e: 92 00 nop16 | |
| ; ---------- 0x3c90: standby_mode() | |
| 3c90: 46 10 02 00 sethi $r1,#0x200 | |
| 3c94: 58 10 8c 04 ori $r1,$r1,#0xc04 | |
| 3c98: b4 61 lwi450 $r3,[$r1] | |
| 3c9a: 46 20 02 00 sethi $r2,#0x200 | |
| 3c9e: 58 31 98 00 ori $r3,$r3,#0x1800 | |
| 3ca2: b6 61 swi450 $r3,[$r1] | |
| 3ca4: 58 21 0c 30 ori $r2,$r2,#0xc30 | |
| 3ca8: 84 21 movi55 $r1,#0x1 | |
| 3caa: 46 00 02 00 sethi $r0,#0x200 | |
| 3cae: b6 22 swi450 $r1,[$r2] | |
| 3cb0: 44 10 00 2f movi $r1,#0x2f | |
| 3cb4: b6 20 swi450 $r1,[$r0] | |
| 3cb6: 84 2f movi55 $r1,#0xf | |
| 3cb8: b6 20 swi450 $r1,[$r0] | |
| 3cba: 92 00 nop16 | |
| 3cbc: 92 00 nop16 | |
| 3cbe: 92 00 nop16 | |
| 3cc0: 92 00 nop16 | |
| 3cc2: 46 00 02 00 sethi $r0,#0x200 | |
| 3cc6: 04 00 03 06 lwi $r0,[$r0+#0xc18] | |
| 3cca: c8 07 bnez38 $r0,0x3cd8 | |
| 3ccc: 64 00 00 40 standby wait_done ; go to low-power state until woken up by external agent | |
| 3cd0: 92 00 nop16 | |
| 3cd2: 92 00 nop16 | |
| 3cd4: 92 00 nop16 | |
| 3cd6: 92 00 nop16 | |
| 3cd8: 92 00 nop16 | |
| 3cda: 46 00 02 00 sethi $r0,#0x200 | |
| 3cde: 58 00 0c 04 ori $r0,$r0,#0xc04 ; 0x00200c04: GPIOA_WK | |
| 3ce2: b4 40 lwi450 $r2,[$r0] | |
| 3ce4: 44 3f e7 ff movi $r3,#-6145 | |
| 3ce8: 40 21 0c 02 and $r2,$r2,$r3 | |
| 3cec: 46 10 02 00 sethi $r1,#0x200 | |
| 3cf0: b6 40 swi450 $r2,[$r0] | |
| 3cf2: 58 10 8c 30 ori $r1,$r1,#0xc30 | |
| 3cf6: 84 01 movi55 $r0,#0x1 | |
| 3cf8: b6 01 swi450 $r0,[$r1] | |
| 3cfa: dd 9e ret5 $lp | |
| 3cfc: 46 10 02 00 sethi $r1,#0x200 | |
| 3d00: 58 10 8c 04 ori $r1,$r1,#0xc04 | |
| 3d04: 44 20 00 ff movi $r2,#0xff | |
| 3d08: b6 41 swi450 $r2,[$r1] | |
| 3d0a: 50 00 80 2c addi $r0,$r1,#0x2c | |
| 3d0e: 84 21 movi55 $r1,#0x1 | |
| 3d10: b6 20 swi450 $r1,[$r0] | |
| 3d12: dd 9e ret5 $lp | |
| 3d14: 46 10 02 00 sethi $r1,#0x200 | |
| 3d18: 58 10 8c 04 ori $r1,$r1,#0xc04 | |
| 3d1c: 84 40 movi55 $r2,#0x0 | |
| 3d1e: b6 41 swi450 $r2,[$r1] | |
| 3d20: 50 00 80 2c addi $r0,$r1,#0x2c | |
| 3d24: 84 21 movi55 $r1,#0x1 | |
| 3d26: b6 20 swi450 $r1,[$r0] | |
| 3d28: dd 9e ret5 $lp | |
| 3d2a: 92 00 nop16 | |
| ; ---------- 0x3d2c: init_clocks() | |
| 3d2c: ef f8 addi10.sp #-8 ; | |
| 3d2e: 46 00 02 00 sethi $r0,#0x200 ; $r0 = 0x0020_0000 (System Control is 0x0020_0000~0x0020_03ff) | |
| 3d32: b4 20 lwi450 $r1,[$r0] ; $r1 = [$r0] (System Control index 0) | |
| 3d34: 44 2f ff e3 movi $r2,#-29 ; $r2 = 0b11111111111111111111111111100011 | |
| 3d38: 58 10 80 02 ori $r1,$r1,#0x2 ; $r1 |= 0x0000_0002 (turn on bit 1) | |
| 3d3c: b6 20 swi450 $r1,[$r0] ; [$r0] = $r1 (turn on bit 1: HSEON, enable high-speed oscillator) | |
| 3d3e: b4 20 lwi450 $r1,[$r0] ; $r1 = [$r0] (grab control register again) | |
| 3d40: 40 10 88 02 and $r1,$r1,$r2 ; $r1 &= $r2 (clear bit 2,3,4) | |
| 3d44: b6 20 swi450 $r1,[$r0] ; [$r0] = $r1 (sets oscillator to 18MHz) | |
| 3d46: 44 00 27 10 movi $r0,#0x2710 ; $r0 = 0x2710 | |
| 3d4a: f0 81 swi37.sp $r0,[+#0x4] ; [$sp+4] = $r0 | |
| 3d4c: f0 01 lwi37.sp $r0,[+#0x4] ; $r0 = [$sp+4] | |
| 3d4e: c0 07 beqz38 $r0,0x3d5c ; if we got 0 (virt address check?) | |
| 3d50: f0 01 lwi37.sp $r0,[+#0x4] ; $r0 = [$sp+4] | |
| 3d52: 9e 01 subi333 $r0,$r0,#0x1 ; $r0-- | |
| 3d54: f0 81 swi37.sp $r0,[+#0x4] ; [$sp+4] = $r0 | |
| 3d56: f0 01 lwi37.sp $r0,[+#0x4] ; $r0 = [$sp+4] | |
| 3d58: 4e 03 ff fc bnez $r0,0x3d50 ; ...repeat until $r0 is 0. (delay loop??) | |
| 3d5c: 46 00 02 00 sethi $r0,#0x200 ; $r0 = 0x0020_0000 | |
| 3d60: 58 00 00 34 ori $r0,$r0,#0x34 ; $r0 = 0x0020_0034 (PLL control) | |
| 3d64: 44 10 21 17 movi $r1,#0x2117 ; $r1 = 0x2117 / 0b10000100010111 | |
| 3d68: b6 20 swi450 $r1,[$r0] ; [$r0] = 01 00001 00010111 (output select, pre-divider, feedback multiplier) | |
| 3d6a: 44 00 03 e8 movi $r0,#0x3e8 ; $r0 = 0x03e8 | |
| 3d6e: f0 81 swi37.sp $r0,[+#0x4] ; ...delay loop again? | |
| 3d70: f0 01 lwi37.sp $r0,[+#0x4] ; | |
| 3d72: c0 07 beqz38 $r0,0x3d80 ; | |
| 3d74: f0 01 lwi37.sp $r0,[+#0x4] ; | |
| 3d76: 9e 01 subi333 $r0,$r0,#0x1 ; | |
| 3d78: f0 81 swi37.sp $r0,[+#0x4] ; | |
| 3d7a: f0 01 lwi37.sp $r0,[+#0x4] ; | |
| 3d7c: 4e 03 ff fc bnez $r0,0x3d74 ; | |
| 3d80: 46 00 02 00 sethi $r0,#0x200 ; $r0 = 0x0020_0000 | |
| 3d84: 58 00 00 3c ori $r0,$r0,#0x3c ; $r0 = 0x0020_003c (HSE_CLK_MUX) | |
| 3d88: 84 23 movi55 $r1,#0x3 ; ...low 2 bits = USB_PLL_div_2 | |
| 3d8a: b6 20 swi450 $r1,[$r0] ; set the USB clock (48MHz) | |
| 3d8c: 46 00 02 00 sethi $r0,#0x200 ; | |
| 3d90: 58 00 00 04 ori $r0,$r0,#0x4 ; $r0 = 0x0020_0004 (System Control 04: UART, JTAG, etc) | |
| 3d94: b4 20 lwi450 $r1,[$r0] ; get current value | |
| 3d96: 58 10 80 01 ori $r1,$r1,#0x1 ; set low bit | |
| 3d9a: b6 20 swi450 $r1,[$r0] ; set new value (System clock switch: select HSE as system clock) | |
| 3d9c: ec 08 addi10.sp #0x8 ; move stack pointer | |
| 3d9e: dd 9e ret5 $lp ; and return! | |
| ; ---------- 0x3da0: standby_for_event() | |
| 3da0: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 3da4: 44 00 00 00 movi $r0,#0x0 | |
| 3da8: 49 ff f8 ee jal 0x2f84 ; ccf0_twiddle($r0) | |
| 3dac: 49 ff f3 a6 jal 0x24f8 | |
| 3db0: 2e 07 ff f2 lbi.gp $r0,[+#-14] ; $r0 = $gp-14 | |
| 3db4: 54 00 00 02 andi $r0,$r0,#0x2 ; | |
| 3db8: c0 0c beqz38 $r0,0x3dd0 ; if ([$gp-14].bit[1]): | |
| 3dba: 46 10 02 00 sethi $r1,#0x200 ; | |
| 3dbe: 58 10 8c 04 ori $r1,$r1,#0xc04 ; $r1 = 0x00200c04: GPIOA_WK | |
| 3dc2: 44 20 00 ff movi $r2,#0xff ; $r2 = 0xff | |
| 3dc6: b6 41 swi450 $r2,[$r1] ; set GPIOA_WK to 0xff: wakeup on GPIOA0-GPIOA15 toggle | |
| 3dc8: 50 00 80 2c addi $r0,$r1,#0x2c ; $r0 = $r1+0x2c (...offset 0x30: CLR_IN_TOG) | |
| 3dcc: 84 21 movi55 $r1,#0x1 ; $r1 = 0x01 | |
| 3dce: b6 20 swi450 $r1,[$r0] ; set CLR_IN_TOG to 0x01: clear all input toggle GPIOA0 (?) | |
| 3dd0: 49 ff ff 60 jal 0x3c90 ; standby_mode(): go low-power until woken up | |
| 3dd4: 44 00 00 0a movi $r0,#0xa ; ....We're awake! Time to wake other stuff up! | |
| 3dd8: 49 00 02 1c jal 0x4210 | |
| 3ddc: 46 20 02 00 sethi $r2,#0x200 ; $r2 = 0x0020_0000 | |
| 3de0: 84 60 movi55 $r3,#0x0 ; $r3 = 0 | |
| 3de2: 58 21 0c 04 ori $r2,$r2,#0xc04 ; $r2 = 0x0020_0c04 (Wakeup & interrupt: 0x0020_0c00~0x0020_0fff) | |
| 3de6: 84 01 movi55 $r0,#0x1 ; $r0 = 1 (...offset 0x04: GPIOA_WK) | |
| 3de8: 50 11 00 2c addi $r1,$r2,#0x2c ; $r1 = $r2+0x2c (...offset 0x30: CLR_IN_TOG) | |
| 3dec: b6 62 swi450 $r3,[$r2] ; set GPIOA_WK, bit 0: wake-up on GPIOA0 toggle | |
| 3dee: b6 01 swi450 $r0,[$r1] ; clear CLR_IN_TOG: "disable clear all input toggle" | |
| 3df0: 3e 37 ff ef sbi.gp $r3,[+#-17] ; $r3 = [$gp-17] (?) | |
| 3df4: 49 ff f8 c8 jal 0x2f84 ; , $r0=1 | |
| 3df8: 49 ff f4 56 jal 0x26a4 | |
| 3dfc: 46 00 02 07 sethi $r0,#0x207 ; $r0 = 0x0020_7000 (USB addr range: 0x0020_7800 - 0x0020_7bff) | |
| 3e00: 58 00 08 0c ori $r0,$r0,#0x80c ; $r0 = 0x0020_780c (USB 0x0c: SIE Interface Register) | |
| 3e04: b4 20 lwi450 $r1,[$r0] ; $r1 = USB SIEI | |
| 3e06: 58 10 80 01 ori $r1,$r1,#0x1 ; set bit 0 - WAKEUP | |
| 3e0a: b6 20 swi450 $r1,[$r0] ; write back to USB | |
| 3e0c: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 3e10: dd 9e ret5 $lp | |
| 3e12: 92 00 nop16 | |
| ; ------ 0x3e14 - this is probably our app_setup() and maybe main() | |
| 3e14: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 3e18: ef fc addi10.sp #-4 | |
| 3e1a: 46 10 02 00 sethi $r1,#0x200 ; $r1 = 0x0020_0000 | |
| 3e1e: 44 20 00 80 movi $r2,#0x80 ; $r2 = 0x80 | |
| 3e22: 58 10 88 00 ori $r1,$r1,#0x800 ; $r1 = 0x0020_0800 | |
| 3e26: 46 00 02 00 sethi $r0,#0x200 ; $r0 = 0x0020_0000 | |
| 3e2a: b6 41 swi450 $r2,[$r1] ; [0x0020_0800] = 0x80 (TODO: wha? datasheet sez that's reserved...) | |
| 3e2c: 84 e0 movi55 $r7,#0x0 ; $r7 = 0x0000_0000 | |
| 3e2e: 84 3f movi55 $r1,#-1 ; $r1 = 0xffff_ffff | |
| 3e30: 58 00 00 0c ori $r0,$r0,#0xc ; $r0 = 0x0020_000c, System Control reset register | |
| 3e34: b6 20 swi450 $r1,[$r0] ; reset everything | |
| 3e36: b6 e0 swi450 $r7,[$r0] ; stop resetting everything (??) | |
| 3e38: 49 ff ff 7a jal 0x3d2c ; init_clocks() | |
| 3e3c: 44 00 00 0d movi $r0,#0xd ; $r0 = 0b1101 | |
| 3e40: 49 00 31 04 jal 0xa048 ; set_int_mask($r0) - enable int 1, 3, 4 | |
| 3e44: 49 00 31 1e jal 0xa080 ; setgie.e (enable global interrupts) | |
| 3e48: 49 00 01 84 jal 0x4150 ; twiddling data at 0xcd64 (not called elsewhere) | |
| 3e4c: 44 00 00 14 movi $r0,#0x14 | |
| 3e50: 49 00 01 e0 jal 0x4210 ; twiddling data at 0xcd74 / 0xcd64 | |
| 3e54: 49 00 25 54 jal 0x88fc ; twiddling data at 0xd568 (not called anywhere else) | |
| 3e58: 49 00 2b ec jal 0x9630 ; copy_d730_d9c0_and_memset_heap() | |
| 3e5c: 49 ff f3 d2 jal 0x2600 ; TODO | |
| 3e60: 44 00 00 14 movi $r0,#0x14 | |
| 3e64: 49 00 01 d6 jal 0x4210 ; as above | |
| 3e68: 49 ff e4 08 jal 0x678 ; init_cd10() (TODO: wtf is at 0xcd10 etc) | |
| 3e6c: 49 ff e4 a0 jal 0x7ac ; TODO | |
| 3e70: 2e 07 ff ea lbi.gp $r0,[+#-22] ; $r0 = $gp-22 | |
| 3e74: 49 ff ed 96 jal 0x19a0 ; TODO | |
| 3e78: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 3e7c: 50 33 80 00 addi $r3,$r7,#0x0 | |
| 3e80: 3e 18 13 4c addi.gp $r1,#0x134c | |
| 3e84: 44 20 01 e0 movi $r2,#0x1e0 | |
| 3e88: 49 ff e9 d4 jal 0x1230 ; TODO | |
| 3e8c: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 3e90: 50 33 80 00 addi $r3,$r7,#0x0 | |
| 3e94: 3e 18 11 48 addi.gp $r1,#0x1148 | |
| 3e98: 44 20 01 e0 movi $r2,#0x1e0 | |
| 3e9c: 49 ff e9 66 jal 0x1168 ; TODO | |
| 3ea0: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 3ea4: 50 33 80 00 addi $r3,$r7,#0x0 | |
| 3ea8: 44 20 00 78 movi $r2,#0x78 | |
| 3eac: 3e 18 10 d0 addi.gp $r1,#0x10d0 | |
| 3eb0: 49 ff e8 ea jal 0x1084 ; TODO | |
| 3eb4: 49 ff ea b8 jal 0x1424 ; TODO | |
| 3eb8: 49 ff ea 28 jal 0x1308 ; TODO | |
| 3ebc: 49 00 2b a6 jal 0x9608 ; TODO | |
| 3ec0: 49 ff f1 e6 jal 0x228c ; setup_gpio_b8_output() | |
| 3ec4: 49 ff f1 fa jal 0x22b8 ; setup_gpiob_and_timer2() | |
| 3ec8: 49 ff f8 2a jal 0x2f1c ; TODO | |
| 3ecc: 49 ff f2 64 jal 0x2394 ; TODO | |
| 3ed0: 49 ff f2 46 jal 0x235c ; setup_timer1() | |
| 3ed4: 49 ff f3 4a jal 0x2568 ; TODO | |
| 3ed8: 80 07 mov55 $r0,$r7 | |
| 3eda: 80 27 mov55 $r1,$r7 | |
| 3edc: 49 ff fd 72 jal 0x39c0 ; TODO | |
| 3ee0: 49 00 18 e8 jal 0x70b0 ; enable_usb() | |
| 3ee4: 47 c0 01 00 sethi $fp,#0x100 ; $fp = 0x0010_0000 (start of SRAM) | |
| 3ee8: 49 00 19 02 jal 0x70ec ; watchdog_8s_reset() | |
| ; ---------- LABEL: mainloop_start - hey look, a mainloop() | |
| 3eec: 49 00 19 14 jal 0x7114 ; mainloop_twiddle_0x0200a800 | |
| 3ef0: 2e 07 ff ee lbi.gp $r0,[+#-18] ; $r0 = [$gp-18] | |
| 3ef4: 44 10 00 40 movi $r1,#0x40 ; $r1 = 0x40 | |
| 3ef8: 4c 00 c0 08 bne $r0,$r1,0x3f08 ; if [$gp-18] == 0x40: (USB endpoints are set up) | |
| 3efc: 2e 07 ff ef lbi.gp $r0,[+#-17] ; $r0 = $gp-17 | |
| 3f00: 4e 02 00 04 beqz $r0,0x3f08 ; if $r0 != 0: | |
| 3f04: 49 ff ff 4e jal 0x3da0 ; standby_for_event() | |
| 3f08: 3e 1f ff 90 addi.gp $r1,#-112 ; $r1 = $gp-112 | |
| 3f0c: 84 04 movi55 $r0,#0x4 ; $r0 = 0x04 | |
| 3f0e: 49 00 01 cb jal 0x42a4 ; TODO - time-related? | |
| 3f12: c0 0d beqz38 $r0,0x3f2c ; if that returned non-zero: | |
| 3f14: 3c 0d ff e3 lwi.gp $r0,[+#-116] ; $r0 = [$gp-116] | |
| 3f18: 9e 41 subi333 $r1,$r0,#0x1 ; $r1 = $r0 - 1 | |
| 3f1a: c0 03 beqz38 $r0,0x3f20 ; if [$gp-116] > 0: | |
| 3f1c: 3c 1f ff e3 swi.gp $r1,[+#-116] ; [$gp-116]-- | |
| 3f20: 49 00 25 5e jal 0x89dc ; mainloop_89dc - ??? | |
| 3f24: 49 00 25 22 jal 0x8968 ; mainloop_8968 - ??? | |
| 3f28: 49 00 2d 56 jal 0x99d4 ; mainloop_99d4 - ??? | |
| 3f2c: 49 00 17 60 jal 0x6dec ; mainloop_6dec - handles command packets, yeahhhh | |
| 3f30: 49 ff fd d0 jal 0x3ad0 ; mainloop_3ad0 - ??? | |
| 3f34: 49 ff f1 64 jal 0x21fc ; | |
| 3f38: d5 da j8 0x3eec ; goto mainloop_start | |
| 3f3a: 92 00 nop16 | |
| ; ---------- 0x3f3c: func_3f3c(byte byte1=$r0, byte byte2=$r1) | |
| ; ---------- callers: mainloop_6dec | |
| 3f3c: 3a 6f a0 bc smw.adm $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 3f40: 97 88 zeb33 $r6,$r1 ; $r6 = byte2 | |
| 3f42: 97 c0 zeb33 $r7,$r0 ; $r7 = byte1 | |
| 3f44: 49 00 2b 76 jal 0x9630 ; copy_d730_d9c0_and_memset_heap() | |
| 3f48: 80 06 mov55 $r0,$r6 ; func_1230 arg1 = byte2 | |
| 3f4a: 3e 18 13 4c addi.gp $r1,#0x134c ; func_1230 addr = $gp+0x134c | |
| 3f4e: 44 20 01 e0 movi $r2,#0x1e0 ; func_1230 size = 0x1e0 (this is the size of d730/d9c0) | |
| 3f52: 84 60 movi55 $r3,#0x0 ; func_1230 arg3 = 0 | |
| 3f54: 49 ff e9 6e jal 0x1230 ; func_1230(arg1=byte2, addr=$gp+0x134c, size=0x1e0, arg3=0) | |
| 3f58: 3e 18 11 48 addi.gp $r1,#0x1148 | |
| 3f5c: 44 20 01 e0 movi $r2,#0x1e0 | |
| 3f60: 84 60 movi55 $r3,#0x0 | |
| 3f62: 80 06 mov55 $r0,$r6 | |
| 3f64: 49 ff e9 02 jal 0x1168 ; func_1168(arg1=byte2, addr=$gp+0x1148, size=0x1e0, arg3=0) | |
| 3f68: 80 06 mov55 $r0,$r6 | |
| 3f6a: 3e 18 10 d0 addi.gp $r1,#0x10d0 | |
| 3f6e: 44 20 00 78 movi $r2,#0x78 | |
| 3f72: 84 60 movi55 $r3,#0x0 | |
| 3f74: 49 ff e8 88 jal 0x1084 ; func_1084(arg1=byte2, addr=$gp+0x10d0, size=0x78, arg3=0) | |
| 3f78: 2e 07 ff fe lbi.gp $r0,[+#-2] ; | |
| 3f7c: c0 0c beqz38 $r0,0x3f94 ; if [$gp-2] != 0: | |
| 3f7e: 44 10 ce c2 movi $r1,#0xcec2 ; | |
| 3f82: 3e 08 07 ba addi.gp $r0,#0x7ba ; | |
| 3f86: 84 48 movi55 $r2,#0x8 ; | |
| 3f88: 49 00 30 8e jal 0xa0a4 ; memcpy(dest=$gp+0x7ba, src=0xcec2, n=0x8) | |
| 3f8c: 44 10 00 01 movi $r1,#0x1 ; | |
| 3f90: 3e 17 ff e8 sbi.gp $r1,[+#-24] ; [$gp-24] = 1 | |
| 3f94: 3e 08 10 b0 addi.gp $r0,#0x10b0 ; | |
| 3f98: 84 20 movi55 $r1,#0x0 | |
| 3f9a: 44 20 00 1d movi $r2,#0x1d | |
| 3f9e: 49 00 30 8d jal 0xa0b8 ; memset(dest=$gp+0x10b0, byte=0, size=0x1d) | |
| 3fa2: 84 02 movi55 $r0,#0x2 | |
| 3fa4: 4c 70 00 22 beq $r7,$r0,0x3fe8 ; if byte1 == 2: goto BYTE1_EQ_2 | |
| 3fa8: e6 e3 slti45 $r7,#0x3 ; | |
| 3faa: e8 05 beqzs8 0x3fb4 ; if byte1 >= 3: goto BYTE1_GE_3 | |
| 3fac: 84 21 movi55 $r1,#0x1 ; | |
| 3fae: 4c 70 c0 34 bne $r7,$r1,0x4016 ; if byte1 != 1: goto PACKET_BUILD_DONE | |
| 3fb2: d5 09 j8 0x3fc4 ; else: goto BYTE1_EQ_1 | |
| ; label BYTE1_GE_3: | |
| 3fb4: 84 03 movi55 $r0,#0x3 ; | |
| 3fb6: 4c 70 00 21 beq $r7,$r0,0x3ff8 ; if byte1 == 3: goto BYTE1_EQ_3 | |
| 3fba: 84 24 movi55 $r1,#0x4 ; | |
| 3fbc: 4c 70 c0 2d bne $r7,$r1,0x4016 ; if byte1 == 4: goto BYTE1_EQ_4 | |
| 3fc0: 48 00 00 24 j 0x4008 ; else: goto BYTE1_GE_5 | |
| ; label BYTE1_EQ_1: | |
| 3fc4: 3e 4f fe 78 addi.gp $r4,#-392 ; $r4 = $gp-392 | |
| 3fc8: 08 12 00 01 lbi.bi $r1,[$r4],#0x1 ; $r1 = [$gp-392]; $r4 = $gp-391 | |
| 3fcc: 3e 08 08 68 addi.gp $r0,#0x868 ; $r0 = $gp+0x868 | |
| 3fd0: 80 60 mov55 $r3,$r0 ; $r3 = $gp+0x868 | |
| 3fd2: 18 11 80 01 sbi.bi $r1,[$r3],#0x1 ; [$gp+0x868] = $r1; $r3 = $gp+0x869 | |
| 3fd6: a7 20 lbi333 $r4,[$r4+#0x0] ; $r4 = [$gp-391] | |
| 3fd8: af 18 sbi333 $r4,[$r3+#0x0] ; [$gp+0x869] = $r4 | |
| 3fda: 3e 1f ff 38 addi.gp $r1,#-200 ; $r1 = $gp-200 | |
| 3fde: 84 46 movi55 $r2,#0x6 ; | |
| 3fe0: 8c 02 addi45 $r0,#0x2 | |
| 3fe2: 49 00 30 61 jal 0xa0a4 ; memcpy(dest=($gp+0x868+2), src=$gp-200, n=6) | |
| 3fe6: d5 18 j8 0x4016 ; goto PACKET_BUILD_DONE | |
| ; label BYTE1_EQ_2: | |
| 3fe8: 3e 1f ff 38 addi.gp $r1,#-200 | |
| 3fec: 84 46 movi55 $r2,#0x6 | |
| 3fee: 3e 0f fe 82 addi.gp $r0,#-382 | |
| 3ff2: 49 00 30 59 jal 0xa0a4 ; memcpy(dest=$gp-382, src=$gp-200, n=6) | |
| 3ff6: d5 10 j8 0x4016 | |
| ; label BYTE1_EQ_3 | |
| 3ff8: 3e 1f ff 38 addi.gp $r1,#-200 | |
| 3ffc: 84 46 movi55 $r2,#0x6 ; 0x3ffc: there are jumps here from Outside??? | |
| 3ffe: 3e 0f fe 8a addi.gp $r0,#-374 | |
| 4002: 49 00 30 51 jal 0xa0a4 ; memcpy(dest=$gp-374, src=$gp-200, n=6) | |
| 4006: d5 08 j8 0x4016 | |
| ; label BYTE1_GE_5: | |
| 4008: 3e 0f fe 92 addi.gp $r0,#-366 | |
| 400c: 3e 1f ff 38 addi.gp $r1,#-200 | |
| 4010: 84 46 movi55 $r2,#0x6 | |
| 4012: 49 00 30 49 jal 0xa0a4 ; memcpy(dest=$gp-366, src=$gp-200, n=6) | |
| ; label PACKET_BUILD_DONE: | |
| 4016: 84 03 movi55 $r0,#0x3 | |
| 4018: 4c 60 00 5a beq $r6,$r0,0x40cc ; if byte2 == 3: goto BYTE2_EQ_3 | |
| 401c: e6 c4 slti45 $r6,#0x4 | |
| 401e: e8 08 beqzs8 0x402e ; if byte2 > 4: goto BYTE2_GT_4 | |
| 4020: 84 21 movi55 $r1,#0x1 | |
| 4022: 4c 60 80 0d beq $r6,$r1,0x403c ; if byte2 == 1: goto BYTE2_EQ_1 | |
| 4026: 84 02 movi55 $r0,#0x2 | |
| 4028: 4c 60 40 90 bne $r6,$r0,0x4148 ; if byte2 == 2: goto BYTE2_EQ_2 | |
| 402c: d5 38 j8 0x409c ; else: goto BYTE2_EQ_0 | |
| ; label BYTE2_GT_4: | |
| 402e: 84 24 movi55 $r1,#0x4 | |
| 4030: 4c 60 80 66 beq $r6,$r1,0x40fc ; if byte2 == 4: goto BYTE2_EQ_4 | |
| 4034: 84 05 movi55 $r0,#0x5 | |
| 4036: 4c 60 40 89 bne $r6,$r0,0x4148 ; if byte2 == 5: goto BYTE2_EQ_5 | |
| 403a: d5 19 j8 0x406c ; else: goto BYTE2_GE_6 | |
| ; label BYTE2_EQ_1: | |
| 403c: 3e 48 08 68 addi.gp $r4,#0x868 | |
| 4040: 80 44 mov55 $r2,$r4 | |
| 4042: 08 71 00 01 lbi.bi $r7,[$r2],#0x1 | |
| 4046: 3e 3f fe 78 addi.gp $r3,#-392 | |
| 404a: a7 90 lbi333 $r6,[$r2+#0x0] | |
| 404c: 18 71 80 01 sbi.bi $r7,[$r3],#0x1 | |
| 4050: af 98 sbi333 $r6,[$r3+#0x0] | |
| 4052: 9c 62 addi333 $r1,$r4,#0x2 | |
| 4054: 84 46 movi55 $r2,#0x6 | |
| 4056: 3e 0f ff 38 addi.gp $r0,#-200 | |
| 405a: 49 00 30 25 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 405e: 80 07 mov55 $r0,$r7 | |
| 4060: 50 13 00 00 addi $r1,$r6,#0x0 | |
| 4064: 3a 6f a0 84 lmw.bim $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 4068: 48 ff fc ac j 0x39c0 | |
| ; label BYTE2_GE_6: | |
| 406c: 3e 0f fe 78 addi.gp $r0,#-392 | |
| 4070: 84 30 movi55 $r1,#-16 | |
| 4072: 18 10 00 01 sbi.bi $r1,[$r0],#0x1 | |
| 4076: 84 40 movi55 $r2,#0x0 | |
| 4078: 2e 17 ff fe lbi.gp $r1,[+#-2] | |
| 407c: ae 80 sbi333 $r2,[$r0+#0x0] | |
| 407e: c1 07 beqz38 $r1,0x408c | |
| 4080: 84 3f movi55 $r1,#-1 | |
| 4082: 3e 08 07 bb addi.gp $r0,#0x7bb | |
| 4086: 18 10 7f ff sbi.bi $r1,[$r0],#-1 | |
| 408a: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 408c: 44 00 00 f0 movi $r0,#0xf0 | |
| 4090: 44 10 00 00 movi $r1,#0x0 | |
| 4094: 3a 6f a0 84 lmw.bim $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 4098: 48 ff fc 94 j 0x39c0 | |
| ; label BYTE2_EQ_0: | |
| 409c: 3e 3f fe 78 addi.gp $r3,#-392 | |
| 40a0: 84 11 movi55 $r0,#-15 | |
| 40a2: 18 01 80 01 sbi.bi $r0,[$r3],#0x1 | |
| 40a6: 84 80 movi55 $r4,#0x0 | |
| 40a8: af 18 sbi333 $r4,[$r3+#0x0] | |
| 40aa: 3e 0f ff 38 addi.gp $r0,#-200 | |
| ; ignore this, since it seems to be incorrectly parsed | |
| ;40ae: 3e 1f fe 82 addi.gp $r1,#-382 | |
| 40b0: fe 82 neg33 $r2,$r0 | |
| 40b2: 84 46 movi55 $r2,#0x6 | |
| 40b4: 49 00 2f f8 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 40b8: 2e 07 ff fe lbi.gp $r0,[+#-2] | |
| 40bc: c0 38 beqz38 $r0,0x412c | |
| 40be: 84 3f movi55 $r1,#-1 | |
| 40c0: 3e 08 07 bd addi.gp $r0,#0x7bd | |
| 40c4: 18 10 7f ff sbi.bi $r1,[$r0],#-1 | |
| 40c8: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 40ca: d5 31 j8 0x412c | |
| ; label BYTE2_EQ_3: | |
| 40cc: 3e 3f fe 78 addi.gp $r3,#-392 | |
| 40d0: 84 11 movi55 $r0,#-15 | |
| 40d2: 18 01 80 01 sbi.bi $r0,[$r3],#0x1 | |
| 40d6: 84 80 movi55 $r4,#0x0 | |
| 40d8: af 18 sbi333 $r4,[$r3+#0x0] | |
| 40da: 3e 0f ff 38 addi.gp $r0,#-200 | |
| 40de: 3e 1f fe 8a addi.gp $r1,#-374 | |
| 40e2: 84 46 movi55 $r2,#0x6 | |
| 40e4: 49 00 2f e0 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 40e8: 2e 07 ff fe lbi.gp $r0,[+#-2] | |
| 40ec: c0 20 beqz38 $r0,0x412c | |
| 40ee: 84 3f movi55 $r1,#-1 | |
| 40f0: 3e 08 07 bf addi.gp $r0,#0x7bf | |
| 40f4: 18 10 7f ff sbi.bi $r1,[$r0],#-1 | |
| 40f8: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 40fa: d5 19 j8 0x412c | |
| 40fc: 3e 3f fe 78 addi.gp $r3,#-392 | |
| 4100: 84 11 movi55 $r0,#-15 | |
| 4102: 18 01 80 01 sbi.bi $r0,[$r3],#0x1 | |
| 4106: 84 80 movi55 $r4,#0x0 | |
| 4108: af 18 sbi333 $r4,[$r3+#0x0] | |
| 410a: 3e 0f ff 38 addi.gp $r0,#-200 | |
| 410e: 3e 1f fe 92 addi.gp $r1,#-366 | |
| 4112: 84 46 movi55 $r2,#0x6 | |
| 4114: 49 00 2f c8 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 4118: 2e 07 ff fe lbi.gp $r0,[+#-2] | |
| 411c: c0 08 beqz38 $r0,0x412c | |
| 411e: 84 3f movi55 $r1,#-1 | |
| 4120: 3e 08 07 c1 addi.gp $r0,#0x7c1 | |
| 4124: 18 10 7f ff sbi.bi $r1,[$r0],#-1 | |
| 4128: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 412c: 3e 2f ff 3d addi.gp $r2,#-195 | |
| 4130: 84 01 movi55 $r0,#0x1 | |
| 4132: 18 01 7f fe sbi.bi $r0,[$r2],#-2 | |
| 4136: 84 60 movi55 $r3,#0x0 | |
| 4138: 44 00 00 f1 movi $r0,#0xf1 | |
| 413c: 84 21 movi55 $r1,#0x1 | |
| 413e: ae d0 sbi333 $r3,[$r2+#0x0] | |
| 4140: 3a 6f a0 84 lmw.bim $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 4144: 48 ff fc 3e j 0x39c0 | |
| 4148: 3a 6f a0 84 lmw.bim $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 414c: dd 9e ret5 $lp | |
| 414e: 92 00 nop16 | |
| ; ---------- 0x4150: ??? | |
| 4150: 46 00 00 0c sethi $r0,#0xc ; $r0 = 0x0000_c000 | |
| 4154: 04 00 03 59 lwi $r0,[$r0+#0xd64] ; $r0 = [0x0000_cd64] (some builtin shit?) | |
| 4158: 44 10 ff fe movi $r1,#0xfffe ; $r1 = 0xfffe | |
| 415c: 14 10 00 0c swi $r1,[$r0+#0x30] ; [$r0+0x30] = $r1 | |
| 4160: 84 22 movi55 $r1,#0x2 | |
| 4162: a8 47 swi333 $r1,[$r0+#0x1c] | |
| 4164: 8c 2e addi45 $r1,#0xe | |
| 4166: 14 10 00 11 swi $r1,[$r0+#0x44] | |
| 416a: 94 4b slli333 $r1,$r1,#0x3 | |
| 416c: b6 20 swi450 $r1,[$r0] | |
| 416e: 84 21 movi55 $r1,#0x1 | |
| 4170: b6 20 swi450 $r1,[$r0] | |
| 4172: 46 10 00 0c sethi $r1,#0xc | |
| 4176: b4 40 lwi450 $r2,[$r0] | |
| 4178: 04 10 83 5d lwi $r1,[$r1+#0xd74] | |
| 417c: 42 21 3c 08 bset $r2,$r2,#0xf | |
| 4180: b6 40 swi450 $r2,[$r0] | |
| 4182: b4 01 lwi450 $r0,[$r1] | |
| 4184: 58 00 00 08 ori $r0,$r0,#0x8 | |
| 4188: b6 01 swi450 $r0,[$r1] | |
| 418a: dd 9e ret5 $lp | |
| ; ----------- 0x418c: get_magic_word() -> $r0 = 0xAAAABBBB, AAAA=[$gp-38], BBBB=[[0xcd64]+4] | |
| 418c: 46 00 00 0c sethi $r0,#0xc ; | |
| 4190: 04 10 03 5d lwi $r1,[$r0+#0xd74] ; | |
| 4194: b4 41 lwi450 $r2,[$r1] ; | |
| 4196: 46 00 00 0c sethi $r0,#0xc ; | |
| 419a: 42 21 0c 09 bclr $r2,$r2,#0x3 ; | |
| 419e: b6 41 swi450 $r2,[$r1] ; clear ptr_table_cd74[0] bit 3 | |
| 41a0: 04 00 03 59 lwi $r0,[$r0+#0xd64] ; $r0 = ptr_table_cd64[0] | |
| 41a4: 3c 23 ff ed lhi.gp $r2,[+#-38] ; $r2 = u16 $gp-38 | |
| 41a8: a0 01 lwi333 $r0,[$r0+#0x4] ; $r0 = ptr_table_cd64[0][1] | |
| 41aa: b4 61 lwi450 $r3,[$r1] ; | |
| 41ac: 40 21 40 08 slli $r2,$r2,#0x10 ; | |
| 41b0: 96 01 zeh33 $r0,$r0 ; | |
| 41b2: 58 31 80 08 ori $r3,$r3,#0x8 ; | |
| 41b6: 40 01 00 04 or $r0,$r2,$r0 ; | |
| 41ba: b6 61 swi450 $r3,[$r1] ; set ptr_table_cd74[0] bit 3 | |
| 41bc: dd 9e ret5 $lp | |
| 41be: 92 00 nop16 | |
| ; ---------- 0x41c0 - check_cd74_size(arg=$r0) -> size $r0 | |
| ; ---------- arg high halfword is [$gp-38], low halfword is ptr_table_cd64[1] (???) | |
| 41c0: 46 10 00 0c sethi $r1,#0xc | |
| 41c4: 04 30 83 5d lwi $r3,[$r1+#0xd74] ; $r3 = [0xcd74] | |
| 41c8: b4 23 lwi450 $r1,[$r3] ; $r1 = ptr_table_cd74[0] | |
| 41ca: 3c 43 ff ed lhi.gp $r4,[+#-38] ; $r4 = [$gp-38] halfword | |
| 41ce: 42 10 8c 09 bclr $r1,$r1,#0x3 ; clear bit 3 in $r1 | |
| 41d2: 46 20 00 0c sethi $r2,#0xc ; | |
| 41d6: b6 23 swi450 $r1,[$r3] ; clear bit 3 in ptr_table_cd74[0] | |
| 41d8: 04 11 03 59 lwi $r1,[$r2+#0xd64] ; $r1 = [0xcd64] | |
| 41dc: 40 42 40 08 slli $r4,$r4,#0x10 ; $r4 high halfword is [$gp-38] | |
| 41e0: a0 49 lwi333 $r1,[$r1+#0x4] ; $r1 = ptr_table_cd64[1] | |
| 41e2: b4 43 lwi450 $r2,[$r3] ; $r2 = ptr_table_cd74[0] | |
| 41e4: 96 49 zeh33 $r1,$r1 ; $r1 = halfword($r1) | |
| 41e6: 58 21 00 08 ori $r2,$r2,#0x8 ; set bit 3 in $r2 | |
| 41ea: 40 12 04 04 or $r1,$r4,$r1 ; $r1 = high halfword [$gp-38], low halfword ptr_table_cd64[1] | |
| 41ee: b6 43 swi450 $r2,[$r3] ; set bit 3 in ptr_table_cd74[0] | |
| 41f0: e2 20 slt45 $r1,$r0 ; | |
| 41f2: e8 05 beqzs8 0x41fc ; if $r1 < $r0: | |
| 41f4: 46 20 16 e0 sethi $r2,#0x16e0 ; $r2 = 0x016e_0000 | |
| 41f8: 40 10 88 00 add $r1,$r1,$r2 ; $r1 += 0x016e_0000 | |
| 41fc: 46 2a aa aa sethi $r2,#0xaaaaa ; | |
| 4200: 9a 48 sub333 $r1,$r1,$r0 ; $r1 -= $r0 | |
| 4202: 58 21 0a ab ori $r2,$r2,#0xaab ; | |
| 4206: 42 20 88 69 mulr64 $r2,$r1,$r2 ; | |
| 420a: 40 01 90 09 srli $r0,$r3,#0x4 ; $r0 = ($r1 - $r0) / 48 | |
| 420e: dd 9e ret5 $lp | |
| ; ---------- 0x4210: do_cd74_stuff(arg=$r0), sets $r15 | |
| 4210: 3a 6f a0 bc smw.adm $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 4214: 46 10 00 0c sethi $r1,#0xc ; $r1 = 0x0000c000 | |
| 4218: 04 10 83 5d lwi $r1,[$r1+#0xd74] ; $r1 = [0xcd74] (void *ptr_table_cd74) | |
| 421c: b4 41 lwi450 $r2,[$r1] ; $r2 = ptr_table_cd74[0] | |
| 421e: 3c 73 ff ed lhi.gp $r7,[+#-38] ; $r7 = [$gp-38] (halfword) | |
| 4222: 42 21 0c 09 bclr $r2,$r2,#0x3 ; clear bit 3 of $r2 | |
| 4226: b6 41 swi450 $r2,[$r1] ; clear bit 3 of ptr_table_cd74[0] | |
| 4228: 46 20 00 0c sethi $r2,#0xc ; | |
| 422c: 04 21 03 59 lwi $r2,[$r2+#0xd64] ; $r2 = [0xcd64] (void *ptr_table_cd64) | |
| 4230: 44 80 03 e8 movi $r8,#0x3e8 ; $r8 = 0x3e8 | |
| 4234: a0 91 lwi333 $r2,[$r2+#0x4] ; $r2 = ptr_table_cd64[1] | |
| 4236: b4 61 lwi450 $r3,[$r1] ; $r3 = ptr_table_cd74[0] | |
| 4238: 42 80 20 24 mul $r8,$r0,$r8 ; $r8 = arg * 0x3e8 | |
| 423c: 58 31 80 08 ori $r3,$r3,#0x8 ; set bit 3 of $r3 | |
| 4240: 40 73 c0 08 slli $r7,$r7,#0x10 ; $r7 <<= 0x10 (move halfword to high 16 bits) | |
| 4244: 96 11 zeh33 $r0,$r2 ; $r0 = $r2 & 0x0000ffff | |
| 4246: b6 61 swi450 $r3,[$r1] ; set bit 3 of ptr_table_cd74[0] | |
| 4248: 40 73 80 04 or $r7,$r7,$r0 ; $r7 |= $r0 (low 16 bits are now low halfword of ptr_table_cd64[1] | |
| 424c: 80 07 mov55 $r0,$r7 ; loop: | |
| 424e: 49 ff ff b9 jal 0x41c0 ; ??? | |
| 4252: e2 08 slt45 $r0,$r8 ; | |
| 4254: e9 fc bnezs8 0x424c ; until $r0 < $r8 | |
| 4256: 3a 6f a0 84 lmw.bim $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 425a: dd 9e ret5 $lp | |
| ; ----------- 0x425c: | |
| 425c: 3a 6f a0 bc smw.adm $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 4260: 46 10 00 0c sethi $r1,#0xc | |
| 4264: 04 10 83 5d lwi $r1,[$r1+#0xd74] | |
| 4268: b4 41 lwi450 $r2,[$r1] | |
| 426a: 3c 83 ff ed lhi.gp $r8,[+#-38] | |
| 426e: 42 21 0c 09 bclr $r2,$r2,#0x3 | |
| 4272: b6 41 swi450 $r2,[$r1] | |
| 4274: 46 20 00 0c sethi $r2,#0xc | |
| 4278: 04 21 03 59 lwi $r2,[$r2+#0xd64] | |
| 427c: 40 84 40 08 slli $r8,$r8,#0x10 | |
| 4280: a0 91 lwi333 $r2,[$r2+#0x4] | |
| 4282: b4 61 lwi450 $r3,[$r1] | |
| 4284: 58 31 80 08 ori $r3,$r3,#0x8 | |
| 4288: b6 61 swi450 $r3,[$r1] | |
| 428a: 96 51 zeh33 $r1,$r2 | |
| 428c: 40 84 04 04 or $r8,$r8,$r1 | |
| 4290: 80 e0 mov55 $r7,$r0 | |
| 4292: 80 08 mov55 $r0,$r8 | |
| 4294: 49 ff ff 96 jal 0x41c0 | |
| 4298: e2 07 slt45 $r0,$r7 | |
| 429a: e9 fc bnezs8 0x4292 | |
| 429c: 3a 6f a0 84 lmw.bim $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 42a0: dd 9e ret5 $lp | |
| 42a2: 92 00 nop16 | |
| ; ---------- 0x42a4: time_check(u16 arg1=$r0, void *addr=$r1), uses pointer from 0xcd64 | |
| ; ---------- mainloop calls with arg1=4, addr=$gp-0x70 | |
| ; ---------- I honestly have no idea if this is a time check or a kb interface check or what | |
| 42a4: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 42a8: ef fc addi10.sp #-4 ; | |
| 42aa: 97 81 zeh33 $r6,$r0 ; $r6 = arg1 | |
| 42ac: 80 e1 mov55 $r7,$r1 ; $r7 = addr | |
| 42ae: 5c f3 03 85 slti $r15,$r6,#0x385 ; | |
| 42b2: e8 26 beqzs8 0x42fe ; if arg1 >= 0x385: goto out_fail | |
| 42b4: 04 00 80 00 lwi $r0,[$r1+#0x0] ; | |
| 42b8: 49 ff ff 84 jal 0x41c0 ; $r0 = check_cd74_size(getword(addr)) | |
| 42bc: 44 10 03 e8 movi $r1,#0x3e8 ; | |
| 42c0: 42 63 04 24 mul $r6,$r6,$r1 ; | |
| 42c4: e2 06 slt45 $r0,$r6 ; | |
| 42c6: e9 1c bnezs8 0x42fe ; if $r0 >= (arg1 * 0x3e8): goto out_fail | |
| 42c8: 46 00 00 0c sethi $r0,#0xc ; | |
| 42cc: 04 00 03 5d lwi $r0,[$r0+#0xd74] ; $r0 = cd74_table[0] | |
| 42d0: b4 20 lwi450 $r1,[$r0] ; $r1 = cd74_table[0][0] | |
| 42d2: 3c 33 ff ed lhi.gp $r3,[+#-38] ; $r3 = $gp-38 | |
| 42d6: 42 10 8c 09 bclr $r1,$r1,#0x3 ; | |
| 42da: b6 20 swi450 $r1,[$r0] ; clear bit 3 in cd74_table[0][0] | |
| 42dc: 46 10 00 0c sethi $r1,#0xc ; | |
| 42e0: 04 10 83 59 lwi $r1,[$r1+#0xd64] ; $r1 = cd64_table[0] | |
| 42e4: 40 31 c0 08 slli $r3,$r3,#0x10 ; $r3 = $gp-38 << 16 | |
| 42e8: a0 49 lwi333 $r1,[$r1+#0x4] ; $r1 = cd64_table[0][1] | |
| 42ea: b4 40 lwi450 $r2,[$r0] ; $r2 = cd74_table[0][0] | |
| 42ec: 96 49 zeh33 $r1,$r1 ; $r1 = 0x0000ffff & $r1 | |
| 42ee: 40 11 84 04 or $r1,$r3,$r1 ; $r1 = $r1 | $r3 = ($gp-38 << 16) | (cd64_table[0][1] & 0x0000ffff) | |
| 42f2: 58 21 00 08 ori $r2,$r2,#0x8 ; | |
| 42f6: b6 40 swi450 $r2,[$r0] ; set bit 3 in cd74_table[0][0] | |
| 42f8: b6 27 swi450 $r1,[$r7] ; [addr] = $r1 | |
| 42fa: 84 01 movi55 $r0,#0x1 ; $r0 = 1 | |
| 42fc: d5 02 j8 0x4300 ; goto out | |
| 42fe: 84 00 movi55 $r0,#0x0 ; out_fail: $r0 = 0 | |
| 4300: ec 04 addi10.sp #0x4 ; out: return | |
| 4302: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 4306: dd 9e ret5 $lp | |
| ; ---------- 0x4308: usb_stall(endpoint=$r0) | |
| 4308: 3b ff fe 3c smw.adm $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 430c: 51 cf 80 00 addi $fp,$sp,#0x0 ; $fp = $sp | |
| 4310: 51 ff ff f4 addi $sp,$sp,#-12 ; $sp -= 12 | |
| 4314: 80 00 mov55 $r0,$r0 ; ???? | |
| 4316: 10 0e 7f f8 sbi $r0,[$fp+#-8] ; Save $r0 at $fp-8 | |
| 431a: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 431e: 58 00 08 14 ori $r0,$r0,#0x814 ; USB offset 0x14: Endpoint Index Register | |
| 4322: 00 1e 7f f8 lbi $r1,[$fp+#-8] ; $r1 = $r0 (from [$fp-8]) | |
| 4326: 54 10 80 ff andi $r1,$r1,#0xff ; clear all but the low byte of $r1 | |
| 432a: 14 10 00 00 swi $r1,[$r0+#0x0] ; Select USB endpoint | |
| 432e: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 4332: 58 00 08 18 ori $r0,$r0,#0x818 ; USB offset 0x18: EPCON, Endpoint Data-flow Control Register | |
| 4336: 46 10 02 07 sethi $r1,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 433a: 58 10 88 18 ori $r1,$r1,#0x818 ; USB offset 0x18: EPCON, Endpoint Data-flow Control Register | |
| 433e: 04 10 80 00 lwi $r1,[$r1+#0x0] ; $r1 = EPCON | |
| 4342: 58 10 80 c0 ori $r1,$r1,#0xc0 ; EPCON |= 0xc0 (0b1100_0000 - RXSTL, TXSTL) | |
| 4346: 14 10 00 00 swi $r1,[$r0+#0x0] ; store EPCON - stall tx/rx for endpoint | |
| 434a: 51 fe 00 00 addi $sp,$fp,#0x0 ; set $sp to $fp | |
| 434e: 3b ff fe 04 lmw.bim $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 4352: 4a 00 78 20 ret $lp | |
| 4356: 92 00 nop16 | |
| ; ----------- 0x4358: usb_stall_clear(endpoint=$r0) | |
| ; ----------- NOTE: this should only get called "when the host has intervened through commands sent down endpoint 0" | |
| 4358: 3b ff fe 3c smw.adm $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 435c: 51 cf 80 00 addi $fp,$sp,#0x0 | |
| 4360: 51 ff ff f4 addi $sp,$sp,#-12 | |
| 4364: 80 00 mov55 $r0,$r0 | |
| 4366: 10 0e 7f f8 sbi $r0,[$fp+#-8] ; save endpoint at $fp-8 | |
| 436a: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 436e: 58 00 08 14 ori $r0,$r0,#0x814 ; USB offset 0x14: EPINDEX, Endpoint Index Register | |
| 4372: 00 1e 7f f8 lbi $r1,[$fp+#-8] ; $r1 = endpoint | |
| 4376: 54 10 80 ff andi $r1,$r1,#0xff | |
| 437a: 14 10 00 00 swi $r1,[$r0+#0x0] ; send endpoint to EPINDEX | |
| 437e: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 4382: 58 00 08 18 ori $r0,$r0,#0x818 ; USB offset 0x18: EPCON, Endpoint Data-flow Control Register | |
| 4386: 46 10 02 07 sethi $r1,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 438a: 58 10 88 18 ori $r1,$r1,#0x818 ; USB offset 0x18: EPCON, Endpoint Data-flow Control Register | |
| 438e: 04 10 80 00 lwi $r1,[$r1+#0x0] ; $r1 = EPCON | |
| 4392: 44 2f ff 3f movi $r2,#-193 ; -193 = ~0xc0 | |
| 4396: 40 10 88 02 and $r1,$r1,$r2 ; EPCON &= ~0xc0 (clear RXSTL, TXSTL) | |
| 439a: 14 10 00 00 swi $r1,[$r0+#0x0] ; store EPCON | |
| 439e: 51 fe 00 00 addi $sp,$fp,#0x0 | |
| 43a2: 3b ff fe 04 lmw.bim $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 43a6: 4a 00 78 20 ret $lp | |
| 43aa: 92 00 nop16 | |
| 43ac: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 43b0: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 43b4: 44 00 00 00 movi $r0,#0x0 | |
| 43b8: 49 ff ff a8 jal 0x4308 ; usb_stall(endpoint=$r0) | |
| 43bc: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 43c0: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 43c4: 4a 00 78 20 ret $lp | |
| ; ---------- 0x43c8: usb_tx_pktbuf2(endpoint=$r0, size=$r1) | |
| 43c8: 3b ff fe 3c smw.adm $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 43cc: 51 cf 80 00 addi $fp,$sp,#0x0 ; $fp = $sp | |
| 43d0: 51 ff ff ec addi $sp,$sp,#-20 ; $sp -= 20 | |
| 43d4: 80 40 mov55 $r2,$r0 ; $r2 = endpoint | |
| 43d6: 80 01 mov55 $r0,$r1 ; $r0 = size | |
| 43d8: 80 22 mov55 $r1,$r2 ; $r1 = endpoint (we've swapped $r0 and $r1, clobbering $r2) | |
| 43da: 10 1e 7f f0 sbi $r1,[$fp+#-16] ; save endpoint to [$fp-16] | |
| 43de: 80 00 mov55 $r0,$r0 | |
| 43e0: 10 0e 7f ec sbi $r0,[$fp+#-20] ; save size to [$fp-20] | |
| 43e4: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 43e8: 58 00 08 14 ori $r0,$r0,#0x814 ; USB offset 0x14: EPINDEX, Endpoint Index Register | |
| 43ec: 00 1e 7f f0 lbi $r1,[$fp+#-16] | |
| 43f0: 54 10 80 ff andi $r1,$r1,#0xff | |
| 43f4: 14 10 00 00 swi $r1,[$r0+#0x0] ; write endpoint to EPINDEX | |
| 43f8: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 43fc: 58 00 08 28 ori $r0,$r0,#0x828 ; USB offset 0x28: TXFLG, Transmit USB FIFO Flag Register | |
| 4400: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 4404: 54 00 00 04 andi $r0,$r0,#0x4 | |
| 4408: c8 46 bnez38 $r0,0x4494 | |
| 440a: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 440e: 58 00 08 28 ori $r0,$r0,#0x828 ; USB offset 0x28: TXFLG, Transmit USB FIFO Flag Register | |
| 4412: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 4416: 54 00 00 01 andi $r0,$r0,#0x1 | |
| 441a: 54 00 00 ff andi $r0,$r0,#0xff | |
| 441e: c0 09 beqz38 $r0,0x4430 | |
| 4420: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 4424: 58 00 08 24 ori $r0,$r0,#0x824 ; USB offset 0x24: TXCON, Transmit USB FIFO Control Register | |
| 4428: 44 10 00 80 movi $r1,#0x80 | |
| 442c: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 4430: 44 00 00 00 movi $r0,#0x0 | |
| 4434: 10 0e 7f fb sbi $r0,[$fp+#-5] ; $fp-5 (count) = 0 | |
| 4438: d5 18 j8 0x4468 | |
| 443a: 46 00 02 07 sethi $r0,#0x207 ; loop: | |
| 443e: 58 00 08 20 ori $r0,$r0,#0x820 ; $r0 = USB offset 0x20: TXDAT, Transmit USB FIFO Data Register | |
| 4442: 00 1e 7f fb lbi $r1,[$fp+#-5] ; $r1 = count | |
| 4446: 54 10 80 ff andi $r1,$r1,#0xff ; | |
| 444a: 3e 28 08 b0 addi.gp $r2,#0x8b0 ; $r2 = $gp+0x8b0 (pktbuf2) | |
| 444e: 38 11 04 00 lb $r1,[$r2+($r1<<#0x0)]; $r1 = [pktbuf2+count] | |
| 4452: 54 10 80 ff andi $r1,$r1,#0xff ; | |
| 4456: 14 10 00 00 swi $r1,[$r0+#0x0] ; write $r1 to TXDAT | |
| 445a: 00 0e 7f fb lbi $r0,[$fp+#-5] ; | |
| 445e: 50 00 00 01 addi $r0,$r0,#0x1 ; | |
| 4462: 80 00 mov55 $r0,$r0 ; | |
| 4464: 10 0e 7f fb sbi $r0,[$fp+#-5] ; count += 1 | |
| 4468: 00 0e 7f fb lbi $r0,[$fp+#-5] ; | |
| 446c: 54 10 00 ff andi $r1,$r0,#0xff ; | |
| 4470: 00 0e 7f ec lbi $r0,[$fp+#-20] ; | |
| 4474: 54 00 00 ff andi $r0,$r0,#0xff ; | |
| 4478: 40 f0 80 06 slt $r15,$r1,$r0 ; | |
| 447c: e9 df bnezs8 0x443a ; while (count < size) | |
| 447e: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 4482: 58 00 08 2c ori $r0,$r0,#0x82c ; USB offset 0x2c: TXCNT, Transmit USB FIFO Byte Count Register | |
| 4486: 00 1e 7f ec lbi $r1,[$fp+#-20] ; | |
| 448a: 54 10 80 ff andi $r1,$r1,#0xff ; | |
| 448e: 14 10 00 00 swi $r1,[$r0+#0x0] ; write count to TXCNT | |
| 4492: d5 01 j8 0x4494 | |
| 4494: 51 fe 00 00 addi $sp,$fp,#0x0 | |
| 4498: 3b ff fe 04 lmw.bim $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 449c: 4a 00 78 20 ret $lp | |
| ; ---------- 0x44a0: usb_tx_endpoint0() | |
| 44a0: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 44a4: 51 cf 80 04 addi $fp,$sp,#0x4 ; $fp = $sp+4 | |
| 44a8: 51 ff ff f8 addi $sp,$sp,#-8 | |
| 44ac: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 44b0: 00 00 00 07 lbi $r0,[$r0+#0x7] | |
| 44b4: 54 00 00 ff andi $r0,$r0,#0xff | |
| 44b8: 40 10 20 08 slli $r1,$r0,#0x8 | |
| 44bc: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 44c0: 00 00 00 06 lbi $r0,[$r0+#0x6] | |
| 44c4: 54 00 00 ff andi $r0,$r0,#0xff | |
| 44c8: 40 00 80 00 add $r0,$r1,$r0 | |
| 44cc: 14 0e 7f fe swi $r0,[$fp+#-8] ; $fp-8 = crc16 from packet at $gp+0x870 | |
| 44d0: 3e 0f ff f0 addi.gp $r0,#-16 | |
| 44d4: 00 00 00 00 lbi $r0,[$r0+#0x0] ; $r0 = [$gp-16] | |
| 44d8: 54 00 00 ff andi $r0,$r0,#0xff | |
| 44dc: 80 20 mov55 $r1,$r0 ; $r1 = [$gp-16] | |
| 44de: 04 0e 7f fe lwi $r0,[$fp+#-8] ; $r0 = gp870_packet_crc | |
| 44e2: 40 f0 80 06 slt $r15,$r1,$r0 ; | |
| 44e6: 4e f2 00 0a beqz $r15,0x44fa ; if gp870_packet_crc <= [$gp-16]: | |
| 44ea: 3e 0f ff f0 addi.gp $r0,#-16 ; | |
| 44ee: 00 00 00 00 lbi $r0,[$r0+#0x0] ; | |
| 44f2: 54 00 00 ff andi $r0,$r0,#0xff ; | |
| 44f6: 14 0e 7f fe swi $r0,[$fp+#-8] ; gp870_packet_crc = [$gp-16] | |
| 44fa: 04 0e 7f fe lwi $r0,[$fp+#-8] ; $r0 = gp870_packet_crc | |
| 44fe: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4502: 80 20 mov55 $r1,$r0 | |
| 4504: 44 00 00 00 movi $r0,#0x0 | |
| 4508: 49 ff ff 60 jal 0x43c8 ; usb_tx_pktbuf2(endpoint=0, size=[$fp-8]) | |
| 450c: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 4510: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 4514: 4a 00 78 20 ret $lp | |
| ; ---------- 0x4518: usb_tx_pktbuf() | |
| 4518: 3b ff fe 3c smw.adm $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 451c: 51 cf 80 00 addi $fp,$sp,#0x0 | |
| 4520: 51 ff ff e4 addi $sp,$sp,#-28 | |
| 4524: 14 0e 7f fa swi $r0,[$fp+#-24] | |
| 4528: 44 00 00 00 movi $r0,#0x0 | |
| 452c: 14 0e 7f fd swi $r0,[$fp+#-12] | |
| 4530: 3e 08 08 70 addi.gp $r0,#0x870 ; $r0 = $gp+0x870 (pktbuf) | |
| 4534: 00 00 00 07 lbi $r0,[$r0+#0x7] | |
| 4538: 54 00 00 ff andi $r0,$r0,#0xff | |
| 453c: 40 10 20 08 slli $r1,$r0,#0x8 | |
| 4540: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4544: 00 00 00 06 lbi $r0,[$r0+#0x6] | |
| 4548: 54 00 00 ff andi $r0,$r0,#0xff | |
| 454c: 40 00 80 00 add $r0,$r1,$r0 | |
| 4550: 14 0e 7f fe swi $r0,[$fp+#-8] | |
| 4554: 04 0e 7f fa lwi $r0,[$fp+#-24] | |
| 4558: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 455c: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4560: 80 20 mov55 $r1,$r0 | |
| 4562: 04 0e 7f fe lwi $r0,[$fp+#-8] | |
| 4566: 40 f0 80 06 slt $r15,$r1,$r0 | |
| 456a: e8 09 beqzs8 0x457c | |
| 456c: 04 0e 7f fa lwi $r0,[$fp+#-24] | |
| 4570: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4574: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4578: 14 0e 7f fe swi $r0,[$fp+#-8] | |
| 457c: 3e 0f ff a0 addi.gp $r0,#-96 | |
| 4580: 04 1e 7f fe lwi $r1,[$fp+#-8] | |
| 4584: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 4588: 3e 0f ff a4 addi.gp $r0,#-92 | |
| 458c: 44 10 00 00 movi $r1,#0x0 | |
| 4590: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 4594: 3e 0f ff a8 addi.gp $r0,#-88 | |
| 4598: 04 1e 7f fa lwi $r1,[$fp+#-24] | |
| 459c: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 45a0: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 45a4: 58 00 08 28 ori $r0,$r0,#0x828 ; USB offset 0x28: TXFLG, Transmit USB FIFO Flag Register | |
| 45a8: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 45ac: 54 00 00 04 andi $r0,$r0,#0x4 | |
| 45b0: c8 64 bnez38 $r0,0x4678 | |
| 45b2: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 45b6: 58 00 08 28 ori $r0,$r0,#0x828 ; USB offset 0x28: TXFLG, Transmit USB FIFO Flag Register | |
| 45ba: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 45be: 54 00 00 01 andi $r0,$r0,#0x1 | |
| 45c2: 54 00 00 ff andi $r0,$r0,#0xff | |
| 45c6: c0 09 beqz38 $r0,0x45d8 | |
| 45c8: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 45cc: 58 00 08 24 ori $r0,$r0,#0x824 ; USB offset 0x24: TXCON, Transmit USB FIFO Control Register | |
| 45d0: 44 10 00 80 movi $r1,#0x80 | |
| 45d4: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 45d8: 04 0e 7f fe lwi $r0,[$fp+#-8] | |
| 45dc: c0 30 beqz38 $r0,0x463c | |
| 45de: 44 00 00 00 movi $r0,#0x0 | |
| 45e2: 14 0e 7f fc swi $r0,[$fp+#-16] | |
| 45e6: d5 23 j8 0x462c | |
| 45e8: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 45ec: 58 00 08 20 ori $r0,$r0,#0x820 ; USB offset 0x20: TXDAT, Transmit USB FIFO Data Register | |
| 45f0: 04 2e 7f fa lwi $r2,[$fp+#-24] | |
| 45f4: 04 1e 7f fc lwi $r1,[$fp+#-16] | |
| 45f8: 40 11 04 00 add $r1,$r2,$r1 | |
| 45fc: 00 10 80 00 lbi $r1,[$r1+#0x0] | |
| 4600: 54 10 80 ff andi $r1,$r1,#0xff | |
| 4604: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 4608: 04 0e 7f fd lwi $r0,[$fp+#-12] | |
| 460c: 50 00 00 01 addi $r0,$r0,#0x1 | |
| 4610: 14 0e 7f fd swi $r0,[$fp+#-12] | |
| 4614: 04 1e 7f fd lwi $r1,[$fp+#-12] | |
| 4618: 44 00 00 40 movi $r0,#0x40 | |
| 461c: 4c 10 00 10 beq $r1,$r0,0x463c | |
| 4620: 04 0e 7f fc lwi $r0,[$fp+#-16] | |
| 4624: 50 00 00 01 addi $r0,$r0,#0x1 | |
| 4628: 14 0e 7f fc swi $r0,[$fp+#-16] | |
| 462c: 04 1e 7f fc lwi $r1,[$fp+#-16] | |
| 4630: 04 0e 7f fe lwi $r0,[$fp+#-8] | |
| 4634: 40 f0 80 06 slt $r15,$r1,$r0 | |
| 4638: e9 d8 bnezs8 0x45e8 | |
| 463a: d5 01 j8 0x463c | |
| 463c: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 4640: 58 00 08 2c ori $r0,$r0,#0x82c ; USB offset 0x2c: TXCNT, Transmit USB FIFO Byte Count Register | |
| 4644: 04 1e 7f fd lwi $r1,[$fp+#-12] | |
| 4648: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 464c: 04 1e 7f fe lwi $r1,[$fp+#-8] | |
| 4650: 04 0e 7f fd lwi $r0,[$fp+#-12] | |
| 4654: 40 10 80 01 sub $r1,$r1,$r0 | |
| 4658: 3e 0f ff a0 addi.gp $r0,#-96 | |
| 465c: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 4660: 3e 0f ff a4 addi.gp $r0,#-92 | |
| 4664: 04 10 00 00 lwi $r1,[$r0+#0x0] | |
| 4668: 04 0e 7f fd lwi $r0,[$fp+#-12] | |
| 466c: 40 10 80 00 add $r1,$r1,$r0 | |
| 4670: 3e 0f ff a4 addi.gp $r0,#-92 | |
| 4674: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 4678: 51 fe 00 00 addi $sp,$fp,#0x0 | |
| 467c: 3b ff fe 04 lmw.bim $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 4680: 4a 00 78 20 ret $lp | |
| ; ---------- 0x4684: usb_tx_data(addr=$r0, size=$r1) | |
| ; ---------- transmits size bytes (starting at addr) to previously-selected endpoint | |
| ; ---------- globals: $gp-92 (total_wrote), $gp-96 (tx_bytes_pending) | |
| 4684: 3b ff fe 3c smw.adm $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 4688: 51 cf 80 00 addi $fp,$sp,#0x0 ; | |
| 468c: 51 ff ff e4 addi $sp,$sp,#-28 | |
| 4690: 14 0e 7f fa swi $r0,[$fp+#-24] ; [$fp-24] = addr | |
| 4694: 14 1e 7f f9 swi $r1,[$fp+#-28] ; [$fp-28] = size | |
| 4698: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 469c: 00 00 00 07 lbi $r0,[$r0+#0x7] | |
| 46a0: 54 00 00 ff andi $r0,$r0,#0xff | |
| 46a4: 40 10 20 08 slli $r1,$r0,#0x8 | |
| 46a8: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 46ac: 00 00 00 06 lbi $r0,[$r0+#0x6] | |
| 46b0: 54 00 00 ff andi $r0,$r0,#0xff | |
| 46b4: 40 00 80 00 add $r0,$r1,$r0 | |
| 46b8: 14 0e 7f fd swi $r0,[$fp+#-12] | |
| 46bc: 44 00 00 00 movi $r0,#0x0 | |
| 46c0: 14 0e 7f fe swi $r0,[$fp+#-8] ; $fp-8 (wrote_count) = 0 | |
| 46c4: 04 1e 7f fd lwi $r1,[$fp+#-12] | |
| 46c8: 04 0e 7f f9 lwi $r0,[$fp+#-28] | |
| 46cc: 40 f0 80 06 slt $r15,$r1,$r0 | |
| 46d0: e8 05 beqzs8 0x46da | |
| 46d2: 04 0e 7f fd lwi $r0,[$fp+#-12] | |
| 46d6: 14 0e 7f f9 swi $r0,[$fp+#-28] | |
| 46da: 3e 0f ff a0 addi.gp $r0,#-96 | |
| 46de: 04 1e 7f f9 lwi $r1,[$fp+#-28] | |
| 46e2: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 46e6: 3e 0f ff a4 addi.gp $r0,#-92 | |
| 46ea: 44 10 00 00 movi $r1,#0x0 | |
| 46ee: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 46f2: 3e 0f ff a8 addi.gp $r0,#-88 | |
| 46f6: 04 1e 7f fa lwi $r1,[$fp+#-24] ; $r1 = addr | |
| 46fa: 14 10 00 00 swi $r1,[$r0+#0x0] ; [$gp-88] = addr | |
| 46fe: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 4702: 58 00 08 28 ori $r0,$r0,#0x828 ; USB offset 0x28: TXFLG, Transmit USB FIFO Flag Register | |
| 4706: 04 00 00 00 lwi $r0,[$r0+#0x0] ; $r0 = addr | |
| 470a: 54 00 00 04 andi $r0,$r0,#0x4 ; | |
| 470e: c8 67 bnez38 $r0,0x47dc ; if addr & 0x4: goto out | |
| 4710: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 4714: 58 00 08 28 ori $r0,$r0,#0x828 ; USB offset 0x28: TXFLG, Transmit USB FIFO Flag Register | |
| 4718: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 471c: 54 00 00 01 andi $r0,$r0,#0x1 | |
| 4720: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4724: c0 09 beqz38 $r0,0x4736 | |
| 4726: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 472a: 58 00 08 24 ori $r0,$r0,#0x824 ; USB offset 0x24: TXCON, Transmit USB FIFO Control Register | |
| 472e: 44 10 00 80 movi $r1,#0x80 | |
| 4732: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 4736: 04 0e 7f f9 lwi $r0,[$fp+#-28] | |
| 473a: c0 31 beqz38 $r0,0x479c | |
| 473c: 44 00 00 00 movi $r0,#0x0 | |
| 4740: 14 0e 7f fc swi $r0,[$fp+#-16] ; $fp-16 (offset) = 0 | |
| 4744: d5 23 j8 0x478a ; goto LOOP_CHECK | |
| ; LOOP_START: | |
| 4746: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 474a: 58 00 08 20 ori $r0,$r0,#0x820 ; USB offset 0x20: TXDAT, Transmit USB FIFO Data Register | |
| 474e: 04 2e 7f fa lwi $r2,[$fp+#-24] ; $r2 = addr | |
| 4752: 04 1e 7f fc lwi $r1,[$fp+#-16] ; $r1 = offset | |
| 4756: 40 11 04 00 add $r1,$r2,$r1 ; | |
| 475a: 00 10 80 00 lbi $r1,[$r1+#0x0] ; $r1 = addr[offset] | |
| 475e: 54 10 80 ff andi $r1,$r1,#0xff ; | |
| 4762: 14 10 00 00 swi $r1,[$r0+#0x0] ; write $r1 to TXDAT | |
| 4766: 04 0e 7f fe lwi $r0,[$fp+#-8] ; | |
| 476a: 50 00 00 01 addi $r0,$r0,#0x1 ; | |
| 476e: 14 0e 7f fe swi $r0,[$fp+#-8] ; wrote_count++ | |
| 4772: 04 1e 7f fe lwi $r1,[$fp+#-8] ; | |
| 4776: 44 00 00 40 movi $r0,#0x40 ; | |
| 477a: 4c 10 00 11 beq $r1,$r0,0x479c ; if wrote_count == 0x40: goto TX_DONE | |
| 477e: 04 0e 7f fc lwi $r0,[$fp+#-16] ; | |
| 4782: 50 00 00 01 addi $r0,$r0,#0x1 ; | |
| 4786: 14 0e 7f fc swi $r0,[$fp+#-16] ; offset++ | |
| 478a: 04 1e 7f fc lwi $r1,[$fp+#-16] ; LOOP_CHECK: $r1 = offset | |
| 478e: 04 0e 7f f9 lwi $r0,[$fp+#-28] ; $r0 = size | |
| 4792: 40 f0 80 06 slt $r15,$r1,$r0 ; | |
| 4796: 4e f3 ff d8 bnez $r15,0x4746 ; if (offset < size): goto LOOP_START | |
| 479a: d5 01 j8 0x479c ; goto TX_DONE | |
| ; label TX_DONE: | |
| 479c: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 47a0: 58 00 08 2c ori $r0,$r0,#0x82c ; USB offset 0x2c: TXCNT, Transmit USB FIFO Byte Count Register | |
| 47a4: 04 1e 7f fe lwi $r1,[$fp+#-8] | |
| 47a8: 54 10 80 ff andi $r1,$r1,#0xff | |
| 47ac: 14 10 00 00 swi $r1,[$r0+#0x0] ; write wrote_count to TXCNT | |
| 47b0: 04 1e 7f f9 lwi $r1,[$fp+#-28] ; $r1 = size | |
| 47b4: 04 0e 7f fe lwi $r0,[$fp+#-8] ; $r0 = wrote_count | |
| 47b8: 40 10 80 01 sub $r1,$r1,$r0 ; $r1 = size - wrote_count | |
| 47bc: 3e 0f ff a0 addi.gp $r0,#-96 ; | |
| 47c0: 14 10 00 00 swi $r1,[$r0+#0x0] ; [$gp-96] (tx_bytes_pending) = size-wrote_count | |
| 47c4: 3e 0f ff a4 addi.gp $r0,#-92 ; | |
| 47c8: 04 10 00 00 lwi $r1,[$r0+#0x0] ; $r1 = [$gp-92] (total_wrote) | |
| 47cc: 04 0e 7f fe lwi $r0,[$fp+#-8] ; $r0 = wrote_count | |
| 47d0: 40 10 80 00 add $r1,$r1,$r0 ; $r1 = total_wrote + wrote_count | |
| 47d4: 3e 0f ff a4 addi.gp $r0,#-92 ; | |
| 47d8: 14 10 00 00 swi $r1,[$r0+#0x0] ; wrote_count += total_wrote | |
| 47dc: 51 fe 00 00 addi $sp,$fp,#0x0 | |
| 47e0: 3b ff fe 04 lmw.bim $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 47e4: 4a 00 78 20 ret $lp | |
| ; ----------- 0x47e8: usb_tx_something() | |
| 47e8: 3b ff fe 3c smw.adm $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 47ec: 51 cf 80 00 addi $fp,$sp,#0x0 | |
| 47f0: 51 ff ff ec addi $sp,$sp,#-20 | |
| 47f4: 3e 0f ff a8 addi.gp $r0,#-88 | |
| 47f8: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 47fc: 14 0e 7f fc swi $r0,[$fp+#-16] | |
| 4800: 3e 0f ff a0 addi.gp $r0,#-96 | |
| 4804: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 4808: 14 0e 7f fd swi $r0,[$fp+#-12] | |
| 480c: 44 00 00 00 movi $r0,#0x0 | |
| 4810: 14 0e 7f fe swi $r0,[$fp+#-8] | |
| 4814: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 4818: 58 00 08 28 ori $r0,$r0,#0x828 ; USB offset 0x28: TXFLG, Transmit USB FIFO Flag Register | |
| 481c: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 4820: 54 00 00 04 andi $r0,$r0,#0x4 | |
| 4824: c8 6e bnez38 $r0,0x4900 | |
| 4826: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 482a: 58 00 08 28 ori $r0,$r0,#0x828 ; USB offset 0x28: TXFLG, Transmit USB FIFO Flag Register | |
| 482e: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 4832: 54 00 00 01 andi $r0,$r0,#0x1 | |
| 4836: 54 00 00 ff andi $r0,$r0,#0xff | |
| 483a: c0 09 beqz38 $r0,0x484c | |
| 483c: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 4840: 58 00 08 24 ori $r0,$r0,#0x824 ; USB offset 0x24: TXCON, Transmit USB FIFO Control Register | |
| 4844: 44 10 00 80 movi $r1,#0x80 | |
| 4848: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 484c: 04 0e 7f fd lwi $r0,[$fp+#-12] | |
| 4850: c0 3a beqz38 $r0,0x48c4 | |
| 4852: 3e 0f ff a4 addi.gp $r0,#-92 | |
| 4856: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 485a: 04 1e 7f fc lwi $r1,[$fp+#-16] | |
| 485e: 40 00 80 00 add $r0,$r1,$r0 | |
| 4862: 14 0e 7f fc swi $r0,[$fp+#-16] | |
| 4866: 44 00 00 00 movi $r0,#0x0 | |
| 486a: 14 0e 7f fb swi $r0,[$fp+#-20] | |
| 486e: d5 23 j8 0x48b4 | |
| 4870: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 4874: 58 00 08 20 ori $r0,$r0,#0x820 ; USB offset 0x20: TXDAT, Transmit USB FIFO Data Register | |
| 4878: 04 2e 7f fc lwi $r2,[$fp+#-16] | |
| 487c: 04 1e 7f fb lwi $r1,[$fp+#-20] | |
| 4880: 40 11 04 00 add $r1,$r2,$r1 | |
| 4884: 00 10 80 00 lbi $r1,[$r1+#0x0] | |
| 4888: 54 10 80 ff andi $r1,$r1,#0xff | |
| 488c: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 4890: 04 0e 7f fe lwi $r0,[$fp+#-8] | |
| 4894: 50 00 00 01 addi $r0,$r0,#0x1 | |
| 4898: 14 0e 7f fe swi $r0,[$fp+#-8] | |
| 489c: 04 1e 7f fe lwi $r1,[$fp+#-8] | |
| 48a0: 44 00 00 40 movi $r0,#0x40 | |
| 48a4: 4c 10 00 10 beq $r1,$r0,0x48c4 | |
| 48a8: 04 0e 7f fb lwi $r0,[$fp+#-20] | |
| 48ac: 50 00 00 01 addi $r0,$r0,#0x1 | |
| 48b0: 14 0e 7f fb swi $r0,[$fp+#-20] | |
| 48b4: 04 1e 7f fb lwi $r1,[$fp+#-20] | |
| 48b8: 04 0e 7f fd lwi $r0,[$fp+#-12] | |
| 48bc: 40 f0 80 06 slt $r15,$r1,$r0 | |
| 48c0: e9 d8 bnezs8 0x4870 | |
| 48c2: d5 01 j8 0x48c4 | |
| 48c4: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 48c8: 58 00 08 2c ori $r0,$r0,#0x82c ; USB offset 0x2c: TXCNT, Transmit USB FIFO Byte Count Register | |
| 48cc: 04 1e 7f fe lwi $r1,[$fp+#-8] | |
| 48d0: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 48d4: 04 1e 7f fd lwi $r1,[$fp+#-12] | |
| 48d8: 04 0e 7f fe lwi $r0,[$fp+#-8] | |
| 48dc: 40 10 80 01 sub $r1,$r1,$r0 | |
| 48e0: 3e 0f ff a0 addi.gp $r0,#-96 | |
| 48e4: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 48e8: 3e 0f ff a4 addi.gp $r0,#-92 | |
| 48ec: 04 10 00 00 lwi $r1,[$r0+#0x0] | |
| 48f0: 04 0e 7f fe lwi $r0,[$fp+#-8] | |
| 48f4: 40 10 80 00 add $r1,$r1,$r0 | |
| 48f8: 3e 0f ff a4 addi.gp $r0,#-92 | |
| 48fc: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 4900: 51 fe 00 00 addi $sp,$fp,#0x0 | |
| 4904: 3b ff fe 04 lmw.bim $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 4908: 4a 00 78 20 ret $lp | |
| ; ---------- 0x490c: usb_tx_init(endpoint=$r0) | |
| 490c: 3b ff fe 3c smw.adm $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 4910: 51 cf 80 00 addi $fp,$sp,#0x0 | |
| 4914: 51 ff ff f4 addi $sp,$sp,#-12 | |
| 4918: 80 00 mov55 $r0,$r0 | |
| 491a: 10 0e 7f f8 sbi $r0,[$fp+#-8] ; [$fp-8] = endpoint | |
| 491e: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 4922: 58 00 08 14 ori $r0,$r0,#0x814 ; USB offset 0x14: EPINDEX, Endpoint Index Register | |
| 4926: 00 1e 7f f8 lbi $r1,[$fp+#-8] ; | |
| 492a: 54 10 80 ff andi $r1,$r1,#0xff ; | |
| 492e: 14 10 00 00 swi $r1,[$r0+#0x0] ; ..write endpoint to EPINDEX | |
| 4932: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 4936: 58 00 08 18 ori $r0,$r0,#0x818 ; USB offset 0x18: EPCON, Endpoint Data-flow Control Register | |
| 493a: 44 10 00 03 movi $r1,#0x3 ; | |
| 493e: 14 10 00 00 swi $r1,[$r0+#0x0] ; EPCON = 0b0000_0011: +TXOE, +TXEPEN | |
| 4942: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 4946: 58 00 08 24 ori $r0,$r0,#0x824 ; USB offset 0x24: TXCON, Transmit USB FIFO Control Register | |
| 494a: 44 10 00 80 movi $r1,#0x80 ; | |
| 494e: 14 10 00 00 swi $r1,[$r0+#0x0] ; TXCON = 0b1000_0000: flush TX FIFO, clear TXFLG | |
| 4952: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 4956: 58 00 08 30 ori $r0,$r0,#0x830 ; USB offset 0x30: TXSTAT, Endpoint Transmit Status Register | |
| 495a: 44 1f ff 7f movi $r1,#-129 ; $r1 = 0xffffff7f | |
| 495e: 14 10 00 00 swi $r1,[$r0+#0x0] ; clear TXSTAT bit 7 (TXSEQ - waiting for ACK, new config/interface) | |
| 4962: 51 fe 00 00 addi $sp,$fp,#0x0 | |
| 4966: 3b ff fe 04 lmw.bim $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 496a: 4a 00 78 20 ret $lp | |
| 496e: 92 00 nop16 | |
| ; ---------- 0x4970: usb_rx_init(endpoint=$r0) | |
| 4970: 3b ff fe 3c smw.adm $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 4974: 51 cf 80 00 addi $fp,$sp,#0x0 | |
| 4978: 51 ff ff f4 addi $sp,$sp,#-12 | |
| 497c: 80 00 mov55 $r0,$r0 | |
| 497e: 10 0e 7f f8 sbi $r0,[$fp+#-8] | |
| 4982: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 4986: 58 00 08 14 ori $r0,$r0,#0x814 ; USB offset 0x14: EPINDEX, Endpoint Index Register | |
| 498a: 00 1e 7f f8 lbi $r1,[$fp+#-8] | |
| 498e: 54 10 80 ff andi $r1,$r1,#0xff | |
| 4992: 14 10 00 00 swi $r1,[$r0+#0x0] ; ...select endpoint | |
| 4996: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 499a: 58 00 08 18 ori $r0,$r0,#0x818 ; USB offset 0x18: EPCON, Endpoint Data-flow Control Register | |
| 499e: 44 10 00 0c movi $r1,#0xc ; | |
| 49a2: 14 10 00 00 swi $r1,[$r0+#0x0] ; EPCON = 0b0000_1100, +RXIE, +RXEPEN | |
| 49a6: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 49aa: 58 00 08 64 ori $r0,$r0,#0x864 ; USB offset 0x64: RXCON, Receive FIFO Control Register | |
| 49ae: 44 10 00 90 movi $r1,#0x90 | |
| 49b2: 14 10 00 00 swi $r1,[$r0+#0x0] ; RXCON = 0b1001_0000, flush RX FIFO, clear RXFLG, set Read Complete | |
| 49b6: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 49ba: 58 00 08 70 ori $r0,$r0,#0x870 ; USB offset 0x70: RXSTAT, Endpoint Receive Status Register | |
| 49be: 44 1f ff 7f movi $r1,#-129 ; $r1 = 0xffffff7f | |
| 49c2: 14 10 00 00 swi $r1,[$r0+#0x0] ; clear RXSTAT bit 7 (RXSEQ - waiting for ACK, new config/interface) | |
| 49c6: 51 fe 00 00 addi $sp,$fp,#0x0 | |
| 49ca: 3b ff fe 04 lmw.bim $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 49ce: 4a 00 78 20 ret $lp | |
| 49d2: 92 00 nop16 | |
| ; ----------- 0x49d4: usb_disable_endpoint(endpoint=$r0) | |
| 49d4: 3b ff fe 3c smw.adm $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 49d8: 51 cf 80 00 addi $fp,$sp,#0x0 | |
| 49dc: 51 ff ff f4 addi $sp,$sp,#-12 | |
| 49e0: 80 00 mov55 $r0,$r0 | |
| 49e2: 10 0e 7f f8 sbi $r0,[$fp+#-8] | |
| 49e6: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 49ea: 58 00 08 14 ori $r0,$r0,#0x814 ; USB offset 0x14: EPINDEX, Endpoint Index Register | |
| 49ee: 00 1e 7f f8 lbi $r1,[$fp+#-8] | |
| 49f2: 54 10 80 ff andi $r1,$r1,#0xff | |
| 49f6: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 49fa: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 49fe: 58 00 08 18 ori $r0,$r0,#0x818 ; USB offset 0x18: EPCON, Endpoint Data-flow Control Register | |
| 4a02: 44 10 00 00 movi $r1,#0x0 | |
| 4a06: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 4a0a: 51 fe 00 00 addi $sp,$fp,#0x0 | |
| 4a0e: 3b ff fe 04 lmw.bim $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 4a12: 4a 00 78 20 ret $lp | |
| 4a16: 92 00 nop16 | |
| 4a18: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 4a1c: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 4a20: 3e 08 08 b0 addi.gp $r0,#0x8b0 | |
| 4a24: 44 10 00 00 movi $r1,#0x0 | |
| 4a28: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 4a2c: 3e 08 08 b0 addi.gp $r0,#0x8b0 | |
| 4a30: 44 10 00 00 movi $r1,#0x0 | |
| 4a34: 10 10 00 01 sbi $r1,[$r0+#0x1] | |
| 4a38: 3e 0f ff f0 addi.gp $r0,#-16 | |
| 4a3c: 44 10 00 02 movi $r1,#0x2 | |
| 4a40: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 4a44: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4a48: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4a4c: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4a50: 44 00 00 80 movi $r0,#0x80 | |
| 4a54: 4c 10 40 10 bne $r1,$r0,0x4a74 | |
| 4a58: 3e 0f ff f2 addi.gp $r0,#-14 | |
| 4a5c: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4a60: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4a64: 3e 08 08 b0 addi.gp $r0,#0x8b0 | |
| 4a68: 80 21 mov55 $r1,$r1 | |
| 4a6a: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 4a6e: 49 ff fd 19 jal 0x44a0 ; usb_tx_endpoint0() | |
| 4a72: d5 51 j8 0x4b14 | |
| 4a74: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4a78: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4a7c: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4a80: 44 00 00 81 movi $r0,#0x81 | |
| 4a84: 4c 10 40 05 bne $r1,$r0,0x4a8e | |
| 4a88: 49 ff fd 0c jal 0x44a0 ; usb_tx_endpoint0() | |
| 4a8c: d5 44 j8 0x4b14 | |
| 4a8e: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4a92: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4a96: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4a9a: 44 00 00 82 movi $r0,#0x82 | |
| 4a9e: 4c 10 40 37 bne $r1,$r0,0x4b0c | |
| 4aa2: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4aa6: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 4aaa: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4aae: 54 00 00 7f andi $r0,$r0,#0x7f | |
| 4ab2: c8 0d bnez38 $r0,0x4acc | |
| 4ab4: 3e 0f ff f3 addi.gp $r0,#-13 | |
| 4ab8: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4abc: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4ac0: 3e 08 08 b0 addi.gp $r0,#0x8b0 | |
| 4ac4: 80 21 mov55 $r1,$r1 | |
| 4ac6: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 4aca: d5 1e j8 0x4b06 | |
| 4acc: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 4ad0: 58 00 08 14 ori $r0,$r0,#0x814 ; USB offset 0x14: EPINDEX, Endpoint Index Register | |
| 4ad4: 3e 18 08 70 addi.gp $r1,#0x870 | |
| 4ad8: 00 10 80 04 lbi $r1,[$r1+#0x4] | |
| 4adc: 54 10 80 ff andi $r1,$r1,#0xff | |
| 4ae0: 54 10 80 7f andi $r1,$r1,#0x7f | |
| 4ae4: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 4ae8: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 4aec: 58 00 08 18 ori $r0,$r0,#0x818 ; USB offset 0x18: EPCON, Endpoint Data-flow Control Register | |
| 4af0: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 4af4: 54 00 00 40 andi $r0,$r0,#0x40 | |
| 4af8: c0 07 beqz38 $r0,0x4b06 | |
| 4afa: 3e 08 08 b0 addi.gp $r0,#0x8b0 | |
| 4afe: 44 10 00 01 movi $r1,#0x1 | |
| 4b02: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 4b06: 49 ff fc cd jal 0x44a0 ; usb_tx_endpoint0() | |
| 4b0a: d5 05 j8 0x4b14 | |
| 4b0c: 44 00 00 00 movi $r0,#0x0 | |
| 4b10: 49 ff fb fc jal 0x4308 ; usb_stall(endpoint=$r0) | |
| 4b14: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 4b18: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 4b1c: 4a 00 78 20 ret $lp | |
| 4b20: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 4b24: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 4b28: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4b2c: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4b30: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4b34: c8 1b bnez38 $r0,0x4b6a | |
| 4b36: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4b3a: 00 00 00 02 lbi $r0,[$r0+#0x2] | |
| 4b3e: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4b42: 44 00 00 01 movi $r0,#0x1 | |
| 4b46: 4c 10 40 49 bne $r1,$r0,0x4bd8 | |
| 4b4a: 3e 0f ff f2 addi.gp $r0,#-14 | |
| 4b4e: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4b52: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4b56: 54 00 00 fd andi $r0,$r0,#0xfd | |
| 4b5a: 3e 1f ff f2 addi.gp $r1,#-14 | |
| 4b5e: 80 00 mov55 $r0,$r0 | |
| 4b60: 10 00 80 00 sbi $r0,[$r1+#0x0] | |
| 4b64: 49 ff fc 9e jal 0x44a0 ; usb_tx_endpoint0() | |
| 4b68: d5 3c j8 0x4be0 | |
| 4b6a: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4b6e: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4b72: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4b76: 44 00 00 02 movi $r0,#0x2 | |
| 4b7a: 4c 10 40 2f bne $r1,$r0,0x4bd8 | |
| 4b7e: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4b82: 00 00 00 02 lbi $r0,[$r0+#0x2] | |
| 4b86: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4b8a: c8 27 bnez38 $r0,0x4bd8 | |
| 4b8c: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4b90: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 4b94: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4b98: 54 00 00 7f andi $r0,$r0,#0x7f | |
| 4b9c: c8 11 bnez38 $r0,0x4bbe | |
| 4b9e: 3e 0f ff f3 addi.gp $r0,#-13 | |
| 4ba2: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4ba6: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4baa: 54 00 00 fe andi $r0,$r0,#0xfe | |
| 4bae: 3e 1f ff f3 addi.gp $r1,#-13 | |
| 4bb2: 80 00 mov55 $r0,$r0 | |
| 4bb4: 10 00 80 00 sbi $r0,[$r1+#0x0] | |
| 4bb8: 49 ff fc 74 jal 0x44a0 ; usb_tx_endpoint0() | |
| 4bbc: d5 12 j8 0x4be0 | |
| 4bbe: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4bc2: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 4bc6: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4bca: 54 00 00 7f andi $r0,$r0,#0x7f | |
| 4bce: 49 ff fb c5 jal 0x4358 ; usb_stall_clear(endpoint=$r0) (this is the only caller!) | |
| 4bd2: 49 ff fc 67 jal 0x44a0 ; usb_tx_endpoint0() | |
| 4bd6: d5 05 j8 0x4be0 | |
| 4bd8: 44 00 00 00 movi $r0,#0x0 | |
| 4bdc: 49 ff fb 96 jal 0x4308 ; usb_stall(endpoint=$r0) | |
| 4be0: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 4be4: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 4be8: 4a 00 78 20 ret $lp | |
| 4bec: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 4bf0: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 4bf4: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4bf8: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4bfc: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4c00: c8 1d bnez38 $r0,0x4c3a | |
| 4c02: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4c06: 00 00 00 02 lbi $r0,[$r0+#0x2] | |
| 4c0a: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4c0e: 44 00 00 01 movi $r0,#0x1 | |
| 4c12: 4c 10 40 4d bne $r1,$r0,0x4cac ; goto stall0: | |
| 4c16: 3e 0f ff f2 addi.gp $r0,#-14 | |
| 4c1a: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4c1e: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4c22: 58 00 00 02 ori $r0,$r0,#0x2 | |
| 4c26: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4c2a: 3e 0f ff f2 addi.gp $r0,#-14 | |
| 4c2e: 80 21 mov55 $r1,$r1 | |
| 4c30: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 4c34: 49 ff fc 36 jal 0x44a0 ; usb_tx_endpoint0() | |
| 4c38: d5 3e j8 0x4cb4 ; goto out | |
| 4c3a: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4c3e: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4c42: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4c46: 44 00 00 02 movi $r0,#0x2 | |
| 4c4a: 4c 10 40 31 bne $r1,$r0,0x4cac ; if ... goto stall0: | |
| 4c4e: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4c52: 00 00 00 02 lbi $r0,[$r0+#0x2] | |
| 4c56: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4c5a: c8 29 bnez38 $r0,0x4cac ; if ... goto stall0: | |
| 4c5c: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4c60: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 4c64: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4c68: 54 00 00 7f andi $r0,$r0,#0x7f | |
| 4c6c: c8 13 bnez38 $r0,0x4c92 | |
| 4c6e: 3e 0f ff f3 addi.gp $r0,#-13 | |
| 4c72: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4c76: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4c7a: 58 00 00 01 ori $r0,$r0,#0x1 | |
| 4c7e: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4c82: 3e 0f ff f3 addi.gp $r0,#-13 | |
| 4c86: 80 21 mov55 $r1,$r1 | |
| 4c88: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 4c8c: 49 ff fc 0a jal 0x44a0 ; usb_tx_endpoint0() | |
| 4c90: d5 12 j8 0x4cb4 ; goto out | |
| 4c92: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4c96: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 4c9a: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4c9e: 54 00 00 7f andi $r0,$r0,#0x7f | |
| 4ca2: 49 ff fb 33 jal 0x4308 ; usb_stall(endpoint=$r0) | |
| 4ca6: 49 ff fb fd jal 0x44a0 ; usb_tx_endpoint0() | |
| 4caa: d5 05 j8 0x4cb4 ; goto out | |
| 4cac: 44 00 00 00 movi $r0,#0x0 ;label stall0: | |
| 4cb0: 49 ff fb 2c jal 0x4308 ; usb_stall(endpoint=0) | |
| 4cb4: 51 fe 7f fc addi $sp,$fp,#-4 ;label out: | |
| 4cb8: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 4cbc: 4a 00 78 20 ret $lp | |
| 4cc0: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 4cc4: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 4cc8: 3e 0f ff ee addi.gp $r0,#-18 | |
| 4ccc: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4cd0: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4cd4: 44 1f ff 80 movi $r1,#-128 | |
| 4cd8: 40 00 04 04 or $r0,$r0,$r1 | |
| 4cdc: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4ce0: 3e 0f ff ee addi.gp $r0,#-18 | |
| 4ce4: 80 21 mov55 $r1,$r1 | |
| 4ce6: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 4cea: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4cee: 00 00 00 02 lbi $r0,[$r0+#0x2] | |
| 4cf2: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4cf6: 3e 0f ff f1 addi.gp $r0,#-15 | |
| 4cfa: 80 21 mov55 $r1,$r1 | |
| 4cfc: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 4d00: 49 ff fb d0 jal 0x44a0 ; usb_tx_endpoint0() | |
| 4d04: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 4d08: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 4d0c: 4a 00 78 20 ret $lp | |
| 4d10: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 4d14: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 4d18: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4d1c: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4d20: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4d24: 44 00 00 80 movi $r0,#0x80 | |
| 4d28: 4c 10 40 6a bne $r1,$r0,0x4dfc | |
| 4d2c: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4d30: 00 00 00 03 lbi $r0,[$r0+#0x3] | |
| 4d34: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4d38: 44 00 00 01 movi $r0,#0x1 | |
| 4d3c: 4c 10 40 08 bne $r1,$r0,0x4d4c | |
| 4d40: 44 00 d3 28 movi $r0,#0xd328 | |
| 4d44: 49 ff fb ea jal 0x4518 ; usb_tx_pktbuf() | |
| 4d48: 48 00 00 df j 0x4f06 ; pop {$fp, $lp} and return | |
| 4d4c: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4d50: 00 00 00 03 lbi $r0,[$r0+#0x3] | |
| 4d54: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4d58: 44 00 00 02 movi $r0,#0x2 | |
| 4d5c: 4c 10 40 1a bne $r1,$r0,0x4d90 | |
| 4d60: 44 00 d3 3c movi $r0,#0xd33c | |
| 4d64: 00 00 00 02 lbi $r0,[$r0+#0x2] | |
| 4d68: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4d6c: 80 20 mov55 $r1,$r0 | |
| 4d6e: 44 00 d3 3c movi $r0,#0xd33c | |
| 4d72: 00 00 00 03 lbi $r0,[$r0+#0x3] | |
| 4d76: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4d7a: 40 00 20 08 slli $r0,$r0,#0x8 | |
| 4d7e: 40 00 80 00 add $r0,$r1,$r0 | |
| 4d82: 80 20 mov55 $r1,$r0 | |
| 4d84: 44 00 d3 3c movi $r0,#0xd33c | |
| 4d88: 49 ff fc 7e jal 0x4684 ; usb_tx_data(addr=$r0, size=$r1) | |
| 4d8c: 48 00 00 bd j 0x4f06 ; pop {$fp, $lp} and return | |
| 4d90: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4d94: 00 00 00 03 lbi $r0,[$r0+#0x3] | |
| 4d98: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4d9c: 44 00 00 03 movi $r0,#0x3 | |
| 4da0: 4c 10 40 ac bne $r1,$r0,0x4ef8 | |
| 4da4: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4da8: 00 00 00 02 lbi $r0,[$r0+#0x2] | |
| 4dac: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4db0: 5c f0 00 04 slti $r15,$r0,#0x4 | |
| 4db4: 4e f2 00 a3 beqz $r15,0x4efa | |
| 4db8: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4dbc: 00 00 00 02 lbi $r0,[$r0+#0x2] | |
| 4dc0: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4dc4: 40 00 08 08 slli $r0,$r0,#0x2 | |
| 4dc8: 3e 1f fe 98 addi.gp $r1,#-360 | |
| 4dcc: 40 00 04 00 add $r0,$r0,$r1 | |
| 4dd0: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 4dd4: 4e 02 00 94 beqz $r0,0x4efc | |
| 4dd8: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4ddc: 00 00 00 02 lbi $r0,[$r0+#0x2] | |
| 4de0: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4de4: 40 00 08 08 slli $r0,$r0,#0x2 | |
| 4de8: 3e 1f fe 98 addi.gp $r1,#-360 | |
| 4dec: 40 00 04 00 add $r0,$r0,$r1 | |
| 4df0: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 4df4: 49 ff fb 92 jal 0x4518 ; usb_tx_pktbuf() | |
| 4df8: 48 00 00 87 j 0x4f06 ; pop {$fp, $lp} and return | |
| 4dfc: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4e00: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4e04: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4e08: 44 00 00 81 movi $r0,#0x81 | |
| 4e0c: 4c 10 40 79 bne $r1,$r0,0x4efe | |
| 4e10: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4e14: 00 00 00 03 lbi $r0,[$r0+#0x3] | |
| 4e18: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4e1c: 44 00 00 21 movi $r0,#0x21 | |
| 4e20: 4c 10 40 32 bne $r1,$r0,0x4e84 | |
| 4e24: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4e28: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 4e2c: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4e30: c8 08 bnez38 $r0,0x4e40 | |
| 4e32: 44 00 d3 4e movi $r0,#0xd34e | |
| 4e36: 44 10 00 09 movi $r1,#0x9 | |
| 4e3a: 49 ff fc 25 jal 0x4684 ; usb_tx_data(addr=$r0, size=$r1) | |
| 4e3e: d5 64 j8 0x4f06 ; pop {$fp, $lp} and return | |
| 4e40: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4e44: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 4e48: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4e4c: 44 00 00 01 movi $r0,#0x1 | |
| 4e50: 4c 10 40 09 bne $r1,$r0,0x4e62 | |
| 4e54: 44 00 d3 67 movi $r0,#0xd367 | |
| 4e58: 44 10 00 09 movi $r1,#0x9 | |
| 4e5c: 49 ff fc 14 jal 0x4684 ; usb_tx_data(addr=$r0, size=$r1) | |
| 4e60: d5 53 j8 0x4f06 ; pop {$fp, $lp} and return | |
| 4e62: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4e66: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 4e6a: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4e6e: 44 00 00 02 movi $r0,#0x2 | |
| 4e72: 4c 10 40 46 bne $r1,$r0,0x4efe | |
| 4e76: 44 00 d3 87 movi $r0,#0xd387 | |
| 4e7a: 44 10 00 09 movi $r1,#0x9 | |
| 4e7e: 49 ff fc 03 jal 0x4684 ; usb_tx_data(addr=$r0, size=$r1) | |
| 4e82: d5 42 j8 0x4f06 ; pop {$fp, $lp} and return | |
| 4e84: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4e88: 00 00 00 03 lbi $r0,[$r0+#0x3] | |
| 4e8c: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4e90: 44 00 00 22 movi $r0,#0x22 | |
| 4e94: 4c 10 40 35 bne $r1,$r0,0x4efe | |
| 4e98: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4e9c: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 4ea0: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4ea4: c8 08 bnez38 $r0,0x4eb4 | |
| 4ea6: 44 00 d3 f8 movi $r0,#0xd3f8 | |
| 4eaa: 44 10 00 40 movi $r1,#0x40 | |
| 4eae: 49 ff fb eb jal 0x4684 ; usb_tx_data(addr=$r0, size=$r1) | |
| 4eb2: d5 2a j8 0x4f06 ; pop {$fp, $lp} and return | |
| 4eb4: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4eb8: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 4ebc: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4ec0: 44 00 00 01 movi $r0,#0x1 | |
| 4ec4: 4c 10 40 09 bne $r1,$r0,0x4ed6 | |
| 4ec8: 44 00 d4 38 movi $r0,#0xd438 | |
| 4ecc: 44 10 00 22 movi $r1,#0x22 | |
| 4ed0: 49 ff fb da jal 0x4684 ; usb_tx_data(addr=$r0, size=$r1) | |
| 4ed4: d5 19 j8 0x4f06 ; pop {$fp, $lp} and return | |
| 4ed6: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4eda: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 4ede: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4ee2: 44 00 00 02 movi $r0,#0x2 | |
| 4ee6: 4c 10 40 0c bne $r1,$r0,0x4efe | |
| 4eea: 44 00 d4 5c movi $r0,#0xd45c | |
| 4eee: 44 10 00 cb movi $r1,#0xcb | |
| 4ef2: 49 ff fb c9 jal 0x4684 ; usb_tx_data(addr=$r0, size=$r1) | |
| 4ef6: d5 08 j8 0x4f06 ; pop {$fp, $lp} and return | |
| 4ef8: d5 03 j8 0x4efe | |
| 4efa: d5 02 j8 0x4efe | |
| 4efc: d5 01 j8 0x4efe | |
| ; ---------- | |
| 4efe: 44 00 00 00 movi $r0,#0x0 | |
| 4f02: 49 ff fa 03 jal 0x4308 ; usb_stall(endpoint=0) | |
| ; ---------- 0x4f06: pop {$fp, $lp} and return to $lp | |
| 4f06: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 4f0a: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 4f0e: 4a 00 78 20 ret $lp | |
| 4f12: 92 00 nop16 | |
| 4f14: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 4f18: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 4f1c: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4f20: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4f24: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4f28: 44 00 00 80 movi $r0,#0x80 | |
| 4f2c: 4c 10 40 16 bne $r1,$r0,0x4f58 | |
| 4f30: 3e 0f ff f4 addi.gp $r0,#-12 | |
| 4f34: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4f38: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4f3c: 3e 08 08 b0 addi.gp $r0,#0x8b0 | |
| 4f40: 80 21 mov55 $r1,$r1 | |
| 4f42: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 4f46: 3e 0f ff f0 addi.gp $r0,#-16 | |
| 4f4a: 44 10 00 01 movi $r1,#0x1 | |
| 4f4e: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 4f52: 49 ff fa a7 jal 0x44a0 ; usb_tx_endpoint0() | |
| 4f56: d5 05 j8 0x4f60 | |
| 4f58: 44 00 00 00 movi $r0,#0x0 | |
| 4f5c: 49 ff f9 d6 jal 0x4308 ; usb_stall(endpoint=$r0) | |
| 4f60: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 4f64: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 4f68: 4a 00 78 20 ret $lp | |
| 4f6c: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 4f70: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 4f74: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4f78: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4f7c: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4f80: c8 62 bnez38 $r0,0x5044 ; if pktbuf[0] != 0: goto out | |
| 4f82: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 4f86: 00 00 00 02 lbi $r0,[$r0+#0x2] ; pktbuf+2 (lastresult?) | |
| 4f8a: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4f8e: 3e 0f ff f4 addi.gp $r0,#-12 ; | |
| 4f92: 80 21 mov55 $r1,$r1 | |
| 4f94: 10 10 00 00 sbi $r1,[$r0+#0x0] ; save lastresult to $gp-12 | |
| 4f98: 3e 0f ff f4 addi.gp $r0,#-12 | |
| 4f9c: 00 00 00 00 lbi $r0,[$r0+#0x0] ; $r0 = $r1 | |
| 4fa0: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4fa4: 44 00 00 01 movi $r0,#0x1 | |
| 4fa8: 4c 10 40 22 bne $r1,$r0,0x4fec ; if lastresult == 0: | |
| 4fac: 3e 0f ff ee addi.gp $r0,#-18 | |
| 4fb0: 00 00 00 00 lbi $r0,[$r0+#0x0] ; | |
| 4fb4: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4fb8: 58 00 00 40 ori $r0,$r0,#0x40 ; | |
| 4fbc: 54 10 00 ff andi $r1,$r0,#0xff | |
| 4fc0: 3e 0f ff ee addi.gp $r0,#-18 | |
| 4fc4: 80 21 mov55 $r1,$r1 | |
| 4fc6: 10 10 00 00 sbi $r1,[$r0+#0x0] ; set bit 6 in [$gp-18] | |
| 4fca: 44 00 00 01 movi $r0,#0x1 | |
| 4fce: 49 ff fc 9f jal 0x490c ; usb_tx_init(endpoint=1) | |
| 4fd2: 44 00 00 02 movi $r0,#0x2 | |
| 4fd6: 49 ff fc 9b jal 0x490c ; usb_tx_init(endpoint=2) | |
| 4fda: 44 00 00 03 movi $r0,#0x3 | |
| 4fde: 49 ff fc 97 jal 0x490c ; usb_tx_init(endpoint=3) | |
| 4fe2: 44 00 00 04 movi $r0,#0x4 | |
| 4fe6: 49 ff fc c5 jal 0x4970 ; usb_rx_init(endpoint=4) | |
| 4fea: d5 2b j8 0x5040 ; | |
| 4fec: 3e 0f ff ee addi.gp $r0,#-18 ; else: | |
| 4ff0: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 4ff4: 54 00 00 ff andi $r0,$r0,#0xff | |
| 4ff8: 54 00 00 bf andi $r0,$r0,#0xbf | |
| 4ffc: 3e 1f ff ee addi.gp $r1,#-18 | |
| 5000: 80 00 mov55 $r0,$r0 | |
| 5002: 10 00 80 00 sbi $r0,[$r1+#0x0] ; clear bit 6 in [$gp-18] | |
| 5006: 3e 0f ff f2 addi.gp $r0,#-14 | |
| 500a: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 500e: 54 00 00 ff andi $r0,$r0,#0xff | |
| 5012: 54 00 00 df andi $r0,$r0,#0xdf | |
| 5016: 3e 1f ff f2 addi.gp $r1,#-14 | |
| 501a: 80 00 mov55 $r0,$r0 | |
| 501c: 10 00 80 00 sbi $r0,[$r1+#0x0] ; clear bit 5 in [$gp-14] | |
| 5020: 44 00 00 01 movi $r0,#0x1 | |
| 5024: 49 ff fc d8 jal 0x49d4 ; usb_disable_endpoint(endpoint=$r0) | |
| 5028: 44 00 00 02 movi $r0,#0x2 | |
| 502c: 49 ff fc d4 jal 0x49d4 ; usb_disable_endpoint(endpoint=$r0) | |
| 5030: 44 00 00 03 movi $r0,#0x3 | |
| 5034: 49 ff fc d0 jal 0x49d4 ; usb_disable_endpoint(endpoint=$r0) | |
| 5038: 44 00 00 04 movi $r0,#0x4 | |
| 503c: 49 ff fc cc jal 0x49d4 ; usb_disable_endpoint(endpoint=$r0) | |
| ; endif | |
| 5040: 49 ff fa 30 jal 0x44a0 ; usb_tx_endpoint0() | |
| 5044: 51 fe 7f fc addi $sp,$fp,#-4 ; label out: | |
| 5048: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 504c: 4a 00 78 20 ret $lp | |
| 5050: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5054: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 5058: 44 00 00 00 movi $r0,#0x0 | |
| 505c: 49 ff f9 56 jal 0x4308 ; usb_stall(endpoint=$r0) | |
| 5060: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 5064: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5068: 4a 00 78 20 ret $lp | |
| 506c: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5070: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 5074: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 5078: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 507c: 54 10 00 ff andi $r1,$r0,#0xff | |
| 5080: 44 00 00 a1 movi $r0,#0xa1 | |
| 5084: 4c 10 40 38 bne $r1,$r0,0x50f4 | |
| 5088: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 508c: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 5090: 54 00 00 ff andi $r0,$r0,#0xff | |
| 5094: c0 15 beqz38 $r0,0x50be | |
| 5096: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 509a: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 509e: 54 10 00 ff andi $r1,$r0,#0xff | |
| 50a2: 44 00 00 01 movi $r0,#0x1 | |
| 50a6: 4c 10 00 0c beq $r1,$r0,0x50be | |
| 50aa: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 50ae: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 50b2: 54 10 00 ff andi $r1,$r0,#0xff | |
| 50b6: 44 00 00 02 movi $r0,#0x2 | |
| 50ba: 4c 10 40 1d bne $r1,$r0,0x50f4 | |
| 50be: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 50c2: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 50c6: 54 00 00 ff andi $r0,$r0,#0xff | |
| 50ca: 80 20 mov55 $r1,$r0 | |
| 50cc: 3e 08 05 dc addi.gp $r0,#0x5dc | |
| 50d0: 38 00 06 02 lw $r0,[$r0+($r1<<#0x2)] | |
| 50d4: 54 10 00 ff andi $r1,$r0,#0xff | |
| 50d8: 3e 08 08 b0 addi.gp $r0,#0x8b0 | |
| 50dc: 80 21 mov55 $r1,$r1 | |
| 50de: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 50e2: 3e 0f ff f0 addi.gp $r0,#-16 | |
| 50e6: 44 10 00 01 movi $r1,#0x1 | |
| 50ea: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 50ee: 49 ff f9 d9 jal 0x44a0 ; usb_tx_endpoint0() | |
| 50f2: d5 05 j8 0x50fc | |
| 50f4: 44 00 00 00 movi $r0,#0x0 | |
| 50f8: 49 ff f9 08 jal 0x4308 ; usb_stall(endpoint=$r0) | |
| 50fc: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 5100: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5104: 4a 00 78 20 ret $lp | |
| 5108: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 510c: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 5110: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 5114: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 5118: 54 10 00 ff andi $r1,$r0,#0xff | |
| 511c: 44 00 00 a1 movi $r0,#0xa1 | |
| 5120: 4c 10 40 1e bne $r1,$r0,0x515c | |
| 5124: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 5128: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 512c: 54 00 00 ff andi $r0,$r0,#0xff | |
| 5130: 4e 03 00 16 bnez $r0,0x515c | |
| 5134: 3e 0f ff ec addi.gp $r0,#-20 | |
| 5138: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 513c: 54 10 00 ff andi $r1,$r0,#0xff | |
| 5140: 3e 08 08 b0 addi.gp $r0,#0x8b0 | |
| 5144: 80 21 mov55 $r1,$r1 | |
| 5146: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 514a: 3e 0f ff f0 addi.gp $r0,#-16 | |
| 514e: 44 10 00 01 movi $r1,#0x1 | |
| 5152: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 5156: 49 ff f9 a5 jal 0x44a0 ; usb_tx_endpoint0() | |
| 515a: d5 05 j8 0x5164 | |
| 515c: 44 00 00 00 movi $r0,#0x0 | |
| 5160: 49 ff f8 d4 jal 0x4308 ; usb_stall(endpoint=$r0) | |
| 5164: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 5168: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 516c: 4a 00 78 20 ret $lp | |
| 5170: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5174: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 5178: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 517c: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 5180: 54 10 00 ff andi $r1,$r0,#0xff | |
| 5184: 44 00 00 21 movi $r0,#0x21 | |
| 5188: 4c 10 40 24 bne $r1,$r0,0x51d0 | |
| 518c: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 5190: 00 00 00 03 lbi $r0,[$r0+#0x3] | |
| 5194: 54 10 00 ff andi $r1,$r0,#0xff | |
| 5198: 44 00 00 02 movi $r0,#0x2 | |
| 519c: 4c 10 40 1a bne $r1,$r0,0x51d0 | |
| 51a0: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 51a4: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 51a8: 54 00 00 ff andi $r0,$r0,#0xff | |
| 51ac: 4e 03 00 12 bnez $r0,0x51d0 | |
| 51b0: 3e 0f ff ed addi.gp $r0,#-19 | |
| 51b4: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 51b8: 54 00 00 ff andi $r0,$r0,#0xff | |
| 51bc: 58 00 00 20 ori $r0,$r0,#0x20 | |
| 51c0: 54 10 00 ff andi $r1,$r0,#0xff | |
| 51c4: 3e 0f ff ed addi.gp $r0,#-19 | |
| 51c8: 80 21 mov55 $r1,$r1 | |
| 51ca: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 51ce: d5 05 j8 0x51d8 | |
| 51d0: 44 00 00 00 movi $r0,#0x0 | |
| 51d4: 49 ff f8 9a jal 0x4308 ; usb_stall(endpoint=$r0) | |
| 51d8: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 51dc: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 51e0: 4a 00 78 20 ret $lp | |
| 51e4: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 51e8: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 51ec: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 51f0: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 51f4: 54 10 00 ff andi $r1,$r0,#0xff | |
| 51f8: 44 00 00 21 movi $r0,#0x21 | |
| 51fc: 4c 10 40 32 bne $r1,$r0,0x5260 | |
| 5200: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 5204: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 5208: 54 00 00 ff andi $r0,$r0,#0xff | |
| 520c: c0 15 beqz38 $r0,0x5236 | |
| 520e: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 5212: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 5216: 54 10 00 ff andi $r1,$r0,#0xff | |
| 521a: 44 00 00 01 movi $r0,#0x1 | |
| 521e: 4c 10 00 0c beq $r1,$r0,0x5236 | |
| 5222: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 5226: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 522a: 54 10 00 ff andi $r1,$r0,#0xff | |
| 522e: 44 00 00 02 movi $r0,#0x2 | |
| 5232: 4c 10 40 17 bne $r1,$r0,0x5260 | |
| 5236: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 523a: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 523e: 54 00 00 ff andi $r0,$r0,#0xff | |
| 5242: 80 20 mov55 $r1,$r0 | |
| 5244: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 5248: 00 00 00 03 lbi $r0,[$r0+#0x3] | |
| 524c: 54 00 00 ff andi $r0,$r0,#0xff | |
| 5250: 80 40 mov55 $r2,$r0 | |
| 5252: 3e 08 05 dc addi.gp $r0,#0x5dc | |
| 5256: 38 20 06 0a sw $r2,[$r0+($r1<<#0x2)] | |
| 525a: 49 ff f9 23 jal 0x44a0 ; usb_tx_endpoint0() | |
| 525e: d5 05 j8 0x5268 | |
| 5260: 44 00 00 00 movi $r0,#0x0 | |
| 5264: 49 ff f8 52 jal 0x4308 ; usb_stall(endpoint=0) | |
| 5268: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 526c: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5270: 4a 00 78 20 ret $lp | |
| 5274: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5278: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 527c: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 5280: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 5284: 54 10 00 ff andi $r1,$r0,#0xff | |
| 5288: 44 00 00 21 movi $r0,#0x21 | |
| 528c: 4c 10 40 18 bne $r1,$r0,0x52bc | |
| 5290: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 5294: 00 00 00 04 lbi $r0,[$r0+#0x4] | |
| 5298: 54 00 00 ff andi $r0,$r0,#0xff | |
| 529c: 4e 03 00 10 bnez $r0,0x52bc | |
| 52a0: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 52a4: 00 00 00 02 lbi $r0,[$r0+#0x2] | |
| 52a8: 54 10 00 ff andi $r1,$r0,#0xff | |
| 52ac: 3e 0f ff ec addi.gp $r0,#-20 | |
| 52b0: 80 21 mov55 $r1,$r1 | |
| 52b2: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 52b6: 49 ff f8 f5 jal 0x44a0 ; usb_tx_endpoint0() | |
| 52ba: d5 05 j8 0x52c4 | |
| 52bc: 44 00 00 00 movi $r0,#0x0 | |
| 52c0: 49 ff f8 24 jal 0x4308 ; usb_stall(endpoint=0) | |
| 52c4: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 52c8: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 52cc: 4a 00 78 20 ret $lp | |
| 52d0: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 52d4: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 52d8: 51 ff ff f8 addi $sp,$sp,#-8 | |
| 52dc: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 52e0: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 52e4: 54 00 00 ff andi $r0,$r0,#0xff | |
| 52e8: 54 00 00 60 andi $r0,$r0,#0x60 | |
| 52ec: 80 00 mov55 $r0,$r0 | |
| 52ee: 10 0e 7f fb sbi $r0,[$fp+#-5] | |
| 52f2: 3e 0f ff ee addi.gp $r0,#-18 | |
| 52f6: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 52fa: 54 00 00 ff andi $r0,$r0,#0xff | |
| 52fe: 54 00 00 c2 andi $r0,$r0,#0xc2 | |
| 5302: 3e 1f ff ee addi.gp $r1,#-18 | |
| 5306: 80 00 mov55 $r0,$r0 | |
| 5308: 10 00 80 00 sbi $r0,[$r1+#0x0] | |
| 530c: 00 0e 7f fb lbi $r0,[$fp+#-5] | |
| 5310: 54 00 00 ff andi $r0,$r0,#0xff | |
| 5314: 4e 03 00 11 bnez $r0,0x5336 | |
| 5318: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 531c: 00 00 00 01 lbi $r0,[$r0+#0x1] | |
| 5320: 54 00 00 ff andi $r0,$r0,#0xff | |
| 5324: 54 10 00 0f andi $r1,$r0,#0xf | |
| 5328: 3e 0f fe a8 addi.gp $r0,#-344 | |
| 532c: 38 00 06 02 lw $r0,[$r0+($r1<<#0x2)] | |
| 5330: 4b e0 00 01 jral $lp,$r0 | |
| 5334: d5 1c j8 0x536c | |
| 5336: 00 0e 7f fb lbi $r0,[$fp+#-5] | |
| 533a: 54 10 00 ff andi $r1,$r0,#0xff | |
| 533e: 44 00 00 20 movi $r0,#0x20 | |
| 5342: 4c 10 40 11 bne $r1,$r0,0x5364 | |
| 5346: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 534a: 00 00 00 01 lbi $r0,[$r0+#0x1] | |
| 534e: 54 00 00 ff andi $r0,$r0,#0xff | |
| 5352: 54 10 00 0f andi $r1,$r0,#0xf | |
| 5356: 3e 0f fe e8 addi.gp $r0,#-280 | |
| 535a: 38 00 06 02 lw $r0,[$r0+($r1<<#0x2)] | |
| 535e: 4b e0 00 01 jral $lp,$r0 | |
| 5362: d5 05 j8 0x536c | |
| 5364: 44 00 00 00 movi $r0,#0x0 | |
| 5368: 49 ff f7 d0 jal 0x4308 ; usb_stall(endpoint=$r0) | |
| 536c: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 5370: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5374: 4a 00 78 20 ret $lp | |
| ; ---------- 0x5378: usb_rx_ep0() (see also 0x57bc, usb_rx_bytes) | |
| 5378: 3b ff fe 3c smw.adm $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 537c: 51 cf 80 00 addi $fp,$sp,#0x0 | |
| 5380: 51 ff ff f4 addi $sp,$sp,#-12 | |
| 5384: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5388: 58 00 08 14 ori $r0,$r0,#0x814 ; USB offset 0x14: EPINDEX, Endpoint Index Register | |
| 538c: 44 10 00 00 movi $r1,#0x0 ; | |
| 5390: 14 10 00 00 swi $r1,[$r0+#0x0] ; send 0 to EPINDEX: select endpoint 0 | |
| 5394: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5398: 58 00 08 70 ori $r0,$r0,#0x870 ; USB offset 0x70: RXSTAT, Endpoint Receive Status Register | |
| 539c: 04 00 00 00 lwi $r0,[$r0+#0x0] ; $r0 = RXSTAT | |
| 53a0: 80 00 mov55 $r0,$r0 ; | |
| 53a2: 10 0e 7f f9 sbi $r0,[$fp+#-7] ; save RXSTAT at [$fp-7] | |
| 53a6: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 53aa: 58 00 08 6c ori $r0,$r0,#0x86c ; USB offset 0x6c: RXCNT, Receive FIFO Byte Count Register | |
| 53ae: 04 00 00 00 lwi $r0,[$r0+#0x0] ; $r0 = RXCNT | |
| 53b2: 80 00 mov55 $r0,$r0 ; | |
| 53b4: 10 0e 7f fa sbi $r0,[$fp+#-6] ; [$fp-6] = RXCNT | |
| 53b8: 00 0e 7f f9 lbi $r0,[$fp+#-7] ; $r0 = RXSTAT | |
| 53bc: 54 00 00 ff andi $r0,$r0,#0xff ; | |
| 53c0: 54 00 00 01 andi $r0,$r0,#0x1 ; | |
| 53c4: 54 00 00 ff andi $r0,$r0,#0xff ; | |
| 53c8: 4e 02 00 9a beqz $r0,0x54fc ; if RXSTAT bit 0 (RXACK) is unset: go to NO_RXACK | |
| 53cc: 00 0e 7f f9 lbi $r0,[$fp+#-7] | |
| 53d0: 54 00 00 ff andi $r0,$r0,#0xff | |
| 53d4: 54 00 00 40 andi $r0,$r0,#0x40 | |
| 53d8: c0 4b beqz38 $r0,0x546e | |
| 53da: 00 0e 7f f9 lbi $r0,[$fp+#-7] | |
| 53de: 54 00 00 ff andi $r0,$r0,#0xff | |
| 53e2: 54 00 00 10 andi $r0,$r0,#0x10 | |
| 53e6: c0 3b beqz38 $r0,0x545c | |
| 53e8: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 53ec: 58 00 08 70 ori $r0,$r0,#0x870 ; USB offset 0x70: RXSTAT, Endpoint Receive Status Register | |
| 53f0: 46 10 02 07 sethi $r1,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 53f4: 58 10 88 70 ori $r1,$r1,#0x870 ; USB offset 0x70: RXSTAT, Endpoint Receive Status Register | |
| 53f8: 04 10 80 00 lwi $r1,[$r1+#0x0] | |
| 53fc: 44 2f ff ef movi $r2,#-17 | |
| 5400: 40 10 88 02 and $r1,$r1,$r2 | |
| 5404: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5408: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 540c: 58 00 08 18 ori $r0,$r0,#0x818 ; USB offset 0x18: EPCON, Endpoint Data-flow Control Register | |
| 5410: 46 10 02 07 sethi $r1,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5414: 58 10 88 18 ori $r1,$r1,#0x818 ; USB offset 0x18: EPCON, Endpoint Data-flow Control Register | |
| 5418: 04 10 80 00 lwi $r1,[$r1+#0x0] | |
| 541c: 44 2f ff 3f movi $r2,#-193 | |
| 5420: 40 10 88 02 and $r1,$r1,$r2 | |
| 5424: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5428: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 542c: 58 00 08 24 ori $r0,$r0,#0x824 ; USB offset 0x24: TXCON, Transmit USB FIFO Control Register | |
| 5430: 44 10 00 80 movi $r1,#0x80 | |
| 5434: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5438: 3e 0f ff ed addi.gp $r0,#-19 | |
| 543c: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 5440: 54 00 00 ff andi $r0,$r0,#0xff | |
| 5444: 44 1f ff 80 movi $r1,#-128 | |
| 5448: 40 00 04 04 or $r0,$r0,$r1 | |
| 544c: 54 10 00 ff andi $r1,$r0,#0xff | |
| 5450: 3e 0f ff ed addi.gp $r0,#-19 | |
| 5454: 80 21 mov55 $r1,$r1 | |
| 5456: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 545a: d5 0a j8 0x546e | |
| 545c: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5460: 58 00 08 64 ori $r0,$r0,#0x864 ; USB offset 0x64: RXCON, Receive FIFO Control Register | |
| 5464: 44 10 00 10 movi $r1,#0x10 | |
| 5468: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 546c: d5 70 j8 0x554c | |
| 546e: 00 0e 7f fa lbi $r0,[$fp+#-6] | |
| 5472: 54 00 00 ff andi $r0,$r0,#0xff | |
| 5476: c8 0a bnez38 $r0,0x548a | |
| 5478: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 547c: 58 00 08 64 ori $r0,$r0,#0x864 ; USB offset 0x64: RXCON, Receive FIFO Control Register | |
| 5480: 44 10 00 10 movi $r1,#0x10 | |
| 5484: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5488: d5 62 j8 0x554c | |
| 548a: 44 00 00 00 movi $r0,#0x0 | |
| 548e: 10 0e 7f fb sbi $r0,[$fp+#-5] | |
| 5492: d5 19 j8 0x54c4 | |
| 5494: 00 0e 7f fb lbi $r0,[$fp+#-5] | |
| 5498: 54 10 00 ff andi $r1,$r0,#0xff | |
| 549c: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 54a0: 58 00 08 60 ori $r0,$r0,#0x860 ; USB offset 0x60: RXDAT, Receive FIFO Data Register | |
| 54a4: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 54a8: 54 20 00 ff andi $r2,$r0,#0xff | |
| 54ac: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 54b0: 80 42 mov55 $r2,$r2 | |
| 54b2: 38 20 04 08 sb $r2,[$r0+($r1<<#0x0)] | |
| 54b6: 00 0e 7f fb lbi $r0,[$fp+#-5] | |
| 54ba: 50 00 00 01 addi $r0,$r0,#0x1 | |
| 54be: 80 00 mov55 $r0,$r0 | |
| 54c0: 10 0e 7f fb sbi $r0,[$fp+#-5] | |
| 54c4: 00 0e 7f fb lbi $r0,[$fp+#-5] | |
| 54c8: 54 10 00 ff andi $r1,$r0,#0xff | |
| 54cc: 00 0e 7f fa lbi $r0,[$fp+#-6] | |
| 54d0: 54 00 00 ff andi $r0,$r0,#0xff | |
| 54d4: 40 f0 80 06 slt $r15,$r1,$r0 | |
| 54d8: e9 de bnezs8 0x5494 | |
| 54da: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 54de: 58 00 08 70 ori $r0,$r0,#0x870 ; USB offset 0x70: RXSTAT, Endpoint Receive Status Register | |
| 54e2: 44 1f ff bf movi $r1,#-65 | |
| 54e6: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 54ea: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 54ee: 58 00 08 64 ori $r0,$r0,#0x864 ; USB offset 0x64: RXCON, Receive FIFO Control Register | |
| 54f2: 44 10 00 90 movi $r1,#0x90 ; +RXFFRC,+RXCLR: clear USB RX FIFO, set Read Complete, clear RXFLG | |
| 54f6: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 54fa: d5 29 j8 0x554c ; goto OUT | |
| ; label NO_RXACK | |
| 54fc: 00 0e 7f f9 lbi $r0,[$fp+#-7] ; | |
| 5500: 54 00 00 ff andi $r0,$r0,#0xff ; | |
| 5504: 54 00 00 40 andi $r0,$r0,#0x40 ; | |
| 5508: c0 1a beqz38 $r0,0x553c ; | |
| 550a: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 550e: 58 00 08 70 ori $r0,$r0,#0x870 ; USB offset 0x70: RXSTAT, Endpoint Receive Status Register | |
| 5512: 46 10 02 07 sethi $r1,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5516: 58 10 88 70 ori $r1,$r1,#0x870 ; USB offset 0x70: RXSTAT, Endpoint Receive Status Register | |
| 551a: 04 10 80 00 lwi $r1,[$r1+#0x0] | |
| 551e: 44 2f ff bf movi $r2,#-65 | |
| 5522: 40 10 88 02 and $r1,$r1,$r2 | |
| 5526: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 552a: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 552e: 58 00 08 18 ori $r0,$r0,#0x818 ; USB offset 0x18: EPCON, Endpoint Data-flow Control Register | |
| 5532: 44 10 00 ef movi $r1,#0xef | |
| 5536: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 553a: d5 09 j8 0x554c | |
| 553c: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5540: 58 00 08 64 ori $r0,$r0,#0x864 ; USB offset 0x64: RXCON, Receive FIFO Control Register | |
| 5544: 44 10 00 10 movi $r1,#0x10 | |
| 5548: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 554c: 51 fe 00 00 addi $sp,$fp,#0x0 | |
| 5550: 3b ff fe 04 lmw.bim $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 5554: 4a 00 78 20 ret $lp | |
| ; ---------- 0x5558: usb_handler_ep0_rx() | |
| 5558: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 555c: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 5560: 49 ff ff 0c jal 0x5378 ; usb_rx_ep0() (this is the only caller) | |
| 5564: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5568: 58 00 08 18 ori $r0,$r0,#0x818 ; USB offset 0x18: EPCON, Endpoint Data-flow Control Register | |
| 556c: 44 10 00 2f movi $r1,#0x2f | |
| 5570: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5574: 3e 0f ff f0 addi.gp $r0,#-16 | |
| 5578: 44 10 00 00 movi $r1,#0x0 | |
| 557c: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 5580: 3e 0f ff ed addi.gp $r0,#-19 | |
| 5584: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 5588: 54 00 00 ff andi $r0,$r0,#0xff | |
| 558c: 40 00 00 10 seb $r0,$r0 | |
| 5590: 4e 04 00 12 bgez $r0,0x55b4 | |
| 5594: 3e 0f ff ed addi.gp $r0,#-19 | |
| 5598: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 559c: 54 00 00 ff andi $r0,$r0,#0xff | |
| 55a0: 54 00 00 7f andi $r0,$r0,#0x7f | |
| 55a4: 3e 1f ff ed addi.gp $r1,#-19 | |
| 55a8: 80 00 mov55 $r0,$r0 | |
| 55aa: 10 00 80 00 sbi $r0,[$r1+#0x0] | |
| 55ae: 49 ff fe 91 jal 0x52d0 | |
| 55b2: d5 2d j8 0x560c | |
| 55b4: 3e 0f ff ed addi.gp $r0,#-19 | |
| 55b8: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 55bc: 54 00 00 ff andi $r0,$r0,#0xff | |
| 55c0: 54 00 00 20 andi $r0,$r0,#0x20 | |
| 55c4: 4e 02 00 24 beqz $r0,0x560c | |
| 55c8: 3e 0f ff ed addi.gp $r0,#-19 | |
| 55cc: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 55d0: 54 00 00 ff andi $r0,$r0,#0xff | |
| 55d4: 54 00 00 df andi $r0,$r0,#0xdf | |
| 55d8: 3e 1f ff ed addi.gp $r1,#-19 | |
| 55dc: 80 00 mov55 $r0,$r0 | |
| 55de: 10 00 80 00 sbi $r0,[$r1+#0x0] | |
| 55e2: 3e 08 08 70 addi.gp $r0,#0x870 | |
| 55e6: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 55ea: 54 00 00 ff andi $r0,$r0,#0xff | |
| 55ee: 54 00 00 07 andi $r0,$r0,#0x7 | |
| 55f2: 3e 1f ff fb addi.gp $r1,#-5 | |
| 55f6: 80 00 mov55 $r0,$r0 | |
| 55f8: 10 00 80 00 sbi $r0,[$r1+#0x0] | |
| 55fc: 3e 0f ff f0 addi.gp $r0,#-16 | |
| 5600: 44 10 00 00 movi $r1,#0x0 | |
| 5604: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 5608: 49 ff f7 4c jal 0x44a0 ; usb_tx_endpoint0() | |
| 560c: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 5610: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5614: 4a 00 78 20 ret $lp | |
| 5618: 3b ff fe 3c smw.adm $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 561c: 51 cf 80 00 addi $fp,$sp,#0x0 | |
| 5620: 51 ff ff f4 addi $sp,$sp,#-12 | |
| 5624: 80 00 mov55 $r0,$r0 | |
| 5626: 10 0e 7f f8 sbi $r0,[$fp+#-8] | |
| 562a: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 562e: 58 00 08 14 ori $r0,$r0,#0x814 ; USB offset 0x14: EPINDEX, Endpoint Index Register | |
| 5632: 00 1e 7f f8 lbi $r1,[$fp+#-8] | |
| 5636: 54 10 80 ff andi $r1,$r1,#0xff | |
| 563a: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 563e: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5642: 58 00 08 30 ori $r0,$r0,#0x830 ; USB offset 0x30: TXSTAT, Endpoint Transmit Status Register | |
| 5646: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 564a: 54 00 00 01 andi $r0,$r0,#0x1 | |
| 564e: 54 00 00 ff andi $r0,$r0,#0xff | |
| 5652: 4e 02 00 05 beqz $r0,0x565c | |
| 5656: 44 00 00 02 movi $r0,#0x2 | |
| 565a: d5 03 j8 0x5660 | |
| 565c: 44 00 00 00 movi $r0,#0x0 | |
| 5660: 51 fe 00 00 addi $sp,$fp,#0x0 | |
| 5664: 3b ff fe 04 lmw.bim $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 5668: 4a 00 78 20 ret $lp | |
| ; ----------- 0x566c - usb_handler_ep0_tx(): | |
| 566c: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5670: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 5674: 44 00 00 00 movi $r0,#0x0 | |
| 5678: 49 ff ff d0 jal 0x5618 | |
| 567c: 4e 02 00 32 beqz $r0,0x56e0 | |
| 5680: 3e 0f ff ee addi.gp $r0,#-18 | |
| 5684: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 5688: 54 00 00 ff andi $r0,$r0,#0xff | |
| 568c: 40 00 00 10 seb $r0,$r0 | |
| 5690: 4e 04 00 26 bgez $r0,0x56dc | |
| 5694: 3e 0f ff ee addi.gp $r0,#-18 | |
| 5698: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 569c: 54 00 00 ff andi $r0,$r0,#0xff | |
| 56a0: 54 00 00 7f andi $r0,$r0,#0x7f | |
| 56a4: 3e 1f ff ee addi.gp $r1,#-18 | |
| 56a8: 80 00 mov55 $r0,$r0 | |
| 56aa: 10 00 80 00 sbi $r0,[$r1+#0x0] | |
| 56ae: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 56b2: 58 00 08 00 ori $r0,$r0,#0x800 ; USB offset 0x00: FADDR, Function Address Register | |
| 56b6: 3e 1f ff f1 addi.gp $r1,#-15 | |
| 56ba: 00 10 80 00 lbi $r1,[$r1+#0x0] | |
| 56be: 54 10 80 ff andi $r1,$r1,#0xff | |
| 56c2: 54 10 80 7f andi $r1,$r1,#0x7f | |
| 56c6: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 56ca: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 56ce: 58 00 08 18 ori $r0,$r0,#0x818 ; USB offset 0x18: EPCON, Endpoint Data-flow Control Register | |
| 56d2: 44 10 00 ef movi $r1,#0xef | |
| 56d6: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 56da: d5 03 j8 0x56e0 | |
| 56dc: 49 ff f8 86 jal 0x47e8 | |
| 56e0: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 56e4: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 56e8: 4a 00 78 20 ret $lp | |
| 56ec: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 56f0: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 56f4: 49 00 00 d0 jal 0x5894 | |
| 56f8: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 56fc: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5700: 4a 00 78 20 ret $lp | |
| ; ----------- 0x5704: usb_transmit_bytes(endpoint=$r0, src=$r1, size=$r2) | |
| 5704: 3b ff fe 3c smw.adm $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 5708: 51 cf 80 00 addi $fp,$sp,#0x0 | |
| 570c: 51 ff ff e4 addi $sp,$sp,#-28 | |
| 5710: 80 60 mov55 $r3,$r0 ; $r3 = endpoint | |
| 5712: 14 1e 7f fb swi $r1,[$fp+#-20] ; [$fp-20] = src | |
| 5716: 80 02 mov55 $r0,$r2 ; $r0 = size | |
| 5718: 80 23 mov55 $r1,$r3 ; $r1 = endpoint | |
| 571a: 10 1e 7f f0 sbi $r1,[$fp+#-16] ; [$fp-16] = endpoint | |
| 571e: 80 00 mov55 $r0,$r0 | |
| 5720: 10 0e 7f e8 sbi $r0,[$fp+#-24] ; [$fp-24] = size | |
| 5724: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5728: 58 00 08 14 ori $r0,$r0,#0x814 ; USB offset 0x14: EPINDEX, Endpoint Index Register | |
| 572c: 00 1e 7f f0 lbi $r1,[$fp+#-16] ; | |
| 5730: 54 10 80 ff andi $r1,$r1,#0xff ; | |
| 5734: 14 10 00 00 swi $r1,[$r0+#0x0] ; set EPINDEX to endpoint | |
| 5738: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 573c: 58 00 08 24 ori $r0,$r0,#0x824 ; USB offset 0x24: TXCON, Transmit USB FIFO Control Register | |
| 5740: 44 10 00 80 movi $r1,#0x80 ; | |
| 5744: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5748: 44 00 00 00 movi $r0,#0x0 | |
| 574c: 10 0e 7f fb sbi $r0,[$fp+#-5] | |
| 5750: d5 1a j8 0x5784 | |
| 5752: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5756: 58 00 08 20 ori $r0,$r0,#0x820 ; USB offset 0x20: TXDAT, Transmit USB FIFO Data Register | |
| 575a: 00 1e 7f fb lbi $r1,[$fp+#-5] | |
| 575e: 54 10 80 ff andi $r1,$r1,#0xff | |
| 5762: 04 2e 7f fb lwi $r2,[$fp+#-20] | |
| 5766: 40 11 04 00 add $r1,$r2,$r1 | |
| 576a: 00 10 80 00 lbi $r1,[$r1+#0x0] | |
| 576e: 54 10 80 ff andi $r1,$r1,#0xff | |
| 5772: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5776: 00 0e 7f fb lbi $r0,[$fp+#-5] | |
| 577a: 50 00 00 01 addi $r0,$r0,#0x1 | |
| 577e: 80 00 mov55 $r0,$r0 | |
| 5780: 10 0e 7f fb sbi $r0,[$fp+#-5] | |
| 5784: 00 0e 7f fb lbi $r0,[$fp+#-5] | |
| 5788: 54 10 00 ff andi $r1,$r0,#0xff | |
| 578c: 00 0e 7f e8 lbi $r0,[$fp+#-24] | |
| 5790: 54 00 00 ff andi $r0,$r0,#0xff | |
| 5794: 40 f0 80 06 slt $r15,$r1,$r0 | |
| 5798: 4e f3 ff dd bnez $r15,0x5752 | |
| 579c: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 57a0: 58 00 08 2c ori $r0,$r0,#0x82c ; USB offset 0x2c: TXCNT, Transmit USB FIFO Byte Count Register | |
| 57a4: 00 1e 7f e8 lbi $r1,[$fp+#-24] | |
| 57a8: 54 10 80 ff andi $r1,$r1,#0xff | |
| 57ac: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 57b0: 51 fe 00 00 addi $sp,$fp,#0x0 | |
| 57b4: 3b ff fe 04 lmw.bim $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 57b8: 4a 00 78 20 ret $lp | |
| ; ----------- 0x57bc: usb_rx_bytes(u8 endpoint=$r0, void *addr=$r1, u8 size=$r2) (see also 0x5378) | |
| ; ----------- Reads size bytes from endpoint into the buffer at addr | |
| 57bc: 3b ff fe 3c smw.adm $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 57c0: 51 cf 80 00 addi $fp,$sp,#0x0 | |
| 57c4: 51 ff ff e4 addi $sp,$sp,#-28 | |
| 57c8: 80 60 mov55 $r3,$r0 ; save endpoint to $r3 | |
| 57ca: 14 1e 7f fb swi $r1,[$fp+#-20] ; save addr at [$fp-20] | |
| 57ce: 80 02 mov55 $r0,$r2 ; $r0 = size | |
| 57d0: 80 23 mov55 $r1,$r3 ; $r1 = $r3 (endpoint) | |
| 57d2: 10 1e 7f f0 sbi $r1,[$fp+#-16] ; save endpoint at [$fp-16] | |
| 57d6: 80 00 mov55 $r0,$r0 | |
| 57d8: 10 0e 7f e8 sbi $r0,[$fp+#-24] ; save size at [$fp-24] | |
| 57dc: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 57e0: 58 00 08 14 ori $r0,$r0,#0x814 ; USB offset 0x14: EPINDEX, Endpoint Index Register | |
| 57e4: 00 1e 7f f0 lbi $r1,[$fp+#-16] ; $r1 = endpoint | |
| 57e8: 54 10 80 ff andi $r1,$r1,#0xff | |
| 57ec: 14 10 00 00 swi $r1,[$r0+#0x0] ; write endpoint to EPINDEX | |
| 57f0: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 57f4: 58 00 08 6c ori $r0,$r0,#0x86c ; USB offset 0x6c: RXCNT, Receive FIFO Byte Count Register | |
| 57f8: 04 00 00 00 lwi $r0,[$r0+#0x0] ; $r0 = u8 RXCNT | |
| 57fc: 80 00 mov55 $r0,$r0 ; | |
| 57fe: 10 0e 7f fa sbi $r0,[$fp+#-6] ; save RXCNT to [$fp-6] | |
| 5802: 00 0e 7f fa lbi $r0,[$fp+#-6] ; $r0 = RXCNT | |
| 5806: 54 00 00 ff andi $r0,$r0,#0xff ; | |
| 580a: c0 37 beqz38 $r0,0x5878 ; if RXCNT == 0: goto OUT | |
| 580c: 44 00 00 00 movi $r0,#0x0 ; | |
| 5810: 10 0e 7f fb sbi $r0,[$fp+#-5] ; [$fp-5] (count) = 0 | |
| 5814: d5 1b j8 0x584a ; goto LOOPSTART | |
| 5816: 00 0e 7f fb lbi $r0,[$fp+#-5] ; do { | |
| 581a: 54 00 00 ff andi $r0,$r0,#0xff ; | |
| 581e: 04 1e 7f fb lwi $r1,[$fp+#-20] ; | |
| 5822: 40 10 80 00 add $r1,$r1,$r0 ; $r1 = addr+count | |
| 5826: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 582a: 58 00 08 60 ori $r0,$r0,#0x860 ; USB offset 0x60: RXDAT, Receive FIFO Data Register | |
| 582e: 04 00 00 00 lwi $r0,[$r0+#0x0] ; $r0 = (read 1 byte from RXDAT) | |
| 5832: 54 00 00 ff andi $r0,$r0,#0xff ; | |
| 5836: 80 00 mov55 $r0,$r0 ; | |
| 5838: 10 00 80 00 sbi $r0,[$r1+#0x0] ; save RXDAT byte at addr[count] | |
| 583c: 00 0e 7f fb lbi $r0,[$fp+#-5] ; | |
| 5840: 50 00 00 01 addi $r0,$r0,#0x1 ; | |
| 5844: 80 00 mov55 $r0,$r0 ; | |
| 5846: 10 0e 7f fb sbi $r0,[$fp+#-5] ; count++ | |
| 584a: 00 0e 7f fb lbi $r0,[$fp+#-5] ; LOOPSTART: | |
| 584e: 54 10 00 ff andi $r1,$r0,#0xff ; $r1 = count | |
| 5852: 00 0e 7f fa lbi $r0,[$fp+#-6] ; | |
| 5856: 54 00 00 ff andi $r0,$r0,#0xff ; $r0 = RXCNT | |
| 585a: 40 f0 80 06 slt $r15,$r1,$r0 ; | |
| 585e: e8 0d beqzs8 0x5878 ; if (count >= RXCNT): goto OUT | |
| 5860: 00 0e 7f fb lbi $r0,[$fp+#-5] ; | |
| 5864: 54 10 00 ff andi $r1,$r0,#0xff ; $r1 = count | |
| 5868: 00 0e 7f e8 lbi $r0,[$fp+#-24] ; | |
| 586c: 54 00 00 ff andi $r0,$r0,#0xff ; $r0 = size | |
| 5870: 40 f0 80 06 slt $r15,$r1,$r0 ; | |
| 5874: 4e f3 ff d1 bnez $r15,0x5816 ; } until (count == size) | |
| 5878: 46 00 02 07 sethi $r0,#0x207 ;OUT: | |
| 587c: 58 00 08 64 ori $r0,$r0,#0x864 ; USB offset 0x64: RXCON, Receive FIFO Control Register | |
| 5880: 44 10 00 90 movi $r1,#0x90 ; $r1 = 0b10010000 (bit 4 + 7): RXCLR + RXFFRC | |
| 5884: 14 10 00 00 swi $r1,[$r0+#0x0] ; Read Complete, Clear RX FIFO | |
| 5888: 51 fe 00 00 addi $sp,$fp,#0x0 ; | |
| 588c: 3b ff fe 04 lmw.bim $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 5890: 4a 00 78 20 ret $lp | |
| 5894: 3b ff fe 3c smw.adm $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 5898: 51 cf 80 00 addi $fp,$sp,#0x0 | |
| 589c: 3e 0f ff ee addi.gp $r0,#-18 | |
| 58a0: 44 10 00 00 movi $r1,#0x0 | |
| 58a4: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 58a8: 3e 0f ff f0 addi.gp $r0,#-16 | |
| 58ac: 44 10 00 00 movi $r1,#0x0 | |
| 58b0: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 58b4: 3e 0f ff a0 addi.gp $r0,#-96 | |
| 58b8: 44 10 00 00 movi $r1,#0x0 | |
| 58bc: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 58c0: 3e 0f ff a4 addi.gp $r0,#-92 | |
| 58c4: 44 10 00 00 movi $r1,#0x0 | |
| 58c8: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 58cc: 3e 0f ff f2 addi.gp $r0,#-14 | |
| 58d0: 44 10 00 00 movi $r1,#0x0 | |
| 58d4: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 58d8: 3e 0f ff f3 addi.gp $r0,#-13 | |
| 58dc: 44 10 00 00 movi $r1,#0x0 | |
| 58e0: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 58e4: 3e 0f ff f4 addi.gp $r0,#-12 | |
| 58e8: 44 10 00 00 movi $r1,#0x0 | |
| 58ec: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 58f0: 3e 0f ff ef addi.gp $r0,#-17 | |
| 58f4: 44 10 00 00 movi $r1,#0x0 | |
| 58f8: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 58fc: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5900: 58 00 08 00 ori $r0,$r0,#0x800 ; USB offset 0x00: FADDR, Function Address Register | |
| 5904: 44 10 00 00 movi $r1,#0x0 | |
| 5908: 14 10 00 00 swi $r1,[$r0+#0x0] ; FADDR = 0 - try to clear the host-assigned address? | |
| 590c: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5910: 58 00 08 14 ori $r0,$r0,#0x814 ; USB offset 0x14: EPINDEX, Endpoint Index Register | |
| 5914: 44 10 00 00 movi $r1,#0x0 | |
| 5918: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 591c: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5920: 58 00 08 24 ori $r0,$r0,#0x824 ; USB offset 0x24: TXCON, Transmit USB FIFO Control Register | |
| 5924: 44 10 00 80 movi $r1,#0x80 | |
| 5928: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 592c: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5930: 58 00 08 64 ori $r0,$r0,#0x864 ; USB offset 0x64: RXCON, Receive FIFO Control Register | |
| 5934: 44 10 00 90 movi $r1,#0x90 | |
| 5938: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 593c: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5940: 58 00 08 18 ori $r0,$r0,#0x818 ; USB offset 0x18: EPCON, Endpoint Data-flow Control Register | |
| 5944: 44 10 00 2f movi $r1,#0x2f | |
| 5948: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 594c: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5950: 58 00 08 40 ori $r0,$r0,#0x840 ; USB offset 0x40: USBFI_CLR, USB Function Interrupt Clear Register | |
| 5954: 44 10 00 ff movi $r1,#0xff | |
| 5958: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 595c: 51 fe 00 00 addi $sp,$fp,#0x0 | |
| 5960: 3b ff fe 04 lmw.bim $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 5964: 4a 00 78 20 ret $lp | |
| ; ----------- 0x5968: USB magic | |
| 5968: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 596c: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 5970: 51 ff ff f8 addi $sp,$sp,#-8 | |
| 5974: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5978: 58 00 08 14 ori $r0,$r0,#0x814 ; USB offset 0x14: EPINDEX, Endpoint Index Register | |
| 597c: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 5980: 80 00 mov55 $r0,$r0 | |
| 5982: 10 0e 7f fb sbi $r0,[$fp+#-5] | |
| 5986: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 598a: 58 00 08 44 ori $r0,$r0,#0x844 ; USB offset 0x44: USB Function Interrupt Register 2 | |
| 598e: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 5992: 54 00 00 08 andi $r0,$r0,#0x8 | |
| 5996: c0 36 beqz38 $r0,0x5a02 | |
| 5998: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 599c: 58 00 08 44 ori $r0,$r0,#0x844 ; USB offset 0x44: USB Function Interrupt Register 2 | |
| 59a0: 44 1f ff f7 movi $r1,#-9 | |
| 59a4: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 59a8: 3e 08 00 20 addi.gp $r0,#0x20 | |
| 59ac: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 59b0: 50 10 00 01 addi $r1,$r0,#0x1 | |
| 59b4: 3e 08 00 20 addi.gp $r0,#0x20 | |
| 59b8: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 59bc: 3e 0f ff d8 addi.gp $r0,#-40 ; $r0 = $gp-40 | |
| 59c0: 02 00 00 00 lhi $r0,[$r0+#0x0] | |
| 59c4: 40 00 00 13 zeh $r0,$r0 | |
| 59c8: c0 10 beqz38 $r0,0x59e8 | |
| 59ca: 3e 0f ff d8 addi.gp $r0,#-40 ; $r0 = $gp-40 | |
| 59ce: 02 00 00 00 lhi $r0,[$r0+#0x0] | |
| 59d2: 40 00 00 13 zeh $r0,$r0 | |
| 59d6: 50 00 7f ff addi $r0,$r0,#-1 | |
| 59da: 40 10 00 13 zeh $r1,$r0 | |
| 59de: 3e 0f ff d8 addi.gp $r0,#-40 ; $r0 = $gp-40 | |
| 59e2: 80 21 mov55 $r1,$r1 | |
| 59e4: 12 10 00 00 shi $r1,[$r0+#0x0] | |
| 59e8: 3e 0f ff ee addi.gp $r0,#-18 ; $r0 = $gp-18 | |
| 59ec: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 59f0: 54 00 00 ff andi $r0,$r0,#0xff | |
| 59f4: 54 00 00 40 andi $r0,$r0,#0x40 | |
| 59f8: c0 05 beqz38 $r0,0x5a02 | |
| 59fa: 49 00 02 2d jal 0x5e54 | |
| 59fe: 49 00 01 25 jal 0x5c48 ; usb_tx_queued() | |
| 5a02: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5a06: 58 00 08 44 ori $r0,$r0,#0x844 ; USB offset 0x44: USB Function Interrupt Register 2 | |
| 5a0a: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 5a0e: 54 00 00 80 andi $r0,$r0,#0x80 | |
| 5a12: c0 0b beqz38 $r0,0x5a28 | |
| 5a14: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5a18: 58 00 08 44 ori $r0,$r0,#0x844 ; USB offset 0x44: USB Function Interrupt Register 2 | |
| 5a1c: 44 1f ff 7f movi $r1,#-129 | |
| 5a20: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5a24: 49 ff fe 64 jal 0x56ec | |
| 5a28: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5a2c: 58 00 08 44 ori $r0,$r0,#0x844 ; USB offset 0x44: USB Function Interrupt Register 2 | |
| 5a30: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 5a34: 54 00 00 40 andi $r0,$r0,#0x40 | |
| 5a38: c0 0f beqz38 $r0,0x5a56 | |
| 5a3a: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5a3e: 58 00 08 44 ori $r0,$r0,#0x844 ; USB offset 0x44: USB Function Interrupt Register 2 | |
| 5a42: 44 1f ff bf movi $r1,#-65 | |
| 5a46: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5a4a: 3e 0f ff ef addi.gp $r0,#-17 | |
| 5a4e: 44 10 00 00 movi $r1,#0x0 | |
| 5a52: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 5a56: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5a5a: 58 00 08 44 ori $r0,$r0,#0x844 ; USB offset 0x44: USB Function Interrupt Register 2 | |
| 5a5e: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| 5a62: 54 00 00 20 andi $r0,$r0,#0x20 | |
| 5a66: c0 0f beqz38 $r0,0x5a84 | |
| 5a68: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5a6c: 58 00 08 44 ori $r0,$r0,#0x844 ; USB offset 0x44: USB Function Interrupt Register 2 | |
| 5a70: 44 1f ff df movi $r1,#-33 | |
| 5a74: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5a78: 3e 0f ff ef addi.gp $r0,#-17 | |
| 5a7c: 44 10 00 01 movi $r1,#0x1 | |
| 5a80: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 5a84: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5a88: 58 00 08 14 ori $r0,$r0,#0x814 ; USB offset 0x14: EPINDEX, Endpoint Index Register | |
| 5a8c: 00 1e 7f fb lbi $r1,[$fp+#-5] | |
| 5a90: 54 10 80 ff andi $r1,$r1,#0xff | |
| 5a94: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5a98: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 5a9c: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5aa0: 4a 00 78 20 ret $lp | |
| ; ----------- 0x5aa4: usb_handle_interrupt() | |
| 5aa4: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5aa8: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 5aac: 51 ff ff f8 addi $sp,$sp,#-8 | |
| 5ab0: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5ab4: 58 00 08 14 ori $r0,$r0,#0x814 ; USB offset 0x14: EPINDEX, Endpoint Index Register | |
| 5ab8: 04 00 00 00 lwi $r0,[$r0+#0x0] ; read EPINDEX | |
| 5abc: 80 00 mov55 $r0,$r0 | |
| 5abe: 10 0e 7f fb sbi $r0,[$fp+#-5] ; [$fp-5] = EPINDEX | |
| 5ac2: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5ac6: 58 00 08 04 ori $r0,$r0,#0x804 ; USB offset 0x04: USBFI, USB Function Interrupt Register | |
| 5aca: 04 00 00 00 lwi $r0,[$r0+#0x0] ; $r0 = USBFI | |
| 5ace: 54 00 00 01 andi $r0,$r0,#0x1 ; check bit 0 - USBTx0INT, transmit done for ep0 | |
| 5ad2: 54 00 00 ff andi $r0,$r0,#0xff | |
| 5ad6: c0 0b beqz38 $r0,0x5aec ; if USBTx0INT: | |
| 5ad8: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5adc: 58 00 08 40 ori $r0,$r0,#0x840 ; USB offset 0x40: USBFI_CLR, USB Function Interrupt Clear Register | |
| 5ae0: 44 10 00 01 movi $r1,#0x1 ; | |
| 5ae4: 14 10 00 00 swi $r1,[$r0+#0x0] ; clear USBTx0INT | |
| 5ae8: 49 ff fd c2 jal 0x566c ; usb_handler_ep0_tx() - TODO: twiddles FADDR and EPCON | |
| 5aec: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5af0: 58 00 08 04 ori $r0,$r0,#0x804 ; USB offset 0x04: USBFI, USB Function Interrupt Register | |
| 5af4: 04 00 00 00 lwi $r0,[$r0+#0x0] ; $r0 = USBFI | |
| 5af8: 54 00 00 02 andi $r0,$r0,#0x2 ; check bit 1 - USBRx0INT, receive done for ep0 | |
| 5afc: c0 0b beqz38 $r0,0x5b12 ; if USBRx0INT: | |
| 5afe: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5b02: 58 00 08 40 ori $r0,$r0,#0x840 ; USB offset 0x40: USBFI_CLR, USB Function Interrupt Clear Register | |
| 5b06: 44 10 00 02 movi $r1,#0x2 ; | |
| 5b0a: 14 10 00 00 swi $r1,[$r0+#0x0] ; clear USBRx0INT | |
| 5b0e: 49 ff fd 25 jal 0x5558 ; usb_handler_ep0_rx() | |
| 5b12: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5b16: 58 00 08 04 ori $r0,$r0,#0x804 ; USB offset 0x04: USBFI, USB Function Interrupt Register | |
| 5b1a: 04 00 00 00 lwi $r0,[$r0+#0x0] ; | |
| 5b1e: 54 00 00 04 andi $r0,$r0,#0x4 ; check bit 2 - USBx1INT, tx/rx done for ep1 | |
| 5b22: c0 0b beqz38 $r0,0x5b38 ; if USBx1INT: | |
| 5b24: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5b28: 58 00 08 40 ori $r0,$r0,#0x840 ; USB offset 0x40: USBFI_CLR, USB Function Interrupt Clear Register | |
| 5b2c: 44 10 00 04 movi $r1,#0x4 ; | |
| 5b30: 14 10 00 00 swi $r1,[$r0+#0x0] ; clear USBx1INT | |
| 5b34: 49 00 00 4c jal 0x5bcc ; usb_handler_ep1() | |
| 5b38: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5b3c: 58 00 08 04 ori $r0,$r0,#0x804 ; USB offset 0x04: USBFI, USB Function Interrupt Register | |
| 5b40: 04 00 00 00 lwi $r0,[$r0+#0x0] ; | |
| 5b44: 54 00 00 08 andi $r0,$r0,#0x8 ; check bit 3 - USBx2INT, tx/rx done for ep2 | |
| 5b48: c0 0b beqz38 $r0,0x5b5e ; if USBx2INT: | |
| 5b4a: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5b4e: 58 00 08 40 ori $r0,$r0,#0x840 ; USB offset 0x40: USBFI_CLR, USB Function Interrupt Clear Register | |
| 5b52: 44 10 00 08 movi $r1,#0x8 ; | |
| 5b56: 14 10 00 00 swi $r1,[$r0+#0x0] ; clear USBx2INT | |
| 5b5a: 49 00 00 43 jal 0x5be0 ; usb_handler_ep2(): set [$gp-104] = 1 | |
| 5b5e: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5b62: 58 00 08 04 ori $r0,$r0,#0x804 ; USB offset 0x04: USBFI, USB Function Interrupt Register | |
| 5b66: 04 00 00 00 lwi $r0,[$r0+#0x0] ; | |
| 5b6a: 54 00 00 10 andi $r0,$r0,#0x10 ; check bit 4, USBx3INT, tx/rx done for ep3 | |
| 5b6e: c0 0b beqz38 $r0,0x5b84 ; if USBx3INT: | |
| 5b70: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5b74: 58 00 08 40 ori $r0,$r0,#0x840 ; USB offset 0x40: USBFI_CLR, USB Function Interrupt Clear Register | |
| 5b78: 44 10 00 10 movi $r1,#0x10 ; | |
| 5b7c: 14 10 00 00 swi $r1,[$r0+#0x0] ; clear USBx3INT | |
| 5b80: 49 00 00 40 jal 0x5c00 ; usb_handler_ep3(): set [$gp-100] = 1 | |
| 5b84: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5b88: 58 00 08 04 ori $r0,$r0,#0x804 ; USB offset 0x04: USBFI, USB Function Interrupt Register | |
| 5b8c: 04 00 00 00 lwi $r0,[$r0+#0x0] ; | |
| 5b90: 54 00 00 20 andi $r0,$r0,#0x20 ; check bit 5, USBx4INT, tx/rx done for ep4 (surprise!) | |
| 5b94: c0 0b beqz38 $r0,0x5baa ; if USBx4INT: | |
| 5b96: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5b9a: 58 00 08 40 ori $r0,$r0,#0x840 ; USB offset 0x40: USBFI_CLR, USB Function Interrupt Clear Register | |
| 5b9e: 44 10 00 20 movi $r1,#0x20 ; | |
| 5ba2: 14 10 00 00 swi $r1,[$r0+#0x0] ; clear USBx4INT | |
| 5ba6: 49 00 00 3d jal 0x5c20 ; usb_handler_ep4(): read 0x40 byte command packet to $gp+0x978 | |
| 5baa: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5bae: 58 00 08 14 ori $r0,$r0,#0x814 ; USB offset 0x14: EPINDEX, Endpoint Index Register | |
| 5bb2: 00 1e 7f fb lbi $r1,[$fp+#-5] ; $r1 = saved EPINDEX | |
| 5bb6: 54 10 80 ff andi $r1,$r1,#0xff ; | |
| 5bba: 14 10 00 00 swi $r1,[$r0+#0x0] ; write old EPINDEX to EPINDEX | |
| 5bbe: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 5bc2: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5bc6: 4a 00 78 20 ret $lp | |
| 5bca: 92 00 nop16 | |
| ; ----------- 0x5bcc: usb_handler_ep1(): noop | |
| 5bcc: 3b ff fe 3c smw.adm $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 5bd0: 51 cf 80 00 addi $fp,$sp,#0x0 | |
| 5bd4: 51 fe 00 00 addi $sp,$fp,#0x0 | |
| 5bd8: 3b ff fe 04 lmw.bim $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 5bdc: 4a 00 78 20 ret $lp | |
| ; ----------- 0x5be0: usb_handler_ep2(): set usb_ep2_intr [$gp-104] = 1 | |
| 5be0: 3b ff fe 3c smw.adm $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 5be4: 51 cf 80 00 addi $fp,$sp,#0x0 | |
| 5be8: 3e 0f ff 98 addi.gp $r0,#-104 | |
| 5bec: 44 10 00 01 movi $r1,#0x1 | |
| 5bf0: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5bf4: 51 fe 00 00 addi $sp,$fp,#0x0 | |
| 5bf8: 3b ff fe 04 lmw.bim $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 5bfc: 4a 00 78 20 ret $lp | |
| ; ----------- 0x5c00: usb_handler_ep3(): set usb_ep3_intr [$gp-100] = 1 | |
| 5c00: 3b ff fe 3c smw.adm $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 5c04: 51 cf 80 00 addi $fp,$sp,#0x0 | |
| 5c08: 3e 0f ff 9c addi.gp $r0,#-100 | |
| 5c0c: 44 10 00 01 movi $r1,#0x1 | |
| 5c10: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5c14: 51 fe 00 00 addi $sp,$fp,#0x0 | |
| 5c18: 3b ff fe 04 lmw.bim $sp,[$sp],$sp,#0x8 ! {$fp} | |
| 5c1c: 4a 00 78 20 ret $lp | |
| ; ----------- 0x5c20: usb_handler_ep4(): read 0x40-byte packet to $gp+0x978 | |
| 5c20: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5c24: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 5c28: 44 00 00 04 movi $r0,#0x4 ; usb_rx_bytes endpoint = 4 | |
| 5c2c: 3e 18 09 78 addi.gp $r1,#0x978 ; usb_rx_bytes addr = $gp+0x978 | |
| 5c30: 44 20 00 40 movi $r2,#0x40 ; usb_rx_bytes size = 0x40 | |
| 5c34: 49 ff fd c4 jal 0x57bc ; usb_rx_bytes() | |
| 5c38: 49 00 03 02 jal 0x623c ; validate_packet(): set [$gp-72]=1, copy packet to [$gp+0xb34] | |
| 5c3c: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 5c40: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5c44: 4a 00 78 20 ret $lp | |
| ; ----------- 0x5c48: usb_tx_queued(): transmit any waiting data on endpoint 1, 2, and 3 | |
| 5c48: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5c4c: 51 cf 80 04 addi $fp,$sp,#0x4 ; NOTE this is the only caller for the following 3 functions | |
| 5c50: 49 00 00 0c jal 0x5c68 ; usb_tx_ep1() | |
| 5c54: 49 00 00 3a jal 0x5cc8 ; usb_tx_ep2() | |
| 5c58: 49 00 00 d4 jal 0x5e00 ; usb_tx_ep3() | |
| 5c5c: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 5c60: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5c64: 4a 00 78 20 ret $lp | |
| ; ----------- 0x5c68: usb_tx_ep1() | |
| 5c68: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5c6c: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 5c70: 3e 0f ff ac addi.gp $r0,#-84 | |
| 5c74: 04 10 00 00 lwi $r1,[$r0+#0x0] | |
| 5c78: 44 00 00 01 movi $r0,#0x1 | |
| 5c7c: 4c 10 40 20 bne $r1,$r0,0x5cbc | |
| 5c80: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5c84: 58 00 08 14 ori $r0,$r0,#0x814 ; USB offset 0x14: EPINDEX, Endpoint Index Register | |
| 5c88: 44 10 00 01 movi $r1,#0x1 | |
| 5c8c: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5c90: 46 00 02 07 sethi $r0,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 5c94: 58 00 08 24 ori $r0,$r0,#0x824 ; USB offset 0x24: TXCON, Transmit USB FIFO Control Register | |
| 5c98: 44 10 00 80 movi $r1,#0x80 | |
| 5c9c: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5ca0: 44 00 00 01 movi $r0,#0x1 | |
| 5ca4: 3e 18 09 30 addi.gp $r1,#0x930 | |
| 5ca8: 44 20 00 08 movi $r2,#0x8 | |
| 5cac: 49 ff fd 2c jal 0x5704 ; usb_transmit_bytes(endpoint=$r0, src=$r1, size=$r2) | |
| 5cb0: 3e 0f ff ac addi.gp $r0,#-84 | |
| 5cb4: 44 10 00 00 movi $r1,#0x0 | |
| 5cb8: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5cbc: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 5cc0: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5cc4: 4a 00 78 20 ret $lp | |
| ; ----------- 0x5cc8: usb_tx_ep2() | |
| 5cc8: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5ccc: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 5cd0: 3e 0f ff 98 addi.gp $r0,#-104 | |
| 5cd4: 04 10 00 00 lwi $r1,[$r0+#0x0] | |
| 5cd8: 44 00 00 01 movi $r0,#0x1 | |
| 5cdc: 4c 10 40 8c bne $r1,$r0,0x5df4 ; if !usb_ep2_intr: goto out | |
| 5ce0: 3e 08 0b 0c addi.gp $r0,#0xb0c | |
| 5ce4: 44 10 00 00 movi $r1,#0x0 | |
| 5ce8: 44 20 00 1f movi $r2,#0x1f | |
| 5cec: 49 00 21 e6 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 5cf0: 3e 0f ff b0 addi.gp $r0,#-80 | |
| 5cf4: 04 10 00 00 lwi $r1,[$r0+#0x0] | |
| 5cf8: 44 00 00 01 movi $r0,#0x1 | |
| 5cfc: 4c 10 40 25 bne $r1,$r0,0x5d46 | |
| 5d00: 3e 08 0b 0c addi.gp $r0,#0xb0c | |
| 5d04: 44 10 00 04 movi $r1,#0x4 | |
| 5d08: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 5d0c: 3e 08 0b 0e addi.gp $r0,#0xb0e | |
| 5d10: 3e 18 09 58 addi.gp $r1,#0x958 | |
| 5d14: 44 20 00 1d movi $r2,#0x1d | |
| 5d18: 49 00 21 c6 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 5d1c: 3e 0f ff 98 addi.gp $r0,#-104 | |
| 5d20: 44 10 00 00 movi $r1,#0x0 | |
| 5d24: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5d28: 44 00 00 02 movi $r0,#0x2 | |
| 5d2c: 3e 18 0b 0c addi.gp $r1,#0xb0c | |
| 5d30: 44 20 00 1f movi $r2,#0x1f | |
| 5d34: 49 ff fc e8 jal 0x5704 ; usb_transmit_bytes(endpoint=$r0, src=$r1, size=$r2) | |
| 5d38: 3e 0f ff b0 addi.gp $r0,#-80 | |
| 5d3c: 44 10 00 00 movi $r1,#0x0 | |
| 5d40: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5d44: d5 58 j8 0x5df4 ; goto out | |
| 5d46: 3e 0f ff b4 addi.gp $r0,#-76 | |
| 5d4a: 04 10 00 00 lwi $r1,[$r0+#0x0] | |
| 5d4e: 44 00 00 01 movi $r0,#0x1 | |
| 5d52: 4c 10 40 25 bne $r1,$r0,0x5d9c | |
| 5d56: 3e 08 0b 0c addi.gp $r0,#0xb0c | |
| 5d5a: 44 10 00 02 movi $r1,#0x2 | |
| 5d5e: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 5d62: 3e 08 0b 0d addi.gp $r0,#0xb0d | |
| 5d66: 3e 18 00 24 addi.gp $r1,#0x24 | |
| 5d6a: 44 20 00 04 movi $r2,#0x4 | |
| 5d6e: 49 00 21 9b jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 5d72: 3e 0f ff 98 addi.gp $r0,#-104 | |
| 5d76: 44 10 00 00 movi $r1,#0x0 | |
| 5d7a: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5d7e: 44 00 00 02 movi $r0,#0x2 | |
| 5d82: 3e 18 0b 0c addi.gp $r1,#0xb0c | |
| 5d86: 44 20 00 05 movi $r2,#0x5 | |
| 5d8a: 49 ff fc bd jal 0x5704 ; usb_transmit_bytes(endpoint=$r0, src=$r1, size=$r2) | |
| 5d8e: 3e 0f ff b4 addi.gp $r0,#-76 | |
| 5d92: 44 10 00 00 movi $r1,#0x0 | |
| 5d96: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5d9a: d5 2d j8 0x5df4 ; goto out | |
| 5d9c: 3e 0f ff f6 addi.gp $r0,#-10 | |
| 5da0: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| 5da4: 54 10 00 ff andi $r1,$r0,#0xff | |
| 5da8: 44 00 00 01 movi $r0,#0x1 | |
| 5dac: 4c 10 40 24 bne $r1,$r0,0x5df4 | |
| 5db0: 3e 08 0b 0c addi.gp $r0,#0xb0c | |
| 5db4: 44 10 00 05 movi $r1,#0x5 | |
| 5db8: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 5dbc: 3e 08 0b 0d addi.gp $r0,#0xb0d | |
| 5dc0: 3e 18 0b 2c addi.gp $r1,#0xb2c | |
| 5dc4: 44 20 00 06 movi $r2,#0x6 | |
| 5dc8: 49 00 21 6e jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 5dcc: 3e 0f ff 98 addi.gp $r0,#-104 | |
| 5dd0: 44 10 00 00 movi $r1,#0x0 | |
| 5dd4: 14 10 00 00 swi $r1,[$r0+#0x0] | |
| 5dd8: 44 00 00 02 movi $r0,#0x2 | |
| 5ddc: 3e 18 0b 0c addi.gp $r1,#0xb0c | |
| 5de0: 44 20 00 07 movi $r2,#0x7 | |
| 5de4: 49 ff fc 90 jal 0x5704 ; usb_transmit_bytes(endpoint=$r0, src=$r1, size=$r2) | |
| 5de8: 3e 0f ff f6 addi.gp $r0,#-10 | |
| 5dec: 44 10 00 00 movi $r1,#0x0 | |
| 5df0: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 5df4: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 5df8: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5dfc: 4a 00 78 20 ret $lp | |
| ; ----------- 0x5e00: usb_tx_ep3() | |
| 5e00: 3b ff fe bc smw.adm $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5e04: 51 cf 80 04 addi $fp,$sp,#0x4 | |
| 5e08: 51 ff ff c0 addi $sp,$sp,#-64 | |
| 5e0c: 3e 0f ff 9c addi.gp $r0,#-100 | |
| 5e10: 04 10 00 00 lwi $r1,[$r0+#0x0] | |
| 5e14: 44 00 00 01 movi $r0,#0x1 | |
| 5e18: 4c 10 40 17 bne $r1,$r0,0x5e46 ; if !usb_ep3_intr: goto out | |
| 5e1c: 50 1e 7f bc addi $r1,$fp,#-68 ; $r1 = $fp-68 (localpacket) | |
| 5e20: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 5e24: 49 ff d3 d0 jal 0x5c4 ; ringbuf_read(ringbuf, localpacket) - (this is the only caller) | |
| 5e28: c0 0f beqz38 $r0,0x5e46 ; if ringbuf_read failed, goto out | |
| 5e2a: 3e 0f ff 9c addi.gp $r0,#-100 | |
| 5e2e: 44 10 00 00 movi $r1,#0x0 | |
| 5e32: 14 10 00 00 swi $r1,[$r0+#0x0] ; usb_ep3_intr = 0 | |
| 5e36: 50 1e 7f bc addi $r1,$fp,#-68 | |
| 5e3a: 44 00 00 03 movi $r0,#0x3 | |
| 5e3e: 44 20 00 40 movi $r2,#0x40 | |
| 5e42: 49 ff fc 61 jal 0x5704 ; usb_transmit_bytes(endpoint=3, src=localpacket, size=0x40) | |
| 5e46: 51 fe 7f fc addi $sp,$fp,#-4 | |
| 5e4a: 3b ff fe 84 lmw.bim $sp,[$sp],$sp,#0xa ! {$fp, $lp} | |
| 5e4e: 4a 00 78 20 ret $lp | |
| 5e52: 92 00 nop16 | |
| 5e54: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 5e58: ef a4 addi10.sp #-92 | |
| 5e5a: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 5e5e: 84 25 movi55 $r1,#0x5 | |
| 5e60: 4c 00 80 04 beq $r0,$r1,0x5e68 | |
| 5e64: 49 00 1f a4 jal 0x9dac | |
| 5e68: 2e 07 ff f8 lbi.gp $r0,[+#-8] | |
| 5e6c: c8 08 bnez38 $r0,0x5e7c | |
| 5e6e: 46 30 01 00 sethi $r3,#0x100 | |
| 5e72: 3e 28 10 b0 addi.gp $r2,#0x10b0 | |
| 5e76: f3 81 swi37.sp $r3,[+#0x4] | |
| 5e78: 48 00 00 4a j 0x5f0c | |
| 5e7c: 3e 08 09 b9 addi.gp $r0,#0x9b9 | |
| 5e80: 3e 38 0b 05 addi.gp $r3,#0xb05 | |
| 5e84: 3e 28 10 b0 addi.gp $r2,#0x10b0 | |
| 5e88: 84 a1 movi55 $r5,#0x1 | |
| 5e8a: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 5e8c: 9c 01 addi333 $r0,$r0,#0x1 | |
| 5e8e: 54 60 80 07 andi $r6,$r1,#0x7 | |
| 5e92: 40 62 98 0c sll $r6,$r5,$r6 | |
| 5e96: 40 40 8c 09 srli $r4,$r1,#0x3 | |
| 5e9a: 40 63 18 05 nor $r6,$r6,$r6 | |
| 5e9e: c1 07 beqz38 $r1,0x5eac | |
| 5ea0: 38 11 10 00 lb $r1,[$r2+($r4<<#0x0)] | |
| 5ea4: 40 63 04 02 and $r6,$r6,$r1 | |
| 5ea8: 38 61 10 08 sb $r6,[$r2+($r4<<#0x0)] | |
| 5eac: a6 58 lbi333 $r1,[$r3+#0x0] | |
| 5eae: 9c d9 addi333 $r3,$r3,#0x1 | |
| 5eb0: 54 60 80 07 andi $r6,$r1,#0x7 | |
| 5eb4: 40 40 8c 09 srli $r4,$r1,#0x3 | |
| 5eb8: 40 62 98 0c sll $r6,$r5,$r6 | |
| 5ebc: 4e 12 00 08 beqz $r1,0x5ecc | |
| 5ec0: 38 11 10 00 lb $r1,[$r2+($r4<<#0x0)] | |
| 5ec4: 40 63 04 04 or $r6,$r6,$r1 | |
| 5ec8: 38 61 10 08 sb $r6,[$r2+($r4<<#0x0)] | |
| 5ecc: 3e 18 09 bd addi.gp $r1,#0x9bd | |
| 5ed0: 4c 00 ff dd bne $r0,$r1,0x5e8a | |
| 5ed4: 46 00 01 00 sethi $r0,#0x100 | |
| 5ed8: 3e 48 0b 04 addi.gp $r4,#0xb04 | |
| 5edc: 2e 60 00 02 lbi.gp $r6,[+#0x2] | |
| 5ee0: f0 81 swi37.sp $r0,[+#0x4] | |
| 5ee2: 3a 02 04 00 lmw.bi $r0,[$r4],$r1,#0x0 ! {$r0~$r1} | |
| 5ee6: 3e 38 09 b8 addi.gp $r3,#0x9b8 | |
| 5eea: a7 58 lbi333 $r5,[$r3+#0x0] | |
| 5eec: aa 19 swi333.bi $r0,[$r3],#0x4 | |
| 5eee: a7 20 lbi333 $r4,[$r4+#0x0] | |
| 5ef0: ae 58 sbi333 $r1,[$r3+#0x0] | |
| 5ef2: 40 52 94 05 nor $r5,$r5,$r5 | |
| 5ef6: 84 20 movi55 $r1,#0x0 | |
| 5ef8: 40 52 98 02 and $r5,$r5,$r6 | |
| 5efc: 3e 17 ff f8 sbi.gp $r1,[+#-8] | |
| 5f00: 04 1f 80 01 lwi $r1,[$sp+#0x4] | |
| 5f04: 40 02 90 04 or $r0,$r5,$r4 | |
| 5f08: 3e 00 00 02 sbi.gp $r0,[+#0x2] | |
| 5f0c: 2e 00 00 14 lbi.gp $r0,[+#0x14] | |
| 5f10: c8 05 bnez38 $r0,0x5f1a | |
| 5f12: f2 01 lwi37.sp $r2,[+#0x4] | |
| 5f14: 2e 70 00 02 lbi.gp $r7,[+#0x2] | |
| 5f18: d5 32 j8 0x5f7c | |
| 5f1a: 84 00 movi55 $r0,#0x0 | |
| 5f1c: 3e 58 17 30 addi.gp $r5,#0x1730 | |
| 5f20: 3e 18 09 38 addi.gp $r1,#0x938 ; $r1 = $gp+0x938 | |
| 5f24: 38 40 80 00 lb $r4,[$r1+($r0<<#0x0)] | |
| 5f28: 38 61 00 00 lb $r6,[$r2+($r0<<#0x0)] | |
| 5f2c: 38 32 80 00 lb $r3,[$r5+($r0<<#0x0)] | |
| 5f30: 40 42 10 05 nor $r4,$r4,$r4 | |
| 5f34: 40 42 18 02 and $r4,$r4,$r6 | |
| 5f38: 40 41 90 04 or $r4,$r3,$r4 | |
| 5f3c: 38 30 80 08 sb $r3,[$r1+($r0<<#0x0)] | |
| 5f40: 38 41 00 08 sb $r4,[$r2+($r0<<#0x0)] | |
| 5f44: 44 30 00 1d movi $r3,#0x1d | |
| 5f48: 9c 01 addi333 $r0,$r0,#0x1 | |
| 5f4a: 4c 01 ff ed bne $r0,$r3,0x5f24 | |
| 5f4e: f1 01 lwi37.sp $r1,[+#0x4] | |
| 5f50: 2e 20 00 08 lbi.gp $r2,[+#0x8] | |
| 5f54: 2e 70 00 02 lbi.gp $r7,[+#0x2] | |
| 5f58: 40 21 08 05 nor $r2,$r2,$r2 | |
| 5f5c: 2e 10 00 13 lbi.gp $r1,[+#0x13] | |
| 5f60: 40 71 1c 02 and $r7,$r2,$r7 | |
| 5f64: 40 70 9c 04 or $r7,$r1,$r7 | |
| 5f68: f2 01 lwi37.sp $r2,[+#0x4] | |
| 5f6a: 97 f8 zeb33 $r7,$r7 | |
| 5f6c: 3e 10 00 08 sbi.gp $r1,[+#0x8] | |
| 5f70: 44 00 00 00 movi $r0,#0x0 | |
| 5f74: 3e 00 00 14 sbi.gp $r0,[+#0x14] | |
| 5f78: 3e 70 00 02 sbi.gp $r7,[+#0x2] | |
| 5f7c: 2e 10 00 15 lbi.gp $r1,[+#0x15] | |
| 5f80: c9 08 bnez38 $r1,0x5f90 | |
| 5f82: 46 30 01 00 sethi $r3,#0x100 | |
| 5f86: 14 3f 80 02 swi $r3,[$sp+#0x8] | |
| 5f8a: 2e 60 00 0d lbi.gp $r6,[+#0xd] | |
| 5f8e: d5 19 j8 0x5fc0 | |
| 5f90: 2e 30 00 07 lbi.gp $r3,[+#0x7] | |
| 5f94: 46 20 01 00 sethi $r2,#0x100 | |
| 5f98: 2e 60 00 0d lbi.gp $r6,[+#0xd] | |
| 5f9c: f2 82 swi37.sp $r2,[+#0x8] | |
| 5f9e: 40 31 8c 05 nor $r3,$r3,$r3 | |
| 5fa2: 2e 20 00 12 lbi.gp $r2,[+#0x12] | |
| 5fa6: 40 61 98 02 and $r6,$r3,$r6 | |
| 5faa: 40 61 18 04 or $r6,$r2,$r6 | |
| 5fae: f3 02 lwi37.sp $r3,[+#0x8] | |
| 5fb0: 97 b0 zeb33 $r6,$r6 | |
| 5fb2: 3e 20 00 07 sbi.gp $r2,[+#0x7] | |
| 5fb6: 84 20 movi55 $r1,#0x0 | |
| 5fb8: 3e 10 00 15 sbi.gp $r1,[+#0x15] | |
| 5fbc: 3e 60 00 0d sbi.gp $r6,[+#0xd] | |
| 5fc0: 2e 00 00 0c lbi.gp $r0,[+#0xc] | |
| 5fc4: 4c 03 00 08 beq $r0,$r6,0x5fd4 | |
| 5fc8: 84 21 movi55 $r1,#0x1 | |
| 5fca: 3e 17 ff f6 sbi.gp $r1,[+#-10] | |
| 5fce: 3e 60 0b 2c sbi.gp $r6,[+#0xb2c] | |
| 5fd2: d5 0b j8 0x5fe8 | |
| 5fd4: 2e 17 ff f7 lbi.gp $r1,[+#-9] | |
| 5fd8: c1 08 beqz38 $r1,0x5fe8 | |
| 5fda: 84 20 movi55 $r1,#0x0 | |
| 5fdc: 3e 17 ff f7 sbi.gp $r1,[+#-9] | |
| 5fe0: 44 10 00 01 movi $r1,#0x1 | |
| 5fe4: 3e 17 ff f6 sbi.gp $r1,[+#-10] | |
| 5fe8: 3e 08 13 28 addi.gp $r0,#0x1328 | |
| 5fec: 3e 18 17 2c addi.gp $r1,#0x172c | |
| 5ff0: 84 44 movi55 $r2,#0x4 | |
| 5ff2: 49 00 20 4d jal 0xa08c ; memcmp(s1=$r0, s2=$r1, n=$r2), $r0=0 if same, byte diff if not | |
| 5ff6: c8 05 bnez38 $r0,0x6000 | |
| 5ff8: 44 00 ca a4 movi $r0,#0xcaa4 | |
| 5ffc: b6 1f swi450 $r0,[$sp] | |
| 5ffe: d5 11 j8 0x6020 | |
| 6000: 44 10 ca a4 movi $r1,#0xcaa4 | |
| 6004: b6 3f swi450 $r1,[$sp] | |
| 6006: 3e 18 13 28 addi.gp $r1,#0x1328 | |
| 600a: 50 0f 80 0c addi $r0,$sp,#0xc | |
| 600e: 84 44 movi55 $r2,#0x4 | |
| 6010: 49 00 20 4a jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 6014: 84 21 movi55 $r1,#0x1 | |
| 6016: 3c 1f ff ed swi.gp $r1,[+#-76] | |
| 601a: f1 03 lwi37.sp $r1,[+#0xc] | |
| 601c: 3c 1e 00 09 swi.gp $r1,[+#0x24] | |
| 6020: 2e 00 00 01 lbi.gp $r0,[+#0x1] | |
| 6024: 4c 03 80 08 beq $r0,$r7,0x6034 | |
| 6028: 44 10 00 01 movi $r1,#0x1 | |
| 602c: 3c 1f ff eb swi.gp $r1,[+#-84] | |
| 6030: 3e 70 09 30 sbi.gp $r7,[+#0x930] | |
| 6034: 3e 08 10 b0 addi.gp $r0,#0x10b0 | |
| 6038: 3e 18 13 2c addi.gp $r1,#0x132c | |
| 603c: 44 20 00 1d movi $r2,#0x1d | |
| 6040: 49 00 20 26 jal 0xa08c ; memcmp(s1=$r0, s2=$r1, n=$r2), $r0=0 if same, byte diff if not | |
| 6044: 4e 02 00 c8 beqz $r0,0x61d4 | |
| 6048: b4 7f lwi450 $r3,[$sp] | |
| 604a: 50 9f 80 50 addi $r9,$sp,#0x50 | |
| 604e: 3e 18 09 32 addi.gp $r1,#0x932 | |
| 6052: 84 46 movi55 $r2,#0x6 | |
| 6054: 80 09 mov55 $r0,$r9 | |
| 6056: dd 23 jral5 $r3 | |
| 6058: 50 af 80 30 addi $r10,$sp,#0x30 | |
| 605c: b4 7f lwi450 $r3,[$sp] | |
| 605e: 3e 18 10 b0 addi.gp $r1,#0x10b0 | |
| 6062: 44 20 00 1d movi $r2,#0x1d | |
| 6066: 80 0a mov55 $r0,$r10 | |
| 6068: 3e 68 09 58 addi.gp $r6,#0x958 | |
| 606c: 4b e0 0c 01 jral $lp,$r3 | |
| 6070: 3a 03 0c 04 lmw.bim $r0,[$r6],$r3,#0x0 ! {$r0~$r3} | |
| 6074: 50 7f 80 10 addi $r7,$sp,#0x10 | |
| 6078: 80 a7 mov55 $r5,$r7 | |
| 607a: 84 80 movi55 $r4,#0x0 | |
| 607c: 3a 02 8c 24 smw.bim $r0,[$r5],$r3,#0x0 ! {$r0~$r3} | |
| 6080: 3a 03 0c 00 lmw.bi $r0,[$r6],$r3,#0x0 ! {$r0~$r3} | |
| 6084: 3a 02 88 24 smw.bim $r0,[$r5],$r2,#0x0 ! {$r0~$r2} | |
| 6088: 10 32 80 00 sbi $r3,[$r5+#0x0] | |
| 608c: 38 15 10 00 lb $r1,[$r10+($r4<<#0x0)] | |
| 6090: 38 03 90 00 lb $r0,[$r7+($r4<<#0x0)] | |
| 6094: 40 00 80 02 and $r0,$r1,$r0 | |
| 6098: 40 10 04 03 xor $r1,$r0,$r1 | |
| 609c: 38 03 90 08 sb $r0,[$r7+($r4<<#0x0)] | |
| 60a0: 38 15 10 08 sb $r1,[$r10+($r4<<#0x0)] | |
| 60a4: 44 00 00 1d movi $r0,#0x1d | |
| 60a8: 9d 21 addi333 $r4,$r4,#0x1 | |
| 60aa: 4c 40 7f f1 bne $r4,$r0,0x608c | |
| 60ae: 80 29 mov55 $r1,$r9 | |
| 60b0: 50 5f 80 56 addi $r5,$sp,#0x56 | |
| 60b4: 84 00 movi55 $r0,#0x0 | |
| 60b6: 87 81 movi55 $fp,#0x1 | |
| 60b8: a6 88 lbi333 $r2,[$r1+#0x0] | |
| 60ba: 40 81 0c 09 srli $r8,$r2,#0x3 | |
| 60be: 54 31 00 07 andi $r3,$r2,#0x7 | |
| 60c2: c2 13 beqz38 $r2,0x60e8 | |
| 60c4: 38 45 20 00 lb $r4,[$r10+($r8<<#0x0)] | |
| 60c8: 40 2e 0c 0c sll $r2,$fp,$r3 | |
| 60cc: 40 32 0c 0e sra $r3,$r4,$r3 | |
| 60d0: 40 21 08 05 nor $r2,$r2,$r2 | |
| 60d4: 96 dc xlsb33 $r3,$r3 | |
| 60d6: 40 21 10 02 and $r2,$r2,$r4 | |
| 60da: 9d 81 addi333 $r6,$r0,#0x1 | |
| 60dc: c3 05 beqz38 $r3,0x60e6 | |
| 60de: 38 25 20 08 sb $r2,[$r10+($r8<<#0x0)] | |
| 60e2: 96 30 zeb33 $r0,$r6 | |
| 60e4: d5 02 j8 0x60e8 | |
| 60e6: ae c8 sbi333 $r3,[$r1+#0x0] | |
| 60e8: 9c 49 addi333 $r1,$r1,#0x1 | |
| 60ea: d9 e7 bnes38 $r1,0x60b8 | |
| 60ec: 85 00 movi55 $r8,#0x0 | |
| 60ee: 80 c8 mov55 $r6,$r8 | |
| 60f0: 87 81 movi55 $fp,#0x1 | |
| 60f2: 51 e4 00 00 addi $lp,$r8,#0x0 | |
| 60f6: d5 2f j8 0x6154 | |
| 60f8: 40 14 10 0e sra $r1,$r8,$r4 | |
| 60fc: 96 4c xlsb33 $r1,$r1 | |
| 60fe: c1 1b beqz38 $r1,0x6134 | |
| 6100: e6 06 slti45 $r0,#0x6 | |
| 6102: e8 11 beqzs8 0x6124 | |
| 6104: 44 20 00 00 movi $r2,#0x0 | |
| 6108: 38 14 88 00 lb $r1,[$r9+($r2<<#0x0)] | |
| 610c: c9 06 bnez38 $r1,0x6118 | |
| 610e: 9c 01 addi333 $r0,$r0,#0x1 | |
| 6110: 38 54 88 08 sb $r5,[$r9+($r2<<#0x0)] | |
| 6114: 96 00 zeb33 $r0,$r0 | |
| 6116: d5 0f j8 0x6134 | |
| 6118: 9c 91 addi333 $r2,$r2,#0x1 | |
| 611a: 84 26 movi55 $r1,#0x6 | |
| 611c: 4c 20 ff f6 bne $r2,$r1,0x6108 | |
| 6120: 48 00 00 0a j 0x6134 | |
| 6124: 38 23 98 00 lb $r2,[$r7+($r6<<#0x0)] | |
| 6128: 40 1e 10 0c sll $r1,$fp,$r4 | |
| 612c: 40 10 88 04 or $r1,$r1,$r2 | |
| 6130: 38 13 98 08 sb $r1,[$r7+($r6<<#0x0)] | |
| 6134: 9d 69 addi333 $r5,$r5,#0x1 | |
| 6136: 9d 21 addi333 $r4,$r4,#0x1 | |
| 6138: 84 48 movi55 $r2,#0x8 | |
| 613a: 97 68 zeb33 $r5,$r5 | |
| 613c: 4c 41 7f de bne $r4,$r2,0x60f8 | |
| 6140: 40 1f 08 00 add $r1,$lp,$r2 | |
| 6144: 50 63 00 01 addi $r6,$r6,#0x1 | |
| 6148: 44 30 00 1d movi $r3,#0x1d | |
| 614c: 55 e0 80 ff andi $lp,$r1,#0xff | |
| 6150: 4c 61 80 07 beq $r6,$r3,0x615e | |
| 6154: 38 85 18 00 lb $r8,[$r10+($r6<<#0x0)] | |
| 6158: 80 be mov55 $r5,$lp | |
| 615a: 84 80 movi55 $r4,#0x0 | |
| 615c: d5 ce j8 0x60f8 | |
| 615e: 80 09 mov55 $r0,$r9 | |
| 6160: 3e 18 09 32 addi.gp $r1,#0x932 | |
| 6164: 84 46 movi55 $r2,#0x6 | |
| 6166: 49 00 1f 93 jal 0xa08c ; memcmp(s1=$r0, s2=$r1, n=$r2), $r0=0 if same, byte diff if not | |
| 616a: c0 0a beqz38 $r0,0x617e | |
| 616c: b4 7f lwi450 $r3,[$sp] | |
| 616e: 80 29 mov55 $r1,$r9 | |
| 6170: 3e 08 09 32 addi.gp $r0,#0x932 | |
| 6174: 84 46 movi55 $r2,#0x6 | |
| 6176: dd 23 jral5 $r3 | |
| 6178: 84 21 movi55 $r1,#0x1 | |
| 617a: 3c 1f ff eb swi.gp $r1,[+#-84] | |
| 617e: 80 07 mov55 $r0,$r7 | |
| 6180: 3e 18 09 58 addi.gp $r1,#0x958 | |
| 6184: 44 20 00 1d movi $r2,#0x1d | |
| 6188: 49 00 1f 82 jal 0xa08c ; memcmp(s1=$r0, s2=$r1, n=$r2), $r0=0 if same, byte diff if not | |
| 618c: c8 02 bnez38 $r0,0x6190 | |
| 618e: d5 1c j8 0x61c6 | |
| 6190: 3a 03 8c 04 lmw.bim $r0,[$r7],$r3,#0x0 ! {$r0~$r3} | |
| 6194: 3e 48 09 58 addi.gp $r4,#0x958 | |
| 6198: 3a 02 0c 24 smw.bim $r0,[$r4],$r3,#0x0 ! {$r0~$r3} | |
| 619c: 3a 03 8c 00 lmw.bi $r0,[$r7],$r3,#0x0 ! {$r0~$r3} | |
| 61a0: 3a 02 08 24 smw.bim $r0,[$r4],$r2,#0x0 ! {$r0~$r2} | |
| 61a4: 84 21 movi55 $r1,#0x1 | |
| 61a6: 2e 00 00 03 lbi.gp $r0,[+#0x3] | |
| 61aa: ae e0 sbi333 $r3,[$r4+#0x0] | |
| 61ac: 3c 1f ff ec swi.gp $r1,[+#-80] | |
| 61b0: c8 08 bnez38 $r0,0x61c0 | |
| 61b2: f2 01 lwi37.sp $r2,[+#0x4] | |
| 61b4: f3 02 lwi37.sp $r3,[+#0x8] | |
| 61b6: 2e 70 00 02 lbi.gp $r7,[+#0x2] | |
| 61ba: 2e 60 00 0d lbi.gp $r6,[+#0xd] | |
| 61be: d5 0b j8 0x61d4 | |
| 61c0: 84 00 movi55 $r0,#0x0 | |
| 61c2: 3c 0f ff ec swi.gp $r0,[+#-80] | |
| 61c6: f0 01 lwi37.sp $r0,[+#0x4] | |
| 61c8: 04 1f 80 02 lwi $r1,[$sp+#0x8] | |
| 61cc: 2e 70 00 02 lbi.gp $r7,[+#0x2] | |
| 61d0: 2e 60 00 0d lbi.gp $r6,[+#0xd] | |
| 61d4: 3e 70 00 01 sbi.gp $r7,[+#0x1] | |
| 61d8: 3e 60 00 0c sbi.gp $r6,[+#0xc] | |
| 61dc: b4 7f lwi450 $r3,[$sp] | |
| 61de: 3e 18 10 b0 addi.gp $r1,#0x10b0 | |
| 61e2: 44 20 00 1d movi $r2,#0x1d | |
| 61e6: 3e 08 13 2c addi.gp $r0,#0x132c | |
| 61ea: dd 23 jral5 $r3 | |
| 61ec: b4 7f lwi450 $r3,[$sp] | |
| 61ee: 3e 18 13 28 addi.gp $r1,#0x1328 | |
| 61f2: 84 44 movi55 $r2,#0x4 | |
| 61f4: 3e 08 17 2c addi.gp $r0,#0x172c | |
| 61f8: dd 23 jral5 $r3 | |
| 61fa: ec 5c addi10.sp #0x5c | |
| 61fc: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 6200: dd 9e ret5 $lp | |
| 6202: 92 00 nop16 | |
| ; 0x6204: check_packet_crc16(pkt *$r0) -> $r0=1 if crc16 matches. | |
| 6204: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 6208: 9c 87 addi333 $r2,$r0,#0x7 ; $r2 = pkt+7 | |
| 620a: a7 90 lbi333 $r6,[$r2+#0x0] ; $r6 = pkt[7] | |
| 620c: 9d 06 addi333 $r4,$r0,#0x6 ; $r4 = pkt+6 | |
| 620e: 84 60 movi55 $r3,#0x0 ; | |
| 6210: a7 60 lbi333 $r5,[$r4+#0x0] ; $r5 = pkt[6] | |
| 6212: ae e0 sbi333 $r3,[$r4+#0x0] ; pkt[6] = 0 | |
| 6214: ae d0 sbi333 $r3,[$r2+#0x0] ; pkg[7] = 0 | |
| 6216: 80 20 mov55 $r1,$r0 ; crc16 src=$r0 | |
| 6218: 44 20 00 40 movi $r2,#0x40 ; crc16 len=0x40 | |
| 621c: 40 63 20 08 slli $r6,$r6,#0x8 ; $r6 = $r6 << 8 | |
| 6220: 44 00 ff ff movi $r0,#0xffff ; crc16 iv=0xffff | |
| 6224: 40 63 14 04 or $r6,$r6,$r5 ; $r6 = $r6 | $r5 (the crc16 from the packet) | |
| 6228: 49 ff d1 4c jal 0x4c0 ; crc16(int iv=$r0, void *src=$r1, int length=$r2) -> $r0 | |
| 622c: 40 03 00 03 xor $r0,$r6,$r0 ; $r0 = $r6 ^ $r0 (=0 if $r6 == $r0) | |
| 6230: 5c 00 00 01 slti $r0,$r0,#0x1 ; if crc16 matched, $r0 will now be 1 | |
| 6234: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 6238: dd 9e ret5 $lp | |
| 623a: 92 00 nop16 | |
| ; ----------- 0x623c: validate_packet() | |
| ; ----------- if packet at $gp+0x978 has a good crc and [$gp-72] (packet_in_progress) == 0: | |
| ; ----------- packet_in_prog = 1; copy packet to $gp+0xb34 | |
| 623c: 3a 6f a0 bc smw.adm $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 6240: 3e 08 09 78 addi.gp $r0,#0x978 ; check_packet_crc pkt = $gp+0x978 | |
| 6244: 49 ff ff e0 jal 0x6204 ; check_packet_crc16(pkt) -> $r0 crc_ok | |
| 6248: 80 80 mov55 $r4,$r0 ; $r4 = crc_ok | |
| 624a: 84 01 movi55 $r0,#0x1 | |
| 624c: 4c 40 40 1c bne $r4,$r0,0x6284 ; if !crc_ok, goto out | |
| 6250: 3c 0d ff ee lwi.gp $r0,[+#-72] ; $r0 = [$gp-72] (packet_in_prog) | |
| 6254: 4e 03 00 18 bnez $r0,0x6284 ; if packet_in_prog, goto out | |
| 6258: 3e 68 09 78 addi.gp $r6,#0x978 ; $r6 = $gp+0x978 | |
| 625c: 3a 03 0c 04 lmw.bim $r0,[$r6],$r3,#0x0 ! {$r0~$r3} | |
| 6260: 3e 58 0b 34 addi.gp $r5,#0xb34 ; $r5 = $gp+0xb34 | |
| 6264: 3a 02 8c 24 smw.bim $r0,[$r5],$r3,#0x0 ! {$r0~$r3} | |
| 6268: 3a 03 0c 04 lmw.bim $r0,[$r6],$r3,#0x0 ! {$r0~$r3} | |
| 626c: 3a 02 8c 24 smw.bim $r0,[$r5],$r3,#0x0 ! {$r0~$r3} | |
| 6270: 3a 03 0c 04 lmw.bim $r0,[$r6],$r3,#0x0 ! {$r0~$r3} | |
| 6274: 3a 02 8c 24 smw.bim $r0,[$r5],$r3,#0x0 ! {$r0~$r3} | |
| 6278: 3a 03 0c 00 lmw.bi $r0,[$r6],$r3,#0x0 ! {$r0~$r3} | |
| 627c: 3a 02 8c 20 smw.bi $r0,[$r5],$r3,#0x0 ! {$r0~$r3} | |
| 6280: 3c 4f ff ee swi.gp $r4,[+#-72] ; [$gp-72] = crc_ok | |
| ; label out: | |
| 6284: 3a 6f a0 84 lmw.bim $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 6288: dd 9e ret5 $lp | |
| 628a: 92 00 nop16 | |
| ; ---------- 0x628c: add_packet_crc16(pkt=$r0) | |
| 628c: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6290: ef fc addi10.sp #-4 | |
| 6292: 84 20 movi55 $r1,#0x0 | |
| 6294: 9d c6 addi333 $r7,$r0,#0x6 | |
| 6296: 9d 87 addi333 $r6,$r0,#0x7 | |
| 6298: ae 78 sbi333 $r1,[$r7+#0x0] | |
| 629a: ae 70 sbi333 $r1,[$r6+#0x0] | |
| 629c: 44 20 00 40 movi $r2,#0x40 | |
| 62a0: 50 10 00 00 addi $r1,$r0,#0x0 | |
| 62a4: 44 00 ff ff movi $r0,#0xffff | |
| 62a8: 49 ff d1 0c jal 0x4c0 ; crc16(int iv=$r0, void *src=$r1, int length=$r2) -> (short)$r0 | |
| 62ac: 40 10 20 09 srli $r1,$r0,#0x8 | |
| 62b0: ae 38 sbi333 $r0,[$r7+#0x0] | |
| 62b2: ae 70 sbi333 $r1,[$r6+#0x0] | |
| 62b4: ec 04 addi10.sp #0x4 | |
| 62b6: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 62ba: dd 9e ret5 $lp | |
| ; ----------- 0x62bc: handle_command_27($r0=subcmd, $r1=offset, $r2=length, $r3=payload) | |
| 62bc: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 62c0: ef fc addi10.sp #-4 | |
| 62c2: 80 81 mov55 $r4,$r1 | |
| 62c4: 96 00 zeb33 $r0,$r0 | |
| 62c6: 80 23 mov55 $r1,$r3 ; $r1 = payload | |
| 62c8: 96 90 zeb33 $r2,$r2 | |
| 62ca: 80 64 mov55 $r3,$r4 ; $r3 = offset | |
| ; vvvv patch1: original: call this function to do.. stuff | |
| 62cc: 49 ff dc 0e jal 0x1ae8 ; command_27_thingy() -> $r0 result | |
| ; ++++ patch1: skip the function call, just set $r0 | |
| ; 62cc: 44 00 00 69 movi $r0,#0x69 ; ............nice | |
| ; ^^^^ patch1: end hunk | |
| 62d0: 97 80 zeb33 $r6,$r0 ; $r6 = result | |
| 62d2: 84 01 movi55 $r0,#0x1 | |
| 62d4: 4c 60 00 28 beq $r6,$r0,0x6324 ; if result == 1: goto out (NOTE: i don't think this is possible..?) | |
| ; vvvv patch2: original: memset replypacket to all 00 | |
| 62d8: 3e 78 08 f0 addi.gp $r7,#0x8f0 ; $r7 = replypkt | |
| 62dc: 84 20 movi55 $r1,#0x0 ; memset byte = 0x00 | |
| 62de: 80 07 mov55 $r0,$r7 ; memset dest = replypkt | |
| 62e0: 44 20 00 40 movi $r2,#0x40 ; memset size = 0x40 | |
| 62e4: 49 00 1e ea jal 0xa0b8 ; memset(replypkt, 0x00, 0x40) | |
| ; ++++ patch2: copy 0x38 bytes from the address into the given packet | |
| ; 62d8: 3e 08 08 f8 addi.gp $r0,#0x8f8 ; memcpy dest = replypkt+8 | |
| ; 62dc: 80 23 mov55 $r1,$r3 ; memcpy src = offset | |
| ; 62de: 92 00 nop16 ; (padding so we don't mess up offsets) | |
| ; 62e0: 40 00 00 09 nop ; ($r2 is still size from above) | |
| ; 62e4: 49 00 1e e0 jal 0xa0a4 ; memcpy(dest=replypkt+8, src=offset, size) | |
| ; ^^^^ patch2: end hunk | |
| 62e8: 80 07 mov55 $r0,$r7 ; $r0 = replypkt | |
| 62ea: 44 10 00 27 movi $r1,#0x27 | |
| 62ee: 18 10 00 01 sbi.bi $r1,[$r0],#0x1 ; replypkt[0] = 0x27 | |
| ; vvvv patch3: original: set replypkt[1] | |
| 62f2: 58 13 00 08 ori $r1,$r6,#0x8 ; $r1 = result | 0x08 | |
| 62f6: ae 40 sbi333 $r1,[$r0+#0x0] ; replypkt[1] = result | 0x08 | |
| 62f8: ce 04 bnez38 $r6,0x6300 ; if result == 0: | |
| 62fa: 84 21 movi55 $r1,#0x1 ; | |
| 62fc: 10 10 00 00 sbi $r1,[$r0+#0x0] ; replypkt[1] = 1 | |
| ; ++++ patch3: set replypkt[1:5] | |
| ; 62f2: ae 80 sbi333 $r2,[$r0+#0x0] ; replypkt[1] = size | |
| ; 62f4: 40 11 c0 09 srli $r1,$r3,#0x10 ; $r1 = high halfword of offset | |
| ; 62f8: ac 41 shi333 $r1,[$r0+#0x2] ; replypkt[2:3] = high halfword of offset | |
| ; 62fa: ac c2 shi333 $r3,[$r0+#0x4] ; replypkt[4:5] = low halfword of offset | |
| ; 62fc: 40 00 00 09 nop ; (padding to avoid messing up offsets) | |
| ; ^^^^ patch3: end hunk | |
| 6300: 3e 08 08 f0 addi.gp $r0,#0x8f0 | |
| 6304: 49 ff ff c4 jal 0x628c ; add_packet_crc(replypkt) | |
| 6308: 46 20 01 00 sethi $r2,#0x100 | |
| 630c: 84 60 movi55 $r3,#0x0 | |
| 630e: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 6312: 3e 18 08 f0 addi.gp $r1,#0x8f0 | |
| 6316: 3c 3f ff ee swi.gp $r3,[+#-72] ; packet_in_progress = 0 | |
| 631a: ec 04 addi10.sp #0x4 | |
| 631c: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6320: 48 ff d1 0c j 0x538 ; return ringbuf_write(ringbuf, replypkt) | |
| 6324: ec 04 addi10.sp #0x4 ;label out: | |
| 6326: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 632a: dd 9e ret5 $lp | |
| ; ----------- 0x632c: handle_command_25(subcmd, offset, size) | |
| 632c: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6330: ef fc addi10.sp #-4 | |
| 6332: 97 09 zeh33 $r4,$r1 | |
| 6334: 96 00 zeb33 $r0,$r0 | |
| 6336: 80 23 mov55 $r1,$r3 | |
| 6338: 96 90 zeb33 $r2,$r2 | |
| 633a: 80 64 mov55 $r3,$r4 | |
| 633c: 49 ff dc 2c jal 0x1b94 | |
| 6340: 97 c0 zeb33 $r7,$r0 | |
| 6342: 84 01 movi55 $r0,#0x1 | |
| 6344: 4c 70 00 1f beq $r7,$r0,0x6382 | |
| 6348: 3e 68 08 f0 addi.gp $r6,#0x8f0 | |
| 634c: 94 86 slli333 $r2,$r0,#0x6 | |
| 634e: 84 20 movi55 $r1,#0x0 | |
| 6350: 80 06 mov55 $r0,$r6 | |
| 6352: 49 00 1e b3 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 6356: 80 26 mov55 $r1,$r6 | |
| 6358: 44 00 00 25 movi $r0,#0x25 | |
| 635c: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 | |
| 6360: 80 06 mov55 $r0,$r6 | |
| 6362: af c8 sbi333 $r7,[$r1+#0x0] | |
| 6364: 49 ff ff 94 jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 6368: 46 20 01 00 sethi $r2,#0x100 | |
| 636c: 84 60 movi55 $r3,#0x0 | |
| 636e: 80 26 mov55 $r1,$r6 | |
| 6370: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 6374: 3c 3f ff ee swi.gp $r3,[+#-72] | |
| 6378: ec 04 addi10.sp #0x4 | |
| 637a: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 637e: 48 ff d0 dd j 0x538 ; ringbuf_write() | |
| 6382: ec 04 addi10.sp #0x4 | |
| 6384: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6388: dd 9e ret5 $lp | |
| 638a: 92 00 nop16 | |
| ; ----------- 0x638c: handle_command_24(subcmd, offset, size) | |
| 638c: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6390: ef fc addi10.sp #-4 | |
| 6392: 97 09 zeh33 $r4,$r1 | |
| 6394: 96 00 zeb33 $r0,$r0 | |
| 6396: 80 23 mov55 $r1,$r3 | |
| 6398: 96 90 zeb33 $r2,$r2 | |
| 639a: 80 64 mov55 $r3,$r4 | |
| 639c: 49 ff de 7a jal 0x2090 | |
| 63a0: 97 c0 zeb33 $r7,$r0 | |
| 63a2: 84 01 movi55 $r0,#0x1 | |
| 63a4: 4c 70 00 1f beq $r7,$r0,0x63e2 | |
| 63a8: 3e 68 08 f0 addi.gp $r6,#0x8f0 | |
| 63ac: 94 86 slli333 $r2,$r0,#0x6 | |
| 63ae: 84 20 movi55 $r1,#0x0 | |
| 63b0: 80 06 mov55 $r0,$r6 | |
| 63b2: 49 00 1e 83 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 63b6: 80 26 mov55 $r1,$r6 | |
| 63b8: 44 00 00 24 movi $r0,#0x24 | |
| 63bc: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 | |
| 63c0: 80 06 mov55 $r0,$r6 | |
| 63c2: af c8 sbi333 $r7,[$r1+#0x0] | |
| 63c4: 49 ff ff 64 jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 63c8: 46 20 01 00 sethi $r2,#0x100 | |
| 63cc: 84 60 movi55 $r3,#0x0 | |
| 63ce: 80 26 mov55 $r1,$r6 | |
| 63d0: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 63d4: 3c 3f ff ee swi.gp $r3,[+#-72] | |
| 63d8: ec 04 addi10.sp #0x4 | |
| 63da: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 63de: 48 ff d0 ad j 0x538 ; ringbuf_write() | |
| 63e2: ec 04 addi10.sp #0x4 | |
| 63e4: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 63e8: dd 9e ret5 $lp | |
| 63ea: 92 00 nop16 | |
| 63ec: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 63f0: ef fc addi10.sp #-4 | |
| 63f2: 96 c8 zeb33 $r3,$r1 | |
| 63f4: 96 00 zeb33 $r0,$r0 | |
| 63f6: 80 22 mov55 $r1,$r2 | |
| 63f8: 80 43 mov55 $r2,$r3 | |
| 63fa: 49 ff de 8f jal 0x2118 | |
| 63fe: 97 c0 zeb33 $r7,$r0 | |
| 6400: 84 01 movi55 $r0,#0x1 | |
| 6402: 4c 70 00 20 beq $r7,$r0,0x6442 | |
| 6406: 3e 68 08 f0 addi.gp $r6,#0x8f0 | |
| 640a: 94 86 slli333 $r2,$r0,#0x6 | |
| 640c: 84 20 movi55 $r1,#0x0 | |
| 640e: 80 06 mov55 $r0,$r6 | |
| 6410: 49 00 1e 54 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 6414: 80 26 mov55 $r1,$r6 | |
| 6416: 44 00 00 23 movi $r0,#0x23 | |
| 641a: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 | |
| 641e: 80 06 mov55 $r0,$r6 | |
| 6420: 10 70 80 00 sbi $r7,[$r1+#0x0] | |
| 6424: 49 ff ff 34 jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 6428: 46 20 01 00 sethi $r2,#0x100 | |
| 642c: 84 60 movi55 $r3,#0x0 | |
| 642e: 80 26 mov55 $r1,$r6 | |
| 6430: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 6434: 3c 3f ff ee swi.gp $r3,[+#-72] | |
| 6438: ec 04 addi10.sp #0x4 | |
| 643a: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 643e: 48 ff d0 7d j 0x538 ; ringbuf_write() | |
| 6442: ec 04 addi10.sp #0x4 | |
| 6444: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6448: dd 9e ret5 $lp | |
| 644a: 92 00 nop16 | |
| ; ----------- 0x644c: handle_command_26(subcmd, offset, size) | |
| 644c: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6450: ef fc addi10.sp #-4 | |
| 6452: 97 09 zeh33 $r4,$r1 | |
| 6454: 96 00 zeb33 $r0,$r0 | |
| 6456: 80 23 mov55 $r1,$r3 | |
| 6458: 96 90 zeb33 $r2,$r2 | |
| 645a: 80 64 mov55 $r3,$r4 | |
| 645c: 49 ff dd 32 jal 0x1ec0 | |
| 6460: 97 80 zeb33 $r6,$r0 | |
| 6462: 84 01 movi55 $r0,#0x1 | |
| 6464: 4c 60 00 28 beq $r6,$r0,0x64b4 | |
| 6468: 3e 78 08 f0 addi.gp $r7,#0x8f0 | |
| 646c: 84 20 movi55 $r1,#0x0 | |
| 646e: 80 07 mov55 $r0,$r7 | |
| 6470: 44 20 00 40 movi $r2,#0x40 | |
| 6474: 49 00 1e 22 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 6478: 80 07 mov55 $r0,$r7 | |
| 647a: 44 10 00 26 movi $r1,#0x26 | |
| 647e: 18 10 00 01 sbi.bi $r1,[$r0],#0x1 | |
| 6482: 58 13 00 08 ori $r1,$r6,#0x8 | |
| 6486: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 6488: ce 04 bnez38 $r6,0x6490 | |
| 648a: 84 21 movi55 $r1,#0x1 | |
| 648c: 10 10 00 00 sbi $r1,[$r0+#0x0] | |
| 6490: 3e 08 08 f0 addi.gp $r0,#0x8f0 | |
| 6494: 49 ff fe fc jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 6498: 46 20 01 00 sethi $r2,#0x100 | |
| 649c: 84 60 movi55 $r3,#0x0 | |
| 649e: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 64a2: 3e 18 08 f0 addi.gp $r1,#0x8f0 | |
| 64a6: 3c 3f ff ee swi.gp $r3,[+#-72] | |
| 64aa: ec 04 addi10.sp #0x4 | |
| 64ac: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 64b0: 48 ff d0 44 j 0x538 ; ringbuf_write() | |
| 64b4: ec 04 addi10.sp #0x4 | |
| 64b6: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 64ba: dd 9e ret5 $lp | |
| 64bc: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 64c0: ef fc addi10.sp #-4 | |
| 64c2: 97 09 zeh33 $r4,$r1 | |
| 64c4: 96 00 zeb33 $r0,$r0 | |
| 64c6: 80 23 mov55 $r1,$r3 | |
| 64c8: 96 90 zeb33 $r2,$r2 | |
| 64ca: 80 64 mov55 $r3,$r4 | |
| 64cc: 49 ff dd 4e jal 0x1f68 | |
| 64d0: 97 c0 zeb33 $r7,$r0 | |
| 64d2: 84 01 movi55 $r0,#0x1 | |
| 64d4: 4c 70 00 1f beq $r7,$r0,0x6512 | |
| 64d8: 3e 68 08 f0 addi.gp $r6,#0x8f0 | |
| 64dc: 94 86 slli333 $r2,$r0,#0x6 | |
| 64de: 84 20 movi55 $r1,#0x0 | |
| 64e0: 80 06 mov55 $r0,$r6 | |
| 64e2: 49 00 1d eb jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 64e6: 80 26 mov55 $r1,$r6 | |
| 64e8: 44 00 00 31 movi $r0,#0x31 | |
| 64ec: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 | |
| 64f0: 80 06 mov55 $r0,$r6 | |
| 64f2: af c8 sbi333 $r7,[$r1+#0x0] | |
| 64f4: 49 ff fe cc jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 64f8: 46 20 01 00 sethi $r2,#0x100 | |
| 64fc: 84 60 movi55 $r3,#0x0 | |
| 64fe: 80 26 mov55 $r1,$r6 | |
| 6500: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 6504: 3c 3f ff ee swi.gp $r3,[+#-72] | |
| 6508: ec 04 addi10.sp #0x4 | |
| 650a: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 650e: 48 ff d0 15 j 0x538 ; ringbuf_write() | |
| 6512: ec 04 addi10.sp #0x4 | |
| 6514: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6518: dd 9e ret5 $lp | |
| 651a: 92 00 nop16 | |
| ; ----------- 0x651c: handle_command_22(subcmd=$r0, offset=$r1, $r2=packet[4], $r3=packet+8) | |
| 651c: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6520: ef fc addi10.sp #-4 | |
| 6522: 97 09 zeh33 $r4,$r1 | |
| 6524: 96 00 zeb33 $r0,$r0 | |
| 6526: 80 23 mov55 $r1,$r3 | |
| 6528: 96 90 zeb33 $r2,$r2 | |
| 652a: 80 64 mov55 $r3,$r4 | |
| 652c: 49 ff dd 62 jal 0x1ff0 | |
| 6530: 97 c0 zeb33 $r7,$r0 | |
| 6532: 84 01 movi55 $r0,#0x1 | |
| 6534: 4c 70 00 1f beq $r7,$r0,0x6572 | |
| 6538: 3e 68 08 f0 addi.gp $r6,#0x8f0 | |
| 653c: 94 86 slli333 $r2,$r0,#0x6 | |
| 653e: 84 20 movi55 $r1,#0x0 | |
| 6540: 80 06 mov55 $r0,$r6 | |
| 6542: 49 00 1d bb jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 6546: 80 26 mov55 $r1,$r6 | |
| 6548: 44 00 00 22 movi $r0,#0x22 | |
| 654c: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 | |
| 6550: 80 06 mov55 $r0,$r6 | |
| 6552: af c8 sbi333 $r7,[$r1+#0x0] | |
| 6554: 49 ff fe 9c jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 6558: 46 20 01 00 sethi $r2,#0x100 | |
| 655c: 84 60 movi55 $r3,#0x0 | |
| 655e: 80 26 mov55 $r1,$r6 | |
| 6560: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 6564: 3c 3f ff ee swi.gp $r3,[+#-72] | |
| 6568: ec 04 addi10.sp #0x4 | |
| 656a: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 656e: 48 ff cf e5 j 0x538 ; ringbuf_write() | |
| 6572: ec 04 addi10.sp #0x4 | |
| 6574: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6578: dd 9e ret5 $lp | |
| 657a: 92 00 nop16 | |
| 657c: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6580: ef fc addi10.sp #-4 | |
| 6582: 84 44 movi55 $r2,#0x4 | |
| 6584: 96 48 zeb33 $r1,$r1 | |
| 6586: 96 00 zeb33 $r0,$r0 | |
| 6588: 4c 11 00 24 beq $r1,$r2,0x65d0 | |
| 658c: e6 25 slti45 $r1,#0x5 | |
| 658e: e8 0a beqzs8 0x65a2 | |
| 6590: 84 42 movi55 $r2,#0x2 | |
| 6592: 4c 11 00 17 beq $r1,$r2,0x65c0 | |
| 6596: e6 23 slti45 $r1,#0x3 | |
| 6598: e8 18 beqzs8 0x65c8 | |
| 659a: 84 41 movi55 $r2,#0x1 | |
| 659c: 4c 11 40 0b bne $r1,$r2,0x65b2 | |
| 65a0: d5 0c j8 0x65b8 | |
| 65a2: 84 46 movi55 $r2,#0x6 | |
| 65a4: 4c 11 00 1e beq $r1,$r2,0x65e0 | |
| 65a8: e2 22 slt45 $r1,$r2 | |
| 65aa: e9 17 bnezs8 0x65d8 | |
| 65ac: 84 47 movi55 $r2,#0x7 | |
| 65ae: 4c 11 00 1d beq $r1,$r2,0x65e8 | |
| 65b2: 84 c0 movi55 $r6,#0x0 | |
| 65b4: 48 00 00 20 j 0x65f4 | |
| 65b8: 49 ff d8 22 jal 0x15fc | |
| 65bc: 97 80 zeb33 $r6,$r0 | |
| 65be: d5 18 j8 0x65ee | |
| 65c0: 49 ff d8 78 jal 0x16b0 | |
| 65c4: 97 80 zeb33 $r6,$r0 | |
| 65c6: d5 14 j8 0x65ee | |
| 65c8: 49 ff d8 4c jal 0x1660 | |
| 65cc: 97 80 zeb33 $r6,$r0 | |
| 65ce: d5 10 j8 0x65ee | |
| 65d0: 49 ff d4 aa jal 0xf24 | |
| 65d4: 97 80 zeb33 $r6,$r0 | |
| 65d6: d5 0c j8 0x65ee | |
| 65d8: 49 ff d7 b2 jal 0x153c | |
| 65dc: 97 80 zeb33 $r6,$r0 | |
| 65de: d5 08 j8 0x65ee | |
| 65e0: 49 ff d4 4a jal 0xe74 | |
| 65e4: 97 80 zeb33 $r6,$r0 | |
| 65e6: d5 04 j8 0x65ee | |
| 65e8: 49 ff d7 e2 jal 0x15ac | |
| 65ec: 97 80 zeb33 $r6,$r0 | |
| 65ee: 84 01 movi55 $r0,#0x1 | |
| 65f0: 4c 60 00 21 beq $r6,$r0,0x6632 | |
| 65f4: 3e 78 08 f0 addi.gp $r7,#0x8f0 | |
| 65f8: 44 20 00 40 movi $r2,#0x40 | |
| 65fc: 84 20 movi55 $r1,#0x0 | |
| 65fe: 80 07 mov55 $r0,$r7 | |
| 6600: 49 00 1d 5c jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 6604: 80 27 mov55 $r1,$r7 | |
| 6606: 44 00 00 21 movi $r0,#0x21 | |
| 660a: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 | |
| 660e: 80 07 mov55 $r0,$r7 | |
| 6610: 10 60 80 00 sbi $r6,[$r1+#0x0] | |
| 6614: 49 ff fe 3c jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 6618: 46 20 01 00 sethi $r2,#0x100 | |
| 661c: 84 60 movi55 $r3,#0x0 | |
| 661e: 80 27 mov55 $r1,$r7 | |
| 6620: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 6624: 3c 3f ff ee swi.gp $r3,[+#-72] | |
| 6628: ec 04 addi10.sp #0x4 | |
| 662a: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 662e: 48 ff cf 85 j 0x538 ; ringbuf_write() | |
| 6632: ec 04 addi10.sp #0x4 | |
| 6634: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6638: dd 9e ret5 $lp | |
| 663a: 92 00 nop16 | |
| ; ---------- 0x663c: handle_command_1a($r0=packet[1], $r1=packet[2:3], $r2=packet+8, $r3=packet[5]) | |
| 663c: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 6640: ef fc addi10.sp #-4 | |
| 6642: 3e 68 08 f0 addi.gp $r6,#0x8f0 | |
| 6646: 97 c0 zeb33 $r7,$r0 | |
| 6648: 81 41 mov55 $r10,$r1 | |
| 664a: 83 82 mov55 $fp,$r2 | |
| 664c: 80 06 mov55 $r0,$r6 | |
| 664e: 84 20 movi55 $r1,#0x0 | |
| 6650: 44 20 00 40 movi $r2,#0x40 | |
| 6654: 54 91 80 ff andi $r9,$r3,#0xff | |
| 6658: 49 00 1d 30 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 665c: 80 86 mov55 $r4,$r6 | |
| 665e: 44 50 00 1a movi $r5,#0x1a | |
| 6662: 18 52 00 01 sbi.bi $r5,[$r4],#0x1 | |
| 6666: 46 f0 01 00 sethi $r15,#0x100 | |
| 666a: 2e 57 fe 78 lbi.gp $r5,[+#-392] | |
| 666e: 50 83 00 02 addi $r8,$r6,#0x2 | |
| 6672: af e0 sbi333 $r7,[$r4+#0x0] | |
| 6674: 44 00 00 f0 movi $r0,#0xf0 | |
| 6678: 84 80 movi55 $r4,#0x0 | |
| 667a: 10 44 00 00 sbi $r4,[$r8+#0x0] | |
| 667e: d0 08 beqs38 $r0,0x668e | |
| 6680: 80 06 mov55 $r0,$r6 | |
| 6682: 49 ff fe 05 jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 6686: 80 26 mov55 $r1,$r6 | |
| 6688: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 668c: d5 28 j8 0x66dc | |
| 668e: 84 01 movi55 $r0,#0x1 | |
| 6690: 4c 70 00 06 beq $r7,$r0,0x669c | |
| 6694: 84 22 movi55 $r1,#0x2 | |
| 6696: 4c 70 c0 1b bne $r7,$r1,0x66cc | |
| 669a: d5 15 j8 0x66c4 | |
| 669c: 5c f4 80 39 slti $r15,$r9,#0x39 | |
| 66a0: e8 16 beqzs8 0x66cc | |
| 66a2: 40 04 a8 00 add $r0,$r9,$r10 | |
| 66a6: 5c f0 02 11 slti $r15,$r0,#0x211 | |
| 66aa: e8 11 beqzs8 0x66cc | |
| 66ac: 3e 18 03 00 addi.gp $r1,#0x300 | |
| 66b0: 40 05 04 00 add $r0,$r10,$r1 | |
| 66b4: 80 49 mov55 $r2,$r9 | |
| 66b6: 80 3c mov55 $r1,$fp | |
| 66b8: 49 00 1c f6 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 66bc: 10 74 00 00 sbi $r7,[$r8+#0x0] | |
| 66c0: 48 00 00 06 j 0x66cc | |
| 66c4: 3e 07 ff e8 sbi.gp $r0,[+#-24] | |
| 66c8: 10 04 00 00 sbi $r0,[$r8+#0x0] | |
| 66cc: 3e 08 08 f0 addi.gp $r0,#0x8f0 | |
| 66d0: 49 ff fd de jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 66d4: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 66d8: 3e 18 08 f0 addi.gp $r1,#0x8f0 | |
| 66dc: 46 20 01 00 sethi $r2,#0x100 | |
| 66e0: 84 60 movi55 $r3,#0x0 | |
| 66e2: 3c 3f ff ee swi.gp $r3,[+#-72] | |
| 66e6: ec 04 addi10.sp #0x4 | |
| 66e8: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 66ec: 48 ff cf 26 j 0x538 ; ringbuf_write() | |
| ; ----------- handle_command_17($r0=[$gp+b35], $r1=$gp+b3c): | |
| 66f0: 3a 6f a4 bc smw.adm $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 66f4: ef fc addi10.sp #-4 | |
| 66f6: 3e 88 08 f0 addi.gp $r8,#0x8f0 | |
| 66fa: 97 c0 zeb33 $r7,$r0 | |
| 66fc: 80 c1 mov55 $r6,$r1 | |
| 66fe: 80 08 mov55 $r0,$r8 | |
| 6700: 84 20 movi55 $r1,#0x0 | |
| 6702: 44 20 00 40 movi $r2,#0x40 | |
| 6706: 49 00 1c d9 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 670a: 80 28 mov55 $r1,$r8 | |
| 670c: 44 00 00 17 movi $r0,#0x17 | |
| 6710: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 | |
| 6714: 84 01 movi55 $r0,#0x1 | |
| 6716: af c8 sbi333 $r7,[$r1+#0x0] | |
| 6718: 4c 70 40 70 bne $r7,$r0,0x67f8 | |
| 671c: 50 73 00 08 addi $r7,$r6,#0x8 | |
| 6720: a6 38 lbi333 $r0,[$r7+#0x0] | |
| 6722: 96 44 xlsb33 $r1,$r0 | |
| 6724: c9 04 bnez38 $r1,0x672c | |
| 6726: 3e 8f fe 78 addi.gp $r8,#-392 | |
| 672a: d5 07 j8 0x6738 | |
| 672c: a6 70 lbi333 $r1,[$r6+#0x0] | |
| 672e: 3e 8f fe 78 addi.gp $r8,#-392 | |
| 6732: 10 14 00 00 sbi $r1,[$r8+#0x0] | |
| 6736: a6 38 lbi333 $r0,[$r7+#0x0] | |
| 6738: 54 10 00 02 andi $r1,$r0,#0x2 | |
| 673c: c9 02 bnez38 $r1,0x6740 | |
| 673e: d5 07 j8 0x674c | |
| 6740: a6 71 lbi333 $r1,[$r6+#0x1] | |
| 6742: 9e 89 subi333 $r2,$r1,#0x1 | |
| 6744: 96 90 zeb33 $r2,$r2 | |
| 6746: e6 43 slti45 $r2,#0x3 | |
| 6748: 4e f3 00 08 bnez $r15,0x6758 | |
| 674c: 3e 9f fe 79 addi.gp $r9,#-391 | |
| 6750: 00 14 80 00 lbi $r1,[$r9+#0x0] | |
| 6754: 48 00 00 08 j 0x6764 | |
| 6758: 3e 9f fe 79 addi.gp $r9,#-391 | |
| 675c: 10 14 80 00 sbi $r1,[$r9+#0x0] | |
| 6760: 00 03 80 00 lbi $r0,[$r7+#0x0] | |
| 6764: 54 20 00 03 andi $r2,$r0,#0x3 | |
| 6768: 4e 22 00 0a beqz $r2,0x677c | |
| 676c: 00 04 00 00 lbi $r0,[$r8+#0x0] | |
| 6770: 49 ff e9 28 jal 0x39c0 | |
| 6774: 00 14 80 00 lbi $r1,[$r9+#0x0] | |
| 6778: 00 03 80 00 lbi $r0,[$r7+#0x0] | |
| 677c: 54 20 00 04 andi $r2,$r0,#0x4 | |
| 6780: ca 04 bnez38 $r2,0x6788 | |
| 6782: 3c 2d ff 9f lwi.gp $r2,[+#-388] | |
| 6786: d5 07 j8 0x6794 | |
| 6788: 3c 2d ff 9f lwi.gp $r2,[+#-388] | |
| 678c: a6 32 lbi333 $r0,[$r6+#0x2] | |
| 678e: ae 10 sbi333 $r0,[$r2+#0x0] | |
| 6790: 00 03 80 00 lbi $r0,[$r7+#0x0] | |
| 6794: 54 30 00 08 andi $r3,$r0,#0x8 | |
| 6798: c3 04 beqz38 $r3,0x67a0 | |
| 679a: a6 33 lbi333 $r0,[$r6+#0x3] | |
| 679c: ae 11 sbi333 $r0,[$r2+#0x1] | |
| 679e: a6 38 lbi333 $r0,[$r7+#0x0] | |
| 67a0: 54 30 00 10 andi $r3,$r0,#0x10 | |
| 67a4: c3 04 beqz38 $r3,0x67ac | |
| 67a6: a6 34 lbi333 $r0,[$r6+#0x4] | |
| 67a8: ae 12 sbi333 $r0,[$r2+#0x2] | |
| 67aa: a6 38 lbi333 $r0,[$r7+#0x0] | |
| 67ac: 54 30 00 20 andi $r3,$r0,#0x20 | |
| 67b0: c3 04 beqz38 $r3,0x67b8 | |
| 67b2: a6 35 lbi333 $r0,[$r6+#0x5] | |
| 67b4: ae 13 sbi333 $r0,[$r2+#0x3] | |
| 67b6: a6 38 lbi333 $r0,[$r7+#0x0] | |
| 67b8: 54 30 00 40 andi $r3,$r0,#0x40 | |
| 67bc: c3 04 beqz38 $r3,0x67c4 | |
| 67be: a6 36 lbi333 $r0,[$r6+#0x6] | |
| 67c0: ae 14 sbi333 $r0,[$r2+#0x4] | |
| 67c2: a6 38 lbi333 $r0,[$r7+#0x0] | |
| 67c4: 96 02 seb33 $r0,$r0 | |
| 67c6: 4e 04 00 05 bgez $r0,0x67d0 | |
| 67ca: a7 b7 lbi333 $r6,[$r6+#0x7] | |
| 67cc: 10 61 00 05 sbi $r6,[$r2+#0x5] | |
| 67d0: 3e 08 08 f8 addi.gp $r0,#0x8f8 | |
| 67d4: 00 84 00 00 lbi $r8,[$r8+#0x0] | |
| 67d8: 80 60 mov55 $r3,$r0 | |
| 67da: 18 81 80 01 sbi.bi $r8,[$r3],#0x1 | |
| 67de: ae 58 sbi333 $r1,[$r3+#0x0] | |
| 67e0: a6 50 lbi333 $r1,[$r2+#0x0] | |
| 67e2: ae 42 sbi333 $r1,[$r0+#0x2] | |
| 67e4: a6 51 lbi333 $r1,[$r2+#0x1] | |
| 67e6: ae 43 sbi333 $r1,[$r0+#0x3] | |
| 67e8: a6 52 lbi333 $r1,[$r2+#0x2] | |
| 67ea: ae 44 sbi333 $r1,[$r0+#0x4] | |
| 67ec: a6 53 lbi333 $r1,[$r2+#0x3] | |
| 67ee: ae 45 sbi333 $r1,[$r0+#0x5] | |
| 67f0: a6 54 lbi333 $r1,[$r2+#0x4] | |
| 67f2: ae 46 sbi333 $r1,[$r0+#0x6] | |
| 67f4: a6 95 lbi333 $r2,[$r2+#0x5] | |
| 67f6: ae 87 sbi333 $r2,[$r0+#0x7] | |
| 67f8: 3e 08 08 f0 addi.gp $r0,#0x8f0 | |
| 67fc: 49 ff fd 48 jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 6800: 46 20 01 00 sethi $r2,#0x100 | |
| 6804: 84 60 movi55 $r3,#0x0 | |
| 6806: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 680a: 3e 18 08 f0 addi.gp $r1,#0x8f0 | |
| 680e: 3c 3f ff ee swi.gp $r3,[+#-72] | |
| 6812: ec 04 addi10.sp #0x4 | |
| 6814: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 6818: 48 ff ce 90 j 0x538 ; ringbuf_write() | |
| 681c: 3a 6f a8 bc smw.adm $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 6820: 3e 78 08 f0 addi.gp $r7,#0x8f0 | |
| 6824: 97 80 zeb33 $r6,$r0 | |
| 6826: 81 21 mov55 $r9,$r1 | |
| 6828: 80 07 mov55 $r0,$r7 | |
| 682a: 81 42 mov55 $r10,$r2 | |
| 682c: 84 20 movi55 $r1,#0x0 | |
| 682e: 44 20 00 40 movi $r2,#0x40 | |
| 6832: 54 81 80 ff andi $r8,$r3,#0xff | |
| 6836: 49 00 1c 41 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 683a: 80 87 mov55 $r4,$r7 | |
| 683c: 44 00 00 16 movi $r0,#0x16 | |
| 6840: 18 02 00 01 sbi.bi $r0,[$r4],#0x1 | |
| 6844: 9d fa addi333 $r7,$r7,#0x2 | |
| 6846: 84 00 movi55 $r0,#0x0 | |
| 6848: ae 38 sbi333 $r0,[$r7+#0x0] | |
| 684a: 84 02 movi55 $r0,#0x2 | |
| 684c: af a0 sbi333 $r6,[$r4+#0x0] | |
| 684e: 4c 60 00 09 beq $r6,$r0,0x6860 | |
| 6852: 84 23 movi55 $r1,#0x3 | |
| 6854: 4c 60 80 7c beq $r6,$r1,0x694c | |
| 6858: 84 61 movi55 $r3,#0x1 | |
| 685a: 4c 61 c0 8b bne $r6,$r3,0x6970 | |
| 685e: d5 3d j8 0x68d8 | |
| 6860: 5c f4 00 39 slti $r15,$r8,#0x39 | |
| 6864: 4e f2 00 86 beqz $r15,0x6970 | |
| 6868: 40 64 24 00 add $r6,$r8,$r9 | |
| 686c: 5c f3 01 e1 slti $r15,$r6,#0x1e1 | |
| 6870: 4e f2 00 80 beqz $r15,0x6970 | |
| 6874: 80 2a mov55 $r1,$r10 | |
| 6876: 3e 38 11 48 addi.gp $r3,#0x1148 | |
| 687a: 80 48 mov55 $r2,$r8 | |
| 687c: 40 04 8c 00 add $r0,$r9,$r3 | |
| 6880: 49 00 1c 12 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 6884: 50 83 00 03 addi $r8,$r6,#0x3 | |
| 6888: 84 1c movi55 $r0,#-4 | |
| 688a: 3e 18 11 48 addi.gp $r1,#0x1148 | |
| 688e: 40 94 80 02 and $r9,$r9,$r0 | |
| 6892: 40 84 00 02 and $r8,$r8,$r0 | |
| 6896: 89 01 add45 $r8,$r1 | |
| 6898: 40 64 84 00 add $r6,$r9,$r1 | |
| 689c: e2 c8 slt45 $r6,$r8 | |
| 689e: e8 67 beqzs8 0x696c | |
| 68a0: 44 30 d9 c0 movi $r3,#0xd9c0 | |
| 68a4: 89 23 add45 $r9,$r3 | |
| 68a6: a6 30 lbi333 $r0,[$r6+#0x0] | |
| 68a8: 44 10 00 ff movi $r1,#0xff | |
| 68ac: 4c 00 c0 10 bne $r0,$r1,0x68cc | |
| 68b0: a6 71 lbi333 $r1,[$r6+#0x1] | |
| 68b2: 4c 10 40 0d bne $r1,$r0,0x68cc | |
| 68b6: a6 32 lbi333 $r0,[$r6+#0x2] | |
| 68b8: 4c 00 c0 0a bne $r0,$r1,0x68cc | |
| 68bc: a6 73 lbi333 $r1,[$r6+#0x3] | |
| 68be: 4c 10 40 07 bne $r1,$r0,0x68cc | |
| 68c2: 80 29 mov55 $r1,$r9 | |
| 68c4: 80 06 mov55 $r0,$r6 | |
| 68c6: 84 44 movi55 $r2,#0x4 | |
| 68c8: 49 00 1b ee jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 68cc: 9d b4 addi333 $r6,$r6,#0x4 | |
| 68ce: e2 c8 slt45 $r6,$r8 | |
| 68d0: e8 4e beqzs8 0x696c | |
| 68d2: 8d 24 addi45 $r9,#0x4 | |
| 68d4: 48 ff ff e9 j 0x68a6 | |
| 68d8: 5c f4 00 39 slti $r15,$r8,#0x39 | |
| 68dc: e8 4a beqzs8 0x6970 | |
| 68de: 40 64 24 00 add $r6,$r8,$r9 | |
| 68e2: 5c f3 01 e1 slti $r15,$r6,#0x1e1 | |
| 68e6: e8 45 beqzs8 0x6970 | |
| 68e8: 80 2a mov55 $r1,$r10 | |
| 68ea: 3e 38 13 4c addi.gp $r3,#0x134c | |
| 68ee: 80 48 mov55 $r2,$r8 | |
| 68f0: 40 04 8c 00 add $r0,$r9,$r3 | |
| 68f4: 49 00 1b d8 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 68f8: 50 83 00 03 addi $r8,$r6,#0x3 | |
| 68fc: 84 1c movi55 $r0,#-4 | |
| 68fe: 3e 18 13 4c addi.gp $r1,#0x134c | |
| 6902: 40 94 80 02 and $r9,$r9,$r0 | |
| 6906: 40 84 00 02 and $r8,$r8,$r0 | |
| 690a: 89 01 add45 $r8,$r1 | |
| 690c: 40 64 84 00 add $r6,$r9,$r1 | |
| 6910: e2 c8 slt45 $r6,$r8 | |
| 6912: e8 2d beqzs8 0x696c | |
| 6914: 44 30 d7 e0 movi $r3,#0xd7e0 | |
| 6918: 89 23 add45 $r9,$r3 | |
| 691a: a6 30 lbi333 $r0,[$r6+#0x0] | |
| 691c: 44 10 00 ff movi $r1,#0xff | |
| 6920: 4c 00 c0 10 bne $r0,$r1,0x6940 | |
| 6924: a6 71 lbi333 $r1,[$r6+#0x1] | |
| 6926: 4c 10 40 0d bne $r1,$r0,0x6940 | |
| 692a: a6 32 lbi333 $r0,[$r6+#0x2] | |
| 692c: 4c 00 c0 0a bne $r0,$r1,0x6940 | |
| 6930: a6 73 lbi333 $r1,[$r6+#0x3] | |
| 6932: 4c 10 40 07 bne $r1,$r0,0x6940 | |
| 6936: 80 29 mov55 $r1,$r9 | |
| 6938: 80 06 mov55 $r0,$r6 | |
| 693a: 84 44 movi55 $r2,#0x4 | |
| 693c: 49 00 1b b4 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 6940: 9d b4 addi333 $r6,$r6,#0x4 | |
| 6942: e2 c8 slt45 $r6,$r8 | |
| 6944: e8 14 beqzs8 0x696c | |
| 6946: 8d 24 addi45 $r9,#0x4 | |
| 6948: 48 ff ff e9 j 0x691a | |
| 694c: 5c f4 00 39 slti $r15,$r8,#0x39 | |
| 6950: e8 10 beqzs8 0x6970 | |
| 6952: 40 04 24 00 add $r0,$r8,$r9 | |
| 6956: 5c f0 00 79 slti $r15,$r0,#0x79 | |
| 695a: e8 0b beqzs8 0x6970 | |
| 695c: 3e 38 10 d0 addi.gp $r3,#0x10d0 | |
| 6960: 40 04 8c 00 add $r0,$r9,$r3 | |
| 6964: 80 2a mov55 $r1,$r10 | |
| 6966: 80 48 mov55 $r2,$r8 | |
| 6968: 49 00 1b 9e jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 696c: 84 01 movi55 $r0,#0x1 | |
| 696e: ae 38 sbi333 $r0,[$r7+#0x0] | |
| 6970: 3e 08 08 f0 addi.gp $r0,#0x8f0 | |
| 6974: 49 ff fc 8c jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 6978: 46 20 01 00 sethi $r2,#0x100 | |
| 697c: 84 60 movi55 $r3,#0x0 | |
| 697e: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 6982: 3e 18 08 f0 addi.gp $r1,#0x8f0 | |
| 6986: 3c 3f ff ee swi.gp $r3,[+#-72] | |
| 698a: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 698e: 48 ff cd d5 j 0x538 ; ringbuf_write() | |
| 6992: 92 00 nop16 | |
| ; ---------- 0x6994: handle_command_15(subcmd=$r0, packet_data=$r1) | |
| 6994: 3a 6f a0 bc smw.adm $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 6998: 3e 78 08 f0 addi.gp $r7,#0x8f0 | |
| 699c: 97 80 zeb33 $r6,$r0 | |
| 699e: 44 20 00 40 movi $r2,#0x40 | |
| 69a2: 80 07 mov55 $r0,$r7 | |
| 69a4: 81 01 mov55 $r8,$r1 | |
| 69a6: 84 20 movi55 $r1,#0x0 | |
| 69a8: 49 00 1b 88 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 69ac: 80 47 mov55 $r2,$r7 | |
| 69ae: 44 00 00 15 movi $r0,#0x15 | |
| 69b2: 18 01 00 01 sbi.bi $r0,[$r2],#0x1 | |
| 69b6: 9d fa addi333 $r7,$r7,#0x2 | |
| 69b8: 84 00 movi55 $r0,#0x0 | |
| 69ba: ae 38 sbi333 $r0,[$r7+#0x0] | |
| 69bc: 84 02 movi55 $r0,#0x2 | |
| 69be: af 90 sbi333 $r6,[$r2+#0x0] | |
| 69c0: 4c 60 00 47 beq $r6,$r0,0x6a4e | |
| 69c4: 84 63 movi55 $r3,#0x3 | |
| 69c6: 4c 61 80 4f beq $r6,$r3,0x6a64 | |
| 69ca: 84 01 movi55 $r0,#0x1 | |
| 69cc: 4c 60 40 58 bne $r6,$r0,0x6a7c | |
| 69d0: 3e 08 0b 2c addi.gp $r0,#0xb2c | |
| 69d4: 84 20 movi55 $r1,#0x0 | |
| 69d6: b6 20 swi450 $r1,[$r0] | |
| 69d8: ac 42 shi333 $r1,[$r0+#0x4] | |
| 69da: 80 28 mov55 $r1,$r8 | |
| 69dc: 08 30 80 01 lbi.bi $r3,[$r1],#0x1 | |
| 69e0: a7 00 lbi333 $r4,[$r0+#0x0] | |
| 69e2: 80 40 mov55 $r2,$r0 | |
| 69e4: 40 31 90 04 or $r3,$r3,$r4 | |
| 69e8: 18 31 00 01 sbi.bi $r3,[$r2],#0x1 | |
| 69ec: a6 c8 lbi333 $r3,[$r1+#0x0] | |
| 69ee: ae d0 sbi333 $r3,[$r2+#0x0] | |
| 69f0: 20 10 80 00 lbsi $r1,[$r1+#0x0] | |
| 69f4: 4e 15 00 05 bltz $r1,0x69fe | |
| 69f8: 9c 02 addi333 $r0,$r0,#0x2 | |
| 69fa: a6 80 lbi333 $r2,[$r0+#0x0] | |
| 69fc: d5 07 j8 0x6a0a | |
| 69fe: 9c 02 addi333 $r0,$r0,#0x2 | |
| 6a00: a6 80 lbi333 $r2,[$r0+#0x0] | |
| 6a02: 58 21 00 0f ori $r2,$r2,#0xf | |
| 6a06: 96 90 zeb33 $r2,$r2 | |
| 6a08: ae 80 sbi333 $r2,[$r0+#0x0] | |
| 6a0a: 8d 02 addi45 $r8,#0x2 | |
| 6a0c: 00 34 00 00 lbi $r3,[$r8+#0x0] | |
| 6a10: 94 dc slli333 $r3,$r3,#0x4 | |
| 6a12: 40 21 0c 04 or $r2,$r2,$r3 | |
| 6a16: ae 80 sbi333 $r2,[$r0+#0x0] | |
| 6a18: 3e 18 0b 2f addi.gp $r1,#0xb2f | |
| 6a1c: 00 04 00 00 lbi $r0,[$r8+#0x0] | |
| 6a20: a6 88 lbi333 $r2,[$r1+#0x0] | |
| 6a22: 92 04 srli45 $r0,#0x4 | |
| 6a24: 40 00 08 04 or $r0,$r0,$r2 | |
| 6a28: ae 08 sbi333 $r0,[$r1+#0x0] | |
| 6a2a: 20 24 00 00 lbsi $r2,[$r8+#0x0] | |
| 6a2e: 4e 24 00 05 bgez $r2,0x6a38 | |
| 6a32: 58 00 00 f0 ori $r0,$r0,#0xf0 | |
| 6a36: ae 08 sbi333 $r0,[$r1+#0x0] | |
| 6a38: 3e 18 0b 30 addi.gp $r1,#0xb30 | |
| 6a3c: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 | |
| 6a40: 84 40 movi55 $r2,#0x0 | |
| 6a42: 84 01 movi55 $r0,#0x1 | |
| 6a44: ae 88 sbi333 $r2,[$r1+#0x0] | |
| 6a46: ae 38 sbi333 $r0,[$r7+#0x0] | |
| 6a48: 3e 07 ff f7 sbi.gp $r0,[+#-9] | |
| 6a4c: d5 18 j8 0x6a7c | |
| 6a4e: 80 28 mov55 $r1,$r8 | |
| 6a50: 3e 08 0b 04 addi.gp $r0,#0xb04 | |
| 6a54: 84 45 movi55 $r2,#0x5 | |
| 6a56: 49 00 1b 27 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 6a5a: 84 01 movi55 $r0,#0x1 | |
| 6a5c: ae 38 sbi333 $r0,[$r7+#0x0] | |
| 6a5e: 3e 07 ff f8 sbi.gp $r0,[+#-8] | |
| 6a62: d5 0d j8 0x6a7c | |
| 6a64: 00 04 00 00 lbi $r0,[$r8+#0x0] | |
| 6a68: c0 06 beqz38 $r0,0x6a74 | |
| 6a6a: 44 10 00 01 movi $r1,#0x1 | |
| 6a6e: 3e 17 ff f5 sbi.gp $r1,[+#-11] | |
| 6a72: d5 03 j8 0x6a78 | |
| 6a74: 3e 07 ff f5 sbi.gp $r0,[+#-11] | |
| 6a78: 84 01 movi55 $r0,#0x1 | |
| 6a7a: ae 38 sbi333 $r0,[$r7+#0x0] | |
| 6a7c: 3e 08 08 f0 addi.gp $r0,#0x8f0 | |
| 6a80: 49 ff fc 06 jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 6a84: 46 20 01 00 sethi $r2,#0x100 | |
| 6a88: 84 60 movi55 $r3,#0x0 | |
| 6a8a: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 6a8e: 3e 18 08 f0 addi.gp $r1,#0x8f0 | |
| 6a92: 3c 3f ff ee swi.gp $r3,[+#-72] ; packet_in_progress = 0 | |
| 6a96: 3a 6f a0 84 lmw.bim $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 6a9a: 48 ff cd 4f j 0x538 ; ringbuf_write() | |
| 6a9e: 92 00 nop16 | |
| ; ----------- 0x6aa0: handle_command_4(subcmd=$r0, offset=$r1, size=$r2) | |
| 6aa0: 3a 6f a8 bc smw.adm $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 6aa4: 3e 68 08 f0 addi.gp $r6,#0x8f0 ; $r6 = replypacket | |
| 6aa8: 97 c0 zeb33 $r7,$r0 ; $r7 = subcmd | |
| 6aaa: 81 01 mov55 $r8,$r1 ; $r8 = offset | |
| 6aac: 54 91 00 ff andi $r9,$r2,#0xff ; $r9 = size | |
| 6ab0: 84 20 movi55 $r1,#0x0 ; memset byte = 0x00 | |
| 6ab2: 80 06 mov55 $r0,$r6 ; memset dest = replypacket | |
| 6ab4: 44 20 00 40 movi $r2,#0x40 ; memset size = 0x40 | |
| 6ab8: 49 00 1b 00 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 6abc: 80 06 mov55 $r0,$r6 | |
| 6abe: 84 24 movi55 $r1,#0x4 | |
| 6ac0: 18 10 00 01 sbi.bi $r1,[$r0],#0x1 ; replypacket[0] = 4 | |
| 6ac4: af c0 sbi333 $r7,[$r0+#0x0] ; replypacket[1] = subcmd | |
| 6ac6: 84 02 movi55 $r0,#0x2 | |
| 6ac8: 4c 70 00 1a beq $r7,$r0,0x6afc ; if subcmd == 2: goto CMD4_SUB2 | |
| 6acc: e6 e3 slti45 $r7,#0x3 | |
| 6ace: e8 05 beqzs8 0x6ad8 ; if subcmd >= 3: goto CMD4_SUBHIGH | |
| 6ad0: 84 41 movi55 $r2,#0x1 | |
| 6ad2: 4c 71 40 6b bne $r7,$r2,0x6ba8 ; if subcmd != 1: goto CMD4_FINISH | |
| 6ad6: d5 09 j8 0x6ae8 ; goto CMD4_SUB1 | |
| ; label CMD4_SUBHIGH | |
| 6ad8: 84 03 movi55 $r0,#0x3 | |
| 6ada: 4c 70 00 31 beq $r7,$r0,0x6b3c ; if subcmd == 3: goto CMD4_SUB3 | |
| 6ade: 84 44 movi55 $r2,#0x4 | |
| 6ae0: 4c 71 40 64 bne $r7,$r2,0x6ba8 ; if subcmd != 4: goto CMD4_FINISH | |
| 6ae4: 48 00 00 44 j 0x6b6c ; goto CMD4_SUB4 | |
| ; label CMD4_SUB1: | |
| 6ae8: 40 04 a0 00 add $r0,$r9,$r8 ; $r0 = offset + size | |
| 6aec: 5c f0 02 01 slti $r15,$r0,#0x201 ; | |
| 6af0: e8 5c beqzs8 0x6ba8 ; if (offset+size) > 0x200: goto CMD4_FINISH | |
| 6af2: 50 03 00 08 addi $r0,$r6,#0x8 ; memcpy dest = replypacket+8 | |
| 6af6: 3e 28 15 2c addi.gp $r2,#0x152c ; memcpy base = $r2 = $gp+0x152c | |
| 6afa: d5 2b j8 0x6b50 ; goto CMD4_MEMCPY | |
| ; label CMD4_SUB2: | |
| 6afc: 40 04 a0 00 add $r0,$r9,$r8 | |
| 6b00: 5c f0 02 01 slti $r15,$r0,#0x201 | |
| 6b04: e8 52 beqzs8 0x6ba8 ; if (offset+size) > 0x200: goto CMD4_FINISH | |
| 6b06: 3e 08 15 2c addi.gp $r0,#0x152c ; $r0 = $gp+0x152c | |
| 6b0a: 40 74 00 00 add $r7,$r8,$r0 ; $r7 = $gp+0x152c+offset | |
| 6b0e: 40 34 20 09 srli $r3,$r8,#0x8 ; $r3 = offset >> 8 | |
| 6b12: 84 20 movi55 $r1,#0x0 ; memset byte = 0x00 | |
| 6b14: 80 49 mov55 $r2,$r9 ; memset size = size | |
| 6b16: 80 07 mov55 $r0,$r7 ; memset dest = $gp+0x152c+offset | |
| 6b18: ae f3 sbi333 $r3,[$r6+#0x3] ; replypacket[3] = offset.hi | |
| 6b1a: 10 83 00 02 sbi $r8,[$r6+#0x2] ; replypacket[2] = offset.lo | |
| 6b1e: 10 93 00 05 sbi $r9,[$r6+#0x5] ; replypacket[5] = size | |
| 6b22: 49 00 1a cb jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 6b26: 80 27 mov55 $r1,$r7 ; memcpy src = $gp+0x152c+offset | |
| 6b28: 50 03 00 08 addi $r0,$r6,#0x8 ; memcpy dest = replypacket+8 | |
| 6b2c: 50 24 80 00 addi $r2,$r9,#0x0 ; memcpy size = size | |
| 6b30: 49 00 1a ba jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 6b34: 84 21 movi55 $r1,#0x1 ; | |
| 6b36: 3e 17 ff e0 sbi.gp $r1,[+#-32] ; [$gp-32] = 1 | |
| 6b3a: d5 37 j8 0x6ba8 ; goto CMD4_FINISH | |
| ; label CMD4_SUB3: | |
| 6b3c: 40 04 a0 00 add $r0,$r9,$r8 | |
| 6b40: 5c f0 00 81 slti $r15,$r0,#0x81 | |
| 6b44: 4e f2 00 32 beqz $r15,0x6ba8 ; if (offset+size) > 0x80: goto CMD4_FINISH | |
| 6b48: 50 03 00 08 addi $r0,$r6,#0x8 ; memcpy dest = replypacket+8 | |
| 6b4c: 3e 28 06 60 addi.gp $r2,#0x660 ; memcpy base = $gp+0x660 | |
| ; label CMD4_MEMCPY: | |
| 6b50: 40 14 08 00 add $r1,$r8,$r2 ; memcpy src = $r2 + offset | |
| 6b54: 40 34 20 09 srli $r3,$r8,#0x8 ; | |
| 6b58: 80 49 mov55 $r2,$r9 ; memcpy size = size | |
| 6b5a: ae f3 sbi333 $r3,[$r6+#0x3] ; replypacket[3] = offset.hi | |
| 6b5c: 10 83 00 02 sbi $r8,[$r6+#0x2] ; replypacket[2] = offset.lo | |
| 6b60: 10 93 00 05 sbi $r9,[$r6+#0x5] ; replypacket[5] = size | |
| 6b64: 49 00 1a a0 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 6b68: 48 00 00 20 j 0x6ba8 ; goto CMD4_FINISH | |
| ; label CMD4_SUB4 | |
| 6b6c: 40 04 a0 00 add $r0,$r9,$r8 | |
| 6b70: 5c f0 00 81 slti $r15,$r0,#0x81 | |
| 6b74: e8 1a beqzs8 0x6ba8 ; if (offset+size) > 0x80: goto CMD4_FINISH | |
| 6b76: 3e 08 06 60 addi.gp $r0,#0x660 ; $r0 = $gp+0x660 | |
| 6b7a: 40 74 00 00 add $r7,$r8,$r0 ; $r7 = $gp+0x660+offset | |
| 6b7e: 40 34 20 09 srli $r3,$r8,#0x8 ; | |
| 6b82: 84 20 movi55 $r1,#0x0 ; memset byte = 0x00 | |
| 6b84: 80 49 mov55 $r2,$r9 ; memset size = size | |
| 6b86: 80 07 mov55 $r0,$r7 ; memset dest = $r7 | |
| 6b88: ae f3 sbi333 $r3,[$r6+#0x3] ; replypacket[3] = offset.hi | |
| 6b8a: 10 83 00 02 sbi $r8,[$r6+#0x2] ; replypacket[2] = offset.lo | |
| 6b8e: 10 93 00 05 sbi $r9,[$r6+#0x5] ; replypacket[5] = size | |
| 6b92: 49 00 1a 93 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 6b96: 80 27 mov55 $r1,$r7 ; memcpy src = $r7 | |
| 6b98: 50 03 00 08 addi $r0,$r6,#0x8 ; memcpy dest = replypacket+8 | |
| 6b9c: 80 49 mov55 $r2,$r9 ; memcpy size = size | |
| 6b9e: 49 00 1a 83 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 6ba2: 84 21 movi55 $r1,#0x1 | |
| 6ba4: 3e 17 ff e1 sbi.gp $r1,[+#-31] ; [$gp-31] = 1 | |
| ; label CMD4_FINISH: | |
| 6ba8: 3e 08 08 f0 addi.gp $r0,#0x8f0 | |
| 6bac: 49 ff fb 70 jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 6bb0: 46 20 01 00 sethi $r2,#0x100 | |
| 6bb4: 84 60 movi55 $r3,#0x0 | |
| 6bb6: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 6bba: 3e 18 08 f0 addi.gp $r1,#0x8f0 | |
| 6bbe: 3c 3f ff ee swi.gp $r3,[+#-72] ; packet_in_progress = 0 | |
| 6bc2: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 6bc6: 48 ff cc b9 j 0x538 ; ringbuf_write(ringbuf, replypkt) | |
| 6bca: 92 00 nop16 | |
| ; ----------- 0x6bcc: handle_command_c() | |
| 6bcc: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 6bd0: 3e 68 08 f0 addi.gp $r6,#0x8f0 | |
| 6bd4: 84 81 movi55 $r4,#0x1 | |
| 6bd6: 94 a6 slli333 $r2,$r4,#0x6 | |
| 6bd8: 3e 47 ff eb sbi.gp $r4,[+#-21] | |
| 6bdc: 84 20 movi55 $r1,#0x0 | |
| 6bde: 44 40 0b b8 movi $r4,#0xbb8 | |
| 6be2: 80 06 mov55 $r0,$r6 | |
| 6be4: 3c 4b ff ec shi.gp $r4,[+#-40] | |
| 6be8: 49 00 1a 68 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 6bec: 80 06 mov55 $r0,$r6 | |
| 6bee: 84 2c movi55 $r1,#0xc | |
| 6bf0: 10 13 00 00 sbi $r1,[$r6+#0x0] | |
| 6bf4: 49 ff fb 4c jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 6bf8: 46 20 01 00 sethi $r2,#0x100 | |
| 6bfc: 84 60 movi55 $r3,#0x0 | |
| 6bfe: 80 26 mov55 $r1,$r6 | |
| 6c00: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 6c04: 3c 3f ff ee swi.gp $r3,[+#-72] | |
| 6c08: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 6c0c: 48 ff cc 96 j 0x538 ; ringbuf_write() | |
| ; ----------- 0x6c10: handle_command_b(subcmd=$r0) | |
| 6c10: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6c14: ef fc addi10.sp #-4 | |
| 6c16: 96 80 zeb33 $r2,$r0 | |
| 6c18: 9e 11 subi333 $r0,$r2,#0x1 | |
| 6c1a: 96 00 zeb33 $r0,$r0 | |
| 6c1c: 5c f0 00 05 slti $r15,$r0,#0x5 | |
| 6c20: e9 02 bnezs8 0x6c24 | |
| 6c22: d5 0b j8 0x6c38 | |
| 6c24: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 6c28: 80 22 mov55 $r1,$r2 | |
| 6c2a: 3e 27 ff ea sbi.gp $r2,[+#-22] | |
| 6c2e: 49 ff e9 87 jal 0x3f3c | |
| 6c32: 84 21 movi55 $r1,#0x1 | |
| 6c34: 3e 17 ff de sbi.gp $r1,[+#-34] | |
| 6c38: 3e 68 08 f0 addi.gp $r6,#0x8f0 | |
| 6c3c: 44 20 00 40 movi $r2,#0x40 | |
| 6c40: 84 20 movi55 $r1,#0x0 | |
| 6c42: 80 06 mov55 $r0,$r6 | |
| 6c44: 49 00 1a 3a jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 6c48: 80 26 mov55 $r1,$r6 | |
| 6c4a: 84 0b movi55 $r0,#0xb | |
| 6c4c: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 | |
| 6c50: 80 06 mov55 $r0,$r6 | |
| 6c52: 2e 77 ff ea lbi.gp $r7,[+#-22] | |
| 6c56: af c8 sbi333 $r7,[$r1+#0x0] | |
| 6c58: 49 ff fb 1a jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 6c5c: 46 20 01 00 sethi $r2,#0x100 | |
| 6c60: 84 60 movi55 $r3,#0x0 | |
| 6c62: 80 26 mov55 $r1,$r6 | |
| 6c64: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 6c68: 3c 3f ff ee swi.gp $r3,[+#-72] ; packet_in_progress = 0 | |
| 6c6c: ec 04 addi10.sp #0x4 | |
| 6c6e: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6c72: 48 ff cc 63 j 0x538 ; ringbuf_write() | |
| 6c76: 92 00 nop16 | |
| ; ----------- 0x6c78: handle_reboot_cmd(subcmd=$r0) | |
| 6c78: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6c7c: ef fc addi10.sp #-4 | |
| 6c7e: 3e 78 08 f0 addi.gp $r7,#0x8f0 ; $r7 = $gp+0x8f0 (replypkt) | |
| 6c82: 97 80 zeb33 $r6,$r0 ; $r6 = subcmd | |
| 6c84: 84 20 movi55 $r1,#0x0 ; memset byte = 0x00 | |
| 6c86: 80 07 mov55 $r0,$r7 ; memset dest = $gp+0x8f0 | |
| 6c88: 44 20 00 40 movi $r2,#0x40 ; memset size = 0x40 | |
| 6c8c: 49 00 1a 16 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 6c90: 80 27 mov55 $r1,$r7 ; $r1 = replypkt | |
| 6c92: 84 03 movi55 $r0,#0x3 ; | |
| 6c94: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 ; *replypkt++ = 3 | |
| 6c98: 9e 31 subi333 $r0,$r6,#0x1 ; $r0 = subcmd-1 | |
| 6c9a: 9d fa addi333 $r7,$r7,#0x2 ; $r7 = replypkt+2 | |
| 6c9c: af 88 sbi333 $r6,[$r1+#0x0] ; *replypkt++ = subcmd | |
| 6c9e: 96 00 zeb33 $r0,$r0 ; | |
| 6ca0: 84 20 movi55 $r1,#0x0 ; | |
| 6ca2: ae 78 sbi333 $r1,[$r7+#0x0] ; replypkt[2] = 0 | |
| 6ca4: e6 03 slti45 $r0,#0x3 ; | |
| 6ca6: e8 03 beqzs8 0x6cac ; if subcmd <= 3: | |
| 6ca8: 84 01 movi55 $r0,#0x1 ; | |
| 6caa: ae 38 sbi333 $r0,[$r7+#0x0] ; replypkt[2] = 1 | |
| 6cac: 3e 08 08 f0 addi.gp $r0,#0x8f0 ; | |
| 6cb0: 49 ff fa ee jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 6cb4: 46 20 01 00 sethi $r2,#0x100 | |
| 6cb8: 44 30 00 00 movi $r3,#0x0 | |
| 6cbc: 3e 18 08 f0 addi.gp $r1,#0x8f0 | |
| 6cc0: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 6cc4: 3c 3f ff ee swi.gp $r3,[+#-72] | |
| 6cc8: 49 ff cc 38 jal 0x538 ; ringbuf_write(ringbuf, replypkt) | |
| 6ccc: 49 ff f7 be jal 0x5c48 ; usb_tx_queued() | |
| 6cd0: 84 02 movi55 $r0,#0x2 | |
| 6cd2: 4c 60 00 11 beq $r6,$r0,0x6cf4 ; if subcmd == 2: goto REBOOT_MODE2 | |
| 6cd6: 84 03 movi55 $r0,#0x3 | |
| 6cd8: 4c 60 00 18 beq $r6,$r0,0x6d08 ; if subcmd == 3: goto REBOOT_MODE3 | |
| 6cdc: 84 01 movi55 $r0,#0x1 | |
| 6cde: 4c 60 40 1e bne $r6,$r0,0x6d1a ; if subcmd != 1: goto REBOOT_FAIL | |
| 6ce2: 46 04 24 d4 sethi $r0,#0x424d4 ; else: | |
| ; label REBOOT_MODE1: | |
| 6ce6: 58 00 01 50 ori $r0,$r0,#0x150 ; 42 4d 41 50: "BMAP" - Boot Mode APplication? | |
| 6cea: ec 04 addi10.sp #0x4 | |
| 6cec: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6cf0: 48 ff cb c6 j 0x47c ; return check_magic_and_reset("BMAP") | |
| ; label REBOOT_MODE2: | |
| 6cf4: 46 04 24 d4 sethi $r0,#0x424d4 | |
| 6cf8: 58 00 09 41 ori $r0,$r0,#0x941 ; 42 4d 49 41: "BMIA" - Boot Mode In-App (programmer)? | |
| 6cfc: 51 ff 80 04 addi $sp,$sp,#0x4 | |
| 6d00: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6d04: 48 ff cb bc j 0x47c ; return check_magic_and_reset("BMIA") | |
| ; label REBOOT_MODE3: | |
| 6d08: 46 04 24 d4 sethi $r0,#0x424d4 | |
| 6d0c: 58 00 09 53 ori $r0,$r0,#0x953 ; 42 4d 49 53: "BMIS" - Boot Mode In-System (programmer)? | |
| 6d10: ec 04 addi10.sp #0x4 | |
| 6d12: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6d16: 48 ff cb b3 j 0x47c ; return check_magic_and_reset("BMIS") | |
| ; label REBOOT_FAIL: | |
| 6d1a: ec 04 addi10.sp #0x4 | |
| 6d1c: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6d20: dd 9e ret5 $lp | |
| 6d22: 92 00 nop16 | |
| ; ----------- 0x6d24: handle_info_command(cmd=$r0) | |
| 6d24: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6d28: ef fc addi10.sp #-4 | |
| 6d2a: 3e 68 08 f0 addi.gp $r6,#0x8f0 ; $r6 = $gp+0x8f0 (replypacket) | |
| 6d2e: 97 c0 zeb33 $r7,$r0 ; $r7 = cmd | |
| 6d30: 84 20 movi55 $r1,#0x0 ; memset byte = 0 | |
| 6d32: 80 06 mov55 $r0,$r6 ; memset dest = replypacket | |
| 6d34: 44 20 00 40 movi $r2,#0x40 ; memset size = 0x40 | |
| 6d38: 49 00 19 c0 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 6d3c: 80 06 mov55 $r0,$r6 ; $r0 = replypacket | |
| 6d3e: 84 81 movi55 $r4,#0x1 ; $r4 = 1 | |
| 6d40: 18 40 00 01 sbi.bi $r4,[$r0],#0x1 ; replypacket[0] = 1 | |
| 6d44: 9c f2 addi333 $r3,$r6,#0x2 ; $r3 = replypacket+2 | |
| 6d46: af c0 sbi333 $r7,[$r0+#0x0] ; replypacket[1] = subcmd | |
| 6d48: 84 00 movi55 $r0,#0x0 ; | |
| 6d4a: ae 18 sbi333 $r0,[$r3+#0x0] ; replypacket[2] = 0 | |
| 6d4c: 84 02 movi55 $r0,#0x2 ; | |
| 6d4e: 4c 70 00 23 beq $r7,$r0,0x6d94 ; if subcmd == 2: goto INFO_SUBCMD_2 | |
| 6d52: e6 e3 slti45 $r7,#0x3 ; | |
| 6d54: e8 05 beqzs8 0x6d5e ; if subcmd >= 3: goto INFO_SUBCMD_HIGH | |
| 6d56: 84 01 movi55 $r0,#0x1 | |
| 6d58: 4c 70 40 38 bne $r7,$r0,0x6dc8 ; if subcmd != 1: goto INFO_FINALIZE | |
| 6d5c: d5 08 j8 0x6d6c ; goto INFO_SUBCMD_1 | |
| ; label INFO_SUBCMD_HIGH: | |
| 6d5e: 84 08 movi55 $r0,#0x8 ; | |
| 6d60: 4c 70 00 24 beq $r7,$r0,0x6da8 ; if subcmd == 8: goto INFO_SUBCMD_8 | |
| 6d64: 84 09 movi55 $r0,#0x9 ; | |
| 6d66: 4c 70 40 31 bne $r7,$r0,0x6dc8 ; if subcmd != 9: goto INFO_FINALIZE | |
| 6d6a: d5 28 j8 0x6dba ; goto INFO_SUBCMD_9 | |
| ; label INFO_SUBCMD_1: ; Amazingly, it constructs the reply one byte at a time.. | |
| 6d6c: 44 00 00 39 movi $r0,#0x39 ; | |
| 6d70: 10 03 00 09 sbi $r0,[$r6+#0x9] ; replypacket[9] = 0x39 | |
| 6d74: 94 24 slli333 $r0,$r4,#0x4 | |
| 6d76: 10 03 00 0a sbi $r0,[$r6+#0xa] ; replypacket[10] = 0x10 | |
| 6d7a: 84 02 movi55 $r0,#0x2 | |
| 6d7c: 10 03 00 0b sbi $r0,[$r6+#0xb] ; replypacket[11] = 2 | |
| 6d80: 84 09 movi55 $r0,#0x9 | |
| 6d82: 10 73 00 0d sbi $r7,[$r6+#0xd] ; replypacket[13] = 1 | |
| 6d86: af d8 sbi333 $r7,[$r3+#0x0] ; replypacket[2] = 1 | |
| 6d88: 10 03 00 0c sbi $r0,[$r6+#0xc] ; replypacket[12] = 9 | |
| 6d8c: 10 73 00 08 sbi $r7,[$r6+#0x8] ; replypacket[8] = 1 | |
| 6d90: 48 00 00 1c j 0x6dc8 ; goto INFO_FINALIZE | |
| ; (result: 01 39 10 02 09 01) | |
| ; label INFO_SUBCMD_2: | |
| 6d94: 3c 1d ff d9 lwi.gp $r1,[+#-156] ; memcpy src = [$gp-156] | |
| 6d98: af 18 sbi333 $r4,[$r3+#0x0] ; replypacket[2] = 1 | |
| 6d9a: 50 03 00 08 addi $r0,$r6,#0x8 ; memcpy dest = replypacket[8] | |
| 6d9e: 84 48 movi55 $r2,#0x8 ; memcpy size = 0x8 | |
| 6da0: 49 00 19 82 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 6da4: 48 00 00 12 j 0x6dc8 ; goto INFO_FINALIZE | |
| ; label INFO_SUBCMD_8: | |
| 6da8: 3c 1d ff d8 lwi.gp $r1,[+#-160] ; memcpy src = [$gp-160] | |
| 6dac: af 18 sbi333 $r4,[$r3+#0x0] ; replypacket[2] = 1 | |
| 6dae: 50 03 00 08 addi $r0,$r6,#0x8 ; memcpy dest = replypacket[8] | |
| 6db2: 80 47 mov55 $r2,$r7 ; memcpy size = subcmd (8!) | |
| 6db4: 49 00 19 78 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 6db8: d5 08 j8 0x6dc8 ; goto INFO_FINALIZE | |
| ; label INFO_SUBCMD_9: | |
| 6dba: 84 08 movi55 $r0,#0x8 ; | |
| 6dbc: 10 03 00 09 sbi $r0,[$r6+#0x9] ; replypacket[9] = 0x8 | |
| 6dc0: 84 0f movi55 $r0,#0xf ; | |
| 6dc2: af 18 sbi333 $r4,[$r3+#0x0] ; replypacket[2] = 1 | |
| 6dc4: 10 03 00 08 sbi $r0,[$r6+#0x8] ; replypacket[8] = 0xf | |
| ; label INFO_FINALIZE: | |
| 6dc8: 3e 08 08 f0 addi.gp $r0,#0x8f0 | |
| 6dcc: 49 ff fa 60 jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 6dd0: 46 20 01 00 sethi $r2,#0x100 | |
| 6dd4: 84 60 movi55 $r3,#0x0 | |
| 6dd6: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 6dda: 3e 18 08 f0 addi.gp $r1,#0x8f0 | |
| 6dde: 3c 3f ff ee swi.gp $r3,[+#-72] ; packet_in_progress = 0 | |
| 6de2: ec 04 addi10.sp #0x4 | |
| 6de4: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 6de8: 48 ff cb a8 j 0x538 ; ringbuf_write() | |
| ; ---------- 0x6dec: mainloop_6dec - command packet handler, yasssss | |
| 6dec: 3a 6f a4 bc smw.adm $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 6df0: ef fc addi10.sp #-4 | |
| 6df2: 3c 63 ff ec lhi.gp $r6,[+#-40] ; $r6 = [$gp-40] | |
| 6df6: ce 27 bnez38 $r6,0x6e44 ; if [$gp-40] != 0: | |
| 6df8: 2e 07 ff ea lbi.gp $r0,[+#-22] ; | |
| 6dfc: 3e 67 ff eb sbi.gp $r6,[+#-21] ; [$gp-21] = [$gp-40] | |
| 6e00: 84 25 movi55 $r1,#0x5 ; | |
| 6e02: 4c 00 c0 21 bne $r0,$r1,0x6e44 ; if [$gp-22] != 5: (feel like this is a EAGAIN type error) | |
| 6e06: 3e 88 08 f0 addi.gp $r8,#0x8f0 ; $r8 = replypkt | |
| 6e0a: 85 21 movi55 $r9,#0x1 ; $r9 = 1 | |
| 6e0c: 84 21 movi55 $r1,#0x1 ; $r1 = 1 | |
| 6e0e: 3e 97 ff ea sbi.gp $r9,[+#-22] ; [$gp-22] = 1 | |
| 6e12: 49 ff e8 95 jal 0x3f3c ; func_3f3c([$gp-40], 1) | |
| 6e16: 80 26 mov55 $r1,$r6 ; memset byte = [$gp-40] | |
| 6e18: 40 24 98 08 slli $r2,$r9,#0x6 ; memset size = $r9 * 0x40 | |
| 6e1c: 80 08 mov55 $r0,$r8 ; memset dest = replypkt | |
| 6e1e: 3e 97 ff de sbi.gp $r9,[+#-34] ; [$gp-34] = 1 | |
| 6e22: 49 00 19 4b jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 6e26: 80 28 mov55 $r1,$r8 ; $r1 = replypkt | |
| 6e28: 84 0b movi55 $r0,#0xb ; $r0 = 0xb | |
| 6e2a: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 ; replypkt[0] = 0xb | |
| 6e2e: 80 08 mov55 $r0,$r8 ; $r0 = replypkt | |
| 6e30: 2e 77 ff ea lbi.gp $r7,[+#-22] ; $r7 = [$gp-22] | |
| 6e34: af c8 sbi333 $r7,[$r1+#0x0] ; replypkt[1] = [$gp-22] | |
| 6e36: 49 ff fa 2b jal 0x628c ; add_packet_crc(pkt=replypkt) | |
| 6e3a: 80 28 mov55 $r1,$r8 ; $r1 = replypkt | |
| 6e3c: 3e 08 09 c0 addi.gp $r0,#0x9c0 ; $r0 = ringbuf | |
| 6e40: 49 ff cb 7c jal 0x538 ; ringbuf_write(ringbuf, replypkt) | |
| 6e44: 46 10 01 00 sethi $r1,#0x100 ; endif (ps why is this sethi here??) | |
| 6e48: 3c 0d ff ee lwi.gp $r0,[+#-72] ; $r0 = [$gp-72] (packet_in_progress) | |
| 6e4c: 84 41 movi55 $r2,#0x1 ; | |
| 6e4e: 4c 01 41 2c bne $r0,$r2,0x70a6 ; if packet_in_progress != 1: goto mainloop_6dec_out | |
| 6e52: 3e 48 0b 34 addi.gp $r4,#0xb34 ; $r4 = $gp+0xb34, validpkt | |
| 6e56: a6 20 lbi333 $r0,[$r4+#0x0] ; $r0 = validpkt[0] (cmd) | |
| 6e58: 8c 59 addi45 $r2,#0x19 ; $r2 = 0x1a | |
| 6e5a: 4c 01 00 9f beq $r0,$r2,0x6f98 ; if cmd == 0x1a: goto CMD_EQ_1A | |
| 6e5e: e6 1b slti45 $r0,#0x1b ; | |
| 6e60: e8 20 beqzs8 0x6ea0 ; if cmd >= 0x1b: goto CMD_HIGH | |
| 6e62: 84 4b movi55 $r2,#0xb ; | |
| 6e64: 4c 01 00 4b beq $r0,$r2,0x6efa ; if cmd == 0xb: goto CMD_EQ_B | |
| 6e68: e6 0c slti45 $r0,#0xc ; | |
| 6e6a: e8 0b beqzs8 0x6e80 ; if cmd >= 0xc: goto CMD_GE_C | |
| 6e6c: 84 23 movi55 $r1,#0x3 ; | |
| 6e6e: 4c 00 80 40 beq $r0,$r1,0x6eee ; if cmd == 3: goto CMD_EQ_3 | |
| 6e72: 84 44 movi55 $r2,#0x4 ; | |
| 6e74: 4c 01 00 4e beq $r0,$r2,0x6f10 ; if cmd == 4: goto CMD_EQ_4 | |
| 6e78: 84 21 movi55 $r1,#0x1 ; | |
| 6e7a: 4c 00 c1 16 bne $r0,$r1,0x70a6 ; if cmd != 1: goto mainloop_6dec_out | |
| 6e7e: d5 32 j8 0x6ee2 ; goto CMD_EQ_1 | |
| ; label CMD_GE_C: | |
| 6e80: 8c 4a addi45 $r2,#0xa ; $r2 = 0x15 | |
| 6e82: 4c 01 00 55 beq $r0,$r2,0x6f2c ; if cmd == 0x15: goto CMD_EQ_15 | |
| 6e86: e6 16 slti45 $r0,#0x16 ; | |
| 6e88: e8 05 beqzs8 0x6e92 ; if cmd >= 0x16: goto CMD_GE_16 | |
| 6e8a: 84 2c movi55 $r1,#0xc ; | |
| 6e8c: 4c 00 c1 0d bne $r0,$r1,0x70a6 ; if cmd != 0xc: goto mainloop_6dec_out | |
| 6e90: d5 3b j8 0x6f06 ; goto CMD_EQ_C | |
| ; label CMD_GE_16: | |
| 6e92: 9c 91 addi333 $r2,$r2,#0x1 ; $r2 = 0x16 | |
| 6e94: 4c 01 00 5c beq $r0,$r2,0x6f4c ; if cmd == 0x16: goto CMD_EQ_16 | |
| 6e98: 9c 91 addi333 $r2,$r2,#0x1 ; $r2 = 0x17 | |
| 6e9a: 4c 01 41 06 bne $r0,$r2,0x70a6 ; if cmd != 0x17: goto mainloop_6dec_out | |
| 6e9e: d5 6d j8 0x6f78 ; goto CMD_EQ_17 | |
| ; label CMD_HIGH: | |
| 6ea0: 44 10 00 24 movi $r1,#0x24 ; $r1 = 0x24 | |
| 6ea4: 4c 00 80 c0 beq $r0,$r1,0x7024 ; if cmd == 0x24: goto CMD_EQ_24 | |
| 6ea8: 5c f0 00 25 slti $r15,$r0,#0x25 ; | |
| 6eac: e8 0d beqzs8 0x6ec6 ; if cmd >= 0x25: goto CMD_GE_25 | |
| 6eae: 9e 8a subi333 $r2,$r1,#0x2 ; $r1 = 0x22 | |
| 6eb0: 4c 01 00 93 beq $r0,$r2,0x6fd6 ; if cmd == 0x22: goto CMD_EQ_22 | |
| 6eb4: 5c f0 00 23 slti $r15,$r0,#0x23 ; | |
| 6eb8: 4e f2 00 ad beqz $r15,0x7012 ; if cmd >= 0x23: goto CMD_EQ_23 | |
| 6ebc: 9e 4b subi333 $r1,$r1,#0x3 ; $r1 = 0x1f | |
| 6ebe: 4c 00 c0 f4 bne $r0,$r1,0x70a6 ; if cmd != 0x1f: goto mainloop_6dec_out | |
| 6ec2: 48 00 00 83 j 0x6fc8 ; goto CMD_EQ_1F | |
| ; label CMD_GE_25: | |
| 6ec6: 9c 8a addi333 $r2,$r1,#0x2 ; $r2 = $r1 (0x24) + 2 = 0x26 | |
| 6ec8: 4c 01 00 cc beq $r0,$r2,0x7060 ; if cmd == 0x26: goto CMD_EQ_26 | |
| 6ecc: e2 02 slt45 $r0,$r2 ; | |
| 6ece: 4e f3 00 ba bnez $r15,0x7042 ; if cmd < 0x26: goto CMD_EQ_25 | |
| 6ed2: 9c 4b addi333 $r1,$r1,#0x3 ; $r1 = 0x24 + 3 = 0x27 | |
| 6ed4: 4c 00 80 d5 beq $r0,$r1,0x707e ; if cmd == 0x27: goto CMD_EQ_27 | |
| 6ed8: 8c 4b addi45 $r2,#0xb ; $r2 = 0x26 + 0xb = 0x31 | |
| 6eda: 4c 01 40 e6 bne $r0,$r2,0x70a6 ; if cmd != 0x31: goto mainloop_6dec_out | |
| 6ede: 48 00 00 8b j 0x6ff4 ; goto CMD_EQ_31 | |
| ; label CMD_EQ_1: | |
| 6ee2: a6 21 lbi333 $r0,[$r4+#0x1] ; $r0 = packet[1] (subcmd) | |
| 6ee4: ec 04 addi10.sp #0x4 | |
| 6ee6: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 6eea: 48 ff ff 1d j 0x6d24 ; return handle_info_command(subcmd) | |
| ; label CMD_EQ_3: | |
| 6eee: a6 21 lbi333 $r0,[$r4+#0x1] ; $r0 = packet[1] (subcmd) | |
| 6ef0: ec 04 addi10.sp #0x4 | |
| 6ef2: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 6ef6: 48 ff fe c1 j 0x6c78 ; return handle_reboot_cmd(subcmd) | |
| ; label CMD_EQ_B: | |
| 6efa: a6 21 lbi333 $r0,[$r4+#0x1] ; $r0 = packet[1] (subcmd) | |
| 6efc: ec 04 addi10.sp #0x4 | |
| 6efe: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 6f02: 48 ff fe 87 j 0x6c10 ; return handle_command_b(subcmd) | |
| ; label CMD_EQ_C: | |
| 6f06: ec 04 addi10.sp #0x4 | |
| 6f08: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 6f0c: 48 ff fe 60 j 0x6bcc ; return handle_command_c() | |
| ; label CMD_EQ_4: | |
| 6f10: a6 e3 lbi333 $r3,[$r4+#0x3] | |
| 6f12: a6 62 lbi333 $r1,[$r4+#0x2] | |
| 6f14: 40 31 a0 08 slli $r3,$r3,#0x8 | |
| 6f18: a6 a5 lbi333 $r2,[$r4+#0x5] | |
| 6f1a: a6 21 lbi333 $r0,[$r4+#0x1] | |
| 6f1c: 40 11 84 04 or $r1,$r3,$r1 | |
| 6f20: 51 ff 80 04 addi $sp,$sp,#0x4 | |
| 6f24: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 6f28: 48 ff fd bc j 0x6aa0 ; handle_command_4($r0=packet[1], $r1=packet[2:3], $r2=packet[5]) | |
| ; label CMD_EQ_15: | |
| 6f2c: 46 f0 01 00 sethi $r15,#0x100 | |
| 6f30: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 6f34: 84 45 movi55 $r2,#0x5 | |
| 6f36: 4c 01 40 45 bne $r0,$r2,0x6fc0 ; if [$gp-22] != 5: goto abandon_packet_and_exit | |
| 6f3a: a6 21 lbi333 $r0,[$r4+#0x1] ; get subcmd | |
| 6f3c: 50 12 00 08 addi $r1,$r4,#0x8 ; get address of packet_data | |
| 6f40: 51 ff 80 04 addi $sp,$sp,#0x4 | |
| 6f44: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 6f48: 48 ff fd 26 j 0x6994 ; handle_command_15(subcmd=$r0, packet_data=$r1) | |
| ; label CMD_EQ_16: | |
| 6f4c: 46 f0 01 00 sethi $r15,#0x100 | |
| 6f50: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 6f54: 84 45 movi55 $r2,#0x5 | |
| 6f56: 4c 01 40 35 bne $r0,$r2,0x6fc0 ; if [$gp-22] != 5: goto abandon_packet_and_exit | |
| 6f5a: a6 a3 lbi333 $r2,[$r4+#0x3] | |
| 6f5c: a6 62 lbi333 $r1,[$r4+#0x2] | |
| 6f5e: 40 21 20 08 slli $r2,$r2,#0x8 | |
| 6f62: a6 e5 lbi333 $r3,[$r4+#0x5] | |
| 6f64: a6 21 lbi333 $r0,[$r4+#0x1] | |
| 6f66: 40 11 04 04 or $r1,$r2,$r1 | |
| 6f6a: 50 22 00 08 addi $r2,$r4,#0x8 | |
| 6f6e: ec 04 addi10.sp #0x4 | |
| 6f70: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 6f74: 48 ff fc 54 j 0x681c ; return handle_command_16($r0=packet[1], $r1=packet[2:3], $r2=packet+8) | |
| label CMD_EQ_17: | |
| 6f78: 46 f0 01 00 sethi $r15,#0x100 | |
| 6f7c: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 6f80: 84 45 movi55 $r2,#0x5 | |
| 6f82: 4c 01 40 1f bne $r0,$r2,0x6fc0 ; if [$gp-22] != 5: goto abandon_packet_and_exit | |
| 6f86: 3e 18 0b 35 addi.gp $r1,#0xb35 | |
| 6f8a: 08 00 80 07 lbi.bi $r0,[$r1],#0x7 | |
| 6f8e: ec 04 addi10.sp #0x4 | |
| 6f90: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 6f94: 48 ff fb ae j 0x66f0 ; return handle_command_17($r0=[$gp+b35], $r1=$gp+b3c) | |
| ; label CMD_EQ_1A: | |
| 6f98: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 6f9c: 84 45 movi55 $r2,#0x5 | |
| 6f9e: 4c 01 40 11 bne $r0,$r2,0x6fc0 ; if [$gp-22] != 5: goto abandon_packet_and_exit | |
| 6fa2: a6 a3 lbi333 $r2,[$r4+#0x3] | |
| 6fa4: a6 62 lbi333 $r1,[$r4+#0x2] | |
| 6fa6: 40 21 20 08 slli $r2,$r2,#0x8 | |
| 6faa: a6 e5 lbi333 $r3,[$r4+#0x5] | |
| 6fac: a6 21 lbi333 $r0,[$r4+#0x1] | |
| 6fae: 40 11 04 04 or $r1,$r2,$r1 | |
| 6fb2: 50 22 00 08 addi $r2,$r4,#0x8 | |
| 6fb6: ec 04 addi10.sp #0x4 | |
| 6fb8: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 6fbc: 48 ff fb 40 j 0x663c ; return handle_command_1a($r0=packet[1], $r1=packet[2:3], $r2=packet+8, $r3=packet[5]) | |
| ; label abandon_packet_and_exit: | |
| 6fc0: 84 00 movi55 $r0,#0x0 | |
| 6fc2: 3c 0f ff ee swi.gp $r0,[+#-72] ; packet_in_progress = 0 | |
| 6fc6: d5 70 j8 0x70a6 ; goto mainloop_6dec_out | |
| ; label CMD_EQ_1F | |
| 6fc8: a6 62 lbi333 $r1,[$r4+#0x2] | |
| 6fca: a6 21 lbi333 $r0,[$r4+#0x1] | |
| 6fcc: ec 04 addi10.sp #0x4 | |
| 6fce: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 6fd2: 48 ff fa d5 j 0x657c ; return handle_command_1f(subcmd=$r0, byte2=$r1) | |
| ; label CMD_EQ_22: | |
| 6fd6: a6 e3 lbi333 $r3,[$r4+#0x3] | |
| 6fd8: a6 62 lbi333 $r1,[$r4+#0x2] | |
| 6fda: 40 31 a0 08 slli $r3,$r3,#0x8 | |
| 6fde: a6 21 lbi333 $r0,[$r4+#0x1] | |
| 6fe0: a6 a4 lbi333 $r2,[$r4+#0x4] | |
| 6fe2: 40 11 84 04 or $r1,$r3,$r1 | |
| 6fe6: 50 32 00 08 addi $r3,$r4,#0x8 | |
| 6fea: ec 04 addi10.sp #0x4 | |
| 6fec: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 6ff0: 48 ff fa 96 j 0x651c ; return handle_command_22(subcmd=$r0, offset=$r1, $r2=packet[4], $r3=packet+8) | |
| ; label CMD_EQ_31: | |
| 6ff4: a6 e3 lbi333 $r3,[$r4+#0x3] | |
| 6ff6: a6 62 lbi333 $r1,[$r4+#0x2] | |
| 6ff8: 40 31 a0 08 slli $r3,$r3,#0x8 | |
| 6ffc: a6 21 lbi333 $r0,[$r4+#0x1] | |
| 6ffe: a6 a4 lbi333 $r2,[$r4+#0x4] | |
| 7000: 40 11 84 04 or $r1,$r3,$r1 | |
| 7004: 50 32 00 08 addi $r3,$r4,#0x8 | |
| 7008: ec 04 addi10.sp #0x4 | |
| 700a: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 700e: 48 ff fa 57 j 0x64bc ; return handle_command_31(subcmd=$r0, offset=$r1, $r2=packet[4], $r3=packet+8) | |
| ; label CMD_EQ_23: | |
| 7012: a6 21 lbi333 $r0,[$r4+#0x1] | |
| 7014: a6 62 lbi333 $r1,[$r4+#0x2] | |
| 7016: 50 22 00 08 addi $r2,$r4,#0x8 | |
| 701a: ec 04 addi10.sp #0x4 | |
| 701c: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 7020: 48 ff f9 e6 j 0x63ec | |
| ; label CMD_EQ_24: | |
| 7024: a6 e3 lbi333 $r3,[$r4+#0x3] | |
| 7026: a6 62 lbi333 $r1,[$r4+#0x2] | |
| 7028: 40 31 a0 08 slli $r3,$r3,#0x8 | |
| 702c: a6 21 lbi333 $r0,[$r4+#0x1] | |
| 702e: a6 a4 lbi333 $r2,[$r4+#0x4] | |
| 7030: 40 11 84 04 or $r1,$r3,$r1 | |
| 7034: 50 32 00 08 addi $r3,$r4,#0x8 | |
| 7038: ec 04 addi10.sp #0x4 | |
| 703a: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 703e: 48 ff f9 a7 j 0x638c ; handle_command_24(subcmd, offset, size) | |
| ; label CMD_EQ_25: | |
| 7042: a6 e3 lbi333 $r3,[$r4+#0x3] | |
| 7044: a6 62 lbi333 $r1,[$r4+#0x2] | |
| 7046: 40 31 a0 08 slli $r3,$r3,#0x8 | |
| 704a: a6 21 lbi333 $r0,[$r4+#0x1] | |
| 704c: a6 a4 lbi333 $r2,[$r4+#0x4] | |
| 704e: 40 11 84 04 or $r1,$r3,$r1 | |
| 7052: 50 32 00 08 addi $r3,$r4,#0x8 | |
| 7056: ec 04 addi10.sp #0x4 | |
| 7058: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 705c: 48 ff f9 68 j 0x632c ; handle_command_25(subcmd, offset, size) | |
| ; label CMD_EQ_26: | |
| 7060: a6 e3 lbi333 $r3,[$r4+#0x3] | |
| 7062: a6 62 lbi333 $r1,[$r4+#0x2] | |
| 7064: 40 31 a0 08 slli $r3,$r3,#0x8 | |
| 7068: a6 21 lbi333 $r0,[$r4+#0x1] | |
| 706a: a6 a4 lbi333 $r2,[$r4+#0x4] | |
| 706c: 40 11 84 04 or $r1,$r3,$r1 | |
| 7070: 50 32 00 08 addi $r3,$r4,#0x8 | |
| 7074: ec 04 addi10.sp #0x4 | |
| 7076: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 707a: 48 ff f9 e9 j 0x644c ; handle_command_26(subcmd, offset, size) | |
| ; label CMD_EQ_27: | |
| 707e: a6 e4 lbi333 $r3,[$r4+#0x4] ; $r3 = packet[4] (p4) | |
| 7080: a6 23 lbi333 $r0,[$r4+#0x3] ; $r0 = packet[3] (p3) | |
| 7082: a6 62 lbi333 $r1,[$r4+#0x2] ; $r1 = packet[2] (p2) | |
| 7084: 40 00 20 08 slli $r0,$r0,#0x8 ; $r0 = 0x0000p300 | |
| 7088: 40 31 c0 08 slli $r3,$r3,#0x10 ; $r3 = 0x00p40000 | |
| 708c: 40 31 80 04 or $r3,$r3,$r0 ; $r3 = 0x00p4p300 | |
| 7090: a6 a5 lbi333 $r2,[$r4+#0x5] ; $r2 = packet[5] (length) | |
| 7092: a6 21 lbi333 $r0,[$r4+#0x1] ; $r0 = packet[1] (subcmd) | |
| 7094: 40 11 84 04 or $r1,$r3,$r1 ; $r1 = 0x00p4p3p2 | |
| 7098: 50 32 00 08 addi $r3,$r4,#0x8 ; $r3 = packet+8 (payload) | |
| 709c: ec 04 addi10.sp #0x4 | |
| 709e: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 70a2: 48 ff f9 0d j 0x62bc ; return handle_command_27($r0=subcmd, $r1=offset, $r2=length, $r3=payload) | |
| ; label mainloop_6dec_out: | |
| 70a6: ec 04 addi10.sp #0x4 | |
| 70a8: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 70ac: dd 9e ret5 $lp | |
| 70ae: 92 00 nop16 | |
| ; ---------- 0x70b0: enable_usb() | |
| 70b0: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 70b4: 46 60 02 07 sethi $r6,#0x207 ; USB address range: 0x00207800~0x00207bff | |
| 70b8: 58 63 08 0c ori $r6,$r6,#0x80c ; USB offset 0x0c: SIEI, SIE Interface Register | |
| 70bc: b4 26 lwi450 $r1,[$r6] ; get SIEI value | |
| 70be: 58 10 80 20 ori $r1,$r1,#0x20 ; set bit 5 (USBEN - enable USB transceiver) | |
| 70c2: b6 26 swi450 $r1,[$r6] ; write SIEI. USB tranceiver is now enabled! | |
| 70c4: 9e 34 subi333 $r0,$r6,#0x4 | |
| 70c6: b4 40 lwi450 $r2,[$r0] | |
| 70c8: 58 21 00 3f ori $r2,$r2,#0x3f | |
| 70cc: b6 40 swi450 $r2,[$r0] | |
| 70ce: 50 13 00 3c addi $r1,$r6,#0x3c | |
| 70d2: 44 00 00 66 movi $r0,#0x66 | |
| 70d6: b6 01 swi450 $r0,[$r1] | |
| 70d8: 49 ff f3 de jal 0x5894 | |
| 70dc: b4 06 lwi450 $r0,[$r6] | |
| 70de: 58 00 00 02 ori $r0,$r0,#0x2 | |
| 70e2: b6 06 swi450 $r0,[$r6] | |
| 70e4: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 70e8: dd 9e ret5 $lp | |
| 70ea: 92 00 nop16 | |
| ; ----------- 0x70ec: watchdog_8s_reset() | |
| 70ec: 46 00 02 00 sethi $r0,#0x200 ; 0x00200800~0x0020bff: watchdog timer | |
| 70f0: 58 00 08 00 ori $r0,$r0,#0x800 ; watchdog offset 0x00 | |
| 70f4: b4 20 lwi450 $r1,[$r0] ; get watchdog settings | |
| 70f6: 58 10 80 80 ori $r1,$r1,#0x80 ; set bit 7 - DIS_WDT (disable watchdog) | |
| 70fa: b6 20 swi450 $r1,[$r0] ; write to watchdog | |
| 70fc: b4 20 lwi450 $r1,[$r0] ; get watchdog settings | |
| 70fe: 42 10 98 09 bclr $r1,$r1,#0x6 ; clear bit 6 - WDT_CLK_SEL, 0=RC (128kz), 1=MCU | |
| 7102: b6 20 swi450 $r1,[$r0] ; switch watchdog to RC clock | |
| 7104: 84 24 movi55 $r1,#0x4 ; $r1 = 0b100 | |
| 7106: a8 41 swi333 $r1,[$r0+#0x4] ; watchdog offset 0x04, WDT_RST (reset time), 1xx = 8s | |
| 7108: b4 20 lwi450 $r1,[$r0] ; get watchdog settings | |
| 710a: 42 10 9c 09 bclr $r1,$r1,#0x7 ; clear bit 7 (enable watchdog) | |
| 710e: b6 20 swi450 $r1,[$r0] ; write to watchdog | |
| 7110: dd 9e ret5 $lp | |
| 7112: 92 00 nop16 | |
| ; ---------- 0x7114: mainloop_twiddle_0x0200a800 | |
| 7114: 46 00 02 00 sethi $r0,#0x200a ; $r0 = 0x0200_a000 | |
| 7118: 58 00 08 00 ori $r0,$r0,#0x800 ; $r0 = 0x0200_a800 | |
| 711c: b4 20 lwi450 $r1,[$r0] ; $r1 = [0x0200a800] (this is mapped memory..) | |
| 711e: 58 10 80 80 ori $r1,$r1,#0x80 | |
| 7122: b6 20 swi450 $r1,[$r0] | |
| 7124: b4 20 lwi450 $r1,[$r0] | |
| 7126: 42 10 9c 09 bclr $r1,$r1,#0x7 | |
| 712a: b6 20 swi450 $r1,[$r0] | |
| 712c: dd 9e ret5 $lp | |
| 712e: 92 00 nop16 | |
| 7130: 3e 2f ff 28 addi.gp $r2,#-216 | |
| 7134: 80 02 mov55 $r0,$r2 | |
| 7136: 84 2a movi55 $r1,#0xa | |
| 7138: 18 10 00 01 sbi.bi $r1,[$r0],#0x1 | |
| 713c: 84 22 movi55 $r1,#0x2 | |
| 713e: ae 52 sbi333 $r1,[$r2+#0x2] | |
| 7140: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 7142: dd 9e ret5 $lp | |
| 7144: 3a 6f a0 3c smw.adm $r6,[$sp],$r8,#0x0 ! {$r6~$r8} | |
| 7148: 84 a0 movi55 $r5,#0x0 | |
| 714a: 84 20 movi55 $r1,#0x0 | |
| 714c: 3e 17 ff f9 sbi.gp $r1,[+#-7] | |
| 7150: 44 70 d2 88 movi $r7,#0xd288 | |
| 7154: 80 c5 mov55 $r6,$r5 | |
| 7156: d5 11 j8 0x7178 | |
| 7158: 9c 49 addi333 $r1,$r1,#0x1 | |
| 715a: 96 48 zeb33 $r1,$r1 | |
| 715c: 85 06 movi55 $r8,#0x6 | |
| 715e: ae 80 sbi333 $r2,[$r0+#0x0] | |
| 7160: af 01 sbi333 $r4,[$r0+#0x1] | |
| 7162: ae c2 sbi333 $r3,[$r0+#0x2] | |
| 7164: af 83 sbi333 $r6,[$r0+#0x3] | |
| 7166: 50 00 00 58 addi $r0,$r0,#0x58 | |
| 716a: 4c 14 7f f7 bne $r1,$r8,0x7158 | |
| 716e: 9d 69 addi333 $r5,$r5,#0x1 | |
| 7170: 44 00 00 16 movi $r0,#0x16 | |
| 7174: 9d fc addi333 $r7,$r7,#0x4 | |
| 7176: d0 0f beqs38 $r0,0x7194 | |
| 7178: b4 47 lwi450 $r2,[$r7] | |
| 717a: 40 31 40 09 srli $r3,$r2,#0x10 | |
| 717e: 40 41 20 09 srli $r4,$r2,#0x8 | |
| 7182: 3e 18 03 00 addi.gp $r1,#0x300 | |
| 7186: 94 2a slli333 $r0,$r5,#0x2 | |
| 7188: 98 01 add333 $r0,$r0,$r1 | |
| 718a: 97 20 zeb33 $r4,$r4 | |
| 718c: 96 d8 zeb33 $r3,$r3 | |
| 718e: 96 90 zeb33 $r2,$r2 | |
| 7190: 84 20 movi55 $r1,#0x0 | |
| 7192: d5 e3 j8 0x7158 | |
| 7194: 3e 3f ff 28 addi.gp $r3,#-216 | |
| 7198: 46 20 01 00 sethi $r2,#0x100 | |
| 719c: 84 00 movi55 $r0,#0x0 | |
| 719e: 3e 1f ff 7c addi.gp $r1,#-132 | |
| 71a2: 3c 3f ff 9f swi.gp $r3,[+#-388] | |
| 71a6: 3a 6f a0 04 lmw.bim $r6,[$sp],$r8,#0x0 ! {$r6~$r8} | |
| 71aa: 48 ff e8 7d j 0x42a4 | |
| 71ae: 92 00 nop16 | |
| 71b0: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 71b4: 44 00 00 32 movi $r0,#0x32 | |
| 71b8: 3e 1f ff 7c addi.gp $r1,#-132 | |
| 71bc: 49 ff e8 74 jal 0x42a4 | |
| 71c0: 4e 02 00 34 beqz $r0,0x7228 | |
| 71c4: 49 ff c9 38 jal 0x434 ; $r0 = max_adc_byte() | |
| 71c8: 2e 27 ff 29 lbi.gp $r2,[+#-215] | |
| 71cc: 44 10 d5 28 movi $r1,#0xd528 | |
| 71d0: 38 20 89 01 lh $r2,[$r1+($r2<<#0x1)] | |
| 71d4: 40 20 08 16 divsr $r2,$r0,$r0,$r2 | |
| 71d8: 96 90 zeb33 $r2,$r2 | |
| 71da: 3e 27 ff f9 sbi.gp $r2,[+#-7] | |
| 71de: e6 57 slti45 $r2,#0x17 | |
| 71e0: e9 06 bnezs8 0x71ec | |
| 71e2: 44 00 00 16 movi $r0,#0x16 | |
| 71e6: 3e 07 ff f9 sbi.gp $r0,[+#-7] | |
| 71ea: 80 40 mov55 $r2,$r0 | |
| 71ec: 84 60 movi55 $r3,#0x0 | |
| 71ee: 3e 18 05 13 addi.gp $r1,#0x513 | |
| 71f2: 80 c3 mov55 $r6,$r3 | |
| 71f4: 44 50 00 64 movi $r5,#0x64 | |
| 71f8: d5 10 j8 0x7218 | |
| 71fa: e2 82 slt45 $r4,$r2 | |
| 71fc: e8 03 beqzs8 0x7202 | |
| 71fe: af 40 sbi333 $r5,[$r0+#0x0] | |
| 7200: d5 02 j8 0x7204 | |
| 7202: af 80 sbi333 $r6,[$r0+#0x0] | |
| 7204: 50 00 00 58 addi $r0,$r0,#0x58 | |
| 7208: 4c 10 7f f9 bne $r1,$r0,0x71fa | |
| 720c: 9c d9 addi333 $r3,$r3,#0x1 | |
| 720e: 44 00 00 16 movi $r0,#0x16 | |
| 7212: 9c 4c addi333 $r1,$r1,#0x4 | |
| 7214: 4c 30 00 09 beq $r3,$r0,0x7226 | |
| 7218: 3e 48 03 00 addi.gp $r4,#0x300 | |
| 721c: 94 1a slli333 $r0,$r3,#0x2 | |
| 721e: 98 04 add333 $r0,$r0,$r4 | |
| 7220: 9c 03 addi333 $r0,$r0,#0x3 | |
| 7222: 97 18 zeb33 $r4,$r3 | |
| 7224: d5 eb j8 0x71fa | |
| 7226: 84 01 movi55 $r0,#0x1 | |
| 7228: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 722c: dd 9e ret5 $lp | |
| 722e: 92 00 nop16 | |
| 7230: 3e 0f ff 30 addi.gp $r0,#-208 | |
| 7234: 84 2a movi55 $r1,#0xa | |
| 7236: 18 10 00 01 sbi.bi $r1,[$r0],#0x1 | |
| 723a: 84 22 movi55 $r1,#0x2 | |
| 723c: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 723e: dd 9e ret5 $lp | |
| 7240: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 7244: 51 ff ff e4 addi $sp,$sp,#-28 | |
| 7248: 2e 17 ff 31 lbi.gp $r1,[+#-207] | |
| 724c: 44 00 d5 34 movi $r0,#0xd534 | |
| 7250: 38 00 05 01 lh $r0,[$r0+($r1<<#0x1)] | |
| 7254: 3e 1f ff 7c addi.gp $r1,#-132 | |
| 7258: 49 ff e8 26 jal 0x42a4 | |
| 725c: c0 06 beqz38 $r0,0x7268 | |
| 725e: 84 a0 movi55 $r5,#0x0 | |
| 7260: 44 70 00 58 movi $r7,#0x58 | |
| 7264: 80 c5 mov55 $r6,$r5 | |
| 7266: d5 23 j8 0x72ac | |
| 7268: 3e 18 05 24 addi.gp $r1,#0x524 | |
| 726c: 84 40 movi55 $r2,#0x0 | |
| 726e: f1 81 swi37.sp $r1,[+#0x4] | |
| 7270: f2 82 swi37.sp $r2,[+#0x8] | |
| 7272: 50 af 80 17 addi $r10,$sp,#0x17 | |
| 7276: 50 9f 80 16 addi $r9,$sp,#0x16 | |
| 727a: 48 00 00 cc j 0x7412 | |
| 727e: a6 08 lbi333 $r0,[$r1+#0x0] | |
| 7280: 9e c1 subi333 $r3,$r0,#0x1 | |
| 7282: 50 40 7f f6 addi $r4,$r0,#-10 | |
| 7286: 96 d8 zeb33 $r3,$r3 | |
| 7288: e6 0b slti45 $r0,#0xb | |
| 728a: e9 03 bnezs8 0x7290 | |
| 728c: af 08 sbi333 $r4,[$r1+#0x0] | |
| 728e: d5 04 j8 0x7296 | |
| 7290: e6 6a slti45 $r3,#0xa | |
| 7292: e8 02 beqzs8 0x7296 | |
| 7294: af 88 sbi333 $r6,[$r1+#0x0] | |
| 7296: 9c 91 addi333 $r2,$r2,#0x1 | |
| 7298: 96 92 seb33 $r2,$r2 | |
| 729a: 44 30 00 16 movi $r3,#0x16 | |
| 729e: 9c 4c addi333 $r1,$r1,#0x4 | |
| 72a0: 4c 21 ff ef bne $r2,$r3,0x727e | |
| 72a4: 9d 69 addi333 $r5,$r5,#0x1 | |
| 72a6: 87 c6 movi55 $lp,#0x6 | |
| 72a8: 4c 5f 00 0a beq $r5,$lp,0x72bc | |
| 72ac: 42 12 9c 24 mul $r1,$r5,$r7 | |
| 72b0: 3e 08 03 00 addi.gp $r0,#0x300 | |
| 72b4: 98 48 add333 $r1,$r1,$r0 | |
| 72b6: 84 40 movi55 $r2,#0x0 | |
| 72b8: 9c 4b addi333 $r1,$r1,#0x3 | |
| 72ba: d5 e2 j8 0x727e | |
| 72bc: 3e 58 03 00 addi.gp $r5,#0x300 | |
| 72c0: 3e 08 05 ef addi.gp $r0,#0x5ef | |
| 72c4: 87 80 movi55 $fp,#0x0 | |
| 72c6: 50 a2 80 01 addi $r10,$r5,#0x1 | |
| 72ca: 50 92 80 02 addi $r9,$r5,#0x2 | |
| 72ce: 50 82 80 03 addi $r8,$r5,#0x3 | |
| 72d2: 8c ec addi45 $r7,#0xc | |
| 72d4: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 72d6: c1 41 beqz38 $r1,0x7358 | |
| 72d8: 00 10 7f ff lbi $r1,[$r0+#-1] | |
| 72dc: 00 40 7f fe lbi $r4,[$r0+#-2] | |
| 72e0: 9d 89 addi333 $r6,$r1,#0x1 | |
| 72e2: 9a e1 sub333 $r3,$r4,$r1 | |
| 72e4: 96 da seb33 $r3,$r3 | |
| 72e6: 99 21 add333 $r4,$r4,$r1 | |
| 72e8: 97 22 seb33 $r4,$r4 | |
| 72ea: 4e 35 00 16 bltz $r3,0x7316 | |
| 72ee: 20 10 7f fd lbsi $r1,[$r0+#-3] | |
| 72f2: 83 c3 mov55 $lp,$r3 | |
| 72f4: 43 e0 88 73 maddr32 $lp,$r1,$r2 | |
| 72f8: 38 74 7a 08 sb $r7,[$r8+($lp<<#0x2)] | |
| 72fc: 80 3e mov55 $r1,$lp | |
| 72fe: 01 e0 7f f9 lbi $lp,[$r0+#-7] | |
| 7302: 39 e2 86 08 sb $lp,[$r5+($r1<<#0x2)] | |
| 7306: 01 e0 7f fa lbi $lp,[$r0+#-6] | |
| 730a: 39 e5 06 08 sb $lp,[$r10+($r1<<#0x2)] | |
| 730e: 01 e0 7f fb lbi $lp,[$r0+#-5] | |
| 7312: 39 e4 86 08 sb $lp,[$r9+($r1<<#0x2)] | |
| 7316: e4 96 sltsi45 $r4,#0x16 | |
| 7318: e8 16 beqzs8 0x7344 | |
| 731a: 20 10 7f fd lbsi $r1,[$r0+#-3] | |
| 731e: 83 c4 mov55 $lp,$r4 | |
| 7320: 43 e0 88 73 maddr32 $lp,$r1,$r2 | |
| 7324: 38 74 7a 08 sb $r7,[$r8+($lp<<#0x2)] | |
| 7328: 50 1f 00 00 addi $r1,$lp,#0x0 | |
| 732c: 01 e0 7f f9 lbi $lp,[$r0+#-7] | |
| 7330: 39 e2 86 08 sb $lp,[$r5+($r1<<#0x2)] | |
| 7334: 01 e0 7f fa lbi $lp,[$r0+#-6] | |
| 7338: 39 e5 06 08 sb $lp,[$r10+($r1<<#0x2)] | |
| 733c: 01 e0 7f fb lbi $lp,[$r0+#-5] | |
| 7340: 39 e4 86 08 sb $lp,[$r9+($r1<<#0x2)] | |
| 7344: 4e 36 00 08 bgtz $r3,0x7354 | |
| 7348: 5e f2 00 15 sltsi $r15,$r4,#0x15 | |
| 734c: e9 04 bnezs8 0x7354 | |
| 734e: 11 c0 00 00 sbi $fp,[$r0+#0x0] | |
| 7352: d5 03 j8 0x7358 | |
| 7354: 10 60 7f ff sbi $r6,[$r0+#-1] | |
| 7358: 8c 08 addi45 $r0,#0x8 | |
| 735a: 3e 18 06 3f addi.gp $r1,#0x63f | |
| 735e: 4c 00 ff bb bne $r0,$r1,0x72d4 | |
| 7362: 84 01 movi55 $r0,#0x1 | |
| 7364: 48 ff ff 82 j 0x7268 | |
| 7368: f2 01 lwi37.sp $r2,[+#0x4] | |
| 736a: 41 c4 00 10 seb $fp,$r8 | |
| 736e: a6 50 lbi333 $r1,[$r2+#0x0] | |
| 7370: 40 10 a0 0e sra $r1,$r1,$r8 | |
| 7374: 96 4c xlsb33 $r1,$r1 | |
| 7376: c1 3f beqz38 $r1,0x73f4 | |
| 7378: 3e 28 05 ef addi.gp $r2,#0x5ef | |
| 737c: 84 c0 movi55 $r6,#0x0 | |
| 737e: a6 50 lbi333 $r1,[$r2+#0x0] | |
| 7380: 8c 48 addi45 $r2,#0x8 | |
| 7382: c9 35 bnez38 $r1,0x73ec | |
| 7384: 80 0a mov55 $r0,$r10 | |
| 7386: 80 29 mov55 $r1,$r9 | |
| 7388: 80 47 mov55 $r2,$r7 | |
| 738a: 49 ff e4 1d jal 0x3bc4 | |
| 738e: f3 03 lwi37.sp $r3,[+#0xc] | |
| 7390: 44 00 00 16 movi $r0,#0x16 | |
| 7394: 42 3e 00 73 maddr32 $r3,$fp,$r0 | |
| 7398: 80 03 mov55 $r0,$r3 | |
| 739a: 3e 58 03 02 addi.gp $r5,#0x302 | |
| 739e: 94 73 slli333 $r1,$r6,#0x3 | |
| 73a0: 3e 38 05 e8 addi.gp $r3,#0x5e8 | |
| 73a4: 98 8b add333 $r2,$r1,$r3 | |
| 73a6: 9c e9 addi333 $r3,$r5,#0x1 | |
| 73a8: 44 10 00 64 movi $r1,#0x64 | |
| 73ac: 01 ef 80 15 lbi $lp,[$sp+#0x15] | |
| 73b0: 38 11 82 08 sb $r1,[$r3+($r0<<#0x2)] | |
| 73b4: a6 fa lbi333 $r3,[$r7+#0x2] | |
| 73b6: 3e 18 05 e8 addi.gp $r1,#0x5e8 | |
| 73ba: 38 30 9b 08 sb $r3,[$r1+($r6<<#0x3)] | |
| 73be: 84 81 movi55 $r4,#0x1 | |
| 73c0: 3e 18 03 00 addi.gp $r1,#0x300 | |
| 73c4: af 16 sbi333 $r4,[$r2+#0x6] | |
| 73c6: 11 e1 00 02 sbi $lp,[$r2+#0x2] | |
| 73ca: 38 30 82 08 sb $r3,[$r1+($r0<<#0x2)] | |
| 73ce: a6 79 lbi333 $r1,[$r7+#0x1] | |
| 73d0: 3e 38 03 01 addi.gp $r3,#0x301 | |
| 73d4: 38 11 82 08 sb $r1,[$r3+($r0<<#0x2)] | |
| 73d8: 39 e2 82 08 sb $lp,[$r5+($r0<<#0x2)] | |
| 73dc: af 17 sbi333 $r4,[$r2+#0x7] | |
| 73de: 11 c1 00 04 sbi $fp,[$r2+#0x4] | |
| 73e2: 84 01 movi55 $r0,#0x1 | |
| 73e4: f3 02 lwi37.sp $r3,[+#0x8] | |
| 73e6: ae 51 sbi333 $r1,[$r2+#0x1] | |
| 73e8: ae d5 sbi333 $r3,[$r2+#0x5] | |
| 73ea: d5 05 j8 0x73f4 | |
| 73ec: 9d b1 addi333 $r6,$r6,#0x1 | |
| 73ee: 87 ca movi55 $lp,#0xa | |
| 73f0: 4c 6f 7f c7 bne $r6,$lp,0x737e | |
| 73f4: 8d 01 addi45 $r8,#0x1 | |
| 73f6: 84 26 movi55 $r1,#0x6 | |
| 73f8: 4c 80 ff b8 bne $r8,$r1,0x7368 | |
| 73fc: f2 02 lwi37.sp $r2,[+#0x8] | |
| 73fe: f3 01 lwi37.sp $r3,[+#0x4] | |
| 7400: 9c 51 addi333 $r1,$r2,#0x1 | |
| 7402: 96 4a seb33 $r1,$r1 | |
| 7404: 9c d9 addi333 $r3,$r3,#0x1 | |
| 7406: 45 e0 00 16 movi $lp,#0x16 | |
| 740a: f1 82 swi37.sp $r1,[+#0x8] | |
| 740c: f3 81 swi37.sp $r3,[+#0x4] | |
| 740e: 4c 1f 00 08 beq $r1,$lp,0x741e | |
| 7412: f1 02 lwi37.sp $r1,[+#0x8] | |
| 7414: 85 00 movi55 $r8,#0x0 | |
| 7416: 50 7f 80 15 addi $r7,$sp,#0x15 | |
| 741a: f1 83 swi37.sp $r1,[+#0xc] | |
| 741c: d5 a6 j8 0x7368 | |
| 741e: ec 1c addi10.sp #0x1c | |
| 7420: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 7424: dd 9e ret5 $lp | |
| 7426: 92 00 nop16 | |
| 7428: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 742c: 44 10 00 00 movi $r1,#0x0 | |
| 7430: 44 20 00 50 movi $r2,#0x50 | |
| 7434: 3e 08 05 e8 addi.gp $r0,#0x5e8 | |
| 7438: 49 00 16 40 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 743c: 3e 4f ff 30 addi.gp $r4,#-208 | |
| 7440: 46 30 01 00 sethi $r3,#0x100 | |
| 7444: 84 20 movi55 $r1,#0x0 | |
| 7446: 44 20 02 10 movi $r2,#0x210 | |
| 744a: 3e 08 03 00 addi.gp $r0,#0x300 | |
| 744e: 3c 4f ff 9f swi.gp $r4,[+#-388] | |
| 7452: 49 00 16 33 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 7456: 84 00 movi55 $r0,#0x0 | |
| 7458: 3e 1f ff 7c addi.gp $r1,#-132 | |
| 745c: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 7460: 48 ff e7 22 j 0x42a4 | |
| 7464: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 7468: ef f4 addi10.sp #-12 | |
| 746a: 55 e1 80 ff andi $lp,$r3,#0xff | |
| 746e: 55 c2 00 ff andi $fp,$r4,#0xff | |
| 7472: 46 8b a2 e8 sethi $r8,#0xba2e8 | |
| 7476: 96 48 zeb33 $r1,$r1 | |
| 7478: 96 90 zeb33 $r2,$r2 | |
| 747a: 15 ef 80 00 swi $lp,[$sp+#0x0] | |
| 747e: 15 cf 80 01 swi $fp,[$sp+#0x4] | |
| 7482: 3e a8 03 00 addi.gp $r10,#0x300 | |
| 7486: 58 84 0b a3 ori $r8,$r8,#0xba3 | |
| 748a: 84 c0 movi55 $r6,#0x0 | |
| 748c: 3e 78 0b 74 addi.gp $r7,#0xb74 | |
| 7490: 44 90 00 16 movi $r9,#0x16 | |
| 7494: 83 c2 mov55 $lp,$r2 | |
| 7496: 83 81 mov55 $fp,$r1 | |
| 7498: 40 13 0c 09 srli $r1,$r6,#0x3 | |
| 749c: 97 08 zeb33 $r4,$r1 | |
| 749e: 38 23 90 00 lb $r2,[$r7+($r4<<#0x0)] | |
| 74a2: 54 53 00 07 andi $r5,$r6,#0x7 | |
| 74a6: 40 11 14 0e sra $r1,$r2,$r5 | |
| 74aa: 96 4c xlsb33 $r1,$r1 | |
| 74ac: c1 25 beqz38 $r1,0x74f6 | |
| 74ae: 42 23 20 69 mulr64 $r2,$r6,$r8 | |
| 74b2: 38 40 10 00 lb $r4,[$r0+($r4<<#0x0)] | |
| 74b6: 92 64 srli45 $r3,#0x4 | |
| 74b8: 80 46 mov55 $r2,$r6 | |
| 74ba: 42 21 a4 75 msubr32 $r2,$r3,$r9 | |
| 74be: 40 12 14 0e sra $r1,$r4,$r5 | |
| 74c2: 96 4c xlsb33 $r1,$r1 | |
| 74c4: 96 90 zeb33 $r2,$r2 | |
| 74c6: c1 18 beqz38 $r1,0x74f6 | |
| 74c8: 96 58 zeb33 $r1,$r3 | |
| 74ca: 80 62 mov55 $r3,$r2 | |
| 74cc: 42 30 a4 73 maddr32 $r3,$r1,$r9 | |
| 74d0: 80 23 mov55 $r1,$r3 | |
| 74d2: e6 56 slti45 $r2,#0x16 | |
| 74d4: e8 11 beqzs8 0x74f6 | |
| 74d6: b4 7f lwi450 $r3,[$sp] | |
| 74d8: 3e 28 03 02 addi.gp $r2,#0x302 | |
| 74dc: 38 31 06 08 sb $r3,[$r2+($r1<<#0x2)] | |
| 74e0: f3 01 lwi37.sp $r3,[+#0x4] | |
| 74e2: 3e 28 03 03 addi.gp $r2,#0x303 | |
| 74e6: 38 31 06 08 sb $r3,[$r2+($r1<<#0x2)] | |
| 74ea: 3e 38 03 01 addi.gp $r3,#0x301 | |
| 74ee: 39 c5 06 08 sb $fp,[$r10+($r1<<#0x2)] | |
| 74f2: 39 e1 86 08 sb $lp,[$r3+($r1<<#0x2)] | |
| 74f6: 9d b1 addi333 $r6,$r6,#0x1 | |
| 74f8: 44 10 00 84 movi $r1,#0x84 | |
| 74fc: 4c 60 ff ce bne $r6,$r1,0x7498 | |
| 7500: ec 0c addi10.sp #0xc | |
| 7502: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 7506: dd 9e ret5 $lp | |
| 7508: 00 30 00 19 lbi $r3,[$r0+#0x19] | |
| 750c: 00 10 00 17 lbi $r1,[$r0+#0x17] | |
| 7510: 00 20 00 18 lbi $r2,[$r0+#0x18] | |
| 7514: 44 40 00 64 movi $r4,#0x64 | |
| 7518: 9c 01 addi333 $r0,$r0,#0x1 | |
| 751a: d5 a5 j8 0x7464 | |
| 751c: 00 30 00 19 lbi $r3,[$r0+#0x19] | |
| 7520: 00 10 00 17 lbi $r1,[$r0+#0x17] | |
| 7524: 00 20 00 18 lbi $r2,[$r0+#0x18] | |
| 7528: 44 40 00 64 movi $r4,#0x64 | |
| 752c: 9c 01 addi333 $r0,$r0,#0x1 | |
| 752e: d5 9b j8 0x7464 | |
| 7530: 3a 6f a4 bc smw.adm $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 7534: ef fc addi10.sp #-4 | |
| 7536: 00 10 00 17 lbi $r1,[$r0+#0x17] | |
| 753a: 00 30 00 19 lbi $r3,[$r0+#0x19] | |
| 753e: 00 20 00 18 lbi $r2,[$r0+#0x18] | |
| 7542: 80 c0 mov55 $r6,$r0 | |
| 7544: 44 40 00 64 movi $r4,#0x64 | |
| 7548: 50 00 00 01 addi $r0,$r0,#0x1 | |
| 754c: 49 ff ff 8c jal 0x7464 | |
| 7550: 00 53 00 17 lbi $r5,[$r6+#0x17] | |
| 7554: 00 33 00 18 lbi $r3,[$r6+#0x18] | |
| 7558: 80 25 mov55 $r1,$r5 | |
| 755a: 80 03 mov55 $r0,$r3 | |
| 755c: 10 13 00 20 sbi $r1,[$r6+#0x20] | |
| 7560: e2 20 slt45 $r1,$r0 | |
| 7562: e9 05 bnezs8 0x756c | |
| 7564: 80 01 mov55 $r0,$r1 | |
| 7566: 44 70 00 00 movi $r7,#0x0 | |
| 756a: d5 05 j8 0x7574 | |
| 756c: 10 03 00 20 sbi $r0,[$r6+#0x20] | |
| 7570: 44 70 00 01 movi $r7,#0x1 | |
| 7574: 00 43 00 19 lbi $r4,[$r6+#0x19] | |
| 7578: 80 24 mov55 $r1,$r4 | |
| 757a: e2 01 slt45 $r0,$r1 | |
| 757c: e8 04 beqzs8 0x7584 | |
| 757e: 10 13 00 20 sbi $r1,[$r6+#0x20] | |
| 7582: 84 e2 movi55 $r7,#0x2 | |
| 7584: 80 25 mov55 $r1,$r5 | |
| 7586: 80 03 mov55 $r0,$r3 | |
| 7588: 10 13 00 21 sbi $r1,[$r6+#0x21] | |
| 758c: e2 01 slt45 $r0,$r1 | |
| 758e: e9 03 bnezs8 0x7594 | |
| 7590: 80 01 mov55 $r0,$r1 | |
| 7592: d5 03 j8 0x7598 | |
| 7594: 10 03 00 21 sbi $r0,[$r6+#0x21] | |
| 7598: 80 44 mov55 $r2,$r4 | |
| 759a: e2 40 slt45 $r2,$r0 | |
| 759c: e9 04 bnezs8 0x75a4 | |
| 759e: 50 20 00 00 addi $r2,$r0,#0x0 | |
| 75a2: d5 03 j8 0x75a8 | |
| 75a4: 10 23 00 21 sbi $r2,[$r6+#0x21] | |
| 75a8: 00 03 00 20 lbi $r0,[$r6+#0x20] | |
| 75ac: 46 18 88 88 sethi $r1,#0x88888 | |
| 75b0: 9a 02 sub333 $r0,$r0,$r2 | |
| 75b2: 58 10 88 89 ori $r1,$r1,#0x889 | |
| 75b6: 42 80 04 68 mulsr64 $r8,$r0,$r1 | |
| 75ba: 40 10 7c 0a srai $r1,$r0,#0x1f | |
| 75be: 88 09 add45 $r0,$r9 | |
| 75c0: 90 05 srai45 $r0,#0x5 | |
| 75c2: 02 23 00 0d lhi $r2,[$r6+#0x1a] | |
| 75c6: 9a 01 sub333 $r0,$r0,$r1 | |
| 75c8: 42 00 08 24 mul $r0,$r0,$r2 | |
| 75cc: 2e 10 00 0a lbi.gp $r1,[+#0xa] | |
| 75d0: 40 00 04 36 divsr $r0,$r1,$r0,$r1 | |
| 75d4: 96 01 zeh33 $r0,$r0 | |
| 75d6: 12 03 00 0f shi $r0,[$r6+#0x1e] | |
| 75da: c8 04 bnez38 $r0,0x75e2 | |
| 75dc: 84 01 movi55 $r0,#0x1 | |
| 75de: 12 03 00 0f shi $r0,[$r6+#0x1e] | |
| 75e2: cf 08 bnez38 $r7,0x75f2 | |
| 75e4: e2 64 slt45 $r3,$r4 | |
| 75e6: e9 02 bnezs8 0x75ea | |
| 75e8: d5 0e j8 0x7604 | |
| 75ea: 84 05 movi55 $r0,#0x5 | |
| 75ec: 10 03 00 22 sbi $r0,[$r6+#0x22] | |
| 75f0: d5 16 j8 0x761c | |
| 75f2: 84 01 movi55 $r0,#0x1 | |
| 75f4: 4c 70 40 0b bne $r7,$r0,0x760a | |
| 75f8: e2 85 slt45 $r4,$r5 | |
| 75fa: e9 05 bnezs8 0x7604 | |
| 75fc: 84 02 movi55 $r0,#0x2 | |
| 75fe: 10 03 00 22 sbi $r0,[$r6+#0x22] | |
| 7602: d5 0d j8 0x761c | |
| 7604: 10 73 00 22 sbi $r7,[$r6+#0x22] | |
| 7608: d5 0a j8 0x761c | |
| 760a: e2 a3 slt45 $r5,$r3 | |
| 760c: e9 05 bnezs8 0x7616 | |
| 760e: 84 04 movi55 $r0,#0x4 | |
| 7610: 10 03 00 22 sbi $r0,[$r6+#0x22] | |
| 7614: d5 04 j8 0x761c | |
| 7616: 84 03 movi55 $r0,#0x3 | |
| 7618: 10 03 00 22 sbi $r0,[$r6+#0x22] | |
| 761c: ec 04 addi10.sp #0x4 | |
| 761e: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 7622: dd 9e ret5 $lp | |
| 7624: 00 10 00 22 lbi $r1,[$r0+#0x22] | |
| 7628: 84 42 movi55 $r2,#0x2 | |
| 762a: 4c 11 00 53 beq $r1,$r2,0x76d0 | |
| 762e: e6 23 slti45 $r1,#0x3 | |
| 7630: e8 06 beqzs8 0x763c | |
| 7632: c1 15 beqz38 $r1,0x765c | |
| 7634: 84 41 movi55 $r2,#0x1 | |
| 7636: 4c 11 40 0b bne $r1,$r2,0x764c | |
| 763a: d5 2f j8 0x7698 | |
| 763c: 84 44 movi55 $r2,#0x4 | |
| 763e: 4c 11 00 81 beq $r1,$r2,0x7740 | |
| 7642: e2 22 slt45 $r1,$r2 | |
| 7644: e9 62 bnezs8 0x7708 | |
| 7646: 84 45 movi55 $r2,#0x5 | |
| 7648: 4c 11 00 98 beq $r1,$r2,0x7778 | |
| 764c: 00 10 00 17 lbi $r1,[$r0+#0x17] | |
| 7650: 00 20 00 18 lbi $r2,[$r0+#0x18] | |
| 7654: 00 30 00 19 lbi $r3,[$r0+#0x19] | |
| 7658: 48 00 00 ab j 0x77ae | |
| 765c: 00 10 00 18 lbi $r1,[$r0+#0x18] | |
| 7660: 02 30 00 0f lhi $r3,[$r0+#0x1e] | |
| 7664: 00 20 00 20 lbi $r2,[$r0+#0x20] | |
| 7668: 98 59 add333 $r1,$r3,$r1 | |
| 766a: e0 22 slts45 $r1,$r2 | |
| 766c: e8 0a beqzs8 0x7680 | |
| 766e: 96 88 zeb33 $r2,$r1 | |
| 7670: 10 20 00 18 sbi $r2,[$r0+#0x18] | |
| 7674: 00 10 00 17 lbi $r1,[$r0+#0x17] | |
| 7678: 00 30 00 19 lbi $r3,[$r0+#0x19] | |
| 767c: 48 00 00 99 j 0x77ae | |
| 7680: 44 10 00 01 movi $r1,#0x1 | |
| 7684: 10 10 00 22 sbi $r1,[$r0+#0x22] | |
| 7688: 10 20 00 18 sbi $r2,[$r0+#0x18] | |
| 768c: 00 10 00 17 lbi $r1,[$r0+#0x17] | |
| 7690: 00 30 00 19 lbi $r3,[$r0+#0x19] | |
| 7694: 48 00 00 8d j 0x77ae | |
| 7698: 00 10 00 21 lbi $r1,[$r0+#0x21] | |
| 769c: 02 20 00 0f lhi $r2,[$r0+#0x1e] | |
| 76a0: 00 30 00 17 lbi $r3,[$r0+#0x17] | |
| 76a4: 99 11 add333 $r4,$r2,$r1 | |
| 76a6: e0 83 slts45 $r4,$r3 | |
| 76a8: e8 0a beqzs8 0x76bc | |
| 76aa: 9a 5a sub333 $r1,$r3,$r2 | |
| 76ac: 96 48 zeb33 $r1,$r1 | |
| 76ae: 10 10 00 17 sbi $r1,[$r0+#0x17] | |
| 76b2: 00 20 00 18 lbi $r2,[$r0+#0x18] | |
| 76b6: 00 30 00 19 lbi $r3,[$r0+#0x19] | |
| 76ba: d5 7a j8 0x77ae | |
| 76bc: 84 42 movi55 $r2,#0x2 | |
| 76be: 10 20 00 22 sbi $r2,[$r0+#0x22] | |
| 76c2: 10 10 00 17 sbi $r1,[$r0+#0x17] | |
| 76c6: 00 20 00 18 lbi $r2,[$r0+#0x18] | |
| 76ca: 00 30 00 19 lbi $r3,[$r0+#0x19] | |
| 76ce: d5 70 j8 0x77ae | |
| 76d0: 00 10 00 19 lbi $r1,[$r0+#0x19] | |
| 76d4: 02 20 00 0f lhi $r2,[$r0+#0x1e] | |
| 76d8: 00 30 00 20 lbi $r3,[$r0+#0x20] | |
| 76dc: 98 51 add333 $r1,$r2,$r1 | |
| 76de: e0 23 slts45 $r1,$r3 | |
| 76e0: e8 09 beqzs8 0x76f2 | |
| 76e2: 96 c8 zeb33 $r3,$r1 | |
| 76e4: 10 30 00 19 sbi $r3,[$r0+#0x19] | |
| 76e8: 00 10 00 17 lbi $r1,[$r0+#0x17] | |
| 76ec: 00 20 00 18 lbi $r2,[$r0+#0x18] | |
| 76f0: d5 5f j8 0x77ae | |
| 76f2: 84 23 movi55 $r1,#0x3 | |
| 76f4: 10 10 00 22 sbi $r1,[$r0+#0x22] | |
| 76f8: 10 30 00 19 sbi $r3,[$r0+#0x19] | |
| 76fc: 00 10 00 17 lbi $r1,[$r0+#0x17] | |
| 7700: 00 20 00 18 lbi $r2,[$r0+#0x18] | |
| 7704: 48 00 00 55 j 0x77ae | |
| 7708: 00 20 00 21 lbi $r2,[$r0+#0x21] | |
| 770c: 02 10 00 0f lhi $r1,[$r0+#0x1e] | |
| 7710: 00 30 00 18 lbi $r3,[$r0+#0x18] | |
| 7714: 99 0a add333 $r4,$r1,$r2 | |
| 7716: e0 83 slts45 $r4,$r3 | |
| 7718: e8 0a beqzs8 0x772c | |
| 771a: 9a 99 sub333 $r2,$r3,$r1 | |
| 771c: 96 90 zeb33 $r2,$r2 | |
| 771e: 10 20 00 18 sbi $r2,[$r0+#0x18] | |
| 7722: 00 10 00 17 lbi $r1,[$r0+#0x17] | |
| 7726: 00 30 00 19 lbi $r3,[$r0+#0x19] | |
| 772a: d5 42 j8 0x77ae | |
| 772c: 84 24 movi55 $r1,#0x4 | |
| 772e: 10 10 00 22 sbi $r1,[$r0+#0x22] | |
| 7732: 10 20 00 18 sbi $r2,[$r0+#0x18] | |
| 7736: 00 10 00 17 lbi $r1,[$r0+#0x17] | |
| 773a: 00 30 00 19 lbi $r3,[$r0+#0x19] | |
| 773e: d5 38 j8 0x77ae | |
| 7740: 00 20 00 17 lbi $r2,[$r0+#0x17] | |
| 7744: 02 30 00 0f lhi $r3,[$r0+#0x1e] | |
| 7748: 00 10 00 20 lbi $r1,[$r0+#0x20] | |
| 774c: 98 9a add333 $r2,$r3,$r2 | |
| 774e: e0 41 slts45 $r2,$r1 | |
| 7750: e8 09 beqzs8 0x7762 | |
| 7752: 96 50 zeb33 $r1,$r2 | |
| 7754: 10 10 00 17 sbi $r1,[$r0+#0x17] | |
| 7758: 00 20 00 18 lbi $r2,[$r0+#0x18] | |
| 775c: 00 30 00 19 lbi $r3,[$r0+#0x19] | |
| 7760: d5 27 j8 0x77ae | |
| 7762: 84 45 movi55 $r2,#0x5 | |
| 7764: 10 20 00 22 sbi $r2,[$r0+#0x22] | |
| 7768: 10 10 00 17 sbi $r1,[$r0+#0x17] | |
| 776c: 00 20 00 18 lbi $r2,[$r0+#0x18] | |
| 7770: 00 30 00 19 lbi $r3,[$r0+#0x19] | |
| 7774: 48 00 00 1d j 0x77ae | |
| 7778: 00 30 00 21 lbi $r3,[$r0+#0x21] | |
| 777c: 02 10 00 0f lhi $r1,[$r0+#0x1e] | |
| 7780: 00 20 00 19 lbi $r2,[$r0+#0x19] | |
| 7784: 99 0b add333 $r4,$r1,$r3 | |
| 7786: e0 82 slts45 $r4,$r2 | |
| 7788: e8 0a beqzs8 0x779c | |
| 778a: 9a d1 sub333 $r3,$r2,$r1 | |
| 778c: 96 d8 zeb33 $r3,$r3 | |
| 778e: 10 30 00 19 sbi $r3,[$r0+#0x19] | |
| 7792: 00 10 00 17 lbi $r1,[$r0+#0x17] | |
| 7796: 00 20 00 18 lbi $r2,[$r0+#0x18] | |
| 779a: d5 0a j8 0x77ae | |
| 779c: 84 20 movi55 $r1,#0x0 | |
| 779e: 10 10 00 22 sbi $r1,[$r0+#0x22] | |
| 77a2: 10 30 00 19 sbi $r3,[$r0+#0x19] | |
| 77a6: 00 10 00 17 lbi $r1,[$r0+#0x17] | |
| 77aa: 00 20 00 18 lbi $r2,[$r0+#0x18] | |
| 77ae: 9c 01 addi333 $r0,$r0,#0x1 | |
| 77b0: 44 40 00 64 movi $r4,#0x64 | |
| 77b4: 48 ff fe 58 j 0x7464 | |
| 77b8: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 77bc: 00 10 00 17 lbi $r1,[$r0+#0x17] | |
| 77c0: 00 20 00 18 lbi $r2,[$r0+#0x18] | |
| 77c4: 00 30 00 19 lbi $r3,[$r0+#0x19] | |
| 77c8: 80 c0 mov55 $r6,$r0 | |
| 77ca: 84 80 movi55 $r4,#0x0 | |
| 77cc: 50 00 00 01 addi $r0,$r0,#0x1 | |
| 77d0: 49 ff fe 4a jal 0x7464 | |
| 77d4: 02 03 00 0d lhi $r0,[$r6+#0x1a] | |
| 77d8: 2e 10 00 0a lbi.gp $r1,[+#0xa] | |
| 77dc: 40 00 20 08 slli $r0,$r0,#0x8 | |
| 77e0: 40 00 04 56 divsr $r0,$r2,$r0,$r1 | |
| 77e4: 96 01 zeh33 $r0,$r0 | |
| 77e6: 12 03 00 0f shi $r0,[$r6+#0x1e] | |
| 77ea: c8 05 bnez38 $r0,0x77f4 | |
| 77ec: 44 00 00 32 movi $r0,#0x32 | |
| 77f0: 12 03 00 0f shi $r0,[$r6+#0x1e] | |
| 77f4: 00 23 00 1c lbi $r2,[$r6+#0x1c] | |
| 77f8: 84 00 movi55 $r0,#0x0 | |
| 77fa: 42 10 88 24 mul $r1,$r1,$r2 | |
| 77fe: 10 03 00 24 sbi $r0,[$r6+#0x24] | |
| 7802: 10 13 00 22 sbi $r1,[$r6+#0x22] | |
| 7806: 12 03 00 10 shi $r0,[$r6+#0x20] | |
| 780a: 10 03 00 23 sbi $r0,[$r6+#0x23] | |
| 780e: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 7812: dd 9e ret5 $lp | |
| 7814: 00 10 00 23 lbi $r1,[$r0+#0x23] | |
| 7818: c1 04 beqz38 $r1,0x7820 | |
| 781a: 9e 49 subi333 $r1,$r1,#0x1 | |
| 781c: 10 10 00 23 sbi $r1,[$r0+#0x23] | |
| 7820: 00 10 00 24 lbi $r1,[$r0+#0x24] | |
| 7824: 84 41 movi55 $r2,#0x1 | |
| 7826: 4c 11 00 17 beq $r1,$r2,0x7854 | |
| 782a: c1 09 beqz38 $r1,0x783c | |
| 782c: 84 42 movi55 $r2,#0x2 | |
| 782e: 4c 11 00 2b beq $r1,$r2,0x7884 | |
| 7832: 44 20 00 03 movi $r2,#0x3 | |
| 7836: 4c 11 00 37 beq $r1,$r2,0x78a4 | |
| 783a: d5 29 j8 0x788c | |
| 783c: 00 10 00 23 lbi $r1,[$r0+#0x23] | |
| 7840: c1 02 beqz38 $r1,0x7844 | |
| 7842: d5 25 j8 0x788c | |
| 7844: 02 40 00 10 lhi $r4,[$r0+#0x20] | |
| 7848: 84 21 movi55 $r1,#0x1 | |
| 784a: 10 10 00 24 sbi $r1,[$r0+#0x24] | |
| 784e: 92 88 srli45 $r4,#0x8 | |
| 7850: 48 00 00 40 j 0x78d0 | |
| 7854: 02 10 00 10 lhi $r1,[$r0+#0x20] | |
| 7858: 02 40 00 0f lhi $r4,[$r0+#0x1e] | |
| 785c: 99 21 add333 $r4,$r4,$r1 | |
| 785e: 44 10 63 ff movi $r1,#0x63ff | |
| 7862: e0 24 slts45 $r1,$r4 | |
| 7864: e9 02 bnezs8 0x7868 | |
| 7866: d5 26 j8 0x78b2 | |
| 7868: 9c 49 addi333 $r1,$r1,#0x1 | |
| 786a: 12 10 00 10 shi $r1,[$r0+#0x20] | |
| 786e: 84 22 movi55 $r1,#0x2 | |
| 7870: 10 10 00 24 sbi $r1,[$r0+#0x24] | |
| 7874: 00 10 00 22 lbi $r1,[$r0+#0x22] | |
| 7878: 44 40 00 64 movi $r4,#0x64 | |
| 787c: 10 10 00 23 sbi $r1,[$r0+#0x23] | |
| 7880: 48 00 00 28 j 0x78d0 | |
| 7884: 00 10 00 23 lbi $r1,[$r0+#0x23] | |
| 7888: 4e 12 00 06 beqz $r1,0x7894 | |
| 788c: 02 40 00 10 lhi $r4,[$r0+#0x20] | |
| 7890: 92 88 srli45 $r4,#0x8 | |
| 7892: d5 1f j8 0x78d0 | |
| 7894: 02 40 00 10 lhi $r4,[$r0+#0x20] | |
| 7898: 84 23 movi55 $r1,#0x3 | |
| 789a: 10 10 00 24 sbi $r1,[$r0+#0x24] | |
| 789e: 92 88 srli45 $r4,#0x8 | |
| 78a0: 48 00 00 18 j 0x78d0 | |
| 78a4: 02 20 00 10 lhi $r2,[$r0+#0x20] | |
| 78a8: 02 10 00 0f lhi $r1,[$r0+#0x1e] | |
| 78ac: e2 22 slt45 $r1,$r2 | |
| 78ae: e8 07 beqzs8 0x78bc | |
| 78b0: 9b 11 sub333 $r4,$r2,$r1 | |
| 78b2: 97 21 zeh33 $r4,$r4 | |
| 78b4: 12 40 00 10 shi $r4,[$r0+#0x20] | |
| 78b8: 92 88 srli45 $r4,#0x8 | |
| 78ba: d5 0b j8 0x78d0 | |
| 78bc: 00 20 00 22 lbi $r2,[$r0+#0x22] | |
| 78c0: 84 20 movi55 $r1,#0x0 | |
| 78c2: 10 10 00 24 sbi $r1,[$r0+#0x24] | |
| 78c6: 12 10 00 10 shi $r1,[$r0+#0x20] | |
| 78ca: 10 20 00 23 sbi $r2,[$r0+#0x23] | |
| 78ce: 84 80 movi55 $r4,#0x0 | |
| 78d0: 00 30 00 19 lbi $r3,[$r0+#0x19] | |
| 78d4: 00 10 00 17 lbi $r1,[$r0+#0x17] | |
| 78d8: 00 20 00 18 lbi $r2,[$r0+#0x18] | |
| 78dc: 9c 01 addi333 $r0,$r0,#0x1 | |
| 78de: 48 ff fd c3 j 0x7464 | |
| 78e2: 92 00 nop16 | |
| 78e4: 84 00 movi55 $r0,#0x0 | |
| 78e6: dd 9e ret5 $lp | |
| 78e8: 3a 6f a8 3c smw.adm $r6,[$sp],$r10,#0x0 ! {$r6~$r10} | |
| 78ec: 96 00 zeb33 $r0,$r0 | |
| 78ee: 54 10 00 10 andi $r1,$r0,#0x10 | |
| 78f2: c9 05 bnez38 $r1,0x78fc | |
| 78f4: 3e 2f ff 39 addi.gp $r2,#-199 | |
| 78f8: a6 50 lbi333 $r1,[$r2+#0x0] | |
| 78fa: d5 11 j8 0x791c | |
| 78fc: 3e 2f ff 39 addi.gp $r2,#-199 | |
| 7900: a6 50 lbi333 $r1,[$r2+#0x0] | |
| 7902: e6 24 slti45 $r1,#0x4 | |
| 7904: e8 08 beqzs8 0x7914 | |
| 7906: 9c 49 addi333 $r1,$r1,#0x1 | |
| 7908: 96 48 zeb33 $r1,$r1 | |
| 790a: 84 81 movi55 $r4,#0x1 | |
| 790c: 3e 47 ff de sbi.gp $r4,[+#-34] | |
| 7910: ae 50 sbi333 $r1,[$r2+#0x0] | |
| 7912: d5 05 j8 0x791c | |
| 7914: 44 40 00 0c movi $r4,#0xc | |
| 7918: 3e 47 ff e4 sbi.gp $r4,[+#-28] | |
| 791c: 54 00 00 20 andi $r0,$r0,#0x20 | |
| 7920: c0 0c beqz38 $r0,0x7938 | |
| 7922: c1 08 beqz38 $r1,0x7932 | |
| 7924: 9e 49 subi333 $r1,$r1,#0x1 | |
| 7926: 96 48 zeb33 $r1,$r1 | |
| 7928: 84 61 movi55 $r3,#0x1 | |
| 792a: 3e 37 ff de sbi.gp $r3,[+#-34] | |
| 792e: ae 50 sbi333 $r1,[$r2+#0x0] | |
| 7930: d5 04 j8 0x7938 | |
| 7932: 84 4c movi55 $r2,#0xc | |
| 7934: 3e 27 ff e5 sbi.gp $r2,[+#-27] | |
| 7938: 44 00 d5 40 movi $r0,#0xd540 | |
| 793c: 38 10 05 01 lh $r1,[$r0+($r1<<#0x1)] | |
| 7940: 46 0c cc cc sethi $r0,#0xccccc | |
| 7944: 58 00 0c cd ori $r0,$r0,#0xccd | |
| 7948: 42 00 80 69 mulr64 $r0,$r1,$r0 | |
| 794c: 2e 20 00 0b lbi.gp $r2,[+#0xb] | |
| 7950: 40 30 90 09 srli $r3,$r1,#0x4 | |
| 7954: 96 d8 zeb33 $r3,$r3 | |
| 7956: 46 00 01 00 sethi $r0,#0x100 | |
| 795a: 3e 30 00 0a sbi.gp $r3,[+#0xa] | |
| 795e: c2 45 beqz38 $r2,0x79e8 | |
| 7960: 9f 91 subi333 $r6,$r2,#0x1 | |
| 7962: 44 00 00 26 movi $r0,#0x26 | |
| 7966: 97 b0 zeb33 $r6,$r6 | |
| 7968: 42 63 00 24 mul $r6,$r6,$r0 | |
| 796c: 3e 08 0b d0 addi.gp $r0,#0xbd0 | |
| 7970: 46 78 88 88 sethi $r7,#0x88888 | |
| 7974: 40 63 00 00 add $r6,$r6,$r0 | |
| 7978: 58 73 88 89 ori $r7,$r7,#0x889 | |
| 797c: 3e 08 0b aa addi.gp $r0,#0xbaa | |
| 7980: 44 a0 00 32 movi $r10,#0x32 | |
| 7984: 00 10 7f e2 lbi $r1,[$r0+#-30] | |
| 7988: 84 41 movi55 $r2,#0x1 | |
| 798a: 4c 11 40 17 bne $r1,$r2,0x79b8 | |
| 798e: a7 02 lbi333 $r4,[$r0+#0x2] | |
| 7990: a6 83 lbi333 $r2,[$r0+#0x3] | |
| 7992: 02 80 7f fe lhi $r8,[$r0+#-4] | |
| 7996: 9a a2 sub333 $r2,$r4,$r2 | |
| 7998: 42 41 1c 68 mulsr64 $r4,$r2,$r7 | |
| 799c: 40 91 7c 0a srai $r9,$r2,#0x1f | |
| 79a0: 98 95 add333 $r2,$r2,$r5 | |
| 79a2: 90 45 srai45 $r2,#0x5 | |
| 79a4: 8a 49 sub45 $r2,$r9 | |
| 79a6: 42 21 20 24 mul $r2,$r2,$r8 | |
| 79aa: 40 21 0c 96 divsr $r2,$r4,$r2,$r3 | |
| 79ae: 96 91 zeh33 $r2,$r2 | |
| 79b0: ac 80 shi333 $r2,[$r0+#0x0] | |
| 79b2: ca 17 bnez38 $r2,0x79e0 | |
| 79b4: ac 40 shi333 $r1,[$r0+#0x0] | |
| 79b6: d5 15 j8 0x79e0 | |
| 79b8: 84 42 movi55 $r2,#0x2 | |
| 79ba: 4c 11 40 13 bne $r1,$r2,0x79e0 | |
| 79be: 02 10 7f fe lhi $r1,[$r0+#-4] | |
| 79c2: 40 10 a0 08 slli $r1,$r1,#0x8 | |
| 79c6: 40 10 8c 56 divsr $r1,$r2,$r1,$r3 | |
| 79ca: 96 49 zeh33 $r1,$r1 | |
| 79cc: ac 40 shi333 $r1,[$r0+#0x0] | |
| 79ce: c9 03 bnez38 $r1,0x79d4 | |
| 79d0: 12 a0 00 00 shi $r10,[$r0+#0x0] | |
| 79d4: 00 10 7f fe lbi $r1,[$r0+#-2] | |
| 79d8: 42 11 84 24 mul $r1,$r3,$r1 | |
| 79dc: 10 10 00 04 sbi $r1,[$r0+#0x4] | |
| 79e0: 50 00 00 26 addi $r0,$r0,#0x26 | |
| 79e4: 4c 03 7f d0 bne $r0,$r6,0x7984 | |
| 79e8: 3a 6f a8 04 lmw.bim $r6,[$sp],$r10,#0x0 ! {$r6~$r10} | |
| 79ec: dd 9e ret5 $lp | |
| 79ee: 92 00 nop16 | |
| 79f0: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 79f4: ef f4 addi10.sp #-12 | |
| 79f6: 96 49 zeh33 $r1,$r1 | |
| 79f8: 92 22 srli45 $r1,#0x2 | |
| 79fa: 46 7b a2 e8 sethi $r7,#0xba2e8 | |
| 79fe: 81 40 mov55 $r10,$r0 | |
| 7a00: 50 90 ff ff addi $r9,$r1,#-1 | |
| 7a04: 58 73 8b a3 ori $r7,$r7,#0xba3 | |
| 7a08: 45 c0 00 00 movi $fp,#0x0 | |
| 7a0c: 50 8f 80 04 addi $r8,$sp,#0x4 | |
| 7a10: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 7a14: 80 6a mov55 $r3,$r10 | |
| 7a16: 80 28 mov55 $r1,$r8 | |
| 7a18: 44 20 00 04 movi $r2,#0x4 | |
| 7a1c: 49 ff ca b2 jal 0xf80 | |
| 7a20: 00 14 00 03 lbi $r1,[$r8+#0x3] | |
| 7a24: 42 20 9c 69 mulr64 $r2,$r1,$r7 | |
| 7a28: 40 50 8c 09 srli $r5,$r1,#0x3 | |
| 7a2c: 40 21 90 09 srli $r2,$r3,#0x4 | |
| 7a30: 3e 08 0b 74 addi.gp $r0,#0xb74 | |
| 7a34: 44 30 00 16 movi $r3,#0x16 | |
| 7a38: 38 60 14 00 lb $r6,[$r0+($r5<<#0x0)] | |
| 7a3c: 54 40 80 07 andi $r4,$r1,#0x7 | |
| 7a40: 42 11 0c 75 msubr32 $r1,$r2,$r3 | |
| 7a44: 84 61 movi55 $r3,#0x1 | |
| 7a46: 40 01 90 0c sll $r0,$r3,$r4 | |
| 7a4a: 40 00 18 04 or $r0,$r0,$r6 | |
| 7a4e: 3e 48 0b 74 addi.gp $r4,#0xb74 | |
| 7a52: 96 90 zeb33 $r2,$r2 | |
| 7a54: 51 ce 00 01 addi $fp,$fp,#0x1 | |
| 7a58: 96 48 zeb33 $r1,$r1 | |
| 7a5a: 38 02 14 08 sb $r0,[$r4+($r5<<#0x0)] | |
| 7a5e: e6 46 slti45 $r2,#0x6 | |
| 7a60: e8 20 beqzs8 0x7aa0 | |
| 7a62: 80 01 mov55 $r0,$r1 | |
| 7a64: 8c 75 addi45 $r3,#0x15 | |
| 7a66: 42 01 0c 73 maddr32 $r0,$r2,$r3 | |
| 7a6a: 80 40 mov55 $r2,$r0 | |
| 7a6c: e2 23 slt45 $r1,$r3 | |
| 7a6e: e8 19 beqzs8 0x7aa0 | |
| 7a70: 44 00 00 64 movi $r0,#0x64 | |
| 7a74: 3e 48 03 03 addi.gp $r4,#0x303 | |
| 7a78: 38 02 0a 08 sb $r0,[$r4+($r2<<#0x2)] | |
| 7a7c: 00 34 00 02 lbi $r3,[$r8+#0x2] | |
| 7a80: 3e 18 03 02 addi.gp $r1,#0x302 | |
| 7a84: 38 30 8a 08 sb $r3,[$r1+($r2<<#0x2)] | |
| 7a88: 00 04 00 00 lbi $r0,[$r8+#0x0] | |
| 7a8c: 3e 48 03 00 addi.gp $r4,#0x300 | |
| 7a90: 38 02 0a 08 sb $r0,[$r4+($r2<<#0x2)] | |
| 7a94: 00 34 00 01 lbi $r3,[$r8+#0x1] | |
| 7a98: 3e 18 03 01 addi.gp $r1,#0x301 | |
| 7a9c: 38 30 8a 08 sb $r3,[$r1+($r2<<#0x2)] | |
| 7aa0: 8d 44 addi45 $r10,#0x4 | |
| 7aa2: e3 3c slt45 $r9,$fp | |
| 7aa4: e8 b6 beqzs8 0x7a10 | |
| 7aa6: ec 0c addi10.sp #0xc | |
| 7aa8: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 7aac: dd 9e ret5 $lp | |
| 7aae: 92 00 nop16 | |
| 7ab0: 3b ff fc bc smw.adm $sp,[$sp],$sp,#0x2 ! {$lp} | |
| 7ab4: ef fc addi10.sp #-4 | |
| 7ab6: 96 89 zeh33 $r2,$r1 | |
| 7ab8: 5c 31 02 11 slti $r3,$r2,#0x211 | |
| 7abc: 44 10 02 10 movi $r1,#0x210 | |
| 7ac0: 40 20 8c 1a cmovz $r2,$r1,$r3 | |
| 7ac4: 50 30 00 00 addi $r3,$r0,#0x0 | |
| 7ac8: 46 f0 01 00 sethi $r15,#0x100 | |
| 7acc: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 7ad0: 3e 18 03 00 addi.gp $r1,#0x300 | |
| 7ad4: 49 ff ca 56 jal 0xf80 | |
| 7ad8: 3e 08 0b 74 addi.gp $r0,#0xb74 | |
| 7adc: 44 10 00 ff movi $r1,#0xff | |
| 7ae0: 44 20 00 16 movi $r2,#0x16 | |
| 7ae4: ec 04 addi10.sp #0x4 | |
| 7ae6: 3b ff fc 84 lmw.bim $sp,[$sp],$sp,#0x2 ! {$lp} | |
| 7aea: 48 00 12 e7 j 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2); return | |
| 7aee: 92 00 nop16 | |
| 7af0: 3a 6f a0 bc smw.adm $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 7af4: ef e8 addi10.sp #-24 | |
| 7af6: 80 e0 mov55 $r7,$r0 | |
| 7af8: 44 10 00 00 movi $r1,#0x0 | |
| 7afc: 44 20 02 10 movi $r2,#0x210 | |
| 7b00: 3e 08 03 00 addi.gp $r0,#0x300 | |
| 7b04: 49 00 12 da jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 7b08: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 7b0c: 80 67 mov55 $r3,$r7 | |
| 7b0e: 80 3f mov55 $r1,$sp | |
| 7b10: 44 20 00 16 movi $r2,#0x16 | |
| 7b14: 50 7f 80 00 addi $r7,$sp,#0x0 | |
| 7b18: 49 ff ca 34 jal 0xf80 | |
| 7b1c: 3a 03 8c 04 lmw.bim $r0,[$r7],$r3,#0x0 ! {$r0~$r3} | |
| 7b20: 3e 58 0b 74 addi.gp $r5,#0xb74 | |
| 7b24: 81 05 mov55 $r8,$r5 | |
| 7b26: 44 40 00 64 movi $r4,#0x64 | |
| 7b2a: 3a 04 0c 24 smw.bim $r0,[$r8],$r3,#0x0 ! {$r0~$r3} | |
| 7b2e: 80 df mov55 $r6,$sp | |
| 7b30: 3a 03 84 00 lmw.bi $r0,[$r7],$r1,#0x0 ! {$r0~$r1} | |
| 7b34: 12 12 80 0a shi $r1,[$r5+#0x14] | |
| 7b38: b6 08 swi450 $r0,[$r8] | |
| 7b3a: 44 10 00 ff movi $r1,#0xff | |
| 7b3e: 80 1f mov55 $r0,$sp | |
| 7b40: 80 41 mov55 $r2,$r1 | |
| 7b42: 80 61 mov55 $r3,$r1 | |
| 7b44: 49 ff fc 90 jal 0x7464 | |
| 7b48: ec 18 addi10.sp #0x18 | |
| 7b4a: 3a 6f a0 84 lmw.bim $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 7b4e: dd 9e ret5 $lp | |
| 7b50: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 7b54: 51 ff ff f4 addi $sp,$sp,#-12 | |
| 7b58: 44 00 00 14 movi $r0,#0x14 | |
| 7b5c: 3e 1f ff 7c addi.gp $r1,#-132 | |
| 7b60: 49 ff e3 a2 jal 0x42a4 | |
| 7b64: 4e 02 00 92 beqz $r0,0x7c88 | |
| 7b68: 3c 10 00 0c lhi.gp $r1,[+#0x18] | |
| 7b6c: 3c 00 00 0b lhi.gp $r0,[+#0x16] | |
| 7b70: 4c 10 00 06 beq $r1,$r0,0x7b7c | |
| 7b74: 3c 3c 00 0a lwi.gp $r3,[+#0x28] | |
| 7b78: 48 00 00 1e j 0x7bb4 | |
| 7b7c: 3e 0f ff 3d addi.gp $r0,#-195 | |
| 7b80: a7 80 lbi333 $r6,[$r0+#0x0] | |
| 7b82: ce 0f bnez38 $r6,0x7ba0 | |
| 7b84: 80 40 mov55 $r2,$r0 | |
| 7b86: 84 01 movi55 $r0,#0x1 | |
| 7b88: 18 01 7f fe sbi.bi $r0,[$r2],#-2 | |
| 7b8c: 84 21 movi55 $r1,#0x1 | |
| 7b8e: af 90 sbi333 $r6,[$r2+#0x0] | |
| 7b90: 44 00 00 f1 movi $r0,#0xf1 | |
| 7b94: 49 ff df 16 jal 0x39c0 | |
| 7b98: 50 03 00 00 addi $r0,$r6,#0x0 | |
| 7b9c: 48 00 00 76 j 0x7c88 | |
| 7ba0: 3c 3c 00 0b lwi.gp $r3,[+#0x2c] | |
| 7ba4: 84 00 movi55 $r0,#0x0 | |
| 7ba6: 3e 00 00 09 sbi.gp $r0,[+#0x9] | |
| 7baa: 84 00 movi55 $r0,#0x0 | |
| 7bac: 3c 08 00 0c shi.gp $r0,[+#0x18] | |
| 7bb0: 3c 3e 00 0a swi.gp $r3,[+#0x28] | |
| 7bb4: 50 6f 80 04 addi $r6,$sp,#0x4 | |
| 7bb8: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 7bbc: 80 26 mov55 $r1,$r6 | |
| 7bbe: 84 44 movi55 $r2,#0x4 | |
| 7bc0: 49 ff c9 e0 jal 0xf80 | |
| 7bc4: a6 30 lbi333 $r0,[$r6+#0x0] | |
| 7bc6: c8 08 bnez38 $r0,0x7bd6 | |
| 7bc8: 3c 0c 00 0a lwi.gp $r0,[+#0x28] | |
| 7bcc: a4 71 lhi333 $r1,[$r6+#0x2] | |
| 7bce: 9c 04 addi333 $r0,$r0,#0x4 | |
| 7bd0: 49 ff ff 70 jal 0x7ab0 | |
| 7bd4: d5 15 j8 0x7bfe | |
| 7bd6: 9e 41 subi333 $r1,$r0,#0x1 | |
| 7bd8: 96 48 zeb33 $r1,$r1 | |
| 7bda: e6 22 slti45 $r1,#0x2 | |
| 7bdc: e8 08 beqzs8 0x7bec | |
| 7bde: 3c 0c 00 0a lwi.gp $r0,[+#0x28] | |
| 7be2: a4 71 lhi333 $r1,[$r6+#0x2] | |
| 7be4: 8c 04 addi45 $r0,#0x4 | |
| 7be6: 49 ff ff 05 jal 0x79f0 | |
| 7bea: d5 0a j8 0x7bfe | |
| 7bec: 84 23 movi55 $r1,#0x3 | |
| 7bee: 4c 00 c0 08 bne $r0,$r1,0x7bfe | |
| 7bf2: 3c 0c 00 0a lwi.gp $r0,[+#0x28] | |
| 7bf6: a4 71 lhi333 $r1,[$r6+#0x2] | |
| 7bf8: 9c 04 addi333 $r0,$r0,#0x4 | |
| 7bfa: 49 ff ff 7b jal 0x7af0 | |
| 7bfe: a6 31 lbi333 $r0,[$r6+#0x1] | |
| 7c00: 2e 20 00 0a lbi.gp $r2,[+#0xa] | |
| 7c04: 84 21 movi55 $r1,#0x1 | |
| 7c06: 40 00 80 1a cmovz $r0,$r1,$r0 | |
| 7c0a: 2e 10 00 09 lbi.gp $r1,[+#0x9] | |
| 7c0e: 42 00 08 24 mul $r0,$r0,$r2 | |
| 7c12: 9c 49 addi333 $r1,$r1,#0x1 | |
| 7c14: 96 00 zeb33 $r0,$r0 | |
| 7c16: 96 48 zeb33 $r1,$r1 | |
| 7c18: 3e 10 00 09 sbi.gp $r1,[+#0x9] | |
| 7c1c: ae 31 sbi333 $r0,[$r6+#0x1] | |
| 7c1e: e2 20 slt45 $r1,$r0 | |
| 7c20: e9 10 bnezs8 0x7c40 | |
| 7c22: 3c 0c 00 0a lwi.gp $r0,[+#0x28] | |
| 7c26: a4 b1 lhi333 $r2,[$r6+#0x2] | |
| 7c28: 3c 10 00 0c lhi.gp $r1,[+#0x18] | |
| 7c2c: 9c 04 addi333 $r0,$r0,#0x4 | |
| 7c2e: 98 02 add333 $r0,$r0,$r2 | |
| 7c30: 9c 49 addi333 $r1,$r1,#0x1 | |
| 7c32: 84 60 movi55 $r3,#0x0 | |
| 7c34: 3e 30 00 09 sbi.gp $r3,[+#0x9] | |
| 7c38: 3c 18 00 0c shi.gp $r1,[+#0x18] | |
| 7c3c: 3c 0e 00 0a swi.gp $r0,[+#0x28] | |
| 7c40: 2e 00 00 0b lbi.gp $r0,[+#0xb] | |
| 7c44: c0 21 beqz38 $r0,0x7c86 | |
| 7c46: 84 c0 movi55 $r6,#0x0 | |
| 7c48: 44 80 00 26 movi $r8,#0x26 | |
| 7c4c: 45 c0 a2 14 movi $fp,#0xa214 ; 0xa214 is in our data section.. | |
| 7c50: 42 03 20 24 mul $r0,$r6,$r8 | |
| 7c54: 3e 28 0b 8c addi.gp $r2,#0xb8c | |
| 7c58: 98 02 add333 $r0,$r0,$r2 | |
| 7c5a: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 7c5c: c9 04 bnez38 $r1,0x7c64 | |
| 7c5e: 49 ff fc 5f jal 0x751c | |
| 7c62: d5 0c j8 0x7c7a | |
| 7c64: 44 20 00 01 movi $r2,#0x1 | |
| 7c68: 4c 11 40 05 bne $r1,$r2,0x7c72 | |
| 7c6c: 49 ff fc dc jal 0x7624 | |
| 7c70: d5 05 j8 0x7c7a | |
| 7c72: 84 42 movi55 $r2,#0x2 | |
| 7c74: 4c 11 40 03 bne $r1,$r2,0x7c7a | |
| 7c78: dd 3c jral5 $fp | |
| 7c7a: 9d b1 addi333 $r6,$r6,#0x1 | |
| 7c7c: 2e 00 00 0b lbi.gp $r0,[+#0xb] | |
| 7c80: 97 b0 zeb33 $r6,$r6 | |
| 7c82: e2 c0 slt45 $r6,$r0 | |
| 7c84: e9 e6 bnezs8 0x7c50 | |
| 7c86: 84 01 movi55 $r0,#0x1 | |
| 7c88: ec 0c addi10.sp #0xc | |
| 7c8a: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 7c8e: dd 9e ret5 $lp | |
| 7c90: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 7c94: ef c4 addi10.sp #-60 | |
| 7c96: 3e 6f ff 38 addi.gp $r6,#-200 | |
| 7c9a: 3c 6f ff 9f swi.gp $r6,[+#-388] | |
| 7c9e: 84 20 movi55 $r1,#0x0 | |
| 7ca0: 44 20 02 10 movi $r2,#0x210 | |
| 7ca4: 3e 08 03 00 addi.gp $r0,#0x300 | |
| 7ca8: 49 00 12 08 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 7cac: 44 10 00 00 movi $r1,#0x0 | |
| 7cb0: 44 20 04 74 movi $r2,#0x474 | |
| 7cb4: 3e 08 0b 8c addi.gp $r0,#0xb8c | |
| 7cb8: 49 00 12 00 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 7cbc: 3e 28 0b 74 addi.gp $r2,#0xb74 | |
| 7cc0: 84 a0 movi55 $r5,#0x0 | |
| 7cc2: 80 82 mov55 $r4,$r2 | |
| 7cc4: ab 61 swi333.bi $r5,[$r4],#0x4 | |
| 7cc6: b6 a4 swi450 $r5,[$r4] | |
| 7cc8: 50 41 00 08 addi $r4,$r2,#0x8 | |
| 7ccc: b6 a4 swi450 $r5,[$r4] | |
| 7cce: 50 41 00 0c addi $r4,$r2,#0xc | |
| 7cd2: b6 a4 swi450 $r5,[$r4] | |
| 7cd4: 50 41 00 10 addi $r4,$r2,#0x10 | |
| 7cd8: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 7cdc: a6 f3 lbi333 $r3,[$r6+#0x3] | |
| 7cde: b6 a4 swi450 $r5,[$r4] | |
| 7ce0: 50 41 00 14 addi $r4,$r2,#0x14 | |
| 7ce4: 51 cf 80 14 addi $fp,$sp,#0x14 | |
| 7ce8: ad 60 shi333 $r5,[$r4+#0x0] | |
| 7cea: 94 dc slli333 $r3,$r3,#0x4 | |
| 7cec: 80 3c mov55 $r1,$fp | |
| 7cee: 44 20 00 10 movi $r2,#0x10 | |
| 7cf2: 49 ff c9 47 jal 0xf80 | |
| 7cf6: 80 1c mov55 $r0,$fp | |
| 7cf8: 50 3f 80 24 addi $r3,$sp,#0x24 | |
| 7cfc: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 7cfe: 44 50 00 ff movi $r5,#0xff | |
| 7d02: 9c 01 addi333 $r0,$r0,#0x1 | |
| 7d04: 4c 12 c0 06 bne $r1,$r5,0x7d10 | |
| 7d08: 4c 01 ff fa bne $r0,$r3,0x7cfc | |
| 7d0c: 48 00 01 26 j 0x7f58 | |
| 7d10: 00 9e 00 01 lbi $r9,[$fp+#0x1] | |
| 7d14: 00 3e 00 02 lbi $r3,[$fp+#0x2] | |
| 7d18: 2e 17 ff 39 lbi.gp $r1,[+#-199] | |
| 7d1c: 44 00 d5 40 movi $r0,#0xd540 | |
| 7d20: 00 5e 00 00 lbi $r5,[$fp+#0x0] | |
| 7d24: 00 4e 00 0a lbi $r4,[$fp+#0xa] | |
| 7d28: 00 6e 00 09 lbi $r6,[$fp+#0x9] | |
| 7d2c: 38 20 05 01 lh $r2,[$r0+($r1<<#0x1)] | |
| 7d30: 40 31 c0 08 slli $r3,$r3,#0x10 | |
| 7d34: 40 94 a0 08 slli $r9,$r9,#0x8 | |
| 7d38: 46 0c cc cc sethi $r0,#0xccccc | |
| 7d3c: 00 8e 00 05 lbi $r8,[$fp+#0x5] | |
| 7d40: 40 94 8c 04 or $r9,$r9,$r3 | |
| 7d44: 58 00 0c cd ori $r0,$r0,#0xccd | |
| 7d48: 00 7e 00 04 lbi $r7,[$fp+#0x4] | |
| 7d4c: 42 21 00 69 mulr64 $r2,$r2,$r0 | |
| 7d50: 40 94 94 04 or $r9,$r9,$r5 | |
| 7d54: 40 02 40 08 slli $r0,$r4,#0x10 | |
| 7d58: 00 5e 00 08 lbi $r5,[$fp+#0x8] | |
| 7d5c: 00 4e 00 0b lbi $r4,[$fp+#0xb] | |
| 7d60: 40 63 20 08 slli $r6,$r6,#0x8 | |
| 7d64: 00 1e 00 03 lbi $r1,[$fp+#0x3] | |
| 7d68: 40 63 00 04 or $r6,$r6,$r0 | |
| 7d6c: 40 84 20 08 slli $r8,$r8,#0x8 | |
| 7d70: 40 74 1c 04 or $r7,$r8,$r7 | |
| 7d74: 40 53 14 04 or $r5,$r6,$r5 | |
| 7d78: 40 42 60 08 slli $r4,$r4,#0x18 | |
| 7d7c: f5 81 swi37.sp $r5,[+#0x4] | |
| 7d7e: f4 82 swi37.sp $r4,[+#0x8] | |
| 7d80: 40 51 90 09 srli $r5,$r3,#0x4 | |
| 7d84: 3c 78 00 0b shi.gp $r7,[+#0x16] | |
| 7d88: 40 10 e0 08 slli $r1,$r1,#0x18 | |
| 7d8c: 41 e4 84 04 or $lp,$r9,$r1 | |
| 7d90: 3e 50 00 0a sbi.gp $r5,[+#0xa] | |
| 7d94: 3d ee 00 0b swi.gp $lp,[+#0x2c] | |
| 7d98: f5 01 lwi37.sp $r5,[+#0x4] | |
| 7d9a: f7 02 lwi37.sp $r7,[+#0x8] | |
| 7d9c: 40 52 9c 04 or $r5,$r5,$r7 | |
| 7da0: f5 83 swi37.sp $r5,[+#0xc] | |
| 7da2: 84 a0 movi55 $r5,#0x0 | |
| 7da4: 3e 50 00 09 sbi.gp $r5,[+#0x9] | |
| 7da8: 3d ee 00 0a swi.gp $lp,[+#0x28] | |
| 7dac: 00 5e 00 0c lbi $r5,[$fp+#0xc] | |
| 7db0: 46 40 01 00 sethi $r4,#0x100 | |
| 7db4: 3e 50 00 0b sbi.gp $r5,[+#0xb] | |
| 7db8: 84 e0 movi55 $r7,#0x0 | |
| 7dba: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 7dbe: 50 9f 80 34 addi $r9,$sp,#0x34 | |
| 7dc2: 3c 78 00 0c shi.gp $r7,[+#0x18] | |
| 7dc6: b6 9f swi450 $r4,[$sp] | |
| 7dc8: 80 7e mov55 $r3,$lp | |
| 7dca: 80 29 mov55 $r1,$r9 | |
| 7dcc: 44 20 00 04 movi $r2,#0x4 | |
| 7dd0: 49 ff c8 d8 jal 0xf80 | |
| 7dd4: 00 04 80 00 lbi $r0,[$r9+#0x0] | |
| 7dd8: b4 9f lwi450 $r4,[$sp] | |
| 7dda: c8 0a bnez38 $r0,0x7dee | |
| 7ddc: 3c 0c 00 0a lwi.gp $r0,[+#0x28] | |
| 7de0: 02 14 80 01 lhi $r1,[$r9+#0x2] | |
| 7de4: 9c 04 addi333 $r0,$r0,#0x4 | |
| 7de6: 49 ff fe 65 jal 0x7ab0 | |
| 7dea: b4 9f lwi450 $r4,[$sp] | |
| 7dec: d5 1c j8 0x7e24 | |
| 7dee: 9e 81 subi333 $r2,$r0,#0x1 | |
| 7df0: 96 90 zeb33 $r2,$r2 | |
| 7df2: e6 42 slti45 $r2,#0x2 | |
| 7df4: e8 0b beqzs8 0x7e0a | |
| 7df6: 3c 0c 00 0a lwi.gp $r0,[+#0x28] | |
| 7dfa: 02 14 80 01 lhi $r1,[$r9+#0x2] | |
| 7dfe: 9c 04 addi333 $r0,$r0,#0x4 | |
| 7e00: b6 9f swi450 $r4,[$sp] | |
| 7e02: 49 ff fd f7 jal 0x79f0 | |
| 7e06: b4 9f lwi450 $r4,[$sp] | |
| 7e08: d5 0e j8 0x7e24 | |
| 7e0a: 84 e3 movi55 $r7,#0x3 | |
| 7e0c: 4c 03 c0 0c bne $r0,$r7,0x7e24 | |
| 7e10: 3c 0c 00 0a lwi.gp $r0,[+#0x28] | |
| 7e14: 02 14 80 01 lhi $r1,[$r9+#0x2] | |
| 7e18: 9c 04 addi333 $r0,$r0,#0x4 | |
| 7e1a: b6 9f swi450 $r4,[$sp] | |
| 7e1c: 49 ff fe 6a jal 0x7af0 | |
| 7e20: 04 4f 80 00 lwi $r4,[$sp+#0x0] | |
| 7e24: 00 04 80 01 lbi $r0,[$r9+#0x1] | |
| 7e28: 2e 70 00 0a lbi.gp $r7,[+#0xa] | |
| 7e2c: 84 41 movi55 $r2,#0x1 | |
| 7e2e: 40 01 00 1a cmovz $r0,$r2,$r0 | |
| 7e32: 2e 20 00 09 lbi.gp $r2,[+#0x9] | |
| 7e36: 42 00 1c 24 mul $r0,$r0,$r7 | |
| 7e3a: 9c 91 addi333 $r2,$r2,#0x1 | |
| 7e3c: 96 00 zeb33 $r0,$r0 | |
| 7e3e: 96 90 zeb33 $r2,$r2 | |
| 7e40: 3e 20 00 09 sbi.gp $r2,[+#0x9] | |
| 7e44: 10 04 80 01 sbi $r0,[$r9+#0x1] | |
| 7e48: e2 40 slt45 $r2,$r0 | |
| 7e4a: e9 11 bnezs8 0x7e6c | |
| 7e4c: 3c 2c 00 0a lwi.gp $r2,[+#0x28] | |
| 7e50: 02 04 80 01 lhi $r0,[$r9+#0x2] | |
| 7e54: 3c 10 00 0c lhi.gp $r1,[+#0x18] | |
| 7e58: 9c 94 addi333 $r2,$r2,#0x4 | |
| 7e5a: 98 10 add333 $r0,$r2,$r0 | |
| 7e5c: 9c 49 addi333 $r1,$r1,#0x1 | |
| 7e5e: 84 e0 movi55 $r7,#0x0 | |
| 7e60: 3e 70 00 09 sbi.gp $r7,[+#0x9] | |
| 7e64: 3c 18 00 0c shi.gp $r1,[+#0x18] | |
| 7e68: 3c 0e 00 0a swi.gp $r0,[+#0x28] | |
| 7e6c: 2e 00 00 0b lbi.gp $r0,[+#0xb] | |
| 7e70: e6 1f slti45 $r0,#0x1f | |
| 7e72: e9 0a bnezs8 0x7e86 | |
| 7e74: 44 10 00 1e movi $r1,#0x1e | |
| 7e78: 3e 10 00 0b sbi.gp $r1,[+#0xb] | |
| 7e7c: 84 60 movi55 $r3,#0x0 | |
| 7e7e: f3 81 swi37.sp $r3,[+#0x4] | |
| 7e80: 50 8f 80 16 addi $r8,$sp,#0x16 | |
| 7e84: d5 04 j8 0x7e8c | |
| 7e86: c8 fb bnez38 $r0,0x7e7c | |
| 7e88: 48 00 00 62 j 0x7f4c | |
| 7e8c: f4 01 lwi37.sp $r4,[+#0x4] | |
| 7e8e: 44 50 00 26 movi $r5,#0x26 | |
| 7e92: 42 a2 14 24 mul $r10,$r4,$r5 | |
| 7e96: 3e 18 0b 8c addi.gp $r1,#0xb8c | |
| 7e9a: 88 2a add45 $r1,$r10 | |
| 7e9c: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 7ea0: f3 03 lwi37.sp $r3,[+#0xc] | |
| 7ea2: f1 82 swi37.sp $r1,[+#0x8] | |
| 7ea4: 80 3c mov55 $r1,$fp | |
| 7ea6: 9e ae subi333 $r2,$r5,#0x6 | |
| 7ea8: 49 ff c8 6c jal 0xf80 | |
| 7eac: 00 5e 00 00 lbi $r5,[$fp+#0x0] | |
| 7eb0: f0 02 lwi37.sp $r0,[+#0x8] | |
| 7eb2: 18 50 00 01 sbi.bi $r5,[$r0],#0x1 | |
| 7eb6: 80 28 mov55 $r1,$r8 | |
| 7eb8: 44 20 00 16 movi $r2,#0x16 | |
| 7ebc: 49 00 10 f4 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 7ec0: 00 2e 00 1d lbi $r2,[$fp+#0x1d] | |
| 7ec4: 00 5e 00 1f lbi $r5,[$fp+#0x1f] | |
| 7ec8: 00 7e 00 1c lbi $r7,[$fp+#0x1c] | |
| 7ecc: 00 6e 00 1e lbi $r6,[$fp+#0x1e] | |
| 7ed0: 40 21 20 08 slli $r2,$r2,#0x8 | |
| 7ed4: 3e 18 0b a4 addi.gp $r1,#0xba4 | |
| 7ed8: 40 52 a0 08 slli $r5,$r5,#0x8 | |
| 7edc: 40 71 1c 04 or $r7,$r2,$r7 | |
| 7ee0: 40 52 98 04 or $r5,$r5,$r6 | |
| 7ee4: 40 25 04 00 add $r2,$r10,$r1 | |
| 7ee8: ad 52 shi333 $r5,[$r2+#0x4] | |
| 7eea: 00 5e 00 18 lbi $r5,[$fp+#0x18] | |
| 7eee: 3e 38 0b 9c addi.gp $r3,#0xb9c | |
| 7ef2: 40 45 0c 00 add $r4,$r10,$r3 | |
| 7ef6: f0 02 lwi37.sp $r0,[+#0x8] | |
| 7ef8: ad d1 shi333 $r7,[$r2+#0x2] | |
| 7efa: af 67 sbi333 $r5,[$r4+#0x7] | |
| 7efc: 00 90 00 00 lbi $r9,[$r0+#0x0] | |
| 7f00: 00 7e 00 19 lbi $r7,[$fp+#0x19] | |
| 7f04: af d0 sbi333 $r7,[$r2+#0x0] | |
| 7f06: 00 0e 00 1a lbi $r0,[$fp+#0x1a] | |
| 7f0a: ae 11 sbi333 $r0,[$r2+#0x1] | |
| 7f0c: f1 03 lwi37.sp $r1,[+#0xc] | |
| 7f0e: 50 10 80 20 addi $r1,$r1,#0x20 | |
| 7f12: f1 83 swi37.sp $r1,[+#0xc] | |
| 7f14: 4e 93 00 06 bnez $r9,0x7f20 | |
| 7f18: f0 02 lwi37.sp $r0,[+#0x8] | |
| 7f1a: 49 ff fa f7 jal 0x7508 | |
| 7f1e: d5 0e j8 0x7f3a | |
| 7f20: 84 61 movi55 $r3,#0x1 | |
| 7f22: 4c 91 c0 06 bne $r9,$r3,0x7f2e | |
| 7f26: f0 02 lwi37.sp $r0,[+#0x8] | |
| 7f28: 49 ff fb 04 jal 0x7530 | |
| 7f2c: d5 07 j8 0x7f3a | |
| 7f2e: 84 a2 movi55 $r5,#0x2 | |
| 7f30: 4c 92 c0 05 bne $r9,$r5,0x7f3a | |
| 7f34: f0 02 lwi37.sp $r0,[+#0x8] | |
| 7f36: 49 ff fc 41 jal 0x77b8 | |
| 7f3a: f0 01 lwi37.sp $r0,[+#0x4] | |
| 7f3c: 9c 41 addi333 $r1,$r0,#0x1 | |
| 7f3e: 2e 00 00 0b lbi.gp $r0,[+#0xb] | |
| 7f42: 96 48 zeb33 $r1,$r1 | |
| 7f44: f1 81 swi37.sp $r1,[+#0x4] | |
| 7f46: e2 20 slt45 $r1,$r0 | |
| 7f48: 4e f3 ff a2 bnez $r15,0x7e8c | |
| 7f4c: 3e 1f ff 7c addi.gp $r1,#-132 | |
| 7f50: 84 00 movi55 $r0,#0x0 | |
| 7f52: 49 ff e1 a9 jal 0x42a4 | |
| 7f56: d5 06 j8 0x7f62 | |
| 7f58: 46 00 01 00 sethi $r0,#0x100 | |
| 7f5c: 84 20 movi55 $r1,#0x0 | |
| 7f5e: 3c 1f ff e0 swi.gp $r1,[+#-128] | |
| 7f62: ec 3c addi10.sp #0x3c | |
| 7f64: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 7f68: dd 9e ret5 $lp | |
| 7f6a: 92 00 nop16 | |
| 7f6c: 3e 0f ff 40 addi.gp $r0,#-192 | |
| 7f70: 84 2a movi55 $r1,#0xa | |
| 7f72: 18 10 00 01 sbi.bi $r1,[$r0],#0x1 | |
| 7f76: 84 22 movi55 $r1,#0x2 | |
| 7f78: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 7f7a: dd 9e ret5 $lp | |
| 7f7c: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 7f80: 51 ff ff ec addi $sp,$sp,#-20 | |
| 7f84: 2e 17 ff 41 lbi.gp $r1,[+#-191] | |
| 7f88: 44 00 d5 4c movi $r0,#0xd54c | |
| 7f8c: 38 00 05 01 lh $r0,[$r0+($r1<<#0x1)] | |
| 7f90: 3e 1f ff 7c addi.gp $r1,#-132 | |
| 7f94: 49 ff e1 88 jal 0x42a4 | |
| 7f98: c0 06 beqz38 $r0,0x7fa4 | |
| 7f9a: 84 a0 movi55 $r5,#0x0 | |
| 7f9c: 80 05 mov55 $r0,$r5 | |
| 7f9e: 44 60 00 58 movi $r6,#0x58 | |
| 7fa2: d5 1b j8 0x7fd8 | |
| 7fa4: 84 20 movi55 $r1,#0x0 | |
| 7fa6: f1 81 swi37.sp $r1,[+#0x4] | |
| 7fa8: 44 30 00 64 movi $r3,#0x64 | |
| 7fac: 50 8f 80 0f addi $r8,$sp,#0xf | |
| 7fb0: 50 7f 80 0e addi $r7,$sp,#0xe | |
| 7fb4: 50 6f 80 0d addi $r6,$sp,#0xd | |
| 7fb8: d5 41 j8 0x803a | |
| 7fba: a6 c8 lbi333 $r3,[$r1+#0x0] | |
| 7fbc: 9c 91 addi333 $r2,$r2,#0x1 | |
| 7fbe: 96 90 zeb33 $r2,$r2 | |
| 7fc0: 9f 19 subi333 $r4,$r3,#0x1 | |
| 7fc2: c3 03 beqz38 $r3,0x7fc8 | |
| 7fc4: af 08 sbi333 $r4,[$r1+#0x0] | |
| 7fc6: 84 01 movi55 $r0,#0x1 | |
| 7fc8: 44 30 00 16 movi $r3,#0x16 | |
| 7fcc: 9c 4c addi333 $r1,$r1,#0x4 | |
| 7fce: 4c 21 ff f6 bne $r2,$r3,0x7fba | |
| 7fd2: 9d 69 addi333 $r5,$r5,#0x1 | |
| 7fd4: 84 86 movi55 $r4,#0x6 | |
| 7fd6: d4 e7 beqs38 $r4,0x7fa4 | |
| 7fd8: 42 12 98 24 mul $r1,$r5,$r6 | |
| 7fdc: 3e 38 03 00 addi.gp $r3,#0x300 | |
| 7fe0: 98 4b add333 $r1,$r1,$r3 | |
| 7fe2: 84 40 movi55 $r2,#0x0 | |
| 7fe4: 9c 4b addi333 $r1,$r1,#0x3 | |
| 7fe6: d5 ea j8 0x7fba | |
| 7fe8: 00 15 00 00 lbi $r1,[$r10+#0x0] | |
| 7fec: 8d 41 addi45 $r10,#0x1 | |
| 7fee: 40 1e 04 02 and $r1,$fp,$r1 | |
| 7ff2: c1 19 beqz38 $r1,0x8024 | |
| 7ff4: 00 04 80 00 lbi $r0,[$r9+#0x0] | |
| 7ff8: c8 12 bnez38 $r0,0x801c | |
| 7ffa: b6 7f swi450 $r3,[$sp] | |
| 7ffc: 80 08 mov55 $r0,$r8 | |
| 7ffe: 80 27 mov55 $r1,$r7 | |
| 8000: 80 46 mov55 $r2,$r6 | |
| 8002: 49 ff dd e1 jal 0x3bc4 | |
| 8006: a6 32 lbi333 $r0,[$r6+#0x2] | |
| 8008: 10 04 ff fd sbi $r0,[$r9+#-3] | |
| 800c: a6 71 lbi333 $r1,[$r6+#0x1] | |
| 800e: 10 14 ff fe sbi $r1,[$r9+#-2] | |
| 8012: a6 b0 lbi333 $r2,[$r6+#0x0] | |
| 8014: 10 24 ff ff sbi $r2,[$r9+#-1] | |
| 8018: 04 3f 80 00 lwi $r3,[$sp+#0x0] | |
| 801c: 10 34 80 00 sbi $r3,[$r9+#0x0] | |
| 8020: 44 00 00 01 movi $r0,#0x1 | |
| 8024: 3e 48 05 52 addi.gp $r4,#0x552 | |
| 8028: 8d 24 addi45 $r9,#0x4 | |
| 802a: 4c a2 7f df bne $r10,$r4,0x7fe8 | |
| 802e: f1 01 lwi37.sp $r1,[+#0x4] | |
| 8030: 84 46 movi55 $r2,#0x6 | |
| 8032: 9c 49 addi333 $r1,$r1,#0x1 | |
| 8034: f1 81 swi37.sp $r1,[+#0x4] | |
| 8036: 4c 11 00 11 beq $r1,$r2,0x8058 | |
| 803a: f4 01 lwi37.sp $r4,[+#0x4] | |
| 803c: 44 90 00 58 movi $r9,#0x58 | |
| 8040: 42 92 24 24 mul $r9,$r4,$r9 | |
| 8044: 3e 18 03 00 addi.gp $r1,#0x300 | |
| 8048: 89 21 add45 $r9,$r1 | |
| 804a: 87 81 movi55 $fp,#0x1 | |
| 804c: 41 ce 10 0c sll $fp,$fp,$r4 | |
| 8050: 8d 23 addi45 $r9,#0x3 | |
| 8052: 3e a8 05 3c addi.gp $r10,#0x53c | |
| 8056: d5 c9 j8 0x7fe8 | |
| 8058: ec 14 addi10.sp #0x14 | |
| 805a: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 805e: dd 9e ret5 $lp | |
| 8060: 3b ff fc bc smw.adm $sp,[$sp],$sp,#0x2 ! {$lp} | |
| 8064: ef fc addi10.sp #-4 | |
| 8066: 84 20 movi55 $r1,#0x0 | |
| 8068: 44 20 02 10 movi $r2,#0x210 | |
| 806c: 3e 08 03 00 addi.gp $r0,#0x300 | |
| 8070: 49 00 10 24 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 8074: 3e 3f ff 40 addi.gp $r3,#-192 | |
| 8078: 46 20 01 00 sethi $r2,#0x100 | |
| 807c: 84 00 movi55 $r0,#0x0 | |
| 807e: 3e 1f ff 7c addi.gp $r1,#-132 | |
| 8082: 3c 3f ff 9f swi.gp $r3,[+#-388] | |
| 8086: ec 04 addi10.sp #0x4 | |
| 8088: 3b ff fc 84 lmw.bim $sp,[$sp],$sp,#0x2 ! {$lp} | |
| 808c: 48 ff e1 0c j 0x42a4 | |
| 8090: 3e 0f ff 48 addi.gp $r0,#-184 | |
| 8094: 84 2a movi55 $r1,#0xa | |
| 8096: 18 10 00 01 sbi.bi $r1,[$r0],#0x1 | |
| 809a: 84 22 movi55 $r1,#0x2 | |
| 809c: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 809e: dd 9e ret5 $lp | |
| 80a0: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 80a4: 51 ff ff f4 addi $sp,$sp,#-12 | |
| 80a8: 2e 17 ff 49 lbi.gp $r1,[+#-183] | |
| 80ac: 44 00 d5 58 movi $r0,#0xd558 | |
| 80b0: 38 00 05 01 lh $r0,[$r0+($r1<<#0x1)] | |
| 80b4: 3e 1f ff 7c addi.gp $r1,#-132 | |
| 80b8: 49 ff e0 f6 jal 0x42a4 | |
| 80bc: c8 06 bnez38 $r0,0x80c8 | |
| 80be: 83 c0 mov55 $lp,$r0 | |
| 80c0: 44 a0 d2 e8 movi $r10,#0xd2e8 | |
| 80c4: 48 00 00 84 j 0x81cc | |
| 80c8: 47 c2 49 24 sethi $fp,#0x24924 | |
| 80cc: 59 ce 09 25 ori $fp,$fp,#0x925 | |
| 80d0: 3e 08 03 00 addi.gp $r0,#0x300 | |
| 80d4: 44 10 00 00 movi $r1,#0x0 | |
| 80d8: 44 20 02 10 movi $r2,#0x210 | |
| 80dc: 44 a0 d2 e8 movi $r10,#0xd2e8 | |
| 80e0: 49 00 0f ec jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 80e4: 3e 88 06 3b addi.gp $r8,#0x63b | |
| 80e8: 15 cf 80 01 swi $fp,[$sp+#0x4] | |
| 80ec: 87 c7 movi55 $lp,#0x7 | |
| 80ee: 44 90 00 64 movi $r9,#0x64 | |
| 80f2: 83 8a mov55 $fp,$r10 | |
| 80f4: 00 04 00 00 lbi $r0,[$r8+#0x0] | |
| 80f8: c0 63 beqz38 $r0,0x81be | |
| 80fa: 00 04 7f fe lbi $r0,[$r8+#-2] | |
| 80fe: 00 64 7f ff lbi $r6,[$r8+#-1] | |
| 8102: 9a 46 sub333 $r1,$r0,$r6 | |
| 8104: 97 ca seb33 $r7,$r1 | |
| 8106: 98 06 add333 $r0,$r0,$r6 | |
| 8108: 40 a0 00 10 seb $r10,$r0 | |
| 810c: 4e 75 00 26 bltz $r7,0x8158 | |
| 8110: f2 01 lwi37.sp $r2,[+#0x4] | |
| 8112: 80 a6 mov55 $r5,$r6 | |
| 8114: 42 03 08 69 mulr64 $r0,$r6,$r2 | |
| 8118: 9b 31 sub333 $r4,$r6,$r1 | |
| 811a: 92 81 srli45 $r4,#0x1 | |
| 811c: 98 a1 add333 $r2,$r4,$r1 | |
| 811e: 92 42 srli45 $r2,#0x2 | |
| 8120: 42 51 78 75 msubr32 $r5,$r2,$lp | |
| 8124: 94 fa slli333 $r3,$r7,#0x2 | |
| 8126: 96 a8 zeb33 $r2,$r5 | |
| 8128: 38 2e 0a 02 lw $r2,[$fp+($r2<<#0x2)] | |
| 812c: 3e 08 03 00 addi.gp $r0,#0x300 | |
| 8130: 98 58 add333 $r1,$r3,$r0 | |
| 8132: 40 41 40 09 srli $r4,$r2,#0x10 | |
| 8136: 40 31 20 09 srli $r3,$r2,#0x8 | |
| 813a: 84 00 movi55 $r0,#0x0 | |
| 813c: 96 d8 zeb33 $r3,$r3 | |
| 813e: 97 20 zeb33 $r4,$r4 | |
| 8140: 96 90 zeb33 $r2,$r2 | |
| 8142: 9c 01 addi333 $r0,$r0,#0x1 | |
| 8144: 96 00 zeb33 $r0,$r0 | |
| 8146: 84 a6 movi55 $r5,#0x6 | |
| 8148: ae 88 sbi333 $r2,[$r1+#0x0] | |
| 814a: ae c9 sbi333 $r3,[$r1+#0x1] | |
| 814c: af 0a sbi333 $r4,[$r1+#0x2] | |
| 814e: 10 90 80 03 sbi $r9,[$r1+#0x3] | |
| 8152: 50 10 80 58 addi $r1,$r1,#0x58 | |
| 8156: d8 f6 bnes38 $r0,0x8142 | |
| 8158: e5 56 sltsi45 $r10,#0x16 | |
| 815a: e8 27 beqzs8 0x81a8 | |
| 815c: f0 01 lwi37.sp $r0,[+#0x4] | |
| 815e: 80 26 mov55 $r1,$r6 | |
| 8160: 42 43 00 69 mulr64 $r4,$r6,$r0 | |
| 8164: 40 25 08 08 slli $r2,$r10,#0x2 | |
| 8168: 9b 35 sub333 $r4,$r6,$r5 | |
| 816a: 92 81 srli45 $r4,#0x1 | |
| 816c: 98 e5 add333 $r3,$r4,$r5 | |
| 816e: 92 62 srli45 $r3,#0x2 | |
| 8170: 42 11 f8 75 msubr32 $r1,$r3,$lp | |
| 8174: 96 c8 zeb33 $r3,$r1 | |
| 8176: 38 3e 0e 02 lw $r3,[$fp+($r3<<#0x2)] | |
| 817a: 3e 58 03 00 addi.gp $r5,#0x300 | |
| 817e: 40 41 a0 09 srli $r4,$r3,#0x8 | |
| 8182: 98 95 add333 $r2,$r2,$r5 | |
| 8184: 40 51 c0 09 srli $r5,$r3,#0x10 | |
| 8188: 84 00 movi55 $r0,#0x0 | |
| 818a: 97 20 zeb33 $r4,$r4 | |
| 818c: 97 68 zeb33 $r5,$r5 | |
| 818e: 96 d8 zeb33 $r3,$r3 | |
| 8190: 9c 01 addi333 $r0,$r0,#0x1 | |
| 8192: 96 00 zeb33 $r0,$r0 | |
| 8194: 84 26 movi55 $r1,#0x6 | |
| 8196: ae d0 sbi333 $r3,[$r2+#0x0] | |
| 8198: af 11 sbi333 $r4,[$r2+#0x1] | |
| 819a: af 52 sbi333 $r5,[$r2+#0x2] | |
| 819c: 10 91 00 03 sbi $r9,[$r2+#0x3] | |
| 81a0: 50 21 00 58 addi $r2,$r2,#0x58 | |
| 81a4: 4c 00 ff f6 bne $r0,$r1,0x8190 | |
| 81a8: 4e 74 00 08 bgez $r7,0x81b8 | |
| 81ac: e5 56 sltsi45 $r10,#0x16 | |
| 81ae: e9 05 bnezs8 0x81b8 | |
| 81b0: 84 40 movi55 $r2,#0x0 | |
| 81b2: 10 24 00 00 sbi $r2,[$r8+#0x0] | |
| 81b6: d5 04 j8 0x81be | |
| 81b8: 9c 31 addi333 $r0,$r6,#0x1 | |
| 81ba: 10 04 7f ff sbi $r0,[$r8+#-1] | |
| 81be: 8d 04 addi45 $r8,#0x4 | |
| 81c0: 3e 38 06 63 addi.gp $r3,#0x663 | |
| 81c4: 4c 81 ff 98 bne $r8,$r3,0x80f4 | |
| 81c8: 81 5c mov55 $r10,$fp | |
| 81ca: 87 c1 movi55 $lp,#0x1 | |
| 81cc: b5 0a lwi450 $r8,[$r10] | |
| 81ce: 84 c0 movi55 $r6,#0x0 | |
| 81d0: 40 94 40 09 srli $r9,$r8,#0x10 | |
| 81d4: 40 a4 20 09 srli $r10,$r8,#0x8 | |
| 81d8: 54 a5 00 ff andi $r10,$r10,#0xff | |
| 81dc: 54 94 80 ff andi $r9,$r9,#0xff | |
| 81e0: 54 84 00 ff andi $r8,$r8,#0xff | |
| 81e4: 87 81 movi55 $fp,#0x1 | |
| 81e6: 44 70 00 64 movi $r7,#0x64 | |
| 81ea: d5 39 j8 0x825c | |
| 81ec: 40 02 8c 0e sra $r0,$r5,$r3 | |
| 81f0: 96 04 xlsb33 $r0,$r0 | |
| 81f2: 97 18 zeb33 $r4,$r3 | |
| 81f4: c0 2a beqz38 $r0,0x8248 | |
| 81f6: 3e 08 06 3b addi.gp $r0,#0x63b | |
| 81fa: 84 40 movi55 $r2,#0x0 | |
| 81fc: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 81fe: 9c 04 addi333 $r0,$r0,#0x4 | |
| 8200: c9 20 bnez38 $r1,0x8240 | |
| 8202: 94 12 slli333 $r0,$r2,#0x2 | |
| 8204: 3e 58 06 38 addi.gp $r5,#0x638 | |
| 8208: 98 05 add333 $r0,$r0,$r5 | |
| 820a: 38 42 8a 08 sb $r4,[$r5+($r2<<#0x2)] | |
| 820e: af 81 sbi333 $r6,[$r0+#0x1] | |
| 8210: 11 c0 00 03 sbi $fp,[$r0+#0x3] | |
| 8214: 11 c0 00 02 sbi $fp,[$r0+#0x2] | |
| 8218: 3e 28 03 00 addi.gp $r2,#0x300 | |
| 821c: 94 32 slli333 $r0,$r6,#0x2 | |
| 821e: 98 02 add333 $r0,$r0,$r2 | |
| 8220: 9c 49 addi333 $r1,$r1,#0x1 | |
| 8222: 96 48 zeb33 $r1,$r1 | |
| 8224: 84 66 movi55 $r3,#0x6 | |
| 8226: 10 80 00 00 sbi $r8,[$r0+#0x0] | |
| 822a: 10 a0 00 01 sbi $r10,[$r0+#0x1] | |
| 822e: 10 90 00 02 sbi $r9,[$r0+#0x2] | |
| 8232: af c3 sbi333 $r7,[$r0+#0x3] | |
| 8234: 50 00 00 58 addi $r0,$r0,#0x58 | |
| 8238: 4c 11 ff f4 bne $r1,$r3,0x8220 | |
| 823c: 87 c1 movi55 $lp,#0x1 | |
| 823e: d5 09 j8 0x8250 | |
| 8240: 9c 91 addi333 $r2,$r2,#0x1 | |
| 8242: 84 2a movi55 $r1,#0xa | |
| 8244: 4c 20 ff dc bne $r2,$r1,0x81fc | |
| 8248: 9c d9 addi333 $r3,$r3,#0x1 | |
| 824a: 84 46 movi55 $r2,#0x6 | |
| 824c: 4c 31 7f d0 bne $r3,$r2,0x81ec | |
| 8250: 50 63 00 01 addi $r6,$r6,#0x1 | |
| 8254: 44 30 00 16 movi $r3,#0x16 | |
| 8258: 4c 61 80 08 beq $r6,$r3,0x8268 | |
| 825c: 3e 08 05 24 addi.gp $r0,#0x524 | |
| 8260: 38 50 18 00 lb $r5,[$r0+($r6<<#0x0)] | |
| 8264: 84 60 movi55 $r3,#0x0 | |
| 8266: d5 c3 j8 0x81ec | |
| 8268: 80 1e mov55 $r0,$lp | |
| 826a: ec 0c addi10.sp #0xc | |
| 826c: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 8270: dd 9e ret5 $lp | |
| 8272: 92 00 nop16 | |
| 8274: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 8278: 84 c0 movi55 $r6,#0x0 | |
| 827a: 3e 38 06 38 addi.gp $r3,#0x638 | |
| 827e: ab 99 swi333.bi $r6,[$r3],#0x4 | |
| 8280: ab 99 swi333.bi $r6,[$r3],#0x4 | |
| 8282: 80 26 mov55 $r1,$r6 | |
| 8284: ab 99 swi333.bi $r6,[$r3],#0x4 | |
| 8286: 44 20 02 10 movi $r2,#0x210 | |
| 828a: ab 99 swi333.bi $r6,[$r3],#0x4 | |
| 828c: 3e 08 03 00 addi.gp $r0,#0x300 | |
| 8290: ab 99 swi333.bi $r6,[$r3],#0x4 | |
| 8292: ab 99 swi333.bi $r6,[$r3],#0x4 | |
| 8294: ab 99 swi333.bi $r6,[$r3],#0x4 | |
| 8296: ab 99 swi333.bi $r6,[$r3],#0x4 | |
| 8298: ab 99 swi333.bi $r6,[$r3],#0x4 | |
| 829a: b6 c3 swi450 $r6,[$r3] | |
| 829c: 49 00 0f 0e jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 82a0: 3e 3f ff 48 addi.gp $r3,#-184 | |
| 82a4: 46 20 01 00 sethi $r2,#0x100 | |
| 82a8: 80 06 mov55 $r0,$r6 | |
| 82aa: 3e 1f ff 7c addi.gp $r1,#-132 | |
| 82ae: 3c 3f ff 9f swi.gp $r3,[+#-388] | |
| 82b2: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 82b6: 48 ff df f7 j 0x42a4 | |
| 82ba: 92 00 nop16 | |
| 82bc: 3e 0f ff 50 addi.gp $r0,#-176 | |
| 82c0: 44 10 00 14 movi $r1,#0x14 | |
| 82c4: 18 10 00 01 sbi.bi $r1,[$r0],#0x1 | |
| 82c8: 84 20 movi55 $r1,#0x0 | |
| 82ca: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 82cc: dd 9e ret5 $lp | |
| 82ce: 92 00 nop16 | |
| 82d0: 3a 6f a8 bc smw.adm $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 82d4: 44 00 00 14 movi $r0,#0x14 | |
| 82d8: 3e 1f ff 7c addi.gp $r1,#-132 | |
| 82dc: 49 ff df e4 jal 0x42a4 | |
| 82e0: c0 5a beqz38 $r0,0x8394 | |
| 82e2: 3e 0f ff 5b addi.gp $r0,#-165 | |
| 82e6: 28 30 7f ff lbsi.bi $r3,[$r0],#-1 | |
| 82ea: 44 10 00 16 movi $r1,#0x16 | |
| 82ee: 20 40 00 00 lbsi $r4,[$r0+#0x0] | |
| 82f2: 80 04 mov55 $r0,$r4 | |
| 82f4: 42 01 84 73 maddr32 $r0,$r3,$r1 | |
| 82f8: 2e 67 ff fa lbi.gp $r6,[+#-6] | |
| 82fc: 80 20 mov55 $r1,$r0 | |
| 82fe: 3e 08 03 00 addi.gp $r0,#0x300 | |
| 8302: 44 20 00 55 movi $r2,#0x55 | |
| 8306: 50 90 00 03 addi $r9,$r0,#0x3 | |
| 830a: 9d c1 addi333 $r7,$r0,#0x1 | |
| 830c: 50 80 00 02 addi $r8,$r0,#0x2 | |
| 8310: 44 a0 00 64 movi $r10,#0x64 | |
| 8314: 38 a4 86 08 sb $r10,[$r9+($r1<<#0x2)] | |
| 8318: 38 24 06 08 sb $r2,[$r8+($r1<<#0x2)] | |
| 831c: 38 23 86 08 sb $r2,[$r7+($r1<<#0x2)] | |
| 8320: 38 20 06 08 sb $r2,[$r0+($r1<<#0x2)] | |
| 8324: c6 15 beqz38 $r6,0x834e | |
| 8326: 2e 67 ff ea lbi.gp $r6,[+#-22] | |
| 832a: 84 61 movi55 $r3,#0x1 | |
| 832c: 4c 61 c0 0b bne $r6,$r3,0x8342 | |
| 8330: 3e 1f fe 78 addi.gp $r1,#-392 | |
| 8334: 08 00 80 01 lbi.bi $r0,[$r1],#0x1 | |
| 8338: a6 48 lbi333 $r1,[$r1+#0x0] | |
| 833a: 49 ff db 43 jal 0x39c0 | |
| 833e: 80 06 mov55 $r0,$r6 | |
| 8340: d5 2a j8 0x8394 | |
| 8342: 84 01 movi55 $r0,#0x1 | |
| 8344: 80 26 mov55 $r1,$r6 | |
| 8346: 49 ff dd fb jal 0x3f3c | |
| 834a: 84 01 movi55 $r0,#0x1 | |
| 834c: d5 24 j8 0x8394 | |
| 834e: 84 05 movi55 $r0,#0x5 | |
| 8350: 4c 30 40 0c bne $r3,$r0,0x8368 | |
| 8354: 84 6e movi55 $r3,#0xe | |
| 8356: 4c 41 c0 09 bne $r4,$r3,0x8368 | |
| 835a: 84 01 movi55 $r0,#0x1 | |
| 835c: 3e 07 ff fa sbi.gp $r0,[+#-6] | |
| 8360: 3e 18 07 60 addi.gp $r1,#0x760 | |
| 8364: 3c 1e 00 07 swi.gp $r1,[+#0x1c] | |
| 8368: 3e 0f ff 5d addi.gp $r0,#-163 | |
| 836c: 28 30 7f ff lbsi.bi $r3,[$r0],#-1 | |
| 8370: 44 10 00 24 movi $r1,#0x24 | |
| 8374: 20 20 00 00 lbsi $r2,[$r0+#0x0] | |
| 8378: 84 06 movi55 $r0,#0x6 | |
| 837a: 42 11 04 24 mul $r1,$r2,$r1 | |
| 837e: 80 40 mov55 $r2,$r0 | |
| 8380: 42 11 80 73 maddr32 $r1,$r3,$r0 | |
| 8384: 44 30 cf 70 movi $r3,#0xcf70 | |
| 8388: 3e 0f ff 58 addi.gp $r0,#-168 | |
| 838c: 98 4b add333 $r1,$r1,$r3 | |
| 838e: 49 00 0e 8b jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 8392: 84 01 movi55 $r0,#0x1 | |
| 8394: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 8398: dd 9e ret5 $lp | |
| 839a: 92 00 nop16 | |
| 839c: 3a 6f a0 bc smw.adm $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 83a0: 3e 3f ff 58 addi.gp $r3,#-168 | |
| 83a4: 80 a3 mov55 $r5,$r3 | |
| 83a6: 84 0e movi55 $r0,#0xe | |
| 83a8: 18 02 80 01 sbi.bi $r0,[$r5],#0x1 | |
| 83ac: 85 05 movi55 $r8,#0x5 | |
| 83ae: 84 81 movi55 $r4,#0x1 | |
| 83b0: 10 82 80 00 sbi $r8,[$r5+#0x0] | |
| 83b4: 84 c0 movi55 $r6,#0x0 | |
| 83b6: af 1d sbi333 $r4,[$r3+#0x5] | |
| 83b8: 9d da addi333 $r7,$r3,#0x2 | |
| 83ba: 3e 67 ff fa sbi.gp $r6,[+#-6] | |
| 83be: 3e 8f ff 50 addi.gp $r8,#-176 | |
| 83c2: 46 50 01 00 sethi $r5,#0x100 | |
| 83c6: 3c 8f ff 9f swi.gp $r8,[+#-388] | |
| 83ca: af b8 sbi333 $r6,[$r7+#0x0] | |
| 83cc: af 1b sbi333 $r4,[$r3+#0x3] | |
| 83ce: af 1c sbi333 $r4,[$r3+#0x4] | |
| 83d0: 84 20 movi55 $r1,#0x0 | |
| 83d2: 44 20 02 10 movi $r2,#0x210 | |
| 83d6: 3e 08 03 00 addi.gp $r0,#0x300 | |
| 83da: 49 00 0e 6f jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 83de: 84 00 movi55 $r0,#0x0 | |
| 83e0: 3e 1f ff 7c addi.gp $r1,#-132 | |
| 83e4: 3a 6f a0 84 lmw.bim $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 83e8: 48 ff df 5e j 0x42a4 | |
| 83ec: 46 10 01 00 sethi $r1,#0x100 | |
| 83f0: 2e 07 ff fb lbi.gp $r0,[+#-5] | |
| 83f4: 2e 27 ff fc lbi.gp $r2,[+#-4] | |
| 83f8: 4c 20 00 1d beq $r2,$r0,0x8432 | |
| 83fc: 3e 07 ff fc sbi.gp $r0,[+#-4] | |
| 8400: e6 08 slti45 $r0,#0x8 | |
| 8402: e8 18 beqzs8 0x8432 | |
| 8404: 54 00 00 02 andi $r0,$r0,#0x2 | |
| 8408: c0 08 beqz38 $r0,0x8418 | |
| 840a: 84 3f movi55 $r1,#-1 | |
| 840c: 3e 08 07 e4 addi.gp $r0,#0x7e4 | |
| 8410: 18 10 00 01 sbi.bi $r1,[$r0],#0x1 | |
| 8414: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8416: d5 0e j8 0x8432 | |
| 8418: 44 10 ce ec movi $r1,#0xceec | |
| 841c: 84 61 movi55 $r3,#0x1 | |
| 841e: 3e 37 ff e8 sbi.gp $r3,[+#-24] | |
| 8422: 08 20 80 01 lbi.bi $r2,[$r1],#0x1 | |
| 8426: 3e 08 07 e4 addi.gp $r0,#0x7e4 | |
| 842a: 18 20 00 01 sbi.bi $r2,[$r0],#0x1 | |
| 842e: a6 48 lbi333 $r1,[$r1+#0x0] | |
| 8430: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8432: dd 9e ret5 $lp | |
| 8434: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 8438: 51 ff ff fc addi $sp,$sp,#-4 | |
| 843c: 44 00 00 64 movi $r0,#0x64 | |
| 8440: 3e 1f ff bc addi.gp $r1,#-68 | |
| 8444: 49 ff df 30 jal 0x42a4 | |
| 8448: 4e 02 00 fb beqz $r0,0x863e | |
| 844c: 2e 37 ff e4 lbi.gp $r3,[+#-28] | |
| 8450: c3 08 beqz38 $r3,0x8460 | |
| 8452: 2e 07 ff e5 lbi.gp $r0,[+#-27] | |
| 8456: 2e 27 ff e6 lbi.gp $r2,[+#-26] | |
| 845a: 2e 17 ff e7 lbi.gp $r1,[+#-25] | |
| 845e: d5 17 j8 0x848c | |
| 8460: 2e 07 ff e5 lbi.gp $r0,[+#-27] | |
| 8464: c0 06 beqz38 $r0,0x8470 | |
| 8466: 2e 27 ff e6 lbi.gp $r2,[+#-26] | |
| 846a: 2e 17 ff e7 lbi.gp $r1,[+#-25] | |
| 846e: d5 0f j8 0x848c | |
| 8470: 2e 07 ff e6 lbi.gp $r0,[+#-26] | |
| 8474: c0 06 beqz38 $r0,0x8480 | |
| 8476: 80 40 mov55 $r2,$r0 | |
| 8478: 2e 17 ff e7 lbi.gp $r1,[+#-25] | |
| 847c: 80 03 mov55 $r0,$r3 | |
| 847e: d5 07 j8 0x848c | |
| 8480: 2e 17 ff e7 lbi.gp $r1,[+#-25] | |
| 8484: 4e 12 00 dd beqz $r1,0x863e | |
| 8488: 50 20 00 00 addi $r2,$r0,#0x0 | |
| 848c: 3f c8 08 50 addi.gp $fp,#0x850 | |
| 8490: 85 5f movi55 $r10,#-1 | |
| 8492: 80 9c mov55 $r4,$fp | |
| 8494: 18 a2 00 01 sbi.bi $r10,[$r4],#0x1 | |
| 8498: 3e 78 05 13 addi.gp $r7,#0x513 | |
| 849c: 01 e3 80 00 lbi $lp,[$r7+#0x0] | |
| 84a0: 10 a2 00 00 sbi $r10,[$r4+#0x0] | |
| 84a4: 4f e2 00 2c beqz $lp,0x84fc | |
| 84a8: 85 40 movi55 $r10,#0x0 | |
| 84aa: 10 a3 80 00 sbi $r10,[$r7+#0x0] | |
| 84ae: c3 09 beqz38 $r3,0x84c0 | |
| 84b0: 9e d9 subi333 $r3,$r3,#0x1 | |
| 84b2: 96 d8 zeb33 $r3,$r3 | |
| 84b4: 3e 78 05 1f addi.gp $r7,#0x51f | |
| 84b8: 10 a3 80 00 sbi $r10,[$r7+#0x0] | |
| 84bc: 3e 37 ff e4 sbi.gp $r3,[+#-28] | |
| 84c0: c0 0a beqz38 $r0,0x84d4 | |
| 84c2: 9e 01 subi333 $r0,$r0,#0x1 | |
| 84c4: 96 00 zeb33 $r0,$r0 | |
| 84c6: 85 20 movi55 $r9,#0x0 | |
| 84c8: 3e 78 05 23 addi.gp $r7,#0x523 | |
| 84cc: 10 93 80 00 sbi $r9,[$r7+#0x0] | |
| 84d0: 3e 07 ff e5 sbi.gp $r0,[+#-27] | |
| 84d4: c2 0a beqz38 $r2,0x84e8 | |
| 84d6: 9e 91 subi333 $r2,$r2,#0x1 | |
| 84d8: 96 90 zeb33 $r2,$r2 | |
| 84da: 85 00 movi55 $r8,#0x0 | |
| 84dc: 3e 78 05 17 addi.gp $r7,#0x517 | |
| 84e0: 10 83 80 00 sbi $r8,[$r7+#0x0] | |
| 84e4: 3e 27 ff e6 sbi.gp $r2,[+#-26] | |
| 84e8: c1 34 beqz38 $r1,0x8550 | |
| 84ea: 9e 49 subi333 $r1,$r1,#0x1 | |
| 84ec: 96 48 zeb33 $r1,$r1 | |
| 84ee: 44 70 00 00 movi $r7,#0x0 | |
| 84f2: 3e 70 05 1b sbi.gp $r7,[+#0x51b] | |
| 84f6: 3e 17 ff e7 sbi.gp $r1,[+#-25] | |
| 84fa: d5 2b j8 0x8550 | |
| 84fc: 44 a0 00 64 movi $r10,#0x64 | |
| 8500: 10 a3 80 00 sbi $r10,[$r7+#0x0] | |
| 8504: c3 0a beqz38 $r3,0x8518 | |
| 8506: 9e d9 subi333 $r3,$r3,#0x1 | |
| 8508: 54 31 80 ff andi $r3,$r3,#0xff | |
| 850c: 3e 78 05 1f addi.gp $r7,#0x51f | |
| 8510: 10 a3 80 00 sbi $r10,[$r7+#0x0] | |
| 8514: 3e 37 ff e4 sbi.gp $r3,[+#-28] | |
| 8518: c0 0a beqz38 $r0,0x852c | |
| 851a: 9e 01 subi333 $r0,$r0,#0x1 | |
| 851c: 96 00 zeb33 $r0,$r0 | |
| 851e: 81 2a mov55 $r9,$r10 | |
| 8520: 3e 78 05 23 addi.gp $r7,#0x523 | |
| 8524: 10 93 80 00 sbi $r9,[$r7+#0x0] | |
| 8528: 3e 07 ff e5 sbi.gp $r0,[+#-27] | |
| 852c: c2 0a beqz38 $r2,0x8540 | |
| 852e: 9e 91 subi333 $r2,$r2,#0x1 | |
| 8530: 96 90 zeb33 $r2,$r2 | |
| 8532: 81 0a mov55 $r8,$r10 | |
| 8534: 3e 78 05 17 addi.gp $r7,#0x517 | |
| 8538: 10 83 80 00 sbi $r8,[$r7+#0x0] | |
| 853c: 3e 27 ff e6 sbi.gp $r2,[+#-26] | |
| 8540: c1 08 beqz38 $r1,0x8550 | |
| 8542: 9e 49 subi333 $r1,$r1,#0x1 | |
| 8544: 96 48 zeb33 $r1,$r1 | |
| 8546: 80 ea mov55 $r7,$r10 | |
| 8548: 3e 70 05 1b sbi.gp $r7,[+#0x51b] | |
| 854c: 3e 17 ff e7 sbi.gp $r1,[+#-25] | |
| 8550: c3 08 beqz38 $r3,0x8560 | |
| 8552: 84 df movi55 $r6,#-1 | |
| 8554: 3e 58 07 fa addi.gp $r5,#0x7fa | |
| 8558: 18 62 80 01 sbi.bi $r6,[$r5],#0x1 | |
| 855c: af a8 sbi333 $r6,[$r5+#0x0] | |
| 855e: d5 13 j8 0x8584 | |
| 8560: 3e 58 07 fa addi.gp $r5,#0x7fa | |
| 8564: 20 62 80 00 lbsi $r6,[$r5+#0x0] | |
| 8568: 84 ff movi55 $r7,#-1 | |
| 856a: 4c 63 c0 0d bne $r6,$r7,0x8584 | |
| 856e: 44 60 cf 02 movi $r6,#0xcf02 | |
| 8572: 85 01 movi55 $r8,#0x1 | |
| 8574: 3e 87 ff e8 sbi.gp $r8,[+#-24] | |
| 8578: 08 73 00 01 lbi.bi $r7,[$r6],#0x1 | |
| 857c: 18 72 80 01 sbi.bi $r7,[$r5],#0x1 | |
| 8580: a7 b0 lbi333 $r6,[$r6+#0x0] | |
| 8582: af a8 sbi333 $r6,[$r5+#0x0] | |
| 8584: c0 08 beqz38 $r0,0x8594 | |
| 8586: 84 df movi55 $r6,#-1 | |
| 8588: 3e 58 07 f8 addi.gp $r5,#0x7f8 | |
| 858c: 18 62 80 01 sbi.bi $r6,[$r5],#0x1 | |
| 8590: af a8 sbi333 $r6,[$r5+#0x0] | |
| 8592: d5 13 j8 0x85b8 | |
| 8594: 3e 58 07 f8 addi.gp $r5,#0x7f8 | |
| 8598: 20 62 80 00 lbsi $r6,[$r5+#0x0] | |
| 859c: 84 ff movi55 $r7,#-1 | |
| 859e: 4c 63 c0 0d bne $r6,$r7,0x85b8 | |
| 85a2: 44 60 cf 00 movi $r6,#0xcf00 | |
| 85a6: 85 01 movi55 $r8,#0x1 | |
| 85a8: 3e 87 ff e8 sbi.gp $r8,[+#-24] | |
| 85ac: 08 73 00 01 lbi.bi $r7,[$r6],#0x1 | |
| 85b0: 18 72 80 01 sbi.bi $r7,[$r5],#0x1 | |
| 85b4: a7 b0 lbi333 $r6,[$r6+#0x0] | |
| 85b6: af a8 sbi333 $r6,[$r5+#0x0] | |
| 85b8: c2 08 beqz38 $r2,0x85c8 | |
| 85ba: 84 df movi55 $r6,#-1 | |
| 85bc: 3e 58 07 ce addi.gp $r5,#0x7ce | |
| 85c0: 18 62 80 01 sbi.bi $r6,[$r5],#0x1 | |
| 85c4: af a8 sbi333 $r6,[$r5+#0x0] | |
| 85c6: d5 13 j8 0x85ec | |
| 85c8: 3e 58 07 ce addi.gp $r5,#0x7ce | |
| 85cc: 20 62 80 00 lbsi $r6,[$r5+#0x0] | |
| 85d0: 84 ff movi55 $r7,#-1 | |
| 85d2: 4c 63 c0 0d bne $r6,$r7,0x85ec | |
| 85d6: 44 60 ce d6 movi $r6,#0xced6 | |
| 85da: 85 01 movi55 $r8,#0x1 | |
| 85dc: 3e 87 ff e8 sbi.gp $r8,[+#-24] | |
| 85e0: 08 73 00 01 lbi.bi $r7,[$r6],#0x1 | |
| 85e4: 18 72 80 01 sbi.bi $r7,[$r5],#0x1 | |
| 85e8: a7 b0 lbi333 $r6,[$r6+#0x0] | |
| 85ea: af a8 sbi333 $r6,[$r5+#0x0] | |
| 85ec: c1 08 beqz38 $r1,0x85fc | |
| 85ee: 84 df movi55 $r6,#-1 | |
| 85f0: 3e 58 07 cc addi.gp $r5,#0x7cc | |
| 85f4: 18 62 80 01 sbi.bi $r6,[$r5],#0x1 | |
| 85f8: af a8 sbi333 $r6,[$r5+#0x0] | |
| 85fa: d5 13 j8 0x8620 | |
| 85fc: 3e 58 07 cc addi.gp $r5,#0x7cc | |
| 8600: 20 62 80 00 lbsi $r6,[$r5+#0x0] | |
| 8604: 84 ff movi55 $r7,#-1 | |
| 8606: 4c 63 c0 0d bne $r6,$r7,0x8620 | |
| 860a: 44 60 ce d4 movi $r6,#0xced4 | |
| 860e: 85 01 movi55 $r8,#0x1 | |
| 8610: 3e 87 ff e8 sbi.gp $r8,[+#-24] | |
| 8614: 08 73 00 01 lbi.bi $r7,[$r6],#0x1 | |
| 8618: 18 72 80 01 sbi.bi $r7,[$r5],#0x1 | |
| 861c: a7 b0 lbi333 $r6,[$r6+#0x0] | |
| 861e: af a8 sbi333 $r6,[$r5+#0x0] | |
| 8620: cb 0f bnez38 $r3,0x863e | |
| 8622: c8 0e bnez38 $r0,0x863e | |
| 8624: ca 0d bnez38 $r2,0x863e | |
| 8626: c9 0c bnez38 $r1,0x863e | |
| 8628: 44 00 cf 58 movi $r0,#0xcf58 | |
| 862c: 84 41 movi55 $r2,#0x1 | |
| 862e: 3e 27 ff e8 sbi.gp $r2,[+#-24] | |
| 8632: 08 10 00 01 lbi.bi $r1,[$r0],#0x1 | |
| 8636: a6 00 lbi333 $r0,[$r0+#0x0] | |
| 8638: 10 1e 00 00 sbi $r1,[$fp+#0x0] | |
| 863c: ae 20 sbi333 $r0,[$r4+#0x0] | |
| 863e: ec 04 addi10.sp #0x4 | |
| 8640: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 8644: dd 9e ret5 $lp | |
| 8646: 92 00 nop16 | |
| 8648: 3a 6f a0 bc smw.adm $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 864c: ef f8 addi10.sp #-8 | |
| 864e: 84 e1 movi55 $r7,#0x1 | |
| 8650: 50 2f 80 04 addi $r2,$sp,#0x4 | |
| 8654: b6 02 swi450 $r0,[$r2] | |
| 8656: 4c 13 c0 21 bne $r1,$r7,0x8698 | |
| 865a: 3e 68 10 07 addi.gp $r6,#0x1007 | |
| 865e: a6 30 lbi333 $r0,[$r6+#0x0] | |
| 8660: 4e 03 00 88 bnez $r0,0x8770 | |
| 8664: 3e 78 10 00 addi.gp $r7,#0x1000 | |
| 8668: a6 d2 lbi333 $r3,[$r2+#0x2] | |
| 866a: 80 07 mov55 $r0,$r7 | |
| 866c: aa 41 swi333.bi $r1,[$r0],#0x4 | |
| 866e: a7 11 lbi333 $r4,[$r2+#0x1] | |
| 8670: a6 90 lbi333 $r2,[$r2+#0x0] | |
| 8672: 9e 59 subi333 $r1,$r3,#0x1 | |
| 8674: ae 7e sbi333 $r1,[$r7+#0x6] | |
| 8676: ae b0 sbi333 $r2,[$r6+#0x0] | |
| 8678: ae fd sbi333 $r3,[$r7+#0x5] | |
| 867a: af 00 sbi333 $r4,[$r0+#0x0] | |
| 867c: 49 ff dd 88 jal 0x418c | |
| 8680: 46 10 01 00 sethi $r1,#0x100 | |
| 8684: 2e 30 00 0d lbi.gp $r3,[+#0xd] | |
| 8688: a6 b0 lbi333 $r2,[$r6+#0x0] | |
| 868a: a8 3a swi333 $r0,[$r7+#0x8] | |
| 868c: 40 01 88 04 or $r0,$r3,$r2 | |
| 8690: 3e 00 00 0d sbi.gp $r0,[+#0xd] | |
| 8694: 48 00 00 6e j 0x8770 | |
| 8698: 84 02 movi55 $r0,#0x2 | |
| 869a: 4c 10 40 2e bne $r1,$r0,0x86f6 | |
| 869e: 3e 88 10 07 addi.gp $r8,#0x1007 | |
| 86a2: 00 04 00 00 lbi $r0,[$r8+#0x0] | |
| 86a6: c0 65 beqz38 $r0,0x8770 | |
| 86a8: 3e 68 10 00 addi.gp $r6,#0x1000 | |
| 86ac: b4 46 lwi450 $r2,[$r6] | |
| 86ae: 84 81 movi55 $r4,#0x1 | |
| 86b0: 4c 22 40 04 bne $r2,$r4,0x86b8 | |
| 86b4: b6 26 swi450 $r1,[$r6] | |
| 86b6: d5 5d j8 0x8770 | |
| 86b8: a6 34 lbi333 $r0,[$r6+#0x4] | |
| 86ba: 50 13 00 08 addi $r1,$r6,#0x8 | |
| 86be: 49 ff dd f3 jal 0x42a4 | |
| 86c2: c0 57 beqz38 $r0,0x8770 | |
| 86c4: 46 00 01 00 sethi $r0,#0x100 | |
| 86c8: 2e 30 00 0d lbi.gp $r3,[+#0xd] | |
| 86cc: 00 14 00 00 lbi $r1,[$r8+#0x0] | |
| 86d0: a6 b5 lbi333 $r2,[$r6+#0x5] | |
| 86d2: 40 11 84 04 or $r1,$r3,$r1 | |
| 86d6: 96 48 zeb33 $r1,$r1 | |
| 86d8: b6 e6 swi450 $r7,[$r6] | |
| 86da: 80 61 mov55 $r3,$r1 | |
| 86dc: 3e 10 00 0d sbi.gp $r1,[+#0xd] | |
| 86e0: c2 48 beqz38 $r2,0x8770 | |
| 86e2: 9d b6 addi333 $r6,$r6,#0x6 | |
| 86e4: a6 70 lbi333 $r1,[$r6+#0x0] | |
| 86e6: 9e 89 subi333 $r2,$r1,#0x1 | |
| 86e8: ae b0 sbi333 $r2,[$r6+#0x0] | |
| 86ea: c9 43 bnez38 $r1,0x8770 | |
| 86ec: 10 14 00 00 sbi $r1,[$r8+#0x0] | |
| 86f0: 3e 30 00 0d sbi.gp $r3,[+#0xd] | |
| 86f4: d5 3e j8 0x8770 | |
| 86f6: 9e 4b subi333 $r1,$r1,#0x3 | |
| 86f8: e6 22 slti45 $r1,#0x2 | |
| 86fa: e8 3b beqzs8 0x8770 | |
| 86fc: 3e 88 10 07 addi.gp $r8,#0x1007 | |
| 8700: 00 04 00 00 lbi $r0,[$r8+#0x0] | |
| 8704: c0 36 beqz38 $r0,0x8770 | |
| 8706: 3e 68 10 00 addi.gp $r6,#0x1000 | |
| 870a: b4 26 lwi450 $r1,[$r6] | |
| 870c: 84 41 movi55 $r2,#0x1 | |
| 870e: 4c 11 40 05 bne $r1,$r2,0x8718 | |
| 8712: 84 02 movi55 $r0,#0x2 | |
| 8714: b6 06 swi450 $r0,[$r6] | |
| 8716: d5 2d j8 0x8770 | |
| 8718: a6 75 lbi333 $r1,[$r6+#0x5] | |
| 871a: c9 0c bnez38 $r1,0x8732 | |
| 871c: 2e 30 00 0d lbi.gp $r3,[+#0xd] | |
| 8720: 40 00 00 05 nor $r0,$r0,$r0 | |
| 8724: 40 00 0c 02 and $r0,$r0,$r3 | |
| 8728: 3e 00 00 0d sbi.gp $r0,[+#0xd] | |
| 872c: 10 14 00 00 sbi $r1,[$r8+#0x0] | |
| 8730: d5 20 j8 0x8770 | |
| 8732: a6 34 lbi333 $r0,[$r6+#0x4] | |
| 8734: 50 13 00 08 addi $r1,$r6,#0x8 | |
| 8738: 49 ff dd b6 jal 0x42a4 | |
| 873c: c0 1a beqz38 $r0,0x8770 | |
| 873e: 46 00 01 00 sethi $r0,#0x100 | |
| 8742: 2e 30 00 0d lbi.gp $r3,[+#0xd] | |
| 8746: 9c b6 addi333 $r2,$r6,#0x6 | |
| 8748: 00 44 00 00 lbi $r4,[$r8+#0x0] | |
| 874c: a6 50 lbi333 $r1,[$r2+#0x0] | |
| 874e: 40 31 90 04 or $r3,$r3,$r4 | |
| 8752: 96 d8 zeb33 $r3,$r3 | |
| 8754: 9f 49 subi333 $r5,$r1,#0x1 | |
| 8756: af 50 sbi333 $r5,[$r2+#0x0] | |
| 8758: b6 e6 swi450 $r7,[$r6] | |
| 875a: 3e 30 00 0d sbi.gp $r3,[+#0xd] | |
| 875e: c9 09 bnez38 $r1,0x8770 | |
| 8760: 40 42 10 05 nor $r4,$r4,$r4 | |
| 8764: 40 31 90 02 and $r3,$r3,$r4 | |
| 8768: 3e 30 00 0d sbi.gp $r3,[+#0xd] | |
| 876c: 10 14 00 00 sbi $r1,[$r8+#0x0] | |
| 8770: ec 08 addi10.sp #0x8 | |
| 8772: 3a 6f a0 84 lmw.bim $r6,[$sp],$r8,#0x2 ! {$r6~$r8, $lp} | |
| 8776: dd 9e ret5 $lp | |
| 8778: 3a 6f a4 bc smw.adm $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 877c: ef f4 addi10.sp #-12 | |
| 877e: 84 c1 movi55 $r6,#0x1 | |
| 8780: 50 7f 80 04 addi $r7,$sp,#0x4 | |
| 8784: b6 07 swi450 $r0,[$r7] | |
| 8786: 4c 13 40 2b bne $r1,$r6,0x87dc | |
| 878a: 3e 08 10 13 addi.gp $r0,#0x1013 | |
| 878e: a6 80 lbi333 $r2,[$r0+#0x0] | |
| 8790: 4e 23 00 b2 bnez $r2,0x88f4 | |
| 8794: 3e 68 10 0c addi.gp $r6,#0x100c | |
| 8798: a6 fa lbi333 $r3,[$r7+#0x2] | |
| 879a: 80 46 mov55 $r2,$r6 | |
| 879c: 00 83 80 00 lbi $r8,[$r7+#0x0] | |
| 87a0: aa 51 swi333.bi $r1,[$r2],#0x4 | |
| 87a2: a7 f9 lbi333 $r7,[$r7+#0x1] | |
| 87a4: 9f 19 subi333 $r4,$r3,#0x1 | |
| 87a6: af d0 sbi333 $r7,[$r2+#0x0] | |
| 87a8: af 36 sbi333 $r4,[$r6+#0x6] | |
| 87aa: 10 80 00 00 sbi $r8,[$r0+#0x0] | |
| 87ae: ae f5 sbi333 $r3,[$r6+#0x5] | |
| 87b0: 14 1f 80 00 swi $r1,[$sp+#0x0] | |
| 87b4: 49 ff dc ec jal 0x418c | |
| 87b8: 40 24 0c 09 srli $r2,$r8,#0x3 | |
| 87bc: 3e 38 10 b0 addi.gp $r3,#0x10b0 | |
| 87c0: b4 3f lwi450 $r1,[$sp] | |
| 87c2: 38 41 88 00 lb $r4,[$r3+($r2<<#0x0)] | |
| 87c6: 54 84 00 07 andi $r8,$r8,#0x7 | |
| 87ca: 40 10 a0 0c sll $r1,$r1,$r8 | |
| 87ce: 40 10 90 04 or $r1,$r1,$r4 | |
| 87d2: 38 11 88 08 sb $r1,[$r3+($r2<<#0x0)] | |
| 87d6: a8 32 swi333 $r0,[$r6+#0x8] | |
| 87d8: 48 00 00 8e j 0x88f4 | |
| 87dc: 84 02 movi55 $r0,#0x2 | |
| 87de: 4c 10 40 34 bne $r1,$r0,0x8846 | |
| 87e2: 3e 98 10 13 addi.gp $r9,#0x1013 | |
| 87e6: 00 04 80 00 lbi $r0,[$r9+#0x0] | |
| 87ea: 4e 02 00 85 beqz $r0,0x88f4 | |
| 87ee: 3e 88 10 0c addi.gp $r8,#0x100c | |
| 87f2: b4 48 lwi450 $r2,[$r8] | |
| 87f4: 84 01 movi55 $r0,#0x1 | |
| 87f6: 4c 20 40 05 bne $r2,$r0,0x8800 | |
| 87fa: b6 28 swi450 $r1,[$r8] | |
| 87fc: 48 00 00 7c j 0x88f4 | |
| 8800: 00 04 00 04 lbi $r0,[$r8+#0x4] | |
| 8804: 50 14 00 08 addi $r1,$r8,#0x8 | |
| 8808: 49 ff dd 4e jal 0x42a4 | |
| 880c: 4e 02 00 74 beqz $r0,0x88f4 | |
| 8810: a6 b8 lbi333 $r2,[$r7+#0x0] | |
| 8812: 40 11 0c 09 srli $r1,$r2,#0x3 | |
| 8816: 3e 08 10 b0 addi.gp $r0,#0x10b0 | |
| 881a: 38 40 04 00 lb $r4,[$r0+($r1<<#0x0)] | |
| 881e: 54 21 00 07 andi $r2,$r2,#0x7 | |
| 8822: 40 23 08 0c sll $r2,$r6,$r2 | |
| 8826: 00 34 00 05 lbi $r3,[$r8+#0x5] | |
| 882a: 40 21 10 04 or $r2,$r2,$r4 | |
| 882e: 38 20 04 08 sb $r2,[$r0+($r1<<#0x0)] | |
| 8832: b6 c8 swi450 $r6,[$r8] | |
| 8834: c3 60 beqz38 $r3,0x88f4 | |
| 8836: 8d 06 addi45 $r8,#0x6 | |
| 8838: 00 14 00 00 lbi $r1,[$r8+#0x0] | |
| 883c: 9e 89 subi333 $r2,$r1,#0x1 | |
| 883e: 10 24 00 00 sbi $r2,[$r8+#0x0] | |
| 8842: c9 59 bnez38 $r1,0x88f4 | |
| 8844: d5 46 j8 0x88d0 | |
| 8846: 9e 4b subi333 $r1,$r1,#0x3 | |
| 8848: e6 22 slti45 $r1,#0x2 | |
| 884a: e8 55 beqzs8 0x88f4 | |
| 884c: 3e 98 10 13 addi.gp $r9,#0x1013 | |
| 8850: 00 04 80 00 lbi $r0,[$r9+#0x0] | |
| 8854: c0 50 beqz38 $r0,0x88f4 | |
| 8856: 3e 88 10 0c addi.gp $r8,#0x100c | |
| 885a: b4 28 lwi450 $r1,[$r8] | |
| 885c: 84 41 movi55 $r2,#0x1 | |
| 885e: 4c 11 40 05 bne $r1,$r2,0x8868 | |
| 8862: 84 02 movi55 $r0,#0x2 | |
| 8864: b6 08 swi450 $r0,[$r8] | |
| 8866: d5 47 j8 0x88f4 | |
| 8868: 00 14 00 05 lbi $r1,[$r8+#0x5] | |
| 886c: c9 14 bnez38 $r1,0x8894 | |
| 886e: 54 30 00 07 andi $r3,$r0,#0x7 | |
| 8872: 3e 28 10 b0 addi.gp $r2,#0x10b0 | |
| 8876: 40 00 0c 09 srli $r0,$r0,#0x3 | |
| 887a: 40 63 0c 0c sll $r6,$r6,$r3 | |
| 887e: 38 31 00 00 lb $r3,[$r2+($r0<<#0x0)] | |
| 8882: 40 63 18 05 nor $r6,$r6,$r6 | |
| 8886: 40 33 0c 02 and $r3,$r6,$r3 | |
| 888a: 38 31 00 08 sb $r3,[$r2+($r0<<#0x0)] | |
| 888e: 10 14 80 00 sbi $r1,[$r9+#0x0] | |
| 8892: d5 31 j8 0x88f4 | |
| 8894: 00 04 00 04 lbi $r0,[$r8+#0x4] | |
| 8898: 50 14 00 08 addi $r1,$r8,#0x8 | |
| 889c: 49 ff dd 04 jal 0x42a4 | |
| 88a0: c0 2a beqz38 $r0,0x88f4 | |
| 88a2: a6 78 lbi333 $r1,[$r7+#0x0] | |
| 88a4: 40 20 8c 09 srli $r2,$r1,#0x3 | |
| 88a8: 50 34 00 06 addi $r3,$r8,#0x6 | |
| 88ac: 3e 08 10 b0 addi.gp $r0,#0x10b0 | |
| 88b0: 54 40 80 07 andi $r4,$r1,#0x7 | |
| 88b4: 38 50 08 00 lb $r5,[$r0+($r2<<#0x0)] | |
| 88b8: a6 58 lbi333 $r1,[$r3+#0x0] | |
| 88ba: 40 43 10 0c sll $r4,$r6,$r4 | |
| 88be: 40 52 14 04 or $r5,$r4,$r5 | |
| 88c2: 9f 09 subi333 $r4,$r1,#0x1 | |
| 88c4: 38 50 08 08 sb $r5,[$r0+($r2<<#0x0)] | |
| 88c8: af 18 sbi333 $r4,[$r3+#0x0] | |
| 88ca: 14 64 00 00 swi $r6,[$r8+#0x0] | |
| 88ce: c9 13 bnez38 $r1,0x88f4 | |
| 88d0: 00 24 80 00 lbi $r2,[$r9+#0x0] | |
| 88d4: 10 14 80 00 sbi $r1,[$r9+#0x0] | |
| 88d8: 54 31 00 07 andi $r3,$r2,#0x7 | |
| 88dc: 40 11 0c 09 srli $r1,$r2,#0x3 | |
| 88e0: 40 63 0c 0c sll $r6,$r6,$r3 | |
| 88e4: 38 30 04 00 lb $r3,[$r0+($r1<<#0x0)] | |
| 88e8: 40 23 18 05 nor $r2,$r6,$r6 | |
| 88ec: 40 21 0c 02 and $r2,$r2,$r3 | |
| 88f0: 38 20 04 08 sb $r2,[$r0+($r1<<#0x0)] | |
| 88f4: ec 0c addi10.sp #0xc | |
| 88f6: 3a 6f a4 84 lmw.bim $r6,[$sp],$r9,#0x2 ! {$r6~$r9, $lp} | |
| 88fa: dd 9e ret5 $lp | |
| ; ---------- 0x88fc - bit twiddling with 0xd568, only called at startup | |
| 88fc: 44 10 d5 68 movi $r1,#0xd568 | |
| 8900: b4 01 lwi450 $r0,[$r1] | |
| 8902: a0 89 lwi333 $r2,[$r1+#0x4] | |
| 8904: b4 60 lwi450 $r3,[$r0] | |
| 8906: 40 41 08 05 nor $r4,$r2,$r2 | |
| 890a: 40 31 0c 04 or $r3,$r2,$r3 | |
| 890e: b6 60 swi450 $r3,[$r0] | |
| 8910: 8c 28 addi45 $r1,#0x8 | |
| 8912: a0 c1 lwi333 $r3,[$r0+#0x4] | |
| 8914: 40 32 0c 02 and $r3,$r4,$r3 | |
| 8918: a8 c1 swi333 $r3,[$r0+#0x4] | |
| 891a: a0 c2 lwi333 $r3,[$r0+#0x8] | |
| 891c: 40 31 88 04 or $r3,$r3,$r2 | |
| 8920: a8 c2 swi333 $r3,[$r0+#0x8] | |
| 8922: 14 20 00 08 swi $r2,[$r0+#0x20] | |
| 8926: 44 00 d5 e0 movi $r0,#0xd5e0 | |
| 892a: 4c 10 7f eb bne $r1,$r0,0x8900 | |
| 892e: 44 10 d5 e0 movi $r1,#0xd5e0 | |
| 8932: b4 01 lwi450 $r0,[$r1] | |
| 8934: a0 89 lwi333 $r2,[$r1+#0x4] | |
| 8936: b4 60 lwi450 $r3,[$r0] | |
| 8938: 40 41 08 05 nor $r4,$r2,$r2 | |
| 893c: 40 31 0c 04 or $r3,$r2,$r3 | |
| 8940: b6 60 swi450 $r3,[$r0] | |
| 8942: 8c 28 addi45 $r1,#0x8 | |
| 8944: a0 c1 lwi333 $r3,[$r0+#0x4] | |
| 8946: 40 31 88 04 or $r3,$r3,$r2 | |
| 894a: a8 c1 swi333 $r3,[$r0+#0x4] | |
| 894c: a0 c5 lwi333 $r3,[$r0+#0x14] | |
| 894e: 40 32 0c 02 and $r3,$r4,$r3 | |
| 8952: a8 c5 swi333 $r3,[$r0+#0x14] | |
| 8954: a0 c6 lwi333 $r3,[$r0+#0x18] | |
| 8956: 40 21 88 04 or $r2,$r3,$r2 | |
| 895a: a8 86 swi333 $r2,[$r0+#0x18] | |
| 895c: 44 00 d6 20 movi $r0,#0xd620 | |
| 8960: 4c 10 7f e9 bne $r1,$r0,0x8932 | |
| 8964: dd 9e ret5 $lp | |
| 8966: 92 00 nop16 | |
| ; ---------- 0x8968: mainloop_8968 | |
| 8968: 3a 6f aa 3c smw.adm $r6,[$sp],$r10,#0x8 ! {$r6~$r10, $fp} | |
| 896c: 84 80 movi55 $r4,#0x0 | |
| 896e: 3e 78 10 a0 addi.gp $r7,#0x10a0 | |
| 8972: 3f c8 10 90 addi.gp $fp,#0x1090 | |
| 8976: 81 44 mov55 $r10,$r4 | |
| 8978: 85 21 movi55 $r9,#0x1 | |
| 897a: a6 f8 lbi333 $r3,[$r7+#0x0] | |
| 897c: 38 5e 10 00 lb $r5,[$fp+($r4<<#0x0)] | |
| 8980: 96 18 zeb33 $r0,$r3 | |
| 8982: 40 50 14 04 or $r5,$r0,$r5 | |
| 8986: 40 02 80 03 xor $r0,$r5,$r0 | |
| 898a: 97 40 zeb33 $r5,$r0 | |
| 898c: 3e 08 10 18 addi.gp $r0,#0x1018 | |
| 8990: 94 63 slli333 $r1,$r4,#0x3 | |
| 8992: 98 48 add333 $r1,$r1,$r0 | |
| 8994: 44 00 00 00 movi $r0,#0x0 | |
| 8998: 40 22 80 0e sra $r2,$r5,$r0 | |
| 899c: 96 94 xlsb33 $r2,$r2 | |
| 899e: c2 11 beqz38 $r2,0x89c0 | |
| 89a0: a6 88 lbi333 $r2,[$r1+#0x0] | |
| 89a2: 40 64 80 0c sll $r6,$r9,$r0 | |
| 89a6: 40 63 0c 04 or $r6,$r6,$r3 | |
| 89aa: 50 81 00 01 addi $r8,$r2,#0x1 | |
| 89ae: e6 44 slti45 $r2,#0x4 | |
| 89b0: e8 06 beqzs8 0x89bc | |
| 89b2: 10 80 80 00 sbi $r8,[$r1+#0x0] | |
| 89b6: af b8 sbi333 $r6,[$r7+#0x0] | |
| 89b8: 80 66 mov55 $r3,$r6 | |
| 89ba: d5 03 j8 0x89c0 | |
| 89bc: 10 a0 80 00 sbi $r10,[$r1+#0x0] | |
| 89c0: 9c 01 addi333 $r0,$r0,#0x1 | |
| 89c2: 84 48 movi55 $r2,#0x8 | |
| 89c4: 9c 49 addi333 $r1,$r1,#0x1 | |
| 89c6: 4c 01 7f e9 bne $r0,$r2,0x8998 | |
| 89ca: 9d 21 addi333 $r4,$r4,#0x1 | |
| 89cc: 84 0f movi55 $r0,#0xf | |
| 89ce: 9d f9 addi333 $r7,$r7,#0x1 | |
| 89d0: 4c 40 7f d5 bne $r4,$r0,0x897a | |
| 89d4: 3a 6f aa 04 lmw.bim $r6,[$sp],$r10,#0x8 ! {$r6~$r10, $fp} | |
| 89d8: dd 9e ret5 $lp | |
| 89da: 92 00 nop16 | |
| ; ---------- 0x89dc: mainloop_89dc | |
| 89dc: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 89e0: ef ec addi10.sp #-20 | |
| 89e2: 3e 48 10 a0 addi.gp $r4,#0x10a0 ; $r4 = $gp+0x10a0 | |
| 89e6: 3a 02 0c 00 lmw.bi $r0,[$r4],$r3,#0x0 ! {$r0~$r3} get loaded from [$r4] | |
| 89ea: 3e 68 10 90 addi.gp $r6,#0x1090 ; $r6 = $gp+0x1090 | |
| 89ee: 80 e6 mov55 $r7,$r6 ; $r7 = $r6 | |
| 89f0: 3a 03 88 24 smw.bim $r0,[$r7],$r2,#0x0 ! {$r0~$r2} get saved at [$r7], $r7 updated | |
| 89f4: 84 80 movi55 $r4,#0x0 ; $r4 = 0 | |
| 89f6: 40 81 c0 09 srli $r8,$r3,#0x10 ; $r8 = $r3 >> 16 (top 16 bits) | |
| 89fa: 46 f0 00 0d sethi $r15,#0xd | |
| 89fe: 04 57 81 59 lwi $r5,[$r15+#0x564] ; $r5 = [0xd564] | |
| 8a02: 80 07 mov55 $r0,$r7 ; $r0 = $r7 | |
| 8a04: 3e 18 10 a0 addi.gp $r1,#0x10a0 ; $r1 = $gp+0x10a0 | |
| 8a08: ab 29 swi333.bi $r4,[$r5],#0x4 ; [$r5 (0xd564)] = $r4; $r5+=4 | |
| 8a0a: 10 83 00 0e sbi $r8,[$r6+#0xe] ; | |
| 8a0e: 50 70 80 0c addi $r7,$r1,#0xc | |
| 8a12: ac c0 shi333 $r3,[$r0+#0x0] | |
| 8a14: 50 20 80 08 addi $r2,$r1,#0x8 | |
| 8a18: 46 f0 00 0d sethi $r15,#0xd | |
| 8a1c: 04 87 81 59 lwi $r8,[$r15+#0x564] | |
| 8a20: ad 38 shi333 $r4,[$r7+#0x0] | |
| 8a22: b6 85 swi450 $r4,[$r5] | |
| 8a24: b6 82 swi450 $r4,[$r2] | |
| 8a26: 47 c0 01 f6 sethi $fp,#0x1f6 | |
| 8a2a: 3e 40 10 ae sbi.gp $r4,[+#0x10ae] | |
| 8a2e: 59 ce 08 0c ori $fp,$fp,#0x80c ; $fp = GPIO offset 0x0c: PAD_PA, read input from GPIOA | |
| 8a32: 44 60 d5 68 movi $r6,#0xd568 | |
| 8a36: 80 e8 mov55 $r7,$r8 | |
| 8a38: b5 26 lwi450 $r9,[$r6] | |
| 8a3a: 04 a3 00 01 lwi $r10,[$r6+#0x4] | |
| 8a3e: 14 a4 80 07 swi $r10,[$r9+#0x1c] | |
| 8a42: 44 00 00 1e movi $r0,#0x1e | |
| 8a46: 49 ff dc 0b jal 0x425c | |
| 8a4a: b4 1c lwi450 $r0,[$fp] | |
| 8a4c: a6 78 lbi333 $r1,[$r7+#0x0] | |
| 8a4e: 40 00 00 05 nor $r0,$r0,$r0 | |
| 8a52: 40 00 04 04 or $r0,$r0,$r1 | |
| 8a56: 18 03 80 01 sbi.bi $r0,[$r7],#0x1 | |
| 8a5a: 8c c8 addi45 $r6,#0x8 | |
| 8a5c: 44 00 d5 e0 movi $r0,#0xd5e0 | |
| 8a60: 14 a4 80 08 swi $r10,[$r9+#0x20] | |
| 8a64: 4c 60 7f ea bne $r6,$r0,0x8a38 | |
| 8a68: 84 20 movi55 $r1,#0x0 | |
| 8a6a: 50 0f 80 04 addi $r0,$sp,#0x4 | |
| 8a6e: b6 20 swi450 $r1,[$r0] | |
| 8a70: 50 0f 80 08 addi $r0,$sp,#0x8 | |
| 8a74: b6 20 swi450 $r1,[$r0] | |
| 8a76: 50 0f 80 0c addi $r0,$sp,#0xc | |
| 8a7a: ac 40 shi333 $r1,[$r0+#0x0] | |
| 8a7c: b6 3f swi450 $r1,[$sp] | |
| 8a7e: 80 5f mov55 $r2,$sp | |
| 8a80: 84 a8 movi55 $r5,#0x8 | |
| 8a82: 44 90 d6 20 movi $r9,#0xd620 | |
| 8a86: 84 e1 movi55 $r7,#0x1 | |
| 8a88: 00 64 00 00 lbi $r6,[$r8+#0x0] | |
| 8a8c: 50 12 ff f8 addi $r1,$r5,#-8 | |
| 8a90: 96 48 zeb33 $r1,$r1 | |
| 8a92: c6 1d beqz38 $r6,0x8acc | |
| 8a94: 44 00 00 00 movi $r0,#0x0 | |
| 8a98: 40 43 00 0e sra $r4,$r6,$r0 | |
| 8a9c: 97 24 xlsb33 $r4,$r4 | |
| 8a9e: 9c c9 addi333 $r3,$r1,#0x1 | |
| 8aa0: 9c 01 addi333 $r0,$r0,#0x1 | |
| 8aa2: c4 11 beqz38 $r4,0x8ac4 | |
| 8aa4: 38 44 86 02 lw $r4,[$r9+($r1<<#0x2)] | |
| 8aa8: 40 12 10 09 srli $r1,$r4,#0x4 | |
| 8aac: 54 10 80 0f andi $r1,$r1,#0xf | |
| 8ab0: 38 a1 04 00 lb $r10,[$r2+($r1<<#0x0)] | |
| 8ab4: 54 42 00 0f andi $r4,$r4,#0xf | |
| 8ab8: 40 43 90 0c sll $r4,$r7,$r4 | |
| 8abc: 40 42 28 04 or $r4,$r4,$r10 | |
| 8ac0: 38 41 04 08 sb $r4,[$r2+($r1<<#0x0)] | |
| 8ac4: 96 58 zeb33 $r1,$r3 | |
| 8ac6: 84 68 movi55 $r3,#0x8 | |
| 8ac8: 4c 01 ff e8 bne $r0,$r3,0x8a98 | |
| 8acc: 8c a8 addi45 $r5,#0x8 | |
| 8ace: 97 68 zeb33 $r5,$r5 | |
| 8ad0: 44 40 00 78 movi $r4,#0x78 | |
| 8ad4: 8d 01 addi45 $r8,#0x1 | |
| 8ad6: dc d9 bnes38 $r4,0x8a88 | |
| 8ad8: 3a 01 0c 00 lmw.bi $r0,[$r2],$r3,#0x0 ! {$r0~$r3} | |
| 8adc: 3e 48 10 a0 addi.gp $r4,#0x10a0 | |
| 8ae0: 3a 02 08 24 smw.bim $r0,[$r4],$r2,#0x0 ! {$r0~$r2} | |
| 8ae4: 84 a0 movi55 $r5,#0x0 | |
| 8ae6: 3e 68 10 ae addi.gp $r6,#0x10ae | |
| 8aea: af 70 sbi333 $r5,[$r6+#0x0] | |
| 8aec: ac e0 shi333 $r3,[$r4+#0x0] | |
| 8aee: 3e 08 10 a0 addi.gp $r0,#0x10a0 | |
| 8af2: 3e 18 10 90 addi.gp $r1,#0x1090 | |
| 8af6: 84 4f movi55 $r2,#0xf | |
| 8af8: 49 00 0a ca jal 0xa08c ; memcmp(s1=$r0, s2=$r1, n=$r2), $r0=0 if same, byte diff if not | |
| 8afc: c0 07 beqz38 $r0,0x8b0a | |
| 8afe: 46 00 01 00 sethi $r0,#0x100 | |
| 8b02: 44 12 49 f0 movi $r1,#0x249f0 | |
| 8b06: 3c 1f ff e3 swi.gp $r1,[+#-116] | |
| 8b0a: ec 14 addi10.sp #0x14 | |
| 8b0c: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 8b10: dd 9e ret5 $lp | |
| 8b12: 92 00 nop16 | |
| 8b14: 96 00 zeb33 $r0,$r0 | |
| 8b16: 96 48 zeb33 $r1,$r1 | |
| 8b18: 94 03 slli333 $r0,$r0,#0x3 | |
| 8b1a: 3e 38 06 60 addi.gp $r3,#0x660 | |
| 8b1e: 98 81 add333 $r2,$r0,$r1 | |
| 8b20: 98 93 add333 $r2,$r2,$r3 | |
| 8b22: a6 d0 lbi333 $r3,[$r2+#0x0] | |
| 8b24: 5c f1 80 c8 slti $r15,$r3,#0xc8 | |
| 8b28: e8 06 beqzs8 0x8b34 | |
| 8b2a: 9c d9 addi333 $r3,$r3,#0x1 | |
| 8b2c: ae d0 sbi333 $r3,[$r2+#0x0] | |
| 8b2e: 84 61 movi55 $r3,#0x1 | |
| 8b30: 3e 37 ff e1 sbi.gp $r3,[+#-31] | |
| 8b34: 98 01 add333 $r0,$r0,$r1 | |
| 8b36: 3e 18 06 e0 addi.gp $r1,#0x6e0 | |
| 8b3a: 98 01 add333 $r0,$r0,$r1 | |
| 8b3c: 84 21 movi55 $r1,#0x1 | |
| 8b3e: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8b40: dd 9e ret5 $lp | |
| 8b42: 92 00 nop16 | |
| 8b44: 96 00 zeb33 $r0,$r0 | |
| 8b46: 94 03 slli333 $r0,$r0,#0x3 | |
| 8b48: 96 48 zeb33 $r1,$r1 | |
| 8b4a: 98 41 add333 $r1,$r0,$r1 | |
| 8b4c: 3e 38 15 2c addi.gp $r3,#0x152c | |
| 8b50: 46 00 01 00 sethi $r0,#0x100 | |
| 8b54: 38 41 86 02 lw $r4,[$r3+($r1<<#0x2)] | |
| 8b58: 3c 2d ff f0 lwi.gp $r2,[+#-64] | |
| 8b5c: 9d 21 addi333 $r4,$r4,#0x1 | |
| 8b5e: 9c 91 addi333 $r2,$r2,#0x1 | |
| 8b60: 38 41 86 0a sw $r4,[$r3+($r1<<#0x2)] | |
| 8b64: 3c 2f ff f0 swi.gp $r2,[+#-64] | |
| 8b68: 5c f1 00 c9 slti $r15,$r2,#0xc9 | |
| 8b6c: e9 04 bnezs8 0x8b74 | |
| 8b6e: 3c 2d ff e5 lwi.gp $r2,[+#-108] | |
| 8b72: d5 0c j8 0x8b8a | |
| 8b74: c2 13 beqz38 $r2,0x8b9a | |
| 8b76: 46 10 01 00 sethi $r1,#0x100 | |
| 8b7a: 3c 2d ff e5 lwi.gp $r2,[+#-108] | |
| 8b7e: 3c 3d ff f1 lwi.gp $r3,[+#-60] | |
| 8b82: 9a d3 sub333 $r3,$r2,$r3 | |
| 8b84: 5c f1 82 59 slti $r15,$r3,#0x259 | |
| 8b88: e9 09 bnezs8 0x8b9a | |
| 8b8a: 84 81 movi55 $r4,#0x1 | |
| 8b8c: 3c 2f ff f1 swi.gp $r2,[+#-60] | |
| 8b90: 84 20 movi55 $r1,#0x0 | |
| 8b92: 3e 47 ff e0 sbi.gp $r4,[+#-32] | |
| 8b96: 3c 1f ff f0 swi.gp $r1,[+#-64] | |
| 8b9a: dd 9e ret5 $lp | |
| 8b9c: ef f8 addi10.sp #-8 | |
| 8b9e: 50 2f 80 04 addi $r2,$sp,#0x4 | |
| 8ba2: b6 02 swi450 $r0,[$r2] | |
| 8ba4: 84 62 movi55 $r3,#0x2 | |
| 8ba6: a6 13 lbi333 $r0,[$r2+#0x3] | |
| 8ba8: 4c 01 80 0a beq $r0,$r3,0x8bbc | |
| 8bac: 84 63 movi55 $r3,#0x3 | |
| 8bae: 4c 01 80 9e beq $r0,$r3,0x8cea | |
| 8bb2: 84 61 movi55 $r3,#0x1 | |
| 8bb4: 4c 01 c2 7c bne $r0,$r3,0x90ac | |
| 8bb8: 48 00 00 7c j 0x8cb0 | |
| 8bbc: 84 01 movi55 $r0,#0x1 | |
| 8bbe: 4c 10 40 39 bne $r1,$r0,0x8c30 | |
| 8bc2: a6 11 lbi333 $r0,[$r2+#0x1] | |
| 8bc4: c0 0f beqz38 $r0,0x8be2 | |
| 8bc6: 40 30 0c 09 srli $r3,$r0,#0x3 | |
| 8bca: 3e 48 10 b0 addi.gp $r4,#0x10b0 | |
| 8bce: 38 52 0c 00 lb $r5,[$r4+($r3<<#0x0)] | |
| 8bd2: 54 00 00 07 andi $r0,$r0,#0x7 | |
| 8bd6: 40 10 80 0c sll $r1,$r1,$r0 | |
| 8bda: 40 10 94 04 or $r1,$r1,$r5 | |
| 8bde: 38 12 0c 08 sb $r1,[$r4+($r3<<#0x0)] | |
| 8be2: a6 12 lbi333 $r0,[$r2+#0x2] | |
| 8be4: c0 10 beqz38 $r0,0x8c04 | |
| 8be6: 40 10 0c 09 srli $r1,$r0,#0x3 | |
| 8bea: 3e 38 10 b0 addi.gp $r3,#0x10b0 | |
| 8bee: 38 51 84 00 lb $r5,[$r3+($r1<<#0x0)] | |
| 8bf2: 54 00 00 07 andi $r0,$r0,#0x7 | |
| 8bf6: 84 81 movi55 $r4,#0x1 | |
| 8bf8: 40 02 00 0c sll $r0,$r4,$r0 | |
| 8bfc: 40 00 14 04 or $r0,$r0,$r5 | |
| 8c00: 38 01 84 08 sb $r0,[$r3+($r1<<#0x0)] | |
| 8c04: a6 10 lbi333 $r0,[$r2+#0x0] | |
| 8c06: 4e 02 02 53 beqz $r0,0x90ac | |
| 8c0a: 2e 17 ff ff lbi.gp $r1,[+#-1] | |
| 8c0e: c1 07 beqz38 $r1,0x8c1c | |
| 8c10: 84 28 movi55 $r1,#0x8 | |
| 8c12: 4c 00 82 4d beq $r0,$r1,0x90ac | |
| 8c16: 94 8c slli333 $r2,$r1,#0x4 | |
| 8c18: 4c 01 02 4a beq $r0,$r2,0x90ac | |
| 8c1c: 46 10 01 00 sethi $r1,#0x100 | |
| 8c20: 2e 20 00 02 lbi.gp $r2,[+#0x2] | |
| 8c24: 40 00 08 04 or $r0,$r0,$r2 | |
| 8c28: 3e 00 00 02 sbi.gp $r0,[+#0x2] | |
| 8c2c: 48 00 02 40 j 0x90ac | |
| 8c30: 84 63 movi55 $r3,#0x3 | |
| 8c32: 4c 11 c2 3d bne $r1,$r3,0x90ac | |
| 8c36: a6 11 lbi333 $r0,[$r2+#0x1] | |
| 8c38: c0 11 beqz38 $r0,0x8c5a | |
| 8c3a: 54 30 00 07 andi $r3,$r0,#0x7 | |
| 8c3e: 3e 18 10 b0 addi.gp $r1,#0x10b0 | |
| 8c42: 92 03 srli45 $r0,#0x3 | |
| 8c44: 84 81 movi55 $r4,#0x1 | |
| 8c46: 40 32 0c 0c sll $r3,$r4,$r3 | |
| 8c4a: 38 40 80 00 lb $r4,[$r1+($r0<<#0x0)] | |
| 8c4e: 40 31 8c 05 nor $r3,$r3,$r3 | |
| 8c52: 40 31 90 02 and $r3,$r3,$r4 | |
| 8c56: 38 30 80 08 sb $r3,[$r1+($r0<<#0x0)] | |
| 8c5a: a6 12 lbi333 $r0,[$r2+#0x2] | |
| 8c5c: c0 11 beqz38 $r0,0x8c7e | |
| 8c5e: 54 30 00 07 andi $r3,$r0,#0x7 | |
| 8c62: 3e 18 10 b0 addi.gp $r1,#0x10b0 | |
| 8c66: 92 03 srli45 $r0,#0x3 | |
| 8c68: 84 81 movi55 $r4,#0x1 | |
| 8c6a: 40 32 0c 0c sll $r3,$r4,$r3 | |
| 8c6e: 38 40 80 00 lb $r4,[$r1+($r0<<#0x0)] | |
| 8c72: 40 31 8c 05 nor $r3,$r3,$r3 | |
| 8c76: 40 31 90 02 and $r3,$r3,$r4 | |
| 8c7a: 38 30 80 08 sb $r3,[$r1+($r0<<#0x0)] | |
| 8c7e: a6 10 lbi333 $r0,[$r2+#0x0] | |
| 8c80: 4e 02 02 16 beqz $r0,0x90ac | |
| 8c84: 2e 17 ff ff lbi.gp $r1,[+#-1] | |
| 8c88: c1 08 beqz38 $r1,0x8c98 | |
| 8c8a: 84 28 movi55 $r1,#0x8 | |
| 8c8c: 4c 00 82 10 beq $r0,$r1,0x90ac | |
| 8c90: 40 20 90 08 slli $r2,$r1,#0x4 | |
| 8c94: 4c 01 02 0c beq $r0,$r2,0x90ac | |
| 8c98: 46 10 01 00 sethi $r1,#0x100 | |
| 8c9c: 2e 20 00 02 lbi.gp $r2,[+#0x2] | |
| 8ca0: 40 00 00 05 nor $r0,$r0,$r0 | |
| 8ca4: 40 00 08 02 and $r0,$r0,$r2 | |
| 8ca8: 3e 00 00 02 sbi.gp $r0,[+#0x2] | |
| 8cac: 48 00 02 00 j 0x90ac | |
| 8cb0: 4c 10 40 0d bne $r1,$r0,0x8cca | |
| 8cb4: 46 00 01 00 sethi $r0,#0x100 | |
| 8cb8: a6 50 lbi333 $r1,[$r2+#0x0] | |
| 8cba: 2e 20 00 0d lbi.gp $r2,[+#0xd] | |
| 8cbe: 40 11 04 04 or $r1,$r2,$r1 | |
| 8cc2: 3e 10 00 0d sbi.gp $r1,[+#0xd] | |
| 8cc6: 48 00 01 f3 j 0x90ac | |
| 8cca: 84 63 movi55 $r3,#0x3 | |
| 8ccc: 4c 11 c1 f0 bne $r1,$r3,0x90ac | |
| 8cd0: a6 50 lbi333 $r1,[$r2+#0x0] | |
| 8cd2: 46 00 01 00 sethi $r0,#0x100 | |
| 8cd6: 2e 20 00 0d lbi.gp $r2,[+#0xd] | |
| 8cda: 40 10 84 05 nor $r1,$r1,$r1 | |
| 8cde: 40 10 88 02 and $r1,$r1,$r2 | |
| 8ce2: 3e 10 00 0d sbi.gp $r1,[+#0xd] | |
| 8ce6: 48 00 01 e3 j 0x90ac | |
| 8cea: 84 01 movi55 $r0,#0x1 | |
| 8cec: 4c 10 40 f2 bne $r1,$r0,0x8ed0 | |
| 8cf0: a6 11 lbi333 $r0,[$r2+#0x1] | |
| 8cf2: a6 50 lbi333 $r1,[$r2+#0x0] | |
| 8cf4: 40 00 20 08 slli $r0,$r0,#0x8 | |
| 8cf8: 40 00 04 04 or $r0,$r0,$r1 | |
| 8cfc: 44 10 01 8a movi $r1,#0x18a | |
| 8d00: 4c 00 80 5c beq $r0,$r1,0x8db8 | |
| 8d04: 5c f0 01 8b slti $r15,$r0,#0x18b | |
| 8d08: e8 28 beqzs8 0x8d58 | |
| 8d0a: 44 20 00 cd movi $r2,#0xcd | |
| 8d0e: 4c 01 00 6d beq $r0,$r2,0x8de8 | |
| 8d12: 5c f0 00 ce slti $r15,$r0,#0xce | |
| 8d16: e8 0d beqzs8 0x8d30 | |
| 8d18: 44 30 00 b6 movi $r3,#0xb6 | |
| 8d1c: 4c 01 80 76 beq $r0,$r3,0x8e08 | |
| 8d20: 9c 59 addi333 $r1,$r3,#0x1 | |
| 8d22: 4c 00 80 6b beq $r0,$r1,0x8df8 | |
| 8d26: 9e 8a subi333 $r2,$r1,#0x2 | |
| 8d28: 4c 01 41 c2 bne $r0,$r2,0x90ac | |
| 8d2c: 48 00 00 76 j 0x8e18 | |
| 8d30: 44 30 00 e9 movi $r3,#0xe9 | |
| 8d34: 4c 01 80 8c beq $r0,$r3,0x8e4c | |
| 8d38: 5c f0 00 ea slti $r15,$r0,#0xea | |
| 8d3c: e8 06 beqzs8 0x8d48 | |
| 8d3e: 9e 5f subi333 $r1,$r3,#0x7 | |
| 8d40: 4c 00 c1 b6 bne $r0,$r1,0x90ac | |
| 8d44: 48 00 00 74 j 0x8e2c | |
| 8d48: 8c 5d addi45 $r2,#0x1d | |
| 8d4a: 4c 01 00 79 beq $r0,$r2,0x8e3c | |
| 8d4e: 50 30 ff f9 addi $r3,$r1,#-7 | |
| 8d52: 4c 01 c1 ad bne $r0,$r3,0x90ac | |
| 8d56: d5 29 j8 0x8da8 | |
| 8d58: 44 10 02 24 movi $r1,#0x224 | |
| 8d5c: 4c 00 80 90 beq $r0,$r1,0x8e7c | |
| 8d60: 5c f0 02 25 slti $r15,$r0,#0x225 | |
| 8d64: e8 14 beqzs8 0x8d8c | |
| 8d66: 44 20 01 94 movi $r2,#0x194 | |
| 8d6a: 4c 01 00 37 beq $r0,$r2,0x8dd8 | |
| 8d6e: 5c f0 01 95 slti $r15,$r0,#0x195 | |
| 8d72: e8 05 beqzs8 0x8d7c | |
| 8d74: 9e d2 subi333 $r3,$r2,#0x2 | |
| 8d76: 4c 01 c1 9b bne $r0,$r3,0x90ac | |
| 8d7a: d5 27 j8 0x8dc8 | |
| 8d7c: 9e 4b subi333 $r1,$r1,#0x3 | |
| 8d7e: 4c 00 80 6f beq $r0,$r1,0x8e5c | |
| 8d82: 9c 8a addi333 $r2,$r1,#0x2 | |
| 8d84: 4c 01 41 94 bne $r0,$r2,0x90ac | |
| 8d88: 48 00 00 72 j 0x8e6c | |
| 8d8c: 9c ca addi333 $r3,$r1,#0x2 | |
| 8d8e: 4c 01 80 87 beq $r0,$r3,0x8e9c | |
| 8d92: e2 03 slt45 $r0,$r3 | |
| 8d94: 4e f3 00 7c bnez $r15,0x8e8c | |
| 8d98: 9c 4b addi333 $r1,$r1,#0x3 | |
| 8d9a: 4c 00 80 8b beq $r0,$r1,0x8eb0 | |
| 8d9e: 9c 8b addi333 $r2,$r1,#0x3 | |
| 8da0: 4c 01 41 86 bne $r0,$r2,0x90ac | |
| 8da4: 48 00 00 8e j 0x8ec0 | |
| 8da8: 3e 08 13 28 addi.gp $r0,#0x1328 | |
| 8dac: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8dae: 58 10 80 01 ori $r1,$r1,#0x1 | |
| 8db2: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8db4: 48 00 01 7c j 0x90ac | |
| 8db8: 3e 08 13 28 addi.gp $r0,#0x1328 | |
| 8dbc: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8dbe: 58 10 80 02 ori $r1,$r1,#0x2 | |
| 8dc2: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8dc4: 48 00 01 74 j 0x90ac | |
| 8dc8: 3e 08 13 28 addi.gp $r0,#0x1328 | |
| 8dcc: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8dce: 58 10 80 04 ori $r1,$r1,#0x4 | |
| 8dd2: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8dd4: 48 00 01 6c j 0x90ac | |
| 8dd8: 3e 08 13 28 addi.gp $r0,#0x1328 | |
| 8ddc: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8dde: 58 10 80 08 ori $r1,$r1,#0x8 | |
| 8de2: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8de4: 48 00 01 64 j 0x90ac | |
| 8de8: 3e 08 13 28 addi.gp $r0,#0x1328 | |
| 8dec: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8dee: 58 10 80 10 ori $r1,$r1,#0x10 | |
| 8df2: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8df4: 48 00 01 5c j 0x90ac | |
| 8df8: 3e 08 13 28 addi.gp $r0,#0x1328 | |
| 8dfc: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8dfe: 58 10 80 20 ori $r1,$r1,#0x20 | |
| 8e02: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8e04: 48 00 01 54 j 0x90ac | |
| 8e08: 3e 08 13 28 addi.gp $r0,#0x1328 | |
| 8e0c: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8e0e: 58 10 80 40 ori $r1,$r1,#0x40 | |
| 8e12: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8e14: 48 00 01 4c j 0x90ac | |
| 8e18: 3e 08 13 28 addi.gp $r0,#0x1328 | |
| 8e1c: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8e1e: 44 3f ff 80 movi $r3,#-128 | |
| 8e22: 40 10 8c 04 or $r1,$r1,$r3 | |
| 8e26: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8e28: 48 00 01 42 j 0x90ac | |
| 8e2c: 3e 08 13 29 addi.gp $r0,#0x1329 | |
| 8e30: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8e32: 58 10 80 01 ori $r1,$r1,#0x1 | |
| 8e36: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8e38: 48 00 01 3a j 0x90ac | |
| 8e3c: 3e 08 13 29 addi.gp $r0,#0x1329 | |
| 8e40: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8e42: 58 10 80 02 ori $r1,$r1,#0x2 | |
| 8e46: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8e48: 48 00 01 32 j 0x90ac | |
| 8e4c: 3e 08 13 29 addi.gp $r0,#0x1329 | |
| 8e50: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8e52: 58 10 80 04 ori $r1,$r1,#0x4 | |
| 8e56: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8e58: 48 00 01 2a j 0x90ac | |
| 8e5c: 3e 08 13 29 addi.gp $r0,#0x1329 | |
| 8e60: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8e62: 58 10 80 08 ori $r1,$r1,#0x8 | |
| 8e66: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8e68: 48 00 01 22 j 0x90ac | |
| 8e6c: 3e 08 13 29 addi.gp $r0,#0x1329 | |
| 8e70: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8e72: 58 10 80 10 ori $r1,$r1,#0x10 | |
| 8e76: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8e78: 48 00 01 1a j 0x90ac | |
| 8e7c: 3e 08 13 29 addi.gp $r0,#0x1329 | |
| 8e80: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8e82: 58 10 80 20 ori $r1,$r1,#0x20 | |
| 8e86: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8e88: 48 00 01 12 j 0x90ac | |
| 8e8c: 3e 08 13 29 addi.gp $r0,#0x1329 | |
| 8e90: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8e92: 58 10 80 40 ori $r1,$r1,#0x40 | |
| 8e96: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8e98: 48 00 01 0a j 0x90ac | |
| 8e9c: 3e 08 13 29 addi.gp $r0,#0x1329 | |
| 8ea0: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8ea2: 44 2f ff 80 movi $r2,#-128 | |
| 8ea6: 40 10 88 04 or $r1,$r1,$r2 | |
| 8eaa: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8eac: 48 00 01 00 j 0x90ac | |
| 8eb0: 3e 08 13 2a addi.gp $r0,#0x132a | |
| 8eb4: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8eb6: 58 10 80 01 ori $r1,$r1,#0x1 | |
| 8eba: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8ebc: 48 00 00 f8 j 0x90ac | |
| 8ec0: 3e 08 13 2a addi.gp $r0,#0x132a | |
| 8ec4: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8ec6: 58 10 80 02 ori $r1,$r1,#0x2 | |
| 8eca: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8ecc: 48 00 00 f0 j 0x90ac | |
| 8ed0: 84 63 movi55 $r3,#0x3 | |
| 8ed2: 4c 11 c0 ed bne $r1,$r3,0x90ac | |
| 8ed6: a6 11 lbi333 $r0,[$r2+#0x1] | |
| 8ed8: a6 50 lbi333 $r1,[$r2+#0x0] | |
| 8eda: 40 00 20 08 slli $r0,$r0,#0x8 | |
| 8ede: 40 00 04 04 or $r0,$r0,$r1 | |
| 8ee2: 44 10 01 8a movi $r1,#0x18a | |
| 8ee6: 4c 00 80 5d beq $r0,$r1,0x8fa0 | |
| 8eea: 5c f0 01 8b slti $r15,$r0,#0x18b | |
| 8eee: e8 29 beqzs8 0x8f40 | |
| 8ef0: 44 20 00 cd movi $r2,#0xcd | |
| 8ef4: 4c 01 00 6e beq $r0,$r2,0x8fd0 | |
| 8ef8: 5c f0 00 ce slti $r15,$r0,#0xce | |
| 8efc: e8 0e beqzs8 0x8f18 | |
| 8efe: 44 30 00 b6 movi $r3,#0xb6 | |
| 8f02: 4c 01 80 77 beq $r0,$r3,0x8ff0 | |
| 8f06: 9c 59 addi333 $r1,$r3,#0x1 | |
| 8f08: 4c 00 80 6c beq $r0,$r1,0x8fe0 | |
| 8f0c: 50 20 ff fe addi $r2,$r1,#-2 | |
| 8f10: 4c 01 40 ce bne $r0,$r2,0x90ac | |
| 8f14: 48 00 00 76 j 0x9000 | |
| 8f18: 44 30 00 e9 movi $r3,#0xe9 | |
| 8f1c: 4c 01 80 8a beq $r0,$r3,0x9030 | |
| 8f20: 5c f0 00 ea slti $r15,$r0,#0xea | |
| 8f24: e8 06 beqzs8 0x8f30 | |
| 8f26: 9e 5f subi333 $r1,$r3,#0x7 | |
| 8f28: 4c 00 c0 c2 bne $r0,$r1,0x90ac | |
| 8f2c: 48 00 00 72 j 0x9010 | |
| 8f30: 8c 5d addi45 $r2,#0x1d | |
| 8f32: 4c 01 00 77 beq $r0,$r2,0x9020 | |
| 8f36: 50 30 ff f9 addi $r3,$r1,#-7 | |
| 8f3a: 4c 01 c0 b9 bne $r0,$r3,0x90ac | |
| 8f3e: d5 29 j8 0x8f90 | |
| 8f40: 44 10 02 24 movi $r1,#0x224 | |
| 8f44: 4c 00 80 8e beq $r0,$r1,0x9060 | |
| 8f48: 5c f0 02 25 slti $r15,$r0,#0x225 | |
| 8f4c: e8 14 beqzs8 0x8f74 | |
| 8f4e: 44 20 01 94 movi $r2,#0x194 | |
| 8f52: 4c 01 00 37 beq $r0,$r2,0x8fc0 | |
| 8f56: 5c f0 01 95 slti $r15,$r0,#0x195 | |
| 8f5a: e8 05 beqzs8 0x8f64 | |
| 8f5c: 9e d2 subi333 $r3,$r2,#0x2 | |
| 8f5e: 4c 01 c0 a7 bne $r0,$r3,0x90ac | |
| 8f62: d5 27 j8 0x8fb0 | |
| 8f64: 9e 4b subi333 $r1,$r1,#0x3 | |
| 8f66: 4c 00 80 6d beq $r0,$r1,0x9040 | |
| 8f6a: 9c 8a addi333 $r2,$r1,#0x2 | |
| 8f6c: 4c 01 40 a0 bne $r0,$r2,0x90ac | |
| 8f70: 48 00 00 70 j 0x9050 | |
| 8f74: 9c ca addi333 $r3,$r1,#0x2 | |
| 8f76: 4c 01 80 85 beq $r0,$r3,0x9080 | |
| 8f7a: e2 03 slt45 $r0,$r3 | |
| 8f7c: 4e f3 00 7a bnez $r15,0x9070 | |
| 8f80: 9c 4b addi333 $r1,$r1,#0x3 | |
| 8f82: 4c 00 80 87 beq $r0,$r1,0x9090 | |
| 8f86: 9c 8b addi333 $r2,$r1,#0x3 | |
| 8f88: 4c 01 40 92 bne $r0,$r2,0x90ac | |
| 8f8c: 48 00 00 8a j 0x90a0 | |
| 8f90: 3e 08 13 28 addi.gp $r0,#0x1328 | |
| 8f94: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8f96: 42 10 80 09 bclr $r1,$r1,#0x0 | |
| 8f9a: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8f9c: 48 00 00 88 j 0x90ac | |
| 8fa0: 3e 08 13 28 addi.gp $r0,#0x1328 | |
| 8fa4: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8fa6: 42 10 84 09 bclr $r1,$r1,#0x1 | |
| 8faa: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8fac: 48 00 00 80 j 0x90ac | |
| 8fb0: 3e 08 13 28 addi.gp $r0,#0x1328 | |
| 8fb4: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8fb6: 42 10 88 09 bclr $r1,$r1,#0x2 | |
| 8fba: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8fbc: 48 00 00 78 j 0x90ac | |
| 8fc0: 3e 08 13 28 addi.gp $r0,#0x1328 | |
| 8fc4: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8fc6: 42 10 8c 09 bclr $r1,$r1,#0x3 | |
| 8fca: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8fcc: 48 00 00 70 j 0x90ac | |
| 8fd0: 3e 08 13 28 addi.gp $r0,#0x1328 | |
| 8fd4: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8fd6: 42 10 90 09 bclr $r1,$r1,#0x4 | |
| 8fda: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8fdc: 48 00 00 68 j 0x90ac | |
| 8fe0: 3e 08 13 28 addi.gp $r0,#0x1328 | |
| 8fe4: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8fe6: 42 10 94 09 bclr $r1,$r1,#0x5 | |
| 8fea: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8fec: 48 00 00 60 j 0x90ac | |
| 8ff0: 3e 08 13 28 addi.gp $r0,#0x1328 | |
| 8ff4: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 8ff6: 42 10 98 09 bclr $r1,$r1,#0x6 | |
| 8ffa: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 8ffc: 48 00 00 58 j 0x90ac | |
| 9000: 3e 08 13 28 addi.gp $r0,#0x1328 | |
| 9004: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 9006: 54 10 80 7f andi $r1,$r1,#0x7f | |
| 900a: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 900c: 48 00 00 50 j 0x90ac | |
| 9010: 3e 08 13 29 addi.gp $r0,#0x1329 | |
| 9014: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 9016: 42 10 80 09 bclr $r1,$r1,#0x0 | |
| 901a: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 901c: 48 00 00 48 j 0x90ac | |
| 9020: 3e 08 13 29 addi.gp $r0,#0x1329 | |
| 9024: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 9026: 42 10 84 09 bclr $r1,$r1,#0x1 | |
| 902a: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 902c: 48 00 00 40 j 0x90ac | |
| 9030: 3e 08 13 29 addi.gp $r0,#0x1329 | |
| 9034: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 9036: 42 10 88 09 bclr $r1,$r1,#0x2 | |
| 903a: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 903c: 48 00 00 38 j 0x90ac | |
| 9040: 3e 08 13 29 addi.gp $r0,#0x1329 | |
| 9044: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 9046: 42 10 8c 09 bclr $r1,$r1,#0x3 | |
| 904a: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 904c: 48 00 00 30 j 0x90ac | |
| 9050: 3e 08 13 29 addi.gp $r0,#0x1329 | |
| 9054: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 9056: 42 10 90 09 bclr $r1,$r1,#0x4 | |
| 905a: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 905c: 48 00 00 28 j 0x90ac | |
| 9060: 3e 08 13 29 addi.gp $r0,#0x1329 | |
| 9064: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 9066: 42 10 94 09 bclr $r1,$r1,#0x5 | |
| 906a: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 906c: 48 00 00 20 j 0x90ac | |
| 9070: 3e 08 13 29 addi.gp $r0,#0x1329 | |
| 9074: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 9076: 42 10 98 09 bclr $r1,$r1,#0x6 | |
| 907a: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 907c: 48 00 00 18 j 0x90ac | |
| 9080: 3e 08 13 29 addi.gp $r0,#0x1329 | |
| 9084: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 9086: 54 10 80 7f andi $r1,$r1,#0x7f | |
| 908a: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 908c: 48 00 00 10 j 0x90ac | |
| 9090: 3e 08 13 2a addi.gp $r0,#0x132a | |
| 9094: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 9096: 42 10 80 09 bclr $r1,$r1,#0x0 | |
| 909a: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 909c: 48 00 00 08 j 0x90ac | |
| 90a0: 3e 08 13 2a addi.gp $r0,#0x132a | |
| 90a4: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 90a6: 42 10 84 09 bclr $r1,$r1,#0x1 | |
| 90aa: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 90ac: ec 08 addi10.sp #0x8 | |
| 90ae: dd 9e ret5 $lp | |
| 90b0: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 90b4: ef e4 addi10.sp #-28 | |
| 90b6: 50 3f 80 04 addi $r3,$sp,#0x4 | |
| 90ba: b6 03 swi450 $r0,[$r3] | |
| 90bc: 84 03 movi55 $r0,#0x3 | |
| 90be: a6 9a lbi333 $r2,[$r3+#0x2] | |
| 90c0: 80 c1 mov55 $r6,$r1 | |
| 90c2: 4c 20 01 8b beq $r2,$r0,0x93d8 | |
| 90c6: e6 44 slti45 $r2,#0x4 | |
| 90c8: e8 09 beqzs8 0x90da | |
| 90ca: 84 01 movi55 $r0,#0x1 | |
| 90cc: 4c 20 00 12 beq $r2,$r0,0x90f0 | |
| 90d0: 84 22 movi55 $r1,#0x2 | |
| 90d2: 4c 20 c2 27 bne $r2,$r1,0x9520 | |
| 90d6: 48 00 01 2f j 0x9334 | |
| 90da: 84 05 movi55 $r0,#0x5 | |
| 90dc: 4c 20 01 b0 beq $r2,$r0,0x943c | |
| 90e0: e2 40 slt45 $r2,$r0 | |
| 90e2: 4e f3 01 95 bnez $r15,0x940c | |
| 90e6: 84 26 movi55 $r1,#0x6 | |
| 90e8: 4c 20 c2 1c bne $r2,$r1,0x9520 | |
| 90ec: 48 00 01 05 j 0x92f6 | |
| 90f0: 84 42 movi55 $r2,#0x2 | |
| 90f2: 4c 11 40 25 bne $r1,$r2,0x913c | |
| 90f6: a6 18 lbi333 $r0,[$r3+#0x0] | |
| 90f8: 44 30 00 11 movi $r3,#0x11 | |
| 90fc: 4c 01 c2 12 bne $r0,$r3,0x9520 | |
| 9100: 46 00 01 00 sethi $r0,#0x100 | |
| 9104: 2e 10 00 0e lbi.gp $r1,[+#0xe] | |
| 9108: 4e 12 02 0c beqz $r1,0x9520 | |
| 910c: 3c 2d ff e5 lwi.gp $r2,[+#-108] | |
| 9110: 3c 1c 00 0c lwi.gp $r1,[+#0x30] | |
| 9114: 9a 51 sub333 $r1,$r2,$r1 | |
| 9116: e6 23 slti45 $r1,#0x3 | |
| 9118: 4e f3 02 04 bnez $r15,0x9520 | |
| 911c: 2e 30 00 04 lbi.gp $r3,[+#0x4] | |
| 9120: 84 20 movi55 $r1,#0x0 | |
| 9122: 5c 31 80 01 slti $r3,$r3,#0x1 | |
| 9126: 3e 30 00 04 sbi.gp $r3,[+#0x4] | |
| 912a: 84 67 movi55 $r3,#0x7 | |
| 912c: 3e 30 00 05 sbi.gp $r3,[+#0x5] | |
| 9130: 3e 10 00 06 sbi.gp $r1,[+#0x6] | |
| 9134: 3e 10 00 0e sbi.gp $r1,[+#0xe] | |
| 9138: 48 00 01 f4 j 0x9520 | |
| 913c: 84 01 movi55 $r0,#0x1 | |
| 913e: 4c 10 41 f1 bne $r1,$r0,0x9520 | |
| 9142: a6 18 lbi333 $r0,[$r3+#0x0] | |
| 9144: 8c 4e addi45 $r2,#0xe | |
| 9146: 4c 01 00 67 beq $r0,$r2,0x9214 | |
| 914a: 9c d1 addi333 $r3,$r2,#0x1 | |
| 914c: 4c 01 80 07 beq $r0,$r3,0x915a | |
| 9150: 84 2a movi55 $r1,#0xa | |
| 9152: 4c 00 c1 e7 bne $r0,$r1,0x9520 | |
| 9156: 48 00 00 b1 j 0x92b8 | |
| 915a: 84 40 movi55 $r2,#0x0 | |
| 915c: 3e 20 00 0f sbi.gp $r2,[+#0xf] | |
| 9160: 3c 2d ff e5 lwi.gp $r2,[+#-108] | |
| 9164: 2e 00 00 04 lbi.gp $r0,[+#0x4] | |
| 9168: 3c 2e 00 0c swi.gp $r2,[+#0x30] | |
| 916c: 3e 60 00 0e sbi.gp $r6,[+#0xe] | |
| 9170: c0 24 beqz38 $r0,0x91b8 | |
| 9172: 46 10 01 00 sethi $r1,#0x100 | |
| 9176: 2e 00 00 05 lbi.gp $r0,[+#0x5] | |
| 917a: 84 47 movi55 $r2,#0x7 | |
| 917c: 4c 01 40 06 bne $r0,$r2,0x9188 | |
| 9180: 3e 60 00 05 sbi.gp $r6,[+#0x5] | |
| 9184: 48 00 01 ce j 0x9520 | |
| 9188: 84 61 movi55 $r3,#0x1 | |
| 918a: 4c 01 c0 07 bne $r0,$r3,0x9198 | |
| 918e: 84 02 movi55 $r0,#0x2 | |
| 9190: 3e 00 00 05 sbi.gp $r0,[+#0x5] | |
| 9194: 48 00 01 c6 j 0x9520 | |
| 9198: 84 42 movi55 $r2,#0x2 | |
| 919a: 4c 01 40 07 bne $r0,$r2,0x91a8 | |
| 919e: 84 04 movi55 $r0,#0x4 | |
| 91a0: 3e 00 00 05 sbi.gp $r0,[+#0x5] | |
| 91a4: 48 00 01 be j 0x9520 | |
| 91a8: 84 64 movi55 $r3,#0x4 | |
| 91aa: 4c 01 c1 bb bne $r0,$r3,0x9520 | |
| 91ae: 84 07 movi55 $r0,#0x7 | |
| 91b0: 3e 00 00 05 sbi.gp $r0,[+#0x5] | |
| 91b4: 48 00 01 b6 j 0x9520 | |
| 91b8: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 91bc: 84 21 movi55 $r1,#0x1 | |
| 91be: 4c 00 c1 b1 bne $r0,$r1,0x9520 | |
| 91c2: 3e 8f fe 78 addi.gp $r8,#-392 | |
| 91c6: 00 04 00 00 lbi $r0,[$r8+#0x0] | |
| 91ca: 84 47 movi55 $r2,#0x7 | |
| 91cc: 4c 01 40 04 bne $r0,$r2,0x91d4 | |
| 91d0: 80 01 mov55 $r0,$r1 | |
| 91d2: d5 0d j8 0x91ec | |
| 91d4: 84 68 movi55 $r3,#0x8 | |
| 91d6: 4c 01 c0 04 bne $r0,$r3,0x91de | |
| 91da: 84 02 movi55 $r0,#0x2 | |
| 91dc: d5 08 j8 0x91ec | |
| 91de: 84 25 movi55 $r1,#0x5 | |
| 91e0: 4c 00 80 04 beq $r0,$r1,0x91e8 | |
| 91e4: 84 00 movi55 $r0,#0x0 | |
| 91e6: d5 03 j8 0x91ec | |
| 91e8: 44 00 00 03 movi $r0,#0x3 | |
| 91ec: 44 10 db a0 movi $r1,#0xdba0 | |
| 91f0: 38 20 80 00 lb $r2,[$r1+($r0<<#0x0)] | |
| 91f4: 84 c1 movi55 $r6,#0x1 | |
| 91f6: 80 02 mov55 $r0,$r2 | |
| 91f8: 10 24 00 00 sbi $r2,[$r8+#0x0] | |
| 91fc: 44 10 00 01 movi $r1,#0x1 | |
| 9200: 3e 67 fe 79 sbi.gp $r6,[+#-391] | |
| 9204: 49 ff d3 de jal 0x39c0 | |
| 9208: 46 00 01 00 sethi $r0,#0x100 | |
| 920c: 3e 67 ff de sbi.gp $r6,[+#-34] | |
| 9210: 48 00 01 88 j 0x9520 | |
| 9214: 2e 27 ff ea lbi.gp $r2,[+#-22] | |
| 9218: 84 61 movi55 $r3,#0x1 | |
| 921a: 4c 21 c1 83 bne $r2,$r3,0x9520 | |
| 921e: 3e 8f fe 78 addi.gp $r8,#-392 | |
| 9222: 00 04 00 00 lbi $r0,[$r8+#0x0] | |
| 9226: 44 30 00 f1 movi $r3,#0xf1 | |
| 922a: 4c 01 80 13 beq $r0,$r3,0x9250 | |
| 922e: 3e 3f ff 3d addi.gp $r3,#-195 | |
| 9232: 18 21 ff fe sbi.bi $r2,[$r3],#-2 | |
| 9236: 84 11 movi55 $r0,#-15 | |
| 9238: 84 80 movi55 $r4,#0x0 | |
| 923a: 18 04 00 01 sbi.bi $r0,[$r8],#0x1 | |
| 923e: af 18 sbi333 $r4,[$r3+#0x0] | |
| 9240: 44 00 00 f1 movi $r0,#0xf1 | |
| 9244: 10 24 00 00 sbi $r2,[$r8+#0x0] | |
| 9248: 49 ff d3 bc jal 0x39c0 | |
| 924c: 48 00 00 4e j 0x92e8 | |
| 9250: 3e 1f ff 3b addi.gp $r1,#-197 | |
| 9254: a7 c8 lbi333 $r7,[$r1+#0x0] | |
| 9256: 9d f9 addi333 $r7,$r7,#0x1 | |
| 9258: 97 f8 zeb33 $r7,$r7 | |
| 925a: 5c f3 80 20 slti $r15,$r7,#0x20 | |
| 925e: 4e f2 01 5c beqz $r15,0x9516 | |
| 9262: 80 02 mov55 $r0,$r2 | |
| 9264: 50 6f 80 08 addi $r6,$sp,#0x8 | |
| 9268: 45 c0 39 80 movi $fp,#0x3980 | |
| 926c: 80 26 mov55 $r1,$r6 | |
| 926e: 94 fc slli333 $r3,$r7,#0x4 | |
| 9270: 44 20 00 10 movi $r2,#0x10 | |
| 9274: 4b e0 70 01 jral $lp,$fp | |
| 9278: 44 10 00 10 movi $r1,#0x10 | |
| 927c: 80 06 mov55 $r0,$r6 | |
| 927e: 49 ff bd e5 jal 0xe48 | |
| 9282: 9c 79 addi333 $r1,$r7,#0x1 | |
| 9284: c8 0e bnez38 $r0,0x92a0 | |
| 9286: 54 70 80 ff andi $r7,$r1,#0xff | |
| 928a: 5c f3 80 20 slti $r15,$r7,#0x20 | |
| 928e: e9 05 bnezs8 0x9298 | |
| 9290: 00 04 00 00 lbi $r0,[$r8+#0x0] | |
| 9294: 48 00 01 41 j 0x9516 | |
| 9298: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 929c: 48 ff ff e8 j 0x926c | |
| 92a0: 3e 77 ff 3b sbi.gp $r7,[+#-197] | |
| 92a4: 00 04 00 00 lbi $r0,[$r8+#0x0] | |
| 92a8: 84 61 movi55 $r3,#0x1 | |
| 92aa: 84 21 movi55 $r1,#0x1 | |
| 92ac: 3e 37 ff 3d sbi.gp $r3,[+#-195] | |
| 92b0: 49 ff d3 88 jal 0x39c0 | |
| 92b4: 48 00 00 1a j 0x92e8 | |
| 92b8: 3e 8f fe 78 addi.gp $r8,#-392 | |
| 92bc: 00 04 00 00 lbi $r0,[$r8+#0x0] | |
| 92c0: 84 69 movi55 $r3,#0x9 | |
| 92c2: 4c 01 c0 13 bne $r0,$r3,0x92e8 | |
| 92c6: 50 04 00 01 addi $r0,$r8,#0x1 | |
| 92ca: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 92cc: 84 41 movi55 $r2,#0x1 | |
| 92ce: 4c 11 40 06 bne $r1,$r2,0x92da | |
| 92d2: 84 22 movi55 $r1,#0x2 | |
| 92d4: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 92d6: 84 22 movi55 $r1,#0x2 | |
| 92d8: d5 04 j8 0x92e0 | |
| 92da: 84 21 movi55 $r1,#0x1 | |
| 92dc: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 92de: 84 21 movi55 $r1,#0x1 | |
| 92e0: 00 04 00 00 lbi $r0,[$r8+#0x0] | |
| 92e4: 49 ff d3 6e jal 0x39c0 | |
| 92e8: 46 00 01 00 sethi $r0,#0x100 | |
| 92ec: 84 21 movi55 $r1,#0x1 | |
| 92ee: 3e 17 ff de sbi.gp $r1,[+#-34] | |
| 92f2: 48 00 01 17 j 0x9520 | |
| 92f6: 84 01 movi55 $r0,#0x1 | |
| 92f8: 4c 60 41 14 bne $r6,$r0,0x9520 | |
| 92fc: a6 18 lbi333 $r0,[$r3+#0x0] | |
| 92fe: 4c 03 00 07 beq $r0,$r6,0x930c | |
| 9302: 84 22 movi55 $r1,#0x2 | |
| 9304: 4c 00 c1 0e bne $r0,$r1,0x9520 | |
| 9308: 48 00 00 0a j 0x931c | |
| 930c: 44 00 00 40 movi $r0,#0x40 | |
| 9310: 44 10 00 00 movi $r1,#0x0 | |
| 9314: 49 ff cf bc jal 0x328c | |
| 9318: 48 00 01 04 j 0x9520 | |
| 931c: 2e 17 ff e3 lbi.gp $r1,[+#-29] | |
| 9320: 5c 10 80 01 slti $r1,$r1,#0x1 | |
| 9324: 3e 17 ff e3 sbi.gp $r1,[+#-29] | |
| 9328: 46 00 01 00 sethi $r0,#0x100 | |
| 932c: 3e 67 ff e8 sbi.gp $r6,[+#-24] | |
| 9330: 48 00 00 f8 j 0x9520 | |
| 9334: a6 18 lbi333 $r0,[$r3+#0x0] | |
| 9336: 84 41 movi55 $r2,#0x1 | |
| 9338: 4c 01 00 06 beq $r0,$r2,0x9344 | |
| 933c: 84 62 movi55 $r3,#0x2 | |
| 933e: 4c 01 c0 f1 bne $r0,$r3,0x9520 | |
| 9342: d5 25 j8 0x938c | |
| 9344: 4c 60 40 0c bne $r6,$r0,0x935c | |
| 9348: 49 ff d7 22 jal 0x418c | |
| 934c: 3c 0f ff f3 swi.gp $r0,[+#-52] | |
| 9350: 84 20 movi55 $r1,#0x0 | |
| 9352: 84 04 movi55 $r0,#0x4 | |
| 9354: 49 ff cf 9c jal 0x328c | |
| 9358: 48 00 00 e4 j 0x9520 | |
| 935c: 44 00 00 02 movi $r0,#0x2 | |
| 9360: 4c 60 40 e0 bne $r6,$r0,0x9520 | |
| 9364: 3c 0d ff f3 lwi.gp $r0,[+#-52] | |
| 9368: 49 ff d7 2c jal 0x41c0 | |
| 936c: 44 12 49 f0 movi $r1,#0x249f0 | |
| 9370: 40 f0 80 06 slt $r15,$r1,$r0 | |
| 9374: 4e f2 00 d6 beqz $r15,0x9520 | |
| 9378: 49 ff d7 0a jal 0x418c | |
| 937c: 3c 0f ff f3 swi.gp $r0,[+#-52] | |
| 9380: 84 20 movi55 $r1,#0x0 | |
| 9382: 84 04 movi55 $r0,#0x4 | |
| 9384: 49 ff cf 84 jal 0x328c | |
| 9388: 48 00 00 cc j 0x9520 | |
| 938c: 44 10 00 01 movi $r1,#0x1 | |
| 9390: 4c 60 c0 0c bne $r6,$r1,0x93a8 | |
| 9394: 49 ff d6 fc jal 0x418c | |
| 9398: 3c 0f ff f3 swi.gp $r0,[+#-52] | |
| 939c: 84 20 movi55 $r1,#0x0 | |
| 939e: 84 08 movi55 $r0,#0x8 | |
| 93a0: 49 ff cf 76 jal 0x328c | |
| 93a4: 48 00 00 be j 0x9520 | |
| 93a8: 44 20 00 02 movi $r2,#0x2 | |
| 93ac: 4c 61 40 ba bne $r6,$r2,0x9520 | |
| 93b0: 3c 0d ff f3 lwi.gp $r0,[+#-52] | |
| 93b4: 49 ff d7 06 jal 0x41c0 | |
| 93b8: 44 12 49 f0 movi $r1,#0x249f0 | |
| 93bc: 40 f0 80 06 slt $r15,$r1,$r0 | |
| 93c0: 4e f2 00 b0 beqz $r15,0x9520 | |
| 93c4: 49 ff d6 e4 jal 0x418c | |
| 93c8: 3c 0f ff f3 swi.gp $r0,[+#-52] | |
| 93cc: 84 20 movi55 $r1,#0x0 | |
| 93ce: 84 08 movi55 $r0,#0x8 | |
| 93d0: 49 ff cf 5e jal 0x328c | |
| 93d4: 48 00 00 a6 j 0x9520 | |
| 93d8: a6 18 lbi333 $r0,[$r3+#0x0] | |
| 93da: 84 61 movi55 $r3,#0x1 | |
| 93dc: 4c 01 80 06 beq $r0,$r3,0x93e8 | |
| 93e0: 84 22 movi55 $r1,#0x2 | |
| 93e2: 4c 00 c0 9f bne $r0,$r1,0x9520 | |
| 93e6: d5 09 j8 0x93f8 | |
| 93e8: 4c 10 40 9c bne $r1,$r0,0x9520 | |
| 93ec: 94 1c slli333 $r0,$r3,#0x4 | |
| 93ee: 84 20 movi55 $r1,#0x0 | |
| 93f0: 49 ff cf 4e jal 0x328c | |
| 93f4: 48 00 00 96 j 0x9520 | |
| 93f8: 84 41 movi55 $r2,#0x1 | |
| 93fa: 4c 61 40 93 bne $r6,$r2,0x9520 | |
| 93fe: 94 0c slli333 $r0,$r1,#0x4 | |
| 9400: 44 10 00 00 movi $r1,#0x0 | |
| 9404: 49 ff cf 44 jal 0x328c | |
| 9408: 48 00 00 8c j 0x9520 | |
| 940c: a6 18 lbi333 $r0,[$r3+#0x0] | |
| 940e: 84 61 movi55 $r3,#0x1 | |
| 9410: 4c 01 80 06 beq $r0,$r3,0x941c | |
| 9414: 84 22 movi55 $r1,#0x2 | |
| 9416: 4c 00 c0 85 bne $r0,$r1,0x9520 | |
| 941a: d5 09 j8 0x942c | |
| 941c: 4c 10 40 82 bne $r1,$r0,0x9520 | |
| 9420: 80 01 mov55 $r0,$r1 | |
| 9422: 84 20 movi55 $r1,#0x0 | |
| 9424: 49 ff cf 34 jal 0x328c | |
| 9428: 48 00 00 7c j 0x9520 | |
| 942c: 84 41 movi55 $r2,#0x1 | |
| 942e: 4c 61 40 79 bne $r6,$r2,0x9520 | |
| 9432: 84 20 movi55 $r1,#0x0 | |
| 9434: 49 ff cf 2c jal 0x328c | |
| 9438: 48 00 00 74 j 0x9520 | |
| 943c: a7 d8 lbi333 $r7,[$r3+#0x0] | |
| 943e: 84 62 movi55 $r3,#0x2 | |
| 9440: 4c 71 80 2a beq $r7,$r3,0x9494 | |
| 9444: 84 03 movi55 $r0,#0x3 | |
| 9446: 4c 70 00 48 beq $r7,$r0,0x94d6 | |
| 944a: 84 21 movi55 $r1,#0x1 | |
| 944c: 4c 70 c0 6a bne $r7,$r1,0x9520 | |
| 9450: 4c 63 c0 0c bne $r6,$r7,0x9468 | |
| 9454: 49 ff d6 9c jal 0x418c | |
| 9458: 3c 0f ff f4 swi.gp $r0,[+#-48] | |
| 945c: 80 26 mov55 $r1,$r6 | |
| 945e: 84 00 movi55 $r0,#0x0 | |
| 9460: 49 ff cf 16 jal 0x328c | |
| 9464: 48 00 00 5e j 0x9520 | |
| 9468: 44 20 00 02 movi $r2,#0x2 | |
| 946c: 4c 61 40 5a bne $r6,$r2,0x9520 | |
| 9470: 3c 0d ff f4 lwi.gp $r0,[+#-48] | |
| 9474: 49 ff d6 a6 jal 0x41c0 | |
| 9478: 44 10 75 30 movi $r1,#0x7530 | |
| 947c: e2 20 slt45 $r1,$r0 | |
| 947e: e8 51 beqzs8 0x9520 | |
| 9480: 49 ff d6 86 jal 0x418c | |
| 9484: 3c 0f ff f4 swi.gp $r0,[+#-48] | |
| 9488: 80 27 mov55 $r1,$r7 | |
| 948a: 84 00 movi55 $r0,#0x0 | |
| 948c: 49 ff cf 00 jal 0x328c | |
| 9490: 48 00 00 48 j 0x9520 | |
| 9494: 44 30 00 01 movi $r3,#0x1 | |
| 9498: 4c 11 c0 0b bne $r1,$r3,0x94ae | |
| 949c: 49 ff d6 78 jal 0x418c | |
| 94a0: 3c 0f ff f4 swi.gp $r0,[+#-48] | |
| 94a4: 80 27 mov55 $r1,$r7 | |
| 94a6: 84 00 movi55 $r0,#0x0 | |
| 94a8: 49 ff ce f2 jal 0x328c | |
| 94ac: d5 3a j8 0x9520 | |
| 94ae: 84 02 movi55 $r0,#0x2 | |
| 94b0: 4c 10 40 38 bne $r1,$r0,0x9520 | |
| 94b4: 3c 0d ff f4 lwi.gp $r0,[+#-48] | |
| 94b8: 49 ff d6 84 jal 0x41c0 | |
| 94bc: 44 10 75 30 movi $r1,#0x7530 | |
| 94c0: e2 20 slt45 $r1,$r0 | |
| 94c2: e8 2f beqzs8 0x9520 | |
| 94c4: 49 ff d6 64 jal 0x418c | |
| 94c8: 3c 0f ff f4 swi.gp $r0,[+#-48] | |
| 94cc: 80 26 mov55 $r1,$r6 | |
| 94ce: 84 00 movi55 $r0,#0x0 | |
| 94d0: 49 ff ce de jal 0x328c | |
| 94d4: d5 26 j8 0x9520 | |
| 94d6: 84 21 movi55 $r1,#0x1 | |
| 94d8: 4c 60 c0 0b bne $r6,$r1,0x94ee | |
| 94dc: 49 ff d6 58 jal 0x418c | |
| 94e0: 3c 0f ff f4 swi.gp $r0,[+#-48] | |
| 94e4: 84 24 movi55 $r1,#0x4 | |
| 94e6: 84 00 movi55 $r0,#0x0 | |
| 94e8: 49 ff ce d2 jal 0x328c | |
| 94ec: d5 1a j8 0x9520 | |
| 94ee: 84 42 movi55 $r2,#0x2 | |
| 94f0: 4c 61 40 18 bne $r6,$r2,0x9520 | |
| 94f4: 3c 0d ff f4 lwi.gp $r0,[+#-48] | |
| 94f8: 49 ff d6 64 jal 0x41c0 | |
| 94fc: 44 10 75 30 movi $r1,#0x7530 | |
| 9500: e2 20 slt45 $r1,$r0 | |
| 9502: e8 0f beqzs8 0x9520 | |
| 9504: 49 ff d6 44 jal 0x418c | |
| 9508: 3c 0f ff f4 swi.gp $r0,[+#-48] | |
| 950c: 84 24 movi55 $r1,#0x4 | |
| 950e: 84 00 movi55 $r0,#0x0 | |
| 9510: 49 ff ce be jal 0x328c | |
| 9514: d5 06 j8 0x9520 | |
| 9516: 84 20 movi55 $r1,#0x0 | |
| 9518: 3e 17 ff 3b sbi.gp $r1,[+#-197] | |
| 951c: 48 ff fe c6 j 0x92a8 | |
| 9520: ec 1c addi10.sp #0x1c | |
| 9522: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 9526: dd 9e ret5 $lp | |
| 9528: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 952c: 96 80 zeb33 $r2,$r0 | |
| 952e: 44 00 00 ff movi $r0,#0xff | |
| 9532: 80 61 mov55 $r3,$r1 | |
| 9534: 4c 20 00 40 beq $r2,$r0,0x95b4 | |
| 9538: 46 f0 01 00 sethi $r15,#0x100 | |
| 953c: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 9540: 84 85 movi55 $r4,#0x5 | |
| 9542: 4c 02 40 2a bne $r0,$r4,0x9596 | |
| 9546: 84 01 movi55 $r0,#0x1 | |
| 9548: 4c 10 40 0e bne $r1,$r0,0x9564 | |
| 954c: 3e 68 08 f0 addi.gp $r6,#0x8f0 | |
| 9550: 80 26 mov55 $r1,$r6 | |
| 9552: 8c 17 addi45 $r0,#0x17 | |
| 9554: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 | |
| 9558: 84 84 movi55 $r4,#0x4 | |
| 955a: 80 06 mov55 $r0,$r6 | |
| 955c: af 08 sbi333 $r4,[$r1+#0x0] | |
| 955e: ae b2 sbi333 $r2,[$r6+#0x2] | |
| 9560: ae f3 sbi333 $r3,[$r6+#0x3] | |
| 9562: d5 11 j8 0x9584 | |
| 9564: 84 83 movi55 $r4,#0x3 | |
| 9566: 4c 12 40 27 bne $r1,$r4,0x95b4 | |
| 956a: 3e 68 08 f0 addi.gp $r6,#0x8f0 | |
| 956e: 80 26 mov55 $r1,$r6 | |
| 9570: 8c 17 addi45 $r0,#0x17 | |
| 9572: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 | |
| 9576: 98 f4 add333 $r3,$r6,$r4 | |
| 9578: 84 84 movi55 $r4,#0x4 | |
| 957a: af 08 sbi333 $r4,[$r1+#0x0] | |
| 957c: 84 20 movi55 $r1,#0x0 | |
| 957e: ae 58 sbi333 $r1,[$r3+#0x0] | |
| 9580: ae b2 sbi333 $r2,[$r6+#0x2] | |
| 9582: 80 06 mov55 $r0,$r6 | |
| 9584: 49 ff e6 84 jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 9588: 80 26 mov55 $r1,$r6 | |
| 958a: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 958e: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 9592: 48 ff b7 d3 j 0x538 | |
| 9596: 84 01 movi55 $r0,#0x1 | |
| 9598: 4c 10 40 0e bne $r1,$r0,0x95b4 | |
| 959c: 3e 3f ff 3d addi.gp $r3,#-195 | |
| 95a0: 84 00 movi55 $r0,#0x0 | |
| 95a2: 18 01 ff fe sbi.bi $r0,[$r3],#-2 | |
| 95a6: 44 00 00 f1 movi $r0,#0xf1 | |
| 95aa: ae 98 sbi333 $r2,[$r3+#0x0] | |
| 95ac: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 95b0: 48 ff d2 08 j 0x39c0 | |
| 95b4: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 95b8: dd 9e ret5 $lp | |
| 95ba: 92 00 nop16 | |
| ; ----------- 0x95bc: ??? | |
| 95bc: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 95c0: 2e 00 00 00 lbi.gp $r0,[+#0x0] | |
| 95c4: c8 1e bnez38 $r0,0x9600 | |
| 95c6: 3e 68 08 f0 addi.gp $r6,#0x8f0 ; $r6 = $gp+0x8f0 | |
| 95ca: 80 86 mov55 $r4,$r6 ; $r4 = $r6 | |
| 95cc: 44 00 00 15 movi $r0,#0x15 ; $r0 = 0x15 | |
| 95d0: 18 02 00 01 sbi.bi $r0,[$r4],#0x1 ; | |
| 95d4: 84 a1 movi55 $r5,#0x1 | |
| 95d6: 3e 50 00 00 sbi.gp $r5,[+#0x0] | |
| 95da: 84 64 movi55 $r3,#0x4 | |
| 95dc: ae e0 sbi333 $r3,[$r4+#0x0] | |
| 95de: 3e 18 10 a0 addi.gp $r1,#0x10a0 ; memcpy src = $gp+0x10a0 | |
| 95e2: 84 4f movi55 $r2,#0xf ; memcpy n = 15 | |
| 95e4: 50 03 00 08 addi $r0,$r6,#0x8 ; memcpy dest = $r6 + 8 | |
| 95e8: 49 00 05 5e jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 95ec: 80 06 mov55 $r0,$r6 | |
| 95ee: 49 ff e6 4f jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 95f2: 80 26 mov55 $r1,$r6 | |
| 95f4: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 95f8: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 95fc: 48 ff b7 9e j 0x538 | |
| 9600: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 9604: dd 9e ret5 $lp | |
| 9606: 92 00 nop16 | |
| 9608: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 960c: 3e 68 07 60 addi.gp $r6,#0x760 | |
| 9610: 50 03 00 00 addi $r0,$r6,#0x0 | |
| 9614: 44 10 ce 68 movi $r1,#0xce68 | |
| 9618: 44 20 01 08 movi $r2,#0x108 | |
| 961c: 49 00 05 44 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 9620: 46 00 01 00 sethi $r0,#0x100 | |
| 9624: 3c 6e 00 07 swi.gp $r6,[+#0x1c] | |
| 9628: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 962c: dd 9e ret5 $lp | |
| 962e: 92 00 nop16 | |
| ; ----------- 0x9630: copy_d730_d9c0_and_memset_heap() | |
| 9630: 3a 6f 9c bc smw.adm $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 9634: ef fc addi10.sp #-4 ; move $sp up 4 | |
| 9636: 44 70 01 e0 movi $r7,#0x1e0 ; $r7 = 0x1e0 | |
| 963a: 80 47 mov55 $r2,$r7 ; memcpy size: 0x1e0 | |
| 963c: 44 10 d7 e0 movi $r1,#0xd7e0 ; memcpy src: 0xd730 | |
| 9640: 3e 08 13 4c addi.gp $r0,#0x134c ; memcpy dest: $gp+0x134c (???) | |
| 9644: 49 00 05 30 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 9648: 50 23 80 00 addi $r2,$r7,#0x0 ; memcpy size: 0x1e0 | |
| 964c: 44 10 d9 c0 movi $r1,#0xd9c0 ; memcpy src: 0xd9c0 | |
| 9650: 3e 08 11 48 addi.gp $r0,#0x1148 ; memcpy dest: $gp+0x1148 (???) | |
| 9654: 49 00 05 28 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 9658: 3e 08 10 d0 addi.gp $r0,#0x10d0 ; memset dest: $gp+0x10d0 | |
| 965c: 44 10 00 ff movi $r1,#0xff ; memset byte: 0xff | |
| 9660: 44 20 00 78 movi $r2,#0x78 ; memset count: 0x78 | |
| 9664: ec 04 addi10.sp #0x4 ; move $sp down 4 | |
| 9666: 3a 6f 9c 84 lmw.bim $r6,[$sp],$r7,#0x2 ! {$r6~$r7, $lp} | |
| 966a: 48 00 05 27 j 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2); return | |
| 966e: 92 00 nop16 | |
| ; ----------- 0x9670: long_ass_func_9670($r0, $r1) | |
| 9670: 3a 6f a8 bc smw.adm $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 9674: ef f8 addi10.sp #-8 | |
| 9676: 50 7f 80 04 addi $r7,$sp,#0x4 | |
| 967a: b6 07 swi450 $r0,[$r7] | |
| 967c: 84 63 movi55 $r3,#0x3 | |
| 967e: a6 ba lbi333 $r2,[$r7+#0x2] | |
| 9680: 80 c1 mov55 $r6,$r1 | |
| 9682: 4c 21 80 a5 beq $r2,$r3,0x97cc | |
| 9686: e6 44 slti45 $r2,#0x4 | |
| 9688: e8 08 beqzs8 0x9698 | |
| 968a: 84 81 movi55 $r4,#0x1 | |
| 968c: 4c 22 00 76 beq $r2,$r4,0x9778 | |
| 9690: 84 02 movi55 $r0,#0x2 | |
| 9692: 4c 20 41 73 bne $r2,$r0,0x9978 | |
| 9696: d5 09 j8 0x96a8 | |
| 9698: 84 26 movi55 $r1,#0x6 | |
| 969a: 4c 20 80 c7 beq $r2,$r1,0x9828 | |
| 969e: 84 67 movi55 $r3,#0x7 | |
| 96a0: 4c 21 c1 6c bne $r2,$r3,0x9978 | |
| 96a4: 48 00 00 f4 j 0x988c | |
| 96a8: a6 38 lbi333 $r0,[$r7+#0x0] | |
| 96aa: 84 83 movi55 $r4,#0x3 | |
| 96ac: 4c 02 00 2a beq $r0,$r4,0x9700 | |
| 96b0: 84 26 movi55 $r1,#0x6 | |
| 96b2: 4c 00 80 56 beq $r0,$r1,0x975e | |
| 96b6: 84 42 movi55 $r2,#0x2 | |
| 96b8: 4c 01 41 60 bne $r0,$r2,0x9978 | |
| 96bc: 84 61 movi55 $r3,#0x1 | |
| 96be: 4c 61 c1 5d bne $r6,$r3,0x9978 | |
| 96c2: 2e 07 ff ff lbi.gp $r0,[+#-1] | |
| 96c6: 40 20 0c 06 slt $r2,$r0,$r3 | |
| 96ca: 3e 27 ff ff sbi.gp $r2,[+#-1] | |
| 96ce: c8 09 bnez38 $r0,0x96e0 | |
| 96d0: 84 3f movi55 $r1,#-1 | |
| 96d2: 3e 08 08 3e addi.gp $r0,#0x83e | |
| 96d6: 18 10 00 01 sbi.bi $r1,[$r0],#0x1 | |
| 96da: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 96dc: 48 00 01 4e j 0x9978 | |
| 96e0: 44 10 cf 46 movi $r1,#0xcf46 | |
| 96e4: 08 40 80 01 lbi.bi $r4,[$r1],#0x1 | |
| 96e8: 3e 08 08 3e addi.gp $r0,#0x83e | |
| 96ec: 18 40 00 01 sbi.bi $r4,[$r0],#0x1 | |
| 96f0: a6 48 lbi333 $r1,[$r1+#0x0] | |
| 96f2: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 96f4: 46 00 01 00 sethi $r0,#0x100 | |
| 96f8: 3e 67 ff e8 sbi.gp $r6,[+#-24] | |
| 96fc: 48 00 01 3e j 0x9978 | |
| 9700: 84 01 movi55 $r0,#0x1 | |
| 9702: 4c 10 40 0c bne $r1,$r0,0x971a | |
| 9706: 3e 17 ff fd sbi.gp $r1,[+#-3] | |
| 970a: 3c 1d ff e5 lwi.gp $r1,[+#-108] | |
| 970e: 46 00 01 00 sethi $r0,#0x100 | |
| 9712: 3c 1f ff f2 swi.gp $r1,[+#-56] | |
| 9716: 48 00 01 31 j 0x9978 | |
| 971a: 84 22 movi55 $r1,#0x2 | |
| 971c: 4c 60 c1 2e bne $r6,$r1,0x9978 | |
| 9720: 46 00 01 00 sethi $r0,#0x100 | |
| 9724: 2e 17 ff fd lbi.gp $r1,[+#-3] | |
| 9728: 4e 12 01 28 beqz $r1,0x9978 | |
| 972c: 3c 2d ff e5 lwi.gp $r2,[+#-108] | |
| 9730: 3c 1d ff f2 lwi.gp $r1,[+#-56] | |
| 9734: 9a 51 sub333 $r1,$r2,$r1 | |
| 9736: e6 22 slti45 $r1,#0x2 | |
| 9738: 4e f3 01 20 bnez $r15,0x9978 | |
| 973c: 44 10 00 00 movi $r1,#0x0 | |
| 9740: 3e 17 ff fd sbi.gp $r1,[+#-3] | |
| 9744: 49 ff bf e6 jal 0x1710 | |
| 9748: 49 ff ff 74 jal 0x9630 ; copy_d730_d9c0_and_memset_heap() | |
| 974c: 49 ff d2 60 jal 0x3c0c | |
| 9750: 84 00 movi55 $r0,#0x0 | |
| 9752: 80 20 mov55 $r1,$r0 | |
| 9754: ec 08 addi10.sp #0x8 | |
| 9756: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 975a: 48 ff d1 33 j 0x39c0 | |
| 975e: 84 41 movi55 $r2,#0x1 | |
| 9760: 4c 61 41 0c bne $r6,$r2,0x9978 | |
| 9764: 46 00 01 00 sethi $r0,#0x100 | |
| 9768: 2e 10 00 03 lbi.gp $r1,[+#0x3] | |
| 976c: 40 10 88 06 slt $r1,$r1,$r2 | |
| 9770: 3e 10 00 03 sbi.gp $r1,[+#0x3] | |
| 9774: 48 00 01 02 j 0x9978 ; goto OUT_9978 | |
| 9778: 46 f0 01 00 sethi $r15,#0x100 | |
| 977c: 2e 37 ff ea lbi.gp $r3,[+#-22] | |
| 9780: 84 85 movi55 $r4,#0x5 | |
| 9782: 4c 32 40 20 bne $r3,$r4,0x97c2 | |
| 9786: 84 01 movi55 $r0,#0x1 | |
| 9788: 4c 10 40 0b bne $r1,$r0,0x979e | |
| 978c: 3e 88 08 f0 addi.gp $r8,#0x8f0 | |
| 9790: 80 28 mov55 $r1,$r8 | |
| 9792: 8c 17 addi45 $r0,#0x17 | |
| 9794: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 | |
| 9798: 80 08 mov55 $r0,$r8 | |
| 979a: af 88 sbi333 $r6,[$r1+#0x0] | |
| 979c: d5 24 j8 0x97e4 | |
| 979e: 84 23 movi55 $r1,#0x3 | |
| 97a0: 4c 60 c0 ec bne $r6,$r1,0x9978 | |
| 97a4: 3e 68 08 f0 addi.gp $r6,#0x8f0 | |
| 97a8: 80 26 mov55 $r1,$r6 | |
| 97aa: 8c 17 addi45 $r0,#0x17 | |
| 97ac: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 | |
| 97b0: a7 f8 lbi333 $r7,[$r7+#0x0] | |
| 97b2: 9c f3 addi333 $r3,$r6,#0x3 | |
| 97b4: ae 88 sbi333 $r2,[$r1+#0x0] | |
| 97b6: 84 20 movi55 $r1,#0x0 | |
| 97b8: 80 06 mov55 $r0,$r6 | |
| 97ba: ae 58 sbi333 $r1,[$r3+#0x0] | |
| 97bc: af f2 sbi333 $r7,[$r6+#0x2] | |
| 97be: 48 00 00 d3 j 0x9964 | |
| 97c2: ec 08 addi10.sp #0x8 | |
| 97c4: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 97c8: 48 00 02 62 j 0x9c8c | |
| 97cc: 84 41 movi55 $r2,#0x1 | |
| 97ce: 4c 11 40 1a bne $r1,$r2,0x9802 | |
| 97d2: 3e 88 08 f0 addi.gp $r8,#0x8f0 | |
| 97d6: 80 28 mov55 $r1,$r8 | |
| 97d8: 94 1b slli333 $r0,$r3,#0x3 | |
| 97da: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 | |
| 97de: 84 42 movi55 $r2,#0x2 | |
| 97e0: ae 88 sbi333 $r2,[$r1+#0x0] | |
| 97e2: 80 08 mov55 $r0,$r8 | |
| 97e4: a7 f8 lbi333 $r7,[$r7+#0x0] | |
| 97e6: 10 64 00 03 sbi $r6,[$r8+#0x3] | |
| 97ea: 10 74 00 02 sbi $r7,[$r8+#0x2] | |
| 97ee: 49 ff e5 4f jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 97f2: 80 28 mov55 $r1,$r8 | |
| 97f4: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 97f8: ec 08 addi10.sp #0x8 | |
| 97fa: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 97fe: 48 ff b6 9d j 0x538 | |
| 9802: 84 63 movi55 $r3,#0x3 | |
| 9804: 4c 11 c0 ba bne $r1,$r3,0x9978 | |
| 9808: 3e 68 08 f0 addi.gp $r6,#0x8f0 | |
| 980c: 80 26 mov55 $r1,$r6 | |
| 980e: 94 1b slli333 $r0,$r3,#0x3 | |
| 9810: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 | |
| 9814: 98 b3 add333 $r2,$r6,$r3 | |
| 9816: a7 f8 lbi333 $r7,[$r7+#0x0] | |
| 9818: 84 62 movi55 $r3,#0x2 | |
| 981a: ae c8 sbi333 $r3,[$r1+#0x0] | |
| 981c: 84 20 movi55 $r1,#0x0 | |
| 981e: 80 06 mov55 $r0,$r6 | |
| 9820: ae 50 sbi333 $r1,[$r2+#0x0] | |
| 9822: af f2 sbi333 $r7,[$r6+#0x2] | |
| 9824: 48 00 00 a0 j 0x9964 | |
| 9828: 84 81 movi55 $r4,#0x1 | |
| 982a: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 982e: 4c 62 40 a5 bne $r6,$r4,0x9978 | |
| 9832: a6 78 lbi333 $r1,[$r7+#0x0] | |
| 9834: 84 42 movi55 $r2,#0x2 | |
| 9836: 4c 11 00 21 beq $r1,$r2,0x9878 | |
| 983a: e6 23 slti45 $r1,#0x3 | |
| 983c: e8 04 beqzs8 0x9844 | |
| 983e: 4c 12 40 9d bne $r1,$r4,0x9978 | |
| 9842: d5 09 j8 0x9854 | |
| 9844: 84 63 movi55 $r3,#0x3 | |
| 9846: 4c 11 80 19 beq $r1,$r3,0x9878 | |
| 984a: 84 84 movi55 $r4,#0x4 | |
| 984c: 4c 12 40 96 bne $r1,$r4,0x9978 | |
| 9850: 48 00 00 14 j 0x9878 | |
| 9854: 84 c5 movi55 $r6,#0x5 | |
| 9856: 4c 03 40 03 bne $r0,$r6,0x985c | |
| 985a: d5 11 j8 0x987c | |
| 985c: 46 f0 01 00 sethi $r15,#0x100 | |
| 9860: 2e 17 ff eb lbi.gp $r1,[+#-21] | |
| 9864: c1 02 beqz38 $r1,0x9868 | |
| 9866: d5 0f j8 0x9884 | |
| 9868: 84 21 movi55 $r1,#0x1 | |
| 986a: 4c 00 80 87 beq $r0,$r1,0x9978 | |
| 986e: 3e 17 ff ea sbi.gp $r1,[+#-22] | |
| 9872: 84 21 movi55 $r1,#0x1 | |
| 9874: 48 00 00 5e j 0x9930 | |
| 9878: 4c 00 80 06 beq $r0,$r1,0x9884 | |
| 987c: 3e 17 ff ea sbi.gp $r1,[+#-22] | |
| 9880: 48 00 00 58 j 0x9930 | |
| 9884: 3e 67 ff ea sbi.gp $r6,[+#-22] | |
| 9888: 80 26 mov55 $r1,$r6 | |
| 988a: d5 53 j8 0x9930 | |
| 988c: 84 41 movi55 $r2,#0x1 | |
| 988e: 2e 97 ff ea lbi.gp $r9,[+#-22] | |
| 9892: 4c 61 40 39 bne $r6,$r2,0x9904 | |
| 9896: a6 b8 lbi333 $r2,[$r7+#0x0] | |
| 9898: 4c 91 00 70 beq $r9,$r2,0x9978 | |
| 989c: 80 22 mov55 $r1,$r2 | |
| 989e: 80 09 mov55 $r0,$r9 | |
| 98a0: 3e 27 ff ea sbi.gp $r2,[+#-22] | |
| 98a4: 49 ff d3 4c jal 0x3f3c | |
| 98a8: 46 50 01 00 sethi $r5,#0x100 | |
| 98ac: 3e 67 ff de sbi.gp $r6,[+#-34] | |
| 98b0: 2e 40 00 10 lbi.gp $r4,[+#0x10] | |
| 98b4: 46 f0 01 00 sethi $r15,#0x100 | |
| 98b8: 2e 00 00 11 lbi.gp $r0,[+#0x11] | |
| 98bc: b4 e7 lwi450 $r7,[$r7] | |
| 98be: 95 23 slli333 $r4,$r4,#0x3 | |
| 98c0: 99 20 add333 $r4,$r4,$r0 | |
| 98c2: 3e 38 13 4c addi.gp $r3,#0x134c | |
| 98c6: 3e a8 08 f0 addi.gp $r10,#0x8f0 | |
| 98ca: 38 71 92 0a sw $r7,[$r3+($r4<<#0x2)] | |
| 98ce: 38 91 92 08 sb $r9,[$r3+($r4<<#0x2)] | |
| 98d2: 44 20 00 40 movi $r2,#0x40 | |
| 98d6: 84 20 movi55 $r1,#0x0 | |
| 98d8: 80 0a mov55 $r0,$r10 | |
| 98da: 49 00 03 ef jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 98de: 80 2a mov55 $r1,$r10 | |
| 98e0: 84 0b movi55 $r0,#0xb | |
| 98e2: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 | |
| 98e6: 80 0a mov55 $r0,$r10 | |
| 98e8: 2e 87 ff ea lbi.gp $r8,[+#-22] | |
| 98ec: 10 80 80 00 sbi $r8,[$r1+#0x0] | |
| 98f0: 49 ff e4 ce jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 98f4: 80 2a mov55 $r1,$r10 | |
| 98f6: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 98fa: ec 08 addi10.sp #0x8 | |
| 98fc: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 9900: 48 ff b6 1c j 0x538 | |
| 9904: 84 63 movi55 $r3,#0x3 | |
| 9906: 4c 61 c0 39 bne $r6,$r3,0x9978 | |
| 990a: a6 b8 lbi333 $r2,[$r7+#0x0] | |
| 990c: 4c 91 00 36 beq $r9,$r2,0x9978 | |
| 9910: 80 22 mov55 $r1,$r2 | |
| 9912: 80 09 mov55 $r0,$r9 | |
| 9914: 3e 68 08 f0 addi.gp $r6,#0x8f0 | |
| 9918: 3e 27 ff ea sbi.gp $r2,[+#-22] | |
| 991c: 49 ff d3 10 jal 0x3f3c | |
| 9920: 84 20 movi55 $r1,#0x0 | |
| 9922: 44 20 00 40 movi $r2,#0x40 | |
| 9926: 80 06 mov55 $r0,$r6 | |
| 9928: 46 30 01 00 sethi $r3,#0x100 | |
| 992c: 84 81 movi55 $r4,#0x1 | |
| 992e: d5 0d j8 0x9948 | |
| 9930: 3e 68 08 f0 addi.gp $r6,#0x8f0 | |
| 9934: 49 ff d3 04 jal 0x3f3c | |
| 9938: 84 20 movi55 $r1,#0x0 | |
| 993a: 44 20 00 40 movi $r2,#0x40 | |
| 993e: 80 06 mov55 $r0,$r6 | |
| 9940: 46 30 01 00 sethi $r3,#0x100 | |
| 9944: 44 40 00 01 movi $r4,#0x1 | |
| 9948: 3e 47 ff de sbi.gp $r4,[+#-34] | |
| 994c: 49 00 03 b6 jal 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2) | |
| 9950: 80 26 mov55 $r1,$r6 | |
| 9952: 84 0b movi55 $r0,#0xb | |
| 9954: 18 00 80 01 sbi.bi $r0,[$r1],#0x1 | |
| 9958: 50 03 00 00 addi $r0,$r6,#0x0 | |
| 995c: 2e 87 ff ea lbi.gp $r8,[+#-22] | |
| 9960: 10 80 80 00 sbi $r8,[$r1+#0x0] | |
| 9964: 49 ff e4 94 jal 0x628c ; add_packet_crc(pkt=$r0) | |
| 9968: 80 26 mov55 $r1,$r6 | |
| 996a: 3e 08 09 c0 addi.gp $r0,#0x9c0 | |
| 996e: ec 08 addi10.sp #0x8 | |
| 9970: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 9974: 48 ff b5 e2 j 0x538 | |
| 9978: ec 08 addi10.sp #0x8 ; 0x9978: label OUT_9978 | |
| 997a: 3a 6f a8 84 lmw.bim $r6,[$sp],$r10,#0x2 ! {$r6~$r10, $lp} | |
| 997e: dd 9e ret5 $lp | |
| 9980: ef f8 addi10.sp #-8 | |
| 9982: 50 2f 80 04 addi $r2,$sp,#0x4 | |
| 9986: b6 02 swi450 $r0,[$r2] | |
| 9988: 84 67 movi55 $r3,#0x7 | |
| 998a: a6 93 lbi333 $r2,[$r2+#0x3] | |
| 998c: 4c 21 80 1e beq $r2,$r3,0x99c8 | |
| 9990: e6 48 slti45 $r2,#0x8 | |
| 9992: e8 06 beqzs8 0x999e | |
| 9994: 9e 91 subi333 $r2,$r2,#0x1 | |
| 9996: 84 62 movi55 $r3,#0x2 | |
| 9998: e2 62 slt45 $r3,$r2 | |
| 999a: e9 1a bnezs8 0x99ce | |
| 999c: d5 0a j8 0x99b0 | |
| 999e: 84 69 movi55 $r3,#0x9 | |
| 99a0: 4c 21 80 0e beq $r2,$r3,0x99bc | |
| 99a4: e2 43 slt45 $r2,$r3 | |
| 99a6: e9 0e bnezs8 0x99c2 | |
| 99a8: 84 6a movi55 $r3,#0xa | |
| 99aa: 4c 21 c0 12 bne $r2,$r3,0x99ce | |
| 99ae: d5 04 j8 0x99b6 | |
| 99b0: ec 08 addi10.sp #0x8 | |
| 99b2: 48 ff f8 f5 j 0x8b9c | |
| 99b6: ec 08 addi10.sp #0x8 | |
| 99b8: 48 ff fe 5c j 0x9670 | |
| 99bc: ec 08 addi10.sp #0x8 | |
| 99be: 48 ff fb 79 j 0x90b0 | |
| 99c2: ec 08 addi10.sp #0x8 | |
| 99c4: 48 ff f6 da j 0x8778 | |
| 99c8: ec 08 addi10.sp #0x8 | |
| 99ca: 48 ff f6 3f j 0x8648 | |
| 99ce: ec 08 addi10.sp #0x8 | |
| 99d0: dd 9e ret5 $lp | |
| 99d2: 92 00 nop16 | |
| 99d4: 3a 6f aa bc smw.adm $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 99d8: ef cc addi10.sp #-52 | |
| 99da: 3e 18 10 a0 addi.gp $r1,#0x10a0 | |
| 99de: a6 08 lbi333 $r0,[$r1+#0x0] | |
| 99e0: 84 c1 movi55 $r6,#0x1 | |
| 99e2: 96 04 xlsb33 $r0,$r0 | |
| 99e4: 3e 60 00 0f sbi.gp $r6,[+#0xf] | |
| 99e8: c0 3e beqz38 $r0,0x9a64 | |
| 99ea: 46 00 01 00 sethi $r0,#0x100 | |
| 99ee: 2e 17 ff fe lbi.gp $r1,[+#-2] | |
| 99f2: f0 84 swi37.sp $r0,[+#0x10] | |
| 99f4: c9 33 bnez38 $r1,0x9a5a | |
| 99f6: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 99fa: 3e 10 00 0f sbi.gp $r1,[+#0xf] | |
| 99fe: 84 23 movi55 $r1,#0x3 | |
| 9a00: 4c 00 80 1c beq $r0,$r1,0x9a38 | |
| 9a04: e6 04 slti45 $r0,#0x4 | |
| 9a06: e8 05 beqzs8 0x9a10 | |
| 9a08: 84 42 movi55 $r2,#0x2 | |
| 9a0a: 4c 01 40 25 bne $r0,$r2,0x9a54 | |
| 9a0e: d5 0e j8 0x9a2a | |
| 9a10: 84 24 movi55 $r1,#0x4 | |
| 9a12: 4c 00 80 1b beq $r0,$r1,0x9a48 | |
| 9a16: 84 45 movi55 $r2,#0x5 | |
| 9a18: 4c 01 40 1e bne $r0,$r2,0x9a54 | |
| 9a1c: 84 3f movi55 $r1,#-1 | |
| 9a1e: 3e 08 07 bb addi.gp $r0,#0x7bb | |
| 9a22: 18 10 7f ff sbi.bi $r1,[$r0],#-1 | |
| 9a26: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 9a28: d5 16 j8 0x9a54 | |
| 9a2a: 84 3f movi55 $r1,#-1 | |
| 9a2c: 3e 08 07 bd addi.gp $r0,#0x7bd | |
| 9a30: 18 10 7f ff sbi.bi $r1,[$r0],#-1 | |
| 9a34: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 9a36: d5 0f j8 0x9a54 | |
| 9a38: 84 3f movi55 $r1,#-1 | |
| 9a3a: 3e 08 07 bf addi.gp $r0,#0x7bf | |
| 9a3e: 18 10 7f ff sbi.bi $r1,[$r0],#-1 | |
| 9a42: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 9a44: 48 00 00 08 j 0x9a54 | |
| 9a48: 84 3f movi55 $r1,#-1 | |
| 9a4a: 3e 08 07 c1 addi.gp $r0,#0x7c1 | |
| 9a4e: 18 10 7f ff sbi.bi $r1,[$r0],#-1 | |
| 9a52: ae 40 sbi333 $r1,[$r0+#0x0] | |
| 9a54: 84 21 movi55 $r1,#0x1 | |
| 9a56: 3e 17 ff e8 sbi.gp $r1,[+#-24] | |
| 9a5a: f1 04 lwi37.sp $r1,[+#0x10] | |
| 9a5c: 84 01 movi55 $r0,#0x1 | |
| 9a5e: 3e 07 ff fe sbi.gp $r0,[+#-2] | |
| 9a62: d5 15 j8 0x9a8c | |
| 9a64: 46 20 01 00 sethi $r2,#0x100 | |
| 9a68: 2e 07 ff fe lbi.gp $r0,[+#-2] | |
| 9a6c: f2 84 swi37.sp $r2,[+#0x10] | |
| 9a6e: c0 0b beqz38 $r0,0x9a84 | |
| 9a70: 3e 08 07 ba addi.gp $r0,#0x7ba | |
| 9a74: 44 10 ce c2 movi $r1,#0xcec2 | |
| 9a78: 44 20 00 08 movi $r2,#0x8 | |
| 9a7c: 49 00 03 14 jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| 9a80: 3e 67 ff e8 sbi.gp $r6,[+#-24] | |
| 9a84: f1 04 lwi37.sp $r1,[+#0x10] | |
| 9a86: 84 00 movi55 $r0,#0x0 | |
| 9a88: 3e 07 ff fe sbi.gp $r0,[+#-2] | |
| 9a8c: 2e 07 ff f5 lbi.gp $r0,[+#-11] | |
| 9a90: 84 40 movi55 $r2,#0x0 | |
| 9a92: 3e 20 00 00 sbi.gp $r2,[+#0x0] | |
| 9a96: c0 0b beqz38 $r0,0x9aac | |
| 9a98: 3e 08 10 a0 addi.gp $r0,#0x10a0 | |
| 9a9c: 3e 18 10 90 addi.gp $r1,#0x1090 | |
| 9aa0: 84 4f movi55 $r2,#0xf | |
| 9aa2: 49 00 02 f5 jal 0xa08c ; memcmp(s1=$r0, s2=$r1, n=$r2), $r0=0 if same, byte diff if not | |
| 9aa6: c0 03 beqz38 $r0,0x9aac | |
| 9aa8: 49 ff fd 8a jal 0x95bc | |
| 9aac: 84 40 movi55 $r2,#0x0 | |
| 9aae: f2 85 swi37.sp $r2,[+#0x14] | |
| 9ab0: 46 50 01 00 sethi $r5,#0x100 | |
| 9ab4: f1 05 lwi37.sp $r1,[+#0x14] | |
| 9ab6: 3e 08 10 a0 addi.gp $r0,#0x10a0 | |
| 9aba: 38 40 04 00 lb $r4,[$r0+($r1<<#0x0)] | |
| 9abe: 3e 08 10 90 addi.gp $r0,#0x1090 | |
| 9ac2: 38 20 04 00 lb $r2,[$r0+($r1<<#0x0)] | |
| 9ac6: 3e 10 00 10 sbi.gp $r1,[+#0x10] | |
| 9aca: 94 4b slli333 $r1,$r1,#0x3 | |
| 9acc: f1 86 swi37.sp $r1,[+#0x18] | |
| 9ace: f1 05 lwi37.sp $r1,[+#0x14] | |
| 9ad0: 40 01 10 04 or $r0,$r2,$r4 | |
| 9ad4: 94 cd slli333 $r3,$r1,#0x5 | |
| 9ad6: 40 12 10 05 nor $r1,$r4,$r4 | |
| 9ada: 40 11 04 02 and $r1,$r2,$r1 | |
| 9ade: 40 00 00 05 nor $r0,$r0,$r0 | |
| 9ae2: f1 87 swi37.sp $r1,[+#0x1c] | |
| 9ae4: 40 61 08 05 nor $r6,$r2,$r2 | |
| 9ae8: 96 00 zeb33 $r0,$r0 | |
| 9aea: 3e 18 11 48 addi.gp $r1,#0x1148 | |
| 9aee: 40 62 18 02 and $r6,$r4,$r6 | |
| 9af2: f0 89 swi37.sp $r0,[+#0x24] | |
| 9af4: 40 41 10 02 and $r4,$r2,$r4 | |
| 9af8: 98 19 add333 $r0,$r3,$r1 | |
| 9afa: f2 06 lwi37.sp $r2,[+#0x18] | |
| 9afc: 3e 18 06 e0 addi.gp $r1,#0x6e0 | |
| 9b00: 40 81 04 00 add $r8,$r2,$r1 | |
| 9b04: 3e 18 10 d0 addi.gp $r1,#0x10d0 | |
| 9b08: f4 88 swi37.sp $r4,[+#0x20] | |
| 9b0a: 99 11 add333 $r4,$r2,$r1 | |
| 9b0c: 3e 28 13 4c addi.gp $r2,#0x134c | |
| 9b10: 3e 18 15 2c addi.gp $r1,#0x152c | |
| 9b14: 41 c1 88 00 add $fp,$r3,$r2 | |
| 9b18: 40 91 84 00 add $r9,$r3,$r1 | |
| 9b1c: f2 06 lwi37.sp $r2,[+#0x18] | |
| 9b1e: 3e 18 06 60 addi.gp $r1,#0x660 | |
| 9b22: f6 83 swi37.sp $r6,[+#0xc] | |
| 9b24: 40 a1 04 00 add $r10,$r2,$r1 | |
| 9b28: 84 e0 movi55 $r7,#0x0 | |
| 9b2a: 80 60 mov55 $r3,$r0 | |
| 9b2c: 00 04 00 00 lbi $r0,[$r8+#0x0] | |
| 9b30: 96 78 zeb33 $r1,$r7 | |
| 9b32: c0 04 beqz38 $r0,0x9b3a | |
| 9b34: 9c 01 addi333 $r0,$r0,#0x1 | |
| 9b36: 10 04 00 00 sbi $r0,[$r8+#0x0] | |
| 9b3a: f2 04 lwi37.sp $r2,[+#0x10] | |
| 9b3c: 2e 07 ff fe lbi.gp $r0,[+#-2] | |
| 9b40: c0 04 beqz38 $r0,0x9b48 | |
| 9b42: b4 03 lwi450 $r0,[$r3] | |
| 9b44: f0 8b swi37.sp $r0,[+#0x2c] | |
| 9b46: d5 03 j8 0x9b4c | |
| 9b48: b4 5c lwi450 $r2,[$fp] | |
| 9b4a: f2 8b swi37.sp $r2,[+#0x2c] | |
| 9b4c: f2 03 lwi37.sp $r2,[+#0xc] | |
| 9b4e: 40 01 1c 0e sra $r0,$r2,$r7 | |
| 9b52: 96 04 xlsb33 $r0,$r0 | |
| 9b54: 3e 10 00 11 sbi.gp $r1,[+#0x11] | |
| 9b58: c0 47 beqz38 $r0,0x9be6 | |
| 9b5a: 00 05 00 00 lbi $r0,[$r10+#0x0] | |
| 9b5e: 5c f0 00 c8 slti $r15,$r0,#0xc8 | |
| 9b62: e8 07 beqzs8 0x9b70 | |
| 9b64: 9c 01 addi333 $r0,$r0,#0x1 | |
| 9b66: 10 05 00 00 sbi $r0,[$r10+#0x0] | |
| 9b6a: 84 21 movi55 $r1,#0x1 | |
| 9b6c: 3e 17 ff e1 sbi.gp $r1,[+#-31] | |
| 9b70: 3c 1d ff f0 lwi.gp $r1,[+#-64] | |
| 9b74: b4 09 lwi450 $r0,[$r9] | |
| 9b76: 9c 49 addi333 $r1,$r1,#0x1 | |
| 9b78: 9c 01 addi333 $r0,$r0,#0x1 | |
| 9b7a: 84 41 movi55 $r2,#0x1 | |
| 9b7c: 14 04 80 00 swi $r0,[$r9+#0x0] | |
| 9b80: 10 24 00 00 sbi $r2,[$r8+#0x0] | |
| 9b84: 3c 1f ff f0 swi.gp $r1,[+#-64] | |
| 9b88: 5c f0 80 c9 slti $r15,$r1,#0xc9 | |
| 9b8c: e9 04 bnezs8 0x9b94 | |
| 9b8e: 3c 2d ff e5 lwi.gp $r2,[+#-108] | |
| 9b92: d5 0a j8 0x9ba6 | |
| 9b94: c1 11 beqz38 $r1,0x9bb6 | |
| 9b96: 3c 2d ff e5 lwi.gp $r2,[+#-108] | |
| 9b9a: 3c 0d ff f1 lwi.gp $r0,[+#-60] | |
| 9b9e: 9a 10 sub333 $r0,$r2,$r0 | |
| 9ba0: 5c f0 02 59 slti $r15,$r0,#0x259 | |
| 9ba4: e9 09 bnezs8 0x9bb6 | |
| 9ba6: 84 00 movi55 $r0,#0x0 | |
| 9ba8: 3c 2f ff f1 swi.gp $r2,[+#-60] | |
| 9bac: 3c 0f ff f0 swi.gp $r0,[+#-64] | |
| 9bb0: 84 21 movi55 $r1,#0x1 | |
| 9bb2: 3e 17 ff e0 sbi.gp $r1,[+#-32] | |
| 9bb6: a6 20 lbi333 $r0,[$r4+#0x0] | |
| 9bb8: 84 21 movi55 $r1,#0x1 | |
| 9bba: f3 81 swi37.sp $r3,[+#0x4] | |
| 9bbc: b6 9f swi450 $r4,[$sp] | |
| 9bbe: f5 82 swi37.sp $r5,[+#0x8] | |
| 9bc0: 49 ff fc b4 jal 0x9528 | |
| 9bc4: f0 0b lwi37.sp $r0,[+#0x2c] | |
| 9bc6: 84 21 movi55 $r1,#0x1 | |
| 9bc8: 49 ff fe dc jal 0x9980 | |
| 9bcc: 2e 00 00 0f lbi.gp $r0,[+#0xf] | |
| 9bd0: f3 01 lwi37.sp $r3,[+#0x4] | |
| 9bd2: b4 9f lwi450 $r4,[$sp] | |
| 9bd4: f5 02 lwi37.sp $r5,[+#0x8] | |
| 9bd6: c0 46 beqz38 $r0,0x9c62 | |
| 9bd8: 84 21 movi55 $r1,#0x1 | |
| 9bda: 3e 17 ff e8 sbi.gp $r1,[+#-24] | |
| 9bde: 84 00 movi55 $r0,#0x0 | |
| 9be0: 3e 00 00 04 sbi.gp $r0,[+#0x4] | |
| 9be4: d5 3f j8 0x9c62 | |
| 9be6: f1 07 lwi37.sp $r1,[+#0x1c] | |
| 9be8: 40 00 9c 0e sra $r0,$r1,$r7 | |
| 9bec: 96 04 xlsb33 $r0,$r0 | |
| 9bee: c0 1b beqz38 $r0,0x9c24 | |
| 9bf0: f2 06 lwi37.sp $r2,[+#0x18] | |
| 9bf2: 98 57 add333 $r1,$r2,$r7 | |
| 9bf4: 3e 08 11 48 addi.gp $r0,#0x1148 | |
| 9bf8: 38 00 06 02 lw $r0,[$r0+($r1<<#0x2)] | |
| 9bfc: f3 81 swi37.sp $r3,[+#0x4] | |
| 9bfe: f5 82 swi37.sp $r5,[+#0x8] | |
| 9c00: b6 9f swi450 $r4,[$sp] | |
| 9c02: 84 23 movi55 $r1,#0x3 | |
| 9c04: 49 ff fe be jal 0x9980 | |
| 9c08: b4 9f lwi450 $r4,[$sp] | |
| 9c0a: 84 23 movi55 $r1,#0x3 | |
| 9c0c: a6 20 lbi333 $r0,[$r4+#0x0] | |
| 9c0e: 49 ff fc 8d jal 0x9528 | |
| 9c12: b4 1c lwi450 $r0,[$fp] | |
| 9c14: 84 23 movi55 $r1,#0x3 | |
| 9c16: f0 8b swi37.sp $r0,[+#0x2c] | |
| 9c18: 49 ff fe b4 jal 0x9980 | |
| 9c1c: f3 01 lwi37.sp $r3,[+#0x4] | |
| 9c1e: b4 9f lwi450 $r4,[$sp] | |
| 9c20: f5 02 lwi37.sp $r5,[+#0x8] | |
| 9c22: d5 20 j8 0x9c62 | |
| 9c24: f1 08 lwi37.sp $r1,[+#0x20] | |
| 9c26: 40 00 9c 0e sra $r0,$r1,$r7 | |
| 9c2a: 96 04 xlsb33 $r0,$r0 | |
| 9c2c: c0 0c beqz38 $r0,0x9c44 | |
| 9c2e: f0 0b lwi37.sp $r0,[+#0x2c] | |
| 9c30: 84 22 movi55 $r1,#0x2 | |
| 9c32: f3 81 swi37.sp $r3,[+#0x4] | |
| 9c34: b6 9f swi450 $r4,[$sp] | |
| 9c36: f5 82 swi37.sp $r5,[+#0x8] | |
| 9c38: 49 ff fe a4 jal 0x9980 | |
| 9c3c: f3 01 lwi37.sp $r3,[+#0x4] | |
| 9c3e: b4 9f lwi450 $r4,[$sp] | |
| 9c40: f5 02 lwi37.sp $r5,[+#0x8] | |
| 9c42: d5 10 j8 0x9c62 | |
| 9c44: f2 09 lwi37.sp $r2,[+#0x24] | |
| 9c46: 40 01 1c 0e sra $r0,$r2,$r7 | |
| 9c4a: 96 04 xlsb33 $r0,$r0 | |
| 9c4c: c0 0b beqz38 $r0,0x9c62 | |
| 9c4e: f0 0b lwi37.sp $r0,[+#0x2c] | |
| 9c50: 84 24 movi55 $r1,#0x4 | |
| 9c52: f3 81 swi37.sp $r3,[+#0x4] | |
| 9c54: b6 9f swi450 $r4,[$sp] | |
| 9c56: f5 82 swi37.sp $r5,[+#0x8] | |
| 9c58: 49 ff fe 94 jal 0x9980 | |
| 9c5c: f5 02 lwi37.sp $r5,[+#0x8] | |
| 9c5e: b4 9f lwi450 $r4,[$sp] | |
| 9c60: f3 01 lwi37.sp $r3,[+#0x4] | |
| 9c62: 9d f9 addi333 $r7,$r7,#0x1 | |
| 9c64: 84 08 movi55 $r0,#0x8 | |
| 9c66: 8d 01 addi45 $r8,#0x1 | |
| 9c68: 9d 21 addi333 $r4,$r4,#0x1 | |
| 9c6a: 51 ce 00 04 addi $fp,$fp,#0x4 | |
| 9c6e: 8d 24 addi45 $r9,#0x4 | |
| 9c70: 8d 41 addi45 $r10,#0x1 | |
| 9c72: 9c dc addi333 $r3,$r3,#0x4 | |
| 9c74: 4c 70 7f 5c bne $r7,$r0,0x9b2c | |
| 9c78: f1 05 lwi37.sp $r1,[+#0x14] | |
| 9c7a: 84 4f movi55 $r2,#0xf | |
| 9c7c: 9c 49 addi333 $r1,$r1,#0x1 | |
| 9c7e: f1 85 swi37.sp $r1,[+#0x14] | |
| 9c80: 4c 11 7f 1a bne $r1,$r2,0x9ab4 | |
| 9c84: ec 34 addi10.sp #0x34 | |
| 9c86: 3a 6f aa 84 lmw.bim $r6,[$sp],$r10,#0xa ! {$r6~$r10, $fp, $lp} | |
| 9c8a: dd 9e ret5 $lp | |
| 9c8c: 3a 6f 98 bc smw.adm $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 9c90: ef f8 addi10.sp #-8 | |
| 9c92: 50 2f 80 04 addi $r2,$sp,#0x4 | |
| 9c96: b6 02 swi450 $r0,[$r2] | |
| 9c98: 84 01 movi55 $r0,#0x1 | |
| 9c9a: 3e 68 17 50 addi.gp $r6,#0x1750 | |
| 9c9e: 4c 10 40 49 bne $r1,$r0,0x9d30 | |
| 9ca2: a6 31 lbi333 $r0,[$r6+#0x1] | |
| 9ca4: a6 f0 lbi333 $r3,[$r6+#0x0] | |
| 9ca6: 40 00 20 08 slli $r0,$r0,#0x8 | |
| 9caa: 40 00 0c 04 or $r0,$r0,$r3 | |
| 9cae: 44 30 55 aa movi $r3,#0x55aa | |
| 9cb2: 4c 01 80 12 beq $r0,$r3,0x9cd6 | |
| 9cb6: a6 50 lbi333 $r1,[$r2+#0x0] | |
| 9cb8: 2e 07 ff ea lbi.gp $r0,[+#-22] | |
| 9cbc: 80 46 mov55 $r2,$r6 | |
| 9cbe: 49 ff b9 9b jal 0xff4 | |
| 9cc2: c0 70 beqz38 $r0,0x9da2 | |
| 9cc4: 84 20 movi55 $r1,#0x0 | |
| 9cc6: a6 36 lbi333 $r0,[$r6+#0x6] | |
| 9cc8: ae 72 sbi333 $r1,[$r6+#0x2] | |
| 9cca: 84 21 movi55 $r1,#0x1 | |
| 9ccc: 4c 00 c0 6b bne $r0,$r1,0x9da2 | |
| 9cd0: a6 b7 lbi333 $r2,[$r6+#0x7] | |
| 9cd2: ae b3 sbi333 $r2,[$r6+#0x3] | |
| 9cd4: d5 67 j8 0x9da2 | |
| 9cd6: a6 10 lbi333 $r0,[$r2+#0x0] | |
| 9cd8: a6 b5 lbi333 $r2,[$r6+#0x5] | |
| 9cda: 4c 20 40 64 bne $r2,$r0,0x9da2 | |
| 9cde: a6 36 lbi333 $r0,[$r6+#0x6] | |
| 9ce0: 84 63 movi55 $r3,#0x3 | |
| 9ce2: 4c 01 c0 60 bne $r0,$r3,0x9da2 | |
| 9ce6: 3e 38 17 30 addi.gp $r3,#0x1730 | |
| 9cea: 84 40 movi55 $r2,#0x0 | |
| 9cec: 80 03 mov55 $r0,$r3 | |
| 9cee: aa 81 swi333.bi $r2,[$r0],#0x4 | |
| 9cf0: b6 40 swi450 $r2,[$r0] | |
| 9cf2: 50 01 80 08 addi $r0,$r3,#0x8 | |
| 9cf6: b6 40 swi450 $r2,[$r0] | |
| 9cf8: 50 01 80 0c addi $r0,$r3,#0xc | |
| 9cfc: b6 40 swi450 $r2,[$r0] | |
| 9cfe: 50 01 80 10 addi $r0,$r3,#0x10 | |
| 9d02: b6 40 swi450 $r2,[$r0] | |
| 9d04: 50 01 80 14 addi $r0,$r3,#0x14 | |
| 9d08: b6 40 swi450 $r2,[$r0] | |
| 9d0a: 50 01 80 18 addi $r0,$r3,#0x18 | |
| 9d0e: b6 40 swi450 $r2,[$r0] | |
| 9d10: 50 01 80 1c addi $r0,$r3,#0x1c | |
| 9d14: 3e 20 00 13 sbi.gp $r2,[+#0x13] | |
| 9d18: 3e 10 00 15 sbi.gp $r1,[+#0x15] | |
| 9d1c: ae b1 sbi333 $r2,[$r6+#0x1] | |
| 9d1e: ae 80 sbi333 $r2,[$r0+#0x0] | |
| 9d20: 3e 20 00 12 sbi.gp $r2,[+#0x12] | |
| 9d24: 46 00 01 00 sethi $r0,#0x100 | |
| 9d28: 3e 10 00 14 sbi.gp $r1,[+#0x14] | |
| 9d2c: ae b0 sbi333 $r2,[$r6+#0x0] | |
| 9d2e: d5 3a j8 0x9da2 | |
| 9d30: 84 63 movi55 $r3,#0x3 | |
| 9d32: 4c 11 c0 38 bne $r1,$r3,0x9da2 | |
| 9d36: a6 71 lbi333 $r1,[$r6+#0x1] | |
| 9d38: a6 f0 lbi333 $r3,[$r6+#0x0] | |
| 9d3a: 40 10 a0 08 slli $r1,$r1,#0x8 | |
| 9d3e: 40 10 8c 04 or $r1,$r1,$r3 | |
| 9d42: 44 30 55 aa movi $r3,#0x55aa | |
| 9d46: 4c 11 c0 2e bne $r1,$r3,0x9da2 | |
| 9d4a: a6 50 lbi333 $r1,[$r2+#0x0] | |
| 9d4c: a6 b5 lbi333 $r2,[$r6+#0x5] | |
| 9d4e: 4c 20 c0 2a bne $r2,$r1,0x9da2 | |
| 9d52: a6 76 lbi333 $r1,[$r6+#0x6] | |
| 9d54: 84 42 movi55 $r2,#0x2 | |
| 9d56: 4c 11 40 26 bne $r1,$r2,0x9da2 | |
| 9d5a: 3e 38 17 30 addi.gp $r3,#0x1730 | |
| 9d5e: 84 40 movi55 $r2,#0x0 | |
| 9d60: 80 23 mov55 $r1,$r3 | |
| 9d62: aa 89 swi333.bi $r2,[$r1],#0x4 | |
| 9d64: b6 41 swi450 $r2,[$r1] | |
| 9d66: 50 11 80 08 addi $r1,$r3,#0x8 | |
| 9d6a: b6 41 swi450 $r2,[$r1] | |
| 9d6c: 50 11 80 0c addi $r1,$r3,#0xc | |
| 9d70: b6 41 swi450 $r2,[$r1] | |
| 9d72: 50 11 80 10 addi $r1,$r3,#0x10 | |
| 9d76: b6 41 swi450 $r2,[$r1] | |
| 9d78: 50 11 80 14 addi $r1,$r3,#0x14 | |
| 9d7c: b6 41 swi450 $r2,[$r1] | |
| 9d7e: 50 11 80 18 addi $r1,$r3,#0x18 | |
| 9d82: b6 41 swi450 $r2,[$r1] | |
| 9d84: 50 11 80 1c addi $r1,$r3,#0x1c | |
| 9d88: 3e 20 00 13 sbi.gp $r2,[+#0x13] | |
| 9d8c: 3e 00 00 15 sbi.gp $r0,[+#0x15] | |
| 9d90: ae b1 sbi333 $r2,[$r6+#0x1] | |
| 9d92: ae 88 sbi333 $r2,[$r1+#0x0] | |
| 9d94: 3e 20 00 12 sbi.gp $r2,[+#0x12] | |
| 9d98: 46 10 01 00 sethi $r1,#0x100 | |
| 9d9c: 3e 00 00 14 sbi.gp $r0,[+#0x14] | |
| 9da0: ae b0 sbi333 $r2,[$r6+#0x0] | |
| 9da2: ec 08 addi10.sp #0x8 | |
| 9da4: 3a 6f 98 84 lmw.bim $r6,[$sp],$r6,#0x2 ! {$r6, $lp} | |
| 9da8: dd 9e ret5 $lp | |
| 9daa: 92 00 nop16 | |
| 9dac: 3a 6f a8 3c smw.adm $r6,[$sp],$r10,#0x0 ! {$r6~$r10} | |
| 9db0: 3e 08 17 50 addi.gp $r0,#0x1750 | |
| 9db4: a6 81 lbi333 $r2,[$r0+#0x1] | |
| 9db6: a6 40 lbi333 $r1,[$r0+#0x0] | |
| 9db8: 40 21 20 08 slli $r2,$r2,#0x8 | |
| 9dbc: 40 21 04 04 or $r2,$r2,$r1 | |
| 9dc0: 44 30 55 aa movi $r3,#0x55aa | |
| 9dc4: a6 42 lbi333 $r1,[$r0+#0x2] | |
| 9dc6: 4c 21 c0 cb bne $r2,$r3,0x9f5c | |
| 9dca: a6 83 lbi333 $r2,[$r0+#0x3] | |
| 9dcc: ca 1d bnez38 $r2,0x9e06 | |
| 9dce: a6 c6 lbi333 $r3,[$r0+#0x6] | |
| 9dd0: 84 81 movi55 $r4,#0x1 | |
| 9dd2: 4c 32 40 1a bne $r3,$r4,0x9e06 | |
| 9dd6: 3e 18 17 30 addi.gp $r1,#0x1730 | |
| 9dda: 80 81 mov55 $r4,$r1 | |
| 9ddc: aa a1 swi333.bi $r2,[$r4],#0x4 | |
| 9dde: 3e 20 00 13 sbi.gp $r2,[+#0x13] | |
| 9de2: 3e 30 00 15 sbi.gp $r3,[+#0x15] | |
| 9de6: ae 81 sbi333 $r2,[$r0+#0x1] | |
| 9de8: b6 44 swi450 $r2,[$r4] | |
| 9dea: 10 20 80 1c sbi $r2,[$r1+#0x1c] | |
| 9dee: 3e 20 00 12 sbi.gp $r2,[+#0x12] | |
| 9df2: 3e 30 00 14 sbi.gp $r3,[+#0x14] | |
| 9df6: ae 80 sbi333 $r2,[$r0+#0x0] | |
| 9df8: a8 8a swi333 $r2,[$r1+#0x8] | |
| 9dfa: a8 8b swi333 $r2,[$r1+#0xc] | |
| 9dfc: a8 8c swi333 $r2,[$r1+#0x10] | |
| 9dfe: a8 8d swi333 $r2,[$r1+#0x14] | |
| 9e00: a8 8e swi333 $r2,[$r1+#0x18] | |
| 9e02: 48 00 00 ad j 0x9f5c | |
| 9e06: 9c ca addi333 $r3,$r1,#0x2 | |
| 9e08: 94 da slli333 $r3,$r3,#0x2 | |
| 9e0a: 3e 58 17 50 addi.gp $r5,#0x1750 | |
| 9e0e: 98 dd add333 $r3,$r3,$r5 | |
| 9e10: a7 1b lbi333 $r4,[$r3+#0x3] | |
| 9e12: 84 c1 movi55 $r6,#0x1 | |
| 9e14: 4c 43 40 52 bne $r4,$r6,0x9eb8 | |
| 9e18: a7 5a lbi333 $r5,[$r3+#0x2] | |
| 9e1a: dc 19 bnes38 $r4,0x9e4c | |
| 9e1c: 00 81 80 00 lbi $r8,[$r3+#0x0] | |
| 9e20: 40 64 0c 09 srli $r6,$r8,#0x3 | |
| 9e24: 3e 78 17 30 addi.gp $r7,#0x1730 | |
| 9e28: a6 d9 lbi333 $r3,[$r3+#0x1] | |
| 9e2a: 38 a3 98 00 lb $r10,[$r7+($r6<<#0x0)] | |
| 9e2e: 2e 90 00 13 lbi.gp $r9,[+#0x13] | |
| 9e32: 54 84 00 07 andi $r8,$r8,#0x7 | |
| 9e36: 40 52 a0 0c sll $r5,$r5,$r8 | |
| 9e3a: 40 52 a8 04 or $r5,$r5,$r10 | |
| 9e3e: 40 34 8c 04 or $r3,$r9,$r3 | |
| 9e42: 38 53 98 08 sb $r5,[$r7+($r6<<#0x0)] | |
| 9e46: 3e 30 00 13 sbi.gp $r3,[+#0x13] | |
| 9e4a: d5 1d j8 0x9e84 | |
| 9e4c: 84 c2 movi55 $r6,#0x2 | |
| 9e4e: de 1b bnes38 $r6,0x9e84 | |
| 9e50: a7 58 lbi333 $r5,[$r3+#0x0] | |
| 9e52: 00 81 80 01 lbi $r8,[$r3+#0x1] | |
| 9e56: 54 72 80 07 andi $r7,$r5,#0x7 | |
| 9e5a: 3e 68 17 30 addi.gp $r6,#0x1730 | |
| 9e5e: 92 a3 srli45 $r5,#0x3 | |
| 9e60: 38 a3 14 00 lb $r10,[$r6+($r5<<#0x0)] | |
| 9e64: 2e 90 00 13 lbi.gp $r9,[+#0x13] | |
| 9e68: 40 42 1c 0c sll $r4,$r4,$r7 | |
| 9e6c: 40 72 10 05 nor $r7,$r4,$r4 | |
| 9e70: 40 44 20 05 nor $r4,$r8,$r8 | |
| 9e74: 40 73 a8 02 and $r7,$r7,$r10 | |
| 9e78: 40 42 24 02 and $r4,$r4,$r9 | |
| 9e7c: 38 73 14 08 sb $r7,[$r6+($r5<<#0x0)] | |
| 9e80: 3e 40 00 13 sbi.gp $r4,[+#0x13] | |
| 9e84: a6 c4 lbi333 $r3,[$r0+#0x4] | |
| 9e86: 9e d9 subi333 $r3,$r3,#0x1 | |
| 9e88: e0 23 slts45 $r1,$r3 | |
| 9e8a: e8 04 beqzs8 0x9e92 | |
| 9e8c: 9c 49 addi333 $r1,$r1,#0x1 | |
| 9e8e: ae 42 sbi333 $r1,[$r0+#0x2] | |
| 9e90: d5 0a j8 0x9ea4 | |
| 9e92: a6 46 lbi333 $r1,[$r0+#0x6] | |
| 9e94: 84 61 movi55 $r3,#0x1 | |
| 9e96: 4c 11 c0 04 bne $r1,$r3,0x9e9e | |
| 9e9a: 9e 91 subi333 $r2,$r2,#0x1 | |
| 9e9c: ae 83 sbi333 $r2,[$r0+#0x3] | |
| 9e9e: 84 20 movi55 $r1,#0x0 | |
| 9ea0: 10 10 00 02 sbi $r1,[$r0+#0x2] | |
| 9ea4: 3c 1c 00 08 lwi.gp $r1,[+#0x20] | |
| 9ea8: 3c 1e 00 0d swi.gp $r1,[+#0x34] | |
| 9eac: 46 00 01 00 sethi $r0,#0x100 | |
| 9eb0: 84 21 movi55 $r1,#0x1 | |
| 9eb2: 3e 10 00 14 sbi.gp $r1,[+#0x14] | |
| 9eb6: d5 53 j8 0x9f5c | |
| 9eb8: 84 a2 movi55 $r5,#0x2 | |
| 9eba: dc 31 bnes38 $r4,0x9f1c | |
| 9ebc: a7 1a lbi333 $r4,[$r3+#0x2] | |
| 9ebe: 84 c1 movi55 $r6,#0x1 | |
| 9ec0: 4c 43 40 0a bne $r4,$r6,0x9ed4 | |
| 9ec4: a6 d8 lbi333 $r3,[$r3+#0x0] | |
| 9ec6: 2e 50 00 12 lbi.gp $r5,[+#0x12] | |
| 9eca: 40 32 8c 04 or $r3,$r5,$r3 | |
| 9ece: 3e 30 00 12 sbi.gp $r3,[+#0x12] | |
| 9ed2: d5 0c j8 0x9eea | |
| 9ed4: 84 a2 movi55 $r5,#0x2 | |
| 9ed6: dc 0a bnes38 $r4,0x9eea | |
| 9ed8: a7 18 lbi333 $r4,[$r3+#0x0] | |
| 9eda: 2e 50 00 12 lbi.gp $r5,[+#0x12] | |
| 9ede: 40 42 10 05 nor $r4,$r4,$r4 | |
| 9ee2: 40 42 14 02 and $r4,$r4,$r5 | |
| 9ee6: 3e 40 00 12 sbi.gp $r4,[+#0x12] | |
| 9eea: a6 c4 lbi333 $r3,[$r0+#0x4] | |
| 9eec: 9e d9 subi333 $r3,$r3,#0x1 | |
| 9eee: e0 23 slts45 $r1,$r3 | |
| 9ef0: e8 04 beqzs8 0x9ef8 | |
| 9ef2: 9c 49 addi333 $r1,$r1,#0x1 | |
| 9ef4: ae 42 sbi333 $r1,[$r0+#0x2] | |
| 9ef6: d5 09 j8 0x9f08 | |
| 9ef8: a6 46 lbi333 $r1,[$r0+#0x6] | |
| 9efa: 84 c1 movi55 $r6,#0x1 | |
| 9efc: 4c 13 40 04 bne $r1,$r6,0x9f04 | |
| 9f00: 9e 91 subi333 $r2,$r2,#0x1 | |
| 9f02: ae 83 sbi333 $r2,[$r0+#0x3] | |
| 9f04: 84 20 movi55 $r1,#0x0 | |
| 9f06: ae 42 sbi333 $r1,[$r0+#0x2] | |
| 9f08: 3c 1c 00 08 lwi.gp $r1,[+#0x20] | |
| 9f0c: 3c 1e 00 0d swi.gp $r1,[+#0x34] | |
| 9f10: 46 00 01 00 sethi $r0,#0x100 | |
| 9f14: 84 21 movi55 $r1,#0x1 | |
| 9f16: 3e 10 00 15 sbi.gp $r1,[+#0x15] | |
| 9f1a: d5 21 j8 0x9f5c | |
| 9f1c: 84 a3 movi55 $r5,#0x3 | |
| 9f1e: dc 1f bnes38 $r4,0x9f5c | |
| 9f20: a7 99 lbi333 $r6,[$r3+#0x1] | |
| 9f22: 3c 5c 00 08 lwi.gp $r5,[+#0x20] | |
| 9f26: 3c 7c 00 0d lwi.gp $r7,[+#0x34] | |
| 9f2a: a6 d8 lbi333 $r3,[$r3+#0x0] | |
| 9f2c: 40 63 20 08 slli $r6,$r6,#0x8 | |
| 9f30: 40 33 0c 04 or $r3,$r6,$r3 | |
| 9f34: 9b af sub333 $r6,$r5,$r7 | |
| 9f36: e2 c3 slt45 $r6,$r3 | |
| 9f38: e9 12 bnezs8 0x9f5c | |
| 9f3a: a6 c4 lbi333 $r3,[$r0+#0x4] | |
| 9f3c: 9e d9 subi333 $r3,$r3,#0x1 | |
| 9f3e: e0 23 slts45 $r1,$r3 | |
| 9f40: e8 04 beqzs8 0x9f48 | |
| 9f42: 9c 49 addi333 $r1,$r1,#0x1 | |
| 9f44: ae 42 sbi333 $r1,[$r0+#0x2] | |
| 9f46: d5 09 j8 0x9f58 | |
| 9f48: a6 46 lbi333 $r1,[$r0+#0x6] | |
| 9f4a: 84 c1 movi55 $r6,#0x1 | |
| 9f4c: 4c 13 40 04 bne $r1,$r6,0x9f54 | |
| 9f50: 9e 91 subi333 $r2,$r2,#0x1 | |
| 9f52: ae 83 sbi333 $r2,[$r0+#0x3] | |
| 9f54: 84 20 movi55 $r1,#0x0 | |
| 9f56: ae 42 sbi333 $r1,[$r0+#0x2] | |
| 9f58: 3c 5e 00 0d swi.gp $r5,[+#0x34] | |
| 9f5c: 3a 6f a8 04 lmw.bim $r6,[$sp],$r10,#0x0 ! {$r6~$r10} | |
| 9f60: dd 9e ret5 $lp | |
| 9f62: 92 00 nop16 | |
| ; ------------- 0x9f64: SYSTEM INIT / MAIN ENTRYPOINT / _entry() ------------- | |
| 9f64: 64 02 00 43 setgie.d ; disable global interrupt | |
| 9f68: 64 00 00 08 dsb ; data serialization barrier | |
| 9f6c: 46 00 01 00 sethi $r0,#0x100 ; $r0 = 0x00100000 | |
| 9f70: 58 00 00 03 ori $r0,$r0,#0x3 ; $r0 = 0x00100011 | |
| 9f74: 64 04 e0 03 mtsr $r0,$dlmb ; Set up Data Local Memory: enabled, 8kb, addr 0x0010_0000~0x0010_1fff | |
| 9f78: 47 d0 01 00 sethi $gp,#0x100 ; $gp = 0x00100000 | |
| 9f7c: 59 de 81 c8 ori $gp,$gp,#0x1c8 ; $gp = 0x001001c8 (SRAM: 0x0010_0000 - 0x0010_1fff) | |
| 9f80: 45 c0 00 00 movi $fp,#0x0 ; $fp = 0 | |
| 9f84: 3f f8 1e 34 addi.gp $sp,#0x1e34 ; set $sp to $gp+0x1e34 (0x0010_1ffc, i.e. the end of SRAM) | |
| 9f88: 49 00 00 4e jal 0xa024 ; call 0xa024 (initialize stack, heap, interrupt table, etc) | |
| 9f8c: 49 ff cf 44 jal 0x3e14 ; call 0x3e14 (which might be main() since the next insn is a loop) | |
| 9f90: d5 00 j8 0x9f90 ; XXXX uhhh.. do what now | |
| 9f92: 92 00 nop16 ; these look like infinite loops? | |
| 9f94: d5 00 j8 0x9f94 ; another infinite loop | |
| 9f96: 92 00 nop16 ; | |
| 9f98: dd 9e ret5 $lp ; uh just return... something... | |
| 9f9a: 92 00 nop16 | |
| ; ----------- 0x9f9c: (re)set interrupt table | |
| 9f9c: 46 00 01 00 sethi $r0,#0x100 | |
| 9fa0: 46 10 01 5f sethi $r1,#0x15f | |
| 9fa4: 58 10 88 48 ori $r1,$r1,#0x848 | |
| 9fa8: 46 20 01 00 sethi $r2,#0x100 | |
| 9fac: aa 41 swi333.bi $r1,[$r0],#0x4 | |
| 9fae: 58 21 00 40 ori $r2,$r2,#0x40 | |
| 9fb2: 4c 01 7f fb bne $r0,$r2,0x9fa8 | |
| 9fb6: dd 9e ret5 $lp | |
| ; ----------- 0x9fb8: init_interrupt_table() | |
| 9fb8: 46 00 01 00 sethi $r0,#0x100 ; $r0 = 0x0010_0000 | |
| 9fbc: 46 10 01 5f sethi $r1,#0x15f ; $r1 = 0x0015_f000 | |
| 9fc0: 58 10 88 48 ori $r1,$r1,#0x848 ; $r1 = 0x0015_f848 | |
| 9fc4: 46 20 01 00 sethi $r2,#0x100 ; LOOP: $r2 = 0x0010_0000 | |
| 9fc8: aa 41 swi333.bi $r1,[$r0],#0x4 ; copy $r1 (0x0015f848) to [$r0], $r0 += 4 | |
| 9fca: 58 21 00 40 ori $r2,$r2,#0x40 ; $r2 = 0x0010_0040 | |
| 9fce: 4c 01 7f fb bne $r0,$r2,0x9fc4 ; UNTIL: $r0 == 0x0010_0040 | |
| 9fd2: 84 00 movi55 $r0,#0x0 ; (sets a (fake?) vector table at 0x0010_0000~0x0010_0040) | |
| 9fd4: 64 05 e4 03 mtsr $r0,$misc_ctl ; clear $misc_ctl | |
| 9fd8: 46 00 01 00 sethi $r0,#0x100 ; $r0 = 0x0010_0000 | |
| 9fdc: 64 02 24 03 mtsr $r0,$ivb ; set ESZ=0 (4 byte vector entries), base addr 0x0010_0000 | |
| 9fe0: 64 02 00 02 mfsr $r0,$psw ; (^^^ ignored if MCU) | |
| 9fe4: 42 00 04 09 bclr $r0,$r0,#0x1 ; clear $psw bit 1 | |
| 9fe8: 64 02 00 03 mtsr $r0,$psw ; set $psw - INTLEVEL -> 0 | |
| 9fec: 64 00 00 08 dsb | |
| 9ff0: dd 9e ret5 $lp | |
| 9ff2: 92 00 nop16 | |
| ; ----------- 0x9ff4: init_globals_and_heap() | |
| 9ff4: 3b ff fc bc smw.adm $sp,[$sp],$sp,#0x2 ! {$lp} ; save $lp on the stack | |
| 9ff8: ef fc addi10.sp #-4 ; move stack pointer | |
| 9ffa: 3e 38 00 04 addi.gp $r3,#0x4 ; $r3 = $gp+4 | |
| 9ffe: 3e 0f fe 78 addi.gp $r0,#-392 ; $r0 = $gp-392 (0x0010_0040, still in SRAM) | |
| a002: 9a 98 sub333 $r2,$r3,$r0 ; $r2 = $r3 - $r0 (=396?) | |
| a004: 44 10 db a4 movi $r1,#0xdba4 ; $r1 = 0xdba4 (???396 bytes of data already in flash???) | |
| a008: 49 00 00 4e jal 0xa0a4 ; memcpy(dest=$r0, src=$r1, n=$r2) | |
| a00c: 3e 08 00 04 addi.gp $r0,#0x4 ; memset dest = $gp+4 | |
| a010: 3e 38 19 50 addi.gp $r3,#0x1950 ; $r3 = $gp+0x1950 | |
| a014: 84 20 movi55 $r1,#0x0 ; memset byte = 0x00 | |
| a016: 9a 98 sub333 $r2,$r3,$r0 ; memset size = ($gp+0x1950) - ($gp+0x4) | |
| a018: ec 04 addi10.sp #0x4 ; move stack pointer | |
| a01a: 3b ff fc 84 lmw.bim $sp,[$sp],$sp,#0x2 ! {$lp} ; pop $lp off stack | |
| a01e: 48 00 00 4d j 0xa0b8 ; memset(void *$r0, int $r1, size_t $r2); return | |
| a022: 92 00 nop16 | |
| ; ----------- 0xa024: initialize stack / heap / system setup / etc. | |
| a024: 3b ff fc bc smw.adm $sp,[$sp],$sp,#0x2 ! {$lp} ; save $lp on the stack | |
| a028: 51 ff ff fc addi $sp,$sp,#-4 ; move stack pointer | |
| a02c: 49 ff ff e4 jal 0x9ff4 ; init_globals_and_heap() | |
| a030: 49 ff ff c4 jal 0x9fb8 ; init_interrupt_table() | |
| a034: ec 04 addi10.sp #0x4 ; pop $lp off the stack | |
| a036: 3b ff fc 84 lmw.bim $sp,[$sp],$sp,#0x2 ! {$lp} ; load saved $lp from stack | |
| a03a: 48 00 00 05 j 0xa044 ; jump to the ret5 $lp below | |
| a03e: 92 00 nop16 | |
| a040: dd 9e ret5 $lp | |
| a042: 92 00 nop16 | |
| a044: dd 9e ret5 $lp | |
| a046: 92 00 nop16 | |
| ; ----------- 0xa048: set_int_mask($r0) | |
| a048: 64 03 00 03 mtsr $r0,$int_mask | |
| a04c: dd 9e ret5 $lp | |
| a04e: 92 00 nop16 | |
| a050: 64 03 20 02 mfsr $r0,$int_pend | |
| a054: 42 00 40 08 bset $r0,$r0,#0x10 | |
| a058: 64 03 20 03 mtsr $r0,$int_pend | |
| a05c: 64 00 00 08 dsb | |
| a060: dd 9e ret5 $lp | |
| a062: 92 00 nop16 | |
| a064: 44 00 00 10 movi $r0,#0x10 | |
| a068: 64 03 20 03 mtsr $r0,$int_pend | |
| a06c: 64 00 00 08 dsb | |
| a070: dd 9e ret5 $lp | |
| a072: 92 00 nop16 | |
| ; ---------- 0xa074: disable interrupts | |
| a074: 64 02 00 43 setgie.d | |
| a078: 64 00 00 08 dsb | |
| a07c: dd 9e ret5 $lp | |
| a07e: 92 00 nop16 | |
| ; ---------- 0xa080: enable interrupts | |
| a080: 64 12 00 43 setgie.e | |
| a084: 64 00 00 08 dsb | |
| a088: dd 9e ret5 $lp | |
| a08a: 92 00 nop16 | |
| ; ---------- 0xa08c: memcmp(void *s1=$r0, void *s2=$r1, n=$r2), $r0=0 if same, byte diff if not | |
| a08c: 99 42 add333 $r5,$r0,$r2 ; $r5 = $r0+$r2 | |
| a08e: d0 09 beqs38 $r0,0xa0a0 ; do: if $r0 == $r5: return 0 | |
| a090: 08 30 00 01 lbi.bi $r3,[$r0],#0x1 ; $r3 = *$r0++ | |
| a094: 08 40 80 01 lbi.bi $r4,[$r1],#0x1 ; $r4 = *$r1++ | |
| a098: 4c 32 3f fb beq $r3,$r4,0xa08e ; while $r3 == $r4 | |
| a09c: 9a 1c sub333 $r0,$r3,$r4 ; $r0 = $r3 - $r4 | |
| a09e: dd 9e ret5 $lp ; return $r0 | |
| a0a0: 84 00 movi55 $r0,#0x0 ; | |
| a0a2: dd 9e ret5 $lp ; return 0 | |
| ; ---------- 0xa0a4: memcpy(void *dest=$r0, void *src=$r1, size_t n=$r2) | |
| a0a4: 80 60 mov55 $r3,$r0 ; $r3 = $r0 | |
| a0a6: c2 07 beqz38 $r2,0xa0b4 ; if ($r2 == 0): return | |
| a0a8: 99 4a add333 $r5,$r1,$r2 ; $r5 = $r1 + $r2 | |
| a0aa: 08 40 80 01 lbi.bi $r4,[$r1],#0x1 ; do: $r4 = [$r1++] | |
| a0ae: 18 41 80 01 sbi.bi $r4,[$r3],#0x1 ; [$r3++] = $r4 | |
| a0b2: d9 fc bnes38 $r1,0xa0aa ; while $r1 != $r5 | |
| a0b4: dd 9e ret5 $lp ; return | |
| a0b6: 92 00 nop16 | |
| ; ----------- 0xa0b8: memset(void *$r0, int $r1, size_t $r2) | |
| a0b8: 80 60 mov55 $r3,$r0 ; $r3 = $r0 | |
| a0ba: 99 5a add333 $r5,$r3,$r2 ; $r5 = $r3 + $r2 | |
| a0bc: d3 04 beqs38 $r3,0xa0c4 ; while $r3 != $r5: | |
| a0be: 18 11 80 01 sbi.bi $r1,[$r3],#0x1 ; [$r3] = $r1; $r3+=1 | |
| a0c2: d5 fd j8 0xa0bc ; endwhile | |
| a0c4: dd 9e ret5 $lp ; return | |
| a0c6: 92 00 nop16 | |
| ; ---- I think this section is actually data - or maybe we have the wrong | |
| ; ---- endianness? Wonder if something in the bimg hdr tells us this.. | |
| a0c8: 00 00 21 10 lbi $r0,[$r0+#0x2110] | |
| a0cc: 42 20 63 30 *unknown* | |
| a0d0: 84 40 movi55 $r2,#0x0 | |
| a0d2: a5 50 lhi333 $r5,[$r2+#0x0] | |
| a0d4: c6 60 beqz38 $r6,0xa194 | |
| a0d6: e7 70 slti45 $r11,#0x10 | |
| a0d8: 08 81 29 91 lbi.bi $r8,[$r2],#0x2991 | |
| a0dc: 4a a1 6b b1 *unknown* | |
| a0e0: 8c c1 addi45 $r6,#0x1 | |
| a0e2: ad d1 shi333 $r7,[$r2+#0x2] | |
| a0e4: ce e1 bnez38 $r6,0xa0a6 | |
| a0e6: ef f1 addi10.sp #-15 | |
| a0e8: 31 12 10 02 flsi.bi $fs17,[$r4],#0x8 | |
| a0ec: 73 32 52 22 *unknown* | |
| a0f0: b5 52 lwi450 $r10,[$r18] | |
| a0f2: 94 42 slli333 $r1,$r0,#0x2 | |
| a0f4: f7 72 lwi37.sp $r7,[+#0x1c8] | |
| a0f6: d6 62 beqs38 $r6,0xa1ba | |
| a0f8: 39 93 18 83 *unknown* | |
| a0fc: 7b b3 5a a3 *unknown* | |
| a100: bd d3 swi37 $r5,[$fp+#0x14c] | |
| a102: 9c c3 addi333 $r3,$r0,#0x3 | |
| a104: ff f3 not33 $r7,$r6 | |
| a106: de e3 bnes38 $r6,0xa0cc | |
| a108: 62 24 43 34 *unknown* | |
| a10c: 20 04 01 14 lbsi $r0,[$r8+#0x114] | |
| a110: e6 64 slti45 $r3,#0x4 | |
| a112: c7 74 beqz38 $r7,0xa1fa | |
| a114: a4 44 lhi333 $r1,[$r0+#0x8] | |
| a116: 85 54 movi55 $r10,#-12 | |
| a118: 6a a5 4b b5 *unknown* | |
| a11c: 28 85 09 95 lbsi.bi $r8,[$r10],#0x995 | |
| a120: ee e5 addi10.sp #-283 | |
| a122: cf f5 bnez38 $r7,0xa10c | |
| a124: ac c5 shi333 $r3,[$r0+#0xa] | |
| a126: 8d d5 addi45 $r18,#0x15 | |
| a128: 53 36 72 26 subri $r19,$r12,#-3546 | |
| a12c: 11 16 30 06 sbi $r17,[$r12+#0x3006] | |
| a130: d7 76 beqs38 $r7,0xa21c | |
| a132: f6 66 lwi37.sp $r6,[+#0x198] | |
| a134: 95 56 slli333 $r5,$r2,#0x6 | |
| a136: b4 46 lwi450 $r2,[$r6] | |
| a138: 5b b7 7a a7 beqc $p1,#-134,0xa086 | |
| a13c: 19 97 38 87 sbi.bi $r25,[$r14],#0x3887 | |
| a140: df f7 bnes38 $r7,0xa12e | |
| a142: fe e7 or33 $r3,$r4 | |
| a144: 9d d7 addi333 $r7,$r2,#0x7 | |
| a146: bc c7 swi37 $r4,[$fp+#0x11c] | |
| a148: c4 48 beqz38 $r4,0xa1d8 | |
| a14a: e5 58 sltsi45 $r10,#0x18 | |
| a14c: 86 68 movi55 $r19,#0x8 | |
| a14e: a7 78 lbi333 $r5,[$r7+#0x0] | |
| a150: 40 08 61 18 *unknown* | |
| a154: 02 28 23 38 lhi $r2,[$r16+#0x4670] | |
| a158: cc c9 bnez38 $r4,0xa0ea | |
| a15a: ed d9 addi10.sp #0x1d9 | |
| a15c: 8e e9 subi45 $r7,#0x9 | |
| a15e: af f9 sbi333 $r7,[$r7+#0x1] | |
| a160: 48 89 69 99 j 0xff137492 | |
| a164: 0a a9 2b b9 lhi.bi $r10,[$r18],#0x5772 | |
| a168: f5 5a lwi37.sp $r5,[+#0x168] | |
| a16a: d4 4a beqs38 $r4,0xa1fe | |
| a16c: b7 7a swi450 $r11,[$p0] | |
| a16e: 96 6a seb33 $r1,$r5 | |
| a170: 71 1a 50 0a *unknown* | |
| a174: 33 3a 12 2a fssi.bi $fs19,[$r20],#0x8a8 | |
| a178: fd db movd44 $p0,$r22 | |
| a17a: dc cb bnes38 $r4,0xa110 | |
| a17c: bf fb swi37 $r7,[$fp+#0x1ec] | |
| a17e: 9e eb subi333 $r3,$r5,#0x3 | |
| a180: 79 9b 58 8b *unknown* | |
| a184: 3b bb 1a ab *unknown* | |
| a188: a6 6c lbi333 $r1,[$r5+#0x4] | |
| a18a: 87 7c movi55 $p1,#-4 | |
| a18c: e4 4c sltsi45 $r2,#0xc | |
| a18e: c5 5c beqz38 $r5,0xa246 | |
| a190: 22 2c 03 3c lhsi $r2,[$r24+#0x678] | |
| a194: 60 0c 41 1c amaddl2.s $d0,$r24,$r16,[$i0],[$i4],$m3,$m5 | |
| a198: ae ed sbi333 $r3,[$r5+#0x5] | |
| a19a: 8f fd subi45 $r19,#0x1d | |
| a19c: ec cd addi10.sp #0xcd | |
| a19e: cd dd bnez38 $r5,0xa158 | |
| a1a0: 2a ad 0b bd lhsi.bi $r10,[$p0],#0x177a | |
| a1a4: 68 8d 49 9d *unknown* | |
| a1a8: 97 7e bmski33 $r5,#0x7 | |
| a1aa: b6 6e swi450 $r3,[$r14] | |
| a1ac: d5 5e j8 0xa268 | |
| a1ae: f4 4e lwi37.sp $r4,[+#0x138] | |
| a1b0: 13 3e 32 2e shi $r19,[$fp+#0x645c] | |
| a1b4: 51 1e 70 0e addi $r17,$fp,#-4082 | |
| a1b8: 9f ff subi333 $r7,$r7,#0x7 | |
| a1ba: be ef swi37 $r6,[$fp+#0x1bc] | |
| a1bc: dd df *unknown* | |
| a1be: fc cf pop25 $r10,#120 ! {$r6~$r10, $fp, $gp, $lp} | |
| a1c0: 1b bf 3a af shi.bi $p1,[$lp],#0x755e | |
| a1c4: 59 9f 78 8f ori $r25,$lp,#0x788f | |
| a1c8: 88 91 add45 $r4,$r17 | |
| a1ca: a9 81 swi333 $r6,[$r0+#0x4] | |
| a1cc: ca b1 bnez38 $r2,0xa12e | |
| a1ce: eb a1 ex9.it #417 | |
| a1d0: 0c d1 2d c1 lwi.bi $r13,[$r2],#0xb704 | |
| a1d4: 4e f1 6f e1 *unknown* | |
| a1d8: 80 10 mov55 $r0,$r16 | |
| a1da: a1 00 lwi333 $r4,[$r0+#0x0] | |
| a1dc: c2 30 beqz38 $r2,0xa23c | |
| a1de: e3 20 slt45 $r9,$r0 | |
| a1e0: 04 50 25 40 lwi $r5,[$r0+#0x9500] | |
| a1e4: 46 70 67 60 sethi $r7,#0x6760 | |
| a1e8: b9 83 swi37 $r1,[$fp+#0xc] | |
| a1ea: 98 93 add333 $r2,$r2,$r3 | |
| a1ec: fb a3 movpi45 $r17,#0x13 | |
| a1ee: da b3 bnes38 $r2,0xa154 | |
| a1f0: 3d c3 1c d3 lhi.gp $fp,[+#-116314] | |
| a1f4: 7f e3 5e f3 *unknown* | |
| a1f8: b1 02 addri36.sp $r4,#0x8 | |
| a1fa: 90 12 srai45 $r0,#0x12 | |
| a1fc: f3 22 lwi37.sp $r3,[+#0x88] | |
| a1fe: d2 32 beqs38 $r2,0xa262 | |
| a200: 35 42 14 52 fldi.bi $fd20,[$r4],#0x1148 | |
| a204: 77 62 56 72 *unknown* | |
| a208: ea b5 ex9.it #181 | |
| a20a: cb a5 bnez38 $r3,0xa154 | |
| a20c: a8 95 swi333 $r2,[$r2+#0x14] | |
| a20e: 89 85 add45 $r16,$r5 | |
| a210: 6e f5 4f e5 *unknown* | |
| a214: 2c d5 0d c5 *unknown* | |
| a218: e2 34 slt45 $r1,$r20 | |
| a21a: c3 24 beqz38 $r3,0xa262 | |
| a21c: a0 14 lwi333 $r0,[$r2+#0x10] | |
| a21e: 81 04 mov55 $r8,$r4 | |
| a220: 66 74 47 64 bitci $r7,$r8,#0x4764 | |
| a224: 24 54 05 44 *unknown* | |
| a228: db a7 bnes38 $r3,0xa176 | |
| a22a: fa b7 movpi45 $r5,#0x27 | |
| a22c: 99 87 add333 $r6,$r0,$r7 | |
| a22e: b8 97 swi37 $r0,[$fp+#0x5c] | |
| a230: 5f e7 7e f7 sltsi $lp,$r14,#-265 | |
| a234: 1d c7 3c d7 swi.bi $fp,[$r14],#0xf35c | |
| a238: d3 26 beqs38 $r3,0xa284 | |
| a23a: f2 36 lwi37.sp $r2,[+#0xd8] | |
| a23c: 91 06 srai45 $r8,#0x6 | |
| a23e: b0 16 addri36.sp $r0,#0x58 | |
| a240: 57 66 76 76 xori $r22,$r12,#0x7676 | |
| a244: 15 46 34 56 swi $r20,[$r12+#0xd158] | |
| a248: 4c d9 6d c9 bne $r13,$r18,0x7dda | |
| a24c: 0e f9 2f e9 *unknown* | |
| a250: c8 99 bnez38 $r0,0xa182 | |
| a252: e9 89 bnezs8 0xa164 | |
| a254: 8a b9 sub45 $r5,$r25 | |
| a256: ab a9 swi333.bi $r6,[$r5],#0x4 | |
| a258: 44 58 65 48 movi $r5,#-498360 | |
| a25c: 06 78 27 68 *unknown* | |
| a260: c0 18 beqz38 $r0,0xa290 | |
| a262: e1 08 slts45 $r8,$r8 | |
| a264: 82 38 mov55 $r17,$r24 | |
| a266: a3 28 lwi333.bi $r4,[$r5],#0x0 | |
| a268: 7d cb 5c db *unknown* | |
| a26c: 3f eb 1e fb addi.gp $lp,#0x31efb | |
| a270: f9 8b ifcall9 0xa586 | |
| a272: d8 9b bnes38 $r0,0xa1a8 | |
| a274: bb ab swi37 $r3,[$fp+#0xac] | |
| a276: 9a bb sub333 $r2,$r7,$r3 | |
| a278: 75 4a 54 5a *unknown* | |
| a27c: 37 6a 16 7a fsdi.bi $fd22,[$r20],#0x19e8 | |
| a280: f1 0a lwi37.sp $r1,[+#0x28] | |
| a282: d0 1a beqs38 $r0,0xa2b6 | |
| a284: b3 2a lwi45.fe $r9,#-88 | |
| a286: 92 3a srli45 $r1,#0x1a | |
| a288: 2e fd 0f ed lbsi.gp $r15,[+#-192531] | |
| a28c: 6c dd 4d cd *unknown* | |
| a290: aa bd swi333.bi $r2,[$r7],#0x14 | |
| a292: 8b ad sub45 $r17,$r13 | |
| a294: e8 9d beqzs8 0xa1ce | |
| a296: c9 8d bnez38 $r1,0xa1b0 | |
| a298: 26 7c 07 6c dprefi.w ???,[$r24+#0x1db0] | |
| a29c: 64 5c 45 4c msync ??? | |
| a2a0: a2 3c lwi333.bi $r0,[$r7],#0x10 | |
| a2a2: 83 2c mov55 $r25,$r12 | |
| a2a4: e0 1c slts45 $r0,$fp | |
| a2a6: c1 0c beqz38 $r1,0xa2be | |
| a2a8: 1f ef 3e ff *unknown* | |
| a2ac: 5d cf 7c df slti $fp,$lp,#-801 | |
| a2b0: 9b af sub333 $r6,$r5,$r7 | |
| a2b2: ba bf swi37 $r2,[$fp+#0xfc] | |
| a2b4: d9 8f bnes38 $r1,0xa1d2 | |
| a2b6: f8 9f ifcall9 0xa3f4 | |
| a2b8: 17 6e 36 7e *unknown* | |
| a2bc: 55 4e 74 5e andi $r20,$fp,#0x745e | |
| a2c0: 93 2e srli45 $r9,#0xe | |
| a2c2: b2 3e lwi45.fe $r1,#-8 | |
| a2c4: d1 0e beqs38 $r1,0xa2e0 | |
| a2c6: f0 1e lwi37.sp $r0,[+#0x78] | |
| a2c8: 80 68 mov55 $r3,$r8 | |
| a2ca: 1f 00 00 10 *unknown* | |
| a2ce: 00 00 80 68 lbi $r0,[$r1+#0x68] | |
| a2d2: 1f 00 00 20 *unknown* | |
| a2d6: 00 00 80 68 lbi $r0,[$r1+#0x68] | |
| a2da: 1f 00 00 40 *unknown* | |
| a2de: 00 00 80 68 lbi $r0,[$r1+#0x68] | |
| a2e2: 1f 00 00 80 *unknown* | |
| a2e6: 00 00 80 68 lbi $r0,[$r1+#0x68] | |
| a2ea: 1f 00 40 00 *unknown* | |
| a2ee: 00 00 80 68 lbi $r0,[$r1+#0x68] | |
| a2f2: 1f 00 00 01 *unknown* | |
| a2f6: 00 00 80 68 lbi $r0,[$r1+#0x68] | |
| a2fa: 1f 00 10 00 *unknown* | |
| a2fe: 00 00 80 68 lbi $r0,[$r1+#0x68] | |
| a302: 1f 00 08 00 *unknown* | |
| a306: 00 00 80 69 lbi $r0,[$r1+#0x69] | |
| a30a: 1f 00 08 00 *unknown* | |
| a30e: 00 00 80 69 lbi $r0,[$r1+#0x69] | |
| a312: 1f 00 04 00 *unknown* | |
| a316: 00 00 80 68 lbi $r0,[$r1+#0x68] | |
| a31a: 1f 00 01 00 *unknown* | |
| a31e: 00 00 00 69 lbi $r0,[$r0+#0x69] | |
| a322: 1f 00 00 04 *unknown* | |
| a326: 00 00 00 68 lbi $r0,[$r0+#0x68] | |
| a32a: 1f 00 00 20 *unknown* | |
| a32e: 00 00 80 68 lbi $r0,[$r1+#0x68] | |
| a332: 1f 00 00 08 *unknown* | |
| a336: 00 00 80 68 lbi $r0,[$r1+#0x68] | |
| a33a: 1f 00 00 04 *unknown* | |
| a33e: 00 00 80 68 lbi $r0,[$r1+#0x68] | |
| a342: 1f 00 04 00 *unknown* | |
| a346: 00 00 80 68 lbi $r0,[$r1+#0x68] | |
| a34a: 1f 00 80 00 *unknown* | |
| a34e: 00 00 80 68 lbi $r0,[$r1+#0x68] | |
| a352: 1f 00 20 00 *unknown* | |
| a356: 00 00 80 68 lbi $r0,[$r1+#0x68] | |
| a35a: 1f 00 00 02 *unknown* | |
| a35e: 00 00 00 48 lbi $r0,[$r0+#0x48] | |
| a362: 20 00 00 1c lbsi $r0,[$r0+#0x1c] | |
| a366: 20 00 00 20 lbsi $r0,[$r0+#0x20] | |
| a36a: 20 00 00 24 lbsi $r0,[$r0+#0x24] | |
| a36e: 20 00 00 28 lbsi $r0,[$r0+#0x28] | |
| a372: 20 00 00 0d lbsi $r0,[$r0+#0xd] | |
| a376: 20 00 00 64 lbsi $r0,[$r0+#0x64] | |
| a37a: 20 00 10 00 lbsi $r0,[$r0+#0x1000] | |
| a37e: 30 00 f0 87 cplwi.bi cp3,$cpr0,[$r1],#0x21c | |
| a382: f0 87 swi37.sp $r0,[+#0x1c] | |
| a384: f0 87 swi37.sp $r0,[+#0x1c] | |
| a386: 00 00 05 0a lbi $r0,[$r0+#0x50a] | |
| a38a: 05 0a 03 05 lwi $r16,[$r20+#0xc14] | |
| a38e: 02 09 02 02 lhi $r0,[$r18+#0x404] | |
| a392: 01 05 01 0e lbi $r16,[$r10+#0x10e] | |
| a396: 03 0a 00 03 lhi $r16,[$r20+#0x6] | |
| a39a: 00 0c 01 11 lbi $r0,[$r24+#0x111] | |
| a39e: 01 12 04 14 lbi $r17,[$r4+#0x414] | |
| a3a2: 05 14 05 0b lwi $r17,[$r8+#0x142c] | |
| a3a6: ff ff or33 $r7,$r7 | |
| a3a8: 03 06 02 0a lhi $r16,[$r12+#0x414] | |
| a3ac: 04 03 01 06 lwi $r0,[$r6+#0x418] | |
| a3b0: 02 00 03 0b lhi $r0,[$r0+#0x616] | |
| a3b4: 00 04 00 0d lbi $r0,[$r8+#0xd] | |
| a3b8: 04 0e 01 13 lwi $r0,[$fp+#0x44c] | |
| a3bc: 03 12 00 12 lhi $r17,[$r4+#0x24] | |
| a3c0: 05 00 03 01 lwi $r16,[$r0+#0xc04] | |
| a3c4: 02 08 02 01 lhi $r0,[$r16+#0x402] | |
| a3c8: 02 06 01 07 lhi $r0,[$r12+#0x20e] | |
| a3cc: 05 06 01 00 lwi $r16,[$r12+#0x400] | |
| a3d0: 00 05 00 0e lbi $r0,[$r10+#0xe] | |
| a3d4: 02 10 01 14 lhi $r1,[$r0+#0x228] | |
| a3d8: 03 13 00 13 lhi $r17,[$r6+#0x26] | |
| a3dc: 04 00 04 06 lwi $r0,[$r0+#0x1018] | |
| a3e0: 03 07 02 04 lhi $r16,[$r14+#0x408] | |
| a3e4: 04 02 01 08 lwi $r0,[$r4+#0x420] | |
| a3e8: 01 0b 04 09 lbi $r16,[$r22+#0x409] | |
| a3ec: 00 07 00 0f lbi $r0,[$r14+#0xf] | |
| a3f0: 02 11 01 15 lhi $r1,[$r2+#0x22a] | |
| a3f4: 03 14 00 14 lhi $r17,[$r8+#0x28] | |
| a3f8: 05 02 04 04 lwi $r16,[$r4+#0x1010] | |
| a3fc: 03 08 03 02 lhi $r16,[$r16+#0x604] | |
| a400: 01 01 01 09 lbi $r16,[$r2+#0x109] | |
| a404: 01 0c 04 0a lbi $r16,[$r24+#0x40a] | |
| a408: 00 08 00 10 lbi $r0,[$r16+#0x10] | |
| a40c: 05 0e 02 15 lwi $r16,[$fp+#0x854] | |
| a410: 02 12 00 15 lhi $r1,[$r4+#0x2a] | |
| a414: 05 01 03 03 lwi $r16,[$r2+#0xc0c] | |
| a418: 03 09 02 05 lhi $r16,[$r18+#0x40a] | |
| a41c: 01 02 01 0a lbi $r16,[$r4+#0x10a] | |
| a420: 02 0b 04 0b lhi $r0,[$r22+#0x816] | |
| a424: 00 09 00 11 lbi $r0,[$r18+#0x11] | |
| a428: 05 0c 04 15 lwi $r16,[$r24+#0x1054] | |
| a42c: 02 13 ff ff lhi $r1,[$r7+#-2] | |
| a430: 05 0b 02 03 lwi $r16,[$r22+#0x80c] | |
| a434: 04 08 02 07 lwi $r0,[$r16+#0x81c] | |
| a438: 01 03 03 0d lbi $r16,[$r6+#0x30d] | |
| a43c: 02 0c 03 00 lhi $r0,[$r24+#0x600] | |
| a440: 00 0a 01 0f lbi $r0,[$r20+#0x10f] | |
| a444: 05 0d 04 12 lwi $r16,[$p0+#0x1048] | |
| a448: 02 14 ff ff lhi $r1,[$r9+#-2] | |
| a44c: 04 0c 03 04 lwi $r0,[$r24+#0xc10] | |
| a450: 04 07 04 05 lwi $r0,[$r14+#0x1014] | |
| a454: 01 04 01 00 lbi $r16,[$r8+#0x100] | |
| a458: 02 0e 00 02 lhi $r0,[$fp+#0x4] | |
| a45c: 00 0b 01 10 lbi $r0,[$r22+#0x110] | |
| a460: 04 0d 04 13 lwi $r0,[$p0+#0x104c] | |
| a464: 05 12 ff ff lwi $r17,[$r5+#-4] | |
| a468: ff ff or33 $r7,$r7 | |
| a46a: ff ff or33 $r7,$r7 | |
| a46c: ff ff or33 $r7,$r7 | |
| a46e: ff ff or33 $r7,$r7 | |
| a470: ff ff or33 $r7,$r7 | |
| a472: ff ff or33 $r7,$r7 | |
| a474: ff ff or33 $r7,$r7 | |
| a476: ff ff or33 $r7,$r7 | |
| a478: ff ff or33 $r7,$r7 | |
| a47a: ff ff or33 $r7,$r7 | |
| a47c: ff ff or33 $r7,$r7 | |
| a47e: ff ff or33 $r7,$r7 | |
| a480: ff ff or33 $r7,$r7 | |
| a482: ff ff or33 $r7,$r7 | |
| a484: ff ff or33 $r7,$r7 | |
| a486: ff ff or33 $r7,$r7 | |
| a488: ff ff or33 $r7,$r7 | |
| a48a: ff ff or33 $r7,$r7 | |
| a48c: ff ff or33 $r7,$r7 | |
| a48e: ff ff or33 $r7,$r7 | |
| a490: ff ff or33 $r7,$r7 | |
| a492: ff ff or33 $r7,$r7 | |
| a494: 06 00 06 01 *unknown* | |
| a498: 06 02 06 03 *unknown* | |
| a49c: 06 04 06 05 *unknown* | |
| a4a0: 06 06 06 07 *unknown* | |
| a4a4: 06 08 06 09 *unknown* | |
| a4a8: 06 0a 06 0b *unknown* | |
| a4ac: 06 0c ff ff *unknown* | |
| a4b0: 06 0d ff ff *unknown* | |
| a4b4: ff ff or33 $r7,$r7 | |
| a4b6: ff ff or33 $r7,$r7 | |
| a4b8: ff ff or33 $r7,$r7 | |
| a4ba: ff ff or33 $r7,$r7 | |
| a4bc: ff ff or33 $r7,$r7 | |
| a4be: ff ff or33 $r7,$r7 | |
| a4c0: 05 00 05 01 lwi $r16,[$r0+#0x1404] | |
| a4c4: 05 02 05 03 lwi $r16,[$r4+#0x140c] | |
| a4c8: 05 04 05 05 lwi $r16,[$r8+#0x1414] | |
| a4cc: 05 06 05 07 lwi $r16,[$r12+#0x141c] | |
| a4d0: 05 08 05 09 lwi $r16,[$r16+#0x1424] | |
| a4d4: 05 0a 05 0b lwi $r16,[$r20+#0x142c] | |
| a4d8: 05 0c ff ff lwi $r16,[$r25+#-4] | |
| a4dc: 05 0d ff ff lwi $r16,[$p1+#-4] | |
| a4e0: ff ff or33 $r7,$r7 | |
| a4e2: ff ff or33 $r7,$r7 | |
| a4e4: ff ff or33 $r7,$r7 | |
| a4e6: ff ff or33 $r7,$r7 | |
| a4e8: ff ff or33 $r7,$r7 | |
| a4ea: ff ff or33 $r7,$r7 | |
| a4ec: 04 00 04 01 lwi $r0,[$r0+#0x1004] | |
| a4f0: 04 02 04 03 lwi $r0,[$r4+#0x100c] | |
| a4f4: 04 04 04 05 lwi $r0,[$r8+#0x1014] | |
| a4f8: 04 06 04 07 lwi $r0,[$r12+#0x101c] | |
| a4fc: 04 08 04 09 lwi $r0,[$r16+#0x1024] | |
| a500: 04 0a 04 0b lwi $r0,[$r20+#0x102c] | |
| a504: ff ff or33 $r7,$r7 | |
| a506: 04 0c ff ff lwi $r0,[$r25+#-4] | |
| a50a: ff ff or33 $r7,$r7 | |
| a50c: ff ff or33 $r7,$r7 | |
| a50e: ff ff or33 $r7,$r7 | |
| a510: ff ff or33 $r7,$r7 | |
| a512: ff ff or33 $r7,$r7 | |
| a514: ff ff or33 $r7,$r7 | |
| a516: ff ff or33 $r7,$r7 | |
| a518: 03 00 ff ff lhi $r16,[$r1+#-2] | |
| a51c: 03 01 03 02 lhi $r16,[$r2+#0x604] | |
| a520: 03 03 03 04 lhi $r16,[$r6+#0x608] | |
| a524: 03 05 03 06 lhi $r16,[$r10+#0x60c] | |
| a528: 03 07 03 08 lhi $r16,[$r14+#0x610] | |
| a52c: 03 09 03 0a lhi $r16,[$r18+#0x614] | |
| a530: 03 0b 03 0c lhi $r16,[$r22+#0x618] | |
| a534: 03 0d ff ff lhi $r16,[$p1+#-2] | |
| a538: ff ff or33 $r7,$r7 | |
| a53a: ff ff or33 $r7,$r7 | |
| a53c: ff ff or33 $r7,$r7 | |
| a53e: ff ff or33 $r7,$r7 | |
| a540: ff ff or33 $r7,$r7 | |
| a542: ff ff or33 $r7,$r7 | |
| a544: 02 00 02 01 lhi $r0,[$r0+#0x402] | |
| a548: 02 02 ff ff lhi $r0,[$r5+#-2] | |
| a54c: ff ff or33 $r7,$r7 | |
| a54e: ff ff or33 $r7,$r7 | |
| a550: 02 03 ff ff lhi $r0,[$r7+#-2] | |
| a554: ff ff or33 $r7,$r7 | |
| a556: ff ff or33 $r7,$r7 | |
| a558: 02 08 02 09 lhi $r0,[$r16+#0x412] | |
| a55c: 02 0a 02 0b lhi $r0,[$r20+#0x416] | |
| a560: 02 0c ff ff lhi $r0,[$r25+#-2] | |
| a564: ff ff or33 $r7,$r7 | |
| a566: ff ff or33 $r7,$r7 | |
| a568: ff ff or33 $r7,$r7 | |
| a56a: ff ff or33 $r7,$r7 | |
| a56c: ff ff or33 $r7,$r7 | |
| a56e: ff ff or33 $r7,$r7 | |
| a570: 00 05 ff ff lbi $r0,[$r11+#-1] | |
| a574: 02 00 0e 05 lhi $r0,[$r0+#0x1c0a] | |
| a578: 00 01 01 01 lbi $r0,[$r2+#0x101] | |
| a57c: 01 02 00 02 lbi $r16,[$r4+#0x2] | |
| a580: 00 03 00 02 lbi $r0,[$r6+#0x2] | |
| a584: 00 03 01 03 lbi $r0,[$r6+#0x103] | |
| a588: 02 04 00 04 lhi $r0,[$r8+#0x8] | |
| a58c: 00 05 00 04 lbi $r0,[$r10+#0x4] | |
| a590: 00 05 01 05 lbi $r0,[$r10+#0x105] | |
| a594: 00 00 ff ff lbi $r0,[$r1+#-1] | |
| a598: 02 00 00 01 lhi $r0,[$r0+#0x2] | |
| a59c: 01 01 02 01 lbi $r16,[$r2+#0x201] | |
| a5a0: 02 02 01 02 lhi $r0,[$r4+#0x204] | |
| a5a4: 00 02 00 03 lbi $r0,[$r4+#0x3] | |
| a5a8: 01 03 02 03 lbi $r16,[$r6+#0x203] | |
| a5ac: 02 04 ff ff lhi $r0,[$r9+#-2] | |
| a5b0: 02 04 00 05 lhi $r0,[$r8+#0xa] | |
| a5b4: 01 05 02 05 lbi $r16,[$r10+#0x205] | |
| a5b8: 00 00 ff ff lbi $r0,[$r1+#-1] | |
| a5bc: 03 00 01 01 lhi $r16,[$r0+#0x202] | |
| a5c0: 02 01 03 01 lhi $r0,[$r2+#0x602] | |
| a5c4: 03 02 02 02 lhi $r16,[$r4+#0x404] | |
| a5c8: 01 02 01 03 lbi $r16,[$r4+#0x103] | |
| a5cc: 02 03 03 03 lhi $r0,[$r6+#0x606] | |
| a5d0: 03 04 02 04 lhi $r16,[$r8+#0x408] | |
| a5d4: 00 04 01 05 lbi $r0,[$r8+#0x105] | |
| a5d8: 02 05 06 05 lhi $r0,[$r10+#0xc0a] | |
| a5dc: 02 00 ff ff lhi $r0,[$r1+#-2] | |
| a5e0: 04 00 02 01 lwi $r0,[$r0+#0x804] | |
| a5e4: 03 01 04 01 lhi $r16,[$r2+#0x802] | |
| a5e8: 04 02 03 02 lwi $r0,[$r4+#0xc08] | |
| a5ec: 02 02 02 03 lhi $r0,[$r4+#0x406] | |
| a5f0: 03 03 04 03 lhi $r16,[$r6+#0x806] | |
| a5f4: 04 04 03 04 lwi $r0,[$r8+#0xc10] | |
| a5f8: 02 04 06 05 lhi $r0,[$r8+#0xc0a] | |
| a5fc: ff ff or33 $r7,$r7 | |
| a5fe: 02 05 03 00 lhi $r0,[$r10+#0x600] | |
| a602: ff ff or33 $r7,$r7 | |
| a604: 05 00 03 01 lwi $r16,[$r0+#0xc04] | |
| a608: 04 01 05 01 lwi $r0,[$r2+#0x1404] | |
| a60c: 05 02 04 02 lwi $r16,[$r4+#0x1008] | |
| a610: 03 02 03 03 lhi $r16,[$r4+#0x606] | |
| a614: 04 03 05 03 lwi $r0,[$r6+#0x140c] | |
| a618: 05 04 04 04 lwi $r16,[$r8+#0x1010] | |
| a61c: 03 04 06 05 lhi $r16,[$r8+#0xc0a] | |
| a620: ff ff or33 $r7,$r7 | |
| a622: 02 05 04 00 lhi $r0,[$r10+#0x800] | |
| a626: ff ff or33 $r7,$r7 | |
| a628: 07 00 04 01 *unknown* | |
| a62c: 05 01 06 01 lwi $r16,[$r2+#0x1804] | |
| a630: 06 02 05 02 *unknown* | |
| a634: 04 02 04 03 lwi $r0,[$r4+#0x100c] | |
| a638: 05 03 06 03 lwi $r16,[$r6+#0x180c] | |
| a63c: 06 04 05 04 *unknown* | |
| a640: 04 04 06 05 lwi $r0,[$r8+#0x1814] | |
| a644: ff ff or33 $r7,$r7 | |
| a646: 02 05 05 00 lhi $r0,[$r10+#0xa00] | |
| a64a: ff ff or33 $r7,$r7 | |
| a64c: 07 00 05 01 *unknown* | |
| a650: 06 01 07 01 *unknown* | |
| a654: 07 02 06 02 *unknown* | |
| a658: 05 02 05 03 lwi $r16,[$r4+#0x140c] | |
| a65c: 06 03 07 03 *unknown* | |
| a660: 07 04 06 04 *unknown* | |
| a664: 05 04 02 05 lwi $r16,[$r8+#0x814] | |
| a668: 06 05 0a 05 *unknown* | |
| a66c: 05 00 ff ff lwi $r16,[$r1+#-4] | |
| a670: 08 00 06 01 lbi.bi $r0,[$r0],#0x601 | |
| a674: 07 01 08 01 *unknown* | |
| a678: 08 02 07 02 lbi.bi $r0,[$r4],#0x702 | |
| a67c: 06 02 06 03 *unknown* | |
| a680: 07 03 08 03 *unknown* | |
| a684: 08 04 07 04 lbi.bi $r0,[$r8],#0x704 | |
| a688: 06 04 0a 05 *unknown* | |
| a68c: ff ff or33 $r7,$r7 | |
| a68e: 06 05 07 00 *unknown* | |
| a692: ff ff or33 $r7,$r7 | |
| a694: 09 00 07 01 lbi.bi $r16,[$r0],#0x701 | |
| a698: 08 01 09 01 lbi.bi $r0,[$r2],#0x901 | |
| a69c: 09 02 08 02 lbi.bi $r16,[$r4],#0x802 | |
| a6a0: 07 02 07 03 *unknown* | |
| a6a4: 08 03 09 03 lbi.bi $r0,[$r6],#0x903 | |
| a6a8: 09 04 08 04 lbi.bi $r16,[$r8],#0x804 | |
| a6ac: 07 04 0a 05 *unknown* | |
| a6b0: ff ff or33 $r7,$r7 | |
| a6b2: 06 05 08 00 *unknown* | |
| a6b6: ff ff or33 $r7,$r7 | |
| a6b8: 0a 00 08 01 lhi.bi $r0,[$r0],#0x1002 | |
| a6bc: 09 01 0a 01 lbi.bi $r16,[$r2],#0xa01 | |
| a6c0: 0a 02 09 02 lhi.bi $r0,[$r4],#0x1204 | |
| a6c4: 08 02 08 03 lbi.bi $r0,[$r4],#0x803 | |
| a6c8: 09 03 0a 03 lbi.bi $r16,[$r6],#0xa03 | |
| a6cc: 0a 04 09 04 lhi.bi $r0,[$r8],#0x1208 | |
| a6d0: 08 04 0a 05 lbi.bi $r0,[$r8],#0xa05 | |
| a6d4: ff ff or33 $r7,$r7 | |
| a6d6: 06 05 09 00 *unknown* | |
| a6da: ff ff or33 $r7,$r7 | |
| a6dc: 0b 00 09 01 lhi.bi $r16,[$r0],#0x1202 | |
| a6e0: 0a 01 0b 01 lhi.bi $r0,[$r2],#0x1602 | |
| a6e4: 0b 02 0a 02 lhi.bi $r16,[$r4],#0x1404 | |
| a6e8: 09 02 09 03 lbi.bi $r16,[$r4],#0x903 | |
| a6ec: 0a 03 0b 03 lhi.bi $r0,[$r6],#0x1606 | |
| a6f0: 0b 04 0a 04 lhi.bi $r16,[$r8],#0x1408 | |
| a6f4: 09 04 06 05 lbi.bi $r16,[$r8],#0x605 | |
| a6f8: 0a 05 0b 05 lhi.bi $r0,[$r10],#0x160a | |
| a6fc: 0a 00 ff ff lhi.bi $r0,[$r1],#-2 | |
| a700: 0c 00 0a 01 lwi.bi $r0,[$r0],#0x2804 | |
| a704: 0b 01 0c 01 lhi.bi $r16,[$r2],#0x1802 | |
| a708: 0c 02 0b 02 lwi.bi $r0,[$r4],#0x2c08 | |
| a70c: 0a 02 0a 03 lhi.bi $r0,[$r4],#0x1406 | |
| a710: 0b 03 0d 03 lhi.bi $r16,[$r6],#0x1a06 | |
| a714: 0c 04 0b 04 lwi.bi $r0,[$r8],#0x2c10 | |
| a718: 0a 04 0a 05 lhi.bi $r0,[$r8],#0x140a | |
| a71c: 0b 05 0c 05 lhi.bi $r16,[$r10],#0x180a | |
| a720: 0b 00 ff ff lhi.bi $r16,[$r1],#-2 | |
| a724: 0d 00 0b 01 lwi.bi $r16,[$r0],#0x2c04 | |
| a728: 0c 01 0e 01 lwi.bi $r0,[$r2],#0x3804 | |
| a72c: 0e 02 0c 02 *unknown* | |
| a730: 0b 02 0d 03 lhi.bi $r16,[$r4],#0x1a06 | |
| a734: ff ff or33 $r7,$r7 | |
| a736: 0b 03 0d 04 lhi.bi $r16,[$r6],#0x1a08 | |
| a73a: 0c 04 0b 04 lwi.bi $r0,[$r8],#0x2c10 | |
| a73e: 0b 05 0c 05 lhi.bi $r16,[$r10],#0x180a | |
| a742: 0d 05 0c 00 lwi.bi $r16,[$r10],#0x3000 | |
| a746: ff ff or33 $r7,$r7 | |
| a748: 0e 00 0e 01 *unknown* | |
| a74c: ff ff or33 $r7,$r7 | |
| a74e: 0c 01 0c 02 lwi.bi $r0,[$r2],#0x3008 | |
| a752: ff ff or33 $r7,$r7 | |
| a754: 0c 02 0b 03 lwi.bi $r0,[$r4],#0x2c0c | |
| a758: 0d 03 0e 04 lwi.bi $r16,[$r6],#0x3810 | |
| a75c: 0e 04 0d 04 *unknown* | |
| a760: 0c 04 0c 05 lwi.bi $r0,[$r8],#0x3014 | |
| a764: 0d 05 0e 05 lwi.bi $r16,[$r10],#0x3814 | |
| a768: 0d 00 ff ff lwi.bi $r16,[$r1],#-4 | |
| a76c: 0f 00 0c 01 *unknown* | |
| a770: 0e 01 0e 02 *unknown* | |
| a774: 0e 01 0e 02 *unknown* | |
| a778: 0c 02 12 03 lwi.bi $r0,[$r4],#0x480c | |
| a77c: ff ff or33 $r7,$r7 | |
| a77e: 0c 03 0d 03 lwi.bi $r0,[$r6],#0x340c | |
| a782: 0e 04 0d 04 *unknown* | |
| a786: 0d 05 0e 05 lwi.bi $r16,[$r10],#0x3814 | |
| a78a: 00 01 0e 00 lbi $r0,[$r2+#0xe00] | |
| a78e: ff ff or33 $r7,$r7 | |
| a790: 10 00 10 01 sbi $r0,[$r0+#0x1001] | |
| a794: ff ff or33 $r7,$r7 | |
| a796: 0e 01 0e 02 *unknown* | |
| a79a: ff ff or33 $r7,$r7 | |
| a79c: 10 02 12 03 sbi $r0,[$r4+#0x1203] | |
| a7a0: ff ff or33 $r7,$r7 | |
| a7a2: 0c 03 0d 04 lwi.bi $r0,[$r6],#0x3410 | |
| a7a6: ff ff or33 $r7,$r7 | |
| a7a8: 10 04 10 05 sbi $r0,[$r8+#0x1005] | |
| a7ac: ff ff or33 $r7,$r7 | |
| a7ae: 0e 05 0f 00 *unknown* | |
| a7b2: ff ff or33 $r7,$r7 | |
| a7b4: 11 00 11 01 sbi $r16,[$r0+#0x1101] | |
| a7b8: ff ff or33 $r7,$r7 | |
| a7ba: 0f 01 0f 02 *unknown* | |
| a7be: ff ff or33 $r7,$r7 | |
| a7c0: 11 02 12 03 sbi $r16,[$r4+#0x1203] | |
| a7c4: ff ff or33 $r7,$r7 | |
| a7c6: 0c 03 0d 04 lwi.bi $r0,[$r6],#0x3410 | |
| a7ca: ff ff or33 $r7,$r7 | |
| a7cc: 12 04 11 05 shi $r0,[$r8+#0x220a] | |
| a7d0: ff ff or33 $r7,$r7 | |
| a7d2: 0f 05 10 00 *unknown* | |
| a7d6: ff ff or33 $r7,$r7 | |
| a7d8: 15 01 12 01 swi $r16,[$r2+#0x4804] | |
| a7dc: ff ff or33 $r7,$r7 | |
| a7de: 10 01 10 02 sbi $r0,[$r2+#0x1002] | |
| a7e2: ff ff or33 $r7,$r7 | |
| a7e4: 12 02 12 03 shi $r0,[$r4+#0x2406] | |
| a7e8: ff ff or33 $r7,$r7 | |
| a7ea: 0c 03 10 04 lwi.bi $r0,[$r6],#0x4010 | |
| a7ee: ff ff or33 $r7,$r7 | |
| a7f0: 12 04 12 05 shi $r0,[$r8+#0x240a] | |
| a7f4: ff ff or33 $r7,$r7 | |
| a7f6: 10 05 11 00 sbi $r0,[$r10+#0x1100] | |
| a7fa: ff ff or33 $r7,$r7 | |
| a7fc: 15 01 13 01 swi $r16,[$r2+#0x4c04] | |
| a800: ff ff or33 $r7,$r7 | |
| a802: 11 01 11 02 sbi $r16,[$r2+#0x1102] | |
| a806: ff ff or33 $r7,$r7 | |
| a808: 13 02 13 03 shi $r16,[$r4+#0x2606] | |
| a80c: ff ff or33 $r7,$r7 | |
| a80e: 0d 03 10 04 lwi.bi $r16,[$r6],#0x4010 | |
| a812: ff ff or33 $r7,$r7 | |
| a814: 13 04 14 05 shi $r16,[$r8+#0x280a] | |
| a818: ff ff or33 $r7,$r7 | |
| a81a: 11 05 11 00 sbi $r16,[$r10+#0x1100] | |
| a81e: ff ff or33 $r7,$r7 | |
| a820: 15 01 14 01 swi $r16,[$r2+#0x5004] | |
| a824: ff ff or33 $r7,$r7 | |
| a826: 12 01 12 02 shi $r0,[$r2+#0x2404] | |
| a82a: ff ff or33 $r7,$r7 | |
| a82c: 14 02 14 03 swi $r0,[$r4+#0x500c] | |
| a830: ff ff or33 $r7,$r7 | |
| a832: 12 03 12 04 shi $r0,[$r6+#0x2408] | |
| a836: ff ff or33 $r7,$r7 | |
| a838: 14 04 14 05 swi $r0,[$r8+#0x5014] | |
| a83c: ff ff or33 $r7,$r7 | |
| a83e: 12 05 11 00 shi $r0,[$r10+#0x2200] | |
| a842: ff ff or33 $r7,$r7 | |
| a844: 15 01 15 01 swi $r16,[$r2+#0x5404] | |
| a848: ff ff or33 $r7,$r7 | |
| a84a: 13 01 13 02 shi $r16,[$r2+#0x2604] | |
| a84e: ff ff or33 $r7,$r7 | |
| a850: 15 02 15 02 swi $r16,[$r4+#0x5408] | |
| a854: ff ff or33 $r7,$r7 | |
| a856: 13 03 13 04 shi $r16,[$r6+#0x2608] | |
| a85a: ff ff or33 $r7,$r7 | |
| a85c: 15 04 15 04 swi $r16,[$r8+#0x5410] | |
| a860: ff ff or33 $r7,$r7 | |
| a862: 12 05 11 00 shi $r0,[$r10+#0x2200] | |
| a866: ff ff or33 $r7,$r7 | |
| a868: 15 01 11 00 swi $r16,[$r2+#0x4400] | |
| a86c: ff ff or33 $r7,$r7 | |
| a86e: 14 01 14 02 swi $r0,[$r2+#0x5008] | |
| a872: ff ff or33 $r7,$r7 | |
| a874: 14 03 15 02 swi $r0,[$r6+#0x5408] | |
| a878: ff ff or33 $r7,$r7 | |
| a87a: 14 03 14 04 swi $r0,[$r6+#0x5010] | |
| a87e: ff ff or33 $r7,$r7 | |
| a880: 14 05 15 04 swi $r0,[$r10+#0x5410] | |
| a884: ff ff or33 $r7,$r7 | |
| a886: 14 05 fe 00 swi $r0,[$r11+#-2048] | |
| a88a: 00 00 e0 1e lbi $r0,[$r1+#-8162] | |
| a88e: 00 00 c0 3e lbi $r0,[$r1+#-16322] | |
| a892: 00 00 a0 5e lbi $r0,[$r1+#0x205e] | |
| a896: 00 00 80 7e lbi $r0,[$r1+#0x7e] | |
| a89a: 00 00 5e a0 lbi $r0,[$r0+#-8544] | |
| a89e: 00 00 3e c0 lbi $r0,[$r0+#0x3ec0] | |
| a8a2: 00 00 1e e0 lbi $r0,[$r0+#0x1ee0] | |
| a8a6: 00 00 00 fe lbi $r0,[$r0+#0xfe] | |
| a8aa: 00 00 00 e0 lbi $r0,[$r0+#0xe0] | |
| a8ae: 1e 00 00 c0 *unknown* | |
| a8b2: 3e 00 00 a0 sbi.gp $r0,[+#0xa0] | |
| a8b6: 5e 00 00 80 sltsi $r0,$r0,#0x80 | |
| a8ba: 7e 00 00 5e *unknown* | |
| a8be: a0 00 lwi333 $r0,[$r0+#0x0] | |
| a8c0: 00 3e c0 00 lbi $r3,[$gp+#-16384] | |
| a8c4: 00 1e e0 00 lbi $r1,[$gp+#-8192] | |
| a8c8: 00 00 fe 00 lbi $r0,[$r1+#-512] | |
| a8cc: 1e 00 e0 00 *unknown* | |
| a8d0: 3e 00 c0 00 sbi.gp $r0,[+#0xc000] | |
| a8d4: 5e 00 a0 00 sltsi $r0,$r1,#0x2000 | |
| a8d8: 7e 00 80 00 *unknown* | |
| a8dc: a0 00 lwi333 $r0,[$r0+#0x0] | |
| a8de: 5e 00 c0 00 sltsi $r0,$r1,#-16384 | |
| a8e2: 3e 00 e0 00 sbi.gp $r0,[+#0xe000] | |
| a8e6: 1e 00 ff 00 *unknown* | |
| a8ea: 00 00 00 ff lbi $r0,[$r0+#0xff] | |
| a8ee: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| a8f2: ff 00 *unknown* | |
| a8f4: 80 80 mov55 $r4,$r0 | |
| a8f6: 00 00 80 00 lbi $r0,[$r1+#0x0] | |
| a8fa: 80 00 mov55 $r0,$r0 | |
| a8fc: 00 80 80 00 lbi $r8,[$r1+#0x0] | |
| a900: 55 55 55 00 andi $r21,$r10,#0x5500 | |
| a904: 03 00 05 01 lhi $r16,[$r0+#0xa02] | |
| a908: 02 01 02 02 lhi $r0,[$r2+#0x404] | |
| a90c: 02 03 02 04 lhi $r0,[$r6+#0x408] | |
| a910: ff ff or33 $r7,$r7 | |
| a912: ff 64 mul33 $r5,$r4 | |
| a914: ff 00 *unknown* | |
| a916: 00 64 ff ff lbi $r6,[$r9+#-1] | |
| a91a: ff 64 mul33 $r5,$r4 | |
| a91c: ff ff or33 $r7,$r7 | |
| a91e: ff 64 mul33 $r5,$r4 | |
| a920: ff ff or33 $r7,$r7 | |
| a922: ff 64 mul33 $r5,$r4 | |
| a924: ff ff or33 $r7,$r7 | |
| a926: ff 64 mul33 $r5,$r4 | |
| a928: 12 01 10 01 shi $r0,[$r2+#0x2002] | |
| a92c: 00 00 00 40 lbi $r0,[$r0+#0x40] | |
| a930: a7 1e lbi333 $r4,[$r3+#0x6] | |
| a932: 07 09 00 03 *unknown* | |
| a936: 01 02 03 01 lbi $r16,[$r4+#0x301] | |
| a93a: 00 00 09 02 lbi $r0,[$r0+#0x902] | |
| a93e: 5b 00 03 01 beqc $r16,#0x3,0xa940 | |
| a942: 00 a0 32 09 lbi $r10,[$r0+#0x3209] | |
| a946: 04 00 00 01 lwi $r0,[$r0+#0x4] | |
| a94a: 03 01 01 00 lhi $r16,[$r2+#0x200] | |
| a94e: 09 21 11 01 lbi.bi $r18,[$r2],#0x1101 | |
| a952: 00 01 22 40 lbi $r0,[$r2+#0x2240] | |
| a956: 00 07 05 81 lbi $r0,[$r14+#0x581] | |
| a95a: 03 08 00 01 lhi $r16,[$r16+#0x2] | |
| a95e: 09 04 01 00 lbi.bi $r16,[$r8],#0x100 | |
| a962: 02 03 00 00 lhi $r0,[$r6+#0x0] | |
| a966: 00 09 21 11 lbi $r0,[$r18+#0x2111] | |
| a96a: 01 00 01 22 lbi $r16,[$r0+#0x122] | |
| a96e: 22 00 07 05 lhsi $r0,[$r0+#0xe0a] | |
| a972: 83 03 mov55 $r24,$r3 | |
| a974: 40 00 01 07 *unknown* | |
| a978: 05 04 03 40 lwi $r16,[$r8+#0xd00] | |
| a97c: 00 01 09 04 lbi $r0,[$r2+#0x904] | |
| a980: 02 00 01 03 lhi $r0,[$r0+#0x206] | |
| a984: 00 00 00 09 lbi $r0,[$r0+#0x9] | |
| a988: 21 11 01 00 lbsi $r17,[$r2+#0x100] | |
| a98c: 01 22 cb 00 lbi $r18,[$r5+#-13568] | |
| a990: 07 05 82 03 *unknown* | |
| a994: 40 00 01 00 add_slli $r0,$r0,$r0,#0x8 | |
| a998: 04 03 09 04 lwi $r0,[$r6+#0x2410] | |
| a99c: 10 03 53 00 sbi $r0,[$r6+#-11520] | |
| a9a0: 45 00 4d 00 movi $r16,#0x4d00 | |
| a9a4: 49 00 54 00 jal 0x151a4 | |
| a9a8: 45 00 4b 00 movi $r16,#0x4b00 | |
| a9ac: 30 03 55 00 cplwi.bi cp2,$cpr0,[$r6],#0x1400 | |
| a9b0: 53 00 42 00 subri $r16,$r0,#-15872 | |
| a9b4: 2d 00 48 00 *unknown* | |
| a9b8: 49 00 44 00 jal 0x131b8 | |
| a9bc: 20 00 47 00 lbsi $r0,[$r0+#-14592] | |
| a9c0: 61 00 6d 00 amabbsl2.s $d0,$r0,$p1,[$i0],[$i4],$m0,$m4 | |
| a9c4: 69 00 6e 00 *unknown* | |
| a9c8: 67 00 20 00 bitci $r16,$r0,#0x2000 | |
| a9cc: 4b 00 65 00 *unknown* | |
| a9d0: 79 00 62 00 *unknown* | |
| a9d4: 6f 00 61 00 *unknown* | |
| a9d8: 72 00 64 00 *unknown* | |
| a9dc: 1a 03 53 00 shi.bi $r0,[$r6],#-23040 | |
| a9e0: 4e 00 30 00 ifcall 0x109e0 | |
| a9e4: 30 00 30 00 cplwi.bi cp1,$cpr0,[$r0],#0x0 | |
| a9e8: 30 00 30 00 cplwi.bi cp1,$cpr0,[$r0],#0x0 | |
| a9ec: 30 00 30 00 cplwi.bi cp1,$cpr0,[$r0],#0x0 | |
| a9f0: 30 00 30 00 cplwi.bi cp1,$cpr0,[$r0],#0x0 | |
| a9f4: 31 00 00 00 flsi $fs16,[$r0+#0x0] | |
| a9f8: 05 01 09 06 lwi $r16,[$r2+#0x2418] | |
| a9fc: a1 01 lwi333 $r4,[$r0+#0x4] | |
| a9fe: 05 07 19 e0 lwi $r16,[$r14+#0x6780] | |
| aa02: 29 e7 15 00 lbsi.bi $lp,[$r14],#0x1500 | |
| aa06: 25 01 75 01 *unknown* | |
| aa0a: 95 08 slli333 $r4,$r1,#0x0 | |
| aa0c: 81 02 mov55 $r8,$r2 | |
| aa0e: 95 01 slli333 $r4,$r0,#0x1 | |
| aa10: 75 08 81 03 *unknown* | |
| aa14: 95 03 slli333 $r4,$r0,#0x3 | |
| aa16: 75 01 05 08 *unknown* | |
| aa1a: 19 01 29 03 sbi.bi $r16,[$r2],#0x2903 | |
| aa1e: 91 02 srai45 $r8,#0x2 | |
| aa20: 95 01 slli333 $r4,$r0,#0x1 | |
| aa22: 75 05 91 03 *unknown* | |
| aa26: 95 06 slli333 $r4,$r0,#0x6 | |
| aa28: 75 08 15 00 *unknown* | |
| aa2c: 26 a4 00 05 dprefi.w ???,[$r8+#0x14] | |
| aa30: 07 19 00 29 *unknown* | |
| aa34: a4 81 lhi333 $r2,[$r0+#0x2] | |
| aa36: 00 c0 06 00 lbi $r12,[$r0+#0x600] | |
| aa3a: ff 09 *unknown* | |
| aa3c: 50 a1 01 09 addi $r10,$r2,#0x109 | |
| aa40: 02 15 00 26 lhi $r1,[$r10+#0x4c] | |
| aa44: ff 00 *unknown* | |
| aa46: 75 08 95 40 *unknown* | |
| aa4a: 81 02 mov55 $r8,$r2 | |
| aa4c: 09 03 15 00 lbi.bi $r16,[$r6],#0x1500 | |
| aa50: 26 ff 00 75 dprefi.w ???,[$lp+#0x1d4] | |
| aa54: 08 95 40 91 lbi.bi $r9,[$r10],#-16239 | |
| aa58: 02 c0 00 00 lhi $r12,[$r0+#0x0] | |
| aa5c: 05 01 09 80 lwi $r16,[$r2+#0x2600] | |
| aa60: a1 01 lwi333 $r4,[$r0+#0x4] | |
| aa62: 85 01 movi55 $r8,#0x1 | |
| aa64: 19 81 29 83 sbi.bi $r24,[$r2],#0x2983 | |
| aa68: 15 00 25 01 swi $r16,[$r0+#0x9404] | |
| aa6c: 95 03 slli333 $r4,$r0,#0x3 | |
| aa6e: 75 01 81 02 *unknown* | |
| aa72: 95 01 slli333 $r4,$r0,#0x1 | |
| aa74: 75 05 81 01 *unknown* | |
| aa78: c0 05 beqz38 $r0,0xaa82 | |
| aa7a: 0c 09 01 a1 lwi.bi $r0,[$r18],#0x684 | |
| aa7e: 01 85 02 15 lbi $r24,[$r10+#0x215] | |
| aa82: 00 25 01 95 lbi $r2,[$r10+#0x195] | |
| aa86: 12 75 01 0a shi $r7,[$r10+#0x214] | |
| aa8a: 83 01 mov55 $r24,$r1 | |
| aa8c: 0a 8a 01 0a lhi.bi $r8,[$r20],#0x214 | |
| aa90: 92 01 srli45 $r0,#0x1 | |
| aa92: 0a 94 01 09 lhi.bi $r9,[$r8],#0x212 | |
| aa96: cd 09 bnez38 $r5,0xaaa8 | |
| aa98: b7 09 swi450 $r8,[$r9] | |
| aa9a: b6 09 swi450 $r0,[$r9] | |
| aa9c: b5 09 lwi450 $r8,[$r9] | |
| aa9e: e2 09 slt45 $r0,$r9 | |
| aaa0: ea 09 break16 #9 | |
| aaa2: e9 0a bnezs8 0xaab6 | |
| aaa4: 21 02 0a 23 lbsi $r16,[$r4+#0xa23] | |
| aaa8: 02 0a 24 02 lhi $r0,[$r20+#0x4804] | |
| aaac: 0a 25 02 0a lhi.bi $r2,[$r10],#0x414 | |
| aab0: 26 02 0a 27 dprefi.w srd,[$r4+#0x289c] | |
| aab4: 02 0a 2a 02 lhi $r0,[$r20+#0x5404] | |
| aab8: 81 02 mov55 $r8,$r2 | |
| aaba: 95 01 slli333 $r4,$r0,#0x1 | |
| aabc: 75 0e 81 01 *unknown* | |
| aac0: c0 05 beqz38 $r0,0xaaca | |
| aac2: 01 09 06 a1 lbi $r16,[$r18+#0x6a1] | |
| aac6: 01 85 04 05 lbi $r24,[$r10+#0x405] | |
| aaca: 07 95 01 75 *unknown* | |
| aace: 08 81 03 95 lbi.bi $r8,[$r2],#0x395 | |
| aad2: e8 75 beqzs8 0xabbc | |
| aad4: 01 15 00 25 lbi $r17,[$r10+#0x25] | |
| aad8: 01 05 07 19 lbi $r16,[$r10+#0x719] | |
| aadc: 00 29 e7 81 lbi $r2,[$r19+#-6271] | |
| aae0: 00 c0 05 01 lbi $r12,[$r0+#0x501] | |
| aae4: 09 02 a1 01 lbi.bi $r16,[$r5],#0x2101 | |
| aae8: 85 05 movi55 $r8,#0x5 | |
| aaea: 09 01 a1 00 lbi.bi $r16,[$r3],#0x2100 | |
| aaee: 05 09 19 01 lwi $r16,[$r18+#0x6404] | |
| aaf2: 29 08 15 00 lbsi.bi $r16,[$r16],#0x1500 | |
| aaf6: 25 01 95 08 *unknown* | |
| aafa: 75 01 81 02 *unknown* | |
| aafe: 05 01 09 30 lwi $r16,[$r2+#0x24c0] | |
| ab02: 09 31 16 01 lbi.bi $r19,[$r2],#0x1601 | |
| ab06: f8 26 ifcall9 0xab52 | |
| ab08: ff 07 or33 $r4,$r0 | |
| ab0a: 95 02 slli333 $r4,$r0,#0x2 | |
| ab0c: 75 0c 81 06 *unknown* | |
| ab10: 09 38 15 81 lbi.bi $r19,[$r16],#0x1581 | |
| ab14: 25 7f 95 01 *unknown* | |
| ab18: 75 08 81 06 *unknown* | |
| ab1c: 05 0c 0a 38 lwi $r16,[$r24+#0x28e0] | |
| ab20: 02 95 01 81 lhi $r9,[$r10+#0x302] | |
| ab24: 06 c0 c0 00 *unknown* | |
| ab28: 0e 00 08 00 *unknown* | |
| ab2c: 04 00 02 00 lwi $r0,[$r0+#0x800] | |
| ab30: 01 00 00 00 lbi $r16,[$r0+#0x0] | |
| ab34: 64 00 32 00 *unknown* | |
| ab38: 14 00 0f 00 swi $r0,[$r0+#0x3c00] | |
| ab3c: 0a 00 00 00 lhi.bi $r0,[$r0],#0x0 | |
| ab40: 64 00 50 00 *unknown* | |
| ab44: 3c 00 28 00 lhi.gp $r0,[+#0x5000] | |
| ab48: 14 00 00 00 swi $r0,[$r0+#0x0] | |
| ab4c: 14 00 0f 00 swi $r0,[$r0+#0x3c00] | |
| ab50: 05 00 03 00 lwi $r16,[$r0+#0xc00] | |
| ab54: 01 00 00 00 lbi $r16,[$r0+#0x0] | |
| ab58: c8 00 bnez38 $r0,0xab58 | |
| ab5a: 96 00 zeb33 $r0,$r0 | |
| ab5c: 64 00 32 00 *unknown* | |
| ab60: 1e 00 00 00 *unknown* | |
| ab64: 68 12 10 00 *unknown* | |
| ab68: 00 69 1f 00 lbi $r6,[$r18+#0x1f00] | |
| ab6c: 01 00 00 00 lbi $r16,[$r0+#0x0] | |
| ab70: 00 69 1f 00 lbi $r6,[$r18+#0x1f00] | |
| ab74: 02 00 00 00 lhi $r0,[$r0+#0x0] | |
| ab78: 00 69 1f 00 lbi $r6,[$r18+#0x1f00] | |
| ab7c: 04 00 00 00 lwi $r0,[$r0+#0x0] | |
| ab80: 00 69 1f 00 lbi $r6,[$r18+#0x1f00] | |
| ab84: 08 00 00 00 lbi.bi $r0,[$r0],#0x0 | |
| ab88: 00 69 1f 00 lbi $r6,[$r18+#0x1f00] | |
| ab8c: 10 00 00 00 sbi $r0,[$r0+#0x0] | |
| ab90: 00 69 1f 00 lbi $r6,[$r18+#0x1f00] | |
| ab94: 20 00 00 00 lbsi $r0,[$r0+#0x0] | |
| ab98: 00 69 1f 00 lbi $r6,[$r18+#0x1f00] | |
| ab9c: 40 00 00 00 add $r0,$r0,$r0 | |
| aba0: 00 69 1f 00 lbi $r6,[$r18+#0x1f00] | |
| aba4: 80 00 mov55 $r0,$r0 | |
| aba6: 00 00 00 69 lbi $r0,[$r0+#0x69] | |
| abaa: 1f 00 00 01 *unknown* | |
| abae: 00 00 00 69 lbi $r0,[$r0+#0x69] | |
| abb2: 1f 00 00 02 *unknown* | |
| abb6: 00 00 00 68 lbi $r0,[$r0+#0x68] | |
| abba: 1f 00 00 01 *unknown* | |
| abbe: 00 00 00 69 lbi $r0,[$r0+#0x69] | |
| abc2: 1f 00 00 08 *unknown* | |
| abc6: 00 00 00 69 lbi $r0,[$r0+#0x69] | |
| abca: 1f 00 00 10 *unknown* | |
| abce: 00 00 00 68 lbi $r0,[$r0+#0x68] | |
| abd2: 1f 00 00 02 *unknown* | |
| abd6: 00 00 00 68 lbi $r0,[$r0+#0x68] | |
| abda: 1f 00 00 04 *unknown* | |
| abde: 00 00 00 68 lbi $r0,[$r0+#0x68] | |
| abe2: 1f 00 01 00 *unknown* | |
| abe6: 00 00 00 68 lbi $r0,[$r0+#0x68] | |
| abea: 1f 00 02 00 *unknown* | |
| abee: 00 00 00 68 lbi $r0,[$r0+#0x68] | |
| abf2: 1f 00 04 00 *unknown* | |
| abf6: 00 00 00 68 lbi $r0,[$r0+#0x68] | |
| abfa: 1f 00 08 00 *unknown* | |
| abfe: 00 00 00 68 lbi $r0,[$r0+#0x68] | |
| ac02: 1f 00 10 00 *unknown* | |
| ac06: 00 00 00 68 lbi $r0,[$r0+#0x68] | |
| ac0a: 1f 00 20 00 *unknown* | |
| ac0e: 00 00 00 68 lbi $r0,[$r0+#0x68] | |
| ac12: 1f 00 40 00 *unknown* | |
| ac16: 00 00 00 68 lbi $r0,[$r0+#0x68] | |
| ac1a: 1f 00 80 00 *unknown* | |
| ac1e: 00 00 c7 00 lbi $r0,[$r1+#-14592] | |
| ac22: 00 00 ff 00 lbi $r0,[$r1+#-256] | |
| ac26: 00 00 02 00 lbi $r0,[$r0+#0x200] | |
| ac2a: 00 00 03 00 lbi $r0,[$r0+#0x300] | |
| ac2e: 00 00 76 00 lbi $r0,[$r0+#-2560] | |
| ac32: 00 00 61 00 lbi $r0,[$r0+#-7936] | |
| ac36: 00 00 57 00 lbi $r0,[$r0+#-10496] | |
| ac3a: 00 00 57 00 lbi $r0,[$r0+#-10496] | |
| ac3e: 00 00 ff 00 lbi $r0,[$r1+#-256] | |
| ac42: 00 00 ff 00 lbi $r0,[$r1+#-256] | |
| ac46: 00 00 05 00 lbi $r0,[$r0+#0x500] | |
| ac4a: 00 00 43 00 lbi $r0,[$r0+#-15616] | |
| ac4e: 00 00 12 00 lbi $r0,[$r0+#0x1200] | |
| ac52: 00 00 32 00 lbi $r0,[$r0+#0x3200] | |
| ac56: 00 00 44 00 lbi $r0,[$r0+#-15360] | |
| ac5a: 00 00 ff 00 lbi $r0,[$r1+#-256] | |
| ac5e: 00 00 c0 00 lbi $r0,[$r1+#-16384] | |
| ac62: 00 00 c3 00 lbi $r0,[$r1+#-15616] | |
| ac66: 00 00 04 00 lbi $r0,[$r0+#0x400] | |
| ac6a: 00 00 41 00 lbi $r0,[$r0+#-16128] | |
| ac6e: 00 00 34 00 lbi $r0,[$r0+#0x3400] | |
| ac72: 00 00 40 00 lbi $r0,[$r0+#-16384] | |
| ac76: 00 00 45 00 lbi $r0,[$r0+#-15104] | |
| ac7a: 00 00 77 00 lbi $r0,[$r0+#-2304] | |
| ac7e: 00 00 d0 00 lbi $r0,[$r1+#-12288] | |
| ac82: 00 00 b5 00 lbi $r0,[$r1+#0x3500] | |
| ac86: 00 00 62 00 lbi $r0,[$r0+#-7680] | |
| ac8a: 00 00 14 00 lbi $r0,[$r0+#0x1400] | |
| ac8e: 00 00 15 00 lbi $r0,[$r0+#0x1500] | |
| ac92: 00 00 16 00 lbi $r0,[$r0+#0x1600] | |
| ac96: 00 00 46 00 lbi $r0,[$r0+#-14848] | |
| ac9a: 00 00 80 00 lbi $r0,[$r1+#0x0] | |
| ac9e: 00 00 a1 00 lbi $r0,[$r1+#0x2100] | |
| aca2: 00 00 96 00 lbi $r0,[$r1+#0x1600] | |
| aca6: 00 00 93 00 lbi $r0,[$r1+#0x1300] | |
| acaa: 00 00 37 00 lbi $r0,[$r0+#0x3700] | |
| acae: 00 00 17 00 lbi $r0,[$r0+#0x1700] | |
| acb2: 00 00 33 00 lbi $r0,[$r0+#0x3300] | |
| acb6: 00 00 47 00 lbi $r0,[$r0+#-14592] | |
| acba: 00 00 81 00 lbi $r0,[$r1+#0x100] | |
| acbe: 00 00 a2 00 lbi $r0,[$r1+#0x2200] | |
| acc2: 00 00 97 00 lbi $r0,[$r1+#0x1700] | |
| acc6: 00 00 94 00 lbi $r0,[$r1+#0x1400] | |
| acca: 00 00 13 00 lbi $r0,[$r0+#0x1300] | |
| acce: 00 00 20 00 lbi $r0,[$r0+#0x2000] | |
| acd2: 00 00 35 00 lbi $r0,[$r0+#0x3500] | |
| acd6: 00 00 50 00 lbi $r0,[$r0+#-12288] | |
| acda: 00 00 82 00 lbi $r0,[$r1+#0x200] | |
| acde: 00 00 a3 00 lbi $r0,[$r1+#0x2300] | |
| ace2: 00 00 a0 00 lbi $r0,[$r1+#0x2000] | |
| ace6: 00 00 95 00 lbi $r0,[$r1+#0x1500] | |
| acea: 00 00 27 00 lbi $r0,[$r0+#0x2700] | |
| acee: 00 00 21 00 lbi $r0,[$r0+#0x2100] | |
| acf2: 00 00 42 00 lbi $r0,[$r0+#-15872] | |
| acf6: 00 00 51 00 lbi $r0,[$r0+#-12032] | |
| acfa: 00 00 83 00 lbi $r0,[$r1+#0x300] | |
| acfe: 00 00 d4 00 lbi $r0,[$r1+#-11264] | |
| ad02: 00 00 d3 00 lbi $r0,[$r1+#-11520] | |
| ad06: 00 00 d1 00 lbi $r0,[$r1+#-12032] | |
| ad0a: 00 00 26 00 lbi $r0,[$r0+#0x2600] | |
| ad0e: 00 00 23 00 lbi $r0,[$r0+#0x2300] | |
| ad12: 00 00 36 00 lbi $r0,[$r0+#0x3600] | |
| ad16: 00 00 52 00 lbi $r0,[$r0+#-11776] | |
| ad1a: 00 00 84 00 lbi $r0,[$r1+#0x400] | |
| ad1e: 00 00 c4 00 lbi $r0,[$r1+#-15360] | |
| ad22: 00 00 b0 00 lbi $r0,[$r1+#0x3000] | |
| ad26: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| ad2a: 00 00 73 00 lbi $r0,[$r0+#-3328] | |
| ad2e: 00 00 24 00 lbi $r0,[$r0+#0x2400] | |
| ad32: 00 00 22 00 lbi $r0,[$r0+#0x2200] | |
| ad36: 00 00 53 00 lbi $r0,[$r0+#-11520] | |
| ad3a: 00 00 85 00 lbi $r0,[$r1+#0x500] | |
| ad3e: 00 00 c5 00 lbi $r0,[$r1+#-15104] | |
| ad42: 00 00 b1 00 lbi $r0,[$r1+#0x3100] | |
| ad46: 00 00 06 00 lbi $r0,[$r0+#0x600] | |
| ad4a: 00 00 74 00 lbi $r0,[$r0+#-3072] | |
| ad4e: 00 00 25 00 lbi $r0,[$r0+#0x2500] | |
| ad52: 00 00 30 00 lbi $r0,[$r0+#0x3000] | |
| ad56: 00 00 54 00 lbi $r0,[$r0+#-11264] | |
| ad5a: 00 00 86 00 lbi $r0,[$r1+#0x600] | |
| ad5e: 00 00 c6 00 lbi $r0,[$r1+#-14848] | |
| ad62: 00 00 b2 00 lbi $r0,[$r1+#0x3200] | |
| ad66: 00 00 a5 00 lbi $r0,[$r1+#0x2500] | |
| ad6a: 00 00 75 00 lbi $r0,[$r0+#-2816] | |
| ad6e: 00 00 70 00 lbi $r0,[$r0+#-4096] | |
| ad72: 00 00 31 00 lbi $r0,[$r0+#0x3100] | |
| ad76: 00 00 55 00 lbi $r0,[$r0+#-11008] | |
| ad7a: 00 00 87 00 lbi $r0,[$r1+#0x700] | |
| ad7e: 00 00 b4 00 lbi $r0,[$r1+#0x3400] | |
| ad82: 00 00 b3 00 lbi $r0,[$r1+#0x3300] | |
| ad86: 00 00 a6 00 lbi $r0,[$r1+#0x2600] | |
| ad8a: 00 00 07 00 lbi $r0,[$r0+#0x700] | |
| ad8e: 00 00 71 00 lbi $r0,[$r0+#-3840] | |
| ad92: 00 00 65 00 lbi $r0,[$r0+#-6912] | |
| ad96: 00 00 63 00 lbi $r0,[$r0+#-7424] | |
| ad9a: 00 00 90 00 lbi $r0,[$r1+#0x1000] | |
| ad9e: 00 00 b6 00 lbi $r0,[$r1+#0x3600] | |
| ada2: 00 00 c1 00 lbi $r0,[$r1+#-16128] | |
| ada6: 00 00 a4 00 lbi $r0,[$r1+#0x2400] | |
| adaa: 00 00 a7 00 lbi $r0,[$r1+#0x2700] | |
| adae: 00 00 56 00 lbi $r0,[$r0+#-10752] | |
| adb2: 00 00 66 00 lbi $r0,[$r0+#-6656] | |
| adb6: 00 00 64 00 lbi $r0,[$r0+#-7168] | |
| adba: 00 00 91 00 lbi $r0,[$r1+#0x1100] | |
| adbe: 00 00 b7 00 lbi $r0,[$r1+#0x3700] | |
| adc2: 00 00 c2 00 lbi $r0,[$r1+#-15872] | |
| adc6: 00 00 a1 00 lbi $r0,[$r1+#0x2100] | |
| adca: 00 00 a4 00 lbi $r0,[$r1+#0x2400] | |
| adce: 00 00 d2 00 lbi $r0,[$r1+#-11776] | |
| add2: 00 00 67 00 lbi $r0,[$r0+#-6400] | |
| add6: 00 00 60 00 lbi $r0,[$r0+#-8192] | |
| adda: 00 00 92 00 lbi $r0,[$r1+#0x1200] | |
| adde: 00 00 01 00 lbi $r0,[$r0+#0x100] | |
| ade2: 02 0a 00 65 lhi $r0,[$r20+#0xca] | |
| ade6: 00 02 01 00 lbi $r0,[$r4+#0x100] | |
| adea: 00 02 02 00 lbi $r0,[$r4+#0x200] | |
| adee: 00 02 04 00 lbi $r0,[$r4+#0x400] | |
| adf2: 00 02 08 00 lbi $r0,[$r4+#0x800] | |
| adf6: 00 02 10 00 lbi $r0,[$r4+#0x1000] | |
| adfa: 00 02 20 00 lbi $r0,[$r4+#0x2000] | |
| adfe: 00 02 40 00 lbi $r0,[$r4+#-16384] | |
| ae02: 00 02 80 00 lbi $r0,[$r5+#0x0] | |
| ae06: 00 02 00 04 lbi $r0,[$r4+#0x4] | |
| ae0a: 00 02 00 05 lbi $r0,[$r4+#0x5] | |
| ae0e: 00 02 00 06 lbi $r0,[$r4+#0x6] | |
| ae12: 00 02 00 07 lbi $r0,[$r4+#0x7] | |
| ae16: 00 02 00 08 lbi $r0,[$r4+#0x8] | |
| ae1a: 00 02 00 09 lbi $r0,[$r4+#0x9] | |
| ae1e: 00 02 00 0a lbi $r0,[$r4+#0xa] | |
| ae22: 00 02 00 0b lbi $r0,[$r4+#0xb] | |
| ae26: 00 02 00 0c lbi $r0,[$r4+#0xc] | |
| ae2a: 00 02 00 0d lbi $r0,[$r4+#0xd] | |
| ae2e: 00 02 00 0e lbi $r0,[$r4+#0xe] | |
| ae32: 00 02 00 0f lbi $r0,[$r4+#0xf] | |
| ae36: 00 02 00 10 lbi $r0,[$r4+#0x10] | |
| ae3a: 00 02 00 11 lbi $r0,[$r4+#0x11] | |
| ae3e: 00 02 00 12 lbi $r0,[$r4+#0x12] | |
| ae42: 00 02 00 13 lbi $r0,[$r4+#0x13] | |
| ae46: 00 02 00 14 lbi $r0,[$r4+#0x14] | |
| ae4a: 00 02 00 15 lbi $r0,[$r4+#0x15] | |
| ae4e: 00 02 00 16 lbi $r0,[$r4+#0x16] | |
| ae52: 00 02 00 17 lbi $r0,[$r4+#0x17] | |
| ae56: 00 02 00 18 lbi $r0,[$r4+#0x18] | |
| ae5a: 00 02 00 19 lbi $r0,[$r4+#0x19] | |
| ae5e: 00 02 00 1a lbi $r0,[$r4+#0x1a] | |
| ae62: 00 02 00 1b lbi $r0,[$r4+#0x1b] | |
| ae66: 00 02 00 1c lbi $r0,[$r4+#0x1c] | |
| ae6a: 00 02 00 1d lbi $r0,[$r4+#0x1d] | |
| ae6e: 00 02 00 1e lbi $r0,[$r4+#0x1e] | |
| ae72: 00 02 00 1f lbi $r0,[$r4+#0x1f] | |
| ae76: 00 02 00 20 lbi $r0,[$r4+#0x20] | |
| ae7a: 00 02 00 21 lbi $r0,[$r4+#0x21] | |
| ae7e: 00 02 00 22 lbi $r0,[$r4+#0x22] | |
| ae82: 00 02 00 23 lbi $r0,[$r4+#0x23] | |
| ae86: 00 02 00 24 lbi $r0,[$r4+#0x24] | |
| ae8a: 00 02 00 25 lbi $r0,[$r4+#0x25] | |
| ae8e: 00 02 00 26 lbi $r0,[$r4+#0x26] | |
| ae92: 00 02 00 27 lbi $r0,[$r4+#0x27] | |
| ae96: 00 02 00 28 lbi $r0,[$r4+#0x28] | |
| ae9a: 00 02 00 29 lbi $r0,[$r4+#0x29] | |
| ae9e: 00 02 00 2a lbi $r0,[$r4+#0x2a] | |
| aea2: 00 02 00 2b lbi $r0,[$r4+#0x2b] | |
| aea6: 00 02 00 2c lbi $r0,[$r4+#0x2c] | |
| aeaa: 00 02 00 2d lbi $r0,[$r4+#0x2d] | |
| aeae: 00 02 00 2e lbi $r0,[$r4+#0x2e] | |
| aeb2: 00 02 00 2f lbi $r0,[$r4+#0x2f] | |
| aeb6: 00 02 00 30 lbi $r0,[$r4+#0x30] | |
| aeba: 00 02 00 31 lbi $r0,[$r4+#0x31] | |
| aebe: 00 02 00 33 lbi $r0,[$r4+#0x33] | |
| aec2: 00 02 00 34 lbi $r0,[$r4+#0x34] | |
| aec6: 00 02 00 35 lbi $r0,[$r4+#0x35] | |
| aeca: 00 02 00 36 lbi $r0,[$r4+#0x36] | |
| aece: 00 02 00 37 lbi $r0,[$r4+#0x37] | |
| aed2: 00 02 00 38 lbi $r0,[$r4+#0x38] | |
| aed6: 00 02 00 39 lbi $r0,[$r4+#0x39] | |
| aeda: 00 02 00 3a lbi $r0,[$r4+#0x3a] | |
| aede: 00 02 00 3b lbi $r0,[$r4+#0x3b] | |
| aee2: 00 02 00 3c lbi $r0,[$r4+#0x3c] | |
| aee6: 00 02 00 3d lbi $r0,[$r4+#0x3d] | |
| aeea: 00 02 00 3e lbi $r0,[$r4+#0x3e] | |
| aeee: 00 02 00 3f lbi $r0,[$r4+#0x3f] | |
| aef2: 00 02 00 40 lbi $r0,[$r4+#0x40] | |
| aef6: 00 02 00 41 lbi $r0,[$r4+#0x41] | |
| aefa: 00 02 00 42 lbi $r0,[$r4+#0x42] | |
| aefe: 00 02 00 43 lbi $r0,[$r4+#0x43] | |
| af02: 00 02 00 44 lbi $r0,[$r4+#0x44] | |
| af06: 00 02 00 45 lbi $r0,[$r4+#0x45] | |
| af0a: 00 02 00 46 lbi $r0,[$r4+#0x46] | |
| af0e: 00 02 00 47 lbi $r0,[$r4+#0x47] | |
| af12: 00 02 00 48 lbi $r0,[$r4+#0x48] | |
| af16: 00 02 00 49 lbi $r0,[$r4+#0x49] | |
| af1a: 00 02 00 4a lbi $r0,[$r4+#0x4a] | |
| af1e: 00 02 00 4b lbi $r0,[$r4+#0x4b] | |
| af22: 00 02 00 4c lbi $r0,[$r4+#0x4c] | |
| af26: 00 02 00 4d lbi $r0,[$r4+#0x4d] | |
| af2a: 00 02 00 4e lbi $r0,[$r4+#0x4e] | |
| af2e: 00 02 00 4f lbi $r0,[$r4+#0x4f] | |
| af32: 00 02 00 50 lbi $r0,[$r4+#0x50] | |
| af36: 00 02 00 51 lbi $r0,[$r4+#0x51] | |
| af3a: 00 02 00 52 lbi $r0,[$r4+#0x52] | |
| af3e: 00 02 00 53 lbi $r0,[$r4+#0x53] | |
| af42: 00 02 00 54 lbi $r0,[$r4+#0x54] | |
| af46: 00 02 00 55 lbi $r0,[$r4+#0x55] | |
| af4a: 00 02 00 56 lbi $r0,[$r4+#0x56] | |
| af4e: 00 02 00 57 lbi $r0,[$r4+#0x57] | |
| af52: 00 02 00 58 lbi $r0,[$r4+#0x58] | |
| af56: 00 02 00 59 lbi $r0,[$r4+#0x59] | |
| af5a: 00 02 00 5a lbi $r0,[$r4+#0x5a] | |
| af5e: 00 02 00 5b lbi $r0,[$r4+#0x5b] | |
| af62: 00 02 00 5c lbi $r0,[$r4+#0x5c] | |
| af66: 00 02 00 5d lbi $r0,[$r4+#0x5d] | |
| af6a: 00 02 00 5e lbi $r0,[$r4+#0x5e] | |
| af6e: 00 02 00 5f lbi $r0,[$r4+#0x5f] | |
| af72: 00 02 00 60 lbi $r0,[$r4+#0x60] | |
| af76: 00 02 00 61 lbi $r0,[$r4+#0x61] | |
| af7a: 00 02 00 62 lbi $r0,[$r4+#0x62] | |
| af7e: 00 02 00 63 lbi $r0,[$r4+#0x63] | |
| af82: 00 02 02 00 lbi $r0,[$r4+#0x200] | |
| af86: 02 0a b6 00 lhi $r0,[$r21+#0x6c00] | |
| af8a: 00 03 b5 00 lbi $r0,[$r7+#0x3500] | |
| af8e: 00 03 cd 00 lbi $r0,[$r7+#-13056] | |
| af92: 00 03 00 00 lbi $r0,[$r6+#0x0] | |
| af96: 00 02 00 00 lbi $r0,[$r4+#0x0] | |
| af9a: 00 02 00 64 lbi $r0,[$r4+#0x64] | |
| af9e: 00 02 00 00 lbi $r0,[$r4+#0x0] | |
| ... | |
| afbe: 00 00 01 00 lbi $r0,[$r0+#0x100] | |
| afc2: 02 0a 00 51 lhi $r0,[$r20+#0xa2] | |
| afc6: 00 02 01 00 lbi $r0,[$r4+#0x100] | |
| afca: 00 02 02 00 lbi $r0,[$r4+#0x200] | |
| afce: 00 02 04 00 lbi $r0,[$r4+#0x400] | |
| afd2: 00 02 02 00 lbi $r0,[$r4+#0x200] | |
| afd6: 02 0a 10 00 lhi $r0,[$r20+#0x2000] | |
| afda: 00 02 20 00 lbi $r0,[$r4+#0x2000] | |
| afde: 00 02 00 50 lbi $r0,[$r4+#0x50] | |
| afe2: 00 02 80 00 lbi $r0,[$r5+#0x0] | |
| afe6: 00 02 00 04 lbi $r0,[$r4+#0x4] | |
| afea: 00 02 00 05 lbi $r0,[$r4+#0x5] | |
| afee: 00 02 00 06 lbi $r0,[$r4+#0x6] | |
| aff2: 00 02 00 07 lbi $r0,[$r4+#0x7] | |
| aff6: 00 02 03 00 lbi $r0,[$r4+#0x300] | |
| affa: 06 0a 00 09 *unknown* | |
| affe: 00 02 00 0a lbi $r0,[$r4+#0xa] | |
| b002: 00 02 00 0b lbi $r0,[$r4+#0xb] | |
| b006: 00 02 00 47 lbi $r0,[$r4+#0x47] | |
| b00a: 00 02 00 49 lbi $r0,[$r4+#0x49] | |
| b00e: 00 02 00 4a lbi $r0,[$r4+#0x4a] | |
| b012: 00 02 00 4b lbi $r0,[$r4+#0x4b] | |
| b016: 00 02 00 10 lbi $r0,[$r4+#0x10] | |
| b01a: 00 02 00 11 lbi $r0,[$r4+#0x11] | |
| b01e: 00 02 00 48 lbi $r0,[$r4+#0x48] | |
| b022: 00 02 02 00 lbi $r0,[$r4+#0x200] | |
| b026: 02 09 01 00 lhi $r0,[$r18+#0x200] | |
| b02a: 06 0a 04 00 *unknown* | |
| b02e: 06 0a 00 16 *unknown* | |
| b032: 00 02 00 17 lbi $r0,[$r4+#0x17] | |
| b036: 00 02 00 46 lbi $r0,[$r4+#0x46] | |
| b03a: 00 02 00 19 lbi $r0,[$r4+#0x19] | |
| b03e: 00 02 02 00 lbi $r0,[$r4+#0x200] | |
| b042: 06 0a 00 1b *unknown* | |
| b046: 00 02 00 1c lbi $r0,[$r4+#0x1c] | |
| b04a: 00 02 00 1d lbi $r0,[$r4+#0x1d] | |
| b04e: 00 02 00 3a lbi $r0,[$r4+#0x3a] | |
| b052: 00 02 00 3b lbi $r0,[$r4+#0x3b] | |
| b056: 00 02 00 3c lbi $r0,[$r4+#0x3c] | |
| b05a: 00 02 00 3d lbi $r0,[$r4+#0x3d] | |
| b05e: 00 02 00 3e lbi $r0,[$r4+#0x3e] | |
| b062: 00 02 00 3f lbi $r0,[$r4+#0x3f] | |
| b066: 00 02 00 40 lbi $r0,[$r4+#0x40] | |
| b06a: 00 02 00 41 lbi $r0,[$r4+#0x41] | |
| b06e: 00 02 00 42 lbi $r0,[$r4+#0x42] | |
| b072: 00 02 00 43 lbi $r0,[$r4+#0x43] | |
| b076: 00 02 00 28 lbi $r0,[$r4+#0x28] | |
| b07a: 00 02 00 35 lbi $r0,[$r4+#0x35] | |
| b07e: 00 02 02 00 lbi $r0,[$r4+#0x200] | |
| b082: 06 09 00 2b *unknown* | |
| b086: 00 02 00 2c lbi $r0,[$r4+#0x2c] | |
| b08a: 00 02 00 44 lbi $r0,[$r4+#0x44] | |
| b08e: 00 02 00 45 lbi $r0,[$r4+#0x45] | |
| b092: 00 02 01 00 lbi $r0,[$r4+#0x100] | |
| b096: 02 09 10 00 lhi $r0,[$r18+#0x2000] | |
| b09a: 01 09 11 00 lbi $r16,[$r18+#0x1100] | |
| b09e: 01 09 02 00 lbi $r16,[$r18+#0x200] | |
| b0a2: 03 09 01 00 lhi $r16,[$r18+#0x200] | |
| b0a6: 03 09 00 35 lhi $r16,[$r18+#0x6a] | |
| b0aa: 00 02 00 4d lbi $r0,[$r4+#0x4d] | |
| b0ae: 00 02 00 4e lbi $r0,[$r4+#0x4e] | |
| b0b2: 00 02 00 38 lbi $r0,[$r4+#0x38] | |
| b0b6: 00 02 00 39 lbi $r0,[$r4+#0x39] | |
| b0ba: 00 02 e2 00 lbi $r0,[$r5+#-7680] | |
| b0be: 00 03 ea 00 lbi $r0,[$r7+#-5632] | |
| b0c2: 00 03 e9 00 lbi $r0,[$r7+#-5888] | |
| b0c6: 00 03 b7 00 lbi $r0,[$r7+#0x3700] | |
| b0ca: 00 03 94 01 lbi $r0,[$r7+#0x1401] | |
| b0ce: 00 03 23 02 lbi $r0,[$r6+#0x2302] | |
| b0d2: 00 03 08 0f lbi $r0,[$r6+#0x80f] | |
| b0d6: 00 02 06 00 lbi $r0,[$r4+#0x600] | |
| b0da: 02 0a 10 00 lhi $r0,[$r20+#0x2000] | |
| b0de: 01 09 11 00 lbi $r16,[$r18+#0x1100] | |
| b0e2: 01 09 01 00 lbi $r16,[$r18+#0x100] | |
| b0e6: 06 09 02 00 *unknown* | |
| b0ea: 06 09 02 00 *unknown* | |
| b0ee: 01 09 07 13 lbi $r16,[$r18+#0x713] | |
| b0f2: 01 09 06 00 lbi $r16,[$r18+#0x600] | |
| b0f6: 01 09 08 00 lbi $r16,[$r18+#0x800] | |
| b0fa: 01 09 09 00 lbi $r16,[$r18+#0x900] | |
| b0fe: 01 09 04 00 lbi $r16,[$r18+#0x400] | |
| b102: 01 09 03 00 lbi $r16,[$r18+#0x300] | |
| b106: 01 09 05 00 lbi $r16,[$r18+#0x500] | |
| b10a: 01 09 0a 00 lbi $r16,[$r18+#0xa00] | |
| b10e: 01 09 00 4f lbi $r16,[$r18+#0x4f] | |
| b112: 00 02 00 50 lbi $r0,[$r4+#0x50] | |
| b116: 00 02 00 51 lbi $r0,[$r4+#0x51] | |
| b11a: 00 02 00 52 lbi $r0,[$r4+#0x52] | |
| b11e: 00 02 00 53 lbi $r0,[$r4+#0x53] | |
| b122: 00 02 00 54 lbi $r0,[$r4+#0x54] | |
| b126: 00 02 00 55 lbi $r0,[$r4+#0x55] | |
| b12a: 00 02 00 56 lbi $r0,[$r4+#0x56] | |
| b12e: 00 02 00 57 lbi $r0,[$r4+#0x57] | |
| b132: 00 02 00 58 lbi $r0,[$r4+#0x58] | |
| b136: 00 02 00 59 lbi $r0,[$r4+#0x59] | |
| b13a: 00 02 00 5a lbi $r0,[$r4+#0x5a] | |
| b13e: 00 02 00 5b lbi $r0,[$r4+#0x5b] | |
| b142: 00 02 00 5c lbi $r0,[$r4+#0x5c] | |
| b146: 00 02 00 5d lbi $r0,[$r4+#0x5d] | |
| b14a: 00 02 00 5e lbi $r0,[$r4+#0x5e] | |
| b14e: 00 02 00 5f lbi $r0,[$r4+#0x5f] | |
| b152: 00 02 00 60 lbi $r0,[$r4+#0x60] | |
| b156: 00 02 00 61 lbi $r0,[$r4+#0x61] | |
| b15a: 00 02 00 62 lbi $r0,[$r4+#0x62] | |
| b15e: 00 02 00 63 lbi $r0,[$r4+#0x63] | |
| b162: 00 02 02 00 lbi $r0,[$r4+#0x200] | |
| b166: 02 0a b6 00 lhi $r0,[$r21+#0x6c00] | |
| b16a: 00 03 b5 00 lbi $r0,[$r7+#0x3500] | |
| b16e: 00 03 cd 00 lbi $r0,[$r7+#-13056] | |
| b172: 00 03 00 00 lbi $r0,[$r6+#0x0] | |
| b176: 00 02 00 00 lbi $r0,[$r4+#0x0] | |
| b17a: 00 02 00 64 lbi $r0,[$r4+#0x64] | |
| b17e: 00 02 00 00 lbi $r0,[$r4+#0x0] | |
| ... | |
| b19e: 00 00 07 08 lbi $r0,[$r0+#0x708] | |
| b1a2: 05 0e 07 01 lwi $r16,[$fp+#0x1c04] | |
| ... | |
| b1ae: 14 00 00 00 swi $r0,[$r0+#0x0] | |
| b1b2: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| b1b6: 14 00 00 00 swi $r0,[$r0+#0x0] | |
| b1ba: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| b1be: 14 00 00 00 swi $r0,[$r0+#0x0] | |
| b1c2: 00 00 98 d3 lbi $r0,[$r1+#0x18d3] | |
| b1c6: 00 00 9c d3 lbi $r0,[$r1+#0x1cd3] | |
| b1ca: 00 00 ac d3 lbi $r0,[$r1+#0x2cd3] | |
| b1ce: 00 00 dc d3 lbi $r0,[$r1+#-9005] | |
| b1d2: 00 00 18 74 lbi $r0,[$r0+#0x1874] | |
| b1d6: 00 00 20 75 lbi $r0,[$r0+#0x2075] | |
| b1da: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b1de: 00 00 ec 75 lbi $r0,[$r1+#-5003] | |
| b1e2: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b1e6: 00 00 c0 76 lbi $r0,[$r1+#-16266] | |
| b1ea: 00 00 10 77 lbi $r0,[$r0+#0x1077] | |
| b1ee: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b1f2: 00 00 14 79 lbi $r0,[$r0+#0x1479] | |
| b1f6: 00 00 6c 79 lbi $r0,[$r0+#-4999] | |
| b1fa: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b1fe: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b202: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b206: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b20a: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b20e: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b212: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b216: 00 00 50 7a lbi $r0,[$r0+#-12166] | |
| b21a: 00 00 6c 7a lbi $r0,[$r0+#-4998] | |
| b21e: 00 00 08 7b lbi $r0,[$r0+#0x87b] | |
| b222: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b226: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b22a: 00 00 10 77 lbi $r0,[$r0+#0x1077] | |
| b22e: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b232: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b236: 00 00 70 7b lbi $r0,[$r0+#-3973] | |
| b23a: 00 00 e4 7b lbi $r0,[$r1+#-7045] | |
| b23e: 00 00 74 7c lbi $r0,[$r0+#-2948] | |
| b242: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b246: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b24a: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b24e: 00 00 ac 6d lbi $r0,[$r1+#0x2c6d] | |
| b252: 00 00 0a 02 lbi $r0,[$r0+#0xa02] | |
| b256: 02 00 00 00 lhi $r0,[$r0+#0x0] | |
| b25a: 00 00 0a 02 lbi $r0,[$r0+#0xa02] | |
| b25e: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| b262: 00 00 14 00 lbi $r0,[$r0+#0x1400] | |
| b266: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| b26a: 00 00 0a 02 lbi $r0,[$r0+#0xa02] | |
| b26e: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| b272: 00 00 0a 02 lbi $r0,[$r0+#0xa02] | |
| b276: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| b27a: 00 00 14 00 lbi $r0,[$r0+#0x1400] | |
| b27e: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| b282: 00 00 00 05 lbi $r0,[$r0+#0x5] | |
| b286: 00 00 02 00 lbi $r0,[$r0+#0x200] | |
| b28a: 00 00 00 29 lbi $r0,[$r0+#0x29] | |
| b28e: 00 00 00 fc lbi $r0,[$r0+#0xfc] | |
| b292: 00 00 fc 1f lbi $r0,[$r1+#-993] | |
| b296: 10 00 00 00 sbi $r0,[$r0+#0x0] | |
| ... | |
| b2b6: 00 00 f0 49 lbi $r0,[$r1+#-4023] | |
| b2ba: 02 00 00 00 lhi $r0,[$r0+#0x0] | |
| b2be: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| b2c2: 00 00 01 00 lbi $r0,[$r0+#0x100] | |
| b2c6: 00 00 01 00 lbi $r0,[$r0+#0x100] | |
| ... | |
| b316: 01 00 01 00 lbi $r16,[$r0+#0x100] | |
| ... | |
| b326: 00 01 00 00 lbi $r0,[$r2+#0x0] | |
| b32a: 00 00 00 00 lbi $r0,[$r0+#0x0] | |
| ... |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment