[*] Binary protection state of time-service
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function system tear down of time-service
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/time-service @ 0x48a4 */
| #include <stdint.h>
|
; (fcn) sym.time_service_dbus_init () | void time_service_dbus_init () {
0x000048a4 lui gp, 2 |
0x000048a8 addiu gp, gp, -0x4894 |
0x000048ac addu gp, gp, t9 | gp += t9;
0x000048b0 addiu sp, sp, -0x38 |
0x000048b4 lw t9, -0x7ebc(gp) | t9 = sym.imp.sd_bus_open_system
0x000048b8 sw s1, 0x24(sp) | *(var_24h) = s1;
0x000048bc lw s1, -0x7fd0(gp) | s1 = *((gp - 8180));
0x000048c0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000048c4 sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x000048c8 sw ra, 0x34(sp) | *(var_34h) = ra;
0x000048cc sw s4, 0x30(sp) | *(var_30h) = s4;
0x000048d0 sw s2, 0x28(sp) | *(var_28h) = s2;
0x000048d4 sw s0, 0x20(sp) | *(var_20h) = s0;
0x000048d8 move s3, a0 | s3 = a0;
0x000048dc addiu a0, s1, -0x7d98 | a0 = s1 + -0x7d98;
0x000048e0 jalr t9 | t9 ();
0x000048e4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x000048e8 bltz v0, 0x4a8c | goto label_1;
| }
0x000048ec lw v0, -0x7f98(gp) | v0 = *((gp - 8166));
0x000048f0 lw s2, -0x7fd8(gp) | s2 = *((gp - 8182));
0x000048f4 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x000048f8 lw t9, -0x7f50(gp) | t9 = sym.imp.sd_bus_add_object_vtable;
0x000048fc addiu v0, v0, 0x7ea0 | v0 += 0x7ea0;
0x00004900 lw a0, -0x7d98(s1) | a0 = *((s1 - 8038));
0x00004904 sw zero, 0x14(sp) | *(var_14h) = 0;
0x00004908 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000490c addiu a3, s2, 0x6fe4 | a3 = s2 + str.com.axis.TimeService1;
0x00004910 addiu a2, a2, 0x6ffc | a2 += str._com_axis_TimeService1;
0x00004914 move a1, zero | a1 = 0;
0x00004918 jalr t9 | t9 ();
0x0000491c move s0, v0 | s0 = v0;
0x00004920 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00004924 bltz v0, 0x4b34 | goto label_2;
| }
0x00004928 lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x0000492c lw t9, -0x7f6c(gp) | t9 = sym.imp.g_file_test;
0x00004930 addiu a1, zero, 0x10 | a1 = 0x10;
0x00004934 addiu a0, a0, 0x7474 | a0 += str._usr_lib_legacyconfig;
0x00004938 jalr t9 | t9 ();
0x0000493c lw gp, 0x18(sp) | gp = *(var_18h);
0x00004940 bnez v0, 0x49b0 |
| while (v0 >= 0) {
0x00004944 lw t9, -0x7f28(gp) | t9 = sym.imp.sd_bus_request_name;
0x00004948 lw a0, -0x7d98(s1) | a0 = *((s1 - 8038));
0x0000494c move a2, zero | a2 = 0;
0x00004950 move a3, zero | a3 = 0;
0x00004954 addiu a1, s2, 0x6fe4 | a1 = s2 + str.com.axis.TimeService1;
0x00004958 jalr t9 | t9 ();
0x0000495c move s0, v0 | s0 = v0;
0x00004960 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00004964 bltz v0, 0x4b70 | goto label_3;
| }
0x00004968 lw t9, -0x7f18(gp) | t9 = sym.imp.sd_bus_attach_event;
0x0000496c lw a0, -0x7d98(s1) | a0 = *((s1 - 8038));
0x00004970 move a2, zero | a2 = 0;
0x00004974 move a1, s3 | a1 = s3;
0x00004978 jalr t9 | t9 ();
0x0000497c move s0, v0 | s0 = v0;
0x00004980 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00004984 bltz v0, 0x4a50 | goto label_4;
| }
0x00004988 lw ra, 0x34(sp) | ra = *(var_34h);
0x0000498c move s0, zero | s0 = 0;
0x00004990 move v0, s0 | v0 = s0;
0x00004994 lw s4, 0x30(sp) | s4 = *(var_30h);
0x00004998 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x0000499c lw s2, 0x28(sp) | s2 = *(var_28h);
0x000049a0 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000049a4 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000049a8 addiu sp, sp, 0x38 |
0x000049ac jr ra | return v0;
0x000049b0 lw s4, -0x7fd0(gp) | s4 = *((gp - 8180));
0x000049b4 lw t9, -0x7ebc(gp) | t9 = sym.imp.sd_bus_open_system
0x000049b8 addiu a0, s4, -0x7d9c | a0 = s4 + -0x7d9c;
0x000049bc jalr t9 | t9 ();
0x000049c0 move s0, v0 | s0 = v0;
0x000049c4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x000049c8 bltz v0, 0x4af8 | goto label_5;
| }
0x000049cc lw v0, -0x7f98(gp) | v0 = *((gp - 8166));
0x000049d0 lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x000049d4 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x000049d8 lw t9, -0x7f50(gp) | t9 = sym.imp.sd_bus_add_object_vtable;
| /* section..data.rel.ro */
0x000049dc addiu v0, v0, 0x7e20 | v0 += 0x7e20;
0x000049e0 lw a0, -0x7d9c(s4) | a0 = *((s4 - 8039));
0x000049e4 sw zero, 0x14(sp) | *(var_14h) = 0;
0x000049e8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000049ec addiu a3, a3, 0x7360 | a3 += str.com.axis.Configuration.Legacy;
0x000049f0 addiu a2, a2, 0x7380 | a2 += str._com_axis_TimeService_Legacy;
0x000049f4 move a1, zero | a1 = 0;
0x000049f8 jalr t9 | t9 ();
0x000049fc move s0, v0 | s0 = v0;
0x00004a00 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00004a04 bltz v0, 0x4bac | goto label_6;
| }
0x00004a08 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00004a0c lw t9, -0x7f28(gp) | t9 = sym.imp.sd_bus_request_name;
0x00004a10 lw a0, -0x7d9c(s4) | a0 = *((s4 - 8039));
0x00004a14 move a2, zero | a2 = 0;
0x00004a18 move a3, zero | a3 = 0;
0x00004a1c addiu a1, a1, 0x74ec | a1 += str.com.axis.TimeService.Legacy;
0x00004a20 jalr t9 | t9 ();
0x00004a24 move s0, v0 | s0 = v0;
0x00004a28 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00004a2c bltz v0, 0x4b70 | goto label_3;
| }
0x00004a30 lw t9, -0x7f18(gp) | t9 = sym.imp.sd_bus_attach_event;
0x00004a34 lw a0, -0x7d9c(s4) | a0 = *((s4 - 8039));
0x00004a38 move a2, zero | a2 = 0;
0x00004a3c move a1, s3 | a1 = s3;
0x00004a40 jalr t9 | t9 ();
0x00004a44 move s0, v0 | s0 = v0;
0x00004a48 lw gp, 0x18(sp) | gp = *(var_18h);
0x00004a4c bgez v0, 0x4944 |
| }
| label_4:
0x00004a50 lw t9, -0x7e10(gp) | t9 = sym.imp.strerror;
0x00004a54 negu a0, s0 | __asm ("negu a0, s0");
0x00004a58 jalr t9 | t9 ();
0x00004a5c lw gp, 0x18(sp) | gp = *(var_18h);
0x00004a60 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00004a64 addiu a1, zero, 0x100 | a1 = aav.0x00000100;
0x00004a68 lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x00004a6c lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00004a70 lw t9, -0x7f68(gp) | t9 = sym.imp.g_log;
0x00004a74 addiu a3, a3, 0x6d20 | a3 += 0x6d20;
0x00004a78 addiu a2, a2, 0x7530 | a2 += str._sFailed_to_attach_bus_to_event_loop:__s;
0x00004a7c move a0, zero | a0 = 0;
0x00004a80 jalr t9 | t9 ();
0x00004a84 lw gp, 0x18(sp) | gp = *(var_18h);
0x00004a88 b 0x4ac8 | goto label_0;
| label_1:
0x00004a8c lw t9, -0x7e10(gp) | t9 = sym.imp.strerror;
0x00004a90 negu a0, v0 | __asm ("negu a0, v0");
0x00004a94 move s0, v0 | s0 = v0;
0x00004a98 jalr t9 | t9 ();
0x00004a9c lw gp, 0x18(sp) | gp = *(var_18h);
0x00004aa0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00004aa4 addiu a1, zero, 0x100 | a1 = aav.0x00000100;
0x00004aa8 lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x00004aac lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00004ab0 lw t9, -0x7f68(gp) | t9 = sym.imp.g_log;
0x00004ab4 addiu a3, a3, 0x6d20 | a3 += 0x6d20;
0x00004ab8 addiu a2, a2, 0x7424 | a2 += str._sFailed_to_connect_to_the_system_bus:__s
0x00004abc move a0, zero | a0 = 0;
0x00004ac0 jalr t9 | t9 ();
0x00004ac4 lw gp, 0x18(sp) | gp = *(var_18h);
| do {
| label_0:
0x00004ac8 lw t9, -0x7ee8(gp) | t9 = sym.imp.sd_bus_unref;
0x00004acc lw a0, -0x7d98(s1) | a0 = *((s1 - 8038));
0x00004ad0 jalr t9 | t9 ();
0x00004ad4 lw ra, 0x34(sp) | ra = *(var_34h);
0x00004ad8 move v0, s0 | v0 = s0;
0x00004adc lw s4, 0x30(sp) | s4 = *(var_30h);
0x00004ae0 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00004ae4 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00004ae8 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00004aec lw s0, 0x20(sp) | s0 = *(var_20h);
0x00004af0 addiu sp, sp, 0x38 |
0x00004af4 jr ra | return v0;
| label_5:
0x00004af8 lw t9, -0x7e10(gp) | t9 = sym.imp.strerror;
0x00004afc negu a0, v0 | __asm ("negu a0, v0");
0x00004b00 jalr t9 | t9 ();
0x00004b04 lw gp, 0x18(sp) | gp = *(var_18h);
0x00004b08 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00004b0c addiu a1, zero, 0x100 | a1 = aav.0x00000100;
0x00004b10 lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x00004b14 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00004b18 lw t9, -0x7f68(gp) | t9 = sym.imp.g_log;
0x00004b1c addiu a3, a3, 0x6d20 | a3 += 0x6d20;
0x00004b20 addiu a2, a2, 0x748c | a2 += str._sFailed_to_connect_to_the_system_legacy_bus:__s
0x00004b24 move a0, zero | a0 = 0;
0x00004b28 jalr t9 | t9 ();
0x00004b2c lw gp, 0x18(sp) | gp = *(var_18h);
0x00004b30 b 0x4ac8 |
| } while (1);
| label_2:
0x00004b34 lw t9, -0x7e10(gp) | t9 = sym.imp.strerror;
0x00004b38 negu a0, v0 | __asm ("negu a0, v0");
0x00004b3c jalr t9 | t9 ();
0x00004b40 lw gp, 0x18(sp) | gp = *(var_18h);
0x00004b44 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00004b48 addiu a1, zero, 0x100 | a1 = aav.0x00000100;
0x00004b4c lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x00004b50 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00004b54 lw t9, -0x7f68(gp) | t9 = sym.imp.g_log;
0x00004b58 addiu a3, a3, 0x6d20 | a3 += 0x6d20;
0x00004b5c addiu a2, a2, 0x7450 | a2 += str._sFailed_to_register_bus_object:__s;
0x00004b60 move a0, zero | a0 = 0;
0x00004b64 jalr t9 | t9 ();
0x00004b68 lw gp, 0x18(sp) | gp = *(var_18h);
0x00004b6c b 0x4ac8 | goto label_0;
| label_3:
0x00004b70 lw t9, -0x7e10(gp) | t9 = sym.imp.strerror;
0x00004b74 negu a0, s0 | __asm ("negu a0, s0");
0x00004b78 jalr t9 | t9 ();
0x00004b7c lw gp, 0x18(sp) | gp = *(var_18h);
0x00004b80 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00004b84 addiu a1, zero, 0x100 | a1 = aav.0x00000100;
0x00004b88 lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x00004b8c lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00004b90 lw t9, -0x7f68(gp) | t9 = sym.imp.g_log;
0x00004b94 addiu a3, a3, 0x6d20 | a3 += 0x6d20;
0x00004b98 addiu a2, a2, 0x7508 | a2 += str._sFailed_to_acquire_service_name:__s;
0x00004b9c move a0, zero | a0 = 0;
0x00004ba0 jalr t9 | t9 ();
0x00004ba4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00004ba8 b 0x4ac8 | goto label_0;
| label_6:
0x00004bac lw t9, -0x7e10(gp) | t9 = sym.imp.strerror;
0x00004bb0 negu a0, v0 | __asm ("negu a0, v0");
0x00004bb4 jalr t9 | t9 ();
0x00004bb8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00004bbc sw v0, 0x10(sp) | *(var_10h) = v0;
0x00004bc0 addiu a1, zero, 0x100 | a1 = aav.0x00000100;
0x00004bc4 lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x00004bc8 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00004bcc lw t9, -0x7f68(gp) | t9 = sym.imp.g_log;
0x00004bd0 addiu a3, a3, 0x6d20 | a3 += 0x6d20;
0x00004bd4 addiu a2, a2, 0x74c0 | a2 += str._sFailed_to_register_legacy_bus_object:__s;
0x00004bd8 move a0, zero | a0 = 0;
0x00004bdc jalr t9 | t9 ();
0x00004be0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00004be4 b 0x4ac8 | goto label_0;
| }
[*] Function system used 5 times time-service