[*] Binary protection state of systemd-delta
Full RELRO Canary found NX enabled PIE enabled RPATH No RUNPATH No Symbols
[*] Function printf tear down of systemd-delta
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/systemd-delta @ 0x192c */
| #include <stdint.h>
|
; (fcn) fcn.0000192c () | void fcn_0000192c (char * arg1, int16_t arg2) {
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_18h;
| char * s1;
| int16_t var_28h;
| int16_t var_2ch;
| char * s;
| int16_t var_34h;
| int16_t var_38h;
| int16_t var_3ch;
| int16_t var_40h;
| int16_t var_44h;
| int16_t var_48h;
| int16_t var_4ch;
| int16_t var_50h;
| int16_t var_54h;
| int16_t var_58h;
| int16_t var_5ch;
| int16_t var_60h;
| int16_t var_64h;
| int16_t var_6ch;
| void * ptr;
| int16_t var_74h;
| int16_t var_78h;
| void * var_7ch;
| void * var_80h;
| int16_t var_84h;
| int16_t var_88h;
| void * var_8ch;
| int32_t var_8ch_2;
| int16_t var_94h;
| r0 = arg1;
| r1 = arg2;
0x0000192c ldr.w r3, [pc, 0xc6c] | r3 = *(0x0000259c);
0x00001930 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00001934 sub sp, 0x9c |
0x00001936 ldr.w r2, [pc, 0xc68] | r2 = *(0x000025a0);
0x0000193a add r3, pc | r3 += pc;
0x0000193c str r3, [sp, 0x34] | var_34h = r3;
0x0000193e ldr.w r3, [pc, 0xc64] |
0x00001942 add r2, pc | r2 += pc;
0x00001944 str r1, [sp, 0x3c] | var_3ch = r1;
0x00001946 str r0, [sp, 0x24] | s1 = r0;
0x00001948 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x0000194a ldr r3, [r3] | r3 = *(0x25a6);
0x0000194c str r3, [sp, 0x94] | var_94h = r3;
0x0000194e mov.w r3, 0 | r3 = 0;
0x00001952 cmp r0, 0 |
| if (r0 == 0) {
0x00001954 beq.w 0x2002 | goto label_39;
| }
0x00001958 ldr.w r1, [pc, 0xc4c] |
0x0000195c add r1, pc | r1 = 0x3f08;
0x0000195e blx 0x1180 | r0 = startswith ();
0x00001962 cmp r0, 0 |
| if (r0 != 0) {
0x00001964 bne.w 0x2060 | goto label_40;
| }
0x00001968 ldr.w r1, [pc, 0xc40] |
0x0000196c ldr r0, [sp, 0x24] | r0 = s1;
0x0000196e add r1, pc | r1 = 0x3f1e;
0x00001970 blx 0x10d8 | r0 = strstr (r0, r1);
0x00001974 cmp r0, 0 |
| if (r0 != 0) {
0x00001976 bne.w 0x207c | goto label_41;
| }
0x0000197a ldr.w r0, [pc, 0xc34] |
0x0000197e ldr r1, [sp, 0x24] | r1 = s1;
0x00001980 add r0, pc | r0 = 0x3f36;
0x00001982 blx 0x1030 | nulstr_contains ();
0x00001986 ldr r2, [sp, 0x34] | r2 = var_34h;
0x00001988 ldr.w r3, [pc, 0xc28] | r3 = *(0x25b4);
0x0000198c str r0, [sp, 0x44] | var_44h = r0;
0x0000198e ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00001990 mov r4, r3 | r4 = r3;
0x00001992 mov r0, r3 | r0 = r3;
0x00001994 str r3, [sp, 0x40] | var_40h = r3;
0x00001996 blx 0x10f0 | r0 = ordered_hashmap_new ();
0x0000199a mov r5, r0 | r5 = r0;
0x0000199c str r0, [sp, 0x2c] | var_2ch = r0;
0x0000199e mov r0, r4 | r0 = r4;
0x000019a0 blx 0x10f0 | r0 = ordered_hashmap_new ();
0x000019a4 mov sb, r0 | sb = r0;
0x000019a6 mov r0, r4 | r0 = r4;
0x000019a8 blx 0x10f0 | ordered_hashmap_new ();
0x000019ac cmp.w sb, 0 |
0x000019b0 it ne |
| if (sb != 0) {
0x000019b2 cmpne r5, 0 | __asm ("cmpne r5, 0");
| }
0x000019b4 mov r3, r5 | r3 = r5;
0x000019b6 ite eq |
| if (sb != 0) {
0x000019b8 moveq r3, 1 | r3 = 1;
| }
| if (sb == 0) {
0x000019ba movne r3, 0 | r3 = 0;
| }
0x000019bc cmp r0, 0 |
0x000019be it eq |
| if (r0 != 0) {
0x000019c0 orreq r3, r3, 1 | r3 |= 1;
| }
0x000019c4 mov sl, r0 | sl = r0;
0x000019c6 cmp r3, 0 |
| if (r3 != 0) {
0x000019c8 bne.w 0x1c40 | goto label_42;
| }
0x000019cc str r3, [sp, 0x28] | var_28h = r3;
0x000019ce mov sl, sb | sl = sb;
0x000019d0 ldr.w r3, [pc, 0xbe4] |
0x000019d4 str r0, [sp, 0x38] | var_38h = r0;
0x000019d6 add r3, pc | r3 = 0x3f92;
0x000019d8 adds r3, 7 | r3 += 7;
0x000019da str r3, [sp, 0x54] | var_54h = r3;
0x000019dc ldr.w r3, [pc, 0xbdc] |
0x000019e0 add r3, pc | r3 = 0x3fa0;
0x000019e2 adds r3, 7 | r3 += 7;
0x000019e4 str r3, [sp, 0x58] | var_58h = r3;
0x000019e6 ldr.w r3, [pc, 0xbd8] |
0x000019ea add r3, pc | r3 = 0x3fb0;
0x000019ec str r3, [sp, 0x30] | s = r3;
| label_2:
0x000019ee ldr r2, [sp, 0x24] | r2 = s1;
0x000019f0 mov.w r3, -1 | r3 = -1;
0x000019f4 ldr r1, [sp, 0x30] | r1 = s;
0x000019f6 movs r0, 0 | r0 = 0;
0x000019f8 blx 0x1090 | r0 = path_extend_internal ();
0x000019fc mov r7, r0 | r7 = r0;
0x000019fe cmp r0, 0 |
| if (r0 == 0) {
0x00001a00 beq.w 0x1c3a | goto label_43;
| }
0x00001a04 movs r4, 0 | r4 = 0;
0x00001a06 strd r4, r4, [sp, 0x80] | __asm ("strd r4, r4, [var_84h]");
0x00001a0a blx 0xfd0 | r0 = log_get_max_level ();
0x00001a0e cmp r0, 6 |
| if (r0 > 6) {
0x00001a10 bgt.w 0x1fcc | goto label_44;
| }
| label_12:
0x00001a14 mov r0, r7 | r0 = r7;
0x00001a16 blx 0xf94 | r0 = opendir ();
0x00001a1a mov r6, r0 | r6 = r0;
0x00001a1c cmp r0, 0 |
| if (r0 == 0) {
0x00001a1e beq.w 0x1d22 | goto label_45;
| }
0x00001a22 blx 0x121c | r0 = readdir_ensure_type ();
0x00001a26 mov r4, r0 | r4 = r0;
| if (r0 == 0) {
0x00001a28 cbz r0, 0x1a92 | goto label_46;
| }
0x00001a2a ldr.w sb, [pc, 0xb98] |
0x00001a2e mov fp, r6 |
0x00001a30 ldr r6, [sp, 0x44] | r6 = var_44h;
0x00001a32 movs r5, 0 | r5 = 0;
0x00001a34 mov r8, r5 | r8 = r5;
0x00001a36 add r3, sp, 0x84 | r3 += var_84h;
0x00001a38 add sb, pc | sb = 0x4002;
0x00001a3a strd r3, r7, [sp, 0x48] | __asm ("strd r3, r7, [var_48h]");
0x00001a3e str.w sl, [sp, 0x50] | __asm ("str.w sl, [var_50h]");
| do {
| if (r6 != 0) {
0x00001a42 cbz r6, 0x1a4c |
0x00001a44 ldrb r7, [r4, 0x12] | r7 = *((r4 + 0x12));
0x00001a46 cmp r7, 4 |
| if (r7 == 4) {
0x00001a48 beq.w 0x1cde | goto label_47;
| }
| }
| label_1:
0x00001a4c mov r0, r4 | r0 = r4;
0x00001a4e blx 0x11e0 | r0 = dirent_is_file ();
| if (r0 != 0) {
0x00001a52 cbz r0, 0x1a80 |
0x00001a54 movs r2, 4 | r2 = 4;
0x00001a56 adds r1, r5, 2 | r1 = r5 + 2;
0x00001a58 add r0, sp, 0x80 | r0 += var_80h;
0x00001a5a blx 0xfa0 | r0 = greedy_realloc0 ();
0x00001a5e cmp r0, 0 |
| if (r0 == 0) {
0x00001a60 beq.w 0x1ff4 | goto label_48;
| }
0x00001a64 add.w r0, r4, 0x13 | r0 = r4 + 0x13;
0x00001a68 ldr r4, [sp, 0x80] | r4 = var_80h;
0x00001a6a blx 0x10fc | strdup (r0);
0x00001a6e str.w r0, [r4, r5, lsl 2] | __asm ("str.w r0, [r4, r5, lsl 2]");
0x00001a72 ldr r3, [sp, 0x80] | r3 = var_80h;
0x00001a74 ldr.w r3, [r3, r5, lsl 2] | offset_0 = r5 << 2;
| r3 = *((r3 + offset_0));
0x00001a78 cmp r3, 0 |
| if (r3 == 0) {
0x00001a7a beq.w 0x1ff4 | goto label_48;
| }
0x00001a7e adds r5, 1 | r5++;
| }
0x00001a80 mov r0, fp | r0 = fp;
0x00001a82 blx 0x121c | r0 = readdir_ensure_type ();
0x00001a86 mov r4, r0 | r4 = r0;
0x00001a88 cmp r0, 0 |
0x00001a8a bne 0x1a42 |
| } while (r0 != 0);
0x00001a8c ldrd r7, sl, [sp, 0x4c] | __asm ("ldrd r7, sl, [var_50h]");
0x00001a90 mov r6, fp | r6 = fp;
| label_46:
0x00001a92 blx 0x1240 | r0 = errno_location ();
0x00001a96 ldr r3, [r0] | r3 = *(r0);
0x00001a98 ldr r0, [sp, 0x84] | r0 = var_84h;
0x00001a9a cmp r3, 0 |
0x00001a9c it gt |
| if (r3 > 0) {
0x00001a9e rsbgt fp, r3, 0 | __asm ("rsbgt fp, r3, 0");
| }
| if (r3 > 0) {
0x00001aa2 bgt.w 0x1d52 | goto label_7;
| }
0x00001aa6 blx 0x1198 | strv_sort ();
0x00001aaa ldr r0, [sp, 0x80] | r0 = var_80h;
0x00001aac blx 0x1198 | strv_sort ();
0x00001ab0 ldr r3, [sp, 0x84] | r3 = var_84h;
0x00001ab2 cmp r3, 0 |
| if (r3 == 0) {
0x00001ab4 beq.w 0x22fe | goto label_49;
| }
0x00001ab8 subs r3, 4 | r3 -= 4;
0x00001aba mov sb, r7 | sb = r7;
0x00001abc str r3, [sp, 0x4c] | var_4ch = r3;
0x00001abe ldr.w r3, [pc, 0xb08] |
0x00001ac2 str r6, [sp, 0x64] | var_64h = r6;
0x00001ac4 add r3, pc | r3 = 0x4092;
0x00001ac6 adds r3, 7 | r3 += 7;
0x00001ac8 str r3, [sp, 0x60] | var_60h = r3;
0x00001aca ldr.w r3, [pc, 0xb00] |
0x00001ace add r3, pc | r3 = 0x40a0;
0x00001ad0 adds r3, 7 | r3 += 7;
0x00001ad2 str r3, [sp, 0x5c] | var_5ch = r3;
| label_14:
0x00001ad4 ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x00001ad6 ldr r4, [r3, 4]! | r4 = *((r3 += 4));
0x00001ada str r3, [sp, 0x4c] | var_4ch = r3;
0x00001adc cmp r4, 0 |
| if (r4 == 0) {
0x00001ade beq.w 0x22fa | goto label_50;
| }
0x00001ae2 ldr.w r1, [pc, 0xaec] |
0x00001ae6 movs r3, 0 | r3 = 0;
0x00001ae8 mov r0, r4 | r0 = r4;
0x00001aea str r3, [sp, 0x8c] | var_8ch = r3;
0x00001aec add r1, pc | r1 = 0x40c2;
0x00001aee blx 0x1138 | r0 = endswith ();
0x00001af2 mov r5, r0 | r5 = r0;
0x00001af4 cmp r0, 0 |
| if (r0 != 0) {
0x00001af6 bne.w 0x22d0 | goto label_51;
| }
0x00001afa mov.w r3, -1 | r3 = -1;
0x00001afe mov r2, r4 | r2 = r4;
0x00001b00 mov r1, sb | r1 = sb;
0x00001b02 blx 0x1090 | r0 = path_extend_internal ();
0x00001b06 mov r7, r0 | r7 = r0;
0x00001b08 cmp r0, 0 |
| if (r0 == 0) {
0x00001b0a beq.w 0x1fbc | goto label_52;
| }
0x00001b0e blx 0xfd0 | r0 = log_get_max_level ();
0x00001b12 cmp r0, 6 |
| if (r0 > 6) {
0x00001b14 bgt.w 0x2098 | goto label_53;
| }
0x00001b16 strh r0, [r0, 0x16] | *((r0 + 0x16)) = r0;
| label_13:
0x00001b18 mov r0, r4 | r0 = r4;
0x00001b1a blx 0x10fc | r0 = strdup (r0);
0x00001b1e mov r6, r0 | r6 = r0;
0x00001b20 cmp r0, 0 |
| if (r0 == 0) {
0x00001b22 beq.w 0x1fbc | goto label_52;
| }
0x00001b26 movs r1, 0x2e | r1 = 0x2e;
0x00001b28 blx 0xfe8 | r0 = strrchr (r0, r1);
0x00001b2c cmp r0, 0 |
| if (r0 == 0) {
0x00001b2e beq.w 0x2538 | goto label_54;
| }
0x00001b32 movs r3, 0 | r3 = 0;
0x00001b34 add r1, sp, 0x8c | r1 += var_8ch;
0x00001b36 strb r3, [r0] | *(r0) = r3;
0x00001b38 mov r0, r7 | r0 = r7;
0x00001b3a blx 0x112c | r0 = get_files_in_directory ();
0x00001b3e subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x00001b40 blt.w 0x201e | goto label_55;
| }
0x00001b44 ldr r0, [sp, 0x8c] | r0 = var_8ch;
0x00001b46 blx 0x1198 | strv_sort ();
0x00001b4a ldr r3, [sp, 0x8c] | r3 = var_8ch;
0x00001b4c cmp r3, 0 |
| if (r3 == 0) {
0x00001b4e beq.w 0x20c6 | goto label_37;
| }
0x00001b52 ldr.w fp, [pc, 0xa80] |
0x00001b56 sub.w r8, r3, 4 | r8 = r3 - 4;
0x00001b5a ldr.w r3, [pc, 0xa7c] |
0x00001b5e add fp, pc | fp = 0x4138;
0x00001b60 add r3, pc | r3 = 0x413e;
0x00001b62 str r3, [sp, 0x50] | var_50h = r3;
| do {
| label_0:
0x00001b64 ldr r4, [r8, 4]! | r4 = *((r8 += 4));
0x00001b68 cmp r4, 0 |
| if (r4 == 0) {
0x00001b6a beq.w 0x20be | goto label_56;
| }
0x00001b6e mov r1, fp | r1 = fp;
0x00001b70 mov r0, r4 | r0 = r4;
0x00001b72 blx 0x1138 | r0 = endswith ();
0x00001b76 cmp r0, 0 |
0x00001b78 beq 0x1b64 |
| } while (r0 == 0);
0x00001b7a mov r2, r4 | r2 = r4;
0x00001b7c mov.w r3, -1 | r3 = -1;
0x00001b80 mov r1, r7 | r1 = r7;
0x00001b82 movs r0, 0 | r0 = 0;
0x00001b84 blx 0x1090 | r0 = path_extend_internal ();
0x00001b88 mov r4, r0 | r4 = r0;
0x00001b8a cmp r0, 0 |
| if (r0 == 0) {
0x00001b8c beq.w 0x226c | goto label_57;
| }
0x00001b90 mov r0, sb | r0 = sb;
0x00001b92 blx 0x1048 | r0 = strlen (r0);
0x00001b96 adds r5, r0, 1 | r5 = r0 + 1;
0x00001b98 blx 0xfd0 | r0 = log_get_max_level ();
0x00001b9c cmp r0, 6 |
0x00001b9e add r5, r4 | r5 += r4;
| if (r0 > 6) {
0x00001ba0 bgt.w 0x1f30 | goto label_58;
| }
| label_9:
0x00001ba4 ldr r0, [sp, 0x2c] | r0 = var_2ch;
0x00001ba6 mov r2, r4 | r2 = r4;
0x00001ba8 mov r1, r5 | r1 = r5;
0x00001baa blx 0x1108 | r0 = hashmap_put ();
0x00001bae subs r3, r0, 0 | r3 = r0 - 0;
| if (r3 >= r0) {
0x00001bb0 bge.w 0x1ee4 | goto label_59;
| }
0x00001bb4 cmn.w r3, 0x11 |
| if (r3 != 0x11) {
0x00001bb8 bne.w 0x2232 | goto label_60;
| }
0x00001bbc blx 0xfd0 | r0 = log_get_max_level ();
0x00001bc0 cmp r0, 6 |
| if (r0 > 6) {
0x00001bc2 bgt.w 0x1f06 | goto label_61;
| }
| label_8:
0x00001bc6 mov r1, r5 | r1 = r5;
0x00001bc8 mov r0, sl | r0 = sl;
0x00001bca blx 0x1120 | hashmap_remove ();
0x00001bce blx 0x100c | free (r0);
0x00001bd2 mov r2, r4 | r2 = r4;
0x00001bd4 mov r1, r5 | r1 = r5;
0x00001bd6 mov r0, sl | r0 = sl;
0x00001bd8 blx 0x1108 | r0 = hashmap_put ();
0x00001bdc subs r3, r0, 0 | r3 = r0 - 0;
| if (r3 < r0) {
0x00001bde blt.w 0x2232 | goto label_60;
| }
0x00001be2 ldr r0, [sp, 0x38] | r0 = var_38h;
0x00001be4 mov r1, r6 | r1 = r6;
0x00001be6 blx 0x11d4 | r0 = hashmap_get ();
0x00001bea mov r5, r0 | r5 = r0;
0x00001bec cmp r0, 0 |
| if (r0 == 0) {
0x00001bee beq.w 0x1f96 | goto label_62;
| }
| label_11:
0x00001bf2 mov r0, r4 | r0 = r4;
0x00001bf4 blx 0x10fc | r0 = strdup (r0);
0x00001bf8 mov r4, r0 | r4 = r0;
0x00001bfa cmp r0, 0 |
| if (r0 == 0) {
0x00001bfc beq.w 0x226c | goto label_57;
| }
0x00001c00 blx 0xfd0 | r0 = log_get_max_level ();
0x00001c04 cmp r0, 6 |
| if (r0 > 6) {
0x00001c06 bgt.w 0x1f60 | goto label_63;
| }
| label_10:
0x00001c0a mov r0, r4 | r0 = r4;
0x00001c0c blx 0x1264 | basename (r0);
0x00001c10 mov r2, r4 | r2 = r4;
0x00001c12 mov r1, r0 | r1 = r0;
0x00001c14 mov r0, r5 | r0 = r5;
0x00001c16 blx 0x1108 | r0 = hashmap_put ();
0x00001c1a subs r3, r0, 0 | r3 = r0 - 0;
| if (r3 >= r0) {
0x00001c1c bge 0x1b64 | goto label_0;
| }
0x00001c1e mov r0, r4 | r0 = r4;
0x00001c20 str r3, [sp, 0x48] | var_48h = r3;
0x00001c22 blx 0x100c | free (r0);
0x00001c26 ldr r3, [sp, 0x48] | r3 = var_48h;
0x00001c28 cmn.w r3, 0x11 |
| if (r3 == 0x11) {
0x00001c2c beq 0x1b64 | goto label_0;
| }
0x00001c2e mov r5, r7 | r5 = r7;
0x00001c30 mov r8, r6 | r8 = r6;
0x00001c32 mov fp, r3 |
0x00001c34 ldr r6, [sp, 0x64] | r6 = var_64h;
0x00001c36 mov r7, sb | r7 = sb;
0x00001c38 b 0x2048 | goto label_19;
| label_43:
0x00001c3a mov sb, sl | sb = sl;
0x00001c3c ldr.w sl, [sp, 0x38] | sl = var_38h;
| label_42:
0x00001c40 mov.w fp, 0 |
0x00001c44 add r4, sp, 0x70 | r4 += ptr;
0x00001c46 mvn r3, 0xb | r3 = ~0xb;
0x00001c4a str r3, [sp, 0x28] | var_28h = r3;
| label_26:
0x00001c4c ldr.w r3, [pc, 0x98c] | r3 = *(0x25dc);
0x00001c50 movs r1, 0 | r1 = 0;
0x00001c52 ldr r2, [sp, 0x34] | r2 = var_34h;
0x00001c54 add r7, sp, 0x8c | r7 += var_8ch;
0x00001c56 ldr r0, [sp, 0x2c] | r0 = var_2ch;
0x00001c58 add r6, sp, 0x74 | r6 += var_74h;
0x00001c5a ldr r5, [r2, r3] | r5 = *((r2 + r3));
0x00001c5c mov r2, r5 | r2 = r5;
0x00001c5e blx 0x11ec | hashmap_free ();
0x00001c62 mov r2, r5 | r2 = r5;
0x00001c64 mov r0, sb | r0 = sb;
0x00001c66 movs r1, 0 | r1 = 0;
0x00001c68 blx 0x11ec | hashmap_free ();
0x00001c6c mvn r2, 1 | r2 = ~1;
0x00001c70 movs r3, 0 | r3 = 0;
0x00001c72 strd r2, r3, [sp, 0x8c] | __asm ("strd r2, r3, [var_8ch]");
0x00001c76 b 0x1c96 |
| while (r0 != 0) {
0x00001c78 ldr r1, [sp, 0x70] | r1 = ptr;
0x00001c7a mov r0, sl | r0 = sl;
0x00001c7c blx 0x1120 | hashmap_remove ();
0x00001c80 mov r2, r5 | r2 = r5;
0x00001c82 movs r1, 0 | r1 = 0;
0x00001c84 blx 0x11ec | hashmap_free ();
0x00001c88 ldr r1, [sp, 0x70] | r1 = ptr;
0x00001c8a mov r0, sl | r0 = sl;
0x00001c8c blx 0x1120 | hashmap_remove ();
0x00001c90 ldr r0, [sp, 0x70] | r0 = ptr;
0x00001c92 blx 0x100c | free (r0);
0x00001c96 mov r3, r4 | r3 = r4;
0x00001c98 mov r2, r6 | r2 = r6;
0x00001c9a mov r1, r7 | r1 = r7;
0x00001c9c mov r0, sl | r0 = sl;
0x00001c9e blx 0x11c8 | r0 = hashmap_iterate ();
0x00001ca2 cmp r0, 0 |
0x00001ca4 bne 0x1c78 |
| }
0x00001ca6 ldr r2, [sp, 0x28] | r2 = var_28h;
0x00001ca8 mov r1, r0 | r1 = r0;
0x00001caa mov r3, r2 | r3 = r2;
0x00001cac cmp r2, 0 |
0x00001cae it eq |
| if (r2 != 0) {
0x00001cb0 moveq r3, fp | r3 = fp;
| }
0x00001cb2 mov r2, r0 | r2 = r0;
0x00001cb4 mov r0, sl | r0 = sl;
0x00001cb6 str r3, [sp, 0x28] | var_28h = r3;
0x00001cb8 blx 0x11ec | hashmap_free ();
0x00001cbc ldr.w r2, [pc, 0x920] | r2 = *(0x000025e0);
0x00001cc0 ldr.w r3, [pc, 0x8e0] | r3 = *(0x25a4);
0x00001cc4 add r2, pc | r2 += pc;
0x00001cc6 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00001cc8 ldr r2, [r3] | r2 = *(0x25a4);
0x00001cca ldr r3, [sp, 0x94] | r3 = var_94h;
0x00001ccc eors r2, r3 | r2 ^= r3;
0x00001cce mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00001cd2 bne.w 0x2566 | goto label_64;
| }
0x00001cd6 ldr r0, [sp, 0x28] | r0 = var_28h;
0x00001cd8 add sp, 0x9c |
0x00001cda pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_47:
0x00001cde add.w sl, r4, 0x13 | sl = r4 + 0x13;
0x00001ce2 mov r1, sb | r1 = sb;
0x00001ce4 mov r0, sl | r0 = sl;
0x00001ce6 blx 0x1138 | r0 = endswith ();
0x00001cea cmp r0, 0 |
| if (r0 == 0) {
0x00001cec beq.w 0x1a4c | goto label_1;
| }
0x00001cf0 ldr r0, [sp, 0x48] | r0 = var_48h;
0x00001cf2 mov r2, r7 | r2 = r7;
0x00001cf4 add.w r1, r8, 2 | r1 = r8 + 2;
0x00001cf8 blx 0xfa0 | r0 = greedy_realloc0 ();
0x00001cfc cmp r0, 0 |
| if (r0 == 0) {
0x00001cfe beq.w 0x1ff4 | goto label_48;
| }
0x00001d02 mov r0, sl | r0 = sl;
0x00001d04 ldr.w sl, [sp, 0x84] | sl = var_84h;
0x00001d08 blx 0x10fc | strdup (r0);
0x00001d0c str.w r0, [sl, r8, lsl 2] | __asm ("str.w r0, [sl, r8, lsl 2]");
0x00001d10 ldr r0, [sp, 0x84] | r0 = var_84h;
0x00001d12 ldr.w r3, [r0, r8, lsl 2] | offset_1 = r8 << 2;
| r3 = *((r0 + offset_1));
0x00001d16 cmp r3, 0 |
| if (r3 == 0) {
0x00001d18 beq.w 0x24d2 | goto label_65;
| }
0x00001d1c add.w r8, r8, 1 | r8++;
0x00001d20 b 0x1a4c | goto label_1;
| label_45:
0x00001d22 blx 0x1240 | r0 = errno_location ();
0x00001d26 ldr r4, [r0] | r4 = *(r0);
0x00001d28 cmp r4, 2 |
| if (r4 == 2) {
0x00001d2a beq.w 0x1ede | goto label_66;
| }
0x00001d2e blx 0xfd0 | r0 = log_get_max_level ();
0x00001d32 cmp r0, 2 |
| if (r0 > 2) {
0x00001d34 bgt.w 0x20d4 | goto label_67;
| }
0x00001d38 eor.w r3, r4, r4, asr 31 | r3 = r4 ^ (r4 >> 31);
0x00001d3c sub.w r3, r3, r4, asr 31 | r3 -= (r4 >> 31);
0x00001d40 uxtb r3, r3 | r3 = (int8_t) r3;
0x00001d42 rsb.w fp, r3, 0 |
| label_15:
0x00001d46 ldr r0, [sp, 0x84] | r0 = var_84h;
0x00001d48 cmp.w fp, 0 |
0x00001d4c it ge |
| if (fp < 0) {
0x00001d4e mvnge fp, 0x55 |
| }
| if (r0 != 0) {
| label_7:
0x00001d52 cbz r0, 0x1d5a |
| label_35:
0x00001d54 blx 0x1060 | strv_free ();
0x00001d58 str r0, [sp, 0x84] | var_84h = r0;
| }
0x00001d5a ldr r0, [sp, 0x80] | r0 = var_80h;
| if (r0 != 0) {
0x00001d5c cbz r0, 0x1d64 |
0x00001d5e blx 0x1060 | strv_free ();
0x00001d62 str r0, [sp, 0x80] | var_80h = r0;
| }
| if (r6 != 0) {
0x00001d64 cbz r6, 0x1d6c |
| label_38:
0x00001d66 mov r0, r6 | r0 = r6;
0x00001d68 blx 0x10e4 | closedir ();
| }
0x00001d6c ldr r2, [sp, 0x28] | r2 = var_28h;
0x00001d6e mov r0, r7 | r0 = r7;
0x00001d70 mov r3, r2 | r3 = r2;
0x00001d72 cmp r2, 0 |
0x00001d74 it eq |
| if (r2 != 0) {
0x00001d76 moveq r3, fp | r3 = fp;
| }
0x00001d78 str r3, [sp, 0x28] | var_28h = r3;
0x00001d7a blx 0x100c | free (r0);
0x00001d7e ldr r4, [sp, 0x30] | r4 = s;
0x00001d80 mov r0, r4 | r0 = r4;
0x00001d82 blx 0x1048 | strlen (r0);
0x00001d86 mov r3, r4 | r3 = r4;
0x00001d88 adds r0, 1 | r0++;
0x00001d8a add r3, r0 | r3 += r0;
0x00001d8c str r3, [sp, 0x30] | s = r3;
0x00001d8e ldrb r3, [r3] | r3 = *(r3);
0x00001d90 cmp r3, 0 |
| if (r3 != 0) {
0x00001d92 bne.w 0x19ee | goto label_2;
| }
0x00001d96 mov fp, r3 |
0x00001d98 str r3, [sp, 0x88] | var_88h = r3;
0x00001d9a mvn r3, 1 | r3 = ~1;
0x00001d9e mov sb, sl | sb = sl;
0x00001da0 str r3, [sp, 0x84] | var_84h = r3;
0x00001da2 add r4, sp, 0x70 | r4 += ptr;
0x00001da4 ldr.w r3, [pc, 0x83c] | r3 = *(0x000025e4);
0x00001da8 ldr.w sl, [sp, 0x38] | sl = var_38h;
0x00001dac add r3, pc | r3 += pc;
0x00001dae str r3, [sp, 0x54] | var_54h = r3;
0x00001db0 ldr.w r3, [pc, 0x834] |
0x00001db4 strd sb, sl, [sp, 0x48] | __asm ("strd sb, sl, [var_48h]");
0x00001db8 mov sl, r4 | sl = r4;
0x00001dba ldr r4, [sp, 0x3c] | r4 = var_3ch;
0x00001dbc add r3, pc |
0x00001dbe str r3, [sp, 0x58] | var_58h = r3;
0x00001dc0 ldr.w r3, [pc, 0x828] | r3 = *(0x000025ec);
0x00001dc4 add r3, pc | r3 = 0x6170;
0x00001dc6 str r3, [sp, 0x50] | var_50h = r3;
0x00001dc8 ldr.w r3, [pc, 0x824] |
0x00001dcc add r3, pc | r3 = 0x43c0;
0x00001dce str r3, [sp, 0x38] | var_38h = r3;
0x00001dd0 add r3, sp, 0x84 | r3 += var_84h;
0x00001dd2 str r3, [sp, 0x44] | var_44h = r3;
0x00001dd4 add r3, sp, 0x6c | r3 += var_6ch;
0x00001dd6 str r3, [sp, 0x40] | var_40h = r3;
| do {
| label_16:
0x00001dd8 ldrd r2, r1, [sp, 0x40] | __asm ("ldrd r2, r1, [var_44h]");
0x00001ddc mov r3, sl | r3 = sl;
0x00001dde ldr r0, [sp, 0x2c] | r0 = var_2ch;
0x00001de0 blx 0x11c8 | r0 = hashmap_iterate ();
0x00001de4 cmp r0, 0 |
| if (r0 == 0) {
0x00001de6 beq.w 0x2468 | goto label_68;
| }
0x00001dea ldr r1, [sp, 0x70] | r1 = ptr;
0x00001dec ldr r0, [sp, 0x48] | r0 = var_48h;
0x00001dee blx 0x11d4 | r0 = hashmap_get ();
0x00001df2 mov r5, r0 | r5 = r0;
0x00001df4 str r0, [sp, 0x78] | var_78h = r0;
0x00001df6 cmp r0, 0 |
| if (r0 == 0) {
0x00001df8 beq.w 0x22e4 | goto label_69;
| }
| if (r4 != 0) {
0x00001dfc cbz r4, 0x1e06 |
0x00001dfe mov r1, r4 | r1 = r4;
0x00001e00 blx 0x1180 | r0 = startswith ();
| if (r0 == 0) {
0x00001e04 cbz r0, 0x1e30 | goto label_17;
| }
| }
0x00001e06 ldr r7, [sp, 0x6c] | r7 = var_6ch;
0x00001e08 mov r0, r5 | r0 = r5;
0x00001e0a mov r1, r7 | r1 = r7;
0x00001e0c blx 0x1174 | r0 = path_compare ();
0x00001e10 cmp r0, 0 |
| if (r0 != 0) {
0x00001e12 bne.w 0x2104 | goto label_70;
| }
0x00001e16 ldr.w r3, [pc, 0x7dc] | r3 = *(0x000025f4);
0x00001e1a add r3, pc | r3 += pc;
0x00001e1c ldr r3, [r3] | r3 = *(r3);
0x00001e1e lsls r0, r3, 0x1b | r0 = r3 << 0x1b;
| if (r0 < r3) {
0x00001e20 bpl 0x1e30 |
0x00001e22 ldr.w r1, [pc, 0x7d4] |
0x00001e26 mov r2, r7 | r2 = r7;
0x00001e28 movs r0, 1 | r0 = 1;
0x00001e2a add r1, pc | r1 = 0x4428;
0x00001e2c blx 0xfdc | printf_chk ()
| }
| label_17:
0x00001e30 ldr r1, [sp, 0x70] | r1 = ptr;
0x00001e32 ldr r0, [sp, 0x4c] | r0 = var_4ch;
0x00001e34 blx 0x11d4 | hashmap_get ();
0x00001e38 str r0, [sp, 0x74] | var_74h = r0;
0x00001e3a cmp r0, 0 |
0x00001e3c beq 0x1dd8 |
| } while (r0 == 0);
0x00001e3e movs r3, 0 | r3 = 0;
0x00001e40 mvn r5, 1 | r5 = ~1;
0x00001e44 strd r5, r3, [sp, 0x8c] | __asm ("strd r5, r3, [var_8ch]");
0x00001e48 add r6, sp, 0x8c | r6 += var_8ch;
0x00001e4a ldr.w r3, [pc, 0x7b0] |
0x00001e4e add r7, sp, 0x78 | r7 += var_78h;
0x00001e50 ldr.w sb, [sp, 0x50] | sb = var_50h;
0x00001e54 str.w sl, [sp, 0x3c] | __asm ("str.w sl, [var_3ch]");
0x00001e58 add r3, pc | r3 = 0x445a;
0x00001e5a str r3, [sp, 0x30] | s = r3;
0x00001e5c b 0x1e94 | goto label_71;
| label_4:
0x00001e5e ldr.w r8, [pc, 0x7a0] |
0x00001e62 add r8, pc | r8 = 0x4468;
0x00001e64 blx 0x109c | r0 = get_color_mode ();
0x00001e68 cmp r0, 0 |
| if (r0 != 0) {
0x00001e6a bne 0x1ed6 | goto label_72;
| }
| label_5:
0x00001e6c ldr.w sl, [pc, 0x794] |
0x00001e70 add sl, pc | sl = 0x4478;
| label_6:
0x00001e72 movs r0, 0xd | r0 = 0xd;
0x00001e74 add.w fp, fp, 1 |
0x00001e78 blx 0x127c | special_glyph ();
0x00001e7c ldr r3, [sp, 0x24] | r3 = s1;
0x00001e7e mov r2, r8 | r2 = r8;
0x00001e80 strd r0, r5, [sp, 8] | __asm ("strd r0, r5, [var_8h]");
0x00001e84 movs r0, 1 | r0 = 1;
0x00001e86 ldr r1, [sp, 0x30] | r1 = s;
0x00001e88 strd sl, r3, [sp] | __asm ("strd sl, r3, [sp]");
0x00001e8c ldr r3, [sp, 0x38] | r3 = var_38h;
0x00001e8e blx 0xfdc | printf_chk ()
| do {
| label_3:
0x00001e92 ldr r0, [sp, 0x74] | r0 = var_74h;
| label_71:
0x00001e94 movs r3, 0 | r3 = 0;
0x00001e96 mov r2, r7 | r2 = r7;
0x00001e98 mov r1, r6 | r1 = r6;
0x00001e9a blx 0x11c8 | r0 = hashmap_iterate ();
0x00001e9e cmp r0, 0 |
| if (r0 == 0) {
0x00001ea0 beq.w 0x20fe | goto label_73;
| }
0x00001ea4 ldr r5, [sp, 0x78] | r5 = var_78h;
| if (r4 == 0) {
0x00001ea6 cbz r4, 0x1eb4 | goto label_74;
| }
0x00001ea8 mov r1, r4 | r1 = r4;
0x00001eaa mov r0, r5 | r0 = r5;
0x00001eac blx 0x1180 | r0 = startswith ();
0x00001eb0 cmp r0, 0 |
0x00001eb2 beq 0x1e92 |
| } while (r0 == 0);
| label_74:
0x00001eb4 ldr.w r3, [sb] | r3 = *(sb);
0x00001eb8 lsls r1, r3, 0x1a | r1 = r3 << 0x1a;
| if (r1 >= r3) {
0x00001eba bpl 0x1e92 | goto label_3;
| }
0x00001ebc ldr r3, [sp, 0x6c] | r3 = var_6ch;
0x00001ebe str r3, [sp, 0x24] | s1 = r3;
0x00001ec0 blx 0x109c | r0 = get_color_mode ();
0x00001ec4 cmp r0, 0 |
| if (r0 == 0) {
0x00001ec6 beq 0x1e5e | goto label_4;
| }
0x00001ec8 ldr.w r8, [pc, 0x73c] |
0x00001ecc add r8, pc | r8 = 0x44d8;
0x00001ece blx 0x109c | r0 = get_color_mode ();
0x00001ed2 cmp r0, 0 |
| if (r0 == 0) {
0x00001ed4 beq 0x1e6c | goto label_5;
| }
| label_72:
0x00001ed6 ldr.w sl, [pc, 0x734] |
0x00001eda add sl, pc | sl = 0x44ec;
0x00001edc b 0x1e72 | goto label_6;
| label_66:
0x00001ede ldr r0, [sp, 0x84] | r0 = var_84h;
0x00001ee0 mov fp, r6 |
0x00001ee2 b 0x1d52 | goto label_7;
| label_59:
0x00001ee4 mov r0, r4 | r0 = r4;
0x00001ee6 blx 0x10fc | r0 = strdup (r0);
0x00001eea mov r4, r0 | r4 = r0;
0x00001eec cmp r0, 0 |
| if (r0 == 0) {
0x00001eee beq.w 0x226c | goto label_57;
| }
0x00001ef2 mov r0, sb | r0 = sb;
0x00001ef4 blx 0x1048 | r0 = strlen (r0);
0x00001ef8 adds r5, r0, 1 | r5 = r0 + 1;
0x00001efa blx 0xfd0 | r0 = log_get_max_level ();
0x00001efe cmp r0, 6 |
0x00001f00 add r5, r4 | r5 += r4;
| if (r0 <= 6) {
0x00001f02 ble.w 0x1bc6 | goto label_8;
| }
| label_61:
0x00001f06 movs r0, 0xd | r0 = 0xd;
0x00001f08 blx 0x127c | special_glyph ();
0x00001f0c ldr.w r3, [pc, 0x700] |
0x00001f10 movs r1, 0 | r1 = 0;
0x00001f12 strd r0, r4, [sp, 0xc] | __asm ("strd r0, r4, [var_10h]");
0x00001f16 movs r0, 7 | r0 = 7;
0x00001f18 ldr r2, [sp, 0x5c] | r2 = var_5ch;
0x00001f1a add r3, pc | r3 = 0x452e;
0x00001f1c str r5, [sp, 8] | var_8h = r5;
0x00001f1e str r3, [sp, 4] | var_4h = r3;
0x00001f20 ldr.w r3, [pc, 0x6f0] |
0x00001f24 add r3, pc | r3 = 0x453c;
0x00001f26 str r3, [sp] | *(sp) = r3;
0x00001f28 movs r3, 0xfa | r3 = 0xfa;
0x00001f2a blx 0x1144 | log_internal ();
0x00001f2e b 0x1bc6 | goto label_8;
| label_58:
0x00001f30 movs r0, 0xd | r0 = 0xd;
0x00001f32 blx 0x127c | special_glyph ();
0x00001f36 ldr.w r3, [pc, 0x6e0] |
0x00001f3a movs r1, 0 | r1 = 0;
0x00001f3c ldr.w r2, [pc, 0x6dc] |
0x00001f40 strd r0, r4, [sp, 0xc] | __asm ("strd r0, r4, [var_10h]");
0x00001f44 movs r0, 7 | r0 = 7;
0x00001f46 add r3, pc | r3 = 0x4564;
0x00001f48 str r5, [sp, 8] | var_8h = r5;
0x00001f4a str r3, [sp, 4] | var_4h = r3;
0x00001f4c add r2, pc | r2 = 0x456c;
0x00001f4e ldr.w r3, [pc, 0x6d0] |
0x00001f52 adds r2, 7 | r2 += 7;
0x00001f54 add r3, pc | r3 = 0x457a;
0x00001f56 str r3, [sp] | *(sp) = r3;
0x00001f58 movs r3, 0xee | r3 = 0xee;
0x00001f5a blx 0x1144 | log_internal ();
0x00001f5e b 0x1ba4 | goto label_9;
| label_63:
0x00001f60 movs r0, 0xd | r0 = 0xd;
0x00001f62 blx 0x127c | special_glyph ();
0x00001f66 str r0, [sp, 0x48] | var_48h = r0;
0x00001f68 mov r0, r4 | r0 = r4;
0x00001f6a blx 0x1264 | basename (r0);
0x00001f6e ldr r3, [sp, 0x48] | r3 = var_48h;
0x00001f70 movs r1, 0 | r1 = 0;
0x00001f72 str r0, [sp, 0x10] | var_10h = r0;
0x00001f74 movs r0, 7 | r0 = 7;
0x00001f76 ldr r2, [sp, 0x60] | r2 = var_60h;
0x00001f78 str r3, [sp, 0x14] | var_14h = r3;
0x00001f7a strd r6, r3, [sp, 8] | __asm ("strd r6, r3, [var_8h]");
0x00001f7e ldr r3, [sp, 0x50] | r3 = var_50h;
0x00001f80 str r4, [sp, 0x18] | var_18h = r4;
0x00001f82 str r3, [sp, 4] | var_4h = r3;
0x00001f84 ldr.w r3, [pc, 0x69c] |
0x00001f88 add r3, pc | r3 = 0x45b0;
0x00001f8a str r3, [sp] | *(sp) = r3;
0x00001f8c movw r3, 0x111 | r3 = 0x111;
0x00001f90 blx 0x1144 | log_internal ();
0x00001f94 b 0x1c0a | goto label_10;
| label_62:
0x00001f96 ldr r0, [sp, 0x40] | r0 = var_40h;
0x00001f98 blx 0x10f0 | r0 = ordered_hashmap_new ();
0x00001f9c mov r5, r0 | r5 = r0;
0x00001f9e cmp r0, 0 |
| if (r0 == 0) {
0x00001fa0 beq.w 0x226c | goto label_57;
| }
0x00001fa4 mov r1, r6 | r1 = r6;
0x00001fa6 mov r2, r0 | r2 = r0;
0x00001fa8 ldr r0, [sp, 0x38] | r0 = var_38h;
0x00001faa blx 0x1108 | hashmap_put ();
0x00001fae mov r0, r6 | r0 = r6;
0x00001fb0 blx 0x10fc | r0 = strdup (r0);
0x00001fb4 mov r6, r0 | r6 = r0;
0x00001fb6 cmp r0, 0 |
| if (r0 != 0) {
0x00001fb8 bne.w 0x1bf2 | goto label_11;
| }
| label_52:
0x00001fbc mov r5, r7 | r5 = r7;
0x00001fbe ldr r6, [sp, 0x64] | r6 = var_64h;
0x00001fc0 mov r7, sb | r7 = sb;
0x00001fc2 mov.w r8, 0 | r8 = 0;
0x00001fc6 mvn fp, 0xb |
0x00001fca b 0x2048 | goto label_19;
| label_44:
0x00001fcc ldr.w r3, [pc, 0x658] |
0x00001fd0 mov r1, r4 | r1 = r4;
0x00001fd2 ldr.w r2, [pc, 0x658] |
0x00001fd6 movs r0, 7 | r0 = 7;
0x00001fd8 str r7, [sp, 8] | var_8h = r7;
0x00001fda add r3, pc | r3 = 0x4606;
0x00001fdc str r3, [sp, 4] | var_4h = r3;
0x00001fde add r2, pc | r2 = 0x4610;
0x00001fe0 ldr.w r3, [pc, 0x64c] |
0x00001fe4 adds r2, 7 | r2 += 7;
0x00001fe6 add r3, pc | r3 = 0x461a;
0x00001fe8 str r3, [sp] | *(sp) = r3;
0x00001fea movw r3, 0x12f | r3 = 0x12f;
0x00001fee blx 0x1144 | log_internal ();
0x00001ff2 b 0x1a14 | goto label_12;
| label_48:
0x00001ff4 mov r6, fp | r6 = fp;
0x00001ff6 ldrd r7, sl, [sp, 0x4c] | __asm ("ldrd r7, sl, [var_50h]");
0x00001ffa ldr r0, [sp, 0x84] | r0 = var_84h;
0x00001ffc mvn fp, 0xb |
0x00002000 b 0x1d52 | goto label_7;
| label_39:
0x00002002 ldr.w r1, [pc, 0x630] |
0x00002006 mov.w r2, 0x198 | r2 = 0x198;
0x0000200a ldr.w r3, [pc, 0x62c] |
0x0000200e ldr.w r0, [pc, 0x62c] |
0x00002012 add r1, pc | r1 = 0x464c;
0x00002014 add r3, pc | r3 = 0x4652;
0x00002016 adds r1, 7 | r1 += 7;
0x00002018 add r0, pc | r0 = 0x465a;
0x0000201a blx 0x1078 | log_assert_failed ();
| label_55:
0x0000201e blx 0xfd0 | r0 = log_get_max_level ();
0x00002022 cmp r0, 2 |
0x00002024 mov r5, r7 | r5 = r7;
0x00002026 it le |
| if (r0 <= 2) {
0x00002028 rsble r3, r4, 0 | __asm ("rsble r3, r4, 0");
| }
0x0000202a mov r8, r6 | r8 = r6;
0x0000202c it le |
| if (r0 <= 2) {
0x0000202e uxtble r3, r3 | __asm ("uxtble r3, r3");
| }
0x00002030 ldr r6, [sp, 0x64] | r6 = var_64h;
0x00002032 mov r7, sb | r7 = sb;
0x00002034 it le |
| if (r0 <= 2) {
0x00002036 rsble fp, r3, 0 | __asm ("rsble fp, r3, 0");
| }
| if (r0 > 2) {
0x0000203a bgt.w 0x2244 | goto label_75;
| }
| label_18:
0x0000203e cmp.w fp, 0 |
0x00002042 it ge |
0x00002044 mvnge fp, 0x55 |
| while (1) {
| label_19:
0x00002048 ldr r0, [sp, 0x8c] | r0 = var_8ch;
0x0000204a cmp r0, 0 |
| if (r0 != 0) {
0x0000204c bne.w 0x255a | goto label_76;
| }
| label_36:
0x00002050 mov r0, r5 | r0 = r5;
0x00002052 blx 0x100c | free (r0);
0x00002056 mov r0, r8 | r0 = r8;
0x00002058 blx 0x100c | free (r0);
0x0000205c ldr r0, [sp, 0x84] | r0 = var_84h;
0x0000205e b 0x1d52 | goto label_7;
| label_40:
0x00002060 ldr.w r1, [pc, 0x5dc] |
0x00002064 movw r2, 0x199 | r2 = 0x199;
0x00002068 ldr.w r3, [pc, 0x5d8] |
0x0000206c ldr.w r0, [pc, 0x5d8] |
0x00002070 add r1, pc | r1 = 0x46b4;
0x00002072 add r3, pc | r3 = 0x46ba;
0x00002074 adds r1, 7 | r1 += 7;
0x00002076 add r0, pc | r0 = 0x46c2;
0x00002078 blx 0x1078 | log_assert_failed ();
| label_41:
0x0000207c ldr.w r1, [pc, 0x5cc] |
0x00002080 mov.w r2, 0x19a | r2 = 0x19a;
0x00002084 ldr.w r3, [pc, 0x5c8] |
0x00002088 ldr.w r0, [pc, 0x5c8] |
0x0000208c add r1, pc | r1 = 0x46dc;
0x0000208e add r3, pc | r3 = 0x46e2;
0x00002090 adds r1, 7 | r1 += 7;
0x00002092 add r0, pc | r0 = 0x46ea;
0x00002094 blx 0x1078 | log_assert_failed ();
| label_53:
0x00002098 ldr.w r3, [pc, 0x5bc] |
0x0000209c mov r1, r5 | r1 = r5;
0x0000209e ldr.w r2, [pc, 0x5bc] |
0x000020a2 movs r0, 7 | r0 = 7;
0x000020a4 str r7, [sp, 8] | var_8h = r7;
0x000020a6 add r3, pc | r3 = 0x4702;
0x000020a8 str r3, [sp, 4] | var_4h = r3;
0x000020aa add r2, pc | r2 = 0x470c;
0x000020ac ldr.w r3, [pc, 0x5b0] |
0x000020b0 adds r2, 7 | r2 += 7;
0x000020b2 add r3, pc | r3 = 0x4716;
0x000020b4 str r3, [sp] | *(sp) = r3;
0x000020b6 movs r3, 0xcf | r3 = 0xcf;
0x000020b8 blx 0x1144 | log_internal ();
0x000020bc b 0x1b18 | goto label_13;
| label_56:
0x000020be ldr r0, [sp, 0x8c] | r0 = var_8ch;
0x000020c0 cmp r0, 0 |
| if (r0 != 0) {
0x000020c2 bne.w 0x2560 | goto label_77;
| }
| label_37:
0x000020c6 mov r0, r7 | r0 = r7;
0x000020c8 blx 0x100c | free (r0);
0x000020cc mov r0, r6 | r0 = r6;
0x000020ce blx 0x100c | free (r0);
0x000020d2 b 0x1ad4 | goto label_14;
| label_67:
0x000020d4 ldr.w r3, [pc, 0x58c] |
0x000020d8 mov r1, r4 | r1 = r4;
0x000020da ldr.w r2, [pc, 0x58c] |
0x000020de movs r0, 3 | r0 = 3;
0x000020e0 str r7, [sp, 8] | var_8h = r7;
0x000020e2 add r3, pc | r3 = 0x474a;
0x000020e4 str r3, [sp, 4] | var_4h = r3;
0x000020e6 add r2, pc | r2 = 0x4754;
0x000020e8 ldr.w r3, [pc, 0x580] |
0x000020ec adds r2, 7 | r2 += 7;
0x000020ee add r3, pc | r3 = 0x475e;
0x000020f0 str r3, [sp] | *(sp) = r3;
0x000020f2 mov.w r3, 0x136 | r3 = 0x136;
0x000020f6 blx 0x1144 | r0 = log_internal ();
0x000020fa mov fp, r0 |
0x000020fc b 0x1d46 | goto label_15;
| label_73:
0x000020fe ldr.w sl, [sp, 0x3c] | sl = var_3ch;
0x00002102 b 0x1dd8 | goto label_16;
| label_70:
0x00002104 movs r6, 0 | r6 = 0;
0x00002106 str r6, [sp, 0x7c] | var_7ch = r6;
0x00002108 cmp r7, 0 |
| if (r7 == 0) {
0x0000210a beq.w 0x24de | goto label_78;
| }
0x0000210e mov r0, r7 | r0 = r7;
0x00002110 blx 0x1258 | r0 = null_or_empty_path ();
0x00002114 cmp r0, 0 |
| if (r0 > 0) {
0x00002116 bgt.w 0x227a | goto label_79;
| }
0x0000211a add r1, sp, 0x7c | r1 += var_7ch;
0x0000211c mov r0, r7 | r0 = r7;
0x0000211e blx 0x11b0 | r0 = readlink_malloc ();
0x00002122 cmp r0, 0 |
| if (r0 < 0) {
0x00002124 blt.w 0x240c | goto label_80;
| }
0x00002128 ldr r0, [sp, 0x7c] | r0 = var_7ch;
0x0000212a add r3, sp, 0x80 | r3 += var_80h;
0x0000212c movs r2, 0x10 | r2 = 0x10;
0x0000212e mov r1, r6 | r1 = r6;
0x00002130 str r6, [sp] | *(sp) = r6;
0x00002132 str r6, [sp, 0x80] | var_80h = r6;
0x00002134 str r6, [sp, 0x8c] | var_8ch = r6;
0x00002136 blx 0xfb8 | r0 = chase_symlinks ();
0x0000213a cmp r0, 0 |
| if (r0 < 0) {
0x0000213c blt.w 0x2476 | goto label_81;
| }
0x00002140 mov r1, r6 | r1 = r6;
0x00002142 add r3, sp, 0x8c | r3 += var_8ch;
0x00002144 movs r2, 0x10 | r2 = 0x10;
0x00002146 mov r0, r5 | r0 = r5;
0x00002148 str r6, [sp] | *(sp) = r6;
0x0000214a blx 0xfb8 | r0 = chase_symlinks ();
0x0000214e cmp r0, 0 |
| if (r0 < 0) {
0x00002150 blt.w 0x2476 | goto label_81;
| }
0x00002154 ldr.w r8, [sp, 0x8c] | r8 = var_8ch;
0x00002158 ldr r0, [sp, 0x80] | r0 = var_80h;
0x0000215a mov r1, r8 | r1 = r8;
0x0000215c blx 0x1174 | r0 = path_compare ();
0x00002160 mov r6, r0 | r6 = r0;
0x00002162 mov r0, r8 | r0 = r8;
0x00002164 blx 0x100c | free (r0);
0x00002168 ldr r0, [sp, 0x80] | r0 = var_80h;
0x0000216a blx 0x100c | free (r0);
0x0000216e ldr.w r3, [pc, 0x500] | r3 = *(0x00002670);
0x00002172 add r3, pc | r3 += pc;
0x00002174 ldr r3, [r3] | r3 = *(r3);
0x00002176 cmp r6, 0 |
| if (r6 != 0) {
0x00002178 bne.w 0x2482 | goto label_82;
| }
0x0000217c lsls r2, r3, 0x1e | r2 = r3 << 0x1e;
| if (r2 < r3) {
0x0000217e bpl 0x222a |
0x00002180 blx 0x109c | r0 = get_color_mode ();
0x00002184 cmp r0, 0 |
| if (r0 != 0) {
0x00002186 bne.w 0x2524 | goto label_83;
| }
0x0000218a ldr.w r6, [pc, 0x4e8] |
0x0000218e add r6, pc | r6 = 0x4808;
| label_33:
0x00002190 blx 0x109c | r0 = get_color_mode ();
0x00002194 cmp r0, 0 |
| if (r0 != 0) {
0x00002196 bne.w 0x251c | goto label_84;
| }
0x0000219a ldr.w r8, [pc, 0x4dc] |
0x0000219e add r8, pc | r8 = 0x481c;
| label_32:
0x000021a0 movs r0, 0xd | r0 = 0xd;
0x000021a2 add.w fp, fp, 1 |
0x000021a6 blx 0x127c | special_glyph ();
0x000021aa ldr.w r3, [pc, 0x4d0] |
0x000021ae mov r2, r6 | r2 = r6;
0x000021b0 ldr.w r1, [pc, 0x4cc] |
0x000021b4 strd r0, r5, [sp, 8] | __asm ("strd r0, r5, [var_8h]");
0x000021b8 movs r0, 1 | r0 = 1;
0x000021ba add r3, pc | r3 = 0x483c;
0x000021bc strd r8, r7, [sp] | __asm ("strd r8, r7, [sp]");
0x000021c0 add r1, pc | r1 = 0x4844;
0x000021c2 blx 0xfdc | printf_chk ()
0x000021c6 ldr r0, [sp, 0x7c] | r0 = var_7ch;
0x000021c8 blx 0x100c | free (r0);
0x000021cc b 0x1e30 | goto label_17;
| label_24:
0x000021ce ldr.w r3, [pc, 0x4b4] | r3 = *(0x00002684);
0x000021d2 add r3, pc | r3 += pc;
0x000021d4 ldr r3, [r3] | r3 = *(r3);
| if (r3 == 0) {
0x000021d6 cbz r3, 0x222a | goto label_20;
| }
| label_25:
0x000021d8 ldr.w r3, [pc, 0x4ac] | r3 = *(0x2688);
0x000021dc movs r0, 0xa | r0 = 0xa;
0x000021de ldr r2, [sp, 0x34] | r2 = var_34h;
0x000021e0 add r6, sp, 0x8c | r6 += var_8ch;
0x000021e2 ldr.w r8, [r2, r3] | r8 = *((r2 + r3));
0x000021e6 ldr.w r1, [r8] | r1 = *(r8);
0x000021ea blx 0x11a4 | putc (r0, r1);
0x000021ee ldr.w r0, [r8] | r0 = *(r8);
0x000021f2 blx 0x103c | fflush (r0);
0x000021f6 movs r2, 0 | r2 = 0;
0x000021f8 ldr r0, [sp, 0x58] | r0 = var_58h;
0x000021fa movw r3, 0x447 | r3 = 0x447;
0x000021fe mov r1, r2 | r1 = r2;
0x00002200 str r6, [sp] | *(sp) = r6;
0x00002202 blx 0x1168 | r0 = safe_fork_full ();
0x00002206 cmp r0, 0 |
| if (r0 < 0) {
0x00002208 blt.w 0x2546 | goto label_85;
| }
| if (r0 == 0) {
0x0000220c beq.w 0x256a | goto label_86;
| }
0x00002210 add fp, r0 |
0x00002212 ldr.w r0, [pc, 0x478] |
0x00002216 ldr r1, [sp, 0x8c] | r1 = var_8ch;
0x00002218 movs r2, 1 | r2 = 1;
0x0000221a add r0, pc | r0 = 0x48ac;
0x0000221c blx 0x106c | wait_for_terminate_and_check ();
0x00002220 ldr.w r1, [r8] | r1 = *(r8);
0x00002224 movs r0, 0xa | r0 = 0xa;
0x00002226 blx 0x11a4 | putc (r0, r1);
| }
| label_20:
0x0000222a ldr r0, [sp, 0x7c] | r0 = var_7ch;
0x0000222c blx 0x100c | free (r0);
0x00002230 b 0x1e30 | goto label_17;
| label_60:
0x00002232 mov r0, r4 | r0 = r4;
0x00002234 mov r5, r7 | r5 = r7;
0x00002236 mov r8, r6 | r8 = r6;
0x00002238 mov fp, r3 |
0x0000223a ldr r6, [sp, 0x64] | r6 = var_64h;
0x0000223c mov r7, sb | r7 = sb;
0x0000223e blx 0x100c | free (r0);
0x00002242 b 0x2048 |
| }
| label_75:
0x00002244 ldr.w r3, [pc, 0x448] |
0x00002248 mov r1, r4 | r1 = r4;
0x0000224a ldr.w r2, [pc, 0x448] |
0x0000224e movs r0, 3 | r0 = 3;
0x00002250 str r5, [sp, 8] | var_8h = r5;
0x00002252 add r3, pc | r3 = 0x48e6;
0x00002254 str r3, [sp, 4] | var_4h = r3;
0x00002256 add r2, pc | r2 = 0x48f0;
0x00002258 ldr.w r3, [pc, 0x43c] |
0x0000225c adds r2, 7 | r2 += 7;
0x0000225e add r3, pc | r3 = 0x48fa;
0x00002260 str r3, [sp] | *(sp) = r3;
0x00002262 movs r3, 0xdc | r3 = 0xdc;
0x00002264 blx 0x1144 | r0 = log_internal ();
0x00002268 mov fp, r0 |
0x0000226a b 0x203e | goto label_18;
| label_57:
0x0000226c mov r5, r7 | r5 = r7;
0x0000226e mov r8, r6 | r8 = r6;
0x00002270 mov r7, sb | r7 = sb;
0x00002272 ldr r6, [sp, 0x64] | r6 = var_64h;
0x00002274 mvn fp, 0xb |
0x00002278 b 0x2048 | goto label_19;
| label_79:
0x0000227a ldr.w r3, [pc, 0x420] | r3 = *(0x0000269c);
0x0000227e add r3, pc | r3 += pc;
0x00002280 ldr r3, [r3] | r3 = *(r3);
0x00002282 lsls r1, r3, 0x1f | r1 = r3 << 0x1f;
| if (r1 >= r3) {
0x00002284 bpl 0x222a | goto label_20;
| }
0x00002286 blx 0x109c | r0 = get_color_mode ();
0x0000228a cmp r0, 0 |
| if (r0 != 0) {
0x0000228c bne.w 0x2500 | goto label_87;
| }
0x00002290 ldr.w r6, [pc, 0x40c] |
0x00002294 add r6, pc | r6 = 0x4938;
| label_29:
0x00002296 blx 0x109c | r0 = get_color_mode ();
0x0000229a cmp r0, 0 |
| if (r0 != 0) {
0x0000229c bne.w 0x24f8 | goto label_88;
| }
0x000022a0 ldr.w r8, [pc, 0x400] |
0x000022a4 add r8, pc | r8 = 0x494c;
| label_28:
0x000022a6 movs r0, 0xd | r0 = 0xd;
0x000022a8 add.w fp, fp, 1 |
0x000022ac blx 0x127c | special_glyph ();
0x000022b0 ldr r3, [pc, 0x3f4] |
0x000022b2 mov r2, r6 | r2 = r6;
0x000022b4 ldr r1, [pc, 0x3f4] |
0x000022b6 strd r0, r5, [sp, 8] | __asm ("strd r0, r5, [var_8h]");
0x000022ba movs r0, 1 | r0 = 1;
0x000022bc add r3, pc | r3 = 0x4968;
0x000022be strd r8, r7, [sp] | __asm ("strd r8, r7, [sp]");
0x000022c2 add r1, pc | r1 = 0x4972;
0x000022c4 blx 0xfdc | printf_chk ()
0x000022c8 ldr r0, [sp, 0x7c] | r0 = var_7ch;
0x000022ca blx 0x100c | free (r0);
0x000022ce b 0x1e30 | goto label_17;
| label_51:
0x000022d0 ldr r1, [pc, 0x3dc] |
0x000022d2 movs r2, 0xc9 | r2 = 0xc9;
0x000022d4 ldr r3, [pc, 0x3dc] |
0x000022d6 ldr r0, [pc, 0x3e0] |
0x000022d8 add r1, pc | r1 = 0x498c;
0x000022da add r3, pc | r3 = 0x4992;
0x000022dc adds r1, 7 | r1 += 7;
0x000022de add r0, pc | r0 = 0x499c;
0x000022e0 blx 0x1078 | log_assert_failed ();
| label_69:
0x000022e4 ldr r1, [pc, 0x3d4] |
0x000022e6 movw r2, 0x1bb | r2 = 0x1bb;
0x000022ea ldr r3, [pc, 0x3d4] |
0x000022ec ldr r0, [pc, 0x3d4] |
0x000022ee add r1, pc | r1 = 0x49ae;
0x000022f0 add r3, pc | r3 = 0x49b6;
0x000022f2 adds r1, 7 | r1 += 7;
0x000022f4 add r0, pc | r0 = 0x49bc;
0x000022f6 blx 0x1078 | log_assert_failed ();
| label_50:
0x000022fa ldr r6, [sp, 0x64] | r6 = var_64h;
0x000022fc mov r7, sb | r7 = sb;
| label_49:
0x000022fe ldr r4, [sp, 0x80] | r4 = var_80h;
0x00002300 cmp r4, 0 |
| if (r4 == 0) {
0x00002302 beq.w 0x2550 | goto label_89;
| }
0x00002306 ldr.w r8, [pc, 0x3c0] |
0x0000230a subs r4, 4 | r4 -= 4;
0x0000230c ldr.w sb, [pc, 0x3bc] |
0x00002310 ldr.w fp, [sp, 0x2c] | fp = var_2ch;
0x00002314 add r8, pc | r8 = 0x49e2;
0x00002316 str r6, [sp, 0x50] | var_50h = r6;
0x00002318 add sb, pc | sb = 0x49e8;
0x0000231a strd r8, sb, [sp, 0x48] | __asm ("strd r8, sb, [var_48h]");
0x0000231e ldrd r8, sb, [sp, 0x54] | __asm ("ldrd r8, sb, [var_54h]");
0x00002322 b 0x235c |
| while (r0 < 0) {
0x00002324 cmn.w r0, 0x11 |
| if (r0 != 0x11) {
0x00002328 bne.w 0x24f2 | goto label_90;
| }
| label_21:
0x0000232c blx 0xfd0 | r0 = log_get_max_level ();
0x00002330 cmp r0, 6 |
| if (r0 > 6) {
0x00002332 bgt 0x23dc | goto label_91;
| }
| label_23:
0x00002334 mov r0, r5 | r0 = r5;
0x00002336 blx 0x1264 | r0 = basename (r0);
0x0000233a mov r1, r0 | r1 = r0;
0x0000233c mov r0, sl | r0 = sl;
0x0000233e blx 0x1120 | hashmap_remove ();
0x00002342 blx 0x100c | free (r0);
0x00002346 mov r0, r5 | r0 = r5;
0x00002348 blx 0x1264 | basename (r0);
0x0000234c mov r2, r5 | r2 = r5;
0x0000234e mov r1, r0 | r1 = r0;
0x00002350 mov r0, sl | r0 = sl;
0x00002352 blx 0x1108 | r0 = hashmap_put ();
0x00002356 cmp r0, 0 |
| if (r0 < 0) {
0x00002358 blt.w 0x24f2 | goto label_90;
| }
0x0000235c ldr r2, [r4, 4]! | r2 = *((r4 += 4));
0x00002360 cmp r2, 0 |
| if (r2 == 0) {
0x00002362 beq.w 0x2506 | goto label_92;
| }
0x00002366 mov.w r3, -1 | r3 = -1;
0x0000236a mov r1, r7 | r1 = r7;
0x0000236c movs r0, 0 | r0 = 0;
0x0000236e blx 0x1090 | r0 = path_extend_internal ();
0x00002372 mov r5, r0 | r5 = r0;
| if (r0 == 0) {
0x00002374 cbz r0, 0x239e | goto label_93;
| }
0x00002376 blx 0xfd0 | r0 = log_get_max_level ();
0x0000237a cmp r0, 6 |
| if (r0 > 6) {
0x0000237c bgt 0x23b0 | goto label_94;
| }
| label_22:
0x0000237e mov r0, r5 | r0 = r5;
0x00002380 blx 0x1264 | basename (r0);
0x00002384 mov r2, r5 | r2 = r5;
0x00002386 mov r1, r0 | r1 = r0;
0x00002388 mov r0, fp | r0 = fp;
0x0000238a blx 0x1108 | r0 = hashmap_put ();
0x0000238e cmp r0, 0 |
0x00002390 blt 0x2324 |
| }
0x00002392 mov r0, r5 | r0 = r5;
0x00002394 blx 0x10fc | r0 = strdup (r0);
0x00002398 mov r5, r0 | r5 = r0;
0x0000239a cmp r0, 0 |
| if (r0 != 0) {
0x0000239c bne 0x232c | goto label_21;
| }
| label_93:
0x0000239e ldr r6, [sp, 0x50] | r6 = var_50h;
0x000023a0 movs r5, 0 | r5 = 0;
0x000023a2 mvn fp, 0xb |
| label_27:
0x000023a6 mov r0, r5 | r0 = r5;
0x000023a8 blx 0x100c | free (r0);
0x000023ac ldr r0, [sp, 0x84] | r0 = var_84h;
0x000023ae b 0x1d52 | goto label_7;
| label_94:
0x000023b0 mov r0, r5 | r0 = r5;
0x000023b2 blx 0x1264 | r0 = basename (r0);
0x000023b6 mov r6, r0 | r6 = r0;
0x000023b8 movs r0, 0xd | r0 = 0xd;
0x000023ba blx 0x127c | special_glyph ();
0x000023be ldr r3, [sp, 0x48] | r3 = var_48h;
0x000023c0 mov r2, r8 | r2 = r8;
0x000023c2 strd r6, r0, [sp, 8] | __asm ("strd r6, r0, [var_8h]");
0x000023c6 movs r1, 0 | r1 = 0;
0x000023c8 str r5, [sp, 0x10] | var_10h = r5;
0x000023ca movs r0, 7 | r0 = 7;
0x000023cc str r3, [sp, 4] | var_4h = r3;
0x000023ce ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x000023d0 str r3, [sp] | *(sp) = r3;
0x000023d2 mov.w r3, 0x160 | r3 = 0x160;
0x000023d6 blx 0x1144 | log_internal ();
0x000023da b 0x237e | goto label_22;
| label_91:
0x000023dc mov r0, r5 | r0 = r5;
0x000023de blx 0x1264 | r0 = basename (r0);
0x000023e2 mov r6, r0 | r6 = r0;
0x000023e4 movs r0, 0xd | r0 = 0xd;
0x000023e6 blx 0x127c | special_glyph ();
0x000023ea ldr r3, [pc, 0x2e4] |
0x000023ec mov r2, sb | r2 = sb;
0x000023ee strd r6, r0, [sp, 8] | __asm ("strd r6, r0, [var_8h]");
0x000023f2 movs r1, 0 | r1 = 0;
0x000023f4 str r5, [sp, 0x10] | var_10h = r5;
0x000023f6 movs r0, 7 | r0 = 7;
0x000023f8 add r3, pc | r3 = 0x4ace;
0x000023fa str r3, [sp, 4] | var_4h = r3;
0x000023fc ldr r3, [pc, 0x2d4] |
0x000023fe add r3, pc | r3 = 0x4ad6;
0x00002400 str r3, [sp] | *(sp) = r3;
0x00002402 movw r3, 0x169 | r3 = 0x169;
0x00002406 blx 0x1144 | log_internal ();
0x0000240a b 0x2334 | goto label_23;
| label_80:
0x0000240c ldr r3, [sp, 0x54] | r3 = var_54h;
0x0000240e ldr r3, [r3] | r3 = *(r3);
0x00002410 lsls r6, r3, 0x1c | r6 = r3 << 0x1c;
| if (r6 >= r3) {
0x00002412 bpl.w 0x21ce | goto label_24;
| }
0x00002416 blx 0x109c | r0 = get_color_mode ();
0x0000241a cmp r0, 0 |
| if (r0 != 0) {
0x0000241c bne 0x250e | goto label_95;
| }
0x0000241e ldr r6, [pc, 0x2b8] |
0x00002420 add r6, pc | r6 = 0x4afe;
| label_30:
0x00002422 blx 0x109c | r0 = get_color_mode ();
0x00002426 cmp r0, 0 |
| if (r0 != 0) {
0x00002428 bne 0x2514 | goto label_96;
| }
0x0000242a ldr.w r8, [pc, 0x2b0] |
0x0000242e add r8, pc | r8 = 0x4b10;
| label_31:
0x00002430 movs r0, 0xd | r0 = 0xd;
0x00002432 blx 0x127c | special_glyph ();
0x00002436 ldr r3, [pc, 0x2a8] |
0x00002438 mov r2, r6 | r2 = r6;
0x0000243a ldr r1, [pc, 0x2a8] |
0x0000243c str r0, [sp, 8] | var_8h = r0;
0x0000243e movs r0, 1 | r0 = 1;
0x00002440 add r3, pc | r3 = 0x4b26;
0x00002442 str.w r8, [sp] | __asm ("str.w r8, [sp]");
0x00002446 add r1, pc | r1 = 0x4b30;
0x00002448 str r5, [sp, 0xc] | var_ch = r5;
0x0000244a str r7, [sp, 4] | var_4h = r7;
0x0000244c blx 0xfdc | printf_chk ()
0x00002450 ldr r3, [pc, 0x294] |
0x00002452 add r3, pc |
0x00002454 ldr r3, [r3] | r3 = *(0x4b3e);
0x00002456 cmp r3, 0 |
| if (r3 != 0) {
0x00002458 bne.w 0x21d8 | goto label_25;
| }
0x0000245c ldr r0, [sp, 0x7c] | r0 = var_7ch;
0x0000245e add.w fp, fp, 1 |
0x00002462 blx 0x100c | free (r0);
0x00002466 b 0x1e30 | goto label_17;
| label_68:
0x00002468 mov r4, sl | r4 = sl;
0x0000246a ldr.w sb, [sp, 0x48] | sb = var_48h;
0x0000246e ldr.w sl, [sp, 0x4c] | sl = var_4ch;
0x00002472 b.w 0x1c4c | goto label_26;
| label_81:
0x00002476 ldr r0, [sp, 0x8c] | r0 = var_8ch;
0x00002478 blx 0x100c | free (r0);
0x0000247c ldr r0, [sp, 0x80] | r0 = var_80h;
0x0000247e blx 0x100c | free (r0);
| label_82:
0x00002482 ldr r3, [pc, 0x268] |
0x00002484 add r3, pc |
0x00002486 ldr r3, [r3] | r3 = *(0x4b76);
0x00002488 lsls r3, r3, 0x1d | r3 <<= 0x1d;
| if (r3 >= r3) {
0x0000248a bpl.w 0x222a | goto label_20;
| }
0x0000248e blx 0x109c | r0 = get_color_mode ();
0x00002492 cmp r0, 0 |
| if (r0 != 0) {
0x00002494 bne 0x2532 | goto label_97;
| }
0x00002496 ldr r6, [pc, 0x258] |
0x00002498 add r6, pc | r6 = 0x4b8e;
| label_34:
0x0000249a blx 0x109c | r0 = get_color_mode ();
0x0000249e cmp r0, 0 |
| if (r0 != 0) {
0x000024a0 bne 0x252a | goto label_98;
| }
0x000024a2 ldr.w r8, [pc, 0x250] |
0x000024a6 add r8, pc | r8 = 0x4ba0;
| do {
0x000024a8 movs r0, 0xd | r0 = 0xd;
0x000024aa add.w fp, fp, 1 |
0x000024ae blx 0x127c | special_glyph ();
0x000024b2 ldr r3, [pc, 0x244] |
0x000024b4 mov r2, r6 | r2 = r6;
0x000024b6 ldr r1, [pc, 0x244] |
0x000024b8 strd r0, r5, [sp, 8] | __asm ("strd r0, r5, [var_8h]");
0x000024bc movs r0, 1 | r0 = 1;
0x000024be add r3, pc | r3 = 0x4bbc;
0x000024c0 strd r8, r7, [sp] | __asm ("strd r8, r7, [sp]");
0x000024c4 add r1, pc | r1 = 0x4bc6;
0x000024c6 blx 0xfdc | printf_chk ()
0x000024ca ldr r0, [sp, 0x7c] | r0 = var_7ch;
0x000024cc blx 0x100c | free (r0);
0x000024d0 b 0x1e30 | goto label_17;
| label_65:
0x000024d2 mov r6, fp | r6 = fp;
0x000024d4 ldrd r7, sl, [sp, 0x4c] | __asm ("ldrd r7, sl, [var_50h]");
0x000024d8 mvn fp, 0xb |
0x000024dc b 0x1d52 | goto label_7;
| label_78:
0x000024de ldr r1, [pc, 0x220] |
0x000024e0 movs r2, 0x96 | r2 = 0x96;
0x000024e2 ldr r3, [pc, 0x220] |
0x000024e4 ldr r0, [pc, 0x220] |
0x000024e6 add r1, pc | r1 = 0x4bec;
0x000024e8 add r3, pc | r3 = 0x4bf2;
0x000024ea adds r1, 7 | r1 += 7;
0x000024ec add r0, pc | r0 = 0x4bf8;
0x000024ee blx 0x1078 | log_assert_failed ();
| label_90:
0x000024f2 ldr r6, [sp, 0x50] | r6 = var_50h;
0x000024f4 mov fp, r0 |
0x000024f6 b 0x23a6 | goto label_27;
| label_88:
0x000024f8 ldr.w r8, [pc, 0x210] |
0x000024fc add r8, pc | r8 = 0x4c0c;
0x000024fe b 0x22a6 | goto label_28;
| label_87:
0x00002500 ldr r6, [pc, 0x20c] |
0x00002502 add r6, pc | r6 = 0x4c16;
0x00002504 b 0x2296 | goto label_29;
| label_92:
0x00002506 ldr r6, [sp, 0x50] | r6 = var_50h;
0x00002508 mov fp, r2 |
0x0000250a ldr r0, [sp, 0x84] | r0 = var_84h;
0x0000250c b 0x1d52 | goto label_7;
| label_95:
0x0000250e ldr r6, [pc, 0x204] |
0x00002510 add r6, pc | r6 = 0x4c2a;
0x00002512 b 0x2422 | goto label_30;
| label_96:
0x00002514 ldr.w r8, [pc, 0x200] |
0x00002518 add r8, pc | r8 = 0x4c34;
0x0000251a b 0x2430 | goto label_31;
| label_84:
0x0000251c ldr.w r8, [pc, 0x1fc] |
0x00002520 add r8, pc | r8 = 0x4c40;
0x00002522 b 0x21a0 | goto label_32;
| label_83:
0x00002524 ldr r6, [pc, 0x1f8] |
0x00002526 add r6, pc | r6 = 0x4c4a;
0x00002528 b 0x2190 | goto label_33;
| label_98:
0x0000252a ldr.w r8, [pc, 0x1f8] |
0x0000252e add r8, pc | r8 = 0x4c58;
0x00002530 b 0x24a8 |
| } while (1);
| label_97:
0x00002532 ldr r6, [pc, 0x1f4] |
0x00002534 add r6, pc | r6 = 0x4c62;
0x00002536 b 0x249a | goto label_34;
| label_54:
0x00002538 mov r5, r7 | r5 = r7;
0x0000253a mov r8, r6 | r8 = r6;
0x0000253c mov r7, sb | r7 = sb;
0x0000253e ldr r6, [sp, 0x64] | r6 = var_64h;
0x00002540 mvn fp, 0x15 |
0x00002544 b 0x2048 | goto label_19;
| label_85:
0x00002546 str r0, [sp, 0x28] | var_28h = r0;
0x00002548 ldr r0, [sp, 0x7c] | r0 = var_7ch;
0x0000254a blx 0x100c | free (r0);
0x0000254e b 0x1e30 | goto label_17;
| label_89:
0x00002550 ldr r0, [sp, 0x84] | r0 = var_84h;
| if (r0 == 0) {
0x00002552 cbz r0, 0x2596 | goto label_99;
| }
0x00002554 mov fp, r4 |
0x00002556 b.w 0x1d54 | goto label_35;
| label_76:
0x0000255a blx 0x1060 | strv_free ();
0x0000255e b 0x2050 | goto label_36;
| label_77:
0x00002560 blx 0x1060 | strv_free ();
0x00002564 b 0x20c6 | goto label_37;
| label_64:
0x00002566 blx 0x1114 | stack_chk_fail ();
| label_86:
0x0000256a ldr r1, [pc, 0x1c0] |
0x0000256c ldr r3, [pc, 0x1c0] |
0x0000256e ldr r2, [pc, 0x1c4] |
0x00002570 add r1, pc | r1 = 0x4ca2;
0x00002572 strd r7, r0, [sp, 4] | __asm ("strd r7, r0, [var_8h]");
0x00002576 add r3, pc | r3 = 0x4caa;
0x00002578 mov r0, r1 | r0 = r1;
0x0000257a add r2, pc | r2 = 0x4cb4;
0x0000257c str r5, [sp] | *(sp) = r5;
0x0000257e blx 0xff4 | execlp ();
0x00002582 blx 0x1228 | log_open ();
0x00002586 blx 0xfd0 | r0 = log_get_max_level ();
0x0000258a cmp r0, 2 |
0x0000258c bgt.w 0x2738 |
| while (1) {
0x00002590 movs r0, 1 | r0 = 1;
0x00002592 blx 0x1000 | r0 = exit (r0);
| label_99:
0x00002596 mov fp, r0 |
0x00002598 b.w 0x1d66 | goto label_38;
0x00002738 blx 0x1240 | errno_location ();
0x0000273c ldr r2, [pc, 0x1c] |
0x0000273e mov r4, r0 | r4 = r0;
0x00002740 ldr r1, [pc, 0x1c] |
0x00002742 movs r3, 0xb2 | r3 = 0xb2;
0x00002744 ldr r0, [pc, 0x1c] |
0x00002746 add r2, pc | r2 = 0x4ea6;
0x00002748 add r1, pc | r1 = 0x4eac;
0x0000274a adds r2, 7 | r2 += 7;
0x0000274c add r0, pc | r0 = 0x4eb4;
0x0000274e str r1, [sp] | *(sp) = r1;
0x00002750 str r0, [sp, 4] | var_4h = r0;
0x00002752 movs r0, 3 | r0 = 3;
0x00002754 ldr r1, [r4] | r1 = *(r4);
0x00002756 blx 0x1144 | log_internal ();
0x0000275a b 0x2590 |
| }
| }
[*] Function printf used 7 times systemd-delta