[*] Binary protection state of systemd-fstab-generator
Full RELRO Canary found NX enabled PIE enabled RPATH No RUNPATH No Symbols
[*] Function printf tear down of systemd-fstab-generator
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/system-generators/systemd-fstab-generator @ 0x187c */
| #include <stdint.h>
|
; (fcn) fcn.0000187c () | void fcn_0000187c (int16_t arg1, int16_t arg2) {
| r0 = arg1;
| r1 = arg2;
0x0000187c push {r4, r5, r6, lr} |
0x0000187e mov r4, r1 | r4 = r1;
| if (r1 != 0) {
0x00001880 cbz r1, 0x1888 |
0x00001882 ldrb r3, [r1] | r3 = *(r1);
| if (r3 != 0) {
0x00001884 cbnz r3, 0x1894 | goto label_0;
| }
0x00001886 mov r4, r3 | r4 = r3;
| }
0x00001888 mov r5, r4 | r5 = r4;
| do {
0x0000188a mov r0, r4 | r0 = r4;
0x0000188c blx 0x1158 | free (r0);
0x00001890 mov r0, r5 | r0 = r5;
0x00001892 pop {r4, r5, r6, pc} |
| label_0:
0x00001894 ldr r1, [pc, 0x5c] |
0x00001896 mov r6, r0 | r6 = r0;
0x00001898 mov r0, r4 | r0 = r4;
0x0000189a add r1, pc | r1 = 0x3192;
0x0000189c blx 0x1368 | r0 = strcmp (r0, r1);
0x000018a0 mov r5, r0 | r5 = r0;
| if (r0 == 0) {
0x000018a2 cbnz r0, 0x18b0 |
0x000018a4 mov r4, r5 | r4 = r5;
0x000018a6 mov r0, r4 | r0 = r4;
0x000018a8 blx 0x1158 | free (r0);
0x000018ac mov r0, r5 | r0 = r5;
0x000018ae pop {r4, r5, r6, pc} |
| }
0x000018b0 ldr r2, [pc, 0x44] |
0x000018b2 mov r0, r4 | r0 = r4;
0x000018b4 ldr r1, [pc, 0x44] |
0x000018b6 add r2, pc | r2 = 0x31b2;
0x000018b8 add r1, pc | r1 = 0x31b8;
0x000018ba blx 0x11a0 | r0 = strreplace ();
0x000018be mov r4, r0 | r4 = r0;
| if (r0 != 0) {
0x000018c0 cbz r0, 0x18dc |
0x000018c2 ldr r2, [pc, 0x3c] |
0x000018c4 mov r3, r0 | r3 = r0;
0x000018c6 movs r1, 1 | r1 = 1;
0x000018c8 mov r0, r6 | r0 = r6;
0x000018ca movs r5, 1 | r5 = 1;
0x000018cc add r2, pc | r2 = 0x31d2;
0x000018ce blx 0x1290 | fprintf_chk ()
0x000018d2 mov r0, r4 | r0 = r4;
0x000018d4 blx 0x1158 | free (r0);
0x000018d8 mov r0, r5 | r0 = r5;
0x000018da pop {r4, r5, r6, pc} |
| }
0x000018dc ldr r1, [pc, 0x24] |
0x000018de movs r2, 0x4a | r2 = 0x4a;
0x000018e0 ldr r3, [pc, 0x24] |
0x000018e2 movs r0, 3 | r0 = 3;
0x000018e4 add r1, pc | r1 = 0x31ec;
0x000018e6 add r3, pc | r3 = 0x31f2;
0x000018e8 adds r1, 7 | r1 += 7;
0x000018ea blx 0x1384 | r0 = fcn_00001384 ();
0x000018ee mov r5, r0 | r5 = r0;
0x000018f0 b 0x188a |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/system-generators/systemd-fstab-generator @ 0x190c */
| #include <stdint.h>
|
; (fcn) fcn.0000190c () | void fcn_0000190c (int16_t arg_80h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
| int16_t var_0h_2;
| int32_t var_0h;
| int32_t var_8h;
| int32_t var_8h_2;
| void * ptr;
| int16_t var_18h;
| int32_t var_18h_2;
| int16_t var_24h;
| int16_t var_64h;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
| r3 = arg4;
0x0000190c push.w {r4, r5, r6, r7, r8, lr} |
0x00001910 mov r8, r0 | r8 = r0;
0x00001912 mov r0, r2 | r0 = r2;
0x00001914 ldr r2, [pc, 0xec] |
0x00001916 mov r6, r1 | r6 = r1;
0x00001918 mov r1, r3 | r1 = r3;
0x0000191a ldr r3, [pc, 0xec] | r3 = *(0x1a0a);
0x0000191c sub sp, 0x68 |
0x0000191e add r2, pc | r2 = 0x3326;
0x00001920 movs r4, 0 | r4 = 0;
0x00001922 ldr r7, [sp, 0x80] | r7 = *(arg_80h);
0x00001924 ldr r3, [r2, r3] |
0x00001926 mov r2, r4 | r2 = r4;
0x00001928 ldr r3, [r3] | r3 = *(0x3326);
0x0000192a str r3, [sp, 0x64] | var_64h = r3;
0x0000192c mov.w r3, 0 | r3 = 0;
0x00001930 add r3, sp, 0x14 | r3 += ptr;
0x00001932 strd r4, r4, [sp] | __asm ("strd r4, r4, [sp]");
0x00001934 add r0, r0 | r0 += r0;
0x00001936 str r4, [sp, 0x14] | ptr = r4;
0x00001938 blx 0x11f4 | r0 = fstab_filter_options ();
0x0000193c subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 < r0) {
0x0000193e blt 0x199a | goto label_2;
| }
0x00001940 ldr r0, [sp, 0x14] | r0 = ptr;
| if (r5 != r0) {
0x00001942 bne 0x1968 | goto label_3;
| }
| label_1:
0x00001944 movs r4, 0 | r4 = 0;
| do {
| label_0:
0x00001946 ldr r0, [sp, 0x14] | r0 = ptr;
0x00001948 blx 0x1158 | free (r0);
0x0000194c ldr r2, [pc, 0xbc] |
0x0000194e ldr r3, [pc, 0xb8] | r3 = *(0x1a0a);
0x00001950 add r2, pc | r2 = 0x3360;
0x00001952 ldr r3, [r2, r3] | r3 = *(0x3360);
0x00001954 ldr r2, [r3] | r2 = *(0x3360);
0x00001956 ldr r3, [sp, 0x64] | r3 = var_64h;
0x00001958 eors r2, r3 | r2 ^= r3;
0x0000195a mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0000195e bne 0x1a00 | goto label_4;
| }
0x00001960 mov r0, r4 | r0 = r4;
0x00001962 add sp, 0x68 |
0x00001964 pop.w {r4, r5, r6, r7, r8, pc} |
| label_3:
0x00001968 add r1, sp, 0x18 | r1 += var_18h;
0x0000196a blx 0x1098 | r0 = parse_sec_fix_0 ();
0x0000196e cmp r0, 0 |
| if (r0 < 0) {
0x00001970 blt 0x19d4 | goto label_5;
| }
0x00001972 vmov.i32 d16, 0 | __asm ("vmov.i32 d16, 0");
0x00001976 movs r1, 0x40 | r1 = 0x40;
0x00001978 ldrd r2, r3, [sp, 0x18] | __asm ("ldrd r2, r3, [var_18h]");
0x0000197c add r0, sp, 0x24 | r0 += var_24h;
0x0000197e vstr d16, [sp] | __asm ("vstr d16, [sp]");
0x00001982 blx 0x10a4 | format_timespan ();
0x00001984 invalid |
0x00001988 mov r1, r0 | r1 = r0;
0x0000198a str r1, [sp] | *(sp) = r1;
0x0000198c mov r3, r7 | r3 = r7;
0x0000198e mov r0, r8 | r0 = r8;
0x00001990 movs r1, 1 | r1 = 1;
0x00001992 add r2, pc | r2 += pc;
0x00001994 blx 0x1290 | fprintf_chk ()
0x00001998 b 0x1946 |
| } while (1);
| label_2:
0x0000199a blx 0x10ec | r0 = log_get_max_level ();
0x0000199e cmp r0, 3 |
0x000019a0 ittt le |
| if (r0 <= 3) {
0x000019a2 rsble r0, r5, 0 | __asm ("rsble r0, r5, 0");
| }
| if (r0 <= 3) {
0x000019a4 uxtble r0, r0 | __asm ("uxtble r0, r0");
| }
| if (r0 <= 3) {
0x000019a6 rsble r4, r0, 0 | __asm ("rsble r4, r0, 0");
| }
0x000019a8 bgt 0x19b4 |
| while (1) {
0x000019aa cmp r4, 0 |
0x000019ac it ge |
| if (r4 < 0) {
0x000019ae mvnge r4, 0x55 | r4 = ~0x55;
| }
0x000019b2 b 0x1946 | goto label_0;
0x000019b4 ldr r2, [pc, 0x5c] |
0x000019b6 movs r3, 0xcd | r3 = 0xcd;
0x000019b8 ldr r4, [pc, 0x5c] |
0x000019ba mov r1, r5 | r1 = r5;
0x000019bc ldr r0, [pc, 0x5c] |
0x000019be add r2, pc | r2 = 0x33d6;
0x000019c0 add r4, pc | r4 = 0x33dc;
0x000019c2 adds r2, 7 | r2 += 7;
0x000019c4 add r0, pc | r0 = 0x33e4;
0x000019c6 strd r0, r4, [sp] | __asm ("strd r0, r4, [sp]");
0x000019ca movs r0, 4 | r0 = 4;
0x000019cc blx 0x12b4 | r0 = log_internal ();
0x000019d0 mov r4, r0 | r4 = r0;
0x000019d2 b 0x19aa |
| }
| label_5:
0x000019d4 blx 0x10ec | r0 = log_get_max_level ();
0x000019d8 cmp r0, 3 |
0x000019da ldr r3, [sp, 0x14] | r3 = ptr;
| if (r0 <= 3) {
0x000019dc ble 0x1944 | goto label_1;
| }
0x000019de ldr r2, [pc, 0x40] |
0x000019e0 ldr r0, [pc, 0x40] |
0x000019e2 ldr r1, [pc, 0x44] |
0x000019e4 add r2, pc | r2 = 0x340a;
0x000019e6 strd r6, r3, [sp, 8] | __asm ("strd r6, r3, [var_8h]");
0x000019ea add r0, pc | r0 = 0x3412;
0x000019ec movs r3, 0xd3 | r3 = 0xd3;
0x000019ee add r1, pc | r1 = 0x341c;
0x000019f0 adds r2, 7 | r2 += 7;
0x000019f2 strd r1, r0, [sp] | __asm ("strd r1, r0, [sp]");
0x000019f6 mov r1, r4 | r1 = r4;
0x000019f8 movs r0, 4 | r0 = 4;
0x000019fa blx 0x12b4 | log_internal ();
0x000019fe b 0x1946 | goto label_0;
| label_4:
0x00001a00 blx 0x1284 | stack_chk_fail ();
0x00001a04 cmp lr, r2 |
0x00001a06 movs r1, r0 | r1 = r0;
0x00001a08 lsls r0, r6, 4 | r0 = r6 << 4;
0x00001a0a movs r0, r0 |
0x00001a0c cmp r4, ip |
0x00001a0e movs r1, r0 | r1 = r0;
0x00001a10 movs r5, 0xaa | r5 = 0xaa;
0x00001a12 movs r0, r0 |
0x00001a14 movs r4, 0xde | r4 = 0xde;
0x00001a16 movs r0, r0 |
0x00001a18 movs r5, 0x30 | r5 = 0x30;
0x00001a1a movs r0, r0 |
0x00001a1c adds r5, 0x10 | r5 += 0x10;
0x00001a1e movs r0, r0 |
0x00001a20 movs r4, 0xb8 | r4 = 0xb8;
0x00001a22 movs r0, r0 |
0x00001a24 movs r5, 0x22 | r5 = 0x22;
0x00001a26 movs r0, r0 |
0x00001a28 adds r4, 0xe6 | r4 += 0xe6;
0x00001a2a movs r0, r0 |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/system-generators/systemd-fstab-generator @ 0x1ad4 */
| #include <stdint.h>
|
; (fcn) fcn.00001ad4 () | void fcn_00001ad4 (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 (? >= ?) {
0x00001ad4 ldrbmi lr, [r0, sp, lsr 18]! |
| }
0x00001ad8 mov r4, r1 | r4 = r1;
0x00001ada mov r1, r2 | r1 = r2;
0x00001adc ldr r2, [pc, 0x1ac] |
0x00001ade mov sb, r3 | sb = r3;
0x00001ae0 sub sp, 0x18 |
0x00001ae2 ldr r3, [pc, 0x1ac] | r3 = *(0x1c92);
0x00001ae4 movs r6, 0 | r6 = 0;
0x00001ae6 add r2, pc | r2 = 0x3776;
0x00001ae8 ldr r3, [r2, r3] |
0x00001aea ldr r3, [r3] | r3 = *(0x3776);
0x00001aec str r3, [sp, 0x14] | var_14h = r3;
0x00001aee mov.w r3, 0 | r3 = 0;
0x00001af2 strd r6, r6, [sp, 8] | __asm ("strd r6, r6, [var_ch]");
0x00001af6 cmp r0, 0 |
| if (r0 == 0) {
0x00001af8 beq 0x1bf0 | goto label_3;
| }
0x00001afa cmp r4, 0 |
| if (r4 == 0) {
0x00001afc beq.w 0x1c3a | goto label_4;
| }
0x00001b00 add r3, sp, 8 | r3 += var_8h;
0x00001b02 mov r5, r0 | r5 = r0;
0x00001b04 str r3, [sp] | *(sp) = r3;
0x00001b06 mov r0, r4 | r0 = r4;
0x00001b08 mov r3, r6 | r3 = r6;
0x00001b0a mov r2, r6 | r2 = r6;
0x00001b0c str r6, [sp, 4] | var_4h_2 = r6;
0x00001b0e blx 0x11f4 | r0 = fstab_filter_options ();
0x00001b12 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x00001b14 blt 0x1bb2 | goto label_5;
| }
| if (r4 == r0) {
0x00001b16 beq 0x1b7a | goto label_6;
| }
0x00001b18 ldr r4, [sp, 8] | r4 = var_8h;
| if (r4 == 0) {
0x00001b1a cbz r4, 0x1b52 | goto label_7;
| }
0x00001b1c ldr.w r8, [pc, 0x174] |
0x00001b20 subs r4, 4 | r4 -= 4;
0x00001b22 ldr r7, [pc, 0x174] |
0x00001b24 add r6, sp, 0x10 | r6 += var_10h_2;
0x00001b26 add r8, pc | r8 = 0x37be;
0x00001b28 add r7, pc | r7 = 0x37c6;
0x00001b2a b 0x1b4a |
| while (r0 != 0) {
0x00001b2c mov r3, r8 | r3 = r8;
0x00001b2e movs r2, 0 | r2 = 0;
0x00001b30 mov r1, r7 | r1 = r7;
0x00001b32 str r6, [sp] | *(sp) = r6;
0x00001b34 blx 0x12a8 | r0 = unit_name_mangle_with_suffix ();
0x00001b38 subs.w sl, r0, 0 | sl = r0 - 0;
| if (sl < r0) {
0x00001b3c blt 0x1c04 | goto label_8;
| }
0x00001b3e ldr r1, [sp, 0x10] | r1 = var_10h_2;
0x00001b40 add r0, sp, 0xc | r0 += var_ch;
0x00001b42 blx 0x11b8 | r0 = strv_consume ();
0x00001b46 cmp r0, 0 |
| if (r0 < 0) {
0x00001b48 blt 0x1c22 | goto label_9;
| }
0x00001b4a ldr r0, [r4, 4]! | r0 = *((r4 += 4));
0x00001b4e cmp r0, 0 |
0x00001b50 bne 0x1b2c |
| }
| label_7:
0x00001b52 ldr r0, [sp, 0xc] | r0 = var_ch;
| if (r0 != 0) {
0x00001b54 cbz r0, 0x1b7a |
0x00001b56 ldr r1, [pc, 0x144] |
0x00001b58 movs r3, 0 | r3 = 0;
0x00001b5a mov r2, r3 | r2 = r3;
0x00001b5c add r1, pc | r1 = 0x37fe;
0x00001b5e blx 0x108c | r0 = strv_join_full ();
0x00001b62 mov r6, r0 | r6 = r0;
0x00001b64 cmp r0, 0 |
| if (r0 == 0) {
0x00001b66 beq.w 0x1c6e | goto label_10;
| }
0x00001b6a mov r3, r0 | r3 = r0;
0x00001b6c mov r2, sb | r2 = sb;
0x00001b6e movs r1, 1 | r1 = 1;
0x00001b70 mov r0, r5 | r0 = r5;
0x00001b72 movs r4, 0 | r4 = 0;
0x00001b74 blx 0x1290 | fprintf_chk ()
0x00001b78 b 0x1b7e |
| } else {
| label_6:
0x00001b7a movs r6, 0 | r6 = 0;
0x00001b7c mov r4, r6 | r4 = r6;
| }
| do {
| label_1:
0x00001b7e mov r0, r6 | r0 = r6;
0x00001b80 blx 0x1158 | free (r0);
0x00001b82 invalid |
| if (r0 != 0) {
0x00001b86 cbz r0, 0x1b8e |
0x00001b88 blx 0x11e8 | strv_free ();
0x00001b8c str r0, [sp, 0xc] | var_ch = r0;
| }
0x00001b8e ldr r0, [sp, 8] | r0 = var_8h;
| if (r0 != 0) {
0x00001b90 cbz r0, 0x1b96 |
0x00001b92 blx 0x11e8 | strv_free ();
| }
0x00001b96 ldr r2, [pc, 0x108] |
0x00001b98 ldr r3, [pc, 0xf4] | r3 = *(0x1c90);
0x00001b9a add r2, pc | r2 = 0x3840;
0x00001b9c ldr r3, [r2, r3] | r3 = *(0x3840);
0x00001b9e ldr r2, [r3] | r2 = *(0x3840);
0x00001ba0 ldr r3, [sp, 0x14] | r3 = var_14h;
0x00001ba2 eors r2, r3 | r2 ^= r3;
0x00001ba4 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00001ba8 bne 0x1c86 | goto label_11;
| }
0x00001baa mov r0, r4 | r0 = r4;
0x00001bac add sp, 0x18 |
0x00001bae pop.w {r4, r5, r6, r7, r8, sb, sl, pc} |
| label_5:
0x00001bb2 blx 0x10ec | r0 = log_get_max_level ();
0x00001bb6 cmp r0, 3 |
0x00001bb8 ittt le |
| if (r0 <= 3) {
0x00001bba rsble r0, r4, 0 | __asm ("rsble r0, r4, 0");
| }
| if (r0 <= 3) {
0x00001bbc uxtble r0, r0 | __asm ("uxtble r0, r0");
| }
| if (r0 <= 3) {
0x00001bbe rsble r4, r0, 0 | __asm ("rsble r4, r0, 0");
| }
| if (r0 > 3) {
0x00001bc0 bgt 0x1bd0 | goto label_12;
| }
| label_0:
0x00001bc2 cmp r4, 0 |
0x00001bc4 mov.w r6, 0 | r6 = 0;
0x00001bc8 it ge |
| if (r4 < 0) {
0x00001bca mvnge r4, 0x55 | r4 = ~0x55;
| }
0x00001bce b 0x1b7e |
| } while (1);
| label_12:
0x00001bd0 ldr r2, [pc, 0xd0] |
0x00001bd2 mov r1, r4 | r1 = r4;
0x00001bd4 ldr r5, [pc, 0xd0] |
0x00001bd6 movs r3, 0xf6 | r3 = 0xf6;
0x00001bd8 ldr r0, [pc, 0xd0] |
0x00001bda add r2, pc | r2 = 0x3882;
0x00001bdc add r5, pc | r5 = 0x3888;
0x00001bde adds r2, 7 | r2 += 7;
0x00001be0 add r0, pc | r0 = 0x3890;
0x00001be2 strd r0, r5, [sp] | __asm ("strd r0, r5, [sp]");
0x00001be4 lsls r0, r0, 0x14 | r0 <<= 0x14;
0x00001be6 movs r0, 4 | r0 = 4;
0x00001be8 blx 0x12b4 | r0 = log_internal ();
0x00001bec mov r4, r0 | r4 = r0;
0x00001bee b 0x1bc2 | goto label_0;
| label_3:
0x00001bf0 ldr r1, [pc, 0xbc] |
0x00001bf2 movs r2, 0xf1 | r2 = 0xf1;
0x00001bf4 ldr r3, [pc, 0xbc] |
0x00001bf6 ldr r0, [pc, 0xc0] |
0x00001bf8 add r1, pc | r1 = 0x38ac;
0x00001bfa add r3, pc | r3 = 0x38b2;
0x00001bfc adds r1, 7 | r1 += 7;
0x00001bfe add r0, pc | r0 = 0x38bc;
0x00001c00 blx 0x120c | log_assert_failed ();
| label_8:
0x00001c04 blx 0x10ec | r0 = log_get_max_level ();
0x00001c08 cmp r0, 2 |
0x00001c0a ittt le |
| if (r0 <= 2) {
0x00001c0c rsble r0, sl, 0 | __asm ("rsble r0, sl, 0");
| }
| if (r0 <= 2) {
0x00001c10 uxtble r0, r0 | __asm ("uxtble r0, r0");
| }
| if (r0 <= 2) {
0x00001c12 rsbs r4, r0, 0 | r4 = r0 - ;
| }
| if (r0 > 2) {
0x00001c14 bgt 0x1c4e | goto label_13;
| }
| label_2:
0x00001c16 cmp r4, 0 |
0x00001c18 it ge |
0x00001c1a mvnge r4, 0x55 | r4 = ~0x55;
| while (1) {
0x00001c1e movs r6, 0 | r6 = 0;
0x00001c20 b 0x1b7e | goto label_1;
| label_9:
0x00001c22 ldr r1, [pc, 0x98] |
0x00001c24 movw r2, 0x103 | r2 = 0x103;
0x00001c26 asrs r3, r0, 8 | r3 = r0 >> 8;
0x00001c28 ldr r3, [pc, 0x94] |
0x00001c2a movs r0, 3 | r0 = 3;
0x00001c2c add r1, pc | r1 = 0x38ee;
0x00001c2e add r3, pc | r3 = 0x38f2;
0x00001c30 adds r1, 7 | r1 += 7;
0x00001c32 blx 0x1384 | r0 = fcn_00001384 ();
0x00001c36 mov r4, r0 | r4 = r0;
0x00001c38 b 0x1c1e |
| }
| label_4:
0x00001c3a ldr r1, [pc, 0x88] |
0x00001c3c movs r2, 0xf2 | r2 = 0xf2;
0x00001c3e ldr r3, [pc, 0x88] |
0x00001c40 ldr r0, [pc, 0x88] |
0x00001c42 add r1, pc | r1 = 0x390c;
0x00001c44 add r3, pc | r3 = 0x3912;
0x00001c46 adds r1, 7 | r1 += 7;
0x00001c48 add r0, pc | r0 = 0x3918;
0x00001c4a blx 0x120c | log_assert_failed ();
| label_13:
0x00001c4e ldr r2, [pc, 0x80] |
0x00001c50 movs r3, 0xff | r3 = 0xff;
0x00001c52 ldr r4, [pc, 0x80] |
0x00001c54 mov r1, sl | r1 = sl;
0x00001c56 ldr r0, [pc, 0x80] |
0x00001c58 add r2, pc | r2 = 0x392e;
0x00001c5a add r4, pc | r4 = 0x3934;
0x00001c5c adds r2, 7 | r2 += 7;
0x00001c5e add r0, pc | r0 = 0x393c;
0x00001c60 strd r0, r4, [sp] | __asm ("strd r0, r4, [sp]");
0x00001c64 movs r0, 3 | r0 = 3;
0x00001c66 blx 0x12b4 | r0 = log_internal ();
0x00001c6a mov r4, r0 | r4 = r0;
0x00001c6c b 0x1c16 | goto label_2;
| label_10:
0x00001c6e ldr r1, [pc, 0x6c] |
0x00001c70 movw r2, 0x109 | r2 = 0x109;
0x00001c74 ldr r3, [pc, 0x68] |
0x00001c76 movs r0, 3 | r0 = 3;
0x00001c78 add r1, pc | r1 = 0x395a;
0x00001c7a add r3, pc | r3 = 0x395e;
0x00001c7c adds r1, 7 | r1 += 7;
0x00001c7e blx 0x1384 | r0 = fcn_00001384 ();
0x00001c82 mov r4, r0 | r4 = r0;
0x00001c84 b 0x1b7e | goto label_1;
| label_11:
0x00001c86 blx 0x1284 | stack_chk_fail ();
0x00001c8a nop |
0x00001c8c mvns r6, r1 | r6 = ~r1;
0x00001c8e movs r1, r0 | r1 = r0;
0x00001c90 lsls r0, r6, 4 | r0 = r6 << 4;
0x00001c92 movs r0, r0 |
0x00001c94 movs r4, 0x8a | r4 = 0x8a;
0x00001c96 movs r0, r0 |
0x00001c98 movs r4, 0x90 | r4 = 0x90;
0x00001c9a movs r0, r0 |
0x00001c9c movs r4, 0x90 | r4 = 0x90;
0x00001c9e movs r0, r0 |
0x00001ca0 orrs r2, r3 | r2 |= r3;
0x00001ca2 movs r1, r0 | r1 = r0;
0x00001ca4 movs r2, 0xc2 | r2 = 0xc2;
0x00001ca6 movs r0, r0 |
0x00001ca8 movs r3, 0x14 | r3 = 0x14;
0x00001caa movs r0, r0 |
0x00001cac adds r2, 0x24 | r2 += 0x24;
0x00001cae movs r0, r0 |
0x00001cb0 movs r2, 0xa4 | r2 = 0xa4;
0x00001cb2 movs r0, r0 |
0x00001cb4 adds r1, 0x5a | r1 += 0x5a;
0x00001cb6 movs r0, r0 |
0x00001cb8 movs r3, 0xa6 | r3 = 0xa6;
0x00001cba movs r0, r0 |
0x00001cbc movs r2, 0x70 | r2 = 0x70;
0x00001cbe movs r0, r0 |
0x00001cc0 adds r1, 0xd6 | r1 += 0xd6;
0x00001cc2 movs r0, r0 |
0x00001cc4 movs r2, 0x5a | r2 = 0x5a;
0x00001cc6 movs r0, r0 |
0x00001cc8 adds r1, 0x10 | r1 += 0x10;
0x00001cca movs r0, r0 |
0x00001ccc movs r3, 0x60 | r3 = 0x60;
0x00001cce movs r0, r0 |
0x00001cd0 movs r2, 0x44 | r2 = 0x44;
0x00001cd2 movs r0, r0 |
0x00001cd4 movs r3, 0x6e | r3 = 0x6e;
0x00001cd6 movs r0, r0 |
0x00001cd8 adds r1, 0xa6 | r1 += 0xa6;
0x00001cda movs r0, r0 |
0x00001cdc movs r2, 0x24 | r2 = 0x24;
0x00001cde movs r0, r0 |
0x00001ce0 adds r1, 0x8a | r1 += 0x8a;
0x00001ce2 movs r0, r0 |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/system-generators/systemd-fstab-generator @ 0x1ce4 */
| #include <stdint.h>
|
| #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
|
; (fcn) fcn.00001ce4 () | void fcn_00001ce4 (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;
0x00001ce4 svcmi 0xf0e92d | __asm ("svcmi 0xf0e92d");
0x00001ce8 sub sp, 0x5c |
0x00001cea mov r4, r2 | r4 = r2;
0x00001cec add r7, sp, 0x10 | r7 += var_10h;
0x00001cee ldr.w r2, [pc, 0xa20] | r2 = *(0x00002710);
0x00001cf2 str r3, [r7, 0xc] | *((r7 + 0xc)) = r3;
0x00001cf4 ldr.w r3, [pc, 0xa1c] |
0x00001cf8 add r2, pc | r2 += pc;
0x00001cfa str r0, [r7, 0x14] | *((r7 + 0x14)) = r0;
0x00001cfc ldrd sl, sb, [r7, 0x70] | __asm ("ldrd sl, sb, [r7, 0x70]");
0x00001d00 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00001d02 ldr.w fp, [r7, 0x84] | fp = *((r7 + 0x84));
0x00001d06 ldr r3, [r3] | r3 = *(0x2714);
0x00001d08 str r3, [r7, 0x44] | *((r7 + 0x44)) = r3;
0x00001d0a mov.w r3, 0 | r3 = 0;
0x00001d0e movs r3, 0 | r3 = 0;
0x00001d10 strd r3, r3, [r7, 0x18] | __asm ("strd r3, r3, [r7, 0x18]");
0x00001d14 strd r3, r3, [r7, 0x20] | __asm ("strd r3, r3, [r7, 0x20]");
0x00001d16 adds r3, 8 | r3 += 8;
0x00001d18 strd r3, r3, [r7, 0x28] | __asm ("strd r3, r3, [r7, 0x28]");
0x00001d1c ldr.w r3, [r7, 0x80] | r3 = *((r7 + 0x80));
0x00001d20 str r3, [r7, 0x10] | *((r7 + 0x10)) = r3;
0x00001d22 cmp r1, 0 |
| if (r1 == 0) {
0x00001d24 beq 0x1dd4 | goto label_25;
| }
0x00001d26 cmp r4, 0 |
| if (r4 == 0) {
0x00001d28 beq 0x1df0 | goto label_26;
| }
0x00001d2a cmp.w sb, 0 |
| if (sb == 0) {
0x00001d2e beq 0x1e0c | goto label_27;
| }
0x00001d30 cmp.w fp, 0 |
| if (fp == 0) {
0x00001d34 beq 0x1e28 | goto label_28;
| }
0x00001d36 mov r5, r1 | r5 = r1;
0x00001d38 cmp.w sl, 0 |
| if (sl != 0) {
0x00001d3c bne 0x1dac | goto label_29;
| }
| label_0:
0x00001d3e movs r1, 0x2f | r1 = 0x2f;
0x00001d40 mov r0, r4 | r0 = r4;
0x00001d42 blx 0x1104 | r0 = strchr (r0, r1);
0x00001d46 mov r6, r0 | r6 = r0;
0x00001d48 cmp r0, 0 |
| if (r0 != 0) {
0x00001d4a bne 0x1dc2 | goto label_30;
| }
0x00001d4c blx 0x10ec | r0 = log_get_max_level ();
0x00001d50 cmp r0, 3 |
0x00001d52 itt le |
| if (r0 > 3) {
0x00001d54 movle r0, r6 | r0 = r6;
| }
| if (r0 > 3) {
0x00001d56 movle r8, r6 | r8 = r6;
| }
| if (r0 > 3) {
0x00001d58 bgt 0x1e54 | goto label_31;
| }
| do {
| label_1:
0x00001d5a blx 0x1074 | safe_fclose ();
0x00001d5e ldr r0, [r7, 0x28] | r0 = *((r7 + 0x28));
| if (r0 != 0) {
0x00001d60 cbz r0, 0x1d68 |
0x00001d62 blx 0x11e8 | strv_free ();
0x00001d66 str r0, [r7, 0x28] | *((r7 + 0x28)) = r0;
| }
0x00001d68 ldr r0, [r7, 0x24] | r0 = *((r7 + 0x24));
| if (r0 != 0) {
0x00001d6a cbz r0, 0x1d70 |
0x00001d6c blx 0x11e8 | strv_free ();
| }
0x00001d70 mov r0, r6 | r0 = r6;
0x00001d72 blx 0x1158 | free (r0);
0x00001d76 ldr r0, [r7, 0x20] | r0 = *((r7 + 0x20));
0x00001d78 blx 0x1158 | free (r0);
0x00001d7c ldr r0, [r7, 0x1c] | r0 = *((r7 + 0x1c));
0x00001d7e blx 0x1158 | free (r0);
0x00001d82 ldr r0, [r7, 0x18] | r0 = *((r7 + 0x18));
0x00001d84 blx 0x1158 | free (r0);
0x00001d88 ldr.w r2, [pc, 0x98c] | r2 = *(0x00002718);
0x00001d8c ldr.w r3, [pc, 0x984] | r3 = *(0x2714);
0x00001d90 add r2, pc | r2 += pc;
0x00001d92 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00001d94 ldr r2, [r3] | r2 = *(0x2714);
0x00001d96 ldr r3, [r7, 0x44] | r3 = *((r7 + 0x44));
0x00001d98 eors r2, r3 | r2 ^= r3;
0x00001d9a mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00001d9e bne.w 0x246a | goto label_32;
| }
0x00001da2 mov r0, r8 | r0 = r8;
0x00001da4 adds r7, 0x4c | r7 += 0x4c;
0x00001da6 mov sp, r7 |
0x00001da8 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_29:
0x00001dac ldr.w r1, [pc, 0x96c] |
0x00001db0 mov r0, sl | r0 = sl;
0x00001db2 add r1, pc | r1 = 0x44d2;
0x00001db4 blx 0x1368 | r0 = strcmp (r0, r1);
0x00001db8 mov r8, r0 | r8 = r0;
0x00001dba mov r6, r0 | r6 = r0;
0x00001dbc cmp r0, 0 |
0x00001dbe beq 0x1d5a |
| } while (r0 == 0);
0x00001dc0 b 0x1d3e | goto label_0;
| label_30:
0x00001dc2 mov r0, r4 | r0 = r4;
0x00001dc4 blx 0x1134 | mount_point_is_api ();
0x00001dc6 invalid |
| if (r0 != 0) {
0x00001dca cbz r0, 0x1e44 |
0x00001dcc movs r6, 0 | r6 = 0;
0x00001dce ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x00001dd0 mov r8, r6 | r8 = r6;
0x00001dd2 b 0x1d5a | goto label_1;
| label_25:
0x00001dd4 ldr.w r1, [pc, 0x948] |
0x00001dd8 movw r2, 0x169 | r2 = 0x169;
0x00001ddc ldr.w r3, [pc, 0x944] |
0x00001de0 ldr.w r0, [pc, 0x944] |
0x00001de4 add r1, pc | r1 = 0x4508;
0x00001de6 add r3, pc | r3 = 0x450e;
0x00001de8 adds r1, 7 | r1 += 7;
0x00001dea add r0, pc | r0 = 0x4516;
0x00001dec blx 0x120c | log_assert_failed ();
| label_26:
0x00001df0 ldr.w r1, [pc, 0x938] |
0x00001df4 mov.w r2, 0x16a | r2 = 0x16a;
0x00001df8 ldr.w r3, [pc, 0x934] |
0x00001dfa subs r1, 0x34 | r1 -= 0x34;
0x00001dfc ldr.w r0, [pc, 0x934] |
0x00001e00 add r1, pc | r1 = 0x4530;
0x00001e02 add r3, pc | r3 = 0x4536;
0x00001e04 adds r1, 7 | r1 += 7;
0x00001e06 add r0, pc | r0 = 0x453e;
0x00001e08 blx 0x120c | log_assert_failed ();
| label_27:
0x00001e0c ldr.w r1, [pc, 0x928] |
0x00001e10 movw r2, 0x16b | r2 = 0x16b;
0x00001e14 ldr.w r3, [pc, 0x924] |
0x00001e16 subs r1, 0x24 | r1 -= 0x24;
0x00001e18 ldr.w r0, [pc, 0x924] |
0x00001e1c add r1, pc | r1 = 0x4558;
0x00001e1e add r3, pc | r3 = 0x455e;
0x00001e20 adds r1, 7 | r1 += 7;
0x00001e22 add r0, pc | r0 = 0x4566;
0x00001e24 blx 0x120c | log_assert_failed ();
| label_28:
0x00001e28 ldr.w r1, [pc, 0x918] |
0x00001e2c movw r2, 0x16d | r2 = 0x16d;
0x00001e30 ldr.w r3, [pc, 0x914] |
0x00001e34 ldr.w r0, [pc, 0x914] |
0x00001e38 add r1, pc | r1 = 0x4580;
0x00001e3a add r3, pc | r3 = 0x4586;
0x00001e3c adds r1, 7 | r1 += 7;
0x00001e3e add r0, pc | r0 = 0x458e;
0x00001e40 blx 0x120c | log_assert_failed ();
| }
0x00001e44 mov r0, r4 | r0 = r4;
0x00001e46 blx 0x12e4 | r0 = mount_point_ignore ();
0x00001e4a mov r3, r0 | r3 = r0;
| if (r0 != 0) {
0x00001e4c cbz r0, 0x1e80 |
0x00001e4e ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x00001e50 mov r8, r6 | r8 = r6;
0x00001e52 b 0x1d5a | goto label_1;
| label_31:
0x00001e54 ldr.w r2, [pc, 0x8f8] |
0x00001e58 movw r3, 0x173 | r3 = 0x173;
0x00001e5c ldr.w r1, [pc, 0x8f4] |
0x00001e5e adds r4, r6, r3 | r4 = r6 + r3;
0x00001e60 movs r0, 4 | r0 = 4;
0x00001e62 ldr.w r5, [pc, 0x8f4] |
0x00001e66 mov r8, r6 | r8 = r6;
0x00001e68 add r2, pc | r2 = 0x45bc;
0x00001e6a str r4, [sp, 8] | var_8h_2 = r4;
0x00001e6c add r1, pc | r1 = 0x45c4;
0x00001e6e adds r2, 7 | r2 += 7;
0x00001e70 add r5, pc | r5 = 0x45ce;
0x00001e72 str r1, [sp, 4] | var_4h = r1;
0x00001e74 str r5, [sp] | *(sp) = r5;
0x00001e76 mov r1, r6 | r1 = r6;
0x00001e78 blx 0x12b4 | log_internal ();
0x00001e7c ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x00001e7e b 0x1d5a | goto label_1;
| }
0x00001e80 ldr.w r6, [pc, 0x8d8] |
0x00001e84 add.w r2, r7, 0x24 | r2 = r7 + 0x24;
0x00001e88 str r0, [sp, 4] | var_4h = r0;
0x00001e8a str r2, [sp] | *(sp) = r2;
0x00001e8c mov r2, r0 | r2 = r0;
0x00001e8e add r6, pc | r6 = 0x45ee;
0x00001e90 str r0, [r7, 8] | *((r7 + 8)) = r0;
0x00001e92 mov r1, r6 | r1 = r6;
0x00001e94 mov r0, sb | r0 = sb;
0x00001e96 blx 0x11f4 | r0 = fstab_filter_options ();
0x00001e9a subs.w r8, r0, 0 | r8 = r0 - 0;
0x00001e9e ldr r3, [r7, 8] | r3 = *((r7 + 8));
| if (r8 < r0) {
0x00001ea0 blt.w 0x1ff8 | goto label_33;
| }
0x00001ea4 add.w r2, r7, 0x28 | r2 = r7 + 0x28;
0x00001ea8 str r3, [sp, 4] | var_4h = r3;
0x00001eaa str r2, [sp] | *(sp) = r2;
0x00001eac add.w r1, r6, 0x18 | r1 = r6 + 0x18;
0x00001eae lsls r0, r3, 4 | r0 = r3 << 4;
0x00001eb0 mov r2, r3 | r2 = r3;
0x00001eb2 mov r0, sb | r0 = sb;
0x00001eb4 str r3, [r7, 8] | *((r7 + 8)) = r3;
0x00001eb6 blx 0x11f4 | r0 = fstab_filter_options ();
0x00001eba subs.w r8, r0, 0 | r8 = r0 - 0;
0x00001ebe ldr r3, [r7, 8] | r3 = *((r7 + 8));
| if (r8 < r0) {
0x00001ec0 blt.w 0x1ff8 | goto label_33;
| }
0x00001ec4 ldr.w r1, [pc, 0x898] |
0x00001ec8 mov r0, r4 | r0 = r4;
0x00001eca add r1, pc | r1 = 0x462e;
0x00001ecc blx 0x1308 | r0 = path_compare ();
0x00001ed0 mov r6, r0 | r6 = r0;
0x00001ed2 cmp r0, 0 |
| if (r0 != 0) {
0x00001ed4 bne 0x1f5c | goto label_34;
| }
0x00001ed6 ldr r3, [r7, 0x7c] | r3 = *((r7 + 0x7c));
0x00001ed8 lsls r3, r3, 0x1f | r3 <<= 0x1f;
| if (r3 >= r3) {
0x00001eda bpl.w 0x2052 | goto label_35;
| }
0x00001ede blx 0x10ec | r0 = log_get_max_level ();
0x00001ee2 cmp r0, 3 |
| if (r0 > 3) {
0x00001ee4 bgt.w 0x202e | goto label_36;
| }
0x00001ee8 ldr r3, [r7, 0x7c] | r3 = *((r7 + 0x7c));
0x00001eea lsls r3, r3, 0x1e | r3 <<= 0x1e;
0x00001eec bmi 0x1f20 |
| while (r6 >= r3) {
| label_3:
0x00001eee ldr r3, [r7, 0x7c] | r3 = *((r7 + 0x7c));
0x00001ef0 lsls r0, r3, 0x1d | r0 = r3 << 0x1d;
| if (r0 < r3) {
0x00001ef2 bpl 0x1f20 |
0x00001ef4 blx 0x10ec | r0 = log_get_max_level ();
0x00001ef8 cmp r0, 3 |
| if (r0 <= 3) {
0x00001efa ble 0x1f20 | goto label_2;
| }
0x00001efc ldr.w r3, [pc, 0x864] |
0x00001f00 movs r1, 0 | r1 = 0;
0x00001f02 ldr.w r2, [pc, 0x864] |
0x00001f06 movs r0, 4 | r0 = 4;
0x00001f08 add r3, pc | r3 = 0x4670;
0x00001f0a str r3, [sp, 4] | var_4h = r3;
0x00001f0c add r2, pc | r2 = 0x467a;
0x00001f0e ldr.w r3, [pc, 0x85c] |
0x00001f12 adds r2, 7 | r2 += 7;
0x00001f14 add r3, pc | r3 = 0x4686;
0x00001f16 str r3, [sp] | *(sp) = r3;
0x00001f18 movw r3, 0x189 | r3 = 0x189;
0x00001f1c blx 0x12b4 | log_internal ();
| }
| label_2:
0x00001f20 ldr r3, [r7, 0x24] | r3 = *((r7 + 0x24));
| if (r3 != 0) {
0x00001f22 cbz r3, 0x1f32 |
0x00001f24 ldr r3, [r3] | r3 = *(r3);
| if (r3 == 0) {
0x00001f26 cbz r3, 0x1f32 | goto label_7;
| }
0x00001f28 blx 0x10ec | r0 = log_get_max_level ();
0x00001f2c cmp r0, 3 |
| if (r0 > 3) {
0x00001f2e bgt.w 0x230e | goto label_37;
| }
| }
| label_7:
0x00001f32 ldr r6, [r7, 0x28] | r6 = *((r7 + 0x28));
| if (r6 != 0) {
0x00001f34 cbz r6, 0x1f44 |
0x00001f36 ldr r3, [r6] | r3 = *(r6);
| if (r3 == 0) {
0x00001f38 cbz r3, 0x1f44 | goto label_8;
| }
0x00001f3a blx 0x10ec | r0 = log_get_max_level ();
0x00001f3e cmp r0, 3 |
| if (r0 > 3) {
0x00001f40 bgt.w 0x2334 | goto label_38;
| }
| }
| label_8:
0x00001f44 ldr r3, [r7, 0x7c] | r3 = *((r7 + 0x7c));
0x00001f46 mov r0, r6 | r0 = r6;
0x00001f48 bic r3, r3, 7 | r3 = BIT_MASK (r3, 7);
0x00001f4c str r3, [r7, 0x7c] | *((r7 + 0x7c)) = r3;
0x00001f4e blx 0x11e8 | strv_free ();
0x00001f52 str r0, [r7, 0x28] | *((r7 + 0x28)) = r0;
0x00001f54 ldr r0, [r7, 0x24] | r0 = *((r7 + 0x24));
0x00001f56 blx 0x11e8 | strv_free ();
0x00001f5a str r0, [r7, 0x24] | *((r7 + 0x24)) = r0;
| label_34:
0x00001f5c ldr.w r1, [pc, 0x810] |
0x00001f60 add.w r2, r7, 0x18 | r2 = r7 + 0x18;
0x00001f64 mov r0, r4 | r0 = r4;
0x00001f66 add r1, pc | r1 = 0x46da;
0x00001f68 blx 0x10b0 | r0 = unit_name_from_path ();
0x00001f6c subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 >= r0) {
0x00001f70 blt 0x2004 |
0x00001f72 ldr.w r0, [pc, 0x800] |
0x00001f76 add r0, pc | r0 = 0x46f0;
0x00001f78 blx 0x1170 | r0 = secure_getenv ();
0x00001f7c mov r1, r0 | r1 = r0;
0x00001f7e cmp r0, 0 |
| if (r0 == 0) {
0x00001f80 beq.w 0x208a | goto label_39;
| }
| label_4:
0x00001f84 add.w r3, r7, 0x2c | r3 = r7 + 0x2c;
0x00001f88 ldrd r0, r2, [r7, 0x14] | __asm ("ldrd r0, r2, [r7, 0x14]");
0x00001f8c str r3, [r7, 4] | *((r7 + 4)) = r3;
0x00001f8e blx 0x1320 | generator_open_unit_file ();
0x00001f90 strd pc, r1, [r8, 0x2c0] | __asm ("strd pc, r1, [r8, 0x2c0]");
0x00001f94 lsrs r0, r0, 0x20 | r0 >>= 0x20;
| if (r0 >= r0) {
0x00001f96 blt 0x1ffe |
0x00001f98 ldr.w r2, [pc, 0x7dc] |
0x00001f9c mov r3, fp | r3 = fp;
0x00001f9e ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x00001fa0 movs r1, 1 | r1 = 1;
0x00001fa2 add r2, pc | r2 = 0x471e;
0x00001fa4 blx 0x1290 | fprintf_chk ()
0x00001fa8 cmp.w sl, 0 |
| if (sl != 0) {
0x00001fac beq 0x1fd4 |
0x00001fae ldr.w r3, [pc, 0x7cc] | r3 = *(0x0000277c);
0x00001fb2 add.w r6, r7, 0x38 | r6 = r7 + 0x38;
0x00001fb6 add r3, pc | r3 += pc;
0x00001fb8 ldm.w r3, {r0, r1, r2} | r0 = *(r3);
| r1 = *((r3 + 4));
| r2 = *((r3 + 8));
0x00001fbc stm.w r6, {r0, r1, r2} | *(r6) = r0;
| *((r6 + 4)) = r1;
| *((r6 + 8)) = r2;
0x00001fc0 mov r1, sl | r1 = sl;
0x00001fc2 mov r0, r6 | r0 = r6;
0x00001fc4 blx 0x1260 | r0 = strv_find ();
| if (r0 == 0) {
0x00001fc8 cbz r0, 0x1fd4 | goto label_9;
| }
0x00001fca ldr r3, [r7, 0x7c] | r3 = *((r7 + 0x7c));
0x00001fcc ands r3, r3, 4 | r3 &= 4;
| if (r3 == r3) {
0x00001fd0 beq.w 0x235c | goto label_40;
| }
| }
| label_9:
0x00001fd4 ldr r3, [r7, 0x2c] | r3 = *((r7 + 0x2c));
0x00001fd6 str r3, [r7, 8] | *((r7 + 8)) = r3;
0x00001fd8 cmp r3, 0 |
| if (r3 != 0) {
0x00001fda bne 0x2092 | goto label_41;
| }
0x00001fdc ldr.w r1, [pc, 0x7a0] |
0x00001fe0 mov.w r2, 0x140 | r2 = 0x140;
0x00001fe4 ldr.w r3, [pc, 0x79c] |
0x00001fe8 ldr.w r0, [pc, 0x79c] |
0x00001fec add r1, pc | r1 = 0x4770;
0x00001fee add r3, pc | r3 = 0x4776;
0x00001ff0 adds r1, 7 | r1 += 7;
0x00001ff2 add r0, pc | r0 = 0x477e;
0x00001ff4 blx 0x120c | log_assert_failed ();
| label_33:
0x00001ff8 ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x00001ffa mov r6, r3 | r6 = r3;
0x00001ffc b 0x1d5a | goto label_1;
| }
| label_5:
0x00001ffe ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x00002000 movs r6, 0 | r6 = 0;
0x00002002 b 0x1d5a | goto label_1;
| }
0x00002004 blx 0x10ec | r0 = log_get_max_level ();
0x00002008 cmp r0, 2 |
0x0000200a ittt le |
| if (r0 <= 2) {
0x0000200c rsble r8, r8, 0 | __asm ("rsble r8, r8, 0");
| }
| if (r0 <= 2) {
0x00002010 uxtble r8, r8 | __asm ("uxtble r8, r8");
| }
| if (r0 <= 2) {
0x00002014 rsb.w r8, r8, 0 | r8 -= ;
| }
0x00002016 lsrs r0, r0, 0x20 | r0 >>= 0x20;
| if (r0 > r0) {
0x00002018 bgt.w 0x22e6 | goto label_42;
| }
| label_6:
0x0000201c cmp.w r8, 0 |
0x00002020 ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x00002022 mov.w r6, 0 | r6 = 0;
0x00002026 it ge |
| if (r8 < 0) {
0x00002028 mvnge r8, 0x55 | r8 = ~0x55;
| }
0x0000202c b 0x1d5a | goto label_1;
| label_36:
0x0000202e ldr.w r3, [pc, 0x75c] |
0x00002032 mov r1, r6 | r1 = r6;
0x00002034 ldr.w r2, [pc, 0x758] |
0x00002038 movs r0, 4 | r0 = 4;
0x0000203a add r3, pc | r3 = 0x47cc;
0x0000203c str r3, [sp, 4] | var_4h = r3;
0x0000203e add r2, pc | r2 = 0x47d2;
0x00002040 ldr.w r3, [pc, 0x750] |
0x00002044 adds r2, 7 | r2 += 7;
0x00002046 add r3, pc | r3 = 0x47de;
0x00002048 str r3, [sp] | *(sp) = r3;
0x0000204a movw r3, 0x185 | r3 = 0x185;
0x0000204c asrs r5, r0, 0xe | r5 = r0 >> 0xe;
0x0000204e blx 0x12b4 | log_internal ();
| label_35:
0x00002052 ldr r3, [r7, 0x7c] | r3 = *((r7 + 0x7c));
0x00002054 lsls r6, r3, 0x1e | r6 = r3 << 0x1e;
0x00002056 bpl.w 0x1eee |
| }
0x0000205a blx 0x10ec | r0 = log_get_max_level ();
0x0000205e cmp r0, 3 |
| if (r0 <= 3) {
0x00002060 ble.w 0x1f20 | goto label_2;
| }
0x00002064 ldr.w r3, [pc, 0x730] |
0x00002068 movs r1, 0 | r1 = 0;
0x0000206a ldr.w r2, [pc, 0x730] |
0x0000206e movs r0, 4 | r0 = 4;
0x00002070 add r3, pc | r3 = 0x480c;
0x00002072 str r3, [sp, 4] | var_4h = r3;
0x00002074 add r2, pc | r2 = 0x4816;
0x00002076 ldr.w r3, [pc, 0x728] |
0x0000207a adds r2, 7 | r2 += 7;
0x0000207c add r3, pc | r3 = 0x4822;
0x0000207e str r3, [sp] | *(sp) = r3;
0x00002080 movw r3, 0x187 | r3 = 0x187;
0x00002084 blx 0x12b4 | log_internal ();
0x00002088 b 0x1eee | goto label_3;
| label_39:
0x0000208a ldr.w r1, [pc, 0x718] |
0x0000208e add r1, pc | r1 = 0x4838;
0x00002090 b 0x1f84 | goto label_4;
| label_41:
0x00002092 ldr.w r6, [pc, 0x714] |
0x00002096 mov r1, sb | r1 = sb;
0x00002098 ldr.w r3, [pc, 0x710] |
0x0000209c ldr r0, [r7, 8] | r0 = *((r7 + 8));
0x0000209e add r6, pc | r6 = "roothash";
0x000020a0 add r3, pc | r3 = 0x4850;
0x000020a2 add.w r2, r6, 0x38 | r2 = r6 + 0x38;
0x000020a6 bl 0x1ad4 | r0 = fcn_00001ad4 (r0, r1, r2, r3);
0x000020aa subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x000020ae blt 0x1ffe | goto label_5;
| }
0x000020b0 ldr.w r3, [pc, 0x6fc] |
0x000020b4 add.w r2, r6, 0x4c | r2 = r6 + 0x4c;
0x000020b8 ldr r0, [r7, 8] | r0 = *((r7 + 8));
0x000020ba mov r1, sb | r1 = sb;
0x000020bc add r3, pc | r3 = 0x4870;
0x000020be bl 0x1ad4 | r0 = fcn_00001ad4 (r0, r1, r2, r3);
0x000020c2 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x000020c6 blt 0x1ffe | goto label_5;
| }
0x000020c8 ldr.w r3, [pc, 0x6e8] |
0x000020cc add.w r2, r6, 0x60 | r2 = r6 + 0x60;
0x000020ce lsls r0, r4, 9 | r0 = r4 << 9;
0x000020d0 ldr r0, [r7, 8] | r0 = *((r7 + 8));
0x000020d2 mov r1, sb | r1 = sb;
0x000020d4 add r3, pc | r3 = 0x488c;
0x000020d6 bl 0x1ad4 | r0 = fcn_00001ad4 (r0, r1, r2, r3);
0x000020da subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x000020de blt 0x1ffe | goto label_5;
| }
0x000020e0 movs r3, 0 | r3 = 0;
0x000020e2 add.w r2, r7, 0x30 | r2 = r7 + 0x30;
0x000020e6 str r2, [sp] | *(sp) = r2;
0x000020e8 add.w r1, r6, 0x74 | r1 = r6 + 0x74;
0x000020ec mov r2, r3 | r2 = r3;
0x000020ee mov r0, sb | r0 = sb;
0x000020f0 str r3, [sp, 4] | var_4h = r3;
0x000020f2 strd r3, r3, [r7, 0x30] | __asm ("strd r3, r3, [r7, 0x30]");
0x000020f6 blx 0x11f4 | r0 = fstab_filter_options ();
0x000020fa subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x000020fe blt.w 0x2472 | goto label_43;
| }
| if (r8 == r0) {
0x00002102 beq.w 0x246e | goto label_44;
| }
0x00002106 ldr r0, [r7, 0x30] | r0 = *((r7 + 0x30));
0x00002108 add.w r1, r7, 0x34 | r1 = r7 + 0x34;
0x0000210c blx 0x1068 | r0 = specifier_escape_strv ();
0x00002110 subs.w r8, r0, 0 | r8 = r0 - 0;
0x00002114 mov.w r3, 0 | r3 = 0;
0x00002116 lsls r0, r0, 0xc | r0 <<= 0xc;
| if (r0 < r0) {
0x00002118 blt.w 0x2576 | goto label_45;
| }
0x0000211c ldr.w r1, [pc, 0x698] |
0x00002120 mov r2, r3 | r2 = r3;
0x00002122 ldr r0, [r7, 0x34] | r0 = *((r7 + 0x34));
0x00002124 add r1, pc | r1 = 0x48e0;
0x00002126 blx 0x108c | strv_join_full ();
0x0000212a movs r3, 0 | r3 = 0;
0x0000212c mov r6, r0 | r6 = r0;
0x0000212e cmp r0, 0 |
| if (r0 == 0) {
0x00002130 beq.w 0x255e | goto label_46;
| }
0x00002134 ldr.w r2, [pc, 0x684] |
0x00002138 mov r8, r3 | r8 = r3;
0x0000213a ldr r0, [r7, 8] | r0 = *((r7 + 8));
0x0000213c mov r3, r6 | r3 = r6;
0x0000213e movs r1, 1 | r1 = 1;
0x00002140 add r2, pc | r2 = 0x4900;
0x00002142 blx 0x1290 | fprintf_chk ()
| label_12:
0x00002146 mov r0, r6 | r0 = r6;
0x00002148 blx 0x1158 | free (r0);
0x0000214c ldr r0, [r7, 0x34] | r0 = *((r7 + 0x34));
| if (r0 != 0) {
0x0000214e cbz r0, 0x2156 |
0x00002150 blx 0x11e8 | strv_free ();
0x00002154 str r0, [r7, 0x34] | *((r7 + 0x34)) = r0;
| }
0x00002156 ldr r0, [r7, 0x30] | r0 = *((r7 + 0x30));
| if (r0 != 0) {
0x00002158 cbz r0, 0x215e |
0x0000215a blx 0x11e8 | strv_free ();
| }
0x0000215e ldr r3, [r7, 0x2c] | r3 = *((r7 + 0x2c));
0x00002160 cmp.w r8, 0 |
0x00002164 mov r0, r3 | r0 = r3;
| if (r8 < 0) {
0x00002166 blt.w 0x25a2 | goto label_47;
| }
0x0000216a ldr r2, [r7, 0x7c] | r2 = *((r7 + 0x7c));
0x0000216c lsls r1, r2, 0x1d | r1 = r2 << 0x1d;
| if (r1 == r2) {
0x0000216e beq.w 0x245a | goto label_48;
| }
| label_11:
0x00002172 ldr r2, [r7, 0x78] | r2 = *((r7 + 0x78));
| if (r2 == 0) {
0x00002174 cbz r2, 0x2190 | goto label_49;
| }
0x00002176 mov r0, r3 | r0 = r3;
0x00002178 ldr r1, [r7, 0x14] | r1 = *((r7 + 0x14));
0x0000217a mov r3, r4 | r3 = r4;
0x0000217c mov r2, r5 | r2 = r5;
0x0000217e str.w sl, [sp] | __asm ("str.w sl, [sp]");
0x00002180 adr r0, 0 | r0 = 0;
0x00002182 blx 0x12c0 | r0 = generator_write_fsck_deps ();
0x00002186 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x0000218a blt.w 0x1ffe | goto label_5;
| }
0x0000218e ldr r3, [r7, 0x2c] | r3 = *((r7 + 0x2c));
| label_49:
0x00002190 mov r0, r3 | r0 = r3;
0x00002192 mov r1, r5 | r1 = r5;
0x00002194 blx 0x1344 | r0 = generator_write_blockdev_dependency ();
0x00002198 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x0000219c blt.w 0x1ffe | goto label_5;
| }
0x000021a0 ldr.w r0, [pc, 0x61c] |
0x000021a4 movs r2, 9 | r2 = 9;
0x000021a6 ldr r3, [r7, 0x2c] | r3 = *((r7 + 0x2c));
0x000021a8 movs r1, 1 | r1 = 1;
0x000021aa add r0, pc | r0 = 0x496e;
0x000021ac blx 0x1254 | fwrite (r0, r1, r2, r3);
0x000021b0 ldr r3, [r7, 0xc] | r3 = *((r7 + 0xc));
| if (r3 != 0) {
0x000021b2 cbz r3, 0x21c2 |
0x000021b4 ldr.w r2, [pc, 0x60c] |
0x000021b8 movs r1, 1 | r1 = 1;
0x000021ba ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x000021bc add r2, pc | r2 = "Skipping /usr/ directory handling, as /dev/nfs was requested.";
0x000021be blx 0x1290 | fprintf_chk ()
0x000021c0 invalid |
| }
0x000021c2 ldr.w r3, [pc, 0x604] |
0x000021c6 mov r0, r4 | r0 = r4;
0x000021c8 ldr.w r2, [pc, 0x600] |
0x000021cc add r3, pc | r3 = 0x499a;
0x000021ce add r2, pc | r2 = 0x499e;
0x000021d0 mov r1, r3 | r1 = r3;
0x000021d2 str r2, [r7, 0xc] | *((r7 + 0xc)) = r2;
0x000021d4 str r3, [r7, 8] | *((r7 + 8)) = r3;
0x000021d6 blx 0x11a0 | r0 = strreplace ();
0x000021da mov r6, r0 | r6 = r0;
0x000021dc cmp r0, 0 |
| if (r0 == 0) {
0x000021de beq.w 0x2416 | goto label_50;
| }
0x000021e0 strh r2, [r3, 8] | *((r3 + 8)) = r2;
0x000021e2 ldr.w r2, [pc, 0x5ec] |
0x000021e6 mov r3, r0 | r3 = r0;
0x000021e8 movs r1, 1 | r1 = 1;
0x000021ea ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x000021ec add r2, pc | r2 = 0x49c2;
0x000021ee blx 0x1290 | fprintf_chk ()
0x000021f0 invalid |
0x000021f4 mov r1, r5 | r1 = r5;
0x000021f6 bl 0x1818 | r0 = fcn_00001818 (r0, r1);
0x000021fa subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x000021fe blt 0x22e2 | goto label_13;
| }
0x00002200 cmp.w sl, 0 |
| if (sl != 0) {
0x00002204 beq 0x221e |
0x00002206 ldrb.w r3, [sl] | r3 = *(sl);
| if (r3 == 0) {
0x0000220a cbz r3, 0x221e | goto label_10;
| }
0x0000220c ldr.w r1, [pc, 0x5c4] |
0x00002210 mov r0, sl | r0 = sl;
0x00002212 add r1, pc | r1 = 0x49ea;
0x00002214 blx 0x1368 | strcmp (r0, r1);
0x00002216 invalid |
| if (r3 != 0) {
0x0000221a bne.w 0x2432 | goto label_51;
| }
| }
| label_10:
0x0000221e add.w r3, r7, 0x20 | r3 = r7 + 0x20;
0x00002222 ldr r0, [r7, 0x14] | r0 = *((r7 + 0x14));
0x00002224 str r3, [sp] | *(sp) = r3;
0x00002226 mov r2, r4 | r2 = r4;
0x00002228 mov r3, sb | r3 = sb;
0x0000222a mov r1, r5 | r1 = r5;
0x0000222c blx 0x1110 | r0 = generator_write_timeouts ();
0x00002230 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x00002234 blt 0x22e2 | goto label_13;
| }
0x00002236 ldr r0, [r7, 0x14] | r0 = *((r7 + 0x14));
0x00002238 mov r3, sb | r3 = sb;
0x0000223a mov r2, r4 | r2 = r4;
0x0000223c mov r1, r5 | r1 = r5;
0x0000223e blx 0x132c | r0 = generator_write_device_deps ();
0x00002242 subs.w r8, r0, 0 | r8 = r0 - 0;
0x00002244 lsrs r0, r0, 0x20 | r0 >>= 0x20;
| if (r0 < r0) {
0x00002246 blt 0x22e2 | goto label_13;
| }
0x00002248 ldr.w r3, [pc, 0x58c] |
0x0000224c mov r1, r4 | r1 = r4;
0x0000224e ldr.w r2, [pc, 0x58c] |
0x00002252 ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x00002254 add r3, pc | r3 = 0x4a30;
0x00002256 add r2, pc | r2 = 0x4a38;
0x00002258 adds r3, 0x94 | r3 += 0x94;
0x0000225a str r2, [sp] | *(sp) = r2;
0x0000225c mov r2, sb | r2 = sb;
0x0000225e bl 0x190c | r0 = fcn_0000190c (r0, r1, r2, r3, r4);
0x00002262 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x00002266 blt 0x22e2 | goto label_13;
| }
0x00002268 ldr r1, [r7, 0x20] | r1 = *((r7 + 0x20));
0x0000226a ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x0000226c bl 0x187c | r0 = fcn_0000187c (r0, r1);
0x00002270 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x00002274 blt 0x22e2 | goto label_13;
| }
0x00002276 ldr r3, [r7, 0x7c] | r3 = *((r7 + 0x7c));
0x00002278 lsls r2, r3, 0x1a | r2 = r3 << 0x1a;
| if (r2 < r3) {
0x0000227a bmi.w 0x251a | goto label_52;
| }
0x0000227e ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x00002280 blx 0x1390 | r0 = fcn_00001390 ();
0x00002284 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x00002288 blt.w 0x24f8 | goto label_53;
| }
0x0000228a strh r6, [r6, 8] | *((r6 + 8)) = r6;
0x0000228c ldr r3, [r7, 0x7c] | r3 = *((r7 + 0x7c));
0x0000228e lsls r3, r3, 0x1c | r3 <<= 0x1c;
| if (r3 < r3) {
0x00002290 bmi.w 0x24e2 | goto label_54;
| }
| label_15:
0x00002294 ldr r3, [r7, 0x7c] | r3 = *((r7 + 0x7c));
0x00002296 lsls r0, r3, 0x1b | r0 = r3 << 0x1b;
| if (r0 < r3) {
0x00002298 bmi.w 0x24ce | goto label_55;
| }
| label_14:
0x0000229c ldr r3, [r7, 0x7c] | r3 = *((r7 + 0x7c));
0x0000229e lsls r1, r3, 0x1d | r1 = r3 << 0x1d;
0x000022a0 and r5, r3, 2 | r5 = r3 & 2;
0x000022a2 lsls r2, r0, 0x14 | r2 = r0 << 0x14;
| if (r2 < r0) {
0x000022a4 bmi.w 0x25b2 | goto label_56;
| }
0x000022a8 lsls r2, r3, 0x1f | r2 = r3 << 0x1f;
0x000022aa ldr r4, [r7, 0x24] | r4 = *((r7 + 0x24));
| if (r2 >= r3) {
0x000022ac bmi 0x22bc |
0x000022ae cmp r4, 0 |
| if (r4 == 0) {
0x000022b0 beq.w 0x2652 | goto label_57;
| }
0x000022b4 ldr r3, [r4] | r3 = *(r4);
0x000022b6 cmp r3, 0 |
| if (r3 == 0) {
0x000022b8 beq.w 0x2652 | goto label_57;
| }
| }
| label_18:
0x000022bc ldr.w r5, [pc, 0x520] |
0x000022c0 add r5, pc | r5 = 0x4aa4;
| do {
0x000022c2 cmp r4, 0 |
| if (r4 == 0) {
0x000022c4 beq.w 0x24aa | goto label_58;
| }
0x000022c8 ldr r1, [r4], 4 | r1 = *(r4);
| r4 += 4;
0x000022cc cmp r1, 0 |
| if (r1 == 0) {
0x000022ce beq.w 0x24aa | goto label_58;
| }
0x000022d2 ldr r3, [r7, 0x18] | r3 = *((r7 + 0x18));
0x000022d4 mov r2, r5 | r2 = r5;
0x000022d6 ldr r0, [r7, 0x14] | r0 = *((r7 + 0x14));
0x000022d8 blx 0x1218 | r0 = generator_add_symlink ();
0x000022dc subs.w r8, r0, 0 | r8 = r0 - 0;
0x000022e0 bge 0x22c2 |
| } while (r8 >= r0);
| label_13:
0x000022e2 ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x000022e4 b 0x1d5a | goto label_1;
| label_42:
0x000022e6 ldr.w r2, [pc, 0x4fc] |
0x000022ea mov r1, r8 | r1 = r8;
0x000022ec ldr.w r5, [pc, 0x4f8] |
0x000022f0 mov.w r3, 0x196 | r3 = 0x196;
0x000022f4 ldr.w r4, [pc, 0x4f4] |
0x000022f8 movs r0, 3 | r0 = 3;
0x000022fa add r2, pc | r2 = 0x4ae4;
0x000022fc add r5, pc | r5 = 0x4ae8;
0x000022fe adds r2, 7 | r2 += 7;
0x00002300 add r4, pc | r4 = 0x4af0;
0x00002302 strd r4, r5, [sp] | __asm ("strd r4, r5, [sp]");
0x00002306 blx 0x12b4 | r0 = log_internal ();
0x0000230a mov r8, r0 | r8 = r0;
0x0000230c b 0x201c | goto label_6;
| label_37:
0x0000230e ldr.w r3, [pc, 0x4e0] |
0x00002312 movs r1, 0 | r1 = 0;
0x00002314 ldr.w r2, [pc, 0x4dc] |
0x00002316 movs r4, 0xdc | r4 = 0xdc;
0x00002318 movs r0, 4 | r0 = 4;
0x0000231a add r3, pc | r3 = 0x4b10;
0x0000231c str r3, [sp, 4] | var_4h = r3;
0x0000231e add r2, pc | r2 = 0x4b16;
0x00002320 ldr.w r3, [pc, 0x4d4] |
0x00002324 adds r2, 7 | r2 += 7;
0x00002326 add r3, pc | r3 = 0x4b22;
0x00002328 str r3, [sp] | *(sp) = r3;
0x0000232a movw r3, 0x18b | r3 = 0x18b;
0x0000232e blx 0x12b4 | log_internal ();
0x00002332 b 0x1f32 | goto label_7;
| label_38:
0x00002334 ldr.w r3, [pc, 0x4c4] |
0x00002338 movs r1, 0 | r1 = 0;
0x0000233a ldr.w r2, [pc, 0x4c4] |
0x0000233e movs r0, 4 | r0 = 4;
0x00002340 add r3, pc | r3 = 0x4b40;
0x00002342 str r3, [sp, 4] | var_4h = r3;
0x00002344 add r2, pc | r2 = 0x4b4a;
0x00002346 ldr.w r3, [pc, 0x4bc] |
0x0000234a adds r2, 7 | r2 += 7;
0x0000234c add r3, pc | r3 = 0x4b56;
0x0000234e str r3, [sp] | *(sp) = r3;
0x00002350 movw r3, 0x18d | r3 = 0x18d;
0x00002354 blx 0x12b4 | log_internal ();
0x00002358 ldr r6, [r7, 0x28] | r6 = *((r7 + 0x28));
0x0000235a b 0x1f44 | goto label_8;
| label_40:
0x0000235c ldr.w r8, [pc, 0x4a8] |
0x00002360 add.w r2, r7, 0x34 | r2 = r7 + 0x34;
0x00002364 strd r3, r3, [sp] | __asm ("strd r3, r3, [sp]");
0x00002368 mov r0, sb | r0 = sb;
0x0000236a str r3, [r7, 8] | *((r7 + 8)) = r3;
0x0000236c add r8, pc |
0x0000236e add.w r8, r8, 0x30 | r8 = 0x4ba8;
0x00002372 mov r1, r8 | r1 = r8;
0x00002374 blx 0x11f4 | r0 = fstab_filter_options ();
0x00002378 cmp r0, 0 |
0x0000237a ldr r3, [r7, 8] | r3 = *((r7 + 8));
| if (r0 < 0) {
0x0000237c blt.w 0x2496 | goto label_59;
| }
0x00002380 ldr r2, [r7, 0x34] | r2 = *((r7 + 0x34));
0x00002382 cmp r2, r8 |
| if (r2 != r8) {
0x00002384 bne.w 0x1fd4 | goto label_9;
| }
0x00002388 ldr.w r0, [pc, 0x480] |
0x0000238c mov r8, r3 | r8 = r3;
0x0000238e ldr.w r2, [pc, 0x480] |
0x00002392 str.w sb, [r7, 0x3c] | __asm ("str.w sb, [r7, 0x3c]");
0x00002396 mov sb, r3 | sb = r3;
0x00002398 str.w fp, [r7, 8] | __asm ("str.w fp, [r7, 8]");
0x0000239c add r0, pc | r0 = "ERRNO=%i";
0x0000239e mov fp, sl |
0x000023a0 mov sl, r4 | sl = r4;
0x000023a2 mov r4, r3 | r4 = r3;
0x000023a4 add r2, pc | r2 = 0x4bba;
0x000023a6 str r2, [r7, 0x40] | *((r7 + 0x40)) = r2;
| do {
0x000023a8 add.w sb, sb, 1 | sb++;
0x000023ac blx 0x11c4 | strlen (r0);
0x000023b0 cmp.w sb, 3 |
0x000023b4 add r8, r0 | r8 += r0;
| if (sb == 3) {
0x000023b6 beq 0x23c0 | goto label_60;
| }
0x000023b8 ldr.w r0, [r6, sb, lsl 2] | offset_0 = sb << 2;
| r0 = *((r6 + offset_0));
0x000023bc cmp r0, 0 |
0x000023be bne 0x23a8 |
| } while (r0 != 0);
| label_60:
0x000023c0 add.w r8, r8, 1 | r8++;
0x000023c4 mov r3, r4 | r3 = r4;
0x000023c6 cmp.w r8, 0x400000 |
0x000023ca mov r4, sl | r4 = sl;
0x000023cc mov sl, fp | sl = fp;
0x000023ce ldr.w fp, [r7, 8] | fp = *((r7 + 8));
| if (r8 > 0x400000) {
0x000023d2 bhi.w 0x26a6 | goto label_61;
| }
0x000023d6 mov r2, r8 | r2 = r8;
0x000023d8 ldr.w r1, [pc, 0x438] |
0x000023dc cmp r2, 1 |
0x000023de mov r8, r3 | r8 = r3;
0x000023e0 it lo |
| if (r2 >= 1) {
0x000023e2 movlo r2, 1 | r2 = 1;
| }
0x000023e4 adds r2, 7 | r2 += 7;
0x000023e6 add r1, pc | r1 = 0x4bfe;
0x000023e8 bic r2, r2, 7 | r2 = BIT_MASK (r2, 7);
0x000023ec sub.w sp, sp, r2 |
0x000023f0 add.w sb, sp, 0x10 | sb += var_10h;
0x000023f4 mov r0, sb | r0 = sb;
| do {
0x000023f6 add.w r8, r8, 1 | r8++;
0x000023fa blx 0x111c | stpcpy ();
0x000023fe cmp.w r8, 3 |
| if (r8 == 3) {
0x00002402 beq 0x240c | goto label_62;
| }
0x00002404 ldr.w r1, [r6, r8, lsl 2] | offset_1 = r8 << 2;
| r1 = *((r6 + offset_1));
0x00002408 cmp r1, 0 |
0x0000240a bne 0x23f6 |
| } while (r1 != 0);
| label_62:
0x0000240c ldr r3, [r7, 0x7c] | r3 = *((r7 + 0x7c));
0x0000240e orr r3, r3, 2 | r3 |= 2;
0x00002412 str r3, [r7, 0x7c] | *((r7 + 0x7c)) = r3;
0x00002414 b 0x1fd4 | goto label_9;
| label_50:
0x00002416 ldr.w r1, [pc, 0x400] |
0x0000241a movw r2, 0x1cd | r2 = 0x1cd;
0x0000241e ldr r3, [pc, 0x3fc] |
0x00002420 movs r0, 3 | r0 = 3;
0x00002422 add r1, pc | r1 = "x-systemd.before";
0x00002424 add r3, pc | r3 = 0x4c46;
0x00002426 adds r1, 7 | r1 += 7;
0x00002428 blx 0x1384 | r0 = fcn_00001384 ();
0x0000242c mov r8, r0 | r8 = r0;
0x0000242e ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x00002430 b 0x1d5a | goto label_1;
| label_51:
0x00002432 ldrd r1, r2, [r7, 8] | __asm ("ldrd r1, r2, [r7, 8]");
0x00002436 mov r0, sl | r0 = sl;
0x00002438 blx 0x11a0 | r0 = strreplace ();
0x0000243c mov r8, r0 | r8 = r0;
0x0000243e cmp r0, 0 |
| if (r0 == 0) {
0x00002440 beq.w 0x25a8 | goto label_63;
| }
0x00002444 ldr r2, [pc, 0x3d8] |
0x00002446 mov r3, r8 | r3 = r8;
0x00002448 ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x0000244a movs r1, 1 | r1 = 1;
0x0000244c add r2, pc | r2 = 0x4c70;
0x0000244e blx 0x1290 | fprintf_chk ()
0x00002452 mov r0, r8 | r0 = r8;
0x00002454 blx 0x1158 | free (r0);
0x00002458 b 0x221e | goto label_10;
| label_48:
0x0000245a ldr r2, [pc, 0x3c8] |
0x0000245c movs r1, 1 | r1 = 1;
0x0000245e ldr r3, [r7, 0x10] | r3 = *((r7 + 0x10));
0x00002460 add r2, pc | r2 = 0x4c8a;
0x00002462 blx 0x1290 | fprintf_chk ()
0x00002466 ldr r3, [r7, 0x2c] | r3 = *((r7 + 0x2c));
0x00002468 b 0x2172 | goto label_11;
| label_32:
0x0000246a blx 0x1284 | stack_chk_fail ();
| do {
| label_44:
0x0000246e movs r6, 0 | r6 = 0;
0x00002470 b 0x2146 | goto label_12;
| label_43:
0x00002472 blx 0x10ec | r0 = log_get_max_level ();
0x00002476 cmp r0, 3 |
| if (r0 > 3) {
0x00002478 bgt.w 0x26bc | goto label_64;
| }
| label_16:
0x0000247c rsb.w r8, r8, 0 | r8 -= ;
0x00002480 uxtb.w r8, r8 | r8 = (int8_t) r8;
0x00002484 rsb.w r8, r8, 0 | r8 -= ;
| label_17:
0x00002488 cmp.w r8, 0 |
0x0000248c blt 0x246e |
| } while (r8 < 0);
0x0000248e movs r6, 0 | r6 = 0;
0x00002490 mvn r8, 0x55 | r8 = ~0x55;
0x00002494 b 0x2146 | goto label_12;
| label_59:
0x00002496 ldr r1, [pc, 0x390] |
0x00002498 movs r2, 0x21 | r2 = 0x21;
0x0000249a ldr r3, [pc, 0x390] |
0x0000249c ldr r0, [pc, 0x390] |
0x0000249e add r1, pc | r1 = 0x4ccc;
0x000024a0 add r3, pc | r3 = 0x4cd2;
0x000024a2 adds r1, 7 | r1 += 7;
0x000024a4 add r0, pc | r0 = 0x4cd8;
0x000024a6 blx 0x120c | log_assert_failed ();
| label_58:
0x000024aa ldr r5, [pc, 0x388] |
0x000024ac ldr r4, [r7, 0x28] | r4 = *((r7 + 0x28));
0x000024ae add r5, pc | r5 = "noauto";
| do {
0x000024b0 cmp r4, 0 |
| if (r4 == 0) {
0x000024b2 beq 0x2556 | goto label_65;
| }
0x000024b4 ldr r1, [r4], 4 | r1 = *(r4);
| r4 += 4;
0x000024b8 cmp r1, 0 |
| if (r1 == 0) {
0x000024ba beq 0x2550 | goto label_66;
| }
0x000024bc ldr r3, [r7, 0x18] | r3 = *((r7 + 0x18));
0x000024be mov r2, r5 | r2 = r5;
0x000024c0 ldr r0, [r7, 0x14] | r0 = *((r7 + 0x14));
0x000024c2 blx 0x1218 | r0 = generator_add_symlink ();
0x000024c6 subs.w r8, r0, 0 | r8 = r0 - 0;
0x000024ca bge 0x24b0 |
| } while (r8 >= r0);
0x000024cc b 0x22e2 | goto label_13;
| label_55:
0x000024ce ldr r2, [r7, 0x10] | r2 = *((r7 + 0x10));
0x000024d0 mov r1, r4 | r1 = r4;
0x000024d2 ldr r0, [r7, 0x14] | r0 = *((r7 + 0x14));
0x000024d4 blx 0x1314 | r0 = generator_hook_up_growfs ();
0x000024d8 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 >= r0) {
0x000024dc bge.w 0x229c | goto label_14;
| }
0x000024de add r6, sp, 0x378 | r6 = sp + 0x378;
0x000024e0 b 0x22e2 | goto label_13;
| label_54:
0x000024e2 ldr r0, [r7, 0x14] | r0 = *((r7 + 0x14));
0x000024e4 mov r3, sl | r3 = sl;
0x000024e6 mov r1, r5 | r1 = r5;
0x000024e8 mov r2, r4 | r2 = r4;
0x000024ea blx 0x1248 | r0 = generator_hook_up_mkfs ();
0x000024ee subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 >= r0) {
0x000024f2 bge.w 0x2294 | goto label_15;
| }
0x000024f6 b 0x22e2 | goto label_13;
| label_53:
0x000024f8 blx 0x10ec | r0 = log_get_max_level ();
0x000024fc cmp r0, 2 |
| if (r0 > 2) {
0x000024fe bgt 0x252a | goto label_67;
| }
| label_21:
0x00002500 rsb.w r8, r8, 0 | r8 -= ;
0x00002504 uxtb.w r8, r8 | r8 = (int8_t) r8;
0x00002508 rsb.w r8, r8, 0 | r8 -= ;
| do {
| label_22:
0x0000250c cmp.w r8, 0 |
0x00002510 ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x00002512 it ge |
| if (r8 < 0) {
0x00002514 mvnge r8, 0x55 | r8 = ~0x55;
| }
0x00002516 lsrs r5, r2, 1 | r5 = r2 >> 1;
0x00002518 b 0x1d5a | goto label_1;
| label_52:
0x0000251a ldr r0, [pc, 0x31c] |
0x0000251c movs r2, 0x12 | r2 = 0x12;
0x0000251e ldr r3, [r7, 0x2c] | r3 = *((r7 + 0x2c));
0x00002520 movs r1, 1 | r1 = 1;
0x00002522 add r0, pc | r0 = 0x4d60;
0x00002524 blx 0x1254 | fwrite (r0, r1, r2, r3);
0x00002526 cdp p6, 9, c14, c6, c9, 5 | __asm ("cdp p6, 9, c14, c6, c9, 5");
| label_67:
0x0000252a ldr r2, [pc, 0x310] |
0x0000252c mov r1, r8 | r1 = r8;
0x0000252e ldr r3, [pc, 0x310] |
0x00002530 ldr r4, [pc, 0x310] |
0x00002532 ldr r0, [r7, 0x18] | r0 = *((r7 + 0x18));
0x00002534 add r2, pc | r2 = 0x4d76;
0x00002536 add r3, pc | r3 = 0x4d7c;
0x00002538 adds r2, 7 | r2 += 7;
0x0000253a add r4, pc | r4 = 0x4d82;
0x0000253c strd r3, r0, [sp, 4] | __asm ("strd r3, r0, [sp, 4]");
0x00002540 movw r3, 0x1f3 | r3 = 0x1f3;
0x00002544 movs r0, 3 | r0 = 3;
0x00002546 str r4, [sp] | *(sp) = r4;
0x00002548 blx 0x12b4 | r0 = log_internal ();
0x0000254c mov r8, r0 | r8 = r0;
0x0000254e b 0x250c |
| } while (1);
| label_66:
0x00002550 ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x00002552 mov r8, r1 | r8 = r1;
0x00002554 b 0x1d5a | goto label_1;
| label_65:
0x00002556 ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x00002558 mov r8, r4 | r8 = r4;
0x0000255a b.w 0x1d5a | goto label_1;
| label_46:
0x0000255e ldr r1, [pc, 0x2e8] |
0x00002560 mov.w r2, 0x136 | r2 = 0x136;
0x00002564 ldr r3, [pc, 0x2e4] |
0x00002566 movs r0, 3 | r0 = 3;
0x00002568 add r1, pc | r1 = 0x4db6;
0x0000256a adds r1, 7 | r1 += 7;
0x0000256c add r3, pc | r3 = 0x4dbc;
0x0000256e blx 0x1384 | r0 = fcn_00001384 ();
0x00002572 mov r8, r0 | r8 = r0;
0x00002574 b 0x2146 | goto label_12;
| label_45:
0x00002576 blx 0x10ec | r0 = log_get_max_level ();
0x0000257a cmp r0, 2 |
| if (r0 <= 2) {
0x0000257c ble.w 0x247c | goto label_16;
| }
0x00002580 ldr r3, [pc, 0x2cc] |
0x00002582 mov r1, r8 | r1 = r8;
0x00002584 ldr r2, [pc, 0x2cc] |
0x00002586 movs r0, 3 | r0 = 3;
0x00002588 add r3, pc | r3 = 0x4ddc;
0x0000258a str r3, [sp, 4] | var_4h = r3;
0x0000258c add r2, pc | r2 = 0x4de4;
0x0000258e ldr r3, [pc, 0x2c8] |
0x00002590 adds r2, 7 | r2 += 7;
0x00002592 add r3, pc | r3 = 0x4df0;
0x00002594 str r3, [sp] | *(sp) = r3;
0x00002596 mov.w r3, 0x132 | r3 = 0x132;
0x0000259a blx 0x12b4 | r0 = log_internal ();
0x0000259e mov r8, r0 | r8 = r0;
0x000025a0 b 0x2488 | goto label_17;
| label_47:
0x000025a2 movs r6, 0 | r6 = 0;
0x000025a4 b.w 0x1d5a | goto label_1;
| label_63:
0x000025a8 ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x000025aa mvn r8, 0xb | r8 = ~0xb;
0x000025ae b.w 0x1d5a | goto label_1;
| label_56:
0x000025b2 ldr r1, [pc, 0x2a8] |
0x000025b4 add.w r2, r7, 0x1c | r2 = r7 + 0x1c;
0x000025b8 mov r0, r4 | r0 = r4;
0x000025ba add r1, pc | r1 = "add_mount";
0x000025bc blx 0x10b0 | r0 = unit_name_from_path ();
0x000025c0 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x000025c4 blt.w 0x26de | goto label_68;
| }
0x000025c8 ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x000025ca blx 0x1074 | safe_fclose ();
0x000025ce str r0, [r7, 0x2c] | *((r7 + 0x2c)) = r0;
0x000025d0 ldr r0, [pc, 0x28c] |
0x000025d2 add r0, pc | r0 = 0x4e36;
0x000025d4 blx 0x1170 | r0 = secure_getenv ();
0x000025d8 mov r1, r0 | r1 = r0;
0x000025da cmp r0, 0 |
| if (r0 == 0) {
0x000025dc beq 0x26a0 | goto label_69;
| }
| label_23:
0x000025de ldr r3, [r7, 4] | r3 = *((r7 + 4));
0x000025e0 ldr r2, [r7, 0x1c] | r2 = *((r7 + 0x1c));
0x000025e2 ldr r0, [r7, 0x14] | r0 = *((r7 + 0x14));
0x000025e4 blx 0x1320 | r0 = generator_open_unit_file ();
0x000025e8 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x000025ec blt.w 0x22e2 | goto label_13;
| }
0x000025f0 ldr r2, [pc, 0x270] |
0x000025f2 mov r3, fp | r3 = fp;
0x000025f4 movs r1, 1 | r1 = 1;
0x000025f6 ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x000025f8 add r2, pc | r2 = 0x4e60;
0x000025fa blx 0x1290 | fprintf_chk ()
0x000025fe ldr r2, [pc, 0x268] |
0x00002600 mov r3, r6 | r3 = r6;
0x00002602 movs r1, 1 | r1 = 1;
0x00002604 ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x00002606 add r2, pc | r2 = 0x4e74;
0x00002608 blx 0x1290 | fprintf_chk ()
0x0000260c ldr r3, [pc, 0x25c] |
0x0000260e mov r2, sb | r2 = sb;
0x00002610 ldr r0, [pc, 0x25c] |
0x00002612 mov r1, r4 | r1 = r4;
0x00002614 add r3, pc | r3 = 0x4e84;
0x00002616 add r0, pc | r0 = 0x4e8a;
0x00002618 adds r3, 0xb0 | r3 += 0xb0;
0x0000261a str r0, [sp] | *(sp) = r0;
0x0000261c ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x0000261e bl 0x190c | r0 = fcn_0000190c (r0, r1, r2, r3, r4);
0x00002622 subs.w r8, r0, 0 | r8 = r0 - 0;
0x00002626 ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
| if (r8 < r0) {
0x00002628 blt.w 0x1d5a | goto label_1;
| }
0x0000262c blx 0x1390 | r0 = fcn_00001390 ();
0x00002630 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x00002634 blt 0x2670 | goto label_70;
| }
| if (r5 != 0) {
0x00002636 cbnz r5, 0x266a | goto label_71;
| }
0x00002638 ldr r2, [pc, 0x238] |
0x0000263a add r2, pc | r2 = 0x4eb2;
| label_20:
0x0000263c ldr r3, [r7, 0x1c] | r3 = *((r7 + 0x1c));
| label_19:
0x0000263e ldrd r1, r0, [r7, 0x10] | __asm ("ldrd r1, r0, [r7, 0x10]");
0x00002642 blx 0x1218 | r0 = generator_add_symlink ();
0x00002646 mov r8, r0 | r8 = r0;
0x00002648 ldr r0, [r7, 0x2c] | r0 = *((r7 + 0x2c));
0x0000264a and.w r8, r8, r8, asr 31 | r8 &= (r8 >> 31);
0x0000264e b.w 0x1d5a | goto label_1;
| label_57:
0x00002652 ldr r3, [r7, 0x28] | r3 = *((r7 + 0x28));
| if (r3 == 0) {
0x00002654 cbz r3, 0x265e | goto label_72;
| }
0x00002656 ldr r3, [r3] | r3 = *(r3);
0x00002658 cmp r3, 0 |
| if (r3 != 0) {
0x0000265a bne.w 0x22bc | goto label_18;
| }
| label_72:
0x0000265e cmp r5, 0 |
| if (r5 == 0) {
0x00002660 beq 0x270a | goto label_73;
| }
0x00002662 ldr r2, [pc, 0x214] |
0x00002664 add r2, pc | r2 = 0x4ee2;
| label_24:
0x00002666 ldr r3, [r7, 0x18] | r3 = *((r7 + 0x18));
0x00002668 b 0x263e | goto label_19;
| label_71:
0x0000266a ldr r2, [pc, 0x210] |
0x0000266c add r2, pc | r2 = 0x4eee;
0x0000266e b 0x263c | goto label_20;
| label_70:
0x00002670 blx 0x10ec | r0 = log_get_max_level ();
0x00002674 cmp r0, 2 |
| if (r0 <= 2) {
0x00002676 ble.w 0x2500 | goto label_21;
| }
0x0000267a ldr r2, [pc, 0x204] |
0x0000267c mov r1, r8 | r1 = r8;
0x0000267e ldr r3, [pc, 0x204] |
0x00002680 ldr r5, [pc, 0x204] |
0x00002682 ldr r0, [r7, 0x1c] | r0 = *((r7 + 0x1c));
0x00002684 add r2, pc | r2 = 0x4f0a;
0x00002686 add r3, pc | r3 = 0x4f10;
0x00002688 adds r2, 7 | r2 += 7;
0x0000268a add r5, pc | r5 = 0x4f16;
0x0000268c strd r3, r0, [sp, 4] | __asm ("strd r3, r0, [sp, 4]");
0x00002690 movw r3, 0x233 | r3 = 0x233;
0x00002692 movs r3, 0x33 | r3 = 0x33;
0x00002694 movs r0, 3 | r0 = 3;
0x00002696 str r5, [sp] | *(sp) = r5;
0x00002698 blx 0x12b4 | r0 = log_internal ();
0x0000269c mov r8, r0 | r8 = r0;
0x0000269e b 0x250c | goto label_22;
| label_69:
0x000026a0 ldr r1, [pc, 0x1e8] |
0x000026a2 add r1, pc | r1 = 0x4f32;
0x000026a4 b 0x25de | goto label_23;
| label_61:
0x000026a6 ldr r1, [pc, 0x1e8] |
0x000026a8 mov.w r2, 0x1ac | r2 = 0x1ac;
0x000026ac ldr r3, [pc, 0x1e4] |
0x000026ae ldr r0, [pc, 0x1e8] |
0x000026b0 add r1, pc | r1 = 0x4f46;
0x000026b2 add r3, pc | r3 = 0x4f4a;
0x000026b4 adds r1, 7 | r1 += 7;
0x000026b6 add r0, pc | r0 = 0x4f54;
0x000026b8 blx 0x120c | log_assert_failed ();
| label_64:
0x000026bc ldr r3, [pc, 0x1dc] |
0x000026be mov r1, r8 | r1 = r8;
0x000026c0 ldr r2, [pc, 0x1dc] |
0x000026c2 movs r0, 4 | r0 = 4;
0x000026c4 add r3, pc | r3 = 0x4f64;
0x000026c6 str r3, [sp, 4] | var_4h = r3;
0x000026c8 add r2, pc | r2 = 0x4f6c;
0x000026ca ldr r3, [pc, 0x1d8] |
0x000026cc adds r2, 7 | r2 += 7;
0x000026ce add r3, pc | r3 = 0x4f78;
0x000026d0 str r3, [sp] | *(sp) = r3;
0x000026d2 mov.w r3, 0x12c | r3 = 0x12c;
0x000026d6 blx 0x12b4 | r0 = log_internal ();
0x000026da mov r8, r0 | r8 = r0;
0x000026dc b 0x2488 | goto label_17;
| label_68:
0x000026de blx 0x10ec | r0 = log_get_max_level ();
0x000026e2 cmp r0, 2 |
| if (r0 <= 2) {
0x000026e4 ble.w 0x2500 | goto label_21;
| }
0x000026e8 ldr r2, [pc, 0x1bc] |
0x000026ea mov r1, r8 | r1 = r8;
0x000026ec ldr r4, [pc, 0x1bc] |
0x000026ee movw r3, 0x219 | r3 = 0x219;
0x000026f2 ldr r0, [pc, 0x1bc] |
0x000026f4 add r2, pc | r2 = 0x4fa0;
0x000026f6 add r4, pc | r4 = 0x4fa6;
0x000026f8 adds r2, 7 | r2 += 7;
0x000026fa add r0, pc | r0 = 0x4fb0;
0x000026fc strd r0, r4, [sp] | __asm ("strd r0, r4, [sp]");
0x00002700 movs r0, 3 | r0 = 3;
0x00002702 blx 0x12b4 | r0 = log_internal ();
0x00002706 mov r8, r0 | r8 = r0;
0x00002708 b 0x250c | goto label_22;
| label_73:
0x0000270a ldr r2, [pc, 0x1a8] |
0x0000270c add r2, pc | r2 = 0x4fc6;
0x0000270e b 0x2666 | goto label_24;
| }
[*] Function printf used 12 times systemd-fstab-generator