[*] Binary protection state of firmwaremanagement.cgi

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


[*] Function system tear down of firmwaremanagement.cgi

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/html/axis-cgi/firmwaremanagement.cgi @ 0x272c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.0000272c ()              | void fcn_0000272c () {
    0x0000272c lui gp, 2                 |     
    0x00002730 addiu gp, gp, -0x471c     |     
    0x00002734 addu gp, gp, t9           |     gp += t9;
    0x00002738 addiu sp, sp, -0x7ff0     |     
    0x0000273c lui a3, 1                 |     a3 = 0x10000;
    0x00002740 ori v1, zero, 0x8090      |     v1 = 0x8090;
    0x00002744 lw v0, -0x7f34(gp)        |     v0 = *((gp - 8141));
    0x00002748 sw s4, 0x7fdc(sp)         |     *(arg_7fdch) = s4;
    0x0000274c sw s3, 0x7fd8(sp)         |     *(arg_7fd8h) = s3;
    0x00002750 sw s2, 0x7fd4(sp)         |     *(arg_7fd4h) = s2;
    0x00002754 sw s0, 0x7fcc(sp)         |     *(arg_7fcch) = s0;
    0x00002758 sw ra, 0x7fec(sp)         |     *(arg_7fech) = ra;
    0x0000275c sw s7, 0x7fe8(sp)         |     *(arg_7fe8h) = s7;
    0x00002760 sw s6, 0x7fe4(sp)         |     *(arg_7fe4h) = s6;
    0x00002764 sw s5, 0x7fe0(sp)         |     *(arg_7fe0h) = s5;
    0x00002768 sw s1, 0x7fd0(sp)         |     *(arg_7fd0h) = s1;
    0x0000276c lui s0, 0xfffe            |     s0 = 0xfffe0000;
    0x00002770 subu sp, sp, v1           |     
    0x00002774 ori v1, a3, 0x58          |     v1 = a3 | 0x58;
    0x00002778 addu v1, v1, sp           |     v1 += sp;
    0x0000277c ori s0, s0, 0xfff4        |     s0 |= 0xfff4;
    0x00002780 move s2, a0               |     s2 = a0;
    0x00002784 addu a0, v1, s0           |     a0 = v1 + s0;
    0x00002788 ori v1, a3, 0x54          |     v1 = a3 | 0x54;
    0x0000278c lw v0, (v0)               |     v0 = *(v0);
    0x00002790 addu v1, v1, sp           |     v1 += sp;
    0x00002794 lw t9, -0x7f8c(gp)        |     t9 = sym.imp.pipe;
    0x00002798 sw gp, 0x30(sp)           |     *(arg_30h) = gp;
    0x0000279c sw v0, (v1)               |     *(v1) = v0;
    0x000027a0 move s4, a1               |     s4 = a1;
    0x000027a4 move s3, a2               |     s3 = a2;
    0x000027a8 jalr t9                   |     t9 ();
    0x000027ac lw gp, 0x30(sp)           |     gp = *(arg_30h);
                                         |     if (v0 < 0) {
    0x000027b0 bltz v0, 0x2954           |         goto label_6;
                                         |     }
    0x000027b4 lui v1, 1                 |     v1 = 0x10000;
    0x000027b8 ori v0, v1, 0x58          |     v0 = v1 | 0x58;
    0x000027bc addu v0, v0, sp           |     v0 += sp;
    0x000027c0 lui s1, 0xffff            |     s1 = 0xffff0000;
    0x000027c4 addu s1, v0, s1           |     s1 = v0 + s1;
    0x000027c8 ori v0, v1, 0x58          |     v0 = v1 | 0x58;
    0x000027cc lw t9, -0x7f24(gp)        |     t9 = sym.imp.sd_bus_open_system
    0x000027d0 addu v0, v0, sp           |     v0 += sp;
    0x000027d4 addiu a0, s0, -0x10       |     a0 = s0 + -0x10;
    0x000027d8 addu a0, v0, a0           |     a0 = v0 + a0;
    0x000027dc sw zero, -0x1c(s1)        |     *((s1 - 7)) = 0;
    0x000027e0 jalr t9                   |     t9 ();
    0x000027e4 lw gp, 0x30(sp)           |     gp = *(arg_30h);
                                         |     if (v0 < 0) {
    0x000027e8 bltz v0, 0x293c           |         goto label_7;
                                         |     }
    0x000027ec lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x000027f0 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x000027f4 addiu v0, v0, 0x45f0      |     v0 += str.Upgrade;
    0x000027f8 lw a0, -0x1c(s1)          |     a0 = *((s1 - 7));
    0x000027fc sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00002800 lui v0, 1                 |     v0 = 0x10000;
    0x00002804 lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
    0x00002808 ori v0, v0, 0x58          |     v0 |= 0x58;
    0x0000280c lw t9, -0x7f80(gp)        |     t9 = sym.imp.sd_bus_message_new_method_call;
    0x00002810 addiu a2, a2, 0x45d4      |     a2 += str.com.axis.FirmwareManager1;
    0x00002814 addu v0, v0, sp           |     v0 += sp;
    0x00002818 addiu a1, s0, -0xc        |     a1 = s0 + -0xc;
    0x0000281c sw a2, 0x10(sp)           |     *(var_10h) = a2;
    0x00002820 addiu a3, a3, 0x45b8      |     a3 += str._com_axis_FirmwareManager1;
    0x00002824 addu a1, v0, a1           |     a1 = v0 + a1;
    0x00002828 sw zero, -0x18(s1)        |     *((s1 - 6)) = 0;
    0x0000282c jalr t9                   |     t9 ();
    0x00002830 lw gp, 0x30(sp)           |     gp = *(arg_30h);
                                         |     if (v0 < 0) {
    0x00002834 bltz v0, 0x29a0           |         goto label_8;
                                         |     }
    0x00002838 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x0000283c lw a0, -0x18(s1)          |     a0 = *((s1 - 6));
    0x00002840 lw v1, 0x61a4(v0)         |     v1 = *((v0 + 6249));
    0x00002844 lw a3, -0xc(s1)           |     a3 = *((s1 - 3));
                                         |     if (v1 == 0) {
    0x00002848 beqz v1, 0x2994           |         goto label_9;
                                         |     }
                                         | label_1:
    0x0000284c lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00002850 lw a1, 0x61a0(v0)         |     a1 = *((v0 + 6248));
                                         |     if (a1 == 0) {
    0x00002854 beql a1, zero, 0x298c     |         goto label_10;
                                         |     }
    0x00002858 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
                                         | label_0:
    0x0000285c lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00002860 lw v0, 0x619c(v0)         |     v0 = *((v0 + 6247));
                                         |     if (v0 == 0) {
    0x00002864 beql v0, zero, 0x2984     |         goto label_11;
                                         |     }
    0x00002868 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
                                         |     do {
    0x0000286c sw v0, 0x28(sp)           |         *(arg_28h) = v0;
    0x00002870 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
    0x00002874 sw a1, 0x20(sp)           |         *(var_20h) = a1;
    0x00002878 addiu v0, v0, 0x4620      |         v0 += str.AutoRollback;
    0x0000287c sw v0, 0x24(sp)           |         *(var_24h) = v0;
    0x00002880 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
    0x00002884 lw a1, -0x7fd8(gp)        |         a1 = *((gp - 8182));
    0x00002888 addiu v0, v0, 0x4630      |         v0 += str.AutoCommit;
    0x0000288c sw v0, 0x1c(sp)           |         *(var_1ch) = v0;
    0x00002890 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
    0x00002894 lw t9, -0x7ed4(gp)        |         t9 = sym.imp.sd_bus_message_append;
    0x00002898 addiu v0, v0, 0x463c      |         v0 += str.FactoryDefaultMode;
    0x0000289c sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x000028a0 addiu v0, zero, 3         |         v0 = 3;
    0x000028a4 sw v1, 0x18(sp)           |         *(var_18h) = v1;
    0x000028a8 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x000028ac move a2, s2               |         a2 = s2;
    0x000028b0 addiu a1, a1, 0x4618      |         a1 += str.ihass;
    0x000028b4 jalr t9                   |         t9 ();
    0x000028b8 lw gp, 0x30(sp)           |         gp = *(arg_30h);
                                         |         if (v0 >= 0) {
    0x000028bc bltz v0, 0x296c           |             
    0x000028c0 lui v0, 1                 |             v0 = 0x10058;
    0x000028c4 ori v0, v0, 0x58          |             
    0x000028c8 addu v0, v0, sp           |             v0 += sp;
    0x000028cc lui s0, 0xffff            |             s0 = 0xffff0000;
    0x000028d0 addu s0, v0, s0           |             s0 = v0 + s0;
    0x000028d4 lw a3, -0x7fd8(gp)        |             a3 = *((gp - 8182));
    0x000028d8 lui v0, 0x6b49            |             v0 = 0x6b490000;
    0x000028dc lw a2, -0x18(s0)          |             a2 = *((s0 - 6));
    0x000028e0 lw a0, -0x1c(s0)          |             a0 = *((s0 - 7));
    0x000028e4 lw t9, -0x7fb0(gp)        |             t9 = sym.imp.sd_bus_call_async;
    0x000028e8 ori v0, v0, 0xd200        |             v0 |= 0xd200;
    0x000028ec move v1, zero             |             v1 = 0;
    0x000028f0 sw v0, 0x18(sp)           |             *(var_18h) = v0;
    0x000028f4 sw v1, 0x1c(sp)           |             *(var_1ch) = v1;
    0x000028f8 sw zero, 0x10(sp)         |             *(var_10h) = 0;
    0x000028fc addiu a3, a3, 0x3854      |             a3 += 0x3854;
    0x00002900 move a1, zero             |             a1 = 0;
    0x00002904 jalr t9                   |             t9 ();
    0x00002908 lw gp, 0x30(sp)           |             gp = *(arg_30h);
                                         |             if (v0 >= 0) {
    0x0000290c bltz v0, 0x2924           |                 
    0x00002910 lw t9, -0x7f00(gp)        |                 t9 = sym.imp.sd_bus_flush;
    0x00002914 lw a0, -0x1c(s0)          |                 a0 = *((s0 - 7));
    0x00002918 jalr t9                   |                 t9 ();
    0x0000291c lw gp, 0x30(sp)           |                 gp = *(arg_30h);
                                         |                 if (v0 >= 0) {
    0x00002920 bgez v0, 0x29b8           |                     goto label_12;
                                         |                 }
                                         |             }
    0x00002924 lw a1, -0x7fd8(gp)        |             a1 = *((gp - 8182));
    0x00002928 lw t9, -0x7fd8(gp)        |             t9 = *((gp - 8182));
    0x0000292c addiu a1, a1, 0x4678      |             a1 += str.Failed_to_start_upgrade.;
    0x00002930 addiu t9, t9, 0x26d0      |             t9 += fcn.000026d0;
    0x00002934 addiu a0, zero, 0x1f4     |             a0 = 0x1f4;
    0x00002938 bal 0x26d0                |             fcn_000026d0 ();
                                         | label_7:
    0x0000293c lw a1, -0x7fd8(gp)        |             a1 = *((gp - 8182));
    0x00002940 lw t9, -0x7fd8(gp)        |             t9 = *((gp - 8182));
    0x00002944 addiu a1, a1, 0x4598      |             a1 += str.Failed_to_open_DBus_connection.;
    0x00002948 addiu t9, t9, 0x26d0      |             t9 += fcn.000026d0;
    0x0000294c addiu a0, zero, 0x1f4     |             a0 = 0x1f4;
    0x00002950 bal 0x26d0                |             fcn_000026d0 ();
                                         | label_6:
    0x00002954 lw a1, -0x7fd8(gp)        |             a1 = *((gp - 8182));
    0x00002958 lw t9, -0x7fd8(gp)        |             t9 = *((gp - 8182));
    0x0000295c addiu a1, a1, 0x4574      |             a1 += str.Could_not_create_pipe_for_upgrade.;
    0x00002960 addiu t9, t9, 0x26d0      |             t9 += fcn.000026d0;
    0x00002964 addiu a0, zero, 0x1f4     |             a0 = 0x1f4;
    0x00002968 bal 0x26d0                |             fcn_000026d0 ();
                                         |         }
    0x0000296c lw a1, -0x7fd8(gp)        |         a1 = *((gp - 8182));
    0x00002970 lw t9, -0x7fd8(gp)        |         t9 = *((gp - 8182));
    0x00002974 addiu a1, a1, 0x4650      |         a1 += str.Failed_to_set_DBus_message_parameters.;
    0x00002978 addiu t9, t9, 0x26d0      |         t9 += fcn.000026d0;
    0x0000297c addiu a0, zero, 0x1f4     |         a0 = 0x1f4;
    0x00002980 bal 0x26d0                |         fcn_000026d0 ();
                                         | label_11:
    0x00002984 addiu v0, v0, 0x456c      |         v0 += str.Default;
    0x00002988 b 0x286c                  |         
                                         |     } while (1);
                                         | label_10:
    0x0000298c addiu a1, a1, 0x456c      |     a1 += str.Default;
    0x00002990 b 0x285c                  |     goto label_0;
                                         | label_9:
    0x00002994 lw v1, -0x7fd8(gp)        |     v1 = *((gp - 8182));
    0x00002998 addiu v1, v1, 0x456c      |     v1 += str.Default;
    0x0000299c b 0x284c                  |     goto label_1;
                                         | label_8:
    0x000029a0 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x000029a4 lw t9, -0x7fd8(gp)        |     t9 = *((gp - 8182));
    0x000029a8 addiu a1, a1, 0x45f8      |     a1 += str.Failed_to_create_DBus_message.;
    0x000029ac addiu t9, t9, 0x26d0      |     t9 += fcn.000026d0;
    0x000029b0 addiu a0, zero, 0x1f4     |     a0 = 0x1f4;
    0x000029b4 bal 0x26d0                |     fcn_000026d0 ();
                                         | label_12:
    0x000029b8 lw t9, -0x7f44(gp)        |     t9 = sym.imp.close;
    0x000029bc lw a0, -0xc(s0)           |     a0 = *((s0 - 3));
    0x000029c0 jalr t9                   |     t9 ();
    0x000029c4 lw gp, 0x30(sp)           |     gp = *(arg_30h);
                                         |     if (s3 != 0) {
    0x000029c8 bnez s3, 0x2bb4           |         goto label_13;
                                         |     }
                                         | label_5:
    0x000029cc lui v0, 1                 |     v0 = 0x10000;
    0x000029d0 lui s0, 0xfffe            |     s0 = 0xfffe0000;
    0x000029d4 ori v0, v0, 0x58          |     v0 |= 0x58;
    0x000029d8 ori s0, s0, 0xfffc        |     s0 |= 0xfffc;
    0x000029dc addu v0, v0, sp           |     v0 += sp;
    0x000029e0 lw s5, -0x7fdc(gp)        |     s5 = *((gp - 8183));
    0x000029e4 lui s4, 1                 |     s4 = 0x10000;
    0x000029e8 addu s0, v0, s0           |     s0 = v0 + s0;
                                         |     do {
                                         | label_2:
    0x000029ec addiu a2, s4, 1           |         a2 = s4 + 1;
                                         |         if (s2 == 0) {
    0x000029f0 beqz s2, 0x2ad0           |             goto label_14;
                                         |         }
    0x000029f4 sltu a2, s2, a2           |         a2 = (s2 < a2) ? 1 : 0;
    0x000029f8 move v0, s4               |         v0 = s4;
    0x000029fc lw t9, -0x7f0c(gp)        |         t9 = sym.imp.__read_chk;
                                         |         if (a2 == 0) {
    0x00002a00 movn v0, s2, a2           |             v0 = s2;
                                         |         }
    0x00002a04 lui a3, 1                 |         a3 = 0x10000;
    0x00002a08 move a2, v0               |         a2 = v0;
    0x00002a0c move a1, s0               |         a1 = s0;
    0x00002a10 move a0, zero             |         a0 = 0;
    0x00002a14 jalr t9                   |         t9 ();
    0x00002a18 move s1, v0               |         s1 = v0;
    0x00002a1c lw gp, 0x30(sp)           |         gp = *(arg_30h);
                                         |         if (v0 >= 0) {
    0x00002a20 bgez v0, 0x2a58           |             goto label_15;
                                         |         }
    0x00002a24 lw t9, -0x7ea0(gp)        |         t9 = sym.imp.__errno_location;
    0x00002a28 jalr t9                   |         t9 ();
    0x00002a2c nop                       |         
    0x00002a30 lw v1, (v0)               |         v1 = *(v0);
    0x00002a34 addiu v0, zero, 4         |         v0 = 4;
    0x00002a38 lw gp, 0x30(sp)           |         gp = *(arg_30h);
    0x00002a3c beq v1, v0, 0x29ec        |         
                                         |     } while (v1 == v0);
    0x00002a40 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00002a44 lw t9, -0x7fd8(gp)        |     t9 = *((gp - 8182));
    0x00002a48 addiu a1, a1, 0x46b8      |     a1 += str.Could_not_read_from_input_stream.;
    0x00002a4c addiu t9, t9, 0x26d0      |     t9 += fcn.000026d0;
    0x00002a50 addiu a0, zero, 0x1f4     |     a0 = 0x1f4;
    0x00002a54 bal 0x26d0                |     fcn_000026d0 ();
                                         | label_15:
    0x00002a58 lw v0, 0x61b8(s5)         |     v0 = *((s5 + 6254));
                                         |     if (v0 == 0) {
    0x00002a5c beqz v0, 0x2c08           |         goto label_16;
                                         |     }
    0x00002a60 lui s6, 0xffff            |     s6 = 0xffff0000;
    0x00002a64 subu v0, v0, s1           |     __asm ("subu v0, v0, s1");
    0x00002a68 sw v0, 0x61b8(s5)         |     *((s5 + 6254)) = v0;
    0x00002a6c lui v0, 1                 |     v0 = 0x10058;
    0x00002a70 ori v0, v0, 0x58          |     
    0x00002a74 addu v0, v0, sp           |     v0 += sp;
    0x00002a78 move s3, zero             |     s3 = 0;
    0x00002a7c addu s6, v0, s6           |     s6 = v0 + s6;
    0x00002a80 addiu s7, zero, 4         |     s7 = 4;
    0x00002a84 lw t9, -0x7ed0(gp)        |     t9 = sym.imp.write;
                                         |     do {
    0x00002a88 lw a0, -8(s6)             |         a0 = *((s6 - 2));
    0x00002a8c subu a2, s1, s3           |         __asm ("subu a2, s1, s3");
    0x00002a90 addu a1, s0, s3           |         a1 = s0 + s3;
    0x00002a94 jalr t9                   |         t9 ();
    0x00002a98 lw gp, 0x30(sp)           |         gp = *(arg_30h);
                                         |         if (v0 < 0) {
    0x00002a9c bltz v0, 0x2ab8           |             goto label_17;
                                         |         }
    0x00002aa0 addu s3, s3, v0           |         s3 += v0;
                                         | label_3:
    0x00002aa4 slt v0, s3, s1            |         v0 = (s3 < s1) ? 1 : 0;
    0x00002aa8 lw t9, -0x7ed0(gp)        |         t9 = sym.imp.write;
    0x00002aac bnez v0, 0x2a88           |         
                                         |     } while (v0 != 0);
    0x00002ab0 subu s2, s2, s1           |     __asm ("subu s2, s2, s1");
    0x00002ab4 b 0x29ec                  |     goto label_2;
                                         | label_17:
    0x00002ab8 lw t9, -0x7ea0(gp)        |     t9 = sym.imp.__errno_location;
    0x00002abc jalr t9                   |     t9 ();
    0x00002ac0 nop                       |     
    0x00002ac4 lw v0, (v0)               |     v0 = *(v0);
    0x00002ac8 lw gp, 0x30(sp)           |     gp = *(arg_30h);
                                         |     if (v0 == s7) {
    0x00002acc beq v0, s7, 0x2aa4        |         goto label_3;
                                         |     }
                                         | label_14:
    0x00002ad0 lui s0, 1                 |     s0 = 0x10000;
    0x00002ad4 ori v0, s0, 0x58          |     v0 = s0 | 0x58;
    0x00002ad8 lui s2, 0xffff            |     s2 = 0xffff0000;
    0x00002adc addu v0, v0, sp           |     v0 += sp;
    0x00002ae0 addu s1, v0, s2           |     s1 = v0 + s2;
    0x00002ae4 lw t9, -0x7f44(gp)        |     t9 = sym.imp.close;
    0x00002ae8 lw a0, -8(s1)             |     a0 = *((s1 - 2));
    0x00002aec addiu s2, s2, -0x14       |     s2 += -0x14;
    0x00002af0 jalr t9                   |     t9 ();
    0x00002af4 lw gp, 0x30(sp)           |     gp = *(arg_30h);
    0x00002af8 ori v0, s0, 0x58          |     v0 = s0 | 0x58;
    0x00002afc addu v0, v0, sp           |     v0 += sp;
    0x00002b00 addu s2, v0, s2           |     s2 = v0 + s2;
    0x00002b04 lw t9, -0x7eb0(gp)        |     t9 = sym.imp.clock_gettime;
    0x00002b08 move a1, s2               |     a1 = s2;
    0x00002b0c addiu a0, zero, 1         |     a0 = 1;
    0x00002b10 jalr t9                   |     t9 ();
    0x00002b14 lw s1, -0x14(s1)          |     s1 = *((s1 - 5));
    0x00002b18 lui s3, 0xf               |     s3 = 0xf0000;
    0x00002b1c lw gp, 0x30(sp)           |     gp = *(arg_30h);
    0x00002b20 lui s4, 0xffff            |     s4 = 0xffff0000;
    0x00002b24 addiu s1, s1, 0x19        |     s1 += 0x19;
    0x00002b28 addiu s3, s3, 0x4240      |     s3 += sym.imp.json_object;
                                         | label_4:
    0x00002b2c lui v0, 1                 |     v0 = 0x10058;
    0x00002b30 ori v0, v0, 0x58          |     
    0x00002b34 addu v0, v0, sp           |     v0 += sp;
    0x00002b38 addu s0, v0, s4           |     s0 = v0 + s4;
    0x00002b3c lw t9, -0x7f98(gp)        |     t9 = sym.imp.sd_bus_process;
                                         |     do {
    0x00002b40 lw a0, -0x1c(s0)          |         a0 = *((s0 - 7));
    0x00002b44 move a1, zero             |         a1 = 0;
    0x00002b48 jalr t9                   |         t9 ();
    0x00002b4c lw gp, 0x30(sp)           |         gp = *(arg_30h);
                                         |         if (v0 < 0) {
    0x00002b50 bltz v0, 0x2b9c           |             goto label_18;
                                         |         }
    0x00002b54 lw t9, -0x7f98(gp)        |         t9 = sym.imp.sd_bus_process;
    0x00002b58 bnez v0, 0x2b40           |         
                                         |     } while (v0 != 0);
    0x00002b5c lw t9, -0x7eb0(gp)        |     t9 = sym.imp.clock_gettime;
    0x00002b60 move a1, s2               |     a1 = s2;
    0x00002b64 addiu a0, zero, 1         |     a0 = 1;
    0x00002b68 jalr t9                   |     t9 ();
    0x00002b6c lw a2, -0x14(s0)          |     a2 = *((s0 - 5));
    0x00002b70 slt v0, a2, s1            |     v0 = (a2 < s1) ? 1 : 0;
    0x00002b74 lw gp, 0x30(sp)           |     gp = *(arg_30h);
                                         |     if (v0 == 0) {
    0x00002b78 beqz v0, 0x2bf0           |         goto label_19;
                                         |     }
    0x00002b7c subu a2, s1, a2           |     __asm ("subu a2, s1, a2");
    0x00002b80 mul a2, a2, s3            |     __asm ("mul a2, a2, s3");
    0x00002b84 lw t9, -0x7fa4(gp)        |     t9 = sym.imp.sd_bus_wait;
    0x00002b88 lw a0, -0x1c(s0)          |     a0 = *((s0 - 7));
    0x00002b8c sra a3, a2, 0x1f          |     a3 = a2 >> 0x1f;
    0x00002b90 jalr t9                   |     t9 ();
    0x00002b94 lw gp, 0x30(sp)           |     gp = *(arg_30h);
                                         |     if (v0 >= 0) {
    0x00002b98 bgez v0, 0x2b2c           |         goto label_4;
                                         |     }
                                         | label_18:
    0x00002b9c lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00002ba0 lw t9, -0x7fd8(gp)        |     t9 = *((gp - 8182));
    0x00002ba4 addiu a1, a1, 0x46fc      |     a1 += str.Failed_to_process_DBus.;
    0x00002ba8 addiu t9, t9, 0x26d0      |     t9 += fcn.000026d0;
    0x00002bac addiu a0, zero, 0x1f4     |     a0 = 0x1f4;
    0x00002bb0 bal 0x26d0                |     fcn_000026d0 ();
                                         | label_13:
    0x00002bb4 lw t9, -0x7ed0(gp)        |     t9 = sym.imp.write;
    0x00002bb8 lw a0, -8(s0)             |     a0 = *((s0 - 2));
    0x00002bbc move a2, s3               |     a2 = s3;
    0x00002bc0 move a1, s4               |     a1 = s4;
    0x00002bc4 jalr t9                   |     t9 ();
    0x00002bc8 lw gp, 0x30(sp)           |     gp = *(arg_30h);
                                         |     if (v0 != s3) {
    0x00002bcc beq v0, s3, 0x2be8        |         
    0x00002bd0 lw a1, -0x7fd8(gp)        |         a1 = *((gp - 8182));
    0x00002bd4 lw t9, -0x7fd8(gp)        |         t9 = *((gp - 8182));
    0x00002bd8 addiu a1, a1, 0x4694      |         a1 += str.Could_not_write_to_upgrade_pipe.;
    0x00002bdc addiu t9, t9, 0x26d0      |         t9 += fcn.000026d0;
    0x00002be0 addiu a0, zero, 0x1f4     |         a0 = 0x1f4;
    0x00002be4 bal 0x26d0                |         fcn_000026d0 ();
                                         |     }
    0x00002be8 subu s2, s2, s3           |     __asm ("subu s2, s2, s3");
    0x00002bec b 0x29cc                  |     goto label_5;
                                         | label_19:
    0x00002bf0 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00002bf4 lw t9, -0x7fd8(gp)        |     t9 = *((gp - 8182));
    0x00002bf8 addiu a1, a1, 0x4714      |     a1 += str.Timeout_waiting_for_upgrade_result.;
    0x00002bfc addiu t9, t9, 0x26d0      |     t9 += fcn.000026d0;
    0x00002c00 addiu a0, zero, 0x1f4     |     a0 = 0x1f4;
    0x00002c04 bal 0x26d0                |     fcn_000026d0 ();
                                         | label_16:
    0x00002c08 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00002c0c lw t9, -0x7fd8(gp)        |     t9 = *((gp - 8182));
    0x00002c10 addiu a1, a1, 0x46dc      |     a1 += str.Unexpected_end_of_input_stream.;
    0x00002c14 addiu t9, t9, 0x26d0      |     t9 += fcn.000026d0;
    0x00002c18 addiu a0, zero, 0x190     |     a0 = 0x190;
    0x00002c1c bal 0x26d0                |     return fcn_000026d0 ();
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/html/axis-cgi/firmwaremanagement.cgi @ 0x3914 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00003914 ()              | void fcn_00003914 () {
    0x00003914 lui gp, 2                 |     
    0x00003918 addiu gp, gp, -0x5904     |     
    0x0000391c addu gp, gp, t9           |     gp += t9;
    0x00003920 lw v0, -0x7f34(gp)        |     v0 = *((gp - 8141));
    0x00003924 addiu sp, sp, -0x60       |     
    0x00003928 lw v0, (v0)               |     v0 = *(v0);
    0x0000392c sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00003930 sw ra, 0x5c(sp)           |     *(var_5ch) = ra;
    0x00003934 sw s3, 0x58(sp)           |     *(var_58h) = s3;
    0x00003938 sw s2, 0x54(sp)           |     *(var_54h) = s2;
    0x0000393c sw s1, 0x50(sp)           |     *(var_50h) = s1;
    0x00003940 sw s0, 0x4c(sp)           |     *(var_4ch) = s0;
    0x00003944 sw v0, 0x44(sp)           |     *(var_44h) = v0;
    0x00003948 lw s2, -0x7fdc(gp)        |     s2 = *((gp - 8183));
                                         |     if (a0 == 0) {
    0x0000394c beqz a0, 0x39a4           |         goto label_0;
                                         |     }
    0x00003950 lw v0, 0x6190(s2)         |     v0 = *((s2 + 6244));
    0x00003954 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
                                         |     if (v0 == 0) {
    0x00003958 bnel v0, zero, 0x3aec     |         goto label_1;
                                         |     }
    0x0000395c lw t9, -0x7f54(gp)        |     t9 = sym.imp.malloc;
    0x00003960 sw a1, 0x24(sp)           |     *(var_24h) = a1;
    0x00003964 move s0, a0               |     s0 = a0;
    0x00003968 move s1, a2               |     s1 = a2;
    0x0000396c jalr t9                   |     t9 ();
    0x00003970 move s3, v0               |     s3 = v0;
    0x00003974 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00003978 lw a1, 0x24(sp)           |     a1 = *(var_24h);
    0x0000397c bnez s1, 0x3b30           |     
                                         |     while (1) {
    0x00003980 lw t9, -0x7fd8(gp)        |         t9 = *((gp - 8182));
    0x00003984 subu a1, s0, s1           |         __asm ("subu a1, s0, s1");
    0x00003988 addiu t9, t9, 0x2410      |         t9 += fcn.00002410;
    0x0000398c addu a0, s3, s1           |         a0 = s3 + s1;
    0x00003990 bal 0x2410                |         fcn_00002410 ();
    0x00003994 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00003998 sw s0, 0x6190(s2)         |         *((s2 + 6244)) = s0;
    0x0000399c lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x000039a0 sw s3, 0x6194(v0)         |         *((v0 + 6245)) = s3;
                                         | label_0:
    0x000039a4 lw t9, -0x7f24(gp)        |         t9 = sym.imp.sd_bus_open_system
    0x000039a8 addiu a0, sp, 0x28        |         a0 = sp + 0x28;
    0x000039ac sw zero, 0x28(sp)         |         *(var_28h) = 0;
    0x000039b0 jalr t9                   |         t9 ();
    0x000039b4 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 >= 0) {
    0x000039b8 bltz v0, 0x3b00           |             
    0x000039bc lw a2, -0x7fd8(gp)        |             a2 = *((gp - 8182));
    0x000039c0 lw v0, -0x7fd8(gp)        |             v0 = *((gp - 8182));
    0x000039c4 lw a3, -0x7fd8(gp)        |             a3 = *((gp - 8182));
    0x000039c8 lw t9, -0x7f80(gp)        |             t9 = sym.imp.sd_bus_message_new_method_call;
    0x000039cc addiu a2, a2, 0x4d40      |             a2 += str.com.axis.CustomFirmwareCertificates1;
    0x000039d0 addiu v0, v0, 0x4d68      |             v0 += str.Install;
    0x000039d4 lw a0, 0x28(sp)           |             a0 = *(var_28h);
    0x000039d8 sw v0, 0x14(sp)           |             *(var_14h) = v0;
    0x000039dc sw a2, 0x10(sp)           |             *(var_10h) = a2;
    0x000039e0 addiu a3, a3, 0x4d18      |             a3 += str._com_axis_CustomFirmwareCertificates1;
    0x000039e4 addiu a1, sp, 0x2c        |             a1 = sp + 0x2c;
    0x000039e8 sw zero, 0x2c(sp)         |             *(var_2ch) = 0;
    0x000039ec jalr t9                   |             t9 ();
    0x000039f0 lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |             if (v0 < 0) {
    0x000039f4 bltz v0, 0x3b18           |                 goto label_2;
                                         |             }
    0x000039f8 lw v0, -0x7fdc(gp)        |             v0 = *((gp - 8183));
    0x000039fc lw t9, -0x7f20(gp)        |             t9 = sym.imp.sd_bus_message_append_array;
    0x00003a00 lw a0, 0x2c(sp)           |             a0 = *(var_2ch);
    0x00003a04 lw a3, 0x6190(v0)         |             a3 = *((v0 + 6244));
    0x00003a08 lw v0, -0x7fdc(gp)        |             v0 = *((gp - 8183));
    0x00003a0c addiu a1, zero, 0x79      |             a1 = 0x79;
    0x00003a10 lw a2, 0x6194(v0)         |             a2 = *((v0 + 6245));
    0x00003a14 jalr t9                   |             t9 ();
    0x00003a18 lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |             if (v0 < 0) {
    0x00003a1c bltz v0, 0x3b18           |                 goto label_2;
                                         |             }
    0x00003a20 addiu v0, sp, 0x30        |             v0 = sp + 0x30;
    0x00003a24 lw t9, -0x7ee4(gp)        |             t9 = sym.imp.sd_bus_call;
    0x00003a28 sw v0, 0x14(sp)           |             *(var_14h) = v0;
    0x00003a2c lw a1, 0x2c(sp)           |             a1 = *(var_2ch);
    0x00003a30 addiu v0, sp, 0x38        |             v0 = sp + 0x38;
    0x00003a34 lw a0, 0x28(sp)           |             a0 = *(var_28h);
    0x00003a38 sw v0, 0x10(sp)           |             *(var_10h) = v0;
    0x00003a3c move a2, zero             |             a2 = 0;
    0x00003a40 move a3, zero             |             a3 = 0;
    0x00003a44 sw zero, 0x38(sp)         |             *(var_38h) = 0;
    0x00003a48 sw zero, 0x3c(sp)         |             *(var_3ch) = 0;
    0x00003a4c sw zero, 0x40(sp)         |             *(var_40h) = 0;
    0x00003a50 sw zero, 0x30(sp)         |             *(var_30h) = 0;
    0x00003a54 jalr t9                   |             t9 ();
    0x00003a58 lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |             if (v0 < 0) {
    0x00003a5c bltz v0, 0x3b48           |                 goto label_3;
                                         |             }
    0x00003a60 lw a1, -0x7fd8(gp)        |             a1 = *((gp - 8182));
    0x00003a64 lw t9, -0x7f3c(gp)        |             t9 = sym.imp.sd_bus_message_read;
    0x00003a68 lw a0, 0x30(sp)           |             a0 = *(var_30h);
    0x00003a6c addiu a2, sp, 0x34        |             a2 = sp + 0x34;
    0x00003a70 addiu a1, a1, 0x51b4      |             a1 += 0x51b4;
    0x00003a74 jalr t9                   |             t9 ();
    0x00003a78 lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |             if (v0 < 0) {
    0x00003a7c bltz v0, 0x3b5c           |                 goto label_4;
                                         |             }
    0x00003a80 lw a1, -0x7fd8(gp)        |             a1 = *((gp - 8182));
    0x00003a84 lw a0, -0x7fd8(gp)        |             a0 = *((gp - 8182));
    0x00003a88 lw a2, 0x34(sp)           |             a2 = *(var_34h);
    0x00003a8c lw t9, -0x7f90(gp)        |             t9 = sym.imp.json_pack;
    0x00003a90 addiu a1, a1, 0x4874      |             a1 += str.name;
    0x00003a94 addiu a0, a0, 0x44f4      |             a0 += str.ss;
    0x00003a98 jalr t9                   |             t9 ();
    0x00003a9c lw gp, 0x18(sp)           |             gp = *(var_18h);
    0x00003aa0 lw a0, 0x2c(sp)           |             a0 = *(var_2ch);
    0x00003aa4 lw t9, -0x7f08(gp)        |             t9 = sym.imp.sd_bus_message_unref;
    0x00003aa8 move s0, v0               |             s0 = v0;
    0x00003aac jalr t9                   |             t9 ();
    0x00003ab0 lw gp, 0x18(sp)           |             gp = *(var_18h);
    0x00003ab4 lw t9, -0x7f08(gp)        |             t9 = sym.imp.sd_bus_message_unref;
    0x00003ab8 lw a0, 0x30(sp)           |             a0 = *(var_30h);
    0x00003abc jalr t9                   |             t9 ();
    0x00003ac0 lw gp, 0x18(sp)           |             gp = *(var_18h);
    0x00003ac4 lw t9, -0x7f38(gp)        |             t9 = sym.imp.sd_bus_unref;
    0x00003ac8 lw a0, 0x28(sp)           |             a0 = *(var_28h);
    0x00003acc jalr t9                   |             t9 ();
    0x00003ad0 lw gp, 0x18(sp)           |             gp = *(var_18h);
    0x00003ad4 move a1, s0               |             a1 = s0;
    0x00003ad8 lw a0, -0x7fd8(gp)        |             a0 = *((gp - 8182));
    0x00003adc lw t9, -0x7fd8(gp)        |             t9 = *((gp - 8182));
    0x00003ae0 addiu t9, t9, 0x2564      |             t9 += fcn.00002564;
    0x00003ae4 addiu a0, a0, 0x4ce8      |             a0 += str.data;
    0x00003ae8 bal 0x2564                |             fcn_00002564 ();
                                         | label_1:
    0x00003aec lw t9, -0x7fd8(gp)        |             t9 = *((gp - 8182));
    0x00003af0 addiu a1, a1, 0x4cf0      |             a1 += str.Only_one_certificate_at_a_time_allowed.;
    0x00003af4 addiu t9, t9, 0x26d0      |             t9 += fcn.000026d0;
    0x00003af8 addiu a0, zero, 0x3e8     |             a0 = 0x3e8;
    0x00003afc bal 0x26d0                |             fcn_000026d0 ();
                                         |         }
    0x00003b00 lw a1, -0x7fd8(gp)        |         a1 = *((gp - 8182));
    0x00003b04 lw t9, -0x7fd8(gp)        |         t9 = *((gp - 8182));
    0x00003b08 addiu a1, a1, 0x4598      |         a1 += str.Failed_to_open_DBus_connection.;
    0x00003b0c addiu t9, t9, 0x26d0      |         t9 += fcn.000026d0;
    0x00003b10 addiu a0, zero, 0x3eb     |         a0 = 0x3eb;
    0x00003b14 bal 0x26d0                |         fcn_000026d0 ();
                                         | label_2:
    0x00003b18 lw a1, -0x7fd8(gp)        |         a1 = *((gp - 8182));
    0x00003b1c lw t9, -0x7fd8(gp)        |         t9 = *((gp - 8182));
    0x00003b20 addiu a1, a1, 0x4da0      |         a1 += str.Failed_to_create_firmware_manager_request.;
    0x00003b24 addiu t9, t9, 0x26d0      |         t9 += fcn.000026d0;
    0x00003b28 addiu a0, zero, 0x3eb     |         a0 = 0x3eb;
    0x00003b2c bal 0x26d0                |         fcn_000026d0 ();
    0x00003b30 lw t9, -0x7f14(gp)        |         t9 = sym.imp.memcpy;
    0x00003b34 move a2, s1               |         a2 = s1;
    0x00003b38 move a0, v0               |         a0 = v0;
    0x00003b3c jalr t9                   |         t9 ();
    0x00003b40 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00003b44 b 0x3980                  |         
                                         |     }
                                         | label_3:
    0x00003b48 lw t9, -0x7fd8(gp)        |     t9 = *((gp - 8182));
    0x00003b4c lw a1, 0x3c(sp)           |     a1 = *(var_3ch);
    0x00003b50 addiu t9, t9, 0x35c8      |     t9 += fcn.000035c8;
    0x00003b54 lw a0, 0x38(sp)           |     a0 = *(var_38h);
    0x00003b58 bal 0x35c8                |     fcn_000035c8 ();
                                         | label_4:
    0x00003b5c lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00003b60 lw t9, -0x7fd8(gp)        |     t9 = *((gp - 8182));
    0x00003b64 addiu a1, a1, 0x4d70      |     a1 += str.Could_not_parse_reply_from_firmware_manager.;
    0x00003b68 addiu t9, t9, 0x26d0      |     t9 += fcn.000026d0;
    0x00003b6c addiu a0, zero, 0x3eb     |     a0 = 0x3eb;
    0x00003b70 bal 0x26d0                |     return fcn_000026d0 ();
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/html/axis-cgi/firmwaremanagement.cgi @ 0x1320 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) main ()                      | int32_t main () {
                                         |     /* [13] -r-x section size 11568 named .text */
    0x00001320 lui gp, 2                 |     
    0x00001324 addiu gp, gp, -0x3310     |     
    0x00001328 addu gp, gp, t9           |     gp += t9;
    0x0000132c lw v0, -0x7f34(gp)        |     v0 = *((gp - 8141));
    0x00001330 addiu sp, sp, -0x98       |     
    0x00001334 lw t9, -0x7eb4(gp)        |     t9 = sym.imp.signal;
    0x00001338 lw v0, (v0)               |     v0 = *(v0);
    0x0000133c addiu a0, zero, 0xd       |     a0 = 0xd;
    0x00001340 sw gp, 0x28(sp)           |     *(var_28h) = gp;
    0x00001344 sw ra, 0x94(sp)           |     *(var_94h) = ra;
    0x00001348 sw s0, 0x70(sp)           |     *(var_70h) = s0;
    0x0000134c sw fp, 0x90(sp)           |     *(var_90h) = fp;
    0x00001350 move s0, a1               |     s0 = a1;
    0x00001354 sw s7, 0x8c(sp)           |     *(var_8ch) = s7;
    0x00001358 addiu a1, zero, 1         |     a1 = 1;
    0x0000135c sw s6, 0x88(sp)           |     *(var_88h) = s6;
    0x00001360 sw s5, 0x84(sp)           |     *(var_84h) = s5;
    0x00001364 sw s4, 0x80(sp)           |     *(var_80h) = s4;
    0x00001368 sw s3, 0x7c(sp)           |     *(var_7ch) = s3;
    0x0000136c sw s2, 0x78(sp)           |     *(var_78h) = s2;
    0x00001370 sw s1, 0x74(sp)           |     *(var_74h) = s1;
    0x00001374 sw v0, 0x6c(sp)           |     *(var_6ch) = v0;
    0x00001378 jalr t9                   |     t9 ();
    0x0000137c nop                       |     
    0x00001380 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00001384 lw s0, (s0)               |     s0 = *(s0);
    0x00001388 addiu a1, zero, 0x2f      |     a1 = 0x2f;
    0x0000138c lw t9, -0x7edc(gp)        |     t9 = sym.imp.strrchr;
    0x00001390 move a0, s0               |     a0 = s0;
    0x00001394 jalr t9                   |     t9 ();
    0x00001398 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 != 0) {
    0x0000139c beqz v0, 0x13a4           |         
    0x000013a0 addiu s0, v0, 1           |         s0 = v0 + 1;
                                         |     }
    0x000013a4 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x000013a8 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x000013ac addiu a1, a1, 0x4fcc      |     a1 += str.custfwcerts.cgi;
    0x000013b0 move a0, s0               |     a0 = s0;
    0x000013b4 jalr t9                   |     t9 ();
    0x000013b8 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x000013bc sltiu v0, v0, 1           |     v0 = (v0 < 1) ? 1 : 0;
    0x000013c0 lw s4, -0x7fdc(gp)        |     s4 = *((gp - 8183));
    0x000013c4 lw a0, -0x7fd8(gp)        |     a0 = *((gp - 8182));
    0x000013c8 lw t9, -0x7ec8(gp)        |     t9 = sym.imp.getenv;
    0x000013cc addiu a0, a0, 0x4fdc      |     a0 += str.REQUEST_METHOD;
    0x000013d0 sb v0, 0x61b4(s4)         |     *((s4 + 25012)) = v0;
    0x000013d4 jalr t9                   |     t9 ();
    0x000013d8 move s3, v0               |     s3 = v0;
    0x000013dc lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 != 0) {
    0x000013e0 beqz v0, 0x141c           |         
    0x000013e4 lw s5, -0x7fd8(gp)        |         s5 = *((gp - 8182));
    0x000013e8 lw t9, -0x7fa0(gp)        |         t9 = sym.imp.strcmp;
    0x000013ec addiu a1, s5, 0x4fec      |         a1 = s5 + str.POST;
    0x000013f0 move a0, v0               |         a0 = v0;
    0x000013f4 jalr t9                   |         t9 ();
    0x000013f8 lw gp, 0x28(sp)           |         gp = *(var_28h);
                                         |         if (v0 == 0) {
    0x000013fc beqz v0, 0x1438           |             goto label_18;
                                         |         }
    0x00001400 lw a1, -0x7fd8(gp)        |         a1 = *((gp - 8182));
    0x00001404 lw t9, -0x7fa0(gp)        |         t9 = sym.imp.strcmp;
    0x00001408 addiu a1, a1, 0x4ff4      |         a1 += 0x4ff4;
    0x0000140c move a0, s3               |         a0 = s3;
    0x00001410 jalr t9                   |         t9 ();
    0x00001414 lw gp, 0x28(sp)           |         gp = *(var_28h);
                                         |         if (v0 == 0) {
    0x00001418 beqz v0, 0x1438           |             goto label_18;
                                         |         }
                                         |     }
    0x0000141c lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001420 lw a0, -0x7fd8(gp)        |     a0 = *((gp - 8182));
    0x00001424 lw t9, -0x7fd8(gp)        |     t9 = *((gp - 8182));
    0x00001428 addiu a1, a1, 0x4ff8      |     a1 += str.Invalid_method__only_GET_and_POST_supported.;
    0x0000142c addiu t9, t9, 0x23ac      |     t9 += fcn.000023ac;
    0x00001430 addiu a0, a0, 0x5028      |     a0 += str.405_Method_Not_Allowed;
    0x00001434 bal 0x23ac                |     fcn_000023ac ();
                                         | label_18:
    0x00001438 lw a0, -0x7fd8(gp)        |     a0 = *((gp - 8182));
    0x0000143c lw t9, -0x7ec8(gp)        |     t9 = sym.imp.getenv;
    0x00001440 addiu a0, a0, 0x5040      |     a0 += str.QUERY_STRING;
    0x00001444 jalr t9                   |     t9 ();
    0x00001448 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x0000144c move fp, v0               |     fp = v0;
    0x00001450 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00001454 sw v0, 0x34(sp)           |     *(var_34h) = v0;
                                         |     if (fp == 0) {
    0x00001458 beqz fp, 0x158c           |         goto label_19;
                                         |     }
    0x0000145c lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00001460 lw s7, -0x7fd8(gp)        |     s7 = *((gp - 8182));
    0x00001464 sw v0, 0x38(sp)           |     *(var_38h) = v0;
    0x00001468 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x0000146c addiu s7, s7, 0x5050      |     s7 += str.method;
    0x00001470 addiu v0, v0, 0x5064      |     v0 += str.apiVersion;
    0x00001474 sw v0, 0x3c(sp)           |     *(var_3ch) = v0;
    0x00001478 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x0000147c addiu v0, v0, 0x2c5c      |     v0 += 0x2c5c;
    0x00001480 sw v0, 0x40(sp)           |     *(var_40h) = v0;
    0x00001484 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00001488 sw v0, 0x44(sp)           |     *(var_44h) = v0;
    0x0000148c b 0x153c                  |     
                                         |     while (s1 != 0) {
    0x00001490 sltu v0, v0, s1           |         v0 = (v0 < s1) ? 1 : 0;
                                         |         if (v0 != 0) {
    0x00001494 beqz v0, 0x1530           |             
                                         |             if (v0 == 0) {
    0x00001498 beql v0, zero, 0x1534     |                 goto label_20;
                                         |             }
    0x0000149c addiu fp, s1, 1           |             fp = s1 + 1;
    0x000014a0 subu v0, s1, fp           |             __asm ("subu v0, s1, fp");
                                         | label_0:
    0x000014a4 lw t9, -0x7f88(gp)        |             t9 = sym.imp.strncmp;
    0x000014a8 subu s6, s0, fp           |             __asm ("subu s6, s0, fp");
    0x000014ac nor s2, zero, s6          |             __asm ("nor s2, zero, s6");
    0x000014b0 addiu a2, zero, 7         |             a2 = 7;
    0x000014b4 move a1, s7               |             a1 = s7;
    0x000014b8 move a0, fp               |             a0 = fp;
    0x000014bc addu s2, s2, v0           |             s2 += v0;
    0x000014c0 jalr t9                   |             t9 ();
    0x000014c4 addiu s0, s0, 1           |             s0++;
    0x000014c8 lw gp, 0x28(sp)           |             gp = *(var_28h);
                                         |             if (v0 == 0) {
    0x000014cc beqz v0, 0x15f8           |                 goto label_21;
                                         |             }
    0x000014d0 lw v0, 0x38(sp)           |             v0 = *(var_38h);
    0x000014d4 lw t9, -0x7f88(gp)        |             t9 = sym.imp.strncmp;
    0x000014d8 addiu a2, zero, 8         |             a2 = 8;
    0x000014dc addiu a1, v0, 0x5058      |             a1 = v0 + str.context;
    0x000014e0 move a0, fp               |             a0 = fp;
    0x000014e4 jalr t9                   |             t9 ();
    0x000014e8 lw gp, 0x28(sp)           |             gp = *(var_28h);
                                         |             if (v0 == 0) {
    0x000014ec beqz v0, 0x1638           |                 goto label_22;
                                         |             }
    0x000014f0 lw t9, -0x7f88(gp)        |             t9 = sym.imp.strncmp;
    0x000014f4 lw a1, 0x3c(sp)           |             a1 = *(var_3ch);
    0x000014f8 addiu a2, zero, 0xb       |             a2 = 0xb;
    0x000014fc move a0, fp               |             a0 = fp;
    0x00001500 jalr t9                   |             t9 ();
    0x00001504 lw gp, 0x28(sp)           |             gp = *(var_28h);
                                         |             if (v0 != 0) {
    0x00001508 bnez v0, 0x1618           |                 goto label_23;
                                         |             }
    0x0000150c lw t9, -0x7f70(gp)        |             t9 = sym.imp.strndup;
    0x00001510 move a1, s2               |             a1 = s2;
    0x00001514 move a0, s0               |             a0 = s0;
    0x00001518 jalr t9                   |             t9 ();
    0x0000151c lw v1, 0x44(sp)           |             v1 = *(var_44h);
    0x00001520 lw gp, 0x28(sp)           |             gp = *(var_28h);
    0x00001524 sw v0, 0x61a8(v1)         |             *((v1 + 6250)) = v0;
                                         | label_1:
    0x00001528 lw t9, -0x7fa0(gp)        |             t9 = sym.imp.strcmp;
                                         |             if (s1 == 0) {
    0x0000152c beqz s1, 0x1590           |                 goto label_24;
                                         |             }
                                         |         }
    0x00001530 addiu fp, s1, 1           |         fp = s1 + 1;
                                         | label_20:
    0x00001534 lw t9, -0x7fa0(gp)        |         t9 = sym.imp.strcmp;
                                         |         if (fp == 0) {
    0x00001538 beqz fp, 0x1590           |             goto label_24;
                                         |         }
    0x0000153c lb v0, (fp)               |         v0 = *(fp);
    0x00001540 lw t9, -0x7ec4(gp)        |         t9 = sym.imp.strchr;
                                         |         if (v0 == 0) {
    0x00001544 beqz v0, 0x158c           |             goto label_19;
                                         |         }
    0x00001548 addiu a1, zero, 0x26      |         a1 = 0x26;
    0x0000154c move a0, fp               |         a0 = fp;
    0x00001550 jalr t9                   |         t9 ();
    0x00001554 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x00001558 addiu a1, zero, 0x3d      |         a1 = 0x3d;
    0x0000155c move a0, fp               |         a0 = fp;
    0x00001560 lw t9, -0x7ec4(gp)        |         t9 = sym.imp.strchr;
    0x00001564 move s1, v0               |         s1 = v0;
    0x00001568 jalr t9                   |         t9 ();
    0x0000156c move s0, v0               |         s0 = v0;
    0x00001570 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x00001574 bnez s1, 0x1490           |         
                                         |     }
    0x00001578 lw t9, -0x7f1c(gp)        |     t9 = sym.imp.strlen;
    0x0000157c move a0, fp               |     a0 = fp;
    0x00001580 jalr t9                   |     t9 ();
    0x00001584 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (s0 != 0) {
    0x00001588 bnez s0, 0x14a4           |         goto label_0;
                                         |     }
                                         | label_19:
    0x0000158c lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
                                         | label_24:
    0x00001590 addiu a1, s5, 0x4fec      |     a1 = s5 + str.POST;
    0x00001594 move a0, s3               |     a0 = s3;
    0x00001598 jalr t9                   |     t9 ();
    0x0000159c lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x000015a0 beqz v0, 0x1658           |     
                                         |     while (1) {
    0x000015a4 lw v0, 0x34(sp)           |         v0 = *(var_34h);
    0x000015a8 lw s0, 0x61b0(v0)         |         s0 = *((v0 + 6252));
    0x000015ac lw a1, -0x7fd8(gp)        |         a1 = *((gp - 8182));
                                         |         if (s0 == 0) {
    0x000015b0 beqz s0, 0x1670           |             goto label_25;
                                         |         }
    0x000015b4 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x000015b8 lw v0, 0x61a8(v0)         |         v0 = *((v0 + 6250));
    0x000015bc addiu v1, zero, 0x31      |         v1 = 0x31;
                                         |         if (v0 == 0) {
    0x000015c0 beqz v0, 0x1820           |             goto label_26;
                                         |         }
    0x000015c4 lb a0, (v0)               |         a0 = *(v0);
                                         |         if (a0 == v1) {
    0x000015c8 beql a0, v1, 0x1684       |             goto label_27;
                                         |         }
    0x000015cc lb v0, 1(v0)              |         v0 = *((v0 + 1));
    0x000015d0 lw a1, -0x7fd8(gp)        |         a1 = *((gp - 8182));
                                         | label_3:
    0x000015d4 lbu a0, 0x61b4(s4)        |         a0 = *((s4 + 25012));
    0x000015d8 addiu a1, a1, 0x50c4      |         a1 += str.Unsupported_API_version.;
    0x000015dc addiu v1, zero, 0x3ea     |         v1 = 0x3ea;
    0x000015e0 addiu v0, zero, 0x1a1     |         v0 = 0x1a1;
                                         | label_2:
    0x000015e4 lw t9, -0x7fd8(gp)        |         t9 = *((gp - 8182));
                                         |         if (a0 == 0) {
    0x000015e8 movn v0, v1, a0           |             v0 = v1;
                                         |         }
    0x000015ec addiu t9, t9, 0x26d0      |         t9 += fcn.000026d0;
    0x000015f0 move a0, v0               |         a0 = v0;
    0x000015f4 bal 0x26d0                |         fcn_000026d0 ();
                                         | label_21:
    0x000015f8 lw t9, -0x7f70(gp)        |         t9 = sym.imp.strndup;
    0x000015fc move a1, s2               |         a1 = s2;
    0x00001600 move a0, s0               |         a0 = s0;
    0x00001604 jalr t9                   |         t9 ();
    0x00001608 lw v1, 0x34(sp)           |         v1 = *(var_34h);
    0x0000160c lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x00001610 sw v0, 0x61b0(v1)         |         *((v1 + 6252)) = v0;
    0x00001614 b 0x1528                  |         goto label_1;
                                         | label_23:
    0x00001618 lw t9, 0x40(sp)           |         t9 = *(var_40h);
    0x0000161c move a3, s2               |         a3 = s2;
    0x00001620 move a2, s0               |         a2 = s0;
    0x00001624 move a1, s6               |         a1 = s6;
    0x00001628 move a0, fp               |         a0 = fp;
    0x0000162c jalr t9                   |         t9 ();
    0x00001630 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x00001634 b 0x1528                  |         goto label_1;
                                         | label_22:
    0x00001638 lw t9, -0x7f70(gp)        |         t9 = sym.imp.strndup;
    0x0000163c move a1, s2               |         a1 = s2;
    0x00001640 move a0, s0               |         a0 = s0;
    0x00001644 jalr t9                   |         t9 ();
    0x00001648 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x0000164c lw v1, -0x7fdc(gp)        |         v1 = *((gp - 8183));
    0x00001650 sw v0, 0x61ac(v1)         |         *((v1 + 6251)) = v0;
    0x00001654 b 0x1528                  |         goto label_1;
    0x00001658 lw t9, -0x7fd8(gp)        |         t9 = *((gp - 8182));
    0x0000165c addiu t9, t9, 0x3b74      |         t9 += fcn.00003b74;
    0x00001660 bal 0x3b74                |         fcn_00003b74 ();
    0x00001664 nop                       |         
    0x00001668 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x0000166c b 0x15a4                  |         
                                         |     }
                                         | label_25:
    0x00001670 lbu a0, 0x61b4(s4)        |     a0 = *((s4 + 25012));
    0x00001674 addiu a1, a1, 0x5070      |     a1 += str.Missing_method_in_request.;
    0x00001678 addiu v1, zero, 0x3e9     |     v1 = 0x3e9;
    0x0000167c addiu v0, zero, 0x195     |     v0 = 0x195;
    0x00001680 b 0x15e4                  |     goto label_2;
                                         | label_27:
    0x00001684 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
                                         |     if (v0 == 0) {
    0x00001688 beqz v0, 0x169c           |         goto label_28;
                                         |     }
    0x0000168c addiu v1, zero, 0x2e      |     v1 = 0x2e;
    0x00001690 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
                                         |     if (v0 != v1) {
    0x00001694 bne v0, v1, 0x15d4        |         goto label_3;
                                         |     }
    0x00001698 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
                                         | label_28:
    0x0000169c lbu v0, 0x61b4(s4)        |     v0 = *((s4 + 25012));
    0x000016a0 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x000016a4 addiu a1, a1, 0x508c      |     a1 += str.getSupportedVersions;
    0x000016a8 move a0, s0               |     a0 = s0;
                                         |     if (v0 == 0) {
    0x000016ac beqz v0, 0x1874           |         goto label_29;
                                         |     }
    0x000016b0 jalr t9                   |     t9 ();
    0x000016b4 nop                       |     
    0x000016b8 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x000016bc beqz v0, 0x19b4           |         goto label_30;
                                         |     }
    0x000016c0 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x000016c4 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x000016c8 addiu a1, a1, 0x50f4      |     a1 += str.getCertificateList;
    0x000016cc move a0, s0               |     a0 = s0;
    0x000016d0 jalr t9                   |     t9 ();
    0x000016d4 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x000016d8 beqz v0, 0x199c           |         goto label_31;
                                         |     }
    0x000016dc lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x000016e0 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x000016e4 addiu a1, a1, 0x487c      |     a1 += str.getCertificateProperties;
    0x000016e8 move a0, s0               |     a0 = s0;
    0x000016ec jalr t9                   |     t9 ();
    0x000016f0 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 != 0) {
    0x000016f4 bnez v0, 0x1a30           |         goto label_32;
                                         |     }
    0x000016f8 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x000016fc lw s0, -0x7fd8(gp)        |     s0 = *((gp - 8182));
    0x00001700 lw s2, 0x6198(v0)         |     s2 = *((v0 + 6246));
    0x00001704 addiu s0, s0, 0x4fbc      |     s0 += str.Show;
                                         | label_8:
    0x00001708 lw s1, -0x7fd8(gp)        |     s1 = *((gp - 8182));
                                         |     if (s2 == 0) {
    0x0000170c beqz s2, 0x1bcc           |         goto label_33;
                                         |     }
    0x00001710 addiu s1, s1, 0x51b4      |     s1 += 0x51b4;
                                         | label_5:
    0x00001714 lw t9, -0x7f24(gp)        |     t9 = sym.imp.sd_bus_open_system
    0x00001718 addiu a0, sp, 0x50        |     a0 = sp + 0x50;
    0x0000171c sw zero, 0x50(sp)         |     *(var_50h) = 0;
    0x00001720 jalr t9                   |     t9 ();
    0x00001724 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 < 0) {
    0x00001728 bltz v0, 0x19e0           |         goto label_34;
                                         |     }
    0x0000172c lbu v0, 0x61b4(s4)        |     v0 = *((s4 + 25012));
    0x00001730 sw zero, 0x60(sp)         |     *(var_60h) = 0;
    0x00001734 sw zero, 0x64(sp)         |     *(var_64h) = 0;
    0x00001738 sw zero, 0x68(sp)         |     *(var_68h) = 0;
    0x0000173c sw zero, 0x54(sp)         |     *(var_54h) = 0;
    0x00001740 lw a0, 0x50(sp)           |     a0 = *(var_50h);
                                         |     if (v0 != 0) {
    0x00001744 bnez v0, 0x1a1c           |         goto label_35;
                                         |     }
    0x00001748 lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
    0x0000174c lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00001750 addiu a3, a3, 0x45d4      |     a3 += str.com.axis.FirmwareManager1;
    0x00001754 addiu a2, a2, 0x45b8      |     a2 += str._com_axis_FirmwareManager1;
                                         | label_7:
    0x00001758 addiu v0, sp, 0x54        |     v0 = sp + 0x54;
    0x0000175c lw t9, -0x7f64(gp)        |     t9 = sym.imp.sd_bus_call_method;
    0x00001760 sw v0, 0x18(sp)           |     *(var_18h) = v0;
    0x00001764 addiu v0, sp, 0x60        |     v0 = sp + 0x60;
    0x00001768 sw s2, 0x20(sp)           |     *(var_20h) = s2;
    0x0000176c sw s1, 0x1c(sp)           |     *(var_1ch) = s1;
    0x00001770 sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00001774 sw s0, 0x10(sp)           |     *(var_10h) = s0;
    0x00001778 move a1, a3               |     a1 = a3;
    0x0000177c jalr t9                   |     t9 ();
    0x00001780 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 < 0) {
    0x00001784 bltz v0, 0x1a7c           |         goto label_36;
                                         |     }
    0x00001788 lw v1, 0x34(sp)           |     v1 = *(var_34h);
    0x0000178c lbu v0, 0x61b4(s4)        |     v0 = *((s4 + 25012));
    0x00001790 lw s0, 0x54(sp)           |     s0 = *(var_54h);
    0x00001794 lw s1, 0x61b0(v1)         |     s1 = *((v1 + 6252));
    0x00001798 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
                                         |     if (v0 != 0) {
    0x0000179c bnez v0, 0x1a90           |         goto label_37;
                                         |     }
    0x000017a0 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x000017a4 move a0, s1               |     a0 = s1;
    0x000017a8 addiu a1, a1, 0x513c      |     a1 += str.commit;
    0x000017ac jalr t9                   |     t9 ();
    0x000017b0 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x000017b4 beqz v0, 0x204c           |         goto label_38;
                                         |     }
    0x000017b8 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x000017bc lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x000017c0 addiu a1, a1, 0x5164      |     a1 += str.status;
    0x000017c4 move a0, s1               |     a0 = s1;
    0x000017c8 jalr t9                   |     t9 ();
    0x000017cc lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x000017d0 beqz v0, 0x1d74           |         goto label_39;
                                         |     }
                                         | label_9:
    0x000017d4 lw t9, -0x7f2c(gp)        |     t9 = sym.imp.json_object;
    0x000017d8 jalr t9                   |     t9 ();
    0x000017dc nop                       |     
    0x000017e0 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x000017e4 move s0, v0               |     s0 = v0;
                                         | label_12:
    0x000017e8 lw t9, -0x7f08(gp)        |     t9 = sym.imp.sd_bus_message_unref;
    0x000017ec lw a0, 0x54(sp)           |     a0 = *(var_54h);
    0x000017f0 jalr t9                   |     t9 ();
    0x000017f4 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x000017f8 lw t9, -0x7f38(gp)        |     t9 = sym.imp.sd_bus_unref;
    0x000017fc lw a0, 0x50(sp)           |     a0 = *(var_50h);
    0x00001800 jalr t9                   |     t9 ();
    0x00001804 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00001808 move a1, s0               |     a1 = s0;
                                         |     do {
                                         | label_6:
    0x0000180c lw a0, -0x7fd8(gp)        |         a0 = *((gp - 8182));
    0x00001810 lw t9, -0x7fd8(gp)        |         t9 = *((gp - 8182));
    0x00001814 addiu t9, t9, 0x2564      |         t9 += fcn.00002564;
    0x00001818 addiu a0, a0, 0x4ce8      |         a0 += str.data;
    0x0000181c bal 0x2564                |         fcn_00002564 ();
                                         | label_26:
    0x00001820 lw a1, -0x7fd8(gp)        |         a1 = *((gp - 8182));
    0x00001824 lw t9, -0x7fa0(gp)        |         t9 = sym.imp.strcmp;
    0x00001828 addiu a1, a1, 0x508c      |         a1 += str.getSupportedVersions;
    0x0000182c move a0, s0               |         a0 = s0;
    0x00001830 jalr t9                   |         t9 ();
    0x00001834 lw gp, 0x28(sp)           |         gp = *(var_28h);
                                         |         if (v0 != 0) {
    0x00001838 bnez v0, 0x1988           |             goto label_40;
                                         |         }
    0x0000183c lbu v0, 0x61b4(s4)        |         v0 = *((s4 + 25012));
    0x00001840 lw a1, -0x7fd8(gp)        |         a1 = *((gp - 8182));
                                         |         if (v0 == 0) {
    0x00001844 bnel v0, zero, 0x19b8     |             goto label_41;
                                         |         }
                                         | label_4:
    0x00001848 lw a1, -0x7fd8(gp)        |         a1 = *((gp - 8182));
    0x0000184c lw a0, -0x7fd8(gp)        |         a0 = *((gp - 8182));
    0x00001850 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x00001854 lw t9, -0x7f90(gp)        |         t9 = sym.imp.json_pack;
    0x00001858 addiu a1, a1, 0x50e0      |         a1 += str.apiVersions;
    0x0000185c addiu a0, a0, 0x50ec      |         a0 += str.s_s_;
    0x00001860 addiu a2, a2, 0x44e4      |         a2 += 0x44e4;
    0x00001864 jalr t9                   |         t9 ();
    0x00001868 move a1, v0               |         a1 = v0;
    0x0000186c lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x00001870 b 0x180c                  |         
                                         |     } while (1);
                                         | label_29:
    0x00001874 jalr t9                   |     t9 ();
    0x00001878 nop                       |     
    0x0000187c lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x00001880 beqz v0, 0x1848           |         goto label_4;
                                         |     }
    0x00001884 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001888 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x0000188c addiu a1, a1, 0x4788      |     a1 += str.upgrade;
    0x00001890 move a0, s0               |     a0 = s0;
    0x00001894 jalr t9                   |     t9 ();
    0x00001898 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x0000189c beqz v0, 0x1a04           |         goto label_42;
                                         |     }
    0x000018a0 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x000018a4 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x000018a8 addiu a1, a1, 0x513c      |     a1 += str.commit;
    0x000018ac move a0, s0               |     a0 = s0;
    0x000018b0 jalr t9                   |     t9 ();
    0x000018b4 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x000018b8 beqz v0, 0x19f8           |         goto label_43;
                                         |     }
    0x000018bc lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x000018c0 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x000018c4 addiu a1, a1, 0x5144      |     a1 += str.rollback;
    0x000018c8 move a0, s0               |     a0 = s0;
    0x000018cc jalr t9                   |     t9 ();
    0x000018d0 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x000018d4 beqz v0, 0x1bc0           |         goto label_44;
                                         |     }
    0x000018d8 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x000018dc lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x000018e0 addiu a1, a1, 0x5150      |     a1 += str.purge;
    0x000018e4 move a0, s0               |     a0 = s0;
    0x000018e8 jalr t9                   |     t9 ();
    0x000018ec lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x000018f0 beqz v0, 0x1c04           |         goto label_45;
                                         |     }
    0x000018f4 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x000018f8 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x000018fc addiu a1, a1, 0x5158      |     a1 += str.stopAuto;
    0x00001900 move a0, s0               |     a0 = s0;
    0x00001904 jalr t9                   |     t9 ();
    0x00001908 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x0000190c beqz v0, 0x2040           |         goto label_46;
                                         |     }
    0x00001910 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001914 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x00001918 addiu a1, a1, 0x5164      |     a1 += str.status;
    0x0000191c move a0, s0               |     a0 = s0;
    0x00001920 jalr t9                   |     t9 ();
    0x00001924 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x00001928 beqz v0, 0x2094           |         goto label_47;
                                         |     }
    0x0000192c lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001930 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x00001934 addiu a1, a1, 0x516c      |     a1 += str.reboot;
    0x00001938 move a0, s0               |     a0 = s0;
    0x0000193c jalr t9                   |     t9 ();
    0x00001940 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x00001944 beqz v0, 0x2130           |         goto label_48;
                                         |     }
    0x00001948 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x0000194c lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x00001950 addiu a1, a1, 0x4778      |     a1 += str.factoryDefault;
    0x00001954 move a0, s0               |     a0 = s0;
    0x00001958 jalr t9                   |     t9 ();
    0x0000195c lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 != 0) {
    0x00001960 bnez v0, 0x213c           |         goto label_49;
                                         |     }
    0x00001964 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00001968 lw s2, 0x61a4(v0)         |     s2 = *((v0 + 6249));
                                         |     if (s2 == 0) {
    0x0000196c beql s2, zero, 0x215c     |         goto label_50;
                                         |     }
    0x00001970 lw s2, -0x7fd8(gp)        |     s2 = *((gp - 8182));
                                         | label_17:
    0x00001974 lw s1, -0x7fd8(gp)        |     s1 = *((gp - 8182));
    0x00001978 lw s0, -0x7fd8(gp)        |     s0 = *((gp - 8182));
    0x0000197c addiu s1, s1, 0x51b4      |     s1 += 0x51b4;
    0x00001980 addiu s0, s0, 0x4f80      |     s0 += str.FactoryDefault;
    0x00001984 b 0x1714                  |     goto label_5;
                                         | label_40:
    0x00001988 lw a0, -0x7fd8(gp)        |     a0 = *((gp - 8182));
    0x0000198c lw t9, -0x7fd8(gp)        |     t9 = *((gp - 8182));
    0x00001990 addiu t9, t9, 0x2c20      |     t9 += fcn.00002c20;
    0x00001994 addiu a0, a0, 0x50a4      |     a0 += str.Missing_apiVersion_in_request.;
    0x00001998 bal 0x2c20                |     fcn_00002c20 ();
                                         | label_31:
    0x0000199c lw s0, -0x7fd8(gp)        |     s0 = *((gp - 8182));
    0x000019a0 addiu s0, s0, 0x4fac      |     s0 += str.List;
                                         |     do {
                                         | label_11:
    0x000019a4 lw s1, -0x7fd8(gp)        |         s1 = *((gp - 8182));
    0x000019a8 move s2, zero             |         s2 = 0;
    0x000019ac addiu s1, s1, 0x4e58      |         s1 += 0x4e58;
    0x000019b0 b 0x1714                  |         goto label_5;
                                         | label_30:
    0x000019b4 lw a1, -0x7fd8(gp)        |         a1 = *((gp - 8182));
                                         | label_41:
    0x000019b8 lw a0, -0x7fd8(gp)        |         a0 = *((gp - 8182));
    0x000019bc lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x000019c0 lw t9, -0x7f90(gp)        |         t9 = sym.imp.json_pack;
    0x000019c4 addiu a1, a1, 0x50e0      |         a1 += str.apiVersions;
    0x000019c8 addiu a0, a0, 0x50ec      |         a0 += str.s_s_;
    0x000019cc addiu a2, a2, 0x44e0      |         a2 += 0x44e0;
    0x000019d0 jalr t9                   |         t9 ();
    0x000019d4 move a1, v0               |         a1 = v0;
    0x000019d8 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x000019dc b 0x180c                  |         goto label_6;
                                         | label_34:
    0x000019e0 lw a1, -0x7fd8(gp)        |         a1 = *((gp - 8182));
    0x000019e4 lbu a0, 0x61b4(s4)        |         a0 = *((s4 + 25012));
    0x000019e8 addiu a1, a1, 0x4598      |         a1 += str.Failed_to_open_DBus_connection.;
    0x000019ec addiu v1, zero, 0x3eb     |         v1 = 0x3eb;
    0x000019f0 addiu v0, zero, 0x1f4     |         v0 = 0x1f4;
    0x000019f4 b 0x15e4                  |         goto label_2;
                                         | label_43:
    0x000019f8 lw s0, -0x7fd8(gp)        |         s0 = *((gp - 8182));
    0x000019fc addiu s0, s0, 0x4634      |         s0 += 0x4634;
    0x00001a00 b 0x19a4                  |         
                                         |     } while (1);
                                         | label_42:
    0x00001a04 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001a08 lw t9, -0x7fd8(gp)        |     t9 = *((gp - 8182));
    0x00001a0c addiu a1, a1, 0x5108      |     a1 += str.Multipart_POST_request_must_be_used_for_upgrade.;
    0x00001a10 addiu t9, t9, 0x26d0      |     t9 += fcn.000026d0;
    0x00001a14 addiu a0, zero, 0x195     |     a0 = 0x195;
    0x00001a18 bal 0x26d0                |     fcn_000026d0 ();
                                         | label_35:
    0x00001a1c lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
    0x00001a20 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00001a24 addiu a3, a3, 0x4d40      |     a3 += str.com.axis.CustomFirmwareCertificates1;
    0x00001a28 addiu a2, a2, 0x4d18      |     a2 += str._com_axis_CustomFirmwareCertificates1;
    0x00001a2c b 0x1758                  |     goto label_7;
                                         | label_32:
    0x00001a30 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001a34 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x00001a38 addiu a1, a1, 0x48c0      |     a1 += str.installCertificate;
    0x00001a3c move a0, s0               |     a0 = s0;
    0x00001a40 jalr t9                   |     t9 ();
    0x00001a44 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x00001a48 beqz v0, 0x1c28           |         goto label_51;
                                         |     }
    0x00001a4c lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001a50 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x00001a54 addiu a1, a1, 0x4898      |     a1 += str.removeCertificate;
    0x00001a58 move a0, s0               |     a0 = s0;
    0x00001a5c jalr t9                   |     t9 ();
    0x00001a60 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 != 0) {
    0x00001a64 bnez v0, 0x1c10           |         goto label_52;
                                         |     }
    0x00001a68 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00001a6c lw s0, -0x7fd8(gp)        |     s0 = *((gp - 8182));
    0x00001a70 lw s2, 0x6198(v0)         |     s2 = *((v0 + 6246));
    0x00001a74 addiu s0, s0, 0x4fc4      |     s0 += str.Remove;
    0x00001a78 b 0x1708                  |     goto label_8;
                                         | label_36:
    0x00001a7c lw t9, -0x7fd8(gp)        |     t9 = *((gp - 8182));
    0x00001a80 lw a1, 0x64(sp)           |     a1 = *(var_64h);
    0x00001a84 addiu t9, t9, 0x35c8      |     t9 += fcn.000035c8;
    0x00001a88 lw a0, 0x60(sp)           |     a0 = *(var_60h);
    0x00001a8c bal 0x35c8                |     fcn_000035c8 ();
                                         | label_37:
    0x00001a90 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001a94 move a0, s1               |     a0 = s1;
    0x00001a98 addiu a1, a1, 0x50f4      |     a1 += str.getCertificateList;
    0x00001a9c jalr t9                   |     t9 ();
    0x00001aa0 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x00001aa4 beqz v0, 0x1c40           |         goto label_53;
                                         |     }
    0x00001aa8 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001aac lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x00001ab0 addiu a1, a1, 0x487c      |     a1 += str.getCertificateProperties;
    0x00001ab4 move a0, s1               |     a0 = s1;
    0x00001ab8 jalr t9                   |     t9 ();
    0x00001abc lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 != 0) {
    0x00001ac0 bnez v0, 0x17d4           |         goto label_9;
                                         |     }
    0x00001ac4 lw s2, -0x7fd8(gp)        |     s2 = *((gp - 8182));
    0x00001ac8 lw t9, -0x7f5c(gp)        |     t9 = sym.imp.sd_bus_message_enter_container;
    0x00001acc addiu a2, s2, 0x44f4      |     a2 = s2 + str.ss;
    0x00001ad0 addiu a1, zero, 0x61      |     a1 = 0x61;
    0x00001ad4 move a0, s0               |     a0 = s0;
    0x00001ad8 jalr t9                   |     t9 ();
    0x00001adc lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 < 0) {
    0x00001ae0 bltz v0, 0x2144           |         goto label_54;
                                         |     }
    0x00001ae4 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00001ae8 lw s3, -0x7fd8(gp)        |     s3 = *((gp - 8182));
    0x00001aec sw v0, 0x34(sp)           |     *(var_34h) = v0;
    0x00001af0 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00001af4 lw s6, -0x7fd8(gp)        |     s6 = *((gp - 8182));
    0x00001af8 addiu v0, v0, 0x51d4      |     v0 += str.ChipSerialNumber;
    0x00001afc sw zero, 0x3c(sp)         |     *(var_3ch) = 0;
    0x00001b00 sw zero, 0x38(sp)         |     *(var_38h) = 0;
    0x00001b04 move s7, zero             |     s7 = 0;
    0x00001b08 move s5, zero             |     s5 = 0;
    0x00001b0c addiu fp, sp, 0x5c        |     fp = sp + 0x5c;
    0x00001b10 addiu s3, s3, 0x51c0      |     s3 += str.Name;
    0x00001b14 addiu s6, s6, 0x51c8      |     s6 += str.Authority;
    0x00001b18 sw v0, 0x40(sp)           |     *(var_40h) = v0;
                                         |     do {
                                         | label_10:
    0x00001b1c lw t9, -0x7f68(gp)        |         t9 = sym.imp.sd_bus_message_at_end;
    0x00001b20 move a1, zero             |         a1 = 0;
    0x00001b24 move a0, s0               |         a0 = s0;
    0x00001b28 jalr t9                   |         t9 ();
    0x00001b2c lw gp, 0x28(sp)           |         gp = *(var_28h);
                                         |         if (v0 != 0) {
    0x00001b30 bnez v0, 0x1cfc           |             goto label_55;
                                         |         }
    0x00001b34 lw t9, -0x7f3c(gp)        |         t9 = sym.imp.sd_bus_message_read;
    0x00001b38 move a3, fp               |         a3 = fp;
    0x00001b3c addiu a2, sp, 0x58        |         a2 = sp + 0x58;
    0x00001b40 addiu a1, s2, 0x44f4      |         a1 = s2 + str.ss;
    0x00001b44 move a0, s0               |         a0 = s0;
    0x00001b48 jalr t9                   |         t9 ();
    0x00001b4c lw gp, 0x28(sp)           |         gp = *(var_28h);
                                         |         if (v0 < 0) {
    0x00001b50 bltz v0, 0x2144           |             goto label_54;
                                         |         }
    0x00001b54 lw s1, 0x58(sp)           |         s1 = *(var_58h);
    0x00001b58 lw t9, -0x7fa0(gp)        |         t9 = sym.imp.strcmp;
    0x00001b5c move a1, s3               |         a1 = s3;
    0x00001b60 move a0, s1               |         a0 = s1;
    0x00001b64 jalr t9                   |         t9 ();
    0x00001b68 lw gp, 0x28(sp)           |         gp = *(var_28h);
                                         |         if (v0 != 0) {
    0x00001b6c bnez v0, 0x1b78           |             goto label_56;
                                         |         }
    0x00001b70 lw s5, 0x5c(sp)           |         s5 = *(var_5ch);
    0x00001b74 b 0x1b1c                  |         
                                         |     } while (1);
                                         | label_56:
    0x00001b78 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x00001b7c move a1, s6               |     a1 = s6;
    0x00001b80 move a0, s1               |     a0 = s1;
    0x00001b84 jalr t9                   |     t9 ();
    0x00001b88 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x00001b8c bnez v0, 0x1b98           |         
    0x00001b90 lw s7, 0x5c(sp)           |         s7 = *(var_5ch);
    0x00001b94 b 0x1b1c                  |         goto label_10;
                                         |     }
    0x00001b98 lw v0, 0x34(sp)           |     v0 = *(var_34h);
    0x00001b9c lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x00001ba0 addiu a1, v0, 0x51d8      |     a1 = v0 + 0x51d8;
    0x00001ba4 move a0, s1               |     a0 = s1;
    0x00001ba8 jalr t9                   |     t9 ();
    0x00001bac lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x00001bb0 bnez v0, 0x1be0           |         
    0x00001bb4 lw v0, 0x5c(sp)           |         v0 = *(var_5ch);
    0x00001bb8 sw v0, 0x38(sp)           |         *(var_38h) = v0;
    0x00001bbc b 0x1b1c                  |         goto label_10;
                                         | label_44:
    0x00001bc0 lw s0, -0x7fd8(gp)        |         s0 = *((gp - 8182));
    0x00001bc4 addiu s0, s0, 0x4624      |         s0 += 0x4624;
    0x00001bc8 b 0x19a4                  |         goto label_11;
                                         | label_33:
    0x00001bcc lw a0, -0x7fd8(gp)        |         a0 = *((gp - 8182));
    0x00001bd0 lw t9, -0x7fd8(gp)        |         t9 = *((gp - 8182));
    0x00001bd4 addiu t9, t9, 0x2c20      |         t9 += fcn.00002c20;
    0x00001bd8 addiu a0, a0, 0x5190      |         a0 += str.Missing_mandatory_parameter.;
    0x00001bdc bal 0x2c20                |         fcn_00002c20 ();
                                         |     }
    0x00001be0 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x00001be4 lw a1, 0x40(sp)           |     a1 = *(var_40h);
    0x00001be8 move a0, s1               |     a0 = s1;
    0x00001bec jalr t9                   |     t9 ();
    0x00001bf0 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 != 0) {
    0x00001bf4 bnez v0, 0x1b1c           |         goto label_10;
                                         |     }
    0x00001bf8 lw v0, 0x5c(sp)           |     v0 = *(var_5ch);
    0x00001bfc sw v0, 0x3c(sp)           |     *(var_3ch) = v0;
    0x00001c00 b 0x1b1c                  |     goto label_10;
                                         | label_45:
    0x00001c04 lw s0, -0x7fd8(gp)        |     s0 = *((gp - 8182));
    0x00001c08 addiu s0, s0, 0x4f90      |     s0 += str.Purge;
    0x00001c0c b 0x19a4                  |     goto label_11;
                                         | label_52:
    0x00001c10 addiu a0, zero, 0x3e9     |     a0 = 0x3e9;
                                         | label_16:
    0x00001c14 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001c18 lw t9, -0x7fd8(gp)        |     t9 = *((gp - 8182));
    0x00001c1c addiu t9, t9, 0x26d0      |     t9 += fcn.000026d0;
    0x00001c20 addiu a1, a1, 0x5174      |     a1 += str.Unknown_method_in_request.;
    0x00001c24 bal 0x26d0                |     fcn_000026d0 ();
                                         | label_51:
    0x00001c28 lw t9, -0x7fd8(gp)        |     t9 = *((gp - 8182));
    0x00001c2c move a2, zero             |     a2 = 0;
    0x00001c30 move a1, zero             |     a1 = 0;
    0x00001c34 addiu t9, t9, 0x3914      |     t9 += fcn.00003914;
    0x00001c38 move a0, zero             |     a0 = 0;
    0x00001c3c bal 0x3914                |     fcn_00003914 ();
                                         | label_53:
    0x00001c40 lw s1, -0x7fd8(gp)        |     s1 = *((gp - 8182));
    0x00001c44 lw t9, -0x7f5c(gp)        |     t9 = sym.imp.sd_bus_message_enter_container;
    0x00001c48 addiu a2, s1, 0x51b4      |     a2 = s1 + 0x51b4;
    0x00001c4c addiu a1, zero, 0x61      |     a1 = 0x61;
    0x00001c50 move a0, s0               |     a0 = s0;
    0x00001c54 jalr t9                   |     t9 ();
    0x00001c58 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 < 0) {
    0x00001c5c bltz v0, 0x2144           |         goto label_54;
                                         |     }
    0x00001c60 lw t9, -0x7f40(gp)        |     t9 = sym.imp.json_array;
    0x00001c64 addiu s3, sp, 0x5c        |     s3 = sp + 0x5c;
    0x00001c68 jalr t9                   |     t9 ();
    0x00001c6c move s2, v0               |     s2 = v0;
    0x00001c70 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00001c74 addiu s1, s1, 0x51b4      |     s1 += 0x51b4;
    0x00001c78 b 0x1cbc                  |     
                                         |     while (v0 == 0) {
    0x00001c7c lw t9, -0x7f3c(gp)        |         t9 = sym.imp.sd_bus_message_read;
    0x00001c80 move a2, s3               |         a2 = s3;
    0x00001c84 move a1, s1               |         a1 = s1;
    0x00001c88 move a0, s0               |         a0 = s0;
    0x00001c8c jalr t9                   |         t9 ();
    0x00001c90 lw gp, 0x28(sp)           |         gp = *(var_28h);
                                         |         if (v0 < 0) {
    0x00001c94 bltz v0, 0x2144           |             goto label_54;
                                         |         }
    0x00001c98 lw t9, -0x7efc(gp)        |         t9 = sym.imp.json_string;
    0x00001c9c lw a0, 0x5c(sp)           |         a0 = *(var_5ch);
    0x00001ca0 jalr t9                   |         t9 ();
    0x00001ca4 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x00001ca8 move a1, v0               |         a1 = v0;
    0x00001cac lw t9, -0x7ee0(gp)        |         t9 = sym.imp.json_array_append_new;
    0x00001cb0 move a0, s2               |         a0 = s2;
    0x00001cb4 jalr t9                   |         t9 ();
    0x00001cb8 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x00001cbc lw t9, -0x7f68(gp)        |         t9 = sym.imp.sd_bus_message_at_end;
    0x00001cc0 move a1, zero             |         a1 = 0;
    0x00001cc4 move a0, s0               |         a0 = s0;
    0x00001cc8 jalr t9                   |         t9 ();
    0x00001ccc lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x00001cd0 beqz v0, 0x1c7c           |         
                                         |     }
    0x00001cd4 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001cd8 lw a0, -0x7fd8(gp)        |     a0 = *((gp - 8182));
    0x00001cdc lw t9, -0x7f90(gp)        |     t9 = sym.imp.json_pack;
    0x00001ce0 move a2, s2               |     a2 = s2;
    0x00001ce4 addiu a1, a1, 0x51b0      |     a1 += str.items;
    0x00001ce8 addiu a0, a0, 0x51b8      |     a0 += str.so;
    0x00001cec jalr t9                   |     t9 ();
    0x00001cf0 move s0, v0               |     s0 = v0;
    0x00001cf4 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00001cf8 b 0x17e8                  |     goto label_12;
                                         | label_55:
    0x00001cfc lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
                                         |     if (s5 == 0) {
    0x00001d00 beqz s5, 0x2148           |         goto label_57;
                                         |     }
    0x00001d04 lbu a0, 0x61b4(s4)        |     a0 = *((s4 + 25012));
                                         |     if (s7 == 0) {
    0x00001d08 beqz s7, 0x214c           |         goto label_58;
                                         |     }
    0x00001d0c lw v1, 0x38(sp)           |     v1 = *(var_38h);
    0x00001d10 addiu a1, a1, 0x4d70      |     a1 += str.Could_not_parse_reply_from_firmware_manager.;
                                         |     if (v1 == 0) {
    0x00001d14 beqz v1, 0x2150           |         goto label_59;
                                         |     }
    0x00001d18 lw v0, 0x3c(sp)           |     v0 = *(var_3ch);
    0x00001d1c lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
                                         |     if (v0 == 0) {
    0x00001d20 beqz v0, 0x2144           |         goto label_54;
                                         |     }
    0x00001d24 sw v0, 0x20(sp)           |     *(var_20h) = v0;
    0x00001d28 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00001d2c addiu v0, v0, 0x5200      |     v0 += str.chipSerialNumber;
    0x00001d30 sw v0, 0x1c(sp)           |     *(var_1ch) = v0;
    0x00001d34 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00001d38 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001d3c lw a0, -0x7fd8(gp)        |     a0 = *((gp - 8182));
    0x00001d40 lw t9, -0x7f90(gp)        |     t9 = sym.imp.json_pack;
    0x00001d44 addiu v0, v0, 0x5214      |     v0 += str.serialNumber;
    0x00001d48 sw v1, 0x18(sp)           |     *(var_18h) = v1;
    0x00001d4c sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00001d50 sw s7, 0x10(sp)           |     *(var_10h) = s7;
    0x00001d54 addiu a3, a3, 0x51e8      |     a3 += str.authority;
    0x00001d58 move a2, s5               |     a2 = s5;
    0x00001d5c addiu a1, a1, 0x4874      |     a1 += str.name;
    0x00001d60 addiu a0, a0, 0x51f4      |     a0 += str.ssssssss;
    0x00001d64 jalr t9                   |     t9 ();
    0x00001d68 move s0, v0               |     s0 = v0;
    0x00001d6c lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00001d70 b 0x17e8                  |     goto label_12;
                                         | label_39:
    0x00001d74 lw s2, -0x7fd8(gp)        |     s2 = *((gp - 8182));
    0x00001d78 lw t9, -0x7f5c(gp)        |     t9 = sym.imp.sd_bus_message_enter_container;
    0x00001d7c addiu a2, s2, 0x44f4      |     a2 = s2 + str.ss;
    0x00001d80 addiu a1, zero, 0x61      |     a1 = 0x61;
    0x00001d84 move a0, s0               |     a0 = s0;
    0x00001d88 jalr t9                   |     t9 ();
    0x00001d8c lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 < 0) {
    0x00001d90 bltz v0, 0x2144           |         goto label_54;
                                         |     }
    0x00001d94 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00001d98 lw s3, -0x7fd8(gp)        |     s3 = *((gp - 8182));
    0x00001d9c addiu v0, v0, 0x5268      |     v0 += str.IsCommitted;
    0x00001da0 lw s6, -0x7fd8(gp)        |     s6 = *((gp - 8182));
    0x00001da4 sw v0, 0x3c(sp)           |     *(var_3ch) = v0;
    0x00001da8 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00001dac lw fp, -0x7fd8(gp)        |     fp = *((gp - 8182));
    0x00001db0 sw zero, 0x40(sp)         |     *(var_40h) = 0;
    0x00001db4 sw zero, 0x48(sp)         |     *(var_48h) = 0;
    0x00001db8 sw zero, 0x44(sp)         |     *(var_44h) = 0;
    0x00001dbc sw zero, 0x38(sp)         |     *(var_38h) = 0;
    0x00001dc0 sw zero, 0x34(sp)         |     *(var_34h) = 0;
    0x00001dc4 move s7, zero             |     s7 = 0;
    0x00001dc8 move s5, zero             |     s5 = 0;
    0x00001dcc addiu s3, s3, 0x5224      |     s3 += str.ActiveFirmwareVersion;
    0x00001dd0 addiu s6, s6, 0x523c      |     s6 += str.ActiveFirmwarePart;
    0x00001dd4 sw v0, 0x4c(sp)           |     *(var_4ch) = v0;
                                         |     do {
                                         | label_13:
    0x00001dd8 lw t9, -0x7f68(gp)        |         t9 = sym.imp.sd_bus_message_at_end;
    0x00001ddc move a1, zero             |         a1 = 0;
    0x00001de0 move a0, s0               |         a0 = s0;
    0x00001de4 jalr t9                   |         t9 ();
    0x00001de8 lw gp, 0x28(sp)           |         gp = *(var_28h);
                                         |         if (v0 != 0) {
    0x00001dec bnez v0, 0x1ee0           |             goto label_60;
                                         |         }
    0x00001df0 lw t9, -0x7f3c(gp)        |         t9 = sym.imp.sd_bus_message_read;
    0x00001df4 addiu a3, sp, 0x5c        |         a3 = sp + 0x5c;
    0x00001df8 addiu a2, sp, 0x58        |         a2 = sp + 0x58;
    0x00001dfc addiu a1, s2, 0x44f4      |         a1 = s2 + str.ss;
    0x00001e00 move a0, s0               |         a0 = s0;
    0x00001e04 jalr t9                   |         t9 ();
    0x00001e08 lw gp, 0x28(sp)           |         gp = *(var_28h);
                                         |         if (v0 < 0) {
    0x00001e0c bltz v0, 0x2144           |             goto label_54;
                                         |         }
    0x00001e10 lw s1, 0x58(sp)           |         s1 = *(var_58h);
    0x00001e14 lw t9, -0x7fa0(gp)        |         t9 = sym.imp.strcmp;
    0x00001e18 move a1, s3               |         a1 = s3;
    0x00001e1c move a0, s1               |         a0 = s1;
    0x00001e20 jalr t9                   |         t9 ();
    0x00001e24 lw gp, 0x28(sp)           |         gp = *(var_28h);
                                         |         if (v0 != 0) {
    0x00001e28 bnez v0, 0x1e34           |             goto label_61;
                                         |         }
    0x00001e2c lw s5, 0x5c(sp)           |         s5 = *(var_5ch);
    0x00001e30 b 0x1dd8                  |         
                                         |     } while (1);
                                         | label_61:
    0x00001e34 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x00001e38 move a1, s6               |     a1 = s6;
    0x00001e3c move a0, s1               |     a0 = s1;
    0x00001e40 jalr t9                   |     t9 ();
    0x00001e44 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x00001e48 bnez v0, 0x1e54           |         
    0x00001e4c lw s7, 0x5c(sp)           |         s7 = *(var_5ch);
    0x00001e50 b 0x1dd8                  |         goto label_13;
                                         |     }
    0x00001e54 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x00001e58 addiu a1, fp, 0x5250      |     a1 = fp + str.InactiveFirmwareVersion;
    0x00001e5c move a0, s1               |     a0 = s1;
    0x00001e60 jalr t9                   |     t9 ();
    0x00001e64 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x00001e68 bnez v0, 0x1e78           |         
    0x00001e6c lw v0, 0x5c(sp)           |         v0 = *(var_5ch);
    0x00001e70 sw v0, 0x34(sp)           |         *(var_34h) = v0;
    0x00001e74 b 0x1dd8                  |         goto label_13;
                                         |     }
    0x00001e78 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x00001e7c lw a1, 0x3c(sp)           |     a1 = *(var_3ch);
    0x00001e80 move a0, s1               |     a0 = s1;
    0x00001e84 jalr t9                   |     t9 ();
    0x00001e88 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x00001e8c bnez v0, 0x1e9c           |         
    0x00001e90 lw v0, 0x5c(sp)           |         v0 = *(var_5ch);
    0x00001e94 sw v0, 0x38(sp)           |         *(var_38h) = v0;
    0x00001e98 b 0x1dd8                  |         goto label_13;
                                         |     }
    0x00001e9c lw v0, 0x4c(sp)           |     v0 = *(var_4ch);
    0x00001ea0 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x00001ea4 addiu a1, v0, 0x5274      |     a1 = v0 + str.TimeToRollback;
    0x00001ea8 move a0, s1               |     a0 = s1;
    0x00001eac jalr t9                   |     t9 ();
    0x00001eb0 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x00001eb4 beqz v0, 0x20c8           |         goto label_62;
                                         |     }
    0x00001eb8 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001ebc lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x00001ec0 addiu a1, a1, 0x5284      |     a1 += str.PendingCommit;
    0x00001ec4 move a0, s1               |     a0 = s1;
    0x00001ec8 jalr t9                   |     t9 ();
    0x00001ecc lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 != 0) {
    0x00001ed0 bnez v0, 0x20a0           |         goto label_63;
                                         |     }
    0x00001ed4 lw v0, 0x5c(sp)           |     v0 = *(var_5ch);
    0x00001ed8 sw v0, 0x48(sp)           |     *(var_48h) = v0;
    0x00001edc b 0x1dd8                  |     goto label_13;
                                         | label_60:
    0x00001ee0 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
                                         |     if (s5 == 0) {
    0x00001ee4 beqz s5, 0x2148           |         goto label_57;
                                         |     }
    0x00001ee8 lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
                                         |     if (s7 == 0) {
    0x00001eec beqz s7, 0x2148           |         goto label_57;
                                         |     }
    0x00001ef0 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001ef4 lw a0, -0x7fd8(gp)        |     a0 = *((gp - 8182));
    0x00001ef8 lw t9, -0x7f90(gp)        |     t9 = sym.imp.json_pack;
    0x00001efc sw s7, 0x10(sp)           |     *(var_10h) = s7;
    0x00001f00 addiu a3, a3, 0x52a4      |     a3 += str.activeFirmwarePart;
    0x00001f04 move a2, s5               |     a2 = s5;
    0x00001f08 addiu a1, a1, 0x52b8      |     a1 += str.activeFirmwareVersion;
    0x00001f0c addiu a0, a0, 0x52d0      |     a0 += str.ssss;
    0x00001f10 jalr t9                   |     t9 ();
    0x00001f14 move s0, v0               |     s0 = v0;
    0x00001f18 lw v0, 0x34(sp)           |     v0 = *(var_34h);
    0x00001f1c lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x00001f20 beqz v0, 0x17e8           |         goto label_12;
                                         |     }
    0x00001f24 lw s1, 0x38(sp)           |     s1 = *(var_38h);
    0x00001f28 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
                                         |     if (s1 == 0) {
    0x00001f2c beqz s1, 0x2144           |         goto label_54;
                                         |     }
    0x00001f30 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001f34 addiu a1, a1, 0x52d8      |     a1 += str.True;
    0x00001f38 move a0, s1               |     a0 = s1;
    0x00001f3c jalr t9                   |     t9 ();
    0x00001f40 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 != 0) {
    0x00001f44 beqz v0, 0x1f64           |         
    0x00001f48 lw a1, -0x7fd8(gp)        |         a1 = *((gp - 8182));
    0x00001f4c lw t9, -0x7fa0(gp)        |         t9 = sym.imp.strcmp;
    0x00001f50 addiu a1, a1, 0x52e0      |         a1 += str.False;
    0x00001f54 move a0, s1               |         a0 = s1;
    0x00001f58 jalr t9                   |         t9 ();
    0x00001f5c lw gp, 0x28(sp)           |         gp = *(var_28h);
                                         |         if (v0 != 0) {
    0x00001f60 bnez v0, 0x2144           |             goto label_54;
                                         |         }
                                         |     }
    0x00001f64 lw t9, -0x7efc(gp)        |     t9 = sym.imp.json_string;
    0x00001f68 lw a0, 0x34(sp)           |     a0 = *(var_34h);
    0x00001f6c jalr t9                   |     t9 ();
    0x00001f70 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00001f74 move a2, v0               |     a2 = v0;
    0x00001f78 move a0, s0               |     a0 = s0;
    0x00001f7c lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001f80 lw t9, -0x7ee8(gp)        |     t9 = sym.imp.json_object_set_new_nocheck;
    0x00001f84 addiu a1, a1, 0x52e8      |     a1 += str.inactiveFirmwareVersion;
    0x00001f88 jalr t9                   |     t9 ();
    0x00001f8c lw v0, 0x38(sp)           |     v0 = *(var_38h);
    0x00001f90 lb v1, (v0)               |     v1 = *(v0);
    0x00001f94 addiu v0, zero, 0x46      |     v0 = 0x46;
    0x00001f98 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v1 == v0) {
    0x00001f9c beq v1, v0, 0x20e8        |         goto label_64;
                                         |     }
    0x00001fa0 lw t9, -0x7f58(gp)        |     t9 = sym.imp.json_true;
    0x00001fa4 jalr t9                   |     t9 ();
    0x00001fa8 nop                       |     
    0x00001fac lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         | label_14:
    0x00001fb0 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001fb4 lw t9, -0x7ee8(gp)        |     t9 = sym.imp.json_object_set_new_nocheck;
    0x00001fb8 move a2, v0               |     a2 = v0;
    0x00001fbc addiu a1, a1, 0x5300      |     a1 += str.isCommitted;
    0x00001fc0 move a0, s0               |     a0 = s0;
    0x00001fc4 jalr t9                   |     t9 ();
    0x00001fc8 lw v0, 0x40(sp)           |     v0 = *(var_40h);
    0x00001fcc lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 != 0) {
    0x00001fd0 bnez v0, 0x20fc           |         goto label_65;
                                         |     }
                                         | label_15:
    0x00001fd4 lw a0, 0x48(sp)           |     a0 = *(var_48h);
    0x00001fd8 lw t9, -0x7efc(gp)        |     t9 = sym.imp.json_string;
                                         |     if (a0 != 0) {
    0x00001fdc beqz a0, 0x2008           |         
    0x00001fe0 jalr t9                   |         t9 ();
    0x00001fe4 nop                       |         
    0x00001fe8 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x00001fec move a2, v0               |         a2 = v0;
    0x00001ff0 move a0, s0               |         a0 = s0;
    0x00001ff4 lw a1, -0x7fd8(gp)        |         a1 = *((gp - 8182));
    0x00001ff8 lw t9, -0x7ee8(gp)        |         t9 = sym.imp.json_object_set_new_nocheck;
    0x00001ffc addiu a1, a1, 0x531c      |         a1 += str.pendingCommit;
    0x00002000 jalr t9                   |         t9 ();
    0x00002004 lw gp, 0x28(sp)           |         gp = *(var_28h);
                                         |     }
    0x00002008 lw a0, 0x44(sp)           |     a0 = *(var_44h);
    0x0000200c lw t9, -0x7efc(gp)        |     t9 = sym.imp.json_string;
                                         |     if (a0 == 0) {
    0x00002010 beqz a0, 0x17e8           |         goto label_12;
                                         |     }
    0x00002014 jalr t9                   |     t9 ();
    0x00002018 nop                       |     
    0x0000201c lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00002020 move a2, v0               |     a2 = v0;
    0x00002024 move a0, s0               |     a0 = s0;
    0x00002028 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x0000202c lw t9, -0x7ee8(gp)        |     t9 = sym.imp.json_object_set_new_nocheck;
    0x00002030 addiu a1, a1, 0x532c      |     a1 += str.lastUpgradeAt;
    0x00002034 jalr t9                   |     t9 ();
    0x00002038 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x0000203c b 0x17e8                  |     goto label_12;
                                         | label_46:
    0x00002040 lw s0, -0x7fd8(gp)        |     s0 = *((gp - 8182));
    0x00002044 addiu s0, s0, 0x4f98      |     s0 += str.StopAuto;
    0x00002048 b 0x19a4                  |     goto label_11;
                                         | label_38:
    0x0000204c lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00002050 lw t9, -0x7f3c(gp)        |     t9 = sym.imp.sd_bus_message_read;
    0x00002054 addiu a2, sp, 0x5c        |     a2 = sp + 0x5c;
    0x00002058 addiu a1, a1, 0x51b4      |     a1 += 0x51b4;
    0x0000205c move a0, s0               |     a0 = s0;
    0x00002060 jalr t9                   |     t9 ();
    0x00002064 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 < 0) {
    0x00002068 bltz v0, 0x2144           |         goto label_54;
                                         |     }
    0x0000206c lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00002070 lw a0, -0x7fd8(gp)        |     a0 = *((gp - 8182));
    0x00002074 lw t9, -0x7f90(gp)        |     t9 = sym.imp.json_pack;
    0x00002078 lw a2, 0x5c(sp)           |     a2 = *(var_5ch);
    0x0000207c addiu a1, a1, 0x4cd8      |     a1 += str.firmwareVersion;
    0x00002080 addiu a0, a0, 0x44f4      |     a0 += str.ss;
    0x00002084 jalr t9                   |     t9 ();
    0x00002088 move s0, v0               |     s0 = v0;
    0x0000208c lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00002090 b 0x17e8                  |     goto label_12;
                                         | label_47:
    0x00002094 lw s0, -0x7fd8(gp)        |     s0 = *((gp - 8182));
    0x00002098 addiu s0, s0, 0x4fa4      |     s0 += str.Status;
    0x0000209c b 0x19a4                  |     goto label_11;
                                         | label_63:
    0x000020a0 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x000020a4 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.strcmp;
    0x000020a8 addiu a1, a1, 0x5294      |     a1 += str.LastUpgradeAt;
    0x000020ac move a0, s1               |     a0 = s1;
    0x000020b0 jalr t9                   |     t9 ();
    0x000020b4 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 != 0) {
    0x000020b8 bnez v0, 0x1dd8           |         goto label_13;
                                         |     }
    0x000020bc lw v0, 0x5c(sp)           |     v0 = *(var_5ch);
    0x000020c0 sw v0, 0x44(sp)           |     *(var_44h) = v0;
    0x000020c4 b 0x1dd8                  |     goto label_13;
                                         | label_62:
    0x000020c8 lw t9, -0x7ef4(gp)        |     t9 = sym.imp.strtol;
    0x000020cc lw a0, 0x5c(sp)           |     a0 = *(var_5ch);
    0x000020d0 addiu a2, zero, 0xa       |     a2 = 0xa;
    0x000020d4 move a1, zero             |     a1 = 0;
    0x000020d8 jalr t9                   |     t9 ();
    0x000020dc sw v0, 0x40(sp)           |     *(var_40h) = v0;
    0x000020e0 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x000020e4 b 0x1dd8                  |     goto label_13;
                                         | label_64:
    0x000020e8 lw t9, -0x7f48(gp)        |     t9 = sym.imp.json_false;
    0x000020ec jalr t9                   |     t9 ();
    0x000020f0 nop                       |     
    0x000020f4 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x000020f8 b 0x1fb0                  |     goto label_14;
                                         | label_65:
    0x000020fc lw t9, -0x7ebc(gp)        |     t9 = sym.imp.json_integer;
    0x00002100 move a0, v0               |     a0 = v0;
    0x00002104 move a1, zero             |     a1 = 0;
    0x00002108 jalr t9                   |     t9 ();
    0x0000210c lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00002110 move a2, v0               |     a2 = v0;
    0x00002114 move a0, s0               |     a0 = s0;
    0x00002118 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x0000211c lw t9, -0x7ee8(gp)        |     t9 = sym.imp.json_object_set_new_nocheck;
    0x00002120 addiu a1, a1, 0x530c      |     a1 += str.timeToRollback;
    0x00002124 jalr t9                   |     t9 ();
    0x00002128 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x0000212c b 0x1fd4                  |     goto label_15;
                                         | label_48:
    0x00002130 lw s0, -0x7fd8(gp)        |     s0 = *((gp - 8182));
    0x00002134 addiu s0, s0, 0x4fb4      |     s0 += str.Reboot;
    0x00002138 b 0x19a4                  |     goto label_11;
                                         | label_49:
    0x0000213c addiu a0, zero, 0x195     |     a0 = 0x195;
    0x00002140 b 0x1c14                  |     goto label_16;
                                         | label_54:
    0x00002144 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
                                         | label_57:
    0x00002148 lbu a0, 0x61b4(s4)        |     a0 = *((s4 + 25012));
                                         | label_58:
    0x0000214c addiu a1, a1, 0x4d70      |     a1 += str.Could_not_parse_reply_from_firmware_manager.;
                                         | label_59:
    0x00002150 addiu v1, zero, 0x3eb     |     v1 = 0x3eb;
    0x00002154 addiu v0, zero, 0x1f4     |     v0 = 0x1f4;
    0x00002158 b 0x15e4                  |     goto label_2;
                                         | label_50:
    0x0000215c addiu s2, s2, 0x47b0      |     s2 += str.Soft;
    0x00002160 b 0x1974                  |     goto label_17;
                                         | }

[*] Function system used 4 times firmwaremanagement.cgi