[*] Binary protection state of libblkid.so.1.1.0

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


[*] Function sprintf tear down of libblkid.so.1.1.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/lib/libblkid.so.1.1.0 @ 0x8388 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00008388 ()                                  | void fcn_00008388 (int32_t arg_0h, int32_t arg_10h, int32_t arg_18h, int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_14h;
                                                             |     FILE * var_18h;
                                                             |     FILE * stream;
                                                             |     char * var_20h;
                                                             |     FILE * var_24h;
                                                             |     char * s2;
                                                             |     char * format;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_38h;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_44h;
                                                             |     int32_t var_48h;
                                                             |     int32_t var_4ch;
                                                             |     char * s;
                                                             |     int32_t var_b8h;
                                                             |     int32_t var_13ch;
                                                             |     char * var_1c0h;
                                                             |     int32_t var_1d0h;
                                                             |     int32_t var_20h_2;
                                                             |     int32_t var_24h_2;
                                                             |     int32_t var_5c0h;
                                                             |     int32_t var_4h_2;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00008388 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x0000838c ldr sb, [pc, 0xb3c]                           |     sb = *(0x00008ed0);
    0x00008390 sub sp, sp, 0x5c0                             |     
    0x00008394 sub sp, sp, 4                                 |     
    0x00008398 add r3, sp, 0xb8                              |     r3 += var_b8h;
    0x0000839c mov r4, 0                                     |     r4 = 0;
    0x000083a0 str r3, [sp, 0x40]                            |     var_40h = r3;
    0x000083a4 subs fp, r0, 0                                |     
    0x000083a8 add r3, sp, 0x13c                             |     r3 += var_13ch;
    0x000083ac add sb, pc, sb                                |     sb = pc + sb;
    0x000083b0 str r4, [sp, 0x48]                            |     var_48h = r4;
    0x000083b4 str r4, [sp, 0x4c]                            |     var_4ch = r4;
    0x000083b8 str r3, [sp, 0x44]                            |     var_44h = r3;
                                                             |     if (fp != arg_0h) {
    0x000083bc mvneq r0, 0x15                                |         r0 = ~0x15;
                                                             |     }
                                                             |     if (fp == arg_0h) {
    0x000083c0 beq 0x854c                                    |         goto label_4;
                                                             |     }
    0x000083c4 ldr r3, [fp, 0x18]                            |     r3 = *(arg_18h);
    0x000083c8 str r1, [sp, 0x14]                            |     var_14h = r1;
    0x000083cc tst r3, 2                                     |     
                                                             |     if ((r3 & 2) != 0) {
    0x000083d0 bne 0x8530                                    |         goto label_9;
                                                             |     }
                                                             | label_1:
    0x000083d4 mov r0, fp                                    |     r0 = fp;
    0x000083d8 bl 0xe460                                     |     fcn_0000e460 (r0);
    0x000083dc ldr r1, [pc, 0xaf0]                           |     r1 = *(0x8ed0);
    0x000083e0 ldr r0, [pc, 0xaf0]                           |     r0 = *(0x8ed4);
    0x000083e4 add r1, pc, r1                                |     r1 = pc + r1;
    0x000083e8 add r0, pc, r0                                |     r0 = pc + r0;
    0x000083ec bl 0x6238                                     |     r0 = fopen64 ();
    0x000083f0 subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 == r0) {
    0x000083f4 addne r7, sp, 0x40                            |         r7 += var_40h;
                                                             |     }
                                                             |     if (r5 == r0) {
    0x000083f8 subne r8, r7, 0xc                             |         r8 -= var_ch;
                                                             |     }
                                                             |     if (r5 != r0) {
    0x000083fc bne 0x8618                                    |         goto label_10;
                                                             |     }
                                                             | label_2:
    0x00008400 ldr r4, [pc, 0xad4]                           |     r4 = *(0x8ed8);
    0x00008404 add r4, pc, r4                                |     r4 = pc + r4;
    0x00008408 mov r0, r4                                    |     r0 = r4;
    0x0000840c bl 0x5ec0                                     |     r0 = opendir ();
    0x00008410 subs r3, r0, 0                                |     r3 = r0 - 0;
    0x00008414 str r3, [sp, 0x20]                            |     var_20h = r3;
                                                             |     if (r3 == r0) {
    0x00008418 beq 0x86b4                                    |         goto label_11;
                                                             |     }
    0x0000841c ldr r3, [pc, 0xabc]                           |     r3 = *(0x8edc);
    0x00008420 ldr r8, [sb, r3]                              |     r8 = *((sb + r3));
    0x00008424 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00008428 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x0000842c beq 0x8478                                    |         
    0x00008430 ldr r3, [pc, 0xaac]                           |         r3 = *(0x8ee0);
    0x00008434 ldr r3, [sb, r3]                              |         r3 = *((sb + r3));
    0x00008438 ldr r5, [r3]                                  |         r5 = *(0x8ee0);
    0x0000843c bl 0x58fc                                     |         getpid ();
    0x00008440 ldr r3, [pc, 0xaa0]                           |         r3 = *(0x8ee4);
    0x00008444 ldr r1, [pc, 0xaa0]                           |         r1 = *(0x8ee8);
    0x00008448 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000844c str r3, [sp]                                  |         *(sp) = r3;
    0x00008450 ldr r3, [pc, 0xa98]                           |         r3 = *(0x8eec);
    0x00008454 add r1, pc, r1                                |         r1 = pc + r1;
    0x00008458 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000845c mov r2, r0                                    |         r2 = r0;
    0x00008460 mov r0, r5                                    |         r0 = r5;
    0x00008464 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3);
    0x00008468 ldr r0, [pc, 0xa84]                           |         r0 = *(0x8ef0);
    0x0000846c mov r1, r4                                    |         r1 = r4;
    0x00008470 add r0, pc, r0                                |         r0 = pc + r0;
    0x00008474 bl 0x7b24                                     |         fcn_00007b24 ();
                                                             |     }
    0x00008478 add r3, sp, 0x38                              |     r3 += var_38h;
    0x0000847c str r3, [sp, 0x24]                            |     var_24h = r3;
                                                             |     do {
                                                             | label_0:
    0x00008480 ldr r0, [sp, 0x20]                            |         r0 = var_20h;
    0x00008484 bl 0x5dac                                     |         r0 = readdir64 ();
    0x00008488 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0000848c beq 0x86ac                                    |             goto label_12;
                                                             |         }
    0x00008490 ldr r1, [pc, 0xa60]                           |         r1 = *(0x8ef4);
    0x00008494 add r5, r0, 0x13                              |         r5 = r0 + 0x13;
    0x00008498 add r1, pc, r1                                |         r1 = pc + r1;
    0x0000849c mov r0, r5                                    |         r0 = r5;
    0x000084a0 bl 0x5efc                                     |         r0 = strcmp (r0, r1);
    0x000084a4 cmp r0, 0                                     |         
    0x000084a8 beq 0x8480                                    |         
                                                             |     } while (r0 == 0);
    0x000084ac ldr r1, [pc, 0xa48]                           |     r1 = *(0x8ef8);
    0x000084b0 mov r0, r5                                    |     r0 = r5;
    0x000084b4 add r1, pc, r1                                |     r1 = pc + r1;
    0x000084b8 bl 0x5efc                                     |     r0 = strcmp (r0, r1);
    0x000084bc cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000084c0 beq 0x8480                                    |         goto label_0;
                                                             |     }
    0x000084c4 mov r0, r5                                    |     r0 = r5;
    0x000084c8 bl 0x6118                                     |     r0 = strlen (r0);
    0x000084cc add r0, r0, 0x15                              |     r0 += 0x15;
    0x000084d0 bl 0x59f8                                     |     r0 = malloc (r0);
    0x000084d4 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 == r0) {
    0x000084d8 beq 0x86ac                                    |         goto label_12;
                                                             |     }
    0x000084dc ldr r2, [pc, 0xa1c]                           |     r2 = *(0x8efc);
    0x000084e0 ldr r1, [pc, 0xa1c]                           |     r1 = *(0x8f00);
    0x000084e4 mov r3, r5                                    |     r3 = r5;
    0x000084e8 add r2, pc, r2                                |     r2 = pc + r2;
    0x000084ec add r1, pc, r1                                |     r1 = pc + r1;
    0x000084f0 bl 0x5f68                                     |     sprintf (r0, r1, r2)
    0x000084f4 mov r0, r4                                    |     r0 = r4;
    0x000084f8 bl 0x5ec0                                     |     opendir ();
    0x000084fc str r0, [sp, 0x18]                            |     var_18h = r0;
    0x00008500 mov r0, r4                                    |     r0 = r4;
    0x00008504 bl 0x6220                                     |     free (r0);
    0x00008508 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x0000850c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00008510 beq 0x8480                                    |         goto label_0;
                                                             |     }
                                                             | label_3:
    0x00008514 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x00008518 bl 0x5dac                                     |     r0 = readdir64 ();
    0x0000851c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00008520 bne 0x8648                                    |         goto label_13;
                                                             |     }
    0x00008524 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x00008528 bl 0x6184                                     |     closedir ();
    0x0000852c b 0x8480                                      |     goto label_0;
                                                             | label_9:
    0x00008530 mov r0, r4                                    |     r0 = r4;
    0x00008534 bl 0x5eb4                                     |     time (r0);
    0x00008538 ldr r3, [fp, 0x10]                            |     r3 = *(arg_10h);
    0x0000853c sub r0, r0, r3                                |     r0 -= r3;
    0x00008540 cmp r0, 0xc7                                  |     
                                                             |     if (r0 > 0xc7) {
    0x00008544 bgt 0x83d4                                    |         goto label_1;
                                                             |     }
                                                             | label_5:
    0x00008548 mov r0, 0                                     |     r0 = 0;
                                                             | label_4:
    0x0000854c add sp, sp, 0x5c0                             |     
    0x00008550 add sp, sp, 4                                 |     
    0x00008554 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             |     do {
    0x00008558 sub r3, r7, 8                                 |         r3 -= var_38h;
    0x0000855c add r4, sp, 0x1c0                             |         r4 += var_1c0h;
    0x00008560 str r3, [sp]                                  |         *(sp) = r3;
    0x00008564 str r4, [sp, 4]                               |         var_4h = r4;
    0x00008568 mov r3, r8                                    |         r3 = r8;
    0x0000856c add r2, sp, 0x30                              |         r2 += var_30h;
    0x00008570 mov r1, sl                                    |         r1 = sl;
    0x00008574 mov r0, r6                                    |         r0 = r6;
    0x00008578 bl 0x5df4                                     |         r0 = sscanf (r0, r1, r2);
    0x0000857c cmp r0, 4                                     |         
                                                             |         if (r0 == 4) {
    0x00008580 bne 0x8620                                    |             
    0x00008584 ldr r3, [pc, 0x954]                           |             
    0x00008588 ldr r3, [sb, r3]                              |             r3 = *((sb + r3));
    0x0000858c ldr r3, [r3]                                  |             r3 = *(0x8edc);
    0x00008590 tst r3, 0x20                                  |             
                                                             |             if ((r3 & 0x20) != 0) {
    0x00008594 beq 0x85e4                                    |                 
    0x00008598 ldr r3, [pc, 0x944]                           |                 r3 = *(0x8ee0);
    0x0000859c ldr r3, [sb, r3]                              |                 r3 = *((sb + r3));
    0x000085a0 ldr r6, [r3]                                  |                 r6 = *(0x8ee0);
    0x000085a4 bl 0x58fc                                     |                 getpid ();
    0x000085a8 ldr r3, [pc, 0x958]                           |                 r3 = *(0x8f04);
    0x000085ac ldr r1, [pc, 0x958]                           |                 r1 = *(0x8f08);
    0x000085b0 add r3, pc, r3                                |                 r3 = pc + r3;
    0x000085b4 str r3, [sp]                                  |                 *(sp) = r3;
    0x000085b8 ldr r3, [pc, 0x950]                           |                 r3 = *(0x8f0c);
    0x000085bc add r1, pc, r1                                |                 r1 = pc + r1;
    0x000085c0 add r3, pc, r3                                |                 r3 = pc + r3;
    0x000085c4 mov r2, r0                                    |                 r2 = r0;
    0x000085c8 mov r0, r6                                    |                 r0 = r6;
    0x000085cc bl 0x5c50                                     |                 fprintf (r0, r1, r2, r3);
    0x000085d0 ldr r0, [pc, 0x93c]                           |                 r0 = *(0x8f10);
    0x000085d4 ldrd r2, r3, [sp, 0x30]                       |                 __asm ("ldrd r2, r3, [var_30h]");
    0x000085d8 mov r1, r4                                    |                 r1 = r4;
    0x000085dc add r0, pc, r0                                |                 r0 = pc + r0;
    0x000085e0 bl 0x7b24                                     |                 fcn_00007b24 ();
                                                             |             }
    0x000085e4 ldrd r0, r1, [sp, 0x30]                       |             __asm ("ldrd r0, r1, [var_30h]");
    0x000085e8 bl 0x60e8                                     |             gnu_dev_makedev ();
    0x000085ec mov r3, 0                                     |             r3 = 0;
    0x000085f0 str r3, [sp, 8]                               |             var_8h = r3;
    0x000085f4 ldr r3, [sp, 0x14]                            |             r3 = var_14h;
    0x000085f8 str r3, [sp, 4]                               |             var_4h = r3;
    0x000085fc mov r3, 0x1e                                  |             r3 = 0x1e;
    0x00008600 str r3, [sp]                                  |             *(sp) = r3;
    0x00008604 mov r2, r0                                    |             r2 = r0;
    0x00008608 mov r3, r1                                    |             r3 = r1;
    0x0000860c mov r0, fp                                    |             r0 = fp;
    0x00008610 mov r1, r4                                    |             r1 = r4;
    0x00008614 bl 0x7f3c                                     |             fcn_00007f3c (r0, r1, r2, r3, r4);
                                                             | label_10:
    0x00008618 ldr sl, [pc, 0x8f8]                           |             sl = *(0x8f14);
    0x0000861c add sl, pc, sl                                |             sl = pc + sl;
                                                             |         }
    0x00008620 add r6, sp, 0x50                              |         r6 += s;
    0x00008624 mov r2, r5                                    |         r2 = r5;
    0x00008628 mov r1, 0x64                                  |         r1 = 0x64;
    0x0000862c mov r0, r6                                    |         r0 = r6;
    0x00008630 bl 0x5920                                     |         r0 = fgets (r0, r1, r2);
    0x00008634 cmp r0, 0                                     |         
    0x00008638 bne 0x8558                                    |         
                                                             |     } while (r0 != 0);
    0x0000863c mov r0, r5                                    |     r0 = r5;
    0x00008640 bl 0x5e90                                     |     fclose (r0);
    0x00008644 b 0x8400                                      |     goto label_2;
                                                             | label_13:
    0x00008648 ldr r1, [pc, 0x8cc]                           |     r1 = *(0x8f18);
    0x0000864c add r6, r0, 0x13                              |     r6 = r0 + 0x13;
    0x00008650 add r1, pc, r1                                |     r1 = pc + r1;
    0x00008654 mov r0, r6                                    |     r0 = r6;
    0x00008658 bl 0x5efc                                     |     r0 = strcmp (r0, r1);
    0x0000865c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00008660 beq 0x8514                                    |         goto label_3;
                                                             |     }
    0x00008664 ldr r1, [pc, 0x8b4]                           |     r1 = *(0x8f1c);
    0x00008668 mov r0, r6                                    |     r0 = r6;
    0x0000866c add r1, pc, r1                                |     r1 = pc + r1;
    0x00008670 bl 0x5efc                                     |     r0 = strcmp (r0, r1);
    0x00008674 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00008678 beq 0x8514                                    |         goto label_3;
                                                             |     }
    0x0000867c mov r0, r5                                    |     r0 = r5;
    0x00008680 bl 0x6118                                     |     r0 = strlen (r0);
    0x00008684 mov r4, r0                                    |     r4 = r0;
    0x00008688 mov r0, r6                                    |     r0 = r6;
    0x0000868c bl 0x6118                                     |     r0 = strlen (r0);
    0x00008690 add r0, r4, r0                                |     r0 = r4 + r0;
    0x00008694 add r0, r0, 0x15                              |     r0 += 0x15;
    0x00008698 bl 0x59f8                                     |     r0 = malloc (r0);
    0x0000869c subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 != r0) {
    0x000086a0 bne 0x8790                                    |         goto label_14;
                                                             |     }
    0x000086a4 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x000086a8 bl 0x6184                                     |     closedir ();
                                                             | label_12:
    0x000086ac ldr r0, [sp, 0x20]                            |     r0 = var_20h;
    0x000086b0 bl 0x6184                                     |     closedir ();
                                                             | label_11:
    0x000086b4 ldr r3, [pc, 0x868]                           |     r3 = *(0x8f20);
    0x000086b8 ldr r5, [pc, 0x868]                           |     r5 = *(0x8f24);
    0x000086bc add r3, pc, r3                                |     r3 = pc + r3;
    0x000086c0 str r3, [sp, 0x24]                            |     var_24h = r3;
    0x000086c4 ldr r3, [pc, 0x860]                           |     r3 = *(0x8f28);
    0x000086c8 add r5, pc, r5                                |     r5 = pc + r5;
    0x000086cc add r3, pc, r3                                |     r3 = pc + r3;
    0x000086d0 sub r5, r5, 4                                 |     r5 -= 4;
    0x000086d4 str r3, [sp, 0x28]                            |     s2 = r3;
                                                             | label_6:
    0x000086d8 ldr r4, [r5, 4]!                              |     r4 = *((r5 += 4));
    0x000086dc cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x000086e0 bne 0x8994                                    |         goto label_15;
                                                             |     }
    0x000086e4 ldr r1, [pc, 0x844]                           |     r1 = *(0x8f2c);
    0x000086e8 ldr r0, [pc, 0x844]                           |     r0 = *(0x8f30);
    0x000086ec add r1, pc, r1                                |     r1 = pc + r1;
    0x000086f0 add r0, pc, r0                                |     r0 = pc + r0;
    0x000086f4 bl 0x6238                                     |     r0 = fopen64 ();
    0x000086f8 subs r3, r0, 0                                |     r3 = r0 - 0;
    0x000086fc str r3, [sp, 0x1c]                            |     stream = r3;
                                                             |     if (r3 == r0) {
    0x00008700 mvneq r0, 8                                   |         r0 = ~8;
                                                             |         goto label_16;
                                                             |     }
                                                             |     if (r3 == r0) {
                                                             | label_16:
    0x00008704 beq 0x854c                                    |         goto label_4;
                                                             |     }
    0x00008708 add r3, sp, 0x40                              |     r3 += var_40h;
    0x0000870c str r3, [sp, 0x18]                            |     var_18h = r3;
    0x00008710 sub r3, r3, 0xc                               |     r3 -= var_ch;
    0x00008714 str r3, [sp, 0x28]                            |     s2 = r3;
    0x00008718 ldr r3, [pc, 0x818]                           |     r3 = *(0x8f34);
    0x0000871c mov r6, r4                                    |     r6 = r4;
    0x00008720 add r3, pc, r3                                |     r3 = pc + r3;
    0x00008724 str r3, [sp, 0x2c]                            |     format = r3;
                                                             | label_8:
    0x00008728 add r7, sp, 0x1c0                             |     r7 += var_1c0h;
    0x0000872c ldr r2, [sp, 0x1c]                            |     r2 = stream;
    0x00008730 mov r1, 0x400                                 |     r1 = 0x400;
    0x00008734 mov r0, r7                                    |     r0 = r7;
    0x00008738 bl 0x5920                                     |     r0 = fgets (r0, r1, r2);
    0x0000873c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00008740 bne 0x8b84                                    |         goto label_17;
                                                             |     }
    0x00008744 add r3, sp, 0x5c0                             |     r3 += var_5c0h;
    0x00008748 add r3, r3, r4, lsl 2                         |     r3 += (r4 << 2);
    0x0000874c ldr r3, [r3, -0x578]                          |     r3 = *((r3 - 0x578));
    0x00008750 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00008754 beq 0x877c                                    |         
    0x00008758 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x0000875c lsl r4, r4, 3                                 |         r4 <<= 3;
    0x00008760 stm sp, {r0, r3}                              |         *(sp) = r0;
                                                             |         *((sp + 4)) = r3;
    0x00008764 add r3, sp, 0x50                              |         r3 += s;
    0x00008768 str r0, [sp, 8]                               |         var_8h = r0;
    0x0000876c mov r1, r6                                    |         r1 = r6;
    0x00008770 ldrd r2, r3, [r3, r4]                         |         __asm ("ldrd r2, r3, [r3, r4]");
    0x00008774 mov r0, fp                                    |         r0 = fp;
    0x00008778 bl 0x7f3c                                     |         fcn_00007f3c (r0, r1, r2, r3, r4);
                                                             |     }
    0x0000877c ldr r0, [sp, 0x1c]                            |     r0 = stream;
    0x00008780 bl 0x5e90                                     |     fclose (r0);
    0x00008784 mov r0, fp                                    |     r0 = fp;
    0x00008788 bl 0xf258                                     |     fcn_0000f258 (r0, r1);
    0x0000878c b 0x8548                                      |     goto label_5;
                                                             | label_14:
    0x00008790 ldr r2, [pc, 0x7a4]                           |     r2 = *(0x8f38);
    0x00008794 ldr r1, [pc, 0x7a4]                           |     r1 = *(0x8f3c);
    0x00008798 mov r3, r5                                    |     r3 = r5;
    0x0000879c str r6, [sp]                                  |     *(sp) = r6;
    0x000087a0 add r2, pc, r2                                |     r2 = pc + r2;
    0x000087a4 add r1, pc, r1                                |     r1 = pc + r1;
    0x000087a8 bl 0x5f68                                     |     sprintf (r0, r1, r2)
    0x000087ac ldr r3, [r8]                                  |     r3 = *(r8);
    0x000087b0 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x000087b4 beq 0x8800                                    |         
    0x000087b8 ldr r3, [pc, 0x724]                           |         r3 = *(0x8ee0);
    0x000087bc ldr r3, [sb, r3]                              |         r3 = *((sb + r3));
    0x000087c0 ldr r4, [r3]                                  |         r4 = *(0x8ee0);
    0x000087c4 bl 0x58fc                                     |         getpid ();
    0x000087c8 ldr r3, [pc, 0x774]                           |         r3 = *(0x8f40);
    0x000087cc ldr r1, [pc, 0x774]                           |         r1 = *(0x8f44);
    0x000087d0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000087d4 str r3, [sp]                                  |         *(sp) = r3;
    0x000087d8 ldr r3, [pc, 0x76c]                           |         r3 = *(0x8f48);
    0x000087dc add r1, pc, r1                                |         r1 = pc + r1;
    0x000087e0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000087e4 mov r2, r0                                    |         r2 = r0;
    0x000087e8 mov r0, r4                                    |         r0 = r4;
    0x000087ec bl 0x5c50                                     |         fprintf (r0, r1, r2, r3);
    0x000087f0 ldr r0, [pc, 0x758]                           |         r0 = *(0x8f4c);
    0x000087f4 mov r1, r7                                    |         r1 = r7;
    0x000087f8 add r0, pc, r0                                |         r0 = pc + r0;
    0x000087fc bl 0x7b24                                     |         fcn_00007b24 ();
                                                             |     }
    0x00008800 ldr r1, [pc, 0x74c]                           |     r1 = *(0x8f50);
    0x00008804 mov r0, r7                                    |     r0 = r7;
    0x00008808 add r1, pc, r1                                |     r1 = pc + r1;
    0x0000880c bl 0x6238                                     |     r0 = fopen64 ();
    0x00008810 subs r3, r0, 0                                |     r3 = r0 - 0;
    0x00008814 str r3, [sp, 0x1c]                            |     stream = r3;
                                                             |     if (r3 == r0) {
    0x00008818 beq 0x884c                                    |         goto label_18;
                                                             |     }
    0x0000881c ldr r4, [pc, 0x734]                           |     r4 = *(0x8f54);
    0x00008820 add r4, pc, r4                                |     r4 = pc + r4;
                                                             |     do {
    0x00008824 add sl, sp, 0x1c0                             |         sl += var_1c0h;
    0x00008828 ldr r2, [sp, 0x1c]                            |         r2 = stream;
    0x0000882c mov r1, 0x400                                 |         r1 = 0x400;
    0x00008830 mov r0, sl                                    |         r0 = sl;
    0x00008834 bl 0x5920                                     |         r0 = fgets (r0, r1, r2);
    0x00008838 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0000883c bne 0x88b4                                    |             
    0x00008840 mov r4, r0                                    |             r4 = r0;
    0x00008844 mov sl, r0                                    |             sl = r0;
    0x00008848 b 0x88e4                                      |             goto label_19;
                                                             | label_18:
    0x0000884c ldr r4, [r8]                                  |             r4 = *(r8);
    0x00008850 ands r4, r4, 0x20                             |             r4 &= 0x20;
                                                             |             if (r4 != r4) {
    0x00008854 beq 0x88ac                                    |                 
    0x00008858 ldr r3, [pc, 0x684]                           |                 r3 = *(0x8ee0);
    0x0000885c ldr r3, [sb, r3]                              |                 r3 = *((sb + r3));
    0x00008860 ldr r4, [r3]                                  |                 r4 = *(0x8ee0);
    0x00008864 bl 0x58fc                                     |                 getpid ();
    0x00008868 ldr r3, [pc, 0x6ec]                           |                 r3 = *(0x8f58);
    0x0000886c ldr r1, [pc, 0x6ec]                           |                 r1 = *(0x8f5c);
    0x00008870 add r3, pc, r3                                |                 r3 = pc + r3;
    0x00008874 str r3, [sp]                                  |                 *(sp) = r3;
    0x00008878 ldr r3, [pc, 0x6e4]                           |                 r3 = *(0x8f60);
    0x0000887c add r1, pc, r1                                |                 r1 = pc + r1;
    0x00008880 add r3, pc, r3                                |                 r3 = pc + r3;
    0x00008884 mov r2, r0                                    |                 r2 = r0;
    0x00008888 mov r0, r4                                    |                 r0 = r4;
    0x0000888c bl 0x5c50                                     |                 r0 = fprintf (r0, r1, r2, r3);
    0x00008890 bl 0x60ac                                     |                 errno_location ();
    0x00008894 mov r1, r7                                    |                 r1 = r7;
    0x00008898 ldr r2, [r0]                                  |                 r2 = *(r0);
    0x0000889c ldr r0, [pc, 0x6c4]                           |                 r0 = *(0x8f64);
    0x000088a0 add r0, pc, r0                                |                 r0 = pc + r0;
    0x000088a4 bl 0x7b24                                     |                 fcn_00007b24 ();
    0x000088a8 ldr r4, [sp, 0x1c]                            |                 r4 = stream;
                                                             |             }
    0x000088ac mov sl, r4                                    |             sl = r4;
    0x000088b0 b 0x88ec                                      |             goto label_20;
                                                             |         }
    0x000088b4 add r3, sp, 0x50                              |         r3 += s;
    0x000088b8 ldr r2, [sp, 0x24]                            |         r2 = var_24h;
    0x000088bc mov r1, r4                                    |         r1 = r4;
    0x000088c0 mov r0, sl                                    |         r0 = sl;
    0x000088c4 bl 0x5df4                                     |         r0 = sscanf (r0, r1, r2);
    0x000088c8 cmp r0, 2                                     |         
    0x000088cc bne 0x8824                                    |         
                                                             |     } while (r0 != 2);
    0x000088d0 ldr r1, [sp, 0x50]                            |     r1 = s;
    0x000088d4 ldr r0, [sp, 0x38]                            |     r0 = var_38h;
    0x000088d8 bl 0x60e8                                     |     r0 = gnu_dev_makedev ();
    0x000088dc mov r4, r0                                    |     r4 = r0;
    0x000088e0 mov sl, r1                                    |     sl = r1;
                                                             | label_19:
    0x000088e4 ldr r0, [sp, 0x1c]                            |     r0 = stream;
    0x000088e8 bl 0x5e90                                     |     fclose (r0);
                                                             | label_20:
    0x000088ec ldr r1, [pc, 0x678]                           |     r1 = *(0x8f68);
    0x000088f0 mov r3, r6                                    |     r3 = r6;
    0x000088f4 mov r2, r5                                    |     r2 = r5;
    0x000088f8 add r1, pc, r1                                |     r1 = pc + r1;
    0x000088fc mov r0, r7                                    |     r0 = r7;
    0x00008900 bl 0x5f68                                     |     sprintf (r0, r1, r2)
    0x00008904 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00008908 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x0000890c beq 0x895c                                    |         
    0x00008910 ldr r3, [pc, 0x5cc]                           |         r3 = *(0x8ee0);
    0x00008914 ldr r3, [sb, r3]                              |         r3 = *((sb + r3));
    0x00008918 ldr r6, [r3]                                  |         r6 = *(0x8ee0);
    0x0000891c bl 0x58fc                                     |         getpid ();
    0x00008920 ldr r3, [pc, 0x648]                           |         r3 = *(0x8f6c);
    0x00008924 ldr r1, [pc, 0x648]                           |         r1 = *(0x8f70);
    0x00008928 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000892c str r3, [sp]                                  |         *(sp) = r3;
    0x00008930 ldr r3, [pc, 0x640]                           |         r3 = *(0x8f74);
    0x00008934 add r1, pc, r1                                |         r1 = pc + r1;
    0x00008938 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000893c mov r2, r0                                    |         r2 = r0;
    0x00008940 mov r0, r6                                    |         r0 = r6;
    0x00008944 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3);
    0x00008948 ldr r0, [pc, 0x62c]                           |         r0 = *(0x8f78);
    0x0000894c mov r2, r4                                    |         r2 = r4;
    0x00008950 mov r1, r7                                    |         r1 = r7;
    0x00008954 add r0, pc, r0                                |         r0 = pc + r0;
    0x00008958 bl 0x7b24                                     |         fcn_00007b24 ();
                                                             |     }
    0x0000895c mov r3, 0                                     |     r3 = 0;
    0x00008960 str r3, [sp, 8]                               |     var_8h = r3;
    0x00008964 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00008968 mov r0, fp                                    |     r0 = fp;
    0x0000896c str r3, [sp, 4]                               |     var_4h = r3;
    0x00008970 mov r3, 0x14                                  |     r3 = 0x14;
    0x00008974 str r3, [sp]                                  |     *(sp) = r3;
    0x00008978 mov r2, r4                                    |     r2 = r4;
    0x0000897c mov r3, sl                                    |     r3 = sl;
    0x00008980 mov r1, r7                                    |     r1 = r7;
    0x00008984 bl 0x7f3c                                     |     fcn_00007f3c (r0, r1, r2, r3, r4);
    0x00008988 mov r0, r7                                    |     r0 = r7;
    0x0000898c bl 0x6220                                     |     free (r0);
    0x00008990 b 0x8514                                      |     goto label_3;
                                                             | label_15:
    0x00008994 ldr r3, [pc, 0x544]                           |     r3 = *(0x8edc);
    0x00008998 ldr sl, [sb, r3]                              |     sl = *((sb + r3));
    0x0000899c ldr r3, [sl]                                  |     r3 = *(sl);
    0x000089a0 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x000089a4 beq 0x89ec                                    |         
    0x000089a8 ldr r3, [pc, 0x534]                           |         r3 = *(0x8ee0);
    0x000089ac ldr r3, [sb, r3]                              |         r3 = *((sb + r3));
    0x000089b0 ldr r4, [r3]                                  |         r4 = *(0x8ee0);
    0x000089b4 bl 0x58fc                                     |         getpid ();
    0x000089b8 ldr r3, [pc, 0x5c0]                           |         r3 = *(0x8f7c);
    0x000089bc ldr r1, [pc, 0x5c0]                           |         r1 = *(0x8f80);
    0x000089c0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000089c4 str r3, [sp]                                  |         *(sp) = r3;
    0x000089c8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000089cc ldr r3, [sp, 0x24]                            |         r3 = var_24h;
    0x000089d0 mov r2, r0                                    |         r2 = r0;
    0x000089d4 mov r0, r4                                    |         r0 = r4;
    0x000089d8 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3);
    0x000089dc ldr r0, [pc, 0x5a4]                           |         r0 = *(0x8f84);
    0x000089e0 ldr r1, [r5]                                  |         r1 = *(r5);
    0x000089e4 add r0, pc, r0                                |         r0 = pc + r0;
    0x000089e8 bl 0x7b24                                     |         fcn_00007b24 ();
                                                             |     }
    0x000089ec ldr r0, [r5]                                  |     r0 = *(r5);
    0x000089f0 bl 0x5ec0                                     |     r0 = opendir ();
    0x000089f4 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 == r0) {
    0x000089f8 beq 0x86d8                                    |         goto label_6;
                                                             |     }
    0x000089fc ldr r3, [pc, 0x588]                           |     r3 = *(0x8f88);
    0x00008a00 add r3, pc, r3                                |     r3 = pc + r3;
    0x00008a04 str r3, [sp, 0x1c]                            |     stream = r3;
    0x00008a08 ldr r3, [pc, 0x580]                           |     r3 = *(0x8f8c);
    0x00008a0c add r3, pc, r3                                |     r3 = pc + r3;
    0x00008a10 str r3, [sp, 0x20]                            |     var_20h = r3;
                                                             |     do {
                                                             | label_7:
    0x00008a14 mov r0, r6                                    |         r0 = r6;
    0x00008a18 bl 0x5dac                                     |         r0 = readdir64 ();
    0x00008a1c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00008a20 bne 0x8a30                                    |             
    0x00008a24 mov r0, r6                                    |             r0 = r6;
    0x00008a28 bl 0x6184                                     |             closedir ();
    0x00008a2c b 0x86d8                                      |             goto label_6;
                                                             |         }
    0x00008a30 ldrb r7, [r0, 0x12]                           |         r7 = *((r0 + 0x12));
    0x00008a34 add r4, r0, 0x13                              |         r4 = r0 + 0x13;
    0x00008a38 and r3, r7, 0xfd                              |         r3 = r7 & 0xfd;
    0x00008a3c cmp r7, 0xa                                   |         
    0x00008a40 cmpne r3, 0                                   |         __asm ("cmpne r3, 0");
                                                             |         if (r7 == 0xa) {
    0x00008a44 movne r7, 1                                   |             r7 = 1;
                                                             |         }
                                                             |         if (r7 != 0xa) {
    0x00008a48 moveq r7, 0                                   |             r7 = 0;
                                                             |         }
    0x00008a4c bne 0x8a14                                    |         
                                                             |     } while (r7 != 0xa);
    0x00008a50 ldr r1, [sp, 0x28]                            |     r1 = s2;
    0x00008a54 mov r0, r4                                    |     r0 = r4;
    0x00008a58 bl 0x5efc                                     |     r0 = strcmp (r0, r1);
    0x00008a5c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00008a60 beq 0x8a14                                    |         goto label_7;
                                                             |     }
    0x00008a64 ldr r1, [sp, 0x1c]                            |     r1 = stream;
    0x00008a68 mov r0, r4                                    |     r0 = r4;
    0x00008a6c bl 0x5efc                                     |     r0 = strcmp (r0, r1);
    0x00008a70 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00008a74 beq 0x8a14                                    |         goto label_7;
                                                             |     }
    0x00008a78 ldr r1, [sp, 0x20]                            |     r1 = var_20h;
    0x00008a7c mov r0, r4                                    |     r0 = r4;
    0x00008a80 bl 0x5d04                                     |     r0 = strstr (r0, r1);
    0x00008a84 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00008a88 beq 0x8a14                                    |         goto label_7;
                                                             |     }
    0x00008a8c ldr r1, [pc, 0x500]                           |     r1 = *(0x8f90);
    0x00008a90 mov r0, r4                                    |     r0 = r4;
    0x00008a94 add r1, pc, r1                                |     r1 = pc + r1;
    0x00008a98 bl 0x5efc                                     |     r0 = strcmp (r0, r1);
    0x00008a9c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00008aa0 beq 0x8a14                                    |         goto label_7;
                                                             |     }
    0x00008aa4 mov r0, r6                                    |     r0 = r6;
    0x00008aa8 add r8, sp, 0x1c0                             |     r8 += var_1c0h;
    0x00008aac bl 0x5d28                                     |     dirfd ();
    0x00008ab0 mov r3, r7                                    |     r3 = r7;
    0x00008ab4 mov r2, r8                                    |     r2 = r8;
    0x00008ab8 mov r1, r4                                    |     r1 = r4;
    0x00008abc bl 0x5f44                                     |     r0 = fstatat64 ();
    0x00008ac0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00008ac4 bne 0x8a14                                    |         goto label_7;
                                                             |     }
    0x00008ac8 ldr r3, [sp, 0x1d0]                           |     r3 = var_1d0h;
    0x00008acc and r3, r3, 0xf000                            |     r3 &= 0xf000;
    0x00008ad0 cmp r3, 0x2000                                |     
                                                             |     if (r3 != 0x2000) {
    0x00008ad4 bne 0x8a14                                    |         goto label_7;
                                                             |     }
    0x00008ad8 ldr r7, [r8, 0x20]                            |     r7 = var_20h_2;
    0x00008adc ldr r8, [r8, 0x24]                            |     r8 = var_24h_2;
    0x00008ae0 mov r0, r7                                    |     r0 = r7;
    0x00008ae4 mov r1, r8                                    |     r1 = r8;
    0x00008ae8 bl 0x5af4                                     |     r0 = gnu_dev_minor ();
    0x00008aec cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00008af0 beq 0x8a14                                    |         goto label_7;
                                                             |     }
    0x00008af4 ldr r3, [sl]                                  |     r3 = *(sl);
    0x00008af8 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x00008afc beq 0x8b54                                    |         
    0x00008b00 ldr r3, [pc, 0x3dc]                           |         
    0x00008b04 ldr r3, [sb, r3]                              |         r3 = *((sb + r3));
    0x00008b08 ldr r3, [r3]                                  |         r3 = *(0x8ee0);
    0x00008b0c str r3, [sp, 0x18]                            |         var_18h = r3;
    0x00008b10 bl 0x58fc                                     |         getpid ();
    0x00008b14 ldr r3, [pc, 0x47c]                           |         r3 = *(0x8f94);
    0x00008b18 ldr r1, [pc, 0x47c]                           |         r1 = *(0x8f98);
    0x00008b1c add r3, pc, r3                                |         r3 = pc + r3;
    0x00008b20 str r3, [sp]                                  |         *(sp) = r3;
    0x00008b24 ldr r3, [pc, 0x474]                           |         r3 = *(0x8f9c);
    0x00008b28 add r1, pc, r1                                |         r1 = pc + r1;
    0x00008b2c add r3, pc, r3                                |         r3 = pc + r3;
    0x00008b30 mov r2, r0                                    |         r2 = r0;
    0x00008b34 ldr r0, [sp, 0x18]                            |         r0 = var_18h;
    0x00008b38 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3);
    0x00008b3c ldr r0, [pc, 0x460]                           |         r0 = *(0x8fa0);
    0x00008b40 mov r3, r7                                    |         r3 = r7;
    0x00008b44 mov r2, r4                                    |         r2 = r4;
    0x00008b48 ldr r1, [r5]                                  |         r1 = *(r5);
    0x00008b4c add r0, pc, r0                                |         r0 = pc + r0;
    0x00008b50 bl 0x7b24                                     |         fcn_00007b24 ();
                                                             |     }
    0x00008b54 mov r3, 0                                     |     r3 = 0;
    0x00008b58 str r3, [sp, 8]                               |     var_8h = r3;
    0x00008b5c ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00008b60 mov r2, r7                                    |     r2 = r7;
    0x00008b64 str r3, [sp, 4]                               |     var_4h = r3;
    0x00008b68 mov r3, 0x32                                  |     r3 = 0x32;
    0x00008b6c str r3, [sp]                                  |     *(sp) = r3;
    0x00008b70 mov r1, r4                                    |     r1 = r4;
    0x00008b74 mov r3, r8                                    |     r3 = r8;
    0x00008b78 mov r0, fp                                    |     r0 = fp;
    0x00008b7c bl 0x7f3c                                     |     fcn_00007f3c (r0, r1, r2, r3, r4);
    0x00008b80 b 0x8a14                                      |     goto label_7;
                                                             | label_17:
    0x00008b84 eor sl, r4, 1                                 |     sl = r4 ^ 1;
    0x00008b88 lsl r5, sl, 2                                 |     r5 = sl << 2;
    0x00008b8c add r3, sp, 0x5c0                             |     r3 += var_5c0h;
    0x00008b90 add r3, r3, r5                                |     r3 += r5;
    0x00008b94 ldr r6, [r3, -0x580]                          |     r6 = *((r3 - 0x580));
    0x00008b98 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x00008b9c str r6, [sp, 4]                               |     var_4h = r6;
    0x00008ba0 sub r3, r3, 8                                 |     r3 -= 8;
    0x00008ba4 str r3, [sp]                                  |     *(sp) = r3;
    0x00008ba8 add r2, sp, 0x30                              |     r2 += var_30h;
    0x00008bac ldr r3, [sp, 0x28]                            |     r3 = s2;
    0x00008bb0 ldr r1, [sp, 0x2c]                            |     r1 = format;
    0x00008bb4 mov r0, r7                                    |     r0 = r7;
    0x00008bb8 bl 0x5df4                                     |     r0 = sscanf (r0, r1, r2);
    0x00008bbc cmp r0, 4                                     |     
                                                             |     if (r0 != 4) {
    0x00008bc0 bne 0x8ebc                                    |         goto label_21;
                                                             |     }
    0x00008bc4 ldrd r0, r1, [sp, 0x30]                       |     __asm ("ldrd r0, r1, [var_30h]");
    0x00008bc8 bl 0x60e8                                     |     gnu_dev_makedev ();
    0x00008bcc add r3, sp, 0x50                              |     r3 += s;
    0x00008bd0 add r2, r3, sl, lsl 3                         |     r2 = r3 + (sl << 3);
    0x00008bd4 str r0, [r3, sl, lsl 3]                       |     offset_0 = sl << 3;
                                                             |     *((r3 + offset_0)) = r0;
    0x00008bd8 ldr r3, [pc, 0x300]                           |     r3 = *(0x8edc);
    0x00008bdc str r1, [sp, 0x20]                            |     var_20h = r1;
    0x00008be0 str r1, [r2, 4]                               |     *((r2 + 4)) = r1;
    0x00008be4 ldr r7, [sb, r3]                              |     r7 = *((sb + r3));
    0x00008be8 mov r8, r0                                    |     r8 = r0;
    0x00008bec ldr r3, [r7]                                  |     r3 = *(r7);
    0x00008bf0 tst r3, 0x20                                  |     
                                                             |     if ((r3 & 0x20) != 0) {
    0x00008bf4 beq 0x8c44                                    |         
    0x00008bf8 ldr r3, [pc, 0x2e4]                           |         
    0x00008bfc ldr r3, [sb, r3]                              |         r3 = *((sb + r3));
    0x00008c00 ldr r3, [r3]                                  |         r3 = *(0x8ee0);
    0x00008c04 str r3, [sp, 0x24]                            |         var_24h = r3;
    0x00008c08 bl 0x58fc                                     |         getpid ();
    0x00008c0c ldr r3, [pc, 0x394]                           |         r3 = *(0x8fa4);
    0x00008c10 ldr r1, [pc, 0x394]                           |         r1 = *(0x8fa8);
    0x00008c14 add r3, pc, r3                                |         r3 = pc + r3;
    0x00008c18 str r3, [sp]                                  |         *(sp) = r3;
    0x00008c1c ldr r3, [pc, 0x38c]                           |         r3 = *(0x8fac);
    0x00008c20 add r1, pc, r1                                |         r1 = pc + r1;
    0x00008c24 add r3, pc, r3                                |         r3 = pc + r3;
    0x00008c28 mov r2, r0                                    |         r2 = r0;
    0x00008c2c ldr r0, [sp, 0x24]                            |         r0 = var_24h;
    0x00008c30 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3);
    0x00008c34 ldr r0, [pc, 0x378]                           |         r0 = *(0x8fb0);
    0x00008c38 mov r1, r6                                    |         r1 = r6;
    0x00008c3c add r0, pc, r0                                |         r0 = pc + r0;
    0x00008c40 bl 0x7b24                                     |         fcn_00007b24 ();
                                                             |     }
    0x00008c44 mov r0, r6                                    |     r0 = r6;
    0x00008c48 bl 0x6118                                     |     strlen (r0);
    0x00008c4c ldr r2, [pc, 0x364]                           |     
    0x00008c50 add r3, sp, 0x5c0                             |     r3 += var_5c0h;
    0x00008c54 add r5, r3, r5                                |     r5 = r3 + r5;
    0x00008c58 str r0, [r5, -0x578]                          |     *((r5 - 0x578)) = r0;
    0x00008c5c ldr r2, [sb, r2]                              |     r2 = *((sb + r2));
    0x00008c60 add r0, r6, r0                                |     r0 = r6 + r0;
    0x00008c64 ldrsb r3, [r0, -1]                            |     r3 = *((r0 - 1));
    0x00008c68 ldr r2, [r2]                                  |     r2 = *(0x8fb4);
    0x00008c6c lsl r3, r3, 1                                 |     r3 <<= 1;
    0x00008c70 ldrh r3, [r2, r3]                             |     r3 = *((r2 + r3));
    0x00008c74 tst r3, 8                                     |     
                                                             |     if ((r3 & 8) != 0) {
    0x00008c78 beq 0x8d20                                    |         
    0x00008c7c ldr r3, [r7]                                  |         r3 = *(r7);
    0x00008c80 tst r3, 0x20                                  |         
                                                             |         if ((r3 & 0x20) != 0) {
    0x00008c84 beq 0x8cd4                                    |             
    0x00008c88 ldr r3, [pc, 0x254]                           |             r3 = *(0x8ee0);
    0x00008c8c ldr r3, [sb, r3]                              |             r3 = *((sb + r3));
    0x00008c90 ldr r5, [r3]                                  |             r5 = *(0x8ee0);
    0x00008c94 bl 0x58fc                                     |             getpid ();
    0x00008c98 ldr r3, [pc, 0x31c]                           |             r3 = *(0x8fb8);
    0x00008c9c ldr r1, [pc, 0x31c]                           |             r1 = *(0x8fbc);
    0x00008ca0 add r3, pc, r3                                |             r3 = pc + r3;
    0x00008ca4 str r3, [sp]                                  |             *(sp) = r3;
    0x00008ca8 ldr r3, [pc, 0x314]                           |             r3 = *(0x8fc0);
    0x00008cac add r1, pc, r1                                |             r1 = pc + r1;
    0x00008cb0 add r3, pc, r3                                |             r3 = pc + r3;
    0x00008cb4 mov r2, r0                                    |             r2 = r0;
    0x00008cb8 mov r0, r5                                    |             r0 = r5;
    0x00008cbc bl 0x5c50                                     |             fprintf (r0, r1, r2, r3);
    0x00008cc0 ldr r0, [pc, 0x300]                           |             r0 = *(0x8fc4);
    0x00008cc4 mov r2, r8                                    |             r2 = r8;
    0x00008cc8 mov r1, r6                                    |             r1 = r6;
    0x00008ccc add r0, pc, r0                                |             r0 = pc + r0;
    0x00008cd0 bl 0x7b24                                     |             fcn_00007b24 ();
                                                             |         }
    0x00008cd4 ldr r3, [sp, 0x18]                            |         r3 = var_18h;
    0x00008cd8 ldrd r2, r3, [r3, -8]                         |         __asm ("ldrd r2, r3, [r3, -8]");
    0x00008cdc cmp r3, 0                                     |         
    0x00008ce0 cmpeq r2, 1                                   |         __asm ("cmpeq r2, 1");
                                                             |         if (r3 >= 0) {
    0x00008ce4 bls 0x8d10                                    |             
    0x00008ce8 ldr r2, [sp, 0x14]                            |             r2 = var_14h;
    0x00008cec mov r3, 0                                     |             r3 = 0;
    0x00008cf0 str r3, [sp, 8]                               |             var_8h = r3;
    0x00008cf4 str r2, [sp, 4]                               |             var_4h = r2;
    0x00008cf8 str r3, [sp]                                  |             *(sp) = r3;
    0x00008cfc mov r2, r8                                    |             r2 = r8;
    0x00008d00 ldr r3, [sp, 0x20]                            |             r3 = var_20h;
    0x00008d04 mov r1, r6                                    |             r1 = r6;
    0x00008d08 mov r0, fp                                    |             r0 = fp;
    0x00008d0c bl 0x7f3c                                     |             fcn_00007f3c (r0, r1, r2, r3, r4);
                                                             |         }
    0x00008d10 add r3, sp, 0x5c0                             |         r3 += var_5c0h;
    0x00008d14 mov r2, 0                                     |         r2 = 0;
    0x00008d18 add r3, r3, sl, lsl 2                         |         r3 += (sl << 2);
    0x00008d1c str r2, [r3, -0x578]                          |         *((r3 - 0x578)) = r2;
                                                             |     }
    0x00008d20 add r3, sp, 0x5c0                             |     r3 += var_5c0h;
    0x00008d24 add r3, r3, r4, lsl 2                         |     r3 += (r4 << 2);
    0x00008d28 ldr r2, [r3, -0x578]                          |     r2 = *((r3 - 0x578));
    0x00008d2c cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00008d30 beq 0x8dec                                    |         goto label_22;
                                                             |     }
    0x00008d34 mov r1, r6                                    |     r1 = r6;
    0x00008d38 ldr r0, [r3, -0x580]                          |     r0 = *((r3 - 0x580));
    0x00008d3c bl 0x5d34                                     |     r0 = strncmp (r0, r1, r2);
    0x00008d40 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00008d44 bne 0x8dec                                    |         goto label_22;
                                                             |     }
    0x00008d48 ldr r5, [fp]                                  |     r5 = *(fp);
    0x00008d4c add lr, sp, 0x50                              |     lr += s;
    0x00008d50 ldr ip, [r5]                                  |     ip = *(r5);
    0x00008d54 add lr, lr, r4, lsl 3                         |     lr += (r4 << 3);
                                                             |     do {
    0x00008d58 cmp fp, r5                                    |         
                                                             |         if (fp != r5) {
    0x00008d5c beq 0x8ddc                                    |             
    0x00008d60 ldrd r0, r1, [r5, 0x28]                       |             __asm ("ldrd r0, r1, [r5, 0x28]");
    0x00008d64 ldrd r2, r3, [lr]                             |             __asm ("ldrd r2, r3, [lr]");
    0x00008d68 cmp r1, r3                                    |             
    0x00008d6c cmpeq r0, r2                                  |             __asm ("cmpeq r0, r2");
                                                             |             if (r1 != r3) {
    0x00008d70 bne 0x8ec4                                    |                 goto label_23;
                                                             |             }
    0x00008d74 ldr r3, [r7]                                  |             r3 = *(r7);
    0x00008d78 tst r3, 0x20                                  |             
                                                             |             if ((r3 & 0x20) != 0) {
    0x00008d7c beq 0x8dc8                                    |                 
    0x00008d80 ldr r3, [pc, 0x15c]                           |                 r3 = *(0x8ee0);
    0x00008d84 ldr r3, [sb, r3]                              |                 r3 = *((sb + r3));
    0x00008d88 ldr r8, [r3]                                  |                 r8 = *(0x8ee0);
    0x00008d8c bl 0x58fc                                     |                 getpid ();
    0x00008d90 ldr r3, [pc, 0x234]                           |                 r3 = *(0x8fc8);
    0x00008d94 ldr r1, [pc, 0x234]                           |                 r1 = *(0x8fcc);
    0x00008d98 add r3, pc, r3                                |                 r3 = pc + r3;
    0x00008d9c str r3, [sp]                                  |                 *(sp) = r3;
    0x00008da0 ldr r3, [pc, 0x22c]                           |                 r3 = *(0x8fd0);
    0x00008da4 add r1, pc, r1                                |                 r1 = pc + r1;
    0x00008da8 add r3, pc, r3                                |                 r3 = pc + r3;
    0x00008dac mov r2, r0                                    |                 r2 = r0;
    0x00008db0 mov r0, r8                                    |                 r0 = r8;
    0x00008db4 bl 0x5c50                                     |                 fprintf (r0, r1, r2, r3);
    0x00008db8 ldr r0, [pc, 0x218]                           |                 r0 = *(0x8fd4);
    0x00008dbc ldr r1, [r5, 0x14]                            |                 r1 = *((r5 + 0x14));
    0x00008dc0 add r0, pc, r0                                |                 r0 = pc + r0;
    0x00008dc4 bl 0x7b24                                     |                 fcn_00007b24 ();
                                                             |             }
    0x00008dc8 mov r0, r5                                    |             r0 = r5;
    0x00008dcc bl 0x7738                                     |             fcn_00007738 (r0);
    0x00008dd0 ldr r3, [fp, 0x18]                            |             r3 = *(arg_18h);
    0x00008dd4 orr r3, r3, 4                                 |             r3 |= 4;
    0x00008dd8 str r3, [fp, 0x18]                            |             *(arg_18h) = r3;
                                                             |         }
    0x00008ddc add r3, sp, 0x5c0                             |         r3 += var_5c0h;
    0x00008de0 mov r2, 0                                     |         r2 = 0;
    0x00008de4 add r3, r3, r4, lsl 2                         |         r3 += (r4 << 2);
    0x00008de8 str r2, [r3, -0x578]                          |         *((r3 - 0x578)) = r2;
                                                             | label_22:
    0x00008dec lsl r5, r4, 2                                 |         r5 = r4 << 2;
    0x00008df0 add r3, sp, 0x5c0                             |         r3 += var_5c0h;
    0x00008df4 add r3, r3, r5                                |         r3 += r5;
    0x00008df8 ldr r2, [r3, -0x578]                          |         r2 = *((r3 - 0x578));
    0x00008dfc cmp r2, 0                                     |         
                                                             |         if (r2 != 0) {
    0x00008e00 beq 0x8ebc                                    |             
    0x00008e04 ldr r8, [r3, -0x580]                          |             r8 = *((r3 - 0x580));
    0x00008e08 mov r1, r6                                    |             r1 = r6;
    0x00008e0c mov r0, r8                                    |             r0 = r8;
    0x00008e10 bl 0x5d34                                     |             r0 = strncmp (r0, r1, r2);
    0x00008e14 cmp r0, 0                                     |             
                                                             |             if (r0 == 0) {
    0x00008e18 beq 0x8ebc                                    |                 goto label_21;
                                                             |             }
    0x00008e1c add r3, sp, 0x50                              |             r3 += s;
    0x00008e20 add r2, r3, r4, lsl 3                         |             r2 = r3 + (r4 << 3);
    0x00008e24 ldr r4, [r3, r4, lsl 3]                       |             offset_1 = r4 << 3;
                                                             |             r4 = *((r3 + offset_1));
    0x00008e28 ldr r3, [r2, 4]                               |             r3 = *((r2 + 4));
    0x00008e2c str r3, [sp, 0x20]                            |             var_20h = r3;
    0x00008e30 ldr r3, [r7]                                  |             r3 = *(r7);
    0x00008e34 tst r3, 0x20                                  |             
                                                             |             if ((r3 & 0x20) != 0) {
    0x00008e38 beq 0x8e88                                    |                 
    0x00008e3c ldr r3, [pc, 0xa0]                            |                 r3 = *(0x8ee0);
    0x00008e40 ldr r3, [sb, r3]                              |                 r3 = *((sb + r3));
    0x00008e44 ldr r7, [r3]                                  |                 r7 = *(0x8ee0);
    0x00008e48 bl 0x58fc                                     |                 getpid ();
    0x00008e4c ldr r3, [pc, 0x188]                           |                 r3 = *(0x8fd8);
    0x00008e50 ldr r1, [pc, 0x188]                           |                 r1 = *(0x8fdc);
    0x00008e54 add r3, pc, r3                                |                 r3 = pc + r3;
    0x00008e58 str r3, [sp]                                  |                 *(sp) = r3;
    0x00008e5c ldr r3, [pc, 0x180]                           |                 r3 = *(0x8fe0);
    0x00008e60 add r1, pc, r1                                |                 r1 = pc + r1;
    0x00008e64 add r3, pc, r3                                |                 r3 = pc + r3;
    0x00008e68 mov r2, r0                                    |                 r2 = r0;
    0x00008e6c mov r0, r7                                    |                 r0 = r7;
    0x00008e70 bl 0x5c50                                     |                 fprintf (r0, r1, r2, r3);
    0x00008e74 ldr r0, [pc, 0x16c]                           |                 r0 = *(0x8fe4);
    0x00008e78 mov r2, r4                                    |                 r2 = r4;
    0x00008e7c mov r1, r8                                    |                 r1 = r8;
    0x00008e80 add r0, pc, r0                                |                 r0 = pc + r0;
    0x00008e84 bl 0x7b24                                     |                 fcn_00007b24 ();
                                                             |             }
    0x00008e88 ldr r3, [sp, 0x14]                            |             r3 = var_14h;
    0x00008e8c mov r7, 0                                     |             r7 = 0;
    0x00008e90 str r3, [sp, 4]                               |             var_4h = r3;
    0x00008e94 str r7, [sp, 8]                               |             var_8h = r7;
    0x00008e98 ldr r3, [sp, 0x20]                            |             r3 = var_20h;
    0x00008e9c str r7, [sp]                                  |             *(sp) = r7;
    0x00008ea0 mov r2, r4                                    |             r2 = r4;
    0x00008ea4 mov r1, r8                                    |             r1 = r8;
    0x00008ea8 mov r0, fp                                    |             r0 = fp;
    0x00008eac bl 0x7f3c                                     |             fcn_00007f3c (r0, r1, r2, r3, r4);
    0x00008eb0 add r3, sp, 0x5c0                             |             r3 += var_5c0h;
    0x00008eb4 add r5, r3, r5                                |             r5 = r3 + r5;
    0x00008eb8 str r7, [r5, -0x578]                          |             *((r5 - 0x578)) = r7;
                                                             |         }
                                                             | label_21:
    0x00008ebc mov r4, sl                                    |         r4 = sl;
    0x00008ec0 b 0x8728                                      |         goto label_8;
                                                             | label_23:
    0x00008ec4 mov r5, ip                                    |         r5 = ip;
    0x00008ec8 ldr ip, [ip]                                  |         ip = *(ip);
    0x00008ecc b 0x8d58                                      |         
                                                             |     } 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/lib/libblkid.so.1.1.0 @ 0xf258 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0000f258 ()                                      | void fcn_0000f258 (int32_t arg_0h, uint32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_8h;
                                                                 |     void * ptr;
                                                                 |     int32_t var_10h;
                                                                 |     char * format;
                                                                 |     char * var_18h;
                                                                 |     char * var_1ch;
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_30h;
                                                                 |     int32_t var_8ch;
                                                                 |     r0 = arg1;
    0x0000f258 ldr r3, [r0]                                      |     r3 = *(r0);
    0x0000f25c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000f260 ldr r6, [pc, 0x970]                               |     r6 = *(0xfbd4);
    0x0000f264 cmp r0, r3                                        |     
    0x0000f268 add r6, pc, r6                                    |     r6 = pc + r6;
    0x0000f26c sub sp, sp, 0x8c                                  |     
                                                                 |     if (r0 != r3) {
    0x0000f270 beq 0xf284                                        |         
    0x0000f274 ldr r3, [r0, 0x18]                                |         r3 = *(arg_0hx18);
    0x0000f278 mov sl, r0                                        |         sl = r0;
    0x0000f27c tst r3, 4                                         |         
                                                                 |         if ((r3 & 4) != 0) {
    0x0000f280 bne 0xf2e8                                        |             goto label_16;
                                                                 |         }
                                                                 |     }
    0x0000f284 ldr r3, [pc, 0x950]                               |     
    0x0000f288 ldr r3, [r6, r3]                                  |     r3 = *((r6 + r3));
    0x0000f28c ldr r3, [r3]                                      |     r3 = *(0xfbd8);
    0x0000f290 tst r3, 0x800                                     |     
    0x0000f294 bne 0xf2a0                                        |     
                                                                 |     while (1) {
                                                                 | label_0:
    0x0000f298 mov fp, 0                                         |         
    0x0000f29c b 0xf3d4                                          |         goto label_1;
    0x0000f2a0 ldr r3, [pc, 0x938]                               |         r3 = *(0xfbdc);
    0x0000f2a4 ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0000f2a8 ldr r4, [r3]                                      |         r4 = *(0xfbdc);
    0x0000f2ac bl 0x58fc                                         |         getpid ();
    0x0000f2b0 ldr r3, [pc, 0x92c]                               |         r3 = *(0xfbe0);
    0x0000f2b4 ldr r1, [pc, 0x92c]                               |         r1 = *(0xfbe4);
    0x0000f2b8 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000f2bc str r3, [sp]                                      |         *(sp) = r3;
    0x0000f2c0 ldr r3, [pc, 0x924]                               |         r3 = *(0xfbe8);
    0x0000f2c4 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000f2c8 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000f2cc mov r2, r0                                        |         r2 = r0;
    0x0000f2d0 mov r0, r4                                        |         r0 = r4;
    0x0000f2d4 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3);
    0x0000f2d8 ldr r0, [pc, 0x910]                               |         r0 = *(0xfbec);
    0x0000f2dc add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000f2e0 bl 0xf1cc                                         |         fcn_0000f1cc ();
    0x0000f2e4 b 0xf298                                          |         
                                                                 |     }
                                                                 | label_16:
    0x0000f2e8 ldr r5, [r0, 0x1c]                                |     r5 = *(arg_0hx1c);
    0x0000f2ec cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0000f2f0 bne 0xf308                                        |         
    0x0000f2f4 mov r0, r5                                        |         r0 = r5;
    0x0000f2f8 bl 0x6a04                                         |         r0 = fcn_00006a04 (r0);
    0x0000f2fc subs r5, r0, 0                                    |         r5 = r0 - 0;
                                                                 |         if (r5 != r0) {
    0x0000f300 mvneq fp, 0x15                                    |             
                                                                 |         }
                                                                 |         if (r5 == r0) {
    0x0000f304 beq 0xf3d4                                        |             goto label_1;
                                                                 |         }
                                                                 |     }
    0x0000f308 ldr r1, [pc, 0x8e4]                               |     r1 = *(0xfbf0);
    0x0000f30c mov r2, 0xb                                       |     r2 = 0xb;
    0x0000f310 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000f314 mov r0, r5                                        |     r0 = r5;
    0x0000f318 bl 0x5d34                                         |     strncmp (r0, r1, r2);
    0x0000f31c ldr r3, [pc, 0x8b8]                               |     r3 = *(0xfbd8);
    0x0000f320 add r7, sp, 0x20                                  |     r7 += var_20h;
    0x0000f324 ldr sb, [r6, r3]                                  |     sb = *((r6 + r3));
    0x0000f328 subs fp, r0, 0                                    |     
                                                                 |     if (fp != r0) {
    0x0000f32c bne 0xf3e0                                        |         goto label_17;
                                                                 |     }
    0x0000f330 ldr r4, [pc, 0x8c0]                               |     r4 = *(0xfbf4);
    0x0000f334 mov r1, r7                                        |     r1 = r7;
    0x0000f338 add r4, pc, r4                                    |     r4 = pc + r4;
    0x0000f33c mov r0, r4                                        |     r0 = r4;
    0x0000f340 bl 0x5800                                         |     r0 = stat64 ();
    0x0000f344 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000f348 beq 0xf3e0                                        |         goto label_17;
                                                                 |     }
    0x0000f34c bl 0x60ac                                         |     r0 = errno_location ();
    0x0000f350 ldr r3, [r0]                                      |     r3 = *(r0);
    0x0000f354 mov r8, r0                                        |     r8 = r0;
    0x0000f358 cmp r3, 2                                         |     
                                                                 |     if (r3 != 2) {
    0x0000f35c bne 0xf3e0                                        |         goto label_17;
                                                                 |     }
    0x0000f360 ldr r1, [pc, 0x894]                               |     r1 = *(0xfbf8);
    0x0000f364 mov r0, r4                                        |     r0 = r4;
    0x0000f368 bl 0x61cc                                         |     r0 = mkdir ();
    0x0000f36c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000f370 beq 0xf3e0                                        |         goto label_17;
                                                                 |     }
    0x0000f374 ldr r3, [r8]                                      |     r3 = *(r8);
    0x0000f378 cmp r3, 0x11                                      |     
                                                                 |     if (r3 == 0x11) {
    0x0000f37c beq 0xf3e0                                        |         goto label_17;
                                                                 |     }
    0x0000f380 ldr r3, [sb]                                      |     r3 = *(sb);
    0x0000f384 tst r3, 0x800                                     |     
                                                                 |     if ((r3 & 0x800) == 0) {
    0x0000f388 beq 0xf298                                        |         goto label_0;
                                                                 |     }
    0x0000f38c ldr r3, [pc, 0x84c]                               |     r3 = *(0xfbdc);
    0x0000f390 ldr r3, [r6, r3]                                  |     r3 = *((r6 + r3));
    0x0000f394 ldr r5, [r3]                                      |     r5 = *(0xfbdc);
    0x0000f398 bl 0x58fc                                         |     getpid ();
    0x0000f39c ldr r3, [pc, 0x85c]                               |     r3 = *(0xfbfc);
    0x0000f3a0 ldr r1, [pc, 0x85c]                               |     r1 = *(0xfc00);
    0x0000f3a4 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000f3a8 str r3, [sp]                                      |     *(sp) = r3;
    0x0000f3ac ldr r3, [pc, 0x854]                               |     r3 = *(0xfc04);
    0x0000f3b0 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000f3b4 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000f3b8 mov r2, r0                                        |     r2 = r0;
    0x0000f3bc mov r0, r5                                        |     r0 = r5;
    0x0000f3c0 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3);
    0x0000f3c4 ldr r0, [pc, 0x840]                               |     r0 = *(0xfc08);
    0x0000f3c8 mov r1, r4                                        |     r1 = r4;
    0x0000f3cc add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000f3d0 bl 0xf1cc                                         |     fcn_0000f1cc ();
                                                                 | label_1:
    0x0000f3d4 mov r0, fp                                        |     r0 = fp;
    0x0000f3d8 add sp, sp, 0x8c                                  |     
    0x0000f3dc pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |     
                                                                 | label_17:
    0x0000f3e0 mov r1, r7                                        |     r1 = r7;
    0x0000f3e4 mov r0, r5                                        |     r0 = r5;
    0x0000f3e8 bl 0x5800                                         |     r0 = stat64 ();
    0x0000f3ec subs fp, r0, 0                                    |     
                                                                 |     if (fp >= r0) {
    0x0000f3f0 bge 0xf428                                        |         goto label_18;
                                                                 |     }
    0x0000f3f4 bl 0x60ac                                         |     r0 = errno_location ();
    0x0000f3f8 ldr r3, [r0]                                      |     r3 = *(r0);
    0x0000f3fc cmp r3, 2                                         |     
                                                                 |     if (r3 != 2) {
    0x0000f400 bne 0xf440                                        |         goto label_19;
                                                                 |     }
                                                                 |     do {
                                                                 | label_13:
    0x0000f404 mov r8, 0                                         |         r8 = 0;
                                                                 | label_14:
    0x0000f408 ldr r1, [pc, 0x800]                               |         r1 = *(0xfc0c);
    0x0000f40c mov r0, r5                                        |         r0 = r5;
    0x0000f410 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000f414 bl 0x6238                                         |         fopen64 ();
    0x0000f418 str r8, [sp, 0xc]                                 |         ptr = r8;
    0x0000f41c mov r8, r5                                        |         r8 = r5;
    0x0000f420 mov r4, r0                                        |         r4 = r0;
    0x0000f424 b 0xf4b4                                          |         goto label_20;
                                                                 | label_18:
    0x0000f428 bne 0xf404                                        |         
                                                                 |     } while (r3 != 2);
    0x0000f42c mov r1, 2                                         |     r1 = 2;
    0x0000f430 mov r0, r5                                        |     r0 = r5;
    0x0000f434 bl 0x6064                                         |     r0 = access (r0, r1);
    0x0000f438 cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x0000f43c bge 0xfb20                                        |         goto label_21;
                                                                 |     }
                                                                 | label_19:
    0x0000f440 ldr r3, [sb]                                      |     r3 = *(sb);
    0x0000f444 tst r3, 0x800                                     |     
                                                                 |     if ((r3 & 0x800) == 0) {
    0x0000f448 beq 0xf298                                        |         goto label_0;
                                                                 |     }
    0x0000f44c ldr r3, [pc, 0x78c]                               |     r3 = *(0xfbdc);
    0x0000f450 ldr r3, [r6, r3]                                  |     r3 = *((r6 + r3));
    0x0000f454 ldr r4, [r3]                                      |     r4 = *(0xfbdc);
    0x0000f458 bl 0x58fc                                         |     getpid ();
    0x0000f45c ldr r3, [pc, 0x7b0]                               |     r3 = *(0xfc10);
    0x0000f460 ldr r1, [pc, 0x7b0]                               |     r1 = *(0xfc14);
    0x0000f464 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000f468 str r3, [sp]                                      |     *(sp) = r3;
    0x0000f46c ldr r3, [pc, 0x7a8]                               |     r3 = *(0xfc18);
    0x0000f470 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000f474 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000f478 mov r2, r0                                        |     r2 = r0;
    0x0000f47c mov r0, r4                                        |     r0 = r4;
    0x0000f480 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3);
    0x0000f484 ldr r0, [pc, 0x794]                               |     r0 = *(0xfc1c);
    0x0000f488 mov r1, r5                                        |     r1 = r5;
    0x0000f48c add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000f490 bl 0xf1cc                                         |     fcn_0000f1cc ();
    0x0000f494 b 0xf298                                          |     goto label_0;
                                                                 | label_15:
    0x0000f498 ldr r1, [pc, 0x784]                               |     r1 = *(0xfc20);
    0x0000f49c mov r0, r7                                        |     r0 = r7;
    0x0000f4a0 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000f4a4 bl 0x5ddc                                         |     r0 = fdopen ();
    0x0000f4a8 subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 == r0) {
    0x0000f4ac strne r8, [sp, 0xc]                               |         ptr = r8;
                                                                 |     }
                                                                 |     if (r4 == r0) {
    0x0000f4b0 beq 0xfbcc                                        |         goto label_22;
                                                                 |     }
                                                                 | label_20:
    0x0000f4b4 ldr r3, [sb]                                      |     r3 = *(sb);
    0x0000f4b8 tst r3, 0x800                                     |     
                                                                 |     if ((r3 & 0x800) != 0) {
    0x0000f4bc beq 0xf50c                                        |         
    0x0000f4c0 ldr r3, [pc, 0x718]                               |         r3 = *(0xfbdc);
    0x0000f4c4 ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0000f4c8 ldr r7, [r3]                                      |         r7 = *(0xfbdc);
    0x0000f4cc bl 0x58fc                                         |         getpid ();
    0x0000f4d0 ldr r3, [pc, 0x750]                               |         r3 = *(0xfc24);
    0x0000f4d4 ldr r1, [pc, 0x750]                               |         r1 = *(0xfc28);
    0x0000f4d8 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000f4dc str r3, [sp]                                      |         *(sp) = r3;
    0x0000f4e0 ldr r3, [pc, 0x748]                               |         r3 = *(0xfc2c);
    0x0000f4e4 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000f4e8 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000f4ec mov r2, r0                                        |         r2 = r0;
    0x0000f4f0 mov r0, r7                                        |         r0 = r7;
    0x0000f4f4 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3);
    0x0000f4f8 ldr r0, [pc, 0x734]                               |         r0 = *(0xfc30);
    0x0000f4fc mov r2, r8                                        |         r2 = r8;
    0x0000f500 mov r1, r5                                        |         r1 = r5;
    0x0000f504 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000f508 bl 0xf1cc                                         |         fcn_0000f1cc ();
                                                                 |     }
    0x0000f50c cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x0000f510 bne 0xf53c                                        |         goto label_23;
                                                                 |     }
    0x0000f514 bl 0x60ac                                         |     r0 = errno_location ();
    0x0000f518 ldr fp, [r0]                                      |     fp = *(r0);
                                                                 | label_2:
    0x0000f51c ldr r0, [sp, 0xc]                                 |     r0 = ptr;
    0x0000f520 bl 0x6220                                         |     free (r0);
    0x0000f524 ldr r3, [sl, 0x1c]                                |     r3 = *((sl + 0x1c));
    0x0000f528 cmp r3, r5                                        |     
                                                                 |     if (r3 == r5) {
    0x0000f52c beq 0xf3d4                                        |         goto label_1;
                                                                 |     }
    0x0000f530 mov r0, r5                                        |     r0 = r5;
    0x0000f534 bl 0x6220                                         |     free (r0);
    0x0000f538 b 0xf3d4                                          |     goto label_1;
                                                                 | label_23:
    0x0000f53c ldr r3, [pc, 0x6f4]                               |     r3 = *(0xfc34);
    0x0000f540 ldr r7, [sl]                                      |     r7 = *(sl);
    0x0000f544 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000f548 str r3, [sp, 0x14]                                |     format = r3;
    0x0000f54c ldr r3, [pc, 0x6e8]                               |     r3 = *(0xfc38);
    0x0000f550 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000f554 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0000f558 ldr r3, [pc, 0x6e0]                               |     r3 = *(0xfc3c);
    0x0000f55c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000f560 str r3, [sp, 0x1c]                                |     var_1ch = r3;
                                                                 | label_3:
    0x0000f564 cmp sl, r7                                        |     
                                                                 |     if (sl != r7) {
    0x0000f568 bne 0xf640                                        |         goto label_24;
                                                                 |     }
    0x0000f56c cmp fp, 0                                         |     
                                                                 |     if (fp < 0) {
    0x0000f570 ldrge r3, [sl, 0x18]                              |         r3 = *((sl + 0x18));
                                                                 |     }
    0x0000f574 mov r0, r4                                        |     r0 = r4;
    0x0000f578 bicge r3, r3, 4                                   |     __asm ("bicge r3, r3, 4");
                                                                 |     if (fp < 0) {
    0x0000f57c strge r3, [sl, 0x18]                              |         *((sl + 0x18)) = r3;
                                                                 |     }
                                                                 |     if (fp < 0) {
    0x0000f580 movge fp, 1                                       |         
                                                                 |     }
    0x0000f584 bl 0x5824                                         |     r0 = fpending ();
    0x0000f588 mov r7, r0                                        |     r7 = r0;
    0x0000f58c mov r0, r4                                        |     r0 = r4;
    0x0000f590 bl 0x5cf8                                         |     ferror (r0);
    0x0000f594 str r0, [sp, 8]                                   |     var_8h = r0;
    0x0000f598 mov r0, r4                                        |     r0 = r4;
    0x0000f59c bl 0x5e90                                         |     fclose (r0);
    0x0000f5a0 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x0000f5a4 cmp r3, 0                                         |     
    0x0000f5a8 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r3 != 0) {
    0x0000f5ac bne 0xf940                                        |         goto label_25;
                                                                 |     }
    0x0000f5b0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000f5b4 beq 0xf5d0                                        |         
    0x0000f5b8 cmp r7, 0                                         |         
                                                                 |         if (r7 != 0) {
    0x0000f5bc bne 0xf958                                        |             goto label_26;
                                                                 |         }
    0x0000f5c0 bl 0x60ac                                         |         r0 = errno_location ();
    0x0000f5c4 ldr r3, [r0]                                      |         r3 = *(r0);
    0x0000f5c8 cmp r3, 9                                         |         
                                                                 |         if (r3 != 9) {
    0x0000f5cc bne 0xf958                                        |             goto label_26;
                                                                 |         }
                                                                 |     }
                                                                 | label_11:
    0x0000f5d0 cmp r8, r5                                        |     
                                                                 |     if (r8 == r5) {
    0x0000f5d4 beq 0xf51c                                        |         goto label_2;
                                                                 |     }
    0x0000f5d8 cmp fp, 0                                         |     
                                                                 |     if (fp >= 0) {
    0x0000f5dc bge 0xf9b0                                        |         goto label_27;
                                                                 |     }
    0x0000f5e0 mov r0, r8                                        |     r0 = r8;
    0x0000f5e4 bl 0x5d4c                                         |     unlink (r0);
    0x0000f5e8 ldr r3, [sb]                                      |     r3 = *(sb);
    0x0000f5ec tst r3, 0x800                                     |     
                                                                 |     if ((r3 & 0x800) == 0) {
    0x0000f5f0 beq 0xf51c                                        |         goto label_2;
                                                                 |     }
    0x0000f5f4 ldr r3, [pc, 0x5e4]                               |     r3 = *(0xfbdc);
    0x0000f5f8 ldr r3, [r6, r3]                                  |     r3 = *((r6 + r3));
    0x0000f5fc ldr r4, [r3]                                      |     r4 = *(0xfbdc);
    0x0000f600 bl 0x58fc                                         |     getpid ();
    0x0000f604 ldr r3, [pc, 0x638]                               |     r3 = *(0xfc40);
    0x0000f608 ldr r1, [pc, 0x638]                               |     r1 = *(0xfc44);
    0x0000f60c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000f610 str r3, [sp]                                      |     *(sp) = r3;
    0x0000f614 ldr r3, [pc, 0x630]                               |     r3 = *(0xfc48);
    0x0000f618 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000f61c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000f620 mov r2, r0                                        |     r2 = r0;
    0x0000f624 mov r0, r4                                        |     r0 = r4;
    0x0000f628 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3);
    0x0000f62c ldr r0, [pc, 0x61c]                               |     r0 = *(0xfc4c);
    0x0000f630 mov r1, r8                                        |     r1 = r8;
    0x0000f634 add r0, pc, r0                                    |     r0 = pc + r0;
                                                                 | label_12:
    0x0000f638 bl 0xf1cc                                         |     fcn_0000f1cc ();
    0x0000f63c b 0xf51c                                          |     goto label_2;
                                                                 | label_24:
    0x0000f640 ldr r3, [r7, 0x1c]                                |     r3 = *((r7 + 0x1c));
    0x0000f644 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000f648 beq 0xf738                                        |         goto label_28;
                                                                 |     }
    0x0000f64c ldr r3, [r7, 0x38]                                |     r3 = *((r7 + 0x38));
    0x0000f650 ands r3, r3, 8                                    |     r3 &= 8;
                                                                 |     if (r3 != r3) {
    0x0000f654 bne 0xf738                                        |         goto label_28;
                                                                 |     }
    0x0000f658 ldr r2, [r7, 0x14]                                |     r2 = *((r7 + 0x14));
    0x0000f65c ldrsb r2, [r2]                                    |     r2 = *(r2);
    0x0000f660 cmp r2, 0x2f                                      |     
                                                                 |     if (r2 == 0x2f) {
    0x0000f664 movne fp, r3                                      |         
                                                                 |     }
                                                                 |     if (r2 != 0x2f) {
    0x0000f668 bne 0xf738                                        |         goto label_28;
                                                                 |     }
    0x0000f66c ldr r3, [sb]                                      |     r3 = *(sb);
    0x0000f670 tst r3, 0x800                                     |     
                                                                 |     if ((r3 & 0x800) != 0) {
    0x0000f674 beq 0xf6d0                                        |         
    0x0000f678 ldr r3, [pc, 0x560]                               |         r3 = *(0xfbdc);
    0x0000f67c ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0000f680 ldr fp, [r3]                                      |         fp = *(0xfbdc);
    0x0000f684 bl 0x58fc                                         |         getpid ();
    0x0000f688 ldr r3, [pc, 0x5c4]                               |         r3 = *(0xfc50);
    0x0000f68c ldr r1, [pc, 0x5c4]                               |         r1 = *(0xfc54);
    0x0000f690 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000f694 str r3, [sp]                                      |         *(sp) = r3;
    0x0000f698 ldr r3, [pc, 0x5bc]                               |         r3 = *(0xfc58);
    0x0000f69c add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000f6a0 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000f6a4 mov r2, r0                                        |         r2 = r0;
    0x0000f6a8 mov r0, fp                                        |         r0 = fp;
    0x0000f6ac bl 0x5c50                                         |         fprintf (r0, r1, r2, r3);
    0x0000f6b0 ldr r2, [r7, 0x1c]                                |         r2 = *((r7 + 0x1c));
    0x0000f6b4 ldr r1, [r7, 0x14]                                |         r1 = *((r7 + 0x14));
    0x0000f6b8 cmp r2, 0                                         |         
                                                                 |         if (r2 != 0) {
    0x0000f6bc ldreq r2, [pc, 0x59c]                             |             r2 = *((pc + 0x59c));
                                                                 |         }
                                                                 |         if (r2 != 0) {
    0x0000f6c0 addeq r2, pc, r2                                  |             r2 = pc + r2;
                                                                 |         }
    0x0000f6c4 ldr r0, [pc, 0x598]                               |         r0 = *(0xfc60);
    0x0000f6c8 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000f6cc bl 0xf1cc                                         |         fcn_0000f1cc ();
                                                                 |     }
    0x0000f6d0 ldr r3, [r7, 0x34]                                |     r3 = *((r7 + 0x34));
    0x0000f6d4 ldr r1, [sp, 0x14]                                |     r1 = format;
    0x0000f6d8 str r3, [sp]                                      |     *(sp) = r3;
    0x0000f6dc mov r0, r4                                        |     r0 = r4;
    0x0000f6e0 ldr r2, [r7, 0x28]                                |     r2 = *((r7 + 0x28));
    0x0000f6e4 ldr r3, [r7, 0x30]                                |     r3 = *((r7 + 0x30));
    0x0000f6e8 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3);
    0x0000f6ec ldr r2, [r7, 0x20]                                |     r2 = *((r7 + 0x20));
    0x0000f6f0 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x0000f6f4 beq 0xf704                                        |         
    0x0000f6f8 ldr r1, [sp, 0x1c]                                |         r1 = var_1ch;
    0x0000f6fc mov r0, r4                                        |         r0 = r4;
    0x0000f700 bl 0x5c50                                         |         fprintf (r0, r1);
                                                                 |     }
    0x0000f704 mov r3, r7                                        |     r3 = r7;
    0x0000f708 ldr r2, [r3, 8]!                                  |     r2 = *((r3 += 8));
    0x0000f70c str r2, [sp, 8]                                   |     var_8h = r2;
    0x0000f710 str r3, [sp, 0x10]                                |     var_10h = r3;
                                                                 |     do {
    0x0000f714 ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x0000f718 ldr r2, [sp, 0x10]                                |         r2 = var_10h;
    0x0000f71c cmp r3, r2                                        |         
                                                                 |         if (r3 == r2) {
    0x0000f720 bne 0xf740                                        |             
    0x0000f724 ldr r2, [r7, 0x14]                                |             r2 = *((r7 + 0x14));
    0x0000f728 ldr r1, [sp, 0x18]                                |             r1 = var_18h;
    0x0000f72c mov r0, r4                                        |             r0 = r4;
    0x0000f730 bl 0x5c50                                         |             fprintf (r0, r1, r2);
    0x0000f734 mov fp, 0                                         |             
                                                                 | label_28:
    0x0000f738 ldr r7, [r7]                                      |             r7 = *(r7);
    0x0000f73c b 0xf564                                          |             goto label_3;
                                                                 |         }
    0x0000f740 ldr r3, [r4, 0x34]                                |         r3 = *((r4 + 0x34));
    0x0000f744 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0000f748 beq 0xf83c                                        |             goto label_29;
                                                                 |         }
    0x0000f74c ldr r3, [r4, 0x10]                                |         r3 = *((r4 + 0x10));
    0x0000f750 ldr r2, [r4, 0x1c]                                |         r2 = *((r4 + 0x1c));
    0x0000f754 cmp r3, r2                                        |         
                                                                 |         if (r3 >= r2) {
    0x0000f758 bhs 0xf82c                                        |             goto label_30;
                                                                 |         }
    0x0000f75c add r2, r3, 1                                     |         r2 = r3 + 1;
    0x0000f760 str r2, [r4, 0x10]                                |         *((r4 + 0x10)) = r2;
    0x0000f764 mov r2, 0x20                                      |         r2 = 0x20;
    0x0000f768 strb r2, [r3]                                     |         *(r3) = r2;
                                                                 | label_4:
    0x0000f76c ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x0000f770 mov r1, r4                                        |         r1 = r4;
    0x0000f774 ldr r0, [r3, 0x10]                                |         r0 = *((r3 + 0x10));
    0x0000f778 bl 0x6154                                         |         fputs (r0, r1);
    0x0000f77c ldr r3, [r4, 0x34]                                |         r3 = *((r4 + 0x34));
    0x0000f780 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0000f784 beq 0xf85c                                        |             goto label_31;
                                                                 |         }
    0x0000f788 ldr r3, [r4, 0x10]                                |         r3 = *((r4 + 0x10));
    0x0000f78c ldr r2, [r4, 0x1c]                                |         r2 = *((r4 + 0x1c));
    0x0000f790 cmp r3, r2                                        |         
                                                                 |         if (r3 >= r2) {
    0x0000f794 bhs 0xf84c                                        |             goto label_32;
                                                                 |         }
    0x0000f798 add r2, r3, 1                                     |         r2 = r3 + 1;
    0x0000f79c str r2, [r4, 0x10]                                |         *((r4 + 0x10)) = r2;
    0x0000f7a0 mov r2, 0x3d                                      |         r2 = 0x3d;
    0x0000f7a4 strb r2, [r3]                                     |         *(r3) = r2;
                                                                 | label_5:
    0x0000f7a8 ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x0000f7ac ldr fp, [r3, 0x14]                                |         fp = *((r3 + 0x14));
    0x0000f7b0 ldr r3, [r4, 0x34]                                |         r3 = *((r4 + 0x34));
    0x0000f7b4 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0000f7b8 beq 0xf87c                                        |             goto label_33;
                                                                 |         }
    0x0000f7bc ldr r3, [r4, 0x10]                                |         r3 = *((r4 + 0x10));
    0x0000f7c0 ldr r2, [r4, 0x1c]                                |         r2 = *((r4 + 0x1c));
    0x0000f7c4 cmp r3, r2                                        |         
                                                                 |         if (r3 >= r2) {
    0x0000f7c8 bhs 0xf86c                                        |             goto label_34;
                                                                 |         }
    0x0000f7cc add r2, r3, 1                                     |         r2 = r3 + 1;
    0x0000f7d0 str r2, [r4, 0x10]                                |         *((r4 + 0x10)) = r2;
    0x0000f7d4 mov r2, 0x22                                      |         r2 = 0x22;
    0x0000f7d8 strb r2, [r3]                                     |         *(r3) = r2;
                                                                 | label_6:
    0x0000f7dc cmp fp, 0                                         |         
    0x0000f7e0 ldr r2, [r4, 0x34]                                |         r2 = *((r4 + 0x34));
                                                                 |         if (fp != 0) {
    0x0000f7e4 beq 0xf7f4                                        |             
    0x0000f7e8 ldrsb r3, [fp]                                    |             r3 = *(fp);
    0x0000f7ec cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x0000f7f0 bne 0xf88c                                        |                 goto label_35;
                                                                 |             }
                                                                 |         }
    0x0000f7f4 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x0000f7f8 beq 0xf930                                        |             goto label_36;
                                                                 |         }
    0x0000f7fc ldr r3, [r4, 0x10]                                |         r3 = *((r4 + 0x10));
    0x0000f800 ldr r2, [r4, 0x1c]                                |         r2 = *((r4 + 0x1c));
    0x0000f804 cmp r3, r2                                        |         
                                                                 |         if (r3 >= r2) {
    0x0000f808 bhs 0xf920                                        |             goto label_37;
                                                                 |         }
    0x0000f80c add r2, r3, 1                                     |         r2 = r3 + 1;
    0x0000f810 str r2, [r4, 0x10]                                |         *((r4 + 0x10)) = r2;
    0x0000f814 mov r2, 0x22                                      |         r2 = 0x22;
    0x0000f818 strb r2, [r3]                                     |         *(r3) = r2;
                                                                 | label_10:
    0x0000f81c ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x0000f820 ldr r3, [r3]                                      |         r3 = *(r3);
    0x0000f824 str r3, [sp, 8]                                   |         var_8h = r3;
    0x0000f828 b 0xf714                                          |         
                                                                 |     } while (1);
                                                                 | label_30:
    0x0000f82c mov r1, r4                                        |     r1 = r4;
    0x0000f830 mov r0, 0x20                                      |     r0 = 0x20;
    0x0000f834 bl 0x622c                                         |     fputc_unlocked ();
    0x0000f838 b 0xf76c                                          |     goto label_4;
                                                                 | label_29:
    0x0000f83c mov r1, r4                                        |     r1 = r4;
    0x0000f840 mov r0, 0x20                                      |     r0 = 0x20;
    0x0000f844 bl 0x5ff8                                         |     fputc (r0, r1);
    0x0000f848 b 0xf76c                                          |     goto label_4;
                                                                 | label_32:
    0x0000f84c mov r1, r4                                        |     r1 = r4;
    0x0000f850 mov r0, 0x3d                                      |     r0 = 0x3d;
    0x0000f854 bl 0x622c                                         |     fputc_unlocked ();
    0x0000f858 b 0xf7a8                                          |     goto label_5;
                                                                 | label_31:
    0x0000f85c mov r1, r4                                        |     r1 = r4;
    0x0000f860 mov r0, 0x3d                                      |     r0 = 0x3d;
    0x0000f864 bl 0x5ff8                                         |     fputc (r0, r1);
    0x0000f868 b 0xf7a8                                          |     goto label_5;
                                                                 | label_34:
    0x0000f86c mov r1, r4                                        |     r1 = r4;
    0x0000f870 mov r0, 0x22                                      |     r0 = 0x22;
                                                                 | label_8:
    0x0000f874 bl 0x622c                                         |     fputc_unlocked ();
    0x0000f878 b 0xf7dc                                          |     goto label_6;
                                                                 | label_33:
    0x0000f87c mov r1, r4                                        |     r1 = r4;
    0x0000f880 mov r0, 0x22                                      |     r0 = 0x22;
                                                                 | label_9:
    0x0000f884 bl 0x5ff8                                         |     fputc (r0, r1);
    0x0000f888 b 0xf7dc                                          |     goto label_6;
                                                                 | label_35:
    0x0000f88c cmp r3, 0x5c                                      |     
    0x0000f890 cmpne r3, 0x22                                    |     __asm ("cmpne r3, 0x22");
                                                                 |     if (r3 != 0x5c) {
    0x0000f894 bne 0xf8c0                                        |         goto label_7;
                                                                 |     }
    0x0000f898 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0000f89c beq 0xf900                                        |         goto label_38;
                                                                 |     }
    0x0000f8a0 ldr r3, [r4, 0x10]                                |     r3 = *((r4 + 0x10));
    0x0000f8a4 ldr r2, [r4, 0x1c]                                |     r2 = *((r4 + 0x1c));
    0x0000f8a8 cmp r3, r2                                        |     
                                                                 |     if (r3 >= r2) {
    0x0000f8ac bhs 0xf8f0                                        |         goto label_39;
                                                                 |     }
    0x0000f8b0 add r2, r3, 1                                     |     r2 = r3 + 1;
    0x0000f8b4 str r2, [r4, 0x10]                                |     *((r4 + 0x10)) = r2;
    0x0000f8b8 mov r2, 0x5c                                      |     r2 = 0x5c;
    0x0000f8bc strb r2, [r3]                                     |     *(r3) = r2;
                                                                 |     do {
                                                                 | label_7:
    0x0000f8c0 ldr r3, [r4, 0x34]                                |         r3 = *((r4 + 0x34));
    0x0000f8c4 ldrsb r0, [fp], 1                                 |         r0 = *(fp);
                                                                 |         fp++;
    0x0000f8c8 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0000f8cc beq 0xf918                                        |             goto label_40;
                                                                 |         }
    0x0000f8d0 ldr r3, [r4, 0x10]                                |         r3 = *((r4 + 0x10));
    0x0000f8d4 ldr r2, [r4, 0x1c]                                |         r2 = *((r4 + 0x1c));
    0x0000f8d8 cmp r3, r2                                        |         
                                                                 |         if (r3 >= r2) {
    0x0000f8dc bhs 0xf910                                        |             goto label_41;
                                                                 |         }
    0x0000f8e0 add r2, r3, 1                                     |         r2 = r3 + 1;
    0x0000f8e4 str r2, [r4, 0x10]                                |         *((r4 + 0x10)) = r2;
    0x0000f8e8 strb r0, [r3]                                     |         *(r3) = r0;
    0x0000f8ec b 0xf7dc                                          |         goto label_6;
                                                                 | label_39:
    0x0000f8f0 mov r1, r4                                        |         r1 = r4;
    0x0000f8f4 mov r0, 0x5c                                      |         r0 = 0x5c;
    0x0000f8f8 bl 0x622c                                         |         fputc_unlocked ();
    0x0000f8fc b 0xf8c0                                          |         
                                                                 |     } while (1);
                                                                 | label_38:
    0x0000f900 mov r1, r4                                        |     r1 = r4;
    0x0000f904 mov r0, 0x5c                                      |     r0 = 0x5c;
    0x0000f908 bl 0x5ff8                                         |     fputc (r0, r1);
    0x0000f90c b 0xf8c0                                          |     goto label_7;
                                                                 | label_41:
    0x0000f910 mov r1, r4                                        |     r1 = r4;
    0x0000f914 b 0xf874                                          |     goto label_8;
                                                                 | label_40:
    0x0000f918 mov r1, r4                                        |     r1 = r4;
    0x0000f91c b 0xf884                                          |     goto label_9;
                                                                 | label_37:
    0x0000f920 mov r1, r4                                        |     r1 = r4;
    0x0000f924 mov r0, 0x22                                      |     r0 = 0x22;
    0x0000f928 bl 0x622c                                         |     fputc_unlocked ();
    0x0000f92c b 0xf81c                                          |     goto label_10;
                                                                 | label_36:
    0x0000f930 mov r1, r4                                        |     r1 = r4;
    0x0000f934 mov r0, 0x22                                      |     r0 = 0x22;
    0x0000f938 bl 0x5ff8                                         |     fputc (r0, r1);
    0x0000f93c b 0xf81c                                          |     goto label_10;
                                                                 | label_25:
    0x0000f940 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000f944 bne 0xf958                                        |         
    0x0000f948 bl 0x60ac                                         |         r0 = errno_location ();
    0x0000f94c ldr r3, [r0]                                      |         r3 = *(r0);
    0x0000f950 cmp r3, 0x20                                      |         
                                                                 |         if (r3 != 0x20) {
    0x0000f954 strne r4, [r0]                                    |             *(r0) = r4;
                                                                 |             goto label_26;
                                                                 |         }
                                                                 |     }
                                                                 | label_26:
    0x0000f958 ldr r3, [sb]                                      |     r3 = *(sb);
    0x0000f95c tst r3, 0x800                                     |     
                                                                 |     if ((r3 & 0x800) == 0) {
    0x0000f960 beq 0xf5d0                                        |         goto label_11;
                                                                 |     }
    0x0000f964 ldr r3, [pc, 0x274]                               |     r3 = *(0xfbdc);
    0x0000f968 ldr r3, [r6, r3]                                  |     r3 = *((r6 + r3));
    0x0000f96c ldr r4, [r3]                                      |     r4 = *(0xfbdc);
    0x0000f970 bl 0x58fc                                         |     getpid ();
    0x0000f974 ldr r3, [pc, 0x2ec]                               |     r3 = *(0xfc64);
    0x0000f978 ldr r1, [pc, 0x2ec]                               |     r1 = *(0xfc68);
    0x0000f97c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000f980 str r3, [sp]                                      |     *(sp) = r3;
    0x0000f984 ldr r3, [pc, 0x2e4]                               |     r3 = *(0xfc6c);
    0x0000f988 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000f98c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000f990 mov r2, r0                                        |     r2 = r0;
    0x0000f994 mov r0, r4                                        |     r0 = r4;
    0x0000f998 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3);
    0x0000f99c ldr r0, [pc, 0x2d0]                               |     r0 = *(0xfc70);
    0x0000f9a0 mov r1, r5                                        |     r1 = r5;
    0x0000f9a4 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000f9a8 bl 0xf1cc                                         |     fcn_0000f1cc ();
    0x0000f9ac b 0xf5d0                                          |     goto label_11;
                                                                 | label_27:
    0x0000f9b0 mov r0, r5                                        |     r0 = r5;
    0x0000f9b4 bl 0x6118                                         |     r0 = strlen (r0);
    0x0000f9b8 add r0, r0, 5                                     |     r0 += 5;
    0x0000f9bc bl 0x59f8                                         |     r0 = malloc (r0);
    0x0000f9c0 subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 != r0) {
    0x0000f9c4 beq 0xfa54                                        |         
    0x0000f9c8 ldr r1, [pc, 0x2a8]                               |         r1 = *(0xfc74);
    0x0000f9cc mov r2, r5                                        |         r2 = r5;
    0x0000f9d0 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000f9d4 bl 0x5f68                                         |         sprintf (r0, r1, r2)
    0x0000f9d8 mov r0, r4                                        |         r0 = r4;
    0x0000f9dc bl 0x5d4c                                         |         unlink (r0);
    0x0000f9e0 mov r1, r4                                        |         r1 = r4;
    0x0000f9e4 mov r0, r5                                        |         r0 = r5;
    0x0000f9e8 bl 0x60b8                                         |         r0 = link ();
    0x0000f9ec cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0000f9f0 beq 0xfa4c                                        |             
    0x0000f9f4 ldr r3, [sb]                                      |             r3 = *(sb);
    0x0000f9f8 tst r3, 0x800                                     |             
                                                                 |             if ((r3 & 0x800) == 0) {
    0x0000f9fc beq 0xfa4c                                        |                 goto label_42;
                                                                 |             }
    0x0000fa00 ldr r3, [pc, 0x1d8]                               |             r3 = *(0xfbdc);
    0x0000fa04 ldr r3, [r6, r3]                                  |             r3 = *((r6 + r3));
    0x0000fa08 ldr r7, [r3]                                      |             r7 = *(0xfbdc);
    0x0000fa0c bl 0x58fc                                         |             getpid ();
    0x0000fa10 ldr r3, [pc, 0x264]                               |             r3 = *(0xfc78);
    0x0000fa14 ldr r1, [pc, 0x264]                               |             r1 = *(0xfc7c);
    0x0000fa18 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000fa1c str r3, [sp]                                      |             *(sp) = r3;
    0x0000fa20 ldr r3, [pc, 0x25c]                               |             r3 = *(0xfc80);
    0x0000fa24 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000fa28 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000fa2c mov r2, r0                                        |             r2 = r0;
    0x0000fa30 mov r0, r7                                        |             r0 = r7;
    0x0000fa34 bl 0x5c50                                         |             fprintf (r0, r1, r2, r3);
    0x0000fa38 ldr r0, [pc, 0x248]                               |             r0 = *(0xfc84);
    0x0000fa3c mov r2, r4                                        |             r2 = r4;
    0x0000fa40 mov r1, r5                                        |             r1 = r5;
    0x0000fa44 add r0, pc, r0                                    |             r0 = pc + r0;
    0x0000fa48 bl 0xf1cc                                         |             fcn_0000f1cc ();
                                                                 |         }
                                                                 | label_42:
    0x0000fa4c mov r0, r4                                        |         r0 = r4;
    0x0000fa50 bl 0x6220                                         |         free (r0);
                                                                 |     }
    0x0000fa54 mov r1, r5                                        |     r1 = r5;
    0x0000fa58 mov r0, r8                                        |     r0 = r8;
    0x0000fa5c bl 0x5bb4                                         |     r0 = rename (r0, r1);
    0x0000fa60 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000fa64 beq 0xfacc                                        |         goto label_43;
                                                                 |     }
    0x0000fa68 bl 0x60ac                                         |     errno_location ();
    0x0000fa6c ldr r3, [sb]                                      |     r3 = *(sb);
    0x0000fa70 tst r3, 0x800                                     |     
    0x0000fa74 ldr fp, [r0]                                      |     fp = *(r0);
                                                                 |     if ((r3 & 0x800) == 0) {
    0x0000fa78 beq 0xf51c                                        |         goto label_2;
                                                                 |     }
    0x0000fa7c ldr r3, [pc, 0x15c]                               |     r3 = *(0xfbdc);
    0x0000fa80 ldr r3, [r6, r3]                                  |     r3 = *((r6 + r3));
    0x0000fa84 ldr r4, [r3]                                      |     r4 = *(0xfbdc);
    0x0000fa88 bl 0x58fc                                         |     getpid ();
    0x0000fa8c ldr r3, [pc, 0x1f8]                               |     r3 = *(0xfc88);
    0x0000fa90 ldr r1, [pc, 0x1f8]                               |     r1 = *(0xfc8c);
    0x0000fa94 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000fa98 str r3, [sp]                                      |     *(sp) = r3;
    0x0000fa9c ldr r3, [pc, 0x1f0]                               |     r3 = *(0xfc90);
    0x0000faa0 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000faa4 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000faa8 mov r2, r0                                        |     r2 = r0;
    0x0000faac mov r0, r4                                        |     r0 = r4;
    0x0000fab0 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3);
    0x0000fab4 ldr r0, [pc, 0x1dc]                               |     r0 = *(0xfc94);
    0x0000fab8 mov r2, r5                                        |     r2 = r5;
    0x0000fabc mov r1, r8                                        |     r1 = r8;
    0x0000fac0 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000fac4 bl 0xf1cc                                         |     fcn_0000f1cc ();
    0x0000fac8 b 0xf51c                                          |     goto label_2;
                                                                 | label_43:
    0x0000facc ldr r3, [sb]                                      |     r3 = *(sb);
    0x0000fad0 tst r3, 0x800                                     |     
                                                                 |     if ((r3 & 0x800) == 0) {
    0x0000fad4 beq 0xf51c                                        |         goto label_2;
                                                                 |     }
    0x0000fad8 ldr r3, [pc, 0x100]                               |     r3 = *(0xfbdc);
    0x0000fadc ldr r3, [r6, r3]                                  |     r3 = *((r6 + r3));
    0x0000fae0 ldr r4, [r3]                                      |     r4 = *(0xfbdc);
    0x0000fae4 bl 0x58fc                                         |     getpid ();
    0x0000fae8 ldr r3, [pc, 0x1ac]                               |     r3 = *(0xfc98);
    0x0000faec ldr r1, [pc, 0x1ac]                               |     r1 = *(0xfc9c);
    0x0000faf0 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000faf4 str r3, [sp]                                      |     *(sp) = r3;
    0x0000faf8 ldr r3, [pc, 0x1a4]                               |     r3 = *(0xfca0);
    0x0000fafc add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000fb00 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000fb04 mov r2, r0                                        |     r2 = r0;
    0x0000fb08 mov r0, r4                                        |     r0 = r4;
    0x0000fb0c bl 0x5c50                                         |     fprintf (r0, r1, r2, r3);
    0x0000fb10 ldr r0, [pc, 0x190]                               |     r0 = *(0xfca4);
    0x0000fb14 mov r1, r8                                        |     r1 = r8;
    0x0000fb18 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000fb1c b 0xf638                                          |     goto label_12;
                                                                 | label_21:
    0x0000fb20 ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x0000fb24 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x0000fb28 cmp r3, 0x8000                                    |     
                                                                 |     if (r3 != 0x8000) {
    0x0000fb2c bne 0xf404                                        |         goto label_13;
                                                                 |     }
    0x0000fb30 mov r0, r5                                        |     r0 = r5;
    0x0000fb34 bl 0x6118                                         |     r0 = strlen (r0);
    0x0000fb38 add r0, r0, 8                                     |     r0 += 8;
    0x0000fb3c bl 0x59f8                                         |     r0 = malloc (r0);
    0x0000fb40 subs r8, r0, 0                                    |     r8 = r0 - 0;
                                                                 |     if (r8 == r0) {
    0x0000fb44 beq 0xf404                                        |         goto label_13;
                                                                 |     }
    0x0000fb48 ldr r1, [pc, 0x15c]                               |     r1 = *(0xfca8);
    0x0000fb4c mov r2, r5                                        |     r2 = r5;
    0x0000fb50 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000fb54 bl 0x5f68                                         |     sprintf (r0, r1, r2)
    0x0000fb58 mov r0, r8                                        |     r0 = r8;
    0x0000fb5c bl 0x22fc8                                        |     r0 = fcn_00022fc8 ();
    0x0000fb60 subs r7, r0, 0                                    |     r7 = r0 - 0;
                                                                 |     if (r7 < r0) {
    0x0000fb64 blt 0xf408                                        |         goto label_14;
                                                                 |     }
    0x0000fb68 mov r1, 0x1a4                                     |     r1 = 0x1a4;
    0x0000fb6c bl 0x58c0                                         |     r0 = fchmod (r0, r1);
    0x0000fb70 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000fb74 beq 0xf498                                        |         goto label_15;
                                                                 |     }
    0x0000fb78 ldr r3, [sb]                                      |     r3 = *(sb);
    0x0000fb7c tst r3, 0x800                                     |     
                                                                 |     if ((r3 & 0x800) != 0) {
    0x0000fb80 beq 0xfbcc                                        |         
    0x0000fb84 ldr r3, [pc, 0x54]                                |         r3 = *(0xfbdc);
    0x0000fb88 ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0000fb8c ldr r4, [r3]                                      |         r4 = *(0xfbdc);
    0x0000fb90 bl 0x58fc                                         |         getpid ();
    0x0000fb94 ldr r3, [pc, 0x114]                               |         r3 = *(0xfcac);
    0x0000fb98 ldr r1, [pc, 0x114]                               |         r1 = *(0xfcb0);
    0x0000fb9c add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000fba0 str r3, [sp]                                      |         *(sp) = r3;
    0x0000fba4 ldr r3, [pc, 0x10c]                               |         r3 = *(0xfcb4);
    0x0000fba8 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000fbac add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000fbb0 mov r2, r0                                        |         r2 = r0;
    0x0000fbb4 mov r0, r4                                        |         r0 = r4;
    0x0000fbb8 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3);
    0x0000fbbc ldr r0, [pc, 0xf8]                                |         r0 = *(0xfcb8);
    0x0000fbc0 mov r1, r5                                        |         r1 = r5;
    0x0000fbc4 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000fbc8 bl 0xf1cc                                         |         fcn_0000f1cc ();
                                                                 |     }
                                                                 | label_22:
    0x0000fbcc mov r0, r7                                        |     r0 = r7;
    0x0000fbd0 bl 0x61e4                                         |     close (r0);
    0x0000fbd4 b 0xf408                                          |     goto label_14;
                                                                 | }
    ; 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/lib/libblkid.so.1.1.0 @ 0x23e9c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00023e9c ()                                  | void fcn_00023e9c (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     char * format;
                                                             |     char * var_ch;
                                                             |     char * var_10h;
                                                             |     int32_t var_14h;
                                                             |     wchar_t * pwc;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_4h_2;
                                                             |     int32_t var_2ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00023e9c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00023ea0 mov fp, r3                                    |     
    0x00023ea4 ldr r3, [pc, 0x230]                           |     r3 = *(0x240d8);
    0x00023ea8 sub sp, sp, 0x2c                              |     
    0x00023eac add r3, pc, r3                                |     r3 = pc + r3;
    0x00023eb0 subs r5, r0, 0                                |     r5 = r0 - 0;
    0x00023eb4 mov r6, r1                                    |     r6 = r1;
    0x00023eb8 mov r8, r2                                    |     r8 = r2;
    0x00023ebc str r3, [sp, 4]                               |     var_4h = r3;
    0x00023ec0 mov r4, 0                                     |     r4 = 0;
                                                             |     if (r5 != r0) {
    0x00023ec4 moveq r0, r5                                  |         r0 = r5;
                                                             |     }
                                                             |     if (r5 != r0) {
    0x00023ec8 beq 0x23ed0                                   |         
    0x00023ecc bl 0x6118                                     |         strlen (r0);
                                                             |     }
    0x00023ed0 add r3, sp, 0x20                              |     r3 += var_20h;
    0x00023ed4 cmp r0, 0                                     |     
    0x00023ed8 str r3, [sp]                                  |     *(sp) = r3;
    0x00023edc str r4, [sp, 0x20]                            |     var_20h = r4;
    0x00023ee0 str r4, [r3, 4]                               |     var_4h_2 = r4;
    0x00023ee4 clz r3, r8                                    |     r3 &= r8;
    0x00023ee8 lsr r3, r3, 5                                 |     r3 >>= 5;
                                                             |     if (r0 != 0) {
    0x00023eec moveq r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00023ef0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00023ef4 movne r0, 0                                   |         r0 = 0;
                                                             |     }
                                                             |     if (r3 != 0) {
    0x00023ef8 bne 0x23f48                                   |         goto label_3;
                                                             |     }
    0x00023efc str r3, [r6]                                  |     *(r6) = r3;
    0x00023f00 ldr r3, [pc, 0x1d8]                           |     r3 = *(0x240dc);
    0x00023f04 mov r4, r8                                    |     r4 = r8;
    0x00023f08 add r3, pc, r3                                |     r3 = pc + r3;
    0x00023f0c str r3, [sp, 8]                               |     format = r3;
    0x00023f10 ldr r3, [pc, 0x1cc]                           |     r3 = *(0x240e0);
    0x00023f14 add r3, pc, r3                                |     r3 = pc + r3;
    0x00023f18 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00023f1c ldr r3, [pc, 0x1c4]                           |     r3 = *(0x240e4);
    0x00023f20 add r3, pc, r3                                |     r3 = pc + r3;
    0x00023f24 str r3, [sp, 0x10]                            |     var_10h = r3;
                                                             |     do {
                                                             | label_0:
    0x00023f28 cmp r5, 0                                     |         
                                                             |         if (r5 != 0) {
    0x00023f2c beq 0x23f3c                                   |             
    0x00023f30 ldrsb r7, [r5]                                |             r7 = *(r5);
    0x00023f34 cmp r7, 0                                     |             
                                                             |             if (r7 != 0) {
    0x00023f38 bne 0x23f50                                   |                 goto label_4;
                                                             |             }
                                                             |         }
                                                             | label_1:
    0x00023f3c mov r3, 0                                     |         r3 = 0;
    0x00023f40 mov r0, r8                                    |         r0 = r8;
    0x00023f44 strb r3, [r4]                                 |         *(r4) = r3;
                                                             | label_3:
    0x00023f48 add sp, sp, 0x2c                              |         
    0x00023f4c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_4:
    0x00023f50 cmp fp, 0                                     |         
                                                             |         if (fp == 0) {
    0x00023f54 beq 0x23f78                                   |             goto label_5;
                                                             |         }
    0x00023f58 mov r1, r7                                    |         r1 = r7;
    0x00023f5c mov r0, fp                                    |         r0 = fp;
    0x00023f60 bl 0x613c                                     |         r0 = strchr (r0, r1);
    0x00023f64 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00023f68 strbne r7, [r4]                               |             *(r4) = r7;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00023f6c addne r5, r5, 1                               |             r5++;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00023f70 addne r4, r4, 1                               |             r4++;
                                                             |         }
    0x00023f74 bne 0x23f28                                   |         
                                                             |     } while (r0 != 0);
                                                             | label_5:
    0x00023f78 cmp r7, 0x5c                                  |     
    0x00023f7c and r2, r7, 0xff                              |     r2 = r7 & 0xff;
                                                             |     if (r7 == 0x5c) {
    0x00023f80 bne 0x23f90                                   |         
    0x00023f84 ldrsb r3, [r5, 1]                             |         r3 = *((r5 + 1));
    0x00023f88 cmp r3, 0x78                                  |         
                                                             |         if (r3 == 0x78) {
    0x00023f8c beq 0x23fb0                                   |             goto label_6;
                                                             |         }
                                                             |     }
    0x00023f90 ldr r1, [pc, 0x154]                           |     r1 = *(0x240e8);
    0x00023f94 ldr r0, [sp, 4]                               |     r0 = var_4h;
    0x00023f98 lsl r3, r2, 1                                 |     r3 = r2 << 1;
    0x00023f9c ldr sb, [r0, r1]                              |     sb = *((r0 + r1));
    0x00023fa0 ldr r1, [sb]                                  |     r1 = *(sb);
    0x00023fa4 ldrh r3, [r1, r3]                             |     r3 = *((r1 + r3));
    0x00023fa8 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x00023fac beq 0x23fd4                                   |         
                                                             | label_6:
    0x00023fb0 mov r0, r4                                    |         r0 = r4;
    0x00023fb4 ldr r1, [sp, 8]                               |         r1 = format;
    0x00023fb8 bl 0x5f68                                     |         sprintf (r0, r1, r2)
    0x00023fbc ldr r3, [r6]                                  |         r3 = *(r6);
    0x00023fc0 add r4, r4, 4                                 |         r4 += 4;
    0x00023fc4 add r3, r3, 4                                 |         r3 += 4;
    0x00023fc8 str r3, [r6]                                  |         *(r6) = r3;
    0x00023fcc add r5, r5, 1                                 |         r5++;
    0x00023fd0 b 0x23f28                                     |         goto label_0;
                                                             |     }
    0x00023fd4 bl 0x5c80                                     |     stdlib_mb_cur_max ();
    0x00023fd8 ldr r3, [sp]                                  |     r3 = *(sp);
    0x00023fdc mov r1, r5                                    |     r1 = r5;
    0x00023fe0 mov r2, r0                                    |     r2 = r0;
    0x00023fe4 add r0, sp, 0x1c                              |     r0 += pwc;
    0x00023fe8 bl 0x59b0                                     |     mbrtowc (r0, r1, r2, r3);
    0x00023fec subs r7, r0, 0                                |     r7 -= pwc;
                                                             |     if (r7 == pwc) {
    0x00023ff0 beq 0x23f3c                                   |         goto label_1;
                                                             |     }
    0x00023ff4 cmn r7, 2                                     |     
                                                             |     if (r7 <= 2) {
    0x00023ff8 blo 0x24058                                   |         goto label_7;
                                                             |     }
    0x00023ffc ldrb r2, [r5]                                 |     r2 = *(r5);
    0x00024000 ldr r1, [sb]                                  |     r1 = *(sb);
    0x00024004 lsl r3, r2, 1                                 |     r3 = r2 << 1;
    0x00024008 ldrh r3, [r1, r3]                             |     r3 = *((r1 + r3));
    0x0002400c tst r3, 0x40                                  |     
                                                             |     if ((r3 & 0x40) != 0) {
    0x00024010 bne 0x2403c                                   |         goto label_8;
                                                             |     }
    0x00024014 mov r0, r4                                    |     r0 = r4;
    0x00024018 ldr r1, [sp, 0x10]                            |     r1 = var_10h;
    0x0002401c bl 0x5f68                                     |     sprintf (r0, r1, r2)
    0x00024020 ldr r3, [r6]                                  |     r3 = *(r6);
    0x00024024 add r4, r4, 4                                 |     r4 += 4;
    0x00024028 add r3, r3, 4                                 |     r3 += 4;
    0x0002402c str r3, [r6]                                  |     *(r6) = r3;
                                                             |     do {
    0x00024030 mov r7, 1                                     |         r7 = 1;
                                                             | label_2:
    0x00024034 add r5, r5, r7                                |         r5 += r7;
    0x00024038 b 0x23f28                                     |         goto label_0;
                                                             | label_8:
    0x0002403c ldr r3, [r6]                                  |         r3 = *(r6);
    0x00024040 add r4, r4, 1                                 |         r4++;
    0x00024044 add r3, r3, 1                                 |         r3++;
    0x00024048 str r3, [r6]                                  |         *(r6) = r3;
    0x0002404c ldrsb r3, [r5]                                |         r3 = *(r5);
    0x00024050 strb r3, [r4, -1]                             |         *((r4 - 1)) = r3;
    0x00024054 b 0x24030                                     |         
                                                             |     } while (1);
                                                             | label_7:
    0x00024058 ldr sb, [sp, 0x1c]                            |     sb = pwc;
    0x0002405c mov r0, sb                                    |     r0 = sb;
    0x00024060 bl 0x5b9c                                     |     r0 = iswprint (r0);
    0x00024064 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00024068 bne 0x240b0                                   |         goto label_9;
                                                             |     }
    0x0002406c mov sb, r5                                    |     sb = r5;
    0x00024070 add r3, r7, r5                                |     r3 = r7 + r5;
    0x00024074 mov sl, r4                                    |     sl = r4;
                                                             |     do {
    0x00024078 ldrb r2, [sb], 1                              |         r2 = *(sb);
                                                             |         sb++;
    0x0002407c mov r0, sl                                    |         r0 = sl;
    0x00024080 ldr r1, [sp, 0xc]                             |         r1 = var_ch;
    0x00024084 str r3, [sp, 0x14]                            |         var_14h = r3;
    0x00024088 bl 0x5f68                                     |         sprintf (r0, r1, r2)
    0x0002408c ldr r2, [r6]                                  |         r2 = *(r6);
    0x00024090 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x00024094 add r2, r2, 4                                 |         r2 += 4;
    0x00024098 cmp sb, r3                                    |         
    0x0002409c add sl, sl, 4                                 |         sl += 4;
    0x000240a0 str r2, [r6]                                  |         *(r6) = r2;
    0x000240a4 bne 0x24078                                   |         
                                                             |     } while (sb != r3);
    0x000240a8 add r4, r4, r7, lsl 2                         |     r4 += (r7 << 2);
    0x000240ac b 0x24034                                     |     goto label_2;
                                                             | label_9:
    0x000240b0 mov r2, r7                                    |     r2 = r7;
    0x000240b4 mov r1, r5                                    |     r1 = r5;
    0x000240b8 mov r0, r4                                    |     r0 = r4;
    0x000240bc bl 0x5950                                     |     memcpy (r0, r1, r2);
    0x000240c0 mov r0, sb                                    |     r0 = sb;
    0x000240c4 bl 0x5d70                                     |     wcwidth ();
    0x000240c8 ldr r3, [r6]                                  |     r3 = *(r6);
    0x000240cc add r4, r4, r7                                |     r4 += r7;
    0x000240d0 add r0, r3, r0                                |     r0 = r3 + r0;
    0x000240d4 str r0, [r6]                                  |     *(r6) = r0;
    0x000240d8 b 0x24034                                     |     goto label_2;
                                                             | }
    ; 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/lib/libblkid.so.1.1.0 @ 0x240f0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.000240f0 ()                                  | void fcn_000240f0 (int32_t arg1, int32_t arg2) {
                                                             |     wchar_t * pwc;
                                                             |     char * format;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_4h_2;
                                                             |     int32_t var_1ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000240f0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000240f4 ldr sb, [pc, 0x184]                           |     sb = *(0x2427c);
    0x000240f8 subs r5, r0, 0                                |     r5 = r0 - 0;
    0x000240fc add sb, pc, sb                                |     sb = pc + sb;
    0x00024100 sub sp, sp, 0x1c                              |     
    0x00024104 mov r6, r1                                    |     r6 = r1;
    0x00024108 mov r7, r2                                    |     r7 = r2;
    0x0002410c mov r4, 0                                     |     r4 = 0;
                                                             |     if (r5 != r0) {
    0x00024110 moveq r0, r5                                  |         r0 = r5;
                                                             |     }
                                                             |     if (r5 != r0) {
    0x00024114 beq 0x2411c                                   |         
    0x00024118 bl 0x6118                                     |         r0 = strlen (r0);
                                                             |     }
    0x0002411c cmp r0, 0                                     |     
    0x00024120 clz r3, r7                                    |     r3 &= r7;
    0x00024124 lsr r3, r3, 5                                 |     r3 >>= 5;
                                                             |     if (r0 != 0) {
    0x00024128 moveq r3, 1                                   |         r3 = 1;
                                                             |     }
    0x0002412c add r8, sp, 0x10                              |     r8 += var_10h;
    0x00024130 cmp r3, 0                                     |     
    0x00024134 str r4, [sp, 0x10]                            |     var_10h = r4;
                                                             |     if (r3 == 0) {
    0x00024138 movne r0, 0                                   |         r0 = 0;
                                                             |     }
    0x0002413c str r4, [r8, 4]                               |     var_4h_2 = r4;
                                                             |     if (r3 != 0) {
    0x00024140 bne 0x24188                                   |         goto label_2;
                                                             |     }
    0x00024144 str r3, [r6]                                  |     *(r6) = r3;
    0x00024148 add r3, sp, 0xc                               |     r3 += var_ch;
    0x0002414c str r3, [sp]                                  |     *(sp) = r3;
    0x00024150 ldr fp, [pc, 0x12c]                           |     fp = *(0x00024284);
    0x00024154 ldr r3, [pc, 0x12c]                           |     r3 = *(0x24284);
    0x00024158 mov r4, r7                                    |     r4 = r7;
    0x0002415c add r3, pc, r3                                |     r3 = pc + r3;
    0x00024160 add fp, pc, fp                                |     
    0x00024164 str r3, [sp, 4]                               |     format = r3;
                                                             | label_0:
    0x00024168 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x0002416c beq 0x2417c                                   |         goto label_3;
                                                             |     }
    0x00024170 ldrsb r3, [r5]                                |     r3 = *(r5);
    0x00024174 cmp r3, 0                                     |     
    0x00024178 bne 0x24190                                   |     
                                                             |     while (sl == r0) {
                                                             | label_3:
    0x0002417c mov r3, 0                                     |         r3 = 0;
    0x00024180 mov r0, r7                                    |         r0 = r7;
    0x00024184 strb r3, [r4]                                 |         *(r4) = r3;
                                                             | label_2:
    0x00024188 add sp, sp, 0x1c                              |         
    0x0002418c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x00024190 bl 0x5c80                                     |         stdlib_mb_cur_max ();
    0x00024194 mov r3, r8                                    |         r3 = r8;
    0x00024198 mov r1, r5                                    |         r1 = r5;
    0x0002419c mov r2, r0                                    |         r2 = r0;
    0x000241a0 ldr r0, [sp]                                  |         r0 = *(sp);
    0x000241a4 bl 0x59b0                                     |         r0 = mbrtowc (r0, r1, r2, r3);
    0x000241a8 subs sl, r0, 0                                |         sl = r0 - 0;
    0x000241ac beq 0x2417c                                   |         
                                                             |     }
    0x000241b0 cmn sl, 2                                     |     
    0x000241b4 ldrsb r2, [r5]                                |     r2 = *(r5);
                                                             |     if (sl <= 2) {
    0x000241b8 blo 0x24220                                   |         goto label_4;
                                                             |     }
    0x000241bc ldr r1, [pc, 0xc8]                            |     
    0x000241c0 and r2, r2, 0xff                              |     r2 &= 0xff;
    0x000241c4 ldr r1, [sb, r1]                              |     r1 = *((sb + r1));
    0x000241c8 lsl r3, r2, 1                                 |     r3 = r2 << 1;
    0x000241cc ldr r1, [r1]                                  |     r1 = *(0x24288);
    0x000241d0 ldrh r3, [r1, r3]                             |     r3 = *((r1 + r3));
    0x000241d4 tst r3, 0x40                                  |     
                                                             |     if ((r3 & 0x40) != 0) {
    0x000241d8 bne 0x24204                                   |         goto label_5;
                                                             |     }
    0x000241dc mov r0, r4                                    |     r0 = r4;
    0x000241e0 mov r1, fp                                    |     r1 = fp;
    0x000241e4 bl 0x5f68                                     |     sprintf (r0, r1, r2)
    0x000241e8 ldr r3, [r6]                                  |     r3 = *(r6);
    0x000241ec add r4, r4, 4                                 |     r4 += 4;
    0x000241f0 add r3, r3, 4                                 |     r3 += 4;
    0x000241f4 str r3, [r6]                                  |     *(r6) = r3;
                                                             |     do {
    0x000241f8 mov sl, 1                                     |         sl = 1;
                                                             | label_1:
    0x000241fc add r5, r5, sl                                |         r5 += sl;
    0x00024200 b 0x24168                                     |         goto label_0;
                                                             | label_5:
    0x00024204 ldr r3, [r6]                                  |         r3 = *(r6);
    0x00024208 add r4, r4, 1                                 |         r4++;
    0x0002420c add r3, r3, 1                                 |         r3++;
    0x00024210 str r3, [r6]                                  |         *(r6) = r3;
    0x00024214 ldrsb r3, [r5]                                |         r3 = *(r5);
    0x00024218 strb r3, [r4, -1]                             |         *((r4 - 1)) = r3;
    0x0002421c b 0x241f8                                     |         
                                                             |     } while (1);
                                                             | label_4:
    0x00024220 cmp r2, 0x5c                                  |     
                                                             |     if (r2 == 0x5c) {
    0x00024224 bne 0x24254                                   |         
    0x00024228 ldrsb r1, [r5, 1]                             |         r1 = *((r5 + 1));
    0x0002422c cmp r1, 0x78                                  |         
                                                             |         if (r1 != 0x78) {
    0x00024230 bne 0x24254                                   |             goto label_6;
                                                             |         }
    0x00024234 mov r0, r4                                    |         r0 = r4;
    0x00024238 ldr r1, [sp, 4]                               |         r1 = format;
    0x0002423c bl 0x5f68                                     |         sprintf (r0, r1, r2)
    0x00024240 ldr r2, [r6]                                  |         r2 = *(r6);
    0x00024244 add r4, r4, 4                                 |         r4 += 4;
    0x00024248 add r2, r2, 4                                 |         r2 += 4;
    0x0002424c str r2, [r6]                                  |         *(r6) = r2;
    0x00024250 b 0x241fc                                     |         goto label_1;
                                                             |     }
                                                             | label_6:
    0x00024254 mov r2, sl                                    |     r2 = sl;
    0x00024258 mov r1, r5                                    |     r1 = r5;
    0x0002425c mov r0, r4                                    |     r0 = r4;
    0x00024260 bl 0x5950                                     |     memcpy (r0, r1, r2);
    0x00024264 ldr r0, [sp, 0xc]                             |     r0 = var_ch;
    0x00024268 bl 0x5d70                                     |     wcwidth ();
    0x0002426c ldr r2, [r6]                                  |     r2 = *(r6);
    0x00024270 add r4, r4, sl                                |     r4 += sl;
    0x00024274 add r0, r2, r0                                |     r0 = r2 + r0;
    0x00024278 str r0, [r6]                                  |     *(r6) = r0;
    0x0002427c b 0x241fc                                     |     goto label_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/lib/libblkid.so.1.1.0 @ 0x9fbc */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) sym.blkid_encode_string ()                                       | void blkid_encode_string (uint32_t arg1, uint32_t arg2) {
                                                                             |     void * s2;
                                                                             |     int32_t var_ch;
                                                                             |     r0 = arg1;
                                                                             |     r1 = arg2;
    0x00009fbc push {r0, r1, r2, r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x00009fc0 cmp r1, 0                                                     |     
    0x00009fc4 mov r8, r2                                                    |     r8 = r2;
    0x00009fc8 clz r2, r2                                                    |     r2 &= r2;
    0x00009fcc lsr r2, r2, 5                                                 |     r2 >>= 5;
                                                                             |     if (r1 != 0) {
    0x00009fd0 moveq r4, 1                                                   |         r4 = 1;
                                                                             |     }
                                                                             |     if (r1 == 0) {
    0x00009fd4 movne r4, r2                                                  |         r4 = r2;
                                                                             |     }
    0x00009fd8 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x00009fdc moveq r4, 1                                                   |         r4 = 1;
                                                                             |     }
    0x00009fe0 cmp r4, 0                                                     |     
                                                                             |     if (r4 == 0) {
    0x00009fe4 beq 0xa0bc                                                    |         goto label_5;
                                                                             |     }
                                                                             |     do {
                                                                             | label_0:
    0x00009fe8 mvn r0, 0                                                     |         r0 = ~0;
                                                                             | label_2:
    0x00009fec add sp, sp, 0xc                                               |         
    0x00009ff0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                      |         
                                                                             | label_1:
    0x00009ff4 mov r0, r1                                                    |         r0 = r1;
    0x00009ff8 str r1, [sp, 4]                                               |         s2 = r1;
    0x00009ffc bl 0x9ca8                                                     |         r0 = fcn_00009ca8 (r0);
    0x0000a000 cmp r0, 1                                                     |         
    0x0000a004 mov sl, r0                                                    |         sl = r0;
                                                                             |         if (r0 <= 1) {
    0x0000a008 ble 0xa068                                                    |             goto label_6;
                                                                             |         }
    0x0000a00c sub r3, r8, r4                                                |         r3 = r8 - r4;
    0x0000a010 cmp r3, r0                                                    |         
    0x0000a014 blo 0x9fe8                                                    |         
                                                                             |     } while (r3 <= r0);
    0x0000a018 mov r2, r0                                                    |     r2 = r0;
    0x0000a01c ldr r1, [sp, 4]                                               |     r1 = s2;
    0x0000a020 add r0, r7, r4                                                |     r0 = r7 + r4;
    0x0000a024 bl 0x5950                                                     |     memcpy (r0, r1, r2);
    0x0000a028 sub r6, r6, 1                                                 |     r6--;
    0x0000a02c add r4, r4, sl                                                |     r4 += sl;
    0x0000a030 add r6, sl, r6                                                |     r6 = sl + r6;
                                                                             | label_3:
    0x0000a034 add r3, r4, 3                                                 |     r3 = r4 + 3;
    0x0000a038 cmp r3, r8                                                    |     
                                                                             |     if (r3 >= r8) {
    0x0000a03c bhs 0x9fe8                                                    |         goto label_0;
                                                                             |     }
    0x0000a040 add r6, r6, 1                                                 |     r6++;
                                                                             | label_4:
    0x0000a044 ldrsb r5, [sb, r6]                                            |     r5 = *((sb + r6));
    0x0000a048 add r1, sb, r6                                                |     r1 = sb + r6;
    0x0000a04c cmp r5, 0                                                     |     
                                                                             |     if (r5 != 0) {
    0x0000a050 bne 0x9ff4                                                    |         goto label_1;
                                                                             |     }
    0x0000a054 cmp r4, r8                                                    |     
                                                                             |     if (r4 == r8) {
    0x0000a058 beq 0x9fe8                                                    |         goto label_0;
                                                                             |     }
    0x0000a05c strb r5, [r7, r4]                                             |     *((r7 + r4)) = r5;
    0x0000a060 mov r0, r5                                                    |     r0 = r5;
    0x0000a064 b 0x9fec                                                      |     goto label_2;
                                                                             | label_6:
    0x0000a068 cmp r5, 0x5c                                                  |     
                                                                             |     if (r5 != 0x5c) {
    0x0000a06c beq 0xa084                                                    |         
    0x0000a070 mov r1, 0                                                     |         r1 = 0;
    0x0000a074 mov r0, r5                                                    |         r0 = r5;
    0x0000a078 bl 0x9df4                                                     |         r0 = fcn_00009df4 (r0, r1);
    0x0000a07c cmp r0, 0                                                     |         
                                                                             |         if (r0 != 0) {
    0x0000a080 bne 0xa0a8                                                    |             goto label_7;
                                                                             |         }
                                                                             |     }
    0x0000a084 sub r3, r8, r4                                                |     r3 = r8 - r4;
    0x0000a088 cmp r3, 3                                                     |     
                                                                             |     if (r3 < 3) {
    0x0000a08c bls 0x9fe8                                                    |         goto label_0;
                                                                             |     }
    0x0000a090 add r0, r7, r4                                                |     r0 = r7 + r4;
    0x0000a094 and r2, r5, 0xff                                              |     r2 = r5 & 0xff;
    0x0000a098 mov r1, fp                                                    |     r1 = fp;
    0x0000a09c bl 0x5f68                                                     |     sprintf (r0, r1, r2)
    0x0000a0a0 add r4, r4, 4                                                 |     r4 += 4;
    0x0000a0a4 b 0xa034                                                      |     goto label_3;
                                                                             | label_7:
    0x0000a0a8 cmp r4, r8                                                    |     
                                                                             |     if (r4 == r8) {
    0x0000a0ac beq 0x9fe8                                                    |         goto label_0;
                                                                             |     }
    0x0000a0b0 strb r5, [r7, r4]                                             |     *((r7 + r4)) = r5;
    0x0000a0b4 add r4, r4, 1                                                 |     r4++;
    0x0000a0b8 b 0xa034                                                      |     goto label_3;
                                                                             | label_5:
    0x0000a0bc ldr fp, [pc, 0x10]                                            |     fp = *(0x0000a0d4);
    0x0000a0c0 mov sb, r0                                                    |     sb = r0;
    0x0000a0c4 mov r7, r1                                                    |     r7 = r1;
    0x0000a0c8 mov r6, r4                                                    |     r6 = r4;
    0x0000a0cc add fp, pc, fp                                                |     
    0x0000a0d0 b 0xa044                                                      |     goto label_4;
                                                                             | }

[*] Function sprintf used 12 times libblkid.so.1.1.0