[*] Binary protection state of pcregrep

  
  	Partial RELRO  No Canary found   NX disabled  No PIE       No RPATH     No RUNPATH   No Symbols


[*] Function fprintf tear down of pcregrep

    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/pcregrep @ 0x10f4c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00010f4c ()                                  | void fcn_00010f4c (int32_t arg_2040h, int32_t arg2, char * s) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     char * var_1ch;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_2040h;
                                                             |     r1 = arg2;
                                                             |     r0 = s;
    0x00010f4c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00010f50 ldr r5, [r0, 4]                               |     r5 = *((r0 + 4));
    0x00010f54 sub sp, sp, 0x2000                            |     
    0x00010f58 sub sp, sp, 0x2c                              |     
    0x00010f5c mov r7, r3                                    |     r7 = r3;
    0x00010f60 add r3, sp, 0x2040                            |     r3 += arg_2040h;
    0x00010f64 add r3, r3, 0x14                              |     r3 += 0x14;
    0x00010f68 mov sb, r0                                    |     sb = r0;
    0x00010f6c mov r0, r5                                    |     r0 = r5;
    0x00010f70 ldr r4, [r3]                                  |     r4 = *(r3);
    0x00010f74 mov r8, r1                                    |     r8 = r1;
    0x00010f78 mov sl, r2                                    |     sl = r2;
    0x00010f7c bl 0x10e3c                                    |     strlen (r0);
    0x00010f80 ldr r3, [sb, 8]                               |     r3 = *((sb + 8));
    0x00010f84 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00010f88 beq 0x10f9c                                   |         goto label_4;
                                                             |     }
                                                             | label_1:
    0x00010f8c mov r0, 1                                     |     r0 = 1;
                                                             |     do {
                                                             | label_0:
    0x00010f90 add sp, sp, 0x2000                            |         
    0x00010f94 add sp, sp, 0x2c                              |         
    0x00010f98 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_4:
    0x00010f9c tst sl, 4                                     |         
    0x00010fa0 mov r6, r0                                    |         r6 = r0;
                                                             |         if ((sl & 4) == 0) {
    0x00010fa4 beq 0x10fe4                                   |             goto label_5;
                                                             |         }
    0x00010fa8 add r1, r5, r0                                |         r1 = r5 + r0;
    0x00010fac add r2, sp, 0x1c                              |         r2 += var_1ch;
    0x00010fb0 mov r0, r5                                    |         r0 = r5;
    0x00010fb4 bl 0x1245c                                    |         fcn_0001245c ();
    0x00010fb8 ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x00010fbc cmp r3, 0                                     |         
    0x00010fc0 mov fp, r0                                    |         
                                                             |         if (r3 == 0) {
    0x00010fc4 beq 0x10fe4                                   |             goto label_5;
                                                             |         }
    0x00010fc8 mov r1, sb                                    |         r1 = sb;
    0x00010fcc bl 0x12ac4                                    |         r0 = fcn_00012ac4 (r0, r1);
    0x00010fd0 cmp r0, 0                                     |         
    0x00010fd4 beq 0x10f90                                   |         
                                                             |     } while (r0 == 0);
    0x00010fd8 ldr r3, [sp, 0x1c]                            |     r3 = var_1ch;
    0x00010fdc sub fp, fp, r5                                |     
    0x00010fe0 sub r6, fp, r3                                |     r6 = fp - r3;
                                                             | label_5:
    0x00010fe4 ldr r2, [pc, 0x188]                           |     r2 = *(0x11170);
    0x00010fe8 ldr fp, [pc, 0x188]                           |     fp = *(0x00011178);
    0x00010fec add r2, r2, sl, lsl 2                         |     r2 += (sl << 2);
    0x00010ff0 ldr r3, [r2, 0x78]                            |     r3 = *((r2 + 0x78));
    0x00010ff4 ldr sl, [r2, 0x58]                            |     sl = *((r2 + 0x58));
    0x00010ff8 str r3, [sp, 8]                               |     var_8h = r3;
    0x00010ffc str r5, [sp, 4]                               |     var_4h = r5;
    0x00011000 str r6, [sp]                                  |     *(sp) = r6;
    0x00011004 mov r3, sl                                    |     r3 = sl;
    0x00011008 ldr r2, [pc, 0x16c]                           |     r2 = *(0x11178);
    0x0001100c mov r1, fp                                    |     r1 = fp;
    0x00011010 add r0, sp, 0x1c                              |     r0 += var_1ch;
    0x00011014 bl 0x10cb0                                    |     r0 = snprintf (r0, r1, r2, r3);
    0x00011018 cmp r0, fp                                    |     
                                                             |     if (r0 > fp) {
    0x0001101c ble 0x1103c                                   |         
    0x00011020 ldr r3, [pc, 0x158]                           |         r3 = "_s_.s_s";
    0x00011024 mov r2, r5                                    |         r2 = r5;
    0x00011028 ldr r1, [pc, 0x154]                           |         r1 = stderr;
    0x0001102c ldr r0, [r3]                                  |         r0 = "_s_.s_s";
    0x00011030 bl 0x10d34                                    |         fprintf ("_s_.s_s", r1, r2, "_s_.s_s")
                                                             | label_2:
    0x00011034 mov r0, 0                                     |         r0 = 0;
    0x00011038 b 0x10f90                                     |         goto label_0;
                                                             |     }
    0x0001103c ldr r5, [pc, 0x144]                           |     r5 = "pcregrep: Buffer overflow while compiling \"%s\"\n";
    0x00011040 add r2, sp, 0x14                              |     r2 += var_14h;
    0x00011044 ldr r3, [r5, 0x24]                            |     r3 = *(0x111a8);
    0x00011048 mov r1, r8                                    |     r1 = r8;
    0x0001104c str r3, [sp]                                  |     *(sp) = r3;
    0x00011050 add r0, sp, 0x1c                              |     r0 += var_1ch;
    0x00011054 add r3, sp, 0x18                              |     r3 += var_18h;
    0x00011058 bl 0x10d88                                    |     r0 = pcre_compile ();
    0x0001105c cmp r0, 0                                     |     
    0x00011060 str r0, [sb, 8]                               |     *((sb + 8)) = r0;
                                                             |     if (r0 != 0) {
    0x00011064 bne 0x10f8c                                   |         goto label_1;
                                                             |     }
    0x00011068 mov r0, sl                                    |     r0 = sl;
    0x0001106c bl 0x10e3c                                    |     strlen (r0);
    0x00011070 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x00011074 ldr r2, [pc, 0x104]                           |     r2 = "_s_.s_s";
    0x00011078 ldr sb, [r2]                                  |     sb = "_s_.s_s";
    0x0001107c sub r3, r3, r0                                |     r3 -= r0;
    0x00011080 cmp r3, r6                                    |     
                                                             |     if (r3 < r6) {
    0x00011084 movge r3, r6                                  |         r3 = r6;
                                                             |     }
    0x00011088 cmp r7, 0                                     |     
    0x0001108c str r3, [sp, 0x18]                            |     var_18h = r3;
                                                             |     if (r7 != 0) {
    0x00011090 beq 0x110c0                                   |         
    0x00011094 ldr r2, [sp, 0x14]                            |         r2 = var_14h;
    0x00011098 str r3, [sp]                                  |         *(sp) = r3;
    0x0001109c add r3, sp, 0x2040                            |         r3 += arg_2040h;
    0x000110a0 add r3, r3, 0x10                              |         r3 += 0x10;
    0x000110a4 str r2, [sp, 4]                               |         var_4h = r2;
    0x000110a8 ldr r1, [pc, 0xdc]                            |         r1 = *(0x11188);
    0x000110ac ldr r3, [r3]                                  |         r3 = *(r3);
    0x000110b0 mov r2, r4                                    |         r2 = r4;
                                                             | label_3:
    0x000110b4 mov r0, sb                                    |         r0 = sb;
    0x000110b8 bl 0x10d34                                    |         fprintf (r0, r1, r2, r3)
    0x000110bc b 0x11034                                     |         goto label_2;
                                                             |     }
    0x000110c0 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x000110c4 bne 0x110ec                                   |         
    0x000110c8 ldr r2, [sp, 0x14]                            |         r2 = var_14h;
    0x000110cc ldr r1, [pc, 0xbc]                            |         r1 = "pcregrep: Error in regex in line %d of %s at offset %d: %s\n";
    0x000110d0 str r2, [sp]                                  |         *(sp) = r2;
    0x000110d4 add r2, sp, 0x2040                            |         r2 += arg_2040h;
    0x000110d8 add r2, r2, 0x10                              |         r2 += 0x10;
    0x000110dc ldr r2, [r2]                                  |         r2 = *(r2);
    0x000110e0 mov r0, sb                                    |         r0 = sb;
    0x000110e4 bl 0x10d34                                    |         fprintf (r0, "pcregrep: Error in regex in line %d of %s at offset %d: %s\n", r2)
    0x000110e8 b 0x11034                                     |         goto label_2;
                                                             |     }
    0x000110ec add r0, r5, 0x28                              |     r0 = r5 + 0x28;
    0x000110f0 mov r2, r4                                    |     r2 = r4;
    0x000110f4 ldr r1, [pc, 0x98]                            |     r1 = "pcregrep: Error in %s regex at offset %d: %s\n";
    0x000110f8 bl 0x10dd0                                    |     sprintf (r0, "pcregrep: Error in %s regex at offset %d: %s\n", r2);
    0x000110fc add r5, r5, 0x28                              |     r5 += 0x28;
                                                             |     do {
    0x00011100 mov r6, r5                                    |         r6 = r5;
    0x00011104 ldrb r3, [r6]                                 |         r3 = *(r6);
    0x00011108 add r5, r5, 1                                 |         r5++;
    0x0001110c cmp r3, 0                                     |         
    0x00011110 bne 0x11100                                   |         
                                                             |     } while (r3 != 0);
    0x00011114 mov r1, 0xa                                   |     r1 = 0xa;
    0x00011118 mov r0, r4                                    |     r0 = r4;
    0x0001111c bl 0x14480                                    |     fcn_00014480 (r0, r1);
    0x00011120 cmp r1, 2                                     |     
                                                             |     if (r1 != 2) {
    0x00011124 ldreq r1, [pc, 0x6c]                          |         r1 = *((pc + 0x6c));
                                                             |     }
                                                             |     if (r1 != 2) {
    0x00011128 beq 0x11144                                   |         
    0x0001112c cmp r1, 3                                     |         
                                                             |         if (r1 != 3) {
    0x00011130 ldreq r1, [pc, 0x64]                          |             r1 = *((pc + 0x64));
                                                             |         }
                                                             |         if (r1 == 3) {
    0x00011134 beq 0x11144                                   |             goto label_6;
                                                             |         }
    0x00011138 cmp r1, 1                                     |         
                                                             |         if (r1 != 1) {
    0x0001113c ldreq r1, [pc, 0x5c]                          |             r1 = *(0x000111a0);
                                                             |         }
                                                             |         if (r1 != 1) {
    0x00011140 ldrne r1, [pc, 0x5c]                          |             r1 = "th";
                                                             |             goto label_6;
                                                             |         }
                                                             |     }
                                                             | label_6:
    0x00011144 mov r0, r6                                    |     r0 = r6;
    0x00011148 bl 0x10c74                                    |     strcpy (r0, "th");
    0x0001114c ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00011150 ldr r2, [pc, 0x50]                            |     r2 = "th";
    0x00011154 str r3, [sp, 4]                               |     var_4h = r3;
    0x00011158 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x0001115c ldr r1, [pc, 0x48]                            |     r1 = *(0x111a8);
    0x00011160 str r3, [sp]                                  |     *(sp) = r3;
    0x00011164 add r3, sp, 0x2040                            |     r3 += arg_2040h;
    0x00011168 add r3, r3, 0x10                              |     r3 += 0x10;
    0x0001116c ldr r3, [r3]                                  |     r3 = *(r3);
    0x00011170 b 0x110b4                                     |     goto label_3;
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/pcregrep @ 0x111b0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.000111b0 ()                                  | void fcn_000111b0 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_2000h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_1ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000111b0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000111b4 sub sp, sp, 0x2000                            |     
    0x000111b8 sub sp, sp, 0x1c                              |     
    0x000111bc mov sb, r1                                    |     sb = r1;
    0x000111c0 ldr r1, [pc, 0x198]                           |     r1 = *(0x1135c);
    0x000111c4 mov r7, r0                                    |     r7 = r0;
    0x000111c8 mov r6, r2                                    |     r6 = r2;
    0x000111cc mov sl, r3                                    |     sl = r3;
    0x000111d0 bl 0x10db8                                    |     r0 = strcmp (r0, r1);
    0x000111d4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000111d8 bne 0x1122c                                   |         goto label_5;
                                                             |     }
    0x000111dc ldr r3, [pc, 0x180]                           |     r3 = *(0x11360);
    0x000111e0 ldr r4, [r3]                                  |     r4 = *(0x11360);
    0x000111e4 ldr r3, [pc, 0x17c]                           |     r3 = stdin;
    0x000111e8 ldr r7, [r3]                                  |     r7 = stdin;
                                                             |     do {
    0x000111ec mov r8, 0                                     |         r8 = 0;
    0x000111f0 add r5, sp, 0xc                               |         r5 += var_ch;
                                                             | label_0:
    0x000111f4 mov r2, r4                                    |         r2 = r4;
    0x000111f8 ldr r1, [pc, 0x16c]                           |         r1 = "_standard_input_";
    0x000111fc mov r0, r5                                    |         r0 = r5;
    0x00011200 bl 0x10cc8                                    |         r0 = fgets (r0, "_standard_input_", r2);
    0x00011204 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00011208 bne 0x1127c                                   |             goto label_6;
                                                             |         }
    0x0001120c ldr r3, [pc, 0x150]                           |         
    0x00011210 ldr r3, [r3]                                  |         r3 = *(0x11360);
    0x00011214 cmp r3, r4                                    |         
                                                             |         if (r3 != r4) {
    0x00011218 beq 0x11224                                   |             
    0x0001121c mov r0, r4                                    |             r0 = r4;
    0x00011220 bl 0x10d94                                    |             fclose (r0);
                                                             |         }
    0x00011224 mov fp, 1                                     |         
    0x00011228 b 0x1126c                                     |         goto label_2;
                                                             | label_5:
    0x0001122c ldr r1, [pc, 0x13c]                           |         r1 = *(0x1136c);
    0x00011230 mov r0, r7                                    |         r0 = r7;
    0x00011234 bl 0x10ea8                                    |         r0 = fopen64 ();
    0x00011238 subs r4, r0, 0                                |         r4 = r0 - 0;
    0x0001123c bne 0x111ec                                   |         
                                                             |     } while (r4 != r0);
    0x00011240 ldr r3, [pc, 0x12c]                           |     r3 = *(0x11370);
    0x00011244 ldr r5, [r3]                                  |     r5 = *(0x11370);
    0x00011248 bl 0x10e18                                    |     r0 = errno_location ();
    0x0001124c ldr r0, [r0]                                  |     r0 = *(r0);
    0x00011250 bl 0x10c8c                                    |     strerror (r0);
    0x00011254 mov r2, r7                                    |     r2 = r7;
    0x00011258 ldr r1, [pc, 0x118]                           |     r1 = stderr;
    0x0001125c mov r3, r0                                    |     r3 = r0;
    0x00011260 mov r0, r5                                    |     r0 = r5;
    0x00011264 bl 0x10d34                                    |     fprintf (r0, r1, r2, r3)
                                                             | label_1:
    0x00011268 mov fp, 0                                     |     
                                                             | label_2:
    0x0001126c mov r0, fp                                    |     r0 = fp;
    0x00011270 add sp, sp, 0x2000                            |     
    0x00011274 add sp, sp, 0x1c                              |     
    0x00011278 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_6:
    0x0001127c mov r0, r5                                    |     r0 = r5;
    0x00011280 bl 0x10e3c                                    |     strlen (r0);
    0x00011284 ldr r3, [pc, 0xf0]                            |     r3 = "pcregrep: Failed to open %s: %s\n";
    0x00011288 ldr r1, [r3]                                  |     r1 = "pcregrep: Failed to open %s: %s\n";
    0x0001128c add r0, r5, r0                                |     r0 = r5 + r0;
                                                             |     do {
    0x00011290 cmp r0, r5                                    |         
    0x00011294 mov r2, r0                                    |         r2 = r0;
                                                             |         if (r0 < r5) {
    0x00011298 bls 0x112b0                                   |             goto label_7;
                                                             |         }
    0x0001129c ldrb r3, [r0, -1]!                            |         r3 = *((r0 -= 1));
    0x000112a0 lsl r3, r3, 1                                 |         r3 <<= 1;
    0x000112a4 ldrh r3, [r1, r3]                             |         r3 = *((r1 + r3));
    0x000112a8 tst r3, 0x20                                  |         
    0x000112ac bne 0x11290                                   |         
                                                             |     } while ((r3 & 0x20) != 0);
                                                             | label_7:
    0x000112b0 mov r3, 0                                     |     r3 = 0;
    0x000112b4 strb r3, [r2]                                 |     *(r2) = r3;
    0x000112b8 ldrb r3, [sp, 0xc]                            |     r3 = var_ch;
    0x000112bc add r8, r8, 1                                 |     r8++;
    0x000112c0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000112c4 beq 0x111f4                                   |         goto label_0;
                                                             |     }
    0x000112c8 ldr r1, [r6]                                  |     r1 = *(r6);
    0x000112cc mov r0, r5                                    |     r0 = r5;
    0x000112d0 bl 0x12ac4                                    |     r0 = fcn_00012ac4 (r0, r1);
    0x000112d4 cmp r0, 0                                     |     
    0x000112d8 mov fp, r0                                    |     
    0x000112dc str r0, [r6]                                  |     *(r6) = r0;
                                                             |     if (r0 != 0) {
    0x000112e0 bne 0x11300                                   |         goto label_8;
                                                             |     }
    0x000112e4 ldr r3, [pc, 0x78]                            |     
    0x000112e8 ldr r3, [r3]                                  |     r3 = *(0x11360);
    0x000112ec cmp r3, r4                                    |     
                                                             |     if (r3 == r4) {
                                                             | label_3:
    0x000112f0 beq 0x11268                                   |         goto label_1;
                                                             |     }
    0x000112f4 mov r0, r4                                    |     r0 = r4;
    0x000112f8 bl 0x10d94                                    |     fclose (r0);
    0x000112fc b 0x1126c                                     |     goto label_2;
                                                             | label_8:
    0x00011300 ldr r3, [sb]                                  |     r3 = *(sb);
    0x00011304 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00011308 streq r0, [sb]                                |         *(sb) = r0;
                                                             |     }
                                                             | label_4:
    0x0001130c ldr r1, [pc, 0x6c]                            |     
    0x00011310 stm sp, {r7, r8}                              |     *(sp) = r7;
                                                             |     *((sp + 4)) = r8;
    0x00011314 ldr r0, [r6]                                  |     r0 = *(r6);
    0x00011318 mov r3, 1                                     |     r3 = 1;
    0x0001131c mov r2, sl                                    |     r2 = sl;
    0x00011320 ldr r1, [r1, 0x38]                            |     r1 = *(0x113b4);
    0x00011324 bl 0x10f4c                                    |     r0 = fcn_00010f4c (r0, r1, r2);
    0x00011328 subs fp, r0, 0                                |     
                                                             |     if (fp == r0) {
    0x0001132c bne 0x11340                                   |         
    0x00011330 ldr r2, [pc, 0x2c]                            |         
    0x00011334 ldr r2, [r2]                                  |         r2 = *(0x11360);
    0x00011338 cmp r2, r4                                    |         
    0x0001133c b 0x112f0                                     |         goto label_3;
                                                             |     }
    0x00011340 ldr r3, [r6]                                  |     r3 = *(r6);
    0x00011344 mov r2, 0                                     |     r2 = 0;
    0x00011348 str r2, [r3, 4]                               |     *((r3 + 4)) = r2;
    0x0001134c ldr r3, [r3]                                  |     r3 = *(r3);
    0x00011350 cmp r3, r2                                    |     
                                                             |     if (r3 == r2) {
    0x00011354 beq 0x111f4                                   |         goto label_0;
                                                             |     }
    0x00011358 str r3, [r6]                                  |     *(r6) = r3;
    0x0001135c b 0x1130c                                     |     goto label_4;
                                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/pcregrep @ 0x127c8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000127c8 ()                  | void fcn_000127c8 (int32_t arg1) {
                                             |     int32_t var_38h;
                                             |     r0 = arg1;
    0x000127c8 ldr r3, [pc, 0x44]            |     
    0x000127cc push {r0, r1, r2, lr}         |     
    0x000127d0 ldr r3, [r3, 8]               |     r3 = stderr;
    0x000127d4 mov r5, r0                    |     r5 = r0;
    0x000127d8 cmp r3, 0                     |     
                                             |     if (r3 != 0) {
    0x000127dc beq 0x1280c                   |         
    0x000127e0 ldr r4, [pc, 0x30]            |         r4 = *(0x12814);
    0x000127e4 mvn r3, 0x1a                  |         r3 = ~0x1a;
    0x000127e8 str r3, [sp]                  |         *(sp) = r3;
    0x000127ec ldr r1, [pc, 0x28]            |         r1 = stderr;
    0x000127f0 mvn r3, 0x14                  |         r3 = ~0x14;
    0x000127f4 mvn r2, 7                     |         r2 = ~7;
    0x000127f8 ldr r0, [r4]                  |         r0 = *(0x12814);
    0x000127fc bl 0x10d34                    |         fprintf (r0, r1, r2, r3, r4)
    0x00012800 ldr r1, [r4]                  |         r1 = *(0x12814);
    0x00012804 ldr r0, [pc, 0x14]            |         r0 = "pcregrep:_Error__d___d_or__d_means_that_a_resource_limit_was_exceeded.";
    0x00012808 bl 0x10e60                    |         fputs ("pcregrep:_Error__d___d_or__d_means_that_a_resource_limit_was_exceeded.", r1);
                                             |     }
    0x0001280c mov r0, r5                    |     r0 = r5;
    0x00012810 bl 0x10e24                    |     exit (r0);
                                             |     if (r3 != 0) {
    0x00012814 muleq r2, r4, r5              |         r2 = r4 * r5;
                                             |     }
                                             |     if (r3 != 0) {
    0x00012818 andeq r6, r2, r0, ror r5      |         r6 = r2 & (r0 >>> r5);
                                             |     }
                                             |     if (r3 != 0) {
    0x0001281c andeq r4, r1, r8, ror r5      |         r4 = r1 & (r8 >>> r5);
                                             |     }
                                             |     /* Beware that this jump is a conditional jump.
                                             |      * r2dec transformed it as a return, due being the
                                             |      * last instruction. Please, check 'pdda' output
                                             |      * for more hints. */
    0x00012820 andeq r4, r1, r0, asr 11      |     return r4 = r1 & (r0 >> 11);
                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/pcregrep @ 0x12824 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00012824 ()                                  | void fcn_00012824 (int32_t arg1, uint32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_38h;
                                                             |     int32_t var_3ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00012824 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00012828 ldr r6, [pc, 0x150]                           |     r6 = *(0x1297c);
    0x0001282c mov fp, r3                                    |     
    0x00012830 ldr r3, [pc, 0x14c]                           |     r3 = "text that starts:\n\n";
    0x00012834 cmp r1, 0xc8                                  |     
    0x00012838 ldr r4, [r3, 0xc]                             |     r4 = stderr;
    0x0001283c ldr r3, [pc, 0x144]                           |     r3 = *(0x12984);
    0x00012840 sub sp, sp, 0x14                              |     
    0x00012844 mov r8, r0                                    |     r8 = r0;
    0x00012848 mov r7, r1                                    |     r7 = r1;
    0x0001284c mov sl, r2                                    |     sl = r2;
                                                             |     if (r1 > 0xc8) {
    0x00012850 movls sb, r1                                  |         sb = r1;
                                                             |     }
                                                             |     if (r1 <= 0xc8) {
    0x00012854 movhi sb, 0xc8                                |         sb = 0xc8;
                                                             |     }
                                                             |     if (r1 > 0xc8) {
    0x00012858 movls r6, r3                                  |         r6 = r3;
                                                             |     }
    0x0001285c mov r5, 1                                     |     r5 = 1;
                                                             |     do {
    0x00012860 cmp r4, 0                                     |         
                                                             |         if (r4 == 0) {
    0x00012864 bne 0x12874                                   |             
    0x00012868 mov r0, r4                                    |             r0 = r4;
                                                             | label_0:
    0x0001286c add sp, sp, 0x14                              |             
    0x00012870 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |             
                                                             |         }
    0x00012874 mov r3, 0x63                                  |         r3 = 0x63;
    0x00012878 str r3, [sp, 0xc]                             |         var_ch = r3;
    0x0001287c ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x00012880 str sl, [sp, 4]                               |         var_4h = sl;
    0x00012884 str r3, [sp, 8]                               |         var_8h = r3;
    0x00012888 str fp, [sp]                                  |         *(sp) = fp;
    0x0001288c mov r3, r7                                    |         r3 = r7;
    0x00012890 mov r2, r8                                    |         r2 = r8;
    0x00012894 ldr r1, [r4, 0xc]                             |         r1 = *((r4 + 0xc));
    0x00012898 ldr r0, [r4, 8]                               |         r0 = *((r4 + 8));
    0x0001289c bl 0x10e78                                    |         pcre_exec ();
    0x000128a0 ldr r3, [sp, 0x3c]                            |         r3 = var_3ch;
    0x000128a4 cmp r0, 0                                     |         
    0x000128a8 mov r2, r0                                    |         r2 = r0;
    0x000128ac str r0, [r3]                                  |         *(r3) = r0;
                                                             |         if (r0 >= 0) {
    0x000128b0 bge 0x12978                                   |             goto label_1;
                                                             |         }
    0x000128b4 cmn r0, 1                                     |         
                                                             |         if (r0 != 1) {
    0x000128b8 ldreq r4, [r4]                                |             r4 = *(r4);
                                                             |         }
                                                             |         if (r0 != 1) {
    0x000128bc addeq r5, r5, 1                               |             r5++;
                                                             |         }
    0x000128c0 beq 0x12860                                   |         
                                                             |     } while (r0 == 1);
    0x000128c4 ldr r4, [pc, 0xc0]                            |     r4 = "this_text:";
    0x000128c8 ldr r7, [pc, 0xb4]                            |     r7 = "text that starts:\n\n";
    0x000128cc ldr r1, [pc, 0xbc]                            |     r1 = stderr;
    0x000128d0 ldr r0, [r4]                                  |     r0 = "this_text:";
    0x000128d4 bl 0x10d34                                    |     fprintf ("this_text:", r1, r2, r3, "this_text:")
    0x000128d8 ldr r3, [r7, 0xc]                             |     
    0x000128dc ldr r3, [r3]                                  |     r3 = stderr;
    0x000128e0 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000128e4 beq 0x128f8                                   |         
    0x000128e8 mov r2, r5                                    |         r2 = r5;
    0x000128ec ldr r1, [pc, 0xa0]                            |         r1 = "pcregrep: pcre_exec() gave error %d while matching ";
    0x000128f0 ldr r0, [r4]                                  |         r0 = *(r4);
    0x000128f4 bl 0x10d34                                    |         fprintf (r0, "pcregrep: pcre_exec() gave error %d while matching ", r2)
                                                             |     }
    0x000128f8 ldr r1, [r4]                                  |     r1 = *(r4);
    0x000128fc mov r0, r6                                    |     r0 = r6;
    0x00012900 bl 0x10e60                                    |     fputs (r0, r1);
    0x00012904 ldr r3, [r4]                                  |     r3 = *(r4);
    0x00012908 mov r2, sb                                    |     r2 = sb;
    0x0001290c mov r1, 1                                     |     r1 = 1;
    0x00012910 mov r0, r8                                    |     r0 = r8;
    0x00012914 bl 0x10e00                                    |     fwrite (r0, r1, r2, r3);
    0x00012918 ldr r1, [r4]                                  |     r1 = *(r4);
    0x0001291c ldr r0, [pc, 0x74]                            |     r0 = "pattern number %d to ";
    0x00012920 bl 0x10e60                                    |     fputs ("pattern number %d to ", r1);
    0x00012924 ldr r3, [sp, 0x3c]                            |     r3 = var_3ch;
    0x00012928 ldr r3, [r3]                                  |     r3 = *(r3);
    0x0001292c add r3, r3, 0x1b                              |     r3 += 0x1b;
    0x00012930 cmp r3, 0x13                                  |     
                                                             |     if (r3 <= 0x13) {
    0x00012934 bhi 0x1294c                                   |         
    0x00012938 ldr r2, [pc, 0x5c]                            |         r2 = "_";
    0x0001293c mvn r3, r2, lsr r3                            |         r3 = ~r2;
    0x00012940 tst r3, 1                                     |         
                                                             |         if ((r3 & 1) != 0) {
    0x00012944 moveq r3, 1                                   |             r3 = 1;
                                                             |         }
                                                             |         if ((r3 & 1) == 0) {
    0x00012948 streq r3, [r7, 8]                             |             *((r7 + 8)) = r3;
                                                             |             goto label_2;
                                                             |         }
                                                             |     }
                                                             | label_2:
    0x0001294c ldr r3, [r7, 0x10]                            |     r3 = *((r7 + 0x10));
    0x00012950 add r2, r3, 1                                 |     r2 = r3 + 1;
    0x00012954 cmp r3, 0x14                                  |     
    0x00012958 str r2, [r7, 0x10]                            |     *((r7 + 0x10)) = r2;
                                                             |     if (r3 <= 0x14) {
    0x0001295c ldrle r0, [r7, 0x14]                          |         r0 = *((r7 + 0x14));
                                                             |         goto label_3;
                                                             |     }
                                                             |     if (r3 <= 0x14) {
                                                             | label_3:
    0x00012960 ble 0x1286c                                   |         goto label_0;
                                                             |     }
    0x00012964 ldr r1, [r4]                                  |     r1 = *(r4);
    0x00012968 ldr r0, [pc, 0x30]                            |     r0 = *(0x1299c);
    0x0001296c bl 0x10e60                                    |     fputs (r0, r1);
    0x00012970 mov r0, 2                                     |     r0 = 2;
    0x00012974 bl 0x127c8                                    |     fcn_000127c8 (r0);
                                                             | label_1:
    0x00012978 mov r0, 1                                     |     r0 = 1;
    0x0001297c b 0x1286c                                     |     goto label_0;
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/pcregrep @ 0x129a4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.000129a4 ()                                  | void fcn_000129a4 (uint32_t arg1, int32_t arg2) {
                                                             |     int32_t var_4h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_14h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000129a4 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000129a8 ldr r4, [pc, 0xc8]                            |     r4 = *(0x12a74);
    0x000129ac mov sb, r3                                    |     sb = r3;
    0x000129b0 ldr r3, [r4, 0x18]                            |     r3 = *(0x12a8c);
    0x000129b4 sub sp, sp, 0x14                              |     
    0x000129b8 cmp r0, 0                                     |     
    0x000129bc cmpne r3, 0                                   |     __asm ("cmpne r3, 0");
                                                             |     if (r0 <= 0) {
    0x000129c0 ble 0x12a70                                   |         goto label_0;
                                                             |     }
    0x000129c4 mov r5, r1                                    |     r5 = r1;
    0x000129c8 mov r8, r2                                    |     r8 = r2;
    0x000129cc mov r6, r0                                    |     r6 = r0;
    0x000129d0 mov r3, 0                                     |     r3 = 0;
    0x000129d4 ldr r7, [pc, 0xa0]                            |     r7 = *(0x12a78);
    0x000129d8 ldr fp, [pc, 0xa0]                            |     fp = "%lu-";
    0x000129dc b 0x12a4c                                     |     
                                                             |     while (r3 < r2) {
    0x000129e0 cmp sb, 0                                     |         
                                                             |         if (sb != 0) {
    0x000129e4 beq 0x129f8                                   |             
    0x000129e8 mov r2, sb                                    |             r2 = sb;
    0x000129ec ldr r1, [pc, 0x90]                            |             r1 = "%lu-";
    0x000129f0 ldr r0, [r7]                                  |             r0 = *(r7);
    0x000129f4 bl 0x10d34                                    |             fprintf (r0, "%lu-", r2)
                                                             |         }
    0x000129f8 ldr r3, [r4, 0x1c]                            |         r3 = *((r4 + 0x1c));
    0x000129fc cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00012a00 beq 0x12a1c                                   |             
    0x00012a04 mov r2, r6                                    |             r2 = r6;
    0x00012a08 mov r1, fp                                    |             r1 = fp;
    0x00012a0c ldr r0, [r7]                                  |             r0 = *(r7);
    0x00012a10 bl 0x10d34                                    |             fprintf (r0, r1, r2)
    0x00012a14 add sl, r6, 1                                 |             sl = r6 + 1;
    0x00012a18 mov r6, sl                                    |             r6 = sl;
                                                             |         }
    0x00012a1c add r2, sp, 0xc                               |         r2 += var_ch;
    0x00012a20 mov r1, r8                                    |         r1 = r8;
    0x00012a24 mov r0, r5                                    |         r0 = r5;
    0x00012a28 bl 0x1245c                                    |         fcn_0001245c ();
    0x00012a2c ldr r3, [r7]                                  |         r3 = *(r7);
    0x00012a30 mov r1, 1                                     |         r1 = 1;
    0x00012a34 sub r2, r0, r5                                |         r2 = r0 - r5;
    0x00012a38 mov sl, r0                                    |         sl = r0;
    0x00012a3c mov r0, r5                                    |         r0 = r5;
    0x00012a40 bl 0x10e00                                    |         fwrite (r0, r1, r2, r3);
    0x00012a44 ldr r3, [sp, 4]                               |         r3 = var_4h;
    0x00012a48 mov r5, sl                                    |         r5 = sl;
    0x00012a4c cmp r8, r5                                    |         
                                                             |         if (r8 < r5) {
    0x00012a50 bls 0x12a68                                   |             goto label_1;
                                                             |         }
    0x00012a54 add r2, r3, 1                                 |         r2 = r3 + 1;
    0x00012a58 str r2, [sp, 4]                               |         var_4h = r2;
    0x00012a5c ldr r2, [r4, 0x18]                            |         r2 = *((r4 + 0x18));
    0x00012a60 cmp r3, r2                                    |         
    0x00012a64 blt 0x129e0                                   |         
                                                             |     }
                                                             | label_1:
    0x00012a68 mov r3, 1                                     |     r3 = 1;
    0x00012a6c str r3, [r4, 0x20]                            |     *((r4 + 0x20)) = r3;
                                                             | label_0:
    0x00012a70 add sp, sp, 0x14                              |     
    0x00012a74 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/pcregrep @ 0x12ac4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00012ac4 ()                  | void fcn_00012ac4 (char * arg1, int32_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x00012ac4 push {r4, r5, r6, lr}         |     
    0x00012ac8 mov r6, r0                    |     r6 = r0;
    0x00012acc mov r0, 0x10                  |     r0 = 0x10;
    0x00012ad0 mov r5, r1                    |     r5 = r1;
    0x00012ad4 bl 0x10ce0                    |     r0 = malloc (r0);
    0x00012ad8 subs r4, r0, 0                |     r4 = r0 - 0;
                                             |     if (r4 == r0) {
    0x00012adc bne 0x12ae4                   |         
    0x00012ae0 bl 0x10f28                    |         fcn_00010f28 (r0);
                                             |     }
    0x00012ae4 mov r0, r6                    |     r0 = r6;
    0x00012ae8 bl 0x10e3c                    |     r0 = strlen (r0);
    0x00012aec cmp r0, 0x2000                |     
                                             |     if (r0 < 0x2000) {
    0x00012af0 bls 0x12b1c                   |         goto label_0;
                                             |     }
    0x00012af4 ldr r3, [pc, 0x44]            |     r3 = *(0x12b3c);
    0x00012af8 mov r2, 0x2000                |     r2 = 0x2000;
    0x00012afc ldr r1, [pc, 0x40]            |     r1 = stderr;
    0x00012b00 ldr r0, [r3]                  |     r0 = *(0x12b3c);
    0x00012b04 bl 0x10d34                    |     fprintf (r0, r1, r2, r3)
    0x00012b08 mov r0, r4                    |     r0 = r4;
    0x00012b0c bl 0x10e9c                    |     free (r0);
    0x00012b10 mov r4, 0                     |     r4 = 0;
                                             |     do {
    0x00012b14 mov r0, r4                    |         r0 = r4;
    0x00012b18 pop {r4, r5, r6, pc}          |         
                                             | label_0:
    0x00012b1c mov r3, 0                     |         r3 = 0;
    0x00012b20 cmp r5, r3                    |         
    0x00012b24 stm r4, {r3, r6}              |         *(r4) = r3;
                                             |         *((r4 + 4)) = r6;
    0x00012b28 str r3, [r4, 8]               |         *((r4 + 8)) = r3;
    0x00012b2c str r3, [r4, 0xc]             |         *((r4 + 0xc)) = r3;
                                             |         if (r5 == r3) {
    0x00012b30 ldrne r3, [r5]                |             r3 = *(r5);
                                             |         }
                                             |         if (r5 == r3) {
    0x00012b34 strne r4, [r5]                |             *(r5) = r4;
                                             |         }
                                             |         if (r5 == r3) {
    0x00012b38 strne r3, [r4]                |             *(r4) = r3;
                                             |         }
    0x00012b3c b 0x12b14                     |         
                                             |     } while (1);
                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/pcregrep @ 0x12b48 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00012b48 ()                                  | void fcn_00012b48 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_38h;
                                                             |     int32_t var_3ch;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_44h;
                                                             |     int32_t var_48h;
                                                             |     int32_t var_4ch;
                                                             |     int32_t var_50h;
                                                             |     int32_t var_54h;
                                                             |     int32_t var_58h;
                                                             |     int32_t var_5ch;
                                                             |     int32_t var_60h;
                                                             |     void * ptr;
                                                             |     int32_t var_68h;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_1f0h;
                                                             |     int32_t var_1f4h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00012b48 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00012b4c ldr r5, [pc, 0xe30]                           |     r5 = *(0x13980);
    0x00012b50 sub sp, sp, 0x1f4                             |     
    0x00012b54 ldr r3, [r5, 0x40]                            |     r3 = *(0x139c0);
    0x00012b58 str r1, [sp, 0x3c]                            |     var_3ch = r1;
    0x00012b5c str r3, [sp, 0x30]                            |     var_30h = r3;
    0x00012b60 mov fp, r2                                    |     
    0x00012b64 str r0, [sp, 0x2c]                            |     var_2ch = r0;
    0x00012b68 ldr r4, [r5, 0x3c]                            |     r4 = "_c_00m";
    0x00012b6c bl 0x10e30                                    |     r0 = fileno (r0);
    0x00012b70 bl 0x10cec                                    |     isatty (r0);
    0x00012b74 ldr r3, [pc, 0xe0c]                           |     r3 = *(0x13984);
    0x00012b78 ldr r1, [r3, 4]                               |     r1 = "_standard_input_";
    0x00012b7c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00012b80 bne 0x12ba8                                   |         
    0x00012b84 ldr r3, [sp, 0x30]                            |         r3 = var_30h;
    0x00012b88 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00012b8c bne 0x12bb0                                   |             
    0x00012b90 mov r2, r1                                    |             r2 = r1;
    0x00012b94 ldr r3, [sp, 0x2c]                            |             r3 = var_2ch;
    0x00012b98 mov r1, 1                                     |             r1 = 1;
    0x00012b9c mov r0, r4                                    |             r0 = r4;
    0x00012ba0 bl 0x10d70                                    |             fread (r0, r1, r2, r3);
    0x00012ba4 b 0x12bbc                                     |             
                                                             |         } else {
    0x00012ba8 mov r3, 1                                     |             r3 = 1;
    0x00012bac str r3, [sp, 0x30]                            |             var_30h = r3;
                                                             |         }
    0x00012bb0 ldr r2, [sp, 0x2c]                            |         r2 = var_2ch;
    0x00012bb4 mov r0, r4                                    |         r0 = r4;
    0x00012bb8 bl 0x12754                                    |         fcn_00012754 (r0, r1);
                                                             |     }
    0x00012bbc str r0, [sp, 0x1c]                            |     var_1ch = r0;
    0x00012bc0 ldr r3, [sp, 0x1c]                            |     r3 = var_1ch;
    0x00012bc4 ldr r0, [r5, 0x3c]                            |     r0 = *((r5 + 0x3c));
    0x00012bc8 ldr r5, [r5, 0x44]                            |     r5 = *((r5 + 0x44));
    0x00012bcc add r3, r0, r3                                |     r3 = r0 + r3;
    0x00012bd0 cmp r5, 2                                     |     
    0x00012bd4 str r3, [sp, 0xc]                             |     var_ch = r3;
                                                             |     if (r5 == 2) {
    0x00012bd8 beq 0x13954                                   |         goto label_23;
                                                             |     }
    0x00012bdc ldr r3, [sp, 0x1c]                            |     r3 = var_1ch;
    0x00012be0 mov r1, 0                                     |     r1 = 0;
    0x00012be4 cmp r3, 0x400                                 |     
                                                             |     if (r3 >= 0x400) {
    0x00012be8 movlo r2, r3                                  |         r2 = r3;
                                                             |     }
                                                             |     if (r3 < 0x400) {
    0x00012bec movhs r2, 0x400                               |         r2 = 0x400;
                                                             |     }
    0x00012bf0 bl 0x10d4c                                    |     r0 = memchr (r0, r1, r2);
    0x00012bf4 adds r3, r0, 0                                |     r3 = r0 + 0;
                                                             |     if (r3 == r0) {
    0x00012bf8 movne r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00012bfc str r3, [sp, 0x20]                            |     var_20h = r3;
    0x00012c00 cmp r5, 1                                     |     
                                                             |     if (r5 == 1) {
    0x00012c04 movne r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r5 != 1) {
    0x00012c08 andeq r3, r3, 1                               |         r3 &= 1;
                                                             |     }
    0x00012c0c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00012c10 beq 0x1395c                                   |         goto label_24;
                                                             |     }
                                                             |     do {
    0x00012c14 mov r7, 1                                     |         r7 = 1;
    0x00012c18 b 0x12cb4                                     |         goto label_1;
                                                             | label_0:
    0x00012c1c mov r3, 0                                     |         r3 = 0;
    0x00012c20 add r2, sp, 0x58                              |         r2 += var_58h;
    0x00012c24 ldr r1, [sp, 0xc]                             |         r1 = var_ch;
    0x00012c28 mov r0, r4                                    |         r0 = r4;
    0x00012c2c str r3, [sp, 0x5c]                            |         var_5ch = r3;
    0x00012c30 bl 0x1245c                                    |         fcn_0001245c ();
    0x00012c34 ldr r6, [sp, 0x58]                            |         r6 = var_58h;
    0x00012c38 sub r3, r0, r4                                |         r3 = r0 - r4;
    0x00012c3c sub r3, r3, r6                                |         r3 -= r6;
    0x00012c40 str r3, [sp, 0x18]                            |         var_18h = r3;
    0x00012c44 ldr r3, [pc, 0xd38]                           |         r3 = *(0x13980);
    0x00012c48 ldr r2, [r3, 0x48]                            |         r2 = *(0x139c8);
    0x00012c4c cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x00012c50 ldrne r2, [sp, 0xc]                           |             r2 = var_ch;
                                                             |         }
                                                             |         if (r2 != 0) {
    0x00012c54 ldreq r2, [sp, 0x18]                          |             r2 = var_18h;
                                                             |         }
                                                             |         if (r2 == 0) {
    0x00012c58 subne r2, r2, r4                              |             r2 -= r4;
                                                             |         }
    0x00012c5c cmp r6, 0                                     |         
    0x00012c60 str r2, [sp, 0x24]                            |         var_24h = r2;
                                                             |         if (r6 == 0) {
    0x00012c64 bne 0x12cc0                                   |             
    0x00012c68 ldr r2, [pc, 0xd18]                           |             
    0x00012c6c ldr r3, [r3, 0x3c]                            |             r3 = *((r3 + 0x3c));
    0x00012c70 ldr r2, [r2, 4]                               |             r2 = "_standard_input_";
    0x00012c74 add r3, r3, r2                                |             r3 += r2;
    0x00012c78 cmp r0, r3                                    |             
                                                             |             if (r0 != r3) {
    0x00012c7c bne 0x12fbc                                   |                 goto label_25;
                                                             |             }
    0x00012c80 ldr r3, [pc, 0xd04]                           |             r3 = "_standard_input_";
    0x00012c84 ldr r1, [pc, 0xd04]                           |             r1 = stderr;
    0x00012c88 ldr r0, [r3]                                  |             r0 = "_standard_input_";
    0x00012c8c ldr r3, [sp, 0x3c]                            |             r3 = var_3ch;
    0x00012c90 mov r7, 2                                     |             r7 = 2;
    0x00012c94 cmp r3, 0                                     |             
                                                             |             if (r3 != 0) {
    0x00012c98 ldreq r3, [pc, 0xcf4]                         |                 r3 = *((pc + 0xcf4));
                                                             |             }
                                                             |             if (r3 == 0) {
    0x00012c9c ldrne r3, [pc, 0xcf4]                         |                 r3 = " of file ";
                                                             |             }
                                                             |             if (r3 != 0) {
    0x00012ca0 streq r3, [sp, 0x3c]                          |                 var_3ch = r3;
                                                             |             }
    0x00012ca4 ldr r2, [sp, 0x3c]                            |             r2 = var_3ch;
    0x00012ca8 str r2, [sp]                                  |             *(sp) = r2;
    0x00012cac ldr r2, [sp, 0x10]                            |             r2 = var_10h;
    0x00012cb0 bl 0x10d34                                    |             fprintf ("_standard_input_", r1, r2, "_standard_input_")
                                                             | label_1:
    0x00012cb4 mov r0, r7                                    |             r0 = r7;
    0x00012cb8 add sp, sp, 0x1f4                             |             
    0x00012cbc pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |             
                                                             |         }
    0x00012cc0 mvn r8, 0                                     |         r8 = ~0;
    0x00012cc4 mov r6, 0                                     |         r6 = 0;
    0x00012cc8 str r8, [sp, 0x40]                            |         var_40h = r8;
                                                             | label_2:
    0x00012ccc ldr r5, [pc, 0xcb0]                           |         r5 = *(0x13980);
    0x00012cd0 mov sb, r6                                    |         sb = r6;
                                                             | label_4:
    0x00012cd4 add r3, sp, 0x5c                              |         r3 += var_5ch;
    0x00012cd8 str r3, [sp, 4]                               |         var_4h = r3;
    0x00012cdc add r3, sp, 0x64                              |         r3 += ptr;
    0x00012ce0 str r3, [sp]                                  |         *(sp) = r3;
    0x00012ce4 mov r2, sb                                    |         r2 = sb;
    0x00012ce8 mov r3, r6                                    |         r3 = r6;
    0x00012cec ldr r1, [sp, 0x24]                            |         r1 = var_24h;
    0x00012cf0 mov r0, r4                                    |         r0 = r4;
    0x00012cf4 bl 0x12824                                    |         fcn_00012824 (r0, r1);
    0x00012cf8 ldr r3, [r5, 0x14]                            |         r3 = *((r5 + 0x14));
    0x00012cfc cmp r0, r3                                    |         
    0x00012d00 str r0, [sp, 0x44]                            |         var_44h = r0;
                                                             |         if (r0 == r3) {
    0x00012d04 beq 0x12d7c                                   |             goto label_26;
                                                             |         }
    0x00012d08 ldr r2, [pc, 0xc78]                           |         
    0x00012d0c ldr r2, [r2, 8]                               |         r2 = stderr;
    0x00012d10 cmp r2, 3                                     |         
    0x00012d14 beq 0x12c14                                   |         
                                                             |     } while (r2 == 3);
    0x00012d18 ldr r1, [r5, 0x4c]                            |     r1 = *((r5 + 0x4c));
    0x00012d1c cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x00012d20 bne 0x13008                                   |         goto label_27;
                                                             |     }
    0x00012d24 ldr r7, [r5, 0x50]                            |     r7 = *((r5 + 0x50));
    0x00012d28 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x00012d2c beq 0x12fc8                                   |         goto label_28;
                                                             |     }
    0x00012d30 ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x00012d34 add r3, r3, 1                                 |     r3++;
    0x00012d38 str r3, [sp, 0x34]                            |     var_34h = r3;
                                                             | label_3:
    0x00012d3c ldr r3, [pc, 0xc40]                           |     
    0x00012d40 ldr r3, [r3, 0x40]                            |     r3 = *(0x139c0);
    0x00012d44 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00012d48 beq 0x12d58                                   |         
    0x00012d4c ldr r3, [pc, 0xc48]                           |         r3 = " of file ";
    0x00012d50 ldr r0, [r3]                                  |         r0 = " of file ";
    0x00012d54 bl 0x10cf8                                    |         fflush (" of file ");
                                                             |     }
    0x00012d58 ldr r3, [sp, 0x58]                            |     r3 = var_58h;
    0x00012d5c ldr r2, [sp, 0x18]                            |     r2 = var_18h;
    0x00012d60 mov r7, 0                                     |     r7 = 0;
    0x00012d64 add r3, r2, r3                                |     r3 = r2 + r3;
    0x00012d68 add sl, r4, r3                                |     sl = r4 + r3;
    0x00012d6c ldr r3, [sp, 0x10]                            |     r3 = var_10h;
    0x00012d70 add r3, r3, 1                                 |     r3++;
    0x00012d74 str r3, [sp, 0x14]                            |     var_14h = r3;
    0x00012d78 ldr r3, [sp, 0x44]                            |     r3 = var_44h;
                                                             | label_26:
    0x00012d7c ldr r2, [pc, 0xc00]                           |     r2 = *(0x13980);
    0x00012d80 ldr r1, [r2, 0x48]                            |     r1 = *(0x139c8);
    0x00012d84 cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x00012d88 beq 0x12da8                                   |         
    0x00012d8c ldr r2, [r2, 0x14]                            |         r2 = *((r2 + 0x14));
    0x00012d90 cmp r2, 0                                     |         
    0x00012d94 cmpne r3, 0                                   |         __asm ("cmpne r3, 0");
                                                             |         if (r2 == 0) {
    0x00012d98 ldrne r5, [sp, 0x68]                          |             r5 = var_68h;
                                                             |         }
                                                             |         if (r2 == 0) {
    0x00012d9c movne r0, r4                                  |             r0 = r4;
                                                             |         }
                                                             |         if (r2 == 0) {
    0x00012da0 addne r5, r4, r5                              |             r5 = r4 + r5;
                                                             |         }
                                                             |         if (r2 != 0) {
    0x00012da4 bne 0x138f0                                   |             goto label_29;
                                                             |         }
                                                             |     }
                                                             | label_20:
    0x00012da8 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x00012dac ldr r0, [sp, 0x58]                            |     r0 = var_58h;
    0x00012db0 add r0, r3, r0                                |     r0 = r3 + r0;
    0x00012db4 ldr r3, [sp, 0x28]                            |     r3 = var_28h;
    0x00012db8 add r4, r4, r0                                |     r4 += r0;
    0x00012dbc add r3, r3, r0                                |     r3 += r0;
    0x00012dc0 str r3, [sp, 0x28]                            |     var_28h = r3;
    0x00012dc4 ldr r3, [sp, 0x10]                            |     r3 = var_10h;
    0x00012dc8 add r3, r3, 1                                 |     r3++;
    0x00012dcc str r3, [sp, 0x10]                            |     var_10h = r3;
    0x00012dd0 ldr r3, [sp, 0x30]                            |     r3 = var_30h;
    0x00012dd4 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00012dd8 beq 0x12e24                                   |         
    0x00012ddc ldr r3, [pc, 0xba4]                           |         r3 = *(0x13984);
    0x00012de0 ldr r1, [r3, 4]                               |         r1 = "_standard_input_";
    0x00012de4 ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x00012de8 cmp r3, r1                                    |         
                                                             |         if (r3 >= r1) {
    0x00012dec bhs 0x12e24                                   |             goto label_30;
                                                             |         }
    0x00012df0 ldr r3, [pc, 0xb8c]                           |         
    0x00012df4 ldr r2, [sp, 0x2c]                            |         r2 = var_2ch;
    0x00012df8 ldr r3, [r3, 0x3c]                            |         r3 = "_c_00m";
    0x00012dfc mov r0, r4                                    |         r0 = r4;
    0x00012e00 sub r3, r4, r3                                |         r3 = r4 - r3;
    0x00012e04 sub r1, r1, r3                                |         r1 -= r3;
    0x00012e08 bl 0x12754                                    |         fcn_00012754 (r0, r1);
    0x00012e0c ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x00012e10 add r3, r3, r0                                |         r3 += r0;
    0x00012e14 str r3, [sp, 0x1c]                            |         var_1ch = r3;
    0x00012e18 ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00012e1c add r3, r3, r0                                |         r3 += r0;
    0x00012e20 str r3, [sp, 0xc]                             |         var_ch = r3;
                                                             |     }
                                                             | label_30:
    0x00012e24 ldr r3, [pc, 0xb5c]                           |     r3 = *(0x13984);
    0x00012e28 ldr r1, [sp, 0x1c]                            |     r1 = var_1ch;
    0x00012e2c ldr r2, [r3, 4]                               |     r2 = "_standard_input_";
    0x00012e30 cmp r2, r1                                    |     
                                                             |     if (r2 <= r1) {
    0x00012e34 bhi 0x12f00                                   |         
    0x00012e38 ldr r5, [pc, 0xb44]                           |         r5 = *(0x13980);
    0x00012e3c ldr r2, [r3, 0x14]                            |         r2 = *((r3 + 0x14));
    0x00012e40 ldr r3, [r5, 0x3c]                            |         r3 = "_c_00m";
    0x00012e44 add r3, r3, r2, lsl 1                         |         r3 += (r2 << 1);
    0x00012e48 cmp r4, r3                                    |         
                                                             |         if (r4 < r3) {
    0x00012e4c bls 0x12f00                                   |             goto label_22;
                                                             |         }
    0x00012e50 ldr r1, [r5, 0x18]                            |         r1 = *((r5 + 0x18));
    0x00012e54 cmp r1, 0                                     |         
                                                             |         if (r1 > 0) {
    0x00012e58 ble 0x12e90                                   |             
    0x00012e5c ldr r1, [sp, 0x14]                            |             r1 = var_14h;
    0x00012e60 cmp r1, 0                                     |             
                                                             |             if (r1 == 0) {
    0x00012e64 beq 0x12e90                                   |                 goto label_31;
                                                             |             }
    0x00012e68 sub r3, r3, r2                                |             r3 -= r2;
    0x00012e6c cmp sl, r3                                    |             
                                                             |             if (sl >= r3) {
    0x00012e70 bhs 0x12e90                                   |                 goto label_31;
                                                             |             }
    0x00012e74 mov r3, fp                                    |             r3 = fp;
    0x00012e78 ldr r2, [sp, 0xc]                             |             r2 = var_ch;
    0x00012e7c mov r1, sl                                    |             r1 = sl;
    0x00012e80 ldr r0, [sp, 0x14]                            |             r0 = var_14h;
    0x00012e84 bl 0x129a4                                    |             fcn_000129a4 (r0, r1);
    0x00012e88 mov r3, 0                                     |             r3 = 0;
    0x00012e8c str r3, [sp, 0x14]                            |             var_14h = r3;
                                                             |         }
                                                             | label_31:
    0x00012e90 ldr r3, [r5, 0x3c]                            |         r3 = *((r5 + 0x3c));
    0x00012e94 ldr r5, [pc, 0xaec]                           |         r5 = *(0x13984);
    0x00012e98 mov r0, r3                                    |         r0 = r3;
    0x00012e9c ldr r1, [r5, 0x14]                            |         r1 = " of file ";
    0x00012ea0 lsl r2, r1, 1                                 |         r2 = r1 << 1;
    0x00012ea4 add r1, r3, r1                                |         r1 = r3 + r1;
    0x00012ea8 bl 0x10ca4                                    |         memmove (r0, " of file ", r2);
    0x00012eac ldr r1, [r5, 0x14]                            |         r1 = " of file ";
    0x00012eb0 ldr r2, [sp, 0x30]                            |         r2 = var_30h;
    0x00012eb4 lsl r5, r1, 1                                 |         r5 = r1 << 1;
    0x00012eb8 cmp r2, 0                                     |         
    0x00012ebc sub r4, r4, r1                                |         r4 -= r1;
    0x00012ec0 add r0, r0, r5                                |         r0 += r5;
                                                             |         if (r2 == 0) {
    0x00012ec4 beq 0x13940                                   |             goto label_32;
                                                             |         }
    0x00012ec8 ldr r2, [sp, 0x2c]                            |         r2 = var_2ch;
    0x00012ecc bl 0x12754                                    |         r0 = fcn_00012754 (r0, r1);
                                                             | label_21:
    0x00012ed0 add r3, r5, r0                                |         r3 = r5 + r0;
    0x00012ed4 str r3, [sp, 0x1c]                            |         var_1ch = r3;
    0x00012ed8 ldr r3, [pc, 0xaa4]                           |         
    0x00012edc ldr r2, [sp, 0x1c]                            |         r2 = var_1ch;
    0x00012ee0 ldr r3, [r3, 0x3c]                            |         r3 = "_c_00m";
    0x00012ee4 add r3, r3, r2                                |         r3 += r2;
    0x00012ee8 str r3, [sp, 0xc]                             |         var_ch = r3;
    0x00012eec ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x00012ef0 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00012ef4 ldrne r3, [pc, 0xa8c]                         |             r3 = "_standard_input_";
                                                             |         }
                                                             |         if (r3 == 0) {
    0x00012ef8 ldrne r3, [r3, 0x14]                          |             r3 = *((r3 + 0x14));
                                                             |         }
                                                             |         if (r3 != 0) {
    0x00012efc subne sl, sl, r3                              |             sl -= r3;
                                                             |             goto label_22;
                                                             |         }
                                                             |     }
                                                             | label_22:
    0x00012f00 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00012f04 cmp r4, r3                                    |     
                                                             |     if (r4 <= r3) {
    0x00012f08 blo 0x12c1c                                   |         goto label_0;
                                                             |     }
    0x00012f0c ldr r4, [pc, 0xa70]                           |     r4 = *(0x13980);
    0x00012f10 ldr r3, [r4, 0x54]                            |     r3 = *(0x139d4);
    0x00012f14 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00012f18 bne 0x12f4c                                   |         
    0x00012f1c ldr r3, [r4, 0x50]                            |         r3 = *((r4 + 0x50));
    0x00012f20 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00012f24 bne 0x12f4c                                   |             goto label_33;
                                                             |         }
    0x00012f28 mov r3, fp                                    |         r3 = fp;
    0x00012f2c ldr r2, [sp, 0xc]                             |         r2 = var_ch;
    0x00012f30 mov r1, sl                                    |         r1 = sl;
    0x00012f34 ldr r0, [sp, 0x14]                            |         r0 = var_14h;
    0x00012f38 bl 0x129a4                                    |         fcn_000129a4 (r0, r1);
    0x00012f3c ldr r3, [r4, 0x20]                            |         r3 = *((r4 + 0x20));
    0x00012f40 ldr r2, [sp, 0x38]                            |         r2 = var_38h;
    0x00012f44 orr r3, r3, r2                                |         r3 |= r2;
    0x00012f48 str r3, [r4, 0x20]                            |         *((r4 + 0x20)) = r3;
                                                             |     }
                                                             | label_33:
    0x00012f4c ldr r3, [pc, 0xa34]                           |     
    0x00012f50 ldr r3, [r3, 8]                               |     r3 = stderr;
    0x00012f54 cmp r3, 3                                     |     
                                                             |     if (r3 == 3) {
    0x00012f58 beq 0x12ff4                                   |         goto label_34;
                                                             |     }
    0x00012f5c ldr r2, [r4, 0x50]                            |     r2 = *((r4 + 0x50));
    0x00012f60 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00012f64 beq 0x12cb4                                   |         goto label_1;
                                                             |     }
    0x00012f68 ldr r2, [r4, 0x4c]                            |     r2 = *((r4 + 0x4c));
    0x00012f6c cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x00012f70 bne 0x12cb4                                   |         goto label_1;
                                                             |     }
    0x00012f74 ldr r2, [sp, 0x34]                            |     r2 = var_34h;
    0x00012f78 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x00012f7c bne 0x12f8c                                   |         goto label_35;
                                                             |     }
    0x00012f80 ldr r2, [r4, 0x6c]                            |     r2 = *((r4 + 0x6c));
    0x00012f84 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x00012f88 bne 0x12cb4                                   |         goto label_1;
                                                             |     }
                                                             | label_35:
    0x00012f8c cmp r3, 0                                     |     
    0x00012f90 cmpne fp, 0                                   |     __asm ("cmpne fp, 0");
    0x00012f94 ldr r4, [pc, 0xa00]                           |     r4 = " of file ";
                                                             |     if (r3 != 0) {
    0x00012f98 beq 0x12fac                                   |         
    0x00012f9c mov r2, fp                                    |         r2 = fp;
    0x00012fa0 ldr r1, [pc, 0x9f8]                           |         r1 = stdout;
    0x00012fa4 ldr r0, [r4]                                  |         r0 = *(r4);
    0x00012fa8 bl 0x10d34                                    |         fprintf (r0, r1, r2)
                                                             |     }
    0x00012fac ldr r2, [sp, 0x34]                            |     r2 = var_34h;
    0x00012fb0 ldr r1, [pc, 0x9ec]                           |     r1 = *(0x139a0);
    0x00012fb4 ldr r0, [r4]                                  |     r0 = *(r4);
    0x00012fb8 b 0x12fe4                                     |     goto label_36;
                                                             | label_25:
    0x00012fbc mvn r8, 0                                     |     r8 = ~0;
    0x00012fc0 str r8, [sp, 0x40]                            |     var_40h = r8;
    0x00012fc4 b 0x12ccc                                     |     goto label_2;
                                                             | label_28:
    0x00012fc8 ldr r1, [sp, 0x20]                            |     r1 = var_20h;
    0x00012fcc cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x00012fd0 beq 0x12fec                                   |         
    0x00012fd4 ldr r3, [pc, 0x9c0]                           |         r3 = " of file ";
    0x00012fd8 ldr r2, [sp, 0x3c]                            |         r2 = var_3ch;
    0x00012fdc ldr r1, [pc, 0x9c4]                           |         r1 = "%lu\n";
    0x00012fe0 ldr r0, [r3]                                  |         r0 = " of file ";
                                                             | label_36:
    0x00012fe4 bl 0x10d34                                    |         fprintf (" of file ", "%lu\n", r2, " of file ")
    0x00012fe8 b 0x12cb4                                     |         goto label_1;
                                                             |     }
    0x00012fec cmp r2, 2                                     |     
                                                             |     if (r2 == 2) {
    0x00012ff0 bne 0x13010                                   |         
                                                             | label_34:
    0x00012ff4 ldr r3, [pc, 0x9a0]                           |         r3 = " of file ";
    0x00012ff8 mov r2, fp                                    |         r2 = fp;
    0x00012ffc ldr r1, [pc, 0x9a8]                           |         r1 = "Binary file %s matches\n";
    0x00013000 ldr r0, [r3]                                  |         r0 = " of file ";
    0x00013004 bl 0x10d34                                    |         fprintf (" of file ", "Binary file %s matches\n", r2, " of file ")
                                                             | label_27:
    0x00013008 mov r7, 0                                     |         r7 = 0;
    0x0001300c b 0x12cb4                                     |         goto label_1;
                                                             |     }
    0x00013010 ldr r2, [r5, 0x54]                            |     r2 = *((r5 + 0x54));
    0x00013014 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00013018 beq 0x132b0                                   |         goto label_37;
                                                             |     }
    0x0001301c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00013020 bne 0x12d3c                                   |         goto label_3;
                                                             |     }
    0x00013024 ldr r3, [sp, 0x64]                            |     r3 = ptr;
    0x00013028 ldr r2, [sp, 0x40]                            |     r2 = var_40h;
    0x0001302c str r3, [sp, 0x44]                            |     var_44h = r3;
    0x00013030 ldr r3, [sp, 0x68]                            |     r3 = var_68h;
    0x00013034 str r3, [sp, 0x48]                            |     var_48h = r3;
    0x00013038 ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x0001303c cmp r3, r2                                    |     
                                                             |     if (r3 == r2) {
    0x00013040 bne 0x13050                                   |         
    0x00013044 ldr r3, [sp, 0x48]                            |         r3 = var_48h;
    0x00013048 cmp r8, r3                                    |         
                                                             |         if (r8 == r3) {
    0x0001304c beq 0x130dc                                   |             goto label_6;
                                                             |         }
                                                             |     }
    0x00013050 cmp fp, 0                                     |     
                                                             |     if (fp != 0) {
    0x00013054 beq 0x1306c                                   |         
    0x00013058 ldr r3, [pc, 0x93c]                           |         r3 = " of file ";
    0x0001305c mov r2, fp                                    |         r2 = fp;
    0x00013060 ldr r1, [pc, 0x938]                           |         r1 = stdout;
    0x00013064 ldr r0, [r3]                                  |         r0 = " of file ";
    0x00013068 bl 0x10d34                                    |         fprintf (" of file ", r1, r2, " of file ")
                                                             |     }
    0x0001306c ldr r3, [r5, 0x1c]                            |     r3 = *((r5 + 0x1c));
    0x00013070 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00013074 beq 0x1308c                                   |         
    0x00013078 ldr r3, [pc, 0x91c]                           |         r3 = " of file ";
    0x0001307c ldr r2, [sp, 0x10]                            |         r2 = var_10h;
    0x00013080 ldr r1, [pc, 0x928]                           |         r1 = "_s";
    0x00013084 ldr r0, [r3]                                  |         r0 = " of file ";
    0x00013088 bl 0x10d34                                    |         fprintf (" of file ", "_s", r2, " of file ")
                                                             |     }
    0x0001308c ldr r3, [r5, 0x58]                            |     r3 = *((r5 + 0x58));
    0x00013090 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00013094 ldrne r2, [sp, 0x64]                          |         r2 = ptr;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00013098 ldrne r3, [sp, 0x68]                          |         r3 = var_68h;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x0001309c subne r3, r3, r2                              |         r3 -= r2;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x000130a0 bne 0x130cc                                   |         
    0x000130a4 ldr r3, [r5, 0x5c]                            |         r3 = *((r5 + 0x5c));
    0x000130a8 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000130ac ldreq r7, [r5, 0x60]                          |             r7 = *((r5 + 0x60));
                                                             |         }
                                                             |         if (r3 != 0) {
    0x000130b0 ldreq r8, [pc, 0x8e4]                         |             r8 = obj.stdout;
                                                             |         }
                                                             |         if (r3 == 0) {
    0x000130b4 beq 0x13270                                   |             goto label_38;
                                                             |         }
    0x000130b8 ldr r2, [sp, 0x64]                            |         r2 = ptr;
    0x000130bc ldr r3, [sp, 0x68]                            |         r3 = var_68h;
    0x000130c0 ldr r1, [sp, 0x28]                            |         r1 = var_28h;
    0x000130c4 sub r3, r3, r2                                |         r3 -= r2;
    0x000130c8 add r2, r2, r1                                |         r2 += r1;
                                                             |     }
    0x000130cc ldr r0, [pc, 0x8c8]                           |     
    0x000130d0 ldr r1, [pc, 0x8dc]                           |     r1 = "%lu:";
    0x000130d4 ldr r0, [r0]                                  |     r0 = " of file ";
    0x000130d8 bl 0x10d34                                    |     fprintf (" of file ", r1, r2, r3)
                                                             | label_6:
    0x000130dc ldr r3, [r5, 0x40]                            |     r3 = *((r5 + 0x40));
    0x000130e0 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000130e4 beq 0x130f4                                   |         
    0x000130e8 ldr r3, [pc, 0x8ac]                           |         r3 = " of file ";
    0x000130ec ldr r0, [r3]                                  |         r0 = " of file ";
    0x000130f0 bl 0x10cf8                                    |         fflush (" of file ");
                                                             |     }
    0x000130f4 ldr r3, [sp, 0x68]                            |     r3 = var_68h;
    0x000130f8 cmp r6, r3                                    |     
                                                             |     if (r6 >= r3) {
    0x000130fc blt 0x1312c                                   |         
    0x00013100 ldr r2, [sp, 0x24]                            |         r2 = var_24h;
    0x00013104 cmp r2, r3                                    |         
                                                             |         if (r2 < r3) {
    0x00013108 bls 0x13938                                   |             goto label_39;
                                                             |         }
    0x0001310c ldr r2, [r5, 4]                               |         r2 = *((r5 + 4));
    0x00013110 add r3, r6, 1                                 |         r3 = r6 + 1;
    0x00013114 cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x00013118 beq 0x1312c                                   |             goto label_40;
                                                             |         }
                                                             | label_7:
    0x0001311c ldrb r2, [r4, r3]                             |         r2 = *((r4 + r3));
    0x00013120 and r2, r2, 0xc0                              |         r2 &= 0xc0;
    0x00013124 cmp r2, 0x80                                  |         
                                                             |         if (r2 == 0x80) {
    0x00013128 beq 0x132a8                                   |             goto label_41;
                                                             |         }
                                                             |     }
                                                             | label_40:
    0x0001312c mov r6, r3                                    |     r6 = r3;
    0x00013130 ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x00013134 mov r7, 0                                     |     r7 = 0;
    0x00013138 mov sb, 0x400                                 |     sb = 0x400;
    0x0001313c str r3, [sp, 0x40]                            |     var_40h = r3;
                                                             | label_5:
    0x00013140 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x00013144 ldr r8, [sp, 0x48]                            |     r8 = var_48h;
    0x00013148 cmp r6, r3                                    |     
                                                             |     if (r6 <= r3) {
    0x0001314c ble 0x12cd4                                   |         goto label_4;
                                                             |     }
    0x00013150 add r2, sp, 0x1f0                             |     r2 += var_1f0h;
    0x00013154 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x00013158 ldr r0, [r2, -0x198]!                         |     r0 = var_58h;
    0x0001315c ldr r1, [sp, 0xc]                             |     r1 = var_ch;
    0x00013160 add r0, r3, r0                                |     r0 = r3 + r0;
    0x00013164 ldr r3, [sp, 0x28]                            |     r3 = var_28h;
    0x00013168 add r4, r4, r0                                |     r4 += r0;
    0x0001316c add r3, r3, r0                                |     r3 += r0;
    0x00013170 str r3, [sp, 0x28]                            |     var_28h = r3;
    0x00013174 ldr r3, [sp, 0x10]                            |     r3 = var_10h;
    0x00013178 sub r6, r6, r0                                |     r6 -= r0;
    0x0001317c add r3, r3, 1                                 |     r3++;
    0x00013180 mov r0, r4                                    |     r0 = r4;
    0x00013184 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x00013188 bl 0x1245c                                    |     fcn_0001245c ();
    0x0001318c ldr r3, [sp, 0x58]                            |     r3 = var_58h;
    0x00013190 sub r0, r0, r4                                |     r0 -= r4;
    0x00013194 sub r3, r0, r3                                |     r3 = r0 - r3;
    0x00013198 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x0001319c ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x000131a0 sub r3, r3, r4                                |     r3 -= r4;
    0x000131a4 str r3, [sp, 0x24]                            |     var_24h = r3;
    0x000131a8 b 0x13140                                     |     goto label_5;
                                                             |     do {
    0x000131ac ldr r2, [r7, 4]                               |         r2 = *((r7 + 4));
    0x000131b0 ldr r1, [sp, 0x5c]                            |         r1 = var_5ch;
    0x000131b4 cmp r2, r1                                    |         
                                                             |         if (r2 < r1) {
    0x000131b8 bge 0x1326c                                   |             
    0x000131bc lsl r1, r2, 1                                 |             r1 = r2 << 1;
    0x000131c0 lsl r0, r2, 1                                 |             r0 = r2 << 1;
    0x000131c4 str r1, [sp, 0x40]                            |             var_40h = r1;
    0x000131c8 add r1, sp, 0x1f0                             |             r1 += var_1f0h;
    0x000131cc add r1, r1, r0, lsl 2                         |             r1 += (r0 << 2);
    0x000131d0 add r0, sp, 0x1f0                             |             r0 += var_1f0h;
    0x000131d4 add r2, r0, r2, lsl 3                         |             r2 = r0 + (r2 << 3);
    0x000131d8 ldr sb, [r1, -0x188]                          |             sb = var_60h;
    0x000131dc ldr r2, [r2, -0x18c]                          |             r2 = var_5ch;
    0x000131e0 sub sb, sb, r2                                |             sb -= r2;
    0x000131e4 cmp sb, 0                                     |             
                                                             |             if (sb <= 0) {
    0x000131e8 ble 0x1326c                                   |                 goto label_42;
                                                             |             }
    0x000131ec cmp r3, 0                                     |             
                                                             |             if (r3 != 0) {
    0x000131f0 beq 0x13204                                   |                 
    0x000131f4 ldr r3, [pc, 0x78c]                           |                 r3 = *(0x13984);
    0x000131f8 ldr r1, [r8]                                  |                 r1 = *(r8);
    0x000131fc ldr r0, [r3, 0xc]                             |                 r0 = "pcregrep:_line__lu_s_s_is_too_long_for_the_internal_bufferpcregrep:_check_the___buffer_size_option";
    0x00013200 bl 0x10e60                                    |                 fputs ("pcregrep:_line__lu_s_s_is_too_long_for_the_internal_bufferpcregrep:_check_the___buffer_size_option", r1);
                                                             |             }
    0x00013204 ldr r3, [r5, 0x64]                            |             r3 = *((r5 + 0x64));
    0x00013208 cmp r3, 0                                     |             
                                                             |             if (r3 != 0) {
    0x0001320c beq 0x13228                                   |                 
    0x00013210 ldr r3, [pc, 0x770]                           |                 
    0x00013214 mov r2, 0x1b                                  |                 r2 = 0x1b;
    0x00013218 ldr r3, [r3, 0x10]                            |                 r3 = *(0x13994);
    0x0001321c ldr r1, [pc, 0x794]                           |                 r1 = "_d__d";
    0x00013220 ldr r0, [r8]                                  |                 r0 = *(r8);
    0x00013224 bl 0x10d34                                    |                 fprintf (r0, "_d__d", r2, r3)
                                                             |             }
    0x00013228 ldr r2, [sp, 0x40]                            |             r2 = var_40h;
    0x0001322c add r3, sp, 0x1f0                             |             r3 += var_1f0h;
    0x00013230 add r3, r3, r2, lsl 2                         |             r3 += (r2 << 2);
    0x00013234 ldr r0, [r3, -0x18c]                          |             r0 = ptr;
    0x00013238 mov r2, sb                                    |             r2 = sb;
    0x0001323c ldr r3, [r8]                                  |             r3 = *(r8);
    0x00013240 mov r1, 1                                     |             r1 = 1;
    0x00013244 add r0, r4, r0                                |             r0 = r4 + r0;
    0x00013248 bl 0x10e00                                    |             fwrite (r0, r1, r2, r3);
    0x0001324c ldr r3, [r5, 0x64]                            |             r3 = *((r5 + 0x64));
    0x00013250 cmp r3, 0                                     |             
                                                             |             if (r3 != 0) {
    0x00013254 beq 0x13268                                   |                 
    0x00013258 mov r2, 0x1b                                  |                 r2 = 0x1b;
    0x0001325c ldr r1, [pc, 0x758]                           |                 r1 = "%c[%sm";
    0x00013260 ldr r0, [r8]                                  |                 r0 = *(r8);
    0x00013264 bl 0x10d34                                    |                 fprintf (r0, "%c[%sm", r2)
                                                             |             }
    0x00013268 mov r3, 1                                     |             r3 = 1;
                                                             |         }
                                                             | label_42:
    0x0001326c ldr r7, [r7]                                  |         r7 = *(r7);
                                                             | label_38:
    0x00013270 cmp r7, 0                                     |         
    0x00013274 bne 0x131ac                                   |         
                                                             |     } while (r7 != 0);
    0x00013278 cmp fp, 0                                     |     
                                                             |     if (fp == 0) {
    0x0001327c movne r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00013280 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00013284 bne 0x13294                                   |         goto label_43;
                                                             |     }
    0x00013288 ldr r3, [r5, 0x1c]                            |     r3 = *((r5 + 0x1c));
    0x0001328c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00013290 beq 0x130dc                                   |         goto label_6;
                                                             |     }
                                                             | label_43:
    0x00013294 ldr r3, [pc, 0x700]                           |     r3 = " of file ";
    0x00013298 mov r0, 0xa                                   |     r0 = 0xa;
    0x0001329c ldr r1, [r3]                                  |     r1 = " of file ";
    0x000132a0 bl 0x10de8                                    |     fputc (r0, " of file ");
    0x000132a4 b 0x130dc                                     |     goto label_6;
                                                             | label_41:
    0x000132a8 add r3, r3, 1                                 |     r3++;
    0x000132ac b 0x1311c                                     |     goto label_7;
                                                             | label_37:
    0x000132b0 ldr r3, [r5, 0x18]                            |     r3 = *((r5 + 0x18));
    0x000132b4 cmp r3, 0                                     |     
                                                             |     if (r3 <= 0) {
    0x000132b8 ble 0x13394                                   |         goto label_44;
                                                             |     }
    0x000132bc ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x000132c0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000132c4 beq 0x13394                                   |         goto label_44;
                                                             |     }
    0x000132c8 mov r5, sl                                    |     r5 = sl;
    0x000132cc ldr r6, [sp, 0x20]                            |     r6 = var_20h;
    0x000132d0 ldr r7, [pc, 0x6ac]                           |     r7 = *(0x13980);
    0x000132d4 b 0x132f0                                     |     
                                                             |     while (r6 < r3) {
    0x000132d8 mov r0, r5                                    |         r0 = r5;
    0x000132dc add r2, sp, 0x60                              |         r2 += var_60h;
    0x000132e0 mov r1, r4                                    |         r1 = r4;
    0x000132e4 bl 0x1245c                                    |         fcn_0001245c ();
    0x000132e8 add r6, r6, 1                                 |         r6++;
    0x000132ec mov r5, r0                                    |         r5 = r0;
    0x000132f0 cmp r4, r5                                    |         
                                                             |         if (r4 < r5) {
    0x000132f4 bls 0x13304                                   |             goto label_45;
                                                             |         }
    0x000132f8 ldr r3, [r7, 0x18]                            |         r3 = *((r7 + 0x18));
    0x000132fc cmp r6, r3                                    |         
    0x00013300 blt 0x132d8                                   |         
                                                             |     }
                                                             | label_45:
    0x00013304 ldr r7, [pc, 0x678]                           |     r7 = *(0x13980);
    0x00013308 ldr r6, [pc, 0x68c]                           |     r6 = " of file ";
    0x0001330c ldr sb, [pc, 0x6ac]                           |     sb = "_c_00m";
    0x00013310 b 0x13380                                     |     
                                                             |     while (r5 > sl) {
    0x00013314 cmp fp, 0                                     |         
                                                             |         if (fp != 0) {
    0x00013318 beq 0x1332c                                   |             
    0x0001331c mov r2, fp                                    |             r2 = fp;
    0x00013320 mov r1, sb                                    |             r1 = sb;
    0x00013324 ldr r0, [r6]                                  |             r0 = *(r6);
    0x00013328 bl 0x10d34                                    |             fprintf (r0, r1, r2)
                                                             |         }
    0x0001332c ldr r3, [r7, 0x1c]                            |         r3 = *((r7 + 0x1c));
    0x00013330 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00013334 beq 0x13354                                   |             
    0x00013338 ldr r3, [sp, 0x14]                            |             r3 = var_14h;
    0x0001333c ldr r1, [pc, 0x680]                           |             r1 = *(0x139c0);
    0x00013340 add r8, r3, 1                                 |             r8 = r3 + 1;
    0x00013344 mov r2, r3                                    |             r2 = r3;
    0x00013348 ldr r0, [r6]                                  |             r0 = *(r6);
    0x0001334c bl 0x10d34                                    |             fprintf (r0, r1, r2, r3)
    0x00013350 str r8, [sp, 0x14]                            |             var_14h = r8;
                                                             |         }
    0x00013354 add r2, sp, 0x60                              |         r2 += var_60h;
    0x00013358 ldr r1, [sp, 0xc]                             |         r1 = var_ch;
    0x0001335c mov r0, sl                                    |         r0 = sl;
    0x00013360 bl 0x1245c                                    |         fcn_0001245c ();
    0x00013364 ldr r3, [r6]                                  |         r3 = *(r6);
    0x00013368 mov r1, 1                                     |         r1 = 1;
    0x0001336c sub r2, r0, sl                                |         r2 = r0 - sl;
    0x00013370 mov r8, r0                                    |         r8 = r0;
    0x00013374 mov r0, sl                                    |         r0 = sl;
    0x00013378 bl 0x10e00                                    |         fwrite (r0, r1, r2, r3);
    0x0001337c mov sl, r8                                    |         sl = r8;
    0x00013380 cmp r5, sl                                    |         
    0x00013384 bhi 0x13314                                   |         
                                                             |     }
    0x00013388 cmp r4, sl                                    |     
                                                             |     if (r4 == sl) {
    0x0001338c movne r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             |     if (r4 == sl) {
    0x00013390 strne r3, [r7, 0x20]                          |         *((r7 + 0x20)) = r3;
                                                             |     }
                                                             | label_44:
    0x00013394 ldr r5, [pc, 0x5e8]                           |     r5 = *(0x13980);
    0x00013398 ldr r3, [r5, 0x20]                            |     r3 = *(0x139a0);
    0x0001339c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000133a0 beq 0x133c0                                   |         
    0x000133a4 ldr r3, [pc, 0x5f0]                           |         r3 = " of file ";
    0x000133a8 ldr r0, [pc, 0x618]                           |         r0 = "%lu-";
    0x000133ac ldr r1, [r3]                                  |         r1 = " of file ";
    0x000133b0 bl 0x10e60                                    |         fputs ("%lu-", " of file ");
    0x000133b4 mov r3, 0                                     |         r3 = 0;
    0x000133b8 str r3, [r5, 0x20]                            |         *((r5 + 0x20)) = r3;
    0x000133bc mov r3, 1                                     |         r3 = 1;
                                                             |     }
    0x000133c0 str r3, [sp, 0x48]                            |     var_48h = r3;
    0x000133c4 ldr r3, [r5, 0x68]                            |     r3 = *((r5 + 0x68));
    0x000133c8 cmp r3, 0                                     |     
    0x000133cc str r3, [sp, 0x40]                            |     var_40h = r3;
                                                             |     if (r3 > 0) {
    0x000133d0 bgt 0x13578                                   |         goto label_46;
                                                             |     }
                                                             | label_8:
    0x000133d4 ldr r5, [pc, 0x5a8]                           |     r5 = *(0x13980);
    0x000133d8 ldr r3, [r5, 0x18]                            |     r3 = " of file ";
    0x000133dc cmp r3, 0                                     |     
                                                             |     if (r3 <= 0) {
    0x000133e0 movgt r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             |     if (r3 <= 0) {
    0x000133e4 bgt 0x133f8                                   |         
    0x000133e8 ldr r3, [r5, 0x68]                            |         r3 = *((r5 + 0x68));
    0x000133ec cmp r3, 0                                     |         
    0x000133f0 ldr r3, [sp, 0x38]                            |         r3 = var_38h;
                                                             |         if (r3 > 0) {
    0x000133f4 movgt r3, 1                                   |             r3 = 1;
                                                             |             goto label_47;
                                                             |         }
                                                             |     }
                                                             | label_47:
    0x000133f8 cmp fp, 0                                     |     
    0x000133fc str r3, [sp, 0x38]                            |     var_38h = r3;
                                                             |     if (fp != 0) {
    0x00013400 beq 0x13418                                   |         
    0x00013404 ldr r3, [pc, 0x590]                           |         r3 = " of file ";
    0x00013408 mov r2, fp                                    |         r2 = fp;
    0x0001340c ldr r1, [pc, 0x58c]                           |         r1 = stdout;
    0x00013410 ldr r0, [r3]                                  |         r0 = " of file ";
    0x00013414 bl 0x10d34                                    |         fprintf (" of file ", r1, r2, " of file ")
                                                             |     }
    0x00013418 ldr r3, [r5, 0x1c]                            |     r3 = *((r5 + 0x1c));
    0x0001341c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00013420 beq 0x13438                                   |         
    0x00013424 ldr r3, [pc, 0x570]                           |         r3 = " of file ";
    0x00013428 ldr r2, [sp, 0x10]                            |         r2 = var_10h;
    0x0001342c ldr r1, [pc, 0x57c]                           |         r1 = "_s";
    0x00013430 ldr r0, [r3]                                  |         r0 = " of file ";
    0x00013434 bl 0x10d34                                    |         fprintf (" of file ", "_s", r2, " of file ")
                                                             |     }
    0x00013438 ldr r3, [pc, 0x544]                           |     
    0x0001343c ldr r6, [r3, 0x14]                            |     r6 = *(0x13994);
    0x00013440 ldr r3, [r3, 0x48]                            |     r3 = *(0x139c8);
    0x00013444 clz r6, r6                                    |     r6 &= r6;
    0x00013448 lsr r6, r6, 5                                 |     r6 >>= 5;
    0x0001344c tst r6, r3                                    |     
                                                             |     if ((r6 & r3) == 0) {
    0x00013450 ldrne r5, [sp, 0x68]                          |         r5 = var_68h;
                                                             |     }
                                                             |     if ((r6 & r3) == 0) {
    0x00013454 movne r0, r4                                  |         r0 = r4;
                                                             |     }
                                                             |     if ((r6 & r3) == 0) {
    0x00013458 addne r5, r4, r5                              |         r5 = r4 + r5;
                                                             |     }
                                                             |     if ((r6 & r3) != 0) {
    0x0001345c bne 0x13880                                   |         goto label_48;
                                                             |     }
                                                             | label_19:
    0x00013460 ldr r2, [pc, 0x51c]                           |     
    0x00013464 ldr r5, [pc, 0x530]                           |     r5 = " of file ";
    0x00013468 ldr r2, [r2, 0x64]                            |     r2 = *(0x139e4);
    0x0001346c ldr r3, [r5]                                  |     r3 = " of file ";
    0x00013470 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x00013474 moveq r6, 0                                   |         r6 = 0;
                                                             |     }
    0x00013478 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x0001347c beq 0x138d4                                   |         goto label_49;
                                                             |     }
    0x00013480 ldr r7, [pc, 0x500]                           |     r7 = *(0x13984);
    0x00013484 ldr r2, [sp, 0x64]                            |     r2 = ptr;
    0x00013488 mov r1, 1                                     |     r1 = 1;
    0x0001348c mov r0, r4                                    |     r0 = r4;
    0x00013490 bl 0x10e00                                    |     fwrite (r0, r1, r2, r3);
    0x00013494 ldr r3, [r7, 0x10]                            |     r3 = *(0x13994);
    0x00013498 mov r2, 0x1b                                  |     r2 = 0x1b;
    0x0001349c ldr r1, [pc, 0x514]                           |     r1 = "_d__d";
    0x000134a0 ldr r0, [r5]                                  |     r0 = *(r5);
    0x000134a4 bl 0x10d34                                    |     fprintf (r0, "_d__d", r2, r3)
    0x000134a8 ldr r0, [sp, 0x64]                            |     r0 = ptr;
    0x000134ac ldr r2, [sp, 0x68]                            |     r2 = var_68h;
    0x000134b0 ldr r3, [r5]                                  |     r3 = *(r5);
    0x000134b4 sub r2, r2, r0                                |     r2 -= r0;
    0x000134b8 mov r1, 1                                     |     r1 = 1;
    0x000134bc add r0, r4, r0                                |     r0 = r4 + r0;
    0x000134c0 bl 0x10e00                                    |     fwrite (r0, r1, r2, r3);
    0x000134c4 mov r2, 0x1b                                  |     r2 = 0x1b;
    0x000134c8 ldr r1, [pc, 0x4ec]                           |     r1 = "%c[%sm";
    0x000134cc ldr r0, [r5]                                  |     r0 = *(r5);
    0x000134d0 bl 0x10d34                                    |     fprintf (r0, "%c[%sm", r2)
    0x000134d4 ldr r8, [pc, 0x4dc]                           |     r8 = "_d__d";
                                                             |     do {
    0x000134d8 ldr r3, [sp, 0x58]                            |         r3 = var_58h;
    0x000134dc ldr r2, [sp, 0x18]                            |         r2 = var_18h;
    0x000134e0 ldr r6, [sp, 0x68]                            |         r6 = var_68h;
    0x000134e4 add r3, r2, r3                                |         r3 = r2 + r3;
    0x000134e8 cmp r6, r3                                    |         
                                                             |         if (r6 >= r3) {
    0x000134ec bge 0x138a4                                   |             goto label_50;
                                                             |         }
    0x000134f0 add r3, sp, 0x5c                              |         r3 += var_5ch;
    0x000134f4 str r3, [sp, 4]                               |         var_4h = r3;
    0x000134f8 add r3, sp, 0x64                              |         r3 += ptr;
    0x000134fc str r3, [sp]                                  |         *(sp) = r3;
    0x00013500 mov r2, 0x400                                 |         r2 = 0x400;
    0x00013504 mov r3, r6                                    |         r3 = r6;
    0x00013508 ldr r1, [sp, 0x24]                            |         r1 = var_24h;
    0x0001350c mov r0, r4                                    |         r0 = r4;
    0x00013510 bl 0x12824                                    |         r0 = fcn_00012824 (r0, r1);
    0x00013514 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00013518 beq 0x138a4                                   |             goto label_50;
                                                             |         }
    0x0001351c ldr r2, [sp, 0x64]                            |         r2 = ptr;
    0x00013520 ldr r3, [r5]                                  |         r3 = *(r5);
    0x00013524 sub r2, r2, r6                                |         r2 -= r6;
    0x00013528 mov r1, 1                                     |         r1 = 1;
    0x0001352c add r0, r4, r6                                |         r0 = r4 + r6;
    0x00013530 bl 0x10e00                                    |         fwrite (r0, r1, r2, r3);
    0x00013534 ldr r3, [r7, 0x10]                            |         r3 = *((r7 + 0x10));
    0x00013538 mov r1, r8                                    |         r1 = r8;
    0x0001353c mov r2, 0x1b                                  |         r2 = 0x1b;
    0x00013540 ldr r0, [r5]                                  |         r0 = *(r5);
    0x00013544 bl 0x10d34                                    |         fprintf (r0, r1, r2, r3)
    0x00013548 ldr r0, [sp, 0x64]                            |         r0 = ptr;
    0x0001354c ldr r2, [sp, 0x68]                            |         r2 = var_68h;
    0x00013550 ldr r3, [r5]                                  |         r3 = *(r5);
    0x00013554 sub r2, r2, r0                                |         r2 -= r0;
    0x00013558 mov r1, 1                                     |         r1 = 1;
    0x0001355c add r0, r4, r0                                |         r0 = r4 + r0;
    0x00013560 bl 0x10e00                                    |         fwrite (r0, r1, r2, r3);
    0x00013564 mov r2, 0x1b                                  |         r2 = 0x1b;
    0x00013568 ldr r1, [pc, 0x44c]                           |         r1 = "%c[%sm";
    0x0001356c ldr r0, [r5]                                  |         r0 = *(r5);
    0x00013570 bl 0x10d34                                    |         fprintf (r0, "%c[%sm", r2)
    0x00013574 b 0x134d8                                     |         
                                                             |     } while (1);
                                                             | label_46:
    0x00013578 ldr r3, [r5]                                  |     r3 = *(r5);
    0x0001357c ldr r2, [r5, 0x3c]                            |     r2 = *((r5 + 0x3c));
    0x00013580 str r3, [sp, 0x4c]                            |     var_4ch = r3;
    0x00013584 sub r3, r3, 1                                 |     r3--;
    0x00013588 ldr sb, [r5, 4]                               |     sb = *((r5 + 4));
    0x0001358c str r3, [sp, 0x50]                            |     var_50h = r3;
    0x00013590 mov r5, r4                                    |     r5 = r4;
    0x00013594 add r3, r2, 1                                 |     r3 = r2 + 1;
    0x00013598 mov r6, 0                                     |     r6 = 0;
    0x0001359c str r3, [sp, 0x54]                            |     var_54h = r3;
                                                             | label_10:
    0x000135a0 cmp r5, sl                                    |     
                                                             |     if (r5 > sl) {
    0x000135a4 movls r1, 0                                   |         r1 = 0;
                                                             |     }
                                                             |     if (r5 <= sl) {
    0x000135a8 movhi r1, 1                                   |         r1 = 1;
                                                             |     }
    0x000135ac cmp r5, r2                                    |     
                                                             |     if (r5 >= r2) {
    0x000135b0 bls 0x135dc                                   |         
    0x000135b4 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x000135b8 ldr r0, [sp, 0x40]                            |         r0 = var_40h;
    0x000135bc cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000135c0 movne r3, r1                                  |             r3 = r1;
                                                             |         }
                                                             |         if (r3 != 0) {
    0x000135c4 moveq r3, 1                                   |             r3 = 1;
                                                             |         }
    0x000135c8 cmp r0, r6                                    |         
                                                             |         if (r0 > r6) {
    0x000135cc movle r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r0 <= r6) {
    0x000135d0 andgt r3, r3, 1                               |             r3 &= 1;
                                                             |         }
    0x000135d4 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000135d8 bne 0x1368c                                   |             goto label_51;
                                                             |         }
                                                             |     }
    0x000135dc ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x000135e0 ldr r2, [sp, 0x48]                            |     r2 = var_48h;
    0x000135e4 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000135e8 eorne r3, r2, 1                               |         r3 = r2 ^ 1;
                                                             |     }
                                                             |     if (r3 != 0) {
    0x000135ec moveq r3, 0                                   |         r3 = 0;
                                                             |     }
    0x000135f0 tst r1, r3                                    |     
                                                             |     if ((r1 & r3) != 0) {
    0x000135f4 beq 0x13608                                   |         
    0x000135f8 ldr r3, [pc, 0x39c]                           |         r3 = " of file ";
    0x000135fc ldr r0, [pc, 0x3c4]                           |         r0 = "%lu-";
    0x00013600 ldr r1, [r3]                                  |         r1 = " of file ";
    0x00013604 bl 0x10e60                                    |         fputs ("%lu-", " of file ");
                                                             |     }
    0x00013608 ldr r7, [pc, 0x38c]                           |     r7 = " of file ";
    0x0001360c ldr sb, [pc, 0x3ac]                           |     sb = "_c_00m";
    0x00013610 ldr sl, [pc, 0x36c]                           |     sl = *(0x00013984);
                                                             | label_9:
    0x00013614 cmp r4, r5                                    |     
                                                             |     if (r4 < r5) {
    0x00013618 bls 0x133d4                                   |         goto label_8;
                                                             |     }
    0x0001361c cmp fp, 0                                     |     
                                                             |     if (fp != 0) {
    0x00013620 beq 0x13634                                   |         
    0x00013624 mov r2, fp                                    |         r2 = fp;
    0x00013628 mov r1, sb                                    |         r1 = sb;
    0x0001362c ldr r0, [r7]                                  |         r0 = *(r7);
    0x00013630 bl 0x10d34                                    |         fprintf (r0, r1, r2)
                                                             |     }
    0x00013634 ldr r3, [sl, 0x1c]                            |     r3 = *((sl + 0x1c));
    0x00013638 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001363c beq 0x1365c                                   |         
    0x00013640 ldr r3, [sp, 0x10]                            |         r3 = var_10h;
    0x00013644 ldr r1, [pc, 0x378]                           |         r1 = *(0x139c0);
    0x00013648 sub r2, r3, r6                                |         r2 = r3 - r6;
    0x0001364c ldr r0, [r7]                                  |         r0 = *(r7);
    0x00013650 bl 0x10d34                                    |         fprintf (r0, r1, r2, r3)
    0x00013654 sub r8, r6, 1                                 |         r8 = r6 - 1;
    0x00013658 mov r6, r8                                    |         r6 = r8;
                                                             |     }
    0x0001365c add r2, sp, 0x60                              |     r2 += var_60h;
    0x00013660 ldr r1, [sp, 0xc]                             |     r1 = var_ch;
    0x00013664 mov r0, r5                                    |     r0 = r5;
    0x00013668 bl 0x1245c                                    |     fcn_0001245c ();
    0x0001366c ldr r3, [r7]                                  |     r3 = *(r7);
    0x00013670 mov r1, 1                                     |     r1 = 1;
    0x00013674 sub r2, r0, r5                                |     r2 = r0 - r5;
    0x00013678 mov r8, r0                                    |     r8 = r0;
    0x0001367c mov r0, r5                                    |     r0 = r5;
    0x00013680 bl 0x10e00                                    |     fwrite (r0, r1, r2, r3);
    0x00013684 mov r5, r8                                    |     r5 = r8;
    0x00013688 b 0x13614                                     |     goto label_9;
                                                             | label_51:
    0x0001368c ldr r3, [sp, 0x50]                            |     r3 = var_50h;
    0x00013690 add r6, r6, 1                                 |     r6++;
    0x00013694 cmp r3, 3                                     |     
                                                             |     if (r3 > 3) {
                                                             |         /* switch table (4 cases) at 0x136a0 */
    0x00013698 ldrls pc, [pc, r3, lsl 2]                     |         offset_0 = r3 << 2;
                                                             |         pc = *((pc + offset_0));
                                                             |     }
    0x0001369c b 0x136b0                                     |     
    0x000136b0 sub r3, r5, 1                                 |     r3 = r5 - 1;
                                                             | label_11:
    0x000136b4 cmp r3, r2                                    |     
    0x000136b8 mov r5, r3                                    |     r5 = r3;
                                                             |     if (r3 == r2) {
    0x000136bc beq 0x135a0                                   |         goto label_10;
                                                             |     }
    0x000136c0 ldrb r1, [r3, -1]!                            |     r1 = *((r3 -= 1));
    0x000136c4 cmp r1, 0xa                                   |     
                                                             |     if (r1 != 0xa) {
    0x000136c8 bne 0x136b4                                   |         goto label_11;
                                                             |     }
    0x000136cc b 0x135a0                                     |     goto label_10;
    0x000136d0 sub r3, r5, 1                                 |     r3 = r5 - 1;
                                                             | label_12:
    0x000136d4 cmp r3, r2                                    |     
    0x000136d8 mov r5, r3                                    |     r5 = r3;
                                                             |     if (r3 == r2) {
    0x000136dc beq 0x135a0                                   |         goto label_10;
                                                             |     }
    0x000136e0 ldrb r1, [r3, -1]!                            |     r1 = *((r3 -= 1));
    0x000136e4 cmp r1, 0xa                                   |     
                                                             |     if (r1 != 0xa) {
    0x000136e8 bne 0x136d4                                   |         goto label_12;
                                                             |     }
    0x000136ec b 0x135a0                                     |     goto label_10;
                                                             | label_13:
    0x000136f0 sub r3, r5, 2                                 |     r3 = r5 - 2;
                                                             |     do {
    0x000136f4 cmp r2, r3                                    |         
    0x000136f8 mov r5, r3                                    |         r5 = r3;
                                                             |         if (r2 >= r3) {
    0x000136fc bhs 0x1370c                                   |             goto label_52;
                                                             |         }
    0x00013700 ldrb r1, [r3, -1]!                            |         r1 = *((r3 -= 1));
    0x00013704 cmp r1, 0xa                                   |         
    0x00013708 bne 0x136f4                                   |         
                                                             |     } while (r1 != 0xa);
                                                             | label_52:
    0x0001370c ldr r3, [sp, 0x54]                            |     r3 = var_54h;
    0x00013710 cmp r5, r3                                    |     
                                                             |     if (r5 < r3) {
    0x00013714 bls 0x135a0                                   |         goto label_10;
                                                             |     }
    0x00013718 ldrb r3, [r5, -2]                             |     r3 = *((r5 - 2));
    0x0001371c cmp r3, 0xd                                   |     
                                                             |     if (r3 != 0xd) {
    0x00013720 bne 0x136f0                                   |         goto label_13;
                                                             |     }
    0x00013724 b 0x135a0                                     |     goto label_10;
    0x00013728 ldrb r0, [r5, -1]                             |     r0 = *((r5 - 1));
    0x0001372c sub r3, r5, 1                                 |     r3 = r5 - 1;
    0x00013730 cmp r2, r3                                    |     
    0x00013734 sub r1, r0, 0xa                               |     r1 = r0 - 0xa;
    0x00013738 clz r1, r1                                    |     r1 &= r1;
    0x0001373c lsr r1, r1, 5                                 |     r1 >>= 5;
                                                             |     if (r2 < r3) {
    0x00013740 movhs r1, 0                                   |         r1 = 0;
                                                             |     }
    0x00013744 cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x00013748 beq 0x13758                                   |         
    0x0001374c ldrb r1, [r5, -2]                             |         r1 = *((r5 - 2));
    0x00013750 cmp r1, 0xd                                   |         
                                                             |         if (r1 == 0xd) {
    0x00013754 subeq r3, r5, 2                               |             r3 = r5 - 2;
                                                             |             goto label_53;
                                                             |         }
                                                             |     }
                                                             | label_53:
    0x00013758 cmp sb, 0                                     |     
                                                             |     if (sb == 0) {
    0x0001375c movne r0, r3                                  |         r0 = r3;
                                                             |     }
                                                             |     if (sb != 0) {
    0x00013760 bne 0x13778                                   |         goto label_54;
                                                             |     }
                                                             | label_14:
    0x00013764 mov r5, r3                                    |     r5 = r3;
                                                             | label_15:
    0x00013768 cmp r2, r5                                    |     
                                                             |     if (r2 <= r5) {
    0x0001376c blo 0x13794                                   |         goto label_55;
                                                             |     }
    0x00013770 mov r5, r2                                    |     r5 = r2;
    0x00013774 b 0x135a0                                     |     goto label_10;
                                                             |     do {
                                                             | label_54:
    0x00013778 mov r3, r0                                    |         r3 = r0;
    0x0001377c ldrb r1, [r3]                                 |         r1 = *(r3);
    0x00013780 sub r0, r0, 1                                 |         r0--;
    0x00013784 and r1, r1, 0xc0                              |         r1 &= 0xc0;
    0x00013788 cmp r1, 0x80                                  |         
    0x0001378c beq 0x13778                                   |         
                                                             |     } while (r1 == 0x80);
    0x00013790 b 0x13764                                     |     goto label_14;
                                                             | label_55:
    0x00013794 cmp sb, 0                                     |     
    0x00013798 sub r1, r5, 1                                 |     r1 = r5 - 1;
                                                             |     if (sb != 0) {
    0x0001379c ldrbeq r3, [r5, -1]                           |         r3 = *((r5 - 1));
                                                             |     }
                                                             |     if (sb == 0) {
    0x000137a0 beq 0x137f8                                   |         goto label_56;
                                                             |     }
    0x000137a4 mov r0, r1                                    |     r0 = r1;
                                                             |     do {
    0x000137a8 ldrb r3, [r0]                                 |         r3 = *(r0);
    0x000137ac mov r1, r0                                    |         r1 = r0;
    0x000137b0 and ip, r3, 0xc0                              |         
    0x000137b4 cmp ip, 0x80                                  |         
    0x000137b8 sub r0, r0, 1                                 |         r0--;
    0x000137bc beq 0x137a8                                   |         
                                                             |     } while (ip == 0x80);
    0x000137c0 cmp r3, 0xbf                                  |     
                                                             |     if (r3 >= 0xbf) {
    0x000137c4 bls 0x137f8                                   |         
    0x000137c8 ldr r7, [pc, 0x1fc]                           |         r7 = *(0x139c8);
    0x000137cc and r0, r3, 0x3f                              |         r0 = r3 & 0x3f;
    0x000137d0 ldrb ip, [r7, r0]                             |         ip = *((r7 + r0));
    0x000137d4 add r0, r7, ip, lsl 2                         |         r0 = r7 + (ip << 2);
    0x000137d8 ldr r0, [r0, 0x40]                            |         r0 = *((r0 + 0x40));
    0x000137dc add lr, ip, ip, lsl 1                         |         lr = ip + (ip << 1);
    0x000137e0 and r3, r3, r0                                |         r3 &= r0;
    0x000137e4 lsl lr, lr, 1                                 |         lr <<= 1;
    0x000137e8 lsl r3, r3, lr                                |         r3 <<= lr;
    0x000137ec mov r0, 1                                     |         r0 = 1;
                                                             | label_16:
    0x000137f0 cmp ip, r0                                    |         
                                                             |         if (ip >= r0) {
    0x000137f4 bge 0x1381c                                   |             goto label_57;
                                                             |         }
                                                             |     }
                                                             | label_56:
    0x000137f8 ldr r0, [sp, 0x4c]                            |     r0 = var_4ch;
    0x000137fc cmp r0, 4                                     |     
                                                             |     if (r0 != 4) {
    0x00013800 bne 0x1383c                                   |         goto label_58;
                                                             |     }
    0x00013804 cmp r3, 0xa                                   |     
                                                             |     if (r3 == 0xa) {
    0x00013808 beq 0x135a0                                   |         goto label_10;
                                                             |     }
    0x0001380c cmp r3, 0xd                                   |     
                                                             |     if (r3 == 0xd) {
    0x00013810 beq 0x135a0                                   |         goto label_10;
                                                             |     }
                                                             | label_17:
    0x00013814 mov r5, r1                                    |     r5 = r1;
    0x00013818 b 0x13768                                     |     goto label_15;
                                                             | label_57:
    0x0001381c mov r7, 6                                     |     r7 = 6;
    0x00013820 ldrb r8, [r1, r0]                             |     r8 = *((r1 + r0));
    0x00013824 mul r7, r0, r7                                |     r7 = r0 * r7;
    0x00013828 and r8, r8, 0x3f                              |     r8 &= 0x3f;
    0x0001382c sub r7, lr, r7                                |     r7 = lr - r7;
    0x00013830 orr r3, r3, r8, lsl r7                        |     r3 |= (r8 << r7);
    0x00013834 add r0, r0, 1                                 |     r0++;
    0x00013838 b 0x137f0                                     |     goto label_16;
                                                             | label_58:
    0x0001383c cmp r3, 0x85                                  |     
                                                             |     if (r3 == 0x85) {
    0x00013840 beq 0x135a0                                   |         goto label_10;
                                                             |     }
                                                             |     if (r3 > 0x85) {
    0x00013844 bhi 0x13858                                   |         goto label_59;
                                                             |     }
    0x00013848 sub r3, r3, 0xa                               |     r3 -= 0xa;
    0x0001384c cmp r3, 3                                     |     
                                                             |     if (r3 > 3) {
                                                             | label_18:
    0x00013850 bhi 0x13814                                   |         goto label_17;
                                                             |     }
    0x00013854 b 0x135a0                                     |     goto label_10;
                                                             | label_59:
    0x00013858 sub r3, r3, 0x2000                            |     r3 -= 0x2000;
    0x0001385c sub r3, r3, 0x28                              |     r3 -= 0x28;
    0x00013860 cmp r3, 1                                     |     
    0x00013864 b 0x13850                                     |     goto label_18;
                                                             |     do {
    0x00013868 add r2, sp, 0x58                              |         r2 += var_58h;
    0x0001386c ldr r1, [sp, 0xc]                             |         r1 = var_ch;
    0x00013870 bl 0x1245c                                    |         r0 = fcn_0001245c ();
    0x00013874 cmp r5, r0                                    |         
                                                             |         if (r5 < r0) {
    0x00013878 bls 0x13890                                   |             goto label_60;
                                                             |         }
    0x0001387c str r7, [sp, 0x10]                            |         var_10h = r7;
                                                             | label_48:
    0x00013880 ldr r3, [sp, 0x10]                            |         r3 = var_10h;
    0x00013884 cmp r5, r0                                    |         
    0x00013888 add r7, r3, 1                                 |         r7 = r3 + 1;
    0x0001388c bhs 0x13868                                   |         
                                                             |     } while (r5 >= r0);
                                                             | label_60:
    0x00013890 ldr r3, [sp, 0x58]                            |     r3 = var_58h;
    0x00013894 sub r0, r0, r4                                |     r0 -= r4;
    0x00013898 sub r3, r0, r3                                |     r3 = r0 - r3;
    0x0001389c str r3, [sp, 0x18]                            |     var_18h = r3;
    0x000138a0 b 0x13460                                     |     goto label_19;
                                                             | label_50:
    0x000138a4 ldr r2, [sp, 0x58]                            |     r2 = var_58h;
    0x000138a8 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x000138ac add r2, r3, r2                                |     r2 = r3 + r2;
    0x000138b0 sub r2, r2, r6                                |     r2 -= r6;
    0x000138b4 cmp r2, 0                                     |     
                                                             |     if (r2 <= 0) {
    0x000138b8 ble 0x12d3c                                   |         goto label_3;
                                                             |     }
    0x000138bc ldr r3, [pc, 0xd8]                            |     
    0x000138c0 mov r1, 1                                     |     r1 = 1;
    0x000138c4 ldr r3, [r3]                                  |     r3 = " of file ";
    0x000138c8 add r0, r4, r6                                |     r0 = r4 + r6;
                                                             |     do {
    0x000138cc bl 0x10e00                                    |         fwrite (r0, r1, r2, " of file ");
    0x000138d0 b 0x12d3c                                     |         goto label_3;
                                                             | label_49:
    0x000138d4 ldr r1, [sp, 0x18]                            |         r1 = var_18h;
    0x000138d8 ldr r2, [sp, 0x58]                            |         r2 = var_58h;
    0x000138dc mov r0, r4                                    |         r0 = r4;
    0x000138e0 add r2, r1, r2                                |         r2 = r1 + r2;
    0x000138e4 mov r1, 1                                     |         r1 = 1;
    0x000138e8 b 0x138cc                                     |         
                                                             |     } while (1);
                                                             |     do {
    0x000138ec str r6, [sp, 0x10]                            |         var_10h = r6;
                                                             | label_29:
    0x000138f0 ldr r3, [sp, 0x10]                            |         r3 = var_10h;
    0x000138f4 cmp r5, r0                                    |         
    0x000138f8 add r6, r3, 1                                 |         r6 = r3 + 1;
                                                             |         if (r5 < r0) {
    0x000138fc bls 0x13914                                   |             goto label_61;
                                                             |         }
    0x00013900 add r2, sp, 0x60                              |         r2 += var_60h;
    0x00013904 ldr r1, [sp, 0xc]                             |         r1 = var_ch;
    0x00013908 bl 0x1245c                                    |         r0 = fcn_0001245c ();
    0x0001390c cmp r5, r0                                    |         
    0x00013910 bhs 0x138ec                                   |         
                                                             |     } while (r5 >= r0);
                                                             | label_61:
    0x00013914 add r2, sp, 0x60                              |     r2 += var_60h;
    0x00013918 ldr r1, [sp, 0xc]                             |     r1 = var_ch;
    0x0001391c mov r0, r5                                    |     r0 = r5;
    0x00013920 bl 0x1245c                                    |     fcn_0001245c ();
    0x00013924 ldr r3, [sp, 0x60]                            |     r3 = var_60h;
    0x00013928 sub r0, r0, r4                                |     r0 -= r4;
    0x0001392c sub r3, r0, r3                                |     r3 = r0 - r3;
    0x00013930 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x00013934 b 0x12da8                                     |     goto label_20;
                                                             | label_39:
    0x00013938 mov r7, 0                                     |     r7 = 0;
    0x0001393c b 0x12da8                                     |     goto label_20;
                                                             | label_32:
    0x00013940 mov r2, r1                                    |     r2 = r1;
    0x00013944 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00013948 mov r1, 1                                     |     r1 = 1;
    0x0001394c bl 0x10d70                                    |     fread (r0, r1, r2, r3);
    0x00013950 b 0x12ed0                                     |     goto label_21;
                                                             | label_23:
    0x00013954 mov r3, 0                                     |     r3 = 0;
    0x00013958 str r3, [sp, 0x20]                            |     var_20h = r3;
                                                             | label_24:
    0x0001395c mov r3, 0                                     |     r3 = 0;
    0x00013960 mov sl, r3                                    |     sl = r3;
    0x00013964 str r3, [sp, 0x38]                            |     var_38h = r3;
    0x00013968 str r3, [sp, 0x34]                            |     var_34h = r3;
    0x0001396c str r3, [sp, 0x14]                            |     var_14h = r3;
    0x00013970 mov r3, 1                                     |     r3 = 1;
    0x00013974 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x00013978 str sl, [sp, 0x28]                            |     var_28h = sl;
    0x0001397c mov r7, 1                                     |     r7 = 1;
    0x00013980 b 0x12f00                                     |     goto label_22;
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/pcregrep @ 0x13c98 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00013c98 ()                                  | void fcn_00013c98 (char * arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     char * s;
                                                             |     int32_t var_20h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             | label_5:
    0x000139d0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000139d4 ldr r4, [pc, 0x294]                           |     r4 = *(0x13c6c);
    0x000139d8 sub sp, sp, 0x810                             |     
    0x000139dc sub sp, sp, 4                                 |     
    0x000139e0 mov r8, r1                                    |     r8 = r1;
    0x000139e4 mov r1, 0x2f                                  |     r1 = 0x2f;
    0x000139e8 mov r6, r0                                    |     r6 = r0;
    0x000139ec mov r7, r2                                    |     r7 = r2;
    0x000139f0 bl 0x10d1c                                    |     strrchr (r0, r1);
    0x000139f4 add r1, sp, 0x10                              |     r1 += s;
    0x000139f8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000139fc addne r5, r0, 1                               |         r5 = r0 + 1;
                                                             |     }
    0x00013a00 mov r0, r6                                    |     r0 = r6;
                                                             |     if (r0 != 0) {
    0x00013a04 moveq r5, r6                                  |         r5 = r6;
                                                             |     }
    0x00013a08 bl 0x10c98                                    |     r0 = stat64 ();
    0x00013a0c cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00013a10 blt 0x13bdc                                   |         goto label_6;
                                                             |     }
    0x00013a14 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00013a18 and r3, r3, 0xf000                            |     r3 &= 0xf000;
    0x00013a1c cmp r3, 0x4000                                |     
                                                             |     if (r3 != 0x4000) {
    0x00013a20 bne 0x13bdc                                   |         goto label_6;
                                                             |     }
    0x00013a24 ldr r3, [r4, 0x70]                            |     r3 = *((r4 + 0x70));
    0x00013a28 cmp r3, 1                                     |     
    0x00013a2c bne 0x13a44                                   |     
                                                             |     while (r0 == 0) {
                                                             | label_3:
    0x00013a30 mvn r5, 0                                     |         r5 = ~0;
                                                             | label_0:
    0x00013a34 mov r0, r5                                    |         r0 = r5;
    0x00013a38 add sp, sp, 0x810                             |         
    0x00013a3c add sp, sp, 4                                 |         
    0x00013a40 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x00013a44 ldr r2, [r4, 0x74]                            |         r2 = *((r4 + 0x74));
    0x00013a48 ldr r1, [r4, 0x78]                            |         r1 = *((r4 + 0x78));
    0x00013a4c mov r0, r5                                    |         r0 = r5;
    0x00013a50 bl 0x126a8                                    |         r0 = fcn_000126a8 (r0, r1);
    0x00013a54 cmp r0, 0                                     |         
    0x00013a58 beq 0x13a30                                   |         
                                                             |     }
    0x00013a5c ldr r5, [r4, 0x70]                            |     r5 = *((r4 + 0x70));
    0x00013a60 cmp r5, 2                                     |     
                                                             |     if (r5 != 2) {
    0x00013a64 beq 0x13ab8                                   |         
                                                             | label_4:
    0x00013a68 ldr r1, [pc, 0x204]                           |         r1 = *(0x13c70);
    0x00013a6c mov r0, r6                                    |         r0 = r6;
    0x00013a70 bl 0x10ea8                                    |         r0 = fopen64 ();
    0x00013a74 subs r8, r0, 0                                |         r8 = r0 - 0;
                                                             |         if (r8 != r0) {
    0x00013a78 bne 0x13c28                                   |             goto label_7;
                                                             |         }
    0x00013a7c ldr r3, [r4, 0x7c]                            |         r3 = *((r4 + 0x7c));
    0x00013a80 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00013a84 bne 0x13ab0                                   |             
    0x00013a88 ldr r3, [pc, 0x1e8]                           |             r3 = "rb";
    0x00013a8c ldr r4, [r3]                                  |             r4 = "rb";
    0x00013a90 bl 0x10e18                                    |             r0 = errno_location ();
    0x00013a94 ldr r0, [r0]                                  |             r0 = *(r0);
    0x00013a98 bl 0x10c8c                                    |             strerror (r0);
    0x00013a9c mov r2, r6                                    |             r2 = r6;
    0x00013aa0 ldr r1, [pc, 0x1d4]                           |             r1 = stderr;
    0x00013aa4 mov r3, r0                                    |             r3 = r0;
    0x00013aa8 mov r0, r4                                    |             r0 = r4;
    0x00013aac bl 0x10d34                                    |             fprintf (r0, r1, r2, r3)
                                                             |         }
    0x00013ab0 mov r5, 2                                     |         r5 = 2;
    0x00013ab4 b 0x13a34                                     |         goto label_0;
                                                             |     }
    0x00013ab8 mov r0, r6                                    |     r0 = r6;
    0x00013abc bl 0x10dac                                    |     r0 = opendir ();
    0x00013ac0 subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 != r0) {
    0x00013ac4 bne 0x13bc8                                   |         goto label_8;
                                                             |     }
    0x00013ac8 ldr r3, [r4, 0x7c]                            |     r3 = *((r4 + 0x7c));
    0x00013acc cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00013ad0 bne 0x13a34                                   |         goto label_0;
                                                             |     }
    0x00013ad4 ldr r3, [pc, 0x19c]                           |     r3 = "rb";
    0x00013ad8 ldr r4, [r3]                                  |     r4 = "rb";
    0x00013adc bl 0x10e18                                    |     r0 = errno_location ();
    0x00013ae0 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00013ae4 bl 0x10c8c                                    |     strerror (r0);
    0x00013ae8 mov r2, r6                                    |     r2 = r6;
    0x00013aec ldr r1, [pc, 0x18c]                           |     r1 = "pcregrep: Failed to open %s: %s\n";
    0x00013af0 mov r3, r0                                    |     r3 = r0;
    0x00013af4 mov r0, r4                                    |     r0 = r4;
    0x00013af8 bl 0x10d34                                    |     fprintf (r0, "pcregrep: Failed to open %s: %s\n", r2, r3)
    0x00013afc b 0x13a34                                     |     goto label_0;
                                                             | label_2:
    0x00013b00 mov r3, 0x2f                                  |     r3 = 0x2f;
    0x00013b04 mov r2, r6                                    |     r2 = r6;
    0x00013b08 mov r1, fp                                    |     r1 = fp;
    0x00013b0c str r4, [sp]                                  |     *(sp) = r4;
    0x00013b10 add r0, sp, 0x10                              |     r0 += s;
    0x00013b14 bl 0x10dd0                                    |     sprintf (r0, r1, r2);
    0x00013b18 mov r2, 0                                     |     r2 = 0;
    0x00013b1c mov r1, r8                                    |     r1 = r8;
    0x00013b20 add r0, sp, 0x10                              |     r0 += s;
    0x00013b24 bl 0x13c98                                    |     r0 = fcn_00013c98 (r0, r1);
    0x00013b28 cmp r0, 1                                     |     
                                                             |     if (r0 <= 1) {
    0x00013b2c bgt 0x13b40                                   |         
    0x00013b30 cmp r0, 0                                     |         
    0x00013b34 cmpeq r5, 1                                   |         __asm ("cmpeq r5, 1");
                                                             |         if (r0 == 0) {
    0x00013b38 movne r0, r5                                  |             r0 = r5;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00013b3c moveq r0, 0                                   |             r0 = 0;
                                                             |             goto label_9;
                                                             |         }
                                                             |     }
                                                             | label_9:
    0x00013b40 mov r5, r0                                    |     r5 = r0;
                                                             |     do {
                                                             | label_1:
    0x00013b44 mov r0, r7                                    |         r0 = r7;
    0x00013b48 bl 0x10d64                                    |         r0 = readdir64 ();
    0x00013b4c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00013b50 beq 0x13bbc                                   |             goto label_10;
                                                             |         }
    0x00013b54 add r4, r0, 0x13                              |         r4 = r0 + 0x13;
    0x00013b58 mov r1, sb                                    |         r1 = sb;
    0x00013b5c mov r0, r4                                    |         r0 = r4;
    0x00013b60 bl 0x10db8                                    |         r0 = strcmp (r0, r1);
    0x00013b64 cmp r0, 0                                     |         
    0x00013b68 beq 0x13b44                                   |         
                                                             |     } while (r0 == 0);
    0x00013b6c mov r1, sl                                    |     r1 = sl;
    0x00013b70 mov r0, r4                                    |     r0 = r4;
    0x00013b74 bl 0x10db8                                    |     r0 = strcmp (r0, r1);
    0x00013b78 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00013b7c beq 0x13b44                                   |         goto label_1;
                                                             |     }
    0x00013b80 mov r0, r6                                    |     r0 = r6;
    0x00013b84 bl 0x10e3c                                    |     strlen (r0);
    0x00013b88 str r0, [sp, 0xc]                             |     var_ch = r0;
    0x00013b8c mov r0, r4                                    |     r0 = r4;
    0x00013b90 bl 0x10e3c                                    |     strlen (r0);
    0x00013b94 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00013b98 add r0, r3, r0                                |     r0 = r3 + r0;
    0x00013b9c add r0, r0, 2                                 |     r0 += 2;
    0x00013ba0 cmp r0, 0x800                                 |     
                                                             |     if (r0 <= 0x800) {
    0x00013ba4 ble 0x13b00                                   |         goto label_2;
                                                             |     }
    0x00013ba8 ldr r3, [pc, 0xc8]                            |     r3 = "rb";
    0x00013bac ldr r0, [pc, 0xd0]                            |     r0 = "pcregrep: Failed to open directory %s: %s\n";
    0x00013bb0 ldr r1, [r3]                                  |     r1 = "rb";
    0x00013bb4 bl 0x10e60                                    |     fputs ("pcregrep: Failed to open directory %s: %s\n", "rb");
    0x00013bb8 mov r5, 2                                     |     r5 = 2;
                                                             | label_10:
    0x00013bbc mov r0, r7                                    |     r0 = r7;
    0x00013bc0 bl 0x10e6c                                    |     closedir ();
    0x00013bc4 b 0x13a34                                     |     goto label_0;
                                                             | label_8:
    0x00013bc8 mov r5, 1                                     |     r5 = 1;
    0x00013bcc ldr sb, [pc, 0xb4]                            |     sb = "pcre2grep: recursive filename is too long\n";
    0x00013bd0 ldr sl, [pc, 0xb4]                            |     sl = *(0x13c88);
    0x00013bd4 ldr fp, [pc, 0xb4]                            |     fp = "%s%c%s";
    0x00013bd8 b 0x13b44                                     |     goto label_1;
                                                             | label_6:
    0x00013bdc add r1, sp, 0x10                              |     r1 += s;
    0x00013be0 mov r0, r6                                    |     r0 = r6;
    0x00013be4 bl 0x10c98                                    |     r0 = stat64 ();
    0x00013be8 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00013bec blt 0x13c0c                                   |         goto label_11;
                                                             |     }
    0x00013bf0 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00013bf4 and r3, r3, 0xf000                            |     r3 &= 0xf000;
    0x00013bf8 cmp r3, 0x8000                                |     
                                                             |     if (r3 == 0x8000) {
    0x00013bfc beq 0x13c0c                                   |         goto label_11;
                                                             |     }
    0x00013c00 ldr r3, [r4, 0x80]                            |     r3 = *((r4 + 0x80));
    0x00013c04 cmp r3, 1                                     |     
                                                             |     if (r3 == 1) {
    0x00013c08 beq 0x13a30                                   |         goto label_3;
                                                             |     }
                                                             | label_11:
    0x00013c0c ldr r2, [r4, 0x84]                            |     r2 = *((r4 + 0x84));
    0x00013c10 ldr r1, [r4, 0x88]                            |     r1 = *((r4 + 0x88));
    0x00013c14 mov r0, r5                                    |     r0 = r5;
    0x00013c18 bl 0x126a8                                    |     r0 = fcn_000126a8 (r0, r1);
    0x00013c1c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00013c20 bne 0x13a68                                   |         goto label_4;
                                                             |     }
    0x00013c24 b 0x13a30                                     |     goto label_3;
                                                             | label_7:
    0x00013c28 ldr r3, [pc, 0x64]                            |     
    0x00013c2c ldr r3, [r3, 8]                               |     r3 = *(0x13c98);
    0x00013c30 cmp r3, 1                                     |     
                                                             |     if (r3 <= 1) {
    0x00013c34 movgt r2, r6                                  |         r2 = r6;
                                                             |     }
                                                             |     if (r3 <= 1) {
    0x00013c38 bgt 0x13c54                                   |         
    0x00013c3c eor r7, r7, 1                                 |         r7 ^= 1;
                                                             |         if (r3 != 1) {
    0x00013c40 andeq r7, r7, 1                               |             r7 &= 1;
                                                             |         }
                                                             |         if (r3 == 1) {
    0x00013c44 movne r7, 0                                   |             r7 = 0;
                                                             |         }
    0x00013c48 cmp r7, 0                                     |         
                                                             |         if (r7 == 0) {
    0x00013c4c movne r2, r6                                  |             r2 = r6;
                                                             |         }
                                                             |         if (r7 == 0) {
    0x00013c50 moveq r2, 0                                   |             r2 = 0;
                                                             |             goto label_12;
                                                             |         }
                                                             |     }
                                                             | label_12:
    0x00013c54 mov r1, r6                                    |     r1 = r6;
    0x00013c58 mov r0, r8                                    |     r0 = r8;
    0x00013c5c bl 0x12b48                                    |     r0 = fcn_00012b48 (r0, r1);
    0x00013c60 mov r5, r0                                    |     r5 = r0;
    0x00013c64 mov r0, r8                                    |     r0 = r8;
    0x00013c68 bl 0x10d94                                    |     fclose (r0);
    0x00013c6c b 0x13a34                                     |     goto label_0;
    0x00013c98 push {r4, r5, r6, lr}                         |     
    0x00013c9c mov r6, r1                                    |     r6 = r1;
    0x00013ca0 ldr r1, [pc, 0x64]                            |     r1 = *(0x13d08);
    0x00013ca4 mov r5, r0                                    |     r5 = r0;
    0x00013ca8 mov r4, r2                                    |     r4 = r2;
    0x00013cac bl 0x10db8                                    |     r0 = strcmp (r0, r1);
    0x00013cb0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00013cb4 bne 0x13cf8                                   |         
    0x00013cb8 ldr r3, [pc, 0x50]                            |         r3 = *(0x13d0c);
    0x00013cbc ldr r0, [r3]                                  |         r0 = *(0x13d0c);
    0x00013cc0 ldr r3, [pc, 0x4c]                            |         
    0x00013cc4 ldr r1, [r3]                                  |         r1 = stdin;
    0x00013cc8 ldr r3, [r3, 8]                               |         r3 = *(0x13d18);
    0x00013ccc cmp r3, 1                                     |         
                                                             |         if (r3 <= 1) {
    0x00013cd0 movgt r2, r1                                  |             r2 = r1;
                                                             |         }
                                                             |         if (r3 <= 1) {
    0x00013cd4 bgt 0x13cf0                                   |             
    0x00013cd8 eor r4, r4, 1                                 |             r4 ^= 1;
                                                             |             if (r3 != 1) {
    0x00013cdc andeq r4, r4, 1                               |                 r4 &= 1;
                                                             |             }
                                                             |             if (r3 == 1) {
    0x00013ce0 movne r4, 0                                   |                 r4 = 0;
                                                             |             }
    0x00013ce4 cmp r4, 0                                     |             
                                                             |             if (r4 == 0) {
    0x00013ce8 movne r2, r1                                  |                 r2 = r1;
                                                             |             }
                                                             |             if (r4 == 0) {
    0x00013cec moveq r2, 0                                   |                 r2 = 0;
                                                             |                 goto label_13;
                                                             |             }
                                                             |         }
                                                             | label_13:
    0x00013cf0 pop {r4, r5, r6, lr}                          |         
    0x00013cf4 b 0x12b48                                     |         void (*0x12b48)() ();
                                                             |     }
    0x00013cf8 mov r2, r4                                    |     r2 = r4;
    0x00013cfc mov r1, r6                                    |     r1 = r6;
    0x00013d00 mov r0, r5                                    |     r0 = r5;
    0x00013d04 pop {r4, r5, r6, lr}                          |     
    0x00013d08 b 0x139d0                                     |     goto label_5;
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/pcregrep @ 0x13d80 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00013d80 ()                                      | void fcn_00013d80 (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00013d80 ldr r3, [pc, 0x108]                               |     r3 = *(0x13e8c);
    0x00013d84 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, lr}     |     
    0x00013d88 ldr r6, [r3]                                      |     r6 = *(0x13e8c);
    0x00013d8c mov r4, r0                                        |     r4 = r0;
                                                                 |     do {
    0x00013d90 mov lr, r0                                        |         lr = r0;
    0x00013d94 ldrb ip, [r0], 1                                  |         ip = *(r0);
                                                                 |         r0++;
    0x00013d98 lsl r3, ip, 1                                     |         r3 = ip << 1;
    0x00013d9c cmp ip, 0                                         |         
    0x00013da0 ldrh r3, [r6, r3]                                 |         r3 = *((r6 + r3));
                                                                 |         if (ip == 0) {
    0x00013da4 beq 0x13e68                                       |             goto label_1;
                                                                 |         }
    0x00013da8 ands r3, r3, 0x20                                 |         r3 &= 0x20;
    0x00013dac bne 0x13d90                                       |         
                                                                 |     } while (r3 != r3);
    0x00013db0 mov r0, r3                                        |     r0 = r3;
                                                                 | label_0:
    0x00013db4 mov r8, 0xa                                       |     r8 = 0xa;
    0x00013db8 b 0x13dc4                                         |     
                                                                 |     while ((r7 & 8) != 0) {
    0x00013dbc mla ip, r8, r0, sb                                |         __asm ("mla ip, r8, r0, sb");
    0x00013dc0 sub r0, ip, 0x30                                  |         r0 = ip - 0x30;
    0x00013dc4 ldrb sb, [lr]                                     |         sb = *(lr);
    0x00013dc8 mov r3, lr                                        |         r3 = lr;
    0x00013dcc lsl r5, sb, 1                                     |         r5 = sb << 1;
    0x00013dd0 ldrh r7, [r6, r5]                                 |         r7 = *((r6 + r5));
    0x00013dd4 add lr, lr, 1                                     |         lr++;
    0x00013dd8 tst r7, 8                                         |         
    0x00013ddc bne 0x13dbc                                       |         
                                                                 |     }
    0x00013de0 ldr ip, [pc, 0xac]                                |     ip = obj.__ctype_toupper;
    0x00013de4 ldr ip, [ip]                                      |     ip = *(ip);
    0x00013de8 ldrsh ip, [ip, r5]                                |     ip = *((ip + r5));
    0x00013dec cmp ip, 0x4b                                      |     
                                                                 |     if (ip != 0x4b) {
    0x00013df0 lsleq r0, r0, 0xa                                 |         r0 <<= 0xa;
                                                                 |     }
                                                                 |     if (ip != 0x4b) {
    0x00013df4 beq 0x13e04                                       |         
    0x00013df8 cmp ip, 0x4d                                      |         
                                                                 |         if (ip != 0x4d) {
    0x00013dfc bne 0x13e08                                       |             goto label_2;
                                                                 |         }
    0x00013e00 lsl r0, r0, 0x14                                  |         r0 <<= 0x14;
                                                                 |     }
    0x00013e04 mov r3, lr                                        |     r3 = lr;
                                                                 | label_2:
    0x00013e08 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00013e0c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00013e10 beq 0x13e88                                       |         goto label_3;
                                                                 |     }
    0x00013e14 ldr r3, [pc, 0x7c]                                |     r3 = __ctype_toupper;
    0x00013e18 cmp r2, 0                                         |     
    0x00013e1c ldr r6, [r3]                                      |     r6 = __ctype_toupper;
                                                                 |     if (r2 == 0) {
    0x00013e20 beq 0x13e70                                       |         goto label_4;
                                                                 |     }
    0x00013e24 ldr r5, [r1, 0xc]                                 |     r5 = *((r1 + 0xc));
    0x00013e28 mov r1, 0x3d                                      |     r1 = 0x3d;
    0x00013e2c mov r0, r5                                        |     r0 = r5;
    0x00013e30 bl 0x10e54                                        |     r0 = strchr (r0, r1);
    0x00013e34 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00013e38 subne r0, r0, r5                                  |         r0 -= r5;
                                                                 |     }
                                                                 |     if (r0 == 0) {
    0x00013e3c bne 0x13e48                                       |         
    0x00013e40 mov r0, r5                                        |         r0 = r5;
    0x00013e44 bl 0x10e3c                                        |         r0 = strlen (r0);
                                                                 |     }
    0x00013e48 mov r3, r0                                        |     r3 = r0;
    0x00013e4c str r5, [sp]                                      |     *(sp) = r5;
    0x00013e50 mov r2, r4                                        |     r2 = r4;
    0x00013e54 ldr r1, [pc, 0x40]                                |     r1 = stderr;
    0x00013e58 mov r0, r6                                        |     r0 = r6;
    0x00013e5c bl 0x10d34                                        |     r0 = fprintf (r0, r1, r2, r3, r4, r5)
                                                                 |     do {
    0x00013e60 bl 0x13d18                                        |         fcn_00013d18 ();
    0x00013e64 bl 0x127c8                                        |         fcn_000127c8 (r0);
                                                                 | label_1:
    0x00013e68 mov r0, ip                                        |         r0 = ip;
    0x00013e6c b 0x13db4                                         |         goto label_0;
                                                                 | label_4:
    0x00013e70 ldr r3, [r1, 4]                                   |         r3 = *((r1 + 4));
    0x00013e74 mov r2, r4                                        |         r2 = r4;
    0x00013e78 ldr r1, [pc, 0x20]                                |         r1 = "pcregrep: Malformed number \"%s\" after --%.*s\n";
    0x00013e7c mov r0, r6                                        |         r0 = r6;
    0x00013e80 bl 0x10d34                                        |         fprintf (r0, "pcregrep: Malformed number \"%s\" after --%.*s\n", r2, r3)
    0x00013e84 b 0x13e60                                         |         
                                                                 |     } while (1);
                                                                 | label_3:
    0x00013e88 add sp, sp, 0xc                                   |     
    0x00013e8c pop {r4, r5, r6, r7, r8, sb, pc}                  |     
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/pcregrep @ 0x13ea4 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.00013ea4 ()                                      | void fcn_00013ea4 (uint32_t arg1, int32_t arg2) {
                                                                 |     char * dest;
                                                                 |     int32_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00013ea4 cmp r0, 0x63                                      |     
    0x00013ea8 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, lr}     |     
    0x00013eac mov r4, r1                                        |     r4 = r1;
                                                                 |     if (r0 == 0x63) {
    0x00013eb0 beq 0x1419c                                       |         goto label_8;
                                                                 |     }
    0x00013eb4 mov r2, r0                                        |     r2 = r0;
                                                                 |     if (r0 > 0x63) {
    0x00013eb8 bgt 0x14010                                       |         goto label_9;
                                                                 |     }
    0x00013ebc cmp r0, 0x46                                      |     
                                                                 |     if (r0 == 0x46) {
    0x00013ec0 beq 0x141ac                                       |         goto label_10;
                                                                 |     }
                                                                 |     if (r0 > 0x46) {
    0x00013ec4 bgt 0x13fb4                                       |         goto label_11;
                                                                 |     }
    0x00013ec8 cmn r0, 0xb                                       |     
                                                                 |     if (r0 == 0xb) {
    0x00013ecc beq 0x140cc                                       |         goto label_12;
                                                                 |     }
                                                                 |     if (r0 > 0xb) {
    0x00013ed0 bgt 0x13f08                                       |         goto label_13;
                                                                 |     }
    0x00013ed4 cmn r0, 0x10                                      |     
    0x00013ed8 ldr r3, [pc, 0x390]                               |     r3 = *(0x1426c);
                                                                 |     if (r0 == 0x10) {
    0x00013edc beq 0x14184                                       |         goto label_14;
                                                                 |     }
    0x00013ee0 cmn r0, 0xc                                       |     
                                                                 |     if (r0 != 0xc) {
    0x00013ee4 moveq r2, 1                                       |         r2 = 1;
                                                                 |     }
                                                                 |     if (r0 != 0xc) {
    0x00013ee8 streq r2, [r3, 0x40]                              |         *((r3 + 0x40)) = r2;
                                                                 |     }
                                                                 |     if (r0 == 0xc) {
    0x00013eec beq 0x1403c                                       |         goto label_1;
                                                                 |     }
                                                                 |     do {
                                                                 | label_0:
    0x00013ef0 ldr r3, [pc, 0x37c]                               |         r3 = *(0x14270);
    0x00013ef4 ldr r1, [pc, 0x37c]                               |         r1 = stderr;
    0x00013ef8 ldr r0, [r3]                                      |         r0 = *(0x14270);
    0x00013efc bl 0x10d34                                        |         r0 = fprintf (r0, r1, r2, r3)
    0x00013f00 bl 0x13d18                                        |         fcn_00013d18 ();
    0x00013f04 b 0x13fb0                                         |         goto label_15;
                                                                 | label_13:
    0x00013f08 cmn r0, 0xa                                       |         
                                                                 |         if (r0 == 0xa) {
    0x00013f0c beq 0x14170                                       |             goto label_16;
                                                                 |         }
    0x00013f10 cmn r0, 4                                         |         
    0x00013f14 bne 0x13ef0                                       |         
                                                                 |     } while (r0 != 4);
    0x00013f18 ldr r0, [pc, 0x35c]                               |     r0 = "pcregrep: Unknown option -%c\n";
    0x00013f1c bl 0x10cd4                                        |     puts ("pcregrep: Unknown option -%c\n");
    0x00013f20 ldr r0, [pc, 0x358]                               |     r0 = "Usage:_pcregrep__OPTION_...__PATTERN___FILE1_FILE2_..._";
    0x00013f24 bl 0x10cd4                                        |     puts ("Usage:_pcregrep__OPTION_...__PATTERN___FILE1_FILE2_..._");
    0x00013f28 ldr r0, [pc, 0x354]                               |     r0 = "Search_for_PATTERN_in_each_FILE_or_standard_input.";
    0x00013f2c bl 0x10cd4                                        |     puts ("Search_for_PATTERN_in_each_FILE_or_standard_input.");
    0x00013f30 ldr r0, [pc, 0x350]                               |     r0 = "PATTERN must be present if neither -e nor -f is used.";
    0x00013f34 bl 0x10cd4                                        |     puts ("PATTERN must be present if neither -e nor -f is used.");
    0x00013f38 ldr r0, [pc, 0x34c]                               |     r0 = "\"-\" can be used as a file name to mean STDIN.";
    0x00013f3c bl 0x10cd4                                        |     puts ("\"-\" can be used as a file name to mean STDIN.");
    0x00013f40 ldr r0, [pc, 0x348]                               |     r0 = "All files are read as plain files, without any interpretation.\n";
    0x00013f44 bl 0x10cd4                                        |     puts ("All files are read as plain files, without any interpretation.\n");
    0x00013f48 ldr r0, [pc, 0x344]                               |     r0 = "Example: pcregrep -i 'hello.*world' menu.h main.c\n";
    0x00013f4c bl 0x10cd4                                        |     puts ("Example: pcregrep -i 'hello.*world' menu.h main.c\n");
    0x00013f50 ldr r4, [pc, 0x340]                               |     r4 = "Options:";
    0x00013f54 ldr r7, [pc, 0x340]                               |     r7 = *(0x14298);
    0x00013f58 ldr r8, [pc, 0x340]                               |     r8 = "___________________________";
    0x00013f5c ldr sb, [pc, 0x340]                               |     sb = "_s____s";
                                                                 | label_2:
    0x00013f60 ldr r5, [r4, 4]                                   |     r5 = *((r4 + 4));
    0x00013f64 cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x00013f68 bne 0x140dc                                       |         goto label_17;
                                                                 |     }
    0x00013f6c ldr r0, [pc, 0x334]                               |     r0 = "_s____s";
    0x00013f70 bl 0x10cd4                                        |     puts ("_s____s");
    0x00013f74 mov r1, 0x5000                                    |     r1 = 0x5000;
    0x00013f78 ldr r0, [pc, 0x32c]                               |     r0 = "Numbers_may_be_followed_by_K_or_M__e.g.___buffer_size100K.";
    0x00013f7c bl 0x10c80                                        |     printf ("Numbers_may_be_followed_by_K_or_M__e.g.___buffer_size100K.", r1);
    0x00013f80 ldr r0, [pc, 0x328]                               |     r0 = "The default value for --buffer-size is %d.\n";
    0x00013f84 bl 0x10cd4                                        |     puts ("The default value for --buffer-size is %d.\n");
    0x00013f88 ldr r0, [pc, 0x324]                               |     r0 = "When reading patterns or file names from a file, trailing white";
    0x00013f8c bl 0x10cd4                                        |     puts ("When reading patterns or file names from a file, trailing white");
    0x00013f90 mov r1, 0x2000                                    |     r1 = 0x2000;
    0x00013f94 ldr r0, [pc, 0x31c]                               |     r0 = "space is removed and blank lines are ignored.";
    0x00013f98 bl 0x10c80                                        |     printf ("space is removed and blank lines are ignored.", r1);
    0x00013f9c ldr r0, [pc, 0x318]                               |     r0 = "The maximum size of any pattern is %d bytes.\n";
    0x00013fa0 bl 0x10cd4                                        |     puts ("The maximum size of any pattern is %d bytes.\n");
    0x00013fa4 ldr r0, [pc, 0x314]                               |     r0 = "\nWith no FILEs, read standard input. If fewer than two FILEs given, assume -h.";
    0x00013fa8 bl 0x10cd4                                        |     puts ("\nWith no FILEs, read standard input. If fewer than two FILEs given, assume -h.");
                                                                 | label_7:
    0x00013fac mov r0, 0                                         |     r0 = 0;
                                                                 | label_15:
    0x00013fb0 bl 0x127c8                                        |     r0 = fcn_000127c8 (r0);
                                                                 | label_11:
    0x00013fb4 cmp r0, 0x4c                                      |     
                                                                 |     if (r0 == 0x4c) {
    0x00013fb8 beq 0x141f4                                       |         goto label_18;
                                                                 |     }
                                                                 |     if (r0 > 0x4c) {
    0x00013fbc bgt 0x13fe0                                       |         goto label_19;
                                                                 |     }
    0x00013fc0 cmp r0, 0x48                                      |     
                                                                 |     if (r0 == 0x48) {
    0x00013fc4 beq 0x141c0                                       |         goto label_20;
                                                                 |     }
    0x00013fc8 cmp r0, 0x49                                      |     
                                                                 |     if (r0 != 0x49) {
    0x00013fcc ldreq r3, [pc, 0x29c]                             |         r3 = *(0x00014270);
                                                                 |     }
                                                                 |     if (r0 == 0x49) {
    0x00013fd0 moveq r2, 1                                       |         r2 = 1;
                                                                 |         goto label_21;
                                                                 |     }
                                                                 |     if (r0 != 0x49) {
                                                                 | label_21:
    0x00013fd4 bne 0x13ef0                                       |         goto label_0;
                                                                 |     }
                                                                 | label_4:
    0x00013fd8 str r2, [r3, 0x44]                                |     *((r3 + 0x44)) = r2;
    0x00013fdc b 0x1403c                                         |     goto label_1;
                                                                 | label_19:
    0x00013fe0 cmp r0, 0x56                                      |     
                                                                 |     if (r0 == 0x56) {
    0x00013fe4 beq 0x14250                                       |         goto label_22;
                                                                 |     }
    0x00013fe8 cmp r0, 0x61                                      |     
    0x00013fec ldr r3, [pc, 0x27c]                               |     r3 = *(0x1426c);
                                                                 |     if (r0 == 0x61) {
    0x00013ff0 beq 0x14194                                       |         goto label_23;
                                                                 |     }
    0x00013ff4 cmp r0, 0x4d                                      |     
                                                                 |     if (r0 != 0x4d) {
    0x00013ff8 bne 0x13ef0                                       |         goto label_0;
                                                                 |     }
    0x00013ffc mov r2, 1                                         |     r2 = 1;
    0x00014000 orr r4, r1, 0x40000                               |     r4 = r1 | 0x40000;
    0x00014004 str r2, [r3, 0x48]                                |     *((r3 + 0x48)) = r2;
    0x00014008 orr r4, r4, 2                                     |     r4 |= 2;
    0x0001400c b 0x1403c                                         |     goto label_1;
                                                                 | label_9:
    0x00014010 cmp r0, 0x71                                      |     
                                                                 |     if (r0 == 0x71) {
    0x00014014 beq 0x1420c                                       |         goto label_24;
                                                                 |     }
                                                                 |     if (r0 > 0x71) {
    0x00014018 bgt 0x1407c                                       |         goto label_25;
                                                                 |     }
    0x0001401c cmp r0, 0x6c                                      |     
                                                                 |     if (r0 == 0x6c) {
    0x00014020 beq 0x141dc                                       |         goto label_26;
                                                                 |     }
                                                                 |     if (r0 > 0x6c) {
    0x00014024 bgt 0x14048                                       |         goto label_27;
                                                                 |     }
    0x00014028 cmp r0, 0x68                                      |     
                                                                 |     if (r0 == 0x68) {
    0x0001402c beq 0x141d0                                       |         goto label_28;
                                                                 |     }
    0x00014030 cmp r0, 0x69                                      |     
                                                                 |     if (r0 == 0x69) {
    0x00014034 orreq r4, r1, 1                                   |         r4 = r1 | 1;
                                                                 |         goto label_29;
                                                                 |     }
                                                                 |     if (r0 != 0x69) {
                                                                 | label_29:
    0x00014038 bne 0x13ef0                                       |         goto label_0;
                                                                 |     }
                                                                 | label_1:
    0x0001403c mov r0, r4                                        |     r0 = r4;
    0x00014040 add sp, sp, 0xc                                   |     
    0x00014044 pop {r4, r5, r6, r7, r8, sb, pc}                  |     
                                                                 | label_27:
    0x00014048 cmp r0, 0x6e                                      |     
    0x0001404c ldr r5, [pc, 0x21c]                               |     r5 = *(0x1426c);
                                                                 |     if (r0 == 0x6e) {
    0x00014050 beq 0x14200                                       |         goto label_30;
                                                                 |     }
    0x00014054 cmp r0, 0x6f                                      |     
                                                                 |     if (r0 != 0x6f) {
    0x00014058 bne 0x13ef0                                       |         goto label_0;
                                                                 |     }
    0x0001405c ldr r1, [r5, 0x94]                                |     r1 = *((r5 + 0x94));
    0x00014060 mov r0, 0                                         |     r0 = 0;
    0x00014064 bl 0x12a88                                        |     fcn_00012a88 (r0, r1);
    0x00014068 ldr r3, [r5, 0x60]                                |     r3 = *((r5 + 0x60));
    0x0001406c cmp r3, 0                                         |     
    0x00014070 str r0, [r5, 0x94]                                |     *((r5 + 0x94)) = r0;
                                                                 |     if (r3 != 0) {
    0x00014074 streq r0, [r5, 0x60]                              |         *((r5 + 0x60)) = r0;
                                                                 |     }
    0x00014078 b 0x1403c                                         |     goto label_1;
                                                                 | label_25:
    0x0001407c cmp r0, 0x75                                      |     
    0x00014080 ldr r3, [pc, 0x1e8]                               |     r3 = *(0x1426c);
                                                                 |     if (r0 == 0x75) {
    0x00014084 beq 0x14228                                       |         goto label_31;
                                                                 |     }
                                                                 |     if (r0 > 0x75) {
    0x00014088 bgt 0x140a8                                       |         goto label_32;
                                                                 |     }
    0x0001408c cmp r0, 0x72                                      |     
                                                                 |     if (r0 == 0x72) {
    0x00014090 beq 0x1421c                                       |         goto label_33;
                                                                 |     }
    0x00014094 cmp r0, 0x73                                      |     
                                                                 |     if (r0 != 0x73) {
    0x00014098 moveq r2, 1                                       |         r2 = 1;
                                                                 |     }
                                                                 |     if (r0 == 0x73) {
    0x0001409c streq r2, [r3, 0x7c]                              |         *((r3 + 0x7c)) = r2;
                                                                 |         goto label_34;
                                                                 |     }
                                                                 |     if (r0 == 0x73) {
                                                                 | label_34:
    0x000140a0 beq 0x1403c                                       |         goto label_1;
                                                                 |     }
    0x000140a4 b 0x13ef0                                         |     goto label_0;
                                                                 | label_32:
    0x000140a8 cmp r0, 0x77                                      |     
                                                                 |     if (r0 == 0x77) {
    0x000140ac beq 0x14244                                       |         goto label_35;
                                                                 |     }
                                                                 |     if (r0 < 0x77) {
    0x000140b0 blt 0x14238                                       |         goto label_36;
                                                                 |     }
    0x000140b4 cmp r0, 0x78                                      |     
                                                                 |     if (r0 != 0x78) {
    0x000140b8 ldreq r2, [r3, 0x90]                              |         r2 = *((r3 + 0x90));
                                                                 |     }
                                                                 |     if (r0 == 0x78) {
    0x000140bc orreq r2, r2, 2                                   |         r2 |= 2;
                                                                 |         goto label_37;
                                                                 |     }
                                                                 |     if (r0 != 0x78) {
                                                                 | label_37:
    0x000140c0 bne 0x13ef0                                       |         goto label_0;
                                                                 |     }
                                                                 | label_6:
    0x000140c4 str r2, [r3, 0x90]                                |     *((r3 + 0x90)) = r2;
    0x000140c8 b 0x1403c                                         |     goto label_1;
                                                                 | label_12:
    0x000140cc ldr r3, [pc, 0x19c]                               |     r3 = *(0x1426c);
    0x000140d0 mov r2, 1                                         |     r2 = 1;
    0x000140d4 str r2, [r3, 0x5c]                                |     *((r3 + 0x5c)) = r2;
    0x000140d8 b 0x1403c                                         |     goto label_1;
                                                                 | label_17:
    0x000140dc ldr r6, [r4, 0xc]                                 |     r6 = *((r4 + 0xc));
    0x000140e0 mov r1, 0x5f                                      |     r1 = 0x5f;
    0x000140e4 mov r0, r6                                        |     r0 = r6;
    0x000140e8 bl 0x10e54                                        |     r0 = strchr (r0, r1);
    0x000140ec cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000140f0 bne 0x14134                                       |         goto label_38;
                                                                 |     }
    0x000140f4 cmp r5, 0                                         |     
                                                                 |     if (r5 <= 0) {
    0x000140f8 ble 0x14160                                       |         goto label_39;
                                                                 |     }
    0x000140fc ldrb r3, [r6]                                     |     r3 = *(r6);
    0x00014100 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00014104 bne 0x1413c                                       |         goto label_40;
                                                                 |     }
    0x00014108 mov r1, r5                                        |     r1 = r5;
    0x0001410c ldr r0, [pc, 0x1b0]                               |     r0 = "Exit_status_is_0_if_any_matches__1_if_no_matches__and_2_if_trouble.";
    0x00014110 bl 0x10c80                                        |     r0 = printf ("Exit_status_is_0_if_any_matches__1_if_no_matches__and_2_if_trouble.", r1);
                                                                 |     do {
    0x00014114 rsb r0, r0, 0x1f                                  |         r0 = 0x1f - r0;
    0x00014118 cmp r0, 1                                         |         
                                                                 |         if (r0 < 1) {
    0x0001411c movge r1, r0                                      |             r1 = r0;
                                                                 |         }
    0x00014120 ldr r3, [r4, 0x10]                                |         r3 = *((r4 + 0x10));
    0x00014124 mov r2, r7                                        |         r2 = r7;
                                                                 |         if (r0 >= 1) {
    0x00014128 movlt r1, 1                                       |             r1 = 1;
                                                                 |         }
    0x0001412c mov r0, r8                                        |         r0 = r8;
    0x00014130 bl 0x10c80                                        |         printf (r0, r1, r2, r3);
                                                                 | label_38:
    0x00014134 add r4, r4, 0x14                                  |         r4 += 0x14;
    0x00014138 b 0x13f60                                         |         goto label_2;
                                                                 | label_40:
    0x0001413c mov r2, r5                                        |         r2 = r5;
    0x00014140 ldr r1, [pc, 0x180]                               |         r1 = "  -%c";
    0x00014144 add r0, sp, 4                                     |         r0 += dest;
    0x00014148 bl 0x10dd0                                        |         sprintf (r0, "  -%c", r2);
                                                                 | label_3:
    0x0001414c ldr r2, [r4, 0xc]                                 |         r2 = *((r4 + 0xc));
    0x00014150 add r1, sp, 4                                     |         r1 += dest;
    0x00014154 mov r0, sb                                        |         r0 = sb;
    0x00014158 bl 0x10c80                                        |         printf (r0, r1, r2);
    0x0001415c b 0x14114                                         |         
                                                                 |     } while (1);
                                                                 | label_39:
    0x00014160 ldr r1, [pc, 0x164]                               |     r1 = "-%c,";
    0x00014164 add r0, sp, 4                                     |     r0 += dest;
    0x00014168 bl 0x10c74                                        |     strcpy (r0, "-%c,");
    0x0001416c b 0x1414c                                         |     goto label_3;
                                                                 | label_16:
    0x00014170 ldr r3, [pc, 0xf8]                                |     r3 = *(0x1426c);
    0x00014174 mov r2, 1                                         |     r2 = 1;
    0x00014178 str r2, [r3, 0x1c]                                |     *((r3 + 0x1c)) = r2;
    0x0001417c str r2, [r3, 0x58]                                |     *((r3 + 0x58)) = r2;
    0x00014180 b 0x1403c                                         |     goto label_1;
                                                                 | label_14:
    0x00014184 ldr r2, [r3, 0x8c]                                |     r2 = *((r3 + 0x8c));
    0x00014188 bic r2, r2, 1                                     |     r2 = BIT_MASK (r2, 1);
    0x0001418c str r2, [r3, 0x8c]                                |     *((r3 + 0x8c)) = r2;
    0x00014190 b 0x1403c                                         |     goto label_1;
                                                                 | label_23:
    0x00014194 mov r2, 2                                         |     r2 = 2;
    0x00014198 b 0x13fd8                                         |     goto label_4;
                                                                 | label_8:
    0x0001419c ldr r3, [pc, 0xcc]                                |     r3 = *(0x1426c);
    0x000141a0 mov r2, 1                                         |     r2 = 1;
    0x000141a4 str r2, [r3, 0x50]                                |     *((r3 + 0x50)) = r2;
    0x000141a8 b 0x1403c                                         |     goto label_1;
                                                                 | label_10:
    0x000141ac ldr r2, [pc, 0xbc]                                |     r2 = *(0x1426c);
    0x000141b0 ldr r3, [r2, 0x90]                                |     r3 = *(0x142fc);
    0x000141b4 orr r3, r3, 4                                     |     r3 |= 4;
    0x000141b8 str r3, [r2, 0x90]                                |     *((r2 + 0x90)) = r3;
    0x000141bc b 0x1403c                                         |     goto label_1;
                                                                 | label_20:
    0x000141c0 ldr r3, [pc, 0x108]                               |     r3 = "___";
    0x000141c4 mov r2, 4                                         |     r2 = 4;
                                                                 |     do {
                                                                 | label_5:
    0x000141c8 str r2, [r3, 8]                                   |         *((r3 + 8)) = r2;
    0x000141cc b 0x1403c                                         |         goto label_1;
                                                                 | label_28:
    0x000141d0 ldr r3, [pc, 0xf8]                                |         r3 = "___";
    0x000141d4 mov r2, 0                                         |         r2 = 0;
    0x000141d8 b 0x141c8                                         |         
                                                                 |     } while (1);
                                                                 | label_26:
    0x000141dc ldr r3, [pc, 0x8c]                                |     r3 = *(0x1426c);
    0x000141e0 mov r2, 1                                         |     r2 = 1;
    0x000141e4 str r2, [r3, 0x6c]                                |     *((r3 + 0x6c)) = r2;
    0x000141e8 ldr r3, [pc, 0xe0]                                |     r3 = "___";
    0x000141ec mov r2, 2                                         |     r2 = 2;
    0x000141f0 b 0x141c8                                         |     goto label_5;
                                                                 | label_18:
    0x000141f4 ldr r3, [pc, 0xd4]                                |     r3 = "___";
    0x000141f8 mov r2, 3                                         |     r2 = 3;
    0x000141fc b 0x141c8                                         |     goto label_5;
                                                                 | label_30:
    0x00014200 mov r3, 1                                         |     r3 = 1;
    0x00014204 str r3, [r5, 0x1c]                                |     *((r5 + 0x1c)) = r3;
    0x00014208 b 0x1403c                                         |     goto label_1;
                                                                 | label_24:
    0x0001420c ldr r3, [pc, 0x5c]                                |     r3 = *(0x1426c);
    0x00014210 mov r2, 1                                         |     r2 = 1;
    0x00014214 str r2, [r3, 0x4c]                                |     *((r3 + 0x4c)) = r2;
    0x00014218 b 0x1403c                                         |     goto label_1;
                                                                 | label_33:
    0x0001421c mov r2, 2                                         |     r2 = 2;
    0x00014220 str r2, [r3, 0x70]                                |     *((r3 + 0x70)) = r2;
    0x00014224 b 0x1403c                                         |     goto label_1;
                                                                 | label_31:
    0x00014228 mov r2, 1                                         |     r2 = 1;
    0x0001422c orr r4, r1, 0x800                                 |     r4 = r1 | 0x800;
    0x00014230 str r2, [r3, 4]                                   |     *((r3 + 4)) = r2;
    0x00014234 b 0x1403c                                         |     goto label_1;
                                                                 | label_36:
    0x00014238 mov r2, 1                                         |     r2 = 1;
    0x0001423c str r2, [r3, 0x14]                                |     *((r3 + 0x14)) = r2;
    0x00014240 b 0x1403c                                         |     goto label_1;
                                                                 | label_35:
    0x00014244 ldr r2, [r3, 0x90]                                |     r2 = *((r3 + 0x90));
    0x00014248 orr r2, r2, 1                                     |     r2 |= 1;
    0x0001424c b 0x140c4                                         |     goto label_6;
                                                                 | label_22:
    0x00014250 ldr r3, [pc, 0x7c]                                |     r3 = "_standard_input_";
    0x00014254 ldr r4, [r3]                                      |     r4 = "_standard_input_";
    0x00014258 bl 0x10d28                                        |     pcre_version ();
    0x0001425c ldr r1, [pc, 0x74]                                |     r1 = stdout;
    0x00014260 mov r2, r0                                        |     r2 = r0;
    0x00014264 mov r0, r4                                        |     r0 = r4;
    0x00014268 bl 0x10d34                                        |     fprintf (r0, r1, r2)
    0x0001426c b 0x13fac                                         |     goto label_7;
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/pcregrep @ 0x11384 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) main ()                                          | int32_t main (char * envp, int32_t argc, char ** argv) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     char * format;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     char * s2;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     r0 = argc;
                                                             |     r1 = argv;
    0x00011384 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00011388 ldr sl, [pc, 0xeb8]                           |     sl = *(0x00012248);
    0x0001138c sub sp, sp, 0x2040                            |     
    0x00011390 sub sp, sp, 0xc                               |     
    0x00011394 str r0, [sp, 0xc]                             |     var_ch = r0;
    0x00011398 str r1, [sp, 8]                               |     format = r1;
    0x0001139c mov r0, 1                                     |     r0 = 1;
    0x000113a0 add r1, sp, 0x20                              |     r1 += var_20h;
    0x000113a4 bl 0x10da0                                    |     pcre_config ();
    0x000113a8 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x000113ac cmn r3, 1                                     |     
                                                             |     if (r3 != 1) {
    0x000113b0 ldreq r3, [pc, 0xe94]                         |         r3 = "any";
                                                             |     }
                                                             |     if (r3 == 1) {
    0x000113b4 beq 0x113ec                                   |         goto label_40;
                                                             |     }
                                                             |     if (r3 > 1) {
    0x000113b8 bgt 0x113d0                                   |         goto label_41;
                                                             |     }
    0x000113bc cmn r3, 2                                     |     
                                                             |     if (r3 != 2) {
    0x000113c0 ldreq r3, [pc, 0xe88]                         |         r3 = "anycrlf";
                                                             |     }
                                                             |     if (r3 == 2) {
    0x000113c4 beq 0x113ec                                   |         goto label_40;
                                                             |     }
                                                             |     do {
    0x000113c8 ldr r3, [pc, 0xe84]                           |         r3 = "anycrlf";
    0x000113cc b 0x113ec                                     |         goto label_40;
                                                             | label_41:
    0x000113d0 cmp r3, 0xd                                   |         
                                                             |         if (r3 != 0xd) {
    0x000113d4 ldreq r3, [pc, 0xe7c]                         |             r3 = *((pc + 0xe7c));
                                                             |         }
                                                             |         if (r3 == 0xd) {
    0x000113d8 beq 0x113ec                                   |             goto label_40;
                                                             |         }
    0x000113dc ldr r2, [pc, 0xe78]                           |         r2 = *(0x12258);
    0x000113e0 cmp r3, r2                                    |         
                                                             |         if (r3 != r2) {
    0x000113e4 ldreq r3, [pc, 0xe74]                         |             r3 = *((pc + 0xe74));
                                                             |         }
    0x000113e8 bne 0x113c8                                   |         
                                                             |     } while (r3 != r2);
                                                             | label_40:
    0x000113ec ldr r6, [pc, 0xe54]                           |     r6 = *(0x12244);
    0x000113f0 str r3, [sl, 0x98]                            |     *((sl + 0x98)) = r3;
    0x000113f4 mov r3, 1                                     |     r3 = 1;
    0x000113f8 str r3, [sp, 0x20]                            |     var_20h = r3;
                                                             | label_7:
    0x000113fc add fp, sp, 0x48                              |     
    0x00011400 ldr r8, [fp, -0x28]                           |     r8 = var_20h;
    0x00011404 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00011408 cmp r8, r3                                    |     
                                                             |     if (r8 >= r3) {
    0x0001140c bge 0x11484                                   |         goto label_42;
                                                             |     }
    0x00011410 ldr r3, [sp, 8]                               |     r3 = format;
    0x00011414 ldr r5, [r3, r8, lsl 2]                       |     offset_0 = r8 << 2;
                                                             |     r5 = *((r3 + offset_0));
    0x00011418 ldrb r3, [r5]                                 |     r3 = *(r5);
    0x0001141c cmp r3, 0x2d                                  |     
                                                             |     if (r3 != 0x2d) {
    0x00011420 bne 0x11484                                   |         goto label_42;
                                                             |     }
    0x00011424 ldrb r3, [r5, 1]                              |     r3 = *((r5 + 1));
    0x00011428 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001142c bne 0x11454                                   |         goto label_43;
                                                             |     }
    0x00011430 ldr r3, [pc, 0xe10]                           |     r3 = *(0x12244);
    0x00011434 ldr r2, [r3, 0x9c]                            |     r2 = *(0x122e0);
    0x00011438 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x0001143c bne 0x11484                                   |         goto label_42;
                                                             |     }
    0x00011440 ldr r3, [r3, 0xc]                             |     r3 = *((r3 + 0xc));
    0x00011444 cmp r3, 0                                     |     
    0x00011448 bne 0x11484                                   |     
                                                             |     while (1) {
                                                             | label_1:
    0x0001144c bl 0x13d18                                    |         fcn_00013d18 ();
    0x00011450 b 0x115b4                                     |         goto label_17;
                                                             | label_43:
    0x00011454 cmp r3, 0x2d                                  |         
                                                             |         if (r3 != 0x2d) {
    0x00011458 bne 0x116e8                                   |             goto label_44;
                                                             |         }
    0x0001145c add r7, r5, 2                                 |         r7 = r5 + 2;
    0x00011460 mov r1, 0x3d                                  |         r1 = 0x3d;
    0x00011464 mov r0, r7                                    |         r0 = r7;
    0x00011468 bl 0x10e54                                    |         strchr (r0, r1);
    0x0001146c ldrb r3, [r5, 2]                              |         r3 = *((r5 + 2));
    0x00011470 cmp r3, 0                                     |         
    0x00011474 mov r4, r0                                    |         r4 = r0;
                                                             |         if (r3 != 0) {
    0x00011478 bne 0x116d8                                   |             goto label_45;
                                                             |         }
    0x0001147c add r8, r8, 1                                 |         r8++;
    0x00011480 str r8, [fp, -0x28]                           |         var_20h = r8;
                                                             | label_42:
    0x00011484 ldr r4, [pc, 0xdbc]                           |         r4 = *(0x12244);
    0x00011488 ldr r3, [r4, 0xa4]                            |         r3 = "pcregrep:_Unknown_colour_setting___s_";
    0x0001148c cmp r3, 0                                     |         
                                                             |         if (r3 > 0) {
    0x00011490 ble 0x114ac                                   |             
    0x00011494 ldr r2, [r4, 0x18]                            |             r2 = *((r4 + 0x18));
    0x00011498 cmp r2, 0                                     |             
    0x0001149c ldr r2, [r4, 0x68]                            |             r2 = *((r4 + 0x68));
                                                             |             if (r2 != 0) {
    0x000114a0 streq r3, [r4, 0x18]                          |                 *((r4 + 0x18)) = r3;
                                                             |             }
    0x000114a4 cmp r2, 0                                     |             
                                                             |             if (r2 == 0) {
    0x000114a8 streq r3, [r4, 0x68]                          |                 *((r4 + 0x68)) = r3;
                                                             |                 goto label_46;
                                                             |             }
                                                             |         }
                                                             | label_46:
    0x000114ac ldr r2, [r4, 0x60]                            |         r2 = *((r4 + 0x60));
    0x000114b0 ldr r3, [r4, 0x5c]                            |         r3 = *((r4 + 0x5c));
    0x000114b4 cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x000114b8 beq 0x121b8                                   |             goto label_47;
                                                             |         }
    0x000114bc cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000114c0 bne 0x114d0                                   |             
                                                             | label_37:
    0x000114c4 ldr r3, [r4, 0x58]                            |             r3 = *((r4 + 0x58));
    0x000114c8 cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x000114cc beq 0x121cc                                   |                 goto label_48;
                                                             |             }
                                                             |         }
    0x000114d0 ldr r3, [pc, 0xd8c]                           |         r3 = *(0x12260);
    0x000114d4 ldr r0, [pc, 0xd8c]                           |         r0 = stderr;
    0x000114d8 ldr r1, [r3]                                  |         r1 = *(0x12260);
    0x000114dc bl 0x10e60                                    |         fputs (r0, r1);
    0x000114e0 b 0x1144c                                     |         
                                                             |     }
                                                             | label_3:
    0x000114e4 cmp r4, 0                                     |     
    0x000114e8 sub r8, r0, fp                                |     r8 = r0 - fp;
                                                             |     if (r4 == 0) {
    0x000114ec subne sb, r4, r7                              |         sb = r4 - r7;
                                                             |     }
                                                             |     if (r4 == 0) {
    0x000114f0 bne 0x11500                                   |         
    0x000114f4 mov r0, r7                                    |         r0 = r7;
    0x000114f8 bl 0x10e3c                                    |         r0 = strlen (r0);
    0x000114fc mov sb, r0                                    |         sb = r0;
                                                             |     }
    0x00011500 cmp sb, r8                                    |     
                                                             |     if (sb != r8) {
    0x00011504 bne 0x11678                                   |         goto label_4;
                                                             |     }
    0x00011508 mov r2, sb                                    |     r2 = sb;
    0x0001150c mov r1, fp                                    |     r1 = fp;
    0x00011510 mov r0, r7                                    |     r0 = r7;
    0x00011514 bl 0x10d58                                    |     r0 = strncmp (r0, r1, r2);
    0x00011518 subs r8, r0, 0                                |     r8 = r0 - 0;
                                                             |     if (r8 != r0) {
    0x0001151c bne 0x11678                                   |         goto label_4;
                                                             |     }
    0x00011520 ldrb r3, [r7, sb]                             |     r3 = *((r7 + sb));
    0x00011524 add r4, r7, sb                                |     r4 = r7 + sb;
    0x00011528 cmp r3, 0x3d                                  |     
                                                             |     if (r3 != 0x3d) {
    0x0001152c bne 0x1164c                                   |         goto label_5;
                                                             |     }
                                                             | label_0:
    0x00011530 add r4, r4, 1                                 |     r4++;
    0x00011534 mov r8, 1                                     |     r8 = 1;
    0x00011538 b 0x1164c                                     |     goto label_5;
                                                             | label_2:
    0x0001153c sub r3, sb, fp                                |     r3 = sb - fp;
    0x00011540 mov r1, 0x29                                  |     r1 = 0x29;
    0x00011544 mov r0, fp                                    |     r0 = fp;
    0x00011548 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x0001154c bl 0x10e54                                    |     strchr (r0, r1);
    0x00011550 cmp r8, 0                                     |     
    0x00011554 cmpne r4, 0                                   |     __asm ("cmpne r4, 0");
    0x00011558 sub r0, r0, fp                                |     r0 -= fp;
    0x0001155c add r3, r0, 1                                 |     r3 = r0 + 1;
    0x00011560 str r3, [sp, 0x1c]                            |     var_1ch = r3;
                                                             |     if (r8 == 0) {
    0x00011564 subne r3, r4, r7                              |         r3 = r4 - r7;
                                                             |     }
                                                             |     if (r8 == 0) {
    0x00011568 strne r3, [sp, 0x10]                          |         var_10h = r3;
                                                             |     }
                                                             |     if (r8 == 0) {
    0x0001156c bne 0x1157c                                   |         
    0x00011570 mov r0, r7                                    |         r0 = r7;
    0x00011574 bl 0x10e3c                                    |         strlen (r0);
    0x00011578 str r0, [sp, 0x10]                            |         var_10h = r0;
                                                             |     }
    0x0001157c str fp, [sp]                                  |     *(sp) = fp;
    0x00011580 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x00011584 ldr r2, [pc, 0xce0]                           |     r2 = "pcregrep:_Cannot_mix___only_matching____file_offsets_and_or___line_offsets";
    0x00011588 mov r1, 0x18                                  |     r1 = 0x18;
    0x0001158c ldr r0, [sp, 0x14]                            |     r0 = s2;
    0x00011590 bl 0x10cb0                                    |     r0 = snprintf (r0, r1, "pcregrep:_Cannot_mix___only_matching____file_offsets_and_or___line_offsets", r3);
    0x00011594 cmp r0, 0x18                                  |     
    0x00011598 ble 0x115b8                                   |     
                                                             |     while (r0 > 0x18) {
    0x0001159c ldr r3, [pc, 0xcc0]                           |         r3 = *(0x12260);
    0x000115a0 ldr r2, [r5, 0xc]                             |         r2 = *((r5 + 0xc));
    0x000115a4 ldr r1, [pc, 0xcc4]                           |         r1 = "_.s";
    0x000115a8 ldr r0, [r3]                                  |         r0 = *(0x12260);
    0x000115ac bl 0x10d34                                    |         fprintf (r0, "_.s", r2, r3)
    0x000115b0 mov r0, 2                                     |         r0 = 2;
                                                             | label_17:
    0x000115b4 bl 0x127c8                                    |         fcn_000127c8 (r0);
    0x000115b8 ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x000115bc ldr r2, [sp, 0x18]                            |         r2 = var_18h;
    0x000115c0 add sb, sb, 1                                 |         sb++;
    0x000115c4 sub fp, r3, r2                                |         
    0x000115c8 sub fp, fp, 2                                 |         
    0x000115cc str sb, [sp, 4]                               |         var_4h = sb;
    0x000115d0 str fp, [sp]                                  |         *(sp) = fp;
    0x000115d4 ldr r3, [sp, 0x14]                            |         r3 = s2;
    0x000115d8 ldr r2, [pc, 0xc94]                           |         r2 = "pcregrep:_Buffer_overflow_when_parsing__s_option";
    0x000115dc mov r1, 0x18                                  |         r1 = 0x18;
    0x000115e0 add r0, sp, 0x3c                              |         r0 += envp;
    0x000115e4 bl 0x10cb0                                    |         r0 = snprintf (r0, r1, "pcregrep:_Buffer_overflow_when_parsing__s_option", r3);
    0x000115e8 cmp r0, 0x18                                  |         
    0x000115ec bgt 0x1159c                                   |         
                                                             |     }
    0x000115f0 ldr r2, [sp, 0x10]                            |     r2 = var_10h;
    0x000115f4 ldr r1, [sp, 0x14]                            |     r1 = s2;
    0x000115f8 mov r0, r7                                    |     r0 = r7;
    0x000115fc bl 0x10d58                                    |     r0 = strncmp (r0, r1, r2);
    0x00011600 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00011604 beq 0x11620                                   |         
    0x00011608 ldr r2, [sp, 0x10]                            |         r2 = var_10h;
    0x0001160c add r1, sp, 0x3c                              |         r1 += envp;
    0x00011610 mov r0, r7                                    |         r0 = r7;
    0x00011614 bl 0x10d58                                    |         r0 = strncmp (r0, r1, r2);
    0x00011618 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001161c bne 0x11678                                   |             goto label_4;
                                                             |         }
                                                             |     }
    0x00011620 adds r0, r4, 0                                |     r0 = r4 + 0;
                                                             |     if (r0 == r4) {
    0x00011624 movne r0, 1                                   |         r0 = 1;
                                                             |     }
    0x00011628 cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x0001162c movne r8, r0                                  |         r8 = r0;
                                                             |     }
                                                             |     if (r8 != 0) {
    0x00011630 moveq r8, 0                                   |         r8 = 0;
                                                             |     }
    0x00011634 cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x00011638 beq 0x116d0                                   |         goto label_49;
                                                             |     }
    0x0001163c ldrb r3, [r4]                                 |     r3 = *(r4);
    0x00011640 cmp r3, 0x3d                                  |     
                                                             |     if (r3 != 0x3d) {
    0x00011644 movne r8, 0                                   |         r8 = 0;
                                                             |         goto label_50;
                                                             |     }
                                                             |     if (r3 == 0x3d) {
                                                             | label_50:
    0x00011648 beq 0x11530                                   |         goto label_0;
                                                             |     }
                                                             | label_5:
    0x0001164c ldr r3, [r5, 4]                               |     r3 = *((r5 + 4));
    0x00011650 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00011654 bne 0x1178c                                   |         goto label_51;
                                                             |     }
    0x00011658 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x0001165c ldr r2, [sp, 8]                               |     r2 = format;
    0x00011660 ldr r1, [pc, 0xc10]                           |     r1 = "_s_.s";
    0x00011664 ldr r2, [r2, r3, lsl 2]                       |     offset_1 = r3 << 2;
                                                             |     r2 = *((r2 + offset_1));
                                                             | label_12:
    0x00011668 ldr r3, [pc, 0xbf4]                           |     r3 = *(0x12260);
    0x0001166c ldr r0, [r3]                                  |     r0 = *(0x12260);
    0x00011670 bl 0x10d34                                    |     fprintf (r0, "_s_.s", r2, r3)
    0x00011674 b 0x1144c                                     |     goto label_1;
                                                             | label_4:
    0x00011678 add r5, r5, 0x14                              |     r5 += 0x14;
                                                             | label_6:
    0x0001167c ldr r8, [r5, 4]                               |     r8 = *((r5 + 4));
    0x00011680 cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x00011684 beq 0x116d0                                   |         goto label_49;
                                                             |     }
    0x00011688 ldr fp, [r5, 0xc]                             |     fp = *((r5 + 0xc));
    0x0001168c mov r1, 0x28                                  |     r1 = 0x28;
    0x00011690 mov r0, fp                                    |     r0 = fp;
    0x00011694 bl 0x10e54                                    |     strchr (r0, r1);
    0x00011698 mov r1, 0x3d                                  |     r1 = 0x3d;
    0x0001169c mov sb, r0                                    |     sb = r0;
    0x000116a0 mov r0, fp                                    |     r0 = fp;
    0x000116a4 bl 0x10e54                                    |     strchr (r0, r1);
    0x000116a8 cmp sb, 0                                     |     
    0x000116ac mov r8, r0                                    |     r8 = r0;
                                                             |     if (sb != 0) {
    0x000116b0 bne 0x1153c                                   |         goto label_2;
                                                             |     }
    0x000116b4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000116b8 bne 0x114e4                                   |         goto label_3;
                                                             |     }
    0x000116bc mov r1, fp                                    |     r1 = fp;
    0x000116c0 mov r0, r7                                    |     r0 = r7;
    0x000116c4 bl 0x10db8                                    |     r0 = strcmp (r0, r1);
    0x000116c8 subs r8, r0, 0                                |     r8 = r0 - 0;
                                                             |     if (r8 != r0) {
    0x000116cc bne 0x11678                                   |         goto label_4;
                                                             |     }
                                                             | label_49:
    0x000116d0 ldr r4, [pc, 0xba4]                           |     r4 = "pcregrep: Unknown option %s\n";
    0x000116d4 b 0x1164c                                     |     goto label_5;
                                                             | label_45:
    0x000116d8 sub r3, fp, 0x24                              |     r3 = fp - 0x24;
    0x000116dc ldr r5, [pc, 0xb9c]                           |     r5 = *(0x1227c);
    0x000116e0 str r3, [sp, 0x14]                            |     s2 = r3;
    0x000116e4 b 0x1167c                                     |     goto label_6;
                                                             | label_44:
    0x000116e8 ldr r4, [pc, 0xb8c]                           |     r4 = "pcregrep: Unknown option %s\n";
    0x000116ec add r3, r5, 1                                 |     r3 = r5 + 1;
    0x000116f0 mov r5, 0                                     |     r5 = 0;
                                                             | label_9:
    0x000116f4 ldrb r2, [r3]                                 |     r2 = *(r3);
    0x000116f8 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x000116fc bne 0x11768                                   |         goto label_52;
                                                             |     }
    0x00011700 mov r8, r2                                    |     r8 = r2;
                                                             | label_10:
    0x00011704 ldr r0, [r5]                                  |     r0 = *(r5);
    0x00011708 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001170c bne 0x11794                                   |         goto label_53;
                                                             |     }
    0x00011710 ldr r1, [r6, 0x38]                            |     r1 = *((r6 + 0x38));
    0x00011714 ldr r0, [r5, 4]                               |     r0 = *((r5 + 4));
    0x00011718 bl 0x13ea4                                    |     fcn_00013ea4 (r0, r1);
    0x0001171c str r0, [r6, 0x38]                            |     *((r6 + 0x38)) = r0;
                                                             | label_11:
    0x00011720 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00011724 add r3, r3, 1                                 |     r3++;
    0x00011728 str r3, [sp, 0x20]                            |     var_20h = r3;
    0x0001172c b 0x113fc                                     |     goto label_7;
                                                             |     do {
    0x00011730 cmp r0, r2                                    |         
                                                             |         if (r0 == r2) {
    0x00011734 beq 0x12174                                   |             goto label_54;
                                                             |         }
    0x00011738 add r5, r5, 0x14                              |         r5 += 0x14;
                                                             | label_8:
    0x0001173c ldr r0, [r5, 4]                               |         r0 = *((r5 + 4));
    0x00011740 cmp r0, 0                                     |         
    0x00011744 bne 0x11730                                   |         
                                                             |     } while (r0 != 0);
    0x00011748 ldr r1, [sp, 8]                               |     r1 = format;
    0x0001174c ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00011750 ldr r0, [pc, 0xb0c]                           |     
    0x00011754 ldr r3, [r1, r3, lsl 2]                       |     offset_2 = r3 << 2;
                                                             |     r3 = *((r1 + offset_2));
    0x00011758 ldr r0, [r0]                                  |     r0 = *(0x12260);
    0x0001175c ldr r1, [pc, 0xb20]                           |     r1 = *(0x12280);
    0x00011760 bl 0x10d34                                    |     fprintf (r0, r1, r2, r3)
    0x00011764 b 0x1144c                                     |     goto label_1;
                                                             | label_52:
    0x00011768 ldr r5, [pc, 0xb10]                           |     r5 = *(0x1227c);
    0x0001176c b 0x1173c                                     |     goto label_8;
                                                             | label_35:
    0x00011770 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00011774 bne 0x121ac                                   |         goto label_55;
                                                             |     }
                                                             | label_36:
    0x00011778 ldr r1, [r6, 0x38]                            |     r1 = *((r6 + 0x38));
    0x0001177c bl 0x13ea4                                    |     fcn_00013ea4 (r0, r1);
    0x00011780 mov r3, r4                                    |     r3 = r4;
    0x00011784 str r0, [r6, 0x38]                            |     *((r6 + 0x38)) = r0;
    0x00011788 b 0x116f4                                     |     goto label_9;
                                                             | label_51:
    0x0001178c mov r2, 1                                     |     r2 = 1;
    0x00011790 b 0x11704                                     |     goto label_10;
                                                             | label_53:
    0x00011794 ldrb r3, [r4]                                 |     r3 = *(r4);
    0x00011798 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001179c bne 0x11824                                   |         goto label_56;
                                                             |     }
    0x000117a0 sub r1, r0, 5                                 |     r1 = r0 - 5;
    0x000117a4 cmp r0, 2                                     |     
    0x000117a8 cmpne r1, 1                                   |     __asm ("cmpne r1, 1");
                                                             |     if (r0 > 2) {
    0x000117ac bhi 0x117ec                                   |         goto label_57;
                                                             |     }
    0x000117b0 ldr r2, [r5, 4]                               |     r2 = *((r5 + 4));
    0x000117b4 cmn r2, 1                                     |     
                                                             |     if (r2 != 1) {
    0x000117b8 ldreq r3, [pc, 0xac8]                         |         r3 = "auto";
                                                             |     }
                                                             |     if (r2 == 1) {
    0x000117bc streq r3, [r6, 0xa0]                          |         *((r6 + 0xa0)) = r3;
                                                             |         goto label_58;
                                                             |     }
                                                             |     if (r2 == 1) {
                                                             | label_58:
    0x000117c0 beq 0x11720                                   |         goto label_11;
                                                             |     }
    0x000117c4 cmp r2, 0x6f                                  |     
                                                             |     if (r2 != 0x6f) {
    0x000117c8 bne 0x11720                                   |         goto label_11;
                                                             |     }
    0x000117cc mov r0, r3                                    |     r0 = r3;
    0x000117d0 ldr r1, [r6, 0x94]                            |     r1 = *((r6 + 0x94));
    0x000117d4 bl 0x12a88                                    |     fcn_00012a88 (r0, r1);
    0x000117d8 ldr r3, [r6, 0x60]                            |     r3 = *((r6 + 0x60));
    0x000117dc cmp r3, 0                                     |     
    0x000117e0 str r0, [r6, 0x94]                            |     *((r6 + 0x94)) = r0;
                                                             |     if (r3 != 0) {
    0x000117e4 streq r0, [r6, 0x60]                          |         *((r6 + 0x60)) = r0;
                                                             |     }
    0x000117e8 b 0x11720                                     |     goto label_11;
                                                             | label_57:
    0x000117ec ldr r1, [sp, 0xc]                             |     r1 = var_ch;
    0x000117f0 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x000117f4 sub r1, r1, 1                                 |     r1--;
    0x000117f8 cmp r1, r3                                    |     
                                                             |     if (r1 > r3) {
    0x000117fc orrle r8, r8, 1                               |         r8 |= 1;
                                                             |     }
    0x00011800 tst r8, 1                                     |     
                                                             |     if ((r8 & 1) == 0) {
    0x00011804 ldrne r2, [sp, 8]                             |         r2 = format;
                                                             |     }
                                                             |     if ((r8 & 1) == 0) {
    0x00011808 ldrne r1, [pc, 0xa7c]                         |         r1 = "pcregrep: Data missing after %s\n";
                                                             |     }
                                                             |     if ((r8 & 1) != 0) {
    0x0001180c ldrne r2, [r2, r3, lsl 2]                     |         offset_3 = r3 << 2;
                                                             |         r2 = *((r2 + offset_3));
                                                             |         goto label_59;
                                                             |     }
                                                             |     if ((r8 & 1) != 0) {
                                                             | label_59:
    0x00011810 bne 0x11668                                   |         goto label_12;
                                                             |     }
    0x00011814 ldr r1, [sp, 8]                               |     r1 = format;
    0x00011818 add r3, r3, 1                                 |     r3++;
    0x0001181c ldr r4, [r1, r3, lsl 2]                       |     offset_4 = r3 << 2;
                                                             |     r4 = *((r1 + offset_4));
    0x00011820 str r3, [sp, 0x20]                            |     var_20h = r3;
                                                             | label_56:
    0x00011824 cmp r0, 6                                     |     
                                                             |     if (r0 != 6) {
    0x00011828 bne 0x1186c                                   |         goto label_60;
                                                             |     }
    0x0001182c mov r1, r5                                    |     r1 = r5;
    0x00011830 mov r0, r4                                    |     r0 = r4;
    0x00011834 bl 0x13d80                                    |     fcn_00013d80 (r0, r1);
    0x00011838 ldr r4, [r5, 8]                               |     r4 = *((r5 + 8));
    0x0001183c ldr r5, [r4, 4]                               |     r5 = *((r4 + 4));
    0x00011840 ldr r1, [r5]                                  |     r1 = *(r5);
    0x00011844 bl 0x12a88                                    |     fcn_00012a88 (r0, r1);
    0x00011848 ldr r3, [r4]                                  |     r3 = *(r4);
    0x0001184c str r0, [r5]                                  |     *(r5) = r0;
    0x00011850 ldr r2, [r3]                                  |     r2 = *(r3);
    0x00011854 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x00011858 ldreq r2, [r4, 4]                             |         r2 = *((r4 + 4));
                                                             |     }
                                                             |     if (r2 == 0) {
    0x0001185c ldreq r2, [r2]                                |         r2 = *(r2);
                                                             |         goto label_61;
                                                             |     }
                                                             |     if (r2 != 0) {
                                                             | label_61:
    0x00011860 bne 0x11720                                   |         goto label_11;
                                                             |     }
                                                             | label_13:
    0x00011864 str r2, [r3]                                  |     *(r3) = r2;
    0x00011868 b 0x11720                                     |     goto label_11;
                                                             | label_60:
    0x0001186c cmp r0, 7                                     |     
                                                             |     if (r0 != 7) {
    0x00011870 bne 0x118b8                                   |         goto label_62;
                                                             |     }
    0x00011874 ldr r5, [r5, 8]                               |     r5 = *((r5 + 8));
    0x00011878 mov r0, r4                                    |     r0 = r4;
    0x0001187c ldr r7, [r5, 4]                               |     r7 = *((r5 + 4));
    0x00011880 ldr r1, [r7]                                  |     r1 = *(r7);
    0x00011884 bl 0x12ac4                                    |     fcn_00012ac4 (r0, r1);
    0x00011888 ldr r3, [r5, 4]                               |     r3 = *((r5 + 4));
    0x0001188c str r0, [r7]                                  |     *(r7) = r0;
    0x00011890 ldr r2, [r3]                                  |     r2 = *(r3);
    0x00011894 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00011898 bne 0x118a4                                   |         
                                                             | label_14:
    0x0001189c mov r5, 2                                     |         r5 = 2;
    0x000118a0 b 0x11c44                                     |         goto label_31;
                                                             |     }
    0x000118a4 ldr r3, [r5]                                  |     r3 = *(r5);
    0x000118a8 ldr r1, [r3]                                  |     r1 = *(r3);
    0x000118ac cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x000118b0 bne 0x11720                                   |         goto label_11;
                                                             |     }
    0x000118b4 b 0x11864                                     |     goto label_13;
                                                             | label_62:
    0x000118b8 cmp r0, 8                                     |     
                                                             |     if (r0 == 8) {
    0x000118bc bne 0x11908                                   |         
    0x000118c0 ldr r5, [r5, 8]                               |         r5 = *((r5 + 8));
    0x000118c4 bl 0x10ce0                                    |         r0 = malloc (r0);
    0x000118c8 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000118cc bne 0x118e4                                   |             
                                                             | label_16:
    0x000118d0 ldr r3, [pc, 0x98c]                           |             r3 = *(0x12260);
    0x000118d4 ldr r0, [pc, 0x9b4]                           |             r0 = "pcregrep: Data missing after %s\n";
    0x000118d8 ldr r1, [r3]                                  |             r1 = *(0x12260);
    0x000118dc bl 0x10e60                                    |             fputs ("pcregrep: Data missing after %s\n", r1);
    0x000118e0 b 0x1189c                                     |             goto label_14;
                                                             |         }
    0x000118e4 mov r3, 0                                     |         r3 = 0;
    0x000118e8 stm r0, {r3, r4}                              |         *(r0) = r3;
                                                             |         *((r0 + 4)) = r4;
    0x000118ec ldm r5, {r2, r3}                              |         r2 = *(r5);
                                                             |         r3 = *((r5 + 4));
    0x000118f0 ldr r1, [r2]                                  |         r1 = *(r2);
    0x000118f4 cmp r1, 0                                     |         
                                                             |         if (r1 == 0) {
    0x000118f8 ldrne r2, [r3]                                |             r2 = *(r3);
                                                             |         }
    0x000118fc str r0, [r2]                                  |         *(r2) = r0;
                                                             | label_15:
    0x00011900 str r0, [r3]                                  |         *(r3) = r0;
    0x00011904 b 0x11720                                     |         goto label_11;
                                                             |     }
    0x00011908 cmp r0, 9                                     |     
                                                             |     if (r0 != 9) {
    0x0001190c bne 0x1196c                                   |         goto label_63;
                                                             |     }
    0x00011910 ldr r1, [pc, 0x97c]                           |     r1 = "pcregrep:_malloc_failed";
    0x00011914 mov r0, r4                                    |     r0 = r4;
    0x00011918 bl 0x10db8                                    |     r0 = strcmp (r0, "pcregrep:_malloc_failed");
    0x0001191c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011920 streq r0, [r6, 0x44]                          |         *((r6 + 0x44)) = r0;
                                                             |         goto label_64;
                                                             |     }
                                                             |     if (r0 == 0) {
                                                             | label_64:
    0x00011924 beq 0x11720                                   |         goto label_11;
                                                             |     }
    0x00011928 ldr r1, [pc, 0x968]                           |     r1 = "binary";
    0x0001192c mov r0, r4                                    |     r0 = r4;
    0x00011930 bl 0x10db8                                    |     r0 = strcmp (r0, "binary");
    0x00011934 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00011938 moveq r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x0001193c beq 0x11958                                   |         
    0x00011940 ldr r1, [pc, 0x954]                           |         r1 = *(0x12298);
    0x00011944 mov r0, r4                                    |         r0 = r4;
    0x00011948 bl 0x10db8                                    |         r0 = strcmp (r0, r1);
    0x0001194c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00011950 bne 0x11960                                   |             goto label_65;
                                                             |         }
    0x00011954 mov r3, 2                                     |         r3 = 2;
                                                             |     }
    0x00011958 str r3, [r6, 0x44]                            |     *((r6 + 0x44)) = r3;
    0x0001195c b 0x11720                                     |     goto label_11;
                                                             | label_65:
    0x00011960 mov r2, r4                                    |     r2 = r4;
    0x00011964 ldr r1, [pc, 0x934]                           |     r1 = *(0x1229c);
    0x00011968 b 0x11668                                     |     goto label_12;
                                                             | label_63:
    0x0001196c sub r0, r0, 3                                 |     r0 -= 3;
    0x00011970 cmp r0, 2                                     |     
                                                             |     if (r0 <= 2) {
    0x00011974 ldrhi r3, [r5, 8]                             |         r3 = *((r5 + 8));
                                                             |     }
                                                             |     if (r0 > 2) {
    0x00011978 strhi r4, [r3]                                |         *(r3) = r4;
                                                             |         goto label_66;
                                                             |     }
                                                             |     if (r0 > 2) {
                                                             | label_66:
    0x0001197c bhi 0x11720                                   |         goto label_11;
                                                             |     }
    0x00011980 mov r1, r5                                    |     r1 = r5;
    0x00011984 mov r0, r4                                    |     r0 = r4;
    0x00011988 bl 0x13d80                                    |     fcn_00013d80 (r0, r1);
    0x0001198c ldr r3, [r5, 8]                               |     r3 = *((r5 + 8));
    0x00011990 b 0x11900                                     |     goto label_15;
                                                             | label_39:
    0x00011994 bl 0x10e48                                    |     pcre_maketables ();
    0x00011998 str r0, [r4, 0x24]                            |     *((r4 + 0x24)) = r0;
                                                             | label_38:
    0x0001199c ldr r5, [r4, 0xa0]                            |     r5 = *((r4 + 0xa0));
    0x000119a0 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x000119a4 beq 0x11a34                                   |         
    0x000119a8 ldr r1, [pc, 0x8f4]                           |         r1 = "pcregrep: unknown value \"%s\" for binary-files\n";
    0x000119ac mov r0, r5                                    |         r0 = r5;
    0x000119b0 bl 0x10db8                                    |         r0 = strcmp (r0, "pcregrep: unknown value \"%s\" for binary-files\n");
    0x000119b4 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000119b8 beq 0x11a34                                   |             goto label_67;
                                                             |         }
    0x000119bc ldr r1, [pc, 0x8e4]                           |         r1 = "never";
    0x000119c0 mov r0, r5                                    |         r0 = r5;
    0x000119c4 bl 0x10db8                                    |         r0 = strcmp (r0, "never");
    0x000119c8 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000119cc moveq r3, 1                                   |             r3 = 1;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x000119d0 streq r3, [r4, 0x64]                          |             *((r4 + 0x64)) = r3;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x000119d4 beq 0x11a00                                   |             
    0x000119d8 ldr r1, [pc, 0x8a8]                           |             r1 = "pcregrep:_Unknown_option_letter__c_in___s_";
    0x000119dc mov r0, r5                                    |             r0 = r5;
    0x000119e0 bl 0x10db8                                    |             r0 = strcmp (r0, "pcregrep:_Unknown_option_letter__c_in___s_");
    0x000119e4 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x000119e8 bne 0x11cb4                                   |                 goto label_68;
                                                             |             }
    0x000119ec ldr r3, [pc, 0x8b8]                           |             r3 = "always";
    0x000119f0 ldr r0, [r3]                                  |             r0 = "always";
    0x000119f4 bl 0x10e30                                    |             r0 = fileno ("always");
    0x000119f8 bl 0x10cec                                    |             isatty (r0);
    0x000119fc str r0, [r4, 0x64]                            |             *((r4 + 0x64)) = r0;
                                                             |         }
    0x00011a00 ldr r3, [r4, 0x64]                            |         r3 = *((r4 + 0x64));
    0x00011a04 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00011a08 beq 0x11a34                                   |             goto label_67;
                                                             |         }
    0x00011a0c ldr r0, [pc, 0x89c]                           |         r0 = stdout;
    0x00011a10 bl 0x10cbc                                    |         r0 = getenv (r0);
    0x00011a14 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00011a18 bne 0x11a2c                                   |             
    0x00011a1c ldr r0, [pc, 0x890]                           |             r0 = "PCREGREP_COLOUR";
    0x00011a20 bl 0x10cbc                                    |             r0 = getenv ("PCREGREP_COLOUR");
    0x00011a24 cmp r0, 0                                     |             
                                                             |             if (r0 == 0) {
    0x00011a28 beq 0x11a34                                   |                 goto label_67;
                                                             |             }
                                                             |         }
    0x00011a2c ldr r3, [pc, 0x884]                           |         r3 = "PCREGREP_COLOR";
    0x00011a30 str r0, [r3, 0x10]                            |         *((r3 + 0x10)) = r0;
                                                             |     }
                                                             | label_67:
    0x00011a34 ldr r5, [r4, 0x98]                            |     r5 = *((r4 + 0x98));
    0x00011a38 ldr r1, [pc, 0x818]                           |     r1 = *(0x12254);
    0x00011a3c mov r0, r5                                    |     r0 = r5;
    0x00011a40 bl 0x10db8                                    |     r0 = strcmp (r0, r1);
    0x00011a44 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00011a48 beq 0x11a60                                   |         
    0x00011a4c ldr r1, [pc, 0x868]                           |         r1 = "_standard_input_";
    0x00011a50 mov r0, r5                                    |         r0 = r5;
    0x00011a54 bl 0x10db8                                    |         r0 = strcmp (r0, "_standard_input_");
    0x00011a58 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00011a5c bne 0x11ccc                                   |             goto label_69;
                                                             |         }
                                                             |     }
    0x00011a60 ldr r3, [r4, 0x38]                            |     r3 = *((r4 + 0x38));
    0x00011a64 orr r3, r3, 0x100000                          |     r3 |= 0x100000;
    0x00011a68 str r3, [r4, 0x38]                            |     *((r4 + 0x38)) = r3;
    0x00011a6c mov r3, 1                                     |     r3 = 1;
                                                             | label_18:
    0x00011a70 ldr r5, [r4, 0xac]                            |     r5 = *((r4 + 0xac));
    0x00011a74 str r3, [r4]                                  |     *(r4) = r3;
    0x00011a78 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x00011a7c beq 0x11acc                                   |         
    0x00011a80 ldr r1, [pc, 0x838]                           |         r1 = "CR";
    0x00011a84 mov r0, r5                                    |         r0 = r5;
    0x00011a88 bl 0x10db8                                    |         r0 = strcmp (r0, "CR");
    0x00011a8c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00011a90 streq r0, [r4, 0x70]                          |             *((r4 + 0x70)) = r0;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00011a94 beq 0x11acc                                   |             goto label_70;
                                                             |         }
    0x00011a98 ldr r1, [pc, 0x824]                           |         r1 = "read";
    0x00011a9c mov r0, r5                                    |         r0 = r5;
    0x00011aa0 bl 0x10db8                                    |         r0 = strcmp (r0, "read");
    0x00011aa4 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00011aa8 moveq r3, 2                                   |             r3 = 2;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x00011aac beq 0x11ac8                                   |             
    0x00011ab0 ldr r1, [pc, 0x810]                           |             r1 = "recurse";
    0x00011ab4 mov r0, r5                                    |             r0 = r5;
    0x00011ab8 bl 0x10db8                                    |             r0 = strcmp (r0, "recurse");
    0x00011abc cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00011ac0 bne 0x11dc8                                   |                 goto label_71;
                                                             |             }
    0x00011ac4 mov r3, 1                                     |             r3 = 1;
                                                             |         }
    0x00011ac8 str r3, [r4, 0x70]                            |         *((r4 + 0x70)) = r3;
                                                             |     }
                                                             | label_70:
    0x00011acc ldr r5, [r4, 0xb0]                            |     r5 = *((r4 + 0xb0));
    0x00011ad0 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x00011ad4 beq 0x11b14                                   |         
    0x00011ad8 ldr r1, [pc, 0x7e0]                           |         r1 = "CR";
    0x00011adc mov r0, r5                                    |         r0 = r5;
    0x00011ae0 bl 0x10db8                                    |         r0 = strcmp (r0, "CR");
    0x00011ae4 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00011ae8 streq r0, [r4, 0x80]                          |             *((r4 + 0x80)) = r0;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00011aec beq 0x11b14                                   |             goto label_72;
                                                             |         }
    0x00011af0 ldr r1, [pc, 0x7d0]                           |         r1 = "recurse";
    0x00011af4 mov r0, r5                                    |         r0 = r5;
    0x00011af8 bl 0x10db8                                    |         r0 = strcmp (r0, "recurse");
    0x00011afc cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00011b00 moveq r3, 1                                   |             r3 = 1;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x00011b04 streq r3, [r4, 0x80]                          |             *((r4 + 0x80)) = r3;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00011b08 movne r2, r5                                  |             r2 = r5;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00011b0c ldrne r1, [pc, 0x7b8]                         |             r1 = "pcregrep: Invalid value \"%s\" for -D\n";
                                                             |         }
                                                             |         if (r0 != 0) {
    0x00011b10 bne 0x11cbc                                   |             goto label_19;
                                                             |         }
                                                             |     }
                                                             | label_72:
    0x00011b14 ldr r6, [pc, 0x79c]                           |     r6 = "PCREGREP_COLOR";
    0x00011b18 ldr r0, [r6, 0x14]                            |     
    0x00011b1c add r0, r0, r0, lsl 1                         |     r0 = 0x122c8;
    0x00011b20 str r0, [r6, 4]                               |     *((r6 + 4)) = r0;
    0x00011b24 bl 0x10ce0                                    |     r0 = malloc (r0);
    0x00011b28 cmp r0, 0                                     |     
    0x00011b2c str r0, [r4, 0x3c]                            |     *((r4 + 0x3c)) = r0;
                                                             |     if (r0 == 0) {
    0x00011b30 beq 0x118d0                                   |         goto label_16;
                                                             |     }
    0x00011b34 ldr r3, [r4, 0xc]                             |     r3 = *((r4 + 0xc));
    0x00011b38 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00011b3c beq 0x11dd4                                   |         goto label_73;
                                                             |     }
                                                             | label_20:
    0x00011b40 ldr r5, [r4, 0xc]                             |     r5 = *((r4 + 0xc));
    0x00011b44 ldr r8, [pc, 0x784]                           |     r8 = "pcregrep: Invalid value \"%s\" for -D\n";
    0x00011b48 mov r7, 1                                     |     r7 = 1;
                                                             | label_21:
    0x00011b4c cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x00011b50 bne 0x11e28                                   |         goto label_74;
                                                             |     }
    0x00011b54 ldr r5, [r4, 0x9c]                            |     r5 = *((r4 + 0x9c));
    0x00011b58 ldr r7, [pc, 0x774]                           |     r7 = "command-line";
                                                             | label_22:
    0x00011b5c cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x00011b60 bne 0x11e74                                   |         goto label_75;
                                                             |     }
    0x00011b64 ldr r3, [r4, 0xb8]                            |     r3 = *((r4 + 0xb8));
    0x00011b68 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00011b6c bne 0x11b7c                                   |         
    0x00011b70 ldr r3, [r4, 0xbc]                            |         r3 = *((r4 + 0xbc));
    0x00011b74 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00011b78 beq 0x11b88                                   |             goto label_76;
                                                             |         }
                                                             |     }
    0x00011b7c ldr r3, [r4, 0x8c]                            |     r3 = *((r4 + 0x8c));
    0x00011b80 orr r3, r3, 8                                 |     r3 |= 8;
    0x00011b84 str r3, [r4, 0x8c]                            |     *((r4 + 0x8c)) = r3;
                                                             | label_76:
    0x00011b88 ldr r5, [r4, 0xc]                             |     r5 = *((r4 + 0xc));
    0x00011b8c mov r7, 1                                     |     r7 = 1;
    0x00011b90 add r8, sp, 0x24                              |     r8 += var_24h;
                                                             | label_24:
    0x00011b94 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x00011b98 bne 0x11e98                                   |         goto label_77;
                                                             |     }
    0x00011b9c ldr r5, [r4, 0xc]                             |     r5 = *((r4 + 0xc));
    0x00011ba0 ldr r1, [r4, 0xb8]                            |     r1 = *((r4 + 0xb8));
    0x00011ba4 ldr r0, [r4, 0xbc]                            |     r0 = *((r4 + 0xbc));
                                                             | label_25:
    0x00011ba8 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x00011bac bne 0x11ef0                                   |         goto label_78;
                                                             |     }
    0x00011bb0 ldr sb, [pc, 0x720]                           |     sb = *(0x122d4);
                                                             |     do {
    0x00011bb4 lsl r3, r5, 2                                 |         r3 = r5 << 2;
    0x00011bb8 str r3, [sp, 0x10]                            |         var_10h = r3;
    0x00011bbc ldr r3, [sb, r5, lsl 2]                       |         offset_5 = r5 << 2;
                                                             |         r3 = *((sb + offset_5));
    0x00011bc0 mov r8, 1                                     |         r8 = 1;
    0x00011bc4 ldr r7, [r3]                                  |         r7 = *(r3);
                                                             | label_26:
    0x00011bc8 cmp r7, 0                                     |         
                                                             |         if (r7 != 0) {
    0x00011bcc bne 0x11f28                                   |             goto label_79;
                                                             |         }
    0x00011bd0 add r5, r5, 1                                 |         r5++;
    0x00011bd4 cmp r5, 4                                     |         
    0x00011bd8 bne 0x11bb4                                   |         
                                                             |     } while (r5 != 4);
    0x00011bdc ldr r5, [r4, 0xc0]                            |     r5 = *((r4 + 0xc0));
    0x00011be0 ldr r7, [pc, 0x6f4]                           |     r7 = *(0x122d8);
                                                             | label_27:
    0x00011be4 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x00011be8 bne 0x11f78                                   |         goto label_80;
                                                             |     }
    0x00011bec ldr r5, [r4, 0xc8]                            |     r5 = *((r4 + 0xc8));
    0x00011bf0 ldr r7, [pc, 0x6e8]                           |     r7 = *(0x122dc);
                                                             | label_28:
    0x00011bf4 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x00011bf8 bne 0x11f9c                                   |         goto label_81;
                                                             |     }
    0x00011bfc ldr r7, [r4, 0xd0]                            |     r7 = *((r4 + 0xd0));
    0x00011c00 ldr r8, [pc, 0x640]                           |     r8 = *(0x12244);
    0x00011c04 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x00011c08 movne r5, 1                                   |         r5 = 1;
                                                             |     }
                                                             |     if (r7 != 0) {
    0x00011c0c bne 0x11fc0                                   |         goto label_30;
                                                             |     }
    0x00011c10 ldr r3, [fp, -0x28]                           |     r3 = var_20h;
    0x00011c14 ldr r2, [sp, 0xc]                             |     r2 = var_ch;
    0x00011c18 cmp r3, r2                                    |     
                                                             |     if (r3 < r2) {
    0x00011c1c blt 0x1215c                                   |         goto label_82;
                                                             |     }
    0x00011c20 ldr r3, [r6, 8]                               |     r3 = *((r6 + 8));
    0x00011c24 ldr r1, [r6]                                  |     r1 = *(r6);
    0x00011c28 cmp r3, 1                                     |     
    0x00011c2c ldr r3, [pc, 0x6b0]                           |     r3 = *(0x122e0);
                                                             |     if (r3 <= 1) {
    0x00011c30 movgt r2, r1                                  |         r2 = r1;
                                                             |     }
                                                             |     if (r3 > 1) {
    0x00011c34 movle r2, 0                                   |         r2 = 0;
                                                             |     }
    0x00011c38 ldr r0, [r3]                                  |     r0 = *(0x122e0);
    0x00011c3c bl 0x12b48                                    |     r0 = fcn_00012b48 (r0, r1);
    0x00011c40 mov r5, r0                                    |     r5 = r0;
                                                             | label_31:
    0x00011c44 ldr r0, [sl, 0x3c]                            |     r0 = *((sl + 0x3c));
    0x00011c48 bl 0x10e9c                                    |     free (r0);
    0x00011c4c ldr r0, [sl, 0x24]                            |     r0 = *((sl + 0x24));
    0x00011c50 bl 0x10e9c                                    |     free (r0);
    0x00011c54 ldr r0, [sl, 0xc]                             |     r0 = *((sl + 0xc));
    0x00011c58 bl 0x10ed8                                    |     fcn_00010ed8 (r0);
    0x00011c5c ldr r0, [sl, 0x88]                            |     r0 = *((sl + 0x88));
    0x00011c60 bl 0x10ed8                                    |     fcn_00010ed8 (r0);
    0x00011c64 ldr r0, [sl, 0x78]                            |     r0 = *((sl + 0x78));
    0x00011c68 bl 0x10ed8                                    |     fcn_00010ed8 (r0);
    0x00011c6c ldr r0, [sl, 0x84]                            |     r0 = *((sl + 0x84));
    0x00011c70 bl 0x10ed8                                    |     fcn_00010ed8 (r0);
    0x00011c74 ldr r0, [sl, 0x74]                            |     r0 = *((sl + 0x74));
    0x00011c78 bl 0x10ed8                                    |     fcn_00010ed8 (r0);
    0x00011c7c ldr r0, [sl, 0xc8]                            |     r0 = *((sl + 0xc8));
    0x00011c80 bl 0x10eb4                                    |     fcn_00010eb4 (r0);
    0x00011c84 ldr r0, [sl, 0xc0]                            |     r0 = *((sl + 0xc0));
    0x00011c88 bl 0x10eb4                                    |     fcn_00010eb4 (r0);
    0x00011c8c ldr r0, [sl, 0x9c]                            |     r0 = *((sl + 0x9c));
    0x00011c90 bl 0x10eb4                                    |     fcn_00010eb4 (r0);
    0x00011c94 ldr r0, [sl, 0xd0]                            |     r0 = *((sl + 0xd0));
    0x00011c98 bl 0x10eb4                                    |     fcn_00010eb4 (r0);
    0x00011c9c ldr r4, [pc, 0x5a4]                           |     r4 = *(0x12244);
                                                             | label_34:
    0x00011ca0 ldr r0, [r4, 0x60]                            |     r0 = *((r4 + 0x60));
    0x00011ca4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00011ca8 bne 0x12164                                   |         goto label_83;
                                                             |     }
    0x00011cac mov r0, r5                                    |     r0 = r5;
    0x00011cb0 b 0x115b4                                     |     goto label_17;
                                                             | label_68:
    0x00011cb4 ldr r1, [pc, 0x62c]                           |     r1 = stdin;
    0x00011cb8 mov r2, r5                                    |     r2 = r5;
                                                             |     do {
                                                             | label_19:
    0x00011cbc ldr r3, [pc, 0x5a0]                           |         r3 = *(0x12260);
    0x00011cc0 ldr r0, [r3]                                  |         r0 = *(0x12260);
                                                             | label_23:
    0x00011cc4 bl 0x10d34                                    |         fprintf (r0, r1, r2, r3)
    0x00011cc8 b 0x1189c                                     |         goto label_14;
                                                             | label_69:
    0x00011ccc ldr r1, [pc, 0x580]                           |         r1 = "anycrlf";
    0x00011cd0 mov r0, r5                                    |         r0 = r5;
    0x00011cd4 bl 0x10db8                                    |         r0 = strcmp (r0, "anycrlf");
    0x00011cd8 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00011cdc beq 0x11cf4                                   |             
    0x00011ce0 ldr r1, [pc, 0x604]                           |             r1 = "pcregrep:_Unknown_colour_setting___s_";
    0x00011ce4 mov r0, r5                                    |             r0 = r5;
    0x00011ce8 bl 0x10db8                                    |             r0 = strcmp (r0, "pcregrep:_Unknown_colour_setting___s_");
    0x00011cec cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00011cf0 bne 0x11d08                                   |                 goto label_84;
                                                             |             }
                                                             |         }
    0x00011cf4 ldr r3, [r4, 0x38]                            |         r3 = *((r4 + 0x38));
    0x00011cf8 orr r3, r3, 0x200000                          |         r3 |= 0x200000;
    0x00011cfc str r3, [r4, 0x38]                            |         *((r4 + 0x38)) = r3;
    0x00011d00 mov r3, 0                                     |         r3 = 0;
    0x00011d04 b 0x11a70                                     |         goto label_18;
                                                             | label_84:
    0x00011d08 ldr r1, [pc, 0x550]                           |         r1 = *(0x1225c);
    0x00011d0c mov r0, r5                                    |         r0 = r5;
    0x00011d10 bl 0x10db8                                    |         r0 = strcmp (r0, r1);
    0x00011d14 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00011d18 beq 0x11d30                                   |             
    0x00011d1c ldr r1, [pc, 0x5cc]                           |             r1 = "LF";
    0x00011d20 mov r0, r5                                    |             r0 = r5;
    0x00011d24 bl 0x10db8                                    |             r0 = strcmp (r0, "LF");
    0x00011d28 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00011d2c bne 0x11d44                                   |                 goto label_85;
                                                             |             }
                                                             |         }
    0x00011d30 ldr r3, [r4, 0x38]                            |         r3 = *((r4 + 0x38));
    0x00011d34 orr r3, r3, 0x300000                          |         r3 |= 0x300000;
    0x00011d38 str r3, [r4, 0x38]                            |         *((r4 + 0x38)) = r3;
    0x00011d3c mov r3, 2                                     |         r3 = 2;
    0x00011d40 b 0x11a70                                     |         goto label_18;
                                                             | label_85:
    0x00011d44 ldr r1, [pc, 0x500]                           |         r1 = *(0x12248);
    0x00011d48 mov r0, r5                                    |         r0 = r5;
    0x00011d4c bl 0x10db8                                    |         r0 = strcmp (r0, r1);
    0x00011d50 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00011d54 beq 0x11d6c                                   |             
    0x00011d58 ldr r1, [pc, 0x594]                           |             r1 = "CRLF";
    0x00011d5c mov r0, r5                                    |             r0 = r5;
    0x00011d60 bl 0x10db8                                    |             r0 = strcmp (r0, "CRLF");
    0x00011d64 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00011d68 bne 0x11d80                                   |                 goto label_86;
                                                             |             }
                                                             |         }
    0x00011d6c ldr r3, [r4, 0x38]                            |         r3 = *((r4 + 0x38));
    0x00011d70 orr r3, r3, 0x400000                          |         r3 |= 0x400000;
    0x00011d74 str r3, [r4, 0x38]                            |         *((r4 + 0x38)) = r3;
    0x00011d78 mov r3, 3                                     |         r3 = 3;
    0x00011d7c b 0x11a70                                     |         goto label_18;
                                                             | label_86:
    0x00011d80 ldr r1, [pc, 0x4c8]                           |         r1 = "any";
    0x00011d84 mov r0, r5                                    |         r0 = r5;
    0x00011d88 bl 0x10db8                                    |         r0 = strcmp (r0, "any");
    0x00011d8c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00011d90 beq 0x11da8                                   |             
    0x00011d94 ldr r1, [pc, 0x55c]                           |             r1 = *(0x122f4);
    0x00011d98 mov r0, r5                                    |             r0 = r5;
    0x00011d9c bl 0x10db8                                    |             r0 = strcmp (r0, r1);
    0x00011da0 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00011da4 bne 0x11dbc                                   |                 goto label_87;
                                                             |             }
                                                             |         }
    0x00011da8 ldr r3, [r4, 0x38]                            |         r3 = *((r4 + 0x38));
    0x00011dac orr r3, r3, 0x500000                          |         r3 |= 0x500000;
    0x00011db0 str r3, [r4, 0x38]                            |         *((r4 + 0x38)) = r3;
    0x00011db4 mov r3, 4                                     |         r3 = 4;
    0x00011db8 b 0x11a70                                     |         goto label_18;
                                                             | label_87:
    0x00011dbc mov r2, r5                                    |         r2 = r5;
    0x00011dc0 ldr r1, [pc, 0x534]                           |         r1 = "ANYCRLF";
    0x00011dc4 b 0x11cbc                                     |         
                                                             |     } while (1);
                                                             | label_71:
    0x00011dc8 mov r2, r5                                    |     r2 = r5;
    0x00011dcc ldr r1, [pc, 0x52c]                           |     r1 = "pcregrep: Invalid newline specifier \"%s\"\n";
    0x00011dd0 b 0x11cbc                                     |     goto label_19;
                                                             | label_73:
    0x00011dd4 ldr r1, [r4, 0x9c]                            |     r1 = *((r4 + 0x9c));
    0x00011dd8 cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x00011ddc bne 0x11b40                                   |         goto label_20;
                                                             |     }
    0x00011de0 ldr r3, [fp, -0x28]                           |     r3 = var_20h;
    0x00011de4 ldr r2, [sp, 0xc]                             |     r2 = var_ch;
    0x00011de8 cmp r3, r2                                    |     
                                                             |     if (r3 >= r2) {
    0x00011dec blt 0x11e00                                   |         
    0x00011df0 bl 0x13d18                                    |         fcn_00013d18 ();
    0x00011df4 add sp, sp, 0x2040                            |         
    0x00011df8 add sp, sp, 0xc                               |         
    0x00011dfc pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             |     }
    0x00011e00 add r2, r3, 1                                 |     r2 = r3 + 1;
    0x00011e04 str r2, [fp, -0x28]                           |     var_20h = r2;
    0x00011e08 ldr r2, [sp, 8]                               |     r2 = format;
    0x00011e0c ldr r0, [r2, r3, lsl 2]                       |     offset_6 = r3 << 2;
                                                             |     r0 = *((r2 + offset_6));
    0x00011e10 bl 0x12ac4                                    |     r0 = fcn_00012ac4 (r0, r1);
    0x00011e14 cmp r0, 0                                     |     
    0x00011e18 str r0, [r4, 0xb4]                            |     *((r4 + 0xb4)) = r0;
    0x00011e1c str r0, [r4, 0xc]                             |     *((r4 + 0xc)) = r0;
                                                             |     if (r0 != 0) {
    0x00011e20 bne 0x11b40                                   |         goto label_20;
                                                             |     }
    0x00011e24 b 0x1189c                                     |     goto label_14;
                                                             | label_74:
    0x00011e28 cmp r7, 1                                     |     
    0x00011e2c ldr r1, [r4, 0x38]                            |     r1 = *((r4 + 0x38));
    0x00011e30 ldr r2, [r4, 0x90]                            |     r2 = *((r4 + 0x90));
                                                             |     if (r7 == 1) {
    0x00011e34 movne r3, r7                                  |         r3 = r7;
                                                             |     }
                                                             |     if (r7 == 1) {
    0x00011e38 bne 0x11e4c                                   |         
    0x00011e3c ldr r3, [r4, 0xc]                             |         r3 = *((r4 + 0xc));
    0x00011e40 ldr r3, [r3]                                  |         r3 = *(r3);
    0x00011e44 adds r3, r3, 0                                |         r3 += 0;
                                                             |         if (r3 != r3) {
    0x00011e48 movne r3, 1                                   |             r3 = 1;
                                                             |             goto label_88;
                                                             |         }
                                                             |     }
                                                             | label_88:
    0x00011e4c str r3, [sp, 4]                               |     var_4h = r3;
    0x00011e50 str r8, [sp]                                  |     *(sp) = r8;
    0x00011e54 mov r3, 0                                     |     r3 = 0;
    0x00011e58 mov r0, r5                                    |     r0 = r5;
    0x00011e5c bl 0x10f4c                                    |     r0 = fcn_00010f4c (r0, r1, r2);
    0x00011e60 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011e64 beq 0x1189c                                   |         goto label_14;
                                                             |     }
    0x00011e68 add r7, r7, 1                                 |     r7++;
    0x00011e6c ldr r5, [r5]                                  |     r5 = *(r5);
    0x00011e70 b 0x11b4c                                     |     goto label_21;
                                                             | label_75:
    0x00011e74 ldr r3, [r4, 0x90]                            |     r3 = *((r4 + 0x90));
    0x00011e78 mov r2, r7                                    |     r2 = r7;
    0x00011e7c ldr r1, [pc, 0x480]                           |     r1 = "pcregrep: Invalid value \"%s\" for -d\n";
    0x00011e80 ldr r0, [r5, 4]                               |     r0 = *((r5 + 4));
    0x00011e84 bl 0x111b0                                    |     r0 = fcn_000111b0 (r0, "pcregrep: Invalid value \"%s\" for -d\n");
    0x00011e88 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011e8c beq 0x1189c                                   |         goto label_14;
                                                             |     }
    0x00011e90 ldr r5, [r5]                                  |     r5 = *(r5);
    0x00011e94 b 0x11b5c                                     |     goto label_22;
                                                             | label_77:
    0x00011e98 mov r2, r8                                    |     r2 = r8;
    0x00011e9c ldr r1, [r4, 0x8c]                            |     r1 = *((r4 + 0x8c));
    0x00011ea0 ldr r0, [r5, 8]                               |     r0 = *((r5 + 8));
    0x00011ea4 bl 0x10e0c                                    |     pcre_study ();
    0x00011ea8 ldr r3, [sp, 0x24]                            |     r3 = var_24h;
    0x00011eac cmp r3, 0                                     |     
    0x00011eb0 str r0, [r5, 0xc]                             |     *((r5 + 0xc)) = r0;
                                                             |     if (r3 != 0) {
    0x00011eb4 beq 0x11ee4                                   |         
    0x00011eb8 ldr r2, [pc, 0x3a4]                           |         
    0x00011ebc ldr r0, [r2]                                  |         r0 = *(0x12260);
    0x00011ec0 ldr r2, [r4, 0xc]                             |         r2 = *((r4 + 0xc));
    0x00011ec4 ldr r2, [r2]                                  |         r2 = *(0x12260);
    0x00011ec8 cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x00011ecc movne r2, r7                                  |             r2 = r7;
                                                             |         }
                                                             |         if (r2 == 0) {
    0x00011ed0 ldrne r1, [pc, 0x430]                         |             r1 = "pcregrep:_Error_while_studying_regex_number__d:__s";
                                                             |         }
                                                             |         if (r2 != 0) {
    0x00011ed4 bne 0x12240                                   |             goto label_89;
                                                             |         }
    0x00011ed8 mov r2, r3                                    |         r2 = r3;
    0x00011edc ldr r1, [pc, 0x428]                           |         r1 = "pcregrep:_Error_while_studying_regex_number__d:__s";
    0x00011ee0 b 0x11cc4                                     |         goto label_23;
                                                             |     }
    0x00011ee4 add r7, r7, 1                                 |     r7++;
    0x00011ee8 ldr r5, [r5]                                  |     r5 = *(r5);
    0x00011eec b 0x11b94                                     |     goto label_24;
                                                             | label_78:
    0x00011ef0 cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x00011ef4 ldrne r3, [r5, 0xc]                           |         r3 = *((r5 + 0xc));
                                                             |     }
                                                             |     if (r1 == 0) {
    0x00011ef8 ldrne r2, [r3]                                |         r2 = *(r3);
                                                             |     }
                                                             |     if (r1 == 0) {
    0x00011efc strne r1, [r3, 8]                             |         *((r3 + 8)) = r1;
                                                             |     }
                                                             |     if (r1 == 0) {
    0x00011f00 orrne r2, r2, 2                               |         r2 |= 2;
                                                             |     }
                                                             |     if (r1 == 0) {
    0x00011f04 strne r2, [r3]                                |         *(r3) = r2;
                                                             |     }
    0x00011f08 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011f0c ldrne r3, [r5, 0xc]                           |         r3 = *((r5 + 0xc));
                                                             |     }
    0x00011f10 ldr r5, [r5]                                  |     r5 = *(r5);
                                                             |     if (r0 == 0) {
    0x00011f14 ldrne r2, [r3]                                |         r2 = *(r3);
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00011f18 strne r0, [r3, 0x14]                          |         *((r3 + 0x14)) = r0;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00011f1c orrne r2, r2, 0x10                            |         r2 |= 0x10;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00011f20 strne r2, [r3]                                |         *(r3) = r2;
                                                             |     }
    0x00011f24 b 0x11ba8                                     |     goto label_25;
                                                             | label_79:
    0x00011f28 ldr r3, [pc, 0x3e0]                           |     r3 = "pcregrep:_Error_while_studying_regex:__s";
    0x00011f2c ldr r2, [sp, 0x10]                            |     r2 = var_10h;
    0x00011f30 cmp r8, 1                                     |     
    0x00011f34 ldr r2, [r2, r3]                              |     r2 = *((r2 + r3));
    0x00011f38 ldr r1, [r4, 0x38]                            |     r1 = *((r4 + 0x38));
                                                             |     if (r8 == 1) {
    0x00011f3c movne r3, r8                                  |         r3 = r8;
                                                             |     }
                                                             |     if (r8 == 1) {
    0x00011f40 bne 0x11f50                                   |         
    0x00011f44 ldr r3, [r7]                                  |         r3 = *(r7);
    0x00011f48 adds r3, r3, 0                                |         r3 += 0;
                                                             |         if (r3 != r3) {
    0x00011f4c movne r3, 1                                   |             r3 = 1;
                                                             |             goto label_90;
                                                             |         }
                                                             |     }
                                                             | label_90:
    0x00011f50 stm sp, {r2, r3}                              |     *(sp) = r2;
                                                             |     *((sp + 4)) = r3;
    0x00011f54 mov r3, 0                                     |     r3 = 0;
    0x00011f58 mov r2, r3                                    |     r2 = r3;
    0x00011f5c mov r0, r7                                    |     r0 = r7;
    0x00011f60 bl 0x10f4c                                    |     r0 = fcn_00010f4c (r0, r1, r2);
    0x00011f64 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011f68 beq 0x1189c                                   |         goto label_14;
                                                             |     }
    0x00011f6c add r8, r8, 1                                 |     r8++;
    0x00011f70 ldr r7, [r7]                                  |     r7 = *(r7);
    0x00011f74 b 0x11bc8                                     |     goto label_26;
                                                             | label_80:
    0x00011f78 mov r3, 0                                     |     r3 = 0;
    0x00011f7c mov r2, r7                                    |     r2 = r7;
    0x00011f80 ldr r1, [pc, 0x38c]                           |     r1 = "__include";
    0x00011f84 ldr r0, [r5, 4]                               |     r0 = *((r5 + 4));
    0x00011f88 bl 0x111b0                                    |     r0 = fcn_000111b0 (r0, "__include");
    0x00011f8c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011f90 beq 0x1189c                                   |         goto label_14;
                                                             |     }
    0x00011f94 ldr r5, [r5]                                  |     r5 = *(r5);
    0x00011f98 b 0x11be4                                     |     goto label_27;
                                                             | label_81:
    0x00011f9c mov r3, 0                                     |     r3 = 0;
    0x00011fa0 mov r2, r7                                    |     r2 = r7;
    0x00011fa4 ldr r1, [pc, 0x36c]                           |     r1 = *(0x12314);
    0x00011fa8 ldr r0, [r5, 4]                               |     r0 = *((r5 + 4));
    0x00011fac bl 0x111b0                                    |     r0 = fcn_000111b0 (r0, r1);
    0x00011fb0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011fb4 beq 0x1189c                                   |         goto label_14;
                                                             |     }
    0x00011fb8 ldr r5, [r5]                                  |     r5 = *(r5);
    0x00011fbc b 0x11bf4                                     |     goto label_28;
                                                             | label_30:
    0x00011fc0 ldr r6, [r7, 4]                               |     r6 = *((r7 + 4));
    0x00011fc4 ldr r1, [pc, 0x350]                           |     r1 = *(0x12318);
    0x00011fc8 mov r0, r6                                    |     r0 = r6;
    0x00011fcc bl 0x10db8                                    |     r0 = strcmp (r0, r1);
    0x00011fd0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00011fd4 ldreq r3, [pc, 0x308]                         |         r3 = obj.stdin;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011fd8 ldreq r6, [r3]                                |         r6 = *(r3);
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00011fdc beq 0x120a0                                   |         goto label_91;
                                                             |     }
    0x00011fe0 mov r0, r6                                    |     r0 = r6;
    0x00011fe4 ldr r1, [pc, 0x334]                           |     r1 = *(0x1231c);
    0x00011fe8 bl 0x10ea8                                    |     r0 = fopen64 ();
    0x00011fec subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 != r0) {
    0x00011ff0 bne 0x120a0                                   |         goto label_91;
                                                             |     }
    0x00011ff4 ldr r3, [pc, 0x268]                           |     r3 = *(0x12260);
    0x00011ff8 ldr r5, [r7, 4]                               |     r5 = *((r7 + 4));
    0x00011ffc ldr r4, [r3]                                  |     r4 = *(0x12260);
    0x00012000 bl 0x10e18                                    |     r0 = errno_location ();
    0x00012004 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00012008 bl 0x10c8c                                    |     strerror (r0);
    0x0001200c mov r2, r5                                    |     r2 = r5;
    0x00012010 ldr r1, [pc, 0x30c]                           |     r1 = "rb";
    0x00012014 mov r3, r0                                    |     r3 = r0;
    0x00012018 mov r0, r4                                    |     r0 = r4;
    0x0001201c b 0x12240                                     |     goto label_89;
                                                             | label_29:
    0x00012020 mov r0, sb                                    |     r0 = sb;
    0x00012024 bl 0x10e3c                                    |     strlen (r0);
    0x00012028 ldr r3, [pc, 0x2f8]                           |     r3 = "pcregrep: Failed to open %s: %s\n";
    0x0001202c ldr r2, [r3]                                  |     r2 = "pcregrep: Failed to open %s: %s\n";
    0x00012030 add r0, sb, r0                                |     r0 = sb + r0;
                                                             |     do {
    0x00012034 cmp r0, sb                                    |         
    0x00012038 mov r1, r0                                    |         r1 = r0;
                                                             |         if (r0 < sb) {
    0x0001203c bls 0x12054                                   |             goto label_92;
                                                             |         }
    0x00012040 ldrb r3, [r0, -1]!                            |         r3 = *((r0 -= 1));
    0x00012044 lsl r3, r3, 1                                 |         r3 <<= 1;
    0x00012048 ldrh r3, [r2, r3]                             |         r3 = *((r2 + r3));
    0x0001204c tst r3, 0x20                                  |         
    0x00012050 bne 0x12034                                   |         
                                                             |     } while ((r3 & 0x20) != 0);
                                                             | label_92:
    0x00012054 mov r2, 0                                     |     r2 = 0;
    0x00012058 strb r2, [r1]                                 |     *(r1) = r2;
    0x0001205c ldrb r3, [sp, 0x3c]                           |     r3 = *(envp);
    0x00012060 cmp r3, r2                                    |     
                                                             |     if (r3 != r2) {
    0x00012064 beq 0x120a4                                   |         
    0x00012068 ldr r1, [r8, 0x70]                            |         r1 = *((r8 + 0x70));
    0x0001206c mov r0, sb                                    |         r0 = sb;
    0x00012070 sub r1, r1, 2                                 |         r1 -= 2;
    0x00012074 clz r1, r1                                    |         r1 &= r1;
    0x00012078 lsr r1, r1, 5                                 |         r1 >>= 5;
    0x0001207c bl 0x13c98                                    |         r0 = fcn_00013c98 (r0, r1);
    0x00012080 cmp r0, 1                                     |         
                                                             |         if (r0 <= 1) {
    0x00012084 bgt 0x12098                                   |             
    0x00012088 cmp r0, 0                                     |             
    0x0001208c cmpeq r5, 1                                   |             __asm ("cmpeq r5, 1");
                                                             |             if (r0 == 0) {
    0x00012090 movne r0, r5                                  |                 r0 = r5;
                                                             |             }
                                                             |             if (r0 == 0) {
    0x00012094 moveq r0, 0                                   |                 r0 = 0;
                                                             |                 goto label_93;
                                                             |             }
                                                             |         }
                                                             | label_93:
    0x00012098 mov r5, r0                                    |         r5 = r0;
    0x0001209c b 0x120a4                                     |         goto label_94;
                                                             | label_91:
    0x000120a0 add sb, sp, 0x3c                              |         sb += envp;
                                                             |     }
                                                             | label_94:
    0x000120a4 mov r2, r6                                    |     r2 = r6;
    0x000120a8 ldr r1, [pc, 0x27c]                           |     r1 = __ctype_b;
    0x000120ac mov r0, sb                                    |     r0 = sb;
    0x000120b0 bl 0x10cc8                                    |     r0 = fgets (r0, r1, r2);
    0x000120b4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000120b8 bne 0x12020                                   |         goto label_29;
                                                             |     }
    0x000120bc ldr r3, [pc, 0x220]                           |     
    0x000120c0 ldr r3, [r3]                                  |     r3 = *(0x122e0);
    0x000120c4 cmp r3, r6                                    |     
                                                             |     if (r3 != r6) {
    0x000120c8 beq 0x120d4                                   |         
    0x000120cc mov r0, r6                                    |         r0 = r6;
    0x000120d0 bl 0x10d94                                    |         fclose (r0);
                                                             |     }
    0x000120d4 ldr r7, [r7]                                  |     r7 = *(r7);
    0x000120d8 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x000120dc bne 0x11fc0                                   |         goto label_30;
                                                             |     }
                                                             | label_33:
    0x000120e0 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x000120e4 ldr r2, [fp, -0x28]                           |     r2 = var_20h;
    0x000120e8 sub r3, r3, 1                                 |     r3--;
    0x000120ec cmp r3, r2                                    |     
                                                             |     if (r3 != r2) {
    0x000120f0 ldreq r4, [r4, 0xd0]                          |         r4 = *((r4 + 0xd0));
                                                             |     }
                                                             |     if (r3 == r2) {
    0x000120f4 movne r4, 0                                   |         r4 = 0;
                                                             |     }
    0x000120f8 clzeq r4, r4                                  |     __asm ("clzeq r4, r4");
                                                             |     if (r3 != r2) {
    0x000120fc lsreq r4, r4, 5                               |         r4 >>= 5;
                                                             |     }
                                                             | label_32:
    0x00012100 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00012104 ldr r2, [sp, 0xc]                             |     r2 = var_ch;
    0x00012108 cmp r3, r2                                    |     
                                                             |     if (r3 >= r2) {
    0x0001210c bge 0x11c44                                   |         goto label_31;
                                                             |     }
    0x00012110 ldr r1, [r8, 0x70]                            |     r1 = *((r8 + 0x70));
    0x00012114 ldr r0, [sp, 8]                               |     r0 = format;
    0x00012118 sub r1, r1, 2                                 |     r1 -= 2;
    0x0001211c mov r2, r4                                    |     r2 = r4;
    0x00012120 clz r1, r1                                    |     r1 &= r1;
    0x00012124 ldr r0, [r0, r3, lsl 2]                       |     offset_7 = r3 << 2;
                                                             |     r0 = *((r0 + offset_7));
    0x00012128 lsr r1, r1, 5                                 |     r1 >>= 5;
    0x0001212c bl 0x13c98                                    |     r0 = fcn_00013c98 (r0, r1);
    0x00012130 cmp r0, 1                                     |     
                                                             |     if (r0 <= 1) {
    0x00012134 bgt 0x12148                                   |         
    0x00012138 cmp r0, 0                                     |         
    0x0001213c cmpeq r5, 1                                   |         __asm ("cmpeq r5, 1");
                                                             |         if (r0 == 0) {
    0x00012140 movne r0, r5                                  |             r0 = r5;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00012144 moveq r0, 0                                   |             r0 = 0;
                                                             |             goto label_95;
                                                             |         }
                                                             |     }
                                                             | label_95:
    0x00012148 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x0001214c mov r5, r0                                    |     r5 = r0;
    0x00012150 add r3, r3, 1                                 |     r3++;
    0x00012154 str r3, [sp, 0x20]                            |     var_20h = r3;
    0x00012158 b 0x12100                                     |     goto label_32;
                                                             | label_82:
    0x0001215c mov r5, 1                                     |     r5 = 1;
    0x00012160 b 0x120e0                                     |     goto label_33;
                                                             | label_83:
    0x00012164 ldr r3, [r0]                                  |     r3 = *(r0);
    0x00012168 str r3, [r4, 0x60]                            |     *((r4 + 0x60)) = r3;
    0x0001216c bl 0x10e9c                                    |     free (r0);
    0x00012170 b 0x11ca0                                     |     goto label_34;
                                                             | label_54:
    0x00012174 ldrb r8, [r3, 1]                              |     r8 = *((r3 + 1));
    0x00012178 add r4, r3, 1                                 |     r4 = r3 + 1;
    0x0001217c cmp r8, 0                                     |     
    0x00012180 ldr r3, [r5]                                  |     r3 = *(r5);
                                                             |     if (r8 == 0) {
    0x00012184 beq 0x121b0                                   |         goto label_96;
                                                             |     }
    0x00012188 sub r2, r3, 5                                 |     r2 = r3 - 5;
    0x0001218c cmp r2, 1                                     |     
                                                             |     if (r2 > 1) {
    0x00012190 bhi 0x11770                                   |         goto label_35;
                                                             |     }
    0x00012194 ldr r3, [pc, 0x18c]                           |     
    0x00012198 lsl r8, r8, 1                                 |     r8 <<= 1;
    0x0001219c ldr r3, [r3]                                  |     r3 = "pcregrep: Failed to open %s: %s\n";
    0x000121a0 ldrh r3, [r3, r8]                             |     r3 = *((r3 + r8));
    0x000121a4 tst r3, 8                                     |     
                                                             |     if ((r3 & 8) == 0) {
    0x000121a8 beq 0x11778                                   |         goto label_36;
                                                             |     }
                                                             | label_55:
    0x000121ac mov r8, 0                                     |     r8 = 0;
                                                             | label_96:
    0x000121b0 mov r2, r8                                    |     r2 = r8;
    0x000121b4 b 0x11704                                     |     goto label_10;
                                                             | label_47:
    0x000121b8 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000121bc bne 0x114c4                                   |         goto label_37;
                                                             |     }
    0x000121c0 ldr r3, [r4, 0x58]                            |     r3 = *((r4 + 0x58));
    0x000121c4 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000121c8 beq 0x121d4                                   |         
                                                             | label_48:
    0x000121cc mov r3, 1                                     |         r3 = 1;
    0x000121d0 str r3, [r4, 0x54]                            |         *((r4 + 0x54)) = r3;
                                                             |     }
    0x000121d4 ldr r3, [r4, 0xa8]                            |     r3 = *((r4 + 0xa8));
    0x000121d8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000121dc ldrne r5, [pc, 0x14c]                         |         r5 = "--locale";
                                                             |     }
                                                             |     if (r3 == 0) {
    0x000121e0 bne 0x121f4                                   |         
    0x000121e4 ldr r0, [pc, 0x148]                           |         r0 = "--locale";
    0x000121e8 bl 0x10cbc                                    |         getenv ("--locale");
    0x000121ec ldr r5, [pc, 0x144]                           |         r5 = "LC_ALL";
    0x000121f0 str r0, [r4, 0xa8]                            |         *((r4 + 0xa8)) = r0;
                                                             |     }
    0x000121f4 ldr r3, [r4, 0xa8]                            |     r3 = *((r4 + 0xa8));
    0x000121f8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000121fc bne 0x12210                                   |         
    0x00012200 ldr r0, [pc, 0x134]                           |         r0 = "LCC_ALL";
    0x00012204 bl 0x10cbc                                    |         getenv ("LCC_ALL");
    0x00012208 ldr r5, [pc, 0x12c]                           |         r5 = "LCC_ALL";
    0x0001220c str r0, [r4, 0xa8]                            |         *((r4 + 0xa8)) = r0;
                                                             |     }
    0x00012210 ldr r1, [r4, 0xa8]                            |     r1 = *((r4 + 0xa8));
    0x00012214 cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x00012218 beq 0x1199c                                   |         goto label_38;
                                                             |     }
    0x0001221c mov r0, 0                                     |     r0 = 0;
    0x00012220 bl 0x10ddc                                    |     r0 = setlocale (r0, r1);
    0x00012224 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00012228 bne 0x11994                                   |         goto label_39;
                                                             |     }
    0x0001222c ldr r0, [pc, 0x30]                            |     
    0x00012230 ldr r2, [r4, 0xa8]                            |     r2 = *((r4 + 0xa8));
    0x00012234 ldr r1, [pc, 0x104]                           |     r1 = "LC_CTYPE";
    0x00012238 ldr r0, [r0]                                  |     r0 = *(0x12260);
    0x0001223c mov r3, r5                                    |     r3 = r5;
                                                             | label_89:
    0x00012240 bl 0x10d34                                    |     fprintf (r0, "LC_CTYPE", r2, r3)
    0x00012244 b 0x1189c                                     |     goto label_14;
                                                             | }

[*] Function fprintf used 41 times pcregrep