[*] Binary protection state of cdrom_id

  
  	Full RELRO     Canary found      NX disabled  PIE enabled  RPATH        No RUNPATH   No Symbols


[*] Function printf tear down of cdrom_id

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/udev/cdrom_id @ 0xf458 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.get_ctty_devnr ()            | void get_ctty_devnr () {
    0x0000f458 lui gp, 2                     |     
    0x0000f45c addiu gp, gp, -0x438          |     
    0x0000f460 addu gp, gp, t9               |     gp += t9;
    0x0000f464 addiu sp, sp, -0x50           |     
    0x0000f468 sw s1, 0x40(sp)               |     *(var_40h) = s1;
    0x0000f46c lw s1, -0x7cc4(gp)            |     s1 = *((gp - 7985));
    0x0000f470 sw fp, 0x48(sp)               |     *(var_48h) = fp;
    0x0000f474 sw ra, 0x4c(sp)               |     *(var_4ch) = ra;
    0x0000f478 sw s2, 0x44(sp)               |     *(var_44h) = s2;
    0x0000f47c sw s0, 0x3c(sp)               |     *(var_3ch) = s0;
    0x0000f480 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0000f484 move fp, sp                   |     fp = sp;
    0x0000f488 lw v0, (s1)                   |     v0 = *(s1);
    0x0000f48c sw zero, 0x2c(fp)             |     *(arg_2ch) = 0;
    0x0000f490 sw v0, 0x34(fp)               |     *(arg_34h) = v0;
    0x0000f494 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
                                             |     if (a0 < 0) {
    0x0000f498 bltz a0, 0xf5b0               |         goto label_1;
                                             |     }
    0x0000f49c move s2, a1                   |     s2 = a1;
                                             |     if (a0 != 0) {
    0x0000f4a0 bnez a0, 0xf580               |         goto label_2;
                                             |     }
    0x0000f4a4 lw s0, -0x7fd8(gp)            |     s0 = *(gp);
                                             |     /* str._proc_self_stat */
    0x0000f4a8 addiu s0, s0, 0x5324          |     s0 += 0x5324;
                                             |     do {
    0x0000f4ac lw t9, -0x7ec4(gp)            |         t9 = sym.read_one_line_file;
    0x0000f4b0 move a0, s0                   |         a0 = s0;
    0x0000f4b4 addiu a1, fp, 0x2c            |         a1 = fp + 0x2c;
    0x0000f4b8 bal 0x86c0                    |         sym_read_one_line_file ();
    0x0000f4bc lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0000f4c0 lw s0, 0x2c(fp)               |         s0 = *(arg_2ch);
                                             |         if (v0 >= 0) {
    0x0000f4c4 bltz v0, 0xf53c               |             
    0x0000f4c8 lw t9, -0x7db0(gp)            |             t9 = sym.imp.strrchr;
    0x0000f4cc addiu a1, zero, 0x29          |             a1 = 0x29;
    0x0000f4d0 move a0, s0                   |             a0 = s0;
    0x0000f4d4 jalr t9                       |             t9 ();
    0x0000f4d8 lw gp, 0x18(fp)               |             gp = *(arg_18h);
                                             |             if (v0 == 0) {
    0x0000f4dc beqz v0, 0xf5ec               |                 goto label_3;
                                             |             }
    0x0000f4e0 lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x0000f4e4 lw t9, -0x7db4(gp)            |             t9 = sym.imp.sscanf;
    0x0000f4e8 addiu a2, fp, 0x30            |             a2 = fp + 0x30;
                                             |             /* str.__c__d__d__d__lu_ */
    0x0000f4ec addiu a1, a1, 0x569c          |             a1 += 0x569c;
    0x0000f4f0 addiu a0, v0, 1               |             a0 = v0 + 1;
    0x0000f4f4 jalr t9                       |             t9 ();
    0x0000f4f8 addiu v1, zero, 1             |             v1 = 1;
    0x0000f4fc lw gp, 0x18(fp)               |             gp = *(arg_18h);
                                             |             if (v0 != v1) {
    0x0000f500 bne v0, v1, 0xf5d8            |                 goto label_4;
                                             |             }
    0x0000f504 lw v1, 0x30(fp)               |             v1 = *(arg_30h);
    0x0000f508 addiu a1, zero, -0x100        |             a1 = -0x100;
    0x0000f50c srl a0, v1, 0xc               |             a0 = v1 >> 0xc;
    0x0000f510 and a0, a0, a1                |             a0 &= a1;
    0x0000f514 ext v0, v1, 8, 0xc            |             __asm ("ext v0, v1, 8, 0xc");
    0x0000f518 or v0, v0, a0                 |             v0 |= a0;
    0x0000f51c andi a0, v1, 0xff             |             a0 = v1 & 0xff;
    0x0000f520 or v0, v0, a0                 |             v0 |= a0;
    0x0000f524 lw s0, 0x2c(fp)               |             s0 = *(arg_2ch);
                                             |             if (v0 == 0) {
    0x0000f528 beqz v0, 0xf5e4               |                 goto label_5;
                                             |             }
    0x0000f52c move v0, zero                 |             v0 = 0;
                                             |             if (s2 == 0) {
    0x0000f530 beqz s2, 0xf53c               |                 goto label_0;
                                             |             }
    0x0000f534 sw v1, (s2)                   |             *(s2) = v1;
    0x0000f538 sw zero, 4(s2)                |             *((s2 + 1)) = 0;
                                             |         }
                                             | label_0:
    0x0000f53c lw t9, -0x7cb8(gp)            |         t9 = sym.imp.free;
    0x0000f540 sw v0, 0x24(fp)               |         *(arg_24h) = v0;
    0x0000f544 move a0, s0                   |         a0 = s0;
    0x0000f548 jalr t9                       |         t9 ();
    0x0000f54c lw a0, 0x34(fp)               |         a0 = *(arg_34h);
    0x0000f550 lw v1, (s1)                   |         v1 = *(s1);
    0x0000f554 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0000f558 lw v0, 0x24(fp)               |         v0 = *(arg_24h);
                                             |         if (a0 != v1) {
    0x0000f55c bne a0, v1, 0xf5f4            |             goto label_6;
                                             |         }
    0x0000f560 move sp, fp                   |         
    0x0000f564 lw ra, 0x4c(sp)               |         ra = *(var_4ch);
    0x0000f568 lw fp, 0x48(sp)               |         fp = *(var_48h);
    0x0000f56c lw s2, 0x44(sp)               |         s2 = *(var_44h);
    0x0000f570 lw s1, 0x40(sp)               |         s1 = *(var_40h);
    0x0000f574 lw s0, 0x3c(sp)               |         s0 = *(var_3ch);
    0x0000f578 addiu sp, sp, 0x50            |         
    0x0000f57c jr ra                         |         return v0;
                                             | label_2:
    0x0000f580 addiu sp, sp, -0x18           |         
    0x0000f584 lw a3, -0x7fd8(gp)            |         a3 = *(gp);
    0x0000f588 lw t9, -0x7df8(gp)            |         t9 = sym.imp.__sprintf_chk
    0x0000f58c addiu s0, sp, 0x18            |         s0 = sp + 0x18;
    0x0000f590 sw a0, 0x10(sp)               |         *(var_10h_2) = a0;
                                             |         /* str._proc__i_stat */
    0x0000f594 addiu a3, a3, 0x5340          |         a3 += 0x5340;
    0x0000f598 addiu a2, zero, 0x18          |         a2 = 0x18;
    0x0000f59c addiu a1, zero, 1             |         a1 = 1;
    0x0000f5a0 move a0, s0                   |         a0 = s0;
    0x0000f5a4 jalr t9                       |         t9 ();
    0x0000f5a8 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0000f5ac b 0xf4ac                      |         
                                             |     } while (1);
                                             | label_1:
    0x0000f5b0 lw a2, -0x7fd8(gp)            |     a2 = *(gp);
    0x0000f5b4 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
                                             |     /* str.get_ctty_devnr */
    0x0000f5b8 addiu v0, v0, 0x5748          |     v0 += 0x5748;
    0x0000f5bc lw t9, -0x7f88(gp)            |     t9 = sym.log_assert_failed_realm;
    0x0000f5c0 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0000f5c4 addiu a3, zero, 0x39a         |     a3 = 0x39a;
                                             |     /* esilref: 'src/basic/terminal-util.c' */
    0x0000f5c8 addiu a2, a2, 0x567f          |     a2 += 0x567f;
                                             |     /* str.pid___0 */
    0x0000f5cc addiu a1, a1, 0x5334          |     a1 += 0x5334;
    0x0000f5d0 move a0, zero                 |     a0 = 0;
    0x0000f5d4 bal 0xa81c                    |     sym_log_assert_failed_realm ();
                                             | label_4:
    0x0000f5d8 lw s0, 0x2c(fp)               |     s0 = *(arg_2ch);
    0x0000f5dc addiu v0, zero, -5            |     v0 = -5;
    0x0000f5e0 b 0xf53c                      |     goto label_0;
                                             | label_5:
    0x0000f5e4 addiu v0, zero, -6            |     v0 = -6;
    0x0000f5e8 b 0xf53c                      |     goto label_0;
                                             | label_3:
    0x0000f5ec addiu v0, zero, -5            |     v0 = -5;
    0x0000f5f0 b 0xf53c                      |     goto label_0;
                                             | label_6:
    0x0000f5f4 lw t9, -0x7cd8(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000f5f8 jalr t9                       |     t9 ();
    0x0000f5fc nop                           |     
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/udev/cdrom_id @ 0xd7fc */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.get_process_cmdline ()           | void get_process_cmdline () {
    0x0000d7fc lui gp, 2                         |     
    0x0000d800 addiu gp, gp, 0x1824              |     
    0x0000d804 addu gp, gp, t9                   |     gp += t9;
    0x0000d808 addiu sp, sp, -0x58               |     
    0x0000d80c lw t9, -0x7cdc(gp)                |     t9 = sym.parse_env_filev;
    0x0000d810 sw s1, 0x38(sp)                   |     *(var_38h_2) = s1;
    0x0000d814 lw s1, -0x7cc4(gp)                |     s1 = *((gp - 7985));
    0x0000d818 sw fp, 0x50(sp)                   |     *(var_50h) = fp;
    0x0000d81c sw s5, 0x48(sp)                   |     *(var_48h) = s5;
    0x0000d820 sw s4, 0x44(sp)                   |     *(var_44h_2) = s4;
    0x0000d824 sw s3, 0x40(sp)                   |     *(var_40h_2) = s3;
    0x0000d828 sw s2, 0x3c(sp)                   |     *(var_3ch_2) = s2;
    0x0000d82c sw gp, 0x18(sp)                   |     *(var_18h_2) = gp;
    0x0000d830 sw ra, 0x54(sp)                   |     *(var_54h) = ra;
    0x0000d834 sw s6, 0x4c(sp)                   |     *(var_4ch) = s6;
    0x0000d838 sw s0, 0x34(sp)                   |     *(var_34h_2) = s0;
    0x0000d83c move fp, sp                       |     fp = sp;
    0x0000d840 lw v0, (s1)                       |     v0 = *(s1);
    0x0000d844 move s5, a0                       |     s5 = a0;
    0x0000d848 sw v0, 0x2c(fp)                   |     *(arg_2ch) = v0;
    0x0000d84c move a0, zero                     |     a0 = 0;
    0x0000d850 sw zero, 0x24(fp)                 |     *(arg_24h) = 0;
    0x0000d854 move s2, a1                       |     s2 = a1;
    0x0000d858 move s3, a2                       |     s3 = a2;
    0x0000d85c move s4, a3                       |     s4 = a3;
    0x0000d860 jalr t9                           |     t9 ();
    0x0000d864 lw gp, 0x18(fp)                   |     gp = *(var_18h_2);
                                                 |     if (v0 <= 0) {
    0x0000d868 blez v0, 0xdb0c                   |         goto label_5;
                                                 |     }
                                                 |     if (s4 == 0) {
    0x0000d86c beql s4, zero, 0xdb38             |         goto label_6;
                                                 |     }
    0x0000d870 lw v0, -0x7fd8(gp)                |     v0 = *(gp);
                                                 |     if (s5 < 0) {
    0x0000d874 bltzl s5, 0xdb60                  |         goto label_7;
                                                 |     }
    0x0000d878 lw v0, -0x7fd8(gp)                |     v0 = *(gp);
    0x0000d87c move s0, v0                       |     s0 = v0;
                                                 |     if (s5 != 0) {
    0x0000d880 bnez s5, 0xda10                   |         goto label_8;
                                                 |     }
    0x0000d884 lw s6, -0x7fd8(gp)                |     s6 = *(gp);
                                                 |     /* str._proc_self_cmdline */
    0x0000d888 addiu s6, s6, 0x5374              |     s6 += 0x5374;
                                                 | label_0:
    0x0000d88c lw a1, -0x7fd8(gp)                |     a1 = *(gp);
    0x0000d890 lw t9, -0x7f5c(gp)                |     t9 = sym.fopen_unlocked;
    0x0000d894 move a0, s6                       |     a0 = s6;
    0x0000d898 addiu a2, fp, 0x24                |     a2 = fp + 0x24;
                                                 |     /* esilref: 're' */
    0x0000d89c addiu a1, a1, 0x345c              |     a1 += 0x345c;
    0x0000d8a0 bal 0x81b4                        |     sym_fopen_unlocked ();
    0x0000d8a4 move s6, v0                       |     s6 = v0;
    0x0000d8a8 addiu v0, zero, -2                |     v0 = -2;
    0x0000d8ac lw gp, 0x18(fp)                   |     gp = *(var_18h_2);
                                                 |     if (s6 == v0) {
    0x0000d8b0 beq s6, v0, 0xdbc4                |         goto label_9;
                                                 |     }
    0x0000d8b4 sll a2, s2, 2                     |     a2 = s2 << 2;
                                                 |     if (s6 < 0) {
    0x0000d8b8 bltz s6, 0xda58                   |         goto label_10;
                                                 |     }
    0x0000d8bc addiu a2, a2, 1                   |     a2++;
    0x0000d8c0 sltu v0, a2, s2                   |     v0 = (a2 < s2) ? 1 : 0;
    0x0000d8c4 move a0, s0                       |     a0 = s0;
                                                 |     if (v0 != 0) {
    0x0000d8c8 bnez v0, 0xda40                   |         goto label_11;
                                                 |     }
    0x0000d8cc move s6, s0                       |     s6 = s0;
                                                 | label_1:
    0x0000d8d0 lw t9, -0x7d10(gp)                |     t9 = sym.imp.malloc;
    0x0000d8d4 jalr t9                           |     t9 ();
    0x0000d8d8 nop                               |     
    0x0000d8dc move s0, v0                       |     s0 = v0;
    0x0000d8e0 lw gp, 0x18(fp)                   |     gp = *(var_18h_2);
                                                 |     if (v0 == 0) {
    0x0000d8e4 beqz v0, 0xdbbc                   |         goto label_12;
                                                 |     }
    0x0000d8e8 lw t9, -0x7cfc(gp)                |     t9 = sym.imp.fread;
    0x0000d8ec lw a3, 0x24(fp)                   |     a3 = *(arg_24h);
    0x0000d8f0 move a2, s6                       |     a2 = s6;
    0x0000d8f4 addiu a1, zero, 1                 |     a1 = 1;
    0x0000d8f8 move a0, v0                       |     a0 = v0;
    0x0000d8fc jalr t9                           |     t9 ();
    0x0000d900 lw gp, 0x18(fp)                   |     gp = *(var_18h_2);
                                                 |     if (v0 == 0) {
    0x0000d904 beqz v0, 0xda60                   |         goto label_13;
                                                 |     }
    0x0000d908 addiu v1, zero, 1                 |     v1 = 1;
    0x0000d90c addiu a1, s0, -1                  |     a1 = s0 + -1;
                                                 |     if (v0 == v1) {
    0x0000d910 beq v0, v1, 0xd938                |         goto label_14;
                                                 |     }
    0x0000d914 move v1, s0                       |     v1 = s0;
    0x0000d918 addu a1, a1, v0                   |     a1 += v0;
    0x0000d91c addiu a2, zero, 0x20              |     a2 = 0x20;
    0x0000d920 lb a0, (v1)                       |     a0 = *(v1);
                                                 |     if (a0 != 0) {
                                                 |         do {
    0x0000d924 beql a0, zero, 0xd92c             |             
    0x0000d928 sb a2, (v1)                       |             *(v1) = a2;
                                                 |         }
    0x0000d92c addiu v1, v1, 1                   |         v1++;
    0x0000d930 lb a0, (v1)                       |         a0 = *(v1);
    0x0000d934 bnel a1, v1, 0xd924               |         
                                                 |     } while (a1 == v1);
                                                 | label_14:
    0x0000d938 addu v0, s0, v0                   |     v0 = s0 + v0;
    0x0000d93c sb zero, (v0)                     |     *(v0) = 0;
                                                 | label_3:
    0x0000d940 lw a1, -0x7fd8(gp)                |     a1 = *(gp);
    0x0000d944 lw t9, -0x7eb4(gp)                |     t9 = sym.delete_trailing_chars;
                                                 |     /* str.__t_n_r */
    0x0000d948 addiu a1, a1, 0x4558              |     a1 += 0x4558;
    0x0000d94c move a0, s0                       |     a0 = s0;
    0x0000d950 andi s3, s3, 2                    |     s3 &= 2;
    0x0000d954 bal 0xed94                        |     sym_delete_trailing_chars ();
    0x0000d958 lw gp, 0x18(fp)                   |     gp = *(var_18h_2);
                                                 |     if (s3 != 0) {
    0x0000d95c bnez s3, 0xdaf0                   |         goto label_15;
                                                 |     }
    0x0000d960 move a2, zero                     |     a2 = 0;
                                                 | label_4:
    0x0000d964 lw t9, -0x7eb0(gp)                |     t9 = sym.escape_non_printable_full;
    0x0000d968 move a1, s2                       |     a1 = s2;
    0x0000d96c move a0, s0                       |     a0 = s0;
    0x0000d970 bal 0x11908                       |     sym_escape_non_printable_full ();
    0x0000d974 move s2, v0                       |     s2 = v0;
    0x0000d978 lw gp, 0x18(fp)                   |     gp = *(var_18h_2);
                                                 |     if (v0 == 0) {
    0x0000d97c beqz v0, 0xdbbc                   |         goto label_12;
                                                 |     }
    0x0000d980 lw t9, -0x7d38(gp)                |     t9 = sym.imp.strlen;
    0x0000d984 move a0, v0                       |     a0 = v0;
    0x0000d988 jalr t9                           |     t9 ();
    0x0000d98c lw gp, 0x18(fp)                   |     gp = *(var_18h_2);
    0x0000d990 addiu a1, v0, 1                   |     a1 = v0 + 1;
    0x0000d994 move a0, s2                       |     a0 = s2;
    0x0000d998 lw t9, -0x7d0c(gp)                |     t9 = sym.imp.realloc;
    0x0000d99c move s6, zero                     |     s6 = 0;
    0x0000d9a0 jalr t9                           |     t9 ();
                                                 |     if (v0 != 0) {
    0x0000d9a4 movz v0, s2, v0                   |         v0 = s2;
                                                 |     }
    0x0000d9a8 lw gp, 0x18(fp)                   |     gp = *(var_18h_2);
    0x0000d9ac sw v0, (s4)                       |     *(s4) = v0;
                                                 |     do {
                                                 | label_2:
    0x0000d9b0 lw t9, -0x7cb8(gp)                |         t9 = sym.imp.free;
    0x0000d9b4 move a0, s0                       |         a0 = s0;
    0x0000d9b8 jalr t9                           |         t9 ();
    0x0000d9bc lw gp, 0x18(fp)                   |         gp = *(var_18h_2);
    0x0000d9c0 lw t9, -0x7f54(gp)                |         t9 = sym.safe_fclose;
    0x0000d9c4 lw a0, 0x24(fp)                   |         a0 = *(arg_24h);
    0x0000d9c8 bal 0x7ff4                        |         sym_safe_fclose ();
    0x0000d9cc lw a0, 0x2c(fp)                   |         a0 = *(arg_2ch);
    0x0000d9d0 lw v1, (s1)                       |         v1 = *(s1);
    0x0000d9d4 lw gp, 0x18(fp)                   |         gp = *(var_18h_2);
    0x0000d9d8 move v0, s6                       |         v0 = s6;
                                                 |         if (a0 != v1) {
    0x0000d9dc bne a0, v1, 0xdbd0                |             goto label_16;
                                                 |         }
    0x0000d9e0 move sp, fp                       |         
    0x0000d9e4 lw ra, 0x54(sp)                   |         ra = *(var_54h);
    0x0000d9e8 lw fp, 0x50(sp)                   |         fp = *(var_50h);
    0x0000d9ec lw s6, 0x4c(sp)                   |         s6 = *(var_4ch);
    0x0000d9f0 lw s5, 0x48(sp)                   |         s5 = *(var_48h);
    0x0000d9f4 lw s4, 0x44(sp)                   |         s4 = *(var_44h_2);
    0x0000d9f8 lw s3, 0x40(sp)                   |         s3 = *(var_40h_2);
    0x0000d9fc lw s2, 0x3c(sp)                   |         s2 = *(var_3ch_2);
    0x0000da00 lw s1, 0x38(sp)                   |         s1 = *(var_38h_2);
    0x0000da04 lw s0, 0x34(sp)                   |         s0 = *(var_34h_2);
    0x0000da08 addiu sp, sp, 0x58                |         
    0x0000da0c jr ra                             |         return v0;
                                                 | label_8:
    0x0000da10 addiu sp, sp, -0x20               |         
    0x0000da14 lw a3, -0x7fd8(gp)                |         a3 = *(gp);
    0x0000da18 lw t9, -0x7df8(gp)                |         t9 = sym.imp.__sprintf_chk
    0x0000da1c addiu s6, sp, 0x18                |         s6 = sp + 0x18;
    0x0000da20 sw s5, 0x10(sp)                   |         *(var_18h_3) = s5;
                                                 |         /* str._proc__i_cmdline */
    0x0000da24 addiu a3, a3, 0x53ac              |         a3 += 0x53ac;
    0x0000da28 addiu a2, zero, 0x1b              |         a2 = 0x1b;
    0x0000da2c addiu a1, zero, 1                 |         a1 = 1;
    0x0000da30 move a0, s6                       |         a0 = s6;
    0x0000da34 jalr t9                           |         t9 ();
    0x0000da38 lw gp, 0x18(fp)                   |         gp = *(var_18h_2);
    0x0000da3c b 0xd88c                          |         goto label_0;
                                                 | label_11:
    0x0000da40 sltu s6, s0, a2                   |         s6 = (s0 < a2) ? 1 : 0;
                                                 |         if (s6 != 0) {
    0x0000da44 movz a0, a2, s6                   |             a0 = a2;
                                                 |         }
    0x0000da48 move s6, a0                       |         s6 = a0;
    0x0000da4c addiu a0, zero, 1                 |         a0 = 1;
                                                 |         if (s6 == 0) {
    0x0000da50 movn a0, s6, s6                   |             a0 = s6;
                                                 |         }
    0x0000da54 b 0xd8d0                          |         goto label_1;
                                                 | label_10:
    0x0000da58 move s0, zero                     |         s0 = 0;
    0x0000da5c b 0xd9b0                          |         
                                                 |     } while (1);
                                                 | label_13:
    0x0000da60 lw t9, -0x7cc8(gp)                |     t9 = sym.imp.ferror;
    0x0000da64 lw a0, 0x24(fp)                   |     a0 = *(arg_24h);
    0x0000da68 jalr t9                           |     t9 ();
    0x0000da6c lw gp, 0x18(fp)                   |     gp = *(var_18h_2);
                                                 |     if (v0 != 0) {
    0x0000da70 bnez v0, 0xdb88                   |         goto label_17;
                                                 |     }
    0x0000da74 andi v0, s3, 1                    |     v0 = s3 & 1;
    0x0000da78 addiu s6, zero, -2                |     s6 = -2;
                                                 |     if (v0 == 0) {
    0x0000da7c beqz v0, 0xd9b0                   |         goto label_2;
                                                 |     }
    0x0000da80 lw t9, -0x7eac(gp)                |     t9 = sym.get_process_comm;
    0x0000da84 addiu a1, fp, 0x28                |     a1 = fp + 0x28;
    0x0000da88 move a0, s5                       |     a0 = s5;
    0x0000da8c sw zero, 0x28(fp)                 |     *(arg_28h) = 0;
    0x0000da90 bal 0xd634                        |     sym_get_process_comm ();
    0x0000da94 move s6, v0                       |     s6 = v0;
    0x0000da98 lw gp, 0x18(fp)                   |     gp = *(var_18h_2);
                                                 |     if (v0 >= 0) {
    0x0000da9c bltz v0, 0xdba8                   |         
    0x0000daa0 lw t9, -0x7cb8(gp)                |         t9 = sym.imp.free;
    0x0000daa4 move a0, s0                       |         a0 = s0;
    0x0000daa8 jalr t9                           |         t9 ();
    0x0000daac lw gp, 0x18(fp)                   |         gp = *(var_18h_2);
    0x0000dab0 lw a1, 0x28(fp)                   |         a1 = *(arg_28h);
    0x0000dab4 move a3, zero                     |         a3 = 0;
    0x0000dab8 lw a2, -0x7fd8(gp)                |         a2 = *(gp);
    0x0000dabc lw a0, -0x7fd8(gp)                |         a0 = *(gp);
    0x0000dac0 lw t9, -0x7ea8(gp)                |         t9 = sym.strjoin_real;
    0x0000dac4 addiu a2, a2, 0x53c0              |         a2 += 0x53c0;
    0x0000dac8 addiu a0, a0, 0x53c4              |         a0 += 0x53c4;
    0x0000dacc bal 0xec0c                        |         sym_strjoin_real ();
    0x0000dad0 move s0, v0                       |         s0 = v0;
    0x0000dad4 lw gp, 0x18(fp)                   |         gp = *(var_18h_2);
                                                 |         if (v0 != 0) {
    0x0000dad8 beqz v0, 0xdba4                   |             
    0x0000dadc lw t9, -0x7cb8(gp)                |             t9 = sym.imp.free;
    0x0000dae0 lw a0, 0x28(fp)                   |             a0 = *(arg_28h);
    0x0000dae4 jalr t9                           |             t9 ();
    0x0000dae8 lw gp, 0x18(fp)                   |             gp = *(var_18h_2);
    0x0000daec b 0xd940                          |             goto label_3;
                                                 | label_15:
    0x0000daf0 lw t9, -0x7ea4(gp)                |             t9 = sym.is_locale_utf8;
    0x0000daf4 bal 0x9960                        |             sym_is_locale_utf8 ();
    0x0000daf8 nop                               |             
    0x0000dafc xori v0, v0, 1                    |             v0 ^= 1;
    0x0000db00 lw gp, 0x18(fp)                   |             gp = *(var_18h_2);
    0x0000db04 andi a2, v0, 0xff                 |             a2 = v0 & 0xff;
    0x0000db08 b 0xd964                          |             goto label_4;
                                                 | label_5:
    0x0000db0c lw v0, -0x7fd8(gp)                |             v0 = *(gp);
    0x0000db10 lw a2, -0x7fd8(gp)                |             a2 = *(gp);
    0x0000db14 lw a1, -0x7fd8(gp)                |             a1 = *(gp);
                                                 |             /* str.sc_arg_max */
    0x0000db18 addiu v0, v0, 0x540c              |             v0 += 0x540c;
    0x0000db1c lw t9, -0x7f88(gp)                |             t9 = sym.log_assert_failed_realm;
    0x0000db20 sw v0, 0x10(sp)                   |             *(var_10h_2) = v0;
    0x0000db24 addiu a3, zero, 0xe               |             a3 = 0xe;
                                                 |             /* esilref: 'src/basic/env-util.h' */
    0x0000db28 addiu a2, a2, 0x538f              |             a2 += 0x538f;
                                                 |             /* str.l___0 */
    0x0000db2c addiu a1, a1, 0x53a4              |             a1 += 0x53a4;
    0x0000db30 move a0, zero                     |             a0 = 0;
    0x0000db34 bal 0xa81c                        |             sym_log_assert_failed_realm ();
                                                 | label_6:
    0x0000db38 lw a2, -0x7fd8(gp)                |             a2 = *(gp);
    0x0000db3c lw a1, -0x7fd8(gp)                |             a1 = *(gp);
    0x0000db40 addiu v0, v0, 0x5418              |             v0 += 0x5418;
    0x0000db44 lw t9, -0x7f88(gp)                |             t9 = sym.log_assert_failed_realm;
    0x0000db48 sw v0, 0x10(sp)                   |             *(var_10h_2) = v0;
    0x0000db4c addiu a3, zero, 0x77              |             a3 = 0x77;
                                                 |             /* esilref: 'src/basic/process-util.c' */
    0x0000db50 addiu a2, a2, 0x52f7              |             a2 += 0x52f7;
                                                 |             /* esilref: 'line' */
    0x0000db54 addiu a1, a1, 0x53b8              |             a1 += 0x53b8;
    0x0000db58 move a0, zero                     |             a0 = 0;
    0x0000db5c bal 0xa81c                        |             sym_log_assert_failed_realm ();
                                                 | label_7:
    0x0000db60 lw a2, -0x7fd8(gp)                |             a2 = *(gp);
    0x0000db64 lw a1, -0x7fd8(gp)                |             a1 = *(gp);
    0x0000db68 addiu v0, v0, 0x5418              |             v0 += 0x5418;
    0x0000db6c lw t9, -0x7f88(gp)                |             t9 = sym.log_assert_failed_realm;
    0x0000db70 sw v0, 0x10(sp)                   |             *(var_10h_2) = v0;
    0x0000db74 addiu a3, zero, 0x78              |             a3 = 0x78;
                                                 |             /* esilref: 'src/basic/process-util.c' */
    0x0000db78 addiu a2, a2, 0x52f7              |             a2 += 0x52f7;
                                                 |             /* str.pid___0 */
    0x0000db7c addiu a1, a1, 0x5334              |             a1 += 0x5334;
    0x0000db80 move a0, zero                     |             a0 = 0;
    0x0000db84 bal 0xa81c                        |             sym_log_assert_failed_realm ();
                                                 | label_17:
    0x0000db88 lw t9, -0x7d6c(gp)                |             t9 = sym.imp.__errno_location;
    0x0000db8c jalr t9                           |             t9 ();
    0x0000db90 nop                               |             
    0x0000db94 lw s6, (v0)                       |             s6 = *(v0);
    0x0000db98 lw gp, 0x18(fp)                   |             gp = *(var_18h_2);
    0x0000db9c negu s6, s6                       |             __asm ("negu s6, s6");
    0x0000dba0 b 0xd9b0                          |             goto label_2;
                                                 |         }
    0x0000dba4 addiu s6, zero, -0xc              |         s6 = -0xc;
                                                 |     }
    0x0000dba8 lw t9, -0x7cb8(gp)                |     t9 = sym.imp.free;
    0x0000dbac lw a0, 0x28(fp)                   |     a0 = *(arg_28h);
    0x0000dbb0 jalr t9                           |     t9 ();
    0x0000dbb4 lw gp, 0x18(fp)                   |     gp = *(var_18h_2);
    0x0000dbb8 b 0xd9b0                          |     goto label_2;
                                                 | label_12:
    0x0000dbbc addiu s6, zero, -0xc              |     s6 = -0xc;
    0x0000dbc0 b 0xd9b0                          |     goto label_2;
                                                 | label_9:
    0x0000dbc4 move s0, zero                     |     s0 = 0;
    0x0000dbc8 addiu s6, zero, -3                |     s6 = -3;
    0x0000dbcc b 0xd9b0                          |     goto label_2;
                                                 | label_16:
    0x0000dbd0 lw t9, -0x7cd8(gp)                |     t9 = sym.imp.__stack_chk_fail;
    0x0000dbd4 jalr t9                           |     t9 ();
    0x0000dbd8 nop                               |     
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/udev/cdrom_id @ 0xd634 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.get_process_comm ()          | void get_process_comm () {
    0x0000d634 lui gp, 2                     |     
    0x0000d638 addiu gp, gp, 0x19ec          |     
    0x0000d63c addu gp, gp, t9               |     gp += t9;
    0x0000d640 addiu sp, sp, -0x48           |     
    0x0000d644 sw s3, 0x38(sp)               |     *(var_38h) = s3;
    0x0000d648 lw s3, -0x7cc4(gp)            |     s3 = *((gp - 7985));
    0x0000d64c sw fp, 0x40(sp)               |     *(var_40h) = fp;
    0x0000d650 sw ra, 0x44(sp)               |     *(var_44h) = ra;
    0x0000d654 sw s4, 0x3c(sp)               |     *(var_3ch) = s4;
    0x0000d658 sw s2, 0x34(sp)               |     *(var_34h) = s2;
    0x0000d65c sw s1, 0x30(sp)               |     *(var_30h) = s1;
    0x0000d660 sw s0, 0x2c(sp)               |     *(var_2ch) = s0;
    0x0000d664 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0000d668 move fp, sp                   |     fp = sp;
    0x0000d66c lw v0, (s3)                   |     v0 = *(s3);
    0x0000d670 sw zero, 0x20(fp)             |     *(arg_20h) = 0;
    0x0000d674 sw v0, 0x24(fp)               |     *(arg_24h) = v0;
                                             |     if (a1 == 0) {
    0x0000d678 beql a1, zero, 0xd788         |         goto label_1;
                                             |     }
    0x0000d67c lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0000d680 move s1, a0                   |     s1 = a0;
                                             |     if (a0 < 0) {
    0x0000d684 bltz a0, 0xd7b0               |         goto label_2;
                                             |     }
    0x0000d688 lw t9, -0x7d10(gp)            |     t9 = sym.imp.malloc;
    0x0000d68c addiu a0, zero, 0x80          |     a0 = 0x80;
    0x0000d690 move s4, a1                   |     s4 = a1;
    0x0000d694 jalr t9                       |     t9 ();
    0x0000d698 move s0, v0                   |     s0 = v0;
    0x0000d69c lw gp, 0x18(fp)               |     gp = *(arg_18h);
                                             |     if (v0 == 0) {
    0x0000d6a0 beqz v0, 0xd7e4               |         goto label_3;
                                             |     }
    0x0000d6a4 addiu sp, sp, -0x18           |     
                                             |     if (s1 == 0) {
    0x0000d6a8 bnel s1, zero, 0xd75c         |         goto label_4;
                                             |     }
    0x0000d6ac lw s2, -0x7fd8(gp)            |     s2 = *(gp);
                                             |     /* str._proc_self_comm */
    0x0000d6b0 addiu s2, s2, 0x5354          |     s2 += 0x5354;
                                             |     do {
    0x0000d6b4 lw t9, -0x7ec4(gp)            |         t9 = sym.read_one_line_file;
    0x0000d6b8 move a0, s2                   |         a0 = s2;
    0x0000d6bc addiu a1, fp, 0x20            |         a1 = fp + 0x20;
    0x0000d6c0 bal 0x86c0                    |         sym_read_one_line_file ();
    0x0000d6c4 move s1, v0                   |         s1 = v0;
    0x0000d6c8 addiu v0, zero, -2            |         v0 = -2;
    0x0000d6cc lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0000d6d0 lw a0, 0x20(fp)               |         a0 = *(arg_20h);
                                             |         if (s1 == v0) {
    0x0000d6d4 beq s1, v0, 0xd7dc            |             goto label_5;
                                             |         }
    0x0000d6d8 lw t9, -0x7eb8(gp)            |         t9 = sym.safe_close;
                                             |         if (s1 >= 0) {
    0x0000d6dc bltz s1, 0xd704               |             
    0x0000d6e0 move a2, a0                   |             a2 = a0;
    0x0000d6e4 addiu a1, zero, 0x80          |             a1 = 0x80;
    0x0000d6e8 move a0, s0                   |             a0 = s0;
    0x0000d6ec bal 0xee2c                    |             sym_cellescape ();
    0x0000d6f0 lw a0, 0x20(fp)               |             a0 = *(arg_20h);
    0x0000d6f4 lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x0000d6f8 move s1, zero                 |             s1 = 0;
    0x0000d6fc sw s0, (s4)                   |             *(s4) = s0;
    0x0000d700 move s0, zero                 |             s0 = 0;
                                             |         }
                                             | label_0:
    0x0000d704 lw t9, -0x7cb8(gp)            |         t9 = sym.imp.free;
    0x0000d708 jalr t9                       |         t9 ();
    0x0000d70c nop                           |         
    0x0000d710 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0000d714 lw t9, -0x7cb8(gp)            |         t9 = sym.imp.free;
    0x0000d718 move a0, s0                   |         a0 = s0;
    0x0000d71c jalr t9                       |         t9 ();
    0x0000d720 lw a0, 0x24(fp)               |         a0 = *(arg_24h);
    0x0000d724 lw v1, (s3)                   |         v1 = *(s3);
    0x0000d728 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0000d72c move v0, s1                   |         v0 = s1;
                                             |         if (a0 != v1) {
    0x0000d730 bne a0, v1, 0xd7f0            |             goto label_6;
                                             |         }
    0x0000d734 move sp, fp                   |         
    0x0000d738 lw ra, 0x44(sp)               |         ra = *(var_44h);
    0x0000d73c lw fp, 0x40(sp)               |         fp = *(var_40h);
    0x0000d740 lw s4, 0x3c(sp)               |         s4 = *(var_3ch);
    0x0000d744 lw s3, 0x38(sp)               |         s3 = *(var_38h);
    0x0000d748 lw s2, 0x34(sp)               |         s2 = *(var_34h);
    0x0000d74c lw s1, 0x30(sp)               |         s1 = *(var_30h);
    0x0000d750 lw s0, 0x2c(sp)               |         s0 = *(var_2ch);
    0x0000d754 addiu sp, sp, 0x48            |         
    0x0000d758 jr ra                         |         return v0;
                                             | label_4:
    0x0000d75c lw a3, -0x7fd8(gp)            |         a3 = *(gp);
    0x0000d760 lw t9, -0x7df8(gp)            |         t9 = sym.imp.__sprintf_chk
    0x0000d764 addiu s2, sp, 0x18            |         s2 = sp + 0x18;
    0x0000d768 sw s1, 0x10(sp)               |         *(var_50h) = s1;
                                             |         /* str._proc__i_comm */
    0x0000d76c addiu a3, a3, 0x5364          |         a3 += 0x5364;
    0x0000d770 addiu a2, zero, 0x18          |         a2 = 0x18;
    0x0000d774 addiu a1, zero, 1             |         a1 = 1;
    0x0000d778 move a0, s2                   |         a0 = s2;
    0x0000d77c jalr t9                       |         t9 ();
    0x0000d780 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0000d784 b 0xd6b4                      |         
                                             |     } while (1);
                                             | label_1:
    0x0000d788 lw a2, -0x7fd8(gp)            |     a2 = *(gp);
    0x0000d78c lw a1, -0x7fd8(gp)            |     a1 = *(gp);
                                             |     /* str.get_process_comm */
    0x0000d790 addiu v0, v0, 0x542c          |     v0 += 0x542c;
    0x0000d794 lw t9, -0x7f88(gp)            |     t9 = sym.log_assert_failed_realm;
    0x0000d798 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0000d79c addiu a3, zero, 0x57          |     a3 = 0x57;
                                             |     /* esilref: 'src/basic/process-util.c' */
    0x0000d7a0 addiu a2, a2, 0x52f7          |     a2 += 0x52f7;
                                             |     /* esilref: 'ret' */
    0x0000d7a4 addiu a1, a1, 0x4700          |     a1 += 0x4700;
    0x0000d7a8 move a0, zero                 |     a0 = 0;
    0x0000d7ac bal 0xa81c                    |     sym_log_assert_failed_realm ();
                                             | label_2:
    0x0000d7b0 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0000d7b4 lw a2, -0x7fd8(gp)            |     a2 = *(gp);
    0x0000d7b8 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
                                             |     /* str.get_process_comm */
    0x0000d7bc addiu v0, v0, 0x542c          |     v0 += 0x542c;
    0x0000d7c0 lw t9, -0x7f88(gp)            |     t9 = sym.log_assert_failed_realm;
    0x0000d7c4 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0000d7c8 addiu a3, zero, 0x58          |     a3 = 0x58;
                                             |     /* esilref: 'src/basic/process-util.c' */
    0x0000d7cc addiu a2, a2, 0x52f7          |     a2 += 0x52f7;
                                             |     /* str.pid___0 */
    0x0000d7d0 addiu a1, a1, 0x5334          |     a1 += 0x5334;
    0x0000d7d4 move a0, zero                 |     a0 = 0;
    0x0000d7d8 bal 0xa81c                    |     sym_log_assert_failed_realm ();
                                             | label_5:
    0x0000d7dc addiu s1, zero, -3            |     s1 = -3;
    0x0000d7e0 b 0xd704                      |     goto label_0;
                                             | label_3:
    0x0000d7e4 move a0, zero                 |     a0 = 0;
    0x0000d7e8 addiu s1, zero, -0xc          |     s1 = -0xc;
    0x0000d7ec b 0xd704                      |     goto label_0;
                                             | label_6:
    0x0000d7f0 lw t9, -0x7cd8(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000d7f4 jalr t9                       |     t9 ();
    0x0000d7f8 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/udev/cdrom_id @ 0xdccc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.getenv_for_pid ()            | void getenv_for_pid () {
    0x0000dccc lui gp, 2                     |     
    0x0000dcd0 addiu gp, gp, 0x1354          |     
    0x0000dcd4 addu gp, gp, t9               |     gp += t9;
    0x0000dcd8 addiu sp, sp, -0x60           |     
    0x0000dcdc sw s4, 0x48(sp)               |     *(var_48h) = s4;
    0x0000dce0 lw s4, -0x7cc4(gp)            |     s4 = *((gp - 7985));
    0x0000dce4 sw fp, 0x58(sp)               |     *(var_58h) = fp;
    0x0000dce8 sw ra, 0x5c(sp)               |     *(var_5ch) = ra;
    0x0000dcec sw s7, 0x54(sp)               |     *(var_54h) = s7;
    0x0000dcf0 sw s6, 0x50(sp)               |     *(var_50h) = s6;
    0x0000dcf4 sw s5, 0x4c(sp)               |     *(var_4ch) = s5;
    0x0000dcf8 sw s3, 0x44(sp)               |     *(var_44h) = s3;
    0x0000dcfc sw s2, 0x40(sp)               |     *(var_40h) = s2;
    0x0000dd00 sw s1, 0x3c(sp)               |     *(var_3ch) = s1;
    0x0000dd04 sw s0, 0x38(sp)               |     *(var_38h) = s0;
    0x0000dd08 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0000dd0c move fp, sp                   |     fp = sp;
    0x0000dd10 lw v0, (s4)                   |     v0 = *(s4);
    0x0000dd14 sw zero, 0x2c(fp)             |     *(arg_2ch) = 0;
    0x0000dd18 sw v0, 0x34(fp)               |     *(arg_34h) = v0;
                                             |     if (a0 < 0) {
    0x0000dd1c bltzl a0, 0xdefc              |         goto label_2;
                                             |     }
    0x0000dd20 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0000dd24 move s2, a1                   |     s2 = a1;
                                             |     if (a1 == 0) {
    0x0000dd28 beqz a1, 0xdf24               |         goto label_3;
                                             |     }
    0x0000dd2c move s5, a2                   |     s5 = a2;
                                             |     if (a2 == 0) {
    0x0000dd30 beqz a2, 0xdf50               |         goto label_4;
                                             |     }
    0x0000dd34 move s0, a0                   |     s0 = a0;
    0x0000dd38 bnez a0, 0xddc0               |     
                                             |     while (v0 == s0) {
    0x0000dd3c lw t9, -0x7d08(gp)            |         t9 = sym.imp.getenv;
    0x0000dd40 move a0, s2                   |         a0 = s2;
    0x0000dd44 jalr t9                       |         t9 ();
    0x0000dd48 lw gp, 0x18(fp)               |         gp = *(arg_18h);
                                             |         if (v0 == 0) {
    0x0000dd4c beqz v0, 0xdef0               |             goto label_5;
                                             |         }
    0x0000dd50 lw t9, -0x7cbc(gp)            |         t9 = sym.imp.strdup;
    0x0000dd54 move a0, v0                   |         a0 = v0;
    0x0000dd58 jalr t9                       |         t9 ();
    0x0000dd5c lw gp, 0x18(fp)               |         gp = *(arg_18h);
                                             |         if (v0 == 0) {
    0x0000dd60 beqz v0, 0xdfc8               |             goto label_6;
                                             |         }
    0x0000dd64 sw v0, (s5)                   |         *(s5) = v0;
    0x0000dd68 addiu s0, zero, 1             |         s0 = 1;
                                             | label_0:
    0x0000dd6c lw t9, -0x7f54(gp)            |         t9 = sym.safe_fclose;
    0x0000dd70 lw a0, 0x2c(fp)               |         a0 = *(arg_2ch);
    0x0000dd74 bal 0x7ff4                    |         sym_safe_fclose ();
    0x0000dd78 lw a0, 0x34(fp)               |         a0 = *(arg_34h);
    0x0000dd7c lw v1, (s4)                   |         v1 = *(s4);
    0x0000dd80 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0000dd84 move v0, s0                   |         v0 = s0;
                                             |         if (a0 != v1) {
    0x0000dd88 bne a0, v1, 0xdfd8            |             goto label_7;
                                             |         }
    0x0000dd8c move sp, fp                   |         
    0x0000dd90 lw ra, 0x5c(sp)               |         ra = *(var_5ch);
    0x0000dd94 lw fp, 0x58(sp)               |         fp = *(var_58h);
    0x0000dd98 lw s7, 0x54(sp)               |         s7 = *(var_54h);
    0x0000dd9c lw s6, 0x50(sp)               |         s6 = *(var_50h);
    0x0000dda0 lw s5, 0x4c(sp)               |         s5 = *(var_4ch);
    0x0000dda4 lw s4, 0x48(sp)               |         s4 = *(var_48h);
    0x0000dda8 lw s3, 0x44(sp)               |         s3 = *(var_44h);
    0x0000ddac lw s2, 0x40(sp)               |         s2 = *(var_40h);
    0x0000ddb0 lw s1, 0x3c(sp)               |         s1 = *(var_3ch);
    0x0000ddb4 lw s0, 0x38(sp)               |         s0 = *(var_38h);
    0x0000ddb8 addiu sp, sp, 0x60            |         
    0x0000ddbc jr ra                         |         return v0;
    0x0000ddc0 lw t9, -0x7f30(gp)            |         t9 = sym.getpid_cached;
    0x0000ddc4 bal 0xdbdc                    |         sym_getpid_cached ();
    0x0000ddc8 nop                           |         
    0x0000ddcc lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0000ddd0 beq v0, s0, 0xdd3c            |         
                                             |     }
    0x0000ddd4 addiu sp, sp, -0x20           |     
    0x0000ddd8 lw a3, -0x7fd8(gp)            |     a3 = *(gp);
    0x0000dddc lw t9, -0x7df8(gp)            |     t9 = sym.imp.__sprintf_chk
    0x0000dde0 addiu s1, sp, 0x18            |     s1 = sp + 0x18;
                                             |     /* str._proc__i_environ */
    0x0000dde4 addiu a3, a3, 0x53e0          |     a3 += 0x53e0;
    0x0000dde8 addiu a2, zero, 0x1b          |     a2 = 0x1b;
    0x0000ddec addiu a1, zero, 1             |     a1 = 1;
    0x0000ddf0 move a0, s1                   |     a0 = s1;
    0x0000ddf4 sw s0, 0x10(sp)               |     *(var_10h_2) = s0;
    0x0000ddf8 jalr t9                       |     t9 ();
    0x0000ddfc lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0000de00 addiu a2, fp, 0x2c            |     a2 = fp + 0x2c;
    0x0000de04 move a0, s1                   |     a0 = s1;
    0x0000de08 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0000de0c lw t9, -0x7f5c(gp)            |     t9 = sym.fopen_unlocked;
                                             |     /* esilref: 're' */
    0x0000de10 addiu a1, a1, 0x345c          |     a1 += 0x345c;
    0x0000de14 bal 0x81b4                    |     sym_fopen_unlocked ();
    0x0000de18 move s0, v0                   |     s0 = v0;
    0x0000de1c addiu v0, zero, -2            |     v0 = -2;
    0x0000de20 lw gp, 0x18(fp)               |     gp = *(arg_18h);
                                             |     if (s0 == v0) {
    0x0000de24 beq s0, v0, 0xdfd0            |         goto label_8;
                                             |     }
    0x0000de28 lw t9, -0x7d38(gp)            |     t9 = sym.imp.strlen;
                                             |     if (s0 < 0) {
    0x0000de2c bltz s0, 0xdd6c               |         goto label_0;
                                             |     }
    0x0000de30 move a0, s2                   |     a0 = s2;
    0x0000de34 jalr t9                       |     t9 ();
    0x0000de38 move s3, v0                   |     s3 = v0;
    0x0000de3c lui v0, 0x50                  |     v0 = 0x500001;
    0x0000de40 addiu v0, v0, 1               |     
    0x0000de44 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0000de48 sw zero, 0x30(fp)             |     *(arg_30h) = 0;
    0x0000de4c move s1, zero                 |     s1 = 0;
    0x0000de50 addiu s6, fp, 0x30            |     s6 = fp + 0x30;
    0x0000de54 sw v0, 0x24(fp)               |     *(arg_24h) = v0;
    0x0000de58 b 0xdeb4                      |     
                                             |     while (v0 >= 0) {
    0x0000de5c lw t9, -0x7dd8(gp)            |         t9 = sym.imp.strncmp;
                                             |         if (v0 == 0) {
    0x0000de60 beqz v0, 0xdf7c               |             goto label_9;
                                             |         }
    0x0000de64 move a2, s3                   |         a2 = s3;
    0x0000de68 move a1, s2                   |         a1 = s2;
    0x0000de6c move a0, s7                   |         a0 = s7;
    0x0000de70 jalr t9                       |         t9 ();
    0x0000de74 addu s1, s1, s0               |         s1 += s0;
    0x0000de78 lw gp, 0x18(fp)               |         gp = *(arg_18h);
                                             |         if (v0 == 0) {
    0x0000de7c bnez v0, 0xde94               |             
    0x0000de80 addu v0, s7, s3               |             v0 = s7 + s3;
    0x0000de84 addiu v1, zero, 0x3d          |             v1 = 0x3d;
    0x0000de88 lb v0, (v0)                   |             v0 = *(v0);
    0x0000de8c lw t9, -0x7cbc(gp)            |             t9 = sym.imp.strdup;
                                             |             if (v0 == v1) {
    0x0000de90 beq v0, v1, 0xdfa0            |                 goto label_10;
                                             |             }
                                             |         }
    0x0000de94 lw t9, -0x7cb8(gp)            |         t9 = sym.imp.free;
    0x0000de98 move a0, s7                   |         a0 = s7;
    0x0000de9c jalr t9                       |         t9 ();
    0x0000dea0 lw v0, 0x24(fp)               |         v0 = *(arg_24h);
    0x0000dea4 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0000dea8 sltu v0, s1, v0               |         v0 = (s1 < v0) ? 1 : 0;
    0x0000deac sw zero, 0x30(fp)             |         *(arg_30h) = 0;
                                             |         if (v0 == 0) {
    0x0000deb0 beqz v0, 0xdf94               |             goto label_11;
                                             |         }
    0x0000deb4 lw t9, -0x7f58(gp)            |         t9 = sym.read_line_full;
    0x0000deb8 lw a0, 0x2c(fp)               |         a0 = *(arg_2ch);
    0x0000debc move a3, s6                   |         a3 = s6;
    0x0000dec0 addiu a2, zero, 1             |         a2 = 1;
    0x0000dec4 lui a1, 0x10                  |         a1 = 0x100000;
    0x0000dec8 bal 0x836c                    |         sym_read_line_full ();
    0x0000decc move s0, v0                   |         s0 = v0;
    0x0000ded0 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0000ded4 lw s7, 0x30(fp)               |         s7 = *(arg_30h);
    0x0000ded8 bgez v0, 0xde5c               |         
                                             |     }
                                             |     do {
                                             | label_1:
    0x0000dedc lw t9, -0x7cb8(gp)            |         t9 = sym.imp.free;
    0x0000dee0 move a0, s7                   |         a0 = s7;
    0x0000dee4 jalr t9                       |         t9 ();
    0x0000dee8 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0000deec b 0xdd6c                      |         goto label_0;
                                             | label_5:
    0x0000def0 sw zero, (s5)                 |         *(s5) = 0;
    0x0000def4 move s0, zero                 |         s0 = 0;
    0x0000def8 b 0xdd6c                      |         goto label_0;
                                             | label_2:
    0x0000defc lw a2, -0x7fd8(gp)            |         a2 = *(gp);
    0x0000df00 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
                                             |         /* str.getenv_for_pid */
    0x0000df04 addiu v0, v0, 0x53fc          |         v0 += 0x53fc;
    0x0000df08 lw t9, -0x7f88(gp)            |         t9 = sym.log_assert_failed_realm;
    0x0000df0c sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0000df10 addiu a3, zero, 0x31d         |         a3 = 0x31d;
                                             |         /* esilref: 'src/basic/process-util.c' */
    0x0000df14 addiu a2, a2, 0x52f7          |         a2 += 0x52f7;
                                             |         /* str.pid___0 */
    0x0000df18 addiu a1, a1, 0x5334          |         a1 += 0x5334;
    0x0000df1c move a0, zero                 |         a0 = 0;
    0x0000df20 bal 0xa81c                    |         sym_log_assert_failed_realm ();
                                             | label_3:
    0x0000df24 lw v0, -0x7fd8(gp)            |         v0 = *(gp);
    0x0000df28 lw a2, -0x7fd8(gp)            |         a2 = *(gp);
    0x0000df2c lw a1, -0x7fd8(gp)            |         a1 = *(gp);
                                             |         /* str.getenv_for_pid */
    0x0000df30 addiu v0, v0, 0x53fc          |         v0 += 0x53fc;
    0x0000df34 lw t9, -0x7f88(gp)            |         t9 = sym.log_assert_failed_realm;
    0x0000df38 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0000df3c addiu a3, zero, 0x31e         |         a3 = 0x31e;
                                             |         /* esilref: 'src/basic/process-util.c' */
    0x0000df40 addiu a2, a2, 0x52f7          |         a2 += 0x52f7;
                                             |         /* str.field */
    0x0000df44 addiu a1, a1, 0x53f4          |         a1 += 0x53f4;
    0x0000df48 move a0, zero                 |         a0 = 0;
    0x0000df4c bal 0xa81c                    |         sym_log_assert_failed_realm ();
                                             | label_4:
    0x0000df50 lw v0, -0x7fd8(gp)            |         v0 = *(gp);
    0x0000df54 lw a2, -0x7fd8(gp)            |         a2 = *(gp);
    0x0000df58 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
                                             |         /* str.getenv_for_pid */
    0x0000df5c addiu v0, v0, 0x53fc          |         v0 += 0x53fc;
    0x0000df60 lw t9, -0x7f88(gp)            |         t9 = sym.log_assert_failed_realm;
    0x0000df64 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0000df68 addiu a3, zero, 0x31f         |         a3 = 0x31f;
                                             |         /* esilref: 'src/basic/process-util.c' */
    0x0000df6c addiu a2, a2, 0x52f7          |         a2 += 0x52f7;
                                             |         /* esilref: 'ret' */
    0x0000df70 addiu a1, a1, 0x4700          |         a1 += 0x4700;
    0x0000df74 move a0, zero                 |         a0 = 0;
    0x0000df78 bal 0xa81c                    |         sym_log_assert_failed_realm ();
                                             | label_9:
    0x0000df7c lw t9, -0x7cb8(gp)            |         t9 = sym.imp.free;
    0x0000df80 move a0, s7                   |         a0 = s7;
    0x0000df84 jalr t9                       |         t9 ();
    0x0000df88 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0000df8c sw zero, (s5)                 |         *(s5) = 0;
    0x0000df90 b 0xdd6c                      |         goto label_0;
                                             | label_11:
    0x0000df94 move s7, zero                 |         s7 = 0;
    0x0000df98 addiu s0, zero, -0x84         |         s0 = -0x84;
    0x0000df9c b 0xdedc                      |         
                                             |     } while (1);
                                             | label_10:
    0x0000dfa0 addiu a0, s3, 1               |     a0 = s3 + 1;
    0x0000dfa4 addu a0, s7, a0               |     a0 = s7 + a0;
    0x0000dfa8 jalr t9                       |     t9 ();
    0x0000dfac lw gp, 0x18(fp)               |     gp = *(arg_18h);
                                             |     if (v0 != 0) {
    0x0000dfb0 beqz v0, 0xdfc0               |         
    0x0000dfb4 sw v0, (s5)                   |         *(s5) = v0;
    0x0000dfb8 addiu s0, zero, 1             |         s0 = 1;
    0x0000dfbc b 0xdedc                      |         goto label_1;
                                             |     }
    0x0000dfc0 addiu s0, zero, -0xc          |     s0 = -0xc;
    0x0000dfc4 b 0xdedc                      |     goto label_1;
                                             | label_6:
    0x0000dfc8 addiu s0, zero, -0xc          |     s0 = -0xc;
    0x0000dfcc b 0xdd6c                      |     goto label_0;
                                             | label_8:
    0x0000dfd0 addiu s0, zero, -3            |     s0 = -3;
    0x0000dfd4 b 0xdd6c                      |     goto label_0;
                                             | label_7:
    0x0000dfd8 lw t9, -0x7cd8(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000dfdc jalr t9                       |     t9 ();
    0x0000dfe0 nop                           |     
                                             | }

[*] Function printf used 5 times cdrom_id