[*] Binary protection state of ldconfig
Partial RELRO No Canary found NX disabled No PIE No RPATH No RUNPATH No Symbols
[*] Function printf tear down of ldconfig
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/sbin/ldconfig @ 0x11168 */
| #include <stdint.h>
|
; (fcn) fcn.00011168 () | void fcn_00011168 (char * arg_1080h, int32_t arg_2080h, char * filename, int32_t arg1, int32_t arg2) {
| int32_t var_0h;
| int32_t var_ch;
| void * buf;
| int32_t var_64h;
| int32_t var_68h;
| char * s;
| r0 = arg1;
| r1 = arg2;
0x00011168 push {r4, r5, r6, r7, r8, lr} |
0x0001116c sub sp, sp, 0x4000 |
0x00011170 sub sp, sp, 0xb0 |
0x00011174 mov r4, r0 | r4 = r0;
0x00011178 mov r3, r1 | r3 = r1;
0x0001117c mov r8, r2 | r8 = r2;
0x00011180 mov r5, r1 | r5 = r1;
0x00011184 mov r2, r0 | r2 = r0;
0x00011188 ldr r1, [pc, 0x1d0] | r1 = *(0x1135c);
0x0001118c add r0, sp, 0xb0 | r0 += s;
0x00011190 bl 0x10c74 | sprintf (r0, r1, r2)
0x00011194 mov r2, r4 | r2 = r4;
0x00011198 add r0, sp, 0x1080 | r0 += arg_1080h;
0x0001119c ldr r4, [pc, 0x1c0] | r4 = "_s__s";
0x000111a0 mov r3, r8 | r3 = r8;
0x000111a4 ldr r1, [pc, 0x1b4] | r1 = *(0x1135c);
0x000111a8 add r0, r0, 0x30 | r0 += 0x30;
0x000111ac bl 0x10c74 | sprintf (r0, r1, r2)
0x000111b0 add r2, sp, 0x2080 | r2 += arg_2080h;
0x000111b4 add r2, r2, 0x30 | r2 += 0x30;
0x000111b8 add r1, sp, 0xb0 | r1 += s;
0x000111bc ldr r0, [r4] | r0 = "_s__s";
0x000111c0 bl 0x12138 | r0 = fcn_00012138 ("_s__s", r1, r2, r3);
0x000111c4 cmp r0, 0 |
| if (r0 == 0) {
0x000111c8 bne 0x111dc |
0x000111cc ldr r2, [r4] | r2 = *(r4);
0x000111d0 add r1, sp, 0xb0 | r1 += s;
0x000111d4 ldr r0, [pc, 0x18c] | r0 = *(0x11364);
0x000111d8 bl 0x10cd4 | warn (r0);
| }
0x000111dc add r2, sp, 0x3080 | r2 += filename;
0x000111e0 add r1, sp, 0x1080 | r1 += arg_1080h;
0x000111e4 add r2, r2, 0x30 | r2 += 0x30;
0x000111e8 add r1, r1, 0x30 | r1 += 0x30;
0x000111ec ldr r0, [r4] | r0 = *(r4);
0x000111f0 bl 0x12138 | r0 = fcn_00012138 (r0, r1, r2, r3);
0x000111f4 cmp r0, 0 |
| if (r0 == 0) {
0x000111f8 bne 0x11210 |
0x000111fc add r1, sp, 0x1080 | r1 += arg_1080h;
0x00011200 ldr r2, [r4] | r2 = *(r4);
0x00011204 add r1, r1, 0x30 | r1 += 0x30;
0x00011208 ldr r0, [pc, 0x158] | r0 = *(0x11364);
0x0001120c bl 0x10cd4 | warn (r0);
| }
0x00011210 add r0, sp, 0x3080 | r0 += filename;
0x00011214 add r1, sp, 0x58 | r1 += buf;
0x00011218 add r0, r0, 0x30 | r0 += 0x30;
0x0001121c bl 0x10c80 | r0 = stat ();
0x00011220 cmp r0, 0 |
| if (r0 != 0) {
0x00011224 bne 0x1124c | goto label_0;
| }
0x00011228 add r0, sp, 0x2080 | r0 += arg_2080h;
0x0001122c mov r1, sp | r1 = sp;
0x00011230 add r0, r0, 0x30 | r0 += 0x30;
0x00011234 bl 0x10c80 | r0 = stat ();
0x00011238 cmp r0, 0 |
| if (r0 == 0) {
0x0001123c beq 0x11260 | goto label_3;
| }
0x00011240 add r1, sp, 0xb0 | r1 += s;
0x00011244 ldr r0, [pc, 0x120] | r0 = "cant_resolve__s_in_chroot__s";
0x00011248 bl 0x10cd4 | warn ("cant_resolve__s_in_chroot__s");
| do {
| label_0:
0x0001124c ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x00011250 cmp r3, 0 |
| if (r3 == 0) {
0x00011254 beq 0x112c8 | goto label_4;
| }
| label_2:
0x00011258 mov r0, 1 | r0 = 1;
0x0001125c b 0x11284 | goto label_5;
| label_3:
0x00011260 ldrd r6, r7, [sp] | __asm ("ldrd r6, r7, [sp]");
0x00011264 ldrd r2, r3, [sp, 0x58] | __asm ("ldrd r2, r3, [buf]");
0x00011268 cmp r7, r3 |
0x0001126c cmpeq r6, r2 | __asm ("cmpeq r6, r2");
0x00011270 bne 0x1124c |
| } while (r7 != r3);
0x00011274 ldr r2, [sp, 0xc] | r2 = var_ch;
0x00011278 ldr r3, [sp, 0x64] | r3 = var_64h;
0x0001127c cmp r2, r3 |
| if (r2 != r3) {
0x00011280 bne 0x1124c | goto label_0;
| }
| do {
| label_5:
0x00011284 ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x00011288 cmp r3, 0 |
| if (r3 > 0) {
0x0001128c ble 0x112bc |
0x00011290 cmn r0, 1 |
| if (r0 != 1) {
0x00011294 ldreq r3, [pc, 0xd4] | r3 = "_SKIPPED_";
| }
| if (r0 != 1) {
0x00011298 beq 0x112ac |
0x0001129c ldr r2, [pc, 0xd0] | r2 = "_SKIPPED_";
0x000112a0 cmp r0, 1 |
0x000112a4 ldr r3, [pc, 0xcc] | r3 = *(0x11374);
| if (r0 != 1) {
0x000112a8 movne r3, r2 | r3 = r2;
| goto label_6;
| }
| }
| label_6:
0x000112ac mov r2, r5 | r2 = r5;
0x000112b0 mov r1, r8 | r1 = r8;
0x000112b4 ldr r0, [pc, 0xc0] | r0 = " (changed)";
0x000112b8 bl 0x10af4 | printf (r0, r1, "_SKIPPED_", r3)
| }
0x000112bc add sp, sp, 0x4000 |
0x000112c0 add sp, sp, 0xb0 |
0x000112c4 pop {r4, r5, r6, r7, r8, pc} |
| label_4:
0x000112c8 add r0, sp, 0x3080 | r0 += filename;
0x000112cc add r1, sp, 0x58 | r1 += buf;
0x000112d0 add r0, r0, 0x30 | r0 += 0x30;
0x000112d4 bl 0x10bcc | r0 = lstat (r0, r1);
0x000112d8 cmp r0, 0 |
| if (r0 != 0) {
0x000112dc bne 0x11330 | goto label_7;
| }
0x000112e0 ldr r3, [sp, 0x68] | r3 = var_68h;
0x000112e4 and r3, r3, 0xf000 | r3 &= 0xf000;
0x000112e8 cmp r3, 0xa000 |
| if (r3 == 0xa000) {
0x000112ec beq 0x11308 | goto label_8;
| }
0x000112f0 add r1, sp, 0x1080 | r1 += arg_1080h;
0x000112f4 add r1, r1, 0x30 | r1 += 0x30;
0x000112f8 ldr r0, [pc, 0x80] | r0 = "_s____s_s";
0x000112fc bl 0x10ae8 | warnx ("_s____s_s");
| label_1:
0x00011300 mvn r0, 0 | r0 = ~0;
0x00011304 b 0x11284 |
| } while (1);
| label_8:
0x00011308 add r0, sp, 0x3080 | r0 += filename;
0x0001130c add r0, r0, 0x30 | r0 += 0x30;
0x00011310 bl 0x10b48 | r0 = remove (r0);
0x00011314 cmp r0, 0 |
| if (r0 != 0) {
0x00011318 beq 0x11330 |
0x0001131c add r1, sp, 0x1080 | r1 += arg_1080h;
0x00011320 add r1, r1, 0x30 | r1 += 0x30;
0x00011324 ldr r0, [pc, 0x58] | r0 = "_s_is_not_a_symlink";
0x00011328 bl 0x10cd4 | warn ("_s_is_not_a_symlink");
0x0001132c b 0x11300 | goto label_1;
| }
| label_7:
0x00011330 add r1, sp, 0x3080 | r1 += filename;
0x00011334 add r1, r1, 0x30 | r1 += 0x30;
0x00011338 mov r0, r5 | r0 = r5;
0x0001133c bl 0x10c20 | r0 = symlink (r0, r1);
0x00011340 cmp r0, 0 |
| if (r0 == 0) {
0x00011344 beq 0x11258 | goto label_2;
| }
0x00011348 add r1, sp, 0x1080 | r1 += arg_1080h;
0x0001134c mov r2, r5 | r2 = r5;
0x00011350 add r1, r1, 0x30 | r1 += 0x30;
0x00011354 ldr r0, [pc, 0x2c] | r0 = "cant_unlink__s";
0x00011358 bl 0x10cd4 | warn ("cant_unlink__s");
0x0001135c b 0x11300 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/sbin/ldconfig @ 0x11e00 */
| #include <stdint.h>
|
; (fcn) fcn.00011e00 () | void fcn_00011e00 (int32_t arg_0h, const char * src) {
| int32_t var_4h;
| char * * endptr;
| int32_t var_ch;
| int32_t var_10h;
| int32_t var_ch_2;
| int32_t var_8h_2;
| char * str;
| int32_t var_20h;
| int32_t var_bh;
| int32_t var_1000h;
| int32_t var_24h;
| r0 = src;
0x00011e00 push {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00011e04 sub sp, sp, 0x1000 |
0x00011e08 sub sp, sp, 0x24 |
0x00011e0c bl 0x10c14 | r0 = strdup (r0);
0x00011e10 subs r7, r0, 0 | r7 = r0 - 0;
| if (r7 != r0) {
0x00011e14 bne 0x11edc | goto label_9;
| }
0x00011e18 ldr r1, [pc, 0x2e8] | r1 = *(0x12104);
0x00011e1c mov r0, 1 | r0 = 1;
0x00011e20 bl 0x10c44 | err ();
| do {
0x00011e24 bl 0x10cb0 | strlen (r0);
0x00011e28 add r1, r4, 1 | r1 = r4 + 1;
0x00011e2c mov r5, r0 | r5 = r0;
0x00011e30 sub r2, r0, 1 | r2 = r0 - 1;
0x00011e34 add r5, r4, r5 | r5 = r4 + r5;
0x00011e38 mov r0, r4 | r0 = r4;
0x00011e3c bl 0x10b0c | memmove (r0, r1, r2);
0x00011e40 strb r8, [r5, -1] | *((r5 - 1)) = r8;
| label_0:
0x00011e44 mov r0, r4 | r0 = r4;
0x00011e48 mov r1, r6 | r1 = r6;
0x00011e4c bl 0x10bd8 | r0 = strstr (r0, r1);
0x00011e50 subs r4, r0, 0 | r4 = r0 - 0;
0x00011e54 bne 0x11e24 |
| } while (r4 != r0);
0x00011e58 ldr r5, [pc, 0x2ac] | r5 = "Out of memory!\n";
0x00011e5c ldr r3, [r5, 8] | r3 = "_s:";
0x00011e60 cmp r3, 0 |
| if (r3 > 0) {
0x00011e64 ble 0x11e74 |
0x00011e68 mov r1, r7 | r1 = r7;
0x00011e6c ldr r0, [pc, 0x29c] | r0 = *(0x1210c);
0x00011e70 bl 0x10af4 | printf (r0, r1)
| }
0x00011e74 add r4, sp, 0x20 | r4 += var_20h;
0x00011e78 mov r2, r4 | r2 = r4;
0x00011e7c mov r1, r7 | r1 = r7;
0x00011e80 ldr r0, [r5] | r0 = *(r5);
0x00011e84 bl 0x12138 | r0 = fcn_00012138 (r0, r1, r2, r3);
0x00011e88 cmp r0, 0 |
| if (r0 == 0) {
0x00011e8c bne 0x11ea0 |
0x00011e90 ldr r2, [r5] | r2 = *(r5);
0x00011e94 mov r1, r7 | r1 = r7;
0x00011e98 ldr r0, [pc, 0x274] | r0 = "_s:";
0x00011e9c bl 0x10cd4 | warn ("_s:");
| }
0x00011ea0 mov r0, r4 | r0 = r4;
0x00011ea4 bl 0x10c5c | opendir ();
0x00011ea8 subs sl, r0, 0 | sl -= var_20h;
| if (sl == var_20h) {
0x00011eac subne r3, r4, 0xc | r3 -= var_ch_2;
| }
| if (sl == var_20h) {
0x00011eb0 movne r5, 0 | r5 = 0;
| }
| if (sl == var_20h) {
0x00011eb4 strne r3, [sp, 0xc] | var_ch = r3;
| }
| if (sl != var_20h) {
0x00011eb8 bne 0x11f84 | goto label_10;
| }
0x00011ebc mov r1, r7 | r1 = r7;
0x00011ec0 ldr r0, [pc, 0x250] | r0 = "cant_resolve__s_in_chroot__s";
0x00011ec4 bl 0x10cd4 | warn ("cant_resolve__s_in_chroot__s");
| label_1:
0x00011ec8 mov r0, r7 | r0 = r7;
0x00011ecc bl 0x10cec | free (r0);
0x00011ed0 add sp, sp, 0x1000 |
0x00011ed4 add sp, sp, 0x24 |
0x00011ed8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_9:
0x00011edc mov r4, r7 | r4 = r7;
0x00011ee0 ldr r6, [pc, 0x234] | r6 = "skipping__s";
0x00011ee4 mov r8, 0 | r8 = 0;
0x00011ee8 b 0x11e44 | goto label_0;
| do {
0x00011eec add r8, r0, 0xb | r8 += var_bh;
0x00011ef0 ldr r3, [sp, 0xc] | r3 = var_ch;
0x00011ef4 mov r2, r6 | r2 = r6;
0x00011ef8 mov r1, r8 | r1 = r8;
0x00011efc mov r0, r7 | r0 = r7;
0x00011f00 bl 0x113a0 | r0 = fcn_000113a0 (r0, r1, r2, r3, r4, r5, r6);
0x00011f04 subs sb, r0, 0 | sb = r0 - 0;
| if (sb != r0) {
0x00011f08 beq 0x11f88 |
0x00011f0c mov r6, r5 | r6 = r5;
| label_7:
0x00011f10 cmp r6, 0 |
| if (r6 == 0) {
0x00011f14 bne 0x11f2c |
0x00011f18 mov r0, 0x14 | r0 = 0x14;
0x00011f1c bl 0x10b3c | r0 = malloc (r0);
0x00011f20 subs r6, r0, 0 | r6 = r0 - 0;
| if (r6 != r0) {
0x00011f24 bne 0x120b0 | goto label_11;
| }
0x00011f28 bl 0x10cf8 | fcn_00010cf8 ();
| }
0x00011f2c ldr r1, [r6] | r1 = *(r6);
0x00011f30 mov r0, sb | r0 = sb;
0x00011f34 bl 0x10c68 | r0 = strcmp (r0, r1);
0x00011f38 cmp r0, 0 |
| if (r0 != 0) {
0x00011f3c bne 0x120a8 | goto label_12;
| }
0x00011f40 ldr r2, [r4, -0xc] | r2 = var_ch_2;
0x00011f44 ldr r3, [r6, 0xc] | r3 = *((r6 + 0xc));
0x00011f48 cmp r2, 0 |
| if (r2 != 0) {
0x00011f4c bne 0x11fd8 | goto label_13;
| }
0x00011f50 cmp r3, 0 |
| if (r3 == 0) {
0x00011f54 beq 0x11fe0 | goto label_14;
| }
| label_4:
0x00011f58 ldr r0, [r6, 4] | r0 = *((r6 + 4));
0x00011f5c bl 0x10cec | free (r0);
0x00011f60 mov r0, r8 | r0 = r8;
0x00011f64 bl 0x1138c | fcn_0001138c (r0);
0x00011f68 ldr r3, [r4, -0x10] | r3 = var_10h;
0x00011f6c str r3, [r6, 8] | *((r6 + 8)) = r3;
0x00011f70 ldr r3, [r4, -0xc] | r3 = var_ch_2;
0x00011f74 str r3, [r6, 0xc] | *((r6 + 0xc)) = r3;
0x00011f78 str r0, [r6, 4] | *((r6 + 4)) = r0;
| label_3:
0x00011f7c mov r0, sb | r0 = sb;
0x00011f80 bl 0x10cec | free (r0);
| label_10:
0x00011f84 sub r6, r4, 0x10 | r6 -= var_10h;
| }
0x00011f88 mov r0, sl | r0 = sl;
0x00011f8c bl 0x10b60 | r0 = readdir ();
0x00011f90 cmp r0, 0 |
0x00011f94 bne 0x11eec |
| } while (r0 != 0);
0x00011f98 mov r0, sl | r0 = sl;
0x00011f9c bl 0x10cc8 | closedir ();
0x00011fa0 mov r4, r5 | r4 = r5;
| label_8:
0x00011fa4 cmp r4, 0 |
| if (r4 != 0) {
0x00011fa8 bne 0x120e4 | goto label_15;
| }
| label_2:
0x00011fac cmp r5, 0 |
| if (r5 == 0) {
0x00011fb0 beq 0x11ec8 | goto label_1;
| }
0x00011fb4 ldr r0, [r5] | r0 = *(r5);
0x00011fb8 ldr r4, [r5, 0x10] | r4 = *((r5 + 0x10));
0x00011fbc bl 0x10cec | free (r0);
0x00011fc0 ldr r0, [r5, 4] | r0 = *((r5 + 4));
0x00011fc4 bl 0x10cec | free (r0);
0x00011fc8 mov r0, r5 | r0 = r5;
0x00011fcc bl 0x10cec | free (r0);
0x00011fd0 mov r5, r4 | r5 = r4;
0x00011fd4 b 0x11fac | goto label_2;
| label_13:
0x00011fd8 cmp r2, r3 |
| if (r2 != r3) {
0x00011fdc bne 0x11f7c | goto label_3;
| }
| label_14:
0x00011fe0 ldr r3, [r6, 4] | r3 = *((r6 + 4));
0x00011fe4 ldr fp, [pc, 0x134] | fp = obj.__ctype_b;
0x00011fe8 str r3, [r4, -4] | str = r3;
0x00011fec sub r3, r4, 8 | r3 -= var_8h_2;
0x00011ff0 str r8, [r4, -8] | var_8h_2 = r8;
0x00011ff4 str r3, [sp, 8] | endptr = r3;
| label_5:
0x00011ff8 ldr r0, [r4, -8] | r0 = var_8h_2;
0x00011ffc ldrb r3, [r0] | r3 = *(r0);
0x00012000 cmp r3, 0 |
| if (r3 == 0) {
0x00012004 beq 0x11f7c | goto label_3;
| }
0x00012008 ldr r2, [r4, -4] | r2 = str;
0x0001200c ldr lr, [fp] |
0x00012010 ldrb ip, [r2] | ip = *(r2);
0x00012014 str r2, [sp, 4] | var_4h = r2;
0x00012018 ldr r2, [fp] | r2 = *(fp);
0x0001201c lsl r1, ip, 1 | r1 = ip << 1;
0x00012020 ldrh r1, [lr, r1] | r1 = *((lr + r1));
0x00012024 lsl lr, r3, 1 | lr = r3 << 1;
0x00012028 ldrh lr, [r2, lr] |
0x0001202c and r1, r1, 8 | r1 &= 8;
0x00012030 tst lr, 8 |
| if ((lr & 8) == 0) {
0x00012034 beq 0x1207c | goto label_16;
| }
0x00012038 cmp r1, 0 |
| if (r1 == 0) {
0x0001203c beq 0x11f58 | goto label_4;
| }
0x00012040 mov r2, 0xa | r2 = 0xa;
0x00012044 ldr r1, [sp, 8] | r1 = endptr;
0x00012048 bl 0x10b54 | strtoul (r0, r1, r2);
0x0001204c mov r2, 0xa | r2 = 0xa;
0x00012050 sub r1, r4, 4 | r1 -= str;
0x00012054 str r0, [sp, 4] | var_4h = r0;
0x00012058 ldr r0, [r4, -4] | r0 = str;
0x0001205c bl 0x10b54 | strtoul (r0, r1, r2);
0x00012060 ldr r3, [sp, 4] | r3 = var_4h;
0x00012064 cmp r3, r0 |
| if (r3 == r0) {
0x00012068 beq 0x11ff8 | goto label_5;
| }
0x0001206c sub r3, r3, r0 | r3 -= r0;
| label_6:
0x00012070 cmp r3, 0 |
| if (r3 > 0) {
0x00012074 bgt 0x11f58 | goto label_4;
| }
0x00012078 b 0x11f7c | goto label_3;
| label_16:
0x0001207c cmp r1, 0 |
| if (r1 != 0) {
0x00012080 bne 0x11f7c | goto label_3;
| }
0x00012084 cmp r3, ip |
| if (r3 != ip) {
0x00012088 subne r3, r3, ip | r3 -= ip;
| goto label_17;
| }
| if (r3 != ip) {
| label_17:
0x0001208c bne 0x12070 | goto label_6;
| }
0x00012090 ldr r3, [sp, 4] | r3 = var_4h;
0x00012094 add r0, r0, 1 | r0++;
0x00012098 add r2, r3, 1 | r2 = r3 + 1;
0x0001209c str r0, [r4, -8] | var_8h_2 = r0;
0x000120a0 str r2, [r4, -4] | str = r2;
0x000120a4 b 0x11ff8 | goto label_5;
| label_12:
0x000120a8 ldr r6, [r6, 0x10] | r6 = *((r6 + 0x10));
0x000120ac b 0x11f10 | goto label_7;
| label_11:
0x000120b0 mov r0, sb | r0 = sb;
0x000120b4 bl 0x1138c | fcn_0001138c (r0);
0x000120b8 str r0, [r6] | *(r6) = r0;
0x000120bc mov r0, r8 | r0 = r8;
0x000120c0 bl 0x1138c | fcn_0001138c (r0);
0x000120c4 ldr r3, [r4, -0x10] | r3 = var_10h;
0x000120c8 str r5, [r6, 0x10] | *((r6 + 0x10)) = r5;
0x000120cc str r3, [r6, 8] | *((r6 + 8)) = r3;
0x000120d0 ldr r3, [r4, -0xc] | r3 = var_ch_2;
0x000120d4 mov r5, r6 | r5 = r6;
0x000120d8 str r3, [r6, 0xc] | *((r6 + 0xc)) = r3;
0x000120dc str r0, [r6, 4] | *((r6 + 4)) = r0;
0x000120e0 b 0x11f7c | goto label_3;
| label_15:
0x000120e4 ldr r3, [r4, 0xc] | r3 = *((r4 + 0xc));
0x000120e8 cmp r3, 0 |
| if (r3 == 0) {
0x000120ec bne 0x12100 |
0x000120f0 ldr r2, [r4] | r2 = *(r4);
0x000120f4 ldr r1, [r4, 4] | r1 = *((r4 + 4));
0x000120f8 mov r0, r7 | r0 = r7;
0x000120fc bl 0x11168 | fcn_00011168 (r0, r1, r2, r3, r4);
| }
0x00012100 ldr r4, [r4, 0x10] | r4 = *((r4 + 0x10));
0x00012104 b 0x11fa4 | goto label_8;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/sbin/ldconfig @ 0x12124 */
| #include <stdint.h>
|
; (fcn) fcn.00012124 () | void fcn_00012124 () {
0x00012124 ldr r0, [pc] | r0 = *(0x12124);
0x00012128 b 0x10af4 | return void (*0x10af4)() ();
| }
[*] Function printf used 5 times ldconfig