[*] Binary protection state of stream_proxy
Full RELRO Canary found NX disabled No PIE No RPATH No RUNPATH No Symbols
[*] Function printf 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 printf used 109 times stream_proxy