[*] Binary protection state of certificate

  
  	Full RELRO     Canary found      NX disabled  No PIE       No RPATH     No RUNPATH   No Symbols


[*] Function system tear down of certificate

    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/certificate @ 0x4034f0 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.file_open_char_const_ ()         | void file_open_char_const_ () {
                                                 |     /* file_open(char const*) */
    0x004034f0 lui gp, 2                         |     
    0x004034f4 addiu gp, gp, -0x64c0             |     
    0x004034f8 addu gp, gp, t9                   |     gp += t9;
    0x004034fc addiu sp, sp, -0x40               |     
    0x00403500 sw ra, 0x3c(sp)                   |     *(var_3ch) = ra;
    0x00403504 sw fp, 0x38(sp)                   |     *(var_38h) = fp;
    0x00403508 sw s1, 0x34(sp)                   |     *(var_34h) = s1;
    0x0040350c sw s0, 0x30(sp)                   |     *(var_30h) = s0;
    0x00403510 move fp, sp                       |     fp = sp;
    0x00403514 sw gp, 0x10(sp)                   |     *(var_10h) = gp;
    0x00403518 sw a0, 0x1c(fp)                   |     *(arg_1ch) = a0;
    0x0040351c lw t8, -0x7ee8(gp)                |     t8 = *((gp - 8122));
    0x00403520 lw t8, (t8)                       |     t8 = *(t8);
    0x00403524 sw t8, 0x2c(fp)                   |     *(arg_2ch) = t8;
    0x00403528 lw t8, -0x7fd4(gp)                |     t8 = *(gp);
                                                 |     /* str.touch__tmp_certificate.conf */
    0x0040352c addiu a0, t8, 0x3ad0              |     a0 = t8 + 0x3ad0;
    0x00403530 lw t8, -0x7ef0(gp)                |     t8 = sym.imp.system
    0x00403534 move t9, t8                       |     t9 = t8;
    0x00403538 jalr t9                           |     t9 ();
    0x0040353c nop                               |     
    0x00403540 lw gp, 0x10(fp)                   |     gp = *(arg_10h);
    0x00403544 lw a0, 0x1c(fp)                   |     a0 = *(arg_1ch);
    0x00403548 addiu a1, zero, 2                 |     a1 = 2;
    0x0040354c lw t8, -0x7eec(gp)                |     t8 = sym.imp.open;
    0x00403550 move t9, t8                       |     t9 = t8;
    0x00403554 jalr t9                           |     t9 ();
    0x00403558 nop                               |     
    0x0040355c lw gp, 0x10(fp)                   |     gp = *(arg_10h);
    0x00403560 move t8, v0                       |     t8 = v0;
    0x00403564 sw t8, 0x28(fp)                   |     *(arg_28h) = t8;
    0x00403568 lw t8, 0x28(fp)                   |     t8 = *(arg_28h);
    0x0040356c srl t8, t8, 0x1f                  |     t8 >>= 0x1f;
    0x00403570 andi t8, t8, 0xff                 |     t8 &= 0xff;
                                                 |     if (t8 != 0) {
    0x00403574 beqz t8, 0x403674                 |         
    0x00403578 nop                               |         
    0x0040357c lw t8, -0x7fd4(gp)                |         t8 = *(gp);
                                                 |         /* str.open_file_failed */
    0x00403580 addiu a0, t8, 0x3aec              |         a0 = t8 + 0x3aec;
    0x00403584 lw t8, -0x7f54(gp)                |         t8 = sym.imp.perror;
    0x00403588 move t9, t8                       |         t9 = t8;
    0x0040358c jalr t9                           |         t9 ();
    0x00403590 nop                               |         
    0x00403594 lw gp, 0x10(fp)                   |         gp = *(arg_10h);
    0x00403598 addiu a0, zero, 0xc               |         a0 = 0xc;
    0x0040359c lw t8, -0x7f5c(gp)                |         t8 = sym.imp.__cxa_allocate_exception;
    0x004035a0 move t9, t8                       |         t9 = t8;
    0x004035a4 jalr t9                           |         t9 ();
    0x004035a8 nop                               |         
    0x004035ac lw gp, 0x10(fp)                   |         gp = *(arg_10h);
    0x004035b0 move s0, v0                       |         s0 = v0;
    0x004035b4 addiu t8, fp, 0x20                |         t8 = fp + 0x20;
    0x004035b8 move a0, t8                       |         a0 = t8;
    0x004035bc lw t8, -0x7f88(gp)                |         t8 = *(gp);
    0x004035c0 move t9, t8                       |         t9 = t8;
    0x004035c4 jalr t9                           |         t9 ();
    0x004035c8 nop                               |         
    0x004035cc lw gp, 0x10(fp)                   |         gp = *(arg_10h);
    0x004035d0 addiu v0, fp, 0x24                |         v0 = fp + 0x24;
    0x004035d4 addiu t8, fp, 0x20                |         t8 = fp + 0x20;
    0x004035d8 move a0, v0                       |         a0 = v0;
    0x004035dc lw v0, -0x7fd4(gp)                |         v0 = *(gp);
                                                 |         /* str.cannot_open_norchar_file */
    0x004035e0 addiu a1, v0, 0x3b00              |         a1 = v0 + 0x3b00;
    0x004035e4 move a2, t8                       |         a2 = t8;
    0x004035e8 lw t8, -0x7f40(gp)                |         t8 = *(gp);
    0x004035ec move t9, t8                       |         t9 = t8;
    0x004035f0 jalr t9                           |         t9 ();
    0x004035f4 nop                               |         
    0x004035f8 lw gp, 0x10(fp)                   |         gp = *(arg_10h);
    0x004035fc addiu t8, fp, 0x24                |         t8 = fp + 0x24;
    0x00403600 move a0, s0                       |         a0 = s0;
    0x00403604 addiu a1, zero, 1                 |         a1 = 1;
    0x00403608 move a2, t8                       |         a2 = t8;
    0x0040360c lw t8, -0x7fd0(gp)                |         t8 = *(gp);
    0x00403610 move t9, t8                       |         t9 = t8;
    0x00403614 jalr t9                           |         t9 ();
    0x00403618 nop                               |         
    0x0040361c lw gp, 0x10(fp)                   |         gp = *(arg_10h);
    0x00403620 addiu t8, fp, 0x24                |         t8 = fp + 0x24;
    0x00403624 move a0, t8                       |         a0 = t8;
    0x00403628 lw t8, -0x7f28(gp)                |         t8 = *(gp);
    0x0040362c move t9, t8                       |         t9 = t8;
    0x00403630 jalr t9                           |         t9 ();
    0x00403634 nop                               |         
    0x00403638 lw gp, 0x10(fp)                   |         gp = *(arg_10h);
    0x0040363c addiu t8, fp, 0x20                |         t8 = fp + 0x20;
    0x00403640 move a0, t8                       |         a0 = t8;
    0x00403644 lw t8, -0x7f60(gp)                |         t8 = *(gp);
    0x00403648 move t9, t8                       |         t9 = t8;
    0x0040364c jalr t9                           |         t9 ();
    0x00403650 nop                               |         
    0x00403654 lw gp, 0x10(fp)                   |         gp = *(arg_10h);
    0x00403658 move a0, s0                       |         a0 = s0;
    0x0040365c lw a1, -0x7fcc(gp)                |         a1 = *(gp);
    0x00403660 lw a2, -0x7fc8(gp)                |         a2 = *(gp);
    0x00403664 lw t8, -0x7f6c(gp)                |         t8 = sym.imp.__cxa_throw;
    0x00403668 move t9, t8                       |         t9 = t8;
    0x0040366c jalr t9                           |         t9 ();
    0x00403670 nop                               |         
                                                 |     }
    0x00403674 lw t8, 0x28(fp)                   |     t8 = *(arg_28h);
    0x00403678 move v0, t8                       |     v0 = t8;
    0x0040367c lw t8, -0x7ee8(gp)                |     t8 = *((gp - 8122));
    0x00403680 lw v1, 0x2c(fp)                   |     v1 = *(arg_2ch);
    0x00403684 lw t8, (t8)                       |     t8 = *(t8);
                                                 |     if (v1 != t8) {
    0x00403688 beq v1, t8, 0x403728              |         
    0x0040368c nop                               |         
    0x00403690 b 0x403718                        |         goto label_0;
    0x00403694 nop                               |         
                                                 | label_0:
    0x00403718 lw t8, -0x7f34(gp)                |         t8 = sym.imp.__stack_chk_fail;
    0x0040371c move t9, t8                       |         t9 = t8;
    0x00403720 jalr t9                           |         t9 ();
    0x00403724 nop                               |         
                                                 |     }
    0x00403728 move sp, fp                       |     
    0x0040372c lw ra, 0x3c(sp)                   |     ra = *(var_3ch);
    0x00403730 lw fp, 0x38(sp)                   |     fp = *(var_38h);
    0x00403734 lw s1, 0x34(sp)                   |     s1 = *(var_34h);
    0x00403738 lw s0, 0x30(sp)                   |     s0 = *(var_30h);
    0x0040373c addiu sp, sp, 0x40                |     
    0x00403740 jr ra                             |     return v1;
    0x00403744 nop                               |     
                                                 | }

[*] Function system used 2 times certificate