[*] Binary protection state of editcgi.cgi

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


[*] Function printf tear down of editcgi.cgi

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/editcgi.cgi @ 0x1170 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) main ()                      | int32_t main () {
                                         |     /* [13] -r-x section size 9200 named .text */
    0x00001170 lui gp, 2                 |     
    0x00001174 addiu gp, gp, -0x4160     |     
    0x00001178 addu gp, gp, t9           |     gp += t9;
    0x0000117c addiu sp, sp, -0x1b8      |     
    0x00001180 lw t9, -0x7fd8(gp)        |     t9 = sym.editcgi_is_enabled;
    0x00001184 sw s0, 0x190(sp)          |     *(var_190h) = s0;
    0x00001188 lw s0, -0x7ed8(gp)        |     s0 = *((gp - 8118));
    0x0000118c sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00001190 sw s7, 0x1ac(sp)          |     *(var_1ach) = s7;
    0x00001194 lw v0, (s0)               |     v0 = *(s0);
    0x00001198 sw s2, 0x198(sp)          |     *(var_198h) = s2;
    0x0000119c sw ra, 0x1b4(sp)          |     *(var_1b4h) = ra;
    0x000011a0 sw fp, 0x1b0(sp)          |     *(var_1b0h) = fp;
    0x000011a4 sw s6, 0x1a8(sp)          |     *(var_1a8h) = s6;
    0x000011a8 sw s5, 0x1a4(sp)          |     *(var_1a4h) = s5;
    0x000011ac sw s4, 0x1a0(sp)          |     *(var_1a0h) = s4;
    0x000011b0 sw s3, 0x19c(sp)          |     *(var_19ch) = s3;
    0x000011b4 sw s1, 0x194(sp)          |     *(var_194h) = s1;
    0x000011b8 sw v0, 0x18c(sp)          |     *(var_18ch) = v0;
    0x000011bc move s2, a0               |     s2 = a0;
    0x000011c0 move s7, a1               |     s7 = a1;
    0x000011c4 bal 0x1e5c                |     sym_editcgi_is_enabled ();
    0x000011c8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x000011cc beqz v0, 0x1890           |         goto label_13;
                                         |     }
    0x000011d0 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x000011d4 lw t9, -0x7ef8(gp)        |     t9 = sym.imp.getenv;
    0x000011d8 addiu a0, a0, 0x39c0      |     a0 += str.REQUEST_METHOD;
    0x000011dc jalr t9                   |     t9 ();
    0x000011e0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000011e4 move s1, v0               |     s1 = v0;
    0x000011e8 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x000011ec lw t9, -0x7ef8(gp)        |     t9 = sym.imp.getenv;
    0x000011f0 addiu a0, a0, 0x39d0      |     a0 += str.QUERY_STRING;
    0x000011f4 jalr t9                   |     t9 ();
    0x000011f8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000011fc move s3, v0               |     s3 = v0;
    0x00001200 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00001204 lw t9, -0x7ef8(gp)        |     t9 = sym.imp.getenv;
    0x00001208 addiu a0, a0, 0x39e0      |     a0 += str.SCRIPT_NAME;
    0x0000120c jalr t9                   |     t9 ();
    0x00001210 move s4, v0               |     s4 = v0;
    0x00001214 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (s3 == 0) {
    0x00001218 beqz s3, 0x192c           |         goto label_14;
                                         |     }
                                         |     if (s4 != 0) {
                                         | label_3:
    0x0000121c beql s4, zero, 0x1224     |         
    0x00001220 lw s4, (s7)               |         s4 = *(s7);
                                         |     }
    0x00001224 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00001228 lw t9, -0x7f00(gp)        |     t9 = sym.imp.puts;
    0x0000122c addiu a0, a0, 0x39ec      |     a0 += str.Content_Type:_text_html_n;
    0x00001230 jalr t9                   |     t9 ();
    0x00001234 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001238 lw t9, -0x7fd4(gp)        |     t9 = sym.url_parameter_type_init;
    0x0000123c move a0, s3               |     a0 = s3;
    0x00001240 bal 0x2944                |     sym_url_parameter_type_init ();
    0x00001244 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001248 move a2, zero             |     a2 = 0;
    0x0000124c move a0, v0               |     a0 = v0;
    0x00001250 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001254 lw t9, -0x7fd0(gp)        |     t9 = sym.url_parameter_get_data;
    0x00001258 addiu a1, a1, 0x3a08      |     a1 += str.debug;
    0x0000125c move s2, v0               |     s2 = v0;
    0x00001260 bal 0x22fc                |     sym_url_parameter_get_data ();
    0x00001264 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001268 lw s6, -0x7fcc(gp)        |     s6 = *((gp - 8179));
                                         |     if (v0 != 0) {
    0x0000126c beqz v0, 0x1278           |         
    0x00001270 addiu v0, zero, 1         |         v0 = 1;
    0x00001274 sw v0, 0x5584(s6)         |         *((s6 + 5473)) = v0;
                                         |     }
    0x00001278 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x0000127c lw t9, -0x7fd0(gp)        |     t9 = sym.url_parameter_get_data;
    0x00001280 move a2, zero             |     a2 = 0;
    0x00001284 addiu a1, a1, 0x3a10      |     a1 += 0x3a10;
    0x00001288 move a0, s2               |     a0 = s2;
    0x0000128c bal 0x22fc                |     sym_url_parameter_get_data ();
    0x00001290 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001294 lw s5, -0x7fcc(gp)        |     s5 = *((gp - 8179));
                                         |     if (v0 != 0) {
    0x00001298 beqz v0, 0x12a4           |         
    0x0000129c addiu v0, zero, 1         |         v0 = 1;
    0x000012a0 sw v0, 0x5580(s5)         |         *((s5 + 5472)) = v0;
                                         |     }
    0x000012a4 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x000012a8 lw t9, -0x7ef8(gp)        |     t9 = sym.imp.getenv;
    0x000012ac addiu a0, a0, 0x3a14      |     a0 += str.REQUEST_URI;
    0x000012b0 jalr t9                   |     t9 ();
    0x000012b4 sw v0, 0x20(sp)           |     *(var_20h) = v0;
    0x000012b8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (s1 == 0) {
    0x000012bc beqz s1, 0x1a38           |         goto label_15;
                                         |     }
    0x000012c0 lw fp, -0x7fdc(gp)        |     fp = *((gp - 8183));
                                         | label_8:
    0x000012c4 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x000012c8 lw t9, -0x7f00(gp)        |     t9 = sym.imp.puts;
    0x000012cc addiu a0, a0, 0x3a64      |     a0 += str._html__body_;
    0x000012d0 jalr t9                   |     t9 ();
    0x000012d4 lw v0, 0x5584(s6)         |     v0 = *((s6 + 5473));
    0x000012d8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x000012dc bnez v0, 0x15e0           |         goto label_16;
                                         |     }
                                         | label_2:
    0x000012e0 lw v0, 0x5580(s5)         |     v0 = *((s5 + 5472));
    0x000012e4 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
                                         |     if (v0 != 0) {
    0x000012e8 bnez v0, 0x1570           |         goto label_17;
                                         |     }
                                         | label_1:
    0x000012ec lw t9, -0x7eb8(gp)        |     t9 = sym.imp.strcmp;
    0x000012f0 addiu a1, fp, 0x391c      |     a1 = fp + 0x391c;
    0x000012f4 move a0, s1               |     a0 = s1;
    0x000012f8 jalr t9                   |     t9 ();
    0x000012fc lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00001300 beqz v0, 0x13e4           |         goto label_18;
                                         |     }
    0x00001304 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001308 lw t9, -0x7eb8(gp)        |     t9 = sym.imp.strcmp;
    0x0000130c addiu a1, a1, 0x3e88      |     a1 += str.POST;
    0x00001310 move a0, s1               |     a0 = s1;
    0x00001314 jalr t9                   |     t9 ();
    0x00001318 move s3, v0               |     s3 = v0;
    0x0000131c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00001320 bnez v0, 0x18e8           |         goto label_19;
                                         |     }
    0x00001324 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00001328 lw t9, -0x7ef8(gp)        |     t9 = sym.imp.getenv;
    0x0000132c addiu a0, a0, 0x3e90      |     a0 += str.CONTENT_LENGTH;
    0x00001330 sw zero, 0x30(sp)         |     *(var_30h) = 0;
    0x00001334 jalr t9                   |     t9 ();
    0x00001338 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000133c addiu a2, zero, 0xa       |     a2 = 0xa;
    0x00001340 move a1, zero             |     a1 = 0;
    0x00001344 lw t9, -0x7f74(gp)        |     t9 = sym.imp.strtol;
    0x00001348 move a0, v0               |     a0 = v0;
    0x0000134c jalr t9                   |     t9 ();
    0x00001350 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001354 addiu a0, v0, 1           |     a0 = v0 + 1;
    0x00001358 lw t9, -0x7efc(gp)        |     t9 = sym.imp.malloc;
    0x0000135c move s1, v0               |     s1 = v0;
    0x00001360 jalr t9                   |     t9 ();
    0x00001364 move s5, v0               |     s5 = v0;
    0x00001368 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (s1 == 0) {
    0x0000136c beqz s1, 0x164c           |         goto label_20;
                                         |     }
    0x00001370 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00001374 lw s7, -0x7f2c(gp)        |     s7 = *((gp - 8139));
    0x00001378 addiu v0, v0, 0x3ed0      |     v0 += str.read_stdin:;
    0x0000137c move fp, zero             |     fp = 0;
    0x00001380 addiu s6, zero, -1        |     s6 = -1;
    0x00001384 sw v0, 0x24(sp)           |     *(var_24h) = v0;
    0x00001388 b 0x139c                  |     
                                         |     while (v0 != s6) {
                                         | label_0:
    0x0000138c addu s3, s3, v0           |         s3 += v0;
    0x00001390 sltu v0, s3, s1           |         v0 = (s3 < s1) ? 1 : 0;
    0x00001394 move fp, s3               |         fp = s3;
                                         |         if (v0 == 0) {
    0x00001398 beqz v0, 0x164c           |             goto label_20;
                                         |         }
    0x0000139c lw t9, -0x7f40(gp)        |         t9 = sym.imp.fileno;
    0x000013a0 lw a0, (s7)               |         a0 = *(s7);
    0x000013a4 jalr t9                   |         t9 ();
    0x000013a8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000013ac subu a2, s1, fp           |         __asm ("subu a2, s1, fp");
    0x000013b0 addu a1, s5, fp           |         a1 = s5 + fp;
    0x000013b4 lw t9, -0x7ec0(gp)        |         t9 = sym.imp.read;
    0x000013b8 move a0, v0               |         a0 = v0;
    0x000013bc jalr t9                   |         t9 ();
    0x000013c0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000013c4 bne v0, s6, 0x138c        |         
                                         |     }
    0x000013c8 lw t9, -0x7ef4(gp)        |     t9 = sym.imp.perror;
    0x000013cc lw a0, 0x24(sp)           |     a0 = *(var_24h);
    0x000013d0 sw v0, 0x20(sp)           |     *(var_20h) = v0;
    0x000013d4 jalr t9                   |     t9 ();
    0x000013d8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000013dc lw v0, 0x20(sp)           |     v0 = *(var_20h);
    0x000013e0 b 0x138c                  |     goto label_0;
                                         | label_18:
    0x000013e4 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x000013e8 lw t9, -0x7fd0(gp)        |     t9 = sym.url_parameter_get_data;
    0x000013ec move a2, zero             |     a2 = 0;
    0x000013f0 addiu a1, a1, 0x3acc      |     a1 += str.file;
    0x000013f4 move a0, s2               |     a0 = s2;
    0x000013f8 bal 0x22fc                |     sym_url_parameter_get_data ();
    0x000013fc move s1, v0               |     s1 = v0;
    0x00001400 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00001404 beqz v0, 0x1a90           |         goto label_21;
                                         |     }
    0x00001408 lb v0, (v0)               |     v0 = *(v0);
    0x0000140c lw t9, -0x7f0c(gp)        |     t9 = sym.imp.realpath;
                                         |     if (v0 == 0) {
    0x00001410 bnez v0, 0x141c           |         
    0x00001414 lw s1, -0x7fdc(gp)        |         s1 = *((gp - 8183));
    0x00001418 addiu s1, s1, 0x3920      |         s1 += 0x3920;
                                         |     }
    0x0000141c move a1, zero             |     a1 = 0;
    0x00001420 move a0, s1               |     a0 = s1;
    0x00001424 jalr t9                   |     t9 ();
    0x00001428 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x0000142c beqz v0, 0x1a64           |         goto label_22;
                                         |     }
    0x00001430 lw t9, -0x7ed0(gp)        |     t9 = sym.imp.free;
    0x00001434 move a0, v0               |     a0 = v0;
    0x00001438 jalr t9                   |     t9 ();
    0x0000143c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001440 addiu a2, sp, 0x34        |     a2 = sp + 0x34;
    0x00001444 move a1, s1               |     a1 = s1;
    0x00001448 lw t9, -0x7ef0(gp)        |     t9 = sym.imp.__xstat;
    0x0000144c addiu a0, zero, 3         |     a0 = 3;
    0x00001450 jalr t9                   |     t9 ();
    0x00001454 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00001458 bnez v0, 0x1af0           |         goto label_23;
                                         |     }
    0x0000145c lw v0, 0x48(sp)           |     v0 = *(var_48h);
    0x00001460 addiu v1, zero, 0x4000    |     v1 = 0x4000;
    0x00001464 andi v0, v0, 0xf000       |     v0 &= 0xf000;
    0x00001468 lw t9, -0x7f10(gp)        |     t9 = sym.imp.open;
                                         |     if (v0 == v1) {
    0x0000146c beq v0, v1, 0x1b3c        |         goto label_24;
                                         |     }
    0x00001470 move a1, zero             |     a1 = 0;
    0x00001474 move a0, s1               |     a0 = s1;
    0x00001478 jalr t9                   |     t9 ();
    0x0000147c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001480 lw a3, 0x64(sp)           |     a3 = *(var_64h);
    0x00001484 move a2, s1               |     a2 = s1;
    0x00001488 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x0000148c lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x00001490 addiu a1, a1, 0x3c10      |     a1 += str.File:__s__Length:__lu_bytes_n;
    0x00001494 addiu a0, zero, 1         |     a0 = 1;
    0x00001498 move s5, v0               |     s5 = v0;
    0x0000149c jalr t9                   |     t9 ();
    0x000014a0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000014a4 move a2, s4               |     a2 = s4;
    0x000014a8 addiu a0, zero, 1         |     a0 = 1;
    0x000014ac lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x000014b0 lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x000014b4 addiu a1, a1, 0x3c30      |     a1 += str._a_href__s___Select_new_file___a__n;
    0x000014b8 jalr t9                   |     t9 ();
    0x000014bc lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (s5 < 0) {
    0x000014c0 bltz s5, 0x1ad0           |         goto label_25;
                                         |     }
    0x000014c4 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x000014c8 lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x000014cc lw a3, 0x48(sp)           |     a3 = *(var_48h);
    0x000014d0 move a2, s1               |     a2 = s1;
    0x000014d4 addiu a1, a1, 0x3c6c      |     a1 += str._form_method_POST___n_table__tr__td_Save_as:__input_typetext_name_save_file__value__s__size30_maxlength255___td__n_td_Mode:__input_typetext_name_mode__value_0_lo____td__n_td_Convert_CRLF_to_LF:__input_typecheckbox_name_convert_crlf_to_lf__valueon_checked___td__n__tr__n_tr__td_colspan3_aligncenter__input_typesubmit_value__Save_file_____td___tr__n_tr__td_colspan3__textarea_rows20_cols80_namecontent__n;
    0x000014d8 lw s3, -0x7fcc(gp)        |     s3 = *((gp - 8179));
    0x000014dc addiu a0, zero, 1         |     a0 = 1;
    0x000014e0 jalr t9                   |     t9 ();
    0x000014e4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000014e8 addiu a1, s3, 0x5180      |     a1 = s3 + 0x5180;
    0x000014ec addiu a2, zero, 0x400     |     a2 = 0x400;
    0x000014f0 lw t9, -0x7ec0(gp)        |     t9 = sym.imp.read;
    0x000014f4 move a0, s5               |     a0 = s5;
    0x000014f8 jalr t9                   |     t9 ();
    0x000014fc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001500 addiu s3, s3, 0x5180      |     s3 += 0x5180;
    0x00001504 lw s1, -0x7fdc(gp)        |     s1 = *((gp - 8183));
    0x00001508 addiu s1, s1, 0x38d4      |     s1 += str._.s;
    0x0000150c b 0x1540                  |     
                                         |     while (v0 > 0) {
    0x00001510 move a2, v0               |         a2 = v0;
    0x00001514 move a3, s3               |         a3 = s3;
    0x00001518 move a1, s1               |         a1 = s1;
    0x0000151c addiu a0, zero, 1         |         a0 = 1;
    0x00001520 jalr t9                   |         t9 ();
    0x00001524 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001528 addiu a2, zero, 0x400     |         a2 = 0x400;
    0x0000152c move a1, s3               |         a1 = s3;
    0x00001530 lw t9, -0x7ec0(gp)        |         t9 = sym.imp.read;
    0x00001534 move a0, s5               |         a0 = s5;
    0x00001538 jalr t9                   |         t9 ();
    0x0000153c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001540 lw t9, -0x7f48(gp)        |         t9 = sym.imp.__printf_chk
    0x00001544 bgtz v0, 0x1510           |         
                                         |     }
    0x00001548 lw t9, -0x7f78(gp)        |     t9 = sym.imp.close;
    0x0000154c move a0, s5               |     a0 = s5;
    0x00001550 jalr t9                   |     t9 ();
    0x00001554 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001558 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x0000155c lw t9, -0x7f00(gp)        |     t9 = sym.imp.puts;
    0x00001560 addiu a0, a0, 0x3e0c      |     a0 += str.__textarea__n__td___tr__tr__td_colspan3_aligncenter__input_typesubmit_value__Save_file____n__td___tr___table___form__br_;
    0x00001564 jalr t9                   |     t9 ();
    0x00001568 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000156c b 0x1904                  |     goto label_6;
                                         | label_17:
    0x00001570 lw t9, -0x7f00(gp)        |     t9 = sym.imp.puts;
    0x00001574 addiu a0, a0, 0x3ab4      |     a0 += str._pre_;
    0x00001578 jalr t9                   |     t9 ();
    0x0000157c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001580 addiu s3, zero, 4         |     s3 = 4;
    0x00001584 lw s5, -0x7f68(gp)        |     s5 = *((gp - 8154));
    0x00001588 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x0000158c lw t9, -0x7f00(gp)        |     t9 = sym.imp.puts;
    0x00001590 addiu a0, a0, 0x3abc      |     a0 += str.ENV:;
    0x00001594 jalr t9                   |     t9 ();
    0x00001598 lw v0, (s5)               |     v0 = *(s5);
    0x0000159c lw a0, (v0)               |     a0 = *(v0);
    0x000015a0 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (a0 == 0) {
    0x000015a4 beqz a0, 0x15c8           |         goto label_26;
                                         |     }
                                         |     do {
    0x000015a8 lw t9, -0x7f00(gp)        |         t9 = sym.imp.puts;
    0x000015ac jalr t9                   |         t9 ();
    0x000015b0 nop                       |         
    0x000015b4 lw a0, (s5)               |         a0 = *(s5);
    0x000015b8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000015bc lwx a0, s3(a0)            |         __asm ("lwx a0, s3(a0)");
    0x000015c0 addiu s3, s3, 4           |         s3 += 4;
    0x000015c4 bnez a0, 0x15a8           |         
                                         |     } while (a0 != 0);
                                         | label_26:
    0x000015c8 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x000015cc lw t9, -0x7f00(gp)        |     t9 = sym.imp.puts;
    0x000015d0 addiu a0, a0, 0x3ac4      |     a0 += str.__pre_;
    0x000015d4 jalr t9                   |     t9 ();
    0x000015d8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000015dc b 0x12ec                  |     goto label_1;
                                         | label_16:
    0x000015e0 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x000015e4 lw t9, -0x7f00(gp)        |     t9 = sym.imp.puts;
    0x000015e8 addiu a0, a0, 0x3a74      |     a0 += str.Important_ENV:;
    0x000015ec jalr t9                   |     t9 ();
    0x000015f0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000015f4 move a2, s1               |     a2 = s1;
    0x000015f8 addiu a0, zero, 1         |     a0 = 1;
    0x000015fc lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001600 lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x00001604 addiu a1, a1, 0x3a84      |     a1 += str.method:__s_br__n;
    0x00001608 jalr t9                   |     t9 ();
    0x0000160c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001610 move a2, s3               |     a2 = s3;
    0x00001614 addiu a0, zero, 1         |     a0 = 1;
    0x00001618 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x0000161c lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x00001620 addiu a1, a1, 0x3a94      |     a1 += str.query:__s_br__n;
    0x00001624 jalr t9                   |     t9 ();
    0x00001628 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000162c lw a2, 0x20(sp)           |     a2 = *(var_20h);
    0x00001630 addiu a0, zero, 1         |     a0 = 1;
    0x00001634 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001638 lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x0000163c addiu a1, a1, 0x3aa4      |     a1 += str.uri:__s_br__n;
    0x00001640 jalr t9                   |     t9 ();
    0x00001644 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001648 b 0x12e0                  |     goto label_2;
                                         | label_20:
    0x0000164c addu s1, s5, s1           |     s1 = s5 + s1;
    0x00001650 lw t9, -0x7fc8(gp)        |     t9 = sym.url_parameter_type_init_no_copy;
    0x00001654 move a0, s5               |     a0 = s5;
    0x00001658 sb zero, (s1)             |     *(s1) = 0;
    0x0000165c bal 0x2640                |     sym_url_parameter_type_init_no_copy ();
    0x00001660 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001664 move a2, zero             |     a2 = 0;
    0x00001668 move a0, v0               |     a0 = v0;
    0x0000166c lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001670 lw t9, -0x7fd0(gp)        |     t9 = sym.url_parameter_get_data;
    0x00001674 addiu a1, a1, 0x3ea0      |     a1 += str.save_file;
    0x00001678 move s1, v0               |     s1 = v0;
    0x0000167c bal 0x22fc                |     sym_url_parameter_get_data ();
    0x00001680 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001684 move a2, zero             |     a2 = 0;
    0x00001688 move a0, s1               |     a0 = s1;
    0x0000168c lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001690 lw t9, -0x7fd0(gp)        |     t9 = sym.url_parameter_get_data;
    0x00001694 addiu a1, a1, 0x3eac      |     a1 += str.mode;
    0x00001698 move s6, v0               |     s6 = v0;
    0x0000169c bal 0x22fc                |     sym_url_parameter_get_data ();
    0x000016a0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000016a4 addiu a2, sp, 0x30        |     a2 = sp + 0x30;
    0x000016a8 move a0, s1               |     a0 = s1;
    0x000016ac lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x000016b0 lw t9, -0x7fd0(gp)        |     t9 = sym.url_parameter_get_data;
    0x000016b4 addiu a1, a1, 0x3eb4      |     a1 += str.content;
    0x000016b8 move s5, v0               |     s5 = v0;
    0x000016bc bal 0x22fc                |     sym_url_parameter_get_data ();
    0x000016c0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000016c4 move a2, zero             |     a2 = 0;
    0x000016c8 move a0, s1               |     a0 = s1;
    0x000016cc lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x000016d0 lw t9, -0x7fd0(gp)        |     t9 = sym.url_parameter_get_data;
    0x000016d4 addiu a1, a1, 0x3ebc      |     a1 += str.convert_crlf_to_lf;
    0x000016d8 move s3, v0               |     s3 = v0;
    0x000016dc bal 0x22fc                |     sym_url_parameter_get_data ();
    0x000016e0 move s7, v0               |     s7 = v0;
    0x000016e4 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (s6 == 0) {
    0x000016e8 beqz s6, 0x1974           |         goto label_27;
                                         |     }
    0x000016ec lw t9, -0x7f74(gp)        |     t9 = sym.imp.strtol;
                                         |     if (s3 == 0) {
    0x000016f0 beqz s3, 0x1974           |         goto label_27;
                                         |     }
    0x000016f4 move a2, zero             |     a2 = 0;
    0x000016f8 move a1, zero             |     a1 = 0;
    0x000016fc move a0, s5               |     a0 = s5;
    0x00001700 jalr t9                   |     t9 ();
    0x00001704 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001708 addiu a0, zero, 0x1ff     |     a0 = 0x1ff;
    0x0000170c sw v0, 0x28(sp)           |     *(var_28h) = v0;
    0x00001710 lw t9, -0x7f70(gp)        |     t9 = sym.imp.umask;
    0x00001714 move s5, v0               |     s5 = v0;
    0x00001718 jalr t9                   |     t9 ();
    0x0000171c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001720 lw a3, 0x30(sp)           |     a3 = *(var_30h);
    0x00001724 move a2, s6               |     a2 = s6;
    0x00001728 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x0000172c lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x00001730 addiu a1, a1, 0x3edc      |     a1 += str.File:__s__Length:__lu_bytes__Mode_0_o_n;
    0x00001734 addiu a0, zero, 1         |     a0 = 1;
    0x00001738 sw s5, 0x10(sp)           |     *(var_10h_2) = s5;
    0x0000173c jalr t9                   |     t9 ();
    0x00001740 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001744 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00001748 lw t9, -0x7f00(gp)        |     t9 = sym.imp.puts;
    0x0000174c addiu a0, a0, 0x3ab4      |     a0 += str._pre_;
    0x00001750 jalr t9                   |     t9 ();
    0x00001754 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001758 move a2, s5               |     a2 = s5;
    0x0000175c addiu a1, zero, 0x301     |     a1 = 0x301;
    0x00001760 lw t9, -0x7f10(gp)        |     t9 = sym.imp.open;
    0x00001764 move a0, s6               |     a0 = s6;
    0x00001768 jalr t9                   |     t9 ();
    0x0000176c move s5, v0               |     s5 = v0;
    0x00001770 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 <= 0) {
    0x00001774 blez v0, 0x1c28           |         goto label_28;
                                         |     }
    0x00001778 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x0000177c move fp, zero             |     fp = 0;
    0x00001780 addiu v0, v0, 0x4014      |     v0 += 0x4014;
    0x00001784 sw v0, 0x2c(sp)           |     *(var_2ch) = v0;
                                         |     do {
                                         | label_4:
    0x00001788 lw a2, 0x30(sp)           |         a2 = *(var_30h);
                                         | label_11:
    0x0000178c sltu v0, fp, a2           |         v0 = (fp < a2) ? 1 : 0;
    0x00001790 lw a1, -0x7fdc(gp)        |         a1 = *((gp - 8183));
                                         |         if (v0 == 0) {
    0x00001794 beqz v0, 0x1b00           |             goto label_29;
                                         |         }
    0x00001798 addu a3, s3, fp           |         a3 = s3 + fp;
                                         |         if (s7 == 0) {
    0x0000179c beqz s7, 0x1a30           |             goto label_30;
                                         |         }
    0x000017a0 lw t9, -0x7f14(gp)        |         t9 = sym.imp.strchr;
    0x000017a4 sw a2, 0x24(sp)           |         *(var_24h) = a2;
    0x000017a8 move a0, a3               |         a0 = a3;
    0x000017ac sw a3, 0x20(sp)           |         *(var_20h) = a3;
    0x000017b0 addiu a1, zero, 0xa       |         a1 = 0xa;
    0x000017b4 jalr t9                   |         t9 ();
    0x000017b8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000017bc lw a3, 0x20(sp)           |         a3 = *(var_20h);
    0x000017c0 lw a2, 0x24(sp)           |         a2 = *(var_24h);
                                         |         if (v0 != 0) {
    0x000017c4 beqz v0, 0x17dc           |             
    0x000017c8 addiu v1, zero, 0xd       |             v1 = 0xd;
                                         |             if (a3 == v0) {
    0x000017cc beq a3, v0, 0x17dc        |                 goto label_31;
                                         |             }
    0x000017d0 lb a0, -1(v0)             |             a0 = *((v0 - 1));
    0x000017d4 subu v0, v0, a3           |             __asm ("subu v0, v0, a3");
                                         |             if (a0 == v1) {
    0x000017d8 beq a0, v1, 0x1940        |                 goto label_32;
                                         |             }
                                         |         }
                                         | label_31:
    0x000017dc lw t9, -0x7f24(gp)        |         t9 = sym.imp.write;
    0x000017e0 subu a2, a2, fp           |         __asm ("subu a2, a2, fp");
                                         | label_7:
    0x000017e4 move a1, a3               |         a1 = a3;
    0x000017e8 move a0, s5               |         a0 = s5;
    0x000017ec jalr t9                   |         t9 ();
    0x000017f0 addu fp, fp, v0           |         fp += v0;
    0x000017f4 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000017f8 bgez v0, 0x1788           |         
                                         |     } while (v0 >= 0);
                                         | label_10:
    0x000017fc lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
                                         | label_5:
    0x00001800 lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x00001804 move a2, fp               |     a2 = fp;
    0x00001808 addiu a1, a1, 0x3fe0      |     a1 += str.Wrote__lu_bytes_n;
    0x0000180c addiu a0, zero, 1         |     a0 = 1;
    0x00001810 jalr t9                   |     t9 ();
    0x00001814 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001818 lw t9, -0x7f1c(gp)        |     t9 = sym.imp.fsync;
    0x0000181c move a0, s5               |     a0 = s5;
    0x00001820 jalr t9                   |     t9 ();
    0x00001824 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001828 lw t9, -0x7f78(gp)        |     t9 = sym.imp.close;
    0x0000182c move a0, s5               |     a0 = s5;
    0x00001830 jalr t9                   |     t9 ();
    0x00001834 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001838 lw t9, -0x7f38(gp)        |     t9 = sym.imp.__errno_location;
    0x0000183c jalr t9                   |     t9 ();
    0x00001840 nop                       |     
    0x00001844 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001848 lw a2, (v0)               |     a2 = *(v0);
    0x0000184c addiu a0, zero, 1         |     a0 = 1;
    0x00001850 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001854 lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x00001858 addiu a1, a1, 0x3ff4      |     a1 += str.Error:__i_detected_during_write__n;
    0x0000185c jalr t9                   |     t9 ();
    0x00001860 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         | label_9:
    0x00001864 lw t9, -0x7f6c(gp)        |     t9 = sym.imp.chmod;
    0x00001868 lw a1, 0x28(sp)           |     a1 = *(var_28h);
    0x0000186c move a0, s6               |     a0 = s6;
    0x00001870 jalr t9                   |     t9 ();
    0x00001874 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         | label_12:
    0x00001878 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x0000187c lw t9, -0x7f00(gp)        |     t9 = sym.imp.puts;
    0x00001880 addiu a0, a0, 0x3ac4      |     a0 += str.__pre_;
    0x00001884 jalr t9                   |     t9 ();
    0x00001888 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000188c b 0x19a0                  |     goto label_33;
                                         | label_13:
    0x00001890 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001894 lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x00001898 addiu a1, a1, 0x3924      |     a1 += str.Content_Type:_text_html_n_n__DOCTYPE_html__n_html__body__n_n_p_The_script_editor_is_deprecated_and_has_been_disabled_in_the_configuration.__p__n__body___html_;
    0x0000189c addiu a0, zero, 1         |     a0 = 1;
    0x000018a0 jalr t9                   |     t9 ();
    0x000018a4 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     do {
    0x000018a8 lw a0, 0x18c(sp)          |         a0 = *(var_18ch);
    0x000018ac lw v1, (s0)               |         v1 = *(s0);
    0x000018b0 move v0, zero             |         v0 = 0;
                                         |         if (a0 != v1) {
    0x000018b4 bne a0, v1, 0x1c90        |             goto label_34;
                                         |         }
    0x000018b8 lw ra, 0x1b4(sp)          |         ra = *(var_1b4h);
    0x000018bc lw fp, 0x1b0(sp)          |         fp = *(var_1b0h);
    0x000018c0 lw s7, 0x1ac(sp)          |         s7 = *(var_1ach);
    0x000018c4 lw s6, 0x1a8(sp)          |         s6 = *(var_1a8h);
    0x000018c8 lw s5, 0x1a4(sp)          |         s5 = *(var_1a4h);
    0x000018cc lw s4, 0x1a0(sp)          |         s4 = *(var_1a0h);
    0x000018d0 lw s3, 0x19c(sp)          |         s3 = *(var_19ch);
    0x000018d4 lw s2, 0x198(sp)          |         s2 = *(var_198h);
    0x000018d8 lw s1, 0x194(sp)          |         s1 = *(var_194h);
    0x000018dc lw s0, 0x190(sp)          |         s0 = *(var_190h);
    0x000018e0 addiu sp, sp, 0x1b8       |         
    0x000018e4 jr ra                     |         return v0;
                                         | label_19:
    0x000018e8 lw a1, -0x7fdc(gp)        |         a1 = *((gp - 8183));
    0x000018ec lw t9, -0x7f48(gp)        |         t9 = sym.imp.__printf_chk
    0x000018f0 move a2, s1               |         a2 = s1;
    0x000018f4 addiu a1, a1, 0x3fb4      |         a1 += str.Unhandled_method:__s_br__n;
    0x000018f8 addiu a0, zero, 1         |         a0 = 1;
    0x000018fc jalr t9                   |         t9 ();
    0x00001900 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         | label_6:
    0x00001904 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x00001908 lw t9, -0x7f00(gp)        |         t9 = sym.imp.puts;
    0x0000190c addiu a0, a0, 0x3fd0      |         a0 += str.__body___html_;
    0x00001910 jalr t9                   |         t9 ();
    0x00001914 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001918 lw t9, -0x7fc4(gp)        |         t9 = sym.url_parameter_type_done;
    0x0000191c move a0, s2               |         a0 = s2;
    0x00001920 bal 0x2268                |         sym_url_parameter_type_done ();
    0x00001924 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001928 b 0x18a8                  |         
                                         |     } while (1);
                                         | label_14:
    0x0000192c slti s2, s2, 2            |     s2 = (s2 < 2) ? 1 : 0;
    0x00001930 lw s3, -0x7fdc(gp)        |     s3 = *((gp - 8183));
                                         |     if (s2 == 0) {
    0x00001934 bnel s2, zero, 0x1a5c     |         goto label_35;
                                         |     }
    0x00001938 lw s3, 4(s7)              |     s3 = *((s7 + 1));
    0x0000193c b 0x121c                  |     goto label_3;
                                         | label_32:
    0x00001940 addiu a2, v0, -1          |     a2 = v0 + -1;
    0x00001944 addiu v1, fp, 2           |     v1 = fp + 2;
    0x00001948 addu fp, v1, a2           |     fp = v1 + a2;
    0x0000194c lw t9, -0x7f24(gp)        |     t9 = sym.imp.write;
                                         |     if (a2 != 0) {
    0x00001950 bnez a2, 0x1be4           |         goto label_36;
                                         |     }
    0x00001954 lw a1, 0x2c(sp)           |     a1 = *(var_2ch);
    0x00001958 addiu a2, zero, 1         |     a2 = 1;
    0x0000195c move a0, s5               |     a0 = s5;
    0x00001960 jalr t9                   |     t9 ();
    0x00001964 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 >= 0) {
    0x00001968 bgez v0, 0x1788           |         goto label_4;
                                         |     }
    0x0000196c lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001970 b 0x1800                  |     goto label_5;
                                         | label_27:
    0x00001974 lw t9, -0x7f38(gp)        |     t9 = sym.imp.__errno_location;
    0x00001978 jalr t9                   |     t9 ();
    0x0000197c nop                       |     
    0x00001980 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001984 lw a2, (v0)               |     a2 = *(v0);
    0x00001988 addiu a0, zero, 1         |     a0 = 1;
    0x0000198c lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001990 lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x00001994 addiu a1, a1, 0x3f30      |     a1 += str.Something_went_wrong____i____cant_save_file__n_br_;
    0x00001998 jalr t9                   |     t9 ();
    0x0000199c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         | label_33:
    0x000019a0 lw s3, -0x7fcc(gp)        |     s3 = *((gp - 8179));
    0x000019a4 lw t9, -0x7f44(gp)        |     t9 = sym.imp.__strcpy_chk;
    0x000019a8 addiu a2, zero, 0x400     |     a2 = 0x400;
    0x000019ac move a1, s6               |     a1 = s6;
    0x000019b0 addiu a0, s3, 0x5180      |     a0 = s3 + 0x5180;
    0x000019b4 jalr t9                   |     t9 ();
    0x000019b8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000019bc addiu a1, zero, 0x2f      |     a1 = 0x2f;
    0x000019c0 lw t9, -0x7f50(gp)        |     t9 = sym.imp.strrchr;
    0x000019c4 addiu a0, s3, 0x5180      |     a0 = s3 + 0x5180;
    0x000019c8 jalr t9                   |     t9 ();
    0x000019cc lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x000019d0 beqz v0, 0x19d8           |         
    0x000019d4 sb zero, 1(v0)            |         *((v0 + 1)) = 0;
                                         |     }
    0x000019d8 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x000019dc lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x000019e0 move a2, s4               |     a2 = s4;
    0x000019e4 addiu a1, a1, 0x3f64      |     a1 += str._a_href__s___Select_new_file___a___br__n;
    0x000019e8 addiu a0, zero, 1         |     a0 = 1;
    0x000019ec jalr t9                   |     t9 ();
    0x000019f0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000019f4 addiu s3, s3, 0x5180      |     s3 += 0x5180;
    0x000019f8 move a3, s3               |     a3 = s3;
    0x000019fc lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001a00 lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x00001a04 move a2, s4               |     a2 = s4;
    0x00001a08 addiu a1, a1, 0x3f90      |     a1 += str._a_href__s_file_s___s__a___br__n;
    0x00001a0c addiu a0, zero, 1         |     a0 = 1;
    0x00001a10 sw s3, 0x10(sp)           |     *(var_10h_2) = s3;
    0x00001a14 jalr t9                   |     t9 ();
    0x00001a18 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001a1c lw t9, -0x7fc4(gp)        |     t9 = sym.url_parameter_type_done;
    0x00001a20 move a0, s1               |     a0 = s1;
    0x00001a24 bal 0x2268                |     sym_url_parameter_type_done ();
    0x00001a28 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001a2c b 0x1904                  |     goto label_6;
                                         | label_30:
    0x00001a30 lw t9, -0x7f24(gp)        |     t9 = sym.imp.write;
    0x00001a34 b 0x17e4                  |     goto label_7;
                                         | label_15:
    0x00001a38 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00001a3c lw t9, -0x7f00(gp)        |     t9 = sym.imp.puts;
    0x00001a40 lw fp, -0x7fdc(gp)        |     fp = *((gp - 8183));
    0x00001a44 addiu a0, a0, 0x3a20      |     a0 += str.This_program_should_be_run_as_a_CGI_from_a_web_server__faking_GET_;
    0x00001a48 jalr t9                   |     t9 ();
    0x00001a4c addiu s1, fp, 0x391c      |     s1 = fp + 0x391c;
    0x00001a50 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001a54 lw s3, 4(s7)              |     s3 = *((s7 + 1));
    0x00001a58 b 0x12c4                  |     goto label_8;
                                         | label_35:
    0x00001a5c addiu s3, s3, 0x3c68      |     s3 += 0x3c68;
    0x00001a60 b 0x121c                  |     goto label_3;
                                         | label_22:
    0x00001a64 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001a68 lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x00001a6c addiu a1, a1, 0x3bac      |     a1 += str.Invalid_file_name_;
                                         |     do {
    0x00001a70 addiu a0, zero, 1         |         a0 = 1;
    0x00001a74 jalr t9                   |         t9 ();
    0x00001a78 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001a7c lw t9, -0x7f54(gp)        |         t9 = sym.imp.CGI_print_html_escaped;
    0x00001a80 move a0, s1               |         a0 = s1;
    0x00001a84 jalr t9                   |         t9 ();
    0x00001a88 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001a8c b 0x1904                  |         goto label_6;
                                         | label_21:
    0x00001a90 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x00001a94 lw t9, -0x7f00(gp)        |         t9 = sym.imp.puts;
    0x00001a98 addiu a0, a0, 0x3ad4      |         a0 += str.You_must_specify_a_name_of_file_to_edit_or_press_Submit_to_browse:_br_;
    0x00001a9c jalr t9                   |         t9 ();
    0x00001aa0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001aa4 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x00001aa8 lw t9, -0x7f00(gp)        |         t9 = sym.imp.puts;
    0x00001aac addiu a0, a0, 0x3b1c      |         a0 += str._form_method_GET___nFile_name:__input_type_text__name_file__size50_maxlength255_value___;
    0x00001ab0 jalr t9                   |         t9 ();
    0x00001ab4 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001ab8 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x00001abc lw t9, -0x7f00(gp)        |         t9 = sym.imp.puts;
    0x00001ac0 addiu a0, a0, 0x3b7c      |         a0 += str._input_typesubmit_value_Submit___n__form__br_;
    0x00001ac4 jalr t9                   |         t9 ();
    0x00001ac8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001acc b 0x1904                  |         goto label_6;
                                         | label_25:
    0x00001ad0 lw a1, -0x7fdc(gp)        |         a1 = *((gp - 8183));
    0x00001ad4 lw t9, -0x7f48(gp)        |         t9 = sym.imp.__printf_chk
    0x00001ad8 move a2, s1               |         a2 = s1;
    0x00001adc addiu a1, a1, 0x3c54      |         a1 += str.Failed_to_open__s___n;
    0x00001ae0 addiu a0, zero, 1         |         a0 = 1;
    0x00001ae4 jalr t9                   |         t9 ();
    0x00001ae8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001aec b 0x1904                  |         goto label_6;
                                         | label_23:
    0x00001af0 lw a1, -0x7fdc(gp)        |         a1 = *((gp - 8183));
    0x00001af4 lw t9, -0x7f48(gp)        |         t9 = sym.imp.__printf_chk
    0x00001af8 addiu a1, a1, 0x3bc0      |         a1 += str.Failed_to_get_status_of_;
    0x00001afc b 0x1a70                  |         
                                         |     } while (1);
                                         | label_29:
    0x00001b00 lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x00001b04 move a2, fp               |     a2 = fp;
    0x00001b08 addiu a1, a1, 0x3fe0      |     a1 += str.Wrote__lu_bytes_n;
    0x00001b0c addiu a0, zero, 1         |     a0 = 1;
    0x00001b10 jalr t9                   |     t9 ();
    0x00001b14 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001b18 lw t9, -0x7f1c(gp)        |     t9 = sym.imp.fsync;
    0x00001b1c move a0, s5               |     a0 = s5;
    0x00001b20 jalr t9                   |     t9 ();
    0x00001b24 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001b28 lw t9, -0x7f78(gp)        |     t9 = sym.imp.close;
    0x00001b2c move a0, s5               |     a0 = s5;
    0x00001b30 jalr t9                   |     t9 ();
    0x00001b34 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001b38 b 0x1864                  |     goto label_9;
                                         | label_24:
    0x00001b3c lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001b40 lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x00001b44 move a2, s1               |     a2 = s1;
    0x00001b48 addiu a1, a1, 0x3bdc      |     a1 += str.Directory:__s_n;
    0x00001b4c addiu a0, zero, 1         |     a0 = 1;
    0x00001b50 jalr t9                   |     t9 ();
    0x00001b54 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001b58 lw t9, -0x7f80(gp)        |     t9 = sym.imp.opendir;
    0x00001b5c move a0, s1               |     a0 = s1;
    0x00001b60 jalr t9                   |     t9 ();
    0x00001b64 move s5, v0               |     s5 = v0;
    0x00001b68 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00001b6c beqz v0, 0x1c70           |         goto label_37;
                                         |     }
    0x00001b70 lw a3, -0x7fdc(gp)        |     a3 = *((gp - 8183));
    0x00001b74 lw t9, -0x7f90(gp)        |     t9 = sym.imp.__sprintf_chk
    0x00001b78 addiu s3, sp, 0xc4        |     s3 = sp + 0xc4;
    0x00001b7c addiu a3, a3, 0x3c04      |     a3 += str._s_file;
    0x00001b80 addiu a2, zero, 0xc8      |     a2 = 0xc8;
    0x00001b84 addiu a1, zero, 1         |     a1 = 1;
    0x00001b88 move a0, s3               |     a0 = s3;
    0x00001b8c sw s4, 0x10(sp)           |     *(var_10h_2) = s4;
    0x00001b90 jalr t9                   |     t9 ();
    0x00001b94 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001b98 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00001b9c lw t9, -0x7f00(gp)        |     t9 = sym.imp.puts;
    0x00001ba0 addiu a0, a0, 0x3ab4      |     a0 += str._pre_;
    0x00001ba4 jalr t9                   |     t9 ();
    0x00001ba8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001bac addiu a3, zero, 1         |     a3 = 1;
    0x00001bb0 addiu a2, zero, 1         |     a2 = 1;
    0x00001bb4 lw t9, -0x7fc0(gp)        |     t9 = sym.ls;
    0x00001bb8 move a1, s5               |     a1 = s5;
    0x00001bbc move a0, s1               |     a0 = s1;
    0x00001bc0 sw s3, 0x10(sp)           |     *(var_10h_2) = s3;
    0x00001bc4 bal 0x31cc                |     sym_ls ();
    0x00001bc8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001bcc lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00001bd0 lw t9, -0x7f00(gp)        |     t9 = sym.imp.puts;
    0x00001bd4 addiu a0, a0, 0x3ac4      |     a0 += str.__pre_;
    0x00001bd8 jalr t9                   |     t9 ();
    0x00001bdc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001be0 b 0x1904                  |     goto label_6;
                                         | label_36:
    0x00001be4 move a1, a3               |     a1 = a3;
    0x00001be8 move a0, s5               |     a0 = s5;
    0x00001bec jalr t9                   |     t9 ();
    0x00001bf0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001bf4 lw a1, 0x2c(sp)           |     a1 = *(var_2ch);
    0x00001bf8 addiu a2, zero, 1         |     a2 = 1;
    0x00001bfc lw t9, -0x7f24(gp)        |     t9 = sym.imp.write;
    0x00001c00 move a0, s5               |     a0 = s5;
    0x00001c04 sw v0, 0x20(sp)           |     *(var_20h) = v0;
    0x00001c08 jalr t9                   |     t9 ();
    0x00001c0c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x00001c10 bltz v0, 0x17fc           |         goto label_10;
                                         |     }
    0x00001c14 lw a3, 0x20(sp)           |     a3 = *(var_20h);
    0x00001c18 lw a2, 0x30(sp)           |     a2 = *(var_30h);
                                         |     if (a3 >= 0) {
    0x00001c1c bgez a3, 0x178c           |         goto label_11;
                                         |     }
    0x00001c20 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001c24 b 0x1800                  |     goto label_5;
                                         | label_28:
    0x00001c28 lw t9, -0x7f38(gp)        |     t9 = sym.imp.__errno_location;
    0x00001c2c jalr t9                   |     t9 ();
    0x00001c30 nop                       |     
    0x00001c34 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001c38 lw s3, (v0)               |     s3 = *(v0);
    0x00001c3c lw t9, -0x7f04(gp)        |     t9 = sym.imp.strerror;
    0x00001c40 move a0, s3               |     a0 = s3;
    0x00001c44 jalr t9                   |     t9 ();
    0x00001c48 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001c4c move a3, v0               |     a3 = v0;
    0x00001c50 move a2, s3               |     a2 = s3;
    0x00001c54 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001c58 lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x00001c5c addiu a1, a1, 0x3f04      |     a1 += str.Failed_to_open_create_file____i___s__br__n;
    0x00001c60 addiu a0, zero, 1         |     a0 = 1;
    0x00001c64 jalr t9                   |     t9 ();
    0x00001c68 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001c6c b 0x1878                  |     goto label_12;
                                         | label_37:
    0x00001c70 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001c74 lw t9, -0x7f48(gp)        |     t9 = sym.imp.__printf_chk
    0x00001c78 move a2, s1               |     a2 = s1;
    0x00001c7c addiu a1, a1, 0x3bec      |     a1 += str.Failed_to_read_dir:__s_n;
    0x00001c80 addiu a0, zero, 1         |     a0 = 1;
    0x00001c84 jalr t9                   |     t9 ();
    0x00001c88 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001c8c b 0x1904                  |     goto label_6;
                                         | label_34:
    0x00001c90 lw t9, -0x7ee8(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00001c94 jalr t9                   |     t9 ();
    0x00001c98 nop                       |     
    0x00001c9c nop                       |     
                                         | }

[*] Function printf used 24 times editcgi.cgi