[*] Binary protection state of php-cgi

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


[*] Function strcat tear down of php-cgi

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/bin/php-cgi @ 0x513fa0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00513fa0 ()                  | void fcn_00513fa0 () {
                                             | label_81:
    0x00513fa0 lui gp, 0x1f                  |     
    0x00513fa4 addiu gp, gp, -0x1d00         |     
    0x00513fa8 addu gp, gp, t9               |     gp += t9;
    0x00513fac addiu sp, sp, -0xd30          |     
    0x00513fb0 lw v0, 0xd48(sp)              |     v0 = *(arg_d48h);
    0x00513fb4 sw gp, 0x28(sp)               |     *(var_28h) = gp;
    0x00513fb8 sw s0, 0xd08(sp)              |     *(var_d08h) = s0;
    0x00513fbc sw ra, 0xd2c(sp)              |     *(var_d2ch) = ra;
    0x00513fc0 sw fp, 0xd28(sp)              |     *(var_d28h) = fp;
    0x00513fc4 sw s7, 0xd24(sp)              |     *(var_d24h) = s7;
    0x00513fc8 sw s6, 0xd20(sp)              |     *(var_d20h) = s6;
    0x00513fcc sw s5, 0xd1c(sp)              |     *(var_d1ch) = s5;
    0x00513fd0 sw s4, 0xd18(sp)              |     *(var_d18h) = s4;
    0x00513fd4 sw s3, 0xd14(sp)              |     *(var_d14h) = s3;
    0x00513fd8 sw s2, 0xd10(sp)              |     *(var_d10h) = s2;
    0x00513fdc sw s1, 0xd0c(sp)              |     *(var_d0ch) = s1;
    0x00513fe0 sw a0, 0xd30(sp)              |     *(arg_d30h) = a0;
    0x00513fe4 sw a1, 0xd34(sp)              |     *(arg_d34h) = a1;
    0x00513fe8 sw a2, 0xd38(sp)              |     *(arg_d38h) = a2;
    0x00513fec sw a3, 0xd3c(sp)              |     *(arg_d3ch) = a3;
    0x00513ff0 lw s0, 0xd44(sp)              |     s0 = *(arg_d44h);
    0x00513ff4 sw zero, 0xcd0(sp)            |     *(var_cd0h) = 0;
    0x00513ff8 sw zero, 0xcc0(sp)            |     *(var_cc0h) = 0;
    0x00513ffc sw zero, 0xcc4(sp)            |     *(var_cc4h) = 0;
    0x00514000 sb zero, 0xc30(sp)            |     *(var_c30h) = 0;
                                             |     if (v0 <= 0) {
    0x00514004 bgtz v0, 0x514024             |         
    0x00514008 lw a2, -0x7fc0(gp)            |         a2 = *((gp - 8176));
    0x0051400c lw t9, -0x6a38(gp)            |         t9 = sym.php_stream_wrapper_log_error;
                                             |         /* str.Redirection_limit_reached__aborting */
    0x00514010 addiu a2, a2, -0x48c0         |         a2 += -0x48c0;
    0x00514014 move a1, a3                   |         a1 = a3;
    0x00514018 jalr t9                       |         t9 ();
                                             | label_1:
    0x0051401c move s6, zero                 |         s6 = 0;
    0x00514020 b 0x5140c4                    |         goto label_64;
                                             |     }
    0x00514024 lw t9, -0x6a44(gp)            |     t9 = sym.php_url_parse;
    0x00514028 lw a0, 0xd34(sp)              |     a0 = *(arg_d34h);
    0x0051402c bal 0x504574                  |     sym_php_url_parse ();
    0x00514030 move fp, v0                   |     fp = v0;
    0x00514034 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x00514038 bnez v0, 0x514044             |         
                                             | label_90:
    0x0051403c move s6, zero                 |         s6 = 0;
    0x00514040 b 0x5140c4                    |         goto label_64;
                                             |     }
    0x00514044 lw s2, -0x7fc4(gp)            |     s2 = *((gp - 8177));
    0x00514048 lw s1, (v0)                   |     s1 = *(v0);
    0x0051404c lw t9, -0x629c(gp)            |     t9 = sym.imp.strncasecmp;
    0x00514050 addiu a2, zero, 5             |     a2 = 5;
                                             |     /* str.http */
    0x00514054 addiu a1, s2, -0x1440         |     a1 = s2 + -0x1440;
    0x00514058 move a0, s1                   |     a0 = s1;
    0x0051405c jalr t9                       |     t9 ();
    0x00514060 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00514064 sw s2, 0xcdc(sp)              |     *(var_cdch) = s2;
                                             |     if (v0 == 0) {
    0x00514068 beqz v0, 0x5143dc             |         goto label_104;
                                             |     }
    0x0051406c lw a1, -0x7fc4(gp)            |     a1 = *((gp - 8177));
    0x00514070 lw t9, -0x629c(gp)            |     t9 = sym.imp.strncasecmp;
    0x00514074 addiu a2, zero, 6             |     a2 = 6;
                                             |     /* str.https */
    0x00514078 addiu a1, a1, -0x1438         |     a1 += -0x1438;
    0x0051407c move a0, s1                   |     a0 = s1;
    0x00514080 jalr t9                       |     t9 ();
    0x00514084 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x00514088 beqz v0, 0x5143dc             |         goto label_104;
                                             |     }
    0x0051408c lw v0, 0xd30(sp)              |     v0 = *(arg_d30h);
    0x00514090 bnez s0, 0x5140f8             |     
                                             |     while (v0 == 0) {
    0x00514094 lw t9, -0x704c(gp)            |         t9 = sym.php_url_free;
                                             | label_0:
    0x00514098 move a0, fp                   |         a0 = fp;
    0x0051409c bal 0x503bd4                  |         sym_php_url_free ();
    0x005140a0 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005140a4 lw a1, 0xd38(sp)              |         a1 = *(arg_d38h);
    0x005140a8 lw a0, 0xd34(sp)              |         a0 = *(arg_d34h);
    0x005140ac lw t9, -0x7a40(gp)            |         t9 = sym._php_stream_open_wrapper_ex;
    0x005140b0 sw s0, 0x10(sp)               |         *(var_10h) = s0;
    0x005140b4 move a3, zero                 |         a3 = 0;
    0x005140b8 addiu a2, zero, 8             |         a2 = 8;
    0x005140bc jalr t9                       |         t9 ();
    0x005140c0 move s6, v0                   |         s6 = v0;
                                             | label_64:
    0x005140c4 lw ra, 0xd2c(sp)              |         ra = *(var_d2ch);
                                             | label_65:
    0x005140c8 move v0, s6                   |         v0 = s6;
    0x005140cc lw fp, 0xd28(sp)              |         fp = *(var_d28h);
    0x005140d0 lw s7, 0xd24(sp)              |         s7 = *(var_d24h);
    0x005140d4 lw s6, 0xd20(sp)              |         s6 = *(var_d20h);
    0x005140d8 lw s5, 0xd1c(sp)              |         s5 = *(var_d1ch);
    0x005140dc lw s4, 0xd18(sp)              |         s4 = *(var_d18h);
    0x005140e0 lw s3, 0xd14(sp)              |         s3 = *(var_d14h);
    0x005140e4 lw s2, 0xd10(sp)              |         s2 = *(var_d10h);
    0x005140e8 lw s1, 0xd0c(sp)              |         s1 = *(var_d0ch);
    0x005140ec lw s0, 0xd08(sp)              |         s0 = *(var_d08h);
    0x005140f0 addiu sp, sp, 0xd30           |         
    0x005140f4 jr ra                         |         return v0;
    0x005140f8 lw a2, -0x7fc0(gp)            |         a2 = *((gp - 8176));
    0x005140fc lw t9, -0x6a28(gp)            |         t9 = sym.php_stream_context_get_option;
    0x00514100 lw v0, (v0)                   |         v0 = *(v0);
                                             |         /* str.proxy */
    0x00514104 addiu a2, a2, -0x4ac4         |         a2 += -0x4ac4;
    0x00514108 move a0, s0                   |         a0 = s0;
    0x0051410c lw a1, 0x14(v0)               |         a1 = *((v0 + 5));
    0x00514110 jalr t9                       |         t9 ();
    0x00514114 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00514118 beqz v0, 0x514094             |         
                                             |     }
    0x0051411c lbu a0, 8(v0)                 |     a0 = *((v0 + 8));
    0x00514120 addiu v1, zero, 6             |     v1 = 6;
    0x00514124 lw t9, -0x704c(gp)            |     t9 = sym.php_url_free;
                                             |     if (a0 != v1) {
    0x00514128 bne a0, v1, 0x514098          |         goto label_0;
                                             |     }
    0x0051412c lw a0, (v0)                   |     a0 = *(v0);
    0x00514130 lw s1, 0xc(a0)                |     s1 = *((a0 + 3));
    0x00514134 move a1, s1                   |     a1 = s1;
                                             |     if (s1 == 0) {
    0x00514138 beqz s1, 0x514098             |         goto label_0;
                                             |     }
    0x0051413c lw t9, -0x7e84(gp)            |     t9 = sym._estrndup;
    0x00514140 addiu a0, a0, 0x10            |     a0 += 0x10;
    0x00514144 jalr t9                       |     t9 ();
    0x00514148 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0051414c sw v0, 0xcd4(sp)              |     *(var_cd4h) = v0;
    0x00514150 addiu s4, zero, 1             |     s4 = 1;
    0x00514154 addiu s5, zero, 1             |     s5 = 1;
    0x00514158 sw zero, 0xcd8(sp)            |     *(var_cd8h) = 0;
                                             |     do {
                                             | label_100:
    0x0051415c lw v0, 0xd30(sp)              |         v0 = *(arg_d30h);
    0x00514160 lw a2, -0x7ef8(gp)            |         a2 = *(gp);
    0x00514164 lw t9, -0x6a28(gp)            |         t9 = sym.php_stream_context_get_option;
    0x00514168 lw v0, (v0)                   |         v0 = *(v0);
                                             |         /* str.timeout */
    0x0051416c addiu a2, a2, -0x7864         |         a2 += -0x7864;
    0x00514170 move a0, s0                   |         a0 = s0;
    0x00514174 lw a1, 0x14(v0)               |         a1 = *((v0 + 5));
    0x00514178 jalr t9                       |         t9 ();
    0x0051417c lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x00514180 beqz v0, 0x5177d4             |             goto label_105;
                                             |         }
    0x00514184 lbu a0, 8(v0)                 |         a0 = *((v0 + 8));
    0x00514188 addiu v1, zero, 5             |         v1 = 5;
    0x0051418c lw t9, -0x7ebc(gp)            |         t9 = sym._zval_get_double_func;
                                             |         if (a0 != v1) {
    0x00514190 bne a0, v1, 0x5144f8          |             goto label_106;
                                             |         }
    0x00514194 lw s2, (v0)                   |         s2 = *(v0);
    0x00514198 lw s3, 4(v0)                  |         s3 = *((v0 + 1));
                                             | label_2:
    0x0051419c lw t9, -0x5ea0(gp)            |         t9 = sym.imp.__fixdfsi;
    0x005141a0 move a1, s3                   |         a1 = s3;
    0x005141a4 move a0, s2                   |         a0 = s2;
    0x005141a8 jalr t9                       |         t9 ();
    0x005141ac lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005141b0 move a0, v0                   |         a0 = v0;
    0x005141b4 lw t9, -0x6158(gp)            |         t9 = sym.imp.__floatsidf;
    0x005141b8 sw v0, 0xcc8(sp)              |         *(var_cc8h) = v0;
    0x005141bc jalr t9                       |         t9 ();
    0x005141c0 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005141c4 move a2, v0                   |         a2 = v0;
    0x005141c8 move a3, v1                   |         a3 = v1;
    0x005141cc lw t9, -0x615c(gp)            |         t9 = sym.imp.__subdf3;
    0x005141d0 move a0, s2                   |         a0 = s2;
    0x005141d4 move a1, s3                   |         a1 = s3;
    0x005141d8 jalr t9                       |         t9 ();
    0x005141dc lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005141e0 move a1, v1                   |         a1 = v1;
    0x005141e4 lw a0, -0x7fc4(gp)            |         a0 = *((gp - 8177));
    0x005141e8 lw t9, -0x6168(gp)            |         t9 = sym.imp.__muldf3;
    0x005141ec lw a2, -0x6720(a0)            |         a2 = *((a0 - 6600));
    0x005141f0 lw a3, -0x671c(a0)            |         a3 = *((a0 - 6599));
    0x005141f4 move a0, v0                   |         a0 = v0;
    0x005141f8 jalr t9                       |         t9 ();
    0x005141fc lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00514200 move a0, v0                   |         a0 = v0;
    0x00514204 lw t9, -0x6208(gp)            |         t9 = sym.imp.__fixunsdfsi;
    0x00514208 move a1, v1                   |         a1 = v1;
    0x0051420c jalr t9                       |         t9 ();
    0x00514210 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00514214 sw v0, 0xccc(sp)              |         *(var_ccch) = v0;
                                             | label_101:
    0x00514218 lw t9, -0x6be4(gp)            |         t9 = sym._php_stream_xport_create;
    0x0051421c addiu v0, sp, 0xcd0           |         v0 = sp + 0xcd0;
    0x00514220 addiu s2, sp, 0xcc8           |         s2 = sp + 0xcc8;
    0x00514224 lw a2, 0xd3c(sp)              |         a2 = *(arg_d3ch);
    0x00514228 lw a0, 0xcd4(sp)              |         a0 = *(var_cd4h);
    0x0051422c sw zero, 0x20(sp)             |         *(var_20h) = 0;
    0x00514230 sw v0, 0x1c(sp)               |         *(var_1ch) = v0;
    0x00514234 sw s0, 0x18(sp)               |         *(var_18h) = s0;
    0x00514238 sw s2, 0x14(sp)               |         *(var_14h) = s2;
    0x0051423c sw zero, 0x10(sp)             |         *(var_10h) = 0;
    0x00514240 addiu a3, zero, 2             |         a3 = 2;
    0x00514244 move a1, s1                   |         a1 = s1;
    0x00514248 jalr t9                       |         t9 ();
    0x0051424c move s6, v0                   |         s6 = v0;
    0x00514250 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x00514254 beqz v0, 0x514274             |             
    0x00514258 lw t9, -0x7a5c(gp)            |             t9 = sym._php_stream_set_option;
    0x0051425c move a3, s2                   |             a3 = s2;
    0x00514260 move a2, zero                 |             a2 = 0;
    0x00514264 addiu a1, zero, 4             |             a1 = 4;
    0x00514268 move a0, v0                   |             a0 = v0;
    0x0051426c jalr t9                       |             t9 ();
    0x00514270 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |         }
    0x00514274 lw a3, 0xcd0(sp)              |         a3 = *(var_cd0h);
    0x00514278 lw a2, -0x7fc0(gp)            |         a2 = *((gp - 8176));
                                             |         if (a3 != 0) {
    0x0051427c beqz a3, 0x5142dc             |             
    0x00514280 lw t9, -0x6a38(gp)            |             t9 = sym.php_stream_wrapper_log_error;
    0x00514284 lw a0, 0xd30(sp)              |             a0 = *(arg_d30h);
    0x00514288 lw a1, 0xd3c(sp)              |             a1 = *(arg_d3ch);
    0x0051428c addiu a3, a3, 0x10            |             a3 += 0x10;
                                             |             /* esilref: '&s' */
    0x00514290 addiu a2, a2, -0x7b24         |             a2 += -0x7b24;
    0x00514294 jalr t9                       |             t9 ();
    0x00514298 lw a0, 0xcd0(sp)              |             a0 = *(var_cd0h);
    0x0051429c lbu v0, 5(a0)                 |             v0 = *((a0 + 5));
    0x005142a0 andi v1, v0, 2                |             v1 = v0 & 2;
    0x005142a4 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |             if (v1 == 0) {
    0x005142a8 bnez v1, 0x5142d8             |                 
    0x005142ac lw v1, (a0)                   |                 v1 = *(a0);
    0x005142b0 addiu v1, v1, -1              |                 v1 += -1;
    0x005142b4 sw v1, (a0)                   |                 *(a0) = v1;
                                             |                 if (v1 != 0) {
    0x005142b8 bnez v1, 0x5142d8             |                     goto label_3;
                                             |                 }
    0x005142bc andi v0, v0, 1                |                 v0 &= 1;
    0x005142c0 lw t9, -0x7fe4(gp)            |                 t9 = sym._efree;
                                             |                 if (v0 == 0) {
    0x005142c4 beqz v0, 0x514510             |                     goto label_107;
                                             |                 }
    0x005142c8 lw t9, -0x6094(gp)            |                 t9 = *((gp - 6181));
    0x005142cc jalr t9                       |                 t9 ();
    0x005142d0 nop                           |                 
    0x005142d4 lw gp, 0x28(sp)               |                 gp = *(var_28h);
                                             |             }
                                             | label_3:
    0x005142d8 sw zero, 0xcd0(sp)            |             *(var_cd0h) = 0;
                                             |         }
    0x005142dc lw v0, 0xd4c(sp)              |         v0 = *(arg_d4ch);
    0x005142e0 lw t9, -0x7fe4(gp)            |         t9 = sym._efree;
    0x005142e4 andi v0, v0, 1                |         v0 &= 1;
    0x005142e8 lw a0, 0xcd4(sp)              |         a0 = *(var_cd4h);
    0x005142ec sw v0, 0xce8(sp)              |         *(var_ce8h) = v0;
    0x005142f0 jalr t9                       |         t9 ();
    0x005142f4 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (s6 == 0) {
    0x005142f8 beqz s6, 0x5175a0             |             goto label_108;
                                             |         }
    0x005142fc lw v0, 0xd3c(sp)              |         v0 = *(arg_d3ch);
                                             |         if (s5 == 0) {
    0x00514300 beqz s5, 0x514b5c             |             goto label_109;
                                             |         }
    0x00514304 lw v0, 0xcd8(sp)              |         v0 = *(var_cd8h);
    0x00514308 lw v0, 0xd3c(sp)              |         v0 = *(arg_d3ch);
                                             |         if (v0 == 0) {
    0x0051430c beqz v0, 0x514b5c             |             goto label_109;
                                             |         }
    0x00514310 sw zero, 0x430(sp)            |         *(var_430h) = 0;
    0x00514314 sw zero, 0x434(sp)            |         *(var_434h) = 0;
    0x00514318 lw s7, -0x7fc0(gp)            |         s7 = *((gp - 8176));
    0x0051431c lw s3, -0x7fc0(gp)            |         s3 = *((gp - 8176));
                                             |         if (s0 != 0) {
    0x00514320 bnez s0, 0x514520             |             goto label_110;
                                             |         }
                                             | label_4:
    0x00514324 lw v0, 0xc(fp)                |         v0 = *(arg_d3ch);
    0x00514328 lw t9, -0x6154(gp)            |         t9 = sym.imp.strlen;
    0x0051432c move a0, v0                   |         a0 = v0;
    0x00514330 sw v0, 0xce4(sp)              |         *(var_ce4h) = v0;
    0x00514334 jalr t9                       |         t9 ();
    0x00514338 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0051433c move s2, v0                   |         s2 = v0;
    0x00514340 addiu a0, v0, 0x18            |         a0 = v0 + 0x18;
    0x00514344 lw t9, -0x7f60(gp)            |         t9 = sym._emalloc;
    0x00514348 addiu v0, zero, -8            |         v0 = -8;
    0x0051434c and a0, a0, v0                |         a0 &= v0;
    0x00514350 jalr t9                       |         t9 ();
    0x00514354 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00514358 move s1, v0                   |         s1 = v0;
    0x0051435c addiu v0, zero, 1             |         v0 = 1;
    0x00514360 sw v0, (s1)                   |         *(s1) = v0;
    0x00514364 lw t9, -0x6148(gp)            |         t9 = sym.imp.memcpy;
    0x00514368 addiu v0, zero, 6             |         v0 = 6;
    0x0051436c sw s2, 0xc(s1)                |         *((s1 + 3)) = s2;
    0x00514370 move a2, s2                   |         a2 = s2;
    0x00514374 lw a1, 0xce4(sp)              |         a1 = *(var_ce4h);
    0x00514378 addu s2, s1, s2               |         s2 = s1 + s2;
    0x0051437c sw v0, 4(s1)                  |         *((s1 + 1)) = v0;
    0x00514380 sw zero, 8(s1)                |         *((s1 + 2)) = 0;
    0x00514384 addiu a0, s1, 0x10            |         a0 = s1 + 0x10;
    0x00514388 jalr t9                       |         t9 ();
    0x0051438c addiu v0, zero, 0x1406        |         v0 = 0x1406;
    0x00514390 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00514394 sb zero, 0x10(s2)             |         *((s2 + 16)) = 0;
    0x00514398 sw v0, 0xcb8(sp)              |         *(var_cb8h) = v0;
    0x0051439c lw v0, 0x5c(s6)               |         v0 = *(var_d2ch);
    0x005143a0 sw s1, 0xcb0(sp)              |         *(var_cb0h) = s1;
                                             |         if (v0 != 0) {
    0x005143a4 bnez v0, 0x514958             |             goto label_111;
                                             |         }
    0x005143a8 move a0, zero                 |         a0 = 0;
                                             | label_6:
    0x005143ac lw t9, -0x6a1c(gp)            |         t9 = sym.php_stream_context_set_option;
    0x005143b0 addiu s1, sp, 0xcb0           |         s1 = sp + 0xcb0;
    0x005143b4 move a3, s1                   |         a3 = s1;
                                             |         /* str.peer_name */
    0x005143b8 addiu a2, s7, -0x4850         |         a2 = s7 + -0x4850;
                                             |         /* esilref: 'ssl' */
    0x005143bc addiu a1, s3, -0x4844         |         a1 = s3 + -0x4844;
    0x005143c0 jalr t9                       |         t9 ();
    0x005143c4 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005143c8 lw t9, -0x7f2c(gp)            |         t9 = sym._zval_ptr_dtor;
    0x005143cc move a0, s1                   |         a0 = s1;
    0x005143d0 jalr t9                       |         t9 ();
    0x005143d4 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005143d8 b 0x51453c                    |         goto label_112;
                                             | label_104:
    0x005143dc lw a1, -0x7fc0(gp)            |         a1 = *((gp - 8176));
    0x005143e0 lw t9, -0x6328(gp)            |         t9 = sym.imp.strpbrk;
    0x005143e4 lw a0, 0xd38(sp)              |         a0 = *(arg_d38h);
                                             |         /* str.awx */
    0x005143e8 addiu a1, a1, -0x489c         |         a1 += -0x489c;
    0x005143ec jalr t9                       |         t9 ();
    0x005143f0 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x005143f4 beqz v0, 0x514428             |             
    0x005143f8 lw a2, -0x7fc0(gp)            |             a2 = *((gp - 8176));
    0x005143fc lw t9, -0x6a38(gp)            |             t9 = sym.php_stream_wrapper_log_error;
    0x00514400 lw a0, 0xd30(sp)              |             a0 = *(arg_d30h);
    0x00514404 lw a1, 0xd3c(sp)              |             a1 = *(arg_d3ch);
                                             |             /* str.HTTP_wrapper_does_not_support_writeable_connections */
    0x00514408 addiu a2, a2, -0x4894         |             a2 += -0x4894;
    0x0051440c jalr t9                       |             t9 ();
    0x00514410 lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00514414 lw t9, -0x704c(gp)            |             t9 = sym.php_url_free;
    0x00514418 move a0, fp                   |             a0 = fp;
    0x0051441c bal 0x503bd4                  |             sym_php_url_free ();
    0x00514420 b 0x51401c                    |             goto label_1;
    0x00514424 nop                           |             
                                             |         }
    0x00514428 lw t9, -0x6154(gp)            |         t9 = sym.imp.strlen;
    0x0051442c move a0, s1                   |         a0 = s1;
    0x00514430 jalr t9                       |         t9 ();
    0x00514434 sltiu v0, v0, 5               |         v0 = (v0 < 5) ? 1 : 0;
    0x00514438 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0051443c lhu v1, 0x10(fp)              |         v1 = *(arg_10h);
                                             |         if (v0 == 0) {
    0x00514440 bnez v0, 0x514474             |             
    0x00514444 lb a0, 4(s1)                  |             a0 = *((s1 + 4));
    0x00514448 addiu v0, zero, 0x73          |             v0 = 0x73;
                                             |             if (a0 == v0) {
    0x0051444c bne a0, v0, 0x514474          |                 
    0x00514450 nop                           |                 
    0x00514454 addiu v0, zero, 0x1bb         |                 v0 = 0x1bb;
                                             |                 if (v1 == 0) {
    0x00514458 bnez v1, 0x514460             |                     
    0x0051445c sh v0, 0x10(fp)               |                     *(arg_10h) = v0;
                                             |                 }
    0x00514460 lw a3, -0x7fc0(gp)            |                 a3 = *((gp - 8176));
                                             |                 if (s0 == 0) {
    0x00514464 beqz s0, 0x5177e8             |                     goto label_113;
                                             |                 }
    0x00514468 addiu v0, zero, 1             |                 v0 = 1;
    0x0051446c sw v0, 0xcd8(sp)              |                 *(var_cd8h) = v0;
    0x00514470 b 0x51448c                    |                 
                                             |             }
                                             |         } else {
    0x00514474 addiu v0, zero, 0x50          |             v0 = 0x50;
                                             |             if (v1 == 0) {
    0x00514478 bnez v1, 0x514480             |                 
    0x0051447c sh v0, 0x10(fp)               |                 *(arg_10h) = v0;
                                             |             }
                                             |             if (s0 == 0) {
    0x00514480 beqz s0, 0x51778c             |                 goto label_114;
                                             |             }
    0x00514484 nop                           |             
    0x00514488 sw zero, 0xcd8(sp)            |             *(var_cd8h) = 0;
                                             |         }
    0x0051448c lw v0, 0xd30(sp)              |         v0 = *(arg_d30h);
    0x00514490 lw a2, -0x7fc0(gp)            |         a2 = *((gp - 8176));
    0x00514494 lw t9, -0x6a28(gp)            |         t9 = sym.php_stream_context_get_option;
    0x00514498 lw v0, (v0)                   |         v0 = *(v0);
                                             |         /* str.proxy */
    0x0051449c addiu a2, a2, -0x4ac4         |         a2 += -0x4ac4;
    0x005144a0 move a0, s0                   |         a0 = s0;
    0x005144a4 lw a1, 0x14(v0)               |         a1 = *((v0 + 5));
    0x005144a8 jalr t9                       |         t9 ();
    0x005144ac lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x005144b0 beqz v0, 0x517780             |             goto label_115;
                                             |         }
    0x005144b4 lbu a0, 8(v0)                 |         a0 = *((v0 + 8));
    0x005144b8 addiu v1, zero, 6             |         v1 = 6;
                                             |         if (a0 != v1) {
    0x005144bc bne a0, v1, 0x517780          |             goto label_115;
                                             |         }
    0x005144c0 nop                           |         
    0x005144c4 lw a0, (v0)                   |         a0 = *(v0);
    0x005144c8 lw s1, 0xc(a0)                |         s1 = *((a0 + 3));
    0x005144cc lw v0, 0xcd8(sp)              |         v0 = *(var_cd8h);
                                             |         if (s1 == 0) {
    0x005144d0 beqz s1, 0x517784             |             goto label_116;
                                             |         }
    0x005144d4 lw t9, -0x7e84(gp)            |         t9 = sym._estrndup;
    0x005144d8 move a1, s1                   |         a1 = s1;
    0x005144dc addiu a0, a0, 0x10            |         a0 += 0x10;
    0x005144e0 jalr t9                       |         t9 ();
    0x005144e4 sw v0, 0xcd4(sp)              |         *(var_cd4h) = v0;
    0x005144e8 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005144ec move s4, zero                 |         s4 = 0;
    0x005144f0 addiu s5, zero, 1             |         s5 = 1;
    0x005144f4 b 0x51415c                    |         
                                             |     } while (1);
                                             | label_106:
    0x005144f8 move a0, v0                   |     a0 = v0;
    0x005144fc jalr t9                       |     t9 ();
    0x00514500 move s2, v0                   |     s2 = v0;
    0x00514504 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00514508 move s3, v1                   |     s3 = v1;
    0x0051450c b 0x51419c                    |     goto label_2;
                                             | label_107:
    0x00514510 jalr t9                       |     t9 ();
    0x00514514 nop                           |     
    0x00514518 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0051451c b 0x5142d8                    |     goto label_3;
                                             | label_110:
    0x00514520 lw t9, -0x6a28(gp)            |     t9 = sym.php_stream_context_get_option;
                                             |     /* str.peer_name */
    0x00514524 addiu a2, s7, -0x4850         |     a2 = s7 + -0x4850;
                                             |     /* esilref: 'ssl' */
    0x00514528 addiu a1, s3, -0x4844         |     a1 = s3 + -0x4844;
    0x0051452c move a0, s0                   |     a0 = s0;
    0x00514530 jalr t9                       |     t9 ();
    0x00514534 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x00514538 beqz v0, 0x514324             |         goto label_4;
                                             |     }
                                             | label_112:
    0x0051453c lw v0, 0x430(sp)              |     v0 = *(var_430h);
    0x00514540 addiu s1, zero, 8             |     s1 = 8;
                                             |     if (v0 != 0) {
    0x00514544 beqz v0, 0x514560             |         
    0x00514548 lw s1, 0xc(v0)                |         s1 = *((v0 + 3));
    0x0051454c lw v0, 0x434(sp)              |         v0 = *(var_434h);
    0x00514550 addiu s1, s1, 8               |         s1 += 8;
    0x00514554 sltu v0, s1, v0               |         v0 = (s1 < v0) ? 1 : 0;
    0x00514558 lw v0, 0x430(sp)              |         v0 = *(var_430h);
                                             |         if (v0 != 0) {
    0x0051455c bnez v0, 0x514578             |             goto label_117;
                                             |         }
                                             |     }
    0x00514560 lw t9, -0x7ed4(gp)            |     t9 = sym.smart_str_erealloc;
    0x00514564 move a1, s1                   |     a1 = s1;
    0x00514568 addiu a0, sp, 0x430           |     a0 = sp + 0x430;
    0x0051456c jalr t9                       |     t9 ();
    0x00514570 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00514574 lw v0, 0x430(sp)              |     v0 = *(var_430h);
                                             | label_117:
    0x00514578 lw a1, -0x7fc0(gp)            |     a1 = *((gp - 8176));
    0x0051457c addiu a0, v0, 0x10            |     a0 = v0 + 0x10;
    0x00514580 lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x00514584 lw t9, -0x6148(gp)            |     t9 = sym.imp.memcpy;
    0x00514588 addiu a2, zero, 8             |     a2 = 8;
                                             |     /* str.CONNECT_ */
    0x0051458c addiu a1, a1, -0x4840         |     a1 += -0x4840;
    0x00514590 addu a0, a0, v0               |     a0 += v0;
    0x00514594 jalr t9                       |     t9 ();
    0x00514598 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0051459c lw v0, 0x430(sp)              |     v0 = *(var_430h);
    0x005145a0 lw s2, 0xc(fp)                |     s2 = *(arg_d3ch);
    0x005145a4 lw t9, -0x6154(gp)            |     t9 = sym.imp.strlen;
    0x005145a8 sw s1, 0xc(v0)                |     *((v0 + 3)) = s1;
    0x005145ac move a0, s2                   |     a0 = s2;
    0x005145b0 jalr t9                       |     t9 ();
    0x005145b4 addu s1, v0, s1               |     s1 = v0 + s1;
    0x005145b8 move s3, v0                   |     s3 = v0;
    0x005145bc lw v0, 0x434(sp)              |     v0 = *(var_434h);
    0x005145c0 sltu v0, s1, v0               |     v0 = (s1 < v0) ? 1 : 0;
    0x005145c4 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x005145c8 bnez v0, 0x5145e0             |         
    0x005145cc lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x005145d0 move a1, s1                   |         a1 = s1;
    0x005145d4 addiu a0, sp, 0x430           |         a0 = sp + 0x430;
    0x005145d8 jalr t9                       |         t9 ();
    0x005145dc lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |     }
    0x005145e0 lw v0, 0x430(sp)              |     v0 = *(var_430h);
    0x005145e4 lw t9, -0x6148(gp)            |     t9 = sym.imp.memcpy;
    0x005145e8 addiu a0, v0, 0x10            |     a0 = v0 + 0x10;
    0x005145ec lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x005145f0 move a1, s2                   |     a1 = s2;
    0x005145f4 move a2, s3                   |     a2 = s3;
    0x005145f8 addu a0, a0, v0               |     a0 += v0;
    0x005145fc jalr t9                       |     t9 ();
    0x00514600 lw v0, 0x430(sp)              |     v0 = *(var_430h);
    0x00514604 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00514608 addiu s2, s1, 1               |     s2 = s1 + 1;
    0x0051460c sw s1, 0xc(v0)                |     *((v0 + 3)) = s1;
    0x00514610 lw v0, 0x434(sp)              |     v0 = *(var_434h);
    0x00514614 sltu v0, s2, v0               |     v0 = (s2 < v0) ? 1 : 0;
    0x00514618 lw v1, 0x430(sp)              |     v1 = *(var_430h);
                                             |     if (v0 == 0) {
    0x0051461c bnez v0, 0x514638             |         
    0x00514620 lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x00514624 move a1, s2                   |         a1 = s2;
    0x00514628 addiu a0, sp, 0x430           |         a0 = sp + 0x430;
    0x0051462c jalr t9                       |         t9 ();
    0x00514630 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00514634 lw v1, 0x430(sp)              |         v1 = *(var_430h);
                                             |     }
    0x00514638 addiu v0, zero, 0x3a          |     v0 = 0x3a;
    0x0051463c addu s1, v1, s1               |     s1 = v1 + s1;
    0x00514640 addiu a1, zero, 0xa           |     a1 = 0xa;
    0x00514644 sb v0, 0x10(s1)               |     *((s1 + 16)) = v0;
    0x00514648 sw s2, 0xc(v1)                |     *((v1 + 3)) = s2;
    0x0051464c addiu s2, sp, 0x4f            |     s2 = sp + 0x4f;
    0x00514650 lhu v0, 0x10(fp)              |     v0 = *(arg_10h);
    0x00514654 move s3, s2                   |     s3 = s2;
    0x00514658 sb zero, 0x4f(sp)             |     *(var_4fh) = 0;
                                             |     do {
    0x0051465c divu zero, v0, a1             |         __asm ("divu zero, v0, a1");
    0x00514660 teq a1, zero, 7               |         __asm ("teq a1, zero, 7");
    0x00514664 addiu s2, s2, -1              |         s2 += -1;
    0x00514668 mfhi a0                       |         __asm ("mfhi a0");
    0x0051466c mflo v0                       |         __asm ("mflo v0");
    0x00514670 addiu a0, a0, 0x30            |         a0 += 0x30;
    0x00514674 sb a0, (s2)                   |         *(s2) = a0;
    0x00514678 bnez v0, 0x51465c             |         
                                             |     } while (v0 != 0);
    0x0051467c lw s1, 0xc(v1)                |     s1 = *((v1 + 3));
    0x00514680 subu s3, s3, s2               |     __asm ("subu s3, s3, s2");
    0x00514684 lw v0, 0x434(sp)              |     v0 = *(var_434h);
    0x00514688 addu s1, s3, s1               |     s1 = s3 + s1;
    0x0051468c sltu v0, s1, v0               |     v0 = (s1 < v0) ? 1 : 0;
    0x00514690 lw v0, 0x430(sp)              |     v0 = *(var_430h);
                                             |     if (v0 == 0) {
    0x00514694 bnez v0, 0x5146b0             |         
    0x00514698 lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x0051469c move a1, s1                   |         a1 = s1;
    0x005146a0 addiu a0, sp, 0x430           |         a0 = sp + 0x430;
    0x005146a4 jalr t9                       |         t9 ();
    0x005146a8 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005146ac lw v0, 0x430(sp)              |         v0 = *(var_430h);
                                             |     }
    0x005146b0 lw t9, -0x6148(gp)            |     t9 = sym.imp.memcpy;
    0x005146b4 addiu a0, v0, 0x10            |     a0 = v0 + 0x10;
    0x005146b8 lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x005146bc move a2, s3                   |     a2 = s3;
    0x005146c0 move a1, s2                   |     a1 = s2;
    0x005146c4 addu a0, a0, v0               |     a0 += v0;
    0x005146c8 jalr t9                       |     t9 ();
    0x005146cc lw v0, 0x430(sp)              |     v0 = *(var_430h);
    0x005146d0 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x005146d4 sw s1, 0xc(v0)                |     *((v0 + 3)) = s1;
    0x005146d8 lw v0, 0x434(sp)              |     v0 = *(var_434h);
    0x005146dc addiu s1, s1, 0xb             |     s1 += 0xb;
    0x005146e0 sltu v0, s1, v0               |     v0 = (s1 < v0) ? 1 : 0;
    0x005146e4 lw v0, 0x430(sp)              |     v0 = *(var_430h);
                                             |     if (v0 == 0) {
    0x005146e8 bnez v0, 0x514704             |         
    0x005146ec lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x005146f0 move a1, s1                   |         a1 = s1;
    0x005146f4 addiu a0, sp, 0x430           |         a0 = sp + 0x430;
    0x005146f8 jalr t9                       |         t9 ();
    0x005146fc lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00514700 lw v0, 0x430(sp)              |         v0 = *(var_430h);
                                             |     }
    0x00514704 lw a1, -0x7fc0(gp)            |     a1 = *((gp - 8176));
    0x00514708 addiu a0, v0, 0x10            |     a0 = v0 + 0x10;
    0x0051470c lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x00514710 lw t9, -0x6148(gp)            |     t9 = sym.imp.memcpy;
    0x00514714 addiu a2, zero, 0xb           |     a2 = 0xb;
                                             |     /* str._HTTP_1.0_r_n */
    0x00514718 addiu a1, a1, -0x4834         |     a1 += -0x4834;
    0x0051471c addu a0, a0, v0               |     a0 += v0;
    0x00514720 jalr t9                       |     t9 ();
    0x00514724 lw v0, 0x430(sp)              |     v0 = *(var_430h);
    0x00514728 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0051472c sw s1, 0xc(v0)                |     *((v0 + 3)) = s1;
                                             |     if (s0 != 0) {
    0x00514730 beqz s0, 0x51479c             |         
    0x00514734 lw a2, -0x7fc0(gp)            |         a2 = *((gp - 8176));
    0x00514738 lw v0, 0xcdc(sp)              |         v0 = *(var_cdch);
    0x0051473c lw t9, -0x6a28(gp)            |         t9 = sym.php_stream_context_get_option;
                                             |         /* esilref: 'header' */
    0x00514740 addiu a2, a2, -0x46ac         |         a2 += -0x46ac;
    0x00514744 addiu a1, v0, -0x1440         |         a1 = v0 + -0x1440;
    0x00514748 move a0, s0                   |         a0 = s0;
    0x0051474c jalr t9                       |         t9 ();
    0x00514750 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x00514754 beqz v0, 0x51479c             |             goto label_14;
                                             |         }
    0x00514758 lbu v1, 8(v0)                 |         v1 = *((v0 + 8));
    0x0051475c addiu a0, zero, 7             |         a0 = 7;
    0x00514760 addiu a0, zero, 6             |         a0 = 6;
                                             |         if (v1 != a0) {
    0x00514764 bne v1, a0, 0x514a44          |             goto label_118;
                                             |         }
    0x00514768 lw v0, (v0)                   |         v0 = *(v0);
    0x0051476c addiu v1, zero, 0x18          |         v1 = 0x18;
    0x00514770 lw s3, 0x10(v0)               |         s3 = *((v0 + 4));
    0x00514774 lw v0, 0x14(v0)               |         v0 = *((v0 + 5));
    0x00514778 mul a0, v1, v0                |         __asm ("mul a0, v1, v0");
    0x0051477c addu v0, a0, s3               |         v0 = a0 + s3;
    0x00514780 sw v0, 0xce4(sp)              |         *(var_ce4h) = v0;
    0x00514784 lw v0, -0x7fc0(gp)            |         v0 = *((gp - 8176));
                                             |         /* str.Proxy_Authorization: */
    0x00514788 addiu v0, v0, -0x4828         |         v0 += -0x4828;
    0x0051478c sw v0, 0xcec(sp)              |         *(var_cech) = v0;
                                             | label_7:
    0x00514790 lw v0, 0xce4(sp)              |         v0 = *(var_ce4h);
    0x00514794 addiu v0, zero, 6             |         v0 = 6;
                                             |         if (s3 != v0) {
    0x00514798 bne s3, v0, 0x514960          |             goto label_119;
                                             |         }
                                             |     }
                                             | label_14:
    0x0051479c lw v0, 0x430(sp)              |     v0 = *(var_430h);
                                             | label_15:
    0x005147a0 addiu s1, zero, 2             |     s1 = 2;
                                             |     if (v0 != 0) {
    0x005147a4 beqz v0, 0x5147c0             |         
    0x005147a8 lw s1, 0xc(v0)                |         s1 = *((v0 + 3));
    0x005147ac lw v0, 0x434(sp)              |         v0 = *(var_434h);
    0x005147b0 addiu s1, s1, 2               |         s1 += 2;
    0x005147b4 sltu v0, s1, v0               |         v0 = (s1 < v0) ? 1 : 0;
    0x005147b8 lw v1, 0x430(sp)              |         v1 = *(var_430h);
                                             |         if (v0 != 0) {
    0x005147bc bnez v0, 0x5147d8             |             goto label_120;
                                             |         }
                                             |     }
    0x005147c0 lw t9, -0x7ed4(gp)            |     t9 = sym.smart_str_erealloc;
    0x005147c4 move a1, s1                   |     a1 = s1;
    0x005147c8 addiu a0, sp, 0x430           |     a0 = sp + 0x430;
    0x005147cc jalr t9                       |     t9 ();
    0x005147d0 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x005147d4 lw v1, 0x430(sp)              |     v1 = *(var_430h);
                                             | label_120:
    0x005147d8 lw t9, -0x7a64(gp)            |     t9 = sym._php_stream_write;
    0x005147dc addiu v0, v1, 0x10            |     v0 = v1 + 0x10;
    0x005147e0 lw v1, 0xc(v1)                |     v1 = *((v1 + 3));
    0x005147e4 move a2, s1                   |     a2 = s1;
    0x005147e8 addu v0, v0, v1               |     v0 += v1;
    0x005147ec addiu v1, zero, 0xd           |     v1 = 0xd;
    0x005147f0 sb v1, (v0)                   |     *(v0) = v1;
    0x005147f4 addiu v1, zero, 0xa           |     v1 = 0xa;
    0x005147f8 sb v1, 1(v0)                  |     *((v0 + 1)) = v1;
    0x005147fc lw a1, 0x430(sp)              |     a1 = *(var_430h);
    0x00514800 move a0, s6                   |     a0 = s6;
    0x00514804 addiu a1, a1, 0x10            |     a1 += 0x10;
    0x00514808 sw s1, -4(a1)                 |     *((a1 - 1)) = s1;
    0x0051480c jalr t9                       |     t9 ();
    0x00514810 lw v1, 0x430(sp)              |     v1 = *(var_430h);
    0x00514814 lw v1, 0xc(v1)                |     v1 = *((v1 + 3));
    0x00514818 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != v1) {
    0x0051481c beq v0, v1, 0x514854          |         
    0x00514820 lw a2, -0x7fc0(gp)            |         a2 = *((gp - 8176));
    0x00514824 lw t9, -0x6a38(gp)            |         t9 = sym.php_stream_wrapper_log_error;
    0x00514828 lw a1, 0xd3c(sp)              |         a1 = *(arg_d3ch);
    0x0051482c lw a0, 0xd30(sp)              |         a0 = *(arg_d30h);
                                             |         /* str.Cannot_connect_to_HTTPS_server_through_proxy */
    0x00514830 addiu a2, a2, -0x4810         |         a2 += -0x4810;
    0x00514834 jalr t9                       |         t9 ();
    0x00514838 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0051483c move a0, s6                   |         a0 = s6;
    0x00514840 addiu a1, zero, 3             |         a1 = 3;
    0x00514844 lw t9, -0x7a20(gp)            |         t9 = sym._php_stream_free;
    0x00514848 move s6, zero                 |         s6 = 0;
    0x0051484c jalr t9                       |         t9 ();
    0x00514850 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |     }
    0x00514854 lw a0, 0x430(sp)              |     a0 = *(var_430h);
                                             |     if (a0 != 0) {
    0x00514858 beqz a0, 0x5148a0             |         
    0x0051485c nop                           |         
    0x00514860 lbu v0, 5(a0)                 |         v0 = *((a0 + 5));
    0x00514864 andi v1, v0, 2                |         v1 = v0 & 2;
                                             |         if (v1 == 0) {
    0x00514868 bnez v1, 0x51489c             |             
    0x0051486c nop                           |             
    0x00514870 lw v1, (a0)                   |             v1 = *(a0);
    0x00514874 addiu v1, v1, -1              |             v1 += -1;
    0x00514878 sw v1, (a0)                   |             *(a0) = v1;
                                             |             if (v1 != 0) {
    0x0051487c bnez v1, 0x51489c             |                 goto label_22;
                                             |             }
    0x00514880 andi v0, v0, 1                |             v0 &= 1;
    0x00514884 lw t9, -0x7fe4(gp)            |             t9 = sym._efree;
                                             |             if (v0 == 0) {
    0x00514888 beqz v0, 0x514b30             |                 goto label_121;
                                             |             }
    0x0051488c lw t9, -0x6094(gp)            |             t9 = *((gp - 6181));
    0x00514890 jalr t9                       |             t9 ();
    0x00514894 nop                           |             
    0x00514898 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |         }
                                             | label_22:
    0x0051489c sw zero, 0x430(sp)            |         *(var_430h) = 0;
                                             |     }
    0x005148a0 lw t9, -0x7a78(gp)            |     t9 = sym._php_stream_get_line;
                                             |     if (s6 == 0) {
    0x005148a4 beqz s6, 0x5175a0             |         goto label_108;
                                             |     }
    0x005148a8 sw zero, 0x434(sp)            |     *(var_434h) = 0;
    0x005148ac addiu s1, sp, 0x30            |     s1 = sp + 0x30;
    0x005148b0 addiu s2, zero, 0x2401        |     s2 = 0x2401;
                                             |     do {
    0x005148b4 move a3, zero                 |         a3 = 0;
                                             | label_5:
    0x005148b8 addiu a2, zero, 0x3ff         |         a2 = 0x3ff;
    0x005148bc move a1, s1                   |         a1 = s1;
    0x005148c0 move a0, s6                   |         a0 = s6;
    0x005148c4 jalr t9                       |         t9 ();
    0x005148c8 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x005148cc beqz v0, 0x5148f0             |             goto label_122;
                                             |         }
    0x005148d0 lbu v0, 0x30(sp)              |         v0 = *(var_30h);
    0x005148d4 sltiu v1, v0, 0xe             |         v1 = (v0 < 0xe) ? 1 : 0;
    0x005148d8 lw t9, -0x7a78(gp)            |         t9 = sym._php_stream_get_line;
    0x005148dc beqz v1, 0x5148b4             |         
                                             |     } while (v1 == 0);
    0x005148e0 srlv v0, s2, v0               |     v0 = s2 >> v0;
    0x005148e4 ext v0, v0, 0, 1              |     __asm ("ext v0, v0, 0, 1");
    0x005148e8 move a3, zero                 |     a3 = 0;
                                             |     if (v0 == 0) {
    0x005148ec beqz v0, 0x5148b8             |         goto label_5;
                                             |     }
                                             | label_122:
    0x005148f0 lw t9, -0x6a30(gp)            |     t9 = sym.php_stream_xport_crypto_setup;
    0x005148f4 move a2, zero                 |     a2 = 0;
    0x005148f8 addiu a1, zero, 0x39          |     a1 = 0x39;
    0x005148fc move a0, s6                   |     a0 = s6;
    0x00514900 jalr t9                       |     t9 ();
    0x00514904 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 >= 0) {
    0x00514908 bgez v0, 0x514b40             |         goto label_123;
                                             |     }
                                             | label_23:
    0x0051490c lw a2, -0x7fc0(gp)            |     a2 = *((gp - 8176));
    0x00514910 lw t9, -0x6a38(gp)            |     t9 = sym.php_stream_wrapper_log_error;
    0x00514914 lw a1, 0xd3c(sp)              |     a1 = *(arg_d3ch);
    0x00514918 lw a0, 0xd30(sp)              |     a0 = *(arg_d30h);
                                             |     /* str.Cannot_connect_to_HTTPS_server_through_proxy */
    0x0051491c addiu a2, a2, -0x4810         |     a2 += -0x4810;
    0x00514920 jalr t9                       |     t9 ();
    0x00514924 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00514928 addiu a1, zero, 3             |     a1 = 3;
    0x0051492c move a0, s6                   |     a0 = s6;
    0x00514930 lw t9, -0x7a20(gp)            |     t9 = sym._php_stream_free;
    0x00514934 move s7, zero                 |     s7 = 0;
    0x00514938 jalr t9                       |     t9 ();
    0x0051493c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00514940 sw zero, 0xcf0(sp)            |     *(var_cf0h) = 0;
    0x00514944 sw zero, 0xce4(sp)            |     *(var_ce4h) = 0;
    0x00514948 sw zero, 0xcec(sp)            |     *(var_cech) = 0;
    0x0051494c move s1, zero                 |     s1 = 0;
                                             | label_40:
    0x00514950 move s6, zero                 |     s6 = 0;
    0x00514954 b 0x516fac                    |     goto label_82;
                                             | label_111:
    0x00514958 lw a0, 0x10(v0)               |     a0 = *((v0 + 4));
    0x0051495c b 0x5143ac                    |     goto label_6;
                                             | label_119:
    0x00514960 lbu v1, 8(s3)                 |     v1 = *((s3 + 8));
                                             |     if (v1 != v0) {
    0x00514964 bne v1, v0, 0x5149e8          |         goto label_9;
                                             |     }
    0x00514968 nop                           |     
    0x0051496c lw s2, (s3)                   |     s2 = *(s3);
    0x00514970 addiu s7, zero, 0x20          |     s7 = 0x20;
    0x00514974 addiu s2, s2, 0x10            |     s2 += 0x10;
                                             |     do {
    0x00514978 lb v0, (s2)                   |         v0 = *(s2);
    0x0051497c addiu s1, s2, 1               |         s1 = s2 + 1;
                                             |         if (v0 != s7) {
    0x00514980 beq v0, s7, 0x5149f0          |             
    0x00514984 addiu v1, zero, 9             |             v1 = 9;
                                             |             if (v0 == v1) {
    0x00514988 beq v0, v1, 0x5149f0          |                 goto label_124;
                                             |             }
    0x0051498c nop                           |             
    0x00514990 move s1, s2                   |             s1 = s2;
    0x00514994 addiu a0, zero, 0xd           |             a0 = 0xd;
    0x00514998 addiu v1, zero, 0xa           |             v1 = 0xa;
                                             | label_8:
    0x0051499c lb v0, (s1)                   |             v0 = *(s1);
                                             |             if (v0 != 0) {
    0x005149a0 beqz v0, 0x5149e8             |                 
    0x005149a4 nop                           |                 
    0x005149a8 addiu a1, zero, 0x3a          |                 a1 = 0x3a;
                                             |                 if (v0 == a1) {
    0x005149ac beq v0, a1, 0x5175dc          |                     goto label_125;
                                             |                 }
    0x005149b0 nop                           |                 
                                             |                 if (v0 != a0) {
    0x005149b4 beq v0, a0, 0x5149c4          |                     
    0x005149b8 nop                           |                     
                                             |                     if (v0 != v1) {
    0x005149bc bne v0, v1, 0x5149f8          |                         goto label_126;
                                             |                     }
    0x005149c0 nop                           |                     
                                             |                 }
                                             | label_10:
    0x005149c4 addiu a0, zero, 0xd           |                 a0 = 0xd;
                                             | label_12:
    0x005149c8 addiu v1, zero, 0xa           |                 v1 = 0xa;
                                             | label_13:
    0x005149cc lb v0, (s1)                   |                 v0 = *(s1);
                                             |                 if (v0 == a0) {
    0x005149d0 beq v0, a0, 0x514a3c          |                     goto label_127;
                                             |                 }
    0x005149d4 nop                           |                 
                                             |                 if (v0 == v1) {
    0x005149d8 beq v0, v1, 0x514a3c          |                     goto label_127;
                                             |                 }
    0x005149dc nop                           |                 
                                             |                 if (v0 != 0) {
    0x005149e0 bnez v0, 0x5149f0             |                     goto label_124;
                                             |                 }
    0x005149e4 nop                           |                 
                                             |             }
                                             | label_9:
    0x005149e8 addiu s3, s3, 0x18            |             s3 += 0x18;
    0x005149ec b 0x514790                    |             goto label_7;
                                             |         }
                                             | label_124:
    0x005149f0 move s2, s1                   |         s2 = s1;
    0x005149f4 b 0x514978                    |         
                                             |     } while (1);
                                             | label_126:
    0x005149f8 addiu s1, s1, 1               |     s1++;
    0x005149fc b 0x51499c                    |     goto label_8;
                                             | label_94:
    0x00514a00 addiu s1, s1, 1               |     s1++;
    0x00514a04 b 0x517610                    |     goto label_128;
                                             | label_11:
    0x00514a08 lb v0, (s1)                   |     v0 = *(s1);
                                             |     if (v0 == 0) {
    0x00514a0c beqz v0, 0x5149e8             |         goto label_9;
                                             |     }
    0x00514a10 nop                           |     
                                             |     if (v0 == a0) {
    0x00514a14 beq v0, a0, 0x5149c4          |         goto label_10;
                                             |     }
    0x00514a18 nop                           |     
    0x00514a1c addiu s1, s1, 1               |     s1++;
                                             |     if (v0 != v1) {
    0x00514a20 bne v0, v1, 0x514a08          |         goto label_11;
                                             |     }
    0x00514a24 addiu s1, s1, -1              |     s1 += -1;
    0x00514a28 addiu a0, zero, 0xd           |     a0 = 0xd;
    0x00514a2c b 0x5149c8                    |     goto label_12;
                                             | label_93:
    0x00514a30 addiu a0, zero, 0xd           |     a0 = 0xd;
                                             | label_92:
    0x00514a34 addiu v1, zero, 0xa           |     v1 = 0xa;
    0x00514a38 b 0x514a08                    |     goto label_11;
                                             | label_127:
    0x00514a3c addiu s1, s1, 1               |     s1++;
    0x00514a40 b 0x5149cc                    |     goto label_13;
                                             |     if (v1 != a0) {
                                             | label_118:
    0x00514a44 bne v1, a0, 0x51479c          |         goto label_14;
                                             |     }
    0x00514a48 nop                           |     
    0x00514a4c lw s2, (v0)                   |     s2 = *(v0);
    0x00514a50 lw v0, 0xc(s2)                |     v0 = *((s2 + 3));
    0x00514a54 lw v0, 0x430(sp)              |     v0 = *(var_430h);
                                             |     if (v0 == 0) {
    0x00514a58 beqz v0, 0x5147a0             |         goto label_15;
                                             |     }
    0x00514a5c lw s3, -0x7fc0(gp)            |     s3 = *((gp - 8176));
    0x00514a60 addiu s2, s2, 0x10            |     s2 += 0x10;
    0x00514a64 addiu s7, zero, 0x20          |     s7 = 0x20;
                                             |     /* str.Proxy_Authorization: */
    0x00514a68 addiu s3, s3, -0x4828         |     s3 += -0x4828;
                                             | label_16:
    0x00514a6c lb v0, (s2)                   |     v0 = *(s2);
    0x00514a70 addiu v1, zero, 9             |     v1 = 9;
                                             |     if (v0 == s7) {
    0x00514a74 beq v0, s7, 0x514ad8          |         goto label_129;
                                             |     }
    0x00514a78 move s1, s2                   |     s1 = s2;
                                             |     if (v0 == v1) {
    0x00514a7c beq v0, v1, 0x514ad8          |         goto label_129;
                                             |     }
    0x00514a80 addiu a0, zero, 0xd           |     a0 = 0xd;
    0x00514a84 addiu v1, zero, 0xa           |     v1 = 0xa;
                                             | label_17:
    0x00514a88 lb v0, (s1)                   |     v0 = *(s1);
    0x00514a8c addiu a1, zero, 0x3a          |     a1 = 0x3a;
                                             |     if (v0 == 0) {
    0x00514a90 beqz v0, 0x51479c             |         goto label_14;
                                             |     }
                                             |     if (v0 == a1) {
    0x00514a94 beq v0, a1, 0x5176e0          |         goto label_130;
                                             |     }
    0x00514a98 nop                           |     
                                             |     if (v0 != a0) {
    0x00514a9c beq v0, a0, 0x514aac          |         
    0x00514aa0 nop                           |         
                                             |         if (v0 != v1) {
    0x00514aa4 bne v0, v1, 0x514ae4          |             goto label_131;
                                             |         }
    0x00514aa8 nop                           |         
                                             |     }
                                             | label_18:
    0x00514aac addiu a0, zero, 0xd           |     a0 = 0xd;
                                             | label_20:
    0x00514ab0 addiu v1, zero, 0xa           |     v1 = 0xa;
                                             | label_21:
    0x00514ab4 lb v0, (s1)                   |     v0 = *(s1);
                                             |     if (v0 == a0) {
    0x00514ab8 beq v0, a0, 0x514b28          |         goto label_132;
                                             |     }
    0x00514abc nop                           |     
                                             |     if (v0 == v1) {
    0x00514ac0 beq v0, v1, 0x514b28          |         goto label_132;
                                             |     }
    0x00514ac4 nop                           |     
    0x00514ac8 lw v0, 0x430(sp)              |     v0 = *(var_430h);
                                             |     if (v0 == 0) {
    0x00514acc bnez v0, 0x514adc             |         
    0x00514ad0 b 0x5147a0                    |         goto label_15;
    0x00514ad4 nop                           |         
                                             | label_129:
    0x00514ad8 addiu s1, s2, 1               |         s1 = s2 + 1;
                                             |     }
    0x00514adc move s2, s1                   |     s2 = s1;
    0x00514ae0 b 0x514a6c                    |     goto label_16;
                                             | label_131:
    0x00514ae4 addiu s1, s1, 1               |     s1++;
    0x00514ae8 b 0x514a88                    |     goto label_17;
                                             | label_95:
    0x00514aec move s3, s1                   |     s3 = s1;
    0x00514af0 b 0x51764c                    |     goto label_133;
                                             | label_19:
    0x00514af4 lb v0, (s1)                   |     v0 = *(s1);
                                             |     if (v0 == 0) {
    0x00514af8 beqz v0, 0x51479c             |         goto label_14;
                                             |     }
    0x00514afc nop                           |     
                                             |     if (v0 == a0) {
    0x00514b00 beq v0, a0, 0x514aac          |         goto label_18;
                                             |     }
    0x00514b04 nop                           |     
    0x00514b08 addiu s1, s1, 1               |     s1++;
                                             |     if (v0 != v1) {
    0x00514b0c bne v0, v1, 0x514af4          |         goto label_19;
                                             |     }
    0x00514b10 addiu s1, s1, -1              |     s1 += -1;
    0x00514b14 addiu a0, zero, 0xd           |     a0 = 0xd;
    0x00514b18 b 0x514ab0                    |     goto label_20;
                                             | label_97:
    0x00514b1c addiu a0, zero, 0xd           |     a0 = 0xd;
                                             | label_96:
    0x00514b20 addiu v1, zero, 0xa           |     v1 = 0xa;
    0x00514b24 b 0x514af4                    |     goto label_19;
                                             | label_132:
    0x00514b28 addiu s1, s1, 1               |     s1++;
    0x00514b2c b 0x514ab4                    |     goto label_21;
                                             | label_121:
    0x00514b30 jalr t9                       |     t9 ();
    0x00514b34 nop                           |     
    0x00514b38 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00514b3c b 0x51489c                    |     goto label_22;
                                             | label_123:
    0x00514b40 lw t9, -0x6a2c(gp)            |     t9 = sym.php_stream_xport_crypto_enable;
    0x00514b44 addiu a1, zero, 1             |     a1 = 1;
    0x00514b48 move a0, s6                   |     a0 = s6;
    0x00514b4c jalr t9                       |     t9 ();
    0x00514b50 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 < 0) {
    0x00514b54 bltz v0, 0x51490c             |         goto label_23;
                                             |     }
    0x00514b58 lw v0, 0xd3c(sp)              |     v0 = *(arg_d3ch);
                                             | label_109:
    0x00514b5c andi v0, v0, 0x20             |     v0 &= 0x20;
    0x00514b60 lw t9, -0x7a5c(gp)            |     t9 = sym._php_stream_set_option;
                                             |     if (v0 == 0) {
    0x00514b64 beqz v0, 0x514d64             |         goto label_134;
                                             |     }
    0x00514b68 move a3, zero                 |     a3 = 0;
    0x00514b6c addiu a2, zero, 1             |     a2 = 1;
    0x00514b70 addiu a1, zero, 5             |     a1 = 5;
    0x00514b74 move a0, s6                   |     a0 = s6;
    0x00514b78 jalr t9                       |     t9 ();
    0x00514b7c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00514b80 sw v0, 0xcec(sp)              |     *(var_cech) = v0;
                                             |     do {
    0x00514b84 lw v0, 0x4c(s6)               |         v0 = *(var_d1ch);
    0x00514b88 lw t9, -0x6a40(gp)            |         t9 = sym.php_stream_context_set;
    0x00514b8c andi v1, v0, 0xc              |         v1 = v0 & 0xc;
    0x00514b90 sw v1, 0xcf0(sp)              |         *(var_cf0h) = v1;
    0x00514b94 addiu v1, zero, -0xd          |         v1 = -0xd;
    0x00514b98 and v0, v0, v1                |         v0 &= v1;
    0x00514b9c sw v0, 0x4c(s6)               |         *(var_d1ch) = v0;
    0x00514ba0 move a1, s0                   |         a1 = s0;
    0x00514ba4 move a0, s6                   |         a0 = s6;
    0x00514ba8 jalr t9                       |         t9 ();
    0x00514bac lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (s0 == 0) {
    0x00514bb0 beqz s0, 0x514dbc             |             goto label_135;
                                             |         }
    0x00514bb4 lw v0, (s0)                   |         v0 = *(s0);
    0x00514bb8 lw t9, -0x6a3c(gp)            |         t9 = sym.php_stream_notification_notify;
                                             |         if (v0 != 0) {
    0x00514bbc beqz v0, 0x514be8             |             
    0x00514bc0 sw zero, 0x1c(sp)             |             *(var_1ch) = 0;
    0x00514bc4 sw zero, 0x18(sp)             |             *(var_18h) = 0;
    0x00514bc8 sw zero, 0x14(sp)             |             *(var_14h) = 0;
    0x00514bcc sw zero, 0x10(sp)             |             *(var_10h) = 0;
    0x00514bd0 move a3, zero                 |             a3 = 0;
    0x00514bd4 move a2, zero                 |             a2 = 0;
    0x00514bd8 addiu a1, zero, 2             |             a1 = 2;
    0x00514bdc move a0, s0                   |             a0 = s0;
    0x00514be0 jalr t9                       |             t9 ();
    0x00514be4 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |         }
    0x00514be8 lw v0, 0xce8(sp)              |         v0 = *(var_ce8h);
    0x00514bec lw a2, -0x7fbc(gp)            |         a2 = *((gp - 8175));
                                             |         if (v0 != 0) {
    0x00514bf0 beqz v0, 0x514c1c             |             
    0x00514bf4 lw a2, -0x7fc0(gp)            |             a2 = *((gp - 8176));
    0x00514bf8 lw v0, 0xcdc(sp)              |             v0 = *(var_cdch);
    0x00514bfc lw t9, -0x6a28(gp)            |             t9 = sym.php_stream_context_get_option;
                                             |             /* str.max_redirects */
    0x00514c00 addiu a2, a2, -0x47e0         |             a2 += -0x47e0;
    0x00514c04 addiu a1, v0, -0x1440         |             a1 = v0 + -0x1440;
    0x00514c08 move a0, s0                   |             a0 = s0;
    0x00514c0c jalr t9                       |             t9 ();
    0x00514c10 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |             if (v0 != 0) {
    0x00514c14 bnez v0, 0x514d6c             |                 goto label_136;
                                             |             }
                                             | label_24:
    0x00514c18 lw a2, -0x7fbc(gp)            |             a2 = *((gp - 8175));
                                             |         }
    0x00514c1c lw v0, 0xcdc(sp)              |         v0 = *(var_cdch);
    0x00514c20 lw t9, -0x6a28(gp)            |         t9 = sym.php_stream_context_get_option;
                                             |         /* esilref: 'method' */
    0x00514c24 addiu a2, a2, 0x5930          |         a2 += 0x5930;
    0x00514c28 addiu a1, v0, -0x1440         |         a1 = v0 + -0x1440;
    0x00514c2c move a0, s0                   |         a0 = s0;
    0x00514c30 jalr t9                       |         t9 ();
    0x00514c34 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x00514c38 beqz v0, 0x514dbc             |             goto label_135;
                                             |         }
    0x00514c3c lbu a0, 8(v0)                 |         a0 = *((v0 + 8));
    0x00514c40 addiu v1, zero, 6             |         v1 = 6;
                                             |         if (a0 != v1) {
    0x00514c44 bne a0, v1, 0x514dbc          |             goto label_135;
                                             |         }
    0x00514c48 nop                           |         
    0x00514c4c lw s2, (v0)                   |         s2 = *(v0);
    0x00514c50 lw s3, 0xc(s2)                |         s3 = *((s2 + 3));
    0x00514c54 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |         if (s3 == 0) {
    0x00514c58 beqz s3, 0x514dc0             |             goto label_137;
                                             |         }
    0x00514c5c lw v1, 0xd4c(sp)              |         v1 = *(arg_d4ch);
    0x00514c60 addiu v0, zero, 1             |         v0 = 1;
    0x00514c64 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |         if (v1 != v0) {
    0x00514c68 beq v1, v0, 0x514ca0          |             
    0x00514c6c addiu v0, zero, 3             |             v0 = 3;
    0x00514c70 addiu v0, zero, 4             |             v0 = 4;
                                             |             if (s3 != v0) {
    0x00514c74 bne s3, v0, 0x514d98          |                 goto label_138;
                                             |             }
    0x00514c78 lw a0, -0x7fc0(gp)            |             a0 = *((gp - 8176));
    0x00514c7c addiu a2, zero, 3             |             a2 = 3;
    0x00514c80 addiu a1, s2, 0x10            |             a1 = s2 + 0x10;
                                             |             /* esilref: 'GET' */
    0x00514c84 addiu a0, a0, -0x47d0         |             a0 += -0x47d0;
                                             | label_25:
    0x00514c88 lw t9, -0x5f04(gp)            |             t9 = sym.imp.memcmp;
    0x00514c8c jalr t9                       |             t9 ();
    0x00514c90 nop                           |             
    0x00514c94 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |             if (v0 != 0) {
    0x00514c98 bnez v0, 0x514dbc             |                 goto label_135;
                                             |             }
    0x00514c9c lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
                                             |         }
    0x00514ca0 addiu s2, s2, 0x10            |         s2 += 0x10;
                                             |         if (v0 == 0) {
    0x00514ca4 beqz v0, 0x514db4             |             goto label_139;
                                             |         }
    0x00514ca8 lw s1, 0xc(v0)                |         s1 = *((v0 + 3));
    0x00514cac lw v0, 0xcc4(sp)              |         v0 = *(var_cc4h);
    0x00514cb0 addu s1, s3, s1               |         s1 = s3 + s1;
    0x00514cb4 sltu v0, s1, v0               |         v0 = (s1 < v0) ? 1 : 0;
    0x00514cb8 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |         if (v0 == 0) {
    0x00514cbc bnez v0, 0x514cd8             |             
                                             | label_26:
    0x00514cc0 lw t9, -0x7ed4(gp)            |             t9 = sym.smart_str_erealloc;
    0x00514cc4 move a1, s1                   |             a1 = s1;
    0x00514cc8 addiu a0, sp, 0xcc0           |             a0 = sp + 0xcc0;
    0x00514ccc jalr t9                       |             t9 ();
    0x00514cd0 lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00514cd4 lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
                                             |         }
    0x00514cd8 lw t9, -0x6148(gp)            |         t9 = sym.imp.memcpy;
    0x00514cdc addiu a0, v0, 0x10            |         a0 = v0 + 0x10;
    0x00514ce0 lw v0, 0xc(v0)                |         v0 = *((v0 + 3));
    0x00514ce4 move a1, s2                   |         a1 = s2;
    0x00514ce8 move a2, s3                   |         a2 = s3;
    0x00514cec addu a0, a0, v0               |         a0 += v0;
    0x00514cf0 jalr t9                       |         t9 ();
    0x00514cf4 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
    0x00514cf8 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00514cfc addiu s2, s1, 1               |         s2 = s1 + 1;
    0x00514d00 sw s1, 0xc(v0)                |         *((v0 + 3)) = s1;
    0x00514d04 lw v0, 0xcc4(sp)              |         v0 = *(var_cc4h);
    0x00514d08 sltu v0, s2, v0               |         v0 = (s2 < v0) ? 1 : 0;
    0x00514d0c lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |         if (v0 == 0) {
    0x00514d10 bnez v0, 0x514d2c             |             
    0x00514d14 lw t9, -0x7ed4(gp)            |             t9 = sym.smart_str_erealloc;
    0x00514d18 move a1, s2                   |             a1 = s2;
    0x00514d1c addiu a0, sp, 0xcc0           |             a0 = sp + 0xcc0;
    0x00514d20 jalr t9                       |             t9 ();
    0x00514d24 lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00514d28 lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
                                             |         }
    0x00514d2c addiu v1, zero, 0x20          |         v1 = 0x20;
    0x00514d30 addu s1, v0, s1               |         s1 = v0 + s1;
    0x00514d34 sb v1, 0x10(s1)               |         *((s1 + 16)) = v1;
    0x00514d38 sw s2, 0xc(v0)                |         *((v0 + 3)) = s2;
                                             |         if (s4 == 0) {
    0x00514d3c beqz s4, 0x514e30             |             goto label_140;
                                             |         }
                                             | label_27:
    0x00514d40 lw t9, -0x6154(gp)            |         t9 = sym.imp.strlen;
    0x00514d44 lw a0, 0xd34(sp)              |         a0 = *(arg_d34h);
    0x00514d48 jalr t9                       |         t9 ();
    0x00514d4c move s2, v0                   |         s2 = v0;
    0x00514d50 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
    0x00514d54 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x00514d58 bnez v0, 0x514f98             |             goto label_141;
                                             |         }
    0x00514d5c move s1, s2                   |         s1 = s2;
    0x00514d60 b 0x514fb0                    |         goto label_142;
                                             | label_134:
    0x00514d64 sw zero, 0xcec(sp)            |         *(var_cech) = 0;
    0x00514d68 b 0x514b84                    |         
                                             |     } while (1);
                                             | label_136:
    0x00514d6c lbu a0, 8(v0)                 |     a0 = *((v0 + 8));
    0x00514d70 addiu v1, zero, 4             |     v1 = 4;
    0x00514d74 lw t9, -0x7ec0(gp)            |     t9 = sym._zval_get_long_func;
                                             |     if (a0 != v1) {
    0x00514d78 bne a0, v1, 0x514d88          |         goto label_143;
                                             |     }
    0x00514d7c lw v0, (v0)                   |     v0 = *(v0);
                                             |     do {
    0x00514d80 sw v0, 0xd48(sp)              |         *(arg_d48h) = v0;
    0x00514d84 b 0x514c18                    |         goto label_24;
                                             | label_143:
    0x00514d88 move a0, v0                   |         a0 = v0;
    0x00514d8c jalr t9                       |         t9 ();
    0x00514d90 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00514d94 b 0x514d80                    |         
                                             |     } while (1);
                                             | label_138:
    0x00514d98 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             |     if (s3 == v0) {
    0x00514d9c bne s3, v0, 0x514dc0          |         
    0x00514da0 lw a0, -0x7fc0(gp)            |         a0 = *((gp - 8176));
    0x00514da4 addiu a2, zero, 4             |         a2 = 4;
    0x00514da8 addiu a1, s2, 0x10            |         a1 = s2 + 0x10;
                                             |         /* str.HEAD */
    0x00514dac addiu a0, a0, -0x47cc         |         a0 += -0x47cc;
    0x00514db0 b 0x514c88                    |         goto label_25;
                                             | label_139:
    0x00514db4 move s1, s3                   |         s1 = s3;
    0x00514db8 b 0x514cc0                    |         goto label_26;
                                             | label_135:
    0x00514dbc lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |     }
                                             | label_137:
    0x00514dc0 addiu s1, zero, 4             |     s1 = 4;
                                             |     if (v0 != 0) {
    0x00514dc4 beqz v0, 0x514de0             |         
    0x00514dc8 lw s1, 0xc(v0)                |         s1 = *((v0 + 3));
    0x00514dcc lw v0, 0xcc4(sp)              |         v0 = *(var_cc4h);
    0x00514dd0 addiu s1, s1, 4               |         s1 += 4;
    0x00514dd4 sltu v0, s1, v0               |         v0 = (s1 < v0) ? 1 : 0;
    0x00514dd8 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |         if (v0 != 0) {
    0x00514ddc bnez v0, 0x514df8             |             goto label_144;
                                             |         }
                                             |     }
    0x00514de0 lw t9, -0x7ed4(gp)            |     t9 = sym.smart_str_erealloc;
    0x00514de4 move a1, s1                   |     a1 = s1;
    0x00514de8 addiu a0, sp, 0xcc0           |     a0 = sp + 0xcc0;
    0x00514dec jalr t9                       |     t9 ();
    0x00514df0 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00514df4 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             | label_144:
    0x00514df8 lw a1, -0x7fc0(gp)            |     a1 = *((gp - 8176));
    0x00514dfc addiu a0, v0, 0x10            |     a0 = v0 + 0x10;
    0x00514e00 lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x00514e04 lw t9, -0x6148(gp)            |     t9 = sym.imp.memcpy;
    0x00514e08 addiu a2, zero, 4             |     a2 = 4;
                                             |     /* str.GET_ */
    0x00514e0c addiu a1, a1, -0x47c4         |     a1 += -0x47c4;
    0x00514e10 addu a0, a0, v0               |     a0 += v0;
    0x00514e14 jalr t9                       |     t9 ();
    0x00514e18 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x00514e1c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00514e20 sw s1, 0xc(v0)                |     *((v0 + 3)) = s1;
                                             |     if (s4 != 0) {
    0x00514e24 bnez s4, 0x514d40             |         goto label_27;
                                             |     }
                                             |     if (s0 == 0) {
    0x00514e28 beqz s0, 0x514e6c             |         goto label_145;
                                             |     }
    0x00514e2c nop                           |     
                                             | label_140:
    0x00514e30 lw a2, -0x7fc0(gp)            |     a2 = *((gp - 8176));
    0x00514e34 lw v0, 0xcdc(sp)              |     v0 = *(var_cdch);
    0x00514e38 lw t9, -0x6a28(gp)            |     t9 = sym.php_stream_context_get_option;
                                             |     /* str.request_fulluri */
    0x00514e3c addiu a2, a2, -0x47bc         |     a2 += -0x47bc;
    0x00514e40 addiu a1, v0, -0x1440         |     a1 = v0 + -0x1440;
    0x00514e44 move a0, s0                   |     a0 = s0;
    0x00514e48 jalr t9                       |     t9 ();
    0x00514e4c lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x00514e50 beqz v0, 0x514e6c             |         goto label_145;
                                             |     }
    0x00514e54 lw t9, -0x7ec4(gp)            |     t9 = sym.zend_is_true;
    0x00514e58 move a0, v0                   |     a0 = v0;
    0x00514e5c jalr t9                       |     t9 ();
    0x00514e60 andi v0, v0, 0xff             |     v0 &= 0xff;
    0x00514e64 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x00514e68 bnez v0, 0x514d40             |         goto label_27;
                                             |     }
                                             | label_145:
    0x00514e6c lw s2, 0x14(fp)               |     s2 = *(arg_d44h);
    0x00514e70 lw s1, 0xcc0(sp)              |     s1 = *(var_cc0h);
                                             |     if (s2 == 0) {
    0x00514e74 beqz s2, 0x515638             |         goto label_146;
                                             |     }
    0x00514e78 lb v0, (s2)                   |     v0 = *(s2);
    0x00514e7c lw t9, -0x6154(gp)            |     t9 = sym.imp.strlen;
                                             |     if (v0 == 0) {
    0x00514e80 beqz v0, 0x515638             |         goto label_146;
                                             |     }
    0x00514e84 move a0, s2                   |     a0 = s2;
    0x00514e88 jalr t9                       |     t9 ();
    0x00514e8c move s3, v0                   |     s3 = v0;
    0x00514e90 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (s1 == 0) {
    0x00514e94 beqz s1, 0x515630             |         goto label_147;
                                             |     }
    0x00514e98 lw s1, 0xc(s1)                |     s1 = *((s1 + 3));
    0x00514e9c addu s1, v0, s1               |     s1 = v0 + s1;
    0x00514ea0 lw v0, 0xcc4(sp)              |     v0 = *(var_cc4h);
    0x00514ea4 sltu v0, s1, v0               |     v0 = (s1 < v0) ? 1 : 0;
    0x00514ea8 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x00514eac bnez v0, 0x514ec8             |     
                                             |     while (1) {
    0x00514eb0 lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x00514eb4 move a1, s1                   |         a1 = s1;
    0x00514eb8 addiu a0, sp, 0xcc0           |         a0 = sp + 0xcc0;
    0x00514ebc jalr t9                       |         t9 ();
    0x00514ec0 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00514ec4 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
    0x00514ec8 lw t9, -0x6148(gp)            |         t9 = sym.imp.memcpy;
    0x00514ecc addiu a0, v0, 0x10            |         a0 = v0 + 0x10;
    0x00514ed0 lw v0, 0xc(v0)                |         v0 = *((v0 + 3));
    0x00514ed4 move a2, s3                   |         a2 = s3;
    0x00514ed8 move a1, s2                   |         a1 = s2;
    0x00514edc addu a0, a0, v0               |         a0 += v0;
    0x00514ee0 jalr t9                       |         t9 ();
    0x00514ee4 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00514ee8 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             | label_28:
    0x00514eec sw s1, 0xc(v0)                |         *((v0 + 3)) = s1;
    0x00514ef0 lw v0, 0x18(fp)               |         v0 = *(arg_d48h);
    0x00514ef4 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |         if (v0 != 0) {
    0x00514ef8 beqz v0, 0x514ff0             |             
    0x00514efc addiu s1, zero, 1             |             s1 = 1;
                                             |             if (v0 != 0) {
    0x00514f00 beqz v0, 0x514f1c             |                 
    0x00514f04 lw s1, 0xc(v0)                |                 s1 = *((v0 + 3));
    0x00514f08 lw v0, 0xcc4(sp)              |                 v0 = *(var_cc4h);
    0x00514f0c addiu s1, s1, 1               |                 s1++;
    0x00514f10 sltu v0, s1, v0               |                 v0 = (s1 < v0) ? 1 : 0;
    0x00514f14 lw v0, 0xcc0(sp)              |                 v0 = *(var_cc0h);
                                             |                 if (v0 != 0) {
    0x00514f18 bnez v0, 0x514f34             |                     goto label_148;
                                             |                 }
                                             |             }
    0x00514f1c lw t9, -0x7ed4(gp)            |             t9 = sym.smart_str_erealloc;
    0x00514f20 move a1, s1                   |             a1 = s1;
    0x00514f24 addiu a0, sp, 0xcc0           |             a0 = sp + 0xcc0;
    0x00514f28 jalr t9                       |             t9 ();
    0x00514f2c lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00514f30 lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
                                             | label_148:
    0x00514f34 addiu a0, zero, 0x3f          |             a0 = 0x3f;
    0x00514f38 addu v1, v0, s1               |             v1 = v0 + s1;
    0x00514f3c lw t9, -0x6154(gp)            |             t9 = sym.imp.strlen;
    0x00514f40 sb a0, 0xf(v1)                |             *((v1 + 15)) = a0;
    0x00514f44 lw s2, 0x18(fp)               |             s2 = *(arg_d48h);
    0x00514f48 sw s1, 0xc(v0)                |             *((v0 + 3)) = s1;
    0x00514f4c move a0, s2                   |             a0 = s2;
    0x00514f50 jalr t9                       |             t9 ();
    0x00514f54 addu s1, v0, s1               |             s1 = v0 + s1;
    0x00514f58 move s3, v0                   |             s3 = v0;
    0x00514f5c lw v0, 0xcc4(sp)              |             v0 = *(var_cc4h);
    0x00514f60 sltu v0, s1, v0               |             v0 = (s1 < v0) ? 1 : 0;
    0x00514f64 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |             if (v0 == 0) {
    0x00514f68 bnez v0, 0x514f80             |                 
    0x00514f6c lw t9, -0x7ed4(gp)            |                 t9 = sym.smart_str_erealloc;
    0x00514f70 move a1, s1                   |                 a1 = s1;
    0x00514f74 addiu a0, sp, 0xcc0           |                 a0 = sp + 0xcc0;
    0x00514f78 jalr t9                       |                 t9 ();
    0x00514f7c lw gp, 0x28(sp)               |                 gp = *(var_28h);
                                             |             }
    0x00514f80 lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
    0x00514f84 move a2, s3                   |             a2 = s3;
    0x00514f88 addiu a0, v0, 0x10            |             a0 = v0 + 0x10;
    0x00514f8c move a1, s2                   |             a1 = s2;
    0x00514f90 lw v0, 0xc(v0)                |             v0 = *((v0 + 3));
    0x00514f94 b 0x514fd8                    |             goto label_149;
                                             | label_141:
    0x00514f98 lw s1, 0xc(v0)                |             s1 = *((v0 + 3));
    0x00514f9c lw v0, 0xcc4(sp)              |             v0 = *(var_cc4h);
    0x00514fa0 addu s1, s2, s1               |             s1 = s2 + s1;
    0x00514fa4 sltu v0, s1, v0               |             v0 = (s1 < v0) ? 1 : 0;
    0x00514fa8 lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
                                             |             if (v0 == 0) {
    0x00514fac bnez v0, 0x514fc8             |                 
                                             | label_142:
    0x00514fb0 lw t9, -0x7ed4(gp)            |                 t9 = sym.smart_str_erealloc;
    0x00514fb4 move a1, s1                   |                 a1 = s1;
    0x00514fb8 addiu a0, sp, 0xcc0           |                 a0 = sp + 0xcc0;
    0x00514fbc jalr t9                       |                 t9 ();
    0x00514fc0 lw gp, 0x28(sp)               |                 gp = *(var_28h);
    0x00514fc4 lw v0, 0xcc0(sp)              |                 v0 = *(var_cc0h);
                                             |             }
    0x00514fc8 lw a1, 0xd34(sp)              |             a1 = *(arg_d34h);
    0x00514fcc addiu a0, v0, 0x10            |             a0 = v0 + 0x10;
    0x00514fd0 lw v0, 0xc(v0)                |             v0 = *((v0 + 3));
    0x00514fd4 move a2, s2                   |             a2 = s2;
                                             | label_149:
    0x00514fd8 lw t9, -0x6148(gp)            |             t9 = sym.imp.memcpy;
    0x00514fdc addu a0, a0, v0               |             a0 += v0;
    0x00514fe0 jalr t9                       |             t9 ();
    0x00514fe4 lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
    0x00514fe8 lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00514fec sw s1, 0xc(v0)                |             *((v0 + 3)) = s1;
                                             |         }
    0x00514ff0 lw a2, -0x7fc0(gp)            |         a2 = *((gp - 8176));
                                             |         if (s0 == 0) {
    0x00514ff4 beqz s0, 0x5156a0             |             goto label_150;
                                             |         }
    0x00514ff8 lw v0, 0xcdc(sp)              |         v0 = *(var_cdch);
    0x00514ffc lw t9, -0x6a28(gp)            |         t9 = sym.php_stream_context_get_option;
                                             |         /* str.protocol_version */
    0x00515000 addiu a2, a2, -0x47ac         |         a2 += -0x47ac;
    0x00515004 addiu a1, v0, -0x1440         |         a1 = v0 + -0x1440;
    0x00515008 move a0, s0                   |         a0 = s0;
    0x0051500c jalr t9                       |         t9 ();
    0x00515010 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x00515014 beqz v0, 0x5156a0             |             goto label_150;
                                             |         }
    0x00515018 lbu a0, 8(v0)                 |         a0 = *((v0 + 8));
    0x0051501c addiu v1, zero, 5             |         v1 = 5;
    0x00515020 lw t9, -0x7ebc(gp)            |         t9 = sym._zval_get_double_func;
                                             |         if (a0 != v1) {
    0x00515024 bne a0, v1, 0x515688          |             goto label_151;
                                             |         }
    0x00515028 lw v1, 4(v0)                  |         v1 = *((v0 + 1));
    0x0051502c lw v0, (v0)                   |         v0 = *(v0);
                                             | label_29:
    0x00515030 lw a2, -0x7fc0(gp)            |         a2 = *((gp - 8176));
    0x00515034 lw t9, -0x7a10(gp)            |         t9 = sym.zend_spprintf;
    0x00515038 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0051503c sw v1, 0x14(sp)               |         *(var_14h) = v1;
                                             |         /* str._.1F */
    0x00515040 addiu a2, a2, -0x4798         |         a2 += -0x4798;
    0x00515044 move a1, zero                 |         a1 = 0;
    0x00515048 addiu a0, sp, 0x30            |         a0 = sp + 0x30;
    0x0051504c jalr t9                       |         t9 ();
    0x00515050 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
    0x00515054 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x00515058 beqz v0, 0x515698             |             goto label_152;
                                             |         }
    0x0051505c lw s1, 0xc(v0)                |         s1 = *((v0 + 3));
    0x00515060 lw v0, 0xcc4(sp)              |         v0 = *(var_cc4h);
    0x00515064 addiu s1, s1, 6               |         s1 += 6;
    0x00515068 sltu v0, s1, v0               |         v0 = (s1 < v0) ? 1 : 0;
    0x0051506c lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |         if (v0 == 0) {
    0x00515070 bnez v0, 0x51508c             |             
                                             | label_30:
    0x00515074 lw t9, -0x7ed4(gp)            |             t9 = sym.smart_str_erealloc;
    0x00515078 move a1, s1                   |             a1 = s1;
    0x0051507c addiu a0, sp, 0xcc0           |             a0 = sp + 0xcc0;
    0x00515080 jalr t9                       |             t9 ();
    0x00515084 lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00515088 lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
                                             |         }
    0x0051508c lw a1, -0x7fc0(gp)            |         a1 = *((gp - 8176));
    0x00515090 addiu a0, v0, 0x10            |         a0 = v0 + 0x10;
    0x00515094 lw v0, 0xc(v0)                |         v0 = *((v0 + 3));
    0x00515098 lw t9, -0x6148(gp)            |         t9 = sym.imp.memcpy;
    0x0051509c addiu a2, zero, 6             |         a2 = 6;
                                             |         /* str._HTTP_ */
    0x005150a0 addiu a1, a1, -0x4790         |         a1 += -0x4790;
    0x005150a4 addu a0, a0, v0               |         a0 += v0;
    0x005150a8 jalr t9                       |         t9 ();
    0x005150ac lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005150b0 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
    0x005150b4 lw s2, 0x30(sp)               |         s2 = *(var_30h);
    0x005150b8 lw t9, -0x6154(gp)            |         t9 = sym.imp.strlen;
    0x005150bc sw s1, 0xc(v0)                |         *((v0 + 3)) = s1;
    0x005150c0 move a0, s2                   |         a0 = s2;
    0x005150c4 jalr t9                       |         t9 ();
    0x005150c8 addu s1, v0, s1               |         s1 = v0 + s1;
    0x005150cc move s3, v0                   |         s3 = v0;
    0x005150d0 lw v0, 0xcc4(sp)              |         v0 = *(var_cc4h);
    0x005150d4 sltu v0, s1, v0               |         v0 = (s1 < v0) ? 1 : 0;
    0x005150d8 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x005150dc bnez v0, 0x5150f4             |             
    0x005150e0 lw t9, -0x7ed4(gp)            |             t9 = sym.smart_str_erealloc;
    0x005150e4 move a1, s1                   |             a1 = s1;
    0x005150e8 addiu a0, sp, 0xcc0           |             a0 = sp + 0xcc0;
    0x005150ec jalr t9                       |             t9 ();
    0x005150f0 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |         }
    0x005150f4 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
    0x005150f8 lw t9, -0x6148(gp)            |         t9 = sym.imp.memcpy;
    0x005150fc addiu a0, v0, 0x10            |         a0 = v0 + 0x10;
    0x00515100 lw v0, 0xc(v0)                |         v0 = *((v0 + 3));
    0x00515104 move a2, s3                   |         a2 = s3;
    0x00515108 move a1, s2                   |         a1 = s2;
    0x0051510c addu a0, a0, v0               |         a0 += v0;
    0x00515110 jalr t9                       |         t9 ();
    0x00515114 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
    0x00515118 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0051511c sw s1, 0xc(v0)                |         *((v0 + 3)) = s1;
    0x00515120 lw v0, 0xcc4(sp)              |         v0 = *(var_cc4h);
    0x00515124 addiu s1, s1, 2               |         s1 += 2;
    0x00515128 sltu v0, s1, v0               |         v0 = (s1 < v0) ? 1 : 0;
    0x0051512c lw v1, 0xcc0(sp)              |         v1 = *(var_cc0h);
                                             |         if (v0 == 0) {
    0x00515130 bnez v0, 0x51514c             |             
    0x00515134 lw t9, -0x7ed4(gp)            |             t9 = sym.smart_str_erealloc;
    0x00515138 move a1, s1                   |             a1 = s1;
    0x0051513c addiu a0, sp, 0xcc0           |             a0 = sp + 0xcc0;
    0x00515140 jalr t9                       |             t9 ();
    0x00515144 lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00515148 lw v1, 0xcc0(sp)              |             v1 = *(var_cc0h);
                                             |         }
    0x0051514c lw t9, -0x7fe4(gp)            |         t9 = sym._efree;
    0x00515150 addiu v0, v1, 0x10            |         v0 = v1 + 0x10;
    0x00515154 lw v1, 0xc(v1)                |         v1 = *((v1 + 3));
    0x00515158 addu v0, v0, v1               |         v0 += v1;
    0x0051515c addiu v1, zero, 0xd           |         v1 = 0xd;
    0x00515160 sb v1, (v0)                   |         *(v0) = v1;
    0x00515164 addiu v1, zero, 0xa           |         v1 = 0xa;
    0x00515168 sb v1, 1(v0)                  |         *((v0 + 1)) = v1;
    0x0051516c lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
    0x00515170 lw a0, 0x30(sp)               |         a0 = *(var_30h);
    0x00515174 sw s1, 0xc(v0)                |         *((v0 + 3)) = s1;
    0x00515178 jalr t9                       |         t9 ();
    0x0051517c lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             | label_31:
    0x00515180 lw a2, -0x7fc0(gp)            |         a2 = *((gp - 8176));
    0x00515184 lw v0, 0xcdc(sp)              |         v0 = *(var_cdch);
    0x00515188 lw t9, -0x6a28(gp)            |         t9 = sym.php_stream_context_get_option;
                                             |         /* esilref: 'header' */
    0x0051518c addiu a2, a2, -0x46ac         |         a2 += -0x46ac;
    0x00515190 addiu a1, v0, -0x1440         |         a1 = v0 + -0x1440;
    0x00515194 move a0, s0                   |         a0 = s0;
    0x00515198 jalr t9                       |         t9 ();
    0x0051519c lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x005151a0 beqz v0, 0x51570c             |             goto label_153;
                                             |         }
    0x005151a4 lbu v1, 8(v0)                 |         v1 = *((v0 + 8));
    0x005151a8 addiu a0, zero, 7             |         a0 = 7;
    0x005151ac addiu s7, sp, 0x30            |         s7 = sp + 0x30;
                                             |         if (v1 != a0) {
    0x005151b0 bne v1, a0, 0x515800          |             goto label_154;
                                             |         }
    0x005151b4 lw v0, (v0)                   |         v0 = *(v0);
    0x005151b8 addiu v1, zero, 0x18          |         v1 = 0x18;
    0x005151bc sw zero, 0x30(sp)             |         *(var_30h) = 0;
    0x005151c0 lw s2, 0x10(v0)               |         s2 = *((v0 + 4));
    0x005151c4 lw v0, 0x14(v0)               |         v0 = *((v0 + 5));
    0x005151c8 sw zero, 0x34(sp)             |         *(var_34h) = 0;
    0x005151cc mul a0, v1, v0                |         __asm ("mul a0, v1, v0");
    0x005151d0 addu v0, a0, s2               |         v0 = a0 + s2;
    0x005151d4 sw v0, 0xce4(sp)              |         *(var_ce4h) = v0;
                                             | label_32:
    0x005151d8 lw v0, 0xce4(sp)              |         v0 = *(var_ce4h);
    0x005151dc lw a0, 0x30(sp)               |         a0 = *(var_30h);
                                             |         if (s2 != v0) {
    0x005151e0 bne s2, v0, 0x515718          |             goto label_155;
                                             |         }
    0x005151e4 lw t9, -0x6b10(gp)            |         t9 = sym.php_trim;
                                             |         if (a0 == 0) {
    0x005151e8 beqz a0, 0x51570c             |             goto label_153;
                                             |         }
    0x005151ec lw v0, 0xc(a0)                |         v0 = *((a0 + 3));
    0x005151f0 addu v0, a0, v0               |         v0 = a0 + v0;
    0x005151f4 addiu a3, zero, 3             |         a3 = 3;
    0x005151f8 sb zero, 0x10(v0)             |         *((v0 + 16)) = 0;
    0x005151fc move a2, zero                 |         a2 = 0;
    0x00515200 move a1, zero                 |         a1 = 0;
    0x00515204 jalr t9                       |         t9 ();
    0x00515208 lw a0, 0x30(sp)               |         a0 = *(var_30h);
    0x0051520c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00515210 move s2, v0                   |         s2 = v0;
                                             |         if (a0 != 0) {
    0x00515214 beqz a0, 0x515254             |             
    0x00515218 lbu v0, 5(a0)                 |             v0 = *((a0 + 5));
    0x0051521c andi v1, v0, 2                |             v1 = v0 & 2;
                                             |             if (v1 != 0) {
    0x00515220 bnez v1, 0x515254             |                 goto label_33;
                                             |             }
    0x00515224 nop                           |             
    0x00515228 lw v1, (a0)                   |             v1 = *(a0);
    0x0051522c addiu v1, v1, -1              |             v1 += -1;
    0x00515230 sw v1, (a0)                   |             *(a0) = v1;
                                             |             if (v1 != 0) {
    0x00515234 bnez v1, 0x515254             |                 goto label_33;
                                             |             }
    0x00515238 andi v0, v0, 1                |             v0 &= 1;
    0x0051523c lw t9, -0x7fe4(gp)            |             t9 = sym._efree;
                                             |             if (v0 == 0) {
    0x00515240 beqz v0, 0x5157f0             |                 goto label_156;
                                             |             }
    0x00515244 lw t9, -0x6094(gp)            |             t9 = *((gp - 6181));
    0x00515248 jalr t9                       |             t9 ();
    0x0051524c nop                           |             
    0x00515250 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |         }
                                             | label_33:
    0x00515254 move s4, zero                 |         s4 = 0;
                                             |         if (s2 == 0) {
    0x00515258 beqz s2, 0x515710             |             goto label_34;
                                             |         }
    0x0051525c lw a1, 0xc(s2)                |         a1 = *((s2 + 3));
    0x00515260 lw t9, -0x7e84(gp)            |         t9 = sym._estrndup;
                                             |         if (a1 == 0) {
    0x00515264 beqz a1, 0x517738             |             goto label_157;
                                             |         }
    0x00515268 addiu s3, s2, 0x10            |         s3 = s2 + 0x10;
    0x0051526c move a0, s3                   |         a0 = s3;
    0x00515270 jalr t9                       |         t9 ();
    0x00515274 move s4, v0                   |         s4 = v0;
    0x00515278 lbu v0, 5(s2)                 |         v0 = *((s2 + 5));
    0x0051527c andi v0, v0, 2                |         v0 &= 2;
    0x00515280 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x00515284 beqz v0, 0x515838             |             goto label_158;
                                             |         }
    0x00515288 lw s1, 0xc(s2)                |         s1 = *((s2 + 3));
                                             | label_36:
    0x0051528c lw t9, -0x7f60(gp)            |         t9 = sym._emalloc;
    0x00515290 addiu a0, s1, 0x18            |         a0 = s1 + 0x18;
    0x00515294 addiu v0, zero, -8            |         v0 = -8;
    0x00515298 and a0, a0, v0                |         a0 &= v0;
    0x0051529c jalr t9                       |         t9 ();
    0x005152a0 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005152a4 move s2, v0                   |         s2 = v0;
    0x005152a8 addiu v0, zero, 1             |         v0 = 1;
    0x005152ac sw v0, (s2)                   |         *(s2) = v0;
    0x005152b0 lw t9, -0x6148(gp)            |         t9 = sym.imp.memcpy;
    0x005152b4 addiu v0, zero, 6             |         v0 = 6;
    0x005152b8 sw s1, 0xc(s2)                |         *((s2 + 3)) = s1;
    0x005152bc move a2, s1                   |         a2 = s1;
    0x005152c0 addu s1, s2, s1               |         s1 = s2 + s1;
    0x005152c4 sw v0, 4(s2)                  |         *((s2 + 1)) = v0;
    0x005152c8 sw zero, 8(s2)                |         *((s2 + 2)) = 0;
    0x005152cc move a1, s3                   |         a1 = s3;
    0x005152d0 addiu a0, s2, 0x10            |         a0 = s2 + 0x10;
    0x005152d4 jalr t9                       |         t9 ();
    0x005152d8 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005152dc sb zero, 0x10(s1)             |         *((s1 + 16)) = 0;
                                             | label_35:
    0x005152e0 lw t9, -0x77a0(gp)            |         t9 = sym.php_strtolower;
    0x005152e4 addiu s3, s2, 0x10            |         s3 = s2 + 0x10;
    0x005152e8 lw a1, 0xc(s2)                |         a1 = *((s2 + 3));
    0x005152ec move a0, s3                   |         a0 = s3;
    0x005152f0 bal 0x4f5ac8                  |         sym_php_strtolower ();
    0x005152f4 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005152f8 lw v0, -0x7fc0(gp)            |         v0 = *((gp - 8176));
    0x005152fc sw v0, 0xce4(sp)              |         *(var_ce4h) = v0;
    0x00515300 lw v0, 0xce8(sp)              |         v0 = *(var_ce8h);
    0x00515304 lw s7, -0x7fc0(gp)            |         s7 = *((gp - 8176));
                                             |         if (v0 == 0) {
    0x00515308 bnez v0, 0x515344             |             
    0x0051530c lw s1, -0x6a54(gp)            |             s1 = *((gp - 6805));
    0x00515310 lw v0, -0x7fc0(gp)            |             v0 = *((gp - 8176));
                                             |             /* fcn.00513e98 */
    0x00515314 addiu s1, s1, 0x3e98          |             s1 += 0x3e98;
                                             |             /* str.content_length: */
    0x00515318 addiu a2, v0, -0x4788         |             a2 = v0 + -0x4788;
    0x0051531c move a1, s3                   |             a1 = s3;
    0x00515320 move t9, s1                   |             t9 = s1;
    0x00515324 move a0, s4                   |             a0 = s4;
    0x00515328 bal 0x513e98                  |             fcn_00513e98 ();
                                             |             /* str.content_type: */
    0x0051532c addiu a2, s7, -0x4778         |             a2 = s7 + -0x4778;
    0x00515330 move a1, s3                   |             a1 = s3;
    0x00515334 move t9, s1                   |             t9 = s1;
    0x00515338 move a0, s4                   |             a0 = s4;
    0x0051533c bal 0x513e98                  |             fcn_00513e98 ();
    0x00515340 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |         }
    0x00515344 lw a1, -0x7fc0(gp)            |         a1 = *((gp - 8176));
    0x00515348 lw t9, -0x6218(gp)            |         t9 = sym.imp.strstr;
                                             |         /* str.user_agent: */
    0x0051534c addiu a1, a1, -0x4768         |         a1 += -0x4768;
    0x00515350 move a0, s3                   |         a0 = s3;
    0x00515354 jalr t9                       |         t9 ();
    0x00515358 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x0051535c beqz v0, 0x515854             |             goto label_159;
                                             |         }
    0x00515360 addiu s1, zero, 1             |         s1 = 1;
                                             |         if (s3 != v0) {
    0x00515364 beq s3, v0, 0x515390          |             
    0x00515368 lbu v0, -1(v0)                |             v0 = *((v0 - 1));
    0x0051536c addiu v0, v0, -9              |             v0 += -9;
    0x00515370 andi v0, v0, 0xff             |             v0 &= 0xff;
    0x00515374 sltiu v1, v0, 0x18            |             v1 = (v0 < 0x18) ? 1 : 0;
    0x00515378 move s1, zero                 |             s1 = 0;
                                             |             if (v1 == 0) {
    0x0051537c beqz v1, 0x515390             |                 goto label_37;
                                             |             }
    0x00515380 lui s1, 0x80                  |             s1 = 0x800013;
    0x00515384 addiu s1, s1, 0x13            |             
    0x00515388 srlv s1, s1, v0               |             s1 >>= v0;
    0x0051538c andi s1, s1, 1                |             s1 &= 1;
                                             |         }
                                             | label_37:
    0x00515390 lw a1, -0x7fc0(gp)            |         a1 = *((gp - 8176));
    0x00515394 lw t9, -0x6218(gp)            |         t9 = sym.imp.strstr;
                                             |         /* str.host: */
    0x00515398 addiu a1, a1, -0x475c         |         a1 += -0x475c;
    0x0051539c move a0, s3                   |         a0 = s3;
    0x005153a0 jalr t9                       |         t9 ();
    0x005153a4 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x005153a8 beqz v0, 0x5153e8             |             
                                             |             if (s3 != v0) {
    0x005153ac beq s3, v0, 0x5153e4          |                 
    0x005153b0 nop                           |                 
    0x005153b4 lbu v0, -1(v0)                |                 v0 = *((v0 - 1));
    0x005153b8 addiu v0, v0, -9              |                 v0 += -9;
    0x005153bc andi v1, v0, 0xff             |                 v1 = v0 & 0xff;
    0x005153c0 sltiu v0, v1, 0x18            |                 v0 = (v1 < 0x18) ? 1 : 0;
    0x005153c4 lw a1, -0x7fc0(gp)            |                 a1 = *((gp - 8176));
                                             |                 if (v0 == 0) {
    0x005153c8 beqz v0, 0x5153ec             |                     goto label_160;
                                             |                 }
    0x005153cc lui v0, 0x80                  |                 v0 = 0x800013;
    0x005153d0 addiu v0, v0, 0x13            |                 
    0x005153d4 srlv v0, v0, v1               |                 v0 >>= v1;
    0x005153d8 ext v0, v0, 0, 1              |                 __asm ("ext v0, v0, 0, 1");
    0x005153dc lw t9, -0x6218(gp)            |                 t9 = sym.imp.strstr;
                                             |                 if (v0 == 0) {
    0x005153e0 beqz v0, 0x5153f0             |                     goto label_161;
                                             |                 }
                                             |             }
    0x005153e4 ori s1, s1, 2                 |             s1 |= 2;
                                             |         }
    0x005153e8 lw a1, -0x7fc0(gp)            |         a1 = *((gp - 8176));
                                             | label_160:
    0x005153ec lw t9, -0x6218(gp)            |         t9 = sym.imp.strstr;
                                             |         /* str.from: */
                                             | label_161:
    0x005153f0 addiu a1, a1, -0x4754         |         a1 += -0x4754;
    0x005153f4 move a0, s3                   |         a0 = s3;
    0x005153f8 jalr t9                       |         t9 ();
    0x005153fc lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x00515400 beqz v0, 0x515440             |             
                                             |             if (s3 != v0) {
    0x00515404 beq s3, v0, 0x51543c          |                 
    0x00515408 nop                           |                 
    0x0051540c lbu v0, -1(v0)                |                 v0 = *((v0 - 1));
    0x00515410 addiu v0, v0, -9              |                 v0 += -9;
    0x00515414 andi v1, v0, 0xff             |                 v1 = v0 & 0xff;
    0x00515418 sltiu v0, v1, 0x18            |                 v0 = (v1 < 0x18) ? 1 : 0;
    0x0051541c lw a1, -0x7fc0(gp)            |                 a1 = *((gp - 8176));
                                             |                 if (v0 == 0) {
    0x00515420 beqz v0, 0x515444             |                     goto label_162;
                                             |                 }
    0x00515424 lui v0, 0x80                  |                 v0 = 0x800013;
    0x00515428 addiu v0, v0, 0x13            |                 
    0x0051542c srlv v0, v0, v1               |                 v0 >>= v1;
    0x00515430 ext v0, v0, 0, 1              |                 __asm ("ext v0, v0, 0, 1");
    0x00515434 lw t9, -0x6218(gp)            |                 t9 = sym.imp.strstr;
                                             |                 if (v0 == 0) {
    0x00515438 beqz v0, 0x515448             |                     goto label_163;
                                             |                 }
                                             |             }
    0x0051543c ori s1, s1, 8                 |             s1 |= 8;
                                             |         }
    0x00515440 lw a1, -0x7fc0(gp)            |         a1 = *((gp - 8176));
                                             | label_162:
    0x00515444 lw t9, -0x6218(gp)            |         t9 = sym.imp.strstr;
                                             |         /* str.authorization: */
                                             | label_163:
    0x00515448 addiu a1, a1, -0x474c         |         a1 += -0x474c;
    0x0051544c move a0, s3                   |         a0 = s3;
    0x00515450 jalr t9                       |         t9 ();
    0x00515454 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x00515458 beqz v0, 0x515498             |             
                                             |             if (s3 != v0) {
    0x0051545c beq s3, v0, 0x515494          |                 
    0x00515460 nop                           |                 
    0x00515464 lbu v0, -1(v0)                |                 v0 = *((v0 - 1));
    0x00515468 addiu v0, v0, -9              |                 v0 += -9;
    0x0051546c andi v1, v0, 0xff             |                 v1 = v0 & 0xff;
    0x00515470 sltiu v0, v1, 0x18            |                 v0 = (v1 < 0x18) ? 1 : 0;
    0x00515474 lw v0, -0x7fc0(gp)            |                 v0 = *((gp - 8176));
                                             |                 if (v0 == 0) {
    0x00515478 beqz v0, 0x51549c             |                     goto label_164;
                                             |                 }
    0x0051547c lui v0, 0x80                  |                 v0 = 0x800013;
    0x00515480 addiu v0, v0, 0x13            |                 
    0x00515484 srlv v0, v0, v1               |                 v0 >>= v1;
    0x00515488 ext v0, v0, 0, 1              |                 __asm ("ext v0, v0, 0, 1");
    0x0051548c lw v0, -0x7fc0(gp)            |                 v0 = *((gp - 8176));
                                             |                 if (v0 == 0) {
    0x00515490 beqz v0, 0x51549c             |                     goto label_164;
                                             |                 }
                                             |             }
    0x00515494 ori s1, s1, 4                 |             s1 |= 4;
                                             |         }
    0x00515498 lw v0, -0x7fc0(gp)            |         v0 = *((gp - 8176));
                                             | label_164:
    0x0051549c lw t9, -0x6218(gp)            |         t9 = sym.imp.strstr;
                                             |         /* str.content_length: */
    0x005154a0 addiu a1, v0, -0x4788         |         a1 = v0 + -0x4788;
    0x005154a4 move a0, s3                   |         a0 = s3;
    0x005154a8 jalr t9                       |         t9 ();
    0x005154ac lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x005154b0 beqz v0, 0x5154f0             |             
                                             |             if (s3 != v0) {
    0x005154b4 beq s3, v0, 0x5154ec          |                 
    0x005154b8 nop                           |                 
    0x005154bc lbu v0, -1(v0)                |                 v0 = *((v0 - 1));
    0x005154c0 addiu v0, v0, -9              |                 v0 += -9;
    0x005154c4 andi v1, v0, 0xff             |                 v1 = v0 & 0xff;
    0x005154c8 sltiu v0, v1, 0x18            |                 v0 = (v1 < 0x18) ? 1 : 0;
    0x005154cc lw t9, -0x6218(gp)            |                 t9 = sym.imp.strstr;
                                             |                 if (v0 == 0) {
    0x005154d0 beqz v0, 0x5154f4             |                     goto label_165;
                                             |                 }
    0x005154d4 lui v0, 0x80                  |                 v0 = 0x800013;
    0x005154d8 addiu v0, v0, 0x13            |                 
    0x005154dc srlv v0, v0, v1               |                 v0 >>= v1;
    0x005154e0 ext v0, v0, 0, 1              |                 __asm ("ext v0, v0, 0, 1");
                                             |                 /* str.content_type: */
    0x005154e4 addiu a1, s7, -0x4778         |                 a1 = s7 + -0x4778;
                                             |                 if (v0 == 0) {
    0x005154e8 beqz v0, 0x5154f8             |                     goto label_166;
                                             |                 }
                                             |             }
    0x005154ec ori s1, s1, 0x10              |             s1 |= 0x10;
                                             |         }
    0x005154f0 lw t9, -0x6218(gp)            |         t9 = sym.imp.strstr;
                                             |         /* str.content_type: */
                                             | label_165:
    0x005154f4 addiu a1, s7, -0x4778         |         a1 = s7 + -0x4778;
                                             | label_166:
    0x005154f8 move a0, s3                   |         a0 = s3;
    0x005154fc jalr t9                       |         t9 ();
    0x00515500 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x00515504 beqz v0, 0x515544             |             
                                             |             if (s3 != v0) {
    0x00515508 beq s3, v0, 0x515540          |                 
    0x0051550c nop                           |                 
    0x00515510 lbu v0, -1(v0)                |                 v0 = *((v0 - 1));
    0x00515514 addiu v0, v0, -9              |                 v0 += -9;
    0x00515518 andi v1, v0, 0xff             |                 v1 = v0 & 0xff;
    0x0051551c sltiu v0, v1, 0x18            |                 v0 = (v1 < 0x18) ? 1 : 0;
    0x00515520 lw a1, -0x7fc0(gp)            |                 a1 = *((gp - 8176));
                                             |                 if (v0 == 0) {
    0x00515524 beqz v0, 0x515548             |                     goto label_167;
                                             |                 }
    0x00515528 lui v0, 0x80                  |                 v0 = 0x800013;
    0x0051552c addiu v0, v0, 0x13            |                 
    0x00515530 srlv v0, v0, v1               |                 v0 >>= v1;
    0x00515534 ext v0, v0, 0, 1              |                 __asm ("ext v0, v0, 0, 1");
    0x00515538 lw t9, -0x6218(gp)            |                 t9 = sym.imp.strstr;
                                             |                 if (v0 == 0) {
    0x0051553c beqz v0, 0x51554c             |                     goto label_168;
                                             |                 }
                                             |             }
    0x00515540 ori s1, s1, 0x20              |             s1 |= 0x20;
                                             |         }
    0x00515544 lw a1, -0x7fc0(gp)            |         a1 = *((gp - 8176));
                                             | label_167:
    0x00515548 lw t9, -0x6218(gp)            |         t9 = sym.imp.strstr;
                                             |         /* str.connection: */
                                             | label_168:
    0x0051554c addiu a1, a1, -0x473c         |         a1 += -0x473c;
    0x00515550 move a0, s3                   |         a0 = s3;
    0x00515554 jalr t9                       |         t9 ();
    0x00515558 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x0051555c beqz v0, 0x515598             |             
                                             |             if (s3 != v0) {
    0x00515560 beq s3, v0, 0x515594          |                 
    0x00515564 nop                           |                 
    0x00515568 lbu v0, -1(v0)                |                 v0 = *((v0 - 1));
    0x0051556c addiu v0, v0, -9              |                 v0 += -9;
    0x00515570 andi v1, v0, 0xff             |                 v1 = v0 & 0xff;
    0x00515574 sltiu v0, v1, 0x18            |                 v0 = (v1 < 0x18) ? 1 : 0;
    0x00515578 lui v0, 0x80                  |                 v0 = 0x800000;
                                             |                 if (v0 == 0) {
    0x0051557c beqz v0, 0x515598             |                     goto label_169;
                                             |                 }
    0x00515580 addiu v0, v0, 0x13            |                 v0 += 0x13;
    0x00515584 srlv v0, v0, v1               |                 v0 >>= v1;
    0x00515588 ext v0, v0, 0, 1              |                 __asm ("ext v0, v0, 0, 1");
                                             |                 if (v0 == 0) {
    0x0051558c beqz v0, 0x515598             |                     goto label_169;
                                             |                 }
    0x00515590 nop                           |                 
                                             |             }
    0x00515594 ori s1, s1, 0x40              |             s1 |= 0x40;
                                             |         }
                                             | label_169:
    0x00515598 lw v0, 0xcd8(sp)              |         v0 = *(var_cd8h);
                                             |         if (s5 == 0) {
    0x0051559c beqz s5, 0x515900             |             goto label_42;
                                             |         }
    0x005155a0 lw a1, -0x7fc0(gp)            |         a1 = *((gp - 8176));
                                             |         if (v0 == 0) {
    0x005155a4 beqz v0, 0x515900             |             goto label_42;
                                             |         }
    0x005155a8 lw t9, -0x6218(gp)            |         t9 = sym.imp.strstr;
                                             |         /* str.proxy_authorization: */
    0x005155ac addiu a1, a1, -0x4730         |         a1 += -0x4730;
    0x005155b0 move a0, s3                   |         a0 = s3;
    0x005155b4 jalr t9                       |         t9 ();
    0x005155b8 move s5, v0                   |         s5 = v0;
    0x005155bc lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x005155c0 beqz v0, 0x515900             |             goto label_42;
                                             |         }
                                             |         if (s3 != v0) {
    0x005155c4 beq s3, v0, 0x5155f8          |             
    0x005155c8 nop                           |             
    0x005155cc lbu v0, -1(v0)                |             v0 = *((v0 - 1));
    0x005155d0 addiu v0, v0, -9              |             v0 += -9;
    0x005155d4 andi v1, v0, 0xff             |             v1 = v0 & 0xff;
    0x005155d8 sltiu v0, v1, 0x18            |             v0 = (v1 < 0x18) ? 1 : 0;
    0x005155dc lui v0, 0x80                  |             v0 = 0x800000;
                                             |             if (v0 == 0) {
    0x005155e0 beqz v0, 0x515900             |                 goto label_42;
                                             |             }
    0x005155e4 addiu v0, v0, 0x13            |             v0 += 0x13;
    0x005155e8 srlv v0, v0, v1               |             v0 >>= v1;
    0x005155ec ext v0, v0, 0, 1              |             __asm ("ext v0, v0, 0, 1");
                                             |             if (v0 == 0) {
    0x005155f0 beqz v0, 0x515900             |                 goto label_42;
                                             |             }
    0x005155f4 nop                           |             
                                             |         }
    0x005155f8 addiu s7, s5, 0x14            |         s7 = s5 + 0x14;
    0x005155fc addiu a0, zero, 0x20          |         a0 = 0x20;
    0x00515600 addiu v1, zero, 9             |         v1 = 9;
                                             | label_38:
    0x00515604 sltu v0, s3, s5               |         v0 = (s3 < s5) ? 1 : 0;
                                             |         if (v0 != 0) {
    0x00515608 beqz v0, 0x515624             |             
    0x0051560c nop                           |             
    0x00515610 lb v0, -1(s5)                 |             v0 = *((s5 - 1));
                                             |             if (v0 == a0) {
    0x00515614 beq v0, a0, 0x51585c          |                 goto label_170;
                                             |             }
    0x00515618 nop                           |             
                                             |             if (v0 == v1) {
    0x0051561c beq v0, v1, 0x51585c          |                 goto label_170;
                                             |             }
    0x00515620 nop                           |             
                                             |         }
    0x00515624 addiu a0, zero, 0xd           |         a0 = 0xd;
    0x00515628 addiu v1, zero, 0xa           |         v1 = 0xa;
    0x0051562c b 0x515864                    |         goto label_171;
                                             | label_147:
    0x00515630 move s1, v0                   |         s1 = v0;
    0x00515634 b 0x514eb0                    |         
                                             |     }
                                             |     if (s1 == 0) {
                                             | label_146:
    0x00515638 beqz s1, 0x515680             |         goto label_172;
                                             |     }
    0x0051563c nop                           |     
    0x00515640 lw s1, 0xc(s1)                |     s1 = *((s1 + 3));
    0x00515644 lw v0, 0xcc4(sp)              |     v0 = *(var_cc4h);
    0x00515648 addiu s1, s1, 1               |     s1++;
    0x0051564c sltu v0, s1, v0               |     v0 = (s1 < v0) ? 1 : 0;
                                             |     if (v0 != 0) {
    0x00515650 bnez v0, 0x51566c             |         goto label_173;
                                             |     }
    0x00515654 nop                           |     
                                             |     do {
    0x00515658 lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x0051565c move a1, s1                   |         a1 = s1;
    0x00515660 addiu a0, sp, 0xcc0           |         a0 = sp + 0xcc0;
    0x00515664 jalr t9                       |         t9 ();
    0x00515668 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             | label_173:
    0x0051566c lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
    0x00515670 addiu a0, zero, 0x2f          |         a0 = 0x2f;
    0x00515674 addu v1, v0, s1               |         v1 = v0 + s1;
    0x00515678 sb a0, 0xf(v1)                |         *((v1 + 15)) = a0;
    0x0051567c b 0x514eec                    |         goto label_28;
                                             | label_172:
    0x00515680 addiu s1, zero, 1             |         s1 = 1;
    0x00515684 b 0x515658                    |         
                                             |     } while (1);
                                             | label_151:
    0x00515688 move a0, v0                   |     a0 = v0;
    0x0051568c jalr t9                       |     t9 ();
    0x00515690 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00515694 b 0x515030                    |     goto label_29;
                                             | label_152:
    0x00515698 addiu s1, zero, 6             |     s1 = 6;
    0x0051569c b 0x515074                    |     goto label_30;
                                             | label_150:
    0x005156a0 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x005156a4 addiu s1, zero, 0xb           |     s1 = 0xb;
                                             |     if (v0 != 0) {
    0x005156a8 beqz v0, 0x5156c4             |         
    0x005156ac lw s1, 0xc(v0)                |         s1 = *((v0 + 3));
    0x005156b0 lw v0, 0xcc4(sp)              |         v0 = *(var_cc4h);
    0x005156b4 addiu s1, s1, 0xb             |         s1 += 0xb;
    0x005156b8 sltu v0, s1, v0               |         v0 = (s1 < v0) ? 1 : 0;
    0x005156bc lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |         if (v0 != 0) {
    0x005156c0 bnez v0, 0x5156dc             |             goto label_174;
                                             |         }
                                             |     }
    0x005156c4 lw t9, -0x7ed4(gp)            |     t9 = sym.smart_str_erealloc;
    0x005156c8 move a1, s1                   |     a1 = s1;
    0x005156cc addiu a0, sp, 0xcc0           |     a0 = sp + 0xcc0;
    0x005156d0 jalr t9                       |     t9 ();
    0x005156d4 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x005156d8 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             | label_174:
    0x005156dc lw a1, -0x7fc0(gp)            |     a1 = *((gp - 8176));
    0x005156e0 addiu a0, v0, 0x10            |     a0 = v0 + 0x10;
    0x005156e4 lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x005156e8 lw t9, -0x6148(gp)            |     t9 = sym.imp.memcpy;
    0x005156ec addiu a2, zero, 0xb           |     a2 = 0xb;
                                             |     /* str._HTTP_1.0_r_n */
    0x005156f0 addiu a1, a1, -0x4834         |     a1 += -0x4834;
    0x005156f4 addu a0, a0, v0               |     a0 += v0;
    0x005156f8 jalr t9                       |     t9 ();
    0x005156fc lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x00515700 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00515704 sw s1, 0xc(v0)                |     *((v0 + 3)) = s1;
                                             |     if (s0 != 0) {
    0x00515708 bnez s0, 0x515180             |         goto label_31;
                                             |     }
                                             | label_153:
    0x0051570c move s4, zero                 |     s4 = 0;
                                             | label_34:
    0x00515710 move s1, zero                 |     s1 = 0;
    0x00515714 b 0x515948                    |     goto label_175;
                                             | label_155:
    0x00515718 lbu v0, 8(s2)                 |     v0 = *((s2 + 8));
    0x0051571c addiu v1, zero, 6             |     v1 = 6;
                                             |     if (v0 != v1) {
    0x00515720 bne v0, v1, 0x5157e0          |         goto label_176;
                                             |     }
    0x00515724 nop                           |     
    0x00515728 lw v0, (s2)                   |     v0 = *(s2);
    0x0051572c addiu s4, v0, 0x10            |     s4 = v0 + 0x10;
    0x00515730 lw s3, 0xc(v0)                |     s3 = *((v0 + 3));
                                             |     if (a0 == 0) {
    0x00515734 beqz a0, 0x5157e8             |         goto label_177;
                                             |     }
    0x00515738 lw s1, 0xc(a0)                |     s1 = *((a0 + 3));
    0x0051573c lw v0, 0x34(sp)               |     v0 = *(var_34h);
    0x00515740 addu s1, s3, s1               |     s1 = s3 + s1;
    0x00515744 sltu v0, s1, v0               |     v0 = (s1 < v0) ? 1 : 0;
    0x00515748 lw v0, 0x30(sp)               |     v0 = *(var_30h);
    0x0051574c bnez v0, 0x515768             |     
                                             |     while (1) {
    0x00515750 lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x00515754 move a1, s1                   |         a1 = s1;
    0x00515758 move a0, s7                   |         a0 = s7;
    0x0051575c jalr t9                       |         t9 ();
    0x00515760 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00515764 lw v0, 0x30(sp)               |         v0 = *(var_30h);
    0x00515768 lw t9, -0x6148(gp)            |         t9 = sym.imp.memcpy;
    0x0051576c addiu a0, v0, 0x10            |         a0 = v0 + 0x10;
    0x00515770 lw v0, 0xc(v0)                |         v0 = *((v0 + 3));
    0x00515774 move a2, s3                   |         a2 = s3;
    0x00515778 move a1, s4                   |         a1 = s4;
    0x0051577c addu a0, a0, v0               |         a0 += v0;
    0x00515780 jalr t9                       |         t9 ();
    0x00515784 lw v0, 0x30(sp)               |         v0 = *(var_30h);
    0x00515788 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0051578c sw s1, 0xc(v0)                |         *((v0 + 3)) = s1;
    0x00515790 lw v0, 0x34(sp)               |         v0 = *(var_34h);
    0x00515794 addiu s1, s1, 2               |         s1 += 2;
    0x00515798 sltu v0, s1, v0               |         v0 = (s1 < v0) ? 1 : 0;
                                             |         if (v0 == 0) {
    0x0051579c bnez v0, 0x5157b8             |             
    0x005157a0 nop                           |             
    0x005157a4 lw t9, -0x7ed4(gp)            |             t9 = sym.smart_str_erealloc;
    0x005157a8 move a1, s1                   |             a1 = s1;
    0x005157ac move a0, s7                   |             a0 = s7;
    0x005157b0 jalr t9                       |             t9 ();
    0x005157b4 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |         }
    0x005157b8 lw v1, 0x30(sp)               |         v1 = *(var_30h);
    0x005157bc addiu v0, v1, 0x10            |         v0 = v1 + 0x10;
    0x005157c0 lw v1, 0xc(v1)                |         v1 = *((v1 + 3));
    0x005157c4 addu v0, v0, v1               |         v0 += v1;
    0x005157c8 addiu v1, zero, 0xd           |         v1 = 0xd;
    0x005157cc sb v1, (v0)                   |         *(v0) = v1;
    0x005157d0 addiu v1, zero, 0xa           |         v1 = 0xa;
    0x005157d4 sb v1, 1(v0)                  |         *((v0 + 1)) = v1;
    0x005157d8 lw v0, 0x30(sp)               |         v0 = *(var_30h);
    0x005157dc sw s1, 0xc(v0)                |         *((v0 + 3)) = s1;
                                             | label_176:
    0x005157e0 addiu s2, s2, 0x18            |         s2 += 0x18;
    0x005157e4 b 0x5151d8                    |         goto label_32;
                                             | label_177:
    0x005157e8 move s1, s3                   |         s1 = s3;
    0x005157ec b 0x515750                    |         
                                             |     }
                                             | label_156:
    0x005157f0 jalr t9                       |     t9 ();
    0x005157f4 nop                           |     
    0x005157f8 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x005157fc b 0x515254                    |     goto label_33;
                                             | label_154:
    0x00515800 addiu a0, zero, 6             |     a0 = 6;
    0x00515804 move s4, zero                 |     s4 = 0;
                                             |     if (v1 != a0) {
    0x00515808 bne v1, a0, 0x515710          |         goto label_34;
                                             |     }
    0x0051580c lw a0, (v0)                   |     a0 = *(v0);
    0x00515810 lw v0, 0xc(a0)                |     v0 = *((a0 + 3));
    0x00515814 lw t9, -0x6b10(gp)            |     t9 = sym.php_trim;
                                             |     if (v0 == 0) {
    0x00515818 beqz v0, 0x515710             |         goto label_34;
                                             |     }
    0x0051581c addiu a3, zero, 3             |     a3 = 3;
    0x00515820 move a2, zero                 |     a2 = 0;
    0x00515824 move a1, zero                 |     a1 = 0;
    0x00515828 jalr t9                       |     t9 ();
    0x0051582c move s2, v0                   |     s2 = v0;
    0x00515830 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00515834 b 0x515254                    |     goto label_33;
                                             | label_158:
    0x00515838 lw v0, (s2)                   |     v0 = *(s2);
    0x0051583c sltiu v1, v0, 2               |     v1 = (v0 < 2) ? 1 : 0;
    0x00515840 addiu v0, v0, -1              |     v0 += -1;
                                             |     if (v1 != 0) {
    0x00515844 bnez v1, 0x5152e0             |         goto label_35;
                                             |     }
    0x00515848 lw s1, 0xc(s2)                |     s1 = *((s2 + 3));
    0x0051584c sw v0, (s2)                   |     *(s2) = v0;
    0x00515850 b 0x51528c                    |     goto label_36;
                                             | label_159:
    0x00515854 move s1, zero                 |     s1 = 0;
    0x00515858 b 0x515390                    |     goto label_37;
                                             | label_170:
    0x0051585c addiu s5, s5, -1              |     s5 += -1;
    0x00515860 b 0x515604                    |     goto label_38;
                                             |     do {
                                             | label_171:
    0x00515864 lb v0, (s7)                   |         v0 = *(s7);
                                             |         if (v0 == 0) {
    0x00515868 beqz v0, 0x5158b0             |             goto label_178;
                                             |         }
    0x0051586c nop                           |         
                                             |         if (v0 == a0) {
    0x00515870 beq v0, a0, 0x515884          |             goto label_179;
                                             |         }
    0x00515874 nop                           |         
    0x00515878 addiu s7, s7, 1               |         s7++;
    0x0051587c bne v0, v1, 0x515864          |         
                                             |     } while (v0 != v1);
    0x00515880 addiu s7, s7, -1              |     s7 += -1;
                                             | label_179:
    0x00515884 addiu a0, zero, 0xd           |     a0 = 0xd;
    0x00515888 addiu v1, zero, 0xa           |     v1 = 0xa;
    0x0051588c b 0x515894                    |     
                                             |     while (v0 == a0) {
                                             | label_39:
    0x00515890 addiu s7, s7, 1               |         s7++;
    0x00515894 lb v0, (s7)                   |         v0 = *(s7);
    0x00515898 beq v0, a0, 0x515890          |         
                                             |     }
    0x0051589c nop                           |     
                                             |     if (v0 == v1) {
    0x005158a0 beq v0, v1, 0x515890          |         goto label_39;
                                             |     }
    0x005158a4 nop                           |     
    0x005158a8 lw t9, -0x6154(gp)            |     t9 = sym.imp.strlen;
                                             |     if (v0 != 0) {
    0x005158ac bnez v0, 0x516b54             |         goto label_180;
                                             |     }
                                             | label_178:
    0x005158b0 addiu a0, zero, 0xd           |     a0 = 0xd;
                                             |     if (s3 != s5) {
    0x005158b4 beq s3, s5, 0x5158ec          |         
    0x005158b8 addiu v1, zero, 0xa           |         v1 = 0xa;
                                             | label_41:
    0x005158bc sltu v0, s3, s5               |         v0 = (s3 < s5) ? 1 : 0;
                                             |         if (v0 != 0) {
    0x005158c0 beqz v0, 0x5158dc             |             
    0x005158c4 nop                           |             
    0x005158c8 lb v0, -1(s5)                 |             v0 = *((s5 - 1));
                                             |             if (v0 == a0) {
    0x005158cc beq v0, a0, 0x516b4c          |                 goto label_181;
                                             |             }
    0x005158d0 nop                           |             
                                             |             if (v0 == v1) {
    0x005158d4 beq v0, v1, 0x516b4c          |                 goto label_181;
                                             |             }
    0x005158d8 nop                           |             
                                             |         }
    0x005158dc subu s3, s5, s3               |         __asm ("subu s3, s5, s3");
    0x005158e0 addu s3, s4, s3               |         s3 = s4 + s3;
    0x005158e4 sb zero, (s3)                 |         *(s3) = 0;
    0x005158e8 b 0x515900                    |         
                                             |     } else {
    0x005158ec lw t9, -0x7fe4(gp)            |         t9 = sym._efree;
    0x005158f0 move a0, s4                   |         a0 = s4;
    0x005158f4 jalr t9                       |         t9 ();
    0x005158f8 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005158fc move s4, zero                 |         s4 = 0;
                                             |     }
                                             | label_42:
    0x00515900 lbu v0, 5(s2)                 |     v0 = *((s2 + 5));
    0x00515904 andi v1, v0, 2                |     v1 = v0 & 2;
                                             |     if (v1 == 0) {
    0x00515908 bnez v1, 0x51593c             |         
    0x0051590c nop                           |         
    0x00515910 lw v1, (s2)                   |         v1 = *(s2);
    0x00515914 addiu v1, v1, -1              |         v1 += -1;
    0x00515918 sw v1, (s2)                   |         *(s2) = v1;
                                             |         if (v1 != 0) {
    0x0051591c bnez v1, 0x51593c             |             goto label_43;
                                             |         }
    0x00515920 andi v0, v0, 1                |         v0 &= 1;
    0x00515924 move a0, s2                   |         a0 = s2;
                                             |         if (v0 == 0) {
    0x00515928 beqz v0, 0x516b84             |             goto label_182;
                                             |         }
    0x0051592c lw t9, -0x6094(gp)            |         t9 = *((gp - 6181));
    0x00515930 jalr t9                       |         t9 ();
    0x00515934 nop                           |         
    0x00515938 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |     }
                                             | label_43:
    0x0051593c andi v0, s1, 4                |     v0 = s1 & 4;
    0x00515940 andi v0, s1, 8                |     v0 = s1 & 8;
                                             |     if (v0 == 0) {
    0x00515944 bnez v0, 0x515bc4             |         
                                             | label_175:
    0x00515948 lw v0, 4(fp)                  |         v0 = *(arg_d34h);
    0x0051594c lw t9, -0x6154(gp)            |         t9 = sym.imp.strlen;
                                             |         if (v0 != 0) {
    0x00515950 beqz v0, 0x515bc0             |             
    0x00515954 lw a0, 0xd34(sp)              |             a0 = *(arg_d34h);
    0x00515958 jalr t9                       |             t9 ();
    0x0051595c lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00515960 lw t9, -0x7f60(gp)            |             t9 = sym._emalloc;
    0x00515964 addiu a0, v0, 1               |             a0 = v0 + 1;
    0x00515968 jalr t9                       |             t9 ();
    0x0051596c lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00515970 lw s2, 4(fp)                  |             s2 = *(arg_d34h);
    0x00515974 move s3, v0                   |             s3 = v0;
    0x00515978 lw t9, -0x6154(gp)            |             t9 = sym.imp.strlen;
    0x0051597c move a0, s2                   |             a0 = s2;
    0x00515980 jalr t9                       |             t9 ();
    0x00515984 lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00515988 move a0, s2                   |             a0 = s2;
    0x0051598c lw t9, -0x71b4(gp)            |             t9 = sym.php_url_decode;
    0x00515990 move a1, v0                   |             a1 = v0;
    0x00515994 bal 0x504f78                  |             sym_php_url_decode ();
    0x00515998 lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x0051599c lw a1, 4(fp)                  |             a1 = *(arg_d34h);
    0x005159a0 lw t9, -0x6198(gp)            |             t9 = sym.imp.strcpy;
    0x005159a4 move a0, s3                   |             a0 = s3;
    0x005159a8 jalr t9                       |             t9 ();
    0x005159ac lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x005159b0 move a0, s3                   |             a0 = s3;
    0x005159b4 lw a1, -0x7fc0(gp)            |             a1 = *((gp - 8176));
    0x005159b8 lw t9, -0x62ac(gp)            |             t9 = sym.imp.strcat
    0x005159bc addiu a1, a1, 0x11e0          |             a1 += 0x11e0;
    0x005159c0 jalr t9                       |             t9 ();
    0x005159c4 lw s2, 8(fp)                  |             s2 = *(arg_d38h);
    0x005159c8 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |             if (s2 != 0) {
    0x005159cc beqz s2, 0x515a08             |                 
    0x005159d0 lw t9, -0x6154(gp)            |                 t9 = sym.imp.strlen;
    0x005159d4 move a0, s2                   |                 a0 = s2;
    0x005159d8 jalr t9                       |                 t9 ();
    0x005159dc lw gp, 0x28(sp)               |                 gp = *(var_28h);
    0x005159e0 move a1, v0                   |                 a1 = v0;
    0x005159e4 lw t9, -0x71b4(gp)            |                 t9 = sym.php_url_decode;
    0x005159e8 move a0, s2                   |                 a0 = s2;
    0x005159ec bal 0x504f78                  |                 sym_php_url_decode ();
    0x005159f0 lw gp, 0x28(sp)               |                 gp = *(var_28h);
    0x005159f4 lw a1, 8(fp)                  |                 a1 = *(arg_d38h);
    0x005159f8 lw t9, -0x62ac(gp)            |                 t9 = sym.imp.strcat
    0x005159fc move a0, s3                   |                 a0 = s3;
    0x00515a00 jalr t9                       |                 t9 ();
    0x00515a04 lw gp, 0x28(sp)               |                 gp = *(var_28h);
                                             |             }
    0x00515a08 lw t9, -0x6154(gp)            |             t9 = sym.imp.strlen;
    0x00515a0c move a0, s3                   |             a0 = s3;
    0x00515a10 jalr t9                       |             t9 ();
    0x00515a14 lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00515a18 move a1, v0                   |             a1 = v0;
    0x00515a1c lw t9, -0x6e28(gp)            |             t9 = sym.php_base64_encode;
    0x00515a20 move a0, s3                   |             a0 = s3;
    0x00515a24 jalr t9                       |             t9 ();
    0x00515a28 move s5, v0                   |             s5 = v0;
    0x00515a2c lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
    0x00515a30 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |             if (v0 == 0) {
    0x00515a34 beqz v0, 0x516b98             |                 goto label_183;
                                             |             }
    0x00515a38 lw s2, 0xc(v0)                |             s2 = *((v0 + 3));
    0x00515a3c lw v0, 0xcc4(sp)              |             v0 = *(var_cc4h);
    0x00515a40 addiu s2, s2, 0x15            |             s2 += 0x15;
    0x00515a44 sltu v0, s2, v0               |             v0 = (s2 < v0) ? 1 : 0;
    0x00515a48 lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
                                             |             if (v0 == 0) {
    0x00515a4c bnez v0, 0x515a68             |                 
                                             | label_44:
    0x00515a50 lw t9, -0x7ed4(gp)            |                 t9 = sym.smart_str_erealloc;
    0x00515a54 move a1, s2                   |                 a1 = s2;
    0x00515a58 addiu a0, sp, 0xcc0           |                 a0 = sp + 0xcc0;
    0x00515a5c jalr t9                       |                 t9 ();
    0x00515a60 lw gp, 0x28(sp)               |                 gp = *(var_28h);
    0x00515a64 lw v0, 0xcc0(sp)              |                 v0 = *(var_cc0h);
                                             |             }
    0x00515a68 lw a1, -0x7fc0(gp)            |             a1 = *((gp - 8176));
    0x00515a6c addiu a0, v0, 0x10            |             a0 = v0 + 0x10;
    0x00515a70 lw v0, 0xc(v0)                |             v0 = *((v0 + 3));
    0x00515a74 lw t9, -0x6148(gp)            |             t9 = sym.imp.memcpy;
    0x00515a78 addiu a2, zero, 0x15          |             a2 = 0x15;
                                             |             /* str.Authorization:_Basic_ */
    0x00515a7c addiu a1, a1, -0x4718         |             a1 += -0x4718;
    0x00515a80 addu a0, a0, v0               |             a0 += v0;
    0x00515a84 jalr t9                       |             t9 ();
    0x00515a88 lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00515a8c lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
    0x00515a90 lw t9, -0x6154(gp)            |             t9 = sym.imp.strlen;
    0x00515a94 sw s2, 0xc(v0)                |             *((v0 + 3)) = s2;
    0x00515a98 addiu v0, s5, 0x10            |             v0 = s5 + 0x10;
    0x00515a9c sw v0, 0xce4(sp)              |             *(var_ce4h) = v0;
    0x00515aa0 move a0, v0                   |             a0 = v0;
    0x00515aa4 jalr t9                       |             t9 ();
    0x00515aa8 addu s2, v0, s2               |             s2 = v0 + s2;
    0x00515aac move s7, v0                   |             s7 = v0;
    0x00515ab0 lw v0, 0xcc4(sp)              |             v0 = *(var_cc4h);
    0x00515ab4 sltu v0, s2, v0               |             v0 = (s2 < v0) ? 1 : 0;
    0x00515ab8 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |             if (v0 == 0) {
    0x00515abc bnez v0, 0x515ad4             |                 
    0x00515ac0 lw t9, -0x7ed4(gp)            |                 t9 = sym.smart_str_erealloc;
    0x00515ac4 move a1, s2                   |                 a1 = s2;
    0x00515ac8 addiu a0, sp, 0xcc0           |                 a0 = sp + 0xcc0;
    0x00515acc jalr t9                       |                 t9 ();
    0x00515ad0 lw gp, 0x28(sp)               |                 gp = *(var_28h);
                                             |             }
    0x00515ad4 lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
    0x00515ad8 lw t9, -0x6148(gp)            |             t9 = sym.imp.memcpy;
    0x00515adc addiu a0, v0, 0x10            |             a0 = v0 + 0x10;
    0x00515ae0 lw v0, 0xc(v0)                |             v0 = *((v0 + 3));
    0x00515ae4 move a2, s7                   |             a2 = s7;
    0x00515ae8 addiu a1, s5, 0x10            |             a1 = s5 + 0x10;
    0x00515aec addu a0, a0, v0               |             a0 += v0;
    0x00515af0 jalr t9                       |             t9 ();
    0x00515af4 lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
    0x00515af8 lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00515afc sw s2, 0xc(v0)                |             *((v0 + 3)) = s2;
    0x00515b00 lw v0, 0xcc4(sp)              |             v0 = *(var_cc4h);
    0x00515b04 addiu s2, s2, 2               |             s2 += 2;
    0x00515b08 sltu v0, s2, v0               |             v0 = (s2 < v0) ? 1 : 0;
    0x00515b0c lw v1, 0xcc0(sp)              |             v1 = *(var_cc0h);
                                             |             if (v0 == 0) {
    0x00515b10 bnez v0, 0x515b2c             |                 
    0x00515b14 lw t9, -0x7ed4(gp)            |                 t9 = sym.smart_str_erealloc;
    0x00515b18 move a1, s2                   |                 a1 = s2;
    0x00515b1c addiu a0, sp, 0xcc0           |                 a0 = sp + 0xcc0;
    0x00515b20 jalr t9                       |                 t9 ();
    0x00515b24 lw gp, 0x28(sp)               |                 gp = *(var_28h);
    0x00515b28 lw v1, 0xcc0(sp)              |                 v1 = *(var_cc0h);
                                             |             }
    0x00515b2c addiu v0, v1, 0x10            |             v0 = v1 + 0x10;
    0x00515b30 lw v1, 0xc(v1)                |             v1 = *((v1 + 3));
    0x00515b34 addu v0, v0, v1               |             v0 += v1;
    0x00515b38 addiu v1, zero, 0xd           |             v1 = 0xd;
    0x00515b3c sb v1, (v0)                   |             *(v0) = v1;
    0x00515b40 addiu v1, zero, 0xa           |             v1 = 0xa;
    0x00515b44 sb v1, 1(v0)                  |             *((v0 + 1)) = v1;
    0x00515b48 lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
    0x00515b4c sw s2, 0xc(v0)                |             *((v0 + 3)) = s2;
                                             |             if (s0 != 0) {
    0x00515b50 beqz s0, 0x515b88             |                 
    0x00515b54 lw v0, (s0)                   |                 v0 = *(s0);
    0x00515b58 lw t9, -0x6a3c(gp)            |                 t9 = sym.php_stream_notification_notify;
                                             |                 if (v0 == 0) {
    0x00515b5c beqz v0, 0x515b88             |                     goto label_184;
                                             |                 }
    0x00515b60 sw zero, 0x1c(sp)             |                 *(var_1ch) = 0;
    0x00515b64 sw zero, 0x18(sp)             |                 *(var_18h) = 0;
    0x00515b68 sw zero, 0x14(sp)             |                 *(var_14h) = 0;
    0x00515b6c sw zero, 0x10(sp)             |                 *(var_10h) = 0;
    0x00515b70 move a3, zero                 |                 a3 = 0;
    0x00515b74 move a2, zero                 |                 a2 = 0;
    0x00515b78 addiu a1, zero, 3             |                 a1 = 3;
    0x00515b7c move a0, s0                   |                 a0 = s0;
    0x00515b80 jalr t9                       |                 t9 ();
    0x00515b84 lw gp, 0x28(sp)               |                 gp = *(var_28h);
                                             |             }
                                             | label_184:
    0x00515b88 lbu v0, 5(s5)                 |             v0 = *((s5 + 5));
    0x00515b8c andi v1, v0, 2                |             v1 = v0 & 2;
    0x00515b90 andi v0, v0, 1                |             v0 &= 1;
                                             |             if (v1 == 0) {
    0x00515b94 bnez v1, 0x515bb0             |                 
    0x00515b98 move a0, s5                   |                 a0 = s5;
                                             |                 if (v0 == 0) {
    0x00515b9c beqz v0, 0x516ba0             |                     goto label_185;
                                             |                 }
    0x00515ba0 lw t9, -0x6094(gp)            |                 t9 = *((gp - 6181));
    0x00515ba4 jalr t9                       |                 t9 ();
    0x00515ba8 nop                           |                 
    0x00515bac lw gp, 0x28(sp)               |                 gp = *(var_28h);
                                             |             }
                                             | label_45:
    0x00515bb0 lw t9, -0x7fe4(gp)            |             t9 = sym._efree;
    0x00515bb4 move a0, s3                   |             a0 = s3;
    0x00515bb8 jalr t9                       |             t9 ();
    0x00515bbc lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |         }
    0x00515bc0 andi v0, s1, 8                |         v0 = s1 & 8;
                                             |     }
    0x00515bc4 andi v0, s1, 2                |     v0 = s1 & 2;
                                             |     if (v0 == 0) {
    0x00515bc8 bnez v0, 0x515cfc             |         
    0x00515bcc lw s3, -0x7a54(gp)            |         s3 = *(gp);
    0x00515bd0 lw v0, 0x14(s3)               |         v0 = *((s3 + 5));
    0x00515bd4 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |         if (v0 != 0) {
    0x00515bd8 beqz v0, 0x515cf8             |             
    0x00515bdc addiu s2, zero, 6             |             s2 = 6;
                                             |             if (v0 != 0) {
    0x00515be0 beqz v0, 0x515bfc             |                 
    0x00515be4 lw s2, 0xc(v0)                |                 s2 = *((v0 + 3));
    0x00515be8 lw v0, 0xcc4(sp)              |                 v0 = *(var_cc4h);
    0x00515bec addiu s2, s2, 6               |                 s2 += 6;
    0x00515bf0 sltu v0, s2, v0               |                 v0 = (s2 < v0) ? 1 : 0;
    0x00515bf4 lw v0, 0xcc0(sp)              |                 v0 = *(var_cc0h);
                                             |                 if (v0 != 0) {
    0x00515bf8 bnez v0, 0x515c14             |                     goto label_186;
                                             |                 }
                                             |             }
    0x00515bfc lw t9, -0x7ed4(gp)            |             t9 = sym.smart_str_erealloc;
    0x00515c00 move a1, s2                   |             a1 = s2;
    0x00515c04 addiu a0, sp, 0xcc0           |             a0 = sp + 0xcc0;
    0x00515c08 jalr t9                       |             t9 ();
    0x00515c0c lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00515c10 lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
                                             | label_186:
    0x00515c14 lw a1, -0x7fc0(gp)            |             a1 = *((gp - 8176));
    0x00515c18 addiu a0, v0, 0x10            |             a0 = v0 + 0x10;
    0x00515c1c lw v0, 0xc(v0)                |             v0 = *((v0 + 3));
    0x00515c20 lw t9, -0x6148(gp)            |             t9 = sym.imp.memcpy;
    0x00515c24 addiu a2, zero, 6             |             a2 = 6;
                                             |             /* str.From:_ */
    0x00515c28 addiu a1, a1, -0x4700         |             a1 += -0x4700;
    0x00515c2c addu a0, a0, v0               |             a0 += v0;
    0x00515c30 jalr t9                       |             t9 ();
    0x00515c34 lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00515c38 lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
    0x00515c3c lw s3, 0x14(s3)               |             s3 = *((s3 + 5));
    0x00515c40 lw t9, -0x6154(gp)            |             t9 = sym.imp.strlen;
    0x00515c44 sw s2, 0xc(v0)                |             *((v0 + 3)) = s2;
    0x00515c48 move a0, s3                   |             a0 = s3;
    0x00515c4c jalr t9                       |             t9 ();
    0x00515c50 addu s2, v0, s2               |             s2 = v0 + s2;
    0x00515c54 move s5, v0                   |             s5 = v0;
    0x00515c58 lw v0, 0xcc4(sp)              |             v0 = *(var_cc4h);
    0x00515c5c sltu v0, s2, v0               |             v0 = (s2 < v0) ? 1 : 0;
    0x00515c60 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |             if (v0 == 0) {
    0x00515c64 bnez v0, 0x515c7c             |                 
    0x00515c68 lw t9, -0x7ed4(gp)            |                 t9 = sym.smart_str_erealloc;
    0x00515c6c move a1, s2                   |                 a1 = s2;
    0x00515c70 addiu a0, sp, 0xcc0           |                 a0 = sp + 0xcc0;
    0x00515c74 jalr t9                       |                 t9 ();
    0x00515c78 lw gp, 0x28(sp)               |                 gp = *(var_28h);
                                             |             }
    0x00515c7c lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
    0x00515c80 lw t9, -0x6148(gp)            |             t9 = sym.imp.memcpy;
    0x00515c84 addiu a0, v0, 0x10            |             a0 = v0 + 0x10;
    0x00515c88 lw v0, 0xc(v0)                |             v0 = *((v0 + 3));
    0x00515c8c move a2, s5                   |             a2 = s5;
    0x00515c90 move a1, s3                   |             a1 = s3;
    0x00515c94 addu a0, a0, v0               |             a0 += v0;
    0x00515c98 jalr t9                       |             t9 ();
    0x00515c9c lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
    0x00515ca0 lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00515ca4 sw s2, 0xc(v0)                |             *((v0 + 3)) = s2;
    0x00515ca8 lw v0, 0xcc4(sp)              |             v0 = *(var_cc4h);
    0x00515cac addiu s2, s2, 2               |             s2 += 2;
    0x00515cb0 sltu v0, s2, v0               |             v0 = (s2 < v0) ? 1 : 0;
    0x00515cb4 lw v1, 0xcc0(sp)              |             v1 = *(var_cc0h);
                                             |             if (v0 == 0) {
    0x00515cb8 bnez v0, 0x515cd4             |                 
    0x00515cbc lw t9, -0x7ed4(gp)            |                 t9 = sym.smart_str_erealloc;
    0x00515cc0 move a1, s2                   |                 a1 = s2;
    0x00515cc4 addiu a0, sp, 0xcc0           |                 a0 = sp + 0xcc0;
    0x00515cc8 jalr t9                       |                 t9 ();
    0x00515ccc lw gp, 0x28(sp)               |                 gp = *(var_28h);
    0x00515cd0 lw v1, 0xcc0(sp)              |                 v1 = *(var_cc0h);
                                             |             }
    0x00515cd4 addiu v0, v1, 0x10            |             v0 = v1 + 0x10;
    0x00515cd8 lw v1, 0xc(v1)                |             v1 = *((v1 + 3));
    0x00515cdc addu v0, v0, v1               |             v0 += v1;
    0x00515ce0 addiu v1, zero, 0xd           |             v1 = 0xd;
    0x00515ce4 sb v1, (v0)                   |             *(v0) = v1;
    0x00515ce8 addiu v1, zero, 0xa           |             v1 = 0xa;
    0x00515cec sb v1, 1(v0)                  |             *((v0 + 1)) = v1;
    0x00515cf0 lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
    0x00515cf4 sw s2, 0xc(v0)                |             *((v0 + 3)) = s2;
                                             |         }
    0x00515cf8 andi v0, s1, 2                |         v0 = s1 & 2;
                                             |     }
    0x00515cfc andi v0, s1, 0x40             |     v0 = s1 & 0x40;
                                             |     if (v0 != 0) {
    0x00515d00 bnez v0, 0x515f24             |         goto label_187;
                                             |     }
    0x00515d04 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x00515d08 addiu s2, zero, 6             |     s2 = 6;
                                             |     if (v0 != 0) {
    0x00515d0c beqz v0, 0x515d28             |         
    0x00515d10 lw s2, 0xc(v0)                |         s2 = *((v0 + 3));
    0x00515d14 lw v0, 0xcc4(sp)              |         v0 = *(var_cc4h);
    0x00515d18 addiu s2, s2, 6               |         s2 += 6;
    0x00515d1c sltu v0, s2, v0               |         v0 = (s2 < v0) ? 1 : 0;
    0x00515d20 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |         if (v0 != 0) {
    0x00515d24 bnez v0, 0x515d40             |             goto label_188;
                                             |         }
                                             |     }
    0x00515d28 lw t9, -0x7ed4(gp)            |     t9 = sym.smart_str_erealloc;
    0x00515d2c move a1, s2                   |     a1 = s2;
    0x00515d30 addiu a0, sp, 0xcc0           |     a0 = sp + 0xcc0;
    0x00515d34 jalr t9                       |     t9 ();
    0x00515d38 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00515d3c lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             | label_188:
    0x00515d40 lw a1, -0x7fc0(gp)            |     a1 = *((gp - 8176));
    0x00515d44 addiu a0, v0, 0x10            |     a0 = v0 + 0x10;
    0x00515d48 lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x00515d4c lw t9, -0x6148(gp)            |     t9 = sym.imp.memcpy;
    0x00515d50 addiu a2, zero, 6             |     a2 = 6;
                                             |     /* str.Host:_ */
    0x00515d54 addiu a1, a1, -0x46f8         |     a1 += -0x46f8;
    0x00515d58 addu a0, a0, v0               |     a0 += v0;
    0x00515d5c jalr t9                       |     t9 ();
    0x00515d60 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00515d64 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x00515d68 lw s3, 0xc(fp)                |     s3 = *(arg_d3ch);
    0x00515d6c lw t9, -0x6154(gp)            |     t9 = sym.imp.strlen;
    0x00515d70 sw s2, 0xc(v0)                |     *((v0 + 3)) = s2;
    0x00515d74 move a0, s3                   |     a0 = s3;
    0x00515d78 jalr t9                       |     t9 ();
    0x00515d7c addu s2, v0, s2               |     s2 = v0 + s2;
    0x00515d80 move s5, v0                   |     s5 = v0;
    0x00515d84 lw v0, 0xcc4(sp)              |     v0 = *(var_cc4h);
    0x00515d88 sltu v0, s2, v0               |     v0 = (s2 < v0) ? 1 : 0;
    0x00515d8c lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x00515d90 bnez v0, 0x515da8             |         
    0x00515d94 lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x00515d98 move a1, s2                   |         a1 = s2;
    0x00515d9c addiu a0, sp, 0xcc0           |         a0 = sp + 0xcc0;
    0x00515da0 jalr t9                       |         t9 ();
    0x00515da4 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |     }
    0x00515da8 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x00515dac lw t9, -0x6148(gp)            |     t9 = sym.imp.memcpy;
    0x00515db0 addiu a0, v0, 0x10            |     a0 = v0 + 0x10;
    0x00515db4 lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x00515db8 move a2, s5                   |     a2 = s5;
    0x00515dbc move a1, s3                   |     a1 = s3;
    0x00515dc0 addu a0, a0, v0               |     a0 += v0;
    0x00515dc4 jalr t9                       |     t9 ();
    0x00515dc8 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x00515dcc lw v1, 0xcd8(sp)              |     v1 = *(var_cd8h);
    0x00515dd0 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00515dd4 sw s2, 0xc(v0)                |     *((v0 + 3)) = s2;
    0x00515dd8 lhu v0, 0x10(fp)              |     v0 = *(arg_10h);
                                             |     if (v1 == 0) {
    0x00515ddc beqz v1, 0x516bbc             |         goto label_189;
                                             |     }
    0x00515de0 addiu v1, zero, 0x1bb         |     v1 = 0x1bb;
                                             |     if (v0 == v1) {
                                             | label_46:
    0x00515de4 beq v0, v1, 0x515ec0          |         goto label_190;
                                             |     }
    0x00515de8 nop                           |     
    0x00515dec lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             |     if (v0 == 0) {
    0x00515df0 beqz v0, 0x515ec4             |         goto label_191;
                                             |     }
    0x00515df4 lw v0, 0xcc4(sp)              |     v0 = *(var_cc4h);
    0x00515df8 addiu s3, s2, 1               |     s3 = s2 + 1;
    0x00515dfc sltu v0, s3, v0               |     v0 = (s3 < v0) ? 1 : 0;
    0x00515e00 lw v1, 0xcc0(sp)              |     v1 = *(var_cc0h);
                                             |     if (v0 == 0) {
    0x00515e04 bnez v0, 0x515e20             |         
    0x00515e08 lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x00515e0c move a1, s3                   |         a1 = s3;
    0x00515e10 addiu a0, sp, 0xcc0           |         a0 = sp + 0xcc0;
    0x00515e14 jalr t9                       |         t9 ();
    0x00515e18 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00515e1c lw v1, 0xcc0(sp)              |         v1 = *(var_cc0h);
                                             |     }
    0x00515e20 addiu v0, zero, 0x3a          |     v0 = 0x3a;
    0x00515e24 addu s2, v1, s2               |     s2 = v1 + s2;
    0x00515e28 addiu a1, zero, 0xa           |     a1 = 0xa;
    0x00515e2c sb v0, 0x10(s2)               |     *((s2 + 16)) = v0;
    0x00515e30 addiu s2, sp, 0x4f            |     s2 = sp + 0x4f;
    0x00515e34 sw s3, 0xc(v1)                |     *((v1 + 3)) = s3;
    0x00515e38 lhu v0, 0x10(fp)              |     v0 = *(arg_10h);
    0x00515e3c move s5, s2                   |     s5 = s2;
    0x00515e40 sb zero, 0x4f(sp)             |     *(var_4fh) = 0;
                                             |     do {
    0x00515e44 divu zero, v0, a1             |         __asm ("divu zero, v0, a1");
    0x00515e48 teq a1, zero, 7               |         __asm ("teq a1, zero, 7");
    0x00515e4c addiu s2, s2, -1              |         s2 += -1;
    0x00515e50 mfhi a0                       |         __asm ("mfhi a0");
    0x00515e54 mflo v0                       |         __asm ("mflo v0");
    0x00515e58 addiu a0, a0, 0x30            |         a0 += 0x30;
    0x00515e5c sb a0, (s2)                   |         *(s2) = a0;
    0x00515e60 bnez v0, 0x515e44             |         
                                             |     } while (v0 != 0);
    0x00515e64 lw s3, 0xc(v1)                |     s3 = *((v1 + 3));
    0x00515e68 subu s5, s5, s2               |     __asm ("subu s5, s5, s2");
    0x00515e6c lw v0, 0xcc4(sp)              |     v0 = *(var_cc4h);
    0x00515e70 addu s3, s5, s3               |     s3 = s5 + s3;
    0x00515e74 sltu v0, s3, v0               |     v0 = (s3 < v0) ? 1 : 0;
    0x00515e78 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             |     if (v0 == 0) {
    0x00515e7c bnez v0, 0x515e98             |         
    0x00515e80 lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x00515e84 move a1, s3                   |         a1 = s3;
    0x00515e88 addiu a0, sp, 0xcc0           |         a0 = sp + 0xcc0;
    0x00515e8c jalr t9                       |         t9 ();
    0x00515e90 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00515e94 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |     }
    0x00515e98 lw t9, -0x6148(gp)            |     t9 = sym.imp.memcpy;
    0x00515e9c addiu a0, v0, 0x10            |     a0 = v0 + 0x10;
    0x00515ea0 lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x00515ea4 move a2, s5                   |     a2 = s5;
    0x00515ea8 move a1, s2                   |     a1 = s2;
    0x00515eac addu a0, a0, v0               |     a0 += v0;
    0x00515eb0 jalr t9                       |     t9 ();
    0x00515eb4 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x00515eb8 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00515ebc sw s3, 0xc(v0)                |     *((v0 + 3)) = s3;
                                             | label_190:
    0x00515ec0 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             | label_191:
    0x00515ec4 addiu s2, zero, 2             |     s2 = 2;
                                             |     if (v0 != 0) {
    0x00515ec8 beqz v0, 0x515ee4             |         
    0x00515ecc lw s2, 0xc(v0)                |         s2 = *((v0 + 3));
    0x00515ed0 lw v0, 0xcc4(sp)              |         v0 = *(var_cc4h);
    0x00515ed4 addiu s2, s2, 2               |         s2 += 2;
    0x00515ed8 sltu v0, s2, v0               |         v0 = (s2 < v0) ? 1 : 0;
    0x00515edc lw v1, 0xcc0(sp)              |         v1 = *(var_cc0h);
                                             |         if (v0 != 0) {
    0x00515ee0 bnez v0, 0x515efc             |             goto label_192;
                                             |         }
                                             |     }
    0x00515ee4 lw t9, -0x7ed4(gp)            |     t9 = sym.smart_str_erealloc;
    0x00515ee8 move a1, s2                   |     a1 = s2;
    0x00515eec addiu a0, sp, 0xcc0           |     a0 = sp + 0xcc0;
    0x00515ef0 jalr t9                       |     t9 ();
    0x00515ef4 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00515ef8 lw v1, 0xcc0(sp)              |     v1 = *(var_cc0h);
                                             | label_192:
    0x00515efc addiu v0, v1, 0x10            |     v0 = v1 + 0x10;
    0x00515f00 lw v1, 0xc(v1)                |     v1 = *((v1 + 3));
    0x00515f04 addu v0, v0, v1               |     v0 += v1;
    0x00515f08 addiu v1, zero, 0xd           |     v1 = 0xd;
    0x00515f0c sb v1, (v0)                   |     *(v0) = v1;
    0x00515f10 addiu v1, zero, 0xa           |     v1 = 0xa;
    0x00515f14 sb v1, 1(v0)                  |     *((v0 + 1)) = v1;
    0x00515f18 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x00515f1c sw s2, 0xc(v0)                |     *((v0 + 3)) = s2;
    0x00515f20 andi v0, s1, 0x40             |     v0 = s1 & 0x40;
                                             | label_187:
    0x00515f24 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             |     if (v0 == 0) {
    0x00515f28 bnez v0, 0x515f90             |         
    0x00515f2c addiu s2, zero, 0x13          |         s2 = 0x13;
                                             |         if (v0 != 0) {
    0x00515f30 beqz v0, 0x515f4c             |             
    0x00515f34 lw s2, 0xc(v0)                |             s2 = *((v0 + 3));
    0x00515f38 lw v0, 0xcc4(sp)              |             v0 = *(var_cc4h);
    0x00515f3c addiu s2, s2, 0x13            |             s2 += 0x13;
    0x00515f40 sltu v0, s2, v0               |             v0 = (s2 < v0) ? 1 : 0;
    0x00515f44 lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
                                             |             if (v0 != 0) {
    0x00515f48 bnez v0, 0x515f64             |                 goto label_193;
                                             |             }
                                             |         }
    0x00515f4c lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x00515f50 move a1, s2                   |         a1 = s2;
    0x00515f54 addiu a0, sp, 0xcc0           |         a0 = sp + 0xcc0;
    0x00515f58 jalr t9                       |         t9 ();
    0x00515f5c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00515f60 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             | label_193:
    0x00515f64 lw a1, -0x7fc0(gp)            |         a1 = *((gp - 8176));
    0x00515f68 addiu a0, v0, 0x10            |         a0 = v0 + 0x10;
    0x00515f6c lw v0, 0xc(v0)                |         v0 = *((v0 + 3));
    0x00515f70 lw t9, -0x6148(gp)            |         t9 = sym.imp.memcpy;
    0x00515f74 addiu a2, zero, 0x13          |         a2 = 0x13;
                                             |         /* str.Connection:_close_r_n */
    0x00515f78 addiu a1, a1, -0x46f0         |         a1 += -0x46f0;
    0x00515f7c addu a0, a0, v0               |         a0 += v0;
    0x00515f80 jalr t9                       |         t9 ();
    0x00515f84 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
    0x00515f88 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00515f8c sw s2, 0xc(v0)                |         *((v0 + 3)) = s2;
                                             |     }
    0x00515f90 lw v0, 0xcdc(sp)              |     v0 = *(var_cdch);
                                             |     if (s0 == 0) {
    0x00515f94 beqz s0, 0x516bcc             |         goto label_194;
                                             |     }
    0x00515f98 lw a2, -0x7ef8(gp)            |     a2 = *(gp);
    0x00515f9c lw t9, -0x6a28(gp)            |     t9 = sym.php_stream_context_get_option;
                                             |     /* str.user_agent */
    0x00515fa0 addiu a2, a2, -0x4e2c         |     a2 += -0x4e2c;
    0x00515fa4 addiu a1, v0, -0x1440         |     a1 = v0 + -0x1440;
    0x00515fa8 move a0, s0                   |     a0 = s0;
    0x00515fac jalr t9                       |     t9 ();
    0x00515fb0 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x00515fb4 beqz v0, 0x516bcc             |         goto label_194;
                                             |     }
    0x00515fb8 lbu a0, 8(v0)                 |     a0 = *((v0 + 8));
    0x00515fbc addiu v1, zero, 6             |     v1 = 6;
                                             |     if (a0 != v1) {
    0x00515fc0 bne a0, v1, 0x516bcc          |         goto label_194;
                                             |     }
    0x00515fc4 nop                           |     
    0x00515fc8 lw s2, (v0)                   |     s2 = *(v0);
    0x00515fcc addiu s2, s2, 0x10            |     s2 += 0x10;
                                             | label_47:
    0x00515fd0 andi v0, s1, 1                |     v0 = s1 & 1;
                                             |     if (v0 == 0) {
    0x00515fd4 bnez v0, 0x5160b4             |         
    0x00515fd8 nop                           |         
                                             |         if (s2 == 0) {
    0x00515fdc beqz s2, 0x5160b4             |             goto label_195;
                                             |         }
    0x00515fe0 nop                           |         
    0x00515fe4 lw t9, -0x6154(gp)            |         t9 = sym.imp.strlen;
    0x00515fe8 move a0, s2                   |         a0 = s2;
    0x00515fec jalr t9                       |         t9 ();
    0x00515ff0 addiu s5, v0, 0x11            |         s5 = v0 + 0x11;
    0x00515ff4 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x00515ff8 beqz v0, 0x5160b4             |             goto label_195;
                                             |         }
    0x00515ffc lw t9, -0x7f60(gp)            |         t9 = sym._emalloc;
    0x00516000 addiu a0, v0, 0x12            |         a0 = v0 + 0x12;
    0x00516004 jalr t9                       |         t9 ();
    0x00516008 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0051600c move a1, s5                   |         a1 = s5;
    0x00516010 move a3, s2                   |         a3 = s2;
    0x00516014 lw a2, -0x7fc0(gp)            |         a2 = *((gp - 8176));
    0x00516018 lw t9, -0x7ed8(gp)            |         t9 = sym.ap_php_slprintf;
                                             |         /* str.User_Agent:__s_r_n */
    0x0051601c addiu a2, a2, -0x46dc         |         a2 += -0x46dc;
    0x00516020 move a0, v0                   |         a0 = v0;
    0x00516024 move s3, v0                   |         s3 = v0;
    0x00516028 bal 0x52f9f8                  |         sym_ap_php_slprintf ();
    0x0051602c move s5, v0                   |         s5 = v0;
    0x00516030 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x00516034 beqz v0, 0x516bd8             |             goto label_196;
                                             |         }
    0x00516038 addu v0, s3, v0               |         v0 = s3 + v0;
    0x0051603c sb zero, (v0)                 |         *(v0) = 0;
    0x00516040 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
    0x00516044 move s2, s5                   |         s2 = s5;
                                             |         if (v0 != 0) {
    0x00516048 beqz v0, 0x516064             |             
    0x0051604c lw s2, 0xc(v0)                |             s2 = *((v0 + 3));
    0x00516050 lw v0, 0xcc4(sp)              |             v0 = *(var_cc4h);
    0x00516054 addu s2, s5, s2               |             s2 = s5 + s2;
    0x00516058 sltu v0, s2, v0               |             v0 = (s2 < v0) ? 1 : 0;
    0x0051605c lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
                                             |             if (v0 != 0) {
    0x00516060 bnez v0, 0x51607c             |                 goto label_197;
                                             |             }
                                             |         }
    0x00516064 lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x00516068 move a1, s2                   |         a1 = s2;
    0x0051606c addiu a0, sp, 0xcc0           |         a0 = sp + 0xcc0;
    0x00516070 jalr t9                       |         t9 ();
    0x00516074 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516078 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             | label_197:
    0x0051607c lw t9, -0x6148(gp)            |         t9 = sym.imp.memcpy;
    0x00516080 addiu a0, v0, 0x10            |         a0 = v0 + 0x10;
    0x00516084 lw v0, 0xc(v0)                |         v0 = *((v0 + 3));
    0x00516088 move a2, s5                   |         a2 = s5;
    0x0051608c move a1, s3                   |         a1 = s3;
    0x00516090 addu a0, a0, v0               |         a0 += v0;
    0x00516094 jalr t9                       |         t9 ();
    0x00516098 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
    0x0051609c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005160a0 sw s2, 0xc(v0)                |         *((v0 + 3)) = s2;
                                             | label_48:
    0x005160a4 lw t9, -0x7fe4(gp)            |         t9 = sym._efree;
    0x005160a8 move a0, s3                   |         a0 = s3;
    0x005160ac jalr t9                       |         t9 ();
    0x005160b0 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |     }
                                             | label_195:
    0x005160b4 lw v0, 0xce8(sp)              |     v0 = *(var_ce8h);
                                             |     if (s4 == 0) {
    0x005160b8 beqz s4, 0x51633c             |         goto label_198;
                                             |     }
                                             |     if (v0 == 0) {
    0x005160bc beqz v0, 0x516268             |         goto label_199;
                                             |     }
    0x005160c0 nop                           |     
    0x005160c4 andi v0, s1, 0x10             |     v0 = s1 & 0x10;
                                             |     if (s0 == 0) {
    0x005160c8 beqz s0, 0x516268             |         goto label_199;
                                             |     }
    0x005160cc lw t9, -0x6154(gp)            |     t9 = sym.imp.strlen;
                                             |     if (v0 != 0) {
    0x005160d0 bnez v0, 0x51626c             |         goto label_200;
                                             |     }
    0x005160d4 lw a2, -0x7ef8(gp)            |     a2 = *(gp);
    0x005160d8 lw v0, 0xcdc(sp)              |     v0 = *(var_cdch);
    0x005160dc lw t9, -0x6a28(gp)            |     t9 = sym.php_stream_context_get_option;
                                             |     /* str.content */
    0x005160e0 addiu a2, a2, -0x4e34         |     a2 += -0x4e34;
    0x005160e4 addiu a1, v0, -0x1440         |     a1 = v0 + -0x1440;
    0x005160e8 move a0, s0                   |     a0 = s0;
    0x005160ec jalr t9                       |     t9 ();
    0x005160f0 move s3, v0                   |     s3 = v0;
    0x005160f4 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x005160f8 beqz v0, 0x516268             |         goto label_199;
                                             |     }
    0x005160fc lbu v1, 8(v0)                 |     v1 = *((v0 + 8));
    0x00516100 addiu v0, zero, 6             |     v0 = 6;
                                             |     if (v1 != v0) {
    0x00516104 bne v1, v0, 0x516268          |         goto label_199;
                                             |     }
    0x00516108 nop                           |     
    0x0051610c lw v0, (s3)                   |     v0 = *(s3);
    0x00516110 lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x00516114 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             |     if (v0 == 0) {
    0x00516118 beqz v0, 0x516268             |         goto label_199;
                                             |     }
    0x0051611c addiu s2, zero, 0x10          |     s2 = 0x10;
                                             |     if (v0 != 0) {
    0x00516120 beqz v0, 0x51613c             |         
    0x00516124 lw s2, 0xc(v0)                |         s2 = *((v0 + 3));
    0x00516128 lw v0, 0xcc4(sp)              |         v0 = *(var_cc4h);
    0x0051612c addiu s2, s2, 0x10            |         s2 += 0x10;
    0x00516130 sltu v0, s2, v0               |         v0 = (s2 < v0) ? 1 : 0;
    0x00516134 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |         if (v0 != 0) {
    0x00516138 bnez v0, 0x516154             |             goto label_201;
                                             |         }
                                             |     }
    0x0051613c lw t9, -0x7ed4(gp)            |     t9 = sym.smart_str_erealloc;
    0x00516140 move a1, s2                   |     a1 = s2;
    0x00516144 addiu a0, sp, 0xcc0           |     a0 = sp + 0xcc0;
    0x00516148 jalr t9                       |     t9 ();
    0x0051614c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00516150 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             | label_201:
    0x00516154 lw a1, -0x7fc0(gp)            |     a1 = *((gp - 8176));
    0x00516158 addiu a0, v0, 0x10            |     a0 = v0 + 0x10;
    0x0051615c lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x00516160 lw t9, -0x6148(gp)            |     t9 = sym.imp.memcpy;
                                             |     /* str.Content_Length:_ */
    0x00516164 addiu a1, a1, -0x46a4         |     a1 += -0x46a4;
    0x00516168 addu a0, a0, v0               |     a0 += v0;
    0x0051616c addiu a2, zero, 0x10          |     a2 = 0x10;
    0x00516170 jalr t9                       |     t9 ();
    0x00516174 lw a0, 0xcc0(sp)              |     a0 = *(var_cc0h);
    0x00516178 lw v0, (s3)                   |     v0 = *(s3);
    0x0051617c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00516180 addiu s3, sp, 0x4f            |     s3 = sp + 0x4f;
    0x00516184 sw s2, 0xc(a0)                |     *((a0 + 3)) = s2;
    0x00516188 lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x0051618c move s5, s3                   |     s5 = s3;
    0x00516190 sb zero, 0x4f(sp)             |     *(var_4fh) = 0;
    0x00516194 addiu a1, zero, 0xa           |     a1 = 0xa;
                                             |     do {
    0x00516198 divu zero, v0, a1             |         __asm ("divu zero, v0, a1");
    0x0051619c teq a1, zero, 7               |         __asm ("teq a1, zero, 7");
    0x005161a0 addiu s3, s3, -1              |         s3 += -1;
    0x005161a4 mfhi v1                       |         __asm ("mfhi v1");
    0x005161a8 mflo v0                       |         __asm ("mflo v0");
    0x005161ac addiu v1, v1, 0x30            |         v1 += 0x30;
    0x005161b0 sb v1, (s3)                   |         *(s3) = v1;
    0x005161b4 bnez v0, 0x516198             |         
                                             |     } while (v0 != 0);
    0x005161b8 lw s2, 0xc(a0)                |     s2 = *((a0 + 3));
    0x005161bc subu s5, s5, s3               |     __asm ("subu s5, s5, s3");
    0x005161c0 lw v0, 0xcc4(sp)              |     v0 = *(var_cc4h);
    0x005161c4 addu s2, s5, s2               |     s2 = s5 + s2;
    0x005161c8 sltu v0, s2, v0               |     v0 = (s2 < v0) ? 1 : 0;
    0x005161cc lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             |     if (v0 == 0) {
    0x005161d0 bnez v0, 0x5161ec             |         
    0x005161d4 lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x005161d8 move a1, s2                   |         a1 = s2;
    0x005161dc addiu a0, sp, 0xcc0           |         a0 = sp + 0xcc0;
    0x005161e0 jalr t9                       |         t9 ();
    0x005161e4 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005161e8 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |     }
    0x005161ec lw t9, -0x6148(gp)            |     t9 = sym.imp.memcpy;
    0x005161f0 addiu a0, v0, 0x10            |     a0 = v0 + 0x10;
    0x005161f4 lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x005161f8 move a2, s5                   |     a2 = s5;
    0x005161fc move a1, s3                   |     a1 = s3;
    0x00516200 addu a0, a0, v0               |     a0 += v0;
    0x00516204 jalr t9                       |     t9 ();
    0x00516208 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x0051620c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00516210 sw s2, 0xc(v0)                |     *((v0 + 3)) = s2;
    0x00516214 lw v0, 0xcc4(sp)              |     v0 = *(var_cc4h);
    0x00516218 addiu s2, s2, 2               |     s2 += 2;
    0x0051621c sltu v0, s2, v0               |     v0 = (s2 < v0) ? 1 : 0;
    0x00516220 lw v1, 0xcc0(sp)              |     v1 = *(var_cc0h);
                                             |     if (v0 == 0) {
    0x00516224 bnez v0, 0x516240             |         
    0x00516228 lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x0051622c move a1, s2                   |         a1 = s2;
    0x00516230 addiu a0, sp, 0xcc0           |         a0 = sp + 0xcc0;
    0x00516234 jalr t9                       |         t9 ();
    0x00516238 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0051623c lw v1, 0xcc0(sp)              |         v1 = *(var_cc0h);
                                             |     }
    0x00516240 ori s1, s1, 0x10              |     s1 |= 0x10;
    0x00516244 addiu v0, v1, 0x10            |     v0 = v1 + 0x10;
    0x00516248 lw v1, 0xc(v1)                |     v1 = *((v1 + 3));
    0x0051624c addu v0, v0, v1               |     v0 += v1;
    0x00516250 addiu v1, zero, 0xd           |     v1 = 0xd;
    0x00516254 sb v1, (v0)                   |     *(v0) = v1;
    0x00516258 addiu v1, zero, 0xa           |     v1 = 0xa;
    0x0051625c sb v1, 1(v0)                  |     *((v0 + 1)) = v1;
    0x00516260 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x00516264 sw s2, 0xc(v0)                |     *((v0 + 3)) = s2;
                                             | label_199:
    0x00516268 lw t9, -0x6154(gp)            |     t9 = sym.imp.strlen;
                                             | label_200:
    0x0051626c move a0, s4                   |     a0 = s4;
    0x00516270 jalr t9                       |     t9 ();
    0x00516274 move s3, v0                   |     s3 = v0;
    0x00516278 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x0051627c lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x00516280 beqz v0, 0x516bf8             |         goto label_202;
                                             |     }
    0x00516284 lw s2, 0xc(v0)                |     s2 = *((v0 + 3));
    0x00516288 lw v0, 0xcc4(sp)              |     v0 = *(var_cc4h);
    0x0051628c addu s2, s3, s2               |     s2 = s3 + s2;
    0x00516290 sltu v0, s2, v0               |     v0 = (s2 < v0) ? 1 : 0;
    0x00516294 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             |     if (v0 == 0) {
    0x00516298 bnez v0, 0x5162b4             |         
                                             | label_49:
    0x0051629c lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x005162a0 move a1, s2                   |         a1 = s2;
    0x005162a4 addiu a0, sp, 0xcc0           |         a0 = sp + 0xcc0;
    0x005162a8 jalr t9                       |         t9 ();
    0x005162ac lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005162b0 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |     }
    0x005162b4 lw t9, -0x6148(gp)            |     t9 = sym.imp.memcpy;
    0x005162b8 addiu a0, v0, 0x10            |     a0 = v0 + 0x10;
    0x005162bc lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x005162c0 move a2, s3                   |     a2 = s3;
    0x005162c4 move a1, s4                   |     a1 = s4;
    0x005162c8 addu a0, a0, v0               |     a0 += v0;
    0x005162cc jalr t9                       |     t9 ();
    0x005162d0 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x005162d4 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x005162d8 sw s2, 0xc(v0)                |     *((v0 + 3)) = s2;
    0x005162dc lw v0, 0xcc4(sp)              |     v0 = *(var_cc4h);
    0x005162e0 addiu s2, s2, 2               |     s2 += 2;
    0x005162e4 sltu v0, s2, v0               |     v0 = (s2 < v0) ? 1 : 0;
    0x005162e8 lw v1, 0xcc0(sp)              |     v1 = *(var_cc0h);
                                             |     if (v0 == 0) {
    0x005162ec bnez v0, 0x516308             |         
    0x005162f0 lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x005162f4 move a1, s2                   |         a1 = s2;
    0x005162f8 addiu a0, sp, 0xcc0           |         a0 = sp + 0xcc0;
    0x005162fc jalr t9                       |         t9 ();
    0x00516300 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516304 lw v1, 0xcc0(sp)              |         v1 = *(var_cc0h);
                                             |     }
    0x00516308 lw t9, -0x7fe4(gp)            |     t9 = sym._efree;
    0x0051630c addiu v0, v1, 0x10            |     v0 = v1 + 0x10;
    0x00516310 lw v1, 0xc(v1)                |     v1 = *((v1 + 3));
    0x00516314 move a0, s4                   |     a0 = s4;
    0x00516318 addu v0, v0, v1               |     v0 += v1;
    0x0051631c addiu v1, zero, 0xd           |     v1 = 0xd;
    0x00516320 sb v1, (v0)                   |     *(v0) = v1;
    0x00516324 addiu v1, zero, 0xa           |     v1 = 0xa;
    0x00516328 sb v1, 1(v0)                  |     *((v0 + 1)) = v1;
    0x0051632c lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x00516330 sw s2, 0xc(v0)                |     *((v0 + 3)) = s2;
    0x00516334 jalr t9                       |     t9 ();
    0x00516338 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             | label_198:
    0x0051633c lw v0, 0xce8(sp)              |     v0 = *(var_ce8h);
    0x00516340 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             |     if (v0 == 0) {
    0x00516344 beqz v0, 0x516c0c             |         goto label_203;
                                             |     }
    0x00516348 lw a2, -0x7ef8(gp)            |     a2 = *(gp);
                                             |     if (s0 == 0) {
    0x0051634c beqz s0, 0x516c0c             |         goto label_203;
                                             |     }
    0x00516350 lw v0, 0xcdc(sp)              |     v0 = *(var_cdch);
    0x00516354 lw t9, -0x6a28(gp)            |     t9 = sym.php_stream_context_get_option;
                                             |     /* str.content */
    0x00516358 addiu a2, a2, -0x4e34         |     a2 += -0x4e34;
    0x0051635c addiu a1, v0, -0x1440         |     a1 = v0 + -0x1440;
    0x00516360 move a0, s0                   |     a0 = s0;
    0x00516364 jalr t9                       |     t9 ();
    0x00516368 move s4, v0                   |     s4 = v0;
    0x0051636c lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x00516370 beqz v0, 0x516c08             |         goto label_204;
                                             |     }
    0x00516374 lbu v1, 8(v0)                 |     v1 = *((v0 + 8));
    0x00516378 addiu v0, zero, 6             |     v0 = 6;
    0x0051637c lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             |     if (v1 != v0) {
    0x00516380 bne v1, v0, 0x516c0c          |         goto label_203;
                                             |     }
    0x00516384 lw v0, (s4)                   |     v0 = *(s4);
    0x00516388 lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x0051638c lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             |     if (v0 == 0) {
    0x00516390 beqz v0, 0x516c0c             |         goto label_203;
                                             |     }
    0x00516394 andi v0, s1, 0x10             |     v0 = s1 & 0x10;
    0x00516398 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             |     if (v0 != 0) {
    0x0051639c bnez v0, 0x5164e8             |         goto label_205;
                                             |     }
    0x005163a0 addiu s2, zero, 0x10          |     s2 = 0x10;
                                             |     if (v0 != 0) {
    0x005163a4 beqz v0, 0x5163c0             |         
    0x005163a8 lw s2, 0xc(v0)                |         s2 = *((v0 + 3));
    0x005163ac lw v0, 0xcc4(sp)              |         v0 = *(var_cc4h);
    0x005163b0 addiu s2, s2, 0x10            |         s2 += 0x10;
    0x005163b4 sltu v0, s2, v0               |         v0 = (s2 < v0) ? 1 : 0;
    0x005163b8 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |         if (v0 != 0) {
    0x005163bc bnez v0, 0x5163d8             |             goto label_206;
                                             |         }
                                             |     }
    0x005163c0 lw t9, -0x7ed4(gp)            |     t9 = sym.smart_str_erealloc;
    0x005163c4 move a1, s2                   |     a1 = s2;
    0x005163c8 addiu a0, sp, 0xcc0           |     a0 = sp + 0xcc0;
    0x005163cc jalr t9                       |     t9 ();
    0x005163d0 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x005163d4 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             | label_206:
    0x005163d8 lw a1, -0x7fc0(gp)            |     a1 = *((gp - 8176));
    0x005163dc addiu a0, v0, 0x10            |     a0 = v0 + 0x10;
    0x005163e0 lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x005163e4 lw t9, -0x6148(gp)            |     t9 = sym.imp.memcpy;
                                             |     /* str.Content_Length:_ */
    0x005163e8 addiu a1, a1, -0x46a4         |     a1 += -0x46a4;
    0x005163ec addu a0, a0, v0               |     a0 += v0;
    0x005163f0 addiu a2, zero, 0x10          |     a2 = 0x10;
    0x005163f4 jalr t9                       |     t9 ();
    0x005163f8 lw a0, 0xcc0(sp)              |     a0 = *(var_cc0h);
    0x005163fc lw v0, (s4)                   |     v0 = *(s4);
    0x00516400 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00516404 addiu s3, sp, 0x4f            |     s3 = sp + 0x4f;
    0x00516408 sw s2, 0xc(a0)                |     *((a0 + 3)) = s2;
    0x0051640c lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x00516410 move s5, s3                   |     s5 = s3;
    0x00516414 sb zero, 0x4f(sp)             |     *(var_4fh) = 0;
    0x00516418 addiu a1, zero, 0xa           |     a1 = 0xa;
                                             |     do {
    0x0051641c divu zero, v0, a1             |         __asm ("divu zero, v0, a1");
    0x00516420 teq a1, zero, 7               |         __asm ("teq a1, zero, 7");
    0x00516424 addiu s3, s3, -1              |         s3 += -1;
    0x00516428 mfhi v1                       |         __asm ("mfhi v1");
    0x0051642c mflo v0                       |         __asm ("mflo v0");
    0x00516430 addiu v1, v1, 0x30            |         v1 += 0x30;
    0x00516434 sb v1, (s3)                   |         *(s3) = v1;
    0x00516438 bnez v0, 0x51641c             |         
                                             |     } while (v0 != 0);
    0x0051643c lw s2, 0xc(a0)                |     s2 = *((a0 + 3));
    0x00516440 subu s5, s5, s3               |     __asm ("subu s5, s5, s3");
    0x00516444 lw v0, 0xcc4(sp)              |     v0 = *(var_cc4h);
    0x00516448 addu s2, s5, s2               |     s2 = s5 + s2;
    0x0051644c sltu v0, s2, v0               |     v0 = (s2 < v0) ? 1 : 0;
    0x00516450 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             |     if (v0 == 0) {
    0x00516454 bnez v0, 0x516470             |         
    0x00516458 lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x0051645c move a1, s2                   |         a1 = s2;
    0x00516460 addiu a0, sp, 0xcc0           |         a0 = sp + 0xcc0;
    0x00516464 jalr t9                       |         t9 ();
    0x00516468 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0051646c lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |     }
    0x00516470 lw t9, -0x6148(gp)            |     t9 = sym.imp.memcpy;
    0x00516474 addiu a0, v0, 0x10            |     a0 = v0 + 0x10;
    0x00516478 lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x0051647c move a2, s5                   |     a2 = s5;
    0x00516480 move a1, s3                   |     a1 = s3;
    0x00516484 addu a0, a0, v0               |     a0 += v0;
    0x00516488 jalr t9                       |     t9 ();
    0x0051648c lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x00516490 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00516494 sw s2, 0xc(v0)                |     *((v0 + 3)) = s2;
    0x00516498 lw v0, 0xcc4(sp)              |     v0 = *(var_cc4h);
    0x0051649c addiu s2, s2, 2               |     s2 += 2;
    0x005164a0 sltu v0, s2, v0               |     v0 = (s2 < v0) ? 1 : 0;
    0x005164a4 lw v1, 0xcc0(sp)              |     v1 = *(var_cc0h);
                                             |     if (v0 == 0) {
    0x005164a8 bnez v0, 0x5164c4             |         
    0x005164ac lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x005164b0 move a1, s2                   |         a1 = s2;
    0x005164b4 addiu a0, sp, 0xcc0           |         a0 = sp + 0xcc0;
    0x005164b8 jalr t9                       |         t9 ();
    0x005164bc lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005164c0 lw v1, 0xcc0(sp)              |         v1 = *(var_cc0h);
                                             |     }
    0x005164c4 addiu v0, v1, 0x10            |     v0 = v1 + 0x10;
    0x005164c8 lw v1, 0xc(v1)                |     v1 = *((v1 + 3));
    0x005164cc addu v0, v0, v1               |     v0 += v1;
    0x005164d0 addiu v1, zero, 0xd           |     v1 = 0xd;
    0x005164d4 sb v1, (v0)                   |     *(v0) = v1;
    0x005164d8 addiu v1, zero, 0xa           |     v1 = 0xa;
    0x005164dc sb v1, 1(v0)                  |     *((v0 + 1)) = v1;
    0x005164e0 lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x005164e4 sw s2, 0xc(v0)                |     *((v0 + 3)) = s2;
                                             | label_205:
    0x005164e8 andi s1, s1, 0x20             |     s1 &= 0x20;
    0x005164ec lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             |     if (s1 == 0) {
    0x005164f0 bnez s1, 0x516578             |         
    0x005164f4 addiu s1, zero, 0x31          |         s1 = 0x31;
                                             |         if (v0 != 0) {
    0x005164f8 beqz v0, 0x516514             |             
    0x005164fc lw s1, 0xc(v0)                |             s1 = *((v0 + 3));
    0x00516500 lw v0, 0xcc4(sp)              |             v0 = *(var_cc4h);
    0x00516504 addiu s1, s1, 0x31            |             s1 += 0x31;
    0x00516508 sltu v0, s1, v0               |             v0 = (s1 < v0) ? 1 : 0;
    0x0051650c lw v0, 0xcc0(sp)              |             v0 = *(var_cc0h);
                                             |             if (v0 != 0) {
    0x00516510 bnez v0, 0x51652c             |                 goto label_207;
                                             |             }
                                             |         }
    0x00516514 lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x00516518 move a1, s1                   |         a1 = s1;
    0x0051651c addiu a0, sp, 0xcc0           |         a0 = sp + 0xcc0;
    0x00516520 jalr t9                       |         t9 ();
    0x00516524 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516528 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             | label_207:
    0x0051652c lw a1, -0x7fc0(gp)            |         a1 = *((gp - 8176));
    0x00516530 addiu a0, v0, 0x10            |         a0 = v0 + 0x10;
    0x00516534 lw v0, 0xc(v0)                |         v0 = *((v0 + 3));
    0x00516538 lw t9, -0x6148(gp)            |         t9 = sym.imp.memcpy;
    0x0051653c addiu a2, zero, 0x31          |         a2 = 0x31;
                                             |         /* str.Content_Type:_application_x_www_form_urlencoded_r_n */
    0x00516540 addiu a1, a1, -0x4690         |         a1 += -0x4690;
    0x00516544 addu a0, a0, v0               |         a0 += v0;
    0x00516548 jalr t9                       |         t9 ();
    0x0051654c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516550 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
    0x00516554 addiu a1, zero, 8             |         a1 = 8;
    0x00516558 lw a2, -0x7fc0(gp)            |         a2 = *((gp - 8176));
    0x0051655c lw t9, -0x7ef4(gp)            |         t9 = sym.php_error_docref0;
    0x00516560 sw s1, 0xc(v0)                |         *((v0 + 3)) = s1;
                                             |         /* str.Content_type_not_specified_assuming_application_x_www_form_urlencoded */
    0x00516564 addiu a2, a2, -0x465c         |         a2 += -0x465c;
    0x00516568 move a0, zero                 |         a0 = 0;
    0x0051656c jalr t9                       |         t9 ();
    0x00516570 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516574 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |     }
    0x00516578 addiu s1, zero, 2             |     s1 = 2;
                                             |     if (v0 != 0) {
    0x0051657c beqz v0, 0x516598             |         
    0x00516580 lw s1, 0xc(v0)                |         s1 = *((v0 + 3));
    0x00516584 lw v0, 0xcc4(sp)              |         v0 = *(var_cc4h);
    0x00516588 addiu s1, s1, 2               |         s1 += 2;
    0x0051658c sltu v0, s1, v0               |         v0 = (s1 < v0) ? 1 : 0;
    0x00516590 lw v1, 0xcc0(sp)              |         v1 = *(var_cc0h);
                                             |         if (v0 != 0) {
    0x00516594 bnez v0, 0x5165b0             |             goto label_208;
                                             |         }
                                             |     }
    0x00516598 lw t9, -0x7ed4(gp)            |     t9 = sym.smart_str_erealloc;
    0x0051659c move a1, s1                   |     a1 = s1;
    0x005165a0 addiu a0, sp, 0xcc0           |     a0 = sp + 0xcc0;
    0x005165a4 jalr t9                       |     t9 ();
    0x005165a8 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x005165ac lw v1, 0xcc0(sp)              |     v1 = *(var_cc0h);
                                             | label_208:
    0x005165b0 addiu v0, v1, 0x10            |     v0 = v1 + 0x10;
    0x005165b4 lw v1, 0xc(v1)                |     v1 = *((v1 + 3));
    0x005165b8 addu v0, v0, v1               |     v0 += v1;
    0x005165bc addiu v1, zero, 0xd           |     v1 = 0xd;
    0x005165c0 sb v1, (v0)                   |     *(v0) = v1;
    0x005165c4 addiu v1, zero, 0xa           |     v1 = 0xa;
    0x005165c8 sb v1, 1(v0)                  |     *((v0 + 1)) = v1;
    0x005165cc lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
    0x005165d0 sw s1, 0xc(v0)                |     *((v0 + 3)) = s1;
    0x005165d4 lw v0, (s4)                   |     v0 = *(s4);
    0x005165d8 addiu s3, v0, 0x10            |     s3 = v0 + 0x10;
    0x005165dc lw s2, 0xc(v0)                |     s2 = *((v0 + 3));
    0x005165e0 lw v0, 0xcc4(sp)              |     v0 = *(var_cc4h);
    0x005165e4 addu s1, s2, s1               |     s1 = s2 + s1;
    0x005165e8 sltu v0, s1, v0               |     v0 = (s1 < v0) ? 1 : 0;
    0x005165ec lw v0, 0xcc0(sp)              |     v0 = *(var_cc0h);
                                             |     if (v0 == 0) {
    0x005165f0 bnez v0, 0x51660c             |         
    0x005165f4 lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x005165f8 move a1, s1                   |         a1 = s1;
    0x005165fc addiu a0, sp, 0xcc0           |         a0 = sp + 0xcc0;
    0x00516600 jalr t9                       |         t9 ();
    0x00516604 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516608 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             |     }
    0x0051660c lw t9, -0x6148(gp)            |     t9 = sym.imp.memcpy;
    0x00516610 addiu a0, v0, 0x10            |     a0 = v0 + 0x10;
    0x00516614 lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x00516618 move a2, s2                   |     a2 = s2;
    0x0051661c move a1, s3                   |     a1 = s3;
    0x00516620 addu a0, a0, v0               |     a0 += v0;
    0x00516624 jalr t9                       |     t9 ();
    0x00516628 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     do {
    0x0051662c lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
    0x00516630 lw a1, 0xcc0(sp)              |         a1 = *(var_cc0h);
    0x00516634 lw t9, -0x7a64(gp)            |         t9 = sym._php_stream_write;
    0x00516638 sw s1, 0xc(v0)                |         *((v0 + 3)) = s1;
    0x0051663c lw a2, 0xc(a1)                |         a2 = *((a1 + 3));
    0x00516640 move a0, s6                   |         a0 = s6;
    0x00516644 addiu a1, a1, 0x10            |         a1 += 0x10;
    0x00516648 jalr t9                       |         t9 ();
    0x0051664c lw v0, 0xd50(sp)              |         v0 = *(arg_d50h);
    0x00516650 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516654 sb zero, 0x830(sp)            |         *(var_830h) = 0;
    0x00516658 lbu v0, 8(v0)                 |         v0 = *((v0 + 8));
    0x0051665c lw t9, -0x7a80(gp)            |         t9 = sym._php_stream_eof;
                                             |         if (v0 == 0) {
    0x00516660 bnez v0, 0x51667c             |             
    0x00516664 lw t9, -0x7f0c(gp)            |             t9 = sym._array_init;
    0x00516668 lw a0, 0xd50(sp)              |             a0 = *(arg_d50h);
    0x0051666c move a1, zero                 |             a1 = 0;
    0x00516670 jalr t9                       |             t9 ();
    0x00516674 lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00516678 lw t9, -0x7a80(gp)            |             t9 = sym._php_stream_eof;
                                             |         }
    0x0051667c move a0, s6                   |         a0 = s6;
    0x00516680 jalr t9                       |         t9 ();
    0x00516684 sw v0, 0xcf8(sp)              |         *(var_cf8h) = v0;
    0x00516688 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x0051668c bnez v0, 0x516d60             |             goto label_209;
                                             |         }
    0x00516690 lw t9, -0x7a78(gp)            |         t9 = sym._php_stream_get_line;
    0x00516694 addiu s5, sp, 0x430           |         s5 = sp + 0x430;
    0x00516698 addiu s3, sp, 0xc30           |         s3 = sp + 0xc30;
    0x0051669c move a3, s5                   |         a3 = s5;
    0x005166a0 addiu a2, zero, 0x7f          |         a2 = 0x7f;
    0x005166a4 move a1, s3                   |         a1 = s3;
    0x005166a8 move a0, s6                   |         a0 = s6;
    0x005166ac jalr t9                       |         t9 ();
    0x005166b0 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x005166b4 beqz v0, 0x516d58             |             goto label_210;
                                             |         }
    0x005166b8 lw v0, 0x430(sp)              |         v0 = *(var_430h);
    0x005166bc sltiu v0, v0, 0xa             |         v0 = (v0 < 0xa) ? 1 : 0;
                                             |         if (v0 != 0) {
    0x005166c0 bnez v0, 0x516c64             |             goto label_211;
                                             |         }
    0x005166c4 nop                           |         
    0x005166c8 lw t9, -0x61d4(gp)            |         t9 = sym.imp.atoi;
    0x005166cc addiu a0, sp, 0xc39           |         a0 = sp + 0xc39;
    0x005166d0 jalr t9                       |         t9 ();
    0x005166d4 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005166d8 sw v0, 0xce0(sp)              |         *(var_ce0h) = v0;
                                             | label_50:
    0x005166dc lw v0, 0xcdc(sp)              |         v0 = *(var_cdch);
                                             |         if (s0 != 0) {
    0x005166e0 bnez s0, 0x516c6c             |             goto label_212;
                                             |         }
                                             | label_51:
    0x005166e4 sw zero, 0xcf4(sp)            |         *(var_cf4h) = 0;
                                             | label_52:
    0x005166e8 lw v0, 0xd3c(sp)              |         v0 = *(arg_d3ch);
    0x005166ec andi v0, v0, 0x200            |         v0 &= 0x200;
    0x005166f0 addiu s1, zero, 1             |         s1 = 1;
                                             |         if (v0 == 0) {
    0x005166f4 bnez v0, 0x516700             |             
    0x005166f8 lw v0, 0xcf4(sp)              |             v0 = *(var_cf4h);
    0x005166fc sltu s1, zero, v0             |             s1 = (0 < v0) ? 1 : 0;
                                             |         }
    0x00516700 lw v0, 0xce0(sp)              |         v0 = *(var_ce0h);
    0x00516704 addiu v0, v0, -0x64           |         v0 += -0x64;
    0x00516708 sltiu v0, v0, 0x64            |         v0 = (v0 < 0x64) ? 1 : 0;
    0x0051670c lw v0, 0xce0(sp)              |         v0 = *(var_ce0h);
                                             |         if (v0 != 0) {
    0x00516710 beqz v0, 0x516748             |             
    0x00516714 lw s2, -0x7fc0(gp)            |             s2 = *((gp - 8176));
                                             |             /* str.HTTP_1 */
    0x00516718 addiu s2, s2, -0x4604         |             s2 += -0x4604;
                                             | label_55:
    0x0051671c lw t9, -0x7a80(gp)            |             t9 = sym._php_stream_eof;
                                             | label_54:
    0x00516720 move a0, s6                   |             a0 = s6;
    0x00516724 jalr t9                       |             t9 ();
    0x00516728 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |             if (v0 == 0) {
    0x0051672c beqz v0, 0x516ca8             |                 goto label_213;
                                             |             }
                                             | label_53:
    0x00516730 lw v0, 0x430(sp)              |             v0 = *(var_430h);
                                             | label_56:
    0x00516734 sltiu v0, v0, 0xa             |             v0 = (v0 < 0xa) ? 1 : 0;
                                             |             if (v0 == 0) {
    0x00516738 beqz v0, 0x516cfc             |                 goto label_214;
                                             |             }
    0x0051673c nop                           |             
    0x00516740 sw zero, 0xce0(sp)            |             *(var_ce0h) = 0;
                                             | label_57:
    0x00516744 lw v0, 0xce0(sp)              |             v0 = *(var_ce0h);
                                             |         }
    0x00516748 addiu v0, v0, -0xc8           |         v0 += -0xc8;
    0x0051674c sltiu v0, v0, 0xc8            |         v0 = (v0 < 0xc8) ? 1 : 0;
    0x00516750 addiu s7, sp, 0x30            |         s7 = sp + 0x30;
                                             |         if (v0 != 0) {
    0x00516754 bnez v0, 0x516d50             |             goto label_215;
                                             |         }
    0x00516758 lw v1, 0xce0(sp)              |         v1 = *(var_ce0h);
    0x0051675c addiu v0, zero, 0x193         |         v0 = 0x193;
    0x00516760 lw v0, 0x430(sp)              |         v0 = *(var_430h);
                                             |         if (v1 != v0) {
    0x00516764 bne v1, v0, 0x516d14          |             goto label_216;
                                             |         }
                                             |         if (s0 != 0) {
    0x00516768 beqz s0, 0x5167ac             |             
    0x0051676c nop                           |             
    0x00516770 lw v0, (s0)                   |             v0 = *(s0);
    0x00516774 lw v0, 0x430(sp)              |             v0 = *(var_430h);
                                             |             if (v0 == 0) {
    0x00516778 beqz v0, 0x5167ac             |                 goto label_217;
                                             |             }
    0x0051677c sw zero, 0x1c(sp)             |             *(var_1ch) = 0;
    0x00516780 sw zero, 0x18(sp)             |             *(var_18h) = 0;
    0x00516784 sw zero, 0x14(sp)             |             *(var_14h) = 0;
    0x00516788 sw v1, 0x10(sp)               |             *(var_10h) = v1;
    0x0051678c move a3, s3                   |             a3 = s3;
    0x00516790 addiu a2, zero, 2             |             a2 = 2;
    0x00516794 addiu a1, zero, 0xa           |             a1 = 0xa;
                                             | label_60:
    0x00516798 lw t9, -0x6a3c(gp)            |             t9 = sym.php_stream_notification_notify;
    0x0051679c move a0, s0                   |             a0 = s0;
    0x005167a0 jalr t9                       |             t9 ();
    0x005167a4 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             | label_59:
    0x005167a8 lw v0, 0x430(sp)              |             v0 = *(var_430h);
                                             |         }
                                             | label_217:
    0x005167ac addiu v1, v0, -1              |         v1 = v0 + -1;
                                             |         if (v0 != 0) {
    0x005167b0 beqz v0, 0x5167ec             |             
                                             | label_102:
    0x005167b4 addu a0, s7, v1               |             a0 = s7 + v1;
    0x005167b8 lb a1, 0xc00(a0)              |             a1 = *(var_c00h);
    0x005167bc addiu a0, zero, 0xa           |             a0 = 0xa;
                                             |             if (a1 != a0) {
    0x005167c0 bne a1, a0, 0x5167ec          |                 goto label_58;
                                             |             }
    0x005167c4 nop                           |             
    0x005167c8 sw v1, 0x430(sp)              |             *(var_430h) = v1;
                                             |             if (v1 == 0) {
    0x005167cc beqz v1, 0x5167ec             |                 goto label_58;
                                             |             }
    0x005167d0 addiu v0, v0, -2              |             v0 += -2;
    0x005167d4 addu v1, s7, v0               |             v1 = s7 + v0;
    0x005167d8 lb a0, 0xc00(v1)              |             a0 = *(var_c00h_2);
    0x005167dc addiu v1, zero, 0xd           |             v1 = 0xd;
    0x005167e0 lw s4, 0x430(sp)              |             s4 = *(var_430h);
                                             |             if (a0 != v1) {
    0x005167e4 bne a0, v1, 0x5167f0          |                 goto label_218;
                                             |             }
    0x005167e8 sw v0, 0x430(sp)              |             *(var_430h) = v0;
                                             |         }
                                             | label_58:
    0x005167ec lw s4, 0x430(sp)              |         s4 = *(var_430h);
                                             | label_218:
    0x005167f0 lw t9, -0x7f60(gp)            |         t9 = sym._emalloc;
    0x005167f4 addiu a0, s4, 0x18            |         a0 = s4 + 0x18;
    0x005167f8 addiu v0, zero, -8            |         v0 = -8;
    0x005167fc and a0, a0, v0                |         a0 &= v0;
    0x00516800 jalr t9                       |         t9 ();
    0x00516804 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516808 move s2, v0                   |         s2 = v0;
    0x0051680c addiu v0, zero, 1             |         v0 = 1;
    0x00516810 sw v0, (s2)                   |         *(s2) = v0;
    0x00516814 lw t9, -0x6148(gp)            |         t9 = sym.imp.memcpy;
    0x00516818 addiu v0, zero, 6             |         v0 = 6;
    0x0051681c move a2, s4                   |         a2 = s4;
    0x00516820 sw s4, 0xc(s2)                |         *((s2 + 3)) = s4;
    0x00516824 move a1, s3                   |         a1 = s3;
    0x00516828 addiu a0, s2, 0x10            |         a0 = s2 + 0x10;
    0x0051682c sw v0, 4(s2)                  |         *((s2 + 1)) = v0;
    0x00516830 sw zero, 8(s2)                |         *((s2 + 2)) = 0;
    0x00516834 jalr t9                       |         t9 ();
    0x00516838 addiu v0, zero, 0x1406        |         v0 = 0x1406;
    0x0051683c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516840 sw v0, 0x38(sp)               |         *(var_38h) = v0;
    0x00516844 lw v0, 0xd50(sp)              |         v0 = *(arg_d50h);
    0x00516848 addu s4, s2, s4               |         s4 = s2 + s4;
    0x0051684c lw t9, -0x7c10(gp)            |         t9 = sym._zend_hash_next_index_insert;
    0x00516850 lw a0, (v0)                   |         a0 = *(v0);
    0x00516854 sb zero, 0x10(s4)             |         *((s4 + 16)) = 0;
    0x00516858 sw s2, 0x30(sp)               |         *(var_30h) = s2;
    0x0051685c move a1, s7                   |         a1 = s7;
    0x00516860 jalr t9                       |         t9 ();
    0x00516864 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516868 sw s1, 0xcf8(sp)              |         *(var_cf8h) = s1;
                                             | label_61:
    0x0051686c lw t9, -0x6aa4(gp)            |         t9 = sym._emalloc_1024;
    0x00516870 move s7, zero                 |         s7 = 0;
    0x00516874 jalr t9                       |         t9 ();
    0x00516878 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0051687c move s1, v0                   |         s1 = v0;
    0x00516880 addiu s4, zero, 1             |         s4 = 1;
    0x00516884 lw v0, -0x7fc0(gp)            |         v0 = *((gp - 8176));
    0x00516888 sw zero, 0xce4(sp)            |         *(var_ce4h) = 0;
                                             |         /* str.Location: */
    0x0051688c addiu v0, v0, -0x45b0         |         v0 += -0x45b0;
    0x00516890 sw v0, 0xcfc(sp)              |         *(var_cfch) = v0;
    0x00516894 lw v0, -0x7fc0(gp)            |         v0 = *((gp - 8176));
                                             |         /* str.Content_Type: */
    0x00516898 addiu v0, v0, -0x4594         |         v0 += -0x4594;
    0x0051689c sw v0, 0xd00(sp)              |         *(var_d00h) = v0;
    0x005168a0 lw v0, -0x7fc0(gp)            |         v0 = *((gp - 8176));
    0x005168a4 sw v0, 0xd04(sp)              |         *(var_d04h) = v0;
                                             | label_63:
    0x005168a8 lw t9, -0x7a80(gp)            |         t9 = sym._php_stream_eof;
                                             | label_67:
    0x005168ac move a0, s6                   |         a0 = s6;
    0x005168b0 jalr t9                       |         t9 ();
    0x005168b4 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x005168b8 beqz v0, 0x516d8c             |             goto label_219;
                                             |         }
                                             | label_62:
    0x005168bc lw v0, 0xcf8(sp)              |         v0 = *(var_cf8h);
                                             |         if (v0 != 0) {
    0x005168c0 beqz v0, 0x5168d4             |             
    0x005168c4 nop                           |             
    0x005168c8 lb v0, 0x830(sp)              |             v0 = *(var_830h);
                                             |             if (v0 == 0) {
    0x005168cc beqz v0, 0x516fac             |                 goto label_82;
                                             |             }
    0x005168d0 nop                           |             
                                             |         }
    0x005168d4 lw v0, 0xd3c(sp)              |         v0 = *(arg_d3ch);
                                             |         if (s4 == 0) {
    0x005168d8 beqz s4, 0x516fac             |             goto label_82;
                                             |         }
    0x005168dc andi v0, v0, 0x200            |         v0 &= 0x200;
    0x005168e0 lw v0, 0xd48(sp)              |         v0 = *(arg_d48h);
                                             |         if (v0 == 0) {
    0x005168e4 bnez v0, 0x5168f8             |             
    0x005168e8 lw v0, 0xcf4(sp)              |             v0 = *(var_cf4h);
    0x005168ec lb v0, 0x830(sp)              |             v0 = *(var_830h);
                                             |             if (v0 == 0) {
    0x005168f0 beqz v0, 0x516904             |                 goto label_220;
                                             |             }
    0x005168f4 lw v0, 0xd48(sp)              |             v0 = *(arg_d48h);
                                             |         }
    0x005168f8 slti v0, v0, 2                |         v0 = (v0 < 2) ? 1 : 0;
    0x005168fc lb v0, 0x830(sp)              |         v0 = *(var_830h);
                                             |         if (v0 != 0) {
    0x00516900 bnez v0, 0x516fac             |             goto label_82;
                                             |         }
                                             | label_220:
    0x00516904 lw t9, -0x7a20(gp)            |         t9 = sym._php_stream_free;
                                             |         if (v0 != 0) {
    0x00516908 beqz v0, 0x51694c             |             
                                             |             if (s0 == 0) {
    0x0051690c beqz s0, 0x51694c             |                 goto label_221;
                                             |             }
    0x00516910 nop                           |             
    0x00516914 lw v0, (s0)                   |             v0 = *(s0);
    0x00516918 lw t9, -0x6a3c(gp)            |             t9 = sym.php_stream_notification_notify;
                                             |             if (v0 != 0) {
    0x0051691c beqz v0, 0x516948             |                 
    0x00516920 sw zero, 0x1c(sp)             |                 *(var_1ch) = 0;
    0x00516924 sw zero, 0x18(sp)             |                 *(var_18h) = 0;
    0x00516928 sw zero, 0x14(sp)             |                 *(var_14h) = 0;
    0x0051692c sw zero, 0x10(sp)             |                 *(var_10h) = 0;
    0x00516930 addiu a3, sp, 0x830           |                 a3 = sp + 0x830;
    0x00516934 move a2, zero                 |                 a2 = 0;
    0x00516938 addiu a1, zero, 6             |                 a1 = 6;
    0x0051693c move a0, s0                   |                 a0 = s0;
    0x00516940 jalr t9                       |                 t9 ();
    0x00516944 lw gp, 0x28(sp)               |                 gp = *(var_28h);
                                             |             }
    0x00516948 lw t9, -0x7a20(gp)            |             t9 = sym._php_stream_free;
                                             |         }
                                             | label_221:
    0x0051694c addiu a1, zero, 3             |         a1 = 3;
    0x00516950 move a0, s6                   |         a0 = s6;
    0x00516954 jalr t9                       |         t9 ();
    0x00516958 lb s4, 0x830(sp)              |         s4 = *(var_830h);
    0x0051695c lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (s4 == 0) {
    0x00516960 beqz s4, 0x517590             |             goto label_222;
                                             |         }
    0x00516964 lw t9, -0x6154(gp)            |         t9 = sym.imp.strlen;
    0x00516968 addiu s2, sp, 0x830           |         s2 = sp + 0x830;
    0x0051696c sb zero, 0x430(sp)            |         *(var_430h) = 0;
    0x00516970 move a0, s2                   |         a0 = s2;
    0x00516974 jalr t9                       |         t9 ();
    0x00516978 sltiu v0, v0, 8               |         v0 = (v0 < 8) ? 1 : 0;
    0x0051697c lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x00516980 bnez v0, 0x516a04             |             
    0x00516984 lw a1, -0x7fc0(gp)            |             a1 = *((gp - 8176));
    0x00516988 lw t9, -0x629c(gp)            |             t9 = sym.imp.strncasecmp;
    0x0051698c addiu a2, zero, 7             |             a2 = 7;
                                             |             /* str.http:__ */
    0x00516990 addiu a1, a1, -0x4544         |             a1 += -0x4544;
    0x00516994 move a0, s2                   |             a0 = s2;
    0x00516998 jalr t9                       |             t9 ();
    0x0051699c lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |             if (v0 == 0) {
    0x005169a0 beqz v0, 0x517394             |                 goto label_223;
                                             |             }
    0x005169a4 lw a1, -0x7fc0(gp)            |             a1 = *((gp - 8176));
    0x005169a8 lw t9, -0x629c(gp)            |             t9 = sym.imp.strncasecmp;
    0x005169ac addiu a2, zero, 8             |             a2 = 8;
                                             |             /* str.https:__ */
    0x005169b0 addiu a1, a1, -0x453c         |             a1 += -0x453c;
    0x005169b4 move a0, s2                   |             a0 = s2;
    0x005169b8 jalr t9                       |             t9 ();
    0x005169bc lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |             if (v0 == 0) {
    0x005169c0 beqz v0, 0x517394             |                 goto label_223;
                                             |             }
    0x005169c4 lw a1, -0x7fc0(gp)            |             a1 = *((gp - 8176));
    0x005169c8 lw t9, -0x629c(gp)            |             t9 = sym.imp.strncasecmp;
    0x005169cc addiu a2, zero, 6             |             a2 = 6;
                                             |             /* str.ftp:__ */
    0x005169d0 addiu a1, a1, -0x4530         |             a1 += -0x4530;
    0x005169d4 move a0, s2                   |             a0 = s2;
    0x005169d8 jalr t9                       |             t9 ();
    0x005169dc lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |             if (v0 == 0) {
    0x005169e0 beqz v0, 0x517394             |                 goto label_223;
                                             |             }
    0x005169e4 lw a1, -0x7fc0(gp)            |             a1 = *((gp - 8176));
    0x005169e8 lw t9, -0x629c(gp)            |             t9 = sym.imp.strncasecmp;
    0x005169ec addiu a2, zero, 7             |             a2 = 7;
                                             |             /* str.ftps:__ */
    0x005169f0 addiu a1, a1, -0x4528         |             a1 += -0x4528;
    0x005169f4 move a0, s2                   |             a0 = s2;
    0x005169f8 jalr t9                       |             t9 ();
    0x005169fc lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |             if (v0 == 0) {
    0x00516a00 beqz v0, 0x517394             |                 goto label_223;
                                             |             }
                                             |         }
    0x00516a04 addiu s6, zero, 0x2f          |         s6 = 0x2f;
    0x00516a08 addiu s3, sp, 0x30            |         s3 = sp + 0x30;
                                             |         if (s4 == s6) {
    0x00516a0c beq s4, s6, 0x517348          |             goto label_224;
                                             |         }
    0x00516a10 lb v0, 0x831(sp)              |         v0 = *(var_831h);
    0x00516a14 lw a2, -0x7fc0(gp)            |         a2 = *((gp - 8176));
                                             |         if (v0 == 0) {
    0x00516a18 beqz v0, 0x517328             |             goto label_225;
                                             |         }
    0x00516a1c lw s4, 0x14(fp)               |         s4 = *(arg_d44h);
    0x00516a20 lw t9, -0x7f58(gp)            |         t9 = sym.ap_php_snprintf;
                                             |         if (s4 == 0) {
    0x00516a24 beqz s4, 0x51732c             |             goto label_226;
                                             |         }
    0x00516a28 lw t9, -0x601c(gp)            |         t9 = sym.imp.strrchr;
    0x00516a2c addiu a1, zero, 0x2f          |         a1 = 0x2f;
    0x00516a30 move a0, s4                   |         a0 = s4;
    0x00516a34 jalr t9                       |         t9 ();
    0x00516a38 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x00516a3c bnez v0, 0x516a74             |             
    0x00516a40 lb v0, (s4)                   |             v0 = *(s4);
                                             |             if (v0 != 0) {
    0x00516a44 bnez v0, 0x51730c             |                 goto label_227;
                                             |             }
    0x00516a48 nop                           |             
    0x00516a4c lw t9, -0x7fe4(gp)            |             t9 = sym._efree;
    0x00516a50 move a0, s4                   |             a0 = s4;
    0x00516a54 jalr t9                       |             t9 ();
    0x00516a58 lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00516a5c lw a0, -0x7fc0(gp)            |             a0 = *((gp - 8176));
    0x00516a60 lw t9, -0x7f70(gp)            |             t9 = sym._estrdup;
    0x00516a64 addiu a0, a0, 0x4c0           |             a0 += 0x4c0;
    0x00516a68 jalr t9                       |             t9 ();
    0x00516a6c lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x00516a70 sw v0, 0x14(fp)               |             *(arg_d44h) = v0;
                                             |         }
                                             | label_76:
    0x00516a74 sb zero, 1(v0)                |         *((v0 + 1)) = 0;
    0x00516a78 lw a3, 0x14(fp)               |         a3 = *(arg_d44h);
    0x00516a7c lw t9, -0x7f58(gp)            |         t9 = sym.ap_php_snprintf;
                                             |         if (a3 == 0) {
    0x00516a80 beqz a3, 0x517318             |             goto label_228;
                                             |         }
    0x00516a84 lb v1, (a3)                   |         v1 = *(a3);
    0x00516a88 addiu v0, zero, 0x2f          |         v0 = 0x2f;
                                             |         if (v1 != v0) {
    0x00516a8c bne v1, v0, 0x517318          |             goto label_228;
                                             |         }
    0x00516a90 nop                           |         
    0x00516a94 lb v0, 1(a3)                  |         v0 = *((a3 + 1));
    0x00516a98 lw a2, -0x7fc4(gp)            |         a2 = *((gp - 8177));
                                             |         if (v0 != 0) {
    0x00516a9c bnez v0, 0x51731c             |             goto label_229;
                                             |         }
    0x00516aa0 lw a2, -0x7fbc(gp)            |         a2 = *((gp - 8175));
    0x00516aa4 sw s2, 0x10(sp)               |         *(var_10h) = s2;
                                             |         /* esilref: '&s&s' */
    0x00516aa8 addiu a2, a2, -0xcec          |         a2 += -0xcec;
                                             | label_77:
    0x00516aac addiu a1, zero, 0x3ff         |         a1 = 0x3ff;
    0x00516ab0 move a0, s3                   |         a0 = s3;
    0x00516ab4 bal 0x52e6d4                  |         sym_ap_php_snprintf ();
    0x00516ab8 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             | label_78:
    0x00516abc lw v1, 0xcd8(sp)              |         v1 = *(var_cd8h);
    0x00516ac0 lhu v0, 0x10(fp)              |         v0 = *(arg_10h);
    0x00516ac4 lw a3, (fp)                   |         a3 = *(fp);
    0x00516ac8 lw t9, -0x7f58(gp)            |         t9 = sym.ap_php_snprintf;
                                             |         if (v1 == 0) {
    0x00516acc beqz v1, 0x517364             |             goto label_230;
                                             |         }
    0x00516ad0 addiu v1, zero, 0x1bb         |         v1 = 0x1bb;
                                             | label_79:
    0x00516ad4 lw a2, -0x7fc0(gp)            |         a2 = *((gp - 8176));
                                             |         if (v0 == v1) {
    0x00516ad8 beq v0, v1, 0x51736c          |             goto label_231;
                                             |         }
    0x00516adc sw s3, 0x18(sp)               |         *(var_18h) = s3;
    0x00516ae0 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x00516ae4 lw v0, 0xc(fp)                |         v0 = *(arg_d3ch);
                                             |         /* str._s:___s:_d_s */
    0x00516ae8 addiu a2, a2, -0x451c         |         a2 += -0x451c;
    0x00516aec sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x00516af0 addiu a1, zero, 0x3ff         |         a1 = 0x3ff;
    0x00516af4 move a0, s5                   |         a0 = s5;
    0x00516af8 bal 0x52e6d4                  |         sym_ap_php_snprintf ();
    0x00516afc lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             | label_80:
    0x00516b00 lw t9, -0x704c(gp)            |         t9 = sym.php_url_free;
    0x00516b04 move a0, fp                   |         a0 = fp;
    0x00516b08 bal 0x503bd4                  |         sym_php_url_free ();
    0x00516b0c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516b10 lw t9, -0x6a44(gp)            |         t9 = sym.php_url_parse;
    0x00516b14 move a0, s5                   |         a0 = s5;
    0x00516b18 bal 0x504574                  |         sym_php_url_parse ();
    0x00516b1c move fp, v0                   |         fp = v0;
    0x00516b20 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x00516b24 bnez v0, 0x5173b0             |             goto label_232;
                                             |         }
                                             | label_84:
    0x00516b28 lw a2, -0x7fc0(gp)            |         a2 = *((gp - 8176));
    0x00516b2c move a3, s5                   |         a3 = s5;
                                             |         /* str.Invalid_redirect_URL___s */
    0x00516b30 addiu a2, a2, -0x4500         |         a2 += -0x4500;
                                             | label_87:
    0x00516b34 lw t9, -0x6a38(gp)            |         t9 = sym.php_stream_wrapper_log_error;
    0x00516b38 lw a1, 0xd3c(sp)              |         a1 = *(arg_d3ch);
    0x00516b3c lw a0, 0xd30(sp)              |         a0 = *(arg_d30h);
    0x00516b40 jalr t9                       |         t9 ();
    0x00516b44 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516b48 b 0x514950                    |         goto label_40;
                                             | label_181:
    0x00516b4c addiu s5, s5, -1              |         s5 += -1;
    0x00516b50 b 0x5158bc                    |         goto label_41;
                                             | label_180:
    0x00516b54 move a0, s7                   |         a0 = s7;
    0x00516b58 jalr t9                       |         t9 ();
    0x00516b5c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516b60 subu a1, s7, s3               |         __asm ("subu a1, s7, s3");
    0x00516b64 subu s3, s5, s3               |         __asm ("subu s3, s5, s3");
    0x00516b68 lw t9, -0x62a0(gp)            |         t9 = sym.imp.memmove;
    0x00516b6c addiu a2, v0, 1               |         a2 = v0 + 1;
    0x00516b70 addu a1, s4, a1               |         a1 = s4 + a1;
    0x00516b74 addu a0, s4, s3               |         a0 = s4 + s3;
    0x00516b78 jalr t9                       |         t9 ();
    0x00516b7c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516b80 b 0x515900                    |         goto label_42;
                                             | label_182:
    0x00516b84 lw t9, -0x7fe4(gp)            |         t9 = sym._efree;
    0x00516b88 jalr t9                       |         t9 ();
    0x00516b8c nop                           |         
    0x00516b90 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516b94 b 0x51593c                    |         goto label_43;
                                             | label_183:
    0x00516b98 addiu s2, zero, 0x15          |         s2 = 0x15;
    0x00516b9c b 0x515a50                    |         goto label_44;
                                             | label_185:
    0x00516ba0 lw t9, -0x7fe4(gp)            |         t9 = sym._efree;
    0x00516ba4 jalr t9                       |         t9 ();
    0x00516ba8 nop                           |         
    0x00516bac lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516bb0 b 0x515bb0                    |         goto label_45;
                                             | label_189:
    0x00516bbc addiu v1, zero, 0x50          |         v1 = 0x50;
    0x00516bc0 b 0x515de4                    |         goto label_46;
                                             | label_194:
    0x00516bcc lw v0, -0x7a54(gp)            |         v0 = *(gp);
    0x00516bd0 lw s2, 0x10(v0)               |         s2 = *((v0 + 4));
    0x00516bd4 b 0x515fd0                    |         goto label_47;
                                             | label_196:
    0x00516bd8 lw a2, -0x7fc0(gp)            |         a2 = *((gp - 8176));
    0x00516bdc lw t9, -0x7ef4(gp)            |         t9 = sym.php_error_docref0;
                                             |         /* str.Cannot_construct_User_agent_header */
    0x00516be0 addiu a2, a2, -0x46c8         |         a2 += -0x46c8;
    0x00516be4 addiu a1, zero, 2             |         a1 = 2;
    0x00516be8 move a0, zero                 |         a0 = 0;
    0x00516bec jalr t9                       |         t9 ();
    0x00516bf0 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516bf4 b 0x5160a4                    |         goto label_48;
                                             | label_202:
    0x00516bf8 move s2, s3                   |         s2 = s3;
    0x00516bfc b 0x51629c                    |         goto label_49;
                                             | label_204:
    0x00516c08 lw v0, 0xcc0(sp)              |         v0 = *(var_cc0h);
                                             | label_203:
    0x00516c0c addiu s1, zero, 2             |         s1 = 2;
                                             |         if (v0 != 0) {
    0x00516c10 beqz v0, 0x516c2c             |             
    0x00516c14 lw s1, 0xc(v0)                |             s1 = *((v0 + 3));
    0x00516c18 lw v0, 0xcc4(sp)              |             v0 = *(var_cc4h);
    0x00516c1c addiu s1, s1, 2               |             s1 += 2;
    0x00516c20 sltu v0, s1, v0               |             v0 = (s1 < v0) ? 1 : 0;
    0x00516c24 lw v1, 0xcc0(sp)              |             v1 = *(var_cc0h);
                                             |             if (v0 != 0) {
    0x00516c28 bnez v0, 0x516c44             |                 goto label_233;
                                             |             }
                                             |         }
    0x00516c2c lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x00516c30 move a1, s1                   |         a1 = s1;
    0x00516c34 addiu a0, sp, 0xcc0           |         a0 = sp + 0xcc0;
    0x00516c38 jalr t9                       |         t9 ();
    0x00516c3c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00516c40 lw v1, 0xcc0(sp)              |         v1 = *(var_cc0h);
                                             | label_233:
    0x00516c44 addiu v0, v1, 0x10            |         v0 = v1 + 0x10;
    0x00516c48 lw v1, 0xc(v1)                |         v1 = *((v1 + 3));
    0x00516c4c addu v0, v0, v1               |         v0 += v1;
    0x00516c50 addiu v1, zero, 0xd           |         v1 = 0xd;
    0x00516c54 sb v1, (v0)                   |         *(v0) = v1;
    0x00516c58 addiu v1, zero, 0xa           |         v1 = 0xa;
    0x00516c5c sb v1, 1(v0)                  |         *((v0 + 1)) = v1;
    0x00516c60 b 0x51662c                    |         
                                             |     } while (1);
                                             | label_211:
    0x00516c64 sw zero, 0xce0(sp)            |     *(var_ce0h) = 0;
    0x00516c68 b 0x5166dc                    |     goto label_50;
                                             | label_212:
    0x00516c6c lw a2, -0x7fc0(gp)            |     a2 = *((gp - 8176));
    0x00516c70 lw t9, -0x6a28(gp)            |     t9 = sym.php_stream_context_get_option;
                                             |     /* str.ignore_errors */
    0x00516c74 addiu a2, a2, -0x4614         |     a2 += -0x4614;
    0x00516c78 addiu a1, v0, -0x1440         |     a1 = v0 + -0x1440;
    0x00516c7c move a0, s0                   |     a0 = s0;
    0x00516c80 jalr t9                       |     t9 ();
    0x00516c84 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x00516c88 beqz v0, 0x5166e4             |         goto label_51;
                                             |     }
    0x00516c8c lw t9, -0x7ec4(gp)            |     t9 = sym.zend_is_true;
    0x00516c90 move a0, v0                   |     a0 = v0;
    0x00516c94 jalr t9                       |     t9 ();
    0x00516c98 andi v0, v0, 0xff             |     v0 &= 0xff;
    0x00516c9c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00516ca0 sw v0, 0xcf4(sp)              |     *(var_cf4h) = v0;
    0x00516ca4 b 0x5166e8                    |     goto label_52;
                                             | label_213:
    0x00516ca8 lw t9, -0x7a78(gp)            |     t9 = sym._php_stream_get_line;
    0x00516cac move a3, s5                   |     a3 = s5;
    0x00516cb0 addiu a2, zero, 0x7f          |     a2 = 0x7f;
    0x00516cb4 move a1, s3                   |     a1 = s3;
    0x00516cb8 move a0, s6                   |     a0 = s6;
    0x00516cbc jalr t9                       |     t9 ();
    0x00516cc0 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x00516cc4 beqz v0, 0x516730             |         goto label_53;
                                             |     }
    0x00516cc8 lw v0, 0x430(sp)              |     v0 = *(var_430h);
    0x00516ccc sltiu v0, v0, 6               |     v0 = (v0 < 6) ? 1 : 0;
    0x00516cd0 lw t9, -0x7a80(gp)            |     t9 = sym._php_stream_eof;
                                             |     if (v0 != 0) {
    0x00516cd4 bnez v0, 0x516720             |         goto label_54;
                                             |     }
    0x00516cd8 lw t9, -0x629c(gp)            |     t9 = sym.imp.strncasecmp;
    0x00516cdc addiu a2, zero, 6             |     a2 = 6;
    0x00516ce0 move a1, s2                   |     a1 = s2;
    0x00516ce4 move a0, s3                   |     a0 = s3;
    0x00516ce8 jalr t9                       |     t9 ();
    0x00516cec lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x00516cf0 bnez v0, 0x51671c             |         goto label_55;
                                             |     }
    0x00516cf4 lw v0, 0x430(sp)              |     v0 = *(var_430h);
    0x00516cf8 b 0x516734                    |     goto label_56;
                                             | label_214:
    0x00516cfc lw t9, -0x61d4(gp)            |     t9 = sym.imp.atoi;
    0x00516d00 addiu a0, sp, 0xc39           |     a0 = sp + 0xc39;
    0x00516d04 jalr t9                       |     t9 ();
    0x00516d08 sw v0, 0xce0(sp)              |     *(var_ce0h) = v0;
    0x00516d0c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00516d10 b 0x516744                    |     goto label_57;
                                             |     if (v0 != 0) {
                                             | label_216:
    0x00516d14 bnez v0, 0x517830             |         goto label_234;
                                             |     }
    0x00516d18 nop                           |     
    0x00516d1c sb zero, 0xc30(sp)            |     *(var_c30h) = 0;
                                             |     if (s0 == 0) {
    0x00516d20 beqz s0, 0x5167ec             |         goto label_58;
                                             |     }
    0x00516d24 lw v0, (s0)                   |     v0 = *(s0);
                                             | label_103:
    0x00516d28 lw v0, 0xce0(sp)              |     v0 = *(var_ce0h);
                                             |     if (v0 == 0) {
    0x00516d2c beqz v0, 0x5167a8             |         goto label_59;
                                             |     }
    0x00516d30 sw zero, 0x1c(sp)             |     *(var_1ch) = 0;
    0x00516d34 sw zero, 0x18(sp)             |     *(var_18h) = 0;
    0x00516d38 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x00516d3c sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x00516d40 move a3, s3                   |     a3 = s3;
    0x00516d44 addiu a2, zero, 2             |     a2 = 2;
    0x00516d48 addiu a1, zero, 9             |     a1 = 9;
    0x00516d4c b 0x516798                    |     goto label_60;
                                             | label_215:
    0x00516d50 addiu s1, zero, 1             |     s1 = 1;
    0x00516d54 b 0x5167a8                    |     goto label_59;
                                             | label_210:
    0x00516d58 sw zero, 0xcf4(sp)            |     *(var_cf4h) = 0;
    0x00516d5c b 0x51686c                    |     goto label_61;
                                             | label_209:
    0x00516d60 lw a2, -0x7fc0(gp)            |     a2 = *((gp - 8176));
    0x00516d64 lw t9, -0x6a38(gp)            |     t9 = sym.php_stream_wrapper_log_error;
    0x00516d68 lw a1, 0xd3c(sp)              |     a1 = *(arg_d3ch);
    0x00516d6c lw a0, 0xd30(sp)              |     a0 = *(arg_d30h);
                                             |     /* str.HTTP_request_failed__unexpected_end_of_socket_ */
    0x00516d70 addiu a2, a2, -0x45fc         |     a2 += -0x45fc;
    0x00516d74 jalr t9                       |     t9 ();
    0x00516d78 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00516d7c move s7, zero                 |     s7 = 0;
    0x00516d80 sw zero, 0xce4(sp)            |     *(var_ce4h) = 0;
                                             | label_88:
    0x00516d84 move s1, zero                 |     s1 = 0;
    0x00516d88 b 0x516fac                    |     goto label_82;
                                             | label_219:
    0x00516d8c lw t9, -0x7a78(gp)            |     t9 = sym._php_stream_get_line;
    0x00516d90 move a3, s5                   |     a3 = s5;
    0x00516d94 addiu a2, zero, 0x400         |     a2 = 0x400;
    0x00516d98 move a1, s1                   |     a1 = s1;
    0x00516d9c move a0, s6                   |     a0 = s6;
    0x00516da0 jalr t9                       |     t9 ();
    0x00516da4 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x00516da8 beqz v0, 0x5168bc             |         goto label_62;
                                             |     }
    0x00516dac lb v0, (s1)                   |     v0 = *(s1);
    0x00516db0 addiu v1, zero, 0xa           |     v1 = 0xa;
                                             |     if (v0 == v1) {
    0x00516db4 beq v0, v1, 0x5168bc          |         goto label_62;
                                             |     }
    0x00516db8 nop                           |     
    0x00516dbc addiu a0, zero, 0xd           |     a0 = 0xd;
    0x00516dc0 lw v0, 0x430(sp)              |     v0 = *(var_430h);
                                             |     if (v0 == a0) {
    0x00516dc4 beq v0, a0, 0x5168bc          |         goto label_62;
                                             |     }
    0x00516dc8 addiu v0, v0, -1              |     v0 += -1;
    0x00516dcc addu v0, s1, v0               |     v0 = s1 + v0;
    0x00516dd0 lb a0, (v0)                   |     a0 = *(v0);
    0x00516dd4 addiu s2, zero, 0xa           |     s2 = 0xa;
                                             |     if (a0 != v1) {
    0x00516dd8 bne a0, v1, 0x516f70          |         goto label_66;
                                             |     }
    0x00516ddc addiu a1, zero, 0xa           |     a1 = 0xa;
    0x00516de0 addiu a0, zero, 0xd           |     a0 = 0xd;
                                             | label_68:
    0x00516de4 sltu v1, v0, s1               |     v1 = (v0 < s1) ? 1 : 0;
    0x00516de8 addiu s3, v0, 1               |     s3 = v0 + 1;
                                             |     if (v1 != 0) {
    0x00516dec bnez v1, 0x516e30             |         goto label_235;
                                             |     }
    0x00516df0 lb v1, (v0)                   |     v1 = *(v0);
                                             |     if (v1 == a1) {
    0x00516df4 beq v1, a1, 0x517148          |         goto label_236;
                                             |     }
    0x00516df8 nop                           |     
                                             |     if (v1 == a0) {
    0x00516dfc beq v1, a0, 0x517148          |         goto label_236;
                                             |     }
    0x00516e00 nop                           |     
    0x00516e04 addiu a1, zero, 0x20          |     a1 = 0x20;
    0x00516e08 addiu a0, zero, 9             |     a0 = 9;
                                             |     do {
    0x00516e0c lb v1, (v0)                   |         v1 = *(v0);
                                             |         if (v1 != a1) {
    0x00516e10 beq v1, a1, 0x516e20          |             
    0x00516e14 nop                           |             
    0x00516e18 addiu s3, v0, 1               |             s3 = v0 + 1;
                                             |             if (v1 != a0) {
    0x00516e1c bne v1, a0, 0x516e30          |                 goto label_235;
                                             |             }
                                             |         }
    0x00516e20 addiu v0, v0, -1              |         v0 += -1;
    0x00516e24 sltu v1, v0, s1               |         v1 = (v0 < s1) ? 1 : 0;
    0x00516e28 addiu s3, v0, 1               |         s3 = v0 + 1;
    0x00516e2c beqz v1, 0x516e0c             |         
                                             |     } while (v1 == 0);
                                             | label_235:
    0x00516e30 lw t9, -0x6300(gp)            |     t9 = sym.imp.memchr;
    0x00516e34 subu a2, s3, s1               |     __asm ("subu a2, s3, s1");
    0x00516e38 sb zero, 1(v0)                |     *((v0 + 1)) = 0;
    0x00516e3c sw a2, 0x430(sp)              |     *(var_430h) = a2;
    0x00516e40 addiu a1, zero, 0x3a          |     a1 = 0x3a;
    0x00516e44 move a0, s1                   |     a0 = s1;
    0x00516e48 jalr t9                       |     t9 ();
    0x00516e4c lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x00516e50 beqz v0, 0x517158             |         goto label_237;
                                             |     }
    0x00516e54 addiu s2, v0, 1               |     s2 = v0 + 1;
    0x00516e58 addiu a0, zero, 0x20          |     a0 = 0x20;
    0x00516e5c addiu v1, zero, 9             |     v1 = 9;
                                             | label_69:
    0x00516e60 sltu v0, s2, s3               |     v0 = (s2 < s3) ? 1 : 0;
    0x00516e64 lw t9, -0x629c(gp)            |     t9 = sym.imp.strncasecmp;
                                             |     if (v0 != 0) {
    0x00516e68 beqz v0, 0x516e84             |         
    0x00516e6c lb v0, (s2)                   |         v0 = *(s2);
                                             |         if (v0 == a0) {
    0x00516e70 beq v0, a0, 0x517150          |             goto label_238;
                                             |         }
    0x00516e74 nop                           |         
                                             |         if (v0 == v1) {
    0x00516e78 beq v0, v1, 0x517150          |             goto label_238;
                                             |         }
    0x00516e7c nop                           |         
                                             | label_70:
    0x00516e80 lw t9, -0x629c(gp)            |         t9 = sym.imp.strncasecmp;
                                             |     }
    0x00516e84 lw a1, 0xcfc(sp)              |     a1 = *(var_cfch);
    0x00516e88 addiu a2, zero, 9             |     a2 = 9;
    0x00516e8c move a0, s1                   |     a0 = s1;
    0x00516e90 jalr t9                       |     t9 ();
    0x00516e94 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x00516e98 bnez v0, 0x517188             |         goto label_239;
                                             |     }
    0x00516e9c lw a2, -0x7fc0(gp)            |     a2 = *((gp - 8176));
                                             |     if (s0 == 0) {
    0x00516ea0 beqz s0, 0x517160             |         goto label_240;
                                             |     }
    0x00516ea4 lw v0, 0xcdc(sp)              |     v0 = *(var_cdch);
    0x00516ea8 lw t9, -0x6a28(gp)            |     t9 = sym.php_stream_context_get_option;
                                             |     /* str.follow_location */
    0x00516eac addiu a2, a2, -0x45a4         |     a2 += -0x45a4;
    0x00516eb0 addiu a1, v0, -0x1440         |     a1 = v0 + -0x1440;
    0x00516eb4 move a0, s0                   |     a0 = s0;
    0x00516eb8 jalr t9                       |     t9 ();
    0x00516ebc lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x00516ec0 beqz v0, 0x517160             |         goto label_240;
                                             |     }
    0x00516ec4 lw t9, -0x7ec4(gp)            |     t9 = sym.zend_is_true;
    0x00516ec8 move a0, v0                   |     a0 = v0;
    0x00516ecc jalr t9                       |     t9 ();
    0x00516ed0 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00516ed4 andi s4, v0, 0xff             |     s4 = v0 & 0xff;
    0x00516ed8 lw t9, -0x6ea4(gp)            |     t9 = sym.php_strlcpy;
                                             | label_71:
    0x00516edc addiu a2, zero, 0x400         |     a2 = 0x400;
    0x00516ee0 move a1, s2                   |     a1 = s2;
    0x00516ee4 addiu a0, sp, 0x830           |     a0 = sp + 0x830;
    0x00516ee8 jalr t9                       |     t9 ();
    0x00516eec lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             | label_73:
    0x00516ef0 lw s3, 0x430(sp)              |     s3 = *(var_430h);
                                             | label_72:
    0x00516ef4 lw t9, -0x7f60(gp)            |     t9 = sym._emalloc;
    0x00516ef8 addiu a0, s3, 0x18            |     a0 = s3 + 0x18;
    0x00516efc addiu v0, zero, -8            |     v0 = -8;
    0x00516f00 and a0, a0, v0                |     a0 &= v0;
    0x00516f04 jalr t9                       |     t9 ();
    0x00516f08 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00516f0c move s2, v0                   |     s2 = v0;
    0x00516f10 addiu v0, zero, 1             |     v0 = 1;
    0x00516f14 sw v0, (s2)                   |     *(s2) = v0;
    0x00516f18 lw t9, -0x6148(gp)            |     t9 = sym.imp.memcpy;
    0x00516f1c addiu v0, zero, 6             |     v0 = 6;
    0x00516f20 move a2, s3                   |     a2 = s3;
    0x00516f24 sw s3, 0xc(s2)                |     *((s2 + 3)) = s3;
    0x00516f28 move a1, s1                   |     a1 = s1;
    0x00516f2c addiu a0, s2, 0x10            |     a0 = s2 + 0x10;
    0x00516f30 sw v0, 4(s2)                  |     *((s2 + 1)) = v0;
    0x00516f34 sw zero, 8(s2)                |     *((s2 + 2)) = 0;
    0x00516f38 jalr t9                       |     t9 ();
    0x00516f3c addiu v0, zero, 0x1406        |     v0 = 0x1406;
    0x00516f40 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00516f44 sw v0, 0x38(sp)               |     *(var_38h) = v0;
    0x00516f48 lw v0, 0xd50(sp)              |     v0 = *(arg_d50h);
    0x00516f4c addu s3, s2, s3               |     s3 = s2 + s3;
    0x00516f50 lw t9, -0x7c10(gp)            |     t9 = sym._zend_hash_next_index_insert;
    0x00516f54 lw a0, (v0)                   |     a0 = *(v0);
    0x00516f58 sb zero, 0x10(s3)             |     *((s3 + 16)) = 0;
    0x00516f5c sw s2, 0x30(sp)               |     *(var_30h) = s2;
    0x00516f60 addiu a1, sp, 0x30            |     a1 = sp + 0x30;
    0x00516f64 jalr t9                       |     t9 ();
    0x00516f68 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00516f6c b 0x5168a8                    |     goto label_63;
                                             | label_66:
    0x00516f70 lw t9, -0x7a78(gp)            |     t9 = sym._php_stream_get_line;
    0x00516f74 move a3, s5                   |     a3 = s5;
    0x00516f78 addiu a2, zero, 0x400         |     a2 = 0x400;
    0x00516f7c move a1, s1                   |     a1 = s1;
    0x00516f80 move a0, s6                   |     a0 = s6;
    0x00516f84 jalr t9                       |     t9 ();
    0x00516f88 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x00516f8c bnez v0, 0x51712c             |         goto label_241;
                                             |     }
    0x00516f90 lw a2, -0x7fc0(gp)            |     a2 = *((gp - 8176));
    0x00516f94 lw t9, -0x6a38(gp)            |     t9 = sym.php_stream_wrapper_log_error;
    0x00516f98 lw a1, 0xd3c(sp)              |     a1 = *(arg_d3ch);
    0x00516f9c lw a0, 0xd30(sp)              |     a0 = *(arg_d30h);
                                             |     /* str.Failed_to_read_HTTP_headers */
    0x00516fa0 addiu a2, a2, -0x45cc         |     a2 += -0x45cc;
    0x00516fa4 jalr t9                       |     t9 ();
    0x00516fa8 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             | label_82:
    0x00516fac lw a0, 0xcc0(sp)              |     a0 = *(var_cc0h);
                                             |     if (a0 != 0) {
    0x00516fb0 beqz a0, 0x516ff8             |         
    0x00516fb4 nop                           |         
    0x00516fb8 lbu v0, 5(a0)                 |         v0 = *((a0 + 5));
    0x00516fbc andi v1, v0, 2                |         v1 = v0 & 2;
                                             |         if (v1 == 0) {
    0x00516fc0 bnez v1, 0x516ff4             |             
    0x00516fc4 nop                           |             
    0x00516fc8 lw v1, (a0)                   |             v1 = *(a0);
    0x00516fcc addiu v1, v1, -1              |             v1 += -1;
    0x00516fd0 sw v1, (a0)                   |             *(a0) = v1;
                                             |             if (v1 != 0) {
    0x00516fd4 bnez v1, 0x516ff4             |                 goto label_89;
                                             |             }
    0x00516fd8 andi v0, v0, 1                |             v0 &= 1;
    0x00516fdc lw t9, -0x7fe4(gp)            |             t9 = sym._efree;
                                             |             if (v0 == 0) {
    0x00516fe0 beqz v0, 0x5175b4             |                 goto label_242;
                                             |             }
    0x00516fe4 lw t9, -0x6094(gp)            |             t9 = *((gp - 6181));
    0x00516fe8 jalr t9                       |             t9 ();
    0x00516fec nop                           |             
    0x00516ff0 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |         }
                                             | label_89:
    0x00516ff4 sw zero, 0xcc0(sp)            |         *(var_cc0h) = 0;
                                             |     }
    0x00516ff8 sw zero, 0xcc4(sp)            |     *(var_cc4h) = 0;
                                             |     if (s1 != 0) {
    0x00516ffc beqz s1, 0x517010             |         
    0x00517000 lw t9, -0x7fe4(gp)            |         t9 = sym._efree;
    0x00517004 move a0, s1                   |         a0 = s1;
    0x00517008 jalr t9                       |         t9 ();
    0x0051700c lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |     }
    0x00517010 lw t9, -0x704c(gp)            |     t9 = sym.php_url_free;
                                             |     if (fp != 0) {
    0x00517014 beqz fp, 0x517024             |         
    0x00517018 move a0, fp                   |         a0 = fp;
    0x0051701c bal 0x503bd4                  |         sym_php_url_free ();
    0x00517020 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |     }
    0x00517024 lw v0, 0xce8(sp)              |     v0 = *(var_ce8h);
                                             |     if (s6 == 0) {
    0x00517028 beqz s6, 0x5175c4             |         goto label_243;
                                             |     }
    0x0051702c lw v0, 0xd50(sp)              |     v0 = *(arg_d50h);
                                             |     if (v0 != 0) {
    0x00517030 beqz v0, 0x517064             |         
    0x00517034 lw a0, 0xd50(sp)              |         a0 = *(arg_d50h);
    0x00517038 lw v1, (v0)                   |         v1 = *(v0);
    0x0051703c lw v0, 8(v0)                  |         v0 = *((v0 + 2));
    0x00517040 lw a0, 4(a0)                  |         a0 = *((a0 + 1));
    0x00517044 sw v0, 0x30(s6)               |         *(var_d00h) = v0;
    0x00517048 andi v0, v0, 0x400            |         v0 &= 0x400;
    0x0051704c sw v1, 0x28(s6)               |         *(var_cf8h) = v1;
    0x00517050 sw a0, 0x2c(s6)               |         *(var_cfch) = a0;
                                             |         if (v0 == 0) {
    0x00517054 beqz v0, 0x517064             |             goto label_244;
                                             |         }
    0x00517058 lw v0, (v1)                   |         v0 = *(v1);
    0x0051705c addiu v0, v0, 1               |         v0++;
    0x00517060 sw v0, (v1)                   |         *(v1) = v0;
                                             |     }
                                             | label_244:
    0x00517064 lw v0, 0xd3c(sp)              |     v0 = *(arg_d3ch);
                                             |     if (s0 != 0) {
    0x00517068 beqz s0, 0x5170c0             |         
    0x0051706c lw v0, (s0)                   |         v0 = *(s0);
    0x00517070 lw v1, 0xce4(sp)              |         v1 = *(var_ce4h);
                                             |         if (v0 != 0) {
    0x00517074 beqz v0, 0x5170bc             |             
    0x00517078 sw zero, 0x1c(v0)             |             *((v0 + 7)) = 0;
    0x0051707c sw v1, 0x20(v0)               |             *((v0 + 8)) = v1;
    0x00517080 lw v1, 0x18(v0)               |             v1 = *((v0 + 6));
    0x00517084 lw t9, -0x6a3c(gp)            |             t9 = sym.php_stream_notification_notify;
    0x00517088 ori v1, v1, 1                 |             v1 |= 1;
    0x0051708c sw v1, 0x18(v0)               |             *((v0 + 6)) = v1;
    0x00517090 lw v0, 0xce4(sp)              |             v0 = *(var_ce4h);
    0x00517094 sw zero, 0x1c(sp)             |             *(var_1ch) = 0;
    0x00517098 sw v0, 0x18(sp)               |             *(var_18h) = v0;
    0x0051709c sw zero, 0x14(sp)             |             *(var_14h) = 0;
    0x005170a0 sw zero, 0x10(sp)             |             *(var_10h) = 0;
    0x005170a4 move a3, zero                 |             a3 = 0;
    0x005170a8 move a2, zero                 |             a2 = 0;
    0x005170ac addiu a1, zero, 7             |             a1 = 7;
    0x005170b0 move a0, s0                   |             a0 = s0;
    0x005170b4 jalr t9                       |             t9 ();
    0x005170b8 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |         }
    0x005170bc lw v0, 0xd3c(sp)              |         v0 = *(arg_d3ch);
                                             |     }
    0x005170c0 andi v0, v0, 0x20             |     v0 &= 0x20;
    0x005170c4 lw t9, -0x7a5c(gp)            |     t9 = sym._php_stream_set_option;
                                             |     if (v0 != 0) {
    0x005170c8 beqz v0, 0x5170e4             |         
    0x005170cc lw a2, 0xcec(sp)              |         a2 = *(var_cech);
    0x005170d0 move a3, zero                 |         a3 = 0;
    0x005170d4 addiu a1, zero, 5             |         a1 = 5;
    0x005170d8 move a0, s6                   |         a0 = s6;
    0x005170dc jalr t9                       |         t9 ();
    0x005170e0 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |     }
    0x005170e4 lw v0, 0x4c(s6)               |     v0 = *(var_d1ch);
    0x005170e8 lw v1, 0xcf0(sp)              |     v1 = *(var_cf0h);
    0x005170ec lw t9, -0x6ea4(gp)            |     t9 = sym.php_strlcpy;
    0x005170f0 or v0, v0, v1                 |     v0 |= v1;
    0x005170f4 lw a1, 0xd38(sp)              |     a1 = *(arg_d38h);
    0x005170f8 sw v0, 0x4c(s6)               |     *(var_d1ch) = v0;
    0x005170fc sw zero, 0x60(s6)             |     *((s6 + 24)) = 0;
    0x00517100 addiu a2, zero, 0x10          |     a2 = 0x10;
    0x00517104 addiu a0, s6, 0x3a            |     a0 = s6 + 0x3a;
    0x00517108 jalr t9                       |     t9 ();
    0x0051710c lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (s7 == 0) {
    0x00517110 beqz s7, 0x5140c4             |         goto label_64;
                                             |     }
    0x00517114 lw t9, -0x6a18(gp)            |     t9 = sym._php_stream_filter_append;
    0x00517118 move a1, s7                   |     a1 = s7;
    0x0051711c addiu a0, s6, 8               |     a0 = s6 + 8;
    0x00517120 jalr t9                       |     t9 ();
                                             | label_91:
    0x00517124 lw ra, 0xd2c(sp)              |     ra = *(var_d2ch);
    0x00517128 b 0x5140c8                    |     goto label_65;
                                             | label_241:
    0x0051712c lw v0, 0x430(sp)              |     v0 = *(var_430h);
    0x00517130 addu v0, s1, v0               |     v0 = s1 + v0;
    0x00517134 lb v0, -1(v0)                 |     v0 = *((v0 - 1));
    0x00517138 lw t9, -0x7a80(gp)            |     t9 = sym._php_stream_eof;
                                             |     if (v0 != s2) {
    0x0051713c bne v0, s2, 0x516f70          |         goto label_66;
                                             |     }
    0x00517140 b 0x5168ac                    |     goto label_67;
    0x00517144 nop                           |     
                                             | label_236:
    0x00517148 addiu v0, v0, -1              |     v0 += -1;
    0x0051714c b 0x516de4                    |     goto label_68;
                                             | label_238:
    0x00517150 addiu s2, s2, 1               |     s2++;
    0x00517154 b 0x516e60                    |     goto label_69;
                                             | label_237:
    0x00517158 move s2, s3                   |     s2 = s3;
    0x0051715c b 0x516e80                    |     goto label_70;
                                             | label_240:
    0x00517160 lw v0, 0xce0(sp)              |     v0 = *(var_ce0h);
    0x00517164 addiu v0, v0, -0x12c          |     v0 += -0x12c;
    0x00517168 sltiu v0, v0, 4               |     v0 = (v0 < 4) ? 1 : 0;
    0x0051716c lw t9, -0x6ea4(gp)            |     t9 = sym.php_strlcpy;
                                             |     if (v0 != 0) {
    0x00517170 bnez v0, 0x516edc             |         goto label_71;
                                             |     }
    0x00517174 lw v0, 0xce0(sp)              |     v0 = *(var_ce0h);
    0x00517178 addiu v0, v0, -0x133          |     v0 += -0x133;
    0x0051717c sltiu v0, v0, 2               |     v0 = (v0 < 2) ? 1 : 0;
                                             |     if (v0 != 0) {
    0x00517180 movz s4, zero, v0             |         s4 = 0;
                                             |     }
    0x00517184 b 0x516edc                    |     goto label_71;
                                             | label_239:
    0x00517188 lw t9, -0x629c(gp)            |     t9 = sym.imp.strncasecmp;
    0x0051718c lw a1, 0xd00(sp)              |     a1 = *(var_d00h);
    0x00517190 addiu a2, zero, 0xd           |     a2 = 0xd;
    0x00517194 move a0, s1                   |     a0 = s1;
    0x00517198 jalr t9                       |     t9 ();
    0x0051719c lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x005171a0 bnez v0, 0x5171e4             |         goto label_245;
                                             |     }
    0x005171a4 lw s3, 0x430(sp)              |     s3 = *(var_430h);
                                             |     if (s0 == 0) {
    0x005171a8 beqz s0, 0x516ef4             |         goto label_72;
                                             |     }
    0x005171ac lw v0, (s0)                   |     v0 = *(s0);
    0x005171b0 move a3, s2                   |     a3 = s2;
                                             |     if (v0 == 0) {
    0x005171b4 beqz v0, 0x516ef4             |         goto label_72;
                                             |     }
    0x005171b8 sw zero, 0x1c(sp)             |     *(var_1ch) = 0;
    0x005171bc sw zero, 0x18(sp)             |     *(var_18h) = 0;
    0x005171c0 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x005171c4 sw zero, 0x10(sp)             |     *(var_10h) = 0;
    0x005171c8 move a2, zero                 |     a2 = 0;
    0x005171cc addiu a1, zero, 4             |     a1 = 4;
                                             | label_74:
    0x005171d0 lw t9, -0x6a3c(gp)            |     t9 = sym.php_stream_notification_notify;
    0x005171d4 move a0, s0                   |     a0 = s0;
    0x005171d8 jalr t9                       |     t9 ();
    0x005171dc lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x005171e0 b 0x516ef0                    |     goto label_73;
                                             | label_245:
    0x005171e4 lw v0, 0xd04(sp)              |     v0 = *(var_d04h);
    0x005171e8 lw t9, -0x629c(gp)            |     t9 = sym.imp.strncasecmp;
    0x005171ec addiu a2, zero, 0xf           |     a2 = 0xf;
    0x005171f0 addiu a1, v0, -0x4584         |     a1 = v0 + -0x4584;
    0x005171f4 move a0, s1                   |     a0 = s1;
    0x005171f8 jalr t9                       |     t9 ();
    0x005171fc lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x00517200 bnez v0, 0x517248             |         goto label_246;
                                             |     }
    0x00517204 lw t9, -0x61d4(gp)            |     t9 = sym.imp.atoi;
    0x00517208 move a0, s2                   |     a0 = s2;
    0x0051720c jalr t9                       |     t9 ();
    0x00517210 sw v0, 0xce4(sp)              |     *(var_ce4h) = v0;
    0x00517214 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (s0 == 0) {
    0x00517218 beqz s0, 0x516ef0             |         goto label_73;
                                             |     }
    0x0051721c lw v0, (s0)                   |     v0 = *(s0);
    0x00517220 lw v0, 0xce4(sp)              |     v0 = *(var_ce4h);
                                             |     if (v0 == 0) {
    0x00517224 beqz v0, 0x516ef0             |         goto label_73;
                                             |     }
    0x00517228 sw zero, 0x1c(sp)             |     *(var_1ch) = 0;
    0x0051722c sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x00517230 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x00517234 sw zero, 0x10(sp)             |     *(var_10h) = 0;
    0x00517238 move a3, s1                   |     a3 = s1;
    0x0051723c move a2, zero                 |     a2 = 0;
    0x00517240 addiu a1, zero, 5             |     a1 = 5;
    0x00517244 b 0x5171d0                    |     goto label_74;
                                             | label_246:
    0x00517248 lw a1, -0x7fc0(gp)            |     a1 = *((gp - 8176));
    0x0051724c lw t9, -0x629c(gp)            |     t9 = sym.imp.strncasecmp;
    0x00517250 addiu a2, zero, 0x12          |     a2 = 0x12;
                                             |     /* str.Transfer_Encoding: */
    0x00517254 addiu a1, a1, -0x4574         |     a1 += -0x4574;
    0x00517258 move a0, s1                   |     a0 = s1;
    0x0051725c jalr t9                       |     t9 ();
    0x00517260 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x00517264 bnez v0, 0x516ef0             |         goto label_73;
                                             |     }
    0x00517268 lw a1, -0x7fc0(gp)            |     a1 = *((gp - 8176));
    0x0051726c lw t9, -0x629c(gp)            |     t9 = sym.imp.strncasecmp;
    0x00517270 addiu a2, zero, 7             |     a2 = 7;
                                             |     /* str.Chunked */
    0x00517274 addiu a1, a1, -0x4560         |     a1 += -0x4560;
    0x00517278 move a0, s2                   |     a0 = s2;
    0x0051727c jalr t9                       |     t9 ();
    0x00517280 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x00517284 bnez v0, 0x516ef0             |         goto label_73;
                                             |     }
    0x00517288 lw v0, 0xd3c(sp)              |     v0 = *(arg_d3ch);
    0x0051728c andi v0, v0, 0x200            |     v0 &= 0x200;
    0x00517290 lw s3, 0x430(sp)              |     s3 = *(var_430h);
                                             |     if (v0 != 0) {
    0x00517294 bnez v0, 0x516ef4             |         goto label_72;
                                             |     }
    0x00517298 lw a2, -0x7fc0(gp)            |     a2 = *((gp - 8176));
                                             |     if (s0 != 0) {
    0x0051729c bnez s0, 0x5172d0             |         goto label_247;
                                             |     }
                                             | label_75:
    0x005172a0 lw a0, -0x7fc0(gp)            |     a0 = *((gp - 8176));
    0x005172a4 lw a2, 0x38(s6)               |     a2 = *(var_d08h);
    0x005172a8 lw t9, -0x6a14(gp)            |     t9 = sym.php_stream_filter_create;
    0x005172ac andi a2, a2, 1                |     a2 &= 1;
    0x005172b0 move a1, zero                 |     a1 = 0;
                                             |     /* str.dechunk */
    0x005172b4 addiu a0, a0, -0x4558         |     a0 += -0x4558;
    0x005172b8 jalr t9                       |     t9 ();
    0x005172bc move s7, v0                   |     s7 = v0;
    0x005172c0 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x005172c4 bnez v0, 0x5168a8             |         goto label_63;
                                             |     }
    0x005172c8 lw s3, 0x430(sp)              |     s3 = *(var_430h);
    0x005172cc b 0x516ef4                    |     goto label_72;
                                             | label_247:
    0x005172d0 lw a1, -0x7fc4(gp)            |     a1 = *((gp - 8177));
    0x005172d4 lw t9, -0x6a28(gp)            |     t9 = sym.php_stream_context_get_option;
                                             |     /* str.auto_decode */
    0x005172d8 addiu a2, a2, -0x4550         |     a2 += -0x4550;
                                             |     /* str.http */
    0x005172dc addiu a1, a1, -0x1440         |     a1 += -0x1440;
    0x005172e0 move a0, s0                   |     a0 = s0;
    0x005172e4 jalr t9                       |     t9 ();
    0x005172e8 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x005172ec beqz v0, 0x5172a0             |         goto label_75;
                                             |     }
    0x005172f0 lw t9, -0x7ec4(gp)            |     t9 = sym.zend_is_true;
    0x005172f4 move a0, v0                   |     a0 = v0;
    0x005172f8 jalr t9                       |     t9 ();
    0x005172fc lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x00517300 bnez v0, 0x5172a0             |         goto label_75;
                                             |     }
    0x00517304 lw s3, 0x430(sp)              |     s3 = *(var_430h);
    0x00517308 b 0x516ef4                    |     goto label_72;
                                             | label_227:
    0x0051730c sb s6, (s4)                   |     *(s4) = s6;
    0x00517310 move v0, s4                   |     v0 = s4;
    0x00517314 b 0x516a74                    |     goto label_76;
                                             | label_228:
    0x00517318 lw a2, -0x7fc4(gp)            |     a2 = *((gp - 8177));
                                             | label_229:
    0x0051731c sw s2, 0x10(sp)               |     *(var_10h) = s2;
                                             |     /* esilref: '&s/&s' */
    0x00517320 addiu a2, a2, -0x38dc         |     a2 += -0x38dc;
    0x00517324 b 0x516aac                    |     goto label_77;
                                             | label_225:
    0x00517328 lw t9, -0x7f58(gp)            |     t9 = sym.ap_php_snprintf;
                                             | label_226:
    0x0051732c move a3, s2                   |     a3 = s2;
                                             |     /* esilref: '/&s' */
    0x00517330 addiu a2, a2, -0x4520         |     a2 += -0x4520;
    0x00517334 addiu a1, zero, 0x3ff         |     a1 = 0x3ff;
    0x00517338 move a0, s3                   |     a0 = s3;
    0x0051733c bal 0x52e6d4                  |     sym_ap_php_snprintf ();
    0x00517340 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00517344 b 0x516abc                    |     goto label_78;
                                             | label_224:
    0x00517348 lw t9, -0x6ea4(gp)            |     t9 = sym.php_strlcpy;
    0x0051734c addiu a2, zero, 0x400         |     a2 = 0x400;
    0x00517350 move a1, s2                   |     a1 = s2;
    0x00517354 move a0, s3                   |     a0 = s3;
    0x00517358 jalr t9                       |     t9 ();
    0x0051735c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00517360 b 0x516abc                    |     goto label_78;
                                             | label_230:
    0x00517364 addiu v1, zero, 0x50          |     v1 = 0x50;
    0x00517368 b 0x516ad4                    |     goto label_79;
                                             | label_231:
    0x0051736c sw s3, 0x14(sp)               |     *(var_14h) = s3;
    0x00517370 lw a2, -0x7fc0(gp)            |     a2 = *((gp - 8176));
    0x00517374 lw v0, 0xc(fp)                |     v0 = *(arg_d3ch);
                                             |     /* str._s:___s_s */
    0x00517378 addiu a2, a2, -0x450c         |     a2 += -0x450c;
    0x0051737c sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x00517380 addiu a1, zero, 0x3ff         |     a1 = 0x3ff;
    0x00517384 move a0, s5                   |     a0 = s5;
    0x00517388 bal 0x52e6d4                  |     sym_ap_php_snprintf ();
    0x0051738c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00517390 b 0x516b00                    |     goto label_80;
                                             | label_223:
    0x00517394 lw t9, -0x6ea4(gp)            |     t9 = sym.php_strlcpy;
    0x00517398 addiu a2, zero, 0x400         |     a2 = 0x400;
    0x0051739c move a1, s2                   |     a1 = s2;
    0x005173a0 move a0, s5                   |     a0 = s5;
    0x005173a4 jalr t9                       |     t9 ();
    0x005173a8 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x005173ac b 0x516b00                    |     goto label_80;
                                             | label_232:
    0x005173b0 lw a1, -0x7fc0(gp)            |     a1 = *((gp - 8176));
    0x005173b4 lw t9, -0x629c(gp)            |     t9 = sym.imp.strncasecmp;
    0x005173b8 addiu a2, zero, 7             |     a2 = 7;
                                             |     /* str.http:__ */
    0x005173bc addiu a1, a1, -0x4544         |     a1 += -0x4544;
    0x005173c0 move a0, s5                   |     a0 = s5;
    0x005173c4 jalr t9                       |     t9 ();
    0x005173c8 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x005173cc bnez v0, 0x517440             |         goto label_248;
                                             |     }
    0x005173d0 lw a1, -0x7fc0(gp)            |     a1 = *((gp - 8176));
    0x005173d4 lw t9, -0x629c(gp)            |     t9 = sym.imp.strncasecmp;
    0x005173d8 addiu a2, zero, 8             |     a2 = 8;
                                             |     /* str.https:__ */
    0x005173dc addiu a1, a1, -0x453c         |     a1 += -0x453c;
    0x005173e0 move a0, s5                   |     a0 = s5;
    0x005173e4 jalr t9                       |     t9 ();
    0x005173e8 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x005173ec bnez v0, 0x517440             |     
                                             |     while (s2 == 0) {
    0x005173f0 lw v0, 0xd50(sp)              |         v0 = *(arg_d50h);
    0x005173f4 lw t9, -0x6a54(gp)            |         t9 = *((gp - 6805));
    0x005173f8 sw v0, 0x20(sp)               |         *(var_20h) = v0;
    0x005173fc addiu v0, zero, 2             |         v0 = 2;
    0x00517400 sw v0, 0x1c(sp)               |         *(var_1ch) = v0;
    0x00517404 lw v0, 0xd48(sp)              |         v0 = *(arg_d48h);
    0x00517408 lw a3, 0xd3c(sp)              |         a3 = *(arg_d3ch);
    0x0051740c addiu v0, v0, -1              |         v0 += -1;
    0x00517410 sw v0, 0x18(sp)               |         *(var_18h) = v0;
    0x00517414 lw v0, 0xd40(sp)              |         v0 = *(arg_10h);
    0x00517418 lw a2, 0xd38(sp)              |         a2 = *(arg_d38h);
    0x0051741c lw a0, 0xd30(sp)              |         a0 = *(arg_d30h);
    0x00517420 sw s0, 0x14(sp)               |         *(var_14h) = s0;
    0x00517424 sw v0, 0x10(sp)               |         *(var_10h) = v0;
                                             |         /* fcn.00513fa0 */
    0x00517428 addiu t9, t9, 0x3fa0          |         t9 += 0x3fa0;
    0x0051742c move a1, s5                   |         a1 = s5;
    0x00517430 bal 0x513fa0                  |         fcn_00513fa0 ();
                                             |         goto label_81;
    0x00517434 move s6, v0                   |         s6 = v0;
    0x00517438 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0051743c b 0x516fac                    |         goto label_82;
                                             | label_248:
    0x00517440 lw s2, 4(fp)                  |         s2 = *(arg_d34h);
    0x00517444 lw t9, -0x6154(gp)            |         t9 = sym.imp.strlen;
                                             |         if (s2 != 0) {
    0x00517448 bnez s2, 0x5174c8             |             goto label_249;
                                             |         }
                                             | label_83:
    0x0051744c lw s2, 8(fp)                  |         s2 = *(arg_d38h);
    0x00517450 lw t9, -0x6154(gp)            |         t9 = sym.imp.strlen;
                                             |         if (s2 != 0) {
    0x00517454 bnez s2, 0x51752c             |             goto label_250;
                                             |         }
                                             | label_86:
    0x00517458 lw s2, 0x14(fp)               |         s2 = *(arg_d44h);
    0x0051745c lw t9, -0x6154(gp)            |         t9 = sym.imp.strlen;
    0x00517460 beqz s2, 0x5173f0             |         
                                             |     }
                                             | label_249:
    0x005174c8 move a0, s2                   |     a0 = s2;
    0x005174cc jalr t9                       |     t9 ();
    0x005174d0 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x005174d4 move a0, s2                   |     a0 = s2;
    0x005174d8 lw t9, -0x71b4(gp)            |     t9 = sym.php_url_decode;
    0x005174dc move a1, v0                   |     a1 = v0;
    0x005174e0 bal 0x504f78                  |     sym_php_url_decode ();
    0x005174e4 lw s2, 4(fp)                  |     s2 = *(arg_d34h);
    0x005174e8 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x005174ec addu s3, s2, v0               |     s3 = s2 + v0;
                                             | label_85:
    0x005174f0 sltu v0, s2, s3               |     v0 = (s2 < s3) ? 1 : 0;
    0x005174f4 lw t9, -0x60f4(gp)            |     t9 = sym.imp.__ctype_b_loc;
                                             |     if (v0 == 0) {
    0x005174f8 beqz v0, 0x51744c             |         goto label_83;
                                             |     }
    0x005174fc jalr t9                       |     t9 ();
    0x00517500 nop                           |     
    0x00517504 lbu v1, (s2)                  |     v1 = *(s2);
    0x00517508 lw v0, (v0)                   |     v0 = *(v0);
    0x0051750c sll v1, v1, 1                 |     v1 <<= 1;
    0x00517510 addu v0, v0, v1               |     v0 += v1;
    0x00517514 lhu v0, (v0)                  |     v0 = *(v0);
    0x00517518 andi v0, v0, 2                |     v0 &= 2;
    0x0051751c lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x00517520 bnez v0, 0x516b28             |         goto label_84;
                                             |     }
    0x00517524 addiu s2, s2, 1               |     s2++;
    0x00517528 b 0x5174f0                    |     goto label_85;
                                             | label_250:
    0x0051752c move a0, s2                   |     a0 = s2;
    0x00517530 jalr t9                       |     t9 ();
    0x00517534 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00517538 move a0, s2                   |     a0 = s2;
    0x0051753c lw t9, -0x71b4(gp)            |     t9 = sym.php_url_decode;
    0x00517540 move a1, v0                   |     a1 = v0;
    0x00517544 bal 0x504f78                  |     sym_php_url_decode ();
    0x00517548 lw s2, 8(fp)                  |     s2 = *(arg_d38h);
    0x0051754c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00517550 addu s3, s2, v0               |     s3 = s2 + v0;
    0x00517554 sltu v0, s2, s3               |     v0 = (s2 < s3) ? 1 : 0;
    0x00517558 lw t9, -0x60f4(gp)            |     t9 = sym.imp.__ctype_b_loc;
                                             |     if (v0 == 0) {
    0x0051755c beqz v0, 0x517458             |         goto label_86;
                                             |     }
    0x00517560 jalr t9                       |     t9 ();
    0x00517564 nop                           |     
    0x00517568 lbu v1, (s2)                  |     v1 = *(s2);
    0x0051756c lw v0, (v0)                   |     v0 = *(v0);
    0x00517570 sll v1, v1, 1                 |     v1 <<= 1;
    0x00517574 addu v0, v0, v1               |     v0 += v1;
    0x00517578 lhu v0, (v0)                  |     v0 = *(v0);
    0x0051757c andi v0, v0, 2                |     v0 &= 2;
    0x00517580 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x00517584 bnez v0, 0x516b28             |         goto label_84;
                                             |     }
                                             | label_222:
    0x00517590 lw a2, -0x7fc0(gp)            |     a2 = *((gp - 8176));
    0x00517594 addiu a3, sp, 0xc30           |     a3 = sp + 0xc30;
                                             |     /* str.HTTP_request_failed___s */
    0x00517598 addiu a2, a2, -0x44e4         |     a2 += -0x44e4;
    0x0051759c b 0x516b34                    |     goto label_87;
                                             | label_108:
    0x005175a0 move s7, zero                 |     s7 = 0;
    0x005175a4 sw zero, 0xcf0(sp)            |     *(var_cf0h) = 0;
    0x005175a8 sw zero, 0xce4(sp)            |     *(var_ce4h) = 0;
    0x005175ac sw zero, 0xcec(sp)            |     *(var_cech) = 0;
    0x005175b0 b 0x516d84                    |     goto label_88;
                                             | label_242:
    0x005175b4 jalr t9                       |     t9 ();
    0x005175b8 nop                           |     
    0x005175bc lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x005175c0 b 0x516ff4                    |     goto label_89;
                                             | label_243:
    0x005175c4 lw t9, -0x6a10(gp)            |     t9 = sym.php_stream_filter_free;
                                             |     if (s7 == 0) {
    0x005175c8 beqz s7, 0x51403c             |         goto label_90;
                                             |     }
    0x005175cc move a0, s7                   |     a0 = s7;
    0x005175d0 jalr t9                       |     t9 ();
    0x005175d4 b 0x517124                    |     goto label_91;
    0x005175d8 nop                           |     
                                             | label_125:
    0x005175dc addiu s1, s1, 1               |     s1++;
    0x005175e0 addiu v0, s1, -0x14           |     v0 = s1 + -0x14;
    0x005175e4 addiu a0, zero, 0xd           |     a0 = 0xd;
                                             |     if (v0 != s2) {
    0x005175e8 bne v0, s2, 0x514a34          |         goto label_92;
                                             |     }
    0x005175ec lw t9, -0x7bec(gp)            |     t9 = sym.zend_binary_strcasecmp;
    0x005175f0 lw a2, 0xcec(sp)              |     a2 = *(var_cech);
    0x005175f4 addiu a3, zero, 0x14          |     a3 = 0x14;
    0x005175f8 addiu a1, zero, 0x14          |     a1 = 0x14;
    0x005175fc move a0, s2                   |     a0 = s2;
    0x00517600 jalr t9                       |     t9 ();
    0x00517604 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x00517608 bnez v0, 0x514a30             |         goto label_93;
                                             |     }
    0x0051760c addiu v1, zero, 0x2401        |     v1 = 0x2401;
                                             | label_128:
    0x00517610 lbu v0, (s1)                  |     v0 = *(s1);
    0x00517614 sltiu a0, v0, 0xe             |     a0 = (v0 < 0xe) ? 1 : 0;
    0x00517618 srlv v0, v1, v0               |     v0 = v1 >> v0;
                                             |     if (a0 == 0) {
    0x0051761c beqz a0, 0x514a00             |         goto label_94;
                                             |     }
    0x00517620 ext v0, v0, 0, 1              |     __asm ("ext v0, v0, 0, 1");
    0x00517624 lw v0, 0x430(sp)              |     v0 = *(var_430h);
                                             |     if (v0 == 0) {
    0x00517628 beqz v0, 0x514a00             |         goto label_94;
                                             |     }
                                             | label_98:
    0x0051762c subu s1, s1, s2               |     __asm ("subu s1, s1, s2");
                                             |     if (v0 == 0) {
    0x00517630 beqz v0, 0x514aec             |         goto label_95;
                                             |     }
    0x00517634 lw s3, 0xc(v0)                |     s3 = *((v0 + 3));
    0x00517638 lw v0, 0x434(sp)              |     v0 = *(var_434h);
    0x0051763c addu s3, s1, s3               |     s3 = s1 + s3;
    0x00517640 sltu v0, s3, v0               |     v0 = (s3 < v0) ? 1 : 0;
    0x00517644 lw v0, 0x430(sp)              |     v0 = *(var_430h);
                                             |     if (v0 == 0) {
    0x00517648 bnez v0, 0x517664             |         
                                             | label_133:
    0x0051764c lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x00517650 move a1, s3                   |         a1 = s3;
    0x00517654 addiu a0, sp, 0x430           |         a0 = sp + 0x430;
    0x00517658 jalr t9                       |         t9 ();
    0x0051765c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00517660 lw v0, 0x430(sp)              |         v0 = *(var_430h);
                                             |     }
    0x00517664 lw t9, -0x6148(gp)            |     t9 = sym.imp.memcpy;
    0x00517668 addiu a0, v0, 0x10            |     a0 = v0 + 0x10;
    0x0051766c lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x00517670 move a2, s1                   |     a2 = s1;
    0x00517674 move a1, s2                   |     a1 = s2;
    0x00517678 addu a0, a0, v0               |     a0 += v0;
    0x0051767c jalr t9                       |     t9 ();
    0x00517680 lw v0, 0x430(sp)              |     v0 = *(var_430h);
    0x00517684 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00517688 sw s3, 0xc(v0)                |     *((v0 + 3)) = s3;
    0x0051768c lw v0, 0x434(sp)              |     v0 = *(var_434h);
    0x00517690 addiu s3, s3, 2               |     s3 += 2;
    0x00517694 sltu v0, s3, v0               |     v0 = (s3 < v0) ? 1 : 0;
    0x00517698 lw v1, 0x430(sp)              |     v1 = *(var_430h);
                                             |     if (v0 == 0) {
    0x0051769c bnez v0, 0x5176b8             |         
    0x005176a0 lw t9, -0x7ed4(gp)            |         t9 = sym.smart_str_erealloc;
    0x005176a4 move a1, s3                   |         a1 = s3;
    0x005176a8 addiu a0, sp, 0x430           |         a0 = sp + 0x430;
    0x005176ac jalr t9                       |         t9 ();
    0x005176b0 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x005176b4 lw v1, 0x430(sp)              |         v1 = *(var_430h);
                                             |     }
    0x005176b8 addiu v0, v1, 0x10            |     v0 = v1 + 0x10;
    0x005176bc lw v1, 0xc(v1)                |     v1 = *((v1 + 3));
    0x005176c0 addu v0, v0, v1               |     v0 += v1;
    0x005176c4 addiu v1, zero, 0xd           |     v1 = 0xd;
    0x005176c8 sb v1, (v0)                   |     *(v0) = v1;
    0x005176cc addiu v1, zero, 0xa           |     v1 = 0xa;
    0x005176d0 sb v1, 1(v0)                  |     *((v0 + 1)) = v1;
    0x005176d4 lw v0, 0x430(sp)              |     v0 = *(var_430h);
    0x005176d8 sw s3, 0xc(v0)                |     *((v0 + 3)) = s3;
    0x005176dc b 0x51479c                    |     goto label_14;
                                             | label_130:
    0x005176e0 addiu s1, s1, 1               |     s1++;
    0x005176e4 addiu v0, s1, -0x14           |     v0 = s1 + -0x14;
    0x005176e8 addiu a0, zero, 0xd           |     a0 = 0xd;
                                             |     if (v0 != s2) {
    0x005176ec bne v0, s2, 0x514b20          |         goto label_96;
                                             |     }
    0x005176f0 lw t9, -0x7bec(gp)            |     t9 = sym.zend_binary_strcasecmp;
    0x005176f4 addiu a3, zero, 0x14          |     a3 = 0x14;
    0x005176f8 move a2, s3                   |     a2 = s3;
    0x005176fc addiu a1, zero, 0x14          |     a1 = 0x14;
    0x00517700 move a0, s2                   |     a0 = s2;
    0x00517704 jalr t9                       |     t9 ();
    0x00517708 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x0051770c bnez v0, 0x514b1c             |         goto label_97;
                                             |     }
    0x00517710 addiu v1, zero, 0x2401        |     v1 = 0x2401;
                                             | label_99:
    0x00517714 lbu v0, (s1)                  |     v0 = *(s1);
    0x00517718 sltiu a0, v0, 0xe             |     a0 = (v0 < 0xe) ? 1 : 0;
    0x0051771c srlv v0, v1, v0               |     v0 = v1 >> v0;
                                             |     if (a0 == 0) {
    0x00517720 beqz a0, 0x517730             |         goto label_251;
                                             |     }
    0x00517724 ext v0, v0, 0, 1              |     __asm ("ext v0, v0, 0, 1");
    0x00517728 lw v0, 0x430(sp)              |     v0 = *(var_430h);
                                             |     if (v0 != 0) {
    0x0051772c bnez v0, 0x51762c             |         goto label_98;
                                             |     }
                                             | label_251:
    0x00517730 addiu s1, s1, 1               |     s1++;
    0x00517734 b 0x517714                    |     goto label_99;
                                             | label_157:
    0x00517738 move s1, zero                 |     s1 = 0;
    0x0051773c b 0x515900                    |     goto label_42;
                                             |     do {
    0x00517740 lhu v0, 0x10(fp)              |         v0 = *(arg_10h);
    0x00517744 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x00517748 lw a2, -0x7fc0(gp)            |         a2 = *((gp - 8176));
    0x0051774c lw v0, 0xc(fp)                |         v0 = *(arg_d3ch);
    0x00517750 lw t9, -0x7a10(gp)            |         t9 = sym.zend_spprintf;
    0x00517754 sw v0, 0x10(sp)               |         *(var_10h) = v0;
                                             |         /* esilref: 'ssl' */
    0x00517758 addiu a3, a3, -0x4844         |         a3 += -0x4844;
                                             |         /* str._s:___s:_d */
    0x0051775c addiu a2, a2, -0x485c         |         a2 += -0x485c;
    0x00517760 move a1, zero                 |         a1 = 0;
    0x00517764 addiu a0, sp, 0xcd4           |         a0 = sp + 0xcd4;
    0x00517768 jalr t9                       |         t9 ();
    0x0051776c move s1, v0                   |         s1 = v0;
    0x00517770 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00517774 move s4, zero                 |         s4 = 0;
    0x00517778 move s5, zero                 |         s5 = 0;
    0x0051777c b 0x51415c                    |         goto label_100;
                                             | label_115:
    0x00517780 lw v0, 0xcd8(sp)              |         v0 = *(var_cd8h);
                                             | label_116:
    0x00517784 lw a3, -0x7fc0(gp)            |         a3 = *((gp - 8176));
    0x00517788 bnez v0, 0x517740             |         
                                             |     } while (v0 != 0);
                                             | label_114:
    0x0051778c lhu v0, 0x10(fp)              |     v0 = *(arg_10h);
    0x00517790 lw a3, -0x7fc0(gp)            |     a3 = *((gp - 8176));
    0x00517794 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x00517798 lw a2, -0x7fc0(gp)            |     a2 = *((gp - 8176));
    0x0051779c lw v0, 0xc(fp)                |     v0 = *(arg_d3ch);
    0x005177a0 lw t9, -0x7a10(gp)            |     t9 = sym.zend_spprintf;
    0x005177a4 sw v0, 0x10(sp)               |     *(var_10h) = v0;
                                             |     /* esilref: 'tcp' */
    0x005177a8 addiu a3, a3, -0x4860         |     a3 += -0x4860;
                                             |     /* str._s:___s:_d */
    0x005177ac addiu a2, a2, -0x485c         |     a2 += -0x485c;
    0x005177b0 move a1, zero                 |     a1 = 0;
    0x005177b4 addiu a0, sp, 0xcd4           |     a0 = sp + 0xcd4;
    0x005177b8 jalr t9                       |     t9 ();
    0x005177bc move s1, v0                   |     s1 = v0;
    0x005177c0 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x005177c4 move s4, zero                 |     s4 = 0;
    0x005177c8 move s5, zero                 |     s5 = 0;
    0x005177cc sw zero, 0xcd8(sp)            |     *(var_cd8h) = 0;
                                             |     if (s0 != 0) {
    0x005177d0 bnez s0, 0x51415c             |         goto label_100;
                                             |     }
                                             |     do {
                                             | label_105:
    0x005177d4 lw v0, -0x7a54(gp)            |         v0 = *(gp);
    0x005177d8 sw zero, 0xccc(sp)            |         *(var_ccch) = 0;
    0x005177dc lw v0, 0xc(v0)                |         v0 = *((v0 + 3));
    0x005177e0 sw v0, 0xcc8(sp)              |         *(var_cc8h) = v0;
    0x005177e4 b 0x514218                    |         goto label_101;
                                             | label_113:
    0x005177e8 lhu v0, 0x10(fp)              |         v0 = *(arg_10h);
    0x005177ec sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x005177f0 lw a2, -0x7fc0(gp)            |         a2 = *((gp - 8176));
    0x005177f4 lw v0, 0xc(fp)                |         v0 = *(arg_d3ch);
    0x005177f8 lw t9, -0x7a10(gp)            |         t9 = sym.zend_spprintf;
    0x005177fc sw v0, 0x10(sp)               |         *(var_10h) = v0;
                                             |         /* esilref: 'ssl' */
    0x00517800 addiu a3, a3, -0x4844         |         a3 += -0x4844;
                                             |         /* str._s:___s:_d */
    0x00517804 addiu a2, a2, -0x485c         |         a2 += -0x485c;
    0x00517808 move a1, zero                 |         a1 = 0;
    0x0051780c addiu a0, sp, 0xcd4           |         a0 = sp + 0xcd4;
    0x00517810 jalr t9                       |         t9 ();
    0x00517814 move s1, v0                   |         s1 = v0;
    0x00517818 addiu v0, zero, 1             |         v0 = 1;
    0x0051781c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00517820 move s4, zero                 |         s4 = 0;
    0x00517824 move s5, zero                 |         s5 = 0;
    0x00517828 sw v0, 0xcd8(sp)              |         *(var_cd8h) = v0;
    0x0051782c b 0x5177d4                    |         
                                             |     } while (1);
                                             | label_234:
    0x00517830 addiu v1, v0, -1              |     v1 = v0 + -1;
                                             |     if (s0 == 0) {
    0x00517834 beqz s0, 0x5167b4             |         goto label_102;
                                             |     }
    0x00517838 lw v0, (s0)                   |     v0 = *(s0);
    0x0051783c b 0x516d28                    |     goto label_103;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/bin/php-cgi @ 0x5427dc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.005427dc ()                  | void fcn_005427dc () {
    0x005427dc lui gp, 0x1c                  |     
    0x005427e0 addiu gp, gp, -0x53c          |     
    0x005427e4 addu gp, gp, t9               |     gp += t9;
    0x005427e8 addiu sp, sp, -0x58           |     
    0x005427ec lw t9, -0x7f70(gp)            |     t9 = sym._estrdup;
    0x005427f0 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x005427f4 sw fp, 0x50(sp)               |     *(var_50h) = fp;
    0x005427f8 sw s5, 0x44(sp)               |     *(var_44h) = s5;
    0x005427fc sw s0, 0x30(sp)               |     *(var_30h) = s0;
    0x00542800 sw ra, 0x54(sp)               |     *(var_54h) = ra;
    0x00542804 sw s7, 0x4c(sp)               |     *(var_4ch) = s7;
    0x00542808 sw s6, 0x48(sp)               |     *(var_48h) = s6;
    0x0054280c sw s4, 0x40(sp)               |     *(var_40h) = s4;
    0x00542810 sw s3, 0x3c(sp)               |     *(var_3ch) = s3;
    0x00542814 sw s2, 0x38(sp)               |     *(var_38h) = s2;
    0x00542818 sw s1, 0x34(sp)               |     *(var_34h) = s1;
    0x0054281c move s0, a0                   |     s0 = a0;
    0x00542820 move a0, a1                   |     a0 = a1;
    0x00542824 move fp, a2                   |     fp = a2;
    0x00542828 jalr t9                       |     t9 ();
    0x0054282c move s5, v0                   |     s5 = v0;
    0x00542830 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (s0 == 0) {
    0x00542834 beqz s0, 0x542a4c             |         goto label_3;
                                             |     }
    0x00542838 lw v0, -0x7a54(gp)            |     v0 = *(gp);
    0x0054283c sw s0, 0x20(sp)               |     *(var_20h) = s0;
    0x00542840 lw a0, 0x28(v0)               |     a0 = *((v0 + 10));
    0x00542844 lw t9, -0x7e94(gp)            |     t9 = sym.zend_hash_str_find;
                                             |     if (a0 == 0) {
    0x00542848 beqz a0, 0x542a1c             |         goto label_4;
                                             |     }
    0x0054284c addiu a2, zero, 4             |     a2 = 4;
    0x00542850 addiu a1, sp, 0x20            |     a1 = sp + 0x20;
    0x00542854 jalr t9                       |     t9 ();
    0x00542858 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x0054285c beqz v0, 0x542a1c             |         goto label_4;
                                             |     }
    0x00542860 lw s1, (v0)                   |     s1 = *(v0);
    0x00542864 lw t9, -0x6870(gp)            |     t9 = sym.zend_llist_count;
    0x00542868 move a0, s1                   |     a0 = s1;
    0x0054286c jalr t9                       |     t9 ();
    0x00542870 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00542874 move s4, v0                   |     s4 = v0;
    0x00542878 lw v0, -0x79a8(gp)            |     v0 = *(gp);
    0x0054287c lbu v0, 0x13c(v0)             |     v0 = *((v0 + 316));
    0x00542880 lw s0, -0x7fc0(gp)            |     s0 = *((gp - 8176));
                                             |     if (v0 != 0) {
    0x00542884 bnez v0, 0x54298c             |         goto label_5;
                                             |     }
    0x00542888 lw s0, -0x7fbc(gp)            |     s0 = *((gp - 8175));
    0x0054288c addiu s7, zero, 1             |     s7 = 1;
    0x00542890 addiu s0, s0, 0x4238          |     s0 += 0x4238;
                                             |     do {
    0x00542894 lw t9, -0x71f8(gp)            |         t9 = sym.zend_llist_get_first_ex;
    0x00542898 addiu s3, sp, 0x24            |         s3 = sp + 0x24;
    0x0054289c move a1, s3                   |         a1 = s3;
    0x005428a0 move a0, s1                   |         a0 = s1;
    0x005428a4 jalr t9                       |         t9 ();
    0x005428a8 addiu v1, s4, -1              |         v1 = s4 + -1;
    0x005428ac lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x005428b0 move s6, zero                 |         s6 = 0;
    0x005428b4 move s2, zero                 |         s2 = 0;
    0x005428b8 sw v1, 0x28(sp)               |         *(var_28h) = v1;
                                             | label_0:
    0x005428bc lw t9, -0x6154(gp)            |         t9 = sym.imp.strlen;
                                             |         if (v0 != 0) {
    0x005428c0 bnez v0, 0x542998             |             goto label_6;
                                             |         }
    0x005428c4 lw t9, -0x7f60(gp)            |         t9 = sym._emalloc;
    0x005428c8 addiu a0, s2, 1               |         a0 = s2 + 1;
    0x005428cc jalr t9                       |         t9 ();
    0x005428d0 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x005428d4 sb zero, (v0)                 |         *(v0) = 0;
    0x005428d8 move a1, s3                   |         a1 = s3;
    0x005428dc lw t9, -0x71f8(gp)            |         t9 = sym.zend_llist_get_first_ex;
    0x005428e0 move a0, s1                   |         a0 = s1;
    0x005428e4 move s2, v0                   |         s2 = v0;
    0x005428e8 jalr t9                       |         t9 ();
    0x005428ec lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x005428f0 move s6, zero                 |         s6 = 0;
    0x005428f4 addiu s4, s4, -1              |         s4 += -1;
                                             | label_1:
    0x005428f8 lw t9, -0x62ac(gp)            |         t9 = sym.imp.strcat
                                             |         if (v0 != 0) {
    0x005428fc bnez v0, 0x5429d4             |             goto label_7;
                                             |         }
    0x00542900 addiu s0, zero, 1             |         s0 = 1;
                                             | label_2:
    0x00542904 lw t9, -0x7798(gp)            |         t9 = sym.php_strip_url_passwd;
    0x00542908 move a0, s5                   |         a0 = s5;
    0x0054290c bal 0x531b9c                  |         sym_php_strip_url_passwd ();
    0x00542910 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x00542914 addiu a2, zero, 2             |         a2 = 2;
    0x00542918 move a1, s5                   |         a1 = s5;
    0x0054291c lw a3, -0x7fbc(gp)            |         a3 = *((gp - 8175));
    0x00542920 lw t9, -0x686c(gp)            |         t9 = sym.php_error_docref1;
                                             |         /* esilref: '&s: &s' */
    0x00542924 addiu a3, a3, 0x6538          |         a3 += 0x6538;
    0x00542928 move a0, zero                 |         a0 = 0;
    0x0054292c sw s2, 0x14(sp)               |         *(var_14h) = s2;
    0x00542930 sw fp, 0x10(sp)               |         *(var_10h) = fp;
    0x00542934 jalr t9                       |         t9 ();
    0x00542938 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0054293c lw t9, -0x7fe4(gp)            |         t9 = sym._efree;
    0x00542940 move a0, s5                   |         a0 = s5;
    0x00542944 jalr t9                       |         t9 ();
    0x00542948 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |         if (s0 != 0) {
    0x0054294c beqz s0, 0x54295c             |             
    0x00542950 lw t9, -0x7fe4(gp)            |             t9 = sym._efree;
    0x00542954 move a0, s2                   |             a0 = s2;
    0x00542958 jalr t9                       |             t9 ();
                                             |         }
    0x0054295c lw ra, 0x54(sp)               |         ra = *(var_54h);
    0x00542960 lw fp, 0x50(sp)               |         fp = *(var_50h);
    0x00542964 lw s7, 0x4c(sp)               |         s7 = *(var_4ch);
    0x00542968 lw s6, 0x48(sp)               |         s6 = *(var_48h);
    0x0054296c lw s5, 0x44(sp)               |         s5 = *(var_44h);
    0x00542970 lw s4, 0x40(sp)               |         s4 = *(var_40h);
    0x00542974 lw s3, 0x3c(sp)               |         s3 = *(var_3ch);
    0x00542978 lw s2, 0x38(sp)               |         s2 = *(var_38h);
    0x0054297c lw s1, 0x34(sp)               |         s1 = *(var_34h);
    0x00542980 lw s0, 0x30(sp)               |         s0 = *(var_30h);
    0x00542984 addiu sp, sp, 0x58            |         
    0x00542988 jr ra                         |         return v0;
                                             | label_5:
    0x0054298c addiu s7, zero, 7             |         s7 = 7;
                                             |         /* str._br____n */
    0x00542990 addiu s0, s0, -0x6874         |         s0 += -0x6874;
    0x00542994 b 0x542894                    |         
                                             |     } while (1);
                                             | label_6:
    0x00542998 lw a0, (v0)                   |     a0 = *(v0);
    0x0054299c jalr t9                       |     t9 ();
    0x005429a0 addu s2, s2, v0               |     s2 += v0;
    0x005429a4 lw v0, 0x28(sp)               |     v0 = *(var_28h);
    0x005429a8 slt v0, s6, v0                |     v0 = (s6 < v0) ? 1 : 0;
    0x005429ac lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 != 0) {
    0x005429b0 beqz v0, 0x5429b8             |         
    0x005429b4 addu s2, s2, s7               |         s2 += s7;
                                             |     }
    0x005429b8 lw t9, -0x71f0(gp)            |     t9 = sym.zend_llist_get_next_ex;
    0x005429bc move a1, s3                   |     a1 = s3;
    0x005429c0 move a0, s1                   |     a0 = s1;
    0x005429c4 jalr t9                       |     t9 ();
    0x005429c8 addiu s6, s6, 1               |     s6++;
    0x005429cc lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x005429d0 b 0x5428bc                    |     goto label_0;
                                             | label_7:
    0x005429d4 lw a1, (v0)                   |     a1 = *(v0);
    0x005429d8 move a0, s2                   |     a0 = s2;
    0x005429dc jalr t9                       |     t9 ();
    0x005429e0 slt v0, s6, s4                |     v0 = (s6 < s4) ? 1 : 0;
    0x005429e4 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 != 0) {
    0x005429e8 beqz v0, 0x542a00             |         
    0x005429ec lw t9, -0x62ac(gp)            |         t9 = sym.imp.strcat
    0x005429f0 move a1, s0                   |         a1 = s0;
    0x005429f4 move a0, s2                   |         a0 = s2;
    0x005429f8 jalr t9                       |         t9 ();
    0x005429fc lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |     }
    0x00542a00 lw t9, -0x71f0(gp)            |     t9 = sym.zend_llist_get_next_ex;
    0x00542a04 move a1, s3                   |     a1 = s3;
    0x00542a08 move a0, s1                   |     a0 = s1;
    0x00542a0c jalr t9                       |     t9 ();
    0x00542a10 addiu s6, s6, 1               |     s6++;
    0x00542a14 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00542a18 b 0x5428f8                    |     goto label_1;
                                             | label_4:
    0x00542a1c lw v0, -0x6d2c(gp)            |     v0 = *(gp);
    0x00542a20 lw t9, -0x5e9c(gp)            |     t9 = sym.imp.__errno_location;
                                             |     if (s0 == v0) {
    0x00542a24 bne s0, v0, 0x542a5c          |         
    0x00542a28 move s0, zero                 |         s0 = 0;
    0x00542a2c jalr t9                       |         t9 ();
    0x00542a30 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x00542a34 lw t9, -0x5ef0(gp)            |         t9 = sym.imp.strerror;
    0x00542a38 lw a0, (v0)                   |         a0 = *(v0);
    0x00542a3c jalr t9                       |         t9 ();
    0x00542a40 move s2, v0                   |         s2 = v0;
    0x00542a44 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x00542a48 b 0x542904                    |         goto label_2;
                                             | label_3:
    0x00542a4c lw s2, -0x7fc0(gp)            |         s2 = *((gp - 8176));
    0x00542a50 move s0, zero                 |         s0 = 0;
                                             |         /* str.no_suitable_wrapper_could_be_found */
    0x00542a54 addiu s2, s2, 0x1150          |         s2 += 0x1150;
    0x00542a58 b 0x542904                    |         goto label_2;
                                             |     }
    0x00542a5c lw s2, -0x7fc0(gp)            |     s2 = *((gp - 8176));
    0x00542a60 move s0, zero                 |     s0 = 0;
                                             |     /* str.operation_failed */
    0x00542a64 addiu s2, s2, 0x1174          |     s2 += 0x1174;
    0x00542a68 b 0x542904                    |     goto label_2;
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/bin/php-cgi @ 0x548734 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.php_stream_filter_create ()      | void php_stream_filter_create () {
    0x00548734 lui gp, 0x1c                      |     
    0x00548738 addiu gp, gp, -0x6494             |     
    0x0054873c addu gp, gp, t9                   |     gp += t9;
    0x00548740 lw v0, -0x7a54(gp)                |     v0 = *(gp);
    0x00548744 addiu sp, sp, -0x40               |     
    0x00548748 sw s5, 0x2c(sp)                   |     *(var_2ch) = s5;
    0x0054874c lw s5, 0x24(v0)                   |     s5 = *((v0 + 9));
    0x00548750 sw gp, 0x10(sp)                   |     *(var_10h) = gp;
    0x00548754 sw s7, 0x34(sp)                   |     *(var_34h) = s7;
    0x00548758 sw s6, 0x30(sp)                   |     *(var_30h) = s6;
    0x0054875c sw s0, 0x18(sp)                   |     *(var_18h) = s0;
    0x00548760 sw ra, 0x3c(sp)                   |     *(var_3ch) = ra;
    0x00548764 sw fp, 0x38(sp)                   |     *(var_38h) = fp;
    0x00548768 sw s4, 0x28(sp)                   |     *(var_28h) = s4;
    0x0054876c sw s3, 0x24(sp)                   |     *(var_24h) = s3;
    0x00548770 sw s2, 0x20(sp)                   |     *(var_20h) = s2;
    0x00548774 sw s1, 0x1c(sp)                   |     *(var_1ch) = s1;
    0x00548778 move s0, a0                       |     s0 = a0;
    0x0054877c move s6, a1                       |     s6 = a1;
    0x00548780 move s7, a2                       |     s7 = a2;
                                                 |     if (s5 == 0) {
    0x00548784 bnez s5, 0x548790                 |         
    0x00548788 lw s5, -0x793c(gp)                |         s5 = *((gp - 7759));
    0x0054878c addiu s5, s5, -0x1070             |         s5 += -0x1070;
                                                 |     }
    0x00548790 lw t9, -0x6154(gp)                |     t9 = sym.imp.strlen;
    0x00548794 move a0, s0                       |     a0 = s0;
    0x00548798 jalr t9                           |     t9 ();
    0x0054879c lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x005487a0 move a2, v0                       |     a2 = v0;
    0x005487a4 move a1, s0                       |     a1 = s0;
    0x005487a8 lw t9, -0x7e94(gp)                |     t9 = sym.zend_hash_str_find;
    0x005487ac move a0, s5                       |     a0 = s5;
    0x005487b0 move s2, v0                       |     s2 = v0;
    0x005487b4 jalr t9                           |     t9 ();
    0x005487b8 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 != 0) {
    0x005487bc beqz v0, 0x5487f4                 |         
    0x005487c0 lw v0, (v0)                       |         v0 = *(v0);
    0x005487c4 move a2, s7                       |         a2 = s7;
    0x005487c8 move a1, s6                       |         a1 = s6;
    0x005487cc lw t9, (v0)                       |         t9 = *(v0);
    0x005487d0 move a0, s0                       |         a0 = s0;
    0x005487d4 jalr t9                           |         t9 ();
    0x005487d8 move s2, v0                       |         s2 = v0;
    0x005487dc lw gp, 0x10(sp)                   |         gp = *(var_10h);
                                                 |         if (v0 != 0) {
    0x005487e0 bnez v0, 0x548830                 |             goto label_3;
                                                 |         }
    0x005487e4 lw a2, -0x7fc0(gp)                |         a2 = *((gp - 8176));
    0x005487e8 move a3, s0                       |         a3 = s0;
                                                 |         /* str.unable_to_create_or_locate_filter___s_ */
                                                 | label_1:
    0x005487ec addiu a2, a2, 0x1698              |         a2 += 0x1698;
    0x005487f0 b 0x54881c                        |         
                                                 |     } else {
    0x005487f4 lw t9, -0x601c(gp)                |         t9 = sym.imp.strrchr;
    0x005487f8 addiu a1, zero, 0x2e              |         a1 = 0x2e;
    0x005487fc move a0, s0                       |         a0 = s0;
    0x00548800 jalr t9                           |         t9 ();
    0x00548804 move s1, v0                       |         s1 = v0;
    0x00548808 lw gp, 0x10(sp)                   |         gp = *(var_10h);
                                                 |         if (v0 != 0) {
    0x0054880c bnez v0, 0x548864                 |             goto label_4;
                                                 |         }
                                                 | label_0:
    0x00548810 lw a2, -0x7fc0(gp)                |         a2 = *((gp - 8176));
    0x00548814 move a3, s0                       |         a3 = s0;
                                                 |         /* str.unable_to_locate_filter___s_ */
    0x00548818 addiu a2, a2, 0x1678              |         a2 += 0x1678;
                                                 |     }
    0x0054881c lw t9, -0x7ef4(gp)                |     t9 = sym.php_error_docref0;
    0x00548820 addiu a1, zero, 2                 |     a1 = 2;
    0x00548824 move a0, zero                     |     a0 = 0;
    0x00548828 move s2, zero                     |     s2 = 0;
    0x0054882c jalr t9                           |     t9 ();
                                                 |     do {
                                                 | label_3:
    0x00548830 lw ra, 0x3c(sp)                   |         ra = *(var_3ch);
    0x00548834 move v0, s2                       |         v0 = s2;
    0x00548838 lw fp, 0x38(sp)                   |         fp = *(var_38h);
    0x0054883c lw s7, 0x34(sp)                   |         s7 = *(var_34h);
    0x00548840 lw s6, 0x30(sp)                   |         s6 = *(var_30h);
    0x00548844 lw s5, 0x2c(sp)                   |         s5 = *(var_2ch);
    0x00548848 lw s4, 0x28(sp)                   |         s4 = *(var_28h);
    0x0054884c lw s3, 0x24(sp)                   |         s3 = *(var_24h);
    0x00548850 lw s2, 0x20(sp)                   |         s2 = *(var_20h);
    0x00548854 lw s1, 0x1c(sp)                   |         s1 = *(var_1ch);
    0x00548858 lw s0, 0x18(sp)                   |         s0 = *(var_18h);
    0x0054885c addiu sp, sp, 0x40                |         
    0x00548860 jr ra                             |         return v0;
                                                 | label_4:
    0x00548864 lw t9, -0x7c80(gp)                |         t9 = sym._safe_emalloc;
    0x00548868 move a1, s2                       |         a1 = s2;
    0x0054886c addiu a2, zero, 3                 |         a2 = 3;
    0x00548870 addiu a0, zero, 1                 |         a0 = 1;
    0x00548874 jalr t9                           |         t9 ();
    0x00548878 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x0054887c addiu a2, s2, 1                   |         a2 = s2 + 1;
    0x00548880 move a1, s0                       |         a1 = s0;
    0x00548884 lw t9, -0x6148(gp)                |         t9 = sym.imp.memcpy;
    0x00548888 move a0, v0                       |         a0 = v0;
    0x0054888c move s4, v0                       |         s4 = v0;
    0x00548890 jalr t9                           |         t9 ();
    0x00548894 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00548898 subu s1, s1, s0                   |         __asm ("subu s1, s1, s0");
    0x0054889c addu s1, s4, s1                   |         s1 = s4 + s1;
    0x005488a0 lw fp, -0x7fc4(gp)                |         fp = *((gp - 8177));
    0x005488a4 move s2, zero                     |         s2 = 0;
    0x005488a8 move s3, zero                     |         s3 = 0;
                                                 |         /* esilref: '.*' */
    0x005488ac addiu fp, fp, -0x2878             |         fp += -0x2878;
                                                 | label_2:
    0x005488b0 lw t9, -0x7fe4(gp)                |         t9 = sym._efree;
                                                 |         if (s1 != 0) {
    0x005488b4 beqz s1, 0x5488c4                 |             
    0x005488b8 lw t9, -0x62ac(gp)                |             t9 = sym.imp.strcat
                                                 |             if (s2 == 0) {
    0x005488bc beqz s2, 0x5488e4                 |                 goto label_5;
                                                 |             }
    0x005488c0 lw t9, -0x7fe4(gp)                |             t9 = sym._efree;
                                                 |         }
    0x005488c4 move a0, s4                       |         a0 = s4;
    0x005488c8 jalr t9                           |         t9 ();
    0x005488cc lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x005488d0 bnez s2, 0x548830                 |         
                                                 |     } while (s2 != 0);
    0x005488d4 lw a2, -0x7fc0(gp)                |     a2 = *((gp - 8176));
                                                 |     if (s3 == 0) {
    0x005488d8 beqz s3, 0x548810                 |         goto label_0;
                                                 |     }
    0x005488dc move a3, s0                       |     a3 = s0;
    0x005488e0 b 0x5487ec                        |     goto label_1;
                                                 | label_5:
    0x005488e4 move a1, fp                       |     a1 = fp;
    0x005488e8 move a0, s4                       |     a0 = s4;
    0x005488ec sb zero, (s1)                     |     *(s1) = 0;
    0x005488f0 jalr t9                           |     t9 ();
    0x005488f4 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x005488f8 lw t9, -0x6154(gp)                |     t9 = sym.imp.strlen;
    0x005488fc move a0, s4                       |     a0 = s4;
    0x00548900 jalr t9                           |     t9 ();
    0x00548904 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00548908 move a2, v0                       |     a2 = v0;
    0x0054890c move a1, s4                       |     a1 = s4;
    0x00548910 lw t9, -0x7e94(gp)                |     t9 = sym.zend_hash_str_find;
    0x00548914 move a0, s5                       |     a0 = s5;
    0x00548918 jalr t9                           |     t9 ();
    0x0054891c lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 == 0) {
    0x00548920 beqz v0, 0x548964                 |         goto label_6;
                                                 |     }
    0x00548924 lw s3, (v0)                       |     s3 = *(v0);
    0x00548928 move a2, s7                       |     a2 = s7;
    0x0054892c move a1, s6                       |     a1 = s6;
    0x00548930 lw t9, (s3)                       |     t9 = *(s3);
    0x00548934 move a0, s0                       |     a0 = s0;
    0x00548938 jalr t9                           |     t9 ();
    0x0054893c lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00548940 move s2, v0                       |     s2 = v0;
                                                 |     do {
    0x00548944 lw t9, -0x601c(gp)                |         t9 = sym.imp.strrchr;
    0x00548948 sb zero, (s1)                     |         *(s1) = 0;
    0x0054894c addiu a1, zero, 0x2e              |         a1 = 0x2e;
    0x00548950 move a0, s4                       |         a0 = s4;
    0x00548954 jalr t9                           |         t9 ();
    0x00548958 move s1, v0                       |         s1 = v0;
    0x0054895c lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00548960 b 0x5488b0                        |         goto label_2;
                                                 | label_6:
    0x00548964 move s3, zero                     |         s3 = 0;
    0x00548968 b 0x548944                        |         
                                                 |     } while (1);
                                                 | }

[*] Function strcat used 6 times php-cgi