[*] Binary protection state of wsdd

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


[*] Function strcat tear down of wsdd

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/wsdd @ 0x88d8 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000088d8 ()              | void fcn_000088d8 () {
    0x000088d8 lui gp, 4                 |     
    0x000088dc addiu gp, gp, -0x77f8     |     
    0x000088e0 addu gp, gp, t9           |     gp += t9;
    0x000088e4 lw v0, -0x774c(gp)        |     v0 = *((gp - 7635));
    0x000088e8 addiu sp, sp, -0x180      |     
    0x000088ec lw t9, -0x79ac(gp)        |     t9 = sym.imp.soap_new;
    0x000088f0 sw v0, 0x28(sp)           |     *(var_28h) = v0;
    0x000088f4 lw v0, (v0)               |     v0 = *(v0);
    0x000088f8 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x000088fc sw s2, 0x160(sp)          |     *(var_160h) = s2;
    0x00008900 sw ra, 0x17c(sp)          |     *(var_17ch) = ra;
    0x00008904 sw fp, 0x178(sp)          |     *(var_178h) = fp;
    0x00008908 sw s7, 0x174(sp)          |     *(var_174h) = s7;
    0x0000890c sw s6, 0x170(sp)          |     *(var_170h) = s6;
    0x00008910 sw s5, 0x16c(sp)          |     *(var_16ch) = s5;
    0x00008914 sw s4, 0x168(sp)          |     *(var_168h) = s4;
    0x00008918 sw s3, 0x164(sp)          |     *(var_164h) = s3;
    0x0000891c sw s1, 0x15c(sp)          |     *(var_15ch) = s1;
    0x00008920 sw s0, 0x158(sp)          |     *(var_158h) = s0;
    0x00008924 sw v0, 0x154(sp)          |     *(var_154h) = v0;
    0x00008928 move s2, a0               |     s2 = a0;
    0x0000892c jalr t9                   |     t9 ();
    0x00008930 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00008934 beqz v0, 0x9018           |         goto label_7;
                                         |     }
    0x00008938 lw t9, -0x7a2c(gp)        |     t9 = sym.imp.soap_init1;
    0x0000893c move a0, v0               |     a0 = v0;
    0x00008940 addiu a1, zero, 4         |     a1 = 4;
    0x00008944 move s3, v0               |     s3 = v0;
    0x00008948 jalr t9                   |     t9 ();
    0x0000894c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008950 move a2, zero             |     a2 = 0;
    0x00008954 lw t9, -0x7974(gp)        |     t9 = sym.imp.soap_register_plugin_arg;
    0x00008958 lw a1, -0x7fac(gp)        |     a1 = sym.soap_wsa;
    0x0000895c move a0, s3               |     a0 = s3;
    0x00008960 jalr t9                   |     t9 ();
    0x00008964 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008968 addiu v0, zero, 4         |     v0 = 4;
    0x0000896c sw v0, 0x48(s3)           |     *((s3 + 18)) = v0;
    0x00008970 lw t9, -0x77f0(gp)        |     t9 = sym.imp.soap_set_namespaces;
    0x00008974 lw a1, -0x7fa8(gp)        |     a1 = *(gp);
    0x00008978 move a0, s3               |     a0 = s3;
    0x0000897c jalr t9                   |     t9 ();
    0x00008980 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00008984 bnez v0, 0x8fc8           |         goto label_8;
                                         |     }
    0x00008988 lw t9, -0x78d8(gp)        |     t9 = sym.imp.strchr;
    0x0000898c addiu a1, zero, 0x3a      |     a1 = 0x3a;
    0x00008990 move a0, s2               |     a0 = s2;
    0x00008994 jalr t9                   |     t9 ();
    0x00008998 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x0000899c beqz v0, 0x8ba0           |         goto label_9;
                                         |     }
    0x000089a0 lw t9, -0x7968(gp)        |     t9 = sym.imp.inet_pton;
    0x000089a4 addiu a2, sp, 0x40        |     a2 = sp + 0x40;
    0x000089a8 move a1, s2               |     a1 = s2;
    0x000089ac addiu a0, zero, 0xa       |     a0 = 0xa;
    0x000089b0 jalr t9                   |     t9 ();
    0x000089b4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000089b8 lw t9, -0x77e0(gp)        |     t9 = sym.imp.strlen;
    0x000089bc move a0, s2               |     a0 = s2;
    0x000089c0 jalr t9                   |     t9 ();
    0x000089c4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000089c8 lw t9, -0x7858(gp)        |     t9 = sym.imp.g_malloc;
    0x000089cc addiu a0, v0, 0x12        |     a0 = v0 + 0x12;
    0x000089d0 jalr t9                   |     t9 ();
    0x000089d4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000089d8 move a0, v0               |     a0 = v0;
    0x000089dc move a1, s2               |     a1 = s2;
    0x000089e0 lw t9, -0x79f4(gp)        |     t9 = sym.imp.stpcpy;
    0x000089e4 move s0, v0               |     s0 = v0;
    0x000089e8 jalr t9                   |     t9 ();
    0x000089ec lbu a0, 0x40(sp)          |     a0 = *(var_40h);
    0x000089f0 addiu v1, zero, 0xff      |     v1 = 0xff;
    0x000089f4 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (a0 == v1) {
    0x000089f8 beq a0, v1, 0x8b64        |         goto label_10;
                                         |     }
    0x000089fc lw v1, 0x40(sp)           |     v1 = *(var_40h);
    0x00008a00 ori a0, zero, 0x80fe      |     a0 = 0x80fe;
    0x00008a04 andi v1, v1, 0xc0ff       |     v1 &= 0xc0ff;
    0x00008a08 lw t9, -0x7fa4(gp)        |     t9 = sym.config_get_active_interface;
    0x00008a0c beq v1, a0, 0x8b68        |     
                                         |     while (1) {
                                         | label_3:
    0x00008a10 lw t9, -0x7af4(gp)        |         t9 = sym.imp.soap_bind;
    0x00008a14 addiu a3, zero, 0x64      |         a3 = 0x64;
    0x00008a18 addiu a2, zero, 0xe76     |         a2 = 0xe76;
    0x00008a1c move a1, s0               |         a1 = s0;
    0x00008a20 move a0, s3               |         a0 = s3;
    0x00008a24 jalr t9                   |         t9 ();
    0x00008a28 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008a2c move a0, s0               |         a0 = s0;
    0x00008a30 lw t9, -0x7958(gp)        |         t9 = *((gp - 7766));
    0x00008a34 move s4, v0               |         s4 = v0;
    0x00008a38 jalr t9                   |         t9 ();
    0x00008a3c addiu v0, zero, -1        |         v0 = -1;
    0x00008a40 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (s4 == v0) {
    0x00008a44 beq s4, v0, 0x8bc8        |             goto label_11;
                                         |         }
                                         | label_0:
    0x00008a48 lw t9, -0x7a70(gp)        |         t9 = sym.imp.g_malloc0;
    0x00008a4c addiu a0, zero, 0x38      |         a0 = 0x38;
    0x00008a50 jalr t9                   |         t9 ();
    0x00008a54 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008a58 addiu a2, zero, 0x2e      |         a2 = 0x2e;
    0x00008a5c move a1, s2               |         a1 = s2;
    0x00008a60 lw t9, -0x78a4(gp)        |         t9 = sym.imp.__strcpy_chk;
    0x00008a64 move a0, v0               |         a0 = v0;
    0x00008a68 lw s0, -0x7fd0(gp)        |         s0 = *((gp - 8180));
    0x00008a6c move s6, v0               |         s6 = v0;
    0x00008a70 jalr t9                   |         t9 ();
    0x00008a74 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008a78 lw a0, -0x65a4(s0)        |         a0 = *((s0 - 6505));
    0x00008a7c move a1, s6               |         a1 = s6;
    0x00008a80 lw t9, -0x7748(gp)        |         t9 = sym.imp.g_slist_prepend;
    0x00008a84 sw s3, 0x30(s6)           |         *((s6 + 12)) = s3;
    0x00008a88 jalr t9                   |         t9 ();
    0x00008a8c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008a90 addiu a0, zero, 4         |         a0 = 4;
    0x00008a94 sw v0, -0x65a4(s0)        |         *((s0 - 6505)) = v0;
    0x00008a98 lw s1, -0x7fdc(gp)        |         s1 = *(gp);
    0x00008a9c lw t9, -0x7858(gp)        |         t9 = sym.imp.g_malloc;
    0x00008aa0 sw s1, 0x2c(sp)           |         *(var_2ch) = s1;
    0x00008aa4 jalr t9                   |         t9 ();
    0x00008aa8 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         /* str.239.255.255.250 */
    0x00008aac addiu a0, s1, 0x6134      |         a0 = s1 + 0x6134;
    0x00008ab0 sw v0, 0x2fbc(s3)         |         *(s3) = v0;
    0x00008ab4 lw t9, -0x7844(gp)        |         t9 = sym.imp.strcmp;
    0x00008ab8 move a1, s2               |         a1 = s2;
    0x00008abc move s0, v0               |         s0 = v0;
    0x00008ac0 jalr t9                   |         t9 ();
    0x00008ac4 move s1, v0               |         s1 = v0;
    0x00008ac8 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x00008acc beqz v0, 0x8c50           |             goto label_12;
                                         |         }
    0x00008ad0 lw v0, -0x7fdc(gp)        |         v0 = *(gp);
    0x00008ad4 lw t9, -0x7844(gp)        |         t9 = sym.imp.strcmp;
    0x00008ad8 sw v0, 0x2c(sp)           |         *(var_2ch) = v0;
    0x00008adc move a1, s2               |         a1 = s2;
                                         |         /* str.FF02::C */
    0x00008ae0 addiu a0, v0, 0x61e8      |         a0 = v0 + 0x61e8;
    0x00008ae4 jalr t9                   |         t9 ();
    0x00008ae8 move s1, v0               |         s1 = v0;
    0x00008aec lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x00008af0 beqz v0, 0x8d58           |             goto label_13;
                                         |         }
    0x00008af4 sw zero, (s0)             |         *(s0) = 0;
                                         | label_2:
    0x00008af8 lw a1, -0x7fb4(gp)        |         a1 = *(gp);
    0x00008afc lui v0, 0xfffe            |         v0 = 0xfffe0000;
    0x00008b00 lw t9, -0x7fc4(gp)        |         t9 = sym.common_io_channel_init;
    0x00008b04 addiu v0, v0, 0x7960      |         v0 += 0x7960;
    0x00008b08 sw v0, 0x30(s3)           |         *((s3 + 12)) = v0;
    0x00008b0c move a2, s6               |         a2 = s6;
    0x00008b10 addiu a1, a1, -0x7b58     |         a1 += -0x7b58;
    0x00008b14 move a0, s4               |         a0 = s4;
    0x00008b18 bal 0xd0e4                |         sym_common_io_channel_init ();
    0x00008b1c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008b20 sw v0, 0x34(s6)           |         *((s6 + 13)) = v0;
                                         | label_1:
    0x00008b24 lw v0, 0x28(sp)           |         v0 = *(var_28h);
    0x00008b28 lw v1, 0x154(sp)          |         v1 = *(var_154h);
    0x00008b2c lw v0, (v0)               |         v0 = *(v0);
    0x00008b30 lw ra, 0x17c(sp)          |         ra = *(var_17ch);
                                         |         if (v1 != v0) {
    0x00008b34 bne v1, v0, 0x8fbc        |             goto label_14;
                                         |         }
    0x00008b38 lw fp, 0x178(sp)          |         fp = *(var_178h);
    0x00008b3c lw s7, 0x174(sp)          |         s7 = *(var_174h);
    0x00008b40 lw s6, 0x170(sp)          |         s6 = *(var_170h);
    0x00008b44 lw s5, 0x16c(sp)          |         s5 = *(var_16ch);
    0x00008b48 lw s4, 0x168(sp)          |         s4 = *(var_168h);
    0x00008b4c lw s3, 0x164(sp)          |         s3 = *(var_164h);
    0x00008b50 lw s2, 0x160(sp)          |         s2 = *(var_160h);
    0x00008b54 lw s1, 0x15c(sp)          |         s1 = *(var_15ch);
    0x00008b58 lw s0, 0x158(sp)          |         s0 = *(var_158h);
    0x00008b5c addiu sp, sp, 0x180       |         
    0x00008b60 jr ra                     |         return v0;
                                         | label_10:
    0x00008b64 lw t9, -0x7fa4(gp)        |         t9 = sym.config_get_active_interface;
    0x00008b68 addiu v1, zero, 0x25      |         v1 = 0x25;
    0x00008b6c addiu s1, sp, 0x54        |         s1 = sp + 0x54;
    0x00008b70 sb v1, (v0)               |         *(v0) = v1;
    0x00008b74 sb zero, 1(v0)            |         *((v0 + 1)) = 0;
    0x00008b78 move a0, s1               |         a0 = s1;
    0x00008b7c bal 0xb82c                |         sym_config_get_active_interface ();
    0x00008b80 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x00008b84 beqz v0, 0x8e68           |             goto label_15;
                                         |         }
    0x00008b88 lw t9, -0x76e0(gp)        |         t9 = sym.imp.strcat
    0x00008b8c move a1, s1               |         a1 = s1;
    0x00008b90 move a0, s0               |         a0 = s0;
    0x00008b94 jalr t9                   |         t9 ();
    0x00008b98 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008b9c b 0x8a10                  |         
                                         |     }
                                         | label_9:
    0x00008ba0 lw t9, -0x7af4(gp)        |     t9 = sym.imp.soap_bind;
    0x00008ba4 addiu a3, zero, 0x64      |     a3 = 0x64;
    0x00008ba8 addiu a2, zero, 0xe76     |     a2 = 0xe76;
    0x00008bac move a1, s2               |     a1 = s2;
    0x00008bb0 move a0, s3               |     a0 = s3;
    0x00008bb4 jalr t9                   |     t9 ();
    0x00008bb8 move s4, v0               |     s4 = v0;
    0x00008bbc addiu v0, zero, -1        |     v0 = -1;
    0x00008bc0 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (s4 != v0) {
    0x00008bc4 bne s4, v0, 0x8a48        |         goto label_0;
                                         |     }
                                         | label_11:
    0x00008bc8 lw t9, -0x781c(gp)        |     t9 = sym.imp.soap_sprint_fault;
    0x00008bcc addiu s0, sp, 0x54        |     s0 = sp + 0x54;
    0x00008bd0 addiu a2, zero, 0x100     |     a2 = aav.0x00000100;
    0x00008bd4 move a1, s0               |     a1 = s0;
    0x00008bd8 move a0, s3               |     a0 = s3;
    0x00008bdc jalr t9                   |     t9 ();
    0x00008be0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008be4 move a0, s0               |     a0 = s0;
    0x00008be8 lw a1, -0x7fdc(gp)        |     a1 = *(gp);
    0x00008bec lw t9, -0x7720(gp)        |     t9 = sym.imp.strstr;
                                         |     /* str.bind_failed_in_soap_bind__ */
    0x00008bf0 addiu a1, a1, 0x6100      |     a1 += 0x6100;
    0x00008bf4 jalr t9                   |     t9 ();
    0x00008bf8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008bfc sw s2, 0x14(sp)           |     *(var_14h) = s2;
    0x00008c00 sw s0, 0x10(sp)           |     *(var_10h) = s0;
    0x00008c04 lw a3, -0x7fdc(gp)        |     a3 = *(gp);
    0x00008c08 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00008c0c lw t9, -0x77a4(gp)        |     t9 = sym.imp.g_log;
    0x00008c10 addiu a3, a3, 0x734c      |     a3 += 0x734c;
                                         |     /* str._s_s._Address_was:__s */
    0x00008c14 addiu a2, a2, 0x611c      |     a2 += 0x611c;
                                         |     if (v0 == 0) {
    0x00008c18 beqz v0, 0x8e90           |         goto label_16;
                                         |     }
    0x00008c1c addiu a1, zero, 0x40      |     a1 = 0x40;
    0x00008c20 move a0, zero             |     a0 = 0;
    0x00008c24 jalr t9                   |     t9 ();
    0x00008c28 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         | label_4:
    0x00008c2c lw t9, -0x780c(gp)        |     t9 = sym.imp.soap_end;
    0x00008c30 move a0, s3               |     a0 = s3;
    0x00008c34 jalr t9                   |     t9 ();
    0x00008c38 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008c3c lw t9, -0x7984(gp)        |     t9 = sym.imp.soap_free;
    0x00008c40 move a0, s3               |     a0 = s3;
    0x00008c44 jalr t9                   |     t9 ();
    0x00008c48 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008c4c b 0x8b24                  |     goto label_1;
                                         | label_12:
    0x00008c50 lw t9, -0x7fa0(gp)        |     t9 = sym.config_get_service_if;
    0x00008c54 bal 0xb4bc                |     sym_config_get_service_if ();
    0x00008c58 nop                       |     
    0x00008c5c lw v1, 0x2fbc(s3)         |     v1 = *(s3);
    0x00008c60 move s5, v0               |     s5 = v0;
    0x00008c64 addiu v0, zero, 1         |     v0 = 1;
    0x00008c68 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008c6c sw v0, (v1)               |     *(v1) = v0;
    0x00008c70 lw v0, 4(s5)              |     v0 = *((s5 + 1));
    0x00008c74 lw v0, -0x7fdc(gp)        |     v0 = *(gp);
                                         |     if (v0 == 0) {
    0x00008c78 beqz v0, 0x8d44           |         goto label_17;
                                         |     }
    0x00008c7c addiu fp, sp, 0x34        |     fp = sp + 0x34;
    0x00008c80 addiu v0, v0, 0x734c      |     v0 += 0x734c;
    0x00008c84 sw v0, 0x20(sp)           |     *(var_20h) = v0;
    0x00008c88 lw v0, -0x7fdc(gp)        |     v0 = *(gp);
    0x00008c8c addiu s7, zero, 0xc       |     s7 = 0xc;
                                         |     /* str._sTried_to_join_group__s_twice_on_interface__d */
    0x00008c90 addiu v0, v0, 0x6190      |     v0 += 0x6190;
    0x00008c94 sw v0, 0x24(sp)           |     *(var_24h) = v0;
    0x00008c98 lw v0, (s5)               |     v0 = *(s5);
                                         |     do {
    0x00008c9c sll s0, s1, 2             |         s0 = s1 << 2;
    0x00008ca0 lw t9, -0x7968(gp)        |         t9 = sym.imp.inet_pton;
    0x00008ca4 lwx s0, s0(v0)            |         __asm ("lwx s0, s0(v0)");
    0x00008ca8 move a2, fp               |         a2 = fp;
    0x00008cac sw zero, 4(fp)            |         *(var_4h) = 0;
    0x00008cb0 sw zero, (fp)             |         *(fp) = 0;
    0x00008cb4 move a1, s2               |         a1 = s2;
    0x00008cb8 addiu a0, zero, 2         |         a0 = 2;
    0x00008cbc sw s0, 0x3c(sp)           |         *(var_3ch) = s0;
    0x00008cc0 jalr t9                   |         t9 ();
    0x00008cc4 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x00008cc8 beqz v0, 0x8ea4           |             goto label_18;
                                         |         }
    0x00008ccc lw t9, -0x7734(gp)        |         t9 = sym.imp.setsockopt;
    0x00008cd0 sw s7, 0x10(sp)           |         *(var_10h) = s7;
    0x00008cd4 move a3, fp               |         a3 = fp;
    0x00008cd8 addiu a2, zero, 0x23      |         a2 = 0x23;
    0x00008cdc move a1, zero             |         a1 = 0;
    0x00008ce0 move a0, s4               |         a0 = s4;
    0x00008ce4 jalr t9                   |         t9 ();
    0x00008ce8 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 != 0) {
    0x00008cec beqz v0, 0x8d30           |             
    0x00008cf0 lw t9, -0x7874(gp)        |             t9 = sym.imp.__errno_location;
    0x00008cf4 jalr t9                   |             t9 ();
    0x00008cf8 nop                       |             
    0x00008cfc lw a0, (v0)               |             a0 = *(v0);
    0x00008d00 addiu v0, zero, 0x7d      |             v0 = 0x7d;
    0x00008d04 lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |             if (a0 != v0) {
    0x00008d08 bne a0, v0, 0x8f24        |                 goto label_19;
                                         |             }
    0x00008d0c lw t9, -0x77a4(gp)        |             t9 = sym.imp.g_log;
    0x00008d10 lw a3, 0x20(sp)           |             a3 = *(var_20h);
    0x00008d14 lw a2, 0x24(sp)           |             a2 = *(var_24h);
    0x00008d18 sw s0, 0x14(sp)           |             *(var_14h) = s0;
    0x00008d1c sw s2, 0x10(sp)           |             *(var_10h) = s2;
    0x00008d20 addiu a1, zero, 0x10      |             a1 = 0x10;
    0x00008d24 move a0, zero             |             a0 = 0;
    0x00008d28 jalr t9                   |             t9 ();
    0x00008d2c lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |         }
    0x00008d30 lw v0, 4(s5)              |         v0 = *((s5 + 1));
    0x00008d34 addiu s1, s1, 1           |         s1++;
    0x00008d38 sltu v0, s1, v0           |         v0 = (s1 < v0) ? 1 : 0;
    0x00008d3c lw v0, (s5)               |         v0 = *(s5);
    0x00008d40 bnel v0, zero, 0x8c9c     |         
                                         |     } while (v0 == 0);
                                         |     do {
                                         | label_17:
    0x00008d44 lw t9, -0x7a10(gp)        |         t9 = sym.imp.g_array_unref;
    0x00008d48 move a0, s5               |         a0 = s5;
    0x00008d4c jalr t9                   |         t9 ();
    0x00008d50 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008d54 b 0x8af8                  |         goto label_2;
                                         | label_13:
    0x00008d58 lw t9, -0x7fa0(gp)        |         t9 = sym.config_get_service_if;
    0x00008d5c bal 0xb4bc                |         sym_config_get_service_if ();
    0x00008d60 nop                       |         
    0x00008d64 lw v1, 0x2fbc(s3)         |         v1 = *(s3);
    0x00008d68 move s5, v0               |         s5 = v0;
    0x00008d6c addiu v0, zero, 1         |         v0 = 1;
    0x00008d70 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008d74 sw v0, (v1)               |         *(v1) = v0;
    0x00008d78 lw v0, 4(s5)              |         v0 = *((s5 + 1));
    0x00008d7c lw v0, -0x7fdc(gp)        |         v0 = *(gp);
    0x00008d80 beqz v0, 0x8d44           |         
                                         |     } while (v0 == 0);
    0x00008d84 addiu fp, sp, 0x40        |     fp = sp + 0x40;
    0x00008d88 addiu v0, v0, 0x734c      |     v0 += 0x734c;
    0x00008d8c sw v0, 0x20(sp)           |     *(var_20h) = v0;
    0x00008d90 lw v0, -0x7fdc(gp)        |     v0 = *(gp);
    0x00008d94 addiu s7, zero, 0x14      |     s7 = 0x14;
                                         |     /* str._sTried_to_join_group__s_twice_on_interface__d */
    0x00008d98 addiu v0, v0, 0x6190      |     v0 += 0x6190;
    0x00008d9c sw v0, 0x24(sp)           |     *(var_24h) = v0;
    0x00008da0 lw v0, (s5)               |     v0 = *(s5);
                                         |     do {
    0x00008da4 sll s0, s1, 2             |         s0 = s1 << 2;
    0x00008da8 lw t9, -0x7968(gp)        |         t9 = sym.imp.inet_pton;
    0x00008dac lwx s0, s0(v0)            |         __asm ("lwx s0, s0(v0)");
    0x00008db0 move a2, fp               |         a2 = fp;
    0x00008db4 sw zero, (fp)             |         *(fp) = 0;
    0x00008db8 sw zero, 4(fp)            |         *(var_4h_2) = 0;
    0x00008dbc sw zero, 8(fp)            |         *(var_8h) = 0;
    0x00008dc0 sw zero, 0xc(fp)          |         *(var_ch) = 0;
    0x00008dc4 move a1, s2               |         a1 = s2;
    0x00008dc8 addiu a0, zero, 0xa       |         a0 = 0xa;
    0x00008dcc sw s0, 0x50(sp)           |         *(var_50h) = s0;
    0x00008dd0 jalr t9                   |         t9 ();
    0x00008dd4 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x00008dd8 beqz v0, 0x8f60           |             goto label_20;
                                         |         }
    0x00008ddc lw t9, -0x7734(gp)        |         t9 = sym.imp.setsockopt;
    0x00008de0 sw s7, 0x10(sp)           |         *(var_10h) = s7;
    0x00008de4 move a3, fp               |         a3 = fp;
    0x00008de8 addiu a2, zero, 0x14      |         a2 = 0x14;
    0x00008dec addiu a1, zero, 0x29      |         a1 = 0x29;
    0x00008df0 move a0, s4               |         a0 = s4;
    0x00008df4 jalr t9                   |         t9 ();
    0x00008df8 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 != 0) {
    0x00008dfc beqz v0, 0x8e40           |             
    0x00008e00 lw t9, -0x7874(gp)        |             t9 = sym.imp.__errno_location;
    0x00008e04 jalr t9                   |             t9 ();
    0x00008e08 nop                       |             
    0x00008e0c lw a0, (v0)               |             a0 = *(v0);
    0x00008e10 addiu v0, zero, 0x7d      |             v0 = 0x7d;
    0x00008e14 lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |             if (a0 != v0) {
    0x00008e18 bne a0, v0, 0x8f94        |                 goto label_21;
                                         |             }
    0x00008e1c lw t9, -0x77a4(gp)        |             t9 = sym.imp.g_log;
    0x00008e20 lw a3, 0x20(sp)           |             a3 = *(var_20h);
    0x00008e24 lw a2, 0x24(sp)           |             a2 = *(var_24h);
    0x00008e28 sw s0, 0x14(sp)           |             *(var_14h) = s0;
    0x00008e2c sw s2, 0x10(sp)           |             *(var_10h) = s2;
    0x00008e30 addiu a1, zero, 0x10      |             a1 = 0x10;
    0x00008e34 move a0, zero             |             a0 = 0;
    0x00008e38 jalr t9                   |             t9 ();
    0x00008e3c lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |         }
    0x00008e40 lw v0, 4(s5)              |         v0 = *((s5 + 1));
    0x00008e44 addiu s1, s1, 1           |         s1++;
    0x00008e48 sltu v0, s1, v0           |         v0 = (s1 < v0) ? 1 : 0;
    0x00008e4c lw v0, (s5)               |         v0 = *(s5);
    0x00008e50 bnel v0, zero, 0x8da4     |         
                                         |     } while (v0 == 0);
    0x00008e54 lw t9, -0x7a10(gp)        |     t9 = sym.imp.g_array_unref;
    0x00008e58 move a0, s5               |     a0 = s5;
    0x00008e5c jalr t9                   |     t9 ();
    0x00008e60 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008e64 b 0x8af8                  |     goto label_2;
                                         | label_15:
    0x00008e68 lw a3, -0x7fdc(gp)        |     a3 = *(gp);
    0x00008e6c lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00008e70 lw t9, -0x77a4(gp)        |     t9 = sym.imp.g_log;
    0x00008e74 addiu a3, a3, 0x734c      |     a3 += 0x734c;
                                         |     /* str._sFailed_to_get_active_interface */
    0x00008e78 addiu a2, a2, 0x60dc      |     a2 += 0x60dc;
    0x00008e7c addiu a1, zero, 0x10      |     a1 = 0x10;
    0x00008e80 move a0, zero             |     a0 = 0;
    0x00008e84 jalr t9                   |     t9 ();
    0x00008e88 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008e8c b 0x8a10                  |     goto label_3;
                                         | label_16:
    0x00008e90 addiu a1, zero, 0x10      |     a1 = 0x10;
    0x00008e94 move a0, zero             |     a0 = 0;
    0x00008e98 jalr t9                   |     t9 ();
    0x00008e9c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008ea0 b 0x8c2c                  |     goto label_4;
                                         | label_18:
    0x00008ea4 lw t9, -0x7874(gp)        |     t9 = sym.imp.__errno_location;
    0x00008ea8 lw s0, -0x7fdc(gp)        |     s0 = *(gp);
    0x00008eac jalr t9                   |     t9 ();
    0x00008eb0 nop                       |     
    0x00008eb4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008eb8 lw t9, -0x79e4(gp)        |     t9 = sym.imp.strerror;
    0x00008ebc lw a0, (v0)               |     a0 = *(v0);
    0x00008ec0 jalr t9                   |     t9 ();
    0x00008ec4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008ec8 lw v1, 0x2c(sp)           |     v1 = *(var_2ch);
    0x00008ecc sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00008ed0 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00008ed4 lw t9, -0x77a4(gp)        |     t9 = sym.imp.g_log;
    0x00008ed8 addiu v1, v1, 0x6134      |     v1 += 0x6134;
    0x00008edc sw v1, 0x10(sp)           |     *(var_10h) = v1;
    0x00008ee0 addiu a3, s0, 0x734c      |     a3 = s0 + 0x734c;
                                         |     /* str._sinet_pton_failed_on__s__s */
    0x00008ee4 addiu a2, a2, 0x6144      |     a2 += 0x6144;
    0x00008ee8 addiu a1, zero, 8         |     a1 = 8;
    0x00008eec move a0, zero             |     a0 = 0;
    0x00008ef0 jalr t9                   |     t9 ();
    0x00008ef4 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     do {
                                         | label_5:
    0x00008ef8 lw a2, -0x7fdc(gp)        |         a2 = *(gp);
    0x00008efc lw t9, -0x77a4(gp)        |         t9 = sym.imp.g_log;
    0x00008f00 move a0, zero             |         a0 = 0;
    0x00008f04 addiu a3, s0, 0x734c      |         a3 = s0 + 0x734c;
                                         |         /* str._sFailed_to_join_multicast_group */
    0x00008f08 addiu a2, a2, 0x61c4      |         a2 += 0x61c4;
                                         | label_6:
    0x00008f0c addiu a1, zero, 8         |         a1 = 8;
    0x00008f10 jalr t9                   |         t9 ();
    0x00008f14 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008f18 lw t9, -0x79d4(gp)        |         t9 = *(gp);
    0x00008f1c addiu a0, zero, 1         |         a0 = 1;
    0x00008f20 jalr t9                   |         t9 ();
                                         | label_19:
    0x00008f24 lw t9, -0x79e4(gp)        |         t9 = sym.imp.strerror;
    0x00008f28 jalr t9                   |         t9 ();
    0x00008f2c nop                       |         
    0x00008f30 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008f34 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00008f38 addiu a1, zero, 8         |         a1 = 8;
    0x00008f3c lw s0, -0x7fdc(gp)        |         s0 = *(gp);
    0x00008f40 lw a2, -0x7fdc(gp)        |         a2 = *(gp);
    0x00008f44 lw t9, -0x77a4(gp)        |         t9 = sym.imp.g_log;
    0x00008f48 addiu a3, s0, 0x734c      |         a3 = s0 + 0x734c;
                                         |         /* str._ssetsockopt_IP_ADD_MEMBERSHIP_failed__s */
    0x00008f4c addiu a2, a2, 0x6164      |         a2 += 0x6164;
    0x00008f50 move a0, zero             |         a0 = 0;
    0x00008f54 jalr t9                   |         t9 ();
    0x00008f58 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008f5c b 0x8ef8                  |         
                                         |     } while (1);
                                         | label_20:
    0x00008f60 lw v0, 0x2c(sp)           |     v0 = *(var_2ch);
    0x00008f64 lw s0, -0x7fdc(gp)        |     s0 = *(gp);
    0x00008f68 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00008f6c lw t9, -0x77a4(gp)        |     t9 = sym.imp.g_log;
    0x00008f70 addiu v0, v0, 0x61e8      |     v0 += 0x61e8;
    0x00008f74 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00008f78 addiu a3, s0, 0x734c      |     a3 = s0 + 0x734c;
                                         |     /* str._sinet_pton_failed_on__s__m */
    0x00008f7c addiu a2, a2, 0x61f0      |     a2 += 0x61f0;
    0x00008f80 addiu a1, zero, 8         |     a1 = 8;
    0x00008f84 move a0, zero             |     a0 = 0;
    0x00008f88 jalr t9                   |     t9 ();
    0x00008f8c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008f90 b 0x8ef8                  |     goto label_5;
                                         | label_21:
    0x00008f94 lw s0, -0x7fdc(gp)        |     s0 = *(gp);
    0x00008f98 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00008f9c lw t9, -0x77a4(gp)        |     t9 = sym.imp.g_log;
    0x00008fa0 addiu a3, s0, 0x734c      |     a3 = s0 + 0x734c;
                                         |     /* str._ssetsockopt_IPV6_ADD_MEMBERSHIP_failed__m */
    0x00008fa4 addiu a2, a2, 0x6210      |     a2 += 0x6210;
    0x00008fa8 addiu a1, zero, 8         |     a1 = 8;
    0x00008fac move a0, zero             |     a0 = 0;
    0x00008fb0 jalr t9                   |     t9 ();
    0x00008fb4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008fb8 b 0x8ef8                  |     goto label_5;
                                         | label_14:
    0x00008fbc lw t9, -0x7934(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00008fc0 jalr t9                   |     t9 ();
    0x00008fc4 nop                       |     
                                         | label_8:
    0x00008fc8 lw t9, -0x781c(gp)        |     t9 = sym.imp.soap_sprint_fault;
    0x00008fcc addiu s0, sp, 0x54        |     s0 = sp + 0x54;
    0x00008fd0 addiu a2, zero, 0x100     |     a2 = aav.0x00000100;
    0x00008fd4 move a1, s0               |     a1 = s0;
    0x00008fd8 move a0, s3               |     a0 = s3;
    0x00008fdc jalr t9                   |     t9 ();
    0x00008fe0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008fe4 move a0, zero             |     a0 = 0;
    0x00008fe8 sw s0, 0x10(sp)           |     *(var_10h) = s0;
    0x00008fec lw a3, -0x7fdc(gp)        |     a3 = *(gp);
    0x00008ff0 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00008ff4 lw t9, -0x77a4(gp)        |     t9 = sym.imp.g_log;
    0x00008ff8 addiu a3, a3, 0x734c      |     a3 += 0x734c;
                                         |     /* str._s_s */
    0x00008ffc addiu a2, a2, 0x60d4      |     a2 += 0x60d4;
    0x00009000 addiu a1, zero, 8         |     a1 = 8;
    0x00009004 jalr t9                   |     t9 ();
    0x00009008 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000900c lw t9, -0x79d4(gp)        |     t9 = *(gp);
    0x00009010 addiu a0, zero, 1         |     a0 = 1;
    0x00009014 jalr t9                   |     t9 ();
                                         | label_7:
    0x00009018 lw a3, -0x7fdc(gp)        |     a3 = *(gp);
    0x0000901c lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00009020 lw t9, -0x77a4(gp)        |     t9 = sym.imp.g_log;
    0x00009024 move a0, zero             |     a0 = 0;
    0x00009028 addiu a3, a3, 0x734c      |     a3 += 0x734c;
                                         |     /* str._sFailed_to_allocate_soap_context */
    0x0000902c addiu a2, a2, 0x60b0      |     a2 += 0x60b0;
    0x00009030 b 0x8f0c                  |     goto label_6;
                                         | }

[*] Function strcat used 2 times wsdd