[*] Binary protection state of systemd-udevd
Full RELRO Canary found NX disabled PIE enabled RPATH No RUNPATH No Symbols
[*] Function strcpy tear down of systemd-udevd
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd-udevd @ 0x1c67c */
| #include <stdint.h>
|
; (fcn) fcn.0001c67c () | void fcn_0001c67c () {
0x0001c67c lui gp, 0xb |
0x0001c680 addiu gp, gp, -0x550c |
0x0001c684 addu gp, gp, t9 | gp += t9;
0x0001c688 addiu sp, sp, -0x450 |
0x0001c68c lw a1, -0x7fc4(gp) | a1 = *(gp);
0x0001c690 sw s2, 0x434(sp) | *(var_434h) = s2;
0x0001c694 lw s2, -0x71f0(gp) | s2 = *((gp - 7292));
0x0001c698 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x0001c69c sw s3, 0x438(sp) | *(var_438h) = s3;
0x0001c6a0 sw ra, 0x44c(sp) | *(var_44ch) = ra;
0x0001c6a4 sw s7, 0x448(sp) | *(var_448h) = s7;
0x0001c6a8 sw s6, 0x444(sp) | *(var_444h) = s6;
0x0001c6ac sw s5, 0x440(sp) | *(var_440h) = s5;
0x0001c6b0 sw s4, 0x43c(sp) | *(var_43ch) = s4;
0x0001c6b4 sw s1, 0x430(sp) | *(var_430h) = s1;
0x0001c6b8 sw s0, 0x42c(sp) | *(var_42ch) = s0;
0x0001c6bc lw v0, (s2) | v0 = *(s2);
0x0001c6c0 lw t9, -0x716c(gp) | t9 = sym.imp.strstr;
| /* esilref: '/*/' */
0x0001c6c4 addiu a1, a1, -0x5134 | a1 += -0x5134;
0x0001c6c8 sw v0, 0x424(sp) | *(var_424h) = v0;
0x0001c6cc move s3, a0 | s3 = a0;
0x0001c6d0 jalr t9 | t9 ();
0x0001c6d4 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0001c6d8 beqz v0, 0x1c838 | goto label_6;
| }
0x0001c6dc lw t9, -0x7d2c(gp) | t9 = sym.strnpcpy;
0x0001c6e0 subu a3, v0, s3 | __asm ("subu a3, v0, s3");
0x0001c6e4 addiu s4, sp, 0x24 | s4 = sp + 0x24;
0x0001c6e8 addiu a3, a3, 1 | a3++;
0x0001c6ec move a2, s3 | a2 = s3;
0x0001c6f0 addiu a1, zero, 0x400 | a1 = 0x400;
0x0001c6f4 addiu a0, sp, 0x20 | a0 = sp + 0x20;
0x0001c6f8 sw s4, 0x20(sp) | *(var_20h_3) = s4;
0x0001c6fc move s0, v0 | s0 = v0;
0x0001c700 jalr t9 | t9 ();
0x0001c704 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001c708 move a0, s4 | a0 = s4;
0x0001c70c lw t9, -0x7524(gp) | t9 = *((gp - 7497));
0x0001c710 move s7, v0 | s7 = v0;
0x0001c714 jalr t9 | t9 ();
0x0001c718 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001c71c lw t9, -0x73b8(gp) | t9 = sym.imp.__errno_location;
0x0001c720 move s1, v0 | s1 = v0;
0x0001c724 jalr t9 | t9 ();
0x0001c728 move s5, v0 | s5 = v0;
0x0001c72c lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (s1 == 0) {
0x0001c730 beqz s1, 0x1c840 | goto label_7;
| }
0x0001c734 lw t9, -0x7498(gp) | t9 = sym.imp.readdir64;
0x0001c738 sw zero, (v0) | *(v0) = 0;
0x0001c73c move a0, s1 | a0 = s1;
0x0001c740 jalr t9 | t9 ();
0x0001c744 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0001c748 beqz v0, 0x1c7cc | goto label_8;
| }
0x0001c74c addiu v1, zero, 0x400 | v1 = 0x400;
0x0001c750 addiu s6, zero, 0x2e | s6 = 0x2e;
0x0001c754 addiu s0, s0, 2 | s0 += 2;
0x0001c758 subu s7, v1, s7 | __asm ("subu s7, v1, s7");
| do {
0x0001c75c lb v1, 0x13(v0) | v1 = *((v0 + 19));
0x0001c760 lw t9, -0x7c64(gp) | t9 = sym.strscpyl;
| if (v1 != s6) {
0x0001c764 beq v1, s6, 0x1c7b4 |
0x0001c768 lw a0, 0x20(sp) | a0 = *(var_20h_3);
0x0001c76c move a3, s0 | a3 = s0;
0x0001c770 addiu a2, v0, 0x13 | a2 = v0 + 0x13;
0x0001c774 move a1, s7 | a1 = s7;
0x0001c778 sw zero, 0x10(sp) | *(var_d18h) = 0;
0x0001c77c jalr t9 | t9 ();
0x0001c780 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001c784 lw t9, -0x71c4(gp) | t9 = sym.imp.dirfd;
0x0001c788 move a0, s1 | a0 = s1;
0x0001c78c jalr t9 | t9 ();
0x0001c790 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001c794 lw a1, 0x20(sp) | a1 = *(var_20h_3);
0x0001c798 move a3, zero | a3 = 0;
0x0001c79c lw t9, -0x71ec(gp) | t9 = sym.imp.faccessat;
0x0001c7a0 move a2, zero | a2 = 0;
0x0001c7a4 move a0, v0 | a0 = v0;
0x0001c7a8 jalr t9 | t9 ();
0x0001c7ac lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 >= 0) {
0x0001c7b0 bgez v0, 0x1c7d4 | goto label_9;
| }
| }
0x0001c7b4 lw t9, -0x7498(gp) | t9 = sym.imp.readdir64;
0x0001c7b8 sw zero, (s5) | *(s5) = 0;
0x0001c7bc move a0, s1 | a0 = s1;
0x0001c7c0 jalr t9 | t9 ();
0x0001c7c4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001c7c8 bnez v0, 0x1c75c |
| } while (v0 != 0);
| label_8:
0x0001c7cc addiu s0, zero, -2 | s0 = -2;
0x0001c7d0 b 0x1c7ec | goto label_10;
| label_9:
0x0001c7d4 lw t9, -0x72a8(gp) | t9 = sym.imp.strcpy
0x0001c7d8 move a1, s4 | a1 = s4;
0x0001c7dc move a0, s3 | a0 = s3;
0x0001c7e0 jalr t9 | t9 ();
0x0001c7e4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001c7e8 move s0, zero | s0 = 0;
| label_10:
0x0001c7ec lw t9, -0x751c(gp) | t9 = sym.imp.closedir;
0x0001c7f0 move a0, s1 | a0 = s1;
0x0001c7f4 jalr t9 | t9 ();
0x0001c7f8 lw gp, 0x18(sp) | gp = *(var_18h_2);
| do {
| label_0:
0x0001c7fc lw a0, 0x424(sp) | a0 = *(var_424h);
0x0001c800 lw v1, (s2) | v1 = *(s2);
0x0001c804 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x0001c808 bne a0, v1, 0x1c84c | goto label_11;
| }
0x0001c80c lw ra, 0x44c(sp) | ra = *(var_44ch);
0x0001c810 lw s7, 0x448(sp) | s7 = *(var_448h);
0x0001c814 lw s6, 0x444(sp) | s6 = *(var_444h);
0x0001c818 lw s5, 0x440(sp) | s5 = *(var_440h);
0x0001c81c lw s4, 0x43c(sp) | s4 = *(var_43ch);
0x0001c820 lw s3, 0x438(sp) | s3 = *(var_438h);
0x0001c824 lw s2, 0x434(sp) | s2 = *(var_434h);
0x0001c828 lw s1, 0x430(sp) | s1 = *(var_430h);
0x0001c82c lw s0, 0x42c(sp) | s0 = *(var_42ch);
0x0001c830 addiu sp, sp, 0x450 |
0x0001c834 jr ra | return v0;
| label_6:
0x0001c838 move s0, zero | s0 = 0;
0x0001c83c b 0x1c7fc |
| } while (1);
| label_7:
0x0001c840 lw s0, (v0) | s0 = *(v0);
0x0001c844 negu s0, s0 | __asm ("negu s0, s0");
0x0001c848 b 0x1c7fc | goto label_0;
| label_11:
0x0001c84c lw t9, -0x7230(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001c850 jalr t9 | t9 ();
0x0001c854 nop |
0x0001c858 lui gp, 0xb |
0x0001c85c addiu gp, gp, -0x56e8 |
0x0001c860 addu gp, gp, t9 | gp += t9;
0x0001c864 addiu sp, sp, -0xd08 |
0x0001c868 lw v0, -0x71f0(gp) | v0 = *((gp - 7292));
0x0001c86c sw s0, 0xce0(sp) | *(var_ce0h) = s0;
0x0001c870 sw gp, 0x28(sp) | *(var_28h_2) = gp;
0x0001c874 sw ra, 0xd04(sp) | *(var_d04h) = ra;
0x0001c878 sw fp, 0xd00(sp) | *(var_d00h) = fp;
0x0001c87c sw s7, 0xcfc(sp) | *(var_cfch) = s7;
0x0001c880 sw s6, 0xcf8(sp) | *(var_cf8h) = s6;
0x0001c884 sw s5, 0xcf4(sp) | *(var_cf4h) = s5;
0x0001c888 sw s4, 0xcf0(sp) | *(var_cf0h) = s4;
0x0001c88c sw s3, 0xcec(sp) | *(var_cech) = s3;
0x0001c890 sw s2, 0xce8(sp) | *(var_ce8h) = s2;
0x0001c894 sw s1, 0xce4(sp) | *(var_ce4h) = s1;
0x0001c898 sw v0, 0x30(sp) | *(var_30h) = v0;
0x0001c89c lw v0, (v0) | v0 = *(v0);
0x0001c8a0 sw a3, 0xd14(sp) | *(var_d14h) = a3;
0x0001c8a4 lw s0, 0xd18(sp) | s0 = *(var_d18h);
0x0001c8a8 sw v0, 0xcdc(sp) | *(var_cdch) = v0;
0x0001c8ac lw v0, 0xd14(sp) | v0 = *(var_d14h);
| if (a0 == 0) {
0x0001c8b0 beqz a0, 0x1cc54 | goto label_12;
| }
0x0001c8b4 addiu v1, zero, -1 | v1 = -1;
0x0001c8b8 and v0, a2, v0 | v0 = a2 & v0;
0x0001c8bc and v0, v0, a1 | v0 &= a1;
0x0001c8c0 move s2, a0 | s2 = a0;
0x0001c8c4 move s6, a1 | s6 = a1;
0x0001c8c8 move s5, a2 | s5 = a2;
| if (v0 == v1) {
0x0001c8cc bne v0, v1, 0x1c8d8 |
| if (s0 == 0) {
0x0001c8d0 beql s0, zero, 0x1cb10 | goto label_13;
| }
0x0001c8d4 move s2, zero | s2 = 0;
| }
0x0001c8d8 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x0001c8dc lw t9, -0x7c64(gp) | t9 = sym.strscpyl;
0x0001c8e0 addiu s1, sp, 0xdc | s1 = sp + 0xdc;
0x0001c8e4 move a3, s2 | a3 = s2;
| /* esilref: '/dev/' */
0x0001c8e8 addiu a2, a2, 0x5378 | a2 += 0x5378;
0x0001c8ec addiu a1, zero, 0x400 | a1 = 0x400;
0x0001c8f0 move a0, s1 | a0 = s1;
0x0001c8f4 sw zero, 0x10(sp) | *(var_10h_2) = 0;
0x0001c8f8 jalr t9 | t9 ();
0x0001c8fc lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001c900 addiu a2, sp, 0x38 | a2 = sp + 0x38;
0x0001c904 move a1, s1 | a1 = s1;
0x0001c908 lw t9, -0x74dc(gp) | t9 = sym.imp.__xstat64;
0x0001c90c addiu a0, zero, 3 | a0 = 3;
0x0001c910 jalr t9 | t9 ();
0x0001c914 lw gp, 0x28(sp) | gp = *(var_28h_2);
| if (v0 < 0) {
0x0001c918 bltz v0, 0x1cac0 | goto label_14;
| }
0x0001c91c lw v0, 0x50(sp) | v0 = *(var_50h);
0x0001c920 addiu v1, zero, 0x2000 | v1 = 0x2000;
0x0001c924 andi v0, v0, 0xb000 | v0 &= 0xb000;
0x0001c928 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
| if (v0 != v1) {
0x0001c92c beq v0, v1, 0x1c98c |
0x0001c930 addiu a0, zero, 1 | a0 = 1;
0x0001c934 jalr t9 | t9 ();
0x0001c938 slti v0, v0, 4 | v0 = (v0 < 4) ? 1 : 0;
0x0001c93c lw gp, 0x28(sp) | gp = *(var_28h_2);
| if (v0 != 0) {
0x0001c940 bnez v0, 0x1cb0c | goto label_15;
| }
0x0001c944 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0001c948 lw a2, -0x7fc4(gp) | a2 = *(gp);
| /* str._s_is_neither_block_nor_character_device__ignoring. */
0x0001c94c addiu v0, v0, -0x5118 | v0 += -0x5118;
0x0001c950 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0001c954 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0001c958 lw t9, -0x7fc8(gp) | t9 = sym.log_internal_realm;
| /* esilref: 'apply_static_dev_perms' */
0x0001c95c addiu v0, v0, -0x3d24 | v0 += -0x3d24;
0x0001c960 sw s1, 0x18(sp) | *(var_18h_3) = s1;
0x0001c964 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0001c968 addiu a3, zero, 0x8e8 | a3 = 0x8e8;
| /* esilref: 'src/udev/udev-rules.c' */
0x0001c96c addiu a2, a2, -0x5321 | a2 += -0x5321;
0x0001c970 move a1, zero | a1 = 0;
0x0001c974 addiu a0, zero, 0x404 | a0 = 0x404;
0x0001c978 jalr t9 | t9 ();
0x0001c97c move s2, zero | s2 = 0;
0x0001c980 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001c984 move s0, zero | s0 = 0;
0x0001c988 b 0x1cb14 | goto label_2;
| }
| if (s0 == 0) {
0x0001c98c beql s0, zero, 0x1cbb4 | goto label_16;
| }
0x0001c990 move s2, zero | s2 = 0;
0x0001c994 lw v0, (s0) | v0 = *(s0);
0x0001c998 lw a1, -0x7fc4(gp) | a1 = *(gp);
| if (v0 == 0) {
0x0001c99c beqz v0, 0x1cbb0 | goto label_17;
| }
0x0001c9a0 lw t9, -0x7c60(gp) | t9 = sym.xescape_full;
0x0001c9a4 move a0, s2 | a0 = s2;
0x0001c9a8 move a3, zero | a3 = 0;
0x0001c9ac addiu a2, zero, -1 | a2 = -1;
| /* esilref: '/.' */
0x0001c9b0 addiu a1, a1, -0x5048 | a1 += -0x5048;
0x0001c9b4 jalr t9 | t9 ();
0x0001c9b8 move s2, v0 | s2 = v0;
0x0001c9bc lw gp, 0x28(sp) | gp = *(var_28h_2);
| if (v0 == 0) {
0x0001c9c0 beqz v0, 0x1ce40 | goto label_18;
| }
0x0001c9c4 lw a3, (s0) | a3 = *(s0);
0x0001c9c8 lw s4, -0x7fc4(gp) | s4 = *(gp);
| if (a3 == 0) {
0x0001c9cc beqz a3, 0x1cbb4 | goto label_16;
| }
0x0001c9d0 lw s3, -0x7fc4(gp) | s3 = *(gp);
0x0001c9d4 addiu s7, sp, 0x4dc | s7 = sp + aav.0x000004dc;
0x0001c9d8 addiu s4, s4, 0x35c4 | s4 += 0x35c4;
| /* str._run_udev_static_node_tags_ */
0x0001c9dc addiu s3, s3, -0x50e4 | s3 += -0x50e4;
0x0001c9e0 addiu fp, sp, 0x8dc | fp = sp + 0x8dc;
0x0001c9e4 b 0x1ca00 |
| while (v0 >= 0) {
| label_1:
0x0001c9e8 addiu s0, s0, 4 | s0 += 4;
0x0001c9ec and v1, s6, s5 | v1 = s6 & s5;
| if (s0 == 0) {
0x0001c9f0 beqz s0, 0x1cbb8 | goto label_19;
| }
0x0001c9f4 lw a3, (s0) | a3 = *(s0);
0x0001c9f8 addiu v0, zero, -1 | v0 = -1;
| if (a3 == 0) {
0x0001c9fc beqz a3, 0x1cbbc | goto label_20;
| }
0x0001ca00 lw t9, -0x7c64(gp) | t9 = sym.strscpyl;
0x0001ca04 move a2, s3 | a2 = s3;
0x0001ca08 addiu a1, zero, 0x400 | a1 = 0x400;
0x0001ca0c move a0, s7 | a0 = s7;
0x0001ca10 sw zero, 0x14(sp) | *(var_14h) = 0;
0x0001ca14 sw s4, 0x10(sp) | *(var_10h_2) = s4;
0x0001ca18 jalr t9 | t9 ();
0x0001ca1c lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001ca20 addiu a1, zero, 0x1ed | a1 = 0x1ed;
0x0001ca24 lw t9, -0x7c5c(gp) | t9 = sym.mkdir_p;
0x0001ca28 move a0, s7 | a0 = s7;
0x0001ca2c jalr t9 | t9 ();
0x0001ca30 lw gp, 0x28(sp) | gp = *(var_28h_2);
| if (v0 < 0) {
0x0001ca34 bltz v0, 0x1cc80 | goto label_21;
| }
0x0001ca38 lw t9, -0x7c64(gp) | t9 = sym.strscpyl;
0x0001ca3c move a3, s2 | a3 = s2;
0x0001ca40 move a2, s7 | a2 = s7;
0x0001ca44 addiu a1, zero, 0x400 | a1 = 0x400;
0x0001ca48 move a0, fp | a0 = fp;
0x0001ca4c sw zero, 0x10(sp) | *(var_10h_2) = 0;
0x0001ca50 jalr t9 | t9 ();
0x0001ca54 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001ca58 move a1, fp | a1 = fp;
0x0001ca5c lw t9, -0x7460(gp) | t9 = sym.imp.symlink;
0x0001ca60 move a0, s1 | a0 = s1;
0x0001ca64 jalr t9 | t9 ();
0x0001ca68 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001ca6c bgez v0, 0x1c9e8 |
| }
0x0001ca70 lw t9, -0x73b8(gp) | t9 = sym.imp.__errno_location;
0x0001ca74 jalr t9 | t9 ();
0x0001ca78 nop |
0x0001ca7c lw a1, (v0) | a1 = *(v0);
0x0001ca80 addiu v0, zero, 0x11 | v0 = 0x11;
0x0001ca84 lw gp, 0x28(sp) | gp = *(var_28h_2);
| if (a1 == v0) {
0x0001ca88 beq a1, v0, 0x1c9e8 | goto label_1;
| }
0x0001ca8c lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x0001ca90 sw a1, 0x34(sp) | *(var_34h) = a1;
0x0001ca94 addiu a0, zero, 1 | a0 = 1;
0x0001ca98 jalr t9 | t9 ();
0x0001ca9c slti v0, v0, 3 | v0 = (v0 < 3) ? 1 : 0;
0x0001caa0 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001caa4 lw a1, 0x34(sp) | a1 = *(var_34h);
| if (v0 == 0) {
0x0001caa8 beqz v0, 0x1cdfc | goto label_22;
| }
| if (a1 < 0) {
| label_3:
0x0001caac bltzl a1, 0x1cce4 | goto label_23;
| }
0x0001cab0 negu a1, a1 | __asm ("negu a1, a1");
0x0001cab4 andi a1, a1, 0xff | a1 &= 0xff;
0x0001cab8 negu s0, a1 | __asm ("negu s0, a1");
0x0001cabc b 0x1cb14 | goto label_2;
| label_14:
0x0001cac0 lw t9, -0x73b8(gp) | t9 = sym.imp.__errno_location;
0x0001cac4 jalr t9 | t9 ();
0x0001cac8 nop |
0x0001cacc lw s0, (v0) | s0 = *(v0);
0x0001cad0 addiu v0, zero, 2 | v0 = 2;
0x0001cad4 lw gp, 0x28(sp) | gp = *(var_28h_2);
| if (s0 != v0) {
0x0001cad8 beq s0, v0, 0x1cb0c |
0x0001cadc lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x0001cae0 addiu a0, zero, 1 | a0 = 1;
0x0001cae4 jalr t9 | t9 ();
0x0001cae8 slti v0, v0, 3 | v0 = (v0 < 3) ? 1 : 0;
0x0001caec lw gp, 0x28(sp) | gp = *(var_28h_2);
| if (v0 == 0) {
0x0001caf0 beqz v0, 0x1cb68 | goto label_24;
| }
| if (s0 >= 0) {
0x0001caf4 bltzl s0, 0x1cafc |
0x0001caf8 negu s0, s0 | __asm ("negu s0, s0");
| }
0x0001cafc andi s0, s0, 0xff | s0 &= 0xff;
0x0001cb00 negu s0, s0 | __asm ("negu s0, s0");
0x0001cb04 move s2, zero | s2 = 0;
0x0001cb08 b 0x1cb14 |
| } else {
| label_15:
0x0001cb0c move s2, zero | s2 = 0;
| label_13:
0x0001cb10 move s0, zero | s0 = 0;
| }
| do {
| label_2:
0x0001cb14 lw t9, -0x71d0(gp) | t9 = *((gp - 7284));
0x0001cb18 move a0, s2 | a0 = s2;
0x0001cb1c jalr t9 | t9 ();
0x0001cb20 lw v0, 0x30(sp) | v0 = *(var_30h);
0x0001cb24 lw a0, 0xcdc(sp) | a0 = *(var_cdch);
0x0001cb28 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001cb2c lw v1, (v0) | v1 = *(v0);
0x0001cb30 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x0001cb34 bne a0, v1, 0x1ce6c | goto label_25;
| }
0x0001cb38 lw ra, 0xd04(sp) | ra = *(var_d04h);
0x0001cb3c lw fp, 0xd00(sp) | fp = *(var_d00h);
0x0001cb40 lw s7, 0xcfc(sp) | s7 = *(var_cfch);
0x0001cb44 lw s6, 0xcf8(sp) | s6 = *(var_cf8h);
0x0001cb48 lw s5, 0xcf4(sp) | s5 = *(var_cf4h);
0x0001cb4c lw s4, 0xcf0(sp) | s4 = *(var_cf0h);
0x0001cb50 lw s3, 0xcec(sp) | s3 = *(var_cech);
0x0001cb54 lw s2, 0xce8(sp) | s2 = *(var_ce8h);
0x0001cb58 lw s1, 0xce4(sp) | s1 = *(var_ce4h);
0x0001cb5c lw s0, 0xce0(sp) | s0 = *(var_ce0h);
0x0001cb60 addiu sp, sp, 0xd08 |
0x0001cb64 jr ra | return v0;
| label_24:
0x0001cb68 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0001cb6c lw a2, -0x7fc4(gp) | a2 = *(gp);
| /* str.Failed_to_stat__s:__m */
0x0001cb70 addiu v0, v0, -0x5130 | v0 += -0x5130;
0x0001cb74 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0001cb78 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0001cb7c lw t9, -0x7fc8(gp) | t9 = sym.log_internal_realm;
| /* esilref: 'apply_static_dev_perms' */
0x0001cb80 addiu v0, v0, -0x3d24 | v0 += -0x3d24;
0x0001cb84 move a1, s0 | a1 = s0;
0x0001cb88 sw s1, 0x18(sp) | *(var_18h_3) = s1;
0x0001cb8c sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0001cb90 addiu a3, zero, 0x8e3 | a3 = 0x8e3;
| /* esilref: 'src/udev/udev-rules.c' */
0x0001cb94 addiu a2, a2, -0x5321 | a2 += -0x5321;
0x0001cb98 addiu a0, zero, 0x403 | a0 = 0x403;
0x0001cb9c jalr t9 | t9 ();
0x0001cba0 move s0, v0 | s0 = v0;
0x0001cba4 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001cba8 move s2, zero | s2 = 0;
0x0001cbac b 0x1cb14 |
| } while (1);
| label_17:
0x0001cbb0 move s2, zero | s2 = 0;
| label_16:
0x0001cbb4 and v1, s6, s5 | v1 = s6 & s5;
| label_19:
0x0001cbb8 addiu v0, zero, -1 | v0 = -1;
| if (v1 == v0) {
| label_20:
0x0001cbbc beql v1, v0, 0x1cdec | goto label_26;
| }
0x0001cbc0 lw v0, 0xd14(sp) | v0 = *(var_d14h);
0x0001cbc4 lw v1, 0xd14(sp) | v1 = *(var_d14h);
0x0001cbc8 lw t9, -0x7cec(gp) | t9 = sym.uid_is_valid;
| if (v1 == v0) {
0x0001cbcc beq v1, v0, 0x1cd8c | goto label_27;
| }
| label_4:
0x0001cbd0 lw t9, -0x7cec(gp) | t9 = sym.uid_is_valid;
| label_5:
0x0001cbd4 move a0, s6 | a0 = s6;
0x0001cbd8 jalr t9 | t9 ();
0x0001cbdc lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001cbe0 move a0, s5 | a0 = s5;
0x0001cbe4 lw t9, -0x7cec(gp) | t9 = sym.uid_is_valid;
| if (v0 != 0) {
0x0001cbe8 movz s6, zero, v0 | s6 = 0;
| }
0x0001cbec jalr t9 | t9 ();
0x0001cbf0 lw gp, 0x28(sp) | gp = *(var_28h_2);
| if (v0 != 0) {
0x0001cbf4 movz s5, zero, v0 | s5 = 0;
| }
0x0001cbf8 lw a1, 0xd14(sp) | a1 = *(var_d14h);
0x0001cbfc lw t9, -0x7c7c(gp) | t9 = sym.chmod_and_chown;
0x0001cc00 move a3, s5 | a3 = s5;
0x0001cc04 move a2, s6 | a2 = s6;
0x0001cc08 move a0, s1 | a0 = s1;
0x0001cc0c jalr t9 | t9 ();
0x0001cc10 lw gp, 0x28(sp) | gp = *(var_28h_2);
| if (v0 < 0) {
0x0001cc14 bltz v0, 0x1ccb0 | goto label_28;
| }
0x0001cc18 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x0001cc1c addiu a0, zero, 1 | a0 = 1;
0x0001cc20 jalr t9 | t9 ();
0x0001cc24 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x0001cc28 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001cc2c beqz v0, 0x1cd3c |
| while (1) {
0x0001cc30 lw t9, -0x7174(gp) | t9 = sym.imp.utimensat;
0x0001cc34 move a3, zero | a3 = 0;
0x0001cc38 move a2, zero | a2 = 0;
0x0001cc3c move a1, s1 | a1 = s1;
0x0001cc40 addiu a0, zero, -0x64 | a0 = -0x64;
0x0001cc44 jalr t9 | t9 ();
0x0001cc48 move s0, zero | s0 = 0;
0x0001cc4c lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001cc50 b 0x1cb14 | goto label_2;
| label_12:
0x0001cc54 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0001cc58 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x0001cc5c lw a1, -0x7fc4(gp) | a1 = *(gp);
| /* str.apply_static_dev_perms */
0x0001cc60 addiu v0, v0, -0x3d0c | v0 += -0x3d0c;
0x0001cc64 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x0001cc68 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0001cc6c addiu a3, zero, 0x8db | a3 = 0x8db;
| /* esilref: 'src/udev/udev-rules.c' */
0x0001cc70 addiu a2, a2, -0x5321 | a2 += -0x5321;
| /* str.devnode */
0x0001cc74 addiu a1, a1, -0x643c | a1 += -0x643c;
0x0001cc78 addiu a0, zero, 1 | a0 = 1;
0x0001cc7c jalr t9 | t9 ();
| label_21:
0x0001cc80 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x0001cc84 sw v0, 0x34(sp) | *(var_34h) = v0;
0x0001cc88 addiu a0, zero, 1 | a0 = 1;
0x0001cc8c jalr t9 | t9 ();
0x0001cc90 slti v0, v0, 3 | v0 = (v0 < 3) ? 1 : 0;
0x0001cc94 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001cc98 lw a1, 0x34(sp) | a1 = *(var_34h);
| if (v0 == 0) {
0x0001cc9c beqz v0, 0x1cdac | goto label_29;
| }
0x0001cca0 negu s0, a1 | __asm ("negu s0, a1");
0x0001cca4 andi s0, s0, 0xff | s0 &= 0xff;
0x0001cca8 negu s0, s0 | __asm ("negu s0, s0");
0x0001ccac b 0x1cb14 | goto label_2;
| label_28:
0x0001ccb0 lw t9, -0x73b8(gp) | t9 = sym.imp.__errno_location;
0x0001ccb4 jalr t9 | t9 ();
0x0001ccb8 nop |
0x0001ccbc lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001ccc0 addiu a0, zero, 1 | a0 = 1;
0x0001ccc4 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x0001ccc8 lw s0, (v0) | s0 = *(v0);
0x0001cccc jalr t9 | t9 ();
0x0001ccd0 slti v0, v0, 3 | v0 = (v0 < 3) ? 1 : 0;
0x0001ccd4 lw gp, 0x28(sp) | gp = *(var_28h_2);
| if (v0 != 0) {
0x0001ccd8 beqz v0, 0x1ccf0 |
0x0001ccdc move a1, s0 | a1 = s0;
0x0001cce0 b 0x1caac | goto label_3;
| label_23:
0x0001cce4 andi a1, a1, 0xff | a1 &= 0xff;
0x0001cce8 negu s0, a1 | __asm ("negu s0, a1");
0x0001ccec b 0x1cb14 | goto label_2;
| }
0x0001ccf0 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0001ccf4 lw a2, -0x7fc4(gp) | a2 = *(gp);
| /* str.Failed_to_chown__s__u__u:__m */
0x0001ccf8 addiu v0, v0, -0x5088 | v0 += -0x5088;
0x0001ccfc sw v0, 0x14(sp) | *(var_14h) = v0;
0x0001cd00 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0001cd04 lw t9, -0x7fc8(gp) | t9 = sym.log_internal_realm;
| /* esilref: 'apply_static_dev_perms' */
0x0001cd08 addiu v0, v0, -0x3d24 | v0 += -0x3d24;
0x0001cd0c move a1, s0 | a1 = s0;
0x0001cd10 sw s5, 0x20(sp) | *(var_20h_2) = s5;
0x0001cd14 sw s6, 0x1c(sp) | *(var_1ch) = s6;
0x0001cd18 sw s1, 0x18(sp) | *(var_18h_3) = s1;
0x0001cd1c sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0001cd20 addiu a3, zero, 0x90e | a3 = 0x90e;
| /* esilref: 'src/udev/udev-rules.c' */
0x0001cd24 addiu a2, a2, -0x5321 | a2 += -0x5321;
0x0001cd28 addiu a0, zero, 0x403 | a0 = 0x403;
0x0001cd2c jalr t9 | t9 ();
0x0001cd30 move s0, v0 | s0 = v0;
0x0001cd34 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001cd38 b 0x1cb14 | goto label_2;
0x0001cd3c lw v0, 0xd14(sp) | v0 = *(var_d14h);
0x0001cd40 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x0001cd44 sw v0, 0x24(sp) | *(var_24h_3) = v0;
0x0001cd48 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0001cd4c lw t9, -0x7fc8(gp) | t9 = sym.log_internal_realm;
| /* str.chown__s__u:_u_with_mode__o */
0x0001cd50 addiu v0, v0, -0x5068 | v0 += -0x5068;
0x0001cd54 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0001cd58 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0001cd5c sw s5, 0x20(sp) | *(var_20h_2) = s5;
| /* esilref: 'apply_static_dev_perms' */
0x0001cd60 addiu v0, v0, -0x3d24 | v0 += -0x3d24;
0x0001cd64 sw s6, 0x1c(sp) | *(var_1ch) = s6;
0x0001cd68 sw s1, 0x18(sp) | *(var_18h_3) = s1;
0x0001cd6c sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0001cd70 addiu a3, zero, 0x910 | a3 = 0x910;
| /* esilref: 'src/udev/udev-rules.c' */
0x0001cd74 addiu a2, a2, -0x5321 | a2 += -0x5321;
0x0001cd78 move a1, zero | a1 = 0;
0x0001cd7c addiu a0, zero, 0x407 | a0 = 0x407;
0x0001cd80 jalr t9 | t9 ();
0x0001cd84 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001cd88 b 0x1cc30 |
| }
| label_27:
0x0001cd8c move a0, s5 | a0 = s5;
0x0001cd90 jalr t9 | t9 ();
0x0001cd94 addiu fp, zero, 0x1b0 | fp = aav.0x000001b0;
0x0001cd98 addiu v1, zero, 0x180 | v1 = aav.0x00000180;
| if (v0 == 0) {
0x0001cd9c movn v1, fp, v0 | v1 = fp;
| }
0x0001cda0 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001cda4 sw v1, 0xd14(sp) | *(var_d14h) = v1;
0x0001cda8 b 0x1cbd0 | goto label_4;
| label_29:
0x0001cdac lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0001cdb0 lw a2, -0x7fc4(gp) | a2 = *(gp);
| /* str.Failed_to_create__s:__m */
0x0001cdb4 addiu v0, v0, -0x50c8 | v0 += -0x50c8;
0x0001cdb8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0001cdbc lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0001cdc0 lw t9, -0x7fc8(gp) | t9 = sym.log_internal_realm;
| /* esilref: 'apply_static_dev_perms' */
0x0001cdc4 addiu v0, v0, -0x3d24 | v0 += -0x3d24;
0x0001cdc8 sw s7, 0x18(sp) | *(var_18h_3) = s7;
0x0001cdcc sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0001cdd0 addiu a3, zero, 0x8f7 | a3 = 0x8f7;
| /* esilref: 'src/udev/udev-rules.c' */
0x0001cdd4 addiu a2, a2, -0x5321 | a2 += -0x5321;
0x0001cdd8 addiu a0, zero, 0x403 | a0 = 0x403;
0x0001cddc jalr t9 | t9 ();
0x0001cde0 move s0, v0 | s0 = v0;
0x0001cde4 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001cde8 b 0x1cb14 | goto label_2;
| label_26:
0x0001cdec lw t9, -0x7cec(gp) | t9 = sym.uid_is_valid;
| if (v0 != v1) {
0x0001cdf0 bne v0, v1, 0x1cbd4 | goto label_5;
| }
0x0001cdf4 move s0, zero | s0 = 0;
0x0001cdf8 b 0x1cb14 | goto label_2;
| label_22:
0x0001cdfc lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0001ce00 lw a2, -0x7fc4(gp) | a2 = *(gp);
| /* str.Failed_to_create_symlink__s_____s:__m */
0x0001ce04 addiu v0, v0, -0x50b0 | v0 += -0x50b0;
0x0001ce08 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0001ce0c lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0001ce10 lw t9, -0x7fc8(gp) | t9 = sym.log_internal_realm;
| /* esilref: 'apply_static_dev_perms' */
0x0001ce14 addiu v0, v0, -0x3d24 | v0 += -0x3d24;
0x0001ce18 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x0001ce1c sw fp, 0x18(sp) | *(var_18h_3) = fp;
0x0001ce20 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0001ce24 addiu a3, zero, 0x8fd | a3 = 0x8fd;
| /* esilref: 'src/udev/udev-rules.c' */
0x0001ce28 addiu a2, a2, -0x5321 | a2 += -0x5321;
0x0001ce2c addiu a0, zero, 0x403 | a0 = 0x403;
0x0001ce30 jalr t9 | t9 ();
0x0001ce34 move s0, v0 | s0 = v0;
0x0001ce38 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001ce3c b 0x1cb14 | goto label_2;
| label_18:
0x0001ce40 lw a3, -0x7fc4(gp) | a3 = *(gp);
0x0001ce44 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x0001ce48 lw t9, -0x7e48(gp) | t9 = sym.log_oom_internal;
| /* esilref: 'apply_static_dev_perms' */
0x0001ce4c addiu a3, a3, -0x3d24 | a3 += -0x3d24;
0x0001ce50 addiu a2, zero, 0x8ef | a2 = 0x8ef;
| /* esilref: 'src/udev/udev-rules.c' */
0x0001ce54 addiu a1, a1, -0x5321 | a1 += -0x5321;
0x0001ce58 addiu a0, zero, 1 | a0 = 1;
0x0001ce5c jalr t9 | t9 ();
0x0001ce60 move s0, v0 | s0 = v0;
0x0001ce64 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0001ce68 b 0x1cb14 | goto label_2;
| label_25:
0x0001ce6c lw t9, -0x7230(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001ce70 jalr t9 | t9 ();
0x0001ce74 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd-udevd @ 0x40ce8 */
| #include <stdint.h>
|
; (fcn) fcn.00040ce8 () | void fcn_00040ce8 () {
0x00040ce8 lui gp, 8 |
0x00040cec addiu gp, gp, 0x6488 |
0x00040cf0 addu gp, gp, t9 | gp += t9;
0x00040cf4 addiu sp, sp, -0x68 |
0x00040cf8 sw s4, 0x50(sp) | *(var_50h) = s4;
0x00040cfc lw s4, -0x71f0(gp) | s4 = *((gp - 7292));
0x00040d00 sw fp, 0x60(sp) | *(var_60h) = fp;
0x00040d04 sw ra, 0x64(sp) | *(var_64h) = ra;
0x00040d08 sw s7, 0x5c(sp) | *(var_5ch) = s7;
0x00040d0c sw s6, 0x58(sp) | *(var_58h) = s6;
0x00040d10 sw s5, 0x54(sp) | *(var_54h) = s5;
0x00040d14 sw s3, 0x4c(sp) | *(var_4ch) = s3;
0x00040d18 sw s2, 0x48(sp) | *(var_48h) = s2;
0x00040d1c sw s1, 0x44(sp) | *(var_44h) = s1;
0x00040d20 sw s0, 0x40(sp) | *(var_40h) = s0;
0x00040d24 sw gp, 0x20(sp) | *(var_20h) = gp;
0x00040d28 move fp, sp | fp = sp;
0x00040d2c lw v0, (s4) | v0 = *(s4);
0x00040d30 sw v0, 0x3c(fp) | *(var_3ch) = v0;
0x00040d34 lw v0, -0x7fc4(gp) | v0 = *(gp);
| if (a0 == 0) {
0x00040d38 beqz a0, 0x4104c | goto label_2;
| }
0x00040d3c lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
| if (a1 == 0) {
0x00040d40 beqz a1, 0x41070 | goto label_3;
| }
0x00040d44 sw a1, 0x2c(fp) | *(var_2ch_2) = a1;
0x00040d48 move s3, a0 | s3 = a0;
0x00040d4c move a0, a1 | a0 = a1;
0x00040d50 jalr t9 | t9 ();
0x00040d54 lui a0, 0x40 | a0 = 0x400000;
| /* str._d:_d */
0x00040d58 addiu v1, v0, 0x10 | v1 = v0 + 0x10;
0x00040d5c addiu a0, a0, 1 | a0++;
0x00040d60 sltu v1, v1, a0 | v1 = (v1 < a0) ? 1 : 0;
0x00040d64 lw gp, 0x20(fp) | gp = *(var_20h);
0x00040d68 lw a1, 0x2c(fp) | a1 = *(var_2ch_2);
| if (v1 == 0) {
0x00040d6c beqz v1, 0x41098 | goto label_4;
| }
0x00040d70 lw a0, -0x7fc4(gp) | a0 = *(gp);
0x00040d74 addiu v0, v0, 0x17 | v0 += 0x17;
| /* str._run_udev_tags_ */
0x00040d78 addiu v1, a0, 0x3ba4 | v1 = a0 + 0x3ba4;
0x00040d7c srl v0, v0, 3 | v0 >>= 3;
0x00040d80 sll v0, v0, 3 | v0 <<= 3;
0x00040d84 subu sp, sp, v0 |
0x00040d88 lw t0, 0x3ba4(a0) | t0 = *((a0 + 3817));
0x00040d8c lw a3, 4(v1) | a3 = *((v1 + 1));
0x00040d90 lw a2, 8(v1) | a2 = *((v1 + 2));
0x00040d94 lw v0, 0xc(v1) | v0 = *((v1 + 3));
0x00040d98 lw t9, -0x72a8(gp) | t9 = sym.imp.strcpy
0x00040d9c sw t0, 0x20(sp) | *(var_20h) = t0;
0x00040da0 sw a3, 0x24(sp) | *(var_24h_2) = a3;
0x00040da4 sw a2, 0x28(sp) | *(var_28h_2) = a2;
0x00040da8 addiu a0, sp, 0x2f | a0 = sp + 0x2f;
0x00040dac sw v0, 0x2c(sp) | *(var_2ch_2) = v0;
0x00040db0 jalr t9 | t9 ();
0x00040db4 lw gp, 0x20(fp) | gp = *(var_20h);
0x00040db8 addiu s5, sp, 0x20 | s5 = sp + 0x20;
0x00040dbc lw t9, -0x7524(gp) | t9 = *((gp - 7497));
0x00040dc0 move a0, s5 | a0 = s5;
0x00040dc4 jalr t9 | t9 ();
0x00040dc8 lw gp, 0x20(fp) | gp = *(var_20h);
0x00040dcc lw t9, -0x73b8(gp) | t9 = sym.imp.__errno_location;
0x00040dd0 move s1, v0 | s1 = v0;
0x00040dd4 jalr t9 | t9 ();
0x00040dd8 move s2, v0 | s2 = v0;
0x00040ddc lw gp, 0x20(fp) | gp = *(var_20h);
| if (s1 == 0) {
0x00040de0 beqz s1, 0x40f40 | goto label_5;
| }
0x00040de4 lw t9, -0x7498(gp) | t9 = sym.imp.readdir64;
0x00040de8 sw zero, (v0) | *(v0) = 0;
0x00040dec move a0, s1 | a0 = s1;
0x00040df0 jalr t9 | t9 ();
0x00040df4 move s0, zero | s0 = 0;
0x00040df8 lw gp, 0x20(fp) | gp = *(var_20h);
| if (v0 == 0) {
0x00040dfc beqz v0, 0x40ee0 | goto label_6;
| }
0x00040e00 lw v1, -0x7a60(gp) | v1 = *(gp);
0x00040e04 lw s5, -0x7a60(gp) | s5 = *(gp);
| /* fcn.0003ffa0 */
0x00040e08 addiu v1, v1, -0x60 | v1 += -0x60;
0x00040e0c lw s6, -0x7a60(gp) | s6 = *(gp);
0x00040e10 sw v1, 0x2c(fp) | *(var_2ch_2) = v1;
0x00040e14 lw v1, -0x7a60(gp) | v1 = *(gp);
0x00040e18 lw s7, -0x7a60(gp) | s7 = *(gp);
| /* fcn.0003f990 */
0x00040e1c addiu s5, s5, -0x670 | s5 += -0x670;
| /* fcn.0003fccc */
0x00040e20 addiu s6, s6, -0x334 | s6 += -aav.0x00000334;
0x00040e24 sw v1, 0x28(fp) | *(var_28h_2) = v1;
| do {
0x00040e28 lb a0, 0x13(v0) | a0 = *((v0 + 19));
0x00040e2c addiu v1, zero, 0x2e | v1 = 0x2e;
0x00040e30 sw zero, 0x30(fp) | *(var_30h_2) = 0;
| if (a0 != v1) {
0x00040e34 beq a0, v1, 0x40ec8 |
0x00040e38 lw t9, -0x7c8c(gp) | t9 = sym.sd_device_new_from_device_id;
0x00040e3c addiu a1, v0, 0x13 | a1 = v0 + 0x13;
0x00040e40 addiu a0, fp, 0x30 | a0 = fp + 0x30;
0x00040e44 bal 0x4b5ac | sym_sd_device_new_from_device_id ();
0x00040e48 lw gp, 0x20(fp) | gp = *(var_20h);
| if (v0 < 0) {
0x00040e4c bltz v0, 0x40f78 | goto label_7;
| }
0x00040e50 lw t9, -0x7f74(gp) | t9 = sym.sd_device_get_subsystem;
0x00040e54 lw a0, 0x30(fp) | a0 = *(var_30h_2);
0x00040e58 addiu a1, fp, 0x34 | a1 = fp + 0x34;
0x00040e5c bal 0x4bb18 | sym_sd_device_get_subsystem ();
0x00040e60 lw gp, 0x20(fp) | gp = *(var_20h);
| if (v0 < 0) {
0x00040e64 bltz v0, 0x40fec | goto label_8;
| }
0x00040e68 lw a1, 0x34(fp) | a1 = *(var_34h_2);
0x00040e6c move t9, s5 | t9 = s5;
0x00040e70 move a0, s3 | a0 = s3;
0x00040e74 bal 0x3f990 | fcn_0003f990 ();
0x00040e78 lw gp, 0x20(fp) | gp = *(var_20h);
| if (v0 != 0) {
0x00040e7c beqz v0, 0x40eb0 |
0x00040e80 lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x00040e84 lw a0, 0x30(fp) | a0 = *(var_30h_2);
0x00040e88 addiu a1, fp, 0x38 | a1 = fp + 0x38;
0x00040e8c bal 0x4ac0c | sym_sd_device_get_sysname ();
0x00040e90 lw gp, 0x20(fp) | gp = *(var_20h);
| if (v0 < 0) {
0x00040e94 bltz v0, 0x40fec | goto label_8;
| }
0x00040e98 lw a1, 0x38(fp) | a1 = *(var_38h);
0x00040e9c move t9, s6 | t9 = s6;
0x00040ea0 move a0, s3 | a0 = s3;
0x00040ea4 bal 0x3fccc | fcn_0003fccc ();
0x00040ea8 lw gp, 0x20(fp) | gp = *(var_20h);
| if (v0 != 0) {
0x00040eac bnez v0, 0x40f88 | goto label_9;
| }
| }
| label_0:
0x00040eb0 lw a0, 0x30(fp) | a0 = *(var_30h_2);
0x00040eb4 lw t9, -0x7fdc(gp) | t9 = sym.sd_device_unref;
| if (a0 == 0) {
0x00040eb8 beqz a0, 0x40ec8 | goto label_10;
| }
0x00040ebc bal 0x48690 | sym_sd_device_unref ();
0x00040ec0 nop |
0x00040ec4 lw gp, 0x20(fp) | gp = *(var_20h);
| }
| label_10:
0x00040ec8 lw t9, -0x7498(gp) | t9 = sym.imp.readdir64;
0x00040ecc sw zero, (s2) | *(s2) = 0;
0x00040ed0 move a0, s1 | a0 = s1;
0x00040ed4 jalr t9 | t9 ();
0x00040ed8 lw gp, 0x20(fp) | gp = *(var_20h);
0x00040edc bnez v0, 0x40e28 |
| } while (v0 != 0);
| label_6:
0x00040ee0 lw v0, (s2) | v0 = *(s2);
| if (v0 <= 0) {
0x00040ee4 bgtzl v0, 0x40eec |
0x00040ee8 negu s0, v0 | __asm ("negu s0, v0");
| }
0x00040eec lw t9, -0x751c(gp) | t9 = sym.imp.closedir;
0x00040ef0 move a0, s1 | a0 = s1;
0x00040ef4 jalr t9 | t9 ();
0x00040ef8 lw gp, 0x20(fp) | gp = *(var_20h);
| do {
| label_1:
0x00040efc lw a0, 0x3c(fp) | a0 = *(var_3ch);
0x00040f00 lw v1, (s4) | v1 = *(s4);
0x00040f04 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00040f08 bne a0, v1, 0x410c4 | goto label_11;
| }
0x00040f0c move sp, fp |
0x00040f10 lw ra, 0x64(sp) | ra = *(var_64h);
0x00040f14 lw fp, 0x60(sp) | fp = *(var_60h);
0x00040f18 lw s7, 0x5c(sp) | s7 = *(var_5ch);
0x00040f1c lw s6, 0x58(sp) | s6 = *(var_58h);
0x00040f20 lw s5, 0x54(sp) | s5 = *(var_54h);
0x00040f24 lw s4, 0x50(sp) | s4 = *(var_50h);
0x00040f28 lw s3, 0x4c(sp) | s3 = *(var_4ch);
0x00040f2c lw s2, 0x48(sp) | s2 = *(var_48h);
0x00040f30 lw s1, 0x44(sp) | s1 = *(var_44h);
0x00040f34 lw s0, 0x40(sp) | s0 = *(var_40h);
0x00040f38 addiu sp, sp, 0x68 |
0x00040f3c jr ra | return v0;
| label_5:
0x00040f40 lw s0, (v0) | s0 = *(v0);
0x00040f44 addiu v0, zero, 2 | v0 = 2;
0x00040f48 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
| if (s0 == v0) {
0x00040f4c beq s0, v0, 0x41044 | goto label_12;
| }
0x00040f50 move a0, zero | a0 = 0;
0x00040f54 jalr t9 | t9 ();
0x00040f58 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x00040f5c lw gp, 0x20(fp) | gp = *(var_20h);
| if (v0 == 0) {
0x00040f60 beqz v0, 0x40ff4 | goto label_13;
| }
| if (s0 < 0) {
0x00040f64 bltzl s0, 0x41038 | goto label_14;
| }
0x00040f68 negu s0, s0 | __asm ("negu s0, s0");
0x00040f6c andi s0, s0, 0xff | s0 &= 0xff;
0x00040f70 negu s0, s0 | __asm ("negu s0, s0");
0x00040f74 b 0x40efc |
| } while (1);
| label_7:
0x00040f78 addiu v1, zero, -0x13 | v1 = -0x13;
0x00040f7c xor v1, v0, v1 | v1 = v0 ^ v1;
| if (v1 == 0) {
0x00040f80 movn s0, v0, v1 | s0 = v0;
| }
0x00040f84 b 0x40eb0 | goto label_0;
| label_9:
0x00040f88 lw a1, 0x30(fp) | a1 = *(var_30h_2);
| /* fcn.0003fe18 */
0x00040f8c addiu t9, s7, -0x1e8 | t9 = s7 + -aav.0x000001e8;
0x00040f90 move a0, s3 | a0 = s3;
0x00040f94 bal 0x3fe18 | fcn_0003fe18 ();
0x00040f98 lw gp, 0x20(fp) | gp = *(var_20h);
| if (v0 == 0) {
0x00040f9c beqz v0, 0x40eb0 | goto label_0;
| }
0x00040fa0 lw a1, 0x30(fp) | a1 = *(var_30h_2);
0x00040fa4 lw t9, 0x2c(fp) | t9 = *(var_2ch_2);
0x00040fa8 move a0, s3 | a0 = s3;
0x00040fac jalr t9 | t9 ();
0x00040fb0 lw gp, 0x20(fp) | gp = *(var_20h);
| if (v0 == 0) {
0x00040fb4 beqz v0, 0x40eb0 | goto label_0;
| }
0x00040fb8 lw v0, 0x28(fp) | v0 = *(var_28h_2);
0x00040fbc lw a1, 0x30(fp) | a1 = *(var_30h_2);
0x00040fc0 addiu t9, v0, 0x268 | t9 = v0 + aav.0x00000268;
0x00040fc4 move a0, s3 | a0 = s3;
0x00040fc8 bal 0x40268 | fcn_00040268 ();
0x00040fcc lw gp, 0x20(fp) | gp = *(var_20h);
| if (v0 == 0) {
0x00040fd0 beqz v0, 0x40eb0 | goto label_0;
| }
0x00040fd4 lw t9, -0x79d8(gp) | t9 = sym.device_enumerator_add_device;
0x00040fd8 lw a1, 0x30(fp) | a1 = *(var_30h_2);
0x00040fdc move a0, s3 | a0 = s3;
0x00040fe0 bal 0x40be4 | sym_device_enumerator_add_device ();
0x00040fe4 lw gp, 0x20(fp) | gp = *(var_20h);
| if (v0 >= 0) {
0x00040fe8 bgez v0, 0x40eb0 | goto label_0;
| }
| label_8:
0x00040fec move s0, v0 | s0 = v0;
0x00040ff0 b 0x40eb0 | goto label_0;
| label_13:
0x00040ff4 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00040ff8 lw a2, -0x7fc4(gp) | a2 = *(gp);
| /* str.sd_device_enumerator:_Failed_to_open_tags_directory__s:__m */
0x00040ffc addiu v0, v0, 0x3bb4 | v0 += 0x3bb4;
0x00041000 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00041004 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00041008 lw t9, -0x7fc8(gp) | t9 = sym.log_internal_realm;
| /* esilref: 'enumerator_scan_devices_tag' */
0x0004100c addiu v0, v0, 0x3efc | v0 += 0x3efc;
0x00041010 move a1, s0 | a1 = s0;
0x00041014 sw s5, 0x18(sp) | *(var_18h_2) = s5;
0x00041018 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0004101c addiu a3, zero, 0x269 | a3 = 0x269;
| /* esilref: 'src/libsystemd/sd-device/device-enumerator.c' */
0x00041020 addiu a2, a2, 0x3a43 | a2 += 0x3a43;
0x00041024 addiu a0, zero, 7 | a0 = 7;
0x00041028 jalr t9 | t9 ();
0x0004102c move s0, v0 | s0 = v0;
0x00041030 lw gp, 0x20(fp) | gp = *(var_20h);
0x00041034 b 0x40efc | goto label_1;
| label_14:
0x00041038 andi s0, s0, 0xff | s0 &= 0xff;
0x0004103c negu s0, s0 | __asm ("negu s0, s0");
0x00041040 b 0x40efc | goto label_1;
| label_12:
0x00041044 move s0, zero | s0 = 0;
0x00041048 b 0x40efc | goto label_1;
| label_2:
0x0004104c lw a2, -0x7fc4(gp) | a2 = *(gp);
0x00041050 lw a1, -0x7fc4(gp) | a1 = *(gp);
| /* str.enumerator_scan_devices_tag */
0x00041054 addiu v0, v0, 0x3f18 | v0 += 0x3f18;
0x00041058 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x0004105c sw v0, 0x10(sp) | *(var_10h) = v0;
0x00041060 addiu a3, zero, 0x261 | a3 = 0x261;
| /* esilref: 'src/libsystemd/sd-device/device-enumerator.c' */
0x00041064 addiu a2, a2, 0x3a43 | a2 += 0x3a43;
| /* str.enumerator */
0x00041068 addiu a1, a1, 0x3a70 | a1 += 0x3a70;
0x0004106c jalr t9 | t9 ();
| label_3:
0x00041070 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x00041074 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00041078 addiu v0, v0, 0x3f18 | v0 += 0x3f18;
0x0004107c lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x00041080 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00041084 addiu a3, zero, 0x262 | a3 = 0x262;
| /* esilref: 'src/libsystemd/sd-device/device-enumerator.c' */
0x00041088 addiu a2, a2, 0x3a43 | a2 += 0x3a43;
| /* esilref: 'tag' */
0x0004108c addiu a1, a1, 0x3ba0 | a1 += 0x3ba0;
0x00041090 move a0, zero | a0 = 0;
0x00041094 jalr t9 | t9 ();
| label_4:
0x00041098 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0004109c lw a2, -0x7fc4(gp) | a2 = *(gp);
0x000410a0 lw a1, -0x7fd0(gp) | a1 = *(gp);
| /* str.enumerator_scan_devices_tag */
0x000410a4 addiu v0, v0, 0x3f18 | v0 += 0x3f18;
0x000410a8 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x000410ac sw v0, 0x10(sp) | *(var_10h) = v0;
0x000410b0 addiu a3, zero, 0x264 | a3 = aav.0x00000264;
| /* esilref: 'src/libsystemd/sd-device/device-enumerator.c' */
0x000410b4 addiu a2, a2, 0x3a43 | a2 += 0x3a43;
| /* str.sizeof_char__n____ALLOCA_MAX */
0x000410b8 addiu a1, a1, 0x7c64 | a1 += 0x7c64;
0x000410bc move a0, zero | a0 = 0;
0x000410c0 jalr t9 | t9 ();
| label_11:
0x000410c4 lw t9, -0x7230(gp) | t9 = sym.imp.__stack_chk_fail;
0x000410c8 jalr t9 | t9 ();
0x000410cc nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd-udevd @ 0x41b7c */
| #include <stdint.h>
|
; (fcn) fcn.00041b7c () | void fcn_00041b7c () {
0x00041b7c lui gp, 8 |
0x00041b80 addiu gp, gp, 0x55f4 |
0x00041b84 addu gp, gp, t9 | gp += t9;
0x00041b88 addiu sp, sp, -0x68 |
0x00041b8c lw v0, -0x71f0(gp) | v0 = *((gp - 7292));
0x00041b90 sw fp, 0x60(sp) | *(var_60h) = fp;
0x00041b94 move fp, sp | fp = sp;
0x00041b98 sw s6, 0x58(sp) | *(var_58h) = s6;
0x00041b9c sw s3, 0x4c(sp) | *(var_4ch) = s3;
0x00041ba0 sw s0, 0x40(sp) | *(var_40h) = s0;
0x00041ba4 sw gp, 0x20(sp) | *(var_20h) = gp;
0x00041ba8 sw ra, 0x64(sp) | *(var_64h) = ra;
0x00041bac sw s7, 0x5c(sp) | *(var_5ch) = s7;
0x00041bb0 sw s5, 0x54(sp) | *(var_54h) = s5;
0x00041bb4 sw s4, 0x50(sp) | *(var_50h) = s4;
0x00041bb8 sw s2, 0x48(sp) | *(var_48h) = s2;
0x00041bbc sw s1, 0x44(sp) | *(var_44h) = s1;
0x00041bc0 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00041bc4 lw v0, (v0) | v0 = *(v0);
0x00041bc8 lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x00041bcc move s3, a0 | s3 = a0;
0x00041bd0 sw a2, 0x30(fp) | *(var_30h_2) = a2;
0x00041bd4 move a0, a1 | a0 = a1;
0x00041bd8 sw v0, 0x3c(fp) | *(var_3ch_2) = v0;
0x00041bdc move s6, a1 | s6 = a1;
0x00041be0 move s0, a3 | s0 = a3;
0x00041be4 jalr t9 | t9 ();
0x00041be8 lui a0, 0x40 | a0 = 0x400000;
0x00041bec addiu v1, v0, 6 | v1 = v0 + 6;
0x00041bf0 addiu a0, a0, 1 | a0++;
0x00041bf4 sltu v1, v1, a0 | v1 = (v1 < a0) ? 1 : 0;
0x00041bf8 lw gp, 0x20(fp) | gp = *(var_20h);
| if (v1 == 0) {
0x00041bfc beqz v1, 0x41ddc | goto label_2;
| }
0x00041c00 addiu v0, v0, 0xd | v0 += 0xd;
0x00041c04 srl v0, v0, 3 | v0 >>= 3;
0x00041c08 sll v0, v0, 3 | v0 <<= 3;
0x00041c0c subu sp, sp, v0 |
0x00041c10 addiu s4, sp, 0x20 | s4 = sp + 0x20;
0x00041c14 lui v0, 0x7379 | v0 = 0x7379732f;
0x00041c18 addiu v0, v0, 0x732f |
0x00041c1c lw t9, -0x72a8(gp) | t9 = sym.imp.strcpy
0x00041c20 sw v0, (s4) | *(s4) = v0;
0x00041c24 addiu v0, zero, 0x2f | v0 = 0x2f;
0x00041c28 move a1, s6 | a1 = s6;
0x00041c2c addiu a0, s4, 5 | a0 = s4 + 5;
0x00041c30 sb v0, 4(s4) | *((s4 + 4)) = v0;
0x00041c34 jalr t9 | t9 ();
0x00041c38 lw gp, 0x20(fp) | gp = *(var_20h);
0x00041c3c lw t9, -0x7524(gp) | t9 = *((gp - 7497));
0x00041c40 move a0, s4 | a0 = s4;
0x00041c44 jalr t9 | t9 ();
0x00041c48 lw gp, 0x20(fp) | gp = *(var_20h);
0x00041c4c lw t9, -0x73b8(gp) | t9 = sym.imp.__errno_location;
0x00041c50 move s1, v0 | s1 = v0;
0x00041c54 jalr t9 | t9 ();
0x00041c58 move s2, v0 | s2 = v0;
0x00041c5c lw gp, 0x20(fp) | gp = *(var_20h);
| if (s1 == 0) {
0x00041c60 beqz s1, 0x41dd0 | goto label_3;
| }
0x00041c64 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x00041c68 move a0, zero | a0 = 0;
0x00041c6c jalr t9 | t9 ();
0x00041c70 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x00041c74 lw gp, 0x20(fp) | gp = *(var_20h);
| if (v0 == 0) {
0x00041c78 beqz v0, 0x41d90 | goto label_4;
| }
| label_1:
0x00041c7c lw t9, -0x7498(gp) | t9 = sym.imp.readdir64;
0x00041c80 sw zero, (s2) | *(s2) = 0;
0x00041c84 move a0, s1 | a0 = s1;
0x00041c88 jalr t9 | t9 ();
0x00041c8c move s7, v0 | s7 = v0;
0x00041c90 lw gp, 0x20(fp) | gp = *(var_20h);
0x00041c94 move s4, zero | s4 = 0;
| if (v0 == 0) {
0x00041c98 beqz v0, 0x41d2c | goto label_5;
| }
0x00041c9c lw v0, -0x7a60(gp) | v0 = *(gp);
0x00041ca0 addiu s5, zero, 0x2e | s5 = 0x2e;
| /* fcn.0003f990 */
0x00041ca4 addiu v0, v0, -0x670 | v0 += -0x670;
0x00041ca8 sw v0, 0x34(fp) | *(var_34h_2) = v0;
0x00041cac lw v0, -0x7a60(gp) | v0 = *(gp);
0x00041cb0 addiu v0, v0, 0x1570 | v0 += 0x1570;
0x00041cb4 sw v0, 0x2c(fp) | *(var_2ch_2) = v0;
0x00041cb8 b 0x41d10 | goto label_6;
| label_0:
0x00041cbc lw t9, 0x34(fp) | t9 = *(var_34h_2);
0x00041cc0 move a0, s3 | a0 = s3;
0x00041cc4 jalr t9 | t9 ();
0x00041cc8 lw gp, 0x20(fp) | gp = *(var_20h);
| if (v0 != 0) {
0x00041ccc beqz v0, 0x41cf4 |
0x00041cd0 lw a3, 0x30(fp) | a3 = *(var_30h_2);
0x00041cd4 lw t9, 0x2c(fp) | t9 = *(var_2ch_2);
0x00041cd8 addiu a2, s7, 0x13 | a2 = s7 + 0x13;
0x00041cdc move a1, s6 | a1 = s6;
0x00041ce0 move a0, s3 | a0 = s3;
0x00041ce4 jalr t9 | t9 ();
0x00041ce8 slti v1, v0, 0 | v1 = (v0 < 0) ? 1 : 0;
0x00041cec lw gp, 0x20(fp) | gp = *(var_20h);
| if (v1 != 0) {
0x00041cf0 movn s4, v0, v1 | s4 = v0;
| goto label_7;
| }
| }
| label_7:
0x00041cf4 lw t9, -0x7498(gp) | t9 = sym.imp.readdir64;
| do {
0x00041cf8 sw zero, (s2) | *(s2) = 0;
0x00041cfc move a0, s1 | a0 = s1;
0x00041d00 jalr t9 | t9 ();
0x00041d04 move s7, v0 | s7 = v0;
0x00041d08 lw gp, 0x20(fp) | gp = *(var_20h);
| if (v0 == 0) {
0x00041d0c beqz v0, 0x41d2c | goto label_5;
| }
| label_6:
0x00041d10 lb v0, 0x13(s7) | v0 = *((s7 + 19));
0x00041d14 lw t9, -0x7498(gp) | t9 = sym.imp.readdir64;
0x00041d18 beq v0, s5, 0x41cf8 |
| } while (v0 == s5);
0x00041d1c move a1, s0 | a1 = s0;
| if (s0 == 0) {
0x00041d20 bnel s0, zero, 0x41cbc | goto label_0;
| }
0x00041d24 addiu a1, s7, 0x13 | a1 = s7 + 0x13;
0x00041d28 b 0x41cbc | goto label_0;
| label_5:
0x00041d2c lw v0, (s2) | v0 = *(s2);
| if (v0 <= 0) {
0x00041d30 bgtzl v0, 0x41d38 |
0x00041d34 negu s4, v0 | __asm ("negu s4, v0");
| }
0x00041d38 lw t9, -0x751c(gp) | t9 = sym.imp.closedir;
0x00041d3c move a0, s1 | a0 = s1;
0x00041d40 jalr t9 | t9 ();
0x00041d44 lw gp, 0x20(fp) | gp = *(var_20h);
| do {
0x00041d48 lw v0, 0x28(fp) | v0 = *(var_28h);
0x00041d4c lw a0, 0x3c(fp) | a0 = *(var_3ch_2);
0x00041d50 lw v1, (v0) | v1 = *(v0);
0x00041d54 move v0, s4 | v0 = s4;
| if (a0 != v1) {
0x00041d58 bne a0, v1, 0x41e08 | goto label_8;
| }
0x00041d5c move sp, fp |
0x00041d60 lw ra, 0x64(sp) | ra = *(var_64h);
0x00041d64 lw fp, 0x60(sp) | fp = *(var_60h);
0x00041d68 lw s7, 0x5c(sp) | s7 = *(var_5ch);
0x00041d6c lw s6, 0x58(sp) | s6 = *(var_58h);
0x00041d70 lw s5, 0x54(sp) | s5 = *(var_54h);
0x00041d74 lw s4, 0x50(sp) | s4 = *(var_50h);
0x00041d78 lw s3, 0x4c(sp) | s3 = *(var_4ch);
0x00041d7c lw s2, 0x48(sp) | s2 = *(var_48h);
0x00041d80 lw s1, 0x44(sp) | s1 = *(var_44h);
0x00041d84 lw s0, 0x40(sp) | s0 = *(var_40h);
0x00041d88 addiu sp, sp, 0x68 |
0x00041d8c jr ra | return v0;
| label_4:
0x00041d90 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00041d94 lw a2, -0x7fc4(gp) | a2 = *(gp);
| /* str.sd_device_enumerator:_Scanning__s */
0x00041d98 addiu v0, v0, 0x3c78 | v0 += 0x3c78;
0x00041d9c sw v0, 0x14(sp) | *(var_14h) = v0;
0x00041da0 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00041da4 lw t9, -0x7fc8(gp) | t9 = sym.log_internal_realm;
| /* esilref: 'enumerator_scan_dir' */
0x00041da8 addiu v0, v0, 0x3e3c | v0 += 0x3e3c;
0x00041dac sw s4, 0x18(sp) | *(var_18h_2) = s4;
0x00041db0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00041db4 addiu a3, zero, 0x248 | a3 = aav.0x00000248;
| /* esilref: 'src/libsystemd/sd-device/device-enumerator.c' */
0x00041db8 addiu a2, a2, 0x3a43 | a2 += 0x3a43;
0x00041dbc move a1, zero | a1 = 0;
0x00041dc0 addiu a0, zero, 7 | a0 = 7;
0x00041dc4 jalr t9 | t9 ();
0x00041dc8 lw gp, 0x20(fp) | gp = *(var_20h);
0x00041dcc b 0x41c7c | goto label_1;
| label_3:
0x00041dd0 lw s4, (s2) | s4 = *(s2);
0x00041dd4 negu s4, s4 | __asm ("negu s4, s4");
0x00041dd8 b 0x41d48 |
| } while (1);
| label_2:
0x00041ddc lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00041de0 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x00041de4 lw a1, -0x7fd0(gp) | a1 = *(gp);
| /* str.enumerator_scan_dir */
0x00041de8 addiu v0, v0, 0x3e50 | v0 += 0x3e50;
0x00041dec lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x00041df0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00041df4 addiu a3, zero, 0x242 | a3 = 0x242;
| /* esilref: 'src/libsystemd/sd-device/device-enumerator.c' */
0x00041df8 addiu a2, a2, 0x3a43 | a2 += 0x3a43;
| /* str.sizeof_char__n____ALLOCA_MAX */
0x00041dfc addiu a1, a1, 0x7c64 | a1 += 0x7c64;
0x00041e00 move a0, zero | a0 = 0;
0x00041e04 jalr t9 | t9 ();
| label_8:
0x00041e08 lw t9, -0x7230(gp) | t9 = sym.imp.__stack_chk_fail;
0x00041e0c jalr t9 | t9 ();
0x00041e10 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd-udevd @ 0x46ce0 */
| #include <stdint.h>
|
; (fcn) fcn.00046ce0 () | void fcn_00046ce0 () {
0x00046ce0 lui gp, 8 |
0x00046ce4 addiu gp, gp, 0x490 |
0x00046ce8 addu gp, gp, t9 | gp += t9;
0x00046cec addiu sp, sp, -0x80 |
0x00046cf0 sw s3, 0x64(sp) | *(var_64h) = s3;
0x00046cf4 lw s3, -0x71f0(gp) | s3 = *((gp - 7292));
0x00046cf8 sw fp, 0x78(sp) | *(var_78h) = fp;
0x00046cfc sw ra, 0x7c(sp) | *(var_7ch) = ra;
0x00046d00 sw s7, 0x74(sp) | *(var_74h) = s7;
0x00046d04 sw s6, 0x70(sp) | *(var_70h) = s6;
0x00046d08 sw s5, 0x6c(sp) | *(var_6ch) = s5;
0x00046d0c sw s4, 0x68(sp) | *(var_68h) = s4;
0x00046d10 sw s2, 0x60(sp) | *(var_60h) = s2;
0x00046d14 sw s1, 0x5c(sp) | *(var_5ch) = s1;
0x00046d18 sw s0, 0x58(sp) | *(var_58h) = s0;
0x00046d1c sw gp, 0x30(sp) | *(var_30h) = gp;
0x00046d20 move fp, sp | fp = sp;
0x00046d24 lw v0, (s3) | v0 = *(s3);
0x00046d28 sw v0, 0x54(fp) | *(var_54h) = v0;
| if (a0 == 0) {
0x00046d2c beql a0, zero, 0x47290 | goto label_32;
| }
0x00046d30 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00046d34 move s0, a1 | s0 = a1;
| if (a1 == 0) {
0x00046d38 beqz a1, 0x472b4 | goto label_33;
| }
0x00046d3c move s1, a2 | s1 = a2;
| if (a2 == 0) {
0x00046d40 beqz a2, 0x472e0 | goto label_34;
| }
0x00046d44 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00046d48 lw t9, -0x7178(gp) | t9 = *((gp - 7262));
0x00046d4c move s2, a0 | s2 = a0;
| /* str.DEVPATH */
0x00046d50 addiu a1, a1, -0x458c | a1 += -0x458c;
0x00046d54 move a0, s0 | a0 = s0;
0x00046d58 jalr t9 | t9 ();
0x00046d5c lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 != 0) {
0x00046d60 bnez v0, 0x46e24 | goto label_35;
| }
0x00046d64 lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x00046d68 move a0, s1 | a0 = s1;
0x00046d6c jalr t9 | t9 ();
0x00046d70 lui a0, 0x40 | a0 = 0x400000;
| /* esilref: 'bute: &' */
0x00046d74 addiu v1, v0, 5 | v1 = v0 + 5;
0x00046d78 addiu a0, a0, 1 | a0++;
0x00046d7c sltu v1, v1, a0 | v1 = (v1 < a0) ? 1 : 0;
0x00046d80 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v1 == 0) {
0x00046d84 beqz v1, 0x474c8 | goto label_36;
| }
0x00046d88 addiu v0, v0, 0xc | v0 += 0xc;
0x00046d8c srl v0, v0, 3 | v0 >>= 3;
0x00046d90 sll v0, v0, 3 | v0 <<= 3;
0x00046d94 subu sp, sp, v0 |
0x00046d98 addiu s0, sp, 0x30 | s0 = sp + 0x30;
0x00046d9c lui v0, 0x7379 | v0 = 0x73790000;
0x00046da0 lw t9, -0x72a8(gp) | t9 = sym.imp.strcpy
0x00046da4 addiu v0, v0, 0x732f | v0 += 0x732f;
0x00046da8 move a1, s1 | a1 = s1;
0x00046dac addiu a0, s0, 4 | a0 = s0 + 4;
0x00046db0 sw v0, (s0) | *(s0) = v0;
0x00046db4 jalr t9 | t9 ();
0x00046db8 lw gp, 0x30(fp) | gp = *(var_30h);
0x00046dbc move a2, zero | a2 = 0;
0x00046dc0 move a1, s0 | a1 = s0;
0x00046dc4 lw t9, -0x7998(gp) | t9 = sym.device_set_syspath;
0x00046dc8 move a0, s2 | a0 = s2;
0x00046dcc bal 0x48af0 | sym_device_set_syspath ();
0x00046dd0 move s1, v0 | s1 = v0;
0x00046dd4 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 < 0) {
0x00046dd8 bltz v0, 0x470e4 | goto label_37;
| }
| label_2:
0x00046ddc move s4, zero | s4 = 0;
| do {
| label_0:
0x00046de0 lw a0, 0x54(fp) | a0 = *(var_54h);
0x00046de4 lw v1, (s3) | v1 = *(s3);
0x00046de8 move v0, s4 | v0 = s4;
| if (a0 != v1) {
0x00046dec bne a0, v1, 0x47cb0 | goto label_38;
| }
0x00046df0 move sp, fp |
0x00046df4 lw ra, 0x7c(sp) | ra = *(var_7ch);
0x00046df8 lw fp, 0x78(sp) | fp = *(var_78h);
0x00046dfc lw s7, 0x74(sp) | s7 = *(var_74h);
0x00046e00 lw s6, 0x70(sp) | s6 = *(var_70h);
0x00046e04 lw s5, 0x6c(sp) | s5 = *(var_6ch);
0x00046e08 lw s4, 0x68(sp) | s4 = *(var_68h);
0x00046e0c lw s3, 0x64(sp) | s3 = *(var_64h);
0x00046e10 lw s2, 0x60(sp) | s2 = *(var_60h);
0x00046e14 lw s1, 0x5c(sp) | s1 = *(var_5ch);
0x00046e18 lw s0, 0x58(sp) | s0 = *(var_58h);
0x00046e1c addiu sp, sp, 0x80 |
0x00046e20 jr ra | return v0;
| label_35:
0x00046e24 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00046e28 lw t9, -0x7178(gp) | t9 = *((gp - 7262));
| /* str.SUBSYSTEM */
0x00046e2c addiu a1, a1, -0x43f0 | a1 += -0x43f0;
0x00046e30 move a0, s0 | a0 = s0;
0x00046e34 jalr t9 | t9 ();
0x00046e38 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 == 0) {
0x00046e3c beqz v0, 0x471fc | goto label_39;
| }
0x00046e40 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00046e44 lw t9, -0x7178(gp) | t9 = *((gp - 7262));
| /* str.DEVTYPE */
0x00046e48 addiu a1, a1, -0x3d4c | a1 += -0x3d4c;
0x00046e4c move a0, s0 | a0 = s0;
0x00046e50 jalr t9 | t9 ();
0x00046e54 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 == 0) {
0x00046e58 beqz v0, 0x4715c | goto label_40;
| }
0x00046e5c lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00046e60 lw t9, -0x7178(gp) | t9 = *((gp - 7262));
| /* str.DEVNAME */
0x00046e64 addiu a1, a1, -0x3d54 | a1 += -0x3d54;
0x00046e68 move a0, s0 | a0 = s0;
0x00046e6c jalr t9 | t9 ();
0x00046e70 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 == 0) {
0x00046e74 beqz v0, 0x4730c | goto label_41;
| }
0x00046e78 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00046e7c lw t9, -0x7178(gp) | t9 = *((gp - 7262));
| /* str.USEC_INITIALIZED */
0x00046e80 addiu a1, a1, 0x4bf0 | a1 += 0x4bf0;
0x00046e84 move a0, s0 | a0 = s0;
0x00046e88 jalr t9 | t9 ();
0x00046e8c move s4, v0 | s4 = v0;
0x00046e90 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 == 0) {
0x00046e94 beqz v0, 0x474f4 | goto label_42;
| }
0x00046e98 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00046e9c lw t9, -0x7178(gp) | t9 = *((gp - 7262));
| /* str.DRIVER */
0x00046ea0 addiu a1, a1, -0x43a8 | a1 += -0x43a8;
0x00046ea4 move a0, s0 | a0 = s0;
0x00046ea8 jalr t9 | t9 ();
0x00046eac lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 == 0) {
0x00046eb0 beqz v0, 0x47384 | goto label_43;
| }
0x00046eb4 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00046eb8 lw t9, -0x7178(gp) | t9 = *((gp - 7262));
| /* str.IFINDEX */
0x00046ebc addiu a1, a1, -0x3d44 | a1 += -0x3d44;
0x00046ec0 move a0, s0 | a0 = s0;
0x00046ec4 jalr t9 | t9 ();
0x00046ec8 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 == 0) {
0x00046ecc beqz v0, 0x475b4 | goto label_44;
| }
0x00046ed0 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00046ed4 lw t9, -0x7178(gp) | t9 = *((gp - 7262));
| /* str.DEVMODE */
0x00046ed8 addiu a1, a1, 0x4cc8 | a1 += 0x4cc8;
0x00046edc move a0, s0 | a0 = s0;
0x00046ee0 jalr t9 | t9 ();
0x00046ee4 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 == 0) {
0x00046ee8 beqz v0, 0x476d8 | goto label_45;
| }
0x00046eec lw s5, -0x7fc4(gp) | s5 = *(gp);
0x00046ef0 lw t9, -0x7178(gp) | t9 = *((gp - 7262));
| /* str.DEVUID */
0x00046ef4 addiu a1, s5, 0x4d00 | a1 = s5 + 0x4d00;
0x00046ef8 move a0, s0 | a0 = s0;
0x00046efc jalr t9 | t9 ();
0x00046f00 move s4, v0 | s4 = v0;
0x00046f04 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 == 0) {
0x00046f08 beqz v0, 0x47778 | goto label_46;
| }
0x00046f0c lw s5, -0x7fc4(gp) | s5 = *(gp);
0x00046f10 lw t9, -0x7178(gp) | t9 = *((gp - 7262));
| /* str.DEVGID */
0x00046f14 addiu a1, s5, 0x4d34 | a1 = s5 + 0x4d34;
0x00046f18 move a0, s0 | a0 = s0;
0x00046f1c jalr t9 | t9 ();
0x00046f20 move s4, v0 | s4 = v0;
0x00046f24 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 == 0) {
0x00046f28 beqz v0, 0x477c8 | goto label_47;
| }
0x00046f2c lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00046f30 lw t9, -0x7178(gp) | t9 = *((gp - 7262));
| /* str.ACTION */
0x00046f34 addiu a1, a1, -0x45a0 | a1 += -0x45a0;
0x00046f38 move a0, s0 | a0 = s0;
0x00046f3c jalr t9 | t9 ();
0x00046f40 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 == 0) {
0x00046f44 beqz v0, 0x47818 | goto label_48;
| }
0x00046f48 lw s5, -0x7fc4(gp) | s5 = *(gp);
0x00046f4c lw t9, -0x7178(gp) | t9 = *((gp - 7262));
| /* str.SEQNUM */
0x00046f50 addiu a1, s5, -0x3d2c | a1 = s5 + -0x3d2c;
0x00046f54 move a0, s0 | a0 = s0;
0x00046f58 jalr t9 | t9 ();
0x00046f5c move s4, v0 | s4 = v0;
0x00046f60 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 == 0) {
0x00046f64 beqz v0, 0x47934 | goto label_49;
| }
0x00046f68 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00046f6c lw t9, -0x7178(gp) | t9 = *((gp - 7262));
| /* str.DEVLINKS */
0x00046f70 addiu a1, a1, -0x3d60 | a1 += -0x3d60;
0x00046f74 move a0, s0 | a0 = s0;
0x00046f78 jalr t9 | t9 ();
0x00046f7c move s4, v0 | s4 = v0;
0x00046f80 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 == 0) {
0x00046f84 beqz v0, 0x47a34 | goto label_50;
| }
0x00046f88 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00046f8c lw t9, -0x7178(gp) | t9 = *((gp - 7262));
| /* str.TAGS */
0x00046f90 addiu a1, a1, -0x4260 | a1 += -0x4260;
0x00046f94 move a0, s0 | a0 = s0;
0x00046f98 jalr t9 | t9 ();
0x00046f9c move s4, v0 | s4 = v0;
0x00046fa0 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 != 0) {
0x00046fa4 bnez v0, 0x47998 | goto label_51;
| }
0x00046fa8 lw s7, -0x7fc4(gp) | s7 = *(gp);
0x00046fac lw t9, -0x7af4(gp) | t9 = sym.split;
0x00046fb0 addiu s6, fp, 0x44 | s6 = fp + 0x44;
0x00046fb4 addiu s5, fp, 0x40 | s5 = fp + 0x40;
0x00046fb8 move a3, zero | a3 = 0;
0x00046fbc addiu a2, s7, 0x4dec | a2 = s7 + 0x4dec;
0x00046fc0 move a1, s6 | a1 = s6;
0x00046fc4 move a0, s5 | a0 = s5;
0x00046fc8 sw s1, 0x40(fp) | *(var_40h) = s1;
0x00046fcc jalr t9 | t9 ();
0x00046fd0 addiu v1, s7, 0x4dec | v1 = s7 + 0x4dec;
0x00046fd4 lw gp, 0x30(fp) | gp = *(var_30h);
0x00046fd8 sw v1, 0x3c(fp) | *(var_3ch) = v1;
| if (v0 != 0) {
0x00046fdc bnez v0, 0x4700c | goto label_52;
| }
0x00046fe0 b 0x46de0 |
| } while (1);
0x00046fe4 nop |
| label_1:
0x00046fe8 lw t9, -0x7af4(gp) | t9 = sym.split;
0x00046fec lw a2, 0x3c(fp) | a2 = *(var_3ch);
0x00046ff0 move a3, zero | a3 = 0;
0x00046ff4 move sp, s1 |
0x00046ff8 move a1, s6 | a1 = s6;
0x00046ffc move a0, s5 | a0 = s5;
0x00047000 jalr t9 | t9 ();
0x00047004 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 == 0) {
0x00047008 beqz v0, 0x46de0 | goto label_0;
| }
| label_52:
0x0004700c lw s7, 0x44(fp) | s7 = *(var_44h);
0x00047010 move s1, sp | s1 = sp;
0x00047014 addiu a0, s7, 8 | a0 = s7 + 8;
0x00047018 srl a0, a0, 3 | a0 >>= 3;
0x0004701c sll a0, a0, 3 | a0 <<= 3;
0x00047020 subu sp, sp, a0 |
0x00047024 lw t9, -0x73cc(gp) | t9 = sym.imp.strncpy;
0x00047028 addiu s0, sp, 0x30 | s0 = sp + 0x30;
0x0004702c move a2, s7 | a2 = s7;
0x00047030 move a1, v0 | a1 = v0;
0x00047034 move a0, s0 | a0 = s0;
0x00047038 jalr t9 | t9 ();
0x0004703c lw gp, 0x30(fp) | gp = *(var_30h);
0x00047040 addu v1, s0, s7 | v1 = s0 + s7;
0x00047044 move a1, s0 | a1 = s0;
0x00047048 lw t9, -0x7c00(gp) | t9 = sym.device_add_tag;
0x0004704c sb zero, (v1) | *(v1) = 0;
0x00047050 move a0, s2 | a0 = s2;
0x00047054 bal 0x4c780 | sym_device_add_tag ();
0x00047058 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 >= 0) {
0x0004705c bgez v0, 0x46fe8 | goto label_1;
| }
0x00047060 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x00047064 move a0, zero | a0 = 0;
0x00047068 sw v0, 0x3c(fp) | *(var_3ch) = v0;
0x0004706c sw zero, 0x48(fp) | *(var_48h) = 0;
0x00047070 jalr t9 | t9 ();
0x00047074 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x00047078 lw gp, 0x30(fp) | gp = *(var_30h);
0x0004707c lw v1, 0x3c(fp) | v1 = *(var_3ch);
0x00047080 move a0, zero | a0 = 0;
| if (v0 == 0) {
0x00047084 beqz v0, 0x4749c | goto label_53;
| }
| label_14:
0x00047088 move v0, zero | v0 = 0;
| label_15:
0x0004708c lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00047090 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00047094 lw v0, -0x7fc4(gp) | v0 = *(gp);
| /* str.sd_device:_Failed_to_add_tag__s:__m */
0x00047098 addiu a1, a1, 0x4df0 | a1 += 0x4df0;
| /* esilref: 'device_amend' */
0x0004709c addiu v0, v0, 0x50c4 | v0 += 0x50c4;
0x000470a0 lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
0x000470a4 sw s0, 0x28(sp) | *(var_28h) = s0;
0x000470a8 sw a1, 0x24(sp) | *(var_24h) = a1;
0x000470ac sw zero, 0x20(sp) | *(var_20h) = 0;
0x000470b0 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x000470b4 sw a0, 0x18(sp) | *(var_18h) = a0;
0x000470b8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000470bc addiu a3, zero, 0x158 | a3 = aav.0x00000158;
| label_22:
0x000470c0 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x000470c4 move a1, v1 | a1 = v1;
| /* esilref: 'src/libsystemd/sd-device/device-private.c' */
0x000470c8 addiu a2, a2, 0x4983 | a2 += 0x4983;
0x000470cc addiu a0, zero, 7 | a0 = 7;
0x000470d0 jalr t9 | t9 ();
0x000470d4 move s4, v0 | s4 = v0;
0x000470d8 lw gp, 0x30(fp) | gp = *(var_30h);
0x000470dc move sp, s1 |
0x000470e0 b 0x46de0 | goto label_0;
| label_37:
0x000470e4 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x000470e8 move a0, zero | a0 = 0;
0x000470ec sw zero, 0x48(fp) | *(var_48h) = 0;
0x000470f0 jalr t9 | t9 ();
0x000470f4 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x000470f8 lw gp, 0x30(fp) | gp = *(var_30h);
0x000470fc move a0, zero | a0 = 0;
| if (v0 == 0) {
0x00047100 beqz v0, 0x471d4 | goto label_54;
| }
| label_3:
0x00047104 move v0, zero | v0 = 0;
| label_4:
0x00047108 lw v1, -0x7fc4(gp) | v1 = *(gp);
0x0004710c sw v0, 0x14(sp) | *(var_14h) = v0;
0x00047110 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00047114 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x00047118 lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
| /* str.sd_device:_Failed_to_set_syspath_to__s:__m */
0x0004711c addiu v1, v1, 0x4b30 | v1 += 0x4b30;
| /* esilref: 'device_amend' */
0x00047120 addiu v0, v0, 0x50c4 | v0 += 0x50c4;
0x00047124 sw a0, 0x18(sp) | *(var_18h) = a0;
0x00047128 sw s0, 0x28(sp) | *(var_28h) = s0;
0x0004712c sw v1, 0x24(sp) | *(var_24h) = v1;
0x00047130 sw zero, 0x20(sp) | *(var_20h) = 0;
0x00047134 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x00047138 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0004713c addiu a3, zero, 0x10b | a3 = 0x10b;
| /* esilref: 'src/libsystemd/sd-device/device-private.c' */
0x00047140 addiu a2, a2, 0x4983 | a2 += 0x4983;
0x00047144 move a1, s1 | a1 = s1;
0x00047148 addiu a0, zero, 7 | a0 = 7;
0x0004714c jalr t9 | t9 ();
0x00047150 move s4, v0 | s4 = v0;
0x00047154 lw gp, 0x30(fp) | gp = *(var_30h);
0x00047158 b 0x46de0 | goto label_0;
| label_40:
0x0004715c lw t9, -0x7978(gp) | t9 = sym.device_set_devtype;
0x00047160 move a1, s1 | a1 = s1;
0x00047164 move a0, s2 | a0 = s2;
0x00047168 bal 0x49fb0 | sym_device_set_devtype ();
0x0004716c move s0, v0 | s0 = v0;
0x00047170 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 >= 0) {
0x00047174 bgez v0, 0x46ddc | goto label_2;
| }
0x00047178 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x0004717c move a0, zero | a0 = 0;
0x00047180 sw zero, 0x48(fp) | *(var_48h) = 0;
0x00047184 jalr t9 | t9 ();
0x00047188 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x0004718c lw gp, 0x30(fp) | gp = *(var_30h);
0x00047190 move a0, zero | a0 = 0;
| if (v0 == 0) {
0x00047194 beqz v0, 0x47424 | goto label_55;
| }
| label_8:
0x00047198 move v1, zero | v1 = 0;
| label_9:
0x0004719c lw v0, -0x7fc4(gp) | v0 = *(gp);
0x000471a0 lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
| /* str.sd_device:_Failed_to_set_devtype_to__s:__m */
0x000471a4 addiu v0, v0, 0x4b90 | v0 += 0x4b90;
0x000471a8 sw v0, 0x24(sp) | *(var_24h) = v0;
0x000471ac lw v0, -0x7fc4(gp) | v0 = *(gp);
0x000471b0 sw s1, 0x28(sp) | *(var_28h) = s1;
| /* esilref: 'device_amend' */
0x000471b4 addiu v0, v0, 0x50c4 | v0 += 0x50c4;
0x000471b8 sw zero, 0x20(sp) | *(var_20h) = 0;
0x000471bc sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x000471c0 sw a0, 0x18(sp) | *(var_18h) = a0;
0x000471c4 sw v1, 0x14(sp) | *(var_14h) = v1;
0x000471c8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000471cc addiu a3, zero, 0x113 | a3 = 0x113;
0x000471d0 b 0x47270 | goto label_5;
| label_54:
0x000471d4 lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x000471d8 move a0, s2 | a0 = s2;
0x000471dc addiu a1, fp, 0x48 | a1 = fp + 0x48;
0x000471e0 bal 0x4ac0c | sym_sd_device_get_sysname ();
0x000471e4 lw a0, 0x48(fp) | a0 = *(var_48h);
0x000471e8 lw gp, 0x30(fp) | gp = *(var_30h);
| if (a0 == 0) {
0x000471ec beqz a0, 0x47104 | goto label_3;
| }
0x000471f0 lw v0, -0x7fd0(gp) | v0 = *(gp);
| /* str.DEVICE */
0x000471f4 addiu v0, v0, 0x7b84 | v0 += 0x7b84;
0x000471f8 b 0x47108 | goto label_4;
| label_39:
0x000471fc lw t9, -0x798c(gp) | t9 = sym.device_set_subsystem;
0x00047200 move a1, s1 | a1 = s1;
0x00047204 move a0, s2 | a0 = s2;
0x00047208 bal 0x4a8dc | sym_device_set_subsystem ();
0x0004720c move s0, v0 | s0 = v0;
0x00047210 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 >= 0) {
0x00047214 bgez v0, 0x46ddc | goto label_2;
| }
0x00047218 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x0004721c move a0, zero | a0 = 0;
0x00047220 sw zero, 0x48(fp) | *(var_48h) = 0;
0x00047224 jalr t9 | t9 ();
0x00047228 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x0004722c lw gp, 0x30(fp) | gp = *(var_30h);
0x00047230 move a0, zero | a0 = 0;
| if (v0 == 0) {
0x00047234 beqz v0, 0x473fc | goto label_56;
| }
| label_6:
0x00047238 move v0, zero | v0 = 0;
| label_7:
0x0004723c lw v1, -0x7fc4(gp) | v1 = *(gp);
0x00047240 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00047244 lw v0, -0x7fc4(gp) | v0 = *(gp);
| /* str.sd_device:_Failed_to_set_subsystem_to__s:__m */
0x00047248 addiu v1, v1, 0x4b60 | v1 += 0x4b60;
| /* esilref: 'device_amend' */
0x0004724c addiu v0, v0, 0x50c4 | v0 += 0x50c4;
0x00047250 lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
0x00047254 sw s1, 0x28(sp) | *(var_28h) = s1;
0x00047258 sw v1, 0x24(sp) | *(var_24h) = v1;
0x0004725c sw zero, 0x20(sp) | *(var_20h) = 0;
0x00047260 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x00047264 sw a0, 0x18(sp) | *(var_18h) = a0;
0x00047268 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0004726c addiu a3, zero, 0x10f | a3 = 0x10f;
| label_5:
0x00047270 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x00047274 move a1, s0 | a1 = s0;
| /* esilref: 'src/libsystemd/sd-device/device-private.c' */
0x00047278 addiu a2, a2, 0x4983 | a2 += 0x4983;
0x0004727c addiu a0, zero, 7 | a0 = 7;
0x00047280 jalr t9 | t9 ();
0x00047284 move s4, v0 | s4 = v0;
0x00047288 lw gp, 0x30(fp) | gp = *(var_30h);
0x0004728c b 0x46de0 | goto label_0;
| label_32:
0x00047290 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x00047294 lw a1, -0x7fc4(gp) | a1 = *(gp);
| /* str.device_amend */
0x00047298 addiu v0, v0, 0x50d4 | v0 += 0x50d4;
0x0004729c lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x000472a0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000472a4 addiu a3, zero, 0xff | a3 = 0xff;
| /* esilref: 'src/libsystemd/sd-device/device-private.c' */
0x000472a8 addiu a2, a2, 0x4983 | a2 += 0x4983;
| /* esilref: 'device' */
0x000472ac addiu a1, a1, -0xdc | a1 += -0xdc;
0x000472b0 jalr t9 | t9 ();
| label_33:
0x000472b4 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x000472b8 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x000472bc lw a1, -0x7fc4(gp) | a1 = *(gp);
| /* str.device_amend */
0x000472c0 addiu v0, v0, 0x50d4 | v0 += 0x50d4;
0x000472c4 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x000472c8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000472cc addiu a3, zero, 0x100 | a3 = aav.0x00000100;
| /* esilref: 'src/libsystemd/sd-device/device-private.c' */
0x000472d0 addiu a2, a2, 0x4983 | a2 += 0x4983;
| /* esilref: 'key' */
0x000472d4 addiu a1, a1, -0x7764 | a1 += -0x7764;
0x000472d8 move a0, zero | a0 = 0;
0x000472dc jalr t9 | t9 ();
| label_34:
0x000472e0 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x000472e4 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x000472e8 lw a1, -0x7fc4(gp) | a1 = *(gp);
| /* str.device_amend */
0x000472ec addiu v0, v0, 0x50d4 | v0 += 0x50d4;
0x000472f0 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x000472f4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000472f8 addiu a3, zero, 0x101 | a3 = 0x101;
| /* esilref: 'src/libsystemd/sd-device/device-private.c' */
0x000472fc addiu a2, a2, 0x4983 | a2 += 0x4983;
| /* str.value */
0x00047300 addiu a1, a1, -0x7b18 | a1 += -0x7b18;
0x00047304 move a0, zero | a0 = 0;
0x00047308 jalr t9 | t9 ();
| label_41:
0x0004730c lw t9, -0x7974(gp) | t9 = *(gp);
0x00047310 move a1, s1 | a1 = s1;
0x00047314 move a0, s2 | a0 = s2;
0x00047318 bal 0x4a1bc | sym_device_set_devname ();
0x0004731c move s0, v0 | s0 = v0;
0x00047320 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 >= 0) {
0x00047324 bgez v0, 0x46ddc | goto label_2;
| }
0x00047328 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x0004732c move a0, zero | a0 = 0;
0x00047330 sw zero, 0x48(fp) | *(var_48h) = 0;
0x00047334 jalr t9 | t9 ();
0x00047338 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x0004733c lw gp, 0x30(fp) | gp = *(var_30h);
0x00047340 move a0, zero | a0 = 0;
| if (v0 == 0) {
0x00047344 beqz v0, 0x4744c | goto label_57;
| }
| label_10:
0x00047348 move v0, zero | v0 = 0;
| label_11:
0x0004734c lw v1, -0x7fc4(gp) | v1 = *(gp);
0x00047350 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00047354 lw v0, -0x7fc4(gp) | v0 = *(gp);
| /* str.sd_device:_Failed_to_set_devname_to__s:__m */
0x00047358 addiu v1, v1, 0x4bc0 | v1 += 0x4bc0;
| /* esilref: 'device_amend' */
0x0004735c addiu v0, v0, 0x50c4 | v0 += 0x50c4;
0x00047360 lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
0x00047364 sw s1, 0x28(sp) | *(var_28h) = s1;
0x00047368 sw v1, 0x24(sp) | *(var_24h) = v1;
0x0004736c sw zero, 0x20(sp) | *(var_20h) = 0;
0x00047370 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x00047374 sw a0, 0x18(sp) | *(var_18h) = a0;
0x00047378 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0004737c addiu a3, zero, 0x117 | a3 = 0x117;
0x00047380 b 0x47270 | goto label_5;
| label_43:
0x00047384 lw t9, -0x7970(gp) | t9 = *(gp);
0x00047388 move a1, s1 | a1 = s1;
0x0004738c move a0, s2 | a0 = s2;
0x00047390 bal 0x4a9f4 | sym_device_set_driver ();
0x00047394 move s0, v0 | s0 = v0;
0x00047398 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 >= 0) {
0x0004739c bgez v0, 0x46ddc | goto label_2;
| }
0x000473a0 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x000473a4 move a0, zero | a0 = 0;
0x000473a8 sw zero, 0x48(fp) | *(var_48h) = 0;
0x000473ac jalr t9 | t9 ();
0x000473b0 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x000473b4 lw gp, 0x30(fp) | gp = *(var_30h);
0x000473b8 move a0, zero | a0 = 0;
| if (v0 == 0) {
0x000473bc beqz v0, 0x47474 | goto label_58;
| }
| label_12:
0x000473c0 move v0, zero | v0 = 0;
| label_13:
0x000473c4 lw v1, -0x7fc4(gp) | v1 = *(gp);
0x000473c8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000473cc lw v0, -0x7fc4(gp) | v0 = *(gp);
| /* str.sd_device:_Failed_to_set_driver_to__s:__m */
0x000473d0 addiu v1, v1, 0x4c6c | v1 += 0x4c6c;
| /* esilref: 'device_amend' */
0x000473d4 addiu v0, v0, 0x50c4 | v0 += 0x50c4;
0x000473d8 lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
0x000473dc sw s1, 0x28(sp) | *(var_28h) = s1;
0x000473e0 sw v1, 0x24(sp) | *(var_24h) = v1;
0x000473e4 sw zero, 0x20(sp) | *(var_20h) = 0;
0x000473e8 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x000473ec sw a0, 0x18(sp) | *(var_18h) = a0;
0x000473f0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000473f4 addiu a3, zero, 0x125 | a3 = 0x125;
0x000473f8 b 0x47270 | goto label_5;
| label_56:
0x000473fc lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x00047400 move a0, s2 | a0 = s2;
0x00047404 addiu a1, fp, 0x48 | a1 = fp + 0x48;
0x00047408 bal 0x4ac0c | sym_sd_device_get_sysname ();
0x0004740c lw a0, 0x48(fp) | a0 = *(var_48h);
0x00047410 lw gp, 0x30(fp) | gp = *(var_30h);
| if (a0 == 0) {
0x00047414 beqz a0, 0x47238 | goto label_6;
| }
0x00047418 lw v0, -0x7fd0(gp) | v0 = *(gp);
| /* str.DEVICE */
0x0004741c addiu v0, v0, 0x7b84 | v0 += 0x7b84;
0x00047420 b 0x4723c | goto label_7;
| label_55:
0x00047424 lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x00047428 move a0, s2 | a0 = s2;
0x0004742c addiu a1, fp, 0x48 | a1 = fp + 0x48;
0x00047430 bal 0x4ac0c | sym_sd_device_get_sysname ();
0x00047434 lw a0, 0x48(fp) | a0 = *(var_48h);
0x00047438 lw gp, 0x30(fp) | gp = *(var_30h);
| if (a0 == 0) {
0x0004743c beqz a0, 0x47198 | goto label_8;
| }
0x00047440 lw v1, -0x7fd0(gp) | v1 = *(gp);
| /* str.DEVICE */
0x00047444 addiu v1, v1, 0x7b84 | v1 += 0x7b84;
0x00047448 b 0x4719c | goto label_9;
| label_57:
0x0004744c lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x00047450 move a0, s2 | a0 = s2;
0x00047454 addiu a1, fp, 0x48 | a1 = fp + 0x48;
0x00047458 bal 0x4ac0c | sym_sd_device_get_sysname ();
0x0004745c lw a0, 0x48(fp) | a0 = *(var_48h);
0x00047460 lw gp, 0x30(fp) | gp = *(var_30h);
| if (a0 == 0) {
0x00047464 beqz a0, 0x47348 | goto label_10;
| }
0x00047468 lw v0, -0x7fd0(gp) | v0 = *(gp);
| /* str.DEVICE */
0x0004746c addiu v0, v0, 0x7b84 | v0 += 0x7b84;
0x00047470 b 0x4734c | goto label_11;
| label_58:
0x00047474 lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x00047478 move a0, s2 | a0 = s2;
0x0004747c addiu a1, fp, 0x48 | a1 = fp + 0x48;
0x00047480 bal 0x4ac0c | sym_sd_device_get_sysname ();
0x00047484 lw a0, 0x48(fp) | a0 = *(var_48h);
0x00047488 lw gp, 0x30(fp) | gp = *(var_30h);
| if (a0 == 0) {
0x0004748c beqz a0, 0x473c0 | goto label_12;
| }
0x00047490 lw v0, -0x7fd0(gp) | v0 = *(gp);
| /* str.DEVICE */
0x00047494 addiu v0, v0, 0x7b84 | v0 += 0x7b84;
0x00047498 b 0x473c4 | goto label_13;
| label_53:
0x0004749c lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x000474a0 move a0, s2 | a0 = s2;
0x000474a4 addiu a1, fp, 0x48 | a1 = fp + 0x48;
0x000474a8 bal 0x4ac0c | sym_sd_device_get_sysname ();
0x000474ac lw a0, 0x48(fp) | a0 = *(var_48h);
0x000474b0 lw gp, 0x30(fp) | gp = *(var_30h);
0x000474b4 lw v1, 0x3c(fp) | v1 = *(var_3ch);
| if (a0 == 0) {
0x000474b8 beqz a0, 0x47088 | goto label_14;
| }
0x000474bc lw v0, -0x7fd0(gp) | v0 = *(gp);
| /* str.DEVICE */
0x000474c0 addiu v0, v0, 0x7b84 | v0 += 0x7b84;
0x000474c4 b 0x4708c | goto label_15;
| label_36:
0x000474c8 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x000474cc lw a2, -0x7fc4(gp) | a2 = *(gp);
0x000474d0 lw a1, -0x7fd0(gp) | a1 = *(gp);
| /* str.device_amend */
0x000474d4 addiu v0, v0, 0x50d4 | v0 += 0x50d4;
0x000474d8 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x000474dc sw v0, 0x10(sp) | *(var_10h) = v0;
0x000474e0 addiu a3, zero, 0x106 | a3 = 0x106;
| /* esilref: 'src/libsystemd/sd-device/device-private.c' */
0x000474e4 addiu a2, a2, 0x4983 | a2 += 0x4983;
| /* str.sizeof_char__n____ALLOCA_MAX */
0x000474e8 addiu a1, a1, 0x7c64 | a1 += 0x7c64;
0x000474ec move a0, zero | a0 = 0;
0x000474f0 jalr t9 | t9 ();
| label_42:
0x000474f4 lw t9, -0x7ac8(gp) | t9 = sym.safe_atollu;
0x000474f8 addiu a1, fp, 0x48 | a1 = fp + 0x48;
0x000474fc move a0, s1 | a0 = s1;
0x00047500 jalr t9 | t9 ();
0x00047504 move s0, v0 | s0 = v0;
0x00047508 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 < 0) {
0x0004750c bltz v0, 0x47654 | goto label_59;
| }
0x00047510 lw t9, -0x799c(gp) | t9 = sym.device_set_usec_initialized;
0x00047514 lw a2, 0x48(fp) | a2 = *(var_48h);
0x00047518 lw a3, 0x4c(fp) | a3 = *(var_4ch);
0x0004751c move a0, s2 | a0 = s2;
0x00047520 bal 0x4c9b0 | sym_device_set_usec_initialized ();
0x00047524 move s0, v0 | s0 = v0;
0x00047528 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 >= 0) {
0x0004752c bgez v0, 0x46de0 | goto label_0;
| }
0x00047530 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x00047534 move a0, zero | a0 = 0;
0x00047538 sw zero, 0x44(fp) | *(var_44h) = 0;
0x0004753c jalr t9 | t9 ();
0x00047540 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x00047544 lw gp, 0x30(fp) | gp = *(var_30h);
0x00047548 move a0, zero | a0 = 0;
0x0004754c beqz v0, 0x4758c |
| while (a0 == 0) {
0x00047550 move v0, zero | v0 = 0;
| label_16:
0x00047554 lw v1, -0x7fc4(gp) | v1 = *(gp);
0x00047558 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0004755c lw v0, -0x7fc4(gp) | v0 = *(gp);
| /* str.sd_device:_Failed_to_set_usec_initialized_to__s:__m */
0x00047560 addiu v1, v1, 0x4c34 | v1 += 0x4c34;
| /* esilref: 'device_amend' */
0x00047564 addiu v0, v0, 0x50c4 | v0 += 0x50c4;
0x00047568 lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
0x0004756c sw s1, 0x28(sp) | *(var_28h) = s1;
0x00047570 sw v1, 0x24(sp) | *(var_24h) = v1;
0x00047574 sw zero, 0x20(sp) | *(var_20h) = 0;
0x00047578 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x0004757c sw a0, 0x18(sp) | *(var_18h) = a0;
0x00047580 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00047584 addiu a3, zero, 0x121 | a3 = 0x121;
0x00047588 b 0x47270 | goto label_5;
0x0004758c lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x00047590 move a0, s2 | a0 = s2;
0x00047594 addiu a1, fp, 0x44 | a1 = fp + 0x44;
0x00047598 bal 0x4ac0c | sym_sd_device_get_sysname ();
0x0004759c lw a0, 0x44(fp) | a0 = *(var_44h);
0x000475a0 lw gp, 0x30(fp) | gp = *(var_30h);
0x000475a4 beqz a0, 0x47550 |
| }
0x000475a8 lw v0, -0x7fd0(gp) | v0 = *(gp);
| /* str.DEVICE */
0x000475ac addiu v0, v0, 0x7b84 | v0 += 0x7b84;
0x000475b0 b 0x47554 | goto label_16;
| label_44:
0x000475b4 lw t9, -0x796c(gp) | t9 = *(gp);
0x000475b8 move a1, s1 | a1 = s1;
0x000475bc move a0, s2 | a0 = s2;
0x000475c0 bal 0x4a0b8 | sym_device_set_ifindex ();
0x000475c4 move s0, v0 | s0 = v0;
0x000475c8 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 >= 0) {
0x000475cc bgez v0, 0x46ddc | goto label_2;
| }
0x000475d0 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x000475d4 move a0, zero | a0 = 0;
0x000475d8 sw zero, 0x48(fp) | *(var_48h) = 0;
0x000475dc jalr t9 | t9 ();
0x000475e0 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x000475e4 lw gp, 0x30(fp) | gp = *(var_30h);
0x000475e8 move a0, zero | a0 = 0;
0x000475ec beqz v0, 0x4762c |
| while (a0 == 0) {
0x000475f0 move v0, zero | v0 = 0;
| label_17:
0x000475f4 lw v1, -0x7fc4(gp) | v1 = *(gp);
0x000475f8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000475fc lw v0, -0x7fc4(gp) | v0 = *(gp);
| /* str.sd_device:_Failed_to_set_ifindex_to__s:__m */
0x00047600 addiu v1, v1, 0x4c98 | v1 += 0x4c98;
| /* esilref: 'device_amend' */
0x00047604 addiu v0, v0, 0x50c4 | v0 += 0x50c4;
0x00047608 lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
0x0004760c sw s1, 0x28(sp) | *(var_28h) = s1;
0x00047610 sw v1, 0x24(sp) | *(var_24h) = v1;
0x00047614 sw zero, 0x20(sp) | *(var_20h) = 0;
0x00047618 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x0004761c sw a0, 0x18(sp) | *(var_18h) = a0;
0x00047620 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00047624 addiu a3, zero, 0x129 | a3 = 0x129;
0x00047628 b 0x47270 | goto label_5;
0x0004762c lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x00047630 move a0, s2 | a0 = s2;
0x00047634 addiu a1, fp, 0x48 | a1 = fp + 0x48;
0x00047638 bal 0x4ac0c | sym_sd_device_get_sysname ();
0x0004763c lw a0, 0x48(fp) | a0 = *(var_48h);
0x00047640 lw gp, 0x30(fp) | gp = *(var_30h);
0x00047644 beqz a0, 0x475f0 |
| }
0x00047648 lw v0, -0x7fd0(gp) | v0 = *(gp);
| /* str.DEVICE */
0x0004764c addiu v0, v0, 0x7b84 | v0 += 0x7b84;
0x00047650 b 0x475f4 | goto label_17;
| label_59:
0x00047654 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x00047658 move a0, zero | a0 = 0;
0x0004765c sw zero, 0x44(fp) | *(var_44h) = 0;
0x00047660 jalr t9 | t9 ();
0x00047664 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x00047668 lw gp, 0x30(fp) | gp = *(var_30h);
0x0004766c move a0, zero | a0 = 0;
0x00047670 beqz v0, 0x476b0 |
| while (a0 == 0) {
0x00047674 move v1, zero | v1 = 0;
| label_18:
0x00047678 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0004767c lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
| /* str.sd_device:_Failed_to_parse_timestamp__s:__m */
0x00047680 addiu v0, v0, 0x4c04 | v0 += 0x4c04;
0x00047684 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00047688 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0004768c sw s1, 0x28(sp) | *(var_28h) = s1;
| /* esilref: 'device_amend' */
0x00047690 addiu v0, v0, 0x50c4 | v0 += 0x50c4;
0x00047694 sw zero, 0x20(sp) | *(var_20h) = 0;
0x00047698 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x0004769c sw a0, 0x18(sp) | *(var_18h) = a0;
0x000476a0 sw v1, 0x14(sp) | *(var_14h) = v1;
0x000476a4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000476a8 addiu a3, zero, 0x11d | a3 = 0x11d;
0x000476ac b 0x47270 | goto label_5;
0x000476b0 lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x000476b4 move a0, s2 | a0 = s2;
0x000476b8 addiu a1, fp, 0x44 | a1 = fp + 0x44;
0x000476bc bal 0x4ac0c | sym_sd_device_get_sysname ();
0x000476c0 lw a0, 0x44(fp) | a0 = *(var_44h);
0x000476c4 lw gp, 0x30(fp) | gp = *(var_30h);
0x000476c8 beqz a0, 0x47674 |
| }
0x000476cc lw v1, -0x7fd0(gp) | v1 = *(gp);
| /* str.DEVICE */
0x000476d0 addiu v1, v1, 0x7b84 | v1 += 0x7b84;
0x000476d4 b 0x47678 | goto label_18;
| label_45:
0x000476d8 lw t9, -0x7968(gp) | t9 = sym.device_set_devmode;
0x000476dc move a1, s1 | a1 = s1;
0x000476e0 move a0, s2 | a0 = s2;
0x000476e4 bal 0x4a338 | sym_device_set_devmode ();
0x000476e8 move s0, v0 | s0 = v0;
0x000476ec lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 >= 0) {
0x000476f0 bgez v0, 0x46ddc | goto label_2;
| }
0x000476f4 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x000476f8 move a0, zero | a0 = 0;
0x000476fc sw zero, 0x48(fp) | *(var_48h) = 0;
0x00047700 jalr t9 | t9 ();
0x00047704 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x00047708 lw gp, 0x30(fp) | gp = *(var_30h);
0x0004770c move v1, zero | v1 = 0;
0x00047710 beqz v0, 0x47750 |
| while (v1 == 0) {
0x00047714 move v0, zero | v0 = 0;
| label_19:
0x00047718 lw a0, -0x7fc4(gp) | a0 = *(gp);
0x0004771c sw v0, 0x14(sp) | *(var_14h) = v0;
0x00047720 lw v0, -0x7fc4(gp) | v0 = *(gp);
| /* str.sd_device:_Failed_to_set_devmode_to__s:__m */
0x00047724 addiu a0, a0, 0x4cd0 | a0 += 0x4cd0;
| /* esilref: 'device_amend' */
0x00047728 addiu v0, v0, 0x50c4 | v0 += 0x50c4;
0x0004772c lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
0x00047730 sw s1, 0x28(sp) | *(var_28h) = s1;
0x00047734 sw a0, 0x24(sp) | *(var_24h) = a0;
0x00047738 sw zero, 0x20(sp) | *(var_20h) = 0;
0x0004773c sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x00047740 sw v1, 0x18(sp) | *(var_18h) = v1;
0x00047744 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00047748 addiu a3, zero, 0x12d | a3 = 0x12d;
0x0004774c b 0x47270 | goto label_5;
0x00047750 lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x00047754 addiu a1, fp, 0x48 | a1 = fp + 0x48;
0x00047758 move a0, s2 | a0 = s2;
0x0004775c bal 0x4ac0c | sym_sd_device_get_sysname ();
0x00047760 lw v1, 0x48(fp) | v1 = *(var_48h);
0x00047764 lw gp, 0x30(fp) | gp = *(var_30h);
0x00047768 beqz v1, 0x47714 |
| }
0x0004776c lw v0, -0x7fd0(gp) | v0 = *(gp);
| /* str.DEVICE */
0x00047770 addiu v0, v0, 0x7b84 | v0 += 0x7b84;
0x00047774 b 0x47718 | goto label_19;
| label_46:
0x00047778 lw t9, -0x7e30(gp) | t9 = sym.safe_atou_full;
0x0004777c addiu s0, fp, 0x48 | s0 = fp + 0x48;
0x00047780 move a2, s0 | a2 = s0;
0x00047784 move a1, zero | a1 = 0;
0x00047788 move a0, s1 | a0 = s1;
0x0004778c jalr t9 | t9 ();
0x00047790 move s6, v0 | s6 = v0;
0x00047794 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 < 0) {
0x00047798 bltz v0, 0x478bc | goto label_60;
| }
0x0004779c lw t9, -0x7994(gp) | t9 = sym.device_add_property_internal;
0x000477a0 move a2, s1 | a2 = s1;
| /* str.DEVUID */
0x000477a4 addiu a1, s5, 0x4d00 | a1 = s5 + 0x4d00;
0x000477a8 move a0, s2 | a0 = s2;
0x000477ac bal 0x48ad8 | sym_device_add_property_internal ();
0x000477b0 move s6, v0 | s6 = v0;
0x000477b4 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 < 0) {
0x000477b8 bltz v0, 0x478bc | goto label_60;
| }
0x000477bc lw v0, 0x48(fp) | v0 = *(var_48h);
0x000477c0 sw v0, 0xcc(s2) | *((s2 + 51)) = v0;
0x000477c4 b 0x46de0 | goto label_0;
| label_47:
0x000477c8 lw t9, -0x7e30(gp) | t9 = sym.safe_atou_full;
0x000477cc addiu s0, fp, 0x48 | s0 = fp + 0x48;
0x000477d0 move a2, s0 | a2 = s0;
0x000477d4 move a1, zero | a1 = 0;
0x000477d8 move a0, s1 | a0 = s1;
0x000477dc jalr t9 | t9 ();
0x000477e0 move s6, v0 | s6 = v0;
0x000477e4 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 < 0) {
0x000477e8 bltz v0, 0x47b7c | goto label_61;
| }
0x000477ec lw t9, -0x7994(gp) | t9 = sym.device_add_property_internal;
0x000477f0 move a2, s1 | a2 = s1;
| /* str.DEVGID */
0x000477f4 addiu a1, s5, 0x4d34 | a1 = s5 + 0x4d34;
0x000477f8 move a0, s2 | a0 = s2;
0x000477fc bal 0x48ad8 | sym_device_add_property_internal ();
0x00047800 move s6, v0 | s6 = v0;
0x00047804 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 < 0) {
0x00047808 bltz v0, 0x47b7c | goto label_61;
| }
0x0004780c lw v0, 0x48(fp) | v0 = *(var_48h);
0x00047810 sw v0, 0xd0(s2) | *((s2 + 52)) = v0;
0x00047814 b 0x46de0 | goto label_0;
| label_48:
0x00047818 lw t9, -0x7a60(gp) | t9 = *(gp);
0x0004781c move a1, s1 | a1 = s1;
| /* fcn.00046bfc */
0x00047820 addiu t9, t9, 0x6bfc | t9 += 0x6bfc;
0x00047824 move a0, s2 | a0 = s2;
0x00047828 bal 0x46bfc | fcn_00046bfc ();
0x0004782c move s0, v0 | s0 = v0;
0x00047830 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 >= 0) {
0x00047834 bgez v0, 0x46ddc | goto label_2;
| }
0x00047838 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x0004783c move a0, zero | a0 = 0;
0x00047840 sw zero, 0x48(fp) | *(var_48h) = 0;
0x00047844 jalr t9 | t9 ();
0x00047848 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x0004784c lw gp, 0x30(fp) | gp = *(var_30h);
0x00047850 move v1, zero | v1 = 0;
0x00047854 beqz v0, 0x47894 |
| while (v1 == 0) {
0x00047858 move v0, zero | v0 = 0;
| label_20:
0x0004785c lw a0, -0x7fc4(gp) | a0 = *(gp);
0x00047860 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00047864 lw v0, -0x7fc4(gp) | v0 = *(gp);
| /* str.sd_device:_Failed_to_set_action_to__s:__m */
0x00047868 addiu a0, a0, 0x4d68 | a0 += 0x4d68;
| /* esilref: 'device_amend' */
0x0004786c addiu v0, v0, 0x50c4 | v0 += 0x50c4;
0x00047870 lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
0x00047874 sw s1, 0x28(sp) | *(var_28h) = s1;
0x00047878 sw a0, 0x24(sp) | *(var_24h) = a0;
0x0004787c sw zero, 0x20(sp) | *(var_20h) = 0;
0x00047880 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x00047884 sw v1, 0x18(sp) | *(var_18h) = v1;
0x00047888 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0004788c addiu a3, zero, 0x139 | a3 = 0x139;
0x00047890 b 0x47270 | goto label_5;
0x00047894 lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x00047898 addiu a1, fp, 0x48 | a1 = fp + 0x48;
0x0004789c move a0, s2 | a0 = s2;
0x000478a0 bal 0x4ac0c | sym_sd_device_get_sysname ();
0x000478a4 lw v1, 0x48(fp) | v1 = *(var_48h);
0x000478a8 lw gp, 0x30(fp) | gp = *(var_30h);
0x000478ac beqz v1, 0x47858 |
| }
0x000478b0 lw v0, -0x7fd0(gp) | v0 = *(gp);
| /* str.DEVICE */
0x000478b4 addiu v0, v0, 0x7b84 | v0 += 0x7b84;
0x000478b8 b 0x4785c | goto label_20;
| label_60:
0x000478bc lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x000478c0 move a0, zero | a0 = 0;
0x000478c4 sw zero, 0x48(fp) | *(var_48h) = 0;
0x000478c8 jalr t9 | t9 ();
0x000478cc slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x000478d0 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 == 0) {
0x000478d4 beqz v0, 0x47bd8 | goto label_62;
| }
0x000478d8 move v1, zero | v1 = 0;
| label_25:
0x000478dc move v0, zero | v0 = 0;
| label_26:
0x000478e0 lw a0, -0x7fc4(gp) | a0 = *(gp);
0x000478e4 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000478e8 lw v0, -0x7fc4(gp) | v0 = *(gp);
| /* str.sd_device:_Failed_to_set_devuid_to__s:__m */
0x000478ec addiu a0, a0, 0x4d08 | a0 += 0x4d08;
| /* esilref: 'device_amend' */
0x000478f0 addiu v0, v0, 0x50c4 | v0 += 0x50c4;
0x000478f4 lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
0x000478f8 sw s1, 0x28(sp) | *(var_28h) = s1;
0x000478fc sw a0, 0x24(sp) | *(var_24h) = a0;
0x00047900 sw zero, 0x20(sp) | *(var_20h) = 0;
0x00047904 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x00047908 sw v1, 0x18(sp) | *(var_18h) = v1;
0x0004790c sw v0, 0x10(sp) | *(var_10h) = v0;
0x00047910 addiu a3, zero, 0x131 | a3 = 0x131;
| label_24:
0x00047914 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x00047918 move a1, s6 | a1 = s6;
| /* esilref: 'src/libsystemd/sd-device/device-private.c' */
0x0004791c addiu a2, a2, 0x4983 | a2 += 0x4983;
0x00047920 addiu a0, zero, 7 | a0 = 7;
0x00047924 jalr t9 | t9 ();
0x00047928 move s4, v0 | s4 = v0;
0x0004792c lw gp, 0x30(fp) | gp = *(var_30h);
0x00047930 b 0x46de0 | goto label_0;
| label_49:
0x00047934 lw t9, -0x7ac8(gp) | t9 = sym.safe_atollu;
0x00047938 addiu s0, fp, 0x48 | s0 = fp + 0x48;
0x0004793c move a1, s0 | a1 = s0;
0x00047940 move a0, s1 | a0 = s1;
0x00047944 jalr t9 | t9 ();
0x00047948 move s6, v0 | s6 = v0;
0x0004794c lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 < 0) {
0x00047950 bltz v0, 0x47c2c | goto label_63;
| }
0x00047954 lw v0, 0x48(fp) | v0 = *(var_48h);
0x00047958 lw v1, 0x4c(fp) | v1 = *(var_4ch);
0x0004795c or v0, v0, v1 | v0 |= v1;
0x00047960 lw t9, -0x7994(gp) | t9 = sym.device_add_property_internal;
| if (v0 == 0) {
0x00047964 beqz v0, 0x47c28 | goto label_64;
| }
0x00047968 move a2, s1 | a2 = s1;
| /* str.SEQNUM */
0x0004796c addiu a1, s5, -0x3d2c | a1 = s5 + -0x3d2c;
0x00047970 move a0, s2 | a0 = s2;
0x00047974 bal 0x48ad8 | sym_device_add_property_internal ();
0x00047978 move s6, v0 | s6 = v0;
0x0004797c lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 < 0) {
0x00047980 bltz v0, 0x47c2c | goto label_63;
| }
0x00047984 lw v0, 0x48(fp) | v0 = *(var_48h);
0x00047988 lw v1, 0x4c(fp) | v1 = *(var_4ch);
0x0004798c sw v0, 0xd8(s2) | *((s2 + 54)) = v0;
0x00047990 sw v1, 0xdc(s2) | *((s2 + 55)) = v1;
0x00047994 b 0x46de0 | goto label_0;
| label_51:
0x00047998 lw t9, -0x7994(gp) | t9 = sym.device_add_property_internal;
0x0004799c move a2, s1 | a2 = s1;
0x000479a0 move a1, s0 | a1 = s0;
0x000479a4 move a0, s2 | a0 = s2;
0x000479a8 bal 0x48ad8 | sym_device_add_property_internal ();
0x000479ac move s4, v0 | s4 = v0;
0x000479b0 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 >= 0) {
0x000479b4 bgez v0, 0x46ddc | goto label_2;
| }
0x000479b8 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x000479bc move a0, zero | a0 = 0;
0x000479c0 sw zero, 0x48(fp) | *(var_48h) = 0;
0x000479c4 jalr t9 | t9 ();
0x000479c8 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x000479cc lw gp, 0x30(fp) | gp = *(var_30h);
0x000479d0 move v1, zero | v1 = 0;
| if (v0 == 0) {
0x000479d4 beqz v0, 0x47cbc | goto label_65;
| }
| label_30:
0x000479d8 move v0, zero | v0 = 0;
| label_31:
0x000479dc lw a0, -0x7fc4(gp) | a0 = *(gp);
0x000479e0 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000479e4 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x000479e8 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x000479ec lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
| /* str.sd_device:_Failed_to_add_property__s_s:__m */
0x000479f0 addiu a0, a0, 0x4e18 | a0 += 0x4e18;
| /* esilref: 'device_amend' */
0x000479f4 addiu v0, v0, 0x50c4 | v0 += 0x50c4;
0x000479f8 sw a0, 0x24(sp) | *(var_24h) = a0;
0x000479fc move a1, s4 | a1 = s4;
0x00047a00 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x00047a04 sw s0, 0x28(sp) | *(var_28h) = s0;
0x00047a08 sw zero, 0x20(sp) | *(var_20h) = 0;
0x00047a0c sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x00047a10 sw v1, 0x18(sp) | *(var_18h) = v1;
0x00047a14 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00047a18 addiu a3, zero, 0x15d | a3 = 0x15d;
| /* esilref: 'src/libsystemd/sd-device/device-private.c' */
0x00047a1c addiu a2, a2, 0x4983 | a2 += 0x4983;
0x00047a20 addiu a0, zero, 7 | a0 = 7;
0x00047a24 jalr t9 | t9 ();
0x00047a28 move s4, v0 | s4 = v0;
0x00047a2c lw gp, 0x30(fp) | gp = *(var_30h);
0x00047a30 b 0x46de0 | goto label_0;
| label_50:
0x00047a34 lw s7, -0x7fc4(gp) | s7 = *(gp);
0x00047a38 lw t9, -0x7af4(gp) | t9 = sym.split;
0x00047a3c addiu s6, fp, 0x44 | s6 = fp + 0x44;
0x00047a40 addiu s5, fp, 0x40 | s5 = fp + 0x40;
0x00047a44 move a3, zero | a3 = 0;
| /* esilref: '
' */
0x00047a48 addiu a2, s7, -0x6204 | a2 = s7 + -0x6204;
0x00047a4c move a1, s6 | a1 = s6;
0x00047a50 move a0, s5 | a0 = s5;
0x00047a54 sw s1, 0x40(fp) | *(var_40h) = s1;
0x00047a58 jalr t9 | t9 ();
| /* esilref: '
' */
0x00047a5c addiu v1, s7, -0x6204 | v1 = s7 + -0x6204;
0x00047a60 lw gp, 0x30(fp) | gp = *(var_30h);
0x00047a64 sw v1, 0x3c(fp) | *(var_3ch) = v1;
| if (v0 != 0) {
0x00047a68 bnez v0, 0x47a98 | goto label_66;
| }
0x00047a6c b 0x46de0 | goto label_0;
0x00047a70 nop |
| label_21:
0x00047a74 lw t9, -0x7af4(gp) | t9 = sym.split;
0x00047a78 lw a2, 0x3c(fp) | a2 = *(var_3ch);
0x00047a7c move a3, zero | a3 = 0;
0x00047a80 move sp, s1 |
0x00047a84 move a1, s6 | a1 = s6;
0x00047a88 move a0, s5 | a0 = s5;
0x00047a8c jalr t9 | t9 ();
0x00047a90 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 == 0) {
0x00047a94 beqz v0, 0x46de0 | goto label_0;
| }
| label_66:
0x00047a98 lw s7, 0x44(fp) | s7 = *(var_44h);
0x00047a9c move s1, sp | s1 = sp;
0x00047aa0 addiu a0, s7, 8 | a0 = s7 + 8;
0x00047aa4 srl a0, a0, 3 | a0 >>= 3;
0x00047aa8 sll a0, a0, 3 | a0 <<= 3;
0x00047aac subu sp, sp, a0 |
0x00047ab0 lw t9, -0x73cc(gp) | t9 = sym.imp.strncpy;
0x00047ab4 addiu s0, sp, 0x30 | s0 = sp + 0x30;
0x00047ab8 move a2, s7 | a2 = s7;
0x00047abc move a1, v0 | a1 = v0;
0x00047ac0 move a0, s0 | a0 = s0;
0x00047ac4 jalr t9 | t9 ();
0x00047ac8 lw gp, 0x30(fp) | gp = *(var_30h);
0x00047acc addu v1, s0, s7 | v1 = s0 + s7;
0x00047ad0 move a1, s0 | a1 = s0;
0x00047ad4 lw t9, -0x7c14(gp) | t9 = sym.device_add_devlink;
0x00047ad8 sb zero, (v1) | *(v1) = 0;
0x00047adc move a0, s2 | a0 = s2;
0x00047ae0 bal 0x4c8bc | sym_device_add_devlink ();
0x00047ae4 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 >= 0) {
0x00047ae8 bgez v0, 0x47a74 | goto label_21;
| }
0x00047aec lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x00047af0 move a0, zero | a0 = 0;
0x00047af4 sw v0, 0x3c(fp) | *(var_3ch) = v0;
0x00047af8 sw zero, 0x48(fp) | *(var_48h) = 0;
0x00047afc jalr t9 | t9 ();
0x00047b00 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x00047b04 lw gp, 0x30(fp) | gp = *(var_30h);
0x00047b08 lw v1, 0x3c(fp) | v1 = *(var_3ch);
0x00047b0c move a0, zero | a0 = 0;
0x00047b10 beqz v0, 0x47b50 |
| while (a0 == 0) {
0x00047b14 move v0, zero | v0 = 0;
| label_23:
0x00047b18 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00047b1c sw v0, 0x14(sp) | *(var_14h) = v0;
0x00047b20 lw v0, -0x7fc4(gp) | v0 = *(gp);
| /* str.sd_device:_Failed_to_add_devlink__s:__m */
0x00047b24 addiu a1, a1, 0x4dc0 | a1 += 0x4dc0;
| /* esilref: 'device_amend' */
0x00047b28 addiu v0, v0, 0x50c4 | v0 += 0x50c4;
0x00047b2c lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
0x00047b30 sw s0, 0x28(sp) | *(var_28h) = s0;
0x00047b34 sw a1, 0x24(sp) | *(var_24h) = a1;
0x00047b38 sw zero, 0x20(sp) | *(var_20h) = 0;
0x00047b3c sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x00047b40 sw a0, 0x18(sp) | *(var_18h) = a0;
0x00047b44 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00047b48 addiu a3, zero, 0x14a | a3 = 0x14a;
0x00047b4c b 0x470c0 | goto label_22;
0x00047b50 lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x00047b54 move a0, s2 | a0 = s2;
0x00047b58 addiu a1, fp, 0x48 | a1 = fp + 0x48;
0x00047b5c bal 0x4ac0c | sym_sd_device_get_sysname ();
0x00047b60 lw a0, 0x48(fp) | a0 = *(var_48h);
0x00047b64 lw gp, 0x30(fp) | gp = *(var_30h);
0x00047b68 lw v1, 0x3c(fp) | v1 = *(var_3ch);
0x00047b6c beqz a0, 0x47b14 |
| }
0x00047b70 lw v0, -0x7fd0(gp) | v0 = *(gp);
| /* str.DEVICE */
0x00047b74 addiu v0, v0, 0x7b84 | v0 += 0x7b84;
0x00047b78 b 0x47b18 | goto label_23;
| label_61:
0x00047b7c lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x00047b80 move a0, zero | a0 = 0;
0x00047b84 sw zero, 0x48(fp) | *(var_48h) = 0;
0x00047b88 jalr t9 | t9 ();
0x00047b8c slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x00047b90 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v0 == 0) {
0x00047b94 beqz v0, 0x47c00 | goto label_67;
| }
0x00047b98 move v1, zero | v1 = 0;
| label_27:
0x00047b9c move v0, zero | v0 = 0;
| label_28:
0x00047ba0 lw a0, -0x7fc4(gp) | a0 = *(gp);
0x00047ba4 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00047ba8 lw v0, -0x7fc4(gp) | v0 = *(gp);
| /* str.sd_device:_Failed_to_set_devgid_to__s:__m */
0x00047bac addiu a0, a0, 0x4d3c | a0 += 0x4d3c;
| /* esilref: 'device_amend' */
0x00047bb0 addiu v0, v0, 0x50c4 | v0 += 0x50c4;
0x00047bb4 lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
0x00047bb8 sw s1, 0x28(sp) | *(var_28h) = s1;
0x00047bbc sw a0, 0x24(sp) | *(var_24h) = a0;
0x00047bc0 sw zero, 0x20(sp) | *(var_20h) = 0;
0x00047bc4 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x00047bc8 sw v1, 0x18(sp) | *(var_18h) = v1;
0x00047bcc sw v0, 0x10(sp) | *(var_10h) = v0;
0x00047bd0 addiu a3, zero, 0x135 | a3 = 0x135;
0x00047bd4 b 0x47914 | goto label_24;
| label_62:
0x00047bd8 lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x00047bdc move a1, s0 | a1 = s0;
0x00047be0 move a0, s2 | a0 = s2;
0x00047be4 bal 0x4ac0c | sym_sd_device_get_sysname ();
0x00047be8 lw v1, 0x48(fp) | v1 = *(var_48h);
0x00047bec lw gp, 0x30(fp) | gp = *(var_30h);
| if (v1 == 0) {
0x00047bf0 beqz v1, 0x478dc | goto label_25;
| }
0x00047bf4 lw v0, -0x7fd0(gp) | v0 = *(gp);
| /* str.DEVICE */
0x00047bf8 addiu v0, v0, 0x7b84 | v0 += 0x7b84;
0x00047bfc b 0x478e0 | goto label_26;
| label_67:
0x00047c00 lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x00047c04 move a1, s0 | a1 = s0;
0x00047c08 move a0, s2 | a0 = s2;
0x00047c0c bal 0x4ac0c | sym_sd_device_get_sysname ();
0x00047c10 lw v1, 0x48(fp) | v1 = *(var_48h);
0x00047c14 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v1 == 0) {
0x00047c18 beqz v1, 0x47b9c | goto label_27;
| }
0x00047c1c lw v0, -0x7fd0(gp) | v0 = *(gp);
| /* str.DEVICE */
0x00047c20 addiu v0, v0, 0x7b84 | v0 += 0x7b84;
0x00047c24 b 0x47ba0 | goto label_28;
| label_64:
0x00047c28 addiu s6, zero, -0x16 | s6 = -0x16;
| label_63:
0x00047c2c lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x00047c30 move a0, zero | a0 = 0;
0x00047c34 sw zero, 0x48(fp) | *(var_48h) = 0;
0x00047c38 jalr t9 | t9 ();
0x00047c3c slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x00047c40 lw gp, 0x30(fp) | gp = *(var_30h);
0x00047c44 move v1, zero | v1 = 0;
0x00047c48 beqz v0, 0x47c88 |
| while (v1 == 0) {
0x00047c4c move v0, zero | v0 = 0;
| label_29:
0x00047c50 lw a0, -0x7fc4(gp) | a0 = *(gp);
0x00047c54 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00047c58 lw v0, -0x7fc4(gp) | v0 = *(gp);
| /* str.sd_device:_Failed_to_set_SEQNUM_to__s:__m */
0x00047c5c addiu a0, a0, 0x4d94 | a0 += 0x4d94;
| /* esilref: 'device_amend' */
0x00047c60 addiu v0, v0, 0x50c4 | v0 += 0x50c4;
0x00047c64 lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
0x00047c68 sw s1, 0x28(sp) | *(var_28h) = s1;
0x00047c6c sw a0, 0x24(sp) | *(var_24h) = a0;
0x00047c70 sw zero, 0x20(sp) | *(var_20h) = 0;
0x00047c74 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x00047c78 sw v1, 0x18(sp) | *(var_18h) = v1;
0x00047c7c sw v0, 0x10(sp) | *(var_10h) = v0;
0x00047c80 addiu a3, zero, 0x13d | a3 = 0x13d;
0x00047c84 b 0x47914 | goto label_24;
0x00047c88 lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x00047c8c move a1, s0 | a1 = s0;
0x00047c90 move a0, s2 | a0 = s2;
0x00047c94 bal 0x4ac0c | sym_sd_device_get_sysname ();
0x00047c98 lw v1, 0x48(fp) | v1 = *(var_48h);
0x00047c9c lw gp, 0x30(fp) | gp = *(var_30h);
0x00047ca0 beqz v1, 0x47c4c |
| }
0x00047ca4 lw v0, -0x7fd0(gp) | v0 = *(gp);
| /* str.DEVICE */
0x00047ca8 addiu v0, v0, 0x7b84 | v0 += 0x7b84;
0x00047cac b 0x47c50 | goto label_29;
| label_38:
0x00047cb0 lw t9, -0x7230(gp) | t9 = sym.imp.__stack_chk_fail;
0x00047cb4 jalr t9 | t9 ();
0x00047cb8 nop |
| label_65:
0x00047cbc lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x00047cc0 addiu a1, fp, 0x48 | a1 = fp + 0x48;
0x00047cc4 move a0, s2 | a0 = s2;
0x00047cc8 bal 0x4ac0c | sym_sd_device_get_sysname ();
0x00047ccc lw v1, 0x48(fp) | v1 = *(var_48h);
0x00047cd0 lw gp, 0x30(fp) | gp = *(var_30h);
| if (v1 == 0) {
0x00047cd4 beqz v1, 0x479d8 | goto label_30;
| }
0x00047cd8 lw v0, -0x7fd0(gp) | v0 = *(gp);
| /* str.DEVICE */
0x00047cdc addiu v0, v0, 0x7b84 | v0 += 0x7b84;
0x00047ce0 b 0x479dc | goto label_31;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd-udevd @ 0x73ca0 */
| #include <stdint.h>
|
; (fcn) sym.path_make_relative () | void path_make_relative () {
0x00073ca0 lui gp, 5 |
0x00073ca4 addiu gp, gp, 0x34d0 |
0x00073ca8 addu gp, gp, t9 | gp += t9;
0x00073cac addiu sp, sp, -0x58 |
0x00073cb0 lw v0, -0x71f0(gp) | v0 = *((gp - 7292));
0x00073cb4 sw fp, 0x50(sp) | *(var_50h) = fp;
0x00073cb8 move fp, sp | fp = sp;
0x00073cbc sw ra, 0x54(sp) | *(var_54h) = ra;
0x00073cc0 sw s7, 0x4c(sp) | *(var_4ch) = s7;
0x00073cc4 sw s6, 0x48(sp) | *(var_48h) = s6;
0x00073cc8 sw s5, 0x44(sp) | *(var_44h) = s5;
0x00073ccc sw s4, 0x40(sp) | *(var_40h) = s4;
0x00073cd0 sw s3, 0x3c(sp) | *(var_3ch) = s3;
0x00073cd4 sw s2, 0x38(sp) | *(var_38h) = s2;
0x00073cd8 sw s1, 0x34(sp) | *(var_34h) = s1;
0x00073cdc sw s0, 0x30(sp) | *(var_30h) = s0;
0x00073ce0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00073ce4 sw v0, 0x20(fp) | *(arg_20h) = v0;
0x00073ce8 lw v0, (v0) | v0 = *(v0);
0x00073cec sw a2, 0x24(fp) | *(arg_24h) = a2;
0x00073cf0 sw v0, 0x2c(fp) | *(arg_2ch) = v0;
| if (a0 == 0) {
0x00073cf4 beql a0, zero, 0x74064 | goto label_6;
| }
0x00073cf8 lw v0, -0x7e08(gp) | v0 = *((gp - 8066));
0x00073cfc move s1, a1 | s1 = a1;
| if (a1 == 0) {
0x00073d00 beqz a1, 0x74098 | goto label_7;
| }
0x00073d04 lw v0, 0x24(fp) | v0 = *(arg_24h);
0x00073d08 lw t9, -0x7d10(gp) | t9 = sym.path_is_absolute;
| if (v0 == 0) {
0x00073d0c beqz v0, 0x740c4 | goto label_8;
| }
0x00073d10 move s0, a0 | s0 = a0;
0x00073d14 bal 0x73a10 | sym_path_is_absolute ();
0x00073d18 lw gp, 0x18(fp) | gp = *(arg_18h);
| if (v0 == 0) {
0x00073d1c beqz v0, 0x73f10 | goto label_9;
| }
0x00073d20 lw t9, -0x7d10(gp) | t9 = sym.path_is_absolute;
0x00073d24 move a0, s1 | a0 = s1;
0x00073d28 bal 0x73a10 | sym_path_is_absolute ();
0x00073d2c lw gp, 0x18(fp) | gp = *(arg_18h);
| if (v0 == 0) {
0x00073d30 beqz v0, 0x73f10 | goto label_9;
| }
0x00073d34 lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x00073d38 move a0, s0 | a0 = s0;
0x00073d3c jalr t9 | t9 ();
0x00073d40 addiu v1, v0, 8 | v1 = v0 + 8;
0x00073d44 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00073d48 srl v1, v1, 3 | v1 >>= 3;
0x00073d4c sll v1, v1, 3 | v1 <<= 3;
0x00073d50 subu sp, sp, v1 |
0x00073d54 lw t9, -0x71e8(gp) | t9 = sym.imp.memcpy;
0x00073d58 move a1, s0 | a1 = s0;
0x00073d5c addiu a2, v0, 1 | a2 = v0 + 1;
0x00073d60 addiu a0, sp, 0x18 | a0 = sp + 0x18;
0x00073d64 jalr t9 | t9 ();
0x00073d68 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00073d6c move a0, s1 | a0 = s1;
0x00073d70 lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x00073d74 move s0, v0 | s0 = v0;
0x00073d78 jalr t9 | t9 ();
0x00073d7c addiu v1, v0, 8 | v1 = v0 + 8;
0x00073d80 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00073d84 srl v1, v1, 3 | v1 >>= 3;
0x00073d88 sll v1, v1, 3 | v1 <<= 3;
0x00073d8c subu sp, sp, v1 |
0x00073d90 lw t9, -0x71e8(gp) | t9 = sym.imp.memcpy;
0x00073d94 addiu a2, v0, 1 | a2 = v0 + 1;
0x00073d98 move a1, s1 | a1 = s1;
0x00073d9c addiu a0, sp, 0x18 | a0 = sp + 0x18;
0x00073da0 jalr t9 | t9 ();
0x00073da4 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00073da8 move a0, s0 | a0 = s0;
0x00073dac addiu a1, zero, 1 | a1 = 1;
0x00073db0 lw t9, -0x7958(gp) | t9 = sym.path_simplify;
0x00073db4 move s1, v0 | s1 = v0;
0x00073db8 bal 0x73ad8 | sym_path_simplify ();
0x00073dbc lw gp, 0x18(fp) | gp = *(arg_18h);
0x00073dc0 move a0, s1 | a0 = s1;
0x00073dc4 lw t9, -0x7958(gp) | t9 = sym.path_simplify;
0x00073dc8 addiu a1, zero, 1 | a1 = 1;
0x00073dcc bal 0x73ad8 | sym_path_simplify ();
0x00073dd0 lb v1, (s0) | v1 = *(s0);
0x00073dd4 lb v0, (s1) | v0 = *(s1);
0x00073dd8 xori v1, v1, 0x2f | v1 ^= 0x2f;
0x00073ddc sltiu v1, v1, 1 | v1 = (v1 < 1) ? 1 : 0;
0x00073de0 addu s0, s0, v1 | s0 += v1;
0x00073de4 xori v0, v0, 0x2f | v0 ^= 0x2f;
0x00073de8 sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
0x00073dec addu s1, s1, v0 | s1 += v0;
0x00073df0 lb s6, (s0) | s6 = *(s0);
0x00073df4 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00073df8 lb s2, (s1) | s2 = *(s1);
| if (s6 == 0) {
0x00073dfc beqz s6, 0x73fe0 | goto label_10;
| }
0x00073e00 lw s3, -0x7fc4(gp) | s3 = *(gp);
0x00073e04 addiu s4, s3, 0x35c4 | s4 = s3 + 0x35c4;
| if (s2 != 0) {
0x00073e08 bnez s2, 0x73e6c | goto label_11;
| }
0x00073e0c lw t9, -0x719c(gp) | t9 = sym.imp.strcspn;
0x00073e10 b 0x7400c | goto label_12;
| do {
0x00073e14 lw t9, -0x7218(gp) | t9 = sym.imp.memcmp;
0x00073e18 move a2, s7 | a2 = s7;
0x00073e1c move a1, s1 | a1 = s1;
0x00073e20 move a0, s0 | a0 = s0;
0x00073e24 jalr t9 | t9 ();
0x00073e28 lw gp, 0x18(fp) | gp = *(arg_18h);
| if (v0 != 0) {
0x00073e2c bnez v0, 0x73e9c | goto label_13;
| }
0x00073e30 addu s0, s0, s7 | s0 += s7;
0x00073e34 addu v1, s1, s7 | v1 = s1 + s7;
0x00073e38 lb v0, (s0) | v0 = *(s0);
0x00073e3c lb s1, (v1) | s1 = *(v1);
0x00073e40 xori v0, v0, 0x2f | v0 ^= 0x2f;
0x00073e44 sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
0x00073e48 addu s0, s0, v0 | s0 += v0;
0x00073e4c xori s1, s1, 0x2f | s1 ^= 0x2f;
0x00073e50 sltiu s1, s1, 1 | s1 = (s1 < 1) ? 1 : 0;
0x00073e54 addu s1, v1, s1 | s1 = v1 + s1;
0x00073e58 lb s6, (s0) | s6 = *(s0);
0x00073e5c lb s2, (s1) | s2 = *(s1);
| if (s6 == 0) {
0x00073e60 beqz s6, 0x73fe0 | goto label_10;
| }
0x00073e64 lw t9, -0x719c(gp) | t9 = sym.imp.strcspn;
| if (s2 == 0) {
0x00073e68 beqz s2, 0x7400c | goto label_12;
| }
| label_11:
0x00073e6c lw t9, -0x719c(gp) | t9 = sym.imp.strcspn;
0x00073e70 move a1, s4 | a1 = s4;
0x00073e74 move a0, s0 | a0 = s0;
0x00073e78 jalr t9 | t9 ();
0x00073e7c lw gp, 0x18(fp) | gp = *(arg_18h);
0x00073e80 move a1, s4 | a1 = s4;
0x00073e84 move a0, s1 | a0 = s1;
0x00073e88 lw t9, -0x719c(gp) | t9 = sym.imp.strcspn;
0x00073e8c move s7, v0 | s7 = v0;
0x00073e90 jalr t9 | t9 ();
0x00073e94 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00073e98 beq s7, v0, 0x73e14 |
| } while (s7 == v0);
| label_13:
0x00073e9c lb s6, (s0) | s6 = *(s0);
0x00073ea0 lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
| if (s6 == 0) {
0x00073ea4 beqz s6, 0x74028 | goto label_14;
| }
| label_2:
0x00073ea8 move s5, zero | s5 = 0;
0x00073eac addiu s4, zero, 2 | s4 = 2;
0x00073eb0 addiu s3, s3, 0x35c4 | s3 += 0x35c4;
0x00073eb4 b 0x73eec |
| while (s7 != s4) {
| label_1:
0x00073eb8 lb s0, (v1) | s0 = *(v1);
| label_0:
0x00073ebc xori s0, s0, 0x2f | s0 ^= 0x2f;
0x00073ec0 sltiu s0, s0, 1 | s0 = (s0 < 1) ? 1 : 0;
0x00073ec4 addu s0, v1, s0 | s0 = v1 + s0;
0x00073ec8 lb s6, (s0) | s6 = *(s0);
0x00073ecc addiu s5, s5, 1 | s5++;
| if (s6 == 0) {
0x00073ed0 beqz s6, 0x73f18 | goto label_15;
| }
0x00073ed4 lw t9, -0x719c(gp) | t9 = sym.imp.strcspn;
0x00073ed8 move a1, s3 | a1 = s3;
0x00073edc move a0, s0 | a0 = s0;
0x00073ee0 jalr t9 | t9 ();
0x00073ee4 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00073ee8 move s7, v0 | s7 = v0;
0x00073eec addu v1, s0, s7 | v1 = s0 + s7;
0x00073ef0 bne s7, s4, 0x73eb8 |
| }
0x00073ef4 addiu v0, zero, 0x2e | v0 = 0x2e;
0x00073ef8 lb s0, (v1) | s0 = *(v1);
| if (s6 == v0) {
0x00073efc bnel s6, v0, 0x73ebc | goto label_0;
| }
0x00073f00 lb v0, 1(s0) | v0 = *((s0 + 1));
0x00073f04 addiu v1, zero, 0x2e | v1 = 0x2e;
0x00073f08 addu v1, s0, s7 | v1 = s0 + s7;
| if (v0 != v1) {
0x00073f0c bne v0, v1, 0x73eb8 | goto label_1;
| }
| label_9:
0x00073f10 addiu v0, zero, -0x16 | v0 = -0x16;
0x00073f14 b 0x73f98 | goto label_5;
| label_15:
0x00073f18 lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x00073f1c move a0, s1 | a0 = s1;
0x00073f20 jalr t9 | t9 ();
0x00073f24 sll a0, s5, 1 | a0 = s5 << 1;
0x00073f28 addu a0, a0, s5 | a0 += s5;
0x00073f2c addiu v0, v0, 1 | v0++;
0x00073f30 addu a0, a0, v0 | a0 += v0;
0x00073f34 lw gp, 0x18(fp) | gp = *(arg_18h);
| if (a0 == 0) {
0x00073f38 bnez a0, 0x73f40 |
0x00073f3c addiu a0, zero, 1 | a0 = 1;
| }
0x00073f40 lw t9, -0x72d0(gp) | t9 = sym.imp.malloc;
0x00073f44 jalr t9 | t9 ();
0x00073f48 nop |
0x00073f4c move s0, v0 | s0 = v0;
0x00073f50 lw gp, 0x18(fp) | gp = *(arg_18h);
| if (v0 == 0) {
0x00073f54 beqz v0, 0x740f0 | goto label_16;
| }
0x00073f58 move a0, v0 | a0 = v0;
| if (s5 == 0) {
0x00073f5c beqz s5, 0x73f80 | goto label_17;
| }
0x00073f60 addiu v0, zero, 0x2e | v0 = 0x2e;
0x00073f64 addiu v1, zero, 0x2f | v1 = 0x2f;
| do {
0x00073f68 addiu s5, s5, -1 | s5 += -1;
0x00073f6c sb v0, (a0) | *(a0) = v0;
0x00073f70 sb v0, 1(a0) | *((a0 + 1)) = v0;
0x00073f74 sb v1, 2(a0) | *((a0 + 2)) = v1;
0x00073f78 addiu a0, a0, 3 | a0 += 3;
0x00073f7c bnez s5, 0x73f68 |
| } while (s5 != 0);
| label_17:
0x00073f80 lw t9, -0x72a8(gp) | t9 = sym.imp.strcpy
| if (s2 != 0) {
0x00073f84 bnez s2, 0x74054 | goto label_18;
| }
0x00073f88 sb zero, -1(a0) | *((a0 - 1)) = 0;
| label_3:
0x00073f8c lw v0, 0x24(fp) | v0 = *(arg_24h);
0x00073f90 sw s0, (v0) | *(v0) = s0;
0x00073f94 move v0, zero | v0 = 0;
| do {
| label_5:
0x00073f98 lw v1, 0x20(fp) | v1 = *(arg_20h);
0x00073f9c lw a0, 0x2c(fp) | a0 = *(arg_2ch);
0x00073fa0 lw v1, (v1) | v1 = *(v1);
0x00073fa4 lw t9, -0x7230(gp) | t9 = sym.imp.__stack_chk_fail;
| if (a0 != v1) {
0x00073fa8 bne a0, v1, 0x740f8 | goto label_19;
| }
0x00073fac move sp, fp |
0x00073fb0 lw ra, 0x54(sp) | ra = *(var_54h);
0x00073fb4 lw fp, 0x50(sp) | fp = *(var_50h);
0x00073fb8 lw s7, 0x4c(sp) | s7 = *(var_4ch);
0x00073fbc lw s6, 0x48(sp) | s6 = *(var_48h);
0x00073fc0 lw s5, 0x44(sp) | s5 = *(var_44h);
0x00073fc4 lw s4, 0x40(sp) | s4 = *(var_40h);
0x00073fc8 lw s3, 0x3c(sp) | s3 = *(var_3ch);
0x00073fcc lw s2, 0x38(sp) | s2 = *(var_38h);
0x00073fd0 lw s1, 0x34(sp) | s1 = *(var_34h);
0x00073fd4 lw s0, 0x30(sp) | s0 = *(var_30h);
0x00073fd8 addiu sp, sp, 0x58 |
0x00073fdc jr ra | return v0;
| label_10:
0x00073fe0 lw t9, -0x71d4(gp) | t9 = sym.imp.strdup;
| if (s2 != 0) {
0x00073fe4 bnez s2, 0x74088 | goto label_20;
| }
0x00073fe8 lw a0, -0x7fc4(gp) | a0 = *(gp);
| /* esilref: '(' */
0x00073fec addiu a0, a0, -0x3e18 | a0 += -0x3e18;
0x00073ff0 jalr t9 | t9 ();
0x00073ff4 lw gp, 0x18(fp) | gp = *(arg_18h);
| label_4:
0x00073ff8 lw v1, 0x24(fp) | v1 = *(arg_24h);
| if (v0 == 0) {
0x00073ffc beqz v0, 0x740f0 | goto label_16;
| }
0x00074000 sw v0, (v1) | *(v1) = v0;
0x00074004 move v0, zero | v0 = 0;
0x00074008 b 0x73f98 |
| } while (1);
| label_12:
0x0007400c addiu a1, s3, 0x35c4 | a1 = s3 + 0x35c4;
0x00074010 move a0, s0 | a0 = s0;
0x00074014 jalr t9 | t9 ();
0x00074018 move s7, v0 | s7 = v0;
0x0007401c lw gp, 0x18(fp) | gp = *(arg_18h);
0x00074020 move s2, zero | s2 = 0;
0x00074024 b 0x73ea8 | goto label_2;
| label_14:
0x00074028 move a0, s1 | a0 = s1;
0x0007402c jalr t9 | t9 ();
0x00074030 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00074034 lw t9, -0x72d0(gp) | t9 = sym.imp.malloc;
0x00074038 addiu a0, v0, 1 | a0 = v0 + 1;
0x0007403c jalr t9 | t9 ();
0x00074040 move a0, v0 | a0 = v0;
0x00074044 lw gp, 0x18(fp) | gp = *(arg_18h);
| if (v0 != 0) {
0x00074048 beqz v0, 0x740f0 |
0x0007404c move s0, v0 | s0 = v0;
0x00074050 lw t9, -0x72a8(gp) | t9 = sym.imp.strcpy
| label_18:
0x00074054 move a1, s1 | a1 = s1;
0x00074058 jalr t9 | t9 ();
0x0007405c lw gp, 0x18(fp) | gp = *(arg_18h);
0x00074060 b 0x73f8c | goto label_3;
| label_6:
0x00074064 lw a2, -0x7e08(gp) | a2 = *((gp - 8066));
0x00074068 lw a1, -0x7e08(gp) | a1 = *((gp - 8066));
| /* str.path_make_relative */
0x0007406c addiu v0, v0, -0x35a0 | v0 += -0x35a0;
0x00074070 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x00074074 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00074078 addiu a3, zero, 0x7c | a3 = 0x7c;
| /* esilref: 'src/basic/path-util.c' */
0x0007407c addiu a2, a2, -0x376d | a2 += -0x376d;
| /* str.from_dir */
0x00074080 addiu a1, a1, -0x3754 | a1 += -0x3754;
0x00074084 bal 0x6e764 | sym_log_assert_failed_realm ();
| label_20:
0x00074088 move a0, s1 | a0 = s1;
0x0007408c jalr t9 | t9 ();
0x00074090 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00074094 b 0x73ff8 | goto label_4;
| label_7:
0x00074098 lw v0, -0x7e08(gp) | v0 = *((gp - 8066));
0x0007409c lw a2, -0x7e08(gp) | a2 = *((gp - 8066));
0x000740a0 lw a1, -0x7e08(gp) | a1 = *((gp - 8066));
| /* str.path_make_relative */
0x000740a4 addiu v0, v0, -0x35a0 | v0 += -0x35a0;
0x000740a8 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x000740ac sw v0, 0x10(sp) | *(var_10h) = v0;
0x000740b0 addiu a3, zero, 0x7d | a3 = 0x7d;
| /* esilref: 'src/basic/path-util.c' */
0x000740b4 addiu a2, a2, -0x376d | a2 += -0x376d;
| /* str.to_path */
0x000740b8 addiu a1, a1, -0x3748 | a1 += -0x3748;
0x000740bc move a0, zero | a0 = 0;
0x000740c0 bal 0x6e764 | sym_log_assert_failed_realm ();
| label_8:
0x000740c4 lw v0, -0x7e08(gp) | v0 = *((gp - 8066));
0x000740c8 lw a2, -0x7e08(gp) | a2 = *((gp - 8066));
0x000740cc lw a1, -0x7e08(gp) | a1 = *((gp - 8066));
| /* str.path_make_relative */
0x000740d0 addiu v0, v0, -0x35a0 | v0 += -0x35a0;
0x000740d4 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x000740d8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000740dc addiu a3, zero, 0x7e | a3 = 0x7e;
| /* esilref: 'src/basic/path-util.c' */
0x000740e0 addiu a2, a2, -0x376d | a2 += -0x376d;
| /* esilref: '_r' */
0x000740e4 addiu a1, a1, -0x3740 | a1 += -0x3740;
0x000740e8 move a0, zero | a0 = 0;
0x000740ec bal 0x6e764 | sym_log_assert_failed_realm ();
| }
| label_16:
0x000740f0 addiu v0, zero, -0xc | v0 = -0xc;
0x000740f4 b 0x73f98 | goto label_5;
| label_19:
0x000740f8 jalr t9 | t9 ();
0x000740fc nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd-udevd @ 0x494bc */
| #include <stdint.h>
|
; (fcn) sym.sd_device_new_from_subsystem_sysname () | void sd_device_new_from_subsystem_sysname () {
0x000494bc lui gp, 8 |
0x000494c0 addiu gp, gp, -0x234c |
0x000494c4 addu gp, gp, t9 | gp += t9;
0x000494c8 addiu sp, sp, -0x1078 |
0x000494cc sw s5, 0x1064(sp) | *(var_1064h) = s5;
0x000494d0 lw s5, -0x71f0(gp) | s5 = *((gp - 7292));
0x000494d4 sw fp, 0x1070(sp) | *(var_1070h) = fp;
0x000494d8 sw ra, 0x1074(sp) | *(var_1074h) = ra;
0x000494dc sw s7, 0x106c(sp) | *(var_106ch) = s7;
0x000494e0 sw s6, 0x1068(sp) | *(var_1068h) = s6;
0x000494e4 sw s4, 0x1060(sp) | *(var_1060h) = s4;
0x000494e8 sw s3, 0x105c(sp) | *(var_105ch) = s3;
0x000494ec sw s2, 0x1058(sp) | *(var_1058h) = s2;
0x000494f0 sw s1, 0x1054(sp) | *(var_1054h) = s1;
0x000494f4 sw s0, 0x1050(sp) | *(var_1050h) = s0;
0x000494f8 sw gp, 0x18(sp) | *(var_18h_3) = gp;
0x000494fc move fp, sp | fp = sp;
0x00049500 lw v0, (s5) | v0 = *(s5);
0x00049504 sw v0, 0x104c(fp) | *(arg_104ch) = v0;
| if (a0 == 0) {
0x00049508 beql a0, zero, 0x49de8 | goto label_5;
| }
0x0004950c lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00049510 move s3, a1 | s3 = a1;
| if (a1 == 0) {
0x00049514 beqz a1, 0x49e18 | goto label_6;
| }
0x00049518 move s2, a2 | s2 = a2;
| if (a2 == 0) {
0x0004951c beqz a2, 0x49e50 | goto label_7;
| }
0x00049520 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00049524 lw t9, -0x7178(gp) | t9 = *((gp - 7262));
0x00049528 move s6, a0 | s6 = a0;
| /* str.subsystem */
0x0004952c addiu a1, a1, -0x4ffc | a1 += -0x4ffc;
0x00049530 move a0, s3 | a0 = s3;
0x00049534 jalr t9 | t9 ();
0x00049538 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (v0 == 0) {
0x0004953c bnez v0, 0x496d4 |
0x00049540 lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x00049544 move a0, s2 | a0 = s2;
0x00049548 jalr t9 | t9 ();
0x0004954c lui s0, 0x40 | s0 = 0x400000;
| /* str._d:_d */
0x00049550 addiu v1, v0, 0x10 | v1 = v0 + 0x10;
0x00049554 addiu s0, s0, 1 | s0++;
0x00049558 sltu v1, v1, s0 | v1 = (v1 < s0) ? 1 : 0;
0x0004955c lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (v1 == 0) {
0x00049560 beqz v1, 0x49ec8 | goto label_8;
| }
0x00049564 lw v1, -0x7fc4(gp) | v1 = *(gp);
0x00049568 addiu v0, v0, 0x17 | v0 += 0x17;
| /* str._sys_subsystem_ */
0x0004956c addiu s1, v1, 0x5398 | s1 = v1 + 0x5398;
0x00049570 srl v0, v0, 3 | v0 >>= 3;
0x00049574 sll v0, v0, 3 | v0 <<= 3;
0x00049578 subu sp, sp, v0 |
0x0004957c lw a3, 0x5398(v1) | a3 = *((v1 + 5350));
0x00049580 lw a2, 4(s1) | a2 = *((s1 + 1));
0x00049584 lw v1, 8(s1) | v1 = *((s1 + 2));
0x00049588 lw v0, 0xc(s1) | v0 = *((s1 + 3));
0x0004958c lw t9, -0x72a8(gp) | t9 = sym.imp.strcpy
0x00049590 move a1, s2 | a1 = s2;
0x00049594 addiu a0, sp, 0x27 | a0 = sp + 0x27;
0x00049598 sw a3, 0x18(sp) | *(var_18h_3) = a3;
0x0004959c sw a2, 0x1c(sp) | *(var_1ch) = a2;
0x000495a0 sw v1, 0x20(sp) | *(var_20h_5) = v1;
0x000495a4 sw v0, 0x24(sp) | *(var_24h_3) = v0;
0x000495a8 jalr t9 | t9 ();
0x000495ac lw gp, 0x18(fp) | gp = *(var_18h_3);
0x000495b0 addiu s4, sp, 0x18 | s4 = sp + 0x18;
0x000495b4 move a1, zero | a1 = 0;
0x000495b8 lw t9, -0x73f4(gp) | t9 = sym.imp.access;
0x000495bc move a0, s4 | a0 = s4;
0x000495c0 jalr t9 | t9 ();
0x000495c4 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (v0 >= 0) {
0x000495c8 bgez v0, 0x49b78 | goto label_1;
| }
0x000495cc lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x000495d0 move a0, s2 | a0 = s2;
0x000495d4 jalr t9 | t9 ();
0x000495d8 addiu v1, v0, 0xa | v1 = v0 + 0xa;
0x000495dc sltu v1, v1, s0 | v1 = (v1 < s0) ? 1 : 0;
0x000495e0 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (v1 == 0) {
0x000495e4 beqz v1, 0x49ef8 | goto label_9;
| }
0x000495e8 lw a0, -0x7fc4(gp) | a0 = *(gp);
0x000495ec addiu v0, v0, 0x11 | v0 += 0x11;
| /* str._sys_bus_ */
0x000495f0 addiu v1, a0, 0x53a8 | v1 = a0 + 0x53a8;
0x000495f4 srl v0, v0, 3 | v0 >>= 3;
0x000495f8 sll v0, v0, 3 | v0 <<= 3;
0x000495fc subu sp, sp, v0 |
0x00049600 lw a3, 0x53a8(a0) | a3 = *((a0 + 5354));
0x00049604 lw a2, 4(v1) | a2 = *((v1 + 1));
0x00049608 lbu v0, 8(v1) | v0 = *((v1 + 8));
0x0004960c lw t9, -0x72a8(gp) | t9 = sym.imp.strcpy
0x00049610 move a1, s2 | a1 = s2;
0x00049614 addiu a0, sp, 0x21 | a0 = sp + 0x21;
0x00049618 sw a3, 0x18(sp) | *(var_18h_3) = a3;
0x0004961c sw a2, 0x1c(sp) | *(var_1ch) = a2;
0x00049620 sb v0, 0x20(sp) | *(var_20h_5) = v0;
0x00049624 jalr t9 | t9 ();
0x00049628 lw gp, 0x18(fp) | gp = *(var_18h_3);
0x0004962c addiu s4, sp, 0x18 | s4 = sp + 0x18;
0x00049630 move a1, zero | a1 = 0;
0x00049634 lw t9, -0x73f4(gp) | t9 = sym.imp.access;
0x00049638 move a0, s4 | a0 = s4;
0x0004963c jalr t9 | t9 ();
0x00049640 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (v0 >= 0) {
0x00049644 bgez v0, 0x49b78 | goto label_1;
| }
0x00049648 lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x0004964c move a0, s2 | a0 = s2;
0x00049650 jalr t9 | t9 ();
0x00049654 addiu v1, v0, 0xc | v1 = v0 + 0xc;
0x00049658 sltu s0, v1, s0 | s0 = (v1 < s0) ? 1 : 0;
0x0004965c lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (s0 == 0) {
0x00049660 beqz s0, 0x49f40 | goto label_10;
| }
0x00049664 lw a0, -0x7fc4(gp) | a0 = *(gp);
0x00049668 addiu v0, v0, 0x13 | v0 += 0x13;
0x0004966c srl v0, v0, 3 | v0 >>= 3;
| /* str._sys_class_ */
0x00049670 addiu v1, a0, 0x53b4 | v1 = a0 + 0x53b4;
0x00049674 sll v0, v0, 3 | v0 <<= 3;
0x00049678 subu sp, sp, v0 |
0x0004967c addiu s0, sp, 0x18 | s0 = sp + 0x18;
0x00049680 lw a3, 0x53b4(a0) | a3 = *((a0 + 5357));
0x00049684 lw a2, 4(v1) | a2 = *((v1 + 1));
0x00049688 lw v0, 8(v1) | v0 = *((v1 + 2));
0x0004968c lw t9, -0x72a8(gp) | t9 = sym.imp.strcpy
0x00049690 move a1, s2 | a1 = s2;
0x00049694 addiu a0, s0, 0xb | a0 = s0 + 0xb;
0x00049698 sw a3, (s0) | *(s0) = a3;
0x0004969c sw a2, 4(s0) | *((s0 + 1)) = a2;
0x000496a0 sw v0, 8(s0) | *((s0 + 2)) = v0;
0x000496a4 jalr t9 | t9 ();
0x000496a8 lw gp, 0x18(fp) | gp = *(var_18h_3);
0x000496ac move a1, zero | a1 = 0;
0x000496b0 lw t9, -0x73f4(gp) | t9 = sym.imp.access;
0x000496b4 move a0, s0 | a0 = s0;
0x000496b8 jalr t9 | t9 ();
0x000496bc lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (v0 >= 0) {
0x000496c0 bgez v0, 0x49b60 | goto label_11;
| }
0x000496c4 addiu v0, fp, 0x3c | v0 = fp + 0x3c;
0x000496c8 sw v0, 0x30(fp) | *(arg_30h) = v0;
0x000496cc addiu s0, fp, 0x48 | s0 = fp + 0x48;
0x000496d0 b 0x49720 |
| } else {
0x000496d4 lw a1, -0x7e08(gp) | a1 = *((gp - 8066));
0x000496d8 lw t9, -0x7178(gp) | t9 = *((gp - 7262));
| /* esilref: 'module' */
0x000496dc addiu a1, a1, -0x63e0 | a1 += -0x63e0;
0x000496e0 move a0, s3 | a0 = s3;
0x000496e4 jalr t9 | t9 ();
0x000496e8 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (v0 == 0) {
0x000496ec beqz v0, 0x49adc | goto label_12;
| }
0x000496f0 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x000496f4 lw t9, -0x7178(gp) | t9 = *((gp - 7262));
| /* str.drivers */
0x000496f8 addiu a1, a1, 0x53e0 | a1 += 0x53e0;
0x000496fc move a0, s3 | a0 = s3;
0x00049700 jalr t9 | t9 ();
0x00049704 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (v0 == 0) {
0x00049708 beqz v0, 0x49bd0 | goto label_13;
| }
| label_0:
0x0004970c lw v1, -0x7fc4(gp) | v1 = *(gp);
0x00049710 addiu v0, fp, 0x3c | v0 = fp + 0x3c;
0x00049714 sw v0, 0x30(fp) | *(arg_30h) = v0;
| /* str._sys_subsystem_ */
0x00049718 addiu s1, v1, 0x5398 | s1 = v1 + 0x5398;
0x0004971c addiu s0, fp, 0x48 | s0 = fp + 0x48;
| }
| label_2:
0x00049720 lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x00049724 move a0, s2 | a0 = s2;
0x00049728 jalr t9 | t9 ();
0x0004972c addiu v1, v0, 8 | v1 = v0 + 8;
0x00049730 lw gp, 0x18(fp) | gp = *(var_18h_3);
0x00049734 srl v1, v1, 3 | v1 >>= 3;
0x00049738 sll v1, v1, 3 | v1 <<= 3;
0x0004973c subu sp, sp, v1 |
0x00049740 lw t9, -0x71e8(gp) | t9 = sym.imp.memcpy;
0x00049744 addiu a2, v0, 1 | a2 = v0 + 1;
0x00049748 move a1, s2 | a1 = s2;
0x0004974c addiu a0, sp, 0x18 | a0 = sp + 0x18;
0x00049750 jalr t9 | t9 ();
0x00049754 lb v1, (v0) | v1 = *(v0);
0x00049758 lw gp, 0x18(fp) | gp = *(var_18h_3);
0x0004975c sw v0, 0x2c(fp) | *(arg_2ch) = v0;
| if (v1 == 0) {
0x00049760 beqz v1, 0x49784 | goto label_14;
| }
0x00049764 addiu a0, zero, 0x2f | a0 = 0x2f;
0x00049768 addiu a1, zero, 0x21 | a1 = 0x21;
| if (v1 != a0) {
| do {
0x0004976c beql v1, a0, 0x49774 |
0x00049770 sb a1, (v0) | *(v0) = a1;
| }
0x00049774 addiu v0, v0, 1 | v0++;
0x00049778 lb v1, (v0) | v1 = *(v0);
0x0004977c bnez v1, 0x4976c |
| } while (v1 != 0);
0x00049780 nop |
| label_14:
0x00049784 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00049788 lw a1, 0x30(fp) | a1 = *(arg_30h);
| /* esilref: '/devices/' */
0x0004978c addiu v0, v0, 0x5330 | v0 += 0x5330;
0x00049790 sw v0, 0x28(fp) | *(arg_28h) = v0;
0x00049794 sw v0, 0x44(fp) | *(arg_44h) = v0;
0x00049798 lw v0, 0x2c(fp) | v0 = *(arg_2ch);
0x0004979c move s7, zero | s7 = 0;
0x000497a0 sw v0, 0x48(fp) | *(arg_48h) = v0;
0x000497a4 addiu v0, zero, 0xf | v0 = 0xf;
0x000497a8 sw s1, 0x3c(fp) | *(arg_3ch) = s1;
0x000497ac sw s3, 0x40(fp) | *(arg_40h) = s3;
0x000497b0 move s4, a1 | s4 = a1;
0x000497b4 addu s7, s7, v0 | s7 += v0;
| if (s0 == a1) {
0x000497b8 beq s0, a1, 0x497e8 | goto label_15;
| }
| do {
0x000497bc lw a0, 4(a1) | a0 = *((a1 + 1));
0x000497c0 addiu a1, a1, 4 | a1 += 4;
0x000497c4 sw a1, 0x34(fp) | *(arg_34h) = a1;
| if (a0 == 0) {
0x000497c8 beqz a0, 0x497e8 | goto label_15;
| }
0x000497cc lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x000497d0 jalr t9 | t9 ();
0x000497d4 nop |
0x000497d8 lw a1, 0x34(fp) | a1 = *(arg_34h);
0x000497dc lw gp, 0x18(fp) | gp = *(var_18h_3);
0x000497e0 addu s7, s7, v0 | s7 += v0;
0x000497e4 bne s0, a1, 0x497bc |
| } while (s0 != a1);
| label_15:
0x000497e8 lui a0, 0x40 | a0 = 0x400000;
0x000497ec addiu v0, s7, 1 | v0 = s7 + 1;
0x000497f0 addiu a0, a0, 1 | a0++;
0x000497f4 sltu v0, v0, a0 | v0 = (v0 < a0) ? 1 : 0;
0x000497f8 addiu v1, s7, 8 | v1 = s7 + 8;
| if (v0 == 0) {
0x000497fc beqz v0, 0x49e9c | goto label_16;
| }
0x00049800 srl v1, v1, 3 | v1 >>= 3;
0x00049804 sll v1, v1, 3 | v1 <<= 3;
0x00049808 subu sp, sp, v1 |
0x0004980c addiu s7, sp, 0x18 | s7 = sp + 0x18;
0x00049810 move v0, s7 | v0 = s7;
0x00049814 move a1, s1 | a1 = s1;
0x00049818 lw t9, -0x722c(gp) | t9 = sym.imp.stpcpy;
| do {
0x0004981c move a0, v0 | a0 = v0;
0x00049820 jalr t9 | t9 ();
0x00049824 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (s0 == s4) {
0x00049828 beq s0, s4, 0x4983c | goto label_17;
| }
0x0004982c addiu s4, s4, 4 | s4 += 4;
0x00049830 lw a1, (s4) | a1 = *(s4);
0x00049834 lw t9, -0x722c(gp) | t9 = sym.imp.stpcpy;
0x00049838 bnez a1, 0x4981c |
| } while (a1 != 0);
| label_17:
0x0004983c lw t9, -0x73f4(gp) | t9 = sym.imp.access;
0x00049840 move a1, zero | a1 = 0;
0x00049844 move a0, s7 | a0 = s7;
0x00049848 jalr t9 | t9 ();
0x0004984c lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (v0 >= 0) {
0x00049850 bgez v0, 0x49dd0 | goto label_18;
| }
0x00049854 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00049858 lw v1, 0x30(fp) | v1 = *(arg_30h);
| /* str._sys_bus_ */
0x0004985c addiu v0, a1, 0x53a8 | v0 = a1 + 0x53a8;
0x00049860 sw v0, 0x24(fp) | *(var_24h_3) = v0;
0x00049864 sw v0, 0x3c(fp) | *(arg_3ch) = v0;
0x00049868 lw v0, 0x28(fp) | v0 = *(arg_28h);
0x0004986c move s1, zero | s1 = 0;
0x00049870 sw v0, 0x44(fp) | *(arg_44h) = v0;
0x00049874 lw v0, 0x2c(fp) | v0 = *(arg_2ch);
0x00049878 sw s3, 0x40(fp) | *(arg_40h) = s3;
0x0004987c sw v0, 0x48(fp) | *(arg_48h) = v0;
0x00049880 addiu v0, zero, 9 | v0 = 9;
0x00049884 move s7, v1 | s7 = v1;
0x00049888 addu s1, s1, v0 | s1 += v0;
| if (v1 == s0) {
0x0004988c beq v1, s0, 0x498bc | goto label_19;
| }
| do {
0x00049890 lw a0, 4(v1) | a0 = *((v1 + 1));
0x00049894 addiu v1, v1, 4 | v1 += 4;
0x00049898 sw v1, 0x34(fp) | *(arg_34h) = v1;
| if (a0 == 0) {
0x0004989c beqz a0, 0x498bc | goto label_19;
| }
0x000498a0 lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x000498a4 jalr t9 | t9 ();
0x000498a8 nop |
0x000498ac lw v1, 0x34(fp) | v1 = *(arg_34h);
0x000498b0 lw gp, 0x18(fp) | gp = *(var_18h_3);
0x000498b4 addu s1, s1, v0 | s1 += v0;
0x000498b8 bne v1, s0, 0x49890 |
| } while (v1 != s0);
| label_19:
0x000498bc lui v1, 0x40 | v1 = 0x400000;
0x000498c0 addiu v0, s1, 1 | v0 = s1 + 1;
0x000498c4 addiu v1, v1, 1 | v1++;
0x000498c8 sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x000498cc addiu s1, s1, 8 | s1 += 8;
| if (v0 == 0) {
0x000498d0 beqz v0, 0x49ee0 | goto label_20;
| }
0x000498d4 srl s1, s1, 3 | s1 >>= 3;
0x000498d8 sll s1, s1, 3 | s1 <<= 3;
0x000498dc subu sp, sp, s1 |
0x000498e0 addiu s1, sp, 0x18 | s1 = sp + 0x18;
0x000498e4 lw a1, 0x24(fp) | a1 = *(var_24h_3);
0x000498e8 move v0, s1 | v0 = s1;
0x000498ec lw t9, -0x722c(gp) | t9 = sym.imp.stpcpy;
| do {
0x000498f0 move a0, v0 | a0 = v0;
0x000498f4 jalr t9 | t9 ();
0x000498f8 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (s7 == s0) {
0x000498fc beq s7, s0, 0x49910 | goto label_21;
| }
0x00049900 addiu s7, s7, 4 | s7 += 4;
0x00049904 lw a1, (s7) | a1 = *(s7);
0x00049908 lw t9, -0x722c(gp) | t9 = sym.imp.stpcpy;
0x0004990c bnez a1, 0x498f0 |
| } while (a1 != 0);
| label_21:
0x00049910 lw t9, -0x73f4(gp) | t9 = sym.imp.access;
0x00049914 move a1, zero | a1 = 0;
0x00049918 move a0, s1 | a0 = s1;
0x0004991c jalr t9 | t9 ();
0x00049920 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (v0 >= 0) {
0x00049924 bgez v0, 0x49ac4 | goto label_22;
| }
0x00049928 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0004992c lw s1, -0x7fc4(gp) | s1 = *(gp);
0x00049930 addiu v0, v0, 0x35c4 | v0 += 0x35c4;
0x00049934 sw v0, 0x28(fp) | *(arg_28h) = v0;
0x00049938 sw v0, 0x44(fp) | *(arg_44h) = v0;
0x0004993c lw v0, 0x2c(fp) | v0 = *(arg_2ch);
0x00049940 lw v1, 0x30(fp) | v1 = *(arg_30h);
| /* str._sys_class_ */
0x00049944 addiu s4, s1, 0x53b4 | s4 = s1 + 0x53b4;
0x00049948 sw v0, 0x48(fp) | *(arg_48h) = v0;
0x0004994c move s7, zero | s7 = 0;
0x00049950 addiu v0, zero, 0xb | v0 = 0xb;
0x00049954 sw s4, 0x3c(fp) | *(arg_3ch) = s4;
0x00049958 sw s3, 0x40(fp) | *(arg_40h) = s3;
0x0004995c move s1, v1 | s1 = v1;
0x00049960 addu s7, s7, v0 | s7 += v0;
| if (v1 == s0) {
0x00049964 beq v1, s0, 0x49994 | goto label_23;
| }
| do {
0x00049968 lw a0, 4(v1) | a0 = *((v1 + 1));
0x0004996c addiu v1, v1, 4 | v1 += 4;
0x00049970 sw v1, 0x34(fp) | *(arg_34h) = v1;
| if (a0 == 0) {
0x00049974 beqz a0, 0x49994 | goto label_23;
| }
0x00049978 lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x0004997c jalr t9 | t9 ();
0x00049980 nop |
0x00049984 lw v1, 0x34(fp) | v1 = *(arg_34h);
0x00049988 lw gp, 0x18(fp) | gp = *(var_18h_3);
0x0004998c addu s7, s7, v0 | s7 += v0;
0x00049990 bne v1, s0, 0x49968 |
| } while (v1 != s0);
| label_23:
0x00049994 lui v1, 0x40 | v1 = 0x400000;
0x00049998 addiu v0, s7, 1 | v0 = s7 + 1;
0x0004999c addiu v1, v1, 1 | v1++;
0x000499a0 sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x000499a4 addiu v0, s7, 8 | v0 = s7 + 8;
| if (v0 == 0) {
0x000499a8 beqz v0, 0x49f28 | goto label_24;
| }
0x000499ac srl v0, v0, 3 | v0 >>= 3;
0x000499b0 sll v0, v0, 3 | v0 <<= 3;
0x000499b4 subu sp, sp, v0 |
0x000499b8 addiu s7, sp, 0x18 | s7 = sp + 0x18;
0x000499bc move v0, s7 | v0 = s7;
0x000499c0 move a1, s4 | a1 = s4;
0x000499c4 lw t9, -0x722c(gp) | t9 = sym.imp.stpcpy;
| do {
0x000499c8 move a0, v0 | a0 = v0;
0x000499cc jalr t9 | t9 ();
0x000499d0 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (s1 == s0) {
0x000499d4 beq s1, s0, 0x499e8 | goto label_25;
| }
0x000499d8 addiu s1, s1, 4 | s1 += 4;
0x000499dc lw a1, (s1) | a1 = *(s1);
0x000499e0 lw t9, -0x722c(gp) | t9 = sym.imp.stpcpy;
0x000499e4 bnez a1, 0x499c8 |
| } while (a1 != 0);
| label_25:
0x000499e8 lw t9, -0x73f4(gp) | t9 = sym.imp.access;
0x000499ec move a1, zero | a1 = 0;
0x000499f0 move a0, s7 | a0 = s7;
0x000499f4 jalr t9 | t9 ();
0x000499f8 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (v0 >= 0) {
0x000499fc bgez v0, 0x49dd0 | goto label_18;
| }
0x00049a00 lw v0, 0x28(fp) | v0 = *(arg_28h);
0x00049a04 lw s4, 0x30(fp) | s4 = *(arg_30h);
0x00049a08 lw s7, -0x7fc4(gp) | s7 = *(gp);
0x00049a0c sw v0, 0x44(fp) | *(arg_44h) = v0;
| /* str._sys_firmware_ */
0x00049a10 addiu s7, s7, 0x53c0 | s7 += 0x53c0;
0x00049a14 sw s2, 0x48(fp) | *(arg_48h) = s2;
0x00049a18 addiu v0, zero, 0xe | v0 = 0xe;
0x00049a1c move s1, zero | s1 = 0;
0x00049a20 move s2, s4 | s2 = s4;
0x00049a24 sw s7, 0x3c(fp) | *(arg_3ch) = s7;
0x00049a28 sw s3, 0x40(fp) | *(arg_40h) = s3;
0x00049a2c addu s1, s1, v0 | s1 += v0;
| if (s2 == s0) {
0x00049a30 beq s2, s0, 0x49a58 | goto label_26;
| }
| do {
0x00049a34 addiu s2, s2, 4 | s2 += 4;
0x00049a38 lw a0, (s2) | a0 = *(s2);
0x00049a3c lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
| if (a0 == 0) {
0x00049a40 beqz a0, 0x49a58 | goto label_26;
| }
0x00049a44 jalr t9 | t9 ();
0x00049a48 nop |
0x00049a4c addu s1, s1, v0 | s1 += v0;
0x00049a50 lw gp, 0x18(fp) | gp = *(var_18h_3);
0x00049a54 bne s2, s0, 0x49a34 |
| } while (s2 != s0);
| label_26:
0x00049a58 lui v1, 0x40 | v1 = 0x400000;
0x00049a5c addiu v0, s1, 1 | v0 = s1 + 1;
0x00049a60 addiu v1, v1, 1 | v1++;
0x00049a64 sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x00049a68 addiu v0, s1, 8 | v0 = s1 + 8;
| if (v0 == 0) {
0x00049a6c beqz v0, 0x49f58 | goto label_27;
| }
0x00049a70 srl v0, v0, 3 | v0 >>= 3;
0x00049a74 sll v0, v0, 3 | v0 <<= 3;
0x00049a78 subu sp, sp, v0 |
0x00049a7c addiu s1, sp, 0x18 | s1 = sp + 0x18;
0x00049a80 move v0, s1 | v0 = s1;
0x00049a84 move a1, s7 | a1 = s7;
0x00049a88 lw t9, -0x722c(gp) | t9 = sym.imp.stpcpy;
| do {
0x00049a8c move a0, v0 | a0 = v0;
0x00049a90 jalr t9 | t9 ();
0x00049a94 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (s4 == s0) {
0x00049a98 beq s4, s0, 0x49aac | goto label_28;
| }
0x00049a9c addiu s4, s4, 4 | s4 += 4;
0x00049aa0 lw a1, (s4) | a1 = *(s4);
0x00049aa4 lw t9, -0x722c(gp) | t9 = sym.imp.stpcpy;
0x00049aa8 bnez a1, 0x49a8c |
| } while (a1 != 0);
| label_28:
0x00049aac lw t9, -0x73f4(gp) | t9 = sym.imp.access;
0x00049ab0 move a1, zero | a1 = 0;
0x00049ab4 move a0, s1 | a0 = s1;
0x00049ab8 jalr t9 | t9 ();
0x00049abc lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (v0 < 0) {
0x00049ac0 bltz v0, 0x49f70 | goto label_29;
| }
| label_22:
0x00049ac4 lw t9, -0x7b78(gp) | t9 = sym.sd_device_new_from_syspath;
0x00049ac8 move a1, s1 | a1 = s1;
0x00049acc move a0, s6 | a0 = s6;
0x00049ad0 bal 0x490f4 | sym_sd_device_new_from_syspath ();
0x00049ad4 lw gp, 0x18(fp) | gp = *(var_18h_3);
0x00049ad8 b 0x49b8c | goto label_3;
| label_12:
0x00049adc lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x00049ae0 move a0, s2 | a0 = s2;
0x00049ae4 jalr t9 | t9 ();
0x00049ae8 lui a0, 0x40 | a0 = 0x400000;
0x00049aec addiu v1, v0, 0xd | v1 = v0 + 0xd;
0x00049af0 addiu a0, a0, 1 | a0++;
0x00049af4 sltu v1, v1, a0 | v1 = (v1 < a0) ? 1 : 0;
0x00049af8 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (v1 == 0) {
0x00049afc beqz v1, 0x49f10 | goto label_30;
| }
0x00049b00 lw a0, -0x7fc4(gp) | a0 = *(gp);
0x00049b04 addiu v0, v0, 0x14 | v0 += 0x14;
0x00049b08 srl v0, v0, 3 | v0 >>= 3;
| /* str._sys_module_ */
0x00049b0c addiu v1, a0, 0x53d0 | v1 = a0 + 0x53d0;
0x00049b10 sll v0, v0, 3 | v0 <<= 3;
0x00049b14 subu sp, sp, v0 |
0x00049b18 addiu s0, sp, 0x18 | s0 = sp + 0x18;
0x00049b1c lw a3, 0x53d0(a0) | a3 = *((a0 + 5364));
0x00049b20 lw a2, 4(v1) | a2 = *((v1 + 1));
0x00049b24 lw v0, 8(v1) | v0 = *((v1 + 2));
0x00049b28 lw t9, -0x72a8(gp) | t9 = sym.imp.strcpy
0x00049b2c move a1, s2 | a1 = s2;
0x00049b30 addiu a0, s0, 0xc | a0 = s0 + 0xc;
0x00049b34 sw a3, (s0) | *(s0) = a3;
0x00049b38 sw a2, 4(s0) | *((s0 + 1)) = a2;
0x00049b3c sw v0, 8(s0) | *((s0 + 2)) = v0;
0x00049b40 jalr t9 | t9 ();
0x00049b44 lw gp, 0x18(fp) | gp = *(var_18h_3);
0x00049b48 move a1, zero | a1 = 0;
0x00049b4c lw t9, -0x73f4(gp) | t9 = sym.imp.access;
0x00049b50 move a0, s0 | a0 = s0;
0x00049b54 jalr t9 | t9 ();
0x00049b58 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (v0 < 0) {
0x00049b5c bltz v0, 0x4970c | goto label_0;
| }
| label_11:
0x00049b60 lw t9, -0x7b78(gp) | t9 = sym.sd_device_new_from_syspath;
0x00049b64 move a1, s0 | a1 = s0;
0x00049b68 move a0, s6 | a0 = s6;
0x00049b6c bal 0x490f4 | sym_sd_device_new_from_syspath ();
0x00049b70 lw gp, 0x18(fp) | gp = *(var_18h_3);
0x00049b74 b 0x49b8c | goto label_3;
| label_1:
0x00049b78 lw t9, -0x7b78(gp) | t9 = sym.sd_device_new_from_syspath;
0x00049b7c move a1, s4 | a1 = s4;
0x00049b80 move a0, s6 | a0 = s6;
0x00049b84 bal 0x490f4 | sym_sd_device_new_from_syspath ();
0x00049b88 lw gp, 0x18(fp) | gp = *(var_18h_3);
| label_3:
0x00049b8c lw a0, 0x104c(fp) | a0 = *(arg_104ch);
0x00049b90 lw v1, (s5) | v1 = *(s5);
0x00049b94 lw t9, -0x7230(gp) | t9 = sym.imp.__stack_chk_fail;
| if (a0 != v1) {
0x00049b98 bne a0, v1, 0x49fa8 | goto label_31;
| }
0x00049b9c move sp, fp |
0x00049ba0 lw ra, 0x1074(sp) | ra = *(var_1074h);
0x00049ba4 lw fp, 0x1070(sp) | fp = *(var_1070h);
0x00049ba8 lw s7, 0x106c(sp) | s7 = *(var_106ch);
0x00049bac lw s6, 0x1068(sp) | s6 = *(var_1068h);
0x00049bb0 lw s5, 0x1064(sp) | s5 = *(var_1064h);
0x00049bb4 lw s4, 0x1060(sp) | s4 = *(var_1060h);
0x00049bb8 lw s3, 0x105c(sp) | s3 = *(var_105ch);
0x00049bbc lw s2, 0x1058(sp) | s2 = *(var_1058h);
0x00049bc0 lw s1, 0x1054(sp) | s1 = *(var_1054h);
0x00049bc4 lw s0, 0x1050(sp) | s0 = *(var_1050h);
0x00049bc8 addiu sp, sp, 0x1078 |
0x00049bcc jr ra | return v0;
| label_13:
0x00049bd0 lw t9, -0x7d40(gp) | t9 = sym.strscpy;
0x00049bd4 addiu s0, fp, 0x4c | s0 = fp + 0x4c;
0x00049bd8 move a2, s2 | a2 = s2;
0x00049bdc addiu a1, zero, 0x1000 | a1 = 0x1000;
0x00049be0 move a0, s0 | a0 = s0;
0x00049be4 sw s0, 0x2c(fp) | *(arg_2ch) = s0;
0x00049be8 jalr t9 | t9 ();
0x00049bec lw gp, 0x18(fp) | gp = *(var_18h_3);
0x00049bf0 addiu a1, zero, 0x3a | a1 = 0x3a;
0x00049bf4 lw t9, -0x732c(gp) | t9 = sym.imp.strchr;
0x00049bf8 move a0, s0 | a0 = s0;
0x00049bfc jalr t9 | t9 ();
0x00049c00 lw gp, 0x18(fp) | gp = *(var_18h_3);
0x00049c04 lw v1, -0x7fc4(gp) | v1 = *(gp);
| if (v0 == 0) {
0x00049c08 beqz v0, 0x49e88 | goto label_32;
| }
| /* esilref: 'ttribute: &' */
0x00049c0c addiu a1, v0, 1 | a1 = v0 + 1;
| /* str._sys_subsystem_ */
0x00049c10 addiu s1, v1, 0x5398 | s1 = v1 + 0x5398;
0x00049c14 sb zero, (v0) | *(v0) = 0;
0x00049c18 lw v1, -0x7fc4(gp) | v1 = *(gp);
0x00049c1c lw v0, 0x2c(fp) | v0 = *(arg_2ch);
0x00049c20 addiu a0, fp, 0x3c | a0 = fp + 0x3c;
| /* str._drivers_ */
0x00049c24 addiu v1, v1, 0x53e8 | v1 += 0x53e8;
0x00049c28 sw a1, 0x28(fp) | *(arg_28h) = a1;
0x00049c2c sw v0, 0x40(fp) | *(arg_40h) = v0;
0x00049c30 sw a1, 0x48(fp) | *(arg_48h) = a1;
0x00049c34 addiu v0, zero, 0xf | v0 = 0xf;
0x00049c38 move s4, zero | s4 = 0;
0x00049c3c addiu s0, fp, 0x48 | s0 = fp + 0x48;
0x00049c40 move a1, a0 | a1 = a0;
0x00049c44 sw a0, 0x30(fp) | *(arg_30h) = a0;
0x00049c48 sw v1, 0x20(fp) | *(var_20h_5) = v1;
0x00049c4c sw s1, 0x3c(fp) | *(arg_3ch) = s1;
0x00049c50 sw v1, 0x44(fp) | *(arg_44h) = v1;
0x00049c54 move s7, a0 | s7 = a0;
0x00049c58 addu s4, s4, v0 | s4 += v0;
| if (a1 == s0) {
0x00049c5c beq a1, s0, 0x49c8c | goto label_33;
| }
| do {
0x00049c60 lw a0, 4(a1) | a0 = *((a1 + 1));
0x00049c64 addiu a1, a1, 4 | a1 += 4;
0x00049c68 sw a1, 0x34(fp) | *(arg_34h) = a1;
| if (a0 == 0) {
0x00049c6c beqz a0, 0x49c8c | goto label_33;
| }
0x00049c70 lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x00049c74 jalr t9 | t9 ();
0x00049c78 nop |
0x00049c7c lw a1, 0x34(fp) | a1 = *(arg_34h);
0x00049c80 lw gp, 0x18(fp) | gp = *(var_18h_3);
0x00049c84 addu s4, s4, v0 | s4 += v0;
0x00049c88 bne a1, s0, 0x49c60 |
| } while (a1 != s0);
| label_33:
0x00049c8c lui a0, 0x40 | a0 = 0x400000;
0x00049c90 addiu v0, s4, 1 | v0 = s4 + 1;
0x00049c94 addiu a0, a0, 1 | a0++;
0x00049c98 sltu v0, v0, a0 | v0 = (v0 < a0) ? 1 : 0;
0x00049c9c addiu v0, s4, 8 | v0 = s4 + 8;
| if (v0 == 0) {
0x00049ca0 beqz v0, 0x49f78 | goto label_34;
| }
0x00049ca4 srl v0, v0, 3 | v0 >>= 3;
0x00049ca8 sll v0, v0, 3 | v0 <<= 3;
0x00049cac subu sp, sp, v0 |
0x00049cb0 addiu v0, sp, 0x18 | v0 = sp + 0x18;
0x00049cb4 move s4, v0 | s4 = v0;
0x00049cb8 move a1, s1 | a1 = s1;
0x00049cbc lw t9, -0x722c(gp) | t9 = sym.imp.stpcpy;
| do {
0x00049cc0 move a0, v0 | a0 = v0;
0x00049cc4 jalr t9 | t9 ();
0x00049cc8 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (s7 == s0) {
0x00049ccc beq s7, s0, 0x49ce0 | goto label_35;
| }
0x00049cd0 addiu s7, s7, 4 | s7 += 4;
0x00049cd4 lw a1, (s7) | a1 = *(s7);
0x00049cd8 lw t9, -0x722c(gp) | t9 = sym.imp.stpcpy;
0x00049cdc bnez a1, 0x49cc0 |
| } while (a1 != 0);
| label_35:
0x00049ce0 lw t9, -0x73f4(gp) | t9 = sym.imp.access;
0x00049ce4 move a1, zero | a1 = 0;
0x00049ce8 move a0, s4 | a0 = s4;
0x00049cec jalr t9 | t9 ();
0x00049cf0 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (v0 >= 0) {
0x00049cf4 bgez v0, 0x49b78 | goto label_1;
| }
0x00049cf8 lw v0, 0x2c(fp) | v0 = *(arg_2ch);
0x00049cfc lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00049d00 sw v0, 0x40(fp) | *(arg_40h) = v0;
| /* str._sys_bus_ */
0x00049d04 addiu v0, a1, 0x53a8 | v0 = a1 + 0x53a8;
0x00049d08 sw v0, 0x24(fp) | *(var_24h_3) = v0;
0x00049d0c sw v0, 0x3c(fp) | *(arg_3ch) = v0;
0x00049d10 lw v0, 0x20(fp) | v0 = *(var_20h_5);
0x00049d14 lw v1, 0x30(fp) | v1 = *(arg_30h);
0x00049d18 sw v0, 0x44(fp) | *(arg_44h) = v0;
0x00049d1c lw v0, 0x28(fp) | v0 = *(arg_28h);
0x00049d20 move s7, zero | s7 = 0;
0x00049d24 sw v0, 0x48(fp) | *(arg_48h) = v0;
0x00049d28 addiu v0, zero, 9 | v0 = 9;
0x00049d2c move s4, v1 | s4 = v1;
0x00049d30 addu s7, s7, v0 | s7 += v0;
| if (v1 == s0) {
0x00049d34 beq v1, s0, 0x49d64 | goto label_36;
| }
| do {
0x00049d38 lw a0, 4(v1) | a0 = *((v1 + 1));
0x00049d3c addiu v1, v1, 4 | v1 += 4;
0x00049d40 sw v1, 0x34(fp) | *(arg_34h) = v1;
| if (a0 == 0) {
0x00049d44 beqz a0, 0x49d64 | goto label_36;
| }
0x00049d48 lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x00049d4c jalr t9 | t9 ();
0x00049d50 nop |
0x00049d54 lw v1, 0x34(fp) | v1 = *(arg_34h);
0x00049d58 lw gp, 0x18(fp) | gp = *(var_18h_3);
0x00049d5c addu s7, s7, v0 | s7 += v0;
0x00049d60 bne v1, s0, 0x49d38 |
| } while (v1 != s0);
| label_36:
0x00049d64 lui v1, 0x40 | v1 = 0x400000;
0x00049d68 addiu v0, s7, 1 | v0 = s7 + 1;
0x00049d6c addiu v1, v1, 1 | v1++;
0x00049d70 sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x00049d74 addiu v0, s7, 8 | v0 = s7 + 8;
| if (v0 == 0) {
0x00049d78 beqz v0, 0x49f90 | goto label_37;
| }
0x00049d7c srl v0, v0, 3 | v0 >>= 3;
0x00049d80 sll v0, v0, 3 | v0 <<= 3;
0x00049d84 subu sp, sp, v0 |
0x00049d88 addiu s7, sp, 0x18 | s7 = sp + 0x18;
0x00049d8c lw a1, 0x24(fp) | a1 = *(var_24h_3);
0x00049d90 move v0, s7 | v0 = s7;
0x00049d94 lw t9, -0x722c(gp) | t9 = sym.imp.stpcpy;
| do {
0x00049d98 move a0, v0 | a0 = v0;
0x00049d9c jalr t9 | t9 ();
0x00049da0 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (s0 == s4) {
0x00049da4 beq s0, s4, 0x49db8 | goto label_38;
| }
0x00049da8 addiu s4, s4, 4 | s4 += 4;
0x00049dac lw a1, (s4) | a1 = *(s4);
0x00049db0 lw t9, -0x722c(gp) | t9 = sym.imp.stpcpy;
0x00049db4 bnez a1, 0x49d98 |
| } while (a1 != 0);
| label_38:
0x00049db8 lw t9, -0x73f4(gp) | t9 = sym.imp.access;
0x00049dbc move a1, zero | a1 = 0;
0x00049dc0 move a0, s7 | a0 = s7;
0x00049dc4 jalr t9 | t9 ();
0x00049dc8 lw gp, 0x18(fp) | gp = *(var_18h_3);
| if (v0 < 0) {
0x00049dcc bltz v0, 0x49720 | goto label_2;
| }
| label_18:
0x00049dd0 lw t9, -0x7b78(gp) | t9 = sym.sd_device_new_from_syspath;
0x00049dd4 move a1, s7 | a1 = s7;
0x00049dd8 move a0, s6 | a0 = s6;
0x00049ddc bal 0x490f4 | sym_sd_device_new_from_syspath ();
0x00049de0 lw gp, 0x18(fp) | gp = *(var_18h_3);
0x00049de4 b 0x49b8c | goto label_3;
| label_5:
0x00049de8 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x00049dec lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00049df0 lw t9, -0x7d68(gp) | t9 = sym.log_assert_failed_return_realm;
| /* str.sd_device_new_from_subsystem_sysname */
0x00049df4 addiu v0, v0, 0x5c74 | v0 += 0x5c74;
0x00049df8 sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00049dfc addiu a3, zero, 0xff | a3 = 0xff;
| /* esilref: 'src/libsystemd/sd-device/sd-device.c' */
0x00049e00 addiu a2, a2, 0x5213 | a2 += 0x5213;
| /* esilref: 'ret' */
0x00049e04 addiu a1, a1, -0x6790 | a1 += -0x6790;
0x00049e08 jalr t9 | t9 ();
0x00049e0c lw gp, 0x18(fp) | gp = *(var_18h_3);
0x00049e10 addiu v0, zero, -0x16 | v0 = -0x16;
0x00049e14 b 0x49b8c | goto label_3;
| label_6:
0x00049e18 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00049e1c lw a2, -0x7fc4(gp) | a2 = *(gp);
0x00049e20 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00049e24 lw t9, -0x7d68(gp) | t9 = sym.log_assert_failed_return_realm;
| /* str.sd_device_new_from_subsystem_sysname */
0x00049e28 addiu v0, v0, 0x5c74 | v0 += 0x5c74;
0x00049e2c sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00049e30 addiu a3, zero, 0x100 | a3 = aav.0x00000100;
| /* esilref: 'src/libsystemd/sd-device/sd-device.c' */
0x00049e34 addiu a2, a2, 0x5213 | a2 += 0x5213;
| /* str.subsystem */
0x00049e38 addiu a1, a1, -0x4ffc | a1 += -0x4ffc;
0x00049e3c move a0, zero | a0 = 0;
0x00049e40 jalr t9 | t9 ();
0x00049e44 lw gp, 0x18(fp) | gp = *(var_18h_3);
0x00049e48 addiu v0, zero, -0x16 | v0 = -0x16;
0x00049e4c b 0x49b8c | goto label_3;
| label_7:
0x00049e50 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00049e54 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x00049e58 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x00049e5c lw t9, -0x7d68(gp) | t9 = sym.log_assert_failed_return_realm;
| /* str.sd_device_new_from_subsystem_sysname */
0x00049e60 addiu v0, v0, 0x5c74 | v0 += 0x5c74;
0x00049e64 sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00049e68 addiu a3, zero, 0x101 | a3 = 0x101;
| /* esilref: 'src/libsystemd/sd-device/sd-device.c' */
0x00049e6c addiu a2, a2, 0x5213 | a2 += 0x5213;
| /* esilref: 'sysname' */
0x00049e70 addiu a1, a1, 0x54a8 | a1 += 0x54a8;
0x00049e74 move a0, zero | a0 = 0;
0x00049e78 jalr t9 | t9 ();
0x00049e7c lw gp, 0x18(fp) | gp = *(var_18h_3);
0x00049e80 addiu v0, zero, -0x16 | v0 = -0x16;
0x00049e84 b 0x49b8c | goto label_3;
| label_32:
0x00049e88 addiu v0, fp, 0x3c | v0 = fp + 0x3c;
0x00049e8c sw v0, 0x30(fp) | *(arg_30h) = v0;
| /* str._sys_subsystem_ */
0x00049e90 addiu s1, v1, 0x5398 | s1 = v1 + 0x5398;
0x00049e94 addiu s0, fp, 0x48 | s0 = fp + 0x48;
0x00049e98 b 0x49720 | goto label_2;
| label_16:
0x00049e9c lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00049ea0 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
| /* str.sd_device_new_from_subsystem_sysname */
0x00049ea4 addiu v0, v0, 0x5c74 | v0 += 0x5c74;
0x00049ea8 sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00049eac addiu a3, zero, 0x130 | a3 = aav.0x00000130;
| do {
| label_4:
0x00049eb0 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x00049eb4 lw a1, -0x7fd0(gp) | a1 = *(gp);
| /* esilref: 'src/libsystemd/sd-device/sd-device.c' */
0x00049eb8 addiu a2, a2, 0x5213 | a2 += 0x5213;
| /* str.sizeof_char__n____ALLOCA_MAX */
0x00049ebc addiu a1, a1, 0x7c64 | a1 += 0x7c64;
0x00049ec0 move a0, zero | a0 = 0;
0x00049ec4 jalr t9 | t9 ();
| label_8:
0x00049ec8 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00049ecc lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
| /* str.sd_device_new_from_subsystem_sysname */
0x00049ed0 addiu v0, v0, 0x5c74 | v0 += 0x5c74;
0x00049ed4 sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00049ed8 addiu a3, zero, 0x104 | a3 = aav.0x00000104;
0x00049edc b 0x49eb0 |
| } while (1);
| label_20:
0x00049ee0 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00049ee4 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
| /* str.sd_device_new_from_subsystem_sysname */
0x00049ee8 addiu v0, v0, 0x5c74 | v0 += 0x5c74;
0x00049eec sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00049ef0 addiu a3, zero, 0x134 | a3 = aav.0x00000134;
0x00049ef4 b 0x49eb0 | goto label_4;
| label_9:
0x00049ef8 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00049efc lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
| /* str.sd_device_new_from_subsystem_sysname */
0x00049f00 addiu v0, v0, 0x5c74 | v0 += 0x5c74;
0x00049f04 sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00049f08 addiu a3, zero, 0x108 | a3 = aav.0x00000108;
0x00049f0c b 0x49eb0 | goto label_4;
| label_30:
0x00049f10 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00049f14 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
| /* str.sd_device_new_from_subsystem_sysname */
0x00049f18 addiu v0, v0, 0x5c74 | v0 += 0x5c74;
0x00049f1c sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00049f20 addiu a3, zero, 0x110 | a3 = aav.0x00000110;
0x00049f24 b 0x49eb0 | goto label_4;
| label_24:
0x00049f28 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00049f2c lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
| /* str.sd_device_new_from_subsystem_sysname */
0x00049f30 addiu v0, v0, 0x5c74 | v0 += 0x5c74;
0x00049f34 sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00049f38 addiu a3, zero, 0x138 | a3 = aav.0x00000138;
0x00049f3c b 0x49eb0 | goto label_4;
| label_10:
0x00049f40 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00049f44 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
| /* str.sd_device_new_from_subsystem_sysname */
0x00049f48 addiu v0, v0, 0x5c74 | v0 += 0x5c74;
0x00049f4c sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00049f50 addiu a3, zero, 0x10c | a3 = aav.0x0000010c;
0x00049f54 b 0x49eb0 | goto label_4;
| label_27:
0x00049f58 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00049f5c lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
| /* str.sd_device_new_from_subsystem_sysname */
0x00049f60 addiu v0, v0, 0x5c74 | v0 += 0x5c74;
0x00049f64 sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00049f68 addiu a3, zero, 0x13c | a3 = aav.0x0000013c;
0x00049f6c b 0x49eb0 | goto label_4;
| label_29:
0x00049f70 addiu v0, zero, -0x13 | v0 = -0x13;
0x00049f74 b 0x49b8c | goto label_3;
| label_34:
0x00049f78 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00049f7c lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
| /* str.sd_device_new_from_subsystem_sysname */
0x00049f80 addiu v0, v0, 0x5c74 | v0 += 0x5c74;
0x00049f84 sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00049f88 addiu a3, zero, 0x11d | a3 = 0x11d;
0x00049f8c b 0x49eb0 | goto label_4;
| label_37:
0x00049f90 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00049f94 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
| /* str.sd_device_new_from_subsystem_sysname */
0x00049f98 addiu v0, v0, 0x5c74 | v0 += 0x5c74;
0x00049f9c sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00049fa0 addiu a3, zero, 0x121 | a3 = 0x121;
0x00049fa4 b 0x49eb0 | goto label_4;
| label_31:
0x00049fa8 jalr t9 | t9 ();
0x00049fac nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd-udevd @ 0x3ebc8 */
| #include <stdint.h>
|
; (fcn) sym.sysctl_read () | void sysctl_read () {
0x0003ebc8 lui gp, 9 |
0x0003ebcc addiu gp, gp, -0x7a58 |
0x0003ebd0 addu gp, gp, t9 | gp += t9;
0x0003ebd4 addiu sp, sp, -0x40 |
0x0003ebd8 sw s1, 0x2c(sp) | *(var_2ch_2) = s1;
0x0003ebdc lw s1, -0x71f0(gp) | s1 = *((gp - 7292));
0x0003ebe0 sw fp, 0x38(sp) | *(var_38h) = fp;
0x0003ebe4 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x0003ebe8 sw s3, 0x34(sp) | *(var_34h) = s3;
0x0003ebec sw s2, 0x30(sp) | *(var_30h_2) = s2;
0x0003ebf0 sw s0, 0x28(sp) | *(var_28h_2) = s0;
0x0003ebf4 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x0003ebf8 move fp, sp | fp = sp;
0x0003ebfc lw v0, (s1) | v0 = *(s1);
0x0003ec00 sw v0, 0x24(fp) | *(arg_24h) = v0;
0x0003ec04 lw v0, -0x7fc4(gp) | v0 = *(gp);
| if (a0 != 0) {
0x0003ec08 beqz a0, 0x3eccc |
0x0003ec0c move s2, a1 | s2 = a1;
| if (a1 == 0) {
0x0003ec10 beqz a1, 0x3ecf0 | goto label_0;
| }
0x0003ec14 lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x0003ec18 move s3, a0 | s3 = a0;
0x0003ec1c jalr t9 | t9 ();
0x0003ec20 lui a0, 0x40 | a0 = 0x400000;
| /* esilref: '&' */
0x0003ec24 addiu v1, v0, 0xb | v1 = v0 + 0xb;
0x0003ec28 addiu a0, a0, 1 | a0++;
0x0003ec2c sltu v1, v1, a0 | v1 = (v1 < a0) ? 1 : 0;
0x0003ec30 lw gp, 0x18(fp) | gp = *(var_18h_2);
| if (v1 == 0) {
0x0003ec34 beqz v1, 0x3ed18 | goto label_1;
| }
0x0003ec38 lw a0, -0x7fc4(gp) | a0 = *(gp);
| /* esilref: ':&d' */
0x0003ec3c addiu v0, v0, 0x12 | v0 += 0x12;
| /* str._proc_sys_ */
0x0003ec40 addiu v1, a0, 0x3698 | v1 = a0 + 0x3698;
0x0003ec44 srl v0, v0, 3 | v0 >>= 3;
0x0003ec48 sll v0, v0, 3 | v0 <<= 3;
0x0003ec4c subu sp, sp, v0 |
0x0003ec50 lw a2, 4(v1) | a2 = *((v1 + 1));
0x0003ec54 lw a3, 0x3698(a0) | a3 = *((a0 + 3494));
0x0003ec58 lhu v0, 8(v1) | v0 = *((v1 + 4));
0x0003ec5c lw t9, -0x72a8(gp) | t9 = sym.imp.strcpy
0x0003ec60 move a1, s3 | a1 = s3;
0x0003ec64 addiu a0, sp, 0x22 | a0 = sp + 0x22;
0x0003ec68 sw a3, 0x18(sp) | *(var_18h_2) = a3;
0x0003ec6c sw a2, 0x1c(sp) | *(var_1ch_3) = a2;
0x0003ec70 sh v0, 0x20(sp) | *(var_20h_2) = v0;
0x0003ec74 jalr t9 | t9 ();
0x0003ec78 lw gp, 0x18(fp) | gp = *(var_18h_2);
0x0003ec7c addiu s0, sp, 0x18 | s0 = sp + 0x18;
0x0003ec80 move a0, s0 | a0 = s0;
0x0003ec84 lw t9, -0x79fc(gp) | t9 = sym.read_full_file_full;
0x0003ec88 move a3, zero | a3 = 0;
0x0003ec8c move a2, s2 | a2 = s2;
0x0003ec90 move a1, zero | a1 = 0;
0x0003ec94 jalr t9 | t9 ();
0x0003ec98 lw a0, 0x24(fp) | a0 = *(arg_24h);
0x0003ec9c lw v1, (s1) | v1 = *(s1);
0x0003eca0 lw gp, 0x18(fp) | gp = *(var_18h_2);
| if (a0 != v1) {
0x0003eca4 bne a0, v1, 0x3ed44 | goto label_2;
| }
0x0003eca8 move sp, fp |
0x0003ecac lw ra, 0x3c(sp) | ra = *(var_3ch);
0x0003ecb0 lw fp, 0x38(sp) | fp = *(var_38h);
0x0003ecb4 lw s3, 0x34(sp) | s3 = *(var_34h);
0x0003ecb8 lw s2, 0x30(sp) | s2 = *(var_30h_2);
0x0003ecbc lw s1, 0x2c(sp) | s1 = *(var_2ch_2);
0x0003ecc0 lw s0, 0x28(sp) | s0 = *(var_28h_2);
0x0003ecc4 addiu sp, sp, 0x40 |
0x0003ecc8 jr ra | return v0;
| }
0x0003eccc lw a2, -0x7fc4(gp) | a2 = *(gp);
0x0003ecd0 lw a1, -0x7fc4(gp) | a1 = *(gp);
| /* str.sysctl_read */
0x0003ecd4 addiu v0, v0, 0x36ac | v0 += 0x36ac;
0x0003ecd8 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x0003ecdc sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0003ece0 addiu a3, zero, 0x61 | a3 = 0x61;
| /* esilref: 'src/shared/sysctl-util.c' */
0x0003ece4 addiu a2, a2, 0x3657 | a2 += 0x3657;
| /* str.property */
0x0003ece8 addiu a1, a1, 0x3670 | a1 += 0x3670;
0x0003ecec jalr t9 | t9 ();
| label_0:
0x0003ecf0 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x0003ecf4 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x0003ecf8 addiu v0, v0, 0x36ac | v0 += 0x36ac;
0x0003ecfc lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x0003ed00 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0003ed04 addiu a3, zero, 0x62 | a3 = 0x62;
| /* esilref: 'src/shared/sysctl-util.c' */
0x0003ed08 addiu a2, a2, 0x3657 | a2 += 0x3657;
| /* str.content */
0x0003ed0c addiu a1, a1, 0x36a4 | a1 += 0x36a4;
0x0003ed10 move a0, zero | a0 = 0;
0x0003ed14 jalr t9 | t9 ();
| label_1:
0x0003ed18 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0003ed1c lw a2, -0x7fc4(gp) | a2 = *(gp);
0x0003ed20 lw a1, -0x7fd0(gp) | a1 = *(gp);
| /* str.sysctl_read */
0x0003ed24 addiu v0, v0, 0x36ac | v0 += 0x36ac;
0x0003ed28 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x0003ed2c sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0003ed30 addiu a3, zero, 0x64 | a3 = 0x64;
| /* esilref: 'src/shared/sysctl-util.c' */
0x0003ed34 addiu a2, a2, 0x3657 | a2 += 0x3657;
| /* str.sizeof_char__n____ALLOCA_MAX */
0x0003ed38 addiu a1, a1, 0x7c64 | a1 += 0x7c64;
0x0003ed3c move a0, zero | a0 = 0;
0x0003ed40 jalr t9 | t9 ();
| label_2:
0x0003ed44 lw t9, -0x7230(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003ed48 jalr t9 | t9 ();
0x0003ed4c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd-udevd @ 0x3e8b8 */
| #include <stdint.h>
|
; (fcn) sym.sysctl_write () | void sysctl_write () {
0x0003e8b8 lui gp, 9 |
0x0003e8bc addiu gp, gp, -0x7748 |
0x0003e8c0 addu gp, gp, t9 | gp += t9;
0x0003e8c4 addiu sp, sp, -0x60 |
0x0003e8c8 sw s3, 0x50(sp) | *(var_50h) = s3;
0x0003e8cc lw s3, -0x71f0(gp) | s3 = *((gp - 7292));
0x0003e8d0 sw fp, 0x58(sp) | *(var_58h) = fp;
0x0003e8d4 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x0003e8d8 sw s4, 0x54(sp) | *(var_54h) = s4;
0x0003e8dc sw s2, 0x4c(sp) | *(var_4ch) = s2;
0x0003e8e0 sw s1, 0x48(sp) | *(var_48h) = s1;
0x0003e8e4 sw s0, 0x44(sp) | *(var_44h) = s0;
0x0003e8e8 sw gp, 0x28(sp) | *(var_28h) = gp;
0x0003e8ec move fp, sp | fp = sp;
0x0003e8f0 lw v0, (s3) | v0 = *(s3);
0x0003e8f4 sw v0, 0x3c(fp) | *(arg_3ch) = v0;
0x0003e8f8 lw v0, -0x7fc4(gp) | v0 = *(gp);
| if (a0 == 0) {
0x0003e8fc beqz a0, 0x3eb2c | goto label_2;
| }
0x0003e900 move s0, a1 | s0 = a1;
| if (a1 == 0) {
0x0003e904 beqz a1, 0x3eb50 | goto label_3;
| }
0x0003e908 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x0003e90c move s1, a0 | s1 = a0;
0x0003e910 move a0, zero | a0 = 0;
0x0003e914 jalr t9 | t9 ();
0x0003e918 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x0003e91c lw gp, 0x28(fp) | gp = *(arg_28h);
| if (v0 == 0) {
0x0003e920 beqz v0, 0x3eacc | goto label_4;
| }
| label_1:
0x0003e924 lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x0003e928 move a0, s1 | a0 = s1;
0x0003e92c jalr t9 | t9 ();
0x0003e930 lui s2, 0x40 | s2 = 0x400000;
0x0003e934 addiu v1, v0, 0xb | v1 = v0 + 0xb;
0x0003e938 addiu s2, s2, 1 | s2++;
0x0003e93c sltu v1, v1, s2 | v1 = (v1 < s2) ? 1 : 0;
0x0003e940 lw gp, 0x28(fp) | gp = *(arg_28h);
| if (v1 == 0) {
0x0003e944 beqz v1, 0x3eb78 | goto label_5;
| }
0x0003e948 lw a0, -0x7fc4(gp) | a0 = *(gp);
0x0003e94c addiu v0, v0, 0x12 | v0 += 0x12;
| /* str._proc_sys_ */
0x0003e950 addiu v1, a0, 0x3698 | v1 = a0 + 0x3698;
0x0003e954 srl v0, v0, 3 | v0 >>= 3;
0x0003e958 sll v0, v0, 3 | v0 <<= 3;
0x0003e95c subu sp, sp, v0 |
0x0003e960 lw a3, 0x3698(a0) | a3 = *((a0 + 3494));
0x0003e964 lw a2, 4(v1) | a2 = *((v1 + 1));
0x0003e968 lhu v0, 8(v1) | v0 = *((v1 + 4));
0x0003e96c lw t9, -0x72a8(gp) | t9 = sym.imp.strcpy
0x0003e970 move a1, s1 | a1 = s1;
0x0003e974 addiu a0, sp, 0x32 | a0 = sp + 0x32;
0x0003e978 sw a3, 0x28(sp) | *(var_28h) = a3;
0x0003e97c sw a2, 0x2c(sp) | *(var_2ch) = a2;
0x0003e980 sh v0, 0x30(sp) | *(var_30h) = v0;
0x0003e984 jalr t9 | t9 ();
0x0003e988 lw gp, 0x28(fp) | gp = *(arg_28h);
0x0003e98c addiu s4, sp, 0x28 | s4 = sp + 0x28;
0x0003e990 lui a1, 8 | a1 = 0x80000;
0x0003e994 lw t9, -0x7354(gp) | t9 = sym.imp.open64;
0x0003e998 addiu a1, a1, 1 | a1++;
0x0003e99c move a0, s4 | a0 = s4;
0x0003e9a0 jalr t9 | t9 ();
0x0003e9a4 move s1, v0 | s1 = v0;
0x0003e9a8 lw gp, 0x28(fp) | gp = *(arg_28h);
| if (v0 < 0) {
0x0003e9ac bltz v0, 0x3eab0 | goto label_6;
| }
0x0003e9b0 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x0003e9b4 lw t9, -0x7d60(gp) | t9 = sym.endswith;
0x0003e9b8 addiu a1, a1, -0x3344 | a1 += -0x3344;
0x0003e9bc move a0, s0 | a0 = s0;
0x0003e9c0 jalr t9 | t9 ();
0x0003e9c4 lw gp, 0x28(fp) | gp = *(arg_28h);
0x0003e9c8 move a0, s0 | a0 = s0;
0x0003e9cc lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
0x0003e9d0 move s4, v0 | s4 = v0;
0x0003e9d4 jalr t9 | t9 ();
0x0003e9d8 move a2, v0 | a2 = v0;
0x0003e9dc lw gp, 0x28(fp) | gp = *(arg_28h);
| if (s4 == 0) {
0x0003e9e0 beqz s4, 0x3ea48 | goto label_7;
| }
0x0003e9e4 lw t9, -0x734c(gp) | t9 = sym.imp.write;
0x0003e9e8 move a1, s0 | a1 = s0;
0x0003e9ec move a0, s1 | a0 = s1;
0x0003e9f0 jalr t9 | t9 ();
0x0003e9f4 lw gp, 0x28(fp) | gp = *(arg_28h);
| if (v0 < 0) {
0x0003e9f8 bltz v0, 0x3eab0 | goto label_6;
| }
| do {
0x0003e9fc move s0, zero | s0 = 0;
| label_0:
0x0003ea00 lw t9, -0x7f88(gp) | t9 = sym.safe_close;
0x0003ea04 move a0, s1 | a0 = s1;
0x0003ea08 jalr t9 | t9 ();
0x0003ea0c lw a0, 0x3c(fp) | a0 = *(arg_3ch);
0x0003ea10 lw v1, (s3) | v1 = *(s3);
0x0003ea14 lw gp, 0x28(fp) | gp = *(arg_28h);
0x0003ea18 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x0003ea1c bne a0, v1, 0x3ebbc | goto label_8;
| }
0x0003ea20 move sp, fp |
0x0003ea24 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x0003ea28 lw fp, 0x58(sp) | fp = *(var_58h);
0x0003ea2c lw s4, 0x54(sp) | s4 = *(var_54h);
0x0003ea30 lw s3, 0x50(sp) | s3 = *(var_50h);
0x0003ea34 lw s2, 0x4c(sp) | s2 = *(var_4ch);
0x0003ea38 lw s1, 0x48(sp) | s1 = *(var_48h);
0x0003ea3c lw s0, 0x44(sp) | s0 = *(var_44h);
0x0003ea40 addiu sp, sp, 0x60 |
0x0003ea44 jr ra | return v0;
| label_7:
0x0003ea48 addiu v0, v0, 2 | v0 += 2;
0x0003ea4c sltu s2, v0, s2 | s2 = (v0 < s2) ? 1 : 0;
0x0003ea50 addiu v0, a2, 9 | v0 = a2 + 9;
| if (s2 == 0) {
0x0003ea54 beqz s2, 0x3eba4 | goto label_9;
| }
0x0003ea58 srl v0, v0, 3 | v0 >>= 3;
0x0003ea5c sll v0, v0, 3 | v0 <<= 3;
0x0003ea60 subu sp, sp, v0 |
0x0003ea64 lw t9, -0x722c(gp) | t9 = sym.imp.stpcpy;
0x0003ea68 addiu s2, sp, 0x28 | s2 = sp + 0x28;
0x0003ea6c move a1, s0 | a1 = s0;
0x0003ea70 sw a2, 0x34(fp) | *(arg_34h) = a2;
0x0003ea74 move a0, s2 | a0 = s2;
0x0003ea78 jalr t9 | t9 ();
0x0003ea7c lw gp, 0x28(fp) | gp = *(arg_28h);
0x0003ea80 lw a2, 0x34(fp) | a2 = *(arg_34h);
0x0003ea84 addiu v1, zero, 0xa | v1 = 0xa;
0x0003ea88 lw t9, -0x734c(gp) | t9 = sym.imp.write;
0x0003ea8c move s0, s2 | s0 = s2;
0x0003ea90 sb v1, (v0) | *(v0) = v1;
0x0003ea94 sb zero, 1(v0) | *((v0 + 1)) = 0;
0x0003ea98 addiu a2, a2, 1 | a2++;
0x0003ea9c move a1, s0 | a1 = s0;
0x0003eaa0 move a0, s1 | a0 = s1;
0x0003eaa4 jalr t9 | t9 ();
0x0003eaa8 lw gp, 0x28(fp) | gp = *(arg_28h);
0x0003eaac bgez v0, 0x3e9fc |
| } while (v0 >= 0);
| label_6:
0x0003eab0 lw t9, -0x73b8(gp) | t9 = sym.imp.__errno_location;
0x0003eab4 jalr t9 | t9 ();
0x0003eab8 nop |
0x0003eabc lw s0, (v0) | s0 = *(v0);
0x0003eac0 lw gp, 0x28(fp) | gp = *(arg_28h);
0x0003eac4 negu s0, s0 | __asm ("negu s0, s0");
0x0003eac8 b 0x3ea00 | goto label_0;
| label_4:
0x0003eacc lw a1, -0x7fc4(gp) | a1 = *(gp);
0x0003ead0 lw t9, -0x719c(gp) | t9 = sym.imp.strcspn;
| /* esilref: '
' */
0x0003ead4 addiu a1, a1, 0x367c | a1 += 0x367c;
0x0003ead8 move a0, s0 | a0 = s0;
0x0003eadc jalr t9 | t9 ();
0x0003eae0 lw gp, 0x28(fp) | gp = *(arg_28h);
0x0003eae4 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x0003eae8 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0003eaec lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0003eaf0 lw a2, -0x7fc4(gp) | a2 = *(gp);
| /* str.Setting__s_to__.s. */
0x0003eaf4 addiu v0, v0, 0x3680 | v0 += 0x3680;
0x0003eaf8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0003eafc lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0003eb00 lw t9, -0x7fc8(gp) | t9 = sym.log_internal_realm;
| /* esilref: 'sysctl_write' */
0x0003eb04 addiu v0, v0, 0x36b8 | v0 += 0x36b8;
0x0003eb08 sw s1, 0x18(sp) | *(var_18h) = s1;
0x0003eb0c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003eb10 addiu a3, zero, 0x2f | a3 = 0x2f;
| /* esilref: 'src/shared/sysctl-util.c' */
0x0003eb14 addiu a2, a2, 0x3657 | a2 += 0x3657;
0x0003eb18 move a1, zero | a1 = 0;
0x0003eb1c addiu a0, zero, 7 | a0 = 7;
0x0003eb20 jalr t9 | t9 ();
0x0003eb24 lw gp, 0x28(fp) | gp = *(arg_28h);
0x0003eb28 b 0x3e924 | goto label_1;
| label_2:
0x0003eb2c lw a2, -0x7fc4(gp) | a2 = *(gp);
0x0003eb30 lw a1, -0x7fc4(gp) | a1 = *(gp);
| /* str.sysctl_write */
0x0003eb34 addiu v0, v0, 0x36c8 | v0 += 0x36c8;
0x0003eb38 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x0003eb3c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003eb40 addiu a3, zero, 0x2c | a3 = 0x2c;
| /* esilref: 'src/shared/sysctl-util.c' */
0x0003eb44 addiu a2, a2, 0x3657 | a2 += 0x3657;
| /* str.property */
0x0003eb48 addiu a1, a1, 0x3670 | a1 += 0x3670;
0x0003eb4c jalr t9 | t9 ();
| label_3:
0x0003eb50 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x0003eb54 lw a1, -0x7fc4(gp) | a1 = *(gp);
0x0003eb58 addiu v0, v0, 0x36c8 | v0 += 0x36c8;
0x0003eb5c lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x0003eb60 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003eb64 addiu a3, zero, 0x2d | a3 = 0x2d;
| /* esilref: 'src/shared/sysctl-util.c' */
0x0003eb68 addiu a2, a2, 0x3657 | a2 += 0x3657;
| /* str.value */
0x0003eb6c addiu a1, a1, -0x7b18 | a1 += -0x7b18;
0x0003eb70 move a0, zero | a0 = 0;
0x0003eb74 jalr t9 | t9 ();
| label_5:
0x0003eb78 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0003eb7c lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
| /* str.sysctl_write */
0x0003eb80 addiu v0, v0, 0x36c8 | v0 += 0x36c8;
0x0003eb84 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003eb88 addiu a3, zero, 0x31 | a3 = 0x31;
| do {
0x0003eb8c lw a2, -0x7fc4(gp) | a2 = *(gp);
0x0003eb90 lw a1, -0x7fd0(gp) | a1 = *(gp);
| /* esilref: 'src/shared/sysctl-util.c' */
0x0003eb94 addiu a2, a2, 0x3657 | a2 += 0x3657;
| /* str.sizeof_char__n____ALLOCA_MAX */
0x0003eb98 addiu a1, a1, 0x7c64 | a1 += 0x7c64;
0x0003eb9c move a0, zero | a0 = 0;
0x0003eba0 jalr t9 | t9 ();
| label_9:
0x0003eba4 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x0003eba8 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
| /* str.sysctl_write */
0x0003ebac addiu v0, v0, 0x36c8 | v0 += 0x36c8;
0x0003ebb0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003ebb4 addiu a3, zero, 0x37 | a3 = 0x37;
0x0003ebb8 b 0x3eb8c |
| } while (1);
| label_8:
0x0003ebbc lw t9, -0x7230(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003ebc0 jalr t9 | t9 ();
0x0003ebc4 nop |
| }
[*] Function strcpy used 13 times systemd-udevd