[*] Binary protection state of libfstools.so
Full RELRO No Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function system tear down of libfstools.so
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/lib/libfstools.so @ 0x4668 */
| #include <stdint.h>
|
; (fcn) sym.fopivot () | void fopivot () {
0x00004668 lui gp, 2 |
0x0000466c addiu gp, gp, -0x45d8 |
0x00004670 addu gp, gp, t9 | gp += t9;
0x00004674 addiu sp, sp, -0x260 |
0x00004678 lw t9, -0x7fd0(gp) | t9 = *((gp - 8180));
0x0000467c sw s0, 0x238(sp) | *(var_238h) = s0;
0x00004680 lw s0, -0x7fd8(gp) | s0 = *((gp - 8182));
0x00004684 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00004688 sw fp, 0x258(sp) | *(var_20h) = fp;
0x0000468c sw s6, 0x250(sp) | *(var_18h) = s6;
0x00004690 sw ra, 0x25c(sp) | *(var_24h) = ra;
0x00004694 sw s7, 0x254(sp) | *(var_254h) = s7;
0x00004698 sw s5, 0x24c(sp) | *(var_24ch) = s5;
0x0000469c sw s4, 0x248(sp) | *(var_10h) = s4;
0x000046a0 sw s3, 0x244(sp) | *(var_244h) = s3;
0x000046a4 sw s2, 0x240(sp) | *(var_240h) = s2;
0x000046a8 sw s1, 0x23c(sp) | *(var_23ch) = s1;
0x000046ac move s6, a0 | s6 = a0;
0x000046b0 addiu a0, s0, 0x697c | a0 = s0 + str.overlay;
0x000046b4 move fp, a1 | fp = a1;
0x000046b8 bal 0x5d2c | sym_find_filesystem ()
0x000046bc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000046c0 sw s0, 0x230(sp) | *(var_230h) = s0;
| if (v0 == 0) {
0x000046c4 beqz v0, 0x4710 | goto label_1;
| }
0x000046c8 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x000046cc lw t9, -0x7e50(gp) | t9 = *((gp - 8084));
0x000046d0 addiu a1, a1, 0x6ee0 | a1 += str.BUG:_no_suitable_fs_found_n;
0x000046d4 addiu a0, zero, 3 | a0 = 3;
0x000046d8 jalr t9 | t9 ();
0x000046dc addiu v0, zero, -1 | v0 = -1;
| do {
0x000046e0 lw ra, 0x25c(sp) | ra = *(var_24h);
| label_0:
0x000046e4 lw fp, 0x258(sp) | fp = *(var_20h);
0x000046e8 lw s7, 0x254(sp) | s7 = *(var_254h);
0x000046ec lw s6, 0x250(sp) | s6 = *(var_18h);
0x000046f0 lw s5, 0x24c(sp) | s5 = *(var_24ch);
0x000046f4 lw s4, 0x248(sp) | s4 = *(var_10h);
0x000046f8 lw s3, 0x244(sp) | s3 = *(var_244h);
0x000046fc lw s2, 0x240(sp) | s2 = *(var_240h);
0x00004700 lw s1, 0x23c(sp) | s1 = *(var_23ch);
0x00004704 lw s0, 0x238(sp) | s0 = *(var_238h);
0x00004708 addiu sp, sp, 0x260 |
0x0000470c jr ra | return v0;
| label_1:
0x00004710 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00004714 lw t9, -0x7ef0(gp) | t9 = *((gp - 8124));
0x00004718 addiu s4, sp, 0x1f0 | s4 = sp + aav.0x000001f0;
0x0000471c move a3, s6 | a3 = s6;
0x00004720 addiu a2, a2, 0x6efc | a2 += str.overlayfs:_s;
0x00004724 addiu a1, zero, 0x40 | a1 = 0x40;
0x00004728 move a0, s4 | a0 = s4;
0x0000472c jalr t9 | t9 ();
0x00004730 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00004734 addiu s1, sp, 0x1b0 | s1 = sp + aav.0x000001b0;
0x00004738 move a3, s6 | a3 = s6;
0x0000473c lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00004740 lw t9, -0x7ef0(gp) | t9 = *((gp - 8124));
0x00004744 addiu a2, a2, 0x6f0c | a2 += str.lowerdir__upperdir_s;
0x00004748 addiu a1, zero, 0x40 | a1 = 0x40;
0x0000474c move a0, s1 | a0 = s1;
0x00004750 jalr t9 | t9 ();
0x00004754 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00004758 sw s1, 0x10(sp) | *(var_10h_2) = s1;
0x0000475c addiu a3, zero, 0x400 | a3 = 0x400;
0x00004760 lw s2, -0x7fd8(gp) | s2 = *((gp - 8182));
0x00004764 lw s0, -0x7fd8(gp) | s0 = *((gp - 8182));
0x00004768 lw t9, -0x7f14(gp) | t9 = *((gp - 8133));
0x0000476c addiu a2, s2, 0x6f24 | a2 = s2 + str.overlayfs;
0x00004770 addiu a1, s0, 0x6780 | a1 = s0 + 0x6780;
0x00004774 move a0, s4 | a0 = s4;
0x00004778 jalr t9 | t9 ();
0x0000477c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00004780 sw s2, 0x234(sp) | *(var_234h) = s2;
| if (v0 == 0) {
0x00004784 beqz v0, 0x48fc | goto label_2;
| }
0x00004788 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x0000478c addiu s2, sp, 0x170 | s2 = sp + 0x170;
0x00004790 lw t9, -0x7ef0(gp) | t9 = *((gp - 8124));
0x00004794 move a3, s6 | a3 = s6;
0x00004798 addiu a2, a2, 0x6f30 | a2 += str._s_upper;
0x0000479c addiu a1, zero, 0x40 | a1 = 0x40;
0x000047a0 move a0, s2 | a0 = s2;
0x000047a4 jalr t9 | t9 ();
0x000047a8 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000047ac addiu s3, sp, 0x130 | s3 = sp + aav.0x00000130;
0x000047b0 move a3, s6 | a3 = s6;
0x000047b4 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x000047b8 lw t9, -0x7ef0(gp) | t9 = *((gp - 8124));
0x000047bc addiu a2, a2, 0x6f3c | a2 += str._s_work;
0x000047c0 addiu a1, zero, 0x40 | a1 = 0x40;
0x000047c4 move a0, s3 | a0 = s3;
0x000047c8 jalr t9 | t9 ();
0x000047cc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000047d0 addiu s5, sp, 0xf0 | s5 = sp + 0xf0;
0x000047d4 move a3, s6 | a3 = s6;
0x000047d8 lw s7, -0x7fd8(gp) | s7 = *((gp - 8182));
0x000047dc lw t9, -0x7ef0(gp) | t9 = *((gp - 8124));
0x000047e0 addiu a2, s7, 0x6f44 | a2 = s7 + str._s_sysupgrade.tgz;
0x000047e4 addiu a1, zero, 0x40 | a1 = 0x40;
0x000047e8 move a0, s5 | a0 = s5;
0x000047ec jalr t9 | t9 ();
0x000047f0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000047f4 addiu s6, sp, 0xb0 | s6 = sp + 0xb0;
0x000047f8 move a3, s2 | a3 = s2;
0x000047fc lw t9, -0x7ef0(gp) | t9 = *((gp - 8124));
0x00004800 addiu a2, s7, 0x6f44 | a2 = s7 + str._s_sysupgrade.tgz;
0x00004804 addiu a1, zero, 0x40 | a1 = 0x40;
0x00004808 move a0, s6 | a0 = s6;
0x0000480c jalr t9 | t9 ();
0x00004810 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00004814 move a3, s2 | a3 = s2;
0x00004818 addiu a1, zero, 0x40 | a1 = 0x40;
0x0000481c lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00004820 lw t9, -0x7ef0(gp) | t9 = *((gp - 8124));
0x00004824 addiu a2, a2, 0x6f58 | a2 += str.lowerdir__upperdir_s_workdir_s;
0x00004828 move a0, s1 | a0 = s1;
0x0000482c sw s3, 0x10(sp) | *(var_10h_2) = s3;
0x00004830 jalr t9 | t9 ();
0x00004834 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00004838 addiu a1, zero, 0x1ed | a1 = 0x1ed;
0x0000483c lw t9, -0x7eec(gp) | t9 = *((gp - 8123));
0x00004840 move a0, s2 | a0 = s2;
0x00004844 jalr t9 | t9 ();
0x00004848 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000484c addiu a1, zero, 0x1ed | a1 = 0x1ed;
0x00004850 lw t9, -0x7eec(gp) | t9 = *((gp - 8123));
0x00004854 move a0, s3 | a0 = s3;
0x00004858 jalr t9 | t9 ();
0x0000485c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00004860 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x00004864 lw t9, -0x7fbc(gp) | t9 = *((gp - 8175));
0x00004868 move a0, s5 | a0 = s5;
0x0000486c bal 0x5e10 | fcn_00005e10 ();
0x00004870 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00004874 bnez v0, 0x488c |
0x00004878 lw t9, -0x7ec8(gp) | t9 = *((gp - 8114));
0x0000487c move a1, s6 | a1 = s6;
0x00004880 move a0, s5 | a0 = s5;
0x00004884 jalr t9 | t9 ();
0x00004888 lw gp, 0x18(sp) | gp = *(var_18h_2);
| }
0x0000488c lw v0, 0x230(sp) | v0 = *(var_230h);
0x00004890 lw t9, -0x7f14(gp) | t9 = *((gp - 8133));
0x00004894 sw s1, 0x10(sp) | *(var_10h_2) = s1;
0x00004898 addiu a3, zero, 0x400 | a3 = 0x400;
0x0000489c addiu a2, v0, 0x697c | a2 = v0 + str.overlay;
0x000048a0 addiu a1, s0, 0x6780 | a1 = s0 + 0x6780;
0x000048a4 move a0, s4 | a0 = s4;
0x000048a8 jalr t9 | t9 ();
0x000048ac lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x000048b0 beqz v0, 0x48fc | goto label_2;
| }
0x000048b4 lw v0, 0x234(sp) | v0 = *(var_234h);
0x000048b8 lw t9, -0x7f14(gp) | t9 = *((gp - 8133));
0x000048bc sw s1, 0x10(sp) | *(var_10h_2) = s1;
0x000048c0 addiu a3, zero, 0x400 | a3 = 0x400;
0x000048c4 addiu a2, v0, 0x6f24 | a2 = v0 + str.overlayfs;
0x000048c8 addiu a1, s0, 0x6780 | a1 = s0 + 0x6780;
0x000048cc move a0, s4 | a0 = s4;
0x000048d0 jalr t9 | t9 ();
0x000048d4 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x000048d8 beqz v0, 0x48fc | goto label_2;
| }
0x000048dc lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x000048e0 lw t9, -0x7e50(gp) | t9 = *((gp - 8084));
0x000048e4 move a2, s1 | a2 = s1;
0x000048e8 addiu a1, a1, 0x6f7c | a1 += str.mount_failed:__s__options__m_n;
0x000048ec addiu a0, zero, 3 | a0 = 3;
0x000048f0 jalr t9 | t9 ();
0x000048f4 addiu v0, zero, -1 | v0 = -1;
0x000048f8 b 0x46e0 |
| } while (1);
| label_2:
0x000048fc lw t9, -0x7f90(gp) | t9 = *((gp - 8164));
0x00004900 move a1, fp | a1 = fp;
0x00004904 addiu a0, s0, 0x6780 | a0 = s0 + 0x6780;
0x00004908 bal 0x4518 | sym_pivot ();
0x0000490c lw ra, 0x25c(sp) | ra = *(var_24h);
0x00004910 b 0x46e4 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/lib/libfstools.so @ 0x3090 */
| #include <stdint.h>
|
; (fcn) sym.jffs2_switch () | void jffs2_switch () {
0x00003090 lui gp, 2 |
0x00003094 addiu gp, gp, -0x3000 |
0x00003098 addu gp, gp, t9 | gp += t9;
0x0000309c addiu sp, sp, -0x118 |
0x000030a0 lw t9, -0x7f80(gp) | t9 = *((gp - 8160));
0x000030a4 sw s1, 0xf4(sp) | *(var_f4h) = s1;
0x000030a8 move s1, a0 | s1 = a0;
0x000030ac lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x000030b0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000030b4 sw ra, 0x114(sp) | *(var_114h) = ra;
0x000030b8 sw fp, 0x110(sp) | *(var_110h) = fp;
0x000030bc sw s7, 0x10c(sp) | *(var_10ch) = s7;
0x000030c0 sw s6, 0x108(sp) | *(var_108h) = s6;
0x000030c4 sw s5, 0x104(sp) | *(var_104h) = s5;
0x000030c8 sw s4, 0x100(sp) | *(var_100h) = s4;
0x000030cc sw s3, 0xfc(sp) | *(var_fch) = s3;
0x000030d0 sw s2, 0xf8(sp) | *(var_f8h) = s2;
0x000030d4 sw s0, 0xf0(sp) | *(var_f0h) = s0;
0x000030d8 addiu a0, a0, 0x6968 | a0 += str.overlayfs:_tmp_root;
0x000030dc bal 0x5824 | sym_find_overlay_mount ();
0x000030e0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000030e4 beqz v0, 0x3120 | goto label_9;
| }
| label_3:
0x000030e8 addiu s0, zero, -1 | s0 = -1;
| do {
0x000030ec lw ra, 0x114(sp) | ra = *(var_114h);
| label_1:
0x000030f0 move v0, s0 | v0 = s0;
0x000030f4 lw fp, 0x110(sp) | fp = *(var_110h);
0x000030f8 lw s7, 0x10c(sp) | s7 = *(var_10ch);
0x000030fc lw s6, 0x108(sp) | s6 = *(var_108h);
0x00003100 lw s5, 0x104(sp) | s5 = *(var_104h);
0x00003104 lw s4, 0x100(sp) | s4 = *(var_100h);
0x00003108 lw s3, 0xfc(sp) | s3 = *(var_fch);
0x0000310c lw s2, 0xf8(sp) | s2 = *(var_f8h);
0x00003110 lw s1, 0xf4(sp) | s1 = *(var_f4h);
0x00003114 lw s0, 0xf0(sp) | s0 = *(var_f0h);
0x00003118 addiu sp, sp, 0x118 |
0x0000311c jr ra | return v0;
| label_9:
0x00003120 lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x00003124 lw t9, -0x7fd0(gp) | t9 = *((gp - 8180));
0x00003128 addiu a0, a0, 0x697c | a0 += str.overlay;
0x0000312c bal 0x5d2c | sym_find_filesystem ()
0x00003130 move s0, v0 | s0 = v0;
0x00003134 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00003138 beqz v0, 0x3158 | goto label_10;
| }
0x0000313c lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00003140 addiu a1, a1, 0x6984 | a1 += str.overlayfs_not_supported_by_kernel_n;
| label_2:
0x00003144 lw t9, -0x7e50(gp) | t9 = *((gp - 8084));
0x00003148 addiu a0, zero, 3 | a0 = 3;
0x0000314c jalr t9 | t9 ();
| label_0:
0x00003150 addiu s0, zero, -1 | s0 = -1;
0x00003154 b 0x30ec |
| } while (1);
| label_10:
0x00003158 lw t9, -0x7f7c(gp) | t9 = *((gp - 8159));
| if (s1 != 0) {
0x0000315c beqz s1, 0x3180 |
0x00003160 lw v0, (s1) | v0 = *(s1);
0x00003164 lw t9, 0x10(v0) | t9 = *((v0 + 4));
| if (t9 != 0) {
0x00003168 beqz t9, 0x317c |
0x0000316c nop |
0x00003170 move a0, s1 | a0 = s1;
0x00003174 jalr t9 | t9 ();
0x00003178 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x0000317c lw t9, -0x7f7c(gp) | t9 = *((gp - 8159));
| }
0x00003180 lw a0, 8(s1) | a0 = *((s1 + 2));
0x00003184 move a1, zero | a1 = 0;
0x00003188 bal 0x5a34 | sym_find_mount_point ();
0x0000318c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00003190 beqz v0, 0x31b8 |
0x00003194 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00003198 lw a2, 8(s1) | a2 = *((s1 + 2));
0x0000319c move a3, v0 | a3 = v0;
0x000031a0 addiu a1, a1, 0x69a8 | a1 += str.rootfs_data:_s_is_already_mounted_as__s_n;
| label_6:
0x000031a4 lw t9, -0x7e50(gp) | t9 = *((gp - 8084));
0x000031a8 addiu a0, zero, 3 | a0 = 3;
0x000031ac jalr t9 | t9 ();
0x000031b0 b 0x3150 | goto label_0;
0x000031b4 nop |
| }
0x000031b8 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x000031bc addiu t9, t9, 0x2960 | t9 += fcn.00002960;
0x000031c0 move a0, s1 | a0 = s1;
0x000031c4 bal 0x2960 | fcn_00002960 ();
0x000031c8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000031cc move a0, v0 | a0 = v0;
0x000031d0 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x000031d4 addiu t9, t9, 0x2988 | t9 += fcn.00002988;
0x000031d8 move s2, v0 | s2 = v0;
0x000031dc bal 0x2988 | fcn_00002988 ();
0x000031e0 move s3, v0 | s3 = v0;
0x000031e4 addiu v0, zero, 3 | v0 = 3;
0x000031e8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s2 == v0) {
0x000031ec beq s2, v0, 0x3274 | goto label_11;
| }
0x000031f0 slti v0, s2, 4 | v0 = (s2 < 4) ? 1 : 0;
| if (v0 == 0) {
0x000031f4 beqz v0, 0x3230 | goto label_12;
| }
0x000031f8 nop |
0x000031fc lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
| if (s2 == 0) {
0x00003200 beqz s2, 0x3260 | goto label_13;
| }
| do {
| label_4:
0x00003204 lw t9, -0x7f5c(gp) | t9 = *((gp - 8151));
0x00003208 jalr t9 | t9 ();
0x0000320c nop |
0x00003210 lw gp, 0x18(sp) | gp = *(var_18h);
0x00003214 addiu a1, zero, 2 | a1 = 2;
0x00003218 lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x0000321c lw t9, -0x7f78(gp) | t9 = *((gp - 8158));
0x00003220 addiu a0, a0, 0x6a24 | a0 += 0x6a24;
0x00003224 bal 0x2fa0 | sym_fs_state_set ();
0x00003228 lw ra, 0x114(sp) | ra = *(var_114h);
0x0000322c b 0x30f0 | goto label_1;
| label_12:
0x00003230 slti s2, s2, 7 | s2 = (s2 < 7) ? 1 : 0;
0x00003234 lw s2, -0x7fd8(gp) | s2 = *((gp - 8182));
0x00003238 beqz s2, 0x3204 |
| } while (s2 == 0);
0x0000323c lw t9, -0x7eec(gp) | t9 = *((gp - 8123));
0x00003240 addiu a1, zero, 0x1ed | a1 = 0x1ed;
0x00003244 addiu a0, s2, 0x6874 | a0 = s2 + str._tmp_overlay;
0x00003248 jalr t9 | t9 ();
0x0000324c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00003250 beqz v0, 0x353c | goto label_14;
| }
0x00003254 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00003258 addiu a1, a1, 0x6bf4 | a1 += str.failed_to_mkdir__tmp_overlay:__m_n;
0x0000325c b 0x3144 | goto label_2;
| label_13:
0x00003260 lw t9, -0x7e50(gp) | t9 = *((gp - 8084));
0x00003264 addiu a1, a1, 0x69d4 | a1 += str.no_jffs2_marker_found_n;
0x00003268 addiu a0, zero, 3 | a0 = 3;
0x0000326c jalr t9 | t9 ();
0x00003270 lw gp, 0x18(sp) | gp = *(var_18h);
| label_11:
0x00003274 lw s2, -0x7fd8(gp) | s2 = *((gp - 8182));
0x00003278 lw t9, -0x7fbc(gp) | t9 = *((gp - 8175));
0x0000327c addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x00003280 addiu a0, s2, 0x69ec | a0 = s2 + str._tmp_.switch_jffs2;
0x00003284 bal 0x5e10 | fcn_00005e10 ();
0x00003288 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000328c bnez v0, 0x329c |
0x00003290 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00003294 addiu a1, a1, 0x6a00 | a1 += str.jffs2_switch_already_running_n;
0x00003298 b 0x3144 | goto label_2;
| }
0x0000329c lw t9, -0x7ee0(gp) | t9 = *((gp - 8120));
0x000032a0 addiu a1, zero, 0x180 | a1 = 0x180;
0x000032a4 addiu a0, s2, 0x69ec | a0 = s2 + str._tmp_.switch_jffs2;
0x000032a8 jalr t9 | t9 ();
0x000032ac lw gp, 0x18(sp) | gp = *(var_18h);
0x000032b0 sw zero, 0x10(sp) | *(var_10h) = 0;
0x000032b4 lw a0, 8(s1) | a0 = *((s1 + 2));
0x000032b8 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x000032bc lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x000032c0 lw t9, -0x7f14(gp) | t9 = *((gp - 8133));
0x000032c4 addiu a3, zero, 0x400 | a3 = 0x400;
0x000032c8 addiu a2, a2, 0x6918 | a2 += str.jffs2;
0x000032cc addiu a1, a1, 0x6a20 | a1 += str._rom_overlay;
0x000032d0 jalr t9 | t9 ();
0x000032d4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000032d8 move s3, v0 | s3 = v0;
0x000032dc lw t9, -0x7e8c(gp) | t9 = *((gp - 8099));
0x000032e0 addiu a0, s2, 0x69ec | a0 = s2 + str._tmp_.switch_jffs2;
0x000032e4 jalr t9 | t9 ();
0x000032e8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s3 != 0) {
0x000032ec beqz s3, 0x3310 |
0x000032f0 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x000032f4 lw a2, 8(s1) | a2 = *((s1 + 2));
0x000032f8 addiu a1, a1, 0x6a30 | a1 += str.failed___mount__t_jffs2__s__rom_overlay:__m_n;
| label_7:
0x000032fc lw t9, -0x7e50(gp) | t9 = *((gp - 8084));
0x00003300 addiu a0, zero, 3 | a0 = 3;
0x00003304 jalr t9 | t9 ();
0x00003308 b 0x3150 | goto label_0;
0x0000330c nop |
| }
0x00003310 lw s6, -0x7fd8(gp) | s6 = *((gp - 8182));
0x00003314 lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x00003318 lw t9, -0x7f14(gp) | t9 = *((gp - 8133));
0x0000331c sw zero, 0x10(sp) | *(var_10h) = 0;
0x00003320 addiu a3, zero, 0x420 | a3 = 0x420;
0x00003324 move a2, zero | a2 = 0;
0x00003328 addiu a1, s6, 0x6640 | a1 = s6 + 0x6640;
0x0000332c addiu a0, a0, 0x6a60 | a0 += str.none;
0x00003330 jalr t9 | t9 ();
0x00003334 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00003338 beqz v0, 0x3348 |
0x0000333c lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00003340 addiu a1, a1, 0x6a68 | a1 += str.failed___mount__o_remount_ro_none:__m_n;
0x00003344 b 0x3144 | goto label_2;
| }
0x00003348 lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x0000334c lw t9, -0x7eb4(gp) | t9 = *((gp - 8109));
0x00003350 addiu a0, a0, 0x6a90 | a0 += str.cp__a__tmp_root___rom_overlay;
0x00003354 jalr t9 | t9 ();
0x00003358 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000335c beqz v0, 0x336c |
0x00003360 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00003364 addiu a1, a1, 0x6ab0 | a1 += str.failed___cp__a__tmp_root___rom_overlay:__m_n;
0x00003368 b 0x3144 | goto label_2;
| }
0x0000336c lw s3, -0x7fd8(gp) | s3 = *((gp - 8182));
0x00003370 lw s1, -0x7fd8(gp) | s1 = *((gp - 8182));
0x00003374 lw t9, -0x7f90(gp) | t9 = *((gp - 8164));
0x00003378 addiu a1, s3, 0x6780 | a1 = s3 + 0x6780;
0x0000337c addiu a0, s1, 0x6658 | a0 = s1 + 0x6658;
0x00003380 bal 0x4518 | sym_pivot ();
0x00003384 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00003388 beqz v0, 0x3398 |
0x0000338c lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00003390 addiu a1, a1, 0x6ae0 | a1 += str.failed___pivot__rom__mnt:__m_n;
0x00003394 b 0x3144 | goto label_2;
| }
0x00003398 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x0000339c lw s7, -0x7fd8(gp) | s7 = *((gp - 8182));
0x000033a0 lw t9, -0x7f98(gp) | t9 = *((gp - 8166));
0x000033a4 addiu a2, a2, 0x6e2c | a2 += 0x6e2c;
0x000033a8 addiu a1, s7, 0x6b00 | a1 = s7 + str._tmp_root;
0x000033ac addiu a0, s3, 0x6780 | a0 = s3 + 0x6780;
0x000033b0 bal 0x4400 | sym_mount_move ();
0x000033b4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000033b8 beqz v0, 0x33c8 |
0x000033bc lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x000033c0 addiu a1, a1, 0x6b0c | a1 += str.failed___mount__o_move__mnt__tmp_root__m_n;
0x000033c4 b 0x3144 | goto label_2;
| }
0x000033c8 lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x000033cc lw t9, -0x7fc4(gp) | t9 = *((gp - 8177));
0x000033d0 addiu a1, s1, 0x6658 | a1 = s1 + 0x6658;
0x000033d4 addiu a0, a0, 0x6a24 | a0 += 0x6a24;
0x000033d8 bal 0x4668 | sym_fopivot ();
0x000033dc lw gp, 0x18(sp) | gp = *(var_18h);
0x000033e0 move fp, v0 | fp = v0;
0x000033e4 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x000033e8 lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x000033ec lw t9, -0x7e58(gp) | t9 = *((gp - 8086));
0x000033f0 addiu a1, a1, 0x6b38 | a1 += 0x6b38;
0x000033f4 addiu a0, a0, 0x6b3c | a0 += str._proc_mounts;
0x000033f8 jalr t9 | t9 ();
0x000033fc move s2, v0 | s2 = v0;
0x00003400 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00003404 beqz v0, 0x3448 |
0x00003408 lw s1, -0x7fe8(gp) | s1 = *((gp - 8186));
0x0000340c lw s3, -0x7fd8(gp) | s3 = *((gp - 8182));
0x00003410 lw s4, -0x7fd8(gp) | s4 = *((gp - 8182));
0x00003414 addiu s1, s1, -0x7d80 | s1 += -0x7d80;
0x00003418 addiu s3, s3, 0x6b4c | s3 += str._31s__31s__s__s__u__u;
| label_5:
0x0000341c lw t9, -0x7e74(gp) | t9 = *((gp - 8093));
0x00003420 move a2, s2 | a2 = s2;
0x00003424 addiu a1, zero, 0x100 | a1 = aav.0x00000100;
0x00003428 move a0, s1 | a0 = s1;
0x0000342c jalr t9 | t9 ();
0x00003430 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00003434 bnez v0, 0x34dc | goto label_15;
| }
0x00003438 lw t9, -0x7f1c(gp) | t9 = *((gp - 8135));
0x0000343c move a0, s2 | a0 = s2;
0x00003440 jalr t9 | t9 ();
0x00003444 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00003448 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
| if (fp != 0) {
0x0000344c bnez fp, 0x30e8 | goto label_3;
| }
0x00003450 lw t9, -0x7e50(gp) | t9 = *((gp - 8084));
0x00003454 addiu a1, a1, 0x6b74 | a1 += str.performing_overlay_whiteout_n;
0x00003458 addiu a0, zero, 6 | a0 = 6;
0x0000345c jalr t9 | t9 ();
0x00003460 lw gp, 0x18(sp) | gp = *(var_18h);
0x00003464 addiu a1, zero, 2 | a1 = 2;
0x00003468 lw t9, -0x7e98(gp) | t9 = *((gp - 8102));
0x0000346c addiu a0, s7, 0x6b00 | a0 = s7 + str._tmp_root;
0x00003470 jalr t9 | t9 ();
0x00003474 lw gp, 0x18(sp) | gp = *(var_18h);
0x00003478 lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x0000347c lw t9, -0x7fa0(gp) | t9 = *((gp - 8168));
0x00003480 lw a1, -0x7f9c(gp) | a1 = *((gp - 8167));
0x00003484 addiu a0, a0, 0x6638 | a0 += str._overlay_;
0x00003488 bal 0x2cd8 | sym_foreachdir ();
0x0000348c lw gp, 0x18(sp) | gp = *(var_18h);
0x00003490 addiu a0, zero, 6 | a0 = 6;
0x00003494 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00003498 lw t9, -0x7e50(gp) | t9 = *((gp - 8084));
0x0000349c addiu a1, a1, 0x6b94 | a1 += str.syncronizing_overlay_n;
0x000034a0 jalr t9 | t9 ();
0x000034a4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000034a8 lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x000034ac lw t9, -0x7eb4(gp) | t9 = *((gp - 8109));
0x000034b0 addiu a0, a0, 0x6bac | a0 += str.cp__a__tmp_root_upper____2__dev_null;
0x000034b4 jalr t9 | t9 ();
0x000034b8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000034bc beqz v0, 0x3204 | goto label_4;
| }
0x000034c0 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x000034c4 lw t9, -0x7e50(gp) | t9 = *((gp - 8084));
0x000034c8 addiu a1, a1, 0x6bd4 | a1 += str.failed_to_sync_jffs2_overlay_n;
0x000034cc addiu a0, zero, 3 | a0 = 3;
0x000034d0 jalr t9 | t9 ();
0x000034d4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000034d8 b 0x3204 | goto label_4;
| label_15:
0x000034dc lw t9, -0x7ee4(gp) | t9 = *((gp - 8121));
0x000034e0 addiu s5, sp, 0xb0 | s5 = sp + 0xb0;
0x000034e4 move a3, s5 | a3 = s5;
0x000034e8 addiu a2, sp, 0xd0 | a2 = sp + 0xd0;
0x000034ec move a1, s3 | a1 = s3;
0x000034f0 move a0, s1 | a0 = s1;
0x000034f4 jalr t9 | t9 ();
0x000034f8 addiu v1, zero, 2 | v1 = 2;
0x000034fc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != v1) {
0x00003500 bne v0, v1, 0x341c | goto label_5;
| }
0x00003504 lw t9, -0x7f40(gp) | t9 = *((gp - 8144));
0x00003508 addiu a2, zero, 0xa | a2 = 0xa;
0x0000350c addiu a1, s4, 0x6b68 | a1 = s4 + str._tmp_root_;
0x00003510 move a0, s5 | a0 = s5;
0x00003514 jalr t9 | t9 ();
0x00003518 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000351c bnez v0, 0x341c | goto label_5;
| }
0x00003520 lw t9, -0x7f98(gp) | t9 = *((gp - 8166));
0x00003524 addiu a2, sp, 0xba | a2 = sp + 0xba;
0x00003528 addiu a1, s6, 0x6640 | a1 = s6 + 0x6640;
0x0000352c addiu a0, s4, 0x6b68 | a0 = s4 + str._tmp_root_;
0x00003530 bal 0x4400 | sym_mount_move ();
0x00003534 lw gp, 0x18(sp) | gp = *(var_18h);
0x00003538 b 0x341c | goto label_5;
| label_14:
0x0000353c sw zero, 0x10(sp) | *(var_10h) = 0;
0x00003540 lw t9, -0x7f14(gp) | t9 = *((gp - 8133));
0x00003544 lw a0, 8(s1) | a0 = *((s1 + 2));
0x00003548 addiu a3, zero, 0x400 | a3 = 0x400;
0x0000354c move a2, s3 | a2 = s3;
0x00003550 addiu a1, s2, 0x6874 | a1 = s2 + str._tmp_overlay;
0x00003554 jalr t9 | t9 ();
0x00003558 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000355c beqz v0, 0x3574 |
0x00003560 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00003564 lw a3, 8(s1) | a3 = *((s1 + 2));
0x00003568 move a2, s3 | a2 = s3;
0x0000356c addiu a1, a1, 0x6c18 | a1 += str.failed_to_mount__t__s__s__tmp_overlay:__m_n;
0x00003570 b 0x31a4 | goto label_6;
| }
0x00003574 lw s1, -0x7fd8(gp) | s1 = *((gp - 8182));
0x00003578 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x0000357c lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x00003580 lw t9, -0x7f98(gp) | t9 = *((gp - 8166));
0x00003584 addiu a2, s1, 0x6a24 | a2 = s1 + 0x6a24;
0x00003588 addiu a1, a1, 0x6e2c | a1 += 0x6e2c;
0x0000358c addiu a0, a0, 0x67ec | a0 += 0x67ec;
0x00003590 bal 0x4400 | sym_mount_move ();
0x00003594 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00003598 beqz v0, 0x35ac |
0x0000359c lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
| label_8:
0x000035a0 move a2, s3 | a2 = s3;
0x000035a4 addiu a1, a1, 0x6c44 | a1 += str.switching_to__s_failed_n;
0x000035a8 b 0x32fc | goto label_7;
| }
0x000035ac lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x000035b0 lw t9, -0x7fc4(gp) | t9 = *((gp - 8177));
0x000035b4 addiu a1, a1, 0x6658 | a1 += 0x6658;
0x000035b8 addiu a0, s1, 0x6a24 | a0 = s1 + 0x6a24;
0x000035bc bal 0x4668 | sym_fopivot ();
0x000035c0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000035c4 beqz v0, 0x3204 | goto label_4;
| }
0x000035c8 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x000035cc b 0x35a0 | goto label_8;
| }
[*] Function system used 3 times libfstools.so