[*] Binary protection state of cdrom_id
Full RELRO Canary found NX disabled PIE enabled RPATH No RUNPATH No Symbols
[*] Function sprintf 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);
| do {
| if (a0 != 0) {
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 sprintf used 5 times cdrom_id