[*] Binary protection state of firmwareupgrade.cgi
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function system tear down of firmwareupgrade.cgi
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/html/axis-cgi/firmwareupgrade.cgi @ 0xb80 */
| #include <stdint.h>
|
; (fcn) main () | int32_t main () {
| /* [13] -r-x section size 2480 named .text */
0x00000b80 lui gp, 2 |
0x00000b84 addiu gp, gp, -0x6b70 |
0x00000b88 addu gp, gp, t9 | gp += t9;
0x00000b8c lw v0, -0x7f58(gp) | v0 = *((gp - 8150));
0x00000b90 addiu sp, sp, -0x1088 |
0x00000b94 lw t9, -0x7f5c(gp) | t9 = sym.imp.signal;
0x00000b98 lw v0, (v0) | v0 = *(v0);
0x00000b9c addiu a1, zero, 1 | a1 = 1;
0x00000ba0 sw gp, 0x30(sp) | *(var_30h) = gp;
0x00000ba4 sw ra, 0x1084(sp) | *(var_1084h) = ra;
0x00000ba8 addiu a0, zero, 0xd | a0 = 0xd;
0x00000bac sw s6, 0x1080(sp) | *(var_1080h) = s6;
0x00000bb0 sw s5, 0x107c(sp) | *(var_107ch) = s5;
0x00000bb4 sw s4, 0x1078(sp) | *(var_1078h) = s4;
0x00000bb8 sw s3, 0x1074(sp) | *(var_1074h) = s3;
0x00000bbc sw s2, 0x1070(sp) | *(var_1070h) = s2;
0x00000bc0 sw s1, 0x106c(sp) | *(var_106ch) = s1;
0x00000bc4 sw s0, 0x1068(sp) | *(var_1068h) = s0;
0x00000bc8 sw v0, 0x1064(sp) | *(var_1064h) = v0;
0x00000bcc jalr t9 | t9 ();
0x00000bd0 nop |
0x00000bd4 lw gp, 0x30(sp) | gp = *(var_30h);
0x00000bd8 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00000bdc lw t9, -0x7f68(gp) | t9 = sym.imp.getenv;
0x00000be0 addiu a0, a0, 0x177c | a0 += str.REQUEST_METHOD;
0x00000be4 jalr t9 | t9 ();
0x00000be8 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00000bec beqz v0, 0xc0c |
0x00000bf0 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00000bf4 lw t9, -0x7f40(gp) | t9 = sym.imp.strcmp;
0x00000bf8 addiu a1, a1, 0x178c | a1 += str.POST;
0x00000bfc move a0, v0 | a0 = v0;
0x00000c00 jalr t9 | t9 ();
0x00000c04 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00000c08 beqz v0, 0xc30 | goto label_6;
| }
| }
0x00000c0c lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00000c10 lw t9, -0x7f6c(gp) | t9 = sym.imp.puts;
0x00000c14 addiu a0, a0, 0x1794 | a0 += str.Status:_405_Method_Not_Allowed_r_nContent_Type:_text_plain_r_n_r_nInvalid_method__only_POST_supported._r;
| label_2:
0x00000c18 jalr t9 | t9 ();
0x00000c1c nop |
0x00000c20 lw gp, 0x30(sp) | gp = *(var_30h);
0x00000c24 lw t9, -0x7f7c(gp) | t9 = sym.imp.exit;
0x00000c28 addiu a0, zero, 1 | a0 = 1;
0x00000c2c jalr t9 | t9 ();
| label_6:
0x00000c30 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00000c34 lw t9, -0x7f68(gp) | t9 = sym.imp.getenv;
0x00000c38 addiu a0, a0, 0x17f8 | a0 += str.QUERY_STRING;
0x00000c3c jalr t9 | t9 ();
0x00000c40 move s1, v0 | s1 = v0;
0x00000c44 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00000c48 beqz v0, 0xdf4 | goto label_7;
| }
0x00000c4c lb v0, (v0) | v0 = *(v0);
0x00000c50 move s0, zero | s0 = 0;
| if (v0 == 0) {
0x00000c54 beqz v0, 0xd18 | goto label_8;
| }
0x00000c58 lw s4, -0x7fdc(gp) | s4 = *((gp - 8183));
0x00000c5c lw s5, -0x7fdc(gp) | s5 = *((gp - 8183));
0x00000c60 addiu s3, sp, 0x60 | s3 = sp + 0x60;
0x00000c64 addiu s4, s4, 0x1858 | s4 += str.typenormal;
0x00000c68 addiu s5, s5, 0x1864 | s5 += str.typefactorydefault;
0x00000c6c b 0xca8 |
| while (v0 != 0) {
0x00000c70 lw t9, -0x7f40(gp) | t9 = sym.imp.strcmp;
0x00000c74 move a1, s5 | a1 = s5;
0x00000c78 move a0, s3 | a0 = s3;
0x00000c7c jalr t9 | t9 ();
0x00000c80 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00000c84 bnez v0, 0xd68 | goto label_9;
| }
0x00000c88 addiu s0, zero, 1 | s0 = 1;
| if (s2 == 0) {
0x00000c8c beqz s2, 0xd18 | goto label_8;
| }
| label_0:
0x00000c90 addiu s1, s2, 1 | s1 = s2 + 1;
0x00000c94 lw t9, -0x7f9c(gp) | t9 = sym.imp.pipe;
| if (s1 == 0) {
0x00000c98 beqz s1, 0xd1c | goto label_10;
| }
0x00000c9c lb v0, 1(s2) | v0 = *((s2 + 1));
| if (v0 == 0) {
0x00000ca0 beqz v0, 0xd1c | goto label_10;
| }
0x00000ca4 nop |
0x00000ca8 lw t9, -0x7f84(gp) | t9 = sym.imp.strchr;
0x00000cac addiu a1, zero, 0x26 | a1 = 0x26;
0x00000cb0 move a0, s1 | a0 = s1;
0x00000cb4 jalr t9 | t9 ();
0x00000cb8 move s2, v0 | s2 = v0;
0x00000cbc lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00000cc0 beqz v0, 0xd50 | goto label_11;
| }
0x00000cc4 subu s0, v0, s1 | __asm ("subu s0, v0, s1");
| label_1:
0x00000cc8 sltiu v0, s0, 0x40 | v0 = (s0 < 0x40) ? 1 : 0;
0x00000ccc lw t9, -0x7f70(gp) | t9 = sym.imp.__memcpy_chk;
| if (v0 == 0) {
0x00000cd0 beqz v0, 0xd68 | goto label_9;
| }
0x00000cd4 move a2, s0 | a2 = s0;
0x00000cd8 addiu a3, zero, 0x40 | a3 = 0x40;
0x00000cdc move a1, s1 | a1 = s1;
0x00000ce0 move a0, s3 | a0 = s3;
0x00000ce4 jalr t9 | t9 ();
0x00000ce8 lw gp, 0x30(sp) | gp = *(var_30h);
0x00000cec addiu v0, sp, 0x1068 | v0 = sp + 0x1068;
0x00000cf0 addu s0, v0, s0 | s0 = v0 + s0;
0x00000cf4 lw t9, -0x7f40(gp) | t9 = sym.imp.strcmp;
0x00000cf8 move a1, s4 | a1 = s4;
0x00000cfc move a0, s1 | a0 = s1;
0x00000d00 sb zero, -0x1008(s0) | *((s0 - 4104)) = 0;
0x00000d04 jalr t9 | t9 ();
0x00000d08 lw gp, 0x30(sp) | gp = *(var_30h);
0x00000d0c bnez v0, 0xc70 |
| }
0x00000d10 move s0, zero | s0 = 0;
| if (s2 != 0) {
0x00000d14 bnez s2, 0xc90 | goto label_0;
| }
| do {
| label_8:
0x00000d18 lw t9, -0x7f9c(gp) | t9 = sym.imp.pipe;
| label_10:
0x00000d1c addiu a0, sp, 0x50 | a0 = sp + 0x50;
0x00000d20 jalr t9 | t9 ();
0x00000d24 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 >= 0) {
0x00000d28 bltz v0, 0xd40 |
0x00000d2c lw t9, -0x7f9c(gp) | t9 = sym.imp.pipe;
0x00000d30 addiu a0, sp, 0x58 | a0 = sp + 0x58;
0x00000d34 jalr t9 | t9 ();
0x00000d38 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 >= 0) {
0x00000d3c bgez v0, 0xd90 | goto label_12;
| }
| }
0x00000d40 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
| label_5:
0x00000d44 addiu t9, t9, 0x1230 | t9 += fcn.00001230;
0x00000d48 move a0, zero | a0 = 0;
0x00000d4c bal 0x1230 | fcn_00001230 ();
| label_11:
0x00000d50 lw t9, -0x7f88(gp) | t9 = sym.imp.strlen;
0x00000d54 move a0, s1 | a0 = s1;
0x00000d58 jalr t9 | t9 ();
0x00000d5c move s0, v0 | s0 = v0;
0x00000d60 lw gp, 0x30(sp) | gp = *(var_30h);
0x00000d64 b 0xcc8 | goto label_1;
| label_9:
0x00000d68 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00000d6c lw t9, -0x7fa4(gp) | t9 = sym.imp.__printf_chk;
0x00000d70 addiu a0, zero, 1 | a0 = 1;
0x00000d74 move a2, s3 | a2 = s3;
0x00000d78 addiu a1, a1, 0x1808 | a1 += str.Status:_400_Bad_Request_r_nContent_Type:_text_plain_r_n_r_nInvalid_parameter:__s_r_n;
0x00000d7c jalr t9 | t9 ();
0x00000d80 lw gp, 0x30(sp) | gp = *(var_30h);
0x00000d84 lw t9, -0x7f7c(gp) | t9 = sym.imp.exit;
0x00000d88 addiu a0, zero, 1 | a0 = 1;
0x00000d8c jalr t9 | t9 ();
| label_12:
0x00000d90 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00000d94 lw t9, -0x7f68(gp) | t9 = sym.imp.getenv;
0x00000d98 addiu a0, a0, 0x1878 | a0 += str.CONTENT_LENGTH;
0x00000d9c jalr t9 | t9 ();
0x00000da0 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00000da4 beqz v0, 0xdfc | goto label_13;
| }
0x00000da8 lw t9, -0x7f80(gp) | t9 = sym.imp.strtoul;
0x00000dac move a2, zero | a2 = 0;
0x00000db0 move a1, zero | a1 = 0;
0x00000db4 move a0, v0 | a0 = v0;
0x00000db8 jalr t9 | t9 ();
0x00000dbc lw gp, 0x30(sp) | gp = *(var_30h);
0x00000dc0 lw t9, -0x7f94(gp) | t9 = sym.imp.__errno_location;
0x00000dc4 move s1, v0 | s1 = v0;
0x00000dc8 jalr t9 | t9 ();
0x00000dcc move s2, v0 | s2 = v0;
0x00000dd0 lw v0, (v0) | v0 = *(v0);
0x00000dd4 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00000dd8 bnez v0, 0xde4 |
0x00000ddc lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
| if (s1 == 0) {
0x00000de0 bnel s1, zero, 0xe0c | goto label_14;
| }
| }
0x00000de4 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00000de8 lw t9, -0x7f6c(gp) | t9 = sym.imp.puts;
0x00000dec addiu a0, a0, 0x18d8 | a0 += str.Status:_400_Bad_Request_r_nContent_Type:_text_plain_r_n_r_nInvalid_Content_Length._r;
0x00000df0 b 0xc18 | goto label_2;
| label_7:
0x00000df4 move s0, zero | s0 = 0;
0x00000df8 b 0xd18 |
| } while (1);
| label_13:
0x00000dfc lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00000e00 lw t9, -0x7f6c(gp) | t9 = sym.imp.puts;
0x00000e04 addiu a0, a0, 0x1888 | a0 += str.Status:_400_Bad_Request_r_nContent_Type:_text_plain_r_n_r_nMissing_Content_Length._r;
0x00000e08 b 0xc18 | goto label_2;
| label_14:
0x00000e0c lw t9, -0x7f68(gp) | t9 = sym.imp.getenv;
0x00000e10 addiu a0, a0, 0x1928 | a0 += str.CONTENT_TYPE;
0x00000e14 jalr t9 | t9 ();
0x00000e18 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00000e1c beqz v0, 0x1034 | goto label_15;
| }
0x00000e20 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00000e24 lw t9, -0x7fb0(gp) | t9 = sym.imp.strncmp;
0x00000e28 addiu a2, zero, 0xa | a2 = 0xa;
0x00000e2c addiu a1, a1, 0x1938 | a1 += str.multipart_;
0x00000e30 move a0, v0 | a0 = v0;
0x00000e34 jalr t9 | t9 ();
0x00000e38 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00000e3c bnez v0, 0x1034 | goto label_15;
| }
0x00000e40 sltiu s5, s1, 0x1001 | s5 = (s1 < 0x1001) ? 1 : 0;
0x00000e44 addiu v0, zero, 0x1000 | v0 = 0x1000;
| if (s5 == 0) {
0x00000e48 movn v0, s1, s5 | v0 = s1;
| }
0x00000e4c move s5, v0 | s5 = v0;
0x00000e50 move s4, zero | s4 = 0;
0x00000e54 addiu s3, sp, 0x60 | s3 = sp + 0x60;
0x00000e58 addiu s6, zero, 4 | s6 = 4;
0x00000e5c lw t9, -0x7f48(gp) | t9 = sym.imp.read;
| do {
0x00000e60 subu a2, s5, s4 | __asm ("subu a2, s5, s4");
0x00000e64 addu a1, s3, s4 | a1 = s3 + s4;
0x00000e68 move a0, zero | a0 = 0;
0x00000e6c jalr t9 | t9 ();
0x00000e70 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 < 0) {
0x00000e74 bltz v0, 0x103c | goto label_16;
| }
0x00000e78 addu s4, s4, v0 | s4 += v0;
| if (v0 == 0) {
0x00000e7c beqz v0, 0xe8c | goto label_17;
| }
| label_3:
0x00000e80 sltu v0, s4, s5 | v0 = (s4 < s5) ? 1 : 0;
0x00000e84 lw t9, -0x7f48(gp) | t9 = sym.imp.read;
0x00000e88 bnez v0, 0xe60 |
| } while (v0 != 0);
| label_17:
0x00000e8c addiu v0, sp, 0x1068 | v0 = sp + 0x1068;
0x00000e90 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00000e94 addu v0, v0, s4 | v0 += s4;
0x00000e98 lw t9, -0x7f3c(gp) | t9 = sym.imp.strstr;
0x00000e9c addiu a1, a1, 0x1978 | a1 += str._r_n_r_n;
0x00000ea0 move a0, s3 | a0 = s3;
0x00000ea4 sb zero, -0x1008(v0) | *((v0 - 4104)) = 0;
0x00000ea8 jalr t9 | t9 ();
0x00000eac lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00000eb0 beqz v0, 0x10ac | goto label_18;
| }
0x00000eb4 addiu a1, v0, 4 | a1 = v0 + 4;
0x00000eb8 subu s3, a1, s3 | __asm ("subu s3, a1, s3");
0x00000ebc subu s4, s4, s3 | __asm ("subu s4, s4, s3");
0x00000ec0 lw t9, -0x7f90(gp) | t9 = sym.imp.write;
| if (s4 != 0) {
0x00000ec4 bnez s4, 0x1090 | goto label_19;
| }
| label_4:
0x00000ec8 subu s1, s1, s3 | __asm ("subu s1, s1, s3");
| do {
0x00000ecc lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00000ed0 lw t9, -0x7f6c(gp) | t9 = sym.imp.puts;
0x00000ed4 addiu a0, a0, 0x19dc | a0 += str.Content_Type:_text_plain_r_n_r;
0x00000ed8 jalr t9 | t9 ();
0x00000edc lw gp, 0x30(sp) | gp = *(var_30h);
0x00000ee0 lw v0, -0x7fa0(gp) | v0 = *((gp - 8168));
0x00000ee4 lw t9, -0x7f50(gp) | t9 = sym.imp.fflush;
0x00000ee8 lw a0, (v0) | a0 = *(v0);
0x00000eec jalr t9 | t9 ();
0x00000ef0 lw gp, 0x30(sp) | gp = *(var_30h);
0x00000ef4 addiu a0, sp, 0x3c | a0 = sp + 0x3c;
0x00000ef8 lw t9, -0x7f74(gp) | t9 = sym.imp.sd_bus_open_system
0x00000efc sw zero, 0x3c(sp) | *(var_3ch) = 0;
0x00000f00 jalr t9 | t9 ();
0x00000f04 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 < 0) {
0x00000f08 bltz v0, 0x1058 | goto label_20;
| }
0x00000f0c lw v0, 0x5c(sp) | v0 = *(var_5ch);
0x00000f10 lw a3, -0x7fdc(gp) | a3 = *((gp - 8183));
0x00000f14 sw v0, 0x28(sp) | *(var_28h) = v0;
0x00000f18 lw v0, 0x50(sp) | v0 = *(var_50h);
0x00000f1c lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00000f20 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00000f24 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00000f28 lw t9, -0x7f64(gp) | t9 = sym.imp.sd_bus_call_method;
0x00000f2c addiu v0, v0, 0x1a58 | v0 += str.ihhb;
0x00000f30 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00000f34 addiu v0, sp, 0x40 | v0 = sp + 0x40;
0x00000f38 sw v0, 0x18(sp) | *(var_18h) = v0;
0x00000f3c addiu v0, sp, 0x44 | v0 = sp + 0x44;
0x00000f40 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00000f44 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00000f48 addiu a3, a3, 0x1a20 | a3 += str.com.axis.FirmwareManager1;
0x00000f4c addiu v0, v0, 0x1a60 | v0 += str.UpgradeRaw;
0x00000f50 lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x00000f54 sw s0, 0x2c(sp) | *(var_2ch) = s0;
0x00000f58 sw s1, 0x20(sp) | *(var_20h) = s1;
0x00000f5c sw v0, 0x10(sp) | *(var_10h) = v0;
0x00000f60 addiu a2, a2, 0x1a3c | a2 += str._com_axis_FirmwareManager1;
0x00000f64 move a1, a3 | a1 = a3;
0x00000f68 sw zero, 0x44(sp) | *(var_44h) = 0;
0x00000f6c sw zero, 0x48(sp) | *(var_48h) = 0;
0x00000f70 sw zero, 0x4c(sp) | *(var_4ch) = 0;
0x00000f74 sw zero, 0x40(sp) | *(var_40h) = 0;
0x00000f78 jalr t9 | t9 ();
0x00000f7c lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 < 0) {
0x00000f80 bltz v0, 0x1068 | goto label_21;
| }
0x00000f84 lw a0, 0x40(sp) | a0 = *(var_40h);
0x00000f88 lw t9, -0x7f98(gp) | t9 = sym.imp.sd_bus_message_unref;
| if (a0 != 0) {
0x00000f8c beqz a0, 0xf9c |
0x00000f90 jalr t9 | t9 ();
0x00000f94 nop |
0x00000f98 lw gp, 0x30(sp) | gp = *(var_30h);
| }
0x00000f9c lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x00000fa0 lw t9, -0x7fa8(gp) | t9 = sym.imp.sd_bus_unref;
| if (a0 != 0) {
0x00000fa4 beqz a0, 0xfb4 |
0x00000fa8 jalr t9 | t9 ();
0x00000fac nop |
0x00000fb0 lw gp, 0x30(sp) | gp = *(var_30h);
| }
0x00000fb4 lw t9, -0x7fb4(gp) | t9 = sym.imp.close;
0x00000fb8 lw a0, 0x50(sp) | a0 = *(var_50h);
0x00000fbc jalr t9 | t9 ();
0x00000fc0 lw gp, 0x30(sp) | gp = *(var_30h);
0x00000fc4 lw t9, -0x7fb4(gp) | t9 = sym.imp.close;
0x00000fc8 lw a0, 0x5c(sp) | a0 = *(var_5ch);
0x00000fcc jalr t9 | t9 ();
0x00000fd0 lw gp, 0x30(sp) | gp = *(var_30h);
0x00000fd4 lw a1, 0x54(sp) | a1 = *(var_54h);
0x00000fd8 subu a2, s1, s4 | __asm ("subu a2, s1, s4");
0x00000fdc lw s0, -0x7fdc(gp) | s0 = *((gp - 8183));
0x00000fe0 addiu s0, s0, 0x1280 | s0 += fcn.00001280;
0x00000fe4 move t9, s0 | t9 = s0;
0x00000fe8 move a0, zero | a0 = 0;
0x00000fec bal 0x1280 | fcn_00001280 ();
0x00000ff0 lw gp, 0x30(sp) | gp = *(var_30h);
0x00000ff4 lw t9, -0x7fb4(gp) | t9 = sym.imp.close;
0x00000ff8 lw a0, 0x54(sp) | a0 = *(var_54h);
0x00000ffc jalr t9 | t9 ();
0x00001000 lw a0, 0x58(sp) | a0 = *(var_58h);
0x00001004 addiu a2, zero, -1 | a2 = -1;
0x00001008 move t9, s0 | t9 = s0;
0x0000100c addiu a1, zero, 1 | a1 = 1;
0x00001010 bal 0x1280 | fcn_00001280 ();
0x00001014 lw gp, 0x30(sp) | gp = *(var_30h);
0x00001018 lw t9, -0x7fb4(gp) | t9 = sym.imp.close;
0x0000101c lw a0, 0x58(sp) | a0 = *(var_58h);
0x00001020 jalr t9 | t9 ();
0x00001024 lw gp, 0x30(sp) | gp = *(var_30h);
0x00001028 lw t9, -0x7f7c(gp) | t9 = sym.imp.exit;
0x0000102c move a0, zero | a0 = 0;
0x00001030 jalr t9 | t9 ();
| label_15:
0x00001034 move s4, zero | s4 = 0;
0x00001038 b 0xecc |
| } while (1);
| label_16:
0x0000103c lw v0, (s2) | v0 = *(s2);
0x00001040 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
| if (v0 == s6) {
0x00001044 beq v0, s6, 0xe80 | goto label_3;
| }
0x00001048 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x0000104c addiu t9, t9, 0x1230 | t9 += fcn.00001230;
0x00001050 addiu a0, a0, 0x1944 | a0 += str.Read_error_on_input_stream_before_firmware_image.;
0x00001054 bal 0x1230 | fcn_00001230 ();
| label_20:
0x00001058 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x0000105c lw t9, -0x7f6c(gp) | t9 = sym.imp.puts;
0x00001060 addiu a0, a0, 0x19f8 | a0 += str.Error:_Failed_to_open_DBus_connection.;
0x00001064 b 0xc18 | goto label_2;
| label_21:
0x00001068 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x0000106c lw t9, -0x7fa4(gp) | t9 = sym.imp.__printf_chk;
0x00001070 lw a2, 0x48(sp) | a2 = *(var_48h);
0x00001074 addiu a0, zero, 1 | a0 = 1;
0x00001078 addiu a1, a1, 0x1a6c | a1 += str.Error:__s_n;
0x0000107c jalr t9 | t9 ();
0x00001080 lw gp, 0x30(sp) | gp = *(var_30h);
0x00001084 lw t9, -0x7f7c(gp) | t9 = sym.imp.exit;
0x00001088 move a0, zero | a0 = 0;
0x0000108c jalr t9 | t9 ();
| label_19:
0x00001090 lw a0, 0x54(sp) | a0 = *(var_54h);
0x00001094 move a2, s4 | a2 = s4;
0x00001098 jalr t9 | t9 ();
0x0000109c lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == s4) {
0x000010a0 beq v0, s4, 0xec8 | goto label_4;
| }
0x000010a4 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x000010a8 b 0xd44 | goto label_5;
| label_18:
0x000010ac lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x000010b0 lw t9, -0x7f6c(gp) | t9 = sym.imp.puts;
0x000010b4 addiu a0, a0, 0x1980 | a0 += str.Status:_400_Bad_Request_r_nContent_Type:_text_plain_r_n_r_nFormat_error_in_HTTP_multipart_data._r;
0x000010b8 b 0xc18 | goto label_2;
| }
[*] Function system used 2 times firmwareupgrade.cgi