[*] Binary protection state of udevadm
Full RELRO Canary found NX disabled PIE enabled RPATH No RUNPATH No Symbols
[*] Function system tear down of udevadm
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x84cfc */
| #include <stdint.h>
|
; (fcn) sym.message_new_empty () | void message_new_empty () {
0x00084cfc lui gp, 8 |
0x00084d00 addiu gp, gp, -0x5a7c |
0x00084d04 addu gp, gp, t9 | gp += t9;
0x00084d08 addiu sp, sp, -0x30 |
0x00084d0c sw gp, 0x18(sp) | *(var_18h_3) = gp;
0x00084d10 sw ra, 0x2c(sp) | *(var_2ch_3) = ra;
0x00084d14 sw s1, 0x28(sp) | *(var_28h_3) = s1;
0x00084d18 sw s0, 0x24(sp) | *(var_24h_2) = s0;
0x00084d1c lw t9, -0x7160(gp) | t9 = sym.imp.calloc;
| if (a1 == 0) {
0x00084d20 beqz a1, 0x84d74 | goto label_1;
| }
0x00084d24 move s0, a1 | s0 = a1;
0x00084d28 move s1, a0 | s1 = a0;
0x00084d2c addiu a1, zero, 0x21c | a1 = aav.0x0000021c;
0x00084d30 addiu a0, zero, 1 | a0 = 1;
0x00084d34 jalr t9 | t9 ();
0x00084d38 addiu a1, zero, 1 | a1 = 1;
| if (v0 == 0) {
0x00084d3c beqz v0, 0x84da8 | goto label_2;
| }
0x00084d40 lbu v1, 0x214(v0) | v1 = *(v0);
0x00084d44 lw a0, 0x18(s1) | a0 = *((s1 + 6));
0x00084d48 ins v1, zero, 0, 1 | __asm ("ins v1, zero, 0, 1");
0x00084d4c sw a1, (v0) | *(v0) = a1;
0x00084d50 sw a0, 8(v0) | *((v0 + 2)) = a0;
0x00084d54 sb v1, 0x214(v0) | *(v0) = v1;
0x00084d58 sw v0, (s0) | *(s0) = v0;
0x00084d5c move v0, zero | v0 = 0;
| do {
| label_0:
0x00084d60 lw ra, 0x2c(sp) | ra = *(var_2ch_3);
0x00084d64 lw s1, 0x28(sp) | s1 = *(var_28h_3);
0x00084d68 lw s0, 0x24(sp) | s0 = *(var_24h_2);
0x00084d6c addiu sp, sp, 0x30 |
0x00084d70 jr ra | return v0;
| label_1:
0x00084d74 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00084d78 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00084d7c lw a1, -0x7fcc(gp) | a1 = *(gp);
| /* str.message_new_empty */
0x00084d80 addiu v0, v0, -0x40d0 | v0 += -0x40d0;
0x00084d84 lw t9, -0x7d8c(gp) | t9 = sym.log_assert_failed_return_realm;
0x00084d88 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00084d8c addiu a3, zero, 0x1b | a3 = 0x1b;
| /* esilref: 'src/libsystemd/sd-netlink/netlink-message.c' */
0x00084d90 addiu a2, a2, -0x434d | a2 += -0x434d;
| /* esilref: 'ret' */
0x00084d94 addiu a1, a1, -0x7454 | a1 += -0x7454;
0x00084d98 move a0, zero | a0 = 0;
0x00084d9c bal 0x9a67c | sym_log_assert_failed_return_realm ();
0x00084da0 addiu v0, zero, -0x16 | v0 = -0x16;
0x00084da4 b 0x84d60 |
| } while (1);
| label_2:
0x00084da8 addiu v0, zero, -0xc | v0 = -0xc;
0x00084dac b 0x84d60 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x84e80 */
| #include <stdint.h>
|
; (fcn) sym.message_new () | void message_new () {
0x00084e80 lui gp, 8 |
0x00084e84 addiu gp, gp, -0x5c00 |
0x00084e88 addu gp, gp, t9 | gp += t9;
0x00084e8c addiu sp, sp, -0x50 |
0x00084e90 sw s2, 0x3c(sp) | *(var_3ch) = s2;
0x00084e94 lw s2, -0x6de8(gp) | s2 = *((gp - 7034));
0x00084e98 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00084e9c sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x00084ea0 sw s5, 0x48(sp) | *(var_48h) = s5;
0x00084ea4 sw s4, 0x44(sp) | *(var_44h) = s4;
0x00084ea8 sw s3, 0x40(sp) | *(var_40h) = s3;
0x00084eac sw s1, 0x38(sp) | *(var_38h) = s1;
0x00084eb0 sw s0, 0x34(sp) | *(var_34h) = s0;
0x00084eb4 lw v0, (s2) | v0 = *(s2);
0x00084eb8 sw zero, 0x24(sp) | *(var_24h) = 0;
0x00084ebc sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00084ec0 lw t9, -0x74b4(gp) | t9 = sym.type_system_get_root
| if (a0 == 0) {
0x00084ec4 beqz a0, 0x8500c | goto label_1;
| }
0x00084ec8 move s1, a0 | s1 = a0;
0x00084ecc lw a0, 0x18(a0) | a0 = *((a0 + 6));
0x00084ed0 move s4, a1 | s4 = a1;
0x00084ed4 move s3, a2 | s3 = a2;
0x00084ed8 bal 0x870b0 | sym_type_system_get_root ()
0x00084edc lw gp, 0x18(sp) | gp = *(var_18h);
0x00084ee0 move a2, s3 | a2 = s3;
0x00084ee4 addiu a1, sp, 0x28 | a1 = sp + 0x28;
0x00084ee8 lw t9, -0x74c0(gp) | t9 = sym.type_system_get_type
0x00084eec move a0, v0 | a0 = v0;
0x00084ef0 bal 0x870d0 | sym_type_system_get_type ()
0x00084ef4 move s0, v0 | s0 = v0;
0x00084ef8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00084efc bltz v0, 0x84fbc | goto label_2;
| }
0x00084f00 lw t9, -0x74bc(gp) | t9 = sym.type_get_type;
0x00084f04 lw a0, 0x28(sp) | a0 = *(var_28h);
0x00084f08 bal 0x86f24 | sym_type_get_type ();
0x00084f0c addiu v1, zero, 0xa | v1 = 0xa;
0x00084f10 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == v1) {
0x00084f14 bne v0, v1, 0x84fb8 |
0x00084f18 lw t9, -0x74b0(gp) | t9 = sym.message_new_empty;
0x00084f1c addiu a1, sp, 0x24 | a1 = sp + 0x24;
0x00084f20 move a0, s1 | a0 = s1;
0x00084f24 bal 0x84cfc | sym_message_new_empty ();
0x00084f28 move s0, v0 | s0 = v0;
0x00084f2c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00084f30 bltz v0, 0x84fbc | goto label_2;
| }
0x00084f34 lw t9, -0x74b8(gp) | t9 = sym.type_get_size;
0x00084f38 lw a0, 0x28(sp) | a0 = *(var_28h);
0x00084f3c addiu s5, zero, -4 | s5 = -4;
0x00084f40 bal 0x86f70 | sym_type_get_size ();
0x00084f44 addiu v0, v0, 0x13 | v0 += 0x13;
0x00084f48 and s5, v0, s5 | s5 = v0 & s5;
0x00084f4c sltiu v0, s5, 0x10 | v0 = (s5 < 0x10) ? 1 : 0;
0x00084f50 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00084f54 bnez v0, 0x85040 | goto label_3;
| }
0x00084f58 lw t9, -0x7160(gp) | t9 = sym.imp.calloc;
0x00084f5c lw s1, 0x24(sp) | s1 = *(var_24h);
0x00084f60 move a1, s5 | a1 = s5;
0x00084f64 addiu a0, zero, 1 | a0 = 1;
0x00084f68 jalr t9 | t9 ();
0x00084f6c lw gp, 0x18(sp) | gp = *(var_18h);
0x00084f70 sw v0, 0xc(s1) | *((s1 + 3)) = v0;
| if (v0 == 0) {
0x00084f74 beqz v0, 0x8506c | goto label_4;
| }
0x00084f78 lw t9, -0x74ac(gp) | t9 = sym.type_get_type_system
0x00084f7c addiu v1, zero, 5 | v1 = 5;
0x00084f80 lw a0, 0x28(sp) | a0 = *(var_28h);
0x00084f84 sh v1, 6(v0) | *((v0 + 3)) = v1;
0x00084f88 addiu a1, s1, 0x10 | a1 = s1 + 0x10;
0x00084f8c bal 0x86fbc | sym_type_get_type_system ()
0x00084f90 lw v0, 0x24(sp) | v0 = *(var_24h);
0x00084f94 lw gp, 0x18(sp) | gp = *(var_18h);
0x00084f98 move s0, zero | s0 = 0;
0x00084f9c lw v0, 0xc(v0) | v0 = *((v0 + 3));
0x00084fa0 sw s5, (v0) | *(v0) = s5;
0x00084fa4 lw v0, 0x24(sp) | v0 = *(var_24h);
0x00084fa8 lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x00084fac sh s3, 4(v1) | *((v1 + 2)) = s3;
0x00084fb0 sw v0, (s4) | *(s4) = v0;
0x00084fb4 b 0x84fd8 | goto label_5;
| }
0x00084fb8 addiu s0, zero, -0x16 | s0 = -0x16;
| do {
| label_2:
0x00084fbc lw s1, 0x24(sp) | s1 = *(var_24h);
| if (s1 != 0) {
0x00084fc0 beqz s1, 0x84fd8 |
0x00084fc4 nop |
| label_0:
0x00084fc8 lw t9, -0x75f8(gp) | t9 = sym.sd_netlink_message_unref;
0x00084fcc move a0, s1 | a0 = s1;
0x00084fd0 bal 0x84db0 | sym_sd_netlink_message_unref ();
0x00084fd4 lw gp, 0x18(sp) | gp = *(var_18h);
| }
| label_5:
0x00084fd8 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00084fdc lw v1, (s2) | v1 = *(s2);
0x00084fe0 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00084fe4 bne a0, v1, 0x85074 | goto label_6;
| }
0x00084fe8 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x00084fec lw s5, 0x48(sp) | s5 = *(var_48h);
0x00084ff0 lw s4, 0x44(sp) | s4 = *(var_44h);
0x00084ff4 lw s3, 0x40(sp) | s3 = *(var_40h);
0x00084ff8 lw s2, 0x3c(sp) | s2 = *(var_3ch);
0x00084ffc lw s1, 0x38(sp) | s1 = *(var_38h);
0x00085000 lw s0, 0x34(sp) | s0 = *(var_34h);
0x00085004 addiu sp, sp, 0x50 |
0x00085008 jr ra | return v0;
| label_1:
0x0008500c lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00085010 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00085014 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00085018 lw t9, -0x7d8c(gp) | t9 = sym.log_assert_failed_return_realm;
| /* str.message_new */
0x0008501c addiu v0, v0, -0x40dc | v0 += -0x40dc;
0x00085020 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00085024 addiu a3, zero, 0x36 | a3 = 0x36;
| /* esilref: 'src/libsystemd/sd-netlink/netlink-message.c' */
0x00085028 addiu a2, a2, -0x434d | a2 += -0x434d;
| /* str.rtnl */
0x0008502c addiu a1, a1, -0x74d8 | a1 += -0x74d8;
0x00085030 bal 0x9a67c | sym_log_assert_failed_return_realm ();
0x00085034 addiu s0, zero, -0x16 | s0 = -0x16;
0x00085038 lw gp, 0x18(sp) | gp = *(var_18h);
0x0008503c b 0x84fbc |
| } while (1);
| label_3:
0x00085040 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00085044 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00085048 lw a1, -0x7fd8(gp) | a1 = *(gp);
| /* str.message_new */
0x0008504c addiu v0, v0, -0x40dc | v0 += -0x40dc;
0x00085050 lw t9, -0x7f88(gp) | t9 = sym.log_assert_failed_realm;
0x00085054 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00085058 addiu a3, zero, 0x47 | a3 = 0x47;
| /* esilref: 'src/libsystemd/sd-netlink/netlink-message.c' */
0x0008505c addiu a2, a2, -0x434d | a2 += -0x434d;
| /* str.size___sizeof_struct_nlmsghdr_ */
0x00085060 addiu a1, a1, -0x4248 | a1 += -0x4248;
0x00085064 move a0, zero | a0 = 0;
0x00085068 bal 0x991c4 | sym_log_assert_failed_realm ();
| label_4:
0x0008506c addiu s0, zero, -0xc | s0 = -0xc;
0x00085070 b 0x84fc8 | goto label_0;
| label_6:
0x00085074 lw t9, -0x6e2c(gp) | t9 = sym.imp.__stack_chk_fail;
0x00085078 jalr t9 | t9 ();
0x0008507c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x85780 */
| #include <stdint.h>
|
; (fcn) sym.sd_netlink_message_rewind () | void sd_netlink_message_rewind () {
0x00085780 lui gp, 8 |
0x00085784 addiu gp, gp, -0x6500 |
0x00085788 addu gp, gp, t9 | gp += t9;
0x0008578c addiu sp, sp, -0x50 |
0x00085790 sw s3, 0x44(sp) | *(var_44h) = s3;
0x00085794 lw s3, -0x6de8(gp) | s3 = *((gp - 7034));
0x00085798 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x0008579c sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x000857a0 sw s4, 0x48(sp) | *(var_48h) = s4;
0x000857a4 sw s2, 0x40(sp) | *(var_40h) = s2;
0x000857a8 sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x000857ac sw s0, 0x38(sp) | *(var_38h) = s0;
0x000857b0 lw v0, (s3) | v0 = *(s3);
0x000857b4 sw v0, 0x34(sp) | *(var_34h) = v0;
0x000857b8 lw v0, -0x7fd8(gp) | v0 = *(gp);
| if (a0 == 0) {
0x000857bc beqz a0, 0x85944 | goto label_3;
| }
0x000857c0 lw v0, 0x214(a0) | v0 = *(a0);
0x000857c4 andi v0, v0, 1 | v0 &= 1;
0x000857c8 move s2, a0 | s2 = a0;
| if (v0 == 0) {
0x000857cc beqz v0, 0x85930 | goto label_4;
| }
| label_2:
0x000857d0 lw t9, -0x74b4(gp) | t9 = sym.type_system_get_root
0x000857d4 lw a0, 8(s2) | a0 = *((s2 + 2));
0x000857d8 bal 0x870b0 | sym_type_system_get_root ()
0x000857dc lw v1, 0x210(s2) | v1 = *(s2);
0x000857e0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000857e4 move s4, v0 | s4 = v0;
| if (v1 == 0) {
0x000857e8 beqz v1, 0x8581c | goto label_5;
| }
0x000857ec addiu s0, s2, 0x28 | s0 = s2 + 0x28;
0x000857f0 addiu s1, zero, 1 | s1 = 1;
| do {
0x000857f4 lw t9, -0x6dc8(gp) | t9 = *((gp - 7026));
0x000857f8 lw a0, (s0) | a0 = *(s0);
0x000857fc addiu s1, s1, 1 | s1++;
0x00085800 jalr t9 | t9 ();
0x00085804 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00085808 sw zero, (s0) | *(s0) = 0;
0x0008580c lw v0, 0x210(s2) | v0 = *(s2);
0x00085810 sltu v0, v0, s1 | v0 = (v0 < s1) ? 1 : 0;
0x00085814 addiu s0, s0, 0x10 | s0 += 0x10;
0x00085818 beqz v0, 0x857f4 |
| } while (v0 == 0);
| label_5:
0x0008581c lw v0, 0x18(s2) | v0 = *((s2 + 6));
0x00085820 sw zero, 0x210(s2) | *(s2) = 0;
| if (v0 == 0) {
0x00085824 beqz v0, 0x85858 | goto label_6;
| }
| label_0:
0x00085828 move v0, zero | v0 = 0;
| do {
| label_1:
0x0008582c lw a0, 0x34(sp) | a0 = *(var_34h);
0x00085830 lw v1, (s3) | v1 = *(s3);
0x00085834 lw ra, 0x4c(sp) | ra = *(var_4ch);
| if (a0 != v1) {
0x00085838 bne a0, v1, 0x859a0 | goto label_7;
| }
0x0008583c lw s4, 0x48(sp) | s4 = *(var_48h);
0x00085840 lw s3, 0x44(sp) | s3 = *(var_44h);
0x00085844 lw s2, 0x40(sp) | s2 = *(var_40h);
0x00085848 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x0008584c lw s0, 0x38(sp) | s0 = *(var_38h);
0x00085850 addiu sp, sp, 0x50 |
0x00085854 jr ra | return v0;
| label_6:
0x00085858 lw v0, 0xc(s2) | v0 = *((s2 + 3));
0x0008585c lw t9, -0x74c0(gp) | t9 = sym.type_system_get_type
| if (v0 == 0) {
0x00085860 beqz v0, 0x85974 | goto label_8;
| }
0x00085864 lhu a2, 4(v0) | a2 = *((v0 + 2));
0x00085868 addiu a1, sp, 0x2c | a1 = sp + 0x2c;
0x0008586c move a0, s4 | a0 = s4;
0x00085870 bal 0x870d0 | sym_type_system_get_type ()
0x00085874 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00085878 bltz v0, 0x8582c |
| } while (v0 < 0);
0x0008587c lw t9, -0x74bc(gp) | t9 = sym.type_get_type;
0x00085880 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00085884 bal 0x86f24 | sym_type_get_type ();
0x00085888 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0008588c lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00085890 lw t9, -0x74b8(gp) | t9 = sym.type_get_size;
0x00085894 move s0, v0 | s0 = v0;
0x00085898 bal 0x86f70 | sym_type_get_size ();
0x0008589c addiu v1, zero, 0xa | v1 = 0xa;
0x000858a0 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (s0 != v1) {
0x000858a4 bne s0, v1, 0x85828 | goto label_0;
| }
0x000858a8 lw t9, -0x74ac(gp) | t9 = sym.type_get_type_system
0x000858ac lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x000858b0 sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x000858b4 addiu a1, sp, 0x30 | a1 = sp + 0x30;
0x000858b8 bal 0x86fbc | sym_type_get_type_system ()
0x000858bc lw a3, 0xc(s2) | a3 = *((s2 + 3));
0x000858c0 lw a0, 0x30(sp) | a0 = *(var_30h);
0x000858c4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000858c8 lw v1, 0x210(s2) | v1 = *(s2);
0x000858cc lw v0, 0x24(sp) | v0 = *(var_24h_2);
0x000858d0 sw a0, 0x10(s2) | *((s2 + 4)) = a0;
0x000858d4 lw a2, (a3) | a2 = *(a3);
0x000858d8 addiu a1, zero, -4 | a1 = -4;
0x000858dc addiu a0, v0, 3 | a0 = v0 + 3;
0x000858e0 addiu v1, v1, 1 | v1++;
0x000858e4 addiu v0, v0, 0x13 | v0 += 0x13;
0x000858e8 sll v1, v1, 4 | v1 <<= 4;
0x000858ec lw t9, -0x7594(gp) | t9 = *(gp);
0x000858f0 and a0, a0, a1 | a0 &= a1;
0x000858f4 and v0, v0, a1 | v0 &= a1;
0x000858f8 subu v0, a2, v0 | __asm ("subu v0, a2, v0");
0x000858fc addu a1, s2, v1 | a1 = s2 + v1;
0x00085900 addiu a0, a0, 0x10 | a0 += 0x10;
0x00085904 addu a3, a3, a0 | a3 += a0;
0x00085908 addiu a2, a1, 0xc | a2 = a1 + 0xc;
0x0008590c sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00085910 addiu a1, a1, 8 | a1 += 8;
| /* fcn.00084ac0 */
0x00085914 addiu t9, t9, 0x4ac0 | t9 += 0x4ac0;
0x00085918 addiu a0, s2, 0xc | a0 = s2 + 0xc;
0x0008591c bal 0x84ac0 | fcn_00084ac0 ();
0x00085920 sra v1, v0, 0x1f | v1 = v0 >> 0x1f;
0x00085924 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00085928 and v0, v1, v0 | v0 = v1 & v0;
0x0008592c b 0x8582c | goto label_1;
| label_4:
0x00085930 lw t9, -0x75d4(gp) | t9 = sym.rtnl_message_seal;
0x00085934 bal 0x856e8 | sym_rtnl_message_seal ();
0x00085938 nop |
0x0008593c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00085940 b 0x857d0 | goto label_2;
| label_3:
0x00085944 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00085948 lw a1, -0x7fcc(gp) | a1 = *(gp);
0x0008594c lw t9, -0x7d8c(gp) | t9 = sym.log_assert_failed_return_realm;
| /* str.sd_netlink_message_rewind */
0x00085950 addiu v0, v0, -0x4214 | v0 += -0x4214;
0x00085954 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00085958 addiu a3, zero, 0x3ef | a3 = 0x3ef;
| /* esilref: 'src/libsystemd/sd-netlink/netlink-message.c' */
0x0008595c addiu a2, a2, -0x434d | a2 += -0x434d;
0x00085960 addiu a1, a1, 0xaa4 | a1 += aav.0x00000aa4;
0x00085964 bal 0x9a67c | sym_log_assert_failed_return_realm ();
0x00085968 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0008596c addiu v0, zero, -0x16 | v0 = -0x16;
0x00085970 b 0x8582c | goto label_1;
| label_8:
0x00085974 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00085978 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0008597c lw a1, -0x7fd8(gp) | a1 = *(gp);
| /* str.sd_netlink_message_rewind */
0x00085980 addiu v0, v0, -0x4214 | v0 += -0x4214;
0x00085984 lw t9, -0x7f88(gp) | t9 = sym.log_assert_failed_realm;
0x00085988 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0008598c addiu a3, zero, 0x400 | a3 = aav.0x00000400;
| /* esilref: 'src/libsystemd/sd-netlink/netlink-message.c' */
0x00085990 addiu a2, a2, -0x434d | a2 += -0x434d;
| /* str.m__hdr */
0x00085994 addiu a1, a1, -0x7434 | a1 += -0x7434;
0x00085998 move a0, zero | a0 = 0;
0x0008599c bal 0x991c4 | sym_log_assert_failed_realm ();
| label_7:
0x000859a0 lw t9, -0x6e2c(gp) | t9 = sym.imp.__stack_chk_fail;
0x000859a4 jalr t9 | t9 ();
0x000859a8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x86794 */
| #include <stdint.h>
|
; (fcn) sym.socket_read_message () | void socket_read_message () {
0x00086794 lui gp, 8 |
0x00086798 addiu gp, gp, -0x7514 |
0x0008679c addu gp, gp, t9 | gp += t9;
0x000867a0 addiu sp, sp, -0x80 |
0x000867a4 sw s3, 0x64(sp) | *(var_64h) = s3;
0x000867a8 lw s3, -0x6de8(gp) | s3 = *((gp - 7034));
0x000867ac sw gp, 0x20(sp) | *(var_20h) = gp;
0x000867b0 sw ra, 0x7c(sp) | *(var_7ch) = ra;
0x000867b4 sw fp, 0x78(sp) | *(var_78h) = fp;
0x000867b8 sw s7, 0x74(sp) | *(var_74h) = s7;
0x000867bc sw s6, 0x70(sp) | *(var_70h) = s6;
0x000867c0 sw s5, 0x6c(sp) | *(var_6ch) = s5;
0x000867c4 sw s4, 0x68(sp) | *(var_68h) = s4;
0x000867c8 sw s2, 0x60(sp) | *(var_60h) = s2;
0x000867cc sw s1, 0x5c(sp) | *(var_5ch) = s1;
0x000867d0 sw s0, 0x58(sp) | *(var_58h) = s0;
0x000867d4 lw v0, (s3) | v0 = *(s3);
0x000867d8 sw zero, 0x4c(sp) | *(var_4ch) = 0;
0x000867dc sw zero, 0x50(sp) | *(var_50h) = 0;
0x000867e0 sw v0, 0x54(sp) | *(var_54h) = v0;
0x000867e4 sw zero, 0x40(sp) | *(var_40h) = 0;
| if (a0 == 0) {
0x000867e8 beqz a0, 0x86b7c | goto label_12;
| }
0x000867ec lw v0, 0x3c(a0) | v0 = *((a0 + 15));
0x000867f0 move s0, a0 | s0 = a0;
| if (v0 == 0) {
0x000867f4 beqz v0, 0x86ba4 | goto label_13;
| }
0x000867f8 lw v0, 0x40(a0) | v0 = *((arg_4h + 1));
0x000867fc sltiu v0, v0, 0x10 | v0 = (v0 < 0x10) ? 1 : 0;
0x00086800 lw t9, -0x74b4(gp) | t9 = sym.type_system_get_root
| if (v0 != 0) {
0x00086804 bnez v0, 0x86bd0 | goto label_14;
| }
0x00086808 lw a0, 0x18(a0) | a0 = *((a0 + 6));
0x0008680c addiu s2, sp, 0x4c | s2 = sp + 0x4c;
0x00086810 bal 0x870b0 | sym_type_system_get_root ()
0x00086814 lw gp, 0x20(sp) | gp = *(var_20h);
0x00086818 lw a0, 4(s0) | a0 = *((s0 + 1));
0x0008681c move a2, zero | a2 = 0;
0x00086820 lw s1, -0x7594(gp) | s1 = *(gp);
0x00086824 addiu a3, zero, 1 | a3 = 1;
| /* fcn.00085d3c */
0x00086828 addiu s1, s1, 0x5d3c | s1 += 0x5d3c;
0x0008682c move a1, s2 | a1 = s2;
0x00086830 move t9, s1 | t9 = s1;
0x00086834 move s4, v0 | s4 = v0;
0x00086838 bal 0x85d3c | fcn_00085d3c ();
0x0008683c move a2, v0 | a2 = v0;
0x00086840 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 > 0) {
0x00086844 blez v0, 0x86980 |
0x00086848 lw t9, -0x7948(gp) | t9 = sym.greedy_realloc;
0x0008684c addiu a3, zero, 1 | a3 = 1;
0x00086850 addiu a1, s0, 0x40 | a1 = s0 + 0x40;
0x00086854 addiu a0, s0, 0x3c | a0 = s0 + 0x3c;
0x00086858 bal 0x88a50 | sym_greedy_realloc ();
0x0008685c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00086860 beqz v0, 0x86ebc | goto label_15;
| }
0x00086864 lw v0, 0x40(s0) | v0 = *((s0 + 16));
0x00086868 lw v1, 0x3c(s0) | v1 = *((s0 + 15));
0x0008686c lw a0, 4(s0) | a0 = *((s0 + 1));
0x00086870 addiu a2, sp, 0x40 | a2 = sp + 0x40;
0x00086874 move a3, zero | a3 = 0;
0x00086878 move a1, s2 | a1 = s2;
0x0008687c sw v1, 0x4c(sp) | *(var_4ch) = v1;
0x00086880 move t9, s1 | t9 = s1;
0x00086884 sw v0, 0x50(sp) | *(var_50h) = v0;
0x00086888 bal 0x85d3c | fcn_00085d3c ();
0x0008688c move a2, v0 | a2 = v0;
0x00086890 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 <= 0) {
0x00086894 blez v0, 0x86980 | goto label_2;
| }
0x00086898 lw v0, 0x40(s0) | v0 = *((s0 + 16));
0x0008689c sltu v0, v0, a2 | v0 = (v0 < a2) ? 1 : 0;
0x000868a0 move s7, a2 | s7 = a2;
| if (v0 != 0) {
0x000868a4 bnez v0, 0x86ec4 | goto label_16;
| }
0x000868a8 sltiu v0, a2, 0x10 | v0 = (a2 < 0x10) ? 1 : 0;
| if (v0 == 0) {
0x000868ac beql v0, zero, 0x869c0 | goto label_17;
| }
0x000868b0 lw fp, 0x3c(s0) | fp = *((s0 + 15));
0x000868b4 lw t9, -0x7f98(gp) | t9 = sym.log_get_max_level_realm;
0x000868b8 move a0, zero | a0 = 0;
0x000868bc bal 0x9b018 | sym_log_get_max_level_realm ();
0x000868c0 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x000868c4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x000868c8 bnez v0, 0x86c20 | goto label_18;
| }
0x000868cc move s1, zero | s1 = 0;
0x000868d0 sw zero, 0x2c(sp) | *(var_2ch) = 0;
0x000868d4 sw zero, 0x28(sp) | *(var_28h) = 0;
0x000868d8 move s2, zero | s2 = 0;
0x000868dc lw v0, -0x7fd8(gp) | v0 = *(gp);
| label_1:
0x000868e0 lw a2, -0x7fd8(gp) | a2 = *(gp);
| /* str.sd_netlink:_discarding__zu_bytes_of_incoming_message */
0x000868e4 addiu v0, v0, -0x3ef0 | v0 += -0x3ef0;
0x000868e8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000868ec lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000868f0 lw t9, -0x7f68(gp) | t9 = sym.log_internal_realm;
| /* esilref: 'socket_read_message' */
0x000868f4 addiu v0, v0, -0x3e90 | v0 += -0x3e90;
0x000868f8 sw s7, 0x18(sp) | *(var_18h) = s7;
0x000868fc sw v0, 0x10(sp) | *(var_10h) = v0;
0x00086900 addiu a3, zero, 0x1a5 | a3 = 0x1a5;
| /* esilref: 'src/libsystemd/sd-netlink/netlink-socket.c' */
0x00086904 addiu a2, a2, -0x4055 | a2 += -0x4055;
0x00086908 move a1, zero | a1 = 0;
0x0008690c addiu a0, zero, 7 | a0 = 7;
0x00086910 bal 0x9a158 | sym_log_internal_realm ();
0x00086914 lw gp, 0x20(sp) | gp = *(var_20h);
| label_0:
0x00086918 move a2, zero | a2 = 0;
| if (s2 == 0) {
0x0008691c beqz s2, 0x86980 | goto label_2;
| }
0x00086920 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x00086924 lw t9, -0x749c(gp) | t9 = sym.rtnl_rqueue_make_room;
| if (v0 == 0) {
0x00086928 beqz v0, 0x86b4c | goto label_19;
| }
| if (s1 == 0) {
0x0008692c beql s1, zero, 0x86bfc | goto label_20;
| }
0x00086930 lw v0, 0x34(s0) | v0 = *((s0 + 13));
0x00086934 lw t9, -0x749c(gp) | t9 = sym.rtnl_rqueue_make_room;
0x00086938 move a0, s0 | a0 = s0;
0x0008693c bal 0x6fa88 | sym_rtnl_rqueue_make_room ();
0x00086940 move a2, v0 | a2 = v0;
0x00086944 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00086948 bltz v0, 0x86b60 | goto label_21;
| }
0x0008694c lw v0, 0x28(s0) | v0 = *((s0 + 10));
0x00086950 lw v1, 0x24(s0) | v1 = *((s0 + 9));
0x00086954 sll a0, v0, 2 | a0 = v0 << 2;
0x00086958 addu v1, v1, a0 | v1 += a0;
0x0008695c addiu v0, v0, 1 | v0++;
0x00086960 sw v0, 0x28(s0) | *((s0 + 10)) = v0;
0x00086964 sw s2, (v1) | *(v1) = s2;
0x00086968 lw v0, 0x34(s0) | v0 = *((s0 + 13));
0x0008696c lw v1, 0x28(sp) | v1 = *(var_28h);
0x00086970 sltu v1, v1, v0 | v1 = (v1 < v0) ? 1 : 0;
0x00086974 lw a1, 0x28(sp) | a1 = *(var_28h);
| if (v1 != 0) {
0x00086978 bnez v1, 0x86e4c | goto label_22;
| }
0x0008697c addiu a2, zero, 1 | a2 = 1;
| }
| label_2:
0x00086980 lw a0, 0x54(sp) | a0 = *(var_54h);
0x00086984 lw v1, (s3) | v1 = *(s3);
0x00086988 move v0, a2 | v0 = a2;
| if (a0 != v1) {
0x0008698c bne a0, v1, 0x86edc | goto label_23;
| }
0x00086990 lw ra, 0x7c(sp) | ra = *(var_7ch);
0x00086994 lw fp, 0x78(sp) | fp = *(var_78h);
0x00086998 lw s7, 0x74(sp) | s7 = *(var_74h);
0x0008699c lw s6, 0x70(sp) | s6 = *(var_70h);
0x000869a0 lw s5, 0x6c(sp) | s5 = *(var_6ch);
0x000869a4 lw s4, 0x68(sp) | s4 = *(var_68h);
0x000869a8 lw s3, 0x64(sp) | s3 = *(var_64h);
0x000869ac lw s2, 0x60(sp) | s2 = *(var_60h);
0x000869b0 lw s1, 0x5c(sp) | s1 = *(var_5ch);
0x000869b4 lw s0, 0x58(sp) | s0 = *(var_58h);
0x000869b8 addiu sp, sp, 0x80 |
0x000869bc jr ra | return v0;
| label_17:
0x000869c0 lw v0, (fp) | v0 = *(fp);
0x000869c4 sltiu a0, v0, 0x10 | a0 = (v0 < 0x10) ? 1 : 0;
0x000869c8 sw zero, 0x28(sp) | *(var_28h) = 0;
| if (a0 == 0) {
0x000869cc bnel a0, zero, 0x86b20 | goto label_24;
| }
0x000869d0 sltu v0, a2, v0 | v0 = (a2 < v0) ? 1 : 0;
0x000869d4 sw zero, 0x28(sp) | *(var_28h) = 0;
| if (v0 == 0) {
0x000869d8 bnel v0, zero, 0x86b20 | goto label_24;
| }
0x000869dc lhu v0, 6(fp) | v0 = *(arg_6h);
0x000869e0 andi v0, v0, 2 | v0 &= 2;
| if (v0 == 0) {
0x000869e4 beql v0, zero, 0x86e24 | goto label_25;
| }
0x000869e8 sw zero, 0x2c(sp) | *(var_2ch) = 0;
0x000869ec lw v0, 0x34(s0) | v0 = *((s0 + 13));
0x000869f0 addiu v0, zero, 1 | v0 = 1;
| if (v0 == 0) {
0x000869f4 beqz v0, 0x86ecc | goto label_26;
| }
0x000869f8 sw zero, 0x28(sp) | *(var_28h) = 0;
0x000869fc b 0x86a18 |
| while (v0 != a0) {
0x00086a00 lw v1, 0x28(sp) | v1 = *(var_28h);
0x00086a04 lw v0, 0x34(s0) | v0 = *((s0 + 13));
0x00086a08 addiu v1, v1, 1 | v1++;
0x00086a0c sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x00086a10 sw v1, 0x28(sp) | *(var_28h) = v1;
| if (v0 == 0) {
0x00086a14 beqz v0, 0x86eb0 | goto label_27;
| }
0x00086a18 lw v0, 0x28(sp) | v0 = *(var_28h);
0x00086a1c lw a0, 0x30(s0) | a0 = *((s0 + 12));
0x00086a20 sll s1, v0, 2 | s1 = v0 << 2;
0x00086a24 lw t9, -0x75cc(gp) | t9 = sym.rtnl_message_get_serial;
0x00086a28 lwx a0, s1(a0) | __asm ("lwx a0, s1(a0)");
0x00086a2c sw a2, 0x2c(sp) | *(var_2ch) = a2;
0x00086a30 bal 0x85504 | sym_rtnl_message_get_serial ();
0x00086a34 lw fp, 0x3c(s0) | fp = *((s0 + 15));
0x00086a38 lw gp, 0x20(sp) | gp = *(var_20h);
0x00086a3c lw a0, 8(fp) | a0 = *(arg_8h);
0x00086a40 lw a2, 0x2c(sp) | a2 = *(var_2ch);
0x00086a44 bne v0, a0, 0x86a00 |
| }
0x00086a48 lw s2, 0x30(s0) | s2 = *((s0 + 12));
0x00086a4c lw v0, (fp) | v0 = *(fp);
0x00086a50 lwx s2, s1(s2) | __asm ("lwx s2, s1(s2)");
| label_10:
0x00086a54 sltiu a0, v0, 0x10 | a0 = (v0 < 0x10) ? 1 : 0;
0x00086a58 sltu a2, a2, v0 | a2 = (a2 < v0) ? 1 : 0;
| if (a0 != 0) {
0x00086a5c bnez a0, 0x86ef0 | goto label_28;
| }
0x00086a60 addiu v0, zero, 1 | v0 = 1;
0x00086a64 sw v0, 0x2c(sp) | *(var_2ch) = v0;
| if (a2 != 0) {
0x00086a68 bnez a2, 0x86ee8 | goto label_29;
| }
| label_7:
0x00086a6c lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00086a70 lw s6, -0x7fd8(gp) | s6 = *(gp);
0x00086a74 sw v0, 0x34(sp) | *(var_34h) = v0;
0x00086a78 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00086a7c addiu s5, sp, 0x48 | s5 = sp + 0x48;
| /* str.sd_netlink:_message_is_shorter_than_expected__dropping */
0x00086a80 addiu v0, v0, -0x3f28 | v0 += -0x3f28;
0x00086a84 sw v0, 0x38(sp) | *(var_38h) = v0;
| /* esilref: 'socket_read_message' */
0x00086a88 addiu v0, s6, -0x3e90 | v0 = s6 + -0x3e90;
0x00086a8c sw v0, 0x30(sp) | *(var_30h) = v0;
0x00086a90 lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* str.sd_netlink:_ignored_message_with_unknown_type:__i */
0x00086a94 addiu v0, v0, -0x3f5c | v0 += -0x3f5c;
0x00086a98 sw v0, 0x3c(sp) | *(var_3ch) = v0;
0x00086a9c lw v0, 0x40(sp) | v0 = *(var_40h);
| do {
0x00086aa0 sw zero, 0x44(sp) | *(var_44h) = 0;
| if (v0 == 0) {
0x00086aa4 bnez v0, 0x86ab8 |
0x00086aa8 lw a0, 0xc(fp) | a0 = *(arg_ch);
0x00086aac lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x00086ab0 move s1, zero | s1 = 0;
| if (a0 != v0) {
0x00086ab4 bne a0, v0, 0x86ad8 | goto label_3;
| }
| }
0x00086ab8 lhu a2, 4(fp) | a2 = *(arg_4h);
0x00086abc addiu v0, zero, 1 | v0 = 1;
0x00086ac0 addiu v0, zero, 3 | v0 = 3;
| if (a2 == v0) {
0x00086ac4 beq a2, v0, 0x86c88 | goto label_30;
| }
0x00086ac8 move s1, zero | s1 = 0;
| if (a2 == v0) {
0x00086acc bnel a2, v0, 0x86c90 | goto label_31;
| }
0x00086ad0 addiu s1, zero, 1 | s1 = 1;
| if (s2 == 0) {
0x00086ad4 beqz s2, 0x86c90 | goto label_31;
| }
| label_3:
0x00086ad8 lw v0, (fp) | v0 = *(fp);
0x00086adc addiu a0, zero, -4 | a0 = -4;
0x00086ae0 addiu v0, v0, 3 | v0 += 3;
0x00086ae4 and v0, v0, a0 | v0 &= a0;
0x00086ae8 subu s7, s7, v0 | __asm ("subu s7, s7, v0");
0x00086aec sltiu a0, s7, 0x10 | a0 = (s7 < 0x10) ? 1 : 0;
0x00086af0 addu fp, fp, v0 | fp += v0;
| if (a0 != 0) {
0x00086af4 bnez a0, 0x86e14 | goto label_32;
| }
0x00086af8 lw v0, (fp) | v0 = *(fp);
0x00086afc sltiu a0, v0, 0x10 | a0 = (v0 < 0x10) ? 1 : 0;
0x00086b00 sltu v0, s7, v0 | v0 = (s7 < v0) ? 1 : 0;
| if (a0 != 0) {
0x00086b04 bnez a0, 0x86b2c | goto label_11;
| }
0x00086b08 lw t9, -0x7f98(gp) | t9 = sym.log_get_max_level_realm;
| if (v0 != 0) {
0x00086b0c bnez v0, 0x86b30 | goto label_6;
| }
0x00086b10 lw v0, 0x40(sp) | v0 = *(var_40h);
0x00086b14 beqz s1, 0x86aa0 |
| } while (s1 == 0);
0x00086b18 b 0x86b30 | goto label_6;
0x00086b1c nop |
| label_24:
0x00086b20 sw zero, 0x2c(sp) | *(var_2ch) = 0;
0x00086b24 move s2, zero | s2 = 0;
0x00086b28 move s1, zero | s1 = 0;
| label_11:
0x00086b2c lw t9, -0x7f98(gp) | t9 = sym.log_get_max_level_realm;
| label_6:
0x00086b30 move a0, zero | a0 = 0;
0x00086b34 bal 0x9b018 | sym_log_get_max_level_realm ();
0x00086b38 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x00086b3c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00086b40 bnez v0, 0x86918 | goto label_0;
| }
0x00086b44 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00086b48 b 0x868e0 | goto label_1;
| label_19:
0x00086b4c move a0, s0 | a0 = s0;
0x00086b50 bal 0x6fa88 | sym_rtnl_rqueue_make_room ();
0x00086b54 move a2, v0 | a2 = v0;
0x00086b58 lw gp, 0x20(sp) | gp = *(var_20h);
0x00086b5c bgez v0, 0x86c28 |
| while (v0 < 0) {
| label_21:
0x00086b60 lw t9, -0x75f8(gp) | t9 = sym.sd_netlink_message_unref;
0x00086b64 sw a2, 0x28(sp) | *(var_28h) = a2;
| label_8:
0x00086b68 move a0, s2 | a0 = s2;
0x00086b6c bal 0x84db0 | sym_sd_netlink_message_unref ();
0x00086b70 lw gp, 0x20(sp) | gp = *(var_20h);
0x00086b74 lw a2, 0x28(sp) | a2 = *(var_28h);
0x00086b78 b 0x86980 | goto label_2;
| label_12:
0x00086b7c lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00086b80 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00086b84 lw a1, -0x7fd8(gp) | a1 = *(gp);
| /* str.socket_read_message */
0x00086b88 addiu v0, v0, -0x3e7c | v0 += -0x3e7c;
0x00086b8c lw t9, -0x7f88(gp) | t9 = sym.log_assert_failed_realm;
0x00086b90 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00086b94 addiu a3, zero, 0x13e | a3 = 0x13e;
| /* esilref: 'src/libsystemd/sd-netlink/netlink-socket.c' */
0x00086b98 addiu a2, a2, -0x4055 | a2 += -0x4055;
| /* str.rtnl */
0x00086b9c addiu a1, a1, -0x74d8 | a1 += -0x74d8;
0x00086ba0 bal 0x991c4 | sym_log_assert_failed_realm ();
| label_13:
0x00086ba4 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00086ba8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00086bac lw a1, -0x7fd8(gp) | a1 = *(gp);
| /* str.socket_read_message */
0x00086bb0 addiu v0, v0, -0x3e7c | v0 += -0x3e7c;
0x00086bb4 lw t9, -0x7f88(gp) | t9 = sym.log_assert_failed_realm;
0x00086bb8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00086bbc addiu a3, zero, 0x13f | a3 = 0x13f;
| /* esilref: 'src/libsystemd/sd-netlink/netlink-socket.c' */
0x00086bc0 addiu a2, a2, -0x4055 | a2 += -0x4055;
| /* str.rtnl__rbuffer */
0x00086bc4 addiu a1, a1, -0x3fa0 | a1 += -0x3fa0;
0x00086bc8 move a0, zero | a0 = 0;
0x00086bcc bal 0x991c4 | sym_log_assert_failed_realm ();
| label_14:
0x00086bd0 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00086bd4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00086bd8 lw a1, -0x7fd8(gp) | a1 = *(gp);
| /* str.socket_read_message */
0x00086bdc addiu v0, v0, -0x3e7c | v0 += -0x3e7c;
0x00086be0 lw t9, -0x7f88(gp) | t9 = sym.log_assert_failed_realm;
0x00086be4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00086be8 addiu a3, zero, 0x140 | a3 = aav.0x00000140;
| /* esilref: 'src/libsystemd/sd-netlink/netlink-socket.c' */
0x00086bec addiu a2, a2, -0x4055 | a2 += -0x4055;
| /* str.rtnl__rbuffer_allocated___sizeof_struct_nlmsghdr_ */
0x00086bf0 addiu a1, a1, -0x3f90 | a1 += -0x3f90;
0x00086bf4 move a0, zero | a0 = 0;
0x00086bf8 bal 0x991c4 | sym_log_assert_failed_realm ();
| label_20:
0x00086bfc lw v1, 0x28(sp) | v1 = *(var_28h);
0x00086c00 sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x00086c04 sll s5, v1, 2 | s5 = v1 << 2;
| if (v0 != 0) {
0x00086c08 beqz v0, 0x86c4c |
0x00086c0c lw v0, 0x30(s0) | v0 = *((s0 + 12));
0x00086c10 addu v0, v0, s5 | v0 += s5;
0x00086c14 move a2, zero | a2 = 0;
0x00086c18 sw s2, (v0) | *(v0) = s2;
0x00086c1c b 0x86980 | goto label_2;
| label_18:
0x00086c20 move a2, zero | a2 = 0;
0x00086c24 b 0x86980 | goto label_2;
0x00086c28 lw v0, 0x28(s0) | v0 = *((s0 + 10));
0x00086c2c lw v1, 0x24(s0) | v1 = *((s0 + 9));
0x00086c30 sll a0, v0, 2 | a0 = v0 << 2;
0x00086c34 addu v1, v1, a0 | v1 += a0;
0x00086c38 addiu v0, v0, 1 | v0++;
0x00086c3c sw v0, 0x28(s0) | *((s0 + 10)) = v0;
0x00086c40 addiu a2, zero, 1 | a2 = 1;
0x00086c44 sw s2, (v1) | *(v1) = s2;
0x00086c48 b 0x86980 | goto label_2;
| }
0x00086c4c lw t9, -0x7498(gp) | t9 = sym.rtnl_rqueue_partial_make_room;
0x00086c50 move a0, s0 | a0 = s0;
0x00086c54 bal 0x6fb8c | sym_rtnl_rqueue_partial_make_room ();
0x00086c58 move a2, v0 | a2 = v0;
0x00086c5c lw gp, 0x20(sp) | gp = *(var_20h);
0x00086c60 bltz v0, 0x86b60 |
| }
0x00086c64 lw v0, 0x34(s0) | v0 = *((s0 + 13));
0x00086c68 lw v1, 0x30(s0) | v1 = *((s0 + 12));
0x00086c6c sll a0, v0, 2 | a0 = v0 << 2;
0x00086c70 addu v1, v1, a0 | v1 += a0;
0x00086c74 addiu v0, v0, 1 | v0++;
0x00086c78 sw v0, 0x34(s0) | *((s0 + 13)) = v0;
0x00086c7c move a2, zero | a2 = 0;
0x00086c80 sw s2, (v1) | *(v1) = s2;
0x00086c84 b 0x86980 | goto label_2;
| label_30:
0x00086c88 move s1, zero | s1 = 0;
0x00086c8c b 0x86ad8 | goto label_3;
| label_31:
0x00086c90 lw t9, -0x74c0(gp) | t9 = sym.type_system_get_type
0x00086c94 move a1, s5 | a1 = s5;
0x00086c98 move a0, s4 | a0 = s4;
0x00086c9c bal 0x870d0 | sym_type_system_get_type ()
0x00086ca0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00086ca4 bltz v0, 0x86cfc | goto label_33;
| }
0x00086ca8 lw t9, -0x74b8(gp) | t9 = sym.type_get_size;
0x00086cac lw a0, 0x48(sp) | a0 = *(var_48h);
0x00086cb0 lw s6, (fp) | s6 = *(fp);
0x00086cb4 bal 0x86f70 | sym_type_get_size ();
0x00086cb8 addiu v0, v0, 0x10 | v0 += 0x10;
0x00086cbc sltu a1, s6, v0 | a1 = (s6 < v0) ? 1 : 0;
0x00086cc0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (a1 == 0) {
0x00086cc4 beqz a1, 0x86d5c | goto label_34;
| }
0x00086cc8 lw t9, -0x7f98(gp) | t9 = sym.log_get_max_level_realm;
0x00086ccc move a0, zero | a0 = 0;
0x00086cd0 bal 0x9b018 | sym_log_get_max_level_realm ();
0x00086cd4 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x00086cd8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00086cdc beqz v0, 0x86de0 | goto label_35;
| }
| label_5:
0x00086ce0 lw a0, 0x44(sp) | a0 = *(var_44h);
| label_4:
0x00086ce4 lw t9, -0x75f8(gp) | t9 = sym.sd_netlink_message_unref;
| if (a0 == 0) {
0x00086ce8 beqz a0, 0x86ad8 | goto label_3;
| }
0x00086cec bal 0x84db0 | sym_sd_netlink_message_unref ();
0x00086cf0 nop |
0x00086cf4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00086cf8 b 0x86ad8 | goto label_3;
| label_33:
0x00086cfc addiu a0, zero, -0x7a | a0 = -0x7a;
0x00086d00 lw a0, 0x44(sp) | a0 = *(var_44h);
| if (v0 != a0) {
0x00086d04 bne v0, a0, 0x86ce4 | goto label_4;
| }
0x00086d08 lw t9, -0x7f98(gp) | t9 = sym.log_get_max_level_realm;
0x00086d0c move a0, zero | a0 = 0;
0x00086d10 bal 0x9b018 | sym_log_get_max_level_realm ();
0x00086d14 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x00086d18 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00086d1c bnez v0, 0x86ce0 | goto label_5;
| }
0x00086d20 lhu v0, 4(fp) | v0 = *(arg_4h);
0x00086d24 lw t9, -0x7f68(gp) | t9 = sym.log_internal_realm;
0x00086d28 sw v0, 0x18(sp) | *(var_18h) = v0;
0x00086d2c lw v0, 0x3c(sp) | v0 = *(var_3ch);
0x00086d30 addiu a3, zero, 0x184 | a3 = aav.0x00000184;
0x00086d34 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00086d38 lw v0, 0x30(sp) | v0 = *(var_30h);
0x00086d3c move a1, zero | a1 = 0;
0x00086d40 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00086d44 lw v0, 0x34(sp) | v0 = *(var_34h);
0x00086d48 addiu a0, zero, 7 | a0 = 7;
0x00086d4c addiu a2, v0, -0x4055 | a2 = v0 + -0x4055;
0x00086d50 bal 0x9a158 | sym_log_internal_realm ();
0x00086d54 lw gp, 0x20(sp) | gp = *(var_20h);
0x00086d58 b 0x86ce0 | goto label_5;
| label_34:
0x00086d5c lw t9, -0x74b0(gp) | t9 = sym.message_new_empty;
0x00086d60 addiu a1, sp, 0x44 | a1 = sp + 0x44;
0x00086d64 move a0, s0 | a0 = s0;
0x00086d68 bal 0x84cfc | sym_message_new_empty ();
0x00086d6c move a2, v0 | a2 = v0;
0x00086d70 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00086d74 bltz v0, 0x86e30 | goto label_36;
| }
0x00086d78 lw s6, 0x44(sp) | s6 = *(var_44h);
0x00086d7c lw v0, 0x40(sp) | v0 = *(var_40h);
0x00086d80 lw t9, -0x793c(gp) | t9 = sym.memdup;
0x00086d84 lbu a0, 0x214(s6) | a0 = *(s6);
0x00086d88 sltu v0, zero, v0 | v0 = (0 < v0) ? 1 : 0;
0x00086d8c ins a0, v0, 1, 1 | __asm ("ins a0, v0, 1, 1");
0x00086d90 sb a0, 0x214(s6) | *(s6) = a0;
0x00086d94 lw a1, (fp) | a1 = *(fp);
0x00086d98 move a0, fp | a0 = fp;
0x00086d9c bal 0x888ec | sym_memdup ();
0x00086da0 lw a0, 0x44(sp) | a0 = *(var_44h);
0x00086da4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00086da8 sw v0, 0xc(s6) | *((s6 + 3)) = v0;
0x00086dac lw v0, 0xc(a0) | v0 = *((a0 + 3));
0x00086db0 lw t9, -0x7494(gp) | t9 = sym.sd_netlink_message_rewind;
| if (v0 == 0) {
0x00086db4 beqz v0, 0x86e94 | goto label_37;
| }
0x00086db8 bal 0x85780 | sym_sd_netlink_message_rewind ();
0x00086dbc nop |
0x00086dc0 move a2, v0 | a2 = v0;
0x00086dc4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00086dc8 bltz v0, 0x86e30 | goto label_36;
| }
0x00086dcc lw v0, 0x44(sp) | v0 = *(var_44h);
| if (s2 != 0) {
0x00086dd0 beqz s2, 0x86dd8 |
0x00086dd4 sw s2, 0x218(v0) | *(v0) = s2;
| }
0x00086dd8 move s2, v0 | s2 = v0;
0x00086ddc b 0x86ad8 | goto label_3;
| label_35:
0x00086de0 lw v0, 0x38(sp) | v0 = *(var_38h);
0x00086de4 lw t9, -0x7f68(gp) | t9 = sym.log_internal_realm;
0x00086de8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00086dec lw v0, 0x30(sp) | v0 = *(var_30h);
0x00086df0 addiu a3, zero, 0x18b | a3 = 0x18b;
0x00086df4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00086df8 lw v0, 0x34(sp) | v0 = *(var_34h);
0x00086dfc move a1, zero | a1 = 0;
0x00086e00 addiu a2, v0, -0x4055 | a2 = v0 + -0x4055;
0x00086e04 addiu a0, zero, 7 | a0 = 7;
0x00086e08 bal 0x9a158 | sym_log_internal_realm ();
0x00086e0c lw gp, 0x20(sp) | gp = *(var_20h);
0x00086e10 b 0x86ce0 | goto label_5;
| label_32:
0x00086e14 lw t9, -0x7f98(gp) | t9 = sym.log_get_max_level_realm;
| if (s7 == 0) {
0x00086e18 beqz s7, 0x86918 | goto label_0;
| }
0x00086e1c b 0x86b30 | goto label_6;
0x00086e20 nop |
| label_25:
0x00086e24 sw zero, 0x28(sp) | *(var_28h) = 0;
0x00086e28 move s2, zero | s2 = 0;
0x00086e2c b 0x86a6c | goto label_7;
| label_36:
0x00086e30 lw a0, 0x44(sp) | a0 = *(var_44h);
0x00086e34 lw t9, -0x75f8(gp) | t9 = sym.sd_netlink_message_unref;
| if (a0 != 0) {
0x00086e38 bnez a0, 0x86e9c | goto label_38;
| }
| label_9:
0x00086e3c lw t9, -0x75f8(gp) | t9 = sym.sd_netlink_message_unref;
| if (s2 == 0) {
0x00086e40 beqz s2, 0x86980 | goto label_2;
| }
0x00086e44 sw a2, 0x28(sp) | *(var_28h) = a2;
0x00086e48 b 0x86b68 | goto label_8;
| label_22:
0x00086e4c lui a2, 0x3fff | a2 = 0x3fffffff;
0x00086e50 ori a2, a2, 0xffff |
0x00086e54 lw a0, 0x30(s0) | a0 = *((s0 + 12));
0x00086e58 sll v1, a1, 2 | v1 = a1 << 2;
0x00086e5c addu v0, v0, a2 | v0 += a2;
0x00086e60 subu a2, v0, a1 | __asm ("subu a2, v0, a1");
0x00086e64 lw t9, -0x6dc0(gp) | t9 = sym.imp.memmove;
0x00086e68 addiu a1, v1, 4 | a1 = v1 + 4;
0x00086e6c sll a2, a2, 2 | a2 <<= 2;
0x00086e70 addu a1, a0, a1 | a1 = a0 + a1;
0x00086e74 addu a0, a0, v1 | a0 += v1;
0x00086e78 jalr t9 | t9 ();
0x00086e7c lw v0, 0x34(s0) | v0 = *((s0 + 13));
0x00086e80 lw gp, 0x20(sp) | gp = *(var_20h);
0x00086e84 addiu v0, v0, -1 | v0 += -1;
0x00086e88 addiu a2, zero, 1 | a2 = 1;
0x00086e8c sw v0, 0x34(s0) | *((s0 + 13)) = v0;
0x00086e90 b 0x86980 | goto label_2;
| label_37:
0x00086e94 addiu a2, zero, -0xc | a2 = -0xc;
0x00086e98 lw t9, -0x75f8(gp) | t9 = sym.sd_netlink_message_unref;
| label_38:
0x00086e9c sw a2, 0x28(sp) | *(var_28h) = a2;
0x00086ea0 bal 0x84db0 | sym_sd_netlink_message_unref ();
0x00086ea4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00086ea8 lw a2, 0x28(sp) | a2 = *(var_28h);
0x00086eac b 0x86e3c | goto label_9;
| label_27:
0x00086eb0 lw v0, (fp) | v0 = *(fp);
0x00086eb4 move s2, zero | s2 = 0;
0x00086eb8 b 0x86a54 | goto label_10;
| label_15:
0x00086ebc addiu a2, zero, -0xc | a2 = -0xc;
0x00086ec0 b 0x86980 | goto label_2;
| label_16:
0x00086ec4 addiu a2, zero, -5 | a2 = -5;
0x00086ec8 b 0x86980 | goto label_2;
| label_26:
0x00086ecc sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00086ed0 sw zero, 0x28(sp) | *(var_28h) = 0;
0x00086ed4 move s2, zero | s2 = 0;
0x00086ed8 b 0x86a6c | goto label_7;
| label_23:
0x00086edc lw t9, -0x6e2c(gp) | t9 = sym.imp.__stack_chk_fail;
0x00086ee0 jalr t9 | t9 ();
0x00086ee4 nop |
| label_29:
0x00086ee8 move s1, zero | s1 = 0;
0x00086eec b 0x86b2c | goto label_11;
| label_28:
0x00086ef0 addiu v0, zero, 1 | v0 = 1;
0x00086ef4 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00086ef8 move s1, zero | s1 = 0;
0x00086efc b 0x86b2c | goto label_11;
| }
[*] Function system used 26 times udevadm