[*] Binary protection state of syslog-ng-ctl
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of syslog-ng-ctl
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/syslog-ng-ctl @ 0x2a64 */
| #include <stdint.h>
|
; (fcn) fcn.00002a64 () | void fcn_00002a64 () {
| label_0:
0x00002a64 lui gp, 2 |
0x00002a68 addiu gp, gp, -0x6714 |
0x00002a6c addu gp, gp, t9 | gp += t9;
0x00002a70 addiu sp, sp, -0x38 |
0x00002a74 lw t9, -0x7fc8(gp) | t9 = sym.get_mode;
0x00002a78 sw s2, 0x2c(sp) | *(var_2ch) = s2;
0x00002a7c move s2, a1 | s2 = a1;
0x00002a80 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00002a84 sw s3, 0x30(sp) | *(var_30h) = s3;
0x00002a88 sw s0, 0x24(sp) | *(var_24h) = s0;
0x00002a8c sw ra, 0x34(sp) | *(var_34h) = ra;
0x00002a90 sw s1, 0x28(sp) | *(var_28h) = s1;
0x00002a94 move s0, a0 | s0 = a0;
0x00002a98 addiu a1, sp, 0x40 | a1 = sp + 0x40;
0x00002a9c move a0, s2 | a0 = s2;
0x00002aa0 sw a2, 0x40(sp) | *(arg_40h) = a2;
0x00002aa4 move s3, a3 | s3 = a3;
0x00002aa8 bal 0x2980 | sym_get_mode ();
0x00002aac lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00002ab0 beqz v0, 0x2bb8 | goto label_1;
| }
0x00002ab4 lw a0, (s0) | a0 = *(s0);
0x00002ab8 move s1, v0 | s1 = v0;
| if (a0 != 0) {
0x00002abc bnez a0, 0x2ad8 | goto label_2;
| }
0x00002ac0 lw ra, 0x34(sp) | ra = *(var_34h);
0x00002ac4 b 0x2b14 | goto label_3;
| do {
0x00002ac8 addiu s0, s0, 0x14 | s0 += 0x14;
0x00002acc lw a0, (s0) | a0 = *(s0);
0x00002ad0 lw ra, 0x34(sp) | ra = *(var_34h);
| if (a0 == 0) {
0x00002ad4 beqz a0, 0x2b14 | goto label_3;
| }
| label_2:
0x00002ad8 lw t9, -0x7f00(gp) | t9 = sym.imp.strcmp;
0x00002adc move a1, s1 | a1 = s1;
0x00002ae0 jalr t9 | t9 ();
0x00002ae4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00002ae8 bnez v0, 0x2ac8 |
| } while (v0 != 0);
0x00002aec lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x00002af0 lw ra, 0x34(sp) | ra = *(var_34h);
| if (v0 != 0) {
0x00002af4 beqz v0, 0x2b30 |
0x00002af8 move v0, s0 | v0 = s0;
0x00002afc lw s3, 0x30(sp) | s3 = *(var_30h);
0x00002b00 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x00002b04 lw s1, 0x28(sp) | s1 = *(var_28h);
0x00002b08 lw s0, 0x24(sp) | s0 = *(var_24h);
0x00002b0c addiu sp, sp, 0x38 |
0x00002b10 jr ra | return v0;
| label_3:
0x00002b14 lw s3, 0x30(sp) | s3 = *(var_30h);
0x00002b18 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x00002b1c lw s1, 0x28(sp) | s1 = *(var_28h);
0x00002b20 lw s0, 0x24(sp) | s0 = *(var_24h);
0x00002b24 move v0, zero | v0 = 0;
0x00002b28 addiu sp, sp, 0x38 |
0x00002b2c jr ra | return v0;
| }
0x00002b30 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x00002b34 lw t9, -0x7f8c(gp) | t9 = sym.imp.g_string_append_printf
| if (v0 != 0) {
0x00002b38 beqz v0, 0x2b8c |
0x00002b3c lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00002b40 move a2, s1 | a2 = s1;
0x00002b44 move a0, s3 | a0 = s3;
0x00002b48 addiu a1, a1, 0x36b4 | a1 += 0x36b4;
0x00002b4c jalr t9 | t9 ();
0x00002b50 lw gp, 0x18(sp) | gp = *(var_18h);
0x00002b54 lw a2, 0x40(sp) | a2 = *(arg_40h);
0x00002b58 lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x00002b5c lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00002b60 move a3, s3 | a3 = s3;
0x00002b64 addiu t9, t9, 0x2a64 | t9 += fcn.00002a64;
0x00002b68 move a1, s2 | a1 = s2;
0x00002b6c bal 0x2a64 | fcn_00002a64 ();
| goto label_0;
0x00002b70 lw ra, 0x34(sp) | ra = *(var_34h);
0x00002b74 lw s3, 0x30(sp) | s3 = *(var_30h);
0x00002b78 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x00002b7c lw s1, 0x28(sp) | s1 = *(var_28h);
0x00002b80 lw s0, 0x24(sp) | s0 = *(var_24h);
0x00002b84 addiu sp, sp, 0x38 |
0x00002b88 jr ra | return v0;
| }
0x00002b8c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00002b90 lw a3, -0x7fdc(gp) | a3 = *((gp - 8183));
0x00002b94 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00002b98 addiu v0, v0, 0x370c | v0 += str.descriptors_mode_.subcommands;
0x00002b9c lw t9, -0x7f78(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00002ba0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00002ba4 addiu a3, a3, 0x3b30 | a3 += str.find_active_mode;
0x00002ba8 addiu a2, zero, 0x278 | a2 = 0x278;
0x00002bac addiu a1, a1, 0x35f4 | a1 += str..._syslog_ng_3.19.1_syslog_ng_ctl_syslog_ng_ctl.c;
0x00002bb0 move a0, zero | a0 = 0;
0x00002bb4 jalr t9 | t9 ();
| label_1:
0x00002bb8 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00002bbc lw a0, (s3) | a0 = *(s3);
0x00002bc0 addiu t9, t9, 0x1ae0 | t9 += fcn.00001ae0;
0x00002bc4 move a1, s0 | a1 = s0;
0x00002bc8 bal 0x1ae0 | fcn_00001ae0 ();
0x00002bcc lw gp, 0x18(sp) | gp = *(var_18h);
0x00002bd0 lw t9, -0x7f40(gp) | t9 = sym.imp.exit;
0x00002bd4 addiu a0, zero, 1 | a0 = 1;
0x00002bd8 jalr t9 | return t9 ();
| }
[*] Function printf used 2 times syslog-ng-ctl