[*] Binary protection state of libavformat.so.58.29.100
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function system tear down of libavformat.so.58.29.100
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libavformat.so.58.29.100 @ 0x67f4 */
| #include <stdint.h>
|
; (fcn) entry.fini0 () | void entry_fini0 () {
0x000067f4 lui gp, 8 |
0x000067f8 addiu gp, gp, -0x6e4 |
0x000067fc addu gp, gp, t9 | gp += t9;
0x00006800 addiu sp, sp, -0x20 |
0x00006804 sw s0, 0x18(sp) | *(var_18h) = s0;
0x00006808 lw s0, -0x7fe4(gp) | s0 = *((gp - 8185));
0x0000680c sw gp, 0x10(sp) | *(var_10h) = gp;
0x00006810 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x00006814 lbu v0, -0x1750(s0) | v0 = *((s0 - 5968));
0x00006818 nop |
0x0000681c lw v0, -0x78a0(gp) | v0 = *((gp - 7720));
0x00006820 lw v0, -0x7fe0(gp) | v0 = *((gp - 8184));
| if (v0 != 0) {
0x00006824 beqz v0, 0x6838 |
0x00006828 nop |
0x0000682c lw a0, (v0) | a0 = *(v0);
0x00006830 jalr t9 | t9 ();
0x00006834 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00006838 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x0000683c addiu t9, t9, 0x6770 | t9 += entry0;
0x00006840 bal 0x6770 | entry0 ();
0x00006844 nop |
0x00006848 addiu v0, zero, 1 | v0 = 1;
0x0000684c sb v0, -0x1750(s0) | *((s0 - 5968)) = v0;
0x00006850 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x00006854 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00006858 addiu sp, sp, 0x20 |
0x0000685c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libavformat.so.58.29.100 @ 0x2dc2c */
| #include <stdint.h>
|
; (fcn) fcn.0002dc2c () | void fcn_0002dc2c () {
0x0002dc2c lui gp, 6 |
0x0002dc30 addiu gp, gp, -0x7b1c |
0x0002dc34 addu gp, gp, t9 | gp += t9;
0x0002dc38 lw v0, -0x7904(gp) | v0 = *((gp - 7745));
0x0002dc3c addiu sp, sp, -0x80 |
0x0002dc40 lw t9, -0x7f48(gp) | t9 = *((gp - 8146));
0x0002dc44 sw s5, 0x6c(sp) | *(var_6ch) = s5;
0x0002dc48 sw v0, 0x4c(sp) | *(var_4ch) = v0;
0x0002dc4c lw s5, 0x78(a1) | s5 = *((a1 + 30));
0x0002dc50 lw v0, (v0) | v0 = *(v0);
0x0002dc54 addiu v1, zero, 1 | v1 = 1;
0x0002dc58 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0002dc5c sw a0, 0x34(sp) | *(var_34h) = a0;
0x0002dc60 sw ra, 0x7c(sp) | *(var_7ch) = ra;
0x0002dc64 sw fp, 0x78(sp) | *(var_78h) = fp;
0x0002dc68 sw s7, 0x74(sp) | *(var_74h) = s7;
0x0002dc6c sw s6, 0x70(sp) | *(var_70h) = s6;
0x0002dc70 sw s4, 0x68(sp) | *(var_68h) = s4;
0x0002dc74 sw s3, 0x64(sp) | *(var_64h) = s3;
0x0002dc78 sw s2, 0x60(sp) | *(var_60h) = s2;
0x0002dc7c sw s1, 0x5c(sp) | *(var_5ch) = s1;
0x0002dc80 sw s0, 0x58(sp) | *(var_58h) = s0;
0x0002dc84 sw a1, 0x40(sp) | *(var_40h) = a1;
0x0002dc88 sw v1, 0x10(sp) | *(var_10h) = v1;
0x0002dc8c move a2, zero | a2 = 0;
0x0002dc90 move a3, zero | a3 = 0;
0x0002dc94 sw v0, 0x54(sp) | *(var_54h) = v0;
0x0002dc98 bal 0xea30 | sym_avio_seek ();
0x0002dc9c nop |
0x0002dca0 lw a0, 0x10(s5) | a0 = *((s5 + 4));
0x0002dca4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002dca8 sw v0, 0x38(sp) | *(var_38h) = v0;
0x0002dcac sw v1, 0x3c(sp) | *(var_3ch) = v1;
| if (a0 > 0) {
0x0002dcb0 blez a0, 0x2dcd4 |
0x0002dcb4 lw t9, -0x7f48(gp) | t9 = *((gp - 8146));
0x0002dcb8 lw a2, (s5) | a2 = *(s5);
0x0002dcbc lw a3, 4(s5) | a3 = *((s5 + 1));
0x0002dcc0 lw a0, 0x34(sp) | a0 = *(var_34h);
0x0002dcc4 sw zero, 0x10(sp) | *(var_10h) = 0;
0x0002dcc8 bal 0xea30 | sym_avio_seek ();
0x0002dccc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v1 < 0) {
0x0002dcd0 bltz v1, 0x2e048 | goto label_2;
| }
| }
0x0002dcd4 lw t9, -0x7fa8(gp) | t9 = *((gp - 8170));
0x0002dcd8 addiu v0, sp, 0x50 | v0 = sp + 0x50;
0x0002dcdc sw v0, 0x48(sp) | *(var_48h) = v0;
0x0002dce0 move a0, v0 | a0 = v0;
0x0002dce4 bal 0x1187c | sym_avio_open_dyn_buf ();
0x0002dce8 lw v1, 0x40(sp) | v1 = *(var_40h);
0x0002dcec lw gp, 0x18(sp) | gp = *(var_18h);
0x0002dcf0 addiu v1, v1, 0xfc | v1 += 0xfc;
0x0002dcf4 sw v1, 0x44(sp) | *(var_44h) = v1;
| if (v0 < 0) {
0x0002dcf8 bltz v0, 0x2e048 | goto label_2;
| }
0x0002dcfc lw s0, 0x34(sp) | s0 = *(var_34h);
0x0002dd00 lw t9, -0x7f88(gp) | t9 = *((gp - 8162));
0x0002dd04 addiu a1, zero, 0x11 | a1 = 0x11;
0x0002dd08 move a0, s0 | a0 = s0;
0x0002dd0c jalr t9 | t9 ();
0x0002dd10 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002dd14 addiu a1, zero, 0x4d | a1 = 0x4d;
0x0002dd18 lw t9, -0x7f88(gp) | t9 = *((gp - 8162));
0x0002dd1c move a0, s0 | a0 = s0;
0x0002dd20 jalr t9 | t9 ();
0x0002dd24 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002dd28 addiu a1, zero, 0x9b | a1 = 0x9b;
0x0002dd2c lw t9, -0x7f88(gp) | t9 = *((gp - 8162));
0x0002dd30 move a0, s0 | a0 = s0;
0x0002dd34 jalr t9 | t9 ();
0x0002dd38 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002dd3c addiu a1, zero, 0x74 | a1 = 0x74;
0x0002dd40 lw t9, -0x7f88(gp) | t9 = *((gp - 8162));
0x0002dd44 move a0, s0 | a0 = s0;
0x0002dd48 jalr t9 | t9 ();
0x0002dd4c lw v0, 0x40(sp) | v0 = *(var_40h);
0x0002dd50 lw v0, 0xfc(v0) | v0 = *((v0 + 63));
0x0002dd54 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0002dd58 bnez v0, 0x2e05c | goto label_3;
| }
| label_1:
0x0002dd5c lw v0, 0x1c(s5) | v0 = *((s5 + 7));
0x0002dd60 lw v0, -0x7d90(gp) | v0 = *((gp - 8036));
| if (v0 <= 0) {
0x0002dd64 blez v0, 0x2df24 | goto label_4;
| }
0x0002dd68 lui s6, 0x9249 | s6 = 0x92490000;
0x0002dd6c addiu v0, v0, -0x46dc | v0 += -0x46dc;
0x0002dd70 sw v0, 0x2c(sp) | *(var_2ch_2) = v0;
0x0002dd74 lw v0, -0x7d90(gp) | v0 = *((gp - 8036));
0x0002dd78 move s4, zero | s4 = 0;
0x0002dd7c addiu v0, v0, -0x4f74 | v0 += -0x4f74;
0x0002dd80 sw v0, 0x30(sp) | *(var_30h_2) = v0;
0x0002dd84 addiu s7, zero, 1 | s7 = 1;
0x0002dd88 addiu s6, s6, 0x2493 | s6 += 0x2493;
0x0002dd8c addiu s3, zero, -8 | s3 = -8;
| label_0:
0x0002dd90 lw s0, 0x50(sp) | s0 = *(var_50h);
0x0002dd94 lw t9, -0x7f88(gp) | t9 = *((gp - 8162));
0x0002dd98 lw s1, 0x18(s5) | s1 = *((s5 + 6));
0x0002dd9c sll v0, s4, 4 | v0 = s4 << 4;
0x0002dda0 move a0, s0 | a0 = s0;
0x0002dda4 addiu a1, zero, 0x4d | a1 = 0x4d;
0x0002dda8 addu s1, s1, v0 | s1 += v0;
0x0002ddac jalr t9 | t9 ();
0x0002ddb0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002ddb4 move a0, s0 | a0 = s0;
0x0002ddb8 addiu a1, zero, 0xbb | a1 = 0xbb;
0x0002ddbc lw t9, -0x7f88(gp) | t9 = *((gp - 8162));
0x0002ddc0 addiu fp, zero, 0x1e | fp = 0x1e;
0x0002ddc4 jalr t9 | t9 ();
0x0002ddc8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002ddcc move a0, s0 | a0 = s0;
0x0002ddd0 lw t9, -0x7f88(gp) | t9 = *((gp - 8162));
0x0002ddd4 addiu a1, zero, 0xff | a1 = 0xff;
0x0002ddd8 jalr t9 | t9 ();
0x0002dddc lw gp, 0x18(sp) | gp = *(var_18h);
0x0002dde0 addiu a1, zero, 0xff | a1 = 0xff;
0x0002dde4 move a0, s0 | a0 = s0;
0x0002dde8 lw t9, -0x7d8c(gp) | t9 = *((gp - 8035));
0x0002ddec move a2, zero | a2 = 0;
0x0002ddf0 jalr t9 | t9 ();
0x0002ddf4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002ddf8 move a2, zero | a2 = 0;
0x0002ddfc move a3, zero | a3 = 0;
0x0002de00 lw t9, -0x7f48(gp) | t9 = *((gp - 8146));
0x0002de04 move a0, s0 | a0 = s0;
0x0002de08 sw s7, 0x10(sp) | *(var_10h) = s7;
0x0002de0c bal 0xea30 | sym_avio_seek ();
0x0002de10 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002de14 lw s0, 0x50(sp) | s0 = *(var_50h);
0x0002de18 sw v1, 0x24(sp) | *(var_24h_2) = v1;
0x0002de1c lw t9, -0x7f88(gp) | t9 = *((gp - 8162));
0x0002de20 move a0, s0 | a0 = s0;
0x0002de24 sw v0, 0x20(sp) | *(var_20h_2) = v0;
0x0002de28 addiu a1, zero, 0x53 | a1 = 0x53;
0x0002de2c jalr t9 | t9 ();
0x0002de30 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002de34 move a0, s0 | a0 = s0;
0x0002de38 lw t9, -0x7f88(gp) | t9 = *((gp - 8162));
0x0002de3c addiu a1, zero, 0xab | a1 = 0xab;
0x0002de40 jalr t9 | t9 ();
0x0002de44 lw v0, (s1) | v0 = *(s1);
0x0002de48 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002de4c addiu v0, v0, 1 | v0++;
0x0002de50 ori v0, v0, 1 | v0 |= 1;
0x0002de54 clz v0, v0 | __asm ("clz v0, v0");
0x0002de58 subu v0, fp, v0 | __asm ("subu v0, fp, v0");
0x0002de5c mult v0, s6 | __asm ("mult v0, s6");
0x0002de60 mfhi a1 | __asm ("mfhi a1");
0x0002de64 lw a0, 0x50(sp) | a0 = *(var_50h);
0x0002de68 lw t9, -0x7f88(gp) | t9 = *((gp - 8162));
0x0002de6c addu a1, a1, v0 | a1 += v0;
0x0002de70 sra a1, a1, 2 | a1 >>= 2;
0x0002de74 sra v0, v0, 0x1f | v0 >>= 0x1f;
0x0002de78 subu v0, a1, v0 | __asm ("subu v0, a1, v0");
0x0002de7c addiu a1, v0, 1 | a1 = v0 + 1;
0x0002de80 ori a1, a1, 0x80 | a1 |= 0x80;
0x0002de84 jalr t9 | t9 ();
0x0002de88 lw s0, (s1) | s0 = *(s1);
0x0002de8c lw gp, 0x18(sp) | gp = *(var_18h);
0x0002de90 addiu v1, s0, 1 | v1 = s0 + 1;
0x0002de94 ori v1, v1, 1 | v1 |= 1;
0x0002de98 clz v1, v1 | __asm ("clz v1, v1");
0x0002de9c subu v1, fp, v1 | __asm ("subu v1, fp, v1");
0x0002dea0 mult v1, s6 | __asm ("mult v1, s6");
0x0002dea4 mfhi v0 | __asm ("mfhi v0");
0x0002dea8 lw s2, 0x50(sp) | s2 = *(var_50h);
0x0002deac addu v0, v0, v1 | v0 += v1;
0x0002deb0 sra v0, v0, 2 | v0 >>= 2;
0x0002deb4 sra v1, v1, 0x1f | v1 >>= 0x1f;
0x0002deb8 subu v0, v0, v1 | __asm ("subu v0, v0, v1");
0x0002debc sll fp, v0, 3 | fp = v0 << 3;
| do {
0x0002dec0 lw t9, -0x7f88(gp) | t9 = *((gp - 8162));
0x0002dec4 srlv a1, s0, fp | a1 = s0 >> fp;
0x0002dec8 andi a1, a1, 0xff | a1 &= 0xff;
0x0002decc move a0, s2 | a0 = s2;
0x0002ded0 addiu fp, fp, -8 | fp += -8;
0x0002ded4 jalr t9 | t9 ();
0x0002ded8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002dedc bne fp, s3, 0x2dec0 |
| } while (fp != s3);
0x0002dee0 lw a2, 8(s1) | a2 = *((s1 + 2));
0x0002dee4 lw a3, 0xc(s1) | a3 = *((s1 + 3));
0x0002dee8 lw a0, 0x50(sp) | a0 = *(var_50h);
0x0002deec lw t9, 0x2c(sp) | t9 = *(var_2ch_2);
0x0002def0 addiu a1, zero, 0x53ac | a1 = 0x53ac;
0x0002def4 jalr t9 | t9 ();
0x0002def8 lw a0, 0x50(sp) | a0 = *(var_50h);
0x0002defc lw a2, 0x20(sp) | a2 = *(var_20h_2);
0x0002df00 lw a3, 0x24(sp) | a3 = *(var_24h_2);
0x0002df04 lw t9, 0x30(sp) | t9 = *(var_30h_2);
0x0002df08 sw s7, 0x10(sp) | *(var_10h) = s7;
0x0002df0c jalr t9 | t9 ();
0x0002df10 lw v0, 0x1c(s5) | v0 = *((s5 + 7));
0x0002df14 addiu s4, s4, 1 | s4++;
0x0002df18 slt v0, s4, v0 | v0 = (s4 < v0) ? 1 : 0;
0x0002df1c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0002df20 bnez v0, 0x2dd90 | goto label_0;
| }
| label_4:
0x0002df24 lw t9, -0x7d90(gp) | t9 = *((gp - 8036));
0x0002df28 lw a2, 0x44(sp) | a2 = *(var_44h);
0x0002df2c lw a1, 0x48(sp) | a1 = *(var_48h);
0x0002df30 addiu t9, t9, -0x3458 | t9 += -0x3458;
0x0002df34 lw a0, 0x34(sp) | a0 = *(var_34h);
0x0002df38 bal 0x2cba8 | fcn_0002cba8 ();
0x0002df3c lw v0, 0x10(s5) | v0 = *((s5 + 4));
0x0002df40 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 <= 0) {
0x0002df44 blez v0, 0x2dfd8 | goto label_5;
| }
0x0002df48 lw v1, 4(s5) | v1 = *((s5 + 1));
0x0002df4c lw s1, (s5) | s1 = *(s5);
0x0002df50 lw s2, 0x34(sp) | s2 = *(var_34h);
0x0002df54 sra s0, v0, 0x1f | s0 = v0 >> 0x1f;
0x0002df58 lw t9, -0x7f48(gp) | t9 = *((gp - 8146));
0x0002df5c addu s1, v0, s1 | s1 = v0 + s1;
0x0002df60 addu s0, s0, v1 | s0 += v1;
0x0002df64 addiu v1, zero, 1 | v1 = 1;
0x0002df68 move a2, zero | a2 = 0;
0x0002df6c move a3, zero | a3 = 0;
0x0002df70 sltu v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x0002df74 move a0, s2 | a0 = s2;
0x0002df78 sw v1, 0x10(sp) | *(var_10h) = v1;
0x0002df7c addu s0, v0, s0 | s0 = v0 + s0;
0x0002df80 bal 0xea30 | sym_avio_seek ();
0x0002df84 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002df88 subu a2, s1, v0 | __asm ("subu a2, s1, v0");
0x0002df8c sltu a3, s1, a2 | a3 = (s1 < a2) ? 1 : 0;
0x0002df90 lw t9, -0x7d90(gp) | t9 = *((gp - 8036));
0x0002df94 subu s0, s0, v1 | __asm ("subu s0, s0, v1");
0x0002df98 subu a3, s0, a3 | __asm ("subu a3, s0, a3");
0x0002df9c addiu t9, t9, -0x445c | t9 += -0x445c;
0x0002dfa0 move a0, s2 | a0 = s2;
0x0002dfa4 bal 0x2bba4 | fcn_0002bba4 ();
0x0002dfa8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002dfac lw a2, 0x38(sp) | a2 = *(var_38h);
0x0002dfb0 lw a3, 0x3c(sp) | a3 = *(var_3ch);
0x0002dfb4 lw t9, -0x7f48(gp) | t9 = *((gp - 8146));
0x0002dfb8 sw zero, 0x10(sp) | *(var_10h) = 0;
0x0002dfbc move a0, s2 | a0 = s2;
0x0002dfc0 bal 0xea30 | sym_avio_seek ();
0x0002dfc4 lw v0, (s5) | v0 = *(s5);
0x0002dfc8 lw v1, 4(s5) | v1 = *((s5 + 1));
0x0002dfcc lw gp, 0x18(sp) | gp = *(var_18h);
0x0002dfd0 sw v0, 0x38(sp) | *(var_38h) = v0;
0x0002dfd4 sw v1, 0x3c(sp) | *(var_3ch) = v1;
| do {
| label_5:
0x0002dfd8 lw s0, 0x40(sp) | s0 = *(var_40h);
0x0002dfdc lw t9, -0x79d0(gp) | t9 = *((gp - 7796));
0x0002dfe0 lw a0, 0x78(s0) | a0 = *((s0 + 30));
0x0002dfe4 addiu a0, a0, 0x18 | a0 += 0x18;
0x0002dfe8 jalr t9 | t9 ();
0x0002dfec lw gp, 0x18(sp) | gp = *(var_18h);
0x0002dff0 lw t9, -0x79d0(gp) | t9 = *((gp - 7796));
0x0002dff4 addiu a0, s0, 0x78 | a0 = s0 + 0x78;
0x0002dff8 jalr t9 | t9 ();
0x0002dffc lw v0, 0x4c(sp) | v0 = *(var_4ch);
0x0002e000 lw a1, 0x54(sp) | a1 = *(var_54h);
0x0002e004 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002e008 lw a0, (v0) | a0 = *(v0);
0x0002e00c lw v0, 0x38(sp) | v0 = *(var_38h);
0x0002e010 lw v1, 0x3c(sp) | v1 = *(var_3ch);
| if (a1 != a0) {
0x0002e014 bne a1, a0, 0x2e07c | goto label_6;
| }
0x0002e018 lw ra, 0x7c(sp) | ra = *(var_7ch);
0x0002e01c lw fp, 0x78(sp) | fp = *(var_78h);
0x0002e020 lw s7, 0x74(sp) | s7 = *(var_74h);
0x0002e024 lw s6, 0x70(sp) | s6 = *(var_70h);
0x0002e028 lw s5, 0x6c(sp) | s5 = *(var_6ch);
0x0002e02c lw s4, 0x68(sp) | s4 = *(var_68h);
0x0002e030 lw s3, 0x64(sp) | s3 = *(var_64h);
0x0002e034 lw s2, 0x60(sp) | s2 = *(var_60h);
0x0002e038 lw s1, 0x5c(sp) | s1 = *(var_5ch);
0x0002e03c lw s0, 0x58(sp) | s0 = *(var_58h);
0x0002e040 addiu sp, sp, 0x80 |
0x0002e044 jr ra | return v1;
| label_2:
0x0002e048 addiu v0, zero, -1 | v0 = -1;
0x0002e04c addiu v1, zero, -1 | v1 = -1;
0x0002e050 sw v0, 0x38(sp) | *(var_38h) = v0;
0x0002e054 sw v1, 0x3c(sp) | *(var_3ch) = v1;
0x0002e058 b 0x2dfd8 |
| } while (1);
| label_3:
0x0002e05c lw t9, -0x7d90(gp) | t9 = *((gp - 8036));
0x0002e060 lw a0, 0x50(sp) | a0 = *(var_50h);
0x0002e064 addiu a2, zero, 6 | a2 = 6;
0x0002e068 addiu t9, t9, -0x445c | t9 += -0x445c;
0x0002e06c move a3, zero | a3 = 0;
0x0002e070 bal 0x2bba4 | fcn_0002bba4 ();
0x0002e074 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002e078 b 0x2dd5c | goto label_1;
| label_6:
0x0002e07c lw t9, -0x7974(gp) | t9 = *(gp);
0x0002e080 jalr t9 | t9 ();
0x0002e084 nop |
| }
[*] Function system used 1 times libavformat.so.58.29.100