[*] Binary protection state of kmod

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


[*] Function system tear down of kmod

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/kmod @ 0x52fc */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000052fc ()              | void fcn_000052fc () {
    0x000052fc lui gp, 3                 |     
    0x00005300 addiu gp, gp, 0x7d74      |     
    0x00005304 addu gp, gp, t9           |     gp += t9;
    0x00005308 addiu sp, sp, -0x58       |     
    0x0000530c lw t9, -0x7fb8(gp)        |     t9 = sym.kmod_module_get_name;
    0x00005310 sw s4, 0x40(sp)           |     *(var_40h) = s4;
    0x00005314 lw s4, -0x7b94(gp)        |     s4 = *((gp - 7909));
    0x00005318 sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x0000531c sw s6, 0x48(sp)           |     *(var_48h) = s6;
    0x00005320 lw v0, (s4)               |     v0 = *(s4);
    0x00005324 sw s5, 0x44(sp)           |     *(var_44h) = s5;
    0x00005328 sw s1, 0x34(sp)           |     *(var_34h) = s1;
    0x0000532c sw ra, 0x54(sp)           |     *(var_54h) = ra;
    0x00005330 sw fp, 0x50(sp)           |     *(var_50h) = fp;
    0x00005334 sw s7, 0x4c(sp)           |     *(var_4ch) = s7;
    0x00005338 sw s3, 0x3c(sp)           |     *(var_3ch) = s3;
    0x0000533c sw s2, 0x38(sp)           |     *(var_38h) = s2;
    0x00005340 sw s0, 0x30(sp)           |     *(var_30h) = s0;
    0x00005344 sw v0, 0x2c(sp)           |     *(var_2ch) = v0;
    0x00005348 move s1, a0               |     s1 = a0;
    0x0000534c move s5, a1               |     s5 = a1;
    0x00005350 bal 0x16b64               |     sym_kmod_module_get_name ();
    0x00005354 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00005358 move s6, v0               |     s6 = v0;
    0x0000535c sw zero, 0x24(sp)         |     *(var_24h) = 0;
    0x00005360 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00005364 sw zero, 0x28(sp)         |     *(var_28h) = 0;
    0x00005368 lw v0, 0x556c(v0)         |     v0 = *((v0 + 5467));
    0x0000536c lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
                                         |     if (v0 == 0) {
    0x00005370 beqz v0, 0x557c           |         goto label_8;
                                         |     }
                                         | label_2:
    0x00005374 lw v0, 0x5578(v0)         |     v0 = *((v0 + 5470));
    0x00005378 lw t9, -0x7f88(gp)        |     t9 = sym.kmod_module_get_initstate;
                                         |     if (v0 == 0) {
    0x0000537c beqz v0, 0x553c           |         goto label_9;
                                         |     }
    0x00005380 move s2, zero             |     s2 = 0;
                                         | label_1:
    0x00005384 lw s3, -0x7fd0(gp)        |     s3 = *((gp - 8180));
    0x00005388 lw a0, 0x28(sp)           |     a0 = *(var_28h);
    0x0000538c addiu s3, s3, 0x57cc      |     s3 += fcn.000057cc;
    0x00005390 move t9, s3               |     t9 = s3;
    0x00005394 move a1, zero             |     a1 = 0;
    0x00005398 bal 0x57cc                |     fcn_000057cc ();
    0x0000539c lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (s5 != 0) {
    0x000053a0 beqz s5, 0x53b4           |         
    0x000053a4 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
    0x000053a8 lw v0, 0x5558(v0)         |         v0 = *((v0 + 5462));
    0x000053ac lw t9, -0x7f54(gp)        |         t9 = sym.kmod_module_get_dependencies;
                                         |         if (v0 != 0) {
    0x000053b0 bnez v0, 0x5630           |             goto label_10;
                                         |         }
                                         |     }
                                         | label_3:
    0x000053b4 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x000053b8 lw v0, 0x5578(v0)         |     v0 = *((v0 + 5470));
                                         |     if (v0 == 0) {
    0x000053bc beqz v0, 0x54e8           |         goto label_11;
                                         |     }
    0x000053c0 nop                       |     
    0x000053c4 lw t9, -0x7fd0(gp)        |     t9 = *((gp - 8180));
                                         |     if (s2 == 0) {
    0x000053c8 beqz s2, 0x5508           |         goto label_12;
                                         |     }
    0x000053cc lw t9, -0x7fb8(gp)        |     t9 = sym.kmod_module_get_name;
                                         | label_0:
    0x000053d0 move a0, s1               |     a0 = s1;
    0x000053d4 bal 0x16b64               |     sym_kmod_module_get_name ();
    0x000053d8 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x000053dc move a0, s2               |     a0 = s2;
    0x000053e0 lw t9, -0x7b8c(gp)        |     t9 = sym.imp.strdup;
    0x000053e4 sw v0, 0x1c(sp)           |     *(var_1ch_2) = v0;
    0x000053e8 jalr t9                   |     t9 ();
    0x000053ec move s2, v0               |     s2 = v0;
    0x000053f0 lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (v0 == 0) {
    0x000053f4 beqz v0, 0x57b8           |         goto label_13;
                                         |     }
    0x000053f8 lw t9, -0x7c28(gp)        |     t9 = sym.imp.strlen;
    0x000053fc move a0, v0               |     a0 = v0;
    0x00005400 jalr t9                   |     t9 ();
    0x00005404 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00005408 move s1, v0               |     s1 = v0;
    0x0000540c lw s5, -0x7fdc(gp)        |     s5 = *(gp);
                                         |     /* str._CMDLINE_OPTS */
    0x00005410 addiu s5, s5, 0xf94       |     s5 += 0xf94;
    0x00005414 b 0x548c                  |     
                                         |     while (v0 != 0) {
    0x00005418 lw t9, -0x7bf8(gp)        |         t9 = sym.imp.malloc;
    0x0000541c addiu a0, s1, -0xc        |         a0 = s1 + -0xc;
    0x00005420 subu fp, v0, s2           |         __asm ("subu fp, v0, s2");
    0x00005424 addiu s7, v0, 0xd         |         s7 = v0 + 0xd;
    0x00005428 addiu s1, s1, -0xd        |         s1 += -0xd;
    0x0000542c jalr t9                   |         t9 ();
    0x00005430 move s0, v0               |         s0 = v0;
    0x00005434 lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x00005438 subu s6, s1, fp           |         __asm ("subu s6, s1, fp");
                                         |         if (v0 == 0) {
    0x0000543c beqz v0, 0x55bc           |             goto label_14;
                                         |         }
    0x00005440 lw t9, -0x7b90(gp)        |         t9 = sym.imp.memcpy;
    0x00005444 move a1, s2               |         a1 = s2;
    0x00005448 move a2, fp               |         a2 = fp;
    0x0000544c move a0, v0               |         a0 = v0;
    0x00005450 jalr t9                   |         t9 ();
    0x00005454 lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x00005458 move a2, s6               |         a2 = s6;
    0x0000545c move a1, s7               |         a1 = s7;
    0x00005460 lw t9, -0x7b90(gp)        |         t9 = sym.imp.memcpy;
    0x00005464 addu a0, s0, fp           |         a0 = s0 + fp;
    0x00005468 jalr t9                   |         t9 ();
    0x0000546c lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x00005470 addu v0, s0, s1           |         v0 = s0 + s1;
    0x00005474 move a0, s2               |         a0 = s2;
    0x00005478 lw t9, -0x7b88(gp)        |         t9 = sym.imp.free;
    0x0000547c sb zero, (v0)             |         *(v0) = 0;
    0x00005480 jalr t9                   |         t9 ();
    0x00005484 lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x00005488 move s2, s0               |         s2 = s0;
    0x0000548c lw t9, -0x7b4c(gp)        |         t9 = sym.imp.strstr;
    0x00005490 move a1, s5               |         a1 = s5;
    0x00005494 move a0, s2               |         a0 = s2;
    0x00005498 jalr t9                   |         t9 ();
    0x0000549c lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x000054a0 bnez v0, 0x5418           |         
                                         |     }
    0x000054a4 lw s1, -0x7fdc(gp)        |     s1 = *(gp);
    0x000054a8 lw a0, -0x7fdc(gp)        |     a0 = *(gp);
    0x000054ac lw t9, -0x7fd0(gp)        |     t9 = *((gp - 8180));
    0x000054b0 move a2, s2               |     a2 = s2;
                                         |     /* str.remove */
    0x000054b4 addiu a1, s1, 0xfa4       |     a1 = s1 + 0xfa4;
    0x000054b8 addiu t9, t9, 0x4a40      |     t9 += fcn.00004a40;
                                         |     /* esilref: '&s &s
' */
    0x000054bc addiu a0, a0, 0x2140      |     a0 += 0x2140;
    0x000054c0 bal 0x4a40                |     fcn_00004a40 ();
    0x000054c4 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x000054c8 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x000054cc lw v0, 0x557c(v0)         |     v0 = *((v0 + 5471));
    0x000054d0 lw t9, -0x7b88(gp)        |     t9 = sym.imp.free;
                                         |     if (v0 == 0) {
    0x000054d4 beqz v0, 0x565c           |         goto label_15;
                                         |     }
    0x000054d8 move a0, s2               |     a0 = s2;
    0x000054dc jalr t9                   |     t9 ();
    0x000054e0 move s0, zero             |     s0 = 0;
    0x000054e4 b 0x5524                  |     goto label_16;
                                         | label_11:
    0x000054e8 lw t9, -0x7fb8(gp)        |     t9 = sym.kmod_module_get_name;
                                         |     if (s2 != 0) {
    0x000054ec bnez s2, 0x53d0           |         goto label_0;
                                         |     }
    0x000054f0 lw t9, -0x7fb4(gp)        |     t9 = sym.kmod_module_get_refcnt;
    0x000054f4 move a0, s1               |     a0 = s1;
    0x000054f8 bal 0x188a0               |     sym_kmod_module_get_refcnt ();
    0x000054fc lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (v0 > 0) {
    0x00005500 bgtz v0, 0x5758           |         goto label_17;
                                         |     }
    0x00005504 lw t9, -0x7fd0(gp)        |     t9 = *((gp - 8180));
                                         | label_12:
    0x00005508 addiu t9, t9, 0x4b00      |     t9 += fcn.00004b00;
    0x0000550c move a0, s1               |     a0 = s1;
    0x00005510 bal 0x4b00                |     fcn_00004b00 ();
    0x00005514 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00005518 move s0, v0               |     s0 = v0;
                                         | label_5:
    0x0000551c lw t9, -0x7fa0(gp)        |     t9 = sym.kmod_module_unref_list;
                                         |     if (s0 < 0) {
    0x00005520 bltz s0, 0x55d4           |         goto label_4;
                                         |     }
                                         | label_16:
    0x00005524 lw a0, 0x24(sp)           |     a0 = *(var_24h);
    0x00005528 move t9, s3               |     t9 = s3;
    0x0000552c move a1, zero             |     a1 = 0;
    0x00005530 bal 0x57cc                |     fcn_000057cc ();
    0x00005534 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00005538 b 0x55d0                  |     goto label_6;
                                         | label_9:
    0x0000553c move a0, s1               |     a0 = s1;
    0x00005540 bal 0x17cf8               |     sym_kmod_module_get_initstate ();
    0x00005544 lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (v0 < 0) {
    0x00005548 bltz v0, 0x56ec           |         goto label_18;
                                         |     }
    0x0000554c move s2, zero             |     s2 = 0;
                                         |     if (v0 == 0) {
    0x00005550 bnel v0, zero, 0x5384     |         goto label_1;
                                         |     }
    0x00005554 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00005558 lw a1, -0x7fdc(gp)        |     a1 = *(gp);
    0x0000555c lw t9, -0x7f98(gp)        |     t9 = *(gp);
    0x00005560 lw a0, 0x5044(v0)         |     a0 = *((v0 + 5137));
    0x00005564 move a2, s6               |     a2 = s6;
                                         |     /* str.Module__s_is_builtin._n */
    0x00005568 addiu a1, a1, 0x3f0       |     a1 += 0x3f0;
    0x0000556c bal 0xd4fc                |     fcn_0000d4fc ();
    0x00005570 addiu s0, zero, -2        |     s0 = -2;
    0x00005574 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00005578 b 0x55d0                  |     goto label_6;
                                         | label_8:
    0x0000557c lw t9, -0x7f44(gp)        |     t9 = sym.kmod_module_get_softdeps;
    0x00005580 addiu a2, sp, 0x28        |     a2 = sp + 0x28;
    0x00005584 addiu a1, sp, 0x24        |     a1 = sp + 0x24;
    0x00005588 move a0, s1               |     a0 = s1;
    0x0000558c bal 0x173e4               |     sym_kmod_module_get_softdeps ();
    0x00005590 move s0, v0               |     s0 = v0;
    0x00005594 lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (v0 < 0) {
    0x00005598 bltz v0, 0x5724           |         goto label_19;
                                         |     }
    0x0000559c lw t9, -0x7f40(gp)        |     t9 = sym.kmod_module_get_remove_commands;
    0x000055a0 move a0, s1               |     a0 = s1;
    0x000055a4 bal 0x179a4               |     sym_kmod_module_get_remove_commands ();
    0x000055a8 move s2, v0               |     s2 = v0;
    0x000055ac lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (v0 != 0) {
    0x000055b0 bnez v0, 0x5384           |         goto label_1;
                                         |     }
    0x000055b4 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x000055b8 b 0x5374                  |     goto label_2;
                                         | label_14:
    0x000055bc lw t9, -0x7b88(gp)        |     t9 = sym.imp.free;
    0x000055c0 move a0, s2               |     a0 = s2;
    0x000055c4 jalr t9                   |     t9 ();
    0x000055c8 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x000055cc addiu s0, zero, -0xc      |     s0 = -0xc;
                                         | label_6:
    0x000055d0 lw t9, -0x7fa0(gp)        |     t9 = sym.kmod_module_unref_list;
                                         | label_4:
    0x000055d4 lw a0, 0x24(sp)           |     a0 = *(var_24h);
    0x000055d8 bal 0x162b8               |     sym_kmod_module_unref_list ();
    0x000055dc lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x000055e0 lw t9, -0x7fa0(gp)        |     t9 = sym.kmod_module_unref_list;
    0x000055e4 lw a0, 0x28(sp)           |     a0 = *(var_28h);
    0x000055e8 bal 0x162b8               |     sym_kmod_module_unref_list ();
    0x000055ec lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         | label_7:
    0x000055f0 lw a0, 0x2c(sp)           |     a0 = *(var_2ch);
    0x000055f4 lw v1, (s4)               |     v1 = *(s4);
    0x000055f8 move v0, s0               |     v0 = s0;
                                         |     if (a0 != v1) {
    0x000055fc bne a0, v1, 0x57c0        |         goto label_20;
                                         |     }
    0x00005600 lw ra, 0x54(sp)           |     ra = *(var_54h);
    0x00005604 lw fp, 0x50(sp)           |     fp = *(var_50h);
    0x00005608 lw s7, 0x4c(sp)           |     s7 = *(var_4ch);
    0x0000560c lw s6, 0x48(sp)           |     s6 = *(var_48h);
    0x00005610 lw s5, 0x44(sp)           |     s5 = *(var_44h);
    0x00005614 lw s4, 0x40(sp)           |     s4 = *(var_40h);
    0x00005618 lw s3, 0x3c(sp)           |     s3 = *(var_3ch);
    0x0000561c lw s2, 0x38(sp)           |     s2 = *(var_38h);
    0x00005620 lw s1, 0x34(sp)           |     s1 = *(var_34h);
    0x00005624 lw s0, 0x30(sp)           |     s0 = *(var_30h);
    0x00005628 addiu sp, sp, 0x58        |     
    0x0000562c jr ra                     |     return v0;
                                         | label_10:
    0x00005630 move a0, s1               |     a0 = s1;
    0x00005634 bal 0x169ec               |     sym_kmod_module_get_dependencies ();
    0x00005638 move a0, v0               |     a0 = v0;
    0x0000563c move t9, s3               |     t9 = s3;
    0x00005640 addiu a1, zero, 1         |     a1 = 1;
    0x00005644 bal 0x57cc                |     fcn_000057cc ();
    0x00005648 move s0, v0               |     s0 = v0;
    0x0000564c lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (v0 >= 0) {
    0x00005650 bgez v0, 0x53b4           |         goto label_3;
                                         |     }
    0x00005654 lw t9, -0x7fa0(gp)        |     t9 = sym.kmod_module_unref_list;
    0x00005658 b 0x55d4                  |     goto label_4;
                                         | label_15:
    0x0000565c lw s0, -0x7fdc(gp)        |     s0 = *(gp);
    0x00005660 lw t9, -0x7c2c(gp)        |     t9 = sym.imp.setenv;
    0x00005664 lw a1, 0x1c(sp)           |     a1 = *(var_1ch_2);
    0x00005668 addiu a2, zero, 1         |     a2 = 1;
                                         |     /* str.MODPROBE_MODULE */
    0x0000566c addiu a0, s0, 0xfac       |     a0 = s0 + 0xfac;
    0x00005670 jalr t9                   |     t9 ();
    0x00005674 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00005678 lw t9, -0x7c00(gp)        |     t9 = sym.imp.system
    0x0000567c move a0, s2               |     a0 = s2;
    0x00005680 jalr t9                   |     t9 ();
    0x00005684 lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     /* str.MODPROBE_MODULE */
    0x00005688 addiu a0, s0, 0xfac       |     a0 = s0 + 0xfac;
    0x0000568c lw t9, -0x7b3c(gp)        |     t9 = sym.imp.unsetenv;
    0x00005690 move s0, v0               |     s0 = v0;
    0x00005694 jalr t9                   |     t9 ();
    0x00005698 addiu v0, zero, -1        |     v0 = -1;
    0x0000569c invalid                   |     
    0x000056a0 nop                       |     
    0x000056a4 ext s5, s0, 8, 8          |     __asm ("ext s5, s0, 8, 8");
    0x000056a8 lw t9, -0x7b88(gp)        |     t9 = sym.imp.free;
                                         |     if (s5 != 0) {
    0x000056ac beqz s5, 0x56dc           |         
    0x000056b0 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
    0x000056b4 lw a1, -0x7fdc(gp)        |         a1 = *(gp);
    0x000056b8 lw t9, -0x7f98(gp)        |         t9 = *(gp);
    0x000056bc lw a0, 0x5044(v0)         |         a0 = *((v0 + 5137));
    0x000056c0 lw a3, 0x1c(sp)           |         a3 = *(var_1ch_2);
                                         |         /* str.remove */
    0x000056c4 addiu a2, s1, 0xfa4       |         a2 = s1 + 0xfa4;
                                         |         /* str.Error_running__s_command_for__s_n */
    0x000056c8 addiu a1, a1, 0xfbc       |         a1 += 0xfbc;
    0x000056cc bal 0xd4fc                |         fcn_0000d4fc ();
    0x000056d0 lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x000056d4 negu s0, s5               |         __asm ("negu s0, s5");
    0x000056d8 lw t9, -0x7b88(gp)        |         t9 = sym.imp.free;
                                         |     }
    0x000056dc move a0, s2               |     a0 = s2;
    0x000056e0 jalr t9                   |     t9 ();
    0x000056e4 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x000056e8 b 0x551c                  |     goto label_5;
                                         | label_18:
    0x000056ec lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x000056f0 lw s0, 0x5570(v0)         |     s0 = *((v0 + 5468));
    0x000056f4 lw t9, -0x7fa0(gp)        |     t9 = sym.kmod_module_unref_list;
                                         |     if (s0 == 0) {
    0x000056f8 beqz s0, 0x55d4           |         goto label_4;
                                         |     }
    0x000056fc lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00005700 lw a1, -0x7fdc(gp)        |     a1 = *(gp);
    0x00005704 lw t9, -0x7f98(gp)        |     t9 = *(gp);
    0x00005708 lw a0, 0x5044(v0)         |     a0 = *((v0 + 5137));
    0x0000570c move a2, s6               |     a2 = s6;
                                         |     /* str.Module__s_is_not_in_kernel._n */
    0x00005710 addiu a1, a1, 0xe34       |     a1 += 0xe34;
    0x00005714 bal 0xd4fc                |     fcn_0000d4fc ();
    0x00005718 addiu s0, zero, -2        |     s0 = -2;
    0x0000571c lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00005720 b 0x55d0                  |     goto label_6;
                                         | label_19:
    0x00005724 lw t9, -0x7c0c(gp)        |     t9 = sym.imp.strerror;
    0x00005728 negu a0, v0               |     __asm ("negu a0, v0");
    0x0000572c jalr t9                   |     t9 ();
    0x00005730 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00005734 move a3, v0               |     a3 = v0;
    0x00005738 move a2, s6               |     a2 = s6;
    0x0000573c lw a1, -0x7fdc(gp)        |     a1 = *(gp);
    0x00005740 lw t9, -0x7f98(gp)        |     t9 = *(gp);
                                         |     /* str.could_not_get_softdeps_of__s:__s_n */
    0x00005744 addiu a1, a1, 0xf58       |     a1 += 0xf58;
    0x00005748 addiu a0, zero, 4         |     a0 = 4;
    0x0000574c bal 0xd4fc                |     fcn_0000d4fc ();
    0x00005750 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00005754 b 0x55f0                  |     goto label_7;
                                         | label_17:
    0x00005758 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x0000575c lw a1, -0x7fdc(gp)        |     a1 = *(gp);
    0x00005760 lw t9, -0x7f98(gp)        |     t9 = *(gp);
    0x00005764 lw a0, 0x5044(v0)         |     a0 = *((v0 + 5137));
    0x00005768 move a2, s6               |     a2 = s6;
                                         |     /* str.Module__s_is_in_use._n */
    0x0000576c addiu a1, a1, 0xf7c       |     a1 += 0xf7c;
    0x00005770 bal 0xd4fc                |     fcn_0000d4fc ();
    0x00005774 addiu s0, zero, -0x10     |     s0 = -0x10;
    0x00005778 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x0000577c b 0x55d0                  |     goto label_6;
    0x00005780 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00005784 lw a1, -0x7fdc(gp)        |     a1 = *(gp);
    0x00005788 lw t9, -0x7f98(gp)        |     t9 = *(gp);
    0x0000578c lw a0, 0x5044(v0)         |     a0 = *((v0 + 5137));
    0x00005790 lw a3, 0x1c(sp)           |     a3 = *(var_1ch_2);
                                         |     /* str.remove */
    0x00005794 addiu a2, s1, 0xfa4       |     a2 = s1 + 0xfa4;
                                         |     /* str.Error_running__s_command_for__s_n */
    0x00005798 addiu a1, a1, 0xfbc       |     a1 += 0xfbc;
    0x0000579c bal 0xd4fc                |     fcn_0000d4fc ();
    0x000057a0 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x000057a4 lw t9, -0x7b88(gp)        |     t9 = sym.imp.free;
    0x000057a8 move a0, s2               |     a0 = s2;
    0x000057ac jalr t9                   |     t9 ();
    0x000057b0 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x000057b4 b 0x55d0                  |     goto label_6;
                                         | label_13:
    0x000057b8 addiu s0, zero, -0xc      |     s0 = -0xc;
    0x000057bc b 0x55d0                  |     goto label_6;
                                         | label_20:
    0x000057c0 lw t9, -0x7bb8(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x000057c4 jalr t9                   |     t9 ();
    0x000057c8 nop                       |     
                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/kmod @ 0x17d68 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.kmod_module_probe_insert_module ()       | void kmod_module_probe_insert_module () {
    0x00017d68 lui gp, 2                                 |     
    0x00017d6c addiu gp, gp, 0x5308                      |     
    0x00017d70 addu gp, gp, t9                           |     gp += t9;
    0x00017d74 addiu sp, sp, -0x88                       |     
    0x00017d78 lw v0, -0x7b94(gp)                        |     v0 = *((gp - 7909));
    0x00017d7c lw v1, 0x98(sp)                           |     v1 = *(arg_98h);
    0x00017d80 sw v0, 0x40(sp)                           |     *(var_40h) = v0;
    0x00017d84 sw v1, 0x48(sp)                           |     *(var_48h) = v1;
    0x00017d88 lw v0, (v0)                               |     v0 = *(v0);
    0x00017d8c lw v1, 0x9c(sp)                           |     v1 = *(arg_9ch);
    0x00017d90 sw gp, 0x10(sp)                           |     *(var_10h) = gp;
    0x00017d94 sw ra, 0x84(sp)                           |     *(var_84h) = ra;
    0x00017d98 sw fp, 0x80(sp)                           |     *(var_80h) = fp;
    0x00017d9c sw s7, 0x7c(sp)                           |     *(var_7ch) = s7;
    0x00017da0 sw s6, 0x78(sp)                           |     *(var_78h) = s6;
    0x00017da4 sw s5, 0x74(sp)                           |     *(var_74h) = s5;
    0x00017da8 sw s4, 0x70(sp)                           |     *(var_70h) = s4;
    0x00017dac sw s3, 0x6c(sp)                           |     *(var_6ch) = s3;
    0x00017db0 sw s2, 0x68(sp)                           |     *(var_68h) = s2;
    0x00017db4 sw s1, 0x64(sp)                           |     *(var_64h) = s1;
    0x00017db8 sw s0, 0x60(sp)                           |     *(var_60h) = s0;
    0x00017dbc sw a1, 0x8c(sp)                           |     *(arg_8ch) = a1;
    0x00017dc0 sw a2, 0x28(sp)                           |     *(var_28h) = a2;
    0x00017dc4 sw a3, 0x44(sp)                           |     *(var_44h) = a3;
    0x00017dc8 sw v1, 0x24(sp)                           |     *(var_24h) = v1;
    0x00017dcc sw v0, 0x5c(sp)                           |     *(var_5ch) = v0;
    0x00017dd0 sw zero, 0x54(sp)                         |     *(var_54h) = 0;
                                                         |     if (a0 == 0) {
    0x00017dd4 beqz a0, 0x184f8                          |         goto label_27;
                                                         |     }
    0x00017dd8 andi v0, a1, 8                            |     v0 = a1 & 8;
    0x00017ddc move fp, a0                               |     fp = a0;
    0x00017de0 sw v0, 0x2c(sp)                           |     *(var_2ch_2) = v0;
                                                         |     if (v0 == 0) {
    0x00017de4 beqz v0, 0x183a0                          |         goto label_28;
                                                         |     }
                                                         | label_19:
    0x00017de8 lw v0, 0x20(fp)                           |     v0 = *(arg_20h);
    0x00017dec lw v0, 0x8c(sp)                           |     v0 = *(arg_8ch);
                                                         |     if (v0 == 0) {
    0x00017df0 beqz v0, 0x18000                          |         goto label_29;
                                                         |     }
    0x00017df4 lui s3, 4                                 |     s3 = 0x40000;
    0x00017df8 and s3, v0, s3                            |     s3 = v0 & s3;
                                                         |     if (s3 == 0) {
    0x00017dfc beql s3, zero, 0x18004                    |         goto label_30;
                                                         |     }
    0x00017e00 lui s3, 1                                 |     s3 = 0x10000;
    0x00017e04 lw t9, -0x7ed8(gp)                        |     t9 = *(gp);
                                                         | label_0:
    0x00017e08 lw a0, (fp)                               |     a0 = *(fp);
                                                         |     /* fcn.000158ec */
                                                         | label_1:
    0x00017e0c addiu t9, t9, 0x58ec                      |     t9 += 0x58ec;
    0x00017e10 addiu a1, fp, 8                           |     a1 = fp + 8;
    0x00017e14 bal 0x158ec                               |     fcn_000158ec ();
    0x00017e18 lw gp, 0x10(sp)                           |     gp = *(var_10h);
                                                         |     if (v0 != 0) {
    0x00017e1c bnez v0, 0x17fbc                          |         goto label_6;
                                                         |     }
    0x00017e20 lw v0, 0x54(sp)                           |     v0 = *(var_54h);
                                                         | label_2:
    0x00017e24 lw t9, -0x7d44(gp)                        |     t9 = *(gp);
                                                         |     if (v0 != 0) {
    0x00017e28 bnez v0, 0x18530                          |         goto label_31;
                                                         |     }
    0x00017e2c lw a0, (fp)                               |     a0 = *(fp);
    0x00017e30 move a1, zero                             |     a1 = 0;
    0x00017e34 bal 0x10b7c                               |     fcn_00010b7c ();
    0x00017e38 lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x00017e3c lw a0, (fp)                               |     a0 = *(fp);
    0x00017e40 lw t9, -0x7d40(gp)                        |     t9 = *(gp);
    0x00017e44 move a1, zero                             |     a1 = 0;
    0x00017e48 bal 0x10c38                               |     fcn_00010c38 ();
    0x00017e4c lbu v0, 0x38(fp)                          |     v0 = *(arg_38h);
    0x00017e50 andi v0, v0, 1                            |     v0 &= 1;
    0x00017e54 lw gp, 0x10(sp)                           |     gp = *(var_10h);
                                                         |     if (v0 == 0) {
    0x00017e58 beqz v0, 0x180b0                          |         goto label_32;
                                                         |     }
    0x00017e5c move s3, zero                             |     s3 = 0;
                                                         | label_5:
    0x00017e60 lw v0, 0x8c(sp)                           |     v0 = *(arg_8ch);
    0x00017e64 ext v0, v0, 0x10, 1                       |     __asm ("ext v0, v0, 0x10, 1");
    0x00017e68 lw s5, 0x54(sp)                           |     s5 = *(var_54h);
                                                         |     if (v0 != 0) {
    0x00017e6c bnez v0, 0x183e0                          |         goto label_33;
                                                         |     }
    0x00017e70 move a0, zero                             |     a0 = 0;
                                                         |     if (s5 == 0) {
    0x00017e74 beqz s5, 0x17fac                          |         goto label_23;
                                                         |     }
                                                         | label_21:
    0x00017e78 lw v0, -0x7fdc(gp)                        |     v0 = *(gp);
    0x00017e7c sw v0, 0x4c(sp)                           |     *(var_4ch) = v0;
    0x00017e80 lw v0, -0x7fdc(gp)                        |     v0 = *(gp);
                                                         |     /* str._CMDLINE_OPTS */
    0x00017e84 addiu v0, v0, 0xf94                       |     v0 += 0xf94;
    0x00017e88 sw v0, 0x30(sp)                           |     *(var_30h_2) = v0;
    0x00017e8c lw v0, -0x7fdc(gp)                        |     v0 = *(gp);
    0x00017e90 addiu v0, v0, 0x2c24                      |     v0 += 0x2c24;
    0x00017e94 sw v0, 0x3c(sp)                           |     *(var_3ch) = v0;
    0x00017e98 lw s0, 8(s5)                              |     s0 = *((s5 + 2));
                                                         |     do {
    0x00017e9c lw t9, -0x7d3c(gp)                        |         t9 = sym.kmod_module_get_options;
    0x00017ea0 move a0, s0                               |         a0 = s0;
    0x00017ea4 bal 0x170dc                               |         sym_kmod_module_get_options ();
    0x00017ea8 lw gp, 0x10(sp)                           |         gp = *(var_10h);
    0x00017eac move a0, s0                               |         a0 = s0;
    0x00017eb0 lw t9, -0x7f48(gp)                        |         t9 = sym.kmod_module_get_install_commands;
    0x00017eb4 move s1, v0                               |         s1 = v0;
    0x00017eb8 bal 0x172e4                               |         sym_kmod_module_get_install_commands ();
    0x00017ebc move s4, v0                               |         s4 = v0;
    0x00017ec0 lw v0, 0x2c(sp)                           |         v0 = *(var_2ch_2);
    0x00017ec4 lw gp, 0x10(sp)                           |         gp = *(var_10h);
                                                         |         if (v0 == 0) {
    0x00017ec8 beqz v0, 0x180f0                          |             goto label_34;
                                                         |         }
                                                         |         if (fp == s0) {
    0x00017ecc beq fp, s0, 0x18110                       |             goto label_35;
                                                         |         }
    0x00017ed0 nop                                       |         
                                                         | label_8:
    0x00017ed4 lw t9, -0x7c28(gp)                        |         t9 = sym.imp.strlen;
                                                         |         if (s1 == 0) {
    0x00017ed8 beqz s1, 0x1816c                          |             goto label_14;
                                                         |         }
    0x00017edc move a0, s1                               |         a0 = s1;
    0x00017ee0 jalr t9                                   |         t9 ();
    0x00017ee4 lw gp, 0x10(sp)                           |         gp = *(var_10h);
    0x00017ee8 move s6, v0                               |         s6 = v0;
                                                         | label_13:
    0x00017eec lw t9, -0x7bf8(gp)                        |         t9 = sym.imp.malloc;
                                                         |         if (s6 == 0) {
    0x00017ef0 beqz s6, 0x1816c                          |             goto label_14;
                                                         |         }
    0x00017ef4 addiu a0, s6, 2                           |         a0 = s6 + 2;
    0x00017ef8 jalr t9                                   |         t9 ();
    0x00017efc lw gp, 0x10(sp)                           |         gp = *(var_10h);
    0x00017f00 move s2, v0                               |         s2 = v0;
    0x00017f04 move a2, s6                               |         a2 = s6;
    0x00017f08 lw t9, -0x7b90(gp)                        |         t9 = sym.imp.memcpy;
    0x00017f0c move a1, s1                               |         a1 = s1;
    0x00017f10 move a0, v0                               |         a0 = v0;
    0x00017f14 jalr t9                                   |         t9 ();
    0x00017f18 addu v0, s2, s6                           |         v0 = s2 + s6;
    0x00017f1c addiu v1, zero, 0x20                      |         v1 = 0x20;
    0x00017f20 lw gp, 0x10(sp)                           |         gp = *(var_10h);
    0x00017f24 addiu s6, s6, 1                           |         s6++;
    0x00017f28 sb v1, (v0)                               |         *(v0) = v1;
                                                         | label_9:
    0x00017f2c addu s6, s2, s6                           |         s6 = s2 + s6;
    0x00017f30 sb zero, (s6)                             |         *(s6) = 0;
                                                         |         if (s4 == 0) {
    0x00017f34 beqz s4, 0x18028                          |             goto label_36;
                                                         |         }
    0x00017f38 lw v0, 0x38(s0)                           |         v0 = *((s0 + 14));
    0x00017f3c ext v0, v0, 1, 1                          |         __asm ("ext v0, v0, 1, 1");
    0x00017f40 lw v0, 0x24(sp)                           |         v0 = *(var_24h);
                                                         |         if (v0 != 0) {
    0x00017f44 bnez v0, 0x1802c                          |             goto label_37;
                                                         |         }
    0x00017f48 lw a2, 0x3c(sp)                           |         a2 = *(var_3ch);
                                                         |         if (v0 != 0) {
    0x00017f4c beqz v0, 0x17f68                          |             
                                                         |             if (s2 == 0) {
    0x00017f50 movn a2, s2, s2                           |                 a2 = s2;
                                                         |             }
                                                         | label_11:
    0x00017f54 lw t9, 0x24(sp)                           |             t9 = *(var_24h);
    0x00017f58 addiu a1, zero, 1                         |             a1 = 1;
    0x00017f5c move a0, s0                               |             a0 = s0;
    0x00017f60 jalr t9                                   |             t9 ();
    0x00017f64 lw gp, 0x10(sp)                           |             gp = *(var_10h);
                                                         |         }
                                                         | label_10:
    0x00017f68 lw v0, 0x8c(sp)                           |         v0 = *(arg_8ch);
    0x00017f6c andi v0, v0, 0x10                         |         v0 &= 0x10;
    0x00017f70 lw t9, -0x7f48(gp)                        |         t9 = sym.kmod_module_get_install_commands;
                                                         |         if (v0 == 0) {
    0x00017f74 beqz v0, 0x18194                          |             goto label_38;
                                                         |         }
    0x00017f78 lw t9, -0x7b88(gp)                        |         t9 = sym.imp.free;
                                                         | label_3:
    0x00017f7c move a0, s2                               |         a0 = s2;
    0x00017f80 jalr t9                                   |         t9 ();
    0x00017f84 lw v0, 0x38(s0)                           |         v0 = *((s0 + 14));
    0x00017f88 ext v0, v0, 2, 1                          |         __asm ("ext v0, v0, 2, 1");
    0x00017f8c lw gp, 0x10(sp)                           |         gp = *(var_10h);
                                                         |         if (v0 == 0) {
    0x00017f90 beqz v0, 0x180a8                          |             goto label_26;
                                                         |         }
                                                         | label_4:
    0x00017f94 lw s5, (s5)                               |         s5 = *(s5);
                                                         | label_22:
    0x00017f98 lw a0, 0x54(sp)                           |         a0 = *(var_54h);
    0x00017f9c lw t9, -0x7fa0(gp)                        |         t9 = sym.kmod_module_unref_list;
                                                         |         if (s5 == a0) {
    0x00017fa0 beq s5, a0, 0x17fb0                       |             goto label_39;
                                                         |         }
    0x00017fa4 lw s0, 8(s5)                              |         s0 = *((s5 + 2));
    0x00017fa8 bnel s5, zero, 0x17e9c                    |         
                                                         |     } while (s5 == 0);
                                                         | label_23:
    0x00017fac lw t9, -0x7fa0(gp)                        |     t9 = sym.kmod_module_unref_list;
                                                         | label_39:
    0x00017fb0 bal 0x162b8                               |     sym_kmod_module_unref_list ();
    0x00017fb4 nop                                       |     
    0x00017fb8 lw gp, 0x10(sp)                           |     gp = *(var_10h);
                                                         | label_6:
    0x00017fbc lw v0, 0x40(sp)                           |     v0 = *(var_40h);
    0x00017fc0 lw a0, 0x5c(sp)                           |     a0 = *(var_5ch);
    0x00017fc4 lw v1, (v0)                               |     v1 = *(v0);
    0x00017fc8 move v0, s3                               |     v0 = s3;
                                                         |     if (a0 != v1) {
    0x00017fcc bne a0, v1, 0x18524                       |         goto label_40;
                                                         |     }
    0x00017fd0 lw ra, 0x84(sp)                           |     ra = *(var_84h);
    0x00017fd4 lw fp, 0x80(sp)                           |     fp = *(var_80h);
    0x00017fd8 lw s7, 0x7c(sp)                           |     s7 = *(var_7ch);
    0x00017fdc lw s6, 0x78(sp)                           |     s6 = *(var_78h);
    0x00017fe0 lw s5, 0x74(sp)                           |     s5 = *(var_74h);
    0x00017fe4 lw s4, 0x70(sp)                           |     s4 = *(var_70h);
    0x00017fe8 lw s3, 0x6c(sp)                           |     s3 = *(var_6ch);
    0x00017fec lw s2, 0x68(sp)                           |     s2 = *(var_68h);
    0x00017ff0 lw s1, 0x64(sp)                           |     s1 = *(var_64h);
    0x00017ff4 lw s0, 0x60(sp)                           |     s0 = *(var_60h);
    0x00017ff8 addiu sp, sp, 0x88                        |     
    0x00017ffc jr ra                                     |     return v0;
                                                         | label_29:
    0x00018000 lui s3, 1                                 |     s3 = 0x10000;
                                                         | label_30:
    0x00018004 and s3, v0, s3                            |     s3 = v0 & s3;
    0x00018008 lw t9, -0x7ed8(gp)                        |     t9 = *(gp);
                                                         |     if (s3 != 0) {
    0x0001800c bnez s3, 0x17e08                          |         goto label_0;
                                                         |     }
    0x00018010 lui s3, 2                                 |     s3 = 0x20000;
    0x00018014 and s3, v0, s3                            |     s3 = v0 & s3;
    0x00018018 lw a0, (fp)                               |     a0 = *(fp);
                                                         |     if (s3 == 0) {
    0x0001801c bnel s3, zero, 0x17e0c                    |         goto label_1;
                                                         |     }
    0x00018020 lw v0, 0x54(sp)                           |     v0 = *(var_54h);
    0x00018024 b 0x17e24                                 |     goto label_2;
                                                         | label_36:
    0x00018028 lw v0, 0x24(sp)                           |     v0 = *(var_24h);
                                                         | label_37:
    0x0001802c lw a2, 0x3c(sp)                           |     a2 = *(var_3ch);
                                                         |     if (v0 != 0) {
    0x00018030 beqz v0, 0x1804c                          |         
                                                         |         if (s2 == 0) {
    0x00018034 movn a2, s2, s2                           |             a2 = s2;
                                                         |         }
                                                         | label_17:
    0x00018038 lw t9, 0x24(sp)                           |         t9 = *(var_24h);
    0x0001803c move a1, zero                             |         a1 = 0;
    0x00018040 move a0, s0                               |         a0 = s0;
    0x00018044 jalr t9                                   |         t9 ();
    0x00018048 lw gp, 0x10(sp)                           |         gp = *(var_10h);
                                                         |     }
                                                         | label_16:
    0x0001804c lw v0, 0x8c(sp)                           |     v0 = *(arg_8ch);
    0x00018050 andi v0, v0, 0x10                         |     v0 &= 0x10;
    0x00018054 lw t9, -0x7b88(gp)                        |     t9 = sym.imp.free;
                                                         |     if (v0 != 0) {
    0x00018058 bnez v0, 0x17f7c                          |         goto label_3;
                                                         |     }
    0x0001805c lw t9, -0x7f78(gp)                        |     t9 = sym.kmod_module_insert_module;
    0x00018060 lw a1, 0x8c(sp)                           |     a1 = *(arg_8ch);
    0x00018064 move a2, s2                               |     a2 = s2;
    0x00018068 move a0, s0                               |     a0 = s0;
    0x0001806c bal 0x16d34                               |     sym_kmod_module_insert_module ();
    0x00018070 lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x00018074 move s3, v0                               |     s3 = v0;
                                                         | label_12:
    0x00018078 lw t9, -0x7b88(gp)                        |     t9 = sym.imp.free;
    0x0001807c move a0, s2                               |     a0 = s2;
    0x00018080 jalr t9                                   |     t9 ();
    0x00018084 addiu v0, zero, -0x11                     |     v0 = -0x11;
    0x00018088 lw gp, 0x10(sp)                           |     gp = *(var_10h);
                                                         |     if (s3 != v0) {
    0x0001808c bne s3, v0, 0x18428                       |         goto label_41;
                                                         |     }
                                                         | label_7:
    0x00018090 move s3, zero                             |     s3 = 0;
                                                         |     if (fp == s0) {
    0x00018094 bnel fp, s0, 0x17f94                      |         goto label_4;
                                                         |     }
    0x00018098 lw v0, 0x8c(sp)                           |     v0 = *(arg_8ch);
    0x0001809c andi v0, v0, 0x20                         |     v0 &= 0x20;
    0x000180a0 lw a0, 0x54(sp)                           |     a0 = *(var_54h);
                                                         |     if (v0 != 0) {
    0x000180a4 bnez v0, 0x184b4                          |         goto label_42;
                                                         |     }
                                                         | label_26:
    0x000180a8 move s3, zero                             |     s3 = 0;
    0x000180ac b 0x17f94                                 |     goto label_4;
                                                         | label_32:
    0x000180b0 lw t9, -0x7ed8(gp)                        |     t9 = *(gp);
    0x000180b4 lw v0, 0x8c(sp)                           |     v0 = *(arg_8ch);
    0x000180b8 addiu a3, sp, 0x54                        |     a3 = sp + 0x54;
    0x000180bc ext a2, v0, 2, 1                          |     __asm ("ext a2, v0, 2, 1");
    0x000180c0 addiu a1, zero, 1                         |     a1 = 1;
                                                         |     /* fcn.000177cc */
    0x000180c4 addiu t9, t9, 0x77cc                      |     t9 += 0x77cc;
    0x000180c8 move a0, fp                               |     a0 = fp;
    0x000180cc bal 0x177cc                               |     fcn_000177cc ();
    0x000180d0 move s3, v0                               |     s3 = v0;
    0x000180d4 lw gp, 0x10(sp)                           |     gp = *(var_10h);
                                                         |     if (v0 >= 0) {
    0x000180d8 bgez v0, 0x17e60                          |         goto label_5;
                                                         |     }
    0x000180dc lw t9, -0x7fa0(gp)                        |     t9 = sym.kmod_module_unref_list;
    0x000180e0 lw a0, 0x54(sp)                           |     a0 = *(var_54h);
    0x000180e4 bal 0x162b8                               |     sym_kmod_module_unref_list ();
    0x000180e8 lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x000180ec b 0x17fbc                                 |     goto label_6;
                                                         | label_34:
    0x000180f0 lw t9, -0x7f88(gp)                        |     t9 = sym.kmod_module_get_initstate;
    0x000180f4 move a0, s0                               |     a0 = s0;
    0x000180f8 bal 0x17cf8                               |     sym_kmod_module_get_initstate ();
    0x000180fc sltiu v0, v0, 2                           |     v0 = (v0 < 2) ? 1 : 0;
    0x00018100 lw gp, 0x10(sp)                           |     gp = *(var_10h);
                                                         |     if (v0 != 0) {
    0x00018104 bnez v0, 0x18090                          |         goto label_7;
                                                         |     }
                                                         |     if (fp != s0) {
    0x00018108 bne fp, s0, 0x17ed4                       |         goto label_8;
                                                         |     }
    0x0001810c nop                                       |     
                                                         | label_35:
    0x00018110 lw v0, 0x28(sp)                           |     v0 = *(var_28h);
                                                         |     if (s1 != 0) {
    0x00018114 bnez s1, 0x182f0                          |         goto label_43;
                                                         |     }
    0x00018118 lw t9, -0x7c28(gp)                        |     t9 = sym.imp.strlen;
                                                         |     if (v0 != 0) {
    0x0001811c beqz v0, 0x1816c                          |         
    0x00018120 lw a0, 0x28(sp)                           |         a0 = *(var_28h);
    0x00018124 jalr t9                                   |         t9 ();
    0x00018128 move s6, v0                               |         s6 = v0;
    0x0001812c lw gp, 0x10(sp)                           |         gp = *(var_10h);
                                                         |         if (v0 == 0) {
    0x00018130 beqz v0, 0x1816c                          |             goto label_14;
                                                         |         }
    0x00018134 lw t9, -0x7bf8(gp)                        |         t9 = sym.imp.malloc;
    0x00018138 addiu a0, v0, 2                           |         a0 = v0 + 2;
    0x0001813c jalr t9                                   |         t9 ();
    0x00018140 lw gp, 0x10(sp)                           |         gp = *(var_10h);
    0x00018144 move s2, v0                               |         s2 = v0;
    0x00018148 move s7, s6                               |         s7 = s6;
    0x0001814c move a0, zero                             |         a0 = 0;
                                                         | label_15:
    0x00018150 lw t9, -0x7b90(gp)                        |         t9 = sym.imp.memcpy;
    0x00018154 lw a1, 0x28(sp)                           |         a1 = *(var_28h);
    0x00018158 move a2, s7                               |         a2 = s7;
    0x0001815c addu a0, s2, a0                           |         a0 = s2 + a0;
    0x00018160 jalr t9                                   |         t9 ();
    0x00018164 lw gp, 0x10(sp)                           |         gp = *(var_10h);
    0x00018168 b 0x17f2c                                 |         goto label_9;
                                                         |     }
                                                         | label_14:
    0x0001816c lw v0, 0x24(sp)                           |     v0 = *(var_24h);
                                                         |     if (s4 == 0) {
    0x00018170 beqz s4, 0x18388                          |         goto label_44;
                                                         |     }
    0x00018174 lw v0, 0x38(s0)                           |     v0 = *((s0 + 14));
    0x00018178 ext v0, v0, 1, 1                          |     __asm ("ext v0, v0, 1, 1");
    0x0001817c lw v0, 0x24(sp)                           |     v0 = *(var_24h);
                                                         |     if (v0 != 0) {
    0x00018180 bnez v0, 0x18388                          |         goto label_44;
                                                         |     }
    0x00018184 move s2, zero                             |     s2 = 0;
                                                         |     if (v0 == 0) {
    0x00018188 beqz v0, 0x17f68                          |         goto label_10;
                                                         |     }
    0x0001818c lw a2, 0x3c(sp)                           |     a2 = *(var_3ch);
    0x00018190 b 0x17f54                                 |     goto label_11;
                                                         | label_38:
    0x00018194 move a0, s0                               |     a0 = s0;
    0x00018198 bal 0x172e4                               |     sym_kmod_module_get_install_commands ();
    0x0001819c move s1, v0                               |     s1 = v0;
    0x000181a0 lw gp, 0x10(sp)                           |     gp = *(var_10h);
                                                         |     if (v0 == 0) {
    0x000181a4 beqz v0, 0x18554                          |         goto label_45;
                                                         |     }
    0x000181a8 lw t9, -0x7c28(gp)                        |     t9 = sym.imp.strlen;
                                                         |     if (s2 == 0) {
    0x000181ac beqz s2, 0x183d0                          |         goto label_46;
                                                         |     }
    0x000181b0 move a0, s2                               |     a0 = s2;
    0x000181b4 jalr t9                                   |     t9 ();
    0x000181b8 lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x000181bc move s3, v0                               |     s3 = v0;
    0x000181c0 sw s2, 0x38(sp)                           |     *(var_38h) = s2;
                                                         | label_20:
    0x000181c4 lw t9, -0x7c28(gp)                        |     t9 = sym.imp.strlen;
    0x000181c8 move a0, s1                               |     a0 = s1;
    0x000181cc jalr t9                                   |     t9 ();
    0x000181d0 lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x000181d4 addiu a1, v0, 1                           |     a1 = v0 + 1;
    0x000181d8 move a0, s1                               |     a0 = s1;
    0x000181dc lw t9, -0x7ee8(gp)                        |     t9 = *(gp);
    0x000181e0 move s6, v0                               |     s6 = v0;
    0x000181e4 bal 0xeecc                                |     fcn_0000eecc ();
    0x000181e8 move s4, v0                               |     s4 = v0;
    0x000181ec addiu v0, s3, -0xd                        |     v0 = s3 + -0xd;
    0x000181f0 lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x000181f4 sw v0, 0x34(sp)                           |     *(var_34h_2) = v0;
                                                         |     if (s4 != 0) {
    0x000181f8 bnez s4, 0x182a4                          |         goto label_47;
                                                         |     }
    0x000181fc lw t9, -0x7b88(gp)                        |     t9 = sym.imp.free;
    0x00018200 b 0x18500                                 |     goto label_48;
                                                         |     do {
    0x00018204 lw v1, 0x34(sp)                           |         v1 = *(var_34h_2);
    0x00018208 addiu s7, s6, -0xd                        |         s7 = s6 + -0xd;
    0x0001820c subu s1, v0, s4                           |         __asm ("subu s1, v0, s4");
    0x00018210 lw t9, -0x7bf8(gp)                        |         t9 = sym.imp.malloc;
    0x00018214 addu s6, s6, v1                           |         s6 += v1;
    0x00018218 addiu v0, v0, 0xd                         |         v0 += 0xd;
    0x0001821c subu v1, s7, s1                           |         __asm ("subu v1, s7, s1");
    0x00018220 addiu a0, s6, 1                           |         a0 = s6 + 1;
    0x00018224 sw v1, 0x1c(sp)                           |         *(var_1ch) = v1;
    0x00018228 sw v0, 0x20(sp)                           |         *(var_20h_2) = v0;
    0x0001822c jalr t9                                   |         t9 ();
    0x00018230 move s7, v0                               |         s7 = v0;
    0x00018234 lw gp, 0x10(sp)                           |         gp = *(var_10h);
                                                         |         if (v0 == 0) {
    0x00018238 beqz v0, 0x18398                          |             goto label_49;
                                                         |         }
    0x0001823c lw t9, -0x7b90(gp)                        |         t9 = sym.imp.memcpy;
    0x00018240 move a1, s4                               |         a1 = s4;
    0x00018244 move a2, s1                               |         a2 = s1;
    0x00018248 move a0, v0                               |         a0 = v0;
    0x0001824c jalr t9                                   |         t9 ();
    0x00018250 lw gp, 0x10(sp)                           |         gp = *(var_10h);
    0x00018254 lw a1, 0x38(sp)                           |         a1 = *(var_38h);
    0x00018258 move a2, s3                               |         a2 = s3;
    0x0001825c lw t9, -0x7b90(gp)                        |         t9 = sym.imp.memcpy;
    0x00018260 addu a0, s7, s1                           |         a0 = s7 + s1;
    0x00018264 jalr t9                                   |         t9 ();
    0x00018268 lw gp, 0x10(sp)                           |         gp = *(var_10h);
    0x0001826c lw a2, 0x1c(sp)                           |         a2 = *(var_1ch);
    0x00018270 lw a1, 0x20(sp)                           |         a1 = *(var_20h_2);
    0x00018274 lw t9, -0x7b90(gp)                        |         t9 = sym.imp.memcpy;
    0x00018278 addu a0, s1, s3                           |         a0 = s1 + s3;
    0x0001827c addu a0, s7, a0                           |         a0 = s7 + a0;
    0x00018280 jalr t9                                   |         t9 ();
    0x00018284 lw gp, 0x10(sp)                           |         gp = *(var_10h);
    0x00018288 addu v0, s7, s6                           |         v0 = s7 + s6;
    0x0001828c move a0, s4                               |         a0 = s4;
    0x00018290 lw t9, -0x7b88(gp)                        |         t9 = sym.imp.free;
    0x00018294 sb zero, (v0)                             |         *(v0) = 0;
    0x00018298 jalr t9                                   |         t9 ();
    0x0001829c lw gp, 0x10(sp)                           |         gp = *(var_10h);
    0x000182a0 move s4, s7                               |         s4 = s7;
                                                         | label_47:
    0x000182a4 lw t9, -0x7b4c(gp)                        |         t9 = sym.imp.strstr;
    0x000182a8 lw a1, 0x30(sp)                           |         a1 = *(var_30h_2);
    0x000182ac move a0, s4                               |         a0 = s4;
    0x000182b0 jalr t9                                   |         t9 ();
    0x000182b4 lw gp, 0x10(sp)                           |         gp = *(var_10h);
    0x000182b8 bnez v0, 0x18204                          |         
                                                         |     } while (v0 != 0);
    0x000182bc lw t9, 0x44(sp)                           |     t9 = *(var_44h);
    0x000182c0 lw a2, 0x48(sp)                           |     a2 = *(var_48h);
                                                         |     if (t9 == 0) {
    0x000182c4 beqz t9, 0x18448                          |         goto label_50;
                                                         |     }
    0x000182c8 move a1, s4                               |     a1 = s4;
    0x000182cc move a0, s0                               |     a0 = s0;
    0x000182d0 jalr t9                                   |     t9 ();
    0x000182d4 lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x000182d8 move s3, v0                               |     s3 = v0;
                                                         | label_18:
    0x000182dc lw t9, -0x7b88(gp)                        |     t9 = sym.imp.free;
                                                         | label_24:
    0x000182e0 move a0, s4                               |     a0 = s4;
    0x000182e4 jalr t9                                   |     t9 ();
    0x000182e8 lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x000182ec b 0x18078                                 |     goto label_12;
                                                         | label_43:
    0x000182f0 lw t9, -0x7c28(gp)                        |     t9 = sym.imp.strlen;
    0x000182f4 move a0, s1                               |     a0 = s1;
    0x000182f8 jalr t9                                   |     t9 ();
    0x000182fc move s6, v0                               |     s6 = v0;
    0x00018300 lw v0, 0x28(sp)                           |     v0 = *(var_28h);
    0x00018304 lw gp, 0x10(sp)                           |     gp = *(var_10h);
                                                         |     if (v0 == 0) {
    0x00018308 beqz v0, 0x17eec                          |         goto label_13;
                                                         |     }
    0x0001830c lw t9, -0x7c28(gp)                        |     t9 = sym.imp.strlen;
    0x00018310 lw a0, 0x28(sp)                           |     a0 = *(var_28h);
    0x00018314 jalr t9                                   |     t9 ();
    0x00018318 move s7, v0                               |     s7 = v0;
    0x0001831c lw gp, 0x10(sp)                           |     gp = *(var_10h);
                                                         |     if (s6 != 0) {
    0x00018320 bnez s6, 0x1836c                          |         goto label_51;
                                                         |     }
    0x00018324 lw t9, -0x7bf8(gp)                        |     t9 = sym.imp.malloc;
                                                         |     if (v0 == 0) {
    0x00018328 beqz v0, 0x1816c                          |         goto label_14;
                                                         |     }
    0x0001832c addiu a0, s7, 2                           |     a0 = s7 + 2;
    0x00018330 jalr t9                                   |     t9 ();
    0x00018334 lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x00018338 move s2, v0                               |     s2 = v0;
                                                         |     do {
    0x0001833c lw t9, -0x7b90(gp)                        |         t9 = sym.imp.memcpy;
    0x00018340 move a2, s6                               |         a2 = s6;
    0x00018344 move a0, s2                               |         a0 = s2;
    0x00018348 move a1, s1                               |         a1 = s1;
    0x0001834c jalr t9                                   |         t9 ();
    0x00018350 addu v0, s2, s6                           |         v0 = s2 + s6;
    0x00018354 addiu a0, s6, 1                           |         a0 = s6 + 1;
    0x00018358 addiu v1, zero, 0x20                      |         v1 = 0x20;
    0x0001835c lw gp, 0x10(sp)                           |         gp = *(var_10h);
    0x00018360 sb v1, (v0)                               |         *(v0) = v1;
    0x00018364 addu s6, a0, s7                           |         s6 = a0 + s7;
    0x00018368 b 0x18150                                 |         goto label_15;
                                                         | label_51:
    0x0001836c lw t9, -0x7bf8(gp)                        |         t9 = sym.imp.malloc;
    0x00018370 addu a0, s6, v0                           |         a0 = s6 + v0;
    0x00018374 addiu a0, a0, 2                           |         a0 += 2;
    0x00018378 jalr t9                                   |         t9 ();
    0x0001837c move s2, v0                               |         s2 = v0;
    0x00018380 lw gp, 0x10(sp)                           |         gp = *(var_10h);
    0x00018384 b 0x1833c                                 |         
                                                         |     } while (1);
                                                         | label_44:
    0x00018388 move s2, zero                             |     s2 = 0;
                                                         |     if (v0 == 0) {
    0x0001838c beqz v0, 0x1804c                          |         goto label_16;
                                                         |     }
    0x00018390 lw a2, 0x3c(sp)                           |     a2 = *(var_3ch);
    0x00018394 b 0x18038                                 |     goto label_17;
                                                         | label_49:
    0x00018398 addiu s3, zero, -0xc                      |     s3 = -0xc;
    0x0001839c b 0x182dc                                 |     goto label_18;
                                                         | label_28:
    0x000183a0 lw t9, -0x7f88(gp)                        |     t9 = sym.kmod_module_get_initstate;
    0x000183a4 bal 0x17cf8                               |     sym_kmod_module_get_initstate ();
    0x000183a8 nop                                       |     
    0x000183ac sltiu v0, v0, 2                           |     v0 = (v0 < 2) ? 1 : 0;
    0x000183b0 lw gp, 0x10(sp)                           |     gp = *(var_10h);
                                                         |     if (v0 == 0) {
    0x000183b4 beqz v0, 0x17de8                          |         goto label_19;
                                                         |     }
    0x000183b8 lw v0, 0x8c(sp)                           |     v0 = *(arg_8ch);
    0x000183bc andi s3, v0, 0x20                         |     s3 = v0 & 0x20;
    0x000183c0 addiu v0, zero, -0x11                     |     v0 = -0x11;
                                                         |     if (s3 != 0) {
    0x000183c4 movz v0, zero, s3                         |         v0 = 0;
                                                         |     }
    0x000183c8 move s3, v0                               |     s3 = v0;
    0x000183cc b 0x17fbc                                 |     goto label_6;
                                                         | label_46:
    0x000183d0 lw v0, 0x3c(sp)                           |     v0 = *(var_3ch);
    0x000183d4 move s3, zero                             |     s3 = 0;
    0x000183d8 sw v0, 0x38(sp)                           |     *(var_38h) = v0;
    0x000183dc b 0x181c4                                 |     goto label_20;
                                                         | label_33:
    0x000183e0 lw t9, -0x7f5c(gp)                        |     t9 = sym.kmod_module_apply_filter;
    0x000183e4 lw a0, (fp)                               |     a0 = *(fp);
    0x000183e8 addiu a3, sp, 0x58                        |     a3 = sp + 0x58;
    0x000183ec move a2, s5                               |     a2 = s5;
    0x000183f0 addiu a1, zero, 1                         |     a1 = 1;
    0x000183f4 sw zero, 0x58(sp)                         |     *(var_58h) = 0;
    0x000183f8 bal 0x16f64                               |     sym_kmod_module_apply_filter ();
    0x000183fc move s3, v0                               |     s3 = v0;
    0x00018400 lw gp, 0x10(sp)                           |     gp = *(var_10h);
                                                         |     if (v0 < 0) {
    0x00018404 bltz v0, 0x17fbc                          |         goto label_6;
                                                         |     }
    0x00018408 lw t9, -0x7fa0(gp)                        |     t9 = sym.kmod_module_unref_list;
    0x0001840c lw a0, 0x54(sp)                           |     a0 = *(var_54h);
    0x00018410 bal 0x162b8                               |     sym_kmod_module_unref_list ();
    0x00018414 lw s5, 0x58(sp)                           |     s5 = *(var_58h);
    0x00018418 lw gp, 0x10(sp)                           |     gp = *(var_10h);
                                                         |     if (s5 == 0) {
    0x0001841c beqz s5, 0x184f0                          |         goto label_52;
                                                         |     }
    0x00018420 sw s5, 0x54(sp)                           |     *(var_54h) = s5;
    0x00018424 b 0x17e78                                 |     goto label_21;
                                                         | label_41:
    0x00018428 lw v0, 0x38(s0)                           |     v0 = *((s0 + 14));
    0x0001842c ext v0, v0, 2, 1                          |     __asm ("ext v0, v0, 2, 1");
                                                         |     if (v0 == 0) {
    0x00018430 beql v0, zero, 0x17f94                    |         goto label_4;
                                                         |     }
    0x00018434 move s3, zero                             |     s3 = 0;
                                                         |     if (s3 >= 0) {
    0x00018438 bgezl s3, 0x17f98                         |         goto label_22;
                                                         |     }
    0x0001843c lw s5, (s5)                               |     s5 = *(s5);
                                                         | label_25:
    0x00018440 lw a0, 0x54(sp)                           |     a0 = *(var_54h);
    0x00018444 b 0x17fac                                 |     goto label_23;
                                                         | label_50:
    0x00018448 lw t9, -0x7fb8(gp)                        |     t9 = sym.kmod_module_get_name;
    0x0001844c move a0, s0                               |     a0 = s0;
    0x00018450 bal 0x16b64                               |     sym_kmod_module_get_name ();
    0x00018454 lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x00018458 lw s1, 0x4c(sp)                           |     s1 = *(var_4ch);
    0x0001845c addiu a2, zero, 1                         |     a2 = 1;
    0x00018460 lw t9, -0x7c2c(gp)                        |     t9 = sym.imp.setenv;
    0x00018464 move a1, v0                               |     a1 = v0;
    0x00018468 addiu a0, s1, 0xfac                       |     a0 = s1 + 0xfac;
    0x0001846c jalr t9                                   |     t9 ();
    0x00018470 lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x00018474 lw t9, -0x7c00(gp)                        |     t9 = sym.imp.system
    0x00018478 move a0, s4                               |     a0 = s4;
    0x0001847c jalr t9                                   |     t9 ();
    0x00018480 lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x00018484 addiu a0, s1, 0xfac                       |     a0 = s1 + 0xfac;
    0x00018488 lw t9, -0x7b3c(gp)                        |     t9 = sym.imp.unsetenv;
    0x0001848c move s3, v0                               |     s3 = v0;
    0x00018490 jalr t9                                   |     t9 ();
    0x00018494 addiu v0, zero, -1                        |     v0 = -1;
    0x00018498 lw gp, 0x10(sp)                           |     gp = *(var_10h);
                                                         |     if (s3 == v0) {
    0x0001849c beq s3, v0, 0x184bc                       |         goto label_53;
                                                         |     }
    0x000184a0 ext v0, s3, 8, 8                          |     __asm ("ext v0, s3, 8, 8");
    0x000184a4 negu s3, v0                               |     __asm ("negu s3, v0");
                                                         |     if (v0 == 0) {
    0x000184a8 bnel v0, zero, 0x182dc                    |         goto label_18;
                                                         |     }
    0x000184ac lw t9, -0x7b88(gp)                        |     t9 = sym.imp.free;
    0x000184b0 b 0x182e0                                 |     goto label_24;
                                                         | label_42:
    0x000184b4 addiu s3, zero, -0x11                     |     s3 = -0x11;
    0x000184b8 b 0x17fac                                 |     goto label_23;
                                                         | label_53:
    0x000184bc lw t9, -0x7b88(gp)                        |     t9 = sym.imp.free;
    0x000184c0 move a0, s4                               |     a0 = s4;
    0x000184c4 jalr t9                                   |     t9 ();
    0x000184c8 lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x000184cc lw t9, -0x7b88(gp)                        |     t9 = sym.imp.free;
    0x000184d0 move a0, s2                               |     a0 = s2;
    0x000184d4 jalr t9                                   |     t9 ();
    0x000184d8 lw v0, 0x38(s0)                           |     v0 = *((s0 + 14));
    0x000184dc ext v0, v0, 2, 1                          |     __asm ("ext v0, v0, 2, 1");
    0x000184e0 lw gp, 0x10(sp)                           |     gp = *(var_10h);
                                                         |     if (v0 != 0) {
    0x000184e4 bnez v0, 0x18440                          |         goto label_25;
                                                         |     }
    0x000184e8 move s3, zero                             |     s3 = 0;
    0x000184ec b 0x17f94                                 |     goto label_4;
                                                         | label_52:
    0x000184f0 lui s3, 1                                 |     s3 = 0x10000;
    0x000184f4 b 0x17fbc                                 |     goto label_6;
                                                         | label_27:
    0x000184f8 addiu s3, zero, -2                        |     s3 = -2;
    0x000184fc b 0x17fbc                                 |     goto label_6;
                                                         | label_48:
    0x00018500 move a0, s2                               |     a0 = s2;
    0x00018504 jalr t9                                   |     t9 ();
    0x00018508 lw v0, 0x38(s0)                           |     v0 = *((s0 + 14));
    0x0001850c ext v0, v0, 2, 1                          |     __asm ("ext v0, v0, 2, 1");
    0x00018510 lw gp, 0x10(sp)                           |     gp = *(var_10h);
                                                         |     if (v0 == 0) {
    0x00018514 beqz v0, 0x180a8                          |         goto label_26;
                                                         |     }
    0x00018518 lw a0, 0x54(sp)                           |     a0 = *(var_54h);
    0x0001851c addiu s3, zero, -0xc                      |     s3 = -0xc;
    0x00018520 b 0x17fac                                 |     goto label_23;
                                                         | label_40:
    0x00018524 lw t9, -0x7bb8(gp)                        |     t9 = sym.imp.__stack_chk_fail;
    0x00018528 jalr t9                                   |     t9 ();
    0x0001852c nop                                       |     
                                                         | label_31:
    0x00018530 lw a3, -0x7fdc(gp)                        |     a3 = *(gp);
    0x00018534 lw a1, -0x7fdc(gp)                        |     a1 = *(gp);
    0x00018538 lw a0, -0x7fdc(gp)                        |     a0 = *(gp);
    0x0001853c lw t9, -0x7ce0(gp)                        |     t9 = sym.imp.__assert_fail;
                                                         |     /* str.kmod_module_get_probe_list */
    0x00018540 addiu a3, a3, 0x3b08                      |     a3 += 0x3b08;
    0x00018544 addiu a2, zero, 0x49a                     |     a2 = 0x49a;
                                                         |     /* str..._git_libkmod_libkmod_module.c */
    0x00018548 addiu a1, a1, 0x3944                      |     a1 += 0x3944;
                                                         |     /* str.list___NULL__list__NULL */
    0x0001854c addiu a0, a0, 0x39b4                      |     a0 += 0x39b4;
    0x00018550 jalr t9                                   |     t9 ();
                                                         | label_45:
    0x00018554 lw a3, -0x7fdc(gp)                        |     a3 = *(gp);
    0x00018558 lw a1, -0x7fdc(gp)                        |     a1 = *(gp);
    0x0001855c lw a0, -0x7fdc(gp)                        |     a0 = *(gp);
    0x00018560 lw t9, -0x7ce0(gp)                        |     t9 = sym.imp.__assert_fail;
                                                         |     /* str.module_do_install_commands */
    0x00018564 addiu a3, a3, 0x3aec                      |     a3 += 0x3aec;
    0x00018568 addiu a2, zero, 0x3ea                     |     a2 = 0x3ea;
                                                         |     /* str..._git_libkmod_libkmod_module.c */
    0x0001856c addiu a1, a1, 0x3944                      |     a1 += 0x3944;
                                                         |     /* esilref: 'command' */
    0x00018570 addiu a0, a0, 0x1b74                      |     a0 += 0x1b74;
    0x00018574 jalr t9                                   |     return t9 ();
                                                         | }

[*] Function system used 3 times kmod