[*] 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