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 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