[*] Binary protection state of systemd-fstab-generator

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


[*] Function fprintf tear down of systemd-fstab-generator

    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/systemd/system-generators/systemd-fstab-generator @ 0x1a68 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00001a68 ()                      | void fcn_00001a68 (int16_t arg1, int16_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00001a68 push {r4, r5, r6, lr}             |     
    0x00001a6a mov r4, r1                        |     r4 = r1;
                                                 |     if (r1 != 0) {
    0x00001a6c cbz r1, 0x1a74                    |         
    0x00001a6e ldrb r3, [r1]                     |         r3 = *(r1);
                                                 |         if (r3 != 0) {
    0x00001a70 cbnz r3, 0x1a80                   |             goto label_0;
                                                 |         }
    0x00001a72 mov r4, r3                        |         r4 = r3;
                                                 |     }
    0x00001a74 mov r5, r4                        |     r5 = r4;
                                                 |     do {
    0x00001a76 mov r0, r4                        |         r0 = r4;
    0x00001a78 blx 0x127c                        |         free (r0);
    0x00001a7a invalid                           |         
    0x00001a7e pop {r4, r5, r6, pc}              |         
                                                 | label_0:
    0x00001a80 ldr r1, [pc, 0x5c]                |         
    0x00001a82 mov r6, r0                        |         r6 = r0;
    0x00001a84 mov r0, r4                        |         r0 = r4;
    0x00001a86 add r1, pc                        |         r1 = 0x356a;
    0x00001a88 blx 0x1514                        |         r0 = fcn_00001514 ();
    0x00001a8c mov r5, r0                        |         r5 = r0;
                                                 |         if (r0 == 0) {
    0x00001a8e cbnz r0, 0x1a9c                   |             
    0x00001a90 mov r4, r0                        |             r4 = r0;
    0x00001a92 mov r0, r4                        |             r0 = r4;
    0x00001a94 blx 0x127c                        |             free (r0);
    0x00001a98 mov r0, r5                        |             r0 = r5;
    0x00001a9a pop {r4, r5, r6, pc}              |             
                                                 |         }
    0x00001a9c ldr r2, [pc, 0x44]                |         
    0x00001a9e mov r0, r4                        |         r0 = r4;
    0x00001aa0 ldr r1, [pc, 0x44]                |         
    0x00001aa2 add r2, pc                        |         r2 = 0x358a;
    0x00001aa4 add r1, pc                        |         r1 = 0x3590;
    0x00001aa6 blx 0x1258                        |         r0 = strreplace ();
    0x00001aaa mov r4, r0                        |         r4 = r0;
                                                 |         if (r0 != 0) {
    0x00001aac cbz r0, 0x1ac8                    |             
    0x00001aae ldr r2, [pc, 0x3c]                |             
    0x00001ab0 mov r3, r0                        |             r3 = r0;
    0x00001ab2 movs r1, 1                        |             r1 = 1;
    0x00001ab4 mov r0, r6                        |             r0 = r6;
    0x00001ab6 movs r5, 1                        |             r5 = 1;
    0x00001ab8 add r2, pc                        |             r2 = 0x35aa;
    0x00001aba blx 0x1354                        |             fprintf_chk ()
    0x00001abe mov r0, r4                        |             r0 = r4;
    0x00001ac0 blx 0x127c                        |             free (r0);
    0x00001ac4 mov r0, r5                        |             r0 = r5;
    0x00001ac6 pop {r4, r5, r6, pc}              |             
                                                 |         }
    0x00001ac8 ldr r1, [pc, 0x24]                |         
    0x00001aca movs r2, 0x4d                     |         r2 = 0x4d;
    0x00001acc ldr r3, [pc, 0x24]                |         
    0x00001ace movs r0, 3                        |         r0 = 3;
    0x00001ad0 add r1, pc                        |         r1 = 0x35c4;
    0x00001ad2 add r3, pc                        |         r3 = 0x35ca;
    0x00001ad4 adds r1, 7                        |         r1 += 7;
    0x00001ad6 blx 0x15c0                        |         fcn_000015c0 ();
    0x00001ad8 ldcl p6, c4, [r4, -0x14]!         |         __asm ("ldcl p6, c4, [r4, -0x14]!");
    0x00001adc b 0x1a76                          |         
                                                 |     } while (1);
                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/systemd/system-generators/systemd-fstab-generator @ 0x1af8 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00001af8 ()                              | void fcn_00001af8 (int16_t arg_80h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                         |     int16_t var_0h;
                                                         |     int32_t var_0h_2;
                                                         |     int32_t var_8h;
                                                         |     int32_t var_8h_2;
                                                         |     void * ptr;
                                                         |     int16_t var_18h;
                                                         |     int32_t var_18h_2;
                                                         |     void * s;
                                                         |     int16_t var_64h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x00001af8 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x00001afc mov r7, r0                                |     r7 = r0;
    0x00001afe mov r0, r2                                |     r0 = r2;
    0x00001b00 ldr r2, [pc, 0xfc]                        |     
    0x00001b02 mov r6, r1                                |     r6 = r1;
    0x00001b04 mov r1, r3                                |     r1 = r3;
    0x00001b06 ldr r3, [pc, 0xfc]                        |     r3 = *(0x1c06);
    0x00001b08 sub sp, 0x68                              |     
    0x00001b0a add r2, pc                                |     r2 = 0x370e;
    0x00001b0c movs r5, 0                                |     r5 = 0;
    0x00001b0e ldr.w r8, [sp, 0x80]                      |     r8 = *(arg_80h);
    0x00001b12 ldr r3, [r2, r3]                          |     
    0x00001b14 mov r2, r5                                |     r2 = r5;
    0x00001b16 ldr r3, [r3]                              |     r3 = *(0x370e);
    0x00001b18 str r3, [sp, 0x64]                        |     var_64h = r3;
    0x00001b1a mov.w r3, 0                               |     r3 = 0;
    0x00001b1e add r3, sp, 0x14                          |     r3 += ptr;
    0x00001b20 strd r5, r5, [sp]                         |     __asm ("strd r5, r5, [sp]");
    0x00001b24 str r5, [sp, 0x14]                        |     ptr = r5;
    0x00001b26 blx 0x1508                                |     r0 = fcn_00001508 ();
    0x00001b2a subs r4, r0, 0                            |     r4 = r0 - 0;
                                                         |     if (r4 < r0) {
    0x00001b2c blt 0x1b94                                |         goto label_2;
                                                         |     }
    0x00001b2e ldr r0, [sp, 0x14]                        |     r0 = ptr;
    0x00001b30 bne 0x1b56                                |     
                                                         |     while (1) {
                                                         | label_1:
    0x00001b32 movs r4, 0                                |         r4 = 0;
                                                         | label_0:
    0x00001b34 ldr r0, [sp, 0x14]                        |         r0 = ptr;
    0x00001b36 blx 0x127c                                |         free (r0);
    0x00001b3a ldr r2, [pc, 0xcc]                        |         
    0x00001b3c ldr r3, [pc, 0xc4]                        |         r3 = *(0x1c04);
    0x00001b3e add r2, pc                                |         r2 = 0x374c;
    0x00001b40 ldr r3, [r2, r3]                          |         r3 = *(0x374c);
    0x00001b42 ldr r2, [r3]                              |         r2 = *(0x374c);
    0x00001b44 ldr r3, [sp, 0x64]                        |         r3 = var_64h;
    0x00001b46 eors r2, r3                               |         r2 ^= r3;
    0x00001b48 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00001b4c bne 0x1bfc                                |             goto label_3;
                                                         |         }
    0x00001b4e mov r0, r4                                |         r0 = r4;
    0x00001b50 add sp, 0x68                              |         
    0x00001b52 pop.w {r4, r5, r6, r7, r8, pc}            |         
    0x00001b56 add r1, sp, 0x18                          |         r1 += var_18h;
    0x00001b58 blx 0x15b0                                |         r0 = fcn_000015b0 ();
    0x00001b5c cmp r0, 0                                 |         
                                                         |         if (r0 < 0) {
    0x00001b5e blt 0x1bd0                                |             goto label_4;
                                                         |         }
    0x00001b60 add r4, sp, 0x24                          |         r4 += s;
    0x00001b62 mov r1, r5                                |         r1 = r5;
    0x00001b64 movs r2, 0x40                             |         r2 = 0x40;
    0x00001b66 mov r0, r4                                |         r0 = r4;
    0x00001b68 blx 0x136c                                |         memset (r0, r1, r2);
    0x00001b6c vmov.i32 d16, 0                           |         __asm ("vmov.i32 d16, 0");
    0x00001b6e movs r0, r2                               |         r0 = r2;
    0x00001b70 mov r0, r4                                |         r0 = r4;
    0x00001b72 ldrd r2, r3, [sp, 0x18]                   |         __asm ("ldrd r2, r3, [var_18h]");
    0x00001b76 movs r1, 0x40                             |         r1 = 0x40;
    0x00001b78 vstr d16, [sp]                            |         __asm ("vstr d16, [sp]");
    0x00001b7c blx 0x1550                                |         fcn_00001550 ();
    0x00001b80 ldr r2, [pc, 0x88]                        |         
    0x00001b82 mov r4, r0                                |         r4 = r0;
    0x00001b84 mov r3, r8                                |         r3 = r8;
    0x00001b86 movs r1, 1                                |         r1 = 1;
    0x00001b88 mov r0, r7                                |         r0 = r7;
    0x00001b8a str r4, [sp]                              |         *(sp) = r4;
    0x00001b8c add r2, pc                                |         r2 = 0x379c;
    0x00001b8e blx 0x1354                                |         fprintf_chk ()
    0x00001b92 b 0x1b32                                  |         
                                                         |     }
                                                         | label_2:
    0x00001b94 blx 0x1360                                |     r0 = log_get_max_level ();
    0x00001b98 cmp r0, 3                                 |     
    0x00001b9a ittt le                                   |     
                                                         |     if (r0 <= 3) {
    0x00001b9c rsble r4, r4, 0                           |         __asm ("rsble r4, r4, 0");
                                                         |     }
                                                         |     if (r0 <= 3) {
    0x00001b9e bicle r4, r4, 0x40000000                  |         __asm ("bicle r4, r4, 0x40000000");
                                                         |     }
                                                         |     if (r0 <= 3) {
    0x00001ba2 rsbs r4, r4, 0                            |         r4 -= ;
                                                         |     }
    0x00001ba4 bgt 0x1bb0                                |     
                                                         |     while (1) {
    0x00001ba6 cmp r4, 0                                 |         
    0x00001ba8 it ge                                     |         
                                                         |         if (r4 < 0) {
    0x00001baa mvnge r4, 0x55                            |             r4 = ~0x55;
                                                         |         }
    0x00001bae b 0x1b34                                  |         goto label_0;
    0x00001bb0 ldr r2, [pc, 0x5c]                        |         
    0x00001bb2 mov r1, r4                                |         r1 = r4;
    0x00001bb4 ldr r5, [pc, 0x5c]                        |         
    0x00001bb6 movs r3, 0xcf                             |         r3 = 0xcf;
    0x00001bb8 ldr r0, [pc, 0x5c]                        |         
    0x00001bba add r2, pc                                |         r2 = 0x37ce;
    0x00001bbc add r5, pc                                |         r5 = 0x37d4;
    0x00001bbe adds r2, 7                                |         r2 += 7;
    0x00001bc0 add r0, pc                                |         r0 = 0x37dc;
    0x00001bc2 strd r0, r5, [sp]                         |         __asm ("strd r0, r5, [sp]");
    0x00001bc6 movs r0, 4                                |         r0 = 4;
    0x00001bc8 blx 0x13cc                                |         r0 = log_internal ();
    0x00001bcc mov r4, r0                                |         r4 = r0;
    0x00001bce b 0x1ba6                                  |         
                                                         |     }
                                                         | label_4:
    0x00001bd0 blx 0x1360                                |     r0 = log_get_max_level ();
    0x00001bd4 cmp r0, 3                                 |     
    0x00001bd6 ldr r3, [sp, 0x14]                        |     r3 = ptr;
                                                         |     if (r0 <= 3) {
    0x00001bd8 ble 0x1b32                                |         goto label_1;
                                                         |     }
    0x00001bda ldr r2, [pc, 0x40]                        |     
    0x00001bdc mov r1, r5                                |     r1 = r5;
    0x00001bde ldr r4, [pc, 0x40]                        |     
    0x00001be0 ldr r0, [pc, 0x40]                        |     
    0x00001be2 add r2, pc                                |     r2 = 0x3804;
    0x00001be4 strd r6, r3, [sp, 8]                      |     __asm ("strd r6, r3, [var_8h]");
    0x00001be6 str r2, [r0, 0x30]                        |     *((r0 + 0x30)) = r2;
    0x00001be8 add r4, pc                                |     r4 = 0x380e;
    0x00001bea movs r3, 0xd5                             |     r3 = 0xd5;
    0x00001bec add r0, pc                                |     r0 = 0x3814;
    0x00001bee adds r2, 7                                |     r2 += 7;
    0x00001bf0 strd r0, r4, [sp]                         |     __asm ("strd r0, r4, [sp]");
    0x00001bf2 lsls r0, r0, 0x10                         |     r0 <<= 0x10;
    0x00001bf4 movs r0, 4                                |     r0 = 4;
    0x00001bf6 blx 0x13cc                                |     log_internal ();
    0x00001bfa b 0x1b32                                  |     goto label_1;
                                                         | label_3:
    0x00001bfc blx 0x13fc                                |     stack_chk_fail ();
    0x00001c00 strh r6, [r1, r6]                         |     *((r1 + r6)) = r6;
    0x00001c02 movs r0, r0                               |     
    0x00001c04 lsls r4, r7, 4                            |     r4 = r7 << 4;
    0x00001c06 movs r0, r0                               |     
    0x00001c08 strh r2, [r3, r5]                         |     *((r3 + r5)) = r2;
    0x00001c0a movs r0, r0                               |     
    0x00001c0c cmp r1, 0xcc                              |     
    0x00001c0e movs r0, r0                               |     
    0x00001c10 cmp r0, 0xe6                              |     
    0x00001c12 movs r0, r0                               |     
    0x00001c14 cmp r1, 0x50                              |     
    0x00001c16 movs r0, r0                               |     
    0x00001c18 subs r0, 0xd0                             |     r0 -= 0xd0;
    0x00001c1a movs r0, r0                               |     
    0x00001c1c cmp r0, 0xbe                              |     
    0x00001c1e movs r0, r0                               |     
    0x00001c20 cmp r1, 0x40                              |     
    0x00001c22 movs r0, r0                               |     
    0x00001c24 subs r0, 0xa4                             |     r0 -= 0xa4;
    0x00001c26 movs r0, r0                               |     
                                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/systemd/system-generators/systemd-fstab-generator @ 0x1fa4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00001fa4 ()                              | void fcn_00001fa4 (uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                         |     int16_t var_0h_2;
                                                         |     int16_t var_4h_2;
                                                         |     int16_t var_8h;
                                                         |     int16_t var_ch;
                                                         |     int16_t var_10h_2;
                                                         |     int16_t var_14h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
                                                         |     if (? >= ?) {
    0x00001fa4 ldrbmi lr, [r0, sp, lsr 18]!              |         
                                                         |     }
    0x00001fa8 mov r4, r1                                |     r4 = r1;
    0x00001faa mov r1, r2                                |     r1 = r2;
    0x00001fac ldr r2, [pc, 0x1b0]                       |     
    0x00001fae mov sb, r3                                |     sb = r3;
    0x00001fb0 sub sp, 0x18                              |     
    0x00001fb2 ldr r3, [pc, 0x1b0]                       |     r3 = *(0x2166);
    0x00001fb4 movs r6, 0                                |     r6 = 0;
    0x00001fb6 add r2, pc                                |     r2 = 0x411a;
    0x00001fb8 ldr r3, [r2, r3]                          |     
    0x00001fba ldr r3, [r3]                              |     r3 = *(0x411a);
    0x00001fbc str r3, [sp, 0x14]                        |     var_14h = r3;
    0x00001fbe mov.w r3, 0                               |     r3 = 0;
    0x00001fc2 strd r6, r6, [sp, 8]                      |     __asm ("strd r6, r6, [var_ch]");
    0x00001fc6 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00001fc8 beq 0x20c2                                |         goto label_3;
                                                         |     }
    0x00001fca cmp r4, 0                                 |     
                                                         |     if (r4 == 0) {
    0x00001fcc beq.w 0x210e                              |         goto label_4;
                                                         |     }
    0x00001fd0 add r3, sp, 8                             |     r3 += var_8h;
    0x00001fd2 mov r5, r0                                |     r5 = r0;
    0x00001fd4 str r3, [sp]                              |     *(sp) = r3;
    0x00001fd6 mov r0, r4                                |     r0 = r4;
    0x00001fd8 mov r3, r6                                |     r3 = r6;
    0x00001fda mov r2, r6                                |     r2 = r6;
    0x00001fdc str r6, [sp, 4]                           |     var_4h_2 = r6;
    0x00001fde blx 0x1508                                |     r0 = fcn_00001508 ();
    0x00001fe2 subs r4, r0, 0                            |     r4 = r0 - 0;
                                                         |     if (r4 < r0) {
    0x00001fe4 blt 0x2082                                |         goto label_5;
                                                         |     }
                                                         |     if (r4 == r0) {
    0x00001fe6 beq 0x204a                                |         goto label_6;
                                                         |     }
    0x00001fe8 ldr r4, [sp, 8]                           |     r4 = var_8h;
                                                         |     if (r4 == 0) {
    0x00001fea cbz r4, 0x2022                            |         goto label_7;
                                                         |     }
    0x00001fec ldr.w r8, [pc, 0x178]                     |     
    0x00001ff0 subs r4, 4                                |     r4 -= 4;
    0x00001ff2 ldr r7, [pc, 0x178]                       |     
    0x00001ff4 add r6, sp, 0x10                          |     r6 += var_10h_2;
    0x00001ff6 add r8, pc                                |     r8 = 0x4162;
    0x00001ff8 add r7, pc                                |     r7 = 0x416a;
    0x00001ffa b 0x201a                                  |     
                                                         |     while (r0 != 0) {
    0x00001ffc mov r3, r8                                |         r3 = r8;
    0x00001ffe movs r2, 0                                |         r2 = 0;
    0x00002000 mov r1, r7                                |         r1 = r7;
    0x00002002 str r6, [sp]                              |         *(sp) = r6;
    0x00002004 blx 0x1498                                |         r0 = unit_name_mangle_with_suffix ();
    0x00002008 subs.w sl, r0, 0                          |         sl = r0 - 0;
                                                         |         if (sl < r0) {
    0x0000200c blt 0x20d6                                |             goto label_8;
                                                         |         }
    0x0000200e ldr r1, [sp, 0x10]                        |         r1 = var_10h_2;
    0x00002010 add r0, sp, 0xc                           |         r0 += var_ch;
    0x00002012 blx 0x13d8                                |         r0 = strv_consume ();
    0x00002016 cmp r0, 0                                 |         
                                                         |         if (r0 < 0) {
    0x00002018 blt 0x20f6                                |             goto label_9;
                                                         |         }
    0x0000201a ldr r0, [r4, 4]!                          |         r0 = *((r4 += 4));
    0x0000201e cmp r0, 0                                 |         
    0x00002020 bne 0x1ffc                                |         
                                                         |     }
                                                         | label_7:
    0x00002022 ldr r0, [sp, 0xc]                         |     r0 = var_ch;
                                                         |     if (r0 != 0) {
    0x00002024 cbz r0, 0x204a                            |         
    0x00002026 ldr r1, [pc, 0x148]                       |         
    0x00002028 movs r3, 0                                |         r3 = 0;
    0x0000202a mov r2, r3                                |         r2 = r3;
    0x0000202c add r1, pc                                |         r1 = 0x41a2;
    0x0000202e blx 0x12c4                                |         r0 = strv_join_full ();
    0x00002032 mov r6, r0                                |         r6 = r0;
    0x00002034 cmp r0, 0                                 |         
                                                         |         if (r0 == 0) {
    0x00002036 beq.w 0x2144                              |             goto label_10;
                                                         |         }
    0x0000203a mov r3, r0                                |         r3 = r0;
    0x0000203c mov r2, sb                                |         r2 = sb;
    0x0000203e movs r1, 1                                |         r1 = 1;
    0x00002040 mov r0, r5                                |         r0 = r5;
    0x00002042 movs r4, 0                                |         r4 = 0;
    0x00002044 blx 0x1354                                |         fprintf_chk ()
    0x00002048 b 0x204e                                  |         
                                                         |     } else {
                                                         | label_6:
    0x0000204a movs r6, 0                                |         r6 = 0;
    0x0000204c mov r4, r6                                |         r4 = r6;
                                                         |     }
                                                         |     do {
                                                         | label_1:
    0x0000204e mov r0, r6                                |         r0 = r6;
    0x00002050 blx 0x127c                                |         free (r0);
    0x00002054 ldr r0, [sp, 0xc]                         |         r0 = var_ch;
                                                         |         if (r0 != 0) {
    0x00002056 cbz r0, 0x205e                            |             
    0x00002058 blx 0x155c                                |             fcn_0000155c ();
    0x0000205c str r0, [sp, 0xc]                         |             var_ch = r0;
                                                         |         }
    0x0000205e ldr r0, [sp, 8]                           |         r0 = var_8h;
                                                         |         if (r0 != 0) {
    0x00002060 cbz r0, 0x2066                            |             
    0x00002062 blx 0x155c                                |             fcn_0000155c ();
                                                         |         }
    0x00002066 ldr r2, [pc, 0x10c]                       |         
    0x00002068 ldr r3, [pc, 0xf8]                        |         r3 = *(0x2164);
    0x0000206a add r2, pc                                |         r2 = 0x41e4;
    0x0000206c ldr r3, [r2, r3]                          |         r3 = *(0x41e4);
    0x0000206e ldr r2, [r3]                              |         r2 = *(0x41e4);
    0x00002070 ldr r3, [sp, 0x14]                        |         r3 = var_14h;
    0x00002072 eors r2, r3                               |         r2 ^= r3;
    0x00002074 mov.w r3, 0                               |         r3 = 0;
    0x00002076 lsls r0, r0, 0xc                          |         r0 <<= 0xc;
                                                         |         if (r0 != r0) {
    0x00002078 bne 0x215c                                |             goto label_11;
                                                         |         }
    0x0000207a mov r0, r4                                |         r0 = r4;
    0x0000207c add sp, 0x18                              |         
    0x0000207e pop.w {r4, r5, r6, r7, r8, sb, sl, pc}    |         
                                                         | label_5:
    0x00002082 blx 0x1360                                |         r0 = log_get_max_level ();
    0x00002086 cmp r0, 3                                 |         
    0x00002088 ittt le                                   |         
                                                         |         if (r0 <= 3) {
    0x0000208a rsble r0, r4, 0                           |             __asm ("rsble r0, r4, 0");
                                                         |         }
                                                         |         if (r0 <= 3) {
    0x0000208c bicle r0, r0, 0x40000000                  |             __asm ("bicle r0, r0, 0x40000000");
                                                         |         }
                                                         |         if (r0 <= 3) {
    0x00002090 rsbs r4, r0, 0                            |             r4 = r0 - ;
                                                         |         }
                                                         |         if (r0 > 3) {
    0x00002092 bgt 0x20a2                                |             goto label_12;
                                                         |         }
                                                         | label_0:
    0x00002094 cmp r4, 0                                 |         
    0x00002096 mov.w r6, 0                               |         r6 = 0;
    0x0000209a it ge                                     |         
                                                         |         if (r4 < 0) {
    0x0000209c mvnge r4, 0x55                            |             r4 = ~0x55;
                                                         |         }
    0x0000209e lsls r5, r2, 0x11                         |         r5 = r2 << 0x11;
    0x000020a0 b 0x204e                                  |         
                                                         |     } while (1);
                                                         | label_12:
    0x000020a2 ldr r2, [pc, 0xd4]                        |     
    0x000020a4 mov r1, r4                                |     r1 = r4;
    0x000020a6 ldr r5, [pc, 0xd4]                        |     
    0x000020a8 movs r3, 0xf7                             |     r3 = 0xf7;
    0x000020aa ldr r0, [pc, 0xd4]                        |     
    0x000020ac add r2, pc                                |     r2 = 0x422a;
    0x000020ae add r5, pc                                |     r5 = 0x4230;
    0x000020b0 adds r2, 7                                |     r2 += 7;
    0x000020b2 add r0, pc                                |     r0 = 0x4238;
    0x000020b4 strd r0, r5, [sp]                         |     __asm ("strd r0, r5, [sp]");
    0x000020b8 movs r0, 4                                |     r0 = 4;
    0x000020ba blx 0x13cc                                |     r0 = log_internal ();
    0x000020be mov r4, r0                                |     r4 = r0;
    0x000020c0 b 0x2094                                  |     goto label_0;
                                                         | label_3:
    0x000020c2 ldr r1, [pc, 0xc0]                        |     
    0x000020c4 movs r2, 0xf2                             |     r2 = 0xf2;
    0x000020c6 ldr r3, [pc, 0xc0]                        |     
    0x000020c8 ldr r0, [pc, 0xc0]                        |     
    0x000020ca add r1, pc                                |     r1 = 0x4254;
    0x000020cc add r3, pc                                |     r3 = 0x425a;
    0x000020ce adds r1, 7                                |     r1 += 7;
    0x000020d0 add r0, pc                                |     r0 = 0x4260;
    0x000020d2 blx 0x1270                                |     log_assert_failed ();
                                                         | label_8:
    0x000020d6 blx 0x1360                                |     r0 = log_get_max_level ();
    0x000020da cmp r0, 2                                 |     
    0x000020dc ittt le                                   |     
                                                         |     if (r0 <= 2) {
    0x000020de rsble r0, sl, 0                           |         __asm ("rsble r0, sl, 0");
                                                         |     }
                                                         |     if (r0 <= 2) {
    0x000020e2 bicle r0, r0, 0x40000000                  |         __asm ("bicle r0, r0, 0x40000000");
                                                         |     }
                                                         |     if (r0 <= 2) {
    0x000020e6 rsbs r4, r0, 0                            |         r4 = r0 - ;
                                                         |     }
                                                         |     if (r0 > 2) {
    0x000020e8 bgt 0x2122                                |         goto label_13;
                                                         |     }
                                                         | label_2:
    0x000020ea cmp r4, 0                                 |     
    0x000020ec it ge                                     |     
    0x000020ee mvnge r4, 0x55                            |     r4 = ~0x55;
                                                         |     while (1) {
    0x000020f2 movs r6, 0                                |         r6 = 0;
    0x000020f4 b 0x204e                                  |         goto label_1;
                                                         | label_9:
    0x000020f6 ldr r1, [pc, 0x98]                        |         
    0x000020f8 mov.w r2, 0x104                           |         r2 = 0x104;
    0x000020fc ldr r3, [pc, 0x94]                        |         
    0x000020fe movs r0, 3                                |         r0 = 3;
    0x00002100 add r1, pc                                |         r1 = 0x4296;
    0x00002102 add r3, pc                                |         r3 = 0x429a;
    0x00002104 adds r1, 7                                |         r1 += 7;
    0x00002106 blx 0x15c0                                |         r0 = fcn_000015c0 ();
    0x0000210a mov r4, r0                                |         r4 = r0;
    0x0000210c b 0x20f2                                  |         
                                                         |     }
                                                         | label_4:
    0x0000210e ldr r1, [pc, 0x88]                        |     
    0x00002110 movs r2, 0xf3                             |     r2 = 0xf3;
    0x00002112 ldr r3, [pc, 0x88]                        |     
    0x00002114 ldr r0, [pc, 0x88]                        |     
    0x00002116 add r1, pc                                |     r1 = 0x42b4;
    0x00002118 add r3, pc                                |     r3 = 0x42ba;
    0x0000211a adds r1, 7                                |     r1 += 7;
    0x0000211c add r0, pc                                |     r0 = 0x42c0;
    0x0000211e blx 0x1270                                |     log_assert_failed ();
                                                         | label_13:
    0x00002122 ldr r2, [pc, 0x80]                        |     
    0x00002124 mov.w r3, 0x100                           |     r3 = 0x100;
    0x00002128 ldr r4, [pc, 0x7c]                        |     
    0x0000212a mov r1, sl                                |     r1 = sl;
    0x0000212c ldr r0, [pc, 0x7c]                        |     
    0x0000212e add r2, pc                                |     r2 = 0x42d8;
    0x00002130 add r4, pc                                |     r4 = 0x42dc;
    0x00002132 adds r2, 7                                |     r2 += 7;
    0x00002134 add r0, pc                                |     r0 = 0x42e4;
    0x00002136 strd r0, r4, [sp]                         |     __asm ("strd r0, r4, [sp]");
    0x00002138 lsls r0, r0, 0x10                         |     r0 <<= 0x10;
    0x0000213a movs r0, 3                                |     r0 = 3;
    0x0000213c blx 0x13cc                                |     r0 = log_internal ();
    0x00002140 mov r4, r0                                |     r4 = r0;
    0x00002142 b 0x20ea                                  |     goto label_2;
                                                         | label_10:
    0x00002144 ldr r1, [pc, 0x68]                        |     
    0x00002146 mov.w r2, 0x10a                           |     r2 = 0x10a;
    0x0000214a ldr r3, [pc, 0x68]                        |     
    0x0000214c movs r0, 3                                |     r0 = 3;
    0x0000214e add r1, pc                                |     r1 = 0x4302;
    0x00002150 add r3, pc                                |     r3 = 0x430a;
    0x00002152 adds r1, 7                                |     r1 += 7;
    0x00002154 blx 0x15c0                                |     r0 = fcn_000015c0 ();
    0x00002158 mov r4, r0                                |     r4 = r0;
    0x0000215a b 0x204e                                  |     goto label_1;
                                                         | label_11:
    0x0000215c blx 0x13fc                                |     stack_chk_fail ();
    0x00002160 ldr r6, [pc, 0x388]                       |     r6 = *(0x24ec);
    0x00002162 movs r0, r0                               |     
    0x00002164 lsls r4, r7, 4                            |     r4 = r7 << 4;
    0x00002166 movs r0, r0                               |     
    0x00002168 movs r6, 0xd6                             |     r6 = 0xd6;
    0x0000216a movs r0, r0                               |     
    0x0000216c movs r6, 0xdc                             |     r6 = 0xdc;
    0x0000216e movs r0, r0                               |     
    0x00002170 movs r6, 0xdc                             |     r6 = 0xdc;
    0x00002172 movs r0, r0                               |     
    0x00002174 ldr r6, [pc, 0xb8]                        |     r6 = *(0x2230);
    0x00002176 movs r0, r0                               |     
    0x00002178 movs r3, 0xf4                             |     r3 = 0xf4;
    0x0000217a movs r0, r0                               |     
    0x0000217c movs r4, 0x5e                             |     r4 = 0x5e;
    0x0000217e movs r0, r0                               |     
    0x00002180 adds r4, 0x16                             |     r4 += 0x16;
    0x00002182 movs r0, r0                               |     
    0x00002184 movs r3, 0xd6                             |     r3 = 0xd6;
    0x00002186 movs r0, r0                               |     
    0x00002188 adds r4, 0x10                             |     r4 += 0x10;
    0x0000218a movs r0, r0                               |     
    0x0000218c movs r5, 0xf0                             |     r5 = 0xf0;
    0x0000218e movs r0, r0                               |     
    0x00002190 movs r3, 0xa0                             |     r3 = 0xa0;
    0x00002192 movs r0, r0                               |     
    0x00002194 adds r3, 0xc6                             |     r3 += 0xc6;
    0x00002196 movs r0, r0                               |     
    0x00002198 movs r3, 0x8a                             |     r3 = 0x8a;
    0x0000219a movs r0, r0                               |     
    0x0000219c adds r3, 0xc4                             |     r3 += 0xc4;
    0x0000219e movs r0, r0                               |     
    0x000021a0 movs r5, 0xa8                             |     r5 = 0xa8;
    0x000021a2 movs r0, r0                               |     
    0x000021a4 movs r3, 0x72                             |     r3 = 0x72;
    0x000021a6 movs r0, r0                               |     
    0x000021a8 movs r5, 0xb4                             |     r5 = 0xb4;
    0x000021aa movs r0, r0                               |     
    0x000021ac adds r3, 0x94                             |     r3 += 0x94;
    0x000021ae movs r0, r0                               |     
    0x000021b0 movs r3, 0x52                             |     r3 = 0x52;
    0x000021b2 movs r0, r0                               |     
    0x000021b4 adds r3, 0x78                             |     r3 += 0x78;
    0x000021b6 movs r0, r0                               |     
                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/systemd/system-generators/systemd-fstab-generator @ 0x21b8 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) fcn.000021b8 ()                                  | void fcn_000021b8 (int16_t arg_0h, int16_t arg1, uint32_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_8h_2;
                                                             |     int16_t var_10h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x000021b8 svcmi 0xf0e92d                                |     __asm ("svcmi 0xf0e92d");
    0x000021bc sub sp, 0x5c                                  |     
    0x000021be mov r6, r2                                    |     r6 = r2;
    0x000021c0 add r7, sp, 0x10                              |     r7 += var_10h;
    0x000021c2 ldr.w r2, [pc, 0x9a8]                         |     
    0x000021c6 str r3, [r7, 0xc]                             |     *((r7 + 0xc)) = r3;
    0x000021c8 ldr.w r3, [pc, 0x9a4]                         |     r3 = *(0x2b70);
    0x000021cc add r2, pc                                    |     r2 = 0x4d3e;
    0x000021ce ldrd sl, fp, [r7, 0x70]                       |     __asm ("ldrd sl, fp, [r7, 0x70]");
    0x000021d2 ldr r3, [r2, r3]                              |     
    0x000021d4 ldr r3, [r3]                                  |     r3 = *(0x4d3e);
    0x000021d6 str r3, [r7, 0x44]                            |     *((r7 + 0x44)) = r3;
    0x000021d8 mov.w r3, 0                                   |     r3 = 0;
    0x000021dc movs r3, 0                                    |     r3 = 0;
    0x000021de strd r3, r3, [r7, 0x18]                       |     __asm ("strd r3, r3, [r7, 0x18]");
    0x000021e2 strd r3, r3, [r7, 0x20]                       |     __asm ("strd r3, r3, [r7, 0x20]");
    0x000021e4 adds r3, 8                                    |     r3 += 8;
    0x000021e6 strd r3, r3, [r7, 0x28]                       |     __asm ("strd r3, r3, [r7, 0x28]");
    0x000021ea ldr.w r3, [r7, 0x80]                          |     r3 = *((r7 + 0x80));
    0x000021ee str r3, [r7, 0x10]                            |     *((r7 + 0x10)) = r3;
    0x000021f0 ldr.w r3, [r7, 0x84]                          |     r3 = *((r7 + 0x84));
    0x000021f4 str r3, [r7, 0x14]                            |     *((r7 + 0x14)) = r3;
    0x000021f6 cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x000021f8 beq 0x22ac                                    |         goto label_25;
                                                             |     }
    0x000021fa cmp.w fp, 0                                   |     
                                                             |     if (fp == 0) {
    0x000021fe beq 0x22c8                                    |         goto label_26;
                                                             |     }
    0x00002200 mov r8, r0                                    |     r8 = r0;
    0x00002202 mov r5, r1                                    |     r5 = r1;
    0x00002204 cmp.w sl, 0                                   |     
    0x00002208 bne 0x2278                                    |     
                                                             |     while (r0 != 0) {
    0x0000220a movs r1, 0x2f                                 |         r1 = 0x2f;
    0x0000220c mov r0, r6                                    |         r0 = r6;
    0x0000220e blx 0x158c                                    |         r0 = fcn_0000158c ();
    0x00002212 mov sb, r0                                    |         sb = r0;
    0x00002214 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00002216 bne 0x2298                                    |             goto label_27;
                                                             |         }
    0x00002218 blx 0x1360                                    |         r0 = log_get_max_level ();
    0x0000221c cmp r0, 3                                     |         
    0x0000221e itt le                                        |         
                                                             |         if (r0 > 3) {
    0x00002220 movle r0, sb                                  |             r0 = sb;
                                                             |         }
                                                             |         if (r0 > 3) {
    0x00002222 movle r4, sb                                  |             r4 = sb;
                                                             |         }
                                                             |         if (r0 > 3) {
    0x00002224 bgt 0x22f4                                    |             goto label_28;
                                                             |         }
                                                             | label_2:
    0x00002226 blx 0x14cc                                    |         fcn_000014cc ();
    0x0000222a ldr r0, [r7, 0x28]                            |         r0 = *((r7 + 0x28));
                                                             |         if (r0 != 0) {
    0x0000222c cbz r0, 0x2234                                |             
                                                             | label_0:
    0x0000222e blx 0x155c                                    |             fcn_0000155c ();
    0x00002232 str r0, [r7, 0x28]                            |             *((r7 + 0x28)) = r0;
                                                             |         }
                                                             | label_1:
    0x00002234 ldr r0, [r7, 0x24]                            |         r0 = *((r7 + 0x24));
                                                             |         if (r0 != 0) {
    0x00002236 cbz r0, 0x223c                                |             
    0x00002238 blx 0x155c                                    |             fcn_0000155c ();
                                                             |         }
    0x0000223c mov r0, sb                                    |         r0 = sb;
    0x0000223e blx 0x127c                                    |         free (r0);
    0x00002242 ldr r0, [r7, 0x20]                            |         r0 = *((r7 + 0x20));
    0x00002244 blx 0x127c                                    |         free (r0);
    0x00002248 ldr r0, [r7, 0x1c]                            |         r0 = *((r7 + 0x1c));
    0x0000224a blx 0x127c                                    |         free (r0);
    0x0000224e ldr r0, [r7, 0x18]                            |         r0 = *((r7 + 0x18));
    0x00002250 blx 0x127c                                    |         free (r0);
    0x00002254 ldr.w r2, [pc, 0x91c]                         |         
    0x00002258 ldr.w r3, [pc, 0x914]                         |         r3 = *(0x2b70);
    0x0000225c add r2, pc                                    |         r2 = 0x4dd4;
    0x0000225e ldr r3, [r2, r3]                              |         r3 = *(0x4dd4);
    0x00002260 ldr r2, [r3]                                  |         r2 = *(0x4dd4);
    0x00002262 ldr r3, [r7, 0x44]                            |         r3 = *((r7 + 0x44));
    0x00002264 eors r2, r3                                   |         r2 ^= r3;
    0x00002266 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0000226a bne.w 0x28ea                                  |             goto label_29;
                                                             |         }
    0x0000226e mov r0, r4                                    |         r0 = r4;
    0x00002270 adds r7, 0x4c                                 |         r7 += 0x4c;
    0x00002272 mov sp, r7                                    |         
    0x00002274 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}    |         
    0x00002278 ldr.w r1, [pc, 0x8fc]                         |         
    0x0000227c mov r0, sl                                    |         r0 = sl;
    0x0000227e add r1, pc                                    |         r1 = 0x4dfa;
    0x00002280 blx 0x1514                                    |         r0 = fcn_00001514 ();
    0x00002284 mov r4, r0                                    |         r4 = r0;
    0x00002286 mov sb, r0                                    |         sb = r0;
    0x00002288 cmp r0, 0                                     |         
    0x0000228a bne 0x220a                                    |         
                                                             |     }
    0x0000228c blx 0x14cc                                    |     fcn_000014cc ();
    0x00002290 ldr r0, [r7, 0x28]                            |     r0 = *((r7 + 0x28));
    0x00002292 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00002294 bne 0x222e                                    |         goto label_0;
                                                             |     }
    0x00002296 b 0x2234                                      |     goto label_1;
                                                             | label_27:
    0x00002298 mov r0, r6                                    |     r0 = r6;
    0x0000229a blx 0x1568                                    |     r0 = fcn_00001568 ();
    0x0000229e mov sb, r0                                    |     sb = r0;
                                                             |     if (r0 != 0) {
    0x000022a0 cbz r0, 0x22e4                                |         
    0x000022a2 mov.w sb, 0                                   |         sb = 0;
    0x000022a6 ldr r0, [r7, 0x2c]                            |         r0 = *((r7 + 0x2c));
    0x000022a8 mov r4, sb                                    |         r4 = sb;
    0x000022aa b 0x2226                                      |         goto label_2;
                                                             | label_25:
    0x000022ac ldr.w r1, [pc, 0x8cc]                         |         
    0x000022b0 mov.w r2, 0x16a                               |         r2 = 0x16a;
    0x000022b4 ldr.w r3, [pc, 0x8c8]                         |         
    0x000022b8 ldr.w r0, [pc, 0x8c8]                         |         
    0x000022bc add r1, pc                                    |         r1 = 0x4e3c;
    0x000022be add r3, pc                                    |         r3 = 0x4e42;
    0x000022c0 adds r1, 7                                    |         r1 += 7;
    0x000022c2 add r0, pc                                    |         r0 = 0x4e4a;
    0x000022c4 blx 0x1270                                    |         log_assert_failed ();
                                                             | label_26:
    0x000022c8 ldr.w r1, [pc, 0x8bc]                         |         
    0x000022cc mov.w r2, 0x16c                               |         r2 = 0x16c;
    0x000022d0 ldr.w r3, [pc, 0x8b8]                         |         
    0x000022d4 ldr.w r0, [pc, 0x8b8]                         |         
    0x000022d8 add r1, pc                                    |         r1 = 0x4e64;
    0x000022da add r3, pc                                    |         r3 = 0x4e6a;
    0x000022dc adds r1, 7                                    |         r1 += 7;
    0x000022de add r0, pc                                    |         r0 = 0x4e72;
    0x000022e0 blx 0x1270                                    |         log_assert_failed ();
                                                             |     }
    0x000022e4 mov r0, r6                                    |     r0 = r6;
    0x000022e6 blx 0x1480                                    |     r0 = mount_point_ignore ();
    0x000022ea mov r3, r0                                    |     r3 = r0;
                                                             |     if (r0 != 0) {
    0x000022ec cbz r0, 0x2320                                |         
    0x000022ee ldr r0, [r7, 0x2c]                            |         r0 = *((r7 + 0x2c));
    0x000022f0 mov r4, sb                                    |         r4 = sb;
    0x000022f2 b 0x2226                                      |         goto label_2;
                                                             | label_28:
    0x000022f4 ldr.w r2, [pc, 0x89c]                         |         
    0x000022f8 mov.w r3, 0x174                               |         r3 = 0x174;
    0x000022fc ldr.w r1, [pc, 0x898]                         |         
    0x00002300 movs r0, 4                                    |         r0 = 4;
    0x00002302 ldr.w r4, [pc, 0x898]                         |         
    0x00002306 add r2, pc                                    |         r2 = 0x4e9e;
    0x00002308 str r6, [sp, 8]                               |         var_8h_2 = r6;
    0x0000230a add r1, pc                                    |         r1 = 0x4ea6;
    0x0000230c adds r2, 7                                    |         r2 += 7;
    0x0000230e add r4, pc                                    |         r4 = "Canonicalized what=%s where=%s to %s";
    0x00002310 str r1, [sp, 4]                               |         var_4h = r1;
    0x00002312 str r4, [sp]                                  |         *(sp) = r4;
    0x00002314 mov r1, sb                                    |         r1 = sb;
    0x00002316 blx 0x13cc                                    |         log_internal ();
    0x0000231a mov r4, sb                                    |         r4 = sb;
    0x0000231c ldr r0, [r7, 0x2c]                            |         r0 = *((r7 + 0x2c));
    0x0000231e b 0x2226                                      |         goto label_2;
                                                             |     }
    0x00002320 ldr.w sb, [pc, 0x87c]                         |     
    0x00002324 add.w r2, r7, 0x24                            |     r2 = r7 + 0x24;
    0x00002328 str r0, [sp, 4]                               |     var_4h = r0;
    0x0000232a str r2, [sp]                                  |     *(sp) = r2;
    0x0000232c mov r2, r0                                    |     r2 = r0;
    0x0000232e add sb, pc                                    |     sb = 0x4ed2;
    0x00002330 str r0, [r7, 8]                               |     *((r7 + 8)) = r0;
    0x00002332 mov r1, sb                                    |     r1 = sb;
    0x00002334 mov r0, fp                                    |     r0 = fp;
    0x00002336 blx 0x1508                                    |     r0 = fcn_00001508 ();
    0x0000233a subs r4, r0, 0                                |     r4 = r0 - 0;
    0x0000233c ldr r3, [r7, 8]                               |     r3 = *((r7 + 8));
                                                             |     if (r4 < r0) {
    0x0000233e blt.w 0x26ba                                  |         goto label_30;
                                                             |     }
    0x00002342 add.w r2, r7, 0x28                            |     r2 = r7 + 0x28;
    0x00002346 str r3, [sp, 4]                               |     var_4h = r3;
    0x00002348 str r2, [sp]                                  |     *(sp) = r2;
    0x0000234a add.w r1, sb, 0x18                            |     r1 = sb + 0x18;
    0x0000234e mov r2, r3                                    |     r2 = r3;
    0x00002350 str r3, [r7, 8]                               |     *((r7 + 8)) = r3;
    0x00002352 mov r0, fp                                    |     r0 = fp;
    0x00002354 blx 0x1508                                    |     r0 = fcn_00001508 ();
    0x00002358 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x0000235a ldr r3, [r7, 8]                               |     r3 = *((r7 + 8));
                                                             |     if (r4 < r0) {
    0x0000235c blt.w 0x26ba                                  |         goto label_30;
                                                             |     }
    0x00002360 ldr.w r1, [pc, 0x840]                         |     
    0x00002364 mov r0, r6                                    |     r0 = r6;
    0x00002366 add r1, pc                                    |     r1 = 0x4f0e;
    0x00002368 blx 0x133c                                    |     r0 = path_compare ();
    0x0000236c mov r4, r0                                    |     r4 = r0;
    0x0000236e cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00002370 bne 0x23f8                                    |         
    0x00002372 ldr r3, [r7, 0x7c]                            |         r3 = *((r7 + 0x7c));
    0x00002374 lsls r0, r3, 0x1f                             |         r0 = r3 << 0x1f;
                                                             |         if (r0 >= r3) {
    0x00002376 bpl.w 0x270e                                  |             goto label_31;
                                                             |         }
    0x0000237a blx 0x1360                                    |         r0 = log_get_max_level ();
    0x0000237e cmp r0, 3                                     |         
                                                             |         if (r0 > 3) {
    0x00002380 bgt.w 0x26ea                                  |             goto label_32;
                                                             |         }
    0x00002384 ldr r3, [r7, 0x7c]                            |         r3 = *((r7 + 0x7c));
    0x00002386 lsls r3, r3, 0x1e                             |         r3 <<= 0x1e;
                                                             |         if (r3 >= r3) {
    0x00002388 bmi 0x23bc                                    |             
                                                             | label_3:
    0x0000238a ldr r3, [r7, 0x7c]                            |             r3 = *((r7 + 0x7c));
    0x0000238c lsls r2, r3, 0x1d                             |             r2 = r3 << 0x1d;
                                                             |             if (r2 >= r3) {
    0x0000238e bpl 0x23bc                                    |                 goto label_4;
                                                             |             }
    0x00002390 blx 0x1360                                    |             r0 = log_get_max_level ();
    0x00002394 cmp r0, 3                                     |             
                                                             |             if (r0 <= 3) {
    0x00002396 ble 0x23bc                                    |                 goto label_4;
                                                             |             }
    0x00002398 ldr.w r3, [pc, 0x80c]                         |             
    0x0000239c movs r1, 0                                    |             r1 = 0;
    0x0000239e ldr.w r2, [pc, 0x80c]                         |             
    0x000023a0 cmp r0, 0xc                                   |             
    0x000023a2 movs r0, 4                                    |             r0 = 4;
    0x000023a4 add r3, pc                                    |             r3 = 0x4f50;
    0x000023a6 str r3, [sp, 4]                               |             var_4h = r3;
    0x000023a8 add r2, pc                                    |             r2 = 0x4f5a;
    0x000023aa ldr.w r3, [pc, 0x804]                         |             
    0x000023ae adds r2, 7                                    |             r2 += 7;
    0x000023b0 add r3, pc                                    |             r3 = 0x4f66;
    0x000023b2 str r3, [sp]                                  |             *(sp) = r3;
    0x000023b4 mov.w r3, 0x18a                               |             r3 = 0x18a;
    0x000023b8 blx 0x13cc                                    |             log_internal ();
                                                             |         }
                                                             | label_4:
    0x000023bc ldr r3, [r7, 0x24]                            |         r3 = *((r7 + 0x24));
                                                             |         if (r3 != 0) {
    0x000023be cbz r3, 0x23ce                                |             
    0x000023c0 ldr r3, [r3]                                  |             r3 = *(r3);
                                                             |             if (r3 == 0) {
    0x000023c2 cbz r3, 0x23ce                                |                 goto label_8;
                                                             |             }
    0x000023c4 blx 0x1360                                    |             r0 = log_get_max_level ();
    0x000023c8 cmp r0, 3                                     |             
                                                             |             if (r0 > 3) {
    0x000023ca bgt.w 0x279e                                  |                 goto label_33;
                                                             |             }
                                                             |         }
                                                             | label_8:
    0x000023ce ldr r4, [r7, 0x28]                            |         r4 = *((r7 + 0x28));
                                                             |         if (r4 != 0) {
    0x000023d0 cbz r4, 0x23e0                                |             
    0x000023d2 ldr r3, [r4]                                  |             r3 = *(r4);
                                                             |             if (r3 == 0) {
    0x000023d4 cbz r3, 0x23e0                                |                 goto label_7;
                                                             |             }
    0x000023d6 blx 0x1360                                    |             r0 = log_get_max_level ();
    0x000023da cmp r0, 3                                     |             
                                                             |             if (r0 > 3) {
    0x000023dc bgt.w 0x2776                                  |                 goto label_34;
                                                             |             }
                                                             |         }
                                                             | label_7:
    0x000023e0 ldr r3, [r7, 0x7c]                            |         r3 = *((r7 + 0x7c));
    0x000023e2 mov r0, r4                                    |         r0 = r4;
    0x000023e4 bic r3, r3, 7                                 |         r3 = BIT_MASK (r3, 7);
    0x000023e6 lsls r7, r0, 0xc                              |         r7 = r0 << 0xc;
    0x000023e8 str r3, [r7, 0x7c]                            |         *((r7 + 0x7c)) = r3;
    0x000023ea blx 0x155c                                    |         fcn_0000155c ();
    0x000023ee str r0, [r7, 0x28]                            |         *((r7 + 0x28)) = r0;
    0x000023f0 ldr r0, [r7, 0x24]                            |         r0 = *((r7 + 0x24));
    0x000023f2 blx 0x155c                                    |         fcn_0000155c ();
    0x000023f4 ldm.w r4!, {r3, r4, r5, r6, sb, sp, lr}       |         r3 = *(r4!);
                                                             |         r4 = *((r4! + 4));
                                                             |         r5 = *((r4! + 8));
                                                             |         r6 = *((r4! + 12));
                                                             |         sb = *((r4! + 16));
                                                             |         sp = *((r4! + 20));
                                                             |         lr = *((r4! + 24));
                                                             |     }
    0x000023f8 ldr.w r1, [pc, 0x7b8]                         |     
    0x000023fc add.w r2, r7, 0x18                            |     r2 = r7 + 0x18;
    0x00002400 mov r0, r6                                    |     r0 = r6;
    0x00002402 add r1, pc                                    |     r1 = 0x4fba;
    0x00002404 blx 0x1420                                    |     r0 = unit_name_from_path ();
    0x00002408 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x0000240a blt.w 0x26c8                                  |         goto label_35;
                                                             |     }
    0x0000240e ldr.w r0, [pc, 0x7a8]                         |     
    0x00002412 add r0, pc                                    |     r0 = 0x4fd0;
    0x00002414 blx 0x1574                                    |     r0 = fcn_00001574 ();
    0x00002416 stm.w lr!, {r0, sb, sl, lr}                   |     *(lr!) = r0;
                                                             |     *((lr! + 4)) = sb;
                                                             |     *((lr! + 8)) = sl;
                                                             |     *((lr! + 12)) = lr;
    0x00002418 mov r1, r0                                    |     r1 = r0;
    0x0000241a cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000241c beq.w 0x2746                                  |         goto label_36;
                                                             |     }
                                                             | label_5:
    0x00002420 add.w r3, r7, 0x2c                            |     r3 = r7 + 0x2c;
    0x00002424 ldr r2, [r7, 0x18]                            |     r2 = *((r7 + 0x18));
    0x00002426 mov r0, r8                                    |     r0 = r8;
    0x00002428 str r3, [r7, 4]                               |     *((r7 + 4)) = r3;
    0x0000242a blx 0x1474                                    |     r0 = generator_open_unit_file ();
    0x0000242e subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x00002430 blt.w 0x26c0                                  |         goto label_37;
                                                             |     }
    0x00002434 ldr.w r2, [pc, 0x784]                         |     
    0x00002438 movs r1, 1                                    |     r1 = 1;
    0x0000243a ldr r0, [r7, 0x2c]                            |     r0 = *((r7 + 0x2c));
    0x0000243c ldr r3, [r7, 0x14]                            |     r3 = *((r7 + 0x14));
    0x0000243e add r2, pc                                    |     r2 = 0x4ffe;
    0x00002440 blx 0x1354                                    |     fprintf_chk ()
    0x00002444 cmp.w sl, 0                                   |     
                                                             |     if (sl != 0) {
    0x00002448 beq 0x2472                                    |         
    0x0000244a ldr.w r3, [pc, 0x774]                         |         
    0x0000244e add.w r4, r7, 0x38                            |         r4 = r7 + 0x38;
    0x00002450 lsls r0, r7, 0x10                             |         r0 = r7 << 0x10;
    0x00002452 add r3, pc                                    |         r3 = 0x5018;
    0x00002454 adds r3, 0x18                                 |         r3 += 0x18;
    0x00002456 ldm.w r3, {r0, r1, r2}                        |         r0 = *(r3);
                                                             |         r1 = *((r3 + 4));
                                                             |         r2 = *((r3 + 8));
    0x0000245a stm.w r4, {r0, r1, r2}                        |         *(r4) = r0;
                                                             |         *((r4 + 4)) = r1;
                                                             |         *((r4 + 8)) = r2;
    0x0000245e mov r1, sl                                    |         r1 = sl;
    0x00002460 mov r0, r4                                    |         r0 = r4;
    0x00002462 blx 0x124c                                    |         r0 = strv_find ();
                                                             |         if (r0 == 0) {
    0x00002466 cbz r0, 0x2472                                |             goto label_9;
                                                             |         }
    0x00002468 ldr r3, [r7, 0x7c]                            |         r3 = *((r7 + 0x7c));
    0x0000246a ands r3, r3, 4                                |         r3 &= 4;
                                                             |         if (r3 == r3) {
    0x0000246e beq.w 0x27c4                                  |             goto label_38;
                                                             |         }
                                                             |     }
                                                             | label_9:
    0x00002472 ldr r3, [r7, 0x2c]                            |     r3 = *((r7 + 0x2c));
    0x00002474 str r3, [r7, 8]                               |     *((r7 + 8)) = r3;
    0x00002476 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00002478 beq.w 0x288c                                  |         goto label_39;
                                                             |     }
    0x0000247c ldr.w sb, [pc, 0x744]                         |     
    0x00002480 mov r1, fp                                    |     r1 = fp;
    0x00002482 ldr.w r3, [pc, 0x744]                         |     
    0x00002486 ldr r0, [r7, 8]                               |     r0 = *((r7 + 8));
    0x00002488 add sb, pc                                    |     sb = 0x5050;
    0x0000248a add r3, pc                                    |     r3 = 0x5058;
    0x0000248c add.w r2, sb, 0x38                            |     r2 = sb + 0x38;
    0x00002490 bl 0x1fa4                                     |     r0 = fcn_00001fa4 (r0, r1, r2, r3);
    0x00002494 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x00002496 blt.w 0x26c0                                  |         goto label_37;
                                                             |     }
    0x0000249a ldr.w r3, [pc, 0x730]                         |     
    0x0000249e add.w r2, sb, 0x4c                            |     r2 = sb + 0x4c;
    0x000024a2 ldr r0, [r7, 8]                               |     r0 = *((r7 + 8));
    0x000024a4 mov r1, fp                                    |     r1 = fp;
    0x000024a6 add r3, pc                                    |     r3 = 0x5078;
    0x000024a8 bl 0x1fa4                                     |     fcn_00001fa4 (r0, r1, r2, r3);
    0x000024aa ldc2l p14, c1, [ip, -0x10]!                   |     __asm ("ldc2l p14, c1, [ip, -0x10]!");
                                                             |     if (r4 < r0) {
    0x000024ae blt.w 0x26c0                                  |         goto label_37;
                                                             |     }
    0x000024b2 ldr.w r3, [pc, 0x71c]                         |     
    0x000024b6 add.w r2, sb, 0x60                            |     r2 = sb + 0x60;
    0x000024ba ldr r0, [r7, 8]                               |     r0 = *((r7 + 8));
    0x000024bc mov r1, fp                                    |     r1 = fp;
    0x000024be add r3, pc                                    |     r3 = 0x5094;
    0x000024c0 bl 0x1fa4                                     |     r0 = fcn_00001fa4 (r0, r1, r2, r3);
    0x000024c4 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x000024c6 blt.w 0x26c0                                  |         goto label_37;
                                                             |     }
    0x000024ca movs r3, 0                                    |     r3 = 0;
    0x000024cc add.w r2, r7, 0x30                            |     r2 = r7 + 0x30;
    0x000024d0 str r3, [sp, 4]                               |     var_4h = r3;
    0x000024d2 add.w r1, sb, 0x74                            |     r1 = sb + 0x74;
    0x000024d6 strd r3, r3, [r7, 0x30]                       |     __asm ("strd r3, r3, [r7, 0x30]");
    0x000024da mov r0, fp                                    |     r0 = fp;
    0x000024dc str r2, [sp]                                  |     *(sp) = r2;
    0x000024de mov r2, r3                                    |     r2 = r3;
    0x000024e0 blx 0x1508                                    |     r0 = fcn_00001508 ();
    0x000024e4 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x000024e6 blt.w 0x28ee                                  |         goto label_40;
                                                             |     }
                                                             |     if (r4 == r0) {
    0x000024ea beq.w 0x28a2                                  |         goto label_41;
                                                             |     }
    0x000024ee ldr r0, [r7, 0x30]                            |     r0 = *((r7 + 0x30));
    0x000024f0 add.w r1, r7, 0x34                            |     r1 = r7 + 0x34;
    0x000024f4 blx 0x12b8                                    |     r0 = specifier_escape_strv ();
    0x000024f8 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x000024fa mov.w r3, 0                                   |     r3 = 0;
                                                             |     if (r4 < r0) {
    0x000024fe blt.w 0x29be                                  |         goto label_42;
                                                             |     }
    0x00002502 ldr.w r1, [pc, 0x6d0]                         |     
    0x00002506 mov r2, r3                                    |     r2 = r3;
    0x00002508 ldr r0, [r7, 0x34]                            |     r0 = *((r7 + 0x34));
    0x0000250a add r1, pc                                    |     r1 = 0x50e4;
    0x0000250c blx 0x12c4                                    |     strv_join_full ();
    0x00002510 movs r3, 0                                    |     r3 = 0;
    0x00002512 mov sb, r0                                    |     sb = r0;
    0x00002514 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00002516 beq.w 0x2b32                                  |         goto label_43;
                                                             |     }
    0x0000251a ldr.w r2, [pc, 0x6bc]                         |     
    0x0000251e mov r4, r3                                    |     r4 = r3;
    0x00002520 ldr r0, [r7, 8]                               |     r0 = *((r7 + 8));
    0x00002522 mov r3, sb                                    |     r3 = sb;
    0x00002524 movs r1, 1                                    |     r1 = 1;
    0x00002526 add r2, pc                                    |     r2 = 0x5104;
    0x00002528 blx 0x1354                                    |     fprintf_chk ()
                                                             | label_11:
    0x0000252c mov r0, sb                                    |     r0 = sb;
    0x0000252e blx 0x127c                                    |     free (r0);
    0x00002532 ldr r0, [r7, 0x34]                            |     r0 = *((r7 + 0x34));
                                                             |     if (r0 != 0) {
    0x00002534 cbz r0, 0x253c                                |         
    0x00002536 blx 0x155c                                    |         fcn_0000155c ();
    0x0000253a str r0, [r7, 0x34]                            |         *((r7 + 0x34)) = r0;
                                                             |     }
    0x0000253c ldr r0, [r7, 0x30]                            |     r0 = *((r7 + 0x30));
                                                             |     if (r0 != 0) {
    0x0000253e cbz r0, 0x2544                                |         
    0x00002540 blx 0x155c                                    |         fcn_0000155c ();
                                                             |     }
    0x00002544 ldr r3, [r7, 0x2c]                            |     r3 = *((r7 + 0x2c));
    0x00002546 cmp r4, 0                                     |     
    0x00002548 mov r0, r3                                    |     r0 = r3;
                                                             |     if (r4 < 0) {
    0x0000254a blt.w 0x290e                                  |         goto label_44;
                                                             |     }
    0x0000254e ldr r2, [r7, 0x7c]                            |     r2 = *((r7 + 0x7c));
    0x00002550 ands r2, r2, 2                                |     r2 &= 2;
    0x00002554 str r2, [r7, 8]                               |     *((r7 + 8)) = r2;
                                                             |     if (r2 == r2) {
    0x00002556 beq.w 0x287c                                  |         goto label_45;
                                                             |     }
                                                             | label_10:
    0x0000255a ldr r2, [r7, 0x78]                            |     r2 = *((r7 + 0x78));
                                                             |     if (r2 != 0) {
    0x0000255c cbz r2, 0x2576                                |         
    0x0000255e mov r0, r3                                    |         r0 = r3;
    0x00002560 mov r2, r5                                    |         r2 = r5;
    0x00002562 mov r3, r6                                    |         r3 = r6;
    0x00002564 mov r1, r8                                    |         r1 = r8;
    0x00002566 str.w sl, [sp]                                |         __asm ("str.w sl, [sp]");
    0x0000256a blx 0x13e4                                    |         r0 = generator_write_fsck_deps ();
    0x0000256e subs r4, r0, 0                                |         r4 = r0 - 0;
                                                             |         if (r4 < r0) {
    0x00002570 blt.w 0x26c0                                  |             goto label_37;
                                                             |         }
    0x00002574 ldr r3, [r7, 0x2c]                            |         r3 = *((r7 + 0x2c));
                                                             |     }
    0x00002576 mov r0, r3                                    |     r0 = r3;
    0x00002578 mov r1, r5                                    |     r1 = r5;
    0x0000257a blx 0x1240                                    |     r0 = generator_write_blockdev_dependency ();
    0x0000257e subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x00002580 blt.w 0x26c0                                  |         goto label_37;
                                                             |     }
    0x00002584 ldr.w r0, [pc, 0x654]                         |     
    0x00002588 movs r2, 9                                    |     r2 = 9;
    0x0000258a ldr r3, [r7, 0x2c]                            |     r3 = *((r7 + 0x2c));
    0x0000258c movs r1, 1                                    |     r1 = 1;
    0x0000258e add r0, pc                                    |     r0 = 0x516e;
    0x00002590 blx 0x14a4                                    |     fwrite (r0, r1, r2, r3);
    0x00002594 ldr r0, [r7, 0x2c]                            |     r0 = *((r7 + 0x2c));
    0x00002596 mov r1, r5                                    |     r1 = r5;
    0x00002598 bl 0x1a04                                     |     r0 = fcn_00001a04 (r0, r1);
    0x0000259c subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x0000259e blt.w 0x26c0                                  |         goto label_37;
                                                             |     }
    0x000025a2 ldr r3, [r7, 0xc]                             |     r3 = *((r7 + 0xc));
                                                             |     if (r3 != 0) {
    0x000025a4 cbz r3, 0x25b4                                |         
    0x000025a6 ldr.w r2, [pc, 0x638]                         |         
    0x000025aa movs r1, 1                                    |         r1 = 1;
    0x000025ac ldr r0, [r7, 0x2c]                            |         r0 = *((r7 + 0x2c));
    0x000025ae add r2, pc                                    |         r2 = 0x5194;
    0x000025b0 blx 0x1354                                    |         fprintf_chk ()
                                                             |     }
    0x000025b4 ldr.w r4, [pc, 0x62c]                         |     
    0x000025b8 mov r0, r6                                    |     r0 = r6;
    0x000025ba ldr.w r3, [pc, 0x62c]                         |     
    0x000025be add r4, pc                                    |     r4 = 0x51a6;
    0x000025c0 add r3, pc                                    |     r3 = 0x51ae;
    0x000025c2 mov r2, r4                                    |     r2 = r4;
    0x000025c4 mov r1, r3                                    |     r1 = r3;
    0x000025c6 str r3, [r7, 0xc]                             |     *((r7 + 0xc)) = r3;
    0x000025c8 blx 0x1258                                    |     r0 = strreplace ();
    0x000025cc mov sb, r0                                    |     sb = r0;
    0x000025ce cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000025d0 beq.w 0x28d0                                  |         goto label_46;
                                                             |     }
    0x000025d4 ldr.w r2, [pc, 0x614]                         |     
    0x000025d8 mov r3, sb                                    |     r3 = sb;
    0x000025da ldr r0, [r7, 0x2c]                            |     r0 = *((r7 + 0x2c));
    0x000025dc movs r1, 1                                    |     r1 = 1;
    0x000025de add r2, pc                                    |     r2 = 0x51ce;
    0x000025e0 blx 0x1354                                    |     fprintf_chk ()
    0x000025e4 cmp.w sl, 0                                   |     
                                                             |     if (sl != 0) {
    0x000025e8 beq 0x2602                                    |         
    0x000025ea ldrb.w r3, [sl]                               |         r3 = *(sl);
                                                             |         if (r3 == 0) {
    0x000025ee cbz r3, 0x2602                                |             goto label_12;
                                                             |         }
    0x000025f0 ldr.w r1, [pc, 0x5fc]                         |         
    0x000025f4 mov r0, sl                                    |         r0 = sl;
    0x000025f6 add r1, pc                                    |         r1 = 0x51ea;
    0x000025f8 blx 0x1514                                    |         r0 = fcn_00001514 ();
    0x000025fc cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000025fe bne.w 0x28a8                                  |             goto label_47;
                                                             |         }
                                                             |     }
                                                             | label_12:
    0x00002602 add.w r3, r7, 0x20                            |     r3 = r7 + 0x20;
    0x00002606 mov r2, r6                                    |     r2 = r6;
    0x00002608 str r3, [sp]                                  |     *(sp) = r3;
    0x0000260a mov r1, r5                                    |     r1 = r5;
    0x0000260c mov r3, fp                                    |     r3 = fp;
    0x0000260e mov r0, r8                                    |     r0 = r8;
    0x00002610 blx 0x1538                                    |     r0 = fcn_00001538 ();
    0x00002614 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x00002616 blt 0x26b6                                    |         goto label_13;
                                                             |     }
    0x00002618 mov r3, fp                                    |     r3 = fp;
    0x0000261a mov r2, r6                                    |     r2 = r6;
    0x0000261c mov r1, r5                                    |     r1 = r5;
    0x0000261e mov r0, r8                                    |     r0 = r8;
    0x00002620 blx 0x1544                                    |     r0 = fcn_00001544 ();
    0x00002624 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x00002626 blt 0x26b6                                    |         goto label_13;
                                                             |     }
    0x00002628 ldr.w r2, [pc, 0x5c8]                         |     
    0x0000262c mov r1, r6                                    |     r1 = r6;
    0x0000262e ldr.w r3, [pc, 0x5c8]                         |     
    0x00002632 add r2, pc                                    |     r2 = 0x522a;
    0x00002634 str r2, [sp]                                  |     *(sp) = r2;
    0x00002636 add r3, pc                                    |     r3 = 0x5234;
    0x00002638 ldr r0, [r7, 0x2c]                            |     r0 = *((r7 + 0x2c));
    0x0000263a adds r3, 0x94                                 |     r3 += 0x94;
    0x0000263c mov r2, fp                                    |     r2 = fp;
    0x0000263e bl 0x1af8                                     |     r0 = fcn_00001af8 (r0, r1, r2, r3, r4);
    0x00002642 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x00002644 blt 0x26b6                                    |         goto label_13;
                                                             |     }
    0x00002646 ldr r1, [r7, 0x20]                            |     r1 = *((r7 + 0x20));
    0x00002648 ldr r0, [r7, 0x2c]                            |     r0 = *((r7 + 0x2c));
    0x0000264a bl 0x1a68                                     |     r0 = fcn_00001a68 (r0, r1);
    0x0000264e subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x00002650 blt 0x26b6                                    |         goto label_13;
                                                             |     }
    0x00002652 ldr r3, [r7, 0x7c]                            |     r3 = *((r7 + 0x7c));
    0x00002654 lsls r3, r3, 0x1a                             |     r3 <<= 0x1a;
                                                             |     if (r3 < r3) {
    0x00002656 bmi.w 0x29e8                                  |         goto label_48;
                                                             |     }
                                                             | label_17:
    0x0000265a ldr r0, [r7, 0x2c]                            |     r0 = *((r7 + 0x2c));
    0x0000265c blx 0x12ac                                    |     r0 = fflush_and_check ();
    0x00002660 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x00002662 blt.w 0x2970                                  |         goto label_49;
                                                             |     }
    0x00002666 ldr r3, [r7, 0x7c]                            |     r3 = *((r7 + 0x7c));
    0x00002668 lsls r4, r3, 0x1c                             |     r4 = r3 << 0x1c;
                                                             |     if (r4 < r3) {
    0x0000266a bmi.w 0x295c                                  |         goto label_50;
                                                             |     }
                                                             | label_14:
    0x0000266e ldr r3, [r7, 0x7c]                            |     r3 = *((r7 + 0x7c));
    0x00002670 lsls r0, r3, 0x1b                             |     r0 = r3 << 0x1b;
                                                             |     if (r0 < r3) {
    0x00002672 bmi.w 0x2a90                                  |         goto label_51;
                                                             |     }
                                                             | label_18:
    0x00002676 ldr r3, [r7, 0x7c]                            |     r3 = *((r7 + 0x7c));
    0x00002678 lsls r1, r3, 0x1d                             |     r1 = r3 << 0x1d;
                                                             |     if (r1 < r3) {
    0x0000267a bmi.w 0x29f8                                  |         goto label_52;
                                                             |     }
    0x0000267e lsls r2, r3, 0x1f                             |     r2 = r3 << 0x1f;
    0x00002680 ldr r5, [r7, 0x24]                            |     r5 = *((r7 + 0x24));
                                                             |     if (r2 >= r3) {
    0x00002682 bmi 0x2692                                    |         
    0x00002684 cmp r5, 0                                     |         
                                                             |         if (r5 == 0) {
    0x00002686 beq.w 0x2b0a                                  |             goto label_53;
                                                             |         }
    0x0000268a ldr r3, [r5]                                  |         r3 = *(r5);
    0x0000268c cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x0000268e beq.w 0x2b0a                                  |             goto label_53;
                                                             |         }
                                                             |     }
                                                             | label_23:
    0x00002692 ldr.w r6, [pc, 0x568]                         |     
    0x00002696 add r6, pc                                    |     r6 = "initrd-usr-fs.target";
                                                             |     do {
    0x00002698 cmp r5, 0                                     |         
                                                             |         if (r5 == 0) {
    0x0000269a beq.w 0x293e                                  |             goto label_54;
                                                             |         }
    0x0000269e ldr r1, [r5], 4                               |         r1 = *(r5);
                                                             |         r5 += 4;
    0x000026a2 cmp r1, 0                                     |         
                                                             |         if (r1 == 0) {
    0x000026a4 beq.w 0x293e                                  |             goto label_54;
                                                             |         }
    0x000026a8 ldr r3, [r7, 0x18]                            |         r3 = *((r7 + 0x18));
    0x000026aa mov r2, r6                                    |         r2 = r6;
    0x000026ac mov r0, r8                                    |         r0 = r8;
    0x000026ae blx 0x13b4                                    |         r0 = generator_add_symlink ();
    0x000026b2 subs r4, r0, 0                                |         r4 = r0 - 0;
    0x000026b4 bge 0x2698                                    |         
                                                             |     } while (r4 >= r0);
                                                             | label_13:
    0x000026b6 ldr r0, [r7, 0x2c]                            |     r0 = *((r7 + 0x2c));
    0x000026b8 b 0x2226                                      |     goto label_2;
                                                             | label_30:
    0x000026ba ldr r0, [r7, 0x2c]                            |     r0 = *((r7 + 0x2c));
    0x000026bc mov sb, r3                                    |     sb = r3;
    0x000026be b 0x2226                                      |     goto label_2;
                                                             | label_37:
    0x000026c0 ldr r0, [r7, 0x2c]                            |     r0 = *((r7 + 0x2c));
    0x000026c2 mov.w sb, 0                                   |     sb = 0;
    0x000026c6 b 0x2226                                      |     goto label_2;
                                                             | label_35:
    0x000026c8 blx 0x1360                                    |     r0 = log_get_max_level ();
    0x000026cc cmp r0, 2                                     |     
    0x000026ce ittt le                                       |     
                                                             |     if (r0 <= 2) {
    0x000026d0 rsble r4, r4, 0                               |         __asm ("rsble r4, r4, 0");
                                                             |     }
                                                             |     if (r0 <= 2) {
    0x000026d2 bicle r4, r4, 0x40000000                      |         __asm ("bicle r4, r4, 0x40000000");
                                                             |     }
                                                             |     if (r0 <= 2) {
    0x000026d6 rsbs r4, r4, 0                                |         r4 -= ;
                                                             |     }
                                                             |     if (r0 > 2) {
    0x000026d8 bgt 0x274e                                    |         goto label_55;
                                                             |     }
                                                             | label_6:
    0x000026da cmp r4, 0                                     |     
    0x000026dc ldr r0, [r7, 0x2c]                            |     r0 = *((r7 + 0x2c));
    0x000026de mov.w sb, 0                                   |     sb = 0;
    0x000026e2 it ge                                         |     
                                                             |     if (r4 < 0) {
    0x000026e4 mvnge r4, 0x55                                |         r4 = ~0x55;
                                                             |     }
    0x000026e8 b 0x2226                                      |     goto label_2;
                                                             | label_32:
    0x000026ea ldr.w r3, [pc, 0x514]                         |     
    0x000026ee mov r1, r4                                    |     r1 = r4;
    0x000026f0 ldr.w r2, [pc, 0x510]                         |     
    0x000026f4 movs r0, 4                                    |     r0 = 4;
    0x000026f6 add r3, pc                                    |     r3 = 0x52fc;
    0x000026f8 str r3, [sp, 4]                               |     var_4h = r3;
    0x000026fa add r2, pc                                    |     r2 = 0x5302;
    0x000026fc ldr.w r3, [pc, 0x508]                         |     
    0x00002700 adds r2, 7                                    |     r2 += 7;
    0x00002702 add r3, pc                                    |     r3 = 0x530e;
    0x00002704 str r3, [sp]                                  |     *(sp) = r3;
    0x00002706 mov.w r3, 0x186                               |     r3 = 0x186;
    0x0000270a blx 0x13cc                                    |     log_internal ();
                                                             | label_31:
    0x0000270e ldr r3, [r7, 0x7c]                            |     r3 = *((r7 + 0x7c));
    0x00002710 lsls r1, r3, 0x1e                             |     r1 = r3 << 0x1e;
                                                             |     if (r1 >= r3) {
    0x00002712 bpl.w 0x238a                                  |         goto label_3;
                                                             |     }
    0x00002716 blx 0x1360                                    |     r0 = log_get_max_level ();
    0x0000271a cmp r0, 3                                     |     
                                                             |     if (r0 <= 3) {
    0x0000271c ble.w 0x23bc                                  |         goto label_4;
                                                             |     }
    0x00002720 ldr.w r3, [pc, 0x4e8]                         |     
    0x00002724 movs r1, 0                                    |     r1 = 0;
    0x00002726 ldr.w r2, [pc, 0x4e8]                         |     
    0x0000272a movs r0, 4                                    |     r0 = 4;
    0x0000272c add r3, pc                                    |     r3 = 0x533c;
    0x0000272e str r3, [sp, 4]                               |     var_4h = r3;
    0x00002730 add r2, pc                                    |     r2 = 0x5346;
    0x00002732 ldr.w r3, [pc, 0x4e0]                         |     
    0x00002736 adds r2, 7                                    |     r2 += 7;
    0x00002738 add r3, pc                                    |     r3 = 0x5352;
    0x0000273a str r3, [sp]                                  |     *(sp) = r3;
    0x0000273c mov.w r3, 0x188                               |     r3 = 0x188;
    0x00002740 blx 0x13cc                                    |     log_internal ();
    0x00002742 cdp p6, 4, c14, c4, c1, 1                     |     __asm ("cdp p6, 4, c14, c4, c1, 1");
                                                             | label_36:
    0x00002746 ldr.w r1, [pc, 0x4d0]                         |     
    0x0000274a add r1, pc                                    |     r1 = 0x5368;
    0x0000274c b 0x2420                                      |     goto label_5;
                                                             | label_55:
    0x0000274e ldr.w r2, [pc, 0x4cc]                         |     
    0x00002752 mov r1, r4                                    |     r1 = r4;
    0x00002754 ldr.w r6, [pc, 0x4c8]                         |     
    0x00002758 movw r3, 0x197                                |     r3 = 0x197;
    0x0000275c ldr.w r5, [pc, 0x4c4]                         |     
    0x00002760 movs r0, 3                                    |     r0 = 3;
    0x00002762 add r2, pc                                    |     r2 = 0x5384;
    0x00002764 add r6, pc                                    |     r6 = 0x5388;
    0x00002766 adds r2, 7                                    |     r2 += 7;
    0x00002768 add r5, pc                                    |     r5 = 0x5390;
    0x0000276a strd r5, r6, [sp]                             |     __asm ("strd r5, r6, [sp]");
    0x0000276e blx 0x13cc                                    |     r0 = log_internal ();
    0x00002772 mov r4, r0                                    |     r4 = r0;
    0x00002774 b 0x26da                                      |     goto label_6;
                                                             | label_34:
    0x00002776 ldr.w r3, [pc, 0x4b0]                         |     
    0x0000277a movs r1, 0                                    |     r1 = 0;
    0x0000277c ldr.w r2, [pc, 0x4ac]                         |     
    0x00002780 movs r0, 4                                    |     r0 = 4;
    0x00002782 add r3, pc                                    |     r3 = 0x53b0;
    0x00002784 str r3, [sp, 4]                               |     var_4h = r3;
    0x00002786 add r2, pc                                    |     r2 = 0x53b6;
    0x00002788 ldr.w r3, [pc, 0x4a4]                         |     
    0x0000278c adds r2, 7                                    |     r2 += 7;
    0x0000278e add r3, pc                                    |     r3 = 0x53c2;
    0x00002790 str r3, [sp]                                  |     *(sp) = r3;
    0x00002792 mov.w r3, 0x18e                               |     r3 = 0x18e;
    0x00002796 blx 0x13cc                                    |     log_internal ();
    0x0000279a ldr r4, [r7, 0x28]                            |     r4 = *((r7 + 0x28));
    0x0000279c b 0x23e0                                      |     goto label_7;
                                                             | label_33:
    0x0000279e ldr.w r3, [pc, 0x494]                         |     
    0x000027a2 movs r1, 0                                    |     r1 = 0;
    0x000027a4 ldr.w r2, [pc, 0x490]                         |     
    0x000027a8 movs r0, 4                                    |     r0 = 4;
    0x000027aa add r3, pc                                    |     r3 = 0x53e4;
    0x000027ac str r3, [sp, 4]                               |     var_4h = r3;
    0x000027ae add r2, pc                                    |     r2 = 0x53ea;
    0x000027b0 ldr.w r3, [pc, 0x488]                         |     
    0x000027b4 adds r2, 7                                    |     r2 += 7;
    0x000027b6 add r3, pc                                    |     r3 = 0x53f6;
    0x000027b8 str r3, [sp]                                  |     *(sp) = r3;
    0x000027ba mov.w r3, 0x18c                               |     r3 = 0x18c;
    0x000027be blx 0x13cc                                    |     log_internal ();
    0x000027c2 b 0x23ce                                      |     goto label_8;
                                                             | label_38:
    0x000027c4 ldr.w sb, [pc, 0x478]                         |     
    0x000027c8 add.w r2, r7, 0x34                            |     r2 = r7 + 0x34;
    0x000027cc strd r3, r3, [sp]                             |     __asm ("strd r3, r3, [sp]");
    0x000027d0 mov r0, fp                                    |     r0 = fp;
    0x000027d2 str r3, [r7, 8]                               |     *((r7 + 8)) = r3;
    0x000027d4 add sb, pc                                    |     
    0x000027d6 add.w sb, sb, 0x30                            |     sb = "parse_fstab";
    0x000027d8 lsrs r0, r6, 4                                |     r0 = r6 >> 4;
    0x000027da mov r1, sb                                    |     r1 = sb;
    0x000027dc blx 0x1508                                    |     r0 = fcn_00001508 ();
    0x000027e0 cmp r0, 0                                     |     
    0x000027e2 ldr r3, [r7, 8]                               |     r3 = *((r7 + 8));
                                                             |     if (r0 < 0) {
    0x000027e4 blt.w 0x2914                                  |         goto label_56;
                                                             |     }
    0x000027e6 strh r6, [r2, 4]                              |     *((r2 + 4)) = r6;
    0x000027e8 ldr r2, [r7, 0x34]                            |     r2 = *((r7 + 0x34));
    0x000027ea cmp r2, sb                                    |     
                                                             |     if (r2 != sb) {
    0x000027ec bne.w 0x2472                                  |         goto label_9;
                                                             |     }
    0x000027f0 ldr.w r1, [pc, 0x450]                         |     
    0x000027f4 mov r2, r4                                    |     r2 = r4;
    0x000027f6 str.w fp, [r7, 0x3c]                          |     __asm ("str.w fp, [r7, 0x3c]");
    0x000027fa mov sb, r3                                    |     sb = r3;
    0x000027fc mov fp, r4                                    |     
    0x000027fe str r6, [r7, 8]                               |     *((r7 + 8)) = r6;
    0x00002800 add r1, pc                                    |     r1 = "parse_fstab";
    0x00002802 str.w sl, [r7]                                |     __asm ("str.w sl, [r7]");
    0x00002806 str r1, [r7, 0x38]                            |     *((r7 + 0x38)) = r1;
    0x00002808 mov sl, r5                                    |     sl = r5;
    0x0000280a ldr.w r1, [pc, 0x43c]                         |     
    0x0000280e mov r4, r3                                    |     r4 = r3;
    0x00002810 mov r6, r3                                    |     r6 = r3;
    0x00002812 mov r5, r2                                    |     r5 = r2;
    0x00002814 add r1, pc                                    |     r1 = 0x5462;
    0x00002816 str r1, [r7, 0x40]                            |     *((r7 + 0x40)) = r1;
                                                             |     do {
    0x00002818 ldr r0, [fp], 4                               |         r0 = *(fp);
                                                             |         fp += 4;
                                                             |         if (r0 == 0) {
    0x0000281c cbz r0, 0x282e                                |             goto label_57;
                                                             |         }
    0x0000281e add.w sb, sb, 1                               |         sb++;
    0x00002822 blx 0x14d8                                    |         fcn_000014d8 ();
    0x00002826 cmp.w sb, 3                                   |         
    0x0000282a add r4, r0                                    |         r4 += r0;
    0x0000282c bne 0x2818                                    |         
                                                             |     } while (sb != 3);
                                                             | label_57:
    0x0000282e adds r4, 1                                    |     r4++;
    0x00002830 mov r2, r5                                    |     r2 = r5;
    0x00002832 cmp.w r4, 0x400000                            |     
    0x00002836 mov r3, r6                                    |     r3 = r6;
    0x00002838 mov r5, sl                                    |     r5 = sl;
    0x0000283a ldr r6, [r7, 8]                               |     r6 = *((r7 + 8));
    0x0000283c ldr.w sl, [r7]                                |     sl = *(r7);
                                                             |     if (r4 > 0x400000) {
    0x00002840 bhi 0x2928                                    |         goto label_58;
                                                             |     }
    0x00002842 cmp r4, 1                                     |     
    0x00002844 mov r1, r4                                    |     r1 = r4;
    0x00002846 it lo                                         |     
                                                             |     if (r4 >= 1) {
    0x00002848 movlo r1, 1                                   |         r1 = 1;
                                                             |     }
    0x0000284a mov sb, r2                                    |     sb = r2;
    0x0000284c adds r1, 7                                    |     r1 += 7;
    0x0000284e mov r4, r3                                    |     r4 = r3;
    0x00002850 bic r1, r1, 7                                 |     r1 = BIT_MASK (r1, 7);
    0x00002854 sub.w sp, sp, r1                              |     
    0x00002858 add.w fp, sp, 0x10                            |     
    0x0000285c mov r0, fp                                    |     r0 = fp;
                                                             |     do {
    0x0000285e ldr r1, [sb], 4                               |         r1 = *(sb);
                                                             |         sb += 4;
                                                             |         if (r1 == 0) {
    0x00002862 cbz r1, 0x286e                                |             goto label_59;
                                                             |         }
    0x00002864 adds r4, 1                                    |         r4++;
    0x00002866 blx 0x130c                                    |         stpcpy ();
    0x0000286a cmp r4, 3                                     |         
    0x0000286c bne 0x285e                                    |         
                                                             |     } while (r4 != 3);
                                                             | label_59:
    0x0000286e ldr r3, [r7, 0x7c]                            |     r3 = *((r7 + 0x7c));
    0x00002870 orr r3, r3, 2                                 |     r3 |= 2;
    0x00002874 str r3, [r7, 0x7c]                            |     *((r7 + 0x7c)) = r3;
    0x00002876 movs r3, 0                                    |     r3 = 0;
    0x00002878 strb r3, [r0]                                 |     *(r0) = r3;
    0x0000287a b 0x2472                                      |     goto label_9;
                                                             | label_45:
    0x0000287c ldr r2, [pc, 0x3cc]                           |     
    0x0000287e movs r1, 1                                    |     r1 = 1;
    0x00002880 ldr r3, [r7, 0x10]                            |     r3 = *((r7 + 0x10));
    0x00002882 add r2, pc                                    |     r2 = 0x54d2;
    0x00002884 blx 0x1354                                    |     fprintf_chk ()
    0x00002888 ldr r3, [r7, 0x2c]                            |     r3 = *((r7 + 0x2c));
    0x0000288a b 0x255a                                      |     goto label_10;
                                                             | label_39:
    0x0000288c ldr r1, [pc, 0x3c0]                           |     
    0x0000288e movw r2, 0x141                                |     r2 = 0x141;
    0x00002892 ldr r3, [pc, 0x3c0]                           |     
    0x00002894 ldr r0, [pc, 0x3c0]                           |     
    0x00002896 add r1, pc                                    |     r1 = 0x54ea;
    0x00002898 add r3, pc                                    |     r3 = 0x54f2;
    0x0000289a adds r1, 7                                    |     r1 += 7;
    0x0000289c add r0, pc                                    |     r0 = 0x54f8;
    0x0000289e blx 0x1270                                    |     log_assert_failed ();
                                                             |     do {
                                                             | label_41:
    0x000028a2 mov.w sb, 0                                   |         sb = 0;
    0x000028a6 b 0x252c                                      |         goto label_11;
                                                             | label_47:
    0x000028a8 mov r2, r4                                    |         r2 = r4;
    0x000028aa ldr r1, [r7, 0xc]                             |         r1 = *((r7 + 0xc));
    0x000028ac mov r0, sl                                    |         r0 = sl;
    0x000028ae blx 0x1258                                    |         r0 = strreplace ();
    0x000028b2 mov r4, r0                                    |         r4 = r0;
    0x000028b4 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000028b6 beq.w 0x2b22                                  |             goto label_60;
                                                             |         }
    0x000028ba ldr r2, [pc, 0x3a0]                           |         
    0x000028bc mov r3, r4                                    |         r3 = r4;
    0x000028be ldr r0, [r7, 0x2c]                            |         r0 = *((r7 + 0x2c));
    0x000028c0 movs r1, 1                                    |         r1 = 1;
    0x000028c2 add r2, pc                                    |         r2 = 0x5524;
    0x000028c4 blx 0x1354                                    |         fprintf_chk ()
    0x000028c8 mov r0, r4                                    |         r0 = r4;
    0x000028ca blx 0x127c                                    |         free (r0);
    0x000028ce b 0x2602                                      |         goto label_12;
                                                             | label_46:
    0x000028d0 ldr r1, [pc, 0x38c]                           |         
    0x000028d2 movw r2, 0x1d1                                |         r2 = 0x1d1;
    0x000028d4 asrs r1, r2, 0xb                              |         r1 = r2 >> 0xb;
    0x000028d6 ldr r3, [pc, 0x38c]                           |         
    0x000028d8 movs r0, 3                                    |         r0 = 3;
    0x000028da add r1, pc                                    |         r1 = 0x553e;
    0x000028dc add r3, pc                                    |         r3 = 0x5546;
    0x000028de adds r1, 7                                    |         r1 += 7;
    0x000028e0 blx 0x15c0                                    |         r0 = fcn_000015c0 ();
    0x000028e4 mov r4, r0                                    |         r4 = r0;
    0x000028e6 ldr r0, [r7, 0x2c]                            |         r0 = *((r7 + 0x2c));
    0x000028e8 b 0x2226                                      |         goto label_2;
                                                             | label_29:
    0x000028ea blx 0x13fc                                    |         stack_chk_fail ();
                                                             | label_40:
    0x000028ee blx 0x1360                                    |         r0 = log_get_max_level ();
    0x000028f2 cmp r0, 3                                     |         
                                                             |         if (r0 > 3) {
    0x000028f4 bgt.w 0x2b4a                                  |             goto label_61;
                                                             |         }
                                                             | label_15:
    0x000028f8 rsbs r4, r4, 0                                |         r4 -= ;
    0x000028fa bic r4, r4, 0x40000000                        |         r4 = BIT_MASK (r4, 0x40000000);
    0x000028fe rsbs r4, r4, 0                                |         r4 -= ;
                                                             | label_16:
    0x00002900 cmp r4, 0                                     |         
    0x00002902 blt 0x28a2                                    |         
                                                             |     } while (r4 < 0);
    0x00002904 mov.w sb, 0                                   |     sb = 0;
    0x00002908 mvn r4, 0x55                                  |     r4 = ~0x55;
    0x0000290c b 0x252c                                      |     goto label_11;
                                                             | label_44:
    0x0000290e mov.w sb, 0                                   |     sb = 0;
    0x00002912 b 0x2226                                      |     goto label_2;
                                                             | label_56:
    0x00002914 ldr r1, [pc, 0x350]                           |     
    0x00002916 movs r2, 0x21                                 |     r2 = 0x21;
    0x00002918 ldr r3, [pc, 0x350]                           |     
    0x0000291a ldr r0, [pc, 0x354]                           |     
    0x0000291c add r1, pc                                    |     r1 = 0x5588;
    0x0000291e add r3, pc                                    |     r3 = 0x558e;
    0x00002920 adds r1, 7                                    |     r1 += 7;
    0x00002922 add r0, pc                                    |     r0 = 0x5598;
    0x00002924 blx 0x1270                                    |     log_assert_failed ();
                                                             | label_58:
    0x00002928 ldr r1, [pc, 0x348]                           |     
    0x0000292a movw r2, 0x1ad                                |     r2 = 0x1ad;
    0x0000292e ldr r3, [pc, 0x348]                           |     
    0x00002930 ldr r0, [pc, 0x348]                           |     
    0x00002932 add r1, pc                                    |     r1 = 0x55aa;
    0x00002934 add r3, pc                                    |     r3 = 0x55b2;
    0x00002936 adds r1, 7                                    |     r1 += 7;
    0x00002938 add r0, pc                                    |     r0 = 0x55b8;
    0x0000293a blx 0x1270                                    |     log_assert_failed ();
                                                             | label_54:
    0x0000293e ldr r6, [pc, 0x340]                           |     
    0x00002940 ldr r5, [r7, 0x28]                            |     r5 = *((r7 + 0x28));
    0x00002942 add r6, pc                                    |     r6 = 0x55c8;
                                                             |     do {
                                                             |         if (r5 == 0) {
    0x00002944 cbz r5, 0x2992                                |             goto label_62;
                                                             |         }
    0x00002946 ldr r1, [r5], 4                               |         r1 = *(r5);
                                                             |         r5 += 4;
                                                             |         if (r1 == 0) {
    0x0000294a cbz r1, 0x298c                                |             goto label_63;
                                                             |         }
    0x0000294c ldr r3, [r7, 0x18]                            |         r3 = *((r7 + 0x18));
    0x0000294e mov r2, r6                                    |         r2 = r6;
    0x00002950 mov r0, r8                                    |         r0 = r8;
    0x00002952 blx 0x13b4                                    |         r0 = generator_add_symlink ();
    0x00002956 subs r4, r0, 0                                |         r4 = r0 - 0;
    0x00002958 bge 0x2944                                    |         
                                                             |     } while (r4 >= r0);
    0x0000295a b 0x26b6                                      |     goto label_13;
                                                             | label_50:
    0x0000295c mov r3, sl                                    |     r3 = sl;
    0x0000295e mov r1, r5                                    |     r1 = r5;
    0x00002960 mov r2, r6                                    |     r2 = r6;
    0x00002962 mov r0, r8                                    |     r0 = r8;
    0x00002964 blx 0x1378                                    |     r0 = generator_hook_up_mkfs ();
    0x00002968 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 >= r0) {
    0x0000296a bge.w 0x266e                                  |         goto label_14;
                                                             |     }
    0x0000296c add r6, sp, 0x200                             |     r6 = sp + 0x200;
    0x0000296e b 0x26b6                                      |     goto label_13;
                                                             | label_49:
    0x00002970 blx 0x1360                                    |     r0 = log_get_max_level ();
    0x00002974 cmp r0, 2                                     |     
                                                             |     if (r0 > 2) {
    0x00002976 bgt 0x2998                                    |         goto label_64;
                                                             |     }
                                                             | label_20:
    0x00002978 rsbs r4, r4, 0                                |     r4 -= ;
    0x0000297a bic r4, r4, 0x40000000                        |     r4 = BIT_MASK (r4, 0x40000000);
    0x0000297e rsbs r4, r4, 0                                |     r4 -= ;
                                                             |     do {
                                                             | label_21:
    0x00002980 cmp r4, 0                                     |         
    0x00002982 ldr r0, [r7, 0x2c]                            |         r0 = *((r7 + 0x2c));
    0x00002984 it ge                                         |         
                                                             |         if (r4 < 0) {
    0x00002986 mvnge r4, 0x55                                |             r4 = ~0x55;
                                                             |         }
    0x0000298a b 0x2226                                      |         goto label_2;
                                                             | label_63:
    0x0000298c ldr r0, [r7, 0x2c]                            |         r0 = *((r7 + 0x2c));
    0x0000298e mov r4, r1                                    |         r4 = r1;
    0x00002990 b 0x2226                                      |         goto label_2;
                                                             | label_62:
    0x00002992 ldr r0, [r7, 0x2c]                            |         r0 = *((r7 + 0x2c));
    0x00002994 mov r4, r5                                    |         r4 = r5;
    0x00002996 b 0x2226                                      |         goto label_2;
                                                             | label_64:
    0x00002998 ldr r2, [pc, 0x2e8]                           |         
    0x0000299a mov r1, r4                                    |         r1 = r4;
    0x0000299c ldr r3, [pc, 0x2e8]                           |         
    0x0000299e ldr r5, [pc, 0x2ec]                           |         
    0x000029a0 ldr r0, [r7, 0x18]                            |         r0 = *((r7 + 0x18));
    0x000029a2 add r2, pc                                    |         r2 = 0x562a;
    0x000029a4 add r3, pc                                    |         r3 = 0x5630;
    0x000029a6 adds r2, 7                                    |         r2 += 7;
    0x000029a8 add r5, pc                                    |         r5 = 0x563a;
    0x000029aa strd r3, r0, [sp, 4]                          |         __asm ("strd r3, r0, [sp, 4]");
    0x000029ae movw r3, 0x1f3                                |         r3 = 0x1f3;
    0x000029b2 movs r0, 3                                    |         r0 = 3;
    0x000029b4 str r5, [sp]                                  |         *(sp) = r5;
    0x000029b6 blx 0x13cc                                    |         r0 = log_internal ();
    0x000029ba mov r4, r0                                    |         r4 = r0;
    0x000029bc b 0x2980                                      |         
                                                             |     } while (1);
                                                             | label_42:
    0x000029be blx 0x1360                                    |     r0 = log_get_max_level ();
    0x000029c2 cmp r0, 2                                     |     
                                                             |     if (r0 <= 2) {
    0x000029c4 ble 0x28f8                                    |         goto label_15;
                                                             |     }
    0x000029c6 ldr r3, [pc, 0x2c8]                           |     
    0x000029c8 mov r1, r4                                    |     r1 = r4;
    0x000029ca ldr r2, [pc, 0x2c8]                           |     
    0x000029cc movs r0, 3                                    |     r0 = 3;
    0x000029ce add r3, pc                                    |     r3 = 0x5664;
    0x000029d0 str r3, [sp, 4]                               |     var_4h = r3;
    0x000029d2 add r2, pc                                    |     r2 = 0x566c;
    0x000029d4 ldr r3, [pc, 0x2c0]                           |     
    0x000029d6 adds r2, 7                                    |     r2 += 7;
    0x000029d8 add r3, pc                                    |     r3 = 0x5674;
    0x000029da str r3, [sp]                                  |     *(sp) = r3;
    0x000029dc movw r3, 0x133                                |     r3 = 0x133;
    0x000029e0 blx 0x13cc                                    |     r0 = log_internal ();
    0x000029e4 mov r4, r0                                    |     r4 = r0;
    0x000029e6 b 0x2900                                      |     goto label_16;
                                                             | label_48:
    0x000029e8 ldr r0, [pc, 0x2b0]                           |     
    0x000029ea movs r2, 0x12                                 |     r2 = 0x12;
    0x000029ec ldr r3, [r7, 0x2c]                            |     r3 = *((r7 + 0x2c));
    0x000029ee movs r1, 1                                    |     r1 = 1;
    0x000029f0 add r0, pc                                    |     r0 = 0x5690;
    0x000029f2 blx 0x14a4                                    |     fwrite (r0, r1, r2, r3);
    0x000029f6 b 0x265a                                      |     goto label_17;
                                                             | label_52:
    0x000029f8 ldr r1, [pc, 0x2a4]                           |     
    0x000029fa add.w r2, r7, 0x1c                            |     r2 = r7 + 0x1c;
    0x000029fe mov r0, r6                                    |     r0 = r6;
    0x00002a00 add r1, pc                                    |     r1 = 0x56a4;
    0x00002a02 blx 0x1420                                    |     r0 = unit_name_from_path ();
    0x00002a06 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x00002a08 blt 0x2ade                                    |         goto label_65;
                                                             |     }
    0x00002a0a ldr r0, [r7, 0x2c]                            |     r0 = *((r7 + 0x2c));
    0x00002a0c blx 0x14cc                                    |     fcn_000014cc ();
    0x00002a10 str r0, [r7, 0x2c]                            |     *((r7 + 0x2c)) = r0;
    0x00002a12 ldr r0, [pc, 0x290]                           |     
    0x00002a14 add r0, pc                                    |     r0 = 0x56be;
    0x00002a16 blx 0x1574                                    |     r0 = fcn_00001574 ();
    0x00002a1a mov r1, r0                                    |     r1 = r0;
    0x00002a1c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00002a1e beq 0x2ad8                                    |         goto label_66;
                                                             |     }
                                                             | label_22:
    0x00002a20 ldr r3, [r7, 4]                               |     r3 = *((r7 + 4));
    0x00002a22 mov r0, r8                                    |     r0 = r8;
    0x00002a24 ldr r2, [r7, 0x1c]                            |     r2 = *((r7 + 0x1c));
    0x00002a26 blx 0x1474                                    |     r0 = generator_open_unit_file ();
    0x00002a2a subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x00002a2c blt.w 0x26b6                                  |         goto label_13;
                                                             |     }
    0x00002a2e add r6, sp, 0x10c                             |     r6 = sp + 0x10c;
    0x00002a30 ldr r2, [pc, 0x274]                           |     
    0x00002a32 movs r1, 1                                    |     r1 = 1;
    0x00002a34 ldr r3, [r7, 0x14]                            |     r3 = *((r7 + 0x14));
    0x00002a36 ldr r0, [r7, 0x2c]                            |     r0 = *((r7 + 0x2c));
    0x00002a38 add r2, pc                                    |     r2 = "x-systemd.mount-timeout";
    0x00002a3a blx 0x1354                                    |     fprintf_chk ()
    0x00002a3e ldr r2, [pc, 0x26c]                           |     
    0x00002a40 mov r3, sb                                    |     r3 = sb;
    0x00002a42 movs r1, 1                                    |     r1 = 1;
    0x00002a44 ldr r0, [r7, 0x2c]                            |     r0 = *((r7 + 0x2c));
    0x00002a46 add r2, pc                                    |     r2 = 0x56f8;
    0x00002a48 blx 0x1354                                    |     fprintf_chk ()
    0x00002a4c ldr r0, [pc, 0x260]                           |     
    0x00002a4e mov r2, fp                                    |     r2 = fp;
    0x00002a50 ldr r3, [pc, 0x260]                           |     
    0x00002a52 mov r1, r6                                    |     r1 = r6;
    0x00002a54 add r0, pc                                    |     r0 = 0x5708;
    0x00002a56 str r0, [sp]                                  |     *(sp) = r0;
    0x00002a58 add r3, pc                                    |     r3 = 0x5710;
    0x00002a5a ldr r0, [r7, 0x2c]                            |     r0 = *((r7 + 0x2c));
    0x00002a5c adds r3, 0xb0                                 |     r3 += 0xb0;
    0x00002a5e bl 0x1af8                                     |     r0 = fcn_00001af8 (r0, r1, r2, r3, r4);
    0x00002a62 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x00002a64 ldr r0, [r7, 0x2c]                            |     r0 = *((r7 + 0x2c));
                                                             |     if (r4 < r0) {
    0x00002a66 blt.w 0x2226                                  |         goto label_2;
                                                             |     }
    0x00002a6a blx 0x12ac                                    |     r0 = fflush_and_check ();
    0x00002a6e subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x00002a70 blt 0x2aa8                                    |         goto label_67;
                                                             |     }
    0x00002a72 ldr r3, [r7, 8]                               |     r3 = *((r7 + 8));
                                                             |     if (r3 == 0) {
    0x00002a74 cbz r3, 0x2aa2                                |         goto label_68;
                                                             |     }
    0x00002a76 ldr r2, [pc, 0x240]                           |     
    0x00002a78 add r2, pc                                    |     r2 = 0x5736;
                                                             | label_19:
    0x00002a7a ldr r3, [r7, 0x1c]                            |     r3 = *((r7 + 0x1c));
                                                             | label_24:
    0x00002a7c ldr r1, [r7, 0x10]                            |     r1 = *((r7 + 0x10));
    0x00002a7e mov r0, r8                                    |     r0 = r8;
    0x00002a80 blx 0x13b4                                    |     r0 = generator_add_symlink ();
    0x00002a84 mov r4, r0                                    |     r4 = r0;
    0x00002a86 ldr r0, [r7, 0x2c]                            |     r0 = *((r7 + 0x2c));
    0x00002a88 and.w r4, r4, r4, asr 31                      |     r4 &= (r4 >> 31);
    0x00002a8a strb r4, [r4, 0x13]                           |     *((r4 + 0x13)) = r4;
    0x00002a8c b.w 0x2226                                    |     goto label_2;
                                                             | label_51:
    0x00002a90 ldr r2, [r7, 0x10]                            |     r2 = *((r7 + 0x10));
    0x00002a92 mov r1, r6                                    |     r1 = r6;
    0x00002a94 mov r0, r8                                    |     r0 = r8;
    0x00002a96 blx 0x13c0                                    |     r0 = generator_hook_up_growfs ();
    0x00002a9a subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 >= r0) {
    0x00002a9c bge.w 0x2676                                  |         goto label_18;
                                                             |     }
    0x00002aa0 b 0x26b6                                      |     goto label_13;
                                                             | label_68:
    0x00002aa2 ldr r2, [pc, 0x218]                           |     
    0x00002aa4 add r2, pc                                    |     r2 = 0x5766;
    0x00002aa6 b 0x2a7a                                      |     goto label_19;
                                                             | label_67:
    0x00002aa8 blx 0x1360                                    |     r0 = log_get_max_level ();
    0x00002aac cmp r0, 2                                     |     
                                                             |     if (r0 <= 2) {
    0x00002aae ble.w 0x2978                                  |         goto label_20;
                                                             |     }
    0x00002ab2 ldr r2, [pc, 0x20c]                           |     
    0x00002ab4 mov r1, r4                                    |     r1 = r4;
    0x00002ab6 ldr r3, [pc, 0x20c]                           |     
    0x00002ab8 ldr r5, [pc, 0x20c]                           |     
    0x00002aba ldr r0, [r7, 0x1c]                            |     r0 = *((r7 + 0x1c));
    0x00002abc add r2, pc                                    |     r2 = 0x5782;
    0x00002abe add r3, pc                                    |     r3 = 0x5788;
    0x00002ac0 adds r2, 7                                    |     r2 += 7;
    0x00002ac2 add r5, pc                                    |     r5 = 0x578e;
    0x00002ac4 strd r3, r0, [sp, 4]                          |     __asm ("strd r3, r0, [sp, 4]");
    0x00002ac8 movw r3, 0x231                                |     r3 = 0x231;
    0x00002acc movs r0, 3                                    |     r0 = 3;
    0x00002ace str r5, [sp]                                  |     *(sp) = r5;
    0x00002ad0 blx 0x13cc                                    |     r0 = log_internal ();
    0x00002ad4 mov r4, r0                                    |     r4 = r0;
    0x00002ad6 b 0x2980                                      |     goto label_21;
                                                             | label_66:
    0x00002ad8 ldr r1, [pc, 0x1f0]                           |     
    0x00002ada add r1, pc                                    |     r1 = 0x57aa;
    0x00002adc b 0x2a20                                      |     goto label_22;
                                                             | label_65:
    0x00002ade blx 0x1360                                    |     r0 = log_get_max_level ();
    0x00002ae2 cmp r0, 2                                     |     
                                                             |     if (r0 <= 2) {
    0x00002ae4 ble.w 0x2978                                  |         goto label_20;
                                                             |     }
    0x00002ae8 ldr r2, [pc, 0x1e4]                           |     
    0x00002aea mov r1, r4                                    |     r1 = r4;
    0x00002aec ldr r5, [pc, 0x1e4]                           |     
    0x00002aee movw r3, 0x217                                |     r3 = 0x217;
    0x00002af2 ldr r0, [pc, 0x1e4]                           |     
    0x00002af4 add r2, pc                                    |     r2 = 0x57c8;
    0x00002af6 add r5, pc                                    |     r5 = 0x57ce;
    0x00002af8 adds r2, 7                                    |     r2 += 7;
    0x00002afa add r0, pc                                    |     r0 = 0x57d8;
    0x00002afc strd r0, r5, [sp]                             |     __asm ("strd r0, r5, [sp]");
    0x00002b00 movs r0, 3                                    |     r0 = 3;
    0x00002b02 blx 0x13cc                                    |     r0 = log_internal ();
    0x00002b06 mov r4, r0                                    |     r4 = r0;
    0x00002b08 b 0x2980                                      |     goto label_21;
                                                             | label_53:
    0x00002b0a ldr r3, [r7, 0x28]                            |     r3 = *((r7 + 0x28));
                                                             |     if (r3 == 0) {
    0x00002b0c cbz r3, 0x2b16                                |         goto label_69;
                                                             |     }
    0x00002b0e ldr r3, [r3]                                  |     r3 = *(r3);
    0x00002b10 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00002b12 bne.w 0x2692                                  |         goto label_23;
                                                             |     }
                                                             | label_69:
    0x00002b16 ldr r3, [r7, 8]                               |     r3 = *((r7 + 8));
                                                             |     if (r3 == 0) {
    0x00002b18 cbz r3, 0x2b2c                                |         goto label_70;
                                                             |     }
    0x00002b1a ldr r2, [pc, 0x1c0]                           |     
    0x00002b1c add r2, pc                                    |     r2 = 0x57fe;
                                                             |     do {
    0x00002b1e ldr r3, [r7, 0x18]                            |         r3 = *((r7 + 0x18));
    0x00002b20 b 0x2a7c                                      |         goto label_24;
                                                             | label_60:
    0x00002b22 ldr r0, [r7, 0x2c]                            |         r0 = *((r7 + 0x2c));
    0x00002b24 mvn r4, 0xb                                   |         r4 = ~0xb;
    0x00002b28 b.w 0x2226                                    |         goto label_2;
                                                             | label_70:
    0x00002b2c ldr r2, [pc, 0x1b0]                           |         
    0x00002b2e add r2, pc                                    |         r2 = 0x5812;
    0x00002b30 b 0x2b1e                                      |         
                                                             |     } while (1);
                                                             | label_43:
    0x00002b32 ldr r1, [pc, 0x1b0]                           |     
    0x00002b34 movw r2, 0x137                                |     r2 = 0x137;
    0x00002b38 ldr r3, [pc, 0x1ac]                           |     
    0x00002b3a movs r0, 3                                    |     r0 = 3;
    0x00002b3c add r1, pc                                    |     r1 = 0x5826;
    0x00002b3e adds r1, 7                                    |     r1 += 7;
    0x00002b40 add r3, pc                                    |     r3 = 0x582c;
    0x00002b42 blx 0x15c0                                    |     r0 = fcn_000015c0 ();
    0x00002b46 mov r4, r0                                    |     r4 = r0;
    0x00002b48 b 0x252c                                      |     goto label_11;
                                                             | label_61:
    0x00002b4a ldr r3, [pc, 0x1a0]                           |     
    0x00002b4c mov r1, r4                                    |     r1 = r4;
    0x00002b4e ldr r2, [pc, 0x1a0]                           |     
    0x00002b50 movs r0, 4                                    |     r0 = 4;
    0x00002b52 add r3, pc                                    |     r3 = 0x5844;
    0x00002b54 str r3, [sp, 4]                               |     var_4h = r3;
    0x00002b56 add r2, pc                                    |     r2 = 0x584c;
    0x00002b58 ldr r3, [pc, 0x198]                           |     
    0x00002b5a adds r2, 7                                    |     r2 += 7;
    0x00002b5c add r3, pc                                    |     r3 = 0x5854;
    0x00002b5e str r3, [sp]                                  |     *(sp) = r3;
    0x00002b60 movw r3, 0x12d                                |     r3 = 0x12d;
    0x00002b64 blx 0x13cc                                    |     r0 = log_internal ();
    0x00002b68 mov r4, r0                                    |     r4 = r0;
    0x00002b6a b 0x2900                                      |     goto label_16;
                                                             | }

[*] Function fprintf used 12 times systemd-fstab-generator