[*] Binary protection state of systemd-update-done
Full RELRO Canary found NX disabled PIE enabled RPATH No RUNPATH No Symbols
[*] Function printf tear down of systemd-update-done
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd-update-done @ 0xce0 */
| #include <stdint.h>
|
; (fcn) fcn.00000ce0 () | void fcn_00000ce0 () {
0x00000ce0 lui gp, 2 |
0x00000ce4 addiu gp, gp, -0x6ce0 |
0x00000ce8 addu gp, gp, t9 | gp += t9;
0x00000cec addiu sp, sp, -0x40 |
0x00000cf0 lw t9, -0x7fb0(gp) | t9 = sym.imp.timespec_load_nsec;
0x00000cf4 sw s1, 0x34(sp) | *(var_34h) = s1;
0x00000cf8 lw s1, -0x7fa0(gp) | s1 = *((gp - 8168));
0x00000cfc sw gp, 0x20(sp) | *(var_20h) = gp;
0x00000d00 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00000d04 sw s2, 0x38(sp) | *(var_38h) = s2;
0x00000d08 sw s0, 0x30(sp) | *(var_30h) = s0;
0x00000d0c lw v0, (s1) | v0 = *(s1);
0x00000d10 move s2, a0 | s2 = a0;
0x00000d14 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00000d18 move a0, a1 | a0 = a1;
0x00000d1c sw zero, 0x28(sp) | *(var_28h) = 0;
0x00000d20 move s0, a1 | s0 = a1;
0x00000d24 jalr t9 | t9 ();
0x00000d28 lw gp, 0x20(sp) | gp = *(var_20h);
0x00000d2c sw v0, 0x10(sp) | *(var_10h) = v0;
0x00000d30 sw v1, 0x14(sp) | *(var_14h) = v1;
0x00000d34 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00000d38 lw t9, -0x7f98(gp) | t9 = sym.imp.__asprintf_chk
0x00000d3c addiu a2, a2, 0x1078 | a2 += str._This_file_was_created_by_systemd_update_done._Its_only__n_purpose_is_to_hold_a_timestamp_of_the_time_this_directory_n_was_updated._See_man:systemd_update_done.service_8_._nTIMESTAMP_NSEC_llu_n;
0x00000d40 addiu a1, zero, 1 | a1 = 1;
0x00000d44 addiu a0, sp, 0x28 | a0 = sp + 0x28;
0x00000d48 jalr t9 | t9 ();
0x00000d4c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00000d50 bltz v0, 0xdbc | goto label_2;
| }
0x00000d54 lw t9, -0x7f80(gp) | t9 = sym.imp.write_string_file_atomic_label_ts;
0x00000d58 lw a1, 0x28(sp) | a1 = *(var_28h);
0x00000d5c move a2, s0 | a2 = s0;
0x00000d60 move a0, s2 | a0 = s2;
0x00000d64 jalr t9 | t9 ();
0x00000d68 move s0, v0 | s0 = v0;
0x00000d6c addiu v0, zero, -0x1e | v0 = -0x1e;
0x00000d70 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s0 == v0) {
0x00000d74 beq s0, v0, 0xe0c | goto label_3;
| }
0x00000d78 lw t9, -0x7fb4(gp) | t9 = sym.imp.log_get_max_level_realm;
| if (s0 < 0) {
0x00000d7c bltz s0, 0xde8 | goto label_4;
| }
| label_1:
0x00000d80 move s0, zero | s0 = 0;
| do {
| label_0:
0x00000d84 lw t9, -0x7f90(gp) | t9 = sym.imp.free;
0x00000d88 lw a0, 0x28(sp) | a0 = *(var_28h);
0x00000d8c jalr t9 | t9 ();
0x00000d90 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00000d94 lw v1, (s1) | v1 = *(s1);
0x00000d98 lw gp, 0x20(sp) | gp = *(var_20h);
0x00000d9c move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00000da0 bne a0, v1, 0xeac | goto label_5;
| }
0x00000da4 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00000da8 lw s2, 0x38(sp) | s2 = *(var_38h);
0x00000dac lw s1, 0x34(sp) | s1 = *(var_34h);
0x00000db0 lw s0, 0x30(sp) | s0 = *(var_30h);
0x00000db4 addiu sp, sp, 0x40 |
0x00000db8 jr ra | return v0;
| label_2:
0x00000dbc lw a3, -0x7fdc(gp) | a3 = *((gp - 8183));
0x00000dc0 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00000dc4 lw t9, -0x7fac(gp) | t9 = sym.imp.log_oom_internal;
0x00000dc8 addiu a3, a3, 0x120c | a3 += str.apply_timestamp;
0x00000dcc addiu a2, zero, 0x1e | a2 = 0x1e;
0x00000dd0 addiu a1, a1, 0x1143 | a1 += 0x1143;
0x00000dd4 move a0, zero | a0 = 0;
0x00000dd8 jalr t9 | t9 ();
0x00000ddc move s0, v0 | s0 = v0;
0x00000de0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00000de4 b 0xd84 |
| } while (1);
| label_4:
0x00000de8 move a0, zero | a0 = 0;
0x00000dec jalr t9 | t9 ();
0x00000df0 slti v0, v0, 3 | v0 = (v0 < 3) ? 1 : 0;
0x00000df4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00000df8 beqz v0, 0xe68 | goto label_6;
| }
0x00000dfc negu s0, s0 | __asm ("negu s0, s0");
0x00000e00 andi s0, s0, 0xff | s0 &= 0xff;
0x00000e04 negu s0, s0 | __asm ("negu s0, s0");
0x00000e08 b 0xd84 | goto label_0;
| label_3:
0x00000e0c lw t9, -0x7fb4(gp) | t9 = sym.imp.log_get_max_level_realm;
0x00000e10 move a0, zero | a0 = 0;
0x00000e14 jalr t9 | t9 ();
0x00000e18 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x00000e1c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00000e20 bnez v0, 0xd80 | goto label_1;
| }
0x00000e24 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00000e28 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00000e2c addiu v0, v0, 0x1164 | v0 += str.Cannot_create___s___file_system_is_read_only.;
0x00000e30 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00000e34 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00000e38 lw t9, -0x7fa4(gp) | t9 = sym.imp.log_internal_realm;
0x00000e3c addiu v0, v0, 0x120c | v0 += str.apply_timestamp;
0x00000e40 sw s2, 0x18(sp) | *(var_18h) = s2;
0x00000e44 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00000e48 addiu a3, zero, 0x22 | a3 = 0x22;
0x00000e4c addiu a2, a2, 0x1143 | a2 += 0x1143;
0x00000e50 move a1, zero | a1 = 0;
0x00000e54 addiu a0, zero, 7 | a0 = 7;
0x00000e58 jalr t9 | t9 ();
0x00000e5c move s0, v0 | s0 = v0;
0x00000e60 lw gp, 0x20(sp) | gp = *(var_20h);
0x00000e64 b 0xd84 | goto label_0;
| label_6:
0x00000e68 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00000e6c lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00000e70 addiu v0, v0, 0x1194 | v0 += str.Failed_to_write___s_:__m;
0x00000e74 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00000e78 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00000e7c lw t9, -0x7fa4(gp) | t9 = sym.imp.log_internal_realm;
0x00000e80 addiu v0, v0, 0x120c | v0 += str.apply_timestamp;
0x00000e84 move a1, s0 | a1 = s0;
0x00000e88 sw s2, 0x18(sp) | *(var_18h) = s2;
0x00000e8c sw v0, 0x10(sp) | *(var_10h) = v0;
0x00000e90 addiu a3, zero, 0x24 | a3 = 0x24;
0x00000e94 addiu a2, a2, 0x1143 | a2 += 0x1143;
0x00000e98 addiu a0, zero, 3 | a0 = 3;
0x00000e9c jalr t9 | t9 ();
0x00000ea0 move s0, v0 | s0 = v0;
0x00000ea4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00000ea8 b 0xd84 | goto label_0;
| label_5:
0x00000eac lw t9, -0x7fa8(gp) | t9 = sym.imp.__stack_chk_fail;
0x00000eb0 jalr t9 | t9 ();
0x00000eb4 nop |
0x00000eb8 nop |
0x00000ebc nop |
| }
[*] Function printf used 2 times systemd-update-done