[*] Binary protection state of libudev.so.1.7.2

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


[*] Function sprintf tear down of libudev.so.1.7.2

    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libudev.so.1.7.2 @ 0x10f00 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00010f00 ()                                      | void fcn_00010f00 (int16_t arg_8ch, uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     FILE * stream;
                                                                 |     int16_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00010f00 mvnsmi lr, 0xb4000                                |     __asm ("mvnsmi lr, 0xb4000");
    0x00010f04 mov r4, r2                                        |     r4 = r2;
    0x00010f06 ldr r2, [pc, 0x24c]                               |     
    0x00010f08 mov r8, r3                                        |     r8 = r3;
    0x00010f0a sub sp, 0x14                                      |     
    0x00010f0c ldr r3, [pc, 0x248]                               |     r3 = *(0x11158);
    0x00010f0e add r2, pc                                        |     r2 = 0x22068;
    0x00010f10 ldr r3, [r2, r3]                                  |     
    0x00010f12 ldr r3, [r3]                                      |     r3 = *(0x22068);
    0x00010f14 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00010f16 mov.w r3, 0                                       |     r3 = 0;
    0x00010f18 lsls r0, r0, 0xc                                  |     r0 <<= 0xc;
    0x00010f1a movs r3, 0                                        |     r3 = 0;
    0x00010f1c str r3, [sp]                                      |     *(sp) = r3;
    0x00010f1e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00010f20 beq.w 0x110c2                                     |         goto label_8;
                                                                 |     }
    0x00010f24 mov r7, r1                                        |     r7 = r1;
    0x00010f26 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00010f28 beq.w 0x110d6                                     |         goto label_9;
                                                                 |     }
    0x00010f2c and r3, r4, 0x50                                  |     r3 = r4 & 0x50;
    0x00010f30 cmp r3, 0x50                                      |     
                                                                 |     if (r3 == 0x50) {
    0x00010f32 beq.w 0x110ea                                     |         goto label_10;
                                                                 |     }
    0x00010f36 lsls r5, r4, 0x16                                 |     r5 = r4 << 0x16;
    0x00010f38 mov r6, r0                                        |     r6 = r0;
                                                                 |     if (r5 < r4) {
    0x00010f3a bmi.w 0x11048                                     |         goto label_11;
                                                                 |     }
    0x00010f3e lsls r1, r4, 0x1d                                 |     r1 = r4 << 0x1d;
                                                                 |     if (r1 >= r4) {
    0x00010f40 bpl 0x10fdc                                       |         goto label_2;
                                                                 |     }
                                                                 | label_1:
    0x00010f42 mvn.w sb, r4                                      |     sb = ~r4;
    0x00010f46 ands sb, sb, 1                                    |     sb &= 1;
    0x00010f48 lsrs r1, r0, 4                                    |     r1 = r0 >> 4;
                                                                 |     if (r1 != r0) {
    0x00010f4a bne.w 0x1110c                                     |         goto label_12;
                                                                 |     }
    0x00010f4e add r2, sp, 8                                     |     r2 += stream;
    0x00010f50 add r1, sp, 4                                     |     r1 += var_4h;
    0x00010f52 mov r0, r6                                        |     r0 = r6;
    0x00010f54 strd sb, sb, [sp, 4]                              |     __asm ("strd sb, sb, [stream]");
    0x00010f58 bl 0x1a9c4                                        |     r0 = fcn_0001a9c4 (r0, r1, r2);
    0x00010f5c subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 < r0) {
    0x00010f5e blt.w 0x1108a                                     |         goto label_13;
                                                                 |     }
    0x00010f62 ldr r0, [sp, 4]                                   |     r0 = var_4h;
    0x00010f64 mov r3, r8                                        |     r3 = r8;
    0x00010f66 mov r2, r4                                        |     r2 = r4;
    0x00010f68 mov r1, r7                                        |     r1 = r7;
    0x00010f6a bl 0x10d34                                        |     r0 = fcn_00010d34 (r0, r1, r2, r3, r4);
    0x00010f6e subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 < r0) {
    0x00010f70 blt.w 0x110a4                                     |         goto label_14;
                                                                 |     }
    0x00010f74 ldr r0, [sp, 4]                                   |     r0 = var_4h;
    0x00010f76 blx 0x38d4                                        |     fcn_000038d4 ();
    0x00010f7a tst.w r4, 0x400                                   |     
    0x00010f7c ldr r0, [r0, 0x78]                                |     r0 = *((r0 + 0x78));
    0x00010f7e ite ne                                            |     
                                                                 |     if ((r4 & 0x400) == 0) {
    0x00010f80 movne r1, 0x180                                   |         r1 = 0x180;
                                                                 |     }
                                                                 |     if ((r4 & 0x400) == 0) {
    0x00010f84 mov.w r1, 0x1a4                                   |         r1 = 0x1a4;
                                                                 |     }
    0x00010f88 bl 0x11f90                                        |     r0 = fcn_00011f90 (r0, r1);
    0x00010f8c subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 < r0) {
    0x00010f8e blt.w 0x110a4                                     |         goto label_14;
                                                                 |     }
    0x00010f92 ldr r0, [sp, 8]                                   |     r0 = stream;
    0x00010f94 mov r1, r6                                        |     r1 = r6;
    0x00010f96 blx 0x3770                                        |     r0 = ctype_b_loc ();
    0x00010f9a cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00010f9c blt 0x1109c                                       |         goto label_15;
                                                                 |     }
    0x00010f9e ands r8, r4, 0x40                                 |     r8 = r4 & 0x40;
                                                                 |     if (r8 != r4) {
    0x00010fa2 bne.w 0x1113e                                     |         goto label_16;
                                                                 |     }
    0x00010fa6 ldr r0, [sp, 8]                                   |     r0 = stream;
    0x00010fa8 mov r5, r8                                        |     r5 = r8;
    0x00010faa blx 0x3530                                        |     ferror (r0);
    0x00010fae ldr r0, [sp, 4]                                   |     r0 = var_4h;
    0x00010fb0 str.w r8, [sp, 8]                                 |     __asm ("str.w r8, [stream]");
    0x00010fb4 bl 0x1060c                                        |     fcn_0001060c (r0);
                                                                 |     do {
                                                                 | label_0:
    0x00010fb8 ldr r0, [sp]                                      |         r0 = *(sp);
    0x00010fba bl 0x1060c                                        |         fcn_0001060c (r0);
    0x00010fbe ldr r2, [pc, 0x19c]                               |         
    0x00010fc0 ldr r3, [pc, 0x194]                               |         r3 = *(0x11158);
    0x00010fc2 add r2, pc                                        |         r2 = 0x22124;
    0x00010fc4 ldr r3, [r2, r3]                                  |         r3 = *(0x22124);
    0x00010fc6 ldr r2, [r3]                                      |         r2 = *(0x22124);
    0x00010fc8 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x00010fca eors r2, r3                                       |         r2 ^= r3;
    0x00010fcc mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00010fd0 bne.w 0x1114e                                     |             goto label_17;
                                                                 |         }
    0x00010fd4 mov r0, r5                                        |         r0 = r5;
    0x00010fd6 add sp, 0x14                                      |         
    0x00010fd8 pop.w {r4, r5, r6, r7, r8, sb, pc}                |         
                                                                 | label_2:
    0x00010fdc cmp.w r8, 0                                       |         
                                                                 |         if (r8 != 0) {
    0x00010fe0 bne.w 0x11120                                     |             goto label_18;
                                                                 |         }
    0x00010fe4 lsls r3, r4, 7                                    |         r3 = r4 << 7;
    0x00010fe6 lsls r2, r4, 8                                    |         r2 = r4 << 8;
    0x00010fe8 and r3, r3, 0x8000                                |         r3 &= 0x8000;
    0x00010fea orrs r0, r0                                       |         r0 |= r0;
    0x00010fec and r2, r2, 0x200                                 |         r2 &= 0x200;
    0x00010ff0 orrs r3, r2                                       |         r3 |= r2;
    0x00010ff2 lsls r2, r4, 6                                    |         r2 = r4 << 6;
    0x00010ff4 movw r1, 0x101                                    |         
    0x00010ff8 and r2, r2, 0x40                                  |         r2 &= 0x40;
    0x00010ffa lsls r0, r0, 9                                    |         r0 <<= 9;
    0x00010ffc tst.w r4, 0x400                                   |         
    0x00011000 orr.w r3, r3, r2                                  |         r3 |= r2;
    0x00011004 movt r1, 8                                        |         r1 = 0x80101;
    0x00011008 ite ne                                            |         
                                                                 |         if ((r4 & 0x400) == 0) {
    0x0001100a movne r2, 0x180                                   |             r2 = 0x180;
                                                                 |         }
                                                                 |         if ((r4 & 0x400) == 0) {
    0x0001100e mov.w r2, 0x1b6                                   |             r2 = 0x1b6;
                                                                 |         }
    0x00011012 orrs r1, r3                                       |         r1 |= r3;
    0x00011014 mov r0, r6                                        |         r0 = r6;
    0x00011016 blx 0x36ec                                        |         r0 = asprintf_chk ()
    0x0001101a subs.w sb, r0, 0                                  |         sb = r0 - 0;
                                                                 |         if (sb < r0) {
    0x0001101e blt 0x1105c                                       |             goto label_19;
                                                                 |         }
    0x00011020 ldr r1, [pc, 0x13c]                               |         
    0x00011022 mov r2, sp                                        |         r2 = sp;
    0x00011024 add r1, pc                                        |         r1 = 0x22188;
    0x00011026 bl 0x1084c                                        |         r0 = fcn_0001084c (r0);
    0x0001102a subs r5, r0, 0                                    |         r5 = r0 - 0;
                                                                 |         if (r5 < r0) {
    0x0001102c blt.w 0x11136                                     |             goto label_20;
                                                                 |         }
    0x00011030 lsls r2, r4, 0x18                                 |         r2 = r4 << 0x18;
                                                                 |         if (r2 < r4) {
    0x00011032 bmi 0x110fe                                       |             goto label_21;
                                                                 |         }
                                                                 | label_5:
    0x00011034 ldr r0, [sp]                                      |         r0 = *(sp);
    0x00011036 movs r3, 0                                        |         r3 = 0;
    0x00011038 mov r2, r4                                        |         r2 = r4;
    0x0001103a mov r1, r7                                        |         r1 = r7;
    0x0001103c bl 0x10d34                                        |         r0 = fcn_00010d34 (r0, r1, r2, r3, r4);
    0x00011040 subs r5, r0, 0                                    |         r5 = r0 - 0;
                                                                 |         if (r5 < r0) {
    0x00011042 blt 0x11064                                       |             goto label_4;
                                                                 |         }
                                                                 | label_3:
    0x00011044 movs r5, 0                                        |         r5 = 0;
    0x00011046 b 0x10fb8                                         |         
                                                                 |     } while (1);
                                                                 | label_11:
    0x00011048 movw r1, 0x1ed                                    |     r1 = 0x1ed;
    0x0001104c bl 0x17598                                        |     r0 = fcn_00017598 (r0, r1);
    0x00011050 subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 < r0) {
    0x00011052 blt 0x10fb8                                       |         goto label_0;
                                                                 |     }
    0x00011054 lsls r1, r4, 0x1d                                 |     r1 = r4 << 0x1d;
                                                                 |     if (r1 < r4) {
    0x00011056 bmi.w 0x10f42                                     |         goto label_1;
                                                                 |     }
    0x0001105a b 0x10fdc                                         |     goto label_2;
                                                                 | label_19:
    0x0001105c blx 0x3828                                        |     r0 = fcn_00003828 ();
    0x00011060 ldr r5, [r0]                                      |     r5 = *(r0);
    0x00011062 rsbs r5, r5, 0                                    |     r5 -= ;
                                                                 | label_4:
    0x00011064 lsls r3, r4, 0x1b                                 |     r3 = r4 << 0x1b;
                                                                 |     if (r3 >= r4) {
    0x00011066 bpl 0x10fb8                                       |         goto label_0;
                                                                 |     }
    0x00011068 ldr r0, [sp]                                      |     r0 = *(sp);
    0x0001106a bl 0x1060c                                        |     fcn_0001060c (r0);
    0x0001106e and r2, r4, 0x28                                  |     r2 = r4 & 0x28;
    0x00011072 mov r3, r0                                        |     r3 = r0;
    0x00011074 subs r2, 8                                        |     r2 -= 8;
    0x00011076 mov r1, r7                                        |     r1 = r7;
    0x00011078 it ne                                             |     
                                                                 |     if (r2 == 8) {
    0x0001107a movne r2, 1                                       |         r2 = 1;
                                                                 |     }
    0x0001107c mov r0, r6                                        |     r0 = r6;
    0x0001107e str r3, [sp]                                      |     *(sp) = r3;
    0x00011080 bl 0x108cc                                        |     r0 = fcn_000108cc (r0, r1, r2, r3);
    0x00011084 cmp r0, 0                                         |     
                                                                 |     if (r0 > 0) {
    0x00011086 bgt 0x11044                                       |         goto label_3;
                                                                 |     }
    0x00011088 b 0x10fb8                                         |     goto label_0;
                                                                 | label_13:
    0x0001108a ldr r0, [sp, 8]                                   |     r0 = stream;
    0x0001108c blx 0x3530                                        |     ferror (r0);
    0x00011090 ldr r0, [sp, 4]                                   |     r0 = var_4h;
    0x00011092 str.w sb, [sp, 8]                                 |     __asm ("str.w sb, [stream]");
    0x00011096 bl 0x1060c                                        |     fcn_0001060c (r0);
    0x0001109a b 0x11064                                         |     goto label_4;
                                                                 | label_15:
    0x0001109c blx 0x3828                                        |     r0 = fcn_00003828 ();
    0x000110a0 ldr r5, [r0]                                      |     r5 = *(r0);
    0x000110a2 rsbs r5, r5, 0                                    |     r5 -= ;
                                                                 | label_14:
    0x000110a4 ldr r0, [sp, 8]                                   |     r0 = stream;
    0x000110a6 blx 0x3610                                        |     fcn_00003610 ();
                                                                 | label_6:
    0x000110aa ldr r0, [sp, 8]                                   |     r0 = stream;
    0x000110ac blx 0x3530                                        |     ferror (r0);
    0x000110b0 movs r3, 0                                        |     r3 = 0;
    0x000110b2 ldr r0, [sp, 4]                                   |     r0 = var_4h;
    0x000110b4 str r3, [sp, 8]                                   |     stream = r3;
    0x000110b6 bl 0x1060c                                        |     fcn_0001060c (r0);
    0x000110ba cmp r5, 0                                         |     
                                                                 |     if (r5 >= 0) {
    0x000110bc bge.w 0x10fb8                                     |         goto label_0;
                                                                 |     }
    0x000110c0 b 0x11064                                         |     goto label_4;
                                                                 | label_8:
    0x000110c2 ldr r1, [pc, 0xa0]                                |     
    0x000110c4 movs r2, 0xf2                                     |     r2 = 0xf2;
    0x000110c6 ldr r3, [pc, 0xa0]                                |     
    0x000110c8 ldr r0, [pc, 0xa0]                                |     
    0x000110ca add r1, pc                                        |     r1 = 0x22234;
    0x000110cc add r3, pc                                        |     r3 = 0x2223a;
    0x000110ce adds r1, 7                                        |     r1 += 7;
    0x000110d0 add r0, pc                                        |     r0 = 0x22240;
    0x000110d2 bl 0x16594                                        |     fcn_00016594 (r0, r1, r2, r3, r4);
                                                                 | label_9:
    0x000110d6 ldr r1, [pc, 0x98]                                |     
    0x000110d8 movs r2, 0xf3                                     |     r2 = 0xf3;
    0x000110da ldr r3, [pc, 0x98]                                |     
    0x000110dc ldr r0, [pc, 0x98]                                |     
    0x000110de add r1, pc                                        |     r1 = 0x22254;
    0x000110e0 add r3, pc                                        |     r3 = 0x2225a;
    0x000110e2 adds r1, 7                                        |     r1 += 7;
    0x000110e4 add r0, pc                                        |     r0 = 0x22260;
    0x000110e6 bl 0x16594                                        |     fcn_00016594 (r0, r1, r2, r3, r4);
                                                                 | label_10:
    0x000110ea ldr r1, [pc, 0x90]                                |     
    0x000110ec movs r2, 0xf6                                     |     r2 = 0xf6;
    0x000110ee ldr r3, [pc, 0x90]                                |     
    0x000110f0 ldr r0, [pc, 0x90]                                |     
    0x000110f2 add r1, pc                                        |     r1 = 0x22274;
    0x000110f4 add r3, pc                                        |     r3 = 0x2227a;
    0x000110f6 adds r1, 7                                        |     r1 += 7;
    0x000110f8 add r0, pc                                        |     r0 = 0x22280;
    0x000110fa bl 0x16594                                        |     fcn_00016594 (r0, r1, r2, r3, r4);
                                                                 | label_21:
    0x000110fe ldr r0, [sp]                                      |     r0 = *(sp);
    0x00011100 mov r3, r8                                        |     r3 = r8;
    0x00011102 mov r1, r8                                        |     r1 = r8;
    0x00011104 movs r2, 2                                        |     r2 = 2;
    0x00011106 blx 0x3888                                        |     fcn_00003888 ();
    0x0001110a b 0x11034                                         |     goto label_5;
                                                                 | label_12:
    0x0001110c ldr r1, [pc, 0x78]                                |     
    0x0001110e movs r2, 0xff                                     |     r2 = 0xff;
    0x00011110 ldr r3, [pc, 0x78]                                |     
    0x00011112 ldr r0, [pc, 0x7c]                                |     
    0x00011114 add r1, pc                                        |     r1 = 0x222a0;
    0x00011116 add r3, pc                                        |     r3 = 0x222a6;
    0x00011118 adds r1, 7                                        |     r1 += 7;
    0x0001111a add r0, pc                                        |     r0 = 0x222b0;
    0x0001111c bl 0x16594                                        |     fcn_00016594 (r0, r1, r2, r3, r4);
                                                                 | label_18:
    0x00011120 ldr r1, [pc, 0x70]                                |     
    0x00011122 movw r2, 0x107                                    |     r2 = 0x107;
    0x00011126 ldr r3, [pc, 0x70]                                |     
    0x00011128 ldr r0, [pc, 0x70]                                |     
    0x0001112a add r1, pc                                        |     r1 = 0x222c2;
    0x0001112c add r3, pc                                        |     r3 = 0x222ca;
    0x0001112e adds r1, 7                                        |     r1 += 7;
    0x00011130 add r0, pc                                        |     r0 = 0x222d0;
    0x00011132 bl 0x16594                                        |     fcn_00016594 (r0, r1, r2, r3, r4);
                                                                 | label_20:
    0x00011136 mov r0, sb                                        |     r0 = sb;
    0x00011138 bl 0x10570                                        |     fcn_00010570 (r0);
    0x0001113a invalid                                           |     
                                                                 | label_16:
    0x0001113e ldr r0, [sp, 4]                                   |     r0 = var_4h;
    0x00011140 blx 0x38d4                                        |     fcn_000038d4 ();
    0x00011144 bl 0x12bfc                                        |     r0 = fcn_00012bfc (r0);
    0x00011148 and.w r5, r0, r0, asr 31                          |     r5 = r0 & (r0 >> 31);
    0x0001114c b 0x110aa                                         |     goto label_6;
                                                                 | label_17:
    0x0001114e blx 0x35d0                                        |     fcn_000035d0 ();
    0x00011152 nop                                               |     
    0x00011154 lsrs r6, r0, 0x19                                 |     r6 = r0 >> 0x19;
    0x00011156 movs r2, r0                                       |     r2 = r0;
    0x00011158 lsls r4, r5, 9                                    |     r4 = r5 << 9;
    0x0001115a movs r0, r0                                       |     
    0x0001115c lsrs r2, r2, 0x16                                 |     r2 >>= 0x16;
    0x0001115e movs r2, r0                                       |     r2 = r0;
    0x00011160 b 0x1188c                                         |     goto label_22;
                                                                 |     do {
    0x00011644 mov r0, r4                                        |         r0 = r4;
    0x00011646 blx 0x3530                                        |         ferror (r0);
    0x0001164a ldr r2, [pc, 0x240]                               |         
    0x0001164c ldr r3, [pc, 0x238]                               |         r3 = *(0x11888);
    0x0001164e add r2, pc                                        |         r2 = 0x22ee0;
    0x00011650 ldr r3, [r2, r3]                                  |         r3 = *(0x22ee0);
    0x00011652 ldr r2, [r3]                                      |         r2 = *(0x22ee0);
    0x00011654 ldr r3, [sp, 0x8c]                                |         r3 = *(arg_8ch);
    0x00011656 eors r2, r3                                       |         r2 ^= r3;
    0x00011658 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0001165c bne.w 0x1187e                                     |             goto label_23;
                                                                 |         }
    0x00011660 mov r0, r8                                        |         r0 = r8;
    0x00011662 add sp, 0x94                                      |         
    0x00011664 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_7:
    0x00011850 mvn r8, 0x21                                      |         r8 = ~0x21;
    0x00011854 b 0x11644                                         |         
                                                                 |     } while (1);
                                                                 | label_23:
    0x0001187e blx 0x35d0                                        |     fcn_000035d0 ();
    0x00011882 nop                                               |     
    0x00011884 lsrs r2, r5, 1                                    |     r2 = r5 >> 1;
    0x00011886 movs r2, r0                                       |     r2 = r0;
    0x00011888 lsls r4, r5, 9                                    |     r4 = r5 << 9;
    0x0001188a movs r0, r0                                       |     
                                                                 | label_22:
    0x0001188c lsls r6, r0, 0x1c                                 |     r6 = r0 << 0x1c;
    0x0001188e movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 <= r0) {
    0x00011890 ble 0x118b0                                       |         goto label_24;
                                                                 |     }
    0x00011892 movs r0, r0                                       |     
    0x00011894 svc 0x58                                          |     __asm ("svc 0x58");
    0x00011896 movs r0, r0                                       |     
    0x00011898 udf 0xec                                          |     __asm ("udf 0xec");
                                                                 |     if (r0 > r0) {
                                                                 | label_24:
    0x000118b0 bgt 0x1192c                                       |         void (*0x1192c)() ();
                                                                 |     }
    0x000118b2 movs r0, r0                                       |     
                                                                 |     if (r0 > r0) {
    0x000118b4 bgt 0x11850                                       |         goto label_7;
                                                                 |     }
    0x000118b6 movs r0, r0                                       |     
    0x000118b8 svc 0x16                                          |     __asm ("svc 0x16");
    0x000118ba movs r0, r0                                       |     
    0x000118bc udf 0x56                                          |     __asm ("udf 0x56");
                                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libudev.so.1.7.2 @ 0x122b8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000122b8 ()                      | void fcn_000122b8 (int16_t arg2, int16_t arg3, int16_t arg4) {
                                                 |     int16_t var_0h;
                                                 |     r1 = arg2;
                                                 |     r2 = arg3;
                                                 |     r3 = arg4;
    0x000122b8 push {r4, r5, r6, r7, lr}         |     
    0x000122ba sub sp, 0xc                       |     
                                                 |     if (r0 != 0) {
    0x000122bc cbz r0, 0x122fe                   |         
    0x000122be mov r6, r1                        |         r6 = r1;
    0x000122c0 mov.w r1, 0x288000                |         r1 = 0x288000;
    0x000122c4 mov r7, r2                        |         r7 = r2;
    0x000122c6 mov r5, r3                        |         r5 = r3;
    0x000122c8 blx 0x36ec                        |         r0 = asprintf_chk ()
    0x000122cc subs r4, r0, 0                    |         r4 = r0 - 0;
                                                 |         if (r4 >= r0) {
    0x000122ce blt 0x122ea                       |             
    0x000122d0 mov r3, r7                        |             r3 = r7;
    0x000122d2 mov r2, r6                        |             r2 = r6;
    0x000122d4 movs r1, 0                        |             r1 = 0;
    0x000122d6 str r5, [sp]                      |             *(sp) = r5;
    0x000122d8 bl 0x1204c                        |             fcn_0001204c (r0, r1, r2, r3, r4);
    0x000122da cdp2 p6, 0xb, c4, c8, c5, 0       |             __asm ("cdp2 p6, 0xb, c4, c8, c5, 0");
    0x000122de mov r0, r4                        |             r0 = r4;
    0x000122e0 bl 0x10570                        |             fcn_00010570 (r0);
                                                 | label_0:
    0x000122e4 mov r0, r5                        |             r0 = r5;
    0x000122e6 add sp, 0xc                       |             
    0x000122e8 pop {r4, r5, r6, r7, pc}          |             
                                                 |         }
    0x000122ea blx 0x3828                        |         r0 = fcn_00003828 ();
    0x000122ee ldr r5, [r0]                      |         r5 = *(r0);
    0x000122f0 mov r0, r4                        |         r0 = r4;
    0x000122f2 bl 0x10570                        |         fcn_00010570 (r0);
    0x000122f6 rsbs r5, r5, 0                    |         r5 -= ;
    0x000122f8 mov r0, r5                        |         r0 = r5;
    0x000122fa add sp, 0xc                       |         
    0x000122fc pop {r4, r5, r6, r7, pc}          |         
                                                 |     }
    0x000122fe ldr r1, [pc, 0x14]                |     
    0x00012300 movs r2, 0xdb                     |     r2 = 0xdb;
    0x00012302 ldr r3, [pc, 0x14]                |     
    0x00012304 ldr r0, [pc, 0x14]                |     
    0x00012306 add r1, pc                        |     r1 = 0x24620;
    0x00012308 add r3, pc                        |     r3 = 0x24626;
    0x0001230a adds r1, 7                        |     r1 += 7;
    0x0001230c add r0, pc                        |     r0 = 0x2462c;
    0x0001230e bl 0x16594                        |     fcn_00016594 (r0, r1, r2, r3, r4);
    0x00012312 nop                               |     
                                                 |     if (r1 < 7) {
    0x00012314 bmi 0x12344                       |         void (*0x12344)() ();
                                                 |     }
    0x00012316 movs r0, r0                       |     
                                                 |     if (r0 >= r0) {
    0x00012318 bpl 0x122e4                       |         goto label_0;
                                                 |     }
    0x0001231a movs r0, r0                       |     
    0x0001231c invalid                           |     
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libudev.so.1.7.2 @ 0x12340 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.00012340 ()                                      | void fcn_00012340 (uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int8_t var_1h;
                                                                 |     char * src;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int32_t var_4h_2;
                                                                 |     int32_t var_8h_2;
                                                                 |     int32_t var_ch_2;
                                                                 |     int32_t var_10h_2;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_1ch;
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_24h;
                                                                 |     int32_t var_28h;
                                                                 |     int32_t var_2ch;
                                                                 |     int32_t var_30h;
                                                                 |     int32_t var_34h;
                                                                 |     FILE * var_38h;
                                                                 |     FILE * var_38h_2;
                                                                 |     FILE * stream;
                                                                 |     int32_t var_44h;
                                                                 |     int16_t var_48h;
                                                                 |     FILE * var_4ch;
                                                                 |     int16_t var_50h;
                                                                 |     int16_t var_b8h;
                                                                 |     int32_t var_c8h;
                                                                 |     int32_t var_124h;
                                                                 |     int16_t var_12ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00012340 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00012344 sub sp, 0x13c                                     |     
    0x00012346 add r7, sp, 0x10                                  |     r7 += var_10h;
    0x00012348 movs r4, 0                                        |     r4 = 0;
    0x0001234a ldr.w r5, [r7, 0x150]                             |     r5 = *((r7 + 0x150));
    0x0001234e str r3, [r7, 0x30]                                |     var_30h = r3;
    0x00012350 ldr.w r3, [pc, 0x7b4]                             |     r3 = *(0x12b08);
    0x00012354 str r5, [r7, 0x34]                                |     var_34h = r5;
    0x00012356 mov r5, r2                                        |     r5 = r2;
    0x00012358 ldr.w r2, [pc, 0x7b0]                             |     
    0x0001235a movs r7, 0xb0                                     |     r7 = 0xb0;
    0x0001235c add r2, pc                                        |     r2 = 0x24e6c;
    0x0001235e ldr r3, [r2, r3]                                  |     
    0x00012360 ldr r3, [r3]                                      |     r3 = *(0x24e6c);
    0x00012362 str.w r3, [r7, 0x124]                             |     __asm ("str.w r3, [var_124h]");
    0x00012366 mov.w r3, 0                                       |     r3 = 0;
    0x0001236a strd r4, r4, [r7, 0x38]                           |     __asm ("strd r4, r4, [var_38h]");
    0x0001236e str r4, [r7, 0x40]                                |     stream = r4;
    0x00012370 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00012372 beq.w 0x128be                                     |         goto label_26;
                                                                 |     }
    0x00012376 ands r3, r5, 2                                    |     r3 = r5 & 2;
    0x0001237a mov r6, r1                                        |     r6 = r1;
    0x0001237c mov r4, r0                                        |     r4 = r0;
    0x0001237e str r3, [r7, 0x1c]                                |     var_1ch = r3;
                                                                 |     if (r3 != r5) {
    0x00012380 bne 0x123de                                       |         goto label_27;
                                                                 |     }
    0x00012382 ands r3, r5, 0x20                                 |     r3 = r5 & 0x20;
    0x00012386 str r3, [r7, 0x2c]                                |     var_2ch = r3;
                                                                 |     if (r3 != r5) {
    0x00012388 beq 0x1238e                                       |         
    0x0001238a ldr r3, [r7, 0x34]                                |         r3 = var_34h;
                                                                 |         if (r3 != 0) {
    0x0001238c cbnz r3, 0x12392                                  |             goto label_0;
                                                                 |         }
                                                                 |     }
    0x0001238e ldrb r3, [r4]                                     |     r3 = *(r4);
                                                                 |     if (r3 != 0) {
    0x00012390 cbnz r3, 0x123f0                                  |         goto label_28;
                                                                 |     }
                                                                 |     do {
                                                                 | label_0:
    0x00012392 mov.w r6, -1                                      |         r6 = -1;
    0x00012396 mvn r1, 0x15                                      |         r1 = ~0x15;
                                                                 | label_3:
    0x0001239a mov r0, r6                                        |         r0 = r6;
    0x0001239c str r1, [r7, 0x34]                                |         var_34h = r1;
    0x0001239e bl 0x10570                                        |         fcn_00010570 (r0);
    0x000123a2 ldr r0, [r7, 0x40]                                |         r0 = stream;
    0x000123a4 blx 0x3530                                        |         ferror (r0);
    0x000123a8 ldr r0, [r7, 0x3c]                                |         r0 = var_38h_2;
    0x000123aa blx 0x3530                                        |         ferror (r0);
    0x000123ae ldr r0, [r7, 0x38]                                |         r0 = var_38h;
    0x000123b0 blx 0x3530                                        |         ferror (r0);
    0x000123b4 ldr.w r2, [pc, 0x758]                             |         
    0x000123b8 ldr.w r3, [pc, 0x74c]                             |         r3 = *(0x12b08);
    0x000123bc ldr r1, [r7, 0x34]                                |         r1 = var_34h;
    0x000123be add r2, pc                                        |         r2 = 0x24ed2;
    0x000123c0 ldr r3, [r2, r3]                                  |         r3 = *(0x24ed2);
    0x000123c2 ldr r2, [r3]                                      |         r2 = *(0x24ed2);
    0x000123c4 ldr.w r3, [r7, 0x124]                             |         r3 = var_124h;
    0x000123c8 eors r2, r3                                       |         r2 ^= r3;
    0x000123ca mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000123ce bne.w 0x12aea                                     |             goto label_29;
                                                                 |         }
    0x000123d2 mov r0, r1                                        |         r0 = r1;
    0x000123d4 add.w r7, r7, 0x12c                               |         r7 += var_12ch;
    0x000123d8 mov sp, r7                                        |         
    0x000123da pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_27:
    0x000123de ldr r3, [r7, 0x34]                                |         r3 = var_34h;
    0x000123e0 cmp r3, 0                                         |         
    0x000123e2 bne 0x12392                                       |         
                                                                 |     } while (r3 != 0);
    0x000123e4 and r3, r5, 0x20                                  |     r3 = r5 & 0x20;
    0x000123e8 str r3, [r7, 0x2c]                                |     var_2ch = r3;
    0x000123ea ldrb r3, [r4]                                     |     r3 = *(r4);
    0x000123ec cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000123ee beq 0x12392                                       |         goto label_0;
                                                                 |     }
                                                                 | label_28:
    0x000123f0 mov r0, r6                                        |     r0 = r6;
    0x000123f2 bl 0x18b40                                        |     r0 = fcn_00018b40 (r0);
    0x000123f6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000123f8 beq.w 0x125aa                                     |         goto label_30;
                                                                 |     }
    0x000123fc ldr r3, [r7, 0x30]                                |     r3 = var_30h;
                                                                 |     if (r3 == 0) {
    0x000123fe cbnz r3, 0x12418                                  |         
                                                                 | label_1:
    0x00012400 ldr r3, [r7, 0x34]                                |         r3 = var_34h;
    0x00012402 and r2, r5, 0x2e                                  |         r2 = r5 & 0x2e;
    0x00012406 subs r3, 0                                        |         
    0x00012408 it ne                                             |         
                                                                 |         if (r3 == 0) {
    0x0001240a movne r3, 1                                       |             r3 = 1;
                                                                 |         }
    0x0001240c cmp r2, 0                                         |         
    0x0001240e it ne                                             |         
                                                                 |         if (r2 == 0) {
    0x00012410 movne r3, 0                                       |             r3 = 0;
                                                                 |         }
    0x00012412 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00012414 bne.w 0x12808                                     |             goto label_31;
                                                                 |         }
                                                                 |     }
                                                                 | label_2:
    0x00012418 add.w r1, r7, 0x38                                |     r1 += var_38h;
    0x0001241c mov r0, r4                                        |     r0 = r4;
    0x0001241e bl 0x1827c                                        |     r0 = fcn_0001827c (r0, r1, r2, r3);
    0x00012422 subs r1, r0, 0                                    |     r1 = r0 - 0;
                                                                 |     if (r1 < r0) {
    0x00012424 blt.w 0x1265c                                     |         goto label_32;
                                                                 |     }
    0x00012428 ldr r0, [r7, 0x40]                                |     r0 = stream;
    0x0001242a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001242c beq.w 0x128b8                                     |         goto label_33;
                                                                 |     }
                                                                 | label_10:
    0x00012430 mov.w r1, 0x284000                                |     r1 = 0x284000;
    0x00012434 blx 0x36ec                                        |     r0 = asprintf_chk ()
    0x00012438 subs r6, r0, 0                                    |     r6 = r0 - 0;
                                                                 |     if (r6 < r0) {
    0x0001243a blt.w 0x12670                                     |         goto label_34;
                                                                 |     }
    0x0001243e ands r3, r5, 8                                    |     r3 = r5 & 8;
    0x00012442 str r3, [r7, 0x18]                                |     var_18h = r3;
                                                                 |     if (r3 != r5) {
    0x00012444 bne.w 0x12662                                     |         goto label_35;
                                                                 |     }
                                                                 | label_4:
    0x00012448 ands r3, r5, 0x10                                 |     r3 = r5 & 0x10;
    0x0001244c ldr.w sb, [r7, 0x38]                              |     sb = var_38h;
    0x00012450 it eq                                             |     
                                                                 |     if (r3 != r5) {
    0x00012452 streq r3, [r7, 0xc]                               |         var_ch_2 = r3;
                                                                 |     }
                                                                 |     if (r3 != r5) {
    0x00012454 beq 0x1246c                                       |         
    0x00012456 ldr.w r1, [pc, 0x6bc]                             |         
    0x0001245a mov r0, sb                                        |         r0 = sb;
    0x0001245c add r1, pc                                        |         r1 = 0x24f76;
    0x0001245e bl 0x1af54                                        |         r0 = fcn_0001af54 (r0, r1);
    0x00012462 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00012464 beq.w 0x1293e                                     |             goto label_36;
                                                                 |         }
    0x00012468 movs r3, 1                                        |         r3 = 1;
    0x0001246a str r3, [r7, 0xc]                                 |         var_ch_2 = r3;
                                                                 |     }
                                                                 | label_14:
    0x0001246c ldr.w r8, [r7, 0x40]                              |     r8 = stream;
    0x00012470 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00012474 beq.w 0x128e2                                     |         goto label_37;
                                                                 |     }
    0x00012478 mov r0, sb                                        |     r0 = sb;
    0x0001247a movs r2, 1                                        |     r2 = 1;
    0x0001247c mov r1, r8                                        |     r1 = r8;
    0x0001247e bl 0x18554                                        |     fcn_00018554 (r0, r1, r2, r3, r4);
    0x00012482 str r0, [r7, 0x44]                                |     var_44h = r0;
    0x00012484 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00012486 beq.w 0x1267a                                     |         goto label_38;
                                                                 |     }
    0x0001248a mov r0, r8                                        |     r0 = r8;
    0x0001248c blx 0x35c4                                        |     fcn_000035c4 ();
                                                                 | label_11:
    0x00012490 ldr.w r3, [pc, 0x684]                             |     
    0x00012494 str r0, [r7, 0x3c]                                |     var_38h_2 = r0;
    0x00012496 add r3, pc                                        |     r3 = 0x24fb2;
    0x00012498 str r3, [r7, 0x20]                                |     var_20h = r3;
    0x0001249a ldr.w r3, [pc, 0x680]                             |     
    0x0001249e add r3, pc                                        |     r3 = 0x24fc0;
    0x000124a0 str r3, [r7, 4]                                   |     var_4h_2 = r3;
    0x000124a2 ldr.w r3, [pc, 0x67c]                             |     
    0x000124a4 adds r6, 0x7c                                     |     r6 += 0x7c;
    0x000124a6 add r3, pc                                        |     r3 = 0x24fcc;
    0x000124a8 str r3, [r7, 8]                                   |     var_8h_2 = r3;
    0x000124aa movs r3, 0x20                                     |     r3 = 0x20;
    0x000124ac str r3, [r7, 0x14]                                |     var_14h = r3;
    0x000124ae add.w r3, r7, 0x48                                |     r3 += var_48h;
    0x000124b2 str r3, [r7, 0x24]                                |     var_24h = r3;
    0x000124b4 add.w r3, r7, 0x44                                |     r3 += var_44h;
    0x000124b8 str r3, [r7, 0x28]                                |     var_28h = r3;
                                                                 |     do {
                                                                 | label_6:
    0x000124ba movs r1, 1                                        |         r1 = 1;
    0x000124bc ldr r2, [r7, 0x24]                                |         r2 = var_24h;
    0x000124be ldr r0, [r7, 0x28]                                |         r0 = var_28h;
    0x000124c0 bl 0x183bc                                        |         r0 = fcn_000183bc (r0, r1, r2);
    0x000124c4 subs r1, r0, 0                                    |         r1 = r0 - 0;
                                                                 |         if (r1 < r0) {
    0x000124c6 blt.w 0x12974                                     |             goto label_39;
                                                                 |         }
                                                                 |         if (r1 == r0) {
    0x000124ca beq.w 0x1297e                                     |             goto label_40;
                                                                 |         }
    0x000124ce ldr r0, [r7, 0x48]                                |         r0 = var_48h;
    0x000124d0 blx 0x3548                                        |         r0 = openat64_2 ();
    0x000124d4 mov r8, r0                                        |         r8 = r0;
    0x000124d6 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000124d8 beq.w 0x12a76                                     |             goto label_41;
                                                                 |         }
    0x000124dc ldr r1, [r7, 0x20]                                |         r1 = var_20h;
    0x000124de bl 0x18674                                        |         r0 = fcn_00018674 (r0, r1, r2, r3);
    0x000124e2 mov sb, r0                                        |         sb = r0;
    0x000124e4 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000124e6 bne.w 0x126ca                                     |             goto label_42;
                                                                 |         }
    0x000124ea ldr r0, [r7, 0x3c]                                |         r0 = var_38h_2;
    0x000124ec bl 0x18b40                                        |         r0 = fcn_00018b40 (r0);
    0x000124f0 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000124f2 bne 0x1258a                                       |             
    0x000124f4 ldr r0, [r7, 0x3c]                                |             r0 = var_38h_2;
    0x000124f6 bl 0x1834c                                        |             r0 = fcn_0001834c ();
    0x000124fa mov sb, r0                                        |             sb = r0;
    0x000124fc cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x000124fe beq.w 0x12ab2                                     |                 goto label_43;
                                                                 |             }
    0x00012502 ldrd sl, fp, [r7, 0x3c]                           |             __asm ("ldrd sl, fp, [var_38h_2]");
    0x00012506 cmp.w fp, 0                                       |             
                                                                 |             if (fp != 0) {
    0x0001250a beq 0x12524                                       |                 
    0x0001250c movs r2, 1                                        |                 r2 = 1;
    0x0001250e mov r1, fp                                        |                 r1 = fp;
    0x00012510 mov r0, sl                                        |                 r0 = sl;
    0x00012512 bl 0x18554                                        |                 r0 = fcn_00018554 (r0, r1, r2, r3, r4);
                                                                 |                 if (r0 == 0) {
    0x00012516 cbz r0, 0x12524                                   |                     goto label_44;
                                                                 |                 }
    0x00012518 mov r1, fp                                        |                 r1 = fp;
    0x0001251a movs r2, 1                                        |                 r2 = 1;
    0x0001251c mov r0, sb                                        |                 r0 = sb;
    0x0001251e bl 0x18554                                        |                 r0 = fcn_00018554 (r0, r1, r2, r3, r4);
                                                                 |                 if (r0 == 0) {
    0x00012522 cbz r0, 0x1258a                                   |                     goto label_45;
                                                                 |                 }
                                                                 |             }
                                                                 | label_44:
    0x00012524 mov r0, sl                                        |             r0 = sl;
    0x00012526 blx 0x3530                                        |             ferror (r0);
    0x00012528 invalid                                           |             
    0x0001252c str.w sb, [r7, 0x3c]                              |             __asm ("str.w sb, [var_38h_2]");
    0x00012530 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x00012532 bne.w 0x12abc                                     |                 goto label_46;
                                                                 |             }
    0x00012536 ldr.w r1, [pc, 0x5ec]                             |             
    0x0001253a mov.w r2, 0x288000                                |             r2 = 0x288000;
    0x0001253e mov r0, r6                                        |             r0 = r6;
    0x00012540 add r1, pc                                        |             r1 = 0x2506a;
    0x00012542 blx 0x37ec                                        |             r0 = fcn_000037ec ();
    0x00012546 subs.w sb, r0, 0                                  |             sb = r0 - 0;
                                                                 |             if (sb < r0) {
    0x0001254a blt.w 0x12a58                                     |                 goto label_47;
                                                                 |             }
    0x0001254e ldr r3, [r7, 0x18]                                |             r3 = var_18h;
                                                                 |             if (r3 != 0) {
    0x00012550 cbz r3, 0x1257e                                   |                 
    0x00012552 add.w sl, r7, 0xb8                                |                 sl += var_b8h;
    0x00012556 mov r1, sl                                        |                 r1 = sl;
    0x00012558 blx 0x3a30                                        |                 r0 = fcn_00003a30 ();
    0x0001255c cmp r0, 0                                         |                 
                                                                 |                 if (r0 < 0) {
    0x0001255e blt.w 0x12a58                                     |                     goto label_47;
                                                                 |                 }
    0x00012562 add.w fp, r7, 0x50                                |                 
    0x00012566 mov r1, sl                                        |                 r1 = sl;
    0x00012568 mov r0, fp                                        |                 r0 = fp;
    0x0001256a bl 0x12330                                        |                 r0 = fcn_00012330 (r0, r1);
    0x0001256e cmp r0, 0                                         |                 
                                                                 |                 if (r0 != 0) {
    0x00012570 bne.w 0x12952                                     |                     goto label_48;
                                                                 |                 }
    0x00012572 strh r7, [r5, 0xe]                                |                 *((r5 + 0xe)) = r7;
    0x00012574 mov r1, sl                                        |                 r1 = sl;
    0x00012576 mov r0, fp                                        |                 r0 = fp;
    0x00012578 movs r2, 0x68                                     |                 r2 = 0x68;
    0x0001257a blx 0x3578                                        |                 mmap64 ();
                                                                 |             }
    0x0001257e mov r0, r6                                        |             r0 = r6;
    0x00012580 mov r6, sb                                        |             r6 = sb;
    0x00012582 mov.w sb, 0                                       |             sb = 0;
    0x00012584 lsrs r0, r0, 4                                    |             r0 >>= 4;
    0x00012586 bl 0x10570                                        |             fcn_00010570 (r0);
                                                                 |         }
                                                                 | label_45:
    0x0001258a mov.w r0, -1                                      |         r0 = -1;
    0x0001258e bl 0x10570                                        |         fcn_00010570 (r0);
    0x00012592 mov r0, sb                                        |         r0 = sb;
    0x00012594 mov.w sb, -1                                      |         sb = -1;
    0x00012598 blx 0x3530                                        |         ferror (r0);
                                                                 | label_5:
    0x0001259c mov r0, sb                                        |         r0 = sb;
    0x0001259e bl 0x10570                                        |         fcn_00010570 (r0);
    0x000125a2 mov r0, r8                                        |         r0 = r8;
    0x000125a4 blx 0x3530                                        |         ferror (r0);
    0x000125a8 b 0x124ba                                         |         
                                                                 |     } while (1);
                                                                 | label_30:
    0x000125aa ldr r3, [r7, 0x30]                                |     r3 = var_30h;
    0x000125ac orrs r3, r6                                       |     r3 |= r6;
                                                                 |     if (r3 == r6) {
    0x000125ae beq.w 0x12400                                     |         goto label_1;
                                                                 |     }
    0x000125b2 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x000125b4 beq.w 0x12418                                     |         goto label_2;
                                                                 |     }
    0x000125b8 add.w r1, r7, 0x40                                |     r1 += stream;
    0x000125bc mov r0, r6                                        |     r0 = r6;
    0x000125be bl 0x1827c                                        |     fcn_0001827c (r0, r1, r2, r3);
    0x000125c0 cdp2 p14, 5, c1, c13, c1, 0                       |     __asm ("cdp2 p14, 5, c1, c13, c1, 0");
                                                                 |     if (r6 < 0) {
    0x000125c4 blt 0x1265c                                       |         goto label_32;
                                                                 |     }
    0x000125c6 ldr.w r1, [pc, 0x560]                             |     
    0x000125ca ldr r0, [r7, 0x40]                                |     r0 = stream;
    0x000125cc add r1, pc                                        |     r1 = 0x250fa;
    0x000125ce bl 0x19e5c                                        |     fcn_00019e5c (r0, r1);
    0x000125d2 ldr r0, [r7, 0x40]                                |     r0 = stream;
    0x000125d4 bl 0x1847c                                        |     fcn_0001847c (r0, r1, r2);
    0x000125d6 vabd.u16 q8, q9, q12                              |     __asm ("vabd.u16 q8, q9, q12");
                                                                 |     if (r6 >= 0) {
    0x000125da bpl.w 0x12418                                     |         goto label_2;
                                                                 |     }
    0x000125de ldrb r3, [r4]                                     |     r3 = *(r4);
    0x000125e0 cmp r3, 0x2f                                      |     
                                                                 |     if (r3 != 0x2f) {
    0x000125e2 bne.w 0x12392                                     |         goto label_0;
                                                                 |     }
    0x000125e6 ldr r6, [r7, 0x40]                                |     r6 = stream;
    0x000125e8 mov r3, r4                                        |     r3 = r4;
                                                                 |     do {
    0x000125ea mov r4, r3                                        |         r4 = r3;
    0x000125ec adds r3, 1                                        |         r3++;
    0x000125ee ldrb r2, [r4, 1]                                  |         r2 = *((r4 + 1));
    0x000125f0 cmp r2, 0x2f                                      |         
    0x000125f2 beq 0x125ea                                       |         
                                                                 |     } while (r2 == 0x2f);
    0x000125f4 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x000125f6 beq.w 0x12418                                     |         goto label_2;
                                                                 |     }
    0x000125fa ldrb r3, [r6]                                     |     r3 = *(r6);
    0x000125fc cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000125fe beq.w 0x12418                                     |         goto label_2;
                                                                 |     }
    0x00012602 mov r0, r6                                        |     r0 = r6;
    0x00012604 blx 0x37c8                                        |     r0 = fcn_000037c8 ();
    0x00012608 mov sb, r0                                        |     sb = r0;
    0x0001260a mov r0, r4                                        |     r0 = r4;
    0x0001260c blx 0x37c8                                        |     r0 = fcn_000037c8 ();
    0x00012610 add.w r3, sb, r0                                  |     r3 = sb + r0;
    0x00012614 mov r8, r0                                        |     r8 = r0;
    0x00012616 adds r2, r3, 2                                    |     r2 = r3 + 2;
    0x00012618 cmp.w r2, 0x400000                                |     
                                                                 |     if (r2 > 0x400000) {
    0x0001261c bhi.w 0x12a42                                     |         goto label_49;
                                                                 |     }
    0x00012620 adds r3, 9                                        |     r3 += 9;
    0x00012622 mov r1, r6                                        |     r1 = r6;
    0x00012624 bic r3, r3, 7                                     |     r3 = BIT_MASK (r3, 7);
    0x00012628 sub.w sp, sp, r3                                  |     
    0x0001262c add r6, sp, 0x10                                  |     r6 += var_10h;
    0x0001262e mov r0, r6                                        |     r0 = r6;
    0x00012630 blx 0x35b4                                        |     r0 = strdup (r0);
    0x00012634 cmp r0, r6                                        |     
    0x00012636 mov r3, r0                                        |     r3 = r0;
                                                                 |     if (r0 > r6) {
    0x00012638 bhi 0x12642                                       |         goto label_50;
                                                                 |     }
    0x0001263a b 0x1264e                                         |     goto label_15;
                                                                 |     do {
    0x0001263c cmp r6, r3                                        |         
                                                                 |         if (r6 == r3) {
    0x0001263e beq.w 0x12970                                     |             goto label_51;
                                                                 |         }
                                                                 | label_50:
    0x00012642 ldrb r2, [r3, -0x1]                               |         r2 = *((r3 - 0x1));
    0x00012646 mov r0, r3                                        |         r0 = r3;
    0x00012648 subs r3, 1                                        |         r3--;
    0x0001264a cmp r2, 0x2f                                      |         
    0x0001264c beq 0x1263c                                       |         
                                                                 |     } while (r2 == 0x2f);
                                                                 | label_15:
    0x0001264e mov r1, r4                                        |     r1 = r4;
    0x00012650 add.w r2, r8, 1                                   |     r2 = r8 + 1;
    0x00012654 mov r4, r6                                        |     r4 = r6;
    0x00012656 blx 0x3578                                        |     mmap64 ();
    0x0001265a b 0x12418                                         |     goto label_2;
                                                                 | label_32:
    0x0001265c mov.w r6, -1                                      |     r6 = -1;
    0x00012660 b 0x1239a                                         |     goto label_3;
                                                                 | label_35:
    0x00012662 add.w r1, r7, 0x50                                |     r1 += var_50h;
    0x00012666 blx 0x3a30                                        |     r0 = fcn_00003a30 ();
    0x0001266a cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x0001266c bge.w 0x12448                                     |         goto label_4;
                                                                 |     }
                                                                 | label_34:
    0x00012670 blx 0x3828                                        |     r0 = fcn_00003828 ();
    0x00012674 ldr r1, [r0]                                      |     r1 = *(r0);
    0x00012676 rsbs r1, r1, 0                                    |     r1 -= ;
    0x00012678 b 0x1239a                                         |     goto label_3;
                                                                 | label_38:
    0x0001267a tst.w r5, 0x80                                    |     
    0x0001267e ite ne                                            |     
                                                                 |     if ((r5 & 0x80) == 0) {
    0x00012680 movne r5, 4                                       |         r5 = 4;
                                                                 |     }
                                                                 |     if ((r5 & 0x80) != 0) {
    0x00012682 moveq r5, 7                                       |         r5 = 7;
                                                                 |     }
    0x00012684 bl 0x15ca8                                        |     r0 = fcn_00015ca8 ();
    0x00012688 cmp r0, r5                                        |     
    0x0001268a it lt                                             |     
                                                                 |     if (r0 < r5) {
    0x0001268c mvnlt r1, 0x2b                                    |         r1 = ~0x2b;
                                                                 |         goto label_52;
                                                                 |     }
                                                                 |     if (r0 < r5) {
                                                                 | label_52:
    0x00012690 blt.w 0x1239a                                     |         goto label_3;
                                                                 |     }
    0x00012694 strd r4, r8, [sp, 8]                              |     __asm ("strd r4, r8, [src]");
    0x00012698 movs r1, 0x2c                                     |     r1 = 0x2c;
    0x0001269a ldr.w r2, [pc, 0x490]                             |     
    0x0001269e movt r1, 0x4000                                   |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x000126a2 ldr.w ip, [pc, 0x48c]                             |     
    0x000126a6 mov r0, r5                                        |     r0 = r5;
    0x000126a8 ldr.w r4, [pc, 0x488]                             |     
    0x000126ac movw r3, 0x387                                    |     r3 = 0x387;
    0x000126b0 add r2, pc                                        |     r2 = 0x251e2;
    0x000126b2 add ip, pc                                        |     ip = 0x251e8;
    0x000126b4 adds r2, 7                                        |     r2 += 7;
    0x000126b6 add r4, pc                                        |     r4 = 0x251ee;
    0x000126b8 strd r4, ip, [sp]                                 |     __asm ("strd r4, ip, [sp]");
    0x000126bc bl 0x164ec                                        |     r0 = fcn_000164ec (r0, r1, r2);
    0x000126c0 subs r1, r0, 0                                    |     r1 = r0 - 0;
    0x000126c2 it ge                                             |     
                                                                 |     if (r1 < r0) {
    0x000126c4 mvnge r1, 0x55                                    |         r1 = ~0x55;
                                                                 |     }
    0x000126c8 b 0x1239a                                         |     goto label_3;
                                                                 | label_42:
    0x000126ca mov.w r2, 0x288000                                |     r2 = 0x288000;
    0x000126ce mov r1, r8                                        |     r1 = r8;
    0x000126d0 mov r0, r6                                        |     r0 = r6;
    0x000126d2 blx 0x37ec                                        |     r0 = fcn_000037ec ();
    0x000126d6 subs.w sb, r0, 0                                  |     sb = r0 - 0;
                                                                 |     if (sb < r0) {
    0x000126da blt.w 0x12a18                                     |         goto label_53;
                                                                 |     }
    0x000126de add.w sl, r7, 0xb8                                |     sl += var_b8h;
    0x000126e2 mov r1, sl                                        |     r1 = sl;
    0x000126e4 blx 0x3a30                                        |     r0 = fcn_00003a30 ();
    0x000126e8 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x000126ea blt.w 0x12a38                                     |         goto label_54;
                                                                 |     }
    0x000126ee ldr r3, [r7, 0x18]                                |     r3 = var_18h;
    0x000126f0 add.w fp, r7, 0x50                                |     
    0x000126f4 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000126f6 bne.w 0x12828                                     |         goto label_55;
                                                                 |     }
                                                                 | label_7:
    0x000126fa mov r1, sl                                        |     r1 = sl;
    0x000126fc movs r2, 0x68                                     |     r2 = 0x68;
    0x000126fe mov r0, fp                                        |     r0 = fp;
    0x00012700 blx 0x3578                                        |     mmap64 ();
    0x00012702 invalid                                           |     
                                                                 |     if (r2 < 0x68) {
    0x00012706 bmi.w 0x12846                                     |         goto label_56;
                                                                 |     }
                                                                 | label_9:
    0x0001270a ldr.w r3, [r7, 0xc8]                              |     r3 = var_c8h;
    0x0001270e and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x00012712 cmp.w r3, 0xa000                                  |     
                                                                 |     if (r3 != 0xa000) {
    0x00012716 bne 0x127be                                       |         goto label_57;
                                                                 |     }
    0x00012718 lsls r3, r5, 0x19                                 |     r3 = r5 << 0x19;
                                                                 |     if (r3 < r5) {
    0x0001271a bpl 0x12728                                       |         
    0x0001271c ldr r3, [r7, 0x44]                                |         r3 = var_44h;
    0x0001271e cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00012720 beq 0x127be                                       |             goto label_57;
                                                                 |         }
    0x00012722 ldrb r3, [r3]                                     |         r3 = *(r3);
    0x00012724 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00012726 beq 0x127be                                       |             goto label_57;
                                                                 |         }
                                                                 |     }
    0x00012728 movs r3, 0                                        |     r3 = 0;
    0x0001272a str r3, [r7, 0x4c]                                |     var_4ch = r3;
    0x0001272c ldr r3, [r7, 0x14]                                |     r3 = var_14h;
    0x0001272e subs r3, 1                                        |     r3--;
    0x00012730 str r3, [r7, 0x14]                                |     var_14h = r3;
                                                                 |     if (r3 == 1) {
    0x00012732 beq.w 0x12ac8                                     |         goto label_58;
                                                                 |     }
    0x00012736 add.w r3, r7, 0x4c                                |     r3 += var_4ch;
    0x0001273a mov r1, r8                                        |     r1 = r8;
    0x0001273c mov r2, r3                                        |     r2 = r3;
    0x0001273e mov r0, r6                                        |     r0 = r6;
    0x00012740 str r3, [r7, 0x10]                                |     var_10h_2 = r3;
    0x00012742 bl 0x11e4c                                        |     r0 = fcn_00011e4c (r0);
    0x00012746 subs r1, r0, 0                                    |     r1 = r0 - 0;
    0x00012748 ldr r3, [r7, 0x10]                                |     r3 = var_10h_2;
    0x0001274a ldr r0, [r7, 0x4c]                                |     r0 = var_4ch;
                                                                 |     if (r1 < r0) {
    0x0001274c blt 0x127ee                                       |         goto label_13;
                                                                 |     }
    0x0001274e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00012750 beq 0x127ea                                       |         goto label_59;
                                                                 |     }
    0x00012752 ldrb r2, [r0]                                     |     r2 = *(r0);
    0x00012754 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00012756 beq 0x127ea                                       |         goto label_59;
                                                                 |     }
    0x00012758 cmp r2, 0x2f                                      |     
                                                                 |     if (r2 == 0x2f) {
    0x0001275a beq.w 0x128f0                                     |         goto label_60;
                                                                 |     }
                                                                 | label_12:
    0x0001275e ldr r1, [r7, 0x44]                                |     r1 = var_44h;
    0x00012760 mov r0, r3                                        |     r0 = r3;
    0x00012762 mov.w r2, -1                                      |     r2 = -1;
    0x00012766 bl 0x1812c                                        |     r0 = fcn_0001812c (r0, r1);
    0x0001276a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001276c beq.w 0x12ad0                                     |         goto label_61;
                                                                 |     }
    0x00012770 ldr r0, [r7, 0x38]                                |     r0 = var_38h;
    0x00012772 blx 0x3530                                        |     ferror (r0);
    0x00012776 ldr r3, [r7, 0x4c]                                |     r3 = var_4ch;
    0x00012778 str r3, [r7, 0x38]                                |     var_38h = r3;
    0x0001277a str r3, [r7, 0x44]                                |     var_44h = r3;
    0x0001277c ldr r3, [r7, 0x2c]                                |     r3 = var_2ch;
    0x0001277e cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00012780 beq.w 0x1259c                                     |         goto label_5;
                                                                 |     }
    0x00012784 mov r0, sb                                        |     r0 = sb;
    0x00012786 bl 0x10570                                        |     fcn_00010570 (r0);
    0x0001278a mov r0, r8                                        |     r0 = r8;
    0x0001278c blx 0x3530                                        |     ferror (r0);
    0x00012790 ldr r3, [r7, 0x30]                                |     r3 = var_30h;
    0x00012792 mov r1, r3                                        |     r1 = r3;
    0x00012794 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00012796 beq.w 0x1239a                                     |         goto label_3;
                                                                 |     }
    0x0001279a movs r1, 1                                        |     r1 = 1;
    0x0001279c ldr r0, [r7, 0x28]                                |     r0 = var_28h;
    0x0001279e add.w r2, r7, 0xb8                                |     r2 += var_b8h;
    0x000127a2 bl 0x183bc                                        |     r0 = fcn_000183bc (r0, r1, r2);
    0x000127a6 subs r1, r0, 0                                    |     r1 = r0 - 0;
                                                                 |     if (r1 < r0) {
    0x000127a8 blt.w 0x1239a                                     |         goto label_3;
                                                                 |     }
    0x000127ac ldr r0, [r7, 0x3c]                                |     r0 = var_38h_2;
    0x000127ae it eq                                             |     
                                                                 |     if (r1 != r0) {
    0x000127b0 streq r1, [r7, 0x3c]                              |         var_38h_2 = r1;
                                                                 |     }
                                                                 |     if (r1 != r0) {
    0x000127b2 bne.w 0x129fc                                     |         goto label_62;
                                                                 |     }
                                                                 | label_19:
    0x000127b6 ldr r3, [r7, 0x30]                                |     r3 = var_30h;
    0x000127b8 movs r1, 0                                        |     r1 = 0;
    0x000127ba str r0, [r3]                                      |     *(r3) = r0;
    0x000127bc b 0x1239a                                         |     goto label_3;
                                                                 | label_57:
    0x000127be mov.w r2, -1                                      |     r2 = -1;
    0x000127c2 mov r1, r8                                        |     r1 = r8;
    0x000127c4 add.w r0, r7, 0x3c                                |     r0 += var_38h_2;
    0x000127c8 bl 0x1812c                                        |     r0 = fcn_0001812c (r0, r1);
    0x000127cc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000127ce beq.w 0x12aac                                     |         goto label_63;
                                                                 |     }
    0x000127d2 mov r0, r6                                        |     r0 = r6;
    0x000127d4 mov r6, sb                                        |     r6 = sb;
    0x000127d6 bl 0x10570                                        |     fcn_00010570 (r0);
    0x000127da mov.w r0, -1                                      |     r0 = -1;
    0x000127de bl 0x10570                                        |     fcn_00010570 (r0);
    0x000127e2 mov r0, r8                                        |     r0 = r8;
    0x000127e4 blx 0x3530                                        |     ferror (r0);
    0x000127e8 b 0x124ba                                         |     goto label_6;
                                                                 | label_59:
    0x000127ea mvn r1, 0x15                                      |     r1 = ~0x15;
                                                                 | label_13:
    0x000127ee str r1, [r7, 0x34]                                |     var_34h = r1;
    0x000127f0 blx 0x3530                                        |     ferror (r0);
    0x000127f4 ldr r1, [r7, 0x34]                                |     r1 = var_34h;
                                                                 | label_8:
    0x000127f6 mov r0, sb                                        |     r0 = sb;
    0x000127f8 str r1, [r7, 0x34]                                |     var_34h = r1;
    0x000127fa bl 0x10570                                        |     fcn_00010570 (r0);
    0x000127fe mov r0, r8                                        |     r0 = r8;
    0x00012800 blx 0x3530                                        |     ferror (r0);
    0x00012804 ldr r1, [r7, 0x34]                                |     r1 = var_34h;
    0x00012806 b 0x1239a                                         |     goto label_3;
                                                                 | label_31:
    0x00012808 lsls r1, r5, 9                                    |     r1 = r5 << 9;
    0x0001280a mov r0, r4                                        |     r0 = r4;
    0x0001280c and r1, r1, 0x8000                                |     r1 &= 0x8000;
    0x00012810 orr r1, r1, 0x280000                              |     r1 |= 0x280000;
    0x00012814 blx 0x3810                                        |     r0 = fcn_00003810 ();
    0x00012818 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0001281a blt 0x128d4                                       |         goto label_64;
                                                                 |     }
    0x0001281c ldr r3, [r7, 0x34]                                |     r3 = var_34h;
    0x0001281e mov.w r6, -1                                      |     r6 = -1;
    0x00012822 movs r1, 0                                        |     r1 = 0;
    0x00012824 str r0, [r3]                                      |     *(r3) = r0;
    0x00012826 b 0x1239a                                         |     goto label_3;
                                                                 | label_55:
    0x00012828 mov r1, sl                                        |     r1 = sl;
    0x0001282a mov r0, fp                                        |     r0 = fp;
    0x0001282c bl 0x12330                                        |     r0 = fcn_00012330 (r0, r1);
    0x00012830 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00012832 beq.w 0x126fa                                     |         goto label_7;
                                                                 |     }
    0x00012836 mov r1, sb                                        |     r1 = sb;
    0x00012838 mov r3, r5                                        |     r3 = r5;
    0x0001283a mov r2, r4                                        |     r2 = r4;
    0x0001283c mov r0, r6                                        |     r0 = r6;
    0x0001283e bl 0x11ce0                                        |     r0 = fcn_00011ce0 (r0, r1, r2, r3);
    0x00012842 mov r1, r0                                        |     r1 = r0;
    0x00012844 b 0x127f6                                         |     goto label_8;
                                                                 | label_56:
    0x00012846 movw r1, 0x187                                    |     r1 = 0x187;
    0x0001284a mov r0, sb                                        |     r0 = sb;
    0x0001284c bl 0x19ca4                                        |     r0 = fcn_00019ca4 (r0);
    0x00012850 cmp r0, 0                                         |     
                                                                 |     if (r0 <= 0) {
    0x00012852 ble.w 0x1270a                                     |         goto label_9;
                                                                 |     }
    0x00012856 lsls r2, r5, 0x18                                 |     r2 = r5 << 0x18;
    0x00012858 mov.w r3, 0                                       |     r3 = 0;
    0x0001285c str r3, [r7, 0x4c]                                |     var_4ch = r3;
                                                                 |     if (r2 >= r5) {
    0x0001285e bpl.w 0x12b00                                     |         goto label_65;
                                                                 |     }
    0x00012862 add.w r1, r7, 0x4c                                |     r1 += var_4ch;
    0x00012866 mov r0, sb                                        |     r0 = sb;
    0x00012868 bl 0x10654                                        |     r0 = fcn_00010654 (r0, r1);
    0x0001286c bl 0x15ca8                                        |     r0 = fcn_00015ca8 ();
    0x00012870 cmp r0, 3                                         |     
                                                                 |     if (r0 <= 3) {
    0x00012872 ble.w 0x12b00                                     |         goto label_65;
                                                                 |     }
    0x00012876 ldr r1, [r7, 0x4c]                                |     r1 = var_4ch;
    0x00012878 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0001287a beq.w 0x12ae4                                     |         goto label_66;
                                                                 |     }
                                                                 | label_24:
    0x0001287e ldr r2, [pc, 0x2b8]                               |     
    0x00012880 ldr r3, [pc, 0x2b8]                               |     
    0x00012882 ldr r0, [pc, 0x2bc]                               |     
    0x00012884 str r1, [sp, 8]                                   |     src = r1;
    0x00012886 add r2, pc                                        |     r2 = 0x253c4;
    0x00012888 add r3, pc                                        |     r3 = 0x253c8;
    0x0001288a movs r1, 0x42                                     |     r1 = 0x42;
    0x0001288c add r0, pc                                        |     r0 = 0x253d2;
    0x0001288e movt r1, 0x4000                                   |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x00012892 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00012894 adds r2, 7                                        |     r2 += 7;
    0x00012896 str r0, [sp]                                      |     *(sp) = r0;
    0x00012898 mov.w r3, 0x304                                   |     r3 = 0x304;
    0x0001289c movs r0, 4                                        |     r0 = 4;
    0x0001289e str r4, [sp, 0xc]                                 |     var_ch = r4;
    0x000128a0 bl 0x164ec                                        |     r0 = fcn_000164ec (r0, r1, r2);
    0x000128a4 subs r1, r0, 0                                    |     r1 = r0 - 0;
    0x000128a6 it ge                                             |     
                                                                 |     if (r1 < r0) {
    0x000128a8 mvnge r1, 0x55                                    |         r1 = ~0x55;
                                                                 |     }
                                                                 | label_25:
    0x000128ac ldr r0, [r7, 0x4c]                                |     r0 = var_4ch;
    0x000128ae str r1, [r7, 0x34]                                |     var_34h = r1;
    0x000128b0 blx 0x3530                                        |     ferror (r0);
    0x000128b4 ldr r1, [r7, 0x34]                                |     r1 = var_34h;
    0x000128b6 b 0x127f6                                         |     goto label_8;
                                                                 | label_33:
    0x000128b8 ldr r0, [pc, 0x288]                               |     
    0x000128ba add r0, pc                                        |     r0 = 0x25402;
    0x000128bc b 0x12430                                         |     goto label_10;
                                                                 | label_26:
    0x000128be ldr r1, [pc, 0x288]                               |     
    0x000128c0 movw r2, 0x312                                    |     r2 = 0x312;
    0x000128c4 ldr r3, [pc, 0x284]                               |     
    0x000128c6 ldr r0, [pc, 0x288]                               |     
    0x000128c8 add r1, pc                                        |     r1 = 0x25416;
    0x000128ca add r3, pc                                        |     r3 = 0x2541a;
    0x000128cc adds r1, 7                                        |     r1 += 7;
    0x000128ce add r0, pc                                        |     r0 = 0x25424;
    0x000128d0 bl 0x16594                                        |     r0 = fcn_00016594 (r0, r1, r2, r3, r4);
                                                                 | label_64:
    0x000128d4 blx 0x3828                                        |     r0 = fcn_00003828 ();
    0x000128d8 ldr r1, [r0]                                      |     r1 = *(r0);
    0x000128da mov.w r6, -1                                      |     r6 = -1;
    0x000128de rsbs r1, r1, 0                                    |     r1 -= ;
    0x000128e0 b 0x1239a                                         |     goto label_3;
                                                                 | label_37:
    0x000128e2 ldr r0, [pc, 0x270]                               |     
    0x000128e4 str.w sb, [r7, 0x44]                              |     __asm ("str.w sb, [var_44h]");
    0x000128e8 add r0, pc                                        |     r0 = 0x25442;
    0x000128ea blx 0x35c4                                        |     fcn_000035c4 ();
    0x000128ee b 0x12490                                         |     goto label_11;
                                                                 | label_60:
    0x000128f0 mov r0, r6                                        |     r0 = r6;
    0x000128f2 str r3, [r7, 0x10]                                |     var_10h_2 = r3;
    0x000128f4 bl 0x10570                                        |     fcn_00010570 (r0);
    0x000128f6 mrc2 p12, 1, r6, c12, c8, 1                       |     __asm ("mrc2 p12, 1, r6, c12, c8, 1");
    0x000128fa ldr r3, [r7, 0x10]                                |     r3 = var_10h_2;
    0x000128fc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000128fe beq 0x129f2                                       |         goto label_67;
                                                                 |     }
                                                                 | label_17:
    0x00012900 mov.w r1, 0x284000                                |     r1 = 0x284000;
    0x00012904 str r3, [r7, 0x10]                                |     var_10h_2 = r3;
    0x00012906 blx 0x36ec                                        |     r0 = asprintf_chk ()
    0x0001290a subs r6, r0, 0                                    |     r6 = r0 - 0;
    0x0001290c ldr r3, [r7, 0x10]                                |     r3 = var_10h_2;
                                                                 |     if (r6 < r0) {
    0x0001290e blt.w 0x12ad8                                     |         goto label_68;
                                                                 |     }
    0x00012912 ldr r2, [r7, 0x18]                                |     r2 = var_18h;
    0x00012914 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x00012916 bne 0x129c0                                       |         goto label_69;
                                                                 |     }
                                                                 | label_16:
    0x00012918 ldr r1, [r7, 0x40]                                |     r1 = stream;
    0x0001291a cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0001291c beq 0x129f8                                       |         goto label_70;
                                                                 |     }
    0x0001291e ldrb r2, [r1]                                     |     r2 = *(r1);
    0x00012920 cmp r2, 0                                         |     
    0x00012922 ldr r2, [r7, 8]                                   |     r2 = var_8h_2;
    0x00012924 it eq                                             |     
                                                                 |     if (r2 != 0) {
    0x00012926 moveq r1, r2                                      |         r1 = r2;
                                                                 |     }
                                                                 | label_18:
    0x00012928 add.w r0, r7, 0x3c                                |     r0 += var_38h_2;
    0x0001292c str r3, [r7, 0x10]                                |     var_10h_2 = r3;
    0x0001292e bl 0x1a050                                        |     fcn_0001a050 (r0, r1);
    0x00012932 subs r1, r0, 0                                    |     r1 -= var_38h_2;
    0x00012934 ldr r3, [r7, 0x10]                                |     r3 = var_10h_2;
                                                                 |     if (r1 >= var_38h_2) {
    0x00012936 bge.w 0x1275e                                     |         goto label_12;
                                                                 |     }
    0x0001293a ldr r0, [r7, 0x4c]                                |     r0 = var_4ch;
    0x0001293c b 0x127ee                                         |     goto label_13;
                                                                 | label_36:
    0x0001293e ldr r1, [pc, 0x218]                               |     
    0x00012940 mov r0, sb                                        |     r0 = sb;
    0x00012942 add r1, pc                                        |     r1 = 0x254a0;
    0x00012944 bl 0x1af54                                        |     r0 = fcn_0001af54 (r0, r1);
    0x00012948 subs r3, r0, 0                                    |     r3 = r0 - 0;
    0x0001294a it ne                                             |     
                                                                 |     if (r3 == r0) {
    0x0001294c movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0001294e str r3, [r7, 0xc]                                 |     var_ch_2 = r3;
    0x00012950 b 0x1246c                                         |     goto label_14;
                                                                 | label_48:
    0x00012952 mov r1, sb                                        |     r1 = sb;
    0x00012954 mov r3, r5                                        |     r3 = r5;
    0x00012956 mov r2, r4                                        |     r2 = r4;
    0x00012958 mov r0, r6                                        |     r0 = r6;
    0x0001295a bl 0x11ce0                                        |     r0 = fcn_00011ce0 (r0, r1, r2, r3);
    0x0001295e mov r1, r0                                        |     r1 = r0;
                                                                 | label_20:
    0x00012960 mov r0, sb                                        |     r0 = sb;
    0x00012962 str r1, [r7, 0x34]                                |     var_34h = r1;
    0x00012964 mov.w sb, -1                                      |     sb = -1;
    0x00012968 bl 0x10570                                        |     fcn_00010570 (r0);
    0x0001296c ldr r1, [r7, 0x34]                                |     r1 = var_34h;
    0x0001296e b 0x127f6                                         |     goto label_8;
                                                                 | label_51:
    0x00012970 mov r0, r6                                        |     r0 = r6;
    0x00012972 b 0x1264e                                         |     goto label_15;
                                                                 | label_39:
    0x00012974 mov.w sb, -1                                      |     sb = -1;
    0x00012978 mov.w r8, 0                                       |     r8 = 0;
    0x0001297c b 0x127f6                                         |     goto label_8;
                                                                 | label_40:
    0x0001297e ldr r3, [r7, 0xc]                                 |     r3 = var_ch_2;
    0x00012980 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00012982 bne 0x12a62                                       |         goto label_71;
                                                                 |     }
                                                                 | label_21:
    0x00012984 mov.w sb, -1                                      |     sb = -1;
    0x00012988 mov.w r8, 0                                       |     r8 = 0;
    0x0001298c movs r4, 1                                        |     r4 = 1;
                                                                 | label_23:
    0x0001298e mov r0, sb                                        |     r0 = sb;
    0x00012990 bl 0x10570                                        |     fcn_00010570 (r0);
    0x00012994 mov r0, r8                                        |     r0 = r8;
    0x00012996 blx 0x3530                                        |     ferror (r0);
    0x0001299a ldr r3, [r7, 0x30]                                |     r3 = var_30h;
                                                                 |     if (r3 != 0) {
    0x0001299c cbz r3, 0x129a8                                   |         
    0x0001299e ldr r3, [r7, 0x3c]                                |         r3 = var_38h_2;
    0x000129a0 ldr r2, [r7, 0x30]                                |         r2 = var_30h;
    0x000129a2 str r3, [r2]                                      |         *(r2) = r3;
    0x000129a4 movs r3, 0                                        |         r3 = 0;
    0x000129a6 str r3, [r7, 0x3c]                                |         var_38h_2 = r3;
                                                                 |     }
    0x000129a8 ldr r3, [r7, 0x34]                                |     r3 = var_34h;
                                                                 |     if (r3 != 0) {
    0x000129aa cbz r3, 0x129b4                                   |         
    0x000129ac ldr r3, [r7, 0x34]                                |         r3 = var_34h;
    0x000129ae str r6, [r3]                                      |         *(r3) = r6;
    0x000129b0 mov.w r6, -1                                      |         r6 = -1;
                                                                 |     }
    0x000129b4 ldr r3, [r7, 0x2c]                                |     r3 = var_2ch;
    0x000129b6 cmp r3, 0                                         |     
    0x000129b8 ite eq                                            |     
                                                                 |     if (r3 != 0) {
    0x000129ba moveq r1, r4                                      |         r1 = r4;
                                                                 |     }
                                                                 |     if (r3 == 0) {
    0x000129bc movne r1, 1                                       |         r1 = 1;
                                                                 |     }
    0x000129be b 0x1239a                                         |     goto label_3;
                                                                 | label_69:
    0x000129c0 mov r1, sl                                        |     r1 = sl;
    0x000129c2 str r3, [r7, 0x10]                                |     var_10h_2 = r3;
    0x000129c4 blx 0x3a30                                        |     r0 = fcn_00003a30 ();
    0x000129c8 cmp r0, 0                                         |     
    0x000129ca ldr r3, [r7, 0x10]                                |     r3 = var_10h_2;
                                                                 |     if (r0 < 0) {
    0x000129cc blt.w 0x12ad8                                     |         goto label_68;
                                                                 |     }
    0x000129d0 mov r1, sl                                        |     r1 = sl;
    0x000129d2 mov r0, fp                                        |     r0 = fp;
    0x000129d4 str r3, [r7, 0x10]                                |     var_10h_2 = r3;
    0x000129d6 bl 0x12330                                        |     fcn_00012330 (r0, r1);
    0x000129da ldr r3, [r7, 0x10]                                |     r3 = var_10h_2;
    0x000129dc cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000129de bne.w 0x12aee                                     |         goto label_72;
                                                                 |     }
    0x000129e2 mov r1, sl                                        |     r1 = sl;
    0x000129e4 mov r0, fp                                        |     r0 = fp;
    0x000129e6 movs r2, 0x68                                     |     r2 = 0x68;
    0x000129e8 str r3, [r7, 0x10]                                |     var_10h_2 = r3;
    0x000129ea blx 0x3578                                        |     mmap64 ();
    0x000129ee ldr r3, [r7, 0x10]                                |     r3 = var_10h_2;
    0x000129f0 b 0x12918                                         |     goto label_16;
                                                                 | label_67:
    0x000129f2 ldr r0, [pc, 0x168]                               |     
    0x000129f4 add r0, pc                                        |     r0 = 0x25556;
    0x000129f6 b 0x12900                                         |     goto label_17;
                                                                 | label_70:
    0x000129f8 ldr r1, [r7, 4]                                   |     r1 = var_4h_2;
    0x000129fa b 0x12928                                         |     goto label_18;
                                                                 | label_62:
    0x000129fc mov r1, r0                                        |     r1 = r0;
    0x000129fe ldr.w r2, [r7, 0xb8]                              |     r2 = var_b8h;
    0x00012a02 mov.w r3, -1                                      |     r3 = -1;
    0x00012a06 movs r0, 0                                        |     r0 = 0;
    0x00012a08 bl 0x1812c                                        |     fcn_0001812c (r0, r1);
    0x00012a0c mvn r1, 0xb                                       |     r1 = ~0xb;
    0x00012a10 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00012a12 bne.w 0x127b6                                     |         goto label_19;
                                                                 |     }
    0x00012a16 b 0x1239a                                         |     goto label_3;
                                                                 | label_53:
    0x00012a18 blx 0x3828                                        |     r0 = fcn_00003828 ();
    0x00012a1c ldr r4, [r0]                                      |     r4 = *(r0);
    0x00012a1e ldr r2, [r7, 0x1c]                                |     r2 = var_1ch;
    0x00012a20 sub.w r3, r4, 2                                   |     r3 = r4 - 2;
    0x00012a24 clz r3, r3                                        |     r3 &= r3;
    0x00012a28 cmp r2, 0                                         |     
    0x00012a2a lsr.w r3, r3, 5                                   |     r3 >>= 5;
    0x00012a2e it eq                                             |     
                                                                 |     if (r2 != 0) {
    0x00012a30 moveq r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r3 != 0) {
    0x00012a32 cbnz r3, 0x12a80                                  |         goto label_73;
                                                                 |     }
                                                                 | label_22:
    0x00012a34 rsbs r1, r4, 0                                    |     r1 = r4 - ;
    0x00012a36 b 0x127f6                                         |     goto label_8;
                                                                 | label_54:
    0x00012a38 blx 0x3828                                        |     r0 = fcn_00003828 ();
    0x00012a3c ldr r1, [r0]                                      |     r1 = *(r0);
    0x00012a3e rsbs r1, r1, 0                                    |     r1 -= ;
    0x00012a40 b 0x127f6                                         |     goto label_8;
                                                                 | label_49:
    0x00012a42 ldr r1, [pc, 0x11c]                               |     
    0x00012a44 movw r2, 0x36f                                    |     r2 = 0x36f;
    0x00012a48 ldr r3, [pc, 0x118]                               |     
    0x00012a4a ldr r0, [pc, 0x11c]                               |     
    0x00012a4c add r1, pc                                        |     r1 = 0x255b2;
    0x00012a4e add r3, pc                                        |     r3 = 0x255b6;
    0x00012a50 adds r1, 7                                        |     r1 += 7;
    0x00012a52 add r0, pc                                        |     r0 = 0x255c0;
    0x00012a54 bl 0x16594                                        |     r0 = fcn_00016594 (r0, r1, r2, r3, r4);
                                                                 | label_47:
    0x00012a58 blx 0x3828                                        |     r0 = fcn_00003828 ();
    0x00012a5c ldr r1, [r0]                                      |     r1 = *(r0);
    0x00012a5e rsbs r1, r1, 0                                    |     r1 -= ;
    0x00012a60 b 0x12960                                         |     goto label_20;
                                                                 | label_71:
    0x00012a62 ldr r2, [pc, 0x108]                               |     
    0x00012a64 mov r3, r1                                        |     r3 = r1;
    0x00012a66 add.w r0, r7, 0x3c                                |     r0 += var_38h_2;
    0x00012a6a add r2, pc                                        |     r2 = 0x255dc;
    0x00012a6c bl 0x19ed8                                        |     r0 = fcn_00019ed8 (r0);
    0x00012a70 mov r8, r0                                        |     r8 = r0;
    0x00012a72 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00012a74 bne 0x12984                                       |         goto label_21;
                                                                 |     }
                                                                 | label_41:
    0x00012a76 mov.w sb, -1                                      |     sb = -1;
    0x00012a7a mvn r1, 0xb                                       |     r1 = ~0xb;
    0x00012a7e b 0x127f6                                         |     goto label_8;
                                                                 | label_73:
    0x00012a80 ldr r5, [r7, 0x44]                                |     r5 = var_44h;
                                                                 |     if (r5 == 0) {
    0x00012a82 cbz r5, 0x12a94                                   |         goto label_74;
                                                                 |     }
    0x00012a84 ldrb r3, [r5]                                     |     r3 = *(r5);
                                                                 |     if (r3 == 0) {
    0x00012a86 cbz r3, 0x12a94                                   |         goto label_74;
                                                                 |     }
    0x00012a88 movs r1, 0                                        |     r1 = 0;
    0x00012a8a mov r0, r5                                        |     r0 = r5;
    0x00012a8c bl 0x188b4                                        |     fcn_000188b4 (r0, r1, r2, r3);
    0x00012a8e vsub.i16 d2, d2, d0                               |     __asm ("vsub.i16 d2, d2, d0");
                                                                 |     if (r1 == 0) {
    0x00012a92 beq 0x12a34                                       |         goto label_22;
                                                                 |     }
                                                                 | label_74:
    0x00012a94 mov r2, r5                                        |     r2 = r5;
    0x00012a96 mov.w r3, -1                                      |     r3 = -1;
    0x00012a9a mov r1, r8                                        |     r1 = r8;
    0x00012a9c add.w r0, r7, 0x3c                                |     r0 += var_38h_2;
    0x00012aa0 movs r4, 0                                        |     r4 = 0;
    0x00012aa2 bl 0x1812c                                        |     r0 = fcn_0001812c (r0, r1);
    0x00012aa6 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00012aa8 bne.w 0x1298e                                     |         goto label_23;
                                                                 |     }
                                                                 | label_63:
    0x00012aac mvn r1, 0xb                                       |     r1 = ~0xb;
    0x00012ab0 b 0x127f6                                         |     goto label_8;
                                                                 | label_43:
    0x00012ab2 mov.w sb, -1                                      |     sb = -1;
    0x00012ab6 mvn r1, 0xb                                       |     r1 = ~0xb;
    0x00012ab8 lsls r3, r1, 4                                    |     r3 = r1 << 4;
    0x00012aba b 0x12960                                         |     goto label_20;
                                                                 | label_46:
    0x00012abc mov.w r0, -1                                      |     r0 = -1;
    0x00012ac0 mov sb, r0                                        |     sb = r0;
    0x00012ac2 bl 0x10570                                        |     fcn_00010570 (r0);
    0x00012ac4 ldc2l p6, c14, [r5, -0x174]                       |     __asm ("ldc2l p6, c14, [r5, -0x174]");
                                                                 | label_58:
    0x00012ac8 ldr r0, [r7, 0x14]                                |     r0 = var_14h;
    0x00012aca mvn r1, 0x27                                      |     r1 = ~0x27;
    0x00012ace b 0x127ee                                         |     goto label_13;
                                                                 | label_61:
    0x00012ad0 ldr r0, [r7, 0x4c]                                |     r0 = var_4ch;
    0x00012ad2 mvn r1, 0xb                                       |     r1 = ~0xb;
    0x00012ad6 b 0x127ee                                         |     goto label_13;
                                                                 | label_68:
    0x00012ad8 blx 0x3828                                        |     r0 = fcn_00003828 ();
    0x00012adc ldr r1, [r0]                                      |     r1 = *(r0);
    0x00012ade ldr r0, [r7, 0x4c]                                |     r0 = var_4ch;
    0x00012ae0 rsbs r1, r1, 0                                    |     r1 -= ;
    0x00012ae2 b 0x127ee                                         |     goto label_13;
                                                                 | label_66:
    0x00012ae4 ldr r1, [pc, 0x88]                                |     
    0x00012ae6 add r1, pc                                        |     r1 = 0x2565a;
    0x00012ae8 b 0x1287e                                         |     goto label_24;
                                                                 | label_29:
    0x00012aea blx 0x35d0                                        |     fcn_000035d0 ();
                                                                 | label_72:
    0x00012aee mov r1, r6                                        |     r1 = r6;
    0x00012af0 mov r3, r5                                        |     r3 = r5;
    0x00012af2 mov r2, r4                                        |     r2 = r4;
    0x00012af4 mov r0, sb                                        |     r0 = sb;
    0x00012af6 bl 0x11ce0                                        |     r0 = fcn_00011ce0 (r0, r1, r2, r3);
    0x00012afa mov r1, r0                                        |     r1 = r0;
    0x00012afc ldr r0, [r7, 0x4c]                                |     r0 = var_4ch;
    0x00012afe b 0x127ee                                         |     goto label_13;
                                                                 | label_65:
    0x00012b00 mvn r1, 0x41                                      |     r1 = ~0x41;
    0x00012b04 b 0x128ac                                         |     goto label_25;
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libudev.so.1.7.2 @ 0x12b74 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00012b74 ()                  | void fcn_00012b74 (int16_t arg1, int16_t arg2, int16_t arg3) {
                                             |     FILE * stream;
                                             |     int16_t var_4h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
    0x00012b74 push {r4, r5, r6, lr}         |     
    0x00012b76 mov r6, r2                    |     r6 = r2;
    0x00012b78 ldr r4, [pc, 0x74]            |     
    0x00012b7a sub sp, 8                     |     
    0x00012b7c movs r3, 0                    |     r3 = 0;
    0x00012b7e mov r5, r1                    |     r5 = r1;
    0x00012b80 ldr r2, [pc, 0x70]            |     r2 = *(0x12bf4);
    0x00012b82 mov r1, sp                    |     r1 = sp;
    0x00012b84 add r4, pc                    |     r4 = 0x25778;
    0x00012b86 ldr r2, [r4, r2]              |     
    0x00012b88 ldr r2, [r2]                  |     r2 = *(0x25778);
    0x00012b8a str r2, [sp, 4]               |     var_4h = r2;
    0x00012b8c mov.w r2, 0                   |     r2 = 0;
    0x00012b90 str r3, [sp]                  |     *(sp) = r3;
    0x00012b92 bl 0x189b8                    |     r0 = fcn_000189b8 (r0, r1);
    0x00012b96 subs r4, r0, 0                |     r4 = r0 - 0;
                                             |     if (r4 < r0) {
    0x00012b98 blt 0x12bc0                   |         goto label_0;
                                             |     }
    0x00012b9a mov.w r3, 0x4000              |     r3 = 0x4000;
    0x00012b9e ldr r0, [sp]                  |     r0 = *(sp);
    0x00012ba0 mov r2, r3                    |     r2 = r3;
    0x00012ba2 movt r3, 0x60                 |     r3 = (r3 & 0xFFFF) | 0x600000;
    0x00012ba4 lsls r0, r4, 0xd              |     r0 = r4 << 0xd;
    0x00012ba6 ands r3, r5                   |     r3 &= r5;
    0x00012ba8 movt r2, 0x40                 |     r2 = (r2 & 0xFFFF) | 0x400000;
    0x00012bac cmp r3, r2                    |     
    0x00012bae mov r2, r6                    |     r2 = r6;
    0x00012bb0 it ne                         |     
                                             |     if (r3 == r2) {
    0x00012bb2 orrne r5, r5, 0x4000          |         r5 |= 0x4000;
                                             |     }
    0x00012bb6 mov r1, r5                    |     r1 = r5;
    0x00012bb8 blx 0x36ec                    |     r0 = asprintf_chk ()
    0x00012bbc subs r4, r0, 0                |     r4 = r0 - 0;
    0x00012bbe blt 0x12be0                   |     
                                             |     while (1) {
                                             | label_0:
    0x00012bc0 ldr r0, [sp]                  |         r0 = *(sp);
    0x00012bc2 blx 0x3530                    |         ferror (r0);
    0x00012bc6 ldr r2, [pc, 0x30]            |         
    0x00012bc8 ldr r3, [pc, 0x28]            |         r3 = *(0x12bf4);
    0x00012bca add r2, pc                    |         r2 = 0x257c8;
    0x00012bcc ldr r3, [r2, r3]              |         r3 = *(0x257c8);
    0x00012bce ldr r2, [r3]                  |         r2 = *(0x257c8);
    0x00012bd0 ldr r3, [sp, 4]               |         r3 = var_4h;
    0x00012bd2 eors r2, r3                   |         r2 ^= r3;
    0x00012bd4 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00012bd8 bne 0x12bea                   |             goto label_1;
                                             |         }
    0x00012bda mov r0, r4                    |         r0 = r4;
    0x00012bdc add sp, 8                     |         
    0x00012bde pop {r4, r5, r6, pc}          |         
    0x00012be0 blx 0x3828                    |         r0 = fcn_00003828 ();
    0x00012be4 ldr r4, [r0]                  |         r4 = *(r0);
    0x00012be6 rsbs r4, r4, 0                |         r4 -= ;
    0x00012be8 b 0x12bc0                     |         
                                             |     }
                                             | label_1:
    0x00012bea blx 0x35d0                    |     fcn_000035d0 ();
    0x00012bee nop                           |     
    0x00012bf0 rsbs.w r0, r0, 1              |     r0 = 1 - r0;
    0x00012bf4 lsls r4, r5, 9                |     r4 = r5 << 9;
    0x00012bf6 movs r0, r0                   |     
    0x00012bf8 invalid                       |     
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libudev.so.1.7.2 @ 0x154dc */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000154dc ()              | void fcn_000154dc () {
    0x000154dc invalid                   |     
    0x000154e0 add r4, pc                |     r4 += pc;
    0x000154e2 ldr r3, [r4]              |     r3 = *(r4);
    0x000154e4 cmp r3, 0                 |     
    0x000154e6 it ge                     |     
                                         |     if (r3 < 0) {
    0x000154e8 movge r0, 0               |         r0 = 0;
                                         |     }
                                         |     if (r3 >= 0) {
    0x000154ea blt 0x154ee               |         
    0x000154ec pop {r4, pc}              |         
                                         |     }
    0x000154ee ldr r0, [pc, 0x30]        |     
    0x000154f0 movw r1, 0x101            |     
    0x000154f4 movt r1, 8                |     r1 = 0x80101;
    0x000154f8 add r0, pc                |     r0 = 0x2aa1e;
    0x000154fa blx 0x36ec                |     r0 = asprintf_chk ()
    0x000154fe cmp r0, 0                 |     
    0x00015500 str r0, [r4]              |     *(r4) = r0;
                                         |     if (r0 >= 0) {
    0x00015502 blt 0x15510               |         
    0x00015504 bl 0x106cc                |         r0 = fcn_000106cc (r0);
    0x00015508 mov r3, r0                |         r3 = r0;
    0x0001550a movs r0, 0                |         r0 = 0;
    0x0001550c str r3, [r4]              |         *(r4) = r3;
    0x0001550e pop {r4, pc}              |         
                                         |     }
    0x00015510 blx 0x3828                |     r0 = fcn_00003828 ();
    0x00015514 ldr r0, [r0]              |     r0 = *(r0);
    0x00015516 rsbs r0, r0, 0            |     r0 -= ;
    0x00015518 pop {r4, pc}              |     
                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libudev.so.1.7.2 @ 0x190b8 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.000190b8 ()                                      | void fcn_000190b8 (int16_t arg_50h, int16_t arg1, uint32_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x000190b8 svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x000190bc mov r8, r2                                        |     r8 = r2;
    0x000190be ldr r2, [pc, 0x1c0]                               |     
    0x000190c0 sub sp, 0xc                                       |     
    0x000190c2 ldr r3, [pc, 0x1c0]                               |     r3 = *(0x19286);
    0x000190c4 add r2, pc                                        |     r2 = 0x3234a;
    0x000190c6 ldr r3, [r2, r3]                                  |     
    0x000190c8 ldr r3, [r3]                                      |     r3 = LIBUDEV_247;
    0x000190ca str r3, [sp, 4]                                   |     var_4h = r3;
    0x000190cc mov.w r3, 0                                       |     r3 = 0;
    0x000190d0 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x000190d2 beq 0x1918c                                       |         goto label_4;
                                                                 |     }
    0x000190d4 ands r5, r8, 8                                    |     r5 = r8 & 8;
    0x000190d8 mov r6, r0                                        |     r6 = r0;
    0x000190da mov r4, r1                                        |     r4 = r1;
                                                                 |     if (r5 == r8) {
    0x000190dc bne 0x19150                                       |         
                                                                 | label_0:
    0x000190de ldr r3, [pc, 0x1a8]                               |         
    0x000190e0 add r3, pc                                        |         
    0x000190e2 ldr r3, [r3]                                      |         r3 = LIBUDEV_247;
                                                                 |         if (r3 != 0) {
    0x000190e4 cbz r3, 0x1912e                                   |             
    0x000190e6 ldr.w sb, [pc, 0x1a4]                             |             
    0x000190ea lsr.w sl, r8, 2                                   |             sl = r8 >> 2;
    0x000190ee and fp, r8, 2                                     |             
    0x000190f2 movs r7, 1                                        |             r7 = 1;
    0x000190f4 add sb, pc                                        |             sb = 0x32386;
                                                                 | label_1:
    0x000190f6 and r2, sl, 4                                     |             r2 = sl & 4;
    0x000190fa mov r1, r4                                        |             r1 = r4;
    0x000190fc cmp.w fp, 0                                       |             
    0x00019100 it eq                                             |             
                                                                 |             if (fp != 0) {
    0x00019102 orreq r2, r2, 1                                   |                 r2 |= 1;
                                                                 |             }
    0x00019106 mov r0, r6                                        |             r0 = r6;
    0x00019108 blx 0x3a48                                        |             r0 = fcn_00003a48 ();
    0x0001910c cmp r0, 0                                         |             
                                                                 |             if (r0 <= 0) {
    0x0001910e ble 0x191b4                                       |                 goto label_5;
                                                                 |             }
    0x00019110 cmp r4, r0                                        |             
    0x00019112 str.w r7, [sb]                                    |             __asm ("str.w r7, [sb]");
                                                                 |             if (r4 == r0) {
    0x00019116 beq 0x1918c                                       |                 goto label_4;
                                                                 |             }
    0x00019118 cmp r0, r4                                        |             
                                                                 |             if (r0 >= r4) {
    0x0001911a bhs 0x19212                                       |                 goto label_6;
                                                                 |             }
    0x0001911c tst.w r8, 1                                       |             
    0x00019120 add r6, r0                                        |             r6 += r0;
    0x00019122 sub.w r4, r4, r0                                  |             r4 -= r0;
                                                                 |             if ((r8 & 1) != 0) {
    0x00019126 bne 0x19226                                       |                 goto label_7;
                                                                 |             }
    0x00019128 cmp.w fp, 0                                       |             
                                                                 |             if (fp != 0) {
    0x0001912c bne 0x191fa                                       |                 goto label_8;
                                                                 |             }
                                                                 |         }
                                                                 | label_2:
    0x0001912e ldr r0, [pc, 0x160]                               |         
    0x00019130 mov.w r1, 0x100                                   |         
    0x00019134 movt r1, 8                                        |         r1 = 0x80100;
    0x00019138 add r0, pc                                        |         r0 = 0x323ce;
    0x0001913a blx 0x36ec                                        |         r0 = asprintf_chk ()
    0x0001913e subs r5, r0, 0                                    |         r5 = r0 - 0;
                                                                 |         if (r5 < r0) {
    0x00019140 blt 0x191fe                                       |             goto label_9;
                                                                 |         }
    0x00019142 mov r2, r4                                        |         r2 = r4;
    0x00019144 movs r3, 1                                        |         r3 = 1;
    0x00019146 mov r1, r6                                        |         r1 = r6;
    0x00019148 bl 0x15228                                        |         r0 = fcn_00015228 (r0, r1, r2, r3);
    0x0001914c mov r4, r0                                        |         r4 = r0;
    0x0001914e b 0x19192                                         |         goto label_3;
                                                                 |     }
    0x00019150 movs r5, 0                                        |     r5 = 0;
    0x00019152 mov r7, sp                                        |     r7 = sp;
    0x00019154 b 0x19170                                         |     
                                                                 |     while (r0 >= 0) {
    0x00019156 cmp r4, 4                                         |         
    0x00019158 mov r5, r4                                        |         r5 = r4;
    0x0001915a it hs                                             |         
                                                                 |         if (r4 < 4) {
    0x0001915c movhs r5, 4                                       |             r5 = 4;
                                                                 |         }
    0x0001915e mov r0, r6                                        |         r0 = r6;
    0x00019160 mov r2, r5                                        |         r2 = r5;
    0x00019162 mov r1, r7                                        |         r1 = r7;
    0x00019164 blx 0x3578                                        |         mmap64 ();
    0x00019168 subs r4, r4, r5                                   |         r4 -= r5;
    0x0001916a add r6, r5                                        |         r6 += r5;
                                                                 |         if (r4 == r4) {
    0x0001916c beq 0x1918c                                       |             goto label_4;
                                                                 |         }
    0x0001916e movs r5, 1                                        |         r5 = 1;
    0x00019170 mov r0, r7                                        |         r0 = r7;
    0x00019172 bl 0x18fb8                                        |         r0 = fcn_00018fb8 ();
    0x00019176 cmp r0, 0                                         |         
    0x00019178 bge 0x19156                                       |         
                                                                 |     }
    0x0001917a cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0001917c beq 0x190de                                       |         goto label_0;
                                                                 |     }
    0x0001917e tst.w r8, 1                                       |     
                                                                 |     if ((r8 & 1) == 0) {
    0x00019182 beq 0x190de                                       |         goto label_0;
                                                                 |     }
    0x00019184 mov r1, r4                                        |     r1 = r4;
    0x00019186 mov r0, r6                                        |     r0 = r6;
    0x00019188 bl 0x1907c                                        |     fcn_0001907c (r0, r1);
                                                                 | label_4:
    0x0001918c mov.w r5, -1                                      |     r5 = -1;
    0x00019190 movs r4, 0                                        |     r4 = 0;
                                                                 | label_3:
    0x00019192 mov r0, r5                                        |     r0 = r5;
    0x00019194 bl 0x10570                                        |     fcn_00010570 (r0);
    0x00019198 ldr r2, [pc, 0xf8]                                |     
    0x0001919a ldr r3, [pc, 0xe8]                                |     r3 = *(0x19286);
    0x0001919c add r2, pc                                        |     r2 = 0x32434;
    0x0001919e ldr r3, [r2, r3]                                  |     r3 = LIBUDEV_247;
    0x000191a0 ldr r2, [r3]                                      |     r2 = LIBUDEV_247;
    0x000191a2 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x000191a4 eors r2, r3                                       |     r2 ^= r3;
    0x000191a6 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x000191aa bne 0x1927c                                       |         goto label_10;
                                                                 |     }
    0x000191ac mov r0, r4                                        |     r0 = r4;
    0x000191ae add sp, 0xc                                       |     
    0x000191b0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 |     if (r2 == r3) {
                                                                 | label_5:
    0x000191b4 beq 0x19236                                       |         goto label_11;
                                                                 |     }
    0x000191b6 blx 0x3828                                        |     r0 = fcn_00003828 ();
    0x000191ba ldr r3, [r0]                                      |     r3 = *(r0);
    0x000191bc eor.w r2, r3, r3, asr 31                          |     r2 = r3 ^ (r3 >> 31);
    0x000191c0 sub.w r2, r2, r3, asr 31                          |     r2 -= (r3 >> 31);
    0x000191c4 cmp r2, 0x26                                      |     
                                                                 |     if (r2 == 0x26) {
    0x000191c6 beq 0x191f0                                       |         goto label_12;
                                                                 |     }
                                                                 |     if (r2 > 0x26) {
    0x000191c8 bgt 0x191ea                                       |         goto label_13;
                                                                 |     }
    0x000191ca cmp r2, 0x19                                      |     
                                                                 |     if (r2 == 0x19) {
    0x000191cc beq 0x191f0                                       |         goto label_12;
                                                                 |     }
                                                                 |     do {
    0x000191ce cmp r3, 0xb                                       |         
                                                                 |         if (r3 == 0xb) {
    0x000191d0 beq 0x19252                                       |             goto label_14;
                                                                 |         }
    0x000191d2 cmp r3, 0x16                                      |         
                                                                 |         if (r3 != 0x16) {
    0x000191d4 bne 0x19274                                       |             goto label_15;
                                                                 |         }
    0x000191d6 tst.w r8, 0x10                                    |         
                                                                 |         if ((r8 & 0x10) == 0) {
    0x000191da beq 0x19248                                       |             goto label_16;
                                                                 |         }
    0x000191dc bic r8, r8, 0x10                                  |         r8 = BIT_MASK (r8, 0x10);
    0x000191e0 lsr.w sl, r8, 2                                   |         sl = r8 >> 2;
    0x000191e4 and fp, r8, 2                                     |         
    0x000191e8 b 0x190f6                                         |         goto label_1;
                                                                 | label_13:
    0x000191ea subs r2, 0x5d                                     |         r2 -= 0x5d;
    0x000191ec cmp r2, 4                                         |         
    0x000191ee bhi 0x191ce                                       |         
                                                                 |     } while (r2 > 4);
                                                                 | label_12:
    0x000191f0 ldr r3, [pc, 0xa4]                                |     
    0x000191f2 movs r2, 0                                        |     r2 = 0;
    0x000191f4 add r3, pc                                        |     r3 = 0x32490;
    0x000191f6 str r2, [r3]                                      |     *(r3) = r2;
    0x000191f8 b 0x1912e                                         |     goto label_2;
                                                                 | label_8:
    0x000191fa movs r5, 1                                        |     r5 = 1;
    0x000191fc b 0x190f6                                         |     goto label_1;
                                                                 | label_9:
    0x000191fe blx 0x3828                                        |     r0 = fcn_00003828 ();
    0x00019202 ldr r4, [r0]                                      |     r4 = *(r0);
    0x00019204 cmp r4, 2                                         |     
    0x00019206 it ne                                             |     
                                                                 |     if (r4 == 2) {
    0x00019208 rsbne r4, r4, 0                                   |         __asm ("rsbne r4, r4, 0");
                                                                 |         goto label_17;
                                                                 |     }
                                                                 |     if (r4 != 2) {
                                                                 | label_17:
    0x0001920a bne 0x19192                                       |         goto label_3;
                                                                 |     }
    0x0001920c mvn r4, 0x25                                      |     r4 = ~0x25;
    0x00019210 b 0x19192                                         |     goto label_3;
                                                                 | label_6:
    0x00019212 ldr r1, [pc, 0x88]                                |     
    0x00019214 movs r2, 0xe8                                     |     r2 = 0xe8;
    0x00019216 ldr r3, [pc, 0x88]                                |     
    0x00019218 ldr r0, [pc, 0x88]                                |     
    0x0001921a add r1, pc                                        |     r1 = 0x324bc;
    0x0001921c add r3, pc                                        |     r3 = 0x324c2;
    0x0001921e adds r1, 7                                        |     r1 += 7;
    0x00019220 add r0, pc                                        |     r0 = 0x324c8;
    0x00019222 bl 0x16594                                        |     fcn_00016594 (r0, r1, r2, r3, r4);
                                                                 |     do {
                                                                 | label_7:
    0x00019226 mov r1, r4                                        |         r1 = r4;
    0x00019228 mov r0, r6                                        |         r0 = r6;
    0x0001922a mov.w r5, -1                                      |         r5 = -1;
    0x0001922e movs r4, 0                                        |         r4 = 0;
    0x00019230 bl 0x1907c                                        |         fcn_0001907c (r0, r1);
    0x00019234 b 0x19192                                         |         goto label_3;
                                                                 | label_11:
    0x00019236 ldr r3, [pc, 0x70]                                |         
    0x00019238 movs r2, 1                                        |         r2 = 1;
    0x0001923a mov.w r5, -1                                      |         r5 = -1;
    0x0001923e mvn r4, 4                                         |         r4 = ~4;
    0x00019242 add r3, pc                                        |         r3 = 0x324f0;
    0x00019244 str r2, [r3]                                      |         *(r3) = r2;
    0x00019246 b 0x19192                                         |         goto label_3;
                                                                 | label_16:
    0x00019248 mov.w r5, -1                                      |         r5 = -1;
    0x0001924c mvn r4, 0x15                                      |         r4 = ~0x15;
    0x00019250 b 0x19192                                         |         goto label_3;
                                                                 | label_14:
    0x00019252 ldr r3, [pc, 0x58]                                |         
    0x00019254 movs r2, 1                                        |         r2 = 1;
    0x00019256 add r3, pc                                        |         r3 = 0x32508;
    0x00019258 str r2, [r3]                                      |         *(r3) = r2;
                                                                 |         if (r5 == 0) {
    0x0001925a cbz r5, 0x19262                                   |             goto label_18;
                                                                 |         }
    0x0001925c tst.w r8, 1                                       |         
    0x00019260 bne 0x19226                                       |         
                                                                 |     } while ((r8 & 1) != 0);
                                                                 | label_18:
    0x00019262 tst.w r8, 4                                       |     
                                                                 |     if ((r8 & 4) == 0) {
    0x00019266 beq.w 0x1912e                                     |         goto label_2;
                                                                 |     }
    0x0001926a mov.w r5, -1                                      |     r5 = -1;
    0x0001926e mvn r4, 0x3c                                      |     r4 = ~0x3c;
    0x00019272 b 0x19192                                         |     goto label_3;
                                                                 | label_15:
    0x00019274 rsbs r4, r3, 0                                    |     r4 = r3 - ;
    0x00019276 mov.w r5, -1                                      |     r5 = -1;
    0x0001927a b 0x19192                                         |     goto label_3;
                                                                 | label_10:
    0x0001927c blx 0x35d0                                        |     fcn_000035d0 ();
    0x00019280 ldrh r0, [r2, 0x24]                               |     r0 = *((r2 + 0x24));
    0x00019282 movs r1, r0                                       |     r1 = r0;
    0x00019284 lsls r4, r5, 9                                    |     r4 = r5 << 9;
    0x00019286 movs r0, r0                                       |     
    0x00019288 str r0, [sp, 0x50]                                |     *(arg_50h) = r0;
    0x0001928a movs r1, r0                                       |     r1 = r0;
    0x0001928c str r0, [sp]                                      |     *(sp) = r0;
    0x0001928e movs r1, r0                                       |     r1 = r0;
    0x00019290 ldrb r0, [r0, 0xb]                                |     r0 = *((r0 + 0xb));
    0x00019292 movs r0, r0                                       |     
    0x00019294 ldrh r0, [r7, 0x1c]                               |     r0 = *((r7 + 0x1c));
    0x00019296 movs r1, r0                                       |     r1 = r0;
    0x00019298 ldrh r0, [r0, 0x38]                               |     r0 = *((r0 + 0x38));
    0x0001929a movs r1, r0                                       |     r1 = r0;
    0x0001929c ldrb r6, [r5, 6]                                  |     r6 = *((r5 + 6));
    0x0001929e movs r0, r0                                       |     
    0x000192a0 ldrb r4, [r5, 7]                                  |     r4 = *((r5 + 7));
    0x000192a2 movs r0, r0                                       |     
    0x000192a4 ldrb r0, [r1, 7]                                  |     r0 = *((r1 + 7));
    0x000192a6 movs r0, r0                                       |     
    0x000192a8 ldrh r2, [r6, 0x34]                               |     r2 = *((r6 + 0x34));
    0x000192aa movs r1, r0                                       |     r1 = r0;
    0x000192ac ldrh r6, [r3, 0x34]                               |     r6 = *((r3 + 0x34));
    0x000192ae movs r1, r0                                       |     r1 = r0;
                                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libudev.so.1.7.2 @ 0x1a1a4 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0001a1a4 ()                          | void fcn_0001a1a4 (int16_t arg1, int16_t arg2) {
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0001a1a4 invalid                               |     
                                                     |     if (? < ?) {
    0x0001a1a8 bmi 0x1a228                           |         goto label_1;
                                                     |     }
    0x0001a1aa mov r6, r1                            |     r6 = r1;
    0x0001a1ac mov r7, r0                            |     r7 = r0;
    0x0001a1ae movs r5, 0x15                         |     r5 = 0x15;
    0x0001a1b0 b 0x1a1b6                             |     
                                                     |     while (r5 != 1) {
    0x0001a1b2 blx 0x36b0                            |         fread (r0, r1, r2, r3);
    0x0001a1b6 movs r2, 0                            |         r2 = 0;
    0x0001a1b8 mov r1, r6                            |         r1 = r6;
    0x0001a1ba mov r0, r7                            |         r0 = r7;
    0x0001a1bc blx 0x36ec                            |         r0 = asprintf_chk ()
    0x0001a1c0 subs r4, r0, 0                        |         r4 = r0 - 0;
                                                     |         if (r4 >= r0) {
    0x0001a1c2 bge 0x1a1e4                           |             goto label_2;
                                                     |         }
    0x0001a1c4 blx 0x3828                            |         r0 = fcn_00003828 ();
    0x0001a1c8 ldr r3, [r0]                          |         r3 = *(r0);
    0x0001a1ca movw r0, 0xc350                       |         r0 = 0xc350;
    0x0001a1ce cmp r3, 5                             |         
                                                     |         if (r3 != 5) {
    0x0001a1d0 bne 0x1a21c                           |             goto label_3;
                                                     |         }
    0x0001a1d2 subs r5, 1                            |         r5--;
    0x0001a1d4 bne 0x1a1b2                           |         
                                                     |     }
    0x0001a1d6 mvn r5, 4                             |     r5 = ~4;
                                                     |     do {
                                                     | label_0:
    0x0001a1da mov r0, r4                            |         r0 = r4;
    0x0001a1dc bl 0x10570                            |         fcn_00010570 (r0);
    0x0001a1e0 mov r0, r5                            |         r0 = r5;
    0x0001a1e2 pop {r3, r4, r5, r6, r7, pc}          |         
                                                     | label_2:
    0x0001a1e4 blx 0x3a78                            |         r0 = fcn_00003a78 ();
    0x0001a1e8 cmp r0, 0                             |         
    0x0001a1ea itt gt                                |         
                                                     |         if (r0 <= 0) {
    0x0001a1ec movgt r5, r4                          |             r5 = r4;
                                                     |         }
                                                     |         if (r0 <= 0) {
    0x0001a1ee movgt r4, -1                          |             r4 = -1;
                                                     |         }
    0x0001a1f2 bgt 0x1a1da                           |         
                                                     |     } while (r0 > 0);
    0x0001a1f4 blx 0x3828                            |     r0 = fcn_00003828 ();
    0x0001a1f8 ldr r5, [r0]                          |     r5 = *(r0);
    0x0001a1fa cmp r5, 0                             |     
    0x0001a1fc it gt                                 |     
                                                     |     if (r5 <= 0) {
    0x0001a1fe rsbgt r5, r5, 0                       |         __asm ("rsbgt r5, r5, 0");
                                                     |         goto label_4;
                                                     |     }
                                                     |     if (r5 > 0) {
                                                     | label_4:
    0x0001a200 bgt 0x1a1da                           |         goto label_0;
                                                     |     }
    0x0001a202 ldr r1, [pc, 0x30]                    |     
    0x0001a204 movs r2, 0x1e                         |     r2 = 0x1e;
    0x0001a206 ldr r3, [pc, 0x30]                    |     
    0x0001a208 mvn r5, 0x15                          |     r5 = ~0x15;
    0x0001a20c ldr r0, [pc, 0x2c]                    |     
    0x0001a20e add r1, pc                            |     r1 = 0x34448;
    0x0001a210 add r3, pc                            |     r3 = 0x3444e;
    0x0001a212 adds r1, 7                            |     r1 += 7;
    0x0001a214 add r0, pc                            |     r0 = 0x34454;
    0x0001a216 bl 0x167c8                            |     fcn_000167c8 (r0, r1, r2, r3);
    0x0001a218 invalid                               |     
                                                     | label_3:
    0x0001a21c rsbs r5, r3, 0                        |     r5 = r3 - ;
    0x0001a21e mov r0, r4                            |     r0 = r4;
    0x0001a220 bl 0x10570                            |     fcn_00010570 (r0);
    0x0001a224 mov r0, r5                            |     r0 = r5;
    0x0001a226 pop {r3, r4, r5, r6, r7, pc}          |     
                                                     | label_1:
    0x0001a228 mov.w r4, -1                          |     r4 = -1;
    0x0001a22c mvn r5, 0x15                          |     r5 = ~0x15;
    0x0001a230 b 0x1a1da                             |     goto label_0;
                                                     | }

[*] Function sprintf used 9 times libudev.so.1.7.2