[*] Binary protection state of libstdc++.so.6.0.25
Partial RELRO No Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function strcat tear down of libstdc++.so.6.0.25
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xb55f4 */
| #include <stdint.h>
|
; (fcn) fcn.000b55f4 () | void fcn_000b55f4 () {
0x000b55f4 lui gp, 0xf |
0x000b55f8 addiu gp, gp, -0x1554 |
0x000b55fc addu gp, gp, t9 | gp += t9;
0x000b5600 lw v0, (a1) | v0 = *(a1);
0x000b5604 addiu sp, sp, -0x30 |
0x000b5608 lw t9, 0xc(v0) | t9 = *((v0 + 3));
0x000b560c sw s1, 0x28(sp) | *(var_28h) = s1;
0x000b5610 sw s0, 0x24(sp) | *(var_24h) = s0;
0x000b5614 addiu s1, sp, 0x18 | s1 = sp + 0x18;
0x000b5618 move s0, a2 | s0 = a2;
0x000b561c move a2, a3 | a2 = a3;
0x000b5620 lw a3, 0x40(sp) | a3 = *(arg_40h);
0x000b5624 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000b5628 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x000b562c move a0, s1 | a0 = s1;
0x000b5630 jalr t9 | t9 ();
0x000b5634 lw t9, 0x18(s0) | t9 = *((s0 + 6));
0x000b5638 lw gp, 0x10(sp) | gp = *(var_10h);
| if (t9 != 0) {
0x000b563c beqz t9, 0xb564c |
0x000b5640 move a0, s0 | a0 = s0;
0x000b5644 jalr t9 | t9 ();
0x000b5648 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x000b564c lw t9, -0x7a90(gp) | t9 = *((gp - 7844));
0x000b5650 move a1, s1 | a1 = s1;
0x000b5654 move a0, s0 | a0 = s0;
0x000b5658 jalr t9 | t9 ();
0x000b565c lw v1, 0x18(sp) | v1 = *(var_18h);
0x000b5660 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b5664 addiu a0, v1, -0xc | a0 = v1 + -0xc;
0x000b5668 lw v0, -0xc(v1) | v0 = *((v1 - 3));
0x000b566c lw a1, -0x6ed4(gp) | a1 = *((gp - 7093));
0x000b5670 sw v0, 4(s0) | *((s0 + 1)) = v0;
0x000b5674 lw v0, -0x7fa8(gp) | v0 = *((gp - 8170));
0x000b5678 addiu v0, v0, 0x3c64 | v0 += 0x3c64;
0x000b567c sw v0, 0x18(s0) | *((s0 + 6)) = v0;
| if (a0 == a1) {
0x000b5680 bne a0, a1, 0xb5698 |
0x000b5684 lw ra, 0x2c(sp) | ra = *(var_2ch);
| label_0:
0x000b5688 lw s1, 0x28(sp) | s1 = *(var_28h);
0x000b568c lw s0, 0x24(sp) | s0 = *(var_24h);
0x000b5690 addiu sp, sp, 0x30 |
0x000b5694 jr ra | return v0;
| }
0x000b5698 lw v0, -0x75a0(gp) | v0 = *((gp - 7528));
| if (v0 == 0) {
0x000b569c beql v0, zero, 0xb56dc | goto label_2;
| }
0x000b56a0 lw v0, -4(v1) | v0 = *((v1 - 1));
0x000b56a4 sync | __asm ("sync");
| do {
0x000b56a8 ll v0, -4(v1) | __asm ("ll v0, -4(v1)");
0x000b56ac addiu at, v0, -1 | at = v0 + -1;
0x000b56b0 sc at, -4(v1) | __asm ("sc at, -4(v1)");
0x000b56b4 beqz at, 0xb56a8 |
| } while (at == 0);
0x000b56b8 nop |
0x000b56bc sync | __asm ("sync");
| if (v0 > 0) {
| label_1:
0x000b56c0 bgtzl v0, 0xb5688 | goto label_0;
| }
0x000b56c4 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000b56c8 lw t9, -0x67a8(gp) | t9 = *((gp - 6634));
0x000b56cc addiu a1, sp, 0x1c | a1 = sp + 0x1c;
0x000b56d0 jalr t9 | t9 ();
0x000b56d4 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000b56d8 b 0xb5688 | goto label_0;
| label_2:
0x000b56dc addiu a1, v0, -1 | a1 = v0 + -1;
0x000b56e0 sw a1, -4(v1) | *((v1 - 1)) = a1;
0x000b56e4 b 0xb56c0 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xb5724 */
| #include <stdint.h>
|
; (fcn) fcn.000b5724 () | void fcn_000b5724 () {
0x000b5724 lui gp, 0xf |
0x000b5728 addiu gp, gp, -0x1684 |
0x000b572c addu gp, gp, t9 | gp += t9;
0x000b5730 lw v0, (a1) | v0 = *(a1);
0x000b5734 addiu sp, sp, -0x30 |
0x000b5738 lw t9, 0xc(v0) | t9 = *((v0 + 3));
0x000b573c sw s1, 0x28(sp) | *(var_28h) = s1;
0x000b5740 sw s0, 0x24(sp) | *(var_24h) = s0;
0x000b5744 addiu s1, sp, 0x18 | s1 = sp + 0x18;
0x000b5748 move s0, a2 | s0 = a2;
0x000b574c move a2, a3 | a2 = a3;
0x000b5750 lw a3, 0x40(sp) | a3 = *(arg_40h);
0x000b5754 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000b5758 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x000b575c move a0, s1 | a0 = s1;
0x000b5760 jalr t9 | t9 ();
0x000b5764 lw t9, 0x18(s0) | t9 = *((s0 + 6));
0x000b5768 lw gp, 0x10(sp) | gp = *(var_10h);
| if (t9 != 0) {
0x000b576c beqz t9, 0xb577c |
0x000b5770 move a0, s0 | a0 = s0;
0x000b5774 jalr t9 | t9 ();
0x000b5778 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x000b577c lw t9, -0x6cbc(gp) | t9 = *((gp - 6959));
0x000b5780 move a1, s1 | a1 = s1;
0x000b5784 move a0, s0 | a0 = s0;
0x000b5788 jalr t9 | t9 ();
0x000b578c lw v1, 0x18(sp) | v1 = *(var_18h);
0x000b5790 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b5794 addiu a0, v1, -0xc | a0 = v1 + -0xc;
0x000b5798 lw v0, -0xc(v1) | v0 = *((v1 - 3));
0x000b579c lw a1, -0x712c(gp) | a1 = *((gp - 7243));
0x000b57a0 sw v0, 4(s0) | *((s0 + 1)) = v0;
0x000b57a4 lw v0, -0x7fa8(gp) | v0 = *((gp - 8170));
0x000b57a8 addiu v0, v0, 0x3280 | v0 += 0x3280;
0x000b57ac sw v0, 0x18(s0) | *((s0 + 6)) = v0;
| if (a0 == a1) {
0x000b57b0 bne a0, a1, 0xb57c8 |
0x000b57b4 lw ra, 0x2c(sp) | ra = *(var_2ch);
| label_0:
0x000b57b8 lw s1, 0x28(sp) | s1 = *(var_28h);
0x000b57bc lw s0, 0x24(sp) | s0 = *(var_24h);
0x000b57c0 addiu sp, sp, 0x30 |
0x000b57c4 jr ra | return v0;
| }
0x000b57c8 lw v0, -0x75a0(gp) | v0 = *((gp - 7528));
| if (v0 == 0) {
0x000b57cc beql v0, zero, 0xb580c | goto label_2;
| }
0x000b57d0 lw v0, -4(v1) | v0 = *((v1 - 1));
0x000b57d4 sync | __asm ("sync");
| do {
0x000b57d8 ll v0, -4(v1) | __asm ("ll v0, -4(v1)");
0x000b57dc addiu at, v0, -1 | at = v0 + -1;
0x000b57e0 sc at, -4(v1) | __asm ("sc at, -4(v1)");
0x000b57e4 beqz at, 0xb57d8 |
| } while (at == 0);
0x000b57e8 nop |
0x000b57ec sync | __asm ("sync");
| if (v0 > 0) {
| label_1:
0x000b57f0 bgtzl v0, 0xb57b8 | goto label_0;
| }
0x000b57f4 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000b57f8 lw t9, -0x7890(gp) | t9 = *(gp);
0x000b57fc addiu a1, sp, 0x1c | a1 = sp + 0x1c;
0x000b5800 jalr t9 | t9 ();
0x000b5804 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000b5808 b 0xb57b8 | goto label_0;
| label_2:
0x000b580c addiu a1, v0, -1 | a1 = v0 + -1;
0x000b5810 sw a1, -4(v1) | *((v1 - 1)) = a1;
0x000b5814 b 0xb57f0 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xb6d1c */
| #include <stdint.h>
|
; (fcn) fcn.000b6d1c () | void fcn_000b6d1c () {
0x000b6d1c lui gp, 0xf |
0x000b6d20 addiu gp, gp, -0x2c7c |
0x000b6d24 addu gp, gp, t9 | gp += t9;
0x000b6d28 addiu sp, sp, -0x48 |
0x000b6d2c lw t9, -0x6d24(gp) | t9 = *((gp - 6985));
0x000b6d30 sw s2, 0x3c(sp) | *(var_3ch) = s2;
0x000b6d34 sw s1, 0x38(sp) | *(var_38h) = s1;
0x000b6d38 move s2, a1 | s2 = a1;
0x000b6d3c addiu s1, sp, 0x24 | s1 = sp + 0x24;
0x000b6d40 sw s0, 0x34(sp) | *(var_34h) = s0;
0x000b6d44 lw a1, 0x60(sp) | a1 = *(arg_60h);
0x000b6d48 move s0, a2 | s0 = a2;
0x000b6d4c lw a2, 0x64(sp) | a2 = *(arg_64h);
0x000b6d50 move a0, s1 | a0 = s1;
0x000b6d54 sw s3, 0x40(sp) | *(var_40h) = s3;
0x000b6d58 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000b6d5c move s3, a3 | s3 = a3;
0x000b6d60 sw ra, 0x44(sp) | *(var_44h) = ra;
0x000b6d64 addiu a3, sp, 0x2c | a3 = sp + 0x2c;
0x000b6d68 jalr t9 | t9 ();
0x000b6d6c lw v0, (s2) | v0 = *(s2);
0x000b6d70 lw v1, 0x5c(sp) | v1 = *(arg_5ch);
0x000b6d74 sw s1, 0x14(sp) | *(var_14h) = s1;
0x000b6d78 sw v1, 0x10(sp) | *(var_10h) = v1;
0x000b6d7c addiu s1, sp, 0x20 | s1 = sp + 0x20;
0x000b6d80 lw t9, 0xc(v0) | t9 = *((v0 + 3));
0x000b6d84 lw a3, 0x58(sp) | a3 = *(arg_58h);
0x000b6d88 move a2, s3 | a2 = s3;
0x000b6d8c move a1, s2 | a1 = s2;
0x000b6d90 move a0, s1 | a0 = s1;
0x000b6d94 jalr t9 | t9 ();
0x000b6d98 lw t9, 0x18(s0) | t9 = *((s0 + 6));
0x000b6d9c lw gp, 0x18(sp) | gp = *(var_18h);
| if (t9 != 0) {
0x000b6da0 beqz t9, 0xb6db0 |
0x000b6da4 move a0, s0 | a0 = s0;
0x000b6da8 jalr t9 | t9 ();
0x000b6dac lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x000b6db0 lw t9, -0x7a90(gp) | t9 = *((gp - 7844));
0x000b6db4 move a1, s1 | a1 = s1;
0x000b6db8 move a0, s0 | a0 = s0;
0x000b6dbc jalr t9 | t9 ();
0x000b6dc0 lw v1, 0x20(sp) | v1 = *(var_20h);
0x000b6dc4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000b6dc8 addiu a0, v1, -0xc | a0 = v1 + -0xc;
0x000b6dcc lw v0, -0xc(v1) | v0 = *((v1 - 3));
0x000b6dd0 lw s2, -0x6ed4(gp) | s2 = *((gp - 7093));
0x000b6dd4 sw v0, 4(s0) | *((s0 + 1)) = v0;
0x000b6dd8 lw v0, -0x7fa8(gp) | v0 = *((gp - 8170));
0x000b6ddc addiu v0, v0, 0x3c64 | v0 += 0x3c64;
0x000b6de0 sw v0, 0x18(s0) | *((s0 + 6)) = v0;
| if (a0 == s2) {
0x000b6de4 bne a0, s2, 0xb6e14 |
| label_1:
0x000b6de8 lw v0, 0x24(sp) | v0 = *(var_24h);
| label_0:
0x000b6dec addiu a0, v0, -0xc | a0 = v0 + -0xc;
0x000b6df0 lw v1, -0x75a0(gp) | v1 = *((gp - 7528));
| if (a0 == s2) {
0x000b6df4 bnel a0, s2, 0xb6e58 | goto label_5;
| }
0x000b6df8 lw ra, 0x44(sp) | ra = *(var_44h);
| label_2:
0x000b6dfc lw s3, 0x40(sp) | s3 = *(var_40h);
0x000b6e00 lw s2, 0x3c(sp) | s2 = *(var_3ch);
0x000b6e04 lw s1, 0x38(sp) | s1 = *(var_38h);
0x000b6e08 lw s0, 0x34(sp) | s0 = *(var_34h);
0x000b6e0c addiu sp, sp, 0x48 |
0x000b6e10 jr ra | return v1;
| }
0x000b6e14 lw v0, -0x75a0(gp) | v0 = *((gp - 7528));
| if (v0 == 0) {
0x000b6e18 beql v0, zero, 0xb6ea4 | goto label_6;
| }
0x000b6e1c lw v0, -4(v1) | v0 = *((v1 - 1));
0x000b6e20 sync | __asm ("sync");
| do {
0x000b6e24 ll v0, -4(v1) | __asm ("ll v0, -4(v1)");
0x000b6e28 addiu at, v0, -1 | at = v0 + -1;
0x000b6e2c sc at, -4(v1) | __asm ("sc at, -4(v1)");
0x000b6e30 beqz at, 0xb6e24 |
| } while (at == 0);
0x000b6e34 nop |
0x000b6e38 sync | __asm ("sync");
| label_4:
0x000b6e3c lw v0, 0x24(sp) | v0 = *(var_24h);
| if (v0 > 0) {
0x000b6e40 bgtz v0, 0xb6dec | goto label_0;
| }
0x000b6e44 lw t9, -0x67a8(gp) | t9 = *((gp - 6634));
0x000b6e48 addiu a1, sp, 0x28 | a1 = sp + 0x28;
0x000b6e4c jalr t9 | t9 ();
0x000b6e50 lw gp, 0x18(sp) | gp = *(var_18h);
0x000b6e54 b 0xb6de8 | goto label_1;
| if (v1 == 0) {
| label_5:
0x000b6e58 beql v1, zero, 0xb6e98 | goto label_7;
| }
0x000b6e5c lw v1, -4(v0) | v1 = *((v0 - 1));
0x000b6e60 sync | __asm ("sync");
| do {
0x000b6e64 ll v1, -4(v0) | __asm ("ll v1, -4(v0)");
0x000b6e68 addiu at, v1, -1 | at = v1 + -1;
0x000b6e6c sc at, -4(v0) | __asm ("sc at, -4(v0)");
0x000b6e70 beqz at, 0xb6e64 |
| } while (at == 0);
0x000b6e74 nop |
0x000b6e78 sync | __asm ("sync");
| if (v1 > 0) {
| label_3:
0x000b6e7c bgtzl v1, 0xb6dfc | goto label_2;
| }
0x000b6e80 lw ra, 0x44(sp) | ra = *(var_44h);
0x000b6e84 lw t9, -0x67a8(gp) | t9 = *((gp - 6634));
0x000b6e88 move a1, s1 | a1 = s1;
0x000b6e8c jalr t9 | t9 ();
0x000b6e90 lw ra, 0x44(sp) | ra = *(var_44h);
0x000b6e94 b 0xb6dfc | goto label_2;
| label_7:
0x000b6e98 addiu a1, v1, -1 | a1 = v1 + -1;
0x000b6e9c sw a1, -4(v0) | *((v0 - 1)) = a1;
0x000b6ea0 b 0xb6e7c | goto label_3;
| label_6:
0x000b6ea4 addiu a1, v0, -1 | a1 = v0 + -1;
0x000b6ea8 sw a1, -4(v1) | *((v1 - 1)) = a1;
0x000b6eac b 0xb6e3c | goto label_4;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xb6f1c */
| #include <stdint.h>
|
; (fcn) fcn.000b6f1c () | void fcn_000b6f1c () {
0x000b6f1c lui gp, 0xf |
0x000b6f20 addiu gp, gp, -0x2e7c |
0x000b6f24 addu gp, gp, t9 | gp += t9;
0x000b6f28 addiu sp, sp, -0x48 |
0x000b6f2c lw t9, -0x703c(gp) | t9 = *(gp);
0x000b6f30 sw s2, 0x3c(sp) | *(var_3ch) = s2;
0x000b6f34 sw s1, 0x38(sp) | *(var_38h) = s1;
0x000b6f38 move s2, a1 | s2 = a1;
0x000b6f3c addiu s1, sp, 0x24 | s1 = sp + 0x24;
0x000b6f40 sw s0, 0x34(sp) | *(var_34h) = s0;
0x000b6f44 lw a1, 0x60(sp) | a1 = *(arg_60h);
0x000b6f48 move s0, a2 | s0 = a2;
0x000b6f4c lw a2, 0x64(sp) | a2 = *(arg_64h);
0x000b6f50 move a0, s1 | a0 = s1;
0x000b6f54 sw s3, 0x40(sp) | *(var_40h) = s3;
0x000b6f58 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000b6f5c move s3, a3 | s3 = a3;
0x000b6f60 sw ra, 0x44(sp) | *(var_44h) = ra;
0x000b6f64 addiu a3, sp, 0x2c | a3 = sp + 0x2c;
0x000b6f68 jalr t9 | t9 ();
0x000b6f6c lw v0, (s2) | v0 = *(s2);
0x000b6f70 lw v1, 0x5c(sp) | v1 = *(arg_5ch);
0x000b6f74 sw s1, 0x14(sp) | *(var_14h) = s1;
0x000b6f78 sw v1, 0x10(sp) | *(var_10h) = v1;
0x000b6f7c addiu s1, sp, 0x20 | s1 = sp + 0x20;
0x000b6f80 lw t9, 0xc(v0) | t9 = *((v0 + 3));
0x000b6f84 lw a3, 0x58(sp) | a3 = *(arg_58h);
0x000b6f88 move a2, s3 | a2 = s3;
0x000b6f8c move a1, s2 | a1 = s2;
0x000b6f90 move a0, s1 | a0 = s1;
0x000b6f94 jalr t9 | t9 ();
0x000b6f98 lw t9, 0x18(s0) | t9 = *((s0 + 6));
0x000b6f9c lw gp, 0x18(sp) | gp = *(var_18h);
| if (t9 != 0) {
0x000b6fa0 beqz t9, 0xb6fb0 |
0x000b6fa4 move a0, s0 | a0 = s0;
0x000b6fa8 jalr t9 | t9 ();
0x000b6fac lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x000b6fb0 lw t9, -0x6cbc(gp) | t9 = *((gp - 6959));
0x000b6fb4 move a1, s1 | a1 = s1;
0x000b6fb8 move a0, s0 | a0 = s0;
0x000b6fbc jalr t9 | t9 ();
0x000b6fc0 lw v1, 0x20(sp) | v1 = *(var_20h);
0x000b6fc4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000b6fc8 addiu a0, v1, -0xc | a0 = v1 + -0xc;
0x000b6fcc lw v0, -0xc(v1) | v0 = *((v1 - 3));
0x000b6fd0 lw s2, -0x712c(gp) | s2 = *((gp - 7243));
0x000b6fd4 sw v0, 4(s0) | *((s0 + 1)) = v0;
0x000b6fd8 lw v0, -0x7fa8(gp) | v0 = *((gp - 8170));
0x000b6fdc addiu v0, v0, 0x3280 | v0 += 0x3280;
0x000b6fe0 sw v0, 0x18(s0) | *((s0 + 6)) = v0;
| if (a0 == s2) {
0x000b6fe4 bne a0, s2, 0xb7014 |
| label_1:
0x000b6fe8 lw v0, 0x24(sp) | v0 = *(var_24h);
| label_0:
0x000b6fec addiu a0, v0, -0xc | a0 = v0 + -0xc;
0x000b6ff0 lw v1, -0x75a0(gp) | v1 = *((gp - 7528));
| if (a0 == s2) {
0x000b6ff4 bnel a0, s2, 0xb7058 | goto label_5;
| }
0x000b6ff8 lw ra, 0x44(sp) | ra = *(var_44h);
| label_2:
0x000b6ffc lw s3, 0x40(sp) | s3 = *(var_40h);
0x000b7000 lw s2, 0x3c(sp) | s2 = *(var_3ch);
0x000b7004 lw s1, 0x38(sp) | s1 = *(var_38h);
0x000b7008 lw s0, 0x34(sp) | s0 = *(var_34h);
0x000b700c addiu sp, sp, 0x48 |
0x000b7010 jr ra | return v1;
| }
0x000b7014 lw v0, -0x75a0(gp) | v0 = *((gp - 7528));
| if (v0 == 0) {
0x000b7018 beql v0, zero, 0xb70a4 | goto label_6;
| }
0x000b701c lw v0, -4(v1) | v0 = *((v1 - 1));
0x000b7020 sync | __asm ("sync");
| do {
0x000b7024 ll v0, -4(v1) | __asm ("ll v0, -4(v1)");
0x000b7028 addiu at, v0, -1 | at = v0 + -1;
0x000b702c sc at, -4(v1) | __asm ("sc at, -4(v1)");
0x000b7030 beqz at, 0xb7024 |
| } while (at == 0);
0x000b7034 nop |
0x000b7038 sync | __asm ("sync");
| label_4:
0x000b703c lw v0, 0x24(sp) | v0 = *(var_24h);
| if (v0 > 0) {
0x000b7040 bgtz v0, 0xb6fec | goto label_0;
| }
0x000b7044 lw t9, -0x7890(gp) | t9 = *(gp);
0x000b7048 addiu a1, sp, 0x28 | a1 = sp + 0x28;
0x000b704c jalr t9 | t9 ();
0x000b7050 lw gp, 0x18(sp) | gp = *(var_18h);
0x000b7054 b 0xb6fe8 | goto label_1;
| if (v1 == 0) {
| label_5:
0x000b7058 beql v1, zero, 0xb7098 | goto label_7;
| }
0x000b705c lw v1, -4(v0) | v1 = *((v0 - 1));
0x000b7060 sync | __asm ("sync");
| do {
0x000b7064 ll v1, -4(v0) | __asm ("ll v1, -4(v0)");
0x000b7068 addiu at, v1, -1 | at = v1 + -1;
0x000b706c sc at, -4(v0) | __asm ("sc at, -4(v0)");
0x000b7070 beqz at, 0xb7064 |
| } while (at == 0);
0x000b7074 nop |
0x000b7078 sync | __asm ("sync");
| if (v1 > 0) {
| label_3:
0x000b707c bgtzl v1, 0xb6ffc | goto label_2;
| }
0x000b7080 lw ra, 0x44(sp) | ra = *(var_44h);
0x000b7084 lw t9, -0x7890(gp) | t9 = *(gp);
0x000b7088 move a1, s1 | a1 = s1;
0x000b708c jalr t9 | t9 ();
0x000b7090 lw ra, 0x44(sp) | ra = *(var_44h);
0x000b7094 b 0xb6ffc | goto label_2;
| label_7:
0x000b7098 addiu a1, v1, -1 | a1 = v1 + -1;
0x000b709c sw a1, -4(v0) | *((v0 - 1)) = a1;
0x000b70a0 b 0xb707c | goto label_3;
| label_6:
0x000b70a4 addiu a1, v0, -1 | a1 = v0 + -1;
0x000b70a8 sw a1, -4(v1) | *((v1 - 1)) = a1;
0x000b70ac b 0xb703c | goto label_4;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xbc978 */
| #include <stdint.h>
|
; (fcn) fcn.000bc978 () | void fcn_000bc978 () {
0x000bc978 lui gp, 0xe |
0x000bc97c addiu gp, gp, 0x7728 |
0x000bc980 addu gp, gp, t9 | gp += t9;
0x000bc984 lw v0, (a1) | v0 = *(a1);
0x000bc988 addiu sp, sp, -0x38 |
0x000bc98c sw s0, 0x30(sp) | *(var_30h) = s0;
0x000bc990 lw t9, 0xc(v0) | t9 = *((v0 + 3));
0x000bc994 move s0, a2 | s0 = a2;
0x000bc998 move a2, a3 | a2 = a3;
0x000bc99c lw a3, 0x48(sp) | a3 = *(arg_48h);
0x000bc9a0 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000bc9a4 sw ra, 0x34(sp) | *(var_34h) = ra;
0x000bc9a8 addiu a0, sp, 0x18 | a0 = sp + 0x18;
0x000bc9ac jalr t9 | t9 ();
0x000bc9b0 lw t9, 0x18(s0) | t9 = *((s0 + 6));
0x000bc9b4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (t9 != 0) {
0x000bc9b8 beqz t9, 0xbc9c8 |
0x000bc9bc move a0, s0 | a0 = s0;
0x000bc9c0 jalr t9 | t9 ();
0x000bc9c4 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x000bc9c8 lw a1, 0x18(sp) | a1 = *(var_18h);
0x000bc9cc lw a2, 0x1c(sp) | a2 = *(var_1ch);
0x000bc9d0 addiu v0, s0, 8 | v0 = s0 + 8;
0x000bc9d4 lw t9, -0x6b14(gp) | t9 = *((gp - 6853));
0x000bc9d8 sw v0, (s0) | *(s0) = v0;
0x000bc9dc move a3, zero | a3 = 0;
0x000bc9e0 addu a2, a1, a2 | a2 = a1 + a2;
0x000bc9e4 move a0, s0 | a0 = s0;
0x000bc9e8 jalr t9 | t9 ();
0x000bc9ec lw gp, 0x10(sp) | gp = *(var_10h);
0x000bc9f0 lw a0, 0x18(sp) | a0 = *(var_18h);
0x000bc9f4 lw v0, -0x7c98(gp) | v0 = *((gp - 7974));
0x000bc9f8 addiu v0, v0, -0x6664 | v0 += -0x6664;
0x000bc9fc sw v0, 0x18(s0) | *((s0 + 6)) = v0;
0x000bca00 addiu v0, sp, 0x20 | v0 = sp + 0x20;
0x000bca04 lw t9, -0x6b24(gp) | t9 = *((gp - 6857));
| if (a0 != v0) {
0x000bca08 beq a0, v0, 0xbca14 |
0x000bca0c jalr t9 | t9 ();
0x000bca10 nop |
| }
0x000bca14 lw ra, 0x34(sp) | ra = *(var_34h);
0x000bca18 lw s0, 0x30(sp) | s0 = *(var_30h);
0x000bca1c addiu sp, sp, 0x38 |
0x000bca20 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xbca54 */
| #include <stdint.h>
|
; (fcn) fcn.000bca54 () | void fcn_000bca54 () {
0x000bca54 lui gp, 0xe |
0x000bca58 addiu gp, gp, 0x764c |
0x000bca5c addu gp, gp, t9 | gp += t9;
0x000bca60 lw v0, (a1) | v0 = *(a1);
0x000bca64 addiu sp, sp, -0x38 |
0x000bca68 sw s0, 0x30(sp) | *(var_30h) = s0;
0x000bca6c lw t9, 0xc(v0) | t9 = *((v0 + 3));
0x000bca70 move s0, a2 | s0 = a2;
0x000bca74 move a2, a3 | a2 = a3;
0x000bca78 lw a3, 0x48(sp) | a3 = *(arg_48h);
0x000bca7c sw gp, 0x10(sp) | *(var_10h) = gp;
0x000bca80 sw ra, 0x34(sp) | *(var_34h) = ra;
0x000bca84 addiu a0, sp, 0x18 | a0 = sp + 0x18;
0x000bca88 jalr t9 | t9 ();
0x000bca8c lw t9, 0x18(s0) | t9 = *((s0 + 6));
0x000bca90 lw gp, 0x10(sp) | gp = *(var_10h);
| if (t9 != 0) {
0x000bca94 beqz t9, 0xbcaa4 |
0x000bca98 move a0, s0 | a0 = s0;
0x000bca9c jalr t9 | t9 ();
0x000bcaa0 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x000bcaa4 lw a2, 0x1c(sp) | a2 = *(var_1ch);
0x000bcaa8 lw a1, 0x18(sp) | a1 = *(var_18h);
0x000bcaac addiu v0, s0, 8 | v0 = s0 + 8;
0x000bcab0 sll a2, a2, 2 | a2 <<= 2;
0x000bcab4 lw t9, -0x75fc(gp) | t9 = *((gp - 7551));
0x000bcab8 sw v0, (s0) | *(s0) = v0;
0x000bcabc move a3, zero | a3 = 0;
0x000bcac0 addu a2, a1, a2 | a2 = a1 + a2;
0x000bcac4 move a0, s0 | a0 = s0;
0x000bcac8 jalr t9 | t9 ();
0x000bcacc lw gp, 0x10(sp) | gp = *(var_10h);
0x000bcad0 lw a0, 0x18(sp) | a0 = *(var_18h);
0x000bcad4 lw v0, -0x7c98(gp) | v0 = *((gp - 7974));
0x000bcad8 addiu v0, v0, -0x6638 | v0 += -aav.0x00006638;
0x000bcadc sw v0, 0x18(s0) | *((s0 + 6)) = v0;
0x000bcae0 addiu v0, sp, 0x20 | v0 = sp + 0x20;
0x000bcae4 lw t9, -0x6b24(gp) | t9 = *((gp - 6857));
| if (a0 != v0) {
0x000bcae8 beq a0, v0, 0xbcaf4 |
0x000bcaec jalr t9 | t9 ();
0x000bcaf0 nop |
| }
0x000bcaf4 lw ra, 0x34(sp) | ra = *(var_34h);
0x000bcaf8 lw s0, 0x30(sp) | s0 = *(var_30h);
0x000bcafc addiu sp, sp, 0x38 |
0x000bcb00 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xbd9e4 */
| #include <stdint.h>
|
; (fcn) fcn.000bd9e4 () | void fcn_000bd9e4 () {
0x000bd9e4 lui gp, 0xe |
0x000bd9e8 addiu gp, gp, 0x66bc |
0x000bd9ec addu gp, gp, t9 | gp += t9;
0x000bd9f0 addiu sp, sp, -0x68 |
0x000bd9f4 lw t9, -0x75ec(gp) | t9 = *((gp - 7547));
0x000bd9f8 lw v0, 0x80(sp) | v0 = *(arg_80h);
0x000bd9fc sw s0, 0x50(sp) | *(var_50h) = s0;
0x000bda00 move s0, a2 | s0 = a2;
0x000bda04 lw a2, 0x84(sp) | a2 = *(arg_84h);
0x000bda08 sw s3, 0x5c(sp) | *(var_5ch) = s3;
0x000bda0c sw s2, 0x58(sp) | *(var_58h) = s2;
0x000bda10 move s3, a1 | s3 = a1;
0x000bda14 sw s1, 0x54(sp) | *(var_54h) = s1;
0x000bda18 addiu s2, sp, 0x40 | s2 = sp + 0x40;
0x000bda1c addiu s1, sp, 0x38 | s1 = sp + 0x38;
0x000bda20 move a1, v0 | a1 = v0;
0x000bda24 addu a2, v0, a2 | a2 = v0 + a2;
0x000bda28 sw s4, 0x60(sp) | *(var_60h) = s4;
0x000bda2c sw gp, 0x18(sp) | *(var_18h) = gp;
0x000bda30 move s4, a3 | s4 = a3;
0x000bda34 move a0, s1 | a0 = s1;
0x000bda38 sw ra, 0x64(sp) | *(var_64h) = ra;
0x000bda3c sw s2, 0x38(sp) | *(var_38h) = s2;
0x000bda40 move a3, zero | a3 = 0;
0x000bda44 jalr t9 | t9 ();
0x000bda48 lw v0, (s3) | v0 = *(s3);
0x000bda4c lw v1, 0x7c(sp) | v1 = *(arg_7ch);
0x000bda50 sw s1, 0x14(sp) | *(var_14h) = s1;
0x000bda54 sw v1, 0x10(sp) | *(var_10h) = v1;
0x000bda58 lw t9, 0xc(v0) | t9 = *((v0 + 3));
0x000bda5c lw a3, 0x78(sp) | a3 = *(arg_78h);
0x000bda60 move a2, s4 | a2 = s4;
0x000bda64 move a1, s3 | a1 = s3;
0x000bda68 addiu a0, sp, 0x20 | a0 = sp + 0x20;
0x000bda6c jalr t9 | t9 ();
0x000bda70 lw t9, 0x18(s0) | t9 = *((s0 + 6));
0x000bda74 lw gp, 0x18(sp) | gp = *(var_18h);
| if (t9 != 0) {
0x000bda78 beqz t9, 0xbda88 |
0x000bda7c move a0, s0 | a0 = s0;
0x000bda80 jalr t9 | t9 ();
0x000bda84 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x000bda88 lw a1, 0x20(sp) | a1 = *(var_20h);
0x000bda8c lw a2, 0x24(sp) | a2 = *(var_24h);
0x000bda90 addiu v0, s0, 8 | v0 = s0 + 8;
0x000bda94 lw t9, -0x6b14(gp) | t9 = *((gp - 6853));
0x000bda98 sw v0, (s0) | *(s0) = v0;
0x000bda9c move a3, zero | a3 = 0;
0x000bdaa0 addu a2, a1, a2 | a2 = a1 + a2;
0x000bdaa4 move a0, s0 | a0 = s0;
0x000bdaa8 jalr t9 | t9 ();
0x000bdaac lw gp, 0x18(sp) | gp = *(var_18h);
0x000bdab0 lw a0, 0x20(sp) | a0 = *(var_20h);
0x000bdab4 lw v0, -0x7c98(gp) | v0 = *((gp - 7974));
0x000bdab8 addiu v0, v0, -0x6664 | v0 += -0x6664;
0x000bdabc sw v0, 0x18(s0) | *((s0 + 6)) = v0;
0x000bdac0 addiu v0, sp, 0x28 | v0 = sp + 0x28;
0x000bdac4 lw t9, -0x6b24(gp) | t9 = *((gp - 6857));
| if (a0 != v0) {
0x000bdac8 beq a0, v0, 0xbdad8 |
0x000bdacc jalr t9 | t9 ();
0x000bdad0 nop |
0x000bdad4 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x000bdad8 lw a0, 0x38(sp) | a0 = *(var_38h);
0x000bdadc lw t9, -0x6b24(gp) | t9 = *((gp - 6857));
| if (a0 != s2) {
0x000bdae0 beq a0, s2, 0xbdaec |
0x000bdae4 jalr t9 | t9 ();
0x000bdae8 nop |
| }
0x000bdaec lw ra, 0x64(sp) | ra = *(var_64h);
0x000bdaf0 lw s4, 0x60(sp) | s4 = *(var_60h);
0x000bdaf4 lw s3, 0x5c(sp) | s3 = *(var_5ch);
0x000bdaf8 lw s2, 0x58(sp) | s2 = *(var_58h);
0x000bdafc lw s1, 0x54(sp) | s1 = *(var_54h);
0x000bdb00 lw s0, 0x50(sp) | s0 = *(var_50h);
0x000bdb04 addiu sp, sp, 0x68 |
0x000bdb08 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xbdb60 */
| #include <stdint.h>
|
; (fcn) fcn.000bdb60 () | void fcn_000bdb60 () {
0x000bdb60 lui gp, 0xe |
0x000bdb64 addiu gp, gp, 0x6540 |
0x000bdb68 addu gp, gp, t9 | gp += t9;
0x000bdb6c addiu sp, sp, -0x68 |
0x000bdb70 lw t9, -0x7a2c(gp) | t9 = *((gp - 7819));
0x000bdb74 lw v0, 0x84(sp) | v0 = *(arg_84h);
0x000bdb78 lw v1, 0x80(sp) | v1 = *(arg_80h);
0x000bdb7c sll v0, v0, 2 | v0 <<= 2;
0x000bdb80 sw s3, 0x5c(sp) | *(var_5ch) = s3;
0x000bdb84 sw s2, 0x58(sp) | *(var_58h) = s2;
0x000bdb88 move s3, a1 | s3 = a1;
0x000bdb8c sw s1, 0x54(sp) | *(var_54h) = s1;
0x000bdb90 addiu s2, sp, 0x40 | s2 = sp + 0x40;
0x000bdb94 addiu s1, sp, 0x38 | s1 = sp + 0x38;
0x000bdb98 move a1, v1 | a1 = v1;
0x000bdb9c sw s4, 0x60(sp) | *(var_60h) = s4;
0x000bdba0 sw s0, 0x50(sp) | *(var_50h) = s0;
0x000bdba4 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000bdba8 move s4, a3 | s4 = a3;
0x000bdbac move a0, s1 | a0 = s1;
0x000bdbb0 move a3, zero | a3 = 0;
0x000bdbb4 sw ra, 0x64(sp) | *(var_64h) = ra;
0x000bdbb8 move s0, a2 | s0 = a2;
0x000bdbbc sw s2, 0x38(sp) | *(var_38h) = s2;
0x000bdbc0 addu a2, v1, v0 | a2 = v1 + v0;
0x000bdbc4 jalr t9 | t9 ();
0x000bdbc8 lw v0, (s3) | v0 = *(s3);
0x000bdbcc lw v1, 0x7c(sp) | v1 = *(arg_7ch);
0x000bdbd0 sw s1, 0x14(sp) | *(var_14h) = s1;
0x000bdbd4 sw v1, 0x10(sp) | *(var_10h) = v1;
0x000bdbd8 lw t9, 0xc(v0) | t9 = *((v0 + 3));
0x000bdbdc lw a3, 0x78(sp) | a3 = *(arg_78h);
0x000bdbe0 move a2, s4 | a2 = s4;
0x000bdbe4 move a1, s3 | a1 = s3;
0x000bdbe8 addiu a0, sp, 0x20 | a0 = sp + 0x20;
0x000bdbec jalr t9 | t9 ();
0x000bdbf0 lw t9, 0x18(s0) | t9 = *((s0 + 6));
0x000bdbf4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (t9 != 0) {
0x000bdbf8 beqz t9, 0xbdc08 |
0x000bdbfc move a0, s0 | a0 = s0;
0x000bdc00 jalr t9 | t9 ();
0x000bdc04 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x000bdc08 lw a2, 0x24(sp) | a2 = *(var_24h);
0x000bdc0c lw a1, 0x20(sp) | a1 = *(var_20h);
0x000bdc10 addiu v0, s0, 8 | v0 = s0 + 8;
0x000bdc14 sll a2, a2, 2 | a2 <<= 2;
0x000bdc18 lw t9, -0x75fc(gp) | t9 = *((gp - 7551));
0x000bdc1c sw v0, (s0) | *(s0) = v0;
0x000bdc20 move a3, zero | a3 = 0;
0x000bdc24 addu a2, a1, a2 | a2 = a1 + a2;
0x000bdc28 move a0, s0 | a0 = s0;
0x000bdc2c jalr t9 | t9 ();
0x000bdc30 lw gp, 0x18(sp) | gp = *(var_18h);
0x000bdc34 lw a0, 0x20(sp) | a0 = *(var_20h);
0x000bdc38 lw v0, -0x7c98(gp) | v0 = *((gp - 7974));
0x000bdc3c addiu v0, v0, -0x6638 | v0 += -aav.0x00006638;
0x000bdc40 sw v0, 0x18(s0) | *((s0 + 6)) = v0;
0x000bdc44 addiu v0, sp, 0x28 | v0 = sp + 0x28;
0x000bdc48 lw t9, -0x6b24(gp) | t9 = *((gp - 6857));
| if (a0 != v0) {
0x000bdc4c beq a0, v0, 0xbdc5c |
0x000bdc50 jalr t9 | t9 ();
0x000bdc54 nop |
0x000bdc58 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x000bdc5c lw a0, 0x38(sp) | a0 = *(var_38h);
0x000bdc60 lw t9, -0x6b24(gp) | t9 = *((gp - 6857));
| if (a0 != s2) {
0x000bdc64 beq a0, s2, 0xbdc70 |
0x000bdc68 jalr t9 | t9 ();
0x000bdc6c nop |
| }
0x000bdc70 lw ra, 0x64(sp) | ra = *(var_64h);
0x000bdc74 lw s4, 0x60(sp) | s4 = *(var_60h);
0x000bdc78 lw s3, 0x5c(sp) | s3 = *(var_5ch);
0x000bdc7c lw s2, 0x58(sp) | s2 = *(var_58h);
0x000bdc80 lw s1, 0x54(sp) | s1 = *(var_54h);
0x000bdc84 lw s0, 0x50(sp) | s0 = *(var_50h);
0x000bdc88 addiu sp, sp, 0x68 |
0x000bdc8c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xae9b4 */
| #include <stdint.h>
|
; (fcn) method.std::ios_base._M_call_callbacks_std::ios_base::event_ () | void method_std::ios_base_M_call_callbacks_std::ios_base::event_ () {
| /* std::ios_base::_M_call_callbacks(std::ios_base::event) */
0x000ae9b4 lui gp, 0xf |
0x000ae9b8 addiu gp, gp, 0x56ec |
0x000ae9bc addu gp, gp, t9 | gp += t9;
0x000ae9c0 addiu sp, sp, -0x28 |
0x000ae9c4 sw s0, 0x18(sp) | *(var_18h) = s0;
0x000ae9c8 lw s0, 0x18(a0) | s0 = *((a0 + 6));
0x000ae9cc sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x000ae9d0 sw ra, 0x24(sp) | *(var_24h_2) = ra;
0x000ae9d4 sw s2, 0x20(sp) | *(var_20h) = s2;
0x000ae9d8 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x000ae9dc move s1, a0 | s1 = a0;
| if (s0 == 0) {
0x000ae9e0 beqz s0, 0xaea08 | goto label_0;
| }
0x000ae9e4 move s2, a1 | s2 = a1;
0x000ae9e8 lw t9, 4(s0) | t9 = *((s0 + 1));
| do {
0x000ae9ec lw a2, 8(s0) | a2 = *((s0 + 2));
0x000ae9f0 move a1, s1 | a1 = s1;
0x000ae9f4 move a0, s2 | a0 = s2;
0x000ae9f8 jalr t9 | t9 ();
0x000ae9fc lw s0, (s0) | s0 = *(s0);
0x000aea00 lw t9, 4(s0) | t9 = *((s0 + 1));
0x000aea04 bnel s0, zero, 0xae9ec |
| } while (s0 == 0);
| label_0:
0x000aea08 lw ra, 0x24(sp) | ra = *(var_24h_2);
0x000aea0c lw s2, 0x20(sp) | s2 = *(var_20h);
0x000aea10 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000aea14 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000aea18 addiu sp, sp, 0x28 |
0x000aea1c jr ra | return;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xaea6c */
| #include <stdint.h>
|
; (fcn) method.std::ios_base._M_dispose_callbacks__ () | void method_std::ios_base_M_dispose_callbacks_ () {
| /* std::ios_base::_M_dispose_callbacks() */
0x000aea6c lui gp, 0xf |
0x000aea70 addiu gp, gp, 0x5634 |
0x000aea74 addu gp, gp, t9 | gp += t9;
0x000aea78 addiu sp, sp, -0x28 |
0x000aea7c sw s0, 0x18(sp) | *(var_18h) = s0;
0x000aea80 lw s0, 0x18(a0) | s0 = *((a0 + 6));
0x000aea84 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000aea88 sw s2, 0x20(sp) | *(var_20h) = s2;
0x000aea8c sw ra, 0x24(sp) | *(var_24h) = ra;
0x000aea90 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x000aea94 move s2, a0 | s2 = a0;
| if (s0 == 0) {
0x000aea98 beqz s0, 0xaeaf8 | goto label_2;
| }
0x000aea9c lw s1, -0x75a0(gp) | s1 = *((gp - 7528));
0x000aeaa0 b 0xaeadc | goto label_3;
| label_0:
0x000aeaa4 sync | __asm ("sync");
| do {
0x000aeaa8 ll v1, 0xc(s0) | __asm ("ll v1, 0xc(s0)");
0x000aeaac addiu at, v1, -1 | at = v1 + -1;
0x000aeab0 sc at, 0xc(s0) | __asm ("sc at, 0xc(s0)");
0x000aeab4 beqz at, 0xaeaa8 |
| } while (at == 0);
0x000aeab8 nop |
0x000aeabc sync | __asm ("sync");
0x000aeac0 lw t9, -0x6b24(gp) | t9 = *((gp - 6857));
0x000aeac4 move a0, s0 | a0 = s0;
| if (v1 != 0) {
0x000aeac8 bnez v1, 0xaeaf8 | goto label_2;
| }
| label_1:
0x000aeacc lw s0, (s0) | s0 = *(s0);
0x000aead0 jalr t9 | t9 ();
0x000aead4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s0 == 0) {
0x000aead8 beqz s0, 0xaeaf8 | goto label_2;
| }
| label_3:
0x000aeadc lw t9, -0x6b24(gp) | t9 = *((gp - 6857));
| if (s1 != 0) {
0x000aeae0 bnez s1, 0xaeaa4 | goto label_0;
| }
0x000aeae4 lw v1, 0xc(s0) | v1 = *((s0 + 3));
0x000aeae8 addiu a0, v1, -1 | a0 = v1 + -1;
0x000aeaec sw a0, 0xc(s0) | *((s0 + 3)) = a0;
0x000aeaf0 move a0, s0 | a0 = s0;
| if (v1 == 0) {
0x000aeaf4 beqz v1, 0xaeacc | goto label_1;
| }
| label_2:
0x000aeaf8 lw ra, 0x24(sp) | ra = *(var_24h);
0x000aeafc sw zero, 0x18(s2) | *((s2 + 6)) = 0;
0x000aeb00 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000aeb04 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000aeb08 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000aeb0c addiu sp, sp, 0x28 |
0x000aeb10 jr ra | return v1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0x11c5c0 */
| #include <stdint.h>
|
; (fcn) method.std::ostream::sentry.sentry__ () | void method_std::ostream::sentry_sentry_ () {
| /* std::ostream::sentry::~sentry() */
0x0011c5c0 lui gp, 8 |
0x0011c5c4 addiu gp, gp, 0x7ae0 |
0x0011c5c8 addu gp, gp, t9 | gp += t9;
0x0011c5cc lw v0, 4(a0) | v0 = *((a0 + 1));
0x0011c5d0 addiu sp, sp, -0x28 |
0x0011c5d4 lw v1, (v0) | v1 = *(v0);
0x0011c5d8 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x0011c5dc sw gp, 0x10(sp) | *(var_10h) = gp;
0x0011c5e0 lw s0, -0xc(v1) | s0 = *((v1 - 3));
0x0011c5e4 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0011c5e8 addu s0, v0, s0 | s0 = v0 + s0;
0x0011c5ec sw s1, 0x20(sp) | *(var_20h) = s1;
0x0011c5f0 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x0011c5f4 andi v0, v0, 0x2000 | v0 &= aav.0x00002000;
0x0011c5f8 lw ra, 0x24(sp) | ra = *(var_24h);
| if (v0 != 0) {
0x0011c5fc beqz v0, 0x11c640 |
0x0011c600 lw t9, -0x6cd0(gp) | t9 = *((gp - 6964));
0x0011c604 move s1, a0 | s1 = a0;
0x0011c608 jalr t9 | t9 ();
0x0011c60c lw ra, 0x24(sp) | ra = *(var_24h);
| if (v0 != 0) {
0x0011c610 bnez v0, 0x11c640 | goto label_0;
| }
0x0011c614 lw a0, 0x78(s0) | a0 = *((s0 + 30));
| if (a0 == 0) {
0x0011c618 beql a0, zero, 0x11c644 | goto label_1;
| }
0x0011c61c lw s1, 0x20(sp) | s1 = *(var_20h);
0x0011c620 lw v0, (a0) | v0 = *(a0);
0x0011c624 lw t9, 0x18(v0) | t9 = *((v0 + 6));
0x0011c628 jalr t9 | t9 ();
0x0011c62c nop |
0x0011c630 addiu v1, zero, -1 | v1 = -1;
0x0011c634 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == v1) {
0x0011c638 beq v0, v1, 0x11c650 | goto label_2;
| }
0x0011c63c lw ra, 0x24(sp) | ra = *(var_24h);
| }
| label_0:
0x0011c640 lw s1, 0x20(sp) | s1 = *(var_20h);
| label_1:
0x0011c644 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0011c648 addiu sp, sp, 0x28 |
0x0011c64c jr ra | return v0;
| label_2:
0x0011c650 lw v0, 4(s1) | v0 = *((s1 + 1));
0x0011c654 lw ra, 0x24(sp) | ra = *(var_24h);
0x0011c658 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0011c65c lw v1, (v0) | v1 = *(v0);
0x0011c660 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0011c664 lw t9, -0x7904(gp) | t9 = *(gp);
0x0011c668 lw v1, -0xc(v1) | v1 = *((v1 - 3));
0x0011c66c addu v0, v0, v1 | v0 += v1;
0x0011c670 move a0, v0 | a0 = v0;
0x0011c674 lw a1, 0x14(v0) | a1 = *((v0 + 5));
0x0011c678 addiu sp, sp, 0x28 |
0x0011c67c ori a1, a1, 1 | a1 |= 1;
0x0011c680 jr t9 | return t9 ();
| }
[*] Function strcat used 1 times libstdc++.so.6.0.25