[*] Binary protection state of systemd-udevd
Full RELRO Canary found NX disabled PIE enabled RPATH No RUNPATH No Symbols
[*] Function fprintf 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 @ 0x462d8 */
| #include <stdint.h>
|
; (fcn) sym.device_update_db () | void device_update_db () {
0x000462d8 lui gp, 8 |
0x000462dc addiu gp, gp, 0xe98 |
0x000462e0 addu gp, gp, t9 | gp += t9;
0x000462e4 addiu sp, sp, -0x88 |
0x000462e8 sw s2, 0x68(sp) | *(var_68h) = s2;
0x000462ec lw s2, -0x71f0(gp) | s2 = *((gp - 7292));
0x000462f0 sw fp, 0x80(sp) | *(var_80h) = fp;
0x000462f4 sw ra, 0x84(sp) | *(var_84h) = ra;
0x000462f8 sw s7, 0x7c(sp) | *(var_7ch) = s7;
0x000462fc sw s6, 0x78(sp) | *(var_78h) = s6;
0x00046300 sw s5, 0x74(sp) | *(var_74h) = s5;
0x00046304 sw s4, 0x70(sp) | *(var_70h) = s4;
0x00046308 sw s3, 0x6c(sp) | *(var_6ch) = s3;
0x0004630c sw s1, 0x64(sp) | *(var_64h) = s1;
0x00046310 sw s0, 0x60(sp) | *(var_60h) = s0;
0x00046314 sw gp, 0x38(sp) | *(var_38h) = gp;
0x00046318 move fp, sp | fp = sp;
0x0004631c lw v0, (s2) | v0 = *(s2);
0x00046320 sw zero, 0x44(fp) | *(arg_44h) = 0;
0x00046324 sw zero, 0x48(fp) | *(arg_48h) = 0;
0x00046328 sw v0, 0x5c(fp) | *(arg_5ch) = v0;
0x0004632c lw t9, -0x7f24(gp) | t9 = sym.internal_hashmap_size;
| if (a0 == 0) {
0x00046330 beqz a0, 0x46874 | goto label_13;
| }
0x00046334 move s0, a0 | s0 = a0;
0x00046338 lw a0, 0x58(a0) | a0 = *((a0 + 22));
0x0004633c jalr t9 | t9 ();
0x00046340 lw gp, 0x38(fp) | gp = *(var_38h);
| if (v0 != 0) {
0x00046344 bnez v0, 0x46404 | goto label_14;
| }
0x00046348 lw v0, 0x78(s0) | v0 = *((s0 + 30));
0x0004634c lw t9, -0x7f24(gp) | t9 = sym.internal_hashmap_size;
| if (v0 != 0) {
0x00046350 bnez v0, 0x46404 | goto label_14;
| }
0x00046354 lw a0, 0x28(s0) | a0 = *((s0 + 10));
0x00046358 jalr t9 | t9 ();
0x0004635c lw gp, 0x38(fp) | gp = *(var_38h);
| if (v0 != 0) {
0x00046360 bnez v0, 0x46404 | goto label_14;
| }
0x00046364 lw t9, -0x7f24(gp) | t9 = sym.internal_hashmap_size;
0x00046368 lw a0, 0x3c(s0) | a0 = *((s0 + 15));
0x0004636c jalr t9 | t9 ();
0x00046370 lw gp, 0x38(fp) | gp = *(var_38h);
| if (v0 != 0) {
0x00046374 bnez v0, 0x46404 | goto label_14;
| }
0x00046378 lw t9, -0x7cb0(gp) | t9 = sym.device_get_id_filename;
0x0004637c lw s3, 4(s0) | s3 = *((s0 + 1));
0x00046380 addiu a1, fp, 0x40 | a1 = fp + 0x40;
0x00046384 move a0, s0 | a0 = s0;
0x00046388 bal 0x4ce64 | sym_device_get_id_filename ();
0x0004638c nor s3, zero, s3 | __asm ("nor s3, zero, s3");
0x00046390 srl s3, s3, 0x1f | s3 >>= 0x1f;
0x00046394 lw gp, 0x38(fp) | gp = *(var_38h);
0x00046398 move s4, v0 | s4 = v0;
| if (v0 >= 0) {
0x0004639c bgez v0, 0x46424 | goto label_15;
| }
| do {
| label_0:
0x000463a0 lw t9, -0x71d0(gp) | t9 = *((gp - 7284));
0x000463a4 lw a0, 0x48(fp) | a0 = *(arg_48h);
0x000463a8 jalr t9 | t9 ();
0x000463ac lw gp, 0x38(fp) | gp = *(var_38h);
0x000463b0 lw t9, -0x7bfc(gp) | t9 = sym.safe_fclose;
0x000463b4 lw a0, 0x44(fp) | a0 = *(arg_44h);
0x000463b8 bal 0x64144 | sym_safe_fclose ();
0x000463bc lw a0, 0x5c(fp) | a0 = *(arg_5ch);
0x000463c0 lw v1, (s2) | v1 = *(s2);
0x000463c4 lw gp, 0x38(fp) | gp = *(var_38h);
0x000463c8 move v0, s4 | v0 = s4;
| if (a0 != v1) {
0x000463cc bne a0, v1, 0x469cc | goto label_16;
| }
0x000463d0 move sp, fp |
0x000463d4 lw ra, 0x84(sp) | ra = *(var_84h);
0x000463d8 lw fp, 0x80(sp) | fp = *(var_80h);
0x000463dc lw s7, 0x7c(sp) | s7 = *(var_7ch);
0x000463e0 lw s6, 0x78(sp) | s6 = *(var_78h);
0x000463e4 lw s5, 0x74(sp) | s5 = *(var_74h);
0x000463e8 lw s4, 0x70(sp) | s4 = *(var_70h);
0x000463ec lw s3, 0x6c(sp) | s3 = *(var_6ch);
0x000463f0 lw s2, 0x68(sp) | s2 = *(var_68h);
0x000463f4 lw s1, 0x64(sp) | s1 = *(var_64h);
0x000463f8 lw s0, 0x60(sp) | s0 = *(var_60h);
0x000463fc addiu sp, sp, 0x88 |
0x00046400 jr ra | return v1;
| label_14:
0x00046404 lw t9, -0x7cb0(gp) | t9 = sym.device_get_id_filename;
0x00046408 addiu a1, fp, 0x40 | a1 = fp + 0x40;
0x0004640c move a0, s0 | a0 = s0;
0x00046410 bal 0x4ce64 | sym_device_get_id_filename ();
0x00046414 addiu s3, zero, 1 | s3 = 1;
0x00046418 lw gp, 0x38(fp) | gp = *(var_38h);
0x0004641c move s4, v0 | s4 = v0;
0x00046420 bltz v0, 0x463a0 |
| } while (v0 < 0);
| label_15:
0x00046424 lw s4, 0x40(fp) | s4 = *(arg_40h);
0x00046428 lw t9, -0x7334(gp) | t9 = sym.imp.strlen;
| if (s4 == 0) {
0x0004642c beqz s4, 0x468d4 | goto label_17;
| }
0x00046430 move a0, s4 | a0 = s4;
0x00046434 jalr t9 | t9 ();
0x00046438 lui a0, 0x40 | a0 = 0x400000;
0x0004643c addiu v1, v0, 0x10 | v1 = v0 + 0x10;
0x00046440 addiu a0, a0, 1 | a0++;
0x00046444 sltu v1, v1, a0 | v1 = (v1 < a0) ? 1 : 0;
0x00046448 lw gp, 0x38(fp) | gp = *(var_38h);
| if (v1 == 0) {
0x0004644c beqz v1, 0x46820 | goto label_18;
| }
0x00046450 lw a0, -0x7fc4(gp) | a0 = *(gp);
0x00046454 addiu v0, v0, 0x17 | v0 += 0x17;
0x00046458 srl v0, v0, 3 | v0 >>= 3;
| /* str._run_udev_data_ */
0x0004645c addiu v1, a0, 0x4b18 | v1 = a0 + 0x4b18;
0x00046460 sll v0, v0, 3 | v0 <<= 3;
0x00046464 subu sp, sp, v0 |
0x00046468 addiu s1, sp, 0x38 | s1 = sp + 0x38;
0x0004646c lw a2, 0x4b18(a0) | a2 = *((a0 + 4806));
0x00046470 lw a1, 4(v1) | a1 = *((v1 + 1));
0x00046474 lw a0, 8(v1) | a0 = *((v1 + 2));
0x00046478 lw v0, 0xc(v1) | v0 = *((v1 + 3));
0x0004647c lw t9, -0x722c(gp) | t9 = sym.imp.stpcpy;
0x00046480 sw a1, 4(s1) | *((s1 + 1)) = a1;
0x00046484 sw a0, 8(s1) | *((s1 + 2)) = a0;
0x00046488 sw a2, (s1) | *(s1) = a2;
0x0004648c sw v0, 0xc(s1) | *((s1 + 3)) = v0;
0x00046490 move a1, s4 | a1 = s4;
0x00046494 addiu a0, s1, 0xf | a0 = s1 + 0xf;
0x00046498 jalr t9 | t9 ();
0x0004649c lw gp, 0x38(fp) | gp = *(var_38h);
| label_8:
0x000464a0 sb zero, (v0) | *(v0) = 0;
| if (s3 == 0) {
0x000464a4 bnez s3, 0x464c8 |
0x000464a8 lw v1, 0x88(s0) | v1 = *((s0 + 34));
0x000464ac lw v0, 0x8c(s0) | v0 = *((s0 + 35));
0x000464b0 addiu a0, zero, -0x1000 | a0 = -0x1000;
0x000464b4 ext v1, v1, 8, 0xc | __asm ("ext v1, v1, 8, 0xc");
0x000464b8 and v0, v0, a0 | v0 &= a0;
0x000464bc or v0, v0, v1 | v0 |= v1;
| if (v0 == 0) {
0x000464c0 beql v0, zero, 0x466f0 | goto label_19;
| }
0x000464c4 lw s4, 0x7c(s0) | s4 = *((s0 + 31));
| }
0x000464c8 lw t9, -0x7c90(gp) | t9 = sym.mkdir_parents;
| label_1:
0x000464cc addiu a1, zero, 0x1ed | a1 = 0x1ed;
0x000464d0 move a0, s1 | a0 = s1;
0x000464d4 jalr t9 | t9 ();
0x000464d8 move s4, v0 | s4 = v0;
0x000464dc lw gp, 0x38(fp) | gp = *(var_38h);
| if (v0 < 0) {
0x000464e0 bltz v0, 0x463a0 | goto label_0;
| }
0x000464e4 lw t9, -0x7984(gp) | t9 = sym.fopen_temporary;
0x000464e8 addiu a2, fp, 0x48 | a2 = fp + 0x48;
0x000464ec addiu a1, fp, 0x44 | a1 = fp + 0x44;
0x000464f0 move a0, s1 | a0 = s1;
0x000464f4 jalr t9 | t9 ();
0x000464f8 move s4, v0 | s4 = v0;
0x000464fc lw gp, 0x38(fp) | gp = *(var_38h);
| if (v0 < 0) {
0x00046500 bltz v0, 0x463a0 | goto label_0;
| }
0x00046504 lbu v0, 0xe3(s0) | v0 = *((s0 + 227));
0x00046508 lw a0, 0x44(fp) | a0 = *(arg_44h);
0x0004650c andi v0, v0, 4 | v0 &= 4;
0x00046510 lw t9, -0x73d8(gp) | t9 = sym.imp.fileno;
| if (v0 == 0) {
0x00046514 beqz v0, 0x46730 | goto label_20;
| }
0x00046518 jalr t9 | t9 ();
0x0004651c nop |
0x00046520 lw gp, 0x38(fp) | gp = *(var_38h);
0x00046524 addiu a1, zero, 0x3a4 | a1 = 0x3a4;
0x00046528 lw t9, -0x7540(gp) | t9 = sym.imp.fchmod;
0x0004652c move a0, v0 | a0 = v0;
0x00046530 jalr t9 | t9 ();
0x00046534 lw gp, 0x38(fp) | gp = *(var_38h);
| if (v0 < 0) {
0x00046538 bltz v0, 0x46754 | goto label_21;
| }
| label_2:
0x0004653c lw t9, -0x7980(gp) | t9 = sym.fflush_and_check;
| if (s3 == 0) {
0x00046540 beqz s3, 0x46630 | goto label_22;
| }
0x00046544 lw v1, 0x88(s0) | v1 = *((s0 + 34));
0x00046548 lw v0, 0x8c(s0) | v0 = *((s0 + 35));
0x0004654c addiu a0, zero, -0x1000 | a0 = -0x1000;
0x00046550 ext v1, v1, 8, 0xc | __asm ("ext v1, v1, 8, 0xc");
0x00046554 and v0, v0, a0 | v0 &= a0;
0x00046558 or v0, v0, v1 | v0 |= v1;
0x0004655c lw t9, -0x7d24(gp) | t9 = sym.sd_device_get_devlink_first;
| if (v0 != 0) {
0x00046560 bnez v0, 0x46930 | goto label_23;
| }
| label_11:
0x00046564 lw v1, 0xc0(s0) | v1 = *((s0 + 48));
| label_10:
0x00046568 lw v0, 0xc4(s0) | v0 = *((s0 + 49));
0x0004656c or a0, v1, v0 | a0 = v1 | v0;
0x00046570 lw a2, -0x7fc4(gp) | a2 = *(gp);
| if (a0 != 0) {
0x00046574 bnez a0, 0x4690c | goto label_24;
| }
| label_9:
0x00046578 lw s4, -0x7fc4(gp) | s4 = *(gp);
0x0004657c addiu v0, zero, -2 | v0 = -2;
0x00046580 sw v0, 0x54(fp) | *(arg_54h) = v0;
0x00046584 sw zero, 0x58(fp) | *(arg_58h) = 0;
0x00046588 addiu s7, fp, 0x4c | s7 = fp + 0x4c;
0x0004658c addiu s6, fp, 0x50 | s6 = fp + 0x50;
0x00046590 addiu s5, fp, 0x54 | s5 = fp + 0x54;
| /* str.E:_s_s_n */
0x00046594 addiu s4, s4, 0x4aa4 | s4 += 0x4aa4;
0x00046598 b 0x465c0 |
| while (v0 != 0) {
0x0004659c lw v0, 0x50(fp) | v0 = *(arg_50h);
0x000465a0 lw t9, -0x74a8(gp) | t9 = sym.imp.__fprintf_chk
0x000465a4 lw a3, 0x4c(fp) | a3 = *(arg_4ch);
0x000465a8 lw a0, 0x44(fp) | a0 = *(arg_44h);
0x000465ac sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x000465b0 move a2, s4 | a2 = s4;
0x000465b4 addiu a1, zero, 1 | a1 = 1;
0x000465b8 jalr t9 | t9 ();
0x000465bc lw gp, 0x38(fp) | gp = *(var_38h);
0x000465c0 lw t9, -0x7f2c(gp) | t9 = sym.internal_hashmap_iterate;
0x000465c4 lw a0, 0x28(s0) | a0 = *((s0 + 10));
0x000465c8 move a3, s7 | a3 = s7;
0x000465cc move a2, s6 | a2 = s6;
0x000465d0 move a1, s5 | a1 = s5;
0x000465d4 jalr t9 | t9 ();
0x000465d8 lw gp, 0x38(fp) | gp = *(var_38h);
0x000465dc bnez v0, 0x4659c |
| }
0x000465e0 lw t9, -0x7c3c(gp) | t9 = sym.sd_device_get_tag_first;
0x000465e4 move a0, s0 | a0 = s0;
0x000465e8 bal 0x4d838 | sym_sd_device_get_tag_first ();
0x000465ec lw gp, 0x38(fp) | gp = *(var_38h);
| if (v0 == 0) {
0x000465f0 beqz v0, 0x4662c | goto label_25;
| }
0x000465f4 lw s4, -0x7fc4(gp) | s4 = *(gp);
| /* str.G:_s_n */
0x000465f8 addiu s4, s4, 0x4ab0 | s4 += 0x4ab0;
| do {
0x000465fc lw t9, -0x74a8(gp) | t9 = sym.imp.__fprintf_chk
0x00046600 lw a0, 0x44(fp) | a0 = *(arg_44h);
0x00046604 move a3, v0 | a3 = v0;
0x00046608 move a2, s4 | a2 = s4;
0x0004660c addiu a1, zero, 1 | a1 = 1;
0x00046610 jalr t9 | t9 ();
0x00046614 lw gp, 0x38(fp) | gp = *(var_38h);
0x00046618 lw t9, -0x7c38(gp) | t9 = sym.sd_device_get_tag_next;
0x0004661c move a0, s0 | a0 = s0;
0x00046620 bal 0x4d914 | sym_sd_device_get_tag_next ();
0x00046624 lw gp, 0x38(fp) | gp = *(var_38h);
0x00046628 bnez v0, 0x465fc |
| } while (v0 != 0);
| label_25:
0x0004662c lw t9, -0x7980(gp) | t9 = sym.fflush_and_check;
| label_22:
0x00046630 lw a0, 0x44(fp) | a0 = *(arg_44h);
0x00046634 bal 0x6516c | sym_fflush_and_check ();
0x00046638 move s4, v0 | s4 = v0;
0x0004663c lw gp, 0x38(fp) | gp = *(var_38h);
| if (v0 < 0) {
0x00046640 bltz v0, 0x4676c | goto label_26;
| }
0x00046644 lw t9, -0x7320(gp) | t9 = sym.imp.rename;
0x00046648 lw a0, 0x48(fp) | a0 = *(arg_48h);
0x0004664c move a1, s1 | a1 = s1;
0x00046650 jalr t9 | t9 ();
0x00046654 lw gp, 0x38(fp) | gp = *(var_38h);
| if (v0 < 0) {
0x00046658 bltz v0, 0x46754 | goto label_21;
| }
0x0004665c lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x00046660 move a0, zero | a0 = 0;
0x00046664 sw zero, 0x54(fp) | *(arg_54h) = 0;
0x00046668 jalr t9 | t9 ();
0x0004666c slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x00046670 lw gp, 0x38(fp) | gp = *(var_38h);
0x00046674 move a0, zero | a0 = 0;
| if (v0 == 0) {
0x00046678 beqz v0, 0x468ac | goto label_27;
| }
| label_6:
0x0004667c move v0, zero | v0 = 0;
| label_7:
0x00046680 lw v1, -0x7fc4(gp) | v1 = *(gp);
| if (s3 != 0) {
0x00046684 bnez s3, 0x468a4 | goto label_28;
| }
0x00046688 lw v1, -0x7fc4(gp) | v1 = *(gp);
| /* str.empty */
0x0004668c addiu v1, v1, 0x4a7c | v1 += 0x4a7c;
| label_5:
0x00046690 lw a1, 0xa0(s0) | a1 = *((s0 + 40));
0x00046694 sw v1, 0x28(sp) | *(var_18h_2) = v1;
0x00046698 sw v0, 0x14(sp) | *(var_14h_2) = v0;
0x0004669c lw v1, -0x7fc4(gp) | v1 = *(gp);
0x000466a0 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x000466a4 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x000466a8 lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
| /* str.sd_device:_Created__s_file__s_for__s */
0x000466ac addiu v1, v1, 0x4ab8 | v1 += 0x4ab8;
| /* esilref: 'device_update_db' */
0x000466b0 addiu v0, v0, 0x4ed4 | v0 += 0x4ed4;
0x000466b4 sw a1, 0x30(sp) | *(var_20h) = a1;
0x000466b8 sw a0, 0x18(sp) | *(var_18h_5) = a0;
0x000466bc sw s1, 0x2c(sp) | *(var_1ch) = s1;
0x000466c0 sw v1, 0x24(sp) | *(var_14h) = v1;
0x000466c4 sw zero, 0x20(sp) | *(var_10h_2) = 0;
0x000466c8 sw zero, 0x1c(sp) | *(var_1ch_2) = 0;
0x000466cc sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x000466d0 addiu a3, zero, 0x3be | a3 = 0x3be;
| /* esilref: 'src/libsystemd/sd-device/device-private.c' */
0x000466d4 addiu a2, a2, 0x4983 | a2 += 0x4983;
0x000466d8 move a1, zero | a1 = 0;
0x000466dc addiu a0, zero, 7 | a0 = 7;
0x000466e0 jalr t9 | t9 ();
0x000466e4 move s4, zero | s4 = 0;
0x000466e8 lw gp, 0x38(fp) | gp = *(var_38h);
0x000466ec b 0x463a0 | goto label_0;
| label_19:
0x000466f0 lw t9, -0x7c90(gp) | t9 = sym.mkdir_parents;
| if (s4 != 0) {
0x000466f4 bnez s4, 0x464cc | goto label_1;
| }
0x000466f8 lw t9, -0x724c(gp) | t9 = sym.imp.unlink;
0x000466fc move a0, s1 | a0 = s1;
0x00046700 jalr t9 | t9 ();
0x00046704 lw gp, 0x38(fp) | gp = *(var_38h);
| if (v0 >= 0) {
0x00046708 bgez v0, 0x463a0 | goto label_0;
| }
0x0004670c lw t9, -0x73b8(gp) | t9 = sym.imp.__errno_location;
0x00046710 jalr t9 | t9 ();
0x00046714 nop |
0x00046718 lw v0, (v0) | v0 = *(v0);
0x0004671c addiu v1, zero, 2 | v1 = 2;
0x00046720 lw gp, 0x38(fp) | gp = *(var_38h);
| if (v0 == v1) {
0x00046724 beq v0, v1, 0x463a0 | goto label_0;
| }
0x00046728 negu s4, v0 | __asm ("negu s4, v0");
0x0004672c b 0x463a0 | goto label_0;
| label_20:
0x00046730 jalr t9 | t9 ();
0x00046734 nop |
0x00046738 lw gp, 0x38(fp) | gp = *(var_38h);
0x0004673c addiu a1, zero, 0x1a4 | a1 = segment.NOTE;
0x00046740 lw t9, -0x7540(gp) | t9 = sym.imp.fchmod;
0x00046744 move a0, v0 | a0 = v0;
0x00046748 jalr t9 | t9 ();
0x0004674c lw gp, 0x38(fp) | gp = *(var_38h);
| if (v0 >= 0) {
0x00046750 bgez v0, 0x4653c | goto label_2;
| }
| label_21:
0x00046754 lw t9, -0x73b8(gp) | t9 = sym.imp.__errno_location;
0x00046758 jalr t9 | t9 ();
0x0004675c nop |
0x00046760 lw s4, (v0) | s4 = *(v0);
0x00046764 lw gp, 0x38(fp) | gp = *(var_38h);
0x00046768 negu s4, s4 | __asm ("negu s4, s4");
| label_26:
0x0004676c lw t9, -0x724c(gp) | t9 = sym.imp.unlink;
0x00046770 move a0, s1 | a0 = s1;
0x00046774 jalr t9 | t9 ();
0x00046778 lw gp, 0x38(fp) | gp = *(var_38h);
0x0004677c lw t9, -0x724c(gp) | t9 = sym.imp.unlink;
0x00046780 lw a0, 0x48(fp) | a0 = *(arg_48h);
0x00046784 jalr t9 | t9 ();
0x00046788 lw gp, 0x38(fp) | gp = *(var_38h);
0x0004678c move a0, zero | a0 = 0;
0x00046790 lw t9, -0x7fcc(gp) | t9 = sym.log_get_max_level_realm;
0x00046794 sw zero, 0x54(fp) | *(arg_54h) = 0;
0x00046798 jalr t9 | t9 ();
0x0004679c slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x000467a0 lw gp, 0x38(fp) | gp = *(var_38h);
0x000467a4 move a0, zero | a0 = 0;
0x000467a8 beqz v0, 0x4684c |
| while (a0 == 0) {
0x000467ac move v1, zero | v1 = 0;
| label_3:
0x000467b0 lw v0, -0x7fc4(gp) | v0 = *(gp);
| if (s3 == 0) {
0x000467b4 bnel s3, zero, 0x4689c | goto label_29;
| }
0x000467b8 lw v0, -0x7fc4(gp) | v0 = *(gp);
| /* str.empty */
0x000467bc addiu v0, v0, 0x4a7c | v0 += 0x4a7c;
| label_4:
0x000467c0 lw a1, 0xa0(s0) | a1 = *((s0 + 40));
0x000467c4 sw v0, 0x28(sp) | *(var_18h_2) = v0;
0x000467c8 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x000467cc lw a2, -0x7fc4(gp) | a2 = *(gp);
| /* str.sd_device:_Failed_to_create__s_file__s_for__s */
0x000467d0 addiu v0, v0, 0x4ae4 | v0 += 0x4ae4;
0x000467d4 sw v0, 0x24(sp) | *(var_14h) = v0;
0x000467d8 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x000467dc lw t9, -0x7fbc(gp) | t9 = sym.log_object_internal;
| /* esilref: 'device_update_db' */
0x000467e0 addiu v0, v0, 0x4ed4 | v0 += 0x4ed4;
0x000467e4 sw a1, 0x30(sp) | *(var_20h) = a1;
0x000467e8 sw a0, 0x18(sp) | *(var_18h_2) = a0;
0x000467ec move a1, s4 | a1 = s4;
0x000467f0 sw s1, 0x2c(sp) | *(var_1ch) = s1;
0x000467f4 sw zero, 0x20(sp) | *(var_20h) = 0;
0x000467f8 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x000467fc sw v1, 0x14(sp) | *(var_14h_2) = v1;
0x00046800 sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00046804 addiu a3, zero, 0x3c6 | a3 = 0x3c6;
| /* esilref: 'src/libsystemd/sd-device/device-private.c' */
0x00046808 addiu a2, a2, 0x4983 | a2 += 0x4983;
0x0004680c addiu a0, zero, 7 | a0 = 7;
0x00046810 jalr t9 | t9 ();
0x00046814 move s4, v0 | s4 = v0;
0x00046818 lw gp, 0x38(fp) | gp = *(var_38h);
0x0004681c b 0x463a0 | goto label_0;
| label_18:
0x00046820 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00046824 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x00046828 lw a1, -0x7fd0(gp) | a1 = *(gp);
| /* str.device_update_db */
0x0004682c addiu v0, v0, 0x4ee8 | v0 += 0x4ee8;
0x00046830 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x00046834 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00046838 addiu a3, zero, 0x372 | a3 = 0x372;
| /* esilref: 'src/libsystemd/sd-device/device-private.c' */
0x0004683c addiu a2, a2, 0x4983 | a2 += 0x4983;
| /* str.sizeof_char__n____ALLOCA_MAX */
0x00046840 addiu a1, a1, 0x7c64 | a1 += 0x7c64;
0x00046844 move a0, zero | a0 = 0;
0x00046848 jalr t9 | t9 ();
0x0004684c lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x00046850 move a0, s0 | a0 = s0;
0x00046854 addiu a1, fp, 0x54 | a1 = fp + 0x54;
0x00046858 bal 0x4ac0c | sym_sd_device_get_sysname ();
0x0004685c lw a0, 0x54(fp) | a0 = *(arg_54h);
0x00046860 lw gp, 0x38(fp) | gp = *(var_38h);
0x00046864 beqz a0, 0x467ac |
| }
0x00046868 lw v1, -0x7fd0(gp) | v1 = *(gp);
| /* str.DEVICE */
0x0004686c addiu v1, v1, 0x7b84 | v1 += 0x7b84;
0x00046870 b 0x467b0 | goto label_3;
| label_13:
0x00046874 lw v0, -0x7fc4(gp) | v0 = *(gp);
0x00046878 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x0004687c lw a1, -0x7fc4(gp) | a1 = *(gp);
| /* str.device_update_db */
0x00046880 addiu v0, v0, 0x4ee8 | v0 += 0x4ee8;
0x00046884 lw t9, -0x7fc0(gp) | t9 = sym.log_assert_failed_realm;
0x00046888 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0004688c addiu a3, zero, 0x36a | a3 = 0x36a;
| /* esilref: 'src/libsystemd/sd-device/device-private.c' */
0x00046890 addiu a2, a2, 0x4983 | a2 += 0x4983;
| /* esilref: 'device' */
0x00046894 addiu a1, a1, -0xdc | a1 += -0xdc;
0x00046898 jalr t9 | t9 ();
| label_29:
0x0004689c addiu v0, v0, -0x4128 | v0 += -0x4128;
0x000468a0 b 0x467c0 | goto label_4;
| /* esilref: 'db' */
| label_28:
0x000468a4 addiu v1, v1, -0x4128 | v1 += -0x4128;
0x000468a8 b 0x46690 | goto label_5;
| label_27:
0x000468ac lw t9, -0x7fb8(gp) | t9 = sym.sd_device_get_sysname;
0x000468b0 move a0, s0 | a0 = s0;
0x000468b4 addiu a1, fp, 0x54 | a1 = fp + 0x54;
0x000468b8 bal 0x4ac0c | sym_sd_device_get_sysname ();
0x000468bc lw a0, 0x54(fp) | a0 = *(arg_54h);
0x000468c0 lw gp, 0x38(fp) | gp = *(var_38h);
| if (a0 == 0) {
0x000468c4 beqz a0, 0x4667c | goto label_6;
| }
0x000468c8 lw v0, -0x7fd0(gp) | v0 = *(gp);
| /* str.DEVICE */
0x000468cc addiu v0, v0, 0x7b84 | v0 += 0x7b84;
0x000468d0 b 0x46680 | goto label_7;
| label_17:
0x000468d4 lw v1, -0x7fc4(gp) | v1 = *(gp);
0x000468d8 addiu sp, sp, -0x10 |
| /* str._run_udev_data_ */
0x000468dc addiu v0, v1, 0x4b18 | v0 = v1 + 0x4b18;
0x000468e0 addiu s1, sp, 0x38 | s1 = sp + 0x38;
0x000468e4 lw a1, 0x4b18(v1) | a1 = *((v1 + 4806));
0x000468e8 lw a0, 4(v0) | a0 = *((v0 + 1));
0x000468ec lw v1, 8(v0) | v1 = *((v0 + 2));
0x000468f0 lw v0, 0xc(v0) | v0 = *((v0 + 3));
0x000468f4 sw a1, (s1) | *(s1) = a1;
0x000468f8 sw v0, 0xc(s1) | *((s1 + 3)) = v0;
0x000468fc sw a0, 4(s1) | *((s1 + 1)) = a0;
0x00046900 sw v1, 8(s1) | *((s1 + 2)) = v1;
0x00046904 addiu v0, s1, 0xf | v0 = s1 + 0xf;
0x00046908 b 0x464a0 | goto label_8;
| label_24:
0x0004690c lw t9, -0x74a8(gp) | t9 = sym.imp.__fprintf_chk
0x00046910 lw a0, 0x44(fp) | a0 = *(arg_44h);
0x00046914 sw v1, 0x10(sp) | *(var_10h_4) = v1;
0x00046918 sw v0, 0x14(sp) | *(var_14h_2) = v0;
| /* str.I:_llu_n */
0x0004691c addiu a2, a2, 0x4a9c | a2 += 0x4a9c;
0x00046920 addiu a1, zero, 1 | a1 = 1;
0x00046924 jalr t9 | t9 ();
0x00046928 lw gp, 0x38(fp) | gp = *(var_38h);
0x0004692c b 0x46578 | goto label_9;
| label_23:
0x00046930 move a0, s0 | a0 = s0;
0x00046934 bal 0x4d9f4 | sym_sd_device_get_devlink_first ();
0x00046938 lw gp, 0x38(fp) | gp = *(var_38h);
| if (v0 == 0) {
0x0004693c beqz v0, 0x46978 | goto label_30;
| }
0x00046940 lw s4, -0x7fc4(gp) | s4 = *(gp);
| /* str.S:_s_n */
0x00046944 addiu s4, s4, 0x4a84 | s4 += 0x4a84;
| do {
0x00046948 lw t9, -0x74a8(gp) | t9 = sym.imp.__fprintf_chk
0x0004694c lw a0, 0x44(fp) | a0 = *(arg_44h);
0x00046950 addiu a3, v0, 5 | a3 = v0 + 5;
0x00046954 move a2, s4 | a2 = s4;
0x00046958 addiu a1, zero, 1 | a1 = 1;
0x0004695c jalr t9 | t9 ();
0x00046960 lw gp, 0x38(fp) | gp = *(var_38h);
0x00046964 lw t9, -0x7d1c(gp) | t9 = sym.sd_device_get_devlink_next;
0x00046968 move a0, s0 | a0 = s0;
0x0004696c bal 0x4dad0 | sym_sd_device_get_devlink_next ();
0x00046970 lw gp, 0x38(fp) | gp = *(var_38h);
0x00046974 bnez v0, 0x46948 |
| } while (v0 != 0);
| label_30:
0x00046978 lw a3, 0x78(s0) | a3 = *((s0 + 30));
0x0004697c lw a2, -0x7fc4(gp) | a2 = *(gp);
| if (a3 != 0) {
0x00046980 bnez a3, 0x469b0 | goto label_31;
| }
| label_12:
0x00046984 lw a3, 4(s0) | a3 = *((s0 + 1));
| if (a3 < 0) {
0x00046988 bltzl a3, 0x46568 | goto label_10;
| }
0x0004698c lw v1, 0xc0(s0) | v1 = *((s0 + 48));
0x00046990 lw a2, -0x7fc4(gp) | a2 = *(gp);
0x00046994 lw t9, -0x74a8(gp) | t9 = sym.imp.__fprintf_chk
0x00046998 lw a0, 0x44(fp) | a0 = *(arg_44h);
| /* str.W:_i_n */
0x0004699c addiu a2, a2, 0x4a94 | a2 += 0x4a94;
0x000469a0 addiu a1, zero, 1 | a1 = 1;
0x000469a4 jalr t9 | t9 ();
0x000469a8 lw gp, 0x38(fp) | gp = *(var_38h);
0x000469ac b 0x46564 | goto label_11;
| label_31:
0x000469b0 lw t9, -0x74a8(gp) | t9 = sym.imp.__fprintf_chk
0x000469b4 lw a0, 0x44(fp) | a0 = *(arg_44h);
| /* str.L:_i_n */
0x000469b8 addiu a2, a2, 0x4a8c | a2 += 0x4a8c;
0x000469bc addiu a1, zero, 1 | a1 = 1;
0x000469c0 jalr t9 | t9 ();
0x000469c4 lw gp, 0x38(fp) | gp = *(var_38h);
0x000469c8 b 0x46984 | goto label_12;
| label_16:
0x000469cc lw t9, -0x7230(gp) | t9 = sym.imp.__stack_chk_fail;
0x000469d0 jalr t9 | t9 ();
0x000469d4 nop |
| }
[*] Function fprintf used 7 times systemd-udevd