[*] 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