[*] Binary protection state of wsd

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


[*] Function fprintf tear down of wsd

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/wsd @ 0x27e0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) main ()                      | int32_t main () {
                                         |     /* [13] -r-x section size 9616 named .text */
    0x000027e0 lui gp, 2                 |     
    0x000027e4 addiu gp, gp, -0x3480     |     
    0x000027e8 addu gp, gp, t9           |     gp += t9;
    0x000027ec addiu sp, sp, -0x90       |     
    0x000027f0 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x000027f4 sw s7, 0x84(sp)           |     *(var_84h) = s7;
    0x000027f8 lw s7, -0x7ef8(gp)        |     s7 = *((gp - 8126));
    0x000027fc sw fp, 0x88(sp)           |     *(var_88h) = fp;
    0x00002800 sw s4, 0x78(sp)           |     *(var_78h) = s4;
    0x00002804 sw s1, 0x6c(sp)           |     *(var_6ch) = s1;
    0x00002808 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x0000280c sw ra, 0x8c(sp)           |     *(var_8ch) = ra;
    0x00002810 sw s6, 0x80(sp)           |     *(var_80h) = s6;
    0x00002814 sw s5, 0x7c(sp)           |     *(var_7ch) = s5;
    0x00002818 sw s3, 0x74(sp)           |     *(var_74h) = s3;
    0x0000281c sw s2, 0x70(sp)           |     *(var_70h) = s2;
    0x00002820 sw s0, 0x68(sp)           |     *(var_68h) = s0;
    0x00002824 lw v1, (s7)               |     v1 = *(s7);
    0x00002828 addiu fp, sp, 0x34        |     fp = sp + 0x34;
                                         |     /* esilref: 'transfer-socket' */
    0x0000282c addiu v0, v0, 0x7010      |     v0 += 0x7010;
    0x00002830 sw v1, 0x64(sp)           |     *(var_64h) = v1;
    0x00002834 move s4, a0               |     s4 = a0;
    0x00002838 move s1, a1               |     s1 = a1;
    0x0000283c move v1, fp               |     v1 = fp;
    0x00002840 addiu t1, v0, 0x30        |     t1 = v0 + 0x30;
                                         |     do {
    0x00002844 lw a3, (v0)               |         a3 = *(v0);
    0x00002848 lw a2, 4(v0)              |         a2 = *((v0 + 1));
    0x0000284c lw a1, 8(v0)              |         a1 = *((v0 + 2));
    0x00002850 lw a0, 0xc(v0)            |         a0 = *((v0 + 3));
    0x00002854 addiu v0, v0, 0x10        |         v0 += 0x10;
    0x00002858 sw a3, (v1)               |         *(v1) = a3;
    0x0000285c sw a2, 4(v1)              |         *((v1 + 1)) = a2;
    0x00002860 sw a1, 8(v1)              |         *((v1 + 2)) = a1;
    0x00002864 sw a0, 0xc(v1)            |         *((v1 + 3)) = a0;
    0x00002868 addiu v1, v1, 0x10        |         v1 += 0x10;
    0x0000286c bne v0, t1, 0x2844        |         
                                         |     } while (v0 != t1);
    0x00002870 lw s0, -0x7fd4(gp)        |     s0 = *((gp - 8181));
    0x00002874 lw t9, -0x7fd8(gp)        |     t9 = sym.probe_rtc_available;
    0x00002878 sw s0, 0x2c(sp)           |     *(var_2ch) = s0;
    0x0000287c bal 0x331c                |     sym_probe_rtc_available ();
    0x00002880 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002884 addiu a0, s0, 0x55bc      |     a0 = s0 + 0x55bc;
    0x00002888 addiu a2, zero, 0x18      |     a2 = 0x18;
    0x0000288c lw t9, -0x7ee0(gp)        |     t9 = sym.imp.openlog;
    0x00002890 addiu a1, zero, 1         |     a1 = 1;
    0x00002894 jalr t9                   |     t9 ();
    0x00002898 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000289c addiu s2, sp, 0x30        |     s2 = sp + 0x30;
    0x000028a0 addiu s3, zero, -1        |     s3 = -1;
    0x000028a4 lw v0, -0x7eb8(gp)        |     v0 = *((gp - 8110));
    0x000028a8 lw s0, -0x7fd4(gp)        |     s0 = *((gp - 8181));
    0x000028ac sw v0, 0x28(sp)           |     *(var_28h) = v0;
    0x000028b0 addiu v0, zero, 1         |     v0 = 1;
    0x000028b4 sw v0, 0x20(sp)           |     *(var_20h) = v0;
    0x000028b8 lw v0, -0x7fd4(gp)        |     v0 = *((gp - 8181));
    0x000028bc addiu s0, s0, 0x55c0      |     s0 += 0x55c0;
    0x000028c0 addiu v0, v0, 0x55a8      |     v0 += str._run_wsd_transfer;
    0x000028c4 sw v0, 0x24(sp)           |     *(var_24h) = v0;
    0x000028c8 addiu s6, zero, 0x6e      |     s6 = 0x6e;
    0x000028cc addiu s5, zero, 0x73      |     s5 = 0x73;
                                         |     do {
                                         | label_0:
    0x000028d0 lw t9, -0x7e4c(gp)        |         t9 = sym.imp.getopt_long;
    0x000028d4 sw s2, 0x10(sp)           |         *(var_10h) = s2;
    0x000028d8 move a3, fp               |         a3 = fp;
    0x000028dc move a2, s0               |         a2 = s0;
    0x000028e0 move a1, s1               |         a1 = s1;
    0x000028e4 move a0, s4               |         a0 = s4;
    0x000028e8 sw zero, 0x30(sp)         |         *(var_30h) = 0;
    0x000028ec jalr t9                   |         t9 ();
    0x000028f0 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == s3) {
    0x000028f4 beq v0, s3, 0x2974        |             goto label_7;
                                         |         }
    0x000028f8 beql v0, s6, 0x28d0       |         
                                         |     } while (v0 == s6);
    0x000028fc sw zero, 0x20(sp)         |     *(var_20h) = 0;
    0x00002900 lw a1, -0x7fd4(gp)        |     a1 = *((gp - 8181));
                                         |     if (v0 == s5) {
    0x00002904 bne v0, s5, 0x2918        |         
    0x00002908 lw v0, 0x28(sp)           |         v0 = *(var_28h);
    0x0000290c lw v0, (v0)               |         v0 = *(v0);
    0x00002910 sw v0, 0x24(sp)           |         *(var_24h) = v0;
    0x00002914 b 0x28d0                  |         goto label_0;
                                         |     }
    0x00002918 lw t9, -0x7f2c(gp)        |     t9 = sym.imp.__printf_chk;
    0x0000291c lw a2, (s1)               |     a2 = *(s1);
    0x00002920 addiu a1, a1, 0x55c4      |     a1 += str.Usage:_n___s__OPTION...__n_nOptions:_n___s____transfer_socket_request_transfer_socket_path_n___n____no_daemon_______dont_daemonize_n;
    0x00002924 addiu a0, zero, 1         |     a0 = 1;
    0x00002928 jalr t9                   |     t9 ();
    0x0000292c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002930 addiu s0, zero, 1         |     s0 = 1;
                                         | label_1:
    0x00002934 lw a0, 0x64(sp)           |     a0 = *(var_64h);
    0x00002938 lw v1, (s7)               |     v1 = *(s7);
    0x0000293c move v0, s0               |     v0 = s0;
                                         |     if (a0 != v1) {
    0x00002940 bne a0, v1, 0x3024        |         goto label_8;
                                         |     }
    0x00002944 lw ra, 0x8c(sp)           |     ra = *(var_8ch);
    0x00002948 lw fp, 0x88(sp)           |     fp = *(var_88h);
    0x0000294c lw s7, 0x84(sp)           |     s7 = *(var_84h);
    0x00002950 lw s6, 0x80(sp)           |     s6 = *(var_80h);
    0x00002954 lw s5, 0x7c(sp)           |     s5 = *(var_7ch);
    0x00002958 lw s4, 0x78(sp)           |     s4 = *(var_78h);
    0x0000295c lw s3, 0x74(sp)           |     s3 = *(var_74h);
    0x00002960 lw s2, 0x70(sp)           |     s2 = *(var_70h);
    0x00002964 lw s1, 0x6c(sp)           |     s1 = *(var_6ch);
    0x00002968 lw s0, 0x68(sp)           |     s0 = *(var_68h);
    0x0000296c addiu sp, sp, 0x90        |     
    0x00002970 jr ra                     |     return v0;
                                         | label_7:
    0x00002974 lw t9, -0x7f28(gp)        |     t9 = sym.imp.command_source_register_mainloop_thread;
    0x00002978 jalr t9                   |     t9 ();
    0x0000297c nop                       |     
    0x00002980 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002984 lw t9, -0x7f50(gp)        |     t9 = sym.imp.media_config_init;
    0x00002988 jalr t9                   |     t9 ();
    0x0000298c nop                       |     
    0x00002990 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00002994 beqz v0, 0x3030           |         goto label_9;
                                         |     }
    0x00002998 lw t9, -0x7fd0(gp)        |     t9 = sym.create_transfer_socket;
    0x0000299c lw a0, 0x24(sp)           |     a0 = *(var_24h);
    0x000029a0 bal 0x4698                |     sym_create_transfer_socket ();
    0x000029a4 move s3, v0               |     s3 = v0;
    0x000029a8 lw v0, 0x20(sp)           |     v0 = *(var_20h);
    0x000029ac lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x000029b0 beqz v0, 0x29fc           |         
    0x000029b4 lw t9, -0x7e1c(gp)        |         t9 = sym.imp.daemon;
    0x000029b8 move a1, zero             |         a1 = 0;
    0x000029bc move a0, zero             |         a0 = 0;
    0x000029c0 jalr t9                   |         t9 ();
    0x000029c4 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000029c8 lw t9, -0x7e48(gp)        |         t9 = sym.imp.__syslog_chk;
                                         |         if (v0 < 0) {
    0x000029cc bltz v0, 0x3058           |             goto label_10;
                                         |         }
    0x000029d0 lw v0, -0x7fd4(gp)        |         v0 = *((gp - 8181));
    0x000029d4 lw a2, -0x7fd4(gp)        |         a2 = *((gp - 8181));
    0x000029d8 addiu v0, v0, 0x569c      |         v0 += str.0.01;
    0x000029dc sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x000029e0 lw v0, 0x2c(sp)           |         v0 = *(var_2ch);
    0x000029e4 addiu a2, a2, 0x568c      |         a2 += str.Starting__s__s;
    0x000029e8 addiu a3, v0, 0x55bc      |         a3 = v0 + 0x55bc;
    0x000029ec addiu a1, zero, 1         |         a1 = 1;
    0x000029f0 addiu a0, zero, 6         |         a0 = 6;
    0x000029f4 jalr t9                   |         t9 ();
    0x000029f8 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
    0x000029fc lw s1, -0x7fd4(gp)        |     s1 = *((gp - 8181));
    0x00002a00 lw a1, -0x7fd4(gp)        |     a1 = *((gp - 8181));
    0x00002a04 lw t9, -0x7f30(gp)        |     t9 = sym.imp.fopen;
    0x00002a08 addiu a1, a1, 0x5b80      |     a1 += 0x5b80;
    0x00002a0c addiu a0, s1, 0x56a4      |     a0 = s1 + str._run_wsd_wsd.pid;
    0x00002a10 sw zero, 0x30(sp)         |     *(var_30h) = 0;
    0x00002a14 jalr t9                   |     t9 ();
    0x00002a18 move s0, v0               |     s0 = v0;
    0x00002a1c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00002a20 beqz v0, 0x2a50           |         
    0x00002a24 lw a1, -0x7fd4(gp)        |         a1 = *((gp - 8181));
    0x00002a28 lw t9, -0x7d8c(gp)        |         t9 = sym.imp.__isoc99_fscanf;
    0x00002a2c move a2, s2               |         a2 = s2;
    0x00002a30 addiu a1, a1, 0x56b8      |         a1 += 0x56b8;
    0x00002a34 move a0, v0               |         a0 = v0;
    0x00002a38 jalr t9                   |         t9 ();
    0x00002a3c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00002a40 lw t9, -0x7df8(gp)        |         t9 = sym.imp.fclose;
    0x00002a44 move a0, s0               |         a0 = s0;
    0x00002a48 jalr t9                   |         t9 ();
    0x00002a4c lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
    0x00002a50 lw s0, 0x30(sp)           |     s0 = *(var_30h);
    0x00002a54 lw t9, -0x7ddc(gp)        |     t9 = sym.imp.open;
                                         |     if (s0 == 0) {
    0x00002a58 beqz s0, 0x2ad8           |         goto label_11;
                                         |     }
    0x00002a5c lw t9, -0x7f3c(gp)        |     t9 = sym.imp.getpid;
    0x00002a60 jalr t9                   |     t9 ();
    0x00002a64 nop                       |     
    0x00002a68 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == s0) {
    0x00002a6c beq v0, s0, 0x2ad4        |         goto label_12;
                                         |     }
    0x00002a70 lw t9, -0x7e0c(gp)        |     t9 = sym.imp.kill;
    0x00002a74 move a1, zero             |     a1 = 0;
    0x00002a78 move a0, s0               |     a0 = s0;
    0x00002a7c jalr t9                   |     t9 ();
    0x00002a80 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002a84 bnez v0, 0x2ab8           |     
                                         |     while (v1 != v0) {
    0x00002a88 lw a3, -0x7fd4(gp)        |         a3 = *((gp - 8181));
    0x00002a8c lw a2, -0x7fd4(gp)        |         a2 = *((gp - 8181));
    0x00002a90 lw t9, -0x7e78(gp)        |         t9 = sym.imp.g_log;
    0x00002a94 move a0, zero             |         a0 = 0;
    0x00002a98 addiu a3, a3, 0x577c      |         a3 += 0x577c;
    0x00002a9c addiu a2, a2, 0x58dc      |         a2 += str._sAlready_running.;
                                         | label_2:
    0x00002aa0 addiu a1, zero, 8         |         a1 = 8;
    0x00002aa4 jalr t9                   |         t9 ();
    0x00002aa8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00002aac lw t9, -0x7da8(gp)        |         t9 = sym.imp.exit;
    0x00002ab0 addiu a0, zero, 1         |         a0 = 1;
    0x00002ab4 jalr t9                   |         t9 ();
    0x00002ab8 lw t9, -0x7e8c(gp)        |         t9 = sym.imp.__errno_location;
    0x00002abc jalr t9                   |         t9 ();
    0x00002ac0 nop                       |         
    0x00002ac4 lw v1, (v0)               |         v1 = *(v0);
    0x00002ac8 addiu v0, zero, 3         |         v0 = 3;
    0x00002acc lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00002ad0 bne v1, v0, 0x2a88        |         
                                         |     }
                                         | label_12:
    0x00002ad4 lw t9, -0x7ddc(gp)        |     t9 = sym.imp.open;
                                         | label_11:
    0x00002ad8 addiu a2, zero, 0x1a4     |     a2 = 0x1a4;
    0x00002adc addiu a1, zero, 0x102     |     a1 = 0x102;
    0x00002ae0 addiu a0, s1, 0x56a4      |     a0 = s1 + str._run_wsd_wsd.pid;
    0x00002ae4 sw zero, 0x30(sp)         |     *(var_30h) = 0;
    0x00002ae8 jalr t9                   |     t9 ();
    0x00002aec addiu s5, zero, -1        |     s5 = -1;
    0x00002af0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002af4 move s0, v0               |     s0 = v0;
                                         |     if (v0 == s5) {
    0x00002af8 beq v0, s5, 0x2dbc        |         goto label_13;
                                         |     }
    0x00002afc lw a1, -0x7fd4(gp)        |     a1 = *((gp - 8181));
    0x00002b00 lw t9, -0x7de0(gp)        |     t9 = sym.imp.fdopen;
    0x00002b04 addiu a1, a1, 0x56dc      |     a1 += 0x56dc;
    0x00002b08 move a0, v0               |     a0 = v0;
    0x00002b0c jalr t9                   |     t9 ();
    0x00002b10 move s4, v0               |     s4 = v0;
    0x00002b14 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00002b18 beqz v0, 0x2dbc           |         goto label_13;
                                         |     }
    0x00002b1c lw t9, -0x7e80(gp)        |     t9 = sym.imp.flock;
    0x00002b20 addiu a1, zero, 6         |     a1 = 6;
    0x00002b24 move a0, s0               |     a0 = s0;
    0x00002b28 jalr t9                   |     t9 ();
    0x00002b2c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == s5) {
    0x00002b30 beq v0, s5, 0x2f60        |         goto label_14;
                                         |     }
    0x00002b34 lw t9, -0x7f3c(gp)        |     t9 = sym.imp.getpid;
    0x00002b38 jalr t9                   |     t9 ();
    0x00002b3c nop                       |     
    0x00002b40 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002b44 move a3, v0               |     a3 = v0;
    0x00002b48 addiu a1, zero, 1         |     a1 = 1;
    0x00002b4c lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00002b50 lw t9, -0x7dd0(gp)        |     t9 = sym.imp.__fprintf_chk
    0x00002b54 addiu a2, a2, 0x5708      |     a2 += 0x5708;
    0x00002b58 move a0, s4               |     a0 = s4;
    0x00002b5c sw v0, 0x30(sp)           |     *(var_30h) = v0;
    0x00002b60 jalr t9                   |     t9 ();
    0x00002b64 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00002b68 beqz v0, 0x2e20           |         goto label_15;
                                         |     }
    0x00002b6c lw t9, -0x7e80(gp)        |     t9 = sym.imp.flock;
    0x00002b70 addiu a1, zero, 8         |     a1 = 8;
    0x00002b74 move a0, s0               |     a0 = s0;
    0x00002b78 jalr t9                   |     t9 ();
    0x00002b7c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == s5) {
    0x00002b80 beq v0, s5, 0x2fd4        |         goto label_16;
                                         |     }
    0x00002b84 lw t9, -0x7df8(gp)        |     t9 = sym.imp.fclose;
    0x00002b88 move a0, s4               |     a0 = s4;
    0x00002b8c jalr t9                   |     t9 ();
    0x00002b90 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002b94 lw v0, 0x2c(sp)           |     v0 = *(var_2ch);
    0x00002b98 lw t9, -0x7db8(gp)        |     t9 = sym.imp.getpwnam;
    0x00002b9c addiu a0, v0, 0x55bc      |     a0 = v0 + 0x55bc;
    0x00002ba0 jalr t9                   |     t9 ();
    0x00002ba4 move s2, v0               |     s2 = v0;
    0x00002ba8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00002bac beqz v0, 0x2e8c           |         goto label_17;
                                         |     }
    0x00002bb0 lw v0, 0x2c(sp)           |     v0 = *(var_2ch);
    0x00002bb4 lw t9, -0x7dec(gp)        |     t9 = sym.imp.getgrnam;
    0x00002bb8 addiu a0, v0, 0x55bc      |     a0 = v0 + 0x55bc;
    0x00002bbc jalr t9                   |     t9 ();
    0x00002bc0 move s0, v0               |     s0 = v0;
    0x00002bc4 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00002bc8 beqz v0, 0x2f04           |         goto label_18;
                                         |     }
    0x00002bcc lw t9, -0x7d84(gp)        |     t9 = sym.imp.setgid;
    0x00002bd0 lw a0, 8(v0)              |     a0 = *((v0 + 2));
    0x00002bd4 jalr t9                   |     t9 ();
    0x00002bd8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x00002bdc bltz v0, 0x2edc           |         goto label_19;
                                         |     }
    0x00002be0 lw t9, -0x7e34(gp)        |     t9 = sym.imp.initgroups;
    0x00002be4 lw a1, 8(s0)              |     a1 = *((s0 + 2));
    0x00002be8 lw a0, (s2)               |     a0 = *(s2);
    0x00002bec jalr t9                   |     t9 ();
    0x00002bf0 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x00002bf4 bltz v0, 0x2f30           |         goto label_20;
                                         |     }
    0x00002bf8 lw t9, -0x7ea8(gp)        |     t9 = sym.imp.setuid;
    0x00002bfc lw a0, 8(s2)              |     a0 = *((s2 + 2));
    0x00002c00 jalr t9                   |     t9 ();
    0x00002c04 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x00002c08 bltz v0, 0x2fac           |         goto label_21;
                                         |     }
    0x00002c0c lw v0, 0x20(sp)           |     v0 = *(var_20h);
    0x00002c10 lw t9, -0x7d68(gp)        |     t9 = sym.imp.ax_log_stdout;
                                         |     if (v0 == 0) {
    0x00002c14 beqz v0, 0x2e7c           |         goto label_22;
                                         |     }
    0x00002c18 lw t9, -0x7f0c(gp)        |     t9 = sym.imp.ax_log_syslog;
    0x00002c1c jalr t9                   |     t9 ();
    0x00002c20 nop                       |     
    0x00002c24 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         | label_3:
    0x00002c28 lw t9, -0x7db4(gp)        |     t9 = sym.imp.wssecurity_uh_init;
    0x00002c2c jalr t9                   |     t9 ();
    0x00002c30 nop                       |     
    0x00002c34 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002c38 lw t9, -0x7fcc(gp)        |     t9 = sym.wssecurity_read_config;
    0x00002c3c bal 0x37c8                |     sym_wssecurity_read_config ();
    0x00002c40 nop                       |     
    0x00002c44 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002c48 lw t9, -0x7dd8(gp)        |     t9 = sym.imp.media_init_max_fps;
    0x00002c4c jalr t9                   |     t9 ();
    0x00002c50 nop                       |     
    0x00002c54 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002c58 lw t9, -0x7dfc(gp)        |     t9 = sym.imp.wsd_services_call_init;
    0x00002c5c jalr t9                   |     t9 ();
    0x00002c60 nop                       |     
    0x00002c64 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002c68 move a1, zero             |     a1 = 0;
    0x00002c6c lw t9, -0x7db0(gp)        |     t9 = sym.imp.g_main_loop_new;
    0x00002c70 move a0, zero             |     a0 = 0;
    0x00002c74 jalr t9                   |     t9 ();
    0x00002c78 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002c7c move a0, v0               |     a0 = v0;
    0x00002c80 lw t9, -0x7fc8(gp)        |     t9 = sym.signals_init;
    0x00002c84 move s2, v0               |     s2 = v0;
    0x00002c88 bal 0x4a80                |     sym_signals_init ();
    0x00002c8c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00002c90 bnez v0, 0x3044           |         goto label_23;
                                         |     }
    0x00002c94 lw t9, -0x7fc4(gp)        |     t9 = sym.events_init;
    0x00002c98 move a0, s2               |     a0 = s2;
    0x00002c9c bal 0x4bb0                |     sym_events_init ();
    0x00002ca0 move s0, v0               |     s0 = v0;
    0x00002ca4 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00002ca8 bnez v0, 0x3084           |         goto label_24;
                                         |     }
    0x00002cac lw t9, -0x7fc0(gp)        |     t9 = sym.wsreq_setup_socket;
    0x00002cb0 move a0, s3               |     a0 = s3;
    0x00002cb4 bal 0x47d4                |     sym_wsreq_setup_socket ();
    0x00002cb8 move s3, v0               |     s3 = v0;
    0x00002cbc lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00002cc0 beqz v0, 0x3068           |         goto label_25;
                                         |     }
    0x00002cc4 lw a1, -0x7fd4(gp)        |     a1 = *((gp - 8181));
    0x00002cc8 lw t9, -0x7ef4(gp)        |     t9 = sym.imp.sd_notify;
    0x00002ccc addiu a1, a1, 0x58b8      |     a1 += str.READY1;
    0x00002cd0 move a0, zero             |     a0 = 0;
    0x00002cd4 jalr t9                   |     t9 ();
    0x00002cd8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002cdc lw t9, -0x7ee4(gp)        |     t9 = sym.imp.g_main_loop_run;
    0x00002ce0 move a0, s2               |     a0 = s2;
    0x00002ce4 jalr t9                   |     t9 ();
    0x00002ce8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002cec lw t9, -0x7fbc(gp)        |     t9 = sym.wsreq_teardown;
    0x00002cf0 move a0, s3               |     a0 = s3;
    0x00002cf4 bal 0x4970                |     sym_wsreq_teardown ();
    0x00002cf8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002cfc lw t9, -0x7fb8(gp)        |     t9 = sym.events_cleanup;
    0x00002d00 bal 0x4ca4                |     sym_events_cleanup ();
    0x00002d04 nop                       |     
    0x00002d08 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002d0c lw t9, -0x7fb4(gp)        |     t9 = sym.signals_cleanup;
    0x00002d10 bal 0x4b54                |     sym_signals_cleanup ();
    0x00002d14 nop                       |     
    0x00002d18 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002d1c lw t9, -0x7d64(gp)        |     t9 = sym.imp.g_main_loop_unref;
    0x00002d20 move a0, s2               |     a0 = s2;
    0x00002d24 jalr t9                   |     t9 ();
    0x00002d28 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002d2c lw t9, -0x7e30(gp)        |     t9 = sym.imp.media_config_cleanup;
    0x00002d30 jalr t9                   |     t9 ();
    0x00002d34 nop                       |     
    0x00002d38 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002d3c lw t9, -0x7dc8(gp)        |     t9 = sym.imp.wssecurity_uh_cleanup;
    0x00002d40 jalr t9                   |     t9 ();
    0x00002d44 nop                       |     
    0x00002d48 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002d4c lw t9, -0x7d78(gp)        |     t9 = sym.imp.g_unlink;
    0x00002d50 addiu a0, s1, 0x56a4      |     a0 = s1 + str._run_wsd_wsd.pid;
    0x00002d54 jalr t9                   |     t9 ();
    0x00002d58 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00002d5c beqz v0, 0x2934           |         goto label_1;
                                         |     }
    0x00002d60 lw t9, -0x7e8c(gp)        |     t9 = sym.imp.__errno_location;
    0x00002d64 jalr t9                   |     t9 ();
    0x00002d68 nop                       |     
    0x00002d6c lw a0, (v0)               |     a0 = *(v0);
    0x00002d70 addiu v0, zero, 2         |     v0 = 2;
    0x00002d74 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (a0 == v0) {
    0x00002d78 beq a0, v0, 0x2934        |         goto label_1;
                                         |     }
    0x00002d7c lw t9, -0x7f80(gp)        |     t9 = sym.imp.strerror;
    0x00002d80 addiu s1, s1, 0x56a4      |     s1 += str._run_wsd_wsd.pid;
    0x00002d84 jalr t9                   |     t9 ();
    0x00002d88 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002d8c sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00002d90 sw s1, 0x10(sp)           |     *(var_10h) = s1;
    0x00002d94 lw a3, -0x7fd4(gp)        |     a3 = *((gp - 8181));
    0x00002d98 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00002d9c lw t9, -0x7e78(gp)        |     t9 = sym.imp.g_log;
    0x00002da0 addiu a3, a3, 0x577c      |     a3 += 0x577c;
    0x00002da4 addiu a2, a2, 0x58c0      |     a2 += str._sFailed_to_remove__s:__s;
    0x00002da8 addiu a1, zero, 0x10      |     a1 = 0x10;
    0x00002dac move a0, zero             |     a0 = 0;
    0x00002db0 jalr t9                   |     t9 ();
    0x00002db4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002db8 b 0x2934                  |     goto label_1;
                                         | label_13:
    0x00002dbc lw t9, -0x7e8c(gp)        |     t9 = sym.imp.__errno_location;
    0x00002dc0 lw s0, -0x7fd4(gp)        |     s0 = *((gp - 8181));
    0x00002dc4 addiu s1, s1, 0x56a4      |     s1 += str._run_wsd_wsd.pid;
    0x00002dc8 jalr t9                   |     t9 ();
    0x00002dcc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002dd0 lw t9, -0x7f80(gp)        |     t9 = sym.imp.strerror;
    0x00002dd4 lw a0, (v0)               |     a0 = *(v0);
    0x00002dd8 jalr t9                   |     t9 ();
    0x00002ddc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002de0 sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00002de4 sw s1, 0x10(sp)           |     *(var_10h) = s1;
    0x00002de8 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00002dec lw t9, -0x7e78(gp)        |     t9 = sym.imp.g_log;
    0x00002df0 addiu a3, s0, 0x577c      |     a3 = s0 + 0x577c;
    0x00002df4 addiu a2, a2, 0x56bc      |     a2 += str._sCant_open_or_create__s:__s;
    0x00002df8 addiu a1, zero, 0x10      |     a1 = 0x10;
    0x00002dfc move a0, zero             |     a0 = 0;
    0x00002e00 jalr t9                   |     t9 ();
    0x00002e04 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     do {
    0x00002e08 lw a2, -0x7fd4(gp)        |         a2 = *((gp - 8181));
    0x00002e0c lw t9, -0x7e78(gp)        |         t9 = sym.imp.g_log;
    0x00002e10 move a0, zero             |         a0 = 0;
    0x00002e14 addiu a3, s0, 0x577c      |         a3 = s0 + 0x577c;
    0x00002e18 addiu a2, a2, 0x5744      |         a2 += str._sCould_not_write_pid.;
    0x00002e1c b 0x2aa0                  |         goto label_2;
                                         | label_15:
    0x00002e20 lw t9, -0x7e8c(gp)        |         t9 = sym.imp.__errno_location;
    0x00002e24 lw s0, -0x7fd4(gp)        |         s0 = *((gp - 8181));
    0x00002e28 jalr t9                   |         t9 ();
    0x00002e2c nop                       |         
    0x00002e30 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00002e34 lw t9, -0x7f80(gp)        |         t9 = sym.imp.strerror;
    0x00002e38 lw a0, (v0)               |         a0 = *(v0);
    0x00002e3c jalr t9                   |         t9 ();
    0x00002e40 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00002e44 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00002e48 addiu a3, s0, 0x577c      |         a3 = s0 + 0x577c;
    0x00002e4c lw a2, -0x7fd4(gp)        |         a2 = *((gp - 8181));
    0x00002e50 lw t9, -0x7e78(gp)        |         t9 = sym.imp.g_log;
    0x00002e54 addiu a2, a2, 0x570c      |         a2 += str._sCant_write_pid:__s;
    0x00002e58 addiu a1, zero, 0x10      |         a1 = 0x10;
    0x00002e5c move a0, zero             |         a0 = 0;
    0x00002e60 jalr t9                   |         t9 ();
    0x00002e64 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         | label_5:
    0x00002e68 lw t9, -0x7df8(gp)        |         t9 = sym.imp.fclose;
    0x00002e6c move a0, s4               |         a0 = s4;
    0x00002e70 jalr t9                   |         t9 ();
    0x00002e74 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00002e78 b 0x2e08                  |         
                                         |     } while (1);
                                         | label_22:
    0x00002e7c jalr t9                   |     t9 ();
    0x00002e80 nop                       |     
    0x00002e84 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002e88 b 0x2c28                  |     goto label_3;
                                         | label_17:
    0x00002e8c lw v0, -0x7ea0(gp)        |     v0 = *((gp - 8104));
    0x00002e90 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00002e94 lw t9, -0x7dd0(gp)        |     t9 = sym.imp.__fprintf_chk
    0x00002e98 lw a0, (v0)               |     a0 = *(v0);
    0x00002e9c lw v0, 0x2c(sp)           |     v0 = *(var_2ch);
    0x00002ea0 addiu a2, a2, 0x575c      |     a2 += str.Couldnt_get_uid_for_user___s_._n;
    0x00002ea4 addiu a3, v0, 0x55bc      |     a3 = v0 + 0x55bc;
    0x00002ea8 addiu a1, zero, 1         |     a1 = 1;
    0x00002eac jalr t9                   |     t9 ();
    0x00002eb0 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     do {
                                         | label_4:
    0x00002eb4 lw a2, -0x7fd4(gp)        |         a2 = *((gp - 8181));
    0x00002eb8 lw t9, -0x7e48(gp)        |         t9 = sym.imp.__syslog_chk;
    0x00002ebc addiu a0, zero, 3         |         a0 = 3;
    0x00002ec0 addiu a2, a2, 0x5820      |         a2 += str.Failed_setting_uid_and_gid_of_the_process.;
                                         | label_6:
    0x00002ec4 addiu a1, zero, 1         |         a1 = 1;
    0x00002ec8 jalr t9                   |         t9 ();
    0x00002ecc lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00002ed0 lw t9, -0x7da8(gp)        |         t9 = sym.imp.exit;
    0x00002ed4 addiu a0, zero, 1         |         a0 = 1;
    0x00002ed8 jalr t9                   |         t9 ();
                                         | label_19:
    0x00002edc lw v0, -0x7ea0(gp)        |         v0 = *((gp - 8104));
    0x00002ee0 lw a2, -0x7fd4(gp)        |         a2 = *((gp - 8181));
    0x00002ee4 lw t9, -0x7dd0(gp)        |         t9 = sym.imp.__fprintf_chk
    0x00002ee8 lw a3, 8(s0)              |         a3 = *((s0 + 2));
    0x00002eec lw a0, (v0)               |         a0 = *(v0);
    0x00002ef0 addiu a2, a2, 0x57a4      |         a2 += str.Failed_setting_gid_to__d:__m_n;
    0x00002ef4 addiu a1, zero, 1         |         a1 = 1;
    0x00002ef8 jalr t9                   |         t9 ();
    0x00002efc lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00002f00 b 0x2eb4                  |         
                                         |     } while (1);
                                         | label_18:
    0x00002f04 lw v0, -0x7ea0(gp)        |     v0 = *((gp - 8104));
    0x00002f08 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00002f0c lw t9, -0x7dd0(gp)        |     t9 = sym.imp.__fprintf_chk
    0x00002f10 lw a0, (v0)               |     a0 = *(v0);
    0x00002f14 lw v0, 0x2c(sp)           |     v0 = *(var_2ch);
    0x00002f18 addiu a2, a2, 0x5780      |     a2 += str.Couldnt_get_gid_for_group___s_._n;
    0x00002f1c addiu a3, v0, 0x55bc      |     a3 = v0 + 0x55bc;
    0x00002f20 addiu a1, zero, 1         |     a1 = 1;
    0x00002f24 jalr t9                   |     t9 ();
    0x00002f28 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002f2c b 0x2eb4                  |     goto label_4;
                                         | label_20:
    0x00002f30 lw v1, -0x7ea0(gp)        |     v1 = *((gp - 8104));
    0x00002f34 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00002f38 lw v0, 8(s0)              |     v0 = *((s0 + 2));
    0x00002f3c lw t9, -0x7dd0(gp)        |     t9 = sym.imp.__fprintf_chk
    0x00002f40 lw a3, (s2)               |     a3 = *(s2);
    0x00002f44 lw a0, (v1)               |     a0 = *(v1);
    0x00002f48 addiu a2, a2, 0x57c4      |     a2 += str.Unable_to_run_initgroups____with_username:__s__gid:__d:__m_n;
    0x00002f4c sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00002f50 addiu a1, zero, 1         |     a1 = 1;
    0x00002f54 jalr t9                   |     t9 ();
    0x00002f58 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002f5c b 0x2eb4                  |     goto label_4;
                                         | label_14:
    0x00002f60 lw a1, -0x7fd4(gp)        |     a1 = *((gp - 8181));
    0x00002f64 lw t9, -0x7d8c(gp)        |     t9 = sym.imp.__isoc99_fscanf;
    0x00002f68 move a2, s2               |     a2 = s2;
    0x00002f6c addiu a1, a1, 0x56b8      |     a1 += 0x56b8;
    0x00002f70 move a0, s4               |     a0 = s4;
    0x00002f74 jalr t9                   |     t9 ();
    0x00002f78 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002f7c lw v0, 0x30(sp)           |     v0 = *(var_30h);
    0x00002f80 addiu a1, zero, 0x10      |     a1 = 0x10;
    0x00002f84 lw s0, -0x7fd4(gp)        |     s0 = *((gp - 8181));
    0x00002f88 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00002f8c lw t9, -0x7e78(gp)        |     t9 = sym.imp.g_log;
    0x00002f90 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00002f94 addiu a3, s0, 0x577c      |     a3 = s0 + 0x577c;
    0x00002f98 addiu a2, a2, 0x56e0      |     a2 += str._sCant_lock__lock_is_held_by_pid__d;
    0x00002f9c move a0, zero             |     a0 = 0;
    0x00002fa0 jalr t9                   |     t9 ();
    0x00002fa4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002fa8 b 0x2e68                  |     goto label_5;
                                         | label_21:
    0x00002fac lw v0, -0x7ea0(gp)        |     v0 = *((gp - 8104));
    0x00002fb0 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00002fb4 lw t9, -0x7dd0(gp)        |     t9 = sym.imp.__fprintf_chk
    0x00002fb8 lw a3, 8(s2)              |     a3 = *((s2 + 2));
    0x00002fbc lw a0, (v0)               |     a0 = *(v0);
    0x00002fc0 addiu a2, a2, 0x5800      |     a2 += str.Failed_setting_uid_to__d:__m_n;
    0x00002fc4 addiu a1, zero, 1         |     a1 = 1;
    0x00002fc8 jalr t9                   |     t9 ();
    0x00002fcc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002fd0 b 0x2eb4                  |     goto label_4;
                                         | label_16:
    0x00002fd4 lw t9, -0x7e8c(gp)        |     t9 = sym.imp.__errno_location;
    0x00002fd8 lw s0, -0x7fd4(gp)        |     s0 = *((gp - 8181));
    0x00002fdc addiu s1, s1, 0x56a4      |     s1 += str._run_wsd_wsd.pid;
    0x00002fe0 jalr t9                   |     t9 ();
    0x00002fe4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002fe8 lw t9, -0x7f80(gp)        |     t9 = sym.imp.strerror;
    0x00002fec lw a0, (v0)               |     a0 = *(v0);
    0x00002ff0 jalr t9                   |     t9 ();
    0x00002ff4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002ff8 sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00002ffc sw s1, 0x10(sp)           |     *(var_10h) = s1;
    0x00003000 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00003004 lw t9, -0x7e78(gp)        |     t9 = sym.imp.g_log;
    0x00003008 addiu a3, s0, 0x577c      |     a3 = s0 + 0x577c;
    0x0000300c addiu a2, a2, 0x5724      |     a2 += str._sCant_unlock_pidfile__s:__s;
    0x00003010 addiu a1, zero, 0x10      |     a1 = 0x10;
    0x00003014 move a0, zero             |     a0 = 0;
    0x00003018 jalr t9                   |     t9 ();
    0x0000301c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00003020 b 0x2e68                  |     goto label_5;
                                         | label_8:
    0x00003024 lw t9, -0x7de8(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00003028 jalr t9                   |     t9 ();
    0x0000302c nop                       |     
                                         | label_9:
    0x00003030 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00003034 lw t9, -0x7e48(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00003038 addiu a0, zero, 3         |     a0 = 3;
    0x0000303c addiu a2, a2, 0x5644      |     a2 += str.Failed_to_create_migrate_the_media_configuration.;
    0x00003040 b 0x2ec4                  |     goto label_6;
                                         | label_23:
    0x00003044 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00003048 lw t9, -0x7e48(gp)        |     t9 = sym.imp.__syslog_chk;
    0x0000304c addiu a0, zero, 3         |     a0 = 3;
    0x00003050 addiu a2, a2, 0x584c      |     a2 += str.Failed_setting_up_signal_handlers.;
    0x00003054 b 0x2ec4                  |     goto label_6;
                                         | label_10:
    0x00003058 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x0000305c addiu a0, zero, 3         |     a0 = 3;
    0x00003060 addiu a2, a2, 0x5678      |     a2 += str.daemon_failed___m;
    0x00003064 b 0x2ec4                  |     goto label_6;
                                         | label_25:
    0x00003068 lw a3, -0x7fd4(gp)        |     a3 = *((gp - 8181));
    0x0000306c lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00003070 lw t9, -0x7e78(gp)        |     t9 = sym.imp.g_log;
    0x00003074 move a0, zero             |     a0 = 0;
    0x00003078 addiu a3, a3, 0x577c      |     a3 += 0x577c;
    0x0000307c addiu a2, a2, 0x5894      |     a2 += str._sError_setting_up_transfer_socket.;
    0x00003080 b 0x2aa0                  |     goto label_2;
                                         | label_24:
    0x00003084 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00003088 lw t9, -0x7e48(gp)        |     t9 = sym.imp.__syslog_chk;
    0x0000308c addiu a0, zero, 3         |     a0 = 3;
    0x00003090 addiu a2, a2, 0x5870      |     a2 += str.Failed_setting_up_event_handlers.;
    0x00003094 b 0x2ec4                  |     goto label_6;
                                         | }

[*] Function fprintf used 7 times wsd