[*] Binary protection state of libaxcgijson.so

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


[*] Function printf tear down of libaxcgijson.so

    ; assembly                                                                       | /* r2dec pseudo code output */
                                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libaxcgijson.so @ 0xef0 */
                                                                                     | #include <stdint.h>
                                                                                     |  
    ; (fcn) sym.axcgi_handle_request ()                                              | void axcgi_handle_request (int16_t arg_0h, int16_t arg_4h, void * arg1, int16_t arg2) {
                                                                                     |     int16_t var_0h;
                                                                                     |     int16_t var_8h;
                                                                                     |     int16_t var_ch;
                                                                                     |     int16_t var_10h;
                                                                                     |     int16_t var_14h;
                                                                                     |     int16_t var_18h;
                                                                                     |     int16_t var_1ch;
                                                                                     |     int16_t var_20h;
                                                                                     |     int16_t var_24h;
                                                                                     |     void * s2;
                                                                                     |     int16_t var_2ch;
                                                                                     |     size_t n;
                                                                                     |     int16_t var_34h;
                                                                                     |     int16_t var_38h;
                                                                                     |     int16_t var_3ch;
                                                                                     |     int16_t var_44h;
                                                                                     |     int16_t var_48h;
                                                                                     |     int16_t var_4ch;
                                                                                     |     int16_t var_50h;
                                                                                     |     int16_t var_54h;
                                                                                     |     int16_t var_58h;
                                                                                     |     int16_t var_5ch;
                                                                                     |     int16_t var_60h;
                                                                                     |     int16_t var_64h;
                                                                                     |     r0 = arg1;
                                                                                     |     r1 = arg2;
    0x00000ef0 ldmdahs ip!, {r0, r1, r2, r3, r4, r6, r7, fp, ip, sp, lr, pc} ^       |     __asm ("ldmdahs ip!, {r0, r1, r2, r3, r4, r6, r7, fp, ip, sp, lr, pc} ^");
    0x00000ef4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}                           |     
    0x00000ef8 sub sp, 0x6c                                                          |     
    0x00000efa ldr.w r3, [pc, 0x878]                                                 |     
    0x00000efe add r2, pc                                                            |     r2 += pc;
    0x00000f00 strd r1, r2, [sp, 0x1c]                                               |     __asm ("strd r1, r2, [var_20h]");
    0x00000f04 ldr.w r2, [pc, 0x870]                                                 |     r2 = *(0x00001778);
    0x00000f08 str r0, [sp, 0x28]                                                    |     s2 = r0;
    0x00000f0a add r2, pc                                                            |     r2 += pc;
    0x00000f0c ldr r3, [r2, r3]                                                      |     r3 = *((r2 + r3));
    0x00000f0e ldr r3, [r3]                                                          |     r3 = *(0x1776);
    0x00000f10 str r3, [sp, 0x64]                                                    |     var_64h = r3;
    0x00000f12 mov.w r3, 0                                                           |     r3 = 0;
    0x00000f16 cmp r0, 0                                                             |     
                                                                                     |     if (arg_0h == ) {
    0x00000f18 beq.w 0x1554                                                          |         goto label_43;
                                                                                     |     }
    0x00000f1c ldr.w fp, [r0]                                                        |     fp = *(r0);
    0x00000f20 cmp.w fp, 0                                                           |     
                                                                                     |     if (fp == 0) {
    0x00000f24 beq 0xf40                                                             |         goto label_30;
                                                                                     |     }
    0x00000f26 ldr r3, [r0, 4]                                                       |     r3 = *((r0 + 4));
    0x00000f28 adds r2, r0, 4                                                        |     r2 = r0 + 4;
                                                                                     |     if (r3 == 0) {
    0x00000f2a cbz r3, 0xf40                                                         |         goto label_30;
                                                                                     |     }
                                                                                     |     do {
    0x00000f2c ldr r0, [r3]                                                          |         r0 = *(r3);
    0x00000f2e ldr.w r1, [fp]                                                        |         r1 = *(fp);
    0x00000f32 cmp r0, r1                                                            |         
    0x00000f34 it hi                                                                 |         
                                                                                     |         if (r0 <= r1) {
    0x00000f36 movhi fp, r3                                                          |             
                                                                                     |         }
    0x00000f38 ldr r3, [r2, 4]!                                                      |         r3 = *((r2 += 4));
    0x00000f3c cmp r3, 0                                                             |         
    0x00000f3e bne 0xf2c                                                             |         
                                                                                     |     } while (r3 != 0);
                                                                                     | label_30:
    0x00000f40 movs r4, 0                                                            |     r4 = 0;
    0x00000f42 movs r5, 1                                                            |     r5 = 1;
    0x00000f44 strd r4, r4, [sp, 0x44]                                               |     __asm ("strd r4, r4, [var_48h]");
    0x00000f48 str r5, [sp, 0x4c]                                                    |     var_4ch = r5;
    0x00000f4a blx 0xaac                                                             |     ax_log_syslog ();
    0x00000f4e add r3, sp, 0x4c                                                      |     r3 += var_4ch;
    0x00000f50 add r2, sp, 0x48                                                      |     r2 += var_48h;
    0x00000f52 add r1, sp, 0x44                                                      |     r1 += var_44h;
    0x00000f54 mov r0, fp                                                            |     r0 = fp;
    0x00000f56 bl 0xcdc                                                              |     r0 = fcn_00000cdc (r0, r1, r2, r3, r4);
    0x00000f5a cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x00000f5c beq 0x105e                                                            |         goto label_9;
                                                                                     |     }
    0x00000f5e ldr r3, [sp, 0x44]                                                    |     r3 = var_44h;
    0x00000f60 str r3, [sp, 0xc]                                                     |     var_ch = r3;
    0x00000f62 cmp r3, 0                                                             |     
                                                                                     |     if (r3 == 0) {
    0x00000f64 beq.w 0x1428                                                          |         goto label_44;
                                                                                     |     }
    0x00000f68 ldr r6, [r3]                                                          |     r6 = *(r3);
    0x00000f6a cmp r6, r5                                                            |     
    0x00000f6c itt ne                                                                |     
                                                                                     |     if (r6 == r5) {
    0x00000f6e strne r4, [sp, 8]                                                     |         var_8h = r4;
                                                                                     |     }
                                                                                     |     if (r6 == r5) {
    0x00000f70 strne r5, [sp, 0x10]                                                  |         var_10h = r5;
                                                                                     |     }
                                                                                     |     if (r6 == r5) {
    0x00000f72 beq.w 0x156c                                                          |         goto label_45;
                                                                                     |     }
                                                                                     | label_21:
    0x00000f76 ldr.w r3, [pc, 0x804]                                                 |     
    0x00000f7a mov.w sb, 0                                                           |     sb = 0;
    0x00000f7e ldr.w r2, [pc, 0x800]                                                 |     
    0x00000f82 add r3, pc                                                            |     
    0x00000f84 adds r3, 0x44                                                         |     r3 += 0x44;
    0x00000f86 add r2, pc                                                            |     r2 = 0x270c;
    0x00000f88 str r3, [sp, 0x3c]                                                    |     var_3ch = r3;
    0x00000f8a mov r7, r2                                                            |     r7 = r2;
    0x00000f8c ldr.w r3, [pc, 0x7f4]                                                 |     r3 = sym.imp.json_integer;
    0x00000f90 add r3, pc                                                            |     r3 = 0x3698;
    0x00000f92 str r3, [sp, 0x24]                                                    |     var_24h = r3;
    0x00000f94 ldr.w r3, [pc, 0x7f0]                                                 |     
    0x00000f98 add r3, pc                                                            |     r3 = 0x2724;
    0x00000f9a str r3, [sp, 0x34]                                                    |     var_34h = r3;
    0x00000f9c add.w r3, r2, 0x14                                                    |     r3 = r2 + 0x14;
    0x00000fa0 strd r3, fp, [sp, 0x14]                                               |     __asm ("strd r3, fp, [var_0hx14]");
                                                                                     |     do {
    0x00000fa4 ldr r3, [sp, 0x4c]                                                    |         r3 = var_4ch;
    0x00000fa6 cmp r3, 0                                                             |         
                                                                                     |         if (r3 == 0) {
    0x00000fa8 beq.w 0x122c                                                          |             goto label_46;
                                                                                     |         }
                                                                                     | label_10:
    0x00000fac ldr r3, [sp, 8]                                                       |         r3 = var_8h;
    0x00000fae ldr.w sl, [sp, 0xc]                                                   |         sl = var_ch;
    0x00000fb2 cmp r3, 0                                                             |         
                                                                                     |         if (r3 != 0) {
    0x00000fb4 bne.w 0x1170                                                          |             goto label_47;
                                                                                     |         }
                                                                                     | label_5:
    0x00000fb8 movs r3, 0                                                            |         r3 = 0;
    0x00000fba ldr r1, [sp, 0x14]                                                    |         r1 = var_14h;
    0x00000fbc mov r0, sl                                                            |         r0 = sl;
    0x00000fbe strd r3, r3, [sp, 0x50]                                               |         __asm ("strd r3, r3, [var_50h]");
    0x00000fc2 str r3, [sp, 0x58]                                                    |         var_58h = r3;
    0x00000fc4 blx 0xaf4                                                             |         json_object_get ();
    0x00000fc8 mov r1, r7                                                            |         r1 = r7;
    0x00000fca mov r6, r0                                                            |         r6 = r0;
    0x00000fcc mov r0, sl                                                            |         r0 = sl;
    0x00000fce blx 0xaf4                                                             |         json_object_get ();
    0x00000fd2 add.w r1, r7, 0xc                                                     |         r1 = r7 + 0xc;
    0x00000fd6 mov r4, r0                                                            |         r4 = r0;
    0x00000fd8 mov r0, sl                                                            |         r0 = sl;
    0x00000fda blx 0xaf4                                                             |         r0 = json_object_get ();
    0x00000fde mov r5, r0                                                            |         r5 = r0;
    0x00000fe0 cmp r6, 0                                                             |         
                                                                                     |         if (r6 == 0) {
    0x00000fe2 beq.w 0x123a                                                          |             goto label_48;
                                                                                     |         }
    0x00000fe6 ldr r3, [r6]                                                          |         r3 = *(r6);
    0x00000fe8 cmp r3, 2                                                             |         
                                                                                     |         if (r3 == 2) {
    0x00000fea beq.w 0x117c                                                          |             goto label_49;
                                                                                     |         }
    0x00000fee ldr.w r1, [pc, 0x79c]                                                 |         
    0x00000ff2 movw r0, 0xfa2                                                        |         r0 = 0xfa2;
    0x00000ff6 add r1, pc                                                            |         r1 = 0x2788;
    0x00000ff8 blx 0xab8                                                             |         fcn_00000ab8 ();
    0x00000ffc str r0, [sp, 0x50]                                                    |         var_50h = r0;
    0x00000ffe cmp r4, 0                                                             |         
                                                                                     |         if (r4 == 0) {
    0x00001000 beq.w 0x1250                                                          |             goto label_50;
                                                                                     |         }
                                                                                     | label_13:
    0x00001004 movs r6, 0                                                            |         r6 = 0;
    0x00001006 mov fp, r6                                                            |         
                                                                                     | label_6:
    0x00001008 ldr r3, [r4]                                                          |         r3 = *(r4);
    0x0000100a cmp r3, 2                                                             |         
                                                                                     |         if (r3 == 2) {
    0x0000100c beq.w 0x1516                                                          |             goto label_51;
                                                                                     |         }
    0x00001010 ldr.w r1, [pc, 0x77c]                                                 |         
    0x00001014 movw r0, 0xfa2                                                        |         r0 = 0xfa2;
    0x00001016 strb r2, [r4, 2]                                                      |         *((r4 + 2)) = r2;
    0x00001018 add r1, pc                                                            |         r1 = 0x27ac;
    0x0000101a blx 0xab8                                                             |         fcn_00000ab8 ();
                                                                                     | label_34:
    0x0000101e cmp.w fp, 0                                                           |         
                                                                                     |         if (fp != 0) {
    0x00001022 bne.w 0x140e                                                          |             goto label_52;
                                                                                     |         }
    0x00001026 cmp r5, 0                                                             |         
                                                                                     |         if (r5 == 0) {
    0x00001028 beq.w 0x1462                                                          |             goto label_25;
                                                                                     |         }
    0x0000102c ldr r3, [r5]                                                          |         r3 = *(r5);
    0x0000102e cmp r3, 2                                                             |         
                                                                                     |         if (r3 == 2) {
    0x00001030 beq.w 0x145a                                                          |             goto label_53;
                                                                                     |         }
    0x00001034 ldr r0, [sp, 0x50]                                                    |         r0 = var_50h;
    0x00001036 mov r5, fp                                                            |         r5 = fp;
    0x00001038 mov r4, fp                                                            |         r4 = fp;
    0x0000103a mov.w r8, 0                                                           |         r8 = 0;
    0x0000103e cmp r0, 0                                                             |         
                                                                                     |         if (r0 != 0) {
    0x00001040 bne.w 0x11c6                                                          |             goto label_24;
                                                                                     |         }
                                                                                     | label_7:
    0x00001044 movs r5, 0                                                            |         r5 = 0;
                                                                                     | label_19:
    0x00001046 movs r3, 0                                                            |         r3 = 0;
    0x00001048 str r3, [sp, 0x4c]                                                    |         var_4ch = r3;
    0x0000104a ldr r3, [sp, 8]                                                       |         r3 = var_8h;
    0x0000104c cmp r3, 0                                                             |         
                                                                                     |         if (r3 != 0) {
    0x0000104e bne.w 0x1212                                                          |             goto label_54;
                                                                                     |         }
                                                                                     | label_8:
    0x00001052 ldr r3, [sp, 0x10]                                                    |         r3 = var_10h;
    0x00001054 add.w sb, sb, 1                                                       |         sb++;
    0x00001058 str r5, [sp, 0x48]                                                    |         var_48h = r5;
    0x0000105a cmp sb, r3                                                            |         
    0x0000105c blo 0xfa4                                                             |         
                                                                                     |     } while (sb <= r3);
                                                                                     | label_9:
    0x0000105e ldr r3, [sp, 0x44]                                                    |     r3 = var_44h;
    0x00001060 str r3, [sp, 0xc]                                                     |     var_ch = r3;
                                                                                     |     if (r3 != 0) {
    0x00001062 cbz r3, 0x106c                                                        |         
                                                                                     | label_11:
    0x00001064 ldr r2, [sp, 0xc]                                                     |         r2 = var_ch;
    0x00001066 ldr r3, [r2, 4]                                                       |         r3 = *((r2 + 4));
    0x00001068 adds r3, 1                                                            |         r3++;
                                                                                     |         if (r3 != 1) {
    0x0000106a bne 0x1110                                                            |             goto label_55;
                                                                                     |         }
                                                                                     |     }
                                                                                     | label_0:
    0x0000106c ldrd r5, r3, [sp, 0x48]                                               |     __asm ("ldrd r5, r3, [var_4ch]");
    0x00001070 cmp r3, 0                                                             |     
                                                                                     |     if (r3 == 0) {
    0x00001072 beq 0x1136                                                            |         goto label_12;
                                                                                     |     }
                                                                                     | label_1:
    0x00001074 cmp r5, 0                                                             |     
                                                                                     |     if (r5 == 0) {
    0x00001076 beq 0x116c                                                            |         goto label_56;
                                                                                     |     }
    0x00001078 mov.w r1, 0x100                                                       |     r1 = 0x100;
    0x0000107c mov r0, r5                                                            |     r0 = r5;
    0x0000107e blx 0xad0                                                             |     r0 = json_dumps ();
    0x00001082 mov r6, r0                                                            |     r6 = r0;
    0x00001084 cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x00001086 beq 0x114a                                                            |         goto label_57;
                                                                                     |     }
    0x00001088 ldr.w r1, [pc, 0x708]                                                 |     
    0x0000108c mov r2, r0                                                            |     r2 = r0;
    0x0000108e ldr.w r0, [pc, 0x708]                                                 |     
    0x00001092 add r1, pc                                                            |     r1 = 0x282a;
    0x00001094 add.w r3, r1, 0x7c                                                    |     r3 = r1 + 0x7c;
    0x00001098 add r0, pc                                                            |     r0 = 0x2836;
    0x0000109a adds r1, 0x80                                                         |     r1 += 0x80;
    0x0000109c blx 0xa40                                                             |     r0 = g_strdup_printf ()
    0x000010a0 mov r4, r0                                                            |     r4 = r0;
    0x000010a2 mov r0, r6                                                            |     r0 = r6;
    0x000010a4 blx 0x980                                                             |     g_free ();
                                                                                     | label_2:
    0x000010a8 ldr r3, [r5, 4]                                                       |     r3 = *((r5 + 4));
    0x000010aa adds r3, 1                                                            |     r3++;
                                                                                     |     if (r3 == 1) {
    0x000010ac beq 0x10c8                                                            |         goto label_3;
                                                                                     |     }
    0x000010ae adds r3, r5, 4                                                        |     r3 = r5 + 4;
    0x000010b0 dmb ish                                                               |     __asm ("dmb ish");
                                                                                     |     do {
    0x000010b4 ldrex r2, [r3]                                                        |         __asm ("ldrex r2, [r3]");
    0x000010b8 subs r2, 1                                                            |         r2--;
    0x000010ba strex r1, r2, [r3]                                                    |         __asm ("strex r1, r2, [r3]");
    0x000010be cmp r1, 0                                                             |         
    0x000010c0 bne 0x10b4                                                            |         
                                                                                     |     } while (r1 != 0);
    0x000010c2 cmp r2, 0                                                             |     
                                                                                     |     if (r2 == 0) {
    0x000010c4 beq.w 0x15a4                                                          |         goto label_58;
                                                                                     |     }
                                                                                     | label_3:
    0x000010c8 cmp r4, 0                                                             |     
                                                                                     |     if (r4 == 0) {
    0x000010ca beq 0x116c                                                            |         goto label_56;
                                                                                     |     }
    0x000010cc ldr.w r1, [pc, 0x6cc]                                                 |     
    0x000010d0 mov r2, r4                                                            |     r2 = r4;
    0x000010d2 movs r0, 1                                                            |     r0 = 1;
    0x000010d4 add r1, pc                                                            |     r1 = 0x2874;
    0x000010d6 blx 0xa88                                                             |     printf_chk ()
    0x000010da ldr r2, [sp, 0x20]                                                    |     r2 = var_20h;
    0x000010dc ldr.w r3, [pc, 0x6c0]                                                 |     r3 = *(0x17a0);
    0x000010e0 ldr r3, [r2, r3]                                                      |     r3 = *((r2 + r3));
    0x000010e2 ldr r0, [r3]                                                          |     r0 = *(0x17a0);
    0x000010e4 blx 0x998                                                             |     fflush (r0);
    0x000010e8 mov r0, r4                                                            |     r0 = r4;
    0x000010ea blx 0x980                                                             |     g_free ();
    0x000010ee movs r0, 0                                                            |     r0 = 0;
                                                                                     | label_4:
    0x000010f0 ldr.w r2, [pc, 0x6b0]                                                 |     r2 = *(0x000017a4);
    0x000010f4 ldr.w r3, [pc, 0x67c]                                                 |     r3 = *(0x1774);
    0x000010f8 add r2, pc                                                            |     r2 += pc;
    0x000010fa ldr r3, [r2, r3]                                                      |     r3 = *((r2 + r3));
    0x000010fc ldr r2, [r3]                                                          |     r2 = *(0x1774);
    0x000010fe ldr r3, [sp, 0x64]                                                    |     r3 = var_64h;
    0x00001100 eors r2, r3                                                           |     r2 ^= r3;
    0x00001102 mov.w r3, 0                                                           |     r3 = 0;
                                                                                     |     if (r2 != r3) {
    0x00001106 bne.w 0x176a                                                          |         goto label_59;
                                                                                     |     }
    0x0000110a add sp, 0x6c                                                          |     
    0x0000110c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}                            |     
                                                                                     | label_55:
    0x00001110 adds r3, r2, 4                                                        |     r3 = r2 + 4;
    0x00001112 dmb ish                                                               |     __asm ("dmb ish");
                                                                                     |     do {
    0x00001116 ldrex r2, [r3]                                                        |         __asm ("ldrex r2, [r3]");
    0x0000111a subs r2, 1                                                            |         r2--;
    0x0000111c strex r1, r2, [r3]                                                    |         __asm ("strex r1, r2, [r3]");
    0x00001120 cmp r1, 0                                                             |         
    0x00001122 bne 0x1116                                                            |         
                                                                                     |     } while (r1 != 0);
    0x00001124 cmp r2, 0                                                             |     
                                                                                     |     if (r2 != 0) {
    0x00001126 bne 0x106c                                                            |         goto label_0;
                                                                                     |     }
    0x00001128 ldr r0, [sp, 0xc]                                                     |     r0 = var_ch;
    0x0000112a blx 0x9e0                                                             |     json_delete ();
    0x0000112e ldrd r5, r3, [sp, 0x48]                                               |     __asm ("ldrd r5, r3, [var_4ch]");
    0x00001132 cmp r3, 0                                                             |     
                                                                                     |     if (r3 != 0) {
    0x00001134 bne 0x1074                                                            |         goto label_1;
                                                                                     |     }
                                                                                     | label_12:
    0x00001136 ldr.w r0, [pc, 0x670]                                                 |     
    0x0000113a add r0, pc                                                            |     r0 = 0x28e8;
    0x0000113c adds r0, 0xb4                                                         |     r0 += 0xb4;
    0x0000113e blx 0xac4                                                             |     r0 = g_strdup ();
    0x00001142 mov r4, r0                                                            |     r4 = r0;
    0x00001144 cmp r5, 0                                                             |     
                                                                                     |     if (r5 != 0) {
    0x00001146 bne 0x10a8                                                            |         goto label_2;
                                                                                     |     }
    0x00001148 b 0x10c8                                                              |     goto label_3;
                                                                                     | label_57:
    0x0000114a ldr r3, [r5, 4]                                                       |     r3 = *((r5 + 4));
    0x0000114c adds r3, 1                                                            |     r3++;
                                                                                     |     if (r3 == 1) {
    0x0000114e beq 0x116c                                                            |         goto label_56;
                                                                                     |     }
    0x00001150 adds r3, r5, 4                                                        |     r3 = r5 + 4;
    0x00001152 dmb ish                                                               |     __asm ("dmb ish");
                                                                                     |     do {
    0x00001156 ldrex r2, [r3]                                                        |         __asm ("ldrex r2, [r3]");
    0x0000115a subs r2, 1                                                            |         r2--;
    0x0000115c strex r1, r2, [r3]                                                    |         __asm ("strex r1, r2, [r3]");
    0x00001160 cmp r1, 0                                                             |         
    0x00001162 bne 0x1156                                                            |         
                                                                                     |     } while (r1 != 0);
                                                                                     |     if (r2 == 0) {
    0x00001164 cbnz r2, 0x116c                                                       |         
    0x00001166 mov r0, r5                                                            |         r0 = r5;
    0x00001168 blx 0x9e0                                                             |         json_delete ();
                                                                                     |     }
                                                                                     | label_56:
    0x0000116c movs r0, 1                                                            |     r0 = 1;
    0x0000116e b 0x10f0                                                              |     goto label_4;
                                                                                     | label_47:
    0x00001170 ldr r0, [sp, 0xc]                                                     |     r0 = var_ch;
    0x00001172 mov r1, sb                                                            |     r1 = sb;
    0x00001174 blx 0xa10                                                             |     r0 = json_array_get ();
    0x00001178 mov sl, r0                                                            |     sl = r0;
    0x0000117a b 0xfb8                                                               |     goto label_5;
                                                                                     | label_49:
    0x0000117c mov r0, r6                                                            |     r0 = r6;
    0x0000117e blx 0x9f8                                                             |     json_string_value ();
    0x00001182 add.w r1, r7, 0x44                                                    |     r1 = r7 + 0x44;
    0x00001186 mov r6, r0                                                            |     r6 = r0;
    0x00001188 blx 0x950                                                             |     r0 = strcmp (r0, r1);
    0x0000118c mov r3, r0                                                            |     r3 = r0;
    0x0000118e cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x00001190 beq.w 0x1312                                                          |         goto label_60;
                                                                                     |     }
    0x00001194 mov.w fp, 1                                                           |     
    0x00001198 cmp r4, 0                                                             |     
                                                                                     |     if (r4 != 0) {
    0x0000119a bne.w 0x1008                                                          |         goto label_6;
                                                                                     |     }
    0x0000119e ldr.w r1, [pc, 0x60c]                                                 |     
    0x000011a2 movw r0, 0xfa1                                                        |     r0 = 0xfa1;
    0x000011a6 add r1, pc                                                            |     r1 = 0x2958;
    0x000011a8 blx 0xab8                                                             |     fcn_00000ab8 ();
    0x000011ac str r0, [sp, 0x50]                                                    |     var_50h = r0;
                                                                                     |     if (r5 != 0) {
    0x000011ae cbz r5, 0x11bc                                                        |         
    0x000011b0 ldr r3, [r5]                                                          |         r3 = *(r5);
    0x000011b2 cmp r3, 2                                                             |         
    0x000011b4 it ne                                                                 |         
                                                                                     |         if (r3 == 2) {
    0x000011b6 movne r5, r4                                                          |             r5 = r4;
                                                                                     |         }
                                                                                     |         if (r3 == 2) {
    0x000011b8 beq.w 0x145a                                                          |             goto label_53;
                                                                                     |         }
                                                                                     |     }
                                                                                     | label_14:
    0x000011bc mov.w r8, 0                                                           |     r8 = 0;
    0x000011c0 cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x000011c2 beq.w 0x1044                                                          |         goto label_7;
                                                                                     |     }
                                                                                     | label_24:
    0x000011c6 ldr r2, [sp, 0x54]                                                    |     r2 = var_54h;
    0x000011c8 cmp r2, 0                                                             |     
                                                                                     |     if (r2 != 0) {
    0x000011ca bne.w 0x13be                                                          |         goto label_61;
                                                                                     |     }
    0x000011ce ldr r2, [sp, 0x18]                                                    |     r2 = var_18h;
    0x000011d0 add r3, sp, 0x54                                                      |     r3 += var_54h;
    0x000011d2 ldm.w r2, {r0, r1}                                                    |     r0 = *(r2);
                                                                                     |     r1 = *((r2 + 4));
    0x000011d6 stm.w r3, {r0, r1}                                                    |     *(r3) = r0;
                                                                                     |     *((r3 + 4)) = r1;
                                                                                     | label_20:
    0x000011da mov r2, r5                                                            |     r2 = r5;
    0x000011dc mov r1, r3                                                            |     r1 = r3;
    0x000011de mov r0, r6                                                            |     r0 = r6;
    0x000011e0 bl 0xbc8                                                              |     r0 = fcn_00000bc8 (r0, r1, r2);
    0x000011e4 mov r5, r0                                                            |     r5 = r0;
    0x000011e6 cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x000011e8 beq.w 0x1044                                                          |         goto label_7;
                                                                                     |     }
    0x000011ec cmp.w r8, 0                                                           |     
                                                                                     |     if (r8 != 0) {
    0x000011f0 bne 0x126c                                                            |         goto label_62;
                                                                                     |     }
    0x000011f2 ldr r2, [sp, 0x50]                                                    |     r2 = var_50h;
    0x000011f4 cmp r2, 0                                                             |     
                                                                                     |     if (r2 == 0) {
    0x000011f6 beq.w 0x1400                                                          |         goto label_63;
                                                                                     |     }
                                                                                     | label_18:
    0x000011fa ldr r1, [sp, 0x24]                                                    |     r1 = var_24h;
    0x000011fc mov r0, r5                                                            |     r0 = r5;
    0x000011fe blx 0x9b0                                                             |     r0 = json_object_set_new_nocheck ();
    0x00001202 clz r0, r0                                                            |     r0 &= r0;
    0x00001206 lsrs r0, r0, 5                                                        |     r0 >>= 5;
                                                                                     | label_22:
    0x00001208 ldr r3, [sp, 8]                                                       |     r3 = var_8h;
    0x0000120a str r0, [sp, 0x4c]                                                    |     var_4ch = r0;
    0x0000120c cmp r3, 0                                                             |     
                                                                                     |     if (r3 == 0) {
    0x0000120e beq.w 0x1052                                                          |         goto label_8;
                                                                                     |     }
                                                                                     | label_54:
    0x00001212 ldr r3, [sp, 0x4c]                                                    |     r3 = var_4ch;
    0x00001214 cmp r3, 0                                                             |     
                                                                                     |     if (r3 != 0) {
    0x00001216 bne 0x1300                                                            |         goto label_64;
                                                                                     |     }
                                                                                     | label_17:
    0x00001218 ldr r3, [sp, 0x10]                                                    |     r3 = var_10h;
    0x0000121a add.w sb, sb, 1                                                       |     sb++;
    0x0000121e cmp sb, r3                                                            |     
                                                                                     |     if (sb >= r3) {
    0x00001220 bhs.w 0x105e                                                          |         goto label_9;
                                                                                     |     }
    0x00001224 ldr r3, [sp, 0x4c]                                                    |     r3 = var_4ch;
    0x00001226 cmp r3, 0                                                             |     
                                                                                     |     if (r3 != 0) {
    0x00001228 bne.w 0xfac                                                           |         goto label_10;
                                                                                     |     }
                                                                                     | label_46:
    0x0000122c ldr r3, [sp, 0x44]                                                    |     r3 = var_44h;
    0x0000122e str r3, [sp, 0xc]                                                     |     var_ch = r3;
    0x00001230 cmp r3, 0                                                             |     
                                                                                     |     if (r3 != 0) {
    0x00001232 bne.w 0x1064                                                          |         goto label_11;
                                                                                     |     }
    0x00001236 ldr r5, [sp, 0x48]                                                    |     r5 = var_48h;
    0x00001238 b 0x1136                                                              |     goto label_12;
                                                                                     | label_48:
    0x0000123a ldr.w r1, [pc, 0x574]                                                 |     
    0x0000123e movw r0, 0xfa1                                                        |     r0 = 0xfa1;
    0x00001242 add r1, pc                                                            |     r1 = 0x29f8;
    0x00001244 blx 0xab8                                                             |     fcn_00000ab8 ();
    0x00001248 str r0, [sp, 0x50]                                                    |     var_50h = r0;
    0x0000124a cmp r4, 0                                                             |     
                                                                                     |     if (r4 != 0) {
    0x0000124c bne.w 0x1004                                                          |         goto label_13;
                                                                                     |     }
                                                                                     | label_50:
    0x00001250 mov r6, r5                                                            |     r6 = r5;
    0x00001252 cmp r5, 0                                                             |     
                                                                                     |     if (r5 == 0) {
    0x00001254 beq.w 0x1462                                                          |         goto label_25;
                                                                                     |     }
    0x00001258 ldr r3, [r5]                                                          |     r3 = *(r5);
    0x0000125a cmp r3, 2                                                             |     
    0x0000125c it ne                                                                 |     
                                                                                     |     if (r3 == 2) {
    0x0000125e movne r6, 0                                                           |         r6 = 0;
                                                                                     |     }
                                                                                     |     if (r3 == 2) {
    0x00001260 beq.w 0x149c                                                          |         goto label_65;
                                                                                     |     }
                                                                                     | label_29:
    0x00001264 movs r4, 0                                                            |     r4 = 0;
    0x00001266 ldr r0, [sp, 0x50]                                                    |     r0 = var_50h;
    0x00001268 mov r5, r4                                                            |     r5 = r4;
    0x0000126a b 0x11bc                                                              |     goto label_14;
                                                                                     | label_62:
    0x0000126c blx 0xa04                                                             |     geteuid ();
    0x00001270 blx 0x974                                                             |     r0 = getpwuid ();
    0x00001274 cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x00001276 beq 0x1340                                                            |         goto label_66;
                                                                                     |     }
    0x00001278 ldr.w r1, [pc, 0x538]                                                 |     
    0x0000127c str r0, [sp, 0x2c]                                                    |     var_2ch = r0;
    0x0000127e ldr r0, [r0]                                                          |     r0 = *(r0);
    0x00001280 add r1, pc                                                            |     r1 = 0x2a38;
    0x00001282 adds r1, 0x64                                                         |     r1 += 0x64;
    0x00001284 blx 0xa34                                                             |     r0 = g_strcmp0 ();
    0x00001288 cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x0000128a beq.w 0x155a                                                          |         goto label_67;
                                                                                     |     }
    0x0000128e ldr.w r2, [pc, 0x528]                                                 |     r2 = *(0x000017b8);
    0x00001292 ldr.w r0, [pc, 0x528]                                                 |     
    0x00001296 ldr.w sl, [sp, 0x2c]                                                  |     sl = var_2ch;
    0x0000129a add r2, pc                                                            |     r2 += pc;
    0x0000129c str r5, [sp, 0x30]                                                    |     n = r5;
    0x0000129e str r2, [sp, 0x38]                                                    |     var_38h = r2;
    0x000012a0 add r0, pc                                                            |     r0 = 0x2a62;
    0x000012a2 movs r2, 0                                                            |     r2 = 0;
    0x000012a4 str r4, [sp, 0x2c]                                                    |     var_2ch = r4;
    0x000012a6 mov fp, r2                                                            |     
    0x000012a8 blx 0xae8                                                             |     r0 = getgrnam ();
    0x000012ac mov r5, r0                                                            |     r5 = r0;
                                                                                     |     if (r0 != 0) {
    0x000012ae cbnz r0, 0x12ca                                                       |         goto label_68;
                                                                                     |     }
                                                                                     |     do {
                                                                                     | label_15:
    0x000012b0 add.w fp, fp, 1                                                       |         
    0x000012b4 cmp.w fp, 3                                                           |         
                                                                                     |         if (fp == 3) {
    0x000012b8 beq 0x133c                                                            |             goto label_69;
                                                                                     |         }
    0x000012ba ldr r3, [sp, 0x38]                                                    |         r3 = var_38h;
    0x000012bc ldr.w r0, [r3, fp, lsl 3]                                             |         offset_0 = fp << 3;
                                                                                     |         r0 = *((r3 + offset_0));
    0x000012c0 blx 0xae8                                                             |         r0 = getgrnam ();
    0x000012c4 mov r5, r0                                                            |         r5 = r0;
    0x000012c6 cmp r0, 0                                                             |         
    0x000012c8 beq 0x12b0                                                            |         
                                                                                     |     } while (r0 == 0);
                                                                                     | label_68:
    0x000012ca ldr r3, [r0, 0xc]                                                     |     r3 = *((r0 + 0xc));
    0x000012cc ldr r0, [r3]                                                          |     r0 = *(r3);
    0x000012ce cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x000012d0 beq 0x12b0                                                            |         goto label_15;
                                                                                     |     }
    0x000012d2 movs r4, 4                                                            |     r4 = 4;
    0x000012d4 b 0x12e0                                                              |     goto label_70;
                                                                                     | label_16:
    0x000012d6 ldr r3, [r5, 0xc]                                                     |     r3 = *((r5 + 0xc));
    0x000012d8 ldr r0, [r3, r4]                                                      |     r0 = *((r3 + r4));
    0x000012da adds r4, 4                                                            |     r4 += 4;
    0x000012dc cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x000012de beq 0x12b0                                                            |         goto label_15;
                                                                                     |     }
                                                                                     | label_70:
    0x000012e0 ldr.w r1, [sl]                                                        |     r1 = *(sl);
    0x000012e4 blx 0xa34                                                             |     r0 = g_strcmp0 ();
    0x000012e8 cmp r0, 0                                                             |     
                                                                                     |     if (r0 != 0) {
    0x000012ea bne 0x12d6                                                            |         goto label_16;
                                                                                     |     }
    0x000012ec ldr.w r3, [pc, 0x4d0]                                                 |     r3 = *(0x000017c0);
    0x000012f0 ldr r4, [sp, 0x2c]                                                    |     r4 = var_2ch;
    0x000012f2 ldr r5, [sp, 0x30]                                                    |     r5 = n;
    0x000012f4 add r3, pc                                                            |     r3 += pc;
    0x000012f6 add.w r3, r3, fp, lsl 3                                               |     r3 += (fp << 3);
    0x000012fa ldr r3, [r3, 4]                                                       |     r3 = *((r3 + 4));
    0x000012fc str r3, [sp, 0x2c]                                                    |     var_2ch = r3;
    0x000012fe b 0x1344                                                              |     goto label_31;
                                                                                     | label_64:
    0x00001300 ldr r0, [sp, 0x48]                                                    |     r0 = var_48h;
    0x00001302 mov r1, r5                                                            |     r1 = r5;
    0x00001304 blx 0x9a4                                                             |     r0 = json_array_append_new ();
    0x00001308 cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x0000130a beq 0x1218                                                            |         goto label_17;
                                                                                     |     }
    0x0000130c movs r3, 0                                                            |     r3 = 0;
    0x0000130e str r3, [sp, 0x4c]                                                    |     var_4ch = r3;
    0x00001310 b 0x1218                                                              |     goto label_17;
                                                                                     | label_60:
    0x00001312 cmp r4, 0                                                             |     
                                                                                     |     if (r4 == 0) {
    0x00001314 beq.w 0x14f2                                                          |         goto label_71;
                                                                                     |     }
    0x00001316 strh r5, [r5, 6]                                                      |     *((r5 + 6)) = r5;
    0x00001318 cmp r5, 0                                                             |     
                                                                                     |     if (r5 == 0) {
    0x0000131a beq.w 0x1568                                                          |         goto label_72;
                                                                                     |     }
    0x0000131e ldr r2, [r5]                                                          |     r2 = *(r5);
    0x00001320 cmp r2, 2                                                             |     
                                                                                     |     if (r2 == 2) {
    0x00001322 beq.w 0x1594                                                          |         goto label_73;
                                                                                     |     }
                                                                                     | label_28:
    0x00001326 ldr.w r1, [pc, 0x49c]                                                 |     
    0x0000132a movw r0, 0xfa2                                                        |     r0 = 0xfa2;
    0x0000132e movs r4, 0                                                            |     r4 = 0;
    0x00001330 mov r5, r4                                                            |     r5 = r4;
    0x00001332 add r1, pc                                                            |     r1 = 0x2afc;
    0x00001334 blx 0xab8                                                             |     fcn_00000ab8 ();
    0x00001338 str r0, [sp, 0x50]                                                    |     var_50h = r0;
    0x0000133a b 0x11bc                                                              |     goto label_14;
                                                                                     | label_69:
    0x0000133c ldrd r4, r5, [sp, 0x2c]                                               |     __asm ("ldrd r4, r5, [var_2ch]");
                                                                                     | label_66:
    0x00001340 movs r3, 0                                                            |     r3 = 0;
    0x00001342 str r3, [sp, 0x2c]                                                    |     var_2ch = r3;
                                                                                     | label_31:
    0x00001344 ldr r3, [sp, 0x1c]                                                    |     r3 = var_1ch;
    0x00001346 ldr.w sl, [sp, 0x54]                                                  |     sl = var_54h;
    0x0000134a ldr.w fp, [sp, 0x1c]                                                  |     fp = var_1ch;
    0x0000134e ldr r3, [r3]                                                          |     r3 = *(r3);
                                                                                     |     if (r3 != 0) {
    0x00001350 cbnz r3, 0x135a                                                       |         goto label_74;
                                                                                     |     }
    0x00001352 b 0x13a4                                                              |     goto label_75;
                                                                                     |     do {
    0x00001354 ldr r3, [fp, 4]!                                                      |         r3 = *(arg_4h);
                                                                                     |         if (r3 == 0) {
    0x00001358 cbz r3, 0x13a4                                                        |             goto label_75;
                                                                                     |         }
                                                                                     | label_74:
    0x0000135a ldr r1, [r3]                                                          |         r1 = *(r3);
    0x0000135c mov r0, r6                                                            |         r0 = r6;
    0x0000135e blx 0xa34                                                             |         r0 = g_strcmp0 ();
    0x00001362 cmp r0, 0                                                             |         
    0x00001364 bne 0x1354                                                            |         
                                                                                     |     } while (r0 != 0);
    0x00001366 ldr.w r2, [fp]                                                        |     r2 = *(fp);
    0x0000136a str r0, [sp, 0x30]                                                    |     n = r0;
    0x0000136c ldr r2, [r2, 4]                                                       |     r2 = *((r2 + 4));
    0x0000136e cmp r2, 0                                                             |     
                                                                                     |     if (r2 == 0) {
    0x00001370 beq.w 0x14fe                                                          |         goto label_76;
                                                                                     |     }
    0x00001374 mov r0, sl                                                            |     r0 = sl;
    0x00001376 blx r2                                                                |     r0 = uint32_t (*r2)(uint32_t) (r0);
    0x00001378 cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x0000137a beq.w 0x14fe                                                          |         goto label_76;
                                                                                     |     }
    0x0000137e ldr r3, [sp, 0x2c]                                                    |     r3 = var_2ch;
    0x00001380 ldr r2, [r0]                                                          |     r2 = *(r0);
    0x00001382 cmp r2, r3                                                            |     
    0x00001384 ldr r3, [sp, 0x30]                                                    |     r3 = n;
                                                                                     |     if (r2 > r3) {
    0x00001386 bhi 0x1430                                                            |         goto label_77;
                                                                                     |     }
    0x00001388 ldr r3, [r0, 4]                                                       |     r3 = *((r0 + 4));
    0x0000138a cmp r3, 0                                                             |     
                                                                                     |     if (r3 == 0) {
    0x0000138c beq.w 0x15ac                                                          |         goto label_78;
                                                                                     |     }
    0x00001390 mov r0, r4                                                            |     r0 = r4;
    0x00001392 add r1, sp, 0x50                                                      |     r1 += var_50h;
    0x00001394 blx r3                                                                |     r0 = uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
    0x00001396 cmp r0, 0                                                             |     
                                                                                     |     if (r0 != 0) {
    0x00001398 bne 0x1468                                                            |         goto label_37;
                                                                                     |     }
                                                                                     | label_35:
    0x0000139a ldr r2, [sp, 0x50]                                                    |     r2 = var_50h;
    0x0000139c cmp r2, 0                                                             |     
                                                                                     |     if (r2 != 0) {
    0x0000139e bne.w 0x11fa                                                          |         goto label_18;
                                                                                     |     }
    0x000013a2 b 0x1046                                                              |     goto label_19;
                                                                                     | label_75:
    0x000013a4 ldr.w r1, [pc, 0x420]                                                 |     
    0x000013a8 movw r0, 0x7d4                                                        |     r0 = 0x7d4;
    0x000013ac add r1, pc                                                            |     r1 = 0x2b78;
    0x000013ae blx 0xab8                                                             |     r0 = fcn_00000ab8 ();
    0x000013b2 mov r2, r0                                                            |     r2 = r0;
    0x000013b4 str r0, [sp, 0x50]                                                    |     var_50h = r0;
    0x000013b6 cmp r2, 0                                                             |     
                                                                                     |     if (r2 != 0) {
    0x000013b8 bne.w 0x11fa                                                          |         goto label_18;
                                                                                     |     }
    0x000013bc b 0x1046                                                              |     goto label_19;
                                                                                     | label_61:
    0x000013be ldr r1, [sp, 0x28]                                                    |     r1 = s2;
                                                                                     |     if (r1 == 0) {
    0x000013c0 cbz r1, 0x13d4                                                        |         goto label_79;
                                                                                     |     }
    0x000013c2 ldr r3, [r1]                                                          |     r3 = *(r1);
                                                                                     |     if (r3 == 0) {
    0x000013c4 cbz r3, 0x13d4                                                        |         goto label_79;
                                                                                     |     }
                                                                                     |     do {
    0x000013c6 ldr r0, [r3]                                                          |         r0 = *(r3);
    0x000013c8 cmp r2, r0                                                            |         
                                                                                     |         if (r2 == r0) {
    0x000013ca beq 0x1420                                                            |             goto label_80;
                                                                                     |         }
    0x000013cc ldr r3, [r1, 4]!                                                      |         r3 = *((r1 += 4));
    0x000013d0 cmp r3, 0                                                             |         
    0x000013d2 bne 0x13c6                                                            |         
                                                                                     |     } while (r3 != 0);
                                                                                     | label_79:
    0x000013d4 ldr r2, [sp, 0x18]                                                    |     r2 = var_18h;
    0x000013d6 add r3, sp, 0x54                                                      |     r3 += var_54h;
    0x000013d8 ldm.w r2, {r0, r1}                                                    |     r0 = *(r2);
                                                                                     |     r1 = *((r2 + 4));
    0x000013dc mov r2, r5                                                            |     r2 = r5;
    0x000013de stm.w r3, {r0, r1}                                                    |     *(r3) = r0;
                                                                                     |     *((r3 + 4)) = r1;
    0x000013e2 cmp.w r8, 0                                                           |     
                                                                                     |     if (r8 != 0) {
    0x000013e6 bne 0x1480                                                            |         goto label_81;
                                                                                     |     }
                                                                                     | label_23:
    0x000013e8 mov r1, r3                                                            |     r1 = r3;
    0x000013ea mov r0, r6                                                            |     r0 = r6;
    0x000013ec bl 0xbc8                                                              |     r0 = fcn_00000bc8 (r0, r1, r2);
    0x000013f0 mov r5, r0                                                            |     r5 = r0;
    0x000013f2 cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x000013f4 beq.w 0x1044                                                          |         goto label_7;
                                                                                     |     }
    0x000013f8 ldr r2, [sp, 0x50]                                                    |     r2 = var_50h;
    0x000013fa cmp r2, 0                                                             |     
                                                                                     |     if (r2 != 0) {
    0x000013fc bne.w 0x11fa                                                          |         goto label_18;
                                                                                     |     }
                                                                                     | label_63:
    0x00001400 ldr r1, [sp, 0x34]                                                    |     r1 = var_34h;
    0x00001402 mov.w r0, 0x1f40                                                      |     r0 = 0x1f40;
    0x00001406 blx 0xab8                                                             |     r0 = fcn_00000ab8 ();
    0x0000140a mov r2, r0                                                            |     r2 = r0;
    0x0000140c b 0x11fa                                                              |     goto label_18;
                                                                                     | label_52:
    0x0000140e str r0, [sp, 0x50]                                                    |     var_50h = r0;
                                                                                     |     if (r5 != 0) {
    0x00001410 cbz r5, 0x141c                                                        |         
    0x00001412 ldr r3, [r5]                                                          |         r3 = *(r5);
    0x00001414 cmp r3, 2                                                             |         
    0x00001416 it ne                                                                 |         
                                                                                     |         if (r3 == 2) {
    0x00001418 movne r5, 0                                                           |             r5 = 0;
                                                                                     |         }
                                                                                     |         if (r3 == 2) {
    0x0000141a beq 0x145a                                                            |             goto label_53;
                                                                                     |         }
                                                                                     |     }
    0x0000141c mov r4, r5                                                            |     r4 = r5;
    0x0000141e b 0x11bc                                                              |     goto label_14;
                                                                                     | label_80:
    0x00001420 ldr r3, [r3, 4]                                                       |     r3 = *((r3 + 4));
    0x00001422 str r3, [sp, 0x58]                                                    |     var_58h = r3;
    0x00001424 add r3, sp, 0x54                                                      |     r3 += var_54h;
    0x00001426 b 0x11da                                                              |     goto label_20;
                                                                                     | label_44:
    0x00001428 ldr r3, [sp, 0xc]                                                     |     r3 = var_ch;
    0x0000142a str r5, [sp, 0x10]                                                    |     var_10h = r5;
    0x0000142c str r3, [sp, 8]                                                       |     var_8h = r3;
    0x0000142e b 0xf76                                                               |     goto label_21;
                                                                                     | label_77:
    0x00001430 mov r0, r3                                                            |     r0 = r3;
    0x00001432 str r2, [sp]                                                          |     *(sp) = r2;
    0x00001434 ldr r3, [pc, 0x394]                                                   |     
    0x00001436 movs r1, 0x10                                                         |     r1 = 0x10;
    0x00001438 ldr r2, [pc, 0x394]                                                   |     
    0x0000143a add r3, pc                                                            |     r3 = 0x2c0a;
    0x0000143c add r2, pc                                                            |     r2 = 0x2c10;
    0x0000143e blx 0xa94                                                             |     g_log ();
    0x00001442 ldr r1, [pc, 0x390]                                                   |     
    0x00001444 movw r0, 0x7d1                                                        |     r0 = 0x7d1;
    0x00001448 add r1, pc                                                            |     r1 = 0x2c22;
    0x0000144a blx 0xab8                                                             |     r0 = fcn_00000ab8 ();
    0x0000144e mov r2, r0                                                            |     r2 = r0;
    0x00001450 str r0, [sp, 0x50]                                                    |     var_50h = r0;
    0x00001452 cmp r2, 0                                                             |     
                                                                                     |     if (r2 != 0) {
    0x00001454 bne.w 0x11fa                                                          |         goto label_18;
                                                                                     |     }
    0x00001458 b 0x1046                                                              |     goto label_19;
                                                                                     | label_53:
    0x0000145a mov r0, r5                                                            |     r0 = r5;
    0x0000145c blx 0x9f8                                                             |     r0 = json_string_value ();
    0x00001460 mov r5, r0                                                            |     r5 = r0;
                                                                                     | label_25:
    0x00001462 ldr r0, [sp, 0x50]                                                    |     r0 = var_50h;
    0x00001464 movs r4, 0                                                            |     r4 = 0;
    0x00001466 b 0x11bc                                                              |     goto label_14;
                                                                                     | label_37:
    0x00001468 ldr r2, [sp, 0x50]                                                    |     r2 = var_50h;
    0x0000146a cmp r2, 0                                                             |     
                                                                                     |     if (r2 == 0) {
    0x0000146c beq 0x1560                                                            |         goto label_82;
                                                                                     |     }
                                                                                     | label_32:
    0x0000146e ldr r1, [pc, 0x368]                                                   |     
    0x00001470 mov r0, r5                                                            |     r0 = r5;
    0x00001472 add r1, pc                                                            |     r1 = 0x2c50;
    0x00001474 blx 0x9b0                                                             |     r0 = json_object_set_new_nocheck ();
    0x00001478 clz r0, r0                                                            |     r0 &= r0;
    0x0000147c lsrs r0, r0, 5                                                        |     r0 >>= 5;
    0x0000147e b 0x1208                                                              |     goto label_22;
                                                                                     | label_81:
    0x00001480 ldr r1, [pc, 0x358]                                                   |     
    0x00001482 movw r0, 0x7d3                                                        |     r0 = 0x7d3;
    0x00001486 str r3, [sp, 0x2c]                                                    |     var_2ch = r3;
    0x00001488 add r1, pc                                                            |     r1 = 0x2c68;
    0x0000148a blx 0xab8                                                             |     fcn_00000ab8 ();
    0x0000148e str r0, [sp, 0x50]                                                    |     var_50h = r0;
    0x00001490 cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x00001492 beq.w 0x1044                                                          |         goto label_7;
                                                                                     |     }
    0x00001496 ldr r3, [sp, 0x2c]                                                    |     r3 = var_2ch;
    0x00001498 mov r2, r5                                                            |     r2 = r5;
    0x0000149a b 0x13e8                                                              |     goto label_23;
                                                                                     | label_65:
    0x0000149c movs r4, 0                                                            |     r4 = 0;
    0x0000149e mov r6, r4                                                            |     r6 = r4;
    0x000014a0 mov fp, r4                                                            |     
                                                                                     | label_27:
    0x000014a2 mov r0, r5                                                            |     r0 = r5;
    0x000014a4 eor r4, r4, 1                                                         |     r4 ^= 1;
    0x000014a8 blx 0x9f8                                                             |     json_string_value ();
    0x000014ac and.w r8, r4, fp                                                      |     r8 = r4 & fp;
    0x000014b0 mov r5, r0                                                            |     r5 = r0;
                                                                                     | label_26:
    0x000014b2 cmp.w r8, 0                                                           |     
                                                                                     |     if (r8 == 0) {
    0x000014b6 beq 0x14e4                                                            |         goto label_83;
                                                                                     |     }
    0x000014b8 ldr r1, [pc, 0x324]                                                   |     
    0x000014ba mov r0, sl                                                            |     r0 = sl;
    0x000014bc add r1, pc                                                            |     r1 = 0x2ca0;
    0x000014be adds r1, 0x5c                                                         |     r1 += 0x5c;
    0x000014c0 blx 0xaf4                                                             |     r0 = json_object_get ();
    0x000014c4 mov r4, r0                                                            |     r4 = r0;
    0x000014c6 cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x000014c8 beq.w 0x11c6                                                          |         goto label_24;
                                                                                     |     }
    0x000014cc ldr r3, [r0]                                                          |     r3 = *(r0);
    0x000014ce cmp r3, 1                                                             |     
                                                                                     |     if (r3 < 1) {
    0x000014d0 bls.w 0x11c6                                                          |         goto label_24;
                                                                                     |     }
    0x000014d4 ldr r1, [pc, 0x30c]                                                   |     
    0x000014d6 movw r0, 0xfa2                                                        |     r0 = 0xfa2;
    0x000014da add r1, pc                                                            |     r1 = 0x2cc2;
    0x000014dc blx 0xab8                                                             |     fcn_00000ab8 ();
    0x000014e0 str r0, [sp, 0x50]                                                    |     var_50h = r0;
    0x000014e2 b 0x11bc                                                              |     goto label_14;
                                                                                     | label_83:
    0x000014e4 mov r8, fp                                                            |     r8 = fp;
    0x000014e6 movs r4, 0                                                            |     r4 = 0;
    0x000014e8 cmp.w fp, 0                                                           |     
                                                                                     |     if (fp != 0) {
    0x000014ec bne.w 0x11c6                                                          |         goto label_24;
                                                                                     |     }
    0x000014f0 b 0x1462                                                              |     goto label_25;
                                                                                     | label_71:
    0x000014f2 cmp r5, 0                                                             |     
                                                                                     |     if (r5 != 0) {
    0x000014f4 bne.w 0x175c                                                          |         goto label_84;
                                                                                     |     }
                                                                                     | label_33:
    0x000014f8 mov.w r8, 1                                                           |     r8 = 1;
    0x000014fc b 0x11c6                                                              |     goto label_24;
                                                                                     | label_76:
    0x000014fe ldr r1, [pc, 0x2e8]                                                   |     
    0x00001500 mov.w r0, 0x1f40                                                      |     r0 = 0x1f40;
    0x00001504 add r1, pc                                                            |     r1 = 0x2cf2;
    0x00001506 blx 0xab8                                                             |     r0 = fcn_00000ab8 ();
    0x0000150a mov r2, r0                                                            |     r2 = r0;
    0x0000150c str r0, [sp, 0x50]                                                    |     var_50h = r0;
    0x0000150e cmp r2, 0                                                             |     
                                                                                     |     if (r2 != 0) {
    0x00001510 bne.w 0x11fa                                                          |         goto label_18;
                                                                                     |     }
    0x00001514 b 0x1046                                                              |     goto label_19;
                                                                                     | label_51:
    0x00001516 mov r0, r4                                                            |     r0 = r4;
    0x00001518 add.w r8, sp, 0x5c                                                    |     r8 += var_5ch;
    0x0000151c blx 0x9f8                                                             |     json_string_value ();
    0x00001520 ldr r1, [pc, 0x2c8]                                                   |     
    0x00001522 movs r4, 0                                                            |     r4 = 0;
    0x00001524 add r3, sp, 0x60                                                      |     r3 += var_60h;
    0x00001526 mov r2, r8                                                            |     r2 = r8;
    0x00001528 str r4, [sp, 0x60]                                                    |     var_60h = r4;
    0x0000152a add r1, pc                                                            |     r1 = 0x2d1a;
    0x0000152c blx 0xa7c                                                             |     r0 = isoc99_sscanf ();
    0x00001530 cmp r0, r4                                                            |     
                                                                                     |     if (r0 <= r4) {
    0x00001532 ble 0x1586                                                            |         goto label_85;
                                                                                     |     }
    0x00001534 ldm.w r8, {r0, r1}                                                    |     r0 = *(r8);
                                                                                     |     r1 = *((r8 + 4));
    0x00001538 add r3, sp, 0x54                                                      |     r3 += var_54h;
    0x0000153a mov r8, fp                                                            |     r8 = fp;
    0x0000153c stm.w r3, {r0, r1}                                                    |     *(r3) = r0;
                                                                                     |     *((r3 + 4)) = r1;
    0x00001540 cmp r5, 0                                                             |     
                                                                                     |     if (r5 == 0) {
    0x00001542 beq 0x14b2                                                            |         goto label_26;
                                                                                     |     }
    0x00001544 ldr r3, [r5]                                                          |     r3 = *(r5);
    0x00001546 cmp r3, 2                                                             |     
                                                                                     |     if (r3 == 2) {
    0x00001548 beq 0x14a2                                                            |         goto label_27;
                                                                                     |     }
    0x0000154a cmp.w fp, 0                                                           |     
                                                                                     |     if (fp != 0) {
    0x0000154e bne.w 0x1326                                                          |         goto label_28;
                                                                                     |     }
    0x00001552 b 0x1264                                                              |     goto label_29;
                                                                                     | label_43:
    0x00001554 ldr.w fp, [sp, 0x28]                                                  |     fp = s2;
    0x00001558 b 0xf40                                                               |     goto label_30;
                                                                                     | label_67:
    0x0000155a movs r3, 1                                                            |     r3 = 1;
    0x0000155c str r3, [sp, 0x2c]                                                    |     var_2ch = r3;
    0x0000155e b 0x1344                                                              |     goto label_31;
                                                                                     | label_82:
    0x00001560 blx 0x9d4                                                             |     r0 = json_object ();
    0x00001564 mov r2, r0                                                            |     r2 = r0;
    0x00001566 b 0x146e                                                              |     goto label_32;
                                                                                     | label_72:
    0x00001568 mov r4, r5                                                            |     r4 = r5;
    0x0000156a b 0x14f8                                                              |     goto label_33;
                                                                                     | label_45:
    0x0000156c mov r0, r3                                                            |     r0 = r3;
    0x0000156e blx 0xaa0                                                             |     r0 = json_array_size ();
    0x00001572 mov r4, r0                                                            |     r4 = r0;
    0x00001574 str r0, [sp, 0x10]                                                    |     var_10h = r0;
    0x00001576 blx 0x98c                                                             |     json_array ();
    0x0000157a str r0, [sp, 0x48]                                                    |     var_48h = r0;
    0x0000157c cmp r4, 0                                                             |     
                                                                                     |     if (r4 == 0) {
    0x0000157e beq.w 0x1064                                                          |         goto label_11;
                                                                                     |     }
    0x00001582 str r6, [sp, 8]                                                       |     var_8h = r6;
    0x00001584 b 0xf76                                                               |     goto label_21;
                                                                                     | label_85:
    0x00001586 ldr r1, [pc, 0x268]                                                   |     
    0x00001588 movw r0, 0x7d3                                                        |     r0 = 0x7d3;
    0x0000158c add r1, pc                                                            |     r1 = 0x2d82;
    0x0000158e blx 0xab8                                                             |     fcn_00000ab8 ();
    0x00001592 b 0x101e                                                              |     goto label_34;
                                                                                     | label_73:
    0x00001594 mov r0, r5                                                            |     r0 = r5;
    0x00001596 mov r4, r3                                                            |     r4 = r3;
    0x00001598 mov.w r8, 1                                                           |     r8 = 1;
    0x0000159c blx 0x9f8                                                             |     r0 = json_string_value ();
    0x000015a0 mov r5, r0                                                            |     r5 = r0;
    0x000015a2 b 0x11c6                                                              |     goto label_24;
                                                                                     | label_58:
    0x000015a4 mov r0, r5                                                            |     r0 = r5;
    0x000015a6 blx 0x9e0                                                             |     json_delete ();
    0x000015aa b 0x10c8                                                              |     goto label_3;
                                                                                     | label_78:
    0x000015ac ldr r1, [sp, 0x3c]                                                    |     r1 = var_3ch;
    0x000015ae mov r0, r6                                                            |     r0 = r6;
    0x000015b0 blx 0xa34                                                             |     r0 = g_strcmp0 ();
    0x000015b4 mov r4, r0                                                            |     r4 = r0;
    0x000015b6 cmp r0, 0                                                             |     
                                                                                     |     if (r0 != 0) {
    0x000015b8 bne.w 0x139a                                                          |         goto label_35;
                                                                                     |     }
    0x000015bc blx 0x98c                                                             |     json_array ();
    0x000015c0 str r0, [sp, 0x2c]                                                    |     var_2ch = r0;
    0x000015c2 cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x000015c4 beq.w 0x139a                                                          |         goto label_35;
                                                                                     |     }
    0x000015c8 ldr r2, [sp, 0x28]                                                    |     r2 = s2;
    0x000015ca ldr r0, [r2]                                                          |     r0 = *(r2);
    0x000015cc cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x000015ce beq.w 0x1722                                                          |         goto label_86;
                                                                                     |     }
    0x000015d2 mov r3, r4                                                            |     r3 = r4;
                                                                                     |     do {
    0x000015d4 ldr r4, [r2, 4]!                                                      |         r4 = *((r2 += 4));
    0x000015d8 mov fp, r3                                                            |         
    0x000015da adds r3, 1                                                            |         r3++;
    0x000015dc cmp r4, 0                                                             |         
    0x000015de bne 0x15d4                                                            |         
                                                                                     |     } while (r4 != 0);
    0x000015e0 lsls r3, r3, 2                                                        |     r3 <<= 2;
    0x000015e2 mov r0, r3                                                            |     r0 = r3;
    0x000015e4 str r3, [sp, 0x30]                                                    |     n = r3;
    0x000015e6 blx 0x968                                                             |     r0 = g_malloc ();
    0x000015ea mov sl, r0                                                            |     sl = r0;
    0x000015ec cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x000015ee beq.w 0x1732                                                          |         goto label_87;
                                                                                     |     }
    0x000015f2 ldr r6, [sp, 0x30]                                                    |     r6 = n;
    0x000015f4 ldr r1, [sp, 0x28]                                                    |     r1 = s2;
    0x000015f6 mov r2, r6                                                            |     r2 = r6;
    0x000015f8 subs r6, 4                                                            |     r6 -= 4;
    0x000015fa blx 0x9c8                                                             |     memcpy (r0, r1, r2);
    0x000015fe add r6, sl                                                            |     r6 += sl;
    0x00001600 mov lr, r4                                                            |     lr = r4;
                                                                                     | label_36:
    0x00001602 cmp r6, sl                                                            |     
                                                                                     |     if (r6 < sl) {
    0x00001604 bls 0x163c                                                            |         goto label_88;
                                                                                     |     }
    0x00001606 mov ip, r8                                                            |     
    0x00001608 mov r3, sl                                                            |     r3 = sl;
                                                                                     |     do {
    0x0000160a ldr r2, [r3], 4                                                       |         r2 = *(r3);
                                                                                     |         r3 += 4;
    0x0000160e ldr r1, [r3]                                                          |         r1 = *(r3);
    0x00001610 ldr r4, [r2]                                                          |         r4 = *(r2);
    0x00001612 ldr r0, [r1]                                                          |         r0 = *(r1);
    0x00001614 cmp r4, r0                                                            |         
    0x00001616 itt hi                                                                |         
                                                                                     |         if (r4 <= r0) {
    0x00001618 movhi ip, 0                                                           |             
                                                                                     |         }
                                                                                     |         if (r4 > r0) {
    0x0000161c strd r1, r2, [r3, -0x4]                                               |             __asm ("strd r1, r2, [r3, -0x4]");
                                                                                     |         }
    0x00001620 cmp r3, r6                                                            |         
    0x00001622 blo 0x160a                                                            |         
                                                                                     |     } while (r3 <= r6);
    0x00001624 eor r3, ip, 1                                                         |     r3 = ip ^ 1;
    0x00001628 subs r6, 4                                                            |     r6 -= 4;
    0x0000162a cmp lr, fp                                                            |     
    0x0000162c ite ge                                                                |     
                                                                                     |     if (lr < fp) {
    0x0000162e movge r3, 0                                                           |         r3 = 0;
                                                                                     |     }
                                                                                     |     if (lr >= fp) {
    0x00001630 andlt r3, r3, 1                                                       |         r3 &= 1;
                                                                                     |     }
    0x00001634 add.w lr, lr, 1                                                       |     lr++;
    0x00001638 cmp r3, 0                                                             |     
                                                                                     |     if (r3 != 0) {
    0x0000163a bne 0x1602                                                            |         goto label_36;
                                                                                     |     }
                                                                                     | label_88:
    0x0000163c ldr r3, [sp, 0x30]                                                    |     r3 = n;
    0x0000163e add r3, sl                                                            |     r3 += sl;
    0x00001640 cmp sl, r3                                                            |     
    0x00001642 mov fp, r3                                                            |     
                                                                                     |     if (sl >= r3) {
    0x00001644 bhs 0x172a                                                            |         goto label_89;
                                                                                     |     }
    0x00001646 ldr.w r8, [pc, 0x1ac]                                                 |     
    0x0000164a mov r6, sl                                                            |     r6 = sl;
    0x0000164c ldr r4, [sp, 0x2c]                                                    |     r4 = var_2ch;
    0x0000164e str r5, [sp, 0x30]                                                    |     n = r5;
    0x00001650 add r8, pc                                                            |     r8 = 0x2e4a;
    0x00001652 str r7, [sp, 0x38]                                                    |     var_38h = r7;
    0x00001654 b 0x165a                                                              |     
                                                                                     |     while (fp > r6) {
    0x00001656 cmp r5, 0                                                             |         
                                                                                     |         if (r5 != 0) {
    0x00001658 bne 0x170c                                                            |             goto label_90;
                                                                                     |         }
    0x0000165a ldr r3, [r6], 4                                                       |         r3 = *(r6);
                                                                                     |         r6 += 4;
    0x0000165e mov r0, r8                                                            |         r0 = r8;
    0x00001660 ldrd r1, r2, [r3]                                                     |         __asm ("ldrd r1, r2, [r3]");
    0x00001664 blx 0xa40                                                             |         r0 = g_strdup_printf ()
    0x00001668 mov r7, r0                                                            |         r7 = r0;
    0x0000166a cmp r0, 0                                                             |         
                                                                                     |         if (r0 == 0) {
    0x0000166c beq 0x1742                                                            |             goto label_91;
                                                                                     |         }
    0x0000166e blx 0xa64                                                             |         r0 = json_string ();
    0x00001672 mov r1, r0                                                            |         r1 = r0;
    0x00001674 mov r0, r4                                                            |         r0 = r4;
    0x00001676 blx 0x9a4                                                             |         r0 = json_array_append_new ();
    0x0000167a mov r5, r0                                                            |         r5 = r0;
    0x0000167c mov r0, r7                                                            |         r0 = r7;
    0x0000167e blx 0x980                                                             |         g_free ();
    0x00001682 cmp fp, r6                                                            |         
    0x00001684 bhi 0x1656                                                            |         
                                                                                     |     }
    0x00001686 mov r4, r5                                                            |     r4 = r5;
    0x00001688 mov r0, sl                                                            |     r0 = sl;
    0x0000168a ldr r5, [sp, 0x30]                                                    |     r5 = n;
    0x0000168c ldr r7, [sp, 0x38]                                                    |     r7 = var_38h;
    0x0000168e blx 0x980                                                             |     g_free ();
    0x00001692 cmp r4, 0                                                             |     
                                                                                     |     if (r4 != 0) {
    0x00001694 bne 0x1716                                                            |         goto label_40;
                                                                                     |     }
                                                                                     | label_39:
    0x00001696 blx 0x9d4                                                             |     json_object ();
    0x0000169a str r0, [sp, 0x50]                                                    |     var_50h = r0;
                                                                                     |     if (r0 == 0) {
    0x0000169c cbz r0, 0x16d2                                                        |         goto label_42;
                                                                                     |     }
    0x0000169e ldr r1, [pc, 0x158]                                                   |     
    0x000016a0 ldr r2, [sp, 0x2c]                                                    |     r2 = var_2ch;
    0x000016a2 add r1, pc                                                            |     r1 = 0x2ea0;
    0x000016a4 adds r1, 0x70                                                         |     r1 += 0x70;
    0x000016a6 blx 0x9b0                                                             |     r0 = json_object_set_new_nocheck ();
    0x000016aa cmp r0, 0                                                             |     
                                                                                     |     if (r0 == 0) {
    0x000016ac beq.w 0x1468                                                          |         goto label_37;
                                                                                     |     }
    0x000016b0 ldr r0, [sp, 0x50]                                                    |     r0 = var_50h;
                                                                                     |     if (r0 == 0) {
    0x000016b2 cbz r0, 0x16d2                                                        |         goto label_42;
                                                                                     |     }
    0x000016b4 ldr r3, [r0, 4]                                                       |     r3 = *((r0 + 4));
    0x000016b6 adds r3, 1                                                            |     r3++;
                                                                                     |     if (r3 == 1) {
    0x000016b8 beq 0x16d2                                                            |         goto label_42;
                                                                                     |     }
    0x000016ba adds r3, r0, 4                                                        |     r3 = r0 + 4;
    0x000016bc dmb ish                                                               |     __asm ("dmb ish");
                                                                                     |     do {
    0x000016c0 ldrex r2, [r3]                                                        |         __asm ("ldrex r2, [r3]");
    0x000016c4 subs r2, 1                                                            |         r2--;
    0x000016c6 strex r1, r2, [r3]                                                    |         __asm ("strex r1, r2, [r3]");
    0x000016ca cmp r1, 0                                                             |         
    0x000016cc bne 0x16c0                                                            |         
                                                                                     |     } while (r1 != 0);
    0x000016ce cmp r2, 0                                                             |     
                                                                                     |     if (r2 == 0) {
    0x000016d0 beq 0x1756                                                            |         goto label_92;
                                                                                     |     }
                                                                                     | label_42:
    0x000016d2 ldr r3, [sp, 0x2c]                                                    |     r3 = var_2ch;
    0x000016d4 movs r2, 0                                                            |     r2 = 0;
    0x000016d6 str r2, [sp, 0x50]                                                    |     var_50h = r2;
    0x000016d8 ldr r3, [r3, 4]                                                       |     r3 = *((r3 + 4));
    0x000016da adds r3, 1                                                            |     r3++;
                                                                                     |     if (r3 == 1) {
    0x000016dc beq.w 0x1046                                                          |         goto label_19;
                                                                                     |     }
                                                                                     | label_38:
    0x000016e0 ldr r3, [sp, 0x2c]                                                    |     r3 = var_2ch;
    0x000016e2 dmb ish                                                               |     __asm ("dmb ish");
    0x000016e6 adds r3, 4                                                            |     r3 += 4;
                                                                                     |     do {
    0x000016e8 ldrex r2, [r3]                                                        |         __asm ("ldrex r2, [r3]");
    0x000016ec subs r2, 1                                                            |         r2--;
    0x000016ee strex r1, r2, [r3]                                                    |         __asm ("strex r1, r2, [r3]");
    0x000016f2 cmp r1, 0                                                             |         
    0x000016f4 bne 0x16e8                                                            |         
                                                                                     |     } while (r1 != 0);
    0x000016f6 cmp r2, 0                                                             |     
                                                                                     |     if (r2 != 0) {
    0x000016f8 bne.w 0x139a                                                          |         goto label_35;
                                                                                     |     }
    0x000016fc ldr r0, [sp, 0x2c]                                                    |     r0 = var_2ch;
    0x000016fe blx 0x9e0                                                             |     json_delete ();
    0x00001702 ldr r2, [sp, 0x50]                                                    |     r2 = var_50h;
    0x00001704 cmp r2, 0                                                             |     
                                                                                     |     if (r2 != 0) {
    0x00001706 bne.w 0x11fa                                                          |         goto label_18;
                                                                                     |     }
    0x0000170a b 0x1046                                                              |     goto label_19;
                                                                                     | label_90:
    0x0000170c ldr r5, [sp, 0x30]                                                    |     r5 = n;
    0x0000170e ldr r7, [sp, 0x38]                                                    |     r7 = var_38h;
                                                                                     | label_41:
    0x00001710 mov r0, sl                                                            |     r0 = sl;
    0x00001712 blx 0x980                                                             |     g_free ();
                                                                                     | label_40:
    0x00001716 ldr r3, [sp, 0x2c]                                                    |     r3 = var_2ch;
    0x00001718 ldr r3, [r3, 4]                                                       |     r3 = *((r3 + 4));
    0x0000171a adds r3, 1                                                            |     r3++;
                                                                                     |     if (r3 == 1) {
    0x0000171c beq.w 0x139a                                                          |         goto label_35;
                                                                                     |     }
    0x00001720 b 0x16e0                                                              |     goto label_38;
                                                                                     | label_86:
    0x00001722 blx 0x968                                                             |     r0 = g_malloc ();
    0x00001726 mov sl, r0                                                            |     sl = r0;
                                                                                     |     if (r0 != 0) {
    0x00001728 cbz r0, 0x1732                                                        |         
                                                                                     | label_89:
    0x0000172a mov r0, sl                                                            |         r0 = sl;
    0x0000172c blx 0x980                                                             |         g_free ();
    0x00001730 b 0x1696                                                              |         goto label_39;
                                                                                     |     }
                                                                                     | label_87:
    0x00001732 ldr r1, [pc, 0xc8]                                                    |     
    0x00001734 mov.w r0, 0x7d0                                                       |     r0 = 0x7d0;
    0x00001738 add r1, pc                                                            |     r1 = 0x2f3a;
    0x0000173a blx 0xab8                                                             |     fcn_00000ab8 ();
    0x0000173e str r0, [sp, 0x50]                                                    |     var_50h = r0;
    0x00001740 b 0x1716                                                              |     goto label_40;
                                                                                     | label_91:
    0x00001742 ldr r1, [pc, 0xbc]                                                    |     
    0x00001744 mov.w r0, 0x7d0                                                       |     r0 = 0x7d0;
    0x00001748 ldr r5, [sp, 0x30]                                                    |     r5 = n;
    0x0000174a ldr r7, [sp, 0x38]                                                    |     r7 = var_38h;
    0x0000174c add r1, pc                                                            |     r1 = 0x2f52;
    0x0000174e blx 0xab8                                                             |     fcn_00000ab8 ();
    0x00001752 str r0, [sp, 0x50]                                                    |     var_50h = r0;
    0x00001754 b 0x1710                                                              |     goto label_41;
                                                                                     | label_92:
    0x00001756 blx 0x9e0                                                             |     json_delete ();
    0x0000175a b 0x16d2                                                              |     goto label_42;
                                                                                     | label_84:
    0x0000175c ldr r3, [r5]                                                          |     r3 = *(r5);
    0x0000175e cmp r3, 2                                                             |     
                                                                                     |     if (r3 != 2) {
    0x00001760 bne.w 0x1326                                                          |         goto label_28;
                                                                                     |     }
    0x00001764 movs r4, 1                                                            |     r4 = 1;
    0x00001766 mov fp, r4                                                            |     
    0x00001768 b 0x14a2                                                              |     goto label_27;
                                                                                     | label_59:
    0x0000176a blx 0x9ec                                                             |     stack_chk_fail ();
    0x0000176e nop                                                                   |     
    0x00001770 asrs r6, r0, 1                                                        |     r6 = r0 >> 1;
    0x00001772 movs r1, r0                                                           |     r1 = r0;
    0x00001774 lsls r4, r4, 2                                                        |     r4 <<= 2;
    0x00001776 movs r0, r0                                                           |     
    0x00001778 asrs r2, r7, 0x20                                                     |     r2 = r7 >> 0x20;
    0x0000177a movs r1, r0                                                           |     r1 = r0;
    0x0000177c lsrs r2, r1, 0xe                                                      |     r2 = r1 >> 0xe;
    0x0000177e movs r0, r0                                                           |     
    0x00001780 lsrs r6, r0, 0xe                                                      |     r6 = r0 >> 0xe;
    0x00001782 movs r0, r0                                                           |     
    0x00001784 lsrs r4, r7, 6                                                        |     r4 = r7 >> 6;
    0x00001786 movs r0, r0                                                           |     
    0x00001788 lsrs r0, r1, 6                                                        |     r0 = r1 >> 6;
    0x0000178a movs r0, r0                                                           |     
    0x0000178c lsrs r2, r6, 6                                                        |     r2 = r6 >> 6;
    0x0000178e movs r0, r0                                                           |     
    0x00001790 lsrs r0, r2, 6                                                        |     r0 = r2 >> 6;
    0x00001792 movs r0, r0                                                           |     
    0x00001794 lsrs r2, r7, 9                                                        |     r2 = r7 >> 9;
    0x00001796 movs r0, r0                                                           |     
    0x00001798 lsrs r4, r5, 8                                                        |     r4 = r5 >> 8;
    0x0000179a movs r0, r0                                                           |     
    0x0000179c lsrs r4, r6, 7                                                        |     r4 = r6 >> 7;
    0x0000179e movs r0, r0                                                           |     
    0x000017a0 lsls r0, r6, 2                                                        |     r0 = r6 << 2;
    0x000017a2 movs r0, r0                                                           |     
    0x000017a4 lsrs r4, r1, 0x19                                                     |     r4 = r1 >> 0x19;
    0x000017a6 movs r1, r0                                                           |     r1 = r0;
    0x000017a8 lsrs r2, r2, 7                                                        |     r2 >>= 7;
    0x000017aa movs r0, r0                                                           |     
    0x000017ac lsrs r2, r7, 0x20                                                     |     r2 = r7 >> 0x20;
    0x000017ae movs r0, r0                                                           |     
    0x000017b0 lsls r6, r3, 0x1e                                                     |     r6 = r3 << 0x1e;
    0x000017b2 movs r0, r0                                                           |     
    0x000017b4 lsrs r4, r1, 2                                                        |     r4 = r1 >> 2;
    0x000017b6 movs r0, r0                                                           |     
    0x000017b8 lsrs r2, r2, 0xd                                                      |     r2 >>= 0xd;
    0x000017ba movs r1, r0                                                           |     r1 = r0;
    0x000017bc lsls r0, r0, 0x1c                                                     |     r0 <<= 0x1c;
    0x000017be movs r0, r0                                                           |     
    0x000017c0 lsrs r0, r7, 0xb                                                      |     r0 = r7 >> 0xb;
    0x000017c2 movs r1, r0                                                           |     r1 = r0;
    0x000017c4 lsls r6, r6, 0x19                                                     |     r6 <<= 0x19;
    0x000017c6 movs r0, r0                                                           |     
    0x000017c8 lsls r0, r4, 0x1a                                                     |     r0 = r4 << 0x1a;
    0x000017ca movs r0, r0                                                           |     
    0x000017cc lsls r2, r4, 0x15                                                     |     r2 = r4 << 0x15;
    0x000017ce movs r0, r0                                                           |     
    0x000017d0 lsls r4, r0, 0x19                                                     |     r4 = r0 << 0x19;
    0x000017d2 movs r0, r0                                                           |     
    0x000017d4 lsls r0, r4, 0x19                                                     |     r0 = r4 << 0x19;
    0x000017d6 movs r0, r0                                                           |     
    0x000017d8 lsls r2, r1, 0x19                                                     |     r2 = r1 << 0x19;
    0x000017da movs r0, r0                                                           |     
    0x000017dc lsls r0, r3, 0x16                                                     |     r0 = r3 << 0x16;
    0x000017de movs r0, r0                                                           |     
    0x000017e0 lsls r0, r2, 0x19                                                     |     r0 = r2 << 0x19;
    0x000017e2 movs r0, r0                                                           |     
    0x000017e4 lsls r6, r1, 0x13                                                     |     r6 = r1 << 0x13;
    0x000017e6 movs r0, r0                                                           |     
    0x000017e8 lsls r4, r3, 0x10                                                     |     r4 = r3 << 0x10;
    0x000017ea movs r0, r0                                                           |     
    0x000017ec lsls r6, r5, 0x13                                                     |     r6 = r5 << 0x13;
    0x000017ee movs r0, r0                                                           |     
    0x000017f0 lsls r4, r2, 0x12                                                     |     r4 = r2 << 0x12;
    0x000017f2 movs r0, r0                                                           |     
    0x000017f4 lsls r0, r2, 9                                                        |     r0 = r2 << 9;
    0x000017f6 movs r0, r0                                                           |     
    0x000017f8 lsls r2, r5, 0x11                                                     |     r2 = r5 << 0x11;
    0x000017fa movs r0, r0                                                           |     
    0x000017fc lsls r4, r5, 0xc                                                      |     r4 = r5 << 0xc;
    0x000017fe movs r0, r0                                                           |     
    0x00001800 lsls r0, r3, 0xc                                                      |     r0 = r3 << 0xc;
    0x00001802 movs r0, r0                                                           |     
                                                                                     |     /* [12] -r-x section size 8 named .fini */
    0x00001804 ands r0, r1                                                           |     r0 &= r1;
    0x00001806 invalid                                                               |     
                                                                                     | }

[*] Function printf used 4 times libaxcgijson.so