[*] Binary protection state of idpoint

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


[*] Function sprintf tear down of idpoint

    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/idpoint @ 0xb0e0 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0000b0e0 ()                                          | void fcn_0000b0e0 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_0h_3;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_20h;
                                                                     |     int16_t var_24h;
                                                                     |     int16_t var_28h;
                                                                     |     int16_t var_30h;
                                                                     |     int16_t var_34h;
                                                                     |     int16_t var_38h;
                                                                     |     int16_t var_3ch;
                                                                     |     int16_t var_40h;
                                                                     |     int16_t var_44h;
                                                                     |     int16_t var_48h;
                                                                     |     int16_t var_50h;
                                                                     |     int16_t var_58h;
                                                                     |     int16_t var_5ch;
                                                                     |     int16_t var_60h;
                                                                     |     int16_t var_7ch;
                                                                     |     int32_t var_0h_2;
                                                                     |     int32_t var_4h_2;
                                                                     |     int32_t var_8h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0000b0e0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0000b0e4 mov r6, r2                                            |     r6 = r2;
    0x0000b0e6 sub sp, 0x84                                          |     
    0x0000b0e8 ldr.w r2, [pc, 0x65c]                                 |     r2 = *(0x0000b748);
    0x0000b0ec mov r4, r0                                            |     r4 = r0;
    0x0000b0ee str r3, [sp, 0x10]                                    |     var_10h = r3;
    0x0000b0f0 ldr.w r3, [pc, 0x658]                                 |     
    0x0000b0f4 add r2, pc                                            |     r2 += pc;
    0x0000b0f6 ldr.w r8, [pc, 0x658]                                 |     r8 = *(0x0000b750);
    0x0000b0fa ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0000b0fc add r8, pc                                            |     r8 += pc;
    0x0000b0fe ldr r3, [r3]                                          |     r3 = *(0xb74c);
    0x0000b100 str r3, [sp, 0x7c]                                    |     var_7ch = r3;
    0x0000b102 mov.w r3, 0                                           |     r3 = 0;
    0x0000b106 ldr.w r3, [pc, 0x64c]                                 |     r3 = *(0x0000b754);
    0x0000b10a add r3, pc                                            |     r3 += pc;
    0x0000b10c ldr r0, [r3]                                          |     r0 = *(r3);
                                                                     |     if (r0 == 0) {
    0x0000b10e cbnz r0, 0xb130                                       |         
    0x0000b110 ldr.w r3, [pc, 0x644]                                 |         
    0x0000b114 movw r2, 0x441                                        |         r2 = 0x441;
    0x0000b116 rsbs r1, r0, 0                                        |         r1 = r0 - ;
    0x0000b118 ldr.w r4, [pc, 0x640]                                 |         
    0x0000b11c ldr.w r1, [pc, 0x640]                                 |         
    0x0000b120 add r3, pc                                            |         
    0x0000b122 add r4, pc                                            |         r4 = 0x16882;
    0x0000b124 add.w r3, r3, 0x250                                   |         r3 = 0x16acc;
    0x0000b128 add r1, pc                                            |         r1 = 0x1688c;
    0x0000b12a str r4, [sp]                                          |         *(sp) = r4;
    0x0000b12c blx 0x7d28                                            |         event_declaration_set_name_space ();
                                                                     |     }
    0x0000b130 add.w sb, sp, 0x1c                                    |     sb += var_1ch;
    0x0000b134 mov r5, r1                                            |     r5 = r1;
    0x0000b136 movs r3, 0                                            |     r3 = 0;
    0x0000b138 ldrd r1, r0, [r1, 0x18]                               |     __asm ("ldrd r1, r0, [r1, 0x18]");
    0x0000b13c mov r2, sb                                            |     r2 = sb;
    0x0000b13e add.w r7, r4, 0x30                                    |     r7 = r4 + 0x30;
    0x0000b142 bl 0xadd0                                             |     r0 = fcn_0000add0 (r0, r1, r2, r3, r4, r5, r6);
    0x0000b146 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b148 beq.w 0xb308                                          |         goto label_21;
                                                                     |     }
                                                                     | label_2:
    0x0000b14c ldr r3, [r4, 0x4c]                                    |     r3 = *((r4 + 0x4c));
    0x0000b14e ldr r2, [sp, 0x38]                                    |     r2 = var_38h;
    0x0000b150 str r2, [sp, 0xc]                                     |     var_ch = r2;
                                                                     |     if (r3 == 0) {
    0x0000b152 cbz r3, 0xb17c                                        |         goto label_22;
                                                                     |     }
    0x0000b154 ldr r0, [r4, 0x50]                                    |     r0 = *((r4 + 0x50));
    0x0000b156 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b158 beq 0xb20a                                            |         goto label_23;
                                                                     |     }
    0x0000b15a ldr.w r1, [pc, 0x608]                                 |     
    0x0000b15e add r1, pc                                            |     r1 = 0x168c8;
    0x0000b160 blx 0x7e64                                            |     r0 = fcn_00007e64 ();
    0x0000b164 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000b166 bne.w 0xb4f4                                          |         goto label_24;
                                                                     |     }
                                                                     | label_5:
    0x0000b16a ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x0000b16c cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0000b16e bne 0xb210                                            |         goto label_25;
                                                                     |     }
    0x0000b170 ldr r3, [r4, 0x4c]                                    |     r3 = *((r4 + 0x4c));
    0x0000b172 cbz r3, 0xb182                                        |     
                                                                     |     while (r3 == 0) {
    0x0000b174 movs r3, 0                                            |         r3 = 0;
    0x0000b176 str.w r3, [r4, 0x16c]                                 |         __asm ("str.w r3, [r4, 0x16c]");
    0x0000b17a b 0xb182                                              |         goto label_26;
                                                                     | label_22:
    0x0000b17c ldr r3, [sp, 0xc]                                     |         r3 = var_ch;
    0x0000b17e cmp r3, 0                                             |         
                                                                     |         if (r3 != 0) {
    0x0000b180 bne 0xb210                                            |             goto label_25;
                                                                     |         }
                                                                     | label_26:
    0x0000b182 ldr.w sl, [sp, 0x3c]                                  |         sl = var_3ch;
    0x0000b186 ldr.w r1, [pc, 0x5e0]                                 |         
    0x0000b18a mov r0, sl                                            |         r0 = sl;
    0x0000b18c add r1, pc                                            |         r1 = 0x168fa;
    0x0000b18e blx 0x7e64                                            |         fcn_00007e64 ();
    0x0000b192 ldr.w r3, [pc, 0x5d8]                                 |         
    0x0000b196 movs r1, 0x40                                         |         r1 = 0x40;
    0x0000b198 ldr.w r2, [pc, 0x5d4]                                 |         
    0x0000b19c movs r0, 0                                            |         r0 = 0;
    0x0000b19e str.w sl, [sp]                                        |         __asm ("str.w sl, [sp]");
    0x0000b1a2 add r3, pc                                            |         r3 = 0x16914;
    0x0000b1a4 add r2, pc                                            |         r2 = 0x16918;
    0x0000b1a6 blx 0x7440                                            |         nbmem_done ();
    0x0000b1aa movs r3, 0                                            |         r3 = 0;
    0x0000b1ac strd r3, r3, [r4, 0x168]                              |         __asm ("strd r3, r3, [r4, 0x168]");
                                                                     | label_0:
    0x0000b1b0 cmp r6, 0                                             |         
                                                                     |         if (r6 == 0) {
    0x0000b1b2 beq.w 0xb2da                                          |             goto label_27;
                                                                     |         }
                                                                     | label_1:
    0x0000b1b6 mov r0, r7                                            |         r0 = r7;
    0x0000b1b8 add.w r6, r4, 0x18                                    |         r6 = r4 + 0x18;
    0x0000b1bc bl 0xa280                                             |         fcn_0000a280 (r0);
    0x0000b1c0 movs r2, 0x60                                         |         r2 = 0x60;
    0x0000b1c2 mov r1, sb                                            |         r1 = sb;
    0x0000b1c4 mov r0, r7                                            |         r0 = r7;
    0x0000b1c6 blx 0x7b34                                            |         fcn_00007b34 ();
    0x0000b1ca mov r0, r6                                            |         r0 = r6;
    0x0000b1cc blx 0x781c                                            |         fcn_0000781c ();
    0x0000b1d0 movs r1, 0x20                                         |         r1 = 0x20;
    0x0000b1d2 mov r0, r6                                            |         r0 = r6;
    0x0000b1d4 blx 0x7aa0                                            |         g_key_file_new ();
    0x0000b1d8 ldr.w r2, [pc, 0x598]                                 |         r2 = *(0x0000b774);
    0x0000b1dc ldr.w r3, [pc, 0x56c]                                 |         r3 = *(0xb74c);
    0x0000b1e0 str r0, [r4, 8]                                       |         *((r4 + 8)) = r0;
    0x0000b1e2 add r2, pc                                            |         r2 += pc;
    0x0000b1e4 ldr r3, [r2, r3]                                      |         r3 = *((r2 + r3));
    0x0000b1e6 ldr r2, [r3]                                          |         r2 = *(0xb74c);
    0x0000b1e8 ldr r3, [sp, 0x7c]                                    |         r3 = var_7ch;
    0x0000b1ea eors r2, r3                                           |         r2 ^= r3;
    0x0000b1ec mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0000b1f0 bne.w 0xb742                                          |             goto label_28;
                                                                     |         }
    0x0000b1f4 ldr.w r2, [pc, 0x580]                                 |         r2 = "ove";
    0x0000b1f8 mov r3, r6                                            |         r3 = r6;
    0x0000b1fa mov r1, r5                                            |         r1 = r5;
    0x0000b1fc ldr.w r2, [r8, r2]                                    |         r2 = *((r8 + r2));
    0x0000b200 add sp, 0x84                                          |         
    0x0000b202 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}            |         
    0x0000b206 b.w 0x71dc                                            |         void (*0x71dc)() ();
                                                                     | label_23:
    0x0000b20a ldr r3, [sp, 0xc]                                     |         r3 = var_ch;
    0x0000b20c cmp r3, 0                                             |         
    0x0000b20e beq 0xb174                                            |         
                                                                     |     }
                                                                     | label_25:
    0x0000b210 ldr.w fp, [sp, 0x3c]                                  |     fp = var_3ch;
    0x0000b214 ldr.w r1, [pc, 0x564]                                 |     
    0x0000b216 asrs r4, r4, 0x15                                     |     r4 >>= 0x15;
    0x0000b218 mov r0, fp                                            |     r0 = fp;
    0x0000b21a add r1, pc                                            |     r1 = 0x1699a;
    0x0000b21c blx 0x7e64                                            |     r0 = fcn_00007e64 ();
    0x0000b220 mov sl, r0                                            |     sl = r0;
    0x0000b222 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b224 beq.w 0xb498                                          |         goto label_29;
                                                                     |     }
                                                                     | label_3:
    0x0000b228 cmp.w fp, 0                                           |     
                                                                     |     if (fp == 0) {
    0x0000b22c beq 0xb1b0                                            |         goto label_0;
                                                                     |     }
    0x0000b22e ldr.w r1, [pc, 0x550]                                 |     
    0x0000b232 mov r0, fp                                            |     r0 = fp;
    0x0000b234 add r1, pc                                            |     r1 = 0x169ba;
    0x0000b236 blx 0x7e64                                            |     r0 = fcn_00007e64 ();
    0x0000b23a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b23c beq 0xb1b0                                            |         goto label_0;
                                                                     |     }
    0x0000b23e ldr.w r3, [pc, 0x544]                                 |     r3 = *(0x0000b784);
    0x0000b242 mov.w sl, 0                                           |     sl = 0;
    0x0000b246 add.w r2, r4, 0x168                                   |     r2 = r4 + 0x168;
    0x0000b24a mov r1, fp                                            |     r1 = fp;
    0x0000b24c str.w sl, [r4, 0x16c]                                 |     __asm ("str.w sl, [r4, 0x16c]");
    0x0000b250 add r3, pc                                            |     r3 += pc;
    0x0000b252 ldr r0, [r3, 0xc]                                     |     r0 = *((r3 + 0xc));
    0x0000b254 ldr.w r3, [r4, 0x168]                                 |     r3 = *((r4 + 0x168));
    0x0000b258 str r3, [sp, 0x14]                                    |     var_14h = r3;
    0x0000b25a blx 0x7dac                                            |     r0 = event_declaration_add_key ();
    0x0000b25e cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000b260 bne.w 0xb550                                          |         goto label_30;
                                                                     |     }
    0x0000b264 ldr.w r1, [r4, 0x168]                                 |     r1 = *((r4 + 0x168));
    0x0000b268 ldr r0, [sp, 0x14]                                    |     r0 = var_14h;
    0x0000b26a blx 0x7e64                                            |     fcn_00007e64 ();
    0x0000b26c invalid                                               |     
    0x0000b270 eor r3, r3, 1                                         |     r3 ^= 1;
    0x0000b274 cmp r0, 0                                             |     
    0x0000b276 ite eq                                                |     
                                                                     |     if (r0 != 0) {
    0x0000b278 moveq r3, 0                                           |         r3 = 0;
                                                                     |     }
                                                                     |     if (r0 == 0) {
    0x0000b27a andne r3, r3, 1                                       |         r3 &= 1;
                                                                     |     }
    0x0000b27e rsb.w r3, r3, 2                                       |     r3 = 2 - r3;
                                                                     | label_9:
    0x0000b282 ldr r0, [sp, 0x14]                                    |     r0 = var_14h;
    0x0000b284 str.w r3, [r4, 0x16c]                                 |     __asm ("str.w r3, [r4, 0x16c]");
    0x0000b288 blx 0x7928                                            |     fcn_00007928 ();
    0x0000b28c ldr.w r1, [pc, 0x4f8]                                 |     
    0x0000b290 mov r0, fp                                            |     r0 = fp;
    0x0000b292 add r1, pc                                            |     r1 = 0x16a1e;
    0x0000b294 blx 0x7e64                                            |     r0 = fcn_00007e64 ();
    0x0000b298 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b29a beq 0xb1b0                                            |         goto label_0;
                                                                     |     }
    0x0000b29c ldr.w r2, [pc, 0x4ec]                                 |     r2 = *(0x0000b78c);
    0x0000b2a0 mov r1, fp                                            |     r1 = fp;
    0x0000b2a2 ldr.w r3, [pc, 0x4ec]                                 |     r3 = *(0xb792);
    0x0000b2a6 add r2, pc                                            |     r2 += pc;
    0x0000b2a8 ldr.w r3, [r8, r3]                                    |     r3 = *((r8 + r3));
    0x0000b2ac str r4, [sp]                                          |     *(sp) = r4;
    0x0000b2ae ldr r0, [r2, 0xc]                                     |     r0 = *((r2 + 0xc));
    0x0000b2b0 movs r2, 0                                            |     r2 = 0;
    0x0000b2b2 blx 0x7c68                                            |     r0 = cdb_set_transaction_commit_default_retries ();
    0x0000b2b6 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b2b8 beq.w 0xb1b0                                          |         goto label_0;
                                                                     |     }
    0x0000b2bc ldr.w r3, [pc, 0x4d4]                                 |     
    0x0000b2c0 movs r1, 0x10                                         |     r1 = 0x10;
    0x0000b2c2 ldr.w r2, [pc, 0x4d4]                                 |     
    0x0000b2c6 strd r0, fp, [sp]                                     |     __asm ("strd r0, fp, [sp]");
    0x0000b2ca movs r0, 0                                            |     r0 = 0;
    0x0000b2cc add r3, pc                                            |     r3 = 0x16a64;
    0x0000b2ce add r2, pc                                            |     r2 = 0x16a6c;
    0x0000b2d0 blx 0x7440                                            |     nbmem_done ();
    0x0000b2d4 cmp r6, 0                                             |     
                                                                     |     if (r6 != 0) {
    0x0000b2d6 bne.w 0xb1b6                                          |         goto label_1;
                                                                     |     }
                                                                     | label_27:
    0x0000b2da ldr.w r3, [pc, 0x4c0]                                 |     r3 = *(0x0000b79c);
    0x0000b2de add r3, pc                                            |     r3 += pc;
    0x0000b2e0 ldr r2, [r3, 8]                                       |     r2 = *((r3 + 8));
    0x0000b2e2 cmp r2, 2                                             |     
                                                                     |     if (r2 != 2) {
    0x0000b2e4 beq 0xb31c                                            |         
    0x0000b2e6 ldr.w r3, [pc, 0x4b8]                                 |         
    0x0000b2ea movw r2, 0x599                                        |         r2 = 0x599;
    0x0000b2ee ldr.w r4, [pc, 0x4b4]                                 |         
    0x0000b2f2 mov r0, r6                                            |         r0 = r6;
    0x0000b2f4 ldr.w r1, [pc, 0x4b0]                                 |         
    0x0000b2f8 add r3, pc                                            |         
    0x0000b2fa add r4, pc                                            |         r4 = 0x16aa4;
    0x0000b2fc add.w r3, r3, 0x268                                   |         r3 = 0x16d06;
    0x0000b300 add r1, pc                                            |         r1 = 0x16aac;
    0x0000b302 str r4, [sp]                                          |         *(sp) = r4;
    0x0000b304 blx 0x7d28                                            |         event_declaration_set_name_space ();
                                                                     | label_21:
    0x0000b308 ldr.w r3, [pc, 0x4a0]                                 |         
    0x0000b30c movs r1, 8                                            |         r1 = 8;
    0x0000b30e ldr.w r2, [pc, 0x4a0]                                 |         
    0x0000b312 add r3, pc                                            |         r3 = 0x16ac2;
    0x0000b314 add r2, pc                                            |         r2 = 0x16aca;
    0x0000b316 blx 0x7440                                            |         nbmem_done ();
    0x0000b31a b 0xb14c                                              |         goto label_2;
                                                                     |     }
    0x0000b31c ldr r3, [r3]                                          |     r3 = *(r3);
    0x0000b31e cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0000b320 beq.w 0xb4b0                                          |         goto label_31;
                                                                     |     }
    0x0000b324 ldr r3, [r4, 0x64]                                    |     r3 = *((r4 + 0x64));
    0x0000b326 ldr r2, [sp, 0x50]                                    |     r2 = var_50h;
    0x0000b328 cmp r2, r3                                            |     
    0x0000b32a it eq                                                 |     
                                                                     |     if (r2 != r3) {
    0x0000b32c moveq fp, r6                                          |         
                                                                     |     }
                                                                     |     if (r2 != r3) {
    0x0000b32e beq 0xb342                                            |         
    0x0000b330 cmp r3, 1                                             |         
                                                                     |         if (r3 == 1) {
    0x0000b332 beq.w 0xb6ea                                          |             goto label_32;
                                                                     |         }
    0x0000b336 cmp r3, 2                                             |         
    0x0000b338 it ne                                                 |         
                                                                     |         if (r3 == 2) {
    0x0000b33a movne fp, 1                                           |             
                                                                     |         }
                                                                     |         if (r3 == 2) {
    0x0000b33e beq.w 0xb5ac                                          |             goto label_33;
                                                                     |         }
                                                                     |     }
                                                                     | label_12:
    0x0000b342 ldr.w sl, [sp, 0x1c]                                  |     sl = var_1ch;
    0x0000b346 ldr r3, [r4, 0x30]                                    |     r3 = *((r4 + 0x30));
    0x0000b348 cmp sl, r3                                            |     
                                                                     |     if (sl != r3) {
    0x0000b34a beq 0xb364                                            |         
    0x0000b34c cmp r3, 1                                             |         
                                                                     |         if (r3 == 1) {
    0x0000b34e beq.w 0xb6fa                                          |             goto label_34;
                                                                     |         }
    0x0000b352 cmp r3, 3                                             |         
                                                                     |         if (r3 == 3) {
    0x0000b354 beq.w 0xb70a                                          |             goto label_35;
                                                                     |         }
    0x0000b358 cmp r3, 2                                             |         
    0x0000b35a it ne                                                 |         
                                                                     |         if (r3 == 2) {
    0x0000b35c movne fp, 1                                           |             
                                                                     |         }
                                                                     |         if (r3 == 2) {
    0x0000b360 beq.w 0xb5ca                                          |             goto label_36;
                                                                     |         }
                                                                     |     }
                                                                     | label_13:
    0x0000b364 ldr r3, [r4, 0x6c]                                    |     r3 = *((r4 + 0x6c));
    0x0000b366 ldr r0, [sp, 0x58]                                    |     r0 = var_58h;
    0x0000b368 clz r2, r3                                            |     r2 &= r3;
    0x0000b36c add.w ip, r3, -1                                      |     
    0x0000b370 clz r1, r0                                            |     r1 &= r0;
    0x0000b374 lsrs r2, r2, 5                                        |     r2 >>= 5;
    0x0000b376 lsrs r1, r1, 5                                        |     r1 >>= 5;
    0x0000b378 cmp r1, r2                                            |     
                                                                     |     if (r1 == r2) {
    0x0000b37a beq.w 0xb4cc                                          |         goto label_37;
                                                                     |     }
    0x0000b37e cmp.w ip, 1                                           |     
                                                                     |     if (ip < 1) {
    0x0000b382 bls.w 0xb4e2                                          |         goto label_10;
                                                                     |     }
    0x0000b386 subs r3, 3                                            |     r3 -= 3;
    0x0000b388 cmp r3, 1                                             |     
    0x0000b38a it hi                                                 |     
                                                                     |     if (r3 <= 1) {
    0x0000b38c movhi fp, 1                                           |         
                                                                     |     }
                                                                     |     if (r3 < 1) {
    0x0000b390 bls.w 0xb57a                                          |         goto label_38;
                                                                     |     }
                                                                     |     do {
                                                                     | label_4:
    0x0000b394 ldr r1, [r4, 0x70]                                    |         r1 = *((r4 + 0x70));
    0x0000b396 ldr r3, [sp, 0x5c]                                    |         r3 = var_5ch;
    0x0000b398 clz r2, r1                                            |         r2 &= r1;
    0x0000b39c clz r3, r3                                            |         r3 &= r3;
    0x0000b3a0 lsrs r2, r2, 5                                        |         r2 >>= 5;
    0x0000b3a2 lsrs r3, r3, 5                                        |         r3 >>= 5;
    0x0000b3a4 cmp r3, r2                                            |         
                                                                     |         if (r3 != r2) {
    0x0000b3a6 beq 0xb3b6                                            |             
    0x0000b3a8 subs r1, 1                                            |             r1--;
    0x0000b3aa cmp r1, 1                                             |             
    0x0000b3ac it hi                                                 |             
                                                                     |             if (r1 <= 1) {
    0x0000b3ae movhi fp, 1                                           |                 
                                                                     |             }
                                                                     |             if (r1 < 1) {
    0x0000b3b2 bls.w 0xb5f8                                          |                 goto label_39;
                                                                     |             }
                                                                     |         }
                                                                     | label_16:
    0x0000b3b6 ldr r3, [r4, 0x74]                                    |         r3 = *((r4 + 0x74));
    0x0000b3b8 ldr r2, [sp, 0x60]                                    |         r2 = var_60h;
    0x0000b3ba clz r1, r3                                            |         r1 &= r3;
    0x0000b3be add.w ip, r3, -1                                      |         
    0x0000b3c2 clz r0, r2                                            |         r0 &= r2;
    0x0000b3c6 lsrs r1, r1, 5                                        |         r1 >>= 5;
    0x0000b3c8 lsrs r0, r0, 5                                        |         r0 >>= 5;
    0x0000b3ca cmp r0, r1                                            |         
                                                                     |         if (r0 == r1) {
    0x0000b3cc beq.w 0xb51e                                          |             goto label_40;
                                                                     |         }
    0x0000b3d0 cmp.w ip, 1                                           |         
                                                                     |         if (ip < 1) {
    0x0000b3d4 bls.w 0xb534                                          |             goto label_11;
                                                                     |         }
    0x0000b3d8 subs r3, 3                                            |         r3 -= 3;
    0x0000b3da cmp r3, 1                                             |         
                                                                     |         if (r3 < 1) {
    0x0000b3dc bls.w 0xb59a                                          |             goto label_41;
                                                                     |         }
                                                                     | label_7:
    0x0000b3e0 movs r1, 0                                            |         r1 = 0;
    0x0000b3e2 mov r0, r4                                            |         r0 = r4;
    0x0000b3e4 str r2, [sp, 0x10]                                    |         var_10h = r2;
    0x0000b3e6 movs r6, 1                                            |         r6 = 1;
    0x0000b3e8 bl 0xcfc8                                             |         fcn_0000cfc8 (r0);
    0x0000b3ec ldr r2, [sp, 0x10]                                    |         r2 = var_10h;
                                                                     | label_6:
    0x0000b3ee ldr r3, [r4, 0x30]                                    |         r3 = *((r4 + 0x30));
    0x0000b3f0 cmp sl, r3                                            |         
                                                                     |         if (sl == r3) {
    0x0000b3f2 bne 0xb406                                            |             
    0x0000b3f4 ldr r1, [sp, 0x24]                                    |             r1 = var_24h;
    0x0000b3f6 ldr r3, [r4, 0x38]                                    |             r3 = *((r4 + 0x38));
    0x0000b3f8 cmp r1, r3                                            |             
                                                                     |             if (r1 != r3) {
    0x0000b3fa bne 0xb406                                            |                 goto label_14;
                                                                     |             }
    0x0000b3fc ldr r1, [sp, 0x20]                                    |             r1 = var_20h;
    0x0000b3fe ldr r3, [r4, 0x34]                                    |             r3 = *((r4 + 0x34));
    0x0000b400 cmp r1, r3                                            |             
                                                                     |             if (r1 == r3) {
    0x0000b402 beq.w 0xb5dc                                          |                 goto label_42;
                                                                     |             }
                                                                     |         }
                                                                     | label_14:
    0x0000b406 movs r6, 1                                            |         r6 = 1;
    0x0000b408 movs r1, 0                                            |         r1 = 0;
    0x0000b40a mov r0, r4                                            |         r0 = r4;
    0x0000b40c bl 0xcf90                                             |         fcn_0000cf90 (r0);
                                                                     | label_15:
    0x0000b410 ldr r3, [r4, 0x30]                                    |         r3 = *((r4 + 0x30));
    0x0000b412 ldr r2, [sp, 0x28]                                    |         r2 = var_28h;
    0x0000b414 cmp sl, r3                                            |         
    0x0000b416 str r2, [sp, 0x10]                                    |         var_10h = r2;
                                                                     |         if (sl == r3) {
    0x0000b418 bne 0xb422                                            |             
    0x0000b41a ldr r3, [r4, 0x3c]                                    |             r3 = *((r4 + 0x3c));
    0x0000b41c cmp r3, r2                                            |             
                                                                     |             if (r3 == r2) {
    0x0000b41e beq.w 0xb60a                                          |                 goto label_43;
                                                                     |             }
                                                                     |         }
                                                                     | label_17:
    0x0000b422 movs r1, 0                                            |         r1 = 0;
    0x0000b424 mov r0, r4                                            |         r0 = r4;
    0x0000b426 add.w sl, r4, 0x18                                    |         sl = r4 + 0x18;
    0x0000b42a bl 0xd2b8                                             |         fcn_0000d2b8 (r0);
    0x0000b42e cmp.w fp, 0                                           |         
                                                                     |         if (fp != 0) {
    0x0000b432 bne.w 0xb546                                          |             goto label_18;
                                                                     |         }
                                                                     | label_8:
    0x0000b436 bl 0xdf50                                             |         fcn_0000df50 ();
    0x0000b43a ldr r3, [sp, 0x10]                                    |         r3 = var_10h;
    0x0000b43c cmp r3, 1                                             |         
                                                                     |         if (r3 == 1) {
    0x0000b43e beq.w 0xb71c                                          |             goto label_44;
                                                                     |         }
                                                                     | label_19:
    0x0000b442 mov r0, r7                                            |         r0 = r7;
    0x0000b444 bl 0xa280                                             |         fcn_0000a280 (r0);
    0x0000b448 movs r2, 0x60                                         |         r2 = 0x60;
    0x0000b44a mov r1, sb                                            |         r1 = sb;
    0x0000b44c mov r0, r7                                            |         r0 = r7;
    0x0000b44e blx 0x7b34                                            |         fcn_00007b34 ();
    0x0000b452 mov r0, sl                                            |         r0 = sl;
    0x0000b454 blx 0x744c                                            |         event_producer_prepare_event ();
    0x0000b458 mov r0, sl                                            |         r0 = sl;
    0x0000b45a blx 0x781c                                            |         fcn_0000781c ();
    0x0000b45e movs r1, 0x20                                         |         r1 = 0x20;
    0x0000b460 mov r0, sl                                            |         r0 = sl;
    0x0000b462 blx 0x7aa0                                            |         g_key_file_new ();
    0x0000b466 ldr r2, [pc, 0x310]                                   |         r2 = *(0xb77a);
    0x0000b468 mov r3, sl                                            |         r3 = sl;
    0x0000b46a str r0, [r4, 8]                                       |         *((r4 + 8)) = r0;
    0x0000b46c mov r1, r5                                            |         r1 = r5;
    0x0000b46e ldr.w r2, [r8, r2]                                    |         r2 = *((r8 + r2));
    0x0000b472 blx 0x71e0                                            |         fcn_000071e0 ();
    0x0000b476 ldr r2, [pc, 0x33c]                                   |         
    0x0000b478 ldr r3, [pc, 0x2d0]                                   |         r3 = *(0xb74c);
    0x0000b47a add r2, pc                                            |         r2 = 0x16c34;
    0x0000b47c ldr r3, [r2, r3]                                      |         r3 = *(0x16c34);
    0x0000b47e ldr r2, [r3]                                          |         r2 = *(0x16c34);
    0x0000b480 ldr r3, [sp, 0x7c]                                    |         r3 = var_7ch;
    0x0000b482 eors r2, r3                                           |         r2 ^= r3;
    0x0000b484 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0000b488 bne.w 0xb742                                          |             goto label_28;
                                                                     |         }
    0x0000b48c mov r0, r4                                            |         r0 = r4;
    0x0000b48e add sp, 0x84                                          |         
    0x0000b490 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}            |         
    0x0000b494 b.w 0x94d0                                            |         void (*0x94d0)() ();
                                                                     | label_29:
    0x0000b498 ldr r3, [pc, 0x31c]                                   |         
    0x0000b49a movs r1, 0x40                                         |         r1 = 0x40;
    0x0000b49c ldr r2, [pc, 0x31c]                                   |         
    0x0000b49e str.w fp, [sp]                                        |         __asm ("str.w fp, [sp]");
    0x0000b4a2 add r3, pc                                            |         r3 = 0x16c5e;
    0x0000b4a4 add r2, pc                                            |         r2 = 0x16c64;
    0x0000b4a6 blx 0x7440                                            |         nbmem_done ();
    0x0000b4aa strd sl, sl, [r4, 0x168]                              |         __asm ("strd sl, sl, [r4, 0x168]");
    0x0000b4ae b 0xb228                                              |         goto label_3;
                                                                     | label_31:
    0x0000b4b0 ldr r3, [pc, 0x30c]                                   |         
    0x0000b4b2 movw r2, 0x59a                                        |         r2 = 0x59a;
    0x0000b4b6 ldr r4, [pc, 0x30c]                                   |         
    0x0000b4b8 mov r0, r6                                            |         r0 = r6;
    0x0000b4ba ldr r1, [pc, 0x30c]                                   |         
    0x0000b4bc add r3, pc                                            |         
    0x0000b4be add r4, pc                                            |         r4 = 0x16c88;
    0x0000b4c0 add.w r3, r3, 0x268                                   |         r3 = 0x16ee8;
    0x0000b4c4 add r1, pc                                            |         r1 = 0x16c92;
    0x0000b4c6 str r4, [sp]                                          |         *(sp) = r4;
    0x0000b4c8 blx 0x7d28                                            |         r0 = event_declaration_set_name_space ();
                                                                     | label_37:
    0x0000b4cc subs r2, r0, 1                                        |         r2 = r0 - 1;
    0x0000b4ce cmp r2, 1                                             |         
                                                                     |         if (r2 < 1) {
    0x0000b4d0 bls 0xb56c                                            |             goto label_45;
                                                                     |         }
    0x0000b4d2 cmp.w ip, 1                                           |         
    0x0000b4d6 bhi.w 0xb394                                          |         
                                                                     |     } while (ip > 1);
    0x0000b4da subs r0, 3                                            |     r0 -= 3;
    0x0000b4dc cmp r0, 1                                             |     
                                                                     |     if (r0 > 1) {
    0x0000b4de bhi.w 0xb394                                          |         goto label_4;
                                                                     |     }
                                                                     | label_10:
    0x0000b4e2 ldr r3, [r4, 4]                                       |     r3 = *((r4 + 4));
    0x0000b4e4 mov.w fp, 1                                           |     
    0x0000b4e8 ldr r1, [pc, 0x2e0]                                   |     
    0x0000b4ea ldr r0, [r3, 8]                                       |     r0 = *((r3 + 8));
    0x0000b4ec add r1, pc                                            |     r1 = 0x16cbc;
    0x0000b4ee blx 0x733c                                            |     fcn_0000733c ();
    0x0000b4f2 b 0xb394                                              |     goto label_4;
                                                                     | label_24:
    0x0000b4f4 ldr r3, [pc, 0x2d8]                                   |     
    0x0000b4f6 ldr r1, [r4, 0x50]                                    |     r1 = *((r4 + 0x50));
    0x0000b4f8 add r3, pc                                            |     r3 = 0x16ccc;
    0x0000b4fa ldr r0, [r3, 0xc]                                     |     r0 = *(0x16cd8);
    0x0000b4fc blx 0x7d10                                            |     r0 = sprintf_chk ()
    0x0000b500 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b502 beq.w 0xb16a                                          |         goto label_5;
                                                                     |     }
    0x0000b506 str r0, [sp]                                          |     *(sp) = r0;
    0x0000b508 movs r1, 0x10                                         |     r1 = 0x10;
    0x0000b50a ldr r3, [r4, 0x50]                                    |     r3 = *((r4 + 0x50));
    0x0000b50c movs r0, 0                                            |     r0 = 0;
    0x0000b50e ldr r2, [pc, 0x2c4]                                   |     
    0x0000b510 str r3, [sp, 4]                                       |     var_0h_3 = r3;
    0x0000b512 ldr r3, [pc, 0x2c4]                                   |     
    0x0000b514 add r2, pc                                            |     r2 = 0x16cee;
    0x0000b516 add r3, pc                                            |     r3 = 0x16cf4;
    0x0000b518 blx 0x7440                                            |     nbmem_done ();
    0x0000b51c b 0xb16a                                              |     goto label_5;
                                                                     | label_40:
    0x0000b51e subs r1, r2, 1                                        |     r1 = r2 - 1;
    0x0000b520 cmp r1, 1                                             |     
                                                                     |     if (r1 < 1) {
    0x0000b522 bls 0xb58c                                            |         goto label_46;
                                                                     |     }
    0x0000b524 cmp.w ip, 1                                           |     
                                                                     |     if (ip > 1) {
    0x0000b528 bhi.w 0xb3ee                                          |         goto label_6;
                                                                     |     }
    0x0000b52c subs r3, r2, 3                                        |     r3 = r2 - 3;
    0x0000b52e cmp r3, 1                                             |     
                                                                     |     if (r3 > 1) {
    0x0000b530 bhi.w 0xb3ee                                          |         goto label_6;
                                                                     |     }
                                                                     | label_11:
    0x0000b534 ldr r3, [r4, 4]                                       |     r3 = *((r4 + 4));
    0x0000b536 ldr r1, [pc, 0x2a4]                                   |     
    0x0000b538 str r2, [sp, 0x10]                                    |     var_10h = r2;
    0x0000b53a ldr r0, [r3, 8]                                       |     r0 = *((r3 + 8));
    0x0000b53c add r1, pc                                            |     r1 = 0x16d1e;
    0x0000b53e blx 0x733c                                            |     fcn_0000733c ();
    0x0000b542 ldr r2, [sp, 0x10]                                    |     r2 = var_10h;
    0x0000b544 b 0xb3e0                                              |     goto label_7;
                                                                     | label_18:
    0x0000b546 movs r1, 0                                            |     r1 = 0;
    0x0000b548 mov r0, r4                                            |     r0 = r4;
    0x0000b54a bl 0xcf34                                             |     fcn_0000cf34 (r0);
    0x0000b54e b 0xb436                                              |     goto label_8;
                                                                     | label_30:
    0x0000b550 ldr r3, [pc, 0x28c]                                   |     
    0x0000b552 movs r1, 0x40                                         |     r1 = 0x40;
    0x0000b554 ldr r2, [pc, 0x28c]                                   |     
    0x0000b556 mov r0, sl                                            |     r0 = sl;
    0x0000b558 str.w fp, [sp]                                        |     __asm ("str.w fp, [sp]");
    0x0000b55c add r3, pc                                            |     r3 = 0x16d40;
    0x0000b55e add r2, pc                                            |     r2 = 0x16d46;
    0x0000b560 blx 0x7440                                            |     nbmem_done ();
    0x0000b564 mov r3, sl                                            |     r3 = sl;
    0x0000b566 str.w sl, [r4, 0x168]                                 |     __asm ("str.w sl, [r4, 0x168]");
    0x0000b56a b 0xb282                                              |     goto label_9;
                                                                     | label_45:
    0x0000b56c subs r3, 3                                            |     r3 -= 3;
    0x0000b56e cmp r3, 1                                             |     
                                                                     |     if (r3 > 1) {
    0x0000b570 bhi.w 0xb394                                          |         goto label_4;
                                                                     |     }
    0x0000b574 cmp.w ip, 1                                           |     
                                                                     |     if (ip < 1) {
    0x0000b578 bls 0xb4e2                                            |         goto label_10;
                                                                     |     }
                                                                     | label_38:
    0x0000b57a ldr r3, [r4, 4]                                       |     r3 = *((r4 + 4));
    0x0000b57c mov.w fp, 1                                           |     
    0x0000b580 ldr r1, [pc, 0x264]                                   |     
    0x0000b582 ldr r0, [r3, 8]                                       |     r0 = *((r3 + 8));
    0x0000b584 add r1, pc                                            |     r1 = 0x16d70;
    0x0000b586 blx 0x733c                                            |     fcn_0000733c ();
    0x0000b58a b 0xb394                                              |     goto label_4;
                                                                     | label_46:
    0x0000b58c subs r3, 3                                            |     r3 -= 3;
    0x0000b58e cmp r3, 1                                             |     
                                                                     |     if (r3 > 1) {
    0x0000b590 bhi.w 0xb3ee                                          |         goto label_6;
                                                                     |     }
    0x0000b594 cmp.w ip, 1                                           |     
                                                                     |     if (ip < 1) {
    0x0000b598 bls 0xb534                                            |         goto label_11;
                                                                     |     }
                                                                     | label_41:
    0x0000b59a ldr r3, [r4, 4]                                       |     r3 = *((r4 + 4));
    0x0000b59c ldr r1, [pc, 0x24c]                                   |     
    0x0000b59e str r2, [sp, 0x10]                                    |     var_10h = r2;
    0x0000b5a0 ldr r0, [r3, 8]                                       |     r0 = *((r3 + 8));
    0x0000b5a2 add r1, pc                                            |     r1 = 0x16d92;
    0x0000b5a4 blx 0x733c                                            |     fcn_0000733c ();
    0x0000b5a8 ldr r2, [sp, 0x10]                                    |     r2 = var_10h;
    0x0000b5aa b 0xb3e0                                              |     goto label_7;
                                                                     | label_33:
    0x0000b5ac ldr r3, [r4, 4]                                       |     r3 = *((r4 + 4));
    0x0000b5ae mov.w fp, 1                                           |     
    0x0000b5b2 ldr r1, [pc, 0x23c]                                   |     
    0x0000b5b4 ldr r0, [r3, 8]                                       |     r0 = *((r3 + 8));
    0x0000b5b6 add r1, pc                                            |     r1 = 0x16dac;
    0x0000b5b8 blx 0x733c                                            |     fcn_0000733c ();
    0x0000b5bc ldr r3, [r4, 4]                                       |     r3 = *((r4 + 4));
    0x0000b5be ldr r1, [pc, 0x234]                                   |     
    0x0000b5c0 ldr r0, [r3, 8]                                       |     r0 = *((r3 + 8));
    0x0000b5c2 add r1, pc                                            |     r1 = 0x16dbc;
    0x0000b5c4 blx 0x733c                                            |     fcn_0000733c ();
    0x0000b5c8 b 0xb342                                              |     goto label_12;
                                                                     | label_36:
    0x0000b5ca ldr r3, [r4, 4]                                       |     r3 = *((r4 + 4));
    0x0000b5cc mov.w fp, 1                                           |     
    0x0000b5d0 ldr r1, [pc, 0x224]                                   |     
    0x0000b5d2 ldr r0, [r3, 8]                                       |     r0 = *((r3 + 8));
    0x0000b5d4 add r1, pc                                            |     r1 = 0x16dd0;
    0x0000b5d6 blx 0x733c                                            |     fcn_0000733c ();
    0x0000b5da b 0xb364                                              |     goto label_13;
                                                                     | label_42:
    0x0000b5dc ldr r1, [r4, 0x44]                                    |     r1 = *((r4 + 0x44));
    0x0000b5de ldr r0, [sp, 0x30]                                    |     r0 = var_30h;
    0x0000b5e0 str r2, [sp, 0x10]                                    |     var_10h = r2;
    0x0000b5e2 blx 0x7e64                                            |     r0 = fcn_00007e64 ();
    0x0000b5e6 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000b5e8 bne.w 0xb406                                          |         goto label_14;
                                                                     |     }
    0x0000b5ec ldr r3, [r4, 0x74]                                    |     r3 = *((r4 + 0x74));
    0x0000b5ee ldr r2, [sp, 0x10]                                    |     r2 = var_10h;
    0x0000b5f0 cmp r2, r3                                            |     
                                                                     |     if (r2 != r3) {
    0x0000b5f2 bne.w 0xb406                                          |         goto label_14;
                                                                     |     }
    0x0000b5f6 b 0xb410                                              |     goto label_15;
                                                                     | label_39:
    0x0000b5f8 ldr r3, [r4, 4]                                       |     r3 = *((r4 + 4));
    0x0000b5fa mov.w fp, 1                                           |     
    0x0000b5fe ldr r1, [pc, 0x1fc]                                   |     
    0x0000b600 ldr r0, [r3, 8]                                       |     r0 = *((r3 + 8));
    0x0000b602 add r1, pc                                            |     r1 = 0x16e04;
    0x0000b604 blx 0x733c                                            |     fcn_0000733c ();
    0x0000b608 b 0xb3b6                                              |     goto label_16;
                                                                     | label_43:
    0x0000b60a ldr r1, [sp, 0x30]                                    |     r1 = var_30h;
    0x0000b60c ldr r0, [r4, 0x44]                                    |     r0 = *((r4 + 0x44));
    0x0000b60e blx 0x7e64                                            |     r0 = fcn_00007e64 ();
    0x0000b612 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000b614 bne.w 0xb422                                          |         goto label_17;
                                                                     |     }
    0x0000b616 add r7, sp, 0x14                                      |     r7 = sp + 0x14;
    0x0000b618 ldr r1, [sp, 0x44]                                    |     r1 = var_44h;
    0x0000b61a ldr r0, [r4, 0x58]                                    |     r0 = *((r4 + 0x58));
    0x0000b61c blx 0x7e64                                            |     r0 = fcn_00007e64 ();
    0x0000b620 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000b622 bne.w 0xb422                                          |         goto label_17;
                                                                     |     }
    0x0000b626 ldr r1, [sp, 0x40]                                    |     r1 = var_40h;
    0x0000b628 ldr r0, [r4, 0x54]                                    |     r0 = *((r4 + 0x54));
    0x0000b62a blx 0x7e64                                            |     r0 = fcn_00007e64 ();
    0x0000b62e cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000b630 bne.w 0xb422                                          |         goto label_17;
                                                                     |     }
    0x0000b634 ldr r1, [sp, 0x48]                                    |     r1 = var_48h;
    0x0000b636 ldr r0, [r4, 0x5c]                                    |     r0 = *((r4 + 0x5c));
    0x0000b638 blx 0x7e64                                            |     fcn_00007e64 ();
    0x0000b63c str r0, [sp, 0x14]                                    |     var_14h = r0;
    0x0000b63e cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000b640 bne.w 0xb422                                          |         goto label_17;
                                                                     |     }
    0x0000b644 ldr.w sl, [sp, 0x34]                                  |     sl = var_34h;
    0x0000b648 ldr r1, [r4, 0x48]                                    |     r1 = *((r4 + 0x48));
    0x0000b64a mov r0, sl                                            |     r0 = sl;
    0x0000b64c blx 0x7e64                                            |     r0 = fcn_00007e64 ();
                                                                     |     if (r0 != 0) {
    0x0000b650 cbz r0, 0xb658                                        |         
    0x0000b652 ldr r3, [sp, 0x10]                                    |         r3 = var_10h;
    0x0000b654 cmp r3, 1                                             |         
                                                                     |         if (r3 == 1) {
    0x0000b656 beq 0xb724                                            |             goto label_47;
                                                                     |         }
                                                                     |     }
                                                                     | label_20:
    0x0000b658 add.w sl, r4, 0x18                                    |     sl = r4 + 0x18;
    0x0000b65c cmp.w fp, 0                                           |     
                                                                     |     if (fp != 0) {
    0x0000b660 bne.w 0xb546                                          |         goto label_18;
                                                                     |     }
    0x0000b664 cmp r6, 0                                             |     
                                                                     |     if (r6 != 0) {
    0x0000b666 bne.w 0xb436                                          |         goto label_8;
                                                                     |     }
    0x0000b66a mov r0, r7                                            |     r0 = r7;
    0x0000b66c bl 0xa280                                             |     fcn_0000a280 (r0);
    0x0000b670 movs r2, 0x60                                         |     r2 = 0x60;
    0x0000b672 mov r1, sb                                            |     r1 = sb;
    0x0000b674 mov r0, r7                                            |     r0 = r7;
    0x0000b676 blx 0x7b34                                            |     fcn_00007b34 ();
    0x0000b67a mov r0, sl                                            |     r0 = sl;
    0x0000b67c blx 0x744c                                            |     event_producer_prepare_event ();
    0x0000b680 mov r0, sl                                            |     r0 = sl;
    0x0000b682 blx 0x781c                                            |     fcn_0000781c ();
    0x0000b686 movs r1, 0x20                                         |     r1 = 0x20;
    0x0000b688 mov r0, sl                                            |     r0 = sl;
    0x0000b68a blx 0x7aa0                                            |     g_key_file_new ();
    0x0000b68e ldr r2, [pc, 0xe8]                                    |     r2 = *(0xb77a);
    0x0000b690 mov r3, sl                                            |     r3 = sl;
    0x0000b692 str r0, [r4, 8]                                       |     *((r4 + 8)) = r0;
    0x0000b694 mov r1, r5                                            |     r1 = r5;
    0x0000b696 ldr.w r2, [r8, r2]                                    |     r2 = *((r8 + r2));
    0x0000b69a blx 0x71e0                                            |     fcn_000071e0 ();
    0x0000b69e mov r0, r4                                            |     r0 = r4;
    0x0000b6a0 bl 0x94d0                                             |     fcn_000094d0 (r0);
    0x0000b6a4 ldr.w r3, [r4, 0x154]                                 |     r3 = *((r4 + 0x154));
                                                                     |     if (r3 != 0) {
    0x0000b6a8 cbz r3, 0xb6ae                                        |         
    0x0000b6aa ldr r3, [r4, 0x38]                                    |         r3 = *((r4 + 0x38));
                                                                     |         if (r3 == 0) {
    0x0000b6ac cbz r3, 0xb6c8                                        |             goto label_48;
                                                                     |         }
                                                                     |     }
    0x0000b6ae ldr r2, [pc, 0x150]                                   |     
    0x0000b6b0 ldr r3, [pc, 0x98]                                    |     r3 = *(0xb74c);
    0x0000b6b2 add r2, pc                                            |     r2 = 0x16eb8;
    0x0000b6b4 ldr r3, [r2, r3]                                      |     r3 = *(0x16eb8);
    0x0000b6b6 ldr r2, [r3]                                          |     r2 = *(0x16eb8);
    0x0000b6b8 ldr r3, [sp, 0x7c]                                    |     r3 = var_7ch;
    0x0000b6ba eors r2, r3                                           |     r2 ^= r3;
    0x0000b6bc mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 == r3) {
    0x0000b6c0 bne 0xb742                                            |         
    0x0000b6c2 add sp, 0x84                                          |         
    0x0000b6c4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_48:
    0x0000b6c8 ldr r2, [pc, 0x138]                                   |         
    0x0000b6ca ldr r3, [pc, 0x80]                                    |         r3 = *(0xb74e);
    0x0000b6cc add r2, pc                                            |         r2 = 0x16ed4;
    0x0000b6ce ldr r3, [r2, r3]                                      |         r3 = *(0x16ed4);
    0x0000b6d0 ldr r2, [r3]                                          |         r2 = *(0x16ed4);
    0x0000b6d2 ldr r3, [sp, 0x7c]                                    |         r3 = var_7ch;
    0x0000b6d4 eors r2, r3                                           |         r2 ^= r3;
    0x0000b6d6 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0000b6da bne 0xb742                                            |             goto label_28;
                                                                     |         }
    0x0000b6dc ldr r0, [sp, 0xc]                                     |         r0 = var_ch;
    0x0000b6de mov r1, r4                                            |         r1 = r4;
    0x0000b6e0 add sp, 0x84                                          |         
    0x0000b6e2 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}            |         
    0x0000b6e6 b.w 0xe070                                            |         goto label_49;
                                                                     | label_32:
    0x0000b6ea mov fp, r3                                            |         
    0x0000b6ec ldr r1, [pc, 0x118]                                   |         
    0x0000b6ee ldr r3, [r4, 4]                                       |         r3 = *((r4 + 4));
    0x0000b6f0 add r1, pc                                            |         r1 = 0x16efc;
    0x0000b6f2 ldr r0, [r3, 8]                                       |         r0 = *((r3 + 8));
    0x0000b6f4 blx 0x733c                                            |         fcn_0000733c ();
    0x0000b6f8 b 0xb342                                              |         goto label_12;
                                                                     | label_34:
    0x0000b6fa mov fp, r3                                            |         
    0x0000b6fc ldr r1, [pc, 0x10c]                                   |         
    0x0000b6fe ldr r3, [r4, 4]                                       |         r3 = *((r4 + 4));
    0x0000b700 add r1, pc                                            |         r1 = 0x16f10;
    0x0000b702 ldr r0, [r3, 8]                                       |         r0 = *((r3 + 8));
    0x0000b704 blx 0x733c                                            |         fcn_0000733c ();
    0x0000b708 b 0xb364                                              |         goto label_13;
                                                                     | label_35:
    0x0000b70a ldr r3, [r4, 4]                                       |         r3 = *((r4 + 4));
    0x0000b70c mov.w fp, 1                                           |         
    0x0000b710 ldr r1, [pc, 0xfc]                                    |         
    0x0000b712 ldr r0, [r3, 8]                                       |         r0 = *((r3 + 8));
    0x0000b714 add r1, pc                                            |         r1 = 0x16f28;
    0x0000b716 blx 0x733c                                            |         fcn_0000733c ();
    0x0000b71a b 0xb364                                              |         goto label_13;
                                                                     | label_44:
    0x0000b71c mov r0, r4                                            |         r0 = r4;
    0x0000b71e bl 0x14f78                                            |         fcn_00014f78 (r0);
    0x0000b722 b 0xb442                                              |         goto label_19;
                                                                     | label_47:
    0x0000b724 ldr r1, [sp, 0x14]                                    |         r1 = var_14h;
    0x0000b726 mov r0, r4                                            |         r0 = r4;
    0x0000b728 bl 0x14dc8                                            |         fcn_00014dc8 (r0, r1, r2);
    0x0000b72c ldr r0, [r4, 0x48]                                    |         r0 = *((r4 + 0x48));
    0x0000b72e blx 0x7928                                            |         fcn_00007928 ();
    0x0000b732 mov r0, sl                                            |         r0 = sl;
    0x0000b734 blx 0x75e0                                            |         fcn_000075e0 ();
    0x0000b738 str r0, [r4, 0x48]                                    |         *((r4 + 0x48)) = r0;
    0x0000b73a mov r0, r4                                            |         r0 = r4;
    0x0000b73c bl 0x14f78                                            |         fcn_00014f78 (r0);
    0x0000b740 b 0xb658                                              |         goto label_20;
                                                                     |     }
                                                                     | label_28:
    0x0000b742 blx 0x78f4                                            |     fcn_000078f4 ();
    0x0000b746 nop                                                   |     
    0x0000b748 ldrh r0, [r7, r0]                                     |     r0 = *((r7 + r0));
    0x0000b74a movs r3, r0                                           |     r3 = r0;
    0x0000b74c lsls r4, r6, 0x10                                     |     r4 = r6 << 0x10;
    0x0000b74e movs r0, r0                                           |     
    0x0000b750 ldrh r0, [r6, r0]                                     |     r0 = *((r6 + r0));
    0x0000b752 movs r3, r0                                           |     r3 = r0;
    0x0000b754 ldr r6, [r5, 0x30]                                    |     r6 = *((r5 + 0x30));
    0x0000b756 movs r3, r0                                           |     r3 = r0;
    0x0000b758 strb r4, [r1, 0x11]                                   |     *((r1 + 0x11)) = r4;
    0x0000b75a movs r1, r0                                           |     r1 = r0;
    0x0000b75c ldr r2, [r1, 0x68]                                    |     r2 = *((r1 + 0x68));
    0x0000b75e movs r1, r0                                           |     r1 = r0;
    0x0000b760 ldr r0, [r7, 0x64]                                    |     r0 = *((r7 + 0x64));
    0x0000b762 movs r1, r0                                           |     r1 = r0;
    0x0000b764 ldr r6, [r3, 0x40]                                    |     r6 = *((r3 + 0x40));
    0x0000b766 movs r1, r0                                           |     r1 = r0;
    0x0000b768 ldr r0, [r6, 0x3c]                                    |     r0 = *((r6 + 0x3c));
    0x0000b76a movs r1, r0                                           |     r1 = r0;
    0x0000b76c ldrh r6, [r3, 0x3a]                                   |     r6 = *((r3 + 0x3a));
    0x0000b76e movs r1, r0                                           |     r1 = r0;
    0x0000b770 strb r0, [r2, 0xa]                                    |     *((r2 + 0xa)) = r0;
    0x0000b772 movs r1, r0                                           |     r1 = r0;
    0x0000b774 ldr r2, [r1, r5]                                      |     r2 = *((r1 + r5));
    0x0000b776 movs r3, r0                                           |     r3 = r0;
    0x0000b778 lsls r0, r6, 0x10                                     |     r0 = r6 << 0x10;
    0x0000b77a movs r0, r0                                           |     
    0x0000b77c ldr r2, [r4, 0x34]                                    |     r2 = *((r4 + 0x34));
    0x0000b77e movs r1, r0                                           |     r1 = r0;
    0x0000b780 ldr r0, [r1, 0x34]                                    |     r0 = *((r1 + 0x34));
    0x0000b782 movs r1, r0                                           |     r1 = r0;
    0x0000b784 ldr r0, [r5, 0x1c]                                    |     r0 = *((r5 + 0x1c));
    0x0000b786 movs r3, r0                                           |     r3 = r0;
    0x0000b788 ldr r2, [r5, 0x2c]                                    |     r2 = *((r5 + 0x2c));
    0x0000b78a movs r1, r0                                           |     r1 = r0;
    0x0000b78c ldr r2, [r2, 0x18]                                    |     r2 = *((r2 + 0x18));
    0x0000b78e movs r3, r0                                           |     r3 = r0;
    0x0000b790 lsls r4, r7, 0x11                                     |     r4 = r7 << 0x11;
    0x0000b792 movs r0, r0                                           |     
    0x0000b794 ldrh r4, [r6, 0x30]                                   |     r4 = *((r6 + 0x30));
    0x0000b796 movs r1, r0                                           |     r1 = r0;
    0x0000b798 strb r2, [r1, 3]                                      |     *((r1 + 3)) = r2;
    0x0000b79a movs r1, r0                                           |     r1 = r0;
    0x0000b79c ldr r2, [r3, 0x14]                                    |     r2 = *((r3 + 0x14));
    0x0000b79e movs r3, r0                                           |     r3 = r0;
    0x0000b7a0 strb r4, [r6, 9]                                      |     *((r6 + 9)) = r4;
    0x0000b7a2 movs r1, r0                                           |     r1 = r0;
    0x0000b7a4 ldr r2, [r5, 0x54]                                    |     r2 = *((r5 + 0x54));
    0x0000b7a6 movs r1, r0                                           |     r1 = r0;
    0x0000b7a8 ldr r0, [r4, 0x48]                                    |     r0 = *((r4 + 0x48));
    0x0000b7aa movs r1, r0                                           |     r1 = r0;
    0x0000b7ac ldrh r6, [r5, 0x2e]                                   |     r6 = *((r5 + 0x2e));
    0x0000b7ae movs r1, r0                                           |     r1 = r0;
    0x0000b7b0 ldr r0, [r3, 0x7c]                                    |     r0 = *((r3 + 0x7c));
    0x0000b7b2 movs r1, r0                                           |     r1 = r0;
    0x0000b7b4 ldrsb r2, [r6, r2]                                    |     r2 = *((r6 + r2));
    0x0000b7b6 movs r3, r0                                           |     r3 = r0;
    0x0000b7b8 ldrh r6, [r3, 0x22]                                   |     r6 = *((r3 + 0x22));
    0x0000b7ba movs r1, r0                                           |     r1 = r0;
    0x0000b7bc ldr r0, [r2, 0x78]                                    |     r0 = *((r2 + 0x78));
    0x0000b7be movs r1, r0                                           |     r1 = r0;
    0x0000b7c0 strb r0, [r6, 2]                                      |     *((r6 + 2)) = r0;
    0x0000b7c2 movs r1, r0                                           |     r1 = r0;
    0x0000b7c4 ldr r6, [r5, 0x2c]                                    |     r6 = *((r5 + 0x2c));
    0x0000b7c6 movs r1, r0                                           |     r1 = r0;
    0x0000b7c8 ldr r4, [r3, 0x2c]                                    |     r4 = *((r3 + 0x2c));
    0x0000b7ca movs r1, r0                                           |     r1 = r0;
    0x0000b7cc strb r0, [r0, 0x10]                                   |     *((r0 + 0x10)) = r0;
    0x0000b7ce movs r1, r0                                           |     r1 = r0;
    0x0000b7d0 str r0, [r0, 0x74]                                    |     *((r0 + 0x74)) = r0;
    0x0000b7d2 movs r3, r0                                           |     r3 = r0;
    0x0000b7d4 ldr r0, [r3, 0x60]                                    |     r0 = *((r3 + 0x60));
    0x0000b7d6 movs r1, r0                                           |     r1 = r0;
    0x0000b7d8 ldrh r2, [r5, 0x1e]                                   |     r2 = *((r5 + 0x1e));
    0x0000b7da movs r1, r0                                           |     r1 = r0;
    0x0000b7dc str r0, [r3, 0x5c]                                    |     *((r3 + 0x5c)) = r0;
    0x0000b7de movs r1, r0                                           |     r1 = r0;
    0x0000b7e0 ldrh r4, [r4, 0x1c]                                   |     r4 = *((r4 + 0x1c));
    0x0000b7e2 movs r1, r0                                           |     r1 = r0;
    0x0000b7e4 ldr r2, [r1, 0x60]                                    |     r2 = *((r1 + 0x60));
    0x0000b7e6 movs r1, r0                                           |     r1 = r0;
    0x0000b7e8 ldr r4, [r0, 0x68]                                    |     r4 = *((r0 + 0x68));
    0x0000b7ea movs r1, r0                                           |     r1 = r0;
    0x0000b7ec ldr r2, [r0, 0x68]                                    |     r2 = *((r0 + 0x68));
    0x0000b7ee movs r1, r0                                           |     r1 = r0;
    0x0000b7f0 ldr r6, [r4, 0x60]                                    |     r6 = *((r4 + 0x60));
    0x0000b7f2 movs r1, r0                                           |     r1 = r0;
    0x0000b7f4 ldr r6, [r4, 0x60]                                    |     r6 = *((r4 + 0x60));
    0x0000b7f6 movs r1, r0                                           |     r1 = r0;
    0x0000b7f8 ldr r0, [r5, 0x60]                                    |     r0 = *((r5 + 0x60));
    0x0000b7fa movs r1, r0                                           |     r1 = r0;
    0x0000b7fc ldr r2, [r3, 0x60]                                    |     r2 = *((r3 + 0x60));
    0x0000b7fe movs r1, r0                                           |     r1 = r0;
    0x0000b800 strb r2, [r7, r1]                                     |     *((r7 + r1)) = r2;
    0x0000b802 movs r3, r0                                           |     r3 = r0;
    0x0000b804 strb r0, [r4, r1]                                     |     *((r4 + r1)) = r0;
    0x0000b806 movs r3, r0                                           |     r3 = r0;
    0x0000b808 ldr r0, [r4, 0x4c]                                    |     r0 = *((r4 + 0x4c));
    0x0000b80a movs r1, r0                                           |     r1 = r0;
    0x0000b80c strh r0, [r6, 0x30]                                   |     *((r6 + 0x30)) = r0;
    0x0000b80e movs r1, r0                                           |     r1 = r0;
    0x0000b810 ldr r4, [r3, 0x4c]                                    |     r4 = *((r3 + 0x4c));
    0x0000b812 movs r1, r0                                           |     r1 = r0;
                                                                     | label_49:
    0x0000e070 push {r4, r5, lr}                                     |     
    0x0000e072 mov r4, r1                                            |     r4 = r1;
    0x0000e074 mov r5, r0                                            |     r5 = r0;
    0x0000e076 sub sp, 0x14                                          |     
    0x0000e078 mov r2, r5                                            |     r2 = r5;
    0x0000e07a ldrd r3, r1, [r1, 0x168]                              |     __asm ("ldrd r3, r1, [r1, 0x168]");
    0x0000e07e ldr.w r0, [r4, 0x154]                                 |     r0 = *((r4 + 0x154));
    0x0000e080 lsls r4, r2, 5                                        |     r4 = r2 << 5;
    0x0000e082 blx 0x75ac                                            |     r0 = fcn_000075ac ();
                                                                     |     if (r0 == 0) {
    0x0000e086 cbnz r0, 0xe08c                                       |         
    0x0000e088 add sp, 0x14                                          |         
    0x0000e08a pop {r4, r5, pc}                                      |         
                                                                     |     }
    0x0000e08c ldr.w r4, [r4, 0x16c]                                 |     r4 = *((r4 + 0x16c));
    0x0000e090 movs r1, 0x10                                         |     r1 = 0x10;
    0x0000e092 ldr r3, [pc, 0x18]                                    |     
    0x0000e094 ldr r2, [pc, 0x18]                                    |     
    0x0000e096 str r0, [sp]                                          |     *(sp) = r0;
    0x0000e098 movs r0, 0                                            |     r0 = 0;
    0x0000e09a add r3, pc                                            |     r3 = 0x1c14c;
    0x0000e09c str r5, [sp, 8]                                       |     var_ch = r5;
    0x0000e09e add r2, pc                                            |     r2 = 0x1c152;
    0x0000e0a0 str r4, [sp, 4]                                       |     var_4h = r4;
    0x0000e0a2 blx 0x7440                                            |     nbmem_done ();
    0x0000e0a6 add sp, 0x14                                          |     
    0x0000e0a8 pop {r4, r5, pc}                                      |     
                                                                     | }

[*] Function sprintf used 2 times idpoint