[*] Binary protection state of kmod

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


[*] Function fprintf tear down of kmod

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/kmod @ 0x8584 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00008584 ()              | void fcn_00008584 () {
    0x00008584 lui gp, 3                 |     
    0x00008588 addiu gp, gp, 0x4aec      |     
    0x0000858c addu gp, gp, t9           |     gp += t9;
    0x00008590 addiu sp, sp, -0x38       |     
    0x00008594 lw t9, -0x7bcc(gp)        |     t9 = sym.imp.fwrite;
    0x00008598 sw s2, 0x28(sp)           |     *(var_28h_2) = s2;
    0x0000859c lw s2, -0x7b94(gp)        |     s2 = *((gp - 7909));
    0x000085a0 sw s1, 0x24(sp)           |     *(var_24h_2) = s1;
    0x000085a4 addiu s1, sp, 0x18        |     s1 = sp + 0x18;
    0x000085a8 lw v0, (s2)               |     v0 = *(s2);
    0x000085ac sw ra, 0x34(sp)           |     *(var_34h_2) = ra;
    0x000085b0 sw v0, 0x1c(sp)           |     *(var_1ch_2) = v0;
    0x000085b4 lui v0, 0x57f4            |     v0 = 0x57f407b0;
    0x000085b8 addiu v0, v0, 0x7b0       |     
    0x000085bc sw gp, 0x10(sp)           |     *(var_10h_2) = gp;
    0x000085c0 move a3, a1               |     a3 = a1;
    0x000085c4 sw s4, 0x30(sp)           |     *(var_30h_2) = s4;
    0x000085c8 sw s0, 0x20(sp)           |     *(var_20h_2) = s0;
    0x000085cc addiu a2, zero, 1         |     a2 = 1;
    0x000085d0 move s0, a1               |     s0 = a1;
    0x000085d4 sw s3, 0x2c(sp)           |     *(var_2ch_2) = s3;
    0x000085d8 addiu a1, zero, 4         |     a1 = 4;
    0x000085dc move s4, a0               |     s4 = a0;
    0x000085e0 sw v0, 0x18(sp)           |     *(var_18h) = v0;
    0x000085e4 move a0, s1               |     a0 = s1;
    0x000085e8 jalr t9                   |     t9 ();
    0x000085ec lw gp, 0x10(sp)           |     gp = *(var_10h_2);
    0x000085f0 lui v0, 0x100             |     v0 = 0x1000200;
    0x000085f4 addiu v0, v0, 0x200       |     
    0x000085f8 lw t9, -0x7bcc(gp)        |     t9 = sym.imp.fwrite;
    0x000085fc move a3, s0               |     a3 = s0;
    0x00008600 addiu a2, zero, 1         |     a2 = 1;
    0x00008604 addiu a1, zero, 4         |     a1 = 4;
    0x00008608 move a0, s1               |     a0 = s1;
    0x0000860c sw v0, 0x18(sp)           |     *(var_18h) = v0;
    0x00008610 jalr t9                   |     t9 ();
    0x00008614 lw gp, 0x10(sp)           |     gp = *(var_10h_2);
    0x00008618 lw t9, -0x7c40(gp)        |     t9 = sym.imp.ftell;
    0x0000861c move a0, s0               |     a0 = s0;
    0x00008620 jalr t9                   |     t9 ();
    0x00008624 lw gp, 0x10(sp)           |     gp = *(var_10h_2);
                                         |     if (v0 >= 0) {
    0x00008628 bltz v0, 0x8704           |         
    0x0000862c lw t9, -0x7bcc(gp)        |         t9 = sym.imp.fwrite;
    0x00008630 move a3, s0               |         a3 = s0;
    0x00008634 addiu a2, zero, 1         |         a2 = 1;
    0x00008638 addiu a1, zero, 4         |         a1 = 4;
    0x0000863c move a0, s1               |         a0 = s1;
    0x00008640 sw zero, 0x18(sp)         |         *(var_18h) = 0;
    0x00008644 move s3, v0               |         s3 = v0;
    0x00008648 jalr t9                   |         t9 ();
    0x0000864c lw gp, 0x10(sp)           |         gp = *(var_10h_2);
    0x00008650 move a0, s4               |         a0 = s4;
    0x00008654 lw t9, -0x7ed8(gp)        |         t9 = *(gp);
    0x00008658 addiu t9, t9, -0x7d68     |         t9 += -0x7d68;
    0x0000865c move a1, s0               |         a1 = s0;
    0x00008660 bal 0x8298                |         fcn_00008298 ();
    0x00008664 lw gp, 0x10(sp)           |         gp = *(var_10h_2);
    0x00008668 wsbh v0, v0               |         __asm ("wsbh v0, v0");
    0x0000866c rotr v0, v0, 0x10         |         __asm ("rotr v0, v0, 0x10");
    0x00008670 lw t9, -0x7c40(gp)        |         t9 = sym.imp.ftell;
    0x00008674 move a0, s0               |         a0 = s0;
    0x00008678 sw v0, 0x18(sp)           |         *(var_18h) = v0;
    0x0000867c jalr t9                   |         t9 ();
    0x00008680 move s4, v0               |         s4 = v0;
    0x00008684 lw gp, 0x10(sp)           |         gp = *(var_10h_2);
                                         |         if (v0 < 0) {
    0x00008688 bltz v0, 0x8734           |             goto label_3;
                                         |         }
    0x0000868c lw t9, -0x7bc0(gp)        |         t9 = sym.imp.fseek;
    0x00008690 move a2, zero             |         a2 = 0;
    0x00008694 move a1, s3               |         a1 = s3;
    0x00008698 move a0, s0               |         a0 = s0;
    0x0000869c jalr t9                   |         t9 ();
    0x000086a0 lw gp, 0x10(sp)           |         gp = *(var_10h_2);
    0x000086a4 move a3, s0               |         a3 = s0;
    0x000086a8 addiu a2, zero, 1         |         a2 = 1;
    0x000086ac lw t9, -0x7bcc(gp)        |         t9 = sym.imp.fwrite;
    0x000086b0 addiu a1, zero, 4         |         a1 = 4;
    0x000086b4 move a0, s1               |         a0 = s1;
    0x000086b8 jalr t9                   |         t9 ();
    0x000086bc lw gp, 0x10(sp)           |         gp = *(var_10h_2);
    0x000086c0 move a2, zero             |         a2 = 0;
    0x000086c4 move a1, s4               |         a1 = s4;
    0x000086c8 lw t9, -0x7bc0(gp)        |         t9 = sym.imp.fseek;
    0x000086cc move a0, s0               |         a0 = s0;
    0x000086d0 jalr t9                   |         t9 ();
    0x000086d4 lw v1, 0x1c(sp)           |         v1 = *(var_1ch_2);
    0x000086d8 lw v0, (s2)               |         v0 = *(s2);
    0x000086dc lw gp, 0x10(sp)           |         gp = *(var_10h_2);
                                         |         if (v1 != v0) {
    0x000086e0 bne v1, v0, 0x8728        |             goto label_4;
                                         |         }
    0x000086e4 lw ra, 0x34(sp)           |         ra = *(var_34h_2);
    0x000086e8 lw s4, 0x30(sp)           |         s4 = *(var_30h_2);
    0x000086ec lw s3, 0x2c(sp)           |         s3 = *(var_2ch_2);
    0x000086f0 lw s2, 0x28(sp)           |         s2 = *(var_28h_2);
    0x000086f4 lw s1, 0x24(sp)           |         s1 = *(var_24h_2);
    0x000086f8 lw s0, 0x20(sp)           |         s0 = *(var_20h_2);
    0x000086fc addiu sp, sp, 0x38        |         
    0x00008700 jr ra                     |         return v0;
                                         |     }
    0x00008704 lw a3, -0x7fdc(gp)        |     a3 = *(gp);
    0x00008708 lw a1, -0x7fdc(gp)        |     a1 = *(gp);
    0x0000870c lw a0, -0x7fdc(gp)        |     a0 = *(gp);
    0x00008710 lw t9, -0x7ce0(gp)        |     t9 = sym.imp.__assert_fail;
                                         |     /* str.index_write */
    0x00008714 addiu a3, a3, 0x310c      |     a3 += 0x310c;
    0x00008718 addiu a2, zero, 0x1a0     |     a2 = 0x1a0;
                                         |     /* str..._git_tools_depmod.c */
    0x0000871c addiu a1, a1, 0x1fd4      |     a1 += 0x1fd4;
                                         |     /* str.initial_offset___0 */
    0x00008720 addiu a0, a0, 0x1fec      |     a0 += 0x1fec;
    0x00008724 jalr t9                   |     t9 ();
                                         | label_4:
    0x00008728 lw t9, -0x7bb8(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x0000872c jalr t9                   |     t9 ();
    0x00008730 nop                       |     
                                         | label_3:
    0x00008734 lw a3, -0x7fdc(gp)        |     a3 = *(gp);
    0x00008738 lw a1, -0x7fdc(gp)        |     a1 = *(gp);
    0x0000873c lw a0, -0x7fdc(gp)        |     a0 = *(gp);
    0x00008740 lw t9, -0x7ce0(gp)        |     t9 = sym.imp.__assert_fail;
                                         |     /* str.index_write */
    0x00008744 addiu a3, a3, 0x310c      |     a3 += 0x310c;
    0x00008748 addiu a2, zero, 0x1a9     |     a2 = 0x1a9;
                                         |     /* str..._git_tools_depmod.c */
    0x0000874c addiu a1, a1, 0x1fd4      |     a1 += 0x1fd4;
                                         |     /* str.final_offset___0 */
    0x00008750 addiu a0, a0, 0x2000      |     a0 += 0x2000;
    0x00008754 jalr t9                   |     t9 ();
    0x00008758 lui gp, 3                 |     
    0x0000875c addiu gp, gp, 0x4918      |     
    0x00008760 addu gp, gp, t9           |     gp += t9;
    0x00008764 addiu sp, sp, -0x38       |     
    0x00008768 lw t9, -0x7fd0(gp)        |     t9 = *((gp - 8180));
    0x0000876c sw s2, 0x28(sp)           |     *(var_28h_3) = s2;
    0x00008770 lw s2, -0x7b94(gp)        |     s2 = *((gp - 7909));
    0x00008774 sw gp, 0x10(sp)           |     *(var_10h_3) = gp;
    0x00008778 sw s4, 0x30(sp)           |     *(var_30h_3) = s4;
    0x0000877c lw v0, (s2)               |     v0 = *(s2);
    0x00008780 sw s3, 0x2c(sp)           |     *(var_2ch_3) = s3;
    0x00008784 sw ra, 0x34(sp)           |     *(var_34h_3) = ra;
    0x00008788 sw s1, 0x24(sp)           |     *(var_24h_3) = s1;
    0x0000878c sw s0, 0x20(sp)           |     *(var_20h_3) = s0;
    0x00008790 sw v0, 0x1c(sp)           |     *(var_1ch_3) = v0;
    0x00008794 sw zero, 0x18(sp)         |     *(var_18h_2) = 0;
    0x00008798 addiu t9, t9, 0x68d8      |     t9 += fcn.000068d8;
    0x0000879c move s3, a1               |     s3 = a1;
    0x000087a0 move s4, a0               |     s4 = a0;
    0x000087a4 bal 0x68d8                |     fcn_000068d8 ();
    0x000087a8 lw gp, 0x10(sp)           |     gp = *(var_10h_3);
    0x000087ac sw v0, (a1)               |     *(a1) = v0;
                                         |     if (v0 == 0) {
    0x000087b0 beqz v0, 0x884c           |         goto label_5;
                                         |     }
    0x000087b4 lw t9, -0x7bf8(gp)        |     t9 = sym.imp.malloc;
    0x000087b8 sll a0, v0, 2             |     a0 = v0 << 2;
    0x000087bc move s0, v0               |     s0 = v0;
    0x000087c0 jalr t9                   |     t9 ();
    0x000087c4 move s1, v0               |     s1 = v0;
    0x000087c8 lw gp, 0x10(sp)           |     gp = *(var_10h_3);
                                         |     if (v0 == 0) {
    0x000087cc beqz v0, 0x884c           |         goto label_5;
                                         |     }
    0x000087d0 lw t9, -0x7fd0(gp)        |     t9 = *((gp - 8180));
    0x000087d4 addiu a3, sp, 0x18        |     a3 = sp + 0x18;
    0x000087d8 move a2, s0               |     a2 = s0;
    0x000087dc move a1, v0               |     a1 = v0;
    0x000087e0 addiu t9, t9, 0x695c      |     t9 += fcn.0000695c;
    0x000087e4 move a0, s4               |     a0 = s4;
    0x000087e8 bal 0x695c                |     fcn_0000695c ();
    0x000087ec lw gp, 0x10(sp)           |     gp = *(var_10h_3);
                                         |     if (v0 < 0) {
    0x000087f0 bltz v0, 0x8854           |         goto label_6;
                                         |     }
    0x000087f4 lw a3, -0x7fd0(gp)        |     a3 = *((gp - 8180));
    0x000087f8 lw t9, -0x7cb0(gp)        |     t9 = sym.imp.qsort;
    0x000087fc lw a1, 0x18(sp)           |     a1 = *(var_18h_2);
    0x00008800 addiu a3, a3, 0x68c0      |     a3 += 0x68c0;
    0x00008804 addiu a2, zero, 4         |     a2 = 4;
    0x00008808 move a0, s1               |     a0 = s1;
    0x0000880c jalr t9                   |     t9 ();
    0x00008810 lw v0, 0x18(sp)           |     v0 = *(var_18h_2);
    0x00008814 lw gp, 0x10(sp)           |     gp = *(var_10h_3);
    0x00008818 sw v0, (s3)               |     *(s3) = v0;
                                         |     do {
                                         | label_0:
    0x0000881c lw a0, 0x1c(sp)           |         a0 = *(var_1ch_3);
    0x00008820 lw v1, (s2)               |         v1 = *(s2);
    0x00008824 move v0, s1               |         v0 = s1;
                                         |         if (a0 != v1) {
    0x00008828 bne a0, v1, 0x886c        |             goto label_7;
                                         |         }
    0x0000882c lw ra, 0x34(sp)           |         ra = *(var_34h_3);
    0x00008830 lw s4, 0x30(sp)           |         s4 = *(var_30h_3);
    0x00008834 lw s3, 0x2c(sp)           |         s3 = *(var_2ch_3);
    0x00008838 lw s2, 0x28(sp)           |         s2 = *(var_28h_3);
    0x0000883c lw s1, 0x24(sp)           |         s1 = *(var_24h_3);
    0x00008840 lw s0, 0x20(sp)           |         s0 = *(var_20h_3);
    0x00008844 addiu sp, sp, 0x38        |         
    0x00008848 jr ra                     |         return v0;
                                         | label_5:
    0x0000884c move s1, zero             |         s1 = 0;
    0x00008850 b 0x881c                  |         
                                         |     } while (1);
                                         | label_6:
    0x00008854 lw t9, -0x7b88(gp)        |     t9 = sym.imp.free;
    0x00008858 move a0, s1               |     a0 = s1;
    0x0000885c jalr t9                   |     t9 ();
    0x00008860 move s1, zero             |     s1 = 0;
    0x00008864 lw gp, 0x10(sp)           |     gp = *(var_10h_3);
    0x00008868 b 0x881c                  |     goto label_0;
                                         | label_7:
    0x0000886c lw t9, -0x7bb8(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00008870 jalr t9                   |     t9 ();
    0x00008874 nop                       |     
    0x00008878 lui gp, 3                 |     
    0x0000887c addiu gp, gp, 0x47f8      |     
    0x00008880 addu gp, gp, t9           |     gp += t9;
    0x00008884 addiu sp, sp, -0x50       |     
    0x00008888 lw v0, 0xc(a0)            |     v0 = *((a0 + 3));
    0x0000888c sw s7, 0x44(sp)           |     *(var_44h_2) = s7;
    0x00008890 lw s7, -0x7b94(gp)        |     s7 = *((gp - 7909));
    0x00008894 sw gp, 0x10(sp)           |     *(var_10h_4) = gp;
    0x00008898 sw ra, 0x4c(sp)           |     *(var_4ch) = ra;
    0x0000889c lw v1, (s7)               |     v1 = *(s7);
    0x000088a0 sw fp, 0x48(sp)           |     *(var_48h) = fp;
    0x000088a4 sw s6, 0x40(sp)           |     *(var_40h_2) = s6;
    0x000088a8 sw s5, 0x3c(sp)           |     *(var_3ch_2) = s5;
    0x000088ac sw s4, 0x38(sp)           |     *(var_38h_2) = s4;
    0x000088b0 sw s3, 0x34(sp)           |     *(var_34h_4) = s3;
    0x000088b4 sw s2, 0x30(sp)           |     *(var_30h_4) = s2;
    0x000088b8 sw s1, 0x2c(sp)           |     *(var_2ch_4) = s1;
    0x000088bc sw s0, 0x28(sp)           |     *(var_28h_4) = s0;
    0x000088c0 sw v1, 0x24(sp)           |     *(var_24h_4) = v1;
                                         |     if (v0 == 0) {
    0x000088c4 beqz v0, 0x89d4           |         goto label_8;
                                         |     }
    0x000088c8 nop                       |     
    0x000088cc lw v0, -0x7fdc(gp)        |     v0 = *(gp);
    0x000088d0 lw s6, -0x7ed8(gp)        |     s6 = *(gp);
    0x000088d4 lw s2, -0x7fdc(gp)        |     s2 = *(gp);
    0x000088d8 sw v0, 0x1c(sp)           |     *(var_1ch_5) = v0;
    0x000088dc lw s5, -0x7fdc(gp)        |     s5 = *(gp);
    0x000088e0 addiu v0, s6, -0x78a8     |     v0 = s6 + -0x78a8;
    0x000088e4 move s3, a0               |     s3 = a0;
    0x000088e8 move s0, a1               |     s0 = a1;
    0x000088ec move s1, zero             |     s1 = 0;
    0x000088f0 sw v0, 0x18(sp)           |     *(var_18h_4) = v0;
                                         |     /* esilref: ' &s' */
    0x000088f4 addiu s2, s2, 0x444       |     s2 += 0x444;
                                         | label_1:
    0x000088f8 lw s4, 8(s3)              |     s4 = *((s3 + 2));
    0x000088fc sll v0, s1, 2             |     v0 = s1 << 2;
    0x00008900 lwx s4, v0(s4)            |     __asm ("lwx s4, v0(s4)");
    0x00008904 lw s6, 8(s4)              |     s6 = *((s4 + 2));
                                         |     if (s6 != 0) {
    0x00008908 beql s6, zero, 0x8910     |         
    0x0000890c lw s6, 4(s4)              |         s6 = *((s4 + 1));
                                         |     }
    0x00008910 lw t9, -0x7cb8(gp)        |     t9 = sym.imp.__fprintf_chk
    0x00008914 move a3, s6               |     a3 = s6;
                                         |     /* esilref: '&s:' */
    0x00008918 addiu a2, s5, 0x2014      |     a2 = s5 + 0x2014;
    0x0000891c addiu a1, zero, 1         |     a1 = 1;
    0x00008920 move a0, s0               |     a0 = s0;
    0x00008924 jalr t9                   |     t9 ();
    0x00008928 lw v0, 0x1c(s4)           |     v0 = *((s4 + 7));
    0x0000892c lw gp, 0x10(sp)           |     gp = *(var_10h_4);
                                         |     if (v0 == 0) {
    0x00008930 beqz v0, 0x89b0           |         goto label_2;
                                         |     }
    0x00008934 lw t9, 0x18(sp)           |     t9 = *(var_18h_4);
    0x00008938 move a0, s4               |     a0 = s4;
    0x0000893c addiu a1, sp, 0x20        |     a1 = sp + 0x20;
    0x00008940 jalr t9                   |     t9 ();
    0x00008944 move s4, v0               |     s4 = v0;
    0x00008948 lw gp, 0x10(sp)           |     gp = *(var_10h_4);
                                         |     if (v0 == 0) {
    0x0000894c beqz v0, 0x8a14           |         goto label_9;
                                         |     }
    0x00008950 lw v0, 0x20(sp)           |     v0 = *(var_20h_4);
    0x00008954 lw t9, -0x7b88(gp)        |     t9 = sym.imp.free;
                                         |     if (v0 == 0) {
    0x00008958 beqz v0, 0x89a4           |         goto label_10;
                                         |     }
    0x0000895c move s6, s4               |     s6 = s4;
    0x00008960 move fp, zero             |     fp = 0;
                                         |     do {
    0x00008964 lw v0, (s6)               |         v0 = *(s6);
    0x00008968 lw a3, 8(v0)              |         a3 = *((v0 + 2));
                                         |         if (a3 != 0) {
    0x0000896c beql a3, zero, 0x8974     |             
    0x00008970 lw a3, 4(v0)              |             a3 = *((v0 + 1));
                                         |         }
    0x00008974 lw t9, -0x7cb8(gp)        |         t9 = sym.imp.__fprintf_chk
    0x00008978 move a2, s2               |         a2 = s2;
    0x0000897c addiu a1, zero, 1         |         a1 = 1;
    0x00008980 move a0, s0               |         a0 = s0;
    0x00008984 jalr t9                   |         t9 ();
    0x00008988 lw v0, 0x20(sp)           |         v0 = *(var_20h_4);
    0x0000898c addiu fp, fp, 1           |         fp++;
    0x00008990 sltu v0, fp, v0           |         v0 = (fp < v0) ? 1 : 0;
    0x00008994 lw gp, 0x10(sp)           |         gp = *(var_10h_4);
    0x00008998 addiu s6, s6, 4           |         s6 += 4;
    0x0000899c bnez v0, 0x8964           |         
                                         |     } while (v0 != 0);
    0x000089a0 lw t9, -0x7b88(gp)        |     t9 = sym.imp.free;
                                         | label_10:
    0x000089a4 move a0, s4               |     a0 = s4;
    0x000089a8 jalr t9                   |     t9 ();
    0x000089ac lw gp, 0x10(sp)           |     gp = *(var_10h_4);
                                         | label_2:
    0x000089b0 lw t9, -0x7bbc(gp)        |     t9 = sym.imp._IO_putc;
    0x000089b4 move a1, s0               |     a1 = s0;
    0x000089b8 addiu a0, zero, 0xa       |     a0 = 0xa;
    0x000089bc jalr t9                   |     t9 ();
    0x000089c0 lw v0, 0xc(s3)            |     v0 = *((s3 + 3));
    0x000089c4 addiu s1, s1, 1           |     s1++;
    0x000089c8 sltu v0, s1, v0           |     v0 = (s1 < v0) ? 1 : 0;
    0x000089cc lw gp, 0x10(sp)           |     gp = *(var_10h_4);
                                         |     if (v0 != 0) {
    0x000089d0 bnez v0, 0x88f8           |         goto label_1;
                                         |     }
                                         | label_8:
    0x000089d4 lw a0, 0x24(sp)           |     a0 = *(var_24h_4);
    0x000089d8 lw v1, (s7)               |     v1 = *(s7);
    0x000089dc move v0, zero             |     v0 = 0;
                                         |     if (a0 == v1) {
    0x000089e0 bne a0, v1, 0x8a34        |         
    0x000089e4 lw ra, 0x4c(sp)           |         ra = *(var_4ch);
    0x000089e8 lw fp, 0x48(sp)           |         fp = *(var_48h);
    0x000089ec lw s7, 0x44(sp)           |         s7 = *(var_44h_2);
    0x000089f0 lw s6, 0x40(sp)           |         s6 = *(var_40h_2);
    0x000089f4 lw s5, 0x3c(sp)           |         s5 = *(var_3ch_2);
    0x000089f8 lw s4, 0x38(sp)           |         s4 = *(var_38h_2);
    0x000089fc lw s3, 0x34(sp)           |         s3 = *(var_34h_4);
    0x00008a00 lw s2, 0x30(sp)           |         s2 = *(var_30h_4);
    0x00008a04 lw s1, 0x2c(sp)           |         s1 = *(var_2ch_4);
    0x00008a08 lw s0, 0x28(sp)           |         s0 = *(var_28h_4);
    0x00008a0c addiu sp, sp, 0x50        |         
    0x00008a10 jr ra                     |         return v0;
                                         | label_9:
    0x00008a14 lw v0, 0x1c(sp)           |         v0 = *(var_1ch_5);
    0x00008a18 lw t9, -0x7f98(gp)        |         t9 = *(gp);
    0x00008a1c move a2, s6               |         a2 = s6;
    0x00008a20 addiu a1, v0, 0x2018      |         a1 = v0 + 0x2018;
    0x00008a24 addiu a0, zero, 3         |         a0 = 3;
    0x00008a28 bal 0xd4fc                |         fcn_0000d4fc ();
    0x00008a2c lw gp, 0x10(sp)           |         gp = *(var_10h_4);
    0x00008a30 b 0x89b0                  |         goto label_2;
                                         |     }
    0x00008a34 lw t9, -0x7bb8(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00008a38 jalr t9                   |     t9 ();
    0x00008a3c nop                       |     
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/kmod @ 0xd4fc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0000d4fc ()                  | void fcn_0000d4fc () {
    0x0000d4fc lui gp, 3                     |     
    0x0000d500 addiu gp, gp, -0x48c          |     
    0x0000d504 addu gp, gp, t9               |     gp += t9;
    0x0000d508 addiu sp, sp, -0x60           |     
    0x0000d50c lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
    0x0000d510 sw s1, 0x58(sp)               |     *(var_58h) = s1;
    0x0000d514 lw s1, -0x7b94(gp)            |     s1 = *((gp - 7909));
    0x0000d518 lw v0, 0x505c(v0)             |     v0 = *((v0 + 5143));
    0x0000d51c sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0000d520 lw v1, (s1)                   |     v1 = *(s1);
    0x0000d524 slt v0, v0, a0                |     v0 = (v0 < a0) ? 1 : 0;
    0x0000d528 sw ra, 0x5c(sp)               |     *(var_5ch) = ra;
    0x0000d52c sw s0, 0x54(sp)               |     *(var_54h) = s0;
    0x0000d530 sw a2, 0x68(sp)               |     *(arg_68h) = a2;
    0x0000d534 sw a3, 0x6c(sp)               |     *(arg_6ch) = a3;
    0x0000d538 sw v1, 0x4c(sp)               |     *(var_4ch) = v1;
    0x0000d53c lw t9, -0x7c44(gp)            |     t9 = sym.imp.__vasprintf_chk;
    0x0000d540 beqz v0, 0xd564               |     
                                             |     while (v0 < 0) {
                                             | label_0:
    0x0000d544 lw v1, 0x4c(sp)               |         v1 = *(var_4ch);
    0x0000d548 lw v0, (s1)                   |         v0 = *(s1);
    0x0000d54c lw ra, 0x5c(sp)               |         ra = *(var_5ch);
                                             |         if (v1 != v0) {
    0x0000d550 bne v1, v0, 0xd638            |             goto label_2;
                                             |         }
    0x0000d554 lw s1, 0x58(sp)               |         s1 = *(var_58h);
    0x0000d558 lw s0, 0x54(sp)               |         s0 = *(var_54h);
    0x0000d55c addiu sp, sp, 0x60            |         
    0x0000d560 jr ra                         |         return v1;
    0x0000d564 addiu a3, sp, 0x68            |         a3 = sp + 0x68;
    0x0000d568 move a2, a1                   |         a2 = a1;
    0x0000d56c move s0, a0                   |         s0 = a0;
    0x0000d570 sw a3, 0x28(sp)               |         *(var_28h) = a3;
    0x0000d574 addiu a1, zero, 1             |         a1 = 1;
    0x0000d578 addiu a0, sp, 0x24            |         a0 = sp + 0x24;
    0x0000d57c jalr t9                       |         t9 ();
    0x0000d580 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0000d584 bltz v0, 0xd544               |         
                                             |     }
    0x0000d588 lw v0, 0x24(sp)               |     v0 = *(var_24h);
    0x0000d58c lw t9, -0x7ed8(gp)            |     t9 = *(gp);
                                             |     if (v0 == 0) {
    0x0000d590 beqz v0, 0xd544               |         goto label_0;
                                             |     }
    0x0000d594 move a1, s0                   |     a1 = s0;
    0x0000d598 addiu t9, t9, -0x2d98         |     t9 += -0x2d98;
    0x0000d59c addiu a0, sp, 0x2c            |     a0 = sp + 0x2c;
    0x0000d5a0 bal 0xd268                    |     fcn_0000d268 ();
    0x0000d5a4 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0000d5a8 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
    0x0000d5ac lbu v1, 0x558c(v1)            |     v1 = *((v1 + 21900));
    0x0000d5b0 lw a2, -0x7fdc(gp)            |     a2 = *(gp);
                                             |     if (v1 != 0) {
    0x0000d5b4 bnez v1, 0xd610               |         goto label_3;
                                             |     }
    0x0000d5b8 lw v1, -0x7cb4(gp)            |     v1 = *((gp - 7981));
    0x0000d5bc lw a2, -0x7fdc(gp)            |     a2 = *(gp);
    0x0000d5c0 lw t9, -0x7cb8(gp)            |     t9 = sym.imp.__fprintf_chk
    0x0000d5c4 lw a3, (v1)                   |     a3 = *(v1);
    0x0000d5c8 lw v1, -0x7b74(gp)            |     v1 = *((gp - 7901));
                                             |     /* str._s:__s:__s */
    0x0000d5cc addiu a2, a2, 0x330c          |     a2 += 0x330c;
    0x0000d5d0 addiu a1, zero, 1             |     a1 = 1;
    0x0000d5d4 lw a0, (v1)                   |     a0 = *(v1);
    0x0000d5d8 lw v1, 0x24(sp)               |     v1 = *(var_24h);
    0x0000d5dc sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x0000d5e0 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x0000d5e4 jalr t9                       |     t9 ();
    0x0000d5e8 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             | label_1:
    0x0000d5ec lw t9, -0x7b88(gp)            |     t9 = sym.imp.free;
    0x0000d5f0 lw a0, 0x24(sp)               |     a0 = *(var_24h);
    0x0000d5f4 slti s0, s0, 3                |     s0 = (s0 < 3) ? 1 : 0;
    0x0000d5f8 jalr t9                       |     t9 ();
    0x0000d5fc lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (s0 == 0) {
    0x0000d600 beqz s0, 0xd544               |         goto label_0;
                                             |     }
    0x0000d604 lw t9, -0x7c18(gp)            |     t9 = sym.imp.exit;
    0x0000d608 addiu a0, zero, 1             |     a0 = 1;
    0x0000d60c jalr t9                       |     t9 ();
                                             | label_3:
    0x0000d610 lw v1, 0x24(sp)               |     v1 = *(var_24h);
    0x0000d614 lw t9, -0x7c78(gp)            |     t9 = sym.imp.__syslog_chk;
    0x0000d618 sw v1, 0x10(sp)               |     *(var_10h_2) = v1;
    0x0000d61c move a3, v0                   |     a3 = v0;
                                             |     /* esilref: '&s: &s' */
    0x0000d620 addiu a2, a2, 0x3310          |     a2 += 0x3310;
    0x0000d624 addiu a1, zero, 1             |     a1 = 1;
    0x0000d628 move a0, s0                   |     a0 = s0;
    0x0000d62c jalr t9                       |     t9 ();
    0x0000d630 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0000d634 b 0xd5ec                      |     goto label_1;
                                             | label_2:
    0x0000d638 lw t9, -0x7bb8(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000d63c jalr t9                       |     t9 ();
    0x0000d640 nop                           |     
                                             | }

[*] Function fprintf used 4 times kmod