[*] Binary protection state of libgstartpec.so
Full RELRO No Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of libgstartpec.so
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/gstreamer-1.0/libgstartpec.so @ 0x3894 */
| #include <stdint.h>
|
; (fcn) entry.fini0 () | void entry_fini0 () {
0x00003894 lui gp, 3 |
0x00003898 addiu gp, gp, -0x6844 |
0x0000389c addu gp, gp, t9 | gp += t9;
0x000038a0 addiu sp, sp, -0x20 |
0x000038a4 sw s0, 0x18(sp) | *(var_18h) = s0;
0x000038a8 lw s0, -0x7fe4(gp) | s0 = *((gp - 8185));
0x000038ac sw gp, 0x10(sp) | *(var_10h) = gp;
0x000038b0 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x000038b4 lbu v0, 0x54c0(s0) | v0 = *((s0 + 21696));
0x000038b8 lw v0, -0x7d8c(gp) | v0 = *((gp - 8035));
| if (v0 == 0) {
0x000038bc bnez v0, 0x38f0 |
0x000038c0 lw v0, -0x7fe0(gp) | v0 = *((gp - 8184));
| if (v0 != 0) {
0x000038c4 beqz v0, 0x38d8 |
0x000038c8 lw t9, -0x7d8c(gp) | t9 = *((gp - 8035));
0x000038cc lw a0, (v0) | a0 = *(v0);
0x000038d0 jalr t9 | t9 ();
0x000038d4 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x000038d8 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x000038dc addiu t9, t9, 0x3810 | t9 += entry0;
0x000038e0 bal 0x3810 | entry0 ();
0x000038e4 nop |
0x000038e8 addiu v0, zero, 1 | v0 = 1;
0x000038ec sb v0, 0x54c0(s0) | *((s0 + 21696)) = v0;
| }
0x000038f0 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x000038f4 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000038f8 addiu sp, sp, 0x20 |
0x000038fc jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/gstreamer-1.0/libgstartpec.so @ 0xe540 */
| #include <stdint.h>
|
; (fcn) fcn.0000e540 () | void fcn_0000e540 () {
0x0000e540 lui gp, 2 |
0x0000e544 addiu gp, gp, -0x14f0 |
0x0000e548 addu gp, gp, t9 | gp += t9;
0x0000e54c addiu sp, sp, -0x38 |
0x0000e550 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x0000e554 sw ra, 0x34(sp) | *(var_34h) = ra;
0x0000e558 sw s3, 0x30(sp) | *(var_30h) = s3;
0x0000e55c sw s2, 0x2c(sp) | *(var_2ch) = s2;
0x0000e560 sw s1, 0x28(sp) | *(var_28h) = s1;
0x0000e564 sw s0, 0x24(sp) | *(var_24h) = s0;
0x0000e568 move s3, a0 | s3 = a0;
| if (a0 == 0) {
0x0000e56c beqz a0, 0xe600 | goto label_10;
| }
0x0000e570 lw a0, (a0) | a0 = *(a0);
0x0000e574 move s2, a1 | s2 = a1;
| if (a0 == 0) {
0x0000e578 beqz a0, 0xe628 | goto label_11;
| }
0x0000e57c move s1, zero | s1 = 0;
| if (a1 == 0) {
0x0000e580 beqz a1, 0xe5d4 | goto label_12;
| }
0x0000e584 sll s0, s1, 2 | s0 = s1 << 2;
| do {
0x0000e588 lwx s0, s0(a0) | __asm ("lwx s0, s0(a0)");
0x0000e58c lw t9, -0x7ee8(gp) | t9 = *((gp - 8122));
| if (s0 != 0) {
0x0000e590 beqz s0, 0xe5c8 |
0x0000e594 jalr t9 | t9 ();
0x0000e598 nop |
0x0000e59c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000e5a0 move a1, v0 | a1 = v0;
0x0000e5a4 lw t9, -0x7e2c(gp) | t9 = *((gp - 8075));
0x0000e5a8 move a0, s0 | a0 = s0;
0x0000e5ac jalr t9 | t9 ();
0x0000e5b0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000e5b4 lw t9, -0x7f2c(gp) | t9 = *((gp - 8139));
0x0000e5b8 move a0, v0 | a0 = v0;
0x0000e5bc jalr t9 | t9 ();
0x0000e5c0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000e5c4 lw a0, (s3) | a0 = *(s3);
| }
0x0000e5c8 addiu s1, s1, 1 | s1++;
0x0000e5cc sll s0, s1, 2 | s0 = s1 << 2;
0x0000e5d0 bne s2, s1, 0xe588 |
| } while (s2 != s1);
| label_12:
0x0000e5d4 lw t9, -0x7bac(gp) | t9 = *((gp - 7915));
0x0000e5d8 jalr t9 | t9 ();
0x0000e5dc nop |
0x0000e5e0 lw ra, 0x34(sp) | ra = *(var_34h);
0x0000e5e4 sw zero, (s3) | *(s3) = 0;
0x0000e5e8 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x0000e5ec lw s3, 0x30(sp) | s3 = *(var_30h);
0x0000e5f0 lw s1, 0x28(sp) | s1 = *(var_28h);
0x0000e5f4 lw s0, 0x24(sp) | s0 = *(var_24h);
0x0000e5f8 addiu sp, sp, 0x38 |
0x0000e5fc jr ra | return v0;
| label_10:
0x0000e600 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x0000e604 lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x0000e608 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x0000e60c addiu v0, v0, 0x4158 | v0 += 0x4158;
0x0000e610 lw t9, -0x7d14(gp) | t9 = *((gp - 8005));
0x0000e614 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0000e618 addiu a3, a3, 0x4a88 | a3 += 0x4a88;
0x0000e61c addiu a2, zero, 0x8e | a2 = 0x8e;
0x0000e620 addiu a1, a1, 0x49dc | a1 += 0x49dc;
0x0000e624 jalr t9 | t9 ();
| label_11:
0x0000e628 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x0000e62c lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x0000e630 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x0000e634 addiu v0, v0, 0x4a28 | v0 += 0x4a28;
0x0000e638 lw t9, -0x7d14(gp) | t9 = *((gp - 8005));
0x0000e63c sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0000e640 addiu a3, a3, 0x4a88 | a3 += 0x4a88;
0x0000e644 addiu a2, zero, 0x8f | a2 = 0x8f;
0x0000e648 addiu a1, a1, 0x49dc | a1 += 0x49dc;
0x0000e64c move a0, zero | a0 = 0;
0x0000e650 jalr t9 | t9 ();
0x0000e654 lui gp, 2 |
0x0000e658 addiu gp, gp, -0x1604 |
0x0000e65c addu gp, gp, t9 | gp += t9;
| if (a0 != 0) {
0x0000e660 beql a0, zero, 0xe670 |
0x0000e664 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x0000e668 lw v0, 0x40(a0) | v0 = *((a0 + 16));
0x0000e66c jr ra | return v0;
| }
0x0000e670 addiu sp, sp, -0x28 |
0x0000e674 lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x0000e678 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x0000e67c addiu v0, v0, 0x49c8 | v0 += 0x49c8;
0x0000e680 lw t9, -0x7d14(gp) | t9 = *((gp - 8005));
0x0000e684 addiu a3, a3, 0x4a64 | a3 += 0x4a64;
0x0000e688 sw gp, 0x18(sp) | *(var_18h_3) = gp;
0x0000e68c sw ra, 0x24(sp) | *(var_24h_2) = ra;
0x0000e690 sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x0000e694 addiu a2, zero, 0x9d | a2 = 0x9d;
0x0000e698 addiu a1, a1, 0x49dc | a1 += 0x49dc;
0x0000e69c jalr t9 | t9 ();
0x0000e6a0 lui gp, 2 |
0x0000e6a4 addiu gp, gp, -0x1650 |
0x0000e6a8 addu gp, gp, t9 | gp += t9;
| if (a0 != 0) {
0x0000e6ac beql a0, zero, 0xe6bc |
0x0000e6b0 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x0000e6b4 lw v0, 0x44(a0) | v0 = *((a0 + 17));
0x0000e6b8 jr ra | return v0;
| }
0x0000e6bc addiu sp, sp, -0x28 |
0x0000e6c0 lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x0000e6c4 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x0000e6c8 addiu v0, v0, 0x49c8 | v0 += 0x49c8;
0x0000e6cc lw t9, -0x7d14(gp) | t9 = *((gp - 8005));
0x0000e6d0 addiu a3, a3, 0x4a40 | a3 += 0x4a40;
0x0000e6d4 sw gp, 0x18(sp) | *(var_18h_4) = gp;
0x0000e6d8 sw ra, 0x24(sp) | *(var_24h_3) = ra;
0x0000e6dc sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x0000e6e0 addiu a2, zero, 0xa4 | a2 = 0xa4;
0x0000e6e4 addiu a1, a1, 0x49dc | a1 += 0x49dc;
0x0000e6e8 jalr t9 | t9 ();
0x0000e6ec nop |
0x0000e6f0 negu v0, a0 | __asm ("negu v0, a0");
| if (a1 < 0) {
0x0000e6f4 bltz a1, 0xe918 | goto label_13;
| }
0x0000e6f8 move t0, zero | t0 = 0;
| label_1:
0x0000e6fc move t1, a2 | t1 = a2;
| if (a3 < 0) {
0x0000e700 bgez a3, 0xe720 |
0x0000e704 negu v0, a2 | __asm ("negu v0, a2");
0x0000e708 sltu v1, zero, v0 | v1 = (0 < v0) ? 1 : 0;
0x0000e70c negu a3, a3 | __asm ("negu a3, a3");
0x0000e710 nor t0, zero, t0 | __asm ("nor t0, zero, t0");
0x0000e714 move a2, v0 | a2 = v0;
0x0000e718 subu a3, a3, v1 | __asm ("subu a3, a3, v1");
0x0000e71c move t1, a2 | t1 = a2;
| }
0x0000e720 move t2, a0 | t2 = a0;
0x0000e724 move v1, a1 | v1 = a1;
| if (a3 != 0) {
0x0000e728 bnez a3, 0xe8e8 | goto label_14;
| }
0x0000e72c sltu v0, a1, a2 | v0 = (a1 < a2) ? 1 : 0;
0x0000e730 clz v0, a2 | __asm ("clz v0, a2");
| if (v0 == 0) {
0x0000e734 beqz v0, 0xe80c | goto label_15;
| }
| if (v0 != 0) {
0x0000e738 beql v0, zero, 0xe75c |
0x0000e73c srl a1, t1, 0x10 | a1 = t1 >> 0x10;
0x0000e740 negu a0, v0 | __asm ("negu a0, v0");
0x0000e744 srlv a0, t2, a0 | a0 = t2 >> a0;
0x0000e748 sllv v1, a1, v0 | v1 = a1 << v0;
0x0000e74c sllv t1, a2, v0 | t1 = a2 << v0;
0x0000e750 or v1, a0, v1 | v1 = a0 | v1;
0x0000e754 sllv t2, t2, v0 | t2 <<= v0;
0x0000e758 srl a1, t1, 0x10 | a1 = t1 >> 0x10;
| }
0x0000e75c divu zero, v1, a1 | __asm ("divu zero, v1, a1");
0x0000e760 teq a1, zero, 7 | __asm ("teq a1, zero, 7");
0x0000e764 andi a2, t1, 0xffff | a2 = t1 & 0xffff;
0x0000e768 srl v0, t2, 0x10 | v0 = t2 >> 0x10;
0x0000e76c mflo v1 | __asm ("mflo v1");
0x0000e770 mfhi a0 | __asm ("mfhi a0");
0x0000e774 mul a3, a2, v1 | __asm ("mul a3, a2, v1");
0x0000e778 sll a0, a0, 0x10 | a0 <<= 0x10;
0x0000e77c or v0, a0, v0 | v0 = a0 | v0;
0x0000e780 sltu a0, v0, a3 | a0 = (v0 < a3) ? 1 : 0;
| if (a0 != 0) {
0x0000e784 beql a0, zero, 0xe7b4 |
0x0000e788 subu v0, v0, a3 | __asm ("subu v0, v0, a3");
0x0000e78c addu v0, v0, t1 | v0 += t1;
0x0000e790 sltu a0, v0, t1 | a0 = (v0 < t1) ? 1 : 0;
0x0000e794 addiu t3, v1, -1 | t3 = v1 + -1;
| if (a0 != 0) {
0x0000e798 bnez a0, 0xeb28 | goto label_16;
| }
0x0000e79c sltu a0, v0, a3 | a0 = (v0 < a3) ? 1 : 0;
| if (a0 != 0) {
0x0000e7a0 beql a0, zero, 0xe7b0 |
0x0000e7a4 move v1, t3 | v1 = t3;
0x0000e7a8 addiu v1, v1, -2 | v1 += -2;
0x0000e7ac addu v0, v0, t1 | v0 += t1;
| }
| label_4:
0x0000e7b0 subu v0, v0, a3 | __asm ("subu v0, v0, a3");
| }
0x0000e7b4 divu zero, v0, a1 | __asm ("divu zero, v0, a1");
0x0000e7b8 teq a1, zero, 7 | __asm ("teq a1, zero, 7");
0x0000e7bc andi t2, t2, 0xffff | t2 &= 0xffff;
0x0000e7c0 mflo v0 | __asm ("mflo v0");
0x0000e7c4 mfhi a1 | __asm ("mfhi a1");
0x0000e7c8 mul a2, a2, v0 | __asm ("mul a2, a2, v0");
0x0000e7cc sll a1, a1, 0x10 | a1 <<= 0x10;
0x0000e7d0 or t2, a1, t2 | t2 = a1 | t2;
0x0000e7d4 sltu a0, t2, a2 | a0 = (t2 < a2) ? 1 : 0;
0x0000e7d8 addu t2, t1, t2 | t2 = t1 + t2;
| if (a0 == 0) {
0x0000e7dc bnel a0, zero, 0xeb08 | goto label_17;
| }
| label_3:
0x0000e7e0 sll v1, v1, 0x10 | v1 <<= 0x10;
0x0000e7e4 or v0, v1, v0 | v0 = v1 | v0;
0x0000e7e8 move v1, zero | v1 = 0;
| do {
| if (t0 != 0) {
| label_0:
0x0000e7ec beqz t0, 0xe804 |
0x0000e7f0 nop |
0x0000e7f4 negu v0, v0 | __asm ("negu v0, v0");
0x0000e7f8 sltu a0, zero, v0 | a0 = (0 < v0) ? 1 : 0;
0x0000e7fc negu v1, v1 | __asm ("negu v1, v1");
0x0000e800 subu v1, v1, a0 | __asm ("subu v1, v1, a0");
| }
0x0000e804 jr ra | return v0;
0x0000e808 nop |
| label_15:
0x0000e80c clz t4, t1 | __asm ("clz t4, t1");
| if (a2 == 0) {
0x0000e810 bnez a2, 0xe828 |
0x0000e814 addiu t1, zero, 1 | t1 = 1;
0x0000e818 divu zero, t1, a3 | __asm ("divu zero, t1, a3");
0x0000e81c teq a3, zero, 7 | __asm ("teq a3, zero, 7");
0x0000e820 mflo t1 | __asm ("mflo t1");
0x0000e824 clz t4, t1 | __asm ("clz t4, t1");
| }
0x0000e828 addiu t2, zero, 0x20 | t2 = 0x20;
| if (t4 == 0) {
0x0000e82c bnel t4, zero, 0xea34 | goto label_18;
| }
0x0000e830 subu a1, a1, t1 | __asm ("subu a1, a1, t1");
0x0000e834 srl a2, t1, 0x10 | a2 = t1 >> 0x10;
0x0000e838 andi a3, t1, 0xffff | a3 = t1 & 0xffff;
0x0000e83c addiu v1, zero, 1 | v1 = 1;
| label_2:
0x0000e840 divu zero, a1, a2 | __asm ("divu zero, a1, a2");
0x0000e844 teq a2, zero, 7 | __asm ("teq a2, zero, 7");
0x0000e848 srl v0, t2, 0x10 | v0 = t2 >> 0x10;
0x0000e84c mflo a1 | __asm ("mflo a1");
0x0000e850 mfhi a0 | __asm ("mfhi a0");
0x0000e854 mul t3, a1, a3 | __asm ("mul t3, a1, a3");
0x0000e858 sll a0, a0, 0x10 | a0 <<= 0x10;
0x0000e85c or v0, a0, v0 | v0 = a0 | v0;
0x0000e860 sltu a0, v0, t3 | a0 = (v0 < t3) ? 1 : 0;
| if (a0 != 0) {
0x0000e864 beql a0, zero, 0xe890 |
0x0000e868 subu v0, v0, t3 | __asm ("subu v0, v0, t3");
0x0000e86c addu v0, v0, t1 | v0 += t1;
0x0000e870 sltu a0, v0, t1 | a0 = (v0 < t1) ? 1 : 0;
0x0000e874 addiu t4, a1, -1 | t4 = a1 + -1;
| if (a0 == 0) {
0x0000e878 bnez a0, 0xe888 |
0x0000e87c sltu a0, v0, t3 | a0 = (v0 < t3) ? 1 : 0;
0x0000e880 addiu a1, a1, -2 | a1 += -2;
| if (a0 != 0) {
0x0000e884 bnez a0, 0xeb80 | goto label_19;
| }
| }
0x0000e888 move a1, t4 | a1 = t4;
| label_9:
0x0000e88c subu v0, v0, t3 | __asm ("subu v0, v0, t3");
| }
0x0000e890 divu zero, v0, a2 | __asm ("divu zero, v0, a2");
0x0000e894 teq a2, zero, 7 | __asm ("teq a2, zero, 7");
0x0000e898 andi t2, t2, 0xffff | t2 &= 0xffff;
0x0000e89c mflo v0 | __asm ("mflo v0");
0x0000e8a0 mfhi a2 | __asm ("mfhi a2");
0x0000e8a4 mul a3, v0, a3 | __asm ("mul a3, v0, a3");
0x0000e8a8 sll a2, a2, 0x10 | a2 <<= 0x10;
0x0000e8ac or t2, a2, t2 | t2 = a2 | t2;
0x0000e8b0 sltu a0, t2, a3 | a0 = (t2 < a3) ? 1 : 0;
| if (a0 != 0) {
0x0000e8b4 beql a0, zero, 0xe8e0 |
0x0000e8b8 sll a1, a1, 0x10 | a1 <<= 0x10;
0x0000e8bc addu t2, t1, t2 | t2 = t1 + t2;
0x0000e8c0 sltu a0, t2, t1 | a0 = (t2 < t1) ? 1 : 0;
0x0000e8c4 addiu a2, v0, -1 | a2 = v0 + -1;
| if (a0 != 0) {
0x0000e8c8 bnez a0, 0xeb30 | goto label_20;
| }
0x0000e8cc sltu t2, t2, a3 | t2 = (t2 < a3) ? 1 : 0;
| if (t2 == 0) {
0x0000e8d0 beql t2, zero, 0xeb34 | goto label_21;
| }
0x0000e8d4 move v0, a2 | v0 = a2;
0x0000e8d8 addiu v0, v0, -2 | v0 += -2;
0x0000e8dc sll a1, a1, 0x10 | a1 <<= 0x10;
| }
0x0000e8e0 or v0, a1, v0 | v0 = a1 | v0;
0x0000e8e4 b 0xe7ec |
| } while (1);
| label_14:
0x0000e8e8 sltu v0, a1, a3 | v0 = (a1 < a3) ? 1 : 0;
0x0000e8ec move v1, zero | v1 = 0;
| if (v0 != 0) {
0x0000e8f0 bnez v0, 0xe930 | goto label_22;
| }
0x0000e8f4 clz v1, a3 | __asm ("clz v1, a3");
0x0000e8f8 addiu t1, zero, 0x20 | t1 = 0x20;
| if (v1 != 0) {
0x0000e8fc bnez v1, 0xe938 | goto label_23;
| }
0x0000e900 sltu a1, a3, a1 | a1 = (a3 < a1) ? 1 : 0;
0x0000e904 addiu v0, zero, 1 | v0 = 1;
| if (a1 == 0) {
0x0000e908 bnel a1, zero, 0xe7ec | goto label_0;
| }
0x0000e90c sltu v0, a0, a2 | v0 = (a0 < a2) ? 1 : 0;
0x0000e910 xori v0, v0, 1 | v0 ^= 1;
0x0000e914 b 0xe7ec | goto label_0;
| label_13:
0x0000e918 sltu v1, zero, v0 | v1 = (0 < v0) ? 1 : 0;
0x0000e91c negu a1, a1 | __asm ("negu a1, a1");
0x0000e920 move a0, v0 | a0 = v0;
0x0000e924 subu a1, a1, v1 | __asm ("subu a1, a1, v1");
0x0000e928 addiu t0, zero, -1 | t0 = -1;
0x0000e92c b 0xe6fc | goto label_1;
| label_22:
0x0000e930 move v0, zero | v0 = 0;
0x0000e934 b 0xe7ec | goto label_0;
| label_23:
0x0000e938 subu t1, t1, v1 | __asm ("subu t1, t1, v1");
0x0000e93c srlv t3, a2, t1 | t3 = a2 >> t1;
0x0000e940 sllv a3, a3, v1 | a3 <<= v1;
0x0000e944 or t3, t3, a3 | t3 |= a3;
0x0000e948 srl v0, t3, 0x10 | v0 = t3 >> 0x10;
0x0000e94c srlv a3, a1, t1 | a3 = a1 >> t1;
0x0000e950 divu zero, a3, v0 | __asm ("divu zero, a3, v0");
0x0000e954 teq v0, zero, 7 | __asm ("teq v0, zero, 7");
0x0000e958 andi t4, t3, 0xffff | t4 = t3 & 0xffff;
0x0000e95c srlv t1, a0, t1 | t1 = a0 >> t1;
0x0000e960 sllv a1, a1, v1 | a1 <<= v1;
0x0000e964 or a1, t1, a1 | a1 = t1 | a1;
0x0000e968 srl t1, a1, 0x10 | t1 = a1 >> 0x10;
0x0000e96c mflo a3 | __asm ("mflo a3");
0x0000e970 mfhi t2 | __asm ("mfhi t2");
0x0000e974 mul t5, t4, a3 | __asm ("mul t5, t4, a3");
0x0000e978 sll t2, t2, 0x10 | t2 <<= 0x10;
0x0000e97c or t1, t2, t1 | t1 = t2 | t1;
0x0000e980 sltu t2, t1, t5 | t2 = (t1 < t5) ? 1 : 0;
0x0000e984 sllv a2, a2, v1 | a2 <<= v1;
| if (t2 != 0) {
0x0000e988 beqz t2, 0xe9b0 |
0x0000e98c addu t1, t1, t3 | t1 += t3;
0x0000e990 sltu t2, t1, t3 | t2 = (t1 < t3) ? 1 : 0;
0x0000e994 addiu t6, a3, -1 | t6 = a3 + -1;
| if (t2 != 0) {
0x0000e998 bnez t2, 0xeb78 | goto label_24;
| }
0x0000e99c sltu t2, t1, t5 | t2 = (t1 < t5) ? 1 : 0;
| if (t2 == 0) {
0x0000e9a0 beql t2, zero, 0xe9b0 | goto label_8;
| }
0x0000e9a4 move a3, t6 | a3 = t6;
0x0000e9a8 addiu a3, a3, -2 | a3 += -2;
0x0000e9ac addu t1, t1, t3 | t1 += t3;
| }
| label_8:
0x0000e9b0 subu t1, t1, t5 | __asm ("subu t1, t1, t5");
0x0000e9b4 divu zero, t1, v0 | __asm ("divu zero, t1, v0");
0x0000e9b8 teq v0, zero, 7 | __asm ("teq v0, zero, 7");
0x0000e9bc andi a1, a1, 0xffff | a1 &= 0xffff;
0x0000e9c0 mflo v0 | __asm ("mflo v0");
0x0000e9c4 mfhi t1 | __asm ("mfhi t1");
0x0000e9c8 mul t2, t4, v0 | __asm ("mul t2, t4, v0");
0x0000e9cc sll t1, t1, 0x10 | t1 <<= 0x10;
0x0000e9d0 or a1, t1, a1 | a1 = t1 | a1;
0x0000e9d4 sltu t1, a1, t2 | t1 = (a1 < t2) ? 1 : 0;
| if (t1 != 0) {
0x0000e9d8 beql t1, zero, 0xea08 |
0x0000e9dc sll a3, a3, 0x10 | a3 <<= 0x10;
0x0000e9e0 addu a1, a1, t3 | a1 += t3;
0x0000e9e4 sltu t1, a1, t3 | t1 = (a1 < t3) ? 1 : 0;
0x0000e9e8 addiu t4, v0, -1 | t4 = v0 + -1;
| if (t1 != 0) {
0x0000e9ec bnez t1, 0xeb68 | goto label_25;
| }
0x0000e9f0 sltu t1, a1, t2 | t1 = (a1 < t2) ? 1 : 0;
| if (t1 != 0) {
0x0000e9f4 beql t1, zero, 0xea04 |
0x0000e9f8 move v0, t4 | v0 = t4;
0x0000e9fc addiu v0, v0, -2 | v0 += -2;
0x0000ea00 addu a1, a1, t3 | a1 += t3;
| }
| label_6:
0x0000ea04 sll a3, a3, 0x10 | a3 <<= 0x10;
| }
0x0000ea08 or v0, a3, v0 | v0 = a3 | v0;
0x0000ea0c multu v0, a2 | __asm ("multu v0, a2");
0x0000ea10 mfhi a3 | __asm ("mfhi a3");
0x0000ea14 subu a1, a1, t2 | __asm ("subu a1, a1, t2");
0x0000ea18 sltu t1, a1, a3 | t1 = (a1 < a3) ? 1 : 0;
0x0000ea1c mflo a2 | __asm ("mflo a2");
| if (t1 != 0) {
0x0000ea20 bnez t1, 0xeb54 | goto label_26;
| }
| if (a1 == a3) {
0x0000ea24 beql a1, a3, 0xeb48 | goto label_27;
| }
0x0000ea28 sllv v1, a0, v1 | v1 = a0 << v1;
0x0000ea2c move v1, zero | v1 = 0;
0x0000ea30 b 0xe7ec | goto label_0;
| label_18:
0x0000ea34 subu t2, t2, t4 | __asm ("subu t2, t2, t4");
0x0000ea38 sllv t1, t1, t4 | t1 <<= t4;
0x0000ea3c srlv v0, a1, t2 | v0 = a1 >> t2;
0x0000ea40 srl a2, t1, 0x10 | a2 = t1 >> 0x10;
0x0000ea44 divu zero, v0, a2 | __asm ("divu zero, v0, a2");
0x0000ea48 teq a2, zero, 7 | __asm ("teq a2, zero, 7");
0x0000ea4c sllv a1, a1, t4 | a1 <<= t4;
0x0000ea50 srlv t2, a0, t2 | t2 = a0 >> t2;
0x0000ea54 andi a3, t1, 0xffff | a3 = t1 & 0xffff;
0x0000ea58 or t3, t2, a1 | t3 = t2 | a1;
0x0000ea5c srl v1, t3, 0x10 | v1 = t3 >> 0x10;
0x0000ea60 mflo t5 | __asm ("mflo t5");
0x0000ea64 mfhi v0 | __asm ("mfhi v0");
0x0000ea68 mul a1, a3, t5 | __asm ("mul a1, a3, t5");
0x0000ea6c sll v0, v0, 0x10 | v0 <<= 0x10;
0x0000ea70 or v0, v0, v1 | v0 |= v1;
0x0000ea74 sltu v1, v0, a1 | v1 = (v0 < a1) ? 1 : 0;
0x0000ea78 sllv t2, a0, t4 | t2 = a0 << t4;
| if (v1 != 0) {
0x0000ea7c beqz v1, 0xeaa4 |
0x0000ea80 addu v0, v0, t1 | v0 += t1;
0x0000ea84 sltu v1, v0, t1 | v1 = (v0 < t1) ? 1 : 0;
0x0000ea88 addiu a0, t5, -1 | a0 = t5 + -1;
| if (v1 != 0) {
0x0000ea8c bnez v1, 0xeb70 | goto label_28;
| }
0x0000ea90 sltu v1, v0, a1 | v1 = (v0 < a1) ? 1 : 0;
| if (v1 == 0) {
0x0000ea94 beql v1, zero, 0xeaa4 | goto label_7;
| }
0x0000ea98 move t5, a0 | t5 = a0;
0x0000ea9c addiu t5, t5, -2 | t5 += -2;
0x0000eaa0 addu v0, v0, t1 | v0 += t1;
| }
| label_7:
0x0000eaa4 subu a1, v0, a1 | __asm ("subu a1, v0, a1");
0x0000eaa8 divu zero, a1, a2 | __asm ("divu zero, a1, a2");
0x0000eaac teq a2, zero, 7 | __asm ("teq a2, zero, 7");
0x0000eab0 andi t3, t3, 0xffff | t3 &= 0xffff;
0x0000eab4 mflo v1 | __asm ("mflo v1");
0x0000eab8 mfhi a1 | __asm ("mfhi a1");
0x0000eabc mul a0, a3, v1 | __asm ("mul a0, a3, v1");
0x0000eac0 sll a1, a1, 0x10 | a1 <<= 0x10;
0x0000eac4 or a1, a1, t3 | a1 |= t3;
0x0000eac8 sltu v0, a1, a0 | v0 = (a1 < a0) ? 1 : 0;
0x0000eacc sll v0, t5, 0x10 | v0 = t5 << 0x10;
| if (v0 != 0) {
0x0000ead0 beqz v0, 0xeafc |
0x0000ead4 addu a1, a1, t1 | a1 += t1;
0x0000ead8 sltu v0, a1, t1 | v0 = (a1 < t1) ? 1 : 0;
0x0000eadc addiu t3, v1, -1 | t3 = v1 + -1;
| if (v0 != 0) {
0x0000eae0 bnez v0, 0xeb60 | goto label_29;
| }
0x0000eae4 sltu v0, a1, a0 | v0 = (a1 < a0) ? 1 : 0;
| if (v0 != 0) {
0x0000eae8 beql v0, zero, 0xeaf8 |
0x0000eaec move v1, t3 | v1 = t3;
0x0000eaf0 addiu v1, v1, -2 | v1 += -2;
0x0000eaf4 addu a1, a1, t1 | a1 += t1;
| }
| label_5:
0x0000eaf8 sll v0, t5, 0x10 | v0 = t5 << 0x10;
| }
0x0000eafc subu a1, a1, a0 | __asm ("subu a1, a1, a0");
0x0000eb00 or v1, v0, v1 | v1 = v0 | v1;
0x0000eb04 b 0xe840 | goto label_2;
| label_17:
0x0000eb08 sltu a0, t2, t1 | a0 = (t2 < t1) ? 1 : 0;
0x0000eb0c addiu a1, v0, -1 | a1 = v0 + -1;
| if (a0 != 0) {
0x0000eb10 bnez a0, 0xeb40 | goto label_30;
| }
0x0000eb14 sltu t2, t2, a2 | t2 = (t2 < a2) ? 1 : 0;
| if (t2 == 0) {
0x0000eb18 beql t2, zero, 0xe7e0 | goto label_3;
| }
0x0000eb1c move v0, a1 | v0 = a1;
0x0000eb20 addiu v0, v0, -2 | v0 += -2;
0x0000eb24 b 0xe7e0 | goto label_3;
| label_16:
0x0000eb28 move v1, t3 | v1 = t3;
0x0000eb2c b 0xe7b0 | goto label_4;
| label_20:
0x0000eb30 move v0, a2 | v0 = a2;
| label_21:
0x0000eb34 sll a1, a1, 0x10 | a1 <<= 0x10;
0x0000eb38 or v0, a1, v0 | v0 = a1 | v0;
0x0000eb3c b 0xe7ec | goto label_0;
| label_30:
0x0000eb40 move v0, a1 | v0 = a1;
0x0000eb44 b 0xe7e0 | goto label_3;
| label_27:
0x0000eb48 sltu v1, v1, a2 | v1 = (v1 < a2) ? 1 : 0;
| if (v1 == 0) {
0x0000eb4c beqz v1, 0xe7ec | goto label_0;
| }
0x0000eb50 nop |
| label_26:
0x0000eb54 addiu v0, v0, -1 | v0 += -1;
0x0000eb58 move v1, zero | v1 = 0;
0x0000eb5c b 0xe7ec | goto label_0;
| label_29:
0x0000eb60 move v1, t3 | v1 = t3;
0x0000eb64 b 0xeaf8 | goto label_5;
| label_25:
0x0000eb68 move v0, t4 | v0 = t4;
0x0000eb6c b 0xea04 | goto label_6;
| label_28:
0x0000eb70 move t5, a0 | t5 = a0;
0x0000eb74 b 0xeaa4 | goto label_7;
| label_24:
0x0000eb78 move a3, t6 | a3 = t6;
0x0000eb7c b 0xe9b0 | goto label_8;
| label_19:
0x0000eb80 addu v0, v0, t1 | v0 += t1;
0x0000eb84 b 0xe88c | goto label_9;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/gstreamer-1.0/libgstartpec.so @ 0xeb90 */
| #include <stdint.h>
|
; (fcn) fcn.0000eb90 () | void fcn_0000eb90 () {
0x0000eb90 move t0, a2 | t0 = a2;
0x0000eb94 move t1, a0 | t1 = a0;
0x0000eb98 move v0, a1 | v0 = a1;
| if (a3 != 0) {
0x0000eb9c bnez a3, 0xed68 | goto label_10;
| }
0x0000eba0 sltu v1, a1, a2 | v1 = (a1 < a2) ? 1 : 0;
0x0000eba4 clz v1, a2 | __asm ("clz v1, a2");
| if (v1 != 0) {
0x0000eba8 beqz v1, 0xec88 |
| if (v1 != 0) {
0x0000ebac beql v1, zero, 0xebd0 |
0x0000ebb0 srl a1, t0, 0x10 | a1 = t0 >> 0x10;
0x0000ebb4 negu a0, v1 | __asm ("negu a0, v1");
0x0000ebb8 srlv a0, t1, a0 | a0 = t1 >> a0;
0x0000ebbc sllv v0, a1, v1 | v0 = a1 << v1;
0x0000ebc0 sllv t0, a2, v1 | t0 = a2 << v1;
0x0000ebc4 or v0, a0, v0 | v0 = a0 | v0;
0x0000ebc8 sllv t1, t1, v1 | t1 <<= v1;
0x0000ebcc srl a1, t0, 0x10 | a1 = t0 >> 0x10;
| }
0x0000ebd0 divu zero, v0, a1 | __asm ("divu zero, v0, a1");
0x0000ebd4 teq a1, zero, 7 | __asm ("teq a1, zero, 7");
0x0000ebd8 andi a3, t0, 0xffff | a3 = t0 & 0xffff;
0x0000ebdc srl v1, t1, 0x10 | v1 = t1 >> 0x10;
0x0000ebe0 mflo v0 | __asm ("mflo v0");
0x0000ebe4 mfhi a0 | __asm ("mfhi a0");
0x0000ebe8 mul a2, a3, v0 | __asm ("mul a2, a3, v0");
0x0000ebec sll a0, a0, 0x10 | a0 <<= 0x10;
0x0000ebf0 or v1, a0, v1 | v1 = a0 | v1;
0x0000ebf4 sltu a0, v1, a2 | a0 = (v1 < a2) ? 1 : 0;
| if (a0 != 0) {
0x0000ebf8 beql a0, zero, 0xec28 |
0x0000ebfc subu v1, v1, a2 | __asm ("subu v1, v1, a2");
0x0000ec00 addu v1, v1, t0 | v1 += t0;
0x0000ec04 sltu a0, v1, t0 | a0 = (v1 < t0) ? 1 : 0;
0x0000ec08 addiu t2, v0, -1 | t2 = v0 + -1;
| if (a0 != 0) {
0x0000ec0c bnez a0, 0xef7c | goto label_11;
| }
0x0000ec10 sltu a0, v1, a2 | a0 = (v1 < a2) ? 1 : 0;
| if (a0 != 0) {
0x0000ec14 beql a0, zero, 0xec24 |
0x0000ec18 move v0, t2 | v0 = t2;
0x0000ec1c addiu v0, v0, -2 | v0 += -2;
0x0000ec20 addu v1, v1, t0 | v1 += t0;
| }
| label_0:
0x0000ec24 subu v1, v1, a2 | __asm ("subu v1, v1, a2");
| }
0x0000ec28 divu zero, v1, a1 | __asm ("divu zero, v1, a1");
0x0000ec2c teq a1, zero, 7 | __asm ("teq a1, zero, 7");
0x0000ec30 andi t1, t1, 0xffff | t1 &= 0xffff;
0x0000ec34 mflo v1 | __asm ("mflo v1");
0x0000ec38 mfhi a1 | __asm ("mfhi a1");
0x0000ec3c mul a3, a3, v1 | __asm ("mul a3, a3, v1");
0x0000ec40 sll a1, a1, 0x10 | a1 <<= 0x10;
0x0000ec44 or t1, a1, t1 | t1 = a1 | t1;
0x0000ec48 sltu a0, t1, a3 | a0 = (t1 < a3) ? 1 : 0;
| if (a0 != 0) {
0x0000ec4c beql a0, zero, 0xec78 |
0x0000ec50 sll v0, v0, 0x10 | v0 <<= 0x10;
0x0000ec54 addu t1, t0, t1 | t1 = t0 + t1;
0x0000ec58 sltu a0, t1, t0 | a0 = (t1 < t0) ? 1 : 0;
0x0000ec5c addiu a1, v1, -1 | a1 = v1 + -1;
| if (a0 != 0) {
0x0000ec60 bnez a0, 0xef94 | goto label_12;
| }
0x0000ec64 sltu t1, t1, a3 | t1 = (t1 < a3) ? 1 : 0;
| if (t1 != 0) {
0x0000ec68 beql t1, zero, 0xec74 |
0x0000ec6c move v1, a1 | v1 = a1;
0x0000ec70 addiu v1, v1, -2 | v1 += -2;
| }
| label_2:
0x0000ec74 sll v0, v0, 0x10 | v0 <<= 0x10;
| }
0x0000ec78 or v0, v0, v1 | v0 |= v1;
0x0000ec7c move v1, zero | v1 = 0;
| label_3:
0x0000ec80 jr ra | return v0;
0x0000ec84 nop |
| }
0x0000ec88 clz t3, t0 | __asm ("clz t3, t0");
| if (a2 == 0) {
0x0000ec8c bnez a2, 0xeca4 |
0x0000ec90 addiu v0, zero, 1 | v0 = 1;
0x0000ec94 divu zero, v0, a2 | __asm ("divu zero, v0, a2");
0x0000ec98 teq a2, zero, 7 | __asm ("teq a2, zero, 7");
0x0000ec9c mflo t0 | __asm ("mflo t0");
0x0000eca0 clz t3, t0 | __asm ("clz t3, t0");
| }
0x0000eca4 addiu t1, zero, 0x20 | t1 = 0x20;
| if (t3 == 0) {
0x0000eca8 bnel t3, zero, 0xeea8 | goto label_13;
| }
0x0000ecac subu a1, a1, t0 | __asm ("subu a1, a1, t0");
0x0000ecb0 srl a2, t0, 0x10 | a2 = t0 >> 0x10;
0x0000ecb4 andi t2, t0, 0xffff | t2 = t0 & 0xffff;
0x0000ecb8 addiu v1, zero, 1 | v1 = 1;
| do {
0x0000ecbc divu zero, a1, a2 | __asm ("divu zero, a1, a2");
0x0000ecc0 teq a2, zero, 7 | __asm ("teq a2, zero, 7");
0x0000ecc4 srl v0, t1, 0x10 | v0 = t1 >> 0x10;
0x0000ecc8 mflo a1 | __asm ("mflo a1");
0x0000eccc mfhi a0 | __asm ("mfhi a0");
0x0000ecd0 mul a3, a1, t2 | __asm ("mul a3, a1, t2");
0x0000ecd4 sll a0, a0, 0x10 | a0 <<= 0x10;
0x0000ecd8 or v0, a0, v0 | v0 = a0 | v0;
0x0000ecdc sltu a0, v0, a3 | a0 = (v0 < a3) ? 1 : 0;
| if (a0 != 0) {
0x0000ece0 beql a0, zero, 0xed0c |
0x0000ece4 subu v0, v0, a3 | __asm ("subu v0, v0, a3");
0x0000ece8 addu v0, v0, t0 | v0 += t0;
0x0000ecec sltu a0, v0, t0 | a0 = (v0 < t0) ? 1 : 0;
0x0000ecf0 addiu t3, a1, -1 | t3 = a1 + -1;
| if (a0 == 0) {
0x0000ecf4 bnez a0, 0xed04 |
0x0000ecf8 sltu a0, v0, a3 | a0 = (v0 < a3) ? 1 : 0;
0x0000ecfc addiu a1, a1, -2 | a1 += -2;
| if (a0 != 0) {
0x0000ed00 bnez a0, 0xefdc | goto label_14;
| }
| }
0x0000ed04 move a1, t3 | a1 = t3;
| label_9:
0x0000ed08 subu v0, v0, a3 | __asm ("subu v0, v0, a3");
| }
0x0000ed0c divu zero, v0, a2 | __asm ("divu zero, v0, a2");
0x0000ed10 teq a2, zero, 7 | __asm ("teq a2, zero, 7");
0x0000ed14 andi t1, t1, 0xffff | t1 &= 0xffff;
0x0000ed18 mflo v0 | __asm ("mflo v0");
0x0000ed1c mfhi a2 | __asm ("mfhi a2");
0x0000ed20 mul t2, v0, t2 | __asm ("mul t2, v0, t2");
0x0000ed24 sll a2, a2, 0x10 | a2 <<= 0x10;
0x0000ed28 or a2, a2, t1 | a2 |= t1;
0x0000ed2c sltu a0, a2, t2 | a0 = (a2 < t2) ? 1 : 0;
| if (a0 != 0) {
0x0000ed30 beql a0, zero, 0xed5c |
0x0000ed34 sll a1, a1, 0x10 | a1 <<= 0x10;
0x0000ed38 addu a2, t0, a2 | a2 = t0 + a2;
0x0000ed3c sltu a0, a2, t0 | a0 = (a2 < t0) ? 1 : 0;
0x0000ed40 addiu a3, v0, -1 | a3 = v0 + -1;
| if (a0 != 0) {
0x0000ed44 bnez a0, 0xef84 | goto label_15;
| }
0x0000ed48 sltu a2, a2, t2 | a2 = (a2 < t2) ? 1 : 0;
| if (a2 == 0) {
0x0000ed4c beql a2, zero, 0xef88 | goto label_16;
| }
0x0000ed50 move v0, a3 | v0 = a3;
0x0000ed54 addiu v0, v0, -2 | v0 += -2;
0x0000ed58 sll a1, a1, 0x10 | a1 <<= 0x10;
| }
0x0000ed5c or v0, a1, v0 | v0 = a1 | v0;
| label_1:
0x0000ed60 jr ra | return v0;
0x0000ed64 nop |
| label_10:
0x0000ed68 sltu v0, a1, a3 | v0 = (a1 < a3) ? 1 : 0;
0x0000ed6c move v1, zero | v1 = 0;
| if (v0 == 0) {
0x0000ed70 bnez v0, 0xed9c |
0x0000ed74 clz v1, a3 | __asm ("clz v1, a3");
0x0000ed78 addiu t1, zero, 0x20 | t1 = 0x20;
| if (v1 != 0) {
0x0000ed7c bnez v1, 0xeda8 | goto label_17;
| }
0x0000ed80 sltu a1, a3, a1 | a1 = (a3 < a1) ? 1 : 0;
0x0000ed84 addiu v0, zero, 1 | v0 = 1;
| if (a1 == 0) {
0x0000ed88 bnel a1, zero, 0xefb4 | goto label_18;
| }
0x0000ed8c sltu v0, a0, a2 | v0 = (a0 < a2) ? 1 : 0;
0x0000ed90 xori v0, v0, 1 | v0 ^= 1;
0x0000ed94 jr ra | return v0;
0x0000ed98 nop |
| }
0x0000ed9c move v0, zero | v0 = 0;
0x0000eda0 jr ra | return v0;
0x0000eda4 nop |
| label_17:
0x0000eda8 subu t1, t1, v1 | __asm ("subu t1, t1, v1");
0x0000edac srlv v0, a2, t1 | v0 = a2 >> t1;
0x0000edb0 sllv a3, a3, v1 | a3 <<= v1;
0x0000edb4 or a3, v0, a3 | a3 = v0 | a3;
0x0000edb8 srlv t0, a1, t1 | t0 = a1 >> t1;
0x0000edbc srl v0, a3, 0x10 | v0 = a3 >> 0x10;
0x0000edc0 divu zero, t0, v0 | __asm ("divu zero, t0, v0");
0x0000edc4 teq v0, zero, 7 | __asm ("teq v0, zero, 7");
0x0000edc8 andi t3, a3, 0xffff | t3 = a3 & 0xffff;
0x0000edcc srlv t1, a0, t1 | t1 = a0 >> t1;
0x0000edd0 sllv a1, a1, v1 | a1 <<= v1;
0x0000edd4 or a1, t1, a1 | a1 = t1 | a1;
0x0000edd8 srl t1, a1, 0x10 | t1 = a1 >> 0x10;
0x0000eddc mflo t0 | __asm ("mflo t0");
0x0000ede0 mfhi t2 | __asm ("mfhi t2");
0x0000ede4 mul t4, t3, t0 | __asm ("mul t4, t3, t0");
0x0000ede8 sll t2, t2, 0x10 | t2 <<= 0x10;
0x0000edec or t1, t2, t1 | t1 = t2 | t1;
0x0000edf0 sltu t2, t1, t4 | t2 = (t1 < t4) ? 1 : 0;
0x0000edf4 sllv a2, a2, v1 | a2 <<= v1;
| if (t2 != 0) {
0x0000edf8 beqz t2, 0xee20 |
0x0000edfc addu t1, t1, a3 | t1 += a3;
0x0000ee00 sltu t2, t1, a3 | t2 = (t1 < a3) ? 1 : 0;
0x0000ee04 addiu t5, t0, -1 | t5 = t0 + -1;
| if (t2 != 0) {
0x0000ee08 bnez t2, 0xefd4 | goto label_19;
| }
0x0000ee0c sltu t2, t1, t4 | t2 = (t1 < t4) ? 1 : 0;
| if (t2 == 0) {
0x0000ee10 beql t2, zero, 0xee20 | goto label_8;
| }
0x0000ee14 move t0, t5 | t0 = t5;
0x0000ee18 addiu t0, t0, -2 | t0 += -2;
0x0000ee1c addu t1, t1, a3 | t1 += a3;
| }
| label_8:
0x0000ee20 subu t1, t1, t4 | __asm ("subu t1, t1, t4");
0x0000ee24 divu zero, t1, v0 | __asm ("divu zero, t1, v0");
0x0000ee28 teq v0, zero, 7 | __asm ("teq v0, zero, 7");
0x0000ee2c andi a1, a1, 0xffff | a1 &= 0xffff;
0x0000ee30 mflo t1 | __asm ("mflo t1");
0x0000ee34 mfhi v0 | __asm ("mfhi v0");
0x0000ee38 mul t2, t3, t1 | __asm ("mul t2, t3, t1");
0x0000ee3c sll v0, v0, 0x10 | v0 <<= 0x10;
0x0000ee40 or a1, v0, a1 | a1 = v0 | a1;
0x0000ee44 sltu v0, a1, t2 | v0 = (a1 < t2) ? 1 : 0;
0x0000ee48 sll v0, t0, 0x10 | v0 = t0 << 0x10;
| if (v0 != 0) {
0x0000ee4c beqz v0, 0xee78 |
0x0000ee50 addu a1, a1, a3 | a1 += a3;
0x0000ee54 sltu v0, a1, a3 | v0 = (a1 < a3) ? 1 : 0;
0x0000ee58 addiu t3, t1, -1 | t3 = t1 + -1;
| if (v0 != 0) {
0x0000ee5c bnez v0, 0xefc4 | goto label_20;
| }
0x0000ee60 sltu v0, a1, t2 | v0 = (a1 < t2) ? 1 : 0;
| if (v0 != 0) {
0x0000ee64 beql v0, zero, 0xee74 |
0x0000ee68 move t1, t3 | t1 = t3;
0x0000ee6c addiu t1, t1, -2 | t1 += -2;
0x0000ee70 addu a1, a1, a3 | a1 += a3;
| }
| label_6:
0x0000ee74 sll v0, t0, 0x10 | v0 = t0 << 0x10;
| }
0x0000ee78 or v0, v0, t1 | v0 |= t1;
0x0000ee7c multu v0, a2 | __asm ("multu v0, a2");
0x0000ee80 mfhi a3 | __asm ("mfhi a3");
0x0000ee84 subu a1, a1, t2 | __asm ("subu a1, a1, t2");
0x0000ee88 sltu t0, a1, a3 | t0 = (a1 < a3) ? 1 : 0;
0x0000ee8c mflo a2 | __asm ("mflo a2");
| if (t0 != 0) {
0x0000ee90 bnez t0, 0xefa8 | goto label_21;
| }
| if (a1 == a3) {
0x0000ee94 beql a1, a3, 0xef9c | goto label_22;
| }
0x0000ee98 sllv v1, a0, v1 | v1 = a0 << v1;
0x0000ee9c move v1, zero | v1 = 0;
| label_4:
0x0000eea0 jr ra | return v0;
0x0000eea4 nop |
| label_13:
0x0000eea8 subu t1, t1, t3 | __asm ("subu t1, t1, t3");
0x0000eeac sllv t0, t0, t3 | t0 <<= t3;
0x0000eeb0 srlv v0, a1, t1 | v0 = a1 >> t1;
0x0000eeb4 srl a2, t0, 0x10 | a2 = t0 >> 0x10;
0x0000eeb8 divu zero, v0, a2 | __asm ("divu zero, v0, a2");
0x0000eebc teq a2, zero, 7 | __asm ("teq a2, zero, 7");
0x0000eec0 sllv a1, a1, t3 | a1 <<= t3;
0x0000eec4 srlv t1, a0, t1 | t1 = a0 >> t1;
0x0000eec8 andi t2, t0, 0xffff | t2 = t0 & 0xffff;
0x0000eecc or a3, t1, a1 | a3 = t1 | a1;
0x0000eed0 srl v1, a3, 0x10 | v1 = a3 >> 0x10;
0x0000eed4 mflo t4 | __asm ("mflo t4");
0x0000eed8 mfhi v0 | __asm ("mfhi v0");
0x0000eedc mul a1, t2, t4 | __asm ("mul a1, t2, t4");
0x0000eee0 sll v0, v0, 0x10 | v0 <<= 0x10;
0x0000eee4 or v0, v0, v1 | v0 |= v1;
0x0000eee8 sltu v1, v0, a1 | v1 = (v0 < a1) ? 1 : 0;
0x0000eeec sllv t1, a0, t3 | t1 = a0 << t3;
| if (v1 != 0) {
0x0000eef0 beqz v1, 0xef18 |
0x0000eef4 addu v0, v0, t0 | v0 += t0;
0x0000eef8 sltu v1, v0, t0 | v1 = (v0 < t0) ? 1 : 0;
0x0000eefc addiu a0, t4, -1 | a0 = t4 + -1;
| if (v1 != 0) {
0x0000ef00 bnez v1, 0xefcc | goto label_23;
| }
0x0000ef04 sltu v1, v0, a1 | v1 = (v0 < a1) ? 1 : 0;
| if (v1 == 0) {
0x0000ef08 beql v1, zero, 0xef18 | goto label_7;
| }
0x0000ef0c move t4, a0 | t4 = a0;
0x0000ef10 addiu t4, t4, -2 | t4 += -2;
0x0000ef14 addu v0, v0, t0 | v0 += t0;
| }
| label_7:
0x0000ef18 subu a1, v0, a1 | __asm ("subu a1, v0, a1");
0x0000ef1c divu zero, a1, a2 | __asm ("divu zero, a1, a2");
0x0000ef20 teq a2, zero, 7 | __asm ("teq a2, zero, 7");
0x0000ef24 andi a3, a3, 0xffff | a3 &= 0xffff;
0x0000ef28 mflo v1 | __asm ("mflo v1");
0x0000ef2c mfhi a1 | __asm ("mfhi a1");
0x0000ef30 mul a0, t2, v1 | __asm ("mul a0, t2, v1");
0x0000ef34 sll a1, a1, 0x10 | a1 <<= 0x10;
0x0000ef38 or a1, a1, a3 | a1 |= a3;
0x0000ef3c sltu v0, a1, a0 | v0 = (a1 < a0) ? 1 : 0;
0x0000ef40 sll v0, t4, 0x10 | v0 = t4 << 0x10;
| if (v0 != 0) {
0x0000ef44 beqz v0, 0xef70 |
0x0000ef48 addu a1, a1, t0 | a1 += t0;
0x0000ef4c sltu v0, a1, t0 | v0 = (a1 < t0) ? 1 : 0;
0x0000ef50 addiu a3, v1, -1 | a3 = v1 + -1;
| if (v0 != 0) {
0x0000ef54 bnez v0, 0xefbc | goto label_24;
| }
0x0000ef58 sltu v0, a1, a0 | v0 = (a1 < a0) ? 1 : 0;
| if (v0 != 0) {
0x0000ef5c beql v0, zero, 0xef6c |
0x0000ef60 move v1, a3 | v1 = a3;
0x0000ef64 addiu v1, v1, -2 | v1 += -2;
0x0000ef68 addu a1, a1, t0 | a1 += t0;
| }
| label_5:
0x0000ef6c sll v0, t4, 0x10 | v0 = t4 << 0x10;
| }
0x0000ef70 subu a1, a1, a0 | __asm ("subu a1, a1, a0");
0x0000ef74 or v1, v0, v1 | v1 = v0 | v1;
0x0000ef78 b 0xecbc |
| } while (1);
| label_11:
0x0000ef7c move v0, t2 | v0 = t2;
0x0000ef80 b 0xec24 | goto label_0;
| label_15:
0x0000ef84 move v0, a3 | v0 = a3;
| label_16:
0x0000ef88 sll a1, a1, 0x10 | a1 <<= 0x10;
0x0000ef8c or v0, a1, v0 | v0 = a1 | v0;
0x0000ef90 b 0xed60 | goto label_1;
| label_12:
0x0000ef94 move v1, a1 | v1 = a1;
0x0000ef98 b 0xec74 | goto label_2;
| label_22:
0x0000ef9c sltu v1, v1, a2 | v1 = (v1 < a2) ? 1 : 0;
| if (v1 == 0) {
0x0000efa0 beqz v1, 0xec80 | goto label_3;
| }
0x0000efa4 nop |
| label_21:
0x0000efa8 addiu v0, v0, -1 | v0 += -1;
0x0000efac move v1, zero | v1 = 0;
0x0000efb0 b 0xeea0 | goto label_4;
| label_18:
0x0000efb4 jr ra | return v0;
0x0000efb8 nop |
| label_24:
0x0000efbc move v1, a3 | v1 = a3;
0x0000efc0 b 0xef6c | goto label_5;
| label_20:
0x0000efc4 move t1, t3 | t1 = t3;
0x0000efc8 b 0xee74 | goto label_6;
| label_23:
0x0000efcc move t4, a0 | t4 = a0;
0x0000efd0 b 0xef18 | goto label_7;
| label_19:
0x0000efd4 move t0, t5 | t0 = t5;
0x0000efd8 b 0xee20 | goto label_8;
| label_14:
0x0000efdc addu v0, v0, t0 | v0 += t0;
0x0000efe0 b 0xed08 | goto label_9;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/gstreamer-1.0/libgstartpec.so @ 0xeff0 */
| #include <stdint.h>
|
; (fcn) fcn.0000eff0 () | void fcn_0000eff0 () {
0x0000eff0 move t0, a2 | t0 = a2;
0x0000eff4 move t3, a0 | t3 = a0;
0x0000eff8 move v1, a1 | v1 = a1;
0x0000effc move t1, a1 | t1 = a1;
| if (a3 != 0) {
0x0000f000 bnez a3, 0xf1b4 | goto label_6;
| }
0x0000f004 sltu v0, a1, a2 | v0 = (a1 < a2) ? 1 : 0;
0x0000f008 clz t2, a2 | __asm ("clz t2, a2");
| if (v0 == 0) {
0x0000f00c beqz v0, 0xf0e0 | goto label_7;
| }
0x0000f010 srl v1, t0, 0x10 | v1 = t0 >> 0x10;
| if (t2 != 0) {
0x0000f014 beqz t2, 0xf034 |
0x0000f018 negu v0, t2 | __asm ("negu v0, t2");
0x0000f01c srlv v0, a0, v0 | v0 = a0 >> v0;
0x0000f020 sllv a2, a1, t2 | a2 = a1 << t2;
0x0000f024 sllv t0, t0, t2 | t0 <<= t2;
0x0000f028 or t1, v0, a2 | t1 = v0 | a2;
0x0000f02c sllv t3, a0, t2 | t3 = a0 << t2;
0x0000f030 srl v1, t0, 0x10 | v1 = t0 >> 0x10;
| }
0x0000f034 divu zero, t1, v1 | __asm ("divu zero, t1, v1");
0x0000f038 teq v1, zero, 7 | __asm ("teq v1, zero, 7");
0x0000f03c andi a0, t0, 0xffff | a0 = t0 & 0xffff;
0x0000f040 srl a1, t3, 0x10 | a1 = t3 >> 0x10;
0x0000f044 mflo t1 | __asm ("mflo t1");
0x0000f048 mfhi a2 | __asm ("mfhi a2");
0x0000f04c mul t1, t1, a0 | __asm ("mul t1, t1, a0");
0x0000f050 sll a2, a2, 0x10 | a2 <<= 0x10;
0x0000f054 or a1, a2, a1 | a1 = a2 | a1;
0x0000f058 sltu v0, a1, t1 | v0 = (a1 < t1) ? 1 : 0;
| if (v0 != 0) {
0x0000f05c beql v0, zero, 0xf084 |
0x0000f060 subu a1, a1, t1 | __asm ("subu a1, a1, t1");
0x0000f064 addu a1, a1, t0 | a1 += t0;
0x0000f068 sltu v0, a1, t0 | v0 = (a1 < t0) ? 1 : 0;
0x0000f06c subu a1, a1, t1 | __asm ("subu a1, a1, t1");
| if (v0 == 0) {
0x0000f070 bnel v0, zero, 0xf084 | goto label_8;
| }
0x0000f074 sltu v0, a1, t1 | v0 = (a1 < t1) ? 1 : 0;
0x0000f078 addu a1, a1, t0 | a1 += t0;
| if (v0 != 0) {
0x0000f07c bnel v0, zero, 0xf080 |
| }
0x0000f080 subu a1, a1, t1 | __asm ("subu a1, a1, t1");
| }
| label_8:
0x0000f084 divu zero, a1, v1 | __asm ("divu zero, a1, v1");
0x0000f088 teq v1, zero, 7 | __asm ("teq v1, zero, 7");
0x0000f08c andi t3, t3, 0xffff | t3 &= 0xffff;
0x0000f090 mflo v0 | __asm ("mflo v0");
0x0000f094 mfhi a1 | __asm ("mfhi a1");
0x0000f098 mul v0, v0, a0 | __asm ("mul v0, v0, a0");
0x0000f09c sll a1, a1, 0x10 | a1 <<= 0x10;
0x0000f0a0 or a1, a1, t3 | a1 |= t3;
0x0000f0a4 sltu v1, a1, v0 | v1 = (a1 < v0) ? 1 : 0;
| if (v1 != 0) {
0x0000f0a8 beql v1, zero, 0xf0d0 |
0x0000f0ac subu v0, a1, v0 | __asm ("subu v0, a1, v0");
0x0000f0b0 addu a1, a1, t0 | a1 += t0;
0x0000f0b4 sltu v1, a1, t0 | v1 = (a1 < t0) ? 1 : 0;
0x0000f0b8 subu v0, a1, v0 | __asm ("subu v0, a1, v0");
| if (v1 == 0) {
0x0000f0bc bnel v1, zero, 0xf0d0 | goto label_9;
| }
0x0000f0c0 sltu v1, a1, v0 | v1 = (a1 < v0) ? 1 : 0;
0x0000f0c4 addu a1, a1, t0 | a1 += t0;
| if (v1 != 0) {
0x0000f0c8 bnel v1, zero, 0xf0cc |
| }
0x0000f0cc subu v0, a1, v0 | __asm ("subu v0, a1, v0");
| }
| label_9:
0x0000f0d0 srlv v0, v0, t2 | v0 >>= t2;
0x0000f0d4 move v1, zero | v1 = 0;
| do {
| label_0:
0x0000f0d8 jr ra | return v1;
0x0000f0dc nop |
| label_7:
0x0000f0e0 clz t2, t0 | __asm ("clz t2, t0");
| if (a2 == 0) {
0x0000f0e4 bnez a2, 0xf0fc |
0x0000f0e8 addiu v0, zero, 1 | v0 = 1;
0x0000f0ec divu zero, v0, a2 | __asm ("divu zero, v0, a2");
0x0000f0f0 teq a2, zero, 7 | __asm ("teq a2, zero, 7");
0x0000f0f4 mflo t0 | __asm ("mflo t0");
0x0000f0f8 clz t2, t0 | __asm ("clz t2, t0");
| }
0x0000f0fc addiu t3, zero, 0x20 | t3 = 0x20;
| if (t2 == 0) {
0x0000f100 bnel t2, zero, 0xf328 | goto label_10;
| }
0x0000f104 subu a3, a1, t0 | __asm ("subu a3, a1, t0");
0x0000f108 srl v0, t0, 0x10 | v0 = t0 >> 0x10;
0x0000f10c andi v1, t0, 0xffff | v1 = t0 & 0xffff;
| label_1:
0x0000f110 divu zero, a3, v0 | __asm ("divu zero, a3, v0");
0x0000f114 teq v0, zero, 7 | __asm ("teq v0, zero, 7");
0x0000f118 srl a2, t3, 0x10 | a2 = t3 >> 0x10;
0x0000f11c mflo a1 | __asm ("mflo a1");
0x0000f120 mfhi a3 | __asm ("mfhi a3");
0x0000f124 mul a0, a1, v1 | __asm ("mul a0, a1, v1");
0x0000f128 sll a3, a3, 0x10 | a3 <<= 0x10;
0x0000f12c or a2, a3, a2 | a2 = a3 | a2;
0x0000f130 sltu a1, a2, a0 | a1 = (a2 < a0) ? 1 : 0;
| if (a1 != 0) {
0x0000f134 beql a1, zero, 0xf15c |
0x0000f138 subu a2, a2, a0 | __asm ("subu a2, a2, a0");
0x0000f13c addu a2, a2, t0 | a2 += t0;
0x0000f140 sltu a1, a2, t0 | a1 = (a2 < t0) ? 1 : 0;
0x0000f144 subu a2, a2, a0 | __asm ("subu a2, a2, a0");
| if (a1 == 0) {
0x0000f148 bnel a1, zero, 0xf15c | goto label_11;
| }
0x0000f14c sltu a1, a2, a0 | a1 = (a2 < a0) ? 1 : 0;
0x0000f150 addu a2, a2, t0 | a2 += t0;
| if (a1 != 0) {
0x0000f154 bnel a1, zero, 0xf158 |
| }
0x0000f158 subu a2, a2, a0 | __asm ("subu a2, a2, a0");
| }
| label_11:
0x0000f15c divu zero, a2, v0 | __asm ("divu zero, a2, v0");
0x0000f160 teq v0, zero, 7 | __asm ("teq v0, zero, 7");
0x0000f164 andi t3, t3, 0xffff | t3 &= 0xffff;
0x0000f168 mflo v0 | __asm ("mflo v0");
0x0000f16c mfhi a2 | __asm ("mfhi a2");
0x0000f170 mul v0, v0, v1 | __asm ("mul v0, v0, v1");
0x0000f174 sll v1, a2, 0x10 | v1 = a2 << 0x10;
0x0000f178 or v1, v1, t3 | v1 |= t3;
0x0000f17c sltu a0, v1, v0 | a0 = (v1 < v0) ? 1 : 0;
| if (a0 != 0) {
0x0000f180 beql a0, zero, 0xf1a8 |
0x0000f184 subu v0, v1, v0 | __asm ("subu v0, v1, v0");
0x0000f188 addu v1, v1, t0 | v1 += t0;
0x0000f18c sltu a0, v1, t0 | a0 = (v1 < t0) ? 1 : 0;
0x0000f190 subu v0, v1, v0 | __asm ("subu v0, v1, v0");
| if (a0 == 0) {
0x0000f194 bnel a0, zero, 0xf1a8 | goto label_12;
| }
0x0000f198 sltu a0, v1, v0 | a0 = (v1 < v0) ? 1 : 0;
0x0000f19c addu v1, v1, t0 | v1 += t0;
| if (a0 != 0) {
0x0000f1a0 bnel a0, zero, 0xf1a4 |
| }
0x0000f1a4 subu v0, v1, v0 | __asm ("subu v0, v1, v0");
| }
| label_12:
0x0000f1a8 srlv v0, v0, t2 | v0 >>= t2;
0x0000f1ac move v1, zero | v1 = 0;
0x0000f1b0 b 0xf0d8 |
| } while (1);
| label_6:
0x0000f1b4 sltu t0, a1, a3 | t0 = (a1 < a3) ? 1 : 0;
0x0000f1b8 move v0, a0 | v0 = a0;
| if (t0 != 0) {
0x0000f1bc bnez t0, 0xf0d8 | goto label_0;
| }
0x0000f1c0 clz t3, a3 | __asm ("clz t3, a3");
0x0000f1c4 addiu t4, zero, 0x20 | t4 = 0x20;
| if (t3 != 0) {
0x0000f1c8 bnez t3, 0xf1fc | goto label_13;
| }
0x0000f1cc sltu t0, a3, a1 | t0 = (a3 < a1) ? 1 : 0;
0x0000f1d0 subu v0, a0, a2 | __asm ("subu v0, a0, a2");
| if (t0 == 0) {
0x0000f1d4 bnel t0, zero, 0xf1e8 | goto label_14;
| }
0x0000f1d8 sltu t0, a0, a2 | t0 = (a0 < a2) ? 1 : 0;
| if (t0 != 0) {
0x0000f1dc bnez t0, 0xf0d8 | goto label_0;
| }
0x0000f1e0 nop |
0x0000f1e4 subu v0, a0, a2 | __asm ("subu v0, a0, a2");
| label_14:
0x0000f1e8 subu a1, a1, a3 | __asm ("subu a1, a1, a3");
0x0000f1ec sltu v1, a0, v0 | v1 = (a0 < v0) ? 1 : 0;
0x0000f1f0 subu v1, a1, v1 | __asm ("subu v1, a1, v1");
0x0000f1f4 jr ra | return v1;
0x0000f1f8 nop |
| label_13:
0x0000f1fc subu t4, t4, t3 | __asm ("subu t4, t4, t3");
0x0000f200 sllv a3, a3, t3 | a3 <<= t3;
0x0000f204 srlv t8, a2, t4 | t8 = a2 >> t4;
0x0000f208 or t8, t8, a3 | t8 |= a3;
0x0000f20c srlv t0, a1, t4 | t0 = a1 >> t4;
0x0000f210 srl t5, t8, 0x10 | t5 = t8 >> 0x10;
0x0000f214 divu zero, t0, t5 | __asm ("divu zero, t0, t5");
0x0000f218 teq t5, zero, 7 | __asm ("teq t5, zero, 7");
0x0000f21c andi a3, t8, 0xffff | a3 = t8 & 0xffff;
0x0000f220 sllv a1, a1, t3 | a1 <<= t3;
0x0000f224 srlv t0, a0, t4 | t0 = a0 >> t4;
0x0000f228 or t0, t0, a1 | t0 |= a1;
0x0000f22c srl a1, t0, 0x10 | a1 = t0 >> 0x10;
0x0000f230 sllv t1, a2, t3 | t1 = a2 << t3;
0x0000f234 sllv v0, a0, t3 | v0 = a0 << t3;
0x0000f238 mflo t6 | __asm ("mflo t6");
0x0000f23c mfhi t2 | __asm ("mfhi t2");
0x0000f240 mul v1, a3, t6 | __asm ("mul v1, a3, t6");
0x0000f244 sll t2, t2, 0x10 | t2 <<= 0x10;
0x0000f248 or a2, t2, a1 | a2 = t2 | a1;
0x0000f24c sltu a0, a2, v1 | a0 = (a2 < v1) ? 1 : 0;
| if (a0 != 0) {
0x0000f250 beql a0, zero, 0xf280 |
0x0000f254 subu a2, a2, v1 | __asm ("subu a2, a2, v1");
0x0000f258 addu a2, a2, t8 | a2 += t8;
0x0000f25c sltu a0, a2, t8 | a0 = (a2 < t8) ? 1 : 0;
0x0000f260 addiu a1, t6, -1 | a1 = t6 + -1;
| if (a0 != 0) {
0x0000f264 bnez a0, 0xf40c | goto label_15;
| }
0x0000f268 sltu a0, a2, v1 | a0 = (a2 < v1) ? 1 : 0;
| if (a0 != 0) {
0x0000f26c beql a0, zero, 0xf27c |
0x0000f270 move t6, a1 | t6 = a1;
0x0000f274 addiu t6, t6, -2 | t6 += -2;
0x0000f278 addu a2, a2, t8 | a2 += t8;
| }
| label_5:
0x0000f27c subu a2, a2, v1 | __asm ("subu a2, a2, v1");
| }
0x0000f280 divu zero, a2, t5 | __asm ("divu zero, a2, t5");
0x0000f284 teq t5, zero, 7 | __asm ("teq t5, zero, 7");
0x0000f288 andi t0, t0, 0xffff | t0 &= 0xffff;
0x0000f28c mflo a2 | __asm ("mflo a2");
0x0000f290 mfhi t5 | __asm ("mfhi t5");
0x0000f294 mul v1, a3, a2 | __asm ("mul v1, a3, a2");
0x0000f298 sll t5, t5, 0x10 | t5 <<= 0x10;
0x0000f29c or a3, t5, t0 | a3 = t5 | t0;
0x0000f2a0 sltu a0, a3, v1 | a0 = (a3 < v1) ? 1 : 0;
| if (a0 != 0) {
0x0000f2a4 beql a0, zero, 0xf2d4 |
0x0000f2a8 sll t6, t6, 0x10 | t6 <<= 0x10;
0x0000f2ac addu a3, a3, t8 | a3 += t8;
0x0000f2b0 sltu a0, a3, t8 | a0 = (a3 < t8) ? 1 : 0;
0x0000f2b4 addiu a1, a2, -1 | a1 = a2 + -1;
| if (a0 != 0) {
0x0000f2b8 bnez a0, 0xf404 | goto label_16;
| }
0x0000f2bc sltu a0, a3, v1 | a0 = (a3 < v1) ? 1 : 0;
| if (a0 != 0) {
0x0000f2c0 beql a0, zero, 0xf2d0 |
0x0000f2c4 move a2, a1 | a2 = a1;
0x0000f2c8 addiu a2, a2, -2 | a2 += -2;
0x0000f2cc addu a3, a3, t8 | a3 += t8;
| }
| label_4:
0x0000f2d0 sll t6, t6, 0x10 | t6 <<= 0x10;
| }
0x0000f2d4 or a2, t6, a2 | a2 = t6 | a2;
0x0000f2d8 multu a2, t1 | __asm ("multu a2, t1");
0x0000f2dc mfhi t7 | __asm ("mfhi t7");
0x0000f2e0 subu a3, a3, v1 | __asm ("subu a3, a3, v1");
0x0000f2e4 mflo t6 | __asm ("mflo t6");
0x0000f2e8 mflo a2 | __asm ("mflo a2");
0x0000f2ec sltu v1, a3, t7 | v1 = (a3 < t7) ? 1 : 0;
0x0000f2f0 move a1, t7 | a1 = t7;
| if (v1 != 0) {
0x0000f2f4 bnez v1, 0xf3f0 | goto label_17;
| }
| if (a3 == t7) {
0x0000f2f8 beql a3, t7, 0xf3e8 | goto label_18;
| }
0x0000f2fc sltu v1, v0, t6 | v1 = (v0 < t6) ? 1 : 0;
| label_3:
0x0000f300 subu a2, v0, a2 | __asm ("subu a2, v0, a2");
| label_2:
0x0000f304 subu a3, a3, a1 | __asm ("subu a3, a3, a1");
0x0000f308 sltu a1, v0, a2 | a1 = (v0 < a2) ? 1 : 0;
0x0000f30c subu a1, a3, a1 | __asm ("subu a1, a3, a1");
0x0000f310 sllv t4, a1, t4 | t4 = a1 << t4;
0x0000f314 srlv v0, a2, t3 | v0 = a2 >> t3;
0x0000f318 or v0, t4, v0 | v0 = t4 | v0;
0x0000f31c srlv v1, a1, t3 | v1 = a1 >> t3;
0x0000f320 jr ra | return v1;
0x0000f324 nop |
| label_10:
0x0000f328 subu t3, t3, t2 | __asm ("subu t3, t3, t2");
0x0000f32c sllv t0, t0, t2 | t0 <<= t2;
0x0000f330 srlv a2, a1, t3 | a2 = a1 >> t3;
0x0000f334 srl v0, t0, 0x10 | v0 = t0 >> 0x10;
0x0000f338 divu zero, a2, v0 | __asm ("divu zero, a2, v0");
0x0000f33c teq v0, zero, 7 | __asm ("teq v0, zero, 7");
0x0000f340 andi v1, t0, 0xffff | v1 = t0 & 0xffff;
0x0000f344 srlv t3, a0, t3 | t3 = a0 >> t3;
0x0000f348 sllv a1, a1, t2 | a1 <<= t2;
0x0000f34c or a1, t3, a1 | a1 = t3 | a1;
0x0000f350 srl t4, a1, 0x10 | t4 = a1 >> 0x10;
0x0000f354 sllv t3, a0, t2 | t3 = a0 << t2;
0x0000f358 mflo t1 | __asm ("mflo t1");
0x0000f35c mfhi a2 | __asm ("mfhi a2");
0x0000f360 mul a3, t1, v1 | __asm ("mul a3, t1, v1");
0x0000f364 sll a2, a2, 0x10 | a2 <<= 0x10;
0x0000f368 or t1, a2, t4 | t1 = a2 | t4;
0x0000f36c sltu a0, t1, a3 | a0 = (t1 < a3) ? 1 : 0;
| if (a0 != 0) {
0x0000f370 beql a0, zero, 0xf398 |
0x0000f374 subu t1, t1, a3 | __asm ("subu t1, t1, a3");
0x0000f378 addu t1, t1, t0 | t1 += t0;
0x0000f37c sltu a0, t1, t0 | a0 = (t1 < t0) ? 1 : 0;
0x0000f380 subu t1, t1, a3 | __asm ("subu t1, t1, a3");
| if (a0 == 0) {
0x0000f384 bnel a0, zero, 0xf398 | goto label_19;
| }
0x0000f388 sltu a0, t1, a3 | a0 = (t1 < a3) ? 1 : 0;
0x0000f38c addu t1, t1, t0 | t1 += t0;
| if (a0 != 0) {
0x0000f390 bnel a0, zero, 0xf394 |
| }
0x0000f394 subu t1, t1, a3 | __asm ("subu t1, t1, a3");
| }
| label_19:
0x0000f398 divu zero, t1, v0 | __asm ("divu zero, t1, v0");
0x0000f39c teq v0, zero, 7 | __asm ("teq v0, zero, 7");
0x0000f3a0 andi a0, a1, 0xffff | a0 = a1 & 0xffff;
0x0000f3a4 mflo a3 | __asm ("mflo a3");
0x0000f3a8 mfhi t1 | __asm ("mfhi t1");
0x0000f3ac mul a1, a3, v1 | __asm ("mul a1, a3, v1");
0x0000f3b0 sll a3, t1, 0x10 | a3 = t1 << 0x10;
0x0000f3b4 or a3, a3, a0 | a3 |= a0;
0x0000f3b8 sltu a0, a3, a1 | a0 = (a3 < a1) ? 1 : 0;
| if (a0 == 0) {
0x0000f3bc beql a0, zero, 0xf110 | goto label_1;
| }
0x0000f3c0 subu a3, a3, a1 | __asm ("subu a3, a3, a1");
0x0000f3c4 addu a3, a3, t0 | a3 += t0;
0x0000f3c8 sltu a0, a3, t0 | a0 = (a3 < t0) ? 1 : 0;
0x0000f3cc subu a3, a3, a1 | __asm ("subu a3, a3, a1");
| if (a0 == 0) {
0x0000f3d0 bnel a0, zero, 0xf110 | goto label_1;
| }
0x0000f3d4 sltu a0, a3, a1 | a0 = (a3 < a1) ? 1 : 0;
0x0000f3d8 addu a3, a3, t0 | a3 += t0;
| if (a0 != 0) {
0x0000f3dc bnel a0, zero, 0xf3e0 |
| }
0x0000f3e0 subu a3, a3, a1 | __asm ("subu a3, a3, a1");
0x0000f3e4 b 0xf110 | goto label_1;
| if (v1 == 0) {
| label_18:
0x0000f3e8 beql v1, zero, 0xf304 | goto label_2;
| }
0x0000f3ec subu a2, v0, a2 | __asm ("subu a2, v0, a2");
| label_17:
0x0000f3f0 subu a2, t6, t1 | __asm ("subu a2, t6, t1");
0x0000f3f4 subu t8, t7, t8 | __asm ("subu t8, t7, t8");
0x0000f3f8 sltu t6, t6, a2 | t6 = (t6 < a2) ? 1 : 0;
0x0000f3fc subu a1, t8, t6 | __asm ("subu a1, t8, t6");
0x0000f400 b 0xf300 | goto label_3;
| label_16:
0x0000f404 move a2, a1 | a2 = a1;
0x0000f408 b 0xf2d0 | goto label_4;
| label_15:
0x0000f40c move t6, a1 | t6 = a1;
0x0000f410 b 0xf27c | goto label_5;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/gstreamer-1.0/libgstartpec.so @ 0x107c0 */
| #include <stdint.h>
|
; (fcn) fcn.000107c0 () | void fcn_000107c0 () {
0x000107c0 lui gp, 2 |
0x000107c4 addiu gp, gp, -0x3770 |
0x000107c8 addu gp, gp, t9 | gp += t9;
0x000107cc srl t3, a1, 0x1f | t3 = a1 >> 0x1f;
0x000107d0 ext v1, a1, 0x14, 0xb | __asm ("ext v1, a1, 0x14, 0xb");
0x000107d4 move v0, a0 | v0 = a0;
0x000107d8 ext a1, a1, 0, 0x14 | __asm ("ext a1, a1, 0, 0x14");
0x000107dc move t4, t3 | t4 = t3;
| if (v1 == 0) {
0x000107e0 beqz v1, 0x109b4 | goto label_28;
| }
0x000107e4 addiu t0, zero, 0x7ff | t0 = 0x7ff;
0x000107e8 or t0, a1, a0 | t0 = a1 | a0;
| if (v1 == t0) {
0x000107ec beq v1, t0, 0x10a00 | goto label_29;
| }
0x000107f0 srl t0, a0, 0x1d | t0 = a0 >> 0x1d;
0x000107f4 sll a1, a1, 3 | a1 <<= 3;
0x000107f8 or a1, t0, a1 | a1 = t0 | a1;
0x000107fc lui t0, 0x80 | t0 = 0x800000;
0x00010800 addiu t2, v1, -0x3ff | t2 = v1 + -0x3ff;
0x00010804 or t0, a1, t0 | t0 = a1 | t0;
0x00010808 sll v0, a0, 3 | v0 = a0 << 3;
0x0001080c move v1, zero | v1 = 0;
0x00010810 move t6, zero | t6 = 0;
| label_2:
0x00010814 ext a0, a3, 0x14, 0xb | __asm ("ext a0, a3, 0x14, 0xb");
0x00010818 ext t1, a3, 0, 0x14 | __asm ("ext t1, a3, 0, 0x14");
0x0001081c srl a3, a3, 0x1f | a3 >>= 0x1f;
| if (a0 == 0) {
0x00010820 beqz a0, 0x1096c | goto label_30;
| }
0x00010824 addiu a1, zero, 0x7ff | a1 = 0x7ff;
0x00010828 or t5, t1, a2 | t5 = t1 | a2;
| if (a0 == a1) {
0x0001082c beq a0, a1, 0x1087c | goto label_31;
| }
0x00010830 sll a1, t1, 3 | a1 = t1 << 3;
0x00010834 srl t1, a2, 0x1d | t1 = a2 >> 0x1d;
0x00010838 or t1, t1, a1 | t1 |= a1;
0x0001083c addiu a0, a0, -0x3ff | a0 += -0x3ff;
0x00010840 lui a1, 0x80 | a1 = 0x800000;
0x00010844 or t1, t1, a1 | t1 |= a1;
0x00010848 sll t5, a2, 3 | t5 = a2 << 3;
0x0001084c subu t2, t2, a0 | __asm ("subu t2, t2, a0");
0x00010850 move a1, zero | a1 = 0;
| do {
| label_1:
0x00010854 sltiu a0, v1, 0x10 | a0 = (v1 < 0x10) ? 1 : 0;
0x00010858 xor t3, t3, a3 | t3 ^= a3;
| if (a0 == 0) {
0x0001085c beqz a0, 0x10ac0 | goto label_32;
| }
0x00010860 sll a0, v1, 2 | a0 = v1 << 2;
0x00010864 lw v1, -0x7fd8(gp) | v1 = *((gp - 8182));
0x00010868 addiu v1, v1, 0x4b50 | v1 += 0x4b50;
0x0001086c lwx v1, a0(v1) | __asm ("lwx v1, a0(v1)");
0x00010870 addu v1, v1, gp | v1 += gp;
0x00010874 jr v1 | v1 ();
0x00010878 nop |
| label_31:
0x0001087c addiu t2, t2, -0x7ff | t2 += -0x7ff;
| if (t5 != 0) {
0x00010880 bnez t5, 0x10a48 | goto label_33;
| }
0x00010884 ori v1, v1, 2 | v1 |= 2;
0x00010888 move t1, zero | t1 = 0;
0x0001088c addiu a1, zero, 2 | a1 = 2;
0x00010890 b 0x10854 |
| } while (1);
| do {
0x00010898 move a1, zero | a1 = 0;
0x0001089c move v0, zero | v0 = 0;
| label_0:
0x000108a0 move v1, zero | v1 = 0;
0x000108a4 ins v1, a1, 0, 0x14 | __asm ("ins v1, a1, 0, 0x14");
0x000108a8 ins v1, a0, 0x14, 0xb | __asm ("ins v1, a0, 0x14, 0xb");
0x000108ac ins v1, t3, 0x1f, 1 | __asm ("ins v1, t3, 0x1f, 1");
0x000108b0 jr ra | return v0;
| label_3:
0x000108e4 andi v1, v0, 7 | v1 = v0 & 7;
| if (a3 <= 0) {
0x000108e8 blez a3, 0x10d80 | goto label_34;
| }
0x000108ec andi v1, v0, 0xf | v1 = v0 & 0xf;
| if (v1 != 0) {
0x000108f0 bnez v1, 0x10e34 | goto label_35;
| }
0x000108f4 srl v0, v0, 3 | v0 >>= 3;
| label_14:
0x000108f8 ext v1, t0, 0x18, 1 | __asm ("ext v1, t0, 0x18, 1");
0x000108fc slti v1, a3, 0x7ff | v1 = (a3 < 0x7ff) ? 1 : 0;
| if (v1 != 0) {
0x00010900 beqz v1, 0x10918 |
0x00010904 lui v1, 0xfeff | v1 = 0xfeffffff;
0x00010908 ori v1, v1, 0xffff |
0x0001090c and t0, t0, v1 | t0 &= v1;
0x00010910 addiu a3, t2, 0x400 | a3 = t2 + 0x400;
0x00010914 slti v1, a3, 0x7ff | v1 = (a3 < 0x7ff) ? 1 : 0;
| }
0x00010918 beql v1, zero, 0x10898 |
| } while (v1 == 0);
0x0001091c addiu a0, zero, 0x7ff | a0 = 0x7ff;
0x00010920 sll v1, t0, 0x1d | v1 = t0 << 0x1d;
0x00010924 or v0, v1, v0 | v0 = v1 | v0;
0x00010928 ext a1, t0, 3, 0x14 | __asm ("ext a1, t0, 3, 0x14");
0x0001092c andi a0, a3, 0x7ff | a0 = a3 & 0x7ff;
0x00010930 b 0x108a0 | goto label_0;
| label_30:
0x0001096c or t5, t1, a2 | t5 = t1 | a2;
| if (t5 == 0) {
0x00010970 beql t5, zero, 0x10a3c | goto label_36;
| }
0x00010974 ori v1, v1, 1 | v1 |= 1;
| if (t1 == 0) {
0x00010978 beql t1, zero, 0x10cfc | goto label_37;
| }
0x0001097c clz a1, a2 | __asm ("clz a1, a2");
0x00010980 clz a0, t1 | __asm ("clz a0, t1");
0x00010984 addiu t7, a0, -0xb | t7 = a0 + -0xb;
| label_5:
0x00010988 addiu a1, zero, 0x1d | a1 = 0x1d;
0x0001098c addiu t5, a0, -8 | t5 = a0 + -8;
0x00010990 subu a1, a1, t7 | __asm ("subu a1, a1, t7");
0x00010994 sllv t1, t1, t5 | t1 <<= t5;
0x00010998 srlv a1, a2, a1 | a1 = a2 >> a1;
0x0001099c or t1, a1, t1 | t1 = a1 | t1;
0x000109a0 sllv t5, a2, t5 | t5 = a2 << t5;
| label_6:
0x000109a4 addu t2, a0, t2 | t2 = a0 + t2;
0x000109a8 addiu t2, t2, 0x3f3 | t2 += 0x3f3;
0x000109ac move a1, zero | a1 = 0;
0x000109b0 b 0x10854 | goto label_1;
| label_28:
0x000109b4 or t0, a1, a0 | t0 = a1 | a0;
0x000109b8 move v0, zero | v0 = 0;
| if (t0 == 0) {
0x000109bc beqz t0, 0x10a2c | goto label_38;
| }
| if (a1 == 0) {
0x000109c0 beql a1, zero, 0x10cdc | goto label_39;
| }
0x000109c4 clz t0, a0 | __asm ("clz t0, a0");
0x000109c8 clz v1, a1 | __asm ("clz v1, a1");
0x000109cc addiu t1, v1, -0xb | t1 = v1 + -0xb;
| do {
0x000109d0 addiu t0, zero, 0x1d | t0 = 0x1d;
0x000109d4 addiu v0, v1, -8 | v0 = v1 + -8;
0x000109d8 subu t0, t0, t1 | __asm ("subu t0, t0, t1");
0x000109dc sllv a1, a1, v0 | a1 <<= v0;
0x000109e0 srlv t0, a0, t0 | t0 = a0 >> t0;
0x000109e4 or t0, t0, a1 | t0 |= a1;
0x000109e8 sllv v0, a0, v0 | v0 = a0 << v0;
| label_4:
0x000109ec addiu t2, zero, -0x3f3 | t2 = -0x3f3;
0x000109f0 subu t2, t2, v1 | __asm ("subu t2, t2, v1");
0x000109f4 move t6, zero | t6 = 0;
0x000109f8 move v1, zero | v1 = 0;
0x000109fc b 0x10814 | goto label_2;
| label_29:
0x00010a00 move t0, a1 | t0 = a1;
| if (t0 != 0) {
0x00010a04 bnel t0, zero, 0x10a1c |
0x00010a08 move v0, zero | v0 = 0;
0x00010a0c addiu v1, zero, 8 | v1 = 8;
0x00010a10 addiu t2, zero, 0x7ff | t2 = 0x7ff;
0x00010a14 addiu t6, zero, 2 | t6 = 2;
0x00010a18 b 0x10814 | goto label_2;
| }
0x00010a1c addiu v1, zero, 0xc | v1 = 0xc;
0x00010a20 addiu t2, zero, 0x7ff | t2 = 0x7ff;
0x00010a24 addiu t6, zero, 3 | t6 = 3;
0x00010a28 b 0x10814 | goto label_2;
| label_38:
0x00010a2c addiu v1, zero, 4 | v1 = 4;
0x00010a30 move t2, zero | t2 = 0;
0x00010a34 addiu t6, zero, 1 | t6 = 1;
0x00010a38 b 0x10814 | goto label_2;
| label_36:
0x00010a3c move t1, zero | t1 = 0;
0x00010a40 addiu a1, zero, 1 | a1 = 1;
0x00010a44 b 0x10854 | goto label_1;
| label_33:
0x00010a48 ori v1, v1, 3 | v1 |= 3;
0x00010a4c move t5, a2 | t5 = a2;
0x00010a50 addiu a1, zero, 3 | a1 = 3;
0x00010a54 b 0x10854 | goto label_1;
| if (a3 == 0) {
| label_18:
0x00010a58 beql a3, zero, 0x10f5c | goto label_40;
| }
0x00010a5c addiu t2, zero, -0x3ff | t2 = -0x3ff;
0x00010a60 addiu v0, zero, -1 | v0 = -1;
0x00010a64 addiu a1, zero, 1 | a1 = 1;
| label_10:
0x00010a68 subu a1, a1, a3 | __asm ("subu a1, a1, a3");
0x00010a6c slti v1, a1, 0x39 | v1 = (a1 < 0x39) ? 1 : 0;
0x00010a70 slti v1, a1, 0x20 | v1 = (a1 < 0x20) ? 1 : 0;
| if (v1 == 0) {
0x00010a74 bnel v1, zero, 0x10e68 | goto label_41;
| }
0x00010a78 move a1, zero | a1 = 0;
0x00010a7c move v1, zero | v1 = 0;
0x00010a80 move a0, zero | a0 = 0;
0x00010a84 ins v1, a1, 0, 0x14 | __asm ("ins v1, a1, 0, 0x14");
0x00010a88 ins v1, a0, 0x14, 0xb | __asm ("ins v1, a0, 0x14, 0xb");
0x00010a8c move v0, zero | v0 = 0;
0x00010a90 ins v1, t3, 0x1f, 1 | __asm ("ins v1, t3, 0x1f, 1");
0x00010a94 jr ra | return v0;
| label_32:
0x00010ac0 sltu v1, t1, t0 | v1 = (t1 < t0) ? 1 : 0;
0x00010ac4 srl v1, v0, 1 | v1 = v0 >> 1;
| if (v1 != 0) {
0x00010ac8 bnez v1, 0x10d6c | goto label_42;
| }
0x00010acc sltu v1, v0, t5 | v1 = (v0 < t5) ? 1 : 0;
| if (t1 == t0) {
0x00010ad0 beq t1, t0, 0x10d60 | goto label_43;
| }
0x00010ad4 move a2, v0 | a2 = v0;
| label_8:
0x00010ad8 addiu t2, t2, -1 | t2 += -1;
0x00010adc move a1, t0 | a1 = t0;
0x00010ae0 move v0, zero | v0 = 0;
| label_9:
0x00010ae4 sll v1, t1, 8 | v1 = t1 << 8;
0x00010ae8 srl t1, t5, 0x18 | t1 = t5 >> 0x18;
0x00010aec or v1, t1, v1 | v1 = t1 | v1;
0x00010af0 srl t1, v1, 0x10 | t1 = v1 >> 0x10;
0x00010af4 divu zero, a1, t1 | __asm ("divu zero, a1, t1");
0x00010af8 teq t1, zero, 7 | __asm ("teq t1, zero, 7");
0x00010afc andi t4, v1, 0xffff | t4 = v1 & 0xffff;
0x00010b00 srl a3, a2, 0x10 | a3 = a2 >> 0x10;
0x00010b04 mflo t0 | __asm ("mflo t0");
0x00010b08 mfhi a0 | __asm ("mfhi a0");
0x00010b0c mul a1, t4, t0 | __asm ("mul a1, t4, t0");
0x00010b10 sll a0, a0, 0x10 | a0 <<= 0x10;
0x00010b14 or a3, a3, a0 | a3 |= a0;
0x00010b18 sltu a0, a3, a1 | a0 = (a3 < a1) ? 1 : 0;
0x00010b1c sll t5, t5, 8 | t5 <<= 8;
| if (a0 != 0) {
0x00010b20 beqz a0, 0x10b48 |
0x00010b24 addu a3, a3, v1 | a3 += v1;
0x00010b28 sltu a0, a3, v1 | a0 = (a3 < v1) ? 1 : 0;
0x00010b2c addiu t6, t0, -1 | t6 = t0 + -1;
| if (a0 != 0) {
0x00010b30 bnez a0, 0x10e58 | goto label_44;
| }
0x00010b34 sltu a0, a3, a1 | a0 = (a3 < a1) ? 1 : 0;
| if (a0 == 0) {
0x00010b38 beql a0, zero, 0x10b48 | goto label_15;
| }
0x00010b3c move t0, t6 | t0 = t6;
0x00010b40 addiu t0, t0, -2 | t0 += -2;
0x00010b44 addu a3, a3, v1 | a3 += v1;
| }
| label_15:
0x00010b48 subu a3, a3, a1 | __asm ("subu a3, a3, a1");
0x00010b4c divu zero, a3, t1 | __asm ("divu zero, a3, t1");
0x00010b50 teq t1, zero, 7 | __asm ("teq t1, zero, 7");
0x00010b54 andi a2, a2, 0xffff | a2 &= 0xffff;
0x00010b58 mflo a1 | __asm ("mflo a1");
0x00010b5c mfhi a3 | __asm ("mfhi a3");
0x00010b60 mul t6, t4, a1 | __asm ("mul t6, t4, a1");
0x00010b64 sll a0, a3, 0x10 | a0 = a3 << 0x10;
0x00010b68 or a0, a2, a0 | a0 = a2 | a0;
0x00010b6c sltu a2, a0, t6 | a2 = (a0 < t6) ? 1 : 0;
| if (a2 != 0) {
0x00010b70 beql a2, zero, 0x10ba0 |
0x00010b74 sll t0, t0, 0x10 | t0 <<= 0x10;
0x00010b78 addu a0, a0, v1 | a0 += v1;
0x00010b7c sltu a2, a0, v1 | a2 = (a0 < v1) ? 1 : 0;
0x00010b80 addiu a3, a1, -1 | a3 = a1 + -1;
| if (a2 != 0) {
0x00010b84 bnez a2, 0x10e60 | goto label_45;
| }
0x00010b88 sltu a2, a0, t6 | a2 = (a0 < t6) ? 1 : 0;
| if (a2 != 0) {
0x00010b8c beql a2, zero, 0x10b9c |
0x00010b90 move a1, a3 | a1 = a3;
0x00010b94 addiu a1, a1, -2 | a1 += -2;
0x00010b98 addu a0, a0, v1 | a0 += v1;
| }
| label_16:
0x00010b9c sll t0, t0, 0x10 | t0 <<= 0x10;
| }
0x00010ba0 or t0, t0, a1 | t0 |= a1;
0x00010ba4 multu t0, t5 | __asm ("multu t0, t5");
0x00010ba8 mfhi a3 | __asm ("mfhi a3");
0x00010bac subu a0, a0, t6 | __asm ("subu a0, a0, t6");
0x00010bb0 mflo a2 | __asm ("mflo a2");
0x00010bb4 sltu a1, a0, a3 | a1 = (a0 < a3) ? 1 : 0;
0x00010bb8 move t7, a3 | t7 = a3;
| if (a1 != 0) {
0x00010bbc bnez a1, 0x10d24 | goto label_46;
| }
0x00010bc0 sltu a1, v0, a2 | a1 = (v0 < a2) ? 1 : 0;
| if (a0 == a3) {
0x00010bc4 beq a0, a3, 0x10d1c | goto label_47;
| }
| label_21:
0x00010bc8 subu a0, a0, a3 | __asm ("subu a0, a0, a3");
| label_7:
0x00010bcc subu a2, v0, a2 | __asm ("subu a2, v0, a2");
0x00010bd0 sltu v0, v0, a2 | v0 = (v0 < a2) ? 1 : 0;
0x00010bd4 subu a0, a0, v0 | __asm ("subu a0, a0, v0");
0x00010bd8 addiu a3, t2, 0x3ff | a3 = t2 + 0x3ff;
| if (v1 == a0) {
0x00010bdc beq v1, a0, 0x10ec8 | goto label_48;
| }
0x00010be0 divu zero, a0, t1 | __asm ("divu zero, a0, t1");
0x00010be4 teq t1, zero, 7 | __asm ("teq t1, zero, 7");
0x00010be8 srl t6, a2, 0x10 | t6 = a2 >> 0x10;
0x00010bec mflo v0 | __asm ("mflo v0");
0x00010bf0 mfhi a0 | __asm ("mfhi a0");
0x00010bf4 mul t7, t4, v0 | __asm ("mul t7, t4, v0");
0x00010bf8 sll a1, a0, 0x10 | a1 = a0 << 0x10;
0x00010bfc or a1, t6, a1 | a1 = t6 | a1;
0x00010c00 sltu a0, a1, t7 | a0 = (a1 < t7) ? 1 : 0;
| if (a0 != 0) {
0x00010c04 beql a0, zero, 0x10c34 |
0x00010c08 subu a1, a1, t7 | __asm ("subu a1, a1, t7");
0x00010c0c addu a1, a1, v1 | a1 += v1;
0x00010c10 sltu a0, a1, v1 | a0 = (a1 < v1) ? 1 : 0;
0x00010c14 addiu t6, v0, -1 | t6 = v0 + -1;
| if (a0 != 0) {
0x00010c18 bnez a0, 0x10edc | goto label_49;
| }
0x00010c1c sltu a0, a1, t7 | a0 = (a1 < t7) ? 1 : 0;
| if (a0 != 0) {
0x00010c20 beql a0, zero, 0x10c30 |
0x00010c24 move v0, t6 | v0 = t6;
0x00010c28 addiu v0, v0, -2 | v0 += -2;
0x00010c2c addu a1, a1, v1 | a1 += v1;
| }
| label_19:
0x00010c30 subu a1, a1, t7 | __asm ("subu a1, a1, t7");
| }
0x00010c34 divu zero, a1, t1 | __asm ("divu zero, a1, t1");
0x00010c38 teq t1, zero, 7 | __asm ("teq t1, zero, 7");
0x00010c3c andi a2, a2, 0xffff | a2 &= 0xffff;
0x00010c40 mflo t1 | __asm ("mflo t1");
0x00010c44 mfhi a1 | __asm ("mfhi a1");
0x00010c48 mul t4, t4, t1 | __asm ("mul t4, t4, t1");
0x00010c4c sll a1, a1, 0x10 | a1 <<= 0x10;
0x00010c50 or a2, a2, a1 | a2 |= a1;
0x00010c54 sltu a0, a2, t4 | a0 = (a2 < t4) ? 1 : 0;
| if (a0 != 0) {
0x00010c58 beql a0, zero, 0x10c88 |
0x00010c5c sll v0, v0, 0x10 | v0 <<= 0x10;
0x00010c60 addu a2, a2, v1 | a2 += v1;
0x00010c64 sltu a0, a2, v1 | a0 = (a2 < v1) ? 1 : 0;
0x00010c68 addiu a1, t1, -1 | a1 = t1 + -1;
| if (a0 != 0) {
0x00010c6c bnez a0, 0x10ee4 | goto label_50;
| }
0x00010c70 sltu a0, a2, t4 | a0 = (a2 < t4) ? 1 : 0;
| if (a0 != 0) {
0x00010c74 beql a0, zero, 0x10c84 |
0x00010c78 move t1, a1 | t1 = a1;
0x00010c7c addiu t1, t1, -2 | t1 += -2;
0x00010c80 addu a2, a2, v1 | a2 += v1;
| }
| label_20:
0x00010c84 sll v0, v0, 0x10 | v0 <<= 0x10;
| }
0x00010c88 or v0, v0, t1 | v0 |= t1;
0x00010c8c multu t5, v0 | __asm ("multu t5, v0");
0x00010c90 mfhi a1 | __asm ("mfhi a1");
0x00010c94 subu a2, a2, t4 | __asm ("subu a2, a2, t4");
0x00010c98 mflo a0 | __asm ("mflo a0");
0x00010c9c mflo t6 | __asm ("mflo t6");
0x00010ca0 sltu t4, a2, a1 | t4 = (a2 < a1) ? 1 : 0;
0x00010ca4 move t1, a1 | t1 = a1;
| if (t4 == 0) {
0x00010ca8 beqz t4, 0x10e00 | goto label_51;
| }
0x00010cac addu a2, v1, a2 | a2 = v1 + a2;
0x00010cb0 sltu t4, a2, v1 | t4 = (a2 < v1) ? 1 : 0;
| label_11:
0x00010cb4 addiu t7, v0, -1 | t7 = v0 + -1;
| if (t4 != 0) {
0x00010cb8 bnez t4, 0x10f2c | goto label_52;
| }
0x00010cbc sltu t4, a2, a1 | t4 = (a2 < a1) ? 1 : 0;
0x00010cc0 sll a0, t5, 1 | a0 = t5 << 1;
| if (t4 == 0) {
0x00010cc4 bnel t4, zero, 0x10f00 | goto label_26;
| }
| if (a2 == t1) {
0x00010cc8 beql a2, t1, 0x10f64 | goto label_53;
| }
0x00010ccc sltu a0, t5, a0 | a0 = (t5 < a0) ? 1 : 0;
0x00010cd0 move v0, t7 | v0 = t7;
0x00010cd4 ori v0, v0, 1 | v0 |= 1;
0x00010cd8 b 0x108e4 | goto label_3;
| label_39:
0x00010cdc addiu t1, t0, 0x15 | t1 = t0 + 0x15;
0x00010ce0 slti v0, t1, 0x1d | v0 = (t1 < 0x1d) ? 1 : 0;
0x00010ce4 addiu v1, t0, 0x20 | v1 = t0 + 0x20;
0x00010ce8 bnez v0, 0x109d0 |
| } while (v0 != 0);
0x00010cec addiu t0, t0, -8 | t0 += -8;
0x00010cf0 sllv t0, a0, t0 | t0 = a0 << t0;
0x00010cf4 move v0, zero | v0 = 0;
0x00010cf8 b 0x109ec | goto label_4;
| label_37:
0x00010cfc addiu t7, a1, 0x15 | t7 = a1 + 0x15;
0x00010d00 slti t5, t7, 0x1d | t5 = (t7 < 0x1d) ? 1 : 0;
0x00010d04 addiu a0, a1, 0x20 | a0 = a1 + 0x20;
| if (t5 != 0) {
0x00010d08 bnez t5, 0x10988 | goto label_5;
| }
0x00010d0c addiu t1, a1, -8 | t1 = a1 + -8;
0x00010d10 move t5, zero | t5 = 0;
0x00010d14 sllv t1, a2, t1 | t1 = a2 << t1;
0x00010d18 b 0x109a4 | goto label_6;
| if (a1 == 0) {
| label_47:
0x00010d1c beql a1, zero, 0x10bcc | goto label_7;
| }
0x00010d20 move a0, zero | a0 = 0;
| label_46:
0x00010d24 addu v0, v0, t5 | v0 += t5;
0x00010d28 sltu t6, v0, t5 | t6 = (v0 < t5) ? 1 : 0;
0x00010d2c addu a1, t6, v1 | a1 = t6 + v1;
0x00010d30 addu a0, a1, a0 | a0 = a1 + a0;
0x00010d34 sltu a1, v1, a0 | a1 = (v1 < a0) ? 1 : 0;
0x00010d38 addiu t8, t0, -1 | t8 = t0 + -1;
| if (a1 == 0) {
0x00010d3c beqz a1, 0x10e18 | goto label_54;
| }
0x00010d40 sltu a1, a0, a3 | a1 = (a0 < a3) ? 1 : 0;
| label_13:
0x00010d44 addu v0, v0, t5 | v0 += t5;
| if (a1 == 0) {
0x00010d48 bnel a1, zero, 0x10eec | goto label_55;
| }
0x00010d4c sltu a1, v0, a2 | a1 = (v0 < a2) ? 1 : 0;
| if (t7 == a0) {
0x00010d50 beq t7, a0, 0x10eb4 | goto label_56;
| }
0x00010d54 subu a0, a0, a3 | __asm ("subu a0, a0, a3");
| label_12:
0x00010d58 move t0, t8 | t0 = t8;
0x00010d5c b 0x10bcc | goto label_7;
| label_43:
0x00010d60 move a2, v0 | a2 = v0;
| if (v1 == 0) {
0x00010d64 bnel v1, zero, 0x10ad8 | goto label_8;
| }
0x00010d68 srl v1, v0, 1 | v1 = v0 >> 1;
| label_42:
0x00010d6c sll a2, t0, 0x1f | a2 = t0 << 0x1f;
0x00010d70 srl a1, t0, 1 | a1 = t0 >> 1;
0x00010d74 or a2, a2, v1 | a2 |= v1;
0x00010d78 sll v0, v0, 0x1f | v0 <<= 0x1f;
0x00010d7c b 0x10ae4 | goto label_9;
| label_34:
0x00010d80 addiu a1, zero, 1 | a1 = 1;
| if (a3 == 0) {
0x00010d84 bnel a3, zero, 0x10a68 | goto label_10;
| }
| label_25:
0x00010d88 addiu a1, zero, 1 | a1 = 1;
| label_17:
0x00010d8c addiu t2, t2, 0x41e | t2 += 0x41e;
0x00010d90 srlv a0, v0, a1 | a0 = v0 >> a1;
0x00010d94 sllv v1, t0, t2 | v1 = t0 << t2;
0x00010d98 sllv v0, v0, t2 | v0 <<= t2;
0x00010d9c sltu v0, zero, v0 | v0 = (0 < v0) ? 1 : 0;
0x00010da0 or v1, v1, a0 | v1 |= a0;
0x00010da4 or v1, v1, v0 | v1 |= v0;
0x00010da8 andi v0, v1, 7 | v0 = v1 & 7;
0x00010dac srlv a1, t0, a1 | a1 = t0 >> a1;
| if (v0 != 0) {
0x00010db0 beqz v0, 0x10dd4 |
0x00010db4 andi v0, v1, 0xf | v0 = v1 & 0xf;
0x00010db8 addiu a0, zero, 4 | a0 = 4;
0x00010dbc ext v0, a1, 0x17, 1 | __asm ("ext v0, a1, 0x17, 1");
| if (v0 == a0) {
0x00010dc0 beq v0, a0, 0x10dd8 | goto label_57;
| }
| label_23:
0x00010dc4 addiu v0, v1, 4 | v0 = v1 + 4;
0x00010dc8 sltu v1, v0, v1 | v1 = (v0 < v1) ? 1 : 0;
0x00010dcc addu a1, a1, v1 | a1 += v1;
0x00010dd0 move v1, v0 | v1 = v0;
| }
0x00010dd4 ext v0, a1, 0x17, 1 | __asm ("ext v0, a1, 0x17, 1");
| if (v0 == 0) {
| label_57:
0x00010dd8 beql v0, zero, 0x10f54 | goto label_58;
| }
0x00010ddc sll v0, a1, 0x1d | v0 = a1 << 0x1d;
0x00010de0 addiu a0, zero, 1 | a0 = 1;
0x00010de4 move a1, zero | a1 = 0;
0x00010de8 move v0, zero | v0 = 0;
0x00010dec b 0x108a0 | goto label_0;
| label_51:
0x00010e00 ori v0, v0, 1 | v0 |= 1;
| if (a2 == a1) {
0x00010e04 bnel a2, a1, 0x108e4 | goto label_3;
| }
0x00010e08 addu a2, v1, a2 | a2 = v1 + a2;
| if (a0 == 0) {
0x00010e0c beqz a0, 0x108e4 | goto label_3;
| }
0x00010e10 sltu t4, a2, v1 | t4 = (a2 < v1) ? 1 : 0;
0x00010e14 b 0x10cb4 | goto label_11;
| label_54:
0x00010e18 subu a0, a0, a3 | __asm ("subu a0, a0, a3");
| if (v1 == a0) {
0x00010e1c bnel v1, a0, 0x10d58 | goto label_12;
| }
0x00010e20 sltu a1, a0, a3 | a1 = (a0 < a3) ? 1 : 0;
| if (t6 == 0) {
0x00010e24 beqz t6, 0x10d44 | goto label_13;
| }
0x00010e28 subu a0, v1, a3 | __asm ("subu a0, v1, a3");
0x00010e2c move t0, t8 | t0 = t8;
0x00010e30 b 0x10bcc | goto label_7;
| label_35:
0x00010e34 addiu a0, zero, 4 | a0 = 4;
| if (v1 == a0) {
0x00010e38 beql v1, a0, 0x108f8 | goto label_14;
| }
0x00010e3c srl v0, v0, 3 | v0 >>= 3;
0x00010e40 sltiu v1, v0, -4 | v1 = (v0 < -4) ? 1 : 0;
0x00010e44 xori v1, v1, 1 | v1 ^= 1;
0x00010e48 addiu v0, v0, 4 | v0 += 4;
0x00010e4c srl v0, v0, 3 | v0 >>= 3;
0x00010e50 addu t0, t0, v1 | t0 += v1;
0x00010e54 b 0x108f8 | goto label_14;
| label_44:
0x00010e58 move t0, t6 | t0 = t6;
0x00010e5c b 0x10b48 | goto label_15;
| label_45:
0x00010e60 move a1, a3 | a1 = a3;
0x00010e64 b 0x10b9c | goto label_16;
| label_41:
0x00010e68 addiu v1, zero, -0x1f | v1 = -0x1f;
| if (v1 != 0) {
0x00010e6c bnez v1, 0x10d8c | goto label_17;
| }
0x00010e70 subu v1, v1, a3 | __asm ("subu v1, v1, a3");
0x00010e74 addiu a0, zero, 0x20 | a0 = 0x20;
0x00010e78 srlv v1, t0, v1 | v1 = t0 >> v1;
| if (a1 != a0) {
0x00010e7c beq a1, a0, 0x10e8c |
0x00010e80 addiu a1, t2, 0x43e | a1 = t2 + 0x43e;
0x00010e84 sllv a1, t0, a1 | a1 = t0 << a1;
0x00010e88 or v0, v0, a1 | v0 |= a1;
| }
0x00010e8c sltu v0, zero, v0 | v0 = (0 < v0) ? 1 : 0;
0x00010e90 or v1, v0, v1 | v1 = v0 | v1;
0x00010e94 andi v0, v1, 7 | v0 = v1 & 7;
0x00010e98 andi v0, v1, 0xf | v0 = v1 & 0xf;
| if (v0 == 0) {
0x00010e9c bnel v0, zero, 0x10f44 | goto label_59;
| }
0x00010ea0 move a1, zero | a1 = 0;
| label_24:
0x00010ea4 srl v1, v1, 3 | v1 >>= 3;
0x00010ea8 or v0, v1, v0 | v0 = v1 | v0;
0x00010eac move a0, zero | a0 = 0;
0x00010eb0 b 0x108a0 | goto label_0;
| label_56:
0x00010eb4 addu v0, v0, t5 | v0 += t5;
| if (a1 == 0) {
0x00010eb8 bnel a1, zero, 0x10eec | goto label_55;
| }
0x00010ebc move t0, t8 | t0 = t8;
0x00010ec0 move a0, zero | a0 = 0;
0x00010ec4 b 0x10bcc | goto label_7;
| label_48:
0x00010ec8 addiu v1, zero, 1 | v1 = 1;
| if (a3 <= 0) {
0x00010ecc blez a3, 0x10a58 | goto label_18;
| }
0x00010ed0 move v0, zero | v0 = 0;
0x00010ed4 addu t0, t0, v1 | t0 += v1;
0x00010ed8 b 0x108f8 | goto label_14;
| label_49:
0x00010edc move v0, t6 | v0 = t6;
0x00010ee0 b 0x10c30 | goto label_19;
| label_50:
0x00010ee4 move t1, a1 | t1 = a1;
0x00010ee8 b 0x10c84 | goto label_20;
| label_55:
0x00010eec sltu a1, v0, t5 | a1 = (v0 < t5) ? 1 : 0;
0x00010ef0 addu a1, a1, v1 | a1 += v1;
0x00010ef4 addu a0, a1, a0 | a0 = a1 + a0;
0x00010ef8 addiu t0, t0, -2 | t0 += -2;
0x00010efc b 0x10bc8 | goto label_21;
| label_26:
0x00010f00 sltu t5, a0, t5 | t5 = (a0 < t5) ? 1 : 0;
0x00010f04 addu v1, t5, v1 | v1 = t5 + v1;
0x00010f08 addiu v0, v0, -2 | v0 += -2;
0x00010f0c addu a2, a2, v1 | a2 += v1;
0x00010f10 move t5, a0 | t5 = a0;
| label_22:
0x00010f14 ori v0, v0, 1 | v0 |= 1;
| if (a2 == t1) {
0x00010f18 bnel a2, t1, 0x108e4 | goto label_3;
| }
| label_27:
0x00010f1c ori v0, v0, 1 | v0 |= 1;
| if (t6 == t5) {
0x00010f20 bnel t6, t5, 0x108e4 | goto label_3;
| }
0x00010f24 b 0x108e4 | goto label_3;
0x00010f28 nop |
| label_52:
0x00010f2c move v0, t7 | v0 = t7;
0x00010f30 b 0x10f14 | goto label_22;
| label_59:
0x00010f44 addiu a0, zero, 4 | a0 = 4;
0x00010f48 move a1, zero | a1 = 0;
| if (v0 != a0) {
0x00010f4c bne v0, a0, 0x10dc4 | goto label_23;
| }
0x00010f50 sll v0, a1, 0x1d | v0 = a1 << 0x1d;
| label_58:
0x00010f54 ext a1, a1, 3, 0x14 | __asm ("ext a1, a1, 3, 0x14");
0x00010f58 b 0x10ea4 | goto label_24;
| label_40:
0x00010f5c addiu v0, zero, -1 | v0 = -1;
0x00010f60 b 0x10d88 | goto label_25;
| label_53:
0x00010f64 sll a0, t5, 1 | a0 = t5 << 1;
| if (a0 != 0) {
0x00010f68 bnez a0, 0x10f00 | goto label_26;
| }
0x00010f6c move v0, t7 | v0 = t7;
0x00010f70 b 0x10f1c | goto label_27;
| }
[*] Function fprintf used 1 times libgstartpec.so