[*] Binary protection state of depd
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of depd
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/depd @ 0x3338 */
| #include <stdint.h>
|
; (fcn) fcn.00003338 () | void fcn_00003338 () {
| label_6:
0x00003338 lui gp, 2 |
0x0000333c addiu gp, gp, -0x6328 |
0x00003340 addu gp, gp, t9 | gp += t9;
0x00003344 addiu sp, sp, -0x60 |
0x00003348 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x0000334c sw fp, 0x58(sp) | *(var_58h) = fp;
0x00003350 sw s7, 0x54(sp) | *(var_54h) = s7;
0x00003354 sw s6, 0x50(sp) | *(var_50h) = s6;
0x00003358 sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x0000335c sw s4, 0x48(sp) | *(var_48h) = s4;
0x00003360 sw s3, 0x44(sp) | *(var_44h) = s3;
0x00003364 sw s2, 0x40(sp) | *(var_40h) = s2;
0x00003368 sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x0000336c sw s0, 0x38(sp) | *(var_38h) = s0;
0x00003370 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00003374 sw a0, 0x60(sp) | *(arg_60h) = a0;
0x00003378 move s1, a1 | s1 = a1;
0x0000337c move s0, a2 | s0 = a2;
0x00003380 addiu a1, zero, 1 | a1 = 1;
0x00003384 move a0, s1 | a0 = s1;
0x00003388 lw t9, -0x7f84(gp) | t9 = sym.imp.g_file_test;
0x0000338c jalr t9 | t9 ();
0x00003390 nop |
0x00003394 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003398 addiu a1, zero, 4 | a1 = 4;
| if (v0 == 0) {
0x0000339c beqz v0, 0x3744 | goto label_11;
| }
0x000033a0 move a0, s1 | a0 = s1;
0x000033a4 lw t9, -0x7e94(gp) | t9 = sym.imp.xmlnode_load_file;
0x000033a8 jalr t9 | t9 ();
0x000033ac nop |
0x000033b0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000033b4 sw v0, 0x24(sp) | *(var_24h) = v0;
| if (v0 != 0) {
0x000033b8 beqz v0, 0x341c |
0x000033bc lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x000033c0 addiu a1, a1, 0x4be4 | a1 += str.registrations;
0x000033c4 lw v0, 0x24(sp) | v0 = *(var_24h);
0x000033c8 lw a0, 4(v0) | a0 = *((v0 + 1));
0x000033cc lw t9, -0x7e64(gp) | t9 = sym.imp.g_strcmp0;
0x000033d0 jalr t9 | t9 ();
0x000033d4 nop |
0x000033d8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000033dc lw v0, 0x24(sp) | v0 = *(var_24h);
| if (v0 != 0) {
0x000033e0 bnez v0, 0x3460 | goto label_12;
| }
0x000033e4 lw s4, 0x10(v0) | s4 = *((v0 + 4));
0x000033e8 lw s1, -0x7fd0(gp) | s1 = *((gp - 8180));
| if (s4 == 0) {
0x000033ec beqz s4, 0x394c | goto label_13;
| }
0x000033f0 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x000033f4 addiu v0, v0, 0x4c20 | v0 += str.registration;
0x000033f8 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x000033fc addiu s1, s1, 0x329c | s1 += fcn.0000329c;
0x00003400 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00003404 addiu v0, v0, 0x4c64 | v0 += str.keyvalue;
0x00003408 sw v0, 0x30(sp) | *(var_30h) = v0;
0x0000340c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00003410 addiu v0, v0, 0x4c94 | v0 += 0x4c94;
0x00003414 sw v0, 0x34(sp) | *(var_34h) = v0;
0x00003418 b 0x39c8 | goto label_14;
| }
0x0000341c lw t9, -0x7fc4(gp) | t9 = sym.depd_error_quark;
| if (s0 == 0) {
0x00003420 beqz s0, 0x3a88 | goto label_15;
| }
0x00003424 bal 0x4160 | sym_depd_error_quark ();
0x00003428 nop |
0x0000342c lw gp, 0x10(sp) | gp = *(var_10h);
0x00003430 move a3, s1 | a3 = s1;
0x00003434 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00003438 addiu a2, a2, 0x4bc8 | a2 += str.Failed_to_open_file:___s;
0x0000343c addiu a1, zero, 1 | a1 = 1;
0x00003440 move a0, v0 | a0 = v0;
0x00003444 lw t9, -0x7e50(gp) | t9 = sym.imp.g_error_new;
0x00003448 jalr t9 | t9 ();
0x0000344c nop |
0x00003450 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003454 sw v0, (s0) | *(s0) = v0;
0x00003458 move v0, zero | v0 = 0;
0x0000345c b 0x34f0 | goto label_5;
| label_12:
0x00003460 lw t9, -0x7fc4(gp) | t9 = sym.depd_error_quark;
0x00003464 bal 0x4160 | sym_depd_error_quark ();
0x00003468 nop |
0x0000346c lw gp, 0x10(sp) | gp = *(var_10h);
0x00003470 lw v1, 0x24(sp) | v1 = *(var_24h);
0x00003474 lw a3, 4(v1) | a3 = *((v1 + 1));
0x00003478 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x0000347c addiu a2, a2, 0x4bf4 | a2 += str.Expected_tag__registrations___found___s_;
0x00003480 addiu a1, zero, 1 | a1 = 1;
0x00003484 move a0, v0 | a0 = v0;
0x00003488 lw t9, -0x7e50(gp) | t9 = sym.imp.g_error_new;
0x0000348c jalr t9 | t9 ();
0x00003490 nop |
0x00003494 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003498 sw v0, (s0) | *(s0) = v0;
0x0000349c b 0x34d8 | goto label_8;
| label_7:
0x000034a0 lw t9, -0x7fc4(gp) | t9 = sym.depd_error_quark;
0x000034a4 bal 0x4160 | sym_depd_error_quark ();
0x000034a8 nop |
0x000034ac lw gp, 0x10(sp) | gp = *(var_10h);
0x000034b0 lw a3, 4(s2) | a3 = *((s2 + 1));
0x000034b4 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x000034b8 addiu a2, a2, 0x4c30 | a2 += str.Expected_tag__registration___found___s_;
0x000034bc addiu a1, zero, 1 | a1 = 1;
0x000034c0 move a0, v0 | a0 = v0;
0x000034c4 lw t9, -0x7e50(gp) | t9 = sym.imp.g_error_new;
0x000034c8 jalr t9 | t9 ();
0x000034cc nop |
0x000034d0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000034d4 sw v0, (s0) | *(s0) = v0;
| label_8:
0x000034d8 lw a0, 0x24(sp) | a0 = *(var_24h);
| do {
0x000034dc lw t9, -0x7e70(gp) | t9 = sym.imp.xmlnode_free_tree;
0x000034e0 jalr t9 | t9 ();
0x000034e4 nop |
0x000034e8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000034ec move v0, zero | v0 = 0;
| label_5:
0x000034f0 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x000034f4 lw fp, 0x58(sp) | fp = *(var_58h);
0x000034f8 lw s7, 0x54(sp) | s7 = *(var_54h);
0x000034fc lw s6, 0x50(sp) | s6 = *(var_50h);
0x00003500 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x00003504 lw s4, 0x48(sp) | s4 = *(var_48h);
0x00003508 lw s3, 0x44(sp) | s3 = *(var_44h);
0x0000350c lw s2, 0x40(sp) | s2 = *(var_40h);
0x00003510 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x00003514 lw s0, 0x38(sp) | s0 = *(var_38h);
0x00003518 addiu sp, sp, 0x60 |
0x0000351c jr ra | return v0;
| label_0:
0x00003520 lw t9, -0x7fc4(gp) | t9 = sym.depd_error_quark;
0x00003524 bal 0x4160 | sym_depd_error_quark ();
0x00003528 nop |
0x0000352c lw gp, 0x10(sp) | gp = *(var_10h);
0x00003530 lw a3, 4(s3) | a3 = *((s3 + 1));
0x00003534 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00003538 addiu a2, a2, 0x4c70 | a2 += str.Expected_tag__keyvalue___found___s_;
0x0000353c addiu a1, zero, 1 | a1 = 1;
0x00003540 move a0, v0 | a0 = v0;
0x00003544 lw t9, -0x7e50(gp) | t9 = sym.imp.g_error_new;
0x00003548 jalr t9 | t9 ();
0x0000354c nop |
0x00003550 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003554 sw v0, (s0) | *(s0) = v0;
| label_1:
0x00003558 lw a0, 0x18(sp) | a0 = *(var_18h);
0x0000355c lw t9, -0x7e30(gp) | t9 = sym.imp.g_hash_table_destroy;
0x00003560 jalr t9 | t9 ();
0x00003564 nop |
0x00003568 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000356c lw a0, 0x24(sp) | a0 = *(var_24h);
0x00003570 b 0x34dc |
| } while (1);
| label_2:
0x00003574 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00003578 addiu a1, a1, 0x4cb4 | a1 += str.boolean;
0x0000357c move a0, s3 | a0 = s3;
0x00003580 lw t9, -0x7e64(gp) | t9 = sym.imp.g_strcmp0;
0x00003584 jalr t9 | t9 ();
0x00003588 nop |
0x0000358c lw gp, 0x10(sp) | gp = *(var_10h);
0x00003590 addiu a2, zero, 2 | a2 = 2;
| if (v0 != 0) {
0x00003594 bnez v0, 0x36a8 | goto label_16;
| }
| label_4:
0x00003598 move a1, s7 | a1 = s7;
| label_3:
0x0000359c move a0, s5 | a0 = s5;
0x000035a0 lw t9, -0x7fb4(gp) | t9 = sym.key_value_pair_new;
0x000035a4 bal 0x3df0 | sym_key_value_pair_new ();
0x000035a8 nop |
0x000035ac lw gp, 0x10(sp) | gp = *(var_10h);
0x000035b0 move s3, v0 | s3 = v0;
0x000035b4 move a0, s5 | a0 = s5;
0x000035b8 lw t9, -0x7e68(gp) | t9 = sym.imp.g_strdup;
0x000035bc jalr t9 | t9 ();
0x000035c0 nop |
0x000035c4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000035c8 move a2, s3 | a2 = s3;
0x000035cc move a1, v0 | a1 = v0;
0x000035d0 lw a0, 0x18(sp) | a0 = *(var_18h);
0x000035d4 lw t9, -0x7e74(gp) | t9 = sym.imp.g_hash_table_insert;
0x000035d8 jalr t9 | t9 ();
0x000035dc nop |
0x000035e0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000035e4 lw s2, 4(s2) | s2 = *((s2 + 1));
0x000035e8 lw a2, 0x18(sp) | a2 = *(var_18h);
| if (s2 == 0) {
0x000035ec beqz s2, 0x396c | goto label_17;
| }
| label_10:
0x000035f0 lw s3, (s2) | s3 = *(s2);
0x000035f4 lw a1, 0x30(sp) | a1 = *(var_30h);
0x000035f8 lw a0, 4(s3) | a0 = *((s3 + 1));
0x000035fc lw t9, -0x7e64(gp) | t9 = sym.imp.g_strcmp0;
0x00003600 jalr t9 | t9 ();
0x00003604 nop |
0x00003608 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000360c move a2, s0 | a2 = s0;
| if (v0 != 0) {
0x00003610 bnez v0, 0x3520 | goto label_0;
| }
0x00003614 lw a1, 0x34(sp) | a1 = *(var_34h);
0x00003618 move a0, s3 | a0 = s3;
0x0000361c move t9, s1 | t9 = s1;
0x00003620 jalr t9 | t9 ();
0x00003624 nop |
0x00003628 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000362c move s5, v0 | s5 = v0;
| if (v0 == 0) {
0x00003630 beqz v0, 0x3558 | goto label_1;
| }
0x00003634 move a2, s0 | a2 = s0;
0x00003638 lw a1, 0x28(sp) | a1 = *(var_28h);
0x0000363c move a0, s3 | a0 = s3;
0x00003640 move t9, s1 | t9 = s1;
0x00003644 jalr t9 | t9 ();
0x00003648 nop |
0x0000364c lw gp, 0x10(sp) | gp = *(var_10h);
0x00003650 move s7, v0 | s7 = v0;
| if (v0 == 0) {
0x00003654 beqz v0, 0x3558 | goto label_1;
| }
0x00003658 move a2, s0 | a2 = s0;
0x0000365c addiu a1, s6, 0x4ca0 | a1 = s6 + str.value_type;
0x00003660 move a0, s3 | a0 = s3;
0x00003664 move t9, s1 | t9 = s1;
0x00003668 jalr t9 | t9 ();
0x0000366c nop |
0x00003670 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003674 move s3, v0 | s3 = v0;
| if (v0 == 0) {
0x00003678 beqz v0, 0x3558 | goto label_1;
| }
0x0000367c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00003680 addiu a1, a1, 0x4cac | a1 += str.bool;
0x00003684 move a0, v0 | a0 = v0;
0x00003688 lw t9, -0x7e64(gp) | t9 = sym.imp.g_strcmp0;
0x0000368c jalr t9 | t9 ();
0x00003690 nop |
0x00003694 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003698 addiu a2, zero, 2 | a2 = 2;
| if (v0 != 0) {
0x0000369c bnez v0, 0x3574 | goto label_2;
| }
0x000036a0 move a1, s7 | a1 = s7;
0x000036a4 b 0x359c | goto label_3;
| label_16:
0x000036a8 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x000036ac addiu a1, a1, 0x4cbc | a1 += 0x4cbc;
0x000036b0 move a0, s3 | a0 = s3;
0x000036b4 lw t9, -0x7e64(gp) | t9 = sym.imp.g_strcmp0;
0x000036b8 jalr t9 | t9 ();
0x000036bc nop |
0x000036c0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000036c4 addiu a2, zero, 1 | a2 = 1;
| if (v0 == 0) {
0x000036c8 beqz v0, 0x3598 | goto label_4;
| }
0x000036cc lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x000036d0 addiu a1, a1, 0x4cc0 | a1 += str.integer;
0x000036d4 move a0, s3 | a0 = s3;
0x000036d8 lw t9, -0x7e64(gp) | t9 = sym.imp.g_strcmp0;
0x000036dc jalr t9 | t9 ();
0x000036e0 nop |
0x000036e4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000036e8 addiu a2, zero, 1 | a2 = 1;
| if (v0 == 0) {
0x000036ec beqz v0, 0x3598 | goto label_4;
| }
0x000036f0 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x000036f4 addiu a1, a1, 0x4cc8 | a1 += str.double;
0x000036f8 move a0, s3 | a0 = s3;
0x000036fc lw t9, -0x7e64(gp) | t9 = sym.imp.g_strcmp0;
0x00003700 jalr t9 | t9 ();
0x00003704 nop |
0x00003708 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000370c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| if (v0 == 0) {
0x00003710 bnez v0, 0x371c |
0x00003714 addiu a2, zero, 3 | a2 = 3;
0x00003718 b 0x3598 | goto label_4;
| }
0x0000371c addiu a1, a1, 0x4cd0 | a1 += str.float;
0x00003720 move a0, s3 | a0 = s3;
0x00003724 lw t9, -0x7e64(gp) | t9 = sym.imp.g_strcmp0;
0x00003728 jalr t9 | t9 ();
0x0000372c nop |
0x00003730 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003734 addiu a2, zero, 4 | a2 = 4;
0x00003738 addiu v1, zero, 3 | v1 = 3;
| if (v0 != 0) {
0x0000373c movz a2, v1, v0 | a2 = v1;
| }
0x00003740 b 0x3598 | goto label_4;
| label_11:
0x00003744 move a0, s1 | a0 = s1;
0x00003748 lw t9, -0x7f84(gp) | t9 = sym.imp.g_file_test;
0x0000374c jalr t9 | t9 ();
0x00003750 nop |
0x00003754 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003758 addiu a1, zero, 2 | a1 = 2;
| if (v0 == 0) {
0x0000375c beqz v0, 0x38a4 | goto label_18;
| }
0x00003760 move a2, s0 | a2 = s0;
0x00003764 move a1, zero | a1 = 0;
0x00003768 move a0, s1 | a0 = s1;
0x0000376c lw t9, -0x7f78(gp) | t9 = sym.imp.g_dir_open;
0x00003770 jalr t9 | t9 ();
0x00003774 nop |
0x00003778 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000377c move s3, v0 | s3 = v0;
| if (v0 == 0) {
0x00003780 beqz v0, 0x380c | goto label_19;
| }
0x00003784 lw s5, -0x7fd0(gp) | s5 = *((gp - 8180));
0x00003788 addiu s5, s5, 0x4cf8 | s5 += str._s_c_s;
0x0000378c lw s4, -0x7fd0(gp) | s4 = *((gp - 8180));
0x00003790 addiu s4, s4, 0x3338 | s4 += fcn.00003338;
0x00003794 move a0, s3 | a0 = s3;
| do {
0x00003798 lw t9, -0x7e40(gp) | t9 = sym.imp.g_dir_read_name;
0x0000379c jalr t9 | t9 ();
0x000037a0 nop |
0x000037a4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000037a8 move a3, v0 | a3 = v0;
| if (v0 == 0) {
0x000037ac beqz v0, 0x3888 | goto label_20;
| }
0x000037b0 addiu a2, zero, 0x2f | a2 = 0x2f;
0x000037b4 move a1, s1 | a1 = s1;
0x000037b8 move a0, s5 | a0 = s5;
0x000037bc lw t9, -0x7ec0(gp) | t9 = sym.imp.g_strdup_printf
0x000037c0 jalr t9 | t9 ();
0x000037c4 nop |
0x000037c8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000037cc move s2, v0 | s2 = v0;
0x000037d0 move a2, s0 | a2 = s0;
0x000037d4 move a1, v0 | a1 = v0;
0x000037d8 lw a0, 0x60(sp) | a0 = *(arg_60h);
0x000037dc move t9, s4 | t9 = s4;
0x000037e0 jalr t9 | t9 ();
0x000037e4 nop |
0x000037e8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000037ec move a0, s2 | a0 = s2;
| if (v0 == 0) {
0x000037f0 beqz v0, 0x3850 | goto label_21;
| }
0x000037f4 lw t9, -0x7e20(gp) | t9 = *((gp - 8072));
0x000037f8 jalr t9 | t9 ();
0x000037fc nop |
0x00003800 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003804 move a0, s3 | a0 = s3;
0x00003808 b 0x3798 |
| } while (1);
| label_19:
0x0000380c lw t9, -0x7fc4(gp) | t9 = sym.depd_error_quark;
| if (s0 == 0) {
0x00003810 beqz s0, 0x3a90 | goto label_22;
| }
0x00003814 bal 0x4160 | sym_depd_error_quark ();
0x00003818 nop |
0x0000381c lw gp, 0x10(sp) | gp = *(var_10h);
0x00003820 move a3, s1 | a3 = s1;
0x00003824 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00003828 addiu a2, a2, 0x4cd8 | a2 += str.Failed_to_open_directory:__s;
0x0000382c addiu a1, zero, 1 | a1 = 1;
0x00003830 move a0, v0 | a0 = v0;
0x00003834 lw t9, -0x7e50(gp) | t9 = sym.imp.g_error_new;
0x00003838 jalr t9 | t9 ();
0x0000383c nop |
0x00003840 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003844 sw v0, (s0) | *(s0) = v0;
0x00003848 move v0, zero | v0 = 0;
0x0000384c b 0x34f0 | goto label_5;
| label_21:
0x00003850 move a0, s3 | a0 = s3;
0x00003854 lw t9, -0x7e2c(gp) | t9 = sym.imp.g_dir_close;
0x00003858 jalr t9 | t9 ();
0x0000385c nop |
0x00003860 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003864 move v0, zero | v0 = 0;
| if (s2 == 0) {
0x00003868 beqz s2, 0x34f0 | goto label_5;
| }
0x0000386c move a0, s2 | a0 = s2;
| do {
0x00003870 lw t9, -0x7e20(gp) | t9 = *((gp - 8072));
0x00003874 jalr t9 | t9 ();
0x00003878 nop |
0x0000387c lw gp, 0x10(sp) | gp = *(var_10h);
0x00003880 move v0, zero | v0 = 0;
0x00003884 b 0x34f0 | goto label_5;
| label_20:
0x00003888 move a0, s3 | a0 = s3;
0x0000388c lw t9, -0x7e2c(gp) | t9 = sym.imp.g_dir_close;
0x00003890 jalr t9 | t9 ();
0x00003894 nop |
0x00003898 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000389c addiu v0, zero, 1 | v0 = 1;
0x000038a0 b 0x34f0 | goto label_5;
| label_18:
0x000038a4 move a0, s1 | a0 = s1;
0x000038a8 lw t9, -0x7f84(gp) | t9 = sym.imp.g_file_test;
0x000038ac jalr t9 | t9 ();
0x000038b0 nop |
0x000038b4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000038b8 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
| if (v0 == 0) {
0x000038bc beqz v0, 0x3920 | goto label_23;
| }
0x000038c0 move a1, s0 | a1 = s0;
0x000038c4 move a0, s1 | a0 = s1;
0x000038c8 lw t9, -0x7ea4(gp) | t9 = sym.imp.g_file_read_link;
0x000038cc jalr t9 | t9 ();
0x000038d0 nop |
0x000038d4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000038d8 move s2, v0 | s2 = v0;
| if (v0 == 0) {
0x000038dc beqz v0, 0x3a98 | goto label_24;
| }
0x000038e0 move a2, s0 | a2 = s0;
0x000038e4 move a1, v0 | a1 = v0;
0x000038e8 lw a0, 0x60(sp) | a0 = *(arg_60h);
0x000038ec lw t9, -0x7fd0(gp) | t9 = *((gp - 8180));
0x000038f0 addiu t9, t9, 0x3338 | t9 += fcn.00003338;
0x000038f4 bal 0x3338 | fcn_00003338 ();
| goto label_6;
0x000038f8 nop |
0x000038fc lw gp, 0x10(sp) | gp = *(var_10h);
0x00003900 move a0, s2 | a0 = s2;
0x00003904 beqz v0, 0x3870 |
| } while (v0 == 0);
0x00003908 lw t9, -0x7e20(gp) | t9 = *((gp - 8072));
0x0000390c jalr t9 | t9 ();
0x00003910 nop |
0x00003914 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003918 addiu v0, zero, 1 | v0 = 1;
0x0000391c b 0x34f0 | goto label_5;
| label_23:
0x00003920 addiu a3, a3, 0x4d00 | a3 += str._usr_share_event_registrations.d;
0x00003924 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00003928 addiu a2, a2, 0x4d24 | a2 += str.Could_not_find_directory_or_files:__s;
0x0000392c addiu a1, zero, 0x80 | a1 = 0x80;
0x00003930 move a0, zero | a0 = 0;
0x00003934 lw t9, -0x7f68(gp) | t9 = sym.imp.g_log;
0x00003938 jalr t9 | t9 ();
0x0000393c nop |
0x00003940 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003944 addiu v0, zero, 1 | v0 = 1;
0x00003948 b 0x34f0 | goto label_5;
| label_13:
0x0000394c lw a0, 0x24(sp) | a0 = *(var_24h);
| do {
0x00003950 lw t9, -0x7e70(gp) | t9 = sym.imp.xmlnode_free_tree;
0x00003954 jalr t9 | t9 ();
0x00003958 nop |
0x0000395c lw gp, 0x10(sp) | gp = *(var_10h);
0x00003960 addiu v0, zero, 1 | v0 = 1;
0x00003964 b 0x34f0 | goto label_5;
| label_9:
0x00003968 lw a2, 0x18(sp) | a2 = *(var_18h);
| label_17:
0x0000396c lw a1, 0x20(sp) | a1 = *(var_20h);
0x00003970 lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x00003974 lw t9, -0x7fb0(gp) | t9 = sym.registration_new;
0x00003978 bal 0x3cd0 | sym_registration_new ();
0x0000397c nop |
0x00003980 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003984 move s2, v0 | s2 = v0;
0x00003988 lw s3, (fp) | s3 = *(fp);
0x0000398c lw a0, 4(v0) | a0 = *((v0 + 1));
0x00003990 lw t9, -0x7e68(gp) | t9 = sym.imp.g_strdup;
0x00003994 jalr t9 | t9 ();
0x00003998 nop |
0x0000399c lw gp, 0x10(sp) | gp = *(var_10h);
0x000039a0 move a2, s2 | a2 = s2;
0x000039a4 move a1, v0 | a1 = v0;
0x000039a8 move a0, s3 | a0 = s3;
0x000039ac lw t9, -0x7e74(gp) | t9 = sym.imp.g_hash_table_insert;
0x000039b0 jalr t9 | t9 ();
0x000039b4 nop |
0x000039b8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000039bc lw s4, 4(s4) | s4 = *((s4 + 1));
0x000039c0 lw a0, 0x24(sp) | a0 = *(var_24h);
0x000039c4 beqz s4, 0x3950 |
| } while (s4 == 0);
| label_14:
0x000039c8 lw s2, (s4) | s2 = *(s4);
0x000039cc lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x000039d0 lw v0, 0x5224(v0) | v0 = *((v0 + 5257));
0x000039d4 lw v1, 0x60(sp) | v1 = *(arg_60h);
0x000039d8 addu fp, v1, v0 | fp = v1 + v0;
0x000039dc lw a1, 0x2c(sp) | a1 = *(var_2ch);
0x000039e0 lw a0, 4(s2) | a0 = *((s2 + 1));
0x000039e4 lw t9, -0x7e64(gp) | t9 = sym.imp.g_strcmp0;
0x000039e8 jalr t9 | t9 ();
0x000039ec nop |
0x000039f0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000039f4 move a2, s0 | a2 = s0;
| if (v0 != 0) {
0x000039f8 bnez v0, 0x34a0 | goto label_7;
| }
0x000039fc lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00003a00 addiu a1, a1, 0x4c58 | a1 += str.type;
0x00003a04 move a0, s2 | a0 = s2;
0x00003a08 move t9, s1 | t9 = s1;
0x00003a0c jalr t9 | t9 ();
0x00003a10 nop |
0x00003a14 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003a18 sw v0, 0x1c(sp) | *(var_1ch) = v0;
| if (v0 == 0) {
0x00003a1c beqz v0, 0x34d8 | goto label_8;
| }
0x00003a20 move a2, s0 | a2 = s0;
0x00003a24 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00003a28 addiu a1, a1, 0x4c60 | a1 += 0x4c60;
0x00003a2c move a0, s2 | a0 = s2;
0x00003a30 move t9, s1 | t9 = s1;
0x00003a34 jalr t9 | t9 ();
0x00003a38 nop |
0x00003a3c lw gp, 0x10(sp) | gp = *(var_10h);
0x00003a40 sw v0, 0x20(sp) | *(var_20h) = v0;
| if (v0 == 0) {
0x00003a44 beqz v0, 0x34d8 | goto label_8;
| }
0x00003a48 lw a3, -0x7fac(gp) | a3 = sym.key_value_pair_free;
0x00003a4c lw a2, -0x7e20(gp) | a2 = *((gp - 8072));
0x00003a50 lw a1, -0x7f6c(gp) | a1 = *((gp - 8155));
0x00003a54 lw a0, -0x7e34(gp) | a0 = *((gp - 8077));
0x00003a58 lw t9, -0x7ed8(gp) | t9 = sym.imp.g_hash_table_new_full;
0x00003a5c jalr t9 | t9 ();
0x00003a60 nop |
0x00003a64 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003a68 sw v0, 0x18(sp) | *(var_18h) = v0;
0x00003a6c lw s2, 0x10(s2) | s2 = *((s2 + 4));
0x00003a70 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
| if (s2 == 0) {
0x00003a74 beqz s2, 0x3968 | goto label_9;
| }
0x00003a78 addiu v0, v0, 0x4c98 | v0 += str.value;
0x00003a7c sw v0, 0x28(sp) | *(var_28h) = v0;
0x00003a80 lw s6, -0x7fd0(gp) | s6 = *((gp - 8180));
0x00003a84 b 0x35f0 | goto label_10;
| label_15:
0x00003a88 move v0, zero | v0 = 0;
0x00003a8c b 0x34f0 | goto label_5;
| label_22:
0x00003a90 move v0, zero | v0 = 0;
0x00003a94 b 0x34f0 | goto label_5;
| label_24:
0x00003a98 move v0, zero | v0 = 0;
0x00003a9c b 0x34f0 | goto label_5;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/depd @ 0x3f2c */
| #include <stdint.h>
|
; (fcn) sym.key_value_pair_print () | void key_value_pair_print () {
0x00003f2c lui gp, 2 |
0x00003f30 addiu gp, gp, -0x6f1c |
0x00003f34 addu gp, gp, t9 | gp += t9;
0x00003f38 addiu sp, sp, -0x20 |
0x00003f3c sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x00003f40 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00003f44 lw v0, 0x1c(a0) | v0 = *((a0 + 7));
0x00003f48 addiu v1, zero, 2 | v1 = 2;
0x00003f4c addiu v1, zero, 3 | v1 = 3;
| if (v0 == v1) {
0x00003f50 beq v0, v1, 0x3fc4 | goto label_1;
| }
0x00003f54 addiu v1, zero, 1 | v1 = 1;
| if (v0 == v1) {
0x00003f58 beq v0, v1, 0x3fec | goto label_2;
| }
0x00003f5c lw t9, -0x7ec0(gp) | t9 = sym.imp.g_strdup_printf
| if (v0 != v1) {
0x00003f60 beq v0, v1, 0x3f88 |
0x00003f64 lw a2, 8(a0) | a2 = *((a0 + 2));
0x00003f68 lw a1, (a0) | a1 = *(a0);
0x00003f6c lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x00003f70 addiu a0, a0, 0x4d88 | a0 += str._s____s__string_;
0x00003f74 jalr t9 | t9 ();
0x00003f78 nop |
0x00003f7c lw gp, 0x10(sp) | gp = *(var_10h);
0x00003f80 move a0, v0 | a0 = v0;
0x00003f84 b 0x3fa8 |
| } else {
0x00003f88 lw a2, 0xc(a0) | a2 = *((a0 + 3));
0x00003f8c lw a1, (a0) | a1 = *(a0);
0x00003f90 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x00003f94 addiu a0, a0, 0x4d4c | a0 += str._s____d__integer_;
0x00003f98 jalr t9 | t9 ();
0x00003f9c nop |
0x00003fa0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003fa4 move a0, v0 | a0 = v0;
| }
| do {
| label_0:
0x00003fa8 lw t9, -0x7e20(gp) | t9 = *((gp - 8072));
0x00003fac jalr t9 | t9 ();
0x00003fb0 nop |
0x00003fb4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003fb8 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x00003fbc addiu sp, sp, 0x20 |
0x00003fc0 jr ra | return v0;
| label_1:
0x00003fc4 lw a2, 0x18(a0) | a2 = *((a0 + 6));
0x00003fc8 lw a1, (a0) | a1 = *(a0);
0x00003fcc lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x00003fd0 addiu a0, a0, 0x4d60 | a0 += str._s____d__boolean_;
0x00003fd4 lw t9, -0x7ec0(gp) | t9 = sym.imp.g_strdup_printf
0x00003fd8 jalr t9 | t9 ();
0x00003fdc nop |
0x00003fe0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003fe4 move a0, v0 | a0 = v0;
0x00003fe8 b 0x3fa8 |
| } while (1);
| label_2:
0x00003fec lw a2, 0x10(a0) | a2 = *((a0 + 4));
0x00003ff0 lw a3, 0x14(a0) | a3 = *((a0 + 5));
0x00003ff4 lw a1, (a0) | a1 = *(a0);
0x00003ff8 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x00003ffc addiu a0, a0, 0x4d74 | a0 += str._s____f__double_;
0x00004000 lw t9, -0x7ec0(gp) | t9 = sym.imp.g_strdup_printf
0x00004004 jalr t9 | t9 ();
0x00004008 nop |
0x0000400c lw gp, 0x10(sp) | gp = *(var_10h);
0x00004010 move a0, v0 | a0 = v0;
0x00004014 b 0x3fa8 | goto label_0;
| }
[*] Function printf used 5 times depd