[*] Binary protection state of libwsevent.so

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


[*] Function sprintf tear down of libwsevent.so

    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libwsevent.so @ 0x37e4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.000037e4 ()                                  | void fcn_000037e4 (uint32_t arg1, int16_t arg2, int16_t arg3) {
                                                             |     int16_t var_14h;
                                                             |     int16_t var_7ch;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_10h;
                                                             |     int16_t var_14h_2;
                                                             |     int16_t var_18h;
                                                             |     size_t size;
                                                             |     int16_t var_20h;
                                                             |     int16_t var_24h;
                                                             |     int16_t var_2ch;
                                                             |     int16_t var_30h;
                                                             |     int16_t var_94h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
    0x000037e4 svcmi 0xf0e92d                                |     __asm ("svcmi 0xf0e92d");
    0x000037e8 mov fp, r1                                    |     
    0x000037ea ldr r1, [pc, 0x24c]                           |     
    0x000037ec mov sb, r2                                    |     sb = r2;
    0x000037ee sub sp, 0x9c                                  |     
    0x000037f0 movs r3, 0                                    |     r3 = 0;
    0x000037f2 ldr r2, [pc, 0x248]                           |     r2 = *(0x3a3e);
    0x000037f4 add r1, pc                                    |     r1 = 0x7232;
    0x000037f6 ldr r2, [r1, r2]                              |     
    0x000037f8 ldr r2, [r2]                                  |     r2 = *(0x7232);
    0x000037fa str r2, [sp, 0x94]                            |     var_94h = r2;
    0x000037fc mov.w r2, 0                                   |     r2 = 0;
    0x00003800 str r3, [sp, 0x2c]                            |     var_2ch = r3;
    0x00003802 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00003804 beq.w 0x3958                                  |         goto label_5;
                                                             |     }
    0x00003808 ldrb r2, [r0]                                 |     r2 = *(r0);
    0x0000380a mov r4, r0                                    |     r4 = r0;
    0x0000380c cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x0000380e beq.w 0x3958                                  |         goto label_5;
                                                             |     }
    0x00003812 ldr r0, [pc, 0x22c]                           |     
    0x00003814 mov r2, r3                                    |     r2 = r3;
    0x00003816 mov r1, r4                                    |     r1 = r4;
    0x00003818 add r0, pc                                    |     r0 = 0x725e;
    0x0000381a blx 0x20a8                                    |     r0 = g_utf8_substring ();
    0x0000381e mov r5, r0                                    |     r5 = r0;
    0x00003820 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00003822 bne.w 0x3958                                  |         goto label_5;
                                                             |     }
    0x00003826 ldr r1, [pc, 0x21c]                           |     
    0x00003828 mov r2, r0                                    |     r2 = r0;
    0x0000382a mov r0, r4                                    |     r0 = r4;
    0x0000382c add r1, pc                                    |     r1 = 0x7276;
    0x0000382e blx 0x20e0                                    |     r0 = fcn_000020e0 ();
    0x00003832 mov r6, r0                                    |     r6 = r0;
    0x00003834 mov r0, r5                                    |     r0 = r5;
    0x00003836 bl 0x3630                                     |     r0 = fcn_00003630 (r0);
    0x0000383a mov r3, r0                                    |     r3 = r0;
    0x0000383c ldr r0, [r6]                                  |     r0 = *(r6);
    0x0000383e str r3, [sp, 0x18]                            |     var_18h = r3;
    0x00003840 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00003842 beq.w 0x3a1a                                  |         goto label_6;
                                                             |     }
    0x00003846 ldr r3, [pc, 0x200]                           |     
    0x00003848 str.w fp, [sp, 4]                             |     __asm ("str.w fp, [var_4h]");
    0x0000384c add r3, pc                                    |     r3 = 0x729a;
    0x0000384e str r3, [sp, 0x1c]                            |     size = r3;
    0x00003850 ldr r3, [pc, 0x1f8]                           |     
    0x00003852 add r3, pc                                    |     r3 = 0x72a2;
    0x00003854 strd r3, r6, [sp, 8]                          |     __asm ("strd r3, r6, [var_ch]");
    0x00003858 add r3, sp, 0x2c                              |     r3 += var_2ch;
    0x0000385a strd r3, r6, [sp, 0x20]                       |     __asm ("strd r3, r6, [var_20h]");
                                                             | label_1:
    0x0000385e ldr r1, [sp, 0x1c]                            |     r1 = size;
    0x00003860 blx 0x2174                                    |     fread (r0, r1, r2, r3);
    0x00003864 str r0, [sp, 0x10]                            |     var_10h = r0;
    0x00003866 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00003868 beq.w 0x3976                                  |         goto label_7;
                                                             |     }
    0x0000386c ldr r6, [sp, 0xc]                             |     r6 = var_ch;
    0x0000386e movs r4, 0                                    |     r4 = 0;
    0x00003870 ldr r5, [r6]                                  |     r5 = *(r6);
    0x00003872 mov r0, r5                                    |     r0 = r5;
    0x00003874 blx 0x1f3c                                    |     r0 = fcn_00001f3c ();
    0x00003878 add r5, r0                                    |     r5 += r0;
    0x0000387a ldr r1, [sp, 0x20]                            |     r1 = var_20h;
    0x0000387c strb r4, [r5, -0x3]                           |     *((r5 - 0x3)) = r4;
    0x00003880 ldr r0, [r6]                                  |     r0 = *(r6);
    0x00003882 bl 0x4960                                     |     fcn_00004960 (r0);
    0x00003886 ldr r1, [pc, 0x1c8]                           |     
    0x00003888 mov r2, r4                                    |     r2 = r4;
    0x0000388a ldr r0, [r6]                                  |     r0 = *(r6);
    0x0000388c add r1, pc                                    |     r1 = 0x72e2;
    0x0000388e blx 0x20e0                                    |     r0 = fcn_000020e0 ();
    0x00003892 mov r5, r0                                    |     r5 = r0;
    0x00003894 mov r0, r4                                    |     r0 = r4;
    0x00003896 bl 0x2eec                                     |     fcn_00002eec (r0);
    0x0000389a ldr r1, [r5]                                  |     r1 = *(r5);
    0x0000389c mov r8, r0                                    |     r8 = r0;
    0x0000389e cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x000038a0 beq.w 0x39d6                                  |         goto label_3;
                                                             |     }
    0x000038a4 movs r3, 1                                    |     r3 = 1;
    0x000038a6 str r3, [sp, 0x10]                            |     var_10h = r3;
                                                             | label_0:
    0x000038a8 ldr.w sl, [pc, 0x1a8]                         |     
    0x000038ac movs r4, 0                                    |     r4 = 0;
    0x000038ae mov r6, r5                                    |     r6 = r5;
    0x000038b0 add.w fp, sp, 0x30                            |     
    0x000038b4 str r5, [sp, 0x14]                            |     var_14h_2 = r5;
    0x000038b6 add sl, pc                                    |     sl = 0x730e;
    0x000038b8 b 0x3912                                      |     
                                                             |     while (r0 == 0) {
    0x000038ba ldr r1, [sp, 4]                               |         r1 = var_4h;
    0x000038bc mov r3, r4                                    |         r3 = r4;
    0x000038be mov r2, sb                                    |         r2 = sb;
    0x000038c0 mov r0, r6                                    |         r0 = r6;
    0x000038c2 bl 0x3778                                     |         r0 = fcn_00003778 (r0, r1, r2, r3);
                                                             |         if (r0 == 0) {
    0x000038c6 cbz r0, 0x391c                                |             goto label_8;
                                                             |         }
    0x000038c8 mov r3, r4                                    |         r3 = r4;
    0x000038ca ldr r2, [sp, 8]                               |         r2 = var_8h;
    0x000038cc movs r1, 0x64                                 |         r1 = 0x64;
    0x000038ce mov r0, fp                                    |         r0 = fp;
    0x000038d0 blx 0x1f6c                                    |         fcn_00001f6c ();
    0x000038d4 ldr r5, [r6]                                  |         r5 = *(r6);
    0x000038d6 mov r1, r4                                    |         r1 = r4;
    0x000038d8 ldr r0, [sp, 0x2c]                            |         r0 = var_2ch;
    0x000038da mov r7, fp                                    |         r7 = fp;
    0x000038dc blx 0x21fc                                    |         fcn_000021fc ();
    0x000038e0 mov r1, r5                                    |         r1 = r5;
    0x000038e2 mov r2, r0                                    |         r2 = r0;
    0x000038e4 mov r0, fp                                    |         r0 = fp;
    0x000038e6 adds r4, 1                                    |         r4++;
    0x000038e8 bl 0x309c                                     |         r0 = fcn_0000309c (r0, r1, r2);
    0x000038ec mov r5, r0                                    |         r5 = r0;
    0x000038ee bl 0x3108                                     |         r0 = fcn_00003108 ();
    0x000038f2 mov r1, r0                                    |         r1 = r0;
    0x000038f4 mov r0, r5                                    |         r0 = r5;
    0x000038f6 blx 0x2078                                    |         r0 = fprintf_chk ();
    0x000038fa mov r1, r0                                    |         r1 = r0;
    0x000038fc mov r0, r8                                    |         r0 = r8;
    0x000038fe bl 0x2eb0                                     |         fcn_00002eb0 (r0, r1);
    0x00003902 mov r0, r5                                    |         r0 = r5;
    0x00003904 blx 0x1da4                                    |         fcn_00001da4 ();
    0x00003908 ldr r1, [r6, 4]!                              |         r1 = *((r6 += 4));
    0x0000390c cmp r1, 0                                     |         
                                                             |         if (r1 == 0) {
    0x0000390e beq.w 0x3a2a                                  |             goto label_9;
                                                             |         }
    0x00003912 mov r0, sl                                    |         r0 = sl;
    0x00003914 blx 0x2254                                    |         fcn_00002254 ();
    0x00003916 ldc p8, c2, [lr], {0}                         |         __asm ("ldc p8, c2, [lr], {0}");
    0x00003918 cmp r0, 0                                     |         
    0x0000391a beq 0x38ba                                    |         
                                                             |     }
                                                             | label_8:
    0x0000391c ldr r5, [sp, 0x14]                            |     r5 = var_14h_2;
    0x0000391e movs r4, 0                                    |     r4 = 0;
    0x00003920 ldr r6, [sp, 0x24]                            |     r6 = var_24h;
    0x00003922 bl 0x3108                                     |     r0 = fcn_00003108 ();
    0x00003926 mov r1, r0                                    |     r1 = r0;
    0x00003928 mov r0, r8                                    |     r0 = r8;
    0x0000392a blx 0x2078                                    |     fprintf_chk ();
    0x0000392e blx 0x1da4                                    |     fcn_00001da4 ();
    0x00003932 bl 0x3108                                     |     r0 = fcn_00003108 ();
    0x00003936 mov r1, r0                                    |     r1 = r0;
    0x00003938 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x0000393a blx 0x2078                                    |     fprintf_chk ();
    0x0000393e blx 0x1da4                                    |     fcn_00001da4 ();
    0x00003942 mov r0, r5                                    |     r0 = r5;
    0x00003944 blx 0x2168                                    |     g_sprintf ()
                                                             | label_2:
    0x00003948 mov r0, r6                                    |     r0 = r6;
    0x0000394a blx 0x2168                                    |     g_sprintf ()
    0x0000394e ldr r0, [sp, 0x2c]                            |     r0 = var_2ch;
                                                             |     if (r0 != 0) {
    0x00003950 cbz r0, 0x395a                                |         
    0x00003952 bl 0x4a38                                     |         fcn_00004a38 (r0);
    0x00003956 b 0x395a                                      |         goto label_10;
                                                             | label_5:
    0x00003958 movs r4, 0                                    |         r4 = 0;
                                                             |     }
                                                             | label_10:
    0x0000395a ldr r2, [pc, 0xfc]                            |     
    0x0000395c ldr r3, [pc, 0xdc]                            |     r3 = *(0x3a3c);
    0x0000395e add r2, pc                                    |     r2 = 0x73bc;
    0x00003960 ldr r3, [r2, r3]                              |     r3 = *(0x73bc);
    0x00003962 ldr r2, [r3]                                  |     r2 = *(0x73bc);
    0x00003964 ldr r3, [sp, 0x94]                            |     r3 = var_94h;
    0x00003966 eors r2, r3                                   |     r2 ^= r3;
    0x00003968 mov.w r3, 0                                   |     r3 = 0;
                                                             |     if (r2 != r3) {
    0x0000396c bne 0x3a34                                    |         goto label_11;
                                                             |     }
    0x0000396e mov r0, r4                                    |     r0 = r4;
    0x00003970 add sp, 0x9c                                  |     
    0x00003972 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}    |     
                                                             | label_7:
    0x00003976 ldr r4, [sp, 0xc]                             |     r4 = var_ch;
    0x00003978 add r7, sp, 0x30                              |     r7 += var_30h;
    0x0000397a ldr r1, [sp, 0x20]                            |     r1 = var_20h;
    0x0000397c ldr r0, [r4]                                  |     r0 = *(r4);
    0x0000397e bl 0x4960                                     |     fcn_00004960 (r0);
    0x00003982 ldr r6, [sp, 0x10]                            |     r6 = var_10h;
    0x00003984 ldr r1, [pc, 0xd4]                            |     
    0x00003986 ldr r0, [r4]                                  |     r0 = *(r4);
    0x00003988 mov r2, r6                                    |     r2 = r6;
    0x0000398a add r1, pc                                    |     r1 = 0x73ea;
    0x0000398c blx 0x20e0                                    |     r0 = fcn_000020e0 ();
    0x00003990 mov r5, r0                                    |     r5 = r0;
    0x00003992 mov r0, r6                                    |     r0 = r6;
    0x00003994 bl 0x2eec                                     |     fcn_00002eec (r0);
    0x00003998 ldr r1, [r5]                                  |     r1 = *(r5);
    0x0000399a mov r8, r0                                    |     r8 = r0;
    0x0000399c mov r4, r1                                    |     r4 = r1;
    0x0000399e cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x000039a0 bne 0x38a8                                    |         goto label_0;
                                                             |     }
                                                             | label_4:
    0x000039a2 ldr r2, [pc, 0xbc]                            |     
    0x000039a4 mov r3, r4                                    |     r3 = r4;
    0x000039a6 movs r1, 0x64                                 |     r1 = 0x64;
    0x000039a8 mov r0, r7                                    |     r0 = r7;
    0x000039aa add r2, pc                                    |     r2 = 0x7410;
    0x000039ac blx 0x1f6c                                    |     fcn_00001f6c ();
    0x000039b0 movs r2, 0                                    |     r2 = 0;
    0x000039b2 mov r0, r7                                    |     r0 = r7;
    0x000039b4 mov r1, r2                                    |     r1 = r2;
    0x000039b6 bl 0x3458                                     |     r0 = fcn_00003458 (r0, r1, r2);
    0x000039ba mov r4, r0                                    |     r4 = r0;
    0x000039bc bl 0x3108                                     |     r0 = fcn_00003108 ();
    0x000039c0 mov r1, r0                                    |     r1 = r0;
    0x000039c2 mov r0, r4                                    |     r0 = r4;
    0x000039c4 blx 0x2078                                    |     r0 = fprintf_chk ();
    0x000039c8 mov r1, r0                                    |     r1 = r0;
    0x000039ca mov r0, r8                                    |     r0 = r8;
    0x000039cc bl 0x2eb0                                     |     fcn_00002eb0 (r0, r1);
    0x000039d0 mov r0, r4                                    |     r0 = r4;
    0x000039d2 blx 0x1da4                                    |     fcn_00001da4 ();
                                                             | label_3:
    0x000039d6 bl 0x3108                                     |     r0 = fcn_00003108 ();
    0x000039da mov r1, r0                                    |     r1 = r0;
    0x000039dc mov r0, r8                                    |     r0 = r8;
    0x000039de blx 0x2078                                    |     r0 = fprintf_chk ();
    0x000039e2 mov r1, r0                                    |     r1 = r0;
    0x000039e4 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x000039e6 bl 0x35f4                                     |     r0 = fcn_000035f4 (r0, r1);
    0x000039ea bl 0x3108                                     |     r0 = fcn_00003108 ();
    0x000039ee mov r1, r0                                    |     r1 = r0;
    0x000039f0 mov r0, r8                                    |     r0 = r8;
    0x000039f2 blx 0x2078                                    |     fprintf_chk ();
    0x000039f6 blx 0x1da4                                    |     fcn_00001da4 ();
    0x000039fa mov r0, r5                                    |     r0 = r5;
    0x000039fc blx 0x2168                                    |     g_sprintf ()
    0x00003a00 ldr r0, [sp, 0x2c]                            |     r0 = var_2ch;
    0x00003a02 bl 0x4a38                                     |     fcn_00004a38 (r0);
    0x00003a06 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00003a08 ldr r0, [r3, 4]!                              |     r0 = *((r3 += 4));
    0x00003a0c str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00003a0e movs r3, 0                                    |     r3 = 0;
    0x00003a10 str r3, [sp, 0x2c]                            |     var_2ch = r3;
    0x00003a12 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00003a14 bne.w 0x385e                                  |         goto label_1;
                                                             |     }
    0x00003a16 add r7, sp, 0x8c                              |     r7 = sp + 0x8c;
    0x00003a18 ldr r6, [sp, 0x24]                            |     r6 = var_24h;
                                                             | label_6:
    0x00003a1a bl 0x3108                                     |     r0 = fcn_00003108 ();
    0x00003a1e mov r1, r0                                    |     r1 = r0;
    0x00003a20 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x00003a22 blx 0x2078                                    |     fprintf_chk ();
    0x00003a24 invalid                                       |     
    0x00003a28 b 0x3948                                      |     goto label_2;
                                                             | label_9:
    0x00003a2a ldrd r3, r5, [sp, 0x10]                       |     __asm ("ldrd r3, r5, [var_10h]");
    0x00003a2e cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00003a30 bne 0x39d6                                    |         goto label_3;
                                                             |     }
    0x00003a32 b 0x39a2                                      |     goto label_4;
                                                             | label_11:
    0x00003a34 blx 0x2090                                    |     fputc (r0, r1);
    0x00003a38 str r4, [r5, 0x5c]                            |     *((r5 + 0x5c)) = r4;
    0x00003a3a movs r0, r0                                   |     
    0x00003a3c lsls r0, r0, 8                                |     r0 <<= 8;
    0x00003a3e movs r0, r0                                   |     
    0x00003a40 adds r4, 0x58                                 |     r4 += 0x58;
    0x00003a42 movs r0, r0                                   |     
    0x00003a44 adds r4, 0xb0                                 |     r4 += 0xb0;
    0x00003a46 movs r0, r0                                   |     
    0x00003a48 adds r4, 0x94                                 |     r4 += 0x94;
    0x00003a4a movs r0, r0                                   |     
    0x00003a4c adds r4, 0x96                                 |     r4 += 0x96;
    0x00003a4e movs r0, r0                                   |     
    0x00003a50 adds r4, 0x58                                 |     r4 += 0x58;
    0x00003a52 movs r0, r0                                   |     
    0x00003a54 eors r2, r0                                   |     r2 ^= r0;
    0x00003a56 movs r0, r0                                   |     
    0x00003a58 str r2, [r0, 0x48]                            |     *((r0 + 0x48)) = r2;
    0x00003a5a movs r0, r0                                   |     
    0x00003a5c adds r3, 0x5a                                 |     r3 += 0x5a;
    0x00003a5e movs r0, r0                                   |     
    0x00003a60 adds r3, 0x3e                                 |     r3 += 0x3e;
    0x00003a62 movs r0, r0                                   |     
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libwsevent.so @ 0x3a64 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00003a64 ()                                      | void fcn_00003a64 (uint32_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_7ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x00003a64 svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x00003a68 mov r7, r1                                        |     r7 = r1;
    0x00003a6a ldr r1, [pc, 0x15c]                               |     
    0x00003a6c mov r8, r2                                        |     r8 = r2;
    0x00003a6e sub sp, 0x84                                      |     
    0x00003a70 movs r3, 0                                        |     r3 = 0;
    0x00003a72 ldr r2, [pc, 0x158]                               |     r2 = *(0x3bce);
    0x00003a74 add r1, pc                                        |     r1 = 0x7642;
    0x00003a76 ldr r2, [r1, r2]                                  |     
    0x00003a78 ldr r2, [r2]                                      |     r2 = *(0x7642);
    0x00003a7a str r2, [sp, 0x7c]                                |     var_7ch = r2;
    0x00003a7c mov.w r2, 0                                       |     r2 = 0;
    0x00003a80 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x00003a82 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00003a84 beq 0x3b5c                                        |         goto label_0;
                                                                 |     }
    0x00003a86 ldrb r2, [r0]                                     |     r2 = *(r0);
    0x00003a88 mov r5, r0                                        |     r5 = r0;
    0x00003a8a cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00003a8c beq 0x3b5c                                        |         goto label_0;
                                                                 |     }
    0x00003a8e ldr r0, [pc, 0x140]                               |     
    0x00003a90 mov r2, r3                                        |     r2 = r3;
    0x00003a92 mov r1, r5                                        |     r1 = r5;
    0x00003a94 add r0, pc                                        |     r0 = 0x766a;
    0x00003a96 blx 0x20a8                                        |     r0 = g_utf8_substring ();
    0x00003a9a mov r4, r0                                        |     r4 = r0;
    0x00003a9c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00003a9e bne 0x3b5c                                        |         goto label_0;
                                                                 |     }
    0x00003aa0 ldr r1, [pc, 0x130]                               |     
    0x00003aa2 mov r0, r5                                        |     r0 = r5;
    0x00003aa4 add r1, pc                                        |     r1 = 0x767c;
    0x00003aa6 blx 0x1dbc                                        |     r0 = fcn_00001dbc ();
    0x00003aaa mov fp, r0                                        |     
    0x00003aac cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00003aae bne 0x3b5c                                        |         goto label_0;
                                                                 |     }
    0x00003ab0 mov r0, r5                                        |     r0 = r5;
    0x00003ab2 add r1, sp, 0x14                                  |     r1 += var_14h;
    0x00003ab4 bl 0x4960                                         |     fcn_00004960 (r0);
    0x00003ab8 ldr r1, [pc, 0x11c]                               |     
    0x00003aba mov r2, fp                                        |     r2 = fp;
    0x00003abc mov r0, r5                                        |     r0 = r5;
    0x00003abe add.w sb, sp, 0x18                                |     sb += var_18h;
    0x00003ac2 add r1, pc                                        |     r1 = 0x769e;
    0x00003ac4 blx 0x20e0                                        |     r0 = fcn_000020e0 ();
    0x00003ac8 mov r5, r0                                        |     r5 = r0;
    0x00003aca str r0, [sp, 8]                                   |     var_8h = r0;
    0x00003acc mov r0, fp                                        |     r0 = fp;
    0x00003ace bl 0x2eec                                         |     fcn_00002eec (r0);
    0x00003ad2 ldr r1, [r5]                                      |     r1 = *(r5);
    0x00003ad4 mov sl, r0                                        |     sl = r0;
    0x00003ad6 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00003ad8 beq 0x3b7e                                        |         goto label_1;
                                                                 |     }
    0x00003ada ldr r3, [pc, 0x100]                               |     
    0x00003adc add r6, sp, 0x18                                  |     r6 += var_18h;
    0x00003ade ldr r2, [pc, 0x100]                               |     
    0x00003ae0 mov sb, r7                                        |     sb = r7;
    0x00003ae2 str.w fp, [sp, 0xc]                               |     __asm ("str.w fp, [var_ch]");
    0x00003ae6 add r3, pc                                        |     r3 = 0x76c8;
    0x00003ae8 ldr r5, [sp, 8]                                   |     r5 = var_8h;
    0x00003aea add r2, pc                                        |     r2 = 0x76d0;
    0x00003aec mov fp, r3                                        |     
    0x00003aee str r2, [sp, 4]                                   |     var_4h = r2;
    0x00003af0 b 0x3b38                                          |     
                                                                 |     while (r0 == 0) {
    0x00003af2 mov r3, r4                                        |         r3 = r4;
    0x00003af4 mov r2, r8                                        |         r2 = r8;
    0x00003af6 mov r1, sb                                        |         r1 = sb;
    0x00003af8 mov r0, r5                                        |         r0 = r5;
    0x00003afa bl 0x3778                                         |         r0 = fcn_00003778 (r0, r1, r2, r3);
                                                                 |         if (r0 == 0) {
    0x00003afe cbz r0, 0x3b42                                    |             goto label_2;
                                                                 |         }
    0x00003b00 mov r3, r4                                        |         r3 = r4;
    0x00003b02 ldr r2, [sp, 4]                                   |         r2 = var_4h;
    0x00003b04 movs r1, 0x64                                     |         r1 = 0x64;
    0x00003b06 mov r0, r6                                        |         r0 = r6;
    0x00003b08 blx 0x1f6c                                        |         fcn_00001f6c ();
    0x00003b0c ldr r7, [r5]                                      |         r7 = *(r5);
    0x00003b0e mov r1, r4                                        |         r1 = r4;
    0x00003b10 ldr r0, [sp, 0x14]                                |         r0 = var_14h;
    0x00003b12 adds r4, 1                                        |         r4++;
    0x00003b14 blx 0x21fc                                        |         fcn_000021fc ();
    0x00003b16 sbcs.w r6, r2, sb, ror 16                         |         __asm ("sbcs.w r6, r2, sb, ror 16");
    0x00003b1a mov r2, r0                                        |         r2 = r0;
    0x00003b1c mov r0, r6                                        |         r0 = r6;
    0x00003b1e bl 0x30e4                                         |         r0 = fcn_000030e4 (r0, r1, r2);
    0x00003b22 mov r7, r0                                        |         r7 = r0;
    0x00003b24 mov r0, sl                                        |         r0 = sl;
    0x00003b26 mov r1, r7                                        |         r1 = r7;
    0x00003b28 bl 0x2eb0                                         |         fcn_00002eb0 (r0, r1);
    0x00003b2c mov r0, r7                                        |         r0 = r7;
    0x00003b2e blx 0x1da4                                        |         fcn_00001da4 ();
    0x00003b32 ldr r1, [r5, 4]!                                  |         r1 = *((r5 += 4));
                                                                 |         if (r1 == 0) {
    0x00003b36 cbz r1, 0x3b7c                                    |             goto label_3;
                                                                 |         }
    0x00003b38 mov r0, fp                                        |         r0 = fp;
    0x00003b3a blx 0x2254                                        |         r0 = fcn_00002254 ();
    0x00003b3e cmp r0, 0                                         |         
    0x00003b40 beq 0x3af2                                        |         
                                                                 |     }
                                                                 | label_2:
    0x00003b42 mov r0, sl                                        |     r0 = sl;
    0x00003b44 ldr.w fp, [sp, 0xc]                               |     fp = var_ch;
    0x00003b48 blx 0x1da4                                        |     fcn_00001da4 ();
                                                                 |     do {
    0x00003b4c ldr r0, [sp, 8]                                   |         r0 = var_8h;
    0x00003b4e blx 0x2168                                        |         g_sprintf ()
    0x00003b50 add.w r8, ip, r5, lsl 4                           |         r8 = ip + (r5 << 4);
                                                                 |         if (r0 != 0) {
    0x00003b54 cbz r0, 0x3b60                                    |             
    0x00003b56 bl 0x4a38                                         |             fcn_00004a38 (r0);
    0x00003b5a b 0x3b60                                          |             goto label_4;
                                                                 | label_0:
    0x00003b5c mov.w fp, 0                                       |             
                                                                 |         }
                                                                 | label_4:
    0x00003b60 ldr r1, [pc, 0x80]                                |         
    0x00003b62 ldr r2, [pc, 0x68]                                |         r2 = *(0x3bce);
    0x00003b64 add r1, pc                                        |         r1 = 0x774c;
    0x00003b66 ldr r2, [r1, r2]                                  |         r2 = *(0x774c);
    0x00003b68 ldr r1, [r2]                                      |         r1 = *(0x774c);
    0x00003b6a ldr r2, [sp, 0x7c]                                |         r2 = var_7ch;
    0x00003b6c eors r1, r2                                       |         r1 ^= r2;
    0x00003b6e mov.w r2, 0                                       |         r2 = 0;
                                                                 |         if (r1 != r2) {
    0x00003b72 bne 0x3bc2                                        |             goto label_5;
                                                                 |         }
    0x00003b74 mov r0, fp                                        |         r0 = fp;
    0x00003b76 add sp, 0x84                                      |         
    0x00003b78 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_3:
    0x00003b7c mov sb, r6                                        |         sb = r6;
                                                                 | label_1:
    0x00003b7e ldr r2, [pc, 0x68]                                |         
    0x00003b80 mov r3, r4                                        |         r3 = r4;
    0x00003b82 movs r1, 0x64                                     |         r1 = 0x64;
    0x00003b84 mov r0, sb                                        |         r0 = sb;
    0x00003b86 add r2, pc                                        |         r2 = 0x7774;
    0x00003b88 blx 0x1f6c                                        |         fcn_00001f6c ();
    0x00003b8c movs r2, 0                                        |         r2 = 0;
    0x00003b8e mov r0, sb                                        |         r0 = sb;
    0x00003b90 mov r1, r2                                        |         r1 = r2;
    0x00003b92 bl 0x3458                                         |         r0 = fcn_00003458 (r0, r1, r2);
    0x00003b96 mov r4, r0                                        |         r4 = r0;
    0x00003b98 bl 0x3108                                         |         r0 = fcn_00003108 ();
    0x00003b9c mov r1, r0                                        |         r1 = r0;
    0x00003b9e mov r0, r4                                        |         r0 = r4;
    0x00003ba0 blx 0x2078                                        |         r0 = fprintf_chk ();
    0x00003ba4 mov r1, r0                                        |         r1 = r0;
    0x00003ba6 mov r0, sl                                        |         r0 = sl;
    0x00003ba8 bl 0x2eb0                                         |         fcn_00002eb0 (r0, r1);
    0x00003bac mov r0, r4                                        |         r0 = r4;
    0x00003bae blx 0x1da4                                        |         fcn_00001da4 ();
    0x00003bb2 bl 0x3108                                         |         r0 = fcn_00003108 ();
    0x00003bb6 mov r1, r0                                        |         r1 = r0;
    0x00003bb8 mov r0, sl                                        |         r0 = sl;
    0x00003bba blx 0x2078                                        |         r0 = fprintf_chk ();
    0x00003bbe mov fp, r0                                        |         
    0x00003bc0 b 0x3b4c                                          |         
                                                                 |     } while (1);
                                                                 | label_5:
    0x00003bc2 blx 0x2090                                        |     fputc (r0, r1);
    0x00003bc6 nop                                               |     
    0x00003bc8 str r4, [r5, 0x34]                                |     *((r5 + 0x34)) = r4;
    0x00003bca movs r0, r0                                       |     
    0x00003bcc lsls r0, r0, 8                                    |     r0 <<= 8;
    0x00003bce movs r0, r0                                       |     
    0x00003bd0 adds r1, 0xdc                                     |     r1 += 0xdc;
    0x00003bd2 movs r0, r0                                       |     
    0x00003bd4 adds r2, 0x38                                     |     r2 += 0x38;
    0x00003bd6 movs r0, r0                                       |     
    0x00003bd8 adds r2, 0x22                                     |     r2 += 0x22;
    0x00003bda movs r0, r0                                       |     
    0x00003bdc subs r6, 0x12                                     |     r6 -= 0x12;
    0x00003bde movs r0, r0                                       |     
    0x00003be0 adds r1, 0xfe                                     |     r1 += 0xfe;
    0x00003be2 movs r0, r0                                       |     
    0x00003be4 str r4, [r7, 0x24]                                |     *((r7 + 0x24)) = r4;
    0x00003be6 movs r0, r0                                       |     
    0x00003be8 adds r1, 0x62                                     |     r1 += 0x62;
    0x00003bea movs r0, r0                                       |     
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libwsevent.so @ 0x4960 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00004960 ()                                      | void fcn_00004960 (int16_t arg2) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     r1 = arg2;
    0x00004960 ldmdbmi r2!, {r0, r1, r3, sb, sl, lr}             |     __asm ("ldmdbmi r2!, {r0, r1, r3, sb, sl, lr}");
    0x00004964 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00004968 movs r2, 0                                        |     r2 = 0;
    0x0000496a sub sp, 0xc                                       |     
    0x0000496c add r1, pc                                        |     r1 += pc;
    0x0000496e str r3, [sp, 4]                                   |     var_4h = r3;
    0x00004970 blx 0x20e0                                        |     r0 = fcn_000020e0 ();
    0x00004974 mov r3, r0                                        |     r3 = r0;
    0x00004976 str r0, [sp]                                      |     *(sp) = r0;
    0x00004978 ldr r0, [r0]                                      |     r0 = *(r0);
    0x0000497a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000497c beq 0x4a28                                        |         goto label_5;
                                                                 |     }
    0x0000497e ldr.w sl, [pc, 0xb0]                              |     
    0x00004982 mov sb, r3                                        |     sb = r3;
    0x00004984 ldr r5, [pc, 0xac]                                |     
    0x00004986 movs r7, 0                                        |     r7 = 0;
    0x00004988 add sl, pc                                        |     sl = 0x93be;
    0x0000498a add r5, pc                                        |     r5 = 0x93c2;
                                                                 | label_1:
    0x0000498c movs r2, 0                                        |     r2 = 0;
    0x0000498e mov r1, sl                                        |     r1 = sl;
    0x00004990 blx 0x20e0                                        |     r0 = fcn_000020e0 ();
    0x00004994 mov r8, r0                                        |     r8 = r0;
    0x00004996 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00004998 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000499a beq 0x4a24                                        |         goto label_6;
                                                                 |     }
    0x0000499c mov r4, r8                                        |     r4 = r8;
    0x0000499e movs r6, 0                                        |     r6 = 0;
    0x000049a0 b 0x49cc                                          |     
                                                                 |     while (r2 != 0) {
    0x000049a2 blx 0x1dc8                                        |         r0 = fcn_00001dc8 ();
                                                                 |         if (r0 == 0) {
    0x000049a6 cbz r0, 0x49dc                                    |             goto label_7;
                                                                 |         }
    0x000049a8 mov r1, fp                                        |         r1 = fp;
    0x000049aa mov r0, r7                                        |         r0 = r7;
    0x000049ac cmp.w fp, 0                                       |         
                                                                 |         if (fp == 0) {
    0x000049b0 beq 0x4a0e                                        |             goto label_8;
                                                                 |         }
    0x000049b2 blx 0x1edc                                        |         r0 = fcn_00001edc ();
    0x000049b6 mov r7, r0                                        |         r7 = r0;
    0x000049b8 mov r0, r6                                        |         r0 = r6;
    0x000049ba blx 0x1cc8                                        |         fcn_00001cc8 ();
    0x000049be mov r0, fp                                        |         r0 = fp;
    0x000049c0 blx 0x1de0                                        |         r0 = fcn_00001de0 ();
    0x000049c4 mov r6, r0                                        |         r6 = r0;
                                                                 | label_2:
    0x000049c6 ldr r0, [r4, 4]!                                  |         r0 = *((r4 += 4));
                                                                 |         if (r0 == 0) {
    0x000049ca cbz r0, 0x49ea                                    |             goto label_3;
                                                                 |         }
                                                                 | label_0:
    0x000049cc bl 0x4100                                         |         fcn_00004100 (r0);
    0x000049d0 ldr r1, [r4]                                      |         r1 = *(r4);
    0x000049d2 mov fp, r0                                        |         
    0x000049d4 mov r0, r5                                        |         r0 = r5;
    0x000049d6 ldrb r2, [r1]                                     |         r2 = *(r1);
    0x000049d8 cmp r2, 0                                         |         
    0x000049da bne 0x49a2                                        |         
                                                                 |     }
                                                                 | label_7:
    0x000049dc mov r0, fp                                        |     r0 = fp;
    0x000049de blx 0x1cc8                                        |     fcn_00001cc8 ();
    0x000049e2 ldr r0, [r4, 4]!                                  |     r0 = *((r4 += 4));
    0x000049e6 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000049e8 bne 0x49cc                                        |         goto label_0;
                                                                 |     }
                                                                 | label_3:
    0x000049ea mov r0, r6                                        |     r0 = r6;
    0x000049ec blx 0x1cc8                                        |     fcn_00001cc8 ();
    0x000049f0 mov r0, r8                                        |     r0 = r8;
    0x000049f2 blx 0x2168                                        |     g_sprintf ()
    0x000049f6 ldr r0, [sb, 4]!                                  |     r0 = *((sb += 4));
    0x000049fa cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000049fc bne 0x498c                                        |         goto label_1;
                                                                 |     }
                                                                 | label_4:
    0x000049fe ldr r0, [sp]                                      |     r0 = *(sp);
    0x00004a00 blx 0x2168                                        |     g_sprintf ()
    0x00004a04 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x00004a06 str r7, [r3]                                      |     *(r3) = r7;
    0x00004a08 add sp, 0xc                                       |     
    0x00004a0a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_8:
    0x00004a0e mov r0, r6                                        |     r0 = r6;
    0x00004a10 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00004a12 beq 0x49c6                                        |         goto label_2;
                                                                 |     }
    0x00004a14 blx 0x1de0                                        |     r0 = fcn_00001de0 ();
    0x00004a18 mov r1, r0                                        |     r1 = r0;
    0x00004a1a mov r0, r7                                        |     r0 = r7;
    0x00004a1c blx 0x1edc                                        |     r0 = fcn_00001edc ();
    0x00004a20 mov r7, r0                                        |     r7 = r0;
    0x00004a22 b 0x49c6                                          |     goto label_2;
                                                                 | label_6:
    0x00004a24 mov r6, r0                                        |     r6 = r0;
    0x00004a26 b 0x49ea                                          |     goto label_3;
                                                                 | label_5:
    0x00004a28 mov r7, r0                                        |     r7 = r0;
    0x00004a2a b 0x49fe                                          |     goto label_4;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libwsevent.so @ 0x418c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.wse_filter_add_topic_expression ()               | void wse_filter_add_topic_expression (int16_t arg_48h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int32_t var_8h_2;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int32_t var_14h_2;
                                                                 |     int16_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0000418c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00004190 mov r7, r0                                        |     r7 = r0;
    0x00004192 sub sp, 0x24                                      |     
    0x00004194 movs r0, 0                                        |     r0 = 0;
    0x00004196 mov fp, r1                                        |     
    0x00004198 mov r6, r3                                        |     r6 = r3;
    0x0000419a ldr r4, [sp, 0x48]                                |     r4 = *(arg_48h);
    0x0000419c str r2, [sp]                                      |     *(sp) = r2;
    0x0000419e blx 0x1e70                                        |     fcn_00001e70 ();
    0x000041a2 ldr r1, [pc, 0x1b4]                               |     
    0x000041a4 mov r8, r0                                        |     r8 = r0;
    0x000041a6 mov r0, r4                                        |     r0 = r4;
    0x000041a8 add r1, pc                                        |     r1 = 0x8506;
    0x000041aa blx 0x1dc8                                        |     r0 = fcn_00001dc8 ();
    0x000041ae cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000041b0 beq.w 0x434e                                      |         goto label_4;
                                                                 |     }
    0x000041b4 ldr r1, [pc, 0x1a4]                               |     
    0x000041b6 mov r0, r4                                        |     r0 = r4;
    0x000041b8 movs r2, 0                                        |     r2 = 0;
    0x000041ba add r1, pc                                        |     r1 = 0x851a;
    0x000041bc blx 0x20e0                                        |     r0 = fcn_000020e0 ();
    0x000041c0 ldr r2, [r0]                                      |     r2 = *(r0);
    0x000041c2 mov r4, r0                                        |     r4 = r0;
    0x000041c4 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x000041c6 beq.w 0x42f0                                      |         goto label_5;
                                                                 |     }
    0x000041ca ldr r3, [pc, 0x194]                               |     
    0x000041cc mov r5, r0                                        |     r5 = r0;
    0x000041ce ldr.w sl, [pc, 0x194]                             |     
    0x000041d2 ldr.w sb, [pc, 0x194]                             |     
    0x000041d6 add r3, pc                                        |     r3 = 0x853c;
    0x000041d8 strd r0, r7, [sp, 0x14]                           |     __asm ("strd r0, r7, [var_14h]");
    0x000041dc str r3, [sp, 0x10]                                |     var_10h = r3;
    0x000041de add sl, pc                                        |     sl = 0x8548;
    0x000041e0 ldr r3, [pc, 0x188]                               |     
    0x000041e2 add sb, pc                                        |     sb = 0x8550;
    0x000041e4 str r6, [sp, 0x1c]                                |     var_1ch = r6;
    0x000041e6 add r3, pc                                        |     r3 = 0x8556;
    0x000041e8 str r3, [sp, 4]                                   |     var_4h = r3;
                                                                 | label_0:
    0x000041ea ldr r0, [r5]                                      |     r0 = *(r5);
    0x000041ec movs r2, 0                                        |     r2 = 0;
    0x000041ee ldr r1, [sp, 0x10]                                |     r1 = var_10h;
    0x000041f0 blx 0x20e0                                        |     r0 = fcn_000020e0 ();
    0x000041f4 mov r4, r0                                        |     r4 = r0;
    0x000041f6 ldr r0, [r0]                                      |     r0 = *(r0);
    0x000041f8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000041fa beq 0x4282                                        |         goto label_6;
                                                                 |     }
    0x000041fc mov r7, r4                                        |     r7 = r4;
    0x000041fe strd r5, r4, [sp, 8]                              |     __asm ("strd r5, r4, [var_8h]");
                                                                 |     do {
    0x00004202 bl 0x4100                                         |         fcn_00004100 (r0);
    0x00004206 ldr r5, [r7]                                      |         r5 = *(r7);
    0x00004208 mov r4, r0                                        |         r4 = r0;
    0x0000420a movs r1, 0x3a                                     |         r1 = 0x3a;
    0x0000420c mov r0, r5                                        |         r0 = r5;
    0x0000420e blx 0x1e10                                        |         r0 = fcn_00001e10 ();
    0x00004212 mov r6, r0                                        |         r6 = r0;
    0x00004214 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00004216 beq 0x42d4                                        |             goto label_7;
                                                                 |         }
    0x00004218 blx 0x1f3c                                        |         r0 = fcn_00001f3c ();
    0x0000421c cmp r0, 1                                         |         
    0x0000421e it ls                                             |         
                                                                 |         if (r0 > 1) {
    0x00004220 movls r5, 0                                       |             r5 = 0;
                                                                 |         }
                                                                 |         if (r0 >= 1) {
    0x00004222 bls 0x422c                                        |             
    0x00004224 adds r0, r6, 1                                    |             r0 = r6 + 1;
    0x00004226 blx 0x1de0                                        |             r0 = fcn_00001de0 ();
    0x0000422a mov r5, r0                                        |             r5 = r0;
                                                                 |         }
                                                                 | label_3:
    0x0000422c mov r6, r4                                        |         r6 = r4;
                                                                 |         if (r4 != 0) {
    0x0000422e cbz r4, 0x4254                                    |             
    0x00004230 mov r1, fp                                        |             r1 = fp;
    0x00004232 mov r0, r4                                        |             r0 = r4;
    0x00004234 blx 0x1dc8                                        |             r0 = fcn_00001dc8 ();
                                                                 |             if (r0 != 0) {
    0x00004238 cbnz r0, 0x42a6                                   |                 goto label_8;
                                                                 |             }
    0x0000423a ldr r0, [sp, 4]                                   |             r0 = var_4h;
    0x0000423c blx 0x1de0                                        |             r0 = fcn_00001de0 ();
    0x00004240 mov r6, r0                                        |             r6 = r0;
                                                                 |             if (r6 == 0) {
                                                                 | label_2:
    0x00004242 cbz r6, 0x4254                                    |                 goto label_9;
                                                                 |             }
    0x00004244 mov r1, r6                                        |             r1 = r6;
    0x00004246 mov r0, r8                                        |             r0 = r8;
    0x00004248 blx 0x220c                                        |             fcn_0000220c ();
    0x0000424c mov r1, sl                                        |             r1 = sl;
    0x0000424e mov r0, r8                                        |             r0 = r8;
    0x00004250 blx 0x220c                                        |             fcn_0000220c ();
                                                                 |         }
                                                                 | label_9:
    0x00004254 mov r1, r5                                        |         r1 = r5;
    0x00004256 mov r0, sb                                        |         r0 = sb;
    0x00004258 blx 0x1dc8                                        |         r0 = fcn_00001dc8 ();
                                                                 |         if (r0 == 0) {
    0x0000425c cbz r0, 0x429a                                    |             goto label_10;
                                                                 |         }
                                                                 |         if (r5 != 0) {
    0x0000425e cbz r5, 0x4264                                    |             
    0x00004260 ldrb r3, [r5]                                     |             r3 = *(r5);
                                                                 |             if (r3 != 0) {
    0x00004262 cbnz r3, 0x42ba                                   |                 goto label_11;
                                                                 |             }
                                                                 |         }
                                                                 | label_1:
    0x00004264 mov r0, r4                                        |         r0 = r4;
    0x00004266 blx 0x1cc8                                        |         fcn_00001cc8 ();
    0x0000426a mov r0, r5                                        |         r0 = r5;
    0x0000426c blx 0x1cc8                                        |         fcn_00001cc8 ();
    0x00004270 mov r0, r6                                        |         r0 = r6;
    0x00004272 blx 0x1cc8                                        |         fcn_00001cc8 ();
    0x00004276 ldr r0, [r7, 4]!                                  |         r0 = *((r7 += 4));
    0x0000427a cmp r0, 0                                         |         
    0x0000427c bne 0x4202                                        |         
                                                                 |     } while (r0 != 0);
    0x0000427e ldrd r5, r4, [sp, 8]                              |     __asm ("ldrd r5, r4, [var_8h]");
                                                                 | label_6:
    0x00004282 mov r0, r4                                        |     r0 = r4;
    0x00004284 blx 0x2168                                        |     g_sprintf ()
    0x00004288 ldr r3, [r5, 4]!                                  |     r3 = *((r5 += 4));
                                                                 |     if (r3 == 0) {
    0x0000428c cbz r3, 0x42ea                                    |         goto label_12;
                                                                 |     }
    0x0000428e ldr r1, [pc, 0xe0]                                |     
    0x00004290 mov r0, r8                                        |     r0 = r8;
    0x00004292 add r1, pc                                        |     r1 = 0x8608;
    0x00004294 blx 0x220c                                        |     fcn_0000220c ();
    0x00004298 b 0x41ea                                          |     goto label_0;
                                                                 | label_10:
    0x0000429a ldr r1, [pc, 0xd8]                                |     
    0x0000429c mov r0, r8                                        |     r0 = r8;
    0x0000429e add r1, pc                                        |     r1 = 0x8618;
    0x000042a0 blx 0x220c                                        |     fcn_0000220c ();
    0x000042a4 b 0x4264                                          |     goto label_1;
                                                                 | label_8:
    0x000042a6 ldr r1, [sp]                                      |     r1 = *(sp);
    0x000042a8 mov r0, r4                                        |     r0 = r4;
    0x000042aa blx 0x1dc8                                        |     r0 = fcn_00001dc8 ();
                                                                 |     if (r0 == 0) {
    0x000042ae cbz r0, 0x42de                                    |         goto label_13;
                                                                 |     }
    0x000042b0 mov r0, r4                                        |     r0 = r4;
    0x000042b2 blx 0x1de0                                        |     r0 = fcn_00001de0 ();
    0x000042b6 mov r6, r0                                        |     r6 = r0;
    0x000042b8 b 0x4242                                          |     goto label_2;
                                                                 | label_11:
    0x000042ba mov r1, r5                                        |     r1 = r5;
    0x000042bc mov r0, r8                                        |     r0 = r8;
    0x000042be blx 0x220c                                        |     fcn_0000220c ();
    0x000042c2 ldr r3, [r7, 4]                                   |     r3 = *((r7 + 4));
    0x000042c4 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000042c6 beq 0x4264                                        |         goto label_1;
                                                                 |     }
    0x000042c8 ldr r1, [pc, 0xac]                                |     
    0x000042ca mov r0, r8                                        |     r0 = r8;
    0x000042cc add r1, pc                                        |     r1 = 0x8648;
    0x000042ce blx 0x220c                                        |     fcn_0000220c ();
    0x000042d2 b 0x4264                                          |     goto label_1;
                                                                 | label_7:
    0x000042d4 mov r0, r5                                        |     r0 = r5;
    0x000042d6 blx 0x1de0                                        |     r0 = fcn_00001de0 ();
    0x000042da mov r5, r0                                        |     r5 = r0;
    0x000042dc b 0x422c                                          |     goto label_3;
                                                                 | label_13:
    0x000042de ldr r0, [pc, 0x9c]                                |     
    0x000042e0 add r0, pc                                        |     r0 = 0x8662;
    0x000042e2 blx 0x1de0                                        |     r0 = fcn_00001de0 ();
    0x000042e6 mov r6, r0                                        |     r6 = r0;
    0x000042e8 b 0x4242                                          |     goto label_2;
                                                                 | label_12:
    0x000042ea ldrd r4, r7, [sp, 0x14]                           |     __asm ("ldrd r4, r7, [var_14h]");
    0x000042ee ldr r6, [sp, 0x1c]                                |     r6 = var_1ch;
                                                                 | label_5:
    0x000042f0 mov r0, r4                                        |     r0 = r4;
    0x000042f2 blx 0x2168                                        |     g_sprintf ()
                                                                 |     do {
    0x000042f6 mov r0, r8                                        |         r0 = r8;
    0x000042f8 movs r1, 0                                        |         r1 = 0;
    0x000042fa blx 0x1ef4                                        |         r0 = fcn_00001ef4 ();
    0x000042fe mov r4, r0                                        |         r4 = r0;
    0x00004300 cmp.w fp, 0                                       |         
                                                                 |         if (fp != 0) {
    0x00004304 beq 0x4310                                        |             
    0x00004306 ldr r0, [pc, 0x78]                                |             
    0x00004308 add r0, pc                                        |             r0 = 0x868e;
    0x0000430a blx 0x1de0                                        |             r0 = fcn_00001de0 ();
    0x0000430e mov fp, r0                                        |             
                                                                 |         }
    0x00004310 ldr r3, [sp]                                      |         r3 = *(sp);
                                                                 |         if (r3 != 0) {
    0x00004312 cbz r3, 0x431e                                    |             
    0x00004314 ldr r0, [pc, 0x6c]                                |             
    0x00004316 add r0, pc                                        |             r0 = 0x869e;
    0x00004318 blx 0x1de0                                        |             fcn_00001de0 ();
    0x0000431c str r0, [sp]                                      |             *(sp) = r0;
                                                                 |         }
    0x0000431e ldr r5, [sp]                                      |         r5 = *(sp);
    0x00004320 mov r2, r6                                        |         r2 = r6;
    0x00004322 mov r3, r4                                        |         r3 = r4;
    0x00004324 mov r0, fp                                        |         r0 = fp;
    0x00004326 mov r1, r5                                        |         r1 = r5;
    0x00004328 bl 0x4fb8                                         |         r0 = fcn_00004fb8 (r0, r1, r2, r3);
    0x0000432c mov r1, r0                                        |         r1 = r0;
    0x0000432e ldr r0, [r7]                                      |         r0 = *(r7);
    0x00004330 blx 0x1edc                                        |         fcn_00001edc ();
    0x00004334 str r0, [r7]                                      |         *(r7) = r0;
    0x00004336 mov r0, fp                                        |         r0 = fp;
    0x00004338 blx 0x1cc8                                        |         fcn_00001cc8 ();
    0x0000433c mov r0, r5                                        |         r0 = r5;
    0x0000433e blx 0x1cc8                                        |         fcn_00001cc8 ();
    0x00004342 mov r0, r4                                        |         r0 = r4;
    0x00004344 add sp, 0x24                                      |         
    0x00004346 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |         
    0x0000434a b.w 0x1cc4                                        |         void (*0x1cc4)() ();
                                                                 | label_4:
    0x0000434e mov r1, r4                                        |         r1 = r4;
    0x00004350 mov r0, r8                                        |         r0 = r8;
    0x00004352 blx 0x220c                                        |         fcn_0000220c ();
    0x00004356 b 0x42f6                                          |         
                                                                 |     } while (1);
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libwsevent.so @ 0x44e4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.wse_filter_to_subscription ()                    | void wse_filter_to_subscription (int16_t arg_0h, int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x000044e4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000044e8 mov r8, r1                                        |     r8 = r1;
    0x000044ea ldr r1, [pc, 0x35c]                               |     
    0x000044ec mov r7, r2                                        |     r7 = r2;
    0x000044ee movs r3, 0                                        |     r3 = 0;
    0x000044f0 sub sp, 0x24                                      |     
    0x000044f2 ldr r2, [pc, 0x358]                               |     r2 = *(0x484e);
    0x000044f4 mov sb, r0                                        |     sb = r0;
    0x000044f6 add r1, pc                                        |     r1 = 0x8d44;
    0x000044f8 mov r0, r3                                        |     r0 = r3;
    0x000044fa ldr r2, [r1, r2]                                  |     
    0x000044fc ldr r2, [r2]                                      |     r2 = *(0x8d44);
    0x000044fe str r2, [sp, 0x1c]                                |     var_1ch = r2;
    0x00004500 mov.w r2, 0                                       |     r2 = 0;
    0x00004504 strd r3, r3, [sp, 0x14]                           |     __asm ("strd r3, r3, [var_14h]");
    0x00004508 bl 0x2eec                                         |     fcn_00002eec (r0);
    0x0000450c ldr.w r4, [sb]                                    |     r4 = *(sb);
    0x00004510 mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r4 == 0) {
    0x00004512 cbz r4, 0x455e                                    |         goto label_11;
                                                                 |     }
    0x00004514 add r6, sp, 0x18                                  |     r6 += var_18h;
    0x00004516 b 0x451c                                          |     
                                                                 |     while (r0 != 0) {
    0x00004518 ldr r4, [r4, 4]                                   |         r4 = *((r4 + 4));
                                                                 |         if (r4 == 0) {
    0x0000451a cbz r4, 0x455e                                    |             goto label_11;
                                                                 |         }
    0x0000451c ldr r0, [r4]                                      |         r0 = *(r4);
    0x0000451e mov r2, r6                                        |         r2 = r6;
    0x00004520 mov r1, r5                                        |         r1 = r5;
    0x00004522 bl 0x50f8                                         |         r0 = fcn_000050f8 (r0, r1, r2);
    0x00004526 cmp r0, 0                                         |         
    0x00004528 bne 0x4518                                        |         
                                                                 |     }
                                                                 | label_0:
    0x0000452a add r0, sp, 0x14                                  |     r0 += var_14h;
    0x0000452c ldr r1, [sp, 0x18]                                |     r1 = var_18h;
    0x0000452e blx 0x1f54                                        |     fcn_00001f54 ();
    0x00004532 mov r0, r5                                        |     r0 = r5;
    0x00004534 blx 0x1da4                                        |     fcn_00001da4 ();
                                                                 | label_7:
    0x00004538 mov r0, r7                                        |     r0 = r7;
    0x0000453a ldr r1, [sp, 0x14]                                |     r1 = var_14h;
    0x0000453c blx 0x1f54                                        |     fcn_00001f54 ();
    0x00004540 movs r0, 0                                        |     r0 = 0;
                                                                 | label_4:
    0x00004542 ldr r2, [pc, 0x30c]                               |     
    0x00004544 ldr r3, [pc, 0x304]                               |     r3 = *(0x484c);
    0x00004546 add r2, pc                                        |     r2 = 0x8d9c;
    0x00004548 ldr r3, [r2, r3]                                  |     r3 = *(0x8d9c);
    0x0000454a ldr r2, [r3]                                      |     r2 = *(0x8d9c);
    0x0000454c ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x0000454e eors r2, r3                                       |     r2 ^= r3;
    0x00004550 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00004554 bne.w 0x4842                                      |         goto label_12;
                                                                 |     }
    0x00004558 add sp, 0x24                                      |     
    0x0000455a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_11:
    0x0000455e ldr.w r4, [sb, 4]                                 |     r4 = *((sb + 4));
                                                                 |     if (r4 == 0) {
    0x00004562 cbz r4, 0x457c                                    |         goto label_13;
                                                                 |     }
    0x00004564 add r6, sp, 0x18                                  |     r6 += var_18h;
    0x00004566 b 0x456c                                          |     
                                                                 |     while (r0 != 0) {
    0x00004568 ldr r4, [r4, 4]                                   |         r4 = *((r4 + 4));
                                                                 |         if (r4 == 0) {
    0x0000456a cbz r4, 0x457c                                    |             goto label_13;
                                                                 |         }
    0x0000456c ldr r0, [r4]                                      |         r0 = *(r4);
    0x0000456e mov r2, r6                                        |         r2 = r6;
    0x00004570 mov r1, r5                                        |         r1 = r5;
    0x00004572 bl 0x4bf0                                         |         r0 = fcn_00004bf0 (r0, r1, r2);
    0x00004576 cmp r0, 0                                         |         
    0x00004578 bne 0x4568                                        |         
                                                                 |     }
    0x0000457a b 0x452a                                          |     goto label_0;
                                                                 | label_13:
    0x0000457c bl 0x3108                                         |     r0 = fcn_00003108 ();
    0x00004580 mov r1, r0                                        |     r1 = r0;
    0x00004582 mov r0, r5                                        |     r0 = r5;
    0x00004584 blx 0x2078                                        |     fprintf_chk ();
    0x00004588 bl 0x2bcc                                         |     r0 = fcn_00002bcc (r0);
    0x0000458c mov sb, r0                                        |     sb = r0;
    0x0000458e bl 0x319c                                         |     r0 = fcn_0000319c ();
    0x00004592 mov r1, r0                                        |     r1 = r0;
    0x00004594 cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x00004598 beq.w 0x476e                                      |         goto label_14;
                                                                 |     }
    0x0000459c ldr.w r3, [sb]                                    |     r3 = *(sb);
                                                                 |     if (r3 != 0) {
    0x000045a0 cbz r3, 0x45aa                                    |         
    0x000045a2 ldr r3, [r3]                                      |         r3 = *(r3);
    0x000045a4 cmp r0, r3                                        |         
                                                                 |         if (r0 == r3) {
    0x000045a6 beq.w 0x4822                                      |             goto label_15;
                                                                 |         }
                                                                 |     }
    0x000045aa mov r0, sb                                        |     r0 = sb;
    0x000045ac blx 0x1ff4                                        |     r0 = event_has_tag_at ();
    0x000045b0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000045b2 bne.w 0x4822                                      |         goto label_15;
                                                                 |     }
    0x000045b6 mov r0, r5                                        |     r0 = r5;
    0x000045b8 blx 0x1da4                                        |     fcn_00001da4 ();
    0x000045bc cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x000045c0 beq.w 0x4764                                      |         goto label_16;
                                                                 |     }
    0x000045c4 blx 0x2000                                        |     r0 = subscribe_expression_add_key_not_value ();
    0x000045c8 mov r6, r0                                        |     r6 = r0;
    0x000045ca bl 0x36f8                                         |     fcn_000036f8 ();
    0x000045ce ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x000045d2 mov r1, r0                                        |     r1 = r0;
                                                                 |     if (r3 != 0) {
    0x000045d4 cbz r3, 0x45de                                    |         
    0x000045d6 ldr r3, [r3]                                      |         r3 = *(r3);
    0x000045d8 cmp r0, r3                                        |         
                                                                 |         if (r0 == r3) {
    0x000045da beq.w 0x4760                                      |             goto label_17;
                                                                 |         }
                                                                 |     }
    0x000045de mov r0, sb                                        |     r0 = sb;
    0x000045e0 blx 0x1ff4                                        |     r0 = event_has_tag_at ();
    0x000045e4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000045e6 bne.w 0x4760                                      |         goto label_17;
                                                                 |     }
                                                                 | label_5:
    0x000045ea bl 0x34e0                                         |     r0 = fcn_000034e0 ();
    0x000045ee mov r1, r0                                        |     r1 = r0;
    0x000045f0 mov r0, sb                                        |     r0 = sb;
    0x000045f2 blx 0x2078                                        |     fprintf_chk ();
    0x000045f6 bl 0x35f0                                         |     r0 = fcn_000035f0 (r0);
    0x000045fa mov r7, r0                                        |     r7 = r0;
    0x000045fc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000045fe beq.w 0x4760                                      |         goto label_17;
                                                                 |     }
    0x00004602 ldr.w sl, [pc, 0x250]                             |     
    0x00004606 ldr.w fp, [pc, 0x250]                             |     
    0x0000460a ldr r3, [pc, 0x250]                               |     
    0x0000460c add sl, pc                                        |     sl = 0x8e66;
    0x0000460e add fp, pc                                        |     fp = 0x8e6c;
    0x00004610 add r3, pc                                        |     r3 = 0x8e72;
    0x00004612 strd fp, r3, [sp, 8]                              |     __asm ("strd fp, r3, [var_8h]");
                                                                 | label_3:
    0x00004616 ldr r4, [r7]                                      |     r4 = *(r7);
    0x00004618 bl 0x3108                                         |     r0 = fcn_00003108 ();
    0x0000461c mov r1, r0                                        |     r1 = r0;
    0x0000461e mov r0, r4                                        |     r0 = r4;
    0x00004620 blx 0x2078                                        |     fprintf_chk ();
    0x00004624 ldr r4, [r7]                                      |     r4 = *(r7);
    0x00004626 bl 0x2da0                                         |     r0 = fcn_00002da0 ();
    0x0000462a mov r1, r0                                        |     r1 = r0;
    0x0000462c mov r0, r4                                        |     r0 = r4;
    0x0000462e blx 0x2078                                        |     fprintf_chk ();
    0x00004632 bl 0x2f0c                                         |     r0 = fcn_00002f0c (r0);
    0x00004636 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00004638 beq.w 0x474e                                      |         goto label_18;
                                                                 |     }
    0x0000463c mov r5, r0                                        |     r5 = r0;
    0x0000463e str r7, [sp, 4]                                   |     var_4h_2 = r7;
    0x00004640 b 0x46ac                                          |     
                                                                 |     while (r0 == r3) {
                                                                 | label_1:
    0x00004642 bl 0x2fc0                                         |         r0 = fcn_00002fc0 ();
    0x00004646 mov r1, r0                                        |         r1 = r0;
    0x00004648 mov r0, r4                                        |         r0 = r4;
    0x0000464a blx 0x2078                                        |         fprintf_chk ();
    0x0000464e bl 0x30d8                                         |         r0 = fcn_000030d8 (r0);
    0x00004652 mov fp, r0                                        |         
    0x00004654 bl 0x2fc0                                         |         r0 = fcn_00002fc0 ();
    0x00004658 mov r1, r0                                        |         r1 = r0;
    0x0000465a mov r0, r4                                        |         r0 = r4;
    0x0000465c blx 0x2078                                        |         fprintf_chk ();
    0x00004660 bl 0x30dc                                         |         r0 = fcn_000030dc (r0);
    0x00004664 mov r7, r0                                        |         r7 = r0;
    0x00004666 bl 0x2fc0                                         |         r0 = fcn_00002fc0 ();
    0x0000466a mov r1, r0                                        |         r1 = r0;
    0x0000466c mov r0, r4                                        |         r0 = r4;
    0x0000466e blx 0x2078                                        |         fprintf_chk ();
    0x00004672 bl 0x30e0                                         |         fcn_000030e0 (r0);
    0x00004676 subs.w r3, fp, 0                                  |         r3 -= arg_0h;
    0x0000467a mov r4, r0                                        |         r4 = r0;
    0x0000467c it ne                                             |         
                                                                 |         if (r3 == arg_0h) {
    0x0000467e movne r3, 1                                       |             r3 = 1;
                                                                 |         }
    0x00004680 cmp r7, 0                                         |         
    0x00004682 ite eq                                            |         
                                                                 |         if (r7 != 0) {
    0x00004684 moveq r1, 0                                       |             r1 = 0;
                                                                 |         }
                                                                 |         if (r7 == 0) {
    0x00004686 andne r1, r3, 1                                   |             r1 = r3 & 1;
                                                                 |         }
    0x0000468a cmp r1, 0                                         |         
                                                                 |         if (r1 != 0) {
    0x0000468c bne 0x4786                                        |             goto label_19;
                                                                 |         }
    0x0000468e cmp r7, 0                                         |         
    0x00004690 ite ne                                            |         
                                                                 |         if (r7 == 0) {
    0x00004692 movne r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r7 != 0) {
    0x00004694 andeq r3, r3, 1                                   |             r3 &= 1;
                                                                 |         }
    0x00004698 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0000469a bne.w 0x47d6                                      |             goto label_20;
                                                                 |         }
    0x0000469e mov r1, r7                                        |         r1 = r7;
    0x000046a0 mov r0, r6                                        |         r0 = r6;
    0x000046a2 blx 0x1fd0                                        |         snprintf_chk ();
                                                                 | label_6:
    0x000046a6 ldr r5, [r5, 4]                                   |         r5 = *((r5 + 4));
    0x000046a8 cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x000046aa beq 0x474c                                        |             goto label_21;
                                                                 |         }
                                                                 | label_2:
    0x000046ac ldr r4, [r5]                                      |         r4 = *(r5);
    0x000046ae bl 0x3108                                         |         r0 = fcn_00003108 ();
    0x000046b2 mov r1, r0                                        |         r1 = r0;
    0x000046b4 mov r0, r4                                        |         r0 = r4;
    0x000046b6 blx 0x2078                                        |         r0 = fprintf_chk ();
    0x000046ba mov r4, r0                                        |         r4 = r0;
    0x000046bc bl 0x2fc0                                         |         r0 = fcn_00002fc0 ();
    0x000046c0 mov r1, r0                                        |         r1 = r0;
                                                                 |         if (r4 == 0) {
    0x000046c2 cbz r4, 0x46d8                                    |             goto label_22;
                                                                 |         }
    0x000046c4 ldr r3, [r4]                                      |         r3 = *(r4);
                                                                 |         if (r3 == 0) {
    0x000046c6 cbz r3, 0x46ce                                    |             goto label_23;
                                                                 |         }
    0x000046c8 ldr r3, [r3]                                      |         r3 = *(r3);
    0x000046ca cmp r0, r3                                        |         
    0x000046cc beq 0x4642                                        |         
                                                                 |     }
                                                                 | label_23:
    0x000046ce mov r0, r4                                        |     r0 = r4;
    0x000046d0 blx 0x1ff4                                        |     r0 = event_has_tag_at ();
    0x000046d4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000046d6 bne 0x4642                                        |         goto label_1;
                                                                 |     }
                                                                 | label_22:
    0x000046d8 bl 0x337c                                         |     r0 = fcn_0000337c ();
    0x000046dc mov r1, r0                                        |     r1 = r0;
    0x000046de mov r0, r4                                        |     r0 = r4;
    0x000046e0 blx 0x2078                                        |     fprintf_chk ();
    0x000046e4 bl 0x337c                                         |     r0 = fcn_0000337c ();
    0x000046e8 mov r1, r0                                        |     r1 = r0;
    0x000046ea mov r0, r4                                        |     r0 = r4;
    0x000046ec blx 0x2078                                        |     fprintf_chk ();
    0x000046f0 bl 0x3494                                         |     r0 = fcn_00003494 (r0);
    0x000046f4 mov fp, r0                                        |     
    0x000046f6 bl 0x337c                                         |     r0 = fcn_0000337c ();
    0x000046fa mov r1, r0                                        |     r1 = r0;
    0x000046fc mov r0, r4                                        |     r0 = r4;
    0x000046fe blx 0x2078                                        |     fprintf_chk ();
    0x00004702 bl 0x3498                                         |     r0 = fcn_00003498 (r0);
    0x00004706 mov r7, r0                                        |     r7 = r0;
    0x00004708 bl 0x337c                                         |     r0 = fcn_0000337c ();
    0x0000470c mov r1, r0                                        |     r1 = r0;
    0x0000470e mov r0, r4                                        |     r0 = r4;
    0x00004710 blx 0x2078                                        |     fprintf_chk ();
    0x00004714 bl 0x349c                                         |     fcn_0000349c (r0);
    0x00004716 mcr2 p1, 6, pc, c2, c11, 5                        |     __asm ("mcr2 p1, 6, pc, c2, c11, 5");
    0x0000471a lsls r0, r0, 0xc                                  |     r0 <<= 0xc;
    0x0000471c mov r4, r0                                        |     r4 = r0;
    0x0000471e it ne                                             |     
                                                                 |     if (r0 == r0) {
    0x00004720 movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x00004722 cmp r7, 0                                         |     
    0x00004724 ite eq                                            |     
                                                                 |     if (r7 != 0) {
    0x00004726 moveq r1, 0                                       |         r1 = 0;
                                                                 |     }
                                                                 |     if (r7 == 0) {
    0x00004728 andne r1, r3, 1                                   |         r1 = r3 & 1;
                                                                 |     }
    0x0000472c cmp r1, 0                                         |     
                                                                 |     if (r1 != 0) {
    0x0000472e bne 0x47ae                                        |         goto label_24;
                                                                 |     }
    0x00004730 cmp r7, 0                                         |     
    0x00004732 ite ne                                            |     
                                                                 |     if (r7 == 0) {
    0x00004734 movne r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r7 != 0) {
    0x00004736 andeq r3, r3, 1                                   |         r3 &= 1;
                                                                 |     }
    0x0000473a cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000473c bne 0x47e0                                        |         goto label_25;
                                                                 |     }
    0x0000473e mov r1, r7                                        |     r1 = r7;
    0x00004740 mov r0, r6                                        |     r0 = r6;
    0x00004742 blx 0x21bc                                        |     fcn_000021bc ();
    0x00004746 ldr r5, [r5, 4]                                   |     r5 = *((r5 + 4));
    0x00004748 cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x0000474a bne 0x46ac                                        |         goto label_2;
                                                                 |     }
                                                                 | label_21:
    0x0000474c ldr r7, [sp, 4]                                   |     r7 = var_4h_2;
                                                                 | label_18:
    0x0000474e ldr r3, [r7, 4]                                   |     r3 = *((r7 + 4));
                                                                 |     if (r3 == 0) {
    0x00004750 cbz r3, 0x4760                                    |         goto label_17;
                                                                 |     }
    0x00004752 mov r0, r6                                        |     r0 = r6;
    0x00004754 blx 0x2084                                        |     g_regex_match_simple ();
    0x00004758 ldr r7, [r7, 4]                                   |     r7 = *((r7 + 4));
    0x0000475a cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x0000475c bne.w 0x4616                                      |         goto label_3;
                                                                 |     }
                                                                 | label_17:
    0x00004760 str.w r6, [r8]                                    |     __asm ("str.w r6, [r8]");
                                                                 |     do {
                                                                 | label_16:
    0x00004764 mov r0, sb                                        |         r0 = sb;
    0x00004766 blx 0x1da4                                        |         fcn_00001da4 ();
    0x0000476a movs r0, 1                                        |         r0 = 1;
    0x0000476c b 0x4542                                          |         goto label_4;
                                                                 | label_14:
    0x0000476e mov r0, r5                                        |         r0 = r5;
    0x00004770 blx 0x1da4                                        |         fcn_00001da4 ();
    0x00004774 cmp.w r8, 0                                       |         
    0x00004778 beq 0x4764                                        |         
                                                                 |     } while (r8 == 0);
    0x0000477a blx 0x2000                                        |     r0 = subscribe_expression_add_key_not_value ();
    0x0000477e mov r6, r0                                        |     r6 = r0;
    0x00004780 bl 0x36f8                                         |     fcn_000036f8 ();
    0x00004784 b 0x45ea                                          |     goto label_5;
                                                                 | label_19:
    0x00004786 mov r2, r7                                        |     r2 = r7;
    0x00004788 mov r1, fp                                        |     r1 = fp;
    0x0000478a mov r0, r6                                        |     r0 = r6;
    0x0000478c blx 0x2224                                        |     fcn_00002224 ();
    0x00004790 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00004792 beq 0x46a6                                        |         goto label_6;
                                                                 |     }
    0x00004794 ldr r1, [pc, 0xc8]                                |     
    0x00004796 mov r0, r4                                        |     r0 = r4;
    0x00004798 add r1, pc                                        |     r1 = 0x8ffc;
    0x0000479a blx 0x1dc8                                        |     r0 = fcn_00001dc8 ();
                                                                 |     if (r0 != 0) {
    0x0000479e cbnz r0, 0x47ea                                   |         goto label_26;
                                                                 |     }
    0x000047a0 ldr r2, [pc, 0xc0]                                |     
    0x000047a2 mov r1, fp                                        |     r1 = fp;
    0x000047a4 mov r0, r6                                        |     r0 = r6;
    0x000047a6 add r2, pc                                        |     r2 = 0x900e;
    0x000047a8 blx 0x20ec                                        |     fcn_000020ec ();
    0x000047ac b 0x46a6                                          |     goto label_6;
                                                                 | label_24:
    0x000047ae mov r2, r7                                        |     r2 = r7;
    0x000047b0 mov r1, fp                                        |     r1 = fp;
    0x000047b2 mov r0, r6                                        |     r0 = r6;
    0x000047b4 blx 0x2018                                        |     event_get_value_at ();
    0x000047b8 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x000047ba beq.w 0x46a6                                      |         goto label_6;
                                                                 |     }
    0x000047be mov r1, sl                                        |     r1 = sl;
    0x000047c0 mov r0, r4                                        |     r0 = r4;
    0x000047c2 blx 0x1dc8                                        |     r0 = fcn_00001dc8 ();
                                                                 |     if (r0 != 0) {
    0x000047c6 cbnz r0, 0x4808                                   |         goto label_27;
                                                                 |     }
    0x000047c8 ldr r2, [pc, 0x9c]                                |     
    0x000047ca mov r1, fp                                        |     r1 = fp;
    0x000047cc mov r0, r6                                        |     r0 = r6;
    0x000047ce add r2, pc                                        |     r2 = 0x903a;
    0x000047d0 blx 0x20ec                                        |     fcn_000020ec ();
    0x000047d4 b 0x46a6                                          |     goto label_6;
                                                                 | label_20:
    0x000047d6 mov r1, fp                                        |     r1 = fp;
    0x000047d8 mov r0, r6                                        |     r0 = r6;
    0x000047da blx 0x1dd4                                        |     fcn_00001dd4 ();
    0x000047de b 0x46a6                                          |     goto label_6;
                                                                 | label_25:
    0x000047e0 mov r1, fp                                        |     r1 = fp;
    0x000047e2 mov r0, r6                                        |     r0 = r6;
    0x000047e4 blx 0x1fdc                                        |     g_type_check_instance_is_a ();
    0x000047e8 b 0x46a6                                          |     goto label_6;
                                                                 | label_26:
    0x000047ea ldr r1, [pc, 0x80]                                |     
    0x000047ec mov r0, r4                                        |     r0 = r4;
    0x000047ee add r1, pc                                        |     r1 = 0x9060;
    0x000047f0 blx 0x1dc8                                        |     r0 = fcn_00001dc8 ();
    0x000047f4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000047f6 bne.w 0x46a6                                      |         goto label_6;
                                                                 |     }
    0x000047fa ldr r2, [pc, 0x74]                                |     
    0x000047fc mov r1, fp                                        |     r1 = fp;
    0x000047fe mov r0, r6                                        |     r0 = r6;
    0x00004800 add r2, pc                                        |     r2 = 0x9076;
    0x00004802 blx 0x20ec                                        |     fcn_000020ec ();
    0x00004806 b 0x46a6                                          |     goto label_6;
                                                                 | label_27:
    0x00004808 ldr r1, [sp, 8]                                   |     r1 = var_8h;
    0x0000480a mov r0, r4                                        |     r0 = r4;
    0x0000480c blx 0x1dc8                                        |     r0 = fcn_00001dc8 ();
    0x00004810 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00004812 bne.w 0x46a6                                      |         goto label_6;
                                                                 |     }
    0x00004816 ldr r2, [sp, 0xc]                                 |     r2 = var_ch;
    0x00004818 mov r1, fp                                        |     r1 = fp;
    0x0000481a mov r0, r6                                        |     r0 = r6;
    0x0000481c blx 0x20ec                                        |     fcn_000020ec ();
    0x00004820 b 0x46a6                                          |     goto label_6;
                                                                 | label_15:
    0x00004822 mov r0, sb                                        |     r0 = sb;
    0x00004824 blx 0x1da4                                        |     fcn_00001da4 ();
    0x00004828 blx 0x1d28                                        |     fcn_00001d28 ();
    0x0000482c ldr r3, [pc, 0x44]                                |     
    0x0000482e mov r1, r0                                        |     r1 = r0;
    0x00004830 movs r2, 4                                        |     r2 = 4;
    0x00004832 add r0, sp, 0x14                                  |     r0 += var_14h;
    0x00004834 add r3, pc                                        |     r3 = 0x90ac;
    0x00004836 blx 0x1fa8                                        |     fcn_00001fa8 ();
    0x0000483a mov r0, r5                                        |     r0 = r5;
    0x0000483c blx 0x1da4                                        |     fcn_00001da4 ();
    0x00004840 b 0x4538                                          |     goto label_7;
                                                                 | label_12:
    0x00004842 blx 0x2090                                        |     fputc (r0, r1);
    0x00004846 nop                                               |     
    0x00004848 ldr r2, [r5, r3]                                  |     r2 = *((r5 + r3));
    0x0000484a movs r0, r0                                       |     
    0x0000484c lsls r0, r0, 8                                    |     r0 <<= 8;
    0x0000484e movs r0, r0                                       |     
    0x00004850 ldr r2, [r3, r2]                                  |     r2 = *((r3 + r2));
    0x00004852 movs r0, r0                                       |     
    0x00004854 movs r7, 0xa0                                     |     r7 = 0xa0;
    0x00004856 movs r0, r0                                       |     
    0x00004858 movs r7, 0xa6                                     |     r7 = 0xa6;
    0x0000485a movs r0, r0                                       |     
    0x0000485c cmp r0, 0x18                                      |     
    0x0000485e movs r0, r0                                       |     
    0x00004860 movs r6, 0x14                                     |     r6 = 0x14;
    0x00004862 movs r0, r0                                       |     
    0x00004864 movs r6, 0x7a                                     |     r6 = 0x7a;
    0x00004866 movs r0, r0                                       |     
    0x00004868 movs r6, 0x52                                     |     r6 = 0x52;
    0x0000486a movs r0, r0                                       |     
    0x0000486c movs r5, 0xc6                                     |     r5 = 0xc6;
    0x0000486e movs r0, r0                                       |     
    0x00004870 movs r6, 0x28                                     |     r6 = 0x28;
    0x00004872 movs r0, r0                                       |     
    0x00004874 movs r5, 0xc0                                     |     r5 = 0xc0;
    0x00004876 movs r0, r0                                       |     
    0x00004878 ldr r3, [pc, 0xd0]                                |     
    0x0000487a push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x0000487e mov r4, r0                                        |     r4 = r0;
    0x00004880 ldr r5, [pc, 0xcc]                                |     r5 = *(0x4950);
    0x00004882 sub sp, 0xc                                       |     
    0x00004884 add r3, pc                                        |     r3 = 0x91d4;
    0x00004886 mov fp, r1                                        |     
    0x00004888 ldr r2, [pc, 0xc8]                                |     r2 = *(0x4954);
    0x0000488a ldr r0, [r3, r5]                                  |     r0 = *(0x91d4);
    0x0000488c str r0, [sp]                                      |     *(sp) = r0;
    0x0000488e mov r1, r0                                        |     r1 = r0;
    0x00004890 ldr r2, [r3, r2]                                  |     r2 = *(0x91d4);
    0x00004892 mov r0, r2                                        |     r0 = r2;
    0x00004894 str r2, [sp, 4]                                   |     var_4h = r2;
    0x00004896 blx 0x1f18                                        |     fcn_00001f18 ();
    0x0000489a ldr r1, [pc, 0xbc]                                |     
    0x0000489c mov r6, r0                                        |     r6 = r0;
    0x0000489e movs r2, 0                                        |     r2 = 0;
    0x000048a0 mov r0, r4                                        |     r0 = r4;
    0x000048a2 add r1, pc                                        |     r1 = 0x9200;
    0x000048a4 blx 0x20e0                                        |     r0 = fcn_000020e0 ();
    0x000048a8 mov sl, r0                                        |     sl = r0;
    0x000048aa ldr r0, [r0]                                      |     r0 = *(r0);
                                                                 |     if (r0 == 0) {
    0x000048ac cbz r0, 0x490e                                    |         goto label_28;
                                                                 |     }
    0x000048ae ldr.w sb, [pc, 0xac]                              |     
    0x000048b2 mov r8, sl                                        |     r8 = sl;
    0x000048b4 add sb, pc                                        |     sb = 0x9216;
                                                                 | label_10:
    0x000048b6 movs r2, 0                                        |     r2 = 0;
    0x000048b8 mov r1, sb                                        |     r1 = sb;
    0x000048ba blx 0x20e0                                        |     r0 = fcn_000020e0 ();
    0x000048be mov r7, r0                                        |     r7 = r0;
    0x000048c0 ldr r0, [r0]                                      |     r0 = *(r0);
                                                                 |     if (r0 == 0) {
    0x000048c2 cbz r0, 0x4900                                    |         goto label_29;
                                                                 |     }
    0x000048c4 mov r5, r7                                        |     r5 = r7;
    0x000048c6 b 0x48d2                                          |     goto label_9;
                                                                 | label_8:
    0x000048c8 blx 0x1e1c                                        |     fcn_00001e1c ();
                                                                 |     do {
    0x000048cc ldr r0, [r5, 4]!                                  |         r0 = *((r5 += 4));
                                                                 |         if (r0 == 0) {
    0x000048d0 cbz r0, 0x4900                                    |             goto label_29;
                                                                 |         }
                                                                 | label_9:
    0x000048d2 bl 0x4100                                         |         r0 = fcn_00004100 (r0);
    0x000048d6 mov r4, r0                                        |         r4 = r0;
    0x000048d8 movs r3, 0                                        |         r3 = 0;
    0x000048da mov r0, r6                                        |         r0 = r6;
    0x000048dc mov r2, r3                                        |         r2 = r3;
    0x000048de mov r1, r4                                        |         r1 = r4;
    0x000048e0 cmp r4, 0                                         |         
    0x000048e2 beq 0x48cc                                        |         
                                                                 |     } while (r4 == 0);
    0x000048e4 blx 0x1db0                                        |     r0 = fcn_00001db0 ();
    0x000048e8 mov r2, r0                                        |     r2 = r0;
    0x000048ea mov r1, r4                                        |     r1 = r4;
    0x000048ec mov r0, r6                                        |     r0 = r6;
    0x000048ee cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x000048f0 beq 0x48c8                                        |         goto label_8;
                                                                 |     }
    0x000048f2 mov r0, r4                                        |     r0 = r4;
    0x000048f4 blx 0x1cc8                                        |     fcn_00001cc8 ();
    0x000048f8 ldr r0, [r5, 4]!                                  |     r0 = *((r5 += 4));
    0x000048fc cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000048fe bne 0x48d2                                        |         goto label_9;
                                                                 |     }
                                                                 | label_29:
    0x00004900 mov r0, r7                                        |     r0 = r7;
    0x00004902 blx 0x2168                                        |     g_sprintf ()
    0x00004906 ldr r0, [r8, 4]!                                  |     r0 = *((r8 += 4));
    0x0000490a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000490c bne 0x48b6                                        |         goto label_10;
                                                                 |     }
                                                                 | label_28:
    0x0000490e mov r0, sl                                        |     r0 = sl;
    0x00004910 blx 0x2168                                        |     g_sprintf ()
    0x00004914 mov r0, r6                                        |     r0 = r6;
    0x00004916 blx 0x1dec                                        |     r0 = fcn_00001dec ();
    0x0000491a mov r7, r0                                        |     r7 = r0;
                                                                 |     if (r0 == 0) {
    0x0000491c cbz r0, 0x4948                                    |         goto label_30;
                                                                 |     }
    0x0000491e mov r5, r0                                        |     r5 = r0;
    0x00004920 movs r4, 0                                        |     r4 = 0;
                                                                 |     do {
    0x00004922 ldr r1, [r5]                                      |         r1 = *(r5);
    0x00004924 mov r0, r4                                        |         r0 = r4;
    0x00004926 blx 0x1edc                                        |         fcn_00001edc ();
    0x0000492a ldr r5, [r5, 4]                                   |         r5 = *((r5 + 4));
    0x0000492c mov r4, r0                                        |         r4 = r0;
    0x0000492e cmp r5, 0                                         |         
    0x00004930 bne 0x4922                                        |         
                                                                 |     } while (r5 != 0);
                                                                 |     do {
    0x00004932 mov r0, r7                                        |         r0 = r7;
    0x00004934 blx 0x1e28                                        |         fcn_00001e28 ();
    0x00004938 mov r0, r6                                        |         r0 = r6;
    0x0000493a blx 0x2144                                        |         g_str_has_suffix ();
    0x0000493e str.w r4, [fp]                                    |         __asm ("str.w r4, [fp]");
    0x00004942 add sp, 0xc                                       |         
    0x00004944 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_30:
    0x00004948 mov r4, r0                                        |         r4 = r0;
    0x0000494a b 0x4932                                          |         
                                                                 |     } while (1);
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libwsevent.so @ 0x5160 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.wse_url_params_to_subscription ()                | void wse_url_params_to_subscription (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00005160 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00005164 mov sl, r2                                        |     sl = r2;
    0x00005166 ldr r2, [pc, 0xb4]                                |     
    0x00005168 mov fp, r3                                        |     
    0x0000516a mov r5, r0                                        |     r5 = r0;
    0x0000516c sub sp, 0x1c                                      |     
    0x0000516e ldr r3, [pc, 0xb0]                                |     r3 = *(0x5222);
    0x00005170 movs r6, 0                                        |     r6 = 0;
    0x00005172 add r2, pc                                        |     r2 = 0xa394;
    0x00005174 mov sb, r1                                        |     sb = r1;
    0x00005176 ldr r3, [r2, r3]                                  |     
    0x00005178 ldr r3, [r3]                                      |     r3 = *(0xa394);
    0x0000517a str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0000517c mov.w r3, 0                                       |     r3 = 0;
    0x00005180 str r6, [sp, 0x10]                                |     var_10h = r6;
    0x00005182 blx 0x1f24                                        |     r0 = fcn_00001f24 ();
    0x00005186 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r5 == 0) {
    0x00005188 cbz r5, 0x51c8                                    |         goto label_0;
                                                                 |     }
    0x0000518a ldr r1, [pc, 0x98]                                |     
    0x0000518c mov r2, r6                                        |     r2 = r6;
    0x0000518e mov r0, r5                                        |     r0 = r5;
    0x00005190 add r1, pc                                        |     r1 = 0xa3ba;
    0x00005192 blx 0x20e0                                        |     r0 = fcn_000020e0 ();
    0x00005196 ldr r3, [r0]                                      |     r3 = *(r0);
                                                                 |     if (r3 == 0) {
    0x00005198 cbz r3, 0x51c4                                    |         goto label_1;
                                                                 |     }
    0x0000519a ldr.w r8, [pc, 0x8c]                              |     
    0x0000519e mov r5, r0                                        |     r5 = r0;
    0x000051a0 ldr r7, [pc, 0x88]                                |     
    0x000051a2 ldr r6, [pc, 0x8c]                                |     
    0x000051a4 add r8, pc                                        |     r8 = 0xa3d2;
    0x000051a6 str r0, [sp, 0xc]                                 |     var_ch = r0;
    0x000051a8 add r7, pc                                        |     r7 = 0xa3d8;
    0x000051aa add r6, pc                                        |     r6 = 0xa3e0;
                                                                 |     do {
    0x000051ac str r3, [sp]                                      |         *(sp) = r3;
    0x000051ae mov r2, r7                                        |         r2 = r7;
    0x000051b0 mov r3, r8                                        |         r3 = r8;
    0x000051b2 mov r1, r6                                        |         r1 = r6;
    0x000051b4 mov r0, r4                                        |         r0 = r4;
    0x000051b6 blx 0x1d10                                        |         fcn_00001d10 ();
    0x000051ba ldr r3, [r5, 4]!                                  |         r3 = *((r5 += 4));
    0x000051bc subs r7, 4                                        |         r7 -= 4;
    0x000051be cmp r3, 0                                         |         
    0x000051c0 bne 0x51ac                                        |         
                                                                 |     } while (r3 != 0);
    0x000051c2 ldr r0, [sp, 0xc]                                 |     r0 = var_ch;
                                                                 | label_1:
    0x000051c4 blx 0x2168                                        |     g_sprintf ()
                                                                 | label_0:
    0x000051c8 cmp.w sb, 0                                       |     
                                                                 |     if (sb != 0) {
    0x000051cc beq 0x51da                                        |         
    0x000051ce ldr r1, [pc, 0x64]                                |         
    0x000051d0 mov r2, sb                                        |         r2 = sb;
    0x000051d2 mov r0, r4                                        |         r0 = r4;
    0x000051d4 add r1, pc                                        |         r1 = 0xa40e;
    0x000051d6 blx 0x2180                                        |         g_once_init_leave ();
                                                                 |     }
    0x000051da add r2, sp, 0x10                                  |     r2 += var_10h;
    0x000051dc mov r1, sl                                        |     r1 = sl;
    0x000051de mov r0, r4                                        |     r0 = r4;
    0x000051e0 blx 0x1d98                                        |     r0 = fcn_00001d98 ();
    0x000051e4 mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 == 0) {
    0x000051e6 cbz r0, 0x520c                                    |         goto label_2;
                                                                 |     }
    0x000051e8 movs r5, 1                                        |     r5 = 1;
                                                                 |     do {
    0x000051ea mov r0, r4                                        |         r0 = r4;
    0x000051ec blx 0x21f0                                        |         fcn_000021f0 ();
    0x000051f0 ldr r2, [pc, 0x44]                                |         
    0x000051f2 ldr r3, [pc, 0x2c]                                |         r3 = *(0x5222);
    0x000051f4 add r2, pc                                        |         r2 = 0xa430;
    0x000051f6 ldr r3, [r2, r3]                                  |         r3 = *(0xa430);
    0x000051f8 ldr r2, [r3]                                      |         r2 = *(0xa430);
    0x000051fa ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x000051fc eors r2, r3                                       |         r2 ^= r3;
    0x000051fe mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00005202 bne 0x5216                                        |             goto label_3;
                                                                 |         }
    0x00005204 mov r0, r5                                        |         r0 = r5;
    0x00005206 add sp, 0x1c                                      |         
    0x00005208 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_2:
    0x0000520c ldr r1, [sp, 0x10]                                |         r1 = var_10h;
    0x0000520e mov r0, fp                                        |         r0 = fp;
    0x00005210 blx 0x1f54                                        |         fcn_00001f54 ();
    0x00005214 b 0x51ea                                          |         
                                                                 |     } while (1);
                                                                 | label_3:
    0x00005216 blx 0x2090                                        |     fputc (r0, r1);
    0x0000521a nop                                               |     
    0x0000521c ldr r4, [pc, 0x1b8]                               |     r4 = *(0x53d8);
    0x0000521e movs r0, r0                                       |     
    0x00005220 lsls r0, r0, 8                                    |     r0 <<= 8;
    0x00005222 movs r0, r0                                       |     
    0x00005224 adds r0, r0, 1                                    |     r0++;
    0x00005226 movs r0, r0                                       |     
    0x00005228 adds r0, r0, 6                                    |     r0 += 6;
    0x0000522a movs r0, r0                                       |     
    0x0000522c adds r4, r1, 0                                    |     r4 = r1 + 0;
    0x0000522e movs r0, r0                                       |     
    0x00005230 adds r2, r0, 0                                    |     r2 = r0 + 0;
    0x00005232 movs r0, r0                                       |     
    0x00005234 adds r4, r3, 1                                    |     r4 = r3 + 1;
    0x00005236 movs r0, r0                                       |     
    0x00005238 ldr r3, [pc, 0x3b0]                               |     r3 = *(0x55ec);
    0x0000523a movs r0, r0                                       |     
    0x0000523c movs r0, r0                                       |     
    0x0000523e movs r0, r0                                       |     
                                                                 | }

[*] Function sprintf used 12 times libwsevent.so