[*] Binary protection state of libncurses.so.6
No RELRO No Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function system tear down of libncurses.so.6
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/var/bluetooth/lib/libncurses.so.6 @ 0x26e5c */
| #include <stdint.h>
|
; (fcn) sym._nc_align_termtype () | void nc_align_termtype () {
0x00026e5c lui gp, 3 |
0x00026e60 addiu gp, gp, 0x1d04 |
0x00026e64 addu gp, gp, t9 | gp += t9;
0x00026e68 addiu sp, sp, -0x50 |
0x00026e6c sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x00026e70 sw fp, 0x48(sp) | *(var_48h) = fp;
0x00026e74 sw s7, 0x44(sp) | *(var_44h) = s7;
0x00026e78 sw s6, 0x40(sp) | *(var_40h) = s6;
0x00026e7c sw s5, 0x3c(sp) | *(var_3ch) = s5;
0x00026e80 sw s4, 0x38(sp) | *(var_38h) = s4;
0x00026e84 sw s3, 0x34(sp) | *(var_34h) = s3;
0x00026e88 sw s2, 0x30(sp) | *(var_30h) = s2;
0x00026e8c sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x00026e90 sw s0, 0x28(sp) | *(var_28h) = s0;
0x00026e94 move s1, a0 | s1 = a0;
0x00026e98 lhu s4, 0x22(a0) | s4 = *((a0 + 17));
0x00026e9c move s0, a1 | s0 = a1;
0x00026ea0 lhu s3, 0x24(a0) | s3 = *((a0 + 18));
0x00026ea4 lhu s7, 0x26(a0) | s7 = *((a0 + 19));
0x00026ea8 lhu t8, 0x22(a1) | t8 = *((a1 + 17));
0x00026eac addu s3, s4, s3 | s3 = s4 + s3;
0x00026eb0 lhu fp, 0x24(a1) | fp = *((a1 + 18));
0x00026eb4 addu s3, s3, s7 | s3 += s7;
0x00026eb8 lhu s6, 0x26(a1) | s6 = *((a1 + 19));
0x00026ebc sw gp, 0x18(sp) | *(var_18h) = gp;
0x00026ec0 addu fp, t8, fp | fp = t8 + fp;
0x00026ec4 addu s5, fp, s6 | s5 = fp + s6;
| if (s3 != 0) {
0x00026ec8 bnez s3, 0x270fc | goto label_6;
| }
0x00026ecc lw ra, 0x4c(sp) | ra = *(var_4ch);
| if (s5 == 0) {
0x00026ed0 beqz s5, 0x270d0 | goto label_7;
| }
0x00026ed4 lw t9, -0x7aec(gp) | t9 = *((gp - 7867));
| do {
| label_0:
0x00026ed8 addu a0, s3, s5 | a0 = s3 + s5;
0x00026edc sll a0, a0, 2 | a0 <<= 2;
0x00026ee0 jalr t9 | t9 ();
0x00026ee4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00026ee8 move s2, v0 | s2 = v0;
| if (v0 == 0) {
0x00026eec beqz v0, 0x271b4 | goto label_8;
| }
| if (s7 != 0) {
0x00026ef0 beqz s7, 0x26f00 |
0x00026ef4 nop |
0x00026ef8 lw t9, -0x7fcc(gp) | t9 = *((gp - 8179));
| if (fp != 0) {
0x00026efc bnez fp, 0x27170 | goto label_9;
| }
| }
0x00026f00 lw s6, -0x7fcc(gp) | s6 = *((gp - 8179));
| if (s6 != 0) {
0x00026f04 beqz s6, 0x26f1c |
0x00026f08 lhu t8, 0x24(s1) | t8 = *((s1 + 18));
| label_5:
0x00026f0c addu t8, t8, s4 | t8 += s4;
0x00026f10 lw t9, -0x7fcc(gp) | t9 = *((gp - 8179));
| if (t8 != 0) {
0x00026f14 bnez t8, 0x27198 | goto label_10;
| }
| label_4:
0x00026f18 lw s6, -0x7fcc(gp) | s6 = *((gp - 8179));
| }
0x00026f1c move a2, s4 | a2 = s4;
0x00026f20 lhu t8, 0x22(s0) | t8 = *((s0 + 17));
0x00026f24 move a0, s2 | a0 = s2;
0x00026f28 addiu s6, s6, 0x5db0 | s6 += 0x5db0;
0x00026f2c lw a1, 0x18(s1) | a1 = *((s1 + 6));
0x00026f30 move t9, s6 | t9 = s6;
0x00026f34 lw a3, 0x18(s0) | a3 = *((s0 + 6));
0x00026f38 sw t8, 0x10(sp) | *(var_10h_2) = t8;
0x00026f3c jalr t9 | t9 ();
0x00026f40 move t9, s6 | t9 = s6;
0x00026f44 lhu v1, 0x22(s1) | v1 = *((s1 + 17));
0x00026f48 move s4, v0 | s4 = v0;
0x00026f4c lhu v0, 0x22(s0) | v0 = *((s0 + 17));
0x00026f50 sll a0, s4, 2 | a0 = s4 << 2;
0x00026f54 lw a1, 0x18(s1) | a1 = *((s1 + 6));
0x00026f58 sll v1, v1, 2 | v1 <<= 2;
0x00026f5c lw a3, 0x18(s0) | a3 = *((s0 + 6));
0x00026f60 sll v0, v0, 2 | v0 <<= 2;
0x00026f64 lhu t8, 0x24(s0) | t8 = *((s0 + 18));
0x00026f68 addu a1, a1, v1 | a1 += v1;
0x00026f6c lhu a2, 0x24(s1) | a2 = *((s1 + 18));
0x00026f70 addu a0, s2, a0 | a0 = s2 + a0;
0x00026f74 addu a3, a3, v0 | a3 += v0;
0x00026f78 sw t8, 0x10(sp) | *(var_10h_2) = t8;
0x00026f7c jalr t9 | t9 ();
0x00026f80 move t9, s6 | t9 = s6;
0x00026f84 lhu v1, 0x24(s1) | v1 = *((s1 + 18));
0x00026f88 addu t8, v0, s4 | t8 = v0 + s4;
0x00026f8c lhu a3, 0x24(s0) | a3 = *((s0 + 18));
0x00026f90 move s7, v0 | s7 = v0;
0x00026f94 lhu a1, 0x22(s1) | a1 = *((s1 + 17));
0x00026f98 sll a0, t8, 2 | a0 = t8 << 2;
0x00026f9c lhu v0, 0x22(s0) | v0 = *((s0 + 17));
0x00026fa0 addu a0, s2, a0 | a0 = s2 + a0;
0x00026fa4 lw t0, 0x18(s1) | t0 = *((s1 + 6));
0x00026fa8 addu a1, v1, a1 | a1 = v1 + a1;
0x00026fac addu v0, a3, v0 | v0 = a3 + v0;
0x00026fb0 sll a1, a1, 2 | a1 <<= 2;
0x00026fb4 lw a3, 0x18(s0) | a3 = *((s0 + 6));
0x00026fb8 sll v0, v0, 2 | v0 <<= 2;
0x00026fbc lhu v1, 0x26(s0) | v1 = *((s0 + 19));
0x00026fc0 addu a1, t0, a1 | a1 = t0 + a1;
0x00026fc4 lhu a2, 0x26(s1) | a2 = *((s1 + 19));
0x00026fc8 addu a3, a3, v0 | a3 += v0;
0x00026fcc sw t8, 0x24(sp) | *(var_24h_2) = t8;
0x00026fd0 sw v1, 0x10(sp) | *(var_10h_2) = v1;
0x00026fd4 jalr t9 | t9 ();
0x00026fd8 lw t8, 0x24(sp) | t8 = *(var_24h_2);
0x00026fdc move fp, v0 | fp = v0;
0x00026fe0 addu s6, t8, v0 | s6 = t8 + v0;
0x00026fe4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s6 == s3) {
0x00026fe8 beq s6, s3, 0x27168 | goto label_11;
| }
0x00026fec lw t9, -0x7fcc(gp) | t9 = *((gp - 8179));
0x00026ff0 move a0, s1 | a0 = s1;
0x00026ff4 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00026ff8 move a1, s2 | a1 = s2;
0x00026ffc move a2, s4 | a2 = s4;
0x00027000 addiu t9, t9, 0x5ff0 | t9 += 0x5ff0;
0x00027004 move a3, s7 | a3 = s7;
0x00027008 jalr t9 | t9 ();
0x0002700c lw a0, 0x18(s1) | a0 = *((s1 + 6));
0x00027010 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 != 0) {
0x00027014 beqz a0, 0x27028 |
0x00027018 lw t9, -0x7fac(gp) | t9 = *((gp - 8171));
0x0002701c jalr t9 | t9 ();
0x00027020 nop |
0x00027024 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00027028 sw s2, 0x18(s1) | *((s1 + 6)) = s2;
0x0002702c addiu s1, zero, 1 | s1 = 1;
| label_3:
0x00027030 lw t9, -0x7fcc(gp) | t9 = *((gp - 8179));
| if (s5 != s6) {
0x00027034 beq s5, s6, 0x27090 |
0x00027038 move a0, s0 | a0 = s0;
0x0002703c move a1, s2 | a1 = s2;
0x00027040 sw fp, 0x10(sp) | *(var_10h_2) = fp;
0x00027044 move a2, s4 | a2 = s4;
0x00027048 addiu t9, t9, 0x5ff0 | t9 += 0x5ff0;
0x0002704c move a3, s7 | a3 = s7;
0x00027050 jalr t9 | t9 ();
0x00027054 sll s6, s6, 2 | s6 <<= 2;
0x00027058 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002705c move a1, s6 | a1 = s6;
0x00027060 lw t9, -0x7ae4(gp) | t9 = *((gp - 7865));
0x00027064 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x00027068 jalr t9 | t9 ();
0x0002706c lw gp, 0x18(sp) | gp = *(var_18h);
0x00027070 sw v0, 0x18(s0) | *((s0 + 6)) = v0;
| if (v0 == 0) {
0x00027074 beqz v0, 0x271b4 | goto label_8;
| }
0x00027078 lw t9, -0x7ac0(gp) | t9 = *((gp - 7856));
0x0002707c move a0, v0 | a0 = v0;
0x00027080 move a1, s2 | a1 = s2;
0x00027084 move a2, s6 | a2 = s6;
0x00027088 jalr t9 | t9 ();
0x0002708c lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00027090 lw ra, 0x4c(sp) | ra = *(var_4ch);
| if (s1 == 0) {
0x00027094 bnez s1, 0x270d0 |
0x00027098 move a0, s2 | a0 = s2;
0x0002709c lw t9, -0x7fac(gp) | t9 = *((gp - 8171));
0x000270a0 lw fp, 0x48(sp) | fp = *(var_48h);
0x000270a4 lw s7, 0x44(sp) | s7 = *(var_44h);
0x000270a8 lw s6, 0x40(sp) | s6 = *(var_40h);
0x000270ac lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x000270b0 lw s4, 0x38(sp) | s4 = *(var_38h);
0x000270b4 lw s3, 0x34(sp) | s3 = *(var_34h);
0x000270b8 lw s2, 0x30(sp) | s2 = *(var_30h);
0x000270bc lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x000270c0 lw s0, 0x28(sp) | s0 = *(var_28h);
0x000270c4 addiu sp, sp, 0x50 |
0x000270c8 jr t9 | t9 ();
| label_1:
0x000270cc lw ra, 0x4c(sp) | ra = *(var_4ch);
| }
| label_7:
0x000270d0 lw fp, 0x48(sp) | fp = *(var_48h);
0x000270d4 lw s7, 0x44(sp) | s7 = *(var_44h);
0x000270d8 lw s6, 0x40(sp) | s6 = *(var_40h);
0x000270dc lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x000270e0 lw s4, 0x38(sp) | s4 = *(var_38h);
0x000270e4 lw s3, 0x34(sp) | s3 = *(var_34h);
0x000270e8 lw s2, 0x30(sp) | s2 = *(var_30h);
0x000270ec lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x000270f0 lw s0, 0x28(sp) | s0 = *(var_28h);
0x000270f4 addiu sp, sp, 0x50 |
0x000270f8 jr ra | return v0;
| label_6:
0x000270fc lw t9, -0x7aec(gp) | t9 = *((gp - 7867));
0x00027100 bne s3, s5, 0x26ed8 |
| } while (s3 != s5);
| if (s4 != t8) {
0x00027104 bne s4, t8, 0x26ed8 | goto label_0;
| }
0x00027108 nop |
0x0002710c lw v0, 0x24(a0) | v0 = *((a0 + 9));
0x00027110 lw t8, 0x24(a1) | t8 = *((a1 + 9));
0x00027114 move v1, zero | v1 = 0;
| if (v0 != t8) {
0x00027118 bne v0, t8, 0x26ed8 | goto label_0;
| }
0x0002711c lw t8, 0x18(a0) | t8 = *((a0 + 6));
0x00027120 lw s2, 0x18(a1) | s2 = *((a1 + 6));
0x00027124 b 0x27138 | goto label_12;
| label_2:
0x00027128 addiu v1, v1, 1 | v1++;
0x0002712c addiu t8, t8, 4 | t8 += 4;
0x00027130 addiu s2, s2, 4 | s2 += 4;
| if (v1 == s3) {
0x00027134 beq v1, s3, 0x270cc | goto label_1;
| }
| label_12:
0x00027138 lw a0, (t8) | a0 = *(t8);
0x0002713c lw t9, -0x7da8(gp) | t9 = *((gp - 8042));
0x00027140 lw a1, (s2) | a1 = *(s2);
0x00027144 sw v1, 0x20(sp) | *(var_20h_2) = v1;
0x00027148 sw t8, 0x24(sp) | *(var_24h_2) = t8;
0x0002714c jalr t9 | t9 ();
0x00027150 lw gp, 0x18(sp) | gp = *(var_18h);
0x00027154 lw v1, 0x20(sp) | v1 = *(var_20h_2);
0x00027158 lw t8, 0x24(sp) | t8 = *(var_24h_2);
| if (v0 == 0) {
0x0002715c beqz v0, 0x27128 | goto label_2;
| }
0x00027160 lw t9, -0x7aec(gp) | t9 = *((gp - 7867));
0x00027164 b 0x26ed8 | goto label_0;
| label_11:
0x00027168 move s1, zero | s1 = 0;
0x0002716c b 0x27030 | goto label_3;
| label_9:
0x00027170 move a0, s1 | a0 = s1;
0x00027174 addiu t9, t9, 0x6b94 | t9 += 0x6b94;
0x00027178 move a1, s0 | a1 = s0;
0x0002717c jalr t9 | t9 ();
0x00027180 lhu s6, 0x26(s0) | s6 = *((s0 + 19));
0x00027184 lw gp, 0x18(sp) | gp = *(var_18h);
0x00027188 lhu s4, 0x22(s1) | s4 = *((s1 + 17));
| if (s6 == 0) {
0x0002718c beqz s6, 0x26f18 | goto label_4;
| }
0x00027190 lhu t8, 0x24(s1) | t8 = *((s1 + 18));
0x00027194 b 0x26f0c | goto label_5;
| label_10:
0x00027198 move a0, s0 | a0 = s0;
0x0002719c addiu t9, t9, 0x6b94 | t9 += 0x6b94;
0x000271a0 move a1, s1 | a1 = s1;
0x000271a4 jalr t9 | t9 ();
0x000271a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000271ac lhu s4, 0x22(s1) | s4 = *((s1 + 17));
0x000271b0 b 0x26f18 | goto label_4;
| label_8:
0x000271b4 lw a0, -0x7fd4(gp) | a0 = *((gp - 8181));
0x000271b8 lw t9, -0x7b8c(gp) | t9 = *((gp - 7907));
0x000271bc addiu a0, a0, 0x5168 | a0 += 0x5168;
0x000271c0 jalr t9 | return t9 ();
| }
[*] Function system used 1 times libncurses.so.6