[*] Binary protection state of systemd-journald
Full RELRO Canary found NX disabled PIE enabled RPATH No RUNPATH No Symbols
[*] Function strcpy tear down of systemd-journald
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd-journald @ 0x1688c */
| #include <stdint.h>
|
; (fcn) fcn.0001688c () | void fcn_0001688c () {
0x0001688c lui gp, 2 |
0x00016890 addiu gp, gp, 0x4774 |
0x00016894 addu gp, gp, t9 | gp += t9;
0x00016898 addiu sp, sp, -0x48 |
0x0001689c sw s2, 0x38(sp) | *(var_38h) = s2;
0x000168a0 lw s2, -0x7cf4(gp) | s2 = *((gp - 7997));
0x000168a4 sw fp, 0x40(sp) | *(var_40h) = fp;
0x000168a8 sw ra, 0x44(sp) | *(var_44h) = ra;
0x000168ac sw s3, 0x3c(sp) | *(var_3ch) = s3;
0x000168b0 sw s1, 0x34(sp) | *(var_34h_2) = s1;
0x000168b4 sw s0, 0x30(sp) | *(var_30h_2) = s0;
0x000168b8 sw gp, 0x18(sp) | *(var_18h_3) = gp;
0x000168bc move fp, sp | fp = sp;
0x000168c0 lw v0, (s2) | v0 = *(s2);
0x000168c4 sw zero, 0x28(fp) | *(arg_28h) = 0;
0x000168c8 sw v0, 0x2c(fp) | *(arg_2ch) = v0;
| if (a0 == 0) {
0x000168cc beql a0, zero, 0x169f8 | goto label_0;
| }
0x000168d0 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x000168d4 move s3, a1 | s3 = a1;
| if (a1 == 0) {
0x000168d8 beqz a1, 0x16a1c | goto label_1;
| }
0x000168dc lw s1, 0x44(a1) | s1 = *((a1 + 17));
0x000168e0 lw t9, -0x7ca4(gp) | t9 = sym.imp.strlen;
| if (s1 == 0) {
0x000168e4 beqz s1, 0x169f0 | goto label_2;
| }
0x000168e8 move a0, s1 | a0 = s1;
0x000168ec jalr t9 | t9 ();
0x000168f0 lui a0, 0x40 | a0 = 0x400000;
0x000168f4 addiu v1, v0, 0x1f | v1 = v0 + 0x1f;
0x000168f8 addiu a0, a0, 1 | a0++;
0x000168fc sltu v1, v1, a0 | v1 = (v1 < a0) ? 1 : 0;
0x00016900 lw gp, 0x18(fp) | gp = *(arg_18h);
| if (v1 == 0) {
0x00016904 beqz v1, 0x16a48 | goto label_3;
| }
0x00016908 lw a0, -0x7fc8(gp) | a0 = *(gp);
| /* esilref: 'notify_queue' */
0x0001690c addiu v0, v0, 0x26 | v0 += 0x26;
| /* str._run_systemd_units_invocation: */
0x00016910 addiu v1, a0, 0x1348 | v1 = a0 + 0x1348;
0x00016914 srl v0, v0, 3 | v0 >>= 3;
0x00016918 sll v0, v0, 3 | v0 <<= 3;
0x0001691c subu sp, sp, v0 |
0x00016920 lw t4, 0x1348(a0) | t4 = *((a0 + 1234));
0x00016924 lw t3, 4(v1) | t3 = *((v1 + 1));
0x00016928 lw t2, 8(v1) | t2 = *((v1 + 2));
0x0001692c lw t1, 0xc(v1) | t1 = *((v1 + 3));
0x00016930 lw t0, 0x10(v1) | t0 = *((v1 + 4));
0x00016934 lw a3, 0x14(v1) | a3 = *((v1 + 5));
0x00016938 lw a2, 0x18(v1) | a2 = *((v1 + 6));
0x0001693c lhu v0, 0x1c(v1) | v0 = *((v1 + 14));
0x00016940 lw t9, -0x7cdc(gp) | t9 = sym.imp.strcpy
0x00016944 move a1, s1 | a1 = s1;
0x00016948 addiu a0, sp, 0x36 | a0 = sp + 0x36;
0x0001694c sw t4, 0x18(sp) | *(var_18h_3) = t4;
0x00016950 sw t3, 0x1c(sp) | *(var_1ch) = t3;
0x00016954 sw t2, 0x20(sp) | *(var_20h_3) = t2;
0x00016958 sw t1, 0x24(sp) | *(var_24h_2) = t1;
0x0001695c sw t0, 0x28(sp) | *(var_28h_2) = t0;
0x00016960 sw a3, 0x2c(sp) | *(var_2ch_3) = a3;
0x00016964 sw a2, 0x30(sp) | *(var_30h_2) = a2;
0x00016968 sh v0, 0x34(sp) | *(var_34h_2) = v0;
0x0001696c jalr t9 | t9 ();
0x00016970 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00016974 addiu s0, sp, 0x18 | s0 = sp + 0x18;
0x00016978 addiu a1, fp, 0x28 | a1 = fp + 0x28;
0x0001697c lw t9, -0x7e74(gp) | t9 = sym.imp.readlink_malloc;
0x00016980 move a0, s0 | a0 = s0;
0x00016984 jalr t9 | t9 ();
0x00016988 lw gp, 0x18(fp) | gp = *(arg_18h);
| if (v0 >= 0) {
0x0001698c bltz v0, 0x169a4 |
0x00016990 lw t9, -0x7b08(gp) | t9 = sym.imp.sd_id128_from_string;
0x00016994 lw a0, 0x28(fp) | a0 = *(arg_28h);
0x00016998 addiu a1, s3, 0x58 | a1 = s3 + 0x58;
0x0001699c jalr t9 | t9 ();
0x000169a0 lw gp, 0x18(fp) | gp = *(arg_18h);
| }
0x000169a4 lw s1, 0x28(fp) | s1 = *(arg_28h);
| do {
0x000169a8 lw t9, -0x7c18(gp) | t9 = sym.imp.free;
0x000169ac sw v0, 0x24(fp) | *(arg_24h) = v0;
0x000169b0 move a0, s1 | a0 = s1;
0x000169b4 jalr t9 | t9 ();
0x000169b8 lw a0, 0x2c(fp) | a0 = *(arg_2ch);
0x000169bc lw v1, (s2) | v1 = *(s2);
0x000169c0 lw gp, 0x18(fp) | gp = *(arg_18h);
0x000169c4 lw v0, 0x24(fp) | v0 = *(arg_24h);
| if (a0 != v1) {
0x000169c8 bne a0, v1, 0x16a74 | goto label_4;
| }
0x000169cc move sp, fp |
0x000169d0 lw ra, 0x44(sp) | ra = *(var_44h);
0x000169d4 lw fp, 0x40(sp) | fp = *(var_40h);
0x000169d8 lw s3, 0x3c(sp) | s3 = *(var_3ch);
0x000169dc lw s2, 0x38(sp) | s2 = *(var_38h);
0x000169e0 lw s1, 0x34(sp) | s1 = *(var_34h_2);
0x000169e4 lw s0, 0x30(sp) | s0 = *(var_30h_2);
0x000169e8 addiu sp, sp, 0x48 |
0x000169ec jr ra | return v0;
| label_2:
0x000169f0 move v0, zero | v0 = 0;
0x000169f4 b 0x169a8 |
| } while (1);
| label_0:
0x000169f8 lw a2, -0x7fc8(gp) | a2 = *(gp);
0x000169fc lw a1, -0x7fc8(gp) | a1 = *(gp);
| /* str.client_context_read_invocation_id */
0x00016a00 addiu v0, v0, 0x17b4 | v0 += 0x17b4;
0x00016a04 lw t9, -0x7be8(gp) | t9 = sym.imp.log_assert_failed_realm;
0x00016a08 sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x00016a0c addiu a3, zero, 0x14c | a3 = 0x14c;
| /* esilref: 'src/journal/journald-context.c' */
0x00016a10 addiu a2, a2, 0x1327 | a2 += 0x1327;
0x00016a14 addiu a1, a1, -0x1ce8 | a1 += -0x1ce8;
0x00016a18 jalr t9 | t9 ();
| label_1:
0x00016a1c lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00016a20 lw a2, -0x7fc8(gp) | a2 = *(gp);
0x00016a24 lw a1, -0x7fc8(gp) | a1 = *(gp);
| /* str.client_context_read_invocation_id */
0x00016a28 addiu v0, v0, 0x17b4 | v0 += 0x17b4;
0x00016a2c lw t9, -0x7be8(gp) | t9 = sym.imp.log_assert_failed_realm;
0x00016a30 sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x00016a34 addiu a3, zero, 0x14d | a3 = 0x14d;
| /* esilref: 'src/journal/journald-context.c' */
0x00016a38 addiu a2, a2, 0x1327 | a2 += 0x1327;
0x00016a3c addiu a1, a1, -0x3720 | a1 += -0x3720;
0x00016a40 move a0, zero | a0 = 0;
0x00016a44 jalr t9 | t9 ();
| label_3:
0x00016a48 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00016a4c lw a2, -0x7fc8(gp) | a2 = *(gp);
0x00016a50 lw a1, -0x7fc8(gp) | a1 = *(gp);
| /* str.client_context_read_invocation_id */
0x00016a54 addiu v0, v0, 0x17b4 | v0 += 0x17b4;
0x00016a58 lw t9, -0x7be8(gp) | t9 = sym.imp.log_assert_failed_realm;
0x00016a5c sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x00016a60 addiu a3, zero, 0x154 | a3 = 0x154;
| /* esilref: 'src/journal/journald-context.c' */
0x00016a64 addiu a2, a2, 0x1327 | a2 += 0x1327;
| /* str.sizeof_char__n____ALLOCA_MAX */
0x00016a68 addiu a1, a1, -0x2218 | a1 += -0x2218;
0x00016a6c move a0, zero | a0 = 0;
0x00016a70 jalr t9 | t9 ();
| label_4:
0x00016a74 lw t9, -0x7d6c(gp) | t9 = sym.imp.__stack_chk_fail;
0x00016a78 jalr t9 | t9 ();
0x00016a7c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd-journald @ 0x16a80 */
| #include <stdint.h>
|
; (fcn) fcn.00016a80 () | void fcn_00016a80 () {
0x00016a80 lui gp, 2 |
0x00016a84 addiu gp, gp, 0x4580 |
0x00016a88 addu gp, gp, t9 | gp += t9;
0x00016a8c addiu sp, sp, -0x48 |
0x00016a90 sw s0, 0x30(sp) | *(var_30h_3) = s0;
0x00016a94 lw s0, -0x7cf4(gp) | s0 = *((gp - 7997));
0x00016a98 sw fp, 0x40(sp) | *(var_40h_2) = fp;
0x00016a9c sw ra, 0x44(sp) | *(var_44h_2) = ra;
0x00016aa0 sw s3, 0x3c(sp) | *(var_3ch_2) = s3;
0x00016aa4 sw s2, 0x38(sp) | *(var_38h_2) = s2;
0x00016aa8 sw s1, 0x34(sp) | *(var_34h_3) = s1;
0x00016aac sw gp, 0x18(sp) | *(var_18h_4) = gp;
0x00016ab0 move fp, sp | fp = sp;
0x00016ab4 lw v0, (s0) | v0 = *(s0);
0x00016ab8 sw zero, 0x28(fp) | *(arg_28h) = 0;
0x00016abc sw v0, 0x2c(fp) | *(arg_2ch) = v0;
| if (a0 == 0) {
0x00016ac0 beql a0, zero, 0x16bf4 | goto label_0;
| }
0x00016ac4 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00016ac8 lw s1, 0x44(a0) | s1 = *((a0 + 17));
0x00016acc move s2, a0 | s2 = a0;
| if (s1 == 0) {
0x00016ad0 beqz s1, 0x16bec | goto label_1;
| }
0x00016ad4 lw t9, -0x7ca4(gp) | t9 = sym.imp.strlen;
0x00016ad8 move a0, s1 | a0 = s1;
0x00016adc jalr t9 | t9 ();
0x00016ae0 lui a0, 0x40 | a0 = 0x400000;
| /* esilref: '_queue' */
0x00016ae4 addiu v1, v0, 0x2c | v1 = v0 + 0x2c;
0x00016ae8 addiu a0, a0, 1 | a0++;
0x00016aec sltu v1, v1, a0 | v1 = (v1 < a0) ? 1 : 0;
0x00016af0 lw gp, 0x18(fp) | gp = *(arg_18h);
| if (v1 == 0) {
0x00016af4 beqz v1, 0x16c18 | goto label_2;
| }
0x00016af8 addiu v0, v0, 0x33 | v0 += 0x33;
0x00016afc srl v0, v0, 3 | v0 >>= 3;
0x00016b00 sll v0, v0, 3 | v0 <<= 3;
0x00016b04 subu sp, sp, v0 |
0x00016b08 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00016b0c addiu s3, sp, 0x18 | s3 = sp + 0x18;
| /* str._run_systemd_units_log_rate_limit_interval: */
0x00016b10 addiu v0, v0, 0x1368 | v0 += 0x1368;
0x00016b14 move v1, s3 | v1 = s3;
0x00016b18 addiu t0, v0, 0x20 | t0 = v0 + 0x20;
| do {
0x00016b1c lw a3, (v0) | a3 = *(v0);
0x00016b20 lw a2, 4(v0) | a2 = *((v0 + 1));
0x00016b24 lw a1, 8(v0) | a1 = *((v0 + 2));
0x00016b28 lw a0, 0xc(v0) | a0 = *((v0 + 3));
0x00016b2c addiu v0, v0, 0x10 | v0 += 0x10;
0x00016b30 sw a3, (v1) | *(v1) = a3;
0x00016b34 sw a2, 4(v1) | *((v1 + 1)) = a2;
0x00016b38 sw a1, 8(v1) | *((v1 + 2)) = a1;
0x00016b3c sw a0, 0xc(v1) | *((v1 + 3)) = a0;
0x00016b40 addiu v1, v1, 0x10 | v1 += 0x10;
0x00016b44 bne v0, t0, 0x16b1c |
| } while (v0 != t0);
0x00016b48 lw a3, (v0) | a3 = *(v0);
0x00016b4c lw a2, 4(v0) | a2 = *((v0 + 1));
0x00016b50 lw v0, 8(v0) | v0 = *((v0 + 2));
0x00016b54 lw t9, -0x7cdc(gp) | t9 = sym.imp.strcpy
0x00016b58 move a1, s1 | a1 = s1;
0x00016b5c addiu a0, s3, 0x2b | a0 = s3 + 0x2b;
0x00016b60 sw a3, (v1) | *(v1) = a3;
0x00016b64 sw a2, 4(v1) | *((v1 + 1)) = a2;
0x00016b68 sw v0, 8(v1) | *((v1 + 2)) = v0;
0x00016b6c jalr t9 | t9 ();
0x00016b70 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00016b74 addiu a1, fp, 0x28 | a1 = fp + 0x28;
0x00016b78 lw t9, -0x7e74(gp) | t9 = sym.imp.readlink_malloc;
0x00016b7c move a0, s3 | a0 = s3;
0x00016b80 jalr t9 | t9 ();
0x00016b84 lw gp, 0x18(fp) | gp = *(arg_18h);
| if (v0 >= 0) {
0x00016b88 bltz v0, 0x16ba0 |
0x00016b8c lw t9, -0x7afc(gp) | t9 = sym.imp.safe_atollu;
0x00016b90 lw a0, 0x28(fp) | a0 = *(arg_28h);
| /* esilref: 'vice manager: &' */
0x00016b94 addiu a1, s2, 0x88 | a1 = s2 + 0x88;
0x00016b98 jalr t9 | t9 ();
0x00016b9c lw gp, 0x18(fp) | gp = *(arg_18h);
| }
0x00016ba0 lw s1, 0x28(fp) | s1 = *(arg_28h);
| do {
0x00016ba4 lw t9, -0x7c18(gp) | t9 = sym.imp.free;
0x00016ba8 sw v0, 0x24(fp) | *(arg_24h) = v0;
0x00016bac move a0, s1 | a0 = s1;
0x00016bb0 jalr t9 | t9 ();
0x00016bb4 lw a0, 0x2c(fp) | a0 = *(arg_2ch);
0x00016bb8 lw v1, (s0) | v1 = *(s0);
0x00016bbc lw gp, 0x18(fp) | gp = *(arg_18h);
0x00016bc0 lw v0, 0x24(fp) | v0 = *(arg_24h);
| if (a0 != v1) {
0x00016bc4 bne a0, v1, 0x16c44 | goto label_3;
| }
0x00016bc8 move sp, fp |
0x00016bcc lw ra, 0x44(sp) | ra = *(var_44h_2);
0x00016bd0 lw fp, 0x40(sp) | fp = *(var_40h_2);
0x00016bd4 lw s3, 0x3c(sp) | s3 = *(var_3ch_2);
0x00016bd8 lw s2, 0x38(sp) | s2 = *(var_38h_2);
0x00016bdc lw s1, 0x34(sp) | s1 = *(var_34h_3);
0x00016be0 lw s0, 0x30(sp) | s0 = *(var_30h_3);
0x00016be4 addiu sp, sp, 0x48 |
0x00016be8 jr ra | return v0;
| label_1:
0x00016bec move v0, zero | v0 = 0;
0x00016bf0 b 0x16ba4 |
| } while (1);
| label_0:
0x00016bf4 lw a2, -0x7fc8(gp) | a2 = *(gp);
0x00016bf8 lw a1, -0x7fc8(gp) | a1 = *(gp);
| /* str.client_context_read_log_rate_limit_interval */
0x00016bfc addiu v0, v0, 0x1740 | v0 += 0x1740;
0x00016c00 lw t9, -0x7be8(gp) | t9 = sym.imp.log_assert_failed_realm;
0x00016c04 sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00016c08 addiu a3, zero, 0x1d3 | a3 = 0x1d3;
| /* esilref: 'src/journal/journald-context.c' */
0x00016c0c addiu a2, a2, 0x1327 | a2 += 0x1327;
0x00016c10 addiu a1, a1, -0x3720 | a1 += -0x3720;
0x00016c14 jalr t9 | t9 ();
| label_2:
0x00016c18 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00016c1c lw a2, -0x7fc8(gp) | a2 = *(gp);
0x00016c20 lw a1, -0x7fc8(gp) | a1 = *(gp);
| /* str.client_context_read_log_rate_limit_interval */
0x00016c24 addiu v0, v0, 0x1740 | v0 += 0x1740;
0x00016c28 lw t9, -0x7be8(gp) | t9 = sym.imp.log_assert_failed_realm;
0x00016c2c sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00016c30 addiu a3, zero, 0x1d8 | a3 = 0x1d8;
| /* esilref: 'src/journal/journald-context.c' */
0x00016c34 addiu a2, a2, 0x1327 | a2 += 0x1327;
| /* str.sizeof_char__n____ALLOCA_MAX */
0x00016c38 addiu a1, a1, -0x2218 | a1 += -0x2218;
0x00016c3c move a0, zero | a0 = 0;
0x00016c40 jalr t9 | t9 ();
| label_3:
0x00016c44 lw t9, -0x7d6c(gp) | t9 = sym.imp.__stack_chk_fail;
0x00016c48 jalr t9 | t9 ();
0x00016c4c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd-journald @ 0x16c50 */
| #include <stdint.h>
|
; (fcn) fcn.00016c50 () | void fcn_00016c50 () {
0x00016c50 lui gp, 2 |
0x00016c54 addiu gp, gp, 0x43b0 |
0x00016c58 addu gp, gp, t9 | gp += t9;
0x00016c5c addiu sp, sp, -0x48 |
0x00016c60 sw s0, 0x30(sp) | *(var_30h_4) = s0;
0x00016c64 lw s0, -0x7cf4(gp) | s0 = *((gp - 7997));
0x00016c68 sw fp, 0x40(sp) | *(var_40h_3) = fp;
0x00016c6c sw ra, 0x44(sp) | *(var_44h_3) = ra;
0x00016c70 sw s3, 0x3c(sp) | *(var_3ch_3) = s3;
0x00016c74 sw s2, 0x38(sp) | *(var_38h_3) = s2;
0x00016c78 sw s1, 0x34(sp) | *(var_34h_4) = s1;
0x00016c7c sw gp, 0x18(sp) | *(var_18h_5) = gp;
0x00016c80 move fp, sp | fp = sp;
0x00016c84 lw v0, (s0) | v0 = *(s0);
0x00016c88 sw zero, 0x28(fp) | *(arg_28h) = 0;
0x00016c8c sw v0, 0x2c(fp) | *(arg_2ch) = v0;
| if (a0 == 0) {
0x00016c90 beql a0, zero, 0x16dc0 | goto label_1;
| }
0x00016c94 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00016c98 lw s1, 0x44(a0) | s1 = *((a0 + 17));
0x00016c9c move s2, a0 | s2 = a0;
| if (s1 == 0) {
0x00016ca0 beqz s1, 0x16db8 | goto label_2;
| }
0x00016ca4 lw t9, -0x7ca4(gp) | t9 = sym.imp.strlen;
0x00016ca8 move a0, s1 | a0 = s1;
0x00016cac jalr t9 | t9 ();
0x00016cb0 lui a0, 0x40 | a0 = 0x400000;
| /* esilref: 'ify_queue' */
0x00016cb4 addiu v1, v0, 0x29 | v1 = v0 + 0x29;
0x00016cb8 addiu a0, a0, 1 | a0++;
0x00016cbc sltu v1, v1, a0 | v1 = (v1 < a0) ? 1 : 0;
0x00016cc0 lw gp, 0x18(fp) | gp = *(arg_18h);
| if (v1 == 0) {
0x00016cc4 beqz v1, 0x16de4 | goto label_3;
| }
| /* esilref: 'ue' */
0x00016cc8 addiu v0, v0, 0x30 | v0 += 0x30;
0x00016ccc srl v0, v0, 3 | v0 >>= 3;
0x00016cd0 sll v0, v0, 3 | v0 <<= 3;
0x00016cd4 subu sp, sp, v0 |
0x00016cd8 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00016cdc addiu s3, sp, 0x18 | s3 = sp + 0x18;
| /* str._run_systemd_units_log_rate_limit_burst: */
0x00016ce0 addiu v0, v0, 0x1394 | v0 += 0x1394;
0x00016ce4 move v1, s3 | v1 = s3;
0x00016ce8 addiu a2, v0, 0x20 | a2 = v0 + 0x20;
| do {
0x00016cec lw t0, (v0) | t0 = *(v0);
0x00016cf0 lw a3, 4(v0) | a3 = *((v0 + 1));
0x00016cf4 lw a1, 8(v0) | a1 = *((v0 + 2));
0x00016cf8 lw a0, 0xc(v0) | a0 = *((v0 + 3));
0x00016cfc addiu v0, v0, 0x10 | v0 += 0x10;
0x00016d00 sw t0, (v1) | *(v1) = t0;
0x00016d04 sw a3, 4(v1) | *((v1 + 1)) = a3;
0x00016d08 sw a1, 8(v1) | *((v1 + 2)) = a1;
0x00016d0c sw a0, 0xc(v1) | *((v1 + 3)) = a0;
0x00016d10 addiu v1, v1, 0x10 | v1 += 0x10;
0x00016d14 bne v0, a2, 0x16cec |
| } while (v0 != a2);
0x00016d18 lw a2, (v0) | a2 = *(v0);
0x00016d1c lw v0, 4(v0) | v0 = *((v0 + 1));
0x00016d20 lw t9, -0x7cdc(gp) | t9 = sym.imp.strcpy
0x00016d24 move a1, s1 | a1 = s1;
0x00016d28 addiu a0, s3, 0x28 | a0 = s3 + 0x28;
0x00016d2c sw a2, (v1) | *(v1) = a2;
0x00016d30 sw v0, 4(v1) | *((v1 + 1)) = v0;
0x00016d34 jalr t9 | t9 ();
0x00016d38 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00016d3c addiu a1, fp, 0x28 | a1 = fp + 0x28;
0x00016d40 lw t9, -0x7e74(gp) | t9 = sym.imp.readlink_malloc;
0x00016d44 move a0, s3 | a0 = s3;
0x00016d48 jalr t9 | t9 ();
0x00016d4c lw gp, 0x18(fp) | gp = *(arg_18h);
| if (v0 >= 0) {
0x00016d50 bltz v0, 0x16d6c |
0x00016d54 lw t9, -0x7d44(gp) | t9 = sym.imp.safe_atou_full;
0x00016d58 lw a0, 0x28(fp) | a0 = *(arg_28h);
| /* esilref: 'ager: &' */
0x00016d5c addiu a2, s2, 0x90 | a2 = s2 + 0x90;
0x00016d60 move a1, zero | a1 = 0;
0x00016d64 jalr t9 | t9 ();
0x00016d68 lw gp, 0x18(fp) | gp = *(arg_18h);
| }
0x00016d6c lw s1, 0x28(fp) | s1 = *(arg_28h);
| do {
0x00016d70 lw t9, -0x7c18(gp) | t9 = sym.imp.free;
0x00016d74 nop |
0x00016d78 nop |
0x00016d7c nop |
0x00016d80 nop |
0x00016d84 invalid |
0x00016d88 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00016d8c lw v0, 0x24(fp) | v0 = *(arg_24h);
| if (a0 != v1) {
0x00016d90 bne a0, v1, 0x16e10 | goto label_4;
| }
0x00016d94 move sp, fp |
0x00016d98 lw ra, 0x44(sp) | ra = *(var_44h_3);
0x00016d9c lw fp, 0x40(sp) | fp = *(var_40h_3);
0x00016da0 lw s3, 0x3c(sp) | s3 = *(var_3ch_3);
0x00016da4 lw s2, 0x38(sp) | s2 = *(var_38h_3);
0x00016da8 lw s1, 0x34(sp) | s1 = *(var_34h_4);
0x00016dac lw s0, 0x30(sp) | s0 = *(var_30h_4);
0x00016db0 addiu sp, sp, 0x48 |
0x00016db4 jr ra | return v0;
| label_2:
0x00016db8 move v0, zero | v0 = 0;
0x00016dbc b 0x16d70 |
| } while (1);
| label_1:
0x00016dc0 lw a2, -0x7fc8(gp) | a2 = *(gp);
0x00016dc4 lw a1, -0x7fc8(gp) | a1 = *(gp);
| /* str.client_context_read_log_rate_limit_burst */
0x00016dc8 addiu v0, v0, 0x1714 | v0 += 0x1714;
0x00016dcc lw t9, -0x7be8(gp) | t9 = sym.imp.log_assert_failed_realm;
0x00016dd0 sw v0, 0x10(sp) | *(var_10h_5) = v0;
0x00016dd4 addiu a3, zero, 0x1e5 | a3 = 0x1e5;
| /* esilref: 'src/journal/journald-context.c' */
0x00016dd8 addiu a2, a2, 0x1327 | a2 += 0x1327;
0x00016ddc addiu a1, a1, -0x3720 | a1 += -0x3720;
0x00016de0 jalr t9 | t9 ();
| label_3:
0x00016de4 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00016de8 lw a2, -0x7fc8(gp) | a2 = *(gp);
0x00016dec lw a1, -0x7fc8(gp) | a1 = *(gp);
| /* str.client_context_read_log_rate_limit_burst */
0x00016df0 addiu v0, v0, 0x1714 | v0 += 0x1714;
0x00016df4 lw t9, -0x7be8(gp) | t9 = sym.imp.log_assert_failed_realm;
0x00016df8 sw v0, 0x10(sp) | *(var_10h_5) = v0;
0x00016dfc addiu a3, zero, 0x1ea | a3 = 0x1ea;
| /* esilref: 'src/journal/journald-context.c' */
0x00016e00 addiu a2, a2, 0x1327 | a2 += 0x1327;
| /* str.sizeof_char__n____ALLOCA_MAX */
0x00016e04 addiu a1, a1, -0x2218 | a1 += -0x2218;
0x00016e08 move a0, zero | a0 = 0;
0x00016e0c jalr t9 | t9 ();
| label_4:
0x00016e10 lw t9, -0x7d6c(gp) | t9 = sym.imp.__stack_chk_fail;
0x00016e14 jalr t9 | t9 ();
0x00016e18 nop |
0x00016e1c lw v1, 0xc(a0) | v1 = *((a0 + 3));
0x00016e20 lw v0, 0xc(a1) | v0 = *((a1 + 3));
0x00016e24 lw a3, 8(a0) | a3 = *((a0 + 2));
0x00016e28 sltu a2, v1, v0 | a2 = (v1 < v0) ? 1 : 0;
0x00016e2c lw t0, 8(a1) | t0 = *((a1 + 2));
| if (a2 != 0) {
0x00016e30 bnez a2, 0x16e84 | goto label_5;
| }
0x00016e34 sltu a2, a3, t0 | a2 = (a3 < t0) ? 1 : 0;
| if (v0 == v1) {
0x00016e38 beq v0, v1, 0x16e7c | goto label_6;
| }
0x00016e3c sltu a2, v0, v1 | a2 = (v0 < v1) ? 1 : 0;
| if (a2 != 0) {
| label_0:
0x00016e40 bnez a2, 0x16e74 | goto label_7;
| }
0x00016e44 nop |
| if (v1 == v0) {
0x00016e48 beql v1, v0, 0x16e6c | goto label_8;
| }
0x00016e4c sltu a3, t0, a3 | a3 = (t0 < a3) ? 1 : 0;
0x00016e50 lw v0, 0x14(a0) | v0 = *((a0 + 5));
| do {
0x00016e54 lw v1, 0x14(a1) | v1 = *((a1 + 5));
0x00016e58 slt a0, v0, v1 | a0 = (v0 < v1) ? 1 : 0;
| if (a0 != 0) {
0x00016e5c bnez a0, 0x16e8c | goto label_9;
| }
0x00016e60 nop |
0x00016e64 slt v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x00016e68 jr ra | return v0;
| label_8:
0x00016e6c beql a3, zero, 0x16e54 |
| } while (a3 == 0);
0x00016e70 lw v0, 0x14(a0) | v0 = *((a0 + 5));
| label_7:
0x00016e74 addiu v0, zero, 1 | v0 = 1;
0x00016e78 jr ra | return v0;
| label_6:
0x00016e7c sltu a2, v0, v1 | a2 = (v0 < v1) ? 1 : 0;
| if (a2 == 0) {
0x00016e80 beqz a2, 0x16e40 | goto label_0;
| }
| label_5:
0x00016e84 addiu v0, zero, -1 | v0 = -1;
0x00016e88 jr ra | return v0;
| label_9:
0x00016e8c addiu v0, zero, -1 | v0 = -1;
0x00016e90 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd-journald @ 0x16e94 */
| #include <stdint.h>
|
; (fcn) fcn.00016e94 () | void fcn_00016e94 () {
0x00016e94 lui gp, 2 |
0x00016e98 addiu gp, gp, 0x416c |
0x00016e9c addu gp, gp, t9 | gp += t9;
0x00016ea0 addiu sp, sp, -0x40 |
0x00016ea4 sw s0, 0x28(sp) | *(var_28h) = s0;
0x00016ea8 lw s0, -0x7cf4(gp) | s0 = *((gp - 7997));
0x00016eac sw fp, 0x38(sp) | *(var_38h) = fp;
0x00016eb0 sw s2, 0x30(sp) | *(var_30h) = s2;
0x00016eb4 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00016eb8 sw s3, 0x34(sp) | *(var_34h) = s3;
0x00016ebc sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x00016ec0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00016ec4 move fp, sp | fp = sp;
0x00016ec8 lw v0, (s0) | v0 = *(s0);
0x00016ecc move s2, a0 | s2 = a0;
0x00016ed0 sw zero, 0x20(fp) | *(var_20h) = 0;
0x00016ed4 sw v0, 0x24(fp) | *(var_24h_2) = v0;
0x00016ed8 lw t9, -0x7ca4(gp) | t9 = sym.imp.strlen;
| if (a0 == 0) {
0x00016edc beqz a0, 0x16ff4 | goto label_1;
| }
0x00016ee0 move s1, a1 | s1 = a1;
0x00016ee4 jalr t9 | t9 ();
0x00016ee8 lui a0, 0x40 | a0 = 0x400000;
0x00016eec addiu v1, v0, 0x22 | v1 = v0 + 0x22;
0x00016ef0 addiu a0, a0, 1 | a0++;
0x00016ef4 sltu v1, v1, a0 | v1 = (v1 < a0) ? 1 : 0;
0x00016ef8 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v1 == 0) {
0x00016efc beqz v1, 0x16ffc | goto label_2;
| }
0x00016f00 addiu v0, v0, 0x29 | v0 += 0x29;
0x00016f04 srl v0, v0, 3 | v0 >>= 3;
0x00016f08 sll v0, v0, 3 | v0 <<= 3;
0x00016f0c subu sp, sp, v0 |
0x00016f10 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00016f14 addiu s3, sp, 0x18 | s3 = sp + 0x18;
| /* str._run_systemd_units_log_level_max: */
0x00016f18 addiu v0, v0, 0x13c0 | v0 += 0x13c0;
0x00016f1c move v1, s3 | v1 = s3;
0x00016f20 addiu t0, v0, 0x20 | t0 = v0 + 0x20;
| do {
0x00016f24 lw a3, (v0) | a3 = *(v0);
0x00016f28 lw a2, 4(v0) | a2 = *((v0 + 1));
0x00016f2c lw a1, 8(v0) | a1 = *((v0 + 2));
0x00016f30 lw a0, 0xc(v0) | a0 = *((v0 + 3));
0x00016f34 addiu v0, v0, 0x10 | v0 += 0x10;
0x00016f38 sw a3, (v1) | *(v1) = a3;
0x00016f3c sw a2, 4(v1) | *((v1 + 1)) = a2;
0x00016f40 sw a1, 8(v1) | *((v1 + 2)) = a1;
0x00016f44 sw a0, 0xc(v1) | *((v1 + 3)) = a0;
0x00016f48 addiu v1, v1, 0x10 | v1 += 0x10;
0x00016f4c bne v0, t0, 0x16f24 |
| } while (v0 != t0);
0x00016f50 lbu v0, (v0) | v0 = *(v0);
0x00016f54 lw t9, -0x7cdc(gp) | t9 = sym.imp.strcpy
0x00016f58 addiu a0, s3, 0x21 | a0 = s3 + 0x21;
0x00016f5c move a1, s2 | a1 = s2;
0x00016f60 sb v0, (v1) | *(v1) = v0;
0x00016f64 jalr t9 | t9 ();
0x00016f68 lw gp, 0x18(fp) | gp = *(var_18h);
0x00016f6c move a0, s3 | a0 = s3;
0x00016f70 lw t9, -0x7e74(gp) | t9 = sym.imp.readlink_malloc;
0x00016f74 addiu a1, fp, 0x20 | a1 = fp + 0x20;
0x00016f78 jalr t9 | t9 ();
0x00016f7c move s3, v0 | s3 = v0;
0x00016f80 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 < 0) {
0x00016f84 bltz v0, 0x16fec | goto label_3;
| }
0x00016f88 lw t9, -0x7d24(gp) | t9 = sym.imp.log_level_from_string;
0x00016f8c lw a0, 0x20(fp) | a0 = *(var_20h);
0x00016f90 jalr t9 | t9 ();
0x00016f94 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 < 0) {
0x00016f98 bltz v0, 0x17028 | goto label_4;
| }
0x00016f9c lw s2, 0x20(fp) | s2 = *(var_20h);
0x00016fa0 sw v0, (s1) | *(s1) = v0;
0x00016fa4 move s3, zero | s3 = 0;
| do {
| label_0:
0x00016fa8 lw t9, -0x7c18(gp) | t9 = sym.imp.free;
0x00016fac move a0, s2 | a0 = s2;
0x00016fb0 jalr t9 | t9 ();
0x00016fb4 lw a0, 0x24(fp) | a0 = *(var_24h_2);
0x00016fb8 lw v1, (s0) | v1 = *(s0);
0x00016fbc lw gp, 0x18(fp) | gp = *(var_18h);
0x00016fc0 move v0, s3 | v0 = s3;
| if (a0 != v1) {
0x00016fc4 bne a0, v1, 0x17034 | goto label_5;
| }
0x00016fc8 move sp, fp |
0x00016fcc lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00016fd0 lw fp, 0x38(sp) | fp = *(var_38h);
0x00016fd4 lw s3, 0x34(sp) | s3 = *(var_34h);
0x00016fd8 lw s2, 0x30(sp) | s2 = *(var_30h);
0x00016fdc lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00016fe0 lw s0, 0x28(sp) | s0 = *(var_28h);
0x00016fe4 addiu sp, sp, 0x40 |
0x00016fe8 jr ra | return v0;
| label_3:
0x00016fec lw s2, 0x20(fp) | s2 = *(var_20h);
0x00016ff0 b 0x16fa8 |
| } while (1);
| label_1:
0x00016ff4 move s3, zero | s3 = 0;
0x00016ff8 b 0x16fa8 | goto label_0;
| label_2:
0x00016ffc lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00017000 lw a2, -0x7fc8(gp) | a2 = *(gp);
0x00017004 lw a1, -0x7fc8(gp) | a1 = *(gp);
| /* str.client_context_read_log_level_max */
0x00017008 addiu v0, v0, 0x1790 | v0 += 0x1790;
0x0001700c lw t9, -0x7be8(gp) | t9 = sym.imp.log_assert_failed_realm;
0x00017010 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00017014 addiu a3, zero, 0x167 | a3 = 0x167;
| /* esilref: 'src/journal/journald-context.c' */
0x00017018 addiu a2, a2, 0x1327 | a2 += 0x1327;
| /* str.sizeof_char__n____ALLOCA_MAX */
0x0001701c addiu a1, a1, -0x2218 | a1 += -0x2218;
0x00017020 move a0, zero | a0 = 0;
0x00017024 jalr t9 | t9 ();
| label_4:
0x00017028 lw s2, 0x20(fp) | s2 = *(var_20h);
0x0001702c addiu s3, zero, -0x16 | s3 = -0x16;
0x00017030 b 0x16fa8 | goto label_0;
| label_5:
0x00017034 lw t9, -0x7d6c(gp) | t9 = sym.imp.__stack_chk_fail;
0x00017038 jalr t9 | t9 ();
0x0001703c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd-journald @ 0x17040 */
| #include <stdint.h>
|
; (fcn) fcn.00017040 () | void fcn_00017040 () {
0x00017040 lui gp, 2 |
0x00017044 addiu gp, gp, 0x3fc0 |
0x00017048 addu gp, gp, t9 | gp += t9;
0x0001704c addiu sp, sp, -0x110 |
0x00017050 lw v0, -0x7cf4(gp) | v0 = *((gp - 7997));
0x00017054 sw fp, 0x108(sp) | *(var_108h) = fp;
0x00017058 move fp, sp | fp = sp;
0x0001705c sw ra, 0x10c(sp) | *(var_10ch) = ra;
0x00017060 sw s7, 0x104(sp) | *(var_104h) = s7;
0x00017064 sw s6, 0x100(sp) | *(var_100h) = s6;
0x00017068 sw s5, 0xfc(sp) | *(var_fch) = s5;
0x0001706c sw s4, 0xf8(sp) | *(var_f8h) = s4;
0x00017070 sw s3, 0xf4(sp) | *(var_f4h) = s3;
0x00017074 sw s2, 0xf0(sp) | *(var_f0h) = s2;
0x00017078 sw s1, 0xec(sp) | *(var_ech) = s1;
0x0001707c sw s0, 0xe8(sp) | *(var_e8h) = s0;
0x00017080 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00017084 sw v0, 0x24(fp) | *(arg_24h) = v0;
0x00017088 lw s0, 0x44(a0) | s0 = *((a0 + 17));
0x0001708c lw v0, (v0) | v0 = *(v0);
0x00017090 sw zero, 0x30(fp) | *(arg_30h) = 0;
0x00017094 sw v0, 0xe4(fp) | *(arg_e4h) = v0;
0x00017098 sw zero, 0x34(fp) | *(arg_34h) = 0;
0x0001709c sw zero, 0x38(fp) | *(arg_38h) = 0;
0x000170a0 sw zero, 0x3c(fp) | *(arg_3ch) = 0;
| if (s0 == 0) {
0x000170a4 beqz s0, 0x17390 | goto label_7;
| }
0x000170a8 lw t9, -0x7ca4(gp) | t9 = sym.imp.strlen;
0x000170ac move s3, a0 | s3 = a0;
0x000170b0 move a0, s0 | a0 = s0;
0x000170b4 jalr t9 | t9 ();
0x000170b8 lui a0, 0x40 | a0 = 0x400000;
0x000170bc addiu v1, v0, 0x25 | v1 = v0 + 0x25;
0x000170c0 addiu a0, a0, 1 | a0++;
0x000170c4 sltu v1, v1, a0 | v1 = (v1 < a0) ? 1 : 0;
0x000170c8 lw gp, 0x18(fp) | gp = *(var_18h_2);
| if (v1 == 0) {
0x000170cc beqz v1, 0x1742c | goto label_8;
| }
0x000170d0 addiu v0, v0, 0x2c | v0 += 0x2c;
0x000170d4 srl v0, v0, 3 | v0 >>= 3;
0x000170d8 sll v0, v0, 3 | v0 <<= 3;
0x000170dc subu sp, sp, v0 |
0x000170e0 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x000170e4 addiu s1, sp, 0x18 | s1 = sp + 0x18;
| /* str._run_systemd_units_log_extra_fields: */
0x000170e8 addiu v0, v0, 0x13e4 | v0 += 0x13e4;
0x000170ec move v1, s1 | v1 = s1;
0x000170f0 addiu a1, v0, 0x20 | a1 = v0 + 0x20;
| do {
0x000170f4 lw t0, (v0) | t0 = *(v0);
0x000170f8 lw a3, 4(v0) | a3 = *((v0 + 1));
0x000170fc lw a2, 8(v0) | a2 = *((v0 + 2));
0x00017100 lw a0, 0xc(v0) | a0 = *((v0 + 3));
0x00017104 addiu v0, v0, 0x10 | v0 += 0x10;
0x00017108 sw t0, (v1) | *(v1) = t0;
0x0001710c sw a3, 4(v1) | *((v1 + 1)) = a3;
0x00017110 sw a2, 8(v1) | *((v1 + 2)) = a2;
0x00017114 sw a0, 0xc(v1) | *((v1 + 3)) = a0;
0x00017118 addiu v1, v1, 0x10 | v1 += 0x10;
0x0001711c bne v0, a1, 0x170f4 |
| } while (v0 != a1);
0x00017120 lw v0, (v0) | v0 = *(v0);
0x00017124 lw t9, -0x7cdc(gp) | t9 = sym.imp.strcpy
0x00017128 sw v0, (v1) | *(v1) = v0;
0x0001712c move a1, s0 | a1 = s0;
0x00017130 addiu a0, s1, 0x24 | a0 = s1 + 0x24;
0x00017134 jalr t9 | t9 ();
0x00017138 lw v0, 0x80(s3) | v0 = *((s3 + 32));
0x0001713c addiu v1, zero, -1 | v1 = -1;
0x00017140 lw gp, 0x18(fp) | gp = *(var_18h_2);
| if (v0 == v1) {
0x00017144 beq v0, v1, 0x17328 | goto label_9;
| }
0x00017148 lw t9, -0x7b30(gp) | t9 = sym.imp.__xstat64;
0x0001714c addiu a2, fp, 0x40 | a2 = fp + 0x40;
0x00017150 move a1, s1 | a1 = s1;
0x00017154 addiu a0, zero, 3 | a0 = 3;
0x00017158 jalr t9 | t9 ();
0x0001715c lw gp, 0x18(fp) | gp = *(var_18h_2);
| if (v0 < 0) {
0x00017160 bltz v0, 0x1734c | goto label_10;
| }
| label_1:
0x00017164 lw t9, -0x7edc(gp) | t9 = sym.imp.timespec_load_nsec;
0x00017168 addiu a0, fp, 0x88 | a0 = fp + 0x88;
0x0001716c jalr t9 | t9 ();
0x00017170 lw a0, 0x80(s3) | a0 = *((s3 + 32));
0x00017174 lw gp, 0x18(fp) | gp = *(var_18h_2);
| if (a0 == v0) {
0x00017178 beq a0, v0, 0x17458 | goto label_11;
| }
| label_0:
0x0001717c lw a1, -0x7fc8(gp) | a1 = *(gp);
| label_2:
0x00017180 lw t9, -0x7ed4(gp) | t9 = sym.imp.fopen64;
| /* esilref: 're' */
0x00017184 addiu a1, a1, 0x140c | a1 += 0x140c;
0x00017188 move a0, s1 | a0 = s1;
0x0001718c jalr t9 | t9 ();
0x00017190 sw v0, 0x2c(fp) | *(arg_2ch) = v0;
0x00017194 lw gp, 0x18(fp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00017198 beqz v0, 0x17374 | goto label_12;
| }
0x0001719c lw t9, -0x7aa0(gp) | t9 = sym.imp.fileno;
0x000171a0 lw a0, 0x2c(fp) | a0 = *(arg_2ch);
0x000171a4 jalr t9 | t9 ();
0x000171a8 lw gp, 0x18(fp) | gp = *(var_18h_2);
0x000171ac addiu a2, fp, 0x40 | a2 = fp + 0x40;
0x000171b0 move a1, v0 | a1 = v0;
0x000171b4 lw t9, -0x7dec(gp) | t9 = sym.imp.__fxstat64;
0x000171b8 addiu a0, zero, 3 | a0 = 3;
0x000171bc jalr t9 | t9 ();
0x000171c0 lw gp, 0x18(fp) | gp = *(var_18h_2);
| if (v0 < 0) {
0x000171c4 bltz v0, 0x17410 | goto label_13;
| }
0x000171c8 lw t9, -0x7ddc(gp) | t9 = sym.imp.read_full_stream_full;
0x000171cc addiu v0, fp, 0x30 | v0 = fp + 0x30;
0x000171d0 lw a0, 0x2c(fp) | a0 = *(arg_2ch);
0x000171d4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000171d8 addiu a3, fp, 0x3c | a3 = fp + 0x3c;
0x000171dc move a2, zero | a2 = 0;
0x000171e0 move a1, zero | a1 = 0;
0x000171e4 jalr t9 | t9 ();
0x000171e8 move s0, v0 | s0 = v0;
0x000171ec lw gp, 0x18(fp) | gp = *(var_18h_2);
| if (v0 < 0) {
0x000171f0 bltz v0, 0x17398 | goto label_4;
| }
0x000171f4 lw s2, 0x30(fp) | s2 = *(arg_30h);
0x000171f8 lw s6, 0x3c(fp) | s6 = *(arg_3ch);
| if (s2 == 0) {
0x000171fc beqz s2, 0x1746c | goto label_14;
| }
0x00017200 sltiu v0, s2, 8 | v0 = (s2 < 8) ? 1 : 0;
0x00017204 addiu s0, zero, -0x4d | s0 = -0x4d;
| if (v0 == 0) {
0x00017208 bnel v0, zero, 0x17398 | goto label_4;
| }
0x0001720c lwl v0, 7(s6) | __asm ("lwl v0, 7(s6)");
0x00017210 lwl s0, 3(s6) | __asm ("lwl s0, 3(s6)");
0x00017214 lwr v0, 4(s6) | __asm ("lwr v0, 4(s6)");
0x00017218 lwr s0, (s6) | __asm ("lwr s0, (s6)");
| if (v0 == 0) {
0x0001721c beqz v0, 0x174ec | goto label_15;
| }
0x00017220 addiu s1, s0, 8 | s1 = s0 + 8;
| label_6:
0x00017224 sltu a0, s1, s0 | a0 = (s1 < s0) ? 1 : 0;
0x00017228 addu v0, a0, v0 | v0 = a0 + v0;
0x0001722c addiu s0, zero, -0x4d | s0 = -0x4d;
| if (v0 == 0) {
0x00017230 bnel v0, zero, 0x17398 | goto label_4;
| }
0x00017234 sltu v0, s2, s1 | v0 = (s2 < s1) ? 1 : 0;
0x00017238 addiu s0, zero, -0x4d | s0 = -0x4d;
| if (v0 == 0) {
0x0001723c bnel v0, zero, 0x17398 | goto label_4;
| }
0x00017240 sw zero, 0x28(fp) | *(arg_28h) = 0;
0x00017244 addiu s4, fp, 0x34 | s4 = fp + 0x34;
0x00017248 addiu s7, fp, 0x38 | s7 = fp + 0x38;
0x0001724c b 0x17300 |
| while (v0 != 0) {
0x00017250 lw t9, -0x7b7c(gp) | t9 = sym.imp.journal_field_valid;
0x00017254 move a2, zero | a2 = 0;
0x00017258 subu a1, v0, s5 | __asm ("subu a1, v0, s5");
0x0001725c move a0, s5 | a0 = s5;
0x00017260 jalr t9 | t9 ();
0x00017264 lw gp, 0x18(fp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00017268 beqz v0, 0x17320 | goto label_16;
| }
0x0001726c lw v0, 0x28(fp) | v0 = *(arg_28h);
0x00017270 lw t9, -0x7c48(gp) | t9 = sym.imp.greedy_realloc;
0x00017274 addiu v0, v0, 1 | v0++;
0x00017278 addiu a3, zero, 8 | a3 = 8;
0x0001727c sw v0, 0x28(fp) | *(arg_28h) = v0;
0x00017280 move a2, v0 | a2 = v0;
0x00017284 move a1, s4 | a1 = s4;
0x00017288 move a0, s7 | a0 = s7;
0x0001728c jalr t9 | t9 ();
0x00017290 lw gp, 0x18(fp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00017294 beqz v0, 0x174d0 | goto label_17;
| }
0x00017298 lw v0, 0x28(fp) | v0 = *(arg_28h);
0x0001729c subu s2, s2, s1 | __asm ("subu s2, s2, s1");
0x000172a0 sll v0, v0, 3 | v0 <<= 3;
0x000172a4 addiu a0, v0, -8 | a0 = v0 + -8;
0x000172a8 lw v0, 0x38(fp) | v0 = *(arg_38h);
0x000172ac addu s6, s6, s1 | s6 += s1;
0x000172b0 addu v0, v0, a0 | v0 += a0;
0x000172b4 sw s5, (v0) | *(v0) = s5;
0x000172b8 sw s0, 4(v0) | *((v0 + 1)) = s0;
| if (s2 == 0) {
0x000172bc beqz s2, 0x17470 | goto label_18;
| }
0x000172c0 sltiu v0, s2, 8 | v0 = (s2 < 8) ? 1 : 0;
0x000172c4 addiu s0, zero, -0x4d | s0 = -0x4d;
| if (v0 == 0) {
0x000172c8 bnel v0, zero, 0x17398 | goto label_4;
| }
0x000172cc lwl v0, 7(s6) | __asm ("lwl v0, 7(s6)");
0x000172d0 lwl s0, 3(s6) | __asm ("lwl s0, 3(s6)");
0x000172d4 lwr v0, 4(s6) | __asm ("lwr v0, 4(s6)");
0x000172d8 lwr s0, (s6) | __asm ("lwr s0, (s6)");
| if (v0 == 0) {
0x000172dc beqz v0, 0x174d8 | goto label_19;
| }
0x000172e0 addiu s1, s0, 8 | s1 = s0 + 8;
| label_5:
0x000172e4 sltu a0, s1, s0 | a0 = (s1 < s0) ? 1 : 0;
0x000172e8 addu v0, a0, v0 | v0 = a0 + v0;
0x000172ec addiu s0, zero, -0x4d | s0 = -0x4d;
| if (v0 == 0) {
0x000172f0 bnel v0, zero, 0x17398 | goto label_4;
| }
0x000172f4 sltu v0, s2, s1 | v0 = (s2 < s1) ? 1 : 0;
0x000172f8 addiu s0, zero, -0x4d | s0 = -0x4d;
| if (v0 == 0) {
0x000172fc bnel v0, zero, 0x17398 | goto label_4;
| }
0x00017300 lw t9, -0x7e20(gp) | t9 = sym.imp.memchr;
0x00017304 addiu s5, s6, 8 | s5 = s6 + 8;
0x00017308 move a2, s0 | a2 = s0;
0x0001730c addiu a1, zero, 0x3d | a1 = 0x3d;
0x00017310 move a0, s5 | a0 = s5;
0x00017314 jalr t9 | t9 ();
0x00017318 lw gp, 0x18(fp) | gp = *(var_18h_2);
0x0001731c bnez v0, 0x17250 |
| }
| label_16:
0x00017320 addiu s0, zero, -0x4d | s0 = -0x4d;
0x00017324 b 0x17398 | goto label_4;
| label_9:
0x00017328 lw v1, 0x84(s3) | v1 = *((s3 + 33));
0x0001732c lw t9, -0x7b30(gp) | t9 = sym.imp.__xstat64;
| if (v1 == v0) {
0x00017330 beq v1, v0, 0x1717c | goto label_0;
| }
0x00017334 addiu a2, fp, 0x40 | a2 = fp + 0x40;
0x00017338 move a1, s1 | a1 = s1;
0x0001733c addiu a0, zero, 3 | a0 = 3;
0x00017340 jalr t9 | t9 ();
0x00017344 lw gp, 0x18(fp) | gp = *(var_18h_2);
| if (v0 >= 0) {
0x00017348 bgez v0, 0x17164 | goto label_1;
| }
| label_10:
0x0001734c lw t9, -0x7aa8(gp) | t9 = sym.imp.__errno_location;
0x00017350 jalr t9 | t9 ();
0x00017354 nop |
0x00017358 lw s0, (v0) | s0 = *(v0);
0x0001735c addiu v0, zero, 2 | v0 = 2;
0x00017360 lw gp, 0x18(fp) | gp = *(var_18h_2);
| if (s0 != v0) {
0x00017364 beq s0, v0, 0x17390 |
0x00017368 negu s0, s0 | __asm ("negu s0, s0");
0x0001736c sw zero, 0x2c(fp) | *(arg_2ch) = 0;
0x00017370 b 0x17398 | goto label_4;
| label_12:
0x00017374 lw t9, -0x7aa8(gp) | t9 = sym.imp.__errno_location;
0x00017378 jalr t9 | t9 ();
0x0001737c nop |
0x00017380 lw s0, (v0) | s0 = *(v0);
0x00017384 addiu v0, zero, 2 | v0 = 2;
0x00017388 lw gp, 0x18(fp) | gp = *(var_18h_2);
| if (s0 != v0) {
0x0001738c bne s0, v0, 0x17424 | goto label_20;
| }
| }
| label_7:
0x00017390 sw zero, 0x2c(fp) | *(arg_2ch) = 0;
| label_3:
0x00017394 move s0, zero | s0 = 0;
| do {
| label_4:
0x00017398 lw t9, -0x7ab4(gp) | t9 = sym.imp.safe_fclose;
0x0001739c lw a0, 0x2c(fp) | a0 = *(arg_2ch);
0x000173a0 jalr t9 | t9 ();
0x000173a4 lw gp, 0x18(fp) | gp = *(var_18h_2);
0x000173a8 lw t9, -0x7c18(gp) | t9 = sym.imp.free;
0x000173ac lw a0, 0x3c(fp) | a0 = *(arg_3ch);
0x000173b0 jalr t9 | t9 ();
0x000173b4 lw gp, 0x18(fp) | gp = *(var_18h_2);
0x000173b8 lw t9, -0x7c18(gp) | t9 = sym.imp.free;
0x000173bc lw a0, 0x38(fp) | a0 = *(arg_38h);
0x000173c0 jalr t9 | t9 ();
0x000173c4 lw v0, 0x24(fp) | v0 = *(arg_24h);
0x000173c8 lw a0, 0xe4(fp) | a0 = *(arg_e4h);
0x000173cc lw gp, 0x18(fp) | gp = *(var_18h_2);
0x000173d0 lw v1, (v0) | v1 = *(v0);
0x000173d4 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x000173d8 bne a0, v1, 0x17500 | goto label_21;
| }
0x000173dc move sp, fp |
0x000173e0 lw ra, 0x10c(sp) | ra = *(var_10ch);
0x000173e4 lw fp, 0x108(sp) | fp = *(var_108h);
0x000173e8 lw s7, 0x104(sp) | s7 = *(var_104h);
0x000173ec lw s6, 0x100(sp) | s6 = *(var_100h);
0x000173f0 lw s5, 0xfc(sp) | s5 = *(var_fch);
0x000173f4 lw s4, 0xf8(sp) | s4 = *(var_f8h);
0x000173f8 lw s3, 0xf4(sp) | s3 = *(var_f4h);
0x000173fc lw s2, 0xf0(sp) | s2 = *(var_f0h);
0x00017400 lw s1, 0xec(sp) | s1 = *(var_ech);
0x00017404 lw s0, 0xe8(sp) | s0 = *(var_e8h);
0x00017408 addiu sp, sp, 0x110 |
0x0001740c jr ra | return v1;
| label_13:
0x00017410 lw t9, -0x7aa8(gp) | t9 = sym.imp.__errno_location;
0x00017414 jalr t9 | t9 ();
0x00017418 nop |
0x0001741c lw s0, (v0) | s0 = *(v0);
0x00017420 lw gp, 0x18(fp) | gp = *(var_18h_2);
| label_20:
0x00017424 negu s0, s0 | __asm ("negu s0, s0");
0x00017428 b 0x17398 |
| } while (1);
| label_8:
0x0001742c lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00017430 lw a2, -0x7fc8(gp) | a2 = *(gp);
0x00017434 lw a1, -0x7fc8(gp) | a1 = *(gp);
| /* str.client_context_read_extra_fields */
0x00017438 addiu v0, v0, 0x176c | v0 += 0x176c;
0x0001743c lw t9, -0x7be8(gp) | t9 = sym.imp.log_assert_failed_realm;
0x00017440 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00017444 addiu a3, zero, 0x184 | a3 = segment.NOTE;
| /* esilref: 'src/journal/journald-context.c' */
0x00017448 addiu a2, a2, 0x1327 | a2 += 0x1327;
| /* str.sizeof_char__n____ALLOCA_MAX */
0x0001744c addiu a1, a1, -0x2218 | a1 += -0x2218;
0x00017450 move a0, zero | a0 = 0;
0x00017454 jalr t9 | t9 ();
| label_11:
0x00017458 lw v0, 0x84(s3) | v0 = *((s3 + 33));
0x0001745c lw a1, -0x7fc8(gp) | a1 = *(gp);
| if (v0 != v1) {
0x00017460 bne v0, v1, 0x17180 | goto label_2;
| }
0x00017464 sw zero, 0x2c(fp) | *(arg_2ch) = 0;
0x00017468 b 0x17394 | goto label_3;
| label_14:
0x0001746c sw zero, 0x28(fp) | *(arg_28h) = 0;
| label_18:
0x00017470 lw t9, -0x7c18(gp) | t9 = sym.imp.free;
0x00017474 lw a0, 0x74(s3) | a0 = *((s3 + 29));
0x00017478 move s0, zero | s0 = 0;
0x0001747c jalr t9 | t9 ();
0x00017480 lw gp, 0x18(fp) | gp = *(var_18h_2);
0x00017484 lw t9, -0x7c18(gp) | t9 = sym.imp.free;
0x00017488 lw a0, 0x7c(s3) | a0 = *((s3 + 31));
0x0001748c jalr t9 | t9 ();
0x00017490 lw v0, 0x38(fp) | v0 = *(arg_38h);
0x00017494 lw gp, 0x18(fp) | gp = *(var_18h_2);
0x00017498 sw v0, 0x74(s3) | *((s3 + 29)) = v0;
0x0001749c lw v0, 0x28(fp) | v0 = *(arg_28h);
0x000174a0 lw t9, -0x7edc(gp) | t9 = sym.imp.timespec_load_nsec;
0x000174a4 sw v0, 0x78(s3) | *((s3 + 30)) = v0;
0x000174a8 lw v0, 0x3c(fp) | v0 = *(arg_3ch);
0x000174ac addiu a0, fp, 0x88 | a0 = fp + 0x88;
0x000174b0 sw v0, 0x7c(s3) | *((s3 + 31)) = v0;
0x000174b4 sw zero, 0x38(fp) | *(arg_38h) = 0;
0x000174b8 sw zero, 0x3c(fp) | *(arg_3ch) = 0;
0x000174bc jalr t9 | t9 ();
0x000174c0 lw gp, 0x18(fp) | gp = *(var_18h_2);
0x000174c4 sw v0, 0x80(s3) | *((s3 + 32)) = v0;
0x000174c8 sw v1, 0x84(s3) | *((s3 + 33)) = v1;
0x000174cc b 0x17398 | goto label_4;
| label_17:
0x000174d0 addiu s0, zero, -0xc | s0 = -0xc;
0x000174d4 b 0x17398 | goto label_4;
| label_19:
0x000174d8 sltiu a0, s0, 2 | a0 = (s0 < 2) ? 1 : 0;
0x000174dc addiu s1, s0, 8 | s1 = s0 + 8;
| if (a0 == 0) {
0x000174e0 beqz a0, 0x172e4 | goto label_5;
| }
0x000174e4 addiu s0, zero, -0x4d | s0 = -0x4d;
0x000174e8 b 0x17398 | goto label_4;
| label_15:
0x000174ec sltiu a0, s0, 2 | a0 = (s0 < 2) ? 1 : 0;
0x000174f0 addiu s1, s0, 8 | s1 = s0 + 8;
| if (a0 == 0) {
0x000174f4 beqz a0, 0x17224 | goto label_6;
| }
0x000174f8 addiu s0, zero, -0x4d | s0 = -0x4d;
0x000174fc b 0x17398 | goto label_4;
| label_21:
0x00017500 lw t9, -0x7d6c(gp) | t9 = sym.imp.__stack_chk_fail;
0x00017504 jalr t9 | t9 ();
0x00017508 nop |
| }
[*] Function strcpy used 6 times systemd-journald