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

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


[*] Function fprintf 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 @ 0x68b0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000068b0 ()                  | void fcn_000068b0 (int32_t arg1) {
                                             |     int32_t var_4h;
                                             |     int32_t var_ch;
                                             |     char * format;
                                             |     int32_t var_18h;
                                             |     r0 = arg1;
    0x000068b0 push {r1, r2, r3}             |     
    0x000068b4 ldr r3, [pc, 0xa4]            |     r3 = *(0x695c);
    0x000068b8 push {r0, r1, r2, r4, lr}     |     
    0x000068bc ldr r1, [pc, 0xa0]            |     r1 = *(0x6960);
    0x000068c0 add r3, pc, r3                |     r3 = pc + r3;
    0x000068c4 subs r2, r0, 0                |     r2 = r0 - 0;
    0x000068c8 ldr r4, [r3, r1]              |     r4 = *(0x695c);
                                             |     if (r2 != r0) {
    0x000068cc beq 0x68f4                    |         
    0x000068d0 ldr r1, [pc, 0x90]            |         r1 = *(0x6964);
    0x000068d4 ldr r3, [r3, r1]              |         r3 = *((r3 + r1));
    0x000068d8 ldr r3, [r3]                  |         r3 = *(r3);
    0x000068dc tst r3, 0x1000000             |         
                                             |         if ((r3 & 0x1000000) != 0) {
    0x000068e0 bne 0x68f4                    |             goto label_1;
                                             |         }
    0x000068e4 ldr r1, [pc, 0x80]            |         r1 = *(0x6968);
    0x000068e8 ldr r0, [r4]                  |         r0 = *(r4);
    0x000068ec add r1, pc, r1                |         r1 = pc + r1;
    0x000068f0 bl 0x5c50                     |         fprintf (r0, r1)
                                             |     }
                                             | label_1:
    0x000068f4 add r2, sp, 0x18              |     r2 += var_18h;
    0x000068f8 ldr r1, [sp, 0x14]            |     r1 = format;
    0x000068fc ldr r0, [r4]                  |     r0 = *(r4);
    0x00006900 str r2, [sp, 4]               |     var_4h = r2;
    0x00006904 bl 0x61f0                     |     vfprintf (r0, r1, r2)
    0x00006908 ldr r1, [r4]                  |     r1 = *(r4);
    0x0000690c ldr r3, [r1, 0x34]            |     r3 = *((r1 + 0x34));
    0x00006910 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00006914 beq 0x6954                    |         goto label_2;
                                             |     }
    0x00006918 ldr r3, [r1, 0x10]            |     r3 = *((r1 + 0x10));
    0x0000691c ldr r2, [r1, 0x1c]            |     r2 = *((r1 + 0x1c));
    0x00006920 cmp r3, r2                    |     
                                             |     if (r3 >= r2) {
    0x00006924 bhs 0x6948                    |         goto label_3;
                                             |     }
    0x00006928 add r2, r3, 1                 |     r2 = r3 + 1;
    0x0000692c str r2, [r1, 0x10]            |     *((r1 + 0x10)) = r2;
    0x00006930 mov r2, 0xa                   |     r2 = 0xa;
    0x00006934 strb r2, [r3]                 |     *(r3) = r2;
                                             |     do {
                                             | label_0:
    0x00006938 add sp, sp, 0xc               |         
    0x0000693c pop {r4, lr}                  |         
    0x00006940 add sp, sp, 0xc               |         
    0x00006944 bx lr                         |         return;
                                             | label_3:
    0x00006948 mov r0, 0xa                   |         r0 = 0xa;
    0x0000694c bl 0x622c                     |         fputc_unlocked ();
    0x00006950 b 0x6938                      |         
                                             |     } while (1);
                                             | label_2:
    0x00006954 mov r0, 0xa                   |     r0 = 0xa;
    0x00006958 bl 0x5ff8                     |     fputc (r0, r1);
    0x0000695c b 0x6938                      |     goto label_0;
                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x6fc0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00006fc0 ()                                  | void fcn_00006fc0 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     char * s2;
                                                             |     int32_t var_1h;
                                                             |     char * s1;
                                                             |     int32_t var_0h_2;
                                                             |     char * s;
                                                             |     int32_t var_1h_2;
                                                             |     char * src;
                                                             |     char * var_ch_2;
                                                             |     int32_t var_1000h;
                                                             |     int32_t var_14h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00006fc0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00006fc4 ldr r6, [pc, 0x330]                           |     r6 = *(0x72f8);
    0x00006fc8 sub sp, sp, 0x1000                            |     
    0x00006fcc sub sp, sp, 0x14                              |     
    0x00006fd0 mov r8, r0                                    |     r8 = r0;
    0x00006fd4 mov r7, r1                                    |     r7 = r1;
    0x00006fd8 add r4, sp, 0x10                              |     r4 += s1;
    0x00006fdc add r6, pc, r6                                |     r6 = pc + r6;
                                                             | label_0:
    0x00006fe0 mov r2, r8                                    |     r2 = r8;
    0x00006fe4 mov r1, 0x1000                                |     r1 = 0x1000;
    0x00006fe8 mov r0, r4                                    |     r0 = r4;
    0x00006fec bl 0x5920                                     |     r0 = fgets (r0, r1, r2);
    0x00006ff0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00006ff4 bne 0x701c                                    |         
    0x00006ff8 mov r0, r8                                    |         r0 = r8;
    0x00006ffc bl 0x59e0                                     |         r0 = feof (r0);
    0x00007000 clz r0, r0                                    |         r0 &= r0;
    0x00007004 lsr r0, r0, 5                                 |         r0 >>= 5;
    0x00007008 rsb r4, r0, 0                                 |         r4 = r0 - ;
                                                             | label_1:
    0x0000700c mov r0, r4                                    |         r0 = r4;
    0x00007010 add sp, sp, 0x1000                            |         
    0x00007014 add sp, sp, 0x14                              |         
    0x00007018 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             |     }
    0x0000701c mov r1, 0xa                                   |     r1 = 0xa;
    0x00007020 mov r0, r4                                    |     r0 = r4;
    0x00007024 bl 0x613c                                     |     r0 = strchr (r0, r1);
    0x00007028 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000702c bne 0x704c                                    |         
    0x00007030 mov r0, r8                                    |         r0 = r8;
    0x00007034 bl 0x59e0                                     |         r0 = feof (r0);
    0x00007038 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0000703c beq 0x70bc                                    |             goto label_6;
                                                             |         }
    0x00007040 mov r0, r4                                    |         r0 = r4;
    0x00007044 bl 0x6118                                     |         r0 = strlen (r0);
    0x00007048 add r0, r4, r0                                |         r0 = r4 + r0;
                                                             |     }
    0x0000704c mov r3, r0                                    |     r3 = r0;
    0x00007050 mov r2, 0                                     |     r2 = 0;
    0x00007054 strb r2, [r3], -1                             |     *(r3) = r2;
                                                             |     r3 += -1;
    0x00007058 cmp r4, r3                                    |     
                                                             |     if (r4 <= r3) {
    0x0000705c bhi 0x706c                                    |         
    0x00007060 ldrsb r3, [r0, -1]                            |         r3 = var_1h;
    0x00007064 cmp r3, 0xd                                   |         
                                                             |         if (r3 == 0xd) {
    0x00007068 strbeq r2, [r0, -1]                           |             *((r0 - 1)) = r2;
                                                             |             goto label_7;
                                                             |         }
                                                             |     }
                                                             | label_7:
    0x0000706c sub r5, r4, 1                                 |     r5 -= var_1h;
                                                             |     do {
    0x00007070 ldrsb r3, [r5, 1]!                            |         r3 = s1;
    0x00007074 cmp r3, 9                                     |         
    0x00007078 cmpne r3, 0x20                                |         __asm ("cmpne r3, 0x20");
    0x0000707c beq 0x7070                                    |         
                                                             |     } while (r3 == 9);
    0x00007080 cmp r3, 0x23                                  |     
    0x00007084 cmpne r3, 0                                   |     __asm ("cmpne r3, 0");
                                                             |     if (r3 == 0x23) {
    0x00007088 beq 0x6fe0                                    |         goto label_0;
                                                             |     }
    0x0000708c ldr r1, [pc, 0x26c]                           |     r1 = *(0x72fc);
    0x00007090 mov r2, 0xc                                   |     r2 = 0xc;
    0x00007094 add r1, pc, r1                                |     r1 = pc + r1;
    0x00007098 mov r0, r5                                    |     r0 = r5;
    0x0000709c bl 0x5d34                                     |     strncmp (r0, r1, r2);
    0x000070a0 subs r8, r0, 0                                |     r8 -= s1;
                                                             |     if (r8 != s1) {
    0x000070a4 bne 0x714c                                    |         goto label_8;
                                                             |     }
    0x000070a8 ldrsb r3, [r5, 0xc]                           |     r3 = var_ch_2;
    0x000070ac cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000070b0 bne 0x7124                                    |         goto label_9;
                                                             |     }
                                                             | label_2:
    0x000070b4 mov r4, 0                                     |     r4 = 0;
    0x000070b8 b 0x700c                                      |     goto label_1;
                                                             | label_6:
    0x000070bc ldr r3, [pc, 0x240]                           |     
    0x000070c0 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x000070c4 ldr r3, [r3]                                  |     r3 = "I";
    0x000070c8 tst r3, 8                                     |     
    0x000070cc bne 0x70d8                                    |     
                                                             |     while (1) {
                                                             | label_4:
    0x000070d0 mvn r4, 0                                     |         r4 = ~0;
    0x000070d4 b 0x700c                                      |         goto label_1;
    0x000070d8 ldr r3, [pc, 0x228]                           |         r3 = *(0x7304);
    0x000070dc ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x000070e0 ldr r5, [r3]                                  |         r5 = *(0x7304);
    0x000070e4 bl 0x58fc                                     |         getpid ();
    0x000070e8 ldr r3, [pc, 0x21c]                           |         r3 = *(0x7308);
    0x000070ec ldr r1, [pc, 0x21c]                           |         r1 = *(0x730c);
    0x000070f0 add r3, pc, r3                                |         r3 = pc + r3;
    0x000070f4 str r3, [sp]                                  |         *(sp) = r3;
    0x000070f8 ldr r3, [pc, 0x214]                           |         r3 = *(0x7310);
    0x000070fc add r1, pc, r1                                |         r1 = pc + r1;
    0x00007100 add r3, pc, r3                                |         r3 = pc + r3;
    0x00007104 mov r2, r0                                    |         r2 = r0;
    0x00007108 mov r0, r5                                    |         r0 = r5;
    0x0000710c bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x00007110 ldr r0, [pc, 0x200]                           |         r0 = *(0x7314);
    0x00007114 mov r1, r4                                    |         r1 = r4;
    0x00007118 add r0, pc, r0                                |         r0 = pc + r0;
                                                             | label_5:
    0x0000711c bl 0x6f34                                     |         fcn_00006f34 ();
    0x00007120 b 0x70d0                                      |         
                                                             |     }
                                                             | label_9:
    0x00007124 ldr r1, [pc, 0x1f0]                           |     r1 = *(0x7318);
    0x00007128 add r0, r5, 0xc                               |     r0 += var_ch_2;
    0x0000712c add r1, pc, r1                                |     r1 = pc + r1;
    0x00007130 bl 0x5d64                                     |     strcasecmp (r0, r1);
    0x00007134 subs r4, r0, 0                                |     r4 -= var_ch_2;
                                                             |     if (r4 != var_ch_2) {
    0x00007138 moveq r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             |     if (r4 != var_ch_2) {
    0x0000713c streq r3, [r7, 0xc]                           |         *((r7 + 0xc)) = r3;
                                                             |     }
                                                             |     if (r4 != var_ch_2) {
    0x00007140 strne r8, [r7, 0xc]                           |         *((r7 + 0xc)) = r8;
                                                             |         goto label_10;
                                                             |     }
                                                             |     if (r4 != var_ch_2) {
                                                             | label_10:
    0x00007144 bne 0x70b4                                    |         goto label_2;
                                                             |     }
    0x00007148 b 0x700c                                      |     goto label_1;
                                                             | label_8:
    0x0000714c ldr r1, [pc, 0x1cc]                           |     r1 = *(0x731c);
    0x00007150 mov r2, 0xb                                   |     r2 = 0xb;
    0x00007154 add r1, pc, r1                                |     r1 = pc + r1;
    0x00007158 mov r0, r5                                    |     r0 = r5;
    0x0000715c bl 0x5d34                                     |     strncmp (r0, r1, r2);
    0x00007160 subs r4, r0, 0                                |     r4 -= s1;
                                                             |     if (r4 != s1) {
    0x00007164 bne 0x7184                                    |         goto label_11;
                                                             |     }
    0x00007168 ldrsb r3, [r5, 0xb]                           |     r3 = src;
    0x0000716c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00007170 beq 0x70b4                                    |         goto label_2;
                                                             |     }
    0x00007174 add r0, r5, 0xb                               |     r0 += src;
    0x00007178 bl 0x5e48                                     |     strdup (r0);
    0x0000717c str r0, [r7, 0x10]                            |     *((r7 + 0x10)) = r0;
    0x00007180 b 0x700c                                      |     goto label_1;
                                                             | label_11:
    0x00007184 ldr r1, [pc, 0x198]                           |     r1 = *(0x7320);
    0x00007188 mov r2, 9                                     |     r2 = 9;
    0x0000718c add r1, pc, r1                                |     r1 = pc + r1;
    0x00007190 mov r0, r5                                    |     r0 = r5;
    0x00007194 bl 0x5d34                                     |     strncmp (r0, r1, r2);
    0x00007198 subs r8, r0, 0                                |     r8 -= s1;
                                                             |     if (r8 != s1) {
    0x0000719c bne 0x72a0                                    |         goto label_12;
                                                             |     }
    0x000071a0 ldrsb r3, [r5, 9]                             |     r3 = s;
    0x000071a4 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000071a8 beq 0x70b4                                    |         goto label_2;
                                                             |     }
    0x000071ac ldr r3, [pc, 0x174]                           |     r3 = *(0x7324);
    0x000071b0 ldr sl, [pc, 0x174]                           |     sl = *(0x7328);
    0x000071b4 add r3, pc, r3                                |     r3 = pc + r3;
    0x000071b8 add r5, r5, 9                                 |     r5 += s;
    0x000071bc add sl, pc, sl                                |     sl = pc + sl;
    0x000071c0 mov fp, 1                                     |     
    0x000071c4 str r3, [sp, 0xc]                             |     s2 = r3;
                                                             | label_3:
    0x000071c8 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x000071cc beq 0x70b4                                    |         goto label_2;
                                                             |     }
    0x000071d0 ldrsb r3, [r5]                                |     r3 = *(r5);
    0x000071d4 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000071d8 beq 0x70b4                                    |         goto label_2;
                                                             |     }
    0x000071dc ldr r4, [r7, 8]                               |     r4 = *((r7 + 8));
    0x000071e0 cmp r4, 1                                     |     
                                                             |     if (r4 > 1) {
    0x000071e4 bgt 0x7244                                    |         goto label_13;
                                                             |     }
    0x000071e8 mov r1, 0x2c                                  |     r1 = 0x2c;
    0x000071ec mov r0, r5                                    |     r0 = r5;
    0x000071f0 bl 0x613c                                     |     strchr (r0, r1);
    0x000071f4 ldr r1, [sp, 0xc]                             |     r1 = s2;
    0x000071f8 subs sb, r0, 0                                |     sb -= s;
                                                             |     if (sb == s) {
    0x000071fc strbne r8, [sb]                               |         *(sb) = r8;
                                                             |     }
    0x00007200 mov r0, r5                                    |     r0 = r5;
    0x00007204 bl 0x5efc                                     |     r0 = strcmp (r0, r1);
    0x00007208 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0000720c streq r0, [r7, r4, lsl 2]                     |         offset_0 = r4 << 2;
                                                             |         *((r7 + offset_0)) = r0;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00007210 beq 0x722c                                    |         
    0x00007214 mov r1, sl                                    |         r1 = sl;
    0x00007218 mov r0, r5                                    |         r0 = r5;
    0x0000721c bl 0x5efc                                     |         r0 = strcmp (r0, r1);
    0x00007220 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00007224 bne 0x7244                                    |             goto label_13;
                                                             |         }
    0x00007228 str fp, [r7, r4, lsl 2]                       |         offset_1 = r4 << 2;
                                                             |         *((r7 + offset_1)) = fp;
                                                             |     }
    0x0000722c add r4, r4, 1                                 |     r4++;
    0x00007230 cmp sb, 0                                     |     
    0x00007234 str r4, [r7, 8]                               |     *((r7 + 8)) = r4;
                                                             |     if (sb == 0) {
    0x00007238 beq 0x70b4                                    |         goto label_2;
                                                             |     }
    0x0000723c add r5, sb, 1                                 |     r5 += var_1h_2;
    0x00007240 b 0x71c8                                      |     goto label_3;
                                                             | label_13:
    0x00007244 ldr r3, [pc, 0xb8]                            |     
    0x00007248 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x0000724c ldr r3, [r3]                                  |     r3 = "I";
    0x00007250 tst r3, 8                                     |     
                                                             |     if ((r3 & 8) == 0) {
    0x00007254 beq 0x70d0                                    |         goto label_4;
                                                             |     }
    0x00007258 ldr r3, [pc, 0xa8]                            |     r3 = *(0x7304);
    0x0000725c ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00007260 ldr r4, [r3]                                  |     r4 = *(0x7304);
    0x00007264 bl 0x58fc                                     |     getpid ();
    0x00007268 ldr r3, [pc, 0xc0]                            |     r3 = *(0x732c);
    0x0000726c ldr r1, [pc, 0xc0]                            |     r1 = *(0x7330);
    0x00007270 add r3, pc, r3                                |     r3 = pc + r3;
    0x00007274 str r3, [sp]                                  |     *(sp) = r3;
    0x00007278 ldr r3, [pc, 0xb8]                            |     r3 = *(0x7334);
    0x0000727c add r1, pc, r1                                |     r1 = pc + r1;
    0x00007280 add r3, pc, r3                                |     r3 = pc + r3;
    0x00007284 mov r2, r0                                    |     r2 = r0;
    0x00007288 mov r0, r4                                    |     r0 = r4;
    0x0000728c bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x00007290 ldr r0, [pc, 0xa4]                            |     r0 = *(0x7338);
    0x00007294 mov r1, r5                                    |     r1 = r5;
    0x00007298 add r0, pc, r0                                |     r0 = pc + r0;
    0x0000729c b 0x711c                                      |     goto label_5;
                                                             | label_12:
    0x000072a0 ldr r3, [pc, 0x5c]                            |     
    0x000072a4 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x000072a8 ldr r3, [r3]                                  |     r3 = "I";
    0x000072ac tst r3, 8                                     |     
                                                             |     if ((r3 & 8) == 0) {
    0x000072b0 beq 0x70d0                                    |         goto label_4;
                                                             |     }
    0x000072b4 ldr r3, [pc, 0x4c]                            |     r3 = *(0x7304);
    0x000072b8 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x000072bc ldr r4, [r3]                                  |     r4 = *(0x7304);
    0x000072c0 bl 0x58fc                                     |     getpid ();
    0x000072c4 ldr r3, [pc, 0x74]                            |     r3 = *(0x733c);
    0x000072c8 ldr r1, [pc, 0x74]                            |     r1 = *(0x7340);
    0x000072cc add r3, pc, r3                                |     r3 = pc + r3;
    0x000072d0 str r3, [sp]                                  |     *(sp) = r3;
    0x000072d4 ldr r3, [pc, 0x6c]                            |     r3 = *(0x7344);
    0x000072d8 add r1, pc, r1                                |     r1 = pc + r1;
    0x000072dc add r3, pc, r3                                |     r3 = pc + r3;
    0x000072e0 mov r2, r0                                    |     r2 = r0;
    0x000072e4 mov r0, r4                                    |     r0 = r4;
    0x000072e8 bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x000072ec ldr r0, [pc, 0x58]                            |     r0 = *(0x7348);
    0x000072f0 mov r1, r5                                    |     r1 = r5;
    0x000072f4 add r0, pc, r0                                |     r0 = pc + r0;
    0x000072f8 b 0x711c                                      |     goto label_5;
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x7350 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00007350 ()                              | void fcn_00007350 (int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_8h;
                                                         |     r0 = arg1;
    0x00007350 push {r0, r1, r4, r5, r6, r7, r8, lr}     |     
    0x00007354 ldr r7, [pc, 0x1f8]                       |     r7 = *(0x7550);
    0x00007358 subs r5, r0, 0                            |     r5 = r0 - 0;
    0x0000735c add r7, pc, r7                            |     r7 = pc + r7;
                                                         |     if (r5 == r0) {
    0x00007360 bne 0x737c                                |         
    0x00007364 ldr r0, [pc, 0x1ec]                       |         r0 = *(0x7554);
    0x00007368 add r0, pc, r0                            |         r0 = pc + r0;
    0x0000736c bl 0x22d4c                                |         r0 = fcn_00022d4c (r0);
    0x00007370 subs r5, r0, 0                            |         r5 = r0 - 0;
                                                         |         if (r5 != r0) {
    0x00007374 ldreq r5, [pc, 0x1e0]                     |             r5 = *((pc + 0x1e0));
                                                         |         }
                                                         |         if (r5 == r0) {
    0x00007378 addeq r5, pc, r5                          |             r5 = pc + r5;
                                                         |             goto label_2;
                                                         |         }
                                                         |     }
                                                         | label_2:
    0x0000737c mov r1, 0x14                              |     r1 = 0x14;
    0x00007380 mov r0, 1                                 |     r0 = 1;
    0x00007384 bl 0x5bf0                                 |     r0 = calloc (r0, r1);
    0x00007388 subs r4, r0, 0                            |     r4 = r0 - 0;
                                                         |     if (r4 == r0) {
    0x0000738c beq 0x74b8                                |         goto label_1;
                                                         |     }
    0x00007390 mvn r3, 0                                 |     r3 = ~0;
    0x00007394 str r3, [r4, 0xc]                         |     *((r4 + 0xc)) = r3;
    0x00007398 ldr r3, [pc, 0x1c0]                       |     r3 = *(0x755c);
    0x0000739c ldr r8, [r7, r3]                          |     r8 = *((r7 + r3));
    0x000073a0 ldr r3, [r8]                              |     r3 = *(r8);
    0x000073a4 tst r3, 8                                 |     
                                                         |     if ((r3 & 8) != 0) {
    0x000073a8 beq 0x73f4                                |         
    0x000073ac ldr r3, [pc, 0x1b0]                       |         r3 = *(0x7560);
    0x000073b0 ldr r3, [r7, r3]                          |         r3 = *((r7 + r3));
    0x000073b4 ldr r6, [r3]                              |         r6 = *(0x7560);
    0x000073b8 bl 0x58fc                                 |         getpid ();
    0x000073bc ldr r3, [pc, 0x1a4]                       |         r3 = *(0x7564);
    0x000073c0 ldr r1, [pc, 0x1a4]                       |         r1 = *(0x7568);
    0x000073c4 add r3, pc, r3                            |         r3 = pc + r3;
    0x000073c8 str r3, [sp]                              |         *(sp) = r3;
    0x000073cc ldr r3, [pc, 0x19c]                       |         r3 = *(0x756c);
    0x000073d0 add r1, pc, r1                            |         r1 = pc + r1;
    0x000073d4 add r3, pc, r3                            |         r3 = pc + r3;
    0x000073d8 mov r2, r0                                |         r2 = r0;
    0x000073dc mov r0, r6                                |         r0 = r6;
    0x000073e0 bl 0x5c50                                 |         fprintf (r0, r1, r2, r3)
    0x000073e4 ldr r0, [pc, 0x188]                       |         r0 = *(0x7570);
    0x000073e8 mov r1, r5                                |         r1 = r5;
    0x000073ec add r0, pc, r0                            |         r0 = pc + r0;
    0x000073f0 bl 0x6f34                                 |         fcn_00006f34 ();
                                                         |     }
    0x000073f4 ldr r1, [pc, 0x17c]                       |     r1 = *(0x7574);
    0x000073f8 mov r0, r5                                |     r0 = r5;
    0x000073fc add r1, pc, r1                            |     r1 = pc + r1;
    0x00007400 bl 0x6238                                 |     r0 = fopen64 ();
    0x00007404 subs r6, r0, 0                            |     r6 = r0 - 0;
                                                         |     if (r6 != r0) {
    0x00007408 bne 0x74c4                                |         goto label_0;
                                                         |     }
    0x0000740c ldr r3, [r8]                              |     r3 = *(r8);
    0x00007410 tst r3, 8                                 |     
                                                         |     if ((r3 & 8) == 0) {
    0x00007414 beq 0x7460                                |         goto label_3;
                                                         |     }
    0x00007418 ldr r3, [pc, 0x144]                       |     r3 = *(0x7560);
    0x0000741c ldr r3, [r7, r3]                          |     r3 = *((r7 + r3));
    0x00007420 ldr r7, [r3]                              |     r7 = *(0x7560);
    0x00007424 bl 0x58fc                                 |     getpid ();
    0x00007428 ldr r3, [pc, 0x14c]                       |     r3 = *(0x7578);
    0x0000742c ldr r1, [pc, 0x14c]                       |     r1 = *(0x757c);
    0x00007430 add r3, pc, r3                            |     r3 = pc + r3;
    0x00007434 str r3, [sp]                              |     *(sp) = r3;
    0x00007438 ldr r3, [pc, 0x144]                       |     r3 = *(0x7580);
    0x0000743c add r1, pc, r1                            |     r1 = pc + r1;
    0x00007440 add r3, pc, r3                            |     r3 = pc + r3;
    0x00007444 mov r2, r0                                |     r2 = r0;
    0x00007448 mov r0, r7                                |     r0 = r7;
    0x0000744c bl 0x5c50                                 |     fprintf (r0, r1, r2, r3)
    0x00007450 ldr r0, [pc, 0x130]                       |     r0 = *(0x7584);
    0x00007454 mov r1, r5                                |     r1 = r5;
    0x00007458 add r0, pc, r0                            |     r0 = pc + r0;
    0x0000745c bl 0x6f34                                 |     fcn_00006f34 ();
                                                         |     do {
                                                         | label_3:
    0x00007460 ldr r3, [r4, 8]                           |         r3 = *((r4 + 8));
    0x00007464 cmp r3, 0                                 |         
                                                         |         if (r3 != 0) {
    0x00007468 streq r3, [r4]                            |             *(r4) = r3;
                                                         |         }
                                                         |         if (r3 != 0) {
    0x0000746c moveq r3, 1                               |             r3 = 1;
                                                         |         }
                                                         |         if (r3 != 0) {
    0x00007470 streq r3, [r4, 4]                         |             *((r4 + 4)) = r3;
                                                         |         }
                                                         |         if (r3 != 0) {
    0x00007474 moveq r3, 2                               |             r3 = 2;
                                                         |         }
                                                         |         if (r3 != 0) {
    0x00007478 streq r3, [r4, 8]                         |             *((r4 + 8)) = r3;
                                                         |         }
    0x0000747c ldr r3, [r4, 0x10]                        |         r3 = *((r4 + 0x10));
    0x00007480 cmp r3, 0                                 |         
                                                         |         if (r3 == 0) {
    0x00007484 bne 0x7498                                |             
    0x00007488 ldr r0, [pc, 0xfc]                        |             r0 = *(0x7588);
    0x0000748c add r0, pc, r0                            |             r0 = pc + r0;
    0x00007490 bl 0x5e48                                 |             strdup (r0);
    0x00007494 str r0, [r4, 0x10]                        |             *((r4 + 0x10)) = r0;
                                                         |         }
    0x00007498 ldr r3, [r4, 0xc]                         |         r3 = *((r4 + 0xc));
    0x0000749c cmn r3, 1                                 |         
                                                         |         if (r3 != 1) {
    0x000074a0 moveq r3, 1                               |             r3 = 1;
                                                         |         }
                                                         |         if (r3 != 1) {
    0x000074a4 streq r3, [r4, 0xc]                       |             *((r4 + 0xc)) = r3;
                                                         |         }
    0x000074a8 cmp r6, 0                                 |         
                                                         |         if (r6 != 0) {
    0x000074ac beq 0x74b8                                |             
    0x000074b0 mov r0, r6                                |             r0 = r6;
    0x000074b4 bl 0x5e90                                 |             fclose (r0);
                                                         |         }
                                                         | label_1:
    0x000074b8 mov r0, r4                                |         r0 = r4;
    0x000074bc add sp, sp, 8                             |         
    0x000074c0 pop {r4, r5, r6, r7, r8, pc}              |         
                                                         | label_0:
    0x000074c4 mov r0, r6                                |         r0 = r6;
    0x000074c8 bl 0x59e0                                 |         r0 = feof (r0);
    0x000074cc cmp r0, 0                                 |         
    0x000074d0 bne 0x7460                                |         
                                                         |     } while (r0 != 0);
    0x000074d4 mov r1, r4                                |     r1 = r4;
    0x000074d8 mov r0, r6                                |     r0 = r6;
    0x000074dc bl 0x6fc0                                 |     r0 = fcn_00006fc0 (r0, r1);
    0x000074e0 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x000074e4 beq 0x74c4                                |         goto label_0;
                                                         |     }
    0x000074e8 ldr r3, [r8]                              |     r3 = *(r8);
    0x000074ec tst r3, 8                                 |     
                                                         |     if ((r3 & 8) != 0) {
    0x000074f0 beq 0x753c                                |         
    0x000074f4 ldr r3, [pc, 0x68]                        |         r3 = *(0x7560);
    0x000074f8 ldr r3, [r7, r3]                          |         r3 = *((r7 + r3));
    0x000074fc ldr r7, [r3]                              |         r7 = *(0x7560);
    0x00007500 bl 0x58fc                                 |         getpid ();
    0x00007504 ldr r3, [pc, 0x84]                        |         r3 = *(0x758c);
    0x00007508 ldr r1, [pc, 0x84]                        |         r1 = *(0x7590);
    0x0000750c add r3, pc, r3                            |         r3 = pc + r3;
    0x00007510 str r3, [sp]                              |         *(sp) = r3;
    0x00007514 ldr r3, [pc, 0x7c]                        |         r3 = *(0x7594);
    0x00007518 add r1, pc, r1                            |         r1 = pc + r1;
    0x0000751c add r3, pc, r3                            |         r3 = pc + r3;
    0x00007520 mov r2, r0                                |         r2 = r0;
    0x00007524 mov r0, r7                                |         r0 = r7;
    0x00007528 bl 0x5c50                                 |         fprintf (r0, r1, r2, r3)
    0x0000752c ldr r0, [pc, 0x68]                        |         r0 = *(0x7598);
    0x00007530 mov r1, r5                                |         r1 = r5;
    0x00007534 add r0, pc, r0                            |         r0 = pc + r0;
    0x00007538 bl 0x6f34                                 |         fcn_00006f34 ();
                                                         |     }
    0x0000753c mov r0, r4                                |     r0 = r4;
    0x00007540 bl 0x6220                                 |     free (r0);
    0x00007544 mov r0, r6                                |     r0 = r6;
    0x00007548 bl 0x5e90                                 |     fclose (r0);
    0x0000754c mov r4, 0                                 |     r4 = 0;
    0x00007550 b 0x74b8                                  |     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 @ 0x75c0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000075c0 ()                  | void fcn_000075c0 (int32_t arg1) {
                                             |     int32_t var_4h;
                                             |     int32_t var_ch;
                                             |     char * format;
                                             |     int32_t var_18h;
                                             |     r0 = arg1;
    0x000075c0 push {r1, r2, r3}             |     
    0x000075c4 ldr r3, [pc, 0xa4]            |     r3 = *(0x766c);
    0x000075c8 push {r0, r1, r2, r4, lr}     |     
    0x000075cc ldr r1, [pc, 0xa0]            |     r1 = *(0x7670);
    0x000075d0 add r3, pc, r3                |     r3 = pc + r3;
    0x000075d4 subs r2, r0, 0                |     r2 = r0 - 0;
    0x000075d8 ldr r4, [r3, r1]              |     r4 = *(0x766c);
                                             |     if (r2 != r0) {
    0x000075dc beq 0x7604                    |         
    0x000075e0 ldr r1, [pc, 0x90]            |         r1 = *(0x7674);
    0x000075e4 ldr r3, [r3, r1]              |         r3 = *((r3 + r1));
    0x000075e8 ldr r3, [r3]                  |         r3 = *(r3);
    0x000075ec tst r3, 0x1000000             |         
                                             |         if ((r3 & 0x1000000) != 0) {
    0x000075f0 bne 0x7604                    |             goto label_1;
                                             |         }
    0x000075f4 ldr r1, [pc, 0x80]            |         r1 = *(0x7678);
    0x000075f8 ldr r0, [r4]                  |         r0 = *(r4);
    0x000075fc add r1, pc, r1                |         r1 = pc + r1;
    0x00007600 bl 0x5c50                     |         fprintf (r0, r1)
                                             |     }
                                             | label_1:
    0x00007604 add r2, sp, 0x18              |     r2 += var_18h;
    0x00007608 ldr r1, [sp, 0x14]            |     r1 = format;
    0x0000760c ldr r0, [r4]                  |     r0 = *(r4);
    0x00007610 str r2, [sp, 4]               |     var_4h = r2;
    0x00007614 bl 0x61f0                     |     vfprintf (r0, r1, r2)
    0x00007618 ldr r1, [r4]                  |     r1 = *(r4);
    0x0000761c ldr r3, [r1, 0x34]            |     r3 = *((r1 + 0x34));
    0x00007620 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00007624 beq 0x7664                    |         goto label_2;
                                             |     }
    0x00007628 ldr r3, [r1, 0x10]            |     r3 = *((r1 + 0x10));
    0x0000762c ldr r2, [r1, 0x1c]            |     r2 = *((r1 + 0x1c));
    0x00007630 cmp r3, r2                    |     
                                             |     if (r3 >= r2) {
    0x00007634 bhs 0x7658                    |         goto label_3;
                                             |     }
    0x00007638 add r2, r3, 1                 |     r2 = r3 + 1;
    0x0000763c str r2, [r1, 0x10]            |     *((r1 + 0x10)) = r2;
    0x00007640 mov r2, 0xa                   |     r2 = 0xa;
    0x00007644 strb r2, [r3]                 |     *(r3) = r2;
                                             |     do {
                                             | label_0:
    0x00007648 add sp, sp, 0xc               |         
    0x0000764c pop {r4, lr}                  |         
    0x00007650 add sp, sp, 0xc               |         
    0x00007654 bx lr                         |         return;
                                             | label_3:
    0x00007658 mov r0, 0xa                   |         r0 = 0xa;
    0x0000765c bl 0x622c                     |         fputc_unlocked ();
    0x00007660 b 0x7648                      |         
                                             |     } while (1);
                                             | label_2:
    0x00007664 mov r0, 0xa                   |     r0 = 0xa;
    0x00007668 bl 0x5ff8                     |     fputc (r0, r1);
    0x0000766c b 0x7648                      |     goto label_0;
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x7680 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00007680 ()                      | void fcn_00007680 () {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_ch;
    0x00007680 push {r0, r1, r2, r4, r5, lr}     |     
    0x00007684 ldr r5, [pc, 0x90]                |     r5 = *(0x7718);
    0x00007688 mov r1, 0x48                      |     r1 = 0x48;
    0x0000768c mov r0, 1                         |     r0 = 1;
    0x00007690 bl 0x5bf0                         |     calloc (r0, r1);
    0x00007694 add r5, pc, r5                    |     r5 = pc + r5;
    0x00007698 subs r4, r0, 0                    |     r4 = r0 - 0;
                                                 |     if (r4 != r0) {
    0x0000769c beq 0x7710                        |         
    0x000076a0 ldr r3, [pc, 0x78]                |         
    0x000076a4 ldr r3, [r5, r3]                  |         r3 = *((r5 + r3));
    0x000076a8 ldr r3, [r3]                      |         r3 = *(0x771c);
    0x000076ac tst r3, 0x10                      |         
                                                 |         if ((r3 & 0x10) != 0) {
    0x000076b0 beq 0x76fc                        |             
    0x000076b4 ldr r3, [pc, 0x68]                |             r3 = *(0x7720);
    0x000076b8 ldr r3, [r5, r3]                  |             r3 = *((r5 + r3));
    0x000076bc ldr r5, [r3]                      |             r5 = *(0x7720);
    0x000076c0 bl 0x58fc                         |             getpid ();
    0x000076c4 ldr r3, [pc, 0x5c]                |             r3 = *(0x7724);
    0x000076c8 ldr r1, [pc, 0x5c]                |             r1 = *(0x7728);
    0x000076cc add r3, pc, r3                    |             r3 = pc + r3;
    0x000076d0 str r3, [sp]                      |             *(sp) = r3;
    0x000076d4 ldr r3, [pc, 0x54]                |             r3 = *(0x772c);
    0x000076d8 add r1, pc, r1                    |             r1 = pc + r1;
    0x000076dc add r3, pc, r3                    |             r3 = pc + r3;
    0x000076e0 mov r2, r0                        |             r2 = r0;
    0x000076e4 mov r0, r5                        |             r0 = r5;
    0x000076e8 bl 0x5c50                         |             fprintf (r0, r1, r2, r3)
    0x000076ec ldr r1, [pc, 0x40]                |             r1 = *(0x7730);
    0x000076f0 mov r0, r4                        |             r0 = r4;
    0x000076f4 add r1, pc, r1                    |             r1 = pc + r1;
    0x000076f8 bl 0x75c0                         |             fcn_000075c0 (r0);
                                                 |         }
    0x000076fc add r3, r4, 8                     |         r3 = r4 + 8;
    0x00007700 str r4, [r4]                      |         *(r4) = r4;
    0x00007704 str r4, [r4, 4]                   |         *((r4 + 4)) = r4;
    0x00007708 str r3, [r4, 8]                   |         *((r4 + 8)) = r3;
    0x0000770c str r3, [r4, 0xc]                 |         *((r4 + 0xc)) = r3;
                                                 |     }
    0x00007710 mov r0, r4                        |     r0 = r4;
    0x00007714 add sp, sp, 0xc                   |     
    0x00007718 pop {r4, r5, pc}                  |     
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x7738 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00007738 ()                      | void fcn_00007738 (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_ch;
                                                 |     r0 = arg1;
    0x00007738 ldr r3, [pc, 0xbc]                |     r3 = *(0x77f8);
    0x0000773c push {r0, r1, r2, r4, r5, lr}     |     
    0x00007740 subs r4, r0, 0                    |     r4 = r0 - 0;
    0x00007744 add r3, pc, r3                    |     r3 = pc + r3;
                                                 |     if (r4 == r0) {
    0x00007748 beq 0x77f4                        |         goto label_0;
                                                 |     }
    0x0000774c ldr r2, [pc, 0xac]                |     
    0x00007750 ldr r2, [r3, r2]                  |     r2 = *((r3 + r2));
    0x00007754 ldr r2, [r2]                      |     r2 = *(0x77fc);
    0x00007758 tst r2, 0x10                      |     
                                                 |     if ((r2 & 0x10) != 0) {
    0x0000775c beq 0x77ac                        |         
    0x00007760 ldr r2, [pc, 0x9c]                |         r2 = *(0x7800);
    0x00007764 ldr r3, [r3, r2]                  |         r3 = *((r3 + r2));
    0x00007768 ldr r5, [r3]                      |         r5 = *(r3);
    0x0000776c bl 0x58fc                         |         getpid ();
    0x00007770 ldr r3, [pc, 0x90]                |         r3 = *(0x7804);
    0x00007774 ldr r1, [pc, 0x90]                |         r1 = *(0x7808);
    0x00007778 add r3, pc, r3                    |         r3 = pc + r3;
    0x0000777c str r3, [sp]                      |         *(sp) = r3;
    0x00007780 ldr r3, [pc, 0x88]                |         r3 = *(0x780c);
    0x00007784 add r1, pc, r1                    |         r1 = pc + r1;
    0x00007788 add r3, pc, r3                    |         r3 = pc + r3;
    0x0000778c mov r2, r0                        |         r2 = r0;
    0x00007790 mov r0, r5                        |         r0 = r5;
    0x00007794 bl 0x5c50                         |         fprintf (r0, r1, r2, r3)
    0x00007798 ldr r1, [pc, 0x74]                |         r1 = *(0x7810);
    0x0000779c ldr r2, [r4, 0x14]                |         r2 = *((r4 + 0x14));
    0x000077a0 add r1, pc, r1                    |         r1 = pc + r1;
    0x000077a4 mov r0, r4                        |         r0 = r4;
    0x000077a8 bl 0x75c0                         |         fcn_000075c0 (r0);
                                                 |     }
    0x000077ac mov r5, r4                        |     r5 = r4;
    0x000077b0 ldr r3, [r4, 4]                   |     r3 = *((r4 + 4));
    0x000077b4 ldr r2, [r5], 8                   |     r2 = *(r5);
                                                 |     r5 += 8;
    0x000077b8 str r3, [r2, 4]                   |     *((r2 + 4)) = r3;
    0x000077bc str r2, [r3]                      |     *(r3) = r2;
                                                 |     do {
    0x000077c0 ldr r0, [r4, 8]                   |         r0 = *((r4 + 8));
    0x000077c4 cmp r0, r5                        |         
                                                 |         if (r0 == r5) {
    0x000077c8 bne 0x77ec                        |             
    0x000077cc ldr r0, [r4, 0x18]                |             r0 = *((r4 + 0x18));
    0x000077d0 bl 0x6220                         |             free (r0);
    0x000077d4 ldr r0, [r4, 0x14]                |             r0 = *((r4 + 0x14));
    0x000077d8 bl 0x6220                         |             free (r0);
    0x000077dc mov r0, r4                        |             r0 = r4;
    0x000077e0 add sp, sp, 0xc                   |             
    0x000077e4 pop {r4, r5, lr}                  |             
    0x000077e8 b 0x6220                          |             void (*0x6220)() ();
                                                 |         }
    0x000077ec bl 0xff94                         |         fcn_0000ff94 (r0);
    0x000077f0 b 0x77c0                          |         
                                                 |     } while (1);
                                                 | label_0:
    0x000077f4 add sp, sp, 0xc                   |     
    0x000077f8 pop {r4, r5, pc}                  |     
                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/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 @ 0x9604 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00009604 ()                                  | void fcn_00009604 (int32_t arg_a0h, int32_t arg_a4h, int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_8h_2;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_30h_2;
                                                             |     int32_t var_7ch;
                                                             |     r0 = arg1;
    0x00009604 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00009608 ldr r7, [pc, 0x1f0]                           |     r7 = *(0x97fc);
    0x0000960c sub sp, sp, 0x7c                              |     
    0x00009610 mov r8, r0                                    |     r8 = r0;
    0x00009614 strd r2, r3, [sp, 8]                          |     __asm ("strd r2, r3, [var_8h]");
    0x00009618 ldr sb, [sp, 0xa4]                            |     sb = *(arg_a4h);
    0x0000961c bl 0x5ec0                                     |     opendir ();
    0x00009620 add r7, pc, r7                                |     r7 = pc + r7;
    0x00009624 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 == r0) {
    0x00009628 beq 0x9754                                    |         goto label_2;
                                                             |     }
    0x0000962c ldr fp, [pc, 0x1d0]                           |     fp = *(0x9800);
    0x00009630 add sl, sp, 0x10                              |     sl += var_10h;
    0x00009634 add fp, pc, fp                                |     
                                                             |     do {
                                                             | label_0:
    0x00009638 mov r0, r6                                    |         r0 = r6;
    0x0000963c bl 0x5dac                                     |         r0 = readdir64 ();
    0x00009640 subs r4, r0, 0                                |         r4 = r0 - 0;
                                                             |         if (r4 == r0) {
    0x00009644 beq 0x974c                                    |             goto label_3;
                                                             |         }
    0x00009648 ldrb r2, [r4, 0x12]                           |         r2 = *((r4 + 0x12));
    0x0000964c sub r3, r2, 6                                 |         r3 = r2 - 6;
    0x00009650 tst r3, 0xfb                                  |         
                                                             |         if ((r3 & 0xfb) != 0) {
    0x00009654 moveq r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if ((r3 & 0xfb) == 0) {
    0x00009658 movne r3, 1                                   |             r3 = 1;
                                                             |         }
    0x0000965c tst r2, 0xfb                                  |         
                                                             |         if ((r2 & 0xfb) != 0) {
    0x00009660 moveq r3, 0                                   |             r3 = 0;
                                                             |         }
    0x00009664 cmp r3, 0                                     |         
    0x00009668 bne 0x9638                                    |         
                                                             |     } while (r3 != 0);
    0x0000966c ldrsb r3, [r4, 0x13]                          |     r3 = *((r4 + 0x13));
    0x00009670 cmp r3, 0x2e                                  |     
                                                             |     if (r3 != 0x2e) {
    0x00009674 bne 0x9690                                    |         goto label_4;
                                                             |     }
    0x00009678 ldrsb r3, [r4, 0x14]                          |     r3 = *((r4 + 0x14));
    0x0000967c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00009680 beq 0x9638                                    |         goto label_0;
                                                             |     }
    0x00009684 ldrsh r3, [r4, 0x14]                          |     r3 = *((r4 + 0x14));
    0x00009688 cmp r3, 0x2e                                  |     
                                                             |     if (r3 == 0x2e) {
    0x0000968c beq 0x9638                                    |         goto label_0;
                                                             |     }
                                                             | label_4:
    0x00009690 mov r0, r6                                    |     r0 = r6;
    0x00009694 add r5, r4, 0x13                              |     r5 = r4 + 0x13;
    0x00009698 bl 0x5d28                                     |     dirfd ();
    0x0000969c mov r3, 0                                     |     r3 = 0;
    0x000096a0 mov r2, sl                                    |     r2 = sl;
    0x000096a4 mov r1, r5                                    |     r1 = r5;
    0x000096a8 bl 0x5f44                                     |     r0 = fstatat64 ();
    0x000096ac cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000096b0 bne 0x9638                                    |         goto label_0;
                                                             |     }
    0x000096b4 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x000096b8 and ip, r3, 0xf000                            |     
    0x000096bc cmp ip, 0x6000                                |     
                                                             |     if (ip == 0x6000) {
    0x000096c0 bne 0x975c                                    |         
    0x000096c4 ldrd r2, r3, [sp, 0x30]                       |         __asm ("ldrd r2, r3, [var_30h]");
    0x000096c8 ldrd r0, r1, [sp, 8]                          |         __asm ("ldrd r0, r1, [var_8h]");
    0x000096cc cmp r3, r1                                    |         
    0x000096d0 cmpeq r2, r0                                  |         __asm ("cmpeq r2, r0");
                                                             |         if (r3 != r1) {
    0x000096d4 bne 0x975c                                    |             goto label_5;
                                                             |         }
    0x000096d8 mov r1, r5                                    |         r1 = r5;
    0x000096dc mov r0, r8                                    |         r0 = r8;
    0x000096e0 bl 0x94fc                                     |         fcn_000094fc (r0, r1);
    0x000096e4 ldr r3, [pc, 0x11c]                           |         
    0x000096e8 str r0, [sb]                                  |         *(sb) = r0;
    0x000096ec ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x000096f0 ldr r3, [r3]                                  |         r3 = *(0x9804);
    0x000096f4 tst r3, 0x40                                  |         
                                                             |         if ((r3 & 0x40) != 0) {
    0x000096f8 beq 0x974c                                    |             
    0x000096fc ldr r3, [pc, 0x108]                           |             r3 = *(0x9808);
    0x00009700 ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x00009704 ldr r4, [r3]                                  |             r4 = *(0x9808);
    0x00009708 bl 0x58fc                                     |             getpid ();
    0x0000970c ldr r3, [pc, 0xfc]                            |             r3 = *(0x980c);
    0x00009710 ldr r1, [pc, 0xfc]                            |             r1 = *(0x9810);
    0x00009714 add r3, pc, r3                                |             r3 = pc + r3;
    0x00009718 str r3, [sp]                                  |             *(sp) = r3;
    0x0000971c ldr r3, [pc, 0xf4]                            |             r3 = *(0x9814);
    0x00009720 add r1, pc, r1                                |             r1 = pc + r1;
    0x00009724 add r3, pc, r3                                |             r3 = pc + r3;
    0x00009728 mov r2, r0                                    |             r2 = r0;
    0x0000972c mov r0, r4                                    |             r0 = r4;
    0x00009730 bl 0x5c50                                     |             fprintf (r0, r1, r2, r3)
    0x00009734 ldr r3, [sb]                                  |             r3 = *(sb);
    0x00009738 ldr r0, [pc, 0xdc]                            |             r0 = *(0x9818);
    0x0000973c str r3, [sp]                                  |             *(sp) = r3;
    0x00009740 add r0, pc, r0                                |             r0 = pc + r0;
    0x00009744 ldrd r2, r3, [sp, 8]                          |             __asm ("ldrd r2, r3, [var_8h]");
    0x00009748 bl 0x943c                                     |             fcn_0000943c ();
                                                             |         }
                                                             | label_3:
    0x0000974c mov r0, r6                                    |         r0 = r6;
    0x00009750 bl 0x6184                                     |         closedir ();
                                                             | label_2:
    0x00009754 add sp, sp, 0x7c                              |         
    0x00009758 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             |     }
                                                             | label_5:
    0x0000975c ldr r3, [sp, 0xa0]                            |     r3 = *(arg_a0h);
    0x00009760 clz r3, r3                                    |     r3 &= r3;
    0x00009764 lsr r3, r3, 5                                 |     r3 >>= 5;
    0x00009768 cmp ip, 0x4000                                |     
                                                             |     if (ip == 0x4000) {
    0x0000976c orrne r3, r3, 1                               |         r3 |= 1;
                                                             |     }
    0x00009770 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00009774 bne 0x9638                                    |         goto label_0;
                                                             |     }
    0x00009778 ldrb r3, [r4, 0x12]                           |     r3 = *((r4 + 0x12));
    0x0000977c cmp r3, 0xa                                   |     
                                                             |     if (r3 == 0xa) {
    0x00009780 beq 0x9638                                    |         goto label_0;
                                                             |     }
    0x00009784 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00009788 beq 0x97cc                                    |         goto label_6;
                                                             |     }
                                                             | label_1:
    0x0000978c ldrsb r3, [r4, 0x13]                          |     r3 = *((r4 + 0x13));
    0x00009790 cmp r3, 0x2e                                  |     
                                                             |     if (r3 == 0x2e) {
    0x00009794 beq 0x9638                                    |         goto label_0;
                                                             |     }
    0x00009798 ldrb r3, [r4, 0x12]                           |     r3 = *((r4 + 0x12));
    0x0000979c cmp r3, 4                                     |     
                                                             |     if (r3 != 4) {
    0x000097a0 bne 0x97b8                                    |         goto label_7;
                                                             |     }
    0x000097a4 mov r1, fp                                    |     r1 = fp;
    0x000097a8 mov r0, r5                                    |     r0 = r5;
    0x000097ac bl 0x5efc                                     |     r0 = strcmp (r0, r1);
    0x000097b0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000097b4 beq 0x9638                                    |         goto label_0;
                                                             |     }
                                                             | label_7:
    0x000097b8 ldr r2, [sp, 0xa0]                            |     r2 = *(arg_a0h);
    0x000097bc mov r1, r5                                    |     r1 = r5;
    0x000097c0 mov r0, r8                                    |     r0 = r8;
    0x000097c4 bl 0x9594                                     |     fcn_00009594 (r0, r1);
    0x000097c8 b 0x9638                                      |     goto label_0;
                                                             | label_6:
    0x000097cc mov r0, r6                                    |     r0 = r6;
    0x000097d0 bl 0x5d28                                     |     dirfd ();
    0x000097d4 mov r3, 1                                     |     r3 = 1;
    0x000097d8 mov r2, sl                                    |     r2 = sl;
    0x000097dc mov r1, r5                                    |     r1 = r5;
    0x000097e0 bl 0x5f44                                     |     r0 = fstatat64 ();
    0x000097e4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000097e8 bne 0x9638                                    |         goto label_0;
                                                             |     }
    0x000097ec ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x000097f0 and r3, r3, 0xf000                            |     r3 &= 0xf000;
    0x000097f4 cmp r3, 0x4000                                |     
                                                             |     if (r3 == 0x4000) {
    0x000097f8 beq 0x978c                                    |         goto label_1;
                                                             |     }
    0x000097fc b 0x9638                                      |     goto label_0;
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x9a98 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00009a98 ()                                      | void fcn_00009a98 (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_8h;
                                                                 |     char * s1;
                                                                 |     char * s2;
                                                                 |     int32_t var_d4h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00009a98 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x00009a9c ldr r7, [pc, 0x15c]                               |     r7 = *(0x9bfc);
    0x00009aa0 mov sb, r0                                        |     sb = r0;
    0x00009aa4 mov r8, r1                                        |     r8 = r1;
    0x00009aa8 ldr r0, [pc, 0x154]                               |     r0 = *(0x9c00);
    0x00009aac ldr r1, [pc, 0x154]                               |     r1 = *(0x9c04);
    0x00009ab0 sub sp, sp, 0xd4                                  |     
    0x00009ab4 add r1, pc, r1                                    |     r1 = pc + r1;
    0x00009ab8 add r0, pc, r0                                    |     r0 = pc + r0;
    0x00009abc bl 0x6238                                         |     fopen64 ();
    0x00009ac0 add r7, pc, r7                                    |     r7 = pc + r7;
    0x00009ac4 subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 != r0) {
    0x00009ac8 moveq r4, r5                                      |         r4 = r5;
                                                                 |     }
                                                                 |     if (r5 == r0) {
    0x00009acc beq 0x9be8                                        |         goto label_1;
                                                                 |     }
    0x00009ad0 ldr r4, [pc, 0x134]                               |     r4 = *(0x9c08);
    0x00009ad4 add r6, sp, 0x50                                  |     r6 += s2;
    0x00009ad8 add r4, pc, r4                                    |     r4 = pc + r4;
                                                                 |     do {
    0x00009adc mov r2, r5                                        |         r2 = r5;
    0x00009ae0 mov r1, 0x80                                      |         r1 = 0x80;
    0x00009ae4 mov r0, r6                                        |         r0 = r6;
    0x00009ae8 bl 0x5920                                         |         r0 = fgets (r0, r1, r2);
    0x00009aec cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00009af0 beq 0x9b0c                                        |             goto label_2;
                                                                 |         }
    0x00009af4 mov r2, 0x80                                      |         r2 = 0x80;
    0x00009af8 mov r1, r6                                        |         r1 = r6;
    0x00009afc mov r0, r4                                        |         r0 = r4;
    0x00009b00 bl 0x5d34                                         |         r0 = strncmp (r0, r1, r2);
    0x00009b04 cmp r0, 0                                         |         
    0x00009b08 bne 0x9adc                                        |         
                                                                 |     } while (r0 != 0);
                                                                 | label_2:
    0x00009b0c ldr fp, [pc, 0xfc]                                |     fp = *(0x9c0c);
    0x00009b10 add sl, sp, 0xc                                   |     sl += s1;
    0x00009b14 add fp, pc, fp                                    |     
                                                                 |     do {
                                                                 | label_0:
    0x00009b18 mov r2, r5                                        |         r2 = r5;
    0x00009b1c mov r1, 0x80                                      |         r1 = 0x80;
    0x00009b20 mov r0, r6                                        |         r0 = r6;
    0x00009b24 bl 0x5920                                         |         fgets (r0, r1, r2);
    0x00009b28 subs r4, r0, 0                                    |         r4 -= s2;
                                                                 |         if (r4 == s2) {
    0x00009b2c beq 0x9b70                                        |             goto label_3;
                                                                 |         }
    0x00009b30 mov r3, sl                                        |         r3 = sl;
    0x00009b34 add r2, sp, 8                                     |         r2 += var_8h;
    0x00009b38 mov r1, fp                                        |         r1 = fp;
    0x00009b3c mov r0, r6                                        |         r0 = r6;
    0x00009b40 bl 0x5df4                                         |         r0 = sscanf (r0, r1, r2);
    0x00009b44 cmp r0, 2                                         |         
    0x00009b48 bne 0x9b18                                        |         
                                                                 |     } while (r0 != 2);
    0x00009b4c ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x00009b50 cmp r3, r8                                        |     
                                                                 |     if (r3 != r8) {
    0x00009b54 bne 0x9b18                                        |         goto label_0;
                                                                 |     }
    0x00009b58 mov r1, sb                                        |     r1 = sb;
    0x00009b5c mov r0, sl                                        |     r0 = sl;
    0x00009b60 bl 0x5efc                                         |     r0 = strcmp (r0, r1);
    0x00009b64 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00009b68 bne 0x9b18                                        |         goto label_0;
                                                                 |     }
    0x00009b6c mov r4, 1                                         |     r4 = 1;
                                                                 | label_3:
    0x00009b70 mov r0, r5                                        |     r0 = r5;
    0x00009b74 bl 0x5e90                                         |     fclose (r0);
    0x00009b78 ldr r3, [pc, 0x94]                                |     
    0x00009b7c ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x00009b80 ldr r3, [r3]                                      |     r3 = *(0x9c10);
    0x00009b84 tst r3, 0x40                                      |     
                                                                 |     if ((r3 & 0x40) == 0) {
    0x00009b88 beq 0x9be8                                        |         goto label_1;
                                                                 |     }
    0x00009b8c ldr r3, [pc, 0x84]                                |     r3 = *(0x9c14);
    0x00009b90 ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x00009b94 ldr r5, [r3]                                      |     r5 = *(0x9c14);
    0x00009b98 bl 0x58fc                                         |     getpid ();
    0x00009b9c ldr r3, [pc, 0x78]                                |     r3 = *(0x9c18);
    0x00009ba0 ldr r1, [pc, 0x78]                                |     r1 = *(0x9c1c);
    0x00009ba4 add r3, pc, r3                                    |     r3 = pc + r3;
    0x00009ba8 str r3, [sp]                                      |     *(sp) = r3;
    0x00009bac ldr r3, [pc, 0x70]                                |     r3 = *(0x9c20);
    0x00009bb0 add r1, pc, r1                                    |     r1 = pc + r1;
    0x00009bb4 add r3, pc, r3                                    |     r3 = pc + r3;
    0x00009bb8 mov r2, r0                                        |     r2 = r0;
    0x00009bbc mov r0, r5                                        |     r0 = r5;
    0x00009bc0 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x00009bc4 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00009bc8 bne 0x9bf4                                        |         goto label_4;
                                                                 |     }
    0x00009bcc ldr r2, [pc, 0x54]                                |     r2 = *(0x9c24);
    0x00009bd0 add r2, pc, r2                                    |     r2 = pc + r2;
                                                                 |     do {
    0x00009bd4 ldr r0, [pc, 0x50]                                |         r0 = *(0x9c28);
    0x00009bd8 mov r3, sb                                        |         r3 = sb;
    0x00009bdc mov r1, r8                                        |         r1 = r8;
    0x00009be0 add r0, pc, r0                                    |         r0 = pc + r0;
    0x00009be4 bl 0x943c                                         |         fcn_0000943c ();
                                                                 | label_1:
    0x00009be8 mov r0, r4                                        |         r0 = r4;
    0x00009bec add sp, sp, 0xd4                                  |         
    0x00009bf0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_4:
    0x00009bf4 ldr r2, [pc, 0x34]                                |         r2 = *(0x9c2c);
    0x00009bf8 add r2, pc, r2                                    |         r2 = pc + r2;
    0x00009bfc b 0x9bd4                                          |         
                                                                 |     } 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 @ 0xa314 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0000a314 ()                          | void fcn_0000a314 (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_8h;
                                                     |     int32_t var_58h;
                                                     |     char * dest;
                                                     |     int32_t var_1040h;
                                                     |     int32_t var_30h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0000a314 push {r4, r5, r6, r7, r8, lr}         |     
    0x0000a318 ldr r4, [pc, 0x25c]                   |     r4 = *(0xa578);
    0x0000a31c ldr r3, [pc, 0x25c]                   |     r3 = *(0xa57c);
    0x0000a320 add r4, pc, r4                        |     r4 = pc + r4;
    0x0000a324 ldr r6, [r4, r3]                      |     r6 = *(0xa578);
    0x0000a328 sub sp, sp, 0x1040                    |     
    0x0000a32c ldr r3, [r6]                          |     r3 = *(0xa578);
    0x0000a330 sub sp, sp, 0x30                      |     
    0x0000a334 tst r3, 0x80                          |     
    0x0000a338 mov r5, r0                            |     r5 = r0;
    0x0000a33c mov r7, r1                            |     r7 = r1;
                                                     |     if ((r3 & 0x80) != 0) {
    0x0000a340 beq 0xa390                            |         
    0x0000a344 ldr r3, [pc, 0x238]                   |         r3 = *(0xa580);
    0x0000a348 ldr r3, [r4, r3]                      |         r3 = *((r4 + r3));
    0x0000a34c ldr r8, [r3]                          |         r8 = *(0xa580);
    0x0000a350 bl 0x58fc                             |         getpid ();
    0x0000a354 ldr r3, [pc, 0x22c]                   |         r3 = *(0xa584);
    0x0000a358 ldr r1, [pc, 0x22c]                   |         r1 = *(0xa588);
    0x0000a35c add r3, pc, r3                        |         r3 = pc + r3;
    0x0000a360 str r3, [sp]                          |         *(sp) = r3;
    0x0000a364 ldr r3, [pc, 0x224]                   |         r3 = *(0xa58c);
    0x0000a368 add r1, pc, r1                        |         r1 = pc + r1;
    0x0000a36c add r3, pc, r3                        |         r3 = pc + r3;
    0x0000a370 mov r2, r0                            |         r2 = r0;
    0x0000a374 mov r0, r8                            |         r0 = r8;
    0x0000a378 bl 0x5c50                             |         fprintf (r0, r1, r2, r3)
    0x0000a37c ldr r0, [pc, 0x210]                   |         r0 = *(0xa590);
    0x0000a380 mov r2, r7                            |         r2 = r7;
    0x0000a384 mov r1, r5                            |         r1 = r5;
    0x0000a388 add r0, pc, r0                        |         r0 = pc + r0;
    0x0000a38c bl 0xa288                             |         fcn_0000a288 ();
                                                     |     }
    0x0000a390 ldr r1, [pc, 0x200]                   |     r1 = *(0xa594);
    0x0000a394 mov r0, r5                            |     r0 = r5;
    0x0000a398 add r1, pc, r1                        |     r1 = pc + r1;
    0x0000a39c bl 0x5efc                             |     r0 = strcmp (r0, r1);
    0x0000a3a0 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0000a3a4 bne 0xa468                            |         goto label_3;
                                                     |     }
    0x0000a3a8 ldr r1, [pc, 0x1ec]                   |     r1 = *(0xa598);
    0x0000a3ac add r1, pc, r1                        |     r1 = pc + r1;
                                                     |     do {
                                                     | label_0:
    0x0000a3b0 add r5, sp, 0x70                      |         r5 += dest;
    0x0000a3b4 add r0, sp, 0x70                      |         r0 += dest;
    0x0000a3b8 bl 0x5710                             |         strcpy (r0, r1);
    0x0000a3bc mov r0, r5                            |         r0 = r5;
    0x0000a3c0 bl 0x6118                             |         r0 = strlen (r0);
    0x0000a3c4 rsb r2, r0, 0x1000                    |         r2 = 0x1000 - r0;
    0x0000a3c8 add r1, r5, r0                        |         r1 = r5 + r0;
    0x0000a3cc mov r0, r7                            |         r0 = r7;
    0x0000a3d0 bl 0x5b00                             |         r0 = fcn_00005b00 ();
    0x0000a3d4 cmp r0, 0                             |         
                                                     |         if (r0 != 0) {
    0x0000a3d8 bne 0xa4d4                            |             goto label_2;
                                                     |         }
    0x0000a3dc ldr r3, [r6]                          |         r3 = *(r6);
    0x0000a3e0 tst r3, 0x80                          |         
                                                     |         if ((r3 & 0x80) != 0) {
    0x0000a3e4 beq 0xa430                            |             
    0x0000a3e8 ldr r3, [pc, 0x194]                   |             r3 = *(0xa580);
    0x0000a3ec ldr r3, [r4, r3]                      |             r3 = *((r4 + r3));
    0x0000a3f0 ldr r7, [r3]                          |             r7 = *(0xa580);
    0x0000a3f4 bl 0x58fc                             |             getpid ();
    0x0000a3f8 ldr r3, [pc, 0x1a0]                   |             r3 = *(0xa59c);
    0x0000a3fc ldr r1, [pc, 0x1a0]                   |             r1 = *(0xa5a0);
    0x0000a400 add r3, pc, r3                        |             r3 = pc + r3;
    0x0000a404 str r3, [sp]                          |             *(sp) = r3;
    0x0000a408 ldr r3, [pc, 0x198]                   |             r3 = *(0xa5a4);
    0x0000a40c add r1, pc, r1                        |             r1 = pc + r1;
    0x0000a410 add r3, pc, r3                        |             r3 = pc + r3;
    0x0000a414 mov r2, r0                            |             r2 = r0;
    0x0000a418 mov r0, r7                            |             r0 = r7;
    0x0000a41c bl 0x5c50                             |             fprintf (r0, r1, r2, r3)
    0x0000a420 ldr r0, [pc, 0x184]                   |             r0 = *(0xa5a8);
    0x0000a424 mov r1, r5                            |             r1 = r5;
    0x0000a428 add r0, pc, r0                        |             r0 = pc + r0;
    0x0000a42c bl 0xa288                             |             fcn_0000a288 ();
                                                     |         }
    0x0000a430 add r1, sp, 8                         |         r1 += var_8h;
    0x0000a434 mov r0, r5                            |         r0 = r5;
    0x0000a438 bl 0x5800                             |         r0 = stat64 ();
    0x0000a43c cmp r0, 0                             |         
                                                     |         if (r0 != 0) {
    0x0000a440 bne 0xa528                            |             goto label_4;
                                                     |         }
    0x0000a444 ldr r3, [r5, -0x58]                   |         r3 = var_58h;
    0x0000a448 and r3, r3, 0xf000                    |         r3 &= 0xf000;
    0x0000a44c cmp r3, 0x6000                        |         
                                                     |         if (r3 != 0x6000) {
    0x0000a450 bne 0xa4d4                            |             goto label_2;
                                                     |         }
    0x0000a454 mov r0, r5                            |         r0 = r5;
    0x0000a458 bl 0x22a24                            |         fcn_00022a24 (r0);
                                                     | label_1:
    0x0000a45c add sp, sp, 0x1040                    |         
    0x0000a460 add sp, sp, 0x30                      |         
    0x0000a464 pop {r4, r5, r6, r7, r8, pc}          |         
                                                     | label_3:
    0x0000a468 ldr r1, [pc, 0x140]                   |         r1 = *(0xa5ac);
    0x0000a46c mov r0, r5                            |         r0 = r5;
    0x0000a470 add r1, pc, r1                        |         r1 = pc + r1;
    0x0000a474 bl 0x5efc                             |         r0 = strcmp (r0, r1);
    0x0000a478 cmp r0, 0                             |         
                                                     |         if (r0 != 0) {
    0x0000a47c ldreq r1, [pc, 0x130]                 |             r1 = *((pc + 0x130));
                                                     |         }
                                                     |         if (r0 != 0) {
    0x0000a480 addeq r1, pc, r1                      |             r1 = pc + r1;
                                                     |         }
    0x0000a484 beq 0xa3b0                            |         
                                                     |     } while (r0 == 0);
    0x0000a488 ldr r1, [pc, 0x128]                   |     r1 = *(0xa5b4);
    0x0000a48c mov r0, r5                            |     r0 = r5;
    0x0000a490 add r1, pc, r1                        |     r1 = pc + r1;
    0x0000a494 bl 0x5efc                             |     r0 = strcmp (r0, r1);
    0x0000a498 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0000a49c ldreq r1, [pc, 0x118]                 |         r1 = *((pc + 0x118));
                                                     |     }
                                                     |     if (r0 == 0) {
    0x0000a4a0 addeq r1, pc, r1                      |         r1 = pc + r1;
                                                     |         goto label_5;
                                                     |     }
                                                     |     if (r0 == 0) {
                                                     | label_5:
    0x0000a4a4 beq 0xa3b0                            |         goto label_0;
                                                     |     }
    0x0000a4a8 ldr r1, [pc, 0x110]                   |     r1 = *(0xa5bc);
    0x0000a4ac mov r0, r5                            |     r0 = r5;
    0x0000a4b0 add r1, pc, r1                        |     r1 = pc + r1;
    0x0000a4b4 bl 0x5efc                             |     r0 = strcmp (r0, r1);
    0x0000a4b8 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0000a4bc ldreq r1, [pc, 0x100]                 |         r1 = *((pc + 0x100));
                                                     |     }
                                                     |     if (r0 == 0) {
    0x0000a4c0 addeq r1, pc, r1                      |         r1 = pc + r1;
                                                     |         goto label_6;
                                                     |     }
                                                     |     if (r0 == 0) {
                                                     | label_6:
    0x0000a4c4 beq 0xa3b0                            |         goto label_0;
                                                     |     }
    0x0000a4c8 ldr r3, [r6]                          |     r3 = *(r6);
    0x0000a4cc tst r3, 0x80                          |     
    0x0000a4d0 bne 0xa4dc                            |     
                                                     |     while (1) {
                                                     | label_2:
    0x0000a4d4 mov r0, 0                             |         r0 = 0;
    0x0000a4d8 b 0xa45c                              |         goto label_1;
    0x0000a4dc ldr r3, [pc, 0xa0]                    |         r3 = *(0xa580);
    0x0000a4e0 ldr r3, [r4, r3]                      |         r3 = *((r4 + r3));
    0x0000a4e4 ldr r4, [r3]                          |         r4 = *(0xa580);
    0x0000a4e8 bl 0x58fc                             |         getpid ();
    0x0000a4ec ldr r3, [pc, 0xd4]                    |         r3 = *(0xa5c4);
    0x0000a4f0 ldr r1, [pc, 0xd4]                    |         r1 = *(0xa5c8);
    0x0000a4f4 add r3, pc, r3                        |         r3 = pc + r3;
    0x0000a4f8 str r3, [sp]                          |         *(sp) = r3;
    0x0000a4fc ldr r3, [pc, 0xcc]                    |         r3 = *(0xa5cc);
    0x0000a500 add r1, pc, r1                        |         r1 = pc + r1;
    0x0000a504 add r3, pc, r3                        |         r3 = pc + r3;
    0x0000a508 mov r2, r0                            |         r2 = r0;
    0x0000a50c mov r0, r4                            |         r0 = r4;
    0x0000a510 bl 0x5c50                             |         fprintf (r0, r1, r2, r3)
    0x0000a514 ldr r0, [pc, 0xb8]                    |         r0 = *(0xa5d0);
    0x0000a518 mov r1, r5                            |         r1 = r5;
    0x0000a51c add r0, pc, r0                        |         r0 = pc + r0;
    0x0000a520 bl 0xa288                             |         fcn_0000a288 ();
    0x0000a524 b 0xa4d4                              |         
                                                     |     }
                                                     | label_4:
    0x0000a528 ldr r3, [r6]                          |     r3 = *(r6);
    0x0000a52c tst r3, 0x80                          |     
                                                     |     if ((r3 & 0x80) == 0) {
    0x0000a530 beq 0xa4d4                            |         goto label_2;
                                                     |     }
    0x0000a534 ldr r3, [pc, 0x48]                    |     r3 = *(0xa580);
    0x0000a538 ldr r3, [r4, r3]                      |     r3 = *((r4 + r3));
    0x0000a53c ldr r4, [r3]                          |     r4 = *(0xa580);
    0x0000a540 bl 0x58fc                             |     getpid ();
    0x0000a544 ldr r3, [pc, 0x8c]                    |     r3 = *(0xa5d4);
    0x0000a548 ldr r1, [pc, 0x8c]                    |     r1 = *(0xa5d8);
    0x0000a54c add r3, pc, r3                        |     r3 = pc + r3;
    0x0000a550 str r3, [sp]                          |     *(sp) = r3;
    0x0000a554 ldr r3, [pc, 0x84]                    |     r3 = *(0xa5dc);
    0x0000a558 add r1, pc, r1                        |     r1 = pc + r1;
    0x0000a55c add r3, pc, r3                        |     r3 = pc + r3;
    0x0000a560 mov r2, r0                            |     r2 = r0;
    0x0000a564 mov r0, r4                            |     r0 = r4;
    0x0000a568 bl 0x5c50                             |     fprintf (r0, r1, r2, r3)
    0x0000a56c ldr r0, [pc, 0x70]                    |     r0 = *(0xa5e0);
    0x0000a570 add r0, pc, r0                        |     r0 = pc + r0;
    0x0000a574 bl 0xa288                             |     fcn_0000a288 ();
    0x0000a578 b 0xa4d4                              |     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 @ 0xae28 */
                                                     | #include <stdint.h>
                                                     |  
                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                     |  
    ; (fcn) fcn.0000ae28 ()                          | void fcn_0000ae28 (uint32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
                                                     |     r0 = arg1;
    0x0000ae28 ldr r3, [pc, 0xbc]                    |     r3 = *(0xaee8);
    0x0000ae2c push {r0, r1, r2, r4, r5, lr}         |     
    0x0000ae30 cmp r0, 0                             |     
    0x0000ae34 add r3, pc, r3                        |     r3 = pc + r3;
                                                     |     if (r0 != 0) {
    0x0000ae38 beq 0xaee4                            |         
    0x0000ae3c ldr r2, [pc, 0xac]                    |         
    0x0000ae40 mov r4, r0                            |         r4 = r0;
    0x0000ae44 ldr r2, [r3, r2]                      |         r2 = *((r3 + r2));
    0x0000ae48 ldr r2, [r2]                          |         r2 = *(0xaeec);
    0x0000ae4c tst r2, 0x100                         |         
                                                     |         if ((r2 & 0x100) != 0) {
    0x0000ae50 beq 0xae98                            |             
    0x0000ae54 ldr r2, [pc, 0x98]                    |             r2 = *(0xaef0);
    0x0000ae58 ldr r3, [r3, r2]                      |             r3 = *((r3 + r2));
    0x0000ae5c ldr r5, [r3]                          |             r5 = *(r3);
    0x0000ae60 bl 0x58fc                             |             getpid ();
    0x0000ae64 ldr r3, [pc, 0x8c]                    |             r3 = *(0xaef4);
    0x0000ae68 ldr r1, [pc, 0x8c]                    |             r1 = *(0xaef8);
    0x0000ae6c add r3, pc, r3                        |             r3 = pc + r3;
    0x0000ae70 str r3, [sp]                          |             *(sp) = r3;
    0x0000ae74 ldr r3, [pc, 0x84]                    |             r3 = *(0xaefc);
    0x0000ae78 add r1, pc, r1                        |             r1 = pc + r1;
    0x0000ae7c add r3, pc, r3                        |             r3 = pc + r3;
    0x0000ae80 mov r2, r0                            |             r2 = r0;
    0x0000ae84 mov r0, r5                            |             r0 = r5;
    0x0000ae88 bl 0x5c50                             |             fprintf (r0, r1, r2, r3)
    0x0000ae8c ldr r0, [pc, 0x70]                    |             r0 = *(0xaf00);
    0x0000ae90 add r0, pc, r0                        |             r0 = pc + r0;
    0x0000ae94 bl 0xac7c                             |             fcn_0000ac7c ();
                                                     |         }
    0x0000ae98 bl 0x5c5c                             |         r0 = fcn_00005c5c ();
    0x0000ae9c cmp r0, 0                             |         
                                                     |         if (r0 == 0) {
    0x0000aea0 beq 0xaee4                            |             goto label_0;
                                                     |         }
    0x0000aea4 ldr r3, [r4]                          |         r3 = *(r4);
    0x0000aea8 str r3, [r0]                          |         *(r0) = r3;
    0x0000aeac ldrd r2, r3, [r4, 8]                  |         __asm ("ldrd r2, r3, [r4, 8]");
    0x0000aeb0 strd r2, r3, [r0, 8]                  |         __asm ("strd r2, r3, [r0, 8]");
    0x0000aeb4 ldrd r2, r3, [r4, 0x10]               |         __asm ("ldrd r2, r3, [r4, 0x10]");
    0x0000aeb8 strd r2, r3, [r0, 0x10]               |         __asm ("strd r2, r3, [r0, 0x10]");
    0x0000aebc ldrd r2, r3, [r4, 0x18]               |         __asm ("ldrd r2, r3, [r4, 0x18]");
    0x0000aec0 strd r2, r3, [r0, 0x18]               |         __asm ("strd r2, r3, [r0, 0x18]");
    0x0000aec4 ldrd r2, r3, [r4, 0x20]               |         __asm ("ldrd r2, r3, [r4, 0x20]");
    0x0000aec8 strd r2, r3, [r0, 0x20]               |         __asm ("strd r2, r3, [r0, 0x20]");
    0x0000aecc ldr r3, [r4, 0x28]                    |         r3 = *((r4 + 0x28));
    0x0000aed0 str r3, [r0, 0x28]                    |         *((r0 + 0x28)) = r3;
    0x0000aed4 ldr r3, [r4, 0x30]                    |         r3 = *((r4 + 0x30));
    0x0000aed8 str r4, [r0, 0xb4]                    |         *((r0 + 0xb4)) = r4;
    0x0000aedc bic r3, r3, 2                         |         r3 = BIT_MASK (r3, 2);
    0x0000aee0 str r3, [r0, 0x30]                    |         *((r0 + 0x30)) = r3;
                                                     |     }
                                                     | label_0:
    0x0000aee4 add sp, sp, 0xc                       |     
    0x0000aee8 pop {r4, r5, pc}                      |     
                                                     | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xaf08 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0000af08 ()                          | void fcn_0000af08 (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
                                                     |     r0 = arg1;
    0x0000af08 push {r0, r1, r2, r4, r5, lr}         |     
    0x0000af0c ldr r5, [pc, 0x94]                    |     r5 = *(0xafa4);
    0x0000af10 subs r4, r0, 0                        |     r4 = r0 - 0;
    0x0000af14 add r5, pc, r5                        |     r5 = pc + r5;
                                                     |     if (r4 != r0) {
    0x0000af18 beq 0xafa0                            |         
    0x0000af1c ldr r3, [r4, 0x14]                    |         r3 = *((r4 + 0x14));
    0x0000af20 ldr r2, [r4, 0x10]                    |         r2 = *((r4 + 0x10));
    0x0000af24 ldr r0, [r4, 4]                       |         r0 = *((r4 + 4));
    0x0000af28 str r3, [r2, 4]                       |         *((r2 + 4)) = r3;
    0x0000af2c str r2, [r3]                          |         *(r3) = r2;
    0x0000af30 bl 0x6220                             |         free (r0);
    0x0000af34 ldr r3, [pc, 0x70]                    |         
    0x0000af38 ldr r3, [r5, r3]                      |         r3 = *((r5 + r3));
    0x0000af3c ldr r3, [r3]                          |         r3 = *(0xafa8);
    0x0000af40 tst r3, 0x100                         |         
                                                     |         if ((r3 & 0x100) != 0) {
    0x0000af44 beq 0xaf90                            |             
    0x0000af48 ldr r3, [pc, 0x60]                    |             r3 = *(0xafac);
    0x0000af4c ldr r3, [r5, r3]                      |             r3 = *((r5 + r3));
    0x0000af50 ldr r5, [r3]                          |             r5 = *(0xafac);
    0x0000af54 bl 0x58fc                             |             getpid ();
    0x0000af58 ldr r3, [pc, 0x54]                    |             r3 = *(0xafb0);
    0x0000af5c ldr r1, [pc, 0x54]                    |             r1 = *(0xafb4);
    0x0000af60 add r3, pc, r3                        |             r3 = pc + r3;
    0x0000af64 str r3, [sp]                          |             *(sp) = r3;
    0x0000af68 ldr r3, [pc, 0x4c]                    |             r3 = *(0xafb8);
    0x0000af6c add r1, pc, r1                        |             r1 = pc + r1;
    0x0000af70 add r3, pc, r3                        |             r3 = pc + r3;
    0x0000af74 mov r2, r0                            |             r2 = r0;
    0x0000af78 mov r0, r5                            |             r0 = r5;
    0x0000af7c bl 0x5c50                             |             fprintf (r0, r1, r2, r3)
    0x0000af80 ldr r0, [pc, 0x38]                    |             r0 = *(0xafbc);
    0x0000af84 ldr r1, [r4]                          |             r1 = *(r4);
    0x0000af88 add r0, pc, r0                        |             r0 = pc + r0;
    0x0000af8c bl 0xac7c                             |             fcn_0000ac7c ();
                                                     |         }
    0x0000af90 mov r0, r4                            |         r0 = r4;
    0x0000af94 add sp, sp, 0xc                       |         
    0x0000af98 pop {r4, r5, lr}                      |         
    0x0000af9c b 0x6220                              |         void (*0x6220)() ();
                                                     |     }
    0x0000afa0 add sp, sp, 0xc                       |     
    0x0000afa4 pop {r4, r5, pc}                      |     
                                                     | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xafc4 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0000afc4 ()                          | void fcn_0000afc4 (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_8h;
                                                     |     r0 = arg1;
    0x0000afc4 ldr r2, [r0, 0xac]                    |     r2 = *((r0 + 0xac));
    0x0000afc8 ldr r3, [pc, 0x90]                    |     r3 = *(0xb05c);
    0x0000afcc push {r0, r1, r4, r5, r6, lr}         |     
    0x0000afd0 add r5, r0, 0xac                      |     r5 = r0 + 0xac;
    0x0000afd4 cmp r5, r2                            |     
    0x0000afd8 add r3, pc, r3                        |     r3 = pc + r3;
                                                     |     if (r5 == r2) {
    0x0000afdc beq 0xb04c                            |         goto label_0;
                                                     |     }
    0x0000afe0 ldr r2, [pc, 0x7c]                    |     
    0x0000afe4 mov r4, r0                            |     r4 = r0;
    0x0000afe8 ldr r2, [r3, r2]                      |     r2 = *((r3 + r2));
    0x0000afec ldr r2, [r2]                          |     r2 = *(0xb060);
    0x0000aff0 tst r2, 0x100                         |     
                                                     |     if ((r2 & 0x100) == 0) {
    0x0000aff4 beq 0xb03c                            |         goto label_1;
                                                     |     }
    0x0000aff8 ldr r2, [pc, 0x68]                    |     r2 = *(0xb064);
    0x0000affc ldr r3, [r3, r2]                      |     r3 = *((r3 + r2));
    0x0000b000 ldr r6, [r3]                          |     r6 = *(r3);
    0x0000b004 bl 0x58fc                             |     getpid ();
    0x0000b008 ldr r3, [pc, 0x5c]                    |     r3 = *(0xb068);
    0x0000b00c ldr r1, [pc, 0x5c]                    |     r1 = *(0xb06c);
    0x0000b010 add r3, pc, r3                        |     r3 = pc + r3;
    0x0000b014 str r3, [sp]                          |     *(sp) = r3;
    0x0000b018 ldr r3, [pc, 0x54]                    |     r3 = *(0xb070);
    0x0000b01c add r1, pc, r1                        |     r1 = pc + r1;
    0x0000b020 add r3, pc, r3                        |     r3 = pc + r3;
    0x0000b024 mov r2, r0                            |     r2 = r0;
    0x0000b028 mov r0, r6                            |     r0 = r6;
    0x0000b02c bl 0x5c50                             |     fprintf (r0, r1, r2, r3)
    0x0000b030 ldr r0, [pc, 0x40]                    |     r0 = *(0xb074);
    0x0000b034 add r0, pc, r0                        |     r0 = pc + r0;
    0x0000b038 bl 0xac7c                             |     fcn_0000ac7c ();
                                                     |     do {
                                                     | label_1:
    0x0000b03c ldr r0, [r4, 0xac]                    |         r0 = *((r4 + 0xac));
    0x0000b040 cmp r5, r0                            |         
                                                     |         if (r5 == r0) {
    0x0000b044 bne 0xb054                            |             
    0x0000b048 str r5, [r4, 0xb0]                    |             *((r4 + 0xb0)) = r5;
                                                     | label_0:
    0x0000b04c add sp, sp, 8                         |             
    0x0000b050 pop {r4, r5, r6, pc}                  |             
                                                     |         }
    0x0000b054 sub r0, r0, 0x10                      |         r0 -= 0x10;
    0x0000b058 bl 0xaf08                             |         fcn_0000af08 (r0);
    0x0000b05c b 0xb03c                              |         
                                                     |     } 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 @ 0xb07c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0000b07c ()                                  | void fcn_0000b07c (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0000b07c push {r0, r1, r2, r4, r5, r6, r7, lr}         |     
    0x0000b080 ldr r2, [r0, 0xac]                            |     r2 = *((r0 + 0xac));
    0x0000b084 ldr r3, [pc, 0xac]                            |     r3 = *(0xb134);
    0x0000b088 add r6, r0, 0xac                              |     r6 = r0 + 0xac;
    0x0000b08c cmp r6, r2                                    |     
    0x0000b090 add r3, pc, r3                                |     r3 = pc + r3;
                                                             |     if (r6 == r2) {
    0x0000b094 beq 0xb110                                    |         goto label_0;
                                                             |     }
    0x0000b098 ldr r2, [pc, 0x9c]                            |     
    0x0000b09c mov r5, r1                                    |     r5 = r1;
    0x0000b0a0 ldr r2, [r3, r2]                              |     r2 = *((r3 + r2));
    0x0000b0a4 mov r4, r0                                    |     r4 = r0;
    0x0000b0a8 ldr r2, [r2]                                  |     r2 = *(0xb138);
    0x0000b0ac tst r2, 0x100                                 |     
                                                             |     if ((r2 & 0x100) != 0) {
    0x0000b0b0 beq 0xb100                                    |         
    0x0000b0b4 ldr r2, [pc, 0x84]                            |         r2 = *(0xb13c);
    0x0000b0b8 ldr r3, [r3, r2]                              |         r3 = *((r3 + r2));
    0x0000b0bc ldr r7, [r3]                                  |         r7 = *(r3);
    0x0000b0c0 bl 0x58fc                                     |         getpid ();
    0x0000b0c4 ldr r3, [pc, 0x78]                            |         r3 = *(0xb140);
    0x0000b0c8 ldr r1, [pc, 0x78]                            |         r1 = *(0xb144);
    0x0000b0cc add r3, pc, r3                                |         r3 = pc + r3;
    0x0000b0d0 str r3, [sp]                                  |         *(sp) = r3;
    0x0000b0d4 ldr r3, [pc, 0x70]                            |         r3 = *(0xb148);
    0x0000b0d8 add r1, pc, r1                                |         r1 = pc + r1;
    0x0000b0dc add r3, pc, r3                                |         r3 = pc + r3;
    0x0000b0e0 mov r2, r0                                    |         r2 = r0;
    0x0000b0e4 mov r0, r7                                    |         r0 = r7;
    0x0000b0e8 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x0000b0ec ldr r3, [r5]                                  |         r3 = *(r5);
    0x0000b0f0 ldr r0, [pc, 0x58]                            |         r0 = *(0xb14c);
    0x0000b0f4 ldr r1, [r3, 4]                               |         r1 = *(0xb14c);
    0x0000b0f8 add r0, pc, r0                                |         r0 = pc + r0;
    0x0000b0fc bl 0xac7c                                     |         fcn_0000ac7c ();
                                                             |     }
    0x0000b100 ldr r0, [r4, 0xac]                            |     r0 = *((r4 + 0xac));
    0x0000b104 ldr r4, [r0]                                  |     r4 = *(r0);
                                                             |     do {
    0x0000b108 cmp r6, r0                                    |         
                                                             |         if (r6 == r0) {
    0x0000b10c bne 0xb118                                    |             
                                                             | label_0:
    0x0000b110 add sp, sp, 0xc                               |             
    0x0000b114 pop {r4, r5, r6, r7, pc}                      |             
                                                             |         }
    0x0000b118 ldr r3, [r0, -4]                              |         r3 = *((r0 - 4));
    0x0000b11c cmp r3, r5                                    |         
                                                             |         if (r3 == r5) {
    0x0000b120 bne 0xb12c                                    |             
    0x0000b124 sub r0, r0, 0x10                              |             r0 -= 0x10;
    0x0000b128 bl 0xaf08                                     |             fcn_0000af08 (r0);
                                                             |         }
    0x0000b12c mov r0, r4                                    |         r0 = r4;
    0x0000b130 ldr r4, [r4]                                  |         r4 = *(r4);
    0x0000b134 b 0xb108                                      |         
                                                             |     } 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 @ 0xb154 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0000b154 ()                                  | void fcn_0000b154 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0000b154 ldr r3, [pc, 0xd0]                            |     r3 = *(0xb228);
    0x0000b158 push {r0, r1, r2, r4, r5, r6, r7, lr}         |     
    0x0000b15c mov r5, r2                                    |     r5 = r2;
    0x0000b160 ldr r2, [pc, 0xc8]                            |     r2 = *(0xb22c);
    0x0000b164 add r3, pc, r3                                |     r3 = pc + r3;
    0x0000b168 ldr r2, [r3, r2]                              |     
    0x0000b16c mov r4, r0                                    |     r4 = r0;
    0x0000b170 ldr r2, [r2]                                  |     r2 = *(0xb228);
    0x0000b174 mov r6, r1                                    |     r6 = r1;
    0x0000b178 tst r2, 0x100                                 |     
                                                             |     if ((r2 & 0x100) != 0) {
    0x0000b17c beq 0xb1cc                                    |         
    0x0000b180 ldr r2, [pc, 0xac]                            |         r2 = *(0xb230);
    0x0000b184 ldr r3, [r3, r2]                              |         r3 = *((r3 + r2));
    0x0000b188 ldr r7, [r3]                                  |         r7 = *(r3);
    0x0000b18c bl 0x58fc                                     |         getpid ();
    0x0000b190 ldr r3, [pc, 0xa0]                            |         r3 = *(0xb234);
    0x0000b194 ldr r1, [pc, 0xa0]                            |         r1 = *(0xb238);
    0x0000b198 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000b19c str r3, [sp]                                  |         *(sp) = r3;
    0x0000b1a0 ldr r3, [pc, 0x98]                            |         r3 = *(0xb23c);
    0x0000b1a4 add r1, pc, r1                                |         r1 = pc + r1;
    0x0000b1a8 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000b1ac mov r2, r0                                    |         r2 = r0;
    0x0000b1b0 mov r0, r7                                    |         r0 = r7;
    0x0000b1b4 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x0000b1b8 ldr r3, [r6]                                  |         r3 = *(r6);
    0x0000b1bc ldr r0, [pc, 0x80]                            |         r0 = *(0xb240);
    0x0000b1c0 ldr r1, [r3, 4]                               |         r1 = *(0xb240);
    0x0000b1c4 add r0, pc, r0                                |         r0 = pc + r0;
    0x0000b1c8 bl 0xac7c                                     |         fcn_0000ac7c ();
                                                             |     }
    0x0000b1cc mov r0, r4                                    |     r0 = r4;
    0x0000b1d0 ldr r3, [r0, 0xac]!                           |     r3 = *((r0 += 0xac));
    0x0000b1d4 ldr r2, [r3]                                  |     r2 = *(r3);
                                                             |     do {
    0x0000b1d8 cmp r3, r0                                    |         
                                                             |         if (r3 == r0) {
    0x0000b1dc bne 0xb1ec                                    |             
    0x0000b1e0 mov r0, 0                                     |             r0 = 0;
    0x0000b1e4 add sp, sp, 0xc                               |             
    0x0000b1e8 pop {r4, r5, r6, r7, pc}                      |             
                                                             |         }
    0x0000b1ec ldr r1, [r3, -4]                              |         r1 = *((r3 - 4));
    0x0000b1f0 cmp r1, r6                                    |         
                                                             |         if (r1 == r6) {
    0x0000b1f4 bne 0xb220                                    |             
    0x0000b1f8 ldr r1, [r3, 4]                               |             r1 = *((r3 + 4));
    0x0000b1fc ldr ip, [r3]                                  |             ip = *(r3);
    0x0000b200 str r1, [ip, 4]                               |             *((ip + 4)) = r1;
    0x0000b204 str ip, [r1]                                  |             *(r1) = ip;
    0x0000b208 str r3, [r3, 4]                               |             *((r3 + 4)) = r3;
    0x0000b20c ldr r1, [r5, 4]                               |             r1 = *((r5 + 4));
    0x0000b210 str r3, [r5, 4]                               |             *((r5 + 4)) = r3;
    0x0000b214 str r5, [r3]                                  |             *(r3) = r5;
    0x0000b218 str r1, [r3, 4]                               |             *((r3 + 4)) = r1;
    0x0000b21c str r3, [r1]                                  |             *(r1) = r3;
                                                             |         }
    0x0000b220 mov r3, r2                                    |         r3 = r2;
    0x0000b224 ldr r2, [r2]                                  |         r2 = *(r2);
    0x0000b228 b 0xb1d8                                      |         
                                                             |     } 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 @ 0xb248 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0000b248 ()                          | void fcn_0000b248 (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_8h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0000b248 ldr r3, [pc, 0x9c]                    |     r3 = *(0xb2e8);
    0x0000b24c ldr r2, [pc, 0x9c]                    |     r2 = *(0xb2ec);
    0x0000b250 add r3, pc, r3                        |     r3 = pc + r3;
    0x0000b254 push {r0, r1, r4, r5, r6, lr}         |     
    0x0000b258 ldr r2, [r3, r2]                      |     
    0x0000b25c mov r5, r0                            |     r5 = r0;
    0x0000b260 ldr r2, [r2]                          |     r2 = *(0xb2e8);
    0x0000b264 mov r4, r1                            |     r4 = r1;
    0x0000b268 tst r2, 0x100                         |     
                                                     |     if ((r2 & 0x100) != 0) {
    0x0000b26c beq 0xb2b4                            |         
    0x0000b270 ldr r2, [pc, 0x7c]                    |         r2 = *(0xb2f0);
    0x0000b274 ldr r3, [r3, r2]                      |         r3 = *((r3 + r2));
    0x0000b278 ldr r6, [r3]                          |         r6 = *(r3);
    0x0000b27c bl 0x58fc                             |         getpid ();
    0x0000b280 ldr r3, [pc, 0x70]                    |         r3 = *(0xb2f4);
    0x0000b284 ldr r1, [pc, 0x70]                    |         r1 = *(0xb2f8);
    0x0000b288 add r3, pc, r3                        |         r3 = pc + r3;
    0x0000b28c str r3, [sp]                          |         *(sp) = r3;
    0x0000b290 ldr r3, [pc, 0x68]                    |         r3 = *(0xb2fc);
    0x0000b294 add r1, pc, r1                        |         r1 = pc + r1;
    0x0000b298 add r3, pc, r3                        |         r3 = pc + r3;
    0x0000b29c mov r2, r0                            |         r2 = r0;
    0x0000b2a0 mov r0, r6                            |         r0 = r6;
    0x0000b2a4 bl 0x5c50                             |         fprintf (r0, r1, r2, r3)
    0x0000b2a8 ldr r0, [pc, 0x54]                    |         r0 = *(0xb300);
    0x0000b2ac add r0, pc, r0                        |         r0 = pc + r0;
    0x0000b2b0 bl 0xac7c                             |         fcn_0000ac7c ();
                                                     |     }
    0x0000b2b4 ldr r3, [r4]                          |     r3 = *(r4);
    0x0000b2b8 cmp r4, r3                            |     
                                                     |     if (r4 != r3) {
    0x0000b2bc beq 0xb2dc                            |         
    0x0000b2c0 mov r2, r5                            |         r2 = r5;
    0x0000b2c4 ldr r0, [r4, 4]                       |         r0 = *((r4 + 4));
    0x0000b2c8 ldr r1, [r2, 0xac]!                   |         r1 = *((r2 += 0xac));
    0x0000b2cc str r2, [r3, 4]                       |         *((r3 + 4)) = r2;
    0x0000b2d0 str r3, [r5, 0xac]                    |         *((r5 + 0xac)) = r3;
    0x0000b2d4 str r1, [r0]                          |         *(r0) = r1;
    0x0000b2d8 str r0, [r1, 4]                       |         *((r1 + 4)) = r0;
                                                     |     }
    0x0000b2dc str r4, [r4]                          |     *(r4) = r4;
    0x0000b2e0 str r4, [r4, 4]                       |     *((r4 + 4)) = r4;
    0x0000b2e4 add sp, sp, 8                         |     
    0x0000b2e8 pop {r4, r5, r6, pc}                  |     
                                                     | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xb308 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0000b308 ()                          | void fcn_0000b308 (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
                                                     |     r0 = arg1;
    0x0000b308 ldr r3, [pc, 0x84]                    |     r3 = *(0xb390);
    0x0000b30c push {r0, r1, r2, r4, r5, lr}         |     
    0x0000b310 subs r4, r0, 0                        |     r4 = r0 - 0;
    0x0000b314 add r3, pc, r3                        |     r3 = pc + r3;
                                                     |     if (r4 == r0) {
    0x0000b318 beq 0xb380                            |         goto label_0;
                                                     |     }
    0x0000b31c ldr r2, [pc, 0x74]                    |     
    0x0000b320 ldr r2, [r3, r2]                      |     r2 = *((r3 + r2));
    0x0000b324 ldr r2, [r2]                          |     r2 = *(0xb394);
    0x0000b328 tst r2, 0x100                         |     
                                                     |     if ((r2 & 0x100) == 0) {
    0x0000b32c beq 0xb374                            |         goto label_1;
                                                     |     }
    0x0000b330 ldr r2, [pc, 0x64]                    |     r2 = *(0xb398);
    0x0000b334 ldr r3, [r3, r2]                      |     r3 = *((r3 + r2));
    0x0000b338 ldr r5, [r3]                          |     r5 = *(r3);
    0x0000b33c bl 0x58fc                             |     getpid ();
    0x0000b340 ldr r3, [pc, 0x58]                    |     r3 = *(0xb39c);
    0x0000b344 ldr r1, [pc, 0x58]                    |     r1 = *(0xb3a0);
    0x0000b348 add r3, pc, r3                        |     r3 = pc + r3;
    0x0000b34c str r3, [sp]                          |     *(sp) = r3;
    0x0000b350 ldr r3, [pc, 0x50]                    |     r3 = *(0xb3a4);
    0x0000b354 add r1, pc, r1                        |     r1 = pc + r1;
    0x0000b358 add r3, pc, r3                        |     r3 = pc + r3;
    0x0000b35c mov r2, r0                            |     r2 = r0;
    0x0000b360 mov r0, r5                            |     r0 = r5;
    0x0000b364 bl 0x5c50                             |     fprintf (r0, r1, r2, r3)
    0x0000b368 ldr r0, [pc, 0x3c]                    |     r0 = *(0xb3a8);
    0x0000b36c add r0, pc, r0                        |     r0 = pc + r0;
    0x0000b370 bl 0xac7c                             |     fcn_0000ac7c ();
                                                     |     do {
                                                     | label_1:
    0x0000b374 ldr r0, [r4]                          |         r0 = *(r4);
    0x0000b378 cmp r4, r0                            |         
                                                     |         if (r4 == r0) {
    0x0000b37c bne 0xb388                            |             
                                                     | label_0:
    0x0000b380 add sp, sp, 0xc                       |             
    0x0000b384 pop {r4, r5, pc}                      |             
                                                     |         }
    0x0000b388 sub r0, r0, 0x10                      |         r0 -= 0x10;
    0x0000b38c bl 0xaf08                             |         fcn_0000af08 (r0);
    0x0000b390 b 0xb374                              |         
                                                     |     } 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 @ 0xbc24 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0000bc24 ()                                      | void fcn_0000bc24 (int32_t arg_48h, int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_0h_2;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_8h_2;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_10h_2;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_18h_2;
                                                                 |     int32_t var_24h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0000bc24 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000bc28 ldr sb, [pc, 0x464]                               |     sb = *(0x0000c094);
    0x0000bc2c sub sp, sp, 0x24                                  |     
    0x0000bc30 mov r8, r0                                        |     r8 = r0;
    0x0000bc34 add sb, pc, sb                                    |     sb = pc + sb;
                                                                 |     do {
    0x0000bc38 ldrd r0, r1, [r8, 8]                              |         __asm ("ldrd r0, r1, [r8, 8]");
    0x0000bc3c ldrd r6, r7, [r8, 0x10]                           |         __asm ("ldrd r6, r7, [r8, 0x10]");
    0x0000bc40 adds sl, r0, r2                                   |         sl = r0 + r2;
    0x0000bc44 adc fp, r1, r3                                    |         __asm ("adc fp, r1, r3");
    0x0000bc48 orrs r3, r6, r7                                   |         r3 = r6 | r7;
    0x0000bc4c strd r0, r1, [sp, 0x18]                           |         __asm ("strd r0, r1, [var_18h]");
                                                                 |         if (r3 == r6) {
    0x0000bc50 bne 0xbc70                                        |             
    0x0000bc54 bl 0x60ac                                         |             errno_location ();
    0x0000bc58 mov r6, 0                                         |             r6 = 0;
    0x0000bc5c mov r3, 0x16                                      |             r3 = 0x16;
    0x0000bc60 str r3, [r0]                                      |             *(r0) = r3;
                                                                 | label_0:
    0x0000bc64 mov r0, r6                                        |             r0 = r6;
    0x0000bc68 add sp, sp, 0x24                                  |             
    0x0000bc6c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |             
                                                                 |         }
    0x0000bc70 ldrd r2, r3, [sp, 0x48]                           |         __asm ("ldrd r2, r3, [arg_48h]");
    0x0000bc74 orrs r3, r2, r3                                   |         r3 = r2 | r3;
                                                                 |         if (r3 != r2) {
    0x0000bc78 beq 0xbcb0                                        |             
    0x0000bc7c ldr r3, [r8, 0x2c]                                |             r3 = *((r8 + 0x2c));
    0x0000bc80 and r3, r3, 0xf000                                |             r3 &= 0xf000;
    0x0000bc84 cmp r3, 0x2000                                    |             
                                                                 |             if (r3 == 0x2000) {
    0x0000bc88 beq 0xbd14                                        |                 goto label_3;
                                                                 |             }
    0x0000bc8c ldrd r0, r1, [sp, 0x18]                           |             __asm ("ldrd r0, r1, [var_18h]");
    0x0000bc90 ldrd r2, r3, [sp, 0x48]                           |             __asm ("ldrd r2, r3, [arg_48h]");
    0x0000bc94 adds r0, r0, r6                                   |             r0 += r6;
    0x0000bc98 adc r1, r1, r7                                    |             __asm ("adc r1, r1, r7");
    0x0000bc9c adds r2, r2, sl                                   |             r2 += sl;
    0x0000bca0 adc r3, r3, fp                                    |             __asm ("adc r3, r3, fp");
    0x0000bca4 cmp r1, r3                                        |             
    0x0000bca8 cmpeq r0, r2                                      |             __asm ("cmpeq r0, r2");
                                                                 |             if (r1 >= r3) {
    0x0000bcac bhs 0xbd14                                        |                 goto label_3;
                                                                 |             }
                                                                 |         }
    0x0000bcb0 ldr r3, [pc, 0x3e0]                               |         
    0x0000bcb4 ldr r3, [sb, r3]                                  |         r3 = *((sb + r3));
    0x0000bcb8 ldr r3, [r3]                                      |         r3 = *(0xc094);
    0x0000bcbc tst r3, 0x2000                                    |         
                                                                 |         if ((r3 & 0x2000) != 0) {
    0x0000bcc0 beq 0xbd08                                        |             
    0x0000bcc4 ldr r3, [pc, 0x3d0]                               |             r3 = *(0xc098);
    0x0000bcc8 ldr r3, [sb, r3]                                  |             r3 = *((sb + r3));
    0x0000bccc ldr r4, [r3]                                      |             r4 = *(0xc098);
    0x0000bcd0 bl 0x58fc                                         |             getpid ();
    0x0000bcd4 ldr r3, [pc, 0x3c4]                               |             r3 = *(0xc09c);
    0x0000bcd8 ldr r1, [pc, 0x3c4]                               |             r1 = *(0xc0a0);
    0x0000bcdc add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000bce0 str r3, [sp]                                      |             *(sp) = r3;
    0x0000bce4 ldr r3, [pc, 0x3bc]                               |             r3 = *(0xc0a4);
    0x0000bce8 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000bcec add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000bcf0 mov r2, r0                                        |             r2 = r0;
    0x0000bcf4 mov r0, r4                                        |             r0 = r4;
    0x0000bcf8 bl 0x5c50                                         |             fprintf (r0, r1, r2, r3)
    0x0000bcfc ldr r0, [pc, 0x3a8]                               |             r0 = *(0xc0a8);
    0x0000bd00 add r0, pc, r0                                    |             r0 = pc + r0;
    0x0000bd04 bl 0xac7c                                         |             fcn_0000ac7c ();
                                                                 |         }
                                                                 | label_2:
    0x0000bd08 bl 0x60ac                                         |         errno_location ();
    0x0000bd0c mov r6, 0                                         |         r6 = 0;
    0x0000bd10 b 0xbdcc                                          |         goto label_4;
                                                                 | label_3:
    0x0000bd14 ldr ip, [r8, 0xb4]                                |         ip = *((r8 + 0xb4));
    0x0000bd18 cmp ip, 0                                         |         
                                                                 |         if (ip == 0) {
    0x0000bd1c beq 0xbd84                                        |             goto label_5;
                                                                 |         }
    0x0000bd20 ldrd r0, r1, [ip, 0x18]                           |         __asm ("ldrd r0, r1, [ip, 0x18]");
    0x0000bd24 ldrd r2, r3, [r8, 0x18]                           |         __asm ("ldrd r2, r3, [r8, 0x18]");
    0x0000bd28 cmp r1, r3                                        |         
    0x0000bd2c cmpeq r0, r2                                      |         __asm ("cmpeq r0, r2");
                                                                 |         if (r1 != r3) {
    0x0000bd30 bne 0xbd84                                        |             goto label_5;
                                                                 |         }
    0x0000bd34 ldrd r0, r1, [ip, 8]                              |         __asm ("ldrd r0, r1, [ip, 8]");
    0x0000bd38 ldrd r2, r3, [sp, 0x18]                           |         __asm ("ldrd r2, r3, [var_18h]");
    0x0000bd3c cmp r3, r1                                        |         
    0x0000bd40 cmpeq r2, r0                                      |         __asm ("cmpeq r2, r0");
                                                                 |         if (r3 <= r1) {
    0x0000bd44 blo 0xbd84                                        |             goto label_5;
                                                                 |         }
    0x0000bd48 ldrd r2, r3, [ip, 0x10]                           |         __asm ("ldrd r2, r3, [ip, 0x10]");
    0x0000bd4c adds r4, r2, r0                                   |         r4 = r2 + r0;
    0x0000bd50 adc r5, r3, r1                                    |         __asm ("adc r5, r3, r1");
    0x0000bd54 mov r2, r4                                        |         r2 = r4;
    0x0000bd58 mov r3, r5                                        |         r3 = r5;
    0x0000bd5c ldrd r4, r5, [sp, 0x18]                           |         __asm ("ldrd r4, r5, [var_18h]");
    0x0000bd60 adds r4, r4, r6                                   |         r4 += r6;
    0x0000bd64 adc r5, r5, r7                                    |         __asm ("adc r5, r5, r7");
    0x0000bd68 cmp r3, r5                                        |         
    0x0000bd6c cmpeq r2, r4                                      |         __asm ("cmpeq r2, r4");
                                                                 |         if (r3 <= r5) {
    0x0000bd70 blo 0xbd84                                        |             goto label_5;
                                                                 |         }
    0x0000bd74 subs r2, sl, r0                                   |         r2 = sl - r0;
    0x0000bd78 sbc r3, fp, r1                                    |         __asm ("sbc r3, fp, r1");
    0x0000bd7c mov r8, ip                                        |         r8 = ip;
    0x0000bd80 b 0xbc38                                          |         
                                                                 |     } while (1);
                                                                 | label_5:
    0x0000bd84 ldrd r6, r7, [sp, 0x48]                           |     __asm ("ldrd r6, r7, [arg_48h]");
    0x0000bd88 mov r5, r8                                        |     r5 = r8;
    0x0000bd8c ldr r4, [r5, 0x4c]!                               |     r4 = *((r5 += 0x4c));
    0x0000bd90 adds r6, r6, sl                                   |     r6 += sl;
    0x0000bd94 adc r7, r7, fp                                    |     __asm ("adc r7, r7, fp");
    0x0000bd98 strd r6, r7, [sp, 0x18]                           |     __asm ("strd r6, r7, [var_18h]");
                                                                 | label_1:
    0x0000bd9c cmp r4, r5                                        |     
    0x0000bda0 bne 0xbdd4                                        |     
                                                                 |     while (1) {
    0x0000bda4 mov r6, 0                                         |         r6 = 0;
    0x0000bda8 str r6, [sp]                                      |         *(sp) = r6;
    0x0000bdac mov r3, fp                                        |         r3 = fp;
    0x0000bdb0 mov r2, sl                                        |         r2 = sl;
    0x0000bdb4 ldr r0, [r8]                                      |         r0 = *(r8);
    0x0000bdb8 bl 0xac78                                         |         r0 = fcn_0000ac78 ();
    0x0000bdbc cmp r0, 0                                         |         
    0x0000bdc0 sbcs r3, r1, 0                                    |         __asm ("sbcs r3, r1, 0");
                                                                 |         if (r0 >= 0) {
    0x0000bdc4 bge 0xbe88                                        |             goto label_6;
                                                                 |         }
    0x0000bdc8 bl 0x60ac                                         |         r0 = errno_location ();
                                                                 | label_4:
    0x0000bdcc str r6, [r0]                                      |         *(r0) = r6;
    0x0000bdd0 b 0xbc64                                          |         goto label_0;
    0x0000bdd4 ldrd r0, r1, [r4, -0x10]                          |         __asm ("ldrd r0, r1, [r4, -0x10]");
    0x0000bdd8 cmp fp, r1                                        |         
    0x0000bddc cmpeq sl, r0                                      |         __asm ("cmpeq sl, r0");
                                                                 |         if (fp <= r1) {
    0x0000bde0 blo 0xbe80                                        |             goto label_7;
                                                                 |         }
    0x0000bde4 ldrd r2, r3, [r4, -8]                             |         __asm ("ldrd r2, r3, [r4, -8]");
    0x0000bde8 adds r6, r2, r0                                   |         r6 = r2 + r0;
    0x0000bdec adc r7, r3, r1                                    |         __asm ("adc r7, r3, r1");
    0x0000bdf0 ldrd r0, r1, [sp, 0x18]                           |         __asm ("ldrd r0, r1, [var_18h]");
    0x0000bdf4 cmp r1, r7                                        |         
    0x0000bdf8 cmpeq r0, r6                                      |         __asm ("cmpeq r0, r6");
                                                                 |         if (r1 > r7) {
    0x0000bdfc bhi 0xbe80                                        |             goto label_7;
                                                                 |         }
    0x0000be00 ldr r3, [pc, 0x290]                               |         
    0x0000be04 ldr r3, [sb, r3]                                  |         r3 = *((sb + r3));
    0x0000be08 ldr r3, [r3]                                      |         r3 = *(0xc094);
    0x0000be0c tst r3, 0x2000                                    |         
                                                                 |         if ((r3 & 0x2000) != 0) {
    0x0000be10 beq 0xbe70                                        |             
    0x0000be14 ldr r3, [pc, 0x280]                               |             r3 = *(0xc098);
    0x0000be18 ldr r3, [sb, r3]                                  |             r3 = *((sb + r3));
    0x0000be1c ldr r6, [r3]                                      |             r6 = *(0xc098);
    0x0000be20 bl 0x58fc                                         |             getpid ();
    0x0000be24 ldr r3, [pc, 0x284]                               |             r3 = *(0xc0ac);
    0x0000be28 ldr r1, [pc, 0x284]                               |             r1 = *(0xc0b0);
    0x0000be2c add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000be30 str r3, [sp]                                      |             *(sp) = r3;
    0x0000be34 ldr r3, [pc, 0x27c]                               |             r3 = *(0xc0b4);
    0x0000be38 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000be3c add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000be40 mov r2, r0                                        |             r2 = r0;
    0x0000be44 mov r0, r6                                        |             r0 = r6;
    0x0000be48 bl 0x5c50                                         |             fprintf (r0, r1, r2, r3)
    0x0000be4c ldrd r0, r1, [sp, 0x48]                           |             __asm ("ldrd r0, r1, [arg_48h]");
    0x0000be50 ldrd r2, r3, [r4, -0x10]                          |             __asm ("ldrd r2, r3, [r4, -0x10]");
    0x0000be54 strd r0, r1, [sp, 0x10]                           |             __asm ("strd r0, r1, [var_10h]");
    0x0000be58 strd sl, fp, [sp, 8]                              |             __asm ("strd sl, fp, [var_8h]");
    0x0000be5c ldrd r0, r1, [r4, -8]                             |             __asm ("ldrd r0, r1, [r4, -8]");
    0x0000be60 strd r0, r1, [sp]                                 |             __asm ("strd r0, r1, [sp]");
    0x0000be64 ldr r0, [pc, 0x250]                               |             r0 = *(0xc0b8);
    0x0000be68 add r0, pc, r0                                    |             r0 = pc + r0;
    0x0000be6c bl 0xac7c                                         |             fcn_0000ac7c ();
                                                                 |         }
    0x0000be70 subs r6, r4, 0x18                                 |         r6 = r4 - 0x18;
                                                                 |         if (r6 != r4) {
    0x0000be74 bne 0xc000                                        |             goto label_8;
                                                                 |         }
    0x0000be78 mov r4, r5                                        |         r4 = r5;
    0x0000be7c b 0xbda4                                          |         
                                                                 |     }
                                                                 | label_7:
    0x0000be80 ldr r4, [r4]                                      |     r4 = *(r4);
    0x0000be84 b 0xbd9c                                          |     goto label_1;
                                                                 | label_6:
    0x0000be88 ldrd r0, r1, [sp, 0x48]                           |     __asm ("ldrd r0, r1, [arg_48h]");
    0x0000be8c mov r3, 0                                         |     r3 = 0;
    0x0000be90 mvn r2, 0x20                                      |     r2 = ~0x20;
    0x0000be94 cmp r1, r3                                        |     
    0x0000be98 cmpeq r0, r2                                      |     __asm ("cmpeq r0, r2");
    0x0000be9c bls 0xbeb0                                        |     
                                                                 |     while (r6 == r0) {
    0x0000bea0 bl 0x60ac                                         |         errno_location ();
    0x0000bea4 mov r3, 0xc                                       |         r3 = 0xc;
    0x0000bea8 str r3, [r0]                                      |         *(r0) = r3;
    0x0000beac b 0xbc64                                          |         goto label_0;
    0x0000beb0 ldr r3, [sp, 0x48]                                |         r3 = *(arg_48h);
    0x0000beb4 mov r0, 1                                         |         r0 = 1;
    0x0000beb8 add r1, r3, 0x20                                  |         r1 = r3 + 0x20;
    0x0000bebc bl 0x5bf0                                         |         r0 = calloc (r0, r1);
    0x0000bec0 subs r6, r0, 0                                    |         r6 = r0 - 0;
    0x0000bec4 beq 0xbea0                                        |         
                                                                 |     }
    0x0000bec8 add r3, r6, 0x20                                  |     r3 = r6 + 0x20;
    0x0000becc str r3, [r6]                                      |     *(r6) = r3;
    0x0000bed0 ldrd r2, r3, [sp, 0x48]                           |     __asm ("ldrd r2, r3, [arg_48h]");
    0x0000bed4 add r5, r6, 0x18                                  |     r5 = r6 + 0x18;
    0x0000bed8 strd r2, r3, [r6, 0x10]                           |     __asm ("strd r2, r3, [r6, 0x10]");
    0x0000bedc ldr r3, [pc, 0x1b4]                               |     
    0x0000bee0 strd sl, fp, [r6, 8]                              |     __asm ("strd sl, fp, [r6, 8]");
    0x0000bee4 str r5, [r6, 0x18]                                |     *((r6 + 0x18)) = r5;
    0x0000bee8 str r5, [r6, 0x1c]                                |     *((r6 + 0x1c)) = r5;
    0x0000beec ldr r3, [sb, r3]                                  |     r3 = *((sb + r3));
    0x0000bef0 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0000bef4 ldr r3, [r3]                                      |     r3 = *(0xc094);
    0x0000bef8 tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) != 0) {
    0x0000befc beq 0xbf54                                        |         
    0x0000bf00 ldr r3, [pc, 0x194]                               |         r3 = *(0xc098);
    0x0000bf04 ldr r3, [sb, r3]                                  |         r3 = *((sb + r3));
    0x0000bf08 ldr r7, [r3]                                      |         r7 = *(0xc098);
    0x0000bf0c bl 0x58fc                                         |         getpid ();
    0x0000bf10 ldr r3, [pc, 0x1a8]                               |         r3 = *(0xc0bc);
    0x0000bf14 ldr r1, [pc, 0x1a8]                               |         r1 = *(0xc0c0);
    0x0000bf18 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000bf1c str r3, [sp]                                      |         *(sp) = r3;
    0x0000bf20 ldr r3, [pc, 0x1a0]                               |         r3 = *(0xc0c4);
    0x0000bf24 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000bf28 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000bf2c mov r2, r0                                        |         r2 = r0;
    0x0000bf30 mov r0, r7                                        |         r0 = r7;
    0x0000bf34 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000bf38 ldrd r2, r3, [sp, 0x48]                           |         __asm ("ldrd r2, r3, [arg_48h]");
    0x0000bf3c ldr r0, [pc, 0x188]                               |         r0 = *(0xc0c8);
    0x0000bf40 strd r2, r3, [sp]                                 |         __asm ("strd r2, r3, [sp]");
    0x0000bf44 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000bf48 mov r2, sl                                        |         r2 = sl;
    0x0000bf4c mov r3, fp                                        |         r3 = fp;
    0x0000bf50 bl 0xac7c                                         |         fcn_0000ac7c ();
                                                                 |     }
    0x0000bf54 ldr r2, [sp, 0x48]                                |     r2 = *(arg_48h);
    0x0000bf58 ldr r1, [r6]                                      |     r1 = *(r6);
    0x0000bf5c ldr r0, [r8]                                      |     r0 = *(r8);
    0x0000bf60 bl 0x5d1c                                         |     read (r0, r1, r2);
    0x0000bf64 ldr r3, [sp, 0x48]                                |     r3 = *(arg_48h);
    0x0000bf68 cmp r0, r3                                        |     
    0x0000bf6c mov r7, r0                                        |     r7 = r0;
                                                                 |     if (r0 == r3) {
    0x0000bf70 beq 0xbfec                                        |         goto label_9;
                                                                 |     }
    0x0000bf74 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x0000bf78 ldr r3, [r3]                                      |     r3 = *(r3);
    0x0000bf7c tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) != 0) {
    0x0000bf80 beq 0xbfc8                                        |         
    0x0000bf84 ldr r3, [pc, 0x110]                               |         r3 = *(0xc098);
    0x0000bf88 ldr r3, [sb, r3]                                  |         r3 = *((sb + r3));
    0x0000bf8c ldr r4, [r3]                                      |         r4 = *(0xc098);
    0x0000bf90 bl 0x58fc                                         |         getpid ();
    0x0000bf94 ldr r3, [pc, 0x134]                               |         r3 = *(0xc0cc);
    0x0000bf98 ldr r1, [pc, 0x134]                               |         r1 = *(0xc0d0);
    0x0000bf9c add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000bfa0 str r3, [sp]                                      |         *(sp) = r3;
    0x0000bfa4 ldr r3, [pc, 0x12c]                               |         r3 = *(0xc0d4);
    0x0000bfa8 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000bfac add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000bfb0 mov r2, r0                                        |         r2 = r0;
    0x0000bfb4 mov r0, r4                                        |         r0 = r4;
    0x0000bfb8 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000bfbc ldr r0, [pc, 0x118]                               |         r0 = *(0xc0d8);
    0x0000bfc0 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000bfc4 bl 0xac7c                                         |         fcn_0000ac7c ();
                                                                 |     }
    0x0000bfc8 mov r0, r6                                        |     r0 = r6;
    0x0000bfcc bl 0x6220                                         |     free (r0);
    0x0000bfd0 cmp r7, 0                                         |     
                                                                 |     if (r7 >= 0) {
    0x0000bfd4 bge 0xbd08                                        |         goto label_2;
                                                                 |     }
    0x0000bfd8 mov r0, r8                                        |     r0 = r8;
    0x0000bfdc bl 0xbc18                                         |     r0 = fcn_0000bc18 (r0);
    0x0000bfe0 subs r6, r0, 0                                    |     r6 = r0 - 0;
                                                                 |     if (r6 != r0) {
    0x0000bfe4 bne 0xbd08                                        |         goto label_2;
                                                                 |     }
    0x0000bfe8 b 0xbc64                                          |     goto label_0;
                                                                 | label_9:
    0x0000bfec ldr r3, [r8, 0x50]                                |     r3 = *((r8 + 0x50));
    0x0000bff0 str r5, [r8, 0x50]                                |     *((r8 + 0x50)) = r5;
    0x0000bff4 str r4, [r6, 0x18]                                |     *((r6 + 0x18)) = r4;
    0x0000bff8 str r3, [r6, 0x1c]                                |     *((r6 + 0x1c)) = r3;
    0x0000bffc str r5, [r3]                                      |     *(r3) = r5;
                                                                 | label_8:
    0x0000c000 ldrd r4, r5, [r6, 8]                              |     __asm ("ldrd r4, r5, [r6, 8]");
    0x0000c004 cmp r5, fp                                        |     
    0x0000c008 cmpeq r4, sl                                      |     __asm ("cmpeq r4, sl");
                                                                 |     if (r5 < fp) {
    0x0000c00c bls 0xc030                                        |         goto label_10;
                                                                 |     }
    0x0000c010 ldr r3, [pc, 0xc8]                                |     r3 = *(0xc0dc);
    0x0000c014 ldr r1, [pc, 0xc8]                                |     r1 = *(0xc0e0);
    0x0000c018 ldr r0, [pc, 0xc8]                                |     r0 = *(0xc0e4);
    0x0000c01c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000c020 mov r2, 0x2b0                                     |     r2 = 0x2b0;
    0x0000c024 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000c028 add r0, pc, r0                                    |     r0 = pc + r0;
                                                                 |     do {
    0x0000c02c bl 0x6130                                         |         assert ();
                                                                 | label_10:
    0x0000c030 ldrd r2, r3, [r6, 0x10]                           |         __asm ("ldrd r2, r3, [r6, 0x10]");
    0x0000c034 ldrd r0, r1, [sp, 0x48]                           |         __asm ("ldrd r0, r1, [arg_48h]");
    0x0000c038 adds r8, r2, r4                                   |         r8 = r2 + r4;
    0x0000c03c adc sb, r3, r5                                    |         __asm ("adc sb, r3, r5");
    0x0000c040 adds r0, r0, sl                                   |         r0 += sl;
    0x0000c044 adc r1, r1, fp                                    |         __asm ("adc r1, r1, fp");
    0x0000c048 cmp sb, r1                                        |         
    0x0000c04c cmpeq r8, r0                                      |         __asm ("cmpeq r8, r0");
                                                                 |         if (sb >= r1) {
    0x0000c050 bhs 0xc074                                        |             goto label_11;
                                                                 |         }
    0x0000c054 ldr r3, [pc, 0x90]                                |         r3 = *(0xc0e8);
    0x0000c058 ldr r1, [pc, 0x90]                                |         r1 = *(0xc0ec);
    0x0000c05c ldr r0, [pc, 0x90]                                |         r0 = *(0xc0f0);
    0x0000c060 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000c064 ldr r2, [pc, 0x8c]                                |         r2 = *(0xc0f4);
    0x0000c068 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000c06c add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000c070 b 0xc02c                                          |         
                                                                 |     } while (1);
                                                                 | label_11:
    0x0000c074 bl 0x60ac                                         |     errno_location ();
    0x0000c078 mov r3, 0                                         |     r3 = 0;
    0x0000c07c ldr r6, [r6]                                      |     r6 = *(r6);
    0x0000c080 str r3, [r0]                                      |     *(r0) = r3;
    0x0000c084 orrs r3, sl, fp                                   |     r3 = sl | fp;
                                                                 |     if (r3 == sl) {
    0x0000c088 subne r4, sl, r4                                  |         r4 = sl - r4;
                                                                 |     }
                                                                 |     if (r3 == sl) {
    0x0000c08c addne r6, r6, r4                                  |         r6 += r4;
                                                                 |     }
    0x0000c090 b 0xbc64                                          |     goto label_0;
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xc118 */
                                                         | #include <stdint.h>
                                                         |  
                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                         |  
    ; (fcn) fcn.0000c118 ()                              | void fcn_0000c118 (int32_t arg_38h, int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_0h_2;
                                                         |     int32_t var_8h;
                                                         |     int32_t var_8h_2;
                                                         |     int32_t var_10h;
                                                         |     int32_t var_10h_2;
                                                         |     int32_t var_1ch;
                                                         |     r0 = arg1;
    0x0000c118 push {r4, r5, r6, r7, r8, sb, lr}         |     
    0x0000c11c mov sb, r3                                |     sb = r3;
    0x0000c120 ldr r3, [pc, 0xc4]                        |     r3 = *(0xc1e8);
    0x0000c124 mov r8, r2                                |     r8 = r2;
    0x0000c128 ldr r2, [pc, 0xc0]                        |     r2 = *(0xc1ec);
    0x0000c12c add r3, pc, r3                            |     r3 = pc + r3;
    0x0000c130 ldr r2, [r3, r2]                          |     
    0x0000c134 sub sp, sp, 0x1c                          |     
    0x0000c138 ldr r2, [r2]                              |     r2 = *(0xc1e8);
    0x0000c13c mov r4, r0                                |     r4 = r0;
    0x0000c140 tst r2, 0x100                             |     
    0x0000c144 ldrd r6, r7, [sp, 0x38]                   |     __asm ("ldrd r6, r7, [arg_38h]");
                                                         |     if ((r2 & 0x100) != 0) {
    0x0000c148 beq 0xc1a4                                |         
    0x0000c14c ldr r2, [pc, 0xa0]                        |         r2 = *(0xc1f0);
    0x0000c150 ldr r3, [r3, r2]                          |         r3 = *((r3 + r2));
    0x0000c154 ldr r5, [r3]                              |         r5 = *(r3);
    0x0000c158 bl 0x58fc                                 |         getpid ();
    0x0000c15c ldr r3, [pc, 0x94]                        |         r3 = *(0xc1f4);
    0x0000c160 ldr r1, [pc, 0x94]                        |         r1 = *(0xc1f8);
    0x0000c164 add r3, pc, r3                            |         r3 = pc + r3;
    0x0000c168 str r3, [sp]                              |         *(sp) = r3;
    0x0000c16c ldr r3, [pc, 0x8c]                        |         r3 = *(0xc1fc);
    0x0000c170 add r1, pc, r1                            |         r1 = pc + r1;
    0x0000c174 add r3, pc, r3                            |         r3 = pc + r3;
    0x0000c178 mov r2, r0                                |         r2 = r0;
    0x0000c17c mov r0, r5                                |         r0 = r5;
    0x0000c180 bl 0x5c50                                 |         fprintf (r0, r1, r2, r3)
    0x0000c184 ldrd r2, r3, [r4, 8]                      |         __asm ("ldrd r2, r3, [r4, 8]");
    0x0000c188 ldr r0, [pc, 0x74]                        |         r0 = *(0xc200);
    0x0000c18c strd r2, r3, [sp]                         |         __asm ("strd r2, r3, [sp]");
    0x0000c190 strd r8, sb, [sp, 0x10]                   |         __asm ("strd r8, sb, [var_10h]");
    0x0000c194 strd r6, r7, [sp, 8]                      |         __asm ("strd r6, r7, [var_8h]");
    0x0000c198 ldrd r2, r3, [r4, 0x10]                   |         __asm ("ldrd r2, r3, [r4, 0x10]");
    0x0000c19c add r0, pc, r0                            |         r0 = pc + r0;
    0x0000c1a0 bl 0xac7c                                 |         fcn_0000ac7c ();
                                                         |     }
    0x0000c1a4 ldr r3, [r4, 0x30]                        |     r3 = *((r4 + 0x30));
    0x0000c1a8 cmp r7, 0                                 |     
    0x0000c1ac bic r3, r3, 4                             |     r3 = BIT_MASK (r3, 4);
    0x0000c1b0 cmpeq r6, 0x168000                        |     __asm ("cmpeq r6, 0x168000");
    0x0000c1b4 strd r8, sb, [r4, 8]                      |     __asm ("strd r8, sb, [r4, 8]");
    0x0000c1b8 strd r6, r7, [r4, 0x10]                   |     __asm ("strd r6, r7, [r4, 0x10]");
    0x0000c1bc str r3, [r4, 0x30]                        |     *((r4 + 0x30)) = r3;
                                                         |     if (r7 <= 0) {
    0x0000c1c0 bhi 0xc1d8                                |         
    0x0000c1c4 ldr r2, [r4, 0x2c]                        |         r2 = *((r4 + 0x2c));
    0x0000c1c8 and r2, r2, 0xf000                        |         r2 &= 0xf000;
    0x0000c1cc cmp r2, 0x2000                            |         
                                                         |         if (r2 == 0x2000) {
    0x0000c1d0 orrne r3, r3, 4                           |             r3 |= 4;
                                                         |         }
                                                         |         if (r2 != 0x2000) {
    0x0000c1d4 strne r3, [r4, 0x30]                      |             *((r4 + 0x30)) = r3;
                                                         |             goto label_0;
                                                         |         }
                                                         |     }
                                                         | label_0:
    0x0000c1d8 mov r0, r4                                |     r0 = r4;
    0x0000c1dc bl 0x5f80                                 |     fcn_00005f80 ();
    0x0000c1e0 mov r0, 0                                 |     r0 = 0;
    0x0000c1e4 add sp, sp, 0x1c                          |     
    0x0000c1e8 pop {r4, r5, r6, r7, r8, sb, pc}          |     
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xc208 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0000c208 ()                                      | void fcn_0000c208 (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_0h_2;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_8h_2;
                                                                 |     int32_t var_14h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0000c208 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000c20c ldr r8, [pc, 0x178]                               |     r8 = *(0xc388);
    0x0000c210 subs r6, r1, 0                                    |     r6 = r1 - 0;
    0x0000c214 ldr sl, [pc, 0x174]                               |     sl = *(0xc38c);
                                                                 |     if (r6 == r1) {
    0x0000c218 addne r4, r6, 0x14                                |         r4 = r6 + 0x14;
                                                                 |     }
                                                                 |     if (r6 != r1) {
    0x0000c21c moveq r4, r6                                      |         r4 = r6;
                                                                 |     }
    0x0000c220 cmp r3, 0                                         |     
    0x0000c224 mov r7, r3                                        |     r7 = r3;
    0x0000c228 sub sp, sp, 0x14                                  |     
                                                                 |     if (r3 == 0) {
    0x0000c22c movne r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x0000c230 mov fp, r0                                        |     
    0x0000c234 mov sb, r2                                        |     sb = r2;
    0x0000c238 add r8, pc, r8                                    |     r8 = pc + r8;
                                                                 |     if (r3 == 0) {
    0x0000c23c strne r3, [r7]                                    |         *(r7) = r3;
                                                                 |     }
                                                                 | label_1:
    0x0000c240 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x0000c244 beq 0xc254                                        |         
    0x0000c248 ldr r3, [r4]                                      |         r3 = *(r4);
    0x0000c24c cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0000c250 bne 0xc270                                        |             goto label_2;
                                                                 |         }
                                                                 |     }
    0x0000c254 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x0000c258 beq 0xc37c                                        |         goto label_3;
                                                                 |     }
    0x0000c25c ldr r3, [r6, 0x14]                                |     r3 = *((r6 + 0x14));
    0x0000c260 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000c264 movne r5, 1                                       |         r5 = 1;
                                                                 |     }
                                                                 |     if (r3 != 0) {
    0x0000c268 bne 0xc2c4                                        |         goto label_0;
                                                                 |     }
    0x0000c26c b 0xc37c                                          |     goto label_3;
                                                                 | label_2:
    0x0000c270 ldr r2, [r4, 0xc]                                 |     r2 = *((r4 + 0xc));
    0x0000c274 ldr r3, [r4, 8]                                   |     r3 = *((r4 + 8));
    0x0000c278 mov r1, 0                                         |     r1 = 0;
    0x0000c27c add r3, r3, r2, lsr 10                            |     r3 += (r2 >> 10);
    0x0000c280 lsl r3, r3, 0xa                                   |     r3 <<= 0xa;
    0x0000c284 mov r0, r3                                        |     r0 = r3;
    0x0000c288 mov r2, 0x400                                     |     r2 = 0x400;
    0x0000c28c mov r3, 0                                         |     r3 = 0;
    0x0000c290 strd r0, r1, [sp, 8]                              |     __asm ("strd r0, r1, [var_8h]");
    0x0000c294 strd r2, r3, [sp]                                 |     __asm ("strd r2, r3, [sp]");
    0x0000c298 mov r2, r0                                        |     r2 = r0;
    0x0000c29c mov r3, r1                                        |     r3 = r1;
    0x0000c2a0 mov r0, fp                                        |     r0 = fp;
    0x0000c2a4 bl 0xbc24                                         |     r0 = fcn_0000bc24 (r0, r1, r2);
    0x0000c2a8 subs r1, r0, 0                                    |     r1 = r0 - 0;
                                                                 |     if (r1 != r0) {
    0x0000c2ac bne 0xc2d0                                        |         goto label_4;
                                                                 |     }
    0x0000c2b0 bl 0x60ac                                         |     r0 = errno_location ();
    0x0000c2b4 ldr r5, [r0]                                      |     r5 = *(r0);
    0x0000c2b8 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0000c2bc beq 0xc384                                        |         goto label_5;
                                                                 |     }
    0x0000c2c0 rsb r5, r5, 0                                     |     r5 -= ;
                                                                 |     do {
                                                                 | label_0:
    0x0000c2c4 mov r0, r5                                        |         r0 = r5;
    0x0000c2c8 add sp, sp, 0x14                                  |         
    0x0000c2cc pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_4:
    0x0000c2d0 ldr r3, [r4, 0xc]                                 |         r3 = *((r4 + 0xc));
    0x0000c2d4 ldr r2, [r4, 4]                                   |         r2 = *((r4 + 4));
    0x0000c2d8 and r3, r3, sl                                    |         r3 &= sl;
    0x0000c2dc add r1, r1, r3                                    |         r1 += r3;
    0x0000c2e0 ldr r0, [r4]                                      |         r0 = *(r4);
    0x0000c2e4 bl 0x5dc4                                         |         r0 = memcmp (r0, r1, r2);
    0x0000c2e8 subs r5, r0, 0                                    |         r5 = r0 - 0;
                                                                 |         if (r5 != r0) {
    0x0000c2ec bne 0xc384                                        |             goto label_5;
                                                                 |         }
    0x0000c2f0 ldr r3, [pc, 0x9c]                                |         
    0x0000c2f4 ldr r3, [r8, r3]                                  |         r3 = *((r8 + r3));
    0x0000c2f8 ldr r3, [r3]                                      |         r3 = *(0xc390);
    0x0000c2fc tst r3, 0x100                                     |         
                                                                 |         if ((r3 & 0x100) != 0) {
    0x0000c300 beq 0xc350                                        |             
    0x0000c304 ldr r3, [pc, 0x8c]                                |             r3 = *(0xc394);
    0x0000c308 ldr r3, [r8, r3]                                  |             r3 = *((r8 + r3));
    0x0000c30c ldr r6, [r3]                                      |             r6 = *(0xc394);
    0x0000c310 bl 0x58fc                                         |             getpid ();
    0x0000c314 ldr r3, [pc, 0x80]                                |             r3 = *(0xc398);
    0x0000c318 ldr r1, [pc, 0x80]                                |             r1 = *(0xc39c);
    0x0000c31c add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000c320 str r3, [sp]                                      |             *(sp) = r3;
    0x0000c324 ldr r3, [pc, 0x78]                                |             r3 = *(0xc3a0);
    0x0000c328 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000c32c add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000c330 mov r2, r0                                        |             r2 = r0;
    0x0000c334 mov r0, r6                                        |             r0 = r6;
    0x0000c338 bl 0x5c50                                         |             fprintf (r0, r1, r2, r3)
    0x0000c33c ldr r0, [pc, 0x64]                                |             r0 = *(0xc3a4);
    0x0000c340 ldr r2, [r4, 8]                                   |             r2 = *((r4 + 8));
    0x0000c344 ldr r1, [r4, 0xc]                                 |             r1 = *((r4 + 0xc));
    0x0000c348 add r0, pc, r0                                    |             r0 = pc + r0;
    0x0000c34c bl 0xac7c                                         |             fcn_0000ac7c ();
                                                                 |         }
    0x0000c350 cmp sb, 0                                         |         
                                                                 |         if (sb != 0) {
    0x0000c354 beq 0xc370                                        |             
    0x0000c358 ldr r3, [r4, 0xc]                                 |             r3 = *((r4 + 0xc));
    0x0000c35c and sl, sl, r3                                    |             sl &= r3;
    0x0000c360 ldrd r2, r3, [sp, 8]                              |             __asm ("ldrd r2, r3, [var_8h]");
    0x0000c364 adds r2, r2, sl                                   |             r2 += sl;
    0x0000c368 adc r3, r3, 0                                     |             __asm ("adc r3, r3, 0");
    0x0000c36c strd r2, r3, [sb]                                 |             __asm ("strd r2, r3, [sb]");
                                                                 |         }
    0x0000c370 cmp r7, 0                                         |         
                                                                 |         if (r7 == 0) {
    0x0000c374 strne r4, [r7]                                    |             *(r7) = r4;
                                                                 |         }
    0x0000c378 bne 0xc2c4                                        |         
                                                                 |     } while (r7 != 0);
                                                                 | label_3:
    0x0000c37c mov r5, 0                                         |     r5 = 0;
    0x0000c380 b 0xc2c4                                          |     goto label_0;
                                                                 | label_5:
    0x0000c384 add r4, r4, 0x10                                  |     r4 += 0x10;
    0x0000c388 b 0xc240                                          |     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 @ 0xc540 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0000c540 ()                                  | void fcn_0000c540 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0000c540 push {r0, r1, r2, r4, r5, r6, r7, lr}         |     
    0x0000c544 ldr r6, [pc, 0xb8]                            |     r6 = *(0xc600);
    0x0000c548 mov r5, r0                                    |     r5 = r0;
    0x0000c54c mov r7, r1                                    |     r7 = r1;
    0x0000c550 mov r0, 1                                     |     r0 = 1;
    0x0000c554 mov r1, 0x18                                  |     r1 = 0x18;
    0x0000c558 bl 0x5bf0                                     |     calloc (r0, r1);
    0x0000c55c add r6, pc, r6                                |     r6 = pc + r6;
    0x0000c560 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 != r0) {
    0x0000c564 beq 0xc5f8                                    |         
    0x0000c568 ldr r2, [r5, 0xa8]                            |         r2 = *((r5 + 0xa8));
    0x0000c56c add r3, r4, 0x10                              |         r3 = r4 + 0x10;
    0x0000c570 str r2, [r4, 0xc]                             |         *((r4 + 0xc)) = r2;
    0x0000c574 ldr r2, [r5, 0xb0]                            |         r2 = *((r5 + 0xb0));
    0x0000c578 str r3, [r5, 0xb0]                            |         *((r5 + 0xb0)) = r3;
    0x0000c57c add r5, r5, 0xac                              |         r5 += 0xac;
    0x0000c580 str r7, [r4]                                  |         *(r4) = r7;
    0x0000c584 str r5, [r4, 0x10]                            |         *((r4 + 0x10)) = r5;
    0x0000c588 str r2, [r4, 0x14]                            |         *((r4 + 0x14)) = r2;
    0x0000c58c str r3, [r2]                                  |         *(r2) = r3;
    0x0000c590 ldr r3, [pc, 0x70]                            |         
    0x0000c594 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x0000c598 ldr r3, [r3]                                  |         r3 = *(0xc604);
    0x0000c59c tst r3, 0x100                                 |         
                                                             |         if ((r3 & 0x100) == 0) {
    0x0000c5a0 beq 0xc5f8                                    |             goto label_0;
                                                             |         }
    0x0000c5a4 ldr r3, [pc, 0x60]                            |         r3 = *(0xc608);
    0x0000c5a8 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x0000c5ac ldr r5, [r3]                                  |         r5 = *(0xc608);
    0x0000c5b0 bl 0x58fc                                     |         getpid ();
    0x0000c5b4 ldr r3, [pc, 0x54]                            |         r3 = *(0xc60c);
    0x0000c5b8 ldr r1, [pc, 0x54]                            |         r1 = *(0xc610);
    0x0000c5bc add r3, pc, r3                                |         r3 = pc + r3;
    0x0000c5c0 str r3, [sp]                                  |         *(sp) = r3;
    0x0000c5c4 ldr r3, [pc, 0x4c]                            |         
    0x0000c5c8 add r1, pc, r1                                |         r1 = pc + r1;
    0x0000c5cc add r3, pc, r3                                |         r3 = pc + r3;
    0x0000c5d0 mov r2, r0                                    |         r2 = r0;
    0x0000c5d4 mov r0, r5                                    |         r0 = r5;
    0x0000c5d8 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x0000c5dc ldr r3, [r4, 0xc]                             |         r3 = *((r4 + 0xc));
    0x0000c5e0 ldr r0, [pc, 0x34]                            |         r0 = *(0xc618);
    0x0000c5e4 ldr r3, [r3]                                  |         r3 = *(0xc614);
    0x0000c5e8 mov r1, r7                                    |         r1 = r7;
    0x0000c5ec ldr r2, [r3, 4]                               |         r2 = *(0xc618);
    0x0000c5f0 add r0, pc, r0                                |         r0 = pc + r0;
    0x0000c5f4 bl 0xac7c                                     |         fcn_0000ac7c ();
                                                             |     }
                                                             | label_0:
    0x0000c5f8 mov r0, r4                                    |     r0 = r4;
    0x0000c5fc add sp, sp, 0xc                               |     
    0x0000c600 pop {r4, r5, r6, r7, pc}                      |     
                                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xc82c */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0000c82c ()                                          | void fcn_0000c82c (int32_t arg_28h, int32_t arg1) {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_0h_2;
                                                                     |     int32_t var_8h;
                                                                     |     r0 = arg1;
    0x0000c82c push {r0, r1, r4, r5, r6, r7, r8, sb, sl, lr}         |     
    0x0000c830 ldr sl, [pc, 0x10c]                                   |     sl = *(0x0000c944);
    0x0000c834 ldrd r6, r7, [sp, 0x28]                               |     __asm ("ldrd r6, r7, [arg_28h]");
    0x0000c838 add sl, pc, sl                                        |     sl = pc + sl;
    0x0000c83c cmp r3, r7                                            |     
    0x0000c840 cmpeq r2, r6                                          |     __asm ("cmpeq r2, r6");
                                                                     |     if (r3 != r7) {
    0x0000c844 beq 0xc938                                            |         
    0x0000c848 mov r5, r3                                            |         r5 = r3;
    0x0000c84c mov r8, r0                                            |         r8 = r0;
    0x0000c850 mov r4, r2                                            |         r4 = r2;
    0x0000c854 bl 0xb3b0                                             |         fcn_0000b3b0 (r0);
    0x0000c858 ldr r3, [pc, 0xe8]                                    |         
    0x0000c85c ldr r3, [sl, r3]                                      |         r3 = *((sl + r3));
    0x0000c860 ldr r3, [r3]                                          |         r3 = *(0xc944);
    0x0000c864 tst r3, 0x100                                         |         
    0x0000c868 mov sb, r0                                            |         sb = r0;
                                                                     |         if ((r3 & 0x100) != 0) {
    0x0000c86c beq 0xc8fc                                            |             
    0x0000c870 ldr r3, [pc, 0xd4]                                    |             r3 = *(0xc948);
    0x0000c874 ldr r3, [sl, r3]                                      |             r3 = *((sl + r3));
    0x0000c878 ldr sl, [r3]                                          |             sl = *(0xc948);
    0x0000c87c bl 0x58fc                                             |             getpid ();
    0x0000c880 ldr r3, [pc, 0xc8]                                    |             r3 = *(0xc94c);
    0x0000c884 ldr r1, [pc, 0xc8]                                    |             r1 = *(0xc950);
    0x0000c888 add r3, pc, r3                                        |             r3 = pc + r3;
    0x0000c88c str r3, [sp]                                          |             *(sp) = r3;
    0x0000c890 ldr r3, [pc, 0xc0]                                    |             r3 = *(0xc954);
    0x0000c894 add r1, pc, r1                                        |             r1 = pc + r1;
    0x0000c898 add r3, pc, r3                                        |             r3 = pc + r3;
    0x0000c89c mov r2, r0                                            |             r2 = r0;
    0x0000c8a0 mov r0, sl                                            |             r0 = sl;
    0x0000c8a4 bl 0x5c50                                             |             fprintf (r0, r1, r2, r3)
    0x0000c8a8 mov r0, r8                                            |             r0 = r8;
    0x0000c8ac bl 0xb3b0                                             |             r0 = fcn_0000b3b0 (r0);
    0x0000c8b0 subs r1, r0, 0                                        |             r1 = r0 - 0;
                                                                     |             if (r1 != r0) {
    0x0000c8b4 beq 0xc8e4                                            |                 
    0x0000c8b8 ldr r3, [r1, 0x10]                                    |                 r3 = *((r1 + 0x10));
    0x0000c8bc cmp r3, 0                                             |                 
                                                                     |                 if (r3 >= 0) {
    0x0000c8c0 blt 0xc8e0                                            |                     
    0x0000c8c4 ldr r2, [r1]                                          |                     r2 = *(r1);
    0x0000c8c8 ldr r1, [r2, 0x18]                                    |                     r1 = *((r2 + 0x18));
    0x0000c8cc cmp r3, r1                                            |                     
                                                                     |                     if (r3 >= r1) {
    0x0000c8d0 ldrlo r2, [r2, 0x14]                                  |                         r2 = *((r2 + 0x14));
                                                                     |                     }
                                                                     |                     if (r3 >= r1) {
    0x0000c8d4 ldrlo r3, [r2, r3, lsl 2]                             |                         offset_0 = r3 << 2;
                                                                     |                         r3 = *((r2 + offset_0));
                                                                     |                     }
                                                                     |                     if (r3 >= r1) {
    0x0000c8d8 ldrlo r1, [r3]                                        |                         r1 = *(r3);
                                                                     |                     }
                                                                     |                     if (r3 <= r1) {
    0x0000c8dc blo 0xc8e4                                            |                         goto label_0;
                                                                     |                     }
                                                                     |                 }
    0x0000c8e0 mov r1, 0                                             |                 r1 = 0;
                                                                     |             }
                                                                     | label_0:
    0x0000c8e4 ldr r0, [pc, 0x70]                                    |             r0 = *(0xc958);
    0x0000c8e8 strd r6, r7, [sp]                                     |             __asm ("strd r6, r7, [sp]");
    0x0000c8ec mov r2, r4                                            |             r2 = r4;
    0x0000c8f0 mov r3, r5                                            |             r3 = r5;
    0x0000c8f4 add r0, pc, r0                                        |             r0 = pc + r0;
    0x0000c8f8 bl 0xac7c                                             |             fcn_0000ac7c ();
                                                                     |         }
    0x0000c8fc ldr r3, [sb]                                          |         r3 = *(sb);
    0x0000c900 ldr r3, [r3]                                          |         r3 = *(r3);
    0x0000c904 cmp r3, 0                                             |         
                                                                     |         if (r3 == 0) {
    0x0000c908 movne r0, 0                                           |             r0 = 0;
                                                                     |         }
                                                                     |         if (r3 != 0) {
    0x0000c90c bne 0xc93c                                            |             goto label_1;
                                                                     |         }
    0x0000c910 ldr r0, [sb, 8]                                       |         r0 = *((sb + 8));
    0x0000c914 ands r0, r0, 0x400                                    |         r0 &= 0x400;
                                                                     |         if (r0 == r0) {
    0x0000c918 beq 0xc93c                                            |             goto label_1;
                                                                     |         }
    0x0000c91c ldr r2, [pc, 0x3c]                                    |         r2 = *(0xc95c);
    0x0000c920 ldr r1, [pc, 0x3c]                                    |         r1 = *(0xc960);
    0x0000c924 mov r3, 2                                             |         r3 = 2;
    0x0000c928 add r2, pc, r2                                        |         r2 = pc + r2;
    0x0000c92c add r1, pc, r1                                        |         r1 = pc + r1;
    0x0000c930 mov r0, r8                                            |         r0 = r8;
    0x0000c934 bl 0xc668                                             |         fcn_0000c668 (r0, r1);
                                                                     |     }
    0x0000c938 mov r0, 1                                             |     r0 = 1;
                                                                     | label_1:
    0x0000c93c add sp, sp, 8                                         |     
    0x0000c940 pop {r4, r5, r6, r7, r8, sb, sl, pc}                  |     
                                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xcbd0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0000cbd0 ()                                  | void fcn_0000cbd0 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0000cbd0 push {r0, r1, r4, r5, r6, r7, r8, lr}         |     
    0x0000cbd4 ldr r4, [r0, 0xac]                            |     r4 = *((r0 + 0xac));
    0x0000cbd8 ldr r6, [pc, 0xac]                            |     r6 = *(0xcc88);
    0x0000cbdc add r7, r0, 0xac                              |     r7 = r0 + 0xac;
    0x0000cbe0 cmp r7, r4                                    |     
    0x0000cbe4 add r6, pc, r6                                |     r6 = pc + r6;
                                                             |     if (r7 == r4) {
    0x0000cbe8 beq 0xcc84                                    |         goto label_1;
                                                             |     }
    0x0000cbec mov r8, r1                                    |     r8 = r1;
                                                             |     do {
    0x0000cbf0 ldr r1, [r4, -0x10]                           |         r1 = *((r4 - 0x10));
    0x0000cbf4 sub r5, r4, 0x10                              |         r5 = r4 - 0x10;
    0x0000cbf8 cmp r1, 0                                     |         
                                                             |         if (r1 != 0) {
    0x0000cbfc beq 0xcc78                                    |             
    0x0000cc00 mov r0, r8                                    |             r0 = r8;
    0x0000cc04 bl 0x5efc                                     |             r0 = strcmp (r0, r1);
    0x0000cc08 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x0000cc0c bne 0xcc78                                    |                 goto label_2;
                                                             |             }
    0x0000cc10 ldr r3, [pc, 0x78]                            |             
    0x0000cc14 ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x0000cc18 ldr r3, [r3]                                  |             r3 = *(0xcc8c);
    0x0000cc1c tst r3, 0x100                                 |             
                                                             |             if ((r3 & 0x100) != 0) {
    0x0000cc20 beq 0xcc6c                                    |                 
    0x0000cc24 ldr r3, [pc, 0x68]                            |                 r3 = *(0xcc90);
    0x0000cc28 ldr r3, [r6, r3]                              |                 r3 = *((r6 + r3));
    0x0000cc2c ldr r6, [r3]                                  |                 r6 = *(0xcc90);
    0x0000cc30 bl 0x58fc                                     |                 getpid ();
    0x0000cc34 ldr r3, [pc, 0x5c]                            |                 r3 = *(0xcc94);
    0x0000cc38 ldr r1, [pc, 0x5c]                            |                 r1 = *(0xcc98);
    0x0000cc3c add r3, pc, r3                                |                 r3 = pc + r3;
    0x0000cc40 str r3, [sp]                                  |                 *(sp) = r3;
    0x0000cc44 ldr r3, [pc, 0x54]                            |                 r3 = *(0xcc9c);
    0x0000cc48 add r1, pc, r1                                |                 r1 = pc + r1;
    0x0000cc4c add r3, pc, r3                                |                 r3 = pc + r3;
    0x0000cc50 mov r2, r0                                    |                 r2 = r0;
    0x0000cc54 mov r0, r6                                    |                 r0 = r6;
    0x0000cc58 bl 0x5c50                                     |                 fprintf (r0, r1, r2, r3)
    0x0000cc5c ldr r0, [pc, 0x40]                            |                 r0 = *(0xcca0);
    0x0000cc60 ldr r1, [r4, -0x10]                           |                 r1 = *((r4 - 0x10));
    0x0000cc64 add r0, pc, r0                                |                 r0 = pc + r0;
    0x0000cc68 bl 0xac7c                                     |                 fcn_0000ac7c ();
                                                             |             }
                                                             | label_0:
    0x0000cc6c mov r0, r5                                    |             r0 = r5;
    0x0000cc70 add sp, sp, 8                                 |             
    0x0000cc74 pop {r4, r5, r6, r7, r8, pc}                  |             
                                                             |         }
                                                             | label_2:
    0x0000cc78 ldr r4, [r4]                                  |         r4 = *(r4);
    0x0000cc7c cmp r7, r4                                    |         
    0x0000cc80 bne 0xcbf0                                    |         
                                                             |     } while (r7 != r4);
                                                             | label_1:
    0x0000cc84 mov r5, 0                                     |     r5 = 0;
    0x0000cc88 b 0xcc6c                                      |     goto label_0;
                                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xd0f4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0000d0f4 ()                      | void fcn_0000d0f4 (int32_t arg_28h, int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_0h_2;
                                                 |     int32_t var_8h;
                                                 |     int32_t var_8h_2;
                                                 |     int32_t var_14h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x0000d0f4 push {r4, r5, r6, r7, lr}         |     
    0x0000d0f8 sub sp, sp, 0x14                  |     
    0x0000d0fc mov r4, r0                        |     r4 = r0;
    0x0000d100 ldrd r0, r1, [sp, 0x28]           |     __asm ("ldrd r0, r1, [arg_28h]");
    0x0000d104 mov r7, r3                        |     r7 = r3;
    0x0000d108 ldr r3, [pc, 0x144]               |     r3 = *(0xd250);
    0x0000d10c mov r6, r2                        |     r6 = r2;
    0x0000d110 orrs r2, r0, r1                   |     r2 = r0 | r1;
    0x0000d114 add r3, pc, r3                    |     r3 = pc + r3;
                                                 |     if (r2 != r0) {
    0x0000d118 bne 0xd194                        |         goto label_1;
                                                 |     }
    0x0000d11c ldr r2, [pc, 0x134]               |     
    0x0000d120 ldr r2, [r3, r2]                  |     r2 = *((r3 + r2));
    0x0000d124 ldr r2, [r2]                      |     r2 = *(0xd254);
    0x0000d128 tst r2, 0x100                     |     
                                                 |     if ((r2 & 0x100) != 0) {
    0x0000d12c beq 0xd174                        |         
    0x0000d130 ldr r2, [pc, 0x124]               |         r2 = *(0xd258);
    0x0000d134 ldr r3, [r3, r2]                  |         r3 = *((r3 + r2));
    0x0000d138 ldr r5, [r3]                      |         r5 = *(r3);
    0x0000d13c bl 0x58fc                         |         getpid ();
    0x0000d140 ldr r3, [pc, 0x118]               |         r3 = *(0xd25c);
    0x0000d144 ldr r1, [pc, 0x118]               |         r1 = *(0xd260);
    0x0000d148 add r3, pc, r3                    |         r3 = pc + r3;
    0x0000d14c str r3, [sp]                      |         *(sp) = r3;
    0x0000d150 ldr r3, [pc, 0x110]               |         r3 = *(0xd264);
    0x0000d154 add r1, pc, r1                    |         r1 = pc + r1;
    0x0000d158 add r3, pc, r3                    |         r3 = pc + r3;
    0x0000d15c mov r2, r0                        |         r2 = r0;
    0x0000d160 mov r0, r5                        |         r0 = r5;
    0x0000d164 bl 0x5c50                         |         fprintf (r0, r1, r2, r3)
    0x0000d168 ldr r0, [pc, 0xfc]                |         r0 = *(0xd268);
    0x0000d16c add r0, pc, r0                    |         r0 = pc + r0;
    0x0000d170 bl 0xac7c                         |         fcn_0000ac7c ();
                                                 |     }
    0x0000d174 mov r3, 0                         |     r3 = 0;
    0x0000d178 mov r2, 0                         |     r2 = 0;
    0x0000d17c strd r2, r3, [r4, 0x38]           |     __asm ("strd r2, r3, [r4, 0x38]");
    0x0000d180 strd r2, r3, [r4, 0x40]           |     __asm ("strd r2, r3, [r4, 0x40]");
    0x0000d184 mov r3, 0                         |     r3 = 0;
    0x0000d188 str r3, [r4, 0x48]                |     *((r4 + 0x48)) = r3;
                                                 |     do {
                                                 | label_0:
    0x0000d18c add sp, sp, 0x14                  |         
    0x0000d190 pop {r4, r5, r6, r7, pc}          |         
                                                 | label_1:
    0x0000d194 ldr r5, [r4, 0xa8]                |         r5 = *((r4 + 0xa8));
    0x0000d198 cmp r5, 0                         |         
    0x0000d19c beq 0xd18c                        |         
                                                 |     } while (r5 == 0);
    0x0000d1a0 ldr r2, [r5]                      |     r2 = *(r5);
    0x0000d1a4 cmp r2, 0                         |     
                                                 |     if (r2 == 0) {
    0x0000d1a8 beq 0xd18c                        |         goto label_0;
                                                 |     }
    0x0000d1ac ldr ip, [r5, 0x10]                |     ip = *((r5 + 0x10));
    0x0000d1b0 cmp ip, 0                         |     
                                                 |     if (ip < 0) {
    0x0000d1b4 blt 0xd18c                        |         goto label_0;
                                                 |     }
    0x0000d1b8 ldr r2, [r2, 0x18]                |     r2 = *((r2 + 0x18));
    0x0000d1bc cmp ip, r2                        |     
                                                 |     if (ip >= r2) {
    0x0000d1c0 bhs 0xd18c                        |         goto label_0;
                                                 |     }
    0x0000d1c4 ldr r2, [pc, 0x8c]                |     
    0x0000d1c8 strd r0, r1, [r4, 0x40]           |     __asm ("strd r0, r1, [r4, 0x40]");
    0x0000d1cc strd r6, r7, [r4, 0x38]           |     __asm ("strd r6, r7, [r4, 0x38]");
    0x0000d1d0 str r5, [r4, 0x48]                |     *((r4 + 0x48)) = r5;
    0x0000d1d4 ldr r2, [r3, r2]                  |     r2 = *((r3 + r2));
    0x0000d1d8 ldr r2, [r2]                      |     r2 = *(0xd254);
    0x0000d1dc tst r2, 0x100                     |     
                                                 |     if ((r2 & 0x100) == 0) {
    0x0000d1e0 beq 0xd18c                        |         goto label_0;
                                                 |     }
    0x0000d1e4 ldr r2, [pc, 0x70]                |     r2 = *(0xd258);
    0x0000d1e8 ldr r3, [r3, r2]                  |     r3 = *((r3 + r2));
    0x0000d1ec ldr r6, [r3]                      |     r6 = *(r3);
    0x0000d1f0 bl 0x58fc                         |     getpid ();
    0x0000d1f4 ldr r3, [pc, 0x74]                |     r3 = *(0xd26c);
    0x0000d1f8 ldr r1, [pc, 0x74]                |     r1 = *(0xd270);
    0x0000d1fc add r3, pc, r3                    |     r3 = pc + r3;
    0x0000d200 str r3, [sp]                      |     *(sp) = r3;
    0x0000d204 ldr r3, [pc, 0x6c]                |     r3 = *(0xd274);
    0x0000d208 add r1, pc, r1                    |     r1 = pc + r1;
    0x0000d20c add r3, pc, r3                    |     r3 = pc + r3;
    0x0000d210 mov r2, r0                        |     r2 = r0;
    0x0000d214 mov r0, r6                        |     r0 = r6;
    0x0000d218 bl 0x5c50                         |     fprintf (r0, r1, r2, r3)
    0x0000d21c ldr r3, [r5]                      |     r3 = *(r5);
    0x0000d220 ldr r1, [r5, 0x10]                |     r1 = *((r5 + 0x10));
    0x0000d224 ldr r2, [r3, 0x14]                |     
    0x0000d228 ldr r2, [r2, r1, lsl 2]           |     
    0x0000d22c ldrd r0, r1, [r4, 0x40]           |     __asm ("ldrd r0, r1, [r4, 0x40]");
    0x0000d230 strd r0, r1, [sp, 8]              |     __asm ("strd r0, r1, [var_8h]");
    0x0000d234 ldrd r0, r1, [r4, 0x38]           |     __asm ("ldrd r0, r1, [r4, 0x38]");
    0x0000d238 strd r0, r1, [sp]                 |     __asm ("strd r0, r1, [sp]");
    0x0000d23c ldr r0, [pc, 0x38]                |     r0 = *(0xd278);
    0x0000d240 ldr r2, [r2]                      |     r2 = *(0xd288);
    0x0000d244 ldr r1, [r3, 4]                   |     r1 = *(0xd278);
    0x0000d248 add r0, pc, r0                    |     r0 = pc + r0;
    0x0000d24c bl 0xac7c                         |     fcn_0000ac7c ();
    0x0000d250 b 0xd18c                          |     goto label_0;
                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xdaac */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0000daac ()                                  | void fcn_0000daac (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     r0 = arg1;
    0x0000daac push {r0, r1, r4, r5, r6, r8, sb, lr}         |     
    0x0000dab0 ldr r5, [pc, 0x10c]                           |     r5 = *(0xdbc0);
    0x0000dab4 mov r4, r0                                    |     r4 = r0;
    0x0000dab8 add r5, pc, r5                                |     r5 = pc + r5;
                                                             |     do {
    0x0000dabc mov r0, r4                                    |         r0 = r4;
    0x0000dac0 bl 0x5b24                                     |         r0 = fcn_00005b24 ();
    0x0000dac4 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0000dac8 beq 0xdae0                                    |             goto label_4;
                                                             |         }
                                                             | label_2:
    0x0000dacc mov r0, 0                                     |         r0 = 0;
                                                             | label_1:
    0x0000dad0 add sp, sp, 8                                 |         
    0x0000dad4 pop {r4, r5, r6, r8, sb, pc}                  |         
                                                             | label_0:
    0x0000dad8 mov r4, r6                                    |         r4 = r6;
    0x0000dadc b 0xdabc                                      |         
                                                             |     } while (1);
                                                             | label_4:
    0x0000dae0 ldr r6, [r4, 0xb4]                            |     r6 = *((r4 + 0xb4));
    0x0000dae4 cmp r6, 0                                     |     
                                                             |     if (r6 != 0) {
    0x0000dae8 bne 0xdad8                                    |         goto label_0;
                                                             |     }
    0x0000daec mov r0, r4                                    |     r0 = r4;
    0x0000daf0 bl 0x607c                                     |     r0 = fcn_0000607c ();
    0x0000daf4 mov r8, r0                                    |     r8 = r0;
    0x0000daf8 ldr r0, [r4, 0xb8]                            |     r0 = *((r4 + 0xb8));
    0x0000dafc mov sb, r1                                    |     sb = r1;
    0x0000db00 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0000db04 beq 0xdb20                                    |         
    0x0000db08 ldrd r2, r3, [r0, 0x18]                       |         __asm ("ldrd r2, r3, [r0, 0x18]");
    0x0000db0c cmp r3, r1                                    |         
    0x0000db10 cmpeq r2, r8                                  |         __asm ("cmpeq r2, r8");
                                                             |         if (r3 == r1) {
    0x0000db14 beq 0xdb20                                    |             goto label_5;
                                                             |         }
    0x0000db18 bl 0x5cbc                                     |         fcn_00005cbc ();
    0x0000db1c str r6, [r4, 0xb8]                            |         *((r4 + 0xb8)) = r6;
                                                             |     }
                                                             | label_5:
    0x0000db20 ldr r3, [r4, 0xb8]                            |     r3 = *((r4 + 0xb8));
    0x0000db24 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0000db28 beq 0xdb34                                    |         
                                                             | label_3:
    0x0000db2c ldr r0, [r4, 0xb8]                            |         r0 = *((r4 + 0xb8));
    0x0000db30 b 0xdad0                                      |         goto label_1;
                                                             |     }
    0x0000db34 mov r0, r8                                    |     r0 = r8;
    0x0000db38 mov r1, sb                                    |     r1 = sb;
    0x0000db3c bl 0x5740                                     |     r0 = fcn_00005740 ();
    0x0000db40 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 == r0) {
    0x0000db44 beq 0xdacc                                    |         goto label_2;
                                                             |     }
    0x0000db48 ldr r3, [pc, 0x78]                            |     
    0x0000db4c ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x0000db50 ldr r3, [r3]                                  |     r3 = *(0xdbc4);
    0x0000db54 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) != 0) {
    0x0000db58 beq 0xdba0                                    |         
    0x0000db5c ldr r3, [pc, 0x68]                            |         r3 = *(0xdbc8);
    0x0000db60 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x0000db64 ldr r5, [r3]                                  |         r5 = *(0xdbc8);
    0x0000db68 bl 0x58fc                                     |         getpid ();
    0x0000db6c ldr r3, [pc, 0x5c]                            |         r3 = *(0xdbcc);
    0x0000db70 ldr r1, [pc, 0x5c]                            |         r1 = *(0xdbd0);
    0x0000db74 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000db78 str r3, [sp]                                  |         *(sp) = r3;
    0x0000db7c ldr r3, [pc, 0x54]                            |         r3 = *(0xdbd4);
    0x0000db80 add r1, pc, r1                                |         r1 = pc + r1;
    0x0000db84 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000db88 mov r2, r0                                    |         r2 = r0;
    0x0000db8c mov r0, r5                                    |         r0 = r5;
    0x0000db90 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x0000db94 ldr r0, [pc, 0x40]                            |         r0 = *(0xdbd8);
    0x0000db98 add r0, pc, r0                                |         r0 = pc + r0;
    0x0000db9c bl 0xac7c                                     |         fcn_0000ac7c ();
                                                             |     }
    0x0000dba0 mov r0, r6                                    |     r0 = r6;
    0x0000dba4 bl 0x5a1c                                     |     fcn_00005a1c ();
    0x0000dba8 str r0, [r4, 0xb8]                            |     *((r4 + 0xb8)) = r0;
    0x0000dbac mov r0, r6                                    |     r0 = r6;
    0x0000dbb0 bl 0x6220                                     |     free (r0);
    0x0000dbb4 ldr r3, [r4, 0xb8]                            |     r3 = *((r4 + 0xb8));
    0x0000dbb8 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0000dbbc bne 0xdb2c                                    |         goto label_3;
                                                             |     }
    0x0000dbc0 b 0xdacc                                      |     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 @ 0xdbe0 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0000dbe0 ()                          | void fcn_0000dbe0 (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_0h_2;
                                                     |     int32_t var_ch;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0000dbe0 ldr r3, [pc, 0x88]                    |     r3 = *(0xdc6c);
    0x0000dbe4 push {r0, r1, r2, r4, r5, lr}         |     
    0x0000dbe8 ldr r2, [pc, 0x84]                    |     r2 = *(0xdc70);
    0x0000dbec add r3, pc, r3                        |     r3 = pc + r3;
    0x0000dbf0 ldr r2, [r3, r2]                      |     
    0x0000dbf4 mov r4, r0                            |     r4 = r0;
    0x0000dbf8 ldr r2, [r2]                          |     r2 = *(0xdc6c);
    0x0000dbfc tst r2, 0x100                         |     
                                                     |     if ((r2 & 0x100) != 0) {
    0x0000dc00 beq 0xdc48                            |         
    0x0000dc04 ldr r2, [pc, 0x6c]                    |         r2 = *(0xdc74);
    0x0000dc08 ldr r3, [r3, r2]                      |         r3 = *((r3 + r2));
    0x0000dc0c ldr r5, [r3]                          |         r5 = *(r3);
    0x0000dc10 bl 0x58fc                             |         getpid ();
    0x0000dc14 ldr r3, [pc, 0x60]                    |         r3 = *(0xdc78);
    0x0000dc18 ldr r1, [pc, 0x60]                    |         r1 = *(0xdc7c);
    0x0000dc1c add r3, pc, r3                        |         r3 = pc + r3;
    0x0000dc20 str r3, [sp]                          |         *(sp) = r3;
    0x0000dc24 ldr r3, [pc, 0x58]                    |         r3 = *(0xdc80);
    0x0000dc28 add r1, pc, r1                        |         r1 = pc + r1;
    0x0000dc2c add r3, pc, r3                        |         r3 = pc + r3;
    0x0000dc30 mov r2, r0                            |         r2 = r0;
    0x0000dc34 mov r0, r5                            |         r0 = r5;
    0x0000dc38 bl 0x5c50                             |         fprintf (r0, r1, r2, r3)
    0x0000dc3c ldr r0, [pc, 0x44]                    |         r0 = *(0xdc84);
    0x0000dc40 add r0, pc, r0                        |         r0 = pc + r0;
    0x0000dc44 bl 0xac7c                             |         fcn_0000ac7c ();
                                                     |     }
    0x0000dc48 mov r3, 0                             |     r3 = 0;
    0x0000dc4c str r3, [r4, 0xa8]                    |     *((r4 + 0xa8)) = r3;
    0x0000dc50 str r3, [r4, 0x34]                    |     *((r4 + 0x34)) = r3;
    0x0000dc54 mov r2, 0                             |     r2 = 0;
    0x0000dc58 mov r3, 0                             |     r3 = 0;
    0x0000dc5c strd r2, r3, [sp]                     |     __asm ("strd r2, r3, [sp]");
    0x0000dc60 mov r0, r4                            |     r0 = r4;
    0x0000dc64 bl 0xd0f4                             |     fcn_0000d0f4 (r0, r1, r2);
    0x0000dc68 add sp, sp, 0xc                       |     
    0x0000dc6c pop {r4, r5, pc}                      |     
                                                     | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xdc8c */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0000dc8c ()                          | void fcn_0000dc8c (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_0h_2;
                                                     |     int32_t var_ch;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0000dc8c ldr r3, [pc, 0x88]                    |     r3 = *(0xdd18);
    0x0000dc90 push {r0, r1, r2, r4, r5, lr}         |     
    0x0000dc94 ldr r2, [pc, 0x84]                    |     r2 = *(0xdd1c);
    0x0000dc98 add r3, pc, r3                        |     r3 = pc + r3;
    0x0000dc9c ldr r2, [r3, r2]                      |     
    0x0000dca0 mov r4, r0                            |     r4 = r0;
    0x0000dca4 ldr r2, [r2]                          |     r2 = *(0xdd18);
    0x0000dca8 tst r2, 0x100                         |     
                                                     |     if ((r2 & 0x100) != 0) {
    0x0000dcac beq 0xdcf4                            |         
    0x0000dcb0 ldr r2, [pc, 0x6c]                    |         r2 = *(0xdd20);
    0x0000dcb4 ldr r3, [r3, r2]                      |         r3 = *((r3 + r2));
    0x0000dcb8 ldr r5, [r3]                          |         r5 = *(r3);
    0x0000dcbc bl 0x58fc                             |         getpid ();
    0x0000dcc0 ldr r3, [pc, 0x60]                    |         r3 = *(0xdd24);
    0x0000dcc4 ldr r1, [pc, 0x60]                    |         r1 = *(0xdd28);
    0x0000dcc8 add r3, pc, r3                        |         r3 = pc + r3;
    0x0000dccc str r3, [sp]                          |         *(sp) = r3;
    0x0000dcd0 ldr r3, [pc, 0x58]                    |         r3 = *(0xdd2c);
    0x0000dcd4 add r1, pc, r1                        |         r1 = pc + r1;
    0x0000dcd8 add r3, pc, r3                        |         r3 = pc + r3;
    0x0000dcdc mov r2, r0                            |         r2 = r0;
    0x0000dce0 mov r0, r5                            |         r0 = r5;
    0x0000dce4 bl 0x5c50                             |         fprintf (r0, r1, r2, r3)
    0x0000dce8 ldr r0, [pc, 0x44]                    |         r0 = *(0xdd30);
    0x0000dcec add r0, pc, r0                        |         r0 = pc + r0;
    0x0000dcf0 bl 0xac7c                             |         fcn_0000ac7c ();
                                                     |     }
    0x0000dcf4 mov r3, 0                             |     r3 = 0;
    0x0000dcf8 str r3, [r4, 0xa8]                    |     *((r4 + 0xa8)) = r3;
    0x0000dcfc str r3, [r4, 0x34]                    |     *((r4 + 0x34)) = r3;
    0x0000dd00 mov r2, 0                             |     r2 = 0;
    0x0000dd04 mov r3, 0                             |     r3 = 0;
    0x0000dd08 strd r2, r3, [sp]                     |     __asm ("strd r2, r3, [sp]");
    0x0000dd0c mov r0, r4                            |     r0 = r4;
    0x0000dd10 bl 0xd0f4                             |     fcn_0000d0f4 (r0, r1, r2);
    0x0000dd14 add sp, sp, 0xc                       |     
    0x0000dd18 pop {r4, r5, pc}                      |     
                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xe1dc */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0000e1dc ()                      | void fcn_0000e1dc (int32_t arg_28h, int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_0h_2;
                                                 |     int32_t var_ch;
                                                 |     int32_t var_10h;
                                                 |     int32_t var_14h;
                                                 |     r0 = arg1;
    0x0000e1dc push {r4, r5, r6, r7, lr}         |     
    0x0000e1e0 ldr r4, [pc, 0xb4]                |     r4 = *(0xe298);
    0x0000e1e4 sub sp, sp, 0x14                  |     
    0x0000e1e8 ldrd r6, r7, [sp, 0x28]           |     __asm ("ldrd r6, r7, [arg_28h]");
    0x0000e1ec add r1, sp, 0x10                  |     r1 += var_10h;
    0x0000e1f0 mov ip, 0                         |     
    0x0000e1f4 str ip, [r1, -4]!                 |     *((r1 -= 4)) = ip;
    0x0000e1f8 strd r6, r7, [sp]                 |     __asm ("strd r6, r7, [sp]");
    0x0000e1fc mov r5, r0                        |     r5 = r0;
    0x0000e200 bl 0xe17c                         |     fcn_0000e17c (r0, r1, r2);
    0x0000e204 add r4, pc, r4                    |     r4 = pc + r4;
    0x0000e208 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0000e20c beq 0xe294                        |         
    0x0000e210 ldr r3, [sp, 0xc]                 |         r3 = var_ch;
    0x0000e214 cmp r3, 0                         |         
                                                 |         if (r3 == 0) {
    0x0000e218 beq 0xe294                        |             goto label_0;
                                                 |         }
    0x0000e21c ldr r3, [pc, 0x7c]                |         
    0x0000e220 ldr r3, [r4, r3]                  |         r3 = *((r4 + r3));
    0x0000e224 ldr r3, [r3]                      |         r3 = *(0xe29c);
    0x0000e228 tst r3, 0x100                     |         
                                                 |         if ((r3 & 0x100) != 0) {
    0x0000e22c beq 0xe274                        |             
    0x0000e230 ldr r3, [pc, 0x6c]                |             r3 = *(0xe2a0);
    0x0000e234 ldr r3, [r4, r3]                  |             r3 = *((r4 + r3));
    0x0000e238 ldr r4, [r3]                      |             r4 = *(0xe2a0);
    0x0000e23c bl 0x58fc                         |             getpid ();
    0x0000e240 ldr r3, [pc, 0x60]                |             r3 = *(0xe2a4);
    0x0000e244 ldr r1, [pc, 0x60]                |             r1 = *(0xe2a8);
    0x0000e248 add r3, pc, r3                    |             r3 = pc + r3;
    0x0000e24c str r3, [sp]                      |             *(sp) = r3;
    0x0000e250 ldr r3, [pc, 0x58]                |             r3 = *(0xe2ac);
    0x0000e254 add r1, pc, r1                    |             r1 = pc + r1;
    0x0000e258 add r3, pc, r3                    |             r3 = pc + r3;
    0x0000e25c mov r2, r0                        |             r2 = r0;
    0x0000e260 mov r0, r4                        |             r0 = r4;
    0x0000e264 bl 0x5c50                         |             fprintf (r0, r1, r2, r3)
    0x0000e268 ldr r0, [pc, 0x44]                |             r0 = *(0xe2b0);
    0x0000e26c add r0, pc, r0                    |             r0 = pc + r0;
    0x0000e270 bl 0xac7c                         |             fcn_0000ac7c ();
                                                 |         }
    0x0000e274 mov r2, 0                         |         r2 = 0;
    0x0000e278 mov r3, 0                         |         r3 = 0;
    0x0000e27c mov r0, r5                        |         r0 = r5;
    0x0000e280 strd r2, r3, [sp]                 |         __asm ("strd r2, r3, [sp]");
    0x0000e284 bl 0xd0f4                         |         fcn_0000d0f4 (r0, r1, r2);
    0x0000e288 ldr r1, [sp, 0xc]                 |         r1 = var_ch;
    0x0000e28c mov r0, r5                        |         r0 = r5;
    0x0000e290 bl 0xb07c                         |         fcn_0000b07c (r0, r1);
                                                 |     }
                                                 | label_0:
    0x0000e294 add sp, sp, 0x14                  |     
    0x0000e298 pop {r4, r5, r6, r7, pc}          |     
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xe460 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.0000e460 ()                                      | void fcn_0000e460 (int32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_8h;
                                                                 |     FILE * stream;
                                                                 |     int32_t var_10h;
                                                                 |     char * format;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_1ch;
                                                                 |     int32_t var_24h;
                                                                 |     int32_t var_28h;
                                                                 |     int32_t var_50h;
                                                                 |     int32_t var_78h;
                                                                 |     int32_t var_1h;
                                                                 |     char * s;
                                                                 |     char * var_7h;
                                                                 |     char * endptr;
                                                                 |     int32_t var_0h_2;
                                                                 |     int8_t var_9h;
                                                                 |     int32_t var_1080h;
                                                                 |     int32_t var_14h_2;
                                                                 |     r0 = arg1;
    0x0000e460 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000e464 ldr r5, [pc, 0x8cc]                               |     r5 = *(0xed34);
    0x0000e468 sub sp, sp, 0x1080                                |     
    0x0000e46c sub sp, sp, 0x14                                  |     
    0x0000e470 mov r8, r0                                        |     r8 = r0;
    0x0000e474 mov r1, 0x80000                                   |     r1 = 0x80000;
    0x0000e478 ldr r0, [r0, 0x1c]                                |     r0 = *((r0 + 0x1c));
    0x0000e47c bl 0x5e9c                                         |     open64 ();
    0x0000e480 add r5, pc, r5                                    |     r5 = pc + r5;
    0x0000e484 subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 < r0) {
    0x0000e488 blt 0xe5e4                                        |         goto label_8;
                                                                 |     }
    0x0000e48c add r3, sp, 0x50                                  |     r3 += var_50h;
    0x0000e490 sub r1, r3, 0x28                                  |     r1 -= var_28h;
    0x0000e494 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0000e498 bl 0x5b54                                         |     r0 = fstat64 ();
    0x0000e49c cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0000e4a0 blt 0xe520                                        |         goto label_9;
                                                                 |     }
    0x0000e4a4 ldr r3, [pc, 0x890]                               |     r3 = *(0xed38);
    0x0000e4a8 ldr r1, [sp, 0x78]                                |     r1 = var_78h;
    0x0000e4ac ldr r6, [r5, r3]                                  |     r6 = *((r5 + r3));
    0x0000e4b0 ldr r2, [r8, 0x14]                                |     r2 = *((r8 + 0x14));
    0x0000e4b4 ldr r3, [r6]                                      |     r3 = *(r6);
    0x0000e4b8 cmp r1, r2                                        |     
    0x0000e4bc and r3, r3, 4                                     |     r3 &= 4;
                                                                 |     if (r1 != r2) {
    0x0000e4c0 beq 0xe4d0                                        |         
    0x0000e4c4 ldr r2, [r8, 0x18]                                |         r2 = *((r8 + 0x18));
    0x0000e4c8 tst r2, 4                                         |         
                                                                 |         if ((r2 & 4) == 0) {
    0x0000e4cc beq 0xe52c                                        |             goto label_10;
                                                                 |         }
                                                                 |     }
    0x0000e4d0 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000e4d4 beq 0xe520                                        |         goto label_9;
                                                                 |     }
    0x0000e4d8 ldr r3, [pc, 0x860]                               |     r3 = *(0xed3c);
    0x0000e4dc ldr r3, [r5, r3]                                  |     r3 = *((r5 + r3));
    0x0000e4e0 ldr r5, [r3]                                      |     r5 = *(0xed3c);
    0x0000e4e4 bl 0x58fc                                         |     getpid ();
    0x0000e4e8 ldr r3, [pc, 0x854]                               |     r3 = *(0xed40);
    0x0000e4ec ldr r1, [pc, 0x854]                               |     r1 = *(0xed44);
    0x0000e4f0 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000e4f4 str r3, [sp]                                      |     *(sp) = r3;
    0x0000e4f8 ldr r3, [pc, 0x84c]                               |     r3 = *(0xed48);
    0x0000e4fc add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000e500 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000e504 mov r2, r0                                        |     r2 = r0;
    0x0000e508 mov r0, r5                                        |     r0 = r5;
    0x0000e50c bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0000e510 ldr r0, [pc, 0x838]                               |     r0 = *(0xed4c);
    0x0000e514 ldr r1, [r8, 0x1c]                                |     r1 = *((r8 + 0x1c));
    0x0000e518 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000e51c bl 0xe3d4                                         |     fcn_0000e3d4 ();
                                                                 |     do {
                                                                 | label_9:
    0x0000e520 mov r0, r4                                        |         r0 = r4;
    0x0000e524 bl 0x61e4                                         |         close (r0);
    0x0000e528 b 0xe5e4                                          |         goto label_8;
                                                                 | label_10:
    0x0000e52c cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0000e530 beq 0xe57c                                        |             
    0x0000e534 ldr r3, [pc, 0x804]                               |             r3 = *(0xed3c);
    0x0000e538 ldr r3, [r5, r3]                                  |             r3 = *((r5 + r3));
    0x0000e53c ldr r7, [r3]                                      |             r7 = *(0xed3c);
    0x0000e540 bl 0x58fc                                         |             getpid ();
    0x0000e544 ldr r3, [pc, 0x808]                               |             r3 = *(0xed50);
    0x0000e548 ldr r1, [pc, 0x808]                               |             r1 = *(0xed54);
    0x0000e54c add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000e550 str r3, [sp]                                      |             *(sp) = r3;
    0x0000e554 ldr r3, [pc, 0x800]                               |             r3 = *(0xed58);
    0x0000e558 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000e55c add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000e560 mov r2, r0                                        |             r2 = r0;
    0x0000e564 mov r0, r7                                        |             r0 = r7;
    0x0000e568 bl 0x5c50                                         |             fprintf (r0, r1, r2, r3)
    0x0000e56c ldr r0, [pc, 0x7ec]                               |             r0 = *(0xed5c);
    0x0000e570 ldr r1, [r8, 0x1c]                                |             r1 = *((r8 + 0x1c));
    0x0000e574 add r0, pc, r0                                    |             r0 = pc + r0;
    0x0000e578 bl 0xe3d4                                         |             fcn_0000e3d4 ();
                                                                 |         }
    0x0000e57c ldr r1, [pc, 0x7e0]                               |         r1 = *(0xed60);
    0x0000e580 mov r0, r4                                        |         r0 = r4;
    0x0000e584 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000e588 bl 0x5ddc                                         |         r0 = fdopen ();
    0x0000e58c subs r3, r0, 0                                    |         r3 = r0 - 0;
    0x0000e590 str r3, [sp, 0xc]                                 |         stream = r3;
    0x0000e594 beq 0xe520                                        |         
                                                                 |     } while (r3 == r0);
    0x0000e598 mov r3, 0                                         |     r3 = 0;
    0x0000e59c str r3, [sp, 8]                                   |     var_8h = r3;
    0x0000e5a0 ldr r3, [pc, 0x7c0]                               |     r3 = *(0xed64);
    0x0000e5a4 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000e5a8 str r3, [sp, 0x1c]                                |     var_1ch = r3;
                                                                 | label_0:
    0x0000e5ac add r4, sp, 0x90                                  |     r4 += s;
                                                                 |     do {
    0x0000e5b0 ldr r2, [sp, 0xc]                                 |         r2 = stream;
    0x0000e5b4 mov r1, 0x1000                                    |         r1 = 0x1000;
    0x0000e5b8 mov r0, r4                                        |         r0 = r4;
    0x0000e5bc bl 0x5920                                         |         r0 = fgets (r0, r1, r2);
    0x0000e5c0 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0000e5c4 bne 0xe5f0                                        |             
    0x0000e5c8 ldr r0, [sp, 0xc]                                 |             r0 = stream;
    0x0000e5cc bl 0x5e90                                         |             fclose (r0);
    0x0000e5d0 ldr r3, [r8, 0x18]                                |             r3 = *((r8 + 0x18));
    0x0000e5d4 bic r3, r3, 4                                     |             r3 = BIT_MASK (r3, 4);
    0x0000e5d8 str r3, [r8, 0x18]                                |             *((r8 + 0x18)) = r3;
    0x0000e5dc ldr r3, [r4, -0x18]                               |             r3 = var_78h;
    0x0000e5e0 str r3, [r8, 0x14]                                |             *((r8 + 0x14)) = r3;
                                                                 | label_8:
    0x0000e5e4 add sp, sp, 0x1080                                |             
    0x0000e5e8 add sp, sp, 0x14                                  |             
    0x0000e5ec pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |             
                                                                 |         }
    0x0000e5f0 ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x0000e5f4 add r3, r3, 1                                     |         r3++;
    0x0000e5f8 str r3, [sp, 8]                                   |         var_8h = r3;
    0x0000e5fc ldrsb r3, [r4]                                    |         r3 = *(r4);
    0x0000e600 cmp r3, 0                                         |         
    0x0000e604 beq 0xe5b0                                        |         
                                                                 |     } while (r3 == 0);
    0x0000e608 mov r0, r4                                        |     r0 = r4;
    0x0000e60c bl 0x6118                                         |     strlen (r0);
    0x0000e610 sub r0, r0, 1                                     |     r0 -= var_1h;
                                                                 | label_1:
    0x0000e614 ldr r3, [pc, 0x750]                               |     r3 = *(0xed68);
    0x0000e618 cmp r0, r3                                        |     
                                                                 |     if (r0 <= r3) {
    0x0000e61c bhi 0xe644                                        |         
    0x0000e620 ldrsb r3, [r4, r0]                                |         r3 = *((r4 + r0));
    0x0000e624 cmp r3, 0x5c                                      |         
                                                                 |         if (r3 != 0x5c) {
    0x0000e628 bne 0xe644                                        |             goto label_11;
                                                                 |         }
    0x0000e62c rsb r1, r0, 0x1000                                |         r1 = 0x1000 - r0;
    0x0000e630 ldr r2, [sp, 0xc]                                 |         r2 = stream;
    0x0000e634 add r0, r4, r0                                    |         r0 = r4 + r0;
    0x0000e638 bl 0x5920                                         |         r0 = fgets (r0, r1, r2);
    0x0000e63c cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0000e640 bne 0xe7e8                                        |             goto label_12;
                                                                 |         }
                                                                 |     }
                                                                 | label_11:
    0x0000e644 ldr r3, [r6]                                      |     r3 = *(r6);
    0x0000e648 tst r3, 0x400                                     |     
                                                                 |     if ((r3 & 0x400) != 0) {
    0x0000e64c beq 0xe698                                        |         
    0x0000e650 ldr r3, [pc, 0x6e8]                               |         r3 = *(0xed3c);
    0x0000e654 ldr r3, [r5, r3]                                  |         r3 = *((r5 + r3));
    0x0000e658 ldr r7, [r3]                                      |         r7 = *(0xed3c);
    0x0000e65c bl 0x58fc                                         |         getpid ();
    0x0000e660 ldr r3, [pc, 0x708]                               |         r3 = *(0xed6c);
    0x0000e664 ldr r1, [pc, 0x708]                               |         r1 = *(0xed70);
    0x0000e668 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000e66c str r3, [sp]                                      |         *(sp) = r3;
    0x0000e670 ldr r3, [pc, 0x700]                               |         r3 = *(0xed74);
    0x0000e674 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000e678 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000e67c mov r2, r0                                        |         r2 = r0;
    0x0000e680 mov r0, r7                                        |         r0 = r7;
    0x0000e684 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000e688 ldr r0, [pc, 0x6ec]                               |         r0 = *(0xed78);
    0x0000e68c mov r1, r4                                        |         r1 = r4;
    0x0000e690 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000e694 bl 0xe3d4                                         |         fcn_0000e3d4 ();
                                                                 |     }
    0x0000e698 mov r0, r4                                        |     r0 = r4;
    0x0000e69c bl 0xe36c                                         |     r0 = fcn_0000e36c (r0);
    0x0000e6a0 ldrsb r7, [r0]                                    |     r7 = *(r0);
    0x0000e6a4 mov r4, r0                                        |     r4 = r0;
    0x0000e6a8 cmp r7, 0x23                                      |     
    0x0000e6ac cmpne r7, 0                                       |     __asm ("cmpne r7, 0");
                                                                 |     if (r7 == 0x23) {
    0x0000e6b0 beq 0xe5ac                                        |         goto label_0;
                                                                 |     }
    0x0000e6b4 ldr r1, [pc, 0x6c4]                               |     r1 = *(0xed7c);
    0x0000e6b8 mov r2, 7                                         |     r2 = 7;
    0x0000e6bc add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000e6c0 bl 0x5d34                                         |     r0 = strncmp (r0, r1, r2);
    0x0000e6c4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000e6c8 bne 0xe804                                        |         goto label_13;
                                                                 |     }
    0x0000e6cc ldr r3, [r6]                                      |     r3 = *(r6);
    0x0000e6d0 tst r3, 0x400                                     |     
                                                                 |     if ((r3 & 0x400) != 0) {
    0x0000e6d4 beq 0xe720                                        |         
    0x0000e6d8 ldr r3, [pc, 0x660]                               |         r3 = *(0xed3c);
    0x0000e6dc ldr r3, [r5, r3]                                  |         r3 = *((r5 + r3));
    0x0000e6e0 ldr r7, [r3]                                      |         r7 = *(0xed3c);
    0x0000e6e4 bl 0x58fc                                         |         getpid ();
    0x0000e6e8 ldr r3, [pc, 0x694]                               |         r3 = *(0xed80);
    0x0000e6ec ldr r1, [pc, 0x694]                               |         r1 = *(0xed84);
    0x0000e6f0 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000e6f4 str r3, [sp]                                      |         *(sp) = r3;
    0x0000e6f8 ldr r3, [pc, 0x68c]                               |         r3 = *(0xed88);
    0x0000e6fc add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000e700 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000e704 mov r2, r0                                        |         r2 = r0;
    0x0000e708 mov r0, r7                                        |         r0 = r7;
    0x0000e70c bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000e710 ldr r0, [pc, 0x678]                               |         r0 = *(0xed8c);
    0x0000e714 mov r1, r4                                        |         r1 = r4;
    0x0000e718 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000e71c bl 0xe3d4                                         |         fcn_0000e3d4 ();
                                                                 |     }
    0x0000e720 add r7, r4, 7                                     |     r7 += var_7h;
    0x0000e724 mov r1, 0x3e                                      |     r1 = 0x3e;
    0x0000e728 mov r0, r7                                        |     r0 = r7;
    0x0000e72c bl 0x613c                                         |     strchr (r0, r1);
    0x0000e730 ldr fp, [r6]                                      |     fp = *(r6);
    0x0000e734 and fp, fp, 0x400                                 |     
    0x0000e738 subs sl, r0, 0                                    |     sl -= var_7h;
                                                                 |     if (sl != var_7h) {
    0x0000e73c bne 0xe810                                        |         goto label_14;
                                                                 |     }
    0x0000e740 cmp fp, 0                                         |     
                                                                 |     if (fp == 0) {
    0x0000e744 beq 0xe5ac                                        |         goto label_0;
                                                                 |     }
    0x0000e748 ldr r3, [pc, 0x5f0]                               |     r3 = *(0xed3c);
    0x0000e74c ldr r3, [r5, r3]                                  |     r3 = *((r5 + r3));
    0x0000e750 ldr r4, [r3]                                      |     r4 = *(0xed3c);
    0x0000e754 bl 0x58fc                                         |     getpid ();
    0x0000e758 ldr r3, [pc, 0x634]                               |     r3 = *(0xed90);
    0x0000e75c ldr r1, [pc, 0x634]                               |     r1 = *(0xed94);
    0x0000e760 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000e764 str r3, [sp]                                      |     *(sp) = r3;
    0x0000e768 ldr r3, [pc, 0x62c]                               |     r3 = *(0xed98);
    0x0000e76c add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000e770 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000e774 mov r2, r0                                        |     r2 = r0;
    0x0000e778 mov r0, r4                                        |     r0 = r4;
    0x0000e77c bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0000e780 ldr r0, [pc, 0x618]                               |     r0 = *(0xed9c);
    0x0000e784 mov r1, r7                                        |     r1 = r7;
    0x0000e788 add r0, pc, r0                                    |     r0 = pc + r0;
                                                                 | label_3:
    0x0000e78c bl 0xe3d4                                         |     fcn_0000e3d4 ();
                                                                 | label_2:
    0x0000e790 ldr r3, [r6]                                      |     r3 = *(r6);
    0x0000e794 tst r3, 0x400                                     |     
                                                                 |     if ((r3 & 0x400) == 0) {
    0x0000e798 beq 0xe5ac                                        |         goto label_0;
                                                                 |     }
    0x0000e79c ldr r3, [pc, 0x59c]                               |     r3 = *(0xed3c);
    0x0000e7a0 ldr r3, [r5, r3]                                  |     r3 = *((r5 + r3));
    0x0000e7a4 ldr r4, [r3]                                      |     r4 = *(0xed3c);
    0x0000e7a8 bl 0x58fc                                         |     getpid ();
    0x0000e7ac ldr r3, [pc, 0x5f0]                               |     r3 = *(0xeda0);
    0x0000e7b0 ldr r1, [pc, 0x5f0]                               |     r1 = *(0xeda4);
    0x0000e7b4 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000e7b8 str r3, [sp]                                      |     *(sp) = r3;
    0x0000e7bc ldr r3, [pc, 0x5e8]                               |     r3 = *(0xeda8);
    0x0000e7c0 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000e7c4 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000e7c8 mov r2, r0                                        |     r2 = r0;
    0x0000e7cc mov r0, r4                                        |     r0 = r4;
    0x0000e7d0 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0000e7d4 ldr r0, [pc, 0x5d4]                               |     r0 = *(0xedac);
    0x0000e7d8 ldr r1, [sp, 8]                                   |     r1 = var_8h;
    0x0000e7dc add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000e7e0 bl 0xe3d4                                         |     fcn_0000e3d4 ();
    0x0000e7e4 b 0xe5ac                                          |     goto label_0;
                                                                 | label_12:
    0x0000e7e8 mov r0, r4                                        |     r0 = r4;
    0x0000e7ec bl 0x6118                                         |     strlen (r0);
    0x0000e7f0 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x0000e7f4 add r3, r3, 1                                     |     r3++;
    0x0000e7f8 str r3, [sp, 8]                                   |     var_8h = r3;
    0x0000e7fc sub r0, r0, 1                                     |     r0 -= var_1h;
    0x0000e800 b 0xe614                                          |     goto label_1;
                                                                 | label_13:
    0x0000e804 cmp r7, 0x3c                                      |     
                                                                 |     if (r7 == 0x3c) {
                                                                 | label_7:
    0x0000e808 beq 0xe5ac                                        |         goto label_0;
                                                                 |     }
    0x0000e80c b 0xe790                                          |     goto label_2;
                                                                 | label_14:
    0x0000e810 add r0, sl, 1                                     |     r0 += endptr;
    0x0000e814 bl 0xe2b8                                         |     r0 = fcn_0000e2b8 (r0);
    0x0000e818 mov sb, r0                                        |     sb = r0;
    0x0000e81c bl 0xe2fc                                         |     fcn_0000e2fc (r0);
    0x0000e820 cmp fp, 0                                         |     
    0x0000e824 mov r7, r0                                        |     r7 = r0;
                                                                 |     if (fp != 0) {
    0x0000e828 beq 0xe878                                        |         
    0x0000e82c ldr r3, [pc, 0x50c]                               |         r3 = *(0xed3c);
    0x0000e830 ldr r3, [r5, r3]                                  |         r3 = *((r5 + r3));
    0x0000e834 ldr fp, [r3]                                      |         fp = *(0xed3c);
    0x0000e838 bl 0x58fc                                         |         getpid ();
    0x0000e83c ldr r3, [pc, 0x570]                               |         r3 = *(0xedb0);
    0x0000e840 ldr r1, [pc, 0x570]                               |         r1 = *(0xedb4);
    0x0000e844 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000e848 str r3, [sp]                                      |         *(sp) = r3;
    0x0000e84c ldr r3, [pc, 0x568]                               |         r3 = *(0xedb8);
    0x0000e850 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000e854 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000e858 mov r2, r0                                        |         r2 = r0;
    0x0000e85c mov r0, fp                                        |         r0 = fp;
    0x0000e860 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000e864 ldr r0, [pc, 0x554]                               |         r0 = *(0xedbc);
    0x0000e868 mov r2, sb                                        |         r2 = sb;
    0x0000e86c sub r1, r7, sb                                    |         r1 = r7 - sb;
    0x0000e870 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000e874 bl 0xe3d4                                         |         fcn_0000e3d4 ();
                                                                 |     }
    0x0000e878 ldrsb r3, [r4, 7]                                 |     r3 = var_7h;
    0x0000e87c mov r1, 0x3c                                      |     r1 = 0x3c;
    0x0000e880 cmp r3, 0x3e                                      |     
    0x0000e884 mov r3, 0                                         |     r3 = 0;
    0x0000e888 strb r3, [sl]                                     |     *(sl) = r3;
    0x0000e88c mov r0, r7                                        |     r0 = r7;
                                                                 |     if (r3 == 0x3e) {
    0x0000e890 addne r4, r4, 8                                   |         r4 += endptr;
                                                                 |     }
                                                                 |     if (r3 != 0x3e) {
    0x0000e894 moveq r4, r7                                      |         r4 = r7;
                                                                 |     }
    0x0000e898 bl 0x5bc0                                         |     r0 = strrchr (r0, r1);
    0x0000e89c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000e8a0 beq 0xe988                                        |         goto label_15;
                                                                 |     }
    0x0000e8a4 bl 0xe2b8                                         |     fcn_0000e2b8 (r0);
    0x0000e8a8 ldr r1, [pc, 0x514]                               |     r1 = *(0xedc0);
    0x0000e8ac mov r2, 9                                         |     r2 = 9;
    0x0000e8b0 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000e8b4 mov sl, r0                                        |     sl = r0;
    0x0000e8b8 bl 0x5d34                                         |     strncmp (r0, r1, r2);
    0x0000e8bc ldr r3, [r6]                                      |     r3 = *(r6);
    0x0000e8c0 and r3, r3, 0x400                                 |     r3 &= 0x400;
    0x0000e8c4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000e8c8 bne 0xe988                                        |         goto label_15;
                                                                 |     }
    0x0000e8cc cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000e8d0 beq 0xe91c                                        |         
    0x0000e8d4 ldr r3, [pc, 0x464]                               |         r3 = *(0xed3c);
    0x0000e8d8 ldr r3, [r5, r3]                                  |         r3 = *((r5 + r3));
    0x0000e8dc ldr fp, [r3]                                      |         fp = *(0xed3c);
    0x0000e8e0 bl 0x58fc                                         |         getpid ();
    0x0000e8e4 ldr r3, [pc, 0x4dc]                               |         r3 = *(0xedc4);
    0x0000e8e8 ldr r1, [pc, 0x4dc]                               |         r1 = *(0xedc8);
    0x0000e8ec add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000e8f0 str r3, [sp]                                      |         *(sp) = r3;
    0x0000e8f4 ldr r3, [pc, 0x4d4]                               |         r3 = *(0xedcc);
    0x0000e8f8 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000e8fc add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000e900 mov r2, r0                                        |         r2 = r0;
    0x0000e904 mov r0, fp                                        |         r0 = fp;
    0x0000e908 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000e90c ldr r0, [pc, 0x4c0]                               |         r0 = *(0xedd0);
    0x0000e910 mov r1, sl                                        |         r1 = sl;
    0x0000e914 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000e918 bl 0xe3d4                                         |         fcn_0000e3d4 ();
                                                                 |     }
    0x0000e91c cmn sl, 9                                         |     
                                                                 |     if (sl == 9) {
    0x0000e920 movne r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (sl == 9) {
    0x0000e924 strbne r3, [sl, 9]                                |         var_9h = r3;
                                                                 |     }
                                                                 | label_4:
    0x0000e928 sub r1, r7, sb                                    |     r1 = r7 - sb;
    0x0000e92c cmp r1, 1                                         |     
                                                                 |     if (r1 > 1) {
    0x0000e930 bgt 0xe9e0                                        |         goto label_16;
                                                                 |     }
    0x0000e934 ldr r3, [r6]                                      |     r3 = *(r6);
    0x0000e938 tst r3, 0x400                                     |     
                                                                 |     if ((r3 & 0x400) == 0) {
    0x0000e93c beq 0xe5ac                                        |         goto label_0;
                                                                 |     }
    0x0000e940 ldr r3, [pc, 0x3f8]                               |     r3 = *(0xed3c);
    0x0000e944 ldr r3, [r5, r3]                                  |     r3 = *((r5 + r3));
    0x0000e948 ldr r7, [r3]                                      |     r7 = *(0xed3c);
    0x0000e94c bl 0x58fc                                         |     getpid ();
    0x0000e950 ldr r3, [pc, 0x480]                               |     r3 = *(0xedd4);
    0x0000e954 ldr r1, [pc, 0x480]                               |     r1 = *(0xedd8);
    0x0000e958 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000e95c str r3, [sp]                                      |     *(sp) = r3;
    0x0000e960 ldr r3, [pc, 0x478]                               |     r3 = *(0xeddc);
    0x0000e964 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000e968 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000e96c mov r2, r0                                        |     r2 = r0;
    0x0000e970 mov r0, r7                                        |     r0 = r7;
    0x0000e974 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0000e978 ldr r0, [pc, 0x464]                               |     r0 = *(0xede0);
    0x0000e97c mov r1, r4                                        |     r1 = r4;
    0x0000e980 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000e984 b 0xe78c                                          |     goto label_3;
                                                                 | label_15:
    0x0000e988 ldr r3, [r6]                                      |     r3 = *(r6);
    0x0000e98c tst r3, 0x400                                     |     
                                                                 |     if ((r3 & 0x400) == 0) {
    0x0000e990 beq 0xe928                                        |         goto label_4;
                                                                 |     }
    0x0000e994 ldr r3, [pc, 0x3a4]                               |     r3 = *(0xed3c);
    0x0000e998 ldr r3, [r5, r3]                                  |     r3 = *((r5 + r3));
    0x0000e99c ldr sl, [r3]                                      |     sl = *(0xed3c);
    0x0000e9a0 bl 0x58fc                                         |     getpid ();
    0x0000e9a4 ldr r3, [pc, 0x43c]                               |     r3 = *(0xede4);
    0x0000e9a8 ldr r1, [pc, 0x43c]                               |     r1 = *(0xede8);
    0x0000e9ac add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000e9b0 str r3, [sp]                                      |     *(sp) = r3;
    0x0000e9b4 ldr r3, [pc, 0x434]                               |     r3 = *(0xedec);
    0x0000e9b8 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000e9bc add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000e9c0 mov r2, r0                                        |     r2 = r0;
    0x0000e9c4 mov r0, sl                                        |     r0 = sl;
    0x0000e9c8 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0000e9cc ldr r0, [pc, 0x420]                               |     r0 = *(0xedf0);
    0x0000e9d0 mov r1, r7                                        |     r1 = r7;
    0x0000e9d4 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000e9d8 bl 0xe3d4                                         |     fcn_0000e3d4 ();
    0x0000e9dc b 0xe928                                          |     goto label_4;
                                                                 | label_16:
    0x0000e9e0 mov r0, sb                                        |     r0 = sb;
    0x0000e9e4 bl 0x57e8                                         |     strndup (r0, r1);
    0x0000e9e8 subs r7, r0, 0                                    |     r7 -= endptr;
                                                                 |     if (r7 == endptr) {
    0x0000e9ec beq 0xe790                                        |         goto label_2;
                                                                 |     }
    0x0000e9f0 ldr r3, [r6]                                      |     r3 = *(r6);
    0x0000e9f4 tst r3, 0x400                                     |     
                                                                 |     if ((r3 & 0x400) != 0) {
    0x0000e9f8 beq 0xea44                                        |         
    0x0000e9fc ldr r3, [pc, 0x33c]                               |         r3 = *(0xed3c);
    0x0000ea00 ldr r3, [r5, r3]                                  |         r3 = *((r5 + r3));
    0x0000ea04 ldr sb, [r3]                                      |         sb = *(0xed3c);
    0x0000ea08 bl 0x58fc                                         |         getpid ();
    0x0000ea0c ldr r3, [pc, 0x3e4]                               |         r3 = *(0xedf4);
    0x0000ea10 ldr r1, [pc, 0x3e4]                               |         r1 = *(0xedf8);
    0x0000ea14 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000ea18 str r3, [sp]                                      |         *(sp) = r3;
    0x0000ea1c ldr r3, [pc, 0x3dc]                               |         r3 = *(0xedfc);
    0x0000ea20 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000ea24 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000ea28 mov r2, r0                                        |         r2 = r0;
    0x0000ea2c mov r0, sb                                        |         r0 = sb;
    0x0000ea30 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000ea34 ldr r0, [pc, 0x3c8]                               |         r0 = *(0xee00);
    0x0000ea38 mov r1, r7                                        |         r1 = r7;
    0x0000ea3c add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000ea40 bl 0xe3d4                                         |         fcn_0000e3d4 ();
                                                                 |     }
    0x0000ea44 mov r2, 1                                         |     r2 = 1;
    0x0000ea48 mov r1, r7                                        |     r1 = r7;
    0x0000ea4c mov r0, r8                                        |     r0 = r8;
    0x0000ea50 bl 0x58cc                                         |     r0 = fcn_000058cc ();
    0x0000ea54 subs sb, r0, 0                                    |     sb = r0 - 0;
    0x0000ea58 mov r0, r7                                        |     r0 = r7;
                                                                 |     if (sb == r0) {
    0x0000ea5c bne 0xea68                                        |         
    0x0000ea60 bl 0x6220                                         |         free (r0);
    0x0000ea64 b 0xe790                                          |         goto label_2;
                                                                 |     }
    0x0000ea68 bl 0x6220                                         |     free (r0);
    0x0000ea6c ldr r3, [pc, 0x394]                               |     r3 = *(0xee04);
    0x0000ea70 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000ea74 str r3, [sp, 0x14]                                |     format = r3;
    0x0000ea78 ldr r3, [pc, 0x38c]                               |     r3 = *(0xee08);
    0x0000ea7c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000ea80 str r3, [sp, 0x18]                                |     var_18h = r3;
                                                                 | label_6:
    0x0000ea84 mov r1, 0x3d                                      |     r1 = 0x3d;
    0x0000ea88 mov r0, r4                                        |     r0 = r4;
    0x0000ea8c bl 0x613c                                         |     strchr (r0, r1);
    0x0000ea90 mov fp, 0                                         |     
    0x0000ea94 subs r7, r0, 0                                    |     r7 -= endptr;
                                                                 |     if (r7 == endptr) {
    0x0000ea98 beq 0xecc8                                        |         goto label_17;
                                                                 |     }
    0x0000ea9c strb fp, [r7], 1                                  |     *(r7) = fp;
                                                                 |     r7++;
    0x0000eaa0 mov r0, r4                                        |     r0 = r4;
    0x0000eaa4 bl 0xe36c                                         |     r0 = fcn_0000e36c (r0);
    0x0000eaa8 mov sl, r0                                        |     sl = r0;
    0x0000eaac mov r0, r7                                        |     r0 = r7;
    0x0000eab0 bl 0xe2b8                                         |     r0 = fcn_0000e2b8 (r0);
    0x0000eab4 ldrsb r3, [r0]                                    |     r3 = *(r0);
    0x0000eab8 mov r7, r0                                        |     r7 = r0;
    0x0000eabc cmp r3, 0x22                                      |     
                                                                 |     if (r3 != 0x22) {
    0x0000eac0 addeq r2, r0, 1                                   |         r2 = r0 + 1;
                                                                 |     }
                                                                 |     if (r3 != 0x22) {
    0x0000eac4 moveq r4, r2                                      |         r4 = r2;
                                                                 |     }
                                                                 |     if (r3 != 0x22) {
    0x0000eac8 moveq r3, r2                                      |         r3 = r2;
                                                                 |     }
                                                                 |     if (r3 == 0x22) {
    0x0000eacc beq 0xeaf0                                        |         goto label_18;
                                                                 |     }
    0x0000ead0 bl 0xe2fc                                         |     r0 = fcn_0000e2fc (r0);
    0x0000ead4 ldrsb r3, [r0]                                    |     r3 = *(r0);
    0x0000ead8 mov r4, r0                                        |     r4 = r0;
    0x0000eadc cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000eae0 strbne fp, [r4], 1                                |         *(r4) = fp;
                                                                 |         r4++;
                                                                 |     }
    0x0000eae4 b 0xeb98                                          |     goto label_19;
                                                                 |     do {
                                                                 | label_5:
    0x0000eae8 add r4, r4, 1                                     |         r4 += var_0h_2;
    0x0000eaec add r3, r3, 1                                     |         r3++;
                                                                 | label_18:
    0x0000eaf0 ldrsb r1, [r4]                                    |         r1 = *(r4);
    0x0000eaf4 cmp r1, 0                                         |         
                                                                 |         if (r1 == 0) {
    0x0000eaf8 beq 0xeb20                                        |             goto label_20;
                                                                 |         }
    0x0000eafc cmp r1, 0x5c                                      |         
    0x0000eb00 ldrsbeq r1, [r4, 1]                               |         __asm ("ldrsbeq r1, [r4, 1]");
                                                                 |         if (r1 != 0x5c) {
    0x0000eb04 addeq r4, r4, 1                                   |             r4++;
                                                                 |         }
                                                                 |         if (r1 != 0x5c) {
    0x0000eb08 strbeq r1, [r3]                                   |             *(r3) = r1;
                                                                 |         }
    0x0000eb0c beq 0xeae8                                        |         
                                                                 |     } while (r1 == 0x5c);
    0x0000eb10 strb r1, [r3]                                     |     *(r3) = r1;
    0x0000eb14 ldrsb r1, [r4]                                    |     r1 = *(r4);
    0x0000eb18 cmp r1, 0x22                                      |     
                                                                 |     if (r1 != 0x22) {
    0x0000eb1c bne 0xeae8                                        |         goto label_5;
                                                                 |     }
                                                                 | label_20:
    0x0000eb20 ldrsb r1, [r3]                                    |     r1 = *(r3);
    0x0000eb24 cmp r1, 0x22                                      |     
                                                                 |     if (r1 != 0x22) {
    0x0000eb28 beq 0xeb88                                        |         
    0x0000eb2c ldr r3, [r6]                                      |         r3 = *(r6);
    0x0000eb30 tst r3, 0x400                                     |         
                                                                 |         if ((r3 & 0x400) != 0) {
    0x0000eb34 beq 0xeb80                                        |             
    0x0000eb38 ldr r3, [pc, 0x200]                               |             r3 = *(0xed3c);
    0x0000eb3c ldr r3, [r5, r3]                                  |             r3 = *((r5 + r3));
    0x0000eb40 ldr r4, [r3]                                      |             r4 = *(0xed3c);
    0x0000eb44 bl 0x58fc                                         |             getpid ();
    0x0000eb48 ldr r3, [pc, 0x2c0]                               |             r3 = *(0xee0c);
    0x0000eb4c ldr r1, [pc, 0x2c0]                               |             r1 = *(0xee10);
    0x0000eb50 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000eb54 str r3, [sp]                                      |             *(sp) = r3;
    0x0000eb58 ldr r3, [pc, 0x2b8]                               |             r3 = *(0xee14);
    0x0000eb5c add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000eb60 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000eb64 mov r2, r0                                        |             r2 = r0;
    0x0000eb68 mov r0, r4                                        |             r0 = r4;
    0x0000eb6c bl 0x5c50                                         |             fprintf (r0, r1, r2, r3)
    0x0000eb70 ldr r0, [pc, 0x2a4]                               |             r0 = *(0xee18);
    0x0000eb74 mov r1, r7                                        |             r1 = r7;
    0x0000eb78 add r0, pc, r0                                    |             r0 = pc + r0;
    0x0000eb7c bl 0xe3d4                                         |             fcn_0000e3d4 ();
                                                                 |         }
    0x0000eb80 mvn r7, 0xd                                       |         r7 = ~0xd;
    0x0000eb84 b 0xecc8                                          |         goto label_17;
                                                                 |     }
    0x0000eb88 mov r1, 0                                         |     r1 = 0;
    0x0000eb8c add r4, r4, 1                                     |     r4 += var_0h_2;
    0x0000eb90 mov r7, r2                                        |     r7 = r2;
    0x0000eb94 strb r1, [r3]                                     |     *(r3) = r1;
                                                                 | label_19:
    0x0000eb98 ldr r3, [r6]                                      |     r3 = *(r6);
    0x0000eb9c tst r3, 0x400                                     |     
                                                                 |     if ((r3 & 0x400) != 0) {
    0x0000eba0 beq 0xebe4                                        |         
    0x0000eba4 ldr r3, [pc, 0x194]                               |         r3 = *(0xed3c);
    0x0000eba8 ldr r3, [r5, r3]                                  |         r3 = *((r5 + r3));
    0x0000ebac ldr fp, [r3]                                      |         fp = *(0xed3c);
    0x0000ebb0 bl 0x58fc                                         |         getpid ();
    0x0000ebb4 ldr r3, [sp, 0x18]                                |         r3 = var_18h;
    0x0000ebb8 ldr r1, [sp, 0x14]                                |         r1 = format;
    0x0000ebbc str r3, [sp]                                      |         *(sp) = r3;
    0x0000ebc0 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x0000ebc4 mov r2, r0                                        |         r2 = r0;
    0x0000ebc8 mov r0, fp                                        |         r0 = fp;
    0x0000ebcc bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000ebd0 ldr r0, [pc, 0x248]                               |         r0 = *(0xee1c);
    0x0000ebd4 mov r2, r7                                        |         r2 = r7;
    0x0000ebd8 mov r1, sl                                        |         r1 = sl;
    0x0000ebdc add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000ebe0 bl 0xe3d4                                         |         fcn_0000e3d4 ();
                                                                 |     }
    0x0000ebe4 ldr r1, [pc, 0x238]                               |     r1 = *(0xee20);
    0x0000ebe8 mov r0, sl                                        |     r0 = sl;
    0x0000ebec add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000ebf0 bl 0x5efc                                         |     strcmp (r0, r1);
    0x0000ebf4 subs r2, r0, 0                                    |     r2 -= endptr;
                                                                 |     if (r2 == endptr) {
    0x0000ebf8 bne 0xec10                                        |         
    0x0000ebfc mov r1, r2                                        |         r1 = r2;
    0x0000ec00 mov r0, r7                                        |         r0 = r7;
    0x0000ec04 bl 0x5e54                                         |         strtoull (r0, r1, r2);
    0x0000ec08 strd r0, r1, [sb, 0x28]                           |         __asm ("strd r0, r1, [sb, 0x28]");
    0x0000ec0c b 0xea84                                          |         goto label_6;
                                                                 |     }
    0x0000ec10 ldr r1, [pc, 0x210]                               |     r1 = *(0xee24);
    0x0000ec14 mov r0, sl                                        |     r0 = sl;
    0x0000ec18 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000ec1c bl 0x5efc                                         |     strcmp (r0, r1);
    0x0000ec20 subs r2, r0, 0                                    |     r2 -= endptr;
                                                                 |     if (r2 == endptr) {
    0x0000ec24 bne 0xec3c                                        |         
    0x0000ec28 mov r1, r2                                        |         r1 = r2;
    0x0000ec2c mov r0, r7                                        |         r0 = r7;
    0x0000ec30 bl 0x5b60                                         |         strtol (r0, r1, r2);
    0x0000ec34 str r0, [sb, 0x20]                                |         *((sb + 0x20)) = r0;
    0x0000ec38 b 0xea84                                          |         goto label_6;
                                                                 |     }
    0x0000ec3c ldr r1, [pc, 0x1e8]                               |     r1 = *(0xee28);
    0x0000ec40 mov r0, sl                                        |     r0 = sl;
    0x0000ec44 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000ec48 bl 0x5efc                                         |     strcmp (r0, r1);
    0x0000ec4c subs fp, r0, 0                                    |     
                                                                 |     if (fp != endptr) {
    0x0000ec50 bne 0xeca4                                        |         goto label_21;
                                                                 |     }
    0x0000ec54 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0000ec58 mov r2, fp                                        |     r2 = fp;
    0x0000ec5c sub r1, r3, 0x2c                                  |     r1 = r3 - 0x2c;
    0x0000ec60 mov r0, r7                                        |     r0 = r7;
    0x0000ec64 str fp, [sp, 0x24]                                |     var_24h = fp;
    0x0000ec68 bl 0x5e54                                         |     strtoull (r0, r1, r2);
    0x0000ec6c add sl, sp, 0x90                                  |     sl += s;
    0x0000ec70 str r0, [sb, 0x30]                                |     *((sb + 0x30)) = r0;
    0x0000ec74 ldr r0, [sl, -0x6c]                               |     r0 = var_24h;
    0x0000ec78 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000ec7c beq 0xea84                                        |         goto label_6;
                                                                 |     }
    0x0000ec80 ldrsb r3, [r0]                                    |     r3 = *(r0);
    0x0000ec84 cmp r3, 0x2e                                      |     
                                                                 |     if (r3 != 0x2e) {
    0x0000ec88 bne 0xea84                                        |         goto label_6;
                                                                 |     }
    0x0000ec8c mov r2, fp                                        |     r2 = fp;
    0x0000ec90 mov r1, fp                                        |     r1 = fp;
    0x0000ec94 add r0, r0, 1                                     |     r0++;
    0x0000ec98 bl 0x5e54                                         |     strtoull (r0, r1, r2);
    0x0000ec9c str r0, [sb, 0x34]                                |     *((sb + 0x34)) = r0;
    0x0000eca0 b 0xea84                                          |     goto label_6;
                                                                 | label_21:
    0x0000eca4 mov r0, r7                                        |     r0 = r7;
    0x0000eca8 bl 0x6118                                         |     strlen (r0);
    0x0000ecac mov r2, r7                                        |     r2 = r7;
    0x0000ecb0 mov r1, sl                                        |     r1 = sl;
    0x0000ecb4 mov r3, r0                                        |     r3 = r0;
    0x0000ecb8 mov r0, sb                                        |     r0 = sb;
    0x0000ecbc bl 0x100ec                                        |     r0 = fcn_000100ec (r0, r1, r2);
    0x0000ecc0 subs r7, r0, 0                                    |     r7 = r0 - 0;
                                                                 |     if (r7 >= r0) {
    0x0000ecc4 bge 0xea84                                        |         goto label_6;
                                                                 |     }
                                                                 | label_17:
    0x0000ecc8 ldr r3, [sb, 0x1c]                                |     r3 = *((sb + 0x1c));
    0x0000eccc cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000ecd0 bne 0xed30                                        |         
    0x0000ecd4 ldr r3, [r6]                                      |         r3 = *(r6);
    0x0000ecd8 tst r3, 0x400                                     |         
                                                                 |         if ((r3 & 0x400) != 0) {
    0x0000ecdc beq 0xed28                                        |             
    0x0000ece0 ldr r3, [pc, 0x58]                                |             r3 = *(0xed3c);
    0x0000ece4 ldr r3, [r5, r3]                                  |             r3 = *((r5 + r3));
    0x0000ece8 ldr r4, [r3]                                      |             r4 = *(0xed3c);
    0x0000ecec bl 0x58fc                                         |             getpid ();
    0x0000ecf0 ldr r3, [pc, 0x138]                               |             r3 = *(0xee2c);
    0x0000ecf4 ldr r1, [pc, 0x138]                               |             r1 = *(0xee30);
    0x0000ecf8 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000ecfc str r3, [sp]                                      |             *(sp) = r3;
    0x0000ed00 ldr r3, [pc, 0x130]                               |             r3 = *(0xee34);
    0x0000ed04 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000ed08 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000ed0c mov r2, r0                                        |             r2 = r0;
    0x0000ed10 mov r0, r4                                        |             r0 = r4;
    0x0000ed14 bl 0x5c50                                         |             fprintf (r0, r1, r2, r3)
    0x0000ed18 ldr r0, [pc, 0x11c]                               |             r0 = *(0xee38);
    0x0000ed1c ldr r1, [sb, 0x14]                                |             r1 = *((sb + 0x14));
    0x0000ed20 add r0, pc, r0                                    |             r0 = pc + r0;
    0x0000ed24 bl 0xe3d4                                         |             fcn_0000e3d4 ();
                                                                 |         }
    0x0000ed28 mov r0, sb                                        |         r0 = sb;
    0x0000ed2c bl 0x7738                                         |         fcn_00007738 (r0);
                                                                 |     }
    0x0000ed30 cmp r7, 0                                         |     
    0x0000ed34 b 0xe808                                          |     goto label_7;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/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 @ 0xfcc0 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0000fcc0 ()                      | void fcn_0000fcc0 (int32_t arg1) {
                                                 |     int32_t var_4h;
                                                 |     int32_t var_ch;
                                                 |     char * format;
                                                 |     int32_t var_18h;
                                                 |     r0 = arg1;
    0x0000fcc0 push {r1, r2, r3}                 |     
    0x0000fcc4 ldr r3, [pc, 0xa4]                |     r3 = *(0xfd6c);
    0x0000fcc8 push {r0, r1, r2, r4, lr}         |     
    0x0000fccc ldr r1, [pc, 0xa0]                |     r1 = *(0xfd70);
    0x0000fcd0 add r3, pc, r3                    |     r3 = pc + r3;
    0x0000fcd4 subs r2, r0, 0                    |     r2 = r0 - 0;
    0x0000fcd8 ldr r4, [r3, r1]                  |     r4 = *(0xfd6c);
                                                 |     if (r2 != r0) {
    0x0000fcdc beq 0xfd04                        |         
    0x0000fce0 ldr r1, [pc, 0x90]                |         r1 = *(0xfd74);
    0x0000fce4 ldr r3, [r3, r1]                  |         r3 = *((r3 + r1));
    0x0000fce8 ldr r3, [r3]                      |         r3 = *(r3);
    0x0000fcec tst r3, 0x1000000                 |         
                                                 |         if ((r3 & 0x1000000) != 0) {
    0x0000fcf0 bne 0xfd04                        |             goto label_1;
                                                 |         }
    0x0000fcf4 ldr r1, [pc, 0x80]                |         r1 = *(0xfd78);
    0x0000fcf8 ldr r0, [r4]                      |         r0 = *(r4);
    0x0000fcfc add r1, pc, r1                    |         r1 = pc + r1;
    0x0000fd00 bl 0x5c50                         |         fprintf (r0, r1)
                                                 |     }
                                                 | label_1:
    0x0000fd04 add r2, sp, 0x18                  |     r2 += var_18h;
    0x0000fd08 ldr r1, [sp, 0x14]                |     r1 = format;
    0x0000fd0c ldr r0, [r4]                      |     r0 = *(r4);
    0x0000fd10 str r2, [sp, 4]                   |     var_4h = r2;
    0x0000fd14 bl 0x61f0                         |     vfprintf (r0, r1, r2)
    0x0000fd18 ldr r1, [r4]                      |     r1 = *(r4);
    0x0000fd1c ldr r3, [r1, 0x34]                |     r3 = *((r1 + 0x34));
    0x0000fd20 cmp r3, 0                         |     
                                                 |     if (r3 == 0) {
    0x0000fd24 beq 0xfd64                        |         goto label_2;
                                                 |     }
    0x0000fd28 ldr r3, [r1, 0x10]                |     r3 = *((r1 + 0x10));
    0x0000fd2c ldr r2, [r1, 0x1c]                |     r2 = *((r1 + 0x1c));
    0x0000fd30 cmp r3, r2                        |     
                                                 |     if (r3 >= r2) {
    0x0000fd34 bhs 0xfd58                        |         goto label_3;
                                                 |     }
    0x0000fd38 add r2, r3, 1                     |     r2 = r3 + 1;
    0x0000fd3c str r2, [r1, 0x10]                |     *((r1 + 0x10)) = r2;
    0x0000fd40 mov r2, 0xa                       |     r2 = 0xa;
    0x0000fd44 strb r2, [r3]                     |     *(r3) = r2;
                                                 |     do {
                                                 | label_0:
    0x0000fd48 add sp, sp, 0xc                   |         
    0x0000fd4c pop {r4, lr}                      |         
    0x0000fd50 add sp, sp, 0xc                   |         
    0x0000fd54 bx lr                             |         return;
                                                 | label_3:
    0x0000fd58 mov r0, 0xa                       |         r0 = 0xa;
    0x0000fd5c bl 0x622c                         |         fputc_unlocked ();
    0x0000fd60 b 0xfd48                          |         
                                                 |     } while (1);
                                                 | label_2:
    0x0000fd64 mov r0, 0xa                       |     r0 = 0xa;
    0x0000fd68 bl 0x5ff8                         |     fputc (r0, r1);
    0x0000fd6c b 0xfd48                          |     goto label_0;
                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xfe0c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0000fe0c ()                                  | void fcn_0000fe0c (uint32_t arg1, uint32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0000fe0c push {r0, r1, r2, r4, r5, r6, r7, lr}         |     
    0x0000fe10 ldr r7, [pc, 0xa8]                            |     r7 = *(0xfebc);
    0x0000fe14 cmp r1, 0                                     |     
    0x0000fe18 cmpne r0, 0                                   |     __asm ("cmpne r0, 0");
                                                             |     if (r1 == 0) {
    0x0000fe1c movne r4, r0                                  |         r4 = r0;
                                                             |     }
    0x0000fe20 add r7, pc, r7                                |     r7 = pc + r7;
                                                             |     if (r1 == 0) {
    0x0000fe24 movne r6, r1                                  |         r6 = r1;
                                                             |     }
                                                             |     if (r1 == 0) {
    0x0000fe28 ldrne r5, [r4, 8]!                            |         r5 = *((r4 += 8));
                                                             |     }
    0x0000fe2c bne 0xfe3c                                    |     
                                                             |     while (r5 == r4) {
    0x0000fe30 mov r5, 0                                     |         r5 = 0;
    0x0000fe34 b 0xfeb4                                      |         goto label_1;
                                                             | label_0:
    0x0000fe38 ldr r5, [r5]                                  |         r5 = *(r5);
    0x0000fe3c cmp r5, r4                                    |         
    0x0000fe40 beq 0xfe30                                    |         
                                                             |     }
    0x0000fe44 mov r1, r6                                    |     r1 = r6;
    0x0000fe48 ldr r0, [r5, 0x10]                            |     r0 = *((r5 + 0x10));
    0x0000fe4c bl 0x5efc                                     |     r0 = strcmp (r0, r1);
    0x0000fe50 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0000fe54 bne 0xfe38                                    |         goto label_0;
                                                             |     }
    0x0000fe58 ldr r3, [pc, 0x64]                            |     
    0x0000fe5c ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x0000fe60 ldr r3, [r3]                                  |     r3 = *(0xfec0);
    0x0000fe64 tst r3, 0x1000                                |     
                                                             |     if ((r3 & 0x1000) != 0) {
    0x0000fe68 beq 0xfeb4                                    |         
    0x0000fe6c ldr r3, [pc, 0x54]                            |         r3 = *(0xfec4);
    0x0000fe70 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x0000fe74 ldr r4, [r3]                                  |         r4 = *(0xfec4);
    0x0000fe78 bl 0x58fc                                     |         getpid ();
    0x0000fe7c ldr r3, [pc, 0x48]                            |         r3 = *(0xfec8);
    0x0000fe80 ldr r1, [pc, 0x48]                            |         r1 = *(0xfecc);
    0x0000fe84 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000fe88 str r3, [sp]                                  |         *(sp) = r3;
    0x0000fe8c ldr r3, [pc, 0x40]                            |         r3 = *(0xfed0);
    0x0000fe90 add r1, pc, r1                                |         r1 = pc + r1;
    0x0000fe94 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000fe98 mov r2, r0                                    |         r2 = r0;
    0x0000fe9c mov r0, r4                                    |         r0 = r4;
    0x0000fea0 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x0000fea4 ldr r0, [pc, 0x2c]                            |         r0 = *(0xfed4);
    0x0000fea8 mov r1, r6                                    |         r1 = r6;
    0x0000feac add r0, pc, r0                                |         r0 = pc + r0;
    0x0000feb0 bl 0xfd80                                     |         fcn_0000fd80 ();
                                                             |     }
                                                             | label_1:
    0x0000feb4 mov r0, r5                                    |     r0 = r5;
    0x0000feb8 add sp, sp, 0xc                               |     
    0x0000febc pop {r4, r5, r6, r7, pc}                      |     
                                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xfedc */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0000fedc ()                          | void fcn_0000fedc () {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
    0x0000fedc push {r0, r1, r2, r4, r5, lr}         |     
    0x0000fee0 ldr r5, [pc, 0x90]                    |     r5 = *(0xff74);
    0x0000fee4 mov r1, 0x1c                          |     r1 = 0x1c;
    0x0000fee8 mov r0, 1                             |     r0 = 1;
    0x0000feec bl 0x5bf0                             |     calloc (r0, r1);
    0x0000fef0 add r5, pc, r5                        |     r5 = pc + r5;
    0x0000fef4 subs r4, r0, 0                        |     r4 = r0 - 0;
                                                     |     if (r4 != r0) {
    0x0000fef8 beq 0xff6c                            |         
    0x0000fefc ldr r3, [pc, 0x78]                    |         
    0x0000ff00 ldr r3, [r5, r3]                      |         r3 = *((r5 + r3));
    0x0000ff04 ldr r3, [r3]                          |         r3 = *(0xff78);
    0x0000ff08 tst r3, 0x1000                        |         
                                                     |         if ((r3 & 0x1000) != 0) {
    0x0000ff0c beq 0xff58                            |             
    0x0000ff10 ldr r3, [pc, 0x68]                    |             r3 = *(0xff7c);
    0x0000ff14 ldr r3, [r5, r3]                      |             r3 = *((r5 + r3));
    0x0000ff18 ldr r5, [r3]                          |             r5 = *(0xff7c);
    0x0000ff1c bl 0x58fc                             |             getpid ();
    0x0000ff20 ldr r3, [pc, 0x5c]                    |             r3 = *(0xff80);
    0x0000ff24 ldr r1, [pc, 0x5c]                    |             r1 = *(0xff84);
    0x0000ff28 add r3, pc, r3                        |             r3 = pc + r3;
    0x0000ff2c str r3, [sp]                          |             *(sp) = r3;
    0x0000ff30 ldr r3, [pc, 0x54]                    |             r3 = *(0xff88);
    0x0000ff34 add r1, pc, r1                        |             r1 = pc + r1;
    0x0000ff38 add r3, pc, r3                        |             r3 = pc + r3;
    0x0000ff3c mov r2, r0                            |             r2 = r0;
    0x0000ff40 mov r0, r5                            |             r0 = r5;
    0x0000ff44 bl 0x5c50                             |             fprintf (r0, r1, r2, r3)
    0x0000ff48 ldr r1, [pc, 0x40]                    |             r1 = *(0xff8c);
    0x0000ff4c mov r0, r4                            |             r0 = r4;
    0x0000ff50 add r1, pc, r1                        |             r1 = pc + r1;
    0x0000ff54 bl 0xfcc0                             |             fcn_0000fcc0 (r0);
                                                     |         }
    0x0000ff58 add r3, r4, 8                         |         r3 = r4 + 8;
    0x0000ff5c str r4, [r4]                          |         *(r4) = r4;
    0x0000ff60 str r4, [r4, 4]                       |         *((r4 + 4)) = r4;
    0x0000ff64 str r3, [r4, 8]                       |         *((r4 + 8)) = r3;
    0x0000ff68 str r3, [r4, 0xc]                     |         *((r4 + 0xc)) = r3;
                                                     |     }
    0x0000ff6c mov r0, r4                            |     r0 = r4;
    0x0000ff70 add sp, sp, 0xc                       |     
    0x0000ff74 pop {r4, r5, pc}                      |     
                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xff94 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0000ff94 ()                      | void fcn_0000ff94 (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_ch;
                                                 |     r0 = arg1;
    0x0000ff94 ldr r3, [pc, 0xb4]                |     r3 = *(0x1004c);
    0x0000ff98 push {r0, r1, r2, r4, r5, lr}     |     
    0x0000ff9c subs r4, r0, 0                    |     r4 = r0 - 0;
    0x0000ffa0 add r3, pc, r3                    |     r3 = pc + r3;
                                                 |     if (r4 != r0) {
    0x0000ffa4 beq 0x10048                       |         
    0x0000ffa8 ldr r2, [pc, 0xa4]                |         
    0x0000ffac ldr r2, [r3, r2]                  |         r2 = *((r3 + r2));
    0x0000ffb0 ldr r2, [r2]                      |         r2 = *(0x10050);
    0x0000ffb4 tst r2, 0x1000                    |         
                                                 |         if ((r2 & 0x1000) != 0) {
    0x0000ffb8 beq 0x1000c                       |             
    0x0000ffbc ldr r2, [pc, 0x94]                |             r2 = *(0x10054);
    0x0000ffc0 ldr r3, [r3, r2]                  |             r3 = *((r3 + r2));
    0x0000ffc4 ldr r5, [r3]                      |             r5 = *(r3);
    0x0000ffc8 bl 0x58fc                         |             getpid ();
    0x0000ffcc ldr r3, [pc, 0x88]                |             r3 = *(0x10058);
    0x0000ffd0 ldr r1, [pc, 0x88]                |             r1 = *(0x1005c);
    0x0000ffd4 add r3, pc, r3                    |             r3 = pc + r3;
    0x0000ffd8 str r3, [sp]                      |             *(sp) = r3;
    0x0000ffdc ldr r3, [pc, 0x80]                |             r3 = *(0x10060);
    0x0000ffe0 add r1, pc, r1                    |             r1 = pc + r1;
    0x0000ffe4 add r3, pc, r3                    |             r3 = pc + r3;
    0x0000ffe8 mov r2, r0                        |             r2 = r0;
    0x0000ffec mov r0, r5                        |             r0 = r5;
    0x0000fff0 bl 0x5c50                         |             fprintf (r0, r1, r2, r3)
    0x0000fff4 ldr r1, [pc, 0x6c]                |             r1 = *(0x10064);
    0x0000fff8 ldr r3, [r4, 0x14]                |             r3 = *((r4 + 0x14));
    0x0000fffc ldmibne r4, {r4, sp}              |             __asm ("ldmibne r4, {r4, sp}");
    0x00010000 and r0, r0, r0                    |             r0 &= r0;
    0x00010004 mov r0, r4                        |             r0 = r4;
    0x00010008 bl 0xfcc0                         |             fcn_0000fcc0 (r0);
                                                 |         }
    0x0001000c ldm r4, {r2, r3}                  |         r2 = *(r4);
                                                 |         r3 = *((r4 + 4));
    0x00010010 ldr r0, [r4, 0x10]                |         r0 = *((r4 + 0x10));
    0x00010014 str r3, [r2, 4]                   |         *((r2 + 4)) = r3;
    0x00010018 str r2, [r3]                      |         *(r3) = r2;
    0x0001001c ldr r3, [r4, 0xc]                 |         r3 = *((r4 + 0xc));
    0x00010020 ldr r2, [r4, 8]                   |         r2 = *((r4 + 8));
    0x00010024 str r3, [r2, 4]                   |         *((r2 + 4)) = r3;
    0x00010028 str r2, [r3]                      |         *(r3) = r2;
    0x0001002c bl 0x6220                         |         free (r0);
    0x00010030 ldr r0, [r4, 0x14]                |         r0 = *((r4 + 0x14));
    0x00010034 bl 0x6220                         |         free (r0);
    0x00010038 mov r0, r4                        |         r0 = r4;
    0x0001003c add sp, sp, 0xc                   |         
    0x00010040 pop {r4, r5, lr}                  |         
    0x00010044 b 0x6220                          |         void (*0x6220)() ();
                                                 |     }
    0x00010048 add sp, sp, 0xc                   |     
    0x0001004c pop {r4, r5, pc}                  |     
                                                 | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x100ec */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) fcn.000100ec ()                                              | void fcn_000100ec (int32_t arg_0h, int32_t arg1, char * arg2) {
                                                                         |     int32_t var_0h;
                                                                         |     int32_t var_ch;
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
    0x000100ec push {r0, r1, r2, r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000100f0 ldr sl, [pc, 0x314]                                       |     sl = *(0x0001040c);
    0x000100f4 subs r5, r2, 0                                            |     r5 = r2 - 0;
    0x000100f8 add sl, pc, sl                                            |     sl = pc + sl;
    0x000100fc mov r6, r0                                                |     r6 = r0;
    0x00010100 mov r8, r1                                                |     r8 = r1;
                                                                         |     if (r5 != r2) {
    0x00010104 beq 0x10124                                               |         
    0x00010108 mov r1, r3                                                |         r1 = r3;
    0x0001010c mov r0, r5                                                |         r0 = r5;
    0x00010110 bl 0x57e8                                                 |         r0 = strndup (r0, r1);
    0x00010114 subs r7, r0, 0                                            |         r7 = r0 - 0;
                                                                         |         if (r7 != r0) {
    0x00010118 bne 0x10128                                               |             goto label_4;
                                                                         |         }
                                                                         | label_1:
    0x0001011c mvn r5, 0xb                                               |         r5 = ~0xb;
    0x00010120 b 0x101ec                                                 |         goto label_5;
                                                                         |     }
    0x00010124 mov r7, r5                                                |     r7 = r5;
                                                                         | label_4:
    0x00010128 ldr r1, [pc, 0x2e0]                                       |     r1 = *(0x1040c);
    0x0001012c mov r0, r8                                                |     r0 = r8;
    0x00010130 add r1, pc, r1                                            |     r1 = pc + r1;
    0x00010134 bl 0x5efc                                                 |     r0 = strcmp (r0, r1);
    0x00010138 cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x0001013c addeq sb, r6, 0x1c                                        |         sb = r6 + 0x1c;
                                                                         |     }
                                                                         |     if (r0 != 0) {
    0x00010140 beq 0x1017c                                               |         
    0x00010144 ldr r1, [pc, 0x2c8]                                       |         r1 = *(0x10410);
    0x00010148 mov r0, r8                                                |         r0 = r8;
    0x0001014c add r1, pc, r1                                            |         r1 = pc + r1;
    0x00010150 bl 0x5efc                                                 |         r0 = strcmp (r0, r1);
    0x00010154 cmp r0, 0                                                 |         
                                                                         |         if (r0 != 0) {
    0x00010158 addeq sb, r6, 0x3c                                        |             sb = r6 + 0x3c;
                                                                         |         }
                                                                         |         if (r0 == 0) {
    0x0001015c beq 0x1017c                                               |             goto label_6;
                                                                         |         }
    0x00010160 ldr r1, [pc, 0x2b0]                                       |         r1 = *(0x10414);
    0x00010164 mov r0, r8                                                |         r0 = r8;
    0x00010168 add r1, pc, r1                                            |         r1 = pc + r1;
    0x0001016c bl 0x5efc                                                 |         r0 = strcmp (r0, r1);
    0x00010170 cmp r0, 0                                                 |         
                                                                         |         if (r0 != 0) {
    0x00010174 addeq sb, r6, 0x40                                        |             sb = r6 + 0x40;
                                                                         |         }
                                                                         |         if (r0 != 0) {
    0x00010178 movne sb, 0                                               |             sb = 0;
                                                                         |             goto label_6;
                                                                         |         }
                                                                         |     }
                                                                         | label_6:
    0x0001017c mov r1, r8                                                |     r1 = r8;
    0x00010180 mov r0, r6                                                |     r0 = r6;
    0x00010184 bl 0x1006c                                                |     fcn_0001006c (r0, r1);
    0x00010188 cmp r5, 0                                                 |     
    0x0001018c mov r4, r0                                                |     r4 = r0;
                                                                         |     if (r5 != 0) {
    0x00010190 bne 0x101c8                                               |         goto label_7;
                                                                         |     }
    0x00010194 cmp r0, 0                                                 |     
                                                                         |     if (r0 == 0) {
    0x00010198 beq 0x101a0                                               |         goto label_0;
                                                                         |     }
    0x0001019c bl 0xff94                                                 |     fcn_0000ff94 (r0);
                                                                         |     do {
                                                                         | label_0:
    0x000101a0 cmp sb, 0                                                 |         
                                                                         |         if (sb != 0) {
    0x000101a4 beq 0x101ac                                               |             
                                                                         | label_2:
    0x000101a8 str r7, [sb]                                              |             *(sb) = r7;
                                                                         |         }
    0x000101ac ldr r3, [r6, 0x10]                                        |         r3 = *((r6 + 0x10));
    0x000101b0 cmp r3, 0                                                 |         
                                                                         |         if (r3 == 0) {
    0x000101b4 ldrne r2, [r3, 0x18]                                      |             r2 = *((r3 + 0x18));
                                                                         |         }
                                                                         |         if (r3 == 0) {
    0x000101b8 orrne r2, r2, 4                                           |             r2 |= 4;
                                                                         |         }
                                                                         |         if (r3 == 0) {
    0x000101bc strne r2, [r3, 0x18]                                      |             *((r3 + 0x18)) = r2;
                                                                         |         }
                                                                         | label_3:
    0x000101c0 mov r5, 0                                                 |         r5 = 0;
    0x000101c4 b 0x101ec                                                 |         goto label_5;
                                                                         | label_7:
    0x000101c8 cmp r0, 0                                                 |         
                                                                         |         if (r0 == 0) {
    0x000101cc beq 0x10270                                               |             goto label_8;
                                                                         |         }
    0x000101d0 mov r1, r7                                                |         r1 = r7;
    0x000101d4 ldr r0, [r0, 0x14]                                        |         r0 = *((r0 + 0x14));
    0x000101d8 bl 0x5efc                                                 |         r0 = strcmp (r0, r1);
    0x000101dc subs r5, r0, 0                                            |         r5 = r0 - 0;
                                                                         |         if (r5 == r0) {
    0x000101e0 bne 0x101f8                                               |             
    0x000101e4 mov r0, r7                                                |             r0 = r7;
    0x000101e8 bl 0x6220                                                 |             free (r0);
                                                                         | label_5:
    0x000101ec mov r0, r5                                                |             r0 = r5;
    0x000101f0 add sp, sp, 0xc                                           |             
    0x000101f4 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                  |             
                                                                         |         }
    0x000101f8 ldr r3, [pc, 0x21c]                                       |         
    0x000101fc ldr r3, [sl, r3]                                          |         r3 = *((sl + r3));
    0x00010200 ldr r3, [r3]                                              |         r3 = *(0x10418);
    0x00010204 tst r3, 0x1000                                            |         
                                                                         |         if ((r3 & 0x1000) != 0) {
    0x00010208 beq 0x10260                                               |             
    0x0001020c ldr r3, [pc, 0x20c]                                       |             r3 = *(0x1041c);
    0x00010210 ldr r3, [sl, r3]                                          |             r3 = *((sl + r3));
    0x00010214 ldr r5, [r3]                                              |             r5 = *(0x1041c);
    0x00010218 bl 0x58fc                                                 |             getpid ();
    0x0001021c ldr r3, [pc, 0x200]                                       |             r3 = *(0x10420);
    0x00010220 ldr r1, [pc, 0x200]                                       |             r1 = *(0x10424);
    0x00010224 add r3, pc, r3                                            |             r3 = pc + r3;
    0x00010228 str r3, [sp]                                              |             *(sp) = r3;
    0x0001022c ldr r3, [pc, 0x1f8]                                       |             r3 = *(0x10428);
    0x00010230 add r1, pc, r1                                            |             r1 = pc + r1;
    0x00010234 add r3, pc, r3                                            |             r3 = pc + r3;
    0x00010238 mov r2, r0                                                |             r2 = r0;
    0x0001023c mov r0, r5                                                |             r0 = r5;
    0x00010240 bl 0x5c50                                                 |             fprintf (r0, r1, r2, r3)
    0x00010244 ldr r1, [pc, 0x1e4]                                       |             r1 = *(0x1042c);
    0x00010248 str r7, [sp]                                              |             *(sp) = r7;
    0x0001024c add r1, pc, r1                                            |             r1 = pc + r1;
    0x00010250 ldr r3, [r4, 0x14]                                        |             r3 = *((r4 + 0x14));
    0x00010254 ldr r2, [r4, 0x10]                                        |             r2 = *((r4 + 0x10));
    0x00010258 mov r0, r4                                                |             r0 = r4;
    0x0001025c bl 0xfcc0                                                 |             fcn_0000fcc0 (r0);
                                                                         |         }
    0x00010260 ldr r0, [r4, 0x14]                                        |         r0 = *((r4 + 0x14));
    0x00010264 bl 0x6220                                                 |         free (r0);
    0x00010268 str r7, [r4, 0x14]                                        |         *((r4 + 0x14)) = r7;
    0x0001026c b 0x101a0                                                 |         
                                                                         |     } while (1);
                                                                         | label_8:
    0x00010270 bl 0xfedc                                                 |     r0 = fcn_0000fedc ();
    0x00010274 subs r4, r0, 0                                            |     r4 = r0 - 0;
                                                                         |     if (r4 == r0) {
    0x00010278 beq 0x103f4                                               |         goto label_9;
                                                                         |     }
    0x0001027c mov r0, r8                                                |     r0 = r8;
    0x00010280 bl 0x5e48                                                 |     strdup (r0);
    0x00010284 ldr r3, [pc, 0x190]                                       |     r3 = *(0x10418);
    0x00010288 str r7, [r4, 0x14]                                        |     *((r4 + 0x14)) = r7;
    0x0001028c str r6, [r4, 0x18]                                        |     *((r4 + 0x18)) = r6;
    0x00010290 str r0, [r4, 0x10]                                        |     *((r4 + 0x10)) = r0;
    0x00010294 ldr fp, [sl, r3]                                          |     fp = *((sl + r3));
    0x00010298 ldr r3, [fp]                                              |     r3 = *(fp);
    0x0001029c tst r3, 0x1000                                            |     
                                                                         |     if ((r3 & 0x1000) != 0) {
    0x000102a0 beq 0x102f4                                               |         
    0x000102a4 ldr r3, [pc, 0x174]                                       |         r3 = *(0x1041c);
    0x000102a8 ldr r3, [sl, r3]                                          |         r3 = *((sl + r3));
    0x000102ac ldr r5, [r3]                                              |         r5 = *(0x1041c);
    0x000102b0 bl 0x58fc                                                 |         getpid ();
    0x000102b4 ldr r3, [pc, 0x178]                                       |         r3 = *(0x10430);
    0x000102b8 ldr r1, [pc, 0x178]                                       |         r1 = *(0x10434);
    0x000102bc add r3, pc, r3                                            |         r3 = pc + r3;
    0x000102c0 str r3, [sp]                                              |         *(sp) = r3;
    0x000102c4 ldr r3, [pc, 0x170]                                       |         r3 = *(0x10438);
    0x000102c8 add r1, pc, r1                                            |         r1 = pc + r1;
    0x000102cc add r3, pc, r3                                            |         r3 = pc + r3;
    0x000102d0 mov r2, r0                                                |         r2 = r0;
    0x000102d4 mov r0, r5                                                |         r0 = r5;
    0x000102d8 bl 0x5c50                                                 |         fprintf (r0, r1, r2, r3)
    0x000102dc ldr r1, [pc, 0x15c]                                       |         r1 = *(0x1043c);
    0x000102e0 ldr r3, [r4, 0x14]                                        |         r3 = *((r4 + 0x14));
    0x000102e4 ldr r2, [r4, 0x10]                                        |         r2 = *((r4 + 0x10));
    0x000102e8 add r1, pc, r1                                            |         r1 = pc + r1;
    0x000102ec mov r0, r4                                                |         r0 = r4;
    0x000102f0 bl 0xfcc0                                                 |         fcn_0000fcc0 (r0);
                                                                         |     }
    0x000102f4 ldr r0, [r6, 0x10]                                        |     r0 = *((r6 + 0x10));
    0x000102f8 ldr r3, [r6, 0xc]                                         |     r3 = *((r6 + 0xc));
    0x000102fc add r2, r6, 8                                             |     r2 = r6 + 8;
    0x00010300 cmp r0, 0                                                 |     
    0x00010304 str r4, [r6, 0xc]                                         |     *((r6 + 0xc)) = r4;
    0x00010308 stm r4, {r2, r3}                                          |     *(r4) = r2;
                                                                         |     *((r4 + 4)) = r3;
    0x0001030c str r4, [r3]                                              |     *(r3) = r4;
                                                                         |     if (r0 == 0) {
    0x00010310 beq 0x10400                                               |         goto label_10;
                                                                         |     }
    0x00010314 ldr r1, [r4, 0x10]                                        |     r1 = *((r4 + 0x10));
    0x00010318 bl 0xfe0c                                                 |     r0 = fcn_0000fe0c (r0, r1);
    0x0001031c subs r5, r0, 0                                            |     r5 = r0 - 0;
                                                                         |     if (r5 == r0) {
    0x00010320 bne 0x103b8                                               |         
    0x00010324 bl 0xfedc                                                 |         r0 = fcn_0000fedc ();
    0x00010328 subs r5, r0, 0                                            |         r5 = r0 - 0;
                                                                         |         if (r5 == r0) {
    0x0001032c beq 0x103d8                                               |             goto label_11;
                                                                         |         }
    0x00010330 ldr r3, [fp]                                              |         r3 = *(fp);
    0x00010334 tst r3, 0x1000                                            |         
                                                                         |         if ((r3 & 0x1000) != 0) {
    0x00010338 beq 0x10388                                               |             
    0x0001033c ldr r3, [pc, 0xdc]                                        |             r3 = *(0x1041c);
    0x00010340 ldr r3, [sl, r3]                                          |             r3 = *((sl + r3));
    0x00010344 ldr sl, [r3]                                              |             sl = *(0x1041c);
    0x00010348 bl 0x58fc                                                 |             getpid ();
    0x0001034c ldr r3, [pc, 0xf0]                                        |             r3 = *(0x10440);
    0x00010350 ldr r1, [pc, 0xf0]                                        |             r1 = *(0x10444);
    0x00010354 add r3, pc, r3                                            |             r3 = pc + r3;
    0x00010358 str r3, [sp]                                              |             *(sp) = r3;
    0x0001035c ldr r3, [pc, 0xe8]                                        |             r3 = *(0x10448);
    0x00010360 add r1, pc, r1                                            |             r1 = pc + r1;
    0x00010364 add r3, pc, r3                                            |             r3 = pc + r3;
    0x00010368 mov r2, r0                                                |             r2 = r0;
    0x0001036c mov r0, sl                                                |             r0 = sl;
    0x00010370 bl 0x5c50                                                 |             fprintf (r0, r1, r2, r3)
    0x00010374 ldr r1, [pc, 0xd4]                                        |             r1 = *(0x1044c);
    0x00010378 mov r2, r8                                                |             r2 = r8;
    0x0001037c add r1, pc, r1                                            |             r1 = pc + r1;
    0x00010380 mov r0, r5                                                |             r0 = r5;
    0x00010384 bl 0xfcc0                                                 |             fcn_0000fcc0 (r0);
                                                                         |         }
    0x00010388 mov r0, r8                                                |         r0 = r8;
    0x0001038c bl 0x5e48                                                 |         r0 = strdup (r0);
    0x00010390 cmp r0, 0                                                 |         
    0x00010394 str r0, [r5, 0x10]                                        |         *((r5 + 0x10)) = r0;
                                                                         |         if (r0 == 0) {
    0x00010398 beq 0x103d8                                               |             goto label_11;
                                                                         |         }
    0x0001039c ldr r3, [r6, 0x10]                                        |         r3 = *((r6 + 0x10));
    0x000103a0 ldr r2, [r3, 0xc]                                         |         r2 = *((r3 + 0xc));
    0x000103a4 str r5, [r3, 0xc]                                         |         *((r3 + 0xc)) = r5;
    0x000103a8 add r3, r3, 8                                             |         r3 += 8;
    0x000103ac str r3, [r5]                                              |         *(r5) = r3;
    0x000103b0 str r2, [r5, 4]                                           |         *((r5 + 4)) = r2;
    0x000103b4 str r5, [r2]                                              |         *(r2) = r5;
                                                                         |     }
    0x000103b8 ldr r3, [r5, 0xc]                                         |     r3 = *((r5 + 0xc));
    0x000103bc add r2, r4, 8                                             |     r2 = r4 + 8;
    0x000103c0 str r2, [r5, 0xc]                                         |     *((r5 + 0xc)) = r2;
    0x000103c4 add r5, r5, 8                                             |     r5 += 8;
    0x000103c8 str r5, [r4, 8]                                           |     *((r4 + 8)) = r5;
    0x000103cc str r3, [r4, 0xc]                                         |     *((r4 + 0xc)) = r3;
    0x000103d0 str r2, [r3]                                              |     *(r3) = r2;
    0x000103d4 b 0x101a0                                                 |     goto label_0;
                                                                         | label_11:
    0x000103d8 mov r0, r4                                                |     r0 = r4;
    0x000103dc bl 0xff94                                                 |     fcn_0000ff94 (r0);
    0x000103e0 cmp r5, 0                                                 |     
                                                                         |     if (r5 == 0) {
    0x000103e4 beq 0x1011c                                               |         goto label_1;
                                                                         |     }
    0x000103e8 mov r0, r5                                                |     r0 = r5;
    0x000103ec bl 0xff94                                                 |     fcn_0000ff94 (r0);
    0x000103f0 b 0x1011c                                                 |     goto label_1;
                                                                         | label_9:
    0x000103f4 mov r0, r7                                                |     r0 = r7;
    0x000103f8 bl 0x6220                                                 |     free (r0);
    0x000103fc b 0x1011c                                                 |     goto label_1;
                                                                         | label_10:
    0x00010400 cmp sb, 0                                                 |     
                                                                         |     if (sb != 0) {
    0x00010404 bne 0x101a8                                               |         goto label_2;
                                                                         |     }
    0x00010408 b 0x101c0                                                 |     goto label_3;
                                                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x12614 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00012614 ()                      | void fcn_00012614 (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00012614 push {r0, r1, r4, r5, r6, lr}     |     
    0x00012618 ldr r6, [pc, 0x108]               |     r6 = *(0x12724);
    0x0001261c mov r5, r1                        |     r5 = r1;
    0x00012620 mov r4, r0                        |     r4 = r0;
    0x00012624 bl 0x141b8                        |     fcn_000141b8 (r0);
    0x00012628 cmp r5, 0                         |     
                                                 |     if (r5 == 0) {
    0x0001262c movne r3, 0                       |         r3 = 0;
                                                 |     }
    0x00012630 add r6, pc, r6                    |     r6 = pc + r6;
                                                 |     if (r5 == 0) {
    0x00012634 strne r3, [r5]                    |         *(r5) = r3;
                                                 |     }
                                                 |     if (r5 != 0) {
    0x00012638 bne 0x12650                       |         goto label_3;
                                                 |     }
    0x0001263c tst r0, 2                         |     
                                                 |     if ((r0 & 2) == 0) {
    0x00012640 beq 0x12650                       |         goto label_3;
                                                 |     }
                                                 | label_1:
    0x00012644 mov r0, 1                         |     r0 = 1;
                                                 |     do {
                                                 | label_0:
    0x00012648 add sp, sp, 8                     |         
    0x0001264c pop {r4, r5, r6, pc}              |         
                                                 | label_3:
    0x00012650 mov r1, 0                         |         r1 = 0;
    0x00012654 mov r0, r4                        |         r0 = r4;
    0x00012658 bl 0xc51c                         |         r0 = fcn_0000c51c (r0, r1);
    0x0001265c cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x00012660 bne 0x12678                       |             goto label_4;
                                                 |         }
    0x00012664 bl 0x60ac                         |         r0 = errno_location ();
    0x00012668 ldr r0, [r0]                      |         r0 = *(r0);
    0x0001266c cmp r0, 0                         |         
    0x00012670 rsbne r0, r0, 0                   |         __asm ("rsbne r0, r0, 0");
    0x00012674 b 0x12648                         |         
                                                 |     } while (1);
                                                 | label_4:
    0x00012678 ldrb r3, [r0, 0x1fe]              |     r3 = *((r0 + 0x1fe));
    0x0001267c cmp r3, 0x55                      |     
                                                 |     if (r3 != 0x55) {
    0x00012680 bne 0x12720                       |         goto label_5;
                                                 |     }
    0x00012684 ldrb r3, [r0, 0x1ff]              |     r3 = *((r0 + 0x1ff));
    0x00012688 cmp r3, 0xaa                      |     
                                                 |     if (r3 != 0xaa) {
    0x0001268c bne 0x12720                       |         goto label_5;
                                                 |     }
    0x00012690 mov r4, 0                         |     r4 = 0;
                                                 | label_2:
    0x00012694 add r3, r0, r4, lsl 4             |     r3 = r0 + (r4 << 4);
    0x00012698 ldrb r3, [r3, 0x1c2]              |     r3 = *((r3 + 0x1c2));
    0x0001269c cmp r3, 0xee                      |     
                                                 |     if (r3 != 0xee) {
    0x000126a0 bne 0x12714                       |         goto label_6;
                                                 |     }
    0x000126a4 ldr r3, [pc, 0x80]                |     
    0x000126a8 ldr r3, [r6, r3]                  |     r3 = *((r6 + r3));
    0x000126ac ldr r3, [r3]                      |     r3 = *(0x12728);
    0x000126b0 tst r3, 0x100                     |     
                                                 |     if ((r3 & 0x100) != 0) {
    0x000126b4 beq 0x12700                       |         
    0x000126b8 ldr r3, [pc, 0x70]                |         r3 = *(0x1272c);
    0x000126bc ldr r3, [r6, r3]                  |         r3 = *((r6 + r3));
    0x000126c0 ldr r6, [r3]                      |         r6 = *(0x1272c);
    0x000126c4 bl 0x58fc                         |         getpid ();
    0x000126c8 ldr r3, [pc, 0x64]                |         r3 = *(0x12730);
    0x000126cc ldr r1, [pc, 0x64]                |         r1 = *(0x12734);
    0x000126d0 add r3, pc, r3                    |         r3 = pc + r3;
    0x000126d4 str r3, [sp]                      |         *(sp) = r3;
    0x000126d8 ldr r3, [pc, 0x5c]                |         r3 = *(0x12738);
    0x000126dc add r1, pc, r1                    |         r1 = pc + r1;
    0x000126e0 add r3, pc, r3                    |         r3 = pc + r3;
    0x000126e4 mov r2, r0                        |         r2 = r0;
    0x000126e8 mov r0, r6                        |         r0 = r6;
    0x000126ec bl 0x5c50                         |         fprintf (r0, r1, r2, r3)
    0x000126f0 ldr r0, [pc, 0x48]                |         r0 = *(0x1273c);
    0x000126f4 add r1, r4, 1                     |         r1 = r4 + 1;
    0x000126f8 add r0, pc, r0                    |         r0 = pc + r0;
    0x000126fc bl 0x12588                        |         fcn_00012588 ();
                                                 |     }
    0x00012700 cmp r5, 0                         |     
                                                 |     if (r5 == 0) {
    0x00012704 movne r0, 1                       |         r0 = 1;
                                                 |     }
                                                 |     if (r5 != 0) {
    0x00012708 strne r0, [r5]                    |         *(r5) = r0;
                                                 |         goto label_7;
                                                 |     }
                                                 |     if (r5 != 0) {
                                                 | label_7:
    0x0001270c bne 0x12648                       |         goto label_0;
                                                 |     }
    0x00012710 b 0x12644                         |     goto label_1;
                                                 | label_6:
    0x00012714 add r4, r4, 1                     |     r4++;
    0x00012718 cmp r4, 4                         |     
                                                 |     if (r4 != 4) {
    0x0001271c bne 0x12694                       |         goto label_2;
                                                 |     }
                                                 | label_5:
    0x00012720 mov r0, 0                         |     r0 = 0;
    0x00012724 b 0x12648                         |     goto label_0;
                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x12744 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00012744 ()                                  | void fcn_00012744 (int32_t arg_48h, int32_t arg_50h, int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_24h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00012744 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00012748 ldr r6, [pc, 0x4a8]                           |     r6 = *(0x12bf4);
    0x0001274c sub sp, sp, 0x24                              |     
    0x00012750 str r0, [sp, 0x18]                            |     var_18h = r0;
    0x00012754 mov r5, r1                                    |     r5 = r1;
    0x00012758 str r2, [sp, 0x1c]                            |     var_1ch = r2;
    0x0001275c ldrd sl, fp, [sp, 0x48]                       |     __asm ("ldrd sl, fp, [arg_48h]");
    0x00012760 bl 0x5da0                                     |     fcn_00005da0 ();
    0x00012764 ldr r3, [pc, 0x490]                           |     r3 = *(0x12bf8);
    0x00012768 add r6, pc, r6                                |     r6 = pc + r6;
    0x0001276c ldr r7, [r6, r3]                              |     r7 = *(0x12bf4);
    0x00012770 ldr r3, [r7]                                  |     r3 = *(0x12bf4);
    0x00012774 tst r3, 0x100                                 |     
    0x00012778 mov sb, r0                                    |     sb = r0;
                                                             |     if ((r3 & 0x100) != 0) {
    0x0001277c beq 0x127cc                                   |         
    0x00012780 ldr r3, [pc, 0x4e8]                           |         r3 = *(0x12c6c);
    0x00012784 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x00012788 ldr r4, [r3]                                  |         r4 = *(0x12c6c);
    0x0001278c bl 0x58fc                                     |         getpid ();
    0x00012790 ldr r3, [pc, 0x468]                           |         r3 = *(0x12bfc);
    0x00012794 ldr r1, [pc, 0x468]                           |         r1 = *(0x12c00);
    0x00012798 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001279c str r3, [sp]                                  |         *(sp) = r3;
    0x000127a0 ldr r3, [pc, 0x460]                           |         r3 = *(0x12c04);
    0x000127a4 add r1, pc, r1                                |         r1 = pc + r1;
    0x000127a8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000127ac mov r2, r0                                    |         r2 = r0;
    0x000127b0 mov r0, r4                                    |         r0 = r4;
    0x000127b4 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x000127b8 ldr r0, [pc, 0x44c]                           |         r0 = *(0x12c08);
    0x000127bc mov r2, sl                                    |         r2 = sl;
    0x000127c0 mov r3, fp                                    |         r3 = fp;
    0x000127c4 add r0, pc, r0                                |         r0 = pc + r0;
    0x000127c8 bl 0x12588                                    |         fcn_00012588 ();
                                                             |     }
    0x000127cc ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x000127d0 bl 0x5da0                                     |     fcn_00005da0 ();
    0x000127d4 mov r1, 0                                     |     r1 = 0;
    0x000127d8 str sb, [sp]                                  |     *(sp) = sb;
    0x000127dc str r1, [sp, 4]                               |     var_4h = r1;
    0x000127e0 umull r2, r3, r0, sl                          |     r2:r3 = r0 * sl;
    0x000127e4 mla r3, r0, fp, r3                            |     __asm ("mla r3, r0, fp, r3");
    0x000127e8 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x000127ec bl 0xbc24                                     |     r0 = fcn_0000bc24 (r0, r1, r2);
    0x000127f0 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x000127f4 bne 0x12808                                   |     
                                                             |     while (r1 != r3) {
                                                             | label_0:
    0x000127f8 mov r5, 0                                     |         r5 = 0;
                                                             | label_2:
    0x000127fc mov r0, r5                                    |         r0 = r5;
    0x00012800 add sp, sp, 0x24                              |         
    0x00012804 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x00012808 ldrb r2, [r4, 1]                              |         r2 = *((r4 + 1));
    0x0001280c ldrb r3, [r4]                                 |         r3 = *(r4);
    0x00012810 orr r3, r3, r2, lsl 8                         |         r3 |= (r2 << 8);
    0x00012814 ldrb r2, [r4, 2]                              |         r2 = *((r4 + 2));
    0x00012818 orr r3, r3, r2, lsl 16                        |         r3 |= (r2 << 16);
    0x0001281c ldrb r2, [r4, 3]                              |         r2 = *((r4 + 3));
    0x00012820 orr r0, r3, r2, lsl 24                        |         r0 = r3 | (r2 << 24);
    0x00012824 ldrb r2, [r4, 5]                              |         r2 = *((r4 + 5));
    0x00012828 ldrb r3, [r4, 4]                              |         r3 = *((r4 + 4));
    0x0001282c orr r3, r3, r2, lsl 8                         |         r3 |= (r2 << 8);
    0x00012830 ldrb r2, [r4, 6]                              |         r2 = *((r4 + 6));
    0x00012834 orr r3, r3, r2, lsl 16                        |         r3 |= (r2 << 16);
    0x00012838 ldrb r2, [r4, 7]                              |         r2 = *((r4 + 7));
    0x0001283c orr r1, r3, r2, lsl 24                        |         r1 = r3 | (r2 << 24);
    0x00012840 add r3, pc, 0x3a8                             |         r3 = pc + 0x3a8;
    0x00012844 ldrd r2, r3, [r3]                             |         __asm ("ldrd r2, r3, [r3]");
    0x00012848 cmp r1, r3                                    |         
    0x0001284c cmpeq r0, r2                                  |         __asm ("cmpeq r0, r2");
    0x00012850 bne 0x127f8                                   |         
                                                             |     }
    0x00012854 ldrb r3, [r4, 0xd]                            |     r3 = *((r4 + 0xd));
    0x00012858 ldrb r2, [r4, 0xc]                            |     r2 = *((r4 + 0xc));
    0x0001285c orr r2, r2, r3, lsl 8                         |     r2 |= (r3 << 8);
    0x00012860 ldrb r3, [r4, 0xe]                            |     r3 = *((r4 + 0xe));
    0x00012864 orr r2, r2, r3, lsl 16                        |     r2 |= (r3 << 16);
    0x00012868 ldrb r3, [r4, 0xf]                            |     r3 = *((r4 + 0xf));
    0x0001286c orr r2, r2, r3, lsl 24                        |     r2 |= (r3 << 24);
    0x00012870 cmp sb, r2                                    |     
    0x00012874 cmphs r2, 0x5b                                |     __asm ("cmphs r2, 0x5b");
                                                             |     if (sb < r2) {
    0x00012878 bls 0x127f8                                   |         goto label_0;
                                                             |     }
    0x0001287c mov r3, 4                                     |     r3 = 4;
    0x00012880 str r3, [sp]                                  |     *(sp) = r3;
    0x00012884 mov r1, r4                                    |     r1 = r4;
    0x00012888 mov r3, 0x10                                  |     r3 = 0x10;
    0x0001288c mvn r0, 0                                     |     r0 = ~0;
    0x00012890 bl 0x22bb4                                    |     fcn_00022bb4 (r0, r1);
    0x00012894 ldrb r2, [r4, 0x11]                           |     r2 = *((r4 + 0x11));
    0x00012898 ldrb r3, [r4, 0x10]                           |     r3 = *((r4 + 0x10));
    0x0001289c orr r3, r3, r2, lsl 8                         |     r3 |= (r2 << 8);
    0x000128a0 ldrb r2, [r4, 0x12]                           |     r2 = *((r4 + 0x12));
    0x000128a4 orr r3, r3, r2, lsl 16                        |     r3 |= (r2 << 16);
    0x000128a8 ldrb r2, [r4, 0x13]                           |     r2 = *((r4 + 0x13));
    0x000128ac orr r3, r3, r2, lsl 24                        |     r3 |= (r2 << 24);
    0x000128b0 mvn r0, r0                                    |     r0 = ~r0;
    0x000128b4 cmp r3, r0                                    |     
                                                             |     if (r3 == r0) {
    0x000128b8 beq 0x12910                                   |         goto label_3;
                                                             |     }
    0x000128bc ldr r3, [r7]                                  |     r3 = *(r7);
    0x000128c0 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) == 0) {
    0x000128c4 beq 0x127f8                                   |         goto label_0;
                                                             |     }
    0x000128c8 ldr r3, [pc, 0x3a0]                           |     r3 = *(0x12c6c);
    0x000128cc ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x000128d0 ldr r4, [r3]                                  |     r4 = *(0x12c6c);
    0x000128d4 bl 0x58fc                                     |     getpid ();
    0x000128d8 ldr r3, [pc, 0x330]                           |     r3 = *(0x12c0c);
    0x000128dc ldr r1, [pc, 0x330]                           |     r1 = *(0x12c10);
    0x000128e0 add r3, pc, r3                                |     r3 = pc + r3;
    0x000128e4 str r3, [sp]                                  |     *(sp) = r3;
    0x000128e8 ldr r3, [pc, 0x328]                           |     r3 = *(0x12c14);
    0x000128ec add r1, pc, r1                                |     r1 = pc + r1;
    0x000128f0 add r3, pc, r3                                |     r3 = pc + r3;
    0x000128f4 mov r2, r0                                    |     r2 = r0;
    0x000128f8 mov r0, r4                                    |     r0 = r4;
    0x000128fc bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x00012900 ldr r0, [pc, 0x314]                           |     r0 = *(0x12c18);
    0x00012904 add r0, pc, r0                                |     r0 = pc + r0;
                                                             | label_1:
    0x00012908 bl 0x12588                                    |     fcn_00012588 ();
    0x0001290c b 0x127f8                                     |     goto label_0;
                                                             | label_3:
    0x00012910 ldrb r2, [r4, 0x19]                           |     r2 = *((r4 + 0x19));
    0x00012914 ldrb r3, [r4, 0x18]                           |     r3 = *((r4 + 0x18));
    0x00012918 orr r3, r3, r2, lsl 8                         |     r3 |= (r2 << 8);
    0x0001291c ldrb r2, [r4, 0x1a]                           |     r2 = *((r4 + 0x1a));
    0x00012920 orr r3, r3, r2, lsl 16                        |     r3 |= (r2 << 16);
    0x00012924 ldrb r2, [r4, 0x1b]                           |     r2 = *((r4 + 0x1b));
    0x00012928 orr r0, r3, r2, lsl 24                        |     r0 = r3 | (r2 << 24);
    0x0001292c ldrb r2, [r4, 0x1d]                           |     r2 = *((r4 + 0x1d));
    0x00012930 ldrb r3, [r4, 0x1c]                           |     r3 = *((r4 + 0x1c));
    0x00012934 orr r3, r3, r2, lsl 8                         |     r3 |= (r2 << 8);
    0x00012938 ldrb r2, [r4, 0x1e]                           |     r2 = *((r4 + 0x1e));
    0x0001293c orr r3, r3, r2, lsl 16                        |     r3 |= (r2 << 16);
    0x00012940 ldrb r2, [r4, 0x1f]                           |     r2 = *((r4 + 0x1f));
    0x00012944 orr r1, r3, r2, lsl 24                        |     r1 = r3 | (r2 << 24);
    0x00012948 cmp r1, fp                                    |     
    0x0001294c cmpeq r0, sl                                  |     __asm ("cmpeq r0, sl");
                                                             |     if (r1 == fp) {
    0x00012950 beq 0x129a4                                   |         goto label_4;
                                                             |     }
    0x00012954 ldr r3, [r7]                                  |     r3 = *(r7);
    0x00012958 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) == 0) {
    0x0001295c beq 0x127f8                                   |         goto label_0;
                                                             |     }
    0x00012960 ldr r3, [pc, 0x308]                           |     r3 = *(0x12c6c);
    0x00012964 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00012968 ldr r4, [r3]                                  |     r4 = *(0x12c6c);
    0x0001296c bl 0x58fc                                     |     getpid ();
    0x00012970 ldr r3, [pc, 0x2a8]                           |     r3 = *(0x12c1c);
    0x00012974 ldr r1, [pc, 0x2a8]                           |     r1 = *(0x12c20);
    0x00012978 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001297c str r3, [sp]                                  |     *(sp) = r3;
    0x00012980 ldr r3, [pc, 0x2a0]                           |     r3 = *(0x12c24);
    0x00012984 add r1, pc, r1                                |     r1 = pc + r1;
    0x00012988 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001298c mov r2, r0                                    |     r2 = r0;
    0x00012990 mov r0, r4                                    |     r0 = r4;
    0x00012994 bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x00012998 ldr r0, [pc, 0x28c]                           |     r0 = *(0x12c28);
    0x0001299c add r0, pc, r0                                |     r0 = pc + r0;
    0x000129a0 b 0x12908                                     |     goto label_1;
                                                             | label_4:
    0x000129a4 ldrb r2, [r4, 0x29]                           |     r2 = *((r4 + 0x29));
    0x000129a8 ldrb r3, [r4, 0x28]                           |     r3 = *((r4 + 0x28));
    0x000129ac orr r3, r3, r2, lsl 8                         |     r3 |= (r2 << 8);
    0x000129b0 ldrb r2, [r4, 0x2a]                           |     r2 = *((r4 + 0x2a));
    0x000129b4 orr r3, r3, r2, lsl 16                        |     r3 |= (r2 << 16);
    0x000129b8 ldrb r2, [r4, 0x2b]                           |     r2 = *((r4 + 0x2b));
    0x000129bc orr r3, r3, r2, lsl 24                        |     r3 |= (r2 << 24);
    0x000129c0 str r3, [sp, 8]                               |     var_8h = r3;
    0x000129c4 ldrb r2, [r4, 0x2d]                           |     r2 = *((r4 + 0x2d));
    0x000129c8 ldrb r3, [r4, 0x2c]                           |     r3 = *((r4 + 0x2c));
    0x000129cc orr r3, r3, r2, lsl 8                         |     r3 |= (r2 << 8);
    0x000129d0 ldrb r2, [r4, 0x2e]                           |     r2 = *((r4 + 0x2e));
    0x000129d4 orr r3, r3, r2, lsl 16                        |     r3 |= (r2 << 16);
    0x000129d8 ldrb r2, [r4, 0x2f]                           |     r2 = *((r4 + 0x2f));
    0x000129dc orr r3, r3, r2, lsl 24                        |     r3 |= (r2 << 24);
    0x000129e0 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x000129e4 ldrb lr, [r4, 0x31]                           |     
    0x000129e8 ldrb ip, [r4, 0x30]                           |     ip = *((r4 + 0x30));
    0x000129ec ldrd r0, r1, [sp, 8]                          |     __asm ("ldrd r0, r1, [var_8h]");
    0x000129f0 orr ip, ip, lr, lsl 8                         |     
    0x000129f4 ldrb lr, [r4, 0x32]                           |     
    0x000129f8 orr ip, ip, lr, lsl 16                        |     
    0x000129fc ldrb lr, [r4, 0x33]                           |     
    0x00012a00 orr r3, ip, lr, lsl 24                        |     r3 = ip | (lr << 24);
    0x00012a04 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x00012a08 ldrb lr, [r4, 0x35]                           |     
    0x00012a0c ldrb ip, [r4, 0x34]                           |     ip = *((r4 + 0x34));
    0x00012a10 orr ip, ip, lr, lsl 8                         |     
    0x00012a14 ldrb lr, [r4, 0x36]                           |     
    0x00012a18 orr ip, ip, lr, lsl 16                        |     
    0x00012a1c ldrb lr, [r4, 0x37]                           |     
    0x00012a20 orr r3, ip, lr, lsl 24                        |     r3 = ip | (lr << 24);
    0x00012a24 str r3, [sp, 0x14]                            |     var_14h = r3;
    0x00012a28 ldrd r2, r3, [sp, 0x10]                       |     __asm ("ldrd r2, r3, [var_10h]");
    0x00012a2c cmp r1, r3                                    |     
    0x00012a30 cmpeq r0, r2                                  |     __asm ("cmpeq r0, r2");
    0x00012a34 ldrd r2, r3, [sp, 0x50]                       |     __asm ("ldrd r2, r3, [arg_50h]");
                                                             |     if (r1 <= r3) {
    0x00012a38 movhi r8, 1                                   |         r8 = 1;
                                                             |     }
                                                             |     if (r1 > r3) {
    0x00012a3c movls r8, 0                                   |         r8 = 0;
                                                             |     }
    0x00012a40 cmp r1, r3                                    |     
    0x00012a44 cmpeq r0, r2                                  |     __asm ("cmpeq r0, r2");
    0x00012a48 ldrd r0, r1, [sp, 0x10]                       |     __asm ("ldrd r0, r1, [var_10h]");
                                                             |     if (r1 <= r3) {
    0x00012a4c orrhi r8, r8, 1                               |         r8 |= 1;
                                                             |     }
    0x00012a50 cmp r1, r3                                    |     
    0x00012a54 cmpeq r0, r2                                  |     __asm ("cmpeq r0, r2");
                                                             |     if (r1 <= r3) {
    0x00012a58 orrhi r8, r8, 1                               |         r8 |= 1;
                                                             |     }
    0x00012a5c cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x00012a60 beq 0x12ab4                                   |         goto label_5;
                                                             |     }
    0x00012a64 ldr r3, [r7]                                  |     r3 = *(r7);
    0x00012a68 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) == 0) {
    0x00012a6c beq 0x127f8                                   |         goto label_0;
                                                             |     }
    0x00012a70 ldr r3, [pc, 0x1f8]                           |     r3 = *(0x12c6c);
    0x00012a74 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00012a78 ldr r4, [r3]                                  |     r4 = *(0x12c6c);
    0x00012a7c bl 0x58fc                                     |     getpid ();
    0x00012a80 ldr r3, [pc, 0x1a8]                           |     r3 = *(0x12c2c);
    0x00012a84 ldr r1, [pc, 0x1a8]                           |     r1 = *(0x12c30);
    0x00012a88 add r3, pc, r3                                |     r3 = pc + r3;
    0x00012a8c str r3, [sp]                                  |     *(sp) = r3;
    0x00012a90 ldr r3, [pc, 0x1a0]                           |     r3 = *(0x12c34);
    0x00012a94 add r1, pc, r1                                |     r1 = pc + r1;
    0x00012a98 add r3, pc, r3                                |     r3 = pc + r3;
    0x00012a9c mov r2, r0                                    |     r2 = r0;
    0x00012aa0 mov r0, r4                                    |     r0 = r4;
    0x00012aa4 bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x00012aa8 ldr r0, [pc, 0x18c]                           |     r0 = *(0x12c38);
    0x00012aac add r0, pc, r0                                |     r0 = pc + r0;
    0x00012ab0 b 0x12908                                     |     goto label_1;
                                                             | label_5:
    0x00012ab4 ldrd r2, r3, [sp, 8]                          |     __asm ("ldrd r2, r3, [var_8h]");
    0x00012ab8 cmp fp, r3                                    |     
    0x00012abc cmpeq sl, r2                                  |     __asm ("cmpeq sl, r2");
    0x00012ac0 ldrd r2, r3, [sp, 0x10]                       |     __asm ("ldrd r2, r3, [var_10h]");
                                                             |     if (fp <= r3) {
    0x00012ac4 movhi r1, 1                                   |         r1 = 1;
                                                             |     }
                                                             |     if (fp > r3) {
    0x00012ac8 movls r1, 0                                   |         r1 = 0;
                                                             |     }
    0x00012acc cmp fp, r3                                    |     
    0x00012ad0 cmpeq sl, r2                                  |     __asm ("cmpeq sl, r2");
                                                             |     if (fp < r3) {
    0x00012ad4 movhs fp, 0                                   |         
                                                             |     }
                                                             |     if (fp >= r3) {
    0x00012ad8 andlo fp, r1, 1                               |         
                                                             |     }
    0x00012adc cmp fp, 0                                     |     
                                                             |     if (fp == 0) {
    0x00012ae0 beq 0x12b34                                   |         goto label_6;
                                                             |     }
    0x00012ae4 ldr r3, [r7]                                  |     r3 = *(r7);
    0x00012ae8 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) == 0) {
    0x00012aec beq 0x127f8                                   |         goto label_0;
                                                             |     }
    0x00012af0 ldr r3, [pc, 0x178]                           |     r3 = *(0x12c6c);
    0x00012af4 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00012af8 ldr r4, [r3]                                  |     r4 = *(0x12c6c);
    0x00012afc bl 0x58fc                                     |     getpid ();
    0x00012b00 ldr r3, [pc, 0x138]                           |     r3 = *(0x12c3c);
    0x00012b04 ldr r1, [pc, 0x138]                           |     r1 = *(0x12c40);
    0x00012b08 add r3, pc, r3                                |     r3 = pc + r3;
    0x00012b0c str r3, [sp]                                  |     *(sp) = r3;
    0x00012b10 ldr r3, [pc, 0x130]                           |     r3 = *(0x12c44);
    0x00012b14 add r1, pc, r1                                |     r1 = pc + r1;
    0x00012b18 add r3, pc, r3                                |     r3 = pc + r3;
    0x00012b1c mov r2, r0                                    |     r2 = r0;
    0x00012b20 mov r0, r4                                    |     r0 = r4;
    0x00012b24 bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x00012b28 ldr r0, [pc, 0x11c]                           |     r0 = *(0x12c48);
    0x00012b2c add r0, pc, r0                                |     r0 = pc + r0;
    0x00012b30 b 0x12908                                     |     goto label_1;
                                                             | label_6:
    0x00012b34 ldrb ip, [r4, 0x55]                           |     ip = *((r4 + 0x55));
    0x00012b38 ldrb r2, [r4, 0x51]                           |     r2 = *((r4 + 0x51));
    0x00012b3c ldrb sl, [r4, 0x54]                           |     sl = *((r4 + 0x54));
    0x00012b40 ldrb r3, [r4, 0x50]                           |     r3 = *((r4 + 0x50));
    0x00012b44 orr sl, sl, ip, lsl 8                         |     sl |= (ip << 8);
    0x00012b48 orr r3, r3, r2, lsl 8                         |     r3 |= (r2 << 8);
    0x00012b4c ldrb ip, [r4, 0x56]                           |     ip = *((r4 + 0x56));
    0x00012b50 ldrb r2, [r4, 0x52]                           |     r2 = *((r4 + 0x52));
    0x00012b54 orr sl, sl, ip, lsl 16                        |     sl |= (ip << 16);
    0x00012b58 orr r3, r3, r2, lsl 16                        |     r3 |= (r2 << 16);
    0x00012b5c ldrb ip, [r4, 0x57]                           |     ip = *((r4 + 0x57));
    0x00012b60 ldrb r2, [r4, 0x53]                           |     r2 = *((r4 + 0x53));
    0x00012b64 orr ip, sl, ip, lsl 24                        |     
    0x00012b68 orr r3, r3, r2, lsl 24                        |     r3 |= (r2 << 24);
    0x00012b6c umull r8, sb, r3, ip                          |     r8:sb = r3 * ip;
    0x00012b70 mov r3, 0                                     |     r3 = 0;
    0x00012b74 subs r0, r8, 1                                |     r0 = r8 - 1;
    0x00012b78 sbc r1, sb, 0                                 |     __asm ("sbc r1, sb, 0");
    0x00012b7c cmp r1, r3                                    |     
    0x00012b80 mvn r2, 2                                     |     r2 = ~2;
    0x00012b84 cmpeq r0, r2                                  |     __asm ("cmpeq r0, r2");
                                                             |     if (r1 <= r3) {
    0x00012b88 movhi sl, 1                                   |         sl = 1;
                                                             |     }
                                                             |     if (r1 > r3) {
    0x00012b8c movls sl, 0                                   |         sl = 0;
                                                             |     }
    0x00012b90 cmp ip, 0x80                                  |     
                                                             |     if (ip == 0x80) {
    0x00012b94 orrne sl, sl, 1                               |         sl |= 1;
                                                             |     }
    0x00012b98 cmp sl, 0                                     |     
                                                             |     if (sl == 0) {
    0x00012b9c beq 0x12c84                                   |         goto label_7;
                                                             |     }
    0x00012ba0 ldr r3, [r7]                                  |     r3 = *(r7);
    0x00012ba4 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) == 0) {
    0x00012ba8 beq 0x127f8                                   |         goto label_0;
                                                             |     }
    0x00012bac ldr r3, [pc, 0xbc]                            |     r3 = *(0x12c6c);
    0x00012bb0 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00012bb4 ldr r4, [r3]                                  |     r4 = *(0x12c6c);
    0x00012bb8 bl 0x58fc                                     |     getpid ();
    0x00012bbc ldr r3, [pc, 0x8c]                            |     r3 = *(0x12c4c);
    0x00012bc0 ldr r1, [pc, 0x8c]                            |     r1 = *(0x12c50);
    0x00012bc4 add r3, pc, r3                                |     r3 = pc + r3;
    0x00012bc8 str r3, [sp]                                  |     *(sp) = r3;
    0x00012bcc ldr r3, [pc, 0x84]                            |     r3 = *(0x12c54);
    0x00012bd0 add r1, pc, r1                                |     r1 = pc + r1;
    0x00012bd4 add r3, pc, r3                                |     r3 = pc + r3;
    0x00012bd8 mov r2, r0                                    |     r2 = r0;
    0x00012bdc mov r0, r4                                    |     r0 = r4;
    0x00012be0 bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x00012be4 ldr r0, [pc, 0x70]                            |     r0 = *(0x12c58);
    0x00012be8 add r0, pc, r0                                |     r0 = pc + r0;
    0x00012bec b 0x12908                                     |     goto label_1;
                                                             | label_7:
    0x00012c84 mov r1, r4                                    |     r1 = r4;
    0x00012c88 mov r2, 0x5c                                  |     r2 = 0x5c;
    0x00012c8c mov r0, r5                                    |     r0 = r5;
    0x00012c90 bl 0x5950                                     |     memcpy (r0, r1, r2);
    0x00012c94 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x00012c98 ldr fp, [r5, 0x48]                            |     fp = *((r5 + 0x48));
    0x00012c9c ldr r4, [r5, 0x4c]                            |     r4 = *((r5 + 0x4c));
    0x00012ca0 bl 0x5da0                                     |     fcn_00005da0 ();
    0x00012ca4 strd r8, sb, [sp]                             |     __asm ("strd r8, sb, [sp]");
    0x00012ca8 umull r2, r3, r0, fp                          |     r2:r3 = r0 * fp;
    0x00012cac mla r1, r0, r4, r3                            |     __asm ("mla r1, r0, r4, r3");
    0x00012cb0 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x00012cb4 mov r3, r1                                    |     r3 = r1;
    0x00012cb8 bl 0xbc24                                     |     fcn_0000bc24 (r0, r1, r2);
    0x00012cbc ldr r3, [sp, 0x1c]                            |     r3 = var_1ch;
    0x00012cc0 cmp r0, 0                                     |     
    0x00012cc4 mov r1, r0                                    |     r1 = r0;
    0x00012cc8 str r0, [r3]                                  |     *(r3) = r0;
                                                             |     if (r0 != 0) {
    0x00012ccc bne 0x12d20                                   |         goto label_8;
                                                             |     }
    0x00012cd0 ldr r3, [r7]                                  |     r3 = *(r7);
    0x00012cd4 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) == 0) {
    0x00012cd8 beq 0x127f8                                   |         goto label_0;
                                                             |     }
    0x00012cdc ldr r3, [pc, -0x74]                           |     r3 = *(0x12c6c);
    0x00012ce0 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00012ce4 ldr r4, [r3]                                  |     r4 = *(0x12c6c);
    0x00012ce8 bl 0x58fc                                     |     getpid ();
    0x00012cec ldr r3, [pc, -0x94]                           |     r3 = *(0x00012c60);
    0x00012cf0 ldr r1, [pc, -0x94]                           |     r1 = *(0x12c60);
    0x00012cf4 add r3, pc, r3                                |     r3 = pc + r3;
    0x00012cf8 str r3, [sp]                                  |     *(sp) = r3;
    0x00012cfc ldr r3, [pc, -0x9c]                           |     r3 = *(0x12c64);
    0x00012d00 add r1, pc, r1                                |     r1 = pc + r1;
    0x00012d04 add r3, pc, r3                                |     r3 = pc + r3;
    0x00012d08 mov r2, r0                                    |     r2 = r0;
    0x00012d0c mov r0, r4                                    |     r0 = r4;
    0x00012d10 bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x00012d14 ldr r0, [pc, -0xb0]                           |     r0 = *(0x12c68);
    0x00012d18 add r0, pc, r0                                |     r0 = pc + r0;
    0x00012d1c b 0x12908                                     |     goto label_1;
                                                             | label_8:
    0x00012d20 mov r3, sl                                    |     r3 = sl;
    0x00012d24 str sl, [sp]                                  |     *(sp) = sl;
    0x00012d28 mov r2, r8                                    |     r2 = r8;
    0x00012d2c mvn r0, 0                                     |     r0 = ~0;
    0x00012d30 bl 0x22bb4                                    |     fcn_00022bb4 (r0, r1);
    0x00012d34 ldr r3, [r5, 0x58]                            |     r3 = *((r5 + 0x58));
    0x00012d38 mvn r0, r0                                    |     r0 = ~r0;
    0x00012d3c cmp r3, r0                                    |     
                                                             |     if (r3 == r0) {
    0x00012d40 beq 0x127fc                                   |         goto label_2;
                                                             |     }
    0x00012d44 ldr r3, [r7]                                  |     r3 = *(r7);
    0x00012d48 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) == 0) {
    0x00012d4c beq 0x127f8                                   |         goto label_0;
                                                             |     }
    0x00012d50 ldr r3, [pc, -0xe8]                           |     r3 = *(0x12c6c);
    0x00012d54 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00012d58 ldr r4, [r3]                                  |     r4 = *(0x12c6c);
    0x00012d5c bl 0x58fc                                     |     getpid ();
    0x00012d60 ldr r3, [pc, -0xf4]                           |     r3 = *(0x00012c74);
    0x00012d64 ldr r1, [pc, -0xf4]                           |     r1 = *(0x12c74);
    0x00012d68 add r3, pc, r3                                |     r3 = pc + r3;
    0x00012d6c str r3, [sp]                                  |     *(sp) = r3;
    0x00012d70 ldr r3, [pc, -0xfc]                           |     r3 = *(0x12c78);
    0x00012d74 add r1, pc, r1                                |     r1 = pc + r1;
    0x00012d78 add r3, pc, r3                                |     r3 = pc + r3;
    0x00012d7c mov r2, r0                                    |     r2 = r0;
    0x00012d80 mov r0, r4                                    |     r0 = r4;
    0x00012d84 bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x00012d88 ldr r0, [pc, -0x110]                          |     r0 = *(0x00012c80);
    0x00012d8c add r0, pc, r0                                |     r0 = pc + r0;
    0x00012d90 b 0x12908                                     |     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 @ 0x13b74 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00013b74 ()                          | void fcn_00013b74 (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
                                                     |     r0 = arg1;
    0x00013b74 push {r0, r1, r2, r4, r5, lr}         |     
    0x00013b78 ldr r5, [pc, 0xb8]                    |     r5 = *(0x13c34);
    0x00013b7c subs r4, r0, 0                        |     r4 = r0 - 0;
    0x00013b80 add r5, pc, r5                        |     r5 = pc + r5;
                                                     |     if (r4 != r0) {
    0x00013b84 beq 0x13c30                           |         
    0x00013b88 ldr r3, [r4, 0x14]                    |         r3 = *((r4 + 0x14));
    0x00013b8c cmp r3, 0                             |         
                                                     |         if (r3 != 0) {
    0x00013b90 beq 0x13b98                           |             
    0x00013b94 bl 0x13b30                            |             fcn_00013b30 (r0);
                                                     |         }
    0x00013b98 ldr r3, [r4]                          |         r3 = *(r4);
    0x00013b9c cmp r3, 0                             |         
                                                     |         if (r3 != 0) {
    0x00013ba0 beq 0x13bb4                           |             
    0x00013ba4 mov r2, 4                             |             r2 = 4;
    0x00013ba8 mov r1, 0                             |             r1 = 0;
    0x00013bac add r0, r4, r2                        |             r0 = r4 + r2;
    0x00013bb0 bl 0x5e78                             |             memset (r0, r1, r2);
                                                     |         }
    0x00013bb4 mov r3, 0                             |         r3 = 0;
    0x00013bb8 str r3, [r4, 8]                       |         *((r4 + 8)) = r3;
    0x00013bbc mov r2, 1                             |         r2 = 1;
    0x00013bc0 mov r3, r4                            |         r3 = r4;
    0x00013bc4 str r2, [r3], 0x14                    |         *(r3) = r2;
                                                     |         r3 += 0x14;
    0x00013bc8 str r3, [r4, 0x14]                    |         *((r4 + 0x14)) = r3;
    0x00013bcc str r3, [r4, 0x18]                    |         *((r4 + 0x18)) = r3;
    0x00013bd0 ldr r3, [pc, 0x64]                    |         
    0x00013bd4 ldr r3, [r5, r3]                      |         r3 = *((r5 + r3));
    0x00013bd8 ldr r3, [r3]                          |         r3 = *(0x13c38);
    0x00013bdc tst r3, 0x100                         |         
                                                     |         if ((r3 & 0x100) == 0) {
    0x00013be0 beq 0x13c30                           |             goto label_0;
                                                     |         }
    0x00013be4 ldr r3, [pc, 0x54]                    |         r3 = *(0x13c3c);
    0x00013be8 ldr r3, [r5, r3]                      |         r3 = *((r5 + r3));
    0x00013bec ldr r4, [r3]                          |         r4 = *(0x13c3c);
    0x00013bf0 bl 0x58fc                             |         getpid ();
    0x00013bf4 ldr r3, [pc, 0x48]                    |         r3 = *(0x13c40);
    0x00013bf8 ldr r1, [pc, 0x48]                    |         r1 = *(0x13c44);
    0x00013bfc add r3, pc, r3                        |         r3 = pc + r3;
    0x00013c00 str r3, [sp]                          |         *(sp) = r3;
    0x00013c04 ldr r3, [pc, 0x40]                    |         r3 = *(0x13c48);
    0x00013c08 add r1, pc, r1                        |         r1 = pc + r1;
    0x00013c0c add r3, pc, r3                        |         r3 = pc + r3;
    0x00013c10 mov r2, r0                            |         r2 = r0;
    0x00013c14 mov r0, r4                            |         r0 = r4;
    0x00013c18 bl 0x5c50                             |         fprintf (r0, r1, r2, r3)
    0x00013c1c ldr r0, [pc, 0x2c]                    |         r0 = *(0x13c4c);
    0x00013c20 add r0, pc, r0                        |         r0 = pc + r0;
    0x00013c24 add sp, sp, 0xc                       |         
    0x00013c28 pop {r4, r5, lr}                      |         
    0x00013c2c b 0x13aa4                             |         void (*0x13aa4)() ();
                                                     |     }
                                                     | label_0:
    0x00013c30 add sp, sp, 0xc                       |     
    0x00013c34 pop {r4, r5, pc}                      |     
                                                     | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x13cd0 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00013cd0 ()                          | void fcn_00013cd0 (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_4h;
                                                     |     int32_t var_ch;
                                                     |     int32_t var_10h;
                                                     |     int32_t var_10h_2;
                                                     |     int32_t var_1ch;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x00013cd0 push {r4, r5, r6, r7, r8, sb, lr}     |     
    0x00013cd4 ldr r6, [pc, 0x214]                   |     r6 = *(0x13eec);
    0x00013cd8 ldrd r4, r5, [r0, 0x10]               |     __asm ("ldrd r4, r5, [r0, 0x10]");
    0x00013cdc mov r3, 0                             |     r3 = 0;
    0x00013ce0 sub sp, sp, 0x1c                      |     
    0x00013ce4 str r3, [sp, 0xc]                     |     var_ch = r3;
    0x00013ce8 orrs r3, r4, r5                       |     r3 = r4 | r5;
    0x00013cec add r6, pc, r6                        |     r6 = pc + r6;
    0x00013cf0 bne 0x13d04                           |     
                                                     |     while (r5 <= sb) {
                                                     | label_0:
    0x00013cf4 mov sb, 1                             |         sb = 1;
                                                     | label_1:
    0x00013cf8 mov r0, sb                            |         r0 = sb;
    0x00013cfc add sp, sp, 0x1c                      |         
    0x00013d00 pop {r4, r5, r6, r7, r8, sb, pc}      |         
    0x00013d04 ldr r8, [r1, 0xc]                     |         r8 = *((r1 + 0xc));
    0x00013d08 cmp r8, 0                             |         
                                                     |         if (r8 == 0) {
    0x00013d0c beq 0x13d20                           |             goto label_3;
                                                     |         }
    0x00013d10 mov sb, 0                             |         sb = 0;
    0x00013d14 cmp r5, sb                            |         
    0x00013d18 cmpeq r4, r8                          |         __asm ("cmpeq r4, r8");
    0x00013d1c blo 0x13cf4                           |         
                                                     |     }
                                                     | label_3:
    0x00013d20 ldr r3, [r0, 0x30]                    |     r3 = *((r0 + 0x30));
    0x00013d24 tst r3, 0x10                          |     
                                                     |     if ((r3 & 0x10) != 0) {
    0x00013d28 bne 0x13cf4                           |         goto label_0;
                                                     |     }
    0x00013d2c mov r8, r2                            |     r8 = r2;
    0x00013d30 add r3, sp, 0xc                       |     r3 += var_ch;
    0x00013d34 add r2, sp, 0x10                      |     r2 += var_10h;
    0x00013d38 mov r4, r1                            |     r4 = r1;
    0x00013d3c mov r5, r0                            |     r5 = r0;
    0x00013d40 bl 0xc208                             |     r0 = fcn_0000c208 (r0, r1);
    0x00013d44 subs sb, r0, 0                        |     sb = r0 - 0;
                                                     |     if (sb != r0) {
    0x00013d48 bne 0x13cf4                           |         goto label_0;
                                                     |     }
    0x00013d4c ldr r3, [r4, 0x10]                    |     r3 = *((r4 + 0x10));
    0x00013d50 cmp r3, 0                             |     
                                                     |     if (r3 == 0) {
    0x00013d54 beq 0x13cf8                           |         goto label_1;
                                                     |     }
    0x00013d58 ldr r3, [pc, 0x194]                   |     r3 = "n_fd";
    0x00013d5c ldr r7, [r6, r3]                      |     r7 = *((r6 + r3));
    0x00013d60 ldr r3, [r7]                          |     r3 = *(r7);
    0x00013d64 tst r3, 0x100                         |     
                                                     |     if ((r3 & 0x100) != 0) {
    0x00013d68 beq 0x13db4                           |         
    0x00013d6c ldr r3, [pc, 0x184]                   |         r3 = *(0x13ef4);
    0x00013d70 ldr r3, [r6, r3]                      |         r3 = *((r6 + r3));
    0x00013d74 ldr sb, [r3]                          |         sb = *(0x13ef4);
    0x00013d78 bl 0x58fc                             |         getpid ();
    0x00013d7c ldr r3, [pc, 0x178]                   |         r3 = *(0x13ef8);
    0x00013d80 ldr r1, [pc, 0x178]                   |         r1 = *(0x13efc);
    0x00013d84 add r3, pc, r3                        |         r3 = pc + r3;
    0x00013d88 str r3, [sp]                          |         *(sp) = r3;
    0x00013d8c ldr r3, [pc, 0x170]                   |         r3 = *(0x13f00);
    0x00013d90 add r1, pc, r1                        |         r1 = pc + r1;
    0x00013d94 add r3, pc, r3                        |         r3 = pc + r3;
    0x00013d98 mov r2, r0                            |         r2 = r0;
    0x00013d9c mov r0, sb                            |         r0 = sb;
    0x00013da0 bl 0x5c50                             |         fprintf (r0, r1, r2, r3)
    0x00013da4 ldr r0, [pc, 0x15c]                   |         r0 = *(0x13f04);
    0x00013da8 ldr r1, [r4]                          |         r1 = *(r4);
    0x00013dac add r0, pc, r0                        |         r0 = pc + r0;
    0x00013db0 bl 0x13aa4                            |         fcn_00013aa4 ();
                                                     |     }
    0x00013db4 ldr r3, [r4, 0x10]                    |     r3 = *((r4 + 0x10));
    0x00013db8 ldr r1, [sp, 0xc]                     |     r1 = var_ch;
    0x00013dbc mov r0, r5                            |     r0 = r5;
    0x00013dc0 blx r3                                |     r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x00013dc4 subs sb, r0, 0                        |     sb = r0 - 0;
                                                     |     if (sb >= r0) {
    0x00013dc8 bge 0x13eac                           |         goto label_4;
                                                     |     }
    0x00013dcc mov r0, r5                            |     r0 = r5;
    0x00013dd0 bl 0x13cc8                            |     r0 = fcn_00013cc8 (r0);
    0x00013dd4 bl 0x13b74                            |     fcn_00013b74 (r0);
    0x00013dd8 cmp r8, 0                             |     
                                                     |     if (r8 != 0) {
    0x00013ddc beq 0x13df8                           |         
    0x00013de0 ldr r3, [r8, 0xc]                     |         r3 = *((r8 + 0xc));
    0x00013de4 cmp r3, 0                             |         
                                                     |         if (r3 != 0) {
    0x00013de8 bne 0x13df8                           |             goto label_5;
                                                     |         }
    0x00013dec mov r1, r8                            |         r1 = r8;
    0x00013df0 mov r0, r5                            |         r0 = r5;
    0x00013df4 bl 0xb07c                             |         fcn_0000b07c (r0, r1);
                                                     |     }
                                                     | label_5:
    0x00013df8 ldr r3, [r7]                          |     r3 = *(r7);
    0x00013dfc tst r3, 0x100                         |     
                                                     |     if ((r3 & 0x100) != 0) {
    0x00013e00 beq 0x13e50                           |         
    0x00013e04 ldr r3, [pc, 0xec]                    |         r3 = *(0x13ef4);
    0x00013e08 ldr r3, [r6, r3]                      |         r3 = *((r6 + r3));
    0x00013e0c ldr r5, [r3]                          |         r5 = *(0x13ef4);
    0x00013e10 bl 0x58fc                             |         getpid ();
    0x00013e14 ldr r3, [pc, 0xf0]                    |         r3 = *(0x13f08);
    0x00013e18 ldr r1, [pc, 0xf0]                    |         r1 = *(0x13f0c);
    0x00013e1c add r3, pc, r3                        |         r3 = pc + r3;
    0x00013e20 str r3, [sp]                          |         *(sp) = r3;
    0x00013e24 ldr r3, [pc, 0xe8]                    |         r3 = *(0x13f10);
    0x00013e28 add r1, pc, r1                        |         r1 = pc + r1;
    0x00013e2c add r3, pc, r3                        |         r3 = pc + r3;
    0x00013e30 mov r2, r0                            |         r2 = r0;
    0x00013e34 mov r0, r5                            |         r0 = r5;
    0x00013e38 bl 0x5c50                             |         fprintf (r0, r1, r2, r3)
    0x00013e3c ldr r0, [pc, 0xd4]                    |         r0 = *(0x13f14);
    0x00013e40 mov r2, sb                            |         r2 = sb;
    0x00013e44 ldr r1, [r4]                          |         r1 = *(r4);
    0x00013e48 add r0, pc, r0                        |         r0 = pc + r0;
    0x00013e4c bl 0x13aa4                            |         fcn_00013aa4 ();
                                                     |     }
                                                     | label_2:
    0x00013e50 ldr r3, [r7]                          |     r3 = *(r7);
    0x00013e54 tst r3, 0x100                         |     
                                                     |     if ((r3 & 0x100) == 0) {
    0x00013e58 beq 0x13cf8                           |         goto label_1;
                                                     |     }
    0x00013e5c ldr r3, [pc, 0x94]                    |     r3 = *(0x13ef4);
    0x00013e60 ldr r3, [r6, r3]                      |     r3 = *((r6 + r3));
    0x00013e64 ldr r5, [r3]                          |     r5 = *(0x13ef4);
    0x00013e68 bl 0x58fc                             |     getpid ();
    0x00013e6c ldr r3, [pc, 0xa8]                    |     r3 = *(0x13f18);
    0x00013e70 ldr r1, [pc, 0xa8]                    |     r1 = *(0x13f1c);
    0x00013e74 add r3, pc, r3                        |     r3 = pc + r3;
    0x00013e78 str r3, [sp]                          |     *(sp) = r3;
    0x00013e7c ldr r3, [pc, 0xa0]                    |     r3 = *(0x13f20);
    0x00013e80 add r1, pc, r1                        |     r1 = pc + r1;
    0x00013e84 add r3, pc, r3                        |     r3 = pc + r3;
    0x00013e88 mov r2, r0                            |     r2 = r0;
    0x00013e8c mov r0, r5                            |     r0 = r5;
    0x00013e90 bl 0x5c50                             |     fprintf (r0, r1, r2, r3)
    0x00013e94 ldr r0, [pc, 0x8c]                    |     r0 = *(0x13f24);
    0x00013e98 mov r2, sb                            |     r2 = sb;
    0x00013e9c ldr r1, [r4]                          |     r1 = *(r4);
    0x00013ea0 add r0, pc, r0                        |     r0 = pc + r0;
    0x00013ea4 bl 0x13aa4                            |     fcn_00013aa4 ();
    0x00013ea8 b 0x13cf8                             |     goto label_1;
                                                     |     if ((r3 & 0x100) != 0) {
                                                     | label_4:
    0x00013eac bne 0x13e50                           |         goto label_2;
                                                     |     }
    0x00013eb0 ldr r3, [sp, 0xc]                     |     r3 = var_ch;
    0x00013eb4 cmp r8, 0                             |     
    0x00013eb8 cmpne r3, 0                           |     __asm ("cmpne r3, 0");
                                                     |     if (r8 == 0) {
    0x00013ebc beq 0x13e50                           |         goto label_2;
                                                     |     }
    0x00013ec0 ldr r2, [r8, 0xc]                     |     r2 = *((r8 + 0xc));
    0x00013ec4 cmp r2, 0                             |     
                                                     |     if (r2 != 0) {
    0x00013ec8 bne 0x13e50                           |         goto label_2;
                                                     |     }
    0x00013ecc ldr r2, [r3]                          |     r2 = *(r3);
    0x00013ed0 mov r0, r5                            |     r0 = r5;
    0x00013ed4 str r2, [sp, 4]                       |     var_4h = r2;
    0x00013ed8 ldr r3, [r3, 4]                       |     r3 = *((r3 + 4));
    0x00013edc str r3, [sp]                          |     *(sp) = r3;
    0x00013ee0 ldrd r2, r3, [sp, 0x10]               |     __asm ("ldrd r2, r3, [var_10h]");
    0x00013ee4 bl 0xc720                             |     r0 = fcn_0000c720 (r0, r1, r2);
    0x00013ee8 mov sb, r0                            |     sb = r0;
    0x00013eec b 0x13e50                             |     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 @ 0x13f2c */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.00013f2c ()                                          | void fcn_00013f2c (int32_t arg1, int32_t arg2) {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_ch;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x00013f2c push {r0, r1, r2, r4, r5, r6, r7, r8, sb, lr}         |     
    0x00013f30 ldr sb, [pc, 0xc0]                                    |     sb = "_06ld";
    0x00013f34 mov r5, r0                                            |     r5 = r0;
    0x00013f38 mov r8, r1                                            |     r8 = r1;
    0x00013f3c mov r0, 1                                             |     r0 = 1;
    0x00013f40 mov r1, 0x48                                          |     r1 = 0x48;
    0x00013f44 mov r6, r2                                            |     r6 = r2;
    0x00013f48 mov r7, r3                                            |     r7 = r3;
    0x00013f4c bl 0x5bf0                                             |     calloc (r0, r1);
    0x00013f50 add sb, pc, sb                                        |     sb = pc + sb;
    0x00013f54 subs r4, r0, 0                                        |     r4 = r0 - 0;
                                                                     |     if (r4 != r0) {
    0x00013f58 beq 0x13fec                                           |         
    0x00013f5c ldr r3, [r5, 4]                                       |         r3 = *((r5 + 4));
    0x00013f60 ldr r2, [r5, 0x18]                                    |         r2 = *((r5 + 0x18));
    0x00013f64 str r3, [r4, 0x14]                                    |         *((r4 + 0x14)) = r3;
    0x00013f68 add r3, r4, 0x40                                      |         r3 = r4 + 0x40;
    0x00013f6c str r3, [r5, 0x18]                                    |         *((r5 + 0x18)) = r3;
    0x00013f70 add r5, r5, 0x14                                      |         r5 += 0x14;
    0x00013f74 str r8, [r4]                                          |         *(r4) = r8;
    0x00013f78 strd r6, r7, [r4, 8]                                  |         __asm ("strd r6, r7, [r4, 8]");
    0x00013f7c str r5, [r4, 0x40]                                    |         *((r4 + 0x40)) = r5;
    0x00013f80 str r2, [r4, 0x44]                                    |         *((r4 + 0x44)) = r2;
    0x00013f84 str r3, [r2]                                          |         *(r2) = r3;
    0x00013f88 ldr r3, [pc, 0x6c]                                    |         
    0x00013f8c ldr r3, [sb, r3]                                      |         r3 = *((sb + r3));
    0x00013f90 ldr r3, [r3]                                          |         r3 = "_06ld";
    0x00013f94 tst r3, 0x100                                         |         
                                                                     |         if ((r3 & 0x100) == 0) {
    0x00013f98 beq 0x13fec                                           |             goto label_0;
                                                                     |         }
    0x00013f9c ldr r3, [pc, 0x5c]                                    |         r3 = *(0x13ffc);
    0x00013fa0 ldr r3, [sb, r3]                                      |         r3 = *((sb + r3));
    0x00013fa4 ldr r5, [r3]                                          |         r5 = *(0x13ffc);
    0x00013fa8 bl 0x58fc                                             |         getpid ();
    0x00013fac ldr r3, [pc, 0x50]                                    |         r3 = *(0x14000);
    0x00013fb0 ldr r1, [pc, 0x50]                                    |         r1 = *(0x14004);
    0x00013fb4 add r3, pc, r3                                        |         r3 = pc + r3;
    0x00013fb8 str r3, [sp]                                          |         *(sp) = r3;
    0x00013fbc ldr r3, [pc, 0x48]                                    |         r3 = *(0x14008);
    0x00013fc0 add r1, pc, r1                                        |         r1 = pc + r1;
    0x00013fc4 add r3, pc, r3                                        |         r3 = pc + r3;
    0x00013fc8 mov r2, r0                                            |         r2 = r0;
    0x00013fcc mov r0, r5                                            |         r0 = r5;
    0x00013fd0 bl 0x5c50                                             |         fprintf (r0, r1, r2, r3)
    0x00013fd4 ldr r0, [pc, 0x34]                                    |         r0 = *(0x1400c);
    0x00013fd8 mov r2, r6                                            |         r2 = r6;
    0x00013fdc mov r3, r7                                            |         r3 = r7;
    0x00013fe0 mov r1, r8                                            |         r1 = r8;
    0x00013fe4 add r0, pc, r0                                        |         r0 = pc + r0;
    0x00013fe8 bl 0x13aa4                                            |         fcn_00013aa4 ();
                                                                     |     }
                                                                     | label_0:
    0x00013fec mov r0, r4                                            |     r0 = r4;
    0x00013ff0 add sp, sp, 0xc                                       |     
    0x00013ff4 pop {r4, r5, r6, r7, r8, sb, pc}                      |     
                                                                     | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x14040 */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) fcn.00014040 ()                                              | void fcn_00014040 (int32_t arg_30h, int32_t arg1, int32_t arg2) {
                                                                         |     int32_t var_0h;
                                                                         |     int32_t var_0h_2;
                                                                         |     int32_t var_ch;
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
    0x00014040 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00014044 ldr sl, [pc, 0x110]                                       |     sl = "s_llu_s";
    0x00014048 mov r7, r1                                                |     r7 = r1;
    0x0001404c mov sb, r3                                                |     sb = r3;
    0x00014050 ldr r1, [r0, 0xc]                                         |     r1 = *(arg_30hxc);
    0x00014054 ldr r3, [r0, 8]                                           |     r3 = *((r0 + 8));
    0x00014058 add sl, pc, sl                                            |     sl = pc + sl;
    0x0001405c cmp r3, r1                                                |     
    0x00014060 mov r5, r0                                                |     r5 = r0;
    0x00014064 mov r8, r2                                                |     r8 = r2;
                                                                         |     if (r3 >= r1) {
    0x00014068 blt 0x14098                                               |         
    0x0001406c add r2, r1, 0x20                                          |         r2 = r1 + 0x20;
    0x00014070 mov r3, 0xf8                                              |         r3 = 0xf8;
    0x00014074 mul r1, r3, r2                                            |         r1 = r3 * r2;
    0x00014078 ldr r0, [r0, 0x10]                                        |         r0 = *((r0 + 0x10));
    0x0001407c bl 0x5d7c                                                 |         r0 = realloc (r0, r1);
    0x00014080 subs r4, r0, 0                                            |         r4 = r0 - 0;
                                                                         |         if (r4 == r0) {
    0x00014084 beq 0x14150                                               |             goto label_0;
                                                                         |         }
    0x00014088 ldr r3, [r5, 0xc]                                         |         r3 = *((r5 + 0xc));
    0x0001408c str r4, [r5, 0x10]                                        |         *((r5 + 0x10)) = r4;
    0x00014090 add r3, r3, 0x20                                          |         r3 += 0x20;
    0x00014094 str r3, [r5, 0xc]                                         |         *((r5 + 0xc)) = r3;
                                                                         |     }
    0x00014098 ldr r6, [r5, 8]                                           |     r6 = *((r5 + 8));
    0x0001409c mov r2, 0xf8                                              |     r2 = 0xf8;
    0x000140a0 add r3, r6, 1                                             |     r3 = r6 + 1;
    0x000140a4 ldr fp, [r5, 0x10]                                        |     fp = *((r5 + 0x10));
    0x000140a8 str r3, [r5, 8]                                           |     *((r5 + 8)) = r3;
    0x000140ac mul r3, r2, r6                                            |     r3 = r2 * r6;
    0x000140b0 mov r1, 0                                                 |     r1 = 0;
    0x000140b4 add r4, fp, r3                                            |     r4 = fp + r3;
    0x000140b8 mov r0, r4                                                |     r0 = r4;
    0x000140bc mov r6, r3                                                |     r6 = r3;
    0x000140c0 bl 0x5e78                                                 |     memset (r0, r1, r2);
    0x000140c4 ldr r3, [r7, 0x10]                                        |     r3 = *((r7 + 0x10));
    0x000140c8 mov r0, r5                                                |     r0 = r5;
    0x000140cc add r3, r3, 1                                             |     r3++;
    0x000140d0 str r3, [r7, 0x10]                                        |     *((r7 + 0x10)) = r3;
    0x000140d4 str r7, [r4, 0xf4]                                        |     *((r4 + 0xf4)) = r7;
    0x000140d8 bl 0x14028                                                |     fcn_00014028 (r0);
    0x000140dc ldrd r2, r3, [sp, 0x30]                                   |     __asm ("ldrd r2, r3, [arg_30h]");
    0x000140e0 str r0, [r4, 0x48]                                        |     *((r4 + 0x48)) = r0;
    0x000140e4 strd r8, sb, [fp, r6]                                     |     __asm ("strd r8, sb, [fp, r6]");
    0x000140e8 strd r2, r3, [r4, 8]                                      |     __asm ("strd r2, r3, [r4, 8]");
    0x000140ec ldr r3, [pc, 0x6c]                                        |     
    0x000140f0 ldr r3, [sl, r3]                                          |     r3 = *((sl + r3));
    0x000140f4 ldr r3, [r3]                                              |     r3 = "s_llu_s";
    0x000140f8 tst r3, 0x100                                             |     
                                                                         |     if ((r3 & 0x100) != 0) {
    0x000140fc beq 0x14150                                               |         
    0x00014100 ldr r3, [pc, 0x5c]                                        |         r3 = *(0x14160);
    0x00014104 ldr r3, [sl, r3]                                          |         r3 = *((sl + r3));
    0x00014108 ldr r5, [r3]                                              |         r5 = *(0x14160);
    0x0001410c bl 0x58fc                                                 |         getpid ();
    0x00014110 ldr r3, [pc, 0x50]                                        |         r3 = *(0x14164);
    0x00014114 ldr r1, [pc, 0x50]                                        |         r1 = *(0x14168);
    0x00014118 add r3, pc, r3                                            |         r3 = pc + r3;
    0x0001411c str r3, [sp]                                              |         *(sp) = r3;
    0x00014120 ldr r3, [pc, 0x48]                                        |         r3 = *(0x1416c);
    0x00014124 add r1, pc, r1                                            |         r1 = pc + r1;
    0x00014128 add r3, pc, r3                                            |         r3 = pc + r3;
    0x0001412c mov r2, r0                                                |         r2 = r0;
    0x00014130 mov r0, r5                                                |         r0 = r5;
    0x00014134 bl 0x5c50                                                 |         fprintf (r0, r1, r2, r3)
    0x00014138 ldrd r2, r3, [r4, 8]                                      |         __asm ("ldrd r2, r3, [r4, 8]");
    0x0001413c ldr r0, [pc, 0x30]                                        |         r0 = *(0x14170);
    0x00014140 strd r2, r3, [sp]                                         |         __asm ("strd r2, r3, [sp]");
    0x00014144 ldrd r2, r3, [fp, r6]                                     |         __asm ("ldrd r2, r3, [fp, r6]");
    0x00014148 add r0, pc, r0                                            |         r0 = pc + r0;
    0x0001414c bl 0x13aa4                                                |         fcn_00013aa4 ();
                                                                         |     }
                                                                         | label_0:
    0x00014150 mov r0, r4                                                |     r0 = r4;
    0x00014154 add sp, sp, 0xc                                           |     
    0x00014158 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                  |     
                                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x141cc */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.000141cc ()                                  | void fcn_000141cc (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_1ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000141cc push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000141d0 ldr r5, [pc, 0x24c]                           |     r5 = *(0x14420);
    0x000141d4 ldr r3, [pc, 0x24c]                           |     r3 = *(0x14424);
    0x000141d8 sub sp, sp, 0x1c                              |     
    0x000141dc add r5, pc, r5                                |     r5 = pc + r5;
    0x000141e0 str r1, [sp, 0xc]                             |     var_ch = r1;
    0x000141e4 str r2, [sp, 0x10]                            |     var_10h = r2;
    0x000141e8 ldr r3, [r5, r3]                              |     
    0x000141ec mov r4, r0                                    |     r4 = r0;
    0x000141f0 str r3, [sp, 0x14]                            |     var_14h = r3;
    0x000141f4 ldr r3, [r3]                                  |     r3 = *(0x14420);
    0x000141f8 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) != 0) {
    0x000141fc beq 0x1424c                                   |         
    0x00014200 ldr r3, [pc, 0x224]                           |         r3 = *(0x14428);
    0x00014204 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00014208 ldr r7, [r3]                                  |         r7 = *(0x14428);
    0x0001420c bl 0x58fc                                     |         getpid ();
    0x00014210 ldr r3, [pc, 0x218]                           |         r3 = *(0x1442c);
    0x00014214 ldr r1, [pc, 0x218]                           |         r1 = *(0x14430);
    0x00014218 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001421c str r3, [sp]                                  |         *(sp) = r3;
    0x00014220 ldr r3, [pc, 0x210]                           |         r3 = *(0x14434);
    0x00014224 add r1, pc, r1                                |         r1 = pc + r1;
    0x00014228 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001422c mov r2, r0                                    |         r2 = r0;
    0x00014230 mov r0, r7                                    |         r0 = r7;
    0x00014234 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x00014238 ldr r3, [sp, 0x10]                            |         r3 = var_10h;
    0x0001423c ldr r0, [pc, 0x1f8]                           |         r0 = *(0x14438);
    0x00014240 ldr r1, [r3]                                  |         r1 = *(0x14434);
    0x00014244 add r0, pc, r0                                |         r0 = pc + r0;
    0x00014248 bl 0x13aa4                                    |         fcn_00013aa4 ();
                                                             |     }
    0x0001424c ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00014250 cmp r3, 0                                     |     
    0x00014254 cmpne r4, 0                                   |     __asm ("cmpne r4, 0");
                                                             |     if (r3 == 0) {
    0x00014258 beq 0x1441c                                   |         goto label_0;
                                                             |     }
    0x0001425c ldrd r2, r3, [r3, 8]                          |     __asm ("ldrd r2, r3, [r3, 8]");
    0x00014260 orrs r1, r2, r3                               |     r1 = r2 | r3;
                                                             |     if (r1 == r2) {
    0x00014264 beq 0x1441c                                   |         goto label_0;
                                                             |     }
    0x00014268 ldr r1, [r4, 0x30]                            |     r1 = *((r4 + 0x30));
    0x0001426c tst r1, 0x10                                  |     
                                                             |     if ((r1 & 0x10) == 0) {
    0x00014270 movne r4, 1                                   |         r4 = 1;
                                                             |     }
                                                             |     if ((r1 & 0x10) != 0) {
    0x00014274 bne 0x14410                                   |         goto label_1;
                                                             |     }
    0x00014278 ldr r0, [sp, 0xc]                             |     r0 = var_ch;
    0x0001427c ldr r1, [sp, 0xc]                             |     r1 = var_ch;
    0x00014280 ldr r0, [r0, 4]                               |     r0 = *((r0 + 4));
    0x00014284 ldr r1, [r1]                                  |     r1 = *(r1);
    0x00014288 lsl sb, r0, 9                                 |     sb = r0 << 9;
    0x0001428c orr sb, sb, r1, lsr 23                        |     sb |= (r1 >> 23);
    0x00014290 lsl r8, r1, 9                                 |     r8 = r1 << 9;
    0x00014294 ldrd r0, r1, [r4, 8]                          |     __asm ("ldrd r0, r1, [r4, 8]");
    0x00014298 cmp r1, sb                                    |     
    0x0001429c cmpeq r0, r8                                  |     __asm ("cmpeq r0, r8");
                                                             |     if (r1 <= sb) {
    0x000142a0 bhi 0x142d0                                   |         
    0x000142a4 lsl fp, r3, 9                                 |         
    0x000142a8 orr fp, fp, r2, lsr 23                        |         
    0x000142ac lsl sl, r2, 9                                 |         sl = r2 << 9;
    0x000142b0 ldrd r2, r3, [r4, 0x10]                       |         __asm ("ldrd r2, r3, [r4, 0x10]");
    0x000142b4 adds r6, r2, r0                               |         r6 = r2 + r0;
    0x000142b8 adc r7, r3, r1                                |         __asm ("adc r7, r3, r1");
    0x000142bc adds r0, sl, r8                               |         r0 = sl + r8;
    0x000142c0 adc r1, fp, sb                                |         __asm ("adc r1, fp, sb");
    0x000142c4 cmp r7, r1                                    |         
    0x000142c8 cmpeq r6, r0                                  |         __asm ("cmpeq r6, r0");
                                                             |         if (r7 >= r1) {
    0x000142cc bhs 0x14334                                   |             goto label_2;
                                                             |         }
                                                             |     }
    0x000142d0 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x000142d4 ldr r3, [r3]                                  |     r3 = *(r3);
    0x000142d8 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) != 0) {
    0x000142dc beq 0x1432c                                   |         
    0x000142e0 ldr r3, [pc, 0x144]                           |         r3 = *(0x14428);
    0x000142e4 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x000142e8 ldr r4, [r3]                                  |         r4 = *(0x14428);
    0x000142ec bl 0x58fc                                     |         getpid ();
    0x000142f0 ldr r3, [pc, 0x148]                           |         r3 = *(0x1443c);
    0x000142f4 ldr r1, [pc, 0x148]                           |         r1 = *(0x14440);
    0x000142f8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000142fc str r3, [sp]                                  |         *(sp) = r3;
    0x00014300 ldr r3, [pc, 0x140]                           |         r3 = *(0x14444);
    0x00014304 add r1, pc, r1                                |         r1 = pc + r1;
    0x00014308 add r3, pc, r3                                |         r3 = pc + r3;
    0x0001430c mov r2, r0                                    |         r2 = r0;
    0x00014310 mov r0, r4                                    |         r0 = r4;
    0x00014314 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x00014318 ldr r3, [sp, 0x10]                            |         r3 = var_10h;
    0x0001431c ldr r0, [pc, 0x128]                           |         r0 = *(0x14448);
    0x00014320 ldr r1, [r3]                                  |         r1 = *(0x14444);
    0x00014324 add r0, pc, r0                                |         r0 = pc + r0;
    0x00014328 bl 0x13aa4                                    |         fcn_00013aa4 ();
                                                             |     }
    0x0001432c mvn r4, 0x1b                                  |     r4 = ~0x1b;
    0x00014330 b 0x14410                                     |     goto label_1;
                                                             | label_2:
    0x00014334 mov r0, r4                                    |     r0 = r4;
    0x00014338 bl 0xae28                                     |     r0 = fcn_0000ae28 (r0);
    0x0001433c subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 != r0) {
    0x00014340 mvneq r4, 0xb                                 |         r4 = ~0xb;
                                                             |     }
                                                             |     if (r7 == r0) {
    0x00014344 beq 0x14410                                   |         goto label_1;
                                                             |     }
    0x00014348 mov r3, sb                                    |     r3 = sb;
    0x0001434c mov r2, r8                                    |     r2 = r8;
    0x00014350 strd sl, fp, [sp]                             |     __asm ("strd sl, fp, [sp]");
    0x00014354 bl 0xc118                                     |     fcn_0000c118 (r0, r1);
    0x00014358 mov r0, r4                                    |     r0 = r4;
    0x0001435c bl 0xb3b0                                     |     fcn_0000b3b0 (r0);
    0x00014360 str r0, [r7, 0xa8]                            |     *((r7 + 0xa8)) = r0;
    0x00014364 mov r0, r4                                    |     r0 = r4;
    0x00014368 bl 0x13cc8                                    |     r0 = fcn_00013cc8 (r0);
    0x0001436c subs r8, r0, 0                                |     r8 = r0 - 0;
                                                             |     if (r8 == r0) {
    0x00014370 ldrne r3, [sp, 0xc]                           |         r3 = var_ch;
                                                             |     }
    0x00014374 mov r0, r4                                    |     r0 = r4;
                                                             |     if (r8 == r0) {
    0x00014378 strne r3, [r8, 4]                             |         *((r8 + 4)) = r3;
                                                             |     }
    0x0001437c str r8, [r7, 0xa4]                            |     *((r7 + 0xa4)) = r8;
    0x00014380 bl 0xb3b0                                     |     fcn_0000b3b0 (r0);
    0x00014384 ldr r1, [sp, 0x10]                            |     r1 = var_10h;
    0x00014388 mov r2, r0                                    |     r2 = r0;
    0x0001438c mov r0, r7                                    |     r0 = r7;
    0x00014390 bl 0x13cd0                                    |     fcn_00013cd0 (r0, r1);
    0x00014394 mov r3, 0                                     |     r3 = 0;
    0x00014398 cmp r8, r3                                    |     
    0x0001439c str r3, [r7, 0xa4]                            |     *((r7 + 0xa4)) = r3;
                                                             |     if (r8 == r3) {
    0x000143a0 strne r3, [r8, 4]                             |         *((r8 + 4)) = r3;
                                                             |     }
    0x000143a4 mov r4, r0                                    |     r4 = r0;
    0x000143a8 mov r0, r7                                    |     r0 = r7;
    0x000143ac bl 0x5cbc                                     |     fcn_00005cbc ();
    0x000143b0 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x000143b4 ldr r3, [r3]                                  |     r3 = *(r3);
    0x000143b8 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) == 0) {
    0x000143bc beq 0x14410                                   |         goto label_1;
                                                             |     }
    0x000143c0 ldr r3, [pc, 0x64]                            |     r3 = *(0x14428);
    0x000143c4 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x000143c8 ldr r5, [r3]                                  |     r5 = *(0x14428);
    0x000143cc bl 0x58fc                                     |     getpid ();
    0x000143d0 ldr r3, [pc, 0x78]                            |     r3 = *(0x1444c);
    0x000143d4 ldr r1, [pc, 0x78]                            |     r1 = *(0x14450);
    0x000143d8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000143dc str r3, [sp]                                  |     *(sp) = r3;
    0x000143e0 ldr r3, [pc, 0x70]                            |     r3 = *(0x14454);
    0x000143e4 add r1, pc, r1                                |     r1 = pc + r1;
    0x000143e8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000143ec mov r2, r0                                    |     r2 = r0;
    0x000143f0 mov r0, r5                                    |     r0 = r5;
    0x000143f4 bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x000143f8 ldr r3, [sp, 0x10]                            |     r3 = var_10h;
    0x000143fc ldr r0, [pc, 0x58]                            |     r0 = *(0x14458);
    0x00014400 mov r2, r4                                    |     r2 = r4;
    0x00014404 ldr r1, [r3]                                  |     r1 = *(0x14454);
    0x00014408 add r0, pc, r0                                |     r0 = pc + r0;
    0x0001440c bl 0x13aa4                                    |     fcn_00013aa4 ();
                                                             |     do {
                                                             | label_1:
    0x00014410 mov r0, r4                                    |         r0 = r4;
    0x00014414 add sp, sp, 0x1c                              |         
    0x00014418 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_0:
    0x0001441c mvn r4, 0x15                                  |         r4 = ~0x15;
    0x00014420 b 0x14410                                     |         
                                                             |     } 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 @ 0x144ec */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.000144ec ()                                  | void fcn_000144ec (int32_t arg_40h, int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_1ch;
                                                             |     r0 = arg1;
    0x000144ec push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000144f0 ldr r5, [pc, 0x298]                           |     r5 = *(0x1478c);
    0x000144f4 sub sp, sp, 0x1c                              |     
    0x000144f8 strd r2, r3, [sp, 8]                          |     __asm ("strd r2, r3, [var_8h]");
    0x000144fc ldr r3, [pc, 0x290]                           |     r3 = *(0x14790);
    0x00014500 add r5, pc, r5                                |     r5 = pc + r5;
    0x00014504 ldr sb, [r5, r3]                              |     sb = *(0x1478c);
    0x00014508 mov r6, r0                                    |     r6 = r0;
    0x0001450c ldr r3, [sb]                                  |     r3 = *(0x1478c);
    0x00014510 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) != 0) {
    0x00014514 beq 0x14568                                   |         
    0x00014518 ldr r3, [pc, 0x278]                           |         r3 = *(0x14794);
    0x0001451c ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x00014520 ldr r4, [r3]                                  |         r4 = *(0x14794);
    0x00014524 bl 0x58fc                                     |         getpid ();
    0x00014528 ldr r3, [pc, 0x26c]                           |         r3 = *(0x14798);
    0x0001452c ldr r1, [pc, 0x26c]                           |         r1 = *(0x1479c);
    0x00014530 add r3, pc, r3                                |         r3 = pc + r3;
    0x00014534 str r3, [sp]                                  |         *(sp) = r3;
    0x00014538 ldr r3, [pc, 0x264]                           |         r3 = *(0x147a0);
    0x0001453c add r1, pc, r1                                |         r1 = pc + r1;
    0x00014540 add r3, pc, r3                                |         r3 = pc + r3;
    0x00014544 mov r2, r0                                    |         r2 = r0;
    0x00014548 mov r0, r4                                    |         r0 = r4;
    0x0001454c bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x00014550 ldrd r2, r3, [sp, 0x40]                       |         __asm ("ldrd r2, r3, [arg_40h]");
    0x00014554 ldr r0, [pc, 0x24c]                           |         r0 = *(0x147a4);
    0x00014558 strd r2, r3, [sp]                             |         __asm ("strd r2, r3, [sp]");
    0x0001455c add r0, pc, r0                                |         r0 = pc + r0;
    0x00014560 ldrd r2, r3, [sp, 8]                          |         __asm ("ldrd r2, r3, [var_8h]");
    0x00014564 bl 0x13aa4                                    |         fcn_00013aa4 ();
                                                             |     }
    0x00014568 ldr r4, [r6, 0x30]                            |     r4 = *((r6 + 0x30));
    0x0001456c ands r4, r4, 0x10                             |     r4 &= 0x10;
    0x00014570 beq 0x145f0                                   |     
                                                             |     while (r3 == r0) {
    0x00014574 mov r4, 0                                     |         r4 = 0;
    0x00014578 str r4, [sp, 0x10]                            |         var_10h = r4;
                                                             | label_0:
    0x0001457c ldr r0, [sp, 0x10]                            |         r0 = var_10h;
    0x00014580 bl 0x5cbc                                     |         fcn_00005cbc ();
    0x00014584 ldr r3, [sb]                                  |         r3 = *(sb);
    0x00014588 tst r3, 0x100                                 |         
                                                             |         if ((r3 & 0x100) != 0) {
    0x0001458c beq 0x145e4                                   |             
    0x00014590 ldr r3, [pc, 0x200]                           |             r3 = *(0x14794);
    0x00014594 ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x00014598 ldr r5, [r3]                                  |             r5 = *(0x14794);
    0x0001459c bl 0x58fc                                     |             getpid ();
    0x000145a0 ldr r3, [pc, 0x204]                           |             r3 = *(0x147a8);
    0x000145a4 ldr r1, [pc, 0x204]                           |             r1 = *(0x147ac);
    0x000145a8 add r3, pc, r3                                |             r3 = pc + r3;
    0x000145ac str r3, [sp]                                  |             *(sp) = r3;
    0x000145b0 ldr r3, [pc, 0x1fc]                           |             r3 = *(0x147b0);
    0x000145b4 add r1, pc, r1                                |             r1 = pc + r1;
    0x000145b8 add r3, pc, r3                                |             r3 = pc + r3;
    0x000145bc mov r2, r0                                    |             r2 = r0;
    0x000145c0 mov r0, r5                                    |             r0 = r5;
    0x000145c4 bl 0x5c50                                     |             fprintf (r0, r1, r2, r3)
    0x000145c8 cmp r4, 0                                     |             
                                                             |             if (r4 != 0) {
    0x000145cc bne 0x14784                                   |                 goto label_4;
                                                             |             }
    0x000145d0 ldr r1, [pc, 0x1e0]                           |             r1 = *(0x147b4);
    0x000145d4 add r1, pc, r1                                |             r1 = pc + r1;
                                                             | label_3:
    0x000145d8 ldr r0, [pc, 0x1dc]                           |             r0 = *(0x147b8);
    0x000145dc add r0, pc, r0                                |             r0 = pc + r0;
    0x000145e0 bl 0x13aa4                                    |             fcn_00013aa4 ();
                                                             |         }
    0x000145e4 mov r0, r4                                    |         r0 = r4;
    0x000145e8 add sp, sp, 0x1c                              |         
    0x000145ec pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x000145f0 mov r0, r6                                    |         r0 = r6;
    0x000145f4 bl 0xae28                                     |         r0 = fcn_0000ae28 (r0);
    0x000145f8 subs r3, r0, 0                                |         r3 = r0 - 0;
    0x000145fc str r3, [sp, 0x10]                            |         var_10h = r3;
    0x00014600 beq 0x14574                                   |         
                                                             |     }
    0x00014604 bl 0x5860                                     |     r0 = fcn_00005860 ();
    0x00014608 subs r8, r0, 0                                |     r8 = r0 - 0;
                                                             |     if (r8 == r0) {
    0x0001460c beq 0x1457c                                   |         goto label_0;
                                                             |     }
    0x00014610 bl 0x6004                                     |     r0 = fcn_00006004 ();
    0x00014614 subs r3, r0, 0                                |     r3 = r0 - 0;
    0x00014618 str r3, [sp, 0x14]                            |     var_14h = r3;
                                                             |     if (r3 == r0) {
    0x0001461c movne ip, r4                                  |         
                                                             |     }
                                                             |     if (r3 != r0) {
    0x00014620 movne lr, 0xf8                                |         lr = 0xf8;
                                                             |         goto label_5;
                                                             |     }
                                                             |     if (r3 == r0) {
                                                             | label_5:
    0x00014624 beq 0x1457c                                   |         goto label_0;
                                                             |     }
                                                             | label_2:
    0x00014628 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x0001462c cmp ip, r3                                    |     
                                                             |     if (ip < r3) {
    0x00014630 blt 0x146d0                                   |         goto label_6;
                                                             |     }
    0x00014634 ldr r3, [sp, 8]                               |     r3 = var_8h;
    0x00014638 ldrd r0, r1, [sp, 0x40]                       |     __asm ("ldrd r0, r1, [arg_40h]");
    0x0001463c lsr r3, r3, 9                                 |     r3 >>= 9;
    0x00014640 mov sl, r3                                    |     sl = r3;
    0x00014644 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00014648 mov ip, 0                                     |     
    0x0001464c orr r3, sl, r3, lsl 23                        |     r3 = sl | (r3 << 23);
    0x00014650 mov sl, r3                                    |     sl = r3;
    0x00014654 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00014658 mov lr, 0xf8                                  |     lr = 0xf8;
    0x0001465c lsr r3, r3, 9                                 |     r3 >>= 9;
    0x00014660 mov fp, r3                                    |     
    0x00014664 ldrd r2, r3, [sp, 8]                          |     __asm ("ldrd r2, r3, [var_8h]");
    0x00014668 adds r2, r2, r0                               |     r2 += r0;
    0x0001466c adc r3, r3, r1                                |     __asm ("adc r3, r3, r1");
    0x00014670 lsr r6, r2, 9                                 |     r6 = r2 >> 9;
    0x00014674 orr r6, r6, r3, lsl 23                        |     r6 |= (r3 << 23);
    0x00014678 lsr r7, r3, 9                                 |     r7 = r3 >> 9;
                                                             | label_1:
    0x0001467c ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00014680 cmp ip, r3                                    |     
                                                             |     if (ip >= r3) {
    0x00014684 bge 0x1457c                                   |         goto label_0;
                                                             |     }
    0x00014688 mul r3, lr, ip                                |     r3 = lr * ip;
    0x0001468c ldr r2, [r8, 0x10]                            |     r2 = *((r8 + 0x10));
    0x00014690 add r1, r2, r3                                |     r1 = r2 + r3;
    0x00014694 add r2, r2, r3                                |     r2 += r3;
    0x00014698 str r1, [sp, 8]                               |     var_8h = r1;
    0x0001469c ldrd r2, r3, [r2]                             |     __asm ("ldrd r2, r3, [r2]");
    0x000146a0 cmp r3, fp                                    |     
    0x000146a4 cmpeq r2, sl                                  |     __asm ("cmpeq r2, sl");
                                                             |     if (r3 <= fp) {
    0x000146a8 bhi 0x146c8                                   |         
    0x000146ac ldr r1, [sp, 8]                               |         r1 = var_8h;
    0x000146b0 ldrd r0, r1, [r1, 8]                          |         __asm ("ldrd r0, r1, [r1, 8]");
    0x000146b4 adds r0, r0, r2                               |         r0 += r2;
    0x000146b8 adc r1, r1, r3                                |         __asm ("adc r1, r1, r3");
    0x000146bc cmp r1, r7                                    |         
    0x000146c0 cmpeq r0, r6                                  |         __asm ("cmpeq r0, r6");
                                                             |         if (r1 >= r7) {
    0x000146c4 bhs 0x1477c                                   |             goto label_7;
                                                             |         }
                                                             |     }
    0x000146c8 add ip, ip, 1                                 |     
    0x000146cc b 0x1467c                                     |     goto label_1;
                                                             | label_6:
    0x000146d0 mul r3, lr, ip                                |     r3 = lr * ip;
    0x000146d4 ldr r2, [r8, 0x10]                            |     r2 = *((r8 + 0x10));
    0x000146d8 add r7, r2, r3                                |     r7 = r2 + r3;
    0x000146dc ldrd r0, r1, [r2, r3]                         |     __asm ("ldrd r0, r1, [r2, r3]");
    0x000146e0 ldrd r2, r3, [r7, 8]                          |     __asm ("ldrd r2, r3, [r7, 8]");
    0x000146e4 adds sl, r0, r2                               |     sl = r0 + r2;
    0x000146e8 adc fp, r1, r3                                |     __asm ("adc fp, r1, r3");
    0x000146ec ldr r1, [r6, 0x10]                            |     r1 = *((r6 + 0x10));
    0x000146f0 lsr r2, r1, 9                                 |     r2 = r1 >> 9;
    0x000146f4 ldr r1, [r6, 0x14]                            |     r1 = *((r6 + 0x14));
    0x000146f8 lsr r3, r1, 9                                 |     r3 = r1 >> 9;
    0x000146fc orr r2, r2, r1, lsl 23                        |     r2 |= (r1 << 23);
    0x00014700 cmp fp, r3                                    |     
    0x00014704 cmpeq sl, r2                                  |     __asm ("cmpeq sl, r2");
                                                             |     if (fp < r3) {
    0x00014708 bls 0x14774                                   |         goto label_8;
                                                             |     }
    0x0001470c ldr r3, [sb]                                  |     r3 = *(sb);
    0x00014710 ands r3, r3, 0x100                            |     r3 &= 0x100;
                                                             |     if (r3 == r3) {
    0x00014714 moveq r4, r3                                  |         r4 = r3;
                                                             |         goto label_9;
                                                             |     }
                                                             |     if (r3 == r3) {
                                                             | label_9:
    0x00014718 beq 0x1457c                                   |         goto label_0;
                                                             |     }
    0x0001471c ldr r3, [pc, 0x74]                            |     r3 = *(0x14794);
    0x00014720 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00014724 ldr r6, [r3]                                  |     r6 = *(0x14794);
    0x00014728 bl 0x58fc                                     |     getpid ();
    0x0001472c ldr r3, [pc, 0x8c]                            |     r3 = *(0x147bc);
    0x00014730 ldr r1, [pc, 0x8c]                            |     r1 = *(0x147c0);
    0x00014734 add r3, pc, r3                                |     r3 = pc + r3;
    0x00014738 str r3, [sp]                                  |     *(sp) = r3;
    0x0001473c ldr r3, [pc, 0x84]                            |     r3 = *(0x147c4);
    0x00014740 add r1, pc, r1                                |     r1 = pc + r1;
    0x00014744 add r3, pc, r3                                |     r3 = pc + r3;
    0x00014748 mov r2, r0                                    |     r2 = r0;
    0x0001474c mov r0, r6                                    |     r0 = r6;
    0x00014750 bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x00014754 ldrd r2, r3, [r7, 8]                          |     __asm ("ldrd r2, r3, [r7, 8]");
    0x00014758 ldr r0, [pc, 0x6c]                            |     r0 = *(0x147c8);
    0x0001475c strd r2, r3, [sp]                             |     __asm ("strd r2, r3, [sp]");
    0x00014760 ldr r1, [r7, 0x48]                            |     r1 = *((r7 + 0x48));
    0x00014764 ldrd r2, r3, [r7]                             |     __asm ("ldrd r2, r3, [r7]");
    0x00014768 add r0, pc, r0                                |     r0 = pc + r0;
    0x0001476c bl 0x13aa4                                    |     fcn_00013aa4 ();
    0x00014770 b 0x1457c                                     |     goto label_0;
                                                             | label_8:
    0x00014774 add ip, ip, 1                                 |     
    0x00014778 b 0x14628                                     |     goto label_2;
                                                             | label_7:
    0x0001477c mov r4, 1                                     |     r4 = 1;
    0x00014780 b 0x1457c                                     |     goto label_0;
                                                             | label_4:
    0x00014784 ldr r1, [pc, 0x44]                            |     r1 = *(0x147cc);
    0x00014788 add r1, pc, r1                                |     r1 = pc + r1;
    0x0001478c b 0x145d8                                     |     goto label_3;
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x19158 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00019158 ()                              | void fcn_00019158 (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_8h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00019158 push {r0, r1, r4, r5, r6, r7, r8, lr}     |     
    0x0001915c ldr r8, [pc, 0x19c]                       |     r8 = *(0x192fc);
    0x00019160 mov r5, r0                                |     r5 = r0;
    0x00019164 mov r7, r1                                |     r7 = r1;
    0x00019168 mov r4, r2                                |     r4 = r2;
    0x0001916c bl 0xb3b0                                 |     fcn_0000b3b0 (r0);
    0x00019170 ldr r3, [pc, 0x18c]                       |     r3 = *(0x19300);
    0x00019174 add r8, pc, r8                            |     r8 = pc + r8;
    0x00019178 ldr r3, [r8, r3]                          |     
    0x0001917c ldr r3, [r3]                              |     r3 = *(0x192fc);
    0x00019180 tst r3, 0x200                             |     
    0x00019184 mov r6, r0                                |     r6 = r0;
                                                         |     if ((r3 & 0x200) != 0) {
    0x00019188 beq 0x19224                               |         
    0x0001918c ldr r3, [pc, 0x174]                       |         r3 = *(0x19304);
    0x00019190 ldr r3, [r8, r3]                          |         r3 = *((r8 + r3));
    0x00019194 ldr r8, [r3]                              |         r8 = *(0x19304);
    0x00019198 bl 0x58fc                                 |         getpid ();
    0x0001919c ldr r3, [pc, 0x168]                       |         r3 = *(0x19308);
    0x000191a0 ldr r1, [pc, 0x168]                       |         r1 = *(0x1930c);
    0x000191a4 add r3, pc, r3                            |         r3 = pc + r3;
    0x000191a8 str r3, [sp]                              |         *(sp) = r3;
    0x000191ac ldr r3, [pc, 0x160]                       |         r3 = *(0x19310);
    0x000191b0 add r1, pc, r1                            |         r1 = pc + r1;
    0x000191b4 add r3, pc, r3                            |         r3 = pc + r3;
    0x000191b8 mov r2, r0                                |         r2 = r0;
    0x000191bc mov r0, r8                                |         r0 = r8;
    0x000191c0 bl 0x5c50                                 |         fprintf (r0, r1, r2, r3)
    0x000191c4 ldrb r2, [r4, 0x65]                       |         r2 = *((r4 + 0x65));
    0x000191c8 ldrb r3, [r4, 0x64]                       |         r3 = *((r4 + 0x64));
    0x000191cc ldrb r1, [r4, 0x61]                       |         r1 = *((r4 + 0x61));
    0x000191d0 orr r3, r3, r2, lsl 8                     |         r3 |= (r2 << 8);
    0x000191d4 ldrb r2, [r4, 0x66]                       |         r2 = *((r4 + 0x66));
    0x000191d8 ldrb r0, [r4, 0x5d]                       |         r0 = *((r4 + 0x5d));
    0x000191dc orr r3, r3, r2, lsl 16                    |         r3 |= (r2 << 16);
    0x000191e0 ldrb r2, [r4, 0x60]                       |         r2 = *((r4 + 0x60));
    0x000191e4 ldrb lr, [r4, 0x67]                       |         
    0x000191e8 orr r2, r2, r1, lsl 8                     |         r2 |= (r1 << 8);
    0x000191ec ldrb r1, [r4, 0x62]                       |         r1 = *((r4 + 0x62));
    0x000191f0 ldrb ip, [r4, 0x63]                       |         ip = *((r4 + 0x63));
    0x000191f4 orr r2, r2, r1, lsl 16                    |         r2 |= (r1 << 16);
    0x000191f8 ldrb r1, [r4, 0x5c]                       |         r1 = *((r4 + 0x5c));
    0x000191fc orr r3, r3, lr, lsl 24                    |         r3 |= (lr << 24);
    0x00019200 orr r1, r1, r0, lsl 8                     |         r1 |= (r0 << 8);
    0x00019204 ldrb r0, [r4, 0x5e]                       |         r0 = *((r4 + 0x5e));
    0x00019208 orr r2, r2, ip, lsl 24                    |         r2 |= (ip << 24);
    0x0001920c orr r1, r1, r0, lsl 16                    |         r1 |= (r0 << 16);
    0x00019210 ldrb r0, [r4, 0x5f]                       |         r0 = *((r4 + 0x5f));
    0x00019214 orr r1, r1, r0, lsl 24                    |         r1 |= (r0 << 24);
    0x00019218 ldr r0, [pc, 0xf8]                        |         r0 = *(0x19314);
    0x0001921c add r0, pc, r0                            |         r0 = pc + r0;
    0x00019220 bl 0x190c4                                |         fcn_000190c4 ();
                                                         |     }
    0x00019224 ldrsb r3, [r4, 0x78]                      |     r3 = *((r4 + 0x78));
    0x00019228 cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x0001922c beq 0x19240                               |         
    0x00019230 mov r2, 0x10                              |         r2 = 0x10;
    0x00019234 add r1, r4, 0x78                          |         r1 = r4 + 0x78;
    0x00019238 mov r0, r5                                |         r0 = r5;
    0x0001923c bl 0x1da38                                |         fcn_0001da38 (r0, r1);
                                                         |     }
    0x00019240 add r1, r4, 0x68                          |     r1 = r4 + 0x68;
    0x00019244 mov r0, r5                                |     r0 = r5;
    0x00019248 bl 0x1de6c                                |     fcn_0001de6c (r0, r1);
    0x0001924c ldrb r3, [r4, 0x5c]                       |     r3 = *((r4 + 0x5c));
    0x00019250 tst r3, 4                                 |     
                                                         |     if ((r3 & 4) != 0) {
    0x00019254 beq 0x1926c                               |         
    0x00019258 ldr r2, [pc, 0xbc]                        |         r2 = *(0x19318);
    0x0001925c add r1, r4, 0xd0                          |         r1 = r4 + 0xd0;
    0x00019260 add r2, pc, r2                            |         r2 = pc + r2;
    0x00019264 mov r0, r5                                |         r0 = r5;
    0x00019268 bl 0x1dd7c                                |         fcn_0001dd7c (r0, r1);
                                                         |     }
    0x0001926c cmp r7, 2                                 |     
                                                         |     if (r7 != 2) {
    0x00019270 beq 0x192c0                               |         
    0x00019274 ldr r3, [r6, 8]                           |         r3 = *((r6 + 8));
    0x00019278 tst r3, 0x40                              |         
                                                         |         if ((r3 & 0x40) == 0) {
    0x0001927c beq 0x192c0                               |             goto label_0;
                                                         |         }
    0x00019280 ldrb r2, [r4, 0x61]                       |         r2 = *((r4 + 0x61));
    0x00019284 ldrb r3, [r4, 0x60]                       |         r3 = *((r4 + 0x60));
    0x00019288 orr r3, r3, r2, lsl 8                     |         r3 |= (r2 << 8);
    0x0001928c ldrb r2, [r4, 0x62]                       |         r2 = *((r4 + 0x62));
    0x00019290 orr r3, r3, r2, lsl 16                    |         r3 |= (r2 << 16);
    0x00019294 ldrb r2, [r4, 0x63]                       |         r2 = *((r4 + 0x63));
    0x00019298 orr r3, r3, r2, lsl 24                    |         r3 |= (r2 << 24);
    0x0001929c bics r3, r3, 0x12                         |         __asm ("bics r3, r3, 0x12");
                                                         |         if ((r3 & 0x40) != 0) {
    0x000192a0 bne 0x192c0                               |             goto label_0;
                                                         |         }
    0x000192a4 ldr r2, [pc, 0x74]                        |         r2 = *(0x1931c);
    0x000192a8 ldr r1, [pc, 0x74]                        |         r1 = *(0x19320);
    0x000192ac mov r3, 5                                 |         r3 = 5;
    0x000192b0 add r2, pc, r2                            |         r2 = pc + r2;
    0x000192b4 add r1, pc, r1                            |         r1 = pc + r1;
    0x000192b8 mov r0, r5                                |         r0 = r5;
    0x000192bc bl 0xc668                                 |         fcn_0000c668 (r0, r1);
                                                         |     }
                                                         | label_0:
    0x000192c0 ldrb r1, [r4, 0x4d]                       |     r1 = *((r4 + 0x4d));
    0x000192c4 ldrb r2, [r4, 0x4c]                       |     r2 = *((r4 + 0x4c));
    0x000192c8 ldrb r0, [r4, 0x3f]                       |     r0 = *((r4 + 0x3f));
    0x000192cc orr r2, r2, r1, lsl 8                     |     r2 |= (r1 << 8);
    0x000192d0 ldrb r1, [r4, 0x4e]                       |     r1 = *((r4 + 0x4e));
    0x000192d4 ldrb r3, [r4, 0x3e]                       |     r3 = *((r4 + 0x3e));
    0x000192d8 orr r2, r2, r1, lsl 16                    |     r2 |= (r1 << 16);
    0x000192dc ldrb r1, [r4, 0x4f]                       |     r1 = *((r4 + 0x4f));
    0x000192e0 orr r3, r3, r0, lsl 8                     |     r3 |= (r0 << 8);
    0x000192e4 orr r2, r2, r1, lsl 24                    |     r2 |= (r1 << 24);
    0x000192e8 ldr r1, [pc, 0x38]                        |     r1 = *(0x19324);
    0x000192ec mov r0, r5                                |     r0 = r5;
    0x000192f0 add r1, pc, r1                            |     r1 = pc + r1;
    0x000192f4 add sp, sp, 8                             |     
    0x000192f8 pop {r4, r5, r6, r7, r8, lr}              |     
    0x000192fc b 0x1d884                                 |     return void (*0x1d884)() ();
                                                         | }
    ; 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 @ 0x1cde4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0001cde4 ()                                      | void fcn_0001cde4 (int32_t arg_0h, int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_18h_2;
                                                                 |     int32_t var_24h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0001cde4 ldr r3, [r1, 0x10]                                |     r3 = *((r1 + 0x10));
    0x0001cde8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0001cdec ldr r8, [pc, 0x5c0]                               |     r8 = *(0x1d3b0);
    0x0001cdf0 cmn r3, 1                                         |     
    0x0001cdf4 add r8, pc, r8                                    |     r8 = pc + r8;
    0x0001cdf8 sub sp, sp, 0x24                                  |     
                                                                 |     if (r3 >= 1) {
    0x0001cdfc mvnlt r5, 0x15                                    |         r5 = ~0x15;
                                                                 |     }
                                                                 |     if (r3 < 1) {
    0x0001ce00 blt 0x1d20c                                       |         goto label_9;
                                                                 |     }
    0x0001ce04 mov r4, r0                                        |     r4 = r0;
    0x0001ce08 mov r6, r1                                        |     r6 = r1;
    0x0001ce0c bl 0xb07c                                         |     fcn_0000b07c (r0, r1);
    0x0001ce10 ldr r3, [r4, 0x30]                                |     r3 = *((r4 + 0x30));
    0x0001ce14 tst r3, 0x10                                      |     
    0x0001ce18 ldr r3, [pc, 0x598]                               |     r3 = *(0x1d3b4);
    0x0001ce1c ldr fp, [r8, r3]                                  |     fp = *((r8 + r3));
                                                                 |     if ((r3 & 0x10) == 0) {
    0x0001ce20 beq 0x1ce7c                                       |         goto label_11;
                                                                 |     }
    0x0001ce24 ldr r3, [fp]                                      |     r3 = *(fp);
    0x0001ce28 tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) == 0) {
    0x0001ce2c beq 0x1ce74                                       |         goto label_12;
                                                                 |     }
    0x0001ce30 ldr r3, [pc, 0x584]                               |     r3 = *(0x1d3b8);
    0x0001ce34 ldr r3, [r8, r3]                                  |     r3 = *((r8 + r3));
    0x0001ce38 ldr r4, [r3]                                      |     r4 = *(0x1d3b8);
    0x0001ce3c bl 0x58fc                                         |     getpid ();
    0x0001ce40 ldr r3, [pc, 0x578]                               |     r3 = *(0x1d3bc);
    0x0001ce44 ldr r1, [pc, 0x578]                               |     r1 = *(0x1d3c0);
    0x0001ce48 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001ce4c str r3, [sp]                                      |     *(sp) = r3;
    0x0001ce50 ldr r3, [pc, 0x570]                               |     r3 = *(0x1d3c4);
    0x0001ce54 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001ce58 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001ce5c mov r2, r0                                        |     r2 = r0;
    0x0001ce60 mov r0, r4                                        |     r0 = r4;
    0x0001ce64 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0001ce68 ldr r0, [pc, 0x55c]                               |     r0 = *(0x1d3c8);
    0x0001ce6c add r0, pc, r0                                    |     r0 = pc + r0;
                                                                 | label_0:
    0x0001ce70 bl 0x1cd58                                        |     fcn_0001cd58 ();
                                                                 |     do {
                                                                 | label_12:
    0x0001ce74 mov r5, 1                                         |         r5 = 1;
    0x0001ce78 b 0x1d20c                                         |         goto label_9;
                                                                 | label_11:
    0x0001ce7c ldrd r2, r3, [r4, 0x10]                           |         __asm ("ldrd r2, r3, [r4, 0x10]");
    0x0001ce80 orrs r1, r2, r3                                   |         r1 = r2 | r3;
                                                                 |         if (r1 != r2) {
    0x0001ce84 beq 0x1cea4                                       |             
    0x0001ce88 cmp r3, 0                                         |             
    0x0001ce8c cmpeq r2, 0x400                                   |             __asm ("cmpeq r2, aav.0x00000400");
                                                                 |             if (r3 > 0) {
    0x0001ce90 bhi 0x1cef4                                       |                 goto label_13;
                                                                 |             }
    0x0001ce94 ldr r3, [r4, 0x2c]                                |             r3 = *((r4 + 0x2c));
    0x0001ce98 and r3, r3, 0xf000                                |             r3 &= 0xf000;
    0x0001ce9c cmp r3, 0x2000                                    |             
                                                                 |             if (r3 == 0x2000) {
    0x0001cea0 beq 0x1cef4                                       |                 goto label_13;
                                                                 |             }
                                                                 |         }
    0x0001cea4 ldr r3, [fp]                                      |         r3 = *(fp);
    0x0001cea8 tst r3, 0x100                                     |         
    0x0001ceac beq 0x1ce74                                       |         
                                                                 |     } while ((r3 & 0x100) == 0);
    0x0001ceb0 ldr r3, [pc, 0x504]                               |     r3 = *(0x1d3b8);
    0x0001ceb4 ldr r3, [r8, r3]                                  |     r3 = *((r8 + r3));
    0x0001ceb8 ldr r4, [r3]                                      |     r4 = *(0x1d3b8);
    0x0001cebc bl 0x58fc                                         |     getpid ();
    0x0001cec0 ldr r3, [pc, 0x508]                               |     r3 = *(0x1d3cc);
    0x0001cec4 ldr r1, [pc, 0x508]                               |     r1 = *(0x1d3d0);
    0x0001cec8 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001cecc str r3, [sp]                                      |     *(sp) = r3;
    0x0001ced0 ldr r3, [pc, 0x500]                               |     r3 = *(0x1d3d4);
    0x0001ced4 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001ced8 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001cedc mov r2, r0                                        |     r2 = r0;
    0x0001cee0 mov r0, r4                                        |     r0 = r4;
    0x0001cee4 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0001cee8 ldr r0, [pc, 0x4ec]                               |     r0 = *(0x1d3d8);
    0x0001ceec add r0, pc, r0                                    |     r0 = pc + r0;
    0x0001cef0 b 0x1ce70                                         |     goto label_0;
                                                                 | label_13:
    0x0001cef4 ldr r3, [fp]                                      |     r3 = *(fp);
    0x0001cef8 tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) != 0) {
    0x0001cefc beq 0x1cf48                                       |         
    0x0001cf00 ldr r3, [pc, 0x4b4]                               |         r3 = *(0x1d3b8);
    0x0001cf04 ldr r3, [r8, r3]                                  |         r3 = *((r8 + r3));
    0x0001cf08 ldr r5, [r3]                                      |         r5 = *(0x1d3b8);
    0x0001cf0c bl 0x58fc                                         |         getpid ();
    0x0001cf10 ldr r3, [pc, 0x4c8]                               |         r3 = *(0x1d3dc);
    0x0001cf14 ldr r1, [pc, 0x4c8]                               |         r1 = *(0x1d3e0);
    0x0001cf18 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001cf1c str r3, [sp]                                      |         *(sp) = r3;
    0x0001cf20 ldr r3, [pc, 0x4c0]                               |         r3 = *(0x1d3e4);
    0x0001cf24 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001cf28 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001cf2c mov r2, r0                                        |         r2 = r0;
    0x0001cf30 mov r0, r5                                        |         r0 = r5;
    0x0001cf34 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0001cf38 ldr r0, [pc, 0x4ac]                               |         r0 = *(0x1d3e8);
    0x0001cf3c ldr r1, [r6, 0x10]                                |         r1 = *((r6 + 0x10));
    0x0001cf40 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001cf44 bl 0x1cd58                                        |         fcn_0001cd58 ();
                                                                 |     }
    0x0001cf48 ldr r3, [pc, 0x4a0]                               |     r3 = *(0x1d3ec);
    0x0001cf4c ldr r7, [r6, 0x10]                                |     r7 = *((r6 + 0x10));
    0x0001cf50 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001cf54 str r3, [sp, 8]                                   |     var_8h = r3;
    0x0001cf58 ldr r3, [pc, 0x494]                               |     r3 = *(0x1d3f0);
    0x0001cf5c cmp r7, 0                                         |     
    0x0001cf60 add r3, pc, r3                                    |     r3 = pc + r3;
                                                                 |     if (r7 < 0) {
    0x0001cf64 addge r7, r7, 1                                   |         r7++;
                                                                 |     }
                                                                 |     if (r7 >= 0) {
    0x0001cf68 movlt r7, 0                                       |         r7 = 0;
                                                                 |     }
    0x0001cf6c mov r5, 1                                         |     r5 = 1;
    0x0001cf70 str r3, [sp, 0xc]                                 |     var_ch = r3;
                                                                 | label_2:
    0x0001cf74 cmp r7, 0x49                                      |     
                                                                 |     if (r7 > 0x49) {
    0x0001cf78 bhi 0x1d35c                                       |         goto label_14;
                                                                 |     }
    0x0001cf7c mov r3, 0                                         |     r3 = 0;
    0x0001cf80 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0001cf84 mov r2, 0                                         |     r2 = 0;
    0x0001cf88 mov r3, 0                                         |     r3 = 0;
    0x0001cf8c ldr r1, [r6, 0x14]                                |     r1 = *((r6 + 0x14));
    0x0001cf90 strd r2, r3, [sp, 0x18]                           |     __asm ("strd r2, r3, [var_18h]");
    0x0001cf94 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x0001cf98 cmp r1, 0                                         |     
    0x0001cf9c str r7, [r6, 0x10]                                |     *((r6 + 0x10)) = r7;
    0x0001cfa0 ldr sb, [r3, r7, lsl 2]                           |     offset_0 = r7 << 2;
                                                                 |     sb = *((r3 + offset_0));
                                                                 |     if (r1 == 0) {
    0x0001cfa4 beq 0x1d01c                                       |         goto label_15;
                                                                 |     }
    0x0001cfa8 lsr r2, r7, 5                                     |     r2 = r7 >> 5;
    0x0001cfac ldr r2, [r1, r2, lsl 2]                           |     offset_1 = r2 << 2;
                                                                 |     r2 = *((r1 + offset_1));
    0x0001cfb0 and r3, r7, 0x1f                                  |     r3 = r7 & 0x1f;
    0x0001cfb4 lsr r3, r2, r3                                    |     r3 = r2 >> r3;
    0x0001cfb8 tst r3, 1                                         |     
                                                                 |     if ((r3 & 1) == 0) {
    0x0001cfbc beq 0x1d01c                                       |         goto label_15;
                                                                 |     }
    0x0001cfc0 ldr r3, [fp]                                      |     r3 = *(fp);
    0x0001cfc4 tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) == 0) {
    0x0001cfc8 beq 0x1d014                                       |         goto label_1;
                                                                 |     }
    0x0001cfcc ldr r3, [pc, 0x3e8]                               |     r3 = *(0x1d3b8);
    0x0001cfd0 ldr r3, [r8, r3]                                  |     r3 = *((r8 + r3));
    0x0001cfd4 ldr r5, [r3]                                      |     r5 = *(0x1d3b8);
    0x0001cfd8 bl 0x58fc                                         |     getpid ();
    0x0001cfdc ldr r3, [pc, 0x414]                               |     r3 = *(0x1d3f4);
    0x0001cfe0 ldr r1, [pc, 0x414]                               |     r1 = *(0x1d3f8);
    0x0001cfe4 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001cfe8 str r3, [sp]                                      |     *(sp) = r3;
    0x0001cfec ldr r3, [pc, 0x40c]                               |     r3 = *(0x1d3fc);
    0x0001cff0 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001cff4 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001cff8 mov r2, r0                                        |     r2 = r0;
    0x0001cffc mov r0, r5                                        |     r0 = r5;
    0x0001d000 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0001d004 ldr r0, [pc, 0x3f8]                               |     r0 = *(0x1d400);
    0x0001d008 ldr r1, [sb]                                      |     r1 = *(sb);
    0x0001d00c add r0, pc, r0                                    |     r0 = pc + r0;
    0x0001d010 bl 0x1cd58                                        |     fcn_0001cd58 ();
                                                                 |     do {
                                                                 | label_1:
    0x0001d014 mov sl, 1                                         |         sl = 1;
    0x0001d018 b 0x1d164                                         |         goto label_4;
                                                                 | label_15:
    0x0001d01c ldr r0, [sb, 0xc]                                 |         r0 = *((sb + 0xc));
    0x0001d020 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001d024 beq 0x1d03c                                       |             goto label_16;
                                                                 |         }
    0x0001d028 ldrd r2, r3, [r4, 0x10]                           |         __asm ("ldrd r2, r3, [r4, 0x10]");
    0x0001d02c mov r1, 0                                         |         r1 = 0;
    0x0001d030 cmp r1, r3                                        |         
    0x0001d034 cmpeq r0, r2                                      |         __asm ("cmpeq r0, r2");
    0x0001d038 bhi 0x1d014                                       |         
                                                                 |     } while (r1 > r3);
                                                                 | label_16:
    0x0001d03c ldr r3, [sb, 4]                                   |     r3 = *((sb + 4));
    0x0001d040 tst r3, 0x14                                      |     
                                                                 |     if ((r3 & 0x14) != 0) {
    0x0001d044 bne 0x1d170                                       |         goto label_17;
                                                                 |     }
                                                                 | label_3:
    0x0001d048 ldr r3, [sb, 4]                                   |     r3 = *((sb + 4));
    0x0001d04c tst r3, 4                                         |     
                                                                 |     if ((r3 & 4) == 0) {
    0x0001d050 beq 0x1d064                                       |         goto label_18;
                                                                 |     }
    0x0001d054 mov r0, r4                                        |     r0 = r4;
    0x0001d058 bl 0xbc0c                                         |     r0 = fcn_0000bc0c (r0);
    0x0001d05c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001d060 bne 0x1d014                                       |         goto label_1;
                                                                 |     }
                                                                 | label_18:
    0x0001d064 ldr r3, [fp]                                      |     r3 = *(fp);
    0x0001d068 tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) != 0) {
    0x0001d06c beq 0x1d0bc                                       |         
    0x0001d070 ldr r3, [pc, 0x344]                               |         r3 = *(0x1d3b8);
    0x0001d074 ldr r3, [r8, r3]                                  |         r3 = *((r8 + r3));
    0x0001d078 ldr r5, [r3]                                      |         r5 = *(0x1d3b8);
    0x0001d07c bl 0x58fc                                         |         getpid ();
    0x0001d080 ldr r3, [pc, 0x380]                               |         r3 = *(0x1d404);
    0x0001d084 ldr r1, [pc, 0x380]                               |         r1 = *(0x1d408);
    0x0001d088 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001d08c str r3, [sp]                                      |         *(sp) = r3;
    0x0001d090 ldr r3, [pc, 0x378]                               |         r3 = *(0x1d40c);
    0x0001d094 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001d098 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001d09c mov r2, r0                                        |         r2 = r0;
    0x0001d0a0 mov r0, r5                                        |         r0 = r5;
    0x0001d0a4 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0001d0a8 ldr r0, [pc, 0x364]                               |         r0 = *(0x1d410);
    0x0001d0ac ldr r2, [sb]                                      |         r2 = *(sb);
    0x0001d0b0 mov r1, r7                                        |         r1 = r7;
    0x0001d0b4 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001d0b8 bl 0x1cd58                                        |         fcn_0001cd58 ();
                                                                 |     }
    0x0001d0bc add r3, sp, 0x14                                  |     r3 += var_14h;
    0x0001d0c0 add r2, sp, 0x18                                  |     r2 += var_18h;
    0x0001d0c4 mov r1, sb                                        |     r1 = sb;
    0x0001d0c8 mov r0, r4                                        |     r0 = r4;
    0x0001d0cc bl 0xc208                                         |     r0 = fcn_0000c208 (r0, r1);
    0x0001d0d0 subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 < r0) {
    0x0001d0d4 blt 0x1d354                                       |         goto label_19;
                                                                 |     }
                                                                 |     if (r5 != r0) {
    0x0001d0d8 bne 0x1d34c                                       |         goto label_20;
                                                                 |     }
    0x0001d0dc ldr r3, [sb, 0x10]                                |     r3 = *((sb + 0x10));
    0x0001d0e0 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001d0e4 beq 0x1d184                                       |         goto label_21;
                                                                 |     }
    0x0001d0e8 ldr r3, [fp]                                      |     r3 = *(fp);
    0x0001d0ec tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) != 0) {
    0x0001d0f0 beq 0x1d138                                       |         
    0x0001d0f4 ldr r3, [pc, 0x2c0]                               |         r3 = *(0x1d3b8);
    0x0001d0f8 ldr r3, [r8, r3]                                  |         r3 = *((r8 + r3));
    0x0001d0fc ldr sl, [r3]                                      |         sl = *(0x1d3b8);
    0x0001d100 bl 0x58fc                                         |         getpid ();
    0x0001d104 ldr r3, [pc, 0x30c]                               |         r3 = *(0x1d414);
    0x0001d108 ldr r1, [pc, 0x30c]                               |         r1 = *(0x1d418);
    0x0001d10c add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001d110 str r3, [sp]                                      |         *(sp) = r3;
    0x0001d114 ldr r3, [pc, 0x304]                               |         r3 = *(0x1d41c);
    0x0001d118 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001d11c add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001d120 mov r2, r0                                        |         r2 = r0;
    0x0001d124 mov r0, sl                                        |         r0 = sl;
    0x0001d128 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0001d12c ldr r0, [pc, 0x2f0]                               |         r0 = *(0x1d420);
    0x0001d130 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001d134 bl 0x1cd58                                        |         fcn_0001cd58 ();
                                                                 |     }
    0x0001d138 ldr r3, [sb, 0x10]                                |     r3 = *((sb + 0x10));
    0x0001d13c ldr r1, [sp, 0x14]                                |     r1 = var_14h;
    0x0001d140 mov r0, r4                                        |     r0 = r4;
    0x0001d144 blx r3                                            |     r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x0001d148 subs sl, r0, 0                                    |     sl = r0 - 0;
                                                                 |     if (sl == r0) {
    0x0001d14c beq 0x1d184                                       |         goto label_21;
                                                                 |     }
    0x0001d150 mov r1, r6                                        |     r1 = r6;
    0x0001d154 mov r0, r4                                        |     r0 = r4;
    0x0001d158 bl 0xb07c                                         |     fcn_0000b07c (r0, r1);
    0x0001d15c cmp sl, 0                                         |     
                                                                 |     if (sl < 0) {
    0x0001d160 blt 0x1d358                                       |         goto label_22;
                                                                 |     }
                                                                 | label_4:
    0x0001d164 add r7, r7, 1                                     |     r7++;
    0x0001d168 mov r5, sl                                        |     r5 = sl;
    0x0001d16c b 0x1cf74                                         |     goto label_2;
                                                                 | label_17:
    0x0001d170 mov r0, r4                                        |     r0 = r4;
    0x0001d174 bl 0xbc18                                         |     r0 = fcn_0000bc18 (r0);
    0x0001d178 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001d17c beq 0x1d048                                       |         goto label_3;
                                                                 |     }
    0x0001d180 b 0x1d014                                         |     goto label_1;
                                                                 | label_21:
    0x0001d184 ldr r3, [r6, 8]                                   |     r3 = *((r6 + 8));
    0x0001d188 tst r3, 0x20                                      |     
    0x0001d18c bne 0x1d218                                       |     
                                                                 |     while (sl == r0) {
    0x0001d190 mov r0, r4                                        |         r0 = r4;
    0x0001d194 ldr sl, [sb, 4]                                   |         sl = *((sb + 4));
    0x0001d198 bl 0xb3b0                                         |         fcn_0000b3b0 (r0);
    0x0001d19c ldr r3, [r0, 8]                                   |         r3 = *((r0 + 8));
    0x0001d1a0 tst r3, 0x80                                      |         
                                                                 |         if ((r3 & 0x80) != 0) {
    0x0001d1a4 bne 0x1d2a0                                       |             goto label_23;
                                                                 |         }
                                                                 | label_5:
    0x0001d1a8 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x0001d1ac cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0001d1b0 bne 0x1d324                                       |             goto label_24;
                                                                 |         }
                                                                 | label_8:
    0x0001d1b4 ldr r3, [fp]                                      |         r3 = *(fp);
    0x0001d1b8 tst r3, 0x100                                     |         
                                                                 |         if ((r3 & 0x100) != 0) {
    0x0001d1bc beq 0x1d20c                                       |             
    0x0001d1c0 ldr r3, [pc, 0x1f4]                               |             r3 = *(0x1d3b8);
    0x0001d1c4 ldr r3, [r8, r3]                                  |             r3 = *((r8 + r3));
    0x0001d1c8 ldr r4, [r3]                                      |             r4 = *(0x1d3b8);
    0x0001d1cc bl 0x58fc                                         |             getpid ();
    0x0001d1d0 ldr r3, [pc, 0x250]                               |             r3 = *(0x1d424);
    0x0001d1d4 ldr r1, [pc, 0x250]                               |             r1 = *(0x1d428);
    0x0001d1d8 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0001d1dc str r3, [sp]                                      |             *(sp) = r3;
    0x0001d1e0 ldr r3, [pc, 0x248]                               |             r3 = *(0x1d42c);
    0x0001d1e4 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0001d1e8 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0001d1ec mov r2, r0                                        |             r2 = r0;
    0x0001d1f0 mov r0, r4                                        |             r0 = r4;
    0x0001d1f4 bl 0x5c50                                         |             fprintf (r0, r1, r2, r3)
    0x0001d1f8 ldr r0, [pc, 0x234]                               |             r0 = *(0x1d430);
    0x0001d1fc ldr r2, [r6, 0x10]                                |             r2 = *((r6 + 0x10));
    0x0001d200 ldr r1, [sb]                                      |             r1 = *(sb);
    0x0001d204 add r0, pc, r0                                    |             r0 = pc + r0;
                                                                 | label_10:
    0x0001d208 bl 0x1cd58                                        |             fcn_0001cd58 ();
                                                                 |         }
                                                                 | label_9:
    0x0001d20c mov r0, r5                                        |         r0 = r5;
    0x0001d210 add sp, sp, 0x24                                  |         
    0x0001d214 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
    0x0001d218 ldr sl, [sb]                                      |         sl = *(sb);
    0x0001d21c mov r0, sl                                        |         r0 = sl;
    0x0001d220 bl 0x6118                                         |         strlen (r0);
    0x0001d224 ldr r1, [pc, 0x20c]                               |         r1 = *(0x1d434);
    0x0001d228 mov r2, sl                                        |         r2 = sl;
    0x0001d22c add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001d230 add r3, r0, 1                                     |         r3 = r0 + 1;
    0x0001d234 mov r0, r4                                        |         r0 = r4;
    0x0001d238 bl 0xc668                                         |         r0 = fcn_0000c668 (r0, r1);
    0x0001d23c subs sl, r0, 0                                    |         sl = r0 - 0;
    0x0001d240 beq 0x1d190                                       |         
                                                                 |     }
                                                                 | label_6:
    0x0001d244 mov r1, r6                                        |     r1 = r6;
    0x0001d248 mov r0, r4                                        |     r0 = r4;
    0x0001d24c bl 0xb07c                                         |     fcn_0000b07c (r0, r1);
    0x0001d250 ldr r3, [fp]                                      |     r3 = *(fp);
    0x0001d254 tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) == 0) {
    0x0001d258 beq 0x1d164                                       |         goto label_4;
                                                                 |     }
    0x0001d25c ldr r3, [pc, 0x158]                               |     r3 = *(0x1d3b8);
    0x0001d260 ldr r3, [r8, r3]                                  |     r3 = *((r8 + r3));
    0x0001d264 ldr r5, [r3]                                      |     r5 = *(0x1d3b8);
    0x0001d268 bl 0x58fc                                         |     getpid ();
    0x0001d26c ldr r3, [pc, 0x1c8]                               |     r3 = *(0x1d438);
    0x0001d270 ldr r1, [pc, 0x1c8]                               |     r1 = *(0x1d43c);
    0x0001d274 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001d278 str r3, [sp]                                      |     *(sp) = r3;
    0x0001d27c add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001d280 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0001d284 mov r2, r0                                        |     r2 = r0;
    0x0001d288 mov r0, r5                                        |     r0 = r5;
    0x0001d28c bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0001d290 ldr r0, [pc, 0x1ac]                               |     r0 = *(0x1d440);
    0x0001d294 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0001d298 bl 0x1cd58                                        |     fcn_0001cd58 ();
    0x0001d29c b 0x1d164                                         |     goto label_4;
                                                                 | label_23:
    0x0001d2a0 tst sl, 2                                         |     
                                                                 |     if ((sl & 2) != 0) {
    0x0001d2a4 bne 0x1d2f4                                       |         goto label_25;
                                                                 |     }
    0x0001d2a8 tst sl, 4                                         |     
                                                                 |     if ((sl & 4) != 0) {
    0x0001d2ac bne 0x1d300                                       |         goto label_26;
                                                                 |     }
    0x0001d2b0 tst sl, 8                                         |     
                                                                 |     if ((sl & 8) != 0) {
    0x0001d2b4 bne 0x1d30c                                       |         goto label_27;
                                                                 |     }
    0x0001d2b8 tst sl, 0x10                                      |     
                                                                 |     if ((sl & 0x10) != 0) {
    0x0001d2bc bne 0x1d318                                       |         goto label_28;
                                                                 |     }
    0x0001d2c0 ldr sl, [pc, 0x180]                               |     sl = *(0x0001d448);
    0x0001d2c4 add sl, pc, sl                                    |     sl = pc + sl;
                                                                 | label_7:
    0x0001d2c8 mov r0, sl                                        |     r0 = sl;
    0x0001d2cc bl 0x6118                                         |     strlen (r0);
    0x0001d2d0 ldr r1, [pc, 0x174]                               |     r1 = *(0x1d448);
    0x0001d2d4 mov r2, sl                                        |     r2 = sl;
    0x0001d2d8 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001d2dc add r3, r0, 1                                     |     r3 = r0 + 1;
    0x0001d2e0 mov r0, r4                                        |     r0 = r4;
    0x0001d2e4 bl 0xc668                                         |     r0 = fcn_0000c668 (r0, r1);
    0x0001d2e8 subs sl, r0, 0                                    |     sl = r0 - 0;
                                                                 |     if (sl == r0) {
    0x0001d2ec beq 0x1d1a8                                       |         goto label_5;
                                                                 |     }
    0x0001d2f0 b 0x1d244                                         |     goto label_6;
                                                                 | label_25:
    0x0001d2f4 ldr sl, [pc, 0x154]                               |     sl = *(0x1d44c);
    0x0001d2f8 add sl, pc, sl                                    |     sl = pc + sl;
    0x0001d2fc b 0x1d2c8                                         |     goto label_7;
                                                                 | label_26:
    0x0001d300 ldr sl, [pc, 0x14c]                               |     sl = *(0x1d450);
    0x0001d304 add sl, pc, sl                                    |     sl = pc + sl;
    0x0001d308 b 0x1d2c8                                         |     goto label_7;
                                                                 | label_27:
    0x0001d30c ldr sl, [pc, 0x144]                               |     sl = *(0x1d454);
    0x0001d310 add sl, pc, sl                                    |     sl = pc + sl;
    0x0001d314 b 0x1d2c8                                         |     goto label_7;
                                                                 | label_28:
    0x0001d318 ldr sl, [pc, 0x13c]                               |     sl = *(0x1d458);
    0x0001d31c add sl, pc, sl                                    |     sl = pc + sl;
    0x0001d320 b 0x1d2c8                                         |     goto label_7;
                                                                 | label_24:
    0x0001d324 ldr r2, [r3]                                      |     r2 = *(r3);
    0x0001d328 mov r0, r4                                        |     r0 = r4;
    0x0001d32c str r2, [sp, 4]                                   |     var_4h = r2;
    0x0001d330 ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
    0x0001d334 str r3, [sp]                                      |     *(sp) = r3;
    0x0001d338 ldrd r2, r3, [sp, 0x18]                           |     __asm ("ldrd r2, r3, [var_18h]");
    0x0001d33c bl 0xc720                                         |     r0 = fcn_0000c720 (r0, r1, r2);
    0x0001d340 subs sl, r0, 0                                    |     sl = r0 - 0;
                                                                 |     if (sl == r0) {
    0x0001d344 beq 0x1d1b4                                       |         goto label_8;
                                                                 |     }
    0x0001d348 b 0x1d244                                         |     goto label_6;
                                                                 | label_20:
    0x0001d34c mov sl, r5                                        |     sl = r5;
    0x0001d350 b 0x1d164                                         |     goto label_4;
                                                                 | label_19:
    0x0001d354 mov sl, r5                                        |     sl = r5;
                                                                 | label_22:
    0x0001d358 mov r5, sl                                        |     r5 = sl;
                                                                 | label_14:
    0x0001d35c ldr r3, [fp]                                      |     r3 = *(fp);
    0x0001d360 tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) == 0) {
    0x0001d364 beq 0x1d20c                                       |         goto label_9;
                                                                 |     }
    0x0001d368 ldr r3, [pc, 0x4c]                                |     r3 = *(0x1d3b8);
    0x0001d36c ldr r3, [r8, r3]                                  |     r3 = *((r8 + r3));
    0x0001d370 ldr r4, [r3]                                      |     r4 = *(0x1d3b8);
    0x0001d374 bl 0x58fc                                         |     getpid ();
    0x0001d378 ldr r3, [pc, 0xe0]                                |     r3 = *(0x1d45c);
    0x0001d37c ldr r1, [pc, 0xe0]                                |     r1 = *(0x1d460);
    0x0001d380 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001d384 str r3, [sp]                                      |     *(sp) = r3;
    0x0001d388 ldr r3, [pc, 0xd8]                                |     r3 = *(0x1d464);
    0x0001d38c add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001d390 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001d394 mov r2, r0                                        |     r2 = r0;
    0x0001d398 mov r0, r4                                        |     r0 = r4;
    0x0001d39c bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0001d3a0 ldr r0, [pc, 0xc4]                                |     r0 = *(0x1d468);
    0x0001d3a4 ldr r2, [r6, 0x10]                                |     r2 = *((r6 + 0x10));
    0x0001d3a8 mov r1, r5                                        |     r1 = r5;
    0x0001d3ac add r0, pc, r0                                    |     r0 = pc + r0;
    0x0001d3b0 b 0x1d208                                         |     goto label_10;
                                                                 | }
    ; 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 @ 0x1f1e8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0001f1e8 ()                                      | void fcn_0001f1e8 (int32_t arg_0h, int32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_0h_2;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_14h;
                                                                 |     r0 = arg1;
    0x0001f1e8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0001f1ec ldr sb, [pc, 0x1d0]                               |     sb = *(0x1f3c0);
    0x0001f1f0 mov r7, r3                                        |     r7 = r3;
    0x0001f1f4 ldr r3, [pc, 0x1cc]                               |     r3 = *(0x1f3c4);
    0x0001f1f8 add sb, pc, sb                                    |     sb = pc + sb;
    0x0001f1fc ldr fp, [sb, r3]                                  |     fp = *(0x1f3c0);
    0x0001f200 sub sp, sp, 0x14                                  |     
    0x0001f204 ldr r3, [fp]                                      |     r3 = *(0x1f3c0);
    0x0001f208 mov sl, r0                                        |     sl = r0;
    0x0001f20c tst r3, 0x100                                     |     
    0x0001f210 mov r6, r2                                        |     r6 = r2;
    0x0001f214 ldr r8, [sp, 0x38]                                |     r8 = *(arg_0h);
                                                                 |     if ((r3 & 0x100) != 0) {
    0x0001f218 beq 0x1f26c                                       |         
    0x0001f21c ldr r3, [pc, 0x1a8]                               |         r3 = *(0x1f3c8);
    0x0001f220 ldr r3, [sb, r3]                                  |         r3 = *((sb + r3));
    0x0001f224 ldr r4, [r3]                                      |         r4 = *(0x1f3c8);
    0x0001f228 bl 0x58fc                                         |         getpid ();
    0x0001f22c ldr r3, [pc, 0x19c]                               |         r3 = *(0x1f3cc);
    0x0001f230 ldr r1, [pc, 0x19c]                               |         r1 = *(0x1f3d0);
    0x0001f234 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001f238 str r3, [sp]                                      |         *(sp) = r3;
    0x0001f23c ldr r3, [pc, 0x194]                               |         r3 = *(0x1f3d4);
    0x0001f240 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001f244 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0001f248 mov r2, r0                                        |         r2 = r0;
    0x0001f24c mov r0, r4                                        |         r0 = r4;
    0x0001f250 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0001f254 ldr r0, [pc, 0x180]                               |         r0 = *(0x1f3d8);
    0x0001f258 mov r2, r6                                        |         r2 = r6;
    0x0001f25c mov r3, r7                                        |         r3 = r7;
    0x0001f260 mov r1, r8                                        |         r1 = r8;
    0x0001f264 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001f268 bl 0x1f15c                                        |         fcn_0001f15c ();
                                                                 |     }
    0x0001f26c mov r0, sl                                        |     r0 = sl;
    0x0001f270 bl 0xbc0c                                         |     r0 = fcn_0000bc0c (r0);
    0x0001f274 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001f278 movne r1, 0                                       |         r1 = 0;
                                                                 |     }
                                                                 |     if (r0 != 0) {
    0x0001f27c bne 0x1f2b0                                       |         goto label_3;
                                                                 |     }
    0x0001f280 lsr r3, r8, 0x1b                                  |     r3 = r8 >> 0x1b;
    0x0001f284 lsl r2, r8, 5                                     |     r2 = r8 << 5;
    0x0001f288 strd r2, r3, [sp]                                 |     __asm ("strd r2, r3, [sp]");
    0x0001f28c mov r0, sl                                        |     r0 = sl;
    0x0001f290 mov r2, r6                                        |     r2 = r6;
    0x0001f294 mov r3, r7                                        |     r3 = r7;
    0x0001f298 bl 0xbc24                                         |     r0 = fcn_0000bc24 (r0, r1, r2);
    0x0001f29c subs r1, r0, 0                                    |     r1 = r0 - 0;
    0x0001f2a0 bne 0x1f2b0                                       |     
                                                                 |     while (r5 == r8) {
                                                                 | label_0:
    0x0001f2a4 mov r0, 0                                         |         r0 = 0;
                                                                 | label_1:
    0x0001f2a8 add sp, sp, 0x14                                  |         
    0x0001f2ac pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_3:
    0x0001f2b0 mov r5, 0                                         |         r5 = 0;
                                                                 | label_2:
    0x0001f2b4 cmp r5, r8                                        |         
    0x0001f2b8 beq 0x1f2a4                                       |         
                                                                 |     }
    0x0001f2bc cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0001f2c0 addne r4, r1, r5, lsl 5                           |         r4 = r1 + (r5 << 5);
                                                                 |     }
                                                                 |     if (r1 == 0) {
    0x0001f2c4 bne 0x1f2f0                                       |         
    0x0001f2c8 mov r2, 0x20                                      |         r2 = 0x20;
    0x0001f2cc mov r3, 0                                         |         r3 = 0;
    0x0001f2d0 strd r2, r3, [sp]                                 |         __asm ("strd r2, r3, [sp]");
    0x0001f2d4 mov r0, sl                                        |         r0 = sl;
    0x0001f2d8 mov r2, r6                                        |         r2 = r6;
    0x0001f2dc mov r3, r7                                        |         r3 = r7;
    0x0001f2e0 str r1, [sp, 0xc]                                 |         var_ch = r1;
    0x0001f2e4 bl 0xbc24                                         |         fcn_0000bc24 (r0, r1, r2);
    0x0001f2e8 ldr r1, [sp, 0xc]                                 |         r1 = var_ch;
    0x0001f2ec mov r4, r0                                        |         r4 = r0;
                                                                 |     }
    0x0001f2f0 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0001f2f4 beq 0x1f2a4                                       |         goto label_0;
                                                                 |     }
    0x0001f2f8 ldrb r3, [r4]                                     |     r3 = *(r4);
    0x0001f2fc cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001f300 beq 0x1f2a4                                       |         goto label_0;
                                                                 |     }
    0x0001f304 cmp r3, 0xe5                                      |     
                                                                 |     if (r3 != 0xe5) {
    0x0001f308 beq 0x1f3b4                                       |         
    0x0001f30c ldrb r3, [r4, 0x14]                               |         r3 = *((r4 + 0x14));
    0x0001f310 ldrb r2, [r4, 0x15]                               |         r2 = *((r4 + 0x15));
    0x0001f314 orrs r3, r3, r2, lsl 8                            |         r3 |= (r2 << 8);
                                                                 |         if (r3 != r3) {
    0x0001f318 bne 0x1f3b4                                       |             goto label_4;
                                                                 |         }
    0x0001f31c ldrb r3, [r4, 0x1a]                               |         r3 = *((r4 + 0x1a));
    0x0001f320 ldrb r2, [r4, 0x1b]                               |         r2 = *((r4 + 0x1b));
    0x0001f324 orrs r3, r3, r2, lsl 8                            |         r3 |= (r2 << 8);
                                                                 |         if (r3 != r3) {
    0x0001f328 bne 0x1f3b4                                       |             goto label_4;
                                                                 |         }
    0x0001f32c ldrb r3, [r4, 0xb]                                |         r3 = *((r4 + 0xb));
    0x0001f330 and r2, r3, 0x3f                                  |         r2 = r3 & 0x3f;
    0x0001f334 cmp r2, 0xf                                       |         
                                                                 |         if (r2 == 0xf) {
    0x0001f338 beq 0x1f3b4                                       |             goto label_4;
                                                                 |         }
    0x0001f33c and r3, r3, 0x18                                  |         r3 &= 0x18;
    0x0001f340 cmp r3, 8                                         |         
                                                                 |         if (r3 != 8) {
    0x0001f344 bne 0x1f3b4                                       |             goto label_4;
                                                                 |         }
    0x0001f348 ldr r3, [fp]                                      |         r3 = *(fp);
    0x0001f34c tst r3, 0x100                                     |         
                                                                 |         if ((r3 & 0x100) != 0) {
    0x0001f350 beq 0x1f39c                                       |             
    0x0001f354 ldr r3, [pc, 0x70]                                |             r3 = *(0x1f3c8);
    0x0001f358 ldr r3, [sb, r3]                                  |             r3 = *((sb + r3));
    0x0001f35c ldr r6, [r3]                                      |             r6 = *(0x1f3c8);
    0x0001f360 bl 0x58fc                                         |             getpid ();
    0x0001f364 ldr r3, [pc, 0x74]                                |             r3 = *(0x1f3dc);
    0x0001f368 ldr r1, [pc, 0x74]                                |             r1 = *(0x1f3e0);
    0x0001f36c add r3, pc, r3                                    |             r3 = pc + r3;
    0x0001f370 str r3, [sp]                                      |             *(sp) = r3;
    0x0001f374 ldr r3, [pc, 0x6c]                                |             r3 = *(0x1f3e4);
    0x0001f378 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0001f37c add r3, pc, r3                                    |             r3 = pc + r3;
    0x0001f380 mov r2, r0                                        |             r2 = r0;
    0x0001f384 mov r0, r6                                        |             r0 = r6;
    0x0001f388 bl 0x5c50                                         |             fprintf (r0, r1, r2, r3)
    0x0001f38c ldr r0, [pc, 0x58]                                |             r0 = *(0x1f3e8);
    0x0001f390 mov r1, r5                                        |             r1 = r5;
    0x0001f394 add r0, pc, r0                                    |             r0 = pc + r0;
    0x0001f398 bl 0x1f15c                                        |             fcn_0001f15c ();
                                                                 |         }
    0x0001f39c ldrb r3, [r4]                                     |         r3 = *(r4);
    0x0001f3a0 mov r0, r4                                        |         r0 = r4;
    0x0001f3a4 cmp r3, 5                                         |         
                                                                 |         if (r3 != 5) {
    0x0001f3a8 mvneq r3, 0x1a                                    |             r3 = ~0x1a;
                                                                 |         }
                                                                 |         if (r3 != 5) {
    0x0001f3ac strbeq r3, [r4]                                   |             *(r4) = r3;
                                                                 |         }
    0x0001f3b0 b 0x1f2a8                                         |         goto label_1;
                                                                 |     }
                                                                 | label_4:
    0x0001f3b4 adds r6, r6, 0x20                                 |     r6 += 0x20;
    0x0001f3b8 add r5, r5, 1                                     |     r5++;
    0x0001f3bc adc r7, r7, 0                                     |     __asm ("adc r7, r7, 0");
    0x0001f3c0 b 0x1f2b4                                         |     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 @ 0x1f3f0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0001f3f0 ()                                      | void fcn_0001f3f0 (int32_t arg_3ch, int32_t arg1, uint32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_sp_0h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_14h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0001f3f0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0001f3f4 ldr r8, [pc, 0x30c]                               |     r8 = *(0x1f704);
    0x0001f3f8 cmp r1, 2                                         |     
    0x0001f3fc add r8, pc, r8                                    |     r8 = pc + r8;
    0x0001f400 sub sp, sp, 0x14                                  |     
    0x0001f404 mov sl, r0                                        |     sl = r0;
    0x0001f408 mov r4, r2                                        |     r4 = r2;
    0x0001f40c mov r6, r3                                        |     r6 = r3;
                                                                 |     if (r1 > 2) {
    0x0001f410 bhi 0x1f4d0                                       |         goto label_4;
                                                                 |     }
    0x0001f414 ldrb r3, [r2, 0x1fe]                              |     r3 = *((r2 + 0x1fe));
    0x0001f418 cmp r3, 0x55                                      |     
    0x0001f41c beq 0x1f42c                                       |     
                                                                 |     while (r3 != 0xaa) {
                                                                 | label_0:
    0x0001f420 mov r0, 0                                         |         r0 = 0;
                                                                 | label_3:
    0x0001f424 add sp, sp, 0x14                                  |         
    0x0001f428 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
    0x0001f42c ldrb r3, [r2, 0x1ff]                              |         r3 = *((r2 + 0x1ff));
    0x0001f430 cmp r3, 0xaa                                      |         
    0x0001f434 bne 0x1f420                                       |         
                                                                 |     }
    0x0001f438 ldr r1, [pc, 0x2cc]                               |     r1 = *(0x1f708);
    0x0001f43c add r5, r2, 0x36                                  |     r5 = r2 + 0x36;
    0x0001f440 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001f444 mov r2, 8                                         |     r2 = 8;
    0x0001f448 mov r0, r5                                        |     r0 = r5;
    0x0001f44c bl 0x5dc4                                         |     r0 = memcmp (r0, r1, r2);
    0x0001f450 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001f454 beq 0x1f474                                       |         
    0x0001f458 ldr r1, [pc, 0x2b0]                               |         r1 = *(0x1f70c);
    0x0001f45c mov r2, 8                                         |         r2 = 8;
    0x0001f460 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0001f464 mov r0, r5                                        |         r0 = r5;
    0x0001f468 bl 0x5dc4                                         |         r0 = memcmp (r0, r1, r2);
    0x0001f46c cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0001f470 bne 0x1f4d0                                       |             goto label_4;
                                                                 |         }
                                                                 |     }
    0x0001f474 ldr r3, [pc, 0x298]                               |     
    0x0001f478 ldr r3, [r8, r3]                                  |     r3 = *((r8 + r3));
    0x0001f47c ldr r3, [r3]                                      |     r3 = *(0x1f710);
    0x0001f480 tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) == 0) {
    0x0001f484 beq 0x1f420                                       |         goto label_0;
                                                                 |     }
    0x0001f488 ldr r3, [pc, 0x288]                               |     r3 = *(0x1f714);
    0x0001f48c ldr r3, [r8, r3]                                  |     r3 = *((r8 + r3));
    0x0001f490 ldr r4, [r3]                                      |     r4 = *(0x1f714);
    0x0001f494 bl 0x58fc                                         |     getpid ();
    0x0001f498 ldr r3, [pc, 0x27c]                               |     r3 = *(0x1f718);
    0x0001f49c ldr r1, [pc, 0x27c]                               |     r1 = *(0x1f71c);
    0x0001f4a0 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001f4a4 str r3, [sp]                                      |     *(sp) = r3;
    0x0001f4a8 ldr r3, [pc, 0x274]                               |     r3 = *(0x1f720);
    0x0001f4ac add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001f4b0 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001f4b4 mov r2, r0                                        |     r2 = r0;
    0x0001f4b8 mov r0, r4                                        |     r0 = r4;
    0x0001f4bc bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0001f4c0 ldr r0, [pc, 0x260]                               |     r0 = *(0x1f724);
    0x0001f4c4 add r0, pc, r0                                    |     r0 = pc + r0;
                                                                 | label_1:
    0x0001f4c8 bl 0x1f15c                                        |     fcn_0001f15c ();
    0x0001f4cc b 0x1f420                                         |     goto label_0;
                                                                 | label_4:
    0x0001f4d0 ldrb r3, [r4, 0x10]                               |     r3 = *((r4 + 0x10));
    0x0001f4d4 subs sb, r3, 0                                    |     sb = r3 - 0;
                                                                 |     if (sb == r3) {
    0x0001f4d8 beq 0x1f420                                       |         goto label_0;
                                                                 |     }
    0x0001f4dc ldrb r7, [r4, 0xe]                                |     r7 = *((r4 + 0xe));
    0x0001f4e0 ldrb r0, [r4, 0xf]                                |     r0 = *((r4 + 0xf));
    0x0001f4e4 orrs r7, r7, r0, lsl 8                            |     r7 |= (r0 << 8);
                                                                 |     if (r7 == r7) {
    0x0001f4e8 beq 0x1f420                                       |         goto label_0;
                                                                 |     }
    0x0001f4ec ldrb r3, [r4, 0x15]                               |     r3 = *((r4 + 0x15));
    0x0001f4f0 cmp r3, 0xf7                                      |     
                                                                 |     if (r3 <= 0xf7) {
    0x0001f4f4 movhi r2, 0                                       |         r2 = 0;
                                                                 |     }
                                                                 |     if (r3 > 0xf7) {
    0x0001f4f8 movls r2, 1                                       |         r2 = 1;
                                                                 |     }
    0x0001f4fc cmp r3, 0xf0                                      |     
                                                                 |     if (r3 != 0xf0) {
    0x0001f500 moveq r2, 0                                       |         r2 = 0;
                                                                 |     }
    0x0001f504 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x0001f508 bne 0x1f420                                       |         goto label_0;
                                                                 |     }
    0x0001f50c ldrb r2, [r4, 0xd]                                |     r2 = *((r4 + 0xd));
    0x0001f510 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0001f514 beq 0x1f420                                       |         goto label_0;
                                                                 |     }
    0x0001f518 sub r3, r2, 1                                     |     r3 = r2 - 1;
    0x0001f51c tst r3, r2                                        |     
                                                                 |     if ((r3 & r2) != 0) {
    0x0001f520 bne 0x1f420                                       |         goto label_0;
                                                                 |     }
    0x0001f524 ldrb r3, [r4, 0xc]                                |     r3 = *((r4 + 0xc));
    0x0001f528 ldrb r1, [r4, 0xb]                                |     r1 = *((r4 + 0xb));
    0x0001f52c add r1, r1, r3, lsl 8                             |     r1 += (r3 << 8);
    0x0001f530 lsl r1, r1, 0x10                                  |     r1 <<= 0x10;
    0x0001f534 lsr r1, r1, 0x10                                  |     r1 >>= 0x10;
    0x0001f538 sub r3, r1, 0x200                                 |     r3 = r1 - 0x200;
    0x0001f53c cmp r3, 0xe00                                     |     
                                                                 |     if (r3 > 0xe00) {
    0x0001f540 bhi 0x1f420                                       |         goto label_0;
                                                                 |     }
    0x0001f544 sub lr, r1, 1                                     |     lr = r1 - 1;
    0x0001f548 tst r1, lr                                        |     
                                                                 |     if ((r1 & lr) != 0) {
    0x0001f54c bne 0x1f420                                       |         goto label_0;
                                                                 |     }
    0x0001f550 ldrb r0, [r4, 0x14]                               |     r0 = *((r4 + 0x14));
    0x0001f554 ldrb r5, [r4, 0x13]                               |     r5 = *((r4 + 0x13));
    0x0001f558 adds r5, r5, r0, lsl 8                            |     r5 += (r0 << 8);
                                                                 |     if (r5 == r5) {
    0x0001f55c bne 0x1f57c                                       |         
    0x0001f560 ldrb r0, [r4, 0x21]                               |         r0 = *((r4 + 0x21));
    0x0001f564 ldrb r5, [r4, 0x20]                               |         r5 = *((r4 + 0x20));
    0x0001f568 orr r5, r5, r0, lsl 8                             |         r5 |= (r0 << 8);
    0x0001f56c ldrb r0, [r4, 0x22]                               |         r0 = *((r4 + 0x22));
    0x0001f570 orr r5, r5, r0, lsl 16                            |         r5 |= (r0 << 16);
    0x0001f574 ldrb r0, [r4, 0x23]                               |         r0 = *((r4 + 0x23));
    0x0001f578 orr r5, r5, r0, lsl 24                            |         r5 |= (r0 << 24);
                                                                 |     }
    0x0001f57c ldrb r3, [r4, 0x16]                               |     r3 = *((r4 + 0x16));
    0x0001f580 ldrb r0, [r4, 0x17]                               |     r0 = *((r4 + 0x17));
    0x0001f584 orr fp, r3, r0, lsl 8                             |     
    0x0001f588 subs ip, fp, 0                                    |     
                                                                 |     if (ip == var_0h) {
    0x0001f58c bne 0x1f5ac                                       |         
    0x0001f590 ldrb r0, [r6, 0x25]                               |         r0 = *((r6 + 0x25));
    0x0001f594 ldrb ip, [r6, 0x24]                               |         ip = *((r6 + 0x24));
    0x0001f598 orr ip, ip, r0, lsl 8                             |         
    0x0001f59c ldrb r0, [r6, 0x26]                               |         r0 = *((r6 + 0x26));
    0x0001f5a0 orr ip, ip, r0, lsl 16                            |         
    0x0001f5a4 ldrb r0, [r6, 0x27]                               |         r0 = *((r6 + 0x27));
    0x0001f5a8 orr ip, ip, r0, lsl 24                            |         
                                                                 |     }
    0x0001f5ac mul sb, ip, sb                                    |     sb = ip * sb;
    0x0001f5b0 ldrb r0, [r4, 0x11]                               |     r0 = *((r4 + 0x11));
    0x0001f5b4 ldrb ip, [r4, 0x12]                               |     ip = *((r4 + 0x12));
    0x0001f5b8 str r2, [sp, 0xc]                                 |     var_ch = r2;
    0x0001f5bc add r0, r0, ip, lsl 8                             |     r0 += (ip << 8);
    0x0001f5c0 lsl r0, r0, 0x10                                  |     r0 <<= 0x10;
    0x0001f5c4 lsr r0, r0, 0x10                                  |     r0 >>= 0x10;
    0x0001f5c8 add r0, lr, r0, lsl 5                             |     r0 = lr + (r0 << 5);
    0x0001f5cc bl 0x35ff4                                        |     fcn_00035ff4 (r0, r1);
    0x0001f5d0 ldr r2, [sp, 0xc]                                 |     r2 = var_ch;
    0x0001f5d4 mov r1, r2                                        |     r1 = r2;
    0x0001f5d8 add r0, r0, r7                                    |     r0 += r7;
    0x0001f5dc sub r0, r5, r0                                    |     r0 = r5 - r0;
    0x0001f5e0 sub r0, r0, sb                                    |     r0 -= sb;
    0x0001f5e4 bl 0x35ff4                                        |     fcn_00035ff4 (r0, r1);
    0x0001f5e8 cmp fp, 0                                         |     
                                                                 |     if (fp == 0) {
    0x0001f5ec bne 0x1f610                                       |         
    0x0001f5f0 ldrb r2, [r6, 0x25]                               |         r2 = *((r6 + 0x25));
    0x0001f5f4 ldrb r3, [r6, 0x24]                               |         r3 = *((r6 + 0x24));
    0x0001f5f8 orr r3, r3, r2, lsl 8                             |         r3 |= (r2 << 8);
    0x0001f5fc ldrb r2, [r6, 0x26]                               |         r2 = *((r6 + 0x26));
    0x0001f600 orr r3, r3, r2, lsl 16                            |         r3 |= (r2 << 16);
    0x0001f604 ldrb r2, [r6, 0x27]                               |         r2 = *((r6 + 0x27));
    0x0001f608 orrs r3, r3, r2, lsl 24                           |         r3 |= (r2 << 24);
                                                                 |         if (r3 != r3) {
    0x0001f60c bne 0x1f6e4                                       |             goto label_5;
                                                                 |         }
                                                                 |     }
    0x0001f610 ldr r3, [pc, 0x114]                               |     r3 = *(0x1f728);
    0x0001f614 cmp r0, r3                                        |     
                                                                 |     if (r0 <= r3) {
    0x0001f618 addhi r3, r3, 0xf000                              |         r3 += 0xf000;
                                                                 |     }
                                                                 |     if (r0 > r3) {
    0x0001f61c bhi 0x1f6e8                                       |         goto label_6;
                                                                 |     }
                                                                 | label_2:
    0x0001f620 ldr r3, [sp, 0x3c]                                |     r3 = *(arg_3ch);
    0x0001f624 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001f628 strne sb, [r3]                                    |         *(r3) = sb;
                                                                 |     }
    0x0001f62c ldr r3, [sp, 0x38]                                |     r3 = var_0h;
    0x0001f630 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001f634 strne r0, [r3]                                    |         *(r3) = r0;
                                                                 |     }
    0x0001f638 mov r0, sl                                        |     r0 = sl;
    0x0001f63c bl 0x5b24                                         |     r0 = fcn_00005b24 ();
    0x0001f640 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001f644 beq 0x1f6f4                                       |         goto label_7;
                                                                 |     }
    0x0001f648 ldrb r3, [r4, 0x1fe]                              |     r3 = *((r4 + 0x1fe));
    0x0001f64c cmp r3, 0x55                                      |     
                                                                 |     if (r3 != 0x55) {
    0x0001f650 bne 0x1f6f4                                       |         goto label_7;
                                                                 |     }
    0x0001f654 ldrb r3, [r4, 0x1ff]                              |     r3 = *((r4 + 0x1ff));
    0x0001f658 cmp r3, 0xaa                                      |     
                                                                 |     if (r3 != 0xaa) {
    0x0001f65c bne 0x1f6f4                                       |         goto label_7;
                                                                 |     }
    0x0001f660 ldrb r2, [r4, 0x1cb]                              |     r2 = *((r4 + 0x1cb));
    0x0001f664 ldrb r3, [r4, 0x1ca]                              |     r3 = *((r4 + 0x1ca));
    0x0001f668 orr r3, r3, r2, lsl 8                             |     r3 |= (r2 << 8);
    0x0001f66c ldrb r2, [r4, 0x1cc]                              |     r2 = *((r4 + 0x1cc));
    0x0001f670 orr r3, r3, r2, lsl 16                            |     r3 |= (r2 << 16);
    0x0001f674 ldrb r2, [r4, 0x1cd]                              |     r2 = *((r4 + 0x1cd));
    0x0001f678 orrs r3, r3, r2, lsl 24                           |     r3 |= (r2 << 24);
                                                                 |     if (r3 == r3) {
    0x0001f67c beq 0x1f6f4                                       |         goto label_7;
                                                                 |     }
    0x0001f680 ldrb r0, [r4, 0x1be]                              |     r0 = *((r4 + 0x1be));
    0x0001f684 ands r4, r0, 0x7f                                 |     r4 = r0 & 0x7f;
                                                                 |     if (r4 != r0) {
    0x0001f688 bne 0x1f6f4                                       |         goto label_7;
                                                                 |     }
    0x0001f68c ldr r3, [pc, 0x80]                                |     
    0x0001f690 ldr r3, [r8, r3]                                  |     r3 = *((r8 + r3));
    0x0001f694 ldr r3, [r3]                                      |     r3 = *(0x1f710);
    0x0001f698 tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) == 0) {
    0x0001f69c beq 0x1f420                                       |         goto label_0;
                                                                 |     }
    0x0001f6a0 ldr r3, [pc, 0x70]                                |     r3 = *(0x1f714);
    0x0001f6a4 ldr r3, [r8, r3]                                  |     r3 = *((r8 + r3));
    0x0001f6a8 ldr r5, [r3]                                      |     r5 = *(0x1f714);
    0x0001f6ac bl 0x58fc                                         |     getpid ();
    0x0001f6b0 ldr r3, [pc, 0x78]                                |     r3 = *(0x1f72c);
    0x0001f6b4 ldr r1, [pc, 0x78]                                |     r1 = *(0x1f730);
    0x0001f6b8 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001f6bc str r3, [sp]                                      |     *(sp) = r3;
    0x0001f6c0 ldr r3, [pc, 0x70]                                |     r3 = *(0x1f734);
    0x0001f6c4 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0001f6c8 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0001f6cc mov r2, r0                                        |     r2 = r0;
    0x0001f6d0 mov r0, r5                                        |     r0 = r5;
    0x0001f6d4 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0001f6d8 ldr r0, [pc, 0x5c]                                |     r0 = *(0x1f738);
    0x0001f6dc add r0, pc, r0                                    |     r0 = pc + r0;
    0x0001f6e0 b 0x1f4c8                                         |     goto label_1;
                                                                 | label_5:
    0x0001f6e4 mvn r3, 0xf0000009                                |     r3 = ~0xf0000009;
                                                                 | label_6:
    0x0001f6e8 cmp r0, r3                                        |     
                                                                 |     if (r0 > r3) {
    0x0001f6ec bhi 0x1f420                                       |         goto label_0;
                                                                 |     }
    0x0001f6f0 b 0x1f620                                         |     goto label_2;
                                                                 | label_7:
    0x0001f6f4 mov r0, sl                                        |     r0 = sl;
    0x0001f6f8 bl 0x18498                                        |     r0 = fcn_00018498 (r0);
    0x0001f6fc clz r0, r0                                        |     r0 &= r0;
    0x0001f700 lsr r0, r0, 5                                     |     r0 >>= 5;
    0x0001f704 b 0x1f424                                         |     goto label_3;
                                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x2d0b4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0002d0b4 ()                      | void fcn_0002d0b4 (int32_t arg1) {
                                                 |     int32_t var_4h;
                                                 |     int32_t var_ch;
                                                 |     char * format;
                                                 |     int32_t var_18h;
                                                 |     r0 = arg1;
    0x0002d0b4 push {r1, r2, r3}                 |     
    0x0002d0b8 ldr r3, [pc, 0xa4]                |     r3 = *(0x2d160);
    0x0002d0bc push {r0, r1, r2, r4, lr}         |     
    0x0002d0c0 ldr r1, [pc, 0xa0]                |     r1 = *(0x2d164);
    0x0002d0c4 add r3, pc, r3                    |     r3 = pc + r3;
    0x0002d0c8 subs r2, r0, 0                    |     r2 = r0 - 0;
    0x0002d0cc ldr r4, [r3, r1]                  |     r4 = *(0x2d160);
                                                 |     if (r2 != r0) {
    0x0002d0d0 beq 0x2d0f8                       |         
    0x0002d0d4 ldr r3, [pc, 0x90]                |         
    0x0002d0d8 add r3, pc, r3                    |         r3 = pc + r3;
    0x0002d0dc ldr r3, [r3]                      |         r3 = *(0x2d168);
    0x0002d0e0 tst r3, 0x1000000                 |         
                                                 |         if ((r3 & 0x1000000) != 0) {
    0x0002d0e4 bne 0x2d0f8                       |             goto label_1;
                                                 |         }
    0x0002d0e8 ldr r1, [pc, 0x80]                |         r1 = *(0x2d16c);
    0x0002d0ec ldr r0, [r4]                      |         r0 = *(r4);
    0x0002d0f0 add r1, pc, r1                    |         r1 = pc + r1;
    0x0002d0f4 bl 0x5c50                         |         fprintf (r0, r1)
                                                 |     }
                                                 | label_1:
    0x0002d0f8 add r2, sp, 0x18                  |     r2 += var_18h;
    0x0002d0fc ldr r1, [sp, 0x14]                |     r1 = format;
    0x0002d100 ldr r0, [r4]                      |     r0 = *(r4);
    0x0002d104 str r2, [sp, 4]                   |     var_4h = r2;
    0x0002d108 bl 0x61f0                         |     vfprintf (r0, r1, r2)
    0x0002d10c ldr r1, [r4]                      |     r1 = *(r4);
    0x0002d110 ldr r3, [r1, 0x34]                |     r3 = *((r1 + 0x34));
    0x0002d114 cmp r3, 0                         |     
                                                 |     if (r3 == 0) {
    0x0002d118 beq 0x2d158                       |         goto label_2;
                                                 |     }
    0x0002d11c ldr r3, [r1, 0x10]                |     r3 = *((r1 + 0x10));
    0x0002d120 ldr r2, [r1, 0x1c]                |     r2 = *((r1 + 0x1c));
    0x0002d124 cmp r3, r2                        |     
                                                 |     if (r3 >= r2) {
    0x0002d128 bhs 0x2d14c                       |         goto label_3;
                                                 |     }
    0x0002d12c add r2, r3, 1                     |     r2 = r3 + 1;
    0x0002d130 str r2, [r1, 0x10]                |     *((r1 + 0x10)) = r2;
    0x0002d134 mov r2, 0xa                       |     r2 = 0xa;
    0x0002d138 strb r2, [r3]                     |     *(r3) = r2;
                                                 |     do {
                                                 | label_0:
    0x0002d13c add sp, sp, 0xc                   |         
    0x0002d140 pop {r4, lr}                      |         
    0x0002d144 add sp, sp, 0xc                   |         
    0x0002d148 bx lr                             |         return;
                                                 | label_3:
    0x0002d14c mov r0, 0xa                       |         r0 = 0xa;
    0x0002d150 bl 0x622c                         |         fputc_unlocked ();
    0x0002d154 b 0x2d13c                         |         
                                                 |     } while (1);
                                                 | label_2:
    0x0002d158 mov r0, 0xa                       |     r0 = 0xa;
    0x0002d15c bl 0x5ff8                         |     fputc (r0, r1);
    0x0002d160 b 0x2d13c                         |     goto label_0;
                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x2d174 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0002d174 ()                          | void fcn_0002d174 (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_8h;
                                                     |     r0 = arg1;
    0x0002d174 push {r0, r1, r4, r5, r6, lr}         |     
    0x0002d178 ldr r6, [pc, 0x124]                   |     r6 = *(0x2d2a0);
    0x0002d17c subs r4, r0, 0                        |     r4 = r0 - 0;
    0x0002d180 add r6, pc, r6                        |     r6 = pc + r6;
    0x0002d184 bne 0x2d198                           |     
                                                     |     while (r3 == 0) {
                                                     | label_0:
    0x0002d188 mov r5, 0                             |         r5 = 0;
                                                     | label_1:
    0x0002d18c mov r0, r5                            |         r0 = r5;
    0x0002d190 add sp, sp, 8                         |         
    0x0002d194 pop {r4, r5, r6, pc}                  |         
    0x0002d198 ldrsb r3, [r4]                        |         r3 = *(r4);
    0x0002d19c cmp r3, 0                             |         
    0x0002d1a0 beq 0x2d188                           |         
                                                     |     }
    0x0002d1a4 ldr r3, [r4, 0x8c]                    |     r3 = *((r4 + 0x8c));
    0x0002d1a8 tst r3, 0x20                          |     
                                                     |     if ((r3 & 0x20) != 0) {
    0x0002d1ac bne 0x2d188                           |         goto label_0;
                                                     |     }
    0x0002d1b0 ldr r5, [r4, 0x94]                    |     r5 = *((r4 + 0x94));
    0x0002d1b4 cmp r5, 0                             |     
                                                     |     if (r5 != 0) {
    0x0002d1b8 bne 0x2d29c                           |         goto label_2;
                                                     |     }
    0x0002d1bc bl 0x35be0                            |     r0 = fcn_00035be0 (r0);
    0x0002d1c0 orrs r3, r0, r1                       |     r3 = r0 | r1;
                                                     |     if (r3 != r0) {
    0x0002d1c4 bne 0x2d228                           |         goto label_3;
                                                     |     }
    0x0002d1c8 ldr r3, [pc, 0xd8]                    |     
    0x0002d1cc add r3, pc, r3                        |     r3 = pc + r3;
    0x0002d1d0 ldr r3, [r3]                          |     r3 = *(0x2d2a4);
    0x0002d1d4 tst r3, 4                             |     
                                                     |     if ((r3 & 4) == 0) {
    0x0002d1d8 beq 0x2d188                           |         goto label_0;
                                                     |     }
    0x0002d1dc ldr r3, [pc, 0xc8]                    |     r3 = *(0x2d2a8);
    0x0002d1e0 ldr r3, [r6, r3]                      |     r3 = *((r6 + r3));
    0x0002d1e4 ldr r6, [r3]                          |     r6 = *(0x2d2a8);
    0x0002d1e8 bl 0x58fc                             |     getpid ();
    0x0002d1ec ldr r3, [pc, 0xbc]                    |     r3 = *(0x2d2ac);
    0x0002d1f0 ldr r1, [pc, 0xbc]                    |     r1 = *(0x2d2b0);
    0x0002d1f4 add r3, pc, r3                        |     r3 = pc + r3;
    0x0002d1f8 str r3, [sp]                          |     *(sp) = r3;
    0x0002d1fc ldr r3, [pc, 0xb4]                    |     r3 = *(0x2d2b4);
    0x0002d200 add r1, pc, r1                        |     r1 = pc + r1;
    0x0002d204 add r3, pc, r3                        |     r3 = pc + r3;
    0x0002d208 mov r2, r0                            |     r2 = r0;
    0x0002d20c mov r0, r6                            |     r0 = r6;
    0x0002d210 bl 0x5c50                             |     fprintf (r0, r1, r2, r3)
    0x0002d214 ldr r1, [pc, 0xa0]                    |     r1 = *(0x2d2b8);
    0x0002d218 mov r0, r4                            |     r0 = r4;
    0x0002d21c add r1, pc, r1                        |     r1 = pc + r1;
    0x0002d220 bl 0x2d0b4                            |     fcn_0002d0b4 (r0);
    0x0002d224 b 0x2d18c                             |     goto label_1;
                                                     | label_3:
    0x0002d228 mov r3, r5                            |     r3 = r5;
    0x0002d22c mov r2, r5                            |     r2 = r5;
    0x0002d230 bl 0x34cb8                            |     r0 = fcn_00034cb8 (r0, r1);
    0x0002d234 cmp r0, 0                             |     
    0x0002d238 str r0, [r4, 0x94]                    |     *((r4 + 0x94)) = r0;
                                                     |     if (r0 == 0) {
    0x0002d23c bne 0x2d29c                           |         
    0x0002d240 ldr r3, [pc, 0x78]                    |         
    0x0002d244 add r3, pc, r3                        |         r3 = pc + r3;
    0x0002d248 ldr r3, [r3]                          |         r3 = *(0x2d2bc);
    0x0002d24c tst r3, 4                             |         
                                                     |         if ((r3 & 4) == 0) {
    0x0002d250 beq 0x2d29c                           |             goto label_2;
                                                     |         }
    0x0002d254 ldr r3, [pc, 0x50]                    |         r3 = *(0x2d2a8);
    0x0002d258 ldr r3, [r6, r3]                      |         r3 = *((r6 + r3));
    0x0002d25c ldr r5, [r3]                          |         r5 = *(0x2d2a8);
    0x0002d260 bl 0x58fc                             |         getpid ();
    0x0002d264 ldr r3, [pc, 0x58]                    |         r3 = *(0x2d2c0);
    0x0002d268 ldr r1, [pc, 0x58]                    |         r1 = *(0x2d2c4);
    0x0002d26c add r3, pc, r3                        |         r3 = pc + r3;
    0x0002d270 str r3, [sp]                          |         *(sp) = r3;
    0x0002d274 ldr r3, [pc, 0x50]                    |         r3 = *(0x2d2c8);
    0x0002d278 add r1, pc, r1                        |         r1 = pc + r1;
    0x0002d27c add r3, pc, r3                        |         r3 = pc + r3;
    0x0002d280 mov r2, r0                            |         r2 = r0;
    0x0002d284 mov r0, r5                            |         r0 = r5;
    0x0002d288 bl 0x5c50                             |         fprintf (r0, r1, r2, r3)
    0x0002d28c ldr r1, [pc, 0x3c]                    |         r1 = *(0x2d2cc);
    0x0002d290 mov r0, r4                            |         r0 = r4;
    0x0002d294 add r1, pc, r1                        |         r1 = pc + r1;
    0x0002d298 bl 0x2d0b4                            |         fcn_0002d0b4 (r0);
                                                     |     }
                                                     | label_2:
    0x0002d29c ldr r5, [r4, 0x94]                    |     r5 = *((r4 + 0x94));
    0x0002d2a0 b 0x2d18c                             |     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 @ 0x2d368 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0002d368 ()                                      | void fcn_0002d368 (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     char * s2;
                                                                 |     int32_t var_10h;
                                                                 |     char * * endptr;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_1ch;
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_24h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0002d368 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0002d36c ldr r3, [pc, 0x23c]                               |     r3 = *(0x2d5ac);
    0x0002d370 mov sb, r2                                        |     sb = r2;
    0x0002d374 ldr r2, [pc, 0x238]                               |     
    0x0002d378 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0002d37c add r2, pc, r2                                    |     r2 = pc + r2;
    0x0002d380 ldr r2, [r2]                                      |     r2 = *(0x2d5b0);
    0x0002d384 sub sp, sp, 0x24                                  |     
    0x0002d388 tst r2, 8                                         |     
    0x0002d38c mov r4, r0                                        |     r4 = r0;
    0x0002d390 mov r5, r1                                        |     r5 = r1;
                                                                 |     if ((r2 & 8) != 0) {
    0x0002d394 beq 0x2d3e0                                       |         
    0x0002d398 ldr r2, [pc, 0x218]                               |         r2 = *(0x2d5b4);
    0x0002d39c ldr r3, [r3, r2]                                  |         r3 = *((r3 + r2));
    0x0002d3a0 ldr r6, [r3]                                      |         r6 = *(r3);
    0x0002d3a4 bl 0x58fc                                         |         getpid ();
    0x0002d3a8 ldr r3, [pc, 0x20c]                               |         r3 = *(0x2d5b8);
    0x0002d3ac ldr r1, [pc, 0x20c]                               |         r1 = *(0x2d5bc);
    0x0002d3b0 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0002d3b4 str r3, [sp]                                      |         *(sp) = r3;
    0x0002d3b8 ldr r3, [pc, 0x204]                               |         r3 = *(0x2d5c0);
    0x0002d3bc add r1, pc, r1                                    |         r1 = pc + r1;
    0x0002d3c0 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0002d3c4 mov r2, r0                                        |         r2 = r0;
    0x0002d3c8 mov r0, r6                                        |         r0 = r6;
    0x0002d3cc bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0002d3d0 ldr r0, [pc, 0x1f0]                               |         r0 = *(0x2d5c4);
    0x0002d3d4 mov r1, r4                                        |         r1 = r4;
    0x0002d3d8 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0002d3dc bl 0x2d2d4                                        |         fcn_0002d2d4 ();
                                                                 |     }
    0x0002d3e0 mov r0, r4                                        |     r0 = r4;
    0x0002d3e4 bl 0x5ec0                                         |     opendir ();
    0x0002d3e8 mov r7, 0                                         |     r7 = 0;
    0x0002d3ec subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 != r0) {
    0x0002d3f0 moveq r0, r4                                      |         r0 = r4;
                                                                 |     }
                                                                 |     if (r4 == r0) {
    0x0002d3f4 beq 0x2d52c                                       |         goto label_2;
                                                                 |     }
    0x0002d3f8 ldr r0, [r5]                                      |     r0 = *(r5);
    0x0002d3fc bl 0x6220                                         |     free (r0);
    0x0002d400 ldr sl, [pc, 0x1c4]                               |     sl = *(0x0002d5cc);
    0x0002d404 ldr r3, [pc, 0x1c4]                               |     r3 = *(0x2d5cc);
    0x0002d408 ldr fp, [pc, 0x1c4]                               |     fp = *(0x2d5d0);
    0x0002d40c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0002d410 mov r8, r7                                        |     r8 = r7;
    0x0002d414 add sl, pc, sl                                    |     sl = pc + sl;
    0x0002d418 add fp, pc, fp                                    |     
    0x0002d41c str r7, [r5]                                      |     *(r5) = r7;
    0x0002d420 str r3, [sp, 0xc]                                 |     s2 = r3;
                                                                 |     do {
                                                                 | label_0:
    0x0002d424 mov r0, r4                                        |         r0 = r4;
    0x0002d428 bl 0x5dac                                         |         r0 = readdir64 ();
    0x0002d42c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0002d430 bne 0x2d46c                                       |             
    0x0002d434 cmp r8, 0                                         |             
                                                                 |             if (r8 != 0) {
    0x0002d438 beq 0x2d45c                                       |                 
    0x0002d43c ldr r0, [r5]                                      |                 r0 = *(r5);
    0x0002d440 cmp r0, 0                                         |                 
                                                                 |                 if (r0 == 0) {
    0x0002d444 beq 0x2d45c                                       |                     goto label_3;
                                                                 |                 }
    0x0002d448 ldr r3, [pc, 0x188]                               |                 r3 = *(0x2d5d4);
    0x0002d44c mov r2, 4                                         |                 r2 = 4;
    0x0002d450 add r3, pc, r3                                    |                 r3 = pc + r3;
    0x0002d454 mov r1, r8                                        |                 r1 = r8;
    0x0002d458 bl 0x5908                                         |                 qsort ();
                                                                 |             }
                                                                 | label_3:
    0x0002d45c mov r0, r4                                        |             r0 = r4;
    0x0002d460 bl 0x6184                                         |             closedir ();
    0x0002d464 mov r0, r8                                        |             r0 = r8;
    0x0002d468 b 0x2d52c                                         |             goto label_2;
                                                                 |         }
    0x0002d46c ldrb r2, [r0, 0x12]                               |         r2 = *((r0 + 0x12));
    0x0002d470 sub r3, r2, 6                                     |         r3 = r2 - 6;
    0x0002d474 tst r3, 0xfb                                      |         
                                                                 |         if ((r3 & 0xfb) == 0) {
    0x0002d478 movne r3, 1                                       |             r3 = 1;
                                                                 |         }
                                                                 |         if ((r3 & 0xfb) != 0) {
    0x0002d47c moveq r3, 0                                       |             r3 = 0;
                                                                 |         }
    0x0002d480 cmp r2, 0                                         |         
                                                                 |         if (r2 != 0) {
    0x0002d484 moveq r3, 0                                       |             r3 = 0;
                                                                 |         }
    0x0002d488 cmp r3, 0                                         |         
    0x0002d48c bne 0x2d424                                       |         
                                                                 |     } while (r3 != 0);
    0x0002d490 add r6, r0, 0x13                                  |     r6 = r0 + 0x13;
    0x0002d494 ldr r1, [sp, 0xc]                                 |     r1 = s2;
    0x0002d498 mov r0, r6                                        |     r0 = r6;
    0x0002d49c bl 0x5efc                                         |     r0 = strcmp (r0, r1);
    0x0002d4a0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002d4a4 beq 0x2d424                                       |         goto label_0;
                                                                 |     }
    0x0002d4a8 mov r1, sl                                        |     r1 = sl;
    0x0002d4ac mov r0, r6                                        |     r0 = r6;
    0x0002d4b0 bl 0x5efc                                         |     r0 = strcmp (r0, r1);
    0x0002d4b4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002d4b8 beq 0x2d424                                       |         goto label_0;
                                                                 |     }
    0x0002d4bc cmp sb, 0                                         |     
                                                                 |     if (sb == 0) {
    0x0002d4c0 beq 0x2d534                                       |         goto label_4;
                                                                 |     }
    0x0002d4c4 add r2, sp, 0x18                                  |     r2 += var_18h;
    0x0002d4c8 mov r1, fp                                        |     r1 = fp;
    0x0002d4cc mov r0, r6                                        |     r0 = r6;
    0x0002d4d0 bl 0x5df4                                         |     r0 = sscanf (r0, r1, r2);
    0x0002d4d4 cmp r0, 1                                         |     
                                                                 |     if (r0 != 1) {
                                                                 | label_1:
    0x0002d4d8 bne 0x2d424                                       |         goto label_0;
                                                                 |     }
    0x0002d4dc ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x0002d4e0 cmp r3, 7                                         |     
                                                                 |     if (r3 < 7) {
    0x0002d4e4 bls 0x2d424                                       |         goto label_0;
                                                                 |     }
    0x0002d4e8 add r6, r8, 1                                     |     r6 = r8 + 1;
    0x0002d4ec cmp r6, r7                                        |     
                                                                 |     if (r6 < r7) {
    0x0002d4f0 bls 0x2d598                                       |         goto label_5;
                                                                 |     }
    0x0002d4f4 add r7, r7, 1                                     |     r7++;
    0x0002d4f8 lsl r1, r7, 2                                     |     r1 = r7 << 2;
    0x0002d4fc ldr r0, [r5]                                      |     r0 = *(r5);
    0x0002d500 bl 0x5d7c                                         |     r0 = realloc (r0, r1);
    0x0002d504 subs r3, r0, 0                                    |     r3 = r0 - 0;
                                                                 |     if (r3 != r0) {
    0x0002d508 bne 0x2d594                                       |         goto label_6;
                                                                 |     }
    0x0002d50c ldr r0, [r5]                                      |     r0 = *(r5);
    0x0002d510 str r3, [sp, 0xc]                                 |     s2 = r3;
    0x0002d514 bl 0x6220                                         |     free (r0);
    0x0002d518 ldr r3, [sp, 0xc]                                 |     r3 = s2;
    0x0002d51c mov r0, r4                                        |     r0 = r4;
    0x0002d520 str r3, [r5]                                      |     *(r5) = r3;
    0x0002d524 bl 0x6184                                         |     closedir ();
    0x0002d528 mvn r0, 0                                         |     r0 = ~0;
                                                                 | label_2:
    0x0002d52c add sp, sp, 0x24                                  |     
    0x0002d530 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |     
                                                                 | label_4:
    0x0002d534 add r1, sp, 0x20                                  |     r1 += var_20h;
    0x0002d538 str sb, [r1, -4]!                                 |     *((r1 -= 4)) = sb;
    0x0002d53c str r1, [sp, 0x14]                                |     endptr = r1;
    0x0002d540 str r1, [sp, 0x10]                                |     var_10h = r1;
    0x0002d544 bl 0x60ac                                         |     errno_location ();
    0x0002d548 mov r2, 0xa                                       |     r2 = 0xa;
    0x0002d54c ldr r1, [sp, 0x14]                                |     r1 = endptr;
    0x0002d550 str sb, [r0]                                      |     *(r0) = sb;
    0x0002d554 str r0, [sp, 0x10]                                |     var_10h = r0;
    0x0002d558 mov r0, r6                                        |     r0 = r6;
    0x0002d55c bl 0x5b60                                         |     strtol (r0, r1, r2);
    0x0002d560 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x0002d564 cmp r6, r2                                        |     
    0x0002d568 str r0, [sp, 0x18]                                |     var_18h = r0;
                                                                 |     if (r6 == r2) {
    0x0002d56c beq 0x2d424                                       |         goto label_0;
                                                                 |     }
    0x0002d570 cmp r2, 0                                         |     
    0x0002d574 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
                                                                 |     if (r2 == 0) {
    0x0002d578 beq 0x2d588                                       |         goto label_7;
                                                                 |     }
    0x0002d57c ldrsb r2, [r2]                                    |     r2 = *(r2);
    0x0002d580 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x0002d584 bne 0x2d424                                       |         goto label_0;
                                                                 |     }
                                                                 | label_7:
    0x0002d588 ldr r3, [r3]                                      |     r3 = *(r3);
    0x0002d58c cmp r3, 0                                         |     
    0x0002d590 b 0x2d4d8                                         |     goto label_1;
                                                                 | label_6:
    0x0002d594 str r3, [r5]                                      |     *(r5) = r3;
                                                                 | label_5:
    0x0002d598 ldr r3, [r5]                                      |     r3 = *(r5);
    0x0002d59c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0002d5a0 ldrne r2, [sp, 0x18]                              |         r2 = var_18h;
                                                                 |     }
                                                                 |     if (r3 == 0) {
    0x0002d5a4 strne r2, [r3, r8, lsl 2]                         |         offset_0 = r8 << 2;
                                                                 |         *((r3 + offset_0)) = r2;
                                                                 |     }
                                                                 |     if (r3 == 0) {
    0x0002d5a8 movne r8, r6                                      |         r8 = r6;
                                                                 |     }
    0x0002d5ac b 0x2d424                                         |     goto label_0;
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x2d5dc */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0002d5dc ()                                  | void fcn_0002d5dc (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0002d5dc push {r0, r1, r4, r5, r6, r7, r8, lr}         |     
    0x0002d5e0 ldr r8, [pc, 0x1a0]                           |     r8 = *(0x2d784);
    0x0002d5e4 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x0002d5e8 add r8, pc, r8                                |     r8 = pc + r8;
                                                             |     if (r4 != r0) {
    0x0002d5ec mvneq r0, 0x15                                |         r0 = ~0x15;
                                                             |     }
                                                             |     if (r4 == r0) {
    0x0002d5f0 beq 0x2d75c                                   |         goto label_1;
                                                             |     }
    0x0002d5f4 ldr r0, [r4, 0x84]                            |     r0 = *((r4 + 0x84));
    0x0002d5f8 mov r6, r1                                    |     r6 = r1;
    0x0002d5fc cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x0002d600 blt 0x2d664                                   |         
    0x0002d604 bl 0x61e4                                     |         close (r0);
    0x0002d608 ldr r3, [pc, 0x17c]                           |         
    0x0002d60c add r3, pc, r3                                |         r3 = pc + r3;
    0x0002d610 ldr r3, [r3]                                  |         r3 = *(0x2d788);
    0x0002d614 tst r3, 4                                     |         
                                                             |         if ((r3 & 4) == 0) {
    0x0002d618 beq 0x2d664                                   |             goto label_2;
                                                             |         }
    0x0002d61c ldr r3, [pc, 0x16c]                           |         r3 = *(0x2d78c);
    0x0002d620 ldr r3, [r8, r3]                              |         r3 = *((r8 + r3));
    0x0002d624 ldr r5, [r3]                                  |         r5 = *(0x2d78c);
    0x0002d628 bl 0x58fc                                     |         getpid ();
    0x0002d62c ldr r3, [pc, 0x160]                           |         r3 = *(0x2d790);
    0x0002d630 ldr r1, [pc, 0x160]                           |         r1 = *(0x2d794);
    0x0002d634 add r3, pc, r3                                |         r3 = pc + r3;
    0x0002d638 str r3, [sp]                                  |         *(sp) = r3;
    0x0002d63c ldr r3, [pc, 0x158]                           |         r3 = *(0x2d798);
    0x0002d640 add r1, pc, r1                                |         r1 = pc + r1;
    0x0002d644 add r3, pc, r3                                |         r3 = pc + r3;
    0x0002d648 mov r2, r0                                    |         r2 = r0;
    0x0002d64c mov r0, r5                                    |         r0 = r5;
    0x0002d650 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x0002d654 ldr r1, [pc, 0x144]                           |         r1 = *(0x2d79c);
    0x0002d658 mov r0, r4                                    |         r0 = r4;
    0x0002d65c add r1, pc, r1                                |         r1 = pc + r1;
    0x0002d660 bl 0x2d0b4                                    |         fcn_0002d0b4 (r0);
                                                             |     }
                                                             | label_2:
    0x0002d664 ldrb r3, [r4, 0x90]                           |     r3 = *((r4 + 0x90));
    0x0002d668 mov r7, 0                                     |     r7 = 0;
    0x0002d66c and r3, r3, 0xfa                              |     r3 &= 0xfa;
    0x0002d670 mov r0, r4                                    |     r0 = r4;
    0x0002d674 mvn r5, 0                                     |     r5 = ~0;
    0x0002d678 str r5, [r4, 0x84]                            |     *((r4 + 0x84)) = r5;
    0x0002d67c str r7, [r4, 0x88]                            |     *((r4 + 0x88)) = r7;
    0x0002d680 strb r3, [r4, 0x90]                           |     *((r4 + 0x90)) = r3;
    0x0002d684 mov r2, 0xe8                                  |     r2 = 0xe8;
    0x0002d688 strb r7, [r0], 0x98                           |     *(r0) = r7;
                                                             |     r0 += 0x98;
    0x0002d68c mov r1, r7                                    |     r1 = r7;
    0x0002d690 bl 0x5e78                                     |     memset (r0, r1, r2);
    0x0002d694 cmp r6, r7                                    |     
                                                             |     if (r6 == r7) {
    0x0002d698 beq 0x2d74c                                   |         goto label_3;
                                                             |     }
    0x0002d69c ldrsb r3, [r6]                                |     r3 = *(r6);
    0x0002d6a0 cmp r3, 0x2f                                  |     
                                                             |     if (r3 == 0x2f) {
    0x0002d6a4 beq 0x2d770                                   |         goto label_4;
                                                             |     }
    0x0002d6a8 ldr r3, [r4, 0x8c]                            |     r3 = *((r4 + 0x8c));
    0x0002d6ac tst r3, 0x80                                  |     
                                                             |     if ((r3 & 0x80) == 0) {
    0x0002d6b0 beq 0x2d764                                   |         goto label_5;
                                                             |     }
    0x0002d6b4 mov r0, r6                                    |     r0 = r6;
    0x0002d6b8 bl 0x6118                                     |     r0 = strlen (r0);
    0x0002d6bc cmp r0, 4                                     |     
                                                             |     if (r0 > 4) {
    0x0002d6c0 movls r0, r5                                  |         r0 = r5;
                                                             |     }
                                                             |     if (r0 < 4) {
    0x0002d6c4 bls 0x2d75c                                   |         goto label_1;
                                                             |     }
    0x0002d6c8 ldr r3, [pc, 0xd4]                            |     r3 = *(0x2d7a0);
    0x0002d6cc add r6, r6, 4                                 |     r6 += 4;
    0x0002d6d0 add r3, pc, r3                                |     r3 = pc + r3;
                                                             |     do {
    0x0002d6d4 ldr r2, [pc, 0xcc]                            |         r2 = *(0x2d7a4);
    0x0002d6d8 str r6, [sp]                                  |         *(sp) = r6;
    0x0002d6dc add r2, pc, r2                                |         r2 = pc + r2;
    0x0002d6e0 mov r1, 0x80                                  |         r1 = 0x80;
    0x0002d6e4 mov r0, r4                                    |         r0 = r4;
    0x0002d6e8 bl 0x5830                                     |         snprintf (r0, r1, r2, r3);
                                                             | label_0:
    0x0002d6ec ldr r3, [pc, 0xb8]                            |         
    0x0002d6f0 add r3, pc, r3                                |         r3 = pc + r3;
    0x0002d6f4 ldr r3, [r3]                                  |         r3 = *(0x2d7a8);
    0x0002d6f8 tst r3, 4                                     |         
                                                             |         if ((r3 & 4) != 0) {
    0x0002d6fc beq 0x2d74c                                   |             
    0x0002d700 ldr r3, [pc, 0x88]                            |             r3 = *(0x2d78c);
    0x0002d704 ldr r3, [r8, r3]                              |             r3 = *((r8 + r3));
    0x0002d708 ldr r5, [r3]                                  |             r5 = *(0x2d78c);
    0x0002d70c bl 0x58fc                                     |             getpid ();
    0x0002d710 ldr r3, [pc, 0x98]                            |             r3 = *(0x2d7ac);
    0x0002d714 ldr r1, [pc, 0x98]                            |             r1 = *(0x2d7b0);
    0x0002d718 add r3, pc, r3                                |             r3 = pc + r3;
    0x0002d71c str r3, [sp]                                  |             *(sp) = r3;
    0x0002d720 ldr r3, [pc, 0x90]                            |             r3 = *(0x2d7b4);
    0x0002d724 add r1, pc, r1                                |             r1 = pc + r1;
    0x0002d728 add r3, pc, r3                                |             r3 = pc + r3;
    0x0002d72c mov r2, r0                                    |             r2 = r0;
    0x0002d730 mov r0, r5                                    |             r0 = r5;
    0x0002d734 bl 0x5c50                                     |             fprintf (r0, r1, r2, r3)
    0x0002d738 ldr r1, [pc, 0x7c]                            |             r1 = *(0x2d7b8);
    0x0002d73c mov r2, r6                                    |             r2 = r6;
    0x0002d740 add r1, pc, r1                                |             r1 = pc + r1;
    0x0002d744 mov r0, r4                                    |             r0 = r4;
    0x0002d748 bl 0x2d0b4                                    |             fcn_0002d0b4 (r0);
                                                             |         }
                                                             | label_3:
    0x0002d74c ldr r0, [r4, 0x94]                            |         r0 = *((r4 + 0x94));
    0x0002d750 bl 0x32668                                    |         fcn_00032668 (r0);
    0x0002d754 mov r0, 0                                     |         r0 = 0;
    0x0002d758 str r0, [r4, 0x94]                            |         *((r4 + 0x94)) = r0;
                                                             | label_1:
    0x0002d75c add sp, sp, 8                                 |         
    0x0002d760 pop {r4, r5, r6, r7, r8, pc}                  |         
                                                             | label_5:
    0x0002d764 ldr r3, [pc, 0x54]                            |         r3 = *(0x2d7bc);
    0x0002d768 add r3, pc, r3                                |         r3 = pc + r3;
    0x0002d76c b 0x2d6d4                                     |         
                                                             |     } while (1);
                                                             | label_4:
    0x0002d770 mov r2, 0x80                                  |     r2 = 0x80;
    0x0002d774 mov r1, r6                                    |     r1 = r6;
    0x0002d778 mov r0, r4                                    |     r0 = r4;
    0x0002d77c bl 0x5d40                                     |     strncpy (r0, r1, r2);
    0x0002d780 strb r7, [r4, 0x7f]                           |     *((r4 + 0x7f)) = r7;
    0x0002d784 b 0x2d6ec                                     |     goto label_0;
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x2d7dc */
                                                         | #include <stdint.h>
                                                         |  
                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                         |  
    ; (fcn) fcn.0002d7dc ()                              | void fcn_0002d7dc (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     char * * endptr;
                                                         |     int32_t var_18h;
                                                         |     void * s2;
                                                         |     int32_t var_f4h;
                                                         |     int32_t var_21ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0002d7dc push {r4, r5, r6, r7, r8, sb, lr}         |     
    0x0002d7e0 ldr r5, [pc, 0x364]                       |     r5 = *(0x2db48);
    0x0002d7e4 sub sp, sp, 0x21c                         |     
    0x0002d7e8 add r7, sp, 0x70                          |     r7 += s2;
    0x0002d7ec mov r4, r0                                |     r4 = r0;
    0x0002d7f0 mov r8, r1                                |     r8 = r1;
    0x0002d7f4 mov r2, 0x1a8                             |     r2 = 0x1a8;
    0x0002d7f8 mov r1, 0                                 |     r1 = 0;
    0x0002d7fc mov r0, r7                                |     r0 = r7;
    0x0002d800 bl 0x5e78                                 |     memset (r0, r1, r2);
    0x0002d804 mvn r3, 0                                 |     r3 = ~0;
    0x0002d808 cmp r4, 0                                 |     
    0x0002d80c add r5, pc, r5                            |     r5 = pc + r5;
    0x0002d810 str r3, [sp, 0xf4]                        |     var_f4h = r3;
                                                         |     if (r4 != 0) {
    0x0002d814 mvneq r6, 0x15                            |         r6 = ~0x15;
                                                         |     }
                                                         |     if (r4 == 0) {
    0x0002d818 beq 0x2db28                               |         goto label_1;
                                                         |     }
    0x0002d81c ldr r6, [pc, 0x32c]                       |     r6 = *(0x2db4c);
    0x0002d820 add r6, pc, r6                            |     r6 = pc + r6;
    0x0002d824 ldr sb, [r6]                              |     sb = *(0x2db4c);
    0x0002d828 cmp sb, 0                                 |     
                                                         |     if (sb != 0) {
    0x0002d82c bne 0x2d8fc                               |         goto label_2;
                                                         |     }
    0x0002d830 ldr r0, [pc, 0x31c]                       |     r0 = *(0x2db50);
    0x0002d834 add r0, pc, r0                            |     r0 = pc + r0;
    0x0002d838 bl 0x58b4                                 |     r0 = getenv (r0);
    0x0002d83c subs r3, r0, 0                            |     r3 = r0 - 0;
                                                         |     if (r3 != r0) {
    0x0002d840 streq r3, [r6]                            |         *(r6) = r3;
                                                         |     }
                                                         |     if (r3 != r0) {
    0x0002d844 beq 0x2d888                               |         
    0x0002d848 mov r2, sb                                |         r2 = sb;
    0x0002d84c add r1, sp, 8                             |         r1 += endptr;
    0x0002d850 bl 0x5a4c                                 |         r0 = strtoul (r0, r1, r2);
    0x0002d854 mov r6, r0                                |         r6 = r0;
    0x0002d858 ldr r0, [sp, 8]                           |         r0 = endptr;
    0x0002d85c cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x0002d860 beq 0x2d87c                               |             
    0x0002d864 ldr r1, [pc, 0x2ec]                       |             r1 = *(0x2db54);
    0x0002d868 add r1, pc, r1                            |             r1 = pc + r1;
    0x0002d86c bl 0x5efc                                 |             strcmp (r0, r1);
    0x0002d870 ldr r3, [pc, 0x2e4]                       |             r3 = *(0x2db58);
    0x0002d874 cmp r0, 0                                 |             
                                                         |             if (r0 == 0) {
    0x0002d878 moveq r6, r3                              |                 r6 = r3;
                                                         |                 goto label_3;
                                                         |             }
                                                         |         }
                                                         | label_3:
    0x0002d87c ldr r3, [pc, 0x2dc]                       |         r3 = *(0x2db5c);
    0x0002d880 add r3, pc, r3                            |         r3 = pc + r3;
    0x0002d884 str r6, [r3]                              |         *(r3) = r6;
                                                         |     }
    0x0002d888 ldr r3, [pc, 0x2d4]                       |     r3 = *(0x2db60);
    0x0002d88c ldr r6, [pc, r3]                          |     r6 = *(0x0002d894);
    0x0002d890 cmp r6, 0                                 |     
                                                         |     if (r6 == 0) {
    0x0002d894 beq 0x2d8e8                               |         goto label_0;
                                                         |     }
    0x0002d898 bl 0x59c8                                 |     r0 = getuid ();
    0x0002d89c mov sb, r0                                |     sb = r0;
    0x0002d8a0 bl 0x57f4                                 |     r0 = geteuid ();
    0x0002d8a4 cmp sb, r0                                |     
    0x0002d8a8 beq 0x2db34                               |     
                                                         |     while (sb != r0) {
    0x0002d8ac ldr r3, [pc, 0x2b4]                       |         r3 = *(0x2db64);
    0x0002d8b0 orr r6, r6, 0x1000000                     |         r6 |= 0x1000000;
    0x0002d8b4 add r3, pc, r3                            |         r3 = pc + r3;
    0x0002d8b8 str r6, [r3]                              |         *(r3) = r6;
    0x0002d8bc ldr r3, [pc, 0x2a8]                       |         r3 = *(0x2db68);
    0x0002d8c0 ldr r3, [r5, r3]                          |         r3 = *((r5 + r3));
    0x0002d8c4 ldr r6, [r3]                              |         r6 = *(0x2db68);
    0x0002d8c8 bl 0x58fc                                 |         getpid ();
    0x0002d8cc ldr r3, [pc, 0x29c]                       |         r3 = *(0x2db6c);
    0x0002d8d0 ldr r1, [pc, 0x29c]                       |         r1 = *(0x2db70);
    0x0002d8d4 add r3, pc, r3                            |         r3 = pc + r3;
    0x0002d8d8 add r1, pc, r1                            |         r1 = pc + r1;
    0x0002d8dc mov r2, r0                                |         r2 = r0;
    0x0002d8e0 mov r0, r6                                |         r0 = r6;
    0x0002d8e4 bl 0x5c50                                 |         fprintf (r0, r1, r2, r3)
                                                         | label_0:
    0x0002d8e8 ldr r2, [pc, 0x288]                       |         r2 = *(0x2db74);
    0x0002d8ec add r2, pc, r2                            |         r2 = pc + r2;
    0x0002d8f0 ldr r3, [r2]                              |         r3 = *(0x2db74);
    0x0002d8f4 orr r3, r3, 2                             |         r3 |= 2;
    0x0002d8f8 str r3, [r2]                              |         *(r2) = r3;
                                                         | label_2:
    0x0002d8fc ldr r3, [pc, 0x278]                       |         
    0x0002d900 add r3, pc, r3                            |         r3 = pc + r3;
    0x0002d904 ldr r3, [r3]                              |         r3 = *(0x2db78);
    0x0002d908 tst r3, 4                                 |         
                                                         |         if ((r3 & 4) != 0) {
    0x0002d90c beq 0x2d958                               |             
    0x0002d910 ldr r3, [pc, 0x254]                       |             r3 = *(0x2db68);
    0x0002d914 ldr r3, [r5, r3]                          |             r3 = *((r5 + r3));
    0x0002d918 ldr r6, [r3]                              |             r6 = *(0x2db68);
    0x0002d91c bl 0x58fc                                 |             getpid ();
    0x0002d920 ldr r3, [pc, 0x258]                       |             r3 = *(0x2db7c);
    0x0002d924 ldr r1, [pc, 0x258]                       |             r1 = *(0x2db80);
    0x0002d928 add r3, pc, r3                            |             r3 = pc + r3;
    0x0002d92c str r3, [sp]                              |             *(sp) = r3;
    0x0002d930 ldr r3, [pc, 0x250]                       |             r3 = *(0x2db84);
    0x0002d934 add r1, pc, r1                            |             r1 = pc + r1;
    0x0002d938 add r3, pc, r3                            |             r3 = pc + r3;
    0x0002d93c mov r2, r0                                |             r2 = r0;
    0x0002d940 mov r0, r6                                |             r0 = r6;
    0x0002d944 bl 0x5c50                                 |             fprintf (r0, r1, r2, r3)
    0x0002d948 ldr r1, [pc, 0x23c]                       |             r1 = *(0x2db88);
    0x0002d94c mov r0, r4                                |             r0 = r4;
    0x0002d950 add r1, pc, r1                            |             r1 = pc + r1;
    0x0002d954 bl 0x2d0b4                                |             fcn_0002d0b4 (r0);
                                                         |         }
    0x0002d958 mov r2, 0x1a8                             |         r2 = 0x1a8;
    0x0002d95c mov r1, r7                                |         r1 = r7;
    0x0002d960 mov r0, r4                                |         r0 = r4;
    0x0002d964 bl 0x5950                                 |         memcpy (r0, r1, r2);
    0x0002d968 str r8, [r4, 0x8c]                        |         *((r4 + 0x8c)) = r8;
    0x0002d96c mov r1, 0                                 |         r1 = 0;
    0x0002d970 mov r0, r4                                |         r0 = r4;
    0x0002d974 bl 0x2d5dc                                |         r0 = fcn_0002d5dc (r0, r1);
    0x0002d978 subs r6, r0, 0                            |         r6 = r0 - 0;
                                                         |         if (r6 == r0) {
    0x0002d97c bne 0x2db28                               |             
    0x0002d980 ldr r0, [pc, 0x208]                       |             r0 = *(0x2db8c);
    0x0002d984 add r7, sp, 8                             |             r7 += endptr;
    0x0002d988 mov r1, r7                                |             r1 = r7;
    0x0002d98c add r0, pc, r0                            |             r0 = pc + r0;
    0x0002d990 bl 0x5800                                 |             r0 = stat64 ();
    0x0002d994 cmp r0, 0                                 |             
                                                         |             if (r0 == 0) {
    0x0002d998 bne 0x2d9ac                               |                 
    0x0002d99c ldr r3, [sp, 0x18]                        |                 r3 = var_18h;
    0x0002d9a0 and r3, r3, 0xf000                        |                 r3 &= 0xf000;
    0x0002d9a4 cmp r3, 0x4000                            |                 
                                                         |                 if (r3 == 0x4000) {
    0x0002d9a8 beq 0x2da18                               |                     goto label_4;
                                                         |                 }
                                                         |             }
    0x0002d9ac ldr r3, [r4, 0x8c]                        |             r3 = *((r4 + 0x8c));
    0x0002d9b0 bic r3, r3, 0x40                          |             r3 = BIT_MASK (r3, 0x40);
    0x0002d9b4 orr r3, r3, 0x20                          |             r3 |= 0x20;
    0x0002d9b8 str r3, [r4, 0x8c]                        |             *((r4 + 0x8c)) = r3;
    0x0002d9bc ldr r3, [pc, 0x1d0]                       |             
    0x0002d9c0 add r3, pc, r3                            |             r3 = pc + r3;
    0x0002d9c4 ldr r3, [r3]                              |             r3 = *(0x2db90);
    0x0002d9c8 tst r3, 4                                 |             
                                                         |             if ((r3 & 4) != 0) {
    0x0002d9cc beq 0x2da18                               |                 
    0x0002d9d0 ldr r3, [pc, 0x194]                       |                 r3 = *(0x2db68);
    0x0002d9d4 ldr r3, [r5, r3]                          |                 r3 = *((r5 + r3));
    0x0002d9d8 ldr r8, [r3]                              |                 r8 = *(0x2db68);
    0x0002d9dc bl 0x58fc                                 |                 getpid ();
    0x0002d9e0 ldr r3, [pc, 0x1b0]                       |                 r3 = *(0x2db94);
    0x0002d9e4 ldr r1, [pc, 0x1b0]                       |                 r1 = *(0x2db98);
    0x0002d9e8 add r3, pc, r3                            |                 r3 = pc + r3;
    0x0002d9ec str r3, [sp]                              |                 *(sp) = r3;
    0x0002d9f0 ldr r3, [pc, 0x1a8]                       |                 r3 = *(0x2db9c);
    0x0002d9f4 add r1, pc, r1                            |                 r1 = pc + r1;
    0x0002d9f8 add r3, pc, r3                            |                 r3 = pc + r3;
    0x0002d9fc mov r2, r0                                |                 r2 = r0;
    0x0002da00 mov r0, r8                                |                 r0 = r8;
    0x0002da04 bl 0x5c50                                 |                 fprintf (r0, r1, r2, r3)
    0x0002da08 ldr r1, [pc, 0x194]                       |                 r1 = *(0x2dba0);
    0x0002da0c mov r0, r4                                |                 r0 = r4;
    0x0002da10 add r1, pc, r1                            |                 r1 = pc + r1;
    0x0002da14 bl 0x2d0b4                                |                 fcn_0002d0b4 (r0);
                                                         |             }
                                                         | label_4:
    0x0002da18 ldr r3, [r4, 0x8c]                        |             r3 = *((r4 + 0x8c));
    0x0002da1c tst r3, 0x20                              |             
                                                         |             if ((r3 & 0x20) == 0) {
    0x0002da20 bne 0x2da9c                               |                 
    0x0002da24 bl 0x2cfe0                                |                 fcn_0002cfe0 ();
    0x0002da28 ldr r3, [pc, 0x178]                       |                 r3 = *(0x2dba4);
    0x0002da2c cmp r0, r3                                |                 
                                                         |                 if (r0 <= r3) {
    0x0002da30 ble 0x2da9c                               |                     goto label_5;
                                                         |                 }
    0x0002da34 ldr r3, [r4, 0x8c]                        |                 r3 = *((r4 + 0x8c));
    0x0002da38 orr r3, r3, 0x40                          |                 r3 |= 0x40;
    0x0002da3c str r3, [r4, 0x8c]                        |                 *((r4 + 0x8c)) = r3;
    0x0002da40 ldr r3, [pc, 0x164]                       |                 
    0x0002da44 add r3, pc, r3                            |                 r3 = pc + r3;
    0x0002da48 ldr r3, [r3]                              |                 r3 = *(0x2dba8);
    0x0002da4c tst r3, 4                                 |                 
                                                         |                 if ((r3 & 4) == 0) {
    0x0002da50 beq 0x2da9c                               |                     goto label_5;
                                                         |                 }
    0x0002da54 ldr r3, [pc, 0x110]                       |                 r3 = *(0x2db68);
    0x0002da58 ldr r3, [r5, r3]                          |                 r3 = *((r5 + r3));
    0x0002da5c ldr r8, [r3]                              |                 r8 = *(0x2db68);
    0x0002da60 bl 0x58fc                                 |                 getpid ();
    0x0002da64 ldr r3, [pc, 0x144]                       |                 r3 = *(0x2dbac);
    0x0002da68 ldr r1, [pc, 0x144]                       |                 r1 = *(0x2dbb0);
    0x0002da6c add r3, pc, r3                            |                 r3 = pc + r3;
    0x0002da70 str r3, [sp]                              |                 *(sp) = r3;
    0x0002da74 ldr r3, [pc, 0x13c]                       |                 r3 = *(0x2dbb4);
    0x0002da78 add r1, pc, r1                            |                 r1 = pc + r1;
    0x0002da7c add r3, pc, r3                            |                 r3 = pc + r3;
    0x0002da80 mov r2, r0                                |                 r2 = r0;
    0x0002da84 mov r0, r8                                |                 r0 = r8;
    0x0002da88 bl 0x5c50                                 |                 fprintf (r0, r1, r2, r3)
    0x0002da8c ldr r1, [pc, 0x128]                       |                 r1 = *(0x2dbb8);
    0x0002da90 mov r0, r4                                |                 r0 = r4;
    0x0002da94 add r1, pc, r1                            |                 r1 = pc + r1;
    0x0002da98 bl 0x2d0b4                                |                 fcn_0002d0b4 (r0);
                                                         |             }
                                                         | label_5:
    0x0002da9c ldr r3, [r4, 0x8c]                        |             r3 = *((r4 + 0x8c));
    0x0002daa0 tst r3, 0x100                             |             
                                                         |             if ((r3 & 0x100) != 0) {
    0x0002daa4 bne 0x2db28                               |                 goto label_1;
                                                         |             }
    0x0002daa8 ldr r0, [pc, 0x110]                       |             r0 = *(0x2dbbc);
    0x0002daac mov r1, r7                                |             r1 = r7;
    0x0002dab0 add r0, pc, r0                            |             r0 = pc + r0;
    0x0002dab4 bl 0x5800                                 |             r0 = stat64 ();
    0x0002dab8 cmp r0, 0                                 |             
                                                         |             if (r0 != 0) {
    0x0002dabc bne 0x2db28                               |                 goto label_1;
                                                         |             }
    0x0002dac0 ldr r3, [r4, 0x8c]                        |             r3 = *((r4 + 0x8c));
    0x0002dac4 orr r3, r3, 0x100                         |             r3 |= 0x100;
    0x0002dac8 str r3, [r4, 0x8c]                        |             *((r4 + 0x8c)) = r3;
    0x0002dacc ldr r3, [pc, 0xf0]                        |             
    0x0002dad0 add r3, pc, r3                            |             r3 = pc + r3;
    0x0002dad4 ldr r3, [r3]                              |             r3 = *(0x2dbc0);
    0x0002dad8 tst r3, 4                                 |             
                                                         |             if ((r3 & 4) == 0) {
    0x0002dadc beq 0x2db28                               |                 goto label_1;
                                                         |             }
    0x0002dae0 ldr r3, [pc, 0x84]                        |             r3 = *(0x2db68);
    0x0002dae4 ldr r3, [r5, r3]                          |             r3 = *((r5 + r3));
    0x0002dae8 ldr r5, [r3]                              |             r5 = *(0x2db68);
    0x0002daec bl 0x58fc                                 |             getpid ();
    0x0002daf0 ldr r3, [pc, 0xd0]                        |             r3 = *(0x2dbc4);
    0x0002daf4 ldr r1, [pc, 0xd0]                        |             r1 = *(0x2dbc8);
    0x0002daf8 add r3, pc, r3                            |             r3 = pc + r3;
    0x0002dafc str r3, [sp]                              |             *(sp) = r3;
    0x0002db00 ldr r3, [pc, 0xc8]                        |             r3 = *(0x2dbcc);
    0x0002db04 add r1, pc, r1                            |             r1 = pc + r1;
    0x0002db08 add r3, pc, r3                            |             r3 = pc + r3;
    0x0002db0c mov r2, r0                                |             r2 = r0;
    0x0002db10 mov r0, r5                                |             r0 = r5;
    0x0002db14 bl 0x5c50                                 |             fprintf (r0, r1, r2, r3)
    0x0002db18 ldr r1, [pc, 0xb4]                        |             r1 = *(0x2dbd0);
    0x0002db1c mov r0, r4                                |             r0 = r4;
    0x0002db20 add r1, pc, r1                            |             r1 = pc + r1;
    0x0002db24 bl 0x2d0b4                                |             fcn_0002d0b4 (r0);
                                                         |         }
                                                         | label_1:
    0x0002db28 mov r0, r6                                |         r0 = r6;
    0x0002db2c add sp, sp, 0x21c                         |         
    0x0002db30 pop {r4, r5, r6, r7, r8, sb, pc}          |         
    0x0002db34 bl 0x5788                                 |         r0 = getgid ();
    0x0002db38 mov sb, r0                                |         sb = r0;
    0x0002db3c bl 0x58d8                                 |         r0 = getegid ();
    0x0002db40 cmp sb, r0                                |         
    0x0002db44 bne 0x2d8ac                               |         
                                                         |     }
    0x0002db48 b 0x2d8e8                                 |     goto label_0;
                                                         | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x2dc10 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0002dc10 ()                          | void fcn_0002dc10 (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
                                                     |     r0 = arg1;
    0x0002dc10 push {r0, r1, r2, r4, r5, lr}         |     
    0x0002dc14 ldr r5, [pc, 0xcc]                    |     r5 = *(0x2dce4);
    0x0002dc18 subs r4, r0, 0                        |     r4 = r0 - 0;
    0x0002dc1c add r5, pc, r5                        |     r5 = pc + r5;
                                                     |     if (r4 == r0) {
    0x0002dc20 beq 0x2dce0                           |         goto label_1;
                                                     |     }
    0x0002dc24 ldrsb r3, [r4]                        |     r3 = *(r4);
    0x0002dc28 cmp r3, 0                             |     
                                                     |     if (r3 == 0) {
    0x0002dc2c beq 0x2dce0                           |         goto label_1;
                                                     |     }
    0x0002dc30 ldr r3, [r4, 0x84]                    |     r3 = *((r4 + 0x84));
    0x0002dc34 cmp r3, 0                             |     
                                                     |     if (r3 >= 0) {
    0x0002dc38 bge 0x2dcc8                           |         goto label_2;
                                                     |     }
    0x0002dc3c ldr r1, [r4, 0x8c]                    |     r1 = *((r4 + 0x8c));
    0x0002dc40 and r1, r1, 2                         |     r1 &= 2;
    0x0002dc44 str r1, [r4, 0x88]                    |     *((r4 + 0x88)) = r1;
    0x0002dc48 orr r1, r1, 0x80000                   |     r1 |= 0x80000;
    0x0002dc4c bl 0x5e9c                             |     open64 ();
    0x0002dc50 ldr r3, [pc, 0x94]                    |     
    0x0002dc54 add r3, pc, r3                        |     r3 = pc + r3;
    0x0002dc58 ldr r3, [r3]                          |     r3 = *(0x2dce8);
    0x0002dc5c tst r3, 4                             |     
    0x0002dc60 str r0, [r4, 0x84]                    |     *((r4 + 0x84)) = r0;
                                                     |     if ((r3 & 4) == 0) {
    0x0002dc64 beq 0x2dcc8                           |         goto label_2;
                                                     |     }
    0x0002dc68 ldr r3, [pc, 0x80]                    |     r3 = *(0x2dcec);
    0x0002dc6c ldr r3, [r5, r3]                      |     r3 = *((r5 + r3));
    0x0002dc70 ldr r5, [r3]                          |     r5 = *(0x2dcec);
    0x0002dc74 bl 0x58fc                             |     getpid ();
    0x0002dc78 ldr r3, [pc, 0x74]                    |     r3 = *(0x2dcf0);
    0x0002dc7c ldr r1, [pc, 0x74]                    |     r1 = *(0x2dcf4);
    0x0002dc80 add r3, pc, r3                        |     r3 = pc + r3;
    0x0002dc84 str r3, [sp]                          |     *(sp) = r3;
    0x0002dc88 ldr r3, [pc, 0x6c]                    |     r3 = *(0x2dcf8);
    0x0002dc8c add r1, pc, r1                        |     r1 = pc + r1;
    0x0002dc90 add r3, pc, r3                        |     r3 = pc + r3;
    0x0002dc94 mov r2, r0                            |     r2 = r0;
    0x0002dc98 mov r0, r5                            |     r0 = r5;
    0x0002dc9c bl 0x5c50                             |     fprintf (r0, r1, r2, r3)
    0x0002dca0 ldr r3, [r4, 0x8c]                    |     r3 = *((r4 + 0x8c));
    0x0002dca4 tst r3, 2                             |     
                                                     |     if ((r3 & 2) != 0) {
    0x0002dca8 bne 0x2dcd4                           |         goto label_3;
                                                     |     }
    0x0002dcac ldr r3, [pc, 0x4c]                    |     r3 = *(0x2dcfc);
    0x0002dcb0 add r3, pc, r3                        |     r3 = pc + r3;
                                                     |     do {
    0x0002dcb4 ldr r1, [pc, 0x48]                    |         r1 = *(0x2dd00);
    0x0002dcb8 mov r2, r4                            |         r2 = r4;
    0x0002dcbc add r1, pc, r1                        |         r1 = pc + r1;
    0x0002dcc0 mov r0, r4                            |         r0 = r4;
    0x0002dcc4 bl 0x2d0b4                            |         fcn_0002d0b4 (r0);
                                                     | label_2:
    0x0002dcc8 ldr r0, [r4, 0x84]                    |         r0 = *((r4 + 0x84));
                                                     | label_0:
    0x0002dccc add sp, sp, 0xc                       |         
    0x0002dcd0 pop {r4, r5, pc}                      |         
                                                     | label_3:
    0x0002dcd4 ldr r3, [pc, 0x2c]                    |         r3 = *(0x2dd04);
    0x0002dcd8 add r3, pc, r3                        |         r3 = pc + r3;
    0x0002dcdc b 0x2dcb4                             |         
                                                     |     } while (1);
                                                     | label_1:
    0x0002dce0 mvn r0, 0x15                          |     r0 = ~0x15;
    0x0002dce4 b 0x2dccc                             |     goto label_0;
                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x2dd24 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0002dd24 ()                      | void fcn_0002dd24 (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     int32_t var_18h;
                                                 |     int32_t var_74h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x0002dd24 ldr r3, [pc, 0x100]               |     r3 = *(0x2de28);
    0x0002dd28 push {r4, r5, r6, r7, lr}         |     
    0x0002dd2c subs r4, r0, 0                    |     r4 = r0 - 0;
    0x0002dd30 add r3, pc, r3                    |     r3 = pc + r3;
    0x0002dd34 sub sp, sp, 0x74                  |     
                                                 |     if (r4 != r0) {
    0x0002dd38 mvneq r0, 0x15                    |         r0 = ~0x15;
                                                 |     }
                                                 |     if (r4 != r0) {
    0x0002dd3c beq 0x2de24                       |         
    0x0002dd40 ldr r2, [pc, 0xe8]                |         
    0x0002dd44 mov r5, r1                        |         r5 = r1;
    0x0002dd48 add r2, pc, r2                    |         r2 = pc + r2;
    0x0002dd4c ldr r2, [r2]                      |         r2 = *(0x2de2c);
    0x0002dd50 add r6, r4, 0x180                 |         r6 = r4 + 0x180;
    0x0002dd54 tst r2, 8                         |         
                                                 |         if ((r2 & 8) != 0) {
    0x0002dd58 beq 0x2dda4                       |             
    0x0002dd5c ldr r2, [pc, 0xd0]                |             r2 = *(0x2de30);
    0x0002dd60 ldr r3, [r3, r2]                  |             r3 = *((r3 + r2));
    0x0002dd64 ldr r7, [r3]                      |             r7 = *(r3);
    0x0002dd68 bl 0x58fc                         |             getpid ();
    0x0002dd6c ldr r3, [pc, 0xc4]                |             r3 = *(0x2de34);
    0x0002dd70 ldr r1, [pc, 0xc4]                |             r1 = *(0x2de38);
    0x0002dd74 add r3, pc, r3                    |             r3 = pc + r3;
    0x0002dd78 str r3, [sp]                      |             *(sp) = r3;
    0x0002dd7c ldr r3, [pc, 0xbc]                |             r3 = *(0x2de3c);
    0x0002dd80 add r1, pc, r1                    |             r1 = pc + r1;
    0x0002dd84 add r3, pc, r3                    |             r3 = pc + r3;
    0x0002dd88 mov r2, r0                        |             r2 = r0;
    0x0002dd8c mov r0, r7                        |             r0 = r7;
    0x0002dd90 bl 0x5c50                         |             fprintf (r0, r1, r2, r3)
    0x0002dd94 ldr r1, [pc, 0xa8]                |             r1 = *(0x2de40);
    0x0002dd98 mov r0, r6                        |             r0 = r6;
    0x0002dd9c add r1, pc, r1                    |             r1 = pc + r1;
    0x0002dda0 bl 0x2d0b4                        |             fcn_0002d0b4 (r0);
                                                 |         }
    0x0002dda4 mov r2, 0x24                      |         r2 = 0x24;
    0x0002dda8 mov r1, 0                         |         r1 = 0;
    0x0002ddac mov r0, r6                        |         r0 = r6;
    0x0002ddb0 bl 0x5e78                         |         memset (r0, r1, r2);
    0x0002ddb4 mvn r3, 0                         |         r3 = ~0;
    0x0002ddb8 str r3, [r4, 0x188]               |         *((r4 + 0x188)) = r3;
    0x0002ddbc ldrb r3, [r4, 0x19c]              |         r3 = *((r4 + 0x19c));
    0x0002ddc0 str r5, [r4, 0x1a0]               |         *((r4 + 0x1a0)) = r5;
    0x0002ddc4 orr r3, r3, 2                     |         r3 |= 2;
    0x0002ddc8 strb r3, [r4, 0x19c]              |         *((r4 + 0x19c)) = r3;
    0x0002ddcc ldrb r3, [r4, 0x90]               |         r3 = *((r4 + 0x90));
    0x0002ddd0 tst r3, 2                         |         
                                                 |         if ((r3 & 2) == 0) {
    0x0002ddd4 bne 0x2de20                       |             
    0x0002ddd8 ldr r3, [r4, 0x8c]                |             r3 = *((r4 + 0x8c));
    0x0002dddc tst r3, 0x80                      |             
                                                 |             if ((r3 & 0x80) == 0) {
    0x0002dde0 bne 0x2de14                       |                 
    0x0002dde4 ldr r0, [pc, 0x5c]                |                 r0 = *(0x2de44);
    0x0002dde8 add r1, sp, 8                     |                 r1 += var_8h;
    0x0002ddec add r0, pc, r0                    |                 r0 = pc + r0;
    0x0002ddf0 bl 0x5800                         |                 r0 = stat64 ();
    0x0002ddf4 cmp r0, 0                         |                 
                                                 |                 if (r0 != 0) {
    0x0002ddf8 bne 0x2de14                       |                     goto label_0;
                                                 |                 }
    0x0002ddfc ldr r3, [sp, 0x18]                |                 r3 = var_18h;
    0x0002de00 and r3, r3, 0xf000                |                 r3 &= 0xf000;
    0x0002de04 cmp r3, 0x4000                    |                 
                                                 |                 if (r3 != 0x4000) {
    0x0002de08 ldreq r3, [r4, 0x8c]              |                     r3 = *((r4 + 0x8c));
                                                 |                 }
                                                 |                 if (r3 != 0x4000) {
    0x0002de0c orreq r3, r3, 0x80                |                     r3 |= 0x80;
                                                 |                 }
                                                 |                 if (r3 == 0x4000) {
    0x0002de10 streq r3, [r4, 0x8c]              |                     *((r4 + 0x8c)) = r3;
                                                 |                     goto label_0;
                                                 |                 }
                                                 |             }
                                                 | label_0:
    0x0002de14 ldrb r3, [r4, 0x90]               |             r3 = *((r4 + 0x90));
    0x0002de18 orr r3, r3, 2                     |             r3 |= 2;
    0x0002de1c strb r3, [r4, 0x90]               |             *((r4 + 0x90)) = r3;
                                                 |         }
    0x0002de20 mov r0, 0                         |         r0 = 0;
                                                 |     }
    0x0002de24 add sp, sp, 0x74                  |     
    0x0002de28 pop {r4, r5, r6, r7, pc}          |     
                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x2de4c */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0002de4c ()                          | void fcn_0002de4c (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_8h;
                                                     |     r0 = arg1;
    0x0002de4c ldr r3, [pc, 0xb4]                    |     r3 = *(0x2df04);
    0x0002de50 push {r0, r1, r4, r5, r6, lr}         |     
    0x0002de54 subs r4, r0, 0                        |     r4 = r0 - 0;
    0x0002de58 add r3, pc, r3                        |     r3 = pc + r3;
                                                     |     if (r4 != r0) {
    0x0002de5c mvneq r0, 0x15                        |         r0 = ~0x15;
                                                     |     }
                                                     |     if (r4 != r0) {
    0x0002de60 beq 0x2df00                           |         
    0x0002de64 ldr r2, [pc, 0xa0]                    |         
    0x0002de68 add r5, r4, 0x180                     |         r5 = r4 + 0x180;
    0x0002de6c add r2, pc, r2                        |         r2 = pc + r2;
    0x0002de70 ldr r2, [r2]                          |         r2 = *(0x2df08);
    0x0002de74 tst r2, 8                             |         
                                                     |         if ((r2 & 8) != 0) {
    0x0002de78 beq 0x2dec4                           |             
    0x0002de7c ldr r2, [pc, 0x8c]                    |             r2 = *(0x2df0c);
    0x0002de80 ldr r3, [r3, r2]                      |             r3 = *((r3 + r2));
    0x0002de84 ldr r6, [r3]                          |             r6 = *(r3);
    0x0002de88 bl 0x58fc                             |             getpid ();
    0x0002de8c ldr r3, [pc, 0x80]                    |             r3 = *(0x2df10);
    0x0002de90 ldr r1, [pc, 0x80]                    |             r1 = *(0x2df14);
    0x0002de94 add r3, pc, r3                        |             r3 = pc + r3;
    0x0002de98 str r3, [sp]                          |             *(sp) = r3;
    0x0002de9c ldr r3, [pc, 0x78]                    |             r3 = *(0x2df18);
    0x0002dea0 add r1, pc, r1                        |             r1 = pc + r1;
    0x0002dea4 add r3, pc, r3                        |             r3 = pc + r3;
    0x0002dea8 mov r2, r0                            |             r2 = r0;
    0x0002deac mov r0, r6                            |             r0 = r6;
    0x0002deb0 bl 0x5c50                             |             fprintf (r0, r1, r2, r3)
    0x0002deb4 ldr r1, [pc, 0x64]                    |             r1 = *(0x2df1c);
    0x0002deb8 mov r0, r5                            |             r0 = r5;
    0x0002debc add r1, pc, r1                        |             r1 = pc + r1;
    0x0002dec0 bl 0x2d0b4                            |             fcn_0002d0b4 (r0);
                                                     |         }
    0x0002dec4 ldr r0, [r4, 0x18c]                   |         r0 = *((r4 + 0x18c));
    0x0002dec8 bl 0x6220                             |         free (r0);
    0x0002decc ldr r0, [r4, 0x180]                   |         r0 = *((r4 + 0x180));
    0x0002ded0 cmp r0, 0                             |         
                                                     |         if (r0 != 0) {
    0x0002ded4 beq 0x2dedc                           |             
    0x0002ded8 bl 0x5e90                             |             fclose (r0);
                                                     |         }
    0x0002dedc ldr r0, [r4, 0x184]                   |         r0 = *((r4 + 0x184));
    0x0002dee0 cmp r0, 0                             |         
                                                     |         if (r0 != 0) {
    0x0002dee4 beq 0x2deec                           |             
    0x0002dee8 bl 0x6184                             |             closedir ();
                                                     |         }
    0x0002deec mov r2, 0x24                          |         r2 = 0x24;
    0x0002def0 mov r1, 0                             |         r1 = 0;
    0x0002def4 mov r0, r5                            |         r0 = r5;
    0x0002def8 bl 0x5e78                             |         memset (r0, r1, r2);
    0x0002defc mov r0, 0                             |         r0 = 0;
                                                     |     }
    0x0002df00 add sp, sp, 8                         |     
    0x0002df04 pop {r4, r5, r6, pc}                  |     
                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x2df24 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0002df24 ()                                  | void fcn_0002df24 (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     r0 = arg1;
    0x0002df24 push {r0, r1, r2, r4, r5, r6, r7, lr}         |     
    0x0002df28 ldr r6, [pc, 0xa0]                            |     r6 = *(0x2dfcc);
    0x0002df2c mov r4, r0                                    |     r4 = r0;
    0x0002df30 bl 0x60ac                                     |     errno_location ();
    0x0002df34 cmp r4, 0                                     |     
    0x0002df38 add r6, pc, r6                                |     r6 = pc + r6;
                                                             |     if (r4 != 0) {
    0x0002df3c beq 0x2dfc8                                   |         
    0x0002df40 ldr r3, [pc, 0x8c]                            |         
    0x0002df44 mov r5, r0                                    |         r5 = r0;
    0x0002df48 add r3, pc, r3                                |         r3 = pc + r3;
    0x0002df4c ldr r3, [r3]                                  |         r3 = *(0x2dfd0);
    0x0002df50 ldr r7, [r0]                                  |         r7 = *(r0);
    0x0002df54 tst r3, 4                                     |         
                                                             |         if ((r3 & 4) != 0) {
    0x0002df58 beq 0x2dfa4                                   |             
    0x0002df5c ldr r3, [pc, 0x74]                            |             r3 = *(0x2dfd4);
    0x0002df60 ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x0002df64 ldr r6, [r3]                                  |             r6 = *(0x2dfd4);
    0x0002df68 bl 0x58fc                                     |             getpid ();
    0x0002df6c ldr r3, [pc, 0x68]                            |             r3 = *(0x2dfd8);
    0x0002df70 ldr r1, [pc, 0x68]                            |             r1 = *(0x2dfdc);
    0x0002df74 add r3, pc, r3                                |             r3 = pc + r3;
    0x0002df78 str r3, [sp]                                  |             *(sp) = r3;
    0x0002df7c ldr r3, [pc, 0x60]                            |             r3 = *(0x2dfe0);
    0x0002df80 add r1, pc, r1                                |             r1 = pc + r1;
    0x0002df84 add r3, pc, r3                                |             r3 = pc + r3;
    0x0002df88 mov r2, r0                                    |             r2 = r0;
    0x0002df8c mov r0, r6                                    |             r0 = r6;
    0x0002df90 bl 0x5c50                                     |             fprintf (r0, r1, r2, r3)
    0x0002df94 ldr r1, [pc, 0x4c]                            |             r1 = *(0x2dfe4);
    0x0002df98 mov r0, r4                                    |             r0 = r4;
    0x0002df9c add r1, pc, r1                                |             r1 = pc + r1;
    0x0002dfa0 bl 0x2d0b4                                    |             fcn_0002d0b4 (r0);
                                                             |         }
    0x0002dfa4 ldr r0, [r4, 0x80]                            |         r0 = *((r4 + 0x80));
    0x0002dfa8 bl 0x6220                                     |         free (r0);
    0x0002dfac mov r1, 0                                     |         r1 = 0;
    0x0002dfb0 str r1, [r4, 0x80]                            |         *((r4 + 0x80)) = r1;
    0x0002dfb4 mov r0, r4                                    |         r0 = r4;
    0x0002dfb8 bl 0x2d5dc                                    |         fcn_0002d5dc (r0, r1);
    0x0002dfbc mov r0, r4                                    |         r0 = r4;
    0x0002dfc0 bl 0x2de4c                                    |         fcn_0002de4c (r0);
    0x0002dfc4 str r7, [r5]                                  |         *(r5) = r7;
                                                             |     }
    0x0002dfc8 add sp, sp, 0xc                               |     
    0x0002dfcc pop {r4, r5, r6, r7, pc}                      |     
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x2e04c */
                                                         | #include <stdint.h>
                                                         |  
                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                         |  
    ; (fcn) fcn.0002e04c ()                              | void fcn_0002e04c (int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_ch;
                                                         |     r0 = arg1;
    0x0002e04c push {r0, r1, r2, r4, r5, r6, r7, lr}     |     
    0x0002e050 ldr r6, [pc, 0x144]                       |     r6 = *(0x2e198);
    0x0002e054 mov r4, r0                                |     r4 = r0;
    0x0002e058 bl 0x60ac                                 |     errno_location ();
    0x0002e05c cmp r4, 0                                 |     
    0x0002e060 add r6, pc, r6                            |     r6 = pc + r6;
                                                         |     if (r4 != 0) {
    0x0002e064 beq 0x2e074                               |         
    0x0002e068 ldrb r3, [r4, 0x90]                       |         r3 = *((r4 + 0x90));
    0x0002e06c ands r3, r3, 4                            |         r3 &= 4;
                                                         |         if (r3 == r3) {
    0x0002e070 beq 0x2e084                               |             goto label_3;
                                                         |         }
                                                         |     }
    0x0002e074 mov r3, 0x16                              |     r3 = 0x16;
    0x0002e078 str r3, [r0]                              |     *(r0) = r3;
                                                         |     do {
                                                         | label_2:
    0x0002e07c mov r5, 0                                 |         r5 = 0;
    0x0002e080 b 0x2e098                                 |         goto label_1;
                                                         | label_3:
    0x0002e084 str r3, [r0]                              |         *(r0) = r3;
    0x0002e088 ldrb r3, [r4, 0x90]                       |         r3 = *((r4 + 0x90));
    0x0002e08c ands r7, r3, 1                            |         r7 = r3 & 1;
                                                         |         if (r7 != r3) {
    0x0002e090 beq 0x2e0a4                               |             
                                                         | label_0:
    0x0002e094 add r5, r4, 0x98                          |             r5 = r4 + 0x98;
                                                         | label_1:
    0x0002e098 mov r0, r5                                |             r0 = r5;
    0x0002e09c add sp, sp, 0xc                           |             
    0x0002e0a0 pop {r4, r5, r6, r7, pc}                  |             
                                                         |         }
    0x0002e0a4 mov r0, r4                                |         r0 = r4;
    0x0002e0a8 bl 0x2dc10                                |         r0 = fcn_0002dc10 (r0);
    0x0002e0ac cmp r0, 0                                 |         
    0x0002e0b0 blt 0x2e07c                               |         
                                                         |     } while (r0 < 0);
    0x0002e0b4 add r5, r4, 0x98                          |     r5 = r4 + 0x98;
    0x0002e0b8 mov r2, r5                                |     r2 = r5;
    0x0002e0bc ldr r1, [pc, 0xdc]                        |     r1 = *(0x2e19c);
    0x0002e0c0 bl 0x574c                                 |     ioctl (r0, r1);
    0x0002e0c4 ldr r3, [pc, 0xd8]                        |     r3 = *(0x2e1a0);
    0x0002e0c8 ldr r2, [pc, r3]                          |     r2 = *(0x0002e0d0);
    0x0002e0cc ldrb r3, [r4, 0x90]                       |     r3 = *((r4 + 0x90));
    0x0002e0d0 and r2, r2, 4                             |     r2 &= 4;
    0x0002e0d4 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0002e0d8 bne 0x2e13c                               |         goto label_4;
                                                         |     }
    0x0002e0dc orr r3, r3, 1                             |     r3 |= 1;
    0x0002e0e0 bic r3, r3, 4                             |     r3 = BIT_MASK (r3, 4);
    0x0002e0e4 cmp r2, 0                                 |     
    0x0002e0e8 strb r3, [r4, 0x90]                       |     *((r4 + 0x90)) = r3;
                                                         |     if (r2 == 0) {
    0x0002e0ec beq 0x2e094                               |         goto label_0;
                                                         |     }
    0x0002e0f0 ldr r3, [pc, 0xb0]                        |     r3 = *(0x2e1a4);
    0x0002e0f4 ldr r3, [r6, r3]                          |     r3 = *((r6 + r3));
    0x0002e0f8 ldr r6, [r3]                              |     r6 = *(0x2e1a4);
    0x0002e0fc bl 0x58fc                                 |     getpid ();
    0x0002e100 ldr r3, [pc, 0xa4]                        |     r3 = *(0x2e1a8);
    0x0002e104 ldr r1, [pc, 0xa4]                        |     r1 = *(0x2e1ac);
    0x0002e108 add r3, pc, r3                            |     r3 = pc + r3;
    0x0002e10c str r3, [sp]                              |     *(sp) = r3;
    0x0002e110 ldr r3, [pc, 0x9c]                        |     r3 = *(0x2e1b0);
    0x0002e114 add r1, pc, r1                            |     r1 = pc + r1;
    0x0002e118 add r3, pc, r3                            |     r3 = pc + r3;
    0x0002e11c mov r2, r0                                |     r2 = r0;
    0x0002e120 mov r0, r6                                |     r0 = r6;
    0x0002e124 bl 0x5c50                                 |     fprintf (r0, r1, r2, r3)
    0x0002e128 ldr r1, [pc, 0x88]                        |     r1 = *(0x2e1b4);
    0x0002e12c mov r0, r4                                |     r0 = r4;
    0x0002e130 add r1, pc, r1                            |     r1 = pc + r1;
    0x0002e134 bl 0x2d0b4                                |     fcn_0002d0b4 (r0);
    0x0002e138 b 0x2e098                                 |     goto label_1;
                                                         | label_4:
    0x0002e13c orr r3, r3, 4                             |     r3 |= 4;
    0x0002e140 cmp r2, 0                                 |     
    0x0002e144 strb r3, [r4, 0x90]                       |     *((r4 + 0x90)) = r3;
                                                         |     if (r2 == 0) {
    0x0002e148 beq 0x2e07c                               |         goto label_2;
                                                         |     }
    0x0002e14c ldr r3, [pc, 0x54]                        |     r3 = *(0x2e1a4);
    0x0002e150 ldr r3, [r6, r3]                          |     r3 = *((r6 + r3));
    0x0002e154 ldr r5, [r3]                              |     r5 = *(0x2e1a4);
    0x0002e158 bl 0x58fc                                 |     getpid ();
    0x0002e15c ldr r3, [pc, 0x58]                        |     r3 = *(0x2e1b8);
    0x0002e160 ldr r1, [pc, 0x58]                        |     r1 = *(0x2e1bc);
    0x0002e164 add r3, pc, r3                            |     r3 = pc + r3;
    0x0002e168 str r3, [sp]                              |     *(sp) = r3;
    0x0002e16c ldr r3, [pc, 0x50]                        |     r3 = *(0x2e1c0);
    0x0002e170 add r1, pc, r1                            |     r1 = pc + r1;
    0x0002e174 add r3, pc, r3                            |     r3 = pc + r3;
    0x0002e178 mov r2, r0                                |     r2 = r0;
    0x0002e17c mov r0, r5                                |     r0 = r5;
    0x0002e180 bl 0x5c50                                 |     fprintf (r0, r1, r2, r3)
    0x0002e184 ldr r1, [pc, 0x3c]                        |     r1 = *(0x2e1c4);
    0x0002e188 mov r0, r4                                |     r0 = r4;
    0x0002e18c add r1, pc, r1                            |     r1 = pc + r1;
    0x0002e190 bl 0x2d0b4                                |     fcn_0002d0b4 (r0);
    0x0002e194 mov r5, r7                                |     r5 = r7;
    0x0002e198 b 0x2e098                                 |     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 @ 0x2e1cc */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.0002e1cc ()              | void fcn_0002e1cc (int32_t arg1) {
                                         |     int32_t var_0h;
                                         |     int32_t var_ch;
                                         |     int32_t var_14h;
                                         |     r0 = arg1;
    0x0002e1cc push {r4, r5, lr}         |     
    0x0002e1d0 ldr r5, [pc, 0xd4]        |     r5 = *(0x2e2a8);
    0x0002e1d4 sub sp, sp, 0x14          |     
    0x0002e1d8 mov r4, r0                |     r4 = r0;
    0x0002e1dc bl 0x2d174                |     fcn_0002d174 (r0);
    0x0002e1e0 mov r3, 0                 |     r3 = 0;
    0x0002e1e4 add r5, pc, r5            |     r5 = pc + r5;
    0x0002e1e8 str r3, [sp, 0xc]         |     var_ch = r3;
    0x0002e1ec cmp r0, r3                |     
                                         |     if (r0 != r3) {
    0x0002e1f0 beq 0x2e204               |         
    0x0002e1f4 ldr r2, [pc, 0xb4]        |         r2 = *(0x2e2ac);
    0x0002e1f8 add r1, sp, 0xc           |         r1 += var_ch;
    0x0002e1fc add r2, pc, r2            |         r2 = pc + r2;
    0x0002e200 bl 0x336d0                |         fcn_000336d0 (r0);
                                         |     }
    0x0002e204 ldr r3, [sp, 0xc]         |     r3 = var_ch;
    0x0002e208 cmp r3, 0                 |     
                                         |     if (r3 == 0) {
    0x0002e20c bne 0x2e240               |         
    0x0002e210 ldr r3, [r4, 0x8c]        |         r3 = *((r4 + 0x8c));
    0x0002e214 tst r3, 0x40              |         
                                         |         if ((r3 & 0x40) != 0) {
    0x0002e218 bne 0x2e240               |             goto label_0;
                                         |         }
    0x0002e21c mov r0, r4                |         r0 = r4;
    0x0002e220 bl 0x2e04c                |         r0 = fcn_0002e04c (r0);
    0x0002e224 cmp r0, 0                 |         
                                         |         if (r0 == 0) {
    0x0002e228 beq 0x2e240               |             goto label_0;
                                         |         }
    0x0002e22c mov r3, 0x2a              |         r3 = 0x2a;
    0x0002e230 strh r3, [r0, 0x76]       |         *((r0 + 0x76)) = r3;
    0x0002e234 add r0, r0, 0x38          |         r0 += 0x38;
    0x0002e238 bl 0x5e48                 |         strdup (r0);
    0x0002e23c str r0, [sp, 0xc]         |         var_ch = r0;
                                         |     }
                                         | label_0:
    0x0002e240 ldr r3, [pc, 0x6c]        |     
    0x0002e244 add r3, pc, r3            |     r3 = pc + r3;
    0x0002e248 ldr r3, [r3]              |     r3 = *(0x2e2b0);
    0x0002e24c tst r3, 4                 |     
                                         |     if ((r3 & 4) != 0) {
    0x0002e250 beq 0x2e2a0               |         
    0x0002e254 ldr r3, [pc, 0x5c]        |         r3 = *(0x2e2b4);
    0x0002e258 ldr r3, [r5, r3]          |         r3 = *((r5 + r3));
    0x0002e25c ldr r5, [r3]              |         r5 = *(0x2e2b4);
    0x0002e260 bl 0x58fc                 |         getpid ();
    0x0002e264 ldr r3, [pc, 0x50]        |         r3 = *(0x2e2b8);
    0x0002e268 ldr r1, [pc, 0x50]        |         r1 = *(0x2e2bc);
    0x0002e26c add r3, pc, r3            |         r3 = pc + r3;
    0x0002e270 str r3, [sp]              |         *(sp) = r3;
    0x0002e274 ldr r3, [pc, 0x48]        |         r3 = *(0x2e2c0);
    0x0002e278 add r1, pc, r1            |         r1 = pc + r1;
    0x0002e27c add r3, pc, r3            |         r3 = pc + r3;
    0x0002e280 mov r2, r0                |         r2 = r0;
    0x0002e284 mov r0, r5                |         r0 = r5;
    0x0002e288 bl 0x5c50                 |         fprintf (r0, r1, r2, r3)
    0x0002e28c ldr r1, [pc, 0x34]        |         r1 = *(0x2e2c4);
    0x0002e290 ldr r2, [sp, 0xc]         |         r2 = var_ch;
    0x0002e294 add r1, pc, r1            |         r1 = pc + r1;
    0x0002e298 mov r0, r4                |         r0 = r4;
    0x0002e29c bl 0x2d0b4                |         fcn_0002d0b4 (r0);
                                         |     }
    0x0002e2a0 ldr r0, [sp, 0xc]         |     r0 = var_ch;
    0x0002e2a4 add sp, sp, 0x14          |     
    0x0002e2a8 pop {r4, r5, pc}          |     
                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x2e2cc */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0002e2cc ()                              | void fcn_0002e2cc (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_8h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0002e2cc push {r0, r1, r4, r5, r6, r7, r8, lr}     |     
    0x0002e2d0 ldr r8, [pc, 0xdc]                        |     r8 = *(0x2e3b0);
    0x0002e2d4 mov r6, r0                                |     r6 = r0;
    0x0002e2d8 mov r7, r1                                |     r7 = r1;
    0x0002e2dc bl 0x2d174                                |     fcn_0002d174 (r0);
    0x0002e2e0 add r8, pc, r8                            |     r8 = pc + r8;
    0x0002e2e4 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0002e2e8 beq 0x2e374                               |         goto label_2;
                                                         |     }
    0x0002e2ec ldr r2, [pc, 0xc4]                        |     r2 = *(0x2e3b4);
    0x0002e2f0 mov r1, r7                                |     r1 = r7;
    0x0002e2f4 add r2, pc, r2                            |     r2 = pc + r2;
    0x0002e2f8 bl 0x339ec                                |     r0 = fcn_000339ec (r0, r1);
    0x0002e2fc subs r4, r0, 0                            |     r4 = r0 - 0;
                                                         |     if (r4 != r0) {
    0x0002e300 bne 0x2e378                               |         goto label_3;
                                                         |     }
                                                         | label_0:
    0x0002e304 mov r4, 0                                 |     r4 = 0;
                                                         |     do {
                                                         | label_1:
    0x0002e308 ldr r3, [pc, 0xac]                        |         
    0x0002e30c add r3, pc, r3                            |         r3 = pc + r3;
    0x0002e310 ldr r3, [r3]                              |         r3 = *(0x2e3b8);
    0x0002e314 tst r3, 4                                 |         
                                                         |         if ((r3 & 4) != 0) {
    0x0002e318 beq 0x2e368                               |             
    0x0002e31c ldr r3, [pc, 0x9c]                        |             r3 = *(0x2e3bc);
    0x0002e320 ldr r3, [r8, r3]                          |             r3 = *((r8 + r3));
    0x0002e324 ldr r5, [r3]                              |             r5 = *(0x2e3bc);
    0x0002e328 bl 0x58fc                                 |             getpid ();
    0x0002e32c ldr r3, [pc, 0x90]                        |             r3 = *(0x2e3c0);
    0x0002e330 ldr r1, [pc, 0x90]                        |             r1 = *(0x2e3c4);
    0x0002e334 add r3, pc, r3                            |             r3 = pc + r3;
    0x0002e338 str r3, [sp]                              |             *(sp) = r3;
    0x0002e33c ldr r3, [pc, 0x88]                        |             r3 = *(0x2e3c8);
    0x0002e340 add r1, pc, r1                            |             r1 = pc + r1;
    0x0002e344 add r3, pc, r3                            |             r3 = pc + r3;
    0x0002e348 mov r2, r0                                |             r2 = r0;
    0x0002e34c mov r0, r5                                |             r0 = r5;
    0x0002e350 bl 0x5c50                                 |             fprintf (r0, r1, r2, r3)
    0x0002e354 ldr r1, [pc, 0x74]                        |             r1 = *(0x2e3cc);
    0x0002e358 mov r2, r4                                |             r2 = r4;
    0x0002e35c add r1, pc, r1                            |             r1 = pc + r1;
    0x0002e360 mov r0, r6                                |             r0 = r6;
    0x0002e364 bl 0x2d0b4                                |             fcn_0002d0b4 (r0);
                                                         |         }
    0x0002e368 mov r0, r4                                |         r0 = r4;
    0x0002e36c add sp, sp, 8                             |         
    0x0002e370 pop {r4, r5, r6, r7, r8, pc}              |         
                                                         | label_2:
    0x0002e374 mvn r4, 0x15                              |         r4 = ~0x15;
                                                         | label_3:
    0x0002e378 ldr r3, [r6, 0x8c]                        |         r3 = *((r6 + 0x8c));
    0x0002e37c ands r5, r3, 0x40                         |         r5 = r3 & 0x40;
    0x0002e380 bne 0x2e308                               |         
                                                         |     } while (r5 != r3);
    0x0002e384 mov r0, r6                                |     r0 = r6;
    0x0002e388 bl 0x2e04c                                |     r0 = fcn_0002e04c (r0);
    0x0002e38c cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0002e390 beq 0x2e3a4                               |         
    0x0002e394 cmp r7, 0                                 |         
    0x0002e398 ldrdne r2, r3, [r0, 0x18]                 |         __asm ("ldrdne r2, r3, [r0, 0x18]");
    0x0002e39c strdne r2, r3, [r7]                       |         __asm ("strdne r2, r3, [r7]");
    0x0002e3a0 b 0x2e304                                 |         goto label_0;
                                                         |     }
    0x0002e3a4 bl 0x60ac                                 |     r0 = errno_location ();
    0x0002e3a8 ldr r4, [r0]                              |     r4 = *(r0);
    0x0002e3ac rsb r4, r4, 0                             |     r4 -= ;
    0x0002e3b0 b 0x2e308                                 |     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 @ 0x2e3d4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0002e3d4 ()                              | void fcn_0002e3d4 (int32_t arg1, char * arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0002e3d4 push {r0, r1, r2, r4, r5, r6, r7, lr}     |     
    0x0002e3d8 ldr r6, [pc, 0x1b0]                       |     r6 = *(0x2e58c);
    0x0002e3dc mov r4, r0                                |     r4 = r0;
    0x0002e3e0 bl 0x2d5dc                                |     fcn_0002d5dc (r0, r1);
    0x0002e3e4 add r6, pc, r6                            |     r6 = pc + r6;
    0x0002e3e8 subs r5, r0, 0                            |     r5 = r0 - 0;
                                                         |     if (r5 != r0) {
    0x0002e3ec bne 0x2e478                               |         goto label_0;
                                                         |     }
    0x0002e3f0 ldr r3, [r4, 0x1a0]                       |     r3 = *((r4 + 0x1a0));
    0x0002e3f4 tst r3, 3                                 |     
                                                         |     if ((r3 & 3) == 0) {
    0x0002e3f8 beq 0x2e478                               |         goto label_0;
                                                         |     }
    0x0002e3fc mov r0, r4                                |     r0 = r4;
    0x0002e400 bl 0x2dfec                                |     r0 = fcn_0002dfec (r0);
    0x0002e404 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0002e408 bne 0x2e484                               |         goto label_1;
                                                         |     }
    0x0002e40c ldr r3, [pc, 0x180]                       |     
    0x0002e410 add r3, pc, r3                            |     r3 = pc + r3;
    0x0002e414 ldr r3, [r3]                              |     r3 = *(0x2e590);
    0x0002e418 tst r3, 8                                 |     
                                                         |     if ((r3 & 8) != 0) {
    0x0002e41c beq 0x2e46c                               |         
    0x0002e420 ldr r3, [pc, 0x170]                       |         r3 = *(0x2e594);
    0x0002e424 ldr r3, [r6, r3]                          |         r3 = *((r6 + r3));
    0x0002e428 ldr r5, [r3]                              |         r5 = *(0x2e594);
    0x0002e42c bl 0x58fc                                 |         getpid ();
    0x0002e430 ldr r3, [pc, 0x164]                       |         r3 = *(0x2e598);
    0x0002e434 ldr r1, [pc, 0x164]                       |         r1 = *(0x2e59c);
    0x0002e438 add r3, pc, r3                            |         r3 = pc + r3;
    0x0002e43c str r3, [sp]                              |         *(sp) = r3;
    0x0002e440 ldr r3, [pc, 0x15c]                       |         r3 = *(0x2e5a0);
    0x0002e444 add r1, pc, r1                            |         r1 = pc + r1;
    0x0002e448 add r3, pc, r3                            |         r3 = pc + r3;
    0x0002e44c mov r2, r0                                |         r2 = r0;
    0x0002e450 mov r0, r5                                |         r0 = r5;
    0x0002e454 bl 0x5c50                                 |         fprintf (r0, r1, r2, r3)
    0x0002e458 ldr r1, [pc, 0x148]                       |         r1 = *(0x2e5a4);
    0x0002e45c mov r2, r4                                |         r2 = r4;
    0x0002e460 add r1, pc, r1                            |         r1 = pc + r1;
    0x0002e464 add r0, r4, 0x180                         |         r0 = r4 + 0x180;
    0x0002e468 bl 0x2d0b4                                |         r0 = fcn_0002d0b4 (r0);
                                                         |     }
    0x0002e46c bl 0x60ac                                 |     r0 = errno_location ();
    0x0002e470 ldr r5, [r0]                              |     r5 = *(r0);
    0x0002e474 rsb r5, r5, 0                             |     r5 -= ;
                                                         |     do {
                                                         | label_0:
    0x0002e478 mov r0, r5                                |         r0 = r5;
    0x0002e47c add sp, sp, 0xc                           |         
    0x0002e480 pop {r4, r5, r6, r7, pc}                  |         
                                                         | label_1:
    0x0002e484 ldr r3, [pc, 0x120]                       |         
    0x0002e488 add r3, pc, r3                            |         r3 = pc + r3;
    0x0002e48c ldr r3, [r3]                              |         r3 = *(0x2e5a8);
    0x0002e490 tst r3, 8                                 |         
                                                         |         if ((r3 & 8) != 0) {
    0x0002e494 beq 0x2e4e4                               |             
    0x0002e498 ldr r3, [pc, 0xf8]                        |             r3 = *(0x2e594);
    0x0002e49c ldr r3, [r6, r3]                          |             r3 = *((r6 + r3));
    0x0002e4a0 ldr r7, [r3]                              |             r7 = *(0x2e594);
    0x0002e4a4 bl 0x58fc                                 |             getpid ();
    0x0002e4a8 ldr r3, [pc, 0x100]                       |             r3 = *(0x2e5ac);
    0x0002e4ac ldr r1, [pc, 0x100]                       |             r1 = *(0x2e5b0);
    0x0002e4b0 add r3, pc, r3                            |             r3 = pc + r3;
    0x0002e4b4 str r3, [sp]                              |             *(sp) = r3;
    0x0002e4b8 ldr r3, [pc, 0xf8]                        |             r3 = *(0x2e5b4);
    0x0002e4bc add r1, pc, r1                            |             r1 = pc + r1;
    0x0002e4c0 add r3, pc, r3                            |             r3 = pc + r3;
    0x0002e4c4 mov r2, r0                                |             r2 = r0;
    0x0002e4c8 mov r0, r7                                |             r0 = r7;
    0x0002e4cc bl 0x5c50                                 |             fprintf (r0, r1, r2, r3)
    0x0002e4d0 ldr r1, [pc, 0xe4]                        |             r1 = *(0x2e5b8);
    0x0002e4d4 mov r2, r4                                |             r2 = r4;
    0x0002e4d8 add r1, pc, r1                            |             r1 = pc + r1;
    0x0002e4dc add r0, r4, 0x180                         |             r0 = r4 + 0x180;
    0x0002e4e0 bl 0x2d0b4                                |             fcn_0002d0b4 (r0);
                                                         |         }
    0x0002e4e4 mov r1, 0                                 |         r1 = 0;
    0x0002e4e8 mov r0, r4                                |         r0 = r4;
    0x0002e4ec bl 0x2e2cc                                |         fcn_0002e2cc (r0, r1);
    0x0002e4f0 ldr r2, [r4, 0x1a0]                       |         r2 = *((r4 + 0x1a0));
    0x0002e4f4 mov r3, r0                                |         r3 = r0;
    0x0002e4f8 clz r0, r0                                |         r0 &= r0;
    0x0002e4fc lsr r0, r0, 5                             |         r0 >>= 5;
    0x0002e500 ands r1, r0, r2, lsr 1                    |         r1 = r0 & (r2 >> 1);
    0x0002e504 bne 0x2e478                               |         
                                                         |     } while (r1 != r0);
    0x0002e508 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x0002e50c andne r3, r2, 1                           |         r3 = r2 & 1;
                                                         |     }
                                                         |     if (r3 != 0) {
    0x0002e510 moveq r3, 0                               |         r3 = 0;
                                                         |     }
    0x0002e514 cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x0002e518 bne 0x2e478                               |         goto label_0;
                                                         |     }
    0x0002e51c ldr r3, [pc, 0x9c]                        |     
    0x0002e520 add r3, pc, r3                            |     r3 = pc + r3;
    0x0002e524 ldr r3, [r3]                              |     r3 = *(0x2e5bc);
    0x0002e528 tst r3, 8                                 |     
                                                         |     if ((r3 & 8) != 0) {
    0x0002e52c beq 0x2e57c                               |         
    0x0002e530 ldr r3, [pc, 0x60]                        |         r3 = *(0x2e594);
    0x0002e534 ldr r3, [r6, r3]                          |         r3 = *((r6 + r3));
    0x0002e538 ldr r5, [r3]                              |         r5 = *(0x2e594);
    0x0002e53c bl 0x58fc                                 |         getpid ();
    0x0002e540 ldr r3, [pc, 0x7c]                        |         r3 = *(0x2e5c0);
    0x0002e544 ldr r1, [pc, 0x7c]                        |         r1 = *(0x2e5c4);
    0x0002e548 add r3, pc, r3                            |         r3 = pc + r3;
    0x0002e54c str r3, [sp]                              |         *(sp) = r3;
    0x0002e550 ldr r3, [pc, 0x74]                        |         r3 = *(0x2e5c8);
    0x0002e554 add r1, pc, r1                            |         r1 = pc + r1;
    0x0002e558 add r3, pc, r3                            |         r3 = pc + r3;
    0x0002e55c mov r2, r0                                |         r2 = r0;
    0x0002e560 mov r0, r5                                |         r0 = r5;
    0x0002e564 bl 0x5c50                                 |         fprintf (r0, r1, r2, r3)
    0x0002e568 ldr r1, [pc, 0x60]                        |         r1 = *(0x2e5cc);
    0x0002e56c mov r2, r4                                |         r2 = r4;
    0x0002e570 add r1, pc, r1                            |         r1 = pc + r1;
    0x0002e574 add r0, r4, 0x180                         |         r0 = r4 + 0x180;
    0x0002e578 bl 0x2d0b4                                |         fcn_0002d0b4 (r0);
                                                         |     }
    0x0002e57c mov r1, 0                                 |     r1 = 0;
    0x0002e580 mov r0, r4                                |     r0 = r4;
    0x0002e584 bl 0x2d5dc                                |     fcn_0002d5dc (r0, r1);
    0x0002e588 mov r5, 1                                 |     r5 = 1;
    0x0002e58c b 0x2e478                                 |     goto label_0;
                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x2e5d4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0002e5d4 ()                                  | void fcn_0002e5d4 (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     char * format;
                                                             |     int32_t var_10h;
                                                             |     char * s;
                                                             |     int32_t var_194h;
                                                             |     r0 = arg1;
    0x0002e5d4 ldr r3, [pc, 0x1c8]                           |     
    0x0002e5d8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x0002e5dc ldr r7, [pc, 0x1c4]                           |     r7 = *(0x2e7a4);
    0x0002e5e0 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002e5e4 ldr r3, [r3]                                  |     r3 = *(0x2e7a0);
    0x0002e5e8 add r7, pc, r7                                |     r7 = pc + r7;
    0x0002e5ec tst r3, 8                                     |     
    0x0002e5f0 sub sp, sp, 0x194                             |     
    0x0002e5f4 mov r5, r0                                    |     r5 = r0;
    0x0002e5f8 add r8, r0, 0x180                             |     r8 = r0 + 0x180;
                                                             |     if ((r3 & 8) != 0) {
    0x0002e5fc beq 0x2e648                                   |         
    0x0002e600 ldr r3, [pc, 0x1a4]                           |         r3 = *(0x2e7a8);
    0x0002e604 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x0002e608 ldr r4, [r3]                                  |         r4 = *(0x2e7a8);
    0x0002e60c bl 0x58fc                                     |         getpid ();
    0x0002e610 ldr r3, [pc, 0x198]                           |         r3 = *(0x2e7ac);
    0x0002e614 ldr r1, [pc, 0x198]                           |         r1 = *(0x2e7b0);
    0x0002e618 add r3, pc, r3                                |         r3 = pc + r3;
    0x0002e61c str r3, [sp]                                  |         *(sp) = r3;
    0x0002e620 ldr r3, [pc, 0x190]                           |         r3 = *(0x2e7b4);
    0x0002e624 add r1, pc, r1                                |         r1 = pc + r1;
    0x0002e628 add r3, pc, r3                                |         r3 = pc + r3;
    0x0002e62c mov r2, r0                                    |         r2 = r0;
    0x0002e630 mov r0, r4                                    |         r0 = r4;
    0x0002e634 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x0002e638 ldr r1, [pc, 0x17c]                           |         r1 = *(0x2e7b8);
    0x0002e63c mov r0, r8                                    |         r0 = r8;
    0x0002e640 add r1, pc, r1                                |         r1 = pc + r1;
    0x0002e644 bl 0x2d0b4                                    |         fcn_0002d0b4 (r0);
                                                             |     }
    0x0002e648 ldr r3, [r5, 0x184]                           |     r3 = *((r5 + 0x184));
    0x0002e64c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0002e650 bne 0x2e664                                   |         
    0x0002e654 ldr r0, [pc, 0x164]                           |         r0 = *(0x2e7bc);
    0x0002e658 add r0, pc, r0                                |         r0 = pc + r0;
    0x0002e65c bl 0x5ec0                                     |         opendir ();
    0x0002e660 str r0, [r5, 0x184]                           |         *((r5 + 0x184)) = r0;
                                                             |     }
    0x0002e664 ldr r0, [r5, 0x184]                           |     r0 = *((r5 + 0x184));
    0x0002e668 cmp r0, 0                                     |     
    0x0002e66c bne 0x2e67c                                   |     
                                                             |     while (r0 == 0) {
    0x0002e670 mov r0, 1                                     |         r0 = 1;
                                                             | label_1:
    0x0002e674 add sp, sp, 0x194                             |         
    0x0002e678 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x0002e67c bl 0x5d28                                     |         dirfd ();
    0x0002e680 ldr r3, [pc, 0x13c]                           |         r3 = *(0x2e7c0);
    0x0002e684 ldr sl, [pc, 0x13c]                           |         sl = *(0x2e7c4);
    0x0002e688 add r3, pc, r3                                |         r3 = pc + r3;
    0x0002e68c str r3, [sp, 8]                               |         var_8h = r3;
    0x0002e690 ldr r3, [pc, 0x134]                           |         r3 = *(0x2e7c8);
    0x0002e694 add sl, pc, sl                                |         sl = pc + sl;
    0x0002e698 add r3, pc, r3                                |         r3 = pc + r3;
    0x0002e69c str r3, [sp, 0xc]                             |         format = r3;
    0x0002e6a0 mov sb, r0                                    |         sb = r0;
                                                             | label_0:
    0x0002e6a4 ldr r0, [r5, 0x184]                           |         r0 = *((r5 + 0x184));
    0x0002e6a8 bl 0x5dac                                     |         r0 = readdir64 ();
    0x0002e6ac cmp r0, 0                                     |         
    0x0002e6b0 beq 0x2e670                                   |         
                                                             |     }
    0x0002e6b4 ldr r3, [sl]                                  |     r3 = *(sl);
    0x0002e6b8 add r4, r0, 0x13                              |     r4 = r0 + 0x13;
    0x0002e6bc tst r3, 8                                     |     
                                                             |     if ((r3 & 8) != 0) {
    0x0002e6c0 beq 0x2e708                                   |         
    0x0002e6c4 ldr r3, [pc, 0xe0]                            |         r3 = *(0x2e7a8);
    0x0002e6c8 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x0002e6cc ldr r6, [r3]                                  |         r6 = *(0x2e7a8);
    0x0002e6d0 bl 0x58fc                                     |         getpid ();
    0x0002e6d4 ldr r3, [pc, 0xf4]                            |         r3 = *(0x2e7cc);
    0x0002e6d8 ldr r1, [sp, 0xc]                             |         r1 = format;
    0x0002e6dc add r3, pc, r3                                |         r3 = pc + r3;
    0x0002e6e0 str r3, [sp]                                  |         *(sp) = r3;
    0x0002e6e4 ldr r3, [sp, 8]                               |         r3 = var_8h;
    0x0002e6e8 mov r2, r0                                    |         r2 = r0;
    0x0002e6ec mov r0, r6                                    |         r0 = r6;
    0x0002e6f0 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x0002e6f4 ldr r1, [pc, 0xd8]                            |         r1 = *(0x2e7d0);
    0x0002e6f8 mov r2, r4                                    |         r2 = r4;
    0x0002e6fc add r1, pc, r1                                |         r1 = pc + r1;
    0x0002e700 mov r0, r8                                    |         r0 = r8;
    0x0002e704 bl 0x2d0b4                                    |         fcn_0002d0b4 (r0);
                                                             |     }
    0x0002e708 ldr r1, [pc, 0xc8]                            |     r1 = *(0x2e7d4);
    0x0002e70c mov r0, r4                                    |     r0 = r4;
    0x0002e710 add r1, pc, r1                                |     r1 = pc + r1;
    0x0002e714 bl 0x5efc                                     |     r0 = strcmp (r0, r1);
    0x0002e718 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0002e71c beq 0x2e6a4                                   |         goto label_0;
                                                             |     }
    0x0002e720 ldr r1, [pc, 0xb4]                            |     r1 = *(0x2e7d8);
    0x0002e724 mov r0, r4                                    |     r0 = r4;
    0x0002e728 add r1, pc, r1                                |     r1 = pc + r1;
    0x0002e72c bl 0x5efc                                     |     r0 = strcmp (r0, r1);
    0x0002e730 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0002e734 beq 0x2e6a4                                   |         goto label_0;
                                                             |     }
    0x0002e738 ldr r1, [pc, 0xa0]                            |     r1 = *(0x2e7dc);
    0x0002e73c mov r2, 4                                     |     r2 = 4;
    0x0002e740 add r1, pc, r1                                |     r1 = pc + r1;
    0x0002e744 mov r0, r4                                    |     r0 = r4;
    0x0002e748 bl 0x5d34                                     |     r0 = strncmp (r0, r1, r2);
    0x0002e74c subs fp, r0, 0                                |     
                                                             |     if (fp != r0) {
    0x0002e750 bne 0x2e6a4                                   |         goto label_0;
                                                             |     }
    0x0002e754 ldr r2, [pc, 0x88]                            |     r2 = *(0x2e7e0);
    0x0002e758 add r6, sp, 0x7c                              |     r6 += s;
    0x0002e75c mov r3, r4                                    |     r3 = r4;
    0x0002e760 add r2, pc, r2                                |     r2 = pc + r2;
    0x0002e764 ldr r1, [pc, 0x7c]                            |     r1 = *(0x2e7e4);
    0x0002e768 mov r0, r6                                    |     r0 = r6;
    0x0002e76c bl 0x5830                                     |     snprintf (r0, r1, r2, r3);
    0x0002e770 mov r3, fp                                    |     r3 = fp;
    0x0002e774 add r2, sp, 0x10                              |     r2 += var_10h;
    0x0002e778 mov r1, r6                                    |     r1 = r6;
    0x0002e77c mov r0, sb                                    |     r0 = sb;
    0x0002e780 bl 0x5f44                                     |     r0 = fstatat64 ();
    0x0002e784 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0002e788 bne 0x2e6a4                                   |         goto label_0;
                                                             |     }
    0x0002e78c mov r1, r4                                    |     r1 = r4;
    0x0002e790 mov r0, r5                                    |     r0 = r5;
    0x0002e794 bl 0x2e3d4                                    |     r0 = fcn_0002e3d4 (r0, r1);
    0x0002e798 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0002e79c bne 0x2e6a4                                   |         goto label_0;
                                                             |     }
    0x0002e7a0 b 0x2e674                                     |     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 @ 0x2e7ec */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0002e7ec ()                              | void fcn_0002e7ec (int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_8h;
                                                         |     int32_t var_4h;
                                                         |     int32_t var_10h;
                                                         |     char * s;
                                                         |     int32_t var_1080h;
                                                         |     int32_t var_10h_2;
                                                         |     r0 = arg1;
    0x0002e7ec ldr r3, [pc, 0x17c]                       |     
    0x0002e7f0 push {r4, r5, r6, r7, r8, sb, sl, lr}     |     
    0x0002e7f4 ldr r6, [pc, 0x178]                       |     r6 = *(0x2e970);
    0x0002e7f8 add r3, pc, r3                            |     r3 = pc + r3;
    0x0002e7fc ldr r3, [r3]                              |     r3 = *(0x2e96c);
    0x0002e800 sub sp, sp, 0x1080                        |     
    0x0002e804 tst r3, 8                                 |     
    0x0002e808 add r6, pc, r6                            |     r6 = pc + r6;
    0x0002e80c sub sp, sp, 0x10                          |     
    0x0002e810 mov r4, r0                                |     r4 = r0;
    0x0002e814 add r8, r0, 0x180                         |     r8 = r0 + 0x180;
                                                         |     if ((r3 & 8) != 0) {
    0x0002e818 beq 0x2e864                               |         
    0x0002e81c ldr r3, [pc, 0x154]                       |         r3 = *(0x2e974);
    0x0002e820 ldr r3, [r6, r3]                          |         r3 = *((r6 + r3));
    0x0002e824 ldr r5, [r3]                              |         r5 = *(0x2e974);
    0x0002e828 bl 0x58fc                                 |         getpid ();
    0x0002e82c ldr r3, [pc, 0x148]                       |         r3 = *(0x2e978);
    0x0002e830 ldr r1, [pc, 0x148]                       |         r1 = *(0x2e97c);
    0x0002e834 add r3, pc, r3                            |         r3 = pc + r3;
    0x0002e838 str r3, [sp]                              |         *(sp) = r3;
    0x0002e83c ldr r3, [pc, 0x140]                       |         r3 = *(0x2e980);
    0x0002e840 add r1, pc, r1                            |         r1 = pc + r1;
    0x0002e844 add r3, pc, r3                            |         r3 = pc + r3;
    0x0002e848 mov r2, r0                                |         r2 = r0;
    0x0002e84c mov r0, r5                                |         r0 = r5;
    0x0002e850 bl 0x5c50                                 |         fprintf (r0, r1, r2, r3)
    0x0002e854 ldr r1, [pc, 0x12c]                       |         r1 = *(0x2e984);
    0x0002e858 mov r0, r8                                |         r0 = r8;
    0x0002e85c add r1, pc, r1                            |         r1 = pc + r1;
    0x0002e860 bl 0x2d0b4                                |         fcn_0002d0b4 (r0);
                                                         |     }
    0x0002e864 ldr r3, [r4, 0x180]                       |     r3 = *((r4 + 0x180));
    0x0002e868 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x0002e86c bne 0x2e888                               |         
    0x0002e870 ldr r1, [pc, 0x114]                       |         r1 = *(0x2e988);
    0x0002e874 ldr r0, [pc, 0x114]                       |         r0 = *(0x2e98c);
    0x0002e878 add r1, pc, r1                            |         r1 = pc + r1;
    0x0002e87c add r0, pc, r0                            |         r0 = pc + r0;
    0x0002e880 bl 0x6238                                 |         fopen64 ();
    0x0002e884 str r0, [r4, 0x180]                       |         *((r4 + 0x180)) = r0;
                                                         |     }
    0x0002e888 ldr r3, [r4, 0x180]                       |     r3 = *((r4 + 0x180));
    0x0002e88c cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x0002e890 beq 0x2e8c0                               |         goto label_2;
                                                         |     }
    0x0002e894 ldr sl, [pc, 0xf8]                        |     sl = *(0x2e990);
    0x0002e898 add sb, sp, 0x10                          |     sb += var_10h;
    0x0002e89c sub r7, sb, 4                             |     r7 -= var_4h;
    0x0002e8a0 add sl, pc, sl                            |     sl = pc + sl;
                                                         |     do {
                                                         | label_0:
    0x0002e8a4 add r5, sp, 0x90                          |         r5 += s;
    0x0002e8a8 ldr r2, [r4, 0x180]                       |         r2 = *((r4 + 0x180));
    0x0002e8ac mov r1, 0x1000                            |         r1 = 0x1000;
    0x0002e8b0 mov r0, r5                                |         r0 = r5;
    0x0002e8b4 bl 0x5920                                 |         r0 = fgets (r0, r1, r2);
    0x0002e8b8 cmp r0, 0                                 |         
                                                         |         if (r0 == 0) {
    0x0002e8bc bne 0x2e8d0                               |             
                                                         | label_2:
    0x0002e8c0 mov r0, 1                                 |             r0 = 1;
                                                         | label_1:
    0x0002e8c4 add sp, sp, 0x1080                        |             
    0x0002e8c8 add sp, sp, 0x10                          |             
    0x0002e8cc pop {r4, r5, r6, r7, r8, sb, sl, pc}      |             
                                                         |         }
    0x0002e8d0 mov r3, r7                                |         r3 = r7;
    0x0002e8d4 sub r2, sb, 8                             |         r2 -= var_8h;
    0x0002e8d8 mov r1, sl                                |         r1 = sl;
    0x0002e8dc mov r0, r5                                |         r0 = r5;
    0x0002e8e0 bl 0x5df4                                 |         r0 = sscanf (r0, r1, r2);
    0x0002e8e4 cmp r0, 2                                 |         
    0x0002e8e8 bne 0x2e8a4                               |         
                                                         |     } while (r0 != 2);
    0x0002e8ec ldr r3, [r5, -0x88]                       |     r3 = var_8h;
    0x0002e8f0 cmp r3, 7                                 |     
                                                         |     if (r3 != 7) {
    0x0002e8f4 bne 0x2e8a4                               |         goto label_0;
                                                         |     }
    0x0002e8f8 ldr r3, [pc, 0x98]                        |     
    0x0002e8fc add r3, pc, r3                            |     r3 = pc + r3;
    0x0002e900 ldr r3, [r3]                              |     r3 = *(0x2e994);
    0x0002e904 tst r3, 8                                 |     
                                                         |     if ((r3 & 8) != 0) {
    0x0002e908 beq 0x2e958                               |         
    0x0002e90c ldr r3, [pc, 0x64]                        |         r3 = *(0x2e974);
    0x0002e910 ldr r3, [r6, r3]                          |         r3 = *((r6 + r3));
    0x0002e914 ldr r5, [r3]                              |         r5 = *(0x2e974);
    0x0002e918 bl 0x58fc                                 |         getpid ();
    0x0002e91c ldr r3, [pc, 0x78]                        |         r3 = *(0x2e998);
    0x0002e920 ldr r1, [pc, 0x78]                        |         r1 = *(0x2e99c);
    0x0002e924 add r3, pc, r3                            |         r3 = pc + r3;
    0x0002e928 str r3, [sp]                              |         *(sp) = r3;
    0x0002e92c ldr r3, [pc, 0x70]                        |         r3 = *(0x2e9a0);
    0x0002e930 add r1, pc, r1                            |         r1 = pc + r1;
    0x0002e934 add r3, pc, r3                            |         r3 = pc + r3;
    0x0002e938 mov r2, r0                                |         r2 = r0;
    0x0002e93c mov r0, r5                                |         r0 = r5;
    0x0002e940 bl 0x5c50                                 |         fprintf (r0, r1, r2, r3)
    0x0002e944 ldr r1, [pc, 0x5c]                        |         r1 = *(0x2e9a4);
    0x0002e948 mov r2, r7                                |         r2 = r7;
    0x0002e94c add r1, pc, r1                            |         r1 = pc + r1;
    0x0002e950 mov r0, r8                                |         r0 = r8;
    0x0002e954 bl 0x2d0b4                                |         fcn_0002d0b4 (r0);
                                                         |     }
    0x0002e958 mov r1, r7                                |     r1 = r7;
    0x0002e95c mov r0, r4                                |     r0 = r4;
    0x0002e960 bl 0x2e3d4                                |     r0 = fcn_0002e3d4 (r0, r1);
    0x0002e964 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0002e968 bne 0x2e8a4                               |         goto label_0;
                                                         |     }
    0x0002e96c b 0x2e8c4                                 |     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 @ 0x2e9ac */
                                                     | #include <stdint.h>
                                                     |  
                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                     |  
    ; (fcn) fcn.0002e9ac ()                          | void fcn_0002e9ac (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     char * s;
                                                     |     int32_t var_18h;
                                                     |     r0 = arg1;
    0x0002e9ac push {r4, r5, r6, r7, r8, lr}         |     
    0x0002e9b0 ldr r5, [pc, 0x298]                   |     r5 = *(0x2ec4c);
    0x0002e9b4 subs r4, r0, 0                        |     r4 = r0 - 0;
    0x0002e9b8 add r5, pc, r5                        |     r5 = pc + r5;
    0x0002e9bc sub sp, sp, 0x18                      |     
                                                     |     if (r4 != r0) {
    0x0002e9c0 mvneq r0, 0x15                        |         r0 = ~0x15;
                                                     |     }
                                                     |     if (r4 == r0) {
    0x0002e9c4 beq 0x2ea6c                           |         goto label_1;
                                                     |     }
    0x0002e9c8 ldrb r3, [r4, 0x19c]                  |     r3 = *((r4 + 0x19c));
    0x0002e9cc tst r3, 1                             |     
                                                     |     if ((r3 & 1) != 0) {
    0x0002e9d0 bne 0x2ea68                           |         goto label_5;
                                                     |     }
    0x0002e9d4 ldr r3, [pc, 0x278]                   |     
    0x0002e9d8 add r6, r4, 0x180                     |     r6 = r4 + 0x180;
    0x0002e9dc add r3, pc, r3                        |     r3 = pc + r3;
    0x0002e9e0 ldr r3, [r3]                          |     r3 = *(0x2ec50);
    0x0002e9e4 tst r3, 8                             |     
                                                     |     if ((r3 & 8) != 0) {
    0x0002e9e8 beq 0x2ea34                           |         
    0x0002e9ec ldr r3, [pc, 0x264]                   |         r3 = *(0x2ec54);
    0x0002e9f0 ldr r3, [r5, r3]                      |         r3 = *((r5 + r3));
    0x0002e9f4 ldr r7, [r3]                          |         r7 = *(0x2ec54);
    0x0002e9f8 bl 0x58fc                             |         getpid ();
    0x0002e9fc ldr r3, [pc, 0x258]                   |         r3 = *(0x2ec58);
    0x0002ea00 ldr r1, [pc, 0x258]                   |         r1 = *(0x2ec5c);
    0x0002ea04 add r3, pc, r3                        |         r3 = pc + r3;
    0x0002ea08 str r3, [sp]                          |         *(sp) = r3;
    0x0002ea0c ldr r3, [pc, 0x250]                   |         r3 = *(0x2ec60);
    0x0002ea10 add r1, pc, r1                        |         r1 = pc + r1;
    0x0002ea14 add r3, pc, r3                        |         r3 = pc + r3;
    0x0002ea18 mov r2, r0                            |         r2 = r0;
    0x0002ea1c mov r0, r7                            |         r0 = r7;
    0x0002ea20 bl 0x5c50                             |         fprintf (r0, r1, r2, r3)
    0x0002ea24 ldr r1, [pc, 0x23c]                   |         r1 = *(0x2ec64);
    0x0002ea28 mov r0, r6                            |         r0 = r6;
    0x0002ea2c add r1, pc, r1                        |         r1 = pc + r1;
    0x0002ea30 bl 0x2d0b4                            |         fcn_0002d0b4 (r0);
                                                     |     }
    0x0002ea34 ldr r3, [r4, 0x1a0]                   |     r3 = *((r4 + 0x1a0));
    0x0002ea38 tst r3, 2                             |     
                                                     |     if ((r3 & 2) == 0) {
    0x0002ea3c beq 0x2ea7c                           |         goto label_6;
                                                     |     }
    0x0002ea40 ldr r3, [r4, 0x8c]                    |     r3 = *((r4 + 0x8c));
    0x0002ea44 mov r0, r4                            |     r0 = r4;
    0x0002ea48 and r3, r3, 0x60                      |     r3 &= 0x60;
    0x0002ea4c cmp r3, 0x40                          |     
                                                     |     if (r3 != 0x40) {
    0x0002ea50 bne 0x2ea74                           |         goto label_7;
                                                     |     }
    0x0002ea54 bl 0x2e5d4                            |     r0 = fcn_0002e5d4 (r0);
                                                     |     do {
    0x0002ea58 cmp r0, 0                             |         
                                                     |         if (r0 != 0) {
    0x0002ea5c beq 0x2ea6c                           |             
                                                     | label_0:
    0x0002ea60 mov r0, r4                            |             r0 = r4;
    0x0002ea64 bl 0x2de4c                            |             fcn_0002de4c (r0);
                                                     | label_5:
    0x0002ea68 mov r0, 1                             |             r0 = 1;
                                                     |         }
                                                     | label_1:
    0x0002ea6c add sp, sp, 0x18                      |         
    0x0002ea70 pop {r4, r5, r6, r7, r8, pc}          |         
                                                     | label_7:
    0x0002ea74 bl 0x2e7ec                            |         fcn_0002e7ec (r0);
    0x0002ea78 b 0x2ea58                             |         
                                                     |     } while (1);
                                                     | label_6:
    0x0002ea7c ldrb r3, [r4, 0x19c]                  |     r3 = *((r4 + 0x19c));
    0x0002ea80 tst r3, 2                             |     
                                                     |     if ((r3 & 2) != 0) {
    0x0002ea84 beq 0x2eb14                           |         
    0x0002ea88 ldr r3, [pc, 0x1dc]                   |         
    0x0002ea8c add r3, pc, r3                        |         r3 = pc + r3;
    0x0002ea90 ldr r3, [r3]                          |         r3 = *(0x2ec68);
    0x0002ea94 tst r3, 8                             |         
                                                     |         if ((r3 & 8) != 0) {
    0x0002ea98 beq 0x2eae4                           |             
    0x0002ea9c ldr r3, [pc, 0x1b4]                   |             r3 = *(0x2ec54);
    0x0002eaa0 ldr r3, [r5, r3]                      |             r3 = *((r5 + r3));
    0x0002eaa4 ldr r7, [r3]                          |             r7 = *(0x2ec54);
    0x0002eaa8 bl 0x58fc                             |             getpid ();
    0x0002eaac ldr r3, [pc, 0x1bc]                   |             r3 = *(0x2ec6c);
    0x0002eab0 ldr r1, [pc, 0x1bc]                   |             r1 = *(0x2ec70);
    0x0002eab4 add r3, pc, r3                        |             r3 = pc + r3;
    0x0002eab8 str r3, [sp]                          |             *(sp) = r3;
    0x0002eabc ldr r3, [pc, 0x1b4]                   |             r3 = *(0x2ec74);
    0x0002eac0 add r1, pc, r1                        |             r1 = pc + r1;
    0x0002eac4 add r3, pc, r3                        |             r3 = pc + r3;
    0x0002eac8 mov r2, r0                            |             r2 = r0;
    0x0002eacc mov r0, r7                            |             r0 = r7;
    0x0002ead0 bl 0x5c50                             |             fprintf (r0, r1, r2, r3)
    0x0002ead4 ldr r1, [pc, 0x1a0]                   |             r1 = *(0x2ec78);
    0x0002ead8 mov r0, r6                            |             r0 = r6;
    0x0002eadc add r1, pc, r1                        |             r1 = pc + r1;
    0x0002eae0 bl 0x2d0b4                            |             fcn_0002d0b4 (r0);
                                                     |         }
    0x0002eae4 ldr r3, [r4, 0x188]                   |         r3 = *((r4 + 0x188));
    0x0002eae8 ldr r8, [pc, 0x190]                   |         r8 = *(0x2ec7c);
    0x0002eaec add r3, r3, 1                         |         r3++;
    0x0002eaf0 add r8, pc, r8                        |         r8 = pc + r8;
    0x0002eaf4 add r7, sp, 8                         |         r7 += s;
    0x0002eaf8 str r3, [r4, 0x188]                   |         *((r4 + 0x188)) = r3;
                                                     | label_3:
    0x0002eafc ldr r3, [r4, 0x188]                   |         r3 = *((r4 + 0x188));
    0x0002eb00 cmp r3, 7                             |         
                                                     |         if (r3 <= 7) {
    0x0002eb04 ble 0x2ec0c                           |             goto label_8;
                                                     |         }
    0x0002eb08 ldrb r3, [r4, 0x19c]                  |         r3 = *((r4 + 0x19c));
    0x0002eb0c bic r3, r3, 2                         |         r3 = BIT_MASK (r3, 2);
    0x0002eb10 strb r3, [r4, 0x19c]                  |         *((r4 + 0x19c)) = r3;
                                                     |     }
    0x0002eb14 ldr r3, [r4, 0x18c]                   |     r3 = *((r4 + 0x18c));
    0x0002eb18 cmp r3, 0                             |     
                                                     |     if (r3 == 0) {
    0x0002eb1c bne 0x2eba8                           |         
    0x0002eb20 ldr r3, [pc, 0x15c]                   |         
    0x0002eb24 add r3, pc, r3                        |         r3 = pc + r3;
    0x0002eb28 ldr r3, [r3]                          |         r3 = *(0x2ec80);
    0x0002eb2c tst r3, 8                             |         
                                                     |         if ((r3 & 8) != 0) {
    0x0002eb30 beq 0x2eb7c                           |             
    0x0002eb34 ldr r3, [pc, 0x11c]                   |             r3 = *(0x2ec54);
    0x0002eb38 ldr r3, [r5, r3]                      |             r3 = *((r5 + r3));
    0x0002eb3c ldr r5, [r3]                          |             r5 = *(0x2ec54);
    0x0002eb40 bl 0x58fc                             |             getpid ();
    0x0002eb44 ldr r3, [pc, 0x13c]                   |             r3 = *(0x2ec84);
    0x0002eb48 ldr r1, [pc, 0x13c]                   |             r1 = *(0x2ec88);
    0x0002eb4c add r3, pc, r3                        |             r3 = pc + r3;
    0x0002eb50 str r3, [sp]                          |             *(sp) = r3;
    0x0002eb54 ldr r3, [pc, 0x134]                   |             r3 = *(0x2ec8c);
    0x0002eb58 add r1, pc, r1                        |             r1 = pc + r1;
    0x0002eb5c add r3, pc, r3                        |             r3 = pc + r3;
    0x0002eb60 mov r2, r0                            |             r2 = r0;
    0x0002eb64 mov r0, r5                            |             r0 = r5;
    0x0002eb68 bl 0x5c50                             |             fprintf (r0, r1, r2, r3)
    0x0002eb6c ldr r1, [pc, 0x120]                   |             r1 = *(0x2ec90);
    0x0002eb70 mov r0, r6                            |             r0 = r6;
    0x0002eb74 add r1, pc, r1                        |             r1 = pc + r1;
    0x0002eb78 bl 0x2d0b4                            |             fcn_0002d0b4 (r0);
                                                     |         }
    0x0002eb7c ldr r3, [r4, 0x8c]                    |         r3 = *((r4 + 0x8c));
    0x0002eb80 add r1, r4, 0x18c                     |         r1 = r4 + 0x18c;
    0x0002eb84 tst r3, 0x80                          |         
                                                     |         if ((r3 & 0x80) == 0) {
    0x0002eb88 beq 0x2ec40                           |             goto label_9;
                                                     |         }
    0x0002eb8c ldr r0, [pc, 0x104]                   |         r0 = *(0x2ec94);
    0x0002eb90 mov r2, 0                             |         r2 = 0;
    0x0002eb94 add r0, pc, r0                        |         r0 = pc + r0;
                                                     | label_4:
    0x0002eb98 bl 0x2d368                            |         fcn_0002d368 (r0, r1);
    0x0002eb9c mvn r3, 0                             |         r3 = ~0;
    0x0002eba0 str r3, [r4, 0x188]                   |         *((r4 + 0x188)) = r3;
    0x0002eba4 str r0, [r4, 0x190]                   |         *((r4 + 0x190)) = r0;
                                                     |     }
    0x0002eba8 ldr r3, [r4, 0x188]                   |     r3 = *((r4 + 0x188));
    0x0002ebac ldr r6, [pc, 0xe8]                    |     r6 = *(0x2ec98);
    0x0002ebb0 add r3, r3, 1                         |     r3++;
    0x0002ebb4 add r6, pc, r6                        |     r6 = pc + r6;
    0x0002ebb8 add r5, sp, 8                         |     r5 += s;
    0x0002ebbc str r3, [r4, 0x188]                   |     *((r4 + 0x188)) = r3;
                                                     | label_2:
    0x0002ebc0 ldr r3, [r4, 0x188]                   |     r3 = *((r4 + 0x188));
    0x0002ebc4 ldr r2, [r4, 0x190]                   |     r2 = *((r4 + 0x190));
    0x0002ebc8 cmp r3, r2                            |     
                                                     |     if (r3 >= r2) {
    0x0002ebcc bge 0x2ea60                           |         goto label_0;
                                                     |     }
    0x0002ebd0 ldr r2, [r4, 0x18c]                   |     r2 = *((r4 + 0x18c));
    0x0002ebd4 mov r1, 0x10                          |     r1 = 0x10;
    0x0002ebd8 ldr r3, [r2, r3, lsl 2]               |     offset_0 = r3 << 2;
                                                     |     r3 = *((r2 + offset_0));
    0x0002ebdc mov r0, r5                            |     r0 = r5;
    0x0002ebe0 mov r2, r6                            |     r2 = r6;
    0x0002ebe4 bl 0x5830                             |     snprintf (r0, r1, r2, r3);
    0x0002ebe8 mov r1, r5                            |     r1 = r5;
    0x0002ebec mov r0, r4                            |     r0 = r4;
    0x0002ebf0 bl 0x2e3d4                            |     r0 = fcn_0002e3d4 (r0, r1);
    0x0002ebf4 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x0002ebf8 beq 0x2ea6c                           |         goto label_1;
                                                     |     }
    0x0002ebfc ldr r3, [r4, 0x188]                   |     r3 = *((r4 + 0x188));
    0x0002ec00 add r3, r3, 1                         |     r3++;
    0x0002ec04 str r3, [r4, 0x188]                   |     *((r4 + 0x188)) = r3;
    0x0002ec08 b 0x2ebc0                             |     goto label_2;
                                                     | label_8:
    0x0002ec0c mov r2, r8                            |     r2 = r8;
    0x0002ec10 mov r1, 0x10                          |     r1 = 0x10;
    0x0002ec14 mov r0, r7                            |     r0 = r7;
    0x0002ec18 bl 0x5830                             |     snprintf (r0, r1, r2, r3);
    0x0002ec1c mov r1, r7                            |     r1 = r7;
    0x0002ec20 mov r0, r4                            |     r0 = r4;
    0x0002ec24 bl 0x2e3d4                            |     r0 = fcn_0002e3d4 (r0, r1);
    0x0002ec28 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x0002ec2c beq 0x2ea6c                           |         goto label_1;
                                                     |     }
    0x0002ec30 ldr r3, [r4, 0x188]                   |     r3 = *((r4 + 0x188));
    0x0002ec34 add r3, r3, 1                         |     r3++;
    0x0002ec38 str r3, [r4, 0x188]                   |     *((r4 + 0x188)) = r3;
    0x0002ec3c b 0x2eafc                             |     goto label_3;
                                                     | label_9:
    0x0002ec40 ldr r0, [pc, 0x58]                    |     r0 = *(0x2ec9c);
    0x0002ec44 mov r2, 1                             |     r2 = 1;
    0x0002ec48 add r0, pc, r0                        |     r0 = pc + r0;
    0x0002ec4c b 0x2eb98                             |     goto label_4;
                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x2eda4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0002eda4 ()                                  | void fcn_0002eda4 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0002eda4 push {r0, r1, r4, r5, r6, r7, r8, lr}         |     
    0x0002eda8 ldr r8, [pc, 0xdc]                            |     r8 = *(0x2ee88);
    0x0002edac mov r6, r0                                    |     r6 = r0;
    0x0002edb0 mov r7, r1                                    |     r7 = r1;
    0x0002edb4 bl 0x2d174                                    |     fcn_0002d174 (r0);
    0x0002edb8 add r8, pc, r8                                |     r8 = pc + r8;
    0x0002edbc cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0002edc0 beq 0x2ee4c                                   |         goto label_2;
                                                             |     }
    0x0002edc4 ldr r2, [pc, 0xc4]                            |     r2 = *(0x2ee8c);
    0x0002edc8 mov r1, r7                                    |     r1 = r7;
    0x0002edcc add r2, pc, r2                                |     r2 = pc + r2;
    0x0002edd0 bl 0x339ec                                    |     r0 = fcn_000339ec (r0, r1);
    0x0002edd4 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 != r0) {
    0x0002edd8 bne 0x2ee50                                   |         goto label_3;
                                                             |     }
                                                             | label_0:
    0x0002eddc mov r4, 0                                     |     r4 = 0;
                                                             |     do {
                                                             | label_1:
    0x0002ede0 ldr r3, [pc, 0xac]                            |         
    0x0002ede4 add r3, pc, r3                                |         r3 = pc + r3;
    0x0002ede8 ldr r3, [r3]                                  |         r3 = *(0x2ee90);
    0x0002edec tst r3, 4                                     |         
                                                             |         if ((r3 & 4) != 0) {
    0x0002edf0 beq 0x2ee40                                   |             
    0x0002edf4 ldr r3, [pc, 0x9c]                            |             r3 = *(0x2ee94);
    0x0002edf8 ldr r3, [r8, r3]                              |             r3 = *((r8 + r3));
    0x0002edfc ldr r5, [r3]                                  |             r5 = *(0x2ee94);
    0x0002ee00 bl 0x58fc                                     |             getpid ();
    0x0002ee04 ldr r3, [pc, 0x90]                            |             r3 = *(0x2ee98);
    0x0002ee08 ldr r1, [pc, 0x90]                            |             r1 = *(0x2ee9c);
    0x0002ee0c add r3, pc, r3                                |             r3 = pc + r3;
    0x0002ee10 str r3, [sp]                                  |             *(sp) = r3;
    0x0002ee14 ldr r3, [pc, 0x88]                            |             r3 = *(0x2eea0);
    0x0002ee18 add r1, pc, r1                                |             r1 = pc + r1;
    0x0002ee1c add r3, pc, r3                                |             r3 = pc + r3;
    0x0002ee20 mov r2, r0                                    |             r2 = r0;
    0x0002ee24 mov r0, r5                                    |             r0 = r5;
    0x0002ee28 bl 0x5c50                                     |             fprintf (r0, r1, r2, r3)
    0x0002ee2c ldr r1, [pc, 0x74]                            |             r1 = *(0x2eea4);
    0x0002ee30 mov r2, r4                                    |             r2 = r4;
    0x0002ee34 add r1, pc, r1                                |             r1 = pc + r1;
    0x0002ee38 mov r0, r6                                    |             r0 = r6;
    0x0002ee3c bl 0x2d0b4                                    |             fcn_0002d0b4 (r0);
                                                             |         }
    0x0002ee40 mov r0, r4                                    |         r0 = r4;
    0x0002ee44 add sp, sp, 8                                 |         
    0x0002ee48 pop {r4, r5, r6, r7, r8, pc}                  |         
                                                             | label_2:
    0x0002ee4c mvn r4, 0x15                                  |         r4 = ~0x15;
                                                             | label_3:
    0x0002ee50 ldr r3, [r6, 0x8c]                            |         r3 = *((r6 + 0x8c));
    0x0002ee54 ands r5, r3, 0x40                             |         r5 = r3 & 0x40;
    0x0002ee58 bne 0x2ede0                                   |         
                                                             |     } while (r5 != r3);
    0x0002ee5c mov r0, r6                                    |     r0 = r6;
    0x0002ee60 bl 0x2e04c                                    |     r0 = fcn_0002e04c (r0);
    0x0002ee64 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0002ee68 beq 0x2ee7c                                   |         
    0x0002ee6c cmp r7, 0                                     |         
    0x0002ee70 ldrdne r2, r3, [r0, 0x20]                     |         __asm ("ldrdne r2, r3, [r0, 0x20]");
    0x0002ee74 strdne r2, r3, [r7]                           |         __asm ("strdne r2, r3, [r7]");
    0x0002ee78 b 0x2eddc                                     |         goto label_0;
                                                             |     }
    0x0002ee7c bl 0x60ac                                     |     r0 = errno_location ();
    0x0002ee80 ldr r4, [r0]                                  |     r4 = *(r0);
    0x0002ee84 rsb r4, r4, 0                                 |     r4 -= ;
    0x0002ee88 b 0x2ede0                                     |     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 @ 0x2f014 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0002f014 ()                          | void fcn_0002f014 (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_8h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0002f014 push {r0, r1, r4, r5, r6, lr}         |     
    0x0002f018 ldr r5, [pc, 0xa0]                    |     r5 = *(0x2f0bc);
    0x0002f01c mov r6, r0                            |     r6 = r0;
    0x0002f020 mov r4, r1                            |     r4 = r1;
    0x0002f024 bl 0x2e04c                            |     fcn_0002e04c (r0);
    0x0002f028 add r5, pc, r5                        |     r5 = pc + r5;
    0x0002f02c cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x0002f030 beq 0x2f0b0                           |         goto label_0;
                                                     |     }
    0x0002f034 cmp r4, 0                             |     
    0x0002f038 ldrdne r2, r3, [r0]                   |     __asm ("ldrdne r2, r3, [r0]");
    0x0002f03c strdne r2, r3, [r4]                   |     __asm ("strdne r2, r3, [r4]");
    0x0002f040 movne r4, 0                           |     r4 = 0;
                                                     |     while (1) {
    0x0002f044 ldr r3, [pc, 0x78]                    |         
    0x0002f048 add r3, pc, r3                        |         r3 = pc + r3;
    0x0002f04c ldr r3, [r3]                          |         r3 = *(0x2f0c0);
    0x0002f050 tst r3, 4                             |         
                                                     |         if ((r3 & 4) != 0) {
    0x0002f054 beq 0x2f0a4                           |             
    0x0002f058 ldr r3, [pc, 0x68]                    |             r3 = *(0x2f0c4);
    0x0002f05c ldr r3, [r5, r3]                      |             r3 = *((r5 + r3));
    0x0002f060 ldr r5, [r3]                          |             r5 = *(0x2f0c4);
    0x0002f064 bl 0x58fc                             |             getpid ();
    0x0002f068 ldr r3, [pc, 0x5c]                    |             r3 = *(0x2f0c8);
    0x0002f06c ldr r1, [pc, 0x5c]                    |             r1 = *(0x2f0cc);
    0x0002f070 add r3, pc, r3                        |             r3 = pc + r3;
    0x0002f074 str r3, [sp]                          |             *(sp) = r3;
    0x0002f078 ldr r3, [pc, 0x54]                    |             r3 = *(0x2f0d0);
    0x0002f07c add r1, pc, r1                        |             r1 = pc + r1;
    0x0002f080 add r3, pc, r3                        |             r3 = pc + r3;
    0x0002f084 mov r2, r0                            |             r2 = r0;
    0x0002f088 mov r0, r5                            |             r0 = r5;
    0x0002f08c bl 0x5c50                             |             fprintf (r0, r1, r2, r3)
    0x0002f090 ldr r1, [pc, 0x40]                    |             r1 = *(0x2f0d4);
    0x0002f094 mov r2, r4                            |             r2 = r4;
    0x0002f098 add r1, pc, r1                        |             r1 = pc + r1;
    0x0002f09c mov r0, r6                            |             r0 = r6;
    0x0002f0a0 bl 0x2d0b4                            |             fcn_0002d0b4 (r0);
                                                     |         }
    0x0002f0a4 mov r0, r4                            |         r0 = r4;
    0x0002f0a8 add sp, sp, 8                         |         
    0x0002f0ac pop {r4, r5, r6, pc}                  |         
                                                     | label_0:
    0x0002f0b0 bl 0x60ac                             |         r0 = errno_location ();
    0x0002f0b4 ldr r4, [r0]                          |         r4 = *(r0);
    0x0002f0b8 rsb r4, r4, 0                         |         r4 -= ;
    0x0002f0bc b 0x2f044                             |         
                                                     |     }
                                                     | }
    ; 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 @ 0x2f0dc */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0002f0dc ()                          | void fcn_0002f0dc (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_8h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0002f0dc push {r0, r1, r4, r5, r6, lr}         |     
    0x0002f0e0 ldr r5, [pc, 0xa0]                    |     r5 = *(0x2f184);
    0x0002f0e4 mov r6, r0                            |     r6 = r0;
    0x0002f0e8 mov r4, r1                            |     r4 = r1;
    0x0002f0ec bl 0x2e04c                            |     fcn_0002e04c (r0);
    0x0002f0f0 add r5, pc, r5                        |     r5 = pc + r5;
    0x0002f0f4 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x0002f0f8 beq 0x2f178                           |         goto label_0;
                                                     |     }
    0x0002f0fc cmp r4, 0                             |     
    0x0002f100 ldrdne r2, r3, [r0, 8]                |     __asm ("ldrdne r2, r3, [r0, 8]");
    0x0002f104 strdne r2, r3, [r4]                   |     __asm ("strdne r2, r3, [r4]");
    0x0002f108 movne r4, 0                           |     r4 = 0;
                                                     |     while (1) {
    0x0002f10c ldr r3, [pc, 0x78]                    |         
    0x0002f110 add r3, pc, r3                        |         r3 = pc + r3;
    0x0002f114 ldr r3, [r3]                          |         r3 = *(0x2f188);
    0x0002f118 tst r3, 4                             |         
                                                     |         if ((r3 & 4) != 0) {
    0x0002f11c beq 0x2f16c                           |             
    0x0002f120 ldr r3, [pc, 0x68]                    |             r3 = *(0x2f18c);
    0x0002f124 ldr r3, [r5, r3]                      |             r3 = *((r5 + r3));
    0x0002f128 ldr r5, [r3]                          |             r5 = *(0x2f18c);
    0x0002f12c bl 0x58fc                             |             getpid ();
    0x0002f130 ldr r3, [pc, 0x5c]                    |             r3 = *(0x2f190);
    0x0002f134 ldr r1, [pc, 0x5c]                    |             r1 = *(0x2f194);
    0x0002f138 add r3, pc, r3                        |             r3 = pc + r3;
    0x0002f13c str r3, [sp]                          |             *(sp) = r3;
    0x0002f140 ldr r3, [pc, 0x54]                    |             r3 = *(0x2f198);
    0x0002f144 add r1, pc, r1                        |             r1 = pc + r1;
    0x0002f148 add r3, pc, r3                        |             r3 = pc + r3;
    0x0002f14c mov r2, r0                            |             r2 = r0;
    0x0002f150 mov r0, r5                            |             r0 = r5;
    0x0002f154 bl 0x5c50                             |             fprintf (r0, r1, r2, r3)
    0x0002f158 ldr r1, [pc, 0x40]                    |             r1 = *(0x2f19c);
    0x0002f15c mov r2, r4                            |             r2 = r4;
    0x0002f160 add r1, pc, r1                        |             r1 = pc + r1;
    0x0002f164 mov r0, r6                            |             r0 = r6;
    0x0002f168 bl 0x2d0b4                            |             fcn_0002d0b4 (r0);
                                                     |         }
    0x0002f16c mov r0, r4                            |         r0 = r4;
    0x0002f170 add sp, sp, 8                         |         
    0x0002f174 pop {r4, r5, r6, pc}                  |         
                                                     | label_0:
    0x0002f178 bl 0x60ac                             |         r0 = errno_location ();
    0x0002f17c ldr r4, [r0]                          |         r4 = *(r0);
    0x0002f180 rsb r4, r4, 0                         |         r4 -= ;
    0x0002f184 b 0x2f10c                             |         
                                                     |     }
                                                     | }
    ; 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 @ 0x2f39c */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0002f39c ()                          | void fcn_0002f39c (int32_t arg_40h, int32_t arg_48h, int32_t arg_50h, int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_8h;
                                                     |     int32_t var_8h_2;
                                                     |     int32_t var_10h;
                                                     |     int32_t var_10h_2;
                                                     |     int32_t var_18h;
                                                     |     int32_t var_18h_2;
                                                     |     int32_t var_20h;
                                                     |     int32_t var_20h_2;
                                                     |     int32_t var_28h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0002f39c ldr r3, [pc, 0x1a0]                   |     r3 = *(0x2f540);
    0x0002f3a0 push {r4, r5, r6, r7, r8, lr}         |     
    0x0002f3a4 subs r4, r0, 0                        |     r4 -= arg_40h;
    0x0002f3a8 sub sp, sp, 0x28                      |     
    0x0002f3ac add r3, pc, r3                        |     r3 = pc + r3;
    0x0002f3b0 ldr r5, [sp, 0x50]                    |     r5 = *(arg_50h);
    0x0002f3b4 bne 0x2f3c0                           |     
                                                     |     while (r1 != r3) {
                                                     | label_0:
    0x0002f3b8 mov r6, 0                             |         r6 = 0;
    0x0002f3bc b 0x2f538                             |         goto label_3;
    0x0002f3c0 mov r6, r2                            |         r6 = r2;
    0x0002f3c4 ldr r2, [pc, 0x17c]                   |         
    0x0002f3c8 mov r7, r1                            |         r7 = r1;
    0x0002f3cc add r2, pc, r2                        |         r2 = pc + r2;
    0x0002f3d0 ldr r2, [r2]                          |         r2 = *(0x2f544);
    0x0002f3d4 tst r2, 4                             |         
                                                     |         if ((r2 & 4) != 0) {
    0x0002f3d8 beq 0x2f434                           |             
    0x0002f3dc ldr r2, [pc, 0x168]                   |             r2 = *(0x2f548);
    0x0002f3e0 ldr r3, [r3, r2]                      |             r3 = *((r3 + r2));
    0x0002f3e4 ldr r8, [r3]                          |             r8 = *(r3);
    0x0002f3e8 bl 0x58fc                             |             getpid ();
    0x0002f3ec ldr r3, [pc, 0x15c]                   |             r3 = *(0x2f54c);
    0x0002f3f0 ldr r1, [pc, 0x15c]                   |             r1 = *(0x2f550);
    0x0002f3f4 add r3, pc, r3                        |             r3 = pc + r3;
    0x0002f3f8 str r3, [sp]                          |             *(sp) = r3;
    0x0002f3fc ldr r3, [pc, 0x154]                   |             r3 = *(0x2f554);
    0x0002f400 add r1, pc, r1                        |             r1 = pc + r1;
    0x0002f404 add r3, pc, r3                        |             r3 = pc + r3;
    0x0002f408 mov r2, r0                            |             r2 = r0;
    0x0002f40c mov r0, r8                            |             r0 = r8;
    0x0002f410 bl 0x5c50                             |             fprintf (r0, r1, r2, r3)
    0x0002f414 mov r0, r4                            |             r0 = r4;
    0x0002f418 bl 0x2dbf8                            |             fcn_0002dbf8 (r0);
    0x0002f41c ldr r1, [pc, 0x138]                   |             r1 = *(0x2f558);
    0x0002f420 mov r3, r6                            |             r3 = r6;
    0x0002f424 add r1, pc, r1                        |             r1 = pc + r1;
    0x0002f428 mov r2, r0                            |             r2 = r0;
    0x0002f42c mov r0, r4                            |             r0 = r4;
    0x0002f430 bl 0x2d0b4                            |             fcn_0002d0b4 (r0);
                                                     |         }
    0x0002f434 cmp r7, 0                             |         
                                                     |         if (r7 == 0) {
    0x0002f438 beq 0x2f49c                           |             goto label_4;
                                                     |         }
    0x0002f43c add r1, sp, 8                         |         r1 += var_8h;
    0x0002f440 mov r0, r4                            |         r0 = r4;
    0x0002f444 bl 0x2f0dc                            |         r0 = fcn_0002f0dc (r0, r1);
    0x0002f448 cmp r0, 0                             |         
                                                     |         if (r0 != 0) {
    0x0002f44c bne 0x2f49c                           |             goto label_4;
                                                     |         }
    0x0002f450 add r1, sp, 0x10                      |         r1 += var_10h;
    0x0002f454 mov r0, r4                            |         r0 = r4;
    0x0002f458 bl 0x2f014                            |         r0 = fcn_0002f014 (r0, r1);
    0x0002f45c cmp r0, 0                             |         
                                                     |         if (r0 != 0) {
    0x0002f460 bne 0x2f49c                           |             goto label_4;
                                                     |         }
    0x0002f464 ldrd r0, r1, [r7, 0x60]               |         __asm ("ldrd r0, r1, [r7, 0x60]");
    0x0002f468 ldrd r2, r3, [sp, 8]                  |         __asm ("ldrd r2, r3, [var_8h]");
    0x0002f46c cmp r1, r3                            |         
    0x0002f470 cmpeq r0, r2                          |         __asm ("cmpeq r0, r2");
    0x0002f474 bne 0x2f3b8                           |         
                                                     |     }
    0x0002f478 ldrd r0, r1, [r7]                     |     __asm ("ldrd r0, r1, [r7]");
    0x0002f47c ldrd r2, r3, [sp, 0x10]               |     __asm ("ldrd r2, r3, [var_10h]");
    0x0002f480 cmp r1, r3                            |     
    0x0002f484 cmpeq r0, r2                          |     __asm ("cmpeq r0, r2");
                                                     |     if (r1 != r3) {
    0x0002f488 bne 0x2f3b8                           |         goto label_0;
                                                     |     }
                                                     | label_1:
    0x0002f48c tst r5, 0x10                          |     
                                                     |     if ((r5 & 0x10) != 0) {
    0x0002f490 bne 0x2f4dc                           |         goto label_5;
                                                     |     }
                                                     | label_2:
    0x0002f494 mov r6, 1                             |     r6 = 1;
    0x0002f498 b 0x2f538                             |     goto label_3;
                                                     | label_4:
    0x0002f49c cmp r6, 0                             |     
                                                     |     if (r6 == 0) {
    0x0002f4a0 beq 0x2f3b8                           |         goto label_0;
                                                     |     }
    0x0002f4a4 mov r0, r4                            |     r0 = r4;
    0x0002f4a8 bl 0x2e1cc                            |     r0 = fcn_0002e1cc (r0);
    0x0002f4ac subs r7, r0, 0                        |     r7 = r0 - 0;
                                                     |     if (r7 != r0) {
    0x0002f4b0 moveq r6, r7                          |         r6 = r7;
                                                     |     }
                                                     |     if (r7 != r0) {
    0x0002f4b4 beq 0x2f4c8                           |         
    0x0002f4b8 mov r1, r6                            |         r1 = r6;
    0x0002f4bc bl 0x5efc                             |         r0 = strcmp (r0, r1);
    0x0002f4c0 clz r6, r0                            |         r6 &= r0;
    0x0002f4c4 lsr r6, r6, 5                         |         r6 >>= 5;
                                                     |     }
    0x0002f4c8 mov r0, r7                            |     r0 = r7;
    0x0002f4cc bl 0x6220                             |     free (r0);
    0x0002f4d0 cmp r6, 0                             |     
                                                     |     if (r6 != 0) {
    0x0002f4d4 bne 0x2f48c                           |         goto label_1;
                                                     |     }
    0x0002f4d8 b 0x2f3b8                             |     goto label_0;
                                                     | label_5:
    0x0002f4dc add r1, sp, 0x18                      |     r1 += var_18h;
    0x0002f4e0 mov r0, r4                            |     r0 = r4;
    0x0002f4e4 bl 0x2e2cc                            |     r0 = fcn_0002e2cc (r0, r1);
    0x0002f4e8 subs r6, r0, 0                        |     r6 = r0 - 0;
                                                     |     if (r6 != r0) {
    0x0002f4ec bne 0x2f3b8                           |         goto label_0;
                                                     |     }
    0x0002f4f0 ldrd r2, r3, [sp, 0x40]               |     __asm ("ldrd r2, r3, [arg_40h]");
    0x0002f4f4 ldrd r0, r1, [sp, 0x18]               |     __asm ("ldrd r0, r1, [var_18h]");
    0x0002f4f8 cmp r1, r3                            |     
    0x0002f4fc cmpeq r0, r2                          |     __asm ("cmpeq r0, r2");
                                                     |     if (r1 != r3) {
    0x0002f500 bne 0x2f538                           |         goto label_3;
                                                     |     }
    0x0002f504 tst r5, 0x200                         |     
                                                     |     if ((r5 & 0x200) == 0) {
    0x0002f508 beq 0x2f494                           |         goto label_2;
                                                     |     }
    0x0002f50c add r1, sp, 0x20                      |     r1 += var_20h;
    0x0002f510 mov r0, r4                            |     r0 = r4;
    0x0002f514 bl 0x2eda4                            |     r0 = fcn_0002eda4 (r0, r1);
    0x0002f518 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x0002f51c bne 0x2f538                           |         
    0x0002f520 ldrd r2, r3, [sp, 0x48]               |         __asm ("ldrd r2, r3, [arg_48h]");
    0x0002f524 ldrd r0, r1, [sp, 0x20]               |         __asm ("ldrd r0, r1, [var_20h]");
    0x0002f528 cmp r1, r3                            |         
    0x0002f52c cmpeq r0, r2                          |         __asm ("cmpeq r0, r2");
                                                     |         if (r1 != r3) {
    0x0002f530 moveq r6, 1                           |             r6 = 1;
                                                     |         }
                                                     |         if (r1 != r3) {
    0x0002f534 movne r6, 0                           |             r6 = 0;
                                                     |             goto label_3;
                                                     |         }
                                                     |     }
                                                     | label_3:
    0x0002f538 mov r0, r6                            |     r0 = r6;
    0x0002f53c add sp, sp, 0x28                      |     
    0x0002f540 pop {r4, r5, r6, r7, r8, pc}          |     
                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x2f9f4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0002f9f4 ()                                  | void fcn_0002f9f4 (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     r0 = arg1;
    0x0002f9f4 push {r0, r1, r2, r4, r5, r6, r7, lr}         |     
    0x0002f9f8 ldr r6, [pc, 0xf8]                            |     r6 = *(0x2faf4);
    0x0002f9fc mov r7, r0                                    |     r7 = r0;
    0x0002fa00 bl 0x2dc10                                    |     fcn_0002dc10 (r0);
    0x0002fa04 add r6, pc, r6                                |     r6 = pc + r6;
    0x0002fa08 cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x0002fa0c mvnlt r4, 0x15                                |         r4 = ~0x15;
                                                             |     }
                                                             |     if (r0 < 0) {
    0x0002fa10 blt 0x2fa90                                   |         goto label_0;
                                                             |     }
    0x0002fa14 mov r2, 0                                     |     r2 = 0;
    0x0002fa18 ldr r1, [pc, 0xdc]                            |     r1 = *(0x2faf8);
    0x0002fa1c bl 0x574c                                     |     ioctl (r0, r1);
    0x0002fa20 ldr r3, [pc, 0xd8]                            |     r3 = *(0x2fafc);
    0x0002fa24 ldr r5, [pc, r3]                              |     r5 = *(0x0002fa2c);
    0x0002fa28 and r5, r5, 4                                 |     r5 &= 4;
    0x0002fa2c cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x0002fa30 bge 0x2fa9c                                   |         goto label_1;
                                                             |     }
    0x0002fa34 bl 0x60ac                                     |     errno_location ();
    0x0002fa38 cmp r5, 0                                     |     
    0x0002fa3c ldr r4, [r0]                                  |     r4 = *(r0);
    0x0002fa40 rsb r4, r4, 0                                 |     r4 -= ;
                                                             |     if (r5 == 0) {
    0x0002fa44 beq 0x2fa90                                   |         goto label_0;
                                                             |     }
    0x0002fa48 ldr r3, [pc, 0xb4]                            |     r3 = *(0x2fb00);
    0x0002fa4c ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x0002fa50 ldr r5, [r3]                                  |     r5 = *(0x2fb00);
    0x0002fa54 bl 0x58fc                                     |     getpid ();
    0x0002fa58 ldr r3, [pc, 0xa8]                            |     r3 = *(0x2fb04);
    0x0002fa5c ldr r1, [pc, 0xa8]                            |     r1 = *(0x2fb08);
    0x0002fa60 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002fa64 str r3, [sp]                                  |     *(sp) = r3;
    0x0002fa68 ldr r3, [pc, 0xa0]                            |     r3 = *(0x2fb0c);
    0x0002fa6c add r1, pc, r1                                |     r1 = pc + r1;
    0x0002fa70 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002fa74 mov r2, r0                                    |     r2 = r0;
    0x0002fa78 mov r0, r5                                    |     r0 = r5;
    0x0002fa7c bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x0002fa80 ldr r1, [pc, 0x8c]                            |     r1 = *(0x2fb10);
    0x0002fa84 mov r0, r7                                    |     r0 = r7;
    0x0002fa88 add r1, pc, r1                                |     r1 = pc + r1;
    0x0002fa8c bl 0x2d0b4                                    |     fcn_0002d0b4 (r0);
                                                             |     do {
                                                             | label_0:
    0x0002fa90 mov r0, r4                                    |         r0 = r4;
    0x0002fa94 add sp, sp, 0xc                               |         
    0x0002fa98 pop {r4, r5, r6, r7, pc}                      |         
                                                             | label_1:
    0x0002fa9c cmp r5, 0                                     |         
                                                             |         if (r5 != 0) {
    0x0002faa0 moveq r4, r5                                  |             r4 = r5;
                                                             |         }
    0x0002faa4 beq 0x2fa90                                   |         
                                                             |     } while (r5 == 0);
    0x0002faa8 ldr r3, [pc, 0x54]                            |     r3 = *(0x2fb00);
    0x0002faac ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x0002fab0 ldr r4, [r3]                                  |     r4 = *(0x2fb00);
    0x0002fab4 bl 0x58fc                                     |     getpid ();
    0x0002fab8 ldr r3, [pc, 0x58]                            |     r3 = *(0x2fb14);
    0x0002fabc ldr r1, [pc, 0x58]                            |     r1 = *(0x2fb18);
    0x0002fac0 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002fac4 str r3, [sp]                                  |     *(sp) = r3;
    0x0002fac8 ldr r3, [pc, 0x50]                            |     r3 = *(0x2fb1c);
    0x0002facc add r1, pc, r1                                |     r1 = pc + r1;
    0x0002fad0 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002fad4 mov r2, r0                                    |     r2 = r0;
    0x0002fad8 mov r0, r4                                    |     r0 = r4;
    0x0002fadc bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x0002fae0 ldr r1, [pc, 0x3c]                            |     r1 = *(0x2fb20);
    0x0002fae4 mov r0, r7                                    |     r0 = r7;
    0x0002fae8 add r1, pc, r1                                |     r1 = pc + r1;
    0x0002faec bl 0x2d0b4                                    |     fcn_0002d0b4 (r0);
    0x0002faf0 mov r4, 0                                     |     r4 = 0;
    0x0002faf4 b 0x2fa90                                     |     goto label_0;
                                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x309bc */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000309bc ()                      | void fcn_000309bc (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_ch;
                                                 |     r0 = arg1;
    0x000309bc push {r0, r1, r2, r4, r5, lr}     |     
    0x000309c0 ldr r4, [pc, 0xf8]                |     r4 = *(0x30abc);
    0x000309c4 mov r5, r0                        |     r5 = r0;
    0x000309c8 bl 0x2dc10                        |     fcn_0002dc10 (r0);
    0x000309cc add r4, pc, r4                    |     r4 = pc + r4;
    0x000309d0 cmp r0, 0                         |     
                                                 |     if (r0 >= 0) {
    0x000309d4 mvnlt r3, 0x15                    |         r3 = ~0x15;
                                                 |     }
                                                 |     if (r0 < 0) {
    0x000309d8 blt 0x30a5c                       |         goto label_0;
                                                 |     }
    0x000309dc mov r2, 0                         |     r2 = 0;
    0x000309e0 ldr r1, [pc, 0xdc]                |     r1 = *(0x30ac0);
    0x000309e4 bl 0x574c                         |     ioctl (r0, r1);
    0x000309e8 ldr r3, [pc, 0xd8]                |     
    0x000309ec add r3, pc, r3                    |     r3 = pc + r3;
    0x000309f0 ldr r3, [r3]                      |     r3 = *(0x30ac4);
    0x000309f4 and r3, r3, 4                     |     r3 &= 4;
    0x000309f8 cmp r0, 0                         |     
                                                 |     if (r0 >= 0) {
    0x000309fc bge 0x30a68                       |         goto label_1;
                                                 |     }
    0x00030a00 cmp r3, 0                         |     
                                                 |     if (r3 != 0) {
    0x00030a04 beq 0x30a50                       |         
    0x00030a08 ldr r3, [pc, 0xbc]                |         r3 = *(0x30ac8);
    0x00030a0c ldr r3, [r4, r3]                  |         r3 = *((r4 + r3));
    0x00030a10 ldr r4, [r3]                      |         r4 = *(0x30ac8);
    0x00030a14 bl 0x58fc                         |         getpid ();
    0x00030a18 ldr r3, [pc, 0xb0]                |         r3 = *(0x30acc);
    0x00030a1c ldr r1, [pc, 0xb0]                |         r1 = *(0x30ad0);
    0x00030a20 add r3, pc, r3                    |         r3 = pc + r3;
    0x00030a24 str r3, [sp]                      |         *(sp) = r3;
    0x00030a28 ldr r3, [pc, 0xa8]                |         r3 = *(0x30ad4);
    0x00030a2c add r1, pc, r1                    |         r1 = pc + r1;
    0x00030a30 add r3, pc, r3                    |         r3 = pc + r3;
    0x00030a34 mov r2, r0                        |         r2 = r0;
    0x00030a38 mov r0, r4                        |         r0 = r4;
    0x00030a3c bl 0x5c50                         |         fprintf (r0, r1, r2, r3)
    0x00030a40 ldr r1, [pc, 0x94]                |         r1 = *(0x30ad8);
    0x00030a44 mov r0, r5                        |         r0 = r5;
    0x00030a48 add r1, pc, r1                    |         r1 = pc + r1;
    0x00030a4c bl 0x2d0b4                        |         r0 = fcn_0002d0b4 (r0);
                                                 |     }
    0x00030a50 bl 0x60ac                         |     r0 = errno_location ();
    0x00030a54 ldr r3, [r0]                      |     r3 = *(r0);
    0x00030a58 rsb r3, r3, 0                     |     r3 -= ;
                                                 |     do {
                                                 | label_0:
    0x00030a5c mov r0, r3                        |         r0 = r3;
    0x00030a60 add sp, sp, 0xc                   |         
    0x00030a64 pop {r4, r5, pc}                  |         
                                                 | label_1:
    0x00030a68 cmp r3, 0                         |         
    0x00030a6c beq 0x30a5c                       |         
                                                 |     } while (r3 == 0);
    0x00030a70 ldr r3, [pc, 0x54]                |     r3 = *(0x30ac8);
    0x00030a74 ldr r3, [r4, r3]                  |     r3 = *((r4 + r3));
    0x00030a78 ldr r4, [r3]                      |     r4 = *(0x30ac8);
    0x00030a7c bl 0x58fc                         |     getpid ();
    0x00030a80 ldr r3, [pc, 0x58]                |     r3 = *(0x30adc);
    0x00030a84 ldr r1, [pc, 0x58]                |     r1 = *(0x30ae0);
    0x00030a88 add r3, pc, r3                    |     r3 = pc + r3;
    0x00030a8c str r3, [sp]                      |     *(sp) = r3;
    0x00030a90 ldr r3, [pc, 0x50]                |     r3 = *(0x30ae4);
    0x00030a94 add r1, pc, r1                    |     r1 = pc + r1;
    0x00030a98 add r3, pc, r3                    |     r3 = pc + r3;
    0x00030a9c mov r2, r0                        |     r2 = r0;
    0x00030aa0 mov r0, r4                        |     r0 = r4;
    0x00030aa4 bl 0x5c50                         |     fprintf (r0, r1, r2, r3)
    0x00030aa8 ldr r1, [pc, 0x3c]                |     r1 = *(0x30ae8);
    0x00030aac mov r0, r5                        |     r0 = r5;
    0x00030ab0 add r1, pc, r1                    |     r1 = pc + r1;
    0x00030ab4 bl 0x2d0b4                        |     fcn_0002d0b4 (r0);
    0x00030ab8 mov r3, 0                         |     r3 = 0;
    0x00030abc b 0x30a5c                         |     goto label_0;
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x32264 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00032264 ()                  | void fcn_00032264 (int32_t arg1) {
                                             |     int32_t var_4h;
                                             |     int32_t var_ch;
                                             |     char * format;
                                             |     int32_t var_18h;
                                             |     r0 = arg1;
    0x00032264 push {r1, r2, r3}             |     
    0x00032268 ldr r3, [pc, 0xa4]            |     r3 = *(0x32310);
    0x0003226c push {r0, r1, r2, r4, lr}     |     
    0x00032270 ldr r1, [pc, 0xa0]            |     r1 = *(0x32314);
    0x00032274 add r3, pc, r3                |     r3 = pc + r3;
    0x00032278 subs r2, r0, 0                |     r2 = r0 - 0;
    0x0003227c ldr r4, [r3, r1]              |     r4 = *(0x32310);
                                             |     if (r2 != r0) {
    0x00032280 beq 0x322a8                   |         
    0x00032284 ldr r3, [pc, 0x90]            |         
    0x00032288 add r3, pc, r3                |         r3 = pc + r3;
    0x0003228c ldr r3, [r3]                  |         r3 = *(0x32318);
    0x00032290 tst r3, 0x1000000             |         
                                             |         if ((r3 & 0x1000000) != 0) {
    0x00032294 bne 0x322a8                   |             goto label_1;
                                             |         }
    0x00032298 ldr r1, [pc, 0x80]            |         r1 = *(0x3231c);
    0x0003229c ldr r0, [r4]                  |         r0 = *(r4);
    0x000322a0 add r1, pc, r1                |         r1 = pc + r1;
    0x000322a4 bl 0x5c50                     |         fprintf (r0, r1)
                                             |     }
                                             | label_1:
    0x000322a8 add r2, sp, 0x18              |     r2 += var_18h;
    0x000322ac ldr r1, [sp, 0x14]            |     r1 = format;
    0x000322b0 ldr r0, [r4]                  |     r0 = *(r4);
    0x000322b4 str r2, [sp, 4]               |     var_4h = r2;
    0x000322b8 bl 0x61f0                     |     vfprintf (r0, r1, r2)
    0x000322bc ldr r1, [r4]                  |     r1 = *(r4);
    0x000322c0 ldr r3, [r1, 0x34]            |     r3 = *((r1 + 0x34));
    0x000322c4 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x000322c8 beq 0x32308                   |         goto label_2;
                                             |     }
    0x000322cc ldr r3, [r1, 0x10]            |     r3 = *((r1 + 0x10));
    0x000322d0 ldr r2, [r1, 0x1c]            |     r2 = *((r1 + 0x1c));
    0x000322d4 cmp r3, r2                    |     
                                             |     if (r3 >= r2) {
    0x000322d8 bhs 0x322fc                   |         goto label_3;
                                             |     }
    0x000322dc add r2, r3, 1                 |     r2 = r3 + 1;
    0x000322e0 str r2, [r1, 0x10]            |     *((r1 + 0x10)) = r2;
    0x000322e4 mov r2, 0xa                   |     r2 = 0xa;
    0x000322e8 strb r2, [r3]                 |     *(r3) = r2;
                                             |     do {
                                             | label_0:
    0x000322ec add sp, sp, 0xc               |         
    0x000322f0 pop {r4, lr}                  |         
    0x000322f4 add sp, sp, 0xc               |         
    0x000322f8 bx lr                         |         return;
                                             | label_3:
    0x000322fc mov r0, 0xa                   |         r0 = 0xa;
    0x00032300 bl 0x622c                     |         fputc_unlocked ();
    0x00032304 b 0x322ec                     |         
                                             |     } while (1);
                                             | label_2:
    0x00032308 mov r0, 0xa                   |     r0 = 0xa;
    0x0003230c bl 0x5ff8                     |     fputc (r0, r1);
    0x00032310 b 0x322ec                     |     goto label_0;
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x32668 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00032668 ()                      | void fcn_00032668 (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_ch;
                                                 |     r0 = arg1;
    0x00032668 push {r0, r1, r2, r4, r5, lr}     |     
    0x0003266c ldr r2, [pc, 0xcc]                |     r2 = *(0x3273c);
    0x00032670 subs r4, r0, 0                    |     r4 = r0 - 0;
    0x00032674 add r2, pc, r2                    |     r2 = pc + r2;
                                                 |     if (r4 != r0) {
    0x00032678 beq 0x32738                       |         
    0x0003267c ldr r3, [r4, 8]                   |         r3 = *((r4 + 8));
    0x00032680 sub r3, r3, 1                     |         r3--;
    0x00032684 cmp r3, 0                         |         
    0x00032688 str r3, [r4, 8]                   |         *((r4 + 8)) = r3;
                                                 |         if (r3 > 0) {
    0x0003268c bgt 0x32738                       |             goto label_0;
                                                 |         }
    0x00032690 ldr r3, [pc, 0xac]                |         
    0x00032694 add r3, pc, r3                    |         r3 = pc + r3;
    0x00032698 ldr r3, [r3]                      |         r3 = *(0x32740);
    0x0003269c tst r3, 4                         |         
                                                 |         if ((r3 & 4) != 0) {
    0x000326a0 beq 0x326ec                       |             
    0x000326a4 ldr r3, [pc, 0x9c]                |             r3 = *(0x32744);
    0x000326a8 ldr r3, [r2, r3]                  |             r3 = *((r2 + r3));
    0x000326ac ldr r5, [r3]                      |             r5 = *(0x32744);
    0x000326b0 bl 0x58fc                         |             getpid ();
    0x000326b4 ldr r3, [pc, 0x90]                |             r3 = *(0x32748);
    0x000326b8 ldr r1, [pc, 0x90]                |             r1 = *(0x3274c);
    0x000326bc add r3, pc, r3                    |             r3 = pc + r3;
    0x000326c0 str r3, [sp]                      |             *(sp) = r3;
    0x000326c4 ldr r3, [pc, 0x88]                |             r3 = *(0x32750);
    0x000326c8 add r1, pc, r1                    |             r1 = pc + r1;
    0x000326cc add r3, pc, r3                    |             r3 = pc + r3;
    0x000326d0 mov r2, r0                        |             r2 = r0;
    0x000326d4 mov r0, r5                        |             r0 = r5;
    0x000326d8 bl 0x5c50                         |             fprintf (r0, r1, r2, r3)
    0x000326dc ldr r1, [pc, 0x74]                |             r1 = *(0x32754);
    0x000326e0 mov r0, r4                        |             r0 = r4;
    0x000326e4 add r1, pc, r1                    |             r1 = pc + r1;
    0x000326e8 bl 0x32264                        |             fcn_00032264 (r0);
                                                 |         }
    0x000326ec add r3, r4, 0x1000                |         r3 = r4 + 0x1000;
    0x000326f0 ldr r2, [r3, 0x10]                |         r2 = *((r3 + 0x10));
    0x000326f4 cmp r2, 0                         |         
                                                 |         if (r2 != 0) {
    0x000326f8 beq 0x32708                       |             
    0x000326fc ldr r3, [r3, 0x14]                |             r3 = *((r3 + 0x14));
    0x00032700 mov r0, r4                        |             r0 = r4;
    0x00032704 blx r3                            |             uint32_t (*r3)(uint32_t, uint32_t) (r0, r3);
                                                 |         }
    0x00032708 ldr r0, [r4]                      |         r0 = *(r4);
    0x0003270c cmp r0, 0                         |         
                                                 |         if (r0 >= 0) {
    0x00032710 blt 0x32718                       |             
    0x00032714 bl 0x61e4                         |             close (r0);
                                                 |         }
    0x00032718 ldr r0, [r4, 4]                   |         r0 = *((r4 + 4));
    0x0003271c bl 0x6220                         |         free (r0);
    0x00032720 ldr r0, [r4, 0xc]                 |         r0 = *((r4 + 0xc));
    0x00032724 bl 0x6220                         |         free (r0);
    0x00032728 mov r0, r4                        |         r0 = r4;
    0x0003272c add sp, sp, 0xc                   |         
    0x00032730 pop {r4, r5, lr}                  |         
    0x00032734 b 0x6220                          |         void (*0x6220)() ();
                                                 |     }
                                                 | label_0:
    0x00032738 add sp, sp, 0xc                   |     
    0x0003273c pop {r4, r5, pc}                  |     
                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x3275c */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0003275c ()                              | void fcn_0003275c () {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_ch;
                                                         |     int32_t var_10h;
                                                         |     int32_t var_20h;
                                                         |     int32_t var_24h;
    0x0003275c push {r0, r1, r2, r3}                     |     
    0x00032760 push {r0, r1, r2, r3, r4, r5, r6, lr}     |     
    0x00032764 ldr r1, [pc, 0xd4]                        |     r1 = *(0x3283c);
    0x00032768 mov r0, 1                                 |     r0 = 1;
    0x0003276c ldr r5, [sp, 0x20]                        |     r5 = var_20h;
    0x00032770 bl 0x5bf0                                 |     calloc (r0, r1);
    0x00032774 ldr r6, [pc, 0xc8]                        |     r6 = *(0x32840);
    0x00032778 add r6, pc, r6                            |     r6 = pc + r6;
    0x0003277c subs r4, r0, 0                            |     r4 = r0 - 0;
                                                         |     if (r4 != r0) {
    0x00032780 beq 0x3282c                               |         
    0x00032784 ldr r3, [pc, 0xbc]                        |         
    0x00032788 add r3, pc, r3                            |         r3 = pc + r3;
    0x0003278c ldr r3, [r3]                              |         r3 = *(0x32844);
    0x00032790 tst r3, 4                                 |         
                                                         |         if ((r3 & 4) != 0) {
    0x00032794 beq 0x327e0                               |             
    0x00032798 ldr r3, [pc, 0xac]                        |             r3 = *(0x32848);
    0x0003279c ldr r3, [r6, r3]                          |             r3 = *((r6 + r3));
    0x000327a0 ldr r6, [r3]                              |             r6 = *(0x32848);
    0x000327a4 bl 0x58fc                                 |             getpid ();
    0x000327a8 ldr r3, [pc, 0xa0]                        |             r3 = *(0x3284c);
    0x000327ac ldr r1, [pc, 0xa0]                        |             r1 = *(0x32850);
    0x000327b0 add r3, pc, r3                            |             r3 = pc + r3;
    0x000327b4 str r3, [sp]                              |             *(sp) = r3;
    0x000327b8 ldr r3, [pc, 0x98]                        |             r3 = *(0x32854);
    0x000327bc add r1, pc, r1                            |             r1 = pc + r1;
    0x000327c0 add r3, pc, r3                            |             r3 = pc + r3;
    0x000327c4 mov r2, r0                                |             r2 = r0;
    0x000327c8 mov r0, r6                                |             r0 = r6;
    0x000327cc bl 0x5c50                                 |             fprintf (r0, r1, r2, r3)
    0x000327d0 ldr r1, [pc, 0x84]                        |             r1 = *(0x32858);
    0x000327d4 mov r0, r4                                |             r0 = r4;
    0x000327d8 add r1, pc, r1                            |             r1 = pc + r1;
    0x000327dc bl 0x32264                                |             fcn_00032264 (r0);
                                                         |         }
    0x000327e0 mov r3, 1                                 |         r3 = 1;
    0x000327e4 str r3, [r4, 8]                           |         *((r4 + 8)) = r3;
    0x000327e8 cmp r5, 0                                 |         
    0x000327ec mvn r3, 0                                 |         r3 = ~0;
    0x000327f0 str r3, [r4]                              |         *(r4) = r3;
                                                         |         if (r5 == 0) {
    0x000327f4 beq 0x3282c                               |             goto label_0;
                                                         |         }
    0x000327f8 add r2, sp, 0x24                          |         r2 += var_24h;
    0x000327fc mov r1, r5                                |         r1 = r5;
    0x00032800 add r0, r4, 4                             |         r0 = r4 + 4;
    0x00032804 str r2, [sp, 0xc]                         |         var_ch = r2;
    0x00032808 bl 0x619c                                 |         r0 = vasprintf ();
    0x0003280c cmp r0, 0                                 |         
                                                         |         if (r0 >= 0) {
    0x00032810 blt 0x32820                               |             
    0x00032814 ldr r3, [r4, 4]                           |             r3 = *((r4 + 4));
    0x00032818 cmp r3, 0                                 |             
                                                         |             if (r3 != 0) {
    0x0003281c bne 0x3282c                               |                 goto label_0;
                                                         |             }
                                                         |         }
    0x00032820 mov r0, r4                                |         r0 = r4;
    0x00032824 bl 0x32668                                |         fcn_00032668 (r0);
    0x00032828 mov r4, 0                                 |         r4 = 0;
                                                         |     }
                                                         | label_0:
    0x0003282c mov r0, r4                                |     r0 = r4;
    0x00032830 add sp, sp, 0x10                          |     
    0x00032834 pop {r4, r5, r6, lr}                      |     
    0x00032838 add sp, sp, 0x10                          |     
    0x0003283c bx lr                                     |     return;
                                                         | }
    ; 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 @ 0x32860 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00032860 ()                      | void fcn_00032860 (int32_t arg1, uint32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00032860 ldr r3, [r0]                      |     r3 = *(r0);
    0x00032864 push {r0, r1, r4, r5, r6, lr}     |     
    0x00032868 ldr r6, [pc, 0xc4]                |     r6 = *(0x32930);
    0x0003286c cmp r3, 0                         |     
    0x00032870 add r6, pc, r6                    |     r6 = pc + r6;
                                                 |     if (r3 >= 0) {
    0x00032874 blt 0x32898                       |         
    0x00032878 ldr r3, [pc, 0xb8]                |         r3 = *(0x32934);
    0x0003287c ldr r1, [pc, 0xb8]                |         r1 = *(0x32938);
    0x00032880 ldr r0, [pc, 0xb8]                |         r0 = *(0x3293c);
    0x00032884 add r3, pc, r3                    |         r3 = pc + r3;
    0x00032888 mov r2, 0x6d                      |         r2 = 0x6d;
    0x0003288c add r1, pc, r1                    |         r1 = pc + r1;
    0x00032890 add r0, pc, r0                    |         r0 = pc + r0;
    0x00032894 bl 0x6130                         |         assert ();
                                                 |     }
    0x00032898 cmp r1, 0                         |     
    0x0003289c mov r5, r0                        |     r5 = r0;
                                                 |     if (r1 != 0) {
    0x000328a0 beq 0x328bc                       |         
    0x000328a4 mov r0, r1                        |         r0 = r1;
    0x000328a8 bl 0x5e48                         |         r0 = strdup (r0);
    0x000328ac subs r4, r0, 0                    |         r4 = r0 - 0;
                                                 |         if (r4 == r0) {
    0x000328b0 bne 0x328c0                       |             
    0x000328b4 mvn r0, 0xb                       |             r0 = ~0xb;
    0x000328b8 b 0x3292c                         |             
                                                 |         } else {
    0x000328bc mov r4, r1                        |             r4 = r1;
                                                 |         }
    0x000328c0 ldr r0, [r5, 0xc]                 |         r0 = *((r5 + 0xc));
    0x000328c4 bl 0x6220                         |         free (r0);
    0x000328c8 ldr r3, [pc, 0x74]                |         r3 = *(0x32940);
    0x000328cc str r4, [r5, 0xc]                 |         *((r5 + 0xc)) = r4;
    0x000328d0 ldr r0, [pc, r3]                  |         r0 = *(0x000328d8);
    0x000328d4 ands r0, r0, 4                    |         r0 &= 4;
                                                 |         if (r0 == r0) {
    0x000328d8 beq 0x3292c                       |             goto label_0;
                                                 |         }
    0x000328dc ldr r3, [pc, 0x64]                |         r3 = *(0x32944);
    0x000328e0 ldr r3, [r6, r3]                  |         r3 = *((r6 + r3));
    0x000328e4 ldr r6, [r3]                      |         r6 = *(0x32944);
    0x000328e8 bl 0x58fc                         |         getpid ();
    0x000328ec ldr r3, [pc, 0x58]                |         r3 = *(0x32948);
    0x000328f0 ldr r1, [pc, 0x58]                |         r1 = *(0x3294c);
    0x000328f4 add r3, pc, r3                    |         r3 = pc + r3;
    0x000328f8 str r3, [sp]                      |         *(sp) = r3;
    0x000328fc ldr r3, [pc, 0x50]                |         r3 = *(0x32950);
    0x00032900 add r1, pc, r1                    |         r1 = pc + r1;
    0x00032904 add r3, pc, r3                    |         r3 = pc + r3;
    0x00032908 mov r2, r0                        |         r2 = r0;
    0x0003290c mov r0, r6                        |         r0 = r6;
    0x00032910 bl 0x5c50                         |         fprintf (r0, r1, r2, r3)
    0x00032914 ldr r1, [pc, 0x3c]                |         r1 = *(0x32954);
    0x00032918 mov r0, r5                        |         r0 = r5;
    0x0003291c mov r2, r4                        |         r2 = r4;
    0x00032920 add r1, pc, r1                    |         r1 = pc + r1;
    0x00032924 bl 0x32264                        |         fcn_00032264 (r0);
    0x00032928 mov r0, 0                         |         r0 = 0;
                                                 |     }
                                                 | label_0:
    0x0003292c add sp, sp, 8                     |     
    0x00032930 pop {r4, r5, r6, pc}              |     
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x32968 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00032968 ()                      | void fcn_00032968 (int32_t arg1, char * arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00032968 push {r0, r1, r4, r5, r6, lr}     |     
    0x0003296c ldr r5, [pc, 0xb4]                |     r5 = *(0x32a24);
    0x00032970 mov r6, r0                        |     r6 = r0;
    0x00032974 subs r0, r1, 0                    |     r0 = r1 - 0;
    0x00032978 add r5, pc, r5                    |     r5 = pc + r5;
                                                 |     if (r0 != r1) {
    0x0003297c beq 0x32994                       |         
    0x00032980 bl 0x5e48                         |         r0 = strdup (r0);
    0x00032984 subs r4, r0, 0                    |         r4 = r0 - 0;
                                                 |         if (r4 == r0) {
    0x00032988 bne 0x32998                       |             
    0x0003298c mvn r0, 0xb                       |             r0 = ~0xb;
    0x00032990 b 0x32a20                         |             
                                                 |         } else {
    0x00032994 mov r4, r0                        |             r4 = r0;
                                                 |         }
    0x00032998 ldr r0, [r6]                      |         r0 = *(r6);
    0x0003299c cmp r0, 0                         |         
                                                 |         if (r0 >= 0) {
    0x000329a0 blt 0x329b0                       |             
    0x000329a4 bl 0x61e4                         |             close (r0);
    0x000329a8 mvn r3, 0                         |             r3 = ~0;
    0x000329ac str r3, [r6]                      |             *(r6) = r3;
                                                 |         }
    0x000329b0 ldr r0, [r6, 4]                   |         r0 = *((r6 + 4));
    0x000329b4 bl 0x6220                         |         free (r0);
    0x000329b8 ldr r3, [pc, 0x6c]                |         
    0x000329bc str r4, [r6, 4]                   |         *((r6 + 4)) = r4;
    0x000329c0 add r3, pc, r3                    |         r3 = pc + r3;
    0x000329c4 ldr r3, [r3]                      |         r3 = *(0x32a28);
    0x000329c8 ands r0, r3, 4                    |         r0 = r3 & 4;
                                                 |         if (r0 == r3) {
    0x000329cc beq 0x32a20                       |             goto label_0;
                                                 |         }
    0x000329d0 ldr r3, [pc, 0x58]                |         r3 = *(0x32a2c);
    0x000329d4 ldr r3, [r5, r3]                  |         r3 = *((r5 + r3));
    0x000329d8 ldr r5, [r3]                      |         r5 = *(0x32a2c);
    0x000329dc bl 0x58fc                         |         getpid ();
    0x000329e0 ldr r3, [pc, 0x4c]                |         r3 = *(0x32a30);
    0x000329e4 ldr r1, [pc, 0x4c]                |         r1 = *(0x32a34);
    0x000329e8 add r3, pc, r3                    |         r3 = pc + r3;
    0x000329ec str r3, [sp]                      |         *(sp) = r3;
    0x000329f0 ldr r3, [pc, 0x44]                |         r3 = *(0x32a38);
    0x000329f4 add r1, pc, r1                    |         r1 = pc + r1;
    0x000329f8 add r3, pc, r3                    |         r3 = pc + r3;
    0x000329fc mov r2, r0                        |         r2 = r0;
    0x00032a00 mov r0, r5                        |         r0 = r5;
    0x00032a04 bl 0x5c50                         |         fprintf (r0, r1, r2, r3)
    0x00032a08 ldr r1, [pc, 0x30]                |         r1 = *(0x32a3c);
    0x00032a0c mov r0, r6                        |         r0 = r6;
    0x00032a10 mov r2, r4                        |         r2 = r4;
    0x00032a14 add r1, pc, r1                    |         r1 = pc + r1;
    0x00032a18 bl 0x32264                        |         fcn_00032264 (r0);
    0x00032a1c mov r0, 0                         |         r0 = 0;
                                                 |     }
                                                 | label_0:
    0x00032a20 add sp, sp, 8                     |     
    0x00032a24 pop {r4, r5, r6, pc}              |     
                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x32a50 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00032a50 ()                          | void fcn_00032a50 (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x00032a50 add ip, r0, 0x1000                    |     
    0x00032a54 push {r0, r1, r2, r4, r5, lr}         |     
    0x00032a58 ldr r3, [pc, 0x74]                    |     r3 = *(0x32ad0);
    0x00032a5c str r2, [ip, 0x14]                    |     *((ip + 0x14)) = r2;
    0x00032a60 ldr r2, [pc, 0x70]                    |     
    0x00032a64 add r3, pc, r3                        |     r3 = pc + r3;
    0x00032a68 add r2, pc, r2                        |     r2 = pc + r2;
    0x00032a6c ldr r2, [r2]                          |     r2 = *(0x32ad4);
    0x00032a70 str r1, [ip, 0x10]                    |     *((ip + 0x10)) = r1;
    0x00032a74 tst r2, 4                             |     
                                                     |     if ((r2 & 4) != 0) {
    0x00032a78 beq 0x32ac8                           |         
    0x00032a7c ldr r2, [pc, 0x58]                    |         r2 = *(0x32ad8);
    0x00032a80 mov r4, r0                            |         r4 = r0;
    0x00032a84 ldr r3, [r3, r2]                      |         r3 = *((r3 + r2));
    0x00032a88 ldr r5, [r3]                          |         r5 = *(r3);
    0x00032a8c bl 0x58fc                             |         getpid ();
    0x00032a90 ldr r3, [pc, 0x48]                    |         r3 = *(0x32adc);
    0x00032a94 ldr r1, [pc, 0x48]                    |         r1 = *(0x32ae0);
    0x00032a98 add r3, pc, r3                        |         r3 = pc + r3;
    0x00032a9c str r3, [sp]                          |         *(sp) = r3;
    0x00032aa0 ldr r3, [pc, 0x40]                    |         r3 = *(0x32ae4);
    0x00032aa4 add r1, pc, r1                        |         r1 = pc + r1;
    0x00032aa8 add r3, pc, r3                        |         r3 = pc + r3;
    0x00032aac mov r2, r0                            |         r2 = r0;
    0x00032ab0 mov r0, r5                            |         r0 = r5;
    0x00032ab4 bl 0x5c50                             |         fprintf (r0, r1, r2, r3)
    0x00032ab8 ldr r1, [pc, 0x2c]                    |         r1 = *(0x32ae8);
    0x00032abc mov r0, r4                            |         r0 = r4;
    0x00032ac0 add r1, pc, r1                        |         r1 = pc + r1;
    0x00032ac4 bl 0x32264                            |         fcn_00032264 (r0);
                                                     |     }
    0x00032ac8 mov r0, 0                             |     r0 = 0;
    0x00032acc add sp, sp, 0xc                       |     
    0x00032ad0 pop {r4, r5, pc}                      |     
                                                     | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x32b10 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00032b10 ()                          | void fcn_00032b10 (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_8h;
                                                     |     r0 = arg1;
    0x00032b10 push {r0, r1, r4, r5, r6, lr}         |     
    0x00032b14 ldr r6, [pc, 0x100]                   |     r6 = *(0x32c18);
    0x00032b18 subs r4, r0, 0                        |     r4 = r0 - 0;
    0x00032b1c add r6, pc, r6                        |     r6 = pc + r6;
                                                     |     if (r4 != r0) {
    0x00032b20 bne 0x32b48                           |         goto label_0;
                                                     |     }
    0x00032b24 ldr r3, [pc, 0xf4]                    |     
    0x00032b28 ldr r1, [pc, 0xf4]                    |     r1 = *(0x32c20);
    0x00032b2c ldr r0, [pc, 0xf4]                    |     r0 = *(0x32c24);
    0x00032b30 add r3, pc, r3                        |     r3 = pc + r3;
    0x00032b34 add r3, r3, 0x13                      |     r3 = 0x32c2f;
    0x00032b38 mov r2, 0xc8                          |     r2 = 0xc8;
    0x00032b3c add r1, pc, r1                        |     r1 = pc + r1;
    0x00032b40 add r0, pc, r0                        |     r0 = pc + r0;
                                                     |     do {
    0x00032b44 bl 0x6130                             |         assert ();
                                                     | label_0:
    0x00032b48 ldr r3, [r4, 4]                       |         r3 = *((r4 + 4));
    0x00032b4c cmp r3, 0                             |         
                                                     |         if (r3 != 0) {
    0x00032b50 bne 0x32b78                           |             goto label_1;
                                                     |         }
    0x00032b54 ldr r3, [pc, 0xd0]                    |         
    0x00032b58 ldr r1, [pc, 0xd0]                    |         r1 = *(0x32c2c);
    0x00032b5c ldr r0, [pc, 0xd0]                    |         r0 = *(0x32c30);
    0x00032b60 add r3, pc, r3                        |         r3 = pc + r3;
    0x00032b64 add r3, r3, 0x13                      |         r3 = 0x32c3b;
    0x00032b68 mov r2, 0xc9                          |         r2 = 0xc9;
    0x00032b6c add r1, pc, r1                        |         r1 = pc + r1;
    0x00032b70 add r0, pc, r0                        |         r0 = pc + r0;
    0x00032b74 b 0x32b44                             |         
                                                     |     } while (1);
                                                     | label_1:
    0x00032b78 ldr r3, [r4]                          |     r3 = *(r4);
    0x00032b7c cmp r3, 0                             |     
                                                     |     if (r3 >= 0) {
    0x00032b80 bge 0x32c14                           |         goto label_2;
                                                     |     }
    0x00032b84 bl 0x323b0                            |     r0 = fcn_000323b0 (r0);
    0x00032b88 subs r5, r0, 0                        |     r5 = r0 - 0;
                                                     |     if (r5 != r0) {
    0x00032b8c bne 0x32ba4                           |         goto label_3;
                                                     |     }
    0x00032b90 bl 0x60ac                             |     r0 = errno_location ();
    0x00032b94 ldr r0, [r0]                          |     r0 = *(r0);
    0x00032b98 rsb r0, r0, 0                         |     r0 -= ;
                                                     |     do {
    0x00032b9c add sp, sp, 8                         |         
    0x00032ba0 pop {r4, r5, r6, pc}                  |         
                                                     | label_3:
    0x00032ba4 ldr r3, [pc, 0x8c]                    |         
    0x00032ba8 add r3, pc, r3                        |         r3 = pc + r3;
    0x00032bac ldr r3, [r3]                          |         r3 = *(0x32c34);
    0x00032bb0 tst r3, 4                             |         
                                                     |         if ((r3 & 4) != 0) {
    0x00032bb4 beq 0x32c04                           |             
    0x00032bb8 ldr r3, [pc, 0x7c]                    |             r3 = *(0x32c38);
    0x00032bbc ldr r3, [r6, r3]                      |             r3 = *((r6 + r3));
    0x00032bc0 ldr r6, [r3]                          |             r6 = *(0x32c38);
    0x00032bc4 bl 0x58fc                             |             getpid ();
    0x00032bc8 ldr r3, [pc, 0x70]                    |             r3 = *(0x32c3c);
    0x00032bcc ldr r1, [pc, 0x70]                    |             r1 = *(0x32c40);
    0x00032bd0 add r3, pc, r3                        |             r3 = pc + r3;
    0x00032bd4 str r3, [sp]                          |             *(sp) = r3;
    0x00032bd8 ldr r3, [pc, 0x68]                    |             r3 = *(0x32c44);
    0x00032bdc add r1, pc, r1                        |             r1 = pc + r1;
    0x00032be0 add r3, pc, r3                        |             r3 = pc + r3;
    0x00032be4 mov r2, r0                            |             r2 = r0;
    0x00032be8 mov r0, r6                            |             r0 = r6;
    0x00032bec bl 0x5c50                             |             fprintf (r0, r1, r2, r3)
    0x00032bf0 ldr r1, [pc, 0x54]                    |             r1 = *(0x32c48);
    0x00032bf4 mov r2, r5                            |             r2 = r5;
    0x00032bf8 add r1, pc, r1                        |             r1 = pc + r1;
    0x00032bfc mov r0, r4                            |             r0 = r4;
    0x00032c00 bl 0x32264                            |             fcn_00032264 (r0);
                                                     |         }
    0x00032c04 mov r1, 0x80000                       |         r1 = 0x80000;
    0x00032c08 mov r0, r5                            |         r0 = r5;
    0x00032c0c bl 0x5e9c                             |         open64 ();
    0x00032c10 str r0, [r4]                          |         *(r4) = r0;
                                                     | label_2:
    0x00032c14 ldr r0, [r4]                          |         r0 = *(r4);
    0x00032c18 b 0x32b9c                             |         
                                                     |     } 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 @ 0x32d58 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00032d58 ()                                      | void fcn_00032d58 (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00032d58 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}     |     
    0x00032d5c ldr r8, [pc, 0xf4]                                |     r8 = *(0x32e54);
    0x00032d60 mov r6, r0                                        |     r6 = r0;
    0x00032d64 mov r7, r1                                        |     r7 = r1;
    0x00032d68 mov r5, r2                                        |     r5 = r2;
    0x00032d6c bl 0x32b10                                        |     fcn_00032b10 (r0);
    0x00032d70 add r8, pc, r8                                    |     r8 = pc + r8;
    0x00032d74 cmp r0, 0                                         |     
    0x00032d78 mov r4, r0                                        |     r4 = r0;
    0x00032d7c str r0, [sp, 0xc]                                 |     var_ch = r0;
                                                                 |     if (r0 >= 0) {
    0x00032d80 blt 0x32e4c                                       |         
    0x00032d84 ldr r3, [pc, 0xd0]                                |         
    0x00032d88 add r3, pc, r3                                    |         r3 = pc + r3;
    0x00032d8c ldr r3, [r3]                                      |         r3 = *(0x32e58);
    0x00032d90 tst r3, 4                                         |         
                                                                 |         if ((r3 & 4) != 0) {
    0x00032d94 beq 0x32de4                                       |             
    0x00032d98 ldr r3, [pc, 0xc0]                                |             r3 = *(0x32e5c);
    0x00032d9c ldr r3, [r8, r3]                                  |             r3 = *((r8 + r3));
    0x00032da0 ldr r4, [r3]                                      |             r4 = *(0x32e5c);
    0x00032da4 bl 0x58fc                                         |             getpid ();
    0x00032da8 ldr r3, [pc, 0xb4]                                |             r3 = *(0x32e60);
    0x00032dac ldr r1, [pc, 0xb4]                                |             r1 = *(0x32e64);
    0x00032db0 add r3, pc, r3                                    |             r3 = pc + r3;
    0x00032db4 str r3, [sp]                                      |             *(sp) = r3;
    0x00032db8 ldr r3, [pc, 0xac]                                |             r3 = *(0x32e68);
    0x00032dbc add r1, pc, r1                                    |             r1 = pc + r1;
    0x00032dc0 add r3, pc, r3                                    |             r3 = pc + r3;
    0x00032dc4 mov r2, r0                                        |             r2 = r0;
    0x00032dc8 mov r0, r4                                        |             r0 = r4;
    0x00032dcc bl 0x5c50                                         |             fprintf (r0, r1, r2, r3)
    0x00032dd0 ldr r1, [pc, 0x98]                                |             r1 = *(0x32e6c);
    0x00032dd4 mov r2, r5                                        |             r2 = r5;
    0x00032dd8 add r1, pc, r1                                    |             r1 = pc + r1;
    0x00032ddc mov r0, r6                                        |             r0 = r6;
    0x00032de0 bl 0x32264                                        |             fcn_00032264 (r0);
                                                                 |         }
    0x00032de4 mov r3, 0                                         |         r3 = 0;
    0x00032de8 mov r2, r7                                        |         r2 = r7;
    0x00032dec mov r1, r5                                        |         r1 = r5;
    0x00032df0 ldr r0, [sp, 0xc]                                 |         r0 = var_ch;
    0x00032df4 bl 0x5848                                         |         r0 = faccessat ();
    0x00032df8 subs r4, r0, 0                                    |         r4 = r0 - 0;
                                                                 |         if (r4 == r0) {
    0x00032dfc beq 0x32e4c                                       |             goto label_0;
                                                                 |         }
    0x00032e00 bl 0x60ac                                         |         r0 = errno_location ();
    0x00032e04 ldr r3, [r0]                                      |         r3 = *(r0);
    0x00032e08 cmp r3, 2                                         |         
                                                                 |         if (r3 != 2) {
    0x00032e0c bne 0x32e4c                                       |             goto label_0;
                                                                 |         }
    0x00032e10 add r3, r6, 0x1000                                |         r3 = r6 + 0x1000;
    0x00032e14 ldr r3, [r3, 0x18]                                |         r3 = *((r3 + 0x18));
    0x00032e18 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00032e1c beq 0x32e4c                                       |             goto label_0;
                                                                 |         }
    0x00032e20 add r2, sp, 0xc                                   |         r2 += var_ch;
    0x00032e24 mov r1, r5                                        |         r1 = r5;
    0x00032e28 mov r0, r6                                        |         r0 = r6;
    0x00032e2c blx r3                                            |         r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
    0x00032e30 subs r3, r0, 0                                    |         r3 = r0 - 0;
                                                                 |         if (r3 != r0) {
    0x00032e34 bne 0x32e4c                                       |             goto label_0;
                                                                 |         }
    0x00032e38 mov r2, r7                                        |         r2 = r7;
    0x00032e3c mov r1, r5                                        |         r1 = r5;
    0x00032e40 ldr r0, [sp, 0xc]                                 |         r0 = var_ch;
    0x00032e44 bl 0x5848                                         |         r0 = faccessat ();
    0x00032e48 mov r4, r0                                        |         r4 = r0;
                                                                 |     }
                                                                 | label_0:
    0x00032e4c mov r0, r4                                        |     r0 = r4;
    0x00032e50 add sp, sp, 0x10                                  |     
    0x00032e54 pop {r4, r5, r6, r7, r8, pc}                      |     
                                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x32eb4 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00032eb4 ()                          | void fcn_00032eb4 (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
                                                     |     int32_t var_14h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x00032eb4 push {r4, r5, r6, r7, r8, sb, lr}     |     
    0x00032eb8 ldr r8, [pc, 0x184]                   |     r8 = *(0x33040);
    0x00032ebc subs r7, r0, 0                        |     r7 = r0 - 0;
    0x00032ec0 add r8, pc, r8                        |     r8 = pc + r8;
    0x00032ec4 sub sp, sp, 0x14                      |     
    0x00032ec8 mov r5, r2                            |     r5 = r2;
                                                     |     if (r7 != r0) {
    0x00032ecc bne 0x32f44                           |         goto label_2;
                                                     |     }
    0x00032ed0 mov r0, r2                            |     r0 = r2;
    0x00032ed4 bl 0x5e9c                             |     open64 ();
    0x00032ed8 ldr r3, [pc, 0x168]                   |     
    0x00032edc add r3, pc, r3                        |     r3 = pc + r3;
    0x00032ee0 ldr r3, [r3]                          |     r3 = *(0x33044);
    0x00032ee4 tst r3, 4                             |     
    0x00032ee8 mov r4, r0                            |     r4 = r0;
                                                     |     if ((r3 & 4) == 0) {
    0x00032eec beq 0x32f38                           |         goto label_0;
                                                     |     }
    0x00032ef0 ldr r3, [pc, 0x154]                   |     r3 = *(0x33048);
    0x00032ef4 ldr r3, [r8, r3]                      |     r3 = *((r8 + r3));
    0x00032ef8 ldr r6, [r3]                          |     r6 = *(0x33048);
    0x00032efc bl 0x58fc                             |     getpid ();
    0x00032f00 ldr r3, [pc, 0x148]                   |     r3 = *(0x3304c);
    0x00032f04 ldr r1, [pc, 0x148]                   |     r1 = *(0x33050);
    0x00032f08 add r3, pc, r3                        |     r3 = pc + r3;
    0x00032f0c str r3, [sp]                          |     *(sp) = r3;
    0x00032f10 ldr r3, [pc, 0x140]                   |     r3 = *(0x33054);
    0x00032f14 add r1, pc, r1                        |     r1 = pc + r1;
    0x00032f18 add r3, pc, r3                        |     r3 = pc + r3;
    0x00032f1c mov r2, r0                            |     r2 = r0;
    0x00032f20 mov r0, r6                            |     r0 = r6;
    0x00032f24 bl 0x5c50                             |     fprintf (r0, r1, r2, r3)
    0x00032f28 ldr r0, [pc, 0x12c]                   |     r0 = *(0x33058);
    0x00032f2c mov r1, r5                            |     r1 = r5;
    0x00032f30 add r0, pc, r0                        |     r0 = pc + r0;
    0x00032f34 bl 0x32324                            |     fcn_00032324 ();
                                                     |     do {
                                                     | label_0:
    0x00032f38 mov r0, r4                            |         r0 = r4;
    0x00032f3c add sp, sp, 0x14                      |         
    0x00032f40 pop {r4, r5, r6, r7, r8, sb, pc}      |         
                                                     | label_2:
    0x00032f44 mov sb, r1                            |         sb = r1;
    0x00032f48 bl 0x32b10                            |         r0 = fcn_00032b10 (r0);
    0x00032f4c cmp r0, 0                             |         
    0x00032f50 mov r4, r0                            |         r4 = r0;
    0x00032f54 str r0, [sp, 0xc]                     |         var_ch = r0;
    0x00032f58 blt 0x32f38                           |         
                                                     |     } while (r0 < 0);
    0x00032f5c mov r2, sb                            |     r2 = sb;
    0x00032f60 mov r1, r5                            |     r1 = r5;
    0x00032f64 bl 0x5a10                             |     r0 = openat64 ();
    0x00032f68 subs r6, r0, 0                        |     r6 = r0 - 0;
                                                     |     if (r6 >= r0) {
    0x00032f6c bge 0x33030                           |         goto label_3;
                                                     |     }
    0x00032f70 bl 0x60ac                             |     r0 = errno_location ();
    0x00032f74 ldr r3, [r0]                          |     r3 = *(r0);
    0x00032f78 cmp r3, 2                             |     
                                                     |     if (r3 != 2) {
    0x00032f7c bne 0x33030                           |         goto label_3;
                                                     |     }
    0x00032f80 add r3, r7, 0x1000                    |     r3 = r7 + 0x1000;
    0x00032f84 ldr r3, [r3, 0x18]                    |     r3 = *((r3 + 0x18));
    0x00032f88 cmp r3, 0                             |     
                                                     |     if (r3 == 0) {
    0x00032f8c beq 0x33030                           |         goto label_3;
                                                     |     }
    0x00032f90 add r2, sp, 0xc                       |     r2 += var_ch;
    0x00032f94 mov r1, r5                            |     r1 = r5;
    0x00032f98 mov r0, r7                            |     r0 = r7;
    0x00032f9c blx r3                                |     r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
    0x00032fa0 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00032fa4 bne 0x33030                           |         goto label_3;
                                                     |     }
    0x00032fa8 mov r2, sb                            |     r2 = sb;
    0x00032fac mov r1, r5                            |     r1 = r5;
    0x00032fb0 ldr r0, [sp, 0xc]                     |     r0 = var_ch;
    0x00032fb4 bl 0x5a10                             |     r0 = openat64 ();
    0x00032fb8 mov r4, r0                            |     r4 = r0;
                                                     | label_1:
    0x00032fbc ldr r3, [pc, 0x9c]                    |     
    0x00032fc0 add r3, pc, r3                        |     r3 = pc + r3;
    0x00032fc4 ldr r3, [r3]                          |     r3 = *(0x3305c);
    0x00032fc8 tst r3, 4                             |     
                                                     |     if ((r3 & 4) == 0) {
    0x00032fcc beq 0x32f38                           |         goto label_0;
                                                     |     }
    0x00032fd0 ldr r3, [pc, 0x74]                    |     r3 = *(0x33048);
    0x00032fd4 ldr r3, [r8, r3]                      |     r3 = *((r8 + r3));
    0x00032fd8 ldr r8, [r3]                          |     r8 = *(0x33048);
    0x00032fdc bl 0x58fc                             |     getpid ();
    0x00032fe0 ldr r3, [pc, 0x7c]                    |     r3 = *(0x33060);
    0x00032fe4 ldr r1, [pc, 0x7c]                    |     r1 = *(0x33064);
    0x00032fe8 add r3, pc, r3                        |     r3 = pc + r3;
    0x00032fec str r3, [sp]                          |     *(sp) = r3;
    0x00032ff0 ldr r3, [pc, 0x74]                    |     r3 = *(0x33068);
    0x00032ff4 add r1, pc, r1                        |     r1 = pc + r1;
    0x00032ff8 add r3, pc, r3                        |     r3 = pc + r3;
    0x00032ffc mov r2, r0                            |     r2 = r0;
    0x00033000 mov r0, r8                            |     r0 = r8;
    0x00033004 bl 0x5c50                             |     fprintf (r0, r1, r2, r3)
    0x00033008 cmp r4, r6                            |     
                                                     |     if (r4 != r6) {
    0x0003300c bne 0x33038                           |         goto label_4;
                                                     |     }
    0x00033010 ldr r3, [pc, 0x58]                    |     r3 = *(0x3306c);
    0x00033014 add r3, pc, r3                        |     r3 = pc + r3;
                                                     |     do {
    0x00033018 ldr r1, [pc, 0x54]                    |         r1 = *(0x33070);
    0x0003301c mov r2, r5                            |         r2 = r5;
    0x00033020 add r1, pc, r1                        |         r1 = pc + r1;
    0x00033024 mov r0, r7                            |         r0 = r7;
    0x00033028 bl 0x32264                            |         fcn_00032264 (r0);
    0x0003302c b 0x32f38                             |         goto label_0;
                                                     | label_3:
    0x00033030 mov r4, r6                            |         r4 = r6;
    0x00033034 b 0x32fbc                             |         goto label_1;
                                                     | label_4:
    0x00033038 ldr r3, [pc, 0x38]                    |         r3 = *(0x33074);
    0x0003303c add r3, pc, r3                        |         r3 = pc + r3;
    0x00033040 b 0x33018                             |         
                                                     |     } 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 @ 0x332f4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000332f4 ()                      | void fcn_000332f4 (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x000332f4 ldr r3, [pc, 0xdc]                |     r3 = *(0x333d4);
    0x000332f8 push {r0, r1, r4, r5, r6, lr}     |     
    0x000332fc subs r6, r1, 0                    |     r6 = r1 - 0;
    0x00033300 add r3, pc, r3                    |     r3 = pc + r3;
                                                 |     if (r6 == r1) {
    0x00033304 beq 0x33338                       |         goto label_1;
                                                 |     }
    0x00033308 mov r2, r6                        |     r2 = r6;
    0x0003330c mov r1, 0x80000                   |     r1 = 0x80000;
    0x00033310 bl 0x32eb4                        |     r0 = fcn_00032eb4 (r0, r1);
                                                 |     do {
    0x00033314 cmp r0, 0                         |         
    0x00033318 mov r4, r0                        |         r4 = r0;
                                                 |         if (r0 >= 0) {
    0x0003331c blt 0x33348                       |             
    0x00033320 bl 0x57ac                         |             r0 = fdopendir ();
    0x00033324 subs r5, r0, 0                    |             r5 = r0 - 0;
                                                 |             if (r5 != r0) {
    0x00033328 bne 0x333c8                       |                 goto label_2;
                                                 |             }
    0x0003332c mov r0, r4                        |             r0 = r4;
    0x00033330 bl 0x61e4                         |             close (r0);
    0x00033334 b 0x3334c                         |             goto label_0;
                                                 | label_1:
    0x00033338 ldr r2, [r0, 4]                   |             r2 = *((r0 + 4));
    0x0003333c mov r4, r0                        |             r4 = r0;
    0x00033340 cmp r2, 0                         |             
                                                 |             if (r2 != 0) {
    0x00033344 bne 0x33358                       |                 goto label_3;
                                                 |             }
                                                 |         }
    0x00033348 mov r5, 0                         |         r5 = 0;
                                                 | label_0:
    0x0003334c mov r0, r5                        |         r0 = r5;
    0x00033350 add sp, sp, 8                     |         
    0x00033354 pop {r4, r5, r6, pc}              |         
                                                 | label_3:
    0x00033358 ldr r2, [pc, 0x7c]                |         
    0x0003335c add r2, pc, r2                    |         r2 = pc + r2;
    0x00033360 ldr r2, [r2]                      |         r2 = *(0x333d8);
    0x00033364 tst r2, 4                         |         
                                                 |         if ((r2 & 4) != 0) {
    0x00033368 beq 0x333b4                       |             
    0x0003336c ldr r2, [pc, 0x6c]                |             r2 = *(0x333dc);
    0x00033370 ldr r3, [r3, r2]                  |             r3 = *((r3 + r2));
    0x00033374 ldr r5, [r3]                      |             r5 = *(r3);
    0x00033378 bl 0x58fc                         |             getpid ();
    0x0003337c ldr r3, [pc, 0x60]                |             r3 = *(0x333e0);
    0x00033380 ldr r1, [pc, 0x60]                |             r1 = *(0x333e4);
    0x00033384 add r3, pc, r3                    |             r3 = pc + r3;
    0x00033388 str r3, [sp]                      |             *(sp) = r3;
    0x0003338c ldr r3, [pc, 0x58]                |             r3 = *(0x333e8);
    0x00033390 add r1, pc, r1                    |             r1 = pc + r1;
    0x00033394 add r3, pc, r3                    |             r3 = pc + r3;
    0x00033398 mov r2, r0                        |             r2 = r0;
    0x0003339c mov r0, r5                        |             r0 = r5;
    0x000333a0 bl 0x5c50                         |             fprintf (r0, r1, r2, r3)
    0x000333a4 ldr r1, [pc, 0x44]                |             r1 = *(0x333ec);
    0x000333a8 mov r0, r4                        |             r0 = r4;
    0x000333ac add r1, pc, r1                    |             r1 = pc + r1;
    0x000333b0 bl 0x32264                        |             fcn_00032264 (r0);
                                                 |         }
    0x000333b4 mov r0, r4                        |         r0 = r4;
    0x000333b8 bl 0x32b10                        |         fcn_00032b10 (r0);
    0x000333bc mov r1, 3                         |         r1 = 3;
    0x000333c0 bl 0x23078                        |         fcn_00023078 (r0, r1);
    0x000333c4 b 0x33314                         |         
                                                 |     } while (1);
                                                 | label_2:
    0x000333c8 cmp r6, 0                         |     
                                                 |     if (r6 != 0) {
    0x000333cc bne 0x3334c                       |         goto label_0;
                                                 |     }
    0x000333d0 bl 0x59d4                         |     rewinddir ();
    0x000333d4 b 0x3334c                         |     goto label_0;
                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x334f0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.000334f0 ()                                  | void fcn_000334f0 (int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_14h;
                                                             |     r1 = arg2;
    0x000334f0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000334f4 ldr r7, [pc, 0x148]                           |     r7 = *(0x33640);
    0x000334f8 sub sp, sp, 0x14                              |     
    0x000334fc mov r6, r1                                    |     r6 = r1;
    0x00033500 mov r5, r2                                    |     r5 = r2;
    0x00033504 mov r1, 0x80000                               |     r1 = 0x80000;
    0x00033508 mov r2, r3                                    |     r2 = r3;
    0x0003350c mov r4, r3                                    |     r4 = r3;
    0x00033510 bl 0x32eb4                                    |     fcn_00032eb4 (r0, r1);
    0x00033514 add r7, pc, r7                                |     r7 = pc + r7;
    0x00033518 subs r8, r0, 0                                |     r8 = r0 - 0;
                                                             |     if (r8 < r0) {
    0x0003351c bge 0x33534                                   |         
    0x00033520 bl 0x3242c                                    |         r0 = fcn_0003242c ();
    0x00033524 mov r4, r0                                    |         r4 = r0;
                                                             | label_0:
    0x00033528 mov r0, r4                                    |         r0 = r4;
    0x0003352c add sp, sp, 0x14                              |         
    0x00033530 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             |     }
    0x00033534 ldr r3, [pc, 0x10c]                           |     
    0x00033538 add r3, pc, r3                                |     r3 = pc + r3;
    0x0003353c ldr r3, [r3]                                  |     r3 = *(0x33644);
    0x00033540 tst r3, 4                                     |     
                                                             |     if ((r3 & 4) != 0) {
    0x00033544 beq 0x33590                                   |         
    0x00033548 ldr r3, [pc, 0xfc]                            |         r3 = *(0x33648);
    0x0003354c ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00033550 ldr r7, [r3]                                  |         r7 = *(0x33648);
    0x00033554 bl 0x58fc                                     |         getpid ();
    0x00033558 ldr r3, [pc, 0xf0]                            |         r3 = *(0x3364c);
    0x0003355c ldr r1, [pc, 0xf0]                            |         r1 = *(0x33650);
    0x00033560 add r3, pc, r3                                |         r3 = pc + r3;
    0x00033564 str r3, [sp]                                  |         *(sp) = r3;
    0x00033568 ldr r3, [pc, 0xe8]                            |         r3 = *(0x33654);
    0x0003356c add r1, pc, r1                                |         r1 = pc + r1;
    0x00033570 add r3, pc, r3                                |         r3 = pc + r3;
    0x00033574 mov r2, r0                                    |         r2 = r0;
    0x00033578 mov r0, r7                                    |         r0 = r7;
    0x0003357c bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x00033580 ldr r0, [pc, 0xd4]                            |         r0 = *(0x33658);
    0x00033584 mov r1, r4                                    |         r1 = r4;
    0x00033588 add r0, pc, r0                                |         r0 = pc + r0;
    0x0003358c bl 0x32324                                    |         fcn_00032324 ();
                                                             |     }
    0x00033590 mov r2, r5                                    |     r2 = r5;
    0x00033594 mov r1, 0                                     |     r1 = 0;
    0x00033598 mov r0, r6                                    |     r0 = r6;
    0x0003359c bl 0x5e78                                     |     r0 = memset (r0, r1, r2);
    0x000335a0 bl 0x60ac                                     |     errno_location ();
    0x000335a4 ldr sl, [pc, 0xb4]                            |     sl = *(0x00033660);
    0x000335a8 mov sb, 0                                     |     sb = 0;
    0x000335ac mov r4, sb                                    |     r4 = sb;
    0x000335b0 add fp, sp, 8                                 |     
    0x000335b4 mov r7, r0                                    |     r7 = r0;
                                                             |     do {
                                                             | label_1:
    0x000335b8 cmp r5, 0                                     |         
                                                             |         if (r5 == 0) {
    0x000335bc beq 0x3361c                                   |             goto label_2;
                                                             |         }
    0x000335c0 mov r2, r5                                    |         r2 = r5;
    0x000335c4 mov r1, r6                                    |         r1 = r6;
    0x000335c8 mov r0, r8                                    |         r0 = r8;
    0x000335cc bl 0x5d1c                                     |         r0 = read (r0, r1, r2);
    0x000335d0 cmp r0, 0                                     |         
                                                             |         if (r0 > 0) {
    0x000335d4 bgt 0x33630                                   |             goto label_3;
                                                             |         }
    0x000335d8 ldr r2, [r7]                                  |         r2 = *(r7);
                                                             |         if (r0 == 0) {
    0x000335dc beq 0x33614                                   |             goto label_4;
                                                             |         }
    0x000335e0 cmp r2, 4                                     |         
    0x000335e4 cmpne r2, 0xb                                 |         __asm ("cmpne r2, 0xb");
                                                             |         if (r2 != 4) {
    0x000335e8 bne 0x33614                                   |             goto label_4;
                                                             |         }
    0x000335ec cmp sb, 4                                     |         
                                                             |         if (sb > 4) {
    0x000335f0 bgt 0x33614                                   |             goto label_4;
                                                             |         }
    0x000335f4 mov r3, 0                                     |         r3 = 0;
    0x000335f8 mov r1, r3                                    |         r1 = r3;
    0x000335fc mov r0, fp                                    |         r0 = fp;
    0x00033600 add sb, sb, 1                                 |         sb++;
    0x00033604 str r3, [sp, 8]                               |         var_8h = r3;
    0x00033608 str sl, [sp, 0xc]                             |         var_ch = sl;
    0x0003360c bl 0x5bd8                                     |         nanosleep ();
    0x00033610 b 0x335b8                                     |         
                                                             |     } while (1);
                                                             | label_4:
    0x00033614 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00033618 mvneq r4, 0                                   |         r4 = ~0;
                                                             |     }
                                                             | label_2:
    0x0003361c ldr r5, [r7]                                  |     r5 = *(r7);
    0x00033620 mov r0, r8                                    |     r0 = r8;
    0x00033624 bl 0x61e4                                     |     close (r0);
    0x00033628 str r5, [r7]                                  |     *(r7) = r5;
    0x0003362c b 0x33528                                     |     goto label_0;
                                                             | label_3:
    0x00033630 sub r5, r5, r0                                |     r5 -= r0;
    0x00033634 add r6, r6, r0                                |     r6 += r0;
    0x00033638 add r4, r4, r0                                |     r4 += r0;
    0x0003363c mov sb, 0                                     |     sb = 0;
    0x00033640 b 0x335b8                                     |     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 @ 0x33810 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00033810 ()                              | void fcn_00033810 (int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_ch;
                                                         |     int32_t var_10h;
                                                         |     char * format;
                                                         |     int32_t var_24h;
                                                         |     r1 = arg2;
    0x00033810 push {r2, r3}                             |     
    0x00033814 push {r0, r1, r2, r3, r4, r5, r6, lr}     |     
    0x00033818 ldr r6, [pc, 0xb4]                        |     r6 = *(0x338d0);
    0x0003381c mov r4, r1                                |     r4 = r1;
    0x00033820 mov r2, r1                                |     r2 = r1;
    0x00033824 ldr r1, [pc, 0xac]                        |     r1 = *(0x338d4);
    0x00033828 add r6, pc, r6                            |     r6 = pc + r6;
    0x0003382c add r1, pc, r1                            |     r1 = pc + r1;
    0x00033830 bl 0x330dc                                |     r0 = fcn_000330dc (r0);
    0x00033834 subs r5, r0, 0                            |     r5 = r0 - 0;
                                                         |     if (r5 != r0) {
    0x00033838 mvneq r4, 0x15                            |         r4 = ~0x15;
                                                         |     }
                                                         |     if (r5 != r0) {
    0x0003383c beq 0x338c0                               |         
    0x00033840 ldr r3, [pc, 0x94]                        |         
    0x00033844 add r3, pc, r3                            |         r3 = pc + r3;
    0x00033848 ldr r3, [r3]                              |         r3 = *(0x338d8);
    0x0003384c tst r3, 4                                 |         
                                                         |         if ((r3 & 4) != 0) {
    0x00033850 beq 0x338a0                               |             
    0x00033854 ldr r3, [pc, 0x84]                        |             r3 = *(0x338dc);
    0x00033858 ldr r3, [r6, r3]                          |             r3 = *((r6 + r3));
    0x0003385c ldr r6, [r3]                              |             r6 = *(0x338dc);
    0x00033860 bl 0x58fc                                 |             getpid ();
    0x00033864 ldr r3, [pc, 0x78]                        |             r3 = *(0x338e0);
    0x00033868 ldr r1, [pc, 0x78]                        |             r1 = *(0x338e4);
    0x0003386c add r3, pc, r3                            |             r3 = pc + r3;
    0x00033870 str r3, [sp]                              |             *(sp) = r3;
    0x00033874 ldr r3, [pc, 0x70]                        |             r3 = *(0x338e8);
    0x00033878 add r1, pc, r1                            |             r1 = pc + r1;
    0x0003387c add r3, pc, r3                            |             r3 = pc + r3;
    0x00033880 mov r2, r0                                |             r2 = r0;
    0x00033884 mov r0, r6                                |             r0 = r6;
    0x00033888 bl 0x5c50                                 |             fprintf (r0, r1, r2, r3)
    0x0003388c ldr r0, [pc, 0x5c]                        |             r0 = *(0x338ec);
    0x00033890 mov r2, r4                                |             r2 = r4;
    0x00033894 ldr r1, [sp, 0x20]                        |             r1 = format;
    0x00033898 add r0, pc, r0                            |             r0 = pc + r0;
    0x0003389c bl 0x32324                                |             fcn_00032324 ();
                                                         |         }
    0x000338a0 add r2, sp, 0x24                          |         r2 += var_24h;
    0x000338a4 ldr r1, [sp, 0x20]                        |         r1 = format;
    0x000338a8 mov r0, r5                                |         r0 = r5;
    0x000338ac str r2, [sp, 0xc]                         |         var_ch = r2;
    0x000338b0 bl 0x6088                                 |         r0 = vfscanf (r0, r1, r2);
    0x000338b4 mov r4, r0                                |         r4 = r0;
    0x000338b8 mov r0, r5                                |         r0 = r5;
    0x000338bc bl 0x5e90                                 |         fclose (r0);
                                                         |     }
    0x000338c0 mov r0, r4                                |     r0 = r4;
    0x000338c4 add sp, sp, 0x10                          |     
    0x000338c8 pop {r4, r5, r6, lr}                      |     
    0x000338cc add sp, sp, 8                             |     
    0x000338d0 bx lr                                     |     return;
                                                         | }
    ; 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 @ 0x34504 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00034504 ()                  | void fcn_00034504 (int32_t arg1) {
                                             |     int32_t var_4h;
                                             |     int32_t var_ch;
                                             |     char * format;
                                             |     int32_t var_18h;
                                             |     r0 = arg1;
    0x00034504 push {r1, r2, r3}             |     
    0x00034508 ldr r3, [pc, 0xa4]            |     r3 = *(0x345b0);
    0x0003450c push {r0, r1, r2, r4, lr}     |     
    0x00034510 ldr r1, [pc, 0xa0]            |     r1 = *(0x345b4);
    0x00034514 add r3, pc, r3                |     r3 = pc + r3;
    0x00034518 subs r2, r0, 0                |     r2 = r0 - 0;
    0x0003451c ldr r4, [r3, r1]              |     r4 = *(0x345b0);
                                             |     if (r2 != r0) {
    0x00034520 beq 0x34548                   |         
    0x00034524 ldr r3, [pc, 0x90]            |         
    0x00034528 add r3, pc, r3                |         r3 = pc + r3;
    0x0003452c ldr r3, [r3]                  |         r3 = *(0x345b8);
    0x00034530 tst r3, 0x1000000             |         
                                             |         if ((r3 & 0x1000000) != 0) {
    0x00034534 bne 0x34548                   |             goto label_1;
                                             |         }
    0x00034538 ldr r1, [pc, 0x80]            |         r1 = *(0x345bc);
    0x0003453c ldr r0, [r4]                  |         r0 = *(r4);
    0x00034540 add r1, pc, r1                |         r1 = pc + r1;
    0x00034544 bl 0x5c50                     |         fprintf (r0, r1)
                                             |     }
                                             | label_1:
    0x00034548 add r2, sp, 0x18              |     r2 += var_18h;
    0x0003454c ldr r1, [sp, 0x14]            |     r1 = format;
    0x00034550 ldr r0, [r4]                  |     r0 = *(r4);
    0x00034554 str r2, [sp, 4]               |     var_4h = r2;
    0x00034558 bl 0x61f0                     |     vfprintf (r0, r1, r2)
    0x0003455c ldr r1, [r4]                  |     r1 = *(r4);
    0x00034560 ldr r3, [r1, 0x34]            |     r3 = *((r1 + 0x34));
    0x00034564 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00034568 beq 0x345a8                   |         goto label_2;
                                             |     }
    0x0003456c ldr r3, [r1, 0x10]            |     r3 = *((r1 + 0x10));
    0x00034570 ldr r2, [r1, 0x1c]            |     r2 = *((r1 + 0x1c));
    0x00034574 cmp r3, r2                    |     
                                             |     if (r3 >= r2) {
    0x00034578 bhs 0x3459c                   |         goto label_3;
                                             |     }
    0x0003457c add r2, r3, 1                 |     r2 = r3 + 1;
    0x00034580 str r2, [r1, 0x10]            |     *((r1 + 0x10)) = r2;
    0x00034584 mov r2, 0xa                   |     r2 = 0xa;
    0x00034588 strb r2, [r3]                 |     *(r3) = r2;
                                             |     do {
                                             | label_0:
    0x0003458c add sp, sp, 0xc               |         
    0x00034590 pop {r4, lr}                  |         
    0x00034594 add sp, sp, 0xc               |         
    0x00034598 bx lr                         |         return;
                                             | label_3:
    0x0003459c mov r0, 0xa                   |         r0 = 0xa;
    0x000345a0 bl 0x622c                     |         fputc_unlocked ();
    0x000345a4 b 0x3458c                     |         
                                             |     } while (1);
                                             | label_2:
    0x000345a8 mov r0, 0xa                   |     r0 = 0xa;
    0x000345ac bl 0x5ff8                     |     fputc (r0, r1);
    0x000345b0 b 0x3458c                     |     goto label_0;
                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x349f8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.000349f8 ()                                  | void fcn_000349f8 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000349f8 push {r0, r1, r4, r5, r6, r7, r8, lr}         |     
    0x000349fc ldr r8, [pc, 0xbc]                            |     r8 = *(0x34abc);
    0x00034a00 mov r7, r0                                    |     r7 = r0;
    0x00034a04 mov r6, r1                                    |     r6 = r1;
    0x00034a08 bl 0x32af0                                    |     fcn_00032af0 (r0);
    0x00034a0c cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00034a10 moveq r4, 1                                   |         r4 = 1;
                                                             |     }
    0x00034a14 add r8, pc, r8                                |     r8 = pc + r8;
    0x00034a18 mov r5, r0                                    |     r5 = r0;
    0x00034a1c clz r0, r0                                    |     r0 &= r0;
    0x00034a20 lsr r0, r0, 5                                 |     r0 >>= 5;
                                                             |     if (r7 == 0) {
    0x00034a24 movne r4, r0                                  |         r4 = r0;
                                                             |     }
    0x00034a28 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00034a2c mvnne r0, 0x15                                |         r0 = ~0x15;
                                                             |     }
                                                             |     if (r4 == 0) {
    0x00034a30 bne 0x34ab8                                   |         
    0x00034a34 ldr r0, [r5, 8]                               |         r0 = *((r5 + 8));
    0x00034a38 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00034a3c beq 0x34a48                                   |             
    0x00034a40 bl 0x32668                                    |             fcn_00032668 (r0);
    0x00034a44 str r4, [r5, 8]                               |             *((r5 + 8)) = r4;
                                                             |         }
    0x00034a48 cmp r6, 0                                     |         
                                                             |         if (r6 != 0) {
    0x00034a4c beq 0x34a58                                   |             
    0x00034a50 mov r0, r6                                    |             r0 = r6;
    0x00034a54 bl 0x32654                                    |             fcn_00032654 (r0);
                                                             |         }
    0x00034a58 ldr r3, [pc, 0x64]                            |         r3 = *(0x34ac0);
    0x00034a5c str r6, [r5, 8]                               |         *((r5 + 8)) = r6;
    0x00034a60 ldr r0, [pc, r3]                              |         r0 = *(0x00034a68);
    0x00034a64 ands r0, r0, 4                                |         r0 &= 4;
                                                             |         if (r0 == r0) {
    0x00034a68 beq 0x34ab8                                   |             goto label_0;
                                                             |         }
    0x00034a6c ldr r3, [pc, 0x54]                            |         r3 = *(0x34ac4);
    0x00034a70 ldr r3, [r8, r3]                              |         r3 = *((r8 + r3));
    0x00034a74 ldr r4, [r3]                                  |         r4 = *(0x34ac4);
    0x00034a78 bl 0x58fc                                     |         getpid ();
    0x00034a7c ldr r3, [pc, 0x48]                            |         r3 = *(0x34ac8);
    0x00034a80 ldr r1, [pc, 0x48]                            |         r1 = *(0x34acc);
    0x00034a84 add r3, pc, r3                                |         r3 = pc + r3;
    0x00034a88 str r3, [sp]                                  |         *(sp) = r3;
    0x00034a8c ldr r3, [pc, 0x40]                            |         r3 = *(0x34ad0);
    0x00034a90 add r1, pc, r1                                |         r1 = pc + r1;
    0x00034a94 add r3, pc, r3                                |         r3 = pc + r3;
    0x00034a98 mov r2, r0                                    |         r2 = r0;
    0x00034a9c mov r0, r4                                    |         r0 = r4;
    0x00034aa0 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x00034aa4 ldr r1, [pc, 0x2c]                            |         r1 = *(0x34ad4);
    0x00034aa8 mov r0, r7                                    |         r0 = r7;
    0x00034aac add r1, pc, r1                                |         r1 = pc + r1;
    0x00034ab0 bl 0x34504                                    |         fcn_00034504 (r0);
    0x00034ab4 mov r0, 0                                     |         r0 = 0;
                                                             |     }
                                                             | label_0:
    0x00034ab8 add sp, sp, 8                                 |     
    0x00034abc pop {r4, r5, r6, r7, r8, pc}                  |     
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x34adc */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00034adc ()                              | void fcn_00034adc (int32_t arg_58h, int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     char * s;
                                                         |     int32_t var_3ch;
                                                         |     r0 = arg1;
    0x00034adc push {r4, r5, r6, r7, r8, sb, lr}         |     
    0x00034ae0 ldr sb, [pc, 0x194]                       |     sb = *(0x34c78);
    0x00034ae4 sub sp, sp, 0x3c                          |     
    0x00034ae8 mov r1, r3                                |     r1 = r3;
    0x00034aec mov r4, r0                                |     r4 = r0;
    0x00034af0 mov r0, r2                                |     r0 = r2;
    0x00034af4 mov r6, r2                                |     r6 = r2;
    0x00034af8 mov r7, r3                                |     r7 = r3;
    0x00034afc bl 0x5944                                 |     gnu_dev_major ();
    0x00034b00 mov r1, r7                                |     r1 = r7;
    0x00034b04 add sb, pc, sb                            |     sb = pc + sb;
    0x00034b08 mov r5, r0                                |     r5 = r0;
    0x00034b0c mov r0, r6                                |     r0 = r6;
    0x00034b10 bl 0x5af4                                 |     gnu_dev_minor ();
    0x00034b14 ldr r2, [pc, 0x164]                       |     r2 = *(0x34c7c);
    0x00034b18 mov r3, r5                                |     r3 = r5;
    0x00034b1c add r5, sp, 8                             |     r5 += s;
    0x00034b20 add r2, pc, r2                            |     r2 = pc + r2;
    0x00034b24 mov r1, 0x2e                              |     r1 = 0x2e;
    0x00034b28 str r0, [sp]                              |     *(sp) = r0;
    0x00034b2c mov r0, r5                                |     r0 = r5;
    0x00034b30 bl 0x5830                                 |     snprintf (r0, r1, r2, r3);
    0x00034b34 mov r1, r5                                |     r1 = r5;
    0x00034b38 mov r0, r4                                |     r0 = r4;
    0x00034b3c bl 0x32968                                |     r0 = fcn_00032968 (r0, r1);
    0x00034b40 subs r5, r0, 0                            |     r5 = r0 - 0;
                                                         |     if (r5 == r0) {
    0x00034b44 bne 0x34c70                               |         
    0x00034b48 mov r0, r4                                |         r0 = r4;
    0x00034b4c bl 0x32b10                                |         r0 = fcn_00032b10 (r0);
    0x00034b50 cmp r0, 0                                 |         
                                                         |         if (r0 >= 0) {
    0x00034b54 movlt r5, r0                              |             r5 = r0;
                                                         |         }
                                                         |         if (r0 < 0) {
    0x00034b58 blt 0x34c70                               |             goto label_0;
                                                         |         }
    0x00034b5c mov r0, r4                                |         r0 = r4;
    0x00034b60 bl 0x32af0                                |         r0 = fcn_00032af0 (r0);
    0x00034b64 subs r8, r0, 0                            |         r8 = r0 - 0;
                                                         |         if (r8 == r0) {
    0x00034b68 bne 0x34c04                               |             
    0x00034b6c ldr r3, [pc, 0x110]                       |             
    0x00034b70 add r3, pc, r3                            |             r3 = pc + r3;
    0x00034b74 ldr r3, [r3]                              |             r3 = *(0x34c80);
    0x00034b78 tst r3, 4                                 |             
                                                         |             if ((r3 & 4) != 0) {
    0x00034b7c beq 0x34bc8                               |                 
    0x00034b80 ldr r3, [pc, 0x100]                       |                 r3 = *(0x34c84);
    0x00034b84 ldr r3, [sb, r3]                          |                 r3 = *((sb + r3));
    0x00034b88 ldr r8, [r3]                              |                 r8 = *(0x34c84);
    0x00034b8c bl 0x58fc                                 |                 getpid ();
    0x00034b90 ldr r3, [pc, 0xf4]                        |                 r3 = *(0x34c88);
    0x00034b94 ldr r1, [pc, 0xf4]                        |                 r1 = *(0x34c8c);
    0x00034b98 add r3, pc, r3                            |                 r3 = pc + r3;
    0x00034b9c str r3, [sp]                              |                 *(sp) = r3;
    0x00034ba0 ldr r3, [pc, 0xec]                        |                 r3 = *(0x34c90);
    0x00034ba4 add r1, pc, r1                            |                 r1 = pc + r1;
    0x00034ba8 add r3, pc, r3                            |                 r3 = pc + r3;
    0x00034bac mov r2, r0                                |                 r2 = r0;
    0x00034bb0 mov r0, r8                                |                 r0 = r8;
    0x00034bb4 bl 0x5c50                                 |                 fprintf (r0, r1, r2, r3)
    0x00034bb8 ldr r1, [pc, 0xd8]                        |                 r1 = *(0x34c94);
    0x00034bbc mov r0, r4                                |                 r0 = r4;
    0x00034bc0 add r1, pc, r1                            |                 r1 = pc + r1;
    0x00034bc4 bl 0x34504                                |                 fcn_00034504 (r0);
                                                         |             }
    0x00034bc8 mov r1, 0x20                              |             r1 = 0x20;
    0x00034bcc mov r0, 1                                 |             r0 = 1;
    0x00034bd0 bl 0x5bf0                                 |             r0 = calloc (r0, r1);
    0x00034bd4 subs r8, r0, 0                            |             r8 = r0 - 0;
                                                         |             if (r8 != r0) {
    0x00034bd8 mvneq r5, 0xb                             |                 r5 = ~0xb;
                                                         |             }
                                                         |             if (r8 == r0) {
    0x00034bdc beq 0x34c70                               |                 goto label_0;
                                                         |             }
    0x00034be0 ldr r2, [pc, 0xb4]                        |             r2 = *(0x34c98);
    0x00034be4 mov r1, r8                                |             r1 = r8;
    0x00034be8 add r2, pc, r2                            |             r2 = pc + r2;
    0x00034bec mov r0, r4                                |             r0 = r4;
    0x00034bf0 bl 0x32a50                                |             fcn_00032a50 (r0, r1);
    0x00034bf4 ldr r1, [pc, 0xa4]                        |             r1 = *(0x34c9c);
    0x00034bf8 mov r0, r4                                |             r0 = r4;
    0x00034bfc add r1, pc, r1                            |             r1 = pc + r1;
    0x00034c00 bl 0x32b00                                |             fcn_00032b00 (r0, r1);
                                                         |         }
    0x00034c04 ldr r3, [pc, 0x98]                        |         
    0x00034c08 add r3, pc, r3                            |         r3 = pc + r3;
    0x00034c0c ldr r3, [r3]                              |         r3 = *(0x34ca0);
    0x00034c10 tst r3, 4                                 |         
                                                         |         if ((r3 & 4) != 0) {
    0x00034c14 beq 0x34c60                               |             
    0x00034c18 ldr r3, [pc, 0x68]                        |             r3 = *(0x34c84);
    0x00034c1c ldr r3, [sb, r3]                          |             r3 = *((sb + r3));
    0x00034c20 ldr sb, [r3]                              |             sb = *(0x34c84);
    0x00034c24 bl 0x58fc                                 |             getpid ();
    0x00034c28 ldr r3, [pc, 0x78]                        |             r3 = *(0x34ca4);
    0x00034c2c ldr r1, [pc, 0x78]                        |             r1 = *(0x34ca8);
    0x00034c30 add r3, pc, r3                            |             r3 = pc + r3;
    0x00034c34 str r3, [sp]                              |             *(sp) = r3;
    0x00034c38 ldr r3, [pc, 0x70]                        |             r3 = *(0x34cac);
    0x00034c3c add r1, pc, r1                            |             r1 = pc + r1;
    0x00034c40 add r3, pc, r3                            |             r3 = pc + r3;
    0x00034c44 mov r2, r0                                |             r2 = r0;
    0x00034c48 mov r0, sb                                |             r0 = sb;
    0x00034c4c bl 0x5c50                                 |             fprintf (r0, r1, r2, r3)
    0x00034c50 ldr r1, [pc, 0x5c]                        |             r1 = *(0x34cb0);
    0x00034c54 mov r0, r4                                |             r0 = r4;
    0x00034c58 add r1, pc, r1                            |             r1 = pc + r1;
    0x00034c5c bl 0x34504                                |             fcn_00034504 (r0);
                                                         |         }
    0x00034c60 strd r6, r7, [r8]                         |         __asm ("strd r6, r7, [r8]");
    0x00034c64 ldr r1, [sp, 0x58]                        |         r1 = *(arg_58h);
    0x00034c68 mov r0, r4                                |         r0 = r4;
    0x00034c6c bl 0x349f8                                |         fcn_000349f8 (r0, r1);
                                                         |     }
                                                         | label_0:
    0x00034c70 mov r0, r5                                |     r0 = r5;
    0x00034c74 add sp, sp, 0x3c                          |     
    0x00034c78 pop {r4, r5, r6, r7, r8, sb, pc}          |     
                                                         | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x34cb8 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.00034cb8 ()                                          | void fcn_00034cb8 (int32_t arg1, int32_t arg2) {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_ch;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x00034cb8 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, lr}         |     
    0x00034cbc ldr r5, [pc, 0xc4]                                    |     r5 = *(0x34d84);
    0x00034cc0 mov r8, r0                                            |     r8 = r0;
    0x00034cc4 mov r0, 0                                             |     r0 = 0;
    0x00034cc8 mov sb, r1                                            |     sb = r1;
    0x00034ccc mov r7, r2                                            |     r7 = r2;
    0x00034cd0 mov r6, r3                                            |     r6 = r3;
    0x00034cd4 bl 0x3275c                                            |     fcn_0003275c ();
    0x00034cd8 add r5, pc, r5                                        |     r5 = pc + r5;
    0x00034cdc subs r4, r0, 0                                        |     r4 = r0 - 0;
                                                                     |     if (r4 == r0) {
    0x00034ce0 beq 0x34d1c                                           |         goto label_0;
                                                                     |     }
    0x00034ce4 cmp r6, 0                                             |     
                                                                     |     if (r6 != 0) {
    0x00034ce8 beq 0x34cf4                                           |         
    0x00034cec mov r1, r6                                            |         r1 = r6;
    0x00034cf0 bl 0x32860                                            |         fcn_00032860 (r0, r1);
                                                                     |     }
    0x00034cf4 str r7, [sp]                                          |     *(sp) = r7;
    0x00034cf8 mov r2, r8                                            |     r2 = r8;
    0x00034cfc mov r3, sb                                            |     r3 = sb;
    0x00034d00 mov r0, r4                                            |     r0 = r4;
    0x00034d04 bl 0x34adc                                            |     r0 = fcn_00034adc (r0, r1);
    0x00034d08 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x00034d0c beq 0x34d28                                           |         goto label_1;
                                                                     |     }
    0x00034d10 mov r0, r4                                            |     r0 = r4;
    0x00034d14 bl 0x32668                                            |     fcn_00032668 (r0);
    0x00034d18 mov r4, 0                                             |     r4 = 0;
                                                                     |     do {
                                                                     | label_0:
    0x00034d1c mov r0, r4                                            |         r0 = r4;
    0x00034d20 add sp, sp, 0xc                                       |         
    0x00034d24 pop {r4, r5, r6, r7, r8, sb, pc}                      |         
                                                                     | label_1:
    0x00034d28 ldr r3, [pc, 0x5c]                                    |         
    0x00034d2c add r3, pc, r3                                        |         r3 = pc + r3;
    0x00034d30 ldr r3, [r3]                                          |         r3 = *(0x34d88);
    0x00034d34 tst r3, 4                                             |         
    0x00034d38 beq 0x34d1c                                           |         
                                                                     |     } while ((r3 & 4) == 0);
    0x00034d3c ldr r3, [pc, 0x4c]                                    |     r3 = *(0x34d8c);
    0x00034d40 ldr r3, [r5, r3]                                      |     r3 = *((r5 + r3));
    0x00034d44 ldr r5, [r3]                                          |     r5 = *(0x34d8c);
    0x00034d48 bl 0x58fc                                             |     getpid ();
    0x00034d4c ldr r3, [pc, 0x40]                                    |     r3 = *(0x34d90);
    0x00034d50 ldr r1, [pc, 0x40]                                    |     r1 = *(0x34d94);
    0x00034d54 add r3, pc, r3                                        |     r3 = pc + r3;
    0x00034d58 str r3, [sp]                                          |     *(sp) = r3;
    0x00034d5c ldr r3, [pc, 0x38]                                    |     r3 = *(0x34d98);
    0x00034d60 add r1, pc, r1                                        |     r1 = pc + r1;
    0x00034d64 add r3, pc, r3                                        |     r3 = pc + r3;
    0x00034d68 mov r2, r0                                            |     r2 = r0;
    0x00034d6c mov r0, r5                                            |     r0 = r5;
    0x00034d70 bl 0x5c50                                             |     fprintf (r0, r1, r2, r3)
    0x00034d74 ldr r1, [pc, 0x24]                                    |     r1 = *(0x34d9c);
    0x00034d78 mov r0, r4                                            |     r0 = r4;
    0x00034d7c add r1, pc, r1                                        |     r1 = pc + r1;
    0x00034d80 bl 0x34504                                            |     fcn_00034504 (r0);
    0x00034d84 b 0x34d1c                                             |     goto label_0;
                                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x9820 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.blkid_devno_to_devname ()                    | void blkid_devno_to_devname (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_ch_2;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_4h_2;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_1000h;
                                                             |     int32_t var_24h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00009820 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00009824 ldr r5, [pc, 0x228]                           |     r5 = *(0x9a50);
    0x00009828 sub sp, sp, 0x1000                            |     
    0x0000982c sub sp, sp, 0x24                              |     
    0x00009830 add r4, sp, 0x20                              |     r4 += var_20h;
    0x00009834 mov r3, 0x1000                                |     r3 = 0x1000;
    0x00009838 mov r2, r4                                    |     r2 = r4;
    0x0000983c mov r7, r0                                    |     r7 = r0;
    0x00009840 mov r8, r1                                    |     r8 = r1;
    0x00009844 bl 0x35f6c                                    |     fcn_00035f6c (r0, r1);
    0x00009848 add r5, pc, r5                                |     r5 = pc + r5;
    0x0000984c cmp r0, 0                                     |     
    0x00009850 bne 0x99b4                                    |     
                                                             |     while (r6 == r0) {
    0x00009854 ldr r6, [pc, 0x1fc]                           |         r6 = *(0x9a54);
    0x00009858 mov r3, 0                                     |         r3 = 0;
    0x0000985c add r6, pc, r6                                |         r6 = pc + r6;
    0x00009860 sub r6, r6, 4                                 |         r6 -= 4;
    0x00009864 sub sb, r4, 0xc                               |         sb -= var_ch_2;
    0x00009868 str r3, [r4, -0xc]                            |         var_ch_2 = r3;
    0x0000986c str r3, [r4, -8]                              |         var_18h = r3;
    0x00009870 str r3, [r4, -4]                              |         var_4h_2 = r3;
                                                             | label_1:
    0x00009874 ldr r0, [r6, 4]!                              |         r0 = *((r6 += 4));
    0x00009878 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0000987c bne 0x9a28                                    |             goto label_4;
                                                             |         }
    0x00009880 ldr r3, [pc, 0x1d4]                           |         r3 = *(0x9a58);
    0x00009884 ldr sb, [r5, r3]                              |         sb = *((r5 + r3));
    0x00009888 ldr r3, [pc, 0x1d0]                           |         r3 = *(0x9a5c);
    0x0000988c add r3, pc, r3                                |         r3 = pc + r3;
    0x00009890 str r3, [sp, 0xc]                             |         var_ch = r3;
                                                             | label_3:
    0x00009894 add sl, sp, 0x18                              |         sl += var_18h;
                                                             | label_2:
    0x00009898 ldr r6, [r4, -0xc]                            |         r6 = var_ch_2;
    0x0000989c cmp r6, 0                                     |         
                                                             |         if (r6 != 0) {
    0x000098a0 beq 0x9934                                    |             
    0x000098a4 ldr r3, [r6, 4]                               |             r3 = *((r6 + 4));
    0x000098a8 str r3, [r4, -0xc]                            |             var_ch_2 = r3;
    0x000098ac ldr r3, [sb]                                  |             r3 = *(sb);
    0x000098b0 tst r3, 0x40                                  |             
                                                             |             if ((r3 & 0x40) != 0) {
    0x000098b4 beq 0x98fc                                    |                 
    0x000098b8 ldr r3, [pc, 0x1a4]                           |                 r3 = *(0x9a60);
    0x000098bc ldr r3, [r5, r3]                              |                 r3 = *((r5 + r3));
    0x000098c0 ldr fp, [r3]                                  |                 fp = *(0x9a60);
    0x000098c4 bl 0x58fc                                     |                 getpid ();
    0x000098c8 ldr r3, [pc, 0x198]                           |                 r3 = *(0x9a64);
    0x000098cc ldr r1, [pc, 0x198]                           |                 r1 = *(0x9a68);
    0x000098d0 add r3, pc, r3                                |                 r3 = pc + r3;
    0x000098d4 str r3, [sp]                                  |                 *(sp) = r3;
    0x000098d8 add r1, pc, r1                                |                 r1 = pc + r1;
    0x000098dc ldr r3, [sp, 0xc]                             |                 r3 = var_ch;
    0x000098e0 mov r2, r0                                    |                 r2 = r0;
    0x000098e4 mov r0, fp                                    |                 r0 = fp;
    0x000098e8 bl 0x5c50                                     |                 fprintf (r0, r1, r2, r3)
    0x000098ec ldr r0, [pc, 0x17c]                           |                 r0 = *(0x9a6c);
    0x000098f0 ldr r1, [r6]                                  |                 r1 = *(r6);
    0x000098f4 add r0, pc, r0                                |                 r0 = pc + r0;
    0x000098f8 bl 0x943c                                     |                 fcn_0000943c ();
                                                             |             }
    0x000098fc sub r3, r4, 4                                 |             r3 -= var_4h_2;
    0x00009900 str r3, [sp, 4]                               |             var_4h = r3;
    0x00009904 mov r2, r7                                    |             r2 = r7;
    0x00009908 mov r3, r8                                    |             r3 = r8;
    0x0000990c str sl, [sp]                                  |             *(sp) = sl;
    0x00009910 ldr r0, [r6]                                  |             r0 = *(r6);
    0x00009914 bl 0x9604                                     |             fcn_00009604 (r0, r1, r2);
    0x00009918 ldr r0, [r6]                                  |             r0 = *(r6);
    0x0000991c bl 0x6220                                     |             free (r0);
    0x00009920 mov r0, r6                                    |             r0 = r6;
    0x00009924 bl 0x6220                                     |             free (r0);
    0x00009928 ldr r3, [r4, -4]                              |             r3 = var_4h_2;
    0x0000992c cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00009930 beq 0x9a38                                    |                 goto label_5;
                                                             |             }
                                                             |         }
    0x00009934 sub r0, r4, 0xc                               |         r0 -= var_ch_2;
    0x00009938 bl 0x94c8                                     |         fcn_000094c8 (r0);
    0x0000993c mov r0, sl                                    |         r0 = sl;
    0x00009940 bl 0x94c8                                     |         fcn_000094c8 (r0);
    0x00009944 ldr r6, [r4, -4]                              |         r6 = var_4h_2;
    0x00009948 cmp r6, 0                                     |         
                                                             |         if (r6 != 0) {
    0x0000994c bne 0x99c0                                    |             goto label_6;
                                                             |         }
    0x00009950 ldr r3, [sb]                                  |         r3 = *(sb);
    0x00009954 tst r3, 0x40                                  |         
                                                             |         if ((r3 & 0x40) != 0) {
    0x00009958 beq 0x99a4                                    |             
    0x0000995c ldr r3, [pc, 0x100]                           |             r3 = *(0x9a60);
    0x00009960 ldr r3, [r5, r3]                              |             r3 = *((r5 + r3));
    0x00009964 ldr r4, [r3]                                  |             r4 = *(0x9a60);
    0x00009968 bl 0x58fc                                     |             getpid ();
    0x0000996c ldr r3, [pc, 0x100]                           |             r3 = *(0x9a70);
    0x00009970 ldr r1, [pc, 0x100]                           |             r1 = *(0x9a74);
    0x00009974 add r3, pc, r3                                |             r3 = pc + r3;
    0x00009978 str r3, [sp]                                  |             *(sp) = r3;
    0x0000997c ldr r3, [pc, 0xf8]                            |             r3 = *(0x9a78);
    0x00009980 add r1, pc, r1                                |             r1 = pc + r1;
    0x00009984 add r3, pc, r3                                |             r3 = pc + r3;
    0x00009988 mov r2, r0                                    |             r2 = r0;
    0x0000998c mov r0, r4                                    |             r0 = r4;
    0x00009990 bl 0x5c50                                     |             fprintf (r0, r1, r2, r3)
    0x00009994 ldr r0, [pc, 0xe4]                            |             r0 = *(0x9a7c);
    0x00009998 mov r1, r7                                    |             r1 = r7;
    0x0000999c add r0, pc, r0                                |             r0 = pc + r0;
    0x000099a0 bl 0x943c                                     |             fcn_0000943c ();
                                                             |         }
                                                             | label_0:
    0x000099a4 mov r0, r6                                    |         r0 = r6;
    0x000099a8 add sp, sp, 0x1000                            |         
    0x000099ac add sp, sp, 0x24                              |         
    0x000099b0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x000099b4 bl 0x5e48                                     |         r0 = strdup (r0);
    0x000099b8 subs r6, r0, 0                                |         r6 = r0 - 0;
    0x000099bc beq 0x9854                                    |         
                                                             |     }
                                                             | label_6:
    0x000099c0 ldr r3, [pc, 0x94]                            |     
    0x000099c4 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x000099c8 ldr r3, [r3]                                  |     r3 = *(0x9a58);
    0x000099cc tst r3, 0x40                                  |     
                                                             |     if ((r3 & 0x40) == 0) {
    0x000099d0 beq 0x99a4                                    |         goto label_0;
                                                             |     }
    0x000099d4 ldr r3, [pc, 0x88]                            |     r3 = *(0x9a60);
    0x000099d8 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x000099dc ldr r4, [r3]                                  |     r4 = *(0x9a60);
    0x000099e0 bl 0x58fc                                     |     getpid ();
    0x000099e4 ldr r3, [pc, 0x98]                            |     r3 = *(0x9a80);
    0x000099e8 ldr r1, [pc, 0x98]                            |     r1 = *(0x9a84);
    0x000099ec add r3, pc, r3                                |     r3 = pc + r3;
    0x000099f0 str r3, [sp]                                  |     *(sp) = r3;
    0x000099f4 ldr r3, [pc, 0x90]                            |     r3 = *(0x9a88);
    0x000099f8 add r1, pc, r1                                |     r1 = pc + r1;
    0x000099fc add r3, pc, r3                                |     r3 = pc + r3;
    0x00009a00 mov r2, r0                                    |     r2 = r0;
    0x00009a04 mov r0, r4                                    |     r0 = r4;
    0x00009a08 bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x00009a0c ldr r0, [pc, 0x7c]                            |     r0 = *(0x9a8c);
    0x00009a10 str r6, [sp]                                  |     *(sp) = r6;
    0x00009a14 mov r2, r7                                    |     r2 = r7;
    0x00009a18 mov r3, r8                                    |     r3 = r8;
    0x00009a1c add r0, pc, r0                                |     r0 = pc + r0;
    0x00009a20 bl 0x943c                                     |     fcn_0000943c ();
    0x00009a24 b 0x99a4                                      |     goto label_0;
                                                             | label_4:
    0x00009a28 mov r2, sb                                    |     r2 = sb;
    0x00009a2c mov r1, 0                                     |     r1 = 0;
    0x00009a30 bl 0x9594                                     |     fcn_00009594 (r0, r1);
    0x00009a34 b 0x9874                                      |     goto label_1;
                                                             | label_5:
    0x00009a38 ldr r3, [r4, -0xc]                            |     r3 = var_ch_2;
    0x00009a3c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00009a40 bne 0x9898                                    |         goto label_2;
                                                             |     }
    0x00009a44 ldr r2, [r4, -8]                              |     r2 = var_18h;
    0x00009a48 str r3, [r4, -8]                              |     var_18h = r3;
    0x00009a4c str r2, [r4, -0xc]                            |     var_ch_2 = r2;
    0x00009a50 b 0x9894                                      |     goto label_3;
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xe014 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.blkid_do_fullprobe ()                            | void blkid_do_fullprobe (int32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_1ch;
                                                                 |     r0 = arg1;
    0x0000e014 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000e018 ldr r4, [r0, 0x30]                                |     r4 = *((r0 + 0x30));
    0x0000e01c ldr r8, [pc, 0x134]                               |     r8 = *(0xe154);
    0x0000e020 ands r4, r4, 0x10                                 |     r4 &= 0x10;
    0x0000e024 add r8, pc, r8                                    |     r8 = pc + r8;
    0x0000e028 sub sp, sp, 0x1c                                  |     
                                                                 |     if (r4 == r4) {
    0x0000e02c movne r4, 1                                       |         r4 = 1;
                                                                 |     }
                                                                 |     if (r4 != r4) {
    0x0000e030 bne 0xe140                                        |         goto label_1;
                                                                 |     }
    0x0000e034 mov r6, r0                                        |     r6 = r0;
    0x0000e038 bl 0xdbe0                                         |     fcn_0000dbe0 (r0, r1);
    0x0000e03c add r3, r6, 0x54                                  |     r3 = r6 + 0x54;
    0x0000e040 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0000e044 ldr r3, [pc, 0x110]                               |     r3 = *(0xe158);
    0x0000e048 ldr sl, [pc, 0x110]                               |     sl = *(0xe15c);
    0x0000e04c ldr r3, [r8, r3]                                  |     r3 = *((r8 + r3));
    0x0000e050 mov r5, r6                                        |     r5 = r6;
    0x0000e054 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0000e058 ldr r3, [pc, 0x104]                               |     r3 = *(0xe160);
    0x0000e05c mov r7, r4                                        |     r7 = r4;
    0x0000e060 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000e064 add sl, pc, sl                                    |     sl = pc + sl;
    0x0000e068 str r3, [sp, 0x14]                                |     var_14h = r3;
                                                                 |     do {
    0x0000e06c mov r3, 0                                         |         r3 = 0;
    0x0000e070 add sb, r5, 0x54                                  |         sb = r5 + 0x54;
    0x0000e074 str sb, [r6, 0xa8]                                |         *((r6 + 0xa8)) = sb;
    0x0000e078 str r3, [r5, 0x60]                                |         *((r5 + 0x60)) = r3;
    0x0000e07c ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x0000e080 ldr r3, [r3]                                      |         r3 = *(r3);
    0x0000e084 tst r3, 0x100                                     |         
                                                                 |         if ((r3 & 0x100) != 0) {
    0x0000e088 beq 0xe0e4                                        |             
    0x0000e08c ldr r3, [pc, 0xd4]                                |             r3 = *(0xe164);
    0x0000e090 ldr r3, [r8, r3]                                  |             r3 = *((r8 + r3));
    0x0000e094 ldr fp, [r3]                                      |             fp = *(0xe164);
    0x0000e098 bl 0x58fc                                         |             getpid ();
    0x0000e09c ldr r3, [pc, 0xc8]                                |             r3 = *(0xe168);
    0x0000e0a0 mov r1, sl                                        |             r1 = sl;
    0x0000e0a4 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000e0a8 str r3, [sp]                                      |             *(sp) = r3;
    0x0000e0ac ldr r3, [sp, 0x14]                                |             r3 = var_14h;
    0x0000e0b0 mov r2, r0                                        |             r2 = r0;
    0x0000e0b4 mov r0, fp                                        |             r0 = fp;
    0x0000e0b8 bl 0x5c50                                         |             fprintf (r0, r1, r2, r3)
    0x0000e0bc ldr r3, [r5, 0x54]                                |             r3 = *((r5 + 0x54));
    0x0000e0c0 ldr r1, [r3, 4]                                   |             r1 = *(0xe16c);
    0x0000e0c4 ldr r3, [r5, 0x58]                                |             r3 = *((r5 + 0x58));
    0x0000e0c8 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x0000e0cc bne 0xe14c                                        |                 goto label_2;
                                                                 |             }
    0x0000e0d0 ldr r2, [pc, 0x98]                                |             r2 = *(0xe16c);
    0x0000e0d4 add r2, pc, r2                                    |             r2 = pc + r2;
                                                                 | label_0:
    0x0000e0d8 ldr r0, [pc, 0x94]                                |             r0 = *(0xe170);
    0x0000e0dc add r0, pc, r0                                    |             r0 = pc + r0;
    0x0000e0e0 bl 0xac7c                                         |             fcn_0000ac7c ();
                                                                 |         }
    0x0000e0e4 ldr r3, [r5, 0x58]                                |         r3 = *((r5 + 0x58));
    0x0000e0e8 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0000e0ec beq 0xe11c                                        |             
    0x0000e0f0 ldr r3, [r5, 0x54]                                |             r3 = *((r5 + 0x54));
    0x0000e0f4 mvn r4, 0                                         |             r4 = ~0;
    0x0000e0f8 str r4, [r5, 0x64]                                |             *((r5 + 0x64)) = r4;
    0x0000e0fc ldr r3, [r3, 0x1c]                                |             r3 = *((r3 + 0x1c));
    0x0000e100 mov r1, sb                                        |             r1 = sb;
    0x0000e104 mov r0, r6                                        |             r0 = r6;
    0x0000e108 blx r3                                            |             uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x0000e10c str r4, [r5, 0x64]                                |             *((r5 + 0x64)) = r4;
    0x0000e110 subs r4, r0, 0                                    |             r4 = r0 - 0;
                                                                 |             if (r4 < r0) {
    0x0000e114 blt 0xe12c                                        |                 goto label_3;
                                                                 |             }
                                                                 |             if (r4 == r0) {
    0x0000e118 addeq r7, r7, 1                                   |                 r7++;
                                                                 |                 goto label_4;
                                                                 |             }
                                                                 |         }
                                                                 | label_4:
    0x0000e11c ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x0000e120 add r5, r5, 0x1c                                  |         r5 += 0x1c;
    0x0000e124 cmp r5, r3                                        |         
    0x0000e128 bne 0xe06c                                        |         
                                                                 |     } while (r5 != r3);
                                                                 | label_3:
    0x0000e12c mov r0, r6                                        |     r0 = r6;
    0x0000e130 bl 0xdc8c                                         |     fcn_0000dc8c (r0, r1);
    0x0000e134 cmp r4, 0                                         |     
    0x0000e138 clzge r4, r7                                      |     __asm ("clzge r4, r7");
                                                                 |     if (r4 < 0) {
    0x0000e13c lsrge r4, r4, 5                                   |         r4 >>= 5;
                                                                 |     }
                                                                 | label_1:
    0x0000e140 mov r0, r4                                        |     r0 = r4;
    0x0000e144 add sp, sp, 0x1c                                  |     
    0x0000e148 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |     
                                                                 | label_2:
    0x0000e14c ldr r2, [pc, 0x24]                                |     r2 = *(0xe174);
    0x0000e150 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0000e154 b 0xe0d8                                          |     goto label_0;
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xdd38 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.blkid_do_probe ()                                    | void blkid_do_probe (int32_t arg1) {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_8h;
                                                                     |     r0 = arg1;
    0x0000dd38 ldr r3, [r0, 0x30]                                    |     r3 = *((r0 + 0x30));
    0x0000dd3c push {r0, r1, r4, r5, r6, r7, r8, sb, sl, lr}         |     
    0x0000dd40 ldr r6, [pc, 0x140]                                   |     r6 = *(0xde84);
    0x0000dd44 tst r3, 0x10                                          |     
    0x0000dd48 add r6, pc, r6                                        |     r6 = pc + r6;
                                                                     |     if ((r3 & 0x10) != 0) {
    0x0000dd4c bne 0xde74                                            |         goto label_5;
                                                                     |     }
    0x0000dd50 ldr r7, [pc, 0x134]                                   |     r7 = *(0xde88);
    0x0000dd54 ldr r8, [pc, 0x134]                                   |     r8 = *(0xde8c);
    0x0000dd58 mov r5, r0                                            |     r5 = r0;
    0x0000dd5c add r7, pc, r7                                        |     r7 = pc + r7;
    0x0000dd60 add r8, pc, r8                                        |     r8 = pc + r8;
                                                                     | label_0:
    0x0000dd64 ldr sb, [pc, 0x128]                                   |     sb = *(0x0000de94);
    0x0000dd68 add sb, pc, sb                                        |     sb = pc + sb;
                                                                     |     do {
    0x0000dd6c ldr r4, [r5, 0xa8]                                    |         r4 = *((r5 + 0xa8));
    0x0000dd70 cmp r4, 0                                             |         
                                                                     |         if (r4 != 0) {
    0x0000dd74 bne 0xde28                                            |             goto label_6;
                                                                     |         }
    0x0000dd78 mov r0, r5                                            |         r0 = r5;
    0x0000dd7c bl 0xdbe0                                             |         fcn_0000dbe0 (r0, r1);
    0x0000dd80 add r4, r5, 0x54                                      |         r4 = r5 + 0x54;
                                                                     | label_2:
    0x0000dd84 str r4, [r5, 0xa8]                                    |         *((r5 + 0xa8)) = r4;
                                                                     | label_1:
    0x0000dd88 mov r3, 0                                             |         r3 = 0;
    0x0000dd8c str r3, [r4, 0xc]                                     |         *((r4 + 0xc)) = r3;
    0x0000dd90 ldr r3, [pc, 0x100]                                   |         
    0x0000dd94 ldr r3, [r6, r3]                                      |         r3 = *((r6 + r3));
    0x0000dd98 ldr r3, [r3]                                          |         r3 = *(0xde94);
    0x0000dd9c tst r3, 0x100                                         |         
                                                                     |         if ((r3 & 0x100) != 0) {
    0x0000dda0 beq 0xddf8                                            |             
    0x0000dda4 ldr r3, [pc, 0xf0]                                    |             r3 = *(0xde98);
    0x0000dda8 ldr r3, [r6, r3]                                      |             r3 = *((r6 + r3));
    0x0000ddac ldr sl, [r3]                                          |             sl = *(0xde98);
    0x0000ddb0 bl 0x58fc                                             |             getpid ();
    0x0000ddb4 mov r3, r7                                            |             r3 = r7;
    0x0000ddb8 mov r1, r8                                            |             r1 = r8;
    0x0000ddbc str sb, [sp]                                          |             *(sp) = sb;
    0x0000ddc0 mov r2, r0                                            |             r2 = r0;
    0x0000ddc4 mov r0, sl                                            |             r0 = sl;
    0x0000ddc8 bl 0x5c50                                             |             fprintf (r0, r1, r2, r3)
    0x0000ddcc ldr r3, [r4]                                          |             r3 = *(r4);
    0x0000ddd0 ldr r1, [r3, 4]                                       |             r1 = *((r3 + 4));
    0x0000ddd4 ldr r3, [r4, 4]                                       |             r3 = *((r4 + 4));
    0x0000ddd8 cmp r3, 0                                             |             
                                                                     |             if (r3 == 0) {
    0x0000dddc beq 0xde7c                                            |                 goto label_7;
                                                                     |             }
    0x0000dde0 ldr r2, [pc, 0xb8]                                    |             r2 = *(0xde9c);
    0x0000dde4 add r2, pc, r2                                        |             r2 = pc + r2;
                                                                     | label_4:
    0x0000dde8 ldr r0, [pc, 0xb4]                                    |             r0 = *(0xdea0);
    0x0000ddec ldr r3, [r4, 0x10]                                    |             r3 = *((r4 + 0x10));
    0x0000ddf0 add r0, pc, r0                                        |             r0 = pc + r0;
    0x0000ddf4 bl 0xac7c                                             |             fcn_0000ac7c ();
                                                                     |         }
    0x0000ddf8 ldr r3, [r4, 4]                                       |         r3 = *((r4 + 4));
    0x0000ddfc cmp r3, 0                                             |         
    0x0000de00 beq 0xdd6c                                            |         
                                                                     |     } while (r3 == 0);
    0x0000de04 ldr r3, [r4]                                          |     r3 = *(r4);
    0x0000de08 mov r1, r4                                            |     r1 = r4;
    0x0000de0c ldr r3, [r3, 0x1c]                                    |     r3 = *((r3 + 0x1c));
    0x0000de10 mov r0, r5                                            |     r0 = r5;
    0x0000de14 blx r3                                                |     r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x0000de18 cmp r0, 1                                             |     
                                                                     |     if (r0 == 1) {
    0x0000de1c beq 0xdd64                                            |         goto label_0;
                                                                     |     }
                                                                     | label_3:
    0x0000de20 add sp, sp, 8                                         |     
    0x0000de24 pop {r4, r5, r6, r7, r8, sb, sl, pc}                  |     
                                                                     | label_6:
    0x0000de28 ldr r2, [r4, 4]                                       |     r2 = *((r4 + 4));
    0x0000de2c ldr r3, [r4]                                          |     r3 = *(r4);
    0x0000de30 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0000de34 beq 0xde50                                            |         goto label_8;
                                                                     |     }
    0x0000de38 ldr r2, [r4, 0x10]                                    |     r2 = *((r4 + 0x10));
    0x0000de3c ldr r1, [r3, 0x18]                                    |     r1 = *((r3 + 0x18));
    0x0000de40 add r0, r2, 1                                         |     r0 = r2 + 1;
    0x0000de44 cmn r2, 1                                             |     
    0x0000de48 cmpne r0, r1                                          |     __asm ("cmpne r0, r1");
                                                                     |     if (r2 != 1) {
    0x0000de4c bne 0xdd88                                            |         goto label_1;
                                                                     |     }
                                                                     | label_8:
    0x0000de50 ldr r4, [r3]                                          |     r4 = *(r3);
    0x0000de54 add r2, r4, 1                                         |     r2 = r4 + 1;
    0x0000de58 cmp r2, 2                                             |     
                                                                     |     if (r2 > 2) {
    0x0000de5c movls r3, 0x1c                                        |         r3 = 0x1c;
                                                                     |     }
    0x0000de60 mlals r4, r3, r2, r5                                  |     __asm ("mlals r4, r3, r2, r5");
                                                                     |     if (r2 <= 2) {
    0x0000de64 addls r4, r4, 0x54                                    |         r4 += 0x54;
                                                                     |         goto label_9;
                                                                     |     }
                                                                     |     if (r2 < 2) {
                                                                     | label_9:
    0x0000de68 bls 0xdd84                                            |         goto label_2;
                                                                     |     }
    0x0000de6c mov r0, r5                                            |     r0 = r5;
    0x0000de70 bl 0xdc8c                                             |     fcn_0000dc8c (r0, r1);
                                                                     | label_5:
    0x0000de74 mov r0, 1                                             |     r0 = 1;
    0x0000de78 b 0xde20                                              |     goto label_3;
                                                                     | label_7:
    0x0000de7c ldr r2, [pc, 0x24]                                    |     r2 = *(0xdea4);
    0x0000de80 add r2, pc, r2                                        |     r2 = pc + r2;
    0x0000de84 b 0xdde8                                              |     goto label_4;
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xdeac */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.blkid_do_safeprobe ()                            | void blkid_do_safeprobe (int32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_1ch;
                                                                 |     r0 = arg1;
    0x0000deac push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000deb0 ldr r4, [r0, 0x30]                                |     r4 = *((r0 + 0x30));
    0x0000deb4 ldr r8, [pc, 0x134]                               |     r8 = *(0xdfec);
    0x0000deb8 ands r4, r4, 0x10                                 |     r4 &= 0x10;
    0x0000debc add r8, pc, r8                                    |     r8 = pc + r8;
    0x0000dec0 sub sp, sp, 0x1c                                  |     
                                                                 |     if (r4 == r4) {
    0x0000dec4 movne r4, 1                                       |         r4 = 1;
                                                                 |     }
                                                                 |     if (r4 != r4) {
    0x0000dec8 bne 0xdfd8                                        |         goto label_1;
                                                                 |     }
    0x0000decc mov r6, r0                                        |     r6 = r0;
    0x0000ded0 bl 0xdbe0                                         |     fcn_0000dbe0 (r0, r1);
    0x0000ded4 add r3, r6, 0x54                                  |     r3 = r6 + 0x54;
    0x0000ded8 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0000dedc ldr r3, [pc, 0x110]                               |     r3 = *(0xdff0);
    0x0000dee0 ldr sl, [pc, 0x110]                               |     sl = *(0xdff4);
    0x0000dee4 ldr r3, [r8, r3]                                  |     r3 = *((r8 + r3));
    0x0000dee8 mov r5, r6                                        |     r5 = r6;
    0x0000deec str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0000def0 ldr r3, [pc, 0x104]                               |     r3 = *(0xdff8);
    0x0000def4 mov r7, r4                                        |     r7 = r4;
    0x0000def8 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000defc add sl, pc, sl                                    |     sl = pc + sl;
    0x0000df00 str r3, [sp, 0x14]                                |     var_14h = r3;
                                                                 |     do {
    0x0000df04 mov r3, 0                                         |         r3 = 0;
    0x0000df08 add sb, r5, 0x54                                  |         sb = r5 + 0x54;
    0x0000df0c str sb, [r6, 0xa8]                                |         *((r6 + 0xa8)) = sb;
    0x0000df10 str r3, [r5, 0x60]                                |         *((r5 + 0x60)) = r3;
    0x0000df14 ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x0000df18 ldr r3, [r3]                                      |         r3 = *(r3);
    0x0000df1c tst r3, 0x100                                     |         
                                                                 |         if ((r3 & 0x100) != 0) {
    0x0000df20 beq 0xdf7c                                        |             
    0x0000df24 ldr r3, [pc, 0xd4]                                |             r3 = *(0xdffc);
    0x0000df28 ldr r3, [r8, r3]                                  |             r3 = *((r8 + r3));
    0x0000df2c ldr fp, [r3]                                      |             fp = *(0xdffc);
    0x0000df30 bl 0x58fc                                         |             getpid ();
    0x0000df34 ldr r3, [pc, 0xc8]                                |             r3 = *(0xe000);
    0x0000df38 mov r1, sl                                        |             r1 = sl;
    0x0000df3c add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000df40 str r3, [sp]                                      |             *(sp) = r3;
    0x0000df44 ldr r3, [sp, 0x14]                                |             r3 = var_14h;
    0x0000df48 mov r2, r0                                        |             r2 = r0;
    0x0000df4c mov r0, fp                                        |             r0 = fp;
    0x0000df50 bl 0x5c50                                         |             fprintf (r0, r1, r2, r3)
    0x0000df54 ldr r3, [r5, 0x54]                                |             r3 = *((r5 + 0x54));
    0x0000df58 ldr r1, [r3, 4]                                   |             r1 = *(0xe004);
    0x0000df5c ldr r3, [r5, 0x58]                                |             r3 = *((r5 + 0x58));
    0x0000df60 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x0000df64 bne 0xdfe4                                        |                 goto label_2;
                                                                 |             }
    0x0000df68 ldr r2, [pc, 0x98]                                |             r2 = *(0xe004);
    0x0000df6c add r2, pc, r2                                    |             r2 = pc + r2;
                                                                 | label_0:
    0x0000df70 ldr r0, [pc, 0x94]                                |             r0 = *(0xe008);
    0x0000df74 add r0, pc, r0                                    |             r0 = pc + r0;
    0x0000df78 bl 0xac7c                                         |             fcn_0000ac7c ();
                                                                 |         }
    0x0000df7c ldr r3, [r5, 0x58]                                |         r3 = *((r5 + 0x58));
    0x0000df80 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0000df84 beq 0xdfb4                                        |             
    0x0000df88 ldr r3, [r5, 0x54]                                |             r3 = *((r5 + 0x54));
    0x0000df8c mvn r4, 0                                         |             r4 = ~0;
    0x0000df90 str r4, [r5, 0x64]                                |             *((r5 + 0x64)) = r4;
    0x0000df94 ldr r3, [r3, 0x20]                                |             r3 = *((r3 + 0x20));
    0x0000df98 mov r1, sb                                        |             r1 = sb;
    0x0000df9c mov r0, r6                                        |             r0 = r6;
    0x0000dfa0 blx r3                                            |             uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x0000dfa4 str r4, [r5, 0x64]                                |             *((r5 + 0x64)) = r4;
    0x0000dfa8 subs r4, r0, 0                                    |             r4 = r0 - 0;
                                                                 |             if (r4 < r0) {
    0x0000dfac blt 0xdfc4                                        |                 goto label_3;
                                                                 |             }
                                                                 |             if (r4 == r0) {
    0x0000dfb0 addeq r7, r7, 1                                   |                 r7++;
                                                                 |                 goto label_4;
                                                                 |             }
                                                                 |         }
                                                                 | label_4:
    0x0000dfb4 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x0000dfb8 add r5, r5, 0x1c                                  |         r5 += 0x1c;
    0x0000dfbc cmp r5, r3                                        |         
    0x0000dfc0 bne 0xdf04                                        |         
                                                                 |     } while (r5 != r3);
                                                                 | label_3:
    0x0000dfc4 mov r0, r6                                        |     r0 = r6;
    0x0000dfc8 bl 0xdc8c                                         |     fcn_0000dc8c (r0, r1);
    0x0000dfcc cmp r4, 0                                         |     
    0x0000dfd0 clzge r4, r7                                      |     __asm ("clzge r4, r7");
                                                                 |     if (r4 < 0) {
    0x0000dfd4 lsrge r4, r4, 5                                   |         r4 >>= 5;
                                                                 |     }
                                                                 | label_1:
    0x0000dfd8 mov r0, r4                                        |     r0 = r4;
    0x0000dfdc add sp, sp, 0x1c                                  |     
    0x0000dfe0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |     
                                                                 | label_2:
    0x0000dfe4 ldr r2, [pc, 0x24]                                |     r2 = *(0xe00c);
    0x0000dfe8 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0000dfec b 0xdf70                                          |     goto label_0;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xcce8 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.blkid_do_wipe ()                                 | void blkid_do_wipe (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_0h_2;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_18h_2;
                                                                 |     int32_t var_10h_2;
                                                                 |     int32_t var_ch_2;
                                                                 |     int32_t var_8h_2;
                                                                 |     int32_t var_4h;
                                                                 |     char * ptr;
                                                                 |     int32_t var_1000h;
                                                                 |     int32_t var_34h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0000cce8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000ccec ldr r6, [r0, 0xa8]                                |     r6 = *((r0 + 0xa8));
    0x0000ccf0 sub sp, sp, 0x1000                                |     
    0x0000ccf4 ldr sb, [pc, 0x2a4]                               |     sb = *(0x0000cfa0);
    0x0000ccf8 sub sp, sp, 0x34                                  |     
    0x0000ccfc mov r3, 0                                         |     r3 = 0;
    0x0000cd00 add r4, sp, 0x30                                  |     r4 += ptr;
    0x0000cd04 cmp r6, r3                                        |     
    0x0000cd08 add sb, pc, sb                                    |     sb = pc + sb;
    0x0000cd0c str r3, [r4, -0x10]                               |     var_10h_2 = r3;
    0x0000cd10 str r3, [r4, -0xc]                                |     var_ch_2 = r3;
                                                                 |     if (r6 != r3) {
    0x0000cd14 bne 0xcd28                                        |         goto label_6;
                                                                 |     }
                                                                 | label_1:
    0x0000cd18 mvn r0, 0                                         |     r0 = ~0;
                                                                 |     do {
                                                                 | label_5:
    0x0000cd1c add sp, sp, 0x1000                                |         
    0x0000cd20 add sp, sp, 0x34                                  |         
    0x0000cd24 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_6:
    0x0000cd28 ldr r2, [r6]                                      |         r2 = *(r6);
    0x0000cd2c mov r5, r0                                        |         r5 = r0;
    0x0000cd30 ldr r2, [r2]                                      |         r2 = *(r2);
    0x0000cd34 mov r7, r1                                        |         r7 = r1;
    0x0000cd38 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x0000cd3c beq 0xcd50                                        |             goto label_7;
                                                                 |         }
    0x0000cd40 cmp r2, 2                                         |         
                                                                 |         if (r2 == 2) {
    0x0000cd44 beq 0xcf40                                        |             goto label_8;
                                                                 |         }
                                                                 | label_0:
    0x0000cd48 mov r0, 0                                         |         r0 = 0;
    0x0000cd4c b 0xcd1c                                          |         
                                                                 |     } while (1);
                                                                 | label_7:
    0x0000cd50 ldr r1, [pc, 0x24c]                               |     r1 = *(0xcfa0);
    0x0000cd54 mov r3, r2                                        |     r3 = r2;
    0x0000cd58 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000cd5c sub r2, r4, 0x10                                  |     r2 -= var_10h_2;
    0x0000cd60 bl 0x5c38                                         |     r0 = fcn_00005c38 ();
    0x0000cd64 subs r2, r0, 0                                    |     r2 = r0 - 0;
                                                                 |     if (r2 != r0) {
    0x0000cd68 bne 0xcd48                                        |         goto label_0;
                                                                 |     }
    0x0000cd6c ldr r1, [pc, 0x234]                               |     r1 = *(0xcfa4);
    0x0000cd70 sub r3, r4, 0xc                                   |     r3 -= var_ch_2;
    0x0000cd74 add r1, pc, r1                                    |     r1 = pc + r1;
                                                                 | label_2:
    0x0000cd78 mov r0, r5                                        |     r0 = r5;
    0x0000cd7c bl 0x5c38                                         |     r0 = fcn_00005c38 ();
    0x0000cd80 cmp r0, 0                                         |     
    0x0000cd84 mov r1, r0                                        |     r1 = r0;
                                                                 |     if (r0 != 0) {
    0x0000cd88 bne 0xcd48                                        |         goto label_0;
                                                                 |     }
    0x0000cd8c ldr r3, [r4, -0xc]                                |     r3 = var_ch_2;
    0x0000cd90 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000cd94 beq 0xcd48                                        |         goto label_0;
                                                                 |     }
    0x0000cd98 ldr r0, [r4, -0x10]                               |     r0 = var_10h_2;
    0x0000cd9c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000cda0 beq 0xcd48                                        |         goto label_0;
                                                                 |     }
    0x0000cda4 mov r2, 0xa                                       |     r2 = 0xa;
    0x0000cda8 bl 0x5a40                                         |     strtoumax (r0, r1, r2);
    0x0000cdac ldrd sl, fp, [r5, 8]                              |     __asm ("ldrd sl, fp, [r5, 8]");
    0x0000cdb0 adds r2, r0, sl                                   |     r2 = r0 + sl;
    0x0000cdb4 adc r3, r1, fp                                    |     __asm ("adc r3, r1, fp");
    0x0000cdb8 strd r0, r1, [sp, 0x18]                           |     __asm ("strd r0, r1, [var_18h]");
    0x0000cdbc mov r0, r5                                        |     r0 = r5;
    0x0000cdc0 mov sl, r2                                        |     sl = r2;
    0x0000cdc4 mov fp, r3                                        |     
    0x0000cdc8 bl 0x6010                                         |     r0 = fcn_00006010 ();
    0x0000cdcc subs r8, r0, 0                                    |     r8 = r0 - 0;
                                                                 |     if (r8 < r0) {
    0x0000cdd0 blt 0xcd18                                        |         goto label_1;
                                                                 |     }
    0x0000cdd4 ldr r3, [r4, -0xc]                                |     r3 = var_ch_2;
    0x0000cdd8 cmp r3, 0x1000                                    |     
                                                                 |     if (r3 <= 0x1000) {
    0x0000cddc movhi r3, 0x1000                                  |         r3 = 0x1000;
                                                                 |     }
                                                                 |     if (r3 <= 0x1000) {
    0x0000cde0 strhi r3, [r4, -0xc]                              |         *((r4 - 0xc)) = r3;
                                                                 |     }
    0x0000cde4 ldr r3, [pc, 0x1c0]                               |     
    0x0000cde8 ldr r3, [sb, r3]                                  |     r3 = *((sb + r3));
    0x0000cdec ldr r3, [r3]                                      |     r3 = *(0xcfa8);
    0x0000cdf0 tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) != 0) {
    0x0000cdf4 beq 0xce78                                        |         
    0x0000cdf8 ldr r3, [pc, 0x1b0]                               |         r3 = *(0xcfac);
    0x0000cdfc ldr r3, [sb, r3]                                  |         r3 = *((sb + r3));
    0x0000ce00 ldr sb, [r3]                                      |         sb = *(0xcfac);
    0x0000ce04 bl 0x58fc                                         |         getpid ();
    0x0000ce08 ldr r3, [pc, 0x1a4]                               |         r3 = *(0xcfb0);
    0x0000ce0c ldr r1, [pc, 0x1a4]                               |         r1 = *(0xcfb4);
    0x0000ce10 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000ce14 str r3, [sp]                                      |         *(sp) = r3;
    0x0000ce18 ldr r3, [pc, 0x19c]                               |         r3 = *(0xcfb8);
    0x0000ce1c add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000ce20 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000ce24 mov r2, r0                                        |         r2 = r0;
    0x0000ce28 mov r0, sb                                        |         r0 = sb;
    0x0000ce2c bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000ce30 ldr r3, [r6]                                      |         r3 = *(r6);
    0x0000ce34 cmp r7, 0                                         |         
    0x0000ce38 ldr r2, [r4, -0xc]                                |         r2 = var_ch_2;
    0x0000ce3c ldr r1, [r3, 4]                                   |         r1 = *(0xcfbc);
    0x0000ce40 ldr r0, [r6, 0x10]                                |         r0 = *((r6 + 0x10));
                                                                 |         if (r7 != 0) {
    0x0000ce44 bne 0xcf68                                        |             goto label_9;
                                                                 |         }
    0x0000ce48 ldr r3, [pc, 0x170]                               |         r3 = *(0xcfbc);
    0x0000ce4c add r3, pc, r3                                    |         r3 = pc + r3;
                                                                 | label_3:
    0x0000ce50 str r0, [sp, 0x10]                                |         var_10h = r0;
    0x0000ce54 ldr r0, [pc, 0x168]                               |         r0 = *(0xcfc0);
    0x0000ce58 str r3, [sp, 0x14]                                |         var_14h = r3;
    0x0000ce5c str r2, [sp, 8]                                   |         var_8h = r2;
    0x0000ce60 str r1, [sp, 0xc]                                 |         var_ch = r1;
    0x0000ce64 strd sl, fp, [sp]                                 |         __asm ("strd sl, fp, [sp]");
    0x0000ce68 mov r2, sl                                        |         r2 = sl;
    0x0000ce6c mov r3, fp                                        |         r3 = fp;
    0x0000ce70 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000ce74 bl 0xac7c                                         |         fcn_0000ac7c ();
                                                                 |     }
    0x0000ce78 mov sb, 0                                         |     sb = 0;
    0x0000ce7c mov r2, sl                                        |     r2 = sl;
    0x0000ce80 mov r3, fp                                        |     r3 = fp;
    0x0000ce84 str sb, [sp]                                      |     *(sp) = sb;
    0x0000ce88 mov r0, r8                                        |     r0 = r8;
    0x0000ce8c bl 0xac78                                         |     fcn_0000ac78 ();
    0x0000ce90 mvn r3, 0                                         |     r3 = ~0;
    0x0000ce94 mvn r2, 0                                         |     r2 = ~0;
    0x0000ce98 cmp r1, r3                                        |     
    0x0000ce9c cmpeq r0, r2                                      |     __asm ("cmpeq r0, r2");
                                                                 |     if (r1 == r3) {
    0x0000cea0 beq 0xcd18                                        |         goto label_1;
                                                                 |     }
    0x0000cea4 ldr r6, [r4, -0xc]                                |     r6 = var_ch_2;
    0x0000cea8 mov r1, sb                                        |     r1 = sb;
    0x0000ceac mov r2, r6                                        |     r2 = r6;
    0x0000ceb0 mov r0, r4                                        |     r0 = r4;
    0x0000ceb4 bl 0x5e78                                         |     memset (r0, r1, r2);
    0x0000ceb8 cmp r7, sb                                        |     
                                                                 |     if (r7 != sb) {
    0x0000cebc bne 0xcf84                                        |         goto label_10;
                                                                 |     }
    0x0000cec0 cmp r6, sb                                        |     
                                                                 |     if (r6 == sb) {
    0x0000cec4 beq 0xcd48                                        |         goto label_0;
                                                                 |     }
    0x0000cec8 bl 0x60ac                                         |     errno_location ();
    0x0000cecc mov sl, r4                                        |     sl = r4;
    0x0000ced0 sub fp, r4, 8                                     |     
    0x0000ced4 mov sb, r0                                        |     sb = r0;
                                                                 |     do {
    0x0000ced8 mov r2, r6                                        |         r2 = r6;
    0x0000cedc str r7, [sb]                                      |         *(sb) = r7;
    0x0000cee0 mov r1, sl                                        |         r1 = sl;
    0x0000cee4 mov r0, r8                                        |         r0 = r8;
    0x0000cee8 bl 0x5c14                                         |         write (r0, r1, r2);
    0x0000ceec ldr r2, [sb]                                      |         r2 = *(sb);
    0x0000cef0 cmp r0, 0                                         |         
                                                                 |         if (r0 <= 0) {
    0x0000cef4 ble 0xcf74                                        |             goto label_11;
                                                                 |         }
    0x0000cef8 subs r6, r6, r0                                   |         r6 -= r0;
                                                                 |         if (r6 == r6) {
    0x0000cefc addne sl, sl, r0                                  |             sl += r0;
                                                                 |         }
                                                                 | label_4:
    0x0000cf00 cmp r2, 0xb                                       |         
                                                                 |         if (r2 == 0xb) {
    0x0000cf04 bne 0xcf20                                        |             
    0x0000cf08 ldr r3, [pc, 0xb8]                                |             r3 = *(0xcfc4);
    0x0000cf0c mov r1, 0                                         |             r1 = 0;
    0x0000cf10 mov r0, fp                                        |             r0 = fp;
    0x0000cf14 str r7, [r4, -8]                                  |             var_8h_2 = r7;
    0x0000cf18 str r3, [r4, -4]                                  |             var_4h = r3;
    0x0000cf1c bl 0x5bd8                                         |             nanosleep ();
                                                                 |         }
    0x0000cf20 cmp r6, 0                                         |         
    0x0000cf24 bne 0xced8                                        |         
                                                                 |     } while (r6 != 0);
    0x0000cf28 mov r0, r8                                        |     r0 = r8;
    0x0000cf2c bl 0x5fe0                                         |     fsync ();
    0x0000cf30 ldr r3, [r5, 0x30]                                |     r3 = *((r5 + 0x30));
    0x0000cf34 bic r3, r3, 0x20                                  |     r3 = BIT_MASK (r3, 0x20);
    0x0000cf38 str r3, [r5, 0x30]                                |     *((r5 + 0x30)) = r3;
    0x0000cf3c b 0xcf94                                          |     goto label_12;
                                                                 | label_8:
    0x0000cf40 ldr r1, [pc, 0x84]                                |     r1 = *(0xcfc8);
    0x0000cf44 sub r2, r4, 0x10                                  |     r2 -= var_10h_2;
    0x0000cf48 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000cf4c bl 0x5c38                                         |     r0 = fcn_00005c38 ();
    0x0000cf50 subs r2, r0, 0                                    |     r2 = r0 - 0;
                                                                 |     if (r2 != r0) {
    0x0000cf54 bne 0xcd48                                        |         goto label_0;
                                                                 |     }
    0x0000cf58 ldr r1, [pc, 0x70]                                |     r1 = *(0xcfcc);
    0x0000cf5c sub r3, r4, 0xc                                   |     r3 -= var_ch_2;
    0x0000cf60 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000cf64 b 0xcd78                                          |     goto label_2;
                                                                 | label_9:
    0x0000cf68 ldr r3, [pc, 0x64]                                |     r3 = *(0xcfd0);
    0x0000cf6c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000cf70 b 0xce50                                          |     goto label_3;
                                                                 | label_11:
    0x0000cf74 cmp r2, 4                                         |     
    0x0000cf78 cmpne r2, 0xb                                     |     __asm ("cmpne r2, 0xb");
                                                                 |     if (r2 == 4) {
    0x0000cf7c beq 0xcf00                                        |         goto label_4;
                                                                 |     }
    0x0000cf80 b 0xcd18                                          |     goto label_1;
                                                                 | label_10:
    0x0000cf84 stm sp, {r6, sb}                                  |     *(sp) = r6;
                                                                 |     *((sp + 4)) = sb;
    0x0000cf88 ldrd r2, r3, [sp, 0x18]                           |     __asm ("ldrd r2, r3, [var_18h]");
    0x0000cf8c mov r0, r5                                        |     r0 = r5;
    0x0000cf90 bl 0x5a7c                                         |     fcn_00005a7c ();
                                                                 | label_12:
    0x0000cf94 mov r0, r5                                        |     r0 = r5;
    0x0000cf98 bl 0x5e18                                         |     fcn_00005e18 ();
    0x0000cf9c b 0xcd1c                                          |     goto label_5;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xa888 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.blkid_evaluate_tag ()                            | void blkid_evaluate_tag (int32_t arg_0h, int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     char * format;
                                                                 |     int32_t var_14h;
                                                                 |     void * ptr;
                                                                 |     void * var_20h;
                                                                 |     int32_t var_24h;
                                                                 |     int32_t var_2ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0000a888 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000a88c ldr sb, [pc, 0x2e8]                               |     sb = *(0x0000ab7c);
    0x0000a890 sub sp, sp, 0x2c                                  |     
    0x0000a894 mov r3, 0                                         |     r3 = 0;
    0x0000a898 subs r4, r0, 0                                    |     r4 -= arg_0h;
    0x0000a89c add sb, pc, sb                                    |     sb = pc + sb;
    0x0000a8a0 str r3, [sp, 0x1c]                                |     ptr = r3;
    0x0000a8a4 str r3, [sp, 0x20]                                |     var_20h = r3;
                                                                 |     if (r4 != arg_0h) {
    0x0000a8a8 moveq r6, r4                                      |         r6 = r4;
                                                                 |     }
                                                                 |     if (r4 == arg_0h) {
    0x0000a8ac beq 0xa988                                        |         goto label_6;
                                                                 |     }
    0x0000a8b0 cmp r2, r3                                        |     
    0x0000a8b4 mov r5, r1                                        |     r5 = r1;
    0x0000a8b8 mov r7, r2                                        |     r7 = r2;
                                                                 |     if (r2 != r3) {
    0x0000a8bc beq 0xa8cc                                        |         
    0x0000a8c0 ldr r3, [r2]                                      |         r3 = *(r2);
    0x0000a8c4 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0000a8c8 bne 0xa8d4                                        |             goto label_7;
                                                                 |         }
                                                                 |     }
    0x0000a8cc mov r0, 0                                         |     r0 = 0;
    0x0000a8d0 bl 0x5ce0                                         |     fcn_00005ce0 ();
                                                                 | label_7:
    0x0000a8d4 ldr r3, [pc, 0x2a4]                               |     r3 = *(0xab7c);
    0x0000a8d8 ldr fp, [sb, r3]                                  |     fp = *((sb + r3));
    0x0000a8dc ldr r3, [fp]                                      |     r3 = *(fp);
    0x0000a8e0 tst r3, 0x80                                      |     
                                                                 |     if ((r3 & 0x80) == 0) {
    0x0000a8e4 beq 0xa944                                        |         goto label_8;
                                                                 |     }
    0x0000a8e8 ldr r3, [pc, 0x294]                               |     r3 = *(0xab80);
    0x0000a8ec ldr r3, [sb, r3]                                  |     r3 = *((sb + r3));
    0x0000a8f0 ldr r6, [r3]                                      |     r6 = *(0xab80);
    0x0000a8f4 bl 0x58fc                                         |     getpid ();
    0x0000a8f8 ldr r3, [pc, 0x288]                               |     r3 = *(0xab84);
    0x0000a8fc ldr r1, [pc, 0x288]                               |     r1 = *(0xab88);
    0x0000a900 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000a904 str r3, [sp]                                      |     *(sp) = r3;
    0x0000a908 ldr r3, [pc, 0x280]                               |     r3 = *(0xab8c);
    0x0000a90c add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000a910 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000a914 mov r2, r0                                        |     r2 = r0;
    0x0000a918 mov r0, r6                                        |     r0 = r6;
    0x0000a91c bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0000a920 cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x0000a924 bne 0xa994                                        |         goto label_9;
                                                                 |     }
    0x0000a928 ldr r2, [pc, 0x264]                               |     r2 = *(0xab90);
    0x0000a92c add r2, pc, r2                                    |     r2 = pc + r2;
    0x0000a930 mov r3, r2                                        |     r3 = r2;
                                                                 |     do {
    0x0000a934 ldr r0, [pc, 0x25c]                               |         r0 = *(0xab94);
    0x0000a938 mov r1, r4                                        |         r1 = r4;
    0x0000a93c add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000a940 bl 0xa288                                         |         fcn_0000a288 ();
                                                                 | label_8:
    0x0000a944 cmp r5, 0                                         |         
                                                                 |         if (r5 != 0) {
    0x0000a948 bne 0xa9e0                                        |             goto label_10;
                                                                 |         }
    0x0000a94c mov r1, 0x3d                                      |         r1 = 0x3d;
    0x0000a950 mov r0, r4                                        |         r0 = r4;
    0x0000a954 bl 0x613c                                         |         r0 = strchr (r0, r1);
    0x0000a958 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0000a95c bne 0xa9a4                                        |             goto label_11;
                                                                 |         }
    0x0000a960 mov r0, r4                                        |         r0 = r4;
    0x0000a964 bl 0x5e48                                         |         strdup (r0);
    0x0000a968 mov r8, r5                                        |         r8 = r5;
    0x0000a96c mov r6, r0                                        |         r6 = r0;
                                                                 | label_0:
    0x0000a970 mov r0, r8                                        |         r0 = r8;
    0x0000a974 bl 0x75a0                                         |         fcn_000075a0 (r0);
    0x0000a978 ldr r0, [sp, 0x1c]                                |         r0 = ptr;
    0x0000a97c bl 0x6220                                         |         free (r0);
    0x0000a980 ldr r0, [sp, 0x20]                                |         r0 = var_20h;
    0x0000a984 bl 0x6220                                         |         free (r0);
                                                                 | label_6:
    0x0000a988 mov r0, r6                                        |         r0 = r6;
    0x0000a98c add sp, sp, 0x2c                                  |         
    0x0000a990 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_9:
    0x0000a994 ldr r2, [pc, 0x200]                               |         r2 = *(0xab98);
    0x0000a998 mov r3, r5                                        |         r3 = r5;
    0x0000a99c add r2, pc, r2                                    |         r2 = pc + r2;
    0x0000a9a0 b 0xa934                                          |         
                                                                 |     } while (1);
                                                                 | label_11:
    0x0000a9a4 add r2, sp, 0x20                                  |     r2 += var_20h;
    0x0000a9a8 add r1, sp, 0x1c                                  |     r1 += ptr;
    0x0000a9ac mov r0, r4                                        |     r0 = r4;
    0x0000a9b0 bl 0x5bcc                                         |     r0 = fcn_00005bcc ();
    0x0000a9b4 cmp r0, 0                                         |     
    0x0000a9b8 beq 0xa9c8                                        |     
                                                                 |     while (r4 == 0) {
                                                                 | label_1:
    0x0000a9bc mov r6, 0                                         |         r6 = 0;
    0x0000a9c0 mov r8, r6                                        |         r8 = r6;
    0x0000a9c4 b 0xa970                                          |         goto label_0;
    0x0000a9c8 ldr r4, [sp, 0x1c]                                |         r4 = ptr;
    0x0000a9cc cmp r4, 0                                         |         
    0x0000a9d0 beq 0xa9bc                                        |         
                                                                 |     }
    0x0000a9d4 ldr r5, [sp, 0x20]                                |     r5 = var_20h;
    0x0000a9d8 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0000a9dc beq 0xa9bc                                        |         goto label_1;
                                                                 |     }
                                                                 | label_10:
    0x0000a9e0 mov r0, 0                                         |     r0 = 0;
    0x0000a9e4 bl 0x7350                                         |     r0 = fcn_00007350 (r0);
    0x0000a9e8 subs r8, r0, 0                                    |     r8 = r0 - 0;
                                                                 |     if (r8 == r0) {
    0x0000a9ec beq 0xa9bc                                        |         goto label_1;
                                                                 |     }
    0x0000a9f0 ldr r3, [pc, 0x1a8]                               |     r3 = *(0xab9c);
    0x0000a9f4 mov sl, 0                                         |     sl = 0;
    0x0000a9f8 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000a9fc str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0000aa00 ldr r3, [pc, 0x19c]                               |     r3 = *(0xaba0);
    0x0000aa04 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000aa08 str r3, [sp, 0x10]                                |     format = r3;
    0x0000aa0c ldr r3, [pc, 0x194]                               |     r3 = *(0xaba4);
    0x0000aa10 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000aa14 str r3, [sp, 0x14]                                |     var_14h = r3;
                                                                 | label_3:
    0x0000aa18 ldr r3, [r8, 8]                                   |     r3 = *((r8 + 8));
    0x0000aa1c cmp r3, sl                                        |     
                                                                 |     if (r3 > sl) {
    0x0000aa20 bgt 0xaa88                                        |         goto label_12;
                                                                 |     }
    0x0000aa24 mov r6, 0                                         |     r6 = 0;
                                                                 | label_2:
    0x0000aa28 ldr r3, [fp]                                      |     r3 = *(fp);
    0x0000aa2c tst r3, 0x80                                      |     
                                                                 |     if ((r3 & 0x80) == 0) {
    0x0000aa30 beq 0xa970                                        |         goto label_0;
                                                                 |     }
    0x0000aa34 ldr r3, [pc, 0x148]                               |     r3 = *(0xab80);
    0x0000aa38 ldr r3, [sb, r3]                                  |     r3 = *((sb + r3));
    0x0000aa3c ldr r7, [r3]                                      |     r7 = *(0xab80);
    0x0000aa40 bl 0x58fc                                         |     getpid ();
    0x0000aa44 ldr r3, [pc, 0x160]                               |     r3 = *(0xaba8);
    0x0000aa48 ldr r1, [pc, 0x160]                               |     r1 = *(0xabac);
    0x0000aa4c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000aa50 str r3, [sp]                                      |     *(sp) = r3;
    0x0000aa54 ldr r3, [pc, 0x158]                               |     r3 = *(0xabb0);
    0x0000aa58 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000aa5c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000aa60 mov r2, r0                                        |     r2 = r0;
    0x0000aa64 mov r0, r7                                        |     r0 = r7;
    0x0000aa68 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0000aa6c ldr r0, [pc, 0x144]                               |     r0 = *(0xabb4);
    0x0000aa70 mov r3, r6                                        |     r3 = r6;
    0x0000aa74 mov r2, r5                                        |     r2 = r5;
    0x0000aa78 mov r1, r4                                        |     r1 = r4;
    0x0000aa7c add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000aa80 bl 0xa288                                         |     fcn_0000a288 ();
    0x0000aa84 b 0xa970                                          |     goto label_0;
                                                                 | label_12:
    0x0000aa88 ldr r3, [r8, sl, lsl 2]                           |     offset_0 = sl << 2;
                                                                 |     r3 = *((r8 + offset_0));
    0x0000aa8c cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000aa90 bne 0xaab4                                        |         goto label_13;
                                                                 |     }
    0x0000aa94 mov r1, r5                                        |     r1 = r5;
    0x0000aa98 mov r0, r4                                        |     r0 = r4;
    0x0000aa9c bl 0xa314                                         |     r0 = fcn_0000a314 (r0, r1);
    0x0000aaa0 mov r6, r0                                        |     r6 = r0;
                                                                 | label_5:
    0x0000aaa4 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x0000aaa8 bne 0xaa28                                        |         goto label_2;
                                                                 |     }
                                                                 |     do {
                                                                 | label_4:
    0x0000aaac add sl, sl, 1                                     |         sl++;
    0x0000aab0 b 0xaa18                                          |         goto label_3;
                                                                 | label_13:
    0x0000aab4 cmp r3, 1                                         |         
    0x0000aab8 bne 0xaaac                                        |         
                                                                 |     } while (r3 != 1);
    0x0000aabc cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0000aac0 ldrne r3, [r7]                                    |         r3 = *(r7);
                                                                 |     }
                                                                 |     if (r7 != 0) {
    0x0000aac4 moveq r3, r7                                      |         r3 = r7;
                                                                 |     }
    0x0000aac8 str r3, [sp, 0x24]                                |     var_24h = r3;
    0x0000aacc ldr r3, [fp]                                      |     r3 = *(fp);
    0x0000aad0 tst r3, 0x80                                      |     
                                                                 |     if ((r3 & 0x80) != 0) {
    0x0000aad4 beq 0xab18                                        |         
    0x0000aad8 ldr r3, [pc, 0xa4]                                |         r3 = *(0xab80);
    0x0000aadc ldr r3, [sb, r3]                                  |         r3 = *((sb + r3));
    0x0000aae0 ldr r6, [r3]                                      |         r6 = *(0xab80);
    0x0000aae4 bl 0x58fc                                         |         getpid ();
    0x0000aae8 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x0000aaec ldr r1, [sp, 0x10]                                |         r1 = format;
    0x0000aaf0 str r3, [sp]                                      |         *(sp) = r3;
    0x0000aaf4 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x0000aaf8 mov r2, r0                                        |         r2 = r0;
    0x0000aafc mov r0, r6                                        |         r0 = r6;
    0x0000ab00 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000ab04 ldr r0, [pc, 0xb0]                                |         r0 = *(0xabb8);
    0x0000ab08 mov r2, r5                                        |         r2 = r5;
    0x0000ab0c mov r1, r4                                        |         r1 = r4;
    0x0000ab10 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000ab14 bl 0xa288                                         |         fcn_0000a288 ();
                                                                 |     }
    0x0000ab18 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x0000ab1c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000ab20 bne 0xab44                                        |         
    0x0000ab24 mov r0, r8                                        |         r0 = r8;
    0x0000ab28 bl 0x6a04                                         |         r0 = fcn_00006a04 (r0);
    0x0000ab2c mov r6, r0                                        |         r6 = r0;
    0x0000ab30 mov r1, r0                                        |         r1 = r0;
    0x0000ab34 add r0, sp, 0x24                                  |         r0 += var_24h;
    0x0000ab38 bl 0x5ad0                                         |         fcn_00005ad0 ();
    0x0000ab3c mov r0, r6                                        |         r0 = r6;
    0x0000ab40 bl 0x6220                                         |         free (r0);
                                                                 |     }
    0x0000ab44 ldr r0, [sp, 0x24]                                |     r0 = var_24h;
    0x0000ab48 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000ab4c beq 0xaaac                                        |         goto label_4;
                                                                 |     }
    0x0000ab50 mov r2, r5                                        |     r2 = r5;
    0x0000ab54 mov r1, r4                                        |     r1 = r4;
    0x0000ab58 bl 0x5ba8                                         |     fcn_00005ba8 ();
    0x0000ab5c cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0000ab60 ldrne r3, [sp, 0x24]                              |         r3 = var_24h;
                                                                 |     }
    0x0000ab64 mov r6, r0                                        |     r6 = r0;
                                                                 |     if (r7 != 0) {
    0x0000ab68 strne r3, [r7]                                    |         *(r7) = r3;
                                                                 |         goto label_14;
                                                                 |     }
                                                                 |     if (r7 != 0) {
                                                                 | label_14:
    0x0000ab6c bne 0xaaa4                                        |         goto label_5;
                                                                 |     }
    0x0000ab70 ldr r0, [sp, 0x24]                                |     r0 = var_24h;
    0x0000ab74 bl 0x5854                                         |     fcn_00005854 ();
    0x0000ab78 b 0xaaa4                                          |     goto label_5;
                                                                 | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x106f8 */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.blkid_find_dev_with_tag ()                               | void blkid_find_dev_with_tag (uint32_t arg1, uint32_t arg2) {
                                                                         |     int32_t var_0h;
                                                                         |     int32_t var_ch;
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
    0x000106f8 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000106fc ldr r4, [pc, 0x19c]                                       |     r4 = *(0x1089c);
    0x00010700 cmp r1, 0                                                 |     
    0x00010704 mov sb, r2                                                |     sb = r2;
    0x00010708 clz r2, r2                                                |     r2 &= r2;
    0x0001070c lsr r2, r2, 5                                             |     r2 >>= 5;
                                                                         |     if (r1 != 0) {
    0x00010710 moveq r3, 1                                               |         r3 = 1;
                                                                         |     }
                                                                         |     if (r1 == 0) {
    0x00010714 movne r3, r2                                              |         r3 = r2;
                                                                         |     }
    0x00010718 cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x0001071c moveq r3, 1                                               |         r3 = 1;
                                                                         |     }
    0x00010720 cmp r3, 0                                                 |     
    0x00010724 add r4, pc, r4                                            |     r4 = pc + r4;
    0x00010728 beq 0x1073c                                               |     
                                                                         |     while (r0 < 0) {
                                                                         | label_4:
    0x0001072c mov r4, 0                                                 |         r4 = 0;
                                                                         | label_3:
    0x00010730 mov r0, r4                                                |         r0 = r4;
    0x00010734 add sp, sp, 0xc                                           |         
    0x00010738 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                  |         
    0x0001073c mov r5, r0                                                |         r5 = r0;
    0x00010740 mov r7, r1                                                |         r7 = r1;
    0x00010744 bl 0xe460                                                 |         fcn_0000e460 (r0);
    0x00010748 ldr r3, [pc, 0x154]                                       |         
    0x0001074c ldr r3, [r4, r3]                                          |         r3 = *((r4 + r3));
    0x00010750 ldr r3, [r3]                                              |         r3 = *(0x108a0);
    0x00010754 tst r3, 0x1000                                            |         
                                                                         |         if ((r3 & 0x1000) != 0) {
    0x00010758 beq 0x107a8                                               |             
    0x0001075c ldr r3, [pc, 0x144]                                       |             r3 = *(0x108a4);
    0x00010760 ldr r3, [r4, r3]                                          |             r3 = *((r4 + r3));
    0x00010764 ldr r4, [r3]                                              |             r4 = *(0x108a4);
    0x00010768 bl 0x58fc                                                 |             getpid ();
    0x0001076c ldr r3, [pc, 0x138]                                       |             r3 = *(0x108a8);
    0x00010770 ldr r1, [pc, 0x138]                                       |             r1 = *(0x108ac);
    0x00010774 add r3, pc, r3                                            |             r3 = pc + r3;
    0x00010778 str r3, [sp]                                              |             *(sp) = r3;
    0x0001077c ldr r3, [pc, 0x130]                                       |             r3 = *(0x108b0);
    0x00010780 add r1, pc, r1                                            |             r1 = pc + r1;
    0x00010784 add r3, pc, r3                                            |             r3 = pc + r3;
    0x00010788 mov r2, r0                                                |             r2 = r0;
    0x0001078c mov r0, r4                                                |             r0 = r4;
    0x00010790 bl 0x5c50                                                 |             fprintf (r0, r1, r2, r3)
    0x00010794 ldr r0, [pc, 0x11c]                                       |             r0 = *(0x108b4);
    0x00010798 mov r2, sb                                                |             r2 = sb;
    0x0001079c mov r1, r7                                                |             r1 = r7;
    0x000107a0 add r0, pc, r0                                            |             r0 = pc + r0;
    0x000107a4 bl 0xfd80                                                 |             fcn_0000fd80 ();
                                                                         |         }
    0x000107a8 mov sl, 0                                                 |         sl = 0;
                                                                         | label_0:
    0x000107ac mov r1, r7                                                |         r1 = r7;
    0x000107b0 mov r0, r5                                                |         r0 = r5;
    0x000107b4 bl 0xfe0c                                                 |         r0 = fcn_0000fe0c (r0, r1);
    0x000107b8 subs r8, r0, 0                                            |         r8 = r0 - 0;
                                                                         |         if (r8 == r0) {
    0x000107bc ldrne r6, [r8, 8]!                                        |             r6 = *((r8 += 8));
                                                                         |         }
                                                                         |         if (r8 == r0) {
    0x000107c0 mvnne fp, 0                                               |             
                                                                         |         }
                                                                         |         if (r8 == r0) {
    0x000107c4 movne r4, 0                                               |             r4 = 0;
                                                                         |         }
                                                                         |         if (r8 != r0) {
    0x000107c8 bne 0x10838                                               |             goto label_5;
                                                                         |         }
                                                                         | label_1:
    0x000107cc mov r4, 0                                                 |         r4 = 0;
                                                                         | label_2:
    0x000107d0 cmp r4, 0                                                 |         
                                                                         |         if (r4 != 0) {
    0x000107d4 eoreq r3, sl, 1                                           |             r3 = sl ^ 1;
                                                                         |         }
                                                                         |         if (r4 == 0) {
    0x000107d8 movne r3, 0                                               |             r3 = 0;
                                                                         |         }
    0x000107dc cmp r3, 0                                                 |         
                                                                         |         if (r3 == 0) {
    0x000107e0 beq 0x10878                                               |             goto label_6;
                                                                         |         }
    0x000107e4 mov r0, r5                                                |         r0 = r5;
    0x000107e8 bl 0x60d0                                                 |         r0 = fcn_000060d0 ();
    0x000107ec cmp r0, 0                                                 |         
    0x000107f0 blt 0x1072c                                               |         
                                                                         |     }
    0x000107f4 mov sl, 1                                                 |     sl = 1;
    0x000107f8 b 0x107ac                                                 |     goto label_0;
                                                                         |     do {
    0x000107fc mov r1, sb                                                |         r1 = sb;
    0x00010800 ldr r0, [r6, 0xc]                                         |         r0 = *((r6 + 0xc));
    0x00010804 bl 0x5efc                                                 |         r0 = strcmp (r0, r1);
    0x00010808 subs r1, r0, 0                                            |         r1 = r0 - 0;
                                                                         |         if (r1 == r0) {
    0x0001080c bne 0x10834                                               |             
    0x00010810 ldr r3, [r6, 0x10]                                        |             r3 = *((r6 + 0x10));
    0x00010814 ldr r2, [r3, 0x20]                                        |             r2 = *((r3 + 0x20));
    0x00010818 cmp r2, fp                                                |             
                                                                         |             if (r2 <= fp) {
    0x0001081c ble 0x10834                                               |                 goto label_7;
                                                                         |             }
    0x00010820 ldr r0, [r3, 0x14]                                        |             r0 = *((r3 + 0x14));
    0x00010824 bl 0x6064                                                 |             r0 = access (r0, r1);
    0x00010828 cmp r0, 0                                                 |             
                                                                         |             if (r0 != 0) {
    0x0001082c ldreq r4, [r6, 0x10]                                      |                 r4 = *((r6 + 0x10));
                                                                         |             }
                                                                         |             if (r0 == 0) {
    0x00010830 ldreq fp, [r4, 0x20]                                      |                 fp = *((r4 + 0x20));
                                                                         |                 goto label_7;
                                                                         |             }
                                                                         |         }
                                                                         | label_7:
    0x00010834 ldr r6, [r6]                                              |         r6 = *(r6);
                                                                         | label_5:
    0x00010838 cmp r6, r8                                                |         
    0x0001083c bne 0x107fc                                               |         
                                                                         |     } while (r6 != r8);
    0x00010840 cmp r4, 0                                                 |     
                                                                         |     if (r4 == 0) {
    0x00010844 beq 0x107cc                                               |         goto label_1;
                                                                         |     }
    0x00010848 ldr r3, [r4, 0x38]                                        |     r3 = *((r4 + 0x38));
    0x0001084c tst r3, 1                                                 |     
                                                                         |     if ((r3 & 1) != 0) {
    0x00010850 bne 0x107d0                                               |         goto label_2;
                                                                         |     }
    0x00010854 mov r1, r4                                                |     r1 = r4;
    0x00010858 mov r0, r5                                                |     r0 = r5;
    0x0001085c bl 0x5884                                                 |     r0 = fcn_00005884 ();
    0x00010860 subs r4, r0, 0                                            |     r4 = r0 - 0;
                                                                         |     if (r4 == r0) {
    0x00010864 beq 0x107ac                                               |         goto label_0;
                                                                         |     }
    0x00010868 ldr r3, [r4, 0x38]                                        |     r3 = *((r4 + 0x38));
    0x0001086c tst r3, 1                                                 |     
                                                                         |     if ((r3 & 1) != 0) {
    0x00010870 bne 0x107ac                                               |         goto label_0;
                                                                         |     }
    0x00010874 b 0x107d0                                                 |     goto label_2;
                                                                         | label_6:
    0x00010878 cmp r4, 0                                                 |     
                                                                         |     if (r4 != 0) {
    0x0001087c bne 0x10730                                               |         goto label_3;
                                                                         |     }
    0x00010880 ldr r3, [r5, 0x18]                                        |     r3 = *((r5 + 0x18));
    0x00010884 tst r3, 2                                                 |     
                                                                         |     if ((r3 & 2) != 0) {
    0x00010888 bne 0x1072c                                               |         goto label_4;
                                                                         |     }
    0x0001088c mov r0, r5                                                |     r0 = r5;
    0x00010890 bl 0x5764                                                 |     r0 = fcn_00005764 ();
    0x00010894 cmp r0, 0                                                 |     
                                                                         |     if (r0 >= 0) {
    0x00010898 bge 0x107ac                                               |         goto label_0;
                                                                         |     }
    0x0001089c b 0x1072c                                                 |     goto label_4;
                                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xb9a4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.blkid_free_probe ()                          | void blkid_free_probe (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     r0 = arg1;
    0x0000b9a4 push {r0, r1, r2, r4, r5, r6, r7, lr}         |     
    0x0000b9a8 ldr r6, [pc, 0xe4]                            |     r6 = *(0xba90);
    0x0000b9ac subs r4, r0, 0                                |     r4 = r0 - 0;
    0x0000b9b0 add r6, pc, r6                                |     r6 = pc + r6;
                                                             |     if (r4 == r0) {
    0x0000b9b4 beq 0xba8c                                    |         goto label_0;
                                                             |     }
    0x0000b9b8 mov r5, r4                                    |     r5 = r4;
    0x0000b9bc add r7, r4, 0x54                              |     r7 = r4 + 0x54;
                                                             |     do {
    0x0000b9c0 ldr r3, [r5, 0x54]                            |         r3 = *((r5 + 0x54));
    0x0000b9c4 ldr r3, [r3, 0x24]                            |         r3 = *((r3 + 0x24));
    0x0000b9c8 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x0000b9cc beq 0xb9dc                                    |             
    0x0000b9d0 ldr r1, [r5, 0x6c]                            |             r1 = *((r5 + 0x6c));
    0x0000b9d4 mov r0, r4                                    |             r0 = r4;
    0x0000b9d8 blx r3                                        |             uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
                                                             |         }
    0x0000b9dc ldr r0, [r5, 0x68]                            |         r0 = *((r5 + 0x68));
    0x0000b9e0 bl 0x6220                                     |         free (r0);
    0x0000b9e4 add r5, r5, 0x1c                              |         r5 += 0x1c;
    0x0000b9e8 cmp r7, r5                                    |         
    0x0000b9ec bne 0xb9c0                                    |         
                                                             |     } while (r7 != r5);
    0x0000b9f0 ldr r3, [r4, 0x30]                            |     r3 = *((r4 + 0x30));
    0x0000b9f4 tst r3, 2                                     |     
                                                             |     if ((r3 & 2) != 0) {
    0x0000b9f8 beq 0xba0c                                    |         
    0x0000b9fc ldr r0, [r4]                                  |         r0 = *(r4);
    0x0000ba00 cmp r0, 0                                     |         
                                                             |         if (r0 < 0) {
    0x0000ba04 blt 0xba0c                                    |             goto label_1;
                                                             |         }
    0x0000ba08 bl 0x61e4                                     |         close (r0);
                                                             |     }
                                                             | label_1:
    0x0000ba0c mov r0, r4                                    |     r0 = r4;
    0x0000ba10 bl 0x5f80                                     |     fcn_00005f80 ();
    0x0000ba14 mov r0, r4                                    |     r0 = r4;
    0x0000ba18 bl 0xafc4                                     |     fcn_0000afc4 (r0);
    0x0000ba1c ldr r0, [r4, 0xb8]                            |     r0 = *((r4 + 0xb8));
    0x0000ba20 bl 0x5cbc                                     |     fcn_00005cbc ();
    0x0000ba24 ldr r3, [pc, 0x6c]                            |     
    0x0000ba28 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x0000ba2c ldr r3, [r3]                                  |     r3 = *(0xba94);
    0x0000ba30 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) != 0) {
    0x0000ba34 beq 0xba7c                                    |         
    0x0000ba38 ldr r3, [pc, 0x5c]                            |         r3 = *(0xba98);
    0x0000ba3c ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x0000ba40 ldr r5, [r3]                                  |         r5 = *(0xba98);
    0x0000ba44 bl 0x58fc                                     |         getpid ();
    0x0000ba48 ldr r3, [pc, 0x50]                            |         r3 = *(0xba9c);
    0x0000ba4c ldr r1, [pc, 0x50]                            |         r1 = *(0xbaa0);
    0x0000ba50 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000ba54 str r3, [sp]                                  |         *(sp) = r3;
    0x0000ba58 ldr r3, [pc, 0x48]                            |         r3 = *(0xbaa4);
    0x0000ba5c add r1, pc, r1                                |         r1 = pc + r1;
    0x0000ba60 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000ba64 mov r2, r0                                    |         r2 = r0;
    0x0000ba68 mov r0, r5                                    |         r0 = r5;
    0x0000ba6c bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x0000ba70 ldr r0, [pc, 0x34]                            |         r0 = *(0xbaa8);
    0x0000ba74 add r0, pc, r0                                |         r0 = pc + r0;
    0x0000ba78 bl 0xac7c                                     |         fcn_0000ac7c ();
                                                             |     }
    0x0000ba7c mov r0, r4                                    |     r0 = r4;
    0x0000ba80 add sp, sp, 0xc                               |     
    0x0000ba84 pop {r4, r5, r6, r7, lr}                      |     
    0x0000ba88 b 0x6220                                      |     void (*0x6220)() ();
                                                             | label_0:
    0x0000ba8c add sp, sp, 0xc                               |     
    0x0000ba90 pop {r4, r5, r6, r7, pc}                      |     
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x6de8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.blkid_gc_cache ()                            | void blkid_gc_cache (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_74h;
                                                             |     r0 = arg1;
    0x00006de8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00006dec ldr r6, [pc, 0x114]                           |     r6 = *(0x6f04);
    0x00006df0 subs r5, r0, 0                                |     r5 = r0 - 0;
    0x00006df4 add r6, pc, r6                                |     r6 = pc + r6;
    0x00006df8 sub sp, sp, 0x74                              |     
                                                             |     if (r5 == r0) {
    0x00006dfc beq 0x6e28                                    |         goto label_1;
                                                             |     }
    0x00006e00 ldr r4, [r5]                                  |     r4 = *(r5);
    0x00006e04 ldr r8, [pc, 0x100]                           |     r8 = *(0x6f08);
    0x00006e08 ldr sb, [pc, 0x100]                           |     sb = *(0x6f0c);
    0x00006e0c ldr sl, [pc, 0x100]                           |     sl = *(0x00006f14);
    0x00006e10 ldr r7, [r4]                                  |     r7 = *(r4);
    0x00006e14 add r8, pc, r8                                |     r8 = pc + r8;
    0x00006e18 add sb, pc, sb                                |     sb = pc + sb;
    0x00006e1c add sl, pc, sl                                |     sl = pc + sl;
                                                             |     do {
    0x00006e20 cmp r5, r4                                    |         
                                                             |         if (r5 == r4) {
    0x00006e24 bne 0x6e30                                    |             
                                                             | label_1:
    0x00006e28 add sp, sp, 0x74                              |             
    0x00006e2c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |             
                                                             |         }
    0x00006e30 add r1, sp, 8                                 |         r1 += var_8h;
    0x00006e34 ldr r0, [r4, 0x14]                            |         r0 = *((r4 + 0x14));
    0x00006e38 bl 0x5800                                     |         stat64 ();
    0x00006e3c ldr r3, [pc, 0xd4]                            |         
    0x00006e40 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x00006e44 ldr r3, [r3]                                  |         r3 = *(0x6f14);
    0x00006e48 cmp r0, 0                                     |         
                                                             |         if (r0 >= 0) {
    0x00006e4c bge 0x6ec4                                    |             goto label_2;
                                                             |         }
    0x00006e50 tst r3, 4                                     |         
                                                             |         if ((r3 & 4) != 0) {
    0x00006e54 beq 0x6ea4                                    |             
    0x00006e58 ldr r3, [pc, 0xbc]                            |             r3 = *(0x6f18);
    0x00006e5c ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x00006e60 ldr fp, [r3]                                  |             fp = *(0x6f18);
    0x00006e64 bl 0x58fc                                     |             getpid ();
    0x00006e68 ldr r3, [pc, 0xb0]                            |             r3 = *(0x6f1c);
    0x00006e6c ldr r1, [pc, 0xb0]                            |             r1 = *(0x6f20);
    0x00006e70 add r3, pc, r3                                |             r3 = pc + r3;
    0x00006e74 str r3, [sp]                                  |             *(sp) = r3;
    0x00006e78 ldr r3, [pc, 0xa8]                            |             r3 = *(0x6f24);
    0x00006e7c add r1, pc, r1                                |             r1 = pc + r1;
    0x00006e80 add r3, pc, r3                                |             r3 = pc + r3;
    0x00006e84 mov r2, r0                                    |             r2 = r0;
    0x00006e88 mov r0, fp                                    |             r0 = fp;
    0x00006e8c bl 0x5c50                                     |             fprintf (r0, r1, r2, r3)
    0x00006e90 ldr r1, [pc, 0x94]                            |             r1 = *(0x6f28);
    0x00006e94 ldr r2, [r4, 0x14]                            |             r2 = *((r4 + 0x14));
    0x00006e98 add r1, pc, r1                                |             r1 = pc + r1;
    0x00006e9c mov r0, r5                                    |             r0 = r5;
    0x00006ea0 bl 0x68b0                                     |             fcn_000068b0 (r0);
                                                             |         }
    0x00006ea4 mov r0, r4                                    |         r0 = r4;
    0x00006ea8 bl 0x7738                                     |         fcn_00007738 (r0);
    0x00006eac ldr r3, [r5, 0x18]                            |         r3 = *((r5 + 0x18));
    0x00006eb0 orr r3, r3, 4                                 |         r3 |= 4;
    0x00006eb4 str r3, [r5, 0x18]                            |         *((r5 + 0x18)) = r3;
                                                             | label_0:
    0x00006eb8 mov r4, r7                                    |         r4 = r7;
    0x00006ebc ldr r7, [r7]                                  |         r7 = *(r7);
    0x00006ec0 b 0x6e20                                      |         
                                                             |     } while (1);
                                                             | label_2:
    0x00006ec4 tst r3, 4                                     |     
                                                             |     if ((r3 & 4) == 0) {
    0x00006ec8 beq 0x6eb8                                    |         goto label_0;
                                                             |     }
    0x00006ecc ldr r3, [pc, 0x48]                            |     r3 = *(0x6f18);
    0x00006ed0 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00006ed4 ldr fp, [r3]                                  |     fp = *(0x6f18);
    0x00006ed8 bl 0x58fc                                     |     getpid ();
    0x00006edc mov r1, sb                                    |     r1 = sb;
    0x00006ee0 str sl, [sp]                                  |     *(sp) = sl;
    0x00006ee4 mov r3, r8                                    |     r3 = r8;
    0x00006ee8 mov r2, r0                                    |     r2 = r0;
    0x00006eec mov r0, fp                                    |     r0 = fp;
    0x00006ef0 bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x00006ef4 ldr r0, [pc, 0x34]                            |     r0 = *(0x6f2c);
    0x00006ef8 ldr r1, [r4, 0x14]                            |     r1 = *((r4 + 0x14));
    0x00006efc add r0, pc, r0                                |     r0 = pc + r0;
    0x00006f00 bl 0x6970                                     |     fcn_00006970 ();
    0x00006f04 b 0x6eb8                                      |     goto label_0;
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x6ad8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.blkid_get_cache ()                           | void blkid_get_cache (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00006ad8 push {r0, r1, r2, r4, r5, r6, r7, lr}         |     
    0x00006adc ldr r7, [pc, 0xf4]                            |     r7 = *(0x6bd4);
    0x00006ae0 subs r6, r0, 0                                |     r6 = r0 - 0;
    0x00006ae4 add r7, pc, r7                                |     r7 = pc + r7;
                                                             |     if (r6 != r0) {
    0x00006ae8 mvneq r0, 0x15                                |         r0 = ~0x15;
                                                             |     }
                                                             |     if (r6 == r0) {
    0x00006aec beq 0x6bc4                                    |         goto label_0;
                                                             |     }
    0x00006af0 mov r0, 0                                     |     r0 = 0;
    0x00006af4 mov r5, r1                                    |     r5 = r1;
    0x00006af8 bl 0x5ce0                                     |     fcn_00005ce0 ();
    0x00006afc mov r1, 0x24                                  |     r1 = 0x24;
    0x00006b00 mov r0, 1                                     |     r0 = 1;
    0x00006b04 bl 0x5bf0                                     |     r0 = calloc (r0, r1);
    0x00006b08 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 != r0) {
    0x00006b0c mvneq r0, 0xb                                 |         r0 = ~0xb;
                                                             |     }
                                                             |     if (r4 == r0) {
    0x00006b10 beq 0x6bc4                                    |         goto label_0;
                                                             |     }
    0x00006b14 ldr r3, [pc, 0xc0]                            |     
    0x00006b18 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00006b1c ldr r3, [r3]                                  |     r3 = *(0x6bd8);
    0x00006b20 tst r3, 4                                     |     
                                                             |     if ((r3 & 4) != 0) {
    0x00006b24 beq 0x6b80                                    |         
    0x00006b28 ldr r3, [pc, 0xb0]                            |         r3 = *(0x6bdc);
    0x00006b2c ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00006b30 ldr r7, [r3]                                  |         r7 = *(0x6bdc);
    0x00006b34 bl 0x58fc                                     |         getpid ();
    0x00006b38 ldr r3, [pc, 0xa4]                            |         r3 = *(0x6be0);
    0x00006b3c ldr r1, [pc, 0xa4]                            |         r1 = *(0x6be4);
    0x00006b40 add r3, pc, r3                                |         r3 = pc + r3;
    0x00006b44 str r3, [sp]                                  |         *(sp) = r3;
    0x00006b48 ldr r3, [pc, 0x9c]                            |         r3 = *(0x6be8);
    0x00006b4c add r1, pc, r1                                |         r1 = pc + r1;
    0x00006b50 add r3, pc, r3                                |         r3 = pc + r3;
    0x00006b54 mov r2, r0                                    |         r2 = r0;
    0x00006b58 mov r0, r7                                    |         r0 = r7;
    0x00006b5c bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x00006b60 cmp r5, 0                                     |         
                                                             |         if (r5 == 0) {
    0x00006b64 movne r2, r5                                  |             r2 = r5;
                                                             |         }
                                                             |         if (r5 != 0) {
    0x00006b68 ldreq r2, [pc, 0x80]                          |             r2 = *((pc + 0x80));
                                                             |         }
                                                             |         if (r5 != 0) {
    0x00006b6c addeq r2, pc, r2                              |             r2 = pc + r2;
                                                             |         }
    0x00006b70 ldr r1, [pc, 0x7c]                            |         r1 = *(0x6bf0);
    0x00006b74 mov r0, r4                                    |         r0 = r4;
    0x00006b78 add r1, pc, r1                                |         r1 = pc + r1;
    0x00006b7c bl 0x68b0                                     |         fcn_000068b0 (r0);
                                                             |     }
    0x00006b80 add r3, r4, 8                                 |     r3 = r4 + 8;
    0x00006b84 cmp r5, 0                                     |     
    0x00006b88 str r4, [r4]                                  |     *(r4) = r4;
    0x00006b8c str r4, [r4, 4]                               |     *((r4 + 4)) = r4;
    0x00006b90 str r3, [r4, 8]                               |     *((r4 + 8)) = r3;
    0x00006b94 str r3, [r4, 0xc]                             |     *((r4 + 0xc)) = r3;
                                                             |     if (r5 == 0) {
    0x00006b98 beq 0x6bcc                                    |         goto label_1;
                                                             |     }
    0x00006b9c ldrsb r3, [r5]                                |     r3 = *(r5);
    0x00006ba0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00006ba4 beq 0x6bcc                                    |         goto label_1;
                                                             |     }
    0x00006ba8 mov r0, r5                                    |     r0 = r5;
    0x00006bac bl 0x5e48                                     |     strdup (r0);
                                                             |     do {
    0x00006bb0 str r0, [r4, 0x1c]                            |         *((r4 + 0x1c)) = r0;
    0x00006bb4 mov r0, r4                                    |         r0 = r4;
    0x00006bb8 bl 0xe460                                     |         fcn_0000e460 (r0);
    0x00006bbc mov r0, 0                                     |         r0 = 0;
    0x00006bc0 str r4, [r6]                                  |         *(r6) = r4;
                                                             | label_0:
    0x00006bc4 add sp, sp, 0xc                               |         
    0x00006bc8 pop {r4, r5, r6, r7, pc}                      |         
                                                             | label_1:
    0x00006bcc mov r0, 0                                     |         r0 = 0;
    0x00006bd0 bl 0x6a04                                     |         fcn_00006a04 (r0);
    0x00006bd4 b 0x6bb0                                      |         
                                                             |     } 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 @ 0x7bb0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.blkid_get_dev ()                             | void blkid_get_dev (uint32_t arg1, uint32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_14h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00007bb0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00007bb4 ldr sb, [pc, 0x354]                           |     sb = *(0x00007f10);
    0x00007bb8 cmp r1, 0                                     |     
    0x00007bbc cmpne r0, 0                                   |     __asm ("cmpne r0, 0");
    0x00007bc0 add sb, pc, sb                                |     sb = pc + sb;
    0x00007bc4 sub sp, sp, 0x14                              |     
                                                             |     if (r1 != 0) {
    0x00007bc8 moveq r4, 0                                   |         r4 = 0;
                                                             |     }
                                                             |     if (r1 == 0) {
    0x00007bcc beq 0x7f04                                    |         goto label_6;
                                                             |     }
    0x00007bd0 ldr r8, [r0]                                  |     r8 = *(r0);
    0x00007bd4 mov r7, r1                                    |     r7 = r1;
    0x00007bd8 mov r5, r0                                    |     r5 = r0;
    0x00007bdc mov sl, r2                                    |     sl = r2;
                                                             |     do {
    0x00007be0 cmp r5, r8                                    |         
                                                             |         if (r5 == r8) {
    0x00007be4 bne 0x7ce8                                    |             
    0x00007be8 mov r0, r7                                    |             r0 = r7;
    0x00007bec bl 0x22a24                                    |             r0 = fcn_00022a24 (r0);
    0x00007bf0 subs r6, r0, 0                                |             r6 = r0 - 0;
                                                             |             if (r6 != r0) {
    0x00007bf4 beq 0x7c70                                    |                 
    0x00007bf8 mov r1, r7                                    |                 r1 = r7;
    0x00007bfc bl 0x5efc                                     |                 r0 = strcmp (r0, r1);
    0x00007c00 subs r4, r0, 0                                |                 r4 = r0 - 0;
                                                             |                 if (r4 == r0) {
    0x00007c04 beq 0x7dc4                                    |                     goto label_7;
                                                             |                 }
    0x00007c08 ldr r3, [pc, 0x304]                           |                 
    0x00007c0c ldr r3, [sb, r3]                              |                 r3 = *((sb + r3));
    0x00007c10 ldr r3, [r3]                                  |                 r3 = *(0x7f10);
    0x00007c14 tst r3, 0x20                                  |                 
                                                             |                 if ((r3 & 0x20) != 0) {
    0x00007c18 beq 0x7c64                                    |                     
    0x00007c1c ldr r3, [pc, 0x2f4]                           |                     r3 = *(0x7f14);
    0x00007c20 ldr r3, [sb, r3]                              |                     r3 = *((sb + r3));
    0x00007c24 ldr r4, [r3]                                  |                     r4 = *(0x7f14);
    0x00007c28 bl 0x58fc                                     |                     getpid ();
    0x00007c2c ldr r3, [pc, 0x2e8]                           |                     r3 = *(0x7f18);
    0x00007c30 ldr r1, [pc, 0x2e8]                           |                     r1 = *(0x7f1c);
    0x00007c34 add r3, pc, r3                                |                     r3 = pc + r3;
    0x00007c38 str r3, [sp]                                  |                     *(sp) = r3;
    0x00007c3c ldr r3, [pc, 0x2e0]                           |                     r3 = *(0x7f20);
    0x00007c40 add r1, pc, r1                                |                     r1 = pc + r1;
    0x00007c44 add r3, pc, r3                                |                     r3 = pc + r3;
    0x00007c48 mov r2, r0                                    |                     r2 = r0;
    0x00007c4c mov r0, r4                                    |                     r0 = r4;
    0x00007c50 bl 0x5c50                                     |                     fprintf (r0, r1, r2, r3)
    0x00007c54 ldr r0, [pc, 0x2cc]                           |                     r0 = *(0x7f24);
    0x00007c58 mov r1, r6                                    |                     r1 = r6;
    0x00007c5c add r0, pc, r0                                |                     r0 = pc + r0;
    0x00007c60 bl 0x7b24                                     |                     fcn_00007b24 ();
                                                             |                 }
    0x00007c64 ldr r4, [r5]                                  |                 r4 = *(r5);
                                                             | label_0:
    0x00007c68 cmp r8, r4                                    |                 
                                                             |                 if (r8 != r4) {
    0x00007c6c bne 0x7d04                                    |                     goto label_8;
                                                             |                 }
                                                             |             }
                                                             | label_1:
    0x00007c70 ands r4, sl, 1                                |             r4 = sl & 1;
                                                             |             if (r4 == sl) {
    0x00007c74 beq 0x7d30                                    |                 goto label_9;
                                                             |             }
    0x00007c78 mov r1, 0                                     |             r1 = 0;
    0x00007c7c mov r0, r7                                    |             r0 = r7;
    0x00007c80 bl 0x6064                                     |             r0 = access (r0, r1);
    0x00007c84 cmp r0, 0                                     |             
                                                             |             if (r0 >= 0) {
    0x00007c88 movlt r4, 0                                   |                 r4 = 0;
                                                             |             }
                                                             |             if (r0 < 0) {
    0x00007c8c blt 0x7efc                                    |                 goto label_10;
                                                             |             }
    0x00007c90 bl 0x7680                                     |             r0 = fcn_00007680 ();
    0x00007c94 subs r4, r0, 0                                |             r4 = r0 - 0;
                                                             |             if (r4 == r0) {
    0x00007c98 beq 0x7efc                                    |                 goto label_10;
                                                             |             }
    0x00007c9c mov r3, 0x80000000                            |             r3 = 0x80000000;
    0x00007ca0 cmp r6, 0                                     |             
    0x00007ca4 str r3, [r4, 0x30]                            |             *((r4 + 0x30)) = r3;
                                                             |             if (r6 == 0) {
    0x00007ca8 beq 0x7dd4                                    |                 goto label_11;
                                                             |             }
    0x00007cac str r6, [r4, 0x14]                            |             *((r4 + 0x14)) = r6;
    0x00007cb0 mov r0, r7                                    |             r0 = r7;
    0x00007cb4 bl 0x5e48                                     |             strdup (r0);
    0x00007cb8 str r0, [r4, 0x18]                            |             *((r4 + 0x18)) = r0;
                                                             | label_2:
    0x00007cbc ldr r3, [r5, 4]                               |             r3 = *((r5 + 4));
    0x00007cc0 str r5, [r4, 0x10]                            |             *((r4 + 0x10)) = r5;
    0x00007cc4 str r4, [r5, 4]                               |             *((r5 + 4)) = r4;
    0x00007cc8 str r3, [r4, 4]                               |             *((r4 + 4)) = r3;
    0x00007ccc str r8, [r4]                                  |             *(r4) = r8;
    0x00007cd0 str r4, [r3]                                  |             *(r3) = r4;
    0x00007cd4 ldr r3, [r5, 0x18]                            |             r3 = *((r5 + 0x18));
    0x00007cd8 mov r6, 0                                     |             r6 = 0;
    0x00007cdc orr r3, r3, 4                                 |             r3 |= 4;
    0x00007ce0 str r3, [r5, 0x18]                            |             *((r5 + 0x18)) = r3;
    0x00007ce4 b 0x7d30                                      |             goto label_9;
                                                             |         }
    0x00007ce8 mov r1, r7                                    |         r1 = r7;
    0x00007cec ldr r0, [r8, 0x14]                            |         r0 = *((r8 + 0x14));
    0x00007cf0 bl 0x5efc                                     |         r0 = strcmp (r0, r1);
    0x00007cf4 subs r6, r0, 0                                |         r6 = r0 - 0;
                                                             |         if (r6 == r0) {
    0x00007cf8 beq 0x7de4                                    |             goto label_12;
                                                             |         }
    0x00007cfc ldr r8, [r8]                                  |         r8 = *(r8);
    0x00007d00 b 0x7be0                                      |         
                                                             |     } while (1);
                                                             | label_8:
    0x00007d04 mov r1, r6                                    |     r1 = r6;
    0x00007d08 ldr r0, [r4, 0x14]                            |     r0 = *((r4 + 0x14));
    0x00007d0c bl 0x5efc                                     |     r0 = strcmp (r0, r1);
    0x00007d10 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00007d14 ldrne r4, [r4]                                |         r4 = *(r4);
                                                             |         goto label_13;
                                                             |     }
                                                             |     if (r0 != 0) {
                                                             | label_13:
    0x00007d18 bne 0x7c68                                    |         goto label_0;
                                                             |     }
    0x00007d1c ldr r0, [r4, 0x18]                            |     r0 = *((r4 + 0x18));
    0x00007d20 bl 0x6220                                     |     free (r0);
    0x00007d24 mov r0, r7                                    |     r0 = r7;
    0x00007d28 bl 0x5e48                                     |     strdup (r0);
    0x00007d2c str r0, [r4, 0x18]                            |     *((r4 + 0x18)) = r0;
                                                             |     do {
                                                             | label_9:
    0x00007d30 tst sl, 2                                     |         
                                                             |         if ((sl & 2) == 0) {
    0x00007d34 beq 0x7ef4                                    |             goto label_14;
                                                             |         }
    0x00007d38 mov r1, r4                                    |         r1 = r4;
    0x00007d3c mov r0, r5                                    |         r0 = r5;
    0x00007d40 bl 0x5884                                     |         r0 = fcn_00005884 ();
    0x00007d44 subs r4, r0, 0                                |         r4 = r0 - 0;
                                                             |         if (r4 == r0) {
    0x00007d48 beq 0x7efc                                    |             goto label_10;
                                                             |         }
    0x00007d4c ldr r3, [r4, 0x38]                            |         r3 = *((r4 + 0x38));
    0x00007d50 tst r3, 1                                     |         
                                                             |         if ((r3 & 1) == 0) {
    0x00007d54 ldrne r8, [r5]                                |             r8 = *(r5);
                                                             |         }
                                                             |         if ((r3 & 1) == 0) {
    0x00007d58 ldrne sl, [r8]                                |             sl = *(r8);
                                                             |         }
                                                             |         if ((r3 & 1) != 0) {
    0x00007d5c bne 0x7e98                                    |             goto label_15;
                                                             |         }
                                                             | label_3:
    0x00007d60 ldr r3, [pc, 0x1ac]                           |         
    0x00007d64 ldr r3, [sb, r3]                              |         r3 = *((sb + r3));
    0x00007d68 ldr r3, [r3]                                  |         r3 = *(0x7f10);
    0x00007d6c tst r3, 0x20                                  |         
                                                             |         if ((r3 & 0x20) == 0) {
    0x00007d70 beq 0x7efc                                    |             goto label_10;
                                                             |         }
    0x00007d74 ldr r3, [pc, 0x19c]                           |         r3 = *(0x7f14);
    0x00007d78 ldr r3, [sb, r3]                              |         r3 = *((sb + r3));
    0x00007d7c ldr r5, [r3]                                  |         r5 = *(0x7f14);
    0x00007d80 bl 0x58fc                                     |         getpid ();
    0x00007d84 ldr r3, [pc, 0x1a0]                           |         r3 = *(0x7f28);
    0x00007d88 ldr r1, [pc, 0x1a0]                           |         r1 = *(0x7f2c);
    0x00007d8c add r3, pc, r3                                |         r3 = pc + r3;
    0x00007d90 str r3, [sp]                                  |         *(sp) = r3;
    0x00007d94 ldr r3, [pc, 0x198]                           |         r3 = *(0x7f30);
    0x00007d98 add r1, pc, r1                                |         r1 = pc + r1;
    0x00007d9c add r3, pc, r3                                |         r3 = pc + r3;
    0x00007da0 mov r2, r0                                    |         r2 = r0;
    0x00007da4 mov r0, r5                                    |         r0 = r5;
    0x00007da8 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x00007dac ldr r0, [pc, 0x184]                           |         r0 = *(0x7f34);
    0x00007db0 ldr r2, [r4, 0x14]                            |         r2 = *((r4 + 0x14));
    0x00007db4 mov r1, r7                                    |         r1 = r7;
    0x00007db8 add r0, pc, r0                                |         r0 = pc + r0;
    0x00007dbc bl 0x7b24                                     |         fcn_00007b24 ();
    0x00007dc0 b 0x7efc                                      |         goto label_10;
                                                             | label_7:
    0x00007dc4 mov r0, r6                                    |         r0 = r6;
    0x00007dc8 bl 0x6220                                     |         free (r0);
    0x00007dcc mov r6, r4                                    |         r6 = r4;
    0x00007dd0 b 0x7c70                                      |         goto label_1;
                                                             | label_11:
    0x00007dd4 mov r0, r7                                    |         r0 = r7;
    0x00007dd8 bl 0x5e48                                     |         strdup (r0);
    0x00007ddc str r0, [r4, 0x14]                            |         *((r4 + 0x14)) = r0;
    0x00007de0 b 0x7cbc                                      |         goto label_2;
                                                             | label_12:
    0x00007de4 mov r4, r8                                    |         r4 = r8;
    0x00007de8 b 0x7d30                                      |         
                                                             |     } while (1);
                                                             |     do {
    0x00007dec ldr r3, [r8, 0x38]                            |         r3 = *((r8 + 0x38));
    0x00007df0 tst r3, 1                                     |         
                                                             |         if ((r3 & 1) == 0) {
    0x00007df4 bne 0x7e90                                    |             
    0x00007df8 ldr r0, [r4, 0x1c]                            |             r0 = *((r4 + 0x1c));
    0x00007dfc cmp r0, 0                                     |             
                                                             |             if (r0 == 0) {
    0x00007e00 beq 0x7e90                                    |                 goto label_4;
                                                             |             }
    0x00007e04 ldr r1, [r8, 0x1c]                            |             r1 = *((r8 + 0x1c));
    0x00007e08 cmp r1, 0                                     |             
                                                             |             if (r1 == 0) {
    0x00007e0c beq 0x7e90                                    |                 goto label_4;
                                                             |             }
    0x00007e10 bl 0x5efc                                     |             r0 = strcmp (r0, r1);
    0x00007e14 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00007e18 bne 0x7e90                                    |                 goto label_4;
                                                             |             }
    0x00007e1c ldr r3, [r4, 0x3c]                            |             r3 = *((r4 + 0x3c));
    0x00007e20 cmp r3, 0                                     |             
                                                             |             if (r3 != 0) {
    0x00007e24 beq 0x7e4c                                    |                 
    0x00007e28 ldr r1, [r8, 0x3c]                            |                 r1 = *((r8 + 0x3c));
    0x00007e2c cmp r1, 0                                     |                 
                                                             |                 if (r1 == 0) {
    0x00007e30 beq 0x7e4c                                    |                     goto label_16;
                                                             |                 }
    0x00007e34 mov r0, r3                                    |                 r0 = r3;
    0x00007e38 str r3, [sp, 0xc]                             |                 var_ch = r3;
    0x00007e3c bl 0x5efc                                     |                 strcmp (r0, r1);
    0x00007e40 ldr r3, [sp, 0xc]                             |                 r3 = var_ch;
    0x00007e44 cmp r0, 0                                     |                 
                                                             |                 if (r0 != 0) {
    0x00007e48 bne 0x7e90                                    |                     goto label_4;
                                                             |                 }
                                                             |             }
                                                             | label_16:
    0x00007e4c ldr fp, [r4, 0x40]                            |             fp = *((r4 + 0x40));
    0x00007e50 cmp fp, 0                                     |             
                                                             |             if (fp != 0) {
    0x00007e54 beq 0x7e7c                                    |                 
    0x00007e58 ldr r1, [r8, 0x40]                            |                 r1 = *((r8 + 0x40));
    0x00007e5c cmp r1, 0                                     |                 
                                                             |                 if (r1 == 0) {
    0x00007e60 beq 0x7e7c                                    |                     goto label_17;
                                                             |                 }
    0x00007e64 mov r0, fp                                    |                 r0 = fp;
    0x00007e68 str r3, [sp, 0xc]                             |                 var_ch = r3;
    0x00007e6c bl 0x5efc                                     |                 strcmp (r0, r1);
    0x00007e70 ldr r3, [sp, 0xc]                             |                 r3 = var_ch;
    0x00007e74 cmp r0, 0                                     |                 
                                                             |                 if (r0 != 0) {
    0x00007e78 bne 0x7e90                                    |                     goto label_4;
                                                             |                 }
                                                             |             }
                                                             | label_17:
    0x00007e7c cmp r3, 0                                     |             
    0x00007e80 ldr r2, [r8, 0x3c]                            |             r2 = *((r8 + 0x3c));
                                                             |             if (r3 == 0) {
    0x00007e84 beq 0x7ea4                                    |                 goto label_18;
                                                             |             }
    0x00007e88 cmp r2, 0                                     |             
                                                             |             if (r2 != 0) {
    0x00007e8c bne 0x7eac                                    |                 goto label_19;
                                                             |             }
                                                             |         }
                                                             | label_4:
    0x00007e90 mov r8, sl                                    |         r8 = sl;
    0x00007e94 ldr sl, [sl]                                  |         sl = *(sl);
                                                             | label_15:
    0x00007e98 cmp r5, r8                                    |         
    0x00007e9c bne 0x7dec                                    |         
                                                             |     } while (r5 != r8);
    0x00007ea0 b 0x7d60                                      |     goto label_3;
                                                             | label_18:
    0x00007ea4 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x00007ea8 bne 0x7e90                                    |         goto label_4;
                                                             |     }
                                                             | label_19:
    0x00007eac cmp fp, 0                                     |     
    0x00007eb0 ldr r3, [r8, 0x40]                            |     r3 = *((r8 + 0x40));
                                                             |     if (fp == 0) {
    0x00007eb4 beq 0x7ee8                                    |         goto label_20;
                                                             |     }
    0x00007eb8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00007ebc beq 0x7e90                                    |         goto label_4;
                                                             |     }
                                                             | label_5:
    0x00007ec0 mov r1, r8                                    |     r1 = r8;
    0x00007ec4 mov r0, r5                                    |     r0 = r5;
    0x00007ec8 bl 0x5884                                     |     r0 = fcn_00005884 ();
    0x00007ecc subs r3, r0, 0                                |     r3 = r0 - 0;
                                                             |     if (r3 == r0) {
    0x00007ed0 beq 0x7e90                                    |         goto label_4;
                                                             |     }
    0x00007ed4 ldr r3, [r3, 0x38]                            |     r3 = *((r3 + 0x38));
    0x00007ed8 tst r3, 1                                     |     
                                                             |     if ((r3 & 1) != 0) {
    0x00007edc bne 0x7e90                                    |         goto label_4;
                                                             |     }
    0x00007ee0 bl 0x7738                                     |     fcn_00007738 (r0);
    0x00007ee4 b 0x7e90                                      |     goto label_4;
                                                             | label_20:
    0x00007ee8 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00007eec bne 0x7e90                                    |         goto label_4;
                                                             |     }
    0x00007ef0 b 0x7ec0                                      |     goto label_5;
                                                             | label_14:
    0x00007ef4 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00007ef8 bne 0x7d60                                    |         goto label_3;
                                                             |     }
                                                             | label_10:
    0x00007efc mov r0, r6                                    |     r0 = r6;
    0x00007f00 bl 0x6220                                     |     free (r0);
                                                             | label_6:
    0x00007f04 mov r0, r4                                    |     r0 = r4;
    0x00007f08 add sp, sp, 0x14                              |     
    0x00007f0c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xac54 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.blkid_get_dev_size ()        | void blkid_get_dev_size (int32_t arg1) {
                                             |     int32_t var_0h;
                                             |     int32_t var_0h_2;
                                             |     int32_t var_ch;
                                             |     r0 = arg1;
    0x0000ac54 push {r0, r1, r2, lr}         |     
    0x0000ac58 mov r1, sp                    |     r1 = sp;
    0x0000ac5c bl 0x22354                    |     r0 = fcn_00022354 (r0, r1);
    0x0000ac60 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x0000ac64 movne r0, 0                   |         r0 = 0;
                                             |     }
                                             |     if (r0 == 0) {
    0x0000ac68 movne r1, 0                   |         r1 = 0;
                                             |     }
    0x0000ac6c ldrdeq r0, r1, [sp]           |     __asm ("ldrdeq r0, r1, [sp]");
    0x0000ac70 add sp, sp, 0xc               |     
    0x0000ac74 pop {pc}                      |     
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xeff8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.blkid_get_devname ()             | void blkid_get_devname (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_ch;
                                                 |     void * ptr;
                                                 |     void * var_14h;
                                                 |     int32_t var_1ch;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x0000eff8 push {r4, r5, r6, r7, lr}         |     
    0x0000effc ldr r7, [pc, 0x19c]               |     r7 = *(0xf19c);
    0x0000f000 sub sp, sp, 0x1c                  |     
    0x0000f004 mov r3, 0                         |     r3 = 0;
    0x0000f008 subs r4, r1, 0                    |     r4 = r1 - 0;
    0x0000f00c add r7, pc, r7                    |     r7 = pc + r7;
    0x0000f010 str r0, [sp, 0xc]                 |     var_ch = r0;
    0x0000f014 str r3, [sp, 0x10]                |     ptr = r3;
    0x0000f018 str r3, [sp, 0x14]                |     var_14h = r3;
                                                 |     if (r4 != r1) {
    0x0000f01c bne 0xf030                        |         goto label_7;
                                                 |     }
                                                 | label_2:
    0x0000f020 mov r4, 0                         |     r4 = 0;
                                                 |     do {
                                                 | label_0:
    0x0000f024 mov r0, r4                        |         r0 = r4;
    0x0000f028 add sp, sp, 0x1c                  |         
    0x0000f02c pop {r4, r5, r6, r7, pc}          |         
                                                 | label_7:
    0x0000f030 cmp r0, 0                         |         
    0x0000f034 mov r6, r0                        |         r6 = r0;
    0x0000f038 mov r5, r2                        |         r5 = r2;
                                                 |         if (r0 == 0) {
    0x0000f03c beq 0xf124                        |             goto label_8;
                                                 |         }
                                                 | label_1:
    0x0000f040 ldr r3, [pc, 0x15c]               |         
    0x0000f044 ldr r3, [r7, r3]                  |         r3 = *((r7 + r3));
    0x0000f048 ldr r3, [r3]                      |         r3 = *(0xf1a0);
    0x0000f04c tst r3, 0x1000                    |         
                                                 |         if ((r3 & 0x1000) != 0) {
    0x0000f050 beq 0xf0c4                        |             
    0x0000f054 ldr r3, [pc, 0x14c]               |             r3 = *(0xf1a4);
    0x0000f058 ldr r3, [r7, r3]                  |             r3 = *((r7 + r3));
    0x0000f05c ldr r7, [r3]                      |             r7 = *(0xf1a4);
    0x0000f060 bl 0x58fc                         |             getpid ();
    0x0000f064 ldr r3, [pc, 0x140]               |             r3 = *(0xf1a8);
    0x0000f068 ldr r1, [pc, 0x140]               |             r1 = *(0xf1ac);
    0x0000f06c add r3, pc, r3                    |             r3 = pc + r3;
    0x0000f070 str r3, [sp]                      |             *(sp) = r3;
    0x0000f074 ldr r3, [pc, 0x138]               |             r3 = *(0xf1b0);
    0x0000f078 add r1, pc, r1                    |             r1 = pc + r1;
    0x0000f07c add r3, pc, r3                    |             r3 = pc + r3;
    0x0000f080 mov r2, r0                        |             r2 = r0;
    0x0000f084 mov r0, r7                        |             r0 = r7;
    0x0000f088 bl 0x5c50                         |             fprintf (r0, r1, r2, r3)
    0x0000f08c cmp r5, 0                         |             
                                                 |             if (r5 != 0) {
    0x0000f090 bne 0xf13c                        |                 goto label_9;
                                                 |             }
    0x0000f094 ldr r2, [pc, 0x11c]               |             r2 = *(0xf1b4);
    0x0000f098 add r2, pc, r2                    |             r2 = pc + r2;
    0x0000f09c mov r3, r2                        |             r3 = r2;
                                                 | label_3:
    0x0000f0a0 cmp r6, 0                         |             
                                                 |             if (r6 != 0) {
    0x0000f0a4 bne 0xf14c                        |                 goto label_10;
                                                 |             }
    0x0000f0a8 ldr r1, [pc, 0x10c]               |             r1 = *(0xf1b8);
    0x0000f0ac add r1, pc, r1                    |             r1 = pc + r1;
                                                 | label_4:
    0x0000f0b0 ldr r0, [pc, 0x108]               |             r0 = *(0xf1bc);
    0x0000f0b4 str r1, [sp]                      |             *(sp) = r1;
    0x0000f0b8 add r0, pc, r0                    |             r0 = pc + r0;
    0x0000f0bc mov r1, r4                        |             r1 = r4;
    0x0000f0c0 bl 0xee40                         |             fcn_0000ee40 ();
                                                 |         }
    0x0000f0c4 cmp r5, 0                         |         
                                                 |         if (r5 != 0) {
    0x0000f0c8 bne 0xf170                        |             goto label_11;
                                                 |         }
    0x0000f0cc mov r1, 0x3d                      |         r1 = 0x3d;
    0x0000f0d0 mov r0, r4                        |         r0 = r4;
    0x0000f0d4 bl 0x613c                         |         r0 = strchr (r0, r1);
    0x0000f0d8 cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x0000f0dc moveq r0, r4                      |             r0 = r4;
                                                 |         }
                                                 |         if (r0 == 0) {
    0x0000f0e0 beq 0xf194                        |             goto label_12;
                                                 |         }
    0x0000f0e4 add r2, sp, 0x14                  |         r2 += var_14h;
    0x0000f0e8 add r1, sp, 0x10                  |         r1 += ptr;
    0x0000f0ec mov r0, r4                        |         r0 = r4;
    0x0000f0f0 bl 0x5bcc                         |         r0 = fcn_00005bcc ();
    0x0000f0f4 cmp r0, 0                         |         
                                                 |         if (r0 == 0) {
    0x0000f0f8 beq 0xf158                        |             goto label_13;
                                                 |         }
                                                 | label_5:
    0x0000f0fc mov r4, 0                         |         r4 = 0;
                                                 | label_6:
    0x0000f100 ldr r0, [sp, 0x10]                |         r0 = ptr;
    0x0000f104 bl 0x6220                         |         free (r0);
    0x0000f108 ldr r0, [sp, 0x14]                |         r0 = var_14h;
    0x0000f10c bl 0x6220                         |         free (r0);
    0x0000f110 cmp r6, 0                         |         
    0x0000f114 bne 0xf024                        |         
                                                 |     } while (r6 != 0);
    0x0000f118 ldr r0, [sp, 0xc]                 |     r0 = var_ch;
    0x0000f11c bl 0x5854                         |     fcn_00005854 ();
    0x0000f120 b 0xf024                          |     goto label_0;
                                                 | label_8:
    0x0000f124 mov r1, r0                        |     r1 = r0;
    0x0000f128 add r0, sp, 0xc                   |     r0 += var_ch;
    0x0000f12c bl 0x5ad0                         |     r0 = fcn_00005ad0 ();
    0x0000f130 cmp r0, 0                         |     
                                                 |     if (r0 >= 0) {
    0x0000f134 bge 0xf040                        |         goto label_1;
                                                 |     }
    0x0000f138 b 0xf020                          |     goto label_2;
                                                 | label_9:
    0x0000f13c ldr r2, [pc, 0x80]                |     r2 = *(0xf1c0);
    0x0000f140 mov r3, r5                        |     r3 = r5;
    0x0000f144 add r2, pc, r2                    |     r2 = pc + r2;
    0x0000f148 b 0xf0a0                          |     goto label_3;
                                                 | label_10:
    0x0000f14c ldr r1, [pc, 0x74]                |     r1 = *(0xf1c4);
    0x0000f150 add r1, pc, r1                    |     r1 = pc + r1;
    0x0000f154 b 0xf0b0                          |     goto label_4;
                                                 | label_13:
    0x0000f158 ldr r4, [sp, 0x10]                |     r4 = ptr;
    0x0000f15c cmp r4, 0                         |     
                                                 |     if (r4 == 0) {
    0x0000f160 beq 0xf0fc                        |         goto label_5;
                                                 |     }
    0x0000f164 ldr r5, [sp, 0x14]                |     r5 = var_14h;
    0x0000f168 cmp r5, 0                         |     
                                                 |     if (r5 == 0) {
    0x0000f16c beq 0xf0fc                        |         goto label_5;
                                                 |     }
                                                 | label_11:
    0x0000f170 mov r2, r5                        |     r2 = r5;
    0x0000f174 mov r1, r4                        |     r1 = r4;
    0x0000f178 ldr r0, [sp, 0xc]                 |     r0 = var_ch;
    0x0000f17c bl 0x586c                         |     r0 = fcn_0000586c ();
    0x0000f180 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x0000f184 beq 0xf0fc                        |         goto label_5;
                                                 |     }
    0x0000f188 ldr r0, [r0, 0x14]                |     r0 = *((r0 + 0x14));
    0x0000f18c cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x0000f190 beq 0xf0fc                        |         goto label_5;
                                                 |     }
                                                 | label_12:
    0x0000f194 bl 0x5e48                         |     r0 = strdup (r0);
    0x0000f198 mov r4, r0                        |     r4 = r0;
    0x0000f19c b 0xf100                          |     goto label_6;
                                                 | }
    ; 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 @ 0xeff8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.blkid_get_devname ()             | void blkid_get_devname (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_ch;
                                                 |     void * ptr;
                                                 |     void * var_14h;
                                                 |     int32_t var_1ch;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x0000eff8 push {r4, r5, r6, r7, lr}         |     
    0x0000effc ldr r7, [pc, 0x19c]               |     r7 = *(0xf19c);
    0x0000f000 sub sp, sp, 0x1c                  |     
    0x0000f004 mov r3, 0                         |     r3 = 0;
    0x0000f008 subs r4, r1, 0                    |     r4 = r1 - 0;
    0x0000f00c add r7, pc, r7                    |     r7 = pc + r7;
    0x0000f010 str r0, [sp, 0xc]                 |     var_ch = r0;
    0x0000f014 str r3, [sp, 0x10]                |     ptr = r3;
    0x0000f018 str r3, [sp, 0x14]                |     var_14h = r3;
                                                 |     if (r4 != r1) {
    0x0000f01c bne 0xf030                        |         goto label_7;
                                                 |     }
                                                 | label_2:
    0x0000f020 mov r4, 0                         |     r4 = 0;
                                                 |     do {
                                                 | label_0:
    0x0000f024 mov r0, r4                        |         r0 = r4;
    0x0000f028 add sp, sp, 0x1c                  |         
    0x0000f02c pop {r4, r5, r6, r7, pc}          |         
                                                 | label_7:
    0x0000f030 cmp r0, 0                         |         
    0x0000f034 mov r6, r0                        |         r6 = r0;
    0x0000f038 mov r5, r2                        |         r5 = r2;
                                                 |         if (r0 == 0) {
    0x0000f03c beq 0xf124                        |             goto label_8;
                                                 |         }
                                                 | label_1:
    0x0000f040 ldr r3, [pc, 0x15c]               |         
    0x0000f044 ldr r3, [r7, r3]                  |         r3 = *((r7 + r3));
    0x0000f048 ldr r3, [r3]                      |         r3 = *(0xf1a0);
    0x0000f04c tst r3, 0x1000                    |         
                                                 |         if ((r3 & 0x1000) != 0) {
    0x0000f050 beq 0xf0c4                        |             
    0x0000f054 ldr r3, [pc, 0x14c]               |             r3 = *(0xf1a4);
    0x0000f058 ldr r3, [r7, r3]                  |             r3 = *((r7 + r3));
    0x0000f05c ldr r7, [r3]                      |             r7 = *(0xf1a4);
    0x0000f060 bl 0x58fc                         |             getpid ();
    0x0000f064 ldr r3, [pc, 0x140]               |             r3 = *(0xf1a8);
    0x0000f068 ldr r1, [pc, 0x140]               |             r1 = *(0xf1ac);
    0x0000f06c add r3, pc, r3                    |             r3 = pc + r3;
    0x0000f070 str r3, [sp]                      |             *(sp) = r3;
    0x0000f074 ldr r3, [pc, 0x138]               |             r3 = *(0xf1b0);
    0x0000f078 add r1, pc, r1                    |             r1 = pc + r1;
    0x0000f07c add r3, pc, r3                    |             r3 = pc + r3;
    0x0000f080 mov r2, r0                        |             r2 = r0;
    0x0000f084 mov r0, r7                        |             r0 = r7;
    0x0000f088 bl 0x5c50                         |             fprintf (r0, r1, r2, r3)
    0x0000f08c cmp r5, 0                         |             
                                                 |             if (r5 != 0) {
    0x0000f090 bne 0xf13c                        |                 goto label_9;
                                                 |             }
    0x0000f094 ldr r2, [pc, 0x11c]               |             r2 = *(0xf1b4);
    0x0000f098 add r2, pc, r2                    |             r2 = pc + r2;
    0x0000f09c mov r3, r2                        |             r3 = r2;
                                                 | label_3:
    0x0000f0a0 cmp r6, 0                         |             
                                                 |             if (r6 != 0) {
    0x0000f0a4 bne 0xf14c                        |                 goto label_10;
                                                 |             }
    0x0000f0a8 ldr r1, [pc, 0x10c]               |             r1 = *(0xf1b8);
    0x0000f0ac add r1, pc, r1                    |             r1 = pc + r1;
                                                 | label_4:
    0x0000f0b0 ldr r0, [pc, 0x108]               |             r0 = *(0xf1bc);
    0x0000f0b4 str r1, [sp]                      |             *(sp) = r1;
    0x0000f0b8 add r0, pc, r0                    |             r0 = pc + r0;
    0x0000f0bc mov r1, r4                        |             r1 = r4;
    0x0000f0c0 bl 0xee40                         |             fcn_0000ee40 ();
                                                 |         }
    0x0000f0c4 cmp r5, 0                         |         
                                                 |         if (r5 != 0) {
    0x0000f0c8 bne 0xf170                        |             goto label_11;
                                                 |         }
    0x0000f0cc mov r1, 0x3d                      |         r1 = 0x3d;
    0x0000f0d0 mov r0, r4                        |         r0 = r4;
    0x0000f0d4 bl 0x613c                         |         r0 = strchr (r0, r1);
    0x0000f0d8 cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x0000f0dc moveq r0, r4                      |             r0 = r4;
                                                 |         }
                                                 |         if (r0 == 0) {
    0x0000f0e0 beq 0xf194                        |             goto label_12;
                                                 |         }
    0x0000f0e4 add r2, sp, 0x14                  |         r2 += var_14h;
    0x0000f0e8 add r1, sp, 0x10                  |         r1 += ptr;
    0x0000f0ec mov r0, r4                        |         r0 = r4;
    0x0000f0f0 bl 0x5bcc                         |         r0 = fcn_00005bcc ();
    0x0000f0f4 cmp r0, 0                         |         
                                                 |         if (r0 == 0) {
    0x0000f0f8 beq 0xf158                        |             goto label_13;
                                                 |         }
                                                 | label_5:
    0x0000f0fc mov r4, 0                         |         r4 = 0;
                                                 | label_6:
    0x0000f100 ldr r0, [sp, 0x10]                |         r0 = ptr;
    0x0000f104 bl 0x6220                         |         free (r0);
    0x0000f108 ldr r0, [sp, 0x14]                |         r0 = var_14h;
    0x0000f10c bl 0x6220                         |         free (r0);
    0x0000f110 cmp r6, 0                         |         
    0x0000f114 bne 0xf024                        |         
                                                 |     } while (r6 != 0);
    0x0000f118 ldr r0, [sp, 0xc]                 |     r0 = var_ch;
    0x0000f11c bl 0x5854                         |     fcn_00005854 ();
    0x0000f120 b 0xf024                          |     goto label_0;
                                                 | label_8:
    0x0000f124 mov r1, r0                        |     r1 = r0;
    0x0000f128 add r0, sp, 0xc                   |     r0 += var_ch;
    0x0000f12c bl 0x5ad0                         |     r0 = fcn_00005ad0 ();
    0x0000f130 cmp r0, 0                         |     
                                                 |     if (r0 >= 0) {
    0x0000f134 bge 0xf040                        |         goto label_1;
                                                 |     }
    0x0000f138 b 0xf020                          |     goto label_2;
                                                 | label_9:
    0x0000f13c ldr r2, [pc, 0x80]                |     r2 = *(0xf1c0);
    0x0000f140 mov r3, r5                        |     r3 = r5;
    0x0000f144 add r2, pc, r2                    |     r2 = pc + r2;
    0x0000f148 b 0xf0a0                          |     goto label_3;
                                                 | label_10:
    0x0000f14c ldr r1, [pc, 0x74]                |     r1 = *(0xf1c4);
    0x0000f150 add r1, pc, r1                    |     r1 = pc + r1;
    0x0000f154 b 0xf0b0                          |     goto label_4;
                                                 | label_13:
    0x0000f158 ldr r4, [sp, 0x10]                |     r4 = ptr;
    0x0000f15c cmp r4, 0                         |     
                                                 |     if (r4 == 0) {
    0x0000f160 beq 0xf0fc                        |         goto label_5;
                                                 |     }
    0x0000f164 ldr r5, [sp, 0x14]                |     r5 = var_14h;
    0x0000f168 cmp r5, 0                         |     
                                                 |     if (r5 == 0) {
    0x0000f16c beq 0xf0fc                        |         goto label_5;
                                                 |     }
                                                 | label_11:
    0x0000f170 mov r2, r5                        |     r2 = r5;
    0x0000f174 mov r1, r4                        |     r1 = r4;
    0x0000f178 ldr r0, [sp, 0xc]                 |     r0 = var_ch;
    0x0000f17c bl 0x586c                         |     r0 = fcn_0000586c ();
    0x0000f180 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x0000f184 beq 0xf0fc                        |         goto label_5;
                                                 |     }
    0x0000f188 ldr r0, [r0, 0x14]                |     r0 = *((r0 + 0x14));
    0x0000f18c cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x0000f190 beq 0xf0fc                        |         goto label_5;
                                                 |     }
                                                 | label_12:
    0x0000f194 bl 0x5e48                         |     r0 = strdup (r0);
    0x0000f198 mov r4, r0                        |     r4 = r0;
    0x0000f19c b 0xf100                          |     goto label_6;
                                                 | }
    ; 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 @ 0xeecc */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.blkid_get_tag_value ()           | void blkid_get_tag_value (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_ch;
                                                 |     int32_t var_14h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x0000eecc ldr r3, [pc, 0x108]               |     r3 = *(0xefd8);
    0x0000eed0 push {r4, r5, r6, r7, lr}         |     
    0x0000eed4 mov r5, r2                        |     r5 = r2;
    0x0000eed8 ldr r2, [pc, 0x100]               |     r2 = *(0xefdc);
    0x0000eedc add r3, pc, r3                    |     r3 = pc + r3;
    0x0000eee0 sub sp, sp, 0x14                  |     
    0x0000eee4 str r0, [sp, 0xc]                 |     var_ch = r0;
    0x0000eee8 ldr r2, [r3, r2]                  |     
    0x0000eeec mov r4, r0                        |     r4 = r0;
    0x0000eef0 ldr r2, [r2]                      |     r2 = *(0xefd8);
    0x0000eef4 mov r6, r1                        |     r6 = r1;
    0x0000eef8 tst r2, 0x1000                    |     
                                                 |     if ((r2 & 0x1000) != 0) {
    0x0000eefc beq 0xef4c                        |         
    0x0000ef00 ldr r2, [pc, 0xdc]                |         r2 = *(0xefe0);
    0x0000ef04 ldr r3, [r3, r2]                  |         r3 = *((r3 + r2));
    0x0000ef08 ldr r7, [r3]                      |         r7 = *(r3);
    0x0000ef0c bl 0x58fc                         |         getpid ();
    0x0000ef10 ldr r3, [pc, 0xd0]                |         r3 = *(0xefe4);
    0x0000ef14 ldr r1, [pc, 0xd0]                |         r1 = *(0xefe8);
    0x0000ef18 add r3, pc, r3                    |         r3 = pc + r3;
    0x0000ef1c str r3, [sp]                      |         *(sp) = r3;
    0x0000ef20 ldr r3, [pc, 0xc8]                |         r3 = *(0xefec);
    0x0000ef24 add r1, pc, r1                    |         r1 = pc + r1;
    0x0000ef28 add r3, pc, r3                    |         r3 = pc + r3;
    0x0000ef2c mov r2, r0                        |         r2 = r0;
    0x0000ef30 mov r0, r7                        |         r0 = r7;
    0x0000ef34 bl 0x5c50                         |         fprintf (r0, r1, r2, r3)
    0x0000ef38 ldr r0, [pc, 0xb4]                |         r0 = *(0xeff0);
    0x0000ef3c mov r2, r5                        |         r2 = r5;
    0x0000ef40 mov r1, r6                        |         r1 = r6;
    0x0000ef44 add r0, pc, r0                    |         r0 = pc + r0;
    0x0000ef48 bl 0xee40                         |         fcn_0000ee40 ();
                                                 |     }
    0x0000ef4c cmp r5, 0                         |     
                                                 |     if (r5 != 0) {
    0x0000ef50 bne 0xef64                        |         goto label_5;
                                                 |     }
                                                 | label_2:
    0x0000ef54 mov r5, 0                         |     r5 = 0;
                                                 |     do {
                                                 | label_0:
    0x0000ef58 mov r0, r5                        |         r0 = r5;
    0x0000ef5c add sp, sp, 0x14                  |         
    0x0000ef60 pop {r4, r5, r6, r7, pc}          |         
                                                 | label_5:
    0x0000ef64 cmp r4, 0                         |         
                                                 |         if (r4 == 0) {
    0x0000ef68 beq 0xef9c                        |             goto label_6;
                                                 |         }
                                                 | label_1:
    0x0000ef6c mov r2, 3                         |         r2 = 3;
    0x0000ef70 mov r1, r5                        |         r1 = r5;
    0x0000ef74 ldr r0, [sp, 0xc]                 |         r0 = var_ch;
    0x0000ef78 bl 0x58cc                         |         r0 = fcn_000058cc ();
    0x0000ef7c cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x0000ef80 bne 0xefb4                        |             goto label_7;
                                                 |         }
                                                 | label_3:
    0x0000ef84 mov r5, 0                         |         r5 = 0;
                                                 | label_4:
    0x0000ef88 cmp r4, 0                         |         
    0x0000ef8c bne 0xef58                        |         
                                                 |     } while (r4 != 0);
    0x0000ef90 ldr r0, [sp, 0xc]                 |     r0 = var_ch;
    0x0000ef94 bl 0x5854                         |     fcn_00005854 ();
    0x0000ef98 b 0xef58                          |     goto label_0;
                                                 | label_6:
    0x0000ef9c mov r1, r4                        |     r1 = r4;
    0x0000efa0 add r0, sp, 0xc                   |     r0 += var_ch;
    0x0000efa4 bl 0x5ad0                         |     r0 = fcn_00005ad0 ();
    0x0000efa8 cmp r0, 0                         |     
                                                 |     if (r0 >= 0) {
    0x0000efac bge 0xef6c                        |         goto label_1;
                                                 |     }
    0x0000efb0 b 0xef54                          |     goto label_2;
                                                 | label_7:
    0x0000efb4 mov r1, r6                        |     r1 = r6;
    0x0000efb8 bl 0x1006c                        |     r0 = fcn_0001006c (r0, r1);
    0x0000efbc cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x0000efc0 beq 0xef84                        |         goto label_3;
                                                 |     }
    0x0000efc4 ldr r0, [r0, 0x14]                |     r0 = *((r0 + 0x14));
    0x0000efc8 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x0000efcc beq 0xef84                        |         goto label_3;
                                                 |     }
    0x0000efd0 bl 0x5e48                         |     r0 = strdup (r0);
    0x0000efd4 mov r5, r0                        |     r5 = r0;
    0x0000efd8 b 0xef88                          |     goto label_4;
                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x6538 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.blkid_init_debug ()                          | void blkid_init_debug (uint32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     char * * endptr;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     r0 = arg1;
    0x00006538 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x0000653c ldr r7, [pc, 0x314]                           |     r7 = *(0x6854);
    0x00006540 ldr r3, [pc, 0x314]                           |     r3 = *(0x6858);
    0x00006544 add r7, pc, r7                                |     r7 = pc + r7;
    0x00006548 ldr r4, [r7, r3]                              |     r4 = *(0x6854);
    0x0000654c sub sp, sp, 0x24                              |     
    0x00006550 ldr r8, [r4]                                  |     r8 = *(0x6854);
    0x00006554 cmp r8, 0                                     |     
                                                             |     if (r8 != 0) {
    0x00006558 bne 0x67f4                                    |         goto label_5;
                                                             |     }
    0x0000655c cmp r0, 0                                     |     
    0x00006560 mov r5, r0                                    |     r5 = r0;
                                                             |     if (r0 == 0) {
    0x00006564 bne 0x6578                                    |         
    0x00006568 ldr r0, [pc, 0x2f0]                           |         r0 = *(0x685c);
    0x0000656c add r0, pc, r0                                |         r0 = pc + r0;
    0x00006570 bl 0x58b4                                     |         r0 = getenv (r0);
    0x00006574 mov r8, r0                                    |         r8 = r0;
                                                             |     }
    0x00006578 ldr r6, [r4]                                  |     r6 = *(r4);
    0x0000657c ands r6, r6, 2                                |     r6 &= 2;
                                                             |     if (r6 != r6) {
    0x00006580 bne 0x666c                                    |         goto label_6;
                                                             |     }
    0x00006584 adds r3, r8, 0                                |     r3 = r8 + 0;
                                                             |     if (r3 == r8) {
    0x00006588 movne r3, 1                                   |         r3 = 1;
                                                             |     }
    0x0000658c cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00006590 movne r3, 0                                   |         r3 = 0;
                                                             |     }
    0x00006594 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00006598 beq 0x6668                                    |         goto label_7;
                                                             |     }
    0x0000659c add sb, sp, 0x1c                              |     sb += endptr;
    0x000065a0 mov r2, r6                                    |     r2 = r6;
    0x000065a4 mov r1, sb                                    |     r1 = sb;
    0x000065a8 mov r0, r8                                    |     r0 = r8;
    0x000065ac bl 0x5a4c                                     |     r0 = strtoul (r0, r1, r2);
    0x000065b0 mov r5, r0                                    |     r5 = r0;
    0x000065b4 ldr r0, [sp, 0x1c]                            |     r0 = endptr;
    0x000065b8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000065bc beq 0x6668                                    |         goto label_7;
                                                             |     }
    0x000065c0 ldrsb r3, [r0]                                |     r3 = *(r0);
    0x000065c4 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000065c8 beq 0x67fc                                    |         goto label_8;
                                                             |     }
    0x000065cc mov r0, r8                                    |     r0 = r8;
    0x000065d0 bl 0x5e48                                     |     r0 = strdup (r0);
    0x000065d4 subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 == r0) {
    0x000065d8 beq 0x6668                                    |         goto label_7;
                                                             |     }
    0x000065dc ldr r3, [pc, 0x280]                           |     r3 = *(0x6860);
    0x000065e0 ldr sl, [pc, 0x280]                           |     sl = *(0x00006868);
    0x000065e4 ldr fp, [pc, 0x280]                           |     fp = *(0x6868);
    0x000065e8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000065ec mov r0, r5                                    |     r0 = r5;
    0x000065f0 add sl, pc, sl                                |     sl = pc + sl;
    0x000065f4 str r3, [sp, 0xc]                             |     var_ch = r3;
                                                             |     do {
    0x000065f8 mov r2, sb                                    |         r2 = sb;
    0x000065fc ldr r1, [sp, 0xc]                             |         r1 = var_ch;
    0x00006600 bl 0x5770                                     |         r0 = strtok_r ();
    0x00006604 subs r3, r0, 0                                |         r3 = r0 - 0;
                                                             |         if (r3 == r0) {
    0x00006608 beq 0x665c                                    |             goto label_9;
                                                             |         }
    0x0000660c mov r8, 0                                     |         r8 = 0;
                                                             | label_0:
    0x00006610 ldr r1, [r8, sl]                              |         r1 = *((r8 + sl));
    0x00006614 add r2, sl, r8                                |         r2 = sl + r8;
    0x00006618 cmp r1, 0                                     |         
                                                             |         if (r1 != 0) {
    0x0000661c bne 0x6628                                    |             goto label_10;
                                                             |         }
                                                             | label_1:
    0x00006620 ldr r0, [sp, 0x1c]                            |         r0 = endptr;
    0x00006624 b 0x65f8                                      |         
                                                             |     } while (1);
                                                             | label_10:
    0x00006628 mov r0, r3                                    |     r0 = r3;
    0x0000662c str r2, [sp, 0x14]                            |     var_14h = r2;
    0x00006630 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x00006634 bl 0x5efc                                     |     strcmp (r0, r1);
    0x00006638 add r8, r8, 0xc                               |     r8 += 0xc;
    0x0000663c ldr r3, [sp, 0x10]                            |     r3 = var_10h;
    0x00006640 ldr r2, [sp, 0x14]                            |     r2 = var_14h;
    0x00006644 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00006648 bne 0x6610                                    |         goto label_0;
                                                             |     }
    0x0000664c ldr r3, [r2, 4]                               |     r3 = *((r2 + 4));
    0x00006650 orr r6, r6, r3                                |     r6 |= r3;
    0x00006654 cmp r6, fp                                    |     
                                                             |     if (r6 != fp) {
    0x00006658 bne 0x6620                                    |         goto label_1;
                                                             |     }
                                                             | label_9:
    0x0000665c mov r0, r5                                    |     r0 = r5;
    0x00006660 bl 0x6220                                     |     free (r0);
    0x00006664 mov r5, r6                                    |     r5 = r6;
                                                             |     do {
                                                             | label_7:
    0x00006668 str r5, [r4]                                  |         *(r4) = r5;
                                                             | label_6:
    0x0000666c ldr r3, [r4]                                  |         r3 = *(r4);
    0x00006670 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00006674 moveq r3, 2                                   |             r3 = 2;
                                                             |         }
                                                             |         if (r3 != 0) {
    0x00006678 streq r3, [r4]                                |             *(r4) = r3;
                                                             |         }
                                                             |         if (r3 != 0) {
    0x0000667c beq 0x67a8                                    |             
    0x00006680 bl 0x59c8                                     |             r0 = getuid ();
    0x00006684 mov r5, r0                                    |             r5 = r0;
    0x00006688 bl 0x57f4                                     |             r0 = geteuid ();
    0x0000668c cmp r5, r0                                    |             
                                                             |             if (r5 == r0) {
    0x00006690 beq 0x6818                                    |                 goto label_11;
                                                             |             }
                                                             | label_2:
    0x00006694 ldr r3, [r4]                                  |             r3 = *(r4);
    0x00006698 orr r3, r3, 0x1000000                         |             r3 |= 0x1000000;
    0x0000669c str r3, [r4]                                  |             *(r4) = r3;
    0x000066a0 ldr r3, [pc, 0x1c8]                           |             r3 = *(0x686c);
    0x000066a4 ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x000066a8 ldr r5, [r3]                                  |             r5 = *(0x686c);
    0x000066ac bl 0x58fc                                     |             getpid ();
    0x000066b0 ldr r3, [pc, 0x1bc]                           |             r3 = *(0x6870);
    0x000066b4 ldr r1, [pc, 0x1bc]                           |             r1 = *(0x6874);
    0x000066b8 add r3, pc, r3                                |             r3 = pc + r3;
    0x000066bc add r1, pc, r1                                |             r1 = pc + r1;
    0x000066c0 mov r2, r0                                    |             r2 = r0;
    0x000066c4 mov r0, r5                                    |             r0 = r5;
    0x000066c8 bl 0x5c50                                     |             fprintf (r0, r1, r2, r3)
                                                             | label_3:
    0x000066cc ldr r3, [r4]                                  |             r3 = *(r4);
    0x000066d0 orr r3, r3, 2                                 |             r3 |= 2;
    0x000066d4 str r3, [r4]                                  |             *(r4) = r3;
    0x000066d8 sub r3, r3, 2                                 |             r3 -= 2;
    0x000066dc cmp r3, 1                                     |             
                                                             |             if (r3 < 1) {
    0x000066e0 bls 0x67a8                                    |                 goto label_12;
                                                             |             }
    0x000066e4 mov r3, 0                                     |             r3 = 0;
    0x000066e8 add r1, sp, 0x20                              |             r1 += var_20h;
    0x000066ec str r3, [r1, -4]!                             |             *((r1 -= 4)) = r3;
    0x000066f0 add r0, sp, 0x18                              |             r0 += var_18h;
    0x000066f4 str r3, [sp, 0x18]                            |             var_18h = r3;
    0x000066f8 bl 0x5e30                                     |             fcn_00005e30 ();
    0x000066fc ldr r3, [r4]                                  |             r3 = *(r4);
    0x00006700 tst r3, 2                                     |             
                                                             |             if ((r3 & 2) != 0) {
    0x00006704 beq 0x6750                                    |                 
    0x00006708 ldr r3, [pc, 0x160]                           |                 r3 = *(0x686c);
    0x0000670c ldr r3, [r7, r3]                              |                 r3 = *((r7 + r3));
    0x00006710 ldr r5, [r3]                                  |                 r5 = *(0x686c);
    0x00006714 bl 0x58fc                                     |                 getpid ();
    0x00006718 ldr r3, [pc, 0x15c]                           |                 r3 = *(0x6878);
    0x0000671c ldr r1, [pc, 0x15c]                           |                 r1 = *(0x687c);
    0x00006720 add r3, pc, r3                                |                 r3 = pc + r3;
    0x00006724 str r3, [sp]                                  |                 *(sp) = r3;
    0x00006728 ldr r3, [pc, 0x154]                           |                 r3 = *(0x6880);
    0x0000672c add r1, pc, r1                                |                 r1 = pc + r1;
    0x00006730 add r3, pc, r3                                |                 r3 = pc + r3;
    0x00006734 mov r2, r0                                    |                 r2 = r0;
    0x00006738 mov r0, r5                                    |                 r0 = r5;
    0x0000673c bl 0x5c50                                     |                 fprintf (r0, r1, r2, r3)
    0x00006740 ldr r0, [pc, 0x140]                           |                 r0 = *(0x6884);
    0x00006744 ldr r1, [r4]                                  |                 r1 = *(r4);
    0x00006748 add r0, pc, r0                                |                 r0 = pc + r0;
    0x0000674c bl 0x64ac                                     |                 fcn_000064ac ();
                                                             |             }
    0x00006750 ldr r3, [r4]                                  |             r3 = *(r4);
    0x00006754 tst r3, 2                                     |             
                                                             |             if ((r3 & 2) == 0) {
    0x00006758 beq 0x67a8                                    |                 goto label_12;
                                                             |             }
    0x0000675c ldr r3, [pc, 0x10c]                           |             r3 = *(0x686c);
    0x00006760 ldr r3, [r7, r3]                              |             r3 = *((r7 + r3));
    0x00006764 ldr r5, [r3]                                  |             r5 = *(0x686c);
    0x00006768 bl 0x58fc                                     |             getpid ();
    0x0000676c ldr r3, [pc, 0x118]                           |             r3 = *(0x6888);
    0x00006770 ldr r1, [pc, 0x118]                           |             r1 = *(0x688c);
    0x00006774 add r3, pc, r3                                |             r3 = pc + r3;
    0x00006778 str r3, [sp]                                  |             *(sp) = r3;
    0x0000677c ldr r3, [pc, 0x110]                           |             r3 = *(0x6890);
    0x00006780 add r1, pc, r1                                |             r1 = pc + r1;
    0x00006784 add r3, pc, r3                                |             r3 = pc + r3;
    0x00006788 mov r2, r0                                    |             r2 = r0;
    0x0000678c mov r0, r5                                    |             r0 = r5;
    0x00006790 bl 0x5c50                                     |             fprintf (r0, r1, r2, r3)
    0x00006794 ldr r0, [pc, 0xfc]                            |             r0 = *(0x6894);
    0x00006798 ldr r2, [sp, 0x1c]                            |             r2 = endptr;
    0x0000679c ldr r1, [sp, 0x18]                            |             r1 = var_18h;
    0x000067a0 add r0, pc, r0                                |             r0 = pc + r0;
    0x000067a4 bl 0x64ac                                     |             fcn_000064ac ();
                                                             |         }
                                                             | label_12:
    0x000067a8 ldr r3, [r4]                                  |         r3 = *(r4);
    0x000067ac tst r3, 1                                     |         
                                                             |         if ((r3 & 1) != 0) {
    0x000067b0 beq 0x67f4                                    |             
    0x000067b4 ldr r3, [pc, 0xb4]                            |             r3 = *(0x686c);
    0x000067b8 ldr r2, [pc, 0xdc]                            |             r2 = *(0x6898);
    0x000067bc ldr r5, [r7, r3]                              |             r5 = *((r7 + r3));
    0x000067c0 ldr r1, [pc, 0xd8]                            |             r1 = "Qq";
    0x000067c4 add r2, pc, r2                                |             r2 = pc + r2;
    0x000067c8 add r1, pc, r1                                |             r1 = pc + r1;
    0x000067cc ldr r0, [r5]                                  |             r0 = *(r5);
    0x000067d0 bl 0x5c50                                     |             fprintf (r0, "Qq", r2, r3, r4, r5)
    0x000067d4 ldr r4, [pc, 0xc8]                            |             
    0x000067d8 ldr r6, [pc, 0xc8]                            |             r6 = *(0x68a4);
    0x000067dc add r4, pc, r4                                |             r4 = pc + r4;
    0x000067e0 add r4, r4, 0xc                               |             r4 = 0x68ac;
    0x000067e4 add r6, pc, r6                                |             r6 = pc + r6;
                                                             | label_4:
    0x000067e8 ldr r2, [r4, -0xc]                            |             r2 = *((r4 - 0xc));
    0x000067ec cmp r2, 0                                     |             
                                                             |             if (r2 != 0) {
    0x000067f0 bne 0x6830                                    |                 goto label_13;
                                                             |             }
                                                             |         }
                                                             | label_5:
    0x000067f4 add sp, sp, 0x24                              |         
    0x000067f8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_8:
    0x000067fc ldr r1, [pc, 0xa8]                            |         r1 = *(0x68a8);
    0x00006800 add r1, pc, r1                                |         r1 = pc + r1;
    0x00006804 bl 0x5efc                                     |         strcmp (r0, r1);
    0x00006808 ldr r3, [pc, 0x5c]                            |         r3 = *(0x6868);
    0x0000680c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00006810 moveq r5, r3                                  |             r5 = r3;
                                                             |         }
    0x00006814 b 0x6668                                      |         
                                                             |     } while (1);
                                                             | label_11:
    0x00006818 bl 0x5788                                     |     r0 = getgid ();
    0x0000681c mov r5, r0                                    |     r5 = r0;
    0x00006820 bl 0x58d8                                     |     r0 = getegid ();
    0x00006824 cmp r5, r0                                    |     
                                                             |     if (r5 != r0) {
    0x00006828 bne 0x6694                                    |         goto label_2;
                                                             |     }
    0x0000682c b 0x66cc                                      |     goto label_3;
                                                             | label_13:
    0x00006830 ldr r3, [r4, -4]                              |     r3 = *((r4 - 4));
    0x00006834 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00006838 beq 0x6850                                    |         
    0x0000683c str r3, [sp]                                  |         *(sp) = r3;
    0x00006840 mov r1, r6                                    |         r1 = r6;
    0x00006844 ldr r3, [r4, -8]                              |         r3 = *((r4 - 8));
    0x00006848 ldr r0, [r5]                                  |         r0 = *(r5);
    0x0000684c bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
                                                             |     }
    0x00006850 add r4, r4, 0xc                               |     r4 += 0xc;
    0x00006854 b 0x67e8                                      |     goto label_4;
                                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xad08 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.blkid_new_probe ()                   | void blkid_new_probe () {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_8h;
    0x0000ad08 push {r0, r1, r4, r5, r6, lr}         |     
    0x0000ad0c ldr r5, [pc, 0xec]                    |     r5 = *(0xadfc);
    0x0000ad10 mov r0, 0                             |     r0 = 0;
    0x0000ad14 bl 0x5ce0                             |     fcn_00005ce0 ();
    0x0000ad18 mov r1, 0xc0                          |     r1 = 0xc0;
    0x0000ad1c mov r0, 1                             |     r0 = 1;
    0x0000ad20 bl 0x5bf0                             |     calloc (r0, r1);
    0x0000ad24 add r5, pc, r5                        |     r5 = pc + r5;
    0x0000ad28 subs r4, r0, 0                        |     r4 = r0 - 0;
                                                     |     if (r4 != r0) {
    0x0000ad2c beq 0xadf4                            |         
    0x0000ad30 ldr r3, [pc, 0xcc]                    |         
    0x0000ad34 ldr r3, [r5, r3]                      |         r3 = *((r5 + r3));
    0x0000ad38 ldr r3, [r3]                          |         r3 = *(0xae00);
    0x0000ad3c tst r3, 0x100                         |         
                                                     |         if ((r3 & 0x100) != 0) {
    0x0000ad40 beq 0xad88                            |             
    0x0000ad44 ldr r3, [pc, 0xbc]                    |             r3 = *(0xae04);
    0x0000ad48 ldr r3, [r5, r3]                      |             r3 = *((r5 + r3));
    0x0000ad4c ldr r6, [r3]                          |             r6 = *(0xae04);
    0x0000ad50 bl 0x58fc                             |             getpid ();
    0x0000ad54 ldr r3, [pc, 0xb0]                    |             r3 = *(0xae08);
    0x0000ad58 ldr r1, [pc, 0xb0]                    |             r1 = *(0xae0c);
    0x0000ad5c add r3, pc, r3                        |             r3 = pc + r3;
    0x0000ad60 str r3, [sp]                          |             *(sp) = r3;
    0x0000ad64 ldr r3, [pc, 0xa8]                    |             r3 = *(0xae10);
    0x0000ad68 add r1, pc, r1                        |             r1 = pc + r1;
    0x0000ad6c add r3, pc, r3                        |             r3 = pc + r3;
    0x0000ad70 mov r2, r0                            |             r2 = r0;
    0x0000ad74 mov r0, r6                            |             r0 = r6;
    0x0000ad78 bl 0x5c50                             |             fprintf (r0, r1, r2, r3)
    0x0000ad7c ldr r0, [pc, 0x94]                    |             r0 = *(0xae14);
    0x0000ad80 add r0, pc, r0                        |             r0 = pc + r0;
    0x0000ad84 bl 0xac7c                             |             fcn_0000ac7c ();
                                                     |         }
    0x0000ad88 ldr r3, [pc, 0x8c]                    |         
    0x0000ad8c ldr r3, [r5, r3]                      |         r3 = *((r5 + r3));
    0x0000ad90 str r3, [r4, 0x54]                    |         *((r4 + 0x54)) = r3;
    0x0000ad94 ldr r2, [r3, 8]                       |         r2 = *(0xae20);
    0x0000ad98 ldr r3, [r3, 0xc]                     |         r3 = *(0xae24);
    0x0000ad9c str r2, [r4, 0x5c]                    |         *((r4 + 0x5c)) = r2;
    0x0000ada0 str r3, [r4, 0x58]                    |         *((r4 + 0x58)) = r3;
    0x0000ada4 ldr r3, [pc, 0x74]                    |         
    0x0000ada8 ldr r3, [r5, r3]                      |         r3 = *((r5 + r3));
    0x0000adac ldr r2, [r3, 8]                       |         r2 = *(0xae24);
    0x0000adb0 str r3, [r4, 0x70]                    |         *((r4 + 0x70)) = r3;
    0x0000adb4 ldr r3, [r3, 0xc]                     |         r3 = *(0xae28);
    0x0000adb8 str r2, [r4, 0x78]                    |         *((r4 + 0x78)) = r2;
    0x0000adbc str r3, [r4, 0x74]                    |         *((r4 + 0x74)) = r3;
    0x0000adc0 ldr r3, [pc, 0x5c]                    |         
    0x0000adc4 ldr r3, [r5, r3]                      |         r3 = *((r5 + r3));
    0x0000adc8 ldr r2, [r3, 8]                       |         r2 = *(0xae28);
    0x0000adcc str r3, [r4, 0x8c]                    |         *((r4 + 0x8c)) = r3;
    0x0000add0 ldr r3, [r3, 0xc]                     |         r3 = *(0xae2c);
    0x0000add4 str r2, [r4, 0x94]                    |         *((r4 + 0x94)) = r2;
    0x0000add8 str r3, [r4, 0x90]                    |         *((r4 + 0x90)) = r3;
    0x0000addc add r3, r4, 0x4c                      |         r3 = r4 + 0x4c;
    0x0000ade0 str r3, [r4, 0x4c]                    |         *((r4 + 0x4c)) = r3;
    0x0000ade4 str r3, [r4, 0x50]                    |         *((r4 + 0x50)) = r3;
    0x0000ade8 add r3, r4, 0xac                      |         r3 = r4 + 0xac;
    0x0000adec str r3, [r4, 0xac]                    |         *((r4 + 0xac)) = r3;
    0x0000adf0 str r3, [r4, 0xb0]                    |         *((r4 + 0xb0)) = r3;
                                                     |     }
    0x0000adf4 mov r0, r4                            |     r0 = r4;
    0x0000adf8 add sp, sp, 8                         |     
    0x0000adfc pop {r4, r5, r6, pc}                  |     
                                                     | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xda44 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.blkid_new_probe_from_filename ()         | void blkid_new_probe_from_filename () {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_0h_2;
                                                         |     int32_t var_ch;
    0x0000da44 push {r0, r1, r2, r4, r5, lr}             |     
    0x0000da48 mov r1, 0x80000                           |     r1 = 0x80000;
    0x0000da4c bl 0x5e9c                                 |     r0 = open64 ();
    0x0000da50 subs r5, r0, 0                            |     r5 = r0 - 0;
                                                         |     if (r5 >= r0) {
    0x0000da54 blt 0xda9c                                |         
    0x0000da58 bl 0x5c5c                                 |         r0 = fcn_00005c5c ();
    0x0000da5c subs r4, r0, 0                            |         r4 = r0 - 0;
                                                         |         if (r4 != r0) {
    0x0000da60 beq 0xda8c                                |             
    0x0000da64 mov r3, 0                                 |             r3 = 0;
    0x0000da68 mov r2, 0                                 |             r2 = 0;
    0x0000da6c strd r2, r3, [sp]                         |             __asm ("strd r2, r3, [sp]");
    0x0000da70 mov r1, r5                                |             r1 = r5;
    0x0000da74 bl 0x5fc8                                 |             r0 = fcn_00005fc8 ();
    0x0000da78 cmp r0, 0                                 |             
                                                         |             if (r0 != 0) {
    0x0000da7c ldreq r3, [r4, 0x30]                      |                 r3 = *((r4 + 0x30));
                                                         |             }
                                                         |             if (r0 != 0) {
    0x0000da80 orreq r3, r3, 2                           |                 r3 |= 2;
                                                         |             }
                                                         |             if (r0 != 0) {
    0x0000da84 streq r3, [r4, 0x30]                      |                 *((r4 + 0x30)) = r3;
                                                         |             }
                                                         |             if (r0 == 0) {
    0x0000da88 beq 0xdaa0                                |                 goto label_0;
                                                         |             }
                                                         |         }
    0x0000da8c mov r0, r5                                |         r0 = r5;
    0x0000da90 bl 0x61e4                                 |         close (r0);
    0x0000da94 mov r0, r4                                |         r0 = r4;
    0x0000da98 bl 0x5cbc                                 |         fcn_00005cbc ();
                                                         |     }
    0x0000da9c mov r4, 0                                 |     r4 = 0;
                                                         | label_0:
    0x0000daa0 mov r0, r4                                |     r0 = r4;
    0x0000daa4 add sp, sp, 0xc                           |     
    0x0000daa8 pop {r4, r5, pc}                          |     
                                                         | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x10454 */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.blkid_parse_tag_string ()                                | void blkid_parse_tag_string (int32_t arg1, int32_t arg2) {
                                                                         |     int32_t var_0h;
                                                                         |     int32_t var_ch;
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
    0x00010454 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00010458 ldr r8, [pc, 0x184]                                       |     r8 = *(0x105e0);
    0x0001045c ldr r3, [pc, 0x184]                                       |     r3 = *(0x105e4);
    0x00010460 add r8, pc, r8                                            |     r8 = pc + r8;
    0x00010464 ldr sb, [r8, r3]                                          |     sb = *(0x105e0);
    0x00010468 mov r6, r0                                                |     r6 = r0;
    0x0001046c ldr r3, [sb]                                              |     r3 = *(0x105e0);
    0x00010470 mov r4, r1                                                |     r4 = r1;
    0x00010474 tst r3, 0x1000                                            |     
    0x00010478 mov sl, r2                                                |     sl = r2;
                                                                         |     if ((r3 & 0x1000) != 0) {
    0x0001047c beq 0x104c8                                               |         
    0x00010480 ldr r3, [pc, 0x164]                                       |         r3 = *(0x105e8);
    0x00010484 ldr r3, [r8, r3]                                          |         r3 = *((r8 + r3));
    0x00010488 ldr r5, [r3]                                              |         r5 = *(0x105e8);
    0x0001048c bl 0x58fc                                                 |         getpid ();
    0x00010490 ldr r3, [pc, 0x158]                                       |         r3 = *(0x105ec);
    0x00010494 ldr r1, [pc, 0x158]                                       |         r1 = *(0x105f0);
    0x00010498 add r3, pc, r3                                            |         r3 = pc + r3;
    0x0001049c str r3, [sp]                                              |         *(sp) = r3;
    0x000104a0 ldr r3, [pc, 0x150]                                       |         r3 = *(0x105f4);
    0x000104a4 add r1, pc, r1                                            |         r1 = pc + r1;
    0x000104a8 add r3, pc, r3                                            |         r3 = pc + r3;
    0x000104ac mov r2, r0                                                |         r2 = r0;
    0x000104b0 mov r0, r5                                                |         r0 = r5;
    0x000104b4 bl 0x5c50                                                 |         fprintf (r0, r1, r2, r3)
    0x000104b8 ldr r0, [pc, 0x13c]                                       |         r0 = *(0x105f8);
    0x000104bc mov r1, r6                                                |         r1 = r6;
    0x000104c0 add r0, pc, r0                                            |         r0 = pc + r0;
    0x000104c4 bl 0xfd80                                                 |         fcn_0000fd80 ();
                                                                         |     }
    0x000104c8 cmp r6, 0                                                 |     
    0x000104cc bne 0x104d8                                               |     
                                                                         |     while (r5 == r0) {
                                                                         | label_0:
    0x000104d0 mvn r0, 0                                                 |         r0 = ~0;
    0x000104d4 b 0x10570                                                 |         goto label_1;
    0x000104d8 mov r1, 0x3d                                              |         r1 = 0x3d;
    0x000104dc mov r0, r6                                                |         r0 = r6;
    0x000104e0 bl 0x613c                                                 |         r0 = strchr (r0, r1);
    0x000104e4 subs r5, r0, 0                                            |         r5 = r0 - 0;
    0x000104e8 beq 0x104d0                                               |         
                                                                         |     }
    0x000104ec mov r0, r6                                                |     r0 = r6;
    0x000104f0 bl 0x5e48                                                 |     r0 = strdup (r0);
    0x000104f4 subs r7, r0, 0                                            |     r7 = r0 - 0;
                                                                         |     if (r7 == r0) {
    0x000104f8 beq 0x104d0                                               |         goto label_0;
                                                                         |     }
    0x000104fc sub r0, r5, r6                                            |     r0 = r5 - r6;
    0x00010500 add r5, r7, r0                                            |     r5 = r7 + r0;
    0x00010504 mov fp, 0                                                 |     
    0x00010508 strb fp, [r7, r0]                                         |     *((r7 + r0)) = fp;
    0x0001050c ldrsb r1, [r5, 1]                                         |     r1 = *((r5 + 1));
    0x00010510 cmp r1, 0x27                                              |     
    0x00010514 cmpne r1, 0x22                                            |     __asm ("cmpne r1, 0x22");
                                                                         |     if (r1 == 0x27) {
    0x00010518 addne r5, r5, 1                                           |         r5++;
                                                                         |     }
                                                                         |     if (r1 == 0x27) {
    0x0001051c bne 0x10538                                               |         
    0x00010520 add r5, r5, 2                                             |         r5 += 2;
    0x00010524 mov r0, r5                                                |         r0 = r5;
    0x00010528 bl 0x5bc0                                                 |         r0 = strrchr (r0, r1);
    0x0001052c cmp r0, 0                                                 |         
                                                                         |         if (r0 == 0) {
    0x00010530 beq 0x10584                                               |             goto label_2;
                                                                         |         }
    0x00010534 strb fp, [r0]                                             |         *(r0) = fp;
                                                                         |     }
    0x00010538 cmp sl, 0                                                 |     
                                                                         |     if (sl != 0) {
    0x0001053c beq 0x10560                                               |         
    0x00010540 ldrsb r3, [r5]                                            |         r3 = *(r5);
    0x00010544 cmp r3, 0                                                 |         
                                                                         |         if (r3 == 0) {
    0x00010548 beq 0x10584                                               |             goto label_2;
                                                                         |         }
    0x0001054c mov r0, r5                                                |         r0 = r5;
    0x00010550 bl 0x5e48                                                 |         r0 = strdup (r0);
    0x00010554 cmp r0, 0                                                 |         
                                                                         |         if (r0 == 0) {
    0x00010558 beq 0x10584                                               |             goto label_2;
                                                                         |         }
    0x0001055c str r0, [sl]                                              |         *(sl) = r0;
                                                                         |     }
    0x00010560 cmp r4, 0                                                 |     
                                                                         |     if (r4 == 0) {
    0x00010564 beq 0x10578                                               |         goto label_3;
                                                                         |     }
    0x00010568 str r7, [r4]                                              |     *(r4) = r7;
                                                                         |     do {
    0x0001056c mov r0, 0                                                 |         r0 = 0;
                                                                         | label_1:
    0x00010570 add sp, sp, 0xc                                           |         
    0x00010574 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                  |         
                                                                         | label_3:
    0x00010578 mov r0, r7                                                |         r0 = r7;
    0x0001057c bl 0x6220                                                 |         free (r0);
    0x00010580 b 0x1056c                                                 |         
                                                                         |     } while (1);
                                                                         | label_2:
    0x00010584 ldr r3, [sb]                                              |     r3 = *(sb);
    0x00010588 tst r3, 0x1000                                            |     
                                                                         |     if ((r3 & 0x1000) != 0) {
    0x0001058c beq 0x105d8                                               |         
    0x00010590 ldr r3, [pc, 0x54]                                        |         r3 = *(0x105e8);
    0x00010594 ldr r3, [r8, r3]                                          |         r3 = *((r8 + r3));
    0x00010598 ldr r4, [r3]                                              |         r4 = *(0x105e8);
    0x0001059c bl 0x58fc                                                 |         getpid ();
    0x000105a0 ldr r3, [pc, 0x58]                                        |         r3 = *(0x105fc);
    0x000105a4 ldr r1, [pc, 0x58]                                        |         r1 = *(0x10600);
    0x000105a8 add r3, pc, r3                                            |         r3 = pc + r3;
    0x000105ac str r3, [sp]                                              |         *(sp) = r3;
    0x000105b0 ldr r3, [pc, 0x50]                                        |         r3 = *(0x10604);
    0x000105b4 add r1, pc, r1                                            |         r1 = pc + r1;
    0x000105b8 add r3, pc, r3                                            |         r3 = pc + r3;
    0x000105bc mov r2, r0                                                |         r2 = r0;
    0x000105c0 mov r0, r4                                                |         r0 = r4;
    0x000105c4 bl 0x5c50                                                 |         fprintf (r0, r1, r2, r3)
    0x000105c8 ldr r0, [pc, 0x3c]                                        |         r0 = *(0x10608);
    0x000105cc mov r1, r6                                                |         r1 = r6;
    0x000105d0 add r0, pc, r0                                            |         r0 = pc + r0;
    0x000105d4 bl 0xfd80                                                 |         fcn_0000fd80 ();
                                                                         |     }
    0x000105d8 mov r0, r7                                                |     r0 = r7;
    0x000105dc bl 0x6220                                                 |     free (r0);
    0x000105e0 b 0x104d0                                                 |     goto label_0;
                                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x14cec */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.blkid_partlist_devno_to_partition ()         | void blkid_partlist_devno_to_partition (char * str, int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     void * ptr;
                                                             |     int32_t var_10h;
                                                             |     char * * endptr;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_18h_2;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_20h_2;
                                                             |     char * * var_28h;
                                                             |     int32_t var_2ch;
                                                             |     r0 = arg1;
    0x00014cec push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00014cf0 ldr r7, [pc, 0x3e4]                           |     r7 = *(0x150d8);
    0x00014cf4 mov r5, r3                                    |     r5 = r3;
    0x00014cf8 ldr r3, [pc, 0x3e0]                           |     r3 = *(0x150dc);
    0x00014cfc add r7, pc, r7                                |     r7 = pc + r7;
    0x00014d00 ldr sb, [r7, r3]                              |     sb = *(0x150d8);
    0x00014d04 sub sp, sp, 0x2c                              |     
    0x00014d08 ldr r3, [sb]                                  |     r3 = *(0x150d8);
    0x00014d0c mov sl, r0                                    |     sl = r0;
    0x00014d10 tst r3, 0x100                                 |     
    0x00014d14 mov r4, r2                                    |     r4 = r2;
                                                             |     if ((r3 & 0x100) != 0) {
    0x00014d18 beq 0x14d68                                   |         
    0x00014d1c ldr r3, [pc, 0x3c0]                           |         r3 = *(0x150e0);
    0x00014d20 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00014d24 ldr r6, [r3]                                  |         r6 = *(0x150e0);
    0x00014d28 bl 0x58fc                                     |         getpid ();
    0x00014d2c ldr r3, [pc, 0x3b4]                           |         r3 = *(0x150e4);
    0x00014d30 ldr r1, [pc, 0x3b4]                           |         r1 = *(0x150e8);
    0x00014d34 add r3, pc, r3                                |         r3 = pc + r3;
    0x00014d38 str r3, [sp]                                  |         *(sp) = r3;
    0x00014d3c ldr r3, [pc, 0x3ac]                           |         r3 = *(0x150ec);
    0x00014d40 add r1, pc, r1                                |         r1 = pc + r1;
    0x00014d44 add r3, pc, r3                                |         r3 = pc + r3;
    0x00014d48 mov r2, r0                                    |         r2 = r0;
    0x00014d4c mov r0, r6                                    |         r0 = r6;
    0x00014d50 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x00014d54 ldr r0, [pc, 0x398]                           |         r0 = *(0x150f0);
    0x00014d58 mov r2, r4                                    |         r2 = r4;
    0x00014d5c mov r3, r5                                    |         r3 = r5;
    0x00014d60 add r0, pc, r0                                |         r0 = pc + r0;
    0x00014d64 bl 0x13aa4                                    |         fcn_00013aa4 ();
                                                             |     }
    0x00014d68 mov r3, 0                                     |     r3 = 0;
    0x00014d6c mov r0, r4                                    |     r0 = r4;
    0x00014d70 mov r2, r3                                    |     r2 = r3;
    0x00014d74 mov r1, r5                                    |     r1 = r5;
    0x00014d78 bl 0x34cb8                                    |     r0 = fcn_00034cb8 (r0, r1);
    0x00014d7c subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 != r0) {
    0x00014d80 bne 0x14de0                                   |         goto label_7;
                                                             |     }
    0x00014d84 ldr r3, [sb]                                  |     r3 = *(sb);
    0x00014d88 tst r3, 0x100                                 |     
    0x00014d8c bne 0x14d98                                   |     
                                                             |     while (1) {
                                                             | label_0:
    0x00014d90 mov r8, 0                                     |         r8 = 0;
    0x00014d94 b 0x14fa8                                     |         goto label_4;
    0x00014d98 ldr r3, [pc, 0x344]                           |         r3 = *(0x150e0);
    0x00014d9c ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00014da0 ldr r5, [r3]                                  |         r5 = *(0x150e0);
    0x00014da4 bl 0x58fc                                     |         getpid ();
    0x00014da8 ldr r3, [pc, 0x348]                           |         r3 = *(0x150f4);
    0x00014dac ldr r1, [pc, 0x348]                           |         r1 = *(0x150f8);
    0x00014db0 add r3, pc, r3                                |         r3 = pc + r3;
    0x00014db4 str r3, [sp]                                  |         *(sp) = r3;
    0x00014db8 ldr r3, [pc, 0x340]                           |         r3 = *(0x150fc);
    0x00014dbc add r1, pc, r1                                |         r1 = pc + r1;
    0x00014dc0 add r3, pc, r3                                |         r3 = pc + r3;
    0x00014dc4 mov r2, r0                                    |         r2 = r0;
    0x00014dc8 mov r0, r5                                    |         r0 = r5;
    0x00014dcc bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x00014dd0 ldr r0, [pc, 0x32c]                           |         r0 = *(0x15100);
    0x00014dd4 add r0, pc, r0                                |         r0 = pc + r0;
                                                             | label_3:
    0x00014dd8 bl 0x13aa4                                    |         fcn_00013aa4 ();
    0x00014ddc b 0x14d90                                     |         
                                                             |     }
                                                             | label_7:
    0x00014de0 ldr r2, [pc, 0x320]                           |     r2 = *(0x15104);
    0x00014de4 add r1, sp, 0x20                              |     r1 += var_20h;
    0x00014de8 add r2, pc, r2                                |     r2 = pc + r2;
    0x00014dec bl 0x339ec                                    |     r0 = fcn_000339ec (r0, r1);
    0x00014df0 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 == r0) {
    0x00014df4 movne r5, 0                                   |         r5 = 0;
                                                             |     }
                                                             |     if (r6 == r0) {
    0x00014df8 bne 0x14ed0                                   |         
    0x00014dfc ldr r2, [pc, 0x308]                           |         r2 = *(0x15108);
    0x00014e00 add r1, sp, 0x18                              |         r1 += var_18h;
    0x00014e04 add r2, pc, r2                                |         r2 = pc + r2;
    0x00014e08 mov r0, r4                                    |         r0 = r4;
    0x00014e0c bl 0x339ec                                    |         r0 = fcn_000339ec (r0, r1);
    0x00014e10 subs r5, r0, 0                                |         r5 = r0 - 0;
                                                             |         if (r5 != r0) {
    0x00014e14 moveq r6, r5                                  |             r6 = r5;
                                                             |         }
                                                             |         if (r5 == r0) {
    0x00014e18 beq 0x14ed0                                   |             goto label_8;
                                                             |         }
    0x00014e1c ldr r2, [pc, 0x2ec]                           |         r2 = *(0x1510c);
    0x00014e20 add r1, sp, 0x28                              |         r1 += var_28h;
    0x00014e24 str r6, [r1, -0x1c]!                          |         *((r1 -= 0x1c)) = r6;
    0x00014e28 add r2, pc, r2                                |         r2 = pc + r2;
    0x00014e2c mov r0, r4                                    |         r0 = r4;
    0x00014e30 bl 0x336d0                                    |         fcn_000336d0 (r0);
    0x00014e34 ldr r3, [sp, 0xc]                             |         r3 = ptr;
    0x00014e38 cmp r3, 0                                     |         
    0x00014e3c str r3, [sp, 0x10]                            |         var_10h = r3;
                                                             |         if (r3 != 0) {
    0x00014e40 beq 0x14ebc                                   |             
    0x00014e44 ldr r1, [pc, 0x2c8]                           |             r1 = *(0x15110);
    0x00014e48 add r0, sp, 0x10                              |             r0 += var_10h;
    0x00014e4c add r1, pc, r1                                |             r1 = pc + r1;
    0x00014e50 bl 0x5fb0                                     |             strsep ();
    0x00014e54 subs fp, r0, 0                                |             
                                                             |             if (fp == var_10h) {
    0x00014e58 beq 0x14ebc                                   |                 goto label_9;
                                                             |             }
    0x00014e5c ldr r1, [pc, 0x2b4]                           |             r1 = *(0x15114);
    0x00014e60 mov r2, 4                                     |             r2 = 4;
    0x00014e64 add r1, pc, r1                                |             r1 = pc + r1;
    0x00014e68 bl 0x5b0c                                     |             strncasecmp (r0, r1, r2);
    0x00014e6c subs r8, r0, 0                                |             r8 -= var_10h;
                                                             |             if (r8 != var_10h) {
    0x00014e70 bne 0x14ebc                                   |                 goto label_9;
                                                             |             }
    0x00014e74 add r1, sp, 0x28                              |             r1 += var_28h;
    0x00014e78 str r8, [r1, -0x14]!                          |             *((r1 -= 0x14)) = r8;
    0x00014e7c mov r2, 0xa                                   |             r2 = 0xa;
    0x00014e80 add r0, fp, 4                                 |             r0 += str;
    0x00014e84 bl 0x5b60                                     |             strtol (r0, r1, r2);
    0x00014e88 ldr r3, [sp, 0x14]                            |             r3 = endptr;
    0x00014e8c cmp r3, fp                                    |             
    0x00014e90 mov r6, r0                                    |             r6 = r0;
                                                             |             if (r3 != fp) {
    0x00014e94 moveq r6, r8                                  |                 r6 = r8;
                                                             |             }
                                                             |             if (r3 != fp) {
    0x00014e98 moveq r8, r5                                  |                 r8 = r5;
                                                             |             }
                                                             |             if (r3 != fp) {
    0x00014e9c beq 0x14eb8                                   |                 
    0x00014ea0 cmp r3, 0                                     |                 
                                                             |                 if (r3 == 0) {
    0x00014ea4 beq 0x14eb8                                   |                     goto label_10;
                                                             |                 }
    0x00014ea8 ldrsb r3, [r3]                                |                 r3 = *(r3);
    0x00014eac cmp r3, 0                                     |                 
                                                             |                 if (r3 == 0) {
    0x00014eb0 movne r6, 0                                   |                     r6 = 0;
                                                             |                 }
                                                             |                 if (r3 != 0) {
    0x00014eb4 movne r8, r5                                  |                     r8 = r5;
                                                             |                     goto label_10;
                                                             |                 }
                                                             |             }
                                                             | label_10:
    0x00014eb8 mov r5, r8                                    |             r5 = r8;
                                                             |         }
                                                             | label_9:
    0x00014ebc ldr r0, [sp, 0xc]                             |         r0 = ptr;
    0x00014ec0 bl 0x6220                                     |         free (r0);
    0x00014ec4 mov r3, r6                                    |         r3 = r6;
    0x00014ec8 mov r6, r5                                    |         r6 = r5;
    0x00014ecc mov r5, r3                                    |         r5 = r3;
                                                             |     }
                                                             | label_8:
    0x00014ed0 mov r0, r4                                    |     r0 = r4;
    0x00014ed4 bl 0x32668                                    |     fcn_00032668 (r0);
    0x00014ed8 cmp r6, 0                                     |     
                                                             |     if (r6 != 0) {
    0x00014edc bne 0x14d90                                   |         goto label_0;
                                                             |     }
    0x00014ee0 ldr r3, [sb]                                  |     r3 = *(sb);
    0x00014ee4 cmp r5, 0                                     |     
    0x00014ee8 and r3, r3, 0x100                             |     r3 &= 0x100;
                                                             |     if (r5 == 0) {
    0x00014eec beq 0x14fb4                                   |         goto label_11;
                                                             |     }
    0x00014ef0 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00014ef4 beq 0x14f40                                   |         
    0x00014ef8 ldr r3, [pc, 0x1e4]                           |         r3 = *(0x150e0);
    0x00014efc ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00014f00 ldr r4, [r3]                                  |         r4 = *(0x150e0);
    0x00014f04 bl 0x58fc                                     |         getpid ();
    0x00014f08 ldr r3, [pc, 0x20c]                           |         r3 = *(0x15118);
    0x00014f0c ldr r1, [pc, 0x20c]                           |         r1 = *(0x1511c);
    0x00014f10 add r3, pc, r3                                |         r3 = pc + r3;
    0x00014f14 str r3, [sp]                                  |         *(sp) = r3;
    0x00014f18 ldr r3, [pc, 0x204]                           |         r3 = *(0x15120);
    0x00014f1c add r1, pc, r1                                |         r1 = pc + r1;
    0x00014f20 add r3, pc, r3                                |         r3 = pc + r3;
    0x00014f24 mov r2, r0                                    |         r2 = r0;
    0x00014f28 mov r0, r4                                    |         r0 = r4;
    0x00014f2c bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x00014f30 ldr r0, [pc, 0x1f0]                           |         r0 = *(0x15124);
    0x00014f34 mov r1, r5                                    |         r1 = r5;
    0x00014f38 add r0, pc, r0                                |         r0 = pc + r0;
    0x00014f3c bl 0x13aa4                                    |         fcn_00013aa4 ();
                                                             |     }
    0x00014f40 mov r7, 0xf8                                  |     r7 = 0xf8;
                                                             | label_1:
    0x00014f44 ldr r3, [sl, 8]                               |     r3 = *((sl + 8));
    0x00014f48 cmp r3, r6                                    |     
                                                             |     if (r3 <= r6) {
    0x00014f4c ble 0x14d90                                   |         goto label_0;
                                                             |     }
    0x00014f50 ldr r4, [sl, 0x10]                            |     r4 = *((sl + 0x10));
    0x00014f54 mla r8, r7, r6, r4                            |     __asm ("mla r8, r7, r6, r4");
    0x00014f58 mov r0, r8                                    |     r0 = r8;
    0x00014f5c bl 0x5f38                                     |     r0 = fcn_00005f38 ();
    0x00014f60 cmp r0, r5                                    |     
    0x00014f64 beq 0x14f70                                   |     
                                                             |     while (r0 == 0) {
                                                             | label_2:
    0x00014f68 add r6, r6, 1                                 |         r6++;
    0x00014f6c b 0x14f44                                     |         goto label_1;
    0x00014f70 mov r0, r8                                    |         r0 = r8;
    0x00014f74 bl 0x5ee4                                     |         fcn_00005ee4 ();
    0x00014f78 ldrd r2, r3, [sp, 0x20]                       |         __asm ("ldrd r2, r3, [var_20h]");
    0x00014f7c cmp r1, r3                                    |         
    0x00014f80 cmpeq r0, r2                                  |         __asm ("cmpeq r0, r2");
                                                             |         if (r1 == r3) {
    0x00014f84 beq 0x14fa8                                   |             goto label_4;
                                                             |         }
    0x00014f88 mov r0, r8                                    |         r0 = r8;
    0x00014f8c bl 0x5be4                                     |         r0 = fcn_00005be4 ();
    0x00014f90 cmp r0, 0                                     |         
    0x00014f94 beq 0x14f68                                   |         
                                                             |     }
    0x00014f98 ldrd r2, r3, [sp, 0x20]                       |     __asm ("ldrd r2, r3, [var_20h]");
    0x00014f9c cmp r3, 0                                     |     
    0x00014fa0 cmpeq r2, 0x400                               |     __asm ("cmpeq r2, aav.0x00000400");
                                                             |     if (r3 > 0) {
    0x00014fa4 bhi 0x14f68                                   |         goto label_2;
                                                             |     }
                                                             | label_4:
    0x00014fa8 mov r0, r8                                    |     r0 = r8;
    0x00014fac add sp, sp, 0x2c                              |     
    0x00014fb0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_11:
    0x00014fb4 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00014fb8 beq 0x15000                                   |         
    0x00014fbc ldr r3, [pc, 0x120]                           |         r3 = *(0x150e0);
    0x00014fc0 ldr r3, [r7, r3]                              |         r3 = *((r7 + r3));
    0x00014fc4 ldr r4, [r3]                                  |         r4 = *(0x150e0);
    0x00014fc8 bl 0x58fc                                     |         getpid ();
    0x00014fcc ldr r3, [pc, 0x158]                           |         r3 = *(0x15128);
    0x00014fd0 ldr r1, [pc, 0x158]                           |         r1 = *(0x1512c);
    0x00014fd4 add r3, pc, r3                                |         r3 = pc + r3;
    0x00014fd8 str r3, [sp]                                  |         *(sp) = r3;
    0x00014fdc ldr r3, [pc, 0x150]                           |         r3 = *(0x15130);
    0x00014fe0 add r1, pc, r1                                |         r1 = pc + r1;
    0x00014fe4 add r3, pc, r3                                |         r3 = pc + r3;
    0x00014fe8 mov r2, r0                                    |         r2 = r0;
    0x00014fec mov r0, r4                                    |         r0 = r4;
    0x00014ff0 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x00014ff4 ldr r0, [pc, 0x13c]                           |         r0 = *(0x15134);
    0x00014ff8 add r0, pc, r0                                |         r0 = pc + r0;
    0x00014ffc bl 0x13aa4                                    |         fcn_00013aa4 ();
                                                             |     }
    0x00015000 mov r6, 0xf8                                  |     r6 = 0xf8;
                                                             | label_5:
    0x00015004 ldr r3, [sl, 8]                               |     r3 = *((sl + 8));
    0x00015008 cmp r3, r5                                    |     
                                                             |     if (r3 > r5) {
    0x0001500c bgt 0x15060                                   |         goto label_12;
                                                             |     }
    0x00015010 ldr r3, [sb]                                  |     r3 = *(sb);
    0x00015014 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) == 0) {
    0x00015018 beq 0x14d90                                   |         goto label_0;
                                                             |     }
    0x0001501c ldr r3, [pc, 0xc0]                            |     r3 = *(0x150e0);
    0x00015020 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00015024 ldr r4, [r3]                                  |     r4 = *(0x150e0);
    0x00015028 bl 0x58fc                                     |     getpid ();
    0x0001502c ldr r3, [pc, 0x108]                           |     r3 = *(0x15138);
    0x00015030 ldr r1, [pc, 0x108]                           |     r1 = *(0x1513c);
    0x00015034 add r3, pc, r3                                |     r3 = pc + r3;
    0x00015038 str r3, [sp]                                  |     *(sp) = r3;
    0x0001503c ldr r3, [pc, 0x100]                           |     r3 = *(0x15140);
    0x00015040 add r1, pc, r1                                |     r1 = pc + r1;
    0x00015044 add r3, pc, r3                                |     r3 = pc + r3;
    0x00015048 mov r2, r0                                    |     r2 = r0;
    0x0001504c mov r0, r4                                    |     r0 = r4;
    0x00015050 bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x00015054 ldr r0, [pc, 0xec]                            |     r0 = *(0x15144);
    0x00015058 add r0, pc, r0                                |     r0 = pc + r0;
    0x0001505c b 0x14dd8                                     |     goto label_3;
                                                             | label_12:
    0x00015060 ldr r4, [sl, 0x10]                            |     r4 = *((sl + 0x10));
    0x00015064 mla r8, r6, r5, r4                            |     __asm ("mla r8, r6, r5, r4");
    0x00015068 mov r0, r8                                    |     r0 = r8;
    0x0001506c bl 0x5c2c                                     |     fcn_00005c2c ();
    0x00015070 ldrd r2, r3, [sp, 0x18]                       |     __asm ("ldrd r2, r3, [var_18h]");
    0x00015074 cmp r1, r3                                    |     
    0x00015078 cmpeq r0, r2                                  |     __asm ("cmpeq r0, r2");
                                                             |     if (r1 == r3) {
    0x0001507c beq 0x150c0                                   |         goto label_13;
                                                             |     }
                                                             | label_6:
    0x00015080 mov r0, r8                                    |     r0 = r8;
    0x00015084 bl 0x5c2c                                     |     fcn_00005c2c ();
    0x00015088 ldrd r2, r3, [sp, 0x18]                       |     __asm ("ldrd r2, r3, [var_18h]");
    0x0001508c cmp r1, r3                                    |     
    0x00015090 cmpeq r0, r2                                  |     __asm ("cmpeq r0, r2");
                                                             |     if (r1 != r3) {
    0x00015094 bne 0x150b8                                   |         goto label_14;
                                                             |     }
    0x00015098 mov r0, r8                                    |     r0 = r8;
    0x0001509c bl 0x5be4                                     |     r0 = fcn_00005be4 ();
    0x000150a0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000150a4 beq 0x150b8                                   |         goto label_14;
                                                             |     }
    0x000150a8 ldrd r2, r3, [sp, 0x20]                       |     __asm ("ldrd r2, r3, [var_20h]");
    0x000150ac cmp r3, 0                                     |     
    0x000150b0 cmpeq r2, 0x400                               |     __asm ("cmpeq r2, aav.0x00000400");
                                                             |     if (r3 < 0) {
    0x000150b4 bls 0x14fa8                                   |         goto label_4;
                                                             |     }
                                                             | label_14:
    0x000150b8 add r5, r5, 1                                 |     r5++;
    0x000150bc b 0x15004                                     |     goto label_5;
                                                             | label_13:
    0x000150c0 mov r0, r8                                    |     r0 = r8;
    0x000150c4 bl 0x5ee4                                     |     fcn_00005ee4 ();
    0x000150c8 ldrd r2, r3, [sp, 0x20]                       |     __asm ("ldrd r2, r3, [var_20h]");
    0x000150cc cmp r1, r3                                    |     
    0x000150d0 cmpeq r0, r2                                  |     __asm ("cmpeq r0, r2");
                                                             |     if (r1 != r3) {
    0x000150d4 bne 0x15080                                   |         goto label_6;
                                                             |     }
    0x000150d8 b 0x14fa8                                     |     goto label_4;
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x8fec */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.blkid_probe_all ()                       | void blkid_probe_all (int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_ch;
                                                         |     r0 = arg1;
    0x00008fec push {r0, r1, r2, r4, r5, r6, r7, lr}     |     
    0x00008ff0 ldr r4, [pc, 0xe4]                        |     r4 = *(0x90d8);
    0x00008ff4 ldr r3, [pc, 0xe4]                        |     r3 = *(0x90dc);
    0x00008ff8 add r4, pc, r4                            |     r4 = pc + r4;
    0x00008ffc ldr r7, [r4, r3]                          |     r7 = *(0x90d8);
    0x00009000 mov r5, r0                                |     r5 = r0;
    0x00009004 ldr r3, [r7]                              |     r3 = *(0x90d8);
    0x00009008 tst r3, 0x200                             |     
                                                         |     if ((r3 & 0x200) != 0) {
    0x0000900c beq 0x9054                                |         
    0x00009010 ldr r3, [pc, 0xcc]                        |         r3 = *(0x90e0);
    0x00009014 ldr r3, [r4, r3]                          |         r3 = *((r4 + r3));
    0x00009018 ldr r6, [r3]                              |         r6 = *(0x90e0);
    0x0000901c bl 0x58fc                                 |         getpid ();
    0x00009020 ldr r3, [pc, 0xc0]                        |         r3 = *(0x90e4);
    0x00009024 ldr r1, [pc, 0xc0]                        |         r1 = *(0x90e8);
    0x00009028 add r3, pc, r3                            |         r3 = pc + r3;
    0x0000902c str r3, [sp]                              |         *(sp) = r3;
    0x00009030 ldr r3, [pc, 0xb8]                        |         r3 = *(0x90ec);
    0x00009034 add r1, pc, r1                            |         r1 = pc + r1;
    0x00009038 add r3, pc, r3                            |         r3 = pc + r3;
    0x0000903c mov r2, r0                                |         r2 = r0;
    0x00009040 mov r0, r6                                |         r0 = r6;
    0x00009044 bl 0x5c50                                 |         fprintf (r0, r1, r2, r3)
    0x00009048 ldr r0, [pc, 0xa4]                        |         r0 = *(0x90f0);
    0x0000904c add r0, pc, r0                            |         r0 = pc + r0;
    0x00009050 bl 0x7b24                                 |         fcn_00007b24 ();
                                                         |     }
    0x00009054 mov r1, 0                                 |     r1 = 0;
    0x00009058 mov r0, r5                                |     r0 = r5;
    0x0000905c bl 0x8388                                 |     r0 = fcn_00008388 (r0, r1, r2, r3, r4);
    0x00009060 subs r6, r0, 0                            |     r6 = r0 - 0;
                                                         |     if (r6 == r0) {
    0x00009064 bne 0x907c                                |         
    0x00009068 bl 0x5eb4                                 |         time (r0);
    0x0000906c ldr r3, [r5, 0x18]                        |         r3 = *((r5 + 0x18));
    0x00009070 orr r3, r3, 2                             |         r3 |= 2;
    0x00009074 str r3, [r5, 0x18]                        |         *((r5 + 0x18)) = r3;
    0x00009078 str r0, [r5, 0x10]                        |         *((r5 + 0x10)) = r0;
                                                         |     }
    0x0000907c ldr r3, [r7]                              |     r3 = *(r7);
    0x00009080 tst r3, 0x200                             |     
                                                         |     if ((r3 & 0x200) != 0) {
    0x00009084 beq 0x90d0                                |         
    0x00009088 ldr r3, [pc, 0x54]                        |         r3 = *(0x90e0);
    0x0000908c ldr r3, [r4, r3]                          |         r3 = *((r4 + r3));
    0x00009090 ldr r4, [r3]                              |         r4 = *(0x90e0);
    0x00009094 bl 0x58fc                                 |         getpid ();
    0x00009098 ldr r3, [pc, 0x58]                        |         r3 = *(0x90f4);
    0x0000909c ldr r1, [pc, 0x58]                        |         r1 = *(0x90f8);
    0x000090a0 add r3, pc, r3                            |         r3 = pc + r3;
    0x000090a4 str r3, [sp]                              |         *(sp) = r3;
    0x000090a8 ldr r3, [pc, 0x50]                        |         r3 = *(0x90fc);
    0x000090ac add r1, pc, r1                            |         r1 = pc + r1;
    0x000090b0 add r3, pc, r3                            |         r3 = pc + r3;
    0x000090b4 mov r2, r0                                |         r2 = r0;
    0x000090b8 mov r0, r4                                |         r0 = r4;
    0x000090bc bl 0x5c50                                 |         fprintf (r0, r1, r2, r3)
    0x000090c0 ldr r0, [pc, 0x3c]                        |         r0 = *(0x9100);
    0x000090c4 mov r1, r6                                |         r1 = r6;
    0x000090c8 add r0, pc, r0                            |         r0 = pc + r0;
    0x000090cc bl 0x7b24                                 |         fcn_00007b24 ();
                                                         |     }
    0x000090d0 mov r0, r6                                |     r0 = r6;
    0x000090d4 add sp, sp, 0xc                           |     
    0x000090d8 pop {r4, r5, r6, r7, pc}                  |     
                                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x9108 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.blkid_probe_all_new ()                   | void blkid_probe_all_new (int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_ch;
                                                         |     r0 = arg1;
    0x00009108 push {r0, r1, r2, r4, r5, r6, r7, lr}     |     
    0x0000910c ldr r4, [pc, 0xcc]                        |     r4 = *(0x91dc);
    0x00009110 ldr r3, [pc, 0xcc]                        |     r3 = *(0x91e0);
    0x00009114 add r4, pc, r4                            |     r4 = pc + r4;
    0x00009118 ldr r6, [r4, r3]                          |     r6 = *(0x91dc);
    0x0000911c mov r5, r0                                |     r5 = r0;
    0x00009120 ldr r3, [r6]                              |     r3 = *(0x91dc);
    0x00009124 tst r3, 0x200                             |     
                                                         |     if ((r3 & 0x200) != 0) {
    0x00009128 beq 0x9170                                |         
    0x0000912c ldr r3, [pc, 0xb4]                        |         r3 = *(0x91e4);
    0x00009130 ldr r3, [r4, r3]                          |         r3 = *((r4 + r3));
    0x00009134 ldr r7, [r3]                              |         r7 = *(0x91e4);
    0x00009138 bl 0x58fc                                 |         getpid ();
    0x0000913c ldr r3, [pc, 0xa8]                        |         r3 = *(0x91e8);
    0x00009140 ldr r1, [pc, 0xa8]                        |         r1 = *(0x91ec);
    0x00009144 add r3, pc, r3                            |         r3 = pc + r3;
    0x00009148 str r3, [sp]                              |         *(sp) = r3;
    0x0000914c ldr r3, [pc, 0xa0]                        |         r3 = *(0x91f0);
    0x00009150 add r1, pc, r1                            |         r1 = pc + r1;
    0x00009154 add r3, pc, r3                            |         r3 = pc + r3;
    0x00009158 mov r2, r0                                |         r2 = r0;
    0x0000915c mov r0, r7                                |         r0 = r7;
    0x00009160 bl 0x5c50                                 |         fprintf (r0, r1, r2, r3)
    0x00009164 ldr r0, [pc, 0x8c]                        |         r0 = *(0x91f4);
    0x00009168 add r0, pc, r0                            |         r0 = pc + r0;
    0x0000916c bl 0x7b24                                 |         fcn_00007b24 ();
                                                         |     }
    0x00009170 mov r0, r5                                |     r0 = r5;
    0x00009174 mov r1, 1                                 |     r1 = 1;
    0x00009178 bl 0x8388                                 |     fcn_00008388 (r0, r1, r2, r3, r4);
    0x0000917c ldr r3, [r6]                              |     r3 = *(r6);
    0x00009180 tst r3, 0x200                             |     
    0x00009184 mov r5, r0                                |     r5 = r0;
                                                         |     if ((r3 & 0x200) != 0) {
    0x00009188 beq 0x91d4                                |         
    0x0000918c ldr r3, [pc, 0x54]                        |         r3 = *(0x91e4);
    0x00009190 ldr r3, [r4, r3]                          |         r3 = *((r4 + r3));
    0x00009194 ldr r4, [r3]                              |         r4 = *(0x91e4);
    0x00009198 bl 0x58fc                                 |         getpid ();
    0x0000919c ldr r3, [pc, 0x58]                        |         r3 = *(0x91f8);
    0x000091a0 ldr r1, [pc, 0x58]                        |         r1 = *(0x91fc);
    0x000091a4 add r3, pc, r3                            |         r3 = pc + r3;
    0x000091a8 str r3, [sp]                              |         *(sp) = r3;
    0x000091ac ldr r3, [pc, 0x50]                        |         r3 = *(0x9200);
    0x000091b0 add r1, pc, r1                            |         r1 = pc + r1;
    0x000091b4 add r3, pc, r3                            |         r3 = pc + r3;
    0x000091b8 mov r2, r0                                |         r2 = r0;
    0x000091bc mov r0, r4                                |         r0 = r4;
    0x000091c0 bl 0x5c50                                 |         fprintf (r0, r1, r2, r3)
    0x000091c4 ldr r0, [pc, 0x3c]                        |         r0 = *(0x9204);
    0x000091c8 mov r1, r5                                |         r1 = r5;
    0x000091cc add r0, pc, r0                            |         r0 = pc + r0;
    0x000091d0 bl 0x7b24                                 |         fcn_00007b24 ();
                                                         |     }
    0x000091d4 mov r0, r5                                |     r0 = r5;
    0x000091d8 add sp, sp, 0xc                           |     
    0x000091dc pop {r4, r5, r6, r7, pc}                  |     
                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x920c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.blkid_probe_all_removable ()                 | void blkid_probe_all_removable (uint32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_10h_2;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_2ch;
                                                             |     r0 = arg1;
    0x0000920c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00009210 ldr r5, [pc, 0x1f0]                           |     r5 = *(0x9404);
    0x00009214 ldr r3, [pc, 0x1f0]                           |     r3 = *(0x9408);
    0x00009218 add r5, pc, r5                                |     r5 = pc + r5;
    0x0000921c ldr r3, [r5, r3]                              |     
    0x00009220 sub sp, sp, 0x2c                              |     
    0x00009224 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x00009228 ldr r3, [r3]                                  |     r3 = *(0x9404);
    0x0000922c mov r7, r0                                    |     r7 = r0;
    0x00009230 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x00009234 beq 0x93f8                                    |         goto label_3;
                                                             |     }
    0x00009238 ldr r3, [pc, 0x1d0]                           |     r3 = *(0x940c);
    0x0000923c ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00009240 ldr r4, [r3]                                  |     r4 = *(0x940c);
    0x00009244 bl 0x58fc                                     |     getpid ();
    0x00009248 ldr r3, [pc, 0x1c4]                           |     r3 = *(0x9410);
    0x0000924c ldr r1, [pc, 0x1c4]                           |     r1 = *(0x9414);
    0x00009250 add r3, pc, r3                                |     r3 = pc + r3;
    0x00009254 str r3, [sp]                                  |     *(sp) = r3;
    0x00009258 ldr r3, [pc, 0x1bc]                           |     r3 = *(0x9418);
    0x0000925c add r1, pc, r1                                |     r1 = pc + r1;
    0x00009260 add r3, pc, r3                                |     r3 = pc + r3;
    0x00009264 mov r2, r0                                    |     r2 = r0;
    0x00009268 mov r0, r4                                    |     r0 = r4;
    0x0000926c bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x00009270 ldr r0, [pc, 0x1a8]                           |     r0 = *(0x941c);
    0x00009274 add r0, pc, r0                                |     r0 = pc + r0;
    0x00009278 bl 0x7b24                                     |     fcn_00007b24 ();
    0x0000927c cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00009280 mvneq r4, 0x15                                |         r4 = ~0x15;
                                                             |     }
                                                             |     if (r7 == 0) {
    0x00009284 beq 0x92dc                                    |         goto label_4;
                                                             |     }
                                                             | label_1:
    0x00009288 ldr r0, [pc, 0x194]                           |     r0 = *(0x9420);
    0x0000928c add r0, pc, r0                                |     r0 = pc + r0;
    0x00009290 bl 0x5ec0                                     |     r0 = opendir ();
    0x00009294 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb != r0) {
    0x00009298 mvneq r4, 8                                   |         r4 = ~8;
                                                             |     }
                                                             |     if (sb == r0) {
    0x0000929c beq 0x92dc                                    |         goto label_4;
                                                             |     }
    0x000092a0 mov r0, 0                                     |     r0 = 0;
    0x000092a4 bl 0x3275c                                    |     fcn_0003275c ();
    0x000092a8 ldr fp, [pc, 0x178]                           |     fp = *(0x9424);
    0x000092ac mov r6, 0                                     |     r6 = 0;
    0x000092b0 mov sl, 1                                     |     sl = 1;
    0x000092b4 add fp, pc, fp                                |     
    0x000092b8 mov r8, r0                                    |     r8 = r0;
                                                             |     do {
                                                             | label_0:
    0x000092bc mov r0, sb                                    |         r0 = sb;
    0x000092c0 bl 0x5dac                                     |         r0 = readdir64 ();
    0x000092c4 subs r4, r0, 0                                |         r4 = r0 - 0;
                                                             |         if (r4 == r0) {
    0x000092c8 bne 0x9340                                    |             
    0x000092cc mov r0, r8                                    |             r0 = r8;
    0x000092d0 bl 0x32668                                    |             fcn_00032668 (r0);
    0x000092d4 mov r0, sb                                    |             r0 = sb;
    0x000092d8 bl 0x6184                                     |             closedir ();
                                                             | label_4:
    0x000092dc ldr r3, [sp, 0x18]                            |             r3 = var_18h;
    0x000092e0 ldr r3, [r3]                                  |             r3 = *(r3);
    0x000092e4 tst r3, 0x200                                 |             
                                                             |             if ((r3 & 0x200) != 0) {
    0x000092e8 beq 0x9334                                    |                 
    0x000092ec ldr r3, [pc, 0x11c]                           |                 r3 = *(0x940c);
    0x000092f0 ldr r3, [r5, r3]                              |                 r3 = *((r5 + r3));
    0x000092f4 ldr r5, [r3]                                  |                 r5 = *(0x940c);
    0x000092f8 bl 0x58fc                                     |                 getpid ();
    0x000092fc ldr r3, [pc, 0x128]                           |                 r3 = *(0x9428);
    0x00009300 ldr r1, [pc, 0x128]                           |                 r1 = *(0x942c);
    0x00009304 add r3, pc, r3                                |                 r3 = pc + r3;
    0x00009308 str r3, [sp]                                  |                 *(sp) = r3;
    0x0000930c ldr r3, [pc, 0x120]                           |                 r3 = *(0x9430);
    0x00009310 add r1, pc, r1                                |                 r1 = pc + r1;
    0x00009314 add r3, pc, r3                                |                 r3 = pc + r3;
    0x00009318 mov r2, r0                                    |                 r2 = r0;
    0x0000931c mov r0, r5                                    |                 r0 = r5;
    0x00009320 bl 0x5c50                                     |                 fprintf (r0, r1, r2, r3)
    0x00009324 ldr r0, [pc, 0x10c]                           |                 r0 = *(0x9434);
    0x00009328 mov r1, r4                                    |                 r1 = r4;
    0x0000932c add r0, pc, r0                                |                 r0 = pc + r0;
    0x00009330 bl 0x7b24                                     |                 fcn_00007b24 ();
                                                             |             }
                                                             | label_2:
    0x00009334 mov r0, r4                                    |             r0 = r4;
    0x00009338 add sp, sp, 0x2c                              |             
    0x0000933c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |             
                                                             |         }
    0x00009340 ldrb r3, [r4, 0x12]                           |         r3 = *((r4 + 0x12));
    0x00009344 str r6, [sp, 0x24]                            |         var_24h = r6;
    0x00009348 cmp r3, 0                                     |         
    0x0000934c cmpne r3, 0xa                                 |         __asm ("cmpne r3, 0xa");
    0x00009350 bne 0x92bc                                    |         
                                                             |     } while (r3 != 0);
    0x00009354 ldrsb r3, [r4, 0x13]                          |     r3 = *((r4 + 0x13));
    0x00009358 cmp r3, 0x2e                                  |     
                                                             |     if (r3 != 0x2e) {
    0x0000935c bne 0x9378                                    |         goto label_5;
                                                             |     }
    0x00009360 ldrsb r3, [r4, 0x14]                          |     r3 = *((r4 + 0x14));
    0x00009364 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00009368 beq 0x92bc                                    |         goto label_0;
                                                             |     }
    0x0000936c ldrsh r3, [r4, 0x14]                          |     r3 = *((r4 + 0x14));
    0x00009370 cmp r3, 0x2e                                  |     
                                                             |     if (r3 == 0x2e) {
    0x00009374 beq 0x92bc                                    |         goto label_0;
                                                             |     }
                                                             | label_5:
    0x00009378 add r4, r4, 0x13                              |     r4 += 0x13;
    0x0000937c mov r0, r4                                    |     r0 = r4;
    0x00009380 bl 0x35be0                                    |     r0 = fcn_00035be0 (r0);
    0x00009384 mov r2, r0                                    |     r2 = r0;
    0x00009388 mov r3, r1                                    |     r3 = r1;
    0x0000938c orrs r3, r2, r3                               |     r3 = r2 | r3;
    0x00009390 strd r0, r1, [sp, 0x10]                       |     __asm ("strd r0, r1, [var_10h]");
                                                             |     if (r3 == r2) {
    0x00009394 beq 0x92bc                                    |         goto label_0;
                                                             |     }
    0x00009398 mov r3, r1                                    |     r3 = r1;
    0x0000939c str r6, [sp]                                  |     *(sp) = r6;
    0x000093a0 mov r0, r8                                    |     r0 = r8;
    0x000093a4 bl 0x34adc                                    |     r0 = fcn_00034adc (r0, r1);
    0x000093a8 subs r3, r0, 0                                |     r3 = r0 - 0;
                                                             |     if (r3 == r0) {
    0x000093ac bne 0x93d0                                    |         
    0x000093b0 mov r2, fp                                    |         r2 = fp;
    0x000093b4 add r1, sp, 0x24                              |         r1 += var_24h;
    0x000093b8 mov r0, r8                                    |         r0 = r8;
    0x000093bc str r3, [sp, 0x1c]                            |         var_1ch = r3;
    0x000093c0 bl 0x33a88                                    |         r0 = fcn_00033a88 (r0);
    0x000093c4 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000093c8 ldrne r3, [sp, 0x1c]                          |             r3 = var_1ch;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x000093cc strne r3, [sp, 0x24]                          |             var_24h = r3;
                                                             |             goto label_6;
                                                             |         }
                                                             |     }
                                                             | label_6:
    0x000093d0 ldr r3, [sp, 0x24]                            |     r3 = var_24h;
    0x000093d4 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000093d8 beq 0x92bc                                    |         goto label_0;
                                                             |     }
    0x000093dc stmib sp, {r6, sl}                            |     __asm ("stmib sp, {r6, sl}");
    0x000093e0 str r6, [sp]                                  |     *(sp) = r6;
    0x000093e4 ldrd r2, r3, [sp, 0x10]                       |     __asm ("ldrd r2, r3, [var_10h]");
    0x000093e8 mov r1, r4                                    |     r1 = r4;
    0x000093ec mov r0, r7                                    |     r0 = r7;
    0x000093f0 bl 0x7f3c                                     |     fcn_00007f3c (r0, r1, r2, r3, r4);
    0x000093f4 b 0x92bc                                      |     goto label_0;
                                                             | label_3:
    0x000093f8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000093fc bne 0x9288                                    |         goto label_1;
                                                             |     }
    0x00009400 mvn r4, 0x15                                  |     r4 = ~0x15;
    0x00009404 b 0x9334                                      |     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 @ 0x9108 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.blkid_probe_all_new ()                   | void blkid_probe_all_new (int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_ch;
                                                         |     r0 = arg1;
    0x00009108 push {r0, r1, r2, r4, r5, r6, r7, lr}     |     
    0x0000910c ldr r4, [pc, 0xcc]                        |     r4 = *(0x91dc);
    0x00009110 ldr r3, [pc, 0xcc]                        |     r3 = *(0x91e0);
    0x00009114 add r4, pc, r4                            |     r4 = pc + r4;
    0x00009118 ldr r6, [r4, r3]                          |     r6 = *(0x91dc);
    0x0000911c mov r5, r0                                |     r5 = r0;
    0x00009120 ldr r3, [r6]                              |     r3 = *(0x91dc);
    0x00009124 tst r3, 0x200                             |     
                                                         |     if ((r3 & 0x200) != 0) {
    0x00009128 beq 0x9170                                |         
    0x0000912c ldr r3, [pc, 0xb4]                        |         r3 = *(0x91e4);
    0x00009130 ldr r3, [r4, r3]                          |         r3 = *((r4 + r3));
    0x00009134 ldr r7, [r3]                              |         r7 = *(0x91e4);
    0x00009138 bl 0x58fc                                 |         getpid ();
    0x0000913c ldr r3, [pc, 0xa8]                        |         r3 = *(0x91e8);
    0x00009140 ldr r1, [pc, 0xa8]                        |         r1 = *(0x91ec);
    0x00009144 add r3, pc, r3                            |         r3 = pc + r3;
    0x00009148 str r3, [sp]                              |         *(sp) = r3;
    0x0000914c ldr r3, [pc, 0xa0]                        |         r3 = *(0x91f0);
    0x00009150 add r1, pc, r1                            |         r1 = pc + r1;
    0x00009154 add r3, pc, r3                            |         r3 = pc + r3;
    0x00009158 mov r2, r0                                |         r2 = r0;
    0x0000915c mov r0, r7                                |         r0 = r7;
    0x00009160 bl 0x5c50                                 |         fprintf (r0, r1, r2, r3)
    0x00009164 ldr r0, [pc, 0x8c]                        |         r0 = *(0x91f4);
    0x00009168 add r0, pc, r0                            |         r0 = pc + r0;
    0x0000916c bl 0x7b24                                 |         fcn_00007b24 ();
                                                         |     }
    0x00009170 mov r0, r5                                |     r0 = r5;
    0x00009174 mov r1, 1                                 |     r1 = 1;
    0x00009178 bl 0x8388                                 |     fcn_00008388 (r0, r1, r2, r3, r4);
    0x0000917c ldr r3, [r6]                              |     r3 = *(r6);
    0x00009180 tst r3, 0x200                             |     
    0x00009184 mov r5, r0                                |     r5 = r0;
                                                         |     if ((r3 & 0x200) != 0) {
    0x00009188 beq 0x91d4                                |         
    0x0000918c ldr r3, [pc, 0x54]                        |         r3 = *(0x91e4);
    0x00009190 ldr r3, [r4, r3]                          |         r3 = *((r4 + r3));
    0x00009194 ldr r4, [r3]                              |         r4 = *(0x91e4);
    0x00009198 bl 0x58fc                                 |         getpid ();
    0x0000919c ldr r3, [pc, 0x58]                        |         r3 = *(0x91f8);
    0x000091a0 ldr r1, [pc, 0x58]                        |         r1 = *(0x91fc);
    0x000091a4 add r3, pc, r3                            |         r3 = pc + r3;
    0x000091a8 str r3, [sp]                              |         *(sp) = r3;
    0x000091ac ldr r3, [pc, 0x50]                        |         r3 = *(0x9200);
    0x000091b0 add r1, pc, r1                            |         r1 = pc + r1;
    0x000091b4 add r3, pc, r3                            |         r3 = pc + r3;
    0x000091b8 mov r2, r0                                |         r2 = r0;
    0x000091bc mov r0, r4                                |         r0 = r4;
    0x000091c0 bl 0x5c50                                 |         fprintf (r0, r1, r2, r3)
    0x000091c4 ldr r0, [pc, 0x3c]                        |         r0 = *(0x9204);
    0x000091c8 mov r1, r5                                |         r1 = r5;
    0x000091cc add r0, pc, r0                            |         r0 = pc + r0;
    0x000091d0 bl 0x7b24                                 |         fcn_00007b24 ();
                                                         |     }
    0x000091d4 mov r0, r5                                |     r0 = r5;
    0x000091d8 add sp, sp, 0xc                           |     
    0x000091dc pop {r4, r5, r6, r7, pc}                  |     
                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x920c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.blkid_probe_all_removable ()                 | void blkid_probe_all_removable (uint32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_10h_2;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_2ch;
                                                             |     r0 = arg1;
    0x0000920c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00009210 ldr r5, [pc, 0x1f0]                           |     r5 = *(0x9404);
    0x00009214 ldr r3, [pc, 0x1f0]                           |     r3 = *(0x9408);
    0x00009218 add r5, pc, r5                                |     r5 = pc + r5;
    0x0000921c ldr r3, [r5, r3]                              |     
    0x00009220 sub sp, sp, 0x2c                              |     
    0x00009224 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x00009228 ldr r3, [r3]                                  |     r3 = *(0x9404);
    0x0000922c mov r7, r0                                    |     r7 = r0;
    0x00009230 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x00009234 beq 0x93f8                                    |         goto label_3;
                                                             |     }
    0x00009238 ldr r3, [pc, 0x1d0]                           |     r3 = *(0x940c);
    0x0000923c ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x00009240 ldr r4, [r3]                                  |     r4 = *(0x940c);
    0x00009244 bl 0x58fc                                     |     getpid ();
    0x00009248 ldr r3, [pc, 0x1c4]                           |     r3 = *(0x9410);
    0x0000924c ldr r1, [pc, 0x1c4]                           |     r1 = *(0x9414);
    0x00009250 add r3, pc, r3                                |     r3 = pc + r3;
    0x00009254 str r3, [sp]                                  |     *(sp) = r3;
    0x00009258 ldr r3, [pc, 0x1bc]                           |     r3 = *(0x9418);
    0x0000925c add r1, pc, r1                                |     r1 = pc + r1;
    0x00009260 add r3, pc, r3                                |     r3 = pc + r3;
    0x00009264 mov r2, r0                                    |     r2 = r0;
    0x00009268 mov r0, r4                                    |     r0 = r4;
    0x0000926c bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x00009270 ldr r0, [pc, 0x1a8]                           |     r0 = *(0x941c);
    0x00009274 add r0, pc, r0                                |     r0 = pc + r0;
    0x00009278 bl 0x7b24                                     |     fcn_00007b24 ();
    0x0000927c cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00009280 mvneq r4, 0x15                                |         r4 = ~0x15;
                                                             |     }
                                                             |     if (r7 == 0) {
    0x00009284 beq 0x92dc                                    |         goto label_4;
                                                             |     }
                                                             | label_1:
    0x00009288 ldr r0, [pc, 0x194]                           |     r0 = *(0x9420);
    0x0000928c add r0, pc, r0                                |     r0 = pc + r0;
    0x00009290 bl 0x5ec0                                     |     r0 = opendir ();
    0x00009294 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb != r0) {
    0x00009298 mvneq r4, 8                                   |         r4 = ~8;
                                                             |     }
                                                             |     if (sb == r0) {
    0x0000929c beq 0x92dc                                    |         goto label_4;
                                                             |     }
    0x000092a0 mov r0, 0                                     |     r0 = 0;
    0x000092a4 bl 0x3275c                                    |     fcn_0003275c ();
    0x000092a8 ldr fp, [pc, 0x178]                           |     fp = *(0x9424);
    0x000092ac mov r6, 0                                     |     r6 = 0;
    0x000092b0 mov sl, 1                                     |     sl = 1;
    0x000092b4 add fp, pc, fp                                |     
    0x000092b8 mov r8, r0                                    |     r8 = r0;
                                                             |     do {
                                                             | label_0:
    0x000092bc mov r0, sb                                    |         r0 = sb;
    0x000092c0 bl 0x5dac                                     |         r0 = readdir64 ();
    0x000092c4 subs r4, r0, 0                                |         r4 = r0 - 0;
                                                             |         if (r4 == r0) {
    0x000092c8 bne 0x9340                                    |             
    0x000092cc mov r0, r8                                    |             r0 = r8;
    0x000092d0 bl 0x32668                                    |             fcn_00032668 (r0);
    0x000092d4 mov r0, sb                                    |             r0 = sb;
    0x000092d8 bl 0x6184                                     |             closedir ();
                                                             | label_4:
    0x000092dc ldr r3, [sp, 0x18]                            |             r3 = var_18h;
    0x000092e0 ldr r3, [r3]                                  |             r3 = *(r3);
    0x000092e4 tst r3, 0x200                                 |             
                                                             |             if ((r3 & 0x200) != 0) {
    0x000092e8 beq 0x9334                                    |                 
    0x000092ec ldr r3, [pc, 0x11c]                           |                 r3 = *(0x940c);
    0x000092f0 ldr r3, [r5, r3]                              |                 r3 = *((r5 + r3));
    0x000092f4 ldr r5, [r3]                                  |                 r5 = *(0x940c);
    0x000092f8 bl 0x58fc                                     |                 getpid ();
    0x000092fc ldr r3, [pc, 0x128]                           |                 r3 = *(0x9428);
    0x00009300 ldr r1, [pc, 0x128]                           |                 r1 = *(0x942c);
    0x00009304 add r3, pc, r3                                |                 r3 = pc + r3;
    0x00009308 str r3, [sp]                                  |                 *(sp) = r3;
    0x0000930c ldr r3, [pc, 0x120]                           |                 r3 = *(0x9430);
    0x00009310 add r1, pc, r1                                |                 r1 = pc + r1;
    0x00009314 add r3, pc, r3                                |                 r3 = pc + r3;
    0x00009318 mov r2, r0                                    |                 r2 = r0;
    0x0000931c mov r0, r5                                    |                 r0 = r5;
    0x00009320 bl 0x5c50                                     |                 fprintf (r0, r1, r2, r3)
    0x00009324 ldr r0, [pc, 0x10c]                           |                 r0 = *(0x9434);
    0x00009328 mov r1, r4                                    |                 r1 = r4;
    0x0000932c add r0, pc, r0                                |                 r0 = pc + r0;
    0x00009330 bl 0x7b24                                     |                 fcn_00007b24 ();
                                                             |             }
                                                             | label_2:
    0x00009334 mov r0, r4                                    |             r0 = r4;
    0x00009338 add sp, sp, 0x2c                              |             
    0x0000933c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |             
                                                             |         }
    0x00009340 ldrb r3, [r4, 0x12]                           |         r3 = *((r4 + 0x12));
    0x00009344 str r6, [sp, 0x24]                            |         var_24h = r6;
    0x00009348 cmp r3, 0                                     |         
    0x0000934c cmpne r3, 0xa                                 |         __asm ("cmpne r3, 0xa");
    0x00009350 bne 0x92bc                                    |         
                                                             |     } while (r3 != 0);
    0x00009354 ldrsb r3, [r4, 0x13]                          |     r3 = *((r4 + 0x13));
    0x00009358 cmp r3, 0x2e                                  |     
                                                             |     if (r3 != 0x2e) {
    0x0000935c bne 0x9378                                    |         goto label_5;
                                                             |     }
    0x00009360 ldrsb r3, [r4, 0x14]                          |     r3 = *((r4 + 0x14));
    0x00009364 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00009368 beq 0x92bc                                    |         goto label_0;
                                                             |     }
    0x0000936c ldrsh r3, [r4, 0x14]                          |     r3 = *((r4 + 0x14));
    0x00009370 cmp r3, 0x2e                                  |     
                                                             |     if (r3 == 0x2e) {
    0x00009374 beq 0x92bc                                    |         goto label_0;
                                                             |     }
                                                             | label_5:
    0x00009378 add r4, r4, 0x13                              |     r4 += 0x13;
    0x0000937c mov r0, r4                                    |     r0 = r4;
    0x00009380 bl 0x35be0                                    |     r0 = fcn_00035be0 (r0);
    0x00009384 mov r2, r0                                    |     r2 = r0;
    0x00009388 mov r3, r1                                    |     r3 = r1;
    0x0000938c orrs r3, r2, r3                               |     r3 = r2 | r3;
    0x00009390 strd r0, r1, [sp, 0x10]                       |     __asm ("strd r0, r1, [var_10h]");
                                                             |     if (r3 == r2) {
    0x00009394 beq 0x92bc                                    |         goto label_0;
                                                             |     }
    0x00009398 mov r3, r1                                    |     r3 = r1;
    0x0000939c str r6, [sp]                                  |     *(sp) = r6;
    0x000093a0 mov r0, r8                                    |     r0 = r8;
    0x000093a4 bl 0x34adc                                    |     r0 = fcn_00034adc (r0, r1);
    0x000093a8 subs r3, r0, 0                                |     r3 = r0 - 0;
                                                             |     if (r3 == r0) {
    0x000093ac bne 0x93d0                                    |         
    0x000093b0 mov r2, fp                                    |         r2 = fp;
    0x000093b4 add r1, sp, 0x24                              |         r1 += var_24h;
    0x000093b8 mov r0, r8                                    |         r0 = r8;
    0x000093bc str r3, [sp, 0x1c]                            |         var_1ch = r3;
    0x000093c0 bl 0x33a88                                    |         r0 = fcn_00033a88 (r0);
    0x000093c4 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000093c8 ldrne r3, [sp, 0x1c]                          |             r3 = var_1ch;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x000093cc strne r3, [sp, 0x24]                          |             var_24h = r3;
                                                             |             goto label_6;
                                                             |         }
                                                             |     }
                                                             | label_6:
    0x000093d0 ldr r3, [sp, 0x24]                            |     r3 = var_24h;
    0x000093d4 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000093d8 beq 0x92bc                                    |         goto label_0;
                                                             |     }
    0x000093dc stmib sp, {r6, sl}                            |     __asm ("stmib sp, {r6, sl}");
    0x000093e0 str r6, [sp]                                  |     *(sp) = r6;
    0x000093e4 ldrd r2, r3, [sp, 0x10]                       |     __asm ("ldrd r2, r3, [var_10h]");
    0x000093e8 mov r1, r4                                    |     r1 = r4;
    0x000093ec mov r0, r7                                    |     r0 = r7;
    0x000093f0 bl 0x7f3c                                     |     fcn_00007f3c (r0, r1, r2, r3, r4);
    0x000093f4 b 0x92bc                                      |     goto label_0;
                                                             | label_3:
    0x000093f8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000093fc bne 0x9288                                    |         goto label_1;
                                                             |     }
    0x00009400 mvn r4, 0x15                                  |     r4 = ~0x15;
    0x00009404 b 0x9334                                      |     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 @ 0x13cb0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.blkid_probe_filter_partitions_type ()            | void blkid_probe_filter_partitions_type (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 | label_1:
    0x0000b640 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000b644 ldr r7, [pc, 0x13c]                               |     r7 = *(0xb784);
    0x0000b648 sub sp, sp, 0x24                                  |     
    0x0000b64c mov r6, r2                                        |     r6 = r2;
    0x0000b650 mov r2, 1                                         |     r2 = 1;
    0x0000b654 str r0, [sp, 0xc]                                 |     var_ch = r0;
    0x0000b658 mov sl, r1                                        |     sl = r1;
    0x0000b65c str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0000b660 bl 0xb4a0                                         |     fcn_0000b4a0 (r0, r1);
    0x0000b664 add r7, pc, r7                                    |     r7 = pc + r7;
    0x0000b668 subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 != r0) {
    0x0000b66c mvneq r0, 0                                       |         r0 = ~0;
                                                                 |     }
                                                                 |     if (r5 != r0) {
    0x0000b670 beq 0xb718                                        |         
    0x0000b674 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x0000b678 mov r2, 0x1c                                      |         r2 = 0x1c;
    0x0000b67c mla r3, sl, r2, r3                                |         __asm ("mla r3, sl, r2, r3");
    0x0000b680 mov fp, 1                                         |         
    0x0000b684 ldr r8, [r3, 0x54]                                |         r8 = *((r3 + 0x54));
    0x0000b688 mov r4, 0                                         |         r4 = 0;
    0x0000b68c ldr r3, [r8, 0x18]                                |         r3 = *((r8 + 0x18));
    0x0000b690 mov sb, r3                                        |         sb = r3;
    0x0000b694 and r3, r6, 2                                     |         r3 = r6 & 2;
    0x0000b698 and r6, r6, fp                                    |         r6 &= fp;
    0x0000b69c str r3, [sp, 0x14]                                |         var_14h = r3;
                                                                 | label_0:
    0x0000b6a0 cmp sb, r4                                        |         
                                                                 |         if (sb != r4) {
    0x0000b6a4 bne 0xb720                                        |             goto label_2;
                                                                 |         }
    0x0000b6a8 ldr r3, [pc, 0xdc]                                |         r3 = *(0xb788);
    0x0000b6ac ldr r3, [r7, r3]                                  |         r3 = *((r7 + r3));
    0x0000b6b0 ldr r0, [r3]                                      |         r0 = *(0xb788);
    0x0000b6b4 ands r0, r0, 0x100                                |         r0 &= 0x100;
                                                                 |         if (r0 == r0) {
    0x0000b6b8 beq 0xb718                                        |             goto label_3;
                                                                 |         }
    0x0000b6bc ldr r3, [pc, 0xcc]                                |         r3 = *(0xb78c);
    0x0000b6c0 ldr r3, [r7, r3]                                  |         r3 = *((r7 + r3));
    0x0000b6c4 ldr r4, [r3]                                      |         r4 = *(0xb78c);
    0x0000b6c8 bl 0x58fc                                         |         getpid ();
    0x0000b6cc ldr r3, [pc, 0xc0]                                |         r3 = *(0xb790);
    0x0000b6d0 ldr r1, [pc, 0xc0]                                |         r1 = *(0xb794);
    0x0000b6d4 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000b6d8 str r3, [sp]                                      |         *(sp) = r3;
    0x0000b6dc ldr r3, [pc, 0xb8]                                |         r3 = *(0xb798);
    0x0000b6e0 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000b6e4 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000b6e8 mov r2, r0                                        |         r2 = r0;
    0x0000b6ec mov r0, r4                                        |         r0 = r4;
    0x0000b6f0 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000b6f4 ldr sb, [sp, 0xc]                                 |         sb = var_ch;
    0x0000b6f8 mov r3, 0x1c                                      |         r3 = 0x1c;
    0x0000b6fc mla sb, r3, sl, sb                                |         __asm ("mla sb, r3, sl, sb");
    0x0000b700 ldr r0, [pc, 0x98]                                |         r0 = *(0xb79c);
    0x0000b704 ldr r3, [sb, 0x54]                                |         r3 = *((sb + 0x54));
    0x0000b708 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000b70c ldr r1, [r3, 4]                                   |         r1 = *((r3 + 4));
    0x0000b710 bl 0xac7c                                         |         fcn_0000ac7c ();
    0x0000b714 mov r0, 0                                         |         r0 = 0;
                                                                 |     }
                                                                 | label_3:
    0x0000b718 add sp, sp, 0x24                                  |     
    0x0000b71c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |     
                                                                 | label_2:
    0x0000b720 ldr r3, [r8, 0x14]                                |     r3 = *((r8 + 0x14));
    0x0000b724 ldr r2, [r3, r4, lsl 2]                           |     offset_0 = r4 << 2;
                                                                 |     r2 = *((r3 + offset_0));
    0x0000b728 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0000b72c sub r3, r3, 4                                     |     r3 -= 4;
                                                                 |     do {
    0x0000b730 ldr r1, [r3, 4]!                                  |         r1 = *((r3 += 4));
    0x0000b734 cmp r1, 0                                         |         
                                                                 |         if (r1 == 0) {
    0x0000b738 bne 0xb748                                        |             
    0x0000b73c ldr r3, [sp, 0x14]                                |             r3 = var_14h;
    0x0000b740 cmp r3, 0                                         |             
    0x0000b744 b 0xb76c                                          |             goto label_4;
                                                                 |         }
    0x0000b748 ldr r0, [r2]                                      |         r0 = *(r2);
    0x0000b74c str r3, [sp, 0x1c]                                |         var_1ch = r3;
    0x0000b750 str r2, [sp, 0x18]                                |         var_18h = r2;
    0x0000b754 bl 0x5efc                                         |         strcmp (r0, r1);
    0x0000b758 ldr r2, [sp, 0x18]                                |         r2 = var_18h;
    0x0000b75c ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x0000b760 cmp r0, 0                                         |         
    0x0000b764 bne 0xb730                                        |         
                                                                 |     } while (r0 != 0);
    0x0000b768 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
                                                                 | label_4:
    0x0000b76c lsrne r1, r4, 5                                   |         r1 = r4 >> 5;
                                                                 |     }
                                                                 |     if (r6 == 0) {
    0x0000b770 ldrne r2, [r5, r1, lsl 2]                         |         offset_1 = r1 << 2;
                                                                 |         r2 = *((r5 + offset_1));
                                                                 |     }
                                                                 |     if (r6 == 0) {
    0x0000b774 andne r3, r4, 0x1f                                |         r3 = r4 & 0x1f;
                                                                 |     }
                                                                 |     if (r6 == 0) {
    0x0000b778 orrne r3, r2, fp, lsl r3                          |         r3 = r2 | (fp << r3);
                                                                 |     }
                                                                 |     if (r6 == 0) {
    0x0000b77c strne r3, [r5, r1, lsl 2]                         |         offset_2 = r1 << 2;
                                                                 |         *((r5 + offset_2)) = r3;
                                                                 |     }
    0x0000b780 add r4, r4, 1                                     |     r4++;
    0x0000b784 b 0xb6a0                                          |     goto label_0;
    0x00013cb0 mov r3, r2                                        |     r3 = r2;
    0x00013cb4 mov r2, r1                                        |     r2 = r1;
    0x00013cb8 mov r1, 2                                         |     r1 = 2;
    0x00013cbc b 0xb640                                          |     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 @ 0x1d694 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.blkid_probe_filter_superblocks_usage ()              | void blkid_probe_filter_superblocks_usage (int32_t arg1, int32_t arg2) {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_8h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0001d694 push {r0, r1, r4, r5, r6, r7, r8, sb, sl, lr}         |     
    0x0001d698 ldr r4, [pc, 0xe8]                                    |     r4 = *(0x1d784);
    0x0001d69c mov r7, r1                                            |     r7 = r1;
    0x0001d6a0 mov r6, r2                                            |     r6 = r2;
    0x0001d6a4 mov r1, 0                                             |     r1 = 0;
    0x0001d6a8 mov r2, 1                                             |     r2 = 1;
    0x0001d6ac mov r5, r0                                            |     r5 = r0;
    0x0001d6b0 bl 0xb4a0                                             |     fcn_0000b4a0 (r0, r1);
    0x0001d6b4 add r4, pc, r4                                        |     r4 = pc + r4;
    0x0001d6b8 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001d6bc mvneq r0, 0                                           |         r0 = ~0;
                                                                     |     }
                                                                     |     if (r0 == 0) {
    0x0001d6c0 beq 0x1d740                                           |         goto label_1;
                                                                     |     }
    0x0001d6c4 ldr ip, [r5, 0x54]                                    |     ip = *((r5 + 0x54));
    0x0001d6c8 mov lr, 1                                             |     lr = 1;
    0x0001d6cc ldr sb, [ip, 0x18]                                    |     sb = *((ip + 0x18));
    0x0001d6d0 mov r3, 0                                             |     r3 = 0;
    0x0001d6d4 and sl, r7, 2                                         |     sl = r7 & 2;
    0x0001d6d8 and r1, r7, lr                                        |     r1 = r7 & lr;
                                                                     |     do {
    0x0001d6dc cmp r3, sb                                            |         
                                                                     |         if (r3 == sb) {
    0x0001d6e0 bne 0x1d748                                           |             
    0x0001d6e4 ldr r3, [pc, 0xa0]                                    |             r3 = *(0x1d788);
    0x0001d6e8 ldr r3, [r4, r3]                                      |             r3 = *((r4 + r3));
    0x0001d6ec ldr r0, [r3]                                          |             r0 = *(0x1d788);
    0x0001d6f0 ands r0, r0, 0x100                                    |             r0 &= 0x100;
                                                                     |             if (r0 != r0) {
    0x0001d6f4 beq 0x1d740                                           |                 
    0x0001d6f8 ldr r3, [pc, 0x90]                                    |                 r3 = *(0x1d78c);
    0x0001d6fc ldr r3, [r4, r3]                                      |                 r3 = *((r4 + r3));
    0x0001d700 ldr r4, [r3]                                          |                 r4 = *(0x1d78c);
    0x0001d704 bl 0x58fc                                             |                 getpid ();
    0x0001d708 ldr r3, [pc, 0x84]                                    |                 r3 = *(0x1d790);
    0x0001d70c ldr r1, [pc, 0x84]                                    |                 r1 = *(0x1d794);
    0x0001d710 add r3, pc, r3                                        |                 r3 = pc + r3;
    0x0001d714 str r3, [sp]                                          |                 *(sp) = r3;
    0x0001d718 ldr r3, [pc, 0x7c]                                    |                 r3 = *(0x1d798);
    0x0001d71c add r1, pc, r1                                        |                 r1 = pc + r1;
    0x0001d720 add r3, pc, r3                                        |                 r3 = pc + r3;
    0x0001d724 mov r2, r0                                            |                 r2 = r0;
    0x0001d728 mov r0, r4                                            |                 r0 = r4;
    0x0001d72c bl 0x5c50                                             |                 fprintf (r0, r1, r2, r3)
    0x0001d730 ldr r0, [pc, 0x68]                                    |                 r0 = *(0x1d79c);
    0x0001d734 add r0, pc, r0                                        |                 r0 = pc + r0;
    0x0001d738 bl 0x1cd58                                            |                 fcn_0001cd58 ();
    0x0001d73c mov r0, 0                                             |                 r0 = 0;
                                                                     |             }
                                                                     | label_1:
    0x0001d740 add sp, sp, 8                                         |             
    0x0001d744 pop {r4, r5, r6, r7, r8, sb, sl, pc}                  |             
                                                                     |         }
    0x0001d748 ldr r2, [ip, 0x14]                                    |         r2 = *((ip + 0x14));
    0x0001d74c ldr r2, [r2, r3, lsl 2]                               |         offset_0 = r3 << 2;
                                                                     |         r2 = *((r2 + offset_0));
    0x0001d750 ldr r2, [r2, 4]                                       |         r2 = *((r2 + 4));
    0x0001d754 tst r6, r2                                            |         
                                                                     |         if ((r6 & r2) == 0) {
    0x0001d758 beq 0x1d780                                           |             goto label_2;
                                                                     |         }
    0x0001d75c cmp r1, 0                                             |         
                                                                     |         if (r1 == 0) {
                                                                     | label_0:
    0x0001d760 ldrne r7, [r5, 0x68]                                  |             r7 = *((r5 + 0x68));
                                                                     |         }
                                                                     |         if (r1 == 0) {
    0x0001d764 lsrne r8, r3, 5                                       |             r8 = r3 >> 5;
                                                                     |         }
                                                                     |         if (r1 == 0) {
    0x0001d768 ldrne r0, [r7, r8, lsl 2]                             |             offset_1 = r8 << 2;
                                                                     |             r0 = *((r7 + offset_1));
                                                                     |         }
                                                                     |         if (r1 == 0) {
    0x0001d76c andne r2, r3, 0x1f                                    |             r2 = r3 & 0x1f;
                                                                     |         }
                                                                     |         if (r1 == 0) {
    0x0001d770 orrne r2, r0, lr, lsl r2                              |             r2 = r0 | (lr << r2);
                                                                     |         }
    0x0001d774 add r3, r3, 1                                         |         r3++;
                                                                     |         if (r1 == 0) {
    0x0001d778 strne r2, [r7, r8, lsl 2]                             |             offset_2 = r8 << 2;
                                                                     |             *((r7 + offset_2)) = r2;
                                                                     |         }
    0x0001d77c b 0x1d6dc                                             |         
                                                                     |     } while (1);
                                                                     | label_2:
    0x0001d780 cmp sl, 0                                             |     
    0x0001d784 b 0x1d760                                             |     goto label_0;
                                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x2139c */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.blkid_probe_get_topology ()                          | void blkid_probe_get_topology (uint32_t arg1) {
                                                                     |     int32_t var_0h;
                                                                     |     r0 = arg1;
                                                                     |     do {
    0x0000b3b8 push {r0, r1, r4, r5, r6, r7, r8, sb, sl, lr}         |         
    0x0000b3bc ldr sl, [r0, 0xa8]                                    |         sl = *((r0 + 0xa8));
    0x0000b3c0 mov r5, 0                                             |         r5 = 0;
    0x0000b3c4 mov r3, 1                                             |         r3 = 1;
    0x0000b3c8 ldr sb, [r0, 0x34]                                    |         sb = *((r0 + 0x34));
    0x0000b3cc str r1, [r0, 0xa8]                                    |         *((r0 + 0xa8)) = r1;
    0x0000b3d0 str r5, [r0, 0x34]                                    |         *((r0 + 0x34)) = r5;
    0x0000b3d4 str r3, [r1, 0xc]                                     |         *((r1 + 0xc)) = r3;
    0x0000b3d8 ldr r3, [r1]                                          |         r3 = *(r1);
    0x0000b3dc mvn r8, 0                                             |         r8 = ~0;
    0x0000b3e0 str r8, [r1, 0x10]                                    |         *((r1 + 0x10)) = r8;
    0x0000b3e4 ldr r3, [r3, 0x1c]                                    |         r3 = *((r3 + 0x1c));
    0x0000b3e8 mov r6, r0                                            |         r6 = r0;
    0x0000b3ec mov r4, r1                                            |         r4 = r1;
    0x0000b3f0 blx r3                                                |         uint32_t (*r3)(uint32_t) (r3);
    0x0000b3f4 ldr r7, [pc, 0x88]                                    |         r7 = *(0xb480);
    0x0000b3f8 str r5, [r4, 0xc]                                     |         *((r4 + 0xc)) = r5;
    0x0000b3fc str r8, [r4, 0x10]                                    |         *((r4 + 0x10)) = r8;
    0x0000b400 add r7, pc, r7                                        |         r7 = pc + r7;
    0x0000b404 str sl, [r6, 0xa8]                                    |         *((r6 + 0xa8)) = sl;
    0x0000b408 str sb, [r6, 0x34]                                    |         *((r6 + 0x34)) = sb;
    0x0000b40c cmp r0, r5                                            |         
                                                                     |         if (r0 == r5) {
    0x0000b410 movne r0, r5                                          |             r0 = r5;
                                                                     |         }
                                                                     |         if (r0 == r5) {
    0x0000b414 bne 0xb47c                                            |             
    0x0000b418 ldr r3, [pc, 0x68]                                    |             
    0x0000b41c ldr r3, [r7, r3]                                      |             r3 = *((r7 + r3));
    0x0000b420 ldr r3, [r3]                                          |             r3 = *(0xb484);
    0x0000b424 tst r3, 0x100                                         |             
                                                                     |             if ((r3 & 0x100) != 0) {
    0x0000b428 beq 0xb478                                            |                 
    0x0000b42c ldr r3, [pc, 0x58]                                    |                 r3 = *(0xb488);
    0x0000b430 ldr r3, [r7, r3]                                      |                 r3 = *((r7 + r3));
    0x0000b434 ldr r5, [r3]                                          |                 r5 = *(0xb488);
    0x0000b438 bl 0x58fc                                             |                 getpid ();
    0x0000b43c ldr r3, [pc, 0x4c]                                    |                 r3 = *(0xb48c);
    0x0000b440 ldr r1, [pc, 0x4c]                                    |                 r1 = *(0xb490);
    0x0000b444 add r3, pc, r3                                        |                 r3 = pc + r3;
    0x0000b448 str r3, [sp]                                          |                 *(sp) = r3;
    0x0000b44c ldr r3, [pc, 0x44]                                    |                 r3 = *(0xb494);
    0x0000b450 add r1, pc, r1                                        |                 r1 = pc + r1;
    0x0000b454 add r3, pc, r3                                        |                 r3 = pc + r3;
    0x0000b458 mov r2, r0                                            |                 r2 = r0;
    0x0000b45c mov r0, r5                                            |                 r0 = r5;
    0x0000b460 bl 0x5c50                                             |                 fprintf (r0, r1, r2, r3)
    0x0000b464 ldr r3, [r4]                                          |                 r3 = *(r4);
    0x0000b468 ldr r0, [pc, 0x2c]                                    |                 r0 = *(0xb498);
    0x0000b46c ldr r1, [r3, 4]                                       |                 r1 = *(0xb498);
    0x0000b470 add r0, pc, r0                                        |                 r0 = pc + r0;
    0x0000b474 bl 0xac7c                                             |                 fcn_0000ac7c ();
                                                                     |             }
    0x0000b478 ldr r0, [r4, 0x18]                                    |             r0 = *((r4 + 0x18));
                                                                     |         }
    0x0000b47c add sp, sp, 8                                         |         
    0x0000b480 pop {r4, r5, r6, r7, r8, sb, sl, pc}                  |         
    0x0002139c add r1, r0, 0x70                                      |         r1 = r0 + 0x70;
    0x000213a0 b 0xb3b8                                              |         
                                                                     |     } 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 @ 0xcb00 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.blkid_probe_get_value ()                     | void blkid_probe_get_value (int32_t arg_20h, int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0000cb00 push {r0, r1, r4, r5, r6, r7, r8, lr}         |     
    0x0000cb04 ldr r6, [sp, 0x20]                            |     r6 = *(arg_20h);
    0x0000cb08 mov r8, r2                                    |     r8 = r2;
    0x0000cb0c mov r7, r3                                    |     r7 = r3;
    0x0000cb10 bl 0xcac4                                     |     fcn_0000cac4 (r0, r1);
    0x0000cb14 ldr r5, [pc, 0x98]                            |     r5 = *(0xcbb0);
    0x0000cb18 add r5, pc, r5                                |     r5 = pc + r5;
    0x0000cb1c subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 != r0) {
    0x0000cb20 mvneq r0, 0                                   |         r0 = ~0;
                                                             |     }
                                                             |     if (r4 != r0) {
    0x0000cb24 beq 0xcbac                                    |         
    0x0000cb28 cmp r8, 0                                     |         
                                                             |         if (r8 == 0) {
    0x0000cb2c ldrne r3, [r4]                                |             r3 = *(r4);
                                                             |         }
                                                             |         if (r8 == 0) {
    0x0000cb30 strne r3, [r8]                                |             *(r8) = r3;
                                                             |         }
    0x0000cb34 cmp r7, 0                                     |         
                                                             |         if (r7 == 0) {
    0x0000cb38 ldrne r3, [r4, 4]                             |             r3 = *((r4 + 4));
                                                             |         }
                                                             |         if (r7 == 0) {
    0x0000cb3c strne r3, [r7]                                |             *(r7) = r3;
                                                             |         }
    0x0000cb40 cmp r6, 0                                     |         
                                                             |         if (r6 == 0) {
    0x0000cb44 ldrne r3, [r4, 8]                             |             r3 = *((r4 + 8));
                                                             |         }
                                                             |         if (r6 == 0) {
    0x0000cb48 strne r3, [r6]                                |             *(r6) = r3;
                                                             |         }
    0x0000cb4c ldr r3, [pc, 0x64]                            |         r3 = *(0xcbb4);
    0x0000cb50 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x0000cb54 ldr r0, [r3]                                  |         r0 = *(0xcbb4);
    0x0000cb58 ands r0, r0, 0x100                            |         r0 &= 0x100;
                                                             |         if (r0 == r0) {
    0x0000cb5c beq 0xcbac                                    |             goto label_0;
                                                             |         }
    0x0000cb60 ldr r3, [pc, 0x54]                            |         r3 = *(0xcbb8);
    0x0000cb64 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x0000cb68 ldr r5, [r3]                                  |         r5 = *(0xcbb8);
    0x0000cb6c bl 0x58fc                                     |         getpid ();
    0x0000cb70 ldr r3, [pc, 0x48]                            |         r3 = *(0xcbbc);
    0x0000cb74 ldr r1, [pc, 0x48]                            |         r1 = *(0xcbc0);
    0x0000cb78 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000cb7c str r3, [sp]                                  |         *(sp) = r3;
    0x0000cb80 ldr r3, [pc, 0x40]                            |         r3 = *(0xcbc4);
    0x0000cb84 add r1, pc, r1                                |         r1 = pc + r1;
    0x0000cb88 add r3, pc, r3                                |         r3 = pc + r3;
    0x0000cb8c mov r2, r0                                    |         r2 = r0;
    0x0000cb90 mov r0, r5                                    |         r0 = r5;
    0x0000cb94 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x0000cb98 ldr r0, [pc, 0x2c]                            |         r0 = *(0xcbc8);
    0x0000cb9c ldr r1, [r4]                                  |         r1 = *(r4);
    0x0000cba0 add r0, pc, r0                                |         r0 = pc + r0;
    0x0000cba4 bl 0xac7c                                     |         fcn_0000ac7c ();
    0x0000cba8 mov r0, 0                                     |         r0 = 0;
                                                             |     }
                                                             | label_0:
    0x0000cbac add sp, sp, 8                                 |     
    0x0000cbb0 pop {r4, r5, r6, r7, r8, pc}                  |     
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xbab0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.blkid_probe_hide_range ()                        | void blkid_probe_hide_range (int32_t arg_48h, int32_t arg1, uint32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_0h_2;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_8h_2;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_10h_2;
                                                                 |     int32_t var_18h;
                                                                 |     char * format;
                                                                 |     int32_t var_24h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0000bab0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000bab4 ldr r7, [pc, 0x134]                               |     r7 = *(0xbbec);
    0x0000bab8 ldrd sl, fp, [r0, 8]                              |     __asm ("ldrd sl, fp, [r0, 8]");
    0x0000babc ldr r4, [r0, 0x4c]                                |     r4 = *(arg_48hx4c);
    0x0000bac0 sub sp, sp, 0x24                                  |     
    0x0000bac4 strd r2, r3, [sp, 8]                              |     __asm ("strd r2, r3, [var_8h]");
    0x0000bac8 adds r2, r2, sl                                   |     r2 += sl;
    0x0000bacc adc r3, r3, fp                                    |     __asm ("adc r3, r3, fp");
    0x0000bad0 mov sl, r2                                        |     sl = r2;
    0x0000bad4 mov fp, r3                                        |     
    0x0000bad8 ldrd r2, r3, [sp, 0x48]                           |     __asm ("ldrd r2, r3, [arg_48h]");
    0x0000badc mov r5, r0                                        |     r5 = r0;
    0x0000bae0 adds r2, r2, sl                                   |     r2 += sl;
    0x0000bae4 adc r3, r3, fp                                    |     __asm ("adc r3, r3, fp");
    0x0000bae8 strd r2, r3, [sp, 0x10]                           |     __asm ("strd r2, r3, [var_10h]");
    0x0000baec ldr r3, [pc, 0x100]                               |     r3 = *(0xbbf0);
    0x0000baf0 mov r6, 0                                         |     r6 = 0;
    0x0000baf4 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000baf8 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0000bafc ldr r3, [pc, 0xf4]                                |     r3 = *(0xbbf4);
    0x0000bb00 add r7, pc, r7                                    |     r7 = pc + r7;
    0x0000bb04 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000bb08 str r3, [sp, 0x1c]                                |     format = r3;
                                                                 |     do {
    0x0000bb0c add r3, r5, 0x4c                                  |         r3 = r5 + 0x4c;
    0x0000bb10 cmp r4, r3                                        |         
                                                                 |         if (r4 == r3) {
    0x0000bb14 bne 0xbb38                                        |             
    0x0000bb18 cmp r6, 0                                         |             
                                                                 |             if (r6 == 0) {
    0x0000bb1c ldrne r3, [r5, 0x30]                              |                 r3 = *((r5 + 0x30));
                                                                 |             }
                                                                 |             if (r6 == 0) {
    0x0000bb20 movne r0, 0                                       |                 r0 = 0;
                                                                 |             }
                                                                 |             if (r6 == 0) {
    0x0000bb24 orrne r3, r3, 0x20                                |                 r3 |= 0x20;
                                                                 |             }
                                                                 |             if (r6 != 0) {
    0x0000bb28 mvneq r0, 0x15                                    |                 r0 = ~0x15;
                                                                 |             }
                                                                 |             if (r6 == 0) {
    0x0000bb2c strne r3, [r5, 0x30]                              |                 *((r5 + 0x30)) = r3;
                                                                 |             }
    0x0000bb30 add sp, sp, 0x24                                  |             
    0x0000bb34 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |             
                                                                 |         }
    0x0000bb38 ldrd r0, r1, [r4, -0x10]                          |         __asm ("ldrd r0, r1, [r4, -0x10]");
    0x0000bb3c cmp fp, r1                                        |         
    0x0000bb40 cmpeq sl, r0                                      |         __asm ("cmpeq sl, r0");
                                                                 |         if (fp > r1) {
    0x0000bb44 blo 0xbbe8                                        |             
    0x0000bb48 ldrd r2, r3, [r4, -8]                             |             __asm ("ldrd r2, r3, [r4, -8]");
    0x0000bb4c adds r8, r2, r0                                   |             r8 = r2 + r0;
    0x0000bb50 adc sb, r3, r1                                    |             __asm ("adc sb, r3, r1");
    0x0000bb54 ldrd r2, r3, [sp, 0x10]                           |             __asm ("ldrd r2, r3, [var_10h]");
    0x0000bb58 cmp r3, sb                                        |             
    0x0000bb5c cmpeq r2, r8                                      |             __asm ("cmpeq r2, r8");
                                                                 |             if (r3 > sb) {
    0x0000bb60 bhi 0xbbe8                                        |                 goto label_0;
                                                                 |             }
    0x0000bb64 orrs r3, sl, fp                                   |             r3 = sl | fp;
    0x0000bb68 ldr r3, [pc, 0x8c]                                |             
    0x0000bb6c ldr r8, [r4, -0x18]                               |             r8 = *((r4 - 0x18));
    0x0000bb70 ldr r3, [r7, r3]                                  |             r3 = *((r7 + r3));
                                                                 |             if (r3 == sl) {
    0x0000bb74 subne r0, sl, r0                                  |                 r0 = sl - r0;
                                                                 |             }
    0x0000bb78 ldr r3, [r3]                                      |             r3 = *(0xbbf8);
                                                                 |             if (r3 == sl) {
    0x0000bb7c addne r8, r8, r0                                  |                 r8 += r0;
                                                                 |             }
    0x0000bb80 tst r3, 0x2000                                    |             
                                                                 |             if ((r3 & 0x2000) != 0) {
    0x0000bb84 beq 0xbbd4                                        |                 
    0x0000bb88 ldr r3, [pc, 0x70]                                |                 
    0x0000bb8c ldr r3, [r7, r3]                                  |                 r3 = *((r7 + r3));
    0x0000bb90 ldr r3, [r3]                                      |                 r3 = *(0xbbfc);
    0x0000bb94 mov sb, r3                                        |                 sb = r3;
    0x0000bb98 bl 0x58fc                                         |                 getpid ();
    0x0000bb9c ldr r3, [pc, 0x60]                                |                 r3 = *(0xbc00);
    0x0000bba0 ldr r1, [sp, 0x1c]                                |                 r1 = format;
    0x0000bba4 add r3, pc, r3                                    |                 r3 = pc + r3;
    0x0000bba8 str r3, [sp]                                      |                 *(sp) = r3;
    0x0000bbac ldr r3, [sp, 0x18]                                |                 r3 = var_18h;
    0x0000bbb0 mov r2, r0                                        |                 r2 = r0;
    0x0000bbb4 mov r0, sb                                        |                 r0 = sb;
    0x0000bbb8 bl 0x5c50                                         |                 fprintf (r0, r1, r2, r3)
    0x0000bbbc ldrd r2, r3, [sp, 0x48]                           |                 __asm ("ldrd r2, r3, [arg_48h]");
    0x0000bbc0 ldr r0, [pc, 0x40]                                |                 r0 = *(0xbc04);
    0x0000bbc4 strd r2, r3, [sp]                                 |                 __asm ("strd r2, r3, [sp]");
    0x0000bbc8 add r0, pc, r0                                    |                 r0 = pc + r0;
    0x0000bbcc ldrd r2, r3, [sp, 8]                              |                 __asm ("ldrd r2, r3, [var_8h]");
    0x0000bbd0 bl 0xac7c                                         |                 fcn_0000ac7c ();
                                                                 |             }
    0x0000bbd4 ldr r2, [sp, 0x48]                                |             r2 = *(arg_48h);
    0x0000bbd8 mov r1, 0                                         |             r1 = 0;
    0x0000bbdc mov r0, r8                                        |             r0 = r8;
    0x0000bbe0 bl 0x5e78                                         |             memset (r0, r1, r2);
    0x0000bbe4 add r6, r6, 1                                     |             r6++;
                                                                 |         }
                                                                 | label_0:
    0x0000bbe8 ldr r4, [r4]                                      |         r4 = *(r4);
    0x0000bbec b 0xbb0c                                          |         
                                                                 |     } 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 @ 0x1d67c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.blkid_probe_invert_superblocks_filter ()         | void blkid_probe_invert_superblocks_filter () {
                                                                 |     int32_t var_0h;
                                                                 | label_1:
    0x0000b544 mov r3, 0x1c                                      |     r3 = 0x1c;
    0x0000b548 push {r0, r1, r4, lr}                             |     
    0x0000b54c mla lr, r3, r1, r0                                |     __asm ("mla lr, r3, r1, r0");
    0x0000b550 ldr ip, [pc, 0xb0]                                |     ip = *(0x0000b608);
    0x0000b554 ldr r2, [lr, 0x54]                                |     r2 = *((lr + 0x54));
    0x0000b558 add ip, pc, ip                                    |     
    0x0000b55c ldr r3, [r2, 0x10]                                |     r3 = *((r2 + 0x10));
    0x0000b560 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000b564 beq 0xb600                                        |         goto label_2;
                                                                 |     }
    0x0000b568 ldr r3, [lr, 0x68]                                |     r3 = *((lr + 0x68));
    0x0000b56c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000b570 beq 0xb600                                        |         goto label_2;
                                                                 |     }
    0x0000b574 ldr r2, [r2, 0x18]                                |     r2 = *((r2 + 0x18));
    0x0000b578 add r2, r2, 0x20                                  |     r2 += 0x20;
    0x0000b57c lsr r2, r2, 5                                     |     r2 >>= 5;
    0x0000b580 add r2, r3, r2, lsl 2                             |     r2 = r3 + (r2 << 2);
                                                                 |     do {
    0x0000b584 cmp r3, r2                                        |         
                                                                 |         if (r3 == r2) {
    0x0000b588 bne 0xb5f0                                        |             
    0x0000b58c ldr r3, [pc, 0x78]                                |             r3 = *(0xb608);
    0x0000b590 ldr r3, [ip, r3]                                  |             r3 = *((ip + r3));
    0x0000b594 ldr r0, [r3]                                      |             r0 = *(0xb608);
    0x0000b598 ands r0, r0, 0x100                                |             r0 &= 0x100;
                                                                 |             if (r0 != r0) {
    0x0000b59c beq 0xb5e8                                        |                 
    0x0000b5a0 ldr r3, [pc, 0x68]                                |                 r3 = *(0xb60c);
    0x0000b5a4 ldr r3, [ip, r3]                                  |                 r3 = *((ip + r3));
    0x0000b5a8 ldr r4, [r3]                                      |                 r4 = *(0xb60c);
    0x0000b5ac bl 0x58fc                                         |                 getpid ();
    0x0000b5b0 ldr r3, [pc, 0x5c]                                |                 r3 = *(0xb610);
    0x0000b5b4 ldr r1, [pc, 0x5c]                                |                 r1 = *(0xb614);
    0x0000b5b8 add r3, pc, r3                                    |                 r3 = pc + r3;
    0x0000b5bc str r3, [sp]                                      |                 *(sp) = r3;
    0x0000b5c0 ldr r3, [pc, 0x54]                                |                 r3 = *(0xb618);
    0x0000b5c4 add r1, pc, r1                                    |                 r1 = pc + r1;
    0x0000b5c8 add r3, pc, r3                                    |                 r3 = pc + r3;
    0x0000b5cc mov r2, r0                                        |                 r2 = r0;
    0x0000b5d0 mov r0, r4                                        |                 r0 = r4;
    0x0000b5d4 bl 0x5c50                                         |                 fprintf (r0, r1, r2, r3)
    0x0000b5d8 ldr r0, [pc, 0x40]                                |                 r0 = *(0xb61c);
    0x0000b5dc add r0, pc, r0                                    |                 r0 = pc + r0;
    0x0000b5e0 bl 0xac7c                                         |                 fcn_0000ac7c ();
    0x0000b5e4 mov r0, 0                                         |                 r0 = 0;
                                                                 |             }
                                                                 | label_0:
    0x0000b5e8 add sp, sp, 8                                     |             
    0x0000b5ec pop {r4, pc}                                      |             
                                                                 |         }
    0x0000b5f0 ldr r1, [r3]                                      |         r1 = *(r3);
    0x0000b5f4 mvn r1, r1                                        |         r1 = ~r1;
    0x0000b5f8 str r1, [r3], 4                                   |         *(r3) = r1;
                                                                 |         r3 += 4;
    0x0000b5fc b 0xb584                                          |         
                                                                 |     } while (1);
                                                                 | label_2:
    0x0000b600 mvn r0, 0                                         |     r0 = ~0;
    0x0000b604 b 0xb5e8                                          |     goto label_0;
    0x0001d67c mov r1, 0                                         |     r1 = 0;
    0x0001d680 b 0xb544                                          |     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 @ 0xb7a4 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.blkid_probe_reset_buffers ()                     | void blkid_probe_reset_buffers (int32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_0h_2;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_8h_2;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     char * format;
                                                                 |     int32_t var_1ch;
                                                                 |     int32_t var_24h;
                                                                 |     r0 = arg1;
    0x0000b7a4 ldr r3, [r0, 0x30]                                |     r3 = *((r0 + 0x30));
    0x0000b7a8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000b7ac ldr r6, [pc, 0x1b4]                               |     r6 = *(0xb964);
    0x0000b7b0 bic r3, r3, 0x20                                  |     r3 = BIT_MASK (r3, 0x20);
    0x0000b7b4 str r3, [r0, 0x30]                                |     *((r0 + 0x30)) = r3;
    0x0000b7b8 ldr r3, [r0, 0x4c]                                |     r3 = *((r0 + 0x4c));
    0x0000b7bc add r7, r0, 0x4c                                  |     r7 = r0 + 0x4c;
    0x0000b7c0 cmp r7, r3                                        |     
    0x0000b7c4 add r6, pc, r6                                    |     r6 = pc + r6;
    0x0000b7c8 sub sp, sp, 0x24                                  |     
                                                                 |     if (r7 == r3) {
    0x0000b7cc beq 0xb8d8                                        |         goto label_0;
                                                                 |     }
    0x0000b7d0 ldr r3, [pc, 0x194]                               |     
    0x0000b7d4 mov r4, r0                                        |     r4 = r0;
    0x0000b7d8 ldr r3, [r6, r3]                                  |     r3 = *((r6 + r3));
    0x0000b7dc str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0000b7e0 ldr r3, [r3]                                      |     r3 = *(0xb968);
    0x0000b7e4 tst r3, 0x2000                                    |     
                                                                 |     if ((r3 & 0x2000) != 0) {
    0x0000b7e8 beq 0xb830                                        |         
    0x0000b7ec ldr r3, [pc, 0x17c]                               |         r3 = *(0xb96c);
    0x0000b7f0 ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0000b7f4 ldr r5, [r3]                                      |         r5 = *(0xb96c);
    0x0000b7f8 bl 0x58fc                                         |         getpid ();
    0x0000b7fc ldr r3, [pc, 0x170]                               |         r3 = *(0xb970);
    0x0000b800 ldr r1, [pc, 0x170]                               |         r1 = *(0xb974);
    0x0000b804 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000b808 str r3, [sp]                                      |         *(sp) = r3;
    0x0000b80c ldr r3, [pc, 0x168]                               |         r3 = *(0xb978);
    0x0000b810 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000b814 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000b818 mov r2, r0                                        |         r2 = r0;
    0x0000b81c mov r0, r5                                        |         r0 = r5;
    0x0000b820 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000b824 ldr r0, [pc, 0x154]                               |         r0 = *(0xb97c);
    0x0000b828 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000b82c bl 0xac7c                                         |         fcn_0000ac7c ();
                                                                 |     }
    0x0000b830 ldr r3, [pc, 0x14c]                               |     r3 = *(0xb980);
    0x0000b834 mov r8, 0                                         |     r8 = 0;
    0x0000b838 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000b83c str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0000b840 ldr r3, [pc, 0x140]                               |     r3 = *(0xb984);
    0x0000b844 mov sb, 0                                         |     sb = 0;
    0x0000b848 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000b84c str r3, [sp, 0x18]                                |     format = r3;
    0x0000b850 ldr r3, [pc, 0x134]                               |     r3 = *(0xb988);
    0x0000b854 strd r8, sb, [sp, 8]                              |     __asm ("strd r8, sb, [var_8h]");
    0x0000b858 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000b85c str r3, [sp, 0x1c]                                |     var_1ch = r3;
                                                                 |     do {
    0x0000b860 ldr r5, [r4, 0x4c]                                |         r5 = *((r4 + 0x4c));
    0x0000b864 ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x0000b868 cmp r7, r5                                        |         
    0x0000b86c ldr r1, [r3]                                      |         r1 = *(r3);
                                                                 |         if (r7 == r5) {
    0x0000b870 bne 0xb8e4                                        |             
    0x0000b874 tst r1, 0x100                                     |             
                                                                 |             if ((r1 & 0x100) != 0) {
    0x0000b878 beq 0xb8d0                                        |                 
    0x0000b87c ldr r3, [pc, 0xec]                                |                 r3 = *(0xb96c);
    0x0000b880 ldr r3, [r6, r3]                                  |                 r3 = *((r6 + r3));
    0x0000b884 ldr r5, [r3]                                      |                 r5 = *(0xb96c);
    0x0000b888 bl 0x58fc                                         |                 getpid ();
    0x0000b88c ldr r3, [pc, 0xfc]                                |                 r3 = *(0xb98c);
    0x0000b890 ldr r1, [pc, 0xfc]                                |                 r1 = *(0xb990);
    0x0000b894 add r3, pc, r3                                    |                 r3 = pc + r3;
    0x0000b898 str r3, [sp]                                      |                 *(sp) = r3;
    0x0000b89c ldr r3, [pc, 0xf4]                                |                 r3 = *(0xb994);
    0x0000b8a0 add r1, pc, r1                                    |                 r1 = pc + r1;
    0x0000b8a4 add r3, pc, r3                                    |                 r3 = pc + r3;
    0x0000b8a8 mov r2, r0                                        |                 r2 = r0;
    0x0000b8ac mov r0, r5                                        |                 r0 = r5;
    0x0000b8b0 bl 0x5c50                                         |                 fprintf (r0, r1, r2, r3)
    0x0000b8b4 ldrd r2, r3, [sp, 8]                              |                 __asm ("ldrd r2, r3, [var_8h]");
    0x0000b8b8 ldr r0, [pc, 0xdc]                                |                 r0 = *(0xb998);
    0x0000b8bc strd r2, r3, [sp]                                 |                 __asm ("strd r2, r3, [sp]");
    0x0000b8c0 add r0, pc, r0                                    |                 r0 = pc + r0;
    0x0000b8c4 mov r2, r8                                        |                 r2 = r8;
    0x0000b8c8 mov r3, sb                                        |                 r3 = sb;
    0x0000b8cc bl 0xac7c                                         |                 fcn_0000ac7c ();
                                                                 |             }
    0x0000b8d0 str r7, [r4, 0x4c]                                |             *((r4 + 0x4c)) = r7;
    0x0000b8d4 str r7, [r4, 0x50]                                |             *((r4 + 0x50)) = r7;
                                                                 | label_0:
    0x0000b8d8 mov r0, 0                                         |             r0 = 0;
    0x0000b8dc add sp, sp, 0x24                                  |             
    0x0000b8e0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |             
                                                                 |         }
    0x0000b8e4 ldrd r2, r3, [sp, 8]                              |         __asm ("ldrd r2, r3, [var_8h]");
    0x0000b8e8 sub sl, r5, 0x18                                  |         sl = r5 - 0x18;
    0x0000b8ec adds r2, r2, 1                                    |         r2++;
    0x0000b8f0 adc r3, r3, 0                                     |         __asm ("adc r3, r3, 0");
    0x0000b8f4 strd r2, r3, [sp, 8]                              |         __asm ("strd r2, r3, [var_8h]");
    0x0000b8f8 ldrd r2, r3, [r5, -8]                             |         __asm ("ldrd r2, r3, [r5, -8]");
    0x0000b8fc adds r8, r8, r2                                   |         r8 += r2;
    0x0000b900 adc sb, sb, r3                                    |         __asm ("adc sb, sb, r3");
    0x0000b904 ldm r5, {r2, r3}                                  |         r2 = *(r5);
                                                                 |         r3 = *((r5 + 4));
    0x0000b908 tst r1, 0x2000                                    |         
    0x0000b90c str r3, [r2, 4]                                   |         *((r2 + 4)) = r3;
    0x0000b910 str r2, [r3]                                      |         *(r3) = r2;
                                                                 |         if ((r1 & 0x2000) != 0) {
    0x0000b914 beq 0xb95c                                        |             
    0x0000b918 ldr r3, [pc, 0x50]                                |             r3 = *(0xb96c);
    0x0000b91c ldr r3, [r6, r3]                                  |             r3 = *((r6 + r3));
    0x0000b920 ldr fp, [r3]                                      |             fp = *(0xb96c);
    0x0000b924 bl 0x58fc                                         |             getpid ();
    0x0000b928 ldr r3, [sp, 0x1c]                                |             r3 = var_1ch;
    0x0000b92c ldr r1, [sp, 0x18]                                |             r1 = format;
    0x0000b930 str r3, [sp]                                      |             *(sp) = r3;
    0x0000b934 ldr r3, [sp, 0x14]                                |             r3 = var_14h;
    0x0000b938 mov r2, r0                                        |             r2 = r0;
    0x0000b93c mov r0, fp                                        |             r0 = fp;
    0x0000b940 bl 0x5c50                                         |             fprintf (r0, r1, r2, r3)
    0x0000b944 ldrd r0, r1, [r5, -8]                             |             __asm ("ldrd r0, r1, [r5, -8]");
    0x0000b948 ldrd r2, r3, [r5, -0x10]                          |             __asm ("ldrd r2, r3, [r5, -0x10]");
    0x0000b94c strd r0, r1, [sp]                                 |             __asm ("strd r0, r1, [sp]");
    0x0000b950 ldr r0, [pc, 0x48]                                |             r0 = *(0xb99c);
    0x0000b954 add r0, pc, r0                                    |             r0 = pc + r0;
    0x0000b958 bl 0xac7c                                         |             fcn_0000ac7c ();
                                                                 |         }
    0x0000b95c mov r0, sl                                        |         r0 = sl;
    0x0000b960 bl 0x6220                                         |         free (r0);
    0x0000b964 b 0xb860                                          |         
                                                                 |     } 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 @ 0xd2c0 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.blkid_probe_set_device ()                        | void blkid_probe_set_device (int32_t arg_2c0h, int32_t arg_2c4h, int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_bp_0h;
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_1ch;
                                                                 |     void * ptr;
                                                                 |     int32_t var_28h;
                                                                 |     int32_t var_30h;
                                                                 |     int32_t var_40h;
                                                                 |     int32_t var_50h;
                                                                 |     int32_t var_50h_2;
                                                                 |     int32_t var_60h;
                                                                 |     int32_t var_60h_2;
                                                                 |     void * buf;
                                                                 |     int32_t var_29ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0000d2c0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000d2c4 ldr r5, [pc, 0x6c8]                               |     r5 = *(0xd990);
    0x0000d2c8 sub sp, sp, 0x29c                                 |     
    0x0000d2cc mov r4, r0                                        |     r4 = r0;
    0x0000d2d0 mov r7, r3                                        |     r7 = r3;
    0x0000d2d4 mov r8, 0                                         |     r8 = 0;
    0x0000d2d8 mov r3, 0                                         |     r3 = 0;
    0x0000d2dc mov sb, 0                                         |     sb = 0;
    0x0000d2e0 str r3, [sp, 0x24]                                |     ptr = r3;
    0x0000d2e4 mov r6, r1                                        |     r6 = r1;
    0x0000d2e8 mov sl, r2                                        |     sl = r2;
    0x0000d2ec strd r8, sb, [sp, 0x28]                           |     __asm ("strd r8, sb, [var_bp_0h]");
    0x0000d2f0 bl 0x5d88                                         |     fcn_00005d88 ();
    0x0000d2f4 mov r0, r4                                        |     r0 = r4;
    0x0000d2f8 bl 0x5f80                                         |     fcn_00005f80 ();
    0x0000d2fc ldr r3, [r4, 0x30]                                |     r3 = *((r4 + 0x30));
    0x0000d300 add r5, pc, r5                                    |     r5 = pc + r5;
    0x0000d304 tst r3, 2                                         |     
                                                                 |     if ((r3 & 2) != 0) {
    0x0000d308 beq 0xd31c                                        |         
    0x0000d30c ldr r0, [r4]                                      |         r0 = *(r4);
    0x0000d310 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0000d314 blt 0xd31c                                        |             goto label_9;
                                                                 |         }
    0x0000d318 bl 0x61e4                                         |         close (r0);
                                                                 |     }
                                                                 | label_9:
    0x0000d31c ldr r3, [r4, 0x30]                                |     r3 = *((r4 + 0x30));
    0x0000d320 mov r1, 0                                         |     r1 = 0;
    0x0000d324 bic r3, r3, 0xe                                   |     r3 = BIT_MASK (r3, 0xe);
    0x0000d328 str r3, [r4, 0x30]                                |     *((r4 + 0x30)) = r3;
    0x0000d32c mov r2, sl                                        |     r2 = sl;
    0x0000d330 mov r3, r7                                        |     r3 = r7;
    0x0000d334 strd r2, r3, [r4, 8]                              |     __asm ("strd r2, r3, [r4, 8]");
    0x0000d338 str r1, [r4, 0x34]                                |     *((r4 + 0x34)) = r1;
    0x0000d33c mov r2, 0                                         |     r2 = 0;
    0x0000d340 mov r3, 0                                         |     r3 = 0;
    0x0000d344 str r1, [r4, 0x2c]                                |     *((r4 + 0x2c)) = r1;
    0x0000d348 str r1, [r4, 0x28]                                |     *((r4 + 0x28)) = r1;
    0x0000d34c str r1, [r4, 0x48]                                |     *((r4 + 0x48)) = r1;
    0x0000d350 mov r1, 1                                         |     r1 = 1;
    0x0000d354 strd r2, r3, [r4, 0x10]                           |     __asm ("strd r2, r3, [r4, 0x10]");
    0x0000d358 strd r2, r3, [r4, 0x18]                           |     __asm ("strd r2, r3, [r4, 0x18]");
    0x0000d35c strd r2, r3, [r4, 0x20]                           |     __asm ("strd r2, r3, [r4, 0x20]");
    0x0000d360 strd r2, r3, [r4, 0x38]                           |     __asm ("strd r2, r3, [r4, 0x38]");
    0x0000d364 strd r2, r3, [r4, 0x40]                           |     __asm ("strd r2, r3, [r4, 0x40]");
    0x0000d368 str r6, [r4]                                      |     *(r4) = r6;
    0x0000d36c mov r0, r6                                        |     r0 = r6;
    0x0000d370 str r1, [sp, 8]                                   |     var_8h = r1;
    0x0000d374 strd r2, r3, [sp]                                 |     __asm ("strd r2, r3, [sp]");
    0x0000d378 bl 0x577c                                         |     posix_fadvise64 ();
    0x0000d37c add r1, sp, 0x30                                  |     r1 += var_30h;
    0x0000d380 mov r0, r6                                        |     r0 = r6;
    0x0000d384 bl 0x5b54                                         |     fstat64 ();
    0x0000d388 mov r8, sl                                        |     r8 = sl;
    0x0000d38c mov sb, r7                                        |     sb = r7;
    0x0000d390 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000d394 bne 0xd518                                        |         goto label_10;
                                                                 |     }
    0x0000d398 ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x0000d39c and r1, r3, 0xf000                                |     r1 = r3 & 0xf000;
    0x0000d3a0 and r2, r3, 0xb000                                |     r2 = r3 & 0xb000;
    0x0000d3a4 cmp r2, 0x2000                                    |     
    0x0000d3a8 cmpne r1, 0x8000                                  |     __asm ("cmpne r1, aav.0x0000000b");
    0x0000d3ac beq 0xd3c0                                        |     
                                                                 |     while ((r3 & 0x100) == 0) {
                                                                 | label_0:
    0x0000d3b0 bl 0x60ac                                         |         errno_location ();
    0x0000d3b4 mov r3, 0x16                                      |         r3 = 0x16;
    0x0000d3b8 str r3, [r0]                                      |         *(r0) = r3;
    0x0000d3bc b 0xd518                                          |         goto label_10;
    0x0000d3c0 cmp r2, 0x2000                                    |         
    0x0000d3c4 str r3, [r4, 0x2c]                                |         *((r4 + 0x2c)) = r3;
    0x0000d3c8 add fp, sp, 0x28                                  |         
                                                                 |         if (r2 != 0x2000) {
    0x0000d3cc bne 0xd578                                        |             goto label_11;
                                                                 |         }
    0x0000d3d0 ldrd r2, r3, [sp, 0x50]                           |         __asm ("ldrd r2, r3, [var_50h]");
    0x0000d3d4 cmp r1, 0x6000                                    |         
    0x0000d3d8 strd r2, r3, [r4, 0x18]                           |         __asm ("strd r2, r3, [r4, 0x18]");
                                                                 |         if (r1 == 0x6000) {
    0x0000d3dc beq 0xd4ac                                        |             goto label_12;
                                                                 |         }
                                                                 | label_2:
    0x0000d3e0 mov r2, 1                                         |         r2 = 1;
    0x0000d3e4 mov r3, 0                                         |         r3 = 0;
                                                                 | label_3:
    0x0000d3e8 strd r2, r3, [fp]                                 |         __asm ("strd r2, r3, [fp]");
                                                                 | label_1:
    0x0000d3ec add r3, sp, 0x2c0                                 |         r3 += arg_2c0h;
    0x0000d3f0 ldrd r2, r3, [r3]                                 |         __asm ("ldrd r2, r3, [r3]");
    0x0000d3f4 ldrd r0, r1, [fp]                                 |         __asm ("ldrd r0, r1, [fp]");
    0x0000d3f8 orrs r3, r2, r3                                   |         r3 = r2 | r3;
                                                                 |         if (r3 != r2) {
    0x0000d3fc moveq r2, r0                                      |             r2 = r0;
                                                                 |         }
                                                                 |         if (r3 != r2) {
    0x0000d400 moveq r3, r1                                      |             r3 = r1;
                                                                 |         }
                                                                 |         if (r3 == r2) {
    0x0000d404 addne r3, sp, 0x2c0                               |             r3 += arg_2c0h;
                                                                 |         }
    0x0000d408 ldrdne r2, r3, [r3]                               |         __asm ("ldrdne r2, r3, [r3]");
    0x0000d40c ldr lr, [sp, 0x2c0]                               |         
    0x0000d410 orrs ip, sl, r7                                   |         
    0x0000d414 ldr r7, [sp, 0x2c4]                               |         r7 = *(arg_2c4h);
                                                                 |         if (ip == sl) {
    0x0000d418 movne ip, 1                                       |             
                                                                 |         }
                                                                 |         if (ip != sl) {
    0x0000d41c moveq ip, 0                                       |             
                                                                 |         }
    0x0000d420 orrs lr, lr, r7                                   |         lr |= r7;
                                                                 |         if (lr == lr) {
    0x0000d424 movne ip, 0                                       |             
                                                                 |         }
    0x0000d428 cmp ip, 0                                         |         
                                                                 |         if (ip != 0) {
    0x0000d42c bne 0xd590                                        |             goto label_13;
                                                                 |         }
    0x0000d430 strd r2, r3, [r4, 0x10]                           |         __asm ("strd r2, r3, [r4, 0x10]");
                                                                 | label_4:
    0x0000d434 ldrd r8, sb, [r4, 0x10]                           |         __asm ("ldrd r8, sb, [r4, 0x10]");
    0x0000d438 ldrd r2, r3, [r4, 8]                              |         __asm ("ldrd r2, r3, [r4, 8]");
    0x0000d43c adds sl, r2, r8                                   |         sl = r2 + r8;
    0x0000d440 adc fp, r3, sb                                    |         __asm ("adc fp, r3, sb");
    0x0000d444 cmp fp, r1                                        |         
    0x0000d448 cmpeq sl, r0                                      |         __asm ("cmpeq sl, r0");
                                                                 |         if (fp < r1) {
    0x0000d44c bls 0xd5a0                                        |             goto label_14;
                                                                 |         }
    0x0000d450 ldr r3, [pc, 0x540]                               |         
    0x0000d454 ldr r3, [r5, r3]                                  |         r3 = *((r5 + r3));
    0x0000d458 ldr r3, [r3]                                      |         r3 = *(0xd994);
    0x0000d45c tst r3, 0x100                                     |         
    0x0000d460 beq 0xd3b0                                        |         
                                                                 |     }
    0x0000d464 ldr r3, [pc, 0x530]                               |     r3 = *(0xd998);
    0x0000d468 ldr r3, [r5, r3]                                  |     r3 = *((r5 + r3));
    0x0000d46c ldr r4, [r3]                                      |     r4 = *(0xd998);
    0x0000d470 bl 0x58fc                                         |     getpid ();
    0x0000d474 ldr r3, [pc, 0x524]                               |     r3 = *(0xd99c);
    0x0000d478 ldr r1, [pc, 0x524]                               |     r1 = *(0xd9a0);
    0x0000d47c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000d480 str r3, [sp]                                      |     *(sp) = r3;
    0x0000d484 ldr r3, [pc, 0x51c]                               |     r3 = *(0xd9a4);
    0x0000d488 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000d48c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000d490 mov r2, r0                                        |     r2 = r0;
    0x0000d494 mov r0, r4                                        |     r0 = r4;
    0x0000d498 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0000d49c ldr r0, [pc, 0x508]                               |     r0 = *(0xd9a8);
    0x0000d4a0 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000d4a4 bl 0xac7c                                         |     fcn_0000ac7c ();
    0x0000d4a8 b 0xd3b0                                          |     goto label_0;
                                                                 | label_12:
    0x0000d4ac mov r1, fp                                        |     r1 = fp;
    0x0000d4b0 mov r0, r6                                        |     r0 = r6;
    0x0000d4b4 bl 0x22354                                        |     r0 = fcn_00022354 (r0, r1);
    0x0000d4b8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000d4bc beq 0xd3ec                                        |         goto label_1;
                                                                 |     }
    0x0000d4c0 ldr r3, [pc, 0x4d0]                               |     
    0x0000d4c4 ldr r3, [r5, r3]                                  |     r3 = *((r5 + r3));
    0x0000d4c8 ldr r3, [r3]                                      |     r3 = *(0xd994);
    0x0000d4cc tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) != 0) {
    0x0000d4d0 beq 0xd570                                        |         
    0x0000d4d4 ldr r3, [pc, 0x4c0]                               |         r3 = *(0xd998);
    0x0000d4d8 ldr r3, [r5, r3]                                  |         r3 = *((r5 + r3));
    0x0000d4dc ldr r4, [r3]                                      |         r4 = *(0xd998);
    0x0000d4e0 bl 0x58fc                                         |         getpid ();
    0x0000d4e4 ldr r3, [pc, 0x4c4]                               |         r3 = *(0xd9ac);
    0x0000d4e8 ldr r1, [pc, 0x4c4]                               |         r1 = *(0xd9b0);
    0x0000d4ec add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000d4f0 str r3, [sp]                                      |         *(sp) = r3;
    0x0000d4f4 ldr r3, [pc, 0x4bc]                               |         r3 = *(0xd9b4);
    0x0000d4f8 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000d4fc add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000d500 mov r2, r0                                        |         r2 = r0;
    0x0000d504 mov r0, r4                                        |         r0 = r4;
    0x0000d508 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000d50c ldr r0, [pc, 0x4a8]                               |         r0 = *(0xd9b8);
    0x0000d510 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000d514 bl 0xac7c                                         |         fcn_0000ac7c ();
                                                                 | label_10:
    0x0000d518 ldr r3, [pc, 0x478]                               |         
    0x0000d51c ldr r3, [r5, r3]                                  |         r3 = *((r5 + r3));
    0x0000d520 ldr r3, [r3]                                      |         r3 = *(0xd994);
    0x0000d524 tst r3, 0x100                                     |         
                                                                 |         if ((r3 & 0x100) == 0) {
    0x0000d528 beq 0xd570                                        |             goto label_15;
                                                                 |         }
    0x0000d52c ldr r3, [pc, 0x468]                               |         r3 = *(0xd998);
    0x0000d530 ldr r3, [r5, r3]                                  |         r3 = *((r5 + r3));
    0x0000d534 ldr r4, [r3]                                      |         r4 = *(0xd998);
    0x0000d538 bl 0x58fc                                         |         getpid ();
    0x0000d53c ldr r3, [pc, 0x47c]                               |         r3 = *(0xd9bc);
    0x0000d540 ldr r1, [pc, 0x47c]                               |         r1 = *(0xd9c0);
    0x0000d544 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000d548 str r3, [sp]                                      |         *(sp) = r3;
    0x0000d54c ldr r3, [pc, 0x474]                               |         r3 = *(0xd9c4);
    0x0000d550 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000d554 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000d558 mov r2, r0                                        |         r2 = r0;
    0x0000d55c mov r0, r4                                        |         r0 = r4;
    0x0000d560 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000d564 ldr r0, [pc, 0x460]                               |         r0 = *(0xd9c8);
    0x0000d568 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000d56c bl 0xac7c                                         |         fcn_0000ac7c ();
                                                                 |     }
                                                                 | label_15:
    0x0000d570 mvn r0, 0                                         |     r0 = ~0;
    0x0000d574 b 0xd738                                          |     goto label_16;
                                                                 | label_11:
    0x0000d578 cmp r1, 0x2000                                    |     
                                                                 |     if (r1 == 0x2000) {
    0x0000d57c beq 0xd3e0                                        |         goto label_2;
                                                                 |     }
    0x0000d580 cmp r1, 0x8000                                    |     
                                                                 |     if (r1 != 0x8000) {
    0x0000d584 bne 0xd3ec                                        |         goto label_1;
                                                                 |     }
    0x0000d588 ldrd r2, r3, [sp, 0x60]                           |     __asm ("ldrd r2, r3, [var_60h]");
    0x0000d58c b 0xd3e8                                          |     goto label_3;
                                                                 | label_13:
    0x0000d590 subs r8, r2, r8                                   |     r8 = r2 - r8;
    0x0000d594 sbc sb, r3, sb                                    |     __asm ("sbc sb, r3, sb");
    0x0000d598 strd r8, sb, [r4, 0x10]                           |     __asm ("strd r8, sb, [r4, 0x10]");
    0x0000d59c b 0xd434                                          |     goto label_4;
                                                                 | label_14:
    0x0000d5a0 ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x0000d5a4 cmp sb, 0                                         |     
    0x0000d5a8 cmpeq r8, 0x168000                                |     __asm ("cmpeq r8, 0x168000");
    0x0000d5ac and r3, r3, 0xf000                                |     r3 &= 0xf000;
                                                                 |     if (sb <= 0) {
    0x0000d5b0 bhi 0xd5c8                                        |         
    0x0000d5b4 cmp r3, 0x2000                                    |         
                                                                 |         if (r3 == 0x2000) {
    0x0000d5b8 beq 0xd740                                        |             goto label_17;
                                                                 |         }
    0x0000d5bc ldr r2, [r4, 0x30]                                |         r2 = *((r4 + 0x30));
    0x0000d5c0 orr r2, r2, 4                                     |         r2 |= 4;
    0x0000d5c4 str r2, [r4, 0x30]                                |         *((r4 + 0x30)) = r2;
                                                                 |     }
    0x0000d5c8 cmp r3, 0x6000                                    |     
                                                                 |     if (r3 != 0x6000) {
    0x0000d5cc bne 0xd740                                        |         goto label_17;
                                                                 |     }
    0x0000d5d0 add r2, sp, 0x24                                  |     r2 += ptr;
    0x0000d5d4 ldrd r0, r1, [sp, 0x50]                           |     __asm ("ldrd r0, r1, [var_50h]");
    0x0000d5d8 bl 0x35438                                        |     r0 = fcn_00035438 (r0, r1);
    0x0000d5dc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000d5e0 beq 0xd740                                        |         goto label_17;
                                                                 |     }
    0x0000d5e4 ldr r3, [pc, 0x3ac]                               |     
    0x0000d5e8 ldr r3, [r5, r3]                                  |     r3 = *((r5 + r3));
    0x0000d5ec ldr r3, [r3]                                      |     r3 = *(0xd994);
    0x0000d5f0 tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) != 0) {
    0x0000d5f4 beq 0xd63c                                        |         
    0x0000d5f8 ldr r3, [pc, 0x39c]                               |         r3 = *(0xd998);
    0x0000d5fc ldr r3, [r5, r3]                                  |         r3 = *((r5 + r3));
    0x0000d600 ldr r6, [r3]                                      |         r6 = *(0xd998);
    0x0000d604 bl 0x58fc                                         |         getpid ();
    0x0000d608 ldr r3, [pc, 0x3c0]                               |         r3 = *(0xd9cc);
    0x0000d60c ldr r1, [pc, 0x3c0]                               |         r1 = *(0xd9d0);
    0x0000d610 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000d614 str r3, [sp]                                      |         *(sp) = r3;
    0x0000d618 ldr r3, [pc, 0x3b8]                               |         r3 = *(0xd9d4);
    0x0000d61c add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000d620 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000d624 mov r2, r0                                        |         r2 = r0;
    0x0000d628 mov r0, r6                                        |         r0 = r6;
    0x0000d62c bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000d630 ldr r0, [pc, 0x3a4]                               |         r0 = *(0xd9d8);
    0x0000d634 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000d638 bl 0xac7c                                         |         fcn_0000ac7c ();
                                                                 |     }
    0x0000d63c ldr r3, [r4, 0x30]                                |     r3 = *((r4 + 0x30));
    0x0000d640 orr r3, r3, 0x10                                  |     r3 |= 0x10;
    0x0000d644 str r3, [r4, 0x30]                                |     *((r4 + 0x30)) = r3;
                                                                 |     do {
                                                                 | label_5:
    0x0000d648 ldr r0, [sp, 0x24]                                |         r0 = ptr;
    0x0000d64c bl 0x6220                                         |         free (r0);
    0x0000d650 ldr r3, [pc, 0x340]                               |         r3 = *(0xd994);
    0x0000d654 ldr r6, [r5, r3]                                  |         r6 = *((r5 + r3));
    0x0000d658 ldr r3, [r6]                                      |         r3 = *(r6);
    0x0000d65c tst r3, 0x100                                     |         
                                                                 |         if ((r3 & 0x100) != 0) {
    0x0000d660 beq 0xd6b4                                        |             
    0x0000d664 ldr r3, [pc, 0x330]                               |             r3 = *(0xd998);
    0x0000d668 ldr r3, [r5, r3]                                  |             r3 = *((r5 + r3));
    0x0000d66c ldr r7, [r3]                                      |             r7 = *(0xd998);
    0x0000d670 bl 0x58fc                                         |             getpid ();
    0x0000d674 ldr r3, [pc, 0x364]                               |             r3 = *(0xd9dc);
    0x0000d678 ldr r1, [pc, 0x364]                               |             r1 = *(0xd9e0);
    0x0000d67c add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000d680 str r3, [sp]                                      |             *(sp) = r3;
    0x0000d684 ldr r3, [pc, 0x35c]                               |             r3 = *(0xd9e4);
    0x0000d688 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000d68c add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000d690 mov r2, r0                                        |             r2 = r0;
    0x0000d694 mov r0, r7                                        |             r0 = r7;
    0x0000d698 bl 0x5c50                                         |             fprintf (r0, r1, r2, r3)
    0x0000d69c ldrd r2, r3, [r4, 0x10]                           |             __asm ("ldrd r2, r3, [r4, 0x10]");
    0x0000d6a0 ldr r0, [pc, 0x344]                               |             r0 = *(0xd9e8);
    0x0000d6a4 strd r2, r3, [sp]                                 |             __asm ("strd r2, r3, [sp]");
    0x0000d6a8 add r0, pc, r0                                    |             r0 = pc + r0;
    0x0000d6ac ldrd r2, r3, [r4, 8]                              |             __asm ("ldrd r2, r3, [r4, 8]");
    0x0000d6b0 bl 0xac7c                                         |             fcn_0000ac7c ();
                                                                 |         }
    0x0000d6b4 ldr r0, [r6]                                      |         r0 = *(r6);
    0x0000d6b8 ands r0, r0, 0x100                                |         r0 &= 0x100;
                                                                 |         if (r0 != r0) {
    0x0000d6bc beq 0xd738                                        |             
    0x0000d6c0 ldr r3, [pc, 0x2d4]                               |             r3 = *(0xd998);
    0x0000d6c4 ldr r3, [r5, r3]                                  |             r3 = *((r5 + r3));
    0x0000d6c8 ldr r5, [r3]                                      |             r5 = *(0xd998);
    0x0000d6cc bl 0x58fc                                         |             getpid ();
    0x0000d6d0 ldr r3, [pc, 0x318]                               |             r3 = *(0xd9ec);
    0x0000d6d4 ldr r1, [pc, 0x318]                               |             r1 = *(0xd9f0);
    0x0000d6d8 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000d6dc str r3, [sp]                                      |             *(sp) = r3;
    0x0000d6e0 ldr r3, [pc, 0x310]                               |             r3 = *(0xd9f4);
    0x0000d6e4 add r1, pc, r1                                    |             r1 = pc + r1;
    0x0000d6e8 add r3, pc, r3                                    |             r3 = pc + r3;
    0x0000d6ec mov r2, r0                                        |             r2 = r0;
    0x0000d6f0 mov r0, r5                                        |             r0 = r5;
    0x0000d6f4 bl 0x5c50                                         |             fprintf (r0, r1, r2, r3)
    0x0000d6f8 mov r0, r4                                        |             r0 = r4;
    0x0000d6fc bl 0x5b24                                         |             r0 = fcn_00005b24 ();
    0x0000d700 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x0000d704 beq 0xd97c                                        |                 goto label_18;
                                                                 |             }
    0x0000d708 ldr r1, [pc, 0x2ec]                               |             r1 = *(0xd9f8);
    0x0000d70c add r1, pc, r1                                    |             r1 = pc + r1;
                                                                 | label_7:
    0x0000d710 ldr r3, [r4, 0x2c]                                |             r3 = *((r4 + 0x2c));
    0x0000d714 and r3, r3, 0xf000                                |             r3 &= 0xf000;
    0x0000d718 cmp r3, 0x8000                                    |             
                                                                 |             if (r3 != 0x8000) {
    0x0000d71c bne 0xd988                                        |                 goto label_19;
                                                                 |             }
    0x0000d720 ldr r2, [pc, 0x2d8]                               |             r2 = *(0xd9fc);
    0x0000d724 add r2, pc, r2                                    |             r2 = pc + r2;
                                                                 | label_8:
    0x0000d728 ldr r0, [pc, 0x2d4]                               |             r0 = *(0xda00);
    0x0000d72c add r0, pc, r0                                    |             r0 = pc + r0;
    0x0000d730 bl 0xac7c                                         |             fcn_0000ac7c ();
    0x0000d734 mov r0, 0                                         |             r0 = 0;
                                                                 |         }
                                                                 | label_16:
    0x0000d738 add sp, sp, 0x29c                                 |         
    0x0000d73c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_17:
    0x0000d740 ldr r3, [sp, 0x40]                                |         r3 = var_40h;
    0x0000d744 and r3, r3, 0xf000                                |         r3 &= 0xf000;
    0x0000d748 cmp r3, 0x6000                                    |         
    0x0000d74c bne 0xd648                                        |         
                                                                 |     } while (r3 != 0x6000);
    0x0000d750 mov r0, r4                                        |     r0 = r4;
    0x0000d754 bl 0xbc0c                                         |     r0 = fcn_0000bc0c (r0);
    0x0000d758 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000d75c bne 0xd648                                        |         goto label_5;
                                                                 |     }
    0x0000d760 ldr sl, [sp, 0x24]                                |     sl = ptr;
    0x0000d764 cmp sl, 0                                         |     
                                                                 |     if (sl != 0) {
    0x0000d768 bne 0xd648                                        |         goto label_5;
                                                                 |     }
    0x0000d76c mov r0, r4                                        |     r0 = r4;
    0x0000d770 bl 0x5b24                                         |     r0 = fcn_00005b24 ();
    0x0000d774 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000d778 beq 0xd648                                        |         goto label_5;
                                                                 |     }
    0x0000d77c mov r2, sl                                        |     r2 = sl;
    0x0000d780 ldr r1, [pc, 0x280]                               |     r1 = *(0xda04);
    0x0000d784 mov r0, r6                                        |     r0 = r6;
    0x0000d788 bl 0x574c                                         |     r0 = ioctl (r0, r1);
    0x0000d78c cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0000d790 blt 0xd648                                        |         goto label_5;
                                                                 |     }
    0x0000d794 ldr r3, [r4, 0x30]                                |     r3 = *((r4 + 0x30));
    0x0000d798 add fp, sp, 0x98                                  |     
    0x0000d79c orr r3, r3, 8                                     |     r3 |= 8;
    0x0000d7a0 str r3, [r4, 0x30]                                |     *((r4 + 0x30)) = r3;
    0x0000d7a4 ldrd r2, r3, [r4, 0x10]                           |     __asm ("ldrd r2, r3, [r4, 0x10]");
    0x0000d7a8 str sl, [sp, 0x1c]                                |     var_1ch = sl;
    0x0000d7ac lsr r6, r2, 9                                     |     r6 = r2 >> 9;
    0x0000d7b0 orr r6, r6, r3, lsl 23                            |     r6 |= (r3 << 23);
    0x0000d7b4 lsr r7, r3, 9                                     |     r7 = r3 >> 9;
    0x0000d7b8 subs r2, r6, 0xc                                  |     r2 = r6 - 0xc;
    0x0000d7bc lsl sb, r7, 9                                     |     sb = r7 << 9;
    0x0000d7c0 sbc r3, r7, 0                                     |     __asm ("sbc r3, r7, 0");
    0x0000d7c4 orr sb, sb, r6, lsr 23                            |     sb |= (r6 >> 23);
    0x0000d7c8 lsl r8, r6, 9                                     |     r8 = r6 << 9;
    0x0000d7cc strd r2, r3, [sp, 0x10]                           |     __asm ("strd r2, r3, [var_10h]");
                                                                 | label_6:
    0x0000d7d0 ldrd r2, r3, [sp, 0x10]                           |     __asm ("ldrd r2, r3, [var_10h]");
    0x0000d7d4 cmp r7, r3                                        |     
    0x0000d7d8 cmpeq r6, r2                                      |     __asm ("cmpeq r6, r2");
                                                                 |     if (r7 > r3) {
    0x0000d7dc bhi 0xd83c                                        |         goto label_20;
                                                                 |     }
    0x0000d7e0 ldr r3, [pc, 0x1b0]                               |     
    0x0000d7e4 ldr r3, [r5, r3]                                  |     r3 = *((r5 + r3));
    0x0000d7e8 ldr r3, [r3]                                      |     r3 = *(0xd994);
    0x0000d7ec tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) == 0) {
    0x0000d7f0 beq 0xd648                                        |         goto label_5;
                                                                 |     }
    0x0000d7f4 ldr r3, [pc, 0x1a0]                               |     r3 = *(0xd998);
    0x0000d7f8 ldr r3, [r5, r3]                                  |     r3 = *((r5 + r3));
    0x0000d7fc ldr r6, [r3]                                      |     r6 = *(0xd998);
    0x0000d800 bl 0x58fc                                         |     getpid ();
    0x0000d804 ldr r3, [pc, 0x200]                               |     r3 = *(0xda08);
    0x0000d808 ldr r1, [pc, 0x200]                               |     r1 = *(0xda0c);
    0x0000d80c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000d810 str r3, [sp]                                      |     *(sp) = r3;
    0x0000d814 ldr r3, [pc, 0x1f8]                               |     r3 = *(0xda10);
    0x0000d818 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000d81c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000d820 mov r2, r0                                        |     r2 = r0;
    0x0000d824 mov r0, r6                                        |     r0 = r6;
    0x0000d828 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0000d82c ldr r0, [pc, 0x1e4]                               |     r0 = *(0xda14);
    0x0000d830 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000d834 bl 0xac7c                                         |     fcn_0000ac7c ();
    0x0000d838 b 0xd648                                          |     goto label_5;
                                                                 | label_20:
    0x0000d83c ldr sl, [r4]                                      |     sl = *(r4);
    0x0000d840 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x0000d844 subs r2, r8, 0x1800                               |     r2 = r8 - 0x1800;
    0x0000d848 str r3, [sp]                                      |     *(sp) = r3;
    0x0000d84c mov r0, sl                                        |     r0 = sl;
    0x0000d850 sbc r3, sb, 0                                     |     __asm ("sbc r3, sb, 0");
    0x0000d854 bl 0xac78                                         |     r0 = fcn_0000ac78 ();
    0x0000d858 cmp r0, 0                                         |     
    0x0000d85c sbcs r3, r1, 0                                    |     __asm ("sbcs r3, r1, 0");
                                                                 |     if (r0 >= 0) {
    0x0000d860 blt 0xd898                                        |         
    0x0000d864 mov r2, 0x200                                     |         r2 = 0x200;
    0x0000d868 mov r1, fp                                        |         r1 = fp;
    0x0000d86c mov r0, sl                                        |         r0 = sl;
    0x0000d870 bl 0x5d1c                                         |         read (r0, r1, r2);
    0x0000d874 adds r8, r8, 0x200                                |         r8 += 0x200;
    0x0000d878 adc sb, sb, 0                                     |         __asm ("adc sb, sb, 0");
    0x0000d87c cmp r0, 0x200                                     |         
                                                                 |         if (r0 != 0x200) {
    0x0000d880 bne 0xd898                                        |             goto label_21;
                                                                 |         }
    0x0000d884 ldrd r2, r3, [sp, 0x10]                           |         __asm ("ldrd r2, r3, [var_10h]");
    0x0000d888 adds r2, r2, 1                                    |         r2++;
    0x0000d88c adc r3, r3, 0                                     |         __asm ("adc r3, r3, 0");
    0x0000d890 strd r2, r3, [sp, 0x10]                           |         __asm ("strd r2, r3, [var_10h]");
    0x0000d894 b 0xd7d0                                          |         goto label_6;
                                                                 |     }
                                                                 | label_21:
    0x0000d898 ldr r3, [pc, 0xf8]                                |     r3 = *(0xd994);
    0x0000d89c ldr r8, [r5, r3]                                  |     r8 = *((r5 + r3));
    0x0000d8a0 ldr r3, [r8]                                      |     r3 = *(r8);
    0x0000d8a4 tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) != 0) {
    0x0000d8a8 beq 0xd8f4                                        |         
    0x0000d8ac ldr r3, [pc, 0xe8]                                |         r3 = *(0xd998);
    0x0000d8b0 ldr r3, [r5, r3]                                  |         r3 = *((r5 + r3));
    0x0000d8b4 ldr r6, [r3]                                      |         r6 = *(0xd998);
    0x0000d8b8 bl 0x58fc                                         |         getpid ();
    0x0000d8bc ldr r3, [pc, 0x158]                               |         r3 = *(0xda18);
    0x0000d8c0 ldr r1, [pc, 0x158]                               |         r1 = *(0xda1c);
    0x0000d8c4 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000d8c8 str r3, [sp]                                      |         *(sp) = r3;
    0x0000d8cc ldr r3, [pc, 0x150]                               |         r3 = *(0xda20);
    0x0000d8d0 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000d8d4 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000d8d8 mov r2, r0                                        |         r2 = r0;
    0x0000d8dc mov r0, r6                                        |         r0 = r6;
    0x0000d8e0 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000d8e4 ldr r0, [pc, 0x13c]                               |         r0 = *(0xda24);
    0x0000d8e8 ldrd r2, r3, [sp, 0x10]                           |         __asm ("ldrd r2, r3, [var_10h]");
    0x0000d8ec add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000d8f0 bl 0xac7c                                         |         fcn_0000ac7c ();
                                                                 |     }
    0x0000d8f4 bl 0x60ac                                         |     errno_location ();
    0x0000d8f8 mov r3, 0                                         |     r3 = 0;
    0x0000d8fc str r3, [r0]                                      |     *(r0) = r3;
    0x0000d900 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000d904 lsl r6, r3, 9                                     |     r6 = r3 << 9;
    0x0000d908 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0000d90c orr r6, r6, r3, lsr 23                            |     r6 |= (r3 >> 23);
    0x0000d910 lsl r7, r3, 9                                     |     r7 = r3 << 9;
    0x0000d914 ldr r3, [r8]                                      |     r3 = *(r8);
    0x0000d918 tst r3, 0x100                                     |     
                                                                 |     if ((r3 & 0x100) != 0) {
    0x0000d91c beq 0xd970                                        |         
    0x0000d920 ldr r3, [pc, 0x74]                                |         r3 = *(0xd998);
    0x0000d924 ldr r3, [r5, r3]                                  |         r3 = *((r5 + r3));
    0x0000d928 ldr r8, [r3]                                      |         r8 = *(0xd998);
    0x0000d92c bl 0x58fc                                         |         getpid ();
    0x0000d930 ldr r3, [pc, 0xf4]                                |         r3 = *(0xda28);
    0x0000d934 ldr r1, [pc, 0xf4]                                |         r1 = *(0xda2c);
    0x0000d938 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000d93c str r3, [sp]                                      |         *(sp) = r3;
    0x0000d940 ldr r3, [pc, 0xec]                                |         r3 = *(0xda30);
    0x0000d944 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000d948 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000d94c mov r2, r0                                        |         r2 = r0;
    0x0000d950 mov r0, r8                                        |         r0 = r8;
    0x0000d954 bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000d958 ldr r0, [pc, 0xd8]                                |         r0 = *(0xda34);
    0x0000d95c str r7, [sp]                                      |         *(sp) = r7;
    0x0000d960 str r6, [sp, 4]                                   |         var_4h = r6;
    0x0000d964 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000d968 ldrd r2, r3, [r4, 0x10]                           |         __asm ("ldrd r2, r3, [r4, 0x10]");
    0x0000d96c bl 0xac7c                                         |         fcn_0000ac7c ();
                                                                 |     }
    0x0000d970 str r7, [r4, 0x10]                                |     *((r4 + 0x10)) = r7;
    0x0000d974 str r6, [r4, 0x14]                                |     *((r4 + 0x14)) = r6;
    0x0000d978 b 0xd648                                          |     goto label_5;
                                                                 | label_18:
    0x0000d97c ldr r1, [pc, 0xb8]                                |     r1 = *(0xda38);
    0x0000d980 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000d984 b 0xd710                                          |     goto label_7;
                                                                 | label_19:
    0x0000d988 ldr r2, [pc, 0xb0]                                |     r2 = *(0xda3c);
    0x0000d98c add r2, pc, r2                                    |     r2 = pc + r2;
    0x0000d990 b 0xd728                                          |     goto label_8;
                                                                 | }
    ; 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 @ 0xc3ac */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.blkid_probe_step_back ()                     | void blkid_probe_step_back (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     r0 = arg1;
    0x0000c3ac push {r0, r1, r2, r4, r5, r6, r7, lr}         |     
    0x0000c3b0 ldr r4, [r0, 0xa8]                            |     r4 = *((r0 + 0xa8));
    0x0000c3b4 ldr r6, [pc, 0x134]                           |     r6 = *(0xc4ec);
    0x0000c3b8 cmp r4, 0                                     |     
    0x0000c3bc add r6, pc, r6                                |     r6 = pc + r6;
                                                             |     if (r4 != 0) {
    0x0000c3c0 mvneq r0, 0                                   |         r0 = ~0;
                                                             |     }
                                                             |     if (r4 != 0) {
    0x0000c3c4 beq 0xc4e8                                    |         
    0x0000c3c8 ldr r3, [r0, 0x30]                            |         r3 = *((r0 + 0x30));
    0x0000c3cc mov r5, r0                                    |         r5 = r0;
    0x0000c3d0 tst r3, 0x20                                  |         
                                                             |         if ((r3 & 0x20) == 0) {
    0x0000c3d4 bne 0xc3dc                                    |             
    0x0000c3d8 bl 0x5f80                                     |             fcn_00005f80 ();
                                                             |         }
    0x0000c3dc ldr r3, [r4, 0x10]                            |         r3 = *((r4 + 0x10));
    0x0000c3e0 cmp r3, 0                                     |         
                                                             |         if (r3 >= 0) {
    0x0000c3e4 blt 0xc454                                    |             
    0x0000c3e8 sub r3, r3, 1                                 |             r3--;
    0x0000c3ec str r3, [r4, 0x10]                            |             *((r4 + 0x10)) = r3;
    0x0000c3f0 ldr r3, [pc, 0xfc]                            |             
    0x0000c3f4 ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x0000c3f8 ldr r3, [r3]                                  |             r3 = *(0xc4f0);
    0x0000c3fc tst r3, 0x100                                 |             
                                                             |             if ((r3 & 0x100) == 0) {
    0x0000c400 beq 0xc454                                    |                 goto label_0;
                                                             |             }
    0x0000c404 ldr r3, [pc, 0xec]                            |             r3 = *(0xc4f4);
    0x0000c408 ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
    0x0000c40c ldr r7, [r3]                                  |             r7 = *(0xc4f4);
    0x0000c410 bl 0x58fc                                     |             getpid ();
    0x0000c414 ldr r3, [pc, 0xe0]                            |             r3 = *(0xc4f8);
    0x0000c418 ldr r1, [pc, 0xe0]                            |             r1 = *(0xc4fc);
    0x0000c41c add r3, pc, r3                                |             r3 = pc + r3;
    0x0000c420 str r3, [sp]                                  |             *(sp) = r3;
    0x0000c424 ldr r3, [pc, 0xd8]                            |             r3 = *(0xc500);
    0x0000c428 add r1, pc, r1                                |             r1 = pc + r1;
    0x0000c42c add r3, pc, r3                                |             r3 = pc + r3;
    0x0000c430 mov r2, r0                                    |             r2 = r0;
    0x0000c434 mov r0, r7                                    |             r0 = r7;
    0x0000c438 bl 0x5c50                                     |             fprintf (r0, r1, r2, r3)
    0x0000c43c ldr r3, [r4]                                  |             r3 = *(r4);
    0x0000c440 ldr r0, [pc, 0xc0]                            |             r0 = *(0xc504);
    0x0000c444 ldr r2, [r4, 0x10]                            |             r2 = *((r4 + 0x10));
    0x0000c448 ldr r1, [r3, 4]                               |             r1 = *(0xc504);
    0x0000c44c add r0, pc, r0                                |             r0 = pc + r0;
    0x0000c450 bl 0xac7c                                     |             fcn_0000ac7c ();
                                                             |         }
                                                             | label_0:
    0x0000c454 ldr r3, [r4, 0x10]                            |         r3 = *((r4 + 0x10));
    0x0000c458 cmn r3, 1                                     |         
                                                             |         if (r3 == 1) {
    0x0000c45c bne 0xc4e4                                    |             
    0x0000c460 ldr r3, [r4]                                  |             r3 = *(r4);
    0x0000c464 ldr r4, [r3]                                  |             r4 = *(r3);
    0x0000c468 ldr r3, [pc, 0x84]                            |             
    0x0000c46c cmp r4, 0                                     |             
    0x0000c470 ldr r3, [r6, r3]                              |             r3 = *((r6 + r3));
                                                             |             if (r4 == 0) {
    0x0000c474 subne r7, r4, 1                               |                 r7 = r4 - 1;
                                                             |             }
    0x0000c478 ldr r3, [r3]                                  |             r3 = *(0xc4f0);
                                                             |             if (r4 != 0) {
    0x0000c47c moveq r7, r4                                  |                 r7 = r4;
                                                             |             }
    0x0000c480 tst r3, 0x100                                 |             
                                                             |             if ((r3 & 0x100) != 0) {
    0x0000c484 beq 0xc4cc                                    |                 
    0x0000c488 ldr r3, [pc, 0x68]                            |                 r3 = *(0xc4f4);
    0x0000c48c ldr r3, [r6, r3]                              |                 r3 = *((r6 + r3));
    0x0000c490 ldr r6, [r3]                                  |                 r6 = *(0xc4f4);
    0x0000c494 bl 0x58fc                                     |                 getpid ();
    0x0000c498 ldr r3, [pc, 0x6c]                            |                 r3 = *(0xc508);
    0x0000c49c ldr r1, [pc, 0x6c]                            |                 r1 = *(0xc50c);
    0x0000c4a0 add r3, pc, r3                                |                 r3 = pc + r3;
    0x0000c4a4 str r3, [sp]                                  |                 *(sp) = r3;
    0x0000c4a8 ldr r3, [pc, 0x64]                            |                 r3 = *(0xc510);
    0x0000c4ac add r1, pc, r1                                |                 r1 = pc + r1;
    0x0000c4b0 add r3, pc, r3                                |                 r3 = pc + r3;
    0x0000c4b4 mov r2, r0                                    |                 r2 = r0;
    0x0000c4b8 mov r0, r6                                    |                 r0 = r6;
    0x0000c4bc bl 0x5c50                                     |                 fprintf (r0, r1, r2, r3)
    0x0000c4c0 ldr r0, [pc, 0x50]                            |                 r0 = *(0xc514);
    0x0000c4c4 add r0, pc, r0                                |                 r0 = pc + r0;
    0x0000c4c8 bl 0xac7c                                     |                 fcn_0000ac7c ();
                                                             |             }
    0x0000c4cc cmp r7, 0                                     |             
                                                             |             if (r7 == 0) {
    0x0000c4d0 movne r0, 0x1c                                |                 r0 = 0x1c;
                                                             |             }
    0x0000c4d4 mlane r4, r0, r7, r5                          |             __asm ("mlane r4, r0, r7, r5");
                                                             |             if (r7 != 0) {
    0x0000c4d8 streq r7, [r5, 0xa8]                          |                 *((r5 + 0xa8)) = r7;
                                                             |             }
                                                             |             if (r7 == 0) {
    0x0000c4dc addne r4, r4, 0x54                            |                 r4 += 0x54;
                                                             |             }
                                                             |             if (r7 != 0) {
    0x0000c4e0 strne r4, [r5, 0xa8]                          |                 *((r5 + 0xa8)) = r4;
                                                             |                 goto label_1;
                                                             |             }
                                                             |         }
                                                             | label_1:
    0x0000c4e4 mov r0, 0                                     |         r0 = 0;
                                                             |     }
    0x0000c4e8 add sp, sp, 0xc                               |     
    0x0000c4ec pop {r4, r5, r6, r7, pc}                      |     
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x6bf8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.blkid_put_cache ()                               | void blkid_put_cache (int32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_14h;
                                                                 |     r0 = arg1;
    0x00006bf8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x00006bfc ldr r5, [pc, 0x1a8]                               |     r5 = *(0x6da8);
    0x00006c00 subs r4, r0, 0                                    |     r4 = r0 - 0;
    0x00006c04 add r5, pc, r5                                    |     r5 = pc + r5;
    0x00006c08 sub sp, sp, 0x14                                  |     
                                                                 |     if (r4 == r0) {
    0x00006c0c beq 0x6da4                                        |         goto label_1;
                                                                 |     }
    0x00006c10 bl 0xf258                                         |     fcn_0000f258 (r0, r1);
    0x00006c14 ldr r3, [pc, 0x194]                               |     r3 = *(0x6dac);
    0x00006c18 ldr r8, [r5, r3]                                  |     r8 = *((r5 + r3));
    0x00006c1c ldr r3, [r8]                                      |     r3 = *(r8);
    0x00006c20 tst r3, 4                                         |     
                                                                 |     if ((r3 & 4) == 0) {
    0x00006c24 beq 0x6c70                                        |         goto label_2;
                                                                 |     }
    0x00006c28 ldr r3, [pc, 0x184]                               |     r3 = *(0x6db0);
    0x00006c2c ldr r3, [r5, r3]                                  |     r3 = *((r5 + r3));
    0x00006c30 ldr r6, [r3]                                      |     r6 = *(0x6db0);
    0x00006c34 bl 0x58fc                                         |     getpid ();
    0x00006c38 ldr r3, [pc, 0x178]                               |     r3 = *(0x6db4);
    0x00006c3c ldr r1, [pc, 0x178]                               |     r1 = *(0x6db8);
    0x00006c40 add r3, pc, r3                                    |     r3 = pc + r3;
    0x00006c44 str r3, [sp]                                      |     *(sp) = r3;
    0x00006c48 ldr r3, [pc, 0x170]                               |     r3 = *(0x6dbc);
    0x00006c4c add r1, pc, r1                                    |     r1 = pc + r1;
    0x00006c50 add r3, pc, r3                                    |     r3 = pc + r3;
    0x00006c54 mov r2, r0                                        |     r2 = r0;
    0x00006c58 mov r0, r6                                        |     r0 = r6;
    0x00006c5c bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x00006c60 ldr r1, [pc, 0x15c]                               |     r1 = *(0x6dc0);
    0x00006c64 mov r0, r4                                        |     r0 = r4;
    0x00006c68 add r1, pc, r1                                    |     r1 = pc + r1;
    0x00006c6c bl 0x68b0                                         |     fcn_000068b0 (r0);
                                                                 |     do {
                                                                 | label_2:
    0x00006c70 ldr r0, [r4]                                      |         r0 = *(r4);
    0x00006c74 cmp r4, r0                                        |         
                                                                 |         if (r4 == r0) {
    0x00006c78 bne 0x6d04                                        |             
    0x00006c7c ldr r3, [r8]                                      |             r3 = *(r8);
    0x00006c80 tst r3, 4                                         |             
                                                                 |             if ((r3 & 4) != 0) {
    0x00006c84 beq 0x6cd0                                        |                 
    0x00006c88 ldr r3, [pc, 0x124]                               |                 r3 = *(0x6db0);
    0x00006c8c ldr r3, [r5, r3]                                  |                 r3 = *((r5 + r3));
    0x00006c90 ldr r6, [r3]                                      |                 r6 = *(0x6db0);
    0x00006c94 bl 0x58fc                                         |                 getpid ();
    0x00006c98 ldr r3, [pc, 0x128]                               |                 r3 = *(0x6dc4);
    0x00006c9c ldr r1, [pc, 0x128]                               |                 r1 = *(0x6dc8);
    0x00006ca0 add r3, pc, r3                                    |                 r3 = pc + r3;
    0x00006ca4 str r3, [sp]                                      |                 *(sp) = r3;
    0x00006ca8 ldr r3, [pc, 0x120]                               |                 r3 = *(0x6dcc);
    0x00006cac add r1, pc, r1                                    |                 r1 = pc + r1;
    0x00006cb0 add r3, pc, r3                                    |                 r3 = pc + r3;
    0x00006cb4 mov r2, r0                                        |                 r2 = r0;
    0x00006cb8 mov r0, r6                                        |                 r0 = r6;
    0x00006cbc bl 0x5c50                                         |                 fprintf (r0, r1, r2, r3)
    0x00006cc0 ldr r1, [pc, 0x10c]                               |                 r1 = *(0x6dd0);
    0x00006cc4 mov r0, r4                                        |                 r0 = r4;
    0x00006cc8 add r1, pc, r1                                    |                 r1 = pc + r1;
    0x00006ccc bl 0x68b0                                         |                 fcn_000068b0 (r0);
                                                                 |             }
    0x00006cd0 ldr r3, [pc, 0x100]                               |             r3 = *(0x6dd4);
    0x00006cd4 ldr sb, [pc, 0x100]                               |             sb = *(0x6dd8);
    0x00006cd8 add r3, pc, r3                                    |             r3 = pc + r3;
    0x00006cdc add sb, pc, sb                                    |             sb = pc + sb;
    0x00006ce0 str r3, [sp, 0xc]                                 |             var_ch = r3;
                                                                 | label_0:
    0x00006ce4 mov r3, r4                                        |             r3 = r4;
    0x00006ce8 ldr r7, [r3, 8]!                                  |             r7 = *((r3 += 8));
    0x00006cec cmp r7, r3                                        |             
                                                                 |             if (r7 == r3) {
    0x00006cf0 beq 0x6d84                                        |                 goto label_3;
                                                                 |             }
    0x00006cf4 ldr r3, [pc, 0xe4]                                |             r3 = *(0x6ddc);
    0x00006cf8 add r3, pc, r3                                    |             r3 = pc + r3;
    0x00006cfc str r3, [sp, 8]                                   |             var_8h = r3;
    0x00006d00 b 0x6d68                                          |             goto label_4;
                                                                 |         }
    0x00006d04 bl 0x7738                                         |         fcn_00007738 (r0);
    0x00006d08 b 0x6c70                                          |         
                                                                 |     } while (1);
                                                                 |     do {
    0x00006d0c ldr r3, [r8]                                      |         r3 = *(r8);
    0x00006d10 sub sl, r6, 8                                     |         sl = r6 - 8;
    0x00006d14 tst r3, 4                                         |         
                                                                 |         if ((r3 & 4) != 0) {
    0x00006d18 beq 0x6d60                                        |             
    0x00006d1c ldr r3, [pc, 0x90]                                |             r3 = *(0x6db0);
    0x00006d20 ldr r3, [r5, r3]                                  |             r3 = *((r5 + r3));
    0x00006d24 ldr fp, [r3]                                      |             fp = *(0x6db0);
    0x00006d28 bl 0x58fc                                         |             getpid ();
    0x00006d2c ldr r3, [sp, 8]                                   |             r3 = var_8h;
    0x00006d30 mov r1, sb                                        |             r1 = sb;
    0x00006d34 str r3, [sp]                                      |             *(sp) = r3;
    0x00006d38 ldr r3, [sp, 0xc]                                 |             r3 = var_ch;
    0x00006d3c mov r2, r0                                        |             r2 = r0;
    0x00006d40 mov r0, fp                                        |             r0 = fp;
    0x00006d44 bl 0x5c50                                         |             fprintf (r0, r1, r2, r3)
    0x00006d48 ldr r1, [pc, 0x94]                                |             r1 = *(0x6de0);
    0x00006d4c ldr r3, [r6, 0xc]                                 |             r3 = *((r6 + 0xc));
    0x00006d50 ldr r2, [r6, 8]                                   |             r2 = *((r6 + 8));
    0x00006d54 add r1, pc, r1                                    |             r1 = pc + r1;
    0x00006d58 mov r0, r4                                        |             r0 = r4;
    0x00006d5c bl 0x68b0                                         |             fcn_000068b0 (r0);
                                                                 |         }
    0x00006d60 mov r0, sl                                        |         r0 = sl;
    0x00006d64 bl 0xff94                                         |         fcn_0000ff94 (r0);
                                                                 | label_4:
    0x00006d68 mov r3, r7                                        |         r3 = r7;
    0x00006d6c ldr r6, [r3, 8]!                                  |         r6 = *((r3 += 8));
    0x00006d70 cmp r6, r3                                        |         
    0x00006d74 bne 0x6d0c                                        |         
                                                                 |     } while (r6 != r3);
    0x00006d78 mov r0, r7                                        |     r0 = r7;
    0x00006d7c bl 0xff94                                         |     fcn_0000ff94 (r0);
    0x00006d80 b 0x6ce4                                          |     goto label_0;
                                                                 | label_3:
    0x00006d84 ldr r0, [r4, 0x20]                                |     r0 = *((r4 + 0x20));
    0x00006d88 bl 0x5cbc                                         |     fcn_00005cbc ();
    0x00006d8c ldr r0, [r4, 0x1c]                                |     r0 = *((r4 + 0x1c));
    0x00006d90 bl 0x6220                                         |     free (r0);
    0x00006d94 mov r0, r4                                        |     r0 = r4;
    0x00006d98 add sp, sp, 0x14                                  |     
    0x00006d9c pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}          |     
    0x00006da0 b 0x6220                                          |     void (*0x6220)() ();
                                                                 | label_1:
    0x00006da4 add sp, sp, 0x14                                  |     
    0x00006da8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |     
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0xa5e8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.blkid_send_uevent ()                             | void blkid_send_uevent (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_58h;
                                                                 |     int32_t var_48h;
                                                                 |     int32_t var_48h_2;
                                                                 |     char * stream;
                                                                 |     int32_t var_1040h;
                                                                 |     int32_t var_34h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0000a5e8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000a5ec ldr r6, [pc, 0x248]                               |     r6 = *(0xa838);
    0x0000a5f0 ldr r3, [pc, 0x248]                               |     r3 = *(0xa83c);
    0x0000a5f4 add r6, pc, r6                                    |     r6 = pc + r6;
    0x0000a5f8 ldr r8, [r6, r3]                                  |     r8 = *(0xa838);
    0x0000a5fc sub sp, sp, 0x1040                                |     
    0x0000a600 ldr r3, [r8]                                      |     r3 = *(0xa838);
    0x0000a604 sub sp, sp, 0x34                                  |     
    0x0000a608 tst r3, 0x80                                      |     
    0x0000a60c mov r4, r0                                        |     r4 = r0;
    0x0000a610 mov sb, r1                                        |     sb = r1;
                                                                 |     if ((r3 & 0x80) != 0) {
    0x0000a614 beq 0xa664                                        |         
    0x0000a618 ldr r3, [pc, 0x224]                               |         r3 = *(0xa840);
    0x0000a61c ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0000a620 ldr r5, [r3]                                      |         r5 = *(0xa840);
    0x0000a624 bl 0x58fc                                         |         getpid ();
    0x0000a628 ldr r3, [pc, 0x218]                               |         r3 = *(0xa844);
    0x0000a62c ldr r1, [pc, 0x218]                               |         r1 = *(0xa848);
    0x0000a630 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000a634 str r3, [sp]                                      |         *(sp) = r3;
    0x0000a638 ldr r3, [pc, 0x210]                               |         r3 = *(0xa84c);
    0x0000a63c add r1, pc, r1                                    |         r1 = pc + r1;
    0x0000a640 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0000a644 mov r2, r0                                        |         r2 = r0;
    0x0000a648 mov r0, r5                                        |         r0 = r5;
    0x0000a64c bl 0x5c50                                         |         fprintf (r0, r1, r2, r3)
    0x0000a650 ldr r0, [pc, 0x1fc]                               |         r0 = *(0xa850);
    0x0000a654 mov r2, sb                                        |         r2 = sb;
    0x0000a658 mov r1, r4                                        |         r1 = r4;
    0x0000a65c add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000a660 bl 0xa288                                         |         fcn_0000a288 ();
                                                                 |     }
    0x0000a664 cmp sb, 0                                         |     
    0x0000a668 cmpne r4, 0                                       |     __asm ("cmpne r4, 0");
    0x0000a66c bne 0xa684                                        |     
                                                                 |     while (r5 != r0) {
                                                                 | label_0:
    0x0000a670 mvn r5, 0                                         |         r5 = ~0;
                                                                 | label_1:
    0x0000a674 mov r0, r5                                        |         r0 = r5;
    0x0000a678 add sp, sp, 0x1040                                |         
    0x0000a67c add sp, sp, 0x34                                  |         
    0x0000a680 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
    0x0000a684 add r1, sp, 8                                     |         r1 += var_8h;
    0x0000a688 mov r0, r4                                        |         r0 = r4;
    0x0000a68c bl 0x5800                                         |         r0 = stat64 ();
    0x0000a690 subs r5, r0, 0                                    |         r5 = r0 - 0;
    0x0000a694 bne 0xa670                                        |         
                                                                 |     }
    0x0000a698 add r4, sp, 0x70                                  |     r4 += stream;
    0x0000a69c ldr r3, [r4, -0x58]                               |     r3 = var_58h;
    0x0000a6a0 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x0000a6a4 cmp r3, 0x6000                                    |     
                                                                 |     if (r3 != 0x6000) {
    0x0000a6a8 bne 0xa670                                        |         goto label_0;
                                                                 |     }
    0x0000a6ac ldrd sl, fp, [r4, -0x48]                          |     __asm ("ldrd sl, fp, [var_48h]");
    0x0000a6b0 mov r1, fp                                        |     r1 = fp;
    0x0000a6b4 mov r0, sl                                        |     r0 = sl;
    0x0000a6b8 bl 0x5944                                         |     gnu_dev_major ();
    0x0000a6bc mov r1, fp                                        |     r1 = fp;
    0x0000a6c0 mov r7, r0                                        |     r7 = r0;
    0x0000a6c4 mov r0, sl                                        |     r0 = sl;
    0x0000a6c8 bl 0x5af4                                         |     gnu_dev_minor ();
    0x0000a6cc ldr r2, [pc, 0x184]                               |     r2 = *(0xa854);
    0x0000a6d0 mov r3, r7                                        |     r3 = r7;
    0x0000a6d4 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0000a6d8 mov r1, 0x1000                                    |     r1 = 0x1000;
    0x0000a6dc str r0, [sp]                                      |     *(sp) = r0;
    0x0000a6e0 mov r0, r4                                        |     r0 = r4;
    0x0000a6e4 bl 0x5830                                         |     snprintf (r0, r1, r2, r3);
    0x0000a6e8 ldr r1, [pc, 0x16c]                               |     r1 = *(0xa858);
    0x0000a6ec mov r0, r4                                        |     r0 = r4;
    0x0000a6f0 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000a6f4 bl 0x6238                                         |     fopen64 ();
    0x0000a6f8 subs r7, r0, 0                                    |     r7 -= stream;
                                                                 |     if (r7 != stream) {
    0x0000a6fc mvneq r5, 0                                       |         r5 = ~0;
                                                                 |     }
                                                                 |     if (r7 != stream) {
    0x0000a700 beq 0xa758                                        |         
    0x0000a704 mov r1, r7                                        |         r1 = r7;
    0x0000a708 mov r0, sb                                        |         r0 = sb;
    0x0000a70c bl 0x6154                                         |         fputs (r0, r1);
    0x0000a710 mov r0, r7                                        |         r0 = r7;
    0x0000a714 bl 0x5824                                         |         r0 = fpending ();
    0x0000a718 mov sb, r0                                        |         sb = r0;
    0x0000a71c mov r0, r7                                        |         r0 = r7;
    0x0000a720 bl 0x5cf8                                         |         r0 = ferror (r0);
    0x0000a724 mov sl, r0                                        |         sl = r0;
    0x0000a728 mov r0, r7                                        |         r0 = r7;
    0x0000a72c bl 0x5e90                                         |         fclose (r0);
    0x0000a730 cmp sl, 0                                         |         
                                                                 |         if (sl != 0) {
    0x0000a734 bne 0xa7c0                                        |             goto label_4;
                                                                 |         }
    0x0000a738 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0000a73c beq 0xa758                                        |             goto label_2;
                                                                 |         }
    0x0000a740 cmp sb, 0                                         |         
                                                                 |         if (sb != 0) {
    0x0000a744 bne 0xa7d8                                        |             goto label_5;
                                                                 |         }
    0x0000a748 bl 0x60ac                                         |         r0 = errno_location ();
    0x0000a74c ldr r3, [r0]                                      |         r3 = *(r0);
    0x0000a750 cmp r3, 9                                         |         
                                                                 |         if (r3 != 9) {
    0x0000a754 bne 0xa7d8                                        |             goto label_5;
                                                                 |         }
                                                                 |     }
                                                                 | label_2:
    0x0000a758 ldr r3, [r8]                                      |     r3 = *(r8);
    0x0000a75c tst r3, 0x80                                      |     
                                                                 |     if ((r3 & 0x80) == 0) {
    0x0000a760 beq 0xa674                                        |         goto label_1;
                                                                 |     }
    0x0000a764 ldr r3, [pc, 0xd8]                                |     r3 = *(0xa840);
    0x0000a768 ldr r3, [r6, r3]                                  |     r3 = *((r6 + r3));
    0x0000a76c ldr r6, [r3]                                      |     r6 = *(0xa840);
    0x0000a770 bl 0x58fc                                         |     getpid ();
    0x0000a774 ldr r3, [pc, 0xe4]                                |     r3 = *(0xa85c);
    0x0000a778 ldr r1, [pc, 0xe4]                                |     r1 = *(0xa860);
    0x0000a77c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000a780 str r3, [sp]                                      |     *(sp) = r3;
    0x0000a784 ldr r3, [pc, 0xdc]                                |     r3 = *(0xa864);
    0x0000a788 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000a78c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000a790 mov r2, r0                                        |     r2 = r0;
    0x0000a794 mov r0, r6                                        |     r0 = r6;
    0x0000a798 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0000a79c cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0000a7a0 beq 0xa830                                        |         goto label_6;
                                                                 |     }
    0x0000a7a4 ldr r2, [pc, 0xc0]                                |     r2 = *(0xa868);
    0x0000a7a8 add r2, pc, r2                                    |     r2 = pc + r2;
                                                                 | label_3:
    0x0000a7ac ldr r0, [pc, 0xbc]                                |     r0 = *(0xa86c);
    0x0000a7b0 mov r1, r4                                        |     r1 = r4;
    0x0000a7b4 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000a7b8 bl 0xa288                                         |     fcn_0000a288 ();
    0x0000a7bc b 0xa674                                          |     goto label_1;
                                                                 | label_4:
    0x0000a7c0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000a7c4 bne 0xa7d8                                        |         
    0x0000a7c8 bl 0x60ac                                         |         r0 = errno_location ();
    0x0000a7cc ldr r3, [r0]                                      |         r3 = *(r0);
    0x0000a7d0 cmp r3, 0x20                                      |         
                                                                 |         if (r3 != 0x20) {
    0x0000a7d4 strne r5, [r0]                                    |             *(r0) = r5;
                                                                 |             goto label_5;
                                                                 |         }
                                                                 |     }
                                                                 | label_5:
    0x0000a7d8 ldr r3, [r8]                                      |     r3 = *(r8);
    0x0000a7dc tst r3, 0x80                                      |     
                                                                 |     if ((r3 & 0x80) == 0) {
    0x0000a7e0 beq 0xa758                                        |         goto label_2;
                                                                 |     }
    0x0000a7e4 ldr r3, [pc, 0x58]                                |     r3 = *(0xa840);
    0x0000a7e8 ldr r3, [r6, r3]                                  |     r3 = *((r6 + r3));
    0x0000a7ec ldr r7, [r3]                                      |     r7 = *(0xa840);
    0x0000a7f0 bl 0x58fc                                         |     getpid ();
    0x0000a7f4 ldr r3, [pc, 0x78]                                |     r3 = *(0xa870);
    0x0000a7f8 ldr r1, [pc, 0x78]                                |     r1 = *(0xa874);
    0x0000a7fc add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000a800 str r3, [sp]                                      |     *(sp) = r3;
    0x0000a804 ldr r3, [pc, 0x70]                                |     r3 = *(0xa878);
    0x0000a808 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000a80c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000a810 mov r2, r0                                        |     r2 = r0;
    0x0000a814 mov r0, r7                                        |     r0 = r7;
    0x0000a818 bl 0x5c50                                         |     fprintf (r0, r1, r2, r3)
    0x0000a81c ldr r0, [pc, 0x5c]                                |     r0 = *(0xa87c);
    0x0000a820 mov r1, r4                                        |     r1 = r4;
    0x0000a824 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000a828 bl 0xa288                                         |     fcn_0000a288 ();
    0x0000a82c b 0xa758                                          |     goto label_2;
                                                                 | label_6:
    0x0000a830 ldr r2, [pc, 0x4c]                                |     r2 = *(0xa880);
    0x0000a834 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0000a838 b 0xa7ac                                          |     goto label_3;
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libblkid.so.1.1.0 @ 0x10948 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.blkid_verify ()                              | void blkid_verify (int32_t arg1, uint32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_10h;
                                                             |     char * s2;
                                                             |     char * var_18h;
                                                             |     char * var_1ch;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_2ch;
                                                             |     char * s1;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_38h;
                                                             |     int32_t var_3ch;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_60h;
                                                             |     int32_t var_60h_2;
                                                             |     int32_t var_90h;
                                                             |     int32_t var_94h;
                                                             |     int32_t var_ach;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00010948 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x0001094c ldr r6, [pc, 0x54c]                           |     r6 = *(0x10e9c);
    0x00010950 cmp r1, 0                                     |     
    0x00010954 mov r5, r0                                    |     r5 = r0;
    0x00010958 clz r0, r0                                    |     r0 &= r0;
    0x0001095c lsr r0, r0, 5                                 |     r0 >>= 5;
                                                             |     if (r1 != 0) {
    0x00010960 moveq r0, 1                                   |         r0 = 1;
                                                             |     }
    0x00010964 cmp r0, 0                                     |     
    0x00010968 add r6, pc, r6                                |     r6 = pc + r6;
    0x0001096c sub sp, sp, 0xac                              |     
                                                             |     if (r0 != 0) {
    0x00010970 bne 0x10c2c                                   |         goto label_8;
                                                             |     }
    0x00010974 mov r4, r1                                    |     r4 = r1;
    0x00010978 bl 0x5eb4                                     |     time (r0);
    0x0001097c add r1, sp, 0x40                              |     r1 += var_40h;
    0x00010980 ldr r7, [r4, 0x30]                            |     r7 = *((r4 + 0x30));
    0x00010984 mov r8, r0                                    |     r8 = r0;
    0x00010988 ldr r0, [r4, 0x14]                            |     r0 = *((r4 + 0x14));
    0x0001098c bl 0x5800                                     |     r0 = stat64 ();
    0x00010990 cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x00010994 bge 0x10a80                                   |         goto label_9;
                                                             |     }
    0x00010998 bl 0x60ac                                     |     errno_location ();
    0x0001099c ldr r3, [pc, 0x500]                           |     
    0x000109a0 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x000109a4 ldr r3, [r3]                                  |     r3 = *(0x10ea0);
    0x000109a8 tst r3, 0x200                                 |     
    0x000109ac mov r5, r0                                    |     r5 = r0;
                                                             |     if ((r3 & 0x200) != 0) {
    0x000109b0 beq 0x10a00                                   |         
    0x000109b4 ldr r3, [pc, 0x4ec]                           |         r3 = *(0x10ea4);
    0x000109b8 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x000109bc ldr r7, [r3]                                  |         r7 = *(0x10ea4);
    0x000109c0 bl 0x58fc                                     |         getpid ();
    0x000109c4 ldr r3, [pc, 0x4e0]                           |         r3 = *(0x10ea8);
    0x000109c8 ldr r1, [pc, 0x4e0]                           |         r1 = *(0x10eac);
    0x000109cc add r3, pc, r3                                |         r3 = pc + r3;
    0x000109d0 str r3, [sp]                                  |         *(sp) = r3;
    0x000109d4 ldr r3, [pc, 0x4d8]                           |         r3 = *(0x10eb0);
    0x000109d8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000109dc add r3, pc, r3                                |         r3 = pc + r3;
    0x000109e0 mov r2, r0                                    |         r2 = r0;
    0x000109e4 mov r0, r7                                    |         r0 = r7;
    0x000109e8 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x000109ec ldr r0, [pc, 0x4c4]                           |         r0 = *(0x10eb4);
    0x000109f0 ldr r2, [r4, 0x14]                            |         r2 = *((r4 + 0x14));
    0x000109f4 ldr r1, [r5]                                  |         r1 = *(r5);
    0x000109f8 add r0, pc, r0                                |         r0 = pc + r0;
                                                             | label_2:
    0x000109fc bl 0x108bc                                    |         fcn_000108bc ();
                                                             |     }
                                                             | label_1:
    0x00010a00 bl 0x60ac                                     |     r0 = errno_location ();
    0x00010a04 ldr r3, [r0]                                  |     r3 = *(r0);
    0x00010a08 sub r2, r3, 1                                 |     r2 = r3 - 1;
    0x00010a0c cmp r3, 0xd                                   |     
    0x00010a10 cmpne r2, 1                                   |     __asm ("cmpne r2, 1");
                                                             |     if (r3 > 0xd) {
    0x00010a14 bhi 0x10c24                                   |         goto label_10;
                                                             |     }
    0x00010a18 ldr r3, [pc, 0x484]                           |     
    0x00010a1c ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00010a20 ldr r3, [r3]                                  |     r3 = *(0x10ea0);
    0x00010a24 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x00010a28 beq 0x10a74                                   |         goto label_0;
                                                             |     }
    0x00010a2c ldr r3, [pc, 0x474]                           |     r3 = *(0x10ea4);
    0x00010a30 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00010a34 ldr r5, [r3]                                  |     r5 = *(0x10ea4);
    0x00010a38 bl 0x58fc                                     |     getpid ();
    0x00010a3c ldr r3, [pc, 0x478]                           |     r3 = *(0x10eb8);
    0x00010a40 ldr r1, [pc, 0x478]                           |     r1 = *(0x10ebc);
    0x00010a44 add r3, pc, r3                                |     r3 = pc + r3;
    0x00010a48 str r3, [sp]                                  |     *(sp) = r3;
    0x00010a4c ldr r3, [pc, 0x470]                           |     r3 = *(0x10ec0);
    0x00010a50 add r1, pc, r1                                |     r1 = pc + r1;
    0x00010a54 add r3, pc, r3                                |     r3 = pc + r3;
    0x00010a58 mov r2, r0                                    |     r2 = r0;
    0x00010a5c mov r0, r5                                    |     r0 = r5;
    0x00010a60 bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x00010a64 ldr r0, [pc, 0x45c]                           |     r0 = *(0x10ec4);
    0x00010a68 ldr r1, [r4, 0x14]                            |     r1 = *((r4 + 0x14));
    0x00010a6c add r0, pc, r0                                |     r0 = pc + r0;
    0x00010a70 bl 0x108bc                                    |     fcn_000108bc ();
                                                             |     do {
                                                             | label_0:
    0x00010a74 mov r0, r4                                    |         r0 = r4;
    0x00010a78 add sp, sp, 0xac                              |         
    0x00010a7c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_9:
    0x00010a80 ldr r3, [r4, 0x30]                            |         r3 = *((r4 + 0x30));
    0x00010a84 sub r7, r8, r7                                |         r7 = r8 - r7;
    0x00010a88 cmp r3, r8                                    |         
                                                             |         if (r3 > r8) {
    0x00010a8c bgt 0x10ad8                                   |             goto label_11;
                                                             |         }
    0x00010a90 ldr r2, [sp, 0x90]                            |         r2 = var_90h;
    0x00010a94 cmp r3, r2                                    |         
                                                             |         if (r3 <= r2) {
    0x00010a98 bgt 0x10ab8                                   |             
                                                             |             if (r3 != r2) {
    0x00010a9c bne 0x10ad8                                   |                 goto label_11;
                                                             |             }
    0x00010aa0 mov r1, 0x3e8                                 |             r1 = 0x3e8;
    0x00010aa4 ldr r0, [sp, 0x94]                            |             r0 = var_94h;
    0x00010aa8 bl 0x360bc                                    |             fcn_000360bc (r0, r1);
    0x00010aac ldr r3, [r4, 0x34]                            |             r3 = *((r4 + 0x34));
    0x00010ab0 cmp r0, r3                                    |             
                                                             |             if (r0 > r3) {
    0x00010ab4 bgt 0x10ad8                                   |                 goto label_11;
                                                             |             }
                                                             |         }
    0x00010ab8 cmp r7, 1                                     |         
    0x00010abc ble 0x10a74                                   |         
                                                             |     } while (r7 <= 1);
    0x00010ac0 ldr r3, [r4, 0x38]                            |     r3 = *((r4 + 0x38));
    0x00010ac4 cmp r7, 0xc7                                  |     
                                                             |     if (r7 <= 0xc7) {
    0x00010ac8 movgt r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r7 > 0xc7) {
    0x00010acc andle r3, r3, 1                               |         r3 &= 1;
                                                             |     }
    0x00010ad0 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00010ad4 bne 0x10a74                                   |         goto label_0;
                                                             |     }
                                                             | label_11:
    0x00010ad8 ldr r3, [pc, 0x3c4]                           |     r3 = *(0x10ea0);
    0x00010adc ldr sl, [r6, r3]                              |     sl = *((r6 + r3));
    0x00010ae0 ldr r3, [sl]                                  |     r3 = *(sl);
    0x00010ae4 tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) != 0) {
    0x00010ae8 beq 0x10b58                                   |         
    0x00010aec ldr r3, [pc, 0x3b4]                           |         r3 = *(0x10ea4);
    0x00010af0 ldr r3, [r6, r3]                              |         r3 = *((r6 + r3));
    0x00010af4 ldr r8, [r3]                                  |         r8 = *(0x10ea4);
    0x00010af8 bl 0x58fc                                     |         getpid ();
    0x00010afc ldr r3, [pc, 0x3c8]                           |         r3 = *(0x10ec8);
    0x00010b00 ldr r1, [pc, 0x3c8]                           |         r1 = *(0x10ecc);
    0x00010b04 add r3, pc, r3                                |         r3 = pc + r3;
    0x00010b08 str r3, [sp]                                  |         *(sp) = r3;
    0x00010b0c ldr r3, [pc, 0x3c0]                           |         r3 = *(0x10ed0);
    0x00010b10 add r1, pc, r1                                |         r1 = pc + r1;
    0x00010b14 add r3, pc, r3                                |         r3 = pc + r3;
    0x00010b18 mov r2, r0                                    |         r2 = r0;
    0x00010b1c mov r0, r8                                    |         r0 = r8;
    0x00010b20 bl 0x5c50                                     |         fprintf (r0, r1, r2, r3)
    0x00010b24 ldr r0, [sp, 0x94]                            |         r0 = var_94h;
    0x00010b28 ldr r1, [pc, 0x3a8]                           |         r1 = *(0x10ed4);
    0x00010b2c str r7, [sp, 8]                               |         var_8h = r7;
    0x00010b30 umull r2, r3, r0, r1                          |         r2:r3 = r0 * r1;
    0x00010b34 ldr r0, [pc, 0x3a0]                           |         r0 = *(0x10ed8);
    0x00010b38 lsr r3, r3, 6                                 |         r3 >>= 6;
    0x00010b3c str r3, [sp, 4]                               |         var_4h = r3;
    0x00010b40 ldr r3, [sp, 0x90]                            |         r3 = var_90h;
    0x00010b44 add r0, pc, r0                                |         r0 = pc + r0;
    0x00010b48 str r3, [sp]                                  |         *(sp) = r3;
    0x00010b4c ldrd r2, r3, [r4, 0x30]                       |         __asm ("ldrd r2, r3, [r4, 0x30]");
    0x00010b50 ldr r1, [r4, 0x14]                            |         r1 = *((r4 + 0x14));
    0x00010b54 bl 0x108bc                                    |         fcn_000108bc ();
                                                             |     }
    0x00010b58 mov r2, 0                                     |     r2 = 0;
    0x00010b5c ldrd r0, r1, [sp, 0x60]                       |     __asm ("ldrd r0, r1, [var_60h]");
    0x00010b60 bl 0x35438                                    |     r0 = fcn_00035438 (r0, r1);
    0x00010b64 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010b68 bne 0x10c24                                   |         goto label_10;
                                                             |     }
    0x00010b6c ldr r3, [r5, 0x20]                            |     r3 = *((r5 + 0x20));
    0x00010b70 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00010b74 bne 0x10b88                                   |         
    0x00010b78 bl 0x5c5c                                     |         r0 = fcn_00005c5c ();
    0x00010b7c cmp r0, 0                                     |         
    0x00010b80 str r0, [r5, 0x20]                            |         *((r5 + 0x20)) = r0;
                                                             |         if (r0 == 0) {
    0x00010b84 beq 0x10c24                                   |             goto label_10;
                                                             |         }
                                                             |     }
    0x00010b88 mov r1, 0x80000                               |     r1 = 0x80000;
    0x00010b8c ldr r0, [r4, 0x14]                            |     r0 = *((r4 + 0x14));
    0x00010b90 bl 0x5e9c                                     |     r0 = open64 ();
    0x00010b94 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb >= r0) {
    0x00010b98 bge 0x10bfc                                   |         goto label_12;
                                                             |     }
    0x00010b9c bl 0x60ac                                     |     errno_location ();
    0x00010ba0 ldr r3, [sl]                                  |     r3 = *(sl);
    0x00010ba4 tst r3, 0x200                                 |     
    0x00010ba8 mov r5, r0                                    |     r5 = r0;
                                                             |     if ((r3 & 0x200) == 0) {
    0x00010bac beq 0x10a00                                   |         goto label_1;
                                                             |     }
    0x00010bb0 ldr r3, [pc, 0x2f0]                           |     r3 = *(0x10ea4);
    0x00010bb4 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00010bb8 ldr r7, [r3]                                  |     r7 = *(0x10ea4);
    0x00010bbc bl 0x58fc                                     |     getpid ();
    0x00010bc0 ldr r3, [pc, 0x318]                           |     r3 = *(0x10edc);
    0x00010bc4 ldr r1, [pc, 0x318]                           |     r1 = *(0x10ee0);
    0x00010bc8 add r3, pc, r3                                |     r3 = pc + r3;
    0x00010bcc str r3, [sp]                                  |     *(sp) = r3;
    0x00010bd0 ldr r3, [pc, 0x310]                           |     r3 = *(0x10ee4);
    0x00010bd4 add r1, pc, r1                                |     r1 = pc + r1;
    0x00010bd8 add r3, pc, r3                                |     r3 = pc + r3;
    0x00010bdc mov r2, r0                                    |     r2 = r0;
    0x00010be0 mov r0, r7                                    |     r0 = r7;
    0x00010be4 bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x00010be8 ldr r0, [pc, 0x2fc]                           |     r0 = *(0x10ee8);
    0x00010bec ldr r2, [r4, 0x14]                            |     r2 = *((r4 + 0x14));
    0x00010bf0 ldr r1, [r5]                                  |     r1 = *(r5);
    0x00010bf4 add r0, pc, r0                                |     r0 = pc + r0;
    0x00010bf8 b 0x109fc                                     |     goto label_2;
                                                             | label_12:
    0x00010bfc mov r2, 0                                     |     r2 = 0;
    0x00010c00 mov r3, 0                                     |     r3 = 0;
    0x00010c04 strd r2, r3, [sp]                             |     __asm ("strd r2, r3, [sp]");
    0x00010c08 ldr r0, [r5, 0x20]                            |     r0 = *((r5 + 0x20));
    0x00010c0c mov r1, sb                                    |     r1 = sb;
    0x00010c10 bl 0x5fc8                                     |     r0 = fcn_00005fc8 ();
    0x00010c14 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010c18 beq 0x10c34                                   |         
    0x00010c1c mov r0, sb                                    |         r0 = sb;
    0x00010c20 bl 0x61e4                                     |         close (r0);
                                                             | label_10:
    0x00010c24 mov r0, r4                                    |         r0 = r4;
    0x00010c28 bl 0x7738                                     |         fcn_00007738 (r0);
                                                             | label_8:
    0x00010c2c mov r4, 0                                     |         r4 = 0;
    0x00010c30 b 0x10a74                                     |         goto label_0;
                                                             |     }
    0x00010c34 mov r0, r4                                    |     r0 = r4;
    0x00010c38 bl 0x5b18                                     |     fcn_00005b18 ();
    0x00010c3c add fp, sp, 0x28                              |     
    0x00010c40 add r8, sp, 0x24                              |     r8 += var_24h;
    0x00010c44 mov r7, r0                                    |     r7 = r0;
                                                             |     do {
    0x00010c48 mov r2, fp                                    |         r2 = fp;
    0x00010c4c mov r1, r8                                    |         r1 = r8;
    0x00010c50 mov r0, r7                                    |         r0 = r7;
    0x00010c54 bl 0x5fec                                     |         r0 = fcn_00005fec ();
    0x00010c58 subs r3, r0, 0                                |         r3 = r0 - 0;
                                                             |         if (r3 != r0) {
    0x00010c5c beq 0x10cd0                                   |             
    0x00010c60 mov r0, r7                                    |             r0 = r7;
    0x00010c64 bl 0x6214                                     |             fcn_00006214 ();
    0x00010c68 mov r1, 1                                     |             r1 = 1;
    0x00010c6c ldr r0, [r5, 0x20]                            |             r0 = *((r5 + 0x20));
    0x00010c70 bl 0x5f50                                     |             fcn_00005f50 ();
    0x00010c74 mov r1, 0x6a                                  |             r1 = 0x6a;
    0x00010c78 ldr r0, [r5, 0x20]                            |             r0 = *((r5 + 0x20));
    0x00010c7c bl 0x5dd0                                     |             fcn_00005dd0 ();
    0x00010c80 mov r1, 1                                     |             r1 = 1;
    0x00010c84 ldr r0, [r5, 0x20]                            |             r0 = *((r5 + 0x20));
    0x00010c88 bl 0x60f4                                     |             fcn_000060f4 ();
    0x00010c8c mov r1, 4                                     |             r1 = 4;
    0x00010c90 ldr r0, [r5, 0x20]                            |             r0 = *((r5 + 0x20));
    0x00010c94 bl 0x6070                                     |             fcn_00006070 ();
    0x00010c98 ldr r0, [r5, 0x20]                            |             r0 = *((r5 + 0x20));
    0x00010c9c bl 0x5aa0                                     |             r0 = fcn_00005aa0 ();
    0x00010ca0 subs r7, r0, 0                                |             r7 = r0 - 0;
                                                             |             if (r7 == r0) {
    0x00010ca4 beq 0x10ce4                                   |                 goto label_13;
                                                             |             }
    0x00010ca8 mov r0, r4                                    |             r0 = r4;
    0x00010cac bl 0x7738                                     |             fcn_00007738 (r0);
    0x00010cb0 mov r4, 0                                     |             r4 = 0;
                                                             | label_3:
    0x00010cb4 ldr r0, [r5, 0x20]                            |             r0 = *((r5 + 0x20));
    0x00010cb8 bl 0x5d88                                     |             fcn_00005d88 ();
    0x00010cbc ldr r0, [r5, 0x20]                            |             r0 = *((r5 + 0x20));
    0x00010cc0 bl 0x5758                                     |             fcn_00005758 ();
    0x00010cc4 mov r0, sb                                    |             r0 = sb;
    0x00010cc8 bl 0x61e4                                     |             close (r0);
    0x00010ccc b 0x10a74                                     |             goto label_0;
                                                             |         }
    0x00010cd0 mov r2, r3                                    |         r2 = r3;
    0x00010cd4 ldr r1, [sp, 0x24]                            |         r1 = var_24h;
    0x00010cd8 mov r0, r4                                    |         r0 = r4;
    0x00010cdc bl 0x100ec                                    |         fcn_000100ec (r0, r1, r2);
    0x00010ce0 b 0x10c48                                     |         
                                                             |     } while (1);
                                                             | label_13:
    0x00010ce4 mov r1, r7                                    |     r1 = r7;
    0x00010ce8 add r0, sp, 0x38                              |     r0 += var_38h;
    0x00010cec bl 0x5e60                                     |     r0 = gettimeofday ();
    0x00010cf0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010cf4 bne 0x10dcc                                   |         goto label_14;
                                                             |     }
    0x00010cf8 ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x00010cfc str r3, [r4, 0x30]                            |     *((r4 + 0x30)) = r3;
    0x00010d00 ldr r3, [sp, 0x3c]                            |     r3 = var_3ch;
    0x00010d04 str r3, [r4, 0x34]                            |     *((r4 + 0x34)) = r3;
                                                             | label_4:
    0x00010d08 ldrd r2, r3, [sp, 0x60]                       |     __asm ("ldrd r2, r3, [var_60h]");
    0x00010d0c ldr fp, [r5, 0x20]                            |     fp = *((r5 + 0x20));
    0x00010d10 strd r2, r3, [r4, 0x28]                       |     __asm ("strd r2, r3, [r4, 0x28]");
    0x00010d14 ldr r3, [r4, 0x38]                            |     r3 = *((r4 + 0x38));
    0x00010d18 mov r0, fp                                    |     r0 = fp;
    0x00010d1c orr r3, r3, 1                                 |     r3 |= 1;
    0x00010d20 str r3, [r4, 0x38]                            |     *((r4 + 0x38)) = r3;
    0x00010d24 ldr r3, [r5, 0x18]                            |     r3 = *((r5 + 0x18));
    0x00010d28 orr r3, r3, 4                                 |     r3 |= 4;
    0x00010d2c str r3, [r5, 0x18]                            |     *((r5 + 0x18)) = r3;
    0x00010d30 bl 0x61fc                                     |     fcn_000061fc ();
    0x00010d34 ldr r3, [pc, 0x1b4]                           |     r3 = *(0x10eec);
    0x00010d38 add r3, pc, r3                                |     r3 = pc + r3;
    0x00010d3c str r3, [sp, 0x14]                            |     s2 = r3;
    0x00010d40 ldr r3, [pc, 0x1ac]                           |     r3 = *(0x10ef0);
    0x00010d44 add r3, pc, r3                                |     r3 = pc + r3;
    0x00010d48 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x00010d4c ldr r3, [pc, 0x1a4]                           |     r3 = *(0x10ef4);
    0x00010d50 add r3, pc, r3                                |     r3 = pc + r3;
    0x00010d54 str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x00010d58 str r0, [sp, 0x10]                            |     var_10h = r0;
                                                             | label_5:
    0x00010d5c ldr r3, [sp, 0x10]                            |     r3 = var_10h;
    0x00010d60 cmp r3, r7                                    |     
                                                             |     if (r3 > r7) {
    0x00010d64 bgt 0x10ddc                                   |         goto label_15;
                                                             |     }
    0x00010d68 ldr r3, [sl]                                  |     r3 = *(sl);
    0x00010d6c tst r3, 0x200                                 |     
                                                             |     if ((r3 & 0x200) == 0) {
    0x00010d70 beq 0x10cb4                                   |         goto label_3;
                                                             |     }
    0x00010d74 ldr r3, [pc, 0x12c]                           |     r3 = *(0x10ea4);
    0x00010d78 ldr r3, [r6, r3]                              |     r3 = *((r6 + r3));
    0x00010d7c ldr r6, [r3]                                  |     r6 = *(0x10ea4);
    0x00010d80 bl 0x58fc                                     |     getpid ();
    0x00010d84 ldr r3, [pc, 0x170]                           |     r3 = *(0x10ef8);
    0x00010d88 ldr r1, [pc, 0x170]                           |     r1 = *(0x10efc);
    0x00010d8c add r3, pc, r3                                |     r3 = pc + r3;
    0x00010d90 str r3, [sp]                                  |     *(sp) = r3;
    0x00010d94 ldr r3, [pc, 0x168]                           |     r3 = *(0x10f00);
    0x00010d98 add r1, pc, r1                                |     r1 = pc + r1;
    0x00010d9c add r3, pc, r3                                |     r3 = pc + r3;
    0x00010da0 mov r2, r0                                    |     r2 = r0;
    0x00010da4 mov r0, r6                                    |     r0 = r6;
    0x00010da8 bl 0x5c50                                     |     fprintf (r0, r1, r2, r3)
    0x00010dac ldr r3, [r4, 0x1c]                            |     r3 = *((r4 + 0x1c));
    0x00010db0 ldr r0, [pc, 0x150]                           |     r0 = *(0x10f04);
    0x00010db4 str r3, [sp]                                  |     *(sp) = r3;
    0x00010db8 add r0, pc, r0                                |     r0 = pc + r0;
    0x00010dbc ldrd r2, r3, [sp, 0x60]                       |     __asm ("ldrd r2, r3, [var_60h]");
    0x00010dc0 ldr r1, [r4, 0x14]                            |     r1 = *((r4 + 0x14));
    0x00010dc4 bl 0x108bc                                    |     fcn_000108bc ();
    0x00010dc8 b 0x10cb4                                     |     goto label_3;
                                                             | label_14:
    0x00010dcc mov r0, r7                                    |     r0 = r7;
    0x00010dd0 bl 0x5eb4                                     |     time (r0);
    0x00010dd4 str r0, [r4, 0x30]                            |     *((r4 + 0x30)) = r0;
    0x00010dd8 b 0x10d08                                     |     goto label_4;
                                                             | label_15:
    0x00010ddc add r3, sp, 0x34                              |     r3 += var_34h;
    0x00010de0 str r3, [sp]                                  |     *(sp) = r3;
    0x00010de4 add r2, sp, 0x30                              |     r2 += s1;
    0x00010de8 add r3, sp, 0x2c                              |     r3 += var_2ch;
    0x00010dec mov r1, r7                                    |     r1 = r7;
    0x00010df0 mov r0, fp                                    |     r0 = fp;
    0x00010df4 bl 0x5f8c                                     |     r0 = fcn_00005f8c ();
    0x00010df8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010dfc bne 0x10e48                                   |         goto label_7;
                                                             |     }
    0x00010e00 ldr r8, [sp, 0x30]                            |     r8 = s1;
    0x00010e04 mov r2, 0xb                                   |     r2 = 0xb;
    0x00010e08 ldr r1, [sp, 0x14]                            |     r1 = s2;
    0x00010e0c mov r0, r8                                    |     r0 = r8;
    0x00010e10 bl 0x5d34                                     |     r0 = strncmp (r0, r1, r2);
    0x00010e14 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010e18 bne 0x10e7c                                   |         goto label_16;
                                                             |     }
    0x00010e1c ldr r1, [sp, 0x1c]                            |     r1 = var_1ch;
    0x00010e20 mov r0, r8                                    |     r0 = r8;
    0x00010e24 bl 0x5efc                                     |     r0 = strcmp (r0, r1);
    0x00010e28 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010e2c bne 0x10e50                                   |         goto label_17;
                                                             |     }
    0x00010e30 ldr r1, [pc, 0xd4]                            |     r1 = *(0x10f08);
    0x00010e34 ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x00010e38 ldr r2, [sp, 0x2c]                            |     r2 = var_2ch;
    0x00010e3c add r1, pc, r1                                |     r1 = pc + r1;
                                                             | label_6:
    0x00010e40 mov r0, r4                                    |     r0 = r4;
    0x00010e44 bl 0x100ec                                    |     fcn_000100ec (r0, r1, r2);
                                                             |     do {
                                                             | label_7:
    0x00010e48 add r7, r7, 1                                 |         r7++;
    0x00010e4c b 0x10d5c                                     |         goto label_5;
                                                             | label_17:
    0x00010e50 ldr r1, [pc, 0xb8]                            |         r1 = *(0x10f0c);
    0x00010e54 mov r0, r8                                    |         r0 = r8;
    0x00010e58 add r1, pc, r1                                |         r1 = pc + r1;
    0x00010e5c bl 0x5efc                                     |         r0 = strcmp (r0, r1);
    0x00010e60 cmp r0, 0                                     |         
    0x00010e64 bne 0x10e48                                   |         
                                                             |     } while (r0 != 0);
    0x00010e68 ldr r1, [pc, 0xa4]                            |     r1 = *(0x10f10);
    0x00010e6c ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x00010e70 ldr r2, [sp, 0x2c]                            |     r2 = var_2ch;
    0x00010e74 add r1, pc, r1                                |     r1 = pc + r1;
    0x00010e78 b 0x10e40                                     |     goto label_6;
                                                             | label_16:
    0x00010e7c ldr r1, [sp, 0x18]                            |     r1 = var_18h;
    0x00010e80 mov r0, r8                                    |     r0 = r8;
    0x00010e84 bl 0x5d04                                     |     r0 = strstr (r0, r1);
    0x00010e88 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010e8c bne 0x10e48                                   |         goto label_7;
                                                             |     }
    0x00010e90 ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x00010e94 ldr r2, [sp, 0x2c]                            |     r2 = var_2ch;
    0x00010e98 mov r1, r8                                    |     r1 = r8;
    0x00010e9c b 0x10e40                                     |     goto label_6;
                                                             | }

[*] Function fprintf used 255 times libblkid.so.1.1.0