[*] Binary protection state of jq

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


[*] Function fprintf tear down of jq

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/jq @ 0x29a4 */
                                             | #include <stdint.h>
                                             |  
                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                             |  
    ; (fcn) fcn.000029a4 ()                  | void fcn_000029a4 (int16_t arg_0h, int16_t arg_ch, int16_t arg_18h, int16_t arg_2ch, int16_t arg_30h, char * src, int16_t arg_38h, int16_t arg_3ch, int16_t arg_40h, int16_t arg_44h, size_t nitems, int16_t arg_4ch, int16_t base, int16_t arg_54h, int16_t arg_58h, int16_t arg_5ch, int16_t arg_60h, int16_t arg_64h, int16_t arg_68h, int16_t arg_6ch, int16_t arg_70h, int16_t arg_74h, int16_t arg_78h, int16_t arg_7ch, int16_t arg_80h, int16_t arg_a8h, int16_t arg_b8h, int16_t arg_c8h, int16_t arg_d0h, int16_t arg_d8h, int16_t arg_e0h, int16_t arg_f0h, int16_t arg_100h, int16_t arg_110h, int16_t arg_120h, int16_t arg_128h, int16_t arg_130h, int16_t arg_140h, int16_t arg_148h, int16_t arg_150h, int16_t arg_160h, int16_t arg_170h, int16_t arg_180h, int16_t arg_190h, int16_t arg_1a0h, int16_t arg_1b0h, int16_t arg_1c0h, int16_t arg_1d0h, int16_t arg_1e0h, int16_t arg_1f0h, int16_t arg_200h, int16_t arg_210h, int16_t arg_218h, int16_t arg_220h, int16_t arg_230h, int16_t arg_238h, int16_t arg_240h, int16_t arg_250h, int16_t arg_258h, int16_t arg_260h, int16_t arg_270h, int16_t arg_278h, int16_t arg_280h, int16_t arg_288h, int16_t arg_290h, int16_t arg_2a0h, int16_t arg_2a8h, int16_t arg_2b0h, int16_t arg_2c0h, int16_t arg_2c8h, int16_t arg_2d0h, int16_t arg_2d8h, int16_t arg_2e0h, int16_t arg_2f0h, int16_t arg_2f8h, int16_t arg_300h, int16_t arg_310h, int16_t arg_318h, int16_t arg_320h, int16_t arg_330h, int16_t arg_340h, int16_t arg_350h, int16_t arg_360h, int16_t arg_368h, int16_t arg_370h, int16_t arg_378h, int16_t arg_380h, int16_t arg_388h, int16_t arg_390h, int16_t arg_3a0h, int16_t arg_3a8h, int16_t arg_3b0h, int16_t arg_3c0h, int16_t arg_3c8h, int16_t arg_3d0h, int16_t arg_3e0h, int16_t arg_3f0h, int16_t arg_400h, int16_t arg_410h, int16_t arg_418h, int16_t arg_41ch, int16_t arg_420h, int16_t arg_428h, int16_t arg_42ch, int16_t arg_430h, int16_t arg_438h, int16_t arg_43ch, int16_t arg2) {
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     r1 = arg2;
                                             |     do {
    0x000013ec ldr r3, [sp, 0x2c]            |         r3 = *(arg_2ch);
    0x000013ee cmp r3, 0                     |         
                                             |         if (r3 != 0) {
    0x000013f0 bne.w 0x1a14                  |             goto label_26;
                                             |         }
    0x000013f4 ldr r3, [sp, 0x30]            |         r3 = *(arg_30h);
    0x000013f6 mov r1, r5                    |         r1 = r5;
    0x000013f8 cmp r3, 0                     |         
                                             |         if (r3 == 0) {
    0x000013fa beq.w 0x1a04                  |             goto label_27;
                                             |         }
    0x000013fe add.w sb, sp, 0xf0            |         sb += arg_f0h;
    0x00001402 add r7, sp, 8                 |         r7 += arg_0h;
    0x00001404 mov r0, sb                    |         r0 = sb;
    0x00001406 add r5, sp, 0x80              |         r5 += arg_80h;
    0x00001408 blx 0x1258                    |         fcn_00001258 ();
    0x0000140c ldr.w r8, [sp, 0x30]          |         r8 = *(arg_30h);
                                             | label_1:
    0x00001410 ldm.w sb, {r0, r1, r2, r3}    |         r0 = *(sb);
                                             |         r1 = *((sb + 4));
                                             |         r2 = *((sb + 8));
                                             |         r3 = *((sb + 12));
    0x00001414 stm.w r7, {r0, r1, r2, r3}    |         *(r7) = r0;
                                             |         *((r7 + 4)) = r1;
                                             |         *((r7 + 8)) = r2;
                                             |         *((r7 + 12)) = r3;
    0x00001416 movs r7, r1                   |         r7 = r1;
    0x00001418 add r3, sp, 0xa8              |         r3 += arg_a8h;
    0x0000141a ldm.w r3, {r0, r1}            |         r0 = *(r3);
                                             |         r1 = *((r3 + 4));
    0x0000141e ldr r7, [sp, 0x40]            |         r7 = *(arg_40h);
    0x00001420 stm.w sp, {r0, r1}            |         *(sp) = r0;
                                             |         *((sp + 4)) = r1;
    0x00001424 mov r0, r5                    |         r0 = r5;
                                             | label_5:
    0x00001426 ldrd r2, r3, [r7]             |         __asm ("ldrd r2, r3, [r7]");
    0x0000142a blx 0xfa8                     |         jv_array_append ();
    0x0000142c ldc p8, c14, [lr, 0x254]!     |         __asm ("ldc p8, c14, [lr, 0x254]!");
    0x00001430 movs r7, r1                   |         r7 = r1;
    0x00001432 stm.w r7, {r0, r1, r2, r3}    |         *(r7) = r0;
                                             |         *((r7 + 4)) = r1;
                                             |         *((r7 + 8)) = r2;
                                             |         *((r7 + 12)) = r3;
                                             | label_2:
    0x00001436 adds r4, 1                    |         r4++;
    0x00001438 movs r3, 0                    |         r3 = 0;
    0x0000143a cmp sl, r4                    |         
    0x0000143c str.w r3, [fp]                |         __asm ("str.w r3, [fp]");
                                             |         if (sl <= r4) {
    0x00001440 ble 0x1482                    |             goto label_28;
                                             |         }
                                             | label_0:
    0x00001442 lsls r7, r4, 2                |         r7 = r4 << 2;
    0x00001444 ldr.w r5, [r6, r4, lsl 2]     |         offset_0 = r4 << 2;
                                             |         r5 = *((r6 + offset_0));
    0x00001448 add.w sb, r6, r7              |         sb = r6 + r7;
    0x0000144a lsrs r7, r0, 4                |         r7 = r0 >> 4;
    0x0000144c cmp.w r8, 0                   |         
    0x00001450 bne 0x13ec                    |         
                                             |     } while (r8 != 0);
    0x00001452 ldrb r3, [r5]                 |     r3 = *(r5);
    0x00001454 cmp r3, 0x2d                  |     
                                             |     if (r3 != 0x2d) {
    0x00001456 bne.w 0x19d0                  |         goto label_29;
                                             |     }
    0x0000145a ldrb r3, [r5, 1]              |     r3 = *((r5 + 1));
    0x0000145c cmp r3, 0x2d                  |     
                                             |     if (r3 != 0x2d) {
    0x0000145e bne.w 0x19d0                  |         goto label_29;
                                             |     }
    0x00001462 ldrb r3, [r5, 2]              |     r3 = *((r5 + 2));
    0x00001464 cmp r3, 0                     |     
                                             |     if (r3 != 0) {
    0x00001466 bne.w 0x19d0                  |         goto label_29;
                                             |     }
    0x0000146a ldr r3, [sp, 0x34]            |     r3 = *(src);
    0x0000146c cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x0000146e beq.w 0x2146                  |         goto label_30;
                                             |     }
    0x00001472 adds r4, 1                    |     r4++;
    0x00001474 movs r3, 0                    |     r3 = 0;
    0x00001476 cmp sl, r4                    |     
    0x00001478 mov.w r8, 1                   |     r8 = 1;
    0x0000147c str.w r3, [fp]                |     __asm ("str.w r3, [fp]");
                                             |     if (sl > r4) {
    0x00001480 bgt 0x1442                    |         goto label_0;
                                             |     }
                                             | label_28:
    0x00001482 ldr.w sb, [sp, 0x40]          |     sb = *(arg_40h);
    0x00001486 movs r0, 1                    |     r0 = 1;
    0x00001488 blx 0x1110                    |     r0 = isatty (r0);
                                             |     if (r0 != 0) {
    0x0000148c cbz r0, 0x1498                |         
    0x0000148e ldr r2, [sp, 0x50]            |         r2 = *(base);
    0x00001490 ldr r3, [r2]                  |         r3 = *(r2);
    0x00001492 orr r3, r3, 0x84              |         r3 |= 0x84;
    0x00001496 str r3, [r2]                  |         *(r2) = r3;
                                             |     }
    0x00001498 ldr.w r3, [pc, 0xaf8]         |     
    0x0000149c ldr.w r4, [pc, 0xaf8]         |     
    0x000014a0 add r3, pc                    |     
    0x000014a2 ldr r3, [r3, 4]               |     r3 = *(0x343c);
    0x000014a4 add r4, pc                    |     r4 = 0x3440;
    0x000014a6 lsls r0, r3, 0x17             |     r0 = r3 << 0x17;
    0x000014a8 mov r0, r4                    |     r0 = r4;
    0x000014aa itttt mi                      |     
                                             |     if (r0 >= r3) {
    0x000014ac ldrmi r1, [sp, 0x50]          |         r1 = *(base);
                                             |     }
                                             |     if (r0 >= r3) {
    0x000014ae ldrmi r2, [r1]                |         r2 = *(r1);
                                             |     }
                                             |     if (r0 >= r3) {
    0x000014b0 orrmi r2, r2, 8               |         r2 |= 8;
                                             |     }
                                             |     if (r0 < r3) {
    0x000014b4 str r2, [r1]                  |         *(r1) = r2;
                                             |     }
    0x000014b6 lsls r1, r3, 0x1a             |     r1 = r3 << 0x1a;
    0x000014b8 itttt mi                      |     
                                             |     if (r1 >= r3) {
    0x000014ba ldrmi r1, [sp, 0x50]          |         r1 = *(base);
                                             |     }
                                             |     if (r1 >= r3) {
    0x000014bc ldrmi r2, [r1]                |         r2 = *(r1);
                                             |     }
                                             |     if (r1 >= r3) {
    0x000014be orrmi r2, r2, 2               |         r2 |= 2;
                                             |     }
                                             |     if (r1 < r3) {
    0x000014c2 str r2, [r1]                  |         *(r1) = r2;
                                             |     }
    0x000014c4 lsls r2, r3, 0x19             |     r2 = r3 << 0x19;
    0x000014c6 itttt mi                      |     
                                             |     if (r2 >= r3) {
    0x000014c8 ldrmi r1, [sp, 0x50]          |         r1 = *(base);
                                             |     }
                                             |     if (r2 >= r3) {
    0x000014ca ldrmi r2, [r1]                |         r2 = *(r1);
                                             |     }
                                             |     if (r2 >= r3) {
    0x000014cc orrmi r2, r2, 4               |         r2 |= 4;
                                             |     }
                                             |     if (r2 < r3) {
    0x000014d0 str r2, [r1]                  |         *(r1) = r2;
                                             |     }
    0x000014d2 lsls r7, r3, 0x18             |     r7 = r3 << 0x18;
    0x000014d4 itttt mi                      |     
                                             |     if (r7 >= r3) {
    0x000014d6 ldrmi r2, [sp, 0x50]          |         r2 = *(base);
                                             |     }
                                             |     if (r7 >= r3) {
    0x000014d8 ldrmi r3, [r2]                |         r3 = *(r2);
                                             |     }
                                             |     if (r7 < r3) {
    0x000014da bicmi r3, r3, 4               |         __asm ("bicmi r3, r3, 4");
                                             |     }
                                             |     if (r7 < r3) {
    0x000014de str r3, [r2]                  |         *(r2) = r3;
                                             |     }
    0x000014e0 blx 0x1050                    |     r0 = getenv (r0);
                                             |     if (r0 != 0) {
    0x000014e4 cbz r0, 0x14f6                |         
    0x000014e6 mov r0, r4                    |         r0 = r4;
    0x000014e8 blx 0x1050                    |         r0 = getenv (r0);
    0x000014ec blx 0xfc0                     |         jq_set_colors ();
    0x000014ee stcl p8, c2, [r8, -0]!        |         __asm ("stcl p8, c2, [r8, -0]!");
                                             |         if (r0 == 0) {
    0x000014f2 beq.w 0x1efe                  |             goto label_31;
                                             |         }
                                             |     }
                                             | label_10:
    0x000014f6 ldr r3, [sp, 0x54]            |     r3 = *(arg_54h);
    0x000014f8 ldm r3, {r0, r1, r2, r3}      |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
                                             |     r2 = *((r3 + 8));
                                             |     r3 = *((r3 + 12));
    0x000014fa blx 0x1128                    |     r0 = jv_get_kind ();
    0x000014fe cmp r0, 1                     |     
                                             |     if (r0 == 1) {
    0x00001500 beq.w 0x214e                  |         goto label_32;
                                             |     }
    0x00001504 add r4, sp, 8                 |     r4 += arg_0h;
                                             | label_14:
    0x00001506 ldr.w r1, [pc, 0xa94]         |     
    0x0000150a add r5, sp, 0x270             |     r5 += arg_270h;
    0x0000150c ldr r3, [sp, 0x3c]            |     r3 = *(arg_3ch);
    0x0000150e mov r0, r5                    |     r0 = r5;
    0x00001510 add r1, pc                    |     r1 = 0x34b2;
    0x00001512 ldr r7, [r3]                  |     r7 = *(r3);
    0x00001514 blx 0x1294                    |     fcn_00001294 ();
    0x00001516 invalid                       |     
    0x0000151a ldm r3, {r0, r1, r2, r3}      |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
                                             |     r2 = *((r3 + 8));
                                             |     r3 = *((r3 + 12));
    0x0000151c stm.w r4, {r0, r1, r2, r3}    |     *(r4) = r0;
                                             |     *((r4 + 4)) = r1;
                                             |     *((r4 + 8)) = r2;
                                             |     *((r4 + 12)) = r3;
    0x00001520 add r3, sp, 0x278             |     r3 += arg_278h;
    0x00001522 ldm.w r3, {r0, r1}            |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
    0x00001526 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x0000152a mov r0, r7                    |     r0 = r7;
    0x0000152c ldm.w r5, {r2, r3}            |     r2 = *(r5);
                                             |     r3 = *((r5 + 4));
    0x00001530 blx 0x1170                    |     jq_set_attr ();
    0x00001534 ldr r0, [r6]                  |     r0 = *(r6);
    0x00001536 blx 0x11c4                    |     r0 = strdup (r0);
    0x0000153a mov r5, r0                    |     r5 = r0;
    0x0000153c cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x0000153e beq.w 0x2378                  |         goto label_33;
                                             |     }
    0x00001542 ldr.w r1, [pc, 0xa5c]         |     
    0x00001546 add r6, sp, 0x280             |     r6 += arg_280h;
    0x00001548 ldr r3, [sp, 0x3c]            |     r3 = *(arg_3ch);
    0x0000154a mov r0, r6                    |     r0 = r6;
    0x0000154c add.w r8, sp, 0x290           |     r8 += arg_290h;
    0x00001550 add r1, pc                    |     r1 = 0x34f6;
    0x00001552 ldr r7, [r3]                  |     r7 = *(r3);
    0x00001554 blx 0x1294                    |     fcn_00001294 ();
    0x00001558 mov r0, r5                    |     r0 = r5;
    0x0000155a blx 0x108c                    |     r0 = dirname ();
    0x0000155e mov r1, r0                    |     r1 = r0;
    0x00001560 mov r0, r8                    |     r0 = r8;
    0x00001562 blx 0x1294                    |     r0 = fcn_00001294 ();
    0x00001566 ldm.w r8, {r0, r1, r2, r3}    |     r0 = *(r8);
                                             |     r1 = *((r8 + 4));
                                             |     r2 = *((r8 + 8));
                                             |     r3 = *((r8 + 12));
    0x0000156a stm.w r4, {r0, r1, r2, r3}    |     *(r4) = r0;
                                             |     *((r4 + 4)) = r1;
                                             |     *((r4 + 8)) = r2;
                                             |     *((r4 + 12)) = r3;
    0x0000156e add r3, sp, 0x288             |     r3 += arg_288h;
    0x00001570 ldm.w r3, {r0, r1}            |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
    0x00001574 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00001578 mov r0, r7                    |     r0 = r7;
    0x0000157a ldm.w r6, {r2, r3}            |     r2 = *(r6);
                                             |     r3 = *((r6 + 4));
    0x0000157e add r7, sp, 0x2b0             |     r7 += arg_2b0h;
    0x00001580 blx 0x1170                    |     jq_set_attr ();
    0x00001584 mov r0, r5                    |     r0 = r5;
    0x00001586 add r5, sp, 0x2a0             |     r5 += arg_2a0h;
    0x00001588 blx 0x10c8                    |     free (r0);
    0x0000158c ldr.w r1, [pc, 0xa14]         |     
    0x00001590 mov r0, r5                    |     r0 = r5;
    0x00001592 ldr r3, [sp, 0x3c]            |     r3 = *(arg_3ch);
    0x00001594 add r1, pc                    |     r1 = 0x353c;
    0x00001596 ldr r6, [r3]                  |     r6 = *(r3);
    0x00001598 blx 0x1294                    |     fcn_00001294 ();
    0x0000159c ldr.w r3, [pc, 0xa08]         |     
    0x000015a0 movs r2, 3                    |     r2 = 3;
    0x000015a2 ldr.w r1, [pc, 0xa08]         |     
    0x000015a6 mov r0, r7                    |     r0 = r7;
    0x000015a8 add r3, pc                    |     r3 = 0x3554;
    0x000015aa add r1, pc                    |     r1 = 0x355c;
    0x000015ac blx 0x12dc                    |     r0 = fcn_000012dc ();
    0x000015b0 ldm.w r7, {r0, r1, r2, r3}    |     r0 = *(r7);
                                             |     r1 = *((r7 + 4));
                                             |     r2 = *((r7 + 8));
                                             |     r3 = *((r7 + 12));
    0x000015b4 stm.w r4, {r0, r1, r2, r3}    |     *(r4) = r0;
                                             |     *((r4 + 4)) = r1;
                                             |     *((r4 + 8)) = r2;
                                             |     *((r4 + 12)) = r3;
    0x000015b8 add r3, sp, 0x2a8             |     r3 += arg_2a8h;
    0x000015ba ldm.w r3, {r0, r1}            |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
    0x000015be stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x000015c2 mov r0, r6                    |     r0 = r6;
    0x000015c4 ldm.w r5, {r2, r3}            |     r2 = *(r5);
                                             |     r3 = *((r5 + 4));
    0x000015c8 blx 0x1170                    |     jq_set_attr ();
    0x000015cc ldr r3, [sp, 0x34]            |     r3 = *(src);
    0x000015ce cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x000015d0 beq.w 0x21de                  |         goto label_34;
                                             |     }
                                             | label_15:
    0x000015d4 ldr.w r5, [pc, 0x9d8]         |     r5 = "slurp";
    0x000015d8 add r5, pc                    |     r5 += pc;
    0x000015da ldr r3, [r5, 4]               |     r3 = *((r5 + 4));
    0x000015dc lsls r6, r3, 0x16             |     r6 = r3 << 0x16;
                                             |     if (r6 >= r3) {
    0x000015de bpl.w 0x1c56                  |         goto label_35;
                                             |     }
    0x000015e2 ldr r0, [sp, 0x34]            |     r0 = *(src);
    0x000015e4 blx 0x11c4                    |     r0 = strdup (r0);
    0x000015e8 mov r7, r0                    |     r7 = r0;
    0x000015ea cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x000015ec beq.w 0x2396                  |         goto label_36;
                                             |     }
    0x000015f0 add.w r3, sp, 0x420           |     r3 += arg_420h;
    0x000015f4 ldr r1, [sp, 0x34]            |     r1 = *(src);
    0x000015f6 mov r6, r3                    |     r6 = r3;
    0x000015f8 movs r2, 1                    |     r2 = 1;
    0x000015fa mov r0, r3                    |     r0 = r3;
    0x000015fc str r3, [sp, 0x2c]            |     *(arg_2ch) = r3;
    0x000015fe blx 0xffc                     |     r0 = jv_load_file ();
    0x00001602 ldm.w r6, {r0, r1, r2, r3}    |     r0 = *(r6);
                                             |     r1 = *((r6 + 4));
                                             |     r2 = *((r6 + 8));
                                             |     r3 = *((r6 + 12));
    0x00001606 add.w r6, sp, 0x430           |     r6 += arg_430h;
    0x0000160a stm.w r6, {r0, r1, r2, r3}    |     *(r6) = r0;
                                             |     *((r6 + 4)) = r1;
                                             |     *((r6 + 8)) = r2;
                                             |     *((r6 + 12)) = r3;
    0x0000160e blx 0x1128                    |     r0 = jv_get_kind ();
    0x00001612 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00001614 beq.w 0x1f28                  |         goto label_37;
                                             |     }
    0x00001616 strh r0, [r1, 0x24]           |     *((r1 + 0x24)) = r0;
    0x00001618 add r5, sp, 0x2c0             |     r5 += arg_2c0h;
    0x0000161a add.w r8, sp, 0x2d0           |     r8 += arg_2d0h;
    0x0000161e ldr.w r1, [pc, 0x994]         |     
    0x00001622 mov r0, r5                    |     r0 = r5;
    0x00001624 ldr r3, [sp, 0x3c]            |     r3 = *(arg_3ch);
    0x00001626 add.w sl, sp, 0x2e0           |     sl += arg_2e0h;
    0x0000162a add.w fp, sp, 0xb8            |     
    0x0000162e add r1, pc                    |     r1 = 0x35e8;
    0x00001630 ldr r6, [r3]                  |     r6 = *(r3);
    0x00001632 blx 0x1294                    |     fcn_00001294 ();
    0x00001636 mov r0, r7                    |     r0 = r7;
    0x00001638 blx 0x108c                    |     r0 = dirname ();
    0x0000163c mov r1, r0                    |     r1 = r0;
    0x0000163e mov r0, r8                    |     r0 = r8;
    0x00001640 blx 0x1294                    |     fcn_00001294 ();
    0x00001644 add r3, sp, 0x2d8             |     r3 += arg_2d8h;
    0x00001646 ldm.w r3, {r0, r1}            |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
    0x0000164a stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x0000164e mov r0, sl                    |     r0 = sl;
    0x00001650 ldm.w r8, {r2, r3}            |     r2 = *(r8);
                                             |     r3 = *((r8 + 4));
    0x00001654 add.w r8, sp, 0x18            |     r8 += arg_18h;
    0x00001656 lsrs r0, r3, 0x20             |     r0 = r3 >> 0x20;
    0x00001658 blx 0x12f4                    |     r0 = fcn_000012f4 ();
    0x0000165c ldm.w sl, {r0, r1, r2, r3}    |     r0 = *(sl);
                                             |     r1 = *((sl + 4));
                                             |     r2 = *((sl + 8));
                                             |     r3 = *((sl + 12));
    0x00001660 add.w sl, sp, 0x330           |     sl += arg_330h;
    0x00001664 stm.w r4, {r0, r1, r2, r3}    |     *(r4) = r0;
                                             |     *((r4 + 4)) = r1;
                                             |     *((r4 + 8)) = r2;
                                             |     *((r4 + 12)) = r3;
    0x00001668 add r3, sp, 0x2c8             |     r3 += arg_2c8h;
    0x0000166a ldm.w r3, {r0, r1}            |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
    0x0000166e stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00001672 mov r0, r6                    |     r0 = r6;
    0x00001674 ldm.w r5, {r2, r3}            |     r2 = *(r5);
                                             |     r3 = *((r5 + 4));
    0x00001678 add r6, sp, 0x2f0             |     r6 += arg_2f0h;
    0x0000167a blx 0x1170                    |     jq_set_attr ();
    0x0000167e mov r0, r6                    |     r0 = r6;
    0x00001680 add r5, sp, 0x300             |     r5 += arg_300h;
    0x00001682 blx 0xfd8                     |     jv_object ();
    0x00001686 ldr.w r1, [pc, 0x930]         |     
    0x0000168a mov r0, r5                    |     r0 = r5;
    0x0000168c add r1, pc                    |     r1 = 0x364a;
    0x0000168e blx 0x1294                    |     r0 = fcn_00001294 ();
    0x00001692 ldm.w sb, {r0, r1, r2, r3}    |     r0 = *(sb);
                                             |     r1 = *((sb + 4));
                                             |     r2 = *((sb + 8));
                                             |     r3 = *((sb + 12));
    0x00001696 stm.w r8, {r0, r1, r2, r3}    |     *(r8) = r0;
                                             |     *((r8 + 4)) = r1;
                                             |     *((r8 + 8)) = r2;
                                             |     *((r8 + 12)) = r3;
    0x0000169a ldm.w r5, {r0, r1, r2, r3}    |     r0 = *(r5);
                                             |     r1 = *((r5 + 4));
                                             |     r2 = *((r5 + 8));
                                             |     r3 = *((r5 + 12));
    0x0000169e add r5, sp, 0x320             |     r5 += arg_320h;
    0x000016a0 stm.w r4, {r0, r1, r2, r3}    |     *(r4) = r0;
                                             |     *((r4 + 4)) = r1;
                                             |     *((r4 + 8)) = r2;
                                             |     *((r4 + 12)) = r3;
    0x000016a4 add r3, sp, 0x2f8             |     r3 += arg_2f8h;
    0x000016a6 ldm.w r3, {r0, r1}            |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
    0x000016aa stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x000016ae ldm.w r6, {r2, r3}            |     r2 = *(r6);
                                             |     r3 = *((r6 + 4));
    0x000016b2 add r6, sp, 0x310             |     r6 += arg_310h;
    0x000016b4 mov r0, r6                    |     r0 = r6;
    0x000016b6 blx 0x114c                    |     jv_object_set ();
    0x000016ba ldr.w r1, [pc, 0x900]         |     
    0x000016be mov r0, r5                    |     r0 = r5;
    0x000016c0 add r1, pc                    |     r1 = 0x3682;
    0x000016c2 blx 0x1294                    |     r0 = fcn_00001294 ();
    0x000016c6 ldm.w fp, {r0, r1}            |     r0 = *(fp);
                                             |     r1 = *((fp + 4));
    0x000016ca ldr r3, [sp, 0x4c]            |     r3 = *(arg_4ch);
    0x000016cc stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x000016d0 mov r0, sl                    |     r0 = sl;
    0x000016d2 ldm r3, {r2, r3}              |     r2 = *(r3);
                                             |     r3 = *((r3 + 4));
    0x000016d4 blx 0x1098                    |     r0 = jv_copy ();
    0x000016d8 ldm.w sl, {r0, r1, r2, r3}    |     r0 = *(sl);
                                             |     r1 = *((sl + 4));
                                             |     r2 = *((sl + 8));
                                             |     r3 = *((sl + 12));
    0x000016dc stm.w r8, {r0, r1, r2, r3}    |     *(r8) = r0;
                                             |     *((r8 + 4)) = r1;
                                             |     *((r8 + 8)) = r2;
                                             |     *((r8 + 12)) = r3;
    0x000016e0 ldm.w r5, {r0, r1, r2, r3}    |     r0 = *(r5);
                                             |     r1 = *((r5 + 4));
                                             |     r2 = *((r5 + 8));
                                             |     r3 = *((r5 + 12));
    0x000016e4 add r5, sp, 0x340             |     r5 += arg_340h;
    0x000016e6 stm.w r4, {r0, r1, r2, r3}    |     *(r4) = r0;
                                             |     *((r4 + 4)) = r1;
                                             |     *((r4 + 8)) = r2;
                                             |     *((r4 + 12)) = r3;
    0x000016ea add r3, sp, 0x318             |     r3 += arg_318h;
    0x000016ec ldm.w r3, {r0, r1}            |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
    0x000016f0 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x000016f4 mov r0, sb                    |     r0 = sb;
    0x000016f6 ldm.w r6, {r2, r3}            |     r2 = *(r6);
                                             |     r3 = *((r6 + 4));
    0x000016fa add r6, sp, 0x350             |     r6 += arg_350h;
    0x000016fc blx 0x114c                    |     jv_object_set ();
    0x00001700 ldr.w r1, [pc, 0x8bc]         |     
    0x00001704 mov r0, r5                    |     r0 = r5;
    0x00001706 add r1, pc                    |     r1 = 0x36ca;
    0x00001708 blx 0x1294                    |     fcn_00001294 ();
    0x0000170c add r3, sp, 0xa8              |     r3 += arg_a8h;
    0x0000170e ldm.w r3, {r0, r1}            |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
    0x00001712 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00001716 mov r0, r6                    |     r0 = r6;
    0x00001718 ldm.w sb, {r2, r3}            |     r2 = *(sb);
                                             |     r3 = *((sb + 4));
    0x0000171c blx 0x1098                    |     r0 = jv_copy ();
    0x00001720 ldm.w r6, {r0, r1, r2, r3}    |     r0 = *(r6);
                                             |     r1 = *((r6 + 4));
                                             |     r2 = *((r6 + 8));
                                             |     r3 = *((r6 + 12));
    0x00001724 stm.w r8, {r0, r1, r2, r3}    |     *(r8) = r0;
                                             |     *((r8 + 4)) = r1;
                                             |     *((r8 + 8)) = r2;
                                             |     *((r8 + 12)) = r3;
    0x00001728 ldm.w r5, {r0, r1, r2, r3}    |     r0 = *(r5);
                                             |     r1 = *((r5 + 4));
                                             |     r2 = *((r5 + 8));
                                             |     r3 = *((r5 + 12));
    0x0000172c stm.w r4, {r0, r1, r2, r3}    |     *(r4) = r0;
                                             |     *((r4 + 4)) = r1;
                                             |     *((r4 + 8)) = r2;
                                             |     *((r4 + 12)) = r3;
    0x00001730 add r4, sp, 0x80              |     r4 += arg_80h;
    0x00001732 ldm.w fp, {r0, r1}            |     r0 = *(fp);
                                             |     r1 = *((fp + 4));
    0x00001736 ldr r5, [sp, 0x4c]            |     r5 = *(arg_4ch);
    0x00001738 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x0000173c mov r0, r4                    |     r0 = r4;
    0x0000173e ldm.w r5, {r2, r3}            |     r2 = *(r5);
                                             |     r3 = *((r5 + 4));
    0x00001742 blx 0x114c                    |     jv_object_set ();
    0x00001744 vstr d9, [r4, -0x3c]          |     __asm ("vstr d9, [r4, -0x3c]");
    0x00001748 ldr r6, [r3]                  |     r6 = *(r3);
    0x0000174a ldm.w r4, {r0, r1, r2, r3}    |     r0 = *(r4);
                                             |     r1 = *((r4 + 4));
                                             |     r2 = *((r4 + 8));
                                             |     r3 = *((r4 + 12));
    0x0000174e stm.w r5, {r0, r1, r2, r3}    |     *(r5) = r0;
                                             |     *((r5 + 4)) = r1;
                                             |     *((r5 + 8)) = r2;
                                             |     *((r5 + 12)) = r3;
    0x00001752 ldr r3, [sp, 0x2c]            |     r3 = *(arg_2ch);
    0x00001754 ldm r3, {r0, r1, r2, r3}      |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
                                             |     r2 = *((r3 + 8));
                                             |     r3 = *((r3 + 12));
    0x00001756 blx 0x10a4                    |     jv_string_value ();
    0x0000175a ldr.w r1, [pc, 0x868]         |     
    0x0000175e movs r2, 2                    |     r2 = 2;
    0x00001760 mov r5, r0                    |     r5 = r0;
    0x00001762 add r1, pc                    |     r1 = 0x372c;
    0x00001764 blx 0x1270                    |     r0 = fcn_00001270 ();
                                             |     if (r0 == 0) {
    0x00001768 cbnz r0, 0x17a8               |         
    0x0000176a movs r1, 0xa                  |         r1 = 0xa;
    0x0000176c mov r0, r5                    |         r0 = r5;
    0x0000176e blx 0x1074                    |         r0 = strchr (r0, r1);
                                             |         if (r0 == 0) {
    0x00001772 cbz r0, 0x17a8                |             goto label_38;
                                             |         }
    0x00001774 ldrb r3, [r0, 1]              |         r3 = *((r0 + 1));
    0x00001776 cmp r3, 0x23                  |         
                                             |         if (r3 != 0x23) {
    0x00001778 bne 0x17a8                    |             goto label_38;
                                             |         }
    0x0000177a adds r0, 1                    |         r0++;
    0x0000177c movs r1, 0xa                  |         r1 = 0xa;
    0x0000177e blx 0x1074                    |         r0 = strchr (r0, r1);
                                             |         if (r0 == 0) {
    0x00001782 cbz r0, 0x17a8                |             goto label_38;
                                             |         }
    0x00001784 ldrb r3, [r0, 1]              |         r3 = *((r0 + 1));
    0x00001786 cmp r3, 0x23                  |         
                                             |         if (r3 == 0x23) {
    0x00001788 beq 0x17a8                    |             goto label_38;
                                             |         }
                                             |         if (r3 == 0) {
    0x0000178a cbz r3, 0x17a8                |             goto label_38;
                                             |         }
    0x0000178c ldrb r3, [r0, -0x1]           |         r3 = *((r0 - 0x1));
    0x00001790 cmp r3, 0x5c                  |         
                                             |         if (r3 != 0x5c) {
    0x00001792 bne 0x17a8                    |             goto label_38;
                                             |         }
    0x00001794 ldrb r3, [r0, -0x2]           |         r3 = *((r0 - 0x2));
    0x00001798 cmp r3, 0x5c                  |         
                                             |         if (r3 == 0x5c) {
    0x0000179a beq 0x17a8                    |             goto label_38;
                                             |         }
    0x0000179c adds r0, 1                    |         r0++;
    0x0000179e movs r1, 0xa                  |         r1 = 0xa;
    0x000017a0 blx 0x1074                    |         r0 = strchr (r0, r1);
                                             |         if (r0 == 0) {
    0x000017a4 cbz r0, 0x17a8                |             goto label_38;
                                             |         }
    0x000017a6 adds r5, r0, 1                |         r5 = r0 + 1;
                                             |     }
                                             | label_38:
    0x000017a8 ldm.w fp, {r0, r1}            |     r0 = *(fp);
                                             |     r1 = *((fp + 4));
    0x000017ac add r4, sp, 0x360             |     r4 += arg_360h;
    0x000017ae ldr r3, [sp, 0x4c]            |     r3 = *(arg_4ch);
    0x000017b0 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x000017b4 mov r0, r4                    |     r0 = r4;
    0x000017b6 ldm r3, {r2, r3}              |     r2 = *(r3);
                                             |     r3 = *((r3 + 4));
    0x000017b8 blx 0x1098                    |     jv_copy ();
    0x000017bc ldrd r0, r1, [sp, 0x368]      |     __asm ("ldrd r0, r1, [arg_368h]");
    0x000017c0 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x000017c2 movs r3, r0                   |     r3 = r0;
    0x000017c4 mov r1, r5                    |     r1 = r5;
    0x000017c6 ldm.w r4, {r2, r3}            |     r2 = *(r4);
                                             |     r3 = *((r4 + 4));
    0x000017ca mov r0, r6                    |     r0 = r6;
    0x000017cc blx 0xff0                     |     r0 = jq_compile_args ();
    0x000017d0 mov r4, r0                    |     r4 = r0;
    0x000017d2 mov r0, r7                    |     r0 = r7;
    0x000017d4 blx 0x10c8                    |     free (r0);
    0x000017d8 ldr r3, [sp, 0x2c]            |     r3 = *(arg_2ch);
    0x000017da ldm r3, {r0, r1, r2, r3}      |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
                                             |     r2 = *((r3 + 8));
                                             |     r3 = *((r3 + 12));
    0x000017dc blx 0x1240                    |     fcn_00001240 ();
                                             | label_6:
    0x000017e0 cmp r4, 0                     |     
                                             |     if (r4 == 0) {
    0x000017e2 beq.w 0x2132                  |         goto label_39;
                                             |     }
    0x000017e6 ldr.w r3, [pc, 0x7e0]         |     
    0x000017ea add r3, pc                    |     
    0x000017ec ldr r3, [r3, 4]               |     r3 = *(0x37bc);
    0x000017ee lsls r4, r3, 0xf              |     r4 = r3 << 0xf;
                                             |     if (r4 < r3) {
    0x000017f0 bmi.w 0x1f16                  |         goto label_40;
                                             |     }
                                             | label_11:
    0x000017f4 ldr.w r3, [pc, 0x7d4]         |     
    0x000017f8 add r3, pc                    |     r3 = 0x37c8;
    0x000017fa ldr r2, [r3, 4]               |     r2 = *(0x37cc);
    0x000017fc lsls r0, r2, 0x11             |     r0 = r2 << 0x11;
    0x000017fe ittt mi                       |     
                                             |     if (r0 >= r2) {
    0x00001800 ldrmi r3, [sp, 0x6c]          |         r3 = *(arg_6ch);
                                             |     }
                                             |     if (r0 >= r2) {
    0x00001802 orrmi r3, r3, 1               |         r3 |= 1;
                                             |     }
                                             |     if (r0 < r2) {
    0x00001806 str r3, [sp, 0x6c]            |         *(arg_6ch) = r3;
                                             |     }
    0x00001808 lsls r1, r2, 0x1e             |     r1 = r2 << 0x1e;
    0x0000180a ldr r3, [sp, 0x38]            |     r3 = *(arg_38h);
    0x0000180c ldr r4, [r3]                  |     r4 = *(0x37c8);
                                             |     if (r1 < r2) {
    0x0000180e bmi.w 0x1ef0                  |         goto label_41;
                                             |     }
    0x00001812 ldr r0, [sp, 0x6c]            |     r0 = *(arg_6ch);
    0x00001814 blx 0x1158                    |     r0 = jv_parser_new ();
    0x00001816 stc p8, c15, [r0], 0x37c      |     __asm ("stc p8, c15, [r0], 0x37c");
    0x0000181a adds r7, 0xb4                 |     r7 += 0xb4;
    0x0000181c mov r1, r0                    |     r1 = r0;
    0x0000181e mov r0, r4                    |     r0 = r4;
    0x00001820 add r3, pc                    |     r3 += pc;
    0x00001822 ldr r2, [r3, 4]               |     r2 = *((r3 + 4));
    0x00001824 and r2, r2, 1                 |     r2 &= 1;
    0x00001828 blx 0x117c                    |     jq_util_input_set_parser ();
                                             | label_9:
    0x0000182c ldr r2, [sp, 0x48]            |     r2 = *(nitems);
    0x0000182e ldr.w r3, [pc, 0x7a4]         |     r3 = *(0x1fd6);
    0x00001832 ldr r4, [sp, 0x3c]            |     r4 = *(arg_3ch);
    0x00001834 ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x00001836 ldr r0, [r4]                  |     r0 = *(r4);
    0x00001838 mov r1, r3                    |     r1 = r3;
    0x0000183a str r3, [sp, 0x2c]            |     *(arg_2ch) = r3;
    0x0000183c ldr r3, [sp, 0x38]            |     r3 = *(arg_38h);
    0x0000183e ldr r2, [r3]                  |     r2 = *(0x1fd6);
    0x00001840 blx 0x12e8                    |     fcn_000012e8 ();
    0x00001844 ldr.w r1, [pc, 0x790]         |     
    0x00001848 ldr r2, [sp, 0x50]            |     r2 = *(base);
    0x0000184a ldr r0, [r4]                  |     r0 = *(r4);
    0x0000184c add r1, pc                    |     r1 = 0x3828;
    0x0000184e blx 0x1210                    |     fcn_00001210 ();
    0x00001852 ldr r3, [sp, 0x44]            |     r3 = *(arg_44h);
    0x00001854 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00001856 beq.w 0x21f4                  |         goto label_42;
                                             |     }
                                             | label_16:
    0x0000185a ldr.w r3, [pc, 0x780]         |     
    0x0000185e add r3, pc                    |     
    0x00001860 ldr r3, [r3, 4]               |     r3 = *(0x3844);
    0x00001862 lsls r2, r3, 0x1d             |     r2 = r3 << 0x1d;
                                             |     if (r2 < r3) {
    0x00001864 bmi.w 0x20ec                  |         goto label_43;
                                             |     }
    0x00001866 strh r2, [r0, 0x22]           |     *((r0 + 0x22)) = r2;
    0x00001868 ldr.w sl, [pc, 0x774]         |     
    0x0000186c mov.w r7, -1                  |     r7 = -1;
    0x00001870 ldr.w r3, [pc, 0x770]         |     
    0x00001874 mvn r8, 3                     |     r8 = ~3;
    0x00001878 ldr.w fp, [sp, 0x38]          |     fp = *(arg_38h);
    0x0000187c add r5, sp, 0xd0              |     r5 += arg_d0h;
    0x0000187e add sl, pc                    |     sl = 0x3862;
    0x00001880 add r3, pc                    |     r3 = 0x3868;
    0x00001882 str r3, [sp, 0x30]            |     *(arg_30h) = r3;
                                             |     do {
                                             | label_12:
    0x00001884 ldr.w r0, [fp]                |         r0 = *(fp);
    0x00001888 blx 0x1014                    |         r0 = jq_util_input_errors ();
    0x0000188c cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0000188e bne.w 0x2120                  |             goto label_17;
                                             |         }
    0x00001892 ldr.w r1, [fp]                |         r1 = *(fp);
    0x00001896 mov r0, r5                    |         r0 = r5;
    0x00001898 blx 0x111c                    |         r0 = jq_util_input_next_input ();
    0x0000189c ldm.w r5, {r0, r1, r2, r3}    |         r0 = *(r5);
                                             |         r1 = *((r5 + 4));
                                             |         r2 = *((r5 + 8));
                                             |         r3 = *((r5 + 12));
    0x000018a0 add.w r4, sp, 0x430           |         r4 += arg_430h;
    0x000018a4 add r6, sp, 0xd8              |         r6 += arg_d8h;
    0x000018a6 stm.w r4, {r0, r1, r2, r3}    |         *(r4) = r0;
                                             |         *((r4 + 4)) = r1;
                                             |         *((r4 + 8)) = r2;
                                             |         *((r4 + 12)) = r3;
    0x000018aa blx 0x1128                    |         jv_get_kind ();
    0x000018ac ldc p9, c11, [lr], -0x220     |         __asm ("ldc p9, c11, [lr], -0x220");
    0x000018b0 ldm.w r6, {r0, r1}            |         r0 = *(r6);
                                             |         r1 = *((r6 + 4));
    0x000018b4 stm.w sp, {r0, r1}            |         *(sp) = r0;
                                             |         *((sp + 4)) = r1;
    0x000018b8 add.w r0, sp, 0x420           |         r0 += arg_420h;
    0x000018bc ldm.w r5, {r2, r3}            |         r2 = *(r5);
                                             |         r3 = *((r5 + 4));
    0x000018c0 str r0, [sp, 0x2c]            |         *(arg_2ch) = r0;
    0x000018c2 blx 0x1098                    |         jv_copy ();
    0x000018c6 ldr r0, [sp, 0x2c]            |         r0 = *(arg_2ch);
    0x000018c8 ldm r0, {r0, r1, r2, r3}      |         r0 = *(r0);
                                             |         r1 = *((r0 + 4));
                                             |         r2 = *((r0 + 8));
                                             |         r3 = *((r0 + 12));
    0x000018ca blx 0x1264                    |         r0 = fcn_00001264 ();
    0x000018ce cmp r0, 0                     |         
                                             |         if (r0 == 0) {
    0x000018d0 beq.w 0x2120                  |             goto label_17;
                                             |         }
    0x000018d4 ldm.w r5, {r0, r1, r2, r3}    |         r0 = *(r5);
                                             |         r1 = *((r5 + 4));
                                             |         r2 = *((r5 + 8));
                                             |         r3 = *((r5 + 12));
    0x000018d8 stm.w r4, {r0, r1, r2, r3}    |         *(r4) = r0;
                                             |         *((r4 + 4)) = r1;
                                             |         *((r4 + 8)) = r2;
                                             |         *((r4 + 12)) = r3;
    0x000018dc blx 0x1128                    |         r0 = jv_get_kind ();
    0x000018e0 cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x000018e2 bne.w 0x20b4                  |             goto label_44;
                                             |         }
    0x000018e6 ldm.w r6, {r0, r1}            |         r0 = *(r6);
                                             |         r1 = *((r6 + 4));
    0x000018ea stm.w sp, {r0, r1}            |         *(sp) = r0;
                                             |         *((sp + 4)) = r1;
    0x000018ee mov r0, r4                    |         r0 = r4;
    0x000018f0 ldm.w r5, {r2, r3}            |         r2 = *(r5);
                                             |         r3 = *((r5 + 4));
    0x000018f4 blx 0x1038                    |         jv_invalid_get_msg ();
    0x000018f8 ldr.w r3, [sl, 4]             |         r3 = *((sl + 4));
    0x000018fc ldr r2, [sp, 0x48]            |         r2 = *(nitems);
    0x000018fe tst.w r3, 0x4000              |         
    0x00001902 ldr.w r3, [pc, 0x6e4]         |         r3 = *(0x1fea);
    0x00001906 ldr r3, [r2, r3]              |         r3 = *((r2 + r3));
                                             |         if ((r3 & 0x4000) == 0) {
    0x00001908 beq.w 0x2206                  |             goto label_45;
                                             |         }
    0x0000190c ldr r6, [r3]                  |         r6 = *(r3);
    0x0000190e ldm.w r4, {r0, r1, r2, r3}    |         r0 = *(r4);
                                             |         r1 = *((r4 + 4));
                                             |         r2 = *((r4 + 8));
                                             |         r3 = *((r4 + 12));
    0x00001912 blx 0x10a4                    |         jv_string_value ();
    0x00001916 ldr r2, [sp, 0x30]            |         r2 = *(arg_30h);
    0x00001918 mov r3, r0                    |         r3 = r0;
    0x0000191a movs r1, 1                    |         r1 = 1;
    0x0000191c mov r0, r6                    |         r0 = r6;
    0x0000191e blx 0x11f4                    |         r0 = fprintf_chk ()
    0x00001922 ldm.w r4, {r0, r1, r2, r3}    |         r0 = *(r4);
                                             |         r1 = *((r4 + 4));
                                             |         r2 = *((r4 + 8));
                                             |         r3 = *((r4 + 12));
    0x00001926 blx 0x1240                    |         fcn_00001240 ();
    0x0000192a b 0x1884                      |         
                                             |     } while (1);
    0x00001948 mov.w r7, -1                  |     r7 = -1;
    0x0000194c mov.w r8, 2                   |     r8 = 2;
                                             | label_13:
    0x00001950 ldr.w r3, [pc, 0x69c]         |     r3 = *(0x1ff0);
    0x00001954 ldr r6, [sp, 0x48]            |     r6 = *(nitems);
    0x00001956 ldr r5, [r6, r3]              |     r5 = *((r6 + r3));
    0x00001958 ldr r0, [r5]                  |     r0 = *(r5);
    0x0000195a blx 0x127c                    |     r0 = fcn_0000127c ();
    0x0000195e mov r4, r0                    |     r4 = r0;
    0x00001960 ldr r0, [r5]                  |     r0 = *(r5);
    0x00001962 blx 0x1044                    |     r0 = fclose (r0);
    0x00001966 orrs r4, r0                   |     r4 |= r0;
                                             |     if (r4 == r0) {
    0x00001968 beq.w 0x1b9a                  |         goto label_46;
                                             |     }
    0x0000196c ldr.w r3, [pc, 0x678]         |     r3 = *(0x1fe8);
    0x00001970 mov.w r8, 2                   |     r8 = 2;
    0x00001974 ldr r3, [r6, r3]              |     r3 = *((r6 + r3));
    0x00001976 ldr r4, [r3]                  |     r4 = *(0x1fe8);
    0x00001978 blx 0x12d0                    |     r0 = fcn_000012d0 ();
    0x0000197c ldr r0, [r0]                  |     r0 = *(r0);
    0x0000197e blx 0xfb4                     |     strerror (r0);
    0x00001982 ldr.w r2, [pc, 0x670]         |     
    0x00001986 mov r3, r0                    |     r3 = r0;
    0x00001988 movs r1, 1                    |     r1 = 1;
    0x0000198a mov r0, r4                    |     r0 = r4;
    0x0000198c add r2, pc                    |     r2 = 0x3986;
    0x0000198e blx 0x11f4                    |     r0 = fprintf_chk ()
    0x00001992 ldm.w sb, {r0, r1, r2, r3}    |     r0 = *(sb);
                                             |     r1 = *((sb + 4));
                                             |     r2 = *((sb + 8));
                                             |     r3 = *((sb + 12));
    0x00001996 blx 0x1240                    |     fcn_00001240 ();
    0x0000199a ldr r3, [sp, 0x4c]            |     r3 = *(arg_4ch);
    0x0000199c ldm r3, {r0, r1, r2, r3}      |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
                                             |     r2 = *((r3 + 8));
                                             |     r3 = *((r3 + 12));
    0x0000199e blx 0x1240                    |     fcn_00001240 ();
    0x000019a2 ldr r0, [sp, 0x38]            |     r0 = *(arg_38h);
    0x000019a4 blx 0x105c                    |     jq_util_input_free ();
    0x000019a8 ldr r0, [sp, 0x3c]            |     r0 = *(arg_3ch);
    0x000019aa blx 0x11ac                    |     jq_teardown ();
    0x000019ae ldr.w r3, [pc, 0x648]         |     
    0x000019b2 add r3, pc                    |     
    0x000019b4 ldr r3, [r3, 4]               |     r3 = *(0x39b4);
    0x000019b6 tst.w r3, 0x3000              |     
                                             |     if ((r3 & 0x3000) == 0) {
    0x000019ba bne 0x19c4                    |         
                                             | label_3:
    0x000019bc bic.w r0, r8, r8, asr 31      |         r0 = BIT_MASK (r8, r8);
    0x000019c0 blx 0x12b8                    |         fcn_000012b8 ();
                                             |     }
                                             | label_4:
    0x000019c4 eor.w r0, r8, r8, asr 31      |     r0 = r8 ^ (r8 >> 31);
    0x000019c8 sub.w r0, r0, r8, asr 31      |     r0 -= (r8 >> 31);
    0x000019cc blx 0x12b8                    |     fcn_000012b8 ();
                                             | label_29:
    0x000019d0 ldrb r3, [r5]                 |     r3 = *(r5);
    0x000019d2 cmp r3, 0x2d                  |     
    0x000019d4 beq 0x1a2a                    |     
                                             |     while (r1 >= r2) {
    0x000019d6 ldr r3, [sp, 0x34]            |         r3 = *(src);
    0x000019d8 cmp r3, 0                     |         
                                             |         if (r3 == 0) {
    0x000019da beq.w 0x1bda                  |             goto label_47;
                                             |         }
    0x000019de ldr r3, [sp, 0x2c]            |         r3 = *(arg_2ch);
    0x000019e0 cmp r3, 0                     |         
                                             |         if (r3 != 0) {
    0x000019e2 bne.w 0x1c42                  |             goto label_48;
                                             |         }
    0x000019e6 ldr r3, [sp, 0x30]            |         r3 = *(arg_30h);
    0x000019e8 mov r1, r5                    |         r1 = r5;
    0x000019ea cmp r3, 0                     |         
                                             |         if (r3 == 0) {
    0x000019ec beq.w 0x1bde                  |             goto label_49;
                                             |         }
    0x000019f0 add.w sb, sp, 0x110           |         sb += arg_110h;
    0x000019f4 add r7, sp, 8                 |         r7 += arg_0h;
    0x000019f6 mov r0, sb                    |         r0 = sb;
    0x000019f8 add r5, sp, 0x80              |         r5 += arg_80h;
    0x000019fa blx 0x1258                    |         fcn_00001258 ();
    0x000019fe ldr.w r8, [sp, 0x2c]          |         r8 = *(arg_2ch);
    0x00001a02 b 0x1410                      |         goto label_1;
                                             | label_27:
    0x00001a04 ldr r3, [sp, 0x44]            |         r3 = *(arg_44h);
    0x00001a06 adds r3, 1                    |         r3++;
    0x00001a08 str r3, [sp, 0x44]            |         *(arg_44h) = r3;
    0x00001a0a ldr r3, [sp, 0x38]            |         r3 = *(arg_38h);
    0x00001a0c ldr r0, [r3]                  |         r0 = *(r3);
    0x00001a0e blx 0x102c                    |         jq_util_input_add_input ();
    0x00001a12 b 0x1436                      |         goto label_2;
                                             | label_26:
    0x00001a14 add.w sb, sp, 0xe0            |         sb += arg_e0h;
    0x00001a18 mov r1, r5                    |         r1 = r5;
    0x00001a1a mov r0, sb                    |         r0 = sb;
    0x00001a1c add r7, sp, 8                 |         r7 += arg_0h;
    0x00001a1e blx 0x1294                    |         fcn_00001294 ();
    0x00001a22 add r5, sp, 0x80              |         r5 += arg_80h;
    0x00001a24 ldr.w r8, [sp, 0x2c]          |         r8 = *(arg_2ch);
    0x00001a28 b 0x1410                      |         goto label_1;
    0x00001a2a ldrb r3, [r5, 1]              |         r3 = *((r5 + 1));
    0x00001a2c cmp r3, 0x2d                  |         
    0x00001a2e str r3, [sp, 0x58]            |         *(arg_58h) = r3;
                                             |         if (r3 == 0x2d) {
    0x00001a30 beq 0x1a48                    |             goto label_50;
                                             |         }
    0x00001a32 blx 0x11b8                    |         ctype_b_loc ();
    0x00001a36 ldr r3, [sp, 0x58]            |         r3 = *(arg_58h);
    0x00001a38 ldr r2, [r0]                  |         r2 = *(r0);
    0x00001a3a ldrh.w r2, [r2, r3, lsl 1]    |         offset_1 = r3 << 1;
                                             |         r2 = *((r2 + offset_1));
    0x00001a3e lsls r1, r2, 0x15             |         r1 = r2 << 0x15;
    0x00001a40 bpl 0x19d6                    |         
                                             |     }
    0x00001a42 cmp r3, 0x4c                  |     
                                             |     if (r3 == 0x4c) {
    0x00001a44 beq.w 0x1b5e                  |         goto label_51;
                                             |     }
                                             | label_50:
    0x00001a48 ldr r2, [sp, 0x5c]            |     r2 = *(arg_5ch);
    0x00001a4a mov r3, fp                    |     r3 = fp;
    0x00001a4c movs r1, 0x73                 |     r1 = 0x73;
    0x00001a4e mov r0, r5                    |     r0 = r5;
    0x00001a50 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |     if (r0 == 0) {
    0x00001a54 cbz r0, 0x1a6a                |         goto label_52;
                                             |     }
    0x00001a56 ldr r2, [sp, 0x64]            |     r2 = *(arg_64h);
    0x00001a58 ldr r3, [r2, 4]               |     r3 = *((r2 + 4));
    0x00001a5a orr r3, r3, 1                 |     r3 |= 1;
    0x00001a5e str r3, [r2, 4]               |     *((r2 + 4)) = r3;
    0x00001a60 ldr.w r3, [fp]                |     r3 = *(fp);
    0x00001a64 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00001a66 beq.w 0x1436                  |         goto label_2;
                                             |     }
                                             | label_52:
    0x00001a6a ldr r2, [sp, 0x60]            |     r2 = *(arg_60h);
    0x00001a6c mov r3, fp                    |     r3 = fp;
    0x00001a6e movs r1, 0x72                 |     r1 = 0x72;
    0x00001a70 mov r0, r5                    |     r0 = r5;
    0x00001a72 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |     if (r0 == 0) {
    0x00001a76 cbz r0, 0x1a90                |         goto label_53;
                                             |     }
    0x00001a78 ldr.w r2, [pc, 0x580]         |     
    0x00001a7c ldr.w r1, [fp]                |     r1 = *(fp);
    0x00001a80 add r2, pc                    |     r2 = 0x3a80;
    0x00001a82 ldr r3, [r2, 4]               |     r3 = imp.__aeabi_unwind_cpp_pr0;
    0x00001a84 orr r3, r3, 8                 |     r3 |= 8;
    0x00001a88 str r3, [r2, 4]               |     *((r2 + 4)) = r3;
    0x00001a8a cmp r1, 0                     |     
                                             |     if (r1 == 0) {
    0x00001a8c beq.w 0x1436                  |         goto label_2;
                                             |     }
                                             | label_53:
    0x00001a90 ldr.w r2, [pc, 0x56c]         |     
    0x00001a94 mov r3, fp                    |     r3 = fp;
    0x00001a96 movs r1, 0x63                 |     r1 = 0x63;
    0x00001a98 mov r0, r5                    |     r0 = r5;
    0x00001a9a add r2, pc                    |     r2 = 0x3a9e;
    0x00001a9c bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |     if (r0 == 0) {
    0x00001aa0 cbz r0, 0x1aba                |         goto label_54;
                                             |     }
    0x00001aa2 ldr r2, [sp, 0x50]            |     r2 = *(base);
    0x00001aa4 ldr r3, [r2]                  |     r3 = *(r2);
    0x00001aa6 bic r3, r3, 0x740             |     r3 = BIT_MASK (r3, 0x740);
    0x00001aaa bic r3, r3, 1                 |     r3 = BIT_MASK (r3, 1);
    0x00001aae str r3, [r2]                  |     *(r2) = r3;
    0x00001ab0 ldr.w r3, [fp]                |     r3 = *(fp);
    0x00001ab4 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00001ab6 beq.w 0x1436                  |         goto label_2;
                                             |     }
                                             | label_54:
    0x00001aba ldr.w r2, [pc, 0x548]         |     
    0x00001abe mov r3, fp                    |     r3 = fp;
    0x00001ac0 movs r1, 0x43                 |     r1 = 0x43;
    0x00001ac2 mov r0, r5                    |     r0 = r5;
    0x00001ac4 add r2, pc                    |     r2 = 0x3ace;
    0x00001ac6 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |     if (r0 == 0) {
    0x00001aca cbz r0, 0x1ae4                |         goto label_55;
                                             |     }
    0x00001acc ldr.w r2, [pc, 0x538]         |     
    0x00001ad0 ldr.w r1, [fp]                |     r1 = *(fp);
    0x00001ad4 add r2, pc                    |     r2 = 0x3ae0;
    0x00001ad6 ldr r3, [r2, 4]               |     r3 = *(0x3ae4);
    0x00001ad8 orr r3, r3, 0x40              |     r3 |= 0x40;
    0x00001adc str r3, [r2, 4]               |     *((r2 + 4)) = r3;
    0x00001ade cmp r1, 0                     |     
                                             |     if (r1 == 0) {
    0x00001ae0 beq.w 0x1436                  |         goto label_2;
                                             |     }
                                             | label_55:
    0x00001ae4 ldr.w r2, [pc, 0x524]         |     
    0x00001ae8 mov r3, fp                    |     r3 = fp;
    0x00001aea movs r1, 0x4d                 |     r1 = 0x4d;
    0x00001aec mov r0, r5                    |     r0 = r5;
    0x00001aee add r2, pc                    |     r2 = 0x3afe;
    0x00001af0 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |     if (r0 == 0) {
    0x00001af4 cbz r0, 0x1b0e                |         goto label_56;
                                             |     }
    0x00001af6 ldr.w r2, [pc, 0x518]         |     
    0x00001afa ldr.w r1, [fp]                |     r1 = *(fp);
    0x00001afe add r2, pc                    |     r2 = "%s: --indent takes a number between -1 and 7\n";
    0x00001b00 ldr r3, [r2, 4]               |     r3 = *(0x3b18);
    0x00001b02 orr r3, r3, 0x80              |     r3 |= 0x80;
    0x00001b06 str r3, [r2, 4]               |     *((r2 + 4)) = r3;
    0x00001b08 cmp r1, 0                     |     
                                             |     if (r1 == 0) {
    0x00001b0a beq.w 0x1436                  |         goto label_2;
                                             |     }
                                             | label_56:
    0x00001b0e ldr.w r2, [pc, 0x504]         |     
    0x00001b12 mov r3, fp                    |     r3 = fp;
    0x00001b14 movs r1, 0x61                 |     r1 = 0x61;
    0x00001b16 mov r0, r5                    |     r0 = r5;
    0x00001b18 add r2, pc                    |     r2 = 0x3b32;
    0x00001b1a bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |     if (r0 == 0) {
    0x00001b1e cbz r0, 0x1b38                |         goto label_57;
                                             |     }
    0x00001b20 ldr.w r2, [pc, 0x4f4]         |     
    0x00001b24 ldr.w r1, [fp]                |     r1 = *(fp);
    0x00001b28 add r2, pc                    |     r2 = 0x3b44;
    0x00001b2a ldr r3, [r2, 4]               |     r3 = "stream";
    0x00001b2c orr r3, r3, 0x20              |     r3 |= 0x20;
    0x00001b30 str r3, [r2, 4]               |     *((r2 + 4)) = r3;
    0x00001b32 cmp r1, 0                     |     
                                             |     if (r1 == 0) {
    0x00001b34 beq.w 0x1436                  |         goto label_2;
                                             |     }
                                             | label_57:
    0x00001b38 ldr.w r2, [pc, 0x4e0]         |     
    0x00001b3c mov r3, fp                    |     r3 = fp;
    0x00001b3e movs r1, 0                    |     r1 = 0;
    0x00001b40 mov r0, r5                    |     r0 = r5;
    0x00001b42 add r2, pc                    |     r2 = 0x3b62;
    0x00001b44 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
    0x00001b48 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00001b4a beq.w 0x1dac                  |         goto label_58;
                                             |     }
    0x00001b4e ldr.w r2, [pc, 0x4d0]         |     
    0x00001b52 add r2, pc                    |     r2 = 0x3b78;
    0x00001b54 ldr r3, [r2, 4]               |     r3 = "%s: --arg takes two parameters (e.g. --arg varname value)\n";
    0x00001b56 orr r3, r3, 0x800             |     r3 |= 0x800;
    0x00001b5a str r3, [r2, 4]               |     *((r2 + 4)) = r3;
    0x00001b5c b 0x1436                      |     goto label_2;
                                             | label_51:
    0x00001b5e ldr r3, [sp, 0x54]            |     r3 = *(arg_54h);
    0x00001b60 ldm r3, {r0, r1, r2, r3}      |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
                                             |     r2 = *((r3 + 8));
                                             |     r3 = *((r3 + 12));
    0x00001b62 blx 0x1128                    |     r0 = jv_get_kind ();
    0x00001b66 cmp r0, 1                     |     
                                             |     if (r0 == 1) {
    0x00001b68 beq.w 0x1eca                  |         goto label_59;
                                             |     }
                                             | label_7:
    0x00001b6c ldr r1, [r6, r7]              |     r1 = *((r6 + r7));
    0x00001b6e ldrb r3, [r1, 2]              |     r3 = *((r1 + 2));
    0x00001b70 cmp r3, 0                     |     
                                             |     if (r3 != 0) {
    0x00001b72 bne.w 0x1ed2                  |         goto label_60;
                                             |     }
    0x00001b76 add.w r3, sl, -1              |     r3 = sl + -1;
    0x00001b7a cmp r3, r4                    |     
                                             |     if (r3 > r4) {
    0x00001b7c bgt 0x1bfe                    |         goto label_61;
                                             |     }
    0x00001b7e ldr.w r3, [pc, 0x468]         |     
    0x00001b82 movs r2, 0x3f                 |     r2 = 0x3f;
    0x00001b84 ldr r4, [sp, 0x48]            |     r4 = *(nitems);
    0x00001b86 movs r1, 1                    |     r1 = 1;
    0x00001b88 ldr.w r0, [pc, 0x498]         |     
    0x00001b8c ldr r3, [r4, r3]              |     r3 = *((r4 + r3));
    0x00001b8e add r0, pc                    |     r0 = 0x3bb6;
    0x00001b90 ldr r3, [r3]                  |     r3 = *(0x1fea);
    0x00001b92 blx 0x1188                    |     r0 = fwrite (r0, r1, r2, r3);
    0x00001b96 bl 0x2a6c                     |     fcn_00002a6c ();
    0x00001b98 invalid                       |     
                                             | label_46:
    0x00001b9a ldm.w sb, {r0, r1, r2, r3}    |     r0 = *(sb);
                                             |     r1 = *((sb + 4));
                                             |     r2 = *((sb + 8));
                                             |     r3 = *((sb + 12));
    0x00001b9e blx 0x1240                    |     fcn_00001240 ();
    0x00001ba2 ldr r3, [sp, 0x4c]            |     r3 = *(arg_4ch);
    0x00001ba4 ldm r3, {r0, r1, r2, r3}      |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
                                             |     r2 = *((r3 + 8));
                                             |     r3 = *((r3 + 12));
    0x00001ba6 blx 0x1240                    |     fcn_00001240 ();
    0x00001baa ldr r0, [sp, 0x38]            |     r0 = *(arg_38h);
    0x00001bac blx 0x105c                    |     jq_util_input_free ();
    0x00001bb0 ldr r0, [sp, 0x3c]            |     r0 = *(arg_3ch);
    0x00001bb2 blx 0x11ac                    |     jq_teardown ();
    0x00001bb6 ldr.w r3, [pc, 0x470]         |     
    0x00001bba add r3, pc                    |     
    0x00001bbc ldr r3, [r3, 4]               |     r3 = *(0x3bec);
    0x00001bbe tst.w r3, 0x3000              |     
                                             |     if ((r3 & 0x3000) == 0) {
    0x00001bc2 beq.w 0x19bc                  |         goto label_3;
                                             |     }
    0x00001bc6 cmn.w r8, 4                   |     
                                             |     if (r8 != 4) {
    0x00001bca bne.w 0x19c4                  |         goto label_4;
                                             |     }
    0x00001bce adds r3, r7, 1                |     r3 = r7 + 1;
                                             |     if (r3 != r7) {
    0x00001bd0 beq 0x1bf8                    |         
                                             |         if (r7 != 0) {
    0x00001bd2 cbz r7, 0x1bf2                |             
    0x00001bd4 mov r0, r4                    |             r0 = r4;
    0x00001bd6 blx 0x12b8                    |             fcn_000012b8 ();
                                             | label_47:
    0x00001bda str r5, [sp, 0x34]            |             *(src) = r5;
    0x00001bdc b 0x1436                      |             goto label_2;
                                             | label_49:
    0x00001bde ldr r3, [sp, 0x44]            |             r3 = *(arg_44h);
    0x00001be0 adds r3, 1                    |             r3++;
    0x00001be2 str r3, [sp, 0x44]            |             *(arg_44h) = r3;
    0x00001be4 ldr r3, [sp, 0x38]            |             r3 = *(arg_38h);
    0x00001be6 ldr r0, [r3]                  |             r0 = *(r3);
    0x00001be8 blx 0x102c                    |             jq_util_input_add_input ();
    0x00001bec ldr.w r8, [sp, 0x30]          |             r8 = *(arg_30h);
    0x00001bf0 b 0x1436                      |             goto label_2;
                                             |         }
    0x00001bf2 movs r0, 1                    |         r0 = 1;
    0x00001bf4 blx 0x12b8                    |         fcn_000012b8 ();
                                             |     }
    0x00001bf8 movs r0, 4                    |     r0 = 4;
    0x00001bfa blx 0x12b8                    |     fcn_000012b8 ();
                                             | label_61:
    0x00001bfe add r5, sp, 0x140             |     r5 += arg_140h;
    0x00001c00 ldr.w r1, [sb, 4]             |     r1 = *((sb + 4));
    0x00001c04 mov r0, r5                    |     r0 = r5;
    0x00001c06 adds r4, 1                    |     r4++;
    0x00001c08 blx 0x1294                    |     fcn_00001294 ();
    0x00001c0c add r3, sp, 0x148             |     r3 += arg_148h;
    0x00001c0e add.w sb, sp, 0x150           |     sb += arg_150h;
    0x00001c12 ldm.w r3, {r0, r1}            |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
    0x00001c16 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00001c1a ldm.w r5, {r2, r3}            |     r2 = *(r5);
                                             |     r3 = *((r5 + 4));
                                             | label_8:
    0x00001c1e mov r0, sb                    |     r0 = sb;
    0x00001c20 add r7, sp, 8                 |     r7 += arg_0h;
    0x00001c22 blx 0x12f4                    |     r0 = fcn_000012f4 ();
    0x00001c26 ldm.w sb, {r0, r1, r2, r3}    |     r0 = *(sb);
                                             |     r1 = *((sb + 4));
                                             |     r2 = *((sb + 8));
                                             |     r3 = *((sb + 12));
    0x00001c2a add r5, sp, 0x80              |     r5 += arg_80h;
    0x00001c2c stm.w r7, {r0, r1, r2, r3}    |     *(r7) = r0;
                                             |     *((r7 + 4)) = r1;
                                             |     *((r7 + 8)) = r2;
                                             |     *((r7 + 12)) = r3;
    0x00001c30 add r3, sp, 0xc8              |     r3 += arg_c8h;
    0x00001c32 ldm.w r3, {r0, r1}            |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
    0x00001c36 ldr r7, [sp, 0x54]            |     r7 = *(arg_54h);
    0x00001c38 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00001c3a movs r3, r0                   |     r3 = r0;
    0x00001c3c mov r0, r5                    |     r0 = r5;
    0x00001c3e b.w 0x1426                    |     goto label_5;
                                             |     if (r2 == 0) {
    0x00001c40 cbnz r2, 0x1cc0               |         
                                             | label_48:
    0x00001c42 add.w sb, sp, 0x100           |         sb += arg_100h;
    0x00001c46 mov r1, r5                    |         r1 = r5;
    0x00001c48 mov r0, sb                    |         r0 = sb;
    0x00001c4a add r7, sp, 8                 |         r7 += arg_0h;
    0x00001c4c add r5, sp, 0x80              |         r5 += arg_80h;
    0x00001c4e blx 0x1294                    |         fcn_00001294 ();
    0x00001c52 b.w 0x1410                    |         goto label_1;
                                             | label_35:
    0x00001c56 ldr r1, [pc, 0x3d4]           |         
    0x00001c58 add r6, sp, 0x370             |         r6 += arg_370h;
    0x00001c5a ldr r3, [sp, 0x3c]            |         r3 = *(arg_3ch);
    0x00001c5c mov r0, r6                    |         r0 = r6;
    0x00001c5e add r5, sp, 0x380             |         r5 += arg_380h;
    0x00001c60 add.w r8, sp, 0x390           |         r8 += arg_390h;
    0x00001c64 add r1, pc                    |         r1 = 0x3c96;
    0x00001c66 add.w sl, sp, 0x3e0           |         sl += arg_3e0h;
    0x00001c6a ldr r7, [r3]                  |         r7 = *(r3);
    0x00001c6c blx 0x1294                    |         fcn_00001294 ();
    0x00001c70 ldr r1, [pc, 0x3bc]           |         
    0x00001c72 mov r0, r5                    |         r0 = r5;
    0x00001c74 add r1, pc                    |         r1 = 0x3ca8;
    0x00001c76 blx 0x1294                    |         fcn_00001294 ();
    0x00001c7a ldrd r0, r1, [sp, 0x388]      |         __asm ("ldrd r0, r1, [arg_388h]");
    0x00001c7e stm.w sp, {r0, r1}            |         *(sp) = r0;
                                             |         *((sp + 4)) = r1;
    0x00001c82 mov r0, r8                    |         r0 = r8;
    0x00001c84 ldm.w r5, {r2, r3}            |         r2 = *(r5);
                                             |         r3 = *((r5 + 4));
    0x00001c88 add r5, sp, 0x18              |         r5 += arg_18h;
    0x00001c8a blx 0x12f4                    |         r0 = fcn_000012f4 ();
    0x00001c8e ldm.w r8, {r0, r1, r2, r3}    |         r0 = *(r8);
                                             |         r1 = *((r8 + 4));
                                             |         r2 = *((r8 + 8));
                                             |         r3 = *((r8 + 12));
    0x00001c92 add.w r8, sp, 0x3c0           |         r8 += arg_3c0h;
    0x00001c96 stm.w r4, {r0, r1, r2, r3}    |         *(r4) = r0;
                                             |         *((r4 + 4)) = r1;
                                             |         *((r4 + 8)) = r2;
                                             |         *((r4 + 12)) = r3;
    0x00001c9a ldrd r0, r1, [sp, 0x378]      |         __asm ("ldrd r0, r1, [arg_378h]");
    0x00001c9e stm.w sp, {r0, r1}            |         *(sp) = r0;
                                             |         *((sp + 4)) = r1;
    0x00001ca2 mov r0, r7                    |         r0 = r7;
    0x00001ca4 ldm.w r6, {r2, r3}            |         r2 = *(r6);
                                             |         r3 = *((r6 + 4));
    0x00001ca8 add r7, sp, 0x3a0             |         r7 += arg_3a0h;
    0x00001caa blx 0x1170                    |         jq_set_attr ();
    0x00001cae mov r0, r7                    |         r0 = r7;
    0x00001cb0 add r6, sp, 0x3b0             |         r6 += arg_3b0h;
    0x00001cb2 blx 0xfd8                     |         jv_object ();
    0x00001cb6 ldr r1, [pc, 0x37c]           |         
    0x00001cb8 mov r0, r6                    |         r0 = r6;
    0x00001cba add r1, pc                    |         r1 = 0x3cf4;
    0x00001cbc blx 0x1294                    |         r0 = fcn_00001294 ();
                                             |     }
    0x00001cc0 ldm.w sb, {r0, r1, r2, r3}    |     r0 = *(sb);
                                             |     r1 = *((sb + 4));
                                             |     r2 = *((sb + 8));
                                             |     r3 = *((sb + 12));
    0x00001cc2 movs r7, r1                   |     r7 = r1;
    0x00001cc4 stm.w r5, {r0, r1, r2, r3}    |     *(r5) = r0;
                                             |     *((r5 + 4)) = r1;
                                             |     *((r5 + 8)) = r2;
                                             |     *((r5 + 12)) = r3;
    0x00001cc8 ldm.w r6, {r0, r1, r2, r3}    |     r0 = *(r6);
                                             |     r1 = *((r6 + 4));
                                             |     r2 = *((r6 + 8));
                                             |     r3 = *((r6 + 12));
    0x00001ccc add r6, sp, 0xb8              |     r6 += arg_b8h;
    0x00001cce stm.w r4, {r0, r1, r2, r3}    |     *(r4) = r0;
                                             |     *((r4 + 4)) = r1;
                                             |     *((r4 + 8)) = r2;
                                             |     *((r4 + 12)) = r3;
    0x00001cd2 ldrd r0, r1, [sp, 0x3a8]      |     __asm ("ldrd r0, r1, [arg_3a8h]");
    0x00001cd6 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00001cda mov r0, r8                    |     r0 = r8;
    0x00001cdc ldm.w r7, {r2, r3}            |     r2 = *(r7);
                                             |     r3 = *((r7 + 4));
    0x00001ce0 add r7, sp, 0x3d0             |     r7 += arg_3d0h;
    0x00001ce2 blx 0x114c                    |     jv_object_set ();
    0x00001ce6 ldr r1, [pc, 0x350]           |     
    0x00001ce8 mov r0, r7                    |     r0 = r7;
    0x00001cea add r1, pc                    |     r1 = "$ORIGIN/../lib/jq";
    0x00001cec blx 0x1294                    |     r0 = fcn_00001294 ();
    0x00001cf0 ldm.w r6, {r0, r1}            |     r0 = *(r6);
                                             |     r1 = *((r6 + 4));
    0x00001cf4 ldr r3, [sp, 0x4c]            |     r3 = *(arg_4ch);
    0x00001cf6 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00001cfa mov r0, sl                    |     r0 = sl;
    0x00001cfc ldm r3, {r2, r3}              |     r2 = *(r3);
                                             |     r3 = *((r3 + 4));
    0x00001cfe blx 0x1098                    |     r0 = jv_copy ();
    0x00001d02 ldm.w sl, {r0, r1, r2, r3}    |     r0 = *(sl);
                                             |     r1 = *((sl + 4));
                                             |     r2 = *((sl + 8));
                                             |     r3 = *((sl + 12));
    0x00001d06 stm.w r5, {r0, r1, r2, r3}    |     *(r5) = r0;
                                             |     *((r5 + 4)) = r1;
                                             |     *((r5 + 8)) = r2;
                                             |     *((r5 + 12)) = r3;
    0x00001d0a ldm.w r7, {r0, r1, r2, r3}    |     r0 = *(r7);
                                             |     r1 = *((r7 + 4));
                                             |     r2 = *((r7 + 8));
                                             |     r3 = *((r7 + 12));
    0x00001d0e add r7, sp, 0x3f0             |     r7 += arg_3f0h;
    0x00001d10 stm.w r4, {r0, r1, r2, r3}    |     *(r4) = r0;
                                             |     *((r4 + 4)) = r1;
                                             |     *((r4 + 8)) = r2;
                                             |     *((r4 + 12)) = r3;
    0x00001d14 ldrd r0, r1, [sp, 0x3c8]      |     __asm ("ldrd r0, r1, [arg_3c8h]");
    0x00001d16 lsls r2, r6, 7                |     r2 = r6 << 7;
    0x00001d18 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00001d1a movs r3, r0                   |     r3 = r0;
    0x00001d1c mov r0, sb                    |     r0 = sb;
    0x00001d1e ldm.w r8, {r2, r3}            |     r2 = *(r8);
                                             |     r3 = *((r8 + 4));
    0x00001d22 add.w r8, sp, 0x400           |     r8 += arg_400h;
    0x00001d26 blx 0x114c                    |     jv_object_set ();
    0x00001d2a ldr r1, [pc, 0x310]           |     
    0x00001d2c mov r0, r7                    |     r0 = r7;
    0x00001d2e add r1, pc                    |     r1 = 0x3d70;
    0x00001d30 blx 0x1294                    |     fcn_00001294 ();
    0x00001d34 add r3, sp, 0xa8              |     r3 += arg_a8h;
    0x00001d36 ldm.w r3, {r0, r1}            |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
    0x00001d3a stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00001d3e mov r0, r8                    |     r0 = r8;
    0x00001d40 ldm.w sb, {r2, r3}            |     r2 = *(sb);
                                             |     r3 = *((sb + 4));
    0x00001d44 blx 0x1098                    |     r0 = jv_copy ();
    0x00001d48 ldm.w r8, {r0, r1, r2, r3}    |     r0 = *(r8);
                                             |     r1 = *((r8 + 4));
                                             |     r2 = *((r8 + 8));
                                             |     r3 = *((r8 + 12));
    0x00001d4c stm.w r5, {r0, r1, r2, r3}    |     *(r5) = r0;
                                             |     *((r5 + 4)) = r1;
                                             |     *((r5 + 8)) = r2;
                                             |     *((r5 + 12)) = r3;
    0x00001d50 add r5, sp, 0x80              |     r5 += arg_80h;
    0x00001d52 ldm.w r7, {r0, r1, r2, r3}    |     r0 = *(r7);
                                             |     r1 = *((r7 + 4));
                                             |     r2 = *((r7 + 8));
                                             |     r3 = *((r7 + 12));
    0x00001d56 stm.w r4, {r0, r1, r2, r3}    |     *(r4) = r0;
                                             |     *((r4 + 4)) = r1;
                                             |     *((r4 + 8)) = r2;
                                             |     *((r4 + 12)) = r3;
    0x00001d5a ldm.w r6, {r0, r1}            |     r0 = *(r6);
                                             |     r1 = *((r6 + 4));
    0x00001d5e ldr r7, [sp, 0x4c]            |     r7 = *(arg_4ch);
    0x00001d60 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00001d64 mov r0, r5                    |     r0 = r5;
    0x00001d66 ldm.w r7, {r2, r3}            |     r2 = *(r7);
                                             |     r3 = *((r7 + 4));
    0x00001d6a blx 0x114c                    |     jv_object_set ();
    0x00001d6c ldrd sb, fp, [r0, 0x3c]!      |     __asm ("ldrd sb, fp, [r0, 0x3c]!");
    0x00001d70 ldr r4, [r3]                  |     r4 = *(r3);
    0x00001d72 ldm.w r5, {r0, r1, r2, r3}    |     r0 = *(r5);
                                             |     r1 = *((r5 + 4));
                                             |     r2 = *((r5 + 8));
                                             |     r3 = *((r5 + 12));
    0x00001d76 add.w r5, sp, 0x410           |     r5 += arg_410h;
    0x00001d7a stm.w r7, {r0, r1, r2, r3}    |     *(r7) = r0;
                                             |     *((r7 + 4)) = r1;
                                             |     *((r7 + 8)) = r2;
                                             |     *((r7 + 12)) = r3;
    0x00001d7e ldm.w r6, {r0, r1}            |     r0 = *(r6);
                                             |     r1 = *((r6 + 4));
    0x00001d82 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00001d86 mov r0, r5                    |     r0 = r5;
    0x00001d88 ldm.w r7, {r2, r3}            |     r2 = *(r7);
                                             |     r3 = *((r7 + 4));
    0x00001d8c blx 0x1098                    |     jv_copy ();
    0x00001d90 ldr.w r1, [sp, 0x41c]         |     r1 = *(arg_41ch);
    0x00001d94 ldr.w r0, [sp, 0x418]         |     r0 = *(arg_418h);
    0x00001d98 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00001d9c mov r0, r4                    |     r0 = r4;
    0x00001d9e ldr r1, [sp, 0x34]            |     r1 = *(src);
    0x00001da0 ldm.w r5, {r2, r3}            |     r2 = *(r5);
                                             |     r3 = *((r5 + 4));
    0x00001da4 blx 0xff0                     |     r0 = jq_compile_args ();
    0x00001da8 mov r4, r0                    |     r4 = r0;
    0x00001daa b 0x17e0                      |     goto label_6;
                                             | label_58:
    0x00001dac ldr r2, [pc, 0x290]           |     
    0x00001dae mov r3, fp                    |     r3 = fp;
    0x00001db0 movs r1, 0x53                 |     r1 = 0x53;
    0x00001db2 mov r0, r5                    |     r0 = r5;
    0x00001db4 add r2, pc                    |     r2 = 0x3df8;
    0x00001db6 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |     if (r0 == 0) {
    0x00001dba cbz r0, 0x1dd2                |         goto label_62;
                                             |     }
    0x00001dbc ldr r2, [pc, 0x284]           |     
    0x00001dbe ldr.w r1, [fp]                |     r1 = *(fp);
    0x00001dc2 add r2, pc                    |     r2 = 0x3e0a;
    0x00001dc4 ldr r3, [r2, 4]               |     r3 = *(0x3e0e);
    0x00001dc6 orr r3, r3, 0x100             |     r3 |= 0x100;
    0x00001dca str r3, [r2, 4]               |     *((r2 + 4)) = r3;
    0x00001dcc cmp r1, 0                     |     
                                             |     if (r1 == 0) {
    0x00001dce beq.w 0x1436                  |         goto label_2;
                                             |     }
                                             | label_62:
    0x00001dd2 ldr r2, [pc, 0x274]           |     
    0x00001dd4 mov r3, fp                    |     r3 = fp;
    0x00001dd6 movs r1, 0x52                 |     r1 = 0x52;
    0x00001dd8 mov r0, r5                    |     r0 = r5;
    0x00001dda add r2, pc                    |     r2 = 0x3e28;
    0x00001ddc bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |     if (r0 == 0) {
    0x00001de0 cbz r0, 0x1df8                |         goto label_63;
                                             |     }
    0x00001de2 ldr r2, [pc, 0x268]           |     
    0x00001de4 ldr.w r1, [fp]                |     r1 = *(fp);
    0x00001de8 add r2, pc                    |     r2 = 0x3e3a;
    0x00001dea ldr r3, [r2, 4]               |     r3 = *(0x3e3e);
    0x00001dec orr r3, r3, 2                 |     r3 |= 2;
    0x00001df0 str r3, [r2, 4]               |     *((r2 + 4)) = r3;
    0x00001df2 cmp r1, 0                     |     
                                             |     if (r1 == 0) {
    0x00001df4 beq.w 0x1436                  |         goto label_2;
                                             |     }
    0x00001df6 add r3, sp, 0x7c              |     r3 = sp + 0x7c;
                                             | label_63:
    0x00001df8 ldr r2, [pc, 0x254]           |     
    0x00001dfa mov r3, fp                    |     r3 = fp;
    0x00001dfc movs r1, 0x6e                 |     r1 = 0x6e;
    0x00001dfe mov r0, r5                    |     r0 = r5;
    0x00001e00 add r2, pc                    |     r2 = 0x3e54;
    0x00001e02 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |     if (r0 == 0) {
    0x00001e06 cbz r0, 0x1e1e                |         goto label_64;
                                             |     }
    0x00001e08 ldr r2, [pc, 0x248]           |     
    0x00001e0a ldr.w r1, [fp]                |     r1 = *(fp);
    0x00001e0e add r2, pc                    |     r2 = 0x3e66;
    0x00001e10 ldr r3, [r2, 4]               |     r3 = *(0x3e6a);
    0x00001e12 orr r3, r3, 4                 |     r3 |= 4;
    0x00001e16 str r3, [r2, 4]               |     *((r2 + 4)) = r3;
    0x00001e18 cmp r1, 0                     |     
                                             |     if (r1 == 0) {
    0x00001e1a beq.w 0x1436                  |         goto label_2;
                                             |     }
                                             | label_64:
    0x00001e1e ldr r2, [pc, 0x238]           |     
    0x00001e20 mov r3, fp                    |     r3 = fp;
    0x00001e22 movs r1, 0x66                 |     r1 = 0x66;
    0x00001e24 mov r0, r5                    |     r0 = r5;
    0x00001e26 add r2, pc                    |     r2 = 0x3e84;
    0x00001e28 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |     if (r0 == 0) {
    0x00001e2c cbz r0, 0x1e44                |         goto label_65;
                                             |     }
    0x00001e2e ldr r2, [pc, 0x22c]           |     
    0x00001e30 ldr.w r1, [fp]                |     r1 = *(fp);
    0x00001e34 add r2, pc                    |     r2 = 0x3e96;
    0x00001e36 ldr r3, [r2, 4]               |     r3 = *(0x3e9a);
    0x00001e38 orr r3, r3, 0x200             |     r3 |= 0x200;
    0x00001e3c str r3, [r2, 4]               |     *((r2 + 4)) = r3;
    0x00001e3e cmp r1, 0                     |     
                                             |     if (r1 == 0) {
    0x00001e40 beq.w 0x1436                  |         goto label_2;
                                             |     }
                                             | label_65:
    0x00001e44 ldr r2, [pc, 0x218]           |     
    0x00001e46 mov r3, fp                    |     r3 = fp;
    0x00001e48 movs r1, 0x6a                 |     r1 = 0x6a;
    0x00001e4a mov r0, r5                    |     r0 = r5;
    0x00001e4c add r2, pc                    |     r2 = 0x3eb0;
    0x00001e4e bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |     if (r0 == 0) {
    0x00001e52 cbz r0, 0x1e6a                |         goto label_66;
                                             |     }
    0x00001e54 ldr r2, [pc, 0x20c]           |     
    0x00001e56 ldr.w r1, [fp]                |     r1 = *(fp);
    0x00001e5a add r2, pc                    |     r2 = 0x3ec2;
    0x00001e5c ldr r3, [r2, 4]               |     r3 = *(0x3ec6);
    0x00001e5e orr r3, r3, 0x408             |     r3 |= 0x408;
    0x00001e62 str r3, [r2, 4]               |     *((r2 + 4)) = r3;
    0x00001e64 cmp r1, 0                     |     
                                             |     if (r1 == 0) {
    0x00001e66 beq.w 0x1436                  |         goto label_2;
                                             |     }
                                             | label_66:
    0x00001e6a ldr r2, [pc, 0x1fc]           |     
    0x00001e6c mov r3, fp                    |     r3 = fp;
    0x00001e6e movs r1, 0x30                 |     r1 = 0x30;
    0x00001e70 mov r0, r5                    |     r0 = r5;
    0x00001e72 add r2, pc                    |     r2 = 0x3ee0;
    0x00001e74 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |     if (r0 == 0) {
    0x00001e78 cbz r0, 0x1e90                |         goto label_67;
                                             |     }
    0x00001e7a ldr r2, [pc, 0x1f0]           |     
    0x00001e7c ldr.w r1, [fp]                |     r1 = *(fp);
    0x00001e80 add r2, pc                    |     r2 = 0x3ef2;
    0x00001e82 ldr r3, [r2, 4]               |     r3 = *(0x3ef6);
    0x00001e84 orr r3, r3, 0x418             |     r3 |= 0x418;
    0x00001e88 str r3, [r2, 4]               |     *((r2 + 4)) = r3;
    0x00001e8a cmp r1, 0                     |     
                                             |     if (r1 == 0) {
    0x00001e8c beq.w 0x1436                  |         goto label_2;
                                             |     }
                                             | label_67:
    0x00001e90 ldr r2, [pc, 0x1dc]           |     
    0x00001e92 movs r1, 0x62                 |     r1 = 0x62;
    0x00001e94 mov r3, fp                    |     r3 = fp;
    0x00001e96 mov r0, r5                    |     r0 = r5;
    0x00001e98 add r2, pc                    |     r2 = 0x3f0c;
    0x00001e9a bl 0x304c                     |     fcn_0000304c (r0, r1, r2, r3);
    0x00001e9e ldr r2, [pc, 0x1d4]           |     
    0x00001ea0 movs r1, 0                    |     r1 = 0;
    0x00001ea2 mov r3, fp                    |     r3 = fp;
    0x00001ea4 mov r0, r5                    |     r0 = r5;
    0x00001ea6 add r2, pc                    |     r2 = 0x3f20;
    0x00001ea8 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
    0x00001eac mov r1, r0                    |     r1 = r0;
    0x00001eae cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00001eb0 beq.w 0x222e                  |         goto label_68;
                                             |     }
    0x00001eb4 ldr r2, [sp, 0x50]            |     r2 = *(base);
    0x00001eb6 ldr r3, [r2]                  |     r3 = *(r2);
    0x00001eb8 bic r3, r3, 0x700             |     r3 = BIT_MASK (r3, 0x700);
    0x00001ebc bic r3, r3, 1                 |     r3 = BIT_MASK (r3, 1);
    0x00001ec0 orr r3, r3, 0x41              |     r3 |= 0x41;
    0x00001ec4 str r3, [r2]                  |     *(r2) = r3;
    0x00001ec6 b.w 0x1436                    |     goto label_2;
                                             | label_59:
    0x00001eca ldr r0, [sp, 0x54]            |     r0 = *(arg_54h);
    0x00001ecc blx 0x1234                    |     fcn_00001234 ();
    0x00001ed0 b 0x1b6c                      |     goto label_7;
                                             | label_60:
    0x00001ed2 add r5, sp, 0x120             |     r5 += arg_120h;
    0x00001ed4 adds r1, 2                    |     r1 += 2;
    0x00001ed6 mov r0, r5                    |     r0 = r5;
    0x00001ed8 add.w sb, sp, 0x130           |     sb += arg_130h;
    0x00001edc blx 0x1294                    |     fcn_00001294 ();
    0x00001ee0 add r3, sp, 0x128             |     r3 += arg_128h;
    0x00001ee2 ldm.w r3, {r0, r1}            |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
    0x00001ee6 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00001eea ldm.w r5, {r2, r3}            |     r2 = *(r5);
                                             |     r3 = *((r5 + 4));
    0x00001eee b 0x1c1e                      |     goto label_8;
                                             | label_41:
    0x00001ef0 and r2, r2, 1                 |     r2 &= 1;
    0x00001ef4 mov r0, r4                    |     r0 = r4;
    0x00001ef6 movs r1, 0                    |     r1 = 0;
    0x00001ef8 blx 0x117c                    |     jq_util_input_set_parser ();
    0x00001efc b 0x182c                      |     goto label_9;
                                             | label_31:
    0x00001efe ldr r2, [sp, 0x48]            |     r2 = *(nitems);
    0x00001f00 movs r1, 1                    |     r1 = 1;
    0x00001f02 ldr r3, [pc, 0xe4]            |     
    0x00001f04 ldr r0, [pc, 0x170]           |     
    0x00001f06 ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x00001f08 movs r2, 0x19                 |     r2 = 0x19;
    0x00001f0a add r0, pc                    |     r0 = 0x3f86;
    0x00001f0c ldr r3, [r3]                  |     r3 = *(0x1fea);
    0x00001f0e blx 0x1188                    |     fwrite (r0, r1, r2, r3);
    0x00001f12 b.w 0x14f6                    |     goto label_10;
                                             | label_40:
    0x00001f16 ldr r3, [sp, 0x3c]            |     r3 = *(arg_3ch);
    0x00001f18 movs r1, 0                    |     r1 = 0;
    0x00001f1a ldr r0, [r3]                  |     r0 = *(r3);
    0x00001f1c blx 0x1008                    |     jq_dump_disassembly ();
    0x00001f20 movs r0, 0xa                  |     r0 = 0xa;
    0x00001f22 blx 0x1080                    |     putchar (r0);
    0x00001f26 b 0x17f4                      |     goto label_11;
                                             | label_37:
    0x00001f28 ldr r7, [sp, 0x2c]            |     r7 = *(arg_2ch);
    0x00001f2a add r4, sp, 0x80              |     r4 += arg_80h;
    0x00001f2c ldr.w r1, [sp, 0x42c]         |     r1 = *(arg_42ch);
    0x00001f30 ldr.w r0, [sp, 0x428]         |     r0 = *(arg_428h);
    0x00001f34 ldr r6, [pc, 0xb0]            |     r6 = *(0x1fe8);
    0x00001f36 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00001f3a mov r0, r4                    |     r0 = r4;
    0x00001f3c ldm.w r7, {r2, r3}            |     r2 = *(r7);
                                             |     r3 = *((r7 + 4));
    0x00001f40 blx 0x1038                    |     jv_invalid_get_msg ();
    0x00001f42 ldrd lr, r8, [sl], -0x250     |     __asm ("ldrd lr, r8, [sl], -0x250");
    0x00001f46 movs r7, r1                   |     r7 = r1;
    0x00001f48 ldr r5, [r5]                  |     r5 = *(r5);
    0x00001f4a stm.w r7, {r0, r1, r2, r3}    |     *(r7) = r0;
                                             |     *((r7 + 4)) = r1;
                                             |     *((r7 + 8)) = r2;
                                             |     *((r7 + 12)) = r3;
    0x00001f4e ldr r3, [sp, 0x48]            |     r3 = *(nitems);
    0x00001f50 ldr r3, [r3, r6]              |     r3 = *((r3 + r6));
    0x00001f52 ldr r4, [r3]                  |     r4 = *(r3);
    0x00001f54 ldm.w r7, {r0, r1, r2, r3}    |     r0 = *(r7);
                                             |     r1 = *((r7 + 4));
                                             |     r2 = *((r7 + 8));
                                             |     r3 = *((r7 + 12));
    0x00001f58 blx 0x10a4                    |     jv_string_value ();
    0x00001f5c ldr r2, [pc, 0x11c]           |     
    0x00001f5e mov r3, r5                    |     r3 = r5;
    0x00001f60 str r0, [sp]                  |     *(sp) = r0;
    0x00001f62 movs r1, 1                    |     r1 = 1;
    0x00001f64 mov r0, r4                    |     r0 = r4;
    0x00001f66 add r2, pc                    |     r2 = 0x3fe6;
    0x00001f68 blx 0x11f4                    |     r0 = fprintf_chk ()
    0x00001f6c ldm.w r7, {r0, r1, r2, r3}    |     r0 = *(r7);
                                             |     r1 = *((r7 + 4));
                                             |     r2 = *((r7 + 8));
                                             |     r3 = *((r7 + 12));
    0x00001f70 blx 0x1240                    |     fcn_00001240 ();
    0x00001f72 strd lr, r4, [r6, -0x3a0]!    |     __asm ("strd lr, r4, [r6, -0x3a0]!");
                                             | label_44:
    0x000020b4 ldr r3, [sp, 0x68]            |     r3 = *(arg_68h);
    0x000020b6 str r3, [sp, 8]               |     *(arg_0h) = r3;
    0x000020b8 ldr r3, [sp, 0x50]            |     r3 = *(base);
    0x000020ba ldm.w r6, {r0, r1}            |     r0 = *(r6);
                                             |     r1 = *((r6 + 4));
    0x000020be stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x000020c2 ldr r3, [r3]                  |     r3 = *(r3);
    0x000020c4 str r3, [sp, 0xc]             |     *(arg_ch) = r3;
    0x000020c6 ldr r3, [sp, 0x3c]            |     r3 = *(arg_3ch);
    0x000020c8 ldr r0, [r3]                  |     r0 = *(r3);
    0x000020ca ldm.w r5, {r2, r3}            |     r2 = *(r5);
                                             |     r3 = *((r5 + 4));
    0x000020ce bl 0x2c24                     |     r0 = fcn_00002c24 (r0, r1, r2, r3);
    0x000020d2 cmp r0, 0                     |     
    0x000020d4 mov r8, r0                    |     r8 = r0;
                                             |     if (r0 > 0) {
    0x000020d6 bgt.w 0x1884                  |         goto label_12;
                                             |     }
    0x000020da cmn.w r0, 4                   |     
                                             |     if (r0 == 4) {
    0x000020de beq.w 0x1884                  |         goto label_12;
                                             |     }
    0x000020e2 adds r7, r0, 1                |     r7 = r0 + 1;
    0x000020e4 it ne                         |     
                                             |     if (r7 == r0) {
    0x000020e6 movne r7, 1                   |         r7 = 1;
                                             |     }
    0x000020e8 b.w 0x1884                    |     goto label_12;
                                             |     if (r4 != 0) {
    0x000020ea cbnz r4, 0x2160               |         goto label_69;
                                             |     }
                                             | label_43:
    0x000020ec ldr r3, [sp, 0x3c]            |     r3 = *(arg_3ch);
    0x000020ee add.w r5, sp, 0x430           |     r5 += arg_430h;
    0x000020f2 mov r0, r5                    |     r0 = r5;
    0x000020f4 mov.w r7, -1                  |     r7 = -1;
    0x000020f8 ldr r4, [r3]                  |     r4 = *(r3);
    0x000020fa blx 0xfe4                     |     jv_null ();
    0x000020fe ldr r3, [sp, 0x68]            |     r3 = *(arg_68h);
    0x00002100 ldr.w r0, [sp, 0x438]         |     r0 = *(arg_438h);
    0x00002104 ldr.w r1, [sp, 0x43c]         |     r1 = *(arg_43ch);
    0x00002108 str r3, [sp, 8]               |     *(arg_0h) = r3;
    0x0000210a ldr r3, [sp, 0x50]            |     r3 = *(base);
    0x0000210c ldr r3, [r3]                  |     r3 = *(r3);
    0x0000210e stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00002112 mov r0, r4                    |     r0 = r4;
    0x00002114 str r3, [sp, 0xc]             |     *(arg_ch) = r3;
    0x00002116 ldm.w r5, {r2, r3}            |     r2 = *(r5);
                                             |     r3 = *((r5 + 4));
    0x0000211a bl 0x2c24                     |     r0 = fcn_00002c24 (r0, r1, r2, r3);
    0x0000211e mov r8, r0                    |     r8 = r0;
                                             | label_17:
    0x00002120 ldr r3, [sp, 0x38]            |     r3 = *(arg_38h);
    0x00002122 ldr r0, [r3]                  |     r0 = *(r3);
    0x00002124 blx 0x1014                    |     r0 = jq_util_input_errors ();
    0x00002128 cmp r0, 0                     |     
    0x0000212a it ne                         |     
                                             |     if (r0 == 0) {
    0x0000212c movne r8, 2                   |         r8 = 2;
                                             |     }
    0x00002130 b 0x1950                      |     goto label_13;
                                             | label_39:
    0x00002132 mov.w r7, -1                  |     r7 = -1;
    0x00002136 mov.w r8, 3                   |     r8 = 3;
    0x0000213a b 0x1950                      |     goto label_13;
                                             |     do {
    0x0000213c ldr r0, [sp, 0x34]            |         r0 = *(src);
    0x0000213e blx 0x1110                    |         r0 = isatty (r0);
    0x00002142 cmp r0, 0                     |         
                                             |         if (r0 == 0) {
    0x00002144 beq 0x21e8                    |             goto label_70;
                                             |         }
                                             | label_30:
    0x00002146 movs r1, 1                    |         r1 = 1;
    0x00002148 movs r0, 2                    |         r0 = 2;
    0x0000214a bl 0x2ab4                     |         fcn_00002ab4 (r0, r1);
                                             | label_32:
    0x0000214e add r5, sp, 0x210             |         r5 += arg_210h;
    0x00002150 add r7, sp, 0x220             |         r7 += arg_220h;
    0x00002152 mov r0, r5                    |         r0 = r5;
    0x00002154 add r4, sp, 8                 |         r4 += arg_0h;
    0x00002156 blx 0x1234                    |         fcn_00001234 ();
    0x0000215a ldr.w r1, [pc, 0x740]         |         
    0x0000215e mov r0, r7                    |         r0 = r7;
                                             | label_69:
    0x00002160 add r1, pc                    |         r1 = 0x4a02;
    0x00002162 blx 0x1294                    |         r0 = fcn_00001294 ();
    0x00002166 ldm.w r7, {r0, r1, r2, r3}    |         r0 = *(r7);
                                             |         r1 = *((r7 + 4));
                                             |         r2 = *((r7 + 8));
                                             |         r3 = *((r7 + 12));
    0x0000216a add r7, sp, 0x240             |         r7 += arg_240h;
    0x0000216c stm.w r4, {r0, r1, r2, r3}    |         *(r4) = r0;
                                             |         *((r4 + 4)) = r1;
                                             |         *((r4 + 8)) = r2;
                                             |         *((r4 + 12)) = r3;
    0x00002170 add r3, sp, 0x218             |         r3 += arg_218h;
    0x00002172 ldm.w r3, {r0, r1}            |         r0 = *(r3);
                                             |         r1 = *((r3 + 4));
    0x00002176 stm.w sp, {r0, r1}            |         *(sp) = r0;
                                             |         *((sp + 4)) = r1;
    0x0000217a ldm.w r5, {r2, r3}            |         r2 = *(r5);
                                             |         r3 = *((r5 + 4));
    0x0000217e add r5, sp, 0x230             |         r5 += arg_230h;
    0x00002180 mov r0, r5                    |         r0 = r5;
    0x00002182 blx 0xfa8                     |         jv_array_append ();
    0x00002186 ldr.w r1, [pc, 0x718]         |         
    0x0000218a mov r0, r7                    |         r0 = r7;
    0x0000218c add r1, pc                    |         r1 = 0x4a32;
    0x0000218e blx 0x1294                    |         r0 = fcn_00001294 ();
    0x00002192 ldm.w r7, {r0, r1, r2, r3}    |         r0 = *(r7);
                                             |         r1 = *((r7 + 4));
                                             |         r2 = *((r7 + 8));
                                             |         r3 = *((r7 + 12));
    0x00002196 add r7, sp, 0x260             |         r7 += arg_260h;
    0x00002198 stm.w r4, {r0, r1, r2, r3}    |         *(r4) = r0;
                                             |         *((r4 + 4)) = r1;
                                             |         *((r4 + 8)) = r2;
                                             |         *((r4 + 12)) = r3;
    0x0000219c add r3, sp, 0x238             |         r3 += arg_238h;
    0x0000219e ldm.w r3, {r0, r1}            |         r0 = *(r3);
                                             |         r1 = *((r3 + 4));
    0x000021a2 stm.w sp, {r0, r1}            |         *(sp) = r0;
                                             |         *((sp + 4)) = r1;
    0x000021a6 ldm.w r5, {r2, r3}            |         r2 = *(r5);
                                             |         r3 = *((r5 + 4));
    0x000021aa add r5, sp, 0x250             |         r5 += arg_250h;
    0x000021ac mov r0, r5                    |         r0 = r5;
    0x000021ae blx 0xfa8                     |         jv_array_append ();
    0x000021b2 ldr.w r1, [pc, 0x6f0]         |         
    0x000021b6 mov r0, r7                    |         r0 = r7;
    0x000021b8 add r1, pc                    |         r1 = 0x4a62;
    0x000021ba blx 0x1294                    |         r0 = fcn_00001294 ();
    0x000021be ldm.w r7, {r0, r1, r2, r3}    |         r0 = *(r7);
                                             |         r1 = *((r7 + 4));
                                             |         r2 = *((r7 + 8));
                                             |         r3 = *((r7 + 12));
    0x000021c2 stm.w r4, {r0, r1, r2, r3}    |         *(r4) = r0;
                                             |         *((r4 + 4)) = r1;
                                             |         *((r4 + 8)) = r2;
                                             |         *((r4 + 12)) = r3;
    0x000021c6 add r3, sp, 0x258             |         r3 += arg_258h;
    0x000021c8 ldm.w r3, {r0, r1}            |         r0 = *(r3);
                                             |         r1 = *((r3 + 4));
    0x000021cc stm.w sp, {r0, r1}            |         *(sp) = r0;
                                             |         *((sp + 4)) = r1;
    0x000021d0 ldr r0, [sp, 0x54]            |         r0 = *(arg_54h);
    0x000021d2 ldm.w r5, {r2, r3}            |         r2 = *(r5);
                                             |         r3 = *((r5 + 4));
    0x000021d6 blx 0xfa8                     |         jv_array_append ();
    0x000021da b.w 0x1506                    |         goto label_14;
                                             | label_34:
    0x000021de movs r0, 1                    |         r0 = 1;
    0x000021e0 blx 0x1110                    |         r0 = isatty (r0);
    0x000021e4 cmp r0, 0                     |         
    0x000021e6 bne 0x213c                    |         
                                             |     } while (r0 != 0);
                                             | label_70:
    0x000021e8 ldr.w r3, [pc, 0x6bc]         |     
    0x000021ec add r3, pc                    |     r3 = 0x4a98;
    0x000021ee str r3, [sp, 0x34]            |     *(src) = r3;
    0x000021f0 b.w 0x15d4                    |     goto label_15;
                                             | label_42:
    0x000021f4 ldr r3, [sp, 0x38]            |     r3 = *(arg_38h);
    0x000021f6 ldr.w r1, [pc, 0x6b4]         |     
    0x000021fa ldr r0, [r3]                  |     r0 = *(r3);
    0x000021fc add r1, pc                    |     r1 = 0x4aae;
    0x000021fe blx 0x102c                    |     jq_util_input_add_input ();
    0x00002202 b.w 0x185a                    |     goto label_16;
                                             | label_45:
    0x00002206 ldr r5, [r3]                  |     r5 = *(r3);
    0x00002208 mvn r8, 3                     |     r8 = ~3;
    0x0000220c ldm.w r4, {r0, r1, r2, r3}    |     r0 = *(r4);
                                             |     r1 = *((r4 + 4));
                                             |     r2 = *((r4 + 8));
                                             |     r3 = *((r4 + 12));
    0x00002210 blx 0x10a4                    |     jv_string_value ();
    0x00002214 ldr.w r2, [pc, 0x698]         |     
    0x00002216 movs r6, 0x98                 |     r6 = 0x98;
    0x00002218 mov r3, r0                    |     r3 = r0;
    0x0000221a movs r1, 1                    |     r1 = 1;
    0x0000221c mov r0, r5                    |     r0 = r5;
    0x0000221e add r2, pc                    |     r2 = 0x4ad2;
    0x00002220 blx 0x11f4                    |     r0 = fprintf_chk ()
    0x00002224 ldm.w r4, {r0, r1, r2, r3}    |     r0 = *(r4);
                                             |     r1 = *((r4 + 4));
                                             |     r2 = *((r4 + 8));
                                             |     r3 = *((r4 + 12));
    0x00002228 blx 0x1240                    |     fcn_00001240 ();
    0x0000222c b 0x2120                      |     goto label_17;
                                             | label_68:
    0x0000222e ldr.w r2, [pc, 0x684]         |     
    0x00002232 mov r3, fp                    |     r3 = fp;
    0x00002234 str r0, [sp, 0x58]            |     *(arg_58h) = r0;
    0x00002236 mov r0, r5                    |     r0 = r5;
    0x00002238 add r2, pc                    |     r2 = 0x4af2;
    0x0000223a bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |     if (r0 != 0) {
    0x0000223e cbz r0, 0x228c                |         
    0x00002240 add.w r3, sl, -1              |         r3 = sl + -1;
    0x00002244 ldr r1, [sp, 0x58]            |         r1 = *(arg_58h);
    0x00002246 cmp r3, r4                    |         
                                             |         if (r3 <= r4) {
    0x00002248 ble 0x231c                    |             goto label_71;
                                             |         }
    0x0000224a ldr r2, [sp, 0x50]            |         r2 = *(base);
    0x0000224c ldr.w r0, [sb, 4]             |         r0 = *((sb + 4));
    0x00002250 ldr r3, [r2]                  |         r3 = *(r2);
    0x00002252 bic r3, r3, 0x740             |         r3 = BIT_MASK (r3, 0x740);
    0x00002256 bic r3, r3, 1                 |         r3 = BIT_MASK (r3, 1);
    0x00002258 lsls r1, r0, 0xc              |         r1 = r0 << 0xc;
    0x0000225a str r3, [r2]                  |         *(r2) = r3;
    0x0000225c movs r2, 0xa                  |         r2 = 0xa;
    0x0000225e blx 0x1164                    |         r0 = strtol (r0, r1, r2);
    0x00002262 adds r2, r0, 1                |         r2 = r0 + 1;
    0x00002264 mov r3, r0                    |         r3 = r0;
    0x00002266 cmp r2, 8                     |         
                                             |         if (r2 < 8) {
    0x00002268 bls 0x22b2                    |             goto label_72;
                                             |         }
    0x0000226a ldr.w r3, [pc, 0x64c]         |         
    0x0000226e ldr.w r2, [pc, 0x64c]         |         
    0x00002272 ldr.w r0, [pc, 0x64c]         |         r0 = *(0x28c2);
    0x00002276 add r3, pc                    |         r3 = 0x4b34;
    0x00002278 add r2, pc                    |         r2 = 0x4b3a;
                                             | label_18:
    0x0000227a ldr r4, [sp, 0x48]            |         r4 = *(nitems);
    0x0000227c movs r1, 1                    |         r1 = 1;
    0x0000227e ldr r3, [r3]                  |         r3 = *(r3);
    0x00002280 ldr r0, [r4, r0]              |         r0 = *((r4 + r0));
    0x00002282 ldr r0, [r0]                  |         r0 = *(r0);
    0x00002284 blx 0x11f4                    |         fprintf_chk ()
    0x00002288 bl 0x2a6c                     |         fcn_00002a6c ();
                                             |     }
    0x0000228c ldr.w r2, [pc, 0x634]         |     
    0x00002290 mov r1, r0                    |     r1 = r0;
    0x00002292 mov r3, fp                    |     r3 = fp;
    0x00002294 mov r0, r5                    |     r0 = r5;
    0x00002296 add r2, pc                    |     r2 = 0x4b5e;
    0x00002298 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
    0x0000229c mov r1, r0                    |     r1 = r0;
                                             |     if (r0 == 0) {
    0x0000229e cbz r0, 0x22d4                |         goto label_73;
                                             |     }
    0x000022a0 ldr.w r2, [pc, 0x624]         |     
    0x000022a4 add r2, pc                    |     r2 = 0x4b70;
    0x000022a6 ldr r3, [r2, 4]               |     r3 = *(0x4b74);
    0x000022a8 orr r3, r3, 0x4000            |     r3 |= 0x4000;
    0x000022ac str r3, [r2, 4]               |     *((r2 + 4)) = r3;
    0x000022ae b.w 0x1436                    |     goto label_2;
                                             | label_72:
    0x000022b2 cmp r0, 7                     |     
                                             |     if (r0 > 7) {
    0x000022b4 bhi 0x22d0                    |         goto label_74;
                                             |     }
                                             |     if (r0 == 0) {
    0x000022b6 cbz r0, 0x22be                |         goto label_75;
                                             |     }
    0x000022b8 lsls r3, r0, 8                |     r3 = r0 << 8;
    0x000022ba orr r3, r3, 1                 |     r3 |= 1;
                                             |     do {
                                             | label_75:
    0x000022be ldr r1, [sp, 0x50]            |         r1 = *(base);
    0x000022c0 adds r4, 1                    |         r4++;
    0x000022c2 mov.w r8, 0                   |         r8 = 0;
    0x000022c6 ldr r2, [r1]                  |         r2 = *(r1);
    0x000022c8 orrs r2, r3                   |         r2 |= r3;
    0x000022ca str r2, [r1]                  |         *(r1) = r2;
    0x000022cc b.w 0x1436                    |         goto label_2;
                                             | label_74:
    0x000022d0 movs r3, 0x41                 |         r3 = 0x41;
    0x000022d2 b 0x22be                      |         
                                             |     } while (1);
                                             | label_73:
    0x000022d4 ldr.w r2, [pc, 0x5f4]         |     
    0x000022d8 mov r3, fp                    |     r3 = fp;
    0x000022da str r0, [sp, 0x70]            |     *(arg_70h) = r0;
    0x000022dc mov r0, r5                    |     r0 = r5;
    0x000022de add r2, pc                    |     r2 = 0x4bae;
    0x000022e0 bl 0x304c                     |     fcn_0000304c (r0, r1, r2, r3);
    0x000022e4 str r0, [sp, 0x58]            |     *(arg_58h) = r0;
                                             |     if (r0 != 0) {
    0x000022e6 cbz r0, 0x22f8                |         
    0x000022e8 ldr r3, [sp, 0x6c]            |         r3 = *(arg_6ch);
    0x000022ea ldr r1, [sp, 0x70]            |         r1 = *(arg_70h);
    0x000022ec orr r3, r3, 2                 |         r3 |= 2;
    0x000022f0 mov r8, r1                    |         r8 = r1;
    0x000022f2 str r3, [sp, 0x6c]            |         *(arg_6ch) = r3;
    0x000022f4 b.w 0x1436                    |         goto label_2;
                                             |     }
    0x000022f8 ldr.w r2, [pc, 0x5d4]         |     
    0x000022fc mov r3, fp                    |     r3 = fp;
    0x000022fe ldr r1, [sp, 0x58]            |     r1 = *(arg_58h);
    0x00002300 mov r0, r5                    |     r0 = r5;
    0x00002302 add r2, pc                    |     r2 = 0x4bd6;
    0x00002304 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
    0x00002308 mov r8, r0                    |     r8 = r0;
                                             |     if (r0 != 0) {
    0x0000230a cbz r0, 0x232e                |         
    0x0000230c ldr r3, [sp, 0x6c]            |         r3 = *(arg_6ch);
    0x0000230e ldr.w r8, [sp, 0x58]          |         r8 = *(arg_58h);
    0x00002312 orr r3, r3, 4                 |         r3 |= 4;
    0x00002316 str r3, [sp, 0x6c]            |         *(arg_6ch) = r3;
    0x00002318 b.w 0x1436                    |         goto label_2;
                                             | label_71:
    0x0000231c ldr.w r3, [pc, 0x5b4]         |         
    0x00002320 ldr.w r2, [pc, 0x5b4]         |         
    0x00002324 ldr.w r0, [pc, 0x598]         |         r0 = *(0x28c0);
    0x00002328 add r3, pc                    |         r3 = 0x4c00;
    0x0000232a add r2, pc                    |         r2 = 0x4c06;
    0x0000232c b 0x227a                      |         goto label_18;
                                             |     }
    0x0000232e ldr.w r2, [pc, 0x5ac]         |     
    0x00002332 mov r3, fp                    |     r3 = fp;
    0x00002334 movs r1, 0x65                 |     r1 = 0x65;
    0x00002336 mov r0, r5                    |     r0 = r5;
    0x00002338 add r2, pc                    |     r2 = 0x4c1a;
    0x0000233a bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |     if (r0 == 0) {
    0x0000233e cbz r0, 0x2358                |         goto label_76;
                                             |     }
    0x00002340 ldr.w r2, [pc, 0x59c]         |     
    0x00002344 ldr.w r1, [fp]                |     r1 = *(fp);
    0x00002348 add r2, pc                    |     r2 = 0x4c2c;
    0x0000234a ldr r3, [r2, 4]               |     r3 = *(0x4c30);
    0x0000234c orr r3, r3, 0x1000            |     r3 |= 0x1000;
    0x00002350 str r3, [r2, 4]               |     *((r2 + 4)) = r3;
    0x00002352 cmp r1, 0                     |     
                                             |     if (r1 == 0) {
    0x00002354 beq.w 0x1436                  |         goto label_2;
                                             |     }
                                             | label_76:
    0x00002358 ldr.w r2, [pc, 0x588]         |     
    0x0000235c movs r1, 0                    |     r1 = 0;
    0x0000235e mov r3, fp                    |     r3 = fp;
    0x00002360 mov r0, r5                    |     r0 = r5;
    0x00002362 add r2, pc                    |     r2 = 0x4c4a;
    0x00002364 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
    0x00002368 mov r1, r0                    |     r1 = r0;
                                             |     if (r0 != 0) {
    0x0000236a cbz r0, 0x23a6                |         
    0x0000236c movs r3, 1                    |         r3 = 1;
    0x0000236e movs r5, 0                    |         r5 = 0;
    0x00002370 strd r3, r5, [sp, 0x2c]       |         __asm ("strd r3, r5, [sp, 0x2c]");
    0x00002374 b.w 0x1436                    |         goto label_2;
                                             | label_33:
    0x00002378 ldr r4, [sp, 0x48]            |         r4 = *(nitems);
    0x0000237a movs r2, 0x19                 |         r2 = 0x19;
    0x0000237c ldr.w r3, [pc, 0x540]         |         
    0x00002380 movs r1, 1                    |         r1 = 1;
    0x00002382 ldr.w r0, [pc, 0x564]         |         
    0x00002386 ldr r3, [r4, r3]              |         r3 = *((r4 + r3));
    0x00002388 add r0, pc                    |         r0 = 0x4c76;
    0x0000238a ldr r3, [r3]                  |         r3 = *(0x28c0);
    0x0000238c blx 0x1188                    |         fwrite (r0, r1, r2, r3);
    0x00002390 movs r0, 1                    |         r0 = 1;
    0x00002392 blx 0x12b8                    |         fcn_000012b8 ();
                                             | label_36:
    0x00002396 ldr.w r0, [pc, 0x554]         |         
    0x0000239a add r0, pc                    |         r0 = 0x4c8c;
    0x0000239c blx 0x10b0                    |         perror (r0);
    0x000023a0 movs r0, 2                    |         r0 = 2;
    0x000023a2 blx 0x12b8                    |         fcn_000012b8 ();
                                             |     }
    0x000023a6 ldr.w r2, [pc, 0x548]         |     
    0x000023aa mov r3, fp                    |     r3 = fp;
    0x000023ac str r0, [sp, 0x58]            |     *(arg_58h) = r0;
    0x000023ae mov r0, r5                    |     r0 = r5;
    0x000023b0 add r2, pc                    |     r2 = 0x4ca6;
    0x000023b2 bl 0x304c                     |     fcn_0000304c (r0, r1, r2, r3);
    0x000023b6 ldr r1, [sp, 0x58]            |     r1 = *(arg_58h);
    0x000023b8 mov r8, r0                    |     r8 = r0;
                                             |     if (r0 == 0) {
    0x000023ba cbnz r0, 0x23e8               |         
    0x000023bc ldr.w r2, [pc, 0x534]         |         
    0x000023c0 mov r1, r0                    |         r1 = r0;
    0x000023c2 mov r3, fp                    |         r3 = fp;
    0x000023c4 mov r0, r5                    |         r0 = r5;
    0x000023c6 add r2, pc                    |         r2 = 0x4cbe;
    0x000023c8 bl 0x304c                     |         r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |         if (r0 == 0) {
    0x000023cc cbz r0, 0x2432                |             goto label_77;
                                             |         }
    0x000023ce sub.w r3, sl, 2               |         r3 = sl - 2;
    0x000023d2 cmp r3, r4                    |         
                                             |         if (r3 > r4) {
    0x000023d4 bgt 0x23f4                    |             goto label_78;
                                             |         }
    0x000023d6 ldr.w r3, [pc, 0x520]         |         
    0x000023da ldr.w r2, [pc, 0x520]         |         
    0x000023de ldr.w r0, [pc, 0x4e0]         |         r0 = *(0x28c2);
    0x000023e2 add r3, pc                    |         r3 = 0x4ce0;
    0x000023e4 add r2, pc                    |         r2 = 0x4ce6;
    0x000023e6 b 0x227a                      |         goto label_18;
                                             |     }
    0x000023e8 movs r3, 1                    |     r3 = 1;
    0x000023ea mov r8, r1                    |     r8 = r1;
    0x000023ec strd r1, r3, [sp, 0x2c]       |     __asm ("strd r1, r3, [sp, 0x2c]");
    0x000023f0 b.w 0x1436                    |     goto label_2;
                                             | label_78:
    0x000023f4 add r3, sp, 0xb8              |     r3 += arg_b8h;
    0x000023f6 add r5, sp, 0x160             |     r5 += arg_160h;
    0x000023f8 ldm.w r3, {r0, r1}            |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
    0x000023fc adds r7, 4                    |     r7 += 4;
    0x000023fe str r3, [sp, 0x58]            |     *(arg_58h) = r3;
    0x00002400 ldr r3, [sp, 0x4c]            |     r3 = *(arg_4ch);
    0x00002402 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00002406 mov r0, r5                    |     r0 = r5;
    0x00002408 ldm r3, {r2, r3}              |     r2 = *(r3);
                                             |     r3 = *((r3 + 4));
    0x0000240a blx 0x1098                    |     jv_copy ();
    0x0000240e add r0, sp, 0x170             |     r0 += arg_170h;
    0x00002410 ldr r1, [r6, r7]              |     r1 = *((r6 + r7));
    0x00002412 str r0, [sp, 0x70]            |     *(arg_70h) = r0;
    0x00002414 blx 0x1294                    |     fcn_00001294 ();
    0x00002416 invalid                       |     
    0x0000241a ldm r0, {r0, r1, r2, r3}      |     r0 = *(r0);
                                             |     r1 = *((r0 + 4));
                                             |     r2 = *((r0 + 8));
                                             |     r3 = *((r0 + 12));
    0x0000241c stm.w sp, {r0, r1, r2, r3}    |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
                                             |     *((sp + 8)) = r2;
                                             |     *((sp + 12)) = r3;
    0x00002420 ldm.w r5, {r0, r1, r2, r3}    |     r0 = *(r5);
                                             |     r1 = *((r5 + 4));
                                             |     r2 = *((r5 + 8));
                                             |     r3 = *((r5 + 12));
    0x00002424 blx 0x12a0                    |     r0 = fcn_000012a0 ();
    0x00002428 cmp r0, 0                     |     
    0x0000242a beq 0x24c0                    |     
                                             |     while (1) {
                                             | label_19:
    0x0000242c adds r4, 2                    |         r4 += 2;
    0x0000242e b.w 0x1436                    |         goto label_2;
                                             | label_77:
    0x00002432 ldr.w r2, [pc, 0x4cc]         |         
    0x00002436 mov r1, r8                    |         r1 = r8;
    0x00002438 mov r3, fp                    |         r3 = fp;
    0x0000243a mov r0, r5                    |         r0 = r5;
    0x0000243c add r2, pc                    |         r2 = 0x4d42;
    0x0000243e bl 0x304c                     |         r0 = fcn_0000304c (r0, r1, r2, r3);
    0x00002442 mov r8, r0                    |         r8 = r0;
    0x00002444 cmp r0, 0                     |         
                                             |         if (r0 == 0) {
    0x00002446 beq.w 0x256a                  |             goto label_79;
                                             |         }
    0x0000244a sub.w r3, sl, 2               |         r3 = sl - 2;
    0x0000244e cmp r3, r4                    |         
                                             |         if (r3 <= r4) {
    0x00002450 ble.w 0x255e                  |             goto label_80;
                                             |         }
    0x00002454 add r3, sp, 0xb8              |         r3 += arg_b8h;
    0x00002456 add r5, sp, 0x1a0             |         r5 += arg_1a0h;
    0x00002458 ldm.w r3, {r0, r1}            |         r0 = *(r3);
                                             |         r1 = *((r3 + 4));
    0x0000245c add.w r8, sp, 0x1b0           |         r8 += arg_1b0h;
    0x00002460 str r3, [sp, 0x58]            |         *(arg_58h) = r3;
    0x00002462 adds r7, 4                    |         r7 += 4;
    0x00002464 ldr r3, [sp, 0x4c]            |         r3 = *(arg_4ch);
    0x00002466 stm.w sp, {r0, r1}            |         *(sp) = r0;
                                             |         *((sp + 4)) = r1;
    0x0000246a mov r0, r5                    |         r0 = r5;
    0x0000246c ldm r3, {r2, r3}              |         r2 = *(r3);
                                             |         r3 = *((r3 + 4));
    0x0000246e blx 0x1098                    |         jv_copy ();
    0x00002472 ldr r1, [r6, r7]              |         r1 = *((r6 + r7));
    0x00002474 mov r0, r8                    |         r0 = r8;
    0x00002476 blx 0x1294                    |         r0 = fcn_00001294 ();
    0x0000247a ldm.w r8, {r0, r1, r2, r3}    |         r0 = *(r8);
                                             |         r1 = *((r8 + 4));
                                             |         r2 = *((r8 + 8));
                                             |         r3 = *((r8 + 12));
    0x0000247e stm.w sp, {r0, r1, r2, r3}    |         *(sp) = r0;
                                             |         *((sp + 4)) = r1;
                                             |         *((sp + 8)) = r2;
                                             |         *((sp + 12)) = r3;
    0x00002482 ldm.w r5, {r0, r1, r2, r3}    |         r0 = *(r5);
                                             |         r1 = *((r5 + 4));
                                             |         r2 = *((r5 + 8));
                                             |         r3 = *((r5 + 12));
    0x00002486 blx 0x12a0                    |         r0 = fcn_000012a0 ();
    0x0000248a cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x0000248c bne 0x2554                    |             goto label_81;
                                             |         }
    0x0000248e ldr.w r1, [sb, 8]             |         r1 = *((sb + 8));
    0x00002492 add.w sb, sp, 0x420           |         sb += arg_420h;
    0x00002496 mov r0, sb                    |         r0 = sb;
    0x00002498 add.w r5, sp, 0x430           |         r5 += arg_430h;
    0x0000249c blx 0x1258                    |         r0 = fcn_00001258 ();
    0x000024a0 ldm.w sb, {r0, r1, r2, r3}    |         r0 = *(sb);
                                             |         r1 = *((sb + 4));
                                             |         r2 = *((sb + 8));
                                             |         r3 = *((sb + 12));
    0x000024a4 stm.w r5, {r0, r1, r2, r3}    |         *(r5) = r0;
                                             |         *((r5 + 4)) = r1;
                                             |         *((r5 + 8)) = r2;
                                             |         *((r5 + 12)) = r3;
    0x000024a8 blx 0x1128                    |         r0 = jv_get_kind ();
                                             |         if (r0 != 0) {
    0x000024ac cbnz r0, 0x2512               |             goto label_82;
                                             |         }
    0x000024ae ldr.w r3, [pc, 0x454]         |         
    0x000024b2 ldr.w r2, [pc, 0x454]         |         
    0x000024b6 ldr.w r0, [pc, 0x408]         |         r0 = *(0x28c2);
    0x000024ba add r3, pc                    |         r3 = 0x4dc4;
    0x000024bc add r2, pc                    |         r2 = 0x4dca;
    0x000024be b 0x227a                      |         goto label_18;
    0x000024c0 add r3, sp, 0x180             |         r3 += arg_180h;
    0x000024c2 ldr r1, [r6, r7]              |         r1 = *((r6 + r7));
    0x000024c4 mov r0, r3                    |         r0 = r3;
    0x000024c6 str r3, [sp, 0x70]            |         *(arg_70h) = r3;
    0x000024c8 blx 0x1294                    |         fcn_00001294 ();
    0x000024cc ldr.w r1, [sb, 8]             |         r1 = *((sb + 8));
    0x000024d0 add.w sb, sp, 0x190           |         sb += arg_190h;
    0x000024d4 mov r0, sb                    |         r0 = sb;
    0x000024d6 add r7, sp, 8                 |         r7 += arg_0h;
    0x000024d8 blx 0x1294                    |         r0 = fcn_00001294 ();
    0x000024dc ldm.w sb, {r0, r1, r2, r3}    |         r0 = *(sb);
                                             |         r1 = *((sb + 4));
                                             |         r2 = *((sb + 8));
                                             |         r3 = *((sb + 12));
    0x000024e0 add.w ip, sp, 0x18            |         
    0x000024e4 add r5, sp, 0x80              |         r5 += arg_80h;
    0x000024e6 stm.w ip, {r0, r1, r2, r3}    |         *(ip) = r0;
                                             |         *((ip + 4)) = r1;
                                             |         *((ip + 8)) = r2;
                                             |         *((ip + 12)) = r3;
                                             | label_25:
    0x000024e8 movs r7, r1                   |         r7 = r1;
    0x000024ea ldr r3, [sp, 0x70]            |         r3 = *(arg_70h);
    0x000024ec ldm r3, {r0, r1, r2, r3}      |         r0 = *(r3);
                                             |         r1 = *((r3 + 4));
                                             |         r2 = *((r3 + 8));
                                             |         r3 = *((r3 + 12));
    0x000024ee stm.w r7, {r0, r1, r2, r3}    |         *(r7) = r0;
                                             |         *((r7 + 4)) = r1;
                                             |         *((r7 + 8)) = r2;
                                             |         *((r7 + 12)) = r3;
    0x000024f2 ldr r3, [sp, 0x58]            |         r3 = *(arg_58h);
                                             | label_20:
    0x000024f4 ldm.w r3, {r0, r1}            |         r0 = *(r3);
                                             |         r1 = *((r3 + 4));
    0x000024f8 ldr r7, [sp, 0x4c]            |         r7 = *(arg_4ch);
    0x000024fa stm.w sp, {r0, r1}            |         *(sp) = r0;
                                             |         *((sp + 4)) = r1;
    0x000024fe mov r0, r5                    |         r0 = r5;
    0x00002500 ldrd r2, r3, [r7]             |         __asm ("ldrd r2, r3, [r7]");
    0x00002504 blx 0x114c                    |         r0 = jv_object_set ();
    0x00002508 ldm.w r5, {r0, r1, r2, r3}    |         r0 = *(r5);
                                             |         r1 = *((r5 + 4));
                                             |         r2 = *((r5 + 8));
                                             |         r3 = *((r5 + 12));
    0x0000250c stm.w r7, {r0, r1, r2, r3}    |         *(r7) = r0;
                                             |         *((r7 + 4)) = r1;
                                             |         *((r7 + 8)) = r2;
                                             |         *((r7 + 12)) = r3;
    0x00002510 b 0x242c                      |         
                                             |     }
                                             | label_82:
    0x00002512 add.w r8, sp, 0x1c0           |     r8 += arg_1c0h;
    0x00002516 ldr r1, [r6, r7]              |     r1 = *((r6 + r7));
    0x00002518 mov r0, r8                    |     r0 = r8;
    0x0000251a add r7, sp, 8                 |     r7 += arg_0h;
    0x0000251c blx 0x1294                    |     r0 = fcn_00001294 ();
    0x00002520 ldm.w sb, {r0, r1, r2, r3}    |     r0 = *(sb);
                                             |     r1 = *((sb + 4));
                                             |     r2 = *((sb + 8));
                                             |     r3 = *((sb + 12));
    0x00002524 add.w ip, sp, 0x18            |     
    0x00002528 add r5, sp, 0x80              |     r5 += arg_80h;
    0x0000252a stm.w ip, {r0, r1, r2, r3}    |     *(ip) = r0;
                                             |     *((ip + 4)) = r1;
                                             |     *((ip + 8)) = r2;
                                             |     *((ip + 12)) = r3;
    0x0000252e ldm.w r8, {r0, r1, r2, r3}    |     r0 = *(r8);
                                             |     r1 = *((r8 + 4));
                                             |     r2 = *((r8 + 8));
                                             |     r3 = *((r8 + 12));
    0x00002532 stm.w r7, {r0, r1, r2, r3}    |     *(r7) = r0;
                                             |     *((r7 + 4)) = r1;
                                             |     *((r7 + 8)) = r2;
                                             |     *((r7 + 12)) = r3;
    0x00002536 ldr r3, [sp, 0x58]            |     r3 = *(arg_58h);
    0x00002538 ldr r7, [sp, 0x4c]            |     r7 = *(arg_4ch);
    0x0000253a ldm.w r3, {r0, r1}            |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
    0x0000253e stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00002542 mov r0, r5                    |     r0 = r5;
    0x00002544 ldrd r2, r3, [r7]             |     __asm ("ldrd r2, r3, [r7]");
    0x00002548 blx 0x114c                    |     r0 = jv_object_set ();
    0x0000254c ldm.w r5, {r0, r1, r2, r3}    |     r0 = *(r5);
                                             |     r1 = *((r5 + 4));
                                             |     r2 = *((r5 + 8));
                                             |     r3 = *((r5 + 12));
    0x00002550 stm.w r7, {r0, r1, r2, r3}    |     *(r7) = r0;
                                             |     *((r7 + 4)) = r1;
                                             |     *((r7 + 8)) = r2;
                                             |     *((r7 + 12)) = r3;
                                             | label_81:
    0x00002554 adds r4, 2                    |     r4 += 2;
    0x00002556 mov.w r8, 0                   |     r8 = 0;
    0x0000255a b.w 0x1436                    |     goto label_2;
                                             | label_80:
    0x0000255e ldr r3, [pc, 0x3ac]           |     
    0x00002560 ldr r2, [pc, 0x3ac]           |     
    0x00002562 ldr r0, [pc, 0x35c]           |     r0 = *(0x28c2);
    0x00002564 add r3, pc                    |     r3 = 0x4e76;
    0x00002566 add r2, pc                    |     r2 = 0x4e7a;
    0x00002568 b 0x227a                      |     goto label_18;
                                             | label_79:
    0x0000256a ldr r2, [pc, 0x3a8]           |     
    0x0000256c mov r1, r0                    |     r1 = r0;
    0x0000256e mov r3, fp                    |     r3 = fp;
    0x00002570 mov r0, r5                    |     r0 = r5;
    0x00002572 add r2, pc                    |     r2 = 0x4e8c;
    0x00002574 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |     if (r0 == 0) {
    0x00002578 cbnz r0, 0x258c               |         
    0x0000257a ldr r2, [pc, 0x39c]           |         
    0x0000257c mov r3, fp                    |         r3 = fp;
    0x0000257e mov r1, r8                    |         r1 = r8;
    0x00002580 mov r0, r5                    |         r0 = r5;
    0x00002582 add r2, pc                    |         r2 = 0x4ea0;
    0x00002584 bl 0x304c                     |         r0 = fcn_0000304c (r0, r1, r2, r3);
    0x00002588 cmp r0, 0                     |         
                                             |         if (r0 == 0) {
    0x0000258a beq 0x266a                    |             goto label_83;
                                             |         }
                                             |     }
                                             | label_21:
    0x0000258c ldr.w sb, [pc, 0x38c]         |     
    0x00002590 movs r1, 0                    |     r1 = 0;
    0x00002592 ldr r3, [pc, 0x38c]           |     
    0x00002594 mov r0, r5                    |     r0 = r5;
    0x00002596 add sb, pc                    |     sb = 0x4eb6;
    0x00002598 add r3, pc                    |     r3 = 0x4ebe;
    0x0000259a mov r2, sb                    |     r2 = sb;
    0x0000259c str r3, [sp, 0x58]            |     *(arg_58h) = r3;
    0x0000259e mov r3, fp                    |     r3 = fp;
    0x000025a0 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
    0x000025a4 mov r3, r0                    |     r3 = r0;
    0x000025a6 ldr r2, [sp, 0x58]            |     r2 = *(arg_58h);
    0x000025a8 str r3, [sp, 0x70]            |     *(arg_70h) = r3;
    0x000025aa mov r0, r5                    |     r0 = r5;
    0x000025ac mov r3, fp                    |     r3 = fp;
    0x000025ae movs r1, 0                    |     r1 = 0;
    0x000025b0 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |     if (r0 == 0) {
    0x000025b4 cbnz r0, 0x25c2               |         
    0x000025b6 ldr r3, [sp, 0x70]            |         r3 = *(arg_70h);
    0x000025b8 cmp r3, 0                     |         
                                             |         if (r3 != 0) {
    0x000025ba bne 0x26a6                    |             goto label_84;
                                             |         }
    0x000025bc ldr r3, [pc, 0x364]           |         
    0x000025be add r3, pc                    |         r3 = 0x4ee6;
    0x000025c0 str r3, [sp, 0x58]            |         *(arg_58h) = r3;
                                             |     }
                                             | label_22:
    0x000025c2 sub.w r3, sl, 2               |     r3 = sl - 2;
    0x000025c6 cmp r3, r4                    |     
                                             |     if (r3 <= r4) {
    0x000025c8 ble.w 0x2726                  |         goto label_85;
                                             |     }
    0x000025cc add r3, sp, 0xb8              |     r3 += arg_b8h;
    0x000025ce adds r2, r7, 4                |     r2 = r7 + 4;
    0x000025d0 ldm.w r3, {r0, r1}            |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
    0x000025d4 add r5, sp, 0x1d0             |     r5 += arg_1d0h;
    0x000025d6 str r3, [sp, 0x78]            |     *(arg_78h) = r3;
    0x000025d8 ldr r3, [sp, 0x4c]            |     r3 = *(arg_4ch);
    0x000025da stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x000025de mov r0, r5                    |     r0 = r5;
    0x000025e0 str r2, [sp, 0x74]            |     *(arg_74h) = r2;
    0x000025e2 ldm r3, {r2, r3}              |     r2 = *(r3);
                                             |     r3 = *((r3 + 4));
    0x000025e4 blx 0x1098                    |     jv_copy ();
    0x000025e8 adds r2, r7, 4                |     r2 = r7 + 4;
    0x000025ea add r0, sp, 0x1e0             |     r0 += arg_1e0h;
    0x000025ec ldr r1, [r6, r2]              |     r1 = *((r6 + r2));
    0x000025ee str r0, [sp, 0x7c]            |     *(arg_7ch) = r0;
    0x000025f0 blx 0x1294                    |     fcn_00001294 ();
    0x000025f4 ldr r0, [sp, 0x7c]            |     r0 = *(arg_7ch);
    0x000025f6 ldm r0, {r0, r1, r2, r3}      |     r0 = *(r0);
                                             |     r1 = *((r0 + 4));
                                             |     r2 = *((r0 + 8));
                                             |     r3 = *((r0 + 12));
    0x000025f8 stm.w sp, {r0, r1, r2, r3}    |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
                                             |     *((sp + 8)) = r2;
                                             |     *((sp + 12)) = r3;
    0x000025fc ldm.w r5, {r0, r1, r2, r3}    |     r0 = *(r5);
                                             |     r1 = *((r5 + 4));
                                             |     r2 = *((r5 + 8));
                                             |     r3 = *((r5 + 12));
    0x00002600 blx 0x12a0                    |     r0 = fcn_000012a0 ();
    0x00002604 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x00002606 bne.w 0x242c                  |         goto label_19;
                                             |     }
    0x00002608 add r7, sp, 0x44              |     r7 = sp + 0x44;
    0x0000260a add.w sb, sp, 0x420           |     sb += arg_420h;
    0x0000260e adds r7, 8                    |     r7 += 8;
    0x00002610 ldr r2, [sp, 0x70]            |     r2 = *(arg_70h);
    0x00002612 mov r0, sb                    |     r0 = sb;
    0x00002614 ldr r1, [r6, r7]              |     r1 = *((r6 + r7));
    0x00002616 add.w r5, sp, 0x430           |     r5 += arg_430h;
    0x0000261a blx 0xffc                     |     r0 = jv_load_file ();
    0x0000261e ldm.w sb, {r0, r1, r2, r3}    |     r0 = *(sb);
                                             |     r1 = *((sb + 4));
                                             |     r2 = *((sb + 8));
                                             |     r3 = *((sb + 12));
    0x00002622 stm.w r5, {r0, r1, r2, r3}    |     *(r5) = r0;
                                             |     *((r5 + 4)) = r1;
                                             |     *((r5 + 8)) = r2;
                                             |     *((r5 + 12)) = r3;
    0x00002626 blx 0x1128                    |     r0 = jv_get_kind ();
    0x0000262a cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x0000262c beq 0x26ac                    |         goto label_86;
                                             |     }
    0x0000262e ldr r1, [pc, 0x2f8]           |     
    0x00002630 ldr r0, [sp, 0x58]            |     r0 = *(arg_58h);
    0x00002632 add r1, pc                    |     r1 = 0x4f60;
    0x00002634 blx 0x12ac                    |     fcn_000012ac ();
    0x00002636 cdp p6, 3, c4, c10, c7, 0     |     __asm ("cdp p6, 3, c4, c10, c7, 0");
    0x0000263a cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x0000263c beq.w 0x2748                  |         goto label_87;
                                             |     }
                                             | label_23:
    0x00002640 add r5, sp, 0x80              |     r5 += arg_80h;
                                             | label_24:
    0x00002642 ldr r3, [sp, 0x74]            |     r3 = *(arg_74h);
    0x00002644 add r7, sp, 8                 |     r7 += arg_0h;
    0x00002646 ldr r1, [r6, r3]              |     r1 = *((r6 + r3));
    0x00002648 add r3, sp, 0x200             |     r3 += arg_200h;
    0x0000264a mov r0, r3                    |     r0 = r3;
    0x0000264c str r3, [sp, 0x58]            |     *(arg_58h) = r3;
    0x0000264e blx 0x1294                    |     r0 = fcn_00001294 ();
    0x00002652 ldm.w sb, {r0, r1, r2, r3}    |     r0 = *(sb);
                                             |     r1 = *((sb + 4));
                                             |     r2 = *((sb + 8));
                                             |     r3 = *((sb + 12));
    0x00002656 add.w ip, sp, 0x18            |     
    0x0000265a stm.w ip, {r0, r1, r2, r3}    |     *(ip) = r0;
                                             |     *((ip + 4)) = r1;
                                             |     *((ip + 8)) = r2;
                                             |     *((ip + 12)) = r3;
    0x0000265e ldr r3, [sp, 0x58]            |     r3 = *(arg_58h);
    0x00002660 ldm r3, {r0, r1, r2, r3}      |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
                                             |     r2 = *((r3 + 8));
                                             |     r3 = *((r3 + 12));
    0x00002662 stm.w r7, {r0, r1, r2, r3}    |     *(r7) = r0;
                                             |     *((r7 + 4)) = r1;
                                             |     *((r7 + 8)) = r2;
                                             |     *((r7 + 12)) = r3;
    0x00002666 ldr r3, [sp, 0x78]            |     r3 = *(arg_78h);
    0x00002668 b 0x24f4                      |     goto label_20;
                                             | label_83:
    0x0000266a ldr r2, [pc, 0x2c0]           |     
    0x0000266c mov r3, fp                    |     r3 = fp;
    0x0000266e mov r1, r8                    |     r1 = r8;
    0x00002670 mov r0, r5                    |     r0 = r5;
    0x00002672 add r2, pc                    |     r2 = 0x4fa4;
    0x00002674 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
    0x00002678 mov sb, r0                    |     sb = r0;
    0x0000267a cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x0000267c bne 0x258c                    |         goto label_21;
                                             |     }
    0x0000267e ldr r2, [pc, 0x2b0]           |     
    0x00002680 mov r1, r8                    |     r1 = r8;
    0x00002682 mov r3, fp                    |     r3 = fp;
    0x00002684 mov r0, r5                    |     r0 = r5;
    0x00002686 add r2, pc                    |     r2 = 0x4fbc;
    0x00002688 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
    0x0000268c mov r8, r0                    |     r8 = r0;
    0x0000268e cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00002690 beq.w 0x279c                  |         goto label_88;
                                             |     }
    0x00002694 ldr r2, [pc, 0x29c]           |     
    0x00002696 mov r8, sb                    |     r8 = sb;
    0x00002698 add r2, pc                    |     r2 = 0x4fd0;
    0x0000269a ldr r3, [r2, 4]               |     r3 = *(0x4fd4);
    0x0000269c orr r3, r3, 0x10000           |     r3 |= 0x10000;
    0x000026a0 str r3, [r2, 4]               |     *((r2 + 4)) = r3;
    0x000026a2 b.w 0x1436                    |     goto label_2;
                                             | label_84:
    0x000026a6 str.w sb, [sp, 0x58]          |     __asm ("str.w sb, [arg_58h]");
    0x000026aa b 0x25c2                      |     goto label_22;
                                             | label_86:
    0x000026ac ldr.w r1, [sp, 0x42c]         |     r1 = *(arg_42ch);
    0x000026b0 add r4, sp, 0x80              |     r4 += arg_80h;
    0x000026b2 ldr.w r0, [sp, 0x428]         |     r0 = *(arg_428h);
    0x000026b6 mov r3, sb                    |     r3 = sb;
    0x000026b8 str r3, [sp, 0x2c]            |     *(arg_2ch) = r3;
    0x000026ba mov r5, r7                    |     r5 = r7;
    0x000026bc ldr.w sb, [sp, 0x40]          |     sb = *(arg_40h);
    0x000026c0 mov.w r7, -1                  |     r7 = -1;
    0x000026c4 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x000026c8 mov r0, r4                    |     r0 = r4;
    0x000026ca ldm r3, {r2, r3}              |     r2 = *(r3);
                                             |     r3 = *((r3 + 4));
    0x000026cc mov.w r8, 2                   |     r8 = 2;
    0x000026d0 blx 0x1038                    |     jv_invalid_get_msg ();
    0x000026d4 ldr r3, [pc, 0x260]           |     
    0x000026d6 ldr r2, [sp, 0x74]            |     r2 = *(arg_74h);
    0x000026d8 ldr.w ip, [pc, 0x1e4]         |     ip = *(0x28c0);
    0x000026dc add r3, pc                    |     r3 = 0x5018;
    0x000026de ldr.w sl, [r6, r2]            |     sl = *((r6 + r2));
    0x000026e2 ldr r6, [r6, r5]              |     r6 = *((r6 + r5));
    0x000026e4 ldr r5, [r3]                  |     r5 = imp.__aeabi_unwind_cpp_pr0;
    0x000026e6 ldm.w r4, {r0, r1, r2, r3}    |     r0 = *(r4);
                                             |     r1 = *((r4 + 4));
                                             |     r2 = *((r4 + 8));
                                             |     r3 = *((r4 + 12));
    0x000026ea ldr r4, [sp, 0x2c]            |     r4 = *(arg_2ch);
    0x000026ec stm.w r4, {r0, r1, r2, r3}    |     *(r4) = r0;
                                             |     *((r4 + 4)) = r1;
                                             |     *((r4 + 8)) = r2;
                                             |     *((r4 + 12)) = r3;
    0x000026f0 ldr r2, [sp, 0x48]            |     r2 = *(nitems);
    0x000026f2 ldr.w r3, [r2, ip]            |     r3 = *((r2 + ip));
    0x000026f6 ldr r4, [r3]                  |     r4 = imp.__aeabi_unwind_cpp_pr0;
    0x000026f8 ldr r3, [sp, 0x2c]            |     r3 = *(arg_2ch);
    0x000026fa ldm r3, {r0, r1, r2, r3}      |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
                                             |     r2 = *((r3 + 8));
                                             |     r3 = *((r3 + 12));
    0x000026fc blx 0x10a4                    |     jv_string_value ();
    0x00002700 ldr r2, [sp, 0x58]            |     r2 = *(arg_58h);
    0x00002702 mov r3, r5                    |     r3 = r5;
    0x00002704 strd r6, r0, [sp, 8]          |     __asm ("strd r6, r0, [sp, 8]");
    0x00002708 movs r1, 1                    |     r1 = 1;
    0x0000270a mov r0, r4                    |     r0 = r4;
    0x0000270c str.w sl, [sp, 4]             |     __asm ("str.w sl, [var_4h]");
    0x00002710 str r2, [sp]                  |     *(sp) = r2;
    0x00002712 ldr r2, [pc, 0x228]           |     
    0x00002714 add r2, pc                    |     r2 = 0x5056;
    0x00002716 blx 0x11f4                    |     fprintf_chk ()
    0x00002718 invalid                       |     
    0x0000271c ldm r3, {r0, r1, r2, r3}      |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
                                             |     r2 = *((r3 + 8));
                                             |     r3 = *((r3 + 12));
    0x0000271e blx 0x1240                    |     fcn_00001240 ();
    0x00002722 b.w 0x1950                    |     goto label_13;
                                             | label_85:
    0x00002726 ldr r1, [pc, 0x198]           |     r1 = *(0x28c2);
    0x00002728 ldr r0, [sp, 0x48]            |     r0 = *(nitems);
    0x0000272a ldr r3, [pc, 0x214]           |     
    0x0000272c ldr r2, [pc, 0x214]           |     
    0x0000272e ldr r0, [r0, r1]              |     r0 = *((r0 + r1));
    0x00002730 ldr r1, [sp, 0x58]            |     r1 = *(arg_58h);
    0x00002732 add r3, pc                    |     
    0x00002734 ldr r3, [r3]                  |     r3 = imp.__aeabi_unwind_cpp_pr0;
    0x00002736 add r2, pc                    |     r2 = 0x507e;
    0x00002738 strd r1, r1, [sp]             |     __asm ("strd r1, r1, [sp]");
    0x0000273c movs r1, 1                    |     r1 = 1;
    0x0000273e ldr r0, [r0]                  |     r0 = *(r0);
    0x00002740 blx 0x11f4                    |     fprintf_chk ()
    0x00002744 bl 0x2a6c                     |     r0 = fcn_00002a6c ();
                                             | label_87:
    0x00002748 ldm.w sb, {r0, r1, r2, r3}    |     r0 = *(sb);
                                             |     r1 = *((sb + 4));
                                             |     r2 = *((sb + 8));
                                             |     r3 = *((sb + 12));
    0x0000274c blx 0x1128                    |     r0 = jv_get_kind ();
    0x00002750 cmp r0, 6                     |     
                                             |     if (r0 != 6) {
    0x00002752 bne.w 0x2640                  |         goto label_23;
                                             |     }
    0x00002756 add.w r5, sp, 0x428           |     r5 += arg_428h;
    0x0000275a ldm.w r5, {r0, r1}            |     r0 = *(r5);
                                             |     r1 = *((r5 + 4));
    0x0000275e stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00002762 add r0, sp, 0x1f0             |     r0 += arg_1f0h;
    0x00002764 ldm.w sb, {r2, r3}            |     r2 = *(sb);
                                             |     r3 = *((sb + 4));
    0x00002766 movs r4, r1                   |     r4 = r1;
    0x00002768 str r0, [sp, 0x58]            |     *(arg_58h) = r0;
    0x0000276a blx 0x1098                    |     jv_copy ();
    0x0000276e ldr r0, [sp, 0x58]            |     r0 = *(arg_58h);
    0x00002770 ldm r0, {r0, r1, r2, r3}      |     r0 = *(r0);
                                             |     r1 = *((r0 + 4));
                                             |     r2 = *((r0 + 8));
                                             |     r3 = *((r0 + 12));
    0x00002772 blx 0x12c4                    |     r0 = fcn_000012c4 ();
    0x00002776 cmp r0, 1                     |     
                                             |     if (r0 != 1) {
    0x00002778 bne.w 0x2640                  |         goto label_23;
                                             |     }
    0x0000277c str r7, [sp, 8]               |     *(arg_0h) = r7;
    0x0000277e ldm.w r5, {r0, r1}            |     r0 = *(r5);
                                             |     r1 = *((r5 + 4));
    0x00002782 add r5, sp, 0x80              |     r5 += arg_80h;
    0x00002784 stm.w sp, {r0, r1}            |     *(sp) = r0;
                                             |     *((sp + 4)) = r1;
    0x00002788 mov r0, r5                    |     r0 = r5;
    0x0000278a ldm.w sb, {r2, r3}            |     r2 = *(sb);
                                             |     r3 = *((sb + 4));
    0x0000278e blx 0x130c                    |     r0 = fcn_0000130c ();
    0x00002792 ldm.w r5, {r0, r1, r2, r3}    |     r0 = *(r5);
                                             |     r1 = *((r5 + 4));
                                             |     r2 = *((r5 + 8));
                                             |     r3 = *((r5 + 12));
    0x00002796 stm.w sb, {r0, r1, r2, r3}    |     *(sb) = r0;
                                             |     *((sb + 4)) = r1;
                                             |     *((sb + 8)) = r2;
                                             |     *((sb + 12)) = r3;
    0x0000279a b 0x2642                      |     goto label_24;
                                             | label_88:
    0x0000279c ldr r2, [pc, 0x1a8]           |     
    0x0000279e mov r1, r0                    |     r1 = r0;
    0x000027a0 mov r3, fp                    |     r3 = fp;
    0x000027a2 mov r0, r5                    |     r0 = r5;
    0x000027a4 add r2, pc                    |     r2 = 0x50f0;
    0x000027a6 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
                                             |     if (r0 != 0) {
    0x000027aa cbz r0, 0x27b6                |         
    0x000027ac ldr.w r3, [fp]                |         r3 = *(fp);
                                             |         if (r3 == 0) {
    0x000027b0 cbz r3, 0x27d4                |             goto label_89;
                                             |         }
    0x000027b2 movs r3, 3                    |         r3 = 3;
    0x000027b4 str r3, [sp, 0x68]            |         *(arg_68h) = r3;
                                             |     }
    0x000027b6 ldr r2, [pc, 0x194]           |     
    0x000027b8 mov r3, fp                    |     r3 = fp;
    0x000027ba movs r1, 0                    |     r1 = 0;
    0x000027bc mov r0, r5                    |     r0 = r5;
    0x000027be add r2, pc                    |     r2 = 0x5110;
    0x000027c0 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
    0x000027c4 mov sb, r0                    |     sb = r0;
                                             |     if (r0 != 0) {
    0x000027c6 cbz r0, 0x27dc                |         
    0x000027c8 ldr r3, [sp, 0x68]            |         r3 = *(arg_68h);
    0x000027ca orr r3, r3, 1                 |         r3 |= 1;
    0x000027ce str r3, [sp, 0x68]            |         *(arg_68h) = r3;
    0x000027d0 b.w 0x1436                    |         goto label_2;
                                             | label_89:
    0x000027d4 movs r3, 3                    |         r3 = 3;
    0x000027d6 str r3, [sp, 0x68]            |         *(arg_68h) = r3;
    0x000027d8 b.w 0x1436                    |         goto label_2;
                                             |     }
    0x000027dc ldr r2, [pc, 0x170]           |     
    0x000027de mov r3, fp                    |     r3 = fp;
    0x000027e0 movs r1, 0x68                 |     r1 = 0x68;
    0x000027e2 mov r0, r5                    |     r0 = r5;
    0x000027e4 add r2, pc                    |     r2 = 0x5138;
    0x000027e6 bl 0x304c                     |     fcn_0000304c (r0, r1, r2, r3);
    0x000027e8 ldc2 p6, c4, [r1], -0x200     |     __asm ("ldc2 p6, c4, [r1], -0x200");
                                             |     if (r0 != 0) {
    0x000027ec cbnz r0, 0x2842               |         goto label_90;
                                             |     }
    0x000027ee ldr r2, [pc, 0x164]           |     
    0x000027f0 movs r1, 0x56                 |     r1 = 0x56;
    0x000027f2 mov r3, fp                    |     r3 = fp;
    0x000027f4 mov r0, r5                    |     r0 = r5;
    0x000027f6 add r2, pc                    |     r2 = 0x5150;
    0x000027f8 bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
    0x000027fc mov r1, r0                    |     r1 = r0;
    0x000027fe cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x00002800 bne 0x2882                    |         goto label_91;
                                             |     }
    0x00002802 ldr r2, [pc, 0x154]           |     
    0x00002804 mov r3, fp                    |     r3 = fp;
    0x00002806 mov r0, r5                    |     r0 = r5;
    0x00002808 add r2, pc                    |     r2 = 0x5166;
    0x0000280a bl 0x304c                     |     r0 = fcn_0000304c (r0, r1, r2, r3);
    0x0000280e mov r8, r0                    |     r8 = r0;
                                             |     if (r0 != 0) {
    0x00002810 cbnz r0, 0x284a               |         goto label_92;
                                             |     }
    0x00002812 mov r0, r5                    |     r0 = r5;
    0x00002814 blx 0x1134                    |     strlen (r0);
    0x00002816 stc p8, c15, [lr], {0xdb}     |     __asm ("stc p8, c15, [lr], {0xdb}");
    0x0000281a adds r0, 0                    |     r0 += 0;
    0x0000281c adds r3, 1                    |     r3++;
    0x0000281e cmp r0, r3                    |     
                                             |     if (r0 == r3) {
    0x00002820 beq.w 0x1436                  |         goto label_2;
                                             |     }
    0x00002824 ldr r1, [pc, 0x98]            |     r1 = *(0x28c0);
    0x00002826 ldr r0, [sp, 0x48]            |     r0 = *(nitems);
    0x00002828 ldr r3, [pc, 0x130]           |     
    0x0000282a ldr r2, [pc, 0x134]           |     
    0x0000282c ldr r0, [r0, r1]              |     r0 = *((r0 + r1));
    0x0000282e movs r1, 1                    |     r1 = 1;
    0x00002830 add r3, pc                    |     
    0x00002832 ldr r3, [r3]                  |     r3 = *(0x5190);
    0x00002834 add r2, pc                    |     r2 = 0x519a;
    0x00002836 str r5, [sp]                  |     *(sp) = r5;
    0x00002838 ldr r0, [r0]                  |     r0 = *(r0);
    0x0000283a blx 0x11f4                    |     fprintf_chk ()
    0x0000283e bl 0x2a6c                     |     fcn_00002a6c ();
                                             | label_90:
    0x00002842 mov r1, sb                    |     r1 = sb;
    0x00002844 mov r0, sb                    |     r0 = sb;
    0x00002846 bl 0x2ab4                     |     fcn_00002ab4 (r0, r1);
                                             | label_92:
    0x0000284a ldr r2, [pc, 0x118]           |     
    0x0000284c adds r3, r4, 1                |     r3 = r4 + 1;
    0x0000284e sub.w r3, sl, r3              |     r3 = sl - r3;
    0x00002850 lsls r3, r0, 0xc              |     r3 = r0 << 0xc;
    0x00002852 ldr.w sb, [sp, 0x40]          |     sb = *(arg_40h);
    0x00002856 add r2, pc                    |     
    0x00002858 ldr r2, [r2, 4]               |     r2 = *(0x51c4);
    0x0000285a lsls r2, r2, 0xf              |     r2 <<= 0xf;
    0x0000285c itet pl                       |     
                                             |     if (r2 < r2) {
    0x0000285e ldrpl r2, [sp, 0x68]          |         r2 = *(arg_68h);
                                             |     }
                                             |     if (r2 >= r2) {
    0x00002860 movmi r2, 1                   |         r2 = 1;
                                             |     }
                                             |     if (r2 < r2) {
    0x00002862 andpl r2, r2, 1               |         r2 &= 1;
                                             |     }
    0x00002866 strd r2, r3, [sp]             |     __asm ("strd r2, r3, [sp]");
    0x0000286a adds r3, r7, 4                |     r3 = r7 + 4;
    0x0000286c add r3, r6                    |     r3 += r6;
    0x0000286e mov.w r7, -1                  |     r7 = -1;
    0x00002872 str r3, [sp, 8]               |     *(arg_0h) = r3;
    0x00002874 ldr r3, [sp, 0x54]            |     r3 = *(arg_54h);
    0x00002876 ldm r3, {r0, r1, r2, r3}      |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
                                             |     r2 = *((r3 + 8));
                                             |     r3 = *((r3 + 12));
    0x00002878 blx 0x1228                    |     r0 = fcn_00001228 ();
    0x0000287c mov r8, r0                    |     r8 = r0;
    0x0000287e b.w 0x1950                    |     goto label_13;
                                             | label_91:
    0x00002882 ldr r2, [pc, 0xe4]            |     
    0x00002884 movs r0, 1                    |     r0 = 1;
    0x00002886 ldr r1, [pc, 0xe4]            |     
    0x00002888 mov.w r7, -1                  |     r7 = -1;
    0x0000288c ldr.w sb, [sp, 0x40]          |     sb = *(arg_40h);
    0x00002890 add r2, pc                    |     r2 = 0x51fe;
    0x00002892 add r1, pc                    |     r1 = 0x5204;
    0x00002894 blx 0x1068                    |     printf_chk ();
    0x00002898 b.w 0x1950                    |     goto label_13;
    0x000029a4 adds r0, 0x14                 |     r0 += 0x14;
    0x000029a6 b 0x24e8                      |     goto label_25;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/jq @ 0x2a6c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00002a6c ()                  | void fcn_00002a6c () {
    0x00002a6c push {r3, lr}                 |     
    0x00002a6e movs r1, 1                    |     r1 = 1;
    0x00002a70 ldr r3, [pc, 0x2c]            |     
    0x00002a72 ldr.w ip, [pc, 0x30]          |     ip = *(0x2aa6);
    0x00002a76 add r3, pc                    |     r3 = 0x551a;
    0x00002a78 ldr r0, [pc, 0x2c]            |     
    0x00002a7a ldr r2, [pc, 0x30]            |     
    0x00002a7c ldr.w r4, [r3, ip]            |     r4 = *(0x551a);
    0x00002a80 add r0, pc                    |     r0 = 0x552c;
    0x00002a82 ldr r3, [r0]                  |     r3 = *(0x552c);
    0x00002a84 add r2, pc                    |     r2 = 0x5536;
    0x00002a86 ldr r0, [r4]                  |     r0 = *(0x551a);
    0x00002a88 blx 0x11f4                    |     fprintf_chk ()
    0x00002a8c ldr r0, [pc, 0x20]            |     
    0x00002a8e movs r2, 0x48                 |     r2 = 0x48;
    0x00002a90 ldr r3, [r4]                  |     r3 = *(0x551a);
    0x00002a92 movs r1, 1                    |     r1 = 1;
    0x00002a94 add r0, pc                    |     r0 = 0x5548;
    0x00002a96 blx 0x1188                    |     fwrite (r0, r1, r2, r3);
    0x00002a9a movs r0, 2                    |     r0 = 2;
    0x00002a9c blx 0x12b8                    |     fcn_000012b8 ();
    0x00002aa0 movs r4, 0x2e                 |     r4 = 0x2e;
    0x00002aa2 movs r0, r0                   |     
    0x00002aa4 lsls r4, r1, 5                |     r4 = r1 << 5;
    0x00002aa6 movs r0, r0                   |     
    0x00002aa8 movs r5, 0x88                 |     r5 = 0x88;
    0x00002aaa movs r0, r0                   |     
    0x00002aac lsls r0, r6, 0x1a             |     r0 = r6 << 0x1a;
    0x00002aae movs r0, r0                   |     
    0x00002ab0 lsls r4, r2, 0x1b             |     r4 = r2 << 0x1b;
    0x00002ab2 movs r0, r0                   |     
                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/jq @ 0x2ab4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00002ab4 ()                              | void fcn_00002ab4 (int16_t arg1, int16_t arg2) {
                                                         |     int16_t var_0h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00002ab4 blmi 0x7d5334                             |     __asm ("blmi aav.0x000023e6");
    0x00002ab8 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x00002abc mov r6, r1                                |     r6 = r1;
    0x00002abe add r2, pc                                |     r2 += pc;
    0x00002ac0 sub sp, 0x10                              |     
    0x00002ac2 mov r4, r0                                |     r4 = r0;
    0x00002ac4 ldr r3, [r2, r3]                          |     r3 = *((r2 + r3));
    0x00002ac6 ldr r7, [r3]                              |     r7 = *(r3);
                                                         |     if (r0 == 0) {
    0x00002ac8 cbnz r0, 0x2ad0                           |         
    0x00002aca ldr r3, [pc, 0x6c]                        |         r3 = *(0x2b3a);
    0x00002acc ldr r3, [r2, r3]                          |         r3 = *((r2 + r3));
    0x00002ace ldr r7, [r3]                              |         r7 = *(0x2b3a);
                                                         |     }
    0x00002ad0 ldr.w r8, [pc, 0x68]                      |     
    0x00002ad4 movs r1, 1                                |     r1 = 1;
    0x00002ad6 ldr r2, [pc, 0x68]                        |     
    0x00002ad8 mov r0, r7                                |     r0 = r7;
    0x00002ada add r8, pc                                |     r8 = 0x561a;
    0x00002adc ldr.w r3, [r8]                            |     r3 = *(0x561a);
    0x00002ae0 add r2, pc                                |     r2 = 0x5626;
    0x00002ae2 strd r3, r3, [sp, 4]                      |     __asm ("strd r3, r3, [sp, 4]");
    0x00002ae6 str r3, [sp]                              |     *(sp) = r3;
    0x00002ae8 ldr r3, [pc, 0x58]                        |     
    0x00002aea add r3, pc                                |     r3 = 0x5632;
    0x00002aec blx 0x11f4                                |     r0 = fprintf_chk ()
    0x00002af0 mov r5, r0                                |     r5 = r0;
                                                         |     if (r6 == 0) {
    0x00002af2 cbz r6, 0x2b1e                            |         goto label_0;
                                                         |     }
    0x00002af4 ldr r2, [pc, 0x50]                        |     
    0x00002af6 mov r0, r7                                |     r0 = r7;
    0x00002af8 ldr.w r3, [r8]                            |     r3 = *(r8);
    0x00002afc movs r1, 1                                |     r1 = 1;
    0x00002afe add r2, pc                                |     r2 = 0x564a;
    0x00002b00 blx 0x11f4                                |     fprintf_chk ()
                                                         |     do {
    0x00002b04 subs r3, r4, 0                            |         r3 = r4 - 0;
    0x00002b06 it ne                                     |         
                                                         |         if (r3 == r4) {
    0x00002b08 movne r3, 1                               |             r3 = 1;
                                                         |         }
    0x00002b0a cmp r5, 0                                 |         
    0x00002b0c it ge                                     |         
                                                         |         if (r5 < 0) {
    0x00002b0e orrge r3, r3, 1                           |             r3 |= 1;
                                                         |         }
    0x00002b12 cmp r3, 0                                 |         
    0x00002b14 ite ne                                    |         
                                                         |         if (r3 == 0) {
    0x00002b16 movne r0, r4                              |             r0 = r4;
                                                         |         }
                                                         |         if (r3 != 0) {
    0x00002b18 moveq r0, 2                               |             r0 = 2;
                                                         |         }
    0x00002b1a blx 0x12b8                                |         fcn_000012b8 ();
                                                         | label_0:
    0x00002b1e ldr r0, [pc, 0x2c]                        |         
    0x00002b20 mov r3, r7                                |         r3 = r7;
    0x00002b22 movw r2, 0x4a4                            |         r2 = 0x4a4;
    0x00002b26 movs r1, 1                                |         r1 = 1;
    0x00002b28 add r0, pc                                |         r0 = 0x567a;
    0x00002b2a blx 0x1188                                |         fwrite (r0, r1, r2, r3);
    0x00002b2e b 0x2b04                                  |         
                                                         |     } while (1);
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/jq @ 0x2c24 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00002c24 ()                                      | void fcn_00002c24 (int16_t arg_d0h, int16_t arg_d8h, int16_t arg_dch, int16_t arg1) {
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_sp_4h;
                                                                 |     int16_t var_8h;
                                                                 |     void * ptr;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_48h;
                                                                 |     int16_t var_58h;
                                                                 |     int16_t var_68h;
                                                                 |     int16_t var_70h;
                                                                 |     int16_t var_78h;
                                                                 |     int16_t var_80h;
                                                                 |     int16_t var_88h;
                                                                 |     int16_t var_90h;
                                                                 |     int16_t var_9ch;
                                                                 |     int16_t var_c8h;
                                                                 |     int32_t var_0h_2;
                                                                 |     r0 = arg1;
    0x00002c24 sub sp, 8                                         |     
    0x00002c26 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00002c2a sub sp, 0xa4                                      |     
    0x00002c2c ldr r4, [sp, 0xd8]                                |     r4 = *(arg_d8h);
    0x00002c2e add r1, sp, 0xd0                                  |     r1 += arg_d0h;
    0x00002c30 mov r8, r0                                        |     r8 = r0;
    0x00002c32 mvn r6, 3                                         |     r6 = ~3;
    0x00002c36 ldr.w sl, [pc, 0x3cc]                             |     
    0x00002c3a add r5, sp, 0x88                                  |     r5 += var_88h;
    0x00002c3c str r4, [sp, 8]                                   |     var_8h = r4;
    0x00002c3e add r4, sp, 0xc8                                  |     r4 += var_c8h;
    0x00002c40 stm.w r4, {r2, r3}                                |     *(r4) = r2;
                                                                 |     *((r4 + 4)) = r3;
    0x00002c44 ldr r2, [pc, 0x3c0]                               |     
    0x00002c46 add sl, pc                                        |     sl = 0x5c50;
    0x00002c48 ldr r3, [pc, 0x3c0]                               |     r3 = *(0x300c);
    0x00002c4a ldm r1, {r0, r1}                                  |     r0 = *(r1);
                                                                 |     r1 = *((r1 + 4));
    0x00002c4c add r2, pc                                        |     r2 = 0x5c58;
    0x00002c4e ldr.w fp, [pc, 0x3c0]                             |     
    0x00002c52 ldr r3, [r2, r3]                                  |     
    0x00002c54 ldr.w sb, [pc, 0x3bc]                             |     
    0x00002c58 add fp, pc                                        |     fp = 0x5c6e;
    0x00002c5a ldr r3, [r3]                                      |     r3 = *(0x5c58);
    0x00002c5c str r3, [sp, 0x9c]                                |     var_9ch = r3;
    0x00002c5e mov.w r3, 0                                       |     r3 = 0;
    0x00002c62 stm.w sp, {r0, r1}                                |     *(sp) = r0;
                                                                 |     *((sp + 4)) = r1;
    0x00002c66 mov r0, r8                                        |     r0 = r8;
    0x00002c68 ldrd r2, r3, [r4]                                 |     __asm ("ldrd r2, r3, [r4]");
    0x00002c6c blx 0x1194                                        |     jq_start ();
    0x00002c70 ldr r3, [pc, 0x3a4]                               |     
    0x00002c72 add r4, sp, 0x28                                  |     r4 += var_28h;
    0x00002c74 add sb, pc                                        |     sb = 0x5c8c;
    0x00002c76 add r3, pc                                        |     r3 = 0x5c92;
    0x00002c78 str r3, [sp, 0x14]                                |     ptr = r3;
                                                                 |     do {
                                                                 | label_0:
    0x00002c7a mov r1, r8                                        |         r1 = r8;
    0x00002c7c mov r0, r4                                        |         r0 = r4;
    0x00002c7e blx 0x124c                                        |         r0 = fcn_0000124c ();
    0x00002c82 ldm.w r4, {r0, r1, r2, r3}                        |         r0 = *(r4);
                                                                 |         r1 = *((r4 + 4));
                                                                 |         r2 = *((r4 + 8));
                                                                 |         r3 = *((r4 + 12));
    0x00002c86 stm.w r5, {r0, r1, r2, r3}                        |         *(r5) = r0;
                                                                 |         *((r5 + 4)) = r1;
                                                                 |         *((r5 + 8)) = r2;
                                                                 |         *((r5 + 12)) = r3;
    0x00002c8a blx 0x1128                                        |         r0 = jv_get_kind ();
    0x00002c8e cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00002c90 beq 0x2d86                                        |             goto label_10;
                                                                 |         }
    0x00002c92 ldr.w r3, [sl, 4]                                 |         r3 = *((sl + 4));
    0x00002c96 lsls r7, r3, 0x1c                                 |         r7 = r3 << 0x1c;
                                                                 |         if (r7 < r3) {
    0x00002c98 bpl 0x2ca6                                        |             
    0x00002c9a ldm.w r4, {r0, r1, r2, r3}                        |             r0 = *(r4);
                                                                 |             r1 = *((r4 + 4));
                                                                 |             r2 = *((r4 + 8));
                                                                 |             r3 = *((r4 + 12));
    0x00002c9e blx 0x1128                                        |             r0 = jv_get_kind ();
    0x00002ca2 cmp r0, 5                                         |             
                                                                 |             if (r0 == 5) {
    0x00002ca4 beq 0x2d46                                        |                 goto label_11;
                                                                 |             }
                                                                 |         }
    0x00002ca6 ldm.w r4, {r0, r1, r2, r3}                        |         r0 = *(r4);
                                                                 |         r1 = *((r4 + 4));
                                                                 |         r2 = *((r4 + 8));
                                                                 |         r3 = *((r4 + 12));
    0x00002caa blx 0x1128                                        |         r0 = jv_get_kind ();
    0x00002cae cmp r0, 2                                         |         
    0x00002cb0 it eq                                             |         
                                                                 |         if (r0 != 2) {
    0x00002cb2 moveq r6, -1                                      |             r6 = -1;
                                                                 |         }
                                                                 |         if (r0 != 2) {
    0x00002cb6 beq 0x2cca                                        |             
    0x00002cb8 ldm.w r4, {r0, r1, r2, r3}                        |             r0 = *(r4);
                                                                 |             r1 = *((r4 + 4));
                                                                 |             r2 = *((r4 + 8));
                                                                 |             r3 = *((r4 + 12));
    0x00002cbc mov.w r6, -1                                      |             r6 = -1;
    0x00002cc0 blx 0x1128                                        |             r0 = jv_get_kind ();
    0x00002cc4 cmp r0, 1                                         |             
    0x00002cc6 it ne                                             |             
                                                                 |             if (r0 != 1) {
    0x00002cc8 movne r6, 0                                       |                 r6 = 0;
                                                                 |                 goto label_12;
                                                                 |             }
                                                                 |         }
                                                                 | label_12:
    0x00002cca ldr.w r3, [fp, 4]                                 |         r3 = var_4h;
    0x00002cce lsls r0, r3, 0x11                                 |         r0 = r3 << 0x11;
                                                                 |         if (r0 < r3) {
    0x00002cd0 bmi 0x2d32                                        |             goto label_13;
                                                                 |         }
                                                                 | label_3:
    0x00002cd2 ldr r3, [sp, 0xdc]                                |         r3 = *(arg_dch);
    0x00002cd4 str r3, [sp]                                      |         *(sp) = r3;
    0x00002cd6 ldm.w r4, {r0, r1, r2, r3}                        |         r0 = *(r4);
                                                                 |         r1 = *((r4 + 4));
                                                                 |         r2 = *((r4 + 8));
                                                                 |         r3 = *((r4 + 12));
    0x00002cda blx 0x10ec                                        |         jv_dump ();
                                                                 | label_4:
    0x00002cde ldr r7, [pc, 0x33c]                               |         
    0x00002ce0 add r7, pc                                        |         r7 = 0x5d02;
    0x00002ce2 ldr r3, [r7, 4]                                   |         r3 = *(0x5d06);
    0x00002ce4 lsls r1, r3, 0x15                                 |         r1 = r3 << 0x15;
                                                                 |         if (r1 >= r3) {
    0x00002ce6 bpl 0x2d1a                                        |             goto label_14;
                                                                 |         }
                                                                 | label_2:
    0x00002ce8 lsls r2, r3, 0x1b                                 |         r2 = r3 << 0x1b;
                                                                 |         if (r2 < r3) {
    0x00002cea bmi 0x2cfe                                        |             goto label_15;
                                                                 |         }
                                                                 | label_1:
    0x00002cec lsls r3, r3, 0x14                                 |         r3 <<= 0x14;
    0x00002cee bpl 0x2c7a                                        |         
                                                                 |     } while (r3 >= r3);
    0x00002cf0 ldr r3, [pc, 0x32c]                               |     r3 = *(0x3020);
    0x00002cf2 ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x00002cf6 ldr r0, [r3]                                      |     r0 = *(0x3020);
    0x00002cf8 blx 0x10f8                                        |     fflush (r0);
    0x00002cfc b 0x2c7a                                          |     goto label_0;
                                                                 | label_15:
    0x00002cfe ldr r3, [pc, 0x320]                               |     
    0x00002d00 movs r2, 1                                        |     r2 = 1;
    0x00002d02 ldr r0, [pc, 0x320]                               |     
    0x00002d04 mov r1, r2                                        |     r1 = r2;
    0x00002d06 ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x00002d0a add r0, pc                                        |     r0 = 0x5d34;
    0x00002d0c ldr r3, [r3]                                      |     r3 = *(0x3022);
    0x00002d0e blx 0x1188                                        |     fwrite (r0, r1, r2, r3);
    0x00002d12 ldr r3, [pc, 0x314]                               |     
    0x00002d14 add r3, pc                                        |     
    0x00002d16 ldr r3, [r3, 4]                                   |     r3 = *(0x5d46);
    0x00002d18 b 0x2cec                                          |     goto label_1;
                                                                 | label_14:
    0x00002d1a ldr r3, [pc, 0x304]                               |     
    0x00002d1c movs r2, 1                                        |     r2 = 1;
    0x00002d1e ldr r0, [pc, 0x30c]                               |     
    0x00002d20 mov r1, r2                                        |     r1 = r2;
    0x00002d22 ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x00002d26 add r0, pc                                        |     r0 = 0x5d58;
    0x00002d28 ldr r3, [r3]                                      |     r3 = *(0x3022);
    0x00002d2a blx 0x1188                                        |     fwrite (r0, r1, r2, r3);
    0x00002d2e ldr r3, [r7, 4]                                   |     r3 = *((r7 + 4));
    0x00002d30 b 0x2ce8                                          |     goto label_2;
                                                                 | label_13:
    0x00002d32 ldr r3, [pc, 0x2ec]                               |     
    0x00002d34 movs r2, 1                                        |     r2 = 1;
    0x00002d36 ldr r0, [sp, 0x14]                                |     r0 = ptr;
    0x00002d38 mov r1, r2                                        |     r1 = r2;
    0x00002d3a ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x00002d3e ldr r3, [r3]                                      |     r3 = *(0x3022);
    0x00002d40 blx 0x1188                                        |     fwrite (r0, r1, r2, r3);
    0x00002d44 b 0x2cd2                                          |     goto label_3;
                                                                 | label_11:
    0x00002d46 ldr.w r3, [sl, 4]                                 |     r3 = *((sl + 4));
    0x00002d4a lsls r6, r3, 0x1a                                 |     r6 = r3 << 0x1a;
                                                                 |     if (r6 >= r3) {
    0x00002d4c bpl 0x2e2a                                        |         goto label_16;
                                                                 |     }
    0x00002d4e add r3, sp, 0x30                                  |     r3 += var_30h;
    0x00002d50 add r6, sp, 0x48                                  |     r6 += var_48h;
    0x00002d52 ldm.w r3, {r0, r1}                                |     r0 = *(r3);
                                                                 |     r1 = *((r3 + 4));
    0x00002d56 stm.w sp, {r0, r1}                                |     *(sp) = r0;
                                                                 |     *((sp + 4)) = r1;
    0x00002d5a mov r0, r6                                        |     r0 = r6;
    0x00002d5c ldm.w r4, {r2, r3}                                |     r2 = *(r4);
                                                                 |     r3 = *((r4 + 4));
    0x00002d60 blx 0x1098                                        |     jv_copy ();
    0x00002d64 ldr r3, [pc, 0x2b8]                               |     
    0x00002d66 movs r2, 2                                        |     r2 = 2;
    0x00002d68 str r2, [sp, 4]                                   |     var_sp_4h = r2;
    0x00002d6a ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x00002d6e ldr r3, [r3]                                      |     r3 = *(0x3020);
    0x00002d70 str r3, [sp]                                      |     *(sp) = r3;
    0x00002d72 ldm.w r6, {r0, r1, r2, r3}                        |     r0 = *(r6);
                                                                 |     r1 = *((r6 + 4));
                                                                 |     r2 = *((r6 + 8));
                                                                 |     r3 = *((r6 + 12));
    0x00002d76 blx 0x10bc                                        |     r0 = jv_dumpf ();
                                                                 |     do {
    0x00002d7a ldm.w r4, {r0, r1, r2, r3}                        |         r0 = *(r4);
                                                                 |         r1 = *((r4 + 4));
                                                                 |         r2 = *((r4 + 8));
                                                                 |         r3 = *((r4 + 12));
    0x00002d7e movs r6, 0                                        |         r6 = 0;
    0x00002d80 blx 0x1240                                        |         fcn_00001240 ();
    0x00002d84 b 0x2cde                                          |         goto label_4;
                                                                 | label_10:
    0x00002d86 mov r0, r8                                        |         r0 = r8;
    0x00002d88 blx 0x121c                                        |         r0 = fcn_0000121c ();
    0x00002d8c mov r7, r0                                        |         r7 = r0;
    0x00002d8e cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00002d90 beq 0x2e66                                        |             goto label_17;
                                                                 |         }
    0x00002d92 ldr r2, [pc, 0x29c]                               |         
    0x00002d94 add.w sl, sp, 0x38                                |         sl += var_38h;
    0x00002d98 mov r1, r8                                        |         r1 = r8;
    0x00002d9a mov r0, sl                                        |         r0 = sl;
    0x00002d9c add r2, pc                                        |         r2 = 0x5dd2;
    0x00002d9e ldr r3, [r2, 4]                                   |         r3 = *(0x5dd6);
    0x00002da0 orr r3, r3, 0x2000                                |         r3 |= 0x2000;
    0x00002da4 str r3, [r2, 4]                                   |         *((r2 + 4)) = r3;
    0x00002da6 blx 0x11dc                                        |         r0 = jq_get_exit_code ();
    0x00002daa ldm.w sl, {r0, r1, r2, r3}                        |         r0 = *(sl);
                                                                 |         r1 = *((sl + 4));
                                                                 |         r2 = *((sl + 8));
                                                                 |         r3 = *((sl + 12));
    0x00002dae stm.w r5, {r0, r1, r2, r3}                        |         *(r5) = r0;
                                                                 |         *((r5 + 4)) = r1;
                                                                 |         *((r5 + 8)) = r2;
                                                                 |         *((r5 + 12)) = r3;
    0x00002db2 blx 0x1128                                        |         r0 = jv_get_kind ();
    0x00002db6 mov r6, r0                                        |         r6 = r0;
    0x00002db8 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00002dba bne.w 0x2f4e                                      |             goto label_18;
                                                                 |         }
                                                                 | label_7:
    0x00002dbe ldm.w sl, {r0, r1, r2, r3}                        |         r0 = *(sl);
                                                                 |         r1 = *((sl + 4));
                                                                 |         r2 = *((sl + 8));
                                                                 |         r3 = *((sl + 12));
    0x00002dc2 add r7, sp, 0x78                                  |         r7 += var_78h;
    0x00002dc4 blx 0x1240                                        |         fcn_00001240 ();
    0x00002dc8 mov r1, r8                                        |         r1 = r8;
    0x00002dca mov r0, r7                                        |         r0 = r7;
    0x00002dcc blx 0x11e8                                        |         r0 = jq_get_error_message ();
    0x00002dd0 ldm.w r7, {r0, r1, r2, r3}                        |         r0 = *(r7);
                                                                 |         r1 = *((r7 + 4));
                                                                 |         r2 = *((r7 + 8));
                                                                 |         r3 = *((r7 + 12));
    0x00002dd4 blx 0x1128                                        |         r0 = jv_get_kind ();
    0x00002dd8 cmp r0, 5                                         |         
                                                                 |         if (r0 == 5) {
    0x00002dda beq.w 0x2f2c                                      |             goto label_19;
                                                                 |         }
    0x00002dde ldm.w r7, {r0, r1, r2, r3}                        |         r0 = *(r7);
                                                                 |         r1 = *((r7 + 4));
                                                                 |         r2 = *((r7 + 8));
                                                                 |         r3 = *((r7 + 12));
    0x00002de2 blx 0x1128                                        |         r0 = jv_get_kind ();
    0x00002de6 cmp r0, 1                                         |         
                                                                 |         if (r0 != 1) {
    0x00002de8 bne.w 0x2f72                                      |             goto label_20;
                                                                 |         }
                                                                 | label_8:
    0x00002dec ldr r3, [pc, 0x244]                               |         r3 = *(0x3034);
    0x00002dee ldr.w r5, [sb, r3]                                |         r5 = *((sb + r3));
                                                                 | label_6:
    0x00002df2 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00002df4 blx 0x10f8                                        |         r0 = fflush (r0);
    0x00002df8 ldm.w r7, {r0, r1, r2, r3}                        |         r0 = *(r7);
                                                                 |         r1 = *((r7 + 4));
                                                                 |         r2 = *((r7 + 8));
                                                                 |         r3 = *((r7 + 12));
    0x00002dfc blx 0x1240                                        |         r0 = fcn_00001240 ();
                                                                 | label_5:
    0x00002e00 ldm.w r4, {r0, r1, r2, r3}                        |         r0 = *(r4);
                                                                 |         r1 = *((r4 + 4));
                                                                 |         r2 = *((r4 + 8));
                                                                 |         r3 = *((r4 + 12));
    0x00002e04 blx 0x1240                                        |         fcn_00001240 ();
    0x00002e08 ldr r2, [pc, 0x22c]                               |         
    0x00002e0a ldr r3, [pc, 0x200]                               |         r3 = *(0x300e);
    0x00002e0c add r2, pc                                        |         r2 = 0x5e48;
    0x00002e0e ldr r3, [r2, r3]                                  |         r3 = *(0x5e48);
    0x00002e10 ldr r2, [r3]                                      |         r2 = *(0x5e48);
    0x00002e12 ldr r3, [sp, 0x9c]                                |         r3 = var_9ch;
    0x00002e14 eors r2, r3                                       |         r2 ^= r3;
    0x00002e16 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00002e1a bne.w 0x3000                                      |             goto label_21;
                                                                 |         }
    0x00002e1e mov r0, r6                                        |         r0 = r6;
    0x00002e20 add sp, 0xa4                                      |         
    0x00002e22 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |         
    0x00002e26 add sp, 8                                         |         
    0x00002e28 bx lr                                             |         return;
                                                                 | label_16:
    0x00002e2a ldm.w r4, {r0, r1, r2, r3}                        |         r0 = *(r4);
                                                                 |         r1 = *((r4 + 4));
                                                                 |         r2 = *((r4 + 8));
                                                                 |         r3 = *((r4 + 12));
    0x00002e2e add r6, sp, 0x58                                  |         r6 += var_58h;
    0x00002e30 blx 0x10a4                                        |         jv_string_value ();
    0x00002e34 add r3, sp, 0x30                                  |         r3 += var_30h;
    0x00002e36 mov r7, r0                                        |         r7 = r0;
    0x00002e38 ldm.w r3, {r0, r1}                                |         r0 = *(r3);
                                                                 |         r1 = *((r3 + 4));
    0x00002e3c stm.w sp, {r0, r1}                                |         *(sp) = r0;
                                                                 |         *((sp + 4)) = r1;
    0x00002e40 mov r0, r6                                        |         r0 = r6;
    0x00002e42 ldm.w r4, {r2, r3}                                |         r2 = *(r4);
                                                                 |         r3 = *((r4 + 4));
    0x00002e46 blx 0x1098                                        |         r0 = jv_copy ();
    0x00002e4a ldm.w r6, {r0, r1, r2, r3}                        |         r0 = *(r6);
                                                                 |         r1 = *((r6 + 4));
                                                                 |         r2 = *((r6 + 8));
                                                                 |         r3 = *((r6 + 12));
    0x00002e4e blx 0x1140                                        |         jv_string_length_bytes ();
    0x00002e52 ldr r3, [pc, 0x1cc]                               |         
    0x00002e54 mov r2, r0                                        |         r2 = r0;
    0x00002e56 movs r1, 1                                        |         r1 = 1;
    0x00002e58 mov r0, r7                                        |         r0 = r7;
    0x00002e5a ldr.w r3, [sb, r3]                                |         r3 = *((sb + r3));
    0x00002e5e ldr r3, [r3]                                      |         r3 = *(0x3022);
    0x00002e60 blx 0x1188                                        |         fwrite (r0, r1, r2, r3);
    0x00002e64 b 0x2d7a                                          |         
                                                                 |     } while (1);
                                                                 | label_17:
    0x00002e66 add.w fp, sp, 0x30                                |     
    0x00002e6a add.w sl, sp, 0x78                                |     sl += var_78h;
    0x00002e6e ldm.w fp, {r0, r1}                                |     r0 = *(fp);
                                                                 |     r1 = *((fp + 4));
    0x00002e72 stm.w sp, {r0, r1}                                |     *(sp) = r0;
                                                                 |     *((sp + 4)) = r1;
    0x00002e76 mov r0, sl                                        |     r0 = sl;
    0x00002e78 ldm.w r4, {r2, r3}                                |     r2 = *(r4);
                                                                 |     r3 = *((r4 + 4));
    0x00002e7c blx 0x1098                                        |     r0 = jv_copy ();
    0x00002e80 ldm.w sl, {r0, r1, r2, r3}                        |     r0 = *(sl);
                                                                 |     r1 = *((sl + 4));
                                                                 |     r2 = *((sl + 8));
                                                                 |     r3 = *((sl + 12));
    0x00002e84 blx 0x1264                                        |     r0 = fcn_00001264 ();
    0x00002e88 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00002e8a beq 0x2e00                                        |         goto label_5;
                                                                 |     }
    0x00002e8c ldm.w fp, {r0, r1}                                |     r0 = *(fp);
                                                                 |     r1 = *((fp + 4));
    0x00002e90 add.w sl, sp, 0x38                                |     sl += var_38h;
    0x00002e94 add r6, sp, 0x68                                  |     r6 += var_68h;
    0x00002e96 stm.w sp, {r0, r1}                                |     *(sp) = r0;
                                                                 |     *((sp + 4)) = r1;
    0x00002e9a mov r0, r5                                        |     r0 = r5;
    0x00002e9c ldm.w r4, {r2, r3}                                |     r2 = *(r4);
                                                                 |     r3 = *((r4 + 4));
    0x00002ea0 blx 0x1098                                        |     jv_copy ();
    0x00002ea4 add r3, sp, 0x90                                  |     r3 += var_90h;
    0x00002ea6 ldm.w r3, {r0, r1}                                |     r0 = *(r3);
                                                                 |     r1 = *((r3 + 4));
    0x00002eaa stm.w sp, {r0, r1}                                |     *(sp) = r0;
                                                                 |     *((sp + 4)) = r1;
    0x00002eae mov r0, sl                                        |     r0 = sl;
    0x00002eb0 ldm.w r5, {r2, r3}                                |     r2 = *(r5);
                                                                 |     r3 = *((r5 + 4));
    0x00002eb4 blx 0x1038                                        |     jv_invalid_get_msg ();
    0x00002eb8 mov r1, r8                                        |     r1 = r8;
    0x00002eba mov r0, r6                                        |     r0 = r6;
    0x00002ebc blx 0x11a0                                        |     r0 = jq_util_input_get_position ();
    0x00002ec0 ldm.w sl, {r0, r1, r2, r3}                        |     r0 = *(sl);
                                                                 |     r1 = *((sl + 4));
                                                                 |     r2 = *((sl + 8));
                                                                 |     r3 = *((sl + 12));
    0x00002ec4 blx 0x1128                                        |     r0 = jv_get_kind ();
    0x00002ec8 cmp r0, 5                                         |     
                                                                 |     if (r0 == 5) {
    0x00002eca beq.w 0x2fd4                                      |         goto label_22;
                                                                 |     }
    0x00002ece add r3, sp, 0x40                                  |     r3 += var_40h;
    0x00002ed0 str r7, [sp, 8]                                   |     var_8h = r7;
    0x00002ed2 ldm.w r3, {r0, r1}                                |     r0 = *(r3);
                                                                 |     r1 = *((r3 + 4));
    0x00002ed6 add r5, sp, 0x18                                  |     r5 += var_18h;
    0x00002ed8 ldr r7, [pc, 0x158]                               |     r7 = *(0x3034);
    0x00002eda stm.w sp, {r0, r1}                                |     *(sp) = r0;
                                                                 |     *((sp + 4)) = r1;
    0x00002ede mov r0, r5                                        |     r0 = r5;
    0x00002ee0 ldm.w sl, {r2, r3}                                |     r2 = *(sl);
                                                                 |     r3 = *((sl + 4));
    0x00002ee4 blx 0x10d4                                        |     r0 = jv_dump_string ();
    0x00002ee8 ldm.w r5, {r0, r1, r2, r3}                        |     r0 = *(r5);
                                                                 |     r1 = *((r5 + 4));
                                                                 |     r2 = *((r5 + 8));
                                                                 |     r3 = *((r5 + 12));
    0x00002eec stm.w sl, {r0, r1, r2, r3}                        |     *(sl) = r0;
                                                                 |     *((sl + 4)) = r1;
                                                                 |     *((sl + 8)) = r2;
                                                                 |     *((sl + 12)) = r3;
    0x00002ef0 ldr.w r3, [sb, r7]                                |     r3 = *((sb + r7));
    0x00002ef4 ldr r7, [r3]                                      |     r7 = *(r3);
    0x00002ef6 ldm.w r6, {r0, r1, r2, r3}                        |     r0 = *(r6);
                                                                 |     r1 = *((r6 + 4));
                                                                 |     r2 = *((r6 + 8));
                                                                 |     r3 = *((r6 + 12));
    0x00002efa blx 0x10a4                                        |     r0 = jv_string_value ();
    0x00002efe mov r5, r0                                        |     r5 = r0;
    0x00002f00 ldm.w sl, {r0, r1, r2, r3}                        |     r0 = *(sl);
                                                                 |     r1 = *((sl + 4));
                                                                 |     r2 = *((sl + 8));
                                                                 |     r3 = *((sl + 12));
    0x00002f04 blx 0x10a4                                        |     jv_string_value ();
    0x00002f08 ldr r2, [pc, 0x130]                               |     
    0x00002f0a mov r3, r5                                        |     r3 = r5;
    0x00002f0c str r0, [sp]                                      |     *(sp) = r0;
    0x00002f0e movs r1, 1                                        |     r1 = 1;
    0x00002f10 mov r0, r7                                        |     r0 = r7;
    0x00002f12 add r2, pc                                        |     r2 = 0x5f52;
    0x00002f14 blx 0x11f4                                        |     fprintf_chk ()
    0x00002f16 invalid                                           |     
                                                                 | label_9:
    0x00002f18 ldm.w r6, {r0, r1, r2, r3}                        |     r0 = *(r6);
                                                                 |     r1 = *((r6 + 4));
                                                                 |     r2 = *((r6 + 8));
                                                                 |     r3 = *((r6 + 12));
    0x00002f1c movs r6, 5                                        |     r6 = 5;
    0x00002f1e blx 0x1240                                        |     r0 = fcn_00001240 ();
    0x00002f22 ldm.w sl, {r0, r1, r2, r3}                        |     r0 = *(sl);
                                                                 |     r1 = *((sl + 4));
                                                                 |     r2 = *((sl + 8));
                                                                 |     r3 = *((sl + 12));
    0x00002f26 blx 0x1240                                        |     fcn_00001240 ();
    0x00002f2a b 0x2e00                                          |     goto label_5;
                                                                 | label_19:
    0x00002f2c ldr r3, [pc, 0x104]                               |     r3 = *(0x3034);
    0x00002f2e ldr.w r5, [sb, r3]                                |     r5 = *((sb + r3));
    0x00002f32 ldm.w r7, {r0, r1, r2, r3}                        |     r0 = *(r7);
                                                                 |     r1 = *((r7 + 4));
                                                                 |     r2 = *((r7 + 8));
                                                                 |     r3 = *((r7 + 12));
    0x00002f36 ldr.w r8, [r5]                                    |     r8 = *(r5);
    0x00002f3a blx 0x10a4                                        |     jv_string_value ();
    0x00002f3e ldr r2, [pc, 0x100]                               |     
    0x00002f40 mov r3, r0                                        |     r3 = r0;
    0x00002f42 movs r1, 1                                        |     r1 = 1;
    0x00002f44 mov r0, r8                                        |     r0 = r8;
    0x00002f46 add r2, pc                                        |     r2 = 0x5f8c;
    0x00002f48 blx 0x11f4                                        |     fprintf_chk ()
    0x00002f4c b 0x2df2                                          |     goto label_6;
                                                                 | label_18:
    0x00002f4e ldm.w sl, {r0, r1, r2, r3}                        |     r0 = *(sl);
                                                                 |     r1 = *((sl + 4));
                                                                 |     r2 = *((sl + 8));
                                                                 |     r3 = *((sl + 12));
    0x00002f52 blx 0x1128                                        |     r0 = jv_get_kind ();
    0x00002f56 cmp r0, 4                                         |     
    0x00002f58 it ne                                             |     
                                                                 |     if (r0 != 4) {
    0x00002f5a movne r6, 5                                       |         r6 = 5;
                                                                 |         goto label_23;
                                                                 |     }
                                                                 |     if (r0 != 4) {
                                                                 | label_23:
    0x00002f5c bne.w 0x2dbe                                      |         goto label_7;
                                                                 |     }
    0x00002f60 ldm.w sl, {r0, r1, r2, r3}                        |     r0 = *(sl);
                                                                 |     r1 = *((sl + 4));
                                                                 |     r2 = *((sl + 8));
                                                                 |     r3 = *((sl + 12));
    0x00002f64 blx 0x1318                                        |     fcn_00001318 ();
    0x00002f68 vcvt.s32.f64 s15, d0                              |     __asm ("vcvt.s32.f64 s15, d0");
    0x00002f6c vmov r6, s15                                      |     __asm ("vmov r6, s15");
    0x00002f70 b 0x2dbe                                          |     goto label_7;
                                                                 | label_20:
    0x00002f72 ldm.w r7, {r0, r1, r2, r3}                        |     r0 = *(r7);
                                                                 |     r1 = *((r7 + 4));
                                                                 |     r2 = *((r7 + 8));
                                                                 |     r3 = *((r7 + 12));
    0x00002f76 stm.w r5, {r0, r1, r2, r3}                        |     *(r5) = r0;
                                                                 |     *((r5 + 4)) = r1;
                                                                 |     *((r5 + 8)) = r2;
                                                                 |     *((r5 + 12)) = r3;
    0x00002f7a blx 0x1128                                        |     r0 = jv_get_kind ();
    0x00002f7e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00002f80 beq.w 0x2dec                                      |         goto label_8;
                                                                 |     }
    0x00002f84 add r3, sp, 0x80                                  |     r3 += var_80h;
    0x00002f86 add r5, sp, 0x68                                  |     r5 += var_68h;
    0x00002f88 ldm.w r3, {r0, r1}                                |     r0 = *(r3);
                                                                 |     r1 = *((r3 + 4));
    0x00002f8c stm.w sp, {r0, r1}                                |     *(sp) = r0;
                                                                 |     *((sp + 4)) = r1;
    0x00002f90 mov r0, r5                                        |     r0 = r5;
    0x00002f92 ldm.w r7, {r2, r3}                                |     r2 = *(r7);
                                                                 |     r3 = *((r7 + 4));
    0x00002f96 blx 0x1098                                        |     jv_copy ();
    0x00002f9a add r3, sp, 0x70                                  |     r3 += var_70h;
    0x00002f9c ldm.w r3, {r0, r1}                                |     r0 = *(r3);
                                                                 |     r1 = *((r3 + 4));
    0x00002fa0 movs r3, 0                                        |     r3 = 0;
    0x00002fa2 str r3, [sp, 8]                                   |     var_8h = r3;
    0x00002fa4 stm.w sp, {r0, r1}                                |     *(sp) = r0;
                                                                 |     *((sp + 4)) = r1;
    0x00002fa8 mov r0, r7                                        |     r0 = r7;
    0x00002faa ldm.w r5, {r2, r3}                                |     r2 = *(r5);
                                                                 |     r3 = *((r5 + 4));
    0x00002fae blx 0x10d4                                        |     jv_dump_string ();
    0x00002fb2 ldr r3, [pc, 0x80]                                |     r3 = *(0x3036);
    0x00002fb4 ldr.w r5, [sb, r3]                                |     r5 = *((sb + r3));
    0x00002fb8 ldm.w r7, {r0, r1, r2, r3}                        |     r0 = *(r7);
                                                                 |     r1 = *((r7 + 4));
                                                                 |     r2 = *((r7 + 8));
                                                                 |     r3 = *((r7 + 12));
    0x00002fbc ldr.w r8, [r5]                                    |     r8 = *(r5);
    0x00002fc0 blx 0x10a4                                        |     jv_string_value ();
    0x00002fc4 ldr r2, [pc, 0x7c]                                |     
    0x00002fc6 mov r3, r0                                        |     r3 = r0;
    0x00002fc8 movs r1, 1                                        |     r1 = 1;
    0x00002fca mov r0, r8                                        |     r0 = r8;
    0x00002fcc add r2, pc                                        |     r2 = 0x6014;
    0x00002fce blx 0x11f4                                        |     fprintf_chk ()
    0x00002fd2 b 0x2df2                                          |     goto label_6;
                                                                 | label_22:
    0x00002fd4 ldr r3, [pc, 0x5c]                                |     r3 = *(0x3034);
    0x00002fd6 ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x00002fda ldr r7, [r3]                                      |     r7 = *(0x3034);
    0x00002fdc ldm.w r6, {r0, r1, r2, r3}                        |     r0 = *(r6);
                                                                 |     r1 = *((r6 + 4));
                                                                 |     r2 = *((r6 + 8));
                                                                 |     r3 = *((r6 + 12));
    0x00002fe0 blx 0x10a4                                        |     r0 = jv_string_value ();
    0x00002fe4 mov r5, r0                                        |     r5 = r0;
    0x00002fe6 ldm.w sl, {r0, r1, r2, r3}                        |     r0 = *(sl);
                                                                 |     r1 = *((sl + 4));
                                                                 |     r2 = *((sl + 8));
                                                                 |     r3 = *((sl + 12));
    0x00002fea blx 0x10a4                                        |     jv_string_value ();
    0x00002fee ldr r2, [pc, 0x58]                                |     
    0x00002ff0 mov r3, r5                                        |     r3 = r5;
    0x00002ff2 str r0, [sp]                                      |     *(sp) = r0;
    0x00002ff4 movs r1, 1                                        |     r1 = 1;
    0x00002ff6 mov r0, r7                                        |     r0 = r7;
    0x00002ff8 add r2, pc                                        |     r2 = 0x6046;
    0x00002ffa blx 0x11f4                                        |     fprintf_chk ()
    0x00002ffe b 0x2f18                                          |     goto label_9;
                                                                 | label_21:
    0x00003000 blx 0x11d0                                        |     stack_chk_fail ();
    0x00003004 movs r3, 0xc2                                     |     r3 = 0xc2;
    0x00003006 movs r0, r0                                       |     
    0x00003008 movs r2, 0x58                                     |     r2 = 0x58;
    0x0000300a movs r0, r0                                       |     
    0x0000300c lsls r0, r0, 5                                    |     r0 <<= 5;
    0x0000300e movs r0, r0                                       |     
    0x00003010 movs r3, 0xb0                                     |     r3 = 0xb0;
    0x00003012 movs r0, r0                                       |     
    0x00003014 movs r2, 0x30                                     |     r2 = 0x30;
    0x00003016 movs r0, r0                                       |     
    0x00003018 lsrs r2, r5, 0x13                                 |     r2 = r5 >> 0x13;
    0x0000301a movs r0, r0                                       |     
    0x0000301c movs r3, 0x28                                     |     r3 = 0x28;
    0x0000301e movs r0, r0                                       |     
    0x00003020 lsls r0, r1, 5                                    |     r0 = r1 << 5;
    0x00003022 movs r0, r0                                       |     
    0x00003024 asrs r6, r3, 4                                    |     r6 = r3 >> 4;
    0x00003026 movs r0, r0                                       |     
    0x00003028 movs r2, 0xf4                                     |     r2 = 0xf4;
    0x0000302a movs r0, r0                                       |     
    0x0000302c lsls r2, r3, 0x1d                                 |     r2 = r3 << 0x1d;
    0x0000302e movs r0, r0                                       |     
    0x00003030 movs r2, 0x6c                                     |     r2 = 0x6c;
    0x00003032 movs r0, r0                                       |     
    0x00003034 lsls r4, r1, 5                                    |     r4 = r1 << 5;
    0x00003036 movs r0, r0                                       |     
    0x00003038 movs r0, 0x98                                     |     r0 = 0x98;
    0x0000303a movs r0, r0                                       |     
    0x0000303c lsrs r2, r1, 0xa                                  |     r2 = r1 >> 0xa;
    0x0000303e movs r0, r0                                       |     
    0x00003040 lsrs r6, r3, 8                                    |     r6 = r3 >> 8;
    0x00003042 movs r0, r0                                       |     
    0x00003044 lsrs r0, r5, 6                                    |     r0 = r5 >> 6;
    0x00003046 movs r0, r0                                       |     
    0x00003048 lsrs r4, r1, 6                                    |     r4 = r1 >> 6;
    0x0000304a movs r0, r0                                       |     
                                                                 | }

[*] Function fprintf used 16 times jq