[*] Binary protection state of scheduled
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of scheduled
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/scheduled @ 0x4618 */
| #include <stdint.h>
|
; (fcn) fcn.00004618 () | void fcn_00004618 () {
0x00004618 lui gp, 2 |
0x0000461c addiu gp, gp, 0x39f8 |
0x00004620 addu gp, gp, t9 | gp += t9;
0x00004624 lw v0, -0x7d84(gp) | v0 = *((gp - 8033));
0x00004628 addiu sp, sp, -0x478 |
0x0000462c lw t9, -0x7eb0(gp) | t9 = sym.imp.g_dir_open;
0x00004630 sw s4, 0x460(sp) | *(var_460h) = s4;
0x00004634 sw v0, 0x30(sp) | *(var_30h) = v0;
0x00004638 lw s4, -0x7fdc(gp) | s4 = *((gp - 8183));
0x0000463c lw v0, (v0) | v0 = *(v0);
0x00004640 sw s5, 0x464(sp) | *(var_464h) = s5;
0x00004644 addiu s5, sp, 0x38 | s5 = sp + 0x38;
0x00004648 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000464c sw a0, 0x28(sp) | *(var_28h) = a0;
0x00004650 sw a1, 0x34(sp) | *(var_34h) = a1;
0x00004654 sw ra, 0x474(sp) | *(var_474h) = ra;
0x00004658 sw fp, 0x470(sp) | *(var_470h) = fp;
0x0000465c sw s7, 0x46c(sp) | *(var_46ch) = s7;
0x00004660 sw s6, 0x468(sp) | *(var_468h) = s6;
0x00004664 sw s3, 0x45c(sp) | *(var_45ch) = s3;
0x00004668 sw s2, 0x458(sp) | *(var_458h) = s2;
0x0000466c sw s1, 0x454(sp) | *(var_454h) = s1;
0x00004670 sw s0, 0x450(sp) | *(var_450h) = s0;
0x00004674 move a2, s5 | a2 = s5;
0x00004678 move a1, zero | a1 = 0;
0x0000467c addiu a0, s4, -0x1768 | a0 = s4 + -0x1768;
0x00004680 sw v0, 0x44c(sp) | *(var_44ch) = v0;
0x00004684 sw zero, 0x38(sp) | *(var_38h) = 0;
0x00004688 jalr t9 | t9 ();
0x0000468c nop |
0x00004690 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00004694 beqz v0, 0x4988 | goto label_4;
| }
0x00004698 move s2, v0 | s2 = v0;
0x0000469c lw v0, -0x7fc0(gp) | v0 = *((gp - 8176));
0x000046a0 lw s3, -0x7fdc(gp) | s3 = *((gp - 8183));
0x000046a4 addiu v0, v0, 0x4004 | v0 += fcn.00004004;
0x000046a8 sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x000046ac lw v0, -0x7fc0(gp) | v0 = *((gp - 8176));
0x000046b0 lw s6, -0x7fdc(gp) | s6 = *((gp - 8183));
0x000046b4 addiu v0, v0, 0x4398 | v0 += fcn.00004398;
0x000046b8 lw s7, -0x7fdc(gp) | s7 = *((gp - 8183));
0x000046bc addiu s3, s3, -0x1740 | s3 += -0x1740;
0x000046c0 sw v0, 0x2c(sp) | *(var_2ch_3) = v0;
| do {
| label_1:
0x000046c4 lw t9, -0x7c3c(gp) | t9 = sym.imp.g_dir_read_name;
0x000046c8 move a0, s2 | a0 = s2;
0x000046cc jalr t9 | t9 ();
0x000046d0 move s0, v0 | s0 = v0;
0x000046d4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000046d8 beqz v0, 0x4890 | goto label_5;
| }
| label_0:
0x000046dc lw t9, -0x7e70(gp) | t9 = sym.imp.g_sprintf
0x000046e0 addiu s1, sp, 0x4c | s1 = sp + 0x4c;
0x000046e4 move a3, s0 | a3 = s0;
0x000046e8 addiu a2, s4, -0x1768 | a2 = s4 + -0x1768;
0x000046ec addiu a1, s6, -0x1748 | a1 = s6 + -0x1748;
0x000046f0 move a0, s1 | a0 = s1;
0x000046f4 sw zero, 0x3c(sp) | *(var_3ch_3) = 0;
0x000046f8 sw zero, 0x40(sp) | *(var_40h) = 0;
0x000046fc sw zero, 0x44(sp) | *(var_44h) = 0;
0x00004700 jalr t9 | t9 ();
0x00004704 lw gp, 0x18(sp) | gp = *(var_18h);
0x00004708 move a1, s3 | a1 = s3;
0x0000470c lw t9, -0x7e5c(gp) | t9 = sym.imp.g_str_has_suffix;
0x00004710 move a0, s0 | a0 = s0;
0x00004714 jalr t9 | t9 ();
0x00004718 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000471c beqz v0, 0x48f8 | goto label_6;
| }
0x00004720 lw t9, -0x7eb4(gp) | t9 = sym.imp.g_file_test;
0x00004724 addiu a1, zero, 1 | a1 = 1;
0x00004728 move a0, s1 | a0 = s1;
0x0000472c jalr t9 | t9 ();
0x00004730 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00004734 beqz v0, 0x48f8 | goto label_6;
| }
0x00004738 lw t9, -0x7d54(gp) | t9 = sym.imp.strlen;
0x0000473c move a0, s0 | a0 = s0;
0x00004740 jalr t9 | t9 ();
0x00004744 lw gp, 0x18(sp) | gp = *(var_18h);
0x00004748 move a0, s0 | a0 = s0;
0x0000474c lw t9, -0x7cc8(gp) | t9 = sym.imp.g_strndup;
0x00004750 addiu a1, v0, -5 | a1 = v0 + -5;
0x00004754 jalr t9 | t9 ();
0x00004758 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000475c move a2, s5 | a2 = s5;
0x00004760 move a1, s1 | a1 = s1;
0x00004764 lw t9, -0x7ea4(gp) | t9 = sym.imp.schedule_deserialize;
0x00004768 move a0, v0 | a0 = v0;
0x0000476c move s0, v0 | s0 = v0;
0x00004770 jalr t9 | t9 ();
0x00004774 move fp, v0 | fp = v0;
0x00004778 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000477c beqz v0, 0x4918 | goto label_7;
| }
0x00004780 lw a0, 0x14(v0) | a0 = *((v0 + 5));
0x00004784 lw t9, 0x24(sp) | t9 = *(var_24h_2);
0x00004788 addiu v0, sp, 0x48 | v0 = sp + 0x48;
0x0000478c sw s5, 0x14(sp) | *(var_14h_2) = s5;
0x00004790 sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00004794 addiu a3, sp, 0x44 | a3 = sp + 0x44;
0x00004798 addiu a2, sp, 0x40 | a2 = sp + 0x40;
0x0000479c addiu a1, sp, 0x3c | a1 = sp + 0x3c;
0x000047a0 jalr t9 | t9 ();
0x000047a4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000047a8 beqz v0, 0x4940 | goto label_8;
| }
0x000047ac lw v0, 0x48(sp) | v0 = *(var_48h);
0x000047b0 lw t9, -0x7fa4(gp) | t9 = sym.scheduled_event_new;
0x000047b4 lw a3, 0x44(sp) | a3 = *(var_44h);
0x000047b8 lw a2, 0x40(sp) | a2 = *(var_40h);
0x000047bc lw a1, 0x3c(sp) | a1 = *(var_3ch_3);
0x000047c0 sw s5, 0x14(sp) | *(var_14h_2) = s5;
0x000047c4 sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x000047c8 move a0, fp | a0 = fp;
0x000047cc bal 0x72ec | sym_scheduled_event_new ();
0x000047d0 move s1, v0 | s1 = v0;
0x000047d4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000047d8 beqz v0, 0x496c | goto label_9;
| }
0x000047dc lw t9, -0x7c58(gp) | t9 = *((gp - 7958));
0x000047e0 move a0, fp | a0 = fp;
0x000047e4 jalr t9 | t9 ();
0x000047e8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000047ec lw t9, -0x7fac(gp) | t9 = sym.scheduled_entity_get_type;
0x000047f0 bal 0x6338 | sym_scheduled_entity_get_type ();
0x000047f4 nop |
0x000047f8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000047fc move a1, v0 | a1 = v0;
0x00004800 lw t9, -0x7dd0(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x00004804 move a0, s1 | a0 = s1;
0x00004808 jalr t9 | t9 ();
0x0000480c lw a0, 0x28(sp) | a0 = *(var_28h);
0x00004810 lw t9, 0x2c(sp) | t9 = *(var_2ch_3);
0x00004814 move a1, v0 | a1 = v0;
0x00004818 jalr t9 | t9 ();
0x0000481c lw gp, 0x18(sp) | gp = *(var_18h);
0x00004820 lw t9, -0x7bf0(gp) | t9 = *((gp - 7932));
0x00004824 move a0, s0 | a0 = s0;
0x00004828 jalr t9 | t9 ();
0x0000482c lw a0, 0x3c(sp) | a0 = *(var_3ch_3);
0x00004830 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 != 0) {
0x00004834 beqz a0, 0x4848 |
0x00004838 lw t9, -0x7de4(gp) | t9 = sym.imp.date_time_free;
0x0000483c jalr t9 | t9 ();
0x00004840 nop |
0x00004844 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00004848 lw a0, 0x40(sp) | a0 = *(var_40h);
0x0000484c lw t9, -0x7de4(gp) | t9 = sym.imp.date_time_free;
| if (a0 != 0) {
0x00004850 beqz a0, 0x4860 |
0x00004854 jalr t9 | t9 ();
0x00004858 nop |
0x0000485c lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00004860 lw a0, 0x44(sp) | a0 = *(var_44h);
0x00004864 lw t9, -0x7c58(gp) | t9 = *((gp - 7958));
0x00004868 beqz a0, 0x46c4 |
| } while (a0 == 0);
0x0000486c jalr t9 | t9 ();
0x00004870 nop |
0x00004874 lw gp, 0x18(sp) | gp = *(var_18h);
0x00004878 lw t9, -0x7c3c(gp) | t9 = sym.imp.g_dir_read_name;
0x0000487c move a0, s2 | a0 = s2;
0x00004880 jalr t9 | t9 ();
0x00004884 move s0, v0 | s0 = v0;
0x00004888 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000488c bnez v0, 0x46dc | goto label_0;
| }
| label_5:
0x00004890 addiu s1, zero, 1 | s1 = 1;
| do {
| label_2:
0x00004894 lw t9, -0x7c20(gp) | t9 = sym.imp.g_dir_close;
0x00004898 move a0, s2 | a0 = s2;
0x0000489c jalr t9 | t9 ();
0x000048a0 lw gp, 0x18(sp) | gp = *(var_18h);
| label_3:
0x000048a4 lw t9, -0x7bf0(gp) | t9 = *((gp - 7932));
0x000048a8 move a0, s0 | a0 = s0;
0x000048ac jalr t9 | t9 ();
0x000048b0 lw v0, 0x30(sp) | v0 = *(var_30h);
0x000048b4 lw a0, 0x44c(sp) | a0 = *(var_44ch);
0x000048b8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000048bc lw v1, (v0) | v1 = *(v0);
0x000048c0 move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x000048c4 bne a0, v1, 0x49a8 | goto label_10;
| }
0x000048c8 lw ra, 0x474(sp) | ra = *(var_474h);
0x000048cc lw fp, 0x470(sp) | fp = *(var_470h);
0x000048d0 lw s7, 0x46c(sp) | s7 = *(var_46ch);
0x000048d4 lw s6, 0x468(sp) | s6 = *(var_468h);
0x000048d8 lw s5, 0x464(sp) | s5 = *(var_464h);
0x000048dc lw s4, 0x460(sp) | s4 = *(var_460h);
0x000048e0 lw s3, 0x45c(sp) | s3 = *(var_45ch);
0x000048e4 lw s2, 0x458(sp) | s2 = *(var_458h);
0x000048e8 lw s1, 0x454(sp) | s1 = *(var_454h);
0x000048ec lw s0, 0x450(sp) | s0 = *(var_450h);
0x000048f0 addiu sp, sp, 0x478 |
0x000048f4 jr ra | return v0;
| label_6:
0x000048f8 lw t9, -0x7ea0(gp) | t9 = sym.imp.g_log;
0x000048fc move a3, s0 | a3 = s0;
0x00004900 addiu a2, s7, -0x1738 | a2 = s7 + -0x1738;
0x00004904 addiu a1, zero, 0x10 | a1 = 0x10;
0x00004908 move a0, zero | a0 = 0;
0x0000490c jalr t9 | t9 ();
0x00004910 lw gp, 0x18(sp) | gp = *(var_18h);
0x00004914 b 0x46c4 | goto label_1;
| label_7:
0x00004918 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x0000491c lw t9, -0x7cf8(gp) | t9 = sym.imp.g_propagate_prefixed_error;
0x00004920 lw a1, 0x38(sp) | a1 = *(var_38h);
0x00004924 lw a0, 0x34(sp) | a0 = *(var_34h);
0x00004928 move a3, s1 | a3 = s1;
0x0000492c addiu a2, a2, -0x170c | a2 += -0x170c;
0x00004930 jalr t9 | t9 ();
0x00004934 move s1, zero | s1 = 0;
0x00004938 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000493c b 0x4894 |
| } while (1);
| label_8:
0x00004940 lw t9, -0x7d50(gp) | t9 = sym.imp.g_propagate_error;
0x00004944 lw a1, 0x38(sp) | a1 = *(var_38h);
0x00004948 lw a0, 0x34(sp) | a0 = *(var_34h);
0x0000494c move s1, zero | s1 = 0;
0x00004950 jalr t9 | t9 ();
0x00004954 lw gp, 0x18(sp) | gp = *(var_18h);
0x00004958 lw t9, -0x7c58(gp) | t9 = *((gp - 7958));
0x0000495c move a0, fp | a0 = fp;
0x00004960 jalr t9 | t9 ();
0x00004964 lw gp, 0x18(sp) | gp = *(var_18h);
0x00004968 b 0x4894 | goto label_2;
| label_9:
0x0000496c lw t9, -0x7d50(gp) | t9 = sym.imp.g_propagate_error;
0x00004970 lw a1, 0x38(sp) | a1 = *(var_38h);
0x00004974 lw a0, 0x34(sp) | a0 = *(var_34h);
0x00004978 move s1, zero | s1 = 0;
0x0000497c jalr t9 | t9 ();
0x00004980 lw gp, 0x18(sp) | gp = *(var_18h);
0x00004984 b 0x4894 | goto label_2;
| label_4:
0x00004988 lw t9, -0x7d50(gp) | t9 = sym.imp.g_propagate_error;
0x0000498c lw a1, 0x38(sp) | a1 = *(var_38h);
0x00004990 lw a0, 0x34(sp) | a0 = *(var_34h);
0x00004994 move s1, zero | s1 = 0;
0x00004998 jalr t9 | t9 ();
0x0000499c move s0, zero | s0 = 0;
0x000049a0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000049a4 b 0x48a4 | goto label_3;
| label_10:
0x000049a8 lw t9, -0x7dd4(gp) | t9 = sym.imp.__stack_chk_fail;
0x000049ac jalr t9 | t9 ();
0x000049b0 nop |
| }
[*] Function printf used 2 times scheduled