[*] Binary protection state of stream_proxy

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


[*] Function fprintf tear down of stream_proxy

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40909c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) aav.0x0040909c ()                | void aav_0x0040909c () {
    0x0040909c lui gp, 2                     |     
    0x004090a0 addiu gp, gp, 0x1f84          |     
    0x004090a4 addu gp, gp, t9               |     gp += t9;
    0x004090a8 addiu sp, sp, -0x48           |     
    0x004090ac sw ra, 0x44(sp)               |     *(var_44h) = ra;
    0x004090b0 sw fp, 0x40(sp)               |     *(var_40h) = fp;
    0x004090b4 sw s0, 0x3c(sp)               |     *(var_3ch) = s0;
    0x004090b8 move fp, sp                   |     fp = sp;
    0x004090bc sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x004090c0 sw a0, 0x2c(fp)               |     *(arg_2ch) = a0;
    0x004090c4 sw a1, 0x28(fp)               |     *(arg_28h) = a1;
    0x004090c8 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x004090cc lw t8, (t8)                   |     t8 = *(t8);
    0x004090d0 sw t8, 0x34(fp)               |     *(arg_34h) = t8;
    0x004090d4 lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x004090d8 lw t8, (t8)                   |     t8 = *(t8);
    0x004090dc move a0, t8                   |     a0 = t8;
    0x004090e0 lw t8, -0x7e14(gp)            |     t8 = sym.imp.ERR_print_errors_fp;
    0x004090e4 move t9, t8                   |     t9 = t8;
    0x004090e8 jalr t9                       |     t9 ();
    0x004090ec nop                           |     
    0x004090f0 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x004090f4 lw a0, 0x2c(fp)               |     a0 = *(arg_2ch);
    0x004090f8 lw a1, 0x28(fp)               |     a1 = *(arg_28h);
    0x004090fc lw t8, -0x7f30(gp)            |     t8 = sym.imp.SSL_get_error;
    0x00409100 move t9, t8                   |     t9 = t8;
    0x00409104 jalr t9                       |     t9 ();
    0x00409108 nop                           |     
    0x0040910c lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x00409110 move t8, v0                   |     t8 = v0;
    0x00409114 sltiu v0, t8, 9               |     v0 = (t8 < 9) ? 1 : 0;
                                             |     if (v0 != 0) {
    0x00409118 beqz v0, 0x4094a0             |         
    0x0040911c nop                           |         
    0x00409120 sll v0, t8, 2                 |         v0 = t8 << 2;
    0x00409124 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x00409128 addiu t8, t8, 0x458           |         t8 += 0x458;
    0x0040912c addu t8, v0, t8               |         t8 = v0 + t8;
    0x00409130 lw t8, (t8)                   |         t8 = *(t8);
    0x00409134 addu t8, t8, gp               |         t8 += gp;
    0x00409138 jr t8                         |         t8 ();
    0x0040913c nop                           |         
                                             |     }
    0x004094a0 lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x004094a4 lw s0, (t8)                   |     s0 = *(t8);
    0x004094a8 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x00408fc0 */
    0x004094ac addiu t8, t8, -0x7040         |     t8 += -0x7040;
    0x004094b0 move t9, t8                   |     t9 = t8;
    0x004094b4 jalr t9                       |     t9 ();
    0x004094b8 nop                           |     
    0x004094bc lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x004094c0 move t8, v0                   |     t8 = v0;
    0x004094c4 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str.ssl_err_print */
    0x004094c8 addiu v0, v0, 0x6dc           |     v0 += 0x6dc;
    0x004094cc sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x004094d0 addiu v0, zero, 0x14          |     v0 = 0x14;
    0x004094d4 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x004094d8 lw v0, 0x28(fp)               |     v0 = *(arg_28h);
    0x004094dc sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x004094e0 move a0, s0                   |     a0 = s0;
    0x004094e4 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d_unknown_ssl_err:__d_n */
    0x004094e8 addiu a1, v0, 0x428           |     a1 = v0 + 0x428;
    0x004094ec move a2, t8                   |     a2 = t8;
    0x004094f0 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x004094f4 addiu a3, t8, 0x260           |     a3 = t8 + 0x260;
    0x004094f8 lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x004094fc move t9, t8                   |     t9 = t8;
    0x00409500 jalr t9                       |     t9 ();
    0x00409504 nop                           |     
    0x00409508 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040950c nop                           |     
    0x00409510 b 0x40951c                    |     goto label_0;
    0x00409514 nop                           |     
                                             | label_0:
    0x0040951c lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x00409520 lw v0, 0x34(fp)               |     v0 = *(arg_34h);
    0x00409524 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v0 != t8) {
    0x00409528 beq v0, t8, 0x409540          |         
    0x0040952c nop                           |         
    0x00409530 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x00409534 move t9, t8                   |         t9 = t8;
    0x00409538 jalr t9                       |         t9 ();
    0x0040953c nop                           |         
                                             |     }
    0x00409540 move sp, fp                   |     
    0x00409544 lw ra, 0x44(sp)               |     ra = *(var_44h);
    0x00409548 lw fp, 0x40(sp)               |     fp = *(var_40h);
    0x0040954c lw s0, 0x3c(sp)               |     s0 = *(var_3ch);
    0x00409550 addiu sp, sp, 0x48            |     
    0x00409554 jr ra                         |     return v0;
    0x00409558 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40b9e4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) aav.0x0040b9e4 ()                | void aav_0x0040b9e4 () {
    0x0040b9e4 lui gp, 2                     |     
    0x0040b9e8 addiu gp, gp, -0x9c4          |     
    0x0040b9ec addu gp, gp, t9               |     gp += t9;
    0x0040b9f0 addiu sp, sp, -0x58           |     
    0x0040b9f4 sw ra, 0x54(sp)               |     *(var_54h) = ra;
    0x0040b9f8 sw fp, 0x50(sp)               |     *(var_50h) = fp;
    0x0040b9fc sw s0, 0x4c(sp)               |     *(var_4ch) = s0;
    0x0040ba00 move fp, sp                   |     fp = sp;
    0x0040ba04 sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x0040ba08 sw a0, 0x34(fp)               |     *(arg_34h) = a0;
    0x0040ba0c sw a1, 0x30(fp)               |     *(arg_30h) = a1;
    0x0040ba10 sw a2, 0x2c(fp)               |     *(arg_2ch) = a2;
    0x0040ba14 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040ba18 lw t8, (t8)                   |     t8 = *(t8);
    0x0040ba1c sw t8, 0x44(fp)               |     *(arg_44h) = t8;
    0x0040ba20 lw a0, 0x34(fp)               |     a0 = *(arg_34h);
    0x0040ba24 move a1, zero                 |     a1 = 0;
    0x0040ba28 addiu a2, zero, 0x418         |     a2 = 0x418;
    0x0040ba2c lw t8, -0x7ecc(gp)            |     t8 = sym.imp.memset;
    0x0040ba30 move t9, t8                   |     t9 = t8;
    0x0040ba34 jalr t9                       |     t9 ();
    0x0040ba38 nop                           |     
    0x0040ba3c lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040ba40 lw v0, 0x34(fp)               |     v0 = *(arg_34h);
    0x0040ba44 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x0040ba48 move a0, v0                   |     a0 = v0;
    0x0040ba4c lw a1, 0x30(fp)               |     a1 = *(arg_30h);
    0x0040ba50 move a2, t8                   |     a2 = t8;
    0x0040ba54 lw t8, -0x7eb8(gp)            |     t8 = sym.imp.strncpy;
    0x0040ba58 move t9, t8                   |     t9 = t8;
    0x0040ba5c jalr t9                       |     t9 ();
    0x0040ba60 nop                           |     
    0x0040ba64 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040ba68 lw t8, 0x34(fp)               |     t8 = *(arg_34h);
    0x0040ba6c move a0, t8                   |     a0 = t8;
    0x0040ba70 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* str.rtsps:__ */
    0x0040ba74 addiu a1, t8, 0x944           |     a1 = t8 + 0x944;
    0x0040ba78 addiu a2, zero, 8             |     a2 = 8;
    0x0040ba7c lw t8, -0x7eec(gp)            |     t8 = sym.imp.memcmp;
    0x0040ba80 move t9, t8                   |     t9 = t8;
    0x0040ba84 jalr t9                       |     t9 ();
    0x0040ba88 nop                           |     
    0x0040ba8c lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040ba90 move t8, v0                   |     t8 = v0;
                                             |     if (t8 == 0) {
    0x0040ba94 bnez t8, 0x40badc             |         
    0x0040ba98 nop                           |         
    0x0040ba9c lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040baa0 lw v0, 0x30(fp)               |         v0 = *(arg_30h);
    0x0040baa4 sw v0, 0x400(t8)              |         *((t8 + 1024)) = v0;
    0x0040baa8 lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040baac addiu v0, zero, 1             |         v0 = 1;
    0x0040bab0 sw v0, 0x404(t8)              |         *((t8 + 1028)) = v0;
    0x0040bab4 lw t8, 0x30(fp)               |         t8 = *(arg_30h);
    0x0040bab8 addiu v0, t8, 8               |         v0 = t8 + 8;
    0x0040babc lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040bac0 sw v0, 0x408(t8)              |         *((t8 + 1032)) = v0;
    0x0040bac4 lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040bac8 lw t8, 0x408(t8)              |         t8 = *((t8 + 258));
    0x0040bacc addiu t8, t8, -3              |         t8 += -3;
    0x0040bad0 sb zero, (t8)                 |         *(t8) = 0;
    0x0040bad4 b 0x40bbbc                    |         goto label_0;
    0x0040bad8 nop                           |         
                                             |     }
    0x0040badc lw t8, 0x34(fp)               |     t8 = *(arg_34h);
    0x0040bae0 move a0, t8                   |     a0 = t8;
    0x0040bae4 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* str.rtsp:__ */
    0x0040bae8 addiu a1, t8, 0x950           |     a1 = t8 + 0x950;
    0x0040baec addiu a2, zero, 7             |     a2 = 7;
    0x0040baf0 lw t8, -0x7eec(gp)            |     t8 = sym.imp.memcmp;
    0x0040baf4 move t9, t8                   |     t9 = t8;
    0x0040baf8 jalr t9                       |     t9 ();
    0x0040bafc nop                           |     
    0x0040bb00 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040bb04 move t8, v0                   |     t8 = v0;
                                             |     if (t8 == 0) {
    0x0040bb08 bnez t8, 0x40bb4c             |         
    0x0040bb0c nop                           |         
    0x0040bb10 lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040bb14 lw v0, 0x30(fp)               |         v0 = *(arg_30h);
    0x0040bb18 sw v0, 0x400(t8)              |         *((t8 + 1024)) = v0;
    0x0040bb1c lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040bb20 sw zero, 0x404(t8)            |         *((t8 + 1028)) = 0;
    0x0040bb24 lw t8, 0x30(fp)               |         t8 = *(arg_30h);
    0x0040bb28 addiu v0, t8, 7               |         v0 = t8 + 7;
    0x0040bb2c lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040bb30 sw v0, 0x408(t8)              |         *((t8 + 1032)) = v0;
    0x0040bb34 lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040bb38 lw t8, 0x408(t8)              |         t8 = *((t8 + 258));
    0x0040bb3c addiu t8, t8, -3              |         t8 += -3;
    0x0040bb40 sb zero, (t8)                 |         *(t8) = 0;
    0x0040bb44 b 0x40bbbc                    |         goto label_0;
    0x0040bb48 nop                           |         
                                             |     }
    0x0040bb4c lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040bb50 lw s0, (t8)                   |     s0 = *(t8);
    0x0040bb54 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040b650 */
    0x0040bb58 addiu t8, t8, -0x49b0         |     t8 += -0x49b0;
    0x0040bb5c move t9, t8                   |     t9 = t8;
    0x0040bb60 jalr t9                       |     t9 ();
    0x0040bb64 nop                           |     
    0x0040bb68 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040bb6c move t8, v0                   |     t8 = v0;
    0x0040bb70 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str.parse_rtsp_url */
    0x0040bb74 addiu v0, v0, 0x103c          |     v0 += 0x103c;
    0x0040bb78 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0040bb7c addiu v0, zero, 0x2c          |     v0 = 0x2c;
    0x0040bb80 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0040bb84 move a0, s0                   |     a0 = s0;
    0x0040bb88 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d_Not_RTSP_Protocol__n */
    0x0040bb8c addiu a1, v0, 0x958           |     a1 = v0 + 0x958;
    0x0040bb90 move a2, t8                   |     a2 = t8;
    0x0040bb94 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040bb98 addiu a3, t8, 0x988           |     a3 = t8 + 0x988;
    0x0040bb9c lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040bba0 move t9, t8                   |     t9 = t8;
    0x0040bba4 jalr t9                       |     t9 ();
    0x0040bba8 nop                           |     
    0x0040bbac lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040bbb0 addiu t8, zero, -1            |     t8 = -1;
    0x0040bbb4 b 0x40c000                    |     goto label_1;
    0x0040bbb8 nop                           |     
                                             | label_0:
    0x0040bbbc lw t8, 0x34(fp)               |     t8 = *(arg_34h);
    0x0040bbc0 lw t8, 0x408(t8)              |     t8 = *((t8 + 258));
    0x0040bbc4 move a0, t8                   |     a0 = t8;
    0x0040bbc8 addiu a1, zero, 0x2f          |     a1 = 0x2f;
    0x0040bbcc lw t8, -0x7f14(gp)            |     t8 = sym.imp.strchr;
    0x0040bbd0 move t9, t8                   |     t9 = t8;
    0x0040bbd4 jalr t9                       |     t9 ();
    0x0040bbd8 nop                           |     
    0x0040bbdc lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040bbe0 sw v0, 0x38(fp)               |     *(arg_38h) = v0;
    0x0040bbe4 lw t8, 0x38(fp)               |     t8 = *(arg_38h);
                                             |     if (t8 != 0) {
    0x0040bbe8 beqz t8, 0x40bcf0             |         
    0x0040bbec nop                           |         
    0x0040bbf0 lw t8, 0x38(fp)               |         t8 = *(arg_38h);
    0x0040bbf4 addiu v0, t8, 1               |         v0 = t8 + 1;
    0x0040bbf8 sw v0, 0x38(fp)               |         *(arg_38h) = v0;
    0x0040bbfc sb zero, (t8)                 |         *(t8) = 0;
    0x0040bc00 lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040bc04 lw v0, 0x38(fp)               |         v0 = *(arg_38h);
    0x0040bc08 sw v0, 0x410(t8)              |         *((t8 + 1040)) = v0;
    0x0040bc0c lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040bc10 lw t8, 0x408(t8)              |         t8 = *((t8 + 258));
    0x0040bc14 move a0, t8                   |         a0 = t8;
    0x0040bc18 addiu a1, zero, 0x3a          |         a1 = 0x3a;
    0x0040bc1c lw t8, -0x7f14(gp)            |         t8 = sym.imp.strchr;
    0x0040bc20 move t9, t8                   |         t9 = t8;
    0x0040bc24 jalr t9                       |         t9 ();
    0x0040bc28 nop                           |         
    0x0040bc2c lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040bc30 sw v0, 0x3c(fp)               |         *(arg_3ch) = v0;
    0x0040bc34 lw t8, 0x3c(fp)               |         t8 = *(arg_3ch);
                                             |         if (t8 != 0) {
    0x0040bc38 beqz t8, 0x40bc78             |             
    0x0040bc3c nop                           |             
    0x0040bc40 lw t8, 0x3c(fp)               |             t8 = *(arg_3ch);
    0x0040bc44 addiu v0, t8, 1               |             v0 = t8 + 1;
    0x0040bc48 sw v0, 0x3c(fp)               |             *(arg_3ch) = v0;
    0x0040bc4c sb zero, (t8)                 |             *(t8) = 0;
    0x0040bc50 lw a0, 0x3c(fp)               |             a0 = *(arg_3ch);
    0x0040bc54 lw t8, -0x7f10(gp)            |             t8 = sym.imp.atoi;
    0x0040bc58 move t9, t8                   |             t9 = t8;
    0x0040bc5c jalr t9                       |             t9 ();
    0x0040bc60 nop                           |             
    0x0040bc64 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040bc68 lw t8, 0x34(fp)               |             t8 = *(arg_34h);
    0x0040bc6c sw v0, 0x40c(t8)              |             *((t8 + 1036)) = v0;
    0x0040bc70 b 0x40bca0                    |             goto label_2;
    0x0040bc74 nop                           |             
                                             |         }
    0x0040bc78 lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040bc7c lw t8, 0x404(t8)              |         t8 = *((t8 + 257));
                                             |         if (t8 != 0) {
    0x0040bc80 beqz t8, 0x40bc94             |             
    0x0040bc84 nop                           |             
    0x0040bc88 addiu t8, zero, 0x1bb         |             t8 = 0x1bb;
    0x0040bc8c b 0x40bc98                    |             goto label_3;
    0x0040bc90 nop                           |             
                                             |         }
    0x0040bc94 addiu t8, zero, 0x50          |         t8 = 0x50;
                                             | label_3:
    0x0040bc98 lw v0, 0x34(fp)               |         v0 = *(arg_34h);
    0x0040bc9c sw t8, 0x40c(v0)              |         *((v0 + 259)) = t8;
                                             | label_2:
    0x0040bca0 lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040bca4 lw t8, 0x410(t8)              |         t8 = *((t8 + 260));
    0x0040bca8 move a0, t8                   |         a0 = t8;
    0x0040bcac addiu a1, zero, 0x3f          |         a1 = 0x3f;
    0x0040bcb0 lw t8, -0x7f14(gp)            |         t8 = sym.imp.strchr;
    0x0040bcb4 move t9, t8                   |         t9 = t8;
    0x0040bcb8 jalr t9                       |         t9 ();
    0x0040bcbc nop                           |         
    0x0040bcc0 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040bcc4 sw v0, 0x40(fp)               |         *(arg_40h) = v0;
    0x0040bcc8 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
                                             |         if (t8 == 0) {
    0x0040bccc beqz t8, 0x40bcf0             |             goto label_4;
                                             |         }
    0x0040bcd0 nop                           |         
    0x0040bcd4 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x0040bcd8 addiu v0, t8, 1               |         v0 = t8 + 1;
    0x0040bcdc sw v0, 0x40(fp)               |         *(arg_40h) = v0;
    0x0040bce0 sb zero, (t8)                 |         *(t8) = 0;
    0x0040bce4 lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040bce8 lw v0, 0x40(fp)               |         v0 = *(arg_40h);
    0x0040bcec sw v0, 0x414(t8)              |         *((t8 + 1044)) = v0;
                                             |     }
                                             | label_4:
    0x0040bcf0 lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040bcf4 lw s0, (t8)                   |     s0 = *(t8);
    0x0040bcf8 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040b650 */
    0x0040bcfc addiu t8, t8, -0x49b0         |     t8 += -0x49b0;
    0x0040bd00 move t9, t8                   |     t9 = t8;
    0x0040bd04 jalr t9                       |     t9 ();
    0x0040bd08 nop                           |     
    0x0040bd0c lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040bd10 move t8, v0                   |     t8 = v0;
    0x0040bd14 lw v0, 0x34(fp)               |     v0 = *(arg_34h);
    0x0040bd18 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
                                             |     /* str.parse_rtsp_url */
    0x0040bd1c addiu v1, v1, 0x103c          |     v1 += 0x103c;
    0x0040bd20 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x0040bd24 addiu v1, zero, 0x42          |     v1 = 0x42;
    0x0040bd28 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x0040bd2c sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0040bd30 move a0, s0                   |     a0 = s0;
    0x0040bd34 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d_full_url_:__s_n */
    0x0040bd38 addiu a1, v0, 0x99c           |     a1 = v0 + 0x99c;
    0x0040bd3c move a2, t8                   |     a2 = t8;
    0x0040bd40 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040bd44 addiu a3, t8, 0x9c4           |     a3 = t8 + 0x9c4;
    0x0040bd48 lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040bd4c move t9, t8                   |     t9 = t8;
    0x0040bd50 jalr t9                       |     t9 ();
    0x0040bd54 nop                           |     
    0x0040bd58 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040bd5c lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040bd60 lw s0, (t8)                   |     s0 = *(t8);
    0x0040bd64 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040b650 */
    0x0040bd68 addiu t8, t8, -0x49b0         |     t8 += -0x49b0;
    0x0040bd6c move t9, t8                   |     t9 = t8;
    0x0040bd70 jalr t9                       |     t9 ();
    0x0040bd74 nop                           |     
    0x0040bd78 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040bd7c move t8, v0                   |     t8 = v0;
    0x0040bd80 lw v0, 0x34(fp)               |     v0 = *(arg_34h);
    0x0040bd84 lw v0, 0x400(v0)              |     v0 = *((v0 + 256));
    0x0040bd88 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
                                             |     /* str.parse_rtsp_url */
    0x0040bd8c addiu v1, v1, 0x103c          |     v1 += 0x103c;
    0x0040bd90 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x0040bd94 addiu v1, zero, 0x43          |     v1 = 0x43;
    0x0040bd98 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x0040bd9c sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0040bda0 move a0, s0                   |     a0 = s0;
    0x0040bda4 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d_protocol_:__s_n */
    0x0040bda8 addiu a1, v0, 0x9d4           |     a1 = v0 + 0x9d4;
    0x0040bdac move a2, t8                   |     a2 = t8;
    0x0040bdb0 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040bdb4 addiu a3, t8, 0x9c4           |     a3 = t8 + 0x9c4;
    0x0040bdb8 lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040bdbc move t9, t8                   |     t9 = t8;
    0x0040bdc0 jalr t9                       |     t9 ();
    0x0040bdc4 nop                           |     
    0x0040bdc8 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040bdcc lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040bdd0 lw s0, (t8)                   |     s0 = *(t8);
    0x0040bdd4 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040b650 */
    0x0040bdd8 addiu t8, t8, -0x49b0         |     t8 += -0x49b0;
    0x0040bddc move t9, t8                   |     t9 = t8;
    0x0040bde0 jalr t9                       |     t9 ();
    0x0040bde4 nop                           |     
    0x0040bde8 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040bdec move t8, v0                   |     t8 = v0;
    0x0040bdf0 lw v0, 0x34(fp)               |     v0 = *(arg_34h);
    0x0040bdf4 lw v0, 0x404(v0)              |     v0 = *((v0 + 257));
    0x0040bdf8 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
                                             |     /* str.parse_rtsp_url */
    0x0040bdfc addiu v1, v1, 0x103c          |     v1 += 0x103c;
    0x0040be00 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x0040be04 addiu v1, zero, 0x44          |     v1 = 0x44;
    0x0040be08 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x0040be0c sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0040be10 move a0, s0                   |     a0 = s0;
    0x0040be14 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d_is_ssl___:__d_n */
    0x0040be18 addiu a1, v0, 0x9fc           |     a1 = v0 + 0x9fc;
    0x0040be1c move a2, t8                   |     a2 = t8;
    0x0040be20 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040be24 addiu a3, t8, 0x9c4           |     a3 = t8 + 0x9c4;
    0x0040be28 lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040be2c move t9, t8                   |     t9 = t8;
    0x0040be30 jalr t9                       |     t9 ();
    0x0040be34 nop                           |     
    0x0040be38 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040be3c lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040be40 lw s0, (t8)                   |     s0 = *(t8);
    0x0040be44 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040b650 */
    0x0040be48 addiu t8, t8, -0x49b0         |     t8 += -0x49b0;
    0x0040be4c move t9, t8                   |     t9 = t8;
    0x0040be50 jalr t9                       |     t9 ();
    0x0040be54 nop                           |     
    0x0040be58 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040be5c move t8, v0                   |     t8 = v0;
    0x0040be60 lw v0, 0x34(fp)               |     v0 = *(arg_34h);
    0x0040be64 lw v0, 0x408(v0)              |     v0 = *((v0 + 258));
    0x0040be68 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
                                             |     /* str.parse_rtsp_url */
    0x0040be6c addiu v1, v1, 0x103c          |     v1 += 0x103c;
    0x0040be70 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x0040be74 addiu v1, zero, 0x45          |     v1 = 0x45;
    0x0040be78 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x0040be7c sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0040be80 move a0, s0                   |     a0 = s0;
    0x0040be84 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d_host_____:__s_n */
    0x0040be88 addiu a1, v0, 0xa24           |     a1 = v0 + 0xa24;
    0x0040be8c move a2, t8                   |     a2 = t8;
    0x0040be90 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040be94 addiu a3, t8, 0x9c4           |     a3 = t8 + 0x9c4;
    0x0040be98 lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040be9c move t9, t8                   |     t9 = t8;
    0x0040bea0 jalr t9                       |     t9 ();
    0x0040bea4 nop                           |     
    0x0040bea8 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040beac lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040beb0 lw s0, (t8)                   |     s0 = *(t8);
    0x0040beb4 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040b650 */
    0x0040beb8 addiu t8, t8, -0x49b0         |     t8 += -0x49b0;
    0x0040bebc move t9, t8                   |     t9 = t8;
    0x0040bec0 jalr t9                       |     t9 ();
    0x0040bec4 nop                           |     
    0x0040bec8 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040becc move t8, v0                   |     t8 = v0;
    0x0040bed0 lw v0, 0x34(fp)               |     v0 = *(arg_34h);
    0x0040bed4 lw v0, 0x40c(v0)              |     v0 = *((v0 + 259));
    0x0040bed8 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
                                             |     /* str.parse_rtsp_url */
    0x0040bedc addiu v1, v1, 0x103c          |     v1 += 0x103c;
    0x0040bee0 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x0040bee4 addiu v1, zero, 0x46          |     v1 = 0x46;
    0x0040bee8 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x0040beec sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0040bef0 move a0, s0                   |     a0 = s0;
    0x0040bef4 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d_port_____:__d_n */
    0x0040bef8 addiu a1, v0, 0xa4c           |     a1 = v0 + 0xa4c;
    0x0040befc move a2, t8                   |     a2 = t8;
    0x0040bf00 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040bf04 addiu a3, t8, 0x9c4           |     a3 = t8 + 0x9c4;
    0x0040bf08 lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040bf0c move t9, t8                   |     t9 = t8;
    0x0040bf10 jalr t9                       |     t9 ();
    0x0040bf14 nop                           |     
    0x0040bf18 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040bf1c lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040bf20 lw s0, (t8)                   |     s0 = *(t8);
    0x0040bf24 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040b650 */
    0x0040bf28 addiu t8, t8, -0x49b0         |     t8 += -0x49b0;
    0x0040bf2c move t9, t8                   |     t9 = t8;
    0x0040bf30 jalr t9                       |     t9 ();
    0x0040bf34 nop                           |     
    0x0040bf38 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040bf3c move t8, v0                   |     t8 = v0;
    0x0040bf40 lw v0, 0x34(fp)               |     v0 = *(arg_34h);
    0x0040bf44 lw v0, 0x410(v0)              |     v0 = *((v0 + 260));
    0x0040bf48 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
                                             |     /* str.parse_rtsp_url */
    0x0040bf4c addiu v1, v1, 0x103c          |     v1 += 0x103c;
    0x0040bf50 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x0040bf54 addiu v1, zero, 0x47          |     v1 = 0x47;
    0x0040bf58 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x0040bf5c sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0040bf60 move a0, s0                   |     a0 = s0;
    0x0040bf64 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d_path_____:__s_n */
    0x0040bf68 addiu a1, v0, 0xa74           |     a1 = v0 + 0xa74;
    0x0040bf6c move a2, t8                   |     a2 = t8;
    0x0040bf70 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040bf74 addiu a3, t8, 0x9c4           |     a3 = t8 + 0x9c4;
    0x0040bf78 lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040bf7c move t9, t8                   |     t9 = t8;
    0x0040bf80 jalr t9                       |     t9 ();
    0x0040bf84 nop                           |     
    0x0040bf88 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040bf8c lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040bf90 lw s0, (t8)                   |     s0 = *(t8);
    0x0040bf94 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040b650 */
    0x0040bf98 addiu t8, t8, -0x49b0         |     t8 += -0x49b0;
    0x0040bf9c move t9, t8                   |     t9 = t8;
    0x0040bfa0 jalr t9                       |     t9 ();
    0x0040bfa4 nop                           |     
    0x0040bfa8 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040bfac move t8, v0                   |     t8 = v0;
    0x0040bfb0 lw v0, 0x34(fp)               |     v0 = *(arg_34h);
    0x0040bfb4 lw v0, 0x414(v0)              |     v0 = *((v0 + 261));
    0x0040bfb8 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
                                             |     /* str.parse_rtsp_url */
    0x0040bfbc addiu v1, v1, 0x103c          |     v1 += 0x103c;
    0x0040bfc0 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x0040bfc4 addiu v1, zero, 0x48          |     v1 = 0x48;
    0x0040bfc8 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x0040bfcc sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0040bfd0 move a0, s0                   |     a0 = s0;
    0x0040bfd4 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d_query____:__s_n */
    0x0040bfd8 addiu a1, v0, 0xa9c           |     a1 = v0 + 0xa9c;
    0x0040bfdc move a2, t8                   |     a2 = t8;
    0x0040bfe0 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040bfe4 addiu a3, t8, 0x9c4           |     a3 = t8 + 0x9c4;
    0x0040bfe8 lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040bfec move t9, t8                   |     t9 = t8;
    0x0040bff0 jalr t9                       |     t9 ();
    0x0040bff4 nop                           |     
    0x0040bff8 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040bffc move t8, zero                 |     t8 = 0;
                                             | label_1:
    0x0040c000 move v0, t8                   |     v0 = t8;
    0x0040c004 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040c008 lw v1, 0x44(fp)               |     v1 = *(arg_44h);
    0x0040c00c lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040c010 beq v1, t8, 0x40c028          |         
    0x0040c014 nop                           |         
    0x0040c018 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040c01c move t9, t8                   |         t9 = t8;
    0x0040c020 jalr t9                       |         t9 ();
    0x0040c024 nop                           |         
                                             |     }
    0x0040c028 move sp, fp                   |     
    0x0040c02c lw ra, 0x54(sp)               |     ra = *(var_54h);
    0x0040c030 lw fp, 0x50(sp)               |     fp = *(var_50h);
    0x0040c034 lw s0, 0x4c(sp)               |     s0 = *(var_4ch);
    0x0040c038 addiu sp, sp, 0x58            |     
    0x0040c03c jr ra                         |     return v1;
    0x0040c040 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40dcec */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) aav.0x0040dcec ()                | void aav_0x0040dcec () {
    0x0040dcec lui gp, 2                     |     
    0x0040dcf0 addiu gp, gp, -0x2ccc         |     
    0x0040dcf4 addu gp, gp, t9               |     gp += t9;
    0x0040dcf8 addiu sp, sp, -0x60           |     
    0x0040dcfc sw ra, 0x5c(sp)               |     *(var_5ch) = ra;
    0x0040dd00 sw fp, 0x58(sp)               |     *(var_58h) = fp;
    0x0040dd04 sw s0, 0x54(sp)               |     *(var_54h) = s0;
    0x0040dd08 move fp, sp                   |     fp = sp;
    0x0040dd0c sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x0040dd10 sw a0, 0x3c(fp)               |     *(arg_3ch) = a0;
    0x0040dd14 sw a1, 0x38(fp)               |     *(arg_38h) = a1;
    0x0040dd18 sw a2, 0x34(fp)               |     *(arg_34h) = a2;
    0x0040dd1c sw a3, 0x30(fp)               |     *(arg_30h) = a3;
    0x0040dd20 lw t8, 0x70(fp)               |     t8 = *(arg_70h);
    0x0040dd24 sw t8, 0x2c(fp)               |     *(arg_2ch) = t8;
    0x0040dd28 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040dd2c lw t8, (t8)                   |     t8 = *(t8);
    0x0040dd30 sw t8, 0x4c(fp)               |     *(arg_4ch) = t8;
    0x0040dd34 lw t8, 0x3c(fp)               |     t8 = *(arg_3ch);
                                             |     if (t8 != 0) {
    0x0040dd38 beqz t8, 0x40dd64             |         
    0x0040dd3c nop                           |         
    0x0040dd40 lw t8, 0x34(fp)               |         t8 = *(arg_34h);
                                             |         if (t8 == 0) {
    0x0040dd44 beqz t8, 0x40dd64             |             goto label_0;
                                             |         }
    0x0040dd48 nop                           |         
    0x0040dd4c lw t8, 0x30(fp)               |         t8 = *(arg_30h);
                                             |         if (t8 == 0) {
    0x0040dd50 beqz t8, 0x40dd64             |             goto label_0;
                                             |         }
    0x0040dd54 nop                           |         
    0x0040dd58 lw t8, 0x2c(fp)               |         t8 = *(arg_2ch);
                                             |         if (t8 != 0) {
    0x0040dd5c bnez t8, 0x40ddd4             |             goto label_1;
                                             |         }
    0x0040dd60 nop                           |         
                                             |     }
                                             | label_0:
    0x0040dd64 lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040dd68 lw s0, (t8)                   |     s0 = *(t8);
    0x0040dd6c lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040dc10 */
    0x0040dd70 addiu t8, t8, -0x23f0         |     t8 += -0x23f0;
    0x0040dd74 move t9, t8                   |     t9 = t8;
    0x0040dd78 jalr t9                       |     t9 ();
    0x0040dd7c nop                           |     
    0x0040dd80 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040dd84 move t8, v0                   |     t8 = v0;
    0x0040dd88 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str.replace_rtsp_uri */
    0x0040dd8c addiu v0, v0, 0x131c          |     v0 += 0x131c;
    0x0040dd90 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0040dd94 addiu v0, zero, 0xb           |     v0 = 0xb;
    0x0040dd98 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0040dd9c move a0, s0                   |     a0 = s0;
    0x0040dda0 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d_NULL_parameter__n */
    0x0040dda4 addiu a1, v0, 0x10b4          |     a1 = v0 + 0x10b4;
    0x0040dda8 move a2, t8                   |     a2 = t8;
    0x0040ddac lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* str.e_1_31mERRORe_0m */
    0x0040ddb0 addiu a3, t8, 0x10e0          |     a3 = t8 + 0x10e0;
    0x0040ddb4 lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040ddb8 move t9, t8                   |     t9 = t8;
    0x0040ddbc jalr t9                       |     t9 ();
    0x0040ddc0 nop                           |     
    0x0040ddc4 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040ddc8 addiu t8, zero, -1            |     t8 = -1;
    0x0040ddcc b 0x40df20                    |     goto label_2;
    0x0040ddd0 nop                           |     
                                             | label_1:
    0x0040ddd4 lw t8, 0x38(fp)               |     t8 = *(arg_38h);
    0x0040ddd8 lw v0, 0x3c(fp)               |     v0 = *(arg_3ch);
    0x0040dddc addu t8, v0, t8               |     t8 = v0 + t8;
    0x0040dde0 sb zero, (t8)                 |     *(t8) = 0;
    0x0040dde4 sw zero, 0x44(fp)             |     *(arg_44h) = 0;
    0x0040dde8 lw a0, 0x3c(fp)               |     a0 = *(arg_3ch);
    0x0040ddec lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* str._rtsp:__ */
    0x0040ddf0 addiu a1, t8, 0x10f4          |     a1 = t8 + 0x10f4;
    0x0040ddf4 lw t8, -0x7efc(gp)            |     t8 = sym.imp.strstr;
    0x0040ddf8 move t9, t8                   |     t9 = t8;
    0x0040ddfc jalr t9                       |     t9 ();
    0x0040de00 nop                           |     
    0x0040de04 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040de08 sw v0, 0x44(fp)               |     *(arg_44h) = v0;
    0x0040de0c lw t8, 0x44(fp)               |     t8 = *(arg_44h);
    0x0040de10 sltu t8, zero, t8             |     t8 = (0 < t8) ? 1 : 0;
    0x0040de14 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x0040de18 beqz t8, 0x40de3c             |         
    0x0040de1c nop                           |         
    0x0040de20 lw t8, 0x44(fp)               |         t8 = *(arg_44h);
    0x0040de24 sb zero, (t8)                 |         *(t8) = 0;
    0x0040de28 lw t8, 0x44(fp)               |         t8 = *(arg_44h);
    0x0040de2c addiu t8, t8, 8               |         t8 += 8;
    0x0040de30 sw t8, 0x44(fp)               |         *(arg_44h) = t8;
    0x0040de34 b 0x40de88                    |         goto label_3;
    0x0040de38 nop                           |         
                                             |     }
    0x0040de3c lw a0, 0x3c(fp)               |     a0 = *(arg_3ch);
    0x0040de40 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* str._rtsps:__ */
    0x0040de44 addiu a1, t8, 0x1100          |     a1 = t8 + 0x1100;
    0x0040de48 lw t8, -0x7efc(gp)            |     t8 = sym.imp.strstr;
    0x0040de4c move t9, t8                   |     t9 = t8;
    0x0040de50 jalr t9                       |     t9 ();
    0x0040de54 nop                           |     
    0x0040de58 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040de5c sw v0, 0x44(fp)               |     *(arg_44h) = v0;
    0x0040de60 lw t8, 0x44(fp)               |     t8 = *(arg_44h);
    0x0040de64 sltu t8, zero, t8             |     t8 = (0 < t8) ? 1 : 0;
    0x0040de68 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x0040de6c beqz t8, 0x40de88             |         
    0x0040de70 nop                           |         
    0x0040de74 lw t8, 0x44(fp)               |         t8 = *(arg_44h);
    0x0040de78 sb zero, (t8)                 |         *(t8) = 0;
    0x0040de7c lw t8, 0x44(fp)               |         t8 = *(arg_44h);
    0x0040de80 addiu t8, t8, 9               |         t8 += 9;
    0x0040de84 sw t8, 0x44(fp)               |         *(arg_44h) = t8;
                                             |     }
                                             | label_3:
    0x0040de88 lw t8, 0x44(fp)               |     t8 = *(arg_44h);
                                             |     if (t8 != 0) {
    0x0040de8c beqz t8, 0x40df1c             |         
    0x0040de90 nop                           |         
    0x0040de94 lw a0, 0x44(fp)               |         a0 = *(arg_44h);
    0x0040de98 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str._RTSP_1.0_r_n */
    0x0040de9c addiu a1, t8, 0x110c          |         a1 = t8 + 0x110c;
    0x0040dea0 lw t8, -0x7efc(gp)            |         t8 = sym.imp.strstr;
    0x0040dea4 move t9, t8                   |         t9 = t8;
    0x0040dea8 jalr t9                       |         t9 ();
    0x0040deac nop                           |         
    0x0040deb0 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040deb4 sw v0, 0x48(fp)               |         *(arg_48h) = v0;
    0x0040deb8 lw t8, 0x48(fp)               |         t8 = *(arg_48h);
                                             |         if (t8 == 0) {
    0x0040debc beqz t8, 0x40df1c             |             goto label_4;
                                             |         }
    0x0040dec0 nop                           |         
    0x0040dec4 lw t8, 0x38(fp)               |         t8 = *(arg_38h);
    0x0040dec8 lw v0, 0x34(fp)               |         v0 = *(arg_34h);
    0x0040decc sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0040ded0 lw v0, 0x30(fp)               |         v0 = *(arg_30h);
    0x0040ded4 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x0040ded8 lw v0, 0x2c(fp)               |         v0 = *(arg_2ch);
    0x0040dedc sw v0, 0x18(sp)               |         *(var_18h) = v0;
    0x0040dee0 lw v0, 0x48(fp)               |         v0 = *(arg_48h);
    0x0040dee4 sw v0, 0x1c(sp)               |         *(var_1ch) = v0;
    0x0040dee8 lw a0, 0x3c(fp)               |         a0 = *(arg_3ch);
    0x0040deec move a1, t8                   |         a1 = t8;
    0x0040def0 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str._s_rtsp:___s:_s__s_s */
    0x0040def4 addiu a2, t8, 0x1118          |         a2 = t8 + 0x1118;
    0x0040def8 lw a3, 0x3c(fp)               |         a3 = *(arg_3ch);
    0x0040defc lw t8, -0x7e5c(gp)            |         t8 = sym.imp.snprintf;
    0x0040df00 move t9, t8                   |         t9 = t8;
    0x0040df04 jalr t9                       |         t9 ();
    0x0040df08 nop                           |         
    0x0040df0c lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040df10 move t8, v0                   |         t8 = v0;
    0x0040df14 b 0x40df20                    |         goto label_2;
    0x0040df18 nop                           |         
                                             |     }
                                             | label_4:
    0x0040df1c lw t8, 0x38(fp)               |     t8 = *(arg_38h);
                                             | label_2:
    0x0040df20 move v0, t8                   |     v0 = t8;
    0x0040df24 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040df28 lw v1, 0x4c(fp)               |     v1 = *(arg_4ch);
    0x0040df2c lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040df30 beq v1, t8, 0x40df48          |         
    0x0040df34 nop                           |         
    0x0040df38 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040df3c move t9, t8                   |         t9 = t8;
    0x0040df40 jalr t9                       |         t9 ();
    0x0040df44 nop                           |         
                                             |     }
    0x0040df48 move sp, fp                   |     
    0x0040df4c lw ra, 0x5c(sp)               |     ra = *(var_5ch);
    0x0040df50 lw fp, 0x58(sp)               |     fp = *(var_58h);
    0x0040df54 lw s0, 0x54(sp)               |     s0 = *(var_54h);
    0x0040df58 addiu sp, sp, 0x60            |     
    0x0040df5c jr ra                         |     return v1;
    0x0040df60 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40df64 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) aav.0x0040df64 ()                | void aav_0x0040df64 () {
    0x0040df64 lui gp, 2                     |     
    0x0040df68 addiu gp, gp, -0x2f44         |     
    0x0040df6c addu gp, gp, t9               |     gp += t9;
    0x0040df70 addiu sp, sp, -0x2058         |     
    0x0040df74 sw ra, 0x2054(sp)             |     *(arg_2054h) = ra;
    0x0040df78 sw fp, 0x2050(sp)             |     *(arg_2050h) = fp;
    0x0040df7c sw s1, 0x204c(sp)             |     *(arg_204ch) = s1;
    0x0040df80 sw s0, 0x2048(sp)             |     *(arg_2048h) = s0;
    0x0040df84 move fp, sp                   |     fp = sp;
    0x0040df88 sw gp, 0x20(sp)               |     *(arg_20h) = gp;
    0x0040df8c sw a0, 0x2c(fp)               |     *(arg_2ch) = a0;
    0x0040df90 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040df94 lw t8, (t8)                   |     t8 = *(t8);
    0x0040df98 sw t8, 0x2044(fp)             |     *(arg_2044h) = t8;
    0x0040df9c lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
                                             |     if (t8 == 0) {
    0x0040dfa0 bnez t8, 0x40e018             |         
    0x0040dfa4 nop                           |         
    0x0040dfa8 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040dfac lw s0, (t8)                   |         s0 = *(t8);
    0x0040dfb0 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040dc10 */
    0x0040dfb4 addiu t8, t8, -0x23f0         |         t8 += -0x23f0;
    0x0040dfb8 move t9, t8                   |         t9 = t8;
    0x0040dfbc jalr t9                       |         t9 ();
    0x0040dfc0 nop                           |         
    0x0040dfc4 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040dfc8 move t8, v0                   |         t8 = v0;
    0x0040dfcc lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.proxy_rtsp_to_relay */
    0x0040dfd0 addiu v0, v0, 0x1330          |         v0 += 0x1330;
    0x0040dfd4 sw v0, 0x10(sp)               |         *(arg_10h) = v0;
    0x0040dfd8 addiu v0, zero, 0x21          |         v0 = 0x21;
    0x0040dfdc sw v0, 0x14(sp)               |         *(arg_14h) = v0;
    0x0040dfe0 move a0, s0                   |         a0 = s0;
    0x0040dfe4 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_NULL_parameter__n */
    0x0040dfe8 addiu a1, v0, 0x10b4          |         a1 = v0 + 0x10b4;
    0x0040dfec move a2, t8                   |         a2 = t8;
    0x0040dff0 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.e_1_31mERRORe_0m */
    0x0040dff4 addiu a3, t8, 0x10e0          |         a3 = t8 + 0x10e0;
    0x0040dff8 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040dffc move t9, t8                   |         t9 = t8;
    0x0040e000 jalr t9                       |         t9 ();
    0x0040e004 nop                           |         
    0x0040e008 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e00c addiu t8, zero, -1            |         t8 = -1;
    0x0040e010 b 0x40e3b8                    |         goto label_0;
    0x0040e014 nop                           |         
                                             |     }
    0x0040e018 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x0040e01c lw t8, 4(t8)                  |     t8 = *((t8 + 1));
    0x0040e020 sw t8, 0x38(fp)               |     *(arg_38h) = t8;
    0x0040e024 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x0040e028 lw t8, 8(t8)                  |     t8 = *((t8 + 2));
    0x0040e02c sw t8, 0x3c(fp)               |     *(arg_3ch) = t8;
    0x0040e030 addiu v0, fp, 0x44            |     v0 = fp + 0x44;
    0x0040e034 addiu t8, zero, 0x2000        |     t8 = 0x2000;
    0x0040e038 move a0, v0                   |     a0 = v0;
    0x0040e03c move a1, zero                 |     a1 = 0;
    0x0040e040 move a2, t8                   |     a2 = t8;
    0x0040e044 lw t8, -0x7ecc(gp)            |     t8 = sym.imp.memset;
    0x0040e048 move t9, t8                   |     t9 = t8;
    0x0040e04c jalr t9                       |     t9 ();
    0x0040e050 nop                           |     
    0x0040e054 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040e058 sw zero, 0x40(fp)             |     *(arg_40h) = 0;
    0x0040e05c addiu t8, fp, 0x44            |     t8 = fp + 0x44;
    0x0040e060 lw a0, 0x38(fp)               |     a0 = *(arg_38h);
    0x0040e064 move a1, t8                   |     a1 = t8;
    0x0040e068 addiu a2, zero, 0x2000        |     a2 = 0x2000;
    0x0040e06c lw t8, -0x7f58(gp)            |     t8 = sym.conn_read;
    0x0040e070 move t9, t8                   |     t9 = t8;
    0x0040e074 jalr t9                       |     t9 ();
    0x0040e078 nop                           |     
    0x0040e07c lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040e080 move t8, v0                   |     t8 = v0;
    0x0040e084 sw t8, 0x40(fp)               |     *(arg_40h) = t8;
    0x0040e088 lw t8, 0x40(fp)               |     t8 = *(arg_40h);
                                             |     if (t8 == 0) {
    0x0040e08c bnez t8, 0x40e104             |         
    0x0040e090 nop                           |         
    0x0040e094 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040e098 lw s0, (t8)                   |         s0 = *(t8);
    0x0040e09c lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040dc10 */
    0x0040e0a0 addiu t8, t8, -0x23f0         |         t8 += -0x23f0;
    0x0040e0a4 move t9, t8                   |         t9 = t8;
    0x0040e0a8 jalr t9                       |         t9 ();
    0x0040e0ac nop                           |         
    0x0040e0b0 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e0b4 move t8, v0                   |         t8 = v0;
    0x0040e0b8 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.proxy_rtsp_to_relay */
    0x0040e0bc addiu v0, v0, 0x1330          |         v0 += 0x1330;
    0x0040e0c0 sw v0, 0x10(sp)               |         *(arg_10h) = v0;
    0x0040e0c4 addiu v0, zero, 0x2a          |         v0 = 0x2a;
    0x0040e0c8 sw v0, 0x14(sp)               |         *(arg_14h) = v0;
    0x0040e0cc move a0, s0                   |         a0 = s0;
    0x0040e0d0 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_conn_read__:_End_of_Stream__n */
    0x0040e0d4 addiu a1, v0, 0x1130          |         a1 = v0 + 0x1130;
    0x0040e0d8 move a2, t8                   |         a2 = t8;
    0x0040e0dc lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.e_1_35mWARNINGe_0m */
    0x0040e0e0 addiu a3, t8, 0x1168          |         a3 = t8 + 0x1168;
    0x0040e0e4 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040e0e8 move t9, t8                   |         t9 = t8;
    0x0040e0ec jalr t9                       |         t9 ();
    0x0040e0f0 nop                           |         
    0x0040e0f4 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e0f8 addiu t8, zero, -1            |         t8 = -1;
    0x0040e0fc b 0x40e3b8                    |         goto label_0;
    0x0040e100 nop                           |         
                                             |     }
    0x0040e104 lw t8, 0x40(fp)               |     t8 = *(arg_40h);
                                             |     if (t8 < 0) {
    0x0040e108 bgez t8, 0x40e1bc             |         
    0x0040e10c nop                           |         
    0x0040e110 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040e114 lw s1, (t8)                   |         s1 = *(t8);
    0x0040e118 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040dc10 */
    0x0040e11c addiu t8, t8, -0x23f0         |         t8 += -0x23f0;
    0x0040e120 move t9, t8                   |         t9 = t8;
    0x0040e124 jalr t9                       |         t9 ();
    0x0040e128 nop                           |         
    0x0040e12c lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e130 move s0, v0                   |         s0 = v0;
    0x0040e134 lw t8, -0x7e20(gp)            |         t8 = sym.imp.__errno_location;
    0x0040e138 move t9, t8                   |         t9 = t8;
    0x0040e13c jalr t9                       |         t9 ();
    0x0040e140 nop                           |         
    0x0040e144 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e148 move t8, v0                   |         t8 = v0;
    0x0040e14c lw t8, (t8)                   |         t8 = *(t8);
    0x0040e150 move a0, t8                   |         a0 = t8;
    0x0040e154 lw t8, -0x7f20(gp)            |         t8 = sym.imp.strerror;
    0x0040e158 move t9, t8                   |         t9 = t8;
    0x0040e15c jalr t9                       |         t9 ();
    0x0040e160 nop                           |         
    0x0040e164 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e168 move t8, v0                   |         t8 = v0;
    0x0040e16c lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.proxy_rtsp_to_relay */
    0x0040e170 addiu v0, v0, 0x1330          |         v0 += 0x1330;
    0x0040e174 sw v0, 0x10(sp)               |         *(arg_10h) = v0;
    0x0040e178 addiu v0, zero, 0x2b          |         v0 = 0x2b;
    0x0040e17c sw v0, 0x14(sp)               |         *(arg_14h) = v0;
    0x0040e180 sw t8, 0x18(sp)               |         *(arg_18h) = t8;
    0x0040e184 move a0, s1                   |         a0 = s1;
    0x0040e188 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_conn_read___fail___s_n */
    0x0040e18c addiu a1, t8, 0x117c          |         a1 = t8 + 0x117c;
    0x0040e190 move a2, s0                   |         a2 = s0;
    0x0040e194 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.e_1_31mERRORe_0m */
    0x0040e198 addiu a3, t8, 0x10e0          |         a3 = t8 + 0x10e0;
    0x0040e19c lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040e1a0 move t9, t8                   |         t9 = t8;
    0x0040e1a4 jalr t9                       |         t9 ();
    0x0040e1a8 nop                           |         
    0x0040e1ac lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e1b0 addiu t8, zero, -1            |         t8 = -1;
    0x0040e1b4 b 0x40e3b8                    |         goto label_0;
    0x0040e1b8 nop                           |         
                                             |     }
    0x0040e1bc sw zero, 0x34(fp)             |     *(arg_34h) = 0;
    0x0040e1c0 b 0x40e2b4                    |     goto label_1;
    0x0040e1c4 nop                           |     
                                             |     do {
    0x0040e1c8 lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040e1cc addiu v0, fp, 0x44            |         v0 = fp + 0x44;
    0x0040e1d0 addu t8, v0, t8               |         t8 = v0 + t8;
    0x0040e1d4 move a0, t8                   |         a0 = t8;
    0x0040e1d8 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.RTSP_1.0 */
    0x0040e1dc addiu a1, t8, 0x11ac          |         a1 = t8 + 0x11ac;
    0x0040e1e0 addiu a2, zero, 8             |         a2 = 8;
    0x0040e1e4 lw t8, -0x7eec(gp)            |         t8 = sym.imp.memcmp;
    0x0040e1e8 move t9, t8                   |         t9 = t8;
    0x0040e1ec jalr t9                       |         t9 ();
    0x0040e1f0 nop                           |         
    0x0040e1f4 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e1f8 move t8, v0                   |         t8 = v0;
                                             |         if (t8 == 0) {
    0x0040e1fc bnez t8, 0x40e2a8             |             
    0x0040e200 nop                           |             
    0x0040e204 lw t8, -0x7e90(gp)            |             t8 = *((gp - 8100));
    0x0040e208 lw s1, (t8)                   |             s1 = *(t8);
    0x0040e20c lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* aav.0x0040dc10 */
    0x0040e210 addiu t8, t8, -0x23f0         |             t8 += -0x23f0;
    0x0040e214 move t9, t8                   |             t9 = t8;
    0x0040e218 jalr t9                       |             t9 ();
    0x0040e21c nop                           |             
    0x0040e220 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040e224 move s0, v0                   |             s0 = v0;
    0x0040e228 lw t8, 0x34(fp)               |             t8 = *(arg_34h);
    0x0040e22c addiu v0, fp, 0x44            |             v0 = fp + 0x44;
    0x0040e230 addu t8, v0, t8               |             t8 = v0 + t8;
    0x0040e234 move a0, t8                   |             a0 = t8;
    0x0040e238 lw t8, -0x7e48(gp)            |             t8 = sym.imp.strlen;
    0x0040e23c move t9, t8                   |             t9 = t8;
    0x0040e240 jalr t9                       |             t9 ();
    0x0040e244 nop                           |             
    0x0040e248 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040e24c lw t8, 0x34(fp)               |             t8 = *(arg_34h);
    0x0040e250 addiu v1, fp, 0x44            |             v1 = fp + 0x44;
    0x0040e254 addu t8, v1, t8               |             t8 = v1 + t8;
    0x0040e258 lw v1, -0x7fd8(gp)            |             v1 = *((gp - 8182));
                                             |             /* str.proxy_rtsp_to_relay */
    0x0040e25c addiu v1, v1, 0x1330          |             v1 += 0x1330;
    0x0040e260 sw v1, 0x10(sp)               |             *(arg_10h) = v1;
    0x0040e264 addiu v1, zero, 0x31          |             v1 = 0x31;
    0x0040e268 sw v1, 0x14(sp)               |             *(arg_14h) = v1;
    0x0040e26c sw v0, 0x18(sp)               |             *(arg_18h) = v0;
    0x0040e270 sw t8, 0x1c(sp)               |             *(arg_1ch) = t8;
    0x0040e274 move a0, s1                   |             a0 = s1;
    0x0040e278 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* str._s____18s____24s__5d_e_0_33m_d_n_s_ne_m */
    0x0040e27c addiu a1, t8, 0x11b8          |             a1 = t8 + 0x11b8;
    0x0040e280 move a2, s0                   |             a2 = s0;
    0x0040e284 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* str.e_1_33mINFOe_0m */
    0x0040e288 addiu a3, t8, 0x11e4          |             a3 = t8 + 0x11e4;
    0x0040e28c lw t8, -0x7ee0(gp)            |             t8 = sym.imp.fprintf
    0x0040e290 move t9, t8                   |             t9 = t8;
    0x0040e294 jalr t9                       |             t9 ();
    0x0040e298 nop                           |             
    0x0040e29c lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040e2a0 b 0x40e2cc                    |             goto label_2;
    0x0040e2a4 nop                           |             
                                             |         }
    0x0040e2a8 lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040e2ac addiu t8, t8, 1               |         t8++;
    0x0040e2b0 sw t8, 0x34(fp)               |         *(arg_34h) = t8;
                                             | label_1:
    0x0040e2b4 lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040e2b8 addiu v0, t8, 8               |         v0 = t8 + 8;
    0x0040e2bc lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x0040e2c0 slt t8, v0, t8                |         t8 = (v0 < t8) ? 1 : 0;
    0x0040e2c4 bnez t8, 0x40e1c8             |         
                                             |     } while (t8 != 0);
    0x0040e2c8 nop                           |     
                                             | label_2:
    0x0040e2cc lw t8, 0x40(fp)               |     t8 = *(arg_40h);
    0x0040e2d0 addiu v0, fp, 0x44            |     v0 = fp + 0x44;
    0x0040e2d4 lw a0, 0x3c(fp)               |     a0 = *(arg_3ch);
    0x0040e2d8 move a1, v0                   |     a1 = v0;
    0x0040e2dc move a2, t8                   |     a2 = t8;
    0x0040e2e0 lw t8, -0x7f54(gp)            |     t8 = sym.conn_write;
    0x0040e2e4 move t9, t8                   |     t9 = t8;
    0x0040e2e8 jalr t9                       |     t9 ();
    0x0040e2ec nop                           |     
    0x0040e2f0 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040e2f4 move t8, v0                   |     t8 = v0;
    0x0040e2f8 sw t8, 0x40(fp)               |     *(arg_40h) = t8;
    0x0040e2fc lw t8, 0x40(fp)               |     t8 = *(arg_40h);
                                             |     if (t8 <= 0) {
    0x0040e300 bgtz t8, 0x40e3b4             |         
    0x0040e304 nop                           |         
    0x0040e308 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040e30c lw s1, (t8)                   |         s1 = *(t8);
    0x0040e310 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040dc10 */
    0x0040e314 addiu t8, t8, -0x23f0         |         t8 += -0x23f0;
    0x0040e318 move t9, t8                   |         t9 = t8;
    0x0040e31c jalr t9                       |         t9 ();
    0x0040e320 nop                           |         
    0x0040e324 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e328 move s0, v0                   |         s0 = v0;
    0x0040e32c lw t8, -0x7e20(gp)            |         t8 = sym.imp.__errno_location;
    0x0040e330 move t9, t8                   |         t9 = t8;
    0x0040e334 jalr t9                       |         t9 ();
    0x0040e338 nop                           |         
    0x0040e33c lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e340 move t8, v0                   |         t8 = v0;
    0x0040e344 lw t8, (t8)                   |         t8 = *(t8);
    0x0040e348 move a0, t8                   |         a0 = t8;
    0x0040e34c lw t8, -0x7f20(gp)            |         t8 = sym.imp.strerror;
    0x0040e350 move t9, t8                   |         t9 = t8;
    0x0040e354 jalr t9                       |         t9 ();
    0x0040e358 nop                           |         
    0x0040e35c lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e360 move t8, v0                   |         t8 = v0;
    0x0040e364 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.proxy_rtsp_to_relay */
    0x0040e368 addiu v0, v0, 0x1330          |         v0 += 0x1330;
    0x0040e36c sw v0, 0x10(sp)               |         *(arg_10h) = v0;
    0x0040e370 addiu v0, zero, 0x38          |         v0 = 0x38;
    0x0040e374 sw v0, 0x14(sp)               |         *(arg_14h) = v0;
    0x0040e378 sw t8, 0x18(sp)               |         *(arg_18h) = t8;
    0x0040e37c move a0, s1                   |         a0 = s1;
    0x0040e380 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_conn_write___fail___s_n */
    0x0040e384 addiu a1, t8, 0x11f4          |         a1 = t8 + 0x11f4;
    0x0040e388 move a2, s0                   |         a2 = s0;
    0x0040e38c lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.e_1_31mERRORe_0m */
    0x0040e390 addiu a3, t8, 0x10e0          |         a3 = t8 + 0x10e0;
    0x0040e394 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040e398 move t9, t8                   |         t9 = t8;
    0x0040e39c jalr t9                       |         t9 ();
    0x0040e3a0 nop                           |         
    0x0040e3a4 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e3a8 addiu t8, zero, -1            |         t8 = -1;
    0x0040e3ac b 0x40e3b8                    |         goto label_0;
    0x0040e3b0 nop                           |         
                                             |     }
    0x0040e3b4 move t8, zero                 |     t8 = 0;
                                             | label_0:
    0x0040e3b8 move v0, t8                   |     v0 = t8;
    0x0040e3bc lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040e3c0 lw v1, 0x2044(fp)             |     v1 = *(arg_2044h);
    0x0040e3c4 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040e3c8 beq v1, t8, 0x40e3e0          |         
    0x0040e3cc nop                           |         
    0x0040e3d0 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040e3d4 move t9, t8                   |         t9 = t8;
    0x0040e3d8 jalr t9                       |         t9 ();
    0x0040e3dc nop                           |         
                                             |     }
    0x0040e3e0 move sp, fp                   |     
    0x0040e3e4 lw ra, 0x2054(sp)             |     ra = *(arg_2054h);
    0x0040e3e8 lw fp, 0x2050(sp)             |     fp = *(arg_2050h);
    0x0040e3ec lw s1, 0x204c(sp)             |     s1 = *(arg_204ch);
    0x0040e3f0 lw s0, 0x2048(sp)             |     s0 = *(arg_2048h);
    0x0040e3f4 addiu sp, sp, 0x2058          |     
    0x0040e3f8 jr ra                         |     return v1;
    0x0040e3fc nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40e400 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) aav.0x0040e400 ()                | void aav_0x0040e400 () {
    0x0040e400 lui gp, 2                     |     
    0x0040e404 addiu gp, gp, -0x33e0         |     
    0x0040e408 addu gp, gp, t9               |     gp += t9;
    0x0040e40c addiu sp, sp, -0x2078         |     
    0x0040e410 sw ra, 0x2074(sp)             |     *(arg_2074h) = ra;
    0x0040e414 sw fp, 0x2070(sp)             |     *(arg_2070h) = fp;
    0x0040e418 sw s1, 0x206c(sp)             |     *(arg_206ch) = s1;
    0x0040e41c sw s0, 0x2068(sp)             |     *(arg_2068h) = s0;
    0x0040e420 move fp, sp                   |     fp = sp;
    0x0040e424 sw gp, 0x20(sp)               |     *(arg_20h) = gp;
    0x0040e428 sw a0, 0x2c(fp)               |     *(arg_2ch) = a0;
    0x0040e42c lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040e430 lw t8, (t8)                   |     t8 = *(t8);
    0x0040e434 sw t8, 0x2064(fp)             |     *(arg_2064h) = t8;
    0x0040e438 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
                                             |     if (t8 == 0) {
    0x0040e43c bnez t8, 0x40e4b4             |         
    0x0040e440 nop                           |         
    0x0040e444 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040e448 lw s0, (t8)                   |         s0 = *(t8);
    0x0040e44c lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040dc10 */
    0x0040e450 addiu t8, t8, -0x23f0         |         t8 += -0x23f0;
    0x0040e454 move t9, t8                   |         t9 = t8;
    0x0040e458 jalr t9                       |         t9 ();
    0x0040e45c nop                           |         
    0x0040e460 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e464 move t8, v0                   |         t8 = v0;
    0x0040e468 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.proxy_relay_to_rtsp */
    0x0040e46c addiu v0, v0, 0x1344          |         v0 += 0x1344;
    0x0040e470 sw v0, 0x10(sp)               |         *(arg_10h) = v0;
    0x0040e474 addiu v0, zero, 0x41          |         v0 = 0x41;
    0x0040e478 sw v0, 0x14(sp)               |         *(arg_14h) = v0;
    0x0040e47c move a0, s0                   |         a0 = s0;
    0x0040e480 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_NULL_parameter__n */
    0x0040e484 addiu a1, v0, 0x10b4          |         a1 = v0 + 0x10b4;
    0x0040e488 move a2, t8                   |         a2 = t8;
    0x0040e48c lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.e_1_31mERRORe_0m */
    0x0040e490 addiu a3, t8, 0x10e0          |         a3 = t8 + 0x10e0;
    0x0040e494 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040e498 move t9, t8                   |         t9 = t8;
    0x0040e49c jalr t9                       |         t9 ();
    0x0040e4a0 nop                           |         
    0x0040e4a4 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e4a8 addiu t8, zero, -1            |         t8 = -1;
    0x0040e4ac b 0x40ea98                    |         goto label_0;
    0x0040e4b0 nop                           |         
                                             |     }
    0x0040e4b4 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x0040e4b8 lw t8, 4(t8)                  |     t8 = *((t8 + 1));
    0x0040e4bc sw t8, 0x3c(fp)               |     *(arg_3ch) = t8;
    0x0040e4c0 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x0040e4c4 lw t8, 8(t8)                  |     t8 = *((t8 + 2));
    0x0040e4c8 sw t8, 0x40(fp)               |     *(arg_40h) = t8;
    0x0040e4cc sw zero, 0x34(fp)             |     *(arg_34h) = 0;
    0x0040e4d0 addiu v0, fp, 0x64            |     v0 = fp + 0x64;
    0x0040e4d4 addiu t8, zero, 0x2000        |     t8 = 0x2000;
    0x0040e4d8 move a0, v0                   |     a0 = v0;
    0x0040e4dc move a1, zero                 |     a1 = 0;
    0x0040e4e0 move a2, t8                   |     a2 = t8;
    0x0040e4e4 lw t8, -0x7ecc(gp)            |     t8 = sym.imp.memset;
    0x0040e4e8 move t9, t8                   |     t9 = t8;
    0x0040e4ec jalr t9                       |     t9 ();
    0x0040e4f0 nop                           |     
    0x0040e4f4 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040e4f8 sw zero, 0x38(fp)             |     *(arg_38h) = 0;
    0x0040e4fc addiu t8, fp, 0x64            |     t8 = fp + 0x64;
    0x0040e500 lw a0, 0x40(fp)               |     a0 = *(arg_40h);
    0x0040e504 move a1, t8                   |     a1 = t8;
    0x0040e508 addiu a2, zero, 0x2000        |     a2 = 0x2000;
    0x0040e50c lw t8, -0x7f58(gp)            |     t8 = sym.conn_read;
    0x0040e510 move t9, t8                   |     t9 = t8;
    0x0040e514 jalr t9                       |     t9 ();
    0x0040e518 nop                           |     
    0x0040e51c lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040e520 move t8, v0                   |     t8 = v0;
    0x0040e524 sw t8, 0x38(fp)               |     *(arg_38h) = t8;
    0x0040e528 lw t8, 0x38(fp)               |     t8 = *(arg_38h);
                                             |     if (t8 == 0) {
    0x0040e52c bnez t8, 0x40e5a4             |         
    0x0040e530 nop                           |         
    0x0040e534 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040e538 lw s0, (t8)                   |         s0 = *(t8);
    0x0040e53c lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040dc10 */
    0x0040e540 addiu t8, t8, -0x23f0         |         t8 += -0x23f0;
    0x0040e544 move t9, t8                   |         t9 = t8;
    0x0040e548 jalr t9                       |         t9 ();
    0x0040e54c nop                           |         
    0x0040e550 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e554 move t8, v0                   |         t8 = v0;
    0x0040e558 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.proxy_relay_to_rtsp */
    0x0040e55c addiu v0, v0, 0x1344          |         v0 += 0x1344;
    0x0040e560 sw v0, 0x10(sp)               |         *(arg_10h) = v0;
    0x0040e564 addiu v0, zero, 0x4b          |         v0 = 0x4b;
    0x0040e568 sw v0, 0x14(sp)               |         *(arg_14h) = v0;
    0x0040e56c move a0, s0                   |         a0 = s0;
    0x0040e570 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_conn_read__:_End_of_Stream__n */
    0x0040e574 addiu a1, v0, 0x1130          |         a1 = v0 + 0x1130;
    0x0040e578 move a2, t8                   |         a2 = t8;
    0x0040e57c lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.e_1_35mWARNINGe_0m */
    0x0040e580 addiu a3, t8, 0x1168          |         a3 = t8 + 0x1168;
    0x0040e584 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040e588 move t9, t8                   |         t9 = t8;
    0x0040e58c jalr t9                       |         t9 ();
    0x0040e590 nop                           |         
    0x0040e594 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e598 addiu t8, zero, -1            |         t8 = -1;
    0x0040e59c b 0x40ea98                    |         goto label_0;
    0x0040e5a0 nop                           |         
                                             |     }
    0x0040e5a4 lw t8, 0x38(fp)               |     t8 = *(arg_38h);
                                             |     if (t8 < 0) {
    0x0040e5a8 bgez t8, 0x40e65c             |         
    0x0040e5ac nop                           |         
    0x0040e5b0 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040e5b4 lw s1, (t8)                   |         s1 = *(t8);
    0x0040e5b8 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040dc10 */
    0x0040e5bc addiu t8, t8, -0x23f0         |         t8 += -0x23f0;
    0x0040e5c0 move t9, t8                   |         t9 = t8;
    0x0040e5c4 jalr t9                       |         t9 ();
    0x0040e5c8 nop                           |         
    0x0040e5cc lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e5d0 move s0, v0                   |         s0 = v0;
    0x0040e5d4 lw t8, -0x7e20(gp)            |         t8 = sym.imp.__errno_location;
    0x0040e5d8 move t9, t8                   |         t9 = t8;
    0x0040e5dc jalr t9                       |         t9 ();
    0x0040e5e0 nop                           |         
    0x0040e5e4 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e5e8 move t8, v0                   |         t8 = v0;
    0x0040e5ec lw t8, (t8)                   |         t8 = *(t8);
    0x0040e5f0 move a0, t8                   |         a0 = t8;
    0x0040e5f4 lw t8, -0x7f20(gp)            |         t8 = sym.imp.strerror;
    0x0040e5f8 move t9, t8                   |         t9 = t8;
    0x0040e5fc jalr t9                       |         t9 ();
    0x0040e600 nop                           |         
    0x0040e604 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e608 move t8, v0                   |         t8 = v0;
    0x0040e60c lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.proxy_relay_to_rtsp */
    0x0040e610 addiu v0, v0, 0x1344          |         v0 += 0x1344;
    0x0040e614 sw v0, 0x10(sp)               |         *(arg_10h) = v0;
    0x0040e618 addiu v0, zero, 0x4c          |         v0 = 0x4c;
    0x0040e61c sw v0, 0x14(sp)               |         *(arg_14h) = v0;
    0x0040e620 sw t8, 0x18(sp)               |         *(arg_18h) = t8;
    0x0040e624 move a0, s1                   |         a0 = s1;
    0x0040e628 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_conn_read___fail___s_n */
    0x0040e62c addiu a1, t8, 0x117c          |         a1 = t8 + 0x117c;
    0x0040e630 move a2, s0                   |         a2 = s0;
    0x0040e634 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.e_1_31mERRORe_0m */
    0x0040e638 addiu a3, t8, 0x10e0          |         a3 = t8 + 0x10e0;
    0x0040e63c lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040e640 move t9, t8                   |         t9 = t8;
    0x0040e644 jalr t9                       |         t9 ();
    0x0040e648 nop                           |         
    0x0040e64c lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e650 addiu t8, zero, -1            |         t8 = -1;
    0x0040e654 b 0x40ea98                    |         goto label_0;
    0x0040e658 nop                           |         
                                             |     }
    0x0040e65c lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040e660 lw s0, (t8)                   |     s0 = *(t8);
    0x0040e664 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040dc10 */
    0x0040e668 addiu t8, t8, -0x23f0         |     t8 += -0x23f0;
    0x0040e66c move t9, t8                   |     t9 = t8;
    0x0040e670 jalr t9                       |     t9 ();
    0x0040e674 nop                           |     
    0x0040e678 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040e67c move t8, v0                   |     t8 = v0;
    0x0040e680 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str.proxy_relay_to_rtsp */
    0x0040e684 addiu v0, v0, 0x1344          |     v0 += 0x1344;
    0x0040e688 sw v0, 0x10(sp)               |     *(arg_10h) = v0;
    0x0040e68c addiu v0, zero, 0x4d          |     v0 = 0x4d;
    0x0040e690 sw v0, 0x14(sp)               |     *(arg_14h) = v0;
    0x0040e694 lw v0, 0x38(fp)               |     v0 = *(arg_38h);
    0x0040e698 sw v0, 0x18(sp)               |     *(arg_18h) = v0;
    0x0040e69c addiu v0, fp, 0x64            |     v0 = fp + 0x64;
    0x0040e6a0 sw v0, 0x1c(sp)               |     *(arg_1ch) = v0;
    0x0040e6a4 move a0, s0                   |     a0 = s0;
    0x0040e6a8 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d_e_0_33m_d_n_s_ne_m */
    0x0040e6ac addiu a1, v0, 0x11b8          |     a1 = v0 + 0x11b8;
    0x0040e6b0 move a2, t8                   |     a2 = t8;
    0x0040e6b4 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* str.e_1_33mINFOe_0m */
    0x0040e6b8 addiu a3, t8, 0x11e4          |     a3 = t8 + 0x11e4;
    0x0040e6bc lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040e6c0 move t9, t8                   |     t9 = t8;
    0x0040e6c4 jalr t9                       |     t9 ();
    0x0040e6c8 nop                           |     
    0x0040e6cc lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040e6d0 addiu t8, fp, 0x64            |     t8 = fp + 0x64;
    0x0040e6d4 move a0, t8                   |     a0 = t8;
    0x0040e6d8 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* str.Transport:_RTP_AVP_UDP_unicast_ */
    0x0040e6dc addiu a1, t8, 0x1224          |     a1 = t8 + 0x1224;
    0x0040e6e0 lw t8, -0x7efc(gp)            |     t8 = sym.imp.strstr;
    0x0040e6e4 move t9, t8                   |     t9 = t8;
    0x0040e6e8 jalr t9                       |     t9 ();
    0x0040e6ec nop                           |     
    0x0040e6f0 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040e6f4 move t8, v0                   |     t8 = v0;
                                             |     if (t8 != 0) {
    0x0040e6f8 beqz t8, 0x40e86c             |         
    0x0040e6fc nop                           |         
    0x0040e700 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x0040e704 lw t0, 0x128c(t8)             |         t0 = *((t8 + 1187));
                                             |         /* str.RTSP_1.0_406_Not_Acceptable_r_n_r_n */
    0x0040e708 addiu v0, t8, 0x128c          |         v0 = t8 + 0x128c;
    0x0040e70c lw a3, 4(v0)                  |         a3 = *((v0 + 1));
                                             |         /* str.RTSP_1.0_406_Not_Acceptable_r_n_r_n */
    0x0040e710 addiu v0, t8, 0x128c          |         v0 = t8 + 0x128c;
    0x0040e714 lw a2, 8(v0)                  |         a2 = *((v0 + 2));
                                             |         /* str.RTSP_1.0_406_Not_Acceptable_r_n_r_n */
    0x0040e718 addiu v0, t8, 0x128c          |         v0 = t8 + 0x128c;
    0x0040e71c lw a1, 0xc(v0)                |         a1 = *((v0 + 3));
                                             |         /* str.RTSP_1.0_406_Not_Acceptable_r_n_r_n */
    0x0040e720 addiu v0, t8, 0x128c          |         v0 = t8 + 0x128c;
    0x0040e724 lw a0, 0x10(v0)               |         a0 = *((v0 + 4));
                                             |         /* str.RTSP_1.0_406_Not_Acceptable_r_n_r_n */
    0x0040e728 addiu v0, t8, 0x128c          |         v0 = t8 + 0x128c;
    0x0040e72c lw v1, 0x14(v0)               |         v1 = *((v0 + 5));
                                             |         /* str.RTSP_1.0_406_Not_Acceptable_r_n_r_n */
    0x0040e730 addiu v0, t8, 0x128c          |         v0 = t8 + 0x128c;
    0x0040e734 lw v0, 0x18(v0)               |         v0 = *((v0 + 6));
                                             |         /* str.RTSP_1.0_406_Not_Acceptable_r_n_r_n */
    0x0040e738 addiu t8, t8, 0x128c          |         t8 += 0x128c;
    0x0040e73c lw t8, 0x1c(t8)               |         t8 = *((t8 + 7));
    0x0040e740 sw t0, 0x44(fp)               |         *(arg_44h) = t0;
    0x0040e744 sw a3, 0x48(fp)               |         *(arg_48h) = a3;
    0x0040e748 sw a2, 0x4c(fp)               |         *(arg_4ch) = a2;
    0x0040e74c sw a1, 0x50(fp)               |         *(arg_50h) = a1;
    0x0040e750 sw a0, 0x54(fp)               |         *(arg_54h) = a0;
    0x0040e754 sw v1, 0x58(fp)               |         *(arg_58h) = v1;
    0x0040e758 sw v0, 0x5c(fp)               |         *(arg_5ch) = v0;
    0x0040e75c sw t8, 0x60(fp)               |         *(arg_60h) = t8;
    0x0040e760 addiu t8, fp, 0x44            |         t8 = fp + 0x44;
    0x0040e764 move a0, t8                   |         a0 = t8;
    0x0040e768 lw t8, -0x7e48(gp)            |         t8 = sym.imp.strlen;
    0x0040e76c move t9, t8                   |         t9 = t8;
    0x0040e770 jalr t9                       |         t9 ();
    0x0040e774 nop                           |         
    0x0040e778 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e77c move t8, v0                   |         t8 = v0;
    0x0040e780 addiu v0, fp, 0x44            |         v0 = fp + 0x44;
    0x0040e784 lw a0, 0x40(fp)               |         a0 = *(arg_40h);
    0x0040e788 move a1, v0                   |         a1 = v0;
    0x0040e78c move a2, t8                   |         a2 = t8;
    0x0040e790 lw t8, -0x7f54(gp)            |         t8 = sym.conn_write;
    0x0040e794 move t9, t8                   |         t9 = t8;
    0x0040e798 jalr t9                       |         t9 ();
    0x0040e79c nop                           |         
    0x0040e7a0 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e7a4 move t8, v0                   |         t8 = v0;
    0x0040e7a8 sw t8, 0x38(fp)               |         *(arg_38h) = t8;
    0x0040e7ac lw t8, 0x38(fp)               |         t8 = *(arg_38h);
                                             |         if (t8 <= 0) {
    0x0040e7b0 bgtz t8, 0x40e864             |             
    0x0040e7b4 nop                           |             
    0x0040e7b8 lw t8, -0x7e90(gp)            |             t8 = *((gp - 8100));
    0x0040e7bc lw s1, (t8)                   |             s1 = *(t8);
    0x0040e7c0 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* aav.0x0040dc10 */
    0x0040e7c4 addiu t8, t8, -0x23f0         |             t8 += -0x23f0;
    0x0040e7c8 move t9, t8                   |             t9 = t8;
    0x0040e7cc jalr t9                       |             t9 ();
    0x0040e7d0 nop                           |             
    0x0040e7d4 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040e7d8 move s0, v0                   |             s0 = v0;
    0x0040e7dc lw t8, -0x7e20(gp)            |             t8 = sym.imp.__errno_location;
    0x0040e7e0 move t9, t8                   |             t9 = t8;
    0x0040e7e4 jalr t9                       |             t9 ();
    0x0040e7e8 nop                           |             
    0x0040e7ec lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040e7f0 move t8, v0                   |             t8 = v0;
    0x0040e7f4 lw t8, (t8)                   |             t8 = *(t8);
    0x0040e7f8 move a0, t8                   |             a0 = t8;
    0x0040e7fc lw t8, -0x7f20(gp)            |             t8 = sym.imp.strerror;
    0x0040e800 move t9, t8                   |             t9 = t8;
    0x0040e804 jalr t9                       |             t9 ();
    0x0040e808 nop                           |             
    0x0040e80c lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040e810 move t8, v0                   |             t8 = v0;
    0x0040e814 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str.proxy_relay_to_rtsp */
    0x0040e818 addiu v0, v0, 0x1344          |             v0 += 0x1344;
    0x0040e81c sw v0, 0x10(sp)               |             *(arg_10h) = v0;
    0x0040e820 addiu v0, zero, 0x53          |             v0 = 0x53;
    0x0040e824 sw v0, 0x14(sp)               |             *(arg_14h) = v0;
    0x0040e828 sw t8, 0x18(sp)               |             *(arg_18h) = t8;
    0x0040e82c move a0, s1                   |             a0 = s1;
    0x0040e830 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* str._s____18s____24s__5d_conn_write___fail___s_n */
    0x0040e834 addiu a1, t8, 0x11f4          |             a1 = t8 + 0x11f4;
    0x0040e838 move a2, s0                   |             a2 = s0;
    0x0040e83c lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* str.e_1_31mERRORe_0m */
    0x0040e840 addiu a3, t8, 0x10e0          |             a3 = t8 + 0x10e0;
    0x0040e844 lw t8, -0x7ee0(gp)            |             t8 = sym.imp.fprintf
    0x0040e848 move t9, t8                   |             t9 = t8;
    0x0040e84c jalr t9                       |             t9 ();
    0x0040e850 nop                           |             
    0x0040e854 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040e858 addiu t8, zero, -1            |             t8 = -1;
    0x0040e85c b 0x40ea98                    |             goto label_0;
    0x0040e860 nop                           |             
                                             |         }
    0x0040e864 b 0x40ea94                    |         goto label_1;
    0x0040e868 nop                           |         
                                             |     }
    0x0040e86c lw t8, 0x38(fp)               |     t8 = *(arg_38h);
    0x0040e870 addiu v1, fp, 0x34            |     v1 = fp + 0x34;
    0x0040e874 addiu v0, fp, 0x64            |     v0 = fp + 0x64;
    0x0040e878 move a0, v1                   |     a0 = v1;
    0x0040e87c move a1, v0                   |     a1 = v0;
    0x0040e880 move a2, t8                   |     a2 = t8;
    0x0040e884 lw t8, -0x7f50(gp)            |     t8 = sym.rtsp_message_parse;
    0x0040e888 move t9, t8                   |     t9 = t8;
    0x0040e88c jalr t9                       |     t9 ();
    0x0040e890 nop                           |     
    0x0040e894 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040e898 move t8, v0                   |     t8 = v0;
    0x0040e89c sltu t8, zero, t8             |     t8 = (0 < t8) ? 1 : 0;
    0x0040e8a0 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x0040e8a4 beqz t8, 0x40e91c             |         
    0x0040e8a8 nop                           |         
    0x0040e8ac lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040e8b0 lw s0, (t8)                   |         s0 = *(t8);
    0x0040e8b4 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040dc10 */
    0x0040e8b8 addiu t8, t8, -0x23f0         |         t8 += -0x23f0;
    0x0040e8bc move t9, t8                   |         t9 = t8;
    0x0040e8c0 jalr t9                       |         t9 ();
    0x0040e8c4 nop                           |         
    0x0040e8c8 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e8cc move t8, v0                   |         t8 = v0;
    0x0040e8d0 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.proxy_relay_to_rtsp */
    0x0040e8d4 addiu v0, v0, 0x1344          |         v0 += 0x1344;
    0x0040e8d8 sw v0, 0x10(sp)               |         *(arg_10h) = v0;
    0x0040e8dc addiu v0, zero, 0x58          |         v0 = 0x58;
    0x0040e8e0 sw v0, 0x14(sp)               |         *(arg_14h) = v0;
    0x0040e8e4 move a0, s0                   |         a0 = s0;
    0x0040e8e8 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_rtsp_message_parse___fail__n */
    0x0040e8ec addiu a1, v0, 0x1244          |         a1 = v0 + 0x1244;
    0x0040e8f0 move a2, t8                   |         a2 = t8;
    0x0040e8f4 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.e_1_31mERRORe_0m */
    0x0040e8f8 addiu a3, t8, 0x10e0          |         a3 = t8 + 0x10e0;
    0x0040e8fc lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040e900 move t9, t8                   |         t9 = t8;
    0x0040e904 jalr t9                       |         t9 ();
    0x0040e908 nop                           |         
    0x0040e90c lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040e910 addiu t8, zero, -1            |         t8 = -1;
    0x0040e914 b 0x40ea98                    |         goto label_0;
    0x0040e918 nop                           |         
                                             |     }
    0x0040e91c lw t8, 0x34(fp)               |     t8 = *(arg_34h);
    0x0040e920 lw v0, (t8)                   |     v0 = *(t8);
    0x0040e924 addiu t8, zero, 1             |     t8 = 1;
                                             |     if (v0 != t8) {
    0x0040e928 beq v0, t8, 0x40e944          |         
    0x0040e92c nop                           |         
    0x0040e930 lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040e934 lw v0, (t8)                   |         v0 = *(t8);
    0x0040e938 addiu t8, zero, 2             |         t8 = 2;
                                             |         if (v0 != t8) {
    0x0040e93c bne v0, t8, 0x40e990          |             goto label_2;
                                             |         }
    0x0040e940 nop                           |         
                                             |     }
    0x0040e944 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x0040e948 lw t8, (t8)                   |     t8 = *(t8);
    0x0040e94c lw v0, 0xaac(t8)              |     v0 = *((t8 + 683));
    0x0040e950 addiu t8, fp, 0x64            |     t8 = fp + 0x64;
    0x0040e954 sw v0, 0x10(sp)               |     *(arg_10h) = v0;
    0x0040e958 move a0, t8                   |     a0 = t8;
    0x0040e95c lw a1, 0x38(fp)               |     a1 = *(arg_38h);
    0x0040e960 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* str.127.0.0.1 */
    0x0040e964 addiu a2, t8, 0x127c          |     a2 = t8 + 0x127c;
    0x0040e968 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* esilref: '554' */
    0x0040e96c addiu a3, t8, 0x1288          |     a3 = t8 + 0x1288;
    0x0040e970 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040dcec */
    0x0040e974 addiu t8, t8, -0x2314         |     t8 += -0x2314;
    0x0040e978 move t9, t8                   |     t9 = t8;
    0x0040e97c jalr t9                       |     t9 ();
    0x0040e980 nop                           |     
    0x0040e984 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040e988 move t8, v0                   |     t8 = v0;
    0x0040e98c sw t8, 0x38(fp)               |     *(arg_38h) = t8;
                                             | label_2:
    0x0040e990 lw t8, 0x34(fp)               |     t8 = *(arg_34h);
    0x0040e994 move a0, t8                   |     a0 = t8;
    0x0040e998 lw t8, -0x7f5c(gp)            |     t8 = sym.rtsp_message_free;
    0x0040e99c move t9, t8                   |     t9 = t8;
    0x0040e9a0 jalr t9                       |     t9 ();
    0x0040e9a4 nop                           |     
    0x0040e9a8 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040e9ac lw t8, 0x38(fp)               |     t8 = *(arg_38h);
    0x0040e9b0 addiu v0, fp, 0x64            |     v0 = fp + 0x64;
    0x0040e9b4 lw a0, 0x3c(fp)               |     a0 = *(arg_3ch);
    0x0040e9b8 move a1, v0                   |     a1 = v0;
    0x0040e9bc move a2, t8                   |     a2 = t8;
    0x0040e9c0 lw t8, -0x7f54(gp)            |     t8 = sym.conn_write;
    0x0040e9c4 move t9, t8                   |     t9 = t8;
    0x0040e9c8 jalr t9                       |     t9 ();
    0x0040e9cc nop                           |     
    0x0040e9d0 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040e9d4 move t8, v0                   |     t8 = v0;
    0x0040e9d8 sw t8, 0x38(fp)               |     *(arg_38h) = t8;
    0x0040e9dc lw t8, 0x38(fp)               |     t8 = *(arg_38h);
                                             |     if (t8 <= 0) {
    0x0040e9e0 bgtz t8, 0x40ea94             |         
    0x0040e9e4 nop                           |         
    0x0040e9e8 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040e9ec lw s1, (t8)                   |         s1 = *(t8);
    0x0040e9f0 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040dc10 */
    0x0040e9f4 addiu t8, t8, -0x23f0         |         t8 += -0x23f0;
    0x0040e9f8 move t9, t8                   |         t9 = t8;
    0x0040e9fc jalr t9                       |         t9 ();
    0x0040ea00 nop                           |         
    0x0040ea04 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040ea08 move s0, v0                   |         s0 = v0;
    0x0040ea0c lw t8, -0x7e20(gp)            |         t8 = sym.imp.__errno_location;
    0x0040ea10 move t9, t8                   |         t9 = t8;
    0x0040ea14 jalr t9                       |         t9 ();
    0x0040ea18 nop                           |         
    0x0040ea1c lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040ea20 move t8, v0                   |         t8 = v0;
    0x0040ea24 lw t8, (t8)                   |         t8 = *(t8);
    0x0040ea28 move a0, t8                   |         a0 = t8;
    0x0040ea2c lw t8, -0x7f20(gp)            |         t8 = sym.imp.strerror;
    0x0040ea30 move t9, t8                   |         t9 = t8;
    0x0040ea34 jalr t9                       |         t9 ();
    0x0040ea38 nop                           |         
    0x0040ea3c lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040ea40 move t8, v0                   |         t8 = v0;
    0x0040ea44 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.proxy_relay_to_rtsp */
    0x0040ea48 addiu v0, v0, 0x1344          |         v0 += 0x1344;
    0x0040ea4c sw v0, 0x10(sp)               |         *(arg_10h) = v0;
    0x0040ea50 addiu v0, zero, 0x64          |         v0 = 0x64;
    0x0040ea54 sw v0, 0x14(sp)               |         *(arg_14h) = v0;
    0x0040ea58 sw t8, 0x18(sp)               |         *(arg_18h) = t8;
    0x0040ea5c move a0, s1                   |         a0 = s1;
    0x0040ea60 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_conn_write___fail___s_n */
    0x0040ea64 addiu a1, t8, 0x11f4          |         a1 = t8 + 0x11f4;
    0x0040ea68 move a2, s0                   |         a2 = s0;
    0x0040ea6c lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.e_1_31mERRORe_0m */
    0x0040ea70 addiu a3, t8, 0x10e0          |         a3 = t8 + 0x10e0;
    0x0040ea74 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040ea78 move t9, t8                   |         t9 = t8;
    0x0040ea7c jalr t9                       |         t9 ();
    0x0040ea80 nop                           |         
    0x0040ea84 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040ea88 addiu t8, zero, -1            |         t8 = -1;
    0x0040ea8c b 0x40ea98                    |         goto label_0;
    0x0040ea90 nop                           |         
                                             |     }
                                             | label_1:
    0x0040ea94 move t8, zero                 |     t8 = 0;
                                             | label_0:
    0x0040ea98 move v0, t8                   |     v0 = t8;
    0x0040ea9c lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040eaa0 lw v1, 0x2064(fp)             |     v1 = *(arg_2064h);
    0x0040eaa4 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040eaa8 beq v1, t8, 0x40eac0          |         
    0x0040eaac nop                           |         
    0x0040eab0 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040eab4 move t9, t8                   |         t9 = t8;
    0x0040eab8 jalr t9                       |         t9 ();
    0x0040eabc nop                           |         
                                             |     }
    0x0040eac0 move sp, fp                   |     
    0x0040eac4 lw ra, 0x2074(sp)             |     ra = *(arg_2074h);
    0x0040eac8 lw fp, 0x2070(sp)             |     fp = *(arg_2070h);
    0x0040eacc lw s1, 0x206c(sp)             |     s1 = *(arg_206ch);
    0x0040ead0 lw s0, 0x2068(sp)             |     s0 = *(arg_2068h);
    0x0040ead4 addiu sp, sp, 0x2078          |     
    0x0040ead8 jr ra                         |     return v1;
    0x0040eadc nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x4035e8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) main ()                          | int32_t main () {
    0x004035e8 lui gp, 2                     |     
    0x004035ec addiu gp, gp, 0x7a38          |     
    0x004035f0 addu gp, gp, t9               |     gp += t9;
    0x004035f4 addiu sp, sp, -0x58           |     
    0x004035f8 sw ra, 0x54(sp)               |     *(var_54h) = ra;
    0x004035fc sw fp, 0x50(sp)               |     *(var_50h) = fp;
    0x00403600 sw s0, 0x4c(sp)               |     *(var_4ch) = s0;
    0x00403604 move fp, sp                   |     fp = sp;
    0x00403608 sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x0040360c sw a0, 0x2c(fp)               |     *(arg_2ch) = a0;
    0x00403610 sw a1, 0x28(fp)               |     *(arg_28h) = a1;
    0x00403614 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x00403618 lw t8, (t8)                   |     t8 = *(t8);
    0x0040361c sw t8, 0x44(fp)               |     *(arg_44h) = t8;
    0x00403620 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x00403624 lw a1, -0x640(t8)             |     a1 = *((t8 - 400));
                                             |     /* str._tmp_sp_agent_lock */
    0x00403628 addiu v0, t8, -0x640          |     v0 = t8 + -0x640;
    0x0040362c lw a0, 4(v0)                  |     a0 = *((v0 + 1));
                                             |     /* str._tmp_sp_agent_lock */
    0x00403630 addiu v0, t8, -0x640          |     v0 = t8 + -0x640;
    0x00403634 lw v1, 8(v0)                  |     v1 = *((v0 + 2));
                                             |     /* str._tmp_sp_agent_lock */
    0x00403638 addiu v0, t8, -0x640          |     v0 = t8 + -0x640;
    0x0040363c lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x00403640 sw a1, 0x30(fp)               |     *(arg_30h) = a1;
    0x00403644 sw a0, 0x34(fp)               |     *(arg_34h) = a0;
    0x00403648 sw v1, 0x38(fp)               |     *(arg_38h) = v1;
    0x0040364c sw v0, 0x3c(fp)               |     *(arg_3ch) = v0;
                                             |     /* str._tmp_sp_agent_lock */
    0x00403650 addiu t8, t8, -0x640          |     t8 += -0x640;
    0x00403654 lhu v0, 0x10(t8)              |     v0 = *((t8 + 8));
    0x00403658 sh v0, 0x40(fp)               |     *(arg_40h) = v0;
    0x0040365c lbu t8, 0x12(t8)              |     t8 = *((t8 + 18));
    0x00403660 sb t8, 0x42(fp)               |     *(arg_42h) = t8;
    0x00403664 addiu t8, fp, 0x30            |     t8 = fp + 0x30;
    0x00403668 move a0, t8                   |     a0 = t8;
    0x0040366c lw t8, -0x7f7c(gp)            |     t8 = sym.file_lock_set_char_;
    0x00403670 move t9, t8                   |     t9 = t8;
    0x00403674 jalr t9                       |     t9 ();
    0x00403678 nop                           |     
    0x0040367c lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x00403680 move t8, v0                   |     t8 = v0;
    0x00403684 sltu t8, zero, t8             |     t8 = (0 < t8) ? 1 : 0;
    0x00403688 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x0040368c beqz t8, 0x4036bc             |         
    0x00403690 nop                           |         
    0x00403694 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.Process_already_running__n */
    0x00403698 addiu a0, t8, -0x684          |         a0 = t8 + -0x684;
    0x0040369c lw t8, -0x7ed4(gp)            |         t8 = sym.imp.perror;
    0x004036a0 move t9, t8                   |         t9 = t8;
    0x004036a4 jalr t9                       |         t9 ();
    0x004036a8 nop                           |         
    0x004036ac lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x004036b0 addiu t8, zero, -1            |         t8 = -1;
    0x004036b4 b 0x40375c                    |         goto label_0;
    0x004036b8 nop                           |         
                                             |     }
    0x004036bc lw t8, -0x7fd0(gp)            |     t8 = *(gp);
                                             |     /* aav.0x00401a4c */
    0x004036c0 addiu t8, t8, 0x1a4c          |     t8 += 0x1a4c;
    0x004036c4 move t9, t8                   |     t9 = t8;
    0x004036c8 jalr t9                       |     t9 ();
    0x004036cc nop                           |     
    0x004036d0 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x004036d4 lw t8, -0x7f78(gp)            |     t8 = sym.test_http_server__;
    0x004036d8 move t9, t8                   |     t9 = t8;
    0x004036dc jalr t9                       |     t9 ();
    0x004036e0 nop                           |     
    0x004036e4 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x004036e8 lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x004036ec lw s0, (t8)                   |     s0 = *(t8);
    0x004036f0 lw t8, -0x7fd0(gp)            |     t8 = *(gp);
                                             |     /* aav.0x00401970 */
    0x004036f4 addiu t8, t8, 0x1970          |     t8 += 0x1970;
    0x004036f8 move t9, t8                   |     t9 = t8;
    0x004036fc jalr t9                       |     t9 ();
    0x00403700 nop                           |     
    0x00403704 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x00403708 move t8, v0                   |     t8 = v0;
    0x0040370c lw v0, 0x28(fp)               |     v0 = *(arg_28h);
    0x00403710 lw v0, (v0)                   |     v0 = *(v0);
    0x00403714 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
                                             |     /* str.main */
    0x00403718 addiu v1, v1, -0x1d8          |     v1 += -0x1d8;
    0x0040371c sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x00403720 addiu v1, zero, 0x151         |     v1 = 0x151;
    0x00403724 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x00403728 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0040372c move a0, s0                   |     a0 = s0;
    0x00403730 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d__s_finished_n */
    0x00403734 addiu a1, v0, -0x668          |     a1 = v0 + -0x668;
    0x00403738 move a2, t8                   |     a2 = t8;
    0x0040373c lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x00403740 addiu a3, t8, -0x970          |     a3 = t8 + -0x970;
    0x00403744 lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x00403748 move t9, t8                   |     t9 = t8;
    0x0040374c jalr t9                       |     t9 ();
    0x00403750 nop                           |     
    0x00403754 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x00403758 move t8, zero                 |     t8 = 0;
                                             | label_0:
    0x0040375c move v0, t8                   |     v0 = t8;
    0x00403760 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x00403764 lw v1, 0x44(fp)               |     v1 = *(arg_44h);
    0x00403768 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040376c beq v1, t8, 0x403784          |         
    0x00403770 nop                           |         
    0x00403774 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x00403778 move t9, t8                   |         t9 = t8;
    0x0040377c jalr t9                       |         t9 ();
    0x00403780 nop                           |         
                                             |     }
    0x00403784 move sp, fp                   |     
    0x00403788 lw ra, 0x54(sp)               |     ra = *(var_54h);
    0x0040378c lw fp, 0x50(sp)               |     fp = *(var_50h);
    0x00403790 lw s0, 0x4c(sp)               |     s0 = *(var_4ch);
    0x00403794 addiu sp, sp, 0x58            |     
    0x00403798 jr ra                         |     return v1;
    0x0040379c nop                           |     
                                             | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40955c */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.apps_ssl_info_callback_ssl_st_const__int__int_ ()        | void apps_ssl_info_callback_ssl_st_const_int_int_ () {
                                                                         |     /* apps_ssl_info_callback(ssl_st const*, int, int) */
    0x0040955c lui gp, 2                                                 |     
    0x00409560 addiu gp, gp, 0x1ac4                                      |     
    0x00409564 addu gp, gp, t9                                           |     gp += t9;
    0x00409568 addiu sp, sp, -0x50                                       |     
    0x0040956c sw ra, 0x4c(sp)                                           |     *(var_4ch) = ra;
    0x00409570 sw fp, 0x48(sp)                                           |     *(var_48h) = fp;
    0x00409574 sw s1, 0x44(sp)                                           |     *(var_44h) = s1;
    0x00409578 sw s0, 0x40(sp)                                           |     *(var_40h) = s0;
    0x0040957c move fp, sp                                               |     fp = sp;
    0x00409580 sw gp, 0x18(sp)                                           |     *(var_18h) = gp;
    0x00409584 sw a0, 0x2c(fp)                                           |     *(arg_2ch) = a0;
    0x00409588 sw a1, 0x28(fp)                                           |     *(arg_28h) = a1;
    0x0040958c sw a2, 0x24(fp)                                           |     *(arg_24h) = a2;
    0x00409590 lw t8, -0x7e24(gp)                                        |     t8 = *((gp - 8073));
    0x00409594 lw t8, (t8)                                               |     t8 = *(t8);
    0x00409598 sw t8, 0x3c(fp)                                           |     *(arg_3ch) = t8;
    0x0040959c lw v0, 0x28(fp)                                           |     v0 = *(arg_28h);
    0x004095a0 addiu t8, zero, -0x1000                                   |     t8 = -0x1000;
    0x004095a4 and t8, v0, t8                                            |     t8 = v0 & t8;
    0x004095a8 sw t8, 0x38(fp)                                           |     *(arg_38h) = t8;
    0x004095ac lw t8, 0x38(fp)                                           |     t8 = *(arg_38h);
    0x004095b0 andi t8, t8, 0x1000                                       |     t8 &= 0x1000;
                                                                         |     if (t8 != 0) {
    0x004095b4 beqz t8, 0x4095d0                                         |         
    0x004095b8 nop                                                       |         
    0x004095bc lw t8, -0x7fd8(gp)                                        |         t8 = *((gp - 8182));
                                                                         |         /* str.SSL_connect */
    0x004095c0 addiu t8, t8, 0x47c                                       |         t8 += 0x47c;
    0x004095c4 sw t8, 0x34(fp)                                           |         *(arg_34h) = t8;
    0x004095c8 b 0x409600                                                |         goto label_0;
    0x004095cc nop                                                       |         
                                                                         |     }
    0x004095d0 lw t8, 0x38(fp)                                           |     t8 = *(arg_38h);
    0x004095d4 andi t8, t8, 0x2000                                       |     t8 &= 0x2000;
                                                                         |     if (t8 != 0) {
    0x004095d8 beqz t8, 0x4095f4                                         |         
    0x004095dc nop                                                       |         
    0x004095e0 lw t8, -0x7fd8(gp)                                        |         t8 = *((gp - 8182));
                                                                         |         /* str.SSL_accept */
    0x004095e4 addiu t8, t8, 0x488                                       |         t8 += 0x488;
    0x004095e8 sw t8, 0x34(fp)                                           |         *(arg_34h) = t8;
    0x004095ec b 0x409600                                                |         goto label_0;
    0x004095f0 nop                                                       |         
                                                                         |     }
    0x004095f4 lw t8, -0x7fd8(gp)                                        |     t8 = *((gp - 8182));
                                                                         |     /* str.undefined */
    0x004095f8 addiu t8, t8, 0x494                                       |     t8 += 0x494;
    0x004095fc sw t8, 0x34(fp)                                           |     *(arg_34h) = t8;
                                                                         | label_0:
    0x00409600 lw t8, 0x28(fp)                                           |     t8 = *(arg_28h);
    0x00409604 andi t8, t8, 1                                            |     t8 &= 1;
                                                                         |     if (t8 != 0) {
    0x00409608 beqz t8, 0x409664                                         |         
    0x0040960c nop                                                       |         
    0x00409610 lw t8, -0x7e90(gp)                                        |         t8 = *((gp - 8100));
    0x00409614 lw s0, (t8)                                               |         s0 = *(t8);
    0x00409618 lw a0, 0x2c(fp)                                           |         a0 = *(arg_2ch);
    0x0040961c lw t8, -0x7ec0(gp)                                        |         t8 = sym.imp.SSL_state_string_long;
    0x00409620 move t9, t8                                               |         t9 = t8;
    0x00409624 jalr t9                                                   |         t9 ();
    0x00409628 nop                                                       |         
    0x0040962c lw gp, 0x18(fp)                                           |         gp = *(arg_18h);
    0x00409630 move t8, v0                                               |         t8 = v0;
    0x00409634 move a0, s0                                               |         a0 = s0;
    0x00409638 lw v0, -0x7fd8(gp)                                        |         v0 = *((gp - 8182));
                                                                         |         /* str._s:__s_n */
    0x0040963c addiu a1, v0, 0x4a0                                       |         a1 = v0 + 0x4a0;
    0x00409640 lw a2, 0x34(fp)                                           |         a2 = *(arg_34h);
    0x00409644 move a3, t8                                               |         a3 = t8;
    0x00409648 lw t8, -0x7ee0(gp)                                        |         t8 = sym.imp.fprintf
    0x0040964c move t9, t8                                               |         t9 = t8;
    0x00409650 jalr t9                                                   |         t9 ();
    0x00409654 nop                                                       |         
    0x00409658 lw gp, 0x18(fp)                                           |         gp = *(arg_18h);
    0x0040965c b 0x4097dc                                                |         goto label_1;
    0x00409660 nop                                                       |         
                                                                         |     }
    0x00409664 lw t8, 0x28(fp)                                           |     t8 = *(arg_28h);
    0x00409668 andi t8, t8, 0x4000                                       |     t8 &= 0x4000;
                                                                         |     if (t8 != 0) {
    0x0040966c beqz t8, 0x409714                                         |         
    0x00409670 nop                                                       |         
    0x00409674 lw t8, 0x28(fp)                                           |         t8 = *(arg_28h);
    0x00409678 andi t8, t8, 4                                            |         t8 &= 4;
                                                                         |         if (t8 != 0) {
    0x0040967c beqz t8, 0x409694                                         |             
    0x00409680 nop                                                       |             
    0x00409684 lw t8, -0x7fd8(gp)                                        |             t8 = *((gp - 8182));
                                                                         |             /* str.read */
    0x00409688 addiu t8, t8, 0x4a8                                       |             t8 += 0x4a8;
    0x0040968c b 0x40969c                                                |             goto label_2;
    0x00409690 nop                                                       |             
                                                                         |         }
    0x00409694 lw t8, -0x7fd8(gp)                                        |         t8 = *((gp - 8182));
                                                                         |         /* str.write */
    0x00409698 addiu t8, t8, 0x4b0                                       |         t8 += 0x4b0;
                                                                         | label_2:
    0x0040969c sw t8, 0x34(fp)                                           |         *(arg_34h) = t8;
    0x004096a0 lw t8, -0x7e90(gp)                                        |         t8 = *((gp - 8100));
    0x004096a4 lw s1, (t8)                                               |         s1 = *(t8);
    0x004096a8 lw a0, 0x24(fp)                                           |         a0 = *(arg_24h);
    0x004096ac lw t8, -0x7ec4(gp)                                        |         t8 = sym.imp.SSL_alert_type_string_long;
    0x004096b0 move t9, t8                                               |         t9 = t8;
    0x004096b4 jalr t9                                                   |         t9 ();
    0x004096b8 nop                                                       |         
    0x004096bc lw gp, 0x18(fp)                                           |         gp = *(arg_18h);
    0x004096c0 move s0, v0                                               |         s0 = v0;
    0x004096c4 lw a0, 0x24(fp)                                           |         a0 = *(arg_24h);
    0x004096c8 lw t8, -0x7ea8(gp)                                        |         t8 = sym.imp.SSL_alert_desc_string_long;
    0x004096cc move t9, t8                                               |         t9 = t8;
    0x004096d0 jalr t9                                                   |         t9 ();
    0x004096d4 nop                                                       |         
    0x004096d8 lw gp, 0x18(fp)                                           |         gp = *(arg_18h);
    0x004096dc move t8, v0                                               |         t8 = v0;
    0x004096e0 sw t8, 0x10(sp)                                           |         *(var_10h) = t8;
    0x004096e4 move a0, s1                                               |         a0 = s1;
    0x004096e8 lw t8, -0x7fd8(gp)                                        |         t8 = *((gp - 8182));
                                                                         |         /* str.SSL3_alert__s:_s:_s_n */
    0x004096ec addiu a1, t8, 0x4b8                                       |         a1 = t8 + 0x4b8;
    0x004096f0 lw a2, 0x34(fp)                                           |         a2 = *(arg_34h);
    0x004096f4 move a3, s0                                               |         a3 = s0;
    0x004096f8 lw t8, -0x7ee0(gp)                                        |         t8 = sym.imp.fprintf
    0x004096fc move t9, t8                                               |         t9 = t8;
    0x00409700 jalr t9                                                   |         t9 ();
    0x00409704 nop                                                       |         
    0x00409708 lw gp, 0x18(fp)                                           |         gp = *(arg_18h);
    0x0040970c b 0x4097dc                                                |         goto label_1;
    0x00409710 nop                                                       |         
                                                                         |     }
    0x00409714 lw t8, 0x28(fp)                                           |     t8 = *(arg_28h);
    0x00409718 andi t8, t8, 2                                            |     t8 &= 2;
                                                                         |     if (t8 != 0) {
    0x0040971c beqz t8, 0x4097dc                                         |         
    0x00409720 nop                                                       |         
    0x00409724 lw t8, 0x24(fp)                                           |         t8 = *(arg_24h);
                                                                         |         if (t8 == 0) {
    0x00409728 bnez t8, 0x409784                                         |             
    0x0040972c nop                                                       |             
    0x00409730 lw t8, -0x7e90(gp)                                        |             t8 = *((gp - 8100));
    0x00409734 lw s0, (t8)                                               |             s0 = *(t8);
    0x00409738 lw a0, 0x2c(fp)                                           |             a0 = *(arg_2ch);
    0x0040973c lw t8, -0x7ec0(gp)                                        |             t8 = sym.imp.SSL_state_string_long;
    0x00409740 move t9, t8                                               |             t9 = t8;
    0x00409744 jalr t9                                                   |             t9 ();
    0x00409748 nop                                                       |             
    0x0040974c lw gp, 0x18(fp)                                           |             gp = *(arg_18h);
    0x00409750 move t8, v0                                               |             t8 = v0;
    0x00409754 move a0, s0                                               |             a0 = s0;
    0x00409758 lw v0, -0x7fd8(gp)                                        |             v0 = *((gp - 8182));
                                                                         |             /* str._s:failed_in__s_n */
    0x0040975c addiu a1, v0, 0x4d0                                       |             a1 = v0 + 0x4d0;
    0x00409760 lw a2, 0x34(fp)                                           |             a2 = *(arg_34h);
    0x00409764 move a3, t8                                               |             a3 = t8;
    0x00409768 lw t8, -0x7ee0(gp)                                        |             t8 = sym.imp.fprintf
    0x0040976c move t9, t8                                               |             t9 = t8;
    0x00409770 jalr t9                                                   |             t9 ();
    0x00409774 nop                                                       |             
    0x00409778 lw gp, 0x18(fp)                                           |             gp = *(arg_18h);
    0x0040977c b 0x4097dc                                                |             goto label_1;
    0x00409780 nop                                                       |             
                                                                         |         }
    0x00409784 lw t8, 0x24(fp)                                           |         t8 = *(arg_24h);
                                                                         |         if (t8 >= 0) {
    0x00409788 bgez t8, 0x4097dc                                         |             goto label_1;
                                                                         |         }
    0x0040978c nop                                                       |         
    0x00409790 lw t8, -0x7e90(gp)                                        |         t8 = *((gp - 8100));
    0x00409794 lw s0, (t8)                                               |         s0 = *(t8);
    0x00409798 lw a0, 0x2c(fp)                                           |         a0 = *(arg_2ch);
    0x0040979c lw t8, -0x7ec0(gp)                                        |         t8 = sym.imp.SSL_state_string_long;
    0x004097a0 move t9, t8                                               |         t9 = t8;
    0x004097a4 jalr t9                                                   |         t9 ();
    0x004097a8 nop                                                       |         
    0x004097ac lw gp, 0x18(fp)                                           |         gp = *(arg_18h);
    0x004097b0 move t8, v0                                               |         t8 = v0;
    0x004097b4 move a0, s0                                               |         a0 = s0;
    0x004097b8 lw v0, -0x7fd8(gp)                                        |         v0 = *((gp - 8182));
                                                                         |         /* str._s:error_in__s_n */
    0x004097bc addiu a1, v0, 0x4e4                                       |         a1 = v0 + 0x4e4;
    0x004097c0 lw a2, 0x34(fp)                                           |         a2 = *(arg_34h);
    0x004097c4 move a3, t8                                               |         a3 = t8;
    0x004097c8 lw t8, -0x7ee0(gp)                                        |         t8 = sym.imp.fprintf
    0x004097cc move t9, t8                                               |         t9 = t8;
    0x004097d0 jalr t9                                                   |         t9 ();
    0x004097d4 nop                                                       |         
    0x004097d8 lw gp, 0x18(fp)                                           |         gp = *(arg_18h);
                                                                         |     }
                                                                         | label_1:
    0x004097dc lw t8, -0x7e24(gp)                                        |     t8 = *((gp - 8073));
    0x004097e0 lw v0, 0x3c(fp)                                           |     v0 = *(arg_3ch);
    0x004097e4 lw t8, (t8)                                               |     t8 = *(t8);
                                                                         |     if (v0 != t8) {
    0x004097e8 beq v0, t8, 0x409800                                      |         
    0x004097ec nop                                                       |         
    0x004097f0 lw t8, -0x7e84(gp)                                        |         t8 = sym.imp.__stack_chk_fail;
    0x004097f4 move t9, t8                                               |         t9 = t8;
    0x004097f8 jalr t9                                                   |         t9 ();
    0x004097fc nop                                                       |         
                                                                         |     }
    0x00409800 move sp, fp                                               |     
    0x00409804 lw ra, 0x4c(sp)                                           |     ra = *(var_4ch);
    0x00409808 lw fp, 0x48(sp)                                           |     fp = *(var_48h);
    0x0040980c lw s1, 0x44(sp)                                           |     s1 = *(var_44h);
    0x00409810 lw s0, 0x40(sp)                                           |     s0 = *(var_40h);
    0x00409814 addiu sp, sp, 0x50                                        |     
    0x00409818 jr ra                                                     |     return v0;
    0x0040981c nop                                                       |     
                                                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40b49c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.conn_get_fd ()               | void conn_get_fd () {
    0x0040b49c lui gp, 2                     |     
    0x0040b4a0 addiu gp, gp, -0x47c          |     
    0x0040b4a4 addu gp, gp, t9               |     gp += t9;
    0x0040b4a8 addiu sp, sp, -0x40           |     
    0x0040b4ac sw ra, 0x3c(sp)               |     *(var_3ch) = ra;
    0x0040b4b0 sw fp, 0x38(sp)               |     *(var_38h) = fp;
    0x0040b4b4 sw s0, 0x34(sp)               |     *(var_34h) = s0;
    0x0040b4b8 move fp, sp                   |     fp = sp;
    0x0040b4bc sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0040b4c0 sw a0, 0x24(fp)               |     *(arg_24h) = a0;
    0x0040b4c4 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040b4c8 lw t8, (t8)                   |     t8 = *(t8);
    0x0040b4cc sw t8, 0x2c(fp)               |     *(arg_2ch) = t8;
    0x0040b4d0 lw t8, 0x24(fp)               |     t8 = *(arg_24h);
                                             |     if (t8 == 0) {
    0x0040b4d4 bnez t8, 0x40b54c             |         
    0x0040b4d8 nop                           |         
    0x0040b4dc lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040b4e0 lw s0, (t8)                   |         s0 = *(t8);
    0x0040b4e4 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040afa0 */
    0x0040b4e8 addiu t8, t8, -0x5060         |         t8 += -0x5060;
    0x0040b4ec move t9, t8                   |         t9 = t8;
    0x0040b4f0 jalr t9                       |         t9 ();
    0x0040b4f4 nop                           |         
    0x0040b4f8 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040b4fc move t8, v0                   |         t8 = v0;
    0x0040b500 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.conn_get_fd */
    0x0040b504 addiu v0, v0, 0x920           |         v0 += 0x920;
    0x0040b508 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0040b50c addiu v0, zero, 0x27          |         v0 = 0x27;
    0x0040b510 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x0040b514 move a0, s0                   |         a0 = s0;
    0x0040b518 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x0040b51c addiu a1, v0, 0x894           |         a1 = v0 + 0x894;
    0x0040b520 move a2, t8                   |         a2 = t8;
    0x0040b524 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x0040b528 addiu a3, t8, 0x8c0           |         a3 = t8 + 0x8c0;
    0x0040b52c lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040b530 move t9, t8                   |         t9 = t8;
    0x0040b534 jalr t9                       |         t9 ();
    0x0040b538 nop                           |         
    0x0040b53c lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040b540 addiu t8, zero, -1            |         t8 = -1;
    0x0040b544 b 0x40b60c                    |         goto label_0;
    0x0040b548 nop                           |         
                                             |     }
    0x0040b54c lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x0040b550 lw t8, (t8)                   |     t8 = *(t8);
    0x0040b554 addiu v0, zero, 1             |     v0 = 1;
                                             |     if (t8 != v0) {
    0x0040b558 beq t8, v0, 0x40b574          |         
    0x0040b55c nop                           |         
    0x0040b560 addiu v0, zero, 2             |         v0 = 2;
                                             |         if (t8 == v0) {
    0x0040b564 beq t8, v0, 0x40b588          |             goto label_1;
                                             |         }
    0x0040b568 nop                           |         
    0x0040b56c b 0x40b5a0                    |         goto label_2;
    0x0040b570 nop                           |         
                                             |     }
    0x0040b574 lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x0040b578 lw t8, 4(t8)                  |     t8 = *((t8 + 1));
    0x0040b57c lw t8, (t8)                   |     t8 = *(t8);
    0x0040b580 b 0x40b60c                    |     goto label_0;
    0x0040b584 nop                           |     
                                             | label_1:
    0x0040b588 lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x0040b58c lw t8, 4(t8)                  |     t8 = *((t8 + 1));
    0x0040b590 lw t8, (t8)                   |     t8 = *(t8);
    0x0040b594 lw t8, (t8)                   |     t8 = *(t8);
    0x0040b598 b 0x40b60c                    |     goto label_0;
    0x0040b59c nop                           |     
                                             | label_2:
    0x0040b5a0 lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040b5a4 lw s0, (t8)                   |     s0 = *(t8);
    0x0040b5a8 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040afa0 */
    0x0040b5ac addiu t8, t8, -0x5060         |     t8 += -0x5060;
    0x0040b5b0 move t9, t8                   |     t9 = t8;
    0x0040b5b4 jalr t9                       |     t9 ();
    0x0040b5b8 nop                           |     
    0x0040b5bc lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040b5c0 move t8, v0                   |     t8 = v0;
    0x0040b5c4 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str.conn_get_fd */
    0x0040b5c8 addiu v0, v0, 0x920           |     v0 += 0x920;
    0x0040b5cc sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0040b5d0 addiu v0, zero, 0x2b          |     v0 = 0x2b;
    0x0040b5d4 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0040b5d8 move a0, s0                   |     a0 = s0;
    0x0040b5dc lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d_Connection_type_error__n */
    0x0040b5e0 addiu a1, v0, 0x8d4           |     a1 = v0 + 0x8d4;
    0x0040b5e4 move a2, t8                   |     a2 = t8;
    0x0040b5e8 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040b5ec addiu a3, t8, 0x8c0           |     a3 = t8 + 0x8c0;
    0x0040b5f0 lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040b5f4 move t9, t8                   |     t9 = t8;
    0x0040b5f8 jalr t9                       |     t9 ();
    0x0040b5fc nop                           |     
    0x0040b600 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040b604 nop                           |     
    0x0040b608 addiu t8, zero, -1            |     t8 = -1;
                                             | label_0:
    0x0040b60c move v0, t8                   |     v0 = t8;
    0x0040b610 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040b614 lw v1, 0x2c(fp)               |     v1 = *(arg_2ch);
    0x0040b618 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040b61c beq v1, t8, 0x40b634          |         
    0x0040b620 nop                           |         
    0x0040b624 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040b628 move t9, t8                   |         t9 = t8;
    0x0040b62c jalr t9                       |         t9 ();
    0x0040b630 nop                           |         
                                             |     }
    0x0040b634 move sp, fp                   |     
    0x0040b638 lw ra, 0x3c(sp)               |     ra = *(var_3ch);
    0x0040b63c lw fp, 0x38(sp)               |     fp = *(var_38h);
    0x0040b640 lw s0, 0x34(sp)               |     s0 = *(var_34h);
    0x0040b644 addiu sp, sp, 0x40            |     
    0x0040b648 jr ra                         |     return v1;
    0x0040b64c nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40b07c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.conn_read ()                 | void conn_read () {
    0x0040b07c lui gp, 2                     |     
    0x0040b080 addiu gp, gp, -0x5c           |     
    0x0040b084 addu gp, gp, t9               |     gp += t9;
    0x0040b088 addiu sp, sp, -0x48           |     
    0x0040b08c sw ra, 0x44(sp)               |     *(var_44h) = ra;
    0x0040b090 sw fp, 0x40(sp)               |     *(var_40h) = fp;
    0x0040b094 sw s0, 0x3c(sp)               |     *(var_3ch) = s0;
    0x0040b098 move fp, sp                   |     fp = sp;
    0x0040b09c sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0040b0a0 sw a0, 0x2c(fp)               |     *(arg_2ch) = a0;
    0x0040b0a4 sw a1, 0x28(fp)               |     *(arg_28h) = a1;
    0x0040b0a8 sw a2, 0x24(fp)               |     *(arg_24h) = a2;
    0x0040b0ac lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040b0b0 lw t8, (t8)                   |     t8 = *(t8);
    0x0040b0b4 sw t8, 0x34(fp)               |     *(arg_34h) = t8;
    0x0040b0b8 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
                                             |     if (t8 != 0) {
    0x0040b0bc beqz t8, 0x40b0dc             |         
    0x0040b0c0 nop                           |         
    0x0040b0c4 lw t8, 0x28(fp)               |         t8 = *(arg_28h);
                                             |         if (t8 == 0) {
    0x0040b0c8 beqz t8, 0x40b0dc             |             goto label_0;
                                             |         }
    0x0040b0cc nop                           |         
    0x0040b0d0 lw t8, 0x24(fp)               |         t8 = *(arg_24h);
                                             |         if (t8 != 0) {
    0x0040b0d4 bnez t8, 0x40b14c             |             goto label_1;
                                             |         }
    0x0040b0d8 nop                           |         
                                             |     }
                                             | label_0:
    0x0040b0dc lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040b0e0 lw s0, (t8)                   |     s0 = *(t8);
    0x0040b0e4 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040afa0 */
    0x0040b0e8 addiu t8, t8, -0x5060         |     t8 += -0x5060;
    0x0040b0ec move t9, t8                   |     t9 = t8;
    0x0040b0f0 jalr t9                       |     t9 ();
    0x0040b0f4 nop                           |     
    0x0040b0f8 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040b0fc move t8, v0                   |     t8 = v0;
    0x0040b100 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str.conn_read */
    0x0040b104 addiu v0, v0, 0x908           |     v0 += 0x908;
    0x0040b108 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0040b10c addiu v0, zero, 0xd           |     v0 = 0xd;
    0x0040b110 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0040b114 move a0, s0                   |     a0 = s0;
    0x0040b118 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x0040b11c addiu a1, v0, 0x894           |     a1 = v0 + 0x894;
    0x0040b120 move a2, t8                   |     a2 = t8;
    0x0040b124 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040b128 addiu a3, t8, 0x8c0           |     a3 = t8 + 0x8c0;
    0x0040b12c lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040b130 move t9, t8                   |     t9 = t8;
    0x0040b134 jalr t9                       |     t9 ();
    0x0040b138 nop                           |     
    0x0040b13c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040b140 addiu t8, zero, -1            |     t8 = -1;
    0x0040b144 b 0x40b248                    |     goto label_2;
    0x0040b148 nop                           |     
                                             | label_1:
    0x0040b14c lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x0040b150 lw t8, (t8)                   |     t8 = *(t8);
    0x0040b154 addiu v0, zero, 1             |     v0 = 1;
                                             |     if (t8 != v0) {
    0x0040b158 beq t8, v0, 0x40b174          |         
    0x0040b15c nop                           |         
    0x0040b160 addiu v0, zero, 2             |         v0 = 2;
                                             |         if (t8 == v0) {
    0x0040b164 beq t8, v0, 0x40b1a8          |             goto label_3;
                                             |         }
    0x0040b168 nop                           |         
    0x0040b16c b 0x40b1dc                    |         goto label_4;
    0x0040b170 nop                           |         
                                             |     }
    0x0040b174 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x0040b178 lw t8, 4(t8)                  |     t8 = *((t8 + 1));
    0x0040b17c move a0, t8                   |     a0 = t8;
    0x0040b180 lw a1, 0x28(fp)               |     a1 = *(arg_28h);
    0x0040b184 lw a2, 0x24(fp)               |     a2 = *(arg_24h);
    0x0040b188 lw t8, -0x7fc4(gp)            |     t8 = sym.tcp_read;
    0x0040b18c move t9, t8                   |     t9 = t8;
    0x0040b190 jalr t9                       |     t9 ();
    0x0040b194 nop                           |     
    0x0040b198 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040b19c move t8, v0                   |     t8 = v0;
    0x0040b1a0 b 0x40b248                    |     goto label_2;
    0x0040b1a4 nop                           |     
                                             | label_3:
    0x0040b1a8 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x0040b1ac lw t8, 4(t8)                  |     t8 = *((t8 + 1));
    0x0040b1b0 move a0, t8                   |     a0 = t8;
    0x0040b1b4 lw a1, 0x28(fp)               |     a1 = *(arg_28h);
    0x0040b1b8 lw a2, 0x24(fp)               |     a2 = *(arg_24h);
    0x0040b1bc lw t8, -0x7fac(gp)            |     t8 = sym.tls_read;
    0x0040b1c0 move t9, t8                   |     t9 = t8;
    0x0040b1c4 jalr t9                       |     t9 ();
    0x0040b1c8 nop                           |     
    0x0040b1cc lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040b1d0 move t8, v0                   |     t8 = v0;
    0x0040b1d4 b 0x40b248                    |     goto label_2;
    0x0040b1d8 nop                           |     
                                             | label_4:
    0x0040b1dc lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040b1e0 lw s0, (t8)                   |     s0 = *(t8);
    0x0040b1e4 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040afa0 */
    0x0040b1e8 addiu t8, t8, -0x5060         |     t8 += -0x5060;
    0x0040b1ec move t9, t8                   |     t9 = t8;
    0x0040b1f0 jalr t9                       |     t9 ();
    0x0040b1f4 nop                           |     
    0x0040b1f8 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040b1fc move t8, v0                   |     t8 = v0;
    0x0040b200 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str.conn_read */
    0x0040b204 addiu v0, v0, 0x908           |     v0 += 0x908;
    0x0040b208 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0040b20c addiu v0, zero, 0x12          |     v0 = 0x12;
    0x0040b210 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0040b214 move a0, s0                   |     a0 = s0;
    0x0040b218 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d_Connection_type_error__n */
    0x0040b21c addiu a1, v0, 0x8d4           |     a1 = v0 + 0x8d4;
    0x0040b220 move a2, t8                   |     a2 = t8;
    0x0040b224 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040b228 addiu a3, t8, 0x8c0           |     a3 = t8 + 0x8c0;
    0x0040b22c lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040b230 move t9, t8                   |     t9 = t8;
    0x0040b234 jalr t9                       |     t9 ();
    0x0040b238 nop                           |     
    0x0040b23c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040b240 nop                           |     
    0x0040b244 addiu t8, zero, -1            |     t8 = -1;
                                             | label_2:
    0x0040b248 move v0, t8                   |     v0 = t8;
    0x0040b24c lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040b250 lw v1, 0x34(fp)               |     v1 = *(arg_34h);
    0x0040b254 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040b258 beq v1, t8, 0x40b270          |         
    0x0040b25c nop                           |         
    0x0040b260 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040b264 move t9, t8                   |         t9 = t8;
    0x0040b268 jalr t9                       |         t9 ();
    0x0040b26c nop                           |         
                                             |     }
    0x0040b270 move sp, fp                   |     
    0x0040b274 lw ra, 0x44(sp)               |     ra = *(var_44h);
    0x0040b278 lw fp, 0x40(sp)               |     fp = *(var_40h);
    0x0040b27c lw s0, 0x3c(sp)               |     s0 = *(var_3ch);
    0x0040b280 addiu sp, sp, 0x48            |     
    0x0040b284 jr ra                         |     return v1;
    0x0040b288 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40b28c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.conn_write ()                | void conn_write () {
    0x0040b28c lui gp, 2                     |     
    0x0040b290 addiu gp, gp, -0x26c          |     
    0x0040b294 addu gp, gp, t9               |     gp += t9;
    0x0040b298 addiu sp, sp, -0x48           |     
    0x0040b29c sw ra, 0x44(sp)               |     *(var_44h) = ra;
    0x0040b2a0 sw fp, 0x40(sp)               |     *(var_40h) = fp;
    0x0040b2a4 sw s0, 0x3c(sp)               |     *(var_3ch) = s0;
    0x0040b2a8 move fp, sp                   |     fp = sp;
    0x0040b2ac sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0040b2b0 sw a0, 0x2c(fp)               |     *(arg_2ch) = a0;
    0x0040b2b4 sw a1, 0x28(fp)               |     *(arg_28h) = a1;
    0x0040b2b8 sw a2, 0x24(fp)               |     *(arg_24h) = a2;
    0x0040b2bc lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040b2c0 lw t8, (t8)                   |     t8 = *(t8);
    0x0040b2c4 sw t8, 0x34(fp)               |     *(arg_34h) = t8;
    0x0040b2c8 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
                                             |     if (t8 != 0) {
    0x0040b2cc beqz t8, 0x40b2ec             |         
    0x0040b2d0 nop                           |         
    0x0040b2d4 lw t8, 0x28(fp)               |         t8 = *(arg_28h);
                                             |         if (t8 == 0) {
    0x0040b2d8 beqz t8, 0x40b2ec             |             goto label_0;
                                             |         }
    0x0040b2dc nop                           |         
    0x0040b2e0 lw t8, 0x24(fp)               |         t8 = *(arg_24h);
                                             |         if (t8 != 0) {
    0x0040b2e4 bnez t8, 0x40b35c             |             goto label_1;
                                             |         }
    0x0040b2e8 nop                           |         
                                             |     }
                                             | label_0:
    0x0040b2ec lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040b2f0 lw s0, (t8)                   |     s0 = *(t8);
    0x0040b2f4 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040afa0 */
    0x0040b2f8 addiu t8, t8, -0x5060         |     t8 += -0x5060;
    0x0040b2fc move t9, t8                   |     t9 = t8;
    0x0040b300 jalr t9                       |     t9 ();
    0x0040b304 nop                           |     
    0x0040b308 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040b30c move t8, v0                   |     t8 = v0;
    0x0040b310 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str.conn_write */
    0x0040b314 addiu v0, v0, 0x914           |     v0 += 0x914;
    0x0040b318 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0040b31c addiu v0, zero, 0x1a          |     v0 = 0x1a;
    0x0040b320 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0040b324 move a0, s0                   |     a0 = s0;
    0x0040b328 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x0040b32c addiu a1, v0, 0x894           |     a1 = v0 + 0x894;
    0x0040b330 move a2, t8                   |     a2 = t8;
    0x0040b334 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040b338 addiu a3, t8, 0x8c0           |     a3 = t8 + 0x8c0;
    0x0040b33c lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040b340 move t9, t8                   |     t9 = t8;
    0x0040b344 jalr t9                       |     t9 ();
    0x0040b348 nop                           |     
    0x0040b34c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040b350 addiu t8, zero, -1            |     t8 = -1;
    0x0040b354 b 0x40b458                    |     goto label_2;
    0x0040b358 nop                           |     
                                             | label_1:
    0x0040b35c lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x0040b360 lw t8, (t8)                   |     t8 = *(t8);
    0x0040b364 addiu v0, zero, 1             |     v0 = 1;
                                             |     if (t8 != v0) {
    0x0040b368 beq t8, v0, 0x40b384          |         
    0x0040b36c nop                           |         
    0x0040b370 addiu v0, zero, 2             |         v0 = 2;
                                             |         if (t8 == v0) {
    0x0040b374 beq t8, v0, 0x40b3b8          |             goto label_3;
                                             |         }
    0x0040b378 nop                           |         
    0x0040b37c b 0x40b3ec                    |         goto label_4;
    0x0040b380 nop                           |         
                                             |     }
    0x0040b384 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x0040b388 lw t8, 4(t8)                  |     t8 = *((t8 + 1));
    0x0040b38c move a0, t8                   |     a0 = t8;
    0x0040b390 lw a1, 0x28(fp)               |     a1 = *(arg_28h);
    0x0040b394 lw a2, 0x24(fp)               |     a2 = *(arg_24h);
    0x0040b398 lw t8, -0x7fc8(gp)            |     t8 = sym.tcp_write;
    0x0040b39c move t9, t8                   |     t9 = t8;
    0x0040b3a0 jalr t9                       |     t9 ();
    0x0040b3a4 nop                           |     
    0x0040b3a8 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040b3ac move t8, v0                   |     t8 = v0;
    0x0040b3b0 b 0x40b458                    |     goto label_2;
    0x0040b3b4 nop                           |     
                                             | label_3:
    0x0040b3b8 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x0040b3bc lw t8, 4(t8)                  |     t8 = *((t8 + 1));
    0x0040b3c0 move a0, t8                   |     a0 = t8;
    0x0040b3c4 lw a1, 0x28(fp)               |     a1 = *(arg_28h);
    0x0040b3c8 lw a2, 0x24(fp)               |     a2 = *(arg_24h);
    0x0040b3cc lw t8, -0x7fb0(gp)            |     t8 = sym.tls_write;
    0x0040b3d0 move t9, t8                   |     t9 = t8;
    0x0040b3d4 jalr t9                       |     t9 ();
    0x0040b3d8 nop                           |     
    0x0040b3dc lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040b3e0 move t8, v0                   |     t8 = v0;
    0x0040b3e4 b 0x40b458                    |     goto label_2;
    0x0040b3e8 nop                           |     
                                             | label_4:
    0x0040b3ec lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040b3f0 lw s0, (t8)                   |     s0 = *(t8);
    0x0040b3f4 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040afa0 */
    0x0040b3f8 addiu t8, t8, -0x5060         |     t8 += -0x5060;
    0x0040b3fc move t9, t8                   |     t9 = t8;
    0x0040b400 jalr t9                       |     t9 ();
    0x0040b404 nop                           |     
    0x0040b408 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040b40c move t8, v0                   |     t8 = v0;
    0x0040b410 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str.conn_write */
    0x0040b414 addiu v0, v0, 0x914           |     v0 += 0x914;
    0x0040b418 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0040b41c addiu v0, zero, 0x1f          |     v0 = 0x1f;
    0x0040b420 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0040b424 move a0, s0                   |     a0 = s0;
    0x0040b428 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d_Connection_type_error__n */
    0x0040b42c addiu a1, v0, 0x8d4           |     a1 = v0 + 0x8d4;
    0x0040b430 move a2, t8                   |     a2 = t8;
    0x0040b434 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040b438 addiu a3, t8, 0x8c0           |     a3 = t8 + 0x8c0;
    0x0040b43c lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040b440 move t9, t8                   |     t9 = t8;
    0x0040b444 jalr t9                       |     t9 ();
    0x0040b448 nop                           |     
    0x0040b44c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040b450 nop                           |     
    0x0040b454 addiu t8, zero, -1            |     t8 = -1;
                                             | label_2:
    0x0040b458 move v0, t8                   |     v0 = t8;
    0x0040b45c lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040b460 lw v1, 0x34(fp)               |     v1 = *(arg_34h);
    0x0040b464 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040b468 beq v1, t8, 0x40b480          |         
    0x0040b46c nop                           |         
    0x0040b470 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040b474 move t9, t8                   |         t9 = t8;
    0x0040b478 jalr t9                       |         t9 ();
    0x0040b47c nop                           |         
                                             |     }
    0x0040b480 move sp, fp                   |     
    0x0040b484 lw ra, 0x44(sp)               |     ra = *(var_44h);
    0x0040b488 lw fp, 0x40(sp)               |     fp = *(var_40h);
    0x0040b48c lw s0, 0x3c(sp)               |     s0 = *(var_3ch);
    0x0040b490 addiu sp, sp, 0x48            |     
    0x0040b494 jr ra                         |     return v1;
    0x0040b498 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40759c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.file_lock_set_char_ ()       | void file_lock_set_char_ () {
                                             |     /* file_lock_set(char*) */
    0x0040759c lui gp, 2                     |     
    0x004075a0 addiu gp, gp, 0x3a84          |     
    0x004075a4 addu gp, gp, t9               |     gp += t9;
    0x004075a8 addiu sp, sp, -0x70           |     
    0x004075ac sw ra, 0x6c(sp)               |     *(var_6ch) = ra;
    0x004075b0 sw fp, 0x68(sp)               |     *(var_68h) = fp;
    0x004075b4 sw s1, 0x64(sp)               |     *(var_64h) = s1;
    0x004075b8 sw s0, 0x60(sp)               |     *(var_60h) = s0;
    0x004075bc move fp, sp                   |     fp = sp;
    0x004075c0 sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x004075c4 sw a0, 0x2c(fp)               |     *(arg_2ch) = a0;
    0x004075c8 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x004075cc lw t8, (t8)                   |     t8 = *(t8);
    0x004075d0 sw t8, 0x5c(fp)               |     *(arg_5ch) = t8;
    0x004075d4 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
                                             |     if (t8 == 0) {
    0x004075d8 bnez t8, 0x407650             |         
    0x004075dc nop                           |         
    0x004075e0 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x004075e4 lw s0, (t8)                   |         s0 = *(t8);
    0x004075e8 lw t8, -0x7fd0(gp)            |         t8 = *(gp);
                                             |         /* aav.0x004074c0 */
    0x004075ec addiu t8, t8, 0x74c0          |         t8 += 0x74c0;
    0x004075f0 move t9, t8                   |         t9 = t8;
    0x004075f4 jalr t9                       |         t9 ();
    0x004075f8 nop                           |         
    0x004075fc lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x00407600 move t8, v0                   |         t8 = v0;
    0x00407604 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.file_lock_set */
    0x00407608 addiu v0, v0, -0x120          |         v0 += -0x120;
    0x0040760c sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x00407610 addiu v0, zero, 0xd           |         v0 = 0xd;
    0x00407614 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x00407618 move a0, s0                   |         a0 = s0;
    0x0040761c lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_Parameter_is_NULL._n */
    0x00407620 addiu a1, v0, -0x1bc          |         a1 = v0 + -0x1bc;
    0x00407624 move a2, t8                   |         a2 = t8;
    0x00407628 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x0040762c addiu a3, t8, -0x18c          |         a3 = t8 + -0x18c;
    0x00407630 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x00407634 move t9, t8                   |         t9 = t8;
    0x00407638 jalr t9                       |         t9 ();
    0x0040763c nop                           |         
    0x00407640 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x00407644 addiu t8, zero, -1            |         t8 = -1;
    0x00407648 b 0x407820                    |         goto label_0;
    0x0040764c nop                           |         
                                             |     }
    0x00407650 addiu t8, zero, 1             |     t8 = 1;
    0x00407654 sh t8, 0x38(fp)               |     *(arg_38h) = t8;
    0x00407658 sh zero, 0x3a(fp)             |     *(arg_3ah) = 0;
    0x0040765c move t8, zero                 |     t8 = 0;
    0x00407660 move t9, zero                 |     t9 = 0;
    0x00407664 sw t8, 0x40(fp)               |     *(arg_40h) = t8;
    0x00407668 sw t9, 0x44(fp)               |     *(arg_44h) = t9;
    0x0040766c addiu t8, zero, 1             |     t8 = 1;
    0x00407670 move t9, zero                 |     t9 = 0;
    0x00407674 mtlo t8                       |     __asm ("mtlo t8");
    0x00407678 mthi t9                       |     __asm ("mthi t9");
    0x0040767c mflo t8                       |     __asm ("mflo t8");
    0x00407680 mfhi t9                       |     __asm ("mfhi t9");
    0x00407684 sw t8, 0x48(fp)               |     *(arg_48h) = t8;
    0x00407688 sw t9, 0x4c(fp)               |     *(arg_4ch) = t9;
    0x0040768c lw a0, 0x2c(fp)               |     a0 = *(arg_2ch);
    0x00407690 addiu a1, zero, 0x101         |     a1 = 0x101;
    0x00407694 addiu a2, zero, 0x284         |     a2 = 0x284;
    0x00407698 lw t8, -0x7f00(gp)            |     t8 = sym.imp.open64;
    0x0040769c move t9, t8                   |     t9 = t8;
    0x004076a0 jalr t9                       |     t9 ();
    0x004076a4 nop                           |     
    0x004076a8 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x004076ac move t8, v0                   |     t8 = v0;
    0x004076b0 sw t8, 0x34(fp)               |     *(arg_34h) = t8;
    0x004076b4 lw t8, 0x34(fp)               |     t8 = *(arg_34h);
                                             |     if (t8 == 0) {
    0x004076b8 bnez t8, 0x407738             |         
    0x004076bc nop                           |         
    0x004076c0 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x004076c4 lw s0, (t8)                   |         s0 = *(t8);
    0x004076c8 lw t8, -0x7fd0(gp)            |         t8 = *(gp);
                                             |         /* aav.0x004074c0 */
    0x004076cc addiu t8, t8, 0x74c0          |         t8 += 0x74c0;
    0x004076d0 move t9, t8                   |         t9 = t8;
    0x004076d4 jalr t9                       |         t9 ();
    0x004076d8 nop                           |         
    0x004076dc lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x004076e0 move t8, v0                   |         t8 = v0;
    0x004076e4 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.file_lock_set */
    0x004076e8 addiu v0, v0, -0x120          |         v0 += -0x120;
    0x004076ec sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x004076f0 addiu v0, zero, 0x19          |         v0 = 0x19;
    0x004076f4 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x004076f8 lw v0, 0x2c(fp)               |         v0 = *(arg_2ch);
    0x004076fc sw v0, 0x18(sp)               |         *(var_18h) = v0;
    0x00407700 move a0, s0                   |         a0 = s0;
    0x00407704 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_Open__s_fail__n */
    0x00407708 addiu a1, v0, -0x178          |         a1 = v0 + -0x178;
    0x0040770c move a2, t8                   |         a2 = t8;
    0x00407710 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x00407714 addiu a3, t8, -0x18c          |         a3 = t8 + -0x18c;
    0x00407718 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040771c move t9, t8                   |         t9 = t8;
    0x00407720 jalr t9                       |         t9 ();
    0x00407724 nop                           |         
    0x00407728 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040772c addiu t8, zero, -1            |         t8 = -1;
    0x00407730 b 0x407820                    |         goto label_0;
    0x00407734 nop                           |         
                                             |     }
    0x00407738 addiu t8, fp, 0x38            |     t8 = fp + 0x38;
    0x0040773c lw a0, 0x34(fp)               |     a0 = *(arg_34h);
    0x00407740 addiu a1, zero, 0x22          |     a1 = 0x22;
    0x00407744 move a2, t8                   |     a2 = t8;
    0x00407748 lw t8, -0x7e28(gp)            |     t8 = sym.imp.fcntl64;
    0x0040774c move t9, t8                   |     t9 = t8;
    0x00407750 jalr t9                       |     t9 ();
    0x00407754 nop                           |     
    0x00407758 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040775c move t8, v0                   |     t8 = v0;
    0x00407760 addiu t8, t8, 1               |     t8++;
    0x00407764 sltiu t8, t8, 1               |     t8 = (t8 < 1) ? 1 : 0;
    0x00407768 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x0040776c beqz t8, 0x40781c             |         
    0x00407770 nop                           |         
    0x00407774 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x00407778 lw s1, (t8)                   |         s1 = *(t8);
    0x0040777c lw t8, -0x7fd0(gp)            |         t8 = *(gp);
                                             |         /* aav.0x004074c0 */
    0x00407780 addiu t8, t8, 0x74c0          |         t8 += 0x74c0;
    0x00407784 move t9, t8                   |         t9 = t8;
    0x00407788 jalr t9                       |         t9 ();
    0x0040778c nop                           |         
    0x00407790 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x00407794 move s0, v0                   |         s0 = v0;
    0x00407798 lw t8, -0x7e20(gp)            |         t8 = sym.imp.__errno_location;
    0x0040779c move t9, t8                   |         t9 = t8;
    0x004077a0 jalr t9                       |         t9 ();
    0x004077a4 nop                           |         
    0x004077a8 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x004077ac move t8, v0                   |         t8 = v0;
    0x004077b0 lw t8, (t8)                   |         t8 = *(t8);
    0x004077b4 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.file_lock_set */
    0x004077b8 addiu v0, v0, -0x120          |         v0 += -0x120;
    0x004077bc sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x004077c0 addiu v0, zero, 0x1d          |         v0 = 0x1d;
    0x004077c4 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x004077c8 sw t8, 0x18(sp)               |         *(var_18h) = t8;
    0x004077cc move a0, s1                   |         a0 = s1;
    0x004077d0 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_set_lock_fail____d__n */
    0x004077d4 addiu a1, t8, -0x150          |         a1 = t8 + -0x150;
    0x004077d8 move a2, s0                   |         a2 = s0;
    0x004077dc lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x004077e0 addiu a3, t8, -0x18c          |         a3 = t8 + -0x18c;
    0x004077e4 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x004077e8 move t9, t8                   |         t9 = t8;
    0x004077ec jalr t9                       |         t9 ();
    0x004077f0 nop                           |         
    0x004077f4 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x004077f8 lw a0, 0x34(fp)               |         a0 = *(arg_34h);
    0x004077fc lw t8, -0x7ea4(gp)            |         t8 = sym.imp.close;
    0x00407800 move t9, t8                   |         t9 = t8;
    0x00407804 jalr t9                       |         t9 ();
    0x00407808 nop                           |         
    0x0040780c lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x00407810 addiu t8, zero, -1            |         t8 = -1;
    0x00407814 b 0x407820                    |         goto label_0;
    0x00407818 nop                           |         
                                             |     }
    0x0040781c move t8, zero                 |     t8 = 0;
                                             | label_0:
    0x00407820 move v0, t8                   |     v0 = t8;
    0x00407824 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x00407828 lw v1, 0x5c(fp)               |     v1 = *(arg_5ch);
    0x0040782c lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x00407830 beq v1, t8, 0x407848          |         
    0x00407834 nop                           |         
    0x00407838 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040783c move t9, t8                   |         t9 = t8;
    0x00407840 jalr t9                       |         t9 ();
    0x00407844 nop                           |         
                                             |     }
    0x00407848 move sp, fp                   |     
    0x0040784c lw ra, 0x6c(sp)               |     ra = *(var_6ch);
    0x00407850 lw fp, 0x68(sp)               |     fp = *(var_68h);
    0x00407854 lw s1, 0x64(sp)               |     s1 = *(var_64h);
    0x00407858 lw s0, 0x60(sp)               |     s0 = *(var_60h);
    0x0040785c addiu sp, sp, 0x70            |     
    0x00407860 jr ra                         |     return v1;
    0x00407864 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40a8ac */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.http_create ()               | void http_create () {
    0x0040a8ac lui gp, 2                     |     
    0x0040a8b0 addiu gp, gp, 0x774           |     
    0x0040a8b4 addu gp, gp, t9               |     gp += t9;
    0x0040a8b8 addiu sp, sp, -0x48           |     
    0x0040a8bc sw ra, 0x44(sp)               |     *(var_44h) = ra;
    0x0040a8c0 sw fp, 0x40(sp)               |     *(var_40h) = fp;
    0x0040a8c4 sw s0, 0x3c(sp)               |     *(var_3ch) = s0;
    0x0040a8c8 move fp, sp                   |     fp = sp;
    0x0040a8cc sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0040a8d0 sw a0, 0x24(fp)               |     *(arg_24h) = a0;
    0x0040a8d4 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040a8d8 lw t8, (t8)                   |     t8 = *(t8);
    0x0040a8dc sw t8, 0x34(fp)               |     *(arg_34h) = t8;
    0x0040a8e0 sw zero, 0x2c(fp)             |     *(arg_2ch) = 0;
    0x0040a8e4 addiu a0, zero, 1             |     a0 = 1;
    0x0040a8e8 addiu a1, zero, 4             |     a1 = 4;
    0x0040a8ec lw t8, -0x7e1c(gp)            |     t8 = sym.imp.calloc;
    0x0040a8f0 move t9, t8                   |     t9 = t8;
    0x0040a8f4 jalr t9                       |     t9 ();
    0x0040a8f8 nop                           |     
    0x0040a8fc lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040a900 move t8, v0                   |     t8 = v0;
    0x0040a904 sw t8, 0x30(fp)               |     *(arg_30h) = t8;
    0x0040a908 lw t8, 0x30(fp)               |     t8 = *(arg_30h);
                                             |     if (t8 == 0) {
    0x0040a90c bnez t8, 0x40a91c             |         
    0x0040a910 nop                           |         
    0x0040a914 addiu t8, zero, 0xc           |         t8 = 0xc;
    0x0040a918 sw t8, 0x2c(fp)               |         *(arg_2ch) = t8;
                                             |     }
    0x0040a91c lw t8, 0x30(fp)               |     t8 = *(arg_30h);
    0x0040a920 move a0, t8                   |     a0 = t8;
    0x0040a924 lw t8, -0x7fd4(gp)            |     t8 = sym.tcp_create;
    0x0040a928 move t9, t8                   |     t9 = t8;
    0x0040a92c jalr t9                       |     t9 ();
    0x0040a930 nop                           |     
    0x0040a934 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040a938 move t8, v0                   |     t8 = v0;
    0x0040a93c sltu t8, zero, t8             |     t8 = (0 < t8) ? 1 : 0;
    0x0040a940 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x0040a944 beqz t8, 0x40a9b8             |         
    0x0040a948 nop                           |         
    0x0040a94c lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040a950 lw s0, (t8)                   |         s0 = *(t8);
    0x0040a954 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040a7d0 */
    0x0040a958 addiu t8, t8, -0x5830         |         t8 += -0x5830;
    0x0040a95c move t9, t8                   |         t9 = t8;
    0x0040a960 jalr t9                       |         t9 ();
    0x0040a964 nop                           |         
    0x0040a968 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040a96c move t8, v0                   |         t8 = v0;
    0x0040a970 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.http_create */
    0x0040a974 addiu v0, v0, 0x83c           |         v0 += 0x83c;
    0x0040a978 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0040a97c addiu v0, zero, 0x11          |         v0 = 0x11;
    0x0040a980 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x0040a984 move a0, s0                   |         a0 = s0;
    0x0040a988 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_tcp_create___fail__n */
    0x0040a98c addiu a1, v0, 0x754           |         a1 = v0 + 0x754;
    0x0040a990 move a2, t8                   |         a2 = t8;
    0x0040a994 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x0040a998 addiu a3, t8, 0x784           |         a3 = t8 + 0x784;
    0x0040a99c lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040a9a0 move t9, t8                   |         t9 = t8;
    0x0040a9a4 jalr t9                       |         t9 ();
    0x0040a9a8 nop                           |         
    0x0040a9ac lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040a9b0 addiu t8, zero, -1            |         t8 = -1;
    0x0040a9b4 sw t8, 0x2c(fp)               |         *(arg_2ch) = t8;
                                             |     }
    0x0040a9b8 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
                                             |     if (t8 != 0) {
    0x0040a9bc beqz t8, 0x40a9e4             |         
    0x0040a9c0 nop                           |         
    0x0040a9c4 lw a0, 0x30(fp)               |         a0 = *(arg_30h);
    0x0040a9c8 lw t8, -0x7f80(gp)            |         t8 = sym.http_destroy;
    0x0040a9cc move t9, t8                   |         t9 = t8;
    0x0040a9d0 jalr t9                       |         t9 ();
    0x0040a9d4 nop                           |         
    0x0040a9d8 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040a9dc b 0x40a9f0                    |         goto label_0;
    0x0040a9e0 nop                           |         
                                             |     }
    0x0040a9e4 lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x0040a9e8 lw v0, 0x30(fp)               |     v0 = *(arg_30h);
    0x0040a9ec sw v0, (t8)                   |     *(t8) = v0;
                                             | label_0:
    0x0040a9f0 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x0040a9f4 move v0, t8                   |     v0 = t8;
    0x0040a9f8 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040a9fc lw v1, 0x34(fp)               |     v1 = *(arg_34h);
    0x0040aa00 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040aa04 beq v1, t8, 0x40aa1c          |         
    0x0040aa08 nop                           |         
    0x0040aa0c lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040aa10 move t9, t8                   |         t9 = t8;
    0x0040aa14 jalr t9                       |         t9 ();
    0x0040aa18 nop                           |         
                                             |     }
    0x0040aa1c move sp, fp                   |     
    0x0040aa20 lw ra, 0x44(sp)               |     ra = *(var_44h);
    0x0040aa24 lw fp, 0x40(sp)               |     fp = *(var_40h);
    0x0040aa28 lw s0, 0x3c(sp)               |     s0 = *(var_3ch);
    0x0040aa2c addiu sp, sp, 0x48            |     
    0x0040aa30 jr ra                         |     return v1;
    0x0040aa34 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40ae3c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.http_destroy ()              | void http_destroy () {
    0x0040ae3c lui gp, 2                     |     
    0x0040ae40 addiu gp, gp, 0x1e4           |     
    0x0040ae44 addu gp, gp, t9               |     gp += t9;
    0x0040ae48 addiu sp, sp, -0x40           |     
    0x0040ae4c sw ra, 0x3c(sp)               |     *(var_3ch) = ra;
    0x0040ae50 sw fp, 0x38(sp)               |     *(var_38h) = fp;
    0x0040ae54 sw s0, 0x34(sp)               |     *(var_34h) = s0;
    0x0040ae58 move fp, sp                   |     fp = sp;
    0x0040ae5c sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0040ae60 sw a0, 0x24(fp)               |     *(arg_24h) = a0;
    0x0040ae64 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040ae68 lw t8, (t8)                   |     t8 = *(t8);
    0x0040ae6c sw t8, 0x2c(fp)               |     *(arg_2ch) = t8;
    0x0040ae70 sw zero, 0x28(fp)             |     *(arg_28h) = 0;
    0x0040ae74 lw t8, 0x24(fp)               |     t8 = *(arg_24h);
                                             |     if (t8 == 0) {
    0x0040ae78 bnez t8, 0x40aef0             |         
    0x0040ae7c nop                           |         
    0x0040ae80 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040ae84 lw s0, (t8)                   |         s0 = *(t8);
    0x0040ae88 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040a7d0 */
    0x0040ae8c addiu t8, t8, -0x5830         |         t8 += -0x5830;
    0x0040ae90 move t9, t8                   |         t9 = t8;
    0x0040ae94 jalr t9                       |         t9 ();
    0x0040ae98 nop                           |         
    0x0040ae9c lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040aea0 move t8, v0                   |         t8 = v0;
    0x0040aea4 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.http_destroy */
    0x0040aea8 addiu v0, v0, 0x864           |         v0 += 0x864;
    0x0040aeac sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0040aeb0 addiu v0, zero, 0x50          |         v0 = 0x50;
    0x0040aeb4 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x0040aeb8 move a0, s0                   |         a0 = s0;
    0x0040aebc lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x0040aec0 addiu a1, v0, 0x798           |         a1 = v0 + 0x798;
    0x0040aec4 move a2, t8                   |         a2 = t8;
    0x0040aec8 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x0040aecc addiu a3, t8, 0x784           |         a3 = t8 + 0x784;
    0x0040aed0 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040aed4 move t9, t8                   |         t9 = t8;
    0x0040aed8 jalr t9                       |         t9 ();
    0x0040aedc nop                           |         
    0x0040aee0 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040aee4 addiu t8, zero, -1            |         t8 = -1;
    0x0040aee8 b 0x40af54                    |         goto label_0;
    0x0040aeec nop                           |         
                                             |     }
    0x0040aef0 lw a0, 0x24(fp)               |     a0 = *(arg_24h);
    0x0040aef4 lw t8, -0x7f84(gp)            |     t8 = sym.http_disconnect;
    0x0040aef8 move t9, t8                   |     t9 = t8;
    0x0040aefc jalr t9                       |     t9 ();
    0x0040af00 nop                           |     
    0x0040af04 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040af08 lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x0040af0c lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (t8 != 0) {
    0x0040af10 beqz t8, 0x40af38             |         
    0x0040af14 nop                           |         
    0x0040af18 lw t8, 0x24(fp)               |         t8 = *(arg_24h);
    0x0040af1c lw t8, (t8)                   |         t8 = *(t8);
    0x0040af20 move a0, t8                   |         a0 = t8;
    0x0040af24 lw t8, -0x7fbc(gp)            |         t8 = sym.tcp_destroy;
    0x0040af28 move t9, t8                   |         t9 = t8;
    0x0040af2c jalr t9                       |         t9 ();
    0x0040af30 nop                           |         
    0x0040af34 lw gp, 0x18(fp)               |         gp = *(arg_18h);
                                             |     }
    0x0040af38 lw a0, 0x24(fp)               |     a0 = *(arg_24h);
    0x0040af3c lw t8, -0x7f0c(gp)            |     t8 = sym.imp.free;
    0x0040af40 move t9, t8                   |     t9 = t8;
    0x0040af44 jalr t9                       |     t9 ();
    0x0040af48 nop                           |     
    0x0040af4c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040af50 lw t8, 0x28(fp)               |     t8 = *(arg_28h);
                                             | label_0:
    0x0040af54 move v0, t8                   |     v0 = t8;
    0x0040af58 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040af5c lw v1, 0x2c(fp)               |     v1 = *(arg_2ch);
    0x0040af60 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040af64 beq v1, t8, 0x40af7c          |         
    0x0040af68 nop                           |         
    0x0040af6c lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040af70 move t9, t8                   |         t9 = t8;
    0x0040af74 jalr t9                       |         t9 ();
    0x0040af78 nop                           |         
                                             |     }
    0x0040af7c move sp, fp                   |     
    0x0040af80 lw ra, 0x3c(sp)               |     ra = *(var_3ch);
    0x0040af84 lw fp, 0x38(sp)               |     fp = *(var_38h);
    0x0040af88 lw s0, 0x34(sp)               |     s0 = *(var_34h);
    0x0040af8c addiu sp, sp, 0x40            |     
    0x0040af90 jr ra                         |     return v1;
    0x0040af94 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40ad18 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.http_disconnect ()           | void http_disconnect () {
    0x0040ad18 lui gp, 2                     |     
    0x0040ad1c addiu gp, gp, 0x308           |     
    0x0040ad20 addu gp, gp, t9               |     gp += t9;
    0x0040ad24 addiu sp, sp, -0x40           |     
    0x0040ad28 sw ra, 0x3c(sp)               |     *(var_3ch) = ra;
    0x0040ad2c sw fp, 0x38(sp)               |     *(var_38h) = fp;
    0x0040ad30 sw s0, 0x34(sp)               |     *(var_34h) = s0;
    0x0040ad34 move fp, sp                   |     fp = sp;
    0x0040ad38 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0040ad3c sw a0, 0x24(fp)               |     *(arg_24h) = a0;
    0x0040ad40 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040ad44 lw t8, (t8)                   |     t8 = *(t8);
    0x0040ad48 sw t8, 0x2c(fp)               |     *(arg_2ch) = t8;
    0x0040ad4c sw zero, 0x28(fp)             |     *(arg_28h) = 0;
    0x0040ad50 lw t8, 0x24(fp)               |     t8 = *(arg_24h);
                                             |     if (t8 == 0) {
    0x0040ad54 bnez t8, 0x40adcc             |         
    0x0040ad58 nop                           |         
    0x0040ad5c lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040ad60 lw s0, (t8)                   |         s0 = *(t8);
    0x0040ad64 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040a7d0 */
    0x0040ad68 addiu t8, t8, -0x5830         |         t8 += -0x5830;
    0x0040ad6c move t9, t8                   |         t9 = t8;
    0x0040ad70 jalr t9                       |         t9 ();
    0x0040ad74 nop                           |         
    0x0040ad78 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040ad7c move t8, v0                   |         t8 = v0;
    0x0040ad80 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.http_disconnect */
    0x0040ad84 addiu v0, v0, 0x854           |         v0 += 0x854;
    0x0040ad88 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0040ad8c addiu v0, zero, 0x46          |         v0 = 0x46;
    0x0040ad90 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x0040ad94 move a0, s0                   |         a0 = s0;
    0x0040ad98 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x0040ad9c addiu a1, v0, 0x798           |         a1 = v0 + 0x798;
    0x0040ada0 move a2, t8                   |         a2 = t8;
    0x0040ada4 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x0040ada8 addiu a3, t8, 0x784           |         a3 = t8 + 0x784;
    0x0040adac lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040adb0 move t9, t8                   |         t9 = t8;
    0x0040adb4 jalr t9                       |         t9 ();
    0x0040adb8 nop                           |         
    0x0040adbc lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040adc0 addiu t8, zero, -1            |         t8 = -1;
    0x0040adc4 b 0x40adf8                    |         goto label_0;
    0x0040adc8 nop                           |         
                                             |     }
    0x0040adcc lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x0040add0 lw t8, (t8)                   |     t8 = *(t8);
    0x0040add4 move a0, t8                   |     a0 = t8;
    0x0040add8 lw t8, -0x7fc0(gp)            |     t8 = sym.tcp_disconnect;
    0x0040addc move t9, t8                   |     t9 = t8;
    0x0040ade0 jalr t9                       |     t9 ();
    0x0040ade4 nop                           |     
    0x0040ade8 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040adec move t8, v0                   |     t8 = v0;
    0x0040adf0 sw t8, 0x28(fp)               |     *(arg_28h) = t8;
    0x0040adf4 lw t8, 0x28(fp)               |     t8 = *(arg_28h);
                                             | label_0:
    0x0040adf8 move v0, t8                   |     v0 = t8;
    0x0040adfc lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040ae00 lw v1, 0x2c(fp)               |     v1 = *(arg_2ch);
    0x0040ae04 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040ae08 beq v1, t8, 0x40ae20          |         
    0x0040ae0c nop                           |         
    0x0040ae10 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040ae14 move t9, t8                   |         t9 = t8;
    0x0040ae18 jalr t9                       |         t9 ();
    0x0040ae1c nop                           |         
                                             |     }
    0x0040ae20 move sp, fp                   |     
    0x0040ae24 lw ra, 0x3c(sp)               |     ra = *(var_3ch);
    0x0040ae28 lw fp, 0x38(sp)               |     fp = *(var_38h);
    0x0040ae2c lw s0, 0x34(sp)               |     s0 = *(var_34h);
    0x0040ae30 addiu sp, sp, 0x40            |     
    0x0040ae34 jr ra                         |     return v1;
    0x0040ae38 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40aa38 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.http_listen ()               | void http_listen () {
    0x0040aa38 lui gp, 2                     |     
    0x0040aa3c addiu gp, gp, 0x5e8           |     
    0x0040aa40 addu gp, gp, t9               |     gp += t9;
    0x0040aa44 addiu sp, sp, -0x50           |     
    0x0040aa48 sw ra, 0x4c(sp)               |     *(var_4ch) = ra;
    0x0040aa4c sw fp, 0x48(sp)               |     *(var_48h) = fp;
    0x0040aa50 sw s0, 0x44(sp)               |     *(var_44h) = s0;
    0x0040aa54 move fp, sp                   |     fp = sp;
    0x0040aa58 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0040aa5c sw a0, 0x2c(fp)               |     *(arg_2ch) = a0;
    0x0040aa60 sw a1, 0x28(fp)               |     *(arg_28h) = a1;
    0x0040aa64 sw a2, 0x24(fp)               |     *(arg_24h) = a2;
    0x0040aa68 sw a3, 0x20(fp)               |     *(arg_20h) = a3;
    0x0040aa6c lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040aa70 lw t8, (t8)                   |     t8 = *(t8);
    0x0040aa74 sw t8, 0x3c(fp)               |     *(arg_3ch) = t8;
    0x0040aa78 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
                                             |     if (t8 != 0) {
    0x0040aa7c beqz t8, 0x40aaa8             |         
    0x0040aa80 nop                           |         
    0x0040aa84 lw t8, 0x28(fp)               |         t8 = *(arg_28h);
                                             |         if (t8 == 0) {
    0x0040aa88 beqz t8, 0x40aaa8             |             goto label_0;
                                             |         }
    0x0040aa8c nop                           |         
    0x0040aa90 lw t8, 0x24(fp)               |         t8 = *(arg_24h);
                                             |         if (t8 == 0) {
    0x0040aa94 beqz t8, 0x40aaa8             |             goto label_0;
                                             |         }
    0x0040aa98 nop                           |         
    0x0040aa9c lw t8, 0x20(fp)               |         t8 = *(arg_20h);
                                             |         if (t8 != 0) {
    0x0040aaa0 bnez t8, 0x40ab18             |             goto label_1;
                                             |         }
    0x0040aaa4 nop                           |         
                                             |     }
                                             | label_0:
    0x0040aaa8 lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040aaac lw s0, (t8)                   |     s0 = *(t8);
    0x0040aab0 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040a7d0 */
    0x0040aab4 addiu t8, t8, -0x5830         |     t8 += -0x5830;
    0x0040aab8 move t9, t8                   |     t9 = t8;
    0x0040aabc jalr t9                       |     t9 ();
    0x0040aac0 nop                           |     
    0x0040aac4 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040aac8 move t8, v0                   |     t8 = v0;
    0x0040aacc lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str.http_listen */
    0x0040aad0 addiu v0, v0, 0x848           |     v0 += 0x848;
    0x0040aad4 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0040aad8 addiu v0, zero, 0x20          |     v0 = 0x20;
    0x0040aadc sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0040aae0 move a0, s0                   |     a0 = s0;
    0x0040aae4 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x0040aae8 addiu a1, v0, 0x798           |     a1 = v0 + 0x798;
    0x0040aaec move a2, t8                   |     a2 = t8;
    0x0040aaf0 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040aaf4 addiu a3, t8, 0x784           |     a3 = t8 + 0x784;
    0x0040aaf8 lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040aafc move t9, t8                   |     t9 = t8;
    0x0040ab00 jalr t9                       |     t9 ();
    0x0040ab04 nop                           |     
    0x0040ab08 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040ab0c addiu t8, zero, -1            |     t8 = -1;
    0x0040ab10 b 0x40acd4                    |     goto label_2;
    0x0040ab14 nop                           |     
                                             | label_1:
    0x0040ab18 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x0040ab1c lw t8, (t8)                   |     t8 = *(t8);
    0x0040ab20 move a0, t8                   |     a0 = t8;
    0x0040ab24 lw a1, 0x28(fp)               |     a1 = *(arg_28h);
    0x0040ab28 lw a2, 0x24(fp)               |     a2 = *(arg_24h);
    0x0040ab2c lw t8, -0x7f64(gp)            |     t8 = sym.tcp_listen;
    0x0040ab30 move t9, t8                   |     t9 = t8;
    0x0040ab34 jalr t9                       |     t9 ();
    0x0040ab38 nop                           |     
    0x0040ab3c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040ab40 move t8, v0                   |     t8 = v0;
    0x0040ab44 sltu t8, zero, t8             |     t8 = (0 < t8) ? 1 : 0;
    0x0040ab48 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 == 0) {
    0x0040ab4c beqz t8, 0x40abc4             |         goto label_3;
                                             |     }
    0x0040ab50 nop                           |     
    0x0040ab54 lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040ab58 lw s0, (t8)                   |     s0 = *(t8);
    0x0040ab5c lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040a7d0 */
    0x0040ab60 addiu t8, t8, -0x5830         |     t8 += -0x5830;
    0x0040ab64 move t9, t8                   |     t9 = t8;
    0x0040ab68 jalr t9                       |     t9 ();
    0x0040ab6c nop                           |     
    0x0040ab70 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040ab74 move t8, v0                   |     t8 = v0;
    0x0040ab78 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str.http_listen */
    0x0040ab7c addiu v0, v0, 0x848           |     v0 += 0x848;
    0x0040ab80 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0040ab84 addiu v0, zero, 0x23          |     v0 = 0x23;
    0x0040ab88 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0040ab8c move a0, s0                   |     a0 = s0;
    0x0040ab90 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d_tcp_listen___fail__n */
    0x0040ab94 addiu a1, v0, 0x7c4           |     a1 = v0 + 0x7c4;
    0x0040ab98 move a2, t8                   |     a2 = t8;
    0x0040ab9c lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040aba0 addiu a3, t8, 0x784           |     a3 = t8 + 0x784;
    0x0040aba4 lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040aba8 move t9, t8                   |     t9 = t8;
    0x0040abac jalr t9                       |     t9 ();
    0x0040abb0 nop                           |     
    0x0040abb4 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040abb8 addiu t8, zero, -1            |     t8 = -1;
    0x0040abbc b 0x40acd4                    |     goto label_2;
    0x0040abc0 nop                           |     
                                             |     do {
                                             | label_3:
    0x0040abc4 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040abc8 lw s0, (t8)                   |         s0 = *(t8);
    0x0040abcc lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040a7d0 */
    0x0040abd0 addiu t8, t8, -0x5830         |         t8 += -0x5830;
    0x0040abd4 move t9, t8                   |         t9 = t8;
    0x0040abd8 jalr t9                       |         t9 ();
    0x0040abdc nop                           |         
    0x0040abe0 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040abe4 move t8, v0                   |         t8 = v0;
    0x0040abe8 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.http_listen */
    0x0040abec addiu v0, v0, 0x848           |         v0 += 0x848;
    0x0040abf0 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0040abf4 addiu v0, zero, 0x28          |         v0 = 0x28;
    0x0040abf8 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x0040abfc move a0, s0                   |         a0 = s0;
    0x0040ac00 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_waiting_new_connections_..._n */
    0x0040ac04 addiu a1, v0, 0x7f4           |         a1 = v0 + 0x7f4;
    0x0040ac08 move a2, t8                   |         a2 = t8;
    0x0040ac0c lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x0040ac10 addiu a3, t8, 0x82c           |         a3 = t8 + 0x82c;
    0x0040ac14 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040ac18 move t9, t8                   |         t9 = t8;
    0x0040ac1c jalr t9                       |         t9 ();
    0x0040ac20 nop                           |         
    0x0040ac24 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040ac28 lw t8, 0x2c(fp)               |         t8 = *(arg_2ch);
    0x0040ac2c lw t8, (t8)                   |         t8 = *(t8);
    0x0040ac30 move a0, t8                   |         a0 = t8;
    0x0040ac34 lw t8, -0x7f60(gp)            |         t8 = sym.tcp_accept;
    0x0040ac38 move t9, t8                   |         t9 = t8;
    0x0040ac3c jalr t9                       |         t9 ();
    0x0040ac40 nop                           |         
    0x0040ac44 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040ac48 move t8, v0                   |         t8 = v0;
    0x0040ac4c sw t8, 0x34(fp)               |         *(arg_34h) = t8;
    0x0040ac50 lw t8, -0x7ef4(gp)            |         t8 = sym.imp.fork;
    0x0040ac54 move t9, t8                   |         t9 = t8;
    0x0040ac58 jalr t9                       |         t9 ();
    0x0040ac5c nop                           |         
    0x0040ac60 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040ac64 sw v0, 0x38(fp)               |         *(arg_38h) = v0;
    0x0040ac68 lw t8, 0x38(fp)               |         t8 = *(arg_38h);
                                             |         if (t8 == 0) {
    0x0040ac6c bnez t8, 0x40ac9c             |             
    0x0040ac70 nop                           |             
    0x0040ac74 lw t8, 0x20(fp)               |             t8 = *(arg_20h);
    0x0040ac78 lw a0, 0x34(fp)               |             a0 = *(arg_34h);
    0x0040ac7c move t9, t8                   |             t9 = t8;
    0x0040ac80 jalr t9                       |             t9 ();
    0x0040ac84 nop                           |             
    0x0040ac88 lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x0040ac8c nop                           |             
    0x0040ac90 move t8, zero                 |             t8 = 0;
    0x0040ac94 b 0x40acd4                    |             goto label_2;
    0x0040ac98 nop                           |             
                                             |         }
    0x0040ac9c lw a0, 0x34(fp)               |         a0 = *(arg_34h);
    0x0040aca0 lw t8, -0x7fc0(gp)            |         t8 = sym.tcp_disconnect;
    0x0040aca4 move t9, t8                   |         t9 = t8;
    0x0040aca8 jalr t9                       |         t9 ();
    0x0040acac nop                           |         
    0x0040acb0 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040acb4 lw a0, 0x34(fp)               |         a0 = *(arg_34h);
    0x0040acb8 lw t8, -0x7fbc(gp)            |         t8 = sym.tcp_destroy;
    0x0040acbc move t9, t8                   |         t9 = t8;
    0x0040acc0 jalr t9                       |         t9 ();
    0x0040acc4 nop                           |         
    0x0040acc8 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040accc b 0x40abc4                    |         
                                             |     } while (1);
    0x0040acd0 nop                           |     
                                             | label_2:
    0x0040acd4 move v0, t8                   |     v0 = t8;
    0x0040acd8 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040acdc lw v1, 0x3c(fp)               |     v1 = *(arg_3ch);
    0x0040ace0 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040ace4 beq v1, t8, 0x40acfc          |         
    0x0040ace8 nop                           |         
    0x0040acec lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040acf0 move t9, t8                   |         t9 = t8;
    0x0040acf4 jalr t9                       |         t9 ();
    0x0040acf8 nop                           |         
                                             |     }
    0x0040acfc move sp, fp                   |     
    0x0040ad00 lw ra, 0x4c(sp)               |     ra = *(var_4ch);
    0x0040ad04 lw fp, 0x48(sp)               |     fp = *(var_48h);
    0x0040ad08 lw s0, 0x44(sp)               |     s0 = *(var_44h);
    0x0040ad0c addiu sp, sp, 0x50            |     
    0x0040ad10 jr ra                         |     return v1;
    0x0040ad14 nop                           |     
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40ccf0 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.message_check_field ()           | void message_check_field () {
    0x0040ccf0 lui gp, 2                         |     
    0x0040ccf4 addiu gp, gp, -0x1cd0             |     
    0x0040ccf8 addu gp, gp, t9                   |     gp += t9;
    0x0040ccfc addiu sp, sp, -0x40               |     
    0x0040cd00 sw ra, 0x3c(sp)                   |     *(var_3ch) = ra;
    0x0040cd04 sw fp, 0x38(sp)                   |     *(var_38h) = fp;
    0x0040cd08 sw s0, 0x34(sp)                   |     *(var_34h) = s0;
    0x0040cd0c move fp, sp                       |     fp = sp;
    0x0040cd10 sw gp, 0x18(sp)                   |     *(var_18h) = gp;
    0x0040cd14 sw a0, 0x24(fp)                   |     *(arg_24h) = a0;
    0x0040cd18 lw t8, -0x7e24(gp)                |     t8 = *((gp - 8073));
    0x0040cd1c lw t8, (t8)                       |     t8 = *(t8);
    0x0040cd20 sw t8, 0x2c(fp)                   |     *(arg_2ch) = t8;
    0x0040cd24 lw t8, 0x24(fp)                   |     t8 = *(arg_24h);
                                                 |     if (t8 == 0) {
    0x0040cd28 bnez t8, 0x40cda0                 |         
    0x0040cd2c nop                               |         
    0x0040cd30 lw t8, -0x7e90(gp)                |         t8 = *((gp - 8100));
    0x0040cd34 lw s0, (t8)                       |         s0 = *(t8);
    0x0040cd38 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
                                                 |         /* aav.0x0040b650 */
    0x0040cd3c addiu t8, t8, -0x49b0             |         t8 += -0x49b0;
    0x0040cd40 move t9, t8                       |         t9 = t8;
    0x0040cd44 jalr t9                           |         t9 ();
    0x0040cd48 nop                               |         
    0x0040cd4c lw gp, 0x18(fp)                   |         gp = *(arg_18h);
    0x0040cd50 move t8, v0                       |         t8 = v0;
    0x0040cd54 lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str.message_check_field */
    0x0040cd58 addiu v0, v0, 0x105c              |         v0 += 0x105c;
    0x0040cd5c sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x0040cd60 addiu v0, zero, 0x79              |         v0 = 0x79;
    0x0040cd64 sw v0, 0x14(sp)                   |         *(var_14h) = v0;
    0x0040cd68 move a0, s0                       |         a0 = s0;
    0x0040cd6c lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x0040cd70 addiu a1, v0, 0xac4               |         a1 = v0 + 0xac4;
    0x0040cd74 move a2, t8                       |         a2 = t8;
    0x0040cd78 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
    0x0040cd7c addiu a3, t8, 0x988               |         a3 = t8 + 0x988;
    0x0040cd80 lw t8, -0x7ee0(gp)                |         t8 = sym.imp.fprintf
    0x0040cd84 move t9, t8                       |         t9 = t8;
    0x0040cd88 jalr t9                           |         t9 ();
    0x0040cd8c nop                               |         
    0x0040cd90 lw gp, 0x18(fp)                   |         gp = *(arg_18h);
    0x0040cd94 addiu t8, zero, -1                |         t8 = -1;
    0x0040cd98 b 0x40d0a4                        |         goto label_0;
    0x0040cd9c nop                               |         
                                                 |     }
    0x0040cda0 lw t8, 0x24(fp)                   |     t8 = *(arg_24h);
    0x0040cda4 lw t8, (t8)                       |     t8 = *(t8);
                                                 |     if (t8 == 0) {
    0x0040cda8 bnez t8, 0x40ce20                 |         
    0x0040cdac nop                               |         
    0x0040cdb0 lw t8, -0x7e90(gp)                |         t8 = *((gp - 8100));
    0x0040cdb4 lw s0, (t8)                       |         s0 = *(t8);
    0x0040cdb8 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
                                                 |         /* aav.0x0040b650 */
    0x0040cdbc addiu t8, t8, -0x49b0             |         t8 += -0x49b0;
    0x0040cdc0 move t9, t8                       |         t9 = t8;
    0x0040cdc4 jalr t9                           |         t9 ();
    0x0040cdc8 nop                               |         
    0x0040cdcc lw gp, 0x18(fp)                   |         gp = *(arg_18h);
    0x0040cdd0 move t8, v0                       |         t8 = v0;
    0x0040cdd4 lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str.message_check_field */
    0x0040cdd8 addiu v0, v0, 0x105c              |         v0 += 0x105c;
    0x0040cddc sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x0040cde0 addiu v0, zero, 0x7a              |         v0 = 0x7a;
    0x0040cde4 sw v0, 0x14(sp)                   |         *(var_14h) = v0;
    0x0040cde8 move a0, s0                       |         a0 = s0;
    0x0040cdec lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str._s____18s____24s__5d_No_message_string__n */
    0x0040cdf0 addiu a1, v0, 0xdbc               |         a1 = v0 + 0xdbc;
    0x0040cdf4 move a2, t8                       |         a2 = t8;
    0x0040cdf8 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
    0x0040cdfc addiu a3, t8, 0x988               |         a3 = t8 + 0x988;
    0x0040ce00 lw t8, -0x7ee0(gp)                |         t8 = sym.imp.fprintf
    0x0040ce04 move t9, t8                       |         t9 = t8;
    0x0040ce08 jalr t9                           |         t9 ();
    0x0040ce0c nop                               |         
    0x0040ce10 lw gp, 0x18(fp)                   |         gp = *(arg_18h);
    0x0040ce14 addiu t8, zero, -1                |         t8 = -1;
    0x0040ce18 b 0x40d0a4                        |         goto label_0;
    0x0040ce1c nop                               |         
                                                 |     }
    0x0040ce20 lw t8, 0x24(fp)                   |     t8 = *(arg_24h);
    0x0040ce24 lb t8, 4(t8)                      |     t8 = *((t8 + 4));
                                                 |     if (t8 == 0) {
    0x0040ce28 bnez t8, 0x40cea0                 |         
    0x0040ce2c nop                               |         
    0x0040ce30 lw t8, -0x7e90(gp)                |         t8 = *((gp - 8100));
    0x0040ce34 lw s0, (t8)                       |         s0 = *(t8);
    0x0040ce38 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
                                                 |         /* aav.0x0040b650 */
    0x0040ce3c addiu t8, t8, -0x49b0             |         t8 += -0x49b0;
    0x0040ce40 move t9, t8                       |         t9 = t8;
    0x0040ce44 jalr t9                           |         t9 ();
    0x0040ce48 nop                               |         
    0x0040ce4c lw gp, 0x18(fp)                   |         gp = *(arg_18h);
    0x0040ce50 move t8, v0                       |         t8 = v0;
    0x0040ce54 lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str.message_check_field */
    0x0040ce58 addiu v0, v0, 0x105c              |         v0 += 0x105c;
    0x0040ce5c sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x0040ce60 addiu v0, zero, 0x7b              |         v0 = 0x7b;
    0x0040ce64 sw v0, 0x14(sp)                   |         *(var_14h) = v0;
    0x0040ce68 move a0, s0                       |         a0 = s0;
    0x0040ce6c lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str._s____18s____24s__5d_No_command_field_in_message._n */
    0x0040ce70 addiu a1, v0, 0xdec               |         a1 = v0 + 0xdec;
    0x0040ce74 move a2, t8                       |         a2 = t8;
    0x0040ce78 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
    0x0040ce7c addiu a3, t8, 0xe28               |         a3 = t8 + 0xe28;
    0x0040ce80 lw t8, -0x7ee0(gp)                |         t8 = sym.imp.fprintf
    0x0040ce84 move t9, t8                       |         t9 = t8;
    0x0040ce88 jalr t9                           |         t9 ();
    0x0040ce8c nop                               |         
    0x0040ce90 lw gp, 0x18(fp)                   |         gp = *(arg_18h);
    0x0040ce94 addiu t8, zero, -1                |         t8 = -1;
    0x0040ce98 b 0x40d0a4                        |         goto label_0;
    0x0040ce9c nop                               |         
                                                 |     }
    0x0040cea0 lw t8, 0x24(fp)                   |     t8 = *(arg_24h);
    0x0040cea4 lb t8, 0x44(t8)                   |     t8 = *((t8 + 68));
                                                 |     if (t8 == 0) {
    0x0040cea8 bnez t8, 0x40cf20                 |         
    0x0040ceac nop                               |         
    0x0040ceb0 lw t8, -0x7e90(gp)                |         t8 = *((gp - 8100));
    0x0040ceb4 lw s0, (t8)                       |         s0 = *(t8);
    0x0040ceb8 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
                                                 |         /* aav.0x0040b650 */
    0x0040cebc addiu t8, t8, -0x49b0             |         t8 += -0x49b0;
    0x0040cec0 move t9, t8                       |         t9 = t8;
    0x0040cec4 jalr t9                           |         t9 ();
    0x0040cec8 nop                               |         
    0x0040cecc lw gp, 0x18(fp)                   |         gp = *(arg_18h);
    0x0040ced0 move t8, v0                       |         t8 = v0;
    0x0040ced4 lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str.message_check_field */
    0x0040ced8 addiu v0, v0, 0x105c              |         v0 += 0x105c;
    0x0040cedc sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x0040cee0 addiu v0, zero, 0x7c              |         v0 = 0x7c;
    0x0040cee4 sw v0, 0x14(sp)                   |         *(var_14h) = v0;
    0x0040cee8 move a0, s0                       |         a0 = s0;
    0x0040ceec lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str._s____18s____24s__5d_No_rtsp_host_field_in_message._n */
    0x0040cef0 addiu a1, v0, 0xe3c               |         a1 = v0 + 0xe3c;
    0x0040cef4 move a2, t8                       |         a2 = t8;
    0x0040cef8 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
    0x0040cefc addiu a3, t8, 0xe28               |         a3 = t8 + 0xe28;
    0x0040cf00 lw t8, -0x7ee0(gp)                |         t8 = sym.imp.fprintf
    0x0040cf04 move t9, t8                       |         t9 = t8;
    0x0040cf08 jalr t9                           |         t9 ();
    0x0040cf0c nop                               |         
    0x0040cf10 lw gp, 0x18(fp)                   |         gp = *(arg_18h);
    0x0040cf14 addiu t8, zero, -1                |         t8 = -1;
    0x0040cf18 b 0x40d0a4                        |         goto label_0;
    0x0040cf1c nop                               |         
                                                 |     }
    0x0040cf20 lw t8, 0x24(fp)                   |     t8 = *(arg_24h);
    0x0040cf24 addiu t8, t8, 0x104               |     t8 += 0x104;
                                                 |     if (t8 == 0) {
    0x0040cf28 bnez t8, 0x40cfa0                 |         
    0x0040cf2c nop                               |         
    0x0040cf30 lw t8, -0x7e90(gp)                |         t8 = *((gp - 8100));
    0x0040cf34 lw s0, (t8)                       |         s0 = *(t8);
    0x0040cf38 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
                                                 |         /* aav.0x0040b650 */
    0x0040cf3c addiu t8, t8, -0x49b0             |         t8 += -0x49b0;
    0x0040cf40 move t9, t8                       |         t9 = t8;
    0x0040cf44 jalr t9                           |         t9 ();
    0x0040cf48 nop                               |         
    0x0040cf4c lw gp, 0x18(fp)                   |         gp = *(arg_18h);
    0x0040cf50 move t8, v0                       |         t8 = v0;
    0x0040cf54 lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str.message_check_field */
    0x0040cf58 addiu v0, v0, 0x105c              |         v0 += 0x105c;
    0x0040cf5c sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x0040cf60 addiu v0, zero, 0x7d              |         v0 = 0x7d;
    0x0040cf64 sw v0, 0x14(sp)                   |         *(var_14h) = v0;
    0x0040cf68 move a0, s0                       |         a0 = s0;
    0x0040cf6c lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str._s____18s____24s__5d_No_rtsp_port_field_in_message._n */
    0x0040cf70 addiu a1, v0, 0xe78               |         a1 = v0 + 0xe78;
    0x0040cf74 move a2, t8                       |         a2 = t8;
    0x0040cf78 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
    0x0040cf7c addiu a3, t8, 0xe28               |         a3 = t8 + 0xe28;
    0x0040cf80 lw t8, -0x7ee0(gp)                |         t8 = sym.imp.fprintf
    0x0040cf84 move t9, t8                       |         t9 = t8;
    0x0040cf88 jalr t9                           |         t9 ();
    0x0040cf8c nop                               |         
    0x0040cf90 lw gp, 0x18(fp)                   |         gp = *(arg_18h);
    0x0040cf94 addiu t8, zero, -1                |         t8 = -1;
    0x0040cf98 b 0x40d0a4                        |         goto label_0;
    0x0040cf9c nop                               |         
                                                 |     }
    0x0040cfa0 lw t8, 0x24(fp)                   |     t8 = *(arg_24h);
    0x0040cfa4 lb t8, 0x10c(t8)                  |     t8 = *((t8 + 268));
                                                 |     if (t8 == 0) {
    0x0040cfa8 bnez t8, 0x40d020                 |         
    0x0040cfac nop                               |         
    0x0040cfb0 lw t8, -0x7e90(gp)                |         t8 = *((gp - 8100));
    0x0040cfb4 lw s0, (t8)                       |         s0 = *(t8);
    0x0040cfb8 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
                                                 |         /* aav.0x0040b650 */
    0x0040cfbc addiu t8, t8, -0x49b0             |         t8 += -0x49b0;
    0x0040cfc0 move t9, t8                       |         t9 = t8;
    0x0040cfc4 jalr t9                           |         t9 ();
    0x0040cfc8 nop                               |         
    0x0040cfcc lw gp, 0x18(fp)                   |         gp = *(arg_18h);
    0x0040cfd0 move t8, v0                       |         t8 = v0;
    0x0040cfd4 lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str.message_check_field */
    0x0040cfd8 addiu v0, v0, 0x105c              |         v0 += 0x105c;
    0x0040cfdc sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x0040cfe0 addiu v0, zero, 0x7e              |         v0 = 0x7e;
    0x0040cfe4 sw v0, 0x14(sp)                   |         *(var_14h) = v0;
    0x0040cfe8 move a0, s0                       |         a0 = s0;
    0x0040cfec lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str._s____18s____24s__5d_No_rtsp_token_field_in_message._n */
    0x0040cff0 addiu a1, v0, 0xeb4               |         a1 = v0 + 0xeb4;
    0x0040cff4 move a2, t8                       |         a2 = t8;
    0x0040cff8 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
    0x0040cffc addiu a3, t8, 0xe28               |         a3 = t8 + 0xe28;
    0x0040d000 lw t8, -0x7ee0(gp)                |         t8 = sym.imp.fprintf
    0x0040d004 move t9, t8                       |         t9 = t8;
    0x0040d008 jalr t9                           |         t9 ();
    0x0040d00c nop                               |         
    0x0040d010 lw gp, 0x18(fp)                   |         gp = *(arg_18h);
    0x0040d014 addiu t8, zero, -1                |         t8 = -1;
    0x0040d018 b 0x40d0a4                        |         goto label_0;
    0x0040d01c nop                               |         
                                                 |     }
    0x0040d020 lw t8, 0x24(fp)                   |     t8 = *(arg_24h);
    0x0040d024 lb t8, 0x58c(t8)                  |     t8 = *((t8 + 1420));
                                                 |     if (t8 == 0) {
    0x0040d028 bnez t8, 0x40d0a0                 |         
    0x0040d02c nop                               |         
    0x0040d030 lw t8, -0x7e90(gp)                |         t8 = *((gp - 8100));
    0x0040d034 lw s0, (t8)                       |         s0 = *(t8);
    0x0040d038 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
                                                 |         /* aav.0x0040b650 */
    0x0040d03c addiu t8, t8, -0x49b0             |         t8 += -0x49b0;
    0x0040d040 move t9, t8                       |         t9 = t8;
    0x0040d044 jalr t9                           |         t9 ();
    0x0040d048 nop                               |         
    0x0040d04c lw gp, 0x18(fp)                   |         gp = *(arg_18h);
    0x0040d050 move t8, v0                       |         t8 = v0;
    0x0040d054 lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str.message_check_field */
    0x0040d058 addiu v0, v0, 0x105c              |         v0 += 0x105c;
    0x0040d05c sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x0040d060 addiu v0, zero, 0x80              |         v0 = 0x80;
    0x0040d064 sw v0, 0x14(sp)                   |         *(var_14h) = v0;
    0x0040d068 move a0, s0                       |         a0 = s0;
    0x0040d06c lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str._s____18s____24s__5d_No_mac_field_in_message._n */
    0x0040d070 addiu a1, v0, 0xef0               |         a1 = v0 + 0xef0;
    0x0040d074 move a2, t8                       |         a2 = t8;
    0x0040d078 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
    0x0040d07c addiu a3, t8, 0xe28               |         a3 = t8 + 0xe28;
    0x0040d080 lw t8, -0x7ee0(gp)                |         t8 = sym.imp.fprintf
    0x0040d084 move t9, t8                       |         t9 = t8;
    0x0040d088 jalr t9                           |         t9 ();
    0x0040d08c nop                               |         
    0x0040d090 lw gp, 0x18(fp)                   |         gp = *(arg_18h);
    0x0040d094 addiu t8, zero, -1                |         t8 = -1;
    0x0040d098 b 0x40d0a4                        |         goto label_0;
    0x0040d09c nop                               |         
                                                 |     }
    0x0040d0a0 move t8, zero                     |     t8 = 0;
                                                 | label_0:
    0x0040d0a4 move v0, t8                       |     v0 = t8;
    0x0040d0a8 lw t8, -0x7e24(gp)                |     t8 = *((gp - 8073));
    0x0040d0ac lw v1, 0x2c(fp)                   |     v1 = *(arg_2ch);
    0x0040d0b0 lw t8, (t8)                       |     t8 = *(t8);
                                                 |     if (v1 != t8) {
    0x0040d0b4 beq v1, t8, 0x40d0cc              |         
    0x0040d0b8 nop                               |         
    0x0040d0bc lw t8, -0x7e84(gp)                |         t8 = sym.imp.__stack_chk_fail;
    0x0040d0c0 move t9, t8                       |         t9 = t8;
    0x0040d0c4 jalr t9                           |         t9 ();
    0x0040d0c8 nop                               |         
                                                 |     }
    0x0040d0cc move sp, fp                       |     
    0x0040d0d0 lw ra, 0x3c(sp)                   |     ra = *(var_3ch);
    0x0040d0d4 lw fp, 0x38(sp)                   |     fp = *(var_38h);
    0x0040d0d8 lw s0, 0x34(sp)                   |     s0 = *(var_34h);
    0x0040d0dc addiu sp, sp, 0x40                |     
    0x0040d0e0 jr ra                             |     return v1;
    0x0040d0e4 nop                               |     
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40d0e8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.message_check_value ()           | void message_check_value () {
    0x0040d0e8 lui gp, 2                         |     
    0x0040d0ec addiu gp, gp, -0x20c8             |     
    0x0040d0f0 addu gp, gp, t9                   |     gp += t9;
    0x0040d0f4 addiu sp, sp, -0x48               |     
    0x0040d0f8 sw ra, 0x44(sp)                   |     *(var_44h) = ra;
    0x0040d0fc sw fp, 0x40(sp)                   |     *(var_40h) = fp;
    0x0040d100 sw s1, 0x3c(sp)                   |     *(var_3ch) = s1;
    0x0040d104 sw s0, 0x38(sp)                   |     *(var_38h) = s0;
    0x0040d108 move fp, sp                       |     fp = sp;
    0x0040d10c sw gp, 0x20(sp)                   |     *(var_20h) = gp;
    0x0040d110 sw a0, 0x2c(fp)                   |     *(arg_2ch) = a0;
    0x0040d114 lw t8, -0x7e24(gp)                |     t8 = *((gp - 8073));
    0x0040d118 lw t8, (t8)                       |     t8 = *(t8);
    0x0040d11c sw t8, 0x34(fp)                   |     *(arg_34h) = t8;
    0x0040d120 lw t8, 0x2c(fp)                   |     t8 = *(arg_2ch);
                                                 |     if (t8 == 0) {
    0x0040d124 bnez t8, 0x40d19c                 |         
    0x0040d128 nop                               |         
    0x0040d12c lw t8, -0x7e90(gp)                |         t8 = *((gp - 8100));
    0x0040d130 lw s0, (t8)                       |         s0 = *(t8);
    0x0040d134 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
                                                 |         /* aav.0x0040b650 */
    0x0040d138 addiu t8, t8, -0x49b0             |         t8 += -0x49b0;
    0x0040d13c move t9, t8                       |         t9 = t8;
    0x0040d140 jalr t9                           |         t9 ();
    0x0040d144 nop                               |         
    0x0040d148 lw gp, 0x20(fp)                   |         gp = *(arg_20h);
    0x0040d14c move t8, v0                       |         t8 = v0;
    0x0040d150 lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str.message_check_value */
    0x0040d154 addiu v0, v0, 0x1070              |         v0 += 0x1070;
    0x0040d158 sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x0040d15c addiu v0, zero, 0x89              |         v0 = 0x89;
    0x0040d160 sw v0, 0x14(sp)                   |         *(var_14h) = v0;
    0x0040d164 move a0, s0                       |         a0 = s0;
    0x0040d168 lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x0040d16c addiu a1, v0, 0xac4               |         a1 = v0 + 0xac4;
    0x0040d170 move a2, t8                       |         a2 = t8;
    0x0040d174 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
    0x0040d178 addiu a3, t8, 0x988               |         a3 = t8 + 0x988;
    0x0040d17c lw t8, -0x7ee0(gp)                |         t8 = sym.imp.fprintf
    0x0040d180 move t9, t8                       |         t9 = t8;
    0x0040d184 jalr t9                           |         t9 ();
    0x0040d188 nop                               |         
    0x0040d18c lw gp, 0x20(fp)                   |         gp = *(arg_20h);
    0x0040d190 addiu t8, zero, -1                |         t8 = -1;
    0x0040d194 b 0x40d46c                        |         goto label_0;
    0x0040d198 nop                               |         
                                                 |     }
    0x0040d19c lw t8, 0x2c(fp)                   |     t8 = *(arg_2ch);
    0x0040d1a0 lw t8, 0x698(t8)                  |     t8 = *((t8 + 422));
                                                 |     if (t8 != 0) {
    0x0040d1a4 beqz t8, 0x40d228                 |         
    0x0040d1a8 nop                               |         
    0x0040d1ac lw t8, -0x7e90(gp)                |         t8 = *((gp - 8100));
    0x0040d1b0 lw s0, (t8)                       |         s0 = *(t8);
    0x0040d1b4 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
                                                 |         /* aav.0x0040b650 */
    0x0040d1b8 addiu t8, t8, -0x49b0             |         t8 += -0x49b0;
    0x0040d1bc move t9, t8                       |         t9 = t8;
    0x0040d1c0 jalr t9                           |         t9 ();
    0x0040d1c4 nop                               |         
    0x0040d1c8 lw gp, 0x20(fp)                   |         gp = *(arg_20h);
    0x0040d1cc move t8, v0                       |         t8 = v0;
    0x0040d1d0 lw v0, 0x2c(fp)                   |         v0 = *(arg_2ch);
    0x0040d1d4 lw v0, 0x698(v0)                  |         v0 = *((v0 + 422));
    0x0040d1d8 lw v1, -0x7fd8(gp)                |         v1 = *((gp - 8182));
                                                 |         /* str.message_check_value */
    0x0040d1dc addiu v1, v1, 0x1070              |         v1 += 0x1070;
    0x0040d1e0 sw v1, 0x10(sp)                   |         *(var_10h) = v1;
    0x0040d1e4 addiu v1, zero, 0x8a              |         v1 = 0x8a;
    0x0040d1e8 sw v1, 0x14(sp)                   |         *(var_14h) = v1;
    0x0040d1ec sw v0, 0x18(sp)                   |         *(var_18h) = v0;
    0x0040d1f0 move a0, s0                       |         a0 = s0;
    0x0040d1f4 lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str._s____18s____24s__5d_error_code___d__n */
    0x0040d1f8 addiu a1, v0, 0xf28               |         a1 = v0 + 0xf28;
    0x0040d1fc move a2, t8                       |         a2 = t8;
    0x0040d200 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
    0x0040d204 addiu a3, t8, 0x988               |         a3 = t8 + 0x988;
    0x0040d208 lw t8, -0x7ee0(gp)                |         t8 = sym.imp.fprintf
    0x0040d20c move t9, t8                       |         t9 = t8;
    0x0040d210 jalr t9                           |         t9 ();
    0x0040d214 nop                               |         
    0x0040d218 lw gp, 0x20(fp)                   |         gp = *(arg_20h);
    0x0040d21c addiu t8, zero, -1                |         t8 = -1;
    0x0040d220 b 0x40d46c                        |         goto label_0;
    0x0040d224 nop                               |         
                                                 |     }
    0x0040d228 lw t8, 0x2c(fp)                   |     t8 = *(arg_2ch);
    0x0040d22c lb t8, 0x18c(t8)                  |     t8 = *((t8 + 396));
                                                 |     if (t8 == 0) {
    0x0040d230 bnez t8, 0x40d2a8                 |         
    0x0040d234 nop                               |         
    0x0040d238 lw t8, -0x7e90(gp)                |         t8 = *((gp - 8100));
    0x0040d23c lw s0, (t8)                       |         s0 = *(t8);
    0x0040d240 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
                                                 |         /* aav.0x0040b650 */
    0x0040d244 addiu t8, t8, -0x49b0             |         t8 += -0x49b0;
    0x0040d248 move t9, t8                       |         t9 = t8;
    0x0040d24c jalr t9                           |         t9 ();
    0x0040d250 nop                               |         
    0x0040d254 lw gp, 0x20(fp)                   |         gp = *(arg_20h);
    0x0040d258 move t8, v0                       |         t8 = v0;
    0x0040d25c lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str.message_check_value */
    0x0040d260 addiu v0, v0, 0x1070              |         v0 += 0x1070;
    0x0040d264 sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x0040d268 addiu v0, zero, 0x8b              |         v0 = 0x8b;
    0x0040d26c sw v0, 0x14(sp)                   |         *(var_14h) = v0;
    0x0040d270 move a0, s0                       |         a0 = s0;
    0x0040d274 lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str._s____18s____24s__5d_No_rtsp_url_field_in_message._n */
    0x0040d278 addiu a1, v0, 0xf54               |         a1 = v0 + 0xf54;
    0x0040d27c move a2, t8                       |         a2 = t8;
    0x0040d280 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
    0x0040d284 addiu a3, t8, 0xe28               |         a3 = t8 + 0xe28;
    0x0040d288 lw t8, -0x7ee0(gp)                |         t8 = sym.imp.fprintf
    0x0040d28c move t9, t8                       |         t9 = t8;
    0x0040d290 jalr t9                           |         t9 ();
    0x0040d294 nop                               |         
    0x0040d298 lw gp, 0x20(fp)                   |         gp = *(arg_20h);
    0x0040d29c move t8, zero                     |         t8 = 0;
    0x0040d2a0 b 0x40d46c                        |         goto label_0;
    0x0040d2a4 nop                               |         
                                                 |     }
    0x0040d2a8 lw t8, 0x2c(fp)                   |     t8 = *(arg_2ch);
    0x0040d2ac addiu t8, t8, 0x18c               |     t8 += 0x18c;
    0x0040d2b0 move a0, t8                       |     a0 = t8;
    0x0040d2b4 lw t8, -0x7f28(gp)                |     t8 = sym.imp.strdup;
    0x0040d2b8 move t9, t8                       |     t9 = t8;
    0x0040d2bc jalr t9                           |     t9 ();
    0x0040d2c0 nop                               |     
    0x0040d2c4 lw gp, 0x20(fp)                   |     gp = *(arg_20h);
    0x0040d2c8 move t8, v0                       |     t8 = v0;
    0x0040d2cc sw t8, 0x30(fp)                   |     *(arg_30h) = t8;
    0x0040d2d0 lw t8, 0x30(fp)                   |     t8 = *(arg_30h);
                                                 |     if (t8 == 0) {
    0x0040d2d4 bnez t8, 0x40d34c                 |         
    0x0040d2d8 nop                               |         
    0x0040d2dc lw t8, -0x7e90(gp)                |         t8 = *((gp - 8100));
    0x0040d2e0 lw s0, (t8)                       |         s0 = *(t8);
    0x0040d2e4 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
                                                 |         /* aav.0x0040b650 */
    0x0040d2e8 addiu t8, t8, -0x49b0             |         t8 += -0x49b0;
    0x0040d2ec move t9, t8                       |         t9 = t8;
    0x0040d2f0 jalr t9                           |         t9 ();
    0x0040d2f4 nop                               |         
    0x0040d2f8 lw gp, 0x20(fp)                   |         gp = *(arg_20h);
    0x0040d2fc move t8, v0                       |         t8 = v0;
    0x0040d300 lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str.message_check_value */
    0x0040d304 addiu v0, v0, 0x1070              |         v0 += 0x1070;
    0x0040d308 sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x0040d30c addiu v0, zero, 0x8f              |         v0 = 0x8f;
    0x0040d310 sw v0, 0x14(sp)                   |         *(var_14h) = v0;
    0x0040d314 move a0, s0                       |         a0 = s0;
    0x0040d318 lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str._s____18s____24s__5d_strdup___fail__n */
    0x0040d31c addiu a1, v0, 0xb20               |         a1 = v0 + 0xb20;
    0x0040d320 move a2, t8                       |         a2 = t8;
    0x0040d324 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
    0x0040d328 addiu a3, t8, 0x988               |         a3 = t8 + 0x988;
    0x0040d32c lw t8, -0x7ee0(gp)                |         t8 = sym.imp.fprintf
    0x0040d330 move t9, t8                       |         t9 = t8;
    0x0040d334 jalr t9                           |         t9 ();
    0x0040d338 nop                               |         
    0x0040d33c lw gp, 0x20(fp)                   |         gp = *(arg_20h);
    0x0040d340 addiu t8, zero, -1                |         t8 = -1;
    0x0040d344 b 0x40d46c                        |         goto label_0;
    0x0040d348 nop                               |         
                                                 |     }
    0x0040d34c lw t8, 0x2c(fp)                   |     t8 = *(arg_2ch);
    0x0040d350 addiu t8, t8, 0x18c               |     t8 += 0x18c;
    0x0040d354 lw a0, 0x30(fp)                   |     a0 = *(arg_30h);
    0x0040d358 move a1, t8                       |     a1 = t8;
    0x0040d35c lw t8, -0x7fd8(gp)                |     t8 = *((gp - 8182));
                                                 |     /* aav.0x0040b72c */
    0x0040d360 addiu t8, t8, -0x48d4             |     t8 += -0x48d4;
    0x0040d364 move t9, t8                       |     t9 = t8;
    0x0040d368 jalr t9                           |     t9 ();
    0x0040d36c nop                               |     
    0x0040d370 lw gp, 0x20(fp)                   |     gp = *(arg_20h);
    0x0040d374 lw a0, 0x30(fp)                   |     a0 = *(arg_30h);
    0x0040d378 lw t8, -0x7f0c(gp)                |     t8 = sym.imp.free;
    0x0040d37c move t9, t8                       |     t9 = t8;
    0x0040d380 jalr t9                           |     t9 ();
    0x0040d384 nop                               |     
    0x0040d388 lw gp, 0x20(fp)                   |     gp = *(arg_20h);
    0x0040d38c lw t8, 0x2c(fp)                   |     t8 = *(arg_2ch);
    0x0040d390 addiu s1, t8, 0x69c               |     s1 = t8 + 0x69c;
    0x0040d394 lw t8, 0x2c(fp)                   |     t8 = *(arg_2ch);
    0x0040d398 addiu s0, t8, 0x18c               |     s0 = t8 + 0x18c;
    0x0040d39c lw t8, 0x2c(fp)                   |     t8 = *(arg_2ch);
    0x0040d3a0 addiu t8, t8, 0x18c               |     t8 += 0x18c;
    0x0040d3a4 move a0, t8                       |     a0 = t8;
    0x0040d3a8 lw t8, -0x7e48(gp)                |     t8 = sym.imp.strlen;
    0x0040d3ac move t9, t8                       |     t9 = t8;
    0x0040d3b0 jalr t9                           |     t9 ();
    0x0040d3b4 nop                               |     
    0x0040d3b8 lw gp, 0x20(fp)                   |     gp = *(arg_20h);
    0x0040d3bc move t8, v0                       |     t8 = v0;
    0x0040d3c0 move a0, s1                       |     a0 = s1;
    0x0040d3c4 move a1, s0                       |     a1 = s0;
    0x0040d3c8 move a2, t8                       |     a2 = t8;
    0x0040d3cc lw t8, -0x7fd8(gp)                |     t8 = *((gp - 8182));
                                                 |     /* aav.0x0040b9e4 */
    0x0040d3d0 addiu t8, t8, -0x461c             |     t8 += -0x461c;
    0x0040d3d4 move t9, t8                       |     t9 = t8;
    0x0040d3d8 jalr t9                           |     t9 ();
    0x0040d3dc nop                               |     
    0x0040d3e0 lw gp, 0x20(fp)                   |     gp = *(arg_20h);
    0x0040d3e4 move t8, v0                       |     t8 = v0;
    0x0040d3e8 sltu t8, zero, t8                 |     t8 = (0 < t8) ? 1 : 0;
    0x0040d3ec andi t8, t8, 0xff                 |     t8 &= 0xff;
                                                 |     if (t8 != 0) {
    0x0040d3f0 beqz t8, 0x40d468                 |         
    0x0040d3f4 nop                               |         
    0x0040d3f8 lw t8, -0x7e90(gp)                |         t8 = *((gp - 8100));
    0x0040d3fc lw s0, (t8)                       |         s0 = *(t8);
    0x0040d400 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
                                                 |         /* aav.0x0040b650 */
    0x0040d404 addiu t8, t8, -0x49b0             |         t8 += -0x49b0;
    0x0040d408 move t9, t8                       |         t9 = t8;
    0x0040d40c jalr t9                           |         t9 ();
    0x0040d410 nop                               |         
    0x0040d414 lw gp, 0x20(fp)                   |         gp = *(arg_20h);
    0x0040d418 move t8, v0                       |         t8 = v0;
    0x0040d41c lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str.message_check_value */
    0x0040d420 addiu v0, v0, 0x1070              |         v0 += 0x1070;
    0x0040d424 sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x0040d428 addiu v0, zero, 0x96              |         v0 = 0x96;
    0x0040d42c sw v0, 0x14(sp)                   |         *(var_14h) = v0;
    0x0040d430 move a0, s0                       |         a0 = s0;
    0x0040d434 lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
                                                 |         /* str._s____18s____24s__5d_parse_rtsp_url___fail__n */
    0x0040d438 addiu a1, v0, 0xf90               |         a1 = v0 + 0xf90;
    0x0040d43c move a2, t8                       |         a2 = t8;
    0x0040d440 lw t8, -0x7fd8(gp)                |         t8 = *((gp - 8182));
    0x0040d444 addiu a3, t8, 0x988               |         a3 = t8 + 0x988;
    0x0040d448 lw t8, -0x7ee0(gp)                |         t8 = sym.imp.fprintf
    0x0040d44c move t9, t8                       |         t9 = t8;
    0x0040d450 jalr t9                           |         t9 ();
    0x0040d454 nop                               |         
    0x0040d458 lw gp, 0x20(fp)                   |         gp = *(arg_20h);
    0x0040d45c addiu t8, zero, -1                |         t8 = -1;
    0x0040d460 b 0x40d46c                        |         goto label_0;
    0x0040d464 nop                               |         
                                                 |     }
    0x0040d468 move t8, zero                     |     t8 = 0;
                                                 | label_0:
    0x0040d46c move v0, t8                       |     v0 = t8;
    0x0040d470 lw t8, -0x7e24(gp)                |     t8 = *((gp - 8073));
    0x0040d474 lw v1, 0x34(fp)                   |     v1 = *(arg_34h);
    0x0040d478 lw t8, (t8)                       |     t8 = *(t8);
                                                 |     if (v1 != t8) {
    0x0040d47c beq v1, t8, 0x40d494              |         
    0x0040d480 nop                               |         
    0x0040d484 lw t8, -0x7e84(gp)                |         t8 = sym.imp.__stack_chk_fail;
    0x0040d488 move t9, t8                       |         t9 = t8;
    0x0040d48c jalr t9                           |         t9 ();
    0x0040d490 nop                               |         
                                                 |     }
    0x0040d494 move sp, fp                       |     
    0x0040d498 lw ra, 0x44(sp)                   |     ra = *(var_44h);
    0x0040d49c lw fp, 0x40(sp)                   |     fp = *(var_40h);
    0x0040d4a0 lw s1, 0x3c(sp)                   |     s1 = *(var_3ch);
    0x0040d4a4 lw s0, 0x38(sp)                   |     s0 = *(var_38h);
    0x0040d4a8 addiu sp, sp, 0x48                |     
    0x0040d4ac jr ra                             |     return v1;
    0x0040d4b0 nop                               |     
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40c044 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.message_parse ()             | void message_parse () {
    0x0040c044 lui gp, 2                     |     
    0x0040c048 addiu gp, gp, -0x1024         |     
    0x0040c04c addu gp, gp, t9               |     gp += t9;
    0x0040c050 addiu sp, sp, -0x60           |     
    0x0040c054 sw ra, 0x5c(sp)               |     *(var_5ch) = ra;
    0x0040c058 sw fp, 0x58(sp)               |     *(var_58h) = fp;
    0x0040c05c sw s0, 0x54(sp)               |     *(var_54h) = s0;
    0x0040c060 move fp, sp                   |     fp = sp;
    0x0040c064 sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x0040c068 sw a0, 0x34(fp)               |     *(arg_34h) = a0;
    0x0040c06c sw a1, 0x30(fp)               |     *(arg_30h) = a1;
    0x0040c070 sw a2, 0x2c(fp)               |     *(arg_2ch) = a2;
    0x0040c074 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040c078 lw t8, (t8)                   |     t8 = *(t8);
    0x0040c07c sw t8, 0x4c(fp)               |     *(arg_4ch) = t8;
    0x0040c080 lw t8, 0x30(fp)               |     t8 = *(arg_30h);
                                             |     if (t8 != 0) {
    0x0040c084 beqz t8, 0x40c098             |         
    0x0040c088 nop                           |         
    0x0040c08c lw t8, 0x2c(fp)               |         t8 = *(arg_2ch);
                                             |         if (t8 != 0) {
    0x0040c090 bnez t8, 0x40c108             |             goto label_0;
                                             |         }
    0x0040c094 nop                           |         
                                             |     }
    0x0040c098 lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040c09c lw s0, (t8)                   |     s0 = *(t8);
    0x0040c0a0 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040b650 */
    0x0040c0a4 addiu t8, t8, -0x49b0         |     t8 += -0x49b0;
    0x0040c0a8 move t9, t8                   |     t9 = t8;
    0x0040c0ac jalr t9                       |     t9 ();
    0x0040c0b0 nop                           |     
    0x0040c0b4 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040c0b8 move t8, v0                   |     t8 = v0;
    0x0040c0bc lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str.message_parse */
    0x0040c0c0 addiu v0, v0, 0x104c          |     v0 += 0x104c;
    0x0040c0c4 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0040c0c8 addiu v0, zero, 0x4f          |     v0 = 0x4f;
    0x0040c0cc sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0040c0d0 move a0, s0                   |     a0 = s0;
    0x0040c0d4 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x0040c0d8 addiu a1, v0, 0xac4           |     a1 = v0 + 0xac4;
    0x0040c0dc move a2, t8                   |     a2 = t8;
    0x0040c0e0 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040c0e4 addiu a3, t8, 0x988           |     a3 = t8 + 0x988;
    0x0040c0e8 lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040c0ec move t9, t8                   |     t9 = t8;
    0x0040c0f0 jalr t9                       |     t9 ();
    0x0040c0f4 nop                           |     
    0x0040c0f8 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040c0fc addiu t8, zero, -1            |     t8 = -1;
    0x0040c100 b 0x40ccac                    |     goto label_1;
    0x0040c104 nop                           |     
                                             | label_0:
    0x0040c108 addiu a0, zero, 1             |     a0 = 1;
    0x0040c10c addiu a1, zero, 0xab8         |     a1 = 0xab8;
    0x0040c110 lw t8, -0x7e1c(gp)            |     t8 = sym.imp.calloc;
    0x0040c114 move t9, t8                   |     t9 = t8;
    0x0040c118 jalr t9                       |     t9 ();
    0x0040c11c nop                           |     
    0x0040c120 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040c124 move t8, v0                   |     t8 = v0;
    0x0040c128 sw t8, 0x40(fp)               |     *(arg_40h) = t8;
    0x0040c12c lw t8, 0x40(fp)               |     t8 = *(arg_40h);
                                             |     if (t8 == 0) {
    0x0040c130 bnez t8, 0x40c1a8             |         
    0x0040c134 nop                           |         
    0x0040c138 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040c13c lw s0, (t8)                   |         s0 = *(t8);
    0x0040c140 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040b650 */
    0x0040c144 addiu t8, t8, -0x49b0         |         t8 += -0x49b0;
    0x0040c148 move t9, t8                   |         t9 = t8;
    0x0040c14c jalr t9                       |         t9 ();
    0x0040c150 nop                           |         
    0x0040c154 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040c158 move t8, v0                   |         t8 = v0;
    0x0040c15c lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.message_parse */
    0x0040c160 addiu v0, v0, 0x104c          |         v0 += 0x104c;
    0x0040c164 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0040c168 addiu v0, zero, 0x53          |         v0 = 0x53;
    0x0040c16c sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x0040c170 move a0, s0                   |         a0 = s0;
    0x0040c174 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_calloc___fail__n */
    0x0040c178 addiu a1, v0, 0xaf0           |         a1 = v0 + 0xaf0;
    0x0040c17c move a2, t8                   |         a2 = t8;
    0x0040c180 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x0040c184 addiu a3, t8, 0x988           |         a3 = t8 + 0x988;
    0x0040c188 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040c18c move t9, t8                   |         t9 = t8;
    0x0040c190 jalr t9                       |         t9 ();
    0x0040c194 nop                           |         
    0x0040c198 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040c19c addiu t8, zero, -1            |         t8 = -1;
    0x0040c1a0 b 0x40ccac                    |         goto label_1;
    0x0040c1a4 nop                           |         
                                             |     }
    0x0040c1a8 sw zero, 0x3c(fp)             |     *(arg_3ch) = 0;
    0x0040c1ac lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040c1b0 addiu t8, t8, 0xb1c           |     t8 += 0xb1c;
    0x0040c1b4 sw t8, 0x44(fp)               |     *(arg_44h) = t8;
    0x0040c1b8 lw a0, 0x30(fp)               |     a0 = *(arg_30h);
    0x0040c1bc lw t8, -0x7f28(gp)            |     t8 = sym.imp.strdup;
    0x0040c1c0 move t9, t8                   |     t9 = t8;
    0x0040c1c4 jalr t9                       |     t9 ();
    0x0040c1c8 nop                           |     
    0x0040c1cc lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040c1d0 move t8, v0                   |     t8 = v0;
    0x0040c1d4 sw t8, 0x48(fp)               |     *(arg_48h) = t8;
    0x0040c1d8 lw a0, 0x30(fp)               |     a0 = *(arg_30h);
    0x0040c1dc lw t8, -0x7f28(gp)            |     t8 = sym.imp.strdup;
    0x0040c1e0 move t9, t8                   |     t9 = t8;
    0x0040c1e4 jalr t9                       |     t9 ();
    0x0040c1e8 nop                           |     
    0x0040c1ec lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040c1f0 move t8, v0                   |     t8 = v0;
    0x0040c1f4 move v0, t8                   |     v0 = t8;
    0x0040c1f8 lw t8, 0x40(fp)               |     t8 = *(arg_40h);
    0x0040c1fc sw v0, (t8)                   |     *(t8) = v0;
    0x0040c200 lw t8, 0x48(fp)               |     t8 = *(arg_48h);
                                             |     if (t8 != 0) {
    0x0040c204 beqz t8, 0x40c21c             |         
    0x0040c208 nop                           |         
    0x0040c20c lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x0040c210 lw t8, (t8)                   |         t8 = *(t8);
                                             |         if (t8 != 0) {
    0x0040c214 bnez t8, 0x40c2c8             |             goto label_2;
                                             |         }
    0x0040c218 nop                           |         
                                             |     }
    0x0040c21c lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040c220 lw s0, (t8)                   |     s0 = *(t8);
    0x0040c224 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040b650 */
    0x0040c228 addiu t8, t8, -0x49b0         |     t8 += -0x49b0;
    0x0040c22c move t9, t8                   |     t9 = t8;
    0x0040c230 jalr t9                       |     t9 ();
    0x0040c234 nop                           |     
    0x0040c238 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040c23c move t8, v0                   |     t8 = v0;
    0x0040c240 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str.message_parse */
    0x0040c244 addiu v0, v0, 0x104c          |     v0 += 0x104c;
    0x0040c248 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0040c24c addiu v0, zero, 0x5c          |     v0 = 0x5c;
    0x0040c250 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0040c254 move a0, s0                   |     a0 = s0;
    0x0040c258 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d_strdup___fail__n */
    0x0040c25c addiu a1, v0, 0xb20           |     a1 = v0 + 0xb20;
    0x0040c260 move a2, t8                   |     a2 = t8;
    0x0040c264 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040c268 addiu a3, t8, 0x988           |     a3 = t8 + 0x988;
    0x0040c26c lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040c270 move t9, t8                   |     t9 = t8;
    0x0040c274 jalr t9                       |     t9 ();
    0x0040c278 nop                           |     
    0x0040c27c lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040c280 lw t8, 0x48(fp)               |     t8 = *(arg_48h);
                                             |     if (t8 != 0) {
    0x0040c284 beqz t8, 0x40c2a4             |         
    0x0040c288 nop                           |         
    0x0040c28c lw a0, 0x48(fp)               |         a0 = *(arg_48h);
    0x0040c290 lw t8, -0x7f0c(gp)            |         t8 = sym.imp.free;
    0x0040c294 move t9, t8                   |         t9 = t8;
    0x0040c298 jalr t9                       |         t9 ();
    0x0040c29c nop                           |         
    0x0040c2a0 lw gp, 0x20(fp)               |         gp = *(arg_20h);
                                             |     }
    0x0040c2a4 lw a0, 0x40(fp)               |     a0 = *(arg_40h);
    0x0040c2a8 lw t8, -0x7f94(gp)            |     t8 = sym.message_free;
    0x0040c2ac move t9, t8                   |     t9 = t8;
    0x0040c2b0 jalr t9                       |     t9 ();
    0x0040c2b4 nop                           |     
    0x0040c2b8 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040c2bc addiu t8, zero, -1            |     t8 = -1;
    0x0040c2c0 b 0x40ccac                    |     goto label_1;
    0x0040c2c4 nop                           |     
                                             | label_2:
    0x0040c2c8 lw a0, 0x48(fp)               |     a0 = *(arg_48h);
    0x0040c2cc lw a1, 0x44(fp)               |     a1 = *(arg_44h);
    0x0040c2d0 lw t8, -0x7e94(gp)            |     t8 = sym.imp.strtok;
    0x0040c2d4 move t9, t8                   |     t9 = t8;
    0x0040c2d8 jalr t9                       |     t9 ();
    0x0040c2dc nop                           |     
    0x0040c2e0 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040c2e4 sw v0, 0x3c(fp)               |     *(arg_3ch) = v0;
    0x0040c2e8 b 0x40cc78                    |     goto label_3;
    0x0040c2ec nop                           |     
                                             |     do {
    0x0040c2f0 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x0040c2f4 lb t8, 4(t8)                  |         t8 = *((t8 + 4));
                                             |         if (t8 == 0) {
    0x0040c2f8 bnez t8, 0x40c344             |             
    0x0040c2fc nop                           |             
    0x0040c300 lw t8, 0x40(fp)               |             t8 = *(arg_40h);
    0x0040c304 addiu t8, t8, 4               |             t8 += 4;
    0x0040c308 lw a0, 0x3c(fp)               |             a0 = *(arg_3ch);
    0x0040c30c lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str.command_s */
    0x0040c310 addiu a1, v0, 0xb4c           |             a1 = v0 + 0xb4c;
    0x0040c314 move a2, t8                   |             a2 = t8;
    0x0040c318 lw t8, -0x7eb4(gp)            |             t8 = sym.imp.sscanf;
    0x0040c31c move t9, t8                   |             t9 = t8;
    0x0040c320 jalr t9                       |             t9 ();
    0x0040c324 nop                           |             
    0x0040c328 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c32c addiu t8, zero, 1             |             t8 = 1;
                                             |             if (v0 != t8) {
    0x0040c330 bne v0, t8, 0x40c344          |                 goto label_4;
                                             |             }
    0x0040c334 nop                           |             
    0x0040c338 addiu t8, zero, 1             |             t8 = 1;
    0x0040c33c b 0x40c348                    |             goto label_5;
    0x0040c340 nop                           |             
                                             |         }
                                             | label_4:
    0x0040c344 move t8, zero                 |         t8 = 0;
                                             |         if (t8 != 0) {
                                             | label_5:
    0x0040c348 beqz t8, 0x40c3c8             |             
    0x0040c34c nop                           |             
    0x0040c350 lw t8, -0x7e90(gp)            |             t8 = *((gp - 8100));
    0x0040c354 lw s0, (t8)                   |             s0 = *(t8);
    0x0040c358 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* aav.0x0040b650 */
    0x0040c35c addiu t8, t8, -0x49b0         |             t8 += -0x49b0;
    0x0040c360 move t9, t8                   |             t9 = t8;
    0x0040c364 jalr t9                       |             t9 ();
    0x0040c368 nop                           |             
    0x0040c36c lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c370 move t8, v0                   |             t8 = v0;
    0x0040c374 lw v0, 0x40(fp)               |             v0 = *(arg_40h);
    0x0040c378 addiu v0, v0, 4               |             v0 += 4;
    0x0040c37c lw v1, -0x7fd8(gp)            |             v1 = *((gp - 8182));
                                             |             /* str.message_parse */
    0x0040c380 addiu v1, v1, 0x104c          |             v1 += 0x104c;
    0x0040c384 sw v1, 0x10(sp)               |             *(var_10h) = v1;
    0x0040c388 addiu v1, zero, 0x64          |             v1 = 0x64;
    0x0040c38c sw v1, 0x14(sp)               |             *(var_14h) = v1;
    0x0040c390 sw v0, 0x18(sp)               |             *(var_18h) = v0;
    0x0040c394 move a0, s0                   |             a0 = s0;
    0x0040c398 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str._s____18s____24s__5d_command______s_n */
    0x0040c39c addiu a1, v0, 0xb58           |             a1 = v0 + 0xb58;
    0x0040c3a0 move a2, t8                   |             a2 = t8;
    0x0040c3a4 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
    0x0040c3a8 addiu a3, t8, 0x9c4           |             a3 = t8 + 0x9c4;
    0x0040c3ac lw t8, -0x7ee0(gp)            |             t8 = sym.imp.fprintf
    0x0040c3b0 move t9, t8                   |             t9 = t8;
    0x0040c3b4 jalr t9                       |             t9 ();
    0x0040c3b8 nop                           |             
    0x0040c3bc lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c3c0 b 0x40cc58                    |             goto label_6;
    0x0040c3c4 nop                           |             
                                             |         }
    0x0040c3c8 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x0040c3cc lb t8, 0x44(t8)               |         t8 = *((t8 + 68));
                                             |         if (t8 == 0) {
    0x0040c3d0 bnez t8, 0x40c41c             |             
    0x0040c3d4 nop                           |             
    0x0040c3d8 lw t8, 0x40(fp)               |             t8 = *(arg_40h);
    0x0040c3dc addiu t8, t8, 0x44            |             t8 += 0x44;
    0x0040c3e0 lw a0, 0x3c(fp)               |             a0 = *(arg_3ch);
    0x0040c3e4 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str.rtsp_host_s */
    0x0040c3e8 addiu a1, v0, 0xb84           |             a1 = v0 + 0xb84;
    0x0040c3ec move a2, t8                   |             a2 = t8;
    0x0040c3f0 lw t8, -0x7eb4(gp)            |             t8 = sym.imp.sscanf;
    0x0040c3f4 move t9, t8                   |             t9 = t8;
    0x0040c3f8 jalr t9                       |             t9 ();
    0x0040c3fc nop                           |             
    0x0040c400 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c404 addiu t8, zero, 1             |             t8 = 1;
                                             |             if (v0 != t8) {
    0x0040c408 bne v0, t8, 0x40c41c          |                 goto label_7;
                                             |             }
    0x0040c40c nop                           |             
    0x0040c410 addiu t8, zero, 1             |             t8 = 1;
    0x0040c414 b 0x40c420                    |             goto label_8;
    0x0040c418 nop                           |             
                                             |         }
                                             | label_7:
    0x0040c41c move t8, zero                 |         t8 = 0;
                                             |         if (t8 != 0) {
                                             | label_8:
    0x0040c420 beqz t8, 0x40c4a0             |             
    0x0040c424 nop                           |             
    0x0040c428 lw t8, -0x7e90(gp)            |             t8 = *((gp - 8100));
    0x0040c42c lw s0, (t8)                   |             s0 = *(t8);
    0x0040c430 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* aav.0x0040b650 */
    0x0040c434 addiu t8, t8, -0x49b0         |             t8 += -0x49b0;
    0x0040c438 move t9, t8                   |             t9 = t8;
    0x0040c43c jalr t9                       |             t9 ();
    0x0040c440 nop                           |             
    0x0040c444 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c448 move t8, v0                   |             t8 = v0;
    0x0040c44c lw v0, 0x40(fp)               |             v0 = *(arg_40h);
    0x0040c450 addiu v0, v0, 0x44            |             v0 += 0x44;
    0x0040c454 lw v1, -0x7fd8(gp)            |             v1 = *((gp - 8182));
                                             |             /* str.message_parse */
    0x0040c458 addiu v1, v1, 0x104c          |             v1 += 0x104c;
    0x0040c45c sw v1, 0x10(sp)               |             *(var_10h) = v1;
    0x0040c460 addiu v1, zero, 0x65          |             v1 = 0x65;
    0x0040c464 sw v1, 0x14(sp)               |             *(var_14h) = v1;
    0x0040c468 sw v0, 0x18(sp)               |             *(var_18h) = v0;
    0x0040c46c move a0, s0                   |             a0 = s0;
    0x0040c470 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str._s____18s____24s__5d_rtsp_host____s_n */
    0x0040c474 addiu a1, v0, 0xb94           |             a1 = v0 + 0xb94;
    0x0040c478 move a2, t8                   |             a2 = t8;
    0x0040c47c lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
    0x0040c480 addiu a3, t8, 0x9c4           |             a3 = t8 + 0x9c4;
    0x0040c484 lw t8, -0x7ee0(gp)            |             t8 = sym.imp.fprintf
    0x0040c488 move t9, t8                   |             t9 = t8;
    0x0040c48c jalr t9                       |             t9 ();
    0x0040c490 nop                           |             
    0x0040c494 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c498 b 0x40cc58                    |             goto label_6;
    0x0040c49c nop                           |             
                                             |         }
    0x0040c4a0 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x0040c4a4 lb t8, 0x104(t8)              |         t8 = *((t8 + 260));
                                             |         if (t8 == 0) {
    0x0040c4a8 bnez t8, 0x40c4f4             |             
    0x0040c4ac nop                           |             
    0x0040c4b0 lw t8, 0x40(fp)               |             t8 = *(arg_40h);
    0x0040c4b4 addiu t8, t8, 0x104           |             t8 += 0x104;
    0x0040c4b8 lw a0, 0x3c(fp)               |             a0 = *(arg_3ch);
    0x0040c4bc lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str.rtsp_port_s */
    0x0040c4c0 addiu a1, v0, 0xbc0           |             a1 = v0 + 0xbc0;
    0x0040c4c4 move a2, t8                   |             a2 = t8;
    0x0040c4c8 lw t8, -0x7eb4(gp)            |             t8 = sym.imp.sscanf;
    0x0040c4cc move t9, t8                   |             t9 = t8;
    0x0040c4d0 jalr t9                       |             t9 ();
    0x0040c4d4 nop                           |             
    0x0040c4d8 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c4dc addiu t8, zero, 1             |             t8 = 1;
                                             |             if (v0 != t8) {
    0x0040c4e0 bne v0, t8, 0x40c4f4          |                 goto label_9;
                                             |             }
    0x0040c4e4 nop                           |             
    0x0040c4e8 addiu t8, zero, 1             |             t8 = 1;
    0x0040c4ec b 0x40c4f8                    |             goto label_10;
    0x0040c4f0 nop                           |             
                                             |         }
                                             | label_9:
    0x0040c4f4 move t8, zero                 |         t8 = 0;
                                             |         if (t8 != 0) {
                                             | label_10:
    0x0040c4f8 beqz t8, 0x40c578             |             
    0x0040c4fc nop                           |             
    0x0040c500 lw t8, -0x7e90(gp)            |             t8 = *((gp - 8100));
    0x0040c504 lw s0, (t8)                   |             s0 = *(t8);
    0x0040c508 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* aav.0x0040b650 */
    0x0040c50c addiu t8, t8, -0x49b0         |             t8 += -0x49b0;
    0x0040c510 move t9, t8                   |             t9 = t8;
    0x0040c514 jalr t9                       |             t9 ();
    0x0040c518 nop                           |             
    0x0040c51c lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c520 move t8, v0                   |             t8 = v0;
    0x0040c524 lw v0, 0x40(fp)               |             v0 = *(arg_40h);
    0x0040c528 addiu v0, v0, 0x104           |             v0 += 0x104;
    0x0040c52c lw v1, -0x7fd8(gp)            |             v1 = *((gp - 8182));
                                             |             /* str.message_parse */
    0x0040c530 addiu v1, v1, 0x104c          |             v1 += 0x104c;
    0x0040c534 sw v1, 0x10(sp)               |             *(var_10h) = v1;
    0x0040c538 addiu v1, zero, 0x66          |             v1 = 0x66;
    0x0040c53c sw v1, 0x14(sp)               |             *(var_14h) = v1;
    0x0040c540 sw v0, 0x18(sp)               |             *(var_18h) = v0;
    0x0040c544 move a0, s0                   |             a0 = s0;
    0x0040c548 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str._s____18s____24s__5d_rtsp_port____s_n */
    0x0040c54c addiu a1, v0, 0xbd0           |             a1 = v0 + 0xbd0;
    0x0040c550 move a2, t8                   |             a2 = t8;
    0x0040c554 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
    0x0040c558 addiu a3, t8, 0x9c4           |             a3 = t8 + 0x9c4;
    0x0040c55c lw t8, -0x7ee0(gp)            |             t8 = sym.imp.fprintf
    0x0040c560 move t9, t8                   |             t9 = t8;
    0x0040c564 jalr t9                       |             t9 ();
    0x0040c568 nop                           |             
    0x0040c56c lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c570 b 0x40cc58                    |             goto label_6;
    0x0040c574 nop                           |             
                                             |         }
    0x0040c578 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x0040c57c lb t8, 0x10c(t8)              |         t8 = *((t8 + 268));
                                             |         if (t8 == 0) {
    0x0040c580 bnez t8, 0x40c5cc             |             
    0x0040c584 nop                           |             
    0x0040c588 lw t8, 0x40(fp)               |             t8 = *(arg_40h);
    0x0040c58c addiu t8, t8, 0x10c           |             t8 += 0x10c;
    0x0040c590 lw a0, 0x3c(fp)               |             a0 = *(arg_3ch);
    0x0040c594 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str.rtsp_token_s */
    0x0040c598 addiu a1, v0, 0xbfc           |             a1 = v0 + 0xbfc;
    0x0040c59c move a2, t8                   |             a2 = t8;
    0x0040c5a0 lw t8, -0x7eb4(gp)            |             t8 = sym.imp.sscanf;
    0x0040c5a4 move t9, t8                   |             t9 = t8;
    0x0040c5a8 jalr t9                       |             t9 ();
    0x0040c5ac nop                           |             
    0x0040c5b0 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c5b4 addiu t8, zero, 1             |             t8 = 1;
                                             |             if (v0 != t8) {
    0x0040c5b8 bne v0, t8, 0x40c5cc          |                 goto label_11;
                                             |             }
    0x0040c5bc nop                           |             
    0x0040c5c0 addiu t8, zero, 1             |             t8 = 1;
    0x0040c5c4 b 0x40c5d0                    |             goto label_12;
    0x0040c5c8 nop                           |             
                                             |         }
                                             | label_11:
    0x0040c5cc move t8, zero                 |         t8 = 0;
                                             |         if (t8 != 0) {
                                             | label_12:
    0x0040c5d0 beqz t8, 0x40c650             |             
    0x0040c5d4 nop                           |             
    0x0040c5d8 lw t8, -0x7e90(gp)            |             t8 = *((gp - 8100));
    0x0040c5dc lw s0, (t8)                   |             s0 = *(t8);
    0x0040c5e0 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* aav.0x0040b650 */
    0x0040c5e4 addiu t8, t8, -0x49b0         |             t8 += -0x49b0;
    0x0040c5e8 move t9, t8                   |             t9 = t8;
    0x0040c5ec jalr t9                       |             t9 ();
    0x0040c5f0 nop                           |             
    0x0040c5f4 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c5f8 move t8, v0                   |             t8 = v0;
    0x0040c5fc lw v0, 0x40(fp)               |             v0 = *(arg_40h);
    0x0040c600 addiu v0, v0, 0x10c           |             v0 += 0x10c;
    0x0040c604 lw v1, -0x7fd8(gp)            |             v1 = *((gp - 8182));
                                             |             /* str.message_parse */
    0x0040c608 addiu v1, v1, 0x104c          |             v1 += 0x104c;
    0x0040c60c sw v1, 0x10(sp)               |             *(var_10h) = v1;
    0x0040c610 addiu v1, zero, 0x67          |             v1 = 0x67;
    0x0040c614 sw v1, 0x14(sp)               |             *(var_14h) = v1;
    0x0040c618 sw v0, 0x18(sp)               |             *(var_18h) = v0;
    0x0040c61c move a0, s0                   |             a0 = s0;
    0x0040c620 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str._s____18s____24s__5d_rtsp_token___s_n */
    0x0040c624 addiu a1, v0, 0xc0c           |             a1 = v0 + 0xc0c;
    0x0040c628 move a2, t8                   |             a2 = t8;
    0x0040c62c lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
    0x0040c630 addiu a3, t8, 0x9c4           |             a3 = t8 + 0x9c4;
    0x0040c634 lw t8, -0x7ee0(gp)            |             t8 = sym.imp.fprintf
    0x0040c638 move t9, t8                   |             t9 = t8;
    0x0040c63c jalr t9                       |             t9 ();
    0x0040c640 nop                           |             
    0x0040c644 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c648 b 0x40cc58                    |             goto label_6;
    0x0040c64c nop                           |             
                                             |         }
    0x0040c650 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x0040c654 lb t8, 0x18c(t8)              |         t8 = *((t8 + 396));
                                             |         if (t8 == 0) {
    0x0040c658 bnez t8, 0x40c6a4             |             
    0x0040c65c nop                           |             
    0x0040c660 lw t8, 0x40(fp)               |             t8 = *(arg_40h);
    0x0040c664 addiu t8, t8, 0x18c           |             t8 += 0x18c;
    0x0040c668 lw a0, 0x3c(fp)               |             a0 = *(arg_3ch);
    0x0040c66c lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str.rtsp_url_s */
    0x0040c670 addiu a1, v0, 0xc38           |             a1 = v0 + 0xc38;
    0x0040c674 move a2, t8                   |             a2 = t8;
    0x0040c678 lw t8, -0x7eb4(gp)            |             t8 = sym.imp.sscanf;
    0x0040c67c move t9, t8                   |             t9 = t8;
    0x0040c680 jalr t9                       |             t9 ();
    0x0040c684 nop                           |             
    0x0040c688 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c68c addiu t8, zero, 1             |             t8 = 1;
                                             |             if (v0 != t8) {
    0x0040c690 bne v0, t8, 0x40c6a4          |                 goto label_13;
                                             |             }
    0x0040c694 nop                           |             
    0x0040c698 addiu t8, zero, 1             |             t8 = 1;
    0x0040c69c b 0x40c6a8                    |             goto label_14;
    0x0040c6a0 nop                           |             
                                             |         }
                                             | label_13:
    0x0040c6a4 move t8, zero                 |         t8 = 0;
                                             |         if (t8 != 0) {
                                             | label_14:
    0x0040c6a8 beqz t8, 0x40c728             |             
    0x0040c6ac nop                           |             
    0x0040c6b0 lw t8, -0x7e90(gp)            |             t8 = *((gp - 8100));
    0x0040c6b4 lw s0, (t8)                   |             s0 = *(t8);
    0x0040c6b8 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* aav.0x0040b650 */
    0x0040c6bc addiu t8, t8, -0x49b0         |             t8 += -0x49b0;
    0x0040c6c0 move t9, t8                   |             t9 = t8;
    0x0040c6c4 jalr t9                       |             t9 ();
    0x0040c6c8 nop                           |             
    0x0040c6cc lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c6d0 move t8, v0                   |             t8 = v0;
    0x0040c6d4 lw v0, 0x40(fp)               |             v0 = *(arg_40h);
    0x0040c6d8 addiu v0, v0, 0x18c           |             v0 += 0x18c;
    0x0040c6dc lw v1, -0x7fd8(gp)            |             v1 = *((gp - 8182));
                                             |             /* str.message_parse */
    0x0040c6e0 addiu v1, v1, 0x104c          |             v1 += 0x104c;
    0x0040c6e4 sw v1, 0x10(sp)               |             *(var_10h) = v1;
    0x0040c6e8 addiu v1, zero, 0x68          |             v1 = 0x68;
    0x0040c6ec sw v1, 0x14(sp)               |             *(var_14h) = v1;
    0x0040c6f0 sw v0, 0x18(sp)               |             *(var_18h) = v0;
    0x0040c6f4 move a0, s0                   |             a0 = s0;
    0x0040c6f8 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str._s____18s____24s__5d_rtsp_url_____s_n */
    0x0040c6fc addiu a1, v0, 0xc44           |             a1 = v0 + 0xc44;
    0x0040c700 move a2, t8                   |             a2 = t8;
    0x0040c704 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
    0x0040c708 addiu a3, t8, 0x9c4           |             a3 = t8 + 0x9c4;
    0x0040c70c lw t8, -0x7ee0(gp)            |             t8 = sym.imp.fprintf
    0x0040c710 move t9, t8                   |             t9 = t8;
    0x0040c714 jalr t9                       |             t9 ();
    0x0040c718 nop                           |             
    0x0040c71c lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c720 b 0x40cc58                    |             goto label_6;
    0x0040c724 nop                           |             
                                             |         }
    0x0040c728 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x0040c72c lb t8, 0x58c(t8)              |         t8 = *((t8 + 1420));
                                             |         if (t8 == 0) {
    0x0040c730 bnez t8, 0x40c77c             |             
    0x0040c734 nop                           |             
    0x0040c738 lw t8, 0x40(fp)               |             t8 = *(arg_40h);
    0x0040c73c addiu t8, t8, 0x58c           |             t8 += 0x58c;
    0x0040c740 lw a0, 0x3c(fp)               |             a0 = *(arg_3ch);
    0x0040c744 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str.mac_s */
    0x0040c748 addiu a1, v0, 0xc70           |             a1 = v0 + 0xc70;
    0x0040c74c move a2, t8                   |             a2 = t8;
    0x0040c750 lw t8, -0x7eb4(gp)            |             t8 = sym.imp.sscanf;
    0x0040c754 move t9, t8                   |             t9 = t8;
    0x0040c758 jalr t9                       |             t9 ();
    0x0040c75c nop                           |             
    0x0040c760 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c764 addiu t8, zero, 1             |             t8 = 1;
                                             |             if (v0 != t8) {
    0x0040c768 bne v0, t8, 0x40c77c          |                 goto label_15;
                                             |             }
    0x0040c76c nop                           |             
    0x0040c770 addiu t8, zero, 1             |             t8 = 1;
    0x0040c774 b 0x40c780                    |             goto label_16;
    0x0040c778 nop                           |             
                                             |         }
                                             | label_15:
    0x0040c77c move t8, zero                 |         t8 = 0;
                                             |         if (t8 != 0) {
                                             | label_16:
    0x0040c780 beqz t8, 0x40c800             |             
    0x0040c784 nop                           |             
    0x0040c788 lw t8, -0x7e90(gp)            |             t8 = *((gp - 8100));
    0x0040c78c lw s0, (t8)                   |             s0 = *(t8);
    0x0040c790 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* aav.0x0040b650 */
    0x0040c794 addiu t8, t8, -0x49b0         |             t8 += -0x49b0;
    0x0040c798 move t9, t8                   |             t9 = t8;
    0x0040c79c jalr t9                       |             t9 ();
    0x0040c7a0 nop                           |             
    0x0040c7a4 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c7a8 move t8, v0                   |             t8 = v0;
    0x0040c7ac lw v0, 0x40(fp)               |             v0 = *(arg_40h);
    0x0040c7b0 addiu v0, v0, 0x58c           |             v0 += 0x58c;
    0x0040c7b4 lw v1, -0x7fd8(gp)            |             v1 = *((gp - 8182));
                                             |             /* str.message_parse */
    0x0040c7b8 addiu v1, v1, 0x104c          |             v1 += 0x104c;
    0x0040c7bc sw v1, 0x10(sp)               |             *(var_10h) = v1;
    0x0040c7c0 addiu v1, zero, 0x69          |             v1 = 0x69;
    0x0040c7c4 sw v1, 0x14(sp)               |             *(var_14h) = v1;
    0x0040c7c8 sw v0, 0x18(sp)               |             *(var_18h) = v0;
    0x0040c7cc move a0, s0                   |             a0 = s0;
    0x0040c7d0 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str._s____18s____24s__5d_mac__________s_n */
    0x0040c7d4 addiu a1, v0, 0xc78           |             a1 = v0 + 0xc78;
    0x0040c7d8 move a2, t8                   |             a2 = t8;
    0x0040c7dc lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
    0x0040c7e0 addiu a3, t8, 0x9c4           |             a3 = t8 + 0x9c4;
    0x0040c7e4 lw t8, -0x7ee0(gp)            |             t8 = sym.imp.fprintf
    0x0040c7e8 move t9, t8                   |             t9 = t8;
    0x0040c7ec jalr t9                       |             t9 ();
    0x0040c7f0 nop                           |             
    0x0040c7f4 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c7f8 b 0x40cc58                    |             goto label_6;
    0x0040c7fc nop                           |             
                                             |         }
    0x0040c800 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x0040c804 lb t8, 0x5cc(t8)              |         t8 = *((t8 + 1484));
                                             |         if (t8 == 0) {
    0x0040c808 bnez t8, 0x40c854             |             
    0x0040c80c nop                           |             
    0x0040c810 lw t8, 0x40(fp)               |             t8 = *(arg_40h);
    0x0040c814 addiu t8, t8, 0x5cc           |             t8 += 0x5cc;
    0x0040c818 lw a0, 0x3c(fp)               |             a0 = *(arg_3ch);
    0x0040c81c lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str.model_s */
    0x0040c820 addiu a1, v0, 0xca4           |             a1 = v0 + 0xca4;
    0x0040c824 move a2, t8                   |             a2 = t8;
    0x0040c828 lw t8, -0x7eb4(gp)            |             t8 = sym.imp.sscanf;
    0x0040c82c move t9, t8                   |             t9 = t8;
    0x0040c830 jalr t9                       |             t9 ();
    0x0040c834 nop                           |             
    0x0040c838 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c83c addiu t8, zero, 1             |             t8 = 1;
                                             |             if (v0 != t8) {
    0x0040c840 bne v0, t8, 0x40c854          |                 goto label_17;
                                             |             }
    0x0040c844 nop                           |             
    0x0040c848 addiu t8, zero, 1             |             t8 = 1;
    0x0040c84c b 0x40c858                    |             goto label_18;
    0x0040c850 nop                           |             
                                             |         }
                                             | label_17:
    0x0040c854 move t8, zero                 |         t8 = 0;
                                             |         if (t8 != 0) {
                                             | label_18:
    0x0040c858 beqz t8, 0x40c8d8             |             
    0x0040c85c nop                           |             
    0x0040c860 lw t8, -0x7e90(gp)            |             t8 = *((gp - 8100));
    0x0040c864 lw s0, (t8)                   |             s0 = *(t8);
    0x0040c868 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* aav.0x0040b650 */
    0x0040c86c addiu t8, t8, -0x49b0         |             t8 += -0x49b0;
    0x0040c870 move t9, t8                   |             t9 = t8;
    0x0040c874 jalr t9                       |             t9 ();
    0x0040c878 nop                           |             
    0x0040c87c lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c880 move t8, v0                   |             t8 = v0;
    0x0040c884 lw v0, 0x40(fp)               |             v0 = *(arg_40h);
    0x0040c888 addiu v0, v0, 0x5cc           |             v0 += 0x5cc;
    0x0040c88c lw v1, -0x7fd8(gp)            |             v1 = *((gp - 8182));
                                             |             /* str.message_parse */
    0x0040c890 addiu v1, v1, 0x104c          |             v1 += 0x104c;
    0x0040c894 sw v1, 0x10(sp)               |             *(var_10h) = v1;
    0x0040c898 addiu v1, zero, 0x6a          |             v1 = 0x6a;
    0x0040c89c sw v1, 0x14(sp)               |             *(var_14h) = v1;
    0x0040c8a0 sw v0, 0x18(sp)               |             *(var_18h) = v0;
    0x0040c8a4 move a0, s0                   |             a0 = s0;
    0x0040c8a8 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str._s____18s____24s__5d_model________s_n */
    0x0040c8ac addiu a1, v0, 0xcb0           |             a1 = v0 + 0xcb0;
    0x0040c8b0 move a2, t8                   |             a2 = t8;
    0x0040c8b4 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
    0x0040c8b8 addiu a3, t8, 0x9c4           |             a3 = t8 + 0x9c4;
    0x0040c8bc lw t8, -0x7ee0(gp)            |             t8 = sym.imp.fprintf
    0x0040c8c0 move t9, t8                   |             t9 = t8;
    0x0040c8c4 jalr t9                       |             t9 ();
    0x0040c8c8 nop                           |             
    0x0040c8cc lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c8d0 b 0x40cc58                    |             goto label_6;
    0x0040c8d4 nop                           |             
                                             |         }
    0x0040c8d8 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x0040c8dc lb t8, 0x60c(t8)              |         t8 = *((t8 + 1548));
                                             |         if (t8 == 0) {
    0x0040c8e0 bnez t8, 0x40c92c             |             
    0x0040c8e4 nop                           |             
    0x0040c8e8 lw t8, 0x40(fp)               |             t8 = *(arg_40h);
    0x0040c8ec addiu t8, t8, 0x60c           |             t8 += 0x60c;
    0x0040c8f0 lw a0, 0x3c(fp)               |             a0 = *(arg_3ch);
    0x0040c8f4 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str.msgId_s */
    0x0040c8f8 addiu a1, v0, 0xcdc           |             a1 = v0 + 0xcdc;
    0x0040c8fc move a2, t8                   |             a2 = t8;
    0x0040c900 lw t8, -0x7eb4(gp)            |             t8 = sym.imp.sscanf;
    0x0040c904 move t9, t8                   |             t9 = t8;
    0x0040c908 jalr t9                       |             t9 ();
    0x0040c90c nop                           |             
    0x0040c910 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c914 addiu t8, zero, 1             |             t8 = 1;
                                             |             if (v0 != t8) {
    0x0040c918 bne v0, t8, 0x40c92c          |                 goto label_19;
                                             |             }
    0x0040c91c nop                           |             
    0x0040c920 addiu t8, zero, 1             |             t8 = 1;
    0x0040c924 b 0x40c930                    |             goto label_20;
    0x0040c928 nop                           |             
                                             |         }
                                             | label_19:
    0x0040c92c move t8, zero                 |         t8 = 0;
                                             |         if (t8 != 0) {
                                             | label_20:
    0x0040c930 beqz t8, 0x40c9b0             |             
    0x0040c934 nop                           |             
    0x0040c938 lw t8, -0x7e90(gp)            |             t8 = *((gp - 8100));
    0x0040c93c lw s0, (t8)                   |             s0 = *(t8);
    0x0040c940 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* aav.0x0040b650 */
    0x0040c944 addiu t8, t8, -0x49b0         |             t8 += -0x49b0;
    0x0040c948 move t9, t8                   |             t9 = t8;
    0x0040c94c jalr t9                       |             t9 ();
    0x0040c950 nop                           |             
    0x0040c954 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c958 move t8, v0                   |             t8 = v0;
    0x0040c95c lw v0, 0x40(fp)               |             v0 = *(arg_40h);
    0x0040c960 addiu v0, v0, 0x60c           |             v0 += 0x60c;
    0x0040c964 lw v1, -0x7fd8(gp)            |             v1 = *((gp - 8182));
                                             |             /* str.message_parse */
    0x0040c968 addiu v1, v1, 0x104c          |             v1 += 0x104c;
    0x0040c96c sw v1, 0x10(sp)               |             *(var_10h) = v1;
    0x0040c970 addiu v1, zero, 0x6b          |             v1 = 0x6b;
    0x0040c974 sw v1, 0x14(sp)               |             *(var_14h) = v1;
    0x0040c978 sw v0, 0x18(sp)               |             *(var_18h) = v0;
    0x0040c97c move a0, s0                   |             a0 = s0;
    0x0040c980 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str._s____18s____24s__5d_msgId________s_n */
    0x0040c984 addiu a1, v0, 0xce8           |             a1 = v0 + 0xce8;
    0x0040c988 move a2, t8                   |             a2 = t8;
    0x0040c98c lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
    0x0040c990 addiu a3, t8, 0x9c4           |             a3 = t8 + 0x9c4;
    0x0040c994 lw t8, -0x7ee0(gp)            |             t8 = sym.imp.fprintf
    0x0040c998 move t9, t8                   |             t9 = t8;
    0x0040c99c jalr t9                       |             t9 ();
    0x0040c9a0 nop                           |             
    0x0040c9a4 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c9a8 b 0x40cc58                    |             goto label_6;
    0x0040c9ac nop                           |             
                                             |         }
    0x0040c9b0 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x0040c9b4 lb t8, 0x64c(t8)              |         t8 = *((t8 + 1612));
                                             |         if (t8 == 0) {
    0x0040c9b8 bnez t8, 0x40ca04             |             
    0x0040c9bc nop                           |             
    0x0040c9c0 lw t8, 0x40(fp)               |             t8 = *(arg_40h);
    0x0040c9c4 addiu t8, t8, 0x64c           |             t8 += 0x64c;
    0x0040c9c8 lw a0, 0x3c(fp)               |             a0 = *(arg_3ch);
    0x0040c9cc lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str.issuer_s */
    0x0040c9d0 addiu a1, v0, 0xd14           |             a1 = v0 + 0xd14;
    0x0040c9d4 move a2, t8                   |             a2 = t8;
    0x0040c9d8 lw t8, -0x7eb4(gp)            |             t8 = sym.imp.sscanf;
    0x0040c9dc move t9, t8                   |             t9 = t8;
    0x0040c9e0 jalr t9                       |             t9 ();
    0x0040c9e4 nop                           |             
    0x0040c9e8 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040c9ec addiu t8, zero, 1             |             t8 = 1;
                                             |             if (v0 != t8) {
    0x0040c9f0 bne v0, t8, 0x40ca04          |                 goto label_21;
                                             |             }
    0x0040c9f4 nop                           |             
    0x0040c9f8 addiu t8, zero, 1             |             t8 = 1;
    0x0040c9fc b 0x40ca08                    |             goto label_22;
    0x0040ca00 nop                           |             
                                             |         }
                                             | label_21:
    0x0040ca04 move t8, zero                 |         t8 = 0;
                                             |         if (t8 != 0) {
                                             | label_22:
    0x0040ca08 beqz t8, 0x40ca88             |             
    0x0040ca0c nop                           |             
    0x0040ca10 lw t8, -0x7e90(gp)            |             t8 = *((gp - 8100));
    0x0040ca14 lw s0, (t8)                   |             s0 = *(t8);
    0x0040ca18 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* aav.0x0040b650 */
    0x0040ca1c addiu t8, t8, -0x49b0         |             t8 += -0x49b0;
    0x0040ca20 move t9, t8                   |             t9 = t8;
    0x0040ca24 jalr t9                       |             t9 ();
    0x0040ca28 nop                           |             
    0x0040ca2c lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040ca30 move t8, v0                   |             t8 = v0;
    0x0040ca34 lw v0, 0x40(fp)               |             v0 = *(arg_40h);
    0x0040ca38 addiu v0, v0, 0x64c           |             v0 += 0x64c;
    0x0040ca3c lw v1, -0x7fd8(gp)            |             v1 = *((gp - 8182));
                                             |             /* str.message_parse */
    0x0040ca40 addiu v1, v1, 0x104c          |             v1 += 0x104c;
    0x0040ca44 sw v1, 0x10(sp)               |             *(var_10h) = v1;
    0x0040ca48 addiu v1, zero, 0x6c          |             v1 = 0x6c;
    0x0040ca4c sw v1, 0x14(sp)               |             *(var_14h) = v1;
    0x0040ca50 sw v0, 0x18(sp)               |             *(var_18h) = v0;
    0x0040ca54 move a0, s0                   |             a0 = s0;
    0x0040ca58 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str._s____18s____24s__5d_issuer_______s_n */
    0x0040ca5c addiu a1, v0, 0xd20           |             a1 = v0 + 0xd20;
    0x0040ca60 move a2, t8                   |             a2 = t8;
    0x0040ca64 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
    0x0040ca68 addiu a3, t8, 0x9c4           |             a3 = t8 + 0x9c4;
    0x0040ca6c lw t8, -0x7ee0(gp)            |             t8 = sym.imp.fprintf
    0x0040ca70 move t9, t8                   |             t9 = t8;
    0x0040ca74 jalr t9                       |             t9 ();
    0x0040ca78 nop                           |             
    0x0040ca7c lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040ca80 b 0x40cc58                    |             goto label_6;
    0x0040ca84 nop                           |             
                                             |         }
    0x0040ca88 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x0040ca8c lw v0, 0x690(t8)              |         v0 = *((t8 + 420));
    0x0040ca90 lw v1, 0x694(t8)              |         v1 = *((t8 + 421));
    0x0040ca94 move t8, v0                   |         t8 = v0;
    0x0040ca98 or t8, t8, v1                 |         t8 |= v1;
                                             |         if (t8 == 0) {
    0x0040ca9c bnez t8, 0x40cae8             |             
    0x0040caa0 nop                           |             
    0x0040caa4 lw t8, 0x40(fp)               |             t8 = *(arg_40h);
    0x0040caa8 addiu t8, t8, 0x690           |             t8 += 0x690;
    0x0040caac lw a0, 0x3c(fp)               |             a0 = *(arg_3ch);
    0x0040cab0 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str.timestamp_lld */
    0x0040cab4 addiu a1, v0, 0xd4c           |             a1 = v0 + 0xd4c;
    0x0040cab8 move a2, t8                   |             a2 = t8;
    0x0040cabc lw t8, -0x7eb4(gp)            |             t8 = sym.imp.sscanf;
    0x0040cac0 move t9, t8                   |             t9 = t8;
    0x0040cac4 jalr t9                       |             t9 ();
    0x0040cac8 nop                           |             
    0x0040cacc lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040cad0 addiu t8, zero, 1             |             t8 = 1;
                                             |             if (v0 != t8) {
    0x0040cad4 bne v0, t8, 0x40cae8          |                 goto label_23;
                                             |             }
    0x0040cad8 nop                           |             
    0x0040cadc addiu t8, zero, 1             |             t8 = 1;
    0x0040cae0 b 0x40caec                    |             goto label_24;
    0x0040cae4 nop                           |             
                                             |         }
                                             | label_23:
    0x0040cae8 move t8, zero                 |         t8 = 0;
                                             |         if (t8 != 0) {
                                             | label_24:
    0x0040caec beqz t8, 0x40cb84             |             
    0x0040caf0 nop                           |             
    0x0040caf4 lw t8, -0x7e90(gp)            |             t8 = *((gp - 8100));
    0x0040caf8 lw s0, (t8)                   |             s0 = *(t8);
    0x0040cafc lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* aav.0x0040b650 */
    0x0040cb00 addiu t8, t8, -0x49b0         |             t8 += -0x49b0;
    0x0040cb04 move t9, t8                   |             t9 = t8;
    0x0040cb08 jalr t9                       |             t9 ();
    0x0040cb0c nop                           |             
    0x0040cb10 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040cb14 move t8, v0                   |             t8 = v0;
    0x0040cb18 lw v0, 0x40(fp)               |             v0 = *(arg_40h);
    0x0040cb1c lw a0, 0x690(v0)              |             a0 = *((v0 + 420));
    0x0040cb20 lw a1, 0x694(v0)              |             a1 = *((v0 + 421));
    0x0040cb24 mtlo a0                       |             __asm ("mtlo a0");
    0x0040cb28 mthi a1                       |             __asm ("mthi a1");
    0x0040cb2c lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str.message_parse */
    0x0040cb30 addiu v0, v0, 0x104c          |             v0 += 0x104c;
    0x0040cb34 sw v0, 0x10(sp)               |             *(var_10h) = v0;
    0x0040cb38 addiu v0, zero, 0x6d          |             v0 = 0x6d;
    0x0040cb3c sw v0, 0x14(sp)               |             *(var_14h) = v0;
    0x0040cb40 mflo v0                       |             __asm ("mflo v0");
    0x0040cb44 mfhi v1                       |             __asm ("mfhi v1");
    0x0040cb48 sw v0, 0x18(sp)               |             *(var_18h) = v0;
    0x0040cb4c sw v1, 0x1c(sp)               |             *(var_1ch) = v1;
    0x0040cb50 move a0, s0                   |             a0 = s0;
    0x0040cb54 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str._s____18s____24s__5d_timestamp____lld_n */
    0x0040cb58 addiu a1, v0, 0xd5c           |             a1 = v0 + 0xd5c;
    0x0040cb5c move a2, t8                   |             a2 = t8;
    0x0040cb60 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
    0x0040cb64 addiu a3, t8, 0x9c4           |             a3 = t8 + 0x9c4;
    0x0040cb68 lw t8, -0x7ee0(gp)            |             t8 = sym.imp.fprintf
    0x0040cb6c move t9, t8                   |             t9 = t8;
    0x0040cb70 jalr t9                       |             t9 ();
    0x0040cb74 nop                           |             
    0x0040cb78 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040cb7c b 0x40cc58                    |             goto label_6;
    0x0040cb80 nop                           |             
                                             |         }
    0x0040cb84 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x0040cb88 lw t8, 0x698(t8)              |         t8 = *((t8 + 422));
                                             |         if (t8 == 0) {
    0x0040cb8c bnez t8, 0x40cbd8             |             
    0x0040cb90 nop                           |             
    0x0040cb94 lw t8, 0x40(fp)               |             t8 = *(arg_40h);
    0x0040cb98 addiu t8, t8, 0x698           |             t8 += 0x698;
    0x0040cb9c lw a0, 0x3c(fp)               |             a0 = *(arg_3ch);
    0x0040cba0 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str.code_d */
    0x0040cba4 addiu a1, v0, 0xd88           |             a1 = v0 + 0xd88;
    0x0040cba8 move a2, t8                   |             a2 = t8;
    0x0040cbac lw t8, -0x7eb4(gp)            |             t8 = sym.imp.sscanf;
    0x0040cbb0 move t9, t8                   |             t9 = t8;
    0x0040cbb4 jalr t9                       |             t9 ();
    0x0040cbb8 nop                           |             
    0x0040cbbc lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040cbc0 addiu t8, zero, 1             |             t8 = 1;
                                             |             if (v0 != t8) {
    0x0040cbc4 bne v0, t8, 0x40cbd8          |                 goto label_25;
                                             |             }
    0x0040cbc8 nop                           |             
    0x0040cbcc addiu t8, zero, 1             |             t8 = 1;
    0x0040cbd0 b 0x40cbdc                    |             goto label_26;
    0x0040cbd4 nop                           |             
                                             |         }
                                             | label_25:
    0x0040cbd8 move t8, zero                 |         t8 = 0;
                                             |         if (t8 != 0) {
                                             | label_26:
    0x0040cbdc beqz t8, 0x40cc58             |             
    0x0040cbe0 nop                           |             
    0x0040cbe4 lw t8, -0x7e90(gp)            |             t8 = *((gp - 8100));
    0x0040cbe8 lw s0, (t8)                   |             s0 = *(t8);
    0x0040cbec lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* aav.0x0040b650 */
    0x0040cbf0 addiu t8, t8, -0x49b0         |             t8 += -0x49b0;
    0x0040cbf4 move t9, t8                   |             t9 = t8;
    0x0040cbf8 jalr t9                       |             t9 ();
    0x0040cbfc nop                           |             
    0x0040cc00 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040cc04 move t8, v0                   |             t8 = v0;
    0x0040cc08 lw v0, 0x40(fp)               |             v0 = *(arg_40h);
    0x0040cc0c lw v0, 0x698(v0)              |             v0 = *((v0 + 422));
    0x0040cc10 lw v1, -0x7fd8(gp)            |             v1 = *((gp - 8182));
                                             |             /* str.message_parse */
    0x0040cc14 addiu v1, v1, 0x104c          |             v1 += 0x104c;
    0x0040cc18 sw v1, 0x10(sp)               |             *(var_10h) = v1;
    0x0040cc1c addiu v1, zero, 0x6e          |             v1 = 0x6e;
    0x0040cc20 sw v1, 0x14(sp)               |             *(var_14h) = v1;
    0x0040cc24 sw v0, 0x18(sp)               |             *(var_18h) = v0;
    0x0040cc28 move a0, s0                   |             a0 = s0;
    0x0040cc2c lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str._s____18s____24s__5d_code_________d_n */
    0x0040cc30 addiu a1, v0, 0xd90           |             a1 = v0 + 0xd90;
    0x0040cc34 move a2, t8                   |             a2 = t8;
    0x0040cc38 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
    0x0040cc3c addiu a3, t8, 0x9c4           |             a3 = t8 + 0x9c4;
    0x0040cc40 lw t8, -0x7ee0(gp)            |             t8 = sym.imp.fprintf
    0x0040cc44 move t9, t8                   |             t9 = t8;
    0x0040cc48 jalr t9                       |             t9 ();
    0x0040cc4c nop                           |             
    0x0040cc50 lw gp, 0x20(fp)               |             gp = *(arg_20h);
    0x0040cc54 nop                           |             
                                             |         }
                                             | label_6:
    0x0040cc58 move a0, zero                 |         a0 = 0;
    0x0040cc5c lw a1, 0x44(fp)               |         a1 = *(arg_44h);
    0x0040cc60 lw t8, -0x7e94(gp)            |         t8 = sym.imp.strtok;
    0x0040cc64 move t9, t8                   |         t9 = t8;
    0x0040cc68 jalr t9                       |         t9 ();
    0x0040cc6c nop                           |         
    0x0040cc70 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x0040cc74 sw v0, 0x3c(fp)               |         *(arg_3ch) = v0;
                                             | label_3:
    0x0040cc78 lw t8, 0x3c(fp)               |         t8 = *(arg_3ch);
    0x0040cc7c bnez t8, 0x40c2f0             |         
                                             |     } while (t8 != 0);
    0x0040cc80 nop                           |     
    0x0040cc84 lw a0, 0x48(fp)               |     a0 = *(arg_48h);
    0x0040cc88 lw t8, -0x7f0c(gp)            |     t8 = sym.imp.free;
    0x0040cc8c move t9, t8                   |     t9 = t8;
    0x0040cc90 jalr t9                       |     t9 ();
    0x0040cc94 nop                           |     
    0x0040cc98 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x0040cc9c lw t8, 0x34(fp)               |     t8 = *(arg_34h);
    0x0040cca0 lw v0, 0x40(fp)               |     v0 = *(arg_40h);
    0x0040cca4 sw v0, (t8)                   |     *(t8) = v0;
    0x0040cca8 move t8, zero                 |     t8 = 0;
                                             | label_1:
    0x0040ccac move v0, t8                   |     v0 = t8;
    0x0040ccb0 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040ccb4 lw v1, 0x4c(fp)               |     v1 = *(arg_4ch);
    0x0040ccb8 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040ccbc beq v1, t8, 0x40ccd4          |         
    0x0040ccc0 nop                           |         
    0x0040ccc4 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040ccc8 move t9, t8                   |         t9 = t8;
    0x0040cccc jalr t9                       |         t9 ();
    0x0040ccd0 nop                           |         
                                             |     }
    0x0040ccd4 move sp, fp                   |     
    0x0040ccd8 lw ra, 0x5c(sp)               |     ra = *(var_5ch);
    0x0040ccdc lw fp, 0x58(sp)               |     fp = *(var_58h);
    0x0040cce0 lw s0, 0x54(sp)               |     s0 = *(var_54h);
    0x0040cce4 addiu sp, sp, 0x60            |     
    0x0040cce8 jr ra                         |     return v1;
    0x0040ccec nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40d588 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.rtsp_message_parse ()        | void rtsp_message_parse () {
    0x0040d588 lui gp, 2                     |     
    0x0040d58c addiu gp, gp, -0x2568         |     
    0x0040d590 addu gp, gp, t9               |     gp += t9;
    0x0040d594 addiu sp, sp, -0x58           |     
    0x0040d598 sw ra, 0x54(sp)               |     *(var_54h) = ra;
    0x0040d59c sw fp, 0x50(sp)               |     *(var_50h) = fp;
    0x0040d5a0 sw s0, 0x4c(sp)               |     *(var_4ch) = s0;
    0x0040d5a4 move fp, sp                   |     fp = sp;
    0x0040d5a8 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0040d5ac sw a0, 0x2c(fp)               |     *(arg_2ch) = a0;
    0x0040d5b0 sw a1, 0x28(fp)               |     *(arg_28h) = a1;
    0x0040d5b4 sw a2, 0x24(fp)               |     *(arg_24h) = a2;
    0x0040d5b8 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040d5bc lw t8, (t8)                   |     t8 = *(t8);
    0x0040d5c0 sw t8, 0x44(fp)               |     *(arg_44h) = t8;
    0x0040d5c4 lw t8, 0x28(fp)               |     t8 = *(arg_28h);
                                             |     if (t8 != 0) {
    0x0040d5c8 beqz t8, 0x40d5dc             |         
    0x0040d5cc nop                           |         
    0x0040d5d0 lw t8, 0x24(fp)               |         t8 = *(arg_24h);
                                             |         if (t8 != 0) {
    0x0040d5d4 bnez t8, 0x40d64c             |             goto label_0;
                                             |         }
    0x0040d5d8 nop                           |         
                                             |     }
    0x0040d5dc lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040d5e0 lw s0, (t8)                   |     s0 = *(t8);
    0x0040d5e4 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040b650 */
    0x0040d5e8 addiu t8, t8, -0x49b0         |     t8 += -0x49b0;
    0x0040d5ec move t9, t8                   |     t9 = t8;
    0x0040d5f0 jalr t9                       |     t9 ();
    0x0040d5f4 nop                           |     
    0x0040d5f8 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040d5fc move t8, v0                   |     t8 = v0;
    0x0040d600 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str.rtsp_message_parse */
    0x0040d604 addiu v0, v0, 0x1084          |     v0 += 0x1084;
    0x0040d608 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0040d60c addiu v0, zero, 0xa9          |     v0 = 0xa9;
    0x0040d610 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0040d614 move a0, s0                   |     a0 = s0;
    0x0040d618 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x0040d61c addiu a1, v0, 0xac4           |     a1 = v0 + 0xac4;
    0x0040d620 move a2, t8                   |     a2 = t8;
    0x0040d624 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x0040d628 addiu a3, t8, 0x988           |     a3 = t8 + 0x988;
    0x0040d62c lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040d630 move t9, t8                   |     t9 = t8;
    0x0040d634 jalr t9                       |     t9 ();
    0x0040d638 nop                           |     
    0x0040d63c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040d640 addiu t8, zero, -1            |     t8 = -1;
    0x0040d644 b 0x40db20                    |     goto label_1;
    0x0040d648 nop                           |     
                                             | label_0:
    0x0040d64c addiu a0, zero, 1             |     a0 = 1;
    0x0040d650 addiu a1, zero, 0x1c          |     a1 = 0x1c;
    0x0040d654 lw t8, -0x7e1c(gp)            |     t8 = sym.imp.calloc;
    0x0040d658 move t9, t8                   |     t9 = t8;
    0x0040d65c jalr t9                       |     t9 ();
    0x0040d660 nop                           |     
    0x0040d664 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040d668 move t8, v0                   |     t8 = v0;
    0x0040d66c sw t8, 0x38(fp)               |     *(arg_38h) = t8;
    0x0040d670 lw t8, 0x38(fp)               |     t8 = *(arg_38h);
                                             |     if (t8 == 0) {
    0x0040d674 bnez t8, 0x40d6ec             |         
    0x0040d678 nop                           |         
    0x0040d67c lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040d680 lw s0, (t8)                   |         s0 = *(t8);
    0x0040d684 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040b650 */
    0x0040d688 addiu t8, t8, -0x49b0         |         t8 += -0x49b0;
    0x0040d68c move t9, t8                   |         t9 = t8;
    0x0040d690 jalr t9                       |         t9 ();
    0x0040d694 nop                           |         
    0x0040d698 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040d69c move t8, v0                   |         t8 = v0;
    0x0040d6a0 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.rtsp_message_parse */
    0x0040d6a4 addiu v0, v0, 0x1084          |         v0 += 0x1084;
    0x0040d6a8 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0040d6ac addiu v0, zero, 0xad          |         v0 = 0xad;
    0x0040d6b0 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x0040d6b4 move a0, s0                   |         a0 = s0;
    0x0040d6b8 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_calloc___fail__n */
    0x0040d6bc addiu a1, v0, 0xaf0           |         a1 = v0 + 0xaf0;
    0x0040d6c0 move a2, t8                   |         a2 = t8;
    0x0040d6c4 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x0040d6c8 addiu a3, t8, 0x988           |         a3 = t8 + 0x988;
    0x0040d6cc lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040d6d0 move t9, t8                   |         t9 = t8;
    0x0040d6d4 jalr t9                       |         t9 ();
    0x0040d6d8 nop                           |         
    0x0040d6dc lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040d6e0 addiu t8, zero, -1            |         t8 = -1;
    0x0040d6e4 b 0x40db20                    |         goto label_1;
    0x0040d6e8 nop                           |         
                                             |     }
    0x0040d6ec sw zero, 0x34(fp)             |     *(arg_34h) = 0;
    0x0040d6f0 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* str._r_n_r_n */
    0x0040d6f4 addiu t8, t8, 0xfc4           |     t8 += 0xfc4;
    0x0040d6f8 sw t8, 0x3c(fp)               |     *(arg_3ch) = t8;
    0x0040d6fc lw a0, 0x28(fp)               |     a0 = *(arg_28h);
    0x0040d700 lw t8, -0x7f28(gp)            |     t8 = sym.imp.strdup;
    0x0040d704 move t9, t8                   |     t9 = t8;
    0x0040d708 jalr t9                       |     t9 ();
    0x0040d70c nop                           |     
    0x0040d710 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040d714 move t8, v0                   |     t8 = v0;
    0x0040d718 sw t8, 0x40(fp)               |     *(arg_40h) = t8;
    0x0040d71c lw t8, 0x40(fp)               |     t8 = *(arg_40h);
                                             |     if (t8 == 0) {
    0x0040d720 bnez t8, 0x40d7b0             |         
    0x0040d724 nop                           |         
    0x0040d728 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040d72c lw s0, (t8)                   |         s0 = *(t8);
    0x0040d730 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040b650 */
    0x0040d734 addiu t8, t8, -0x49b0         |         t8 += -0x49b0;
    0x0040d738 move t9, t8                   |         t9 = t8;
    0x0040d73c jalr t9                       |         t9 ();
    0x0040d740 nop                           |         
    0x0040d744 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040d748 move t8, v0                   |         t8 = v0;
    0x0040d74c lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.rtsp_message_parse */
    0x0040d750 addiu v0, v0, 0x1084          |         v0 += 0x1084;
    0x0040d754 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0040d758 addiu v0, zero, 0xb7          |         v0 = 0xb7;
    0x0040d75c sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x0040d760 move a0, s0                   |         a0 = s0;
    0x0040d764 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_strdup___fail__n */
    0x0040d768 addiu a1, v0, 0xb20           |         a1 = v0 + 0xb20;
    0x0040d76c move a2, t8                   |         a2 = t8;
    0x0040d770 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x0040d774 addiu a3, t8, 0x988           |         a3 = t8 + 0x988;
    0x0040d778 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040d77c move t9, t8                   |         t9 = t8;
    0x0040d780 jalr t9                       |         t9 ();
    0x0040d784 nop                           |         
    0x0040d788 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040d78c lw a0, 0x38(fp)               |         a0 = *(arg_38h);
    0x0040d790 lw t8, -0x7f5c(gp)            |         t8 = sym.rtsp_message_free;
    0x0040d794 move t9, t8                   |         t9 = t8;
    0x0040d798 jalr t9                       |         t9 ();
    0x0040d79c nop                           |         
    0x0040d7a0 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040d7a4 addiu t8, zero, -1            |         t8 = -1;
    0x0040d7a8 b 0x40db20                    |         goto label_1;
    0x0040d7ac nop                           |         
                                             |     }
    0x0040d7b0 lw t8, 0x38(fp)               |     t8 = *(arg_38h);
    0x0040d7b4 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (t8 == 0) {
    0x0040d7b8 bnez t8, 0x40d9d8             |         
    0x0040d7bc nop                           |         
    0x0040d7c0 lw a0, 0x40(fp)               |         a0 = *(arg_40h);
    0x0040d7c4 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.OPTIONS */
    0x0040d7c8 addiu a1, t8, 0xfcc           |         a1 = t8 + 0xfcc;
    0x0040d7cc addiu a2, zero, 7             |         a2 = 7;
    0x0040d7d0 lw t8, -0x7eec(gp)            |         t8 = sym.imp.memcmp;
    0x0040d7d4 move t9, t8                   |         t9 = t8;
    0x0040d7d8 jalr t9                       |         t9 ();
    0x0040d7dc nop                           |         
    0x0040d7e0 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040d7e4 move t8, v0                   |         t8 = v0;
                                             |         if (t8 == 0) {
    0x0040d7e8 bnez t8, 0x40d804             |             
    0x0040d7ec nop                           |             
    0x0040d7f0 lw t8, 0x38(fp)               |             t8 = *(arg_38h);
    0x0040d7f4 addiu v0, zero, 1             |             v0 = 1;
    0x0040d7f8 sw v0, (t8)                   |             *(t8) = v0;
    0x0040d7fc b 0x40d9d8                    |             goto label_2;
    0x0040d800 nop                           |             
                                             |         }
    0x0040d804 lw a0, 0x40(fp)               |         a0 = *(arg_40h);
    0x0040d808 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.DESCRIBE */
    0x0040d80c addiu a1, t8, 0xfd4           |         a1 = t8 + 0xfd4;
    0x0040d810 addiu a2, zero, 8             |         a2 = 8;
    0x0040d814 lw t8, -0x7eec(gp)            |         t8 = sym.imp.memcmp;
    0x0040d818 move t9, t8                   |         t9 = t8;
    0x0040d81c jalr t9                       |         t9 ();
    0x0040d820 nop                           |         
    0x0040d824 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040d828 move t8, v0                   |         t8 = v0;
                                             |         if (t8 == 0) {
    0x0040d82c bnez t8, 0x40d848             |             
    0x0040d830 nop                           |             
    0x0040d834 lw t8, 0x38(fp)               |             t8 = *(arg_38h);
    0x0040d838 addiu v0, zero, 2             |             v0 = 2;
    0x0040d83c sw v0, (t8)                   |             *(t8) = v0;
    0x0040d840 b 0x40d9d8                    |             goto label_2;
    0x0040d844 nop                           |             
                                             |         }
    0x0040d848 lw a0, 0x40(fp)               |         a0 = *(arg_40h);
    0x0040d84c lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.SETUP */
    0x0040d850 addiu a1, t8, 0xfe0           |         a1 = t8 + 0xfe0;
    0x0040d854 addiu a2, zero, 5             |         a2 = 5;
    0x0040d858 lw t8, -0x7eec(gp)            |         t8 = sym.imp.memcmp;
    0x0040d85c move t9, t8                   |         t9 = t8;
    0x0040d860 jalr t9                       |         t9 ();
    0x0040d864 nop                           |         
    0x0040d868 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040d86c move t8, v0                   |         t8 = v0;
                                             |         if (t8 == 0) {
    0x0040d870 bnez t8, 0x40d88c             |             
    0x0040d874 nop                           |             
    0x0040d878 lw t8, 0x38(fp)               |             t8 = *(arg_38h);
    0x0040d87c addiu v0, zero, 3             |             v0 = 3;
    0x0040d880 sw v0, (t8)                   |             *(t8) = v0;
    0x0040d884 b 0x40d9d8                    |             goto label_2;
    0x0040d888 nop                           |             
                                             |         }
    0x0040d88c lw a0, 0x40(fp)               |         a0 = *(arg_40h);
    0x0040d890 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.PLAY */
    0x0040d894 addiu a1, t8, 0xfe8           |         a1 = t8 + 0xfe8;
    0x0040d898 addiu a2, zero, 4             |         a2 = 4;
    0x0040d89c lw t8, -0x7eec(gp)            |         t8 = sym.imp.memcmp;
    0x0040d8a0 move t9, t8                   |         t9 = t8;
    0x0040d8a4 jalr t9                       |         t9 ();
    0x0040d8a8 nop                           |         
    0x0040d8ac lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040d8b0 move t8, v0                   |         t8 = v0;
                                             |         if (t8 == 0) {
    0x0040d8b4 bnez t8, 0x40d8d0             |             
    0x0040d8b8 nop                           |             
    0x0040d8bc lw t8, 0x38(fp)               |             t8 = *(arg_38h);
    0x0040d8c0 addiu v0, zero, 4             |             v0 = 4;
    0x0040d8c4 sw v0, (t8)                   |             *(t8) = v0;
    0x0040d8c8 b 0x40d9d8                    |             goto label_2;
    0x0040d8cc nop                           |             
                                             |         }
    0x0040d8d0 lw a0, 0x40(fp)               |         a0 = *(arg_40h);
    0x0040d8d4 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.PAUSE */
    0x0040d8d8 addiu a1, t8, 0xff0           |         a1 = t8 + 0xff0;
    0x0040d8dc addiu a2, zero, 5             |         a2 = 5;
    0x0040d8e0 lw t8, -0x7eec(gp)            |         t8 = sym.imp.memcmp;
    0x0040d8e4 move t9, t8                   |         t9 = t8;
    0x0040d8e8 jalr t9                       |         t9 ();
    0x0040d8ec nop                           |         
    0x0040d8f0 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040d8f4 move t8, v0                   |         t8 = v0;
                                             |         if (t8 == 0) {
    0x0040d8f8 bnez t8, 0x40d914             |             
    0x0040d8fc nop                           |             
    0x0040d900 lw t8, 0x38(fp)               |             t8 = *(arg_38h);
    0x0040d904 addiu v0, zero, 5             |             v0 = 5;
    0x0040d908 sw v0, (t8)                   |             *(t8) = v0;
    0x0040d90c b 0x40d9d8                    |             goto label_2;
    0x0040d910 nop                           |             
                                             |         }
    0x0040d914 lw a0, 0x40(fp)               |         a0 = *(arg_40h);
    0x0040d918 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.TEARDOWN */
    0x0040d91c addiu a1, t8, 0xff8           |         a1 = t8 + 0xff8;
    0x0040d920 addiu a2, zero, 8             |         a2 = 8;
    0x0040d924 lw t8, -0x7eec(gp)            |         t8 = sym.imp.memcmp;
    0x0040d928 move t9, t8                   |         t9 = t8;
    0x0040d92c jalr t9                       |         t9 ();
    0x0040d930 nop                           |         
    0x0040d934 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040d938 move t8, v0                   |         t8 = v0;
                                             |         if (t8 == 0) {
    0x0040d93c bnez t8, 0x40d958             |             
    0x0040d940 nop                           |             
    0x0040d944 lw t8, 0x38(fp)               |             t8 = *(arg_38h);
    0x0040d948 addiu v0, zero, 6             |             v0 = 6;
    0x0040d94c sw v0, (t8)                   |             *(t8) = v0;
    0x0040d950 b 0x40d9d8                    |             goto label_2;
    0x0040d954 nop                           |             
                                             |         }
    0x0040d958 lw a0, 0x40(fp)               |         a0 = *(arg_40h);
    0x0040d95c lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.GET_PARAMETER */
    0x0040d960 addiu a1, t8, 0x1004          |         a1 = t8 + 0x1004;
    0x0040d964 addiu a2, zero, 0xd           |         a2 = 0xd;
    0x0040d968 lw t8, -0x7eec(gp)            |         t8 = sym.imp.memcmp;
    0x0040d96c move t9, t8                   |         t9 = t8;
    0x0040d970 jalr t9                       |         t9 ();
    0x0040d974 nop                           |         
    0x0040d978 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040d97c move t8, v0                   |         t8 = v0;
                                             |         if (t8 == 0) {
    0x0040d980 bnez t8, 0x40d99c             |             
    0x0040d984 nop                           |             
    0x0040d988 lw t8, 0x38(fp)               |             t8 = *(arg_38h);
    0x0040d98c addiu v0, zero, 7             |             v0 = 7;
    0x0040d990 sw v0, (t8)                   |             *(t8) = v0;
    0x0040d994 b 0x40d9d8                    |             goto label_2;
    0x0040d998 nop                           |             
                                             |         }
    0x0040d99c lw a0, 0x40(fp)               |         a0 = *(arg_40h);
    0x0040d9a0 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* str.SET_PARAMETER */
    0x0040d9a4 addiu a1, t8, 0x1014          |         a1 = t8 + 0x1014;
    0x0040d9a8 addiu a2, zero, 0xd           |         a2 = 0xd;
    0x0040d9ac lw t8, -0x7eec(gp)            |         t8 = sym.imp.memcmp;
    0x0040d9b0 move t9, t8                   |         t9 = t8;
    0x0040d9b4 jalr t9                       |         t9 ();
    0x0040d9b8 nop                           |         
    0x0040d9bc lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040d9c0 move t8, v0                   |         t8 = v0;
                                             |         if (t8 != 0) {
    0x0040d9c4 bnez t8, 0x40d9d8             |             goto label_2;
                                             |         }
    0x0040d9c8 nop                           |         
    0x0040d9cc lw t8, 0x38(fp)               |         t8 = *(arg_38h);
    0x0040d9d0 addiu v0, zero, 8             |         v0 = 8;
    0x0040d9d4 sw v0, (t8)                   |         *(t8) = v0;
                                             |     }
                                             | label_2:
    0x0040d9d8 lw a0, 0x40(fp)               |     a0 = *(arg_40h);
    0x0040d9dc lw a1, 0x3c(fp)               |     a1 = *(arg_3ch);
    0x0040d9e0 lw t8, -0x7e94(gp)            |     t8 = sym.imp.strtok;
    0x0040d9e4 move t9, t8                   |     t9 = t8;
    0x0040d9e8 jalr t9                       |     t9 ();
    0x0040d9ec nop                           |     
    0x0040d9f0 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040d9f4 sw v0, 0x34(fp)               |     *(arg_34h) = v0;
    0x0040d9f8 b 0x40daec                    |     goto label_3;
    0x0040d9fc nop                           |     
                                             |     do {
    0x0040da00 lw t8, 0x38(fp)               |         t8 = *(arg_38h);
    0x0040da04 lw t8, 4(t8)                  |         t8 = *((t8 + 1));
                                             |         if (t8 == 0) {
    0x0040da08 bnez t8, 0x40da54             |             
    0x0040da0c nop                           |             
    0x0040da10 lw t8, 0x38(fp)               |             t8 = *(arg_38h);
    0x0040da14 addiu t8, t8, 4               |             t8 += 4;
    0x0040da18 lw a0, 0x34(fp)               |             a0 = *(arg_34h);
    0x0040da1c lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str.CSeq:_____d */
    0x0040da20 addiu a1, v0, 0x1024          |             a1 = v0 + 0x1024;
    0x0040da24 move a2, t8                   |             a2 = t8;
    0x0040da28 lw t8, -0x7eb4(gp)            |             t8 = sym.imp.sscanf;
    0x0040da2c move t9, t8                   |             t9 = t8;
    0x0040da30 jalr t9                       |             t9 ();
    0x0040da34 nop                           |             
    0x0040da38 lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x0040da3c addiu t8, zero, 1             |             t8 = 1;
                                             |             if (v0 != t8) {
    0x0040da40 bne v0, t8, 0x40da54          |                 goto label_4;
                                             |             }
    0x0040da44 nop                           |             
    0x0040da48 addiu t8, zero, 1             |             t8 = 1;
    0x0040da4c b 0x40da58                    |             goto label_5;
    0x0040da50 nop                           |             
                                             |         }
                                             | label_4:
    0x0040da54 move t8, zero                 |         t8 = 0;
                                             |         if (t8 != 0) {
                                             | label_5:
    0x0040da58 beqz t8, 0x40da68             |             
    0x0040da5c nop                           |             
    0x0040da60 b 0x40dacc                    |             goto label_6;
    0x0040da64 nop                           |             
                                             |         }
    0x0040da68 lw t8, 0x38(fp)               |         t8 = *(arg_38h);
    0x0040da6c lb t8, 8(t8)                  |         t8 = *((t8 + 8));
                                             |         if (t8 == 0) {
    0x0040da70 bnez t8, 0x40dabc             |             
    0x0040da74 nop                           |             
    0x0040da78 lw t8, 0x38(fp)               |             t8 = *(arg_38h);
    0x0040da7c addiu t8, t8, 8               |             t8 += 8;
    0x0040da80 lw a0, 0x34(fp)               |             a0 = *(arg_34h);
    0x0040da84 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str.Session:__s */
    0x0040da88 addiu a1, v0, 0x1030          |             a1 = v0 + 0x1030;
    0x0040da8c move a2, t8                   |             a2 = t8;
    0x0040da90 lw t8, -0x7eb4(gp)            |             t8 = sym.imp.sscanf;
    0x0040da94 move t9, t8                   |             t9 = t8;
    0x0040da98 jalr t9                       |             t9 ();
    0x0040da9c nop                           |             
    0x0040daa0 lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x0040daa4 addiu t8, zero, 1             |             t8 = 1;
                                             |             if (v0 != t8) {
    0x0040daa8 bne v0, t8, 0x40dabc          |                 goto label_7;
                                             |             }
    0x0040daac nop                           |             
    0x0040dab0 addiu t8, zero, 1             |             t8 = 1;
    0x0040dab4 b 0x40dac0                    |             goto label_8;
    0x0040dab8 nop                           |             
                                             |         }
                                             | label_7:
    0x0040dabc move t8, zero                 |         t8 = 0;
                                             |         if (t8 != 0) {
                                             | label_8:
    0x0040dac0 beqz t8, 0x40dacc             |             
    0x0040dac4 nop                           |             
    0x0040dac8 nop                           |             
                                             |         }
                                             | label_6:
    0x0040dacc move a0, zero                 |         a0 = 0;
    0x0040dad0 lw a1, 0x3c(fp)               |         a1 = *(arg_3ch);
    0x0040dad4 lw t8, -0x7e94(gp)            |         t8 = sym.imp.strtok;
    0x0040dad8 move t9, t8                   |         t9 = t8;
    0x0040dadc jalr t9                       |         t9 ();
    0x0040dae0 nop                           |         
    0x0040dae4 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040dae8 sw v0, 0x34(fp)               |         *(arg_34h) = v0;
                                             | label_3:
    0x0040daec lw t8, 0x34(fp)               |         t8 = *(arg_34h);
    0x0040daf0 bnez t8, 0x40da00             |         
                                             |     } while (t8 != 0);
    0x0040daf4 nop                           |     
    0x0040daf8 lw a0, 0x40(fp)               |     a0 = *(arg_40h);
    0x0040dafc lw t8, -0x7f0c(gp)            |     t8 = sym.imp.free;
    0x0040db00 move t9, t8                   |     t9 = t8;
    0x0040db04 jalr t9                       |     t9 ();
    0x0040db08 nop                           |     
    0x0040db0c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040db10 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x0040db14 lw v0, 0x38(fp)               |     v0 = *(arg_38h);
    0x0040db18 sw v0, (t8)                   |     *(t8) = v0;
    0x0040db1c move t8, zero                 |     t8 = 0;
                                             | label_1:
    0x0040db20 move v0, t8                   |     v0 = t8;
    0x0040db24 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040db28 lw v1, 0x44(fp)               |     v1 = *(arg_44h);
    0x0040db2c lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040db30 beq v1, t8, 0x40db48          |         
    0x0040db34 nop                           |         
    0x0040db38 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040db3c move t9, t8                   |         t9 = t8;
    0x0040db40 jalr t9                       |         t9 ();
    0x0040db44 nop                           |         
                                             |     }
    0x0040db48 move sp, fp                   |     
    0x0040db4c lw ra, 0x54(sp)               |     ra = *(var_54h);
    0x0040db50 lw fp, 0x50(sp)               |     fp = *(var_50h);
    0x0040db54 lw s0, 0x4c(sp)               |     s0 = *(var_4ch);
    0x0040db58 addiu sp, sp, 0x58            |     
    0x0040db5c jr ra                         |     return v1;
    0x0040db60 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40eae0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.stream_proxy ()              | void stream_proxy () {
    0x0040eae0 lui gp, 2                     |     
    0x0040eae4 addiu gp, gp, -0x3ac0         |     
    0x0040eae8 addu gp, gp, t9               |     gp += t9;
    0x0040eaec addiu sp, sp, -0x158          |     
    0x0040eaf0 sw ra, 0x154(sp)              |     *(var_154h) = ra;
    0x0040eaf4 sw fp, 0x150(sp)              |     *(var_150h) = fp;
    0x0040eaf8 sw s0, 0x14c(sp)              |     *(var_14ch) = s0;
    0x0040eafc move fp, sp                   |     fp = sp;
    0x0040eb00 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0040eb04 sw a0, 0x24(fp)               |     *(arg_24h) = a0;
    0x0040eb08 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040eb0c lw t8, (t8)                   |     t8 = *(t8);
    0x0040eb10 sw t8, 0x144(fp)              |     *(arg_144h) = t8;
    0x0040eb14 lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x0040eb18 lw t8, 4(t8)                  |     t8 = *((t8 + 1));
    0x0040eb1c move a0, t8                   |     a0 = t8;
    0x0040eb20 lw t8, -0x7f4c(gp)            |     t8 = sym.conn_get_fd;
    0x0040eb24 move t9, t8                   |     t9 = t8;
    0x0040eb28 jalr t9                       |     t9 ();
    0x0040eb2c nop                           |     
    0x0040eb30 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040eb34 move t8, v0                   |     t8 = v0;
    0x0040eb38 sw t8, 0x30(fp)               |     *(arg_30h) = t8;
    0x0040eb3c lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x0040eb40 lw t8, 8(t8)                  |     t8 = *((t8 + 2));
    0x0040eb44 move a0, t8                   |     a0 = t8;
    0x0040eb48 lw t8, -0x7f4c(gp)            |     t8 = sym.conn_get_fd;
    0x0040eb4c move t9, t8                   |     t9 = t8;
    0x0040eb50 jalr t9                       |     t9 ();
    0x0040eb54 nop                           |     
    0x0040eb58 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040eb5c move t8, v0                   |     t8 = v0;
    0x0040eb60 sw t8, 0x34(fp)               |     *(arg_34h) = t8;
    0x0040eb64 lw t8, 0x30(fp)               |     t8 = *(arg_30h);
                                             |     if (t8 >= 0) {
    0x0040eb68 bltz t8, 0x40eb7c             |         
    0x0040eb6c nop                           |         
    0x0040eb70 lw t8, 0x34(fp)               |         t8 = *(arg_34h);
                                             |         if (t8 >= 0) {
    0x0040eb74 bgez t8, 0x40ebe8             |             goto label_0;
                                             |         }
    0x0040eb78 nop                           |         
                                             |     }
    0x0040eb7c lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x0040eb80 lw s0, (t8)                   |     s0 = *(t8);
    0x0040eb84 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x0040dc10 */
    0x0040eb88 addiu t8, t8, -0x23f0         |     t8 += -0x23f0;
    0x0040eb8c move t9, t8                   |     t9 = t8;
    0x0040eb90 jalr t9                       |     t9 ();
    0x0040eb94 nop                           |     
    0x0040eb98 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040eb9c move t8, v0                   |     t8 = v0;
    0x0040eba0 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str.stream_proxy */
    0x0040eba4 addiu v0, v0, 0x1358          |     v0 += 0x1358;
    0x0040eba8 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0040ebac addiu v0, zero, 0x71          |     v0 = 0x71;
    0x0040ebb0 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0040ebb4 move a0, s0                   |     a0 = s0;
    0x0040ebb8 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str._s____18s____24s__5d_Connection_file_descriptor_not_yet_ready__n */
    0x0040ebbc addiu a1, v0, 0x12ac          |     a1 = v0 + 0x12ac;
    0x0040ebc0 move a2, t8                   |     a2 = t8;
    0x0040ebc4 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* str.e_1_31mERRORe_0m */
    0x0040ebc8 addiu a3, t8, 0x10e0          |     a3 = t8 + 0x10e0;
    0x0040ebcc lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x0040ebd0 move t9, t8                   |     t9 = t8;
    0x0040ebd4 jalr t9                       |     t9 ();
    0x0040ebd8 nop                           |     
    0x0040ebdc lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040ebe0 b 0x40ef18                    |     goto label_1;
    0x0040ebe4 nop                           |     
                                             | label_0:
    0x0040ebe8 addiu t8, fp, 0xc4            |     t8 = fp + 0xc4;
    0x0040ebec sw t8, 0x38(fp)               |     *(arg_38h) = t8;
    0x0040ebf0 sw zero, 0x2c(fp)             |     *(arg_2ch) = 0;
    0x0040ebf4 b 0x40ec1c                    |     goto label_2;
    0x0040ebf8 nop                           |     
                                             |     do {
    0x0040ebfc lw v0, 0x38(fp)               |         v0 = *(arg_38h);
    0x0040ec00 lw t8, 0x2c(fp)               |         t8 = *(arg_2ch);
    0x0040ec04 sll t8, t8, 2                 |         t8 <<= 2;
    0x0040ec08 addu t8, v0, t8               |         t8 = v0 + t8;
    0x0040ec0c sw zero, (t8)                 |         *(t8) = 0;
    0x0040ec10 lw t8, 0x2c(fp)               |         t8 = *(arg_2ch);
    0x0040ec14 addiu t8, t8, 1               |         t8++;
    0x0040ec18 sw t8, 0x2c(fp)               |         *(arg_2ch) = t8;
                                             | label_2:
    0x0040ec1c addiu v0, zero, 0x20          |         v0 = 0x20;
    0x0040ec20 lw t8, 0x2c(fp)               |         t8 = *(arg_2ch);
    0x0040ec24 sltu t8, t8, v0               |         t8 = (t8 < v0) ? 1 : 0;
    0x0040ec28 bnez t8, 0x40ebfc             |         
                                             |     } while (t8 != 0);
    0x0040ec2c nop                           |     
    0x0040ec30 lw v0, 0x30(fp)               |     v0 = *(arg_30h);
    0x0040ec34 addiu t8, zero, 0x20          |     t8 = 0x20;
    0x0040ec38 divu zero, v0, t8             |     __asm ("divu zero, v0, t8");
                                             |     if (t8 == 0) {
    0x0040ec3c bnez t8, 0x40ec44             |         
    0x0040ec40 break 7                       |         __asm ("break 7");
                                             |     }
    0x0040ec44 mfhi t8                       |     __asm ("mfhi t8");
    0x0040ec48 mflo v0                       |     __asm ("mflo v0");
    0x0040ec4c sll t8, v0, 2                 |     t8 = v0 << 2;
    0x0040ec50 addiu v1, fp, 0x148           |     v1 = fp + 0x148;
    0x0040ec54 addu t8, v1, t8               |     t8 = v1 + t8;
    0x0040ec58 lw v1, -0x84(t8)              |     v1 = *((t8 - 33));
    0x0040ec5c lw a0, 0x30(fp)               |     a0 = *(arg_30h);
    0x0040ec60 addiu t8, zero, 0x20          |     t8 = 0x20;
    0x0040ec64 divu zero, a0, t8             |     __asm ("divu zero, a0, t8");
                                             |     if (t8 == 0) {
    0x0040ec68 bnez t8, 0x40ec70             |         
    0x0040ec6c break 7                       |         __asm ("break 7");
                                             |     }
    0x0040ec70 mfhi t8                       |     __asm ("mfhi t8");
    0x0040ec74 addiu a0, zero, 1             |     a0 = 1;
    0x0040ec78 sllv t8, a0, t8               |     t8 = a0 << t8;
    0x0040ec7c or v1, v1, t8                 |     v1 |= t8;
    0x0040ec80 sll t8, v0, 2                 |     t8 = v0 << 2;
    0x0040ec84 addiu t9, fp, 0x148           |     t9 = fp + 0x148;
    0x0040ec88 addu t8, t9, t8               |     t8 = t9 + t8;
    0x0040ec8c sw v1, -0x84(t8)              |     *((t8 - 132)) = v1;
    0x0040ec90 lw v0, 0x34(fp)               |     v0 = *(arg_34h);
    0x0040ec94 addiu t8, zero, 0x20          |     t8 = 0x20;
    0x0040ec98 divu zero, v0, t8             |     __asm ("divu zero, v0, t8");
                                             |     if (t8 == 0) {
    0x0040ec9c bnez t8, 0x40eca4             |         
    0x0040eca0 break 7                       |         __asm ("break 7");
                                             |     }
    0x0040eca4 mfhi t8                       |     __asm ("mfhi t8");
    0x0040eca8 mflo v0                       |     __asm ("mflo v0");
    0x0040ecac sll t8, v0, 2                 |     t8 = v0 << 2;
    0x0040ecb0 addiu v1, fp, 0x148           |     v1 = fp + 0x148;
    0x0040ecb4 addu t8, v1, t8               |     t8 = v1 + t8;
    0x0040ecb8 lw v1, -0x84(t8)              |     v1 = *((t8 - 33));
    0x0040ecbc lw a0, 0x34(fp)               |     a0 = *(arg_34h);
    0x0040ecc0 addiu t8, zero, 0x20          |     t8 = 0x20;
    0x0040ecc4 divu zero, a0, t8             |     __asm ("divu zero, a0, t8");
                                             |     if (t8 == 0) {
    0x0040ecc8 bnez t8, 0x40ecd0             |         
    0x0040eccc break 7                       |         __asm ("break 7");
                                             |     }
    0x0040ecd0 mfhi t8                       |     __asm ("mfhi t8");
    0x0040ecd4 addiu a0, zero, 1             |     a0 = 1;
    0x0040ecd8 sllv t8, a0, t8               |     t8 = a0 << t8;
    0x0040ecdc or v1, v1, t8                 |     v1 |= t8;
    0x0040ece0 sll t8, v0, 2                 |     t8 = v0 << 2;
    0x0040ece4 addiu t9, fp, 0x148           |     t9 = fp + 0x148;
    0x0040ece8 addu t8, t9, t8               |     t8 = t9 + t8;
    0x0040ecec sw v1, -0x84(t8)              |     *((t8 - 132)) = v1;
    0x0040ecf0 lw v0, 0x30(fp)               |     v0 = *(arg_30h);
    0x0040ecf4 lw t8, 0x34(fp)               |     t8 = *(arg_34h);
    0x0040ecf8 slt t8, t8, v0                |     t8 = (t8 < v0) ? 1 : 0;
                                             |     if (t8 != 0) {
    0x0040ecfc beqz t8, 0x40ed10             |         
    0x0040ed00 nop                           |         
    0x0040ed04 lw t8, 0x30(fp)               |         t8 = *(arg_30h);
    0x0040ed08 b 0x40ed14                    |         goto label_3;
    0x0040ed0c nop                           |         
                                             |     }
    0x0040ed10 lw t8, 0x34(fp)               |     t8 = *(arg_34h);
                                             | label_3:
    0x0040ed14 sw t8, 0x3c(fp)               |     *(arg_3ch) = t8;
                                             |     do {
    0x0040ed18 addiu v1, fp, 0x44            |         v1 = fp + 0x44;
    0x0040ed1c addiu v0, fp, 0xc4            |         v0 = fp + 0xc4;
    0x0040ed20 addiu t8, zero, 0x80          |         t8 = 0x80;
    0x0040ed24 move a0, v1                   |         a0 = v1;
    0x0040ed28 move a1, v0                   |         a1 = v0;
    0x0040ed2c move a2, t8                   |         a2 = t8;
    0x0040ed30 lw t8, -0x7e30(gp)            |         t8 = sym.imp.memcpy;
    0x0040ed34 move t9, t8                   |         t9 = t8;
    0x0040ed38 jalr t9                       |         t9 ();
    0x0040ed3c nop                           |         
    0x0040ed40 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040ed44 lw t8, 0x3c(fp)               |         t8 = *(arg_3ch);
    0x0040ed48 addiu v0, t8, 1               |         v0 = t8 + 1;
    0x0040ed4c addiu t8, fp, 0x44            |         t8 = fp + 0x44;
    0x0040ed50 sw zero, 0x10(sp)             |         *(var_10h) = 0;
    0x0040ed54 move a0, v0                   |         a0 = v0;
    0x0040ed58 move a1, t8                   |         a1 = t8;
    0x0040ed5c move a2, zero                 |         a2 = 0;
    0x0040ed60 move a3, zero                 |         a3 = 0;
    0x0040ed64 lw t8, -0x7e6c(gp)            |         t8 = sym.imp.select;
    0x0040ed68 move t9, t8                   |         t9 = t8;
    0x0040ed6c jalr t9                       |         t9 ();
    0x0040ed70 nop                           |         
    0x0040ed74 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040ed78 move t8, v0                   |         t8 = v0;
    0x0040ed7c sw t8, 0x40(fp)               |         *(arg_40h) = t8;
    0x0040ed80 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
                                             |         if (t8 <= 0) {
    0x0040ed84 bgtz t8, 0x40edf8             |             
    0x0040ed88 nop                           |             
    0x0040ed8c lw t8, -0x7e90(gp)            |             t8 = *((gp - 8100));
    0x0040ed90 lw s0, (t8)                   |             s0 = *(t8);
    0x0040ed94 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* aav.0x0040dc10 */
    0x0040ed98 addiu t8, t8, -0x23f0         |             t8 += -0x23f0;
    0x0040ed9c move t9, t8                   |             t9 = t8;
    0x0040eda0 jalr t9                       |             t9 ();
    0x0040eda4 nop                           |             
    0x0040eda8 lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x0040edac move t8, v0                   |             t8 = v0;
    0x0040edb0 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str.stream_proxy */
    0x0040edb4 addiu v0, v0, 0x1358          |             v0 += 0x1358;
    0x0040edb8 sw v0, 0x10(sp)               |             *(var_10h) = v0;
    0x0040edbc addiu v0, zero, 0x82          |             v0 = 0x82;
    0x0040edc0 sw v0, 0x14(sp)               |             *(var_14h) = v0;
    0x0040edc4 move a0, s0                   |             a0 = s0;
    0x0040edc8 lw v0, -0x7fd8(gp)            |             v0 = *((gp - 8182));
                                             |             /* str._s____18s____24s__5d_select___fail__n */
    0x0040edcc addiu a1, v0, 0x12f0          |             a1 = v0 + 0x12f0;
    0x0040edd0 move a2, t8                   |             a2 = t8;
    0x0040edd4 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* str.e_1_31mERRORe_0m */
    0x0040edd8 addiu a3, t8, 0x10e0          |             a3 = t8 + 0x10e0;
    0x0040eddc lw t8, -0x7ee0(gp)            |             t8 = sym.imp.fprintf
    0x0040ede0 move t9, t8                   |             t9 = t8;
    0x0040ede4 jalr t9                       |             t9 ();
    0x0040ede8 nop                           |             
    0x0040edec lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x0040edf0 b 0x40ef18                    |             goto label_1;
    0x0040edf4 nop                           |             
                                             |         }
    0x0040edf8 lw v0, 0x30(fp)               |         v0 = *(arg_30h);
    0x0040edfc addiu t8, zero, 0x20          |         t8 = 0x20;
    0x0040ee00 divu zero, v0, t8             |         __asm ("divu zero, v0, t8");
                                             |         if (t8 == 0) {
    0x0040ee04 bnez t8, 0x40ee0c             |             
    0x0040ee08 break 7                       |             __asm ("break 7");
                                             |         }
    0x0040ee0c mfhi t8                       |         __asm ("mfhi t8");
    0x0040ee10 mflo t8                       |         __asm ("mflo t8");
    0x0040ee14 sll t8, t8, 2                 |         t8 <<= 2;
    0x0040ee18 addiu v0, fp, 0x148           |         v0 = fp + 0x148;
    0x0040ee1c addu t8, v0, t8               |         t8 = v0 + t8;
    0x0040ee20 lw v0, -0x104(t8)             |         v0 = *((t8 - 65));
    0x0040ee24 lw v1, 0x30(fp)               |         v1 = *(arg_30h);
    0x0040ee28 addiu t8, zero, 0x20          |         t8 = 0x20;
    0x0040ee2c divu zero, v1, t8             |         __asm ("divu zero, v1, t8");
                                             |         if (t8 == 0) {
    0x0040ee30 bnez t8, 0x40ee38             |             
    0x0040ee34 break 7                       |             __asm ("break 7");
                                             |         }
    0x0040ee38 mfhi t8                       |         __asm ("mfhi t8");
    0x0040ee3c srav t8, v0, t8               |         __asm ("srav t8, v0, t8");
    0x0040ee40 andi t8, t8, 1                |         t8 &= 1;
                                             |         if (t8 != 0) {
    0x0040ee44 beqz t8, 0x40ee84             |             
    0x0040ee48 nop                           |             
    0x0040ee4c lw a0, 0x24(fp)               |             a0 = *(arg_24h);
    0x0040ee50 lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* aav.0x0040df64 */
    0x0040ee54 addiu t8, t8, -0x209c         |             t8 += -0x209c;
    0x0040ee58 move t9, t8                   |             t9 = t8;
    0x0040ee5c jalr t9                       |             t9 ();
    0x0040ee60 nop                           |             
    0x0040ee64 lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x0040ee68 move t8, v0                   |             t8 = v0;
    0x0040ee6c srl t8, t8, 0x1f              |             t8 >>= 0x1f;
    0x0040ee70 andi t8, t8, 0xff             |             t8 &= 0xff;
                                             |             if (t8 == 0) {
    0x0040ee74 beqz t8, 0x40ee84             |                 goto label_4;
                                             |             }
    0x0040ee78 nop                           |             
    0x0040ee7c b 0x40ef18                    |             goto label_1;
    0x0040ee80 nop                           |             
                                             |         }
                                             | label_4:
    0x0040ee84 lw v0, 0x34(fp)               |         v0 = *(arg_34h);
    0x0040ee88 addiu t8, zero, 0x20          |         t8 = 0x20;
    0x0040ee8c divu zero, v0, t8             |         __asm ("divu zero, v0, t8");
                                             |         if (t8 == 0) {
    0x0040ee90 bnez t8, 0x40ee98             |             
    0x0040ee94 break 7                       |             __asm ("break 7");
                                             |         }
    0x0040ee98 mfhi t8                       |         __asm ("mfhi t8");
    0x0040ee9c mflo t8                       |         __asm ("mflo t8");
    0x0040eea0 sll t8, t8, 2                 |         t8 <<= 2;
    0x0040eea4 addiu v0, fp, 0x148           |         v0 = fp + 0x148;
    0x0040eea8 addu t8, v0, t8               |         t8 = v0 + t8;
    0x0040eeac lw v0, -0x104(t8)             |         v0 = *((t8 - 65));
    0x0040eeb0 lw v1, 0x34(fp)               |         v1 = *(arg_34h);
    0x0040eeb4 addiu t8, zero, 0x20          |         t8 = 0x20;
    0x0040eeb8 divu zero, v1, t8             |         __asm ("divu zero, v1, t8");
                                             |         if (t8 == 0) {
    0x0040eebc bnez t8, 0x40eec4             |             
    0x0040eec0 break 7                       |             __asm ("break 7");
                                             |         }
    0x0040eec4 mfhi t8                       |         __asm ("mfhi t8");
    0x0040eec8 srav t8, v0, t8               |         __asm ("srav t8, v0, t8");
    0x0040eecc andi t8, t8, 1                |         t8 &= 1;
                                             |         if (t8 != 0) {
    0x0040eed0 beqz t8, 0x40ef10             |             
    0x0040eed4 nop                           |             
    0x0040eed8 lw a0, 0x24(fp)               |             a0 = *(arg_24h);
    0x0040eedc lw t8, -0x7fd8(gp)            |             t8 = *((gp - 8182));
                                             |             /* aav.0x0040e400 */
    0x0040eee0 addiu t8, t8, -0x1c00         |             t8 += -0x1c00;
    0x0040eee4 move t9, t8                   |             t9 = t8;
    0x0040eee8 jalr t9                       |             t9 ();
    0x0040eeec nop                           |             
    0x0040eef0 lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x0040eef4 move t8, v0                   |             t8 = v0;
    0x0040eef8 srl t8, t8, 0x1f              |             t8 >>= 0x1f;
    0x0040eefc andi t8, t8, 0xff             |             t8 &= 0xff;
                                             |             if (t8 == 0) {
    0x0040ef00 beqz t8, 0x40ef10             |                 goto label_5;
                                             |             }
    0x0040ef04 nop                           |             
    0x0040ef08 b 0x40ef18                    |             goto label_1;
    0x0040ef0c nop                           |             
                                             |         }
                                             | label_5:
    0x0040ef10 b 0x40ed18                    |         
                                             |     } while (1);
    0x0040ef14 nop                           |     
                                             | label_1:
    0x0040ef18 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040ef1c lw v0, 0x144(fp)              |     v0 = *(arg_144h);
    0x0040ef20 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v0 != t8) {
    0x0040ef24 beq v0, t8, 0x40ef3c          |         
    0x0040ef28 nop                           |         
    0x0040ef2c lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040ef30 move t9, t8                   |         t9 = t8;
    0x0040ef34 jalr t9                       |         t9 ();
    0x0040ef38 nop                           |         
                                             |     }
    0x0040ef3c move sp, fp                   |     
    0x0040ef40 lw ra, 0x154(sp)              |     ra = *(var_154h);
    0x0040ef44 lw fp, 0x150(sp)              |     fp = *(var_150h);
    0x0040ef48 lw s0, 0x14c(sp)              |     s0 = *(var_14ch);
    0x0040ef4c addiu sp, sp, 0x158           |     
    0x0040ef50 jr ra                         |     return v0;
    0x0040ef54 nop                           |     
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x408dcc */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.tcp_accept ()            | void tcp_accept () {
    0x00408dcc lui gp, 2                 |     
    0x00408dd0 addiu gp, gp, 0x2254      |     
    0x00408dd4 addu gp, gp, t9           |     gp += t9;
    0x00408dd8 addiu sp, sp, -0x40       |     
    0x00408ddc sw ra, 0x3c(sp)           |     *(var_3ch) = ra;
    0x00408de0 sw fp, 0x38(sp)           |     *(var_38h) = fp;
    0x00408de4 sw s0, 0x34(sp)           |     *(var_34h) = s0;
    0x00408de8 move fp, sp               |     fp = sp;
    0x00408dec sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00408df0 sw a0, 0x24(fp)           |     *(arg_24h) = a0;
    0x00408df4 lw t8, -0x7e24(gp)        |     t8 = *((gp - 8073));
    0x00408df8 lw t8, (t8)               |     t8 = *(t8);
    0x00408dfc sw t8, 0x2c(fp)           |     *(arg_2ch) = t8;
    0x00408e00 lw t8, 0x24(fp)           |     t8 = *(arg_24h);
                                         |     if (t8 == 0) {
    0x00408e04 bnez t8, 0x408e7c         |         
    0x00408e08 nop                       |         
    0x00408e0c lw t8, -0x7e90(gp)        |         t8 = *((gp - 8100));
    0x00408e10 lw s0, (t8)               |         s0 = *(t8);
    0x00408e14 lw t8, -0x7fd0(gp)        |         t8 = *(gp);
                                         |         /* aav.0x00407870 */
    0x00408e18 addiu t8, t8, 0x7870      |         t8 += 0x7870;
    0x00408e1c move t9, t8               |         t9 = t8;
    0x00408e20 jalr t9                   |         t9 ();
    0x00408e24 nop                       |         
    0x00408e28 lw gp, 0x18(fp)           |         gp = *(arg_18h);
    0x00408e2c move t8, v0               |         t8 = v0;
    0x00408e30 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* str.tcp_accept */
    0x00408e34 addiu v0, v0, 0x1dc       |         v0 += 0x1dc;
    0x00408e38 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00408e3c addiu v0, zero, 0xc7      |         v0 = 0xc7;
    0x00408e40 sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x00408e44 move a0, s0               |         a0 = s0;
    0x00408e48 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x00408e4c addiu a1, v0, -0xbc       |         a1 = v0 + -0xbc;
    0x00408e50 move a2, t8               |         a2 = t8;
    0x00408e54 lw t8, -0x7fd8(gp)        |         t8 = *((gp - 8182));
    0x00408e58 addiu a3, t8, -0xd0       |         a3 = t8 + -0xd0;
    0x00408e5c lw t8, -0x7ee0(gp)        |         t8 = sym.imp.fprintf
    0x00408e60 move t9, t8               |         t9 = t8;
    0x00408e64 jalr t9                   |         t9 ();
    0x00408e68 nop                       |         
    0x00408e6c lw gp, 0x18(fp)           |         gp = *(arg_18h);
    0x00408e70 move t8, zero             |         t8 = 0;
    0x00408e74 b 0x408f7c                |         goto label_0;
    0x00408e78 nop                       |         
                                         |     }
    0x00408e7c addiu t8, fp, 0x28        |     t8 = fp + 0x28;
    0x00408e80 move a0, t8               |     a0 = t8;
    0x00408e84 lw t8, -0x7fd4(gp)        |     t8 = sym.tcp_create;
    0x00408e88 move t9, t8               |     t9 = t8;
    0x00408e8c jalr t9                   |     t9 ();
    0x00408e90 nop                       |     
    0x00408e94 lw gp, 0x18(fp)           |     gp = *(arg_18h);
    0x00408e98 move t8, v0               |     t8 = v0;
    0x00408e9c sltu t8, zero, t8         |     t8 = (0 < t8) ? 1 : 0;
    0x00408ea0 andi t8, t8, 0xff         |     t8 &= 0xff;
                                         |     if (t8 != 0) {
    0x00408ea4 beqz t8, 0x408f1c         |         
    0x00408ea8 nop                       |         
    0x00408eac lw t8, -0x7e90(gp)        |         t8 = *((gp - 8100));
    0x00408eb0 lw s0, (t8)               |         s0 = *(t8);
    0x00408eb4 lw t8, -0x7fd0(gp)        |         t8 = *(gp);
                                         |         /* aav.0x00407870 */
    0x00408eb8 addiu t8, t8, 0x7870      |         t8 += 0x7870;
    0x00408ebc move t9, t8               |         t9 = t8;
    0x00408ec0 jalr t9                   |         t9 ();
    0x00408ec4 nop                       |         
    0x00408ec8 lw gp, 0x18(fp)           |         gp = *(arg_18h);
    0x00408ecc move t8, v0               |         t8 = v0;
    0x00408ed0 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* str.tcp_accept */
    0x00408ed4 addiu v0, v0, 0x1dc       |         v0 += 0x1dc;
    0x00408ed8 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00408edc addiu v0, zero, 0xcb      |         v0 = 0xcb;
    0x00408ee0 sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x00408ee4 move a0, s0               |         a0 = s0;
    0x00408ee8 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* esilref: '&s | &-18s | &-24s |&5d| tcp_create() fail!
' */
    0x00408eec addiu a1, v0, 0x154       |         a1 = v0 + 0x154;
    0x00408ef0 move a2, t8               |         a2 = t8;
    0x00408ef4 lw t8, -0x7fd8(gp)        |         t8 = *((gp - 8182));
    0x00408ef8 addiu a3, t8, -0xd0       |         a3 = t8 + -0xd0;
    0x00408efc lw t8, -0x7ee0(gp)        |         t8 = sym.imp.fprintf
    0x00408f00 move t9, t8               |         t9 = t8;
    0x00408f04 jalr t9                   |         t9 ();
    0x00408f08 nop                       |         
    0x00408f0c lw gp, 0x18(fp)           |         gp = *(arg_18h);
    0x00408f10 move t8, zero             |         t8 = 0;
    0x00408f14 b 0x408f7c                |         goto label_0;
    0x00408f18 nop                       |         
                                         |     }
    0x00408f1c lw t8, 0x28(fp)           |     t8 = *(arg_28h);
    0x00408f20 addiu v0, zero, 0x1c      |     v0 = 0x1c;
    0x00408f24 sw v0, 4(t8)              |     *((t8 + 4)) = v0;
    0x00408f28 lw s0, 0x28(fp)           |     s0 = *(arg_28h);
    0x00408f2c lw t8, 0x24(fp)           |     t8 = *(arg_24h);
    0x00408f30 lw v1, (t8)               |     v1 = *(t8);
    0x00408f34 lw t8, 0x28(fp)           |     t8 = *(arg_28h);
    0x00408f38 addiu v0, t8, 8           |     v0 = t8 + 8;
    0x00408f3c lw t8, 0x28(fp)           |     t8 = *(arg_28h);
    0x00408f40 addiu t8, t8, 4           |     t8 += 4;
    0x00408f44 move a0, v1               |     a0 = v1;
    0x00408f48 move a1, v0               |     a1 = v0;
    0x00408f4c move a2, t8               |     a2 = t8;
    0x00408f50 lw t8, -0x7f08(gp)        |     t8 = sym.imp.accept;
    0x00408f54 move t9, t8               |     t9 = t8;
    0x00408f58 jalr t9                   |     t9 ();
    0x00408f5c nop                       |     
    0x00408f60 lw gp, 0x18(fp)           |     gp = *(arg_18h);
    0x00408f64 move t8, v0               |     t8 = v0;
    0x00408f68 sw t8, (s0)               |     *(s0) = t8;
    0x00408f6c lw t8, 0x28(fp)           |     t8 = *(arg_28h);
    0x00408f70 addiu v0, zero, 1         |     v0 = 1;
    0x00408f74 sw v0, 0x24(t8)           |     *((t8 + 36)) = v0;
    0x00408f78 lw t8, 0x28(fp)           |     t8 = *(arg_28h);
                                         | label_0:
    0x00408f7c move v0, t8               |     v0 = t8;
    0x00408f80 lw t8, -0x7e24(gp)        |     t8 = *((gp - 8073));
    0x00408f84 lw v1, 0x2c(fp)           |     v1 = *(arg_2ch);
    0x00408f88 lw t8, (t8)               |     t8 = *(t8);
                                         |     if (v1 != t8) {
    0x00408f8c beq v1, t8, 0x408fa4      |         
    0x00408f90 nop                       |         
    0x00408f94 lw t8, -0x7e84(gp)        |         t8 = sym.imp.__stack_chk_fail;
    0x00408f98 move t9, t8               |         t9 = t8;
    0x00408f9c jalr t9                   |         t9 ();
    0x00408fa0 nop                       |         
                                         |     }
    0x00408fa4 move sp, fp               |     
    0x00408fa8 lw ra, 0x3c(sp)           |     ra = *(var_3ch);
    0x00408fac lw fp, 0x38(sp)           |     fp = *(var_38h);
    0x00408fb0 lw s0, 0x34(sp)           |     s0 = *(var_34h);
    0x00408fb4 addiu sp, sp, 0x40        |     
    0x00408fb8 jr ra                     |     return v1;
    0x00408fbc nop                       |     
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x407a78 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.tcp_connect ()           | void tcp_connect () {
    0x00407a78 lui gp, 2                 |     
    0x00407a7c addiu gp, gp, 0x35a8      |     
    0x00407a80 addu gp, gp, t9           |     gp += t9;
    0x00407a84 addiu sp, sp, -0xb0       |     
    0x00407a88 sw ra, 0xac(sp)           |     *(var_ach) = ra;
    0x00407a8c sw fp, 0xa8(sp)           |     *(var_a8h) = fp;
    0x00407a90 sw s1, 0xa4(sp)           |     *(var_a4h) = s1;
    0x00407a94 sw s0, 0xa0(sp)           |     *(var_a0h) = s0;
    0x00407a98 move fp, sp               |     fp = sp;
    0x00407a9c sw gp, 0x20(sp)           |     *(var_20h) = gp;
    0x00407aa0 sw a0, 0x34(fp)           |     *(arg_34h) = a0;
    0x00407aa4 sw a1, 0x30(fp)           |     *(arg_30h) = a1;
    0x00407aa8 sw a2, 0x2c(fp)           |     *(arg_2ch) = a2;
    0x00407aac lw t8, -0x7e24(gp)        |     t8 = *((gp - 8073));
    0x00407ab0 lw t8, (t8)               |     t8 = *(t8);
    0x00407ab4 sw t8, 0x9c(fp)           |     *(arg_9ch) = t8;
    0x00407ab8 lw t8, 0x34(fp)           |     t8 = *(arg_34h);
                                         |     if (t8 != 0) {
    0x00407abc beqz t8, 0x407adc         |         
    0x00407ac0 nop                       |         
    0x00407ac4 lw t8, 0x30(fp)           |         t8 = *(arg_30h);
                                         |         if (t8 == 0) {
    0x00407ac8 beqz t8, 0x407adc         |             goto label_0;
                                         |         }
    0x00407acc nop                       |         
    0x00407ad0 lw t8, 0x2c(fp)           |         t8 = *(arg_2ch);
                                         |         if (t8 != 0) {
    0x00407ad4 bnez t8, 0x407b4c         |             goto label_1;
                                         |         }
    0x00407ad8 nop                       |         
                                         |     }
                                         | label_0:
    0x00407adc lw t8, -0x7e90(gp)        |     t8 = *((gp - 8100));
    0x00407ae0 lw s0, (t8)               |     s0 = *(t8);
    0x00407ae4 lw t8, -0x7fd0(gp)        |     t8 = *(gp);
                                         |     /* aav.0x00407870 */
    0x00407ae8 addiu t8, t8, 0x7870      |     t8 += 0x7870;
    0x00407aec move t9, t8               |     t9 = t8;
    0x00407af0 jalr t9                   |     t9 ();
    0x00407af4 nop                       |     
    0x00407af8 lw gp, 0x20(fp)           |     gp = *(arg_20h);
    0x00407afc move t8, v0               |     t8 = v0;
    0x00407b00 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
                                         |     /* str.tcp_connect */
    0x00407b04 addiu v0, v0, 0x190       |     v0 += 0x190;
    0x00407b08 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00407b0c addiu v0, zero, 0x20      |     v0 = 0x20;
    0x00407b10 sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00407b14 move a0, s0               |     a0 = s0;
    0x00407b18 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
                                         |     /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x00407b1c addiu a1, v0, -0xbc       |     a1 = v0 + -0xbc;
    0x00407b20 move a2, t8               |     a2 = t8;
    0x00407b24 lw t8, -0x7fd8(gp)        |     t8 = *((gp - 8182));
    0x00407b28 addiu a3, t8, -0xd0       |     a3 = t8 + -0xd0;
    0x00407b2c lw t8, -0x7ee0(gp)        |     t8 = sym.imp.fprintf
    0x00407b30 move t9, t8               |     t9 = t8;
    0x00407b34 jalr t9                   |     t9 ();
    0x00407b38 nop                       |     
    0x00407b3c lw gp, 0x20(fp)           |     gp = *(arg_20h);
    0x00407b40 addiu t8, zero, -1        |     t8 = -1;
    0x00407b44 b 0x40809c                |     goto label_2;
    0x00407b48 nop                       |     
                                         | label_1:
    0x00407b4c sw zero, 0x40(fp)         |     *(arg_40h) = 0;
    0x00407b50 addiu t8, zero, -1        |     t8 = -1;
    0x00407b54 sw t8, 0x44(fp)           |     *(arg_44h) = t8;
    0x00407b58 sw zero, 0x3c(fp)         |     *(arg_3ch) = 0;
    0x00407b5c addiu t8, fp, 0x4c        |     t8 = fp + 0x4c;
    0x00407b60 move a0, t8               |     a0 = t8;
    0x00407b64 move a1, zero             |     a1 = 0;
    0x00407b68 addiu a2, zero, 0x20      |     a2 = 0x20;
    0x00407b6c lw t8, -0x7ecc(gp)        |     t8 = sym.imp.memset;
    0x00407b70 move t9, t8               |     t9 = t8;
    0x00407b74 jalr t9                   |     t9 ();
    0x00407b78 nop                       |     
    0x00407b7c lw gp, 0x20(fp)           |     gp = *(arg_20h);
    0x00407b80 sw zero, 0x50(fp)         |     *(arg_50h) = 0;
    0x00407b84 addiu t8, zero, 1         |     t8 = 1;
    0x00407b88 sw t8, 0x4c(fp)           |     *(arg_4ch) = t8;
    0x00407b8c addiu t8, zero, 2         |     t8 = 2;
    0x00407b90 sw t8, 0x54(fp)           |     *(arg_54h) = t8;
    0x00407b94 addiu t8, zero, 6         |     t8 = 6;
    0x00407b98 sw t8, 0x58(fp)           |     *(arg_58h) = t8;
    0x00407b9c addiu v0, fp, 0x4c        |     v0 = fp + 0x4c;
    0x00407ba0 addiu t8, fp, 0x3c        |     t8 = fp + 0x3c;
    0x00407ba4 lw a0, 0x30(fp)           |     a0 = *(arg_30h);
    0x00407ba8 lw a1, 0x2c(fp)           |     a1 = *(arg_2ch);
    0x00407bac move a2, v0               |     a2 = v0;
    0x00407bb0 move a3, t8               |     a3 = t8;
    0x00407bb4 lw t8, -0x7f3c(gp)        |     t8 = sym.imp.getaddrinfo;
    0x00407bb8 move t9, t8               |     t9 = t8;
    0x00407bbc jalr t9                   |     t9 ();
    0x00407bc0 nop                       |     
    0x00407bc4 lw gp, 0x20(fp)           |     gp = *(arg_20h);
    0x00407bc8 move t8, v0               |     t8 = v0;
    0x00407bcc sw t8, 0x40(fp)           |     *(arg_40h) = t8;
    0x00407bd0 lw t8, 0x40(fp)           |     t8 = *(arg_40h);
                                         |     if (t8 != 0) {
    0x00407bd4 beqz t8, 0x407c6c         |         
    0x00407bd8 nop                       |         
    0x00407bdc lw t8, -0x7e90(gp)        |         t8 = *((gp - 8100));
    0x00407be0 lw s1, (t8)               |         s1 = *(t8);
    0x00407be4 lw t8, -0x7fd0(gp)        |         t8 = *(gp);
                                         |         /* aav.0x00407870 */
    0x00407be8 addiu t8, t8, 0x7870      |         t8 += 0x7870;
    0x00407bec move t9, t8               |         t9 = t8;
    0x00407bf0 jalr t9                   |         t9 ();
    0x00407bf4 nop                       |         
    0x00407bf8 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00407bfc move s0, v0               |         s0 = v0;
    0x00407c00 lw a0, 0x40(fp)           |         a0 = *(arg_40h);
    0x00407c04 lw t8, -0x7eac(gp)        |         t8 = sym.imp.gai_strerror;
    0x00407c08 move t9, t8               |         t9 = t8;
    0x00407c0c jalr t9                   |         t9 ();
    0x00407c10 nop                       |         
    0x00407c14 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00407c18 move t8, v0               |         t8 = v0;
    0x00407c1c lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* str.tcp_connect */
    0x00407c20 addiu v0, v0, 0x190       |         v0 += 0x190;
    0x00407c24 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00407c28 addiu v0, zero, 0x2e      |         v0 = 0x2e;
    0x00407c2c sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x00407c30 sw t8, 0x18(sp)           |         *(var_18h) = t8;
    0x00407c34 move a0, s1               |         a0 = s1;
    0x00407c38 lw t8, -0x7fd8(gp)        |         t8 = *((gp - 8182));
                                         |         /* str._s____18s____24s__5d_connect:_getaddrinfo__:___s__n */
    0x00407c3c addiu a1, t8, -0x90       |         a1 = t8 + -0x90;
    0x00407c40 move a2, s0               |         a2 = s0;
    0x00407c44 lw t8, -0x7fd8(gp)        |         t8 = *((gp - 8182));
    0x00407c48 addiu a3, t8, -0xd0       |         a3 = t8 + -0xd0;
    0x00407c4c lw t8, -0x7ee0(gp)        |         t8 = sym.imp.fprintf
    0x00407c50 move t9, t8               |         t9 = t8;
    0x00407c54 jalr t9                   |         t9 ();
    0x00407c58 nop                       |         
    0x00407c5c lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00407c60 addiu t8, zero, 0x7e      |         t8 = 0x7e;
    0x00407c64 b 0x40809c                |         goto label_2;
    0x00407c68 nop                       |         
                                         |     }
    0x00407c6c lw t8, 0x3c(fp)           |     t8 = *(arg_3ch);
    0x00407c70 sw t8, 0x48(fp)           |     *(arg_48h) = t8;
    0x00407c74 b 0x407fd0                |     goto label_3;
    0x00407c78 nop                       |     
                                         |     do {
    0x00407c7c sw zero, 0x40(fp)         |         *(arg_40h) = 0;
    0x00407c80 lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00407c84 lw v1, 4(t8)              |         v1 = *((t8 + 1));
    0x00407c88 lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00407c8c lw v0, 8(t8)              |         v0 = *((t8 + 2));
    0x00407c90 lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00407c94 lw t8, 0xc(t8)            |         t8 = *((t8 + 3));
    0x00407c98 move a0, v1               |         a0 = v1;
    0x00407c9c move a1, v0               |         a1 = v0;
    0x00407ca0 move a2, t8               |         a2 = t8;
    0x00407ca4 lw t8, -0x7ef0(gp)        |         t8 = sym.imp.socket;
    0x00407ca8 move t9, t8               |         t9 = t8;
    0x00407cac jalr t9                   |         t9 ();
    0x00407cb0 nop                       |         
    0x00407cb4 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00407cb8 sw v0, 0x44(fp)           |         *(arg_44h) = v0;
    0x00407cbc lw v0, 0x44(fp)           |         v0 = *(arg_44h);
    0x00407cc0 addiu t8, zero, -1        |         t8 = -1;
                                         |         if (v0 == t8) {
    0x00407cc4 bne v0, t8, 0x407d5c      |             
    0x00407cc8 nop                       |             
    0x00407ccc lw t8, -0x7fd8(gp)        |             t8 = *((gp - 8182));
                                         |             /* str.socket */
    0x00407cd0 addiu a0, t8, -0x58       |             a0 = t8 + -0x58;
    0x00407cd4 lw t8, -0x7ed4(gp)        |             t8 = sym.imp.perror;
    0x00407cd8 move t9, t8               |             t9 = t8;
    0x00407cdc jalr t9                   |             t9 ();
    0x00407ce0 nop                       |             
    0x00407ce4 lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x00407ce8 lw t8, -0x7e90(gp)        |             t8 = *((gp - 8100));
    0x00407cec lw s0, (t8)               |             s0 = *(t8);
    0x00407cf0 lw t8, -0x7fd0(gp)        |             t8 = *(gp);
                                         |             /* aav.0x00407870 */
    0x00407cf4 addiu t8, t8, 0x7870      |             t8 += 0x7870;
    0x00407cf8 move t9, t8               |             t9 = t8;
    0x00407cfc jalr t9                   |             t9 ();
    0x00407d00 nop                       |             
    0x00407d04 lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x00407d08 move t8, v0               |             t8 = v0;
    0x00407d0c lw v0, -0x7fd8(gp)        |             v0 = *((gp - 8182));
                                         |             /* str.tcp_connect */
    0x00407d10 addiu v0, v0, 0x190       |             v0 += 0x190;
    0x00407d14 sw v0, 0x10(sp)           |             *(var_10h) = v0;
    0x00407d18 addiu v0, zero, 0x36      |             v0 = 0x36;
    0x00407d1c sw v0, 0x14(sp)           |             *(var_14h) = v0;
    0x00407d20 move a0, s0               |             a0 = s0;
    0x00407d24 lw v0, -0x7fd8(gp)        |             v0 = *((gp - 8182));
                                         |             /* str._s____18s____24s__5d_socket___fail__n */
    0x00407d28 addiu a1, v0, -0x50       |             a1 = v0 + -0x50;
    0x00407d2c move a2, t8               |             a2 = t8;
    0x00407d30 lw t8, -0x7fd8(gp)        |             t8 = *((gp - 8182));
    0x00407d34 addiu a3, t8, -0xd0       |             a3 = t8 + -0xd0;
    0x00407d38 lw t8, -0x7ee0(gp)        |             t8 = sym.imp.fprintf
    0x00407d3c move t9, t8               |             t9 = t8;
    0x00407d40 jalr t9                   |             t9 ();
    0x00407d44 nop                       |             
    0x00407d48 lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x00407d4c addiu t8, zero, -1        |             t8 = -1;
    0x00407d50 sw t8, 0x40(fp)           |             *(arg_40h) = t8;
    0x00407d54 b 0x407fa0                |             goto label_4;
    0x00407d58 nop                       |             
                                         |         }
    0x00407d5c lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00407d60 lw v0, 0x14(t8)           |         v0 = *((t8 + 5));
    0x00407d64 lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00407d68 lw t8, 0x10(t8)           |         t8 = *((t8 + 4));
    0x00407d6c lw a0, 0x44(fp)           |         a0 = *(arg_44h);
    0x00407d70 move a1, v0               |         a1 = v0;
    0x00407d74 move a2, t8               |         a2 = t8;
    0x00407d78 lw t8, -0x7e34(gp)        |         t8 = sym.imp.connect;
    0x00407d7c move t9, t8               |         t9 = t8;
    0x00407d80 jalr t9                   |         t9 ();
    0x00407d84 nop                       |         
    0x00407d88 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00407d8c move t8, v0               |         t8 = v0;
    0x00407d90 sltu t8, zero, t8         |         t8 = (0 < t8) ? 1 : 0;
    0x00407d94 andi t8, t8, 0xff         |         t8 &= 0xff;
                                         |         if (t8 != 0) {
    0x00407d98 beqz t8, 0x407e30         |             
    0x00407d9c nop                       |             
    0x00407da0 lw t8, -0x7fd8(gp)        |             t8 = *((gp - 8182));
                                         |             /* str.connect */
    0x00407da4 addiu a0, t8, -0x24       |             a0 = t8 + -0x24;
    0x00407da8 lw t8, -0x7ed4(gp)        |             t8 = sym.imp.perror;
    0x00407dac move t9, t8               |             t9 = t8;
    0x00407db0 jalr t9                   |             t9 ();
    0x00407db4 nop                       |             
    0x00407db8 lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x00407dbc lw t8, -0x7e90(gp)        |             t8 = *((gp - 8100));
    0x00407dc0 lw s0, (t8)               |             s0 = *(t8);
    0x00407dc4 lw t8, -0x7fd0(gp)        |             t8 = *(gp);
                                         |             /* aav.0x00407870 */
    0x00407dc8 addiu t8, t8, 0x7870      |             t8 += 0x7870;
    0x00407dcc move t9, t8               |             t9 = t8;
    0x00407dd0 jalr t9                   |             t9 ();
    0x00407dd4 nop                       |             
    0x00407dd8 lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x00407ddc move t8, v0               |             t8 = v0;
    0x00407de0 lw v0, -0x7fd8(gp)        |             v0 = *((gp - 8182));
                                         |             /* str.tcp_connect */
    0x00407de4 addiu v0, v0, 0x190       |             v0 += 0x190;
    0x00407de8 sw v0, 0x10(sp)           |             *(var_10h) = v0;
    0x00407dec addiu v0, zero, 0x3b      |             v0 = 0x3b;
    0x00407df0 sw v0, 0x14(sp)           |             *(var_14h) = v0;
    0x00407df4 move a0, s0               |             a0 = s0;
    0x00407df8 lw v0, -0x7fd8(gp)        |             v0 = *((gp - 8182));
                                         |             /* str._s____18s____24s__5d_connect___fail__n */
    0x00407dfc addiu a1, v0, -0x1c       |             a1 = v0 + -0x1c;
    0x00407e00 move a2, t8               |             a2 = t8;
    0x00407e04 lw t8, -0x7fd8(gp)        |             t8 = *((gp - 8182));
    0x00407e08 addiu a3, t8, -0xd0       |             a3 = t8 + -0xd0;
    0x00407e0c lw t8, -0x7ee0(gp)        |             t8 = sym.imp.fprintf
    0x00407e10 move t9, t8               |             t9 = t8;
    0x00407e14 jalr t9                   |             t9 ();
    0x00407e18 nop                       |             
    0x00407e1c lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x00407e20 addiu t8, zero, -1        |             t8 = -1;
    0x00407e24 sw t8, 0x40(fp)           |             *(arg_40h) = t8;
    0x00407e28 b 0x407fa0                |             goto label_4;
    0x00407e2c nop                       |             
                                         |         }
    0x00407e30 sw zero, 0x6c(fp)         |         *(arg_6ch) = 0;
    0x00407e34 sw zero, 0x70(fp)         |         *(arg_70h) = 0;
    0x00407e38 sw zero, 0x74(fp)         |         *(arg_74h) = 0;
    0x00407e3c sw zero, 0x78(fp)         |         *(arg_78h) = 0;
    0x00407e40 sw zero, 0x7c(fp)         |         *(arg_7ch) = 0;
    0x00407e44 sw zero, 0x80(fp)         |         *(arg_80h) = 0;
    0x00407e48 sw zero, 0x84(fp)         |         *(arg_84h) = 0;
    0x00407e4c sw zero, 0x88(fp)         |         *(arg_88h) = 0;
    0x00407e50 sw zero, 0x8c(fp)         |         *(arg_8ch) = 0;
    0x00407e54 sw zero, 0x90(fp)         |         *(arg_90h) = 0;
    0x00407e58 sw zero, 0x94(fp)         |         *(arg_94h) = 0;
    0x00407e5c sh zero, 0x98(fp)         |         *(arg_98h) = 0;
    0x00407e60 lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00407e64 lw t8, 4(t8)              |         t8 = *((t8 + 1));
    0x00407e68 addiu v0, zero, 2         |         v0 = 2;
                                         |         if (t8 != v0) {
    0x00407e6c beq t8, v0, 0x407e88      |             
    0x00407e70 nop                       |             
    0x00407e74 addiu v0, zero, 0xa       |             v0 = 0xa;
                                         |             if (t8 == v0) {
    0x00407e78 beq t8, v0, 0x407ec4      |                 goto label_5;
                                         |             }
    0x00407e7c nop                       |             
    0x00407e80 b 0x407efc                |             goto label_6;
    0x00407e84 nop                       |             
                                         |         }
    0x00407e88 lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00407e8c lw t8, 0x14(t8)           |         t8 = *((t8 + 5));
    0x00407e90 addiu v0, t8, 4           |         v0 = t8 + 4;
    0x00407e94 addiu t8, fp, 0x6c        |         t8 = fp + 0x6c;
    0x00407e98 addiu a0, zero, 2         |         a0 = 2;
    0x00407e9c move a1, v0               |         a1 = v0;
    0x00407ea0 move a2, t8               |         a2 = t8;
    0x00407ea4 addiu a3, zero, 0x2e      |         a3 = 0x2e;
    0x00407ea8 lw t8, -0x7f2c(gp)        |         t8 = sym.imp.inet_ntop;
    0x00407eac move t9, t8               |         t9 = t8;
    0x00407eb0 jalr t9                   |         t9 ();
    0x00407eb4 nop                       |         
    0x00407eb8 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00407ebc b 0x407efc                |         goto label_6;
    0x00407ec0 nop                       |         
                                         | label_5:
    0x00407ec4 lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00407ec8 lw t8, 0x14(t8)           |         t8 = *((t8 + 5));
    0x00407ecc addiu v0, t8, 8           |         v0 = t8 + 8;
    0x00407ed0 addiu t8, fp, 0x6c        |         t8 = fp + 0x6c;
    0x00407ed4 addiu a0, zero, 0xa       |         a0 = 0xa;
    0x00407ed8 move a1, v0               |         a1 = v0;
    0x00407edc move a2, t8               |         a2 = t8;
    0x00407ee0 addiu a3, zero, 0x2e      |         a3 = 0x2e;
    0x00407ee4 lw t8, -0x7f2c(gp)        |         t8 = sym.imp.inet_ntop;
    0x00407ee8 move t9, t8               |         t9 = t8;
    0x00407eec jalr t9                   |         t9 ();
    0x00407ef0 nop                       |         
    0x00407ef4 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00407ef8 nop                       |         
                                         | label_6:
    0x00407efc lw t8, -0x7e90(gp)        |         t8 = *((gp - 8100));
    0x00407f00 lw s1, (t8)               |         s1 = *(t8);
    0x00407f04 lw t8, -0x7fd0(gp)        |         t8 = *(gp);
                                         |         /* aav.0x00407870 */
    0x00407f08 addiu t8, t8, 0x7870      |         t8 += 0x7870;
    0x00407f0c move t9, t8               |         t9 = t8;
    0x00407f10 jalr t9                   |         t9 ();
    0x00407f14 nop                       |         
    0x00407f18 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00407f1c move s0, v0               |         s0 = v0;
    0x00407f20 lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00407f24 lw t8, 0x14(t8)           |         t8 = *((t8 + 5));
    0x00407f28 lhu t8, 2(t8)             |         t8 = *((t8 + 1));
    0x00407f2c move a0, t8               |         a0 = t8;
    0x00407f30 lw t8, -0x7ee4(gp)        |         t8 = sym.imp.ntohs;
    0x00407f34 move t9, t8               |         t9 = t8;
    0x00407f38 jalr t9                   |         t9 ();
    0x00407f3c nop                       |         
    0x00407f40 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00407f44 move t8, v0               |         t8 = v0;
    0x00407f48 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* str.tcp_connect */
    0x00407f4c addiu v0, v0, 0x190       |         v0 += 0x190;
    0x00407f50 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00407f54 addiu v0, zero, 0x44      |         v0 = 0x44;
    0x00407f58 sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x00407f5c addiu v0, fp, 0x6c        |         v0 = fp + 0x6c;
    0x00407f60 sw v0, 0x18(sp)           |         *(var_18h) = v0;
    0x00407f64 sw t8, 0x1c(sp)           |         *(var_1ch) = t8;
    0x00407f68 move a0, s1               |         a0 = s1;
    0x00407f6c lw t8, -0x7fd8(gp)        |         t8 = *((gp - 8182));
                                         |         /* str._s____18s____24s__5d_connect__s:_d_n */
    0x00407f70 addiu a1, t8, 0x10        |         a1 = t8 + 0x10;
    0x00407f74 move a2, s0               |         a2 = s0;
    0x00407f78 lw t8, -0x7fd8(gp)        |         t8 = *((gp - 8182));
    0x00407f7c addiu a3, t8, 0x38        |         a3 = t8 + 0x38;
    0x00407f80 lw t8, -0x7ee0(gp)        |         t8 = sym.imp.fprintf
    0x00407f84 move t9, t8               |         t9 = t8;
    0x00407f88 jalr t9                   |         t9 ();
    0x00407f8c nop                       |         
    0x00407f90 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00407f94 nop                       |         
    0x00407f98 b 0x407fdc                |         goto label_7;
    0x00407f9c nop                       |         
                                         | label_4:
    0x00407fa0 lw t8, 0x40(fp)           |         t8 = *(arg_40h);
                                         |         if (t8 != 0) {
    0x00407fa4 beqz t8, 0x407fc4         |             
    0x00407fa8 nop                       |             
    0x00407fac lw a0, 0x44(fp)           |             a0 = *(arg_44h);
    0x00407fb0 lw t8, -0x7ea4(gp)        |             t8 = sym.imp.close;
    0x00407fb4 move t9, t8               |             t9 = t8;
    0x00407fb8 jalr t9                   |             t9 ();
    0x00407fbc nop                       |             
    0x00407fc0 lw gp, 0x20(fp)           |             gp = *(arg_20h);
                                         |         }
    0x00407fc4 lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00407fc8 lw t8, 0x1c(t8)           |         t8 = *((t8 + 7));
    0x00407fcc sw t8, 0x48(fp)           |         *(arg_48h) = t8;
                                         | label_3:
    0x00407fd0 lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00407fd4 bnez t8, 0x407c7c         |         
                                         |     } while (t8 != 0);
    0x00407fd8 nop                       |     
                                         | label_7:
    0x00407fdc lw t8, 0x3c(fp)           |     t8 = *(arg_3ch);
    0x00407fe0 move a0, t8               |     a0 = t8;
    0x00407fe4 lw t8, -0x7e3c(gp)        |     t8 = sym.imp.freeaddrinfo;
    0x00407fe8 move t9, t8               |     t9 = t8;
    0x00407fec jalr t9                   |     t9 ();
    0x00407ff0 nop                       |     
    0x00407ff4 lw gp, 0x20(fp)           |     gp = *(arg_20h);
    0x00407ff8 lw t8, 0x48(fp)           |     t8 = *(arg_48h);
                                         |     if (t8 == 0) {
    0x00407ffc bnez t8, 0x408074         |         
    0x00408000 nop                       |         
    0x00408004 lw t8, -0x7e90(gp)        |         t8 = *((gp - 8100));
    0x00408008 lw s0, (t8)               |         s0 = *(t8);
    0x0040800c lw t8, -0x7fd0(gp)        |         t8 = *(gp);
                                         |         /* aav.0x00407870 */
    0x00408010 addiu t8, t8, 0x7870      |         t8 += 0x7870;
    0x00408014 move t9, t8               |         t9 = t8;
    0x00408018 jalr t9                   |         t9 ();
    0x0040801c nop                       |         
    0x00408020 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00408024 move t8, v0               |         t8 = v0;
    0x00408028 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* str.tcp_connect */
    0x0040802c addiu v0, v0, 0x190       |         v0 += 0x190;
    0x00408030 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00408034 addiu v0, zero, 0x4e      |         v0 = 0x4e;
    0x00408038 sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x0040803c move a0, s0               |         a0 = s0;
    0x00408040 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* str._s____18s____24s__5d_No_address_succeeded_n */
    0x00408044 addiu a1, v0, 0x48        |         a1 = v0 + 0x48;
    0x00408048 move a2, t8               |         a2 = t8;
    0x0040804c lw t8, -0x7fd8(gp)        |         t8 = *((gp - 8182));
    0x00408050 addiu a3, t8, -0xd0       |         a3 = t8 + -0xd0;
    0x00408054 lw t8, -0x7ee0(gp)        |         t8 = sym.imp.fprintf
    0x00408058 move t9, t8               |         t9 = t8;
    0x0040805c jalr t9                   |         t9 ();
    0x00408060 nop                       |         
    0x00408064 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00408068 addiu t8, zero, 0x7e      |         t8 = 0x7e;
    0x0040806c b 0x40809c                |         goto label_2;
    0x00408070 nop                       |         
                                         |     }
    0x00408074 lw t8, 0x40(fp)           |     t8 = *(arg_40h);
                                         |     if (t8 == 0) {
    0x00408078 bnez t8, 0x408098         |         
    0x0040807c nop                       |         
    0x00408080 lw t8, 0x34(fp)           |         t8 = *(arg_34h);
    0x00408084 lw v0, 0x44(fp)           |         v0 = *(arg_44h);
    0x00408088 sw v0, (t8)               |         *(t8) = v0;
    0x0040808c lw t8, 0x34(fp)           |         t8 = *(arg_34h);
    0x00408090 addiu v0, zero, 1         |         v0 = 1;
    0x00408094 sw v0, 0x24(t8)           |         *((t8 + 36)) = v0;
                                         |     }
    0x00408098 lw t8, 0x40(fp)           |     t8 = *(arg_40h);
                                         | label_2:
    0x0040809c move v0, t8               |     v0 = t8;
    0x004080a0 lw t8, -0x7e24(gp)        |     t8 = *((gp - 8073));
    0x004080a4 lw v1, 0x9c(fp)           |     v1 = *(arg_9ch);
    0x004080a8 lw t8, (t8)               |     t8 = *(t8);
                                         |     if (v1 != t8) {
    0x004080ac beq v1, t8, 0x4080c4      |         
    0x004080b0 nop                       |         
    0x004080b4 lw t8, -0x7e84(gp)        |         t8 = sym.imp.__stack_chk_fail;
    0x004080b8 move t9, t8               |         t9 = t8;
    0x004080bc jalr t9                   |         t9 ();
    0x004080c0 nop                       |         
                                         |     }
    0x004080c4 move sp, fp               |     
    0x004080c8 lw ra, 0xac(sp)           |     ra = *(var_ach);
    0x004080cc lw fp, 0xa8(sp)           |     fp = *(var_a8h);
    0x004080d0 lw s1, 0xa4(sp)           |     s1 = *(var_a4h);
    0x004080d4 lw s0, 0xa0(sp)           |     s0 = *(var_a0h);
    0x004080d8 addiu sp, sp, 0xb0        |     
    0x004080dc jr ra                     |     return v1;
    0x004080e0 nop                       |     
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40794c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.tcp_create ()            | void tcp_create () {
    0x0040794c lui gp, 2                 |     
    0x00407950 addiu gp, gp, 0x36d4      |     
    0x00407954 addu gp, gp, t9           |     gp += t9;
    0x00407958 addiu sp, sp, -0x48       |     
    0x0040795c sw ra, 0x44(sp)           |     *(var_44h) = ra;
    0x00407960 sw fp, 0x40(sp)           |     *(var_40h) = fp;
    0x00407964 sw s0, 0x3c(sp)           |     *(var_3ch) = s0;
    0x00407968 move fp, sp               |     fp = sp;
    0x0040796c sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00407970 sw a0, 0x24(fp)           |     *(arg_24h) = a0;
    0x00407974 lw t8, -0x7e24(gp)        |     t8 = *((gp - 8073));
    0x00407978 lw t8, (t8)               |     t8 = *(t8);
    0x0040797c sw t8, 0x34(fp)           |     *(arg_34h) = t8;
    0x00407980 sw zero, 0x2c(fp)         |     *(arg_2ch) = 0;
    0x00407984 addiu a0, zero, 1         |     a0 = 1;
    0x00407988 addiu a1, zero, 0x30      |     a1 = 0x30;
    0x0040798c lw t8, -0x7e1c(gp)        |     t8 = sym.imp.calloc;
    0x00407990 move t9, t8               |     t9 = t8;
    0x00407994 jalr t9                   |     t9 ();
    0x00407998 nop                       |     
    0x0040799c lw gp, 0x18(fp)           |     gp = *(arg_18h);
    0x004079a0 move t8, v0               |     t8 = v0;
    0x004079a4 sw t8, 0x30(fp)           |     *(arg_30h) = t8;
    0x004079a8 lw t8, 0x30(fp)           |     t8 = *(arg_30h);
                                         |     if (t8 == 0) {
    0x004079ac bnez t8, 0x407a24         |         
    0x004079b0 nop                       |         
    0x004079b4 lw t8, -0x7e90(gp)        |         t8 = *((gp - 8100));
    0x004079b8 lw s0, (t8)               |         s0 = *(t8);
    0x004079bc lw t8, -0x7fd0(gp)        |         t8 = *(gp);
                                         |         /* aav.0x00407870 */
    0x004079c0 addiu t8, t8, 0x7870      |         t8 += 0x7870;
    0x004079c4 move t9, t8               |         t9 = t8;
    0x004079c8 jalr t9                   |         t9 ();
    0x004079cc nop                       |         
    0x004079d0 lw gp, 0x18(fp)           |         gp = *(arg_18h);
    0x004079d4 move t8, v0               |         t8 = v0;
    0x004079d8 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* str.tcp_create */
    0x004079dc addiu v0, v0, 0x184       |         v0 += 0x184;
    0x004079e0 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x004079e4 addiu v0, zero, 0x14      |         v0 = 0x14;
    0x004079e8 sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x004079ec move a0, s0               |         a0 = s0;
    0x004079f0 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* esilref: '&s | &-18s | &-24s |&5d| calloc() fail!
' */
    0x004079f4 addiu a1, v0, -0xfc       |         a1 = v0 + -0xfc;
    0x004079f8 move a2, t8               |         a2 = t8;
    0x004079fc lw t8, -0x7fd8(gp)        |         t8 = *((gp - 8182));
    0x00407a00 addiu a3, t8, -0xd0       |         a3 = t8 + -0xd0;
    0x00407a04 lw t8, -0x7ee0(gp)        |         t8 = sym.imp.fprintf
    0x00407a08 move t9, t8               |         t9 = t8;
    0x00407a0c jalr t9                   |         t9 ();
    0x00407a10 nop                       |         
    0x00407a14 lw gp, 0x18(fp)           |         gp = *(arg_18h);
    0x00407a18 addiu t8, zero, -1        |         t8 = -1;
    0x00407a1c b 0x407a34                |         goto label_0;
    0x00407a20 nop                       |         
                                         |     }
    0x00407a24 lw t8, 0x24(fp)           |     t8 = *(arg_24h);
    0x00407a28 lw v0, 0x30(fp)           |     v0 = *(arg_30h);
    0x00407a2c sw v0, (t8)               |     *(t8) = v0;
    0x00407a30 lw t8, 0x2c(fp)           |     t8 = *(arg_2ch);
                                         | label_0:
    0x00407a34 move v0, t8               |     v0 = t8;
    0x00407a38 lw t8, -0x7e24(gp)        |     t8 = *((gp - 8073));
    0x00407a3c lw v1, 0x34(fp)           |     v1 = *(arg_34h);
    0x00407a40 lw t8, (t8)               |     t8 = *(t8);
                                         |     if (v1 != t8) {
    0x00407a44 beq v1, t8, 0x407a5c      |         
    0x00407a48 nop                       |         
    0x00407a4c lw t8, -0x7e84(gp)        |         t8 = sym.imp.__stack_chk_fail;
    0x00407a50 move t9, t8               |         t9 = t8;
    0x00407a54 jalr t9                   |         t9 ();
    0x00407a58 nop                       |         
                                         |     }
    0x00407a5c move sp, fp               |     
    0x00407a60 lw ra, 0x44(sp)           |     ra = *(var_44h);
    0x00407a64 lw fp, 0x40(sp)           |     fp = *(var_40h);
    0x00407a68 lw s0, 0x3c(sp)           |     s0 = *(var_3ch);
    0x00407a6c addiu sp, sp, 0x48        |     
    0x00407a70 jr ra                     |     return v1;
    0x00407a74 nop                       |     
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x408214 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.tcp_destroy ()           | void tcp_destroy () {
    0x00408214 lui gp, 2                 |     
    0x00408218 addiu gp, gp, 0x2e0c      |     
    0x0040821c addu gp, gp, t9           |     gp += t9;
    0x00408220 addiu sp, sp, -0x40       |     
    0x00408224 sw ra, 0x3c(sp)           |     *(var_3ch) = ra;
    0x00408228 sw fp, 0x38(sp)           |     *(var_38h) = fp;
    0x0040822c sw s0, 0x34(sp)           |     *(var_34h) = s0;
    0x00408230 move fp, sp               |     fp = sp;
    0x00408234 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00408238 sw a0, 0x24(fp)           |     *(arg_24h) = a0;
    0x0040823c lw t8, -0x7e24(gp)        |     t8 = *((gp - 8073));
    0x00408240 lw t8, (t8)               |     t8 = *(t8);
    0x00408244 sw t8, 0x2c(fp)           |     *(arg_2ch) = t8;
    0x00408248 lw t8, 0x24(fp)           |     t8 = *(arg_24h);
                                         |     if (t8 == 0) {
    0x0040824c bnez t8, 0x4082c4         |         
    0x00408250 nop                       |         
    0x00408254 lw t8, -0x7e90(gp)        |         t8 = *((gp - 8100));
    0x00408258 lw s0, (t8)               |         s0 = *(t8);
    0x0040825c lw t8, -0x7fd0(gp)        |         t8 = *(gp);
                                         |         /* aav.0x00407870 */
    0x00408260 addiu t8, t8, 0x7870      |         t8 += 0x7870;
    0x00408264 move t9, t8               |         t9 = t8;
    0x00408268 jalr t9                   |         t9 ();
    0x0040826c nop                       |         
    0x00408270 lw gp, 0x18(fp)           |         gp = *(arg_18h);
    0x00408274 move t8, v0               |         t8 = v0;
    0x00408278 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* str.tcp_destroy */
    0x0040827c addiu v0, v0, 0x1ac       |         v0 += 0x1ac;
    0x00408280 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00408284 addiu v0, zero, 0x66      |         v0 = 0x66;
    0x00408288 sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x0040828c move a0, s0               |         a0 = s0;
    0x00408290 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x00408294 addiu a1, v0, -0xbc       |         a1 = v0 + -0xbc;
    0x00408298 move a2, t8               |         a2 = t8;
    0x0040829c lw t8, -0x7fd8(gp)        |         t8 = *((gp - 8182));
    0x004082a0 addiu a3, t8, -0xd0       |         a3 = t8 + -0xd0;
    0x004082a4 lw t8, -0x7ee0(gp)        |         t8 = sym.imp.fprintf
    0x004082a8 move t9, t8               |         t9 = t8;
    0x004082ac jalr t9                   |         t9 ();
    0x004082b0 nop                       |         
    0x004082b4 lw gp, 0x18(fp)           |         gp = *(arg_18h);
    0x004082b8 addiu t8, zero, -1        |         t8 = -1;
    0x004082bc b 0x408310                |         goto label_0;
    0x004082c0 nop                       |         
                                         |     }
    0x004082c4 lw t8, 0x24(fp)           |     t8 = *(arg_24h);
    0x004082c8 lw t8, 0x2c(t8)           |     t8 = *((t8 + 11));
                                         |     if (t8 != 0) {
    0x004082cc beqz t8, 0x4082f4         |         
    0x004082d0 nop                       |         
    0x004082d4 lw t8, 0x24(fp)           |         t8 = *(arg_24h);
    0x004082d8 lw t8, 0x2c(t8)           |         t8 = *((t8 + 11));
    0x004082dc move a0, t8               |         a0 = t8;
    0x004082e0 lw t8, -0x7f0c(gp)        |         t8 = sym.imp.free;
    0x004082e4 move t9, t8               |         t9 = t8;
    0x004082e8 jalr t9                   |         t9 ();
    0x004082ec nop                       |         
    0x004082f0 lw gp, 0x18(fp)           |         gp = *(arg_18h);
                                         |     }
    0x004082f4 lw a0, 0x24(fp)           |     a0 = *(arg_24h);
    0x004082f8 lw t8, -0x7f0c(gp)        |     t8 = sym.imp.free;
    0x004082fc move t9, t8               |     t9 = t8;
    0x00408300 jalr t9                   |     t9 ();
    0x00408304 nop                       |     
    0x00408308 lw gp, 0x18(fp)           |     gp = *(arg_18h);
    0x0040830c move t8, zero             |     t8 = 0;
                                         | label_0:
    0x00408310 move v0, t8               |     v0 = t8;
    0x00408314 lw t8, -0x7e24(gp)        |     t8 = *((gp - 8073));
    0x00408318 lw v1, 0x2c(fp)           |     v1 = *(arg_2ch);
    0x0040831c lw t8, (t8)               |     t8 = *(t8);
                                         |     if (v1 != t8) {
    0x00408320 beq v1, t8, 0x408338      |         
    0x00408324 nop                       |         
    0x00408328 lw t8, -0x7e84(gp)        |         t8 = sym.imp.__stack_chk_fail;
    0x0040832c move t9, t8               |         t9 = t8;
    0x00408330 jalr t9                   |         t9 ();
    0x00408334 nop                       |         
                                         |     }
    0x00408338 move sp, fp               |     
    0x0040833c lw ra, 0x3c(sp)           |     ra = *(var_3ch);
    0x00408340 lw fp, 0x38(sp)           |     fp = *(var_38h);
    0x00408344 lw s0, 0x34(sp)           |     s0 = *(var_34h);
    0x00408348 addiu sp, sp, 0x40        |     
    0x0040834c jr ra                     |     return v1;
    0x00408350 nop                       |     
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x4080e4 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.tcp_disconnect ()        | void tcp_disconnect () {
    0x004080e4 lui gp, 2                 |     
    0x004080e8 addiu gp, gp, 0x2f3c      |     
    0x004080ec addu gp, gp, t9           |     gp += t9;
    0x004080f0 addiu sp, sp, -0x40       |     
    0x004080f4 sw ra, 0x3c(sp)           |     *(var_3ch) = ra;
    0x004080f8 sw fp, 0x38(sp)           |     *(var_38h) = fp;
    0x004080fc sw s0, 0x34(sp)           |     *(var_34h) = s0;
    0x00408100 move fp, sp               |     fp = sp;
    0x00408104 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00408108 sw a0, 0x24(fp)           |     *(arg_24h) = a0;
    0x0040810c lw t8, -0x7e24(gp)        |     t8 = *((gp - 8073));
    0x00408110 lw t8, (t8)               |     t8 = *(t8);
    0x00408114 sw t8, 0x2c(fp)           |     *(arg_2ch) = t8;
    0x00408118 lw t8, 0x24(fp)           |     t8 = *(arg_24h);
                                         |     if (t8 == 0) {
    0x0040811c bnez t8, 0x408194         |         
    0x00408120 nop                       |         
    0x00408124 lw t8, -0x7e90(gp)        |         t8 = *((gp - 8100));
    0x00408128 lw s0, (t8)               |         s0 = *(t8);
    0x0040812c lw t8, -0x7fd0(gp)        |         t8 = *(gp);
                                         |         /* aav.0x00407870 */
    0x00408130 addiu t8, t8, 0x7870      |         t8 += 0x7870;
    0x00408134 move t9, t8               |         t9 = t8;
    0x00408138 jalr t9                   |         t9 ();
    0x0040813c nop                       |         
    0x00408140 lw gp, 0x18(fp)           |         gp = *(arg_18h);
    0x00408144 move t8, v0               |         t8 = v0;
    0x00408148 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* str.tcp_disconnect */
    0x0040814c addiu v0, v0, 0x19c       |         v0 += 0x19c;
    0x00408150 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00408154 addiu v0, zero, 0x5a      |         v0 = 0x5a;
    0x00408158 sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x0040815c move a0, s0               |         a0 = s0;
    0x00408160 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x00408164 addiu a1, v0, -0xbc       |         a1 = v0 + -0xbc;
    0x00408168 move a2, t8               |         a2 = t8;
    0x0040816c lw t8, -0x7fd8(gp)        |         t8 = *((gp - 8182));
    0x00408170 addiu a3, t8, -0xd0       |         a3 = t8 + -0xd0;
    0x00408174 lw t8, -0x7ee0(gp)        |         t8 = sym.imp.fprintf
    0x00408178 move t9, t8               |         t9 = t8;
    0x0040817c jalr t9                   |         t9 ();
    0x00408180 nop                       |         
    0x00408184 lw gp, 0x18(fp)           |         gp = *(arg_18h);
    0x00408188 addiu t8, zero, -1        |         t8 = -1;
    0x0040818c b 0x4081d0                |         goto label_0;
    0x00408190 nop                       |         
                                         |     }
    0x00408194 lw t8, 0x24(fp)           |     t8 = *(arg_24h);
    0x00408198 lw t8, 0x24(t8)           |     t8 = *((t8 + 9));
                                         |     if (t8 != 0) {
    0x0040819c beqz t8, 0x4081cc         |         
    0x004081a0 nop                       |         
    0x004081a4 lw t8, 0x24(fp)           |         t8 = *(arg_24h);
    0x004081a8 sw zero, 0x24(t8)         |         *((t8 + 36)) = 0;
    0x004081ac lw t8, 0x24(fp)           |         t8 = *(arg_24h);
    0x004081b0 lw t8, (t8)               |         t8 = *(t8);
    0x004081b4 move a0, t8               |         a0 = t8;
    0x004081b8 lw t8, -0x7ea4(gp)        |         t8 = sym.imp.close;
    0x004081bc move t9, t8               |         t9 = t8;
    0x004081c0 jalr t9                   |         t9 ();
    0x004081c4 nop                       |         
    0x004081c8 lw gp, 0x18(fp)           |         gp = *(arg_18h);
                                         |     }
    0x004081cc move t8, zero             |     t8 = 0;
                                         | label_0:
    0x004081d0 move v0, t8               |     v0 = t8;
    0x004081d4 lw t8, -0x7e24(gp)        |     t8 = *((gp - 8073));
    0x004081d8 lw v1, 0x2c(fp)           |     v1 = *(arg_2ch);
    0x004081dc lw t8, (t8)               |     t8 = *(t8);
                                         |     if (v1 != t8) {
    0x004081e0 beq v1, t8, 0x4081f8      |         
    0x004081e4 nop                       |         
    0x004081e8 lw t8, -0x7e84(gp)        |         t8 = sym.imp.__stack_chk_fail;
    0x004081ec move t9, t8               |         t9 = t8;
    0x004081f0 jalr t9                   |         t9 ();
    0x004081f4 nop                       |         
                                         |     }
    0x004081f8 move sp, fp               |     
    0x004081fc lw ra, 0x3c(sp)           |     ra = *(var_3ch);
    0x00408200 lw fp, 0x38(sp)           |     fp = *(var_38h);
    0x00408204 lw s0, 0x34(sp)           |     s0 = *(var_34h);
    0x00408208 addiu sp, sp, 0x40        |     
    0x0040820c jr ra                     |     return v1;
    0x00408210 nop                       |     
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x4085c4 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.tcp_listen ()            | void tcp_listen () {
    0x004085c4 lui gp, 2                 |     
    0x004085c8 addiu gp, gp, 0x2a5c      |     
    0x004085cc addu gp, gp, t9           |     gp += t9;
    0x004085d0 addiu sp, sp, -0xb0       |     
    0x004085d4 sw ra, 0xac(sp)           |     *(var_ach) = ra;
    0x004085d8 sw fp, 0xa8(sp)           |     *(var_a8h) = fp;
    0x004085dc sw s1, 0xa4(sp)           |     *(var_a4h) = s1;
    0x004085e0 sw s0, 0xa0(sp)           |     *(var_a0h) = s0;
    0x004085e4 move fp, sp               |     fp = sp;
    0x004085e8 sw gp, 0x20(sp)           |     *(var_20h) = gp;
    0x004085ec sw a0, 0x34(fp)           |     *(arg_34h) = a0;
    0x004085f0 sw a1, 0x30(fp)           |     *(arg_30h) = a1;
    0x004085f4 sw a2, 0x2c(fp)           |     *(arg_2ch) = a2;
    0x004085f8 lw t8, -0x7e24(gp)        |     t8 = *((gp - 8073));
    0x004085fc lw t8, (t8)               |     t8 = *(t8);
    0x00408600 sw t8, 0x9c(fp)           |     *(arg_9ch) = t8;
    0x00408604 lw t8, 0x34(fp)           |     t8 = *(arg_34h);
                                         |     if (t8 != 0) {
    0x00408608 beqz t8, 0x408628         |         
    0x0040860c nop                       |         
    0x00408610 lw t8, 0x30(fp)           |         t8 = *(arg_30h);
                                         |         if (t8 == 0) {
    0x00408614 beqz t8, 0x408628         |             goto label_0;
                                         |         }
    0x00408618 nop                       |         
    0x0040861c lw t8, 0x2c(fp)           |         t8 = *(arg_2ch);
                                         |         if (t8 != 0) {
    0x00408620 bnez t8, 0x408698         |             goto label_1;
                                         |         }
    0x00408624 nop                       |         
                                         |     }
                                         | label_0:
    0x00408628 lw t8, -0x7e90(gp)        |     t8 = *((gp - 8100));
    0x0040862c lw s0, (t8)               |     s0 = *(t8);
    0x00408630 lw t8, -0x7fd0(gp)        |     t8 = *(gp);
                                         |     /* aav.0x00407870 */
    0x00408634 addiu t8, t8, 0x7870      |     t8 += 0x7870;
    0x00408638 move t9, t8               |     t9 = t8;
    0x0040863c jalr t9                   |     t9 ();
    0x00408640 nop                       |     
    0x00408644 lw gp, 0x20(fp)           |     gp = *(arg_20h);
    0x00408648 move t8, v0               |     t8 = v0;
    0x0040864c lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
                                         |     /* str.tcp_listen */
    0x00408650 addiu v0, v0, 0x1d0       |     v0 += 0x1d0;
    0x00408654 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00408658 addiu v0, zero, 0x7f      |     v0 = 0x7f;
    0x0040865c sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00408660 move a0, s0               |     a0 = s0;
    0x00408664 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
                                         |     /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x00408668 addiu a1, v0, -0xbc       |     a1 = v0 + -0xbc;
    0x0040866c move a2, t8               |     a2 = t8;
    0x00408670 lw t8, -0x7fd8(gp)        |     t8 = *((gp - 8182));
    0x00408674 addiu a3, t8, -0xd0       |     a3 = t8 + -0xd0;
    0x00408678 lw t8, -0x7ee0(gp)        |     t8 = sym.imp.fprintf
    0x0040867c move t9, t8               |     t9 = t8;
    0x00408680 jalr t9                   |     t9 ();
    0x00408684 nop                       |     
    0x00408688 lw gp, 0x20(fp)           |     gp = *(arg_20h);
    0x0040868c addiu t8, zero, -1        |     t8 = -1;
    0x00408690 b 0x408d84                |     goto label_2;
    0x00408694 nop                       |     
                                         | label_1:
    0x00408698 sw zero, 0x40(fp)         |     *(arg_40h) = 0;
    0x0040869c addiu t8, zero, -1        |     t8 = -1;
    0x004086a0 sw t8, 0x44(fp)           |     *(arg_44h) = t8;
    0x004086a4 sw zero, 0x38(fp)         |     *(arg_38h) = 0;
    0x004086a8 addiu t8, fp, 0x4c        |     t8 = fp + 0x4c;
    0x004086ac move a0, t8               |     a0 = t8;
    0x004086b0 move a1, zero             |     a1 = 0;
    0x004086b4 addiu a2, zero, 0x20      |     a2 = 0x20;
    0x004086b8 lw t8, -0x7ecc(gp)        |     t8 = sym.imp.memset;
    0x004086bc move t9, t8               |     t9 = t8;
    0x004086c0 jalr t9                   |     t9 ();
    0x004086c4 nop                       |     
    0x004086c8 lw gp, 0x20(fp)           |     gp = *(arg_20h);
    0x004086cc sw zero, 0x50(fp)         |     *(arg_50h) = 0;
    0x004086d0 addiu t8, zero, 1         |     t8 = 1;
    0x004086d4 sw t8, 0x4c(fp)           |     *(arg_4ch) = t8;
    0x004086d8 addiu t8, zero, 2         |     t8 = 2;
    0x004086dc sw t8, 0x54(fp)           |     *(arg_54h) = t8;
    0x004086e0 addiu t8, zero, 6         |     t8 = 6;
    0x004086e4 sw t8, 0x58(fp)           |     *(arg_58h) = t8;
    0x004086e8 addiu v0, fp, 0x4c        |     v0 = fp + 0x4c;
    0x004086ec addiu t8, fp, 0x38        |     t8 = fp + 0x38;
    0x004086f0 lw a0, 0x30(fp)           |     a0 = *(arg_30h);
    0x004086f4 lw a1, 0x2c(fp)           |     a1 = *(arg_2ch);
    0x004086f8 move a2, v0               |     a2 = v0;
    0x004086fc move a3, t8               |     a3 = t8;
    0x00408700 lw t8, -0x7f3c(gp)        |     t8 = sym.imp.getaddrinfo;
    0x00408704 move t9, t8               |     t9 = t8;
    0x00408708 jalr t9                   |     t9 ();
    0x0040870c nop                       |     
    0x00408710 lw gp, 0x20(fp)           |     gp = *(arg_20h);
    0x00408714 move t8, v0               |     t8 = v0;
    0x00408718 sw t8, 0x40(fp)           |     *(arg_40h) = t8;
    0x0040871c lw t8, 0x40(fp)           |     t8 = *(arg_40h);
                                         |     if (t8 != 0) {
    0x00408720 beqz t8, 0x4087b8         |         
    0x00408724 nop                       |         
    0x00408728 lw t8, -0x7e90(gp)        |         t8 = *((gp - 8100));
    0x0040872c lw s1, (t8)               |         s1 = *(t8);
    0x00408730 lw t8, -0x7fd0(gp)        |         t8 = *(gp);
                                         |         /* aav.0x00407870 */
    0x00408734 addiu t8, t8, 0x7870      |         t8 += 0x7870;
    0x00408738 move t9, t8               |         t9 = t8;
    0x0040873c jalr t9                   |         t9 ();
    0x00408740 nop                       |         
    0x00408744 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00408748 move s0, v0               |         s0 = v0;
    0x0040874c lw a0, 0x40(fp)           |         a0 = *(arg_40h);
    0x00408750 lw t8, -0x7eac(gp)        |         t8 = sym.imp.gai_strerror;
    0x00408754 move t9, t8               |         t9 = t8;
    0x00408758 jalr t9                   |         t9 ();
    0x0040875c nop                       |         
    0x00408760 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00408764 move t8, v0               |         t8 = v0;
    0x00408768 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* str.tcp_listen */
    0x0040876c addiu v0, v0, 0x1d0       |         v0 += 0x1d0;
    0x00408770 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00408774 addiu v0, zero, 0x8d      |         v0 = 0x8d;
    0x00408778 sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x0040877c sw t8, 0x18(sp)           |         *(var_18h) = t8;
    0x00408780 move a0, s1               |         a0 = s1;
    0x00408784 lw t8, -0x7fd8(gp)        |         t8 = *((gp - 8182));
                                         |         /* str._s____18s____24s__5d_connect:_getaddrinfo__:___s__n */
    0x00408788 addiu a1, t8, -0x90       |         a1 = t8 + -0x90;
    0x0040878c move a2, s0               |         a2 = s0;
    0x00408790 lw t8, -0x7fd8(gp)        |         t8 = *((gp - 8182));
    0x00408794 addiu a3, t8, -0xd0       |         a3 = t8 + -0xd0;
    0x00408798 lw t8, -0x7ee0(gp)        |         t8 = sym.imp.fprintf
    0x0040879c move t9, t8               |         t9 = t8;
    0x004087a0 jalr t9                   |         t9 ();
    0x004087a4 nop                       |         
    0x004087a8 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x004087ac addiu t8, zero, 0x7e      |         t8 = 0x7e;
    0x004087b0 b 0x408d84                |         goto label_2;
    0x004087b4 nop                       |         
                                         |     }
    0x004087b8 lw t8, 0x38(fp)           |     t8 = *(arg_38h);
    0x004087bc sw t8, 0x48(fp)           |     *(arg_48h) = t8;
    0x004087c0 b 0x408cb8                |     goto label_3;
    0x004087c4 nop                       |     
                                         |     do {
    0x004087c8 addiu t8, zero, 1         |         t8 = 1;
    0x004087cc sw t8, 0x3c(fp)           |         *(arg_3ch) = t8;
    0x004087d0 sw zero, 0x40(fp)         |         *(arg_40h) = 0;
    0x004087d4 lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x004087d8 lw v1, 4(t8)              |         v1 = *((t8 + 1));
    0x004087dc lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x004087e0 lw v0, 8(t8)              |         v0 = *((t8 + 2));
    0x004087e4 lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x004087e8 lw t8, 0xc(t8)            |         t8 = *((t8 + 3));
    0x004087ec move a0, v1               |         a0 = v1;
    0x004087f0 move a1, v0               |         a1 = v0;
    0x004087f4 move a2, t8               |         a2 = t8;
    0x004087f8 lw t8, -0x7ef0(gp)        |         t8 = sym.imp.socket;
    0x004087fc move t9, t8               |         t9 = t8;
    0x00408800 jalr t9                   |         t9 ();
    0x00408804 nop                       |         
    0x00408808 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x0040880c sw v0, 0x44(fp)           |         *(arg_44h) = v0;
    0x00408810 lw v0, 0x44(fp)           |         v0 = *(arg_44h);
    0x00408814 addiu t8, zero, -1        |         t8 = -1;
                                         |         if (v0 == t8) {
    0x00408818 bne v0, t8, 0x4088b0      |             
    0x0040881c nop                       |             
    0x00408820 lw t8, -0x7fd8(gp)        |             t8 = *((gp - 8182));
                                         |             /* str.socket */
    0x00408824 addiu a0, t8, -0x58       |             a0 = t8 + -0x58;
    0x00408828 lw t8, -0x7ed4(gp)        |             t8 = sym.imp.perror;
    0x0040882c move t9, t8               |             t9 = t8;
    0x00408830 jalr t9                   |             t9 ();
    0x00408834 nop                       |             
    0x00408838 lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x0040883c lw t8, -0x7e90(gp)        |             t8 = *((gp - 8100));
    0x00408840 lw s0, (t8)               |             s0 = *(t8);
    0x00408844 lw t8, -0x7fd0(gp)        |             t8 = *(gp);
                                         |             /* aav.0x00407870 */
    0x00408848 addiu t8, t8, 0x7870      |             t8 += 0x7870;
    0x0040884c move t9, t8               |             t9 = t8;
    0x00408850 jalr t9                   |             t9 ();
    0x00408854 nop                       |             
    0x00408858 lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x0040885c move t8, v0               |             t8 = v0;
    0x00408860 lw v0, -0x7fd8(gp)        |             v0 = *((gp - 8182));
                                         |             /* str.tcp_listen */
    0x00408864 addiu v0, v0, 0x1d0       |             v0 += 0x1d0;
    0x00408868 sw v0, 0x10(sp)           |             *(var_10h) = v0;
    0x0040886c addiu v0, zero, 0x97      |             v0 = 0x97;
    0x00408870 sw v0, 0x14(sp)           |             *(var_14h) = v0;
    0x00408874 move a0, s0               |             a0 = s0;
    0x00408878 lw v0, -0x7fd8(gp)        |             v0 = *((gp - 8182));
                                         |             /* str._s____18s____24s__5d_socket___fail__n */
    0x0040887c addiu a1, v0, -0x50       |             a1 = v0 + -0x50;
    0x00408880 move a2, t8               |             a2 = t8;
    0x00408884 lw t8, -0x7fd8(gp)        |             t8 = *((gp - 8182));
    0x00408888 addiu a3, t8, -0xd0       |             a3 = t8 + -0xd0;
    0x0040888c lw t8, -0x7ee0(gp)        |             t8 = sym.imp.fprintf
    0x00408890 move t9, t8               |             t9 = t8;
    0x00408894 jalr t9                   |             t9 ();
    0x00408898 nop                       |             
    0x0040889c lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x004088a0 addiu t8, zero, -1        |             t8 = -1;
    0x004088a4 sw t8, 0x40(fp)           |             *(arg_40h) = t8;
    0x004088a8 b 0x408c88                |             goto label_4;
    0x004088ac nop                       |             
                                         |         }
    0x004088b0 addiu t8, fp, 0x3c        |         t8 = fp + 0x3c;
    0x004088b4 addiu v0, zero, 4         |         v0 = 4;
    0x004088b8 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x004088bc lw a0, 0x44(fp)           |         a0 = *(arg_44h);
    0x004088c0 ori a1, zero, 0xffff      |         a1 = 0xffff;
    0x004088c4 addiu a2, zero, 4         |         a2 = 4;
    0x004088c8 move a3, t8               |         a3 = t8;
    0x004088cc lw t8, -0x7e7c(gp)        |         t8 = sym.imp.setsockopt;
    0x004088d0 move t9, t8               |         t9 = t8;
    0x004088d4 jalr t9                   |         t9 ();
    0x004088d8 nop                       |         
    0x004088dc lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x004088e0 move t8, v0               |         t8 = v0;
    0x004088e4 sltu t8, zero, t8         |         t8 = (0 < t8) ? 1 : 0;
    0x004088e8 andi t8, t8, 0xff         |         t8 &= 0xff;
                                         |         if (t8 != 0) {
    0x004088ec beqz t8, 0x408984         |             
    0x004088f0 nop                       |             
    0x004088f4 lw t8, -0x7fd8(gp)        |             t8 = *((gp - 8182));
                                         |             /* str.setsockopt:_SO_REUSEADDR */
    0x004088f8 addiu a0, t8, 0x78        |             a0 = t8 + 0x78;
    0x004088fc lw t8, -0x7ed4(gp)        |             t8 = sym.imp.perror;
    0x00408900 move t9, t8               |             t9 = t8;
    0x00408904 jalr t9                   |             t9 ();
    0x00408908 nop                       |             
    0x0040890c lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x00408910 lw t8, -0x7e90(gp)        |             t8 = *((gp - 8100));
    0x00408914 lw s0, (t8)               |             s0 = *(t8);
    0x00408918 lw t8, -0x7fd0(gp)        |             t8 = *(gp);
                                         |             /* aav.0x00407870 */
    0x0040891c addiu t8, t8, 0x7870      |             t8 += 0x7870;
    0x00408920 move t9, t8               |             t9 = t8;
    0x00408924 jalr t9                   |             t9 ();
    0x00408928 nop                       |             
    0x0040892c lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x00408930 move t8, v0               |             t8 = v0;
    0x00408934 lw v0, -0x7fd8(gp)        |             v0 = *((gp - 8182));
                                         |             /* str.tcp_listen */
    0x00408938 addiu v0, v0, 0x1d0       |             v0 += 0x1d0;
    0x0040893c sw v0, 0x10(sp)           |             *(var_10h) = v0;
    0x00408940 addiu v0, zero, 0x9c      |             v0 = 0x9c;
    0x00408944 sw v0, 0x14(sp)           |             *(var_14h) = v0;
    0x00408948 move a0, s0               |             a0 = s0;
    0x0040894c lw v0, -0x7fd8(gp)        |             v0 = *((gp - 8182));
                                         |             /* str._s____18s____24s__5d_setsockopt___fail__n */
    0x00408950 addiu a1, v0, 0x94        |             a1 = v0 + 0x94;
    0x00408954 move a2, t8               |             a2 = t8;
    0x00408958 lw t8, -0x7fd8(gp)        |             t8 = *((gp - 8182));
    0x0040895c addiu a3, t8, -0xd0       |             a3 = t8 + -0xd0;
    0x00408960 lw t8, -0x7ee0(gp)        |             t8 = sym.imp.fprintf
    0x00408964 move t9, t8               |             t9 = t8;
    0x00408968 jalr t9                   |             t9 ();
    0x0040896c nop                       |             
    0x00408970 lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x00408974 addiu t8, zero, -1        |             t8 = -1;
    0x00408978 sw t8, 0x40(fp)           |             *(arg_40h) = t8;
    0x0040897c b 0x408c88                |             goto label_4;
    0x00408980 nop                       |             
                                         |         }
    0x00408984 lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00408988 lw v0, 0x14(t8)           |         v0 = *((t8 + 5));
    0x0040898c lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00408990 lw t8, 0x10(t8)           |         t8 = *((t8 + 4));
    0x00408994 lw a0, 0x44(fp)           |         a0 = *(arg_44h);
    0x00408998 move a1, v0               |         a1 = v0;
    0x0040899c move a2, t8               |         a2 = t8;
    0x004089a0 lw t8, -0x7e10(gp)        |         t8 = sym.imp.bind;
    0x004089a4 move t9, t8               |         t9 = t8;
    0x004089a8 jalr t9                   |         t9 ();
    0x004089ac nop                       |         
    0x004089b0 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x004089b4 move t8, v0               |         t8 = v0;
    0x004089b8 sltu t8, zero, t8         |         t8 = (0 < t8) ? 1 : 0;
    0x004089bc andi t8, t8, 0xff         |         t8 &= 0xff;
                                         |         if (t8 != 0) {
    0x004089c0 beqz t8, 0x408a58         |             
    0x004089c4 nop                       |             
    0x004089c8 lw t8, -0x7fd8(gp)        |             t8 = *((gp - 8182));
                                         |             /* str.bind */
    0x004089cc addiu a0, t8, 0xc4        |             a0 = t8 + 0xc4;
    0x004089d0 lw t8, -0x7ed4(gp)        |             t8 = sym.imp.perror;
    0x004089d4 move t9, t8               |             t9 = t8;
    0x004089d8 jalr t9                   |             t9 ();
    0x004089dc nop                       |             
    0x004089e0 lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x004089e4 lw t8, -0x7e90(gp)        |             t8 = *((gp - 8100));
    0x004089e8 lw s0, (t8)               |             s0 = *(t8);
    0x004089ec lw t8, -0x7fd0(gp)        |             t8 = *(gp);
                                         |             /* aav.0x00407870 */
    0x004089f0 addiu t8, t8, 0x7870      |             t8 += 0x7870;
    0x004089f4 move t9, t8               |             t9 = t8;
    0x004089f8 jalr t9                   |             t9 ();
    0x004089fc nop                       |             
    0x00408a00 lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x00408a04 move t8, v0               |             t8 = v0;
    0x00408a08 lw v0, -0x7fd8(gp)        |             v0 = *((gp - 8182));
                                         |             /* str.tcp_listen */
    0x00408a0c addiu v0, v0, 0x1d0       |             v0 += 0x1d0;
    0x00408a10 sw v0, 0x10(sp)           |             *(var_10h) = v0;
    0x00408a14 addiu v0, zero, 0xa1      |             v0 = 0xa1;
    0x00408a18 sw v0, 0x14(sp)           |             *(var_14h) = v0;
    0x00408a1c move a0, s0               |             a0 = s0;
    0x00408a20 lw v0, -0x7fd8(gp)        |             v0 = *((gp - 8182));
                                         |             /* str._s____18s____24s__5d_bind___fail__n */
    0x00408a24 addiu a1, v0, 0xcc        |             a1 = v0 + 0xcc;
    0x00408a28 move a2, t8               |             a2 = t8;
    0x00408a2c lw t8, -0x7fd8(gp)        |             t8 = *((gp - 8182));
    0x00408a30 addiu a3, t8, -0xd0       |             a3 = t8 + -0xd0;
    0x00408a34 lw t8, -0x7ee0(gp)        |             t8 = sym.imp.fprintf
    0x00408a38 move t9, t8               |             t9 = t8;
    0x00408a3c jalr t9                   |             t9 ();
    0x00408a40 nop                       |             
    0x00408a44 lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x00408a48 addiu t8, zero, -1        |             t8 = -1;
    0x00408a4c sw t8, 0x40(fp)           |             *(arg_40h) = t8;
    0x00408a50 b 0x408c88                |             goto label_4;
    0x00408a54 nop                       |             
                                         |         }
    0x00408a58 lw a0, 0x44(fp)           |         a0 = *(arg_44h);
    0x00408a5c addiu a1, zero, 2         |         a1 = 2;
    0x00408a60 lw t8, -0x7f24(gp)        |         t8 = sym.imp.listen;
    0x00408a64 move t9, t8               |         t9 = t8;
    0x00408a68 jalr t9                   |         t9 ();
    0x00408a6c nop                       |         
    0x00408a70 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00408a74 move t8, v0               |         t8 = v0;
    0x00408a78 sltu t8, zero, t8         |         t8 = (0 < t8) ? 1 : 0;
    0x00408a7c andi t8, t8, 0xff         |         t8 &= 0xff;
                                         |         if (t8 != 0) {
    0x00408a80 beqz t8, 0x408b18         |             
    0x00408a84 nop                       |             
    0x00408a88 lw t8, -0x7fd8(gp)        |             t8 = *((gp - 8182));
                                         |             /* str.listen */
    0x00408a8c addiu a0, t8, 0xf4        |             a0 = t8 + 0xf4;
    0x00408a90 lw t8, -0x7ed4(gp)        |             t8 = sym.imp.perror;
    0x00408a94 move t9, t8               |             t9 = t8;
    0x00408a98 jalr t9                   |             t9 ();
    0x00408a9c nop                       |             
    0x00408aa0 lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x00408aa4 lw t8, -0x7e90(gp)        |             t8 = *((gp - 8100));
    0x00408aa8 lw s0, (t8)               |             s0 = *(t8);
    0x00408aac lw t8, -0x7fd0(gp)        |             t8 = *(gp);
                                         |             /* aav.0x00407870 */
    0x00408ab0 addiu t8, t8, 0x7870      |             t8 += 0x7870;
    0x00408ab4 move t9, t8               |             t9 = t8;
    0x00408ab8 jalr t9                   |             t9 ();
    0x00408abc nop                       |             
    0x00408ac0 lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x00408ac4 move t8, v0               |             t8 = v0;
    0x00408ac8 lw v0, -0x7fd8(gp)        |             v0 = *((gp - 8182));
                                         |             /* str.tcp_listen */
    0x00408acc addiu v0, v0, 0x1d0       |             v0 += 0x1d0;
    0x00408ad0 sw v0, 0x10(sp)           |             *(var_10h) = v0;
    0x00408ad4 addiu v0, zero, 0xa6      |             v0 = 0xa6;
    0x00408ad8 sw v0, 0x14(sp)           |             *(var_14h) = v0;
    0x00408adc move a0, s0               |             a0 = s0;
    0x00408ae0 lw v0, -0x7fd8(gp)        |             v0 = *((gp - 8182));
                                         |             /* str._s____18s____24s__5d_listen___fail__n */
    0x00408ae4 addiu a1, v0, 0xfc        |             a1 = v0 + 0xfc;
    0x00408ae8 move a2, t8               |             a2 = t8;
    0x00408aec lw t8, -0x7fd8(gp)        |             t8 = *((gp - 8182));
    0x00408af0 addiu a3, t8, -0xd0       |             a3 = t8 + -0xd0;
    0x00408af4 lw t8, -0x7ee0(gp)        |             t8 = sym.imp.fprintf
    0x00408af8 move t9, t8               |             t9 = t8;
    0x00408afc jalr t9                   |             t9 ();
    0x00408b00 nop                       |             
    0x00408b04 lw gp, 0x20(fp)           |             gp = *(arg_20h);
    0x00408b08 addiu t8, zero, -1        |             t8 = -1;
    0x00408b0c sw t8, 0x40(fp)           |             *(arg_40h) = t8;
    0x00408b10 b 0x408c88                |             goto label_4;
    0x00408b14 nop                       |             
                                         |         }
    0x00408b18 sw zero, 0x6c(fp)         |         *(arg_6ch) = 0;
    0x00408b1c sw zero, 0x70(fp)         |         *(arg_70h) = 0;
    0x00408b20 sw zero, 0x74(fp)         |         *(arg_74h) = 0;
    0x00408b24 sw zero, 0x78(fp)         |         *(arg_78h) = 0;
    0x00408b28 sw zero, 0x7c(fp)         |         *(arg_7ch) = 0;
    0x00408b2c sw zero, 0x80(fp)         |         *(arg_80h) = 0;
    0x00408b30 sw zero, 0x84(fp)         |         *(arg_84h) = 0;
    0x00408b34 sw zero, 0x88(fp)         |         *(arg_88h) = 0;
    0x00408b38 sw zero, 0x8c(fp)         |         *(arg_8ch) = 0;
    0x00408b3c sw zero, 0x90(fp)         |         *(arg_90h) = 0;
    0x00408b40 sw zero, 0x94(fp)         |         *(arg_94h) = 0;
    0x00408b44 sh zero, 0x98(fp)         |         *(arg_98h) = 0;
    0x00408b48 lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00408b4c lw t8, 4(t8)              |         t8 = *((t8 + 1));
    0x00408b50 addiu v0, zero, 2         |         v0 = 2;
                                         |         if (t8 != v0) {
    0x00408b54 beq t8, v0, 0x408b70      |             
    0x00408b58 nop                       |             
    0x00408b5c addiu v0, zero, 0xa       |             v0 = 0xa;
                                         |             if (t8 == v0) {
    0x00408b60 beq t8, v0, 0x408bac      |                 goto label_5;
                                         |             }
    0x00408b64 nop                       |             
    0x00408b68 b 0x408be4                |             goto label_6;
    0x00408b6c nop                       |             
                                         |         }
    0x00408b70 lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00408b74 lw t8, 0x14(t8)           |         t8 = *((t8 + 5));
    0x00408b78 addiu v0, t8, 4           |         v0 = t8 + 4;
    0x00408b7c addiu t8, fp, 0x6c        |         t8 = fp + 0x6c;
    0x00408b80 addiu a0, zero, 2         |         a0 = 2;
    0x00408b84 move a1, v0               |         a1 = v0;
    0x00408b88 move a2, t8               |         a2 = t8;
    0x00408b8c addiu a3, zero, 0x2e      |         a3 = 0x2e;
    0x00408b90 lw t8, -0x7f2c(gp)        |         t8 = sym.imp.inet_ntop;
    0x00408b94 move t9, t8               |         t9 = t8;
    0x00408b98 jalr t9                   |         t9 ();
    0x00408b9c nop                       |         
    0x00408ba0 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00408ba4 b 0x408be4                |         goto label_6;
    0x00408ba8 nop                       |         
                                         | label_5:
    0x00408bac lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00408bb0 lw t8, 0x14(t8)           |         t8 = *((t8 + 5));
    0x00408bb4 addiu v0, t8, 8           |         v0 = t8 + 8;
    0x00408bb8 addiu t8, fp, 0x6c        |         t8 = fp + 0x6c;
    0x00408bbc addiu a0, zero, 0xa       |         a0 = 0xa;
    0x00408bc0 move a1, v0               |         a1 = v0;
    0x00408bc4 move a2, t8               |         a2 = t8;
    0x00408bc8 addiu a3, zero, 0x2e      |         a3 = 0x2e;
    0x00408bcc lw t8, -0x7f2c(gp)        |         t8 = sym.imp.inet_ntop;
    0x00408bd0 move t9, t8               |         t9 = t8;
    0x00408bd4 jalr t9                   |         t9 ();
    0x00408bd8 nop                       |         
    0x00408bdc lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00408be0 nop                       |         
                                         | label_6:
    0x00408be4 lw t8, -0x7e90(gp)        |         t8 = *((gp - 8100));
    0x00408be8 lw s1, (t8)               |         s1 = *(t8);
    0x00408bec lw t8, -0x7fd0(gp)        |         t8 = *(gp);
                                         |         /* aav.0x00407870 */
    0x00408bf0 addiu t8, t8, 0x7870      |         t8 += 0x7870;
    0x00408bf4 move t9, t8               |         t9 = t8;
    0x00408bf8 jalr t9                   |         t9 ();
    0x00408bfc nop                       |         
    0x00408c00 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00408c04 move s0, v0               |         s0 = v0;
    0x00408c08 lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00408c0c lw t8, 0x14(t8)           |         t8 = *((t8 + 5));
    0x00408c10 lhu t8, 2(t8)             |         t8 = *((t8 + 1));
    0x00408c14 move a0, t8               |         a0 = t8;
    0x00408c18 lw t8, -0x7ee4(gp)        |         t8 = sym.imp.ntohs;
    0x00408c1c move t9, t8               |         t9 = t8;
    0x00408c20 jalr t9                   |         t9 ();
    0x00408c24 nop                       |         
    0x00408c28 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00408c2c move t8, v0               |         t8 = v0;
    0x00408c30 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* str.tcp_listen */
    0x00408c34 addiu v0, v0, 0x1d0       |         v0 += 0x1d0;
    0x00408c38 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00408c3c addiu v0, zero, 0xb0      |         v0 = 0xb0;
    0x00408c40 sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x00408c44 addiu v0, fp, 0x6c        |         v0 = fp + 0x6c;
    0x00408c48 sw v0, 0x18(sp)           |         *(var_18h) = v0;
    0x00408c4c sw t8, 0x1c(sp)           |         *(var_1ch) = t8;
    0x00408c50 move a0, s1               |         a0 = s1;
    0x00408c54 lw t8, -0x7fd8(gp)        |         t8 = *((gp - 8182));
                                         |         /* str._s____18s____24s__5d_listening__s:_d_n */
    0x00408c58 addiu a1, t8, 0x128       |         a1 = t8 + 0x128;
    0x00408c5c move a2, s0               |         a2 = s0;
    0x00408c60 lw t8, -0x7fd8(gp)        |         t8 = *((gp - 8182));
    0x00408c64 addiu a3, t8, 0x38        |         a3 = t8 + 0x38;
    0x00408c68 lw t8, -0x7ee0(gp)        |         t8 = sym.imp.fprintf
    0x00408c6c move t9, t8               |         t9 = t8;
    0x00408c70 jalr t9                   |         t9 ();
    0x00408c74 nop                       |         
    0x00408c78 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00408c7c nop                       |         
    0x00408c80 b 0x408cc4                |         goto label_7;
    0x00408c84 nop                       |         
                                         | label_4:
    0x00408c88 lw t8, 0x40(fp)           |         t8 = *(arg_40h);
                                         |         if (t8 != 0) {
    0x00408c8c beqz t8, 0x408cac         |             
    0x00408c90 nop                       |             
    0x00408c94 lw a0, 0x44(fp)           |             a0 = *(arg_44h);
    0x00408c98 lw t8, -0x7ea4(gp)        |             t8 = sym.imp.close;
    0x00408c9c move t9, t8               |             t9 = t8;
    0x00408ca0 jalr t9                   |             t9 ();
    0x00408ca4 nop                       |             
    0x00408ca8 lw gp, 0x20(fp)           |             gp = *(arg_20h);
                                         |         }
    0x00408cac lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00408cb0 lw t8, 0x1c(t8)           |         t8 = *((t8 + 7));
    0x00408cb4 sw t8, 0x48(fp)           |         *(arg_48h) = t8;
                                         | label_3:
    0x00408cb8 lw t8, 0x48(fp)           |         t8 = *(arg_48h);
    0x00408cbc bnez t8, 0x4087c8         |         
                                         |     } while (t8 != 0);
    0x00408cc0 nop                       |     
                                         | label_7:
    0x00408cc4 lw t8, 0x38(fp)           |     t8 = *(arg_38h);
    0x00408cc8 move a0, t8               |     a0 = t8;
    0x00408ccc lw t8, -0x7e3c(gp)        |     t8 = sym.imp.freeaddrinfo;
    0x00408cd0 move t9, t8               |     t9 = t8;
    0x00408cd4 jalr t9                   |     t9 ();
    0x00408cd8 nop                       |     
    0x00408cdc lw gp, 0x20(fp)           |     gp = *(arg_20h);
    0x00408ce0 lw t8, 0x48(fp)           |     t8 = *(arg_48h);
                                         |     if (t8 == 0) {
    0x00408ce4 bnez t8, 0x408d5c         |         
    0x00408ce8 nop                       |         
    0x00408cec lw t8, -0x7e90(gp)        |         t8 = *((gp - 8100));
    0x00408cf0 lw s0, (t8)               |         s0 = *(t8);
    0x00408cf4 lw t8, -0x7fd0(gp)        |         t8 = *(gp);
                                         |         /* aav.0x00407870 */
    0x00408cf8 addiu t8, t8, 0x7870      |         t8 += 0x7870;
    0x00408cfc move t9, t8               |         t9 = t8;
    0x00408d00 jalr t9                   |         t9 ();
    0x00408d04 nop                       |         
    0x00408d08 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00408d0c move t8, v0               |         t8 = v0;
    0x00408d10 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* str.tcp_listen */
    0x00408d14 addiu v0, v0, 0x1d0       |         v0 += 0x1d0;
    0x00408d18 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00408d1c addiu v0, zero, 0xbb      |         v0 = 0xbb;
    0x00408d20 sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x00408d24 move a0, s0               |         a0 = s0;
    0x00408d28 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* str._s____18s____24s__5d_No_address_succeeded_n */
    0x00408d2c addiu a1, v0, 0x48        |         a1 = v0 + 0x48;
    0x00408d30 move a2, t8               |         a2 = t8;
    0x00408d34 lw t8, -0x7fd8(gp)        |         t8 = *((gp - 8182));
    0x00408d38 addiu a3, t8, -0xd0       |         a3 = t8 + -0xd0;
    0x00408d3c lw t8, -0x7ee0(gp)        |         t8 = sym.imp.fprintf
    0x00408d40 move t9, t8               |         t9 = t8;
    0x00408d44 jalr t9                   |         t9 ();
    0x00408d48 nop                       |         
    0x00408d4c lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00408d50 addiu t8, zero, 0x7e      |         t8 = 0x7e;
    0x00408d54 b 0x408d84                |         goto label_2;
    0x00408d58 nop                       |         
                                         |     }
    0x00408d5c lw t8, 0x40(fp)           |     t8 = *(arg_40h);
                                         |     if (t8 == 0) {
    0x00408d60 bnez t8, 0x408d80         |         
    0x00408d64 nop                       |         
    0x00408d68 lw t8, 0x34(fp)           |         t8 = *(arg_34h);
    0x00408d6c lw v0, 0x44(fp)           |         v0 = *(arg_44h);
    0x00408d70 sw v0, (t8)               |         *(t8) = v0;
    0x00408d74 lw t8, 0x34(fp)           |         t8 = *(arg_34h);
    0x00408d78 addiu v0, zero, 1         |         v0 = 1;
    0x00408d7c sw v0, 0x24(t8)           |         *((t8 + 36)) = v0;
                                         |     }
    0x00408d80 lw t8, 0x40(fp)           |     t8 = *(arg_40h);
                                         | label_2:
    0x00408d84 move v0, t8               |     v0 = t8;
    0x00408d88 lw t8, -0x7e24(gp)        |     t8 = *((gp - 8073));
    0x00408d8c lw v1, 0x9c(fp)           |     v1 = *(arg_9ch);
    0x00408d90 lw t8, (t8)               |     t8 = *(t8);
                                         |     if (v1 != t8) {
    0x00408d94 beq v1, t8, 0x408dac      |         
    0x00408d98 nop                       |         
    0x00408d9c lw t8, -0x7e84(gp)        |         t8 = sym.imp.__stack_chk_fail;
    0x00408da0 move t9, t8               |         t9 = t8;
    0x00408da4 jalr t9                   |         t9 ();
    0x00408da8 nop                       |         
                                         |     }
    0x00408dac move sp, fp               |     
    0x00408db0 lw ra, 0xac(sp)           |     ra = *(var_ach);
    0x00408db4 lw fp, 0xa8(sp)           |     fp = *(var_a8h);
    0x00408db8 lw s1, 0xa4(sp)           |     s1 = *(var_a4h);
    0x00408dbc lw s0, 0xa0(sp)           |     s0 = *(var_a0h);
    0x00408dc0 addiu sp, sp, 0xb0        |     
    0x00408dc4 jr ra                     |     return v1;
    0x00408dc8 nop                       |     
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x408354 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.tcp_read ()              | void tcp_read () {
    0x00408354 lui gp, 2                 |     
    0x00408358 addiu gp, gp, 0x2ccc      |     
    0x0040835c addu gp, gp, t9           |     gp += t9;
    0x00408360 addiu sp, sp, -0x48       |     
    0x00408364 sw ra, 0x44(sp)           |     *(var_44h) = ra;
    0x00408368 sw fp, 0x40(sp)           |     *(var_40h) = fp;
    0x0040836c sw s0, 0x3c(sp)           |     *(var_3ch) = s0;
    0x00408370 move fp, sp               |     fp = sp;
    0x00408374 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00408378 sw a0, 0x2c(fp)           |     *(arg_2ch) = a0;
    0x0040837c sw a1, 0x28(fp)           |     *(arg_28h) = a1;
    0x00408380 sw a2, 0x24(fp)           |     *(arg_24h) = a2;
    0x00408384 lw t8, -0x7e24(gp)        |     t8 = *((gp - 8073));
    0x00408388 lw t8, (t8)               |     t8 = *(t8);
    0x0040838c sw t8, 0x34(fp)           |     *(arg_34h) = t8;
    0x00408390 lw t8, 0x2c(fp)           |     t8 = *(arg_2ch);
                                         |     if (t8 == 0) {
    0x00408394 bnez t8, 0x40840c         |         
    0x00408398 nop                       |         
    0x0040839c lw t8, -0x7e90(gp)        |         t8 = *((gp - 8100));
    0x004083a0 lw s0, (t8)               |         s0 = *(t8);
    0x004083a4 lw t8, -0x7fd0(gp)        |         t8 = *(gp);
                                         |         /* aav.0x00407870 */
    0x004083a8 addiu t8, t8, 0x7870      |         t8 += 0x7870;
    0x004083ac move t9, t8               |         t9 = t8;
    0x004083b0 jalr t9                   |         t9 ();
    0x004083b4 nop                       |         
    0x004083b8 lw gp, 0x18(fp)           |         gp = *(arg_18h);
    0x004083bc move t8, v0               |         t8 = v0;
    0x004083c0 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* str.tcp_read */
    0x004083c4 addiu v0, v0, 0x1b8       |         v0 += 0x1b8;
    0x004083c8 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x004083cc addiu v0, zero, 0x70      |         v0 = 0x70;
    0x004083d0 sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x004083d4 move a0, s0               |         a0 = s0;
    0x004083d8 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x004083dc addiu a1, v0, -0xbc       |         a1 = v0 + -0xbc;
    0x004083e0 move a2, t8               |         a2 = t8;
    0x004083e4 lw t8, -0x7fd8(gp)        |         t8 = *((gp - 8182));
    0x004083e8 addiu a3, t8, -0xd0       |         a3 = t8 + -0xd0;
    0x004083ec lw t8, -0x7ee0(gp)        |         t8 = sym.imp.fprintf
    0x004083f0 move t9, t8               |         t9 = t8;
    0x004083f4 jalr t9                   |         t9 ();
    0x004083f8 nop                       |         
    0x004083fc lw gp, 0x18(fp)           |         gp = *(arg_18h);
    0x00408400 addiu t8, zero, -1        |         t8 = -1;
    0x00408404 b 0x408458                |         goto label_0;
    0x00408408 nop                       |         
                                         |     }
    0x0040840c lw a0, 0x28(fp)           |     a0 = *(arg_28h);
    0x00408410 move a1, zero             |     a1 = 0;
    0x00408414 lw a2, 0x24(fp)           |     a2 = *(arg_24h);
    0x00408418 lw t8, -0x7ecc(gp)        |     t8 = sym.imp.memset;
    0x0040841c move t9, t8               |     t9 = t8;
    0x00408420 jalr t9                   |     t9 ();
    0x00408424 nop                       |     
    0x00408428 lw gp, 0x18(fp)           |     gp = *(arg_18h);
    0x0040842c lw t8, 0x2c(fp)           |     t8 = *(arg_2ch);
    0x00408430 lw t8, (t8)               |     t8 = *(t8);
    0x00408434 move a0, t8               |     a0 = t8;
    0x00408438 lw a1, 0x28(fp)           |     a1 = *(arg_28h);
    0x0040843c lw a2, 0x24(fp)           |     a2 = *(arg_24h);
    0x00408440 lw t8, -0x7e64(gp)        |     t8 = sym.imp.read;
    0x00408444 move t9, t8               |     t9 = t8;
    0x00408448 jalr t9                   |     t9 ();
    0x0040844c nop                       |     
    0x00408450 lw gp, 0x18(fp)           |     gp = *(arg_18h);
    0x00408454 move t8, v0               |     t8 = v0;
                                         | label_0:
    0x00408458 move v0, t8               |     v0 = t8;
    0x0040845c lw t8, -0x7e24(gp)        |     t8 = *((gp - 8073));
    0x00408460 lw v1, 0x34(fp)           |     v1 = *(arg_34h);
    0x00408464 lw t8, (t8)               |     t8 = *(t8);
                                         |     if (v1 != t8) {
    0x00408468 beq v1, t8, 0x408480      |         
    0x0040846c nop                       |         
    0x00408470 lw t8, -0x7e84(gp)        |         t8 = sym.imp.__stack_chk_fail;
    0x00408474 move t9, t8               |         t9 = t8;
    0x00408478 jalr t9                   |         t9 ();
    0x0040847c nop                       |         
                                         |     }
    0x00408480 move sp, fp               |     
    0x00408484 lw ra, 0x44(sp)           |     ra = *(var_44h);
    0x00408488 lw fp, 0x40(sp)           |     fp = *(var_40h);
    0x0040848c lw s0, 0x3c(sp)           |     s0 = *(var_3ch);
    0x00408490 addiu sp, sp, 0x48        |     
    0x00408494 jr ra                     |     return v1;
    0x00408498 nop                       |     
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40849c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.tcp_write ()             | void tcp_write () {
    0x0040849c lui gp, 2                 |     
    0x004084a0 addiu gp, gp, 0x2b84      |     
    0x004084a4 addu gp, gp, t9           |     gp += t9;
    0x004084a8 addiu sp, sp, -0x48       |     
    0x004084ac sw ra, 0x44(sp)           |     *(var_44h) = ra;
    0x004084b0 sw fp, 0x40(sp)           |     *(var_40h) = fp;
    0x004084b4 sw s0, 0x3c(sp)           |     *(var_3ch) = s0;
    0x004084b8 move fp, sp               |     fp = sp;
    0x004084bc sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x004084c0 sw a0, 0x2c(fp)           |     *(arg_2ch) = a0;
    0x004084c4 sw a1, 0x28(fp)           |     *(arg_28h) = a1;
    0x004084c8 sw a2, 0x24(fp)           |     *(arg_24h) = a2;
    0x004084cc lw t8, -0x7e24(gp)        |     t8 = *((gp - 8073));
    0x004084d0 lw t8, (t8)               |     t8 = *(t8);
    0x004084d4 sw t8, 0x34(fp)           |     *(arg_34h) = t8;
    0x004084d8 lw t8, 0x2c(fp)           |     t8 = *(arg_2ch);
                                         |     if (t8 == 0) {
    0x004084dc bnez t8, 0x408554         |         
    0x004084e0 nop                       |         
    0x004084e4 lw t8, -0x7e90(gp)        |         t8 = *((gp - 8100));
    0x004084e8 lw s0, (t8)               |         s0 = *(t8);
    0x004084ec lw t8, -0x7fd0(gp)        |         t8 = *(gp);
                                         |         /* aav.0x00407870 */
    0x004084f0 addiu t8, t8, 0x7870      |         t8 += 0x7870;
    0x004084f4 move t9, t8               |         t9 = t8;
    0x004084f8 jalr t9                   |         t9 ();
    0x004084fc nop                       |         
    0x00408500 lw gp, 0x18(fp)           |         gp = *(arg_18h);
    0x00408504 move t8, v0               |         t8 = v0;
    0x00408508 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* str.tcp_write */
    0x0040850c addiu v0, v0, 0x1c4       |         v0 += 0x1c4;
    0x00408510 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00408514 addiu v0, zero, 0x78      |         v0 = 0x78;
    0x00408518 sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x0040851c move a0, s0               |         a0 = s0;
    0x00408520 lw v0, -0x7fd8(gp)        |         v0 = *((gp - 8182));
                                         |         /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x00408524 addiu a1, v0, -0xbc       |         a1 = v0 + -0xbc;
    0x00408528 move a2, t8               |         a2 = t8;
    0x0040852c lw t8, -0x7fd8(gp)        |         t8 = *((gp - 8182));
    0x00408530 addiu a3, t8, -0xd0       |         a3 = t8 + -0xd0;
    0x00408534 lw t8, -0x7ee0(gp)        |         t8 = sym.imp.fprintf
    0x00408538 move t9, t8               |         t9 = t8;
    0x0040853c jalr t9                   |         t9 ();
    0x00408540 nop                       |         
    0x00408544 lw gp, 0x18(fp)           |         gp = *(arg_18h);
    0x00408548 addiu t8, zero, -1        |         t8 = -1;
    0x0040854c b 0x408580                |         goto label_0;
    0x00408550 nop                       |         
                                         |     }
    0x00408554 lw t8, 0x2c(fp)           |     t8 = *(arg_2ch);
    0x00408558 lw t8, (t8)               |     t8 = *(t8);
    0x0040855c move a0, t8               |     a0 = t8;
    0x00408560 lw a1, 0x28(fp)           |     a1 = *(arg_28h);
    0x00408564 lw a2, 0x24(fp)           |     a2 = *(arg_24h);
    0x00408568 lw t8, -0x7e98(gp)        |     t8 = sym.imp.write;
    0x0040856c move t9, t8               |     t9 = t8;
    0x00408570 jalr t9                   |     t9 ();
    0x00408574 nop                       |     
    0x00408578 lw gp, 0x18(fp)           |     gp = *(arg_18h);
    0x0040857c move t8, v0               |     t8 = v0;
                                         | label_0:
    0x00408580 move v0, t8               |     v0 = t8;
    0x00408584 lw t8, -0x7e24(gp)        |     t8 = *((gp - 8073));
    0x00408588 lw v1, 0x34(fp)           |     v1 = *(arg_34h);
    0x0040858c lw t8, (t8)               |     t8 = *(t8);
                                         |     if (v1 != t8) {
    0x00408590 beq v1, t8, 0x4085a8      |         
    0x00408594 nop                       |         
    0x00408598 lw t8, -0x7e84(gp)        |         t8 = sym.imp.__stack_chk_fail;
    0x0040859c move t9, t8               |         t9 = t8;
    0x004085a0 jalr t9                   |         t9 ();
    0x004085a4 nop                       |         
                                         |     }
    0x004085a8 move sp, fp               |     
    0x004085ac lw ra, 0x44(sp)           |     ra = *(var_44h);
    0x004085b0 lw fp, 0x40(sp)           |     fp = *(var_40h);
    0x004085b4 lw s0, 0x3c(sp)           |     s0 = *(var_3ch);
    0x004085b8 addiu sp, sp, 0x48        |     
    0x004085bc jr ra                     |     return v1;
    0x004085c0 nop                       |     
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x4033f0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.test_http_server__ ()        | void test_http_server_ () {
                                             |     /* test_http_server() */
    0x004033f0 lui gp, 2                     |     
    0x004033f4 addiu gp, gp, 0x7c30          |     
    0x004033f8 addu gp, gp, t9               |     gp += t9;
    0x004033fc addiu sp, sp, -0x40           |     
    0x00403400 sw ra, 0x3c(sp)               |     *(var_3ch) = ra;
    0x00403404 sw fp, 0x38(sp)               |     *(var_38h) = fp;
    0x00403408 sw s0, 0x34(sp)               |     *(var_34h) = s0;
    0x0040340c move fp, sp                   |     fp = sp;
    0x00403410 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x00403414 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x00403418 lw t8, (t8)                   |     t8 = *(t8);
    0x0040341c sw t8, 0x2c(fp)               |     *(arg_2ch) = t8;
    0x00403420 sw zero, 0x28(fp)             |     *(arg_28h) = 0;
    0x00403424 addiu t8, fp, 0x24            |     t8 = fp + 0x24;
    0x00403428 move a0, t8                   |     a0 = t8;
    0x0040342c lw t8, -0x7f8c(gp)            |     t8 = sym.http_create;
    0x00403430 move t9, t8                   |     t9 = t8;
    0x00403434 jalr t9                       |     t9 ();
    0x00403438 nop                           |     
    0x0040343c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403440 move t8, v0                   |     t8 = v0;
    0x00403444 sw t8, 0x28(fp)               |     *(arg_28h) = t8;
    0x00403448 lw t8, 0x28(fp)               |     t8 = *(arg_28h);
                                             |     if (t8 != 0) {
    0x0040344c beqz t8, 0x4034c0             |         
    0x00403450 nop                           |         
    0x00403454 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x00403458 lw s0, (t8)                   |         s0 = *(t8);
    0x0040345c lw t8, -0x7fd0(gp)            |         t8 = *(gp);
                                             |         /* aav.0x00401970 */
    0x00403460 addiu t8, t8, 0x1970          |         t8 += 0x1970;
    0x00403464 move t9, t8                   |         t9 = t8;
    0x00403468 jalr t9                       |         t9 ();
    0x0040346c nop                           |         
    0x00403470 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00403474 move t8, v0                   |         t8 = v0;
    0x00403478 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.test_http_server */
    0x0040347c addiu v0, v0, -0x1ec          |         v0 += -0x1ec;
    0x00403480 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x00403484 addiu v0, zero, 0x132         |         v0 = 0x132;
    0x00403488 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x0040348c move a0, s0                   |         a0 = s0;
    0x00403490 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_http_create___fail__n */
    0x00403494 addiu a1, v0, -0x6ec          |         a1 = v0 + -0x6ec;
    0x00403498 move a2, t8                   |         a2 = t8;
    0x0040349c lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x004034a0 addiu a3, t8, -0xb1c          |         a3 = t8 + -0xb1c;
    0x004034a4 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x004034a8 move t9, t8                   |         t9 = t8;
    0x004034ac jalr t9                       |         t9 ();
    0x004034b0 nop                           |         
    0x004034b4 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x004034b8 b 0x403570                    |         goto label_0;
    0x004034bc nop                           |         
                                             |     }
    0x004034c0 lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x004034c4 move a0, t8                   |     a0 = t8;
    0x004034c8 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* esilref: '127.0.0.1' */
    0x004034cc addiu a1, t8, -0x844          |     a1 = t8 + -0x844;
    0x004034d0 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* str.7000 */
    0x004034d4 addiu a2, t8, -0x6bc          |     a2 = t8 + -0x6bc;
    0x004034d8 lw t8, -0x7fd0(gp)            |     t8 = *(gp);
                                             |     /* aav.0x004020b8 */
    0x004034dc addiu a3, t8, 0x20b8          |     a3 = t8 + 0x20b8;
    0x004034e0 lw t8, -0x7f88(gp)            |     t8 = sym.http_listen;
    0x004034e4 move t9, t8                   |     t9 = t8;
    0x004034e8 jalr t9                       |     t9 ();
    0x004034ec nop                           |     
    0x004034f0 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004034f4 move t8, v0                   |     t8 = v0;
    0x004034f8 sw t8, 0x28(fp)               |     *(arg_28h) = t8;
    0x004034fc lw t8, 0x28(fp)               |     t8 = *(arg_28h);
                                             |     if (t8 != 0) {
    0x00403500 beqz t8, 0x403570             |         
    0x00403504 nop                           |         
    0x00403508 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040350c lw s0, (t8)                   |         s0 = *(t8);
    0x00403510 lw t8, -0x7fd0(gp)            |         t8 = *(gp);
                                             |         /* aav.0x00401970 */
    0x00403514 addiu t8, t8, 0x1970          |         t8 += 0x1970;
    0x00403518 move t9, t8                   |         t9 = t8;
    0x0040351c jalr t9                       |         t9 ();
    0x00403520 nop                           |         
    0x00403524 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00403528 move t8, v0                   |         t8 = v0;
    0x0040352c lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.test_http_server */
    0x00403530 addiu v0, v0, -0x1ec          |         v0 += -0x1ec;
    0x00403534 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x00403538 addiu v0, zero, 0x137         |         v0 = 0x137;
    0x0040353c sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x00403540 move a0, s0                   |         a0 = s0;
    0x00403544 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_http_listen___fail__n */
    0x00403548 addiu a1, v0, -0x6b4          |         a1 = v0 + -0x6b4;
    0x0040354c move a2, t8                   |         a2 = t8;
    0x00403550 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x00403554 addiu a3, t8, -0xb1c          |         a3 = t8 + -0xb1c;
    0x00403558 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040355c move t9, t8                   |         t9 = t8;
    0x00403560 jalr t9                       |         t9 ();
    0x00403564 nop                           |         
    0x00403568 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040356c nop                           |         
                                             |     }
                                             | label_0:
    0x00403570 lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x00403574 move a0, t8                   |     a0 = t8;
    0x00403578 lw t8, -0x7f84(gp)            |     t8 = sym.http_disconnect;
    0x0040357c move t9, t8                   |     t9 = t8;
    0x00403580 jalr t9                       |     t9 ();
    0x00403584 nop                           |     
    0x00403588 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040358c lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x00403590 move a0, t8                   |     a0 = t8;
    0x00403594 lw t8, -0x7f80(gp)            |     t8 = sym.http_destroy;
    0x00403598 move t9, t8                   |     t9 = t8;
    0x0040359c jalr t9                       |     t9 ();
    0x004035a0 nop                           |     
    0x004035a4 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004035a8 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x004035ac lw v0, 0x2c(fp)               |     v0 = *(arg_2ch);
    0x004035b0 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v0 != t8) {
    0x004035b4 beq v0, t8, 0x4035cc          |         
    0x004035b8 nop                           |         
    0x004035bc lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x004035c0 move t9, t8                   |         t9 = t8;
    0x004035c4 jalr t9                       |         t9 ();
    0x004035c8 nop                           |         
                                             |     }
    0x004035cc move sp, fp                   |     
    0x004035d0 lw ra, 0x3c(sp)               |     ra = *(var_3ch);
    0x004035d4 lw fp, 0x38(sp)               |     fp = *(var_38h);
    0x004035d8 lw s0, 0x34(sp)               |     s0 = *(var_34h);
    0x004035dc addiu sp, sp, 0x40            |     
    0x004035e0 jr ra                         |     return v0;
    0x004035e4 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x409d90 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.tls_connect ()               | void tls_connect () {
    0x00409d90 lui gp, 2                     |     
    0x00409d94 addiu gp, gp, 0x1290          |     
    0x00409d98 addu gp, gp, t9               |     gp += t9;
    0x00409d9c addiu sp, sp, -0x50           |     
    0x00409da0 sw ra, 0x4c(sp)               |     *(var_4ch) = ra;
    0x00409da4 sw fp, 0x48(sp)               |     *(var_48h) = fp;
    0x00409da8 sw s0, 0x44(sp)               |     *(var_44h) = s0;
    0x00409dac move fp, sp                   |     fp = sp;
    0x00409db0 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x00409db4 sw a0, 0x2c(fp)               |     *(arg_2ch) = a0;
    0x00409db8 sw a1, 0x28(fp)               |     *(arg_28h) = a1;
    0x00409dbc sw a2, 0x24(fp)               |     *(arg_24h) = a2;
    0x00409dc0 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x00409dc4 lw t8, (t8)                   |     t8 = *(t8);
    0x00409dc8 sw t8, 0x3c(fp)               |     *(arg_3ch) = t8;
    0x00409dcc lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
                                             |     if (t8 != 0) {
    0x00409dd0 beqz t8, 0x409df0             |         
    0x00409dd4 nop                           |         
    0x00409dd8 lw t8, 0x28(fp)               |         t8 = *(arg_28h);
                                             |         if (t8 == 0) {
    0x00409ddc beqz t8, 0x409df0             |             goto label_0;
                                             |         }
    0x00409de0 nop                           |         
    0x00409de4 lw t8, 0x24(fp)               |         t8 = *(arg_24h);
                                             |         if (t8 != 0) {
    0x00409de8 bnez t8, 0x409e60             |             goto label_1;
                                             |         }
    0x00409dec nop                           |         
                                             |     }
                                             | label_0:
    0x00409df0 lw t8, -0x7e90(gp)            |     t8 = *((gp - 8100));
    0x00409df4 lw s0, (t8)                   |     s0 = *(t8);
    0x00409df8 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x00408fc0 */
    0x00409dfc addiu t8, t8, -0x7040         |     t8 += -0x7040;
    0x00409e00 move t9, t8                   |     t9 = t8;
    0x00409e04 jalr t9                       |     t9 ();
    0x00409e08 nop                           |     
    0x00409e0c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00409e10 move t8, v0                   |     t8 = v0;
    0x00409e14 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* str.tls_connect */
    0x00409e18 addiu v0, v0, 0x6f8           |     v0 += 0x6f8;
    0x00409e1c sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x00409e20 addiu v0, zero, 0x71          |     v0 = 0x71;
    0x00409e24 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x00409e28 move a0, s0                   |     a0 = s0;
    0x00409e2c lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x00409e30 addiu a1, v0, 0x5d0           |     a1 = v0 + 0x5d0;
    0x00409e34 move a2, t8                   |     a2 = t8;
    0x00409e38 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
    0x00409e3c addiu a3, t8, 0x260           |     a3 = t8 + 0x260;
    0x00409e40 lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fprintf
    0x00409e44 move t9, t8                   |     t9 = t8;
    0x00409e48 jalr t9                       |     t9 ();
    0x00409e4c nop                           |     
    0x00409e50 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00409e54 addiu t8, zero, -1            |     t8 = -1;
    0x00409e58 b 0x40a148                    |     goto label_2;
    0x00409e5c nop                           |     
                                             | label_1:
    0x00409e60 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x00409e64 lw t8, (t8)                   |     t8 = *(t8);
    0x00409e68 move a0, t8                   |     a0 = t8;
    0x00409e6c lw a1, 0x28(fp)               |     a1 = *(arg_28h);
    0x00409e70 lw a2, 0x24(fp)               |     a2 = *(arg_24h);
    0x00409e74 lw t8, -0x7fcc(gp)            |     t8 = sym.tcp_connect;
    0x00409e78 move t9, t8                   |     t9 = t8;
    0x00409e7c jalr t9                       |     t9 ();
    0x00409e80 nop                           |     
    0x00409e84 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00409e88 move t8, v0                   |     t8 = v0;
    0x00409e8c sltu t8, zero, t8             |     t8 = (0 < t8) ? 1 : 0;
    0x00409e90 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x00409e94 beqz t8, 0x409f0c             |         
    0x00409e98 nop                           |         
    0x00409e9c lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x00409ea0 lw s0, (t8)                   |         s0 = *(t8);
    0x00409ea4 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x00408fc0 */
    0x00409ea8 addiu t8, t8, -0x7040         |         t8 += -0x7040;
    0x00409eac move t9, t8                   |         t9 = t8;
    0x00409eb0 jalr t9                       |         t9 ();
    0x00409eb4 nop                           |         
    0x00409eb8 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00409ebc move t8, v0                   |         t8 = v0;
    0x00409ec0 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.tls_connect */
    0x00409ec4 addiu v0, v0, 0x6f8           |         v0 += 0x6f8;
    0x00409ec8 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x00409ecc addiu v0, zero, 0x74          |         v0 = 0x74;
    0x00409ed0 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x00409ed4 move a0, s0                   |         a0 = s0;
    0x00409ed8 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_tcp_connect___fail__n */
    0x00409edc addiu a1, v0, 0x5fc           |         a1 = v0 + 0x5fc;
    0x00409ee0 move a2, t8                   |         a2 = t8;
    0x00409ee4 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x00409ee8 addiu a3, t8, 0x260           |         a3 = t8 + 0x260;
    0x00409eec lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x00409ef0 move t9, t8                   |         t9 = t8;
    0x00409ef4 jalr t9                       |         t9 ();
    0x00409ef8 nop                           |         
    0x00409efc lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00409f00 addiu t8, zero, -1            |         t8 = -1;
    0x00409f04 b 0x40a148                    |         goto label_2;
    0x00409f08 nop                           |         
                                             |     }
    0x00409f0c lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x00409f10 lw v0, 8(t8)                  |     v0 = *((t8 + 2));
    0x00409f14 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x00409f18 lw t8, (t8)                   |     t8 = *(t8);
    0x00409f1c lw t8, (t8)                   |     t8 = *(t8);
    0x00409f20 move a0, v0                   |     a0 = v0;
    0x00409f24 move a1, t8                   |     a1 = t8;
    0x00409f28 lw t8, -0x7e88(gp)            |     t8 = sym.imp.SSL_set_fd;
    0x00409f2c move t9, t8                   |     t9 = t8;
    0x00409f30 jalr t9                       |     t9 ();
    0x00409f34 nop                           |     
    0x00409f38 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00409f3c sw zero, 0x34(fp)             |     *(arg_34h) = 0;
    0x00409f40 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x00409f44 lw t8, 8(t8)                  |     t8 = *((t8 + 2));
    0x00409f48 move a0, t8                   |     a0 = t8;
    0x00409f4c lw t8, -0x7e0c(gp)            |     t8 = sym.imp.SSL_connect;
    0x00409f50 move t9, t8                   |     t9 = t8;
    0x00409f54 jalr t9                       |     t9 ();
    0x00409f58 nop                           |     
    0x00409f5c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00409f60 move t8, v0                   |     t8 = v0;
    0x00409f64 sw t8, 0x38(fp)               |     *(arg_38h) = t8;
    0x00409f68 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x00409f6c lw t8, 8(t8)                  |     t8 = *((t8 + 2));
    0x00409f70 move a0, t8                   |     a0 = t8;
    0x00409f74 lw a1, 0x38(fp)               |     a1 = *(arg_38h);
    0x00409f78 lw t8, -0x7f30(gp)            |     t8 = sym.imp.SSL_get_error;
    0x00409f7c move t9, t8                   |     t9 = t8;
    0x00409f80 jalr t9                       |     t9 ();
    0x00409f84 nop                           |     
    0x00409f88 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00409f8c move t8, v0                   |     t8 = v0;
    0x00409f90 sltiu v0, t8, 8               |     v0 = (t8 < 8) ? 1 : 0;
                                             |     if (v0 != 0) {
    0x00409f94 beqz v0, 0x40a144             |         
    0x00409f98 nop                           |         
    0x00409f9c sll v0, t8, 2                 |         v0 = t8 << 2;
    0x00409fa0 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x00409fa4 addiu t8, t8, 0x6bc           |         t8 += 0x6bc;
    0x00409fa8 addu t8, v0, t8               |         t8 = v0 + t8;
    0x00409fac lw t8, (t8)                   |         t8 = *(t8);
    0x00409fb0 addu t8, t8, gp               |         t8 += gp;
    0x00409fb4 jr t8                         |         t8 ();
    0x00409fb8 nop                           |         
                                             |     }
    0x0040a144 lw t8, 0x34(fp)               |     t8 = *(arg_34h);
                                             | label_2:
    0x0040a148 move v0, t8                   |     v0 = t8;
    0x0040a14c lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040a150 lw v1, 0x3c(fp)               |     v1 = *(arg_3ch);
    0x0040a154 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040a158 beq v1, t8, 0x40a170          |         
    0x0040a15c nop                           |         
    0x0040a160 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040a164 move t9, t8                   |         t9 = t8;
    0x0040a168 jalr t9                       |         t9 ();
    0x0040a16c nop                           |         
                                             |     }
    0x0040a170 move sp, fp                   |     
    0x0040a174 lw ra, 0x4c(sp)               |     ra = *(var_4ch);
    0x0040a178 lw fp, 0x48(sp)               |     fp = *(var_48h);
    0x0040a17c lw s0, 0x44(sp)               |     s0 = *(var_44h);
    0x0040a180 addiu sp, sp, 0x50            |     
    0x0040a184 jr ra                         |     return v1;
    0x0040a188 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x409898 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.tls_create ()                | void tls_create () {
    0x00409898 lui gp, 2                     |     
    0x0040989c addiu gp, gp, 0x1788          |     
    0x004098a0 addu gp, gp, t9               |     gp += t9;
    0x004098a4 addiu sp, sp, -0x48           |     
    0x004098a8 sw ra, 0x44(sp)               |     *(var_44h) = ra;
    0x004098ac sw fp, 0x40(sp)               |     *(var_40h) = fp;
    0x004098b0 sw s0, 0x3c(sp)               |     *(var_3ch) = s0;
    0x004098b4 move fp, sp                   |     fp = sp;
    0x004098b8 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x004098bc sw a0, 0x24(fp)               |     *(arg_24h) = a0;
    0x004098c0 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x004098c4 lw t8, (t8)                   |     t8 = *(t8);
    0x004098c8 sw t8, 0x34(fp)               |     *(arg_34h) = t8;
    0x004098cc addiu a0, zero, 1             |     a0 = 1;
    0x004098d0 addiu a1, zero, 0xc           |     a1 = 0xc;
    0x004098d4 lw t8, -0x7e1c(gp)            |     t8 = sym.imp.calloc;
    0x004098d8 move t9, t8                   |     t9 = t8;
    0x004098dc jalr t9                       |     t9 ();
    0x004098e0 nop                           |     
    0x004098e4 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004098e8 move t8, v0                   |     t8 = v0;
    0x004098ec sw t8, 0x2c(fp)               |     *(arg_2ch) = t8;
    0x004098f0 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
                                             |     if (t8 == 0) {
    0x004098f4 bnez t8, 0x40996c             |         
    0x004098f8 nop                           |         
    0x004098fc lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x00409900 lw s0, (t8)                   |         s0 = *(t8);
    0x00409904 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x00408fc0 */
    0x00409908 addiu t8, t8, -0x7040         |         t8 += -0x7040;
    0x0040990c move t9, t8                   |         t9 = t8;
    0x00409910 jalr t9                       |         t9 ();
    0x00409914 nop                           |         
    0x00409918 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040991c move t8, v0                   |         t8 = v0;
    0x00409920 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.tls_create */
    0x00409924 addiu v0, v0, 0x6ec           |         v0 += 0x6ec;
    0x00409928 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0040992c addiu v0, zero, 0x41          |         v0 = 0x41;
    0x00409930 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x00409934 move a0, s0                   |         a0 = s0;
    0x00409938 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* esilref: '&s | &-18s | &-24s |&5d| calloc() fail!
' */
    0x0040993c addiu a1, v0, 0x4f4           |         a1 = v0 + 0x4f4;
    0x00409940 move a2, t8                   |         a2 = t8;
    0x00409944 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x00409948 addiu a3, t8, 0x260           |         a3 = t8 + 0x260;
    0x0040994c lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x00409950 move t9, t8                   |         t9 = t8;
    0x00409954 jalr t9                       |         t9 ();
    0x00409958 nop                           |         
    0x0040995c lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00409960 addiu t8, zero, -1            |         t8 = -1;
    0x00409964 b 0x409d4c                    |         goto label_0;
    0x00409968 nop                           |         
                                             |     }
    0x0040996c lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x00409970 move a0, t8                   |     a0 = t8;
    0x00409974 lw t8, -0x7fd4(gp)            |     t8 = sym.tcp_create;
    0x00409978 move t9, t8                   |     t9 = t8;
    0x0040997c jalr t9                       |     t9 ();
    0x00409980 nop                           |     
    0x00409984 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00409988 move t8, v0                   |     t8 = v0;
    0x0040998c sltu t8, zero, t8             |     t8 = (0 < t8) ? 1 : 0;
    0x00409990 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x00409994 beqz t8, 0x409a24             |         
    0x00409998 nop                           |         
    0x0040999c lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x004099a0 lw s0, (t8)                   |         s0 = *(t8);
    0x004099a4 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x00408fc0 */
    0x004099a8 addiu t8, t8, -0x7040         |         t8 += -0x7040;
    0x004099ac move t9, t8                   |         t9 = t8;
    0x004099b0 jalr t9                       |         t9 ();
    0x004099b4 nop                           |         
    0x004099b8 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x004099bc move t8, v0                   |         t8 = v0;
    0x004099c0 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.tls_create */
    0x004099c4 addiu v0, v0, 0x6ec           |         v0 += 0x6ec;
    0x004099c8 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x004099cc addiu v0, zero, 0x45          |         v0 = 0x45;
    0x004099d0 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x004099d4 move a0, s0                   |         a0 = s0;
    0x004099d8 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* esilref: '&s | &-18s | &-24s |&5d| tcp_create() fail!
' */
    0x004099dc addiu a1, v0, 0x520           |         a1 = v0 + 0x520;
    0x004099e0 move a2, t8                   |         a2 = t8;
    0x004099e4 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x004099e8 addiu a3, t8, 0x260           |         a3 = t8 + 0x260;
    0x004099ec lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x004099f0 move t9, t8                   |         t9 = t8;
    0x004099f4 jalr t9                       |         t9 ();
    0x004099f8 nop                           |         
    0x004099fc lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00409a00 lw a0, 0x2c(fp)               |         a0 = *(arg_2ch);
    0x00409a04 lw t8, -0x7fa4(gp)            |         t8 = sym.tls_destroy;
    0x00409a08 move t9, t8                   |         t9 = t8;
    0x00409a0c jalr t9                       |         t9 ();
    0x00409a10 nop                           |         
    0x00409a14 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00409a18 addiu t8, zero, -1            |         t8 = -1;
    0x00409a1c b 0x409d4c                    |         goto label_0;
    0x00409a20 nop                           |         
                                             |     }
    0x00409a24 sw zero, 0x28(fp)             |     *(arg_28h) = 0;
    0x00409a28 lw t8, -0x7ec8(gp)            |     t8 = sym.imp.SSL_library_init;
    0x00409a2c move t9, t8                   |     t9 = t8;
    0x00409a30 jalr t9                       |     t9 ();
    0x00409a34 nop                           |     
    0x00409a38 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00409a3c lw t8, -0x7ebc(gp)            |     t8 = sym.imp.SSLv23_client_method;
    0x00409a40 move t9, t8                   |     t9 = t8;
    0x00409a44 jalr t9                       |     t9 ();
    0x00409a48 nop                           |     
    0x00409a4c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00409a50 move t8, v0                   |     t8 = v0;
    0x00409a54 sw t8, 0x30(fp)               |     *(arg_30h) = t8;
    0x00409a58 lw t8, 0x30(fp)               |     t8 = *(arg_30h);
                                             |     if (t8 == 0) {
    0x00409a5c bnez t8, 0x409af8             |         
    0x00409a60 nop                           |         
    0x00409a64 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x00409a68 lw t8, (t8)                   |         t8 = *(t8);
    0x00409a6c move a0, t8                   |         a0 = t8;
    0x00409a70 lw t8, -0x7e14(gp)            |         t8 = sym.imp.ERR_print_errors_fp;
    0x00409a74 move t9, t8                   |         t9 = t8;
    0x00409a78 jalr t9                       |         t9 ();
    0x00409a7c nop                           |         
    0x00409a80 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00409a84 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x00409a88 lw s0, (t8)                   |         s0 = *(t8);
    0x00409a8c lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x00408fc0 */
    0x00409a90 addiu t8, t8, -0x7040         |         t8 += -0x7040;
    0x00409a94 move t9, t8                   |         t9 = t8;
    0x00409a98 jalr t9                       |         t9 ();
    0x00409a9c nop                           |         
    0x00409aa0 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00409aa4 move t8, v0                   |         t8 = v0;
    0x00409aa8 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.tls_create */
    0x00409aac addiu v0, v0, 0x6ec           |         v0 += 0x6ec;
    0x00409ab0 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x00409ab4 addiu v0, zero, 0x50          |         v0 = 0x50;
    0x00409ab8 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x00409abc move a0, s0                   |         a0 = s0;
    0x00409ac0 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_no_method._:__n */
    0x00409ac4 addiu a1, v0, 0x550           |         a1 = v0 + 0x550;
    0x00409ac8 move a2, t8                   |         a2 = t8;
    0x00409acc lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x00409ad0 addiu a3, t8, 0x260           |         a3 = t8 + 0x260;
    0x00409ad4 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x00409ad8 move t9, t8                   |         t9 = t8;
    0x00409adc jalr t9                       |         t9 ();
    0x00409ae0 nop                           |         
    0x00409ae4 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00409ae8 addiu t8, zero, -1            |         t8 = -1;
    0x00409aec sw t8, 0x28(fp)               |         *(arg_28h) = t8;
    0x00409af0 b 0x409d10                    |         goto label_1;
    0x00409af4 nop                           |         
                                             |     }
    0x00409af8 lw a0, 0x30(fp)               |     a0 = *(arg_30h);
    0x00409afc lw t8, -0x7e78(gp)            |     t8 = sym.imp.SSL_CTX_new;
    0x00409b00 move t9, t8                   |     t9 = t8;
    0x00409b04 jalr t9                       |     t9 ();
    0x00409b08 nop                           |     
    0x00409b0c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00409b10 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x00409b14 sw v0, 4(t8)                  |     *((t8 + 4)) = v0;
    0x00409b18 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x00409b1c lw t8, 4(t8)                  |     t8 = *((t8 + 1));
                                             |     if (t8 == 0) {
    0x00409b20 bnez t8, 0x409bbc             |         
    0x00409b24 nop                           |         
    0x00409b28 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x00409b2c lw t8, (t8)                   |         t8 = *(t8);
    0x00409b30 move a0, t8                   |         a0 = t8;
    0x00409b34 lw t8, -0x7e14(gp)            |         t8 = sym.imp.ERR_print_errors_fp;
    0x00409b38 move t9, t8                   |         t9 = t8;
    0x00409b3c jalr t9                       |         t9 ();
    0x00409b40 nop                           |         
    0x00409b44 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00409b48 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x00409b4c lw s0, (t8)                   |         s0 = *(t8);
    0x00409b50 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x00408fc0 */
    0x00409b54 addiu t8, t8, -0x7040         |         t8 += -0x7040;
    0x00409b58 move t9, t8                   |         t9 = t8;
    0x00409b5c jalr t9                       |         t9 ();
    0x00409b60 nop                           |         
    0x00409b64 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00409b68 move t8, v0                   |         t8 = v0;
    0x00409b6c lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.tls_create */
    0x00409b70 addiu v0, v0, 0x6ec           |         v0 += 0x6ec;
    0x00409b74 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x00409b78 addiu v0, zero, 0x54          |         v0 = 0x54;
    0x00409b7c sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x00409b80 move a0, s0                   |         a0 = s0;
    0x00409b84 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_no_context._:__n */
    0x00409b88 addiu a1, v0, 0x578           |         a1 = v0 + 0x578;
    0x00409b8c move a2, t8                   |         a2 = t8;
    0x00409b90 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x00409b94 addiu a3, t8, 0x260           |         a3 = t8 + 0x260;
    0x00409b98 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x00409b9c move t9, t8                   |         t9 = t8;
    0x00409ba0 jalr t9                       |         t9 ();
    0x00409ba4 nop                           |         
    0x00409ba8 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00409bac addiu t8, zero, -1            |         t8 = -1;
    0x00409bb0 sw t8, 0x28(fp)               |         *(arg_28h) = t8;
    0x00409bb4 b 0x409d10                    |         goto label_1;
    0x00409bb8 nop                           |         
                                             |     }
    0x00409bbc lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x00409bc0 lw t8, 4(t8)                  |     t8 = *((t8 + 1));
    0x00409bc4 move a0, t8                   |     a0 = t8;
    0x00409bc8 lw a1, -0x7f68(gp)            |     a1 = sym.apps_ssl_info_callback_ssl_st_const__int__int_;
    0x00409bcc lw t8, -0x7f04(gp)            |     t8 = sym.imp.SSL_CTX_set_info_callback;
    0x00409bd0 move t9, t8                   |     t9 = t8;
    0x00409bd4 jalr t9                       |     t9 ();
    0x00409bd8 nop                           |     
    0x00409bdc lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00409be0 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x00409be4 lw t8, 4(t8)                  |     t8 = *((t8 + 1));
    0x00409be8 move a0, t8                   |     a0 = t8;
    0x00409bec move a1, zero                 |     a1 = 0;
    0x00409bf0 lw t8, -0x7fd8(gp)            |     t8 = *((gp - 8182));
                                             |     /* aav.0x00409820 */
    0x00409bf4 addiu a2, t8, -0x67e0         |     a2 = t8 + -0x67e0;
    0x00409bf8 lw t8, -0x7e38(gp)            |     t8 = sym.imp.SSL_CTX_set_verify;
    0x00409bfc move t9, t8                   |     t9 = t8;
    0x00409c00 jalr t9                       |     t9 ();
    0x00409c04 nop                           |     
    0x00409c08 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00409c0c lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x00409c10 lw t8, 4(t8)                  |     t8 = *((t8 + 1));
    0x00409c14 move a0, t8                   |     a0 = t8;
    0x00409c18 addiu a1, zero, 0x20          |     a1 = 0x20;
    0x00409c1c lui t8, 0x9700                |     t8 = 0x97000000;
    0x00409c20 ori a2, t8, 0xbff             |     a2 = 0x97000bff;
    0x00409c24 move a3, zero                 |     a3 = 0;
    0x00409c28 lw t8, -0x7f18(gp)            |     t8 = sym.imp.SSL_CTX_ctrl;
    0x00409c2c move t9, t8                   |     t9 = t8;
    0x00409c30 jalr t9                       |     t9 ();
    0x00409c34 nop                           |     
    0x00409c38 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00409c3c lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x00409c40 lw t8, 4(t8)                  |     t8 = *((t8 + 1));
    0x00409c44 move a0, t8                   |     a0 = t8;
    0x00409c48 addiu a1, zero, 0x21          |     a1 = 0x21;
    0x00409c4c addiu a2, zero, 0x17          |     a2 = 0x17;
    0x00409c50 move a3, zero                 |     a3 = 0;
    0x00409c54 lw t8, -0x7f18(gp)            |     t8 = sym.imp.SSL_CTX_ctrl;
    0x00409c58 move t9, t8                   |     t9 = t8;
    0x00409c5c jalr t9                       |     t9 ();
    0x00409c60 nop                           |     
    0x00409c64 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00409c68 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x00409c6c lw t8, 4(t8)                  |     t8 = *((t8 + 1));
    0x00409c70 move a0, t8                   |     a0 = t8;
    0x00409c74 lw t8, -0x7ed8(gp)            |     t8 = sym.imp.SSL_new;
    0x00409c78 move t9, t8                   |     t9 = t8;
    0x00409c7c jalr t9                       |     t9 ();
    0x00409c80 nop                           |     
    0x00409c84 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00409c88 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x00409c8c sw v0, 8(t8)                  |     *((t8 + 8)) = v0;
    0x00409c90 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x00409c94 lw t8, 8(t8)                  |     t8 = *((t8 + 2));
                                             |     if (t8 == 0) {
    0x00409c98 bnez t8, 0x409d10             |         
    0x00409c9c nop                           |         
    0x00409ca0 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x00409ca4 lw s0, (t8)                   |         s0 = *(t8);
    0x00409ca8 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x00408fc0 */
    0x00409cac addiu t8, t8, -0x7040         |         t8 += -0x7040;
    0x00409cb0 move t9, t8                   |         t9 = t8;
    0x00409cb4 jalr t9                       |         t9 ();
    0x00409cb8 nop                           |         
    0x00409cbc lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00409cc0 move t8, v0                   |         t8 = v0;
    0x00409cc4 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.tls_create */
    0x00409cc8 addiu v0, v0, 0x6ec           |         v0 += 0x6ec;
    0x00409ccc sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x00409cd0 addiu v0, zero, 0x63          |         v0 = 0x63;
    0x00409cd4 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x00409cd8 move a0, s0                   |         a0 = s0;
    0x00409cdc lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str._s____18s____24s__5d_no_session._:__n */
    0x00409ce0 addiu a1, v0, 0x5a4           |         a1 = v0 + 0x5a4;
    0x00409ce4 move a2, t8                   |         a2 = t8;
    0x00409ce8 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x00409cec addiu a3, t8, 0x260           |         a3 = t8 + 0x260;
    0x00409cf0 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x00409cf4 move t9, t8                   |         t9 = t8;
    0x00409cf8 jalr t9                       |         t9 ();
    0x00409cfc nop                           |         
    0x00409d00 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00409d04 addiu t8, zero, -1            |         t8 = -1;
    0x00409d08 sw t8, 0x28(fp)               |         *(arg_28h) = t8;
    0x00409d0c nop                           |         
                                             |     }
                                             | label_1:
    0x00409d10 lw t8, 0x28(fp)               |     t8 = *(arg_28h);
                                             |     if (t8 != 0) {
    0x00409d14 beqz t8, 0x409d3c             |         
    0x00409d18 nop                           |         
    0x00409d1c lw a0, 0x2c(fp)               |         a0 = *(arg_2ch);
    0x00409d20 lw t8, -0x7fa4(gp)            |         t8 = sym.tls_destroy;
    0x00409d24 move t9, t8                   |         t9 = t8;
    0x00409d28 jalr t9                       |         t9 ();
    0x00409d2c nop                           |         
    0x00409d30 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00409d34 b 0x409d48                    |         goto label_2;
    0x00409d38 nop                           |         
                                             |     }
    0x00409d3c lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x00409d40 lw v0, 0x2c(fp)               |     v0 = *(arg_2ch);
    0x00409d44 sw v0, (t8)                   |     *(t8) = v0;
                                             | label_2:
    0x00409d48 lw t8, 0x28(fp)               |     t8 = *(arg_28h);
                                             | label_0:
    0x00409d4c move v0, t8                   |     v0 = t8;
    0x00409d50 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x00409d54 lw v1, 0x34(fp)               |     v1 = *(arg_34h);
    0x00409d58 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x00409d5c beq v1, t8, 0x409d74          |         
    0x00409d60 nop                           |         
    0x00409d64 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x00409d68 move t9, t8                   |         t9 = t8;
    0x00409d6c jalr t9                       |         t9 ();
    0x00409d70 nop                           |         
                                             |     }
    0x00409d74 move sp, fp                   |     
    0x00409d78 lw ra, 0x44(sp)               |     ra = *(var_44h);
    0x00409d7c lw fp, 0x40(sp)               |     fp = *(var_40h);
    0x00409d80 lw s0, 0x3c(sp)               |     s0 = *(var_3ch);
    0x00409d84 addiu sp, sp, 0x48            |     
    0x00409d88 jr ra                         |     return v1;
    0x00409d8c nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40a2d4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.tls_destroy ()               | void tls_destroy () {
    0x0040a2d4 lui gp, 2                     |     
    0x0040a2d8 addiu gp, gp, 0xd4c           |     
    0x0040a2dc addu gp, gp, t9               |     gp += t9;
    0x0040a2e0 addiu sp, sp, -0x40           |     
    0x0040a2e4 sw ra, 0x3c(sp)               |     *(var_3ch) = ra;
    0x0040a2e8 sw fp, 0x38(sp)               |     *(var_38h) = fp;
    0x0040a2ec sw s0, 0x34(sp)               |     *(var_34h) = s0;
    0x0040a2f0 move fp, sp                   |     fp = sp;
    0x0040a2f4 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0040a2f8 sw a0, 0x24(fp)               |     *(arg_24h) = a0;
    0x0040a2fc lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040a300 lw t8, (t8)                   |     t8 = *(t8);
    0x0040a304 sw t8, 0x2c(fp)               |     *(arg_2ch) = t8;
    0x0040a308 lw t8, 0x24(fp)               |     t8 = *(arg_24h);
                                             |     if (t8 == 0) {
    0x0040a30c bnez t8, 0x40a384             |         
    0x0040a310 nop                           |         
    0x0040a314 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040a318 lw s0, (t8)                   |         s0 = *(t8);
    0x0040a31c lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x00408fc0 */
    0x0040a320 addiu t8, t8, -0x7040         |         t8 += -0x7040;
    0x0040a324 move t9, t8                   |         t9 = t8;
    0x0040a328 jalr t9                       |         t9 ();
    0x0040a32c nop                           |         
    0x0040a330 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040a334 move t8, v0                   |         t8 = v0;
    0x0040a338 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.tls_destroy */
    0x0040a33c addiu v0, v0, 0x714           |         v0 += 0x714;
    0x0040a340 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0040a344 addiu v0, zero, 0xb0          |         v0 = 0xb0;
    0x0040a348 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x0040a34c move a0, s0                   |         a0 = s0;
    0x0040a350 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x0040a354 addiu a1, v0, 0x5d0           |         a1 = v0 + 0x5d0;
    0x0040a358 move a2, t8                   |         a2 = t8;
    0x0040a35c lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x0040a360 addiu a3, t8, 0x260           |         a3 = t8 + 0x260;
    0x0040a364 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040a368 move t9, t8                   |         t9 = t8;
    0x0040a36c jalr t9                       |         t9 ();
    0x0040a370 nop                           |         
    0x0040a374 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040a378 addiu t8, zero, -1            |         t8 = -1;
    0x0040a37c b 0x40a448                    |         goto label_0;
    0x0040a380 nop                           |         
                                             |     }
    0x0040a384 lw a0, 0x24(fp)               |     a0 = *(arg_24h);
    0x0040a388 lw t8, -0x7fa8(gp)            |     t8 = sym.tls_disconnect;
    0x0040a38c move t9, t8                   |     t9 = t8;
    0x0040a390 jalr t9                       |     t9 ();
    0x0040a394 nop                           |     
    0x0040a398 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040a39c lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x0040a3a0 lw t8, 8(t8)                  |     t8 = *((t8 + 2));
                                             |     if (t8 != 0) {
    0x0040a3a4 beqz t8, 0x40a3cc             |         
    0x0040a3a8 nop                           |         
    0x0040a3ac lw t8, 0x24(fp)               |         t8 = *(arg_24h);
    0x0040a3b0 lw t8, 8(t8)                  |         t8 = *((t8 + 2));
    0x0040a3b4 move a0, t8                   |         a0 = t8;
    0x0040a3b8 lw t8, -0x7e4c(gp)            |         t8 = sym.imp.SSL_free;
    0x0040a3bc move t9, t8                   |         t9 = t8;
    0x0040a3c0 jalr t9                       |         t9 ();
    0x0040a3c4 nop                           |         
    0x0040a3c8 lw gp, 0x18(fp)               |         gp = *(arg_18h);
                                             |     }
    0x0040a3cc lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x0040a3d0 lw t8, 4(t8)                  |     t8 = *((t8 + 1));
                                             |     if (t8 != 0) {
    0x0040a3d4 beqz t8, 0x40a3fc             |         
    0x0040a3d8 nop                           |         
    0x0040a3dc lw t8, 0x24(fp)               |         t8 = *(arg_24h);
    0x0040a3e0 lw t8, 4(t8)                  |         t8 = *((t8 + 1));
    0x0040a3e4 move a0, t8                   |         a0 = t8;
    0x0040a3e8 lw t8, -0x7f38(gp)            |         t8 = sym.imp.SSL_CTX_free;
    0x0040a3ec move t9, t8                   |         t9 = t8;
    0x0040a3f0 jalr t9                       |         t9 ();
    0x0040a3f4 nop                           |         
    0x0040a3f8 lw gp, 0x18(fp)               |         gp = *(arg_18h);
                                             |     }
    0x0040a3fc lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x0040a400 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (t8 != 0) {
    0x0040a404 beqz t8, 0x40a42c             |         
    0x0040a408 nop                           |         
    0x0040a40c lw t8, 0x24(fp)               |         t8 = *(arg_24h);
    0x0040a410 lw t8, (t8)                   |         t8 = *(t8);
    0x0040a414 move a0, t8                   |         a0 = t8;
    0x0040a418 lw t8, -0x7fbc(gp)            |         t8 = sym.tcp_destroy;
    0x0040a41c move t9, t8                   |         t9 = t8;
    0x0040a420 jalr t9                       |         t9 ();
    0x0040a424 nop                           |         
    0x0040a428 lw gp, 0x18(fp)               |         gp = *(arg_18h);
                                             |     }
    0x0040a42c lw a0, 0x24(fp)               |     a0 = *(arg_24h);
    0x0040a430 lw t8, -0x7f0c(gp)            |     t8 = sym.imp.free;
    0x0040a434 move t9, t8                   |     t9 = t8;
    0x0040a438 jalr t9                       |     t9 ();
    0x0040a43c nop                           |     
    0x0040a440 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040a444 move t8, zero                 |     t8 = 0;
                                             | label_0:
    0x0040a448 move v0, t8                   |     v0 = t8;
    0x0040a44c lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040a450 lw v1, 0x2c(fp)               |     v1 = *(arg_2ch);
    0x0040a454 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040a458 beq v1, t8, 0x40a470          |         
    0x0040a45c nop                           |         
    0x0040a460 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040a464 move t9, t8                   |         t9 = t8;
    0x0040a468 jalr t9                       |         t9 ();
    0x0040a46c nop                           |         
                                             |     }
    0x0040a470 move sp, fp                   |     
    0x0040a474 lw ra, 0x3c(sp)               |     ra = *(var_3ch);
    0x0040a478 lw fp, 0x38(sp)               |     fp = *(var_38h);
    0x0040a47c lw s0, 0x34(sp)               |     s0 = *(var_34h);
    0x0040a480 addiu sp, sp, 0x40            |     
    0x0040a484 jr ra                         |     return v1;
    0x0040a488 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40a18c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.tls_disconnect ()            | void tls_disconnect () {
    0x0040a18c lui gp, 2                     |     
    0x0040a190 addiu gp, gp, 0xe94           |     
    0x0040a194 addu gp, gp, t9               |     gp += t9;
    0x0040a198 addiu sp, sp, -0x40           |     
    0x0040a19c sw ra, 0x3c(sp)               |     *(var_3ch) = ra;
    0x0040a1a0 sw fp, 0x38(sp)               |     *(var_38h) = fp;
    0x0040a1a4 sw s0, 0x34(sp)               |     *(var_34h) = s0;
    0x0040a1a8 move fp, sp                   |     fp = sp;
    0x0040a1ac sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0040a1b0 sw a0, 0x24(fp)               |     *(arg_24h) = a0;
    0x0040a1b4 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040a1b8 lw t8, (t8)                   |     t8 = *(t8);
    0x0040a1bc sw t8, 0x2c(fp)               |     *(arg_2ch) = t8;
    0x0040a1c0 lw t8, 0x24(fp)               |     t8 = *(arg_24h);
                                             |     if (t8 == 0) {
    0x0040a1c4 bnez t8, 0x40a23c             |         
    0x0040a1c8 nop                           |         
    0x0040a1cc lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040a1d0 lw s0, (t8)                   |         s0 = *(t8);
    0x0040a1d4 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x00408fc0 */
    0x0040a1d8 addiu t8, t8, -0x7040         |         t8 += -0x7040;
    0x0040a1dc move t9, t8                   |         t9 = t8;
    0x0040a1e0 jalr t9                       |         t9 ();
    0x0040a1e4 nop                           |         
    0x0040a1e8 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040a1ec move t8, v0                   |         t8 = v0;
    0x0040a1f0 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.tls_disconnect */
    0x0040a1f4 addiu v0, v0, 0x704           |         v0 += 0x704;
    0x0040a1f8 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0040a1fc addiu v0, zero, 0xa6          |         v0 = 0xa6;
    0x0040a200 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x0040a204 move a0, s0                   |         a0 = s0;
    0x0040a208 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x0040a20c addiu a1, v0, 0x5d0           |         a1 = v0 + 0x5d0;
    0x0040a210 move a2, t8                   |         a2 = t8;
    0x0040a214 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x0040a218 addiu a3, t8, 0x260           |         a3 = t8 + 0x260;
    0x0040a21c lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040a220 move t9, t8                   |         t9 = t8;
    0x0040a224 jalr t9                       |         t9 ();
    0x0040a228 nop                           |         
    0x0040a22c lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040a230 addiu t8, zero, -1            |         t8 = -1;
    0x0040a234 b 0x40a290                    |         goto label_0;
    0x0040a238 nop                           |         
                                             |     }
    0x0040a23c lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x0040a240 lw t8, 8(t8)                  |     t8 = *((t8 + 2));
                                             |     if (t8 != 0) {
    0x0040a244 beqz t8, 0x40a26c             |         
    0x0040a248 nop                           |         
    0x0040a24c lw t8, 0x24(fp)               |         t8 = *(arg_24h);
    0x0040a250 lw t8, 8(t8)                  |         t8 = *((t8 + 2));
    0x0040a254 move a0, t8                   |         a0 = t8;
    0x0040a258 lw t8, -0x7ef8(gp)            |         t8 = sym.imp.SSL_shutdown;
    0x0040a25c move t9, t8                   |         t9 = t8;
    0x0040a260 jalr t9                       |         t9 ();
    0x0040a264 nop                           |         
    0x0040a268 lw gp, 0x18(fp)               |         gp = *(arg_18h);
                                             |     }
    0x0040a26c lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x0040a270 lw t8, (t8)                   |     t8 = *(t8);
    0x0040a274 move a0, t8                   |     a0 = t8;
    0x0040a278 lw t8, -0x7fc0(gp)            |     t8 = sym.tcp_disconnect;
    0x0040a27c move t9, t8                   |     t9 = t8;
    0x0040a280 jalr t9                       |     t9 ();
    0x0040a284 nop                           |     
    0x0040a288 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040a28c move t8, zero                 |     t8 = 0;
                                             | label_0:
    0x0040a290 move v0, t8                   |     v0 = t8;
    0x0040a294 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040a298 lw v1, 0x2c(fp)               |     v1 = *(arg_2ch);
    0x0040a29c lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040a2a0 beq v1, t8, 0x40a2b8          |         
    0x0040a2a4 nop                           |         
    0x0040a2a8 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040a2ac move t9, t8                   |         t9 = t8;
    0x0040a2b0 jalr t9                       |         t9 ();
    0x0040a2b4 nop                           |         
                                             |     }
    0x0040a2b8 move sp, fp                   |     
    0x0040a2bc lw ra, 0x3c(sp)               |     ra = *(var_3ch);
    0x0040a2c0 lw fp, 0x38(sp)               |     fp = *(var_38h);
    0x0040a2c4 lw s0, 0x34(sp)               |     s0 = *(var_34h);
    0x0040a2c8 addiu sp, sp, 0x40            |     
    0x0040a2cc jr ra                         |     return v1;
    0x0040a2d0 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40a48c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.tls_read ()                  | void tls_read () {
    0x0040a48c lui gp, 2                     |     
    0x0040a490 addiu gp, gp, 0xb94           |     
    0x0040a494 addu gp, gp, t9               |     gp += t9;
    0x0040a498 addiu sp, sp, -0x48           |     
    0x0040a49c sw ra, 0x44(sp)               |     *(var_44h) = ra;
    0x0040a4a0 sw fp, 0x40(sp)               |     *(var_40h) = fp;
    0x0040a4a4 sw s0, 0x3c(sp)               |     *(var_3ch) = s0;
    0x0040a4a8 move fp, sp                   |     fp = sp;
    0x0040a4ac sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0040a4b0 sw a0, 0x2c(fp)               |     *(arg_2ch) = a0;
    0x0040a4b4 sw a1, 0x28(fp)               |     *(arg_28h) = a1;
    0x0040a4b8 sw a2, 0x24(fp)               |     *(arg_24h) = a2;
    0x0040a4bc lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040a4c0 lw t8, (t8)                   |     t8 = *(t8);
    0x0040a4c4 sw t8, 0x34(fp)               |     *(arg_34h) = t8;
    0x0040a4c8 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
                                             |     if (t8 == 0) {
    0x0040a4cc bnez t8, 0x40a544             |         
    0x0040a4d0 nop                           |         
    0x0040a4d4 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040a4d8 lw s0, (t8)                   |         s0 = *(t8);
    0x0040a4dc lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x00408fc0 */
    0x0040a4e0 addiu t8, t8, -0x7040         |         t8 += -0x7040;
    0x0040a4e4 move t9, t8                   |         t9 = t8;
    0x0040a4e8 jalr t9                       |         t9 ();
    0x0040a4ec nop                           |         
    0x0040a4f0 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040a4f4 move t8, v0                   |         t8 = v0;
    0x0040a4f8 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.tls_read */
    0x0040a4fc addiu v0, v0, 0x720           |         v0 += 0x720;
    0x0040a500 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0040a504 addiu v0, zero, 0xbe          |         v0 = 0xbe;
    0x0040a508 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x0040a50c move a0, s0                   |         a0 = s0;
    0x0040a510 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x0040a514 addiu a1, v0, 0x5d0           |         a1 = v0 + 0x5d0;
    0x0040a518 move a2, t8                   |         a2 = t8;
    0x0040a51c lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x0040a520 addiu a3, t8, 0x260           |         a3 = t8 + 0x260;
    0x0040a524 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040a528 move t9, t8                   |         t9 = t8;
    0x0040a52c jalr t9                       |         t9 ();
    0x0040a530 nop                           |         
    0x0040a534 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040a538 addiu t8, zero, -1            |         t8 = -1;
    0x0040a53c b 0x40a5fc                    |         goto label_0;
    0x0040a540 nop                           |         
                                             |     }
    0x0040a544 lw a0, 0x28(fp)               |     a0 = *(arg_28h);
    0x0040a548 move a1, zero                 |     a1 = 0;
    0x0040a54c lw a2, 0x24(fp)               |     a2 = *(arg_24h);
    0x0040a550 lw t8, -0x7ecc(gp)            |     t8 = sym.imp.memset;
    0x0040a554 move t9, t8                   |     t9 = t8;
    0x0040a558 jalr t9                       |     t9 ();
    0x0040a55c nop                           |     
    0x0040a560 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040a564 lw t8, -0x7e58(gp)            |     t8 = sym.imp.ERR_clear_error;
    0x0040a568 move t9, t8                   |     t9 = t8;
    0x0040a56c jalr t9                       |     t9 ();
    0x0040a570 nop                           |     
    0x0040a574 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040a578 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x0040a57c lw v0, 8(t8)                  |     v0 = *((t8 + 2));
    0x0040a580 lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x0040a584 move a0, v0                   |     a0 = v0;
    0x0040a588 lw a1, 0x28(fp)               |     a1 = *(arg_28h);
    0x0040a58c move a2, t8                   |     a2 = t8;
    0x0040a590 lw t8, -0x7e80(gp)            |     t8 = sym.imp.SSL_read;
    0x0040a594 move t9, t8                   |     t9 = t8;
    0x0040a598 jalr t9                       |     t9 ();
    0x0040a59c nop                           |     
    0x0040a5a0 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040a5a4 move t8, v0                   |     t8 = v0;
    0x0040a5a8 sw t8, 0x30(fp)               |     *(arg_30h) = t8;
    0x0040a5ac lw t8, 0x30(fp)               |     t8 = *(arg_30h);
                                             |     if (t8 == 0) {
    0x0040a5b0 bnez t8, 0x40a5f8             |         
    0x0040a5b4 nop                           |         
    0x0040a5b8 lw t8, 0x2c(fp)               |         t8 = *(arg_2ch);
    0x0040a5bc lw v0, 8(t8)                  |         v0 = *((t8 + 2));
    0x0040a5c0 lw t8, 0x30(fp)               |         t8 = *(arg_30h);
    0x0040a5c4 move a0, v0                   |         a0 = v0;
    0x0040a5c8 move a1, t8                   |         a1 = t8;
    0x0040a5cc lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040909c */
    0x0040a5d0 addiu t8, t8, -0x6f64         |         t8 += -0x6f64;
    0x0040a5d4 move t9, t8                   |         t9 = t8;
    0x0040a5d8 jalr t9                       |         t9 ();
    0x0040a5dc nop                           |         
    0x0040a5e0 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040a5e4 lw t8, -0x7e58(gp)            |         t8 = sym.imp.ERR_clear_error;
    0x0040a5e8 move t9, t8                   |         t9 = t8;
    0x0040a5ec jalr t9                       |         t9 ();
    0x0040a5f0 nop                           |         
    0x0040a5f4 lw gp, 0x18(fp)               |         gp = *(arg_18h);
                                             |     }
    0x0040a5f8 lw t8, 0x30(fp)               |     t8 = *(arg_30h);
                                             | label_0:
    0x0040a5fc move v0, t8                   |     v0 = t8;
    0x0040a600 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040a604 lw v1, 0x34(fp)               |     v1 = *(arg_34h);
    0x0040a608 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040a60c beq v1, t8, 0x40a624          |         
    0x0040a610 nop                           |         
    0x0040a614 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040a618 move t9, t8                   |         t9 = t8;
    0x0040a61c jalr t9                       |         t9 ();
    0x0040a620 nop                           |         
                                             |     }
    0x0040a624 move sp, fp                   |     
    0x0040a628 lw ra, 0x44(sp)               |     ra = *(var_44h);
    0x0040a62c lw fp, 0x40(sp)               |     fp = *(var_40h);
    0x0040a630 lw s0, 0x3c(sp)               |     s0 = *(var_3ch);
    0x0040a634 addiu sp, sp, 0x48            |     
    0x0040a638 jr ra                         |     return v1;
    0x0040a63c nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/bin/stream_proxy @ 0x40a640 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.tls_write ()                 | void tls_write () {
    0x0040a640 lui gp, 2                     |     
    0x0040a644 addiu gp, gp, 0x9e0           |     
    0x0040a648 addu gp, gp, t9               |     gp += t9;
    0x0040a64c addiu sp, sp, -0x48           |     
    0x0040a650 sw ra, 0x44(sp)               |     *(var_44h) = ra;
    0x0040a654 sw fp, 0x40(sp)               |     *(var_40h) = fp;
    0x0040a658 sw s0, 0x3c(sp)               |     *(var_3ch) = s0;
    0x0040a65c move fp, sp                   |     fp = sp;
    0x0040a660 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0040a664 sw a0, 0x2c(fp)               |     *(arg_2ch) = a0;
    0x0040a668 sw a1, 0x28(fp)               |     *(arg_28h) = a1;
    0x0040a66c sw a2, 0x24(fp)               |     *(arg_24h) = a2;
    0x0040a670 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040a674 lw t8, (t8)                   |     t8 = *(t8);
    0x0040a678 sw t8, 0x34(fp)               |     *(arg_34h) = t8;
    0x0040a67c lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
                                             |     if (t8 == 0) {
    0x0040a680 bnez t8, 0x40a6f8             |         
    0x0040a684 nop                           |         
    0x0040a688 lw t8, -0x7e90(gp)            |         t8 = *((gp - 8100));
    0x0040a68c lw s0, (t8)                   |         s0 = *(t8);
    0x0040a690 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x00408fc0 */
    0x0040a694 addiu t8, t8, -0x7040         |         t8 += -0x7040;
    0x0040a698 move t9, t8                   |         t9 = t8;
    0x0040a69c jalr t9                       |         t9 ();
    0x0040a6a0 nop                           |         
    0x0040a6a4 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040a6a8 move t8, v0                   |         t8 = v0;
    0x0040a6ac lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* str.tls_write */
    0x0040a6b0 addiu v0, v0, 0x72c           |         v0 += 0x72c;
    0x0040a6b4 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0040a6b8 addiu v0, zero, 0xcd          |         v0 = 0xcd;
    0x0040a6bc sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x0040a6c0 move a0, s0                   |         a0 = s0;
    0x0040a6c4 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
                                             |         /* esilref: '&s | &-18s | &-24s |&5d| NULL parameter!
' */
    0x0040a6c8 addiu a1, v0, 0x5d0           |         a1 = v0 + 0x5d0;
    0x0040a6cc move a2, t8                   |         a2 = t8;
    0x0040a6d0 lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
    0x0040a6d4 addiu a3, t8, 0x260           |         a3 = t8 + 0x260;
    0x0040a6d8 lw t8, -0x7ee0(gp)            |         t8 = sym.imp.fprintf
    0x0040a6dc move t9, t8                   |         t9 = t8;
    0x0040a6e0 jalr t9                       |         t9 ();
    0x0040a6e4 nop                           |         
    0x0040a6e8 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040a6ec addiu t8, zero, -1            |         t8 = -1;
    0x0040a6f0 b 0x40a78c                    |         goto label_0;
    0x0040a6f4 nop                           |         
                                             |     }
    0x0040a6f8 lw t8, -0x7e58(gp)            |     t8 = sym.imp.ERR_clear_error;
    0x0040a6fc move t9, t8                   |     t9 = t8;
    0x0040a700 jalr t9                       |     t9 ();
    0x0040a704 nop                           |     
    0x0040a708 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040a70c lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x0040a710 lw v0, 8(t8)                  |     v0 = *((t8 + 2));
    0x0040a714 lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x0040a718 move a0, v0                   |     a0 = v0;
    0x0040a71c lw a1, 0x28(fp)               |     a1 = *(arg_28h);
    0x0040a720 move a2, t8                   |     a2 = t8;
    0x0040a724 lw t8, -0x7edc(gp)            |     t8 = sym.imp.SSL_write;
    0x0040a728 move t9, t8                   |     t9 = t8;
    0x0040a72c jalr t9                       |     t9 ();
    0x0040a730 nop                           |     
    0x0040a734 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040a738 move t8, v0                   |     t8 = v0;
    0x0040a73c sw t8, 0x30(fp)               |     *(arg_30h) = t8;
    0x0040a740 lw t8, 0x30(fp)               |     t8 = *(arg_30h);
                                             |     if (t8 <= 0) {
    0x0040a744 bgtz t8, 0x40a788             |         
    0x0040a748 nop                           |         
    0x0040a74c lw t8, 0x2c(fp)               |         t8 = *(arg_2ch);
    0x0040a750 lw t8, 8(t8)                  |         t8 = *((t8 + 2));
    0x0040a754 move a0, t8                   |         a0 = t8;
    0x0040a758 lw a1, 0x30(fp)               |         a1 = *(arg_30h);
    0x0040a75c lw t8, -0x7fd8(gp)            |         t8 = *((gp - 8182));
                                             |         /* aav.0x0040909c */
    0x0040a760 addiu t8, t8, -0x6f64         |         t8 += -0x6f64;
    0x0040a764 move t9, t8                   |         t9 = t8;
    0x0040a768 jalr t9                       |         t9 ();
    0x0040a76c nop                           |         
    0x0040a770 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040a774 lw t8, -0x7e58(gp)            |         t8 = sym.imp.ERR_clear_error;
    0x0040a778 move t9, t8                   |         t9 = t8;
    0x0040a77c jalr t9                       |         t9 ();
    0x0040a780 nop                           |         
    0x0040a784 lw gp, 0x18(fp)               |         gp = *(arg_18h);
                                             |     }
    0x0040a788 lw t8, 0x30(fp)               |     t8 = *(arg_30h);
                                             | label_0:
    0x0040a78c move v0, t8                   |     v0 = t8;
    0x0040a790 lw t8, -0x7e24(gp)            |     t8 = *((gp - 8073));
    0x0040a794 lw v1, 0x34(fp)               |     v1 = *(arg_34h);
    0x0040a798 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x0040a79c beq v1, t8, 0x40a7b4          |         
    0x0040a7a0 nop                           |         
    0x0040a7a4 lw t8, -0x7e84(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x0040a7a8 move t9, t8                   |         t9 = t8;
    0x0040a7ac jalr t9                       |         t9 ();
    0x0040a7b0 nop                           |         
                                             |     }
    0x0040a7b4 move sp, fp                   |     
    0x0040a7b8 lw ra, 0x44(sp)               |     ra = *(var_44h);
    0x0040a7bc lw fp, 0x40(sp)               |     fp = *(var_40h);
    0x0040a7c0 lw s0, 0x3c(sp)               |     s0 = *(var_3ch);
    0x0040a7c4 addiu sp, sp, 0x48            |     
    0x0040a7c8 jr ra                         |     return v1;
    0x0040a7cc nop                           |     
                                             | }

[*] Function fprintf used 108 times stream_proxy