[*] Binary protection state of file_upload

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


[*] Function strcat tear down of file_upload

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/file_upload @ 0x232c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.http_post_parse ()       | void http_post_parse () {
    0x0000232c lui gp, 2                 |     
    0x00002330 addiu gp, gp, -0x52cc     |     
    0x00002334 addu gp, gp, t9           |     gp += t9;
    0x00002338 lw v0, -0x7ed8(gp)        |     v0 = *((gp - 8118));
    0x0000233c addiu sp, sp, -0x940      |     
    0x00002340 lw v1, -0x7fdc(gp)        |     v1 = *((gp - 8183));
    0x00002344 sw v0, 0x64(sp)           |     *(var_64h) = v0;
    0x00002348 addiu t9, v1, 0x1af4      |     t9 = v1 + fcn.00001af4;
    0x0000234c lw v0, (v0)               |     v0 = *(v0);
    0x00002350 lw v1, 0x950(sp)          |     v1 = *(arg_950h);
    0x00002354 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00002358 sw a0, 0x60(sp)           |     *(var_60h) = a0;
    0x0000235c sw ra, 0x93c(sp)          |     *(var_93ch) = ra;
    0x00002360 sw fp, 0x938(sp)          |     *(var_938h) = fp;
    0x00002364 sw s7, 0x934(sp)          |     *(var_934h) = s7;
    0x00002368 sw s6, 0x930(sp)          |     *(var_930h) = s6;
    0x0000236c sw s5, 0x92c(sp)          |     *(var_92ch) = s5;
    0x00002370 sw s4, 0x928(sp)          |     *(var_928h) = s4;
    0x00002374 sw s3, 0x924(sp)          |     *(var_924h) = s3;
    0x00002378 sw s2, 0x920(sp)          |     *(var_920h) = s2;
    0x0000237c sw s1, 0x91c(sp)          |     *(var_91ch) = s1;
    0x00002380 sw s0, 0x918(sp)          |     *(var_918h) = s0;
    0x00002384 addiu a0, zero, 0x1000    |     a0 = 0x1000;
    0x00002388 sw t9, 0x54(sp)           |     *(var_54h) = t9;
    0x0000238c sw a1, 0x944(sp)          |     *(arg_944h) = a1;
    0x00002390 sw a2, 0x6c(sp)           |     *(var_6ch) = a2;
    0x00002394 sw a3, 0x70(sp)           |     *(var_70h) = a3;
    0x00002398 sw v1, 0x68(sp)           |     *(var_68h) = v1;
    0x0000239c sw v0, 0x914(sp)          |     *(var_914h) = v0;
    0x000023a0 bal 0x1af4                |     fcn_00001af4 ();
    0x000023a4 nop                       |     
    0x000023a8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x000023ac bltz v0, 0x3160           |         goto label_30;
                                         |     }
    0x000023b0 lw v0, -0x7fd0(gp)        |     v0 = *((gp - 8180));
    0x000023b4 lw v1, -0x7fd0(gp)        |     v1 = *((gp - 8180));
    0x000023b8 sw v0, 0x44(sp)           |     *(var_44h) = v0;
    0x000023bc lw a2, 0x51d8(v0)         |     a2 = *((v0 + 5238));
    0x000023c0 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x000023c4 lw s0, -0x7fd0(gp)        |     s0 = *((gp - 8180));
    0x000023c8 lw s2, -0x7fd0(gp)        |     s2 = *((gp - 8180));
    0x000023cc addiu t9, v0, 0x1a3c      |     t9 = v0 + fcn.00001a3c;
    0x000023d0 lw a1, 0x51dc(v1)         |     a1 = *((v1 + 5239));
    0x000023d4 sw v1, 0x28(sp)           |     *(var_28h) = v1;
    0x000023d8 move a0, zero             |     a0 = 0;
    0x000023dc sw t9, 0x40(sp)           |     *(var_40h) = t9;
    0x000023e0 sw s0, 0x2c(sp)           |     *(var_2ch) = s0;
    0x000023e4 bal 0x1a3c                |     fcn_00001a3c ();
    0x000023e8 sw v0, 0x51d0(s0)         |     *((s0 + 5236)) = v0;
    0x000023ec lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000023f0 sw zero, 0x51d4(s2)       |     *((s2 + 5237)) = 0;
                                         |     if (v0 == 0) {
    0x000023f4 beqz v0, 0x2960           |         goto label_31;
                                         |     }
    0x000023f8 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x000023fc addiu t9, v0, 0x19b0      |     t9 = v0 + fcn.000019b0;
    0x00002400 sw t9, 0x20(sp)           |     *(var_20h) = t9;
    0x00002404 bal 0x19b0                |     fcn_000019b0 ();
    0x00002408 move s0, v0               |     s0 = v0;
    0x0000240c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00002410 beqz v0, 0x3264           |         goto label_32;
                                         |     }
    0x00002414 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00002418 lw t9, -0x7f84(gp)        |     t9 = sym.imp.strncmp;
    0x0000241c addiu a2, zero, 2         |     a2 = 2;
    0x00002420 addiu a1, a1, 0x4898      |     a1 += 0x4898;
    0x00002424 move a0, v0               |     a0 = v0;
    0x00002428 jalr t9                   |     t9 ();
    0x0000242c sw v0, 0x5c(sp)           |     *(var_5ch) = v0;
    0x00002430 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00002434 bnez v0, 0x31ac           |         goto label_33;
                                         |     }
    0x00002438 move a0, s0               |     a0 = s0;
    0x0000243c lw s0, -0x7fdc(gp)        |     s0 = *((gp - 8183));
    0x00002440 lw t9, -0x7ed0(gp)        |     t9 = sym.imp.strdup;
    0x00002444 sw s0, 0x74(sp)           |     *(var_74h) = s0;
    0x00002448 jalr t9                   |     t9 ();
    0x0000244c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002450 sw v0, 0x50(sp)           |     *(var_50h) = v0;
    0x00002454 sb zero, 0x114(sp)        |     *(var_114h) = 0;
    0x00002458 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x0000245c move s3, zero             |     s3 = 0;
    0x00002460 sw v0, 0x24(sp)           |     *(var_24h) = v0;
    0x00002464 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00002468 sw zero, 0x4c(sp)         |     *(var_4ch) = 0;
    0x0000246c addiu v0, v0, 0x1bb8      |     v0 += 0x1bb8;
    0x00002470 sw v0, 0x38(sp)           |     *(var_38h) = v0;
    0x00002474 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00002478 sw zero, 0x48(sp)         |     *(var_48h) = 0;
    0x0000247c addiu v0, v0, 0x46a4      |     v0 += str.Error_write__:;
    0x00002480 sw v0, 0x78(sp)           |     *(var_78h) = v0;
    0x00002484 lw v0, 0x4668(s0)         |     v0 = *(s0);
    0x00002488 addiu s1, sp, 0x514       |     s1 = sp + 0x514;
    0x0000248c sw v0, 0x3c(sp)           |     *(var_3ch) = v0;
                                         | label_1:
    0x00002490 lw t9, 0x20(sp)           |     t9 = *(var_20h);
                                         |     do {
    0x00002494 jalr t9                   |         t9 ();
    0x00002498 nop                       |         
    0x0000249c move s0, v0               |         s0 = v0;
    0x000024a0 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x000024a4 beqz v0, 0x2718           |             goto label_34;
                                         |         }
                                         | label_0:
    0x000024a8 lw v0, 0x24(sp)           |         v0 = *(var_24h);
    0x000024ac lw t9, -0x7eb4(gp)        |         t9 = sym.imp.strcmp;
    0x000024b0 addiu a1, v0, 0x45dc      |         a1 = v0 + 0x45dc;
    0x000024b4 move a0, s0               |         a0 = s0;
    0x000024b8 jalr t9                   |         t9 ();
    0x000024bc lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 != 0) {
    0x000024c0 bnez v0, 0x2988           |             goto label_35;
                                         |         }
    0x000024c4 lw t9, 0x20(sp)           |         t9 = *(var_20h);
    0x000024c8 beqz s3, 0x2494           |         
                                         |     } while (s3 == 0);
    0x000024cc lw v0, 0x944(sp)          |     v0 = *(arg_944h);
    0x000024d0 lw s0, -0x7fd0(gp)        |     s0 = *((gp - 8180));
                                         |     if (v0 == 0) {
    0x000024d4 beqz v0, 0x2b04           |         goto label_36;
                                         |     }
    0x000024d8 lw t9, -0x7edc(gp)        |     t9 = sym.imp.time;
    0x000024dc move a0, zero             |     a0 = 0;
    0x000024e0 jalr t9                   |     t9 ();
    0x000024e4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000024e8 lw s0, 0x74(sp)           |     s0 = *(var_74h);
    0x000024ec move s7, v0               |     s7 = v0;
    0x000024f0 lw t9, -0x7fa4(gp)        |     t9 = sym.imp.opendir;
    0x000024f4 addiu a0, s0, 0x4668      |     a0 = s0 + str._var_cache_upload_;
    0x000024f8 jalr t9                   |     t9 ();
    0x000024fc sw v0, 0x30(sp)           |     *(var_30h) = v0;
    0x00002500 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00002504 beqz v0, 0x2608           |         goto label_37;
                                         |     }
    0x00002508 lw t9, -0x7f6c(gp)        |     t9 = sym.imp.readdir;
    0x0000250c lw a0, 0x30(sp)           |     a0 = *(var_30h);
    0x00002510 move s4, zero             |     s4 = 0;
    0x00002514 jalr t9                   |     t9 ();
    0x00002518 move s5, zero             |     s5 = 0;
    0x0000251c addiu s0, s0, 0x4668      |     s0 += str._var_cache_upload_;
    0x00002520 addiu s6, sp, 0x526       |     s6 = sp + 0x526;
    0x00002524 addiu fp, sp, 0x84        |     fp = sp + 0x84;
    0x00002528 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x0000252c beqz v0, 0x25d8           |         goto label_38;
                                         |     }
                                         |     do {
    0x00002530 lw t1, 4(s0)              |         t1 = *((s0 + 1));
    0x00002534 lw t0, 8(s0)              |         t0 = *((s0 + 2));
    0x00002538 lw a3, 0xc(s0)            |         a3 = *((s0 + 3));
    0x0000253c lhu v1, 0x10(s0)          |         v1 = *((s0 + 8));
    0x00002540 addiu a1, v0, 0xb         |         a1 = v0 + 0xb;
    0x00002544 lw v0, 0x3c(sp)           |         v0 = *(var_3ch);
    0x00002548 lw t9, -0x7f64(gp)        |         t9 = sym.imp.__strcpy_chk;
    0x0000254c addiu a2, zero, 0x100     |         a2 = 0x100;
    0x00002550 move a0, s6               |         a0 = s6;
    0x00002554 sw t1, 4(s1)              |         *((s1 + 1)) = t1;
    0x00002558 sw t0, 8(s1)              |         *((s1 + 2)) = t0;
    0x0000255c sw a3, 0xc(s1)            |         *((s1 + 3)) = a3;
    0x00002560 sh v1, 0x10(s1)           |         *((s1 + 8)) = v1;
    0x00002564 sw v0, (s1)               |         *(s1) = v0;
    0x00002568 jalr t9                   |         t9 ();
    0x0000256c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00002570 move a2, fp               |         a2 = fp;
    0x00002574 move a1, s1               |         a1 = s1;
    0x00002578 lw t9, -0x7ef0(gp)        |         t9 = sym.imp.__xstat;
    0x0000257c addiu a0, zero, 3         |         a0 = 3;
    0x00002580 jalr t9                   |         t9 ();
    0x00002584 lw s3, 0xc4(sp)           |         s3 = *(var_c4h);
    0x00002588 slt v0, s3, s7            |         v0 = (s3 < s7) ? 1 : 0;
    0x0000258c lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 != 0) {
    0x00002590 beqz v0, 0x25c0           |             
    0x00002594 lw t9, -0x7ecc(gp)        |             t9 = sym.imp.free;
                                         |             if (s5 != 0) {
    0x00002598 beqz s5, 0x25a8           |                 
    0x0000259c move a0, s5               |                 a0 = s5;
    0x000025a0 jalr t9                   |                 t9 ();
    0x000025a4 lw gp, 0x18(sp)           |                 gp = *(var_18h);
                                         |             }
    0x000025a8 lw t9, -0x7ed0(gp)        |             t9 = sym.imp.strdup;
    0x000025ac move a0, s1               |             a0 = s1;
    0x000025b0 jalr t9                   |             t9 ();
    0x000025b4 lw gp, 0x18(sp)           |             gp = *(var_18h);
    0x000025b8 move s5, v0               |             s5 = v0;
    0x000025bc move s7, s3               |             s7 = s3;
                                         |         }
    0x000025c0 lw t9, -0x7f6c(gp)        |         t9 = sym.imp.readdir;
    0x000025c4 lw a0, 0x30(sp)           |         a0 = *(var_30h);
    0x000025c8 addiu s4, s4, 1           |         s4++;
    0x000025cc jalr t9                   |         t9 ();
    0x000025d0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000025d4 bnez v0, 0x2530           |         
                                         |     } while (v0 != 0);
                                         | label_38:
    0x000025d8 slti s4, s4, 5            |     s4 = (s4 < 5) ? 1 : 0;
    0x000025dc lw t9, -0x7f78(gp)        |     t9 = sym.imp.remove;
                                         |     if (s4 == 0) {
    0x000025e0 beqz s4, 0x2c48           |         goto label_39;
                                         |     }
                                         | label_7:
    0x000025e4 lw t9, -0x7ecc(gp)        |     t9 = sym.imp.free;
                                         |     if (s5 != 0) {
    0x000025e8 beqz s5, 0x25f8           |         
    0x000025ec move a0, s5               |         a0 = s5;
    0x000025f0 jalr t9                   |         t9 ();
    0x000025f4 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
    0x000025f8 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.closedir;
    0x000025fc lw a0, 0x30(sp)           |     a0 = *(var_30h);
    0x00002600 jalr t9                   |     t9 ();
    0x00002604 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         | label_37:
    0x00002608 lw a0, -0x7fd0(gp)        |     a0 = *((gp - 8180));
    0x0000260c lw t9, -0x7f3c(gp)        |     t9 = sym.imp.mkstemp;
                                         |     /* str._var_cache_upload_uploadfile_XXXXXX */
    0x00002610 addiu a0, a0, 0x5020      |     a0 += 0x5020;
    0x00002614 jalr t9                   |     t9 ();
    0x00002618 sw v0, 0x30(sp)           |     *(var_30h) = v0;
    0x0000261c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x00002620 bltz v0, 0x3234           |         goto label_40;
                                         |     }
                                         | label_3:
    0x00002624 lw t9, -0x7f28(gp)        |     t9 = sym.imp.strlen;
    0x00002628 lw a0, 0x50(sp)           |     a0 = *(var_50h);
    0x0000262c jalr t9                   |     t9 ();
    0x00002630 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002634 addiu a0, v0, 3           |     a0 = v0 + 3;
    0x00002638 lw t9, -0x7f00(gp)        |     t9 = sym.imp.malloc;
    0x0000263c move s6, v0               |     s6 = v0;
    0x00002640 jalr t9                   |     t9 ();
    0x00002644 move s4, v0               |     s4 = v0;
    0x00002648 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x0000264c beqz v0, 0x318c           |         goto label_41;
                                         |     }
    0x00002650 lw t9, -0x7ed4(gp)        |     t9 = sym.imp.memcpy;
    0x00002654 addiu a0, v0, 2           |     a0 = v0 + 2;
    0x00002658 lw a1, 0x50(sp)           |     a1 = *(var_50h);
    0x0000265c addiu v0, zero, 0xa0d     |     v0 = 0xa0d;
    0x00002660 addiu a2, s6, 1           |     a2 = s6 + 1;
    0x00002664 sh v0, (s4)               |     *(s4) = v0;
    0x00002668 sb zero, 2(s4)            |     *((s4 + 2)) = 0;
    0x0000266c jalr t9                   |     t9 ();
    0x00002670 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002674 addiu s0, sp, 0x84        |     s0 = sp + 0x84;
    0x00002678 lw a0, 0x30(sp)           |     a0 = *(var_30h);
    0x0000267c lw t9, -0x7f54(gp)        |     t9 = sym.imp.fstatfs;
    0x00002680 move a1, s0               |     a1 = s0;
    0x00002684 jalr t9                   |     t9 ();
    0x00002688 addiu s3, s6, 2           |     s3 = s6 + 2;
    0x0000268c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x00002690 bltz v0, 0x2b4c           |         goto label_42;
                                         |     }
    0x00002694 lw a0, 0x88(sp)           |     a0 = *(var_88h);
    0x00002698 lw t9, 0x54(sp)           |     t9 = *(var_54h);
    0x0000269c addu a0, s3, a0           |     a0 = s3 + a0;
    0x000026a0 jalr t9                   |     t9 ();
    0x000026a4 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         | label_5:
    0x000026a8 lw v0, 0x28(sp)           |     v0 = *(var_28h);
    0x000026ac lw fp, 0x51d4(s2)         |     fp = *((s2 + 5237));
    0x000026b0 lw t9, -0x7ee0(gp)        |     t9 = sym.imp.memcmp;
    0x000026b4 lw v0, 0x51dc(v0)         |     v0 = *((v0 + 5239));
    0x000026b8 move a2, s3               |     a2 = s3;
    0x000026bc addu s7, v0, fp           |     s7 = v0 + fp;
    0x000026c0 move a1, s4               |     a1 = s4;
    0x000026c4 move a0, s7               |     a0 = s7;
    0x000026c8 jalr t9                   |     t9 ();
    0x000026cc lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x000026d0 bnez v0, 0x2df0           |         goto label_43;
                                         |     }
    0x000026d4 lw t9, -0x7ecc(gp)        |     t9 = sym.imp.free;
    0x000026d8 move a0, s4               |     a0 = s4;
    0x000026dc jalr t9                   |     t9 ();
    0x000026e0 addu a2, s3, fp           |     a2 = s3 + fp;
    0x000026e4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000026e8 sw a2, 0x51d4(s2)         |     *((s2 + 5237)) = a2;
                                         | label_19:
    0x000026ec lw t9, -0x7f9c(gp)        |     t9 = sym.imp.close;
    0x000026f0 lw a0, 0x30(sp)           |     a0 = *(var_30h);
    0x000026f4 jalr t9                   |     t9 ();
    0x000026f8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x000026fc bltz v0, 0x319c           |         goto label_44;
                                         |     }
    0x00002700 lw t9, 0x20(sp)           |     t9 = *(var_20h);
    0x00002704 move s3, zero             |     s3 = 0;
    0x00002708 jalr t9                   |     t9 ();
    0x0000270c move s0, v0               |     s0 = v0;
    0x00002710 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00002714 bnez v0, 0x24a8           |         goto label_0;
                                         |     }
                                         | label_34:
    0x00002718 lw s0, -0x7fdc(gp)        |     s0 = *((gp - 8183));
    0x0000271c lw a1, 0x6c(sp)           |     a1 = *(var_6ch);
    0x00002720 addiu s0, s0, 0x1ccc      |     s0 += fcn.00001ccc;
    0x00002724 move t9, s0               |     t9 = s0;
    0x00002728 lw a0, 0x48(sp)           |     a0 = *(var_48h);
    0x0000272c bal 0x1ccc                |     fcn_00001ccc ();
    0x00002730 move s2, v0               |     s2 = v0;
    0x00002734 addiu v0, zero, 1         |     v0 = 1;
    0x00002738 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (s2 != v0) {
    0x0000273c bne s2, v0, 0x3118        |         goto label_45;
                                         |     }
    0x00002740 lw s3, 0x4c(sp)           |     s3 = *(var_4ch);
    0x00002744 lw a1, 0x70(sp)           |     a1 = *(var_70h);
    0x00002748 move t9, s0               |     t9 = s0;
    0x0000274c move a0, s3               |     a0 = s3;
    0x00002750 bal 0x1ccc                |     fcn_00001ccc ();
    0x00002754 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != s2) {
    0x00002758 beq v0, s2, 0x276c        |         
    0x0000275c lw v0, 0x68(sp)           |         v0 = *(var_68h);
                                         |         if (s3 != 0) {
    0x00002760 bnez s3, 0x3220           |             goto label_46;
                                         |         }
    0x00002764 lw a2, -0x7fdc(gp)        |         a2 = *((gp - 8183));
                                         |         if (v0 == 0) {
    0x00002768 beqz v0, 0x3284           |             goto label_47;
                                         |         }
                                         |     }
    0x0000276c lw t9, -0x7ecc(gp)        |     t9 = sym.imp.free;
    0x00002770 lw a0, 0x50(sp)           |     a0 = *(var_50h);
    0x00002774 jalr t9                   |     t9 ();
    0x00002778 lw v0, 0x944(sp)          |     v0 = *(arg_944h);
    0x0000277c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00002780 bnez v0, 0x2bec           |         goto label_48;
                                         |     }
    0x00002784 lw s0, 0x48(sp)           |     s0 = *(var_48h);
    0x00002788 move a1, s0               |     a1 = s0;
                                         |     if (s0 == 0) {
    0x0000278c beqz s0, 0x2c60           |         goto label_49;
                                         |     }
    0x00002790 lw v1, -0x7fdc(gp)        |     v1 = *((gp - 8183));
    0x00002794 lw t9, -0x7f2c(gp)        |     t9 = sym.imp.__stpcpy_chk;
    0x00002798 addiu v0, v1, 0x47a0      |     v0 = v1 + str._etc_httpd_html_;
    0x0000279c lw a0, 0x47a0(v1)         |     a0 = *(v1);
    0x000027a0 lw a3, 4(v0)              |     a3 = *((v0 + 1));
    0x000027a4 lw v1, 8(v0)              |     v1 = *((v0 + 2));
    0x000027a8 lw v0, 0xc(v0)            |     v0 = *((v0 + 3));
    0x000027ac sw a0, 0x514(sp)          |     *(var_514h) = a0;
    0x000027b0 addiu a2, zero, 0x400     |     a2 = 0x400;
    0x000027b4 addiu a0, sp, 0x524       |     a0 = sp + 0x524;
    0x000027b8 sw a3, 4(s1)              |     *((s1 + 1)) = a3;
    0x000027bc sw v1, 8(s1)              |     *((s1 + 2)) = v1;
    0x000027c0 sw v0, 0xc(s1)            |     *((s1 + 3)) = v0;
    0x000027c4 jalr t9                   |     t9 ();
    0x000027c8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000027cc addiu v1, zero, 0x2f      |     v1 = 0x2f;
    0x000027d0 sb v1, (v0)               |     *(v0) = v1;
    0x000027d4 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x000027d8 lw t9, -0x7eb4(gp)        |     t9 = sym.imp.strcmp;
    0x000027dc sb zero, 1(v0)            |     *((v0 + 1)) = 0;
    0x000027e0 addiu a1, a1, 0x47b4      |     a1 += str.administrator;
    0x000027e4 move a0, s0               |     a0 = s0;
    0x000027e8 jalr t9                   |     t9 ();
    0x000027ec lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x000027f0 beqz v0, 0x2dd4           |         goto label_50;
                                         |     }
    0x000027f4 lw s0, -0x7fdc(gp)        |     s0 = *((gp - 8183));
    0x000027f8 lw t9, -0x7eb4(gp)        |     t9 = sym.imp.strcmp;
    0x000027fc lw a0, 0x48(sp)           |     a0 = *(var_48h);
    0x00002800 addiu a1, s0, 0x47cc      |     a1 = s0 + str.operator;
    0x00002804 jalr t9                   |     t9 ();
    0x00002808 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x0000280c beqz v0, 0x2d4c           |         goto label_51;
                                         |     }
    0x00002810 lw s0, -0x7fdc(gp)        |     s0 = *((gp - 8183));
    0x00002814 lw t9, -0x7eb4(gp)        |     t9 = sym.imp.strcmp;
    0x00002818 lw a0, 0x48(sp)           |     a0 = *(var_48h);
    0x0000281c addiu a1, s0, 0x47d8      |     a1 = s0 + str.viewer;
    0x00002820 jalr t9                   |     t9 ();
    0x00002824 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00002828 bnez v0, 0x2cb8           |         goto label_24;
                                         |     }
    0x0000282c lw t9, -0x7f98(gp)        |     t9 = sym.imp.getgrnam;
    0x00002830 addiu a0, s0, 0x47d8      |     a0 = s0 + str.viewer;
    0x00002834 jalr t9                   |     t9 ();
    0x00002838 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000283c move s2, v0               |     s2 = v0;
                                         | label_12:
    0x00002840 lw t9, -0x7ea8(gp)        |     t9 = sym.imp.__strcat_chk
    0x00002844 addiu a2, zero, 0x400     |     a2 = 0x400;
    0x00002848 addiu a1, sp, 0x114       |     a1 = sp + 0x114;
    0x0000284c move a0, s1               |     a0 = s1;
    0x00002850 jalr t9                   |     t9 ();
    0x00002854 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002858 lw t9, -0x7ecc(gp)        |     t9 = sym.imp.free;
    0x0000285c lw a0, 0x48(sp)           |     a0 = *(var_48h);
    0x00002860 jalr t9                   |     t9 ();
    0x00002864 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002868 lw t9, -0x7ecc(gp)        |     t9 = sym.imp.free;
    0x0000286c lw s0, -0x7fd0(gp)        |     s0 = *((gp - 8180));
    0x00002870 lw a0, 0x4c(sp)           |     a0 = *(var_4ch);
    0x00002874 jalr t9                   |     t9 ();
    0x00002878 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000287c move a1, s1               |     a1 = s1;
    0x00002880 lw t9, -0x7f20(gp)        |     t9 = sym.imp.rename;
                                         |     /* str._tmp_uploadfile_XXXXXX */
    0x00002884 addiu a0, s0, 0x5044      |     a0 = s0 + 0x5044;
    0x00002888 jalr t9                   |     t9 ();
    0x0000288c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x00002890 bltz v0, 0x2d68           |         goto label_52;
                                         |     }
                                         | label_13:
    0x00002894 lw t9, -0x7f88(gp)        |     t9 = sym.imp.chmod;
                                         |     if (s2 == 0) {
    0x00002898 beqz s2, 0x2d0c           |         goto label_53;
                                         |     }
    0x0000289c addiu a1, zero, 0x1a0     |     a1 = 0x1a0;
    0x000028a0 move a0, s1               |     a0 = s1;
    0x000028a4 jalr t9                   |     t9 ();
    0x000028a8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x000028ac bltz v0, 0x2dac           |         goto label_54;
                                         |     }
                                         | label_15:
    0x000028b0 lw t9, -0x7ee8(gp)        |     t9 = sym.imp.getuid;
    0x000028b4 jalr t9                   |     t9 ();
    0x000028b8 nop                       |     
    0x000028bc lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x000028c0 bnez v0, 0x2904           |         
    0x000028c4 lw t9, -0x7f40(gp)        |         t9 = sym.imp.chown;
    0x000028c8 lw a2, 8(s2)              |         a2 = *((s2 + 2));
    0x000028cc addiu a1, zero, -1        |         a1 = -1;
    0x000028d0 move a0, s1               |         a0 = s1;
    0x000028d4 jalr t9                   |         t9 ();
    0x000028d8 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 >= 0) {
    0x000028dc bgez v0, 0x2904           |             goto label_9;
                                         |         }
    0x000028e0 lw a3, -0x7fdc(gp)        |         a3 = *((gp - 8183));
    0x000028e4 lw a2, -0x7fdc(gp)        |         a2 = *((gp - 8183));
    0x000028e8 lw t9, -0x7f68(gp)        |         t9 = sym.imp.__syslog_chk;
    0x000028ec addiu a3, a3, 0x4814      |         a3 += str.Error_chmod__:.;
    0x000028f0 addiu a2, a2, 0x3d9c      |         a2 += str._s__m;
    0x000028f4 addiu a1, zero, 1         |         a1 = 1;
    0x000028f8 addiu a0, zero, 3         |         a0 = 3;
    0x000028fc jalr t9                   |         t9 ();
    0x00002900 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
                                         | label_9:
    0x00002904 sw zero, 0x5c(sp)         |     *(var_5ch) = 0;
                                         | label_4:
    0x00002908 lw t9, -0x7eec(gp)        |     t9 = sym.imp.unlink;
                                         |     /* str._tmp_uploadfile_XXXXXX */
    0x0000290c addiu a0, s0, 0x5044      |     a0 = s0 + 0x5044;
    0x00002910 jalr t9                   |     t9 ();
    0x00002914 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 >= 0) {
    0x00002918 bgez v0, 0x2b88           |         goto label_27;
                                         |     }
    0x0000291c lw t9, -0x7f4c(gp)        |     t9 = sym.imp.__errno_location;
    0x00002920 jalr t9                   |     t9 ();
    0x00002924 nop                       |     
    0x00002928 lw v1, (v0)               |     v1 = *(v0);
    0x0000292c addiu v0, zero, 2         |     v0 = 2;
    0x00002930 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v1 == v0) {
    0x00002934 beq v1, v0, 0x2b88        |         goto label_27;
                                         |     }
    0x00002938 lw a3, -0x7fdc(gp)        |     a3 = *((gp - 8183));
    0x0000293c lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
    0x00002940 lw t9, -0x7f68(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00002944 addiu a3, a3, 0x4824      |     a3 += str.Error_unlink__:;
    0x00002948 addiu a2, a2, 0x3d9c      |     a2 += str._s__m;
    0x0000294c addiu a1, zero, 1         |     a1 = 1;
    0x00002950 addiu a0, zero, 3         |     a0 = 3;
    0x00002954 jalr t9                   |     t9 ();
    0x00002958 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000295c b 0x2b88                  |     goto label_27;
                                         | label_31:
    0x00002960 lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
    0x00002964 lw t9, -0x7f68(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00002968 addiu a0, zero, 6         |     a0 = 6;
    0x0000296c addiu a2, a2, 0x465c      |     a2 += str.No_input;
    0x00002970 addiu a1, zero, 1         |     a1 = 1;
    0x00002974 jalr t9                   |     t9 ();
    0x00002978 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000297c lw t9, -0x7f10(gp)        |     t9 = sym.imp.exit;
    0x00002980 move a0, zero             |     a0 = 0;
    0x00002984 jalr t9                   |     t9 ();
                                         | label_35:
    0x00002988 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x0000298c lw t9, -0x7eb0(gp)        |     t9 = sym.imp.strstr;
    0x00002990 addiu a1, a1, 0x4880      |     a1 += str.isposition:_form_data_;
    0x00002994 move a0, s0               |     a0 = s0;
    0x00002998 jalr t9                   |     t9 ();
    0x0000299c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x000029a0 beqz v0, 0x2490           |         goto label_1;
                                         |     }
    0x000029a4 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x000029a8 lw t9, -0x7eb0(gp)        |     t9 = sym.imp.strstr;
    0x000029ac addiu a1, a1, 0x4850      |     a1 += str.filename_;
    0x000029b0 move a0, s0               |     a0 = s0;
    0x000029b4 jalr t9                   |     t9 ();
    0x000029b8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x000029bc beqz v0, 0x2a8c           |         goto label_2;
                                         |     }
    0x000029c0 lw t9, -0x7f24(gp)        |     t9 = sym.imp.strchr;
    0x000029c4 addiu a1, zero, 0x22      |     a1 = 0x22;
    0x000029c8 move a0, v0               |     a0 = v0;
    0x000029cc jalr t9                   |     t9 ();
    0x000029d0 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x000029d4 beqz v0, 0x3108           |         goto label_55;
                                         |     }
    0x000029d8 lb a0, 1(v0)              |     a0 = *((v0 + 1));
    0x000029dc addiu v1, zero, 0x22      |     v1 = 0x22;
    0x000029e0 addiu v0, v0, 1           |     v0++;
    0x000029e4 addiu s3, sp, 0x114       |     s3 = sp + 0x114;
                                         |     if (a0 == v1) {
    0x000029e8 beq a0, v1, 0x2c58        |         goto label_56;
                                         |     }
    0x000029ec move v1, s3               |     v1 = s3;
    0x000029f0 addiu a2, zero, 0x22      |     a2 = 0x22;
    0x000029f4 addiu a1, sp, 0x513       |     a1 = sp + 0x513;
    0x000029f8 b 0x2a04                  |     
                                         |     while (a0 != a2) {
                                         |         if (v1 == a1) {
    0x000029fc beql v1, a1, 0x2b74       |             goto label_57;
                                         |         }
    0x00002a00 addiu v0, zero, -1        |         v0 = -1;
    0x00002a04 addiu v0, v0, 1           |         v0++;
    0x00002a08 addiu v1, v1, 1           |         v1++;
    0x00002a0c sb a0, -1(v1)             |         *((v1 - 1)) = a0;
    0x00002a10 lb a0, (v0)               |         a0 = *(v0);
    0x00002a14 bne a0, a2, 0x29fc        |         
                                         |     }
    0x00002a18 nop                       |     
                                         | label_8:
    0x00002a1c sb zero, (v1)             |     *(v1) = 0;
    0x00002a20 lb v0, 0x114(sp)          |     v0 = *(var_114h);
    0x00002a24 lw t9, -0x7f70(gp)        |     t9 = sym.imp.strrchr;
                                         |     if (v0 == 0) {
    0x00002a28 beqz v0, 0x2b7c           |         goto label_6;
                                         |     }
    0x00002a2c addiu a1, zero, 0x5c      |     a1 = 0x5c;
    0x00002a30 move a0, s3               |     a0 = s3;
    0x00002a34 jalr t9                   |     t9 ();
    0x00002a38 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00002a3c beqz v0, 0x2a58           |         
    0x00002a40 lw t9, -0x7f64(gp)        |         t9 = sym.imp.__strcpy_chk;
    0x00002a44 addiu a2, zero, 0x400     |         a2 = 0x400;
    0x00002a48 addiu a1, v0, 1           |         a1 = v0 + 1;
    0x00002a4c move a0, s3               |         a0 = s3;
    0x00002a50 jalr t9                   |         t9 ();
    0x00002a54 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
    0x00002a58 lw t9, -0x7f70(gp)        |     t9 = sym.imp.strrchr;
    0x00002a5c addiu a1, zero, 0x2f      |     a1 = 0x2f;
    0x00002a60 move a0, s3               |     a0 = s3;
    0x00002a64 jalr t9                   |     t9 ();
    0x00002a68 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00002a6c beqz v0, 0x2afc           |         goto label_58;
                                         |     }
    0x00002a70 lw t9, -0x7f64(gp)        |     t9 = sym.imp.__strcpy_chk;
    0x00002a74 move a0, s3               |     a0 = s3;
    0x00002a78 addiu a2, zero, 0x400     |     a2 = 0x400;
    0x00002a7c addiu a1, v0, 1           |     a1 = v0 + 1;
    0x00002a80 jalr t9                   |     t9 ();
    0x00002a84 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002a88 addiu s3, zero, 1         |     s3 = 1;
                                         | label_2:
    0x00002a8c lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00002a90 lw t9, -0x7eb0(gp)        |     t9 = sym.imp.strstr;
    0x00002a94 addiu a1, a1, 0x4870      |     a1 += str.name_realm_;
    0x00002a98 move a0, s0               |     a0 = s0;
    0x00002a9c jalr t9                   |     t9 ();
    0x00002aa0 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00002aa4 beqz v0, 0x2ac0           |         
    0x00002aa8 lw t9, 0x38(sp)           |         t9 = *(var_38h);
    0x00002aac jalr t9                   |         t9 ();
    0x00002ab0 nop                       |         
    0x00002ab4 sw v0, 0x48(sp)           |         *(var_48h) = v0;
    0x00002ab8 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x00002abc beqz v0, 0x2af0           |             goto label_59;
                                         |         }
                                         |     }
    0x00002ac0 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00002ac4 lw t9, -0x7eb0(gp)        |     t9 = sym.imp.strstr;
    0x00002ac8 addiu a1, a1, 0x485c      |     a1 += str.name_directory_;
    0x00002acc move a0, s0               |     a0 = s0;
    0x00002ad0 jalr t9                   |     t9 ();
    0x00002ad4 lw t9, 0x38(sp)           |     t9 = *(var_38h);
                                         |     if (v0 == 0) {
    0x00002ad8 beqz v0, 0x2490           |         goto label_1;
                                         |     }
    0x00002adc jalr t9                   |     t9 ();
    0x00002ae0 nop                       |     
    0x00002ae4 sw v0, 0x4c(sp)           |     *(var_4ch) = v0;
    0x00002ae8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00002aec bnez v0, 0x2490           |         goto label_1;
                                         |     }
                                         | label_59:
    0x00002af0 addiu v0, zero, -1        |     v0 = -1;
    0x00002af4 sw v0, 0x5c(sp)           |     *(var_5ch) = v0;
    0x00002af8 b 0x2b7c                  |     goto label_6;
                                         | label_58:
    0x00002afc addiu s3, zero, 1         |     s3 = 1;
    0x00002b00 b 0x2a8c                  |     goto label_2;
                                         | label_36:
    0x00002b04 lw t9, -0x7f3c(gp)        |     t9 = sym.imp.mkstemp;
                                         |     /* str._tmp_uploadfile_XXXXXX */
    0x00002b08 addiu a0, s0, 0x5044      |     a0 = s0 + 0x5044;
    0x00002b0c jalr t9                   |     t9 ();
    0x00002b10 sw v0, 0x30(sp)           |     *(var_30h) = v0;
    0x00002b14 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 >= 0) {
    0x00002b18 bgez v0, 0x2624           |         goto label_3;
                                         |     }
    0x00002b1c lw a3, -0x7fdc(gp)        |     a3 = *((gp - 8183));
    0x00002b20 lw t9, -0x7f68(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00002b24 addiu a3, a3, 0x467c      |     a3 += str.Error_mkstemp__:;
                                         | label_14:
    0x00002b28 lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
    0x00002b2c addiu a1, zero, 1         |     a1 = 1;
    0x00002b30 addiu a2, a2, 0x3d9c      |     a2 += str._s__m;
    0x00002b34 addiu a0, zero, 3         |     a0 = 3;
    0x00002b38 jalr t9                   |     t9 ();
    0x00002b3c addiu v0, zero, -1        |     v0 = -1;
    0x00002b40 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002b44 sw v0, 0x5c(sp)           |     *(var_5ch) = v0;
    0x00002b48 b 0x2908                  |     goto label_4;
                                         | label_42:
    0x00002b4c lw a3, -0x7fdc(gp)        |     a3 = *((gp - 8183));
    0x00002b50 lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
    0x00002b54 lw t9, -0x7f68(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00002b58 addiu a3, a3, 0x4690      |     a3 += str.Error_fstatfs__:;
    0x00002b5c addiu a2, a2, 0x3d9c      |     a2 += str._s__m;
    0x00002b60 addiu a1, zero, 1         |     a1 = 1;
    0x00002b64 addiu a0, zero, 6         |     a0 = 6;
    0x00002b68 jalr t9                   |     t9 ();
    0x00002b6c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002b70 b 0x26a8                  |     goto label_5;
                                         | label_57:
    0x00002b74 sb zero, 0x513(sp)        |     *(var_513h) = 0;
    0x00002b78 sw v0, 0x5c(sp)           |     *(var_5ch) = v0;
                                         | label_6:
    0x00002b7c lw v0, 0x944(sp)          |     v0 = *(arg_944h);
    0x00002b80 lw s0, -0x7fd0(gp)        |     s0 = *((gp - 8180));
                                         |     if (v0 == 0) {
    0x00002b84 beqz v0, 0x2908           |         goto label_4;
                                         |     }
                                         |     do {
                                         | label_27:
    0x00002b88 lw s0, 0x60(sp)           |         s0 = *(var_60h);
    0x00002b8c lw t9, -0x7f50(gp)        |         t9 = sym.imp.strncpy;
    0x00002b90 move a0, s0               |         a0 = s0;
    0x00002b94 addiu a2, zero, 0x3ff     |         a2 = 0x3ff;
    0x00002b98 move a1, s1               |         a1 = s1;
    0x00002b9c jalr t9                   |         t9 ();
    0x00002ba0 lw v0, 0x64(sp)           |         v0 = *(var_64h);
    0x00002ba4 lw a0, 0x914(sp)          |         a0 = *(var_914h);
    0x00002ba8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00002bac lw v1, (v0)               |         v1 = *(v0);
    0x00002bb0 sb zero, 0x3ff(s0)        |         *((s0 + 1023)) = 0;
    0x00002bb4 lw v0, 0x5c(sp)           |         v0 = *(var_5ch);
                                         |         if (a0 != v1) {
    0x00002bb8 bne a0, v1, 0x32cc        |             goto label_60;
                                         |         }
    0x00002bbc lw ra, 0x93c(sp)          |         ra = *(var_93ch);
    0x00002bc0 lw fp, 0x938(sp)          |         fp = *(var_938h);
    0x00002bc4 lw s7, 0x934(sp)          |         s7 = *(var_934h);
    0x00002bc8 lw s6, 0x930(sp)          |         s6 = *(var_930h);
    0x00002bcc lw s5, 0x92c(sp)          |         s5 = *(var_92ch);
    0x00002bd0 lw s4, 0x928(sp)          |         s4 = *(var_928h);
    0x00002bd4 lw s3, 0x924(sp)          |         s3 = *(var_924h);
    0x00002bd8 lw s2, 0x920(sp)          |         s2 = *(var_920h);
    0x00002bdc lw s1, 0x91c(sp)          |         s1 = *(var_91ch);
    0x00002be0 lw s0, 0x918(sp)          |         s0 = *(var_918h);
    0x00002be4 addiu sp, sp, 0x940       |         
    0x00002be8 jr ra                     |         return v0;
                                         | label_48:
    0x00002bec lw a1, -0x7fd0(gp)        |         a1 = *((gp - 8180));
    0x00002bf0 lw t9, -0x7f64(gp)        |         t9 = sym.imp.__strcpy_chk;
    0x00002bf4 addiu a2, zero, 0x400     |         a2 = 0x400;
                                         |         /* str._var_cache_upload_uploadfile_XXXXXX */
    0x00002bf8 addiu a1, a1, 0x5020      |         a1 += 0x5020;
    0x00002bfc move a0, s1               |         a0 = s1;
    0x00002c00 jalr t9                   |         t9 ();
    0x00002c04 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00002c08 addiu a1, zero, 0x180     |         a1 = 0x180;
    0x00002c0c lw t9, -0x7f88(gp)        |         t9 = sym.imp.chmod;
    0x00002c10 move a0, s1               |         a0 = s1;
    0x00002c14 jalr t9                   |         t9 ();
    0x00002c18 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00002c1c bgez v0, 0x2b88           |         
                                         |     } while (v0 >= 0);
    0x00002c20 lw a3, -0x7fdc(gp)        |     a3 = *((gp - 8183));
                                         | label_10:
    0x00002c24 lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
    0x00002c28 lw t9, -0x7f68(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00002c2c addiu a3, a3, 0x4814      |     a3 += str.Error_chmod__:.;
    0x00002c30 addiu a2, a2, 0x3d9c      |     a2 += str._s__m;
    0x00002c34 addiu a1, zero, 1         |     a1 = 1;
    0x00002c38 addiu a0, zero, 3         |     a0 = 3;
    0x00002c3c jalr t9                   |     t9 ();
    0x00002c40 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002c44 b 0x2b7c                  |     goto label_6;
                                         | label_39:
    0x00002c48 move a0, s5               |     a0 = s5;
    0x00002c4c jalr t9                   |     t9 ();
    0x00002c50 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002c54 b 0x25e4                  |     goto label_7;
                                         | label_56:
    0x00002c58 move v1, s3               |     v1 = s3;
    0x00002c5c b 0x2a1c                  |     goto label_8;
                                         | label_49:
    0x00002c60 lw v0, 0x4c(sp)           |     v0 = *(var_4ch);
    0x00002c64 lui v0, 0x6374            |     v0 = 0x63740000;
                                         |     if (v0 == 0) {
    0x00002c68 beqz v0, 0x2d2c           |         goto label_61;
                                         |     }
    0x00002c6c addiu v0, v0, 0x652f      |     v0 += 0x652f;
    0x00002c70 sw v0, 0x514(sp)          |     *(var_514h) = v0;
    0x00002c74 lw v0, 0x4c(sp)           |     v0 = *(var_4ch);
    0x00002c78 sw v0, 0x68(sp)           |     *(var_68h) = v0;
    0x00002c7c addiu v0, zero, 0x2f      |     v0 = 0x2f;
    0x00002c80 sh v0, 4(s1)              |     *((s1 + 2)) = v0;
                                         | label_11:
    0x00002c84 lw t9, -0x7f28(gp)        |     t9 = sym.imp.strlen;
    0x00002c88 move a0, s1               |     a0 = s1;
    0x00002c8c jalr t9                   |     t9 ();
    0x00002c90 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002c94 lw a1, 0x68(sp)           |     a1 = *(var_68h);
    0x00002c98 addiu a2, zero, 0x400     |     a2 = 0x400;
    0x00002c9c lw t9, -0x7f2c(gp)        |     t9 = sym.imp.__stpcpy_chk;
    0x00002ca0 addu a0, s1, v0           |     a0 = s1 + v0;
    0x00002ca4 jalr t9                   |     t9 ();
    0x00002ca8 addiu v1, zero, 0x2f      |     v1 = 0x2f;
    0x00002cac lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002cb0 sb v1, (v0)               |     *(v0) = v1;
    0x00002cb4 sb zero, 1(v0)            |     *((v0 + 1)) = 0;
                                         | label_24:
    0x00002cb8 lw t9, -0x7ea8(gp)        |     t9 = sym.imp.__strcat_chk
    0x00002cbc addiu a2, zero, 0x400     |     a2 = 0x400;
    0x00002cc0 addiu a1, sp, 0x114       |     a1 = sp + 0x114;
    0x00002cc4 move a0, s1               |     a0 = s1;
    0x00002cc8 jalr t9                   |     t9 ();
    0x00002ccc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002cd0 lw t9, -0x7ecc(gp)        |     t9 = sym.imp.free;
    0x00002cd4 lw a0, 0x48(sp)           |     a0 = *(var_48h);
    0x00002cd8 jalr t9                   |     t9 ();
    0x00002cdc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002ce0 lw t9, -0x7ecc(gp)        |     t9 = sym.imp.free;
    0x00002ce4 lw s0, -0x7fd0(gp)        |     s0 = *((gp - 8180));
    0x00002ce8 lw a0, 0x4c(sp)           |     a0 = *(var_4ch);
    0x00002cec jalr t9                   |     t9 ();
    0x00002cf0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002cf4 move a1, s1               |     a1 = s1;
    0x00002cf8 lw t9, -0x7f20(gp)        |     t9 = sym.imp.rename;
                                         |     /* str._tmp_uploadfile_XXXXXX */
    0x00002cfc addiu a0, s0, 0x5044      |     a0 = s0 + 0x5044;
    0x00002d00 jalr t9                   |     t9 ();
    0x00002d04 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x00002d08 bltz v0, 0x2d64           |         goto label_62;
                                         |     }
                                         | label_53:
    0x00002d0c lw t9, -0x7f88(gp)        |     t9 = sym.imp.chmod;
    0x00002d10 addiu a1, zero, 0x1a4     |     a1 = 0x1a4;
    0x00002d14 move a0, s1               |     a0 = s1;
    0x00002d18 jalr t9                   |     t9 ();
    0x00002d1c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 >= 0) {
    0x00002d20 bgez v0, 0x2904           |         goto label_9;
                                         |     }
    0x00002d24 lw a3, -0x7fdc(gp)        |     a3 = *((gp - 8183));
    0x00002d28 b 0x2c24                  |     goto label_10;
                                         | label_61:
    0x00002d2c lw v0, 0x68(sp)           |     v0 = *(var_68h);
    0x00002d30 lui v0, 0x6374            |     v0 = 0x63740000;
                                         |     if (v0 == 0) {
    0x00002d34 beqz v0, 0x3148           |         goto label_63;
                                         |     }
    0x00002d38 addiu v0, v0, 0x652f      |     v0 += 0x652f;
    0x00002d3c sw v0, 0x514(sp)          |     *(var_514h) = v0;
    0x00002d40 addiu v0, zero, 0x2f      |     v0 = 0x2f;
    0x00002d44 sh v0, 4(s1)              |     *((s1 + 2)) = v0;
    0x00002d48 b 0x2c84                  |     goto label_11;
                                         | label_51:
    0x00002d4c lw t9, -0x7f98(gp)        |     t9 = sym.imp.getgrnam;
    0x00002d50 addiu a0, s0, 0x47cc      |     a0 = s0 + str.operator;
    0x00002d54 jalr t9                   |     t9 ();
    0x00002d58 move s2, v0               |     s2 = v0;
    0x00002d5c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002d60 b 0x2840                  |     goto label_12;
                                         | label_62:
    0x00002d64 move s2, zero             |     s2 = 0;
                                         | label_52:
    0x00002d68 lw t9, -0x7f4c(gp)        |     t9 = sym.imp.__errno_location;
    0x00002d6c jalr t9                   |     t9 ();
    0x00002d70 nop                       |     
    0x00002d74 lw v1, (v0)               |     v1 = *(v0);
    0x00002d78 addiu v0, zero, 0x12      |     v0 = 0x12;
    0x00002d7c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v1 != v0) {
    0x00002d80 bne v1, v0, 0x3290        |         goto label_64;
                                         |     }
    0x00002d84 lw t9, -0x7fc0(gp)        |     t9 = sym.copy;
    0x00002d88 move a1, s1               |     a1 = s1;
                                         |     /* str._tmp_uploadfile_XXXXXX */
    0x00002d8c addiu a0, s0, 0x5044      |     a0 = s0 + 0x5044;
    0x00002d90 bal 0x1e4c                |     sym_copy ();
    0x00002d94 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00002d98 beqz v0, 0x2894           |         goto label_13;
                                         |     }
    0x00002d9c lw a3, -0x7fdc(gp)        |     a3 = *((gp - 8183));
    0x00002da0 lw t9, -0x7f68(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00002da4 addiu a3, a3, 0x4804      |     a3 += str.Error_copy__:;
    0x00002da8 b 0x2b28                  |     goto label_14;
                                         | label_54:
    0x00002dac lw a3, -0x7fdc(gp)        |     a3 = *((gp - 8183));
    0x00002db0 lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
    0x00002db4 lw t9, -0x7f68(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00002db8 addiu a3, a3, 0x4814      |     a3 += str.Error_chmod__:.;
    0x00002dbc addiu a2, a2, 0x3d9c      |     a2 += str._s__m;
    0x00002dc0 addiu a1, zero, 1         |     a1 = 1;
    0x00002dc4 addiu a0, zero, 3         |     a0 = 3;
    0x00002dc8 jalr t9                   |     t9 ();
    0x00002dcc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002dd0 b 0x28b0                  |     goto label_15;
                                         | label_50:
    0x00002dd4 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00002dd8 lw t9, -0x7f98(gp)        |     t9 = sym.imp.getgrnam;
    0x00002ddc addiu a0, a0, 0x47c4      |     a0 += str.admin;
    0x00002de0 jalr t9                   |     t9 ();
    0x00002de4 move s2, v0               |     s2 = v0;
    0x00002de8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002dec b 0x2840                  |     goto label_12;
                                         | label_43:
    0x00002df0 lw v0, 0x2c(sp)           |     v0 = *(var_2ch);
    0x00002df4 move a2, s7               |     a2 = s7;
    0x00002df8 addiu a0, zero, 0xd       |     a0 = 0xd;
    0x00002dfc lw s5, 0x51d0(v0)         |     s5 = *((v0 + 5236));
    0x00002e00 addiu v0, fp, 1           |     v0 = fp + 1;
    0x00002e04 slt v1, v0, s5            |     v1 = (v0 < s5) ? 1 : 0;
    0x00002e08 addiu a1, zero, 0xa       |     a1 = 0xa;
                                         |     if (v1 == 0) {
    0x00002e0c beqz v1, 0x307c           |         goto label_65;
                                         |     }
                                         |     if (a2 == 0) {
                                         | label_20:
    0x00002e10 beql a2, zero, 0x3080     |         goto label_66;
                                         |     }
    0x00002e14 lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
    0x00002e18 lb v1, (a2)               |     v1 = *(a2);
                                         |     if (v1 == a0) {
    0x00002e1c beql v1, a0, 0x306c       |         goto label_67;
                                         |     }
    0x00002e20 move fp, v0               |     fp = v0;
    0x00002e24 lw t9, -0x7f54(gp)        |     t9 = sym.imp.fstatfs;
                                         |     if (v1 == a1) {
    0x00002e28 beq v1, a1, 0x3068        |         goto label_68;
                                         |     }
    0x00002e2c lw a0, 0x30(sp)           |     a0 = *(var_30h);
    0x00002e30 move a1, s0               |     a1 = s0;
    0x00002e34 sw fp, 0x51d4(s2)         |     *((s2 + 5237)) = fp;
    0x00002e38 jalr t9                   |     t9 ();
    0x00002e3c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x00002e40 bltz v0, 0x30c8           |         goto label_69;
                                         |     }
    0x00002e44 lw a0, 0x88(sp)           |     a0 = *(var_88h);
    0x00002e48 lw t9, 0x54(sp)           |     t9 = *(var_54h);
    0x00002e4c addu a0, s3, a0           |     a0 = s3 + a0;
    0x00002e50 jalr t9                   |     t9 ();
    0x00002e54 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         | label_22:
    0x00002e58 addu v0, s4, s6           |     v0 = s4 + s6;
    0x00002e5c sw v0, 0x34(sp)           |     *(var_34h) = v0;
    0x00002e60 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00002e64 lw v1, 0x28(sp)           |     v1 = *(var_28h);
    0x00002e68 addiu v0, v0, 0x3d9c      |     v0 += str._s__m;
    0x00002e6c sw v0, 0x7c(sp)           |     *(var_7ch) = v0;
    0x00002e70 lw v0, 0x34(sp)           |     v0 = *(var_34h);
    0x00002e74 subu s7, s5, s3           |     __asm ("subu s7, s5, s3");
    0x00002e78 sw s1, 0x58(sp)           |     *(var_58h) = s1;
    0x00002e7c lb s0, 1(v0)              |     s0 = *((v0 + 1));
    0x00002e80 slt v0, s7, fp            |     v0 = (s7 < fp) ? 1 : 0;
    0x00002e84 xori s0, s0, 0xd          |     s0 ^= 0xd;
    0x00002e88 sltiu s0, s0, 1           |     s0 = (s0 < 1) ? 1 : 0;
    0x00002e8c lw s1, 0x51dc(v1)         |     s1 = *((v1 + 5239));
                                         |     if (v0 != 0) {
    0x00002e90 bnez v0, 0x2f28           |         goto label_70;
                                         |     }
                                         | label_16:
    0x00002e94 addu s5, s1, fp           |     s5 = s1 + fp;
                                         | label_17:
    0x00002e98 subu s0, s3, s0           |     __asm ("subu s0, s3, s0");
    0x00002e9c move s6, fp               |     s6 = fp;
    0x00002ea0 b 0x2eb4                  |     
                                         |     while (v0 != 0) {
    0x00002ea4 addiu s6, s6, 1           |         s6++;
    0x00002ea8 slt v0, s7, s6            |         v0 = (s7 < s6) ? 1 : 0;
    0x00002eac sw s6, 0x51d4(s2)         |         *((s2 + 5237)) = s6;
                                         |         if (v0 != 0) {
    0x00002eb0 bnez v0, 0x2f8c           |             goto label_71;
                                         |         }
    0x00002eb4 lw t9, -0x7ee0(gp)        |         t9 = sym.imp.memcmp;
    0x00002eb8 move a2, s0               |         a2 = s0;
    0x00002ebc move a1, s4               |         a1 = s4;
    0x00002ec0 addu a0, s1, s6           |         a0 = s1 + s6;
    0x00002ec4 jalr t9                   |         t9 ();
    0x00002ec8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00002ecc bnez v0, 0x2ea4           |         
                                         |     }
    0x00002ed0 subu a2, s6, fp           |     __asm ("subu a2, s6, fp");
                                         |     if (fp == s6) {
    0x00002ed4 beq fp, s6, 0x3274        |         goto label_72;
                                         |     }
    0x00002ed8 lw t9, -0x7ecc(gp)        |     t9 = sym.imp.free;
                                         |     if (a2 <= 0) {
    0x00002edc blez a2, 0x320c           |         goto label_73;
                                         |     }
    0x00002ee0 lw t9, -0x7f38(gp)        |     t9 = sym.imp.write;
                                         | label_18:
    0x00002ee4 lw a0, 0x30(sp)           |     a0 = *(var_30h);
    0x00002ee8 move a1, s5               |     a1 = s5;
    0x00002eec jalr t9                   |     t9 ();
    0x00002ef0 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x00002ef4 bltz v0, 0x30a8           |         goto label_74;
                                         |     }
                                         | label_21:
    0x00002ef8 lw v0, 0x2c(sp)           |     v0 = *(var_2ch);
    0x00002efc lw fp, 0x51d4(s2)         |     fp = *((s2 + 5237));
    0x00002f00 lw v1, 0x28(sp)           |     v1 = *(var_28h);
    0x00002f04 lw s5, 0x51d0(v0)         |     s5 = *((v0 + 5236));
    0x00002f08 lw v0, 0x34(sp)           |     v0 = *(var_34h);
    0x00002f0c subu s7, s5, s3           |     __asm ("subu s7, s5, s3");
    0x00002f10 lw s1, 0x51dc(v1)         |     s1 = *((v1 + 5239));
    0x00002f14 lb s0, 1(v0)              |     s0 = *((v0 + 1));
    0x00002f18 slt v0, s7, fp            |     v0 = (s7 < fp) ? 1 : 0;
    0x00002f1c xori s0, s0, 0xd          |     s0 ^= 0xd;
    0x00002f20 sltiu s0, s0, 1           |     s0 = (s0 < 1) ? 1 : 0;
                                         |     if (v0 == 0) {
    0x00002f24 beqz v0, 0x2e94           |         goto label_16;
                                         |     }
                                         | label_70:
    0x00002f28 lw t9, -0x7ed4(gp)        |     t9 = sym.imp.memcpy;
    0x00002f2c addu a1, s1, s7           |     a1 = s1 + s7;
    0x00002f30 move a2, s3               |     a2 = s3;
    0x00002f34 move a0, s1               |     a0 = s1;
    0x00002f38 jalr t9                   |     t9 ();
    0x00002f3c lw v0, 0x44(sp)           |     v0 = *(var_44h);
    0x00002f40 lw t9, 0x40(sp)           |     t9 = *(var_40h);
    0x00002f44 addu a1, s1, s3           |     a1 = s1 + s3;
    0x00002f48 lw a2, 0x51d8(v0)         |     a2 = *((v0 + 5238));
    0x00002f4c move a0, zero             |     a0 = 0;
    0x00002f50 subu a2, a2, s3           |     __asm ("subu a2, a2, s3");
    0x00002f54 jalr t9                   |     t9 ();
    0x00002f58 lw v1, 0x2c(sp)           |     v1 = *(var_2ch);
    0x00002f5c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002f60 move s7, v0               |     s7 = v0;
    0x00002f64 sw v0, 0x51d0(v1)         |     *((v1 + 5236)) = v0;
    0x00002f68 sw zero, 0x51d4(s2)       |     *((s2 + 5237)) = 0;
                                         |     if (v0 < 0) {
    0x00002f6c bltz v0, 0x3208           |         goto label_75;
                                         |     }
    0x00002f70 lw v0, 0x28(sp)           |     v0 = *(var_28h);
    0x00002f74 move fp, zero             |     fp = 0;
    0x00002f78 lw s1, 0x51dc(v0)         |     s1 = *((v0 + 5239));
    0x00002f7c addu v0, s7, s3           |     v0 = s7 + s3;
    0x00002f80 sw v0, 0x51d0(v1)         |     *((v1 + 5236)) = v0;
    0x00002f84 move s5, s1               |     s5 = s1;
    0x00002f88 b 0x2e98                  |     goto label_17;
                                         | label_71:
    0x00002f8c subu a2, s7, fp           |     __asm ("subu a2, s7, fp");
                                         |     if (fp == s6) {
    0x00002f90 beq fp, s6, 0x2fc8        |         goto label_76;
                                         |     }
    0x00002f94 lw t9, -0x7f38(gp)        |     t9 = sym.imp.write;
                                         |     if (a2 > 0) {
    0x00002f98 bgtz a2, 0x2ee4           |         goto label_18;
                                         |     }
    0x00002f9c lw t9, -0x7ecc(gp)        |     t9 = sym.imp.free;
    0x00002fa0 sw a2, 0x34(sp)           |     *(var_34h) = a2;
    0x00002fa4 move a0, s4               |     a0 = s4;
    0x00002fa8 move s7, s1               |     s7 = s1;
    0x00002fac lw s1, 0x58(sp)           |     s1 = *(var_58h);
    0x00002fb0 jalr t9                   |     t9 ();
    0x00002fb4 lw a2, 0x34(sp)           |     a2 = *(var_34h);
    0x00002fb8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (a2 != 0) {
    0x00002fbc bnez a2, 0x3038           |         goto label_23;
                                         |     }
    0x00002fc0 lw s3, 0x2c(sp)           |     s3 = *(var_2ch);
    0x00002fc4 b 0x2fe4                  |     goto label_77;
                                         | label_76:
    0x00002fc8 move s7, s1               |     s7 = s1;
    0x00002fcc lw s1, 0x58(sp)           |     s1 = *(var_58h);
                                         | label_29:
    0x00002fd0 lw t9, -0x7ecc(gp)        |     t9 = sym.imp.free;
    0x00002fd4 move a0, s4               |     a0 = s4;
    0x00002fd8 jalr t9                   |     t9 ();
    0x00002fdc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002fe0 lw s3, 0x2c(sp)           |     s3 = *(var_2ch);
                                         | label_77:
    0x00002fe4 lw t9, -0x7ec8(gp)        |     t9 = sym.imp.memmove;
    0x00002fe8 addu a1, s7, s6           |     a1 = s7 + s6;
    0x00002fec lw s0, 0x51d0(s3)         |     s0 = *((s3 + 5236));
    0x00002ff0 move a0, s7               |     a0 = s7;
    0x00002ff4 subu s0, s0, s6           |     __asm ("subu s0, s0, s6");
    0x00002ff8 move a2, s0               |     a2 = s0;
    0x00002ffc jalr t9                   |     t9 ();
    0x00003000 lw v0, 0x44(sp)           |     v0 = *(var_44h);
    0x00003004 lw t9, 0x40(sp)           |     t9 = *(var_40h);
    0x00003008 addu a1, s7, s0           |     a1 = s7 + s0;
    0x0000300c lw a2, 0x51d8(v0)         |     a2 = *((v0 + 5238));
    0x00003010 move a0, zero             |     a0 = 0;
    0x00003014 subu a2, a2, s0           |     __asm ("subu a2, a2, s0");
    0x00003018 jalr t9                   |     t9 ();
    0x0000301c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x00003020 bltz v0, 0x30fc           |         goto label_78;
                                         |     }
    0x00003024 addu s0, s0, v0           |     s0 += v0;
    0x00003028 lw v0, 0x2c(sp)           |     v0 = *(var_2ch);
    0x0000302c sw zero, 0x51d4(s2)       |     *((s2 + 5237)) = 0;
    0x00003030 sw s0, 0x51d0(v0)         |     *((v0 + 5236)) = s0;
                                         |     if (s0 >= 0) {
    0x00003034 bgez s0, 0x26ec           |         goto label_19;
                                         |     }
                                         | label_23:
    0x00003038 lw a3, -0x7fdc(gp)        |     a3 = *((gp - 8183));
    0x0000303c lw t9, -0x7f68(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00003040 addiu a3, a3, 0x46b4      |     a3 += str.Error_read__:;
                                         | label_25:
    0x00003044 lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
    0x00003048 addiu a1, zero, 1         |     a1 = 1;
    0x0000304c addiu a2, a2, 0x3d9c      |     a2 += str._s__m;
    0x00003050 addiu a0, zero, 3         |     a0 = 3;
    0x00003054 jalr t9                   |     t9 ();
    0x00003058 addiu v0, zero, -1        |     v0 = -1;
    0x0000305c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00003060 sw v0, 0x5c(sp)           |     *(var_5ch) = v0;
    0x00003064 b 0x2b7c                  |     goto label_6;
                                         | label_68:
    0x00003068 move fp, v0               |     fp = v0;
                                         | label_67:
    0x0000306c addiu v0, fp, 1           |     v0 = fp + 1;
    0x00003070 slt v1, v0, s5            |     v1 = (v0 < s5) ? 1 : 0;
    0x00003074 addiu a2, a2, 1           |     a2++;
                                         |     if (v1 != 0) {
    0x00003078 bnez v1, 0x2e10           |         goto label_20;
                                         |     }
                                         | label_65:
    0x0000307c lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
                                         | label_66:
    0x00003080 lw t9, -0x7f68(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00003084 sw v0, 0x51d4(s2)         |     *((s2 + 5237)) = v0;
    0x00003088 addiu a2, a2, 0x4834      |     a2 += str.Error_bufread__:;
                                         |     do {
    0x0000308c addiu a1, zero, 1         |         a1 = 1;
    0x00003090 addiu a0, zero, 3         |         a0 = 3;
    0x00003094 jalr t9                   |         t9 ();
    0x00003098 addiu v0, zero, -1        |         v0 = -1;
    0x0000309c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000030a0 sw v0, 0x5c(sp)           |         *(var_5ch) = v0;
    0x000030a4 b 0x2b7c                  |         goto label_6;
                                         | label_74:
    0x000030a8 lw t9, -0x7f68(gp)        |         t9 = sym.imp.__syslog_chk;
    0x000030ac lw a3, 0x78(sp)           |         a3 = *(var_78h);
    0x000030b0 lw a2, 0x7c(sp)           |         a2 = *(var_7ch);
    0x000030b4 addiu a1, zero, 1         |         a1 = 1;
    0x000030b8 addiu a0, zero, 3         |         a0 = 3;
    0x000030bc jalr t9                   |         t9 ();
    0x000030c0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000030c4 b 0x2ef8                  |         goto label_21;
                                         | label_69:
    0x000030c8 lw a3, -0x7fdc(gp)        |         a3 = *((gp - 8183));
    0x000030cc lw a2, -0x7fdc(gp)        |         a2 = *((gp - 8183));
    0x000030d0 lw t9, -0x7f68(gp)        |         t9 = sym.imp.__syslog_chk;
    0x000030d4 addiu a3, a3, 0x4690      |         a3 += str.Error_fstatfs__:;
    0x000030d8 addiu a2, a2, 0x3d9c      |         a2 += str._s__m;
    0x000030dc addiu a1, zero, 1         |         a1 = 1;
    0x000030e0 addiu a0, zero, 6         |         a0 = 6;
    0x000030e4 jalr t9                   |         t9 ();
    0x000030e8 lw v0, 0x2c(sp)           |         v0 = *(var_2ch);
    0x000030ec lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000030f0 lw fp, 0x51d4(s2)         |         fp = *((s2 + 5237));
    0x000030f4 lw s5, 0x51d0(v0)         |         s5 = *((v0 + 5236));
    0x000030f8 b 0x2e58                  |         goto label_22;
                                         | label_78:
    0x000030fc sw v0, 0x51d0(s3)         |         *((s3 + 5236)) = v0;
    0x00003100 sw zero, 0x51d4(s2)       |         *((s2 + 5237)) = 0;
    0x00003104 b 0x3038                  |         goto label_23;
                                         | label_55:
    0x00003108 addiu v0, zero, -1        |         v0 = -1;
    0x0000310c sb zero, 0x114(sp)        |         *(var_114h) = 0;
    0x00003110 sw v0, 0x5c(sp)           |         *(var_5ch) = v0;
    0x00003114 b 0x2b7c                  |         goto label_6;
                                         | label_45:
    0x00003118 lw a3, 0x48(sp)           |         a3 = *(var_48h);
    0x0000311c lw t9, -0x7f68(gp)        |         t9 = sym.imp.__syslog_chk;
                                         |         if (a3 == 0) {
    0x00003120 beqz a3, 0x31e4           |             goto label_79;
                                         |         }
    0x00003124 lw a2, -0x7fdc(gp)        |         a2 = *((gp - 8183));
    0x00003128 addiu a2, a2, 0x46d4      |         a2 += str.Realm_token_contains_an_illegal_value:_realm_s;
                                         | label_26:
    0x0000312c addiu a1, zero, 1         |         a1 = 1;
    0x00003130 addiu a0, zero, 4         |         a0 = 4;
    0x00003134 jalr t9                   |         t9 ();
    0x00003138 addiu v0, zero, -1        |         v0 = -1;
    0x0000313c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00003140 sw v0, 0x5c(sp)           |         *(var_5ch) = v0;
    0x00003144 b 0x2b7c                  |         goto label_6;
                                         | label_63:
    0x00003148 lui v0, 0x706d            |         v0 = 0x706d742f;
    0x0000314c addiu v0, v0, 0x742f      |         
    0x00003150 sw v0, 0x514(sp)          |         *(var_514h) = v0;
    0x00003154 addiu v0, zero, 0x2f      |         v0 = 0x2f;
    0x00003158 sh v0, 4(s1)              |         *((s1 + 2)) = v0;
    0x0000315c b 0x2cb8                  |         goto label_24;
                                         | label_30:
    0x00003160 lw a2, -0x7fdc(gp)        |         a2 = *((gp - 8183));
    0x00003164 lw t9, -0x7f68(gp)        |         t9 = sym.imp.__syslog_chk;
    0x00003168 addiu a2, a2, 0x464c      |         a2 += str.Out_of_memory:;
                                         | label_28:
    0x0000316c addiu a1, zero, 1         |         a1 = 1;
    0x00003170 addiu a0, zero, 3         |         a0 = 3;
    0x00003174 jalr t9                   |         t9 ();
    0x00003178 addiu v0, zero, -1        |         v0 = -1;
    0x0000317c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00003180 sw v0, 0x5c(sp)           |         *(var_5ch) = v0;
    0x00003184 addiu s1, sp, 0x514       |         s1 = sp + 0x514;
    0x00003188 b 0x2b7c                  |         goto label_6;
                                         | label_41:
    0x0000318c lw a2, -0x7fdc(gp)        |         a2 = *((gp - 8183));
    0x00003190 lw t9, -0x7f68(gp)        |         t9 = sym.imp.__syslog_chk;
    0x00003194 addiu a2, a2, 0x464c      |         a2 += str.Out_of_memory:;
    0x00003198 b 0x308c                  |         
                                         |     } while (1);
                                         | label_44:
    0x0000319c lw a3, -0x7fdc(gp)        |     a3 = *((gp - 8183));
    0x000031a0 lw t9, -0x7f68(gp)        |     t9 = sym.imp.__syslog_chk;
    0x000031a4 addiu a3, a3, 0x46c4      |     a3 += str.Error_close__:;
    0x000031a8 b 0x3044                  |     goto label_25;
                                         | label_33:
    0x000031ac lw a3, -0x7fdc(gp)        |     a3 = *((gp - 8183));
    0x000031b0 lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
    0x000031b4 lw t9, -0x7f68(gp)        |     t9 = sym.imp.__syslog_chk;
    0x000031b8 sw s0, 0x10(sp)           |     *(var_10h) = s0;
    0x000031bc addiu a3, a3, 0x45e0      |     a3 += str.Error_not_recognized:;
    0x000031c0 addiu a2, a2, 0x45f8      |     a2 += str._s___s_;
    0x000031c4 addiu a1, zero, 1         |     a1 = 1;
    0x000031c8 addiu a0, zero, 3         |     a0 = 3;
    0x000031cc jalr t9                   |     t9 ();
    0x000031d0 addiu v0, zero, -1        |     v0 = -1;
    0x000031d4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000031d8 sw v0, 0x5c(sp)           |     *(var_5ch) = v0;
    0x000031dc addiu s1, sp, 0x514       |     s1 = sp + 0x514;
    0x000031e0 b 0x2b7c                  |     goto label_6;
                                         | label_79:
    0x000031e4 lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
    0x000031e8 addiu a2, a2, 0x4704      |     a2 += str.Realm_token_was_expected_but_its_not_present;
                                         |     do {
    0x000031ec addiu a1, zero, 1         |         a1 = 1;
    0x000031f0 addiu a0, zero, 4         |         a0 = 4;
    0x000031f4 jalr t9                   |         t9 ();
    0x000031f8 addiu v0, zero, -1        |         v0 = -1;
    0x000031fc lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00003200 sw v0, 0x5c(sp)           |         *(var_5ch) = v0;
    0x00003204 b 0x2b7c                  |         goto label_6;
                                         | label_75:
    0x00003208 lw t9, -0x7ecc(gp)        |         t9 = sym.imp.free;
                                         | label_73:
    0x0000320c move a0, s4               |         a0 = s4;
    0x00003210 lw s1, 0x58(sp)           |         s1 = *(var_58h);
    0x00003214 jalr t9                   |         t9 ();
    0x00003218 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0000321c b 0x3038                  |         goto label_23;
                                         | label_46:
    0x00003220 lw a2, -0x7fdc(gp)        |         a2 = *((gp - 8183));
    0x00003224 lw t9, -0x7f68(gp)        |         t9 = sym.imp.__syslog_chk;
    0x00003228 lw a3, 0x4c(sp)           |         a3 = *(var_4ch);
    0x0000322c addiu a2, a2, 0x4734      |         a2 += str.Directory_token_contains_an_illegal_value:_directory_s;
    0x00003230 b 0x312c                  |         goto label_26;
                                         | label_40:
    0x00003234 lw a3, -0x7fdc(gp)        |         a3 = *((gp - 8183));
    0x00003238 lw a2, -0x7fdc(gp)        |         a2 = *((gp - 8183));
    0x0000323c lw t9, -0x7f68(gp)        |         t9 = sym.imp.__syslog_chk;
    0x00003240 addiu a3, a3, 0x467c      |         a3 += str.Error_mkstemp__:;
    0x00003244 addiu a2, a2, 0x3d9c      |         a2 += str._s__m;
    0x00003248 addiu a1, zero, 1         |         a1 = 1;
    0x0000324c addiu a0, zero, 3         |         a0 = 3;
    0x00003250 jalr t9                   |         t9 ();
    0x00003254 addiu v0, zero, -1        |         v0 = -1;
    0x00003258 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0000325c sw v0, 0x5c(sp)           |         *(var_5ch) = v0;
    0x00003260 b 0x2b88                  |         goto label_27;
                                         | label_32:
    0x00003264 lw a2, -0x7fdc(gp)        |         a2 = *((gp - 8183));
    0x00003268 lw t9, -0x7f68(gp)        |         t9 = sym.imp.__syslog_chk;
    0x0000326c addiu a2, a2, 0x45c8      |         a2 += 0x45c8;
    0x00003270 b 0x316c                  |         goto label_28;
                                         | label_72:
    0x00003274 move s7, s1               |         s7 = s1;
    0x00003278 lw s6, 0x51d4(s2)         |         s6 = *((s2 + 5237));
    0x0000327c lw s1, 0x58(sp)           |         s1 = *(var_58h);
    0x00003280 b 0x2fd0                  |         goto label_29;
                                         | label_47:
    0x00003284 lw t9, -0x7f68(gp)        |         t9 = sym.imp.__syslog_chk;
    0x00003288 addiu a2, a2, 0x476c      |         a2 += str.Directory_token_was_expected_but_its_not_present;
    0x0000328c b 0x31ec                  |         
                                         |     } while (1);
                                         | label_64:
    0x00003290 lw a3, -0x7fdc(gp)        |     a3 = *((gp - 8183));
    0x00003294 lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
    0x00003298 lw t9, -0x7f68(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str._tmp_uploadfile_XXXXXX */
    0x0000329c addiu v0, s0, 0x5044      |     v0 = s0 + 0x5044;
    0x000032a0 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x000032a4 sw s1, 0x14(sp)           |     *(var_14h) = s1;
    0x000032a8 addiu a3, a3, 0x47e0      |     a3 += str.Error_rename__:;
    0x000032ac addiu a2, a2, 0x47f0      |     a2 += str._s___s______s_:__m;
    0x000032b0 addiu a1, zero, 1         |     a1 = 1;
    0x000032b4 addiu a0, zero, 3         |     a0 = 3;
    0x000032b8 jalr t9                   |     t9 ();
    0x000032bc addiu v0, zero, -1        |     v0 = -1;
    0x000032c0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000032c4 sw v0, 0x5c(sp)           |     *(var_5ch) = v0;
    0x000032c8 b 0x2908                  |     goto label_4;
                                         | label_60:
    0x000032cc lw t9, -0x7ee4(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x000032d0 jalr t9                   |     t9 ();
    0x000032d4 nop                       |     
    0x000032d8 nop                       |     
    0x000032dc nop                       |     
                                         | }

[*] Function strcat used 3 times file_upload