[*] Binary protection state of netd
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of netd
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x19f4c */
| #include <stdint.h>
|
; (fcn) fcn.00019f4c () | void fcn_00019f4c () {
0x00019f4c lui gp, 8 |
0x00019f50 addiu gp, gp, -0x230c |
0x00019f54 addu gp, gp, t9 | gp += t9;
0x00019f58 addiu sp, sp, -0x30 |
0x00019f5c sw gp, 0x18(sp) | *(var_18h) = gp;
0x00019f60 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00019f64 sw s2, 0x28(sp) | *(var_28h) = s2;
0x00019f68 sw s1, 0x24(sp) | *(var_24h) = s1;
0x00019f6c sw s0, 0x20(sp) | *(var_20h) = s0;
0x00019f70 lw t9, -0x7e28(gp) | t9 = sym.netd_device_ipv6_get_addresses;
| if (a0 == 0) {
0x00019f74 beqz a0, 0x1a02c | goto label_1;
| }
0x00019f78 move s1, zero | s1 = 0;
0x00019f7c bal 0x3536c | sym_netd_device_ipv6_get_addresses ();
0x00019f80 move s0, v0 | s0 = v0;
0x00019f84 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00019f88 beqz v0, 0x1a054 | goto label_2;
| }
0x00019f8c lw s2, -0x7cfc(gp) | s2 = *(gp);
| /* esilref: '&s &s' */
0x00019f90 addiu s2, s2, -0x3234 | s2 += -0x3234;
0x00019f94 b 0x19fd8 |
| while (s1 != 0) {
0x00019f98 bal 0xac90 | sym_netd_addr_get_ip ();
0x00019f9c nop |
0x00019fa0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019fa4 move a1, s1 | a1 = s1;
0x00019fa8 move a2, v0 | a2 = v0;
0x00019fac lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00019fb0 move a0, s2 | a0 = s2;
0x00019fb4 jalr t9 | t9 ();
0x00019fb8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019fbc move a0, s1 | a0 = s1;
0x00019fc0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00019fc4 move s1, v0 | s1 = v0;
0x00019fc8 jalr t9 | t9 ();
0x00019fcc lw s0, 4(s0) | s0 = *((s0 + 1));
0x00019fd0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s0 == 0) {
0x00019fd4 beqz s0, 0x1a00c | goto label_3;
| }
| label_0:
0x00019fd8 lw a0, (s0) | a0 = *(s0);
0x00019fdc lw t9, -0x7dd8(gp) | t9 = sym.netd_addr_get_ip;
0x00019fe0 bnez s1, 0x19f98 |
| }
0x00019fe4 bal 0xac90 | sym_netd_addr_get_ip ();
0x00019fe8 nop |
0x00019fec lw gp, 0x18(sp) | gp = *(var_18h);
0x00019ff0 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
0x00019ff4 move a0, v0 | a0 = v0;
0x00019ff8 jalr t9 | t9 ();
0x00019ffc lw s0, 4(s0) | s0 = *((s0 + 1));
0x0001a000 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a004 move s1, v0 | s1 = v0;
| if (s0 != 0) {
0x0001a008 bnez s0, 0x19fd8 | goto label_0;
| }
| label_3:
0x0001a00c lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (s1 != 0) {
0x0001a010 beqz s1, 0x1a054 |
0x0001a014 move v0, s1 | v0 = s1;
0x0001a018 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0001a01c lw s1, 0x24(sp) | s1 = *(var_24h);
0x0001a020 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001a024 addiu sp, sp, 0x30 |
0x0001a028 jr ra | return v0;
| label_1:
0x0001a02c lw v0, -0x7cfc(gp) | v0 = *(gp);
0x0001a030 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x0001a034 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev != NULL' */
0x0001a038 addiu v0, v0, -0x3424 | v0 += -0x3424;
0x0001a03c lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0001a040 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.get_vapix_property_ipv6ipaddresses */
0x0001a044 addiu a3, a3, -0x2588 | a3 += -0x2588;
0x0001a048 addiu a2, zero, 0x399 | a2 = 0x399;
| /* str.src_netd_dbus_legacy.c */
0x0001a04c addiu a1, a1, -0x343c | a1 += -0x343c;
0x0001a050 jalr t9 | t9 ();
| }
| label_2:
0x0001a054 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0001a058 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0001a05c lw s2, 0x28(sp) | s2 = *(var_28h);
0x0001a060 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0001a064 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001a068 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
0x0001a06c addiu a0, a0, -0x3440 | a0 += -0x3440;
0x0001a070 addiu sp, sp, 0x30 |
0x0001a074 jr t9 | return t9 ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x200b0 */
| #include <stdint.h>
|
; (fcn) fcn.000200b0 () | void fcn_000200b0 () {
0x000200b0 lui gp, 7 |
0x000200b4 addiu gp, gp, 0x7b90 |
0x000200b8 addu gp, gp, t9 | gp += t9;
0x000200bc addiu sp, sp, -0x30 |
0x000200c0 lw t9, -0x7f40(gp) | t9 = sym.netd_device_get_ifindex;
0x000200c4 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x000200c8 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000200cc sw s2, 0x28(sp) | *(var_28h) = s2;
0x000200d0 sw s1, 0x24(sp) | *(var_24h) = s1;
0x000200d4 sw s0, 0x20(sp) | *(var_20h) = s0;
0x000200d8 move s0, a0 | s0 = a0;
0x000200dc bal 0x23158 | sym_netd_device_get_ifindex ();
0x000200e0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000200e4 move a2, v0 | a2 = v0;
0x000200e8 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x000200ec lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000200f0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._com_axis_Net1_Device */
0x000200f4 addiu a1, a1, -0x1db4 | a1 += -0x1db4;
| /* str._s__u */
0x000200f8 addiu a0, a0, -0x1d9c | a0 += -0x1d9c;
0x000200fc jalr t9 | t9 ();
0x00020100 lw gp, 0x18(sp) | gp = *(var_18h);
0x00020104 move a1, v0 | a1 = v0;
0x00020108 move a0, s0 | a0 = s0;
0x0002010c lw t9, -0x7bb4(gp) | t9 = sym.netd_dbus_device_new;
0x00020110 lw s0, -0x7fd0(gp) | s0 = *((gp - 8180));
0x00020114 move s1, v0 | s1 = v0;
0x00020118 bal 0xdce0 | sym_netd_dbus_device_new ();
0x0002011c lw gp, 0x18(sp) | gp = *(var_18h);
0x00020120 move a0, s1 | a0 = s1;
0x00020124 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00020128 move s2, v0 | s2 = v0;
0x0002012c jalr t9 | t9 ();
0x00020130 lw gp, 0x18(sp) | gp = *(var_18h);
0x00020134 lw s1, 0x850(s0) | s1 = *((s0 + 532));
0x00020138 move a1, s2 | a1 = s2;
0x0002013c lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00020140 lw a0, (s1) | a0 = *(s1);
0x00020144 jalr t9 | t9 ();
0x00020148 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002014c move a0, s2 | a0 = s2;
0x00020150 lw t9, -0x7bd8(gp) | t9 = sym.netd_dbus_device_get_variant_representation;
0x00020154 sw v0, (s1) | *(s1) = v0;
0x00020158 bal 0xda58 | sym_netd_dbus_device_get_variant_representation ();
0x0002015c lw gp, 0x18(sp) | gp = *(var_18h);
0x00020160 lw v1, 0x850(s0) | v1 = *((s0 + 532));
0x00020164 move a1, v0 | a1 = v0;
0x00020168 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x0002016c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00020170 lw t9, -0x7f4c(gp) | t9 = sym.netd_dbus_emit_signal;
0x00020174 lw a0, 0x10(v1) | a0 = *((v1 + 4));
| /* str.DeviceAdded */
0x00020178 addiu a3, a3, -0x1d94 | a3 += -0x1d94;
0x0002017c sw zero, 0x10(sp) | *(var_10h) = 0;
| /* str.com.axis.Net1 */
0x00020180 addiu a2, a2, 0x5cf0 | a2 += 0x5cf0;
0x00020184 bal 0xc1e0 | sym_netd_dbus_emit_signal ();
0x00020188 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0002018c beqz v0, 0x201a8 |
0x00020190 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00020194 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00020198 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0002019c lw s0, 0x20(sp) | s0 = *(var_20h);
0x000201a0 addiu sp, sp, 0x30 |
0x000201a4 jr ra | return v0;
| }
0x000201a8 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x000201ac lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000201b0 lw s2, 0x28(sp) | s2 = *(var_28h);
0x000201b4 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000201b8 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000201bc lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.Failed_to_send_new_device_signal */
0x000201c0 addiu a1, a1, -0x1d88 | a1 += -0x1d88;
0x000201c4 addiu a0, zero, 3 | a0 = 3;
0x000201c8 addiu sp, sp, 0x30 |
0x000201cc jr t9 | return t9 ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x22968 */
| #include <stdint.h>
|
; (fcn) fcn.00022968 () | void fcn_00022968 () {
0x00022968 lui gp, 7 |
0x0002296c addiu gp, gp, 0x52d8 |
0x00022970 addu gp, gp, t9 | gp += t9;
0x00022974 addiu sp, sp, -0x80 |
0x00022978 lw v1, -0x7cfc(gp) | v1 = *(gp);
0x0002297c sw s1, 0x6c(sp) | *(var_6ch) = s1;
0x00022980 lw s1, -0x773c(gp) | s1 = *((gp - 7631));
| /* str._02X:_02X:_02X:_02X:_02X:_02X */
0x00022984 addiu v0, v1, 0x2714 | v0 = v1 + 0x2714;
0x00022988 lw t3, 0x2714(v1) | t3 = *((v1 + 2501));
0x0002298c lw t2, 4(v0) | t2 = *((v0 + 1));
0x00022990 lw t1, 8(v0) | t1 = *((v0 + 2));
0x00022994 lw t0, 0xc(v0) | t0 = *((v0 + 3));
0x00022998 lw a3, 0x10(v0) | a3 = *((v0 + 4));
0x0002299c lw a2, 0x14(v0) | a2 = *((v0 + 5));
0x000229a0 lw v1, 0x18(v0) | v1 = *((v0 + 6));
0x000229a4 lw t4, (s1) | t4 = *(s1);
0x000229a8 lhu v0, 0x1c(v0) | v0 = *((v0 + 14));
0x000229ac sw gp, 0x20(sp) | *(var_20h) = gp;
0x000229b0 sw ra, 0x7c(sp) | *(var_7ch) = ra;
0x000229b4 sw s4, 0x78(sp) | *(var_78h) = s4;
0x000229b8 sw s3, 0x74(sp) | *(var_74h) = s3;
0x000229bc sw s2, 0x70(sp) | *(var_70h) = s2;
0x000229c0 sw s0, 0x68(sp) | *(var_68h) = s0;
0x000229c4 sw t4, 0x64(sp) | *(var_64h) = t4;
0x000229c8 sw t3, 0x44(sp) | *(var_44h) = t3;
0x000229cc sw t2, 0x48(sp) | *(var_48h) = t2;
0x000229d0 sw t1, 0x4c(sp) | *(var_4ch) = t1;
0x000229d4 sw t0, 0x50(sp) | *(var_50h) = t0;
0x000229d8 sw a3, 0x54(sp) | *(var_54h) = a3;
0x000229dc sw a2, 0x58(sp) | *(var_58h) = a2;
0x000229e0 sw v1, 0x5c(sp) | *(var_5ch) = v1;
0x000229e4 sh v0, 0x60(sp) | *(var_60h) = v0;
| if (a0 == 0) {
0x000229e8 beqz a0, 0x22b5c | goto label_1;
| }
0x000229ec move s2, a1 | s2 = a1;
| if (a1 < 0) {
0x000229f0 bltz a1, 0x22b84 | goto label_2;
| }
0x000229f4 lw t9, -0x76f8(gp) | t9 = sym.imp.strlen;
0x000229f8 move s4, a0 | s4 = a0;
0x000229fc jalr t9 | t9 ();
0x00022a00 addiu v1, zero, 0x11 | v1 = 0x11;
0x00022a04 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != v1) {
0x00022a08 bne v0, v1, 0x22ad8 | goto label_3;
| }
0x00022a0c addiu v0, sp, 0x40 | v0 = sp + 0x40;
0x00022a10 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00022a14 addiu v0, sp, 0x3c | v0 = sp + 0x3c;
0x00022a18 sw v0, 0x18(sp) | *(var_18h) = v0;
0x00022a1c addiu v0, sp, 0x38 | v0 = sp + 0x38;
0x00022a20 lw t9, -0x755c(gp) | t9 = sym.imp.__isoc99_sscanf;
0x00022a24 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00022a28 addiu s0, sp, 0x2c | s0 = sp + 0x2c;
0x00022a2c addiu v0, sp, 0x34 | v0 = sp + 0x34;
0x00022a30 addiu s3, sp, 0x44 | s3 = sp + 0x44;
0x00022a34 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00022a38 addiu a3, sp, 0x30 | a3 = sp + 0x30;
0x00022a3c move a2, s0 | a2 = s0;
0x00022a40 move a1, s3 | a1 = s3;
0x00022a44 move a0, s4 | a0 = s4;
0x00022a48 jalr t9 | t9 ();
0x00022a4c addiu v1, zero, 6 | v1 = 6;
0x00022a50 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != v1) {
0x00022a54 bne v0, v1, 0x22ad8 | goto label_3;
| }
0x00022a58 lui a0, 0x8000 | a0 = 0x80000000;
0x00022a5c move a2, s0 | a2 = s0;
0x00022a60 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x00022a64 move v1, s2 | v1 = s2;
0x00022a68 addiu a0, a0, 0xff | a0 += 0xff;
0x00022a6c addiu a3, zero, -0x100 | a3 = -aav.0x00000100;
0x00022a70 lw v0, 0x14(a2) | v0 = *(var_40h);
| do {
0x00022a74 addu v0, v1, v0 | v0 = v1 + v0;
0x00022a78 move v1, v0 | v1 = v0;
| if (v0 < 0) {
0x00022a7c bgez v0, 0x22a84 |
0x00022a80 addiu v1, v0, 0xff | v1 = v0 + 0xff;
| }
0x00022a84 and v0, v0, a0 | v0 &= a0;
0x00022a88 sra v1, v1, 8 | v1 >>= 8;
| if (v0 < 0) {
0x00022a8c bgez v0, 0x22a9c |
0x00022a90 addiu v0, v0, -1 | v0 += -1;
0x00022a94 or v0, v0, a3 | v0 |= a3;
0x00022a98 addiu v0, v0, 1 | v0++;
| }
0x00022a9c sw v0, 0x14(a2) | *(var_40h) = v0;
| if (v1 == 0) {
0x00022aa0 beqz v1, 0x22b24 | goto label_4;
| }
0x00022aa4 addiu a2, a2, -4 | a2 += -4;
0x00022aa8 lw v0, 0x14(a2) | v0 = *(var_3ch);
0x00022aac bnel a2, a1, 0x22a74 |
| } while (a2 == a1);
0x00022ab0 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00022ab4 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00022ab8 move a3, s2 | a3 = s2;
0x00022abc move a2, s4 | a2 = s4;
| /* str.Warning:_incrementing:__s_by__d_would_generate_a_MAC_address__t_t_t_twith_invalid_AXIS_OUI_ */
0x00022ac0 addiu a1, a1, 0x26bc | a1 += 0x26bc;
0x00022ac4 addiu a0, zero, 2 | a0 = 2;
0x00022ac8 jalr t9 | t9 ();
0x00022acc lw gp, 0x20(sp) | gp = *(var_20h);
0x00022ad0 move v0, zero | v0 = 0;
0x00022ad4 b 0x22af8 | goto label_0;
| label_3:
0x00022ad8 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00022adc lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00022ae0 move a2, s4 | a2 = s4;
| /* str.Invalid_MAC_format:__s */
0x00022ae4 addiu a1, a1, 0x26a4 | a1 += 0x26a4;
0x00022ae8 addiu a0, zero, 2 | a0 = 2;
0x00022aec jalr t9 | t9 ();
0x00022af0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00022af4 move v0, zero | v0 = 0;
| do {
| label_0:
0x00022af8 lw a0, 0x64(sp) | a0 = *(var_64h);
0x00022afc lw v1, (s1) | v1 = *(s1);
0x00022b00 lw ra, 0x7c(sp) | ra = *(var_7ch);
| if (a0 != v1) {
0x00022b04 bne a0, v1, 0x22ba4 | goto label_5;
| }
0x00022b08 lw s4, 0x78(sp) | s4 = *(var_78h);
0x00022b0c lw s3, 0x74(sp) | s3 = *(var_74h);
0x00022b10 lw s2, 0x70(sp) | s2 = *(var_70h);
0x00022b14 lw s1, 0x6c(sp) | s1 = *(var_6ch);
0x00022b18 lw s0, 0x68(sp) | s0 = *(var_68h);
0x00022b1c addiu sp, sp, 0x80 |
0x00022b20 jr ra | return v0;
| label_4:
0x00022b24 lw v0, 0x40(sp) | v0 = *(var_40h);
0x00022b28 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00022b2c sw v0, 0x18(sp) | *(var_18h) = v0;
0x00022b30 lw v0, 0x3c(sp) | v0 = *(var_3ch);
0x00022b34 lw a3, 0x34(sp) | a3 = *(var_34h);
0x00022b38 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00022b3c lw v0, 0x38(sp) | v0 = *(var_38h);
0x00022b40 lw a2, 0x30(sp) | a2 = *(var_30h);
0x00022b44 lw a1, 0x2c(sp) | a1 = *(var_2ch);
0x00022b48 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00022b4c move a0, s3 | a0 = s3;
0x00022b50 jalr t9 | t9 ();
0x00022b54 lw gp, 0x20(sp) | gp = *(var_20h);
0x00022b58 b 0x22af8 |
| } while (1);
| label_1:
0x00022b5c lw v0, -0x7cfc(gp) | v0 = *(gp);
0x00022b60 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x00022b64 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* str.mac_str___NULL */
0x00022b68 addiu v0, v0, 0x266c | v0 += 0x266c;
0x00022b6c lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00022b70 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.increment_mac */
0x00022b74 addiu a3, a3, 0x2d90 | a3 += 0x2d90;
0x00022b78 addiu a2, zero, 0x21b | a2 = 0x21b;
| /* str.src_netd_device.c */
0x00022b7c addiu a1, a1, 0x230c | a1 += 0x230c;
0x00022b80 jalr t9 | t9 ();
| label_2:
0x00022b84 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00022b88 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.MAC_address_offset_cannot_be_negative_ */
0x00022b8c addiu a1, a1, 0x267c | a1 += 0x267c;
0x00022b90 addiu a0, zero, 2 | a0 = 2;
0x00022b94 jalr t9 | t9 ();
0x00022b98 lw gp, 0x20(sp) | gp = *(var_20h);
0x00022b9c move v0, zero | v0 = 0;
0x00022ba0 b 0x22af8 | goto label_0;
| label_5:
0x00022ba4 lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x00022ba8 jalr t9 | t9 ();
0x00022bac nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x263f8 */
| #include <stdint.h>
|
; (fcn) fcn.000263f8 () | void fcn_000263f8 () {
0x000263f8 lui gp, 7 |
0x000263fc addiu gp, gp, 0x1848 |
0x00026400 addu gp, gp, t9 | gp += t9;
0x00026404 addiu sp, sp, -0x70 |
0x00026408 sw s6, 0x60(sp) | *(var_60h) = s6;
0x0002640c lw s6, -0x773c(gp) | s6 = *((gp - 7631));
0x00026410 sw gp, 0x20(sp) | *(var_20h) = gp;
0x00026414 sw ra, 0x6c(sp) | *(var_6ch) = ra;
0x00026418 lw v0, (s6) | v0 = *(s6);
0x0002641c sw fp, 0x68(sp) | *(var_68h) = fp;
0x00026420 sw s7, 0x64(sp) | *(var_64h) = s7;
0x00026424 sw s5, 0x5c(sp) | *(var_5ch) = s5;
0x00026428 sw s4, 0x58(sp) | *(var_58h) = s4;
0x0002642c sw s3, 0x54(sp) | *(var_54h) = s3;
0x00026430 sw s2, 0x50(sp) | *(var_50h) = s2;
0x00026434 sw s1, 0x4c(sp) | *(var_4ch) = s1;
0x00026438 sw s0, 0x48(sp) | *(var_48h) = s0;
0x0002643c sw zero, 0x40(sp) | *(var_40h) = 0;
0x00026440 sw v0, 0x44(sp) | *(var_44h) = v0;
0x00026444 lw s0, -0x7d88(gp) | s0 = sym.netd_device_dot1x_client_get_wpa_enterprise_method;
| if (a0 == 0) {
0x00026448 beqz a0, 0x26b74 | goto label_11;
| }
0x0002644c lw t9, -0x7f1c(gp) | t9 = sym.netd_device_get_type;
0x00026450 sw s0, 0x30(sp) | *(var_30h) = s0;
0x00026454 move s1, a0 | s1 = a0;
0x00026458 bal 0x231a4 | sym_netd_device_get_type ();
0x0002645c lw gp, 0x20(sp) | gp = *(var_20h);
0x00026460 move a0, s1 | a0 = s1;
0x00026464 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00026468 move s7, v0 | s7 = v0;
0x0002646c bal 0x23124 | sym_netd_device_get_name ();
0x00026470 move t9, s0 | t9 = s0;
0x00026474 move a0, s1 | a0 = s1;
0x00026478 move s4, v0 | s4 = v0;
0x0002647c bal 0x28684 | sym_netd_device_dot1x_client_get_wpa_enterprise_method ();
0x00026480 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026484 addiu a0, zero, 0x80 | a0 = 0x80;
0x00026488 lw t9, -0x783c(gp) | t9 = sym.imp.g_malloc0;
0x0002648c lw fp, -0x7cfc(gp) | fp = *(gp);
0x00026490 move s5, v0 | s5 = v0;
0x00026494 jalr t9 | t9 ();
0x00026498 lw gp, 0x20(sp) | gp = *(var_20h);
| /* str._run_wpa_supplicant */
0x0002649c addiu a1, fp, 0x3888 | a1 = fp + 0x3888;
0x000264a0 move s0, v0 | s0 = v0;
0x000264a4 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000264a8 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* esilref: 'ctrl_interface=&s' */
0x000264ac addiu a0, a0, 0x389c | a0 += 0x389c;
0x000264b0 jalr t9 | t9 ();
0x000264b4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000264b8 sw v0, (s0) | *(s0) = v0;
0x000264bc lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000264c0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* esilref: 'ctrl_interface_group=0' */
0x000264c4 addiu a0, a0, 0x38b0 | a0 += 0x38b0;
0x000264c8 jalr t9 | t9 ();
0x000264cc addiu v1, zero, 2 | v1 = 2;
0x000264d0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000264d4 sw v0, 4(s0) | *((s0 + 1)) = v0;
| if (s5 == v1) {
0x000264d8 beq s5, v1, 0x26b68 | goto label_12;
| }
0x000264dc lw t9, -0x7db8(gp) | t9 = sym.netd_device_dot1x_client_get_eap_tls_eapol_version;
0x000264e0 move a0, s1 | a0 = s1;
| label_2:
0x000264e4 jalr t9 | t9 ();
0x000264e8 nop |
0x000264ec lw gp, 0x20(sp) | gp = *(var_20h);
0x000264f0 move a1, v0 | a1 = v0;
0x000264f4 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000264f8 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str.eapol_version_d */
0x000264fc addiu a0, a0, 0x38cc | a0 += 0x38cc;
0x00026500 jalr t9 | t9 ();
0x00026504 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026508 sw v0, 8(s0) | *((s0 + 2)) = v0;
0x0002650c addiu v0, zero, 3 | v0 = 3;
0x00026510 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| if (s7 == v0) {
0x00026514 beq s7, v0, 0x26824 | goto label_13;
| }
0x00026518 lw a0, -0x7cfc(gp) | a0 = *(gp);
| /* str.ap_scan0 */
0x0002651c addiu a0, a0, 0x3908 | a0 += 0x3908;
0x00026520 jalr t9 | t9 ();
0x00026524 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026528 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
0x0002652c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026530 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str.fast_reauth1 */
0x00026534 addiu a0, a0, 0x3914 | a0 += 0x3914;
0x00026538 jalr t9 | t9 ();
0x0002653c lw gp, 0x20(sp) | gp = *(var_20h);
0x00026540 sw v0, 0x10(s0) | *((s0 + 4)) = v0;
0x00026544 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026548 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._nnetwork */
0x0002654c addiu a0, a0, 0x38fc | a0 += 0x38fc;
0x00026550 jalr t9 | t9 ();
0x00026554 lw v1, 0x2c(s1) | v1 = *((s1 + 11));
0x00026558 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002655c sw v0, 0x14(s0) | *((s0 + 5)) = v0;
0x00026560 lw a1, 0x14(v1) | a1 = *((v1 + 5));
0x00026564 sltiu v0, a1, 0x584 | v0 = (a1 < 0x584) ? 1 : 0;
0x00026568 addiu v0, zero, 7 | v0 = 7;
| if (v0 != 0) {
0x0002656c bnez v0, 0x26e1c | goto label_14;
| }
0x00026570 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00026574 addiu v0, zero, 6 | v0 = 6;
0x00026578 addiu s3, zero, 0x1c | s3 = 0x1c;
0x0002657c addiu s2, zero, 0x18 | s2 = 0x18;
0x00026580 sw v0, 0x28(sp) | *(var_28h) = v0;
| label_3:
0x00026584 lw t9, -0x7d8c(gp) | t9 = sym.netd_device_dot1x_client_is_wpa_enterprise_enabled;
0x00026588 move a0, s1 | a0 = s1;
0x0002658c bal 0x28380 | sym_netd_device_dot1x_client_is_wpa_enterprise_enabled ();
0x00026590 addu s2, s0, s2 | s2 = s0 + s2;
0x00026594 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00026598 beqz v0, 0x26bac | goto label_15;
| }
0x0002659c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000265a0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._tkey_mgmtIEEE8021X */
0x000265a4 addiu a0, a0, 0x3994 | a0 += aav.0x00003994;
0x000265a8 jalr t9 | t9 ();
0x000265ac lw gp, 0x20(sp) | gp = *(var_20h);
0x000265b0 sw v0, (s2) | *(s2) = v0;
0x000265b4 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x000265b8 addu s3, s0, s3 | s3 = s0 + s3;
0x000265bc addiu s2, v0, 1 | s2 = v0 + 1;
0x000265c0 sll s2, s2, 2 | s2 <<= 2;
0x000265c4 addu v1, s0, s2 | v1 = s0 + s2;
0x000265c8 addiu v0, zero, 1 | v0 = 1;
0x000265cc sw v1, 0x28(sp) | *(var_28h) = v1;
| if (s5 == v0) {
0x000265d0 beq s5, v0, 0x269f8 | goto label_16;
| }
| label_0:
0x000265d4 addiu v0, zero, 2 | v0 = 2;
| if (s5 == v0) {
0x000265d8 beql s5, v0, 0x26cb8 | goto label_17;
| }
0x000265dc lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000265e0 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x000265e4 move a0, s1 | a0 = s1;
0x000265e8 bal 0x23124 | sym_netd_device_get_name ();
0x000265ec lw t9, 0x30(sp) | t9 = *(var_30h);
0x000265f0 move a0, s1 | a0 = s1;
0x000265f4 move s2, v0 | s2 = v0;
0x000265f8 jalr t9 | t9 ();
0x000265fc lw gp, 0x20(sp) | gp = *(var_20h);
0x00026600 move a3, v0 | a3 = v0;
0x00026604 move a2, s2 | a2 = s2;
0x00026608 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0002660c lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Unknown_WPA_Enterprise_method:__d */
0x00026610 addiu a1, a1, 0x3b10 | a1 += 0x3b10;
0x00026614 addiu a0, zero, 3 | a0 = 3;
0x00026618 bal 0x434d0 | sym_netd_log_esc ();
0x0002661c lw gp, 0x20(sp) | gp = *(var_20h);
| label_1:
0x00026620 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026624 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* esilref: '}
' */
0x00026628 addiu a0, a0, 0x3ba8 | a0 += 0x3ba8;
0x0002662c jalr t9 | t9 ();
0x00026630 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026634 sw v0, (s3) | *(s3) = v0;
0x00026638 lw v0, 0x28(sp) | v0 = *(var_28h);
0x0002663c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026640 lw t9, -0x77b4(gp) | t9 = sym.imp.g_strjoinv;
0x00026644 move a1, s0 | a1 = s0;
0x00026648 addiu a0, a0, 0x3bac | a0 += 0x3bac;
0x0002664c sw zero, (v0) | *(v0) = 0;
0x00026650 jalr t9 | t9 ();
0x00026654 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026658 move a2, s4 | a2 = s4;
0x0002665c addiu a1, fp, 0x3888 | a1 = fp + 0x3888;
0x00026660 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026664 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* esilref: '&s/&s.conf' */
0x00026668 addiu a0, a0, 0x3bb0 | a0 += 0x3bb0;
0x0002666c move s3, v0 | s3 = v0;
0x00026670 jalr t9 | t9 ();
0x00026674 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026678 move s2, v0 | s2 = v0;
0x0002667c addiu v0, zero, 1 | v0 = 1;
0x00026680 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00026684 lw t9, -0x7ae4(gp) | t9 = sym.netd_util_write_to_file_full;
0x00026688 addiu v0, zero, 0x120 | v0 = aav.0x00000120;
0x0002668c addiu s5, sp, 0x40 | s5 = sp + 0x40;
0x00026690 sw s5, 0x18(sp) | *(var_18h) = s5;
0x00026694 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00026698 move a3, zero | a3 = 0;
0x0002669c move a2, zero | a2 = 0;
0x000266a0 move a1, s3 | a1 = s3;
0x000266a4 move a0, s2 | a0 = s2;
0x000266a8 jalr t9 | t9 ();
0x000266ac lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000266b0 beqz v0, 0x26f4c | goto label_18;
| }
0x000266b4 addiu v0, zero, 3 | v0 = 3;
0x000266b8 lw v0, -0x7cfc(gp) | v0 = *(gp);
| if (s7 == v0) {
0x000266bc beq s7, v0, 0x26fa8 | goto label_19;
| }
0x000266c0 lw a2, -0x7cfc(gp) | a2 = *(gp);
0x000266c4 lw v1, -0x7cfc(gp) | v1 = *(gp);
| /* str.wired */
0x000266c8 addiu v0, v0, 0x387c | v0 += 0x387c;
0x000266cc addiu a2, a2, 0x3878 | a2 += 0x3878;
0x000266d0 move s7, zero | s7 = 0;
| /* esilref: '-d ' */
0x000266d4 addiu v1, v1, 0x3884 | v1 += 0x3884;
| label_6:
0x000266d8 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000266dc lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x000266e0 move a3, s4 | a3 = s4;
0x000266e4 move a1, s4 | a1 = s4;
0x000266e8 sw v1, 0x18(sp) | *(var_18h) = v1;
| /* str.ARG_i_s__s_P_run_wpa_supplicant__s.pid__c_s__D_s__B__s_s_n */
0x000266ec addiu a0, a0, 0x3bf4 | a0 += 0x3bf4;
0x000266f0 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000266f4 sw s2, 0x10(sp) | *(var_10h) = s2;
0x000266f8 jalr t9 | t9 ();
0x000266fc lw gp, 0x20(sp) | gp = *(var_20h);
0x00026700 move a0, s7 | a0 = s7;
0x00026704 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00026708 move s7, v0 | s7 = v0;
0x0002670c jalr t9 | t9 ();
0x00026710 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026714 move a1, s4 | a1 = s4;
0x00026718 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002671c lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._run_wpa_supplicant__s.cmd_arg */
0x00026720 addiu a0, a0, 0x3c30 | a0 += 0x3c30;
0x00026724 jalr t9 | t9 ();
0x00026728 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002672c move a3, s5 | a3 = s5;
0x00026730 addiu a2, zero, 1 | a2 = 1;
0x00026734 lw t9, -0x7ae0(gp) | t9 = sym.netd_util_write_to_file;
0x00026738 move a1, s7 | a1 = s7;
0x0002673c move a0, v0 | a0 = v0;
0x00026740 move s4, v0 | s4 = v0;
0x00026744 jalr t9 | t9 ();
0x00026748 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0002674c beqz v0, 0x26ffc | goto label_20;
| }
0x00026750 addiu s5, zero, 1 | s5 = 1;
| label_5:
0x00026754 lw a0, (s0) | a0 = *(s0);
0x00026758 lw t9, -0x78d0(gp) | t9 = sym.imp.g_strfreev;
| if (a0 == 0) {
0x0002675c beqz a0, 0x26780 | goto label_21;
| }
| label_9:
0x00026760 move s1, s0 | s1 = s0;
| do {
0x00026764 lw t9, -0x7dc8(gp) | t9 = sym.netd_util_clear_string;
0x00026768 addiu s1, s1, 4 | s1 += 4;
0x0002676c jalr t9 | t9 ();
0x00026770 lw a0, (s1) | a0 = *(s1);
0x00026774 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026778 bnez a0, 0x26764 |
| } while (a0 != 0);
0x0002677c lw t9, -0x78d0(gp) | t9 = sym.imp.g_strfreev;
| label_21:
0x00026780 move a0, s0 | a0 = s0;
0x00026784 jalr t9 | t9 ();
0x00026788 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s2 != 0) {
0x0002678c beqz s2, 0x267c0 |
0x00026790 lw t9, -0x7dc8(gp) | t9 = sym.netd_util_clear_string;
0x00026794 move a0, s3 | a0 = s3;
0x00026798 jalr t9 | t9 ();
0x0002679c lw gp, 0x20(sp) | gp = *(var_20h);
0x000267a0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000267a4 move a0, s3 | a0 = s3;
0x000267a8 jalr t9 | t9 ();
0x000267ac lw gp, 0x20(sp) | gp = *(var_20h);
0x000267b0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000267b4 move a0, s2 | a0 = s2;
0x000267b8 jalr t9 | t9 ();
0x000267bc lw gp, 0x20(sp) | gp = *(var_20h);
| }
0x000267c0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
| if (s4 != 0) {
0x000267c4 beqz s4, 0x267e4 |
0x000267c8 move a0, s7 | a0 = s7;
0x000267cc jalr t9 | t9 ();
0x000267d0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000267d4 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000267d8 move a0, s4 | a0 = s4;
0x000267dc jalr t9 | t9 ();
0x000267e0 lw gp, 0x20(sp) | gp = *(var_20h);
| }
| label_10:
0x000267e4 lw a0, 0x44(sp) | a0 = *(var_44h);
0x000267e8 lw v1, (s6) | v1 = *(s6);
0x000267ec move v0, s5 | v0 = s5;
| if (a0 != v1) {
0x000267f0 bne a0, v1, 0x27240 | goto label_22;
| }
0x000267f4 lw ra, 0x6c(sp) | ra = *(var_6ch);
0x000267f8 lw fp, 0x68(sp) | fp = *(var_68h);
0x000267fc lw s7, 0x64(sp) | s7 = *(var_64h);
0x00026800 lw s6, 0x60(sp) | s6 = *(var_60h);
0x00026804 lw s5, 0x5c(sp) | s5 = *(var_5ch);
0x00026808 lw s4, 0x58(sp) | s4 = *(var_58h);
0x0002680c lw s3, 0x54(sp) | s3 = *(var_54h);
0x00026810 lw s2, 0x50(sp) | s2 = *(var_50h);
0x00026814 lw s1, 0x4c(sp) | s1 = *(var_4ch);
0x00026818 lw s0, 0x48(sp) | s0 = *(var_48h);
0x0002681c addiu sp, sp, 0x70 |
0x00026820 jr ra | return v1;
| label_13:
0x00026824 lw a0, -0x7cfc(gp) | a0 = *(gp);
| /* str.ap_scan1 */
0x00026828 addiu a0, a0, 0x38e0 | a0 += 0x38e0;
0x0002682c jalr t9 | t9 ();
0x00026830 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026834 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
0x00026838 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002683c lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str.update_config1 */
0x00026840 addiu a0, a0, 0x38ec | a0 += 0x38ec;
0x00026844 jalr t9 | t9 ();
0x00026848 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002684c sw v0, 0x10(s0) | *((s0 + 4)) = v0;
0x00026850 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026854 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._nnetwork */
0x00026858 addiu a0, a0, 0x38fc | a0 += 0x38fc;
0x0002685c jalr t9 | t9 ();
0x00026860 lw v1, 0x2c(s1) | v1 = *((s1 + 11));
0x00026864 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026868 sw v0, 0x14(s0) | *((s0 + 5)) = v0;
0x0002686c lw a1, 0x14(v1) | a1 = *((v1 + 5));
0x00026870 sltiu v0, a1, 0x584 | v0 = (a1 < 0x584) ? 1 : 0;
0x00026874 addiu v0, zero, 9 | v0 = 9;
| if (v0 != 0) {
0x00026878 bnez v0, 0x2709c | goto label_23;
| }
0x0002687c sw v0, 0x28(sp) | *(var_28h) = v0;
0x00026880 addiu v0, zero, 6 | v0 = 6;
0x00026884 addiu a3, zero, 0x24 | a3 = 0x24;
0x00026888 addiu a2, zero, 0x20 | a2 = 0x20;
0x0002688c addiu s2, zero, 0x1c | s2 = 0x1c;
0x00026890 addiu s3, zero, 0x18 | s3 = 0x18;
0x00026894 sw v0, 0x2c(sp) | *(var_2ch) = v0;
| label_8:
0x00026898 lw t9, -0x7cec(gp) | t9 = sym.netd_device_wlan_station_get_essid;
0x0002689c sw a3, 0x3c(sp) | *(var_3ch) = a3;
0x000268a0 sw a2, 0x38(sp) | *(var_38h) = a2;
0x000268a4 move a0, s1 | a0 = s1;
0x000268a8 bal 0x3c830 | sym_netd_device_wlan_station_get_essid ();
0x000268ac lw gp, 0x20(sp) | gp = *(var_20h);
0x000268b0 move a1, v0 | a1 = v0;
0x000268b4 sw v0, 0x34(sp) | *(var_34h) = v0;
0x000268b8 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000268bc lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._tssid__s_ */
0x000268c0 addiu a0, a0, 0x3924 | a0 += 0x3924;
0x000268c4 jalr t9 | t9 ();
0x000268c8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000268cc lw v1, 0x34(sp) | v1 = *(var_34h);
0x000268d0 addu s3, s0, s3 | s3 = s0 + s3;
0x000268d4 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000268d8 move a0, v1 | a0 = v1;
0x000268dc sw v0, (s3) | *(s3) = v0;
0x000268e0 jalr t9 | t9 ();
0x000268e4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000268e8 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000268ec lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._tscan_ssid1 */
0x000268f0 addiu a0, a0, 0x3930 | a0 += 0x3930;
0x000268f4 jalr t9 | t9 ();
0x000268f8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000268fc addu v1, s0, s2 | v1 = s0 + s2;
0x00026900 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026904 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._tmode0 */
0x00026908 addiu a0, a0, 0x3940 | a0 += 0x3940;
0x0002690c sw v0, (v1) | *(v1) = v0;
0x00026910 jalr t9 | t9 ();
0x00026914 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026918 lw a2, 0x38(sp) | a2 = *(var_38h);
0x0002691c move a0, s1 | a0 = s1;
0x00026920 addu a2, s0, a2 | a2 = s0 + a2;
0x00026924 lw t9, -0x7d8c(gp) | t9 = sym.netd_device_dot1x_client_is_wpa_enterprise_enabled;
0x00026928 sw v0, (a2) | *(a2) = v0;
0x0002692c bal 0x28380 | sym_netd_device_dot1x_client_is_wpa_enterprise_enabled ();
0x00026930 lw a3, 0x3c(sp) | a3 = *(var_3ch);
0x00026934 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026938 addu s2, s0, a3 | s2 = s0 + a3;
| if (v0 == 0) {
0x0002693c beqz v0, 0x26b9c | goto label_24;
| }
0x00026940 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026944 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._tkey_mgmtWPA_EAP */
0x00026948 addiu a0, a0, 0x3948 | a0 += 0x3948;
0x0002694c jalr t9 | t9 ();
0x00026950 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026954 lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x00026958 sw v0, (s2) | *(s2) = v0;
0x0002695c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026960 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00026964 addiu s3, v1, 4 | s3 = v1 + 4;
| /* str._tauth_algOPEN */
0x00026968 addiu a0, a0, 0x395c | a0 += 0x395c;
0x0002696c jalr t9 | t9 ();
0x00026970 sll s3, s3, 2 | s3 <<= 2;
0x00026974 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026978 addu v1, s0, s3 | v1 = s0 + s3;
0x0002697c addiu s2, s3, 8 | s2 = s3 + 8;
0x00026980 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026984 sw v0, (v1) | *(v1) = v0;
0x00026988 addiu v1, s3, 4 | v1 = s3 + 4;
0x0002698c lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00026990 addu v1, s0, v1 | v1 = s0 + v1;
| /* str._tpairwiseCCMP_TKIP */
0x00026994 addiu a0, a0, 0x396c | a0 += 0x396c;
0x00026998 sw v1, 0x28(sp) | *(var_28h) = v1;
0x0002699c jalr t9 | t9 ();
0x000269a0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000269a4 lw v1, 0x28(sp) | v1 = *(var_28h);
0x000269a8 addu s2, s0, s2 | s2 = s0 + s2;
0x000269ac lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000269b0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x000269b4 sw v0, (v1) | *(v1) = v0;
| /* str._tgroupCCMP_TKIP */
0x000269b8 addiu a0, a0, 0x3980 | a0 += 0x3980;
0x000269bc jalr t9 | t9 ();
0x000269c0 lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x000269c4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000269c8 addiu v1, v1, 7 | v1 += 7;
0x000269cc sw v1, 0x2c(sp) | *(var_2ch) = v1;
0x000269d0 sw v0, (s2) | *(s2) = v0;
0x000269d4 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x000269d8 addiu s3, s3, 0xc | s3 += 0xc;
0x000269dc addiu s2, v0, 1 | s2 = v0 + 1;
0x000269e0 sll s2, s2, 2 | s2 <<= 2;
0x000269e4 addu v1, s0, s2 | v1 = s0 + s2;
0x000269e8 addiu v0, zero, 1 | v0 = 1;
0x000269ec addu s3, s0, s3 | s3 = s0 + s3;
0x000269f0 sw v1, 0x28(sp) | *(var_28h) = v1;
| if (s5 != v0) {
0x000269f4 bne s5, v0, 0x265d4 | goto label_0;
| }
| label_16:
0x000269f8 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000269fc lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._teapTLS */
0x00026a00 addiu a0, a0, 0x39a8 | a0 += 0x39a8;
0x00026a04 jalr t9 | t9 ();
0x00026a08 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026a0c move a0, s1 | a0 = s1;
0x00026a10 lw t9, -0x7dbc(gp) | t9 = sym.netd_device_dot1x_client_get_eap_tls_identity;
0x00026a14 sw v0, (s3) | *(s3) = v0;
0x00026a18 bal 0x27dd8 | sym_netd_device_dot1x_client_get_eap_tls_identity ();
0x00026a1c lw gp, 0x20(sp) | gp = *(var_20h);
0x00026a20 move a1, v0 | a1 = v0;
0x00026a24 move s3, v0 | s3 = v0;
0x00026a28 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026a2c lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._tidentity__s_ */
0x00026a30 addiu a0, a0, 0x39b4 | a0 += 0x39b4;
0x00026a34 jalr t9 | t9 ();
0x00026a38 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026a3c addu v1, s0, s2 | v1 = s0 + s2;
0x00026a40 move a0, s3 | a0 = s3;
0x00026a44 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00026a48 sw v0, (v1) | *(v1) = v0;
0x00026a4c jalr t9 | t9 ();
0x00026a50 addiu v0, zero, 3 | v0 = 3;
0x00026a54 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s7 == v0) {
0x00026a58 beq s7, v0, 0x26eac | goto label_25;
| }
0x00026a5c lw s3, -0x7cfc(gp) | s3 = *(gp);
0x00026a60 lw t9, -0x7944(gp) | t9 = sym.imp.g_file_test;
0x00026a64 addiu a1, zero, 0x10 | a1 = 0x10;
| /* str._etc_certs_netauth_client_802.1x_0_client.pem */
0x00026a68 addiu a0, s3, 0x3840 | a0 = s3 + 0x3840;
0x00026a6c jalr t9 | t9 ();
0x00026a70 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00026a74 beqz v0, 0x271b4 | goto label_26;
| }
0x00026a78 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00026a7c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026a80 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._etc_certs_netauth_client_802.1x */
0x00026a84 addiu a1, a1, 0x39f0 | a1 += 0x39f0;
| /* str._tca_path__s_0_ */
0x00026a88 addiu a0, a0, 0x3a4c | a0 += 0x3a4c;
0x00026a8c jalr t9 | t9 ();
0x00026a90 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026a94 addiu s5, s2, 4 | s5 = s2 + 4;
0x00026a98 addu s5, s0, s5 | s5 = s0 + s5;
0x00026a9c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026aa0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._etc_certs_netauth_client_802.1x_0_client.pem */
0x00026aa4 addiu a1, s3, 0x3840 | a1 = s3 + 0x3840;
| /* str._tprivate_key__s_ */
0x00026aa8 addiu a0, a0, 0x3a24 | a0 += 0x3a24;
0x00026aac sw v0, (s5) | *(s5) = v0;
0x00026ab0 jalr t9 | t9 ();
0x00026ab4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026ab8 addiu s5, s2, 8 | s5 = s2 + 8;
0x00026abc addu s5, s0, s5 | s5 = s0 + s5;
0x00026ac0 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026ac4 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._etc_certs_netauth_client_802.1x_0_client.pem */
0x00026ac8 addiu a1, s3, 0x3840 | a1 = s3 + 0x3840;
| /* str._tclient_cert__s_ */
0x00026acc addiu a0, a0, 0x3a38 | a0 += 0x3a38;
0x00026ad0 sw v0, (s5) | *(s5) = v0;
0x00026ad4 jalr t9 | t9 ();
0x00026ad8 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026adc addiu s5, s2, 0xc | s5 = s2 + 0xc;
0x00026ae0 addu s5, s0, s5 | s5 = s0 + s5;
0x00026ae4 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026ae8 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00026aec addiu s2, s2, 0x10 | s2 += 0x10;
0x00026af0 sw v0, (s5) | *(s5) = v0;
| /* str._teapol_flags0 */
0x00026af4 addiu a0, a0, 0x3a5c | a0 += 0x3a5c;
0x00026af8 jalr t9 | t9 ();
0x00026afc addu s3, s0, s2 | s3 = s0 + s2;
0x00026b00 lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x00026b04 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026b08 addiu s2, v1, 6 | s2 = v1 + 6;
0x00026b0c sw v0, (s3) | *(s3) = v0;
| label_4:
0x00026b10 lw t9, -0x7c8c(gp) | t9 = sym.netd_settings_get_main_value;
0x00026b14 addiu a0, zero, 0x1b | a0 = 0x1b;
0x00026b18 jalr t9 | t9 ();
0x00026b1c lw gp, 0x20(sp) | gp = *(var_20h);
0x00026b20 sll s2, s2, 2 | s2 <<= 2;
0x00026b24 move a0, v0 | a0 = v0;
0x00026b28 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00026b2c lw t9, -0x7558(gp) | t9 = *((gp - 7510));
| /* esilref: 'tpm' */
0x00026b30 addiu a1, a1, 0x3a6c | a1 += 0x3a6c;
0x00026b34 move s5, v0 | s5 = v0;
0x00026b38 jalr t9 | t9 ();
0x00026b3c addiu v1, s2, 4 | v1 = s2 + 4;
0x00026b40 addu v1, s0, v1 | v1 = s0 + v1;
0x00026b44 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026b48 addu s3, s0, s2 | s3 = s0 + s2;
0x00026b4c sw v1, 0x28(sp) | *(var_28h) = v1;
| if (v0 == 0) {
0x00026b50 beqz v0, 0x27050 | goto label_27;
| }
| label_7:
0x00026b54 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00026b58 move a0, s5 | a0 = s5;
0x00026b5c jalr t9 | t9 ();
0x00026b60 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026b64 b 0x26620 | goto label_1;
| label_12:
0x00026b68 move a0, s1 | a0 = s1;
0x00026b6c lw t9, -0x7dac(gp) | t9 = sym.netd_device_dot1x_client_get_eap_peap_mschapv2_eapol_version;
0x00026b70 b 0x264e4 | goto label_2;
| label_11:
0x00026b74 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x00026b78 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x00026b7c lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev' */
0x00026b80 addiu v0, v0, 0x38c8 | v0 += 0x38c8;
0x00026b84 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00026b88 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.populate_dot1x_client_config_files */
0x00026b8c addiu a3, a3, 0x44c8 | a3 += 0x44c8;
0x00026b90 addiu a2, zero, 0x1b2 | a2 = 0x1b2;
| /* str.src_netd_device_dot1x_client.c */
0x00026b94 addiu a1, a1, 0x3580 | a1 += 0x3580;
0x00026b98 jalr t9 | t9 ();
| label_24:
0x00026b9c lw v0, 0x28(sp) | v0 = *(var_28h);
0x00026ba0 addiu v0, v0, 1 | v0++;
0x00026ba4 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00026ba8 sll s3, v0, 2 | s3 = v0 << 2;
| label_15:
0x00026bac lw t9, -0x7d04(gp) | t9 = sym.netd_device_dot1x_client_is_wpa_personal_enabled;
0x00026bb0 move a0, s1 | a0 = s1;
0x00026bb4 bal 0x28268 | sym_netd_device_dot1x_client_is_wpa_personal_enabled ();
0x00026bb8 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026bbc addu s3, s0, s3 | s3 = s0 + s3;
0x00026bc0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| if (v0 == 0) {
0x00026bc4 beqz v0, 0x26e54 | goto label_28;
| }
0x00026bc8 lw a0, -0x7cfc(gp) | a0 = *(gp);
| /* str._tkey_mgmtWPA_PSK */
0x00026bcc addiu a0, a0, 0x3b38 | a0 += 0x3b38;
0x00026bd0 jalr t9 | t9 ();
0x00026bd4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026bd8 sw v0, (s2) | *(s2) = v0;
0x00026bdc lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026be0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._tprotoRSN_WPA */
0x00026be4 addiu a0, a0, 0x3b4c | a0 += 0x3b4c;
0x00026be8 jalr t9 | t9 ();
0x00026bec lw gp, 0x20(sp) | gp = *(var_20h);
0x00026bf0 lw v1, 0x28(sp) | v1 = *(var_28h);
0x00026bf4 sw v0, (s3) | *(s3) = v0;
0x00026bf8 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026bfc lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._tpairwiseCCMP_TKIP */
0x00026c00 addiu a0, a0, 0x396c | a0 += 0x396c;
0x00026c04 addiu s2, v1, 2 | s2 = v1 + 2;
0x00026c08 jalr t9 | t9 ();
0x00026c0c lw gp, 0x20(sp) | gp = *(var_20h);
0x00026c10 sll s2, s2, 2 | s2 <<= 2;
0x00026c14 addu v1, s0, s2 | v1 = s0 + s2;
0x00026c18 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026c1c lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00026c20 sw v0, (v1) | *(v1) = v0;
| /* str._tgroupCCMP_TKIP */
0x00026c24 addiu a0, a0, 0x3980 | a0 += 0x3980;
0x00026c28 jalr t9 | t9 ();
0x00026c2c lw gp, 0x20(sp) | gp = *(var_20h);
0x00026c30 addiu s3, s2, 4 | s3 = s2 + 4;
0x00026c34 addu s3, s0, s3 | s3 = s0 + s3;
0x00026c38 lw t9, -0x7d00(gp) | t9 = sym.netd_device_dot1x_client_get_wpa_personal_method;
0x00026c3c sw v0, (s3) | *(s3) = v0;
0x00026c40 move a0, s1 | a0 = s1;
0x00026c44 addiu s3, s2, 8 | s3 = s2 + 8;
0x00026c48 bal 0x28498 | sym_netd_device_dot1x_client_get_wpa_personal_method ();
0x00026c4c addiu v1, zero, 1 | v1 = 1;
0x00026c50 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026c54 addu s3, s0, s3 | s3 = s0 + s3;
| if (v0 == v1) {
0x00026c58 beq v0, v1, 0x270dc | goto label_29;
| }
0x00026c5c addiu v1, zero, 2 | v1 = 2;
0x00026c60 lw t9, -0x7dc0(gp) | t9 = sym.netd_device_dot1x_client_get_wpa_personal_key;
| if (v0 == v1) {
0x00026c64 beq v0, v1, 0x27148 | goto label_30;
| }
0x00026c68 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00026c6c move a0, s1 | a0 = s1;
0x00026c70 bal 0x23124 | sym_netd_device_get_name ();
0x00026c74 lw t9, 0x30(sp) | t9 = *(var_30h);
0x00026c78 move a0, s1 | a0 = s1;
0x00026c7c move s5, v0 | s5 = v0;
0x00026c80 jalr t9 | t9 ();
0x00026c84 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026c88 move a3, v0 | a3 = v0;
0x00026c8c move a2, s5 | a2 = s5;
0x00026c90 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00026c94 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Unknown_WPA_Personal_method:__d */
0x00026c98 addiu a1, a1, 0x3b70 | a1 += 0x3b70;
0x00026c9c addiu a0, zero, 3 | a0 = 3;
0x00026ca0 addiu s2, s2, 0xc | s2 += 0xc;
0x00026ca4 bal 0x434d0 | sym_netd_log_esc ();
0x00026ca8 addu v0, s0, s2 | v0 = s0 + s2;
0x00026cac lw gp, 0x20(sp) | gp = *(var_20h);
0x00026cb0 sw v0, 0x28(sp) | *(var_28h) = v0;
0x00026cb4 b 0x26620 | goto label_1;
| label_17:
0x00026cb8 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._teapPEAP */
0x00026cbc addiu a0, a0, 0x3a90 | a0 += 0x3a90;
0x00026cc0 jalr t9 | t9 ();
0x00026cc4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026cc8 move a0, s1 | a0 = s1;
0x00026ccc lw t9, -0x7db4(gp) | t9 = sym.netd_device_dot1x_client_get_eap_peap_mschapv2_identity;
0x00026cd0 sw v0, (s3) | *(s3) = v0;
0x00026cd4 bal 0x27f60 | sym_netd_device_dot1x_client_get_eap_peap_mschapv2_identity ();
0x00026cd8 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026cdc move a1, v0 | a1 = v0;
0x00026ce0 move s3, v0 | s3 = v0;
0x00026ce4 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026ce8 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._tidentity__s_ */
0x00026cec addiu a0, a0, 0x39b4 | a0 += 0x39b4;
0x00026cf0 jalr t9 | t9 ();
0x00026cf4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026cf8 addu v1, s0, s2 | v1 = s0 + s2;
0x00026cfc move a0, s3 | a0 = s3;
0x00026d00 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00026d04 sw v0, (v1) | *(v1) = v0;
0x00026d08 jalr t9 | t9 ();
0x00026d0c lw gp, 0x20(sp) | gp = *(var_20h);
0x00026d10 move a0, s1 | a0 = s1;
0x00026d14 addiu s3, s2, 4 | s3 = s2 + 4;
0x00026d18 lw t9, -0x7db0(gp) | t9 = sym.netd_device_dot1x_client_get_eap_peap_mschapv2_password;
0x00026d1c addu s3, s0, s3 | s3 = s0 + s3;
0x00026d20 bal 0x280e4 | sym_netd_device_dot1x_client_get_eap_peap_mschapv2_password ();
0x00026d24 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026d28 move a1, v0 | a1 = v0;
0x00026d2c sw v0, 0x28(sp) | *(var_28h) = v0;
0x00026d30 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026d34 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._tpassword__s_ */
0x00026d38 addiu a0, a0, 0x3a9c | a0 += 0x3a9c;
0x00026d3c jalr t9 | t9 ();
0x00026d40 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026d44 lw v1, 0x28(sp) | v1 = *(var_28h);
0x00026d48 sw v0, (s3) | *(s3) = v0;
0x00026d4c lw t9, -0x7dc8(gp) | t9 = sym.netd_util_clear_string;
0x00026d50 move a0, v1 | a0 = v1;
0x00026d54 jalr t9 | t9 ();
0x00026d58 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026d5c lw v1, 0x28(sp) | v1 = *(var_28h);
0x00026d60 addiu s3, s2, 8 | s3 = s2 + 8;
0x00026d64 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00026d68 move a0, v1 | a0 = v1;
0x00026d6c jalr t9 | t9 ();
0x00026d70 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026d74 addu s3, s0, s3 | s3 = s0 + s3;
0x00026d78 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00026d7c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026d80 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._etc_certs_netauth_client_802.1x */
0x00026d84 addiu a1, a1, 0x39f0 | a1 += 0x39f0;
| /* str._tca_path__s_2_ */
0x00026d88 addiu a0, a0, 0x3aac | a0 += 0x3aac;
0x00026d8c jalr t9 | t9 ();
0x00026d90 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026d94 move a0, s1 | a0 = s1;
0x00026d98 sw v0, (s3) | *(s3) = v0;
0x00026d9c lw t9, -0x7da4(gp) | t9 = sym.netd_device_dot1x_client_get_eap_peap_mschapv2_label;
0x00026da0 addiu s3, s2, 0xc | s3 = s2 + 0xc;
0x00026da4 bal 0x28150 | sym_netd_device_dot1x_client_get_eap_peap_mschapv2_label ();
0x00026da8 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026dac addu s3, s0, s3 | s3 = s0 + s3;
0x00026db0 move a0, s1 | a0 = s1;
0x00026db4 lw t9, -0x7da8(gp) | t9 = sym.netd_device_dot1x_client_get_eap_peap_mschapv2_version;
| if (v0 == s5) {
0x00026db8 beq v0, s5, 0x26e80 | goto label_31;
| }
0x00026dbc bal 0x27fcc | sym_netd_device_dot1x_client_get_eap_peap_mschapv2_version ();
0x00026dc0 nop |
0x00026dc4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026dc8 move a1, v0 | a1 = v0;
0x00026dcc lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026dd0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._tphase1_peapver_d_ */
0x00026dd4 addiu a0, a0, 0x3ae0 | a0 += 0x3ae0;
0x00026dd8 jalr t9 | t9 ();
0x00026ddc lw gp, 0x20(sp) | gp = *(var_20h);
0x00026de0 sw v0, (s3) | *(s3) = v0;
| do {
0x00026de4 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026de8 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00026dec addiu s5, s2, 0x10 | s5 = s2 + 0x10;
0x00026df0 addu s5, s0, s5 | s5 = s0 + s5;
| /* str._tphase2_authMSCHAPV2_ */
0x00026df4 addiu a0, a0, 0x3af8 | a0 += 0x3af8;
0x00026df8 jalr t9 | t9 ();
0x00026dfc addiu s3, s2, 0x14 | s3 = s2 + 0x14;
0x00026e00 addiu s2, s2, 0x18 | s2 += 0x18;
0x00026e04 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026e08 sw v0, (s5) | *(s5) = v0;
0x00026e0c addu v0, s0, s2 | v0 = s0 + s2;
0x00026e10 addu s3, s0, s3 | s3 = s0 + s3;
0x00026e14 sw v0, 0x28(sp) | *(var_28h) = v0;
0x00026e18 b 0x26620 | goto label_1;
| label_14:
0x00026e1c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026e20 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00026e24 addiu a1, a1, -0xe | a1 += -0xe;
| /* str._tfragment_size_d */
0x00026e28 addiu a0, a0, 0x3c84 | a0 += 0x3c84;
0x00026e2c jalr t9 | t9 ();
0x00026e30 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026e34 sw v0, 0x18(s0) | *((s0 + 6)) = v0;
0x00026e38 addiu v0, zero, 8 | v0 = 8;
0x00026e3c sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00026e40 addiu v0, zero, 7 | v0 = 7;
0x00026e44 addiu s3, zero, 0x20 | s3 = 0x20;
0x00026e48 addiu s2, zero, 0x1c | s2 = 0x1c;
0x00026e4c sw v0, 0x28(sp) | *(var_28h) = v0;
0x00026e50 b 0x26584 | goto label_3;
| label_28:
0x00026e54 lw a0, -0x7cfc(gp) | a0 = *(gp);
| /* str._tkey_mgmtNONE */
0x00026e58 addiu a0, a0, 0x3b98 | a0 += 0x3b98;
0x00026e5c jalr t9 | t9 ();
0x00026e60 lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x00026e64 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026e68 addiu v1, v1, 1 | v1++;
0x00026e6c sll v1, v1, 2 | v1 <<= 2;
0x00026e70 sw v0, (s2) | *(s2) = v0;
0x00026e74 addu v0, s0, v1 | v0 = s0 + v1;
0x00026e78 sw v0, 0x28(sp) | *(var_28h) = v0;
0x00026e7c b 0x26620 | goto label_1;
| label_31:
0x00026e80 bal 0x27fcc | sym_netd_device_dot1x_client_get_eap_peap_mschapv2_version ();
0x00026e84 nop |
0x00026e88 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026e8c move a1, v0 | a1 = v0;
0x00026e90 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026e94 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._tphase1_peapver_d_peaplabel1_ */
0x00026e98 addiu a0, a0, 0x3abc | a0 += 0x3abc;
0x00026e9c jalr t9 | t9 ();
0x00026ea0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026ea4 sw v0, (s3) | *(s3) = v0;
0x00026ea8 b 0x26de4 |
| } while (1);
| label_25:
0x00026eac lw s3, -0x7cfc(gp) | s3 = *(gp);
0x00026eb0 lw t9, -0x7944(gp) | t9 = sym.imp.g_file_test;
0x00026eb4 addiu a1, zero, 0x10 | a1 = 0x10;
| /* str._etc_certs_netauth_client_802.1x_1_client.pem */
0x00026eb8 addiu a0, s3, 0x3810 | a0 = s3 + 0x3810;
0x00026ebc jalr t9 | t9 ();
0x00026ec0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00026ec4 beqz v0, 0x27208 | goto label_32;
| }
0x00026ec8 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00026ecc lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026ed0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._etc_certs_netauth_client_802.1x */
0x00026ed4 addiu a1, a1, 0x39f0 | a1 += 0x39f0;
| /* str._tca_path__s_1_ */
0x00026ed8 addiu a0, a0, 0x3a14 | a0 += 0x3a14;
0x00026edc jalr t9 | t9 ();
0x00026ee0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026ee4 addiu s5, s2, 4 | s5 = s2 + 4;
0x00026ee8 addu s5, s0, s5 | s5 = s0 + s5;
0x00026eec lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026ef0 addiu v1, s2, 8 | v1 = s2 + 8;
0x00026ef4 addu v1, s0, v1 | v1 = s0 + v1;
0x00026ef8 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._etc_certs_netauth_client_802.1x_1_client.pem */
0x00026efc addiu a1, s3, 0x3810 | a1 = s3 + 0x3810;
| /* str._tprivate_key__s_ */
0x00026f00 addiu a0, a0, 0x3a24 | a0 += 0x3a24;
0x00026f04 sw v0, (s5) | *(s5) = v0;
0x00026f08 sw v1, 0x28(sp) | *(var_28h) = v1;
0x00026f0c jalr t9 | t9 ();
0x00026f10 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026f14 lw v1, 0x28(sp) | v1 = *(var_28h);
0x00026f18 addiu s2, s2, 0xc | s2 += 0xc;
0x00026f1c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00026f20 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00026f24 sw v0, (v1) | *(v1) = v0;
| /* str._etc_certs_netauth_client_802.1x_1_client.pem */
0x00026f28 addiu a1, s3, 0x3810 | a1 = s3 + 0x3810;
| /* str._tclient_cert__s_ */
0x00026f2c addiu a0, a0, 0x3a38 | a0 += 0x3a38;
0x00026f30 jalr t9 | t9 ();
0x00026f34 addu s5, s0, s2 | s5 = s0 + s2;
0x00026f38 lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x00026f3c lw gp, 0x20(sp) | gp = *(var_20h);
0x00026f40 addiu s2, v1, 5 | s2 = v1 + 5;
0x00026f44 sw v0, (s5) | *(s5) = v0;
0x00026f48 b 0x26b10 | goto label_4;
| label_18:
0x00026f4c lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00026f50 move a0, s1 | a0 = s1;
0x00026f54 bal 0x23124 | sym_netd_device_get_name ();
0x00026f58 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026f5c lw v1, 0x40(sp) | v1 = *(var_40h);
0x00026f60 move a3, zero | a3 = 0;
0x00026f64 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00026f68 lw v1, 8(v1) | v1 = *((v1 + 2));
0x00026f6c lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00026f70 move a2, v0 | a2 = v0;
| /* str.__s__Failed_to_write_wpa_supplicant_conf:__s__s */
0x00026f74 addiu a1, a1, 0x3bbc | a1 += 0x3bbc;
0x00026f78 addiu a0, zero, 3 | a0 = 3;
0x00026f7c sw v1, 0x10(sp) | *(var_10h) = v1;
0x00026f80 bal 0x434d0 | sym_netd_log_esc ();
0x00026f84 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026f88 lw a0, 0x40(sp) | a0 = *(var_40h);
0x00026f8c move s4, zero | s4 = 0;
0x00026f90 lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x00026f94 move s7, zero | s7 = 0;
0x00026f98 jalr t9 | t9 ();
0x00026f9c move s5, zero | s5 = 0;
0x00026fa0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026fa4 b 0x26754 | goto label_5;
| label_19:
0x00026fa8 lw t9, -0x7b90(gp) | t9 = sym.netd_device_part_of_bridge;
0x00026fac move a0, s1 | a0 = s1;
0x00026fb0 bal 0x238ac | sym_netd_device_part_of_bridge ();
0x00026fb4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00026fb8 move a0, v0 | a0 = v0;
0x00026fbc lw t9, -0x7ec0(gp) | t9 = sym.netd_util_is_empty;
0x00026fc0 move fp, v0 | fp = v0;
0x00026fc4 jalr t9 | t9 ();
0x00026fc8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00026fcc beqz v0, 0x2716c | goto label_33;
| }
0x00026fd0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00026fd4 move a0, fp | a0 = fp;
0x00026fd8 jalr t9 | t9 ();
0x00026fdc lw gp, 0x20(sp) | gp = *(var_20h);
0x00026fe0 move s7, zero | s7 = 0;
0x00026fe4 lw a2, -0x7cfc(gp) | a2 = *(gp);
0x00026fe8 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x00026fec addiu a2, a2, 0x3878 | a2 += 0x3878;
| /* str.nl80211 */
0x00026ff0 addiu v0, v0, 0x3870 | v0 += 0x3870;
0x00026ff4 move v1, a2 | v1 = a2;
0x00026ff8 b 0x266d8 | goto label_6;
| label_20:
0x00026ffc lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00027000 move a0, s1 | a0 = s1;
0x00027004 bal 0x23124 | sym_netd_device_get_name ();
0x00027008 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002700c lw v1, 0x40(sp) | v1 = *(var_40h);
0x00027010 move a3, s4 | a3 = s4;
0x00027014 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00027018 lw v1, 8(v1) | v1 = *((v1 + 2));
0x0002701c lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00027020 move a2, v0 | a2 = v0;
| /* str.__s__Failed_to_write_wpa_supplicant_args___s___s */
0x00027024 addiu a1, a1, 0x3c50 | a1 += 0x3c50;
0x00027028 addiu a0, zero, 3 | a0 = 3;
0x0002702c sw v1, 0x10(sp) | *(var_10h) = v1;
0x00027030 bal 0x434d0 | sym_netd_log_esc ();
0x00027034 lw gp, 0x20(sp) | gp = *(var_20h);
0x00027038 lw a0, 0x40(sp) | a0 = *(var_40h);
0x0002703c lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x00027040 move s5, zero | s5 = 0;
0x00027044 jalr t9 | t9 ();
0x00027048 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002704c b 0x26754 | goto label_5;
| label_27:
0x00027050 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00027054 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._tengine1 */
0x00027058 addiu a0, a0, 0x3a70 | a0 += 0x3a70;
0x0002705c jalr t9 | t9 ();
0x00027060 lw gp, 0x20(sp) | gp = *(var_20h);
0x00027064 sw v0, (s3) | *(s3) = v0;
0x00027068 addiu s3, s2, 8 | s3 = s2 + 8;
0x0002706c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00027070 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._tengine_id_tpm2_ */
0x00027074 addiu a0, a0, 0x3a7c | a0 += 0x3a7c;
0x00027078 jalr t9 | t9 ();
0x0002707c lw v1, 0x28(sp) | v1 = *(var_28h);
0x00027080 addiu s2, s2, 0xc | s2 += 0xc;
0x00027084 lw gp, 0x20(sp) | gp = *(var_20h);
0x00027088 sw v0, (v1) | *(v1) = v0;
0x0002708c addu v0, s0, s2 | v0 = s0 + s2;
0x00027090 addu s3, s0, s3 | s3 = s0 + s3;
0x00027094 sw v0, 0x28(sp) | *(var_28h) = v0;
0x00027098 b 0x26b54 | goto label_7;
| label_23:
0x0002709c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000270a0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x000270a4 addiu a1, a1, -0xe | a1 += -0xe;
| /* str._tfragment_size_d */
0x000270a8 addiu a0, a0, 0x3c84 | a0 += 0x3c84;
0x000270ac jalr t9 | t9 ();
0x000270b0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000270b4 sw v0, 0x18(s0) | *((s0 + 6)) = v0;
0x000270b8 addiu v0, zero, 0xa | v0 = 0xa;
0x000270bc sw v0, 0x28(sp) | *(var_28h) = v0;
0x000270c0 addiu v0, zero, 7 | v0 = 7;
0x000270c4 addiu a3, zero, 0x28 | a3 = 0x28;
0x000270c8 addiu a2, zero, 0x24 | a2 = 0x24;
0x000270cc addiu s2, zero, 0x20 | s2 = 0x20;
0x000270d0 addiu s3, zero, 0x1c | s3 = 0x1c;
0x000270d4 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x000270d8 b 0x26898 | goto label_8;
| label_29:
0x000270dc lw t9, -0x7dc4(gp) | t9 = sym.netd_device_dot1x_client_get_wpa_personal_passphrase;
0x000270e0 move a0, s1 | a0 = s1;
0x000270e4 bal 0x285ac | sym_netd_device_dot1x_client_get_wpa_personal_passphrase ();
0x000270e8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000270ec move s5, v0 | s5 = v0;
0x000270f0 move a1, v0 | a1 = v0;
0x000270f4 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000270f8 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._tpsk__s_ */
0x000270fc addiu a0, a0, 0x3b5c | a0 += 0x3b5c;
| do {
0x00027100 jalr t9 | t9 ();
0x00027104 nop |
0x00027108 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002710c sw v0, (s3) | *(s3) = v0;
0x00027110 move a0, s5 | a0 = s5;
0x00027114 lw t9, -0x7dc8(gp) | t9 = sym.netd_util_clear_string;
0x00027118 addiu s3, s2, 0xc | s3 = s2 + 0xc;
0x0002711c jalr t9 | t9 ();
0x00027120 lw gp, 0x20(sp) | gp = *(var_20h);
0x00027124 move a0, s5 | a0 = s5;
0x00027128 addiu s2, s2, 0x10 | s2 += 0x10;
0x0002712c lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00027130 addu s3, s0, s3 | s3 = s0 + s3;
0x00027134 jalr t9 | t9 ();
0x00027138 addu v0, s0, s2 | v0 = s0 + s2;
0x0002713c lw gp, 0x20(sp) | gp = *(var_20h);
0x00027140 sw v0, 0x28(sp) | *(var_28h) = v0;
0x00027144 b 0x26620 | goto label_1;
| label_30:
0x00027148 move a0, s1 | a0 = s1;
0x0002714c bal 0x28618 | sym_netd_device_dot1x_client_get_wpa_personal_key ();
0x00027150 lw gp, 0x20(sp) | gp = *(var_20h);
0x00027154 move s5, v0 | s5 = v0;
0x00027158 move a1, v0 | a1 = v0;
0x0002715c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00027160 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._tpsk_s */
0x00027164 addiu a0, a0, 0x3b68 | a0 += 0x3b68;
0x00027168 b 0x27100 |
| } while (1);
| label_33:
0x0002716c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00027170 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00027174 move a1, fp | a1 = fp;
| /* str._b_s_ */
0x00027178 addiu a0, a0, 0x3bec | a0 += 0x3bec;
0x0002717c jalr t9 | t9 ();
0x00027180 lw gp, 0x20(sp) | gp = *(var_20h);
0x00027184 move s7, v0 | s7 = v0;
0x00027188 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002718c move a0, fp | a0 = fp;
0x00027190 jalr t9 | t9 ();
0x00027194 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s7 == 0) {
0x00027198 beqz s7, 0x27210 | goto label_34;
| }
0x0002719c lw v0, -0x7cfc(gp) | v0 = *(gp);
0x000271a0 lw v1, -0x7cfc(gp) | v1 = *(gp);
0x000271a4 move a2, s7 | a2 = s7;
| /* str.nl80211 */
0x000271a8 addiu v0, v0, 0x3870 | v0 += 0x3870;
0x000271ac addiu v1, v1, 0x3878 | v1 += 0x3878;
0x000271b0 b 0x266d8 | goto label_6;
| /* str._etc_certs_netauth_client_802.1x_0_client.pem */
| label_26:
0x000271b4 addiu s3, s3, 0x3840 | s3 += 0x3840;
| do {
0x000271b8 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x000271bc move a0, s1 | a0 = s1;
0x000271c0 bal 0x23124 | sym_netd_device_get_name ();
0x000271c4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000271c8 addiu a0, zero, 3 | a0 = 3;
0x000271cc move a3, s3 | a3 = s3;
0x000271d0 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x000271d4 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x000271d8 move a2, v0 | a2 = v0;
| /* str.__s__Missing_802.1X_certificate_file__s */
0x000271dc addiu a1, a1, 0x39c4 | a1 += 0x39c4;
0x000271e0 bal 0x434d0 | sym_netd_log_esc ();
0x000271e4 lw a0, (s0) | a0 = *(s0);
0x000271e8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (a0 == 0) {
0x000271ec beqz a0, 0x27228 | goto label_35;
| }
0x000271f0 move s2, zero | s2 = 0;
0x000271f4 move s3, zero | s3 = 0;
0x000271f8 move s4, zero | s4 = 0;
0x000271fc move s7, zero | s7 = 0;
0x00027200 move s5, zero | s5 = 0;
0x00027204 b 0x26760 | goto label_9;
| /* str._etc_certs_netauth_client_802.1x_1_client.pem */
| label_32:
0x00027208 addiu s3, s3, 0x3810 | s3 += 0x3810;
0x0002720c b 0x271b8 |
| } while (1);
| label_34:
0x00027210 lw a2, -0x7cfc(gp) | a2 = *(gp);
0x00027214 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x00027218 addiu a2, a2, 0x3878 | a2 += 0x3878;
| /* str.nl80211 */
0x0002721c addiu v0, v0, 0x3870 | v0 += 0x3870;
0x00027220 move v1, a2 | v1 = a2;
0x00027224 b 0x266d8 | goto label_6;
| label_35:
0x00027228 lw t9, -0x78d0(gp) | t9 = sym.imp.g_strfreev;
0x0002722c move a0, s0 | a0 = s0;
0x00027230 jalr t9 | t9 ();
0x00027234 move s5, zero | s5 = 0;
0x00027238 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002723c b 0x267e4 | goto label_10;
| label_22:
0x00027240 lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x00027244 jalr t9 | t9 ();
0x00027248 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x2b858 */
| #include <stdint.h>
|
; (fcn) fcn.0002b858 () | void fcn_0002b858 () {
0x0002b858 lui gp, 7 |
0x0002b85c addiu gp, gp, -0x3c18 |
0x0002b860 addu gp, gp, t9 | gp += t9;
0x0002b864 addiu sp, sp, -0x30 |
0x0002b868 sw gp, 0x18(sp) | *(var_18h_4) = gp;
0x0002b86c sw ra, 0x2c(sp) | *(var_2ch_3) = ra;
0x0002b870 sw s1, 0x28(sp) | *(var_28h_3) = s1;
0x0002b874 sw s0, 0x24(sp) | *(var_24h_5) = s0;
0x0002b878 lw v0, -0x7cfc(gp) | v0 = *(gp);
| if (a0 == 0) {
0x0002b87c beqz a0, 0x2b8dc | goto label_3;
| }
0x0002b880 lw v0, 0x38(a0) | v0 = *((a0 + 14));
| if (v0 == 0) {
0x0002b884 beql v0, zero, 0x2b900 | goto label_4;
| }
0x0002b888 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x0002b88c move s1, a1 | s1 = a1;
| if (a1 == 0) {
0x0002b890 beqz a1, 0x2b928 | goto label_5;
| }
0x0002b894 lw s0, 0x10(v0) | s0 = *((v0 + 4));
0x0002b898 lw ra, 0x2c(sp) | ra = *(var_2ch_3);
| if (s0 == 0) {
0x0002b89c beqz s0, 0x2b8cc | goto label_6;
| }
0x0002b8a0 lw v0, (s0) | v0 = *(s0);
| do {
0x0002b8a4 lw t9, 8(v0) | t9 = *((v0 + 2));
| if (t9 != 0) {
0x0002b8a8 beql t9, zero, 0x2b8c0 |
0x0002b8ac lw s0, 4(s0) | s0 = *((s0 + 1));
0x0002b8b0 lw a1, 0x10(v0) | a1 = *((v0 + 4));
0x0002b8b4 move a0, s1 | a0 = s1;
0x0002b8b8 jalr t9 | t9 ();
0x0002b8bc lw s0, 4(s0) | s0 = *((s0 + 1));
| }
0x0002b8c0 lw v0, (s0) | v0 = *(s0);
0x0002b8c4 bnel s0, zero, 0x2b8a4 |
| } while (s0 == 0);
0x0002b8c8 lw ra, 0x2c(sp) | ra = *(var_2ch_3);
| label_6:
0x0002b8cc lw s1, 0x28(sp) | s1 = *(var_28h_3);
0x0002b8d0 lw s0, 0x24(sp) | s0 = *(var_24h_5);
0x0002b8d4 addiu sp, sp, 0x30 |
0x0002b8d8 jr ra | return v0;
| label_3:
0x0002b8dc lw a3, -0x7cfc(gp) | a3 = *(gp);
0x0002b8e0 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev' */
0x0002b8e4 addiu v0, v0, 0x4ff8 | v0 += 0x4ff8;
0x0002b8e8 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0002b8ec sw v0, 0x10(sp) | *(var_10h_5) = v0;
| /* str.signal_updated_v4_address */
0x0002b8f0 addiu a3, a3, 0x5b08 | a3 += 0x5b08;
0x0002b8f4 addiu a2, zero, 0xd5 | a2 = 0xd5;
| /* str.src_netd_device_ipv4.c */
0x0002b8f8 addiu a1, a1, 0x4fe0 | a1 += 0x4fe0;
0x0002b8fc jalr t9 | t9 ();
| label_4:
0x0002b900 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x0002b904 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0002b908 addiu v0, v0, 0x4ffc | v0 += 0x4ffc;
0x0002b90c lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0002b910 sw v0, 0x10(sp) | *(var_10h_5) = v0;
| /* str.signal_updated_v4_address */
0x0002b914 addiu a3, a3, 0x5b08 | a3 += 0x5b08;
0x0002b918 addiu a2, zero, 0xd6 | a2 = 0xd6;
| /* str.src_netd_device_ipv4.c */
0x0002b91c addiu a1, a1, 0x4fe0 | a1 += 0x4fe0;
0x0002b920 move a0, zero | a0 = 0;
0x0002b924 jalr t9 | t9 ();
| label_5:
0x0002b928 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x0002b92c lw a3, -0x7cfc(gp) | a3 = *(gp);
0x0002b930 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'addr' */
0x0002b934 addiu v0, v0, 0x5068 | v0 += 0x5068;
0x0002b938 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0002b93c sw v0, 0x10(sp) | *(var_10h_5) = v0;
| /* str.signal_updated_v4_address */
0x0002b940 addiu a3, a3, 0x5b08 | a3 += 0x5b08;
0x0002b944 addiu a2, zero, 0xd7 | a2 = 0xd7;
| /* str.src_netd_device_ipv4.c */
0x0002b948 addiu a1, a1, 0x4fe0 | a1 += 0x4fe0;
0x0002b94c move a0, zero | a0 = 0;
0x0002b950 jalr t9 | t9 ();
0x0002b954 lui gp, 7 |
0x0002b958 addiu gp, gp, -0x3d14 |
0x0002b95c addu gp, gp, t9 | gp += t9;
0x0002b960 addiu sp, sp, -0x58 |
0x0002b964 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002b968 sw s2, 0x44(sp) | *(var_44h) = s2;
0x0002b96c lw s2, -0x773c(gp) | s2 = *((gp - 7631));
0x0002b970 lw t9, -0x768c(gp) | t9 = sym.imp.g_variant_type_checked_;
0x0002b974 sw ra, 0x54(sp) | *(var_54h) = ra;
0x0002b978 lw v0, (s2) | v0 = *(s2);
0x0002b97c sw gp, 0x18(sp) | *(var_18h_5) = gp;
0x0002b980 sw s5, 0x50(sp) | *(var_50h) = s5;
0x0002b984 sw s4, 0x4c(sp) | *(var_4ch) = s4;
0x0002b988 sw s3, 0x48(sp) | *(var_48h) = s3;
0x0002b98c sw s1, 0x40(sp) | *(var_40h) = s1;
0x0002b990 sw s0, 0x3c(sp) | *(var_3ch) = s0;
| /* esilref: 'as' */
0x0002b994 addiu a0, a0, 0x5070 | a0 += 0x5070;
0x0002b998 sw v0, 0x34(sp) | *(var_34h) = v0;
0x0002b99c sw zero, 0x24(sp) | *(var_24h_6) = 0;
0x0002b9a0 sw zero, 0x28(sp) | *(var_28h_4) = 0;
0x0002b9a4 sw zero, 0x2c(sp) | *(var_2ch_4) = 0;
0x0002b9a8 jalr t9 | t9 ();
0x0002b9ac nop |
0x0002b9b0 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002b9b4 lw t9, -0x77a0(gp) | t9 = sym.imp.g_variant_builder_new;
0x0002b9b8 move a0, v0 | a0 = v0;
0x0002b9bc jalr t9 | t9 ();
0x0002b9c0 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002b9c4 move a0, v0 | a0 = v0;
0x0002b9c8 move s1, v0 | s1 = v0;
0x0002b9cc lw s0, -0x7cfc(gp) | s0 = *(gp);
0x0002b9d0 lw s5, -0x7cfc(gp) | s5 = *(gp);
0x0002b9d4 lw t9, -0x7514(gp) | t9 = sym.imp.g_variant_builder_add;
| /* str.ProdType */
0x0002b9d8 addiu a2, s5, 0x5074 | a2 = s5 + 0x5074;
0x0002b9dc lw s4, -0x7cfc(gp) | s4 = *(gp);
0x0002b9e0 addiu a1, s0, 0x5080 | a1 = s0 + 0x5080;
0x0002b9e4 jalr t9 | t9 ();
0x0002b9e8 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002b9ec move a0, s1 | a0 = s1;
| /* str.ProdNbr */
0x0002b9f0 addiu a2, s4, 0x5084 | a2 = s4 + 0x5084;
0x0002b9f4 lw t9, -0x7514(gp) | t9 = sym.imp.g_variant_builder_add;
0x0002b9f8 lw s3, -0x7cfc(gp) | s3 = *(gp);
0x0002b9fc addiu a1, s0, 0x5080 | a1 = s0 + 0x5080;
0x0002ba00 jalr t9 | t9 ();
0x0002ba04 lw gp, 0x18(sp) | gp = *(var_18h_5);
| /* str.Version */
0x0002ba08 addiu a2, s3, 0x508c | a2 = s3 + 0x508c;
0x0002ba0c addiu a1, s0, 0x5080 | a1 = s0 + 0x5080;
0x0002ba10 lw t9, -0x7514(gp) | t9 = sym.imp.g_variant_builder_add;
0x0002ba14 move a0, s1 | a0 = s1;
0x0002ba18 jalr t9 | t9 ();
0x0002ba1c lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002ba20 lw t9, -0x7714(gp) | t9 = sym.imp.g_variant_builder_end;
0x0002ba24 move a0, s1 | a0 = s1;
0x0002ba28 jalr t9 | t9 ();
0x0002ba2c lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002ba30 move a0, s1 | a0 = s1;
0x0002ba34 lw t9, -0x7920(gp) | t9 = sym.imp.g_variant_builder_unref;
0x0002ba38 move s1, v0 | s1 = v0;
0x0002ba3c jalr t9 | t9 ();
0x0002ba40 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002ba44 move a1, s1 | a1 = s1;
0x0002ba48 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002ba4c lw t9, -0x7930(gp) | t9 = sym.imp.g_variant_new;
| /* str.__as_ */
0x0002ba50 addiu a0, a0, 0x5094 | a0 += 0x5094;
0x0002ba54 jalr t9 | t9 ();
0x0002ba58 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002ba5c sw v0, 0x10(sp) | *(var_10h_6) = v0;
0x0002ba60 lw a2, -0x7cfc(gp) | a2 = *(gp);
0x0002ba64 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x0002ba68 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0002ba6c lw t9, -0x7ab8(gp) | t9 = sym.netd_dbus_call_method_sync;
| /* str.com.axis.BasicDeviceInfo1 */
0x0002ba70 addiu a2, a2, 0x50a0 | a2 += 0x50a0;
| /* esilref: 'Get' */
0x0002ba74 addiu a3, a3, 0x509c | a3 += 0x509c;
| /* str._com_axis_BasicDeviceInfo1 */
0x0002ba78 addiu a1, a1, 0x50bc | a1 += 0x50bc;
0x0002ba7c move a0, a2 | a0 = a2;
0x0002ba80 bal 0xc094 | sym_netd_dbus_call_method_sync ();
0x0002ba84 lw gp, 0x18(sp) | gp = *(var_18h_5);
| if (v0 == 0) {
0x0002ba88 beqz v0, 0x2bc2c | goto label_7;
| }
0x0002ba8c lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0002ba90 lw t9, -0x7720(gp) | t9 = sym.imp.g_variant_get;
0x0002ba94 move a0, v0 | a0 = v0;
0x0002ba98 addiu a2, sp, 0x30 | a2 = sp + 0x30;
| /* str.__ass_ */
0x0002ba9c addiu a1, a1, 0x5154 | a1 += 0x5154;
0x0002baa0 sw zero, 0x30(sp) | *(var_30h_3) = 0;
0x0002baa4 move s1, v0 | s1 = v0;
0x0002baa8 jalr t9 | t9 ();
0x0002baac lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bab0 lw a0, 0x30(sp) | a0 = *(var_30h_3);
0x0002bab4 addiu a3, sp, 0x24 | a3 = sp + 0x24;
0x0002bab8 lw t9, -0x76fc(gp) | t9 = sym.imp.g_variant_lookup;
0x0002babc addiu a2, s0, 0x5080 | a2 = s0 + 0x5080;
| /* str.ProdType */
0x0002bac0 addiu a1, s5, 0x5074 | a1 = s5 + 0x5074;
0x0002bac4 jalr t9 | t9 ();
0x0002bac8 lw gp, 0x18(sp) | gp = *(var_18h_5);
| if (v0 == 0) {
0x0002bacc beqz v0, 0x2bc10 | goto label_8;
| }
| label_1:
0x0002bad0 lw t9, -0x76fc(gp) | t9 = sym.imp.g_variant_lookup;
0x0002bad4 lw a0, 0x30(sp) | a0 = *(var_30h_3);
0x0002bad8 addiu a3, sp, 0x28 | a3 = sp + 0x28;
0x0002badc addiu a2, s0, 0x5080 | a2 = s0 + 0x5080;
| /* str.ProdNbr */
0x0002bae0 addiu a1, s4, 0x5084 | a1 = s4 + 0x5084;
0x0002bae4 jalr t9 | t9 ();
0x0002bae8 lw gp, 0x18(sp) | gp = *(var_18h_5);
| if (v0 == 0) {
0x0002baec beqz v0, 0x2bbf4 | goto label_9;
| }
| label_0:
0x0002baf0 lw t9, -0x76fc(gp) | t9 = sym.imp.g_variant_lookup;
0x0002baf4 lw a0, 0x30(sp) | a0 = *(var_30h_3);
0x0002baf8 addiu a3, sp, 0x2c | a3 = sp + 0x2c;
0x0002bafc addiu a2, s0, 0x5080 | a2 = s0 + 0x5080;
| /* str.Version */
0x0002bb00 addiu a1, s3, 0x508c | a1 = s3 + 0x508c;
0x0002bb04 jalr t9 | t9 ();
0x0002bb08 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bb0c beqz v0, 0x2bbd8 |
| while (1) {
0x0002bb10 lw t9, -0x77f4(gp) | t9 = sym.imp.g_variant_unref;
0x0002bb14 lw a0, 0x30(sp) | a0 = *(var_30h_3);
0x0002bb18 jalr t9 | t9 ();
0x0002bb1c lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bb20 lw a3, 0x2c(sp) | a3 = *(var_2ch_4);
0x0002bb24 lw a2, 0x28(sp) | a2 = *(var_28h_4);
0x0002bb28 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002bb2c lw a1, 0x24(sp) | a1 = *(var_24h_6);
0x0002bb30 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str.AXIS__s__s__s */
0x0002bb34 addiu a0, a0, 0x5144 | a0 += 0x5144;
0x0002bb38 jalr t9 | t9 ();
0x0002bb3c lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bb40 move a1, v0 | a1 = v0;
0x0002bb44 addiu a0, zero, 6 | a0 = 6;
0x0002bb48 lw t9, -0x7ab4(gp) | t9 = sym.netd_settings_store_main_value;
0x0002bb4c move s0, v0 | s0 = v0;
0x0002bb50 jalr t9 | t9 ();
0x0002bb54 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bb58 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002bb5c lw a0, 0x24(sp) | a0 = *(var_24h_6);
0x0002bb60 jalr t9 | t9 ();
0x0002bb64 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bb68 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002bb6c lw a0, 0x28(sp) | a0 = *(var_28h_4);
0x0002bb70 jalr t9 | t9 ();
0x0002bb74 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bb78 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002bb7c lw a0, 0x2c(sp) | a0 = *(var_2ch_4);
0x0002bb80 jalr t9 | t9 ();
0x0002bb84 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bb88 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002bb8c move a0, s0 | a0 = s0;
0x0002bb90 jalr t9 | t9 ();
0x0002bb94 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bb98 lw t9, -0x77f4(gp) | t9 = sym.imp.g_variant_unref;
0x0002bb9c move a0, s1 | a0 = s1;
0x0002bba0 jalr t9 | t9 ();
0x0002bba4 lw gp, 0x18(sp) | gp = *(var_18h_5);
| label_2:
0x0002bba8 lw v1, 0x34(sp) | v1 = *(var_34h);
0x0002bbac lw v0, (s2) | v0 = *(s2);
0x0002bbb0 lw ra, 0x54(sp) | ra = *(var_54h);
| if (v1 != v0) {
0x0002bbb4 bne v1, v0, 0x2bd08 | goto label_10;
| }
0x0002bbb8 lw s5, 0x50(sp) | s5 = *(var_50h);
0x0002bbbc lw s4, 0x4c(sp) | s4 = *(var_4ch);
0x0002bbc0 lw s3, 0x48(sp) | s3 = *(var_48h);
0x0002bbc4 lw s2, 0x44(sp) | s2 = *(var_44h);
0x0002bbc8 lw s1, 0x40(sp) | s1 = *(var_40h);
0x0002bbcc lw s0, 0x3c(sp) | s0 = *(var_3ch);
0x0002bbd0 addiu sp, sp, 0x58 |
0x0002bbd4 jr ra | return v0;
0x0002bbd8 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002bbdc lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.UDHCP_OPTARGS_RELEASE */
0x0002bbe0 addiu a0, a0, 0x512c | a0 += 0x512c;
0x0002bbe4 jalr t9 | t9 ();
0x0002bbe8 sw v0, 0x2c(sp) | *(var_2ch_4) = v0;
0x0002bbec lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bbf0 b 0x2bb10 |
| }
| label_9:
0x0002bbf4 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002bbf8 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.PRODUCT_NUMBER */
0x0002bbfc addiu a0, a0, 0x511c | a0 += 0x511c;
0x0002bc00 jalr t9 | t9 ();
0x0002bc04 sw v0, 0x28(sp) | *(var_28h_4) = v0;
0x0002bc08 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bc0c b 0x2baf0 | goto label_0;
| label_8:
0x0002bc10 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002bc14 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.PRODUCT_TYPE */
0x0002bc18 addiu a0, a0, 0x510c | a0 += 0x510c;
0x0002bc1c jalr t9 | t9 ();
0x0002bc20 sw v0, 0x24(sp) | *(var_24h_6) = v0;
0x0002bc24 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bc28 b 0x2bad0 | goto label_1;
| label_7:
0x0002bc2c lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0002bc30 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.Failed_to_call_Get_on_com.axis.BasicDeviceInfo1 */
0x0002bc34 addiu a1, a1, 0x50d8 | a1 += 0x50d8;
0x0002bc38 addiu a0, zero, 3 | a0 = 3;
0x0002bc3c bal 0x434d0 | sym_netd_log_esc ();
0x0002bc40 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bc44 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002bc48 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.PRODUCT_TYPE */
0x0002bc4c addiu a0, a0, 0x510c | a0 += 0x510c;
0x0002bc50 jalr t9 | t9 ();
0x0002bc54 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bc58 sw v0, 0x24(sp) | *(var_24h_6) = v0;
0x0002bc5c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002bc60 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.PRODUCT_NUMBER */
0x0002bc64 addiu a0, a0, 0x511c | a0 += 0x511c;
0x0002bc68 jalr t9 | t9 ();
0x0002bc6c lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bc70 sw v0, 0x28(sp) | *(var_28h_4) = v0;
0x0002bc74 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002bc78 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.UDHCP_OPTARGS_RELEASE */
0x0002bc7c addiu a0, a0, 0x512c | a0 += 0x512c;
0x0002bc80 jalr t9 | t9 ();
0x0002bc84 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bc88 lw a2, 0x28(sp) | a2 = *(var_28h_4);
0x0002bc8c lw a1, 0x24(sp) | a1 = *(var_24h_6);
0x0002bc90 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002bc94 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x0002bc98 move a3, v0 | a3 = v0;
| /* str.AXIS__s__s__s */
0x0002bc9c addiu a0, a0, 0x5144 | a0 += 0x5144;
0x0002bca0 sw v0, 0x2c(sp) | *(var_2ch_4) = v0;
0x0002bca4 jalr t9 | t9 ();
0x0002bca8 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bcac move a1, v0 | a1 = v0;
0x0002bcb0 addiu a0, zero, 6 | a0 = 6;
0x0002bcb4 lw t9, -0x7ab4(gp) | t9 = sym.netd_settings_store_main_value;
0x0002bcb8 move s0, v0 | s0 = v0;
0x0002bcbc jalr t9 | t9 ();
0x0002bcc0 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bcc4 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002bcc8 lw a0, 0x24(sp) | a0 = *(var_24h_6);
0x0002bccc jalr t9 | t9 ();
0x0002bcd0 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bcd4 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002bcd8 lw a0, 0x28(sp) | a0 = *(var_28h_4);
0x0002bcdc jalr t9 | t9 ();
0x0002bce0 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bce4 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002bce8 lw a0, 0x2c(sp) | a0 = *(var_2ch_4);
0x0002bcec jalr t9 | t9 ();
0x0002bcf0 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bcf4 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002bcf8 move a0, s0 | a0 = s0;
0x0002bcfc jalr t9 | t9 ();
0x0002bd00 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002bd04 b 0x2bba8 | goto label_2;
| label_10:
0x0002bd08 lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x0002bd0c jalr t9 | t9 ();
0x0002bd10 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x2bd14 */
| #include <stdint.h>
|
; (fcn) fcn.0002bd14 () | void fcn_0002bd14 () {
0x0002bd14 lui gp, 7 |
0x0002bd18 addiu gp, gp, -0x40d4 |
0x0002bd1c addu gp, gp, t9 | gp += t9;
0x0002bd20 addiu sp, sp, -0x48 |
0x0002bd24 sw s4, 0x38(sp) | *(var_38h) = s4;
0x0002bd28 lw s4, -0x773c(gp) | s4 = *((gp - 7631));
0x0002bd2c sw gp, 0x18(sp) | *(var_18h_6) = gp;
0x0002bd30 sw ra, 0x44(sp) | *(var_44h_2) = ra;
0x0002bd34 lw v0, (s4) | v0 = *(s4);
0x0002bd38 sw s6, 0x40(sp) | *(var_40h_2) = s6;
0x0002bd3c sw s5, 0x3c(sp) | *(var_3ch_2) = s5;
0x0002bd40 sw s3, 0x34(sp) | *(var_34h_2) = s3;
0x0002bd44 sw s2, 0x30(sp) | *(var_30h) = s2;
0x0002bd48 sw s1, 0x2c(sp) | *(var_2ch_5) = s1;
0x0002bd4c sw s0, 0x28(sp) | *(var_28h_5) = s0;
0x0002bd50 sw zero, 0x20(sp) | *(var_20h_2) = 0;
0x0002bd54 sw v0, 0x24(sp) | *(var_24h_7) = v0;
0x0002bd58 lw v0, -0x7cfc(gp) | v0 = *(gp);
| if (a0 == 0) {
0x0002bd5c beqz a0, 0x2c01c | goto label_3;
| }
0x0002bd60 lw v0, 0x38(a0) | v0 = *((a0 + 14));
0x0002bd64 move s1, a0 | s1 = a0;
| if (v0 == 0) {
0x0002bd68 beqz v0, 0x2c0ac | goto label_4;
| }
0x0002bd6c lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0002bd70 bal 0x23124 | sym_netd_device_get_name ();
0x0002bd74 nop |
0x0002bd78 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002bd7c move a2, v0 | a2 = v0;
0x0002bd80 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0002bd84 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002bd88 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._run_dhcp */
0x0002bd8c addiu a1, a1, 0x5160 | a1 += 0x5160;
| /* str._s_dhcp4__s.cmd_arg */
0x0002bd90 addiu a0, a0, 0x516c | a0 += 0x516c;
0x0002bd94 jalr t9 | t9 ();
0x0002bd98 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002bd9c move s5, v0 | s5 = v0;
0x0002bda0 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002bda4 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.UDHCPC_ARG */
0x0002bda8 addiu a0, a0, 0x5180 | a0 += 0x5180;
0x0002bdac jalr t9 | t9 ();
0x0002bdb0 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002bdb4 move a1, v0 | a1 = v0;
0x0002bdb8 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0002bdbc move a0, zero | a0 = 0;
0x0002bdc0 jalr t9 | t9 ();
0x0002bdc4 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002bdc8 move s0, v0 | s0 = v0;
0x0002bdcc lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002bdd0 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* esilref: '-a' */
0x0002bdd4 addiu a0, a0, 0x518c | a0 += 0x518c;
0x0002bdd8 jalr t9 | t9 ();
0x0002bddc lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002bde0 move a0, s0 | a0 = s0;
0x0002bde4 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0002bde8 move a1, v0 | a1 = v0;
0x0002bdec jalr t9 | t9 ();
0x0002bdf0 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002bdf4 addiu a1, zero, 0x14 | a1 = 0x14;
0x0002bdf8 move s0, v0 | s0 = v0;
0x0002bdfc lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002be00 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._t__u */
0x0002be04 addiu a0, a0, 0x5190 | a0 += 0x5190;
0x0002be08 jalr t9 | t9 ();
0x0002be0c lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002be10 move a0, s0 | a0 = s0;
0x0002be14 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0002be18 move a1, v0 | a1 = v0;
0x0002be1c jalr t9 | t9 ();
0x0002be20 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002be24 addiu a1, zero, 1 | a1 = 1;
0x0002be28 addiu a0, zero, 0x41 | a0 = 0x41;
0x0002be2c lw t9, -0x7590(gp) | t9 = sym.imp.calloc;
0x0002be30 move s2, v0 | s2 = v0;
0x0002be34 jalr t9 | t9 ();
0x0002be38 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002be3c addiu a1, zero, 0x41 | a1 = 0x41;
0x0002be40 move a0, v0 | a0 = v0;
0x0002be44 lw t9, -0x77e4(gp) | t9 = sym.imp.gethostname;
0x0002be48 move s0, v0 | s0 = v0;
0x0002be4c jalr t9 | t9 ();
0x0002be50 move s3, v0 | s3 = v0;
0x0002be54 lw gp, 0x18(sp) | gp = *(var_18h_6);
| if (v0 != 0) {
0x0002be58 bnez v0, 0x2c040 | goto label_5;
| }
0x0002be5c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002be60 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x0002be64 move a1, s0 | a1 = s0;
| /* str._x_hostname:_s */
0x0002be68 addiu a0, a0, 0x51bc | a0 += 0x51bc;
0x0002be6c sb zero, 0x40(s0) | *((s0 + 64)) = 0;
0x0002be70 jalr t9 | t9 ();
0x0002be74 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002be78 move a1, v0 | a1 = v0;
0x0002be7c lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0002be80 move a0, s2 | a0 = s2;
0x0002be84 jalr t9 | t9 ();
0x0002be88 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002be8c move a0, s0 | a0 = s0;
0x0002be90 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002be94 move s6, v0 | s6 = v0;
0x0002be98 jalr t9 | t9 ();
0x0002be9c lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002bea0 lw t9, -0x7c8c(gp) | t9 = sym.netd_settings_get_main_value;
0x0002bea4 addiu a0, zero, 6 | a0 = 6;
0x0002bea8 jalr t9 | t9 ();
0x0002beac lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002beb0 move a0, v0 | a0 = v0;
0x0002beb4 move s0, v0 | s0 = v0;
0x0002beb8 lw s2, -0x7cfc(gp) | s2 = *(gp);
0x0002bebc lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x0002bec0 addiu a1, s2, 0x51cc | a1 = s2 + 0x51cc;
0x0002bec4 jalr t9 | t9 ();
0x0002bec8 lw gp, 0x18(sp) | gp = *(var_18h_6);
| if (v0 == 0) {
0x0002becc beqz v0, 0x2c10c | goto label_6;
| }
| label_1:
0x0002bed0 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002bed4 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x0002bed8 move a1, s0 | a1 = s0;
| /* str._V__s */
0x0002bedc addiu a0, a0, 0x51d0 | a0 += 0x51d0;
0x0002bee0 jalr t9 | t9 ();
0x0002bee4 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002bee8 move a1, v0 | a1 = v0;
0x0002beec lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0002bef0 move a0, s6 | a0 = s6;
0x0002bef4 jalr t9 | t9 ();
0x0002bef8 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002befc move a0, s0 | a0 = s0;
0x0002bf00 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002bf04 move s6, v0 | s6 = v0;
0x0002bf08 jalr t9 | t9 ();
0x0002bf0c lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002bf10 lw t9, -0x7c8c(gp) | t9 = sym.netd_settings_get_main_value;
0x0002bf14 addiu a0, zero, 7 | a0 = 7;
0x0002bf18 jalr t9 | t9 ();
0x0002bf1c lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002bf20 addiu a1, s2, 0x51cc | a1 = s2 + 0x51cc;
0x0002bf24 move a0, v0 | a0 = v0;
0x0002bf28 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x0002bf2c move s0, v0 | s0 = v0;
0x0002bf30 jalr t9 | t9 ();
0x0002bf34 lw gp, 0x18(sp) | gp = *(var_18h_6);
| if (v0 != 0) {
0x0002bf38 bnez v0, 0x2c0d8 | goto label_7;
| }
| label_0:
0x0002bf3c lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002bf40 move a0, s0 | a0 = s0;
0x0002bf44 jalr t9 | t9 ();
0x0002bf48 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002bf4c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002bf50 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
0x0002bf54 addiu a0, a0, 0x51e0 | a0 += 0x51e0;
0x0002bf58 jalr t9 | t9 ();
0x0002bf5c lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002bf60 move a1, v0 | a1 = v0;
0x0002bf64 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0002bf68 move a0, s6 | a0 = s6;
0x0002bf6c jalr t9 | t9 ();
0x0002bf70 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002bf74 move a0, v0 | a0 = v0;
0x0002bf78 lw t9, -0x7c60(gp) | t9 = sym.netd_util_list_to_string;
0x0002bf7c move s2, v0 | s2 = v0;
0x0002bf80 jalr t9 | t9 ();
0x0002bf84 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002bf88 addiu a3, sp, 0x20 | a3 = sp + 0x20;
0x0002bf8c addiu a2, zero, 1 | a2 = 1;
0x0002bf90 lw t9, -0x7ae0(gp) | t9 = sym.netd_util_write_to_file;
0x0002bf94 move a1, v0 | a1 = v0;
0x0002bf98 move a0, s5 | a0 = s5;
0x0002bf9c move s0, v0 | s0 = v0;
0x0002bfa0 jalr t9 | t9 ();
0x0002bfa4 lw gp, 0x18(sp) | gp = *(var_18h_6);
| if (v0 == 0) {
0x0002bfa8 beqz v0, 0x2c148 | goto label_8;
| }
0x0002bfac addiu s3, zero, 1 | s3 = 1;
| do {
| label_2:
0x0002bfb0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002bfb4 move a0, s5 | a0 = s5;
0x0002bfb8 jalr t9 | t9 ();
0x0002bfbc lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002bfc0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002bfc4 move a0, s0 | a0 = s0;
0x0002bfc8 jalr t9 | t9 ();
0x0002bfcc lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002bfd0 lw t9, -0x75c8(gp) | t9 = sym.imp.g_list_free_full;
0x0002bfd4 lw a1, -0x748c(gp) | a1 = *((gp - 7459));
0x0002bfd8 move a0, s2 | a0 = s2;
0x0002bfdc jalr t9 | t9 ();
0x0002bfe0 lw a0, 0x24(sp) | a0 = *(var_24h_7);
0x0002bfe4 lw v1, (s4) | v1 = *(s4);
0x0002bfe8 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002bfec move v0, s3 | v0 = s3;
| if (a0 != v1) {
0x0002bff0 bne a0, v1, 0x2c190 | goto label_9;
| }
0x0002bff4 lw ra, 0x44(sp) | ra = *(var_44h_2);
0x0002bff8 lw s6, 0x40(sp) | s6 = *(var_40h_2);
0x0002bffc lw s5, 0x3c(sp) | s5 = *(var_3ch_2);
0x0002c000 lw s4, 0x38(sp) | s4 = *(var_38h);
0x0002c004 lw s3, 0x34(sp) | s3 = *(var_34h_2);
0x0002c008 lw s2, 0x30(sp) | s2 = *(var_30h);
0x0002c00c lw s1, 0x2c(sp) | s1 = *(var_2ch_5);
0x0002c010 lw s0, 0x28(sp) | s0 = *(var_28h_5);
0x0002c014 addiu sp, sp, 0x48 |
0x0002c018 jr ra | return v1;
| label_3:
0x0002c01c lw a3, -0x7cfc(gp) | a3 = *(gp);
0x0002c020 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev' */
0x0002c024 addiu v0, v0, 0x4ff8 | v0 += 0x4ff8;
0x0002c028 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0002c02c sw v0, 0x10(sp) | *(var_10h_7) = v0;
| /* str.setup_dhcp4_arguments */
0x0002c030 addiu a3, a3, 0x5b24 | a3 += 0x5b24;
0x0002c034 addiu a2, zero, 0x129 | a2 = 0x129;
| /* str.src_netd_device_ipv4.c */
0x0002c038 addiu a1, a1, 0x4fe0 | a1 += 0x4fe0;
0x0002c03c jalr t9 | t9 ();
| label_5:
0x0002c040 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0002c044 move a0, s1 | a0 = s1;
0x0002c048 bal 0x23124 | sym_netd_device_get_name ();
0x0002c04c lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002c050 move s1, v0 | s1 = v0;
0x0002c054 lw t9, -0x7488(gp) | t9 = sym.imp.__errno_location;
0x0002c058 move s3, zero | s3 = 0;
0x0002c05c jalr t9 | t9 ();
0x0002c060 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002c064 lw t9, -0x74c4(gp) | t9 = sym.imp.strerror;
0x0002c068 lw a0, (v0) | a0 = *(v0);
0x0002c06c jalr t9 | t9 ();
0x0002c070 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002c074 move a3, v0 | a3 = v0;
0x0002c078 move a2, s1 | a2 = s1;
0x0002c07c lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0002c080 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Error_getting_the_hostname:__s */
0x0002c084 addiu a1, a1, 0x5198 | a1 += 0x5198;
0x0002c088 addiu a0, zero, 3 | a0 = 3;
0x0002c08c bal 0x434d0 | sym_netd_log_esc ();
0x0002c090 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002c094 move a0, s0 | a0 = s0;
0x0002c098 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002c09c move s0, zero | s0 = 0;
0x0002c0a0 jalr t9 | t9 ();
0x0002c0a4 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002c0a8 b 0x2bfb0 |
| } while (1);
| label_4:
0x0002c0ac lw v0, -0x7cfc(gp) | v0 = *(gp);
0x0002c0b0 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x0002c0b4 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* str.dev__ipv4 */
0x0002c0b8 addiu v0, v0, 0x4ffc | v0 += 0x4ffc;
0x0002c0bc lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0002c0c0 sw v0, 0x10(sp) | *(var_10h_7) = v0;
| /* str.setup_dhcp4_arguments */
0x0002c0c4 addiu a3, a3, 0x5b24 | a3 += 0x5b24;
0x0002c0c8 addiu a2, zero, 0x12a | a2 = 0x12a;
| /* str.src_netd_device_ipv4.c */
0x0002c0cc addiu a1, a1, 0x4fe0 | a1 += 0x4fe0;
0x0002c0d0 move a0, zero | a0 = 0;
0x0002c0d4 jalr t9 | t9 ();
| label_7:
0x0002c0d8 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002c0dc lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x0002c0e0 move a1, s0 | a1 = s0;
| /* str._r__s */
0x0002c0e4 addiu a0, a0, 0x51d8 | a0 += 0x51d8;
0x0002c0e8 jalr t9 | t9 ();
0x0002c0ec lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002c0f0 move a0, s6 | a0 = s6;
0x0002c0f4 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0002c0f8 move a1, v0 | a1 = v0;
0x0002c0fc jalr t9 | t9 ();
0x0002c100 move s6, v0 | s6 = v0;
0x0002c104 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002c108 b 0x2bf3c | goto label_0;
| label_6:
0x0002c10c lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002c110 move a0, s0 | a0 = s0;
0x0002c114 jalr t9 | t9 ();
0x0002c118 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002c11c lw t9, -0x7af8(gp) | t9 = *(gp);
0x0002c120 addiu t9, t9, -0x46ac | t9 += -0x46ac;
0x0002c124 bal 0x2b954 | fcn_2b954 ();
0x0002c128 nop |
0x0002c12c lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002c130 lw t9, -0x7c8c(gp) | t9 = sym.netd_settings_get_main_value;
0x0002c134 addiu a0, zero, 6 | a0 = 6;
0x0002c138 jalr t9 | t9 ();
0x0002c13c move s0, v0 | s0 = v0;
0x0002c140 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002c144 b 0x2bed0 | goto label_1;
| label_8:
0x0002c148 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0002c14c move a0, s1 | a0 = s1;
0x0002c150 bal 0x23124 | sym_netd_device_get_name ();
0x0002c154 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002c158 lw v1, 0x20(sp) | v1 = *(var_20h_2);
0x0002c15c move a2, v0 | a2 = v0;
0x0002c160 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0002c164 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x0002c168 lw a3, 8(v1) | a3 = *((v1 + 2));
| /* str.__s__Failed_to_write_to_DHCPv4_arg_file:__s */
0x0002c16c addiu a1, a1, 0x51e4 | a1 += 0x51e4;
0x0002c170 addiu a0, zero, 3 | a0 = 3;
0x0002c174 bal 0x434d0 | sym_netd_log_esc ();
0x0002c178 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002c17c lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x0002c180 lw a0, 0x20(sp) | a0 = *(var_20h_2);
0x0002c184 jalr t9 | t9 ();
0x0002c188 lw gp, 0x18(sp) | gp = *(var_18h_6);
0x0002c18c b 0x2bfb0 | goto label_2;
| label_9:
0x0002c190 lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x0002c194 jalr t9 | t9 ();
0x0002c198 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x2c19c */
| #include <stdint.h>
|
; (fcn) fcn.0002c19c () | void fcn_0002c19c () {
0x0002c19c lui gp, 7 |
0x0002c1a0 addiu gp, gp, -0x455c |
0x0002c1a4 addu gp, gp, t9 | gp += t9;
0x0002c1a8 addiu sp, sp, -0x40 |
0x0002c1ac sw s2, 0x30(sp) | *(var_30h_2) = s2;
0x0002c1b0 lw s2, -0x773c(gp) | s2 = *((gp - 7631));
0x0002c1b4 sw gp, 0x18(sp) | *(var_18h_7) = gp;
0x0002c1b8 sw ra, 0x3c(sp) | *(var_3ch_3) = ra;
0x0002c1bc lw v0, (s2) | v0 = *(s2);
0x0002c1c0 sw s4, 0x38(sp) | *(var_38h_2) = s4;
0x0002c1c4 sw s3, 0x34(sp) | *(var_34h_3) = s3;
0x0002c1c8 sw s1, 0x2c(sp) | *(var_2ch_6) = s1;
0x0002c1cc sw s0, 0x28(sp) | *(var_28h_6) = s0;
0x0002c1d0 sw zero, 0x20(sp) | *(var_20h_3) = 0;
0x0002c1d4 sw v0, 0x24(sp) | *(var_24h_8) = v0;
0x0002c1d8 lw v0, -0x7cfc(gp) | v0 = *(gp);
| if (a0 == 0) {
0x0002c1dc beqz a0, 0x2c320 | goto label_1;
| }
0x0002c1e0 lw v0, 0x38(a0) | v0 = *((a0 + 14));
0x0002c1e4 move s0, a0 | s0 = a0;
| if (v0 == 0) {
0x0002c1e8 beqz v0, 0x2c344 | goto label_2;
| }
0x0002c1ec lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0002c1f0 bal 0x23124 | sym_netd_device_get_name ();
0x0002c1f4 nop |
0x0002c1f8 lw gp, 0x18(sp) | gp = *(var_18h_7);
0x0002c1fc addiu a1, zero, 0x3fc | a1 = 0x3fc;
0x0002c200 lw t9, -0x7c58(gp) | t9 = sym.netd_settings_get_device_value;
0x0002c204 move a0, v0 | a0 = v0;
0x0002c208 jalr t9 | t9 ();
0x0002c20c lw gp, 0x18(sp) | gp = *(var_18h_7);
0x0002c210 move a0, v0 | a0 = v0;
0x0002c214 move s1, v0 | s1 = v0;
0x0002c218 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0002c21c lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x0002c220 addiu a1, a1, 0x51cc | a1 += 0x51cc;
0x0002c224 jalr t9 | t9 ();
0x0002c228 lw gp, 0x18(sp) | gp = *(var_18h_7);
| if (v0 == 0) {
0x0002c22c beqz v0, 0x2c304 | goto label_3;
| }
0x0002c230 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002c234 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x0002c238 move a1, s1 | a1 = s1;
| /* str.ZEROCONF_ARG_a__s */
0x0002c23c addiu a0, a0, 0x5220 | a0 += 0x5220;
0x0002c240 jalr t9 | t9 ();
0x0002c244 lw gp, 0x18(sp) | gp = *(var_18h_7);
0x0002c248 move s4, v0 | s4 = v0;
| do {
0x0002c24c lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0002c250 move a0, s0 | a0 = s0;
0x0002c254 bal 0x23124 | sym_netd_device_get_name ();
0x0002c258 lw gp, 0x18(sp) | gp = *(var_18h_7);
0x0002c25c move a2, v0 | a2 = v0;
0x0002c260 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0002c264 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002c268 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._run_zeroconf */
0x0002c26c addiu a1, a1, 0x5234 | a1 += 0x5234;
| /* str._s__s.cmd_arg */
0x0002c270 addiu a0, a0, 0x5244 | a0 += 0x5244;
0x0002c274 jalr t9 | t9 ();
0x0002c278 lw gp, 0x18(sp) | gp = *(var_18h_7);
0x0002c27c addiu a3, sp, 0x20 | a3 = sp + 0x20;
0x0002c280 addiu a2, zero, 1 | a2 = 1;
0x0002c284 lw t9, -0x7ae0(gp) | t9 = sym.netd_util_write_to_file;
0x0002c288 move a1, s4 | a1 = s4;
0x0002c28c move a0, v0 | a0 = v0;
0x0002c290 move s3, v0 | s3 = v0;
0x0002c294 jalr t9 | t9 ();
0x0002c298 lw gp, 0x18(sp) | gp = *(var_18h_7);
| if (v0 == 0) {
0x0002c29c beqz v0, 0x2c370 | goto label_4;
| }
0x0002c2a0 addiu s0, zero, 1 | s0 = 1;
| label_0:
0x0002c2a4 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002c2a8 move a0, s1 | a0 = s1;
0x0002c2ac jalr t9 | t9 ();
0x0002c2b0 lw gp, 0x18(sp) | gp = *(var_18h_7);
0x0002c2b4 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002c2b8 move a0, s3 | a0 = s3;
0x0002c2bc jalr t9 | t9 ();
0x0002c2c0 lw gp, 0x18(sp) | gp = *(var_18h_7);
0x0002c2c4 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002c2c8 move a0, s4 | a0 = s4;
0x0002c2cc jalr t9 | t9 ();
0x0002c2d0 lw a0, 0x24(sp) | a0 = *(var_24h_8);
0x0002c2d4 lw v1, (s2) | v1 = *(s2);
0x0002c2d8 lw gp, 0x18(sp) | gp = *(var_18h_7);
0x0002c2dc move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x0002c2e0 bne a0, v1, 0x2c3c4 | goto label_5;
| }
0x0002c2e4 lw ra, 0x3c(sp) | ra = *(var_3ch_3);
0x0002c2e8 lw s4, 0x38(sp) | s4 = *(var_38h_2);
0x0002c2ec lw s3, 0x34(sp) | s3 = *(var_34h_3);
0x0002c2f0 lw s2, 0x30(sp) | s2 = *(var_30h_2);
0x0002c2f4 lw s1, 0x2c(sp) | s1 = *(var_2ch_6);
0x0002c2f8 lw s0, 0x28(sp) | s0 = *(var_28h_6);
0x0002c2fc addiu sp, sp, 0x40 |
0x0002c300 jr ra | return v1;
| label_3:
0x0002c304 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002c308 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.ZEROCONF_ARG */
0x0002c30c addiu a0, a0, 0x5210 | a0 += 0x5210;
0x0002c310 jalr t9 | t9 ();
0x0002c314 move s4, v0 | s4 = v0;
0x0002c318 lw gp, 0x18(sp) | gp = *(var_18h_7);
0x0002c31c b 0x2c24c |
| } while (1);
| label_1:
0x0002c320 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x0002c324 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev' */
0x0002c328 addiu v0, v0, 0x4ff8 | v0 += 0x4ff8;
0x0002c32c lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0002c330 sw v0, 0x10(sp) | *(var_10h_8) = v0;
| /* str.setup_zeroconf_arguments */
0x0002c334 addiu a3, a3, 0x5b3c | a3 += 0x5b3c;
0x0002c338 addiu a2, zero, 0x178 | a2 = aav.0x00000178;
| /* str.src_netd_device_ipv4.c */
0x0002c33c addiu a1, a1, 0x4fe0 | a1 += 0x4fe0;
0x0002c340 jalr t9 | t9 ();
| label_2:
0x0002c344 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x0002c348 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x0002c34c lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* str.dev__ipv4 */
0x0002c350 addiu v0, v0, 0x4ffc | v0 += 0x4ffc;
0x0002c354 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0002c358 sw v0, 0x10(sp) | *(var_10h_8) = v0;
| /* str.setup_zeroconf_arguments */
0x0002c35c addiu a3, a3, 0x5b3c | a3 += 0x5b3c;
0x0002c360 addiu a2, zero, 0x179 | a2 = 0x179;
| /* str.src_netd_device_ipv4.c */
0x0002c364 addiu a1, a1, 0x4fe0 | a1 += 0x4fe0;
0x0002c368 move a0, zero | a0 = 0;
0x0002c36c jalr t9 | t9 ();
| label_4:
0x0002c370 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0002c374 move a0, s0 | a0 = s0;
0x0002c378 bal 0x23124 | sym_netd_device_get_name ();
0x0002c37c lw gp, 0x18(sp) | gp = *(var_18h_7);
0x0002c380 lw v1, 0x20(sp) | v1 = *(var_20h_3);
0x0002c384 move a3, s3 | a3 = s3;
0x0002c388 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0002c38c lw v1, 8(v1) | v1 = *((v1 + 2));
0x0002c390 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x0002c394 move a2, v0 | a2 = v0;
| /* esilref: '[&s] Failed to write to arg file: &s &s' */
0x0002c398 addiu a1, a1, 0x5254 | a1 += 0x5254;
0x0002c39c addiu a0, zero, 3 | a0 = 3;
0x0002c3a0 sw v1, 0x10(sp) | *(var_10h_8) = v1;
0x0002c3a4 bal 0x434d0 | sym_netd_log_esc ();
0x0002c3a8 lw gp, 0x18(sp) | gp = *(var_18h_7);
0x0002c3ac lw a0, 0x20(sp) | a0 = *(var_20h_3);
0x0002c3b0 lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x0002c3b4 move s0, zero | s0 = 0;
0x0002c3b8 jalr t9 | t9 ();
0x0002c3bc lw gp, 0x18(sp) | gp = *(var_18h_7);
0x0002c3c0 b 0x2c2a4 | goto label_0;
| label_5:
0x0002c3c4 lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x0002c3c8 jalr t9 | t9 ();
0x0002c3cc nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x31d98 */
| #include <stdint.h>
|
; (fcn) fcn.00031d98 () | void fcn_00031d98 () {
0x00031d98 lui gp, 6 |
0x00031d9c addiu gp, gp, 0x5ea8 |
0x00031da0 addu gp, gp, t9 | gp += t9;
0x00031da4 addiu sp, sp, -0x40 |
0x00031da8 sw s2, 0x34(sp) | *(var_34h_2) = s2;
0x00031dac lw s2, -0x773c(gp) | s2 = *((gp - 7631));
0x00031db0 sw gp, 0x18(sp) | *(var_18h_8) = gp;
0x00031db4 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00031db8 lw v0, (s2) | v0 = *(s2);
0x00031dbc sw s3, 0x38(sp) | *(var_38h) = s3;
0x00031dc0 sw s1, 0x30(sp) | *(var_30h_2) = s1;
0x00031dc4 sw s0, 0x2c(sp) | *(var_2ch_6) = s0;
0x00031dc8 sw zero, 0x20(sp) | *(var_20h_3) = 0;
0x00031dcc sw v0, 0x24(sp) | *(var_24h_8) = v0;
0x00031dd0 lw v0, -0x7cfc(gp) | v0 = *(gp);
| if (a0 == 0) {
0x00031dd4 beqz a0, 0x31f24 | goto label_2;
| }
0x00031dd8 lw v0, 0x3c(a0) | v0 = *((a0 + 15));
0x00031ddc move s0, a0 | s0 = a0;
| if (v0 == 0) {
0x00031de0 beqz v0, 0x31f48 | goto label_3;
| }
0x00031de4 lw s1, -0x7e38(gp) | s1 = sym.netd_device_dhcpv6_get_mode;
0x00031de8 move t9, s1 | t9 = s1;
0x00031dec bal 0x355cc | sym_netd_device_dhcpv6_get_mode ();
0x00031df0 nop |
0x00031df4 addiu v1, zero, 2 | v1 = 2;
0x00031df8 lw gp, 0x18(sp) | gp = *(var_18h_8);
| if (v0 == v1) {
0x00031dfc beq v0, v1, 0x32014 | goto label_4;
| }
0x00031e00 sltiu v1, v0, 3 | v1 = (v0 < 3) ? 1 : 0;
0x00031e04 addiu v1, zero, 3 | v1 = 3;
| if (v1 != 0) {
0x00031e08 bnez v1, 0x31edc | goto label_5;
| }
0x00031e0c addiu v1, zero, 4 | v1 = 4;
| if (v0 == v1) {
0x00031e10 beq v0, v1, 0x31f18 | goto label_6;
| }
0x00031e14 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
| if (v0 != v1) {
0x00031e18 bne v0, v1, 0x31fc8 | goto label_7;
| }
0x00031e1c lw s1, -0x7cfc(gp) | s1 = *(gp);
| /* esilref: '-fs' */
0x00031e20 addiu s1, s1, 0x6170 | s1 += 0x6170;
| label_0:
0x00031e24 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00031e28 move a0, s0 | a0 = s0;
0x00031e2c bal 0x23124 | sym_netd_device_get_name ();
0x00031e30 lw gp, 0x18(sp) | gp = *(var_18h_8);
0x00031e34 move a1, v0 | a1 = v0;
0x00031e38 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00031e3c lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._run_dhcp_dhcp6__s.cmd_arg */
0x00031e40 addiu a0, a0, 0x61f4 | a0 += 0x61f4;
0x00031e44 jalr t9 | t9 ();
0x00031e48 lw gp, 0x18(sp) | gp = *(var_18h_8);
0x00031e4c move a1, s1 | a1 = s1;
0x00031e50 move s1, v0 | s1 = v0;
0x00031e54 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00031e58 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str.MDHCP6_MODE_s */
0x00031e5c addiu a0, a0, 0x6210 | a0 += 0x6210;
0x00031e60 jalr t9 | t9 ();
0x00031e64 lw gp, 0x18(sp) | gp = *(var_18h_8);
0x00031e68 addiu a3, sp, 0x20 | a3 = sp + 0x20;
0x00031e6c addiu a2, zero, 1 | a2 = 1;
0x00031e70 lw t9, -0x7ae0(gp) | t9 = sym.netd_util_write_to_file;
0x00031e74 move a1, v0 | a1 = v0;
0x00031e78 move a0, s1 | a0 = s1;
0x00031e7c move s3, v0 | s3 = v0;
0x00031e80 jalr t9 | t9 ();
0x00031e84 lw gp, 0x18(sp) | gp = *(var_18h_8);
| if (v0 == 0) {
0x00031e88 beqz v0, 0x31f74 | goto label_8;
| }
0x00031e8c addiu s0, zero, 1 | s0 = 1;
| label_1:
0x00031e90 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00031e94 move a0, s1 | a0 = s1;
0x00031e98 jalr t9 | t9 ();
0x00031e9c lw gp, 0x18(sp) | gp = *(var_18h_8);
0x00031ea0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00031ea4 move a0, s3 | a0 = s3;
0x00031ea8 jalr t9 | t9 ();
0x00031eac lw gp, 0x18(sp) | gp = *(var_18h_8);
| do {
0x00031eb0 lw a0, 0x24(sp) | a0 = *(var_24h_8);
0x00031eb4 lw v1, (s2) | v1 = *(s2);
0x00031eb8 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00031ebc bne a0, v1, 0x32020 | goto label_9;
| }
0x00031ec0 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00031ec4 lw s3, 0x38(sp) | s3 = *(var_38h);
0x00031ec8 lw s2, 0x34(sp) | s2 = *(var_34h_2);
0x00031ecc lw s1, 0x30(sp) | s1 = *(var_30h_2);
0x00031ed0 lw s0, 0x2c(sp) | s0 = *(var_2ch_6);
0x00031ed4 addiu sp, sp, 0x40 |
0x00031ed8 jr ra | return v1;
| label_5:
0x00031edc addiu v1, zero, 1 | v1 = 1;
0x00031ee0 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
| if (v0 != v1) {
0x00031ee4 bne v0, v1, 0x31fc8 | goto label_7;
| }
0x00031ee8 move a0, s0 | a0 = s0;
0x00031eec bal 0x23124 | sym_netd_device_get_name ();
0x00031ef0 lw gp, 0x18(sp) | gp = *(var_18h_8);
0x00031ef4 move a2, v0 | a2 = v0;
0x00031ef8 addiu a0, zero, 3 | a0 = 3;
0x00031efc lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00031f00 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Tried_to_start_DHCPv6_client_when_DHCPv6_is_off_ */
0x00031f04 addiu a1, a1, 0x617c | a1 += 0x617c;
0x00031f08 bal 0x434d0 | sym_netd_log_esc ();
0x00031f0c move s0, zero | s0 = 0;
0x00031f10 lw gp, 0x18(sp) | gp = *(var_18h_8);
0x00031f14 b 0x31eb0 |
| } while (1);
| label_6:
0x00031f18 lw s1, -0x7cfc(gp) | s1 = *(gp);
| /* esilref: '-fo' */
0x00031f1c addiu s1, s1, 0x6178 | s1 += 0x6178;
0x00031f20 b 0x31e24 | goto label_0;
| label_2:
0x00031f24 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x00031f28 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev' */
0x00031f2c addiu v0, v0, 0x60f8 | v0 += 0x60f8;
0x00031f30 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00031f34 sw v0, 0x10(sp) | *(var_10h_9) = v0;
| /* str.setup_dhcp6_arguments */
0x00031f38 addiu a3, a3, 0x6c84 | a3 += 0x6c84;
0x00031f3c addiu a2, zero, 0xee | a2 = 0xee;
| /* str.src_netd_device_ipv6.c */
0x00031f40 addiu a1, a1, 0x60e0 | a1 += 0x60e0;
0x00031f44 jalr t9 | t9 ();
| label_3:
0x00031f48 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x00031f4c lw a3, -0x7cfc(gp) | a3 = *(gp);
0x00031f50 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* str.dev__ipv6 */
0x00031f54 addiu v0, v0, 0x60fc | v0 += 0x60fc;
0x00031f58 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00031f5c sw v0, 0x10(sp) | *(var_10h_9) = v0;
| /* str.setup_dhcp6_arguments */
0x00031f60 addiu a3, a3, 0x6c84 | a3 += 0x6c84;
0x00031f64 addiu a2, zero, 0xef | a2 = 0xef;
| /* str.src_netd_device_ipv6.c */
0x00031f68 addiu a1, a1, 0x60e0 | a1 += 0x60e0;
0x00031f6c move a0, zero | a0 = 0;
0x00031f70 jalr t9 | t9 ();
| label_8:
0x00031f74 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00031f78 move a0, s0 | a0 = s0;
0x00031f7c bal 0x23124 | sym_netd_device_get_name ();
0x00031f80 lw gp, 0x18(sp) | gp = *(var_18h_8);
0x00031f84 lw v1, 0x20(sp) | v1 = *(var_20h_3);
0x00031f88 move a3, s1 | a3 = s1;
0x00031f8c lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00031f90 lw v1, 8(v1) | v1 = *((v1 + 2));
0x00031f94 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00031f98 move a2, v0 | a2 = v0;
| /* str.__s__Failed_to_write_to_arg_file:__s__s */
0x00031f9c addiu a1, a1, 0x6220 | a1 += 0x6220;
0x00031fa0 addiu a0, zero, 3 | a0 = 3;
0x00031fa4 sw v1, 0x10(sp) | *(var_10h_9) = v1;
0x00031fa8 bal 0x434d0 | sym_netd_log_esc ();
0x00031fac lw gp, 0x18(sp) | gp = *(var_18h_8);
0x00031fb0 lw a0, 0x20(sp) | a0 = *(var_20h_3);
0x00031fb4 lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x00031fb8 move s0, zero | s0 = 0;
0x00031fbc jalr t9 | t9 ();
0x00031fc0 lw gp, 0x18(sp) | gp = *(var_18h_8);
0x00031fc4 b 0x31e90 | goto label_1;
| label_7:
0x00031fc8 move a0, s0 | a0 = s0;
0x00031fcc bal 0x23124 | sym_netd_device_get_name ();
0x00031fd0 move a0, s0 | a0 = s0;
0x00031fd4 move t9, s1 | t9 = s1;
0x00031fd8 move s0, v0 | s0 = v0;
0x00031fdc bal 0x355cc | sym_netd_device_dhcpv6_get_mode ();
0x00031fe0 lw gp, 0x18(sp) | gp = *(var_18h_8);
0x00031fe4 move a2, s0 | a2 = s0;
0x00031fe8 move a3, v0 | a3 = v0;
0x00031fec lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00031ff0 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Tried_to_start_DHCPv6_client_with_invalid_DHCPv6_mode:__d */
0x00031ff4 addiu a1, a1, 0x61b4 | a1 += 0x61b4;
0x00031ff8 addiu a0, zero, 3 | a0 = 3;
0x00031ffc bal 0x434d0 | sym_netd_log_esc ();
0x00032000 move s0, zero | s0 = 0;
0x00032004 lw gp, 0x18(sp) | gp = *(var_18h_8);
0x00032008 move s1, zero | s1 = 0;
0x0003200c move s3, zero | s3 = 0;
0x00032010 b 0x31e90 | goto label_1;
| label_4:
0x00032014 lw s1, -0x7cfc(gp) | s1 = *(gp);
0x00032018 addiu s1, s1, 0x6174 | s1 += aav.0x00006174;
0x0003201c b 0x31e24 | goto label_0;
| label_9:
0x00032020 lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x00032024 jalr t9 | t9 ();
0x00032028 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x322e0 */
| #include <stdint.h>
|
; (fcn) fcn.000322e0 () | void fcn_000322e0 () {
0x000322e0 lui gp, 6 |
0x000322e4 addiu gp, gp, 0x5960 |
0x000322e8 addu gp, gp, t9 | gp += t9;
0x000322ec addiu sp, sp, -0x40 |
0x000322f0 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x000322f4 sw s2, 0x2c(sp) | *(var_2ch_9) = s2;
0x000322f8 lw s2, -0x773c(gp) | s2 = *((gp - 7631));
0x000322fc sw gp, 0x10(sp) | *(var_10h_11) = gp;
0x00032300 sw ra, 0x3c(sp) | *(var_3ch_3) = ra;
0x00032304 lw v0, (s2) | v0 = *(s2);
0x00032308 sw s5, 0x38(sp) | *(var_38h_3) = s5;
0x0003230c sw s4, 0x34(sp) | *(var_34h_4) = s4;
0x00032310 sw s3, 0x30(sp) | *(var_30h_4) = s3;
0x00032314 sw s1, 0x28(sp) | *(var_28h_6) = s1;
0x00032318 sw s0, 0x24(sp) | *(var_24h_10) = s0;
0x0003231c sw v0, 0x1c(sp) | *(var_1ch_3) = v0;
0x00032320 sw zero, 0x18(sp) | *(var_18h_11) = 0;
0x00032324 move s4, a1 | s4 = a1;
0x00032328 move s5, a0 | s5 = a0;
0x0003232c bal 0x23124 | sym_netd_device_get_name ();
0x00032330 lw gp, 0x10(sp) | gp = *(var_10h_11);
0x00032334 move a1, v0 | a1 = v0;
0x00032338 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0003233c lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* esilref: '/proc/sys/net/ipv6/conf/&s/accept_ra' */
0x00032340 addiu a0, a0, 0x62a0 | a0 += 0x62a0;
0x00032344 jalr t9 | t9 ();
0x00032348 addiu v1, s4, -2 | v1 = s4 + -2;
0x0003234c sltiu v1, v1, 2 | v1 = (v1 < 2) ? 1 : 0;
0x00032350 lw gp, 0x10(sp) | gp = *(var_10h_11);
0x00032354 move s3, v0 | s3 = v0;
| if (v1 != 0) {
0x00032358 bnez v1, 0x32420 | goto label_2;
| }
0x0003235c lw s0, -0x7cfc(gp) | s0 = *(gp);
0x00032360 lw t9, -0x7ae0(gp) | t9 = sym.netd_util_write_to_file;
0x00032364 addiu s1, sp, 0x18 | s1 = sp + 0x18;
0x00032368 move a3, s1 | a3 = s1;
0x0003236c move a2, zero | a2 = 0;
| /* esilref: ' ' */
0x00032370 addiu a1, s0, 0x6298 | a1 = s0 + 0x6298;
0x00032374 move a0, v0 | a0 = v0;
0x00032378 jalr t9 | t9 ();
0x0003237c lw gp, 0x10(sp) | gp = *(var_10h_11);
| if (v0 == 0) {
0x00032380 beqz v0, 0x32448 | goto label_3;
| }
0x00032384 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00032388 move a0, s3 | a0 = s3;
0x0003238c jalr t9 | t9 ();
0x00032390 lw gp, 0x10(sp) | gp = *(var_10h_11);
0x00032394 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00032398 move a0, s5 | a0 = s5;
0x0003239c bal 0x23124 | sym_netd_device_get_name ();
0x000323a0 lw gp, 0x10(sp) | gp = *(var_10h_11);
0x000323a4 move a1, v0 | a1 = v0;
0x000323a8 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000323ac lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._proc_sys_net_ipv6_conf__s_autoconf */
0x000323b0 addiu a0, a0, 0x62f4 | a0 += 0x62f4;
0x000323b4 jalr t9 | t9 ();
0x000323b8 lw gp, 0x10(sp) | gp = *(var_10h_11);
0x000323bc move s3, v0 | s3 = v0;
| /* esilref: ' ' */
0x000323c0 addiu a1, s0, 0x6298 | a1 = s0 + 0x6298;
| label_1:
0x000323c4 lw t9, -0x7ae0(gp) | t9 = sym.netd_util_write_to_file;
0x000323c8 move a3, s1 | a3 = s1;
0x000323cc move a2, zero | a2 = 0;
0x000323d0 move a0, s3 | a0 = s3;
0x000323d4 jalr t9 | t9 ();
0x000323d8 lw gp, 0x10(sp) | gp = *(var_10h_11);
| if (v0 == 0) {
0x000323dc beqz v0, 0x324e0 | goto label_4;
| }
| do {
| label_0:
0x000323e0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000323e4 move a0, s3 | a0 = s3;
0x000323e8 jalr t9 | t9 ();
0x000323ec lw v1, 0x1c(sp) | v1 = *(var_1ch_3);
0x000323f0 lw v0, (s2) | v0 = *(s2);
0x000323f4 lw gp, 0x10(sp) | gp = *(var_10h_11);
| if (v1 != v0) {
0x000323f8 bne v1, v0, 0x32520 | goto label_5;
| }
0x000323fc lw ra, 0x3c(sp) | ra = *(var_3ch_3);
0x00032400 lw s5, 0x38(sp) | s5 = *(var_38h_3);
0x00032404 lw s4, 0x34(sp) | s4 = *(var_34h_4);
0x00032408 lw s3, 0x30(sp) | s3 = *(var_30h_4);
0x0003240c lw s2, 0x2c(sp) | s2 = *(var_2ch_9);
0x00032410 lw s1, 0x28(sp) | s1 = *(var_28h_6);
0x00032414 lw s0, 0x24(sp) | s0 = *(var_24h_10);
0x00032418 addiu sp, sp, 0x40 |
0x0003241c jr ra | return v0;
| label_2:
0x00032420 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00032424 lw t9, -0x7ae0(gp) | t9 = sym.netd_util_write_to_file;
0x00032428 addiu s1, sp, 0x18 | s1 = sp + 0x18;
0x0003242c move a3, s1 | a3 = s1;
0x00032430 move a2, zero | a2 = 0;
0x00032434 addiu a1, a1, 0x629c | a1 += 0x629c;
0x00032438 move a0, v0 | a0 = v0;
0x0003243c jalr t9 | t9 ();
0x00032440 lw gp, 0x10(sp) | gp = *(var_10h_11);
| if (v0 == 0) {
0x00032444 bnez v0, 0x32478 |
| label_3:
0x00032448 lw v0, 0x18(sp) | v0 = *(var_18h_11);
0x0003244c lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00032450 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00032454 lw a2, 8(v0) | a2 = *((v0 + 2));
| /* str.Failed_to_change_IPv6_accept_ra_value:__s */
0x00032458 addiu a1, a1, 0x62c8 | a1 += 0x62c8;
0x0003245c addiu a0, zero, 3 | a0 = 3;
0x00032460 bal 0x434d0 | sym_netd_log_esc ();
0x00032464 lw gp, 0x10(sp) | gp = *(var_10h_11);
0x00032468 lw t9, -0x756c(gp) | t9 = sym.imp.g_clear_error;
0x0003246c move a0, s1 | a0 = s1;
0x00032470 jalr t9 | t9 ();
0x00032474 lw gp, 0x10(sp) | gp = *(var_10h_11);
| }
0x00032478 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0003247c move a0, s3 | a0 = s3;
0x00032480 jalr t9 | t9 ();
0x00032484 lw gp, 0x10(sp) | gp = *(var_10h_11);
0x00032488 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0003248c move a0, s5 | a0 = s5;
0x00032490 bal 0x23124 | sym_netd_device_get_name ();
0x00032494 lw gp, 0x10(sp) | gp = *(var_10h_11);
0x00032498 move a1, v0 | a1 = v0;
0x0003249c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000324a0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._proc_sys_net_ipv6_conf__s_autoconf */
0x000324a4 addiu a0, a0, 0x62f4 | a0 += 0x62f4;
0x000324a8 jalr t9 | t9 ();
0x000324ac addiu v1, zero, 3 | v1 = 3;
0x000324b0 lw gp, 0x10(sp) | gp = *(var_10h_11);
0x000324b4 move s3, v0 | s3 = v0;
| if (s4 != v1) {
0x000324b8 bne s4, v1, 0x32514 | goto label_6;
| }
0x000324bc lw a1, -0x7cfc(gp) | a1 = *(gp);
0x000324c0 lw t9, -0x7ae0(gp) | t9 = sym.netd_util_write_to_file;
0x000324c4 addiu a1, a1, 0x629c | a1 += 0x629c;
0x000324c8 move a3, s1 | a3 = s1;
0x000324cc move a2, zero | a2 = 0;
0x000324d0 move a0, s3 | a0 = s3;
0x000324d4 jalr t9 | t9 ();
0x000324d8 lw gp, 0x10(sp) | gp = *(var_10h_11);
0x000324dc bnez v0, 0x323e0 |
| } while (v0 != 0);
| label_4:
0x000324e0 lw v0, 0x18(sp) | v0 = *(var_18h_11);
0x000324e4 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x000324e8 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x000324ec lw a2, 8(v0) | a2 = *((v0 + 2));
| /* str.Failed_to_change_IPv6_autoconf_value:__s */
0x000324f0 addiu a1, a1, 0x6318 | a1 += 0x6318;
0x000324f4 addiu a0, zero, 3 | a0 = 3;
0x000324f8 bal 0x434d0 | sym_netd_log_esc ();
0x000324fc lw gp, 0x10(sp) | gp = *(var_10h_11);
0x00032500 lw t9, -0x756c(gp) | t9 = sym.imp.g_clear_error;
0x00032504 move a0, s1 | a0 = s1;
0x00032508 jalr t9 | t9 ();
0x0003250c lw gp, 0x10(sp) | gp = *(var_10h_11);
0x00032510 b 0x323e0 | goto label_0;
| label_6:
0x00032514 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: ' ' */
0x00032518 addiu a1, a1, 0x6298 | a1 += 0x6298;
0x0003251c b 0x323c4 | goto label_1;
| label_5:
0x00032520 lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x00032524 jalr t9 | t9 ();
0x00032528 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x38658 */
| #include <stdint.h>
|
; (fcn) fcn.00038658 () | void fcn_00038658 () {
0x00038658 lui gp, 6 |
0x0003865c addiu gp, gp, -0xa18 |
0x00038660 addu gp, gp, t9 | gp += t9;
0x00038664 addiu sp, sp, -0x50 |
0x00038668 sw s3, 0x3c(sp) | *(var_3ch) = s3;
0x0003866c lw s3, -0x773c(gp) | s3 = *((gp - 7631));
0x00038670 sw gp, 0x20(sp) | *(var_20h_2) = gp;
0x00038674 sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x00038678 lw v0, (s3) | v0 = *(s3);
0x0003867c sw s6, 0x48(sp) | *(var_48h) = s6;
0x00038680 sw s5, 0x44(sp) | *(var_44h) = s5;
0x00038684 sw s4, 0x40(sp) | *(var_40h) = s4;
0x00038688 sw s2, 0x38(sp) | *(var_38h) = s2;
0x0003868c sw s1, 0x34(sp) | *(var_34h) = s1;
0x00038690 sw s0, 0x30(sp) | *(var_30h) = s0;
0x00038694 sw zero, 0x28(sp) | *(var_28h_4) = 0;
0x00038698 sw v0, 0x2c(sp) | *(var_2ch_4) = v0;
0x0003869c lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
| if (a0 == 0) {
0x000386a0 beqz a0, 0x38c8c | goto label_5;
| }
0x000386a4 move s1, a0 | s1 = a0;
0x000386a8 bal 0x23124 | sym_netd_device_get_name ();
0x000386ac lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000386b0 move a0, s1 | a0 = s1;
0x000386b4 lw t9, -0x7b90(gp) | t9 = sym.netd_device_part_of_bridge;
0x000386b8 move s5, v0 | s5 = v0;
0x000386bc bal 0x238ac | sym_netd_device_part_of_bridge ();
0x000386c0 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000386c4 move a0, v0 | a0 = v0;
0x000386c8 lw t9, -0x7ec0(gp) | t9 = sym.netd_util_is_empty;
0x000386cc move s0, v0 | s0 = v0;
0x000386d0 bal 0x53510 | sym_netd_util_is_empty ();
0x000386d4 lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 == 0) {
0x000386d8 beqz v0, 0x38cb4 | goto label_6;
| }
0x000386dc move s2, zero | s2 = 0;
| label_3:
0x000386e0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000386e4 move a0, s0 | a0 = s0;
0x000386e8 jalr t9 | t9 ();
0x000386ec lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000386f0 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000386f4 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.drivernl80211 */
0x000386f8 addiu a0, a0, 0x7a44 | a0 += 0x7a44;
0x000386fc jalr t9 | t9 ();
0x00038700 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038704 move a0, s2 | a0 = s2;
0x00038708 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0003870c move a1, v0 | a1 = v0;
0x00038710 jalr t9 | t9 ();
0x00038714 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038718 move s0, v0 | s0 = v0;
0x0003871c lw s4, -0x7cfc(gp) | s4 = *(gp);
0x00038720 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00038724 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._run_hostapd */
0x00038728 addiu a1, s4, 0x7a54 | a1 = s4 + 0x7a54;
| /* str.ctrl_interface_s */
0x0003872c addiu a0, a0, 0x7a64 | a0 += 0x7a64;
0x00038730 jalr t9 | t9 ();
0x00038734 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038738 move a1, v0 | a1 = v0;
0x0003873c lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00038740 move a0, s0 | a0 = s0;
0x00038744 jalr t9 | t9 ();
0x00038748 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003874c move s0, v0 | s0 = v0;
0x00038750 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00038754 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.ctrl_interface_group0 */
0x00038758 addiu a0, a0, 0x7a78 | a0 += 0x7a78;
0x0003875c jalr t9 | t9 ();
0x00038760 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038764 move a1, v0 | a1 = v0;
0x00038768 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0003876c move a0, s0 | a0 = s0;
0x00038770 jalr t9 | t9 ();
0x00038774 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038778 move a0, s1 | a0 = s1;
0x0003877c lw t9, -0x7d3c(gp) | t9 = sym.netd_device_wlan_ap_get_ssid;
0x00038780 move s2, v0 | s2 = v0;
0x00038784 bal 0x39934 | sym_netd_device_wlan_ap_get_ssid ();
0x00038788 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003878c move a1, v0 | a1 = v0;
0x00038790 move s0, v0 | s0 = v0;
0x00038794 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00038798 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str.ssid_s */
0x0003879c addiu a0, a0, 0x7a90 | a0 += 0x7a90;
0x000387a0 jalr t9 | t9 ();
0x000387a4 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000387a8 move a1, v0 | a1 = v0;
0x000387ac lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x000387b0 move a0, s2 | a0 = s2;
0x000387b4 jalr t9 | t9 ();
0x000387b8 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000387bc move a0, s0 | a0 = s0;
0x000387c0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000387c4 lw s0, -0x7d4c(gp) | s0 = sym.netd_device_wlan_ap_get_band;
0x000387c8 move s2, v0 | s2 = v0;
0x000387cc jalr t9 | t9 ();
0x000387d0 move t9, s0 | t9 = s0;
0x000387d4 move a0, s1 | a0 = s1;
0x000387d8 bal 0x3a950 | sym_netd_device_wlan_ap_get_band ();
0x000387dc addiu v1, zero, 1 | v1 = 1;
0x000387e0 lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 == v1) {
0x000387e4 beq v0, v1, 0x38c64 | goto label_7;
| }
0x000387e8 addiu v1, zero, 2 | v1 = 2;
0x000387ec lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
| if (v0 == v1) {
0x000387f0 bnel v0, v1, 0x38c20 | goto label_8;
| }
0x000387f4 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000387f8 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.hw_modea */
0x000387fc addiu a0, a0, 0x7aa4 | a0 += 0x7aa4;
| label_0:
0x00038800 jalr t9 | t9 ();
0x00038804 nop |
0x00038808 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003880c move a1, v0 | a1 = v0;
0x00038810 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00038814 move a0, s2 | a0 = s2;
0x00038818 jalr t9 | t9 ();
0x0003881c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038820 move a0, s1 | a0 = s1;
0x00038824 lw t9, -0x7d44(gp) | t9 = sym.netd_device_wlan_ap_get_channel;
0x00038828 move s0, v0 | s0 = v0;
0x0003882c bal 0x3aad0 | sym_netd_device_wlan_ap_get_channel ();
0x00038830 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038834 move a1, v0 | a1 = v0;
0x00038838 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0003883c lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str.channel_d */
0x00038840 addiu a0, a0, 0x7adc | a0 += 0x7adc;
0x00038844 jalr t9 | t9 ();
0x00038848 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003884c move a1, v0 | a1 = v0;
0x00038850 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00038854 move a0, s0 | a0 = s0;
0x00038858 jalr t9 | t9 ();
0x0003885c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038860 move s0, v0 | s0 = v0;
0x00038864 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00038868 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.max_num_sta255 */
0x0003886c addiu a0, a0, 0x7ae8 | a0 += 0x7ae8;
0x00038870 jalr t9 | t9 ();
0x00038874 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038878 move a1, v0 | a1 = v0;
0x0003887c lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00038880 move a0, s0 | a0 = s0;
0x00038884 jalr t9 | t9 ();
0x00038888 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003888c move s0, v0 | s0 = v0;
0x00038890 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00038894 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.macaddr_acl0 */
0x00038898 addiu a0, a0, 0x7af8 | a0 += 0x7af8;
0x0003889c jalr t9 | t9 ();
0x000388a0 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000388a4 move a1, v0 | a1 = v0;
0x000388a8 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x000388ac move a0, s0 | a0 = s0;
0x000388b0 jalr t9 | t9 ();
0x000388b4 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000388b8 move s0, v0 | s0 = v0;
0x000388bc lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000388c0 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.auth_algs1 */
0x000388c4 addiu a0, a0, 0x7b08 | a0 += 0x7b08;
0x000388c8 jalr t9 | t9 ();
0x000388cc lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000388d0 move a0, s0 | a0 = s0;
0x000388d4 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x000388d8 move a1, v0 | a1 = v0;
0x000388dc jalr t9 | t9 ();
0x000388e0 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000388e4 move a0, s1 | a0 = s1;
0x000388e8 lw t9, -0x7d40(gp) | t9 = sym.netd_device_wlan_ap_get_ssid_hidden;
0x000388ec move s0, v0 | s0 = v0;
0x000388f0 bal 0x39b8c | sym_netd_device_wlan_ap_get_ssid_hidden ();
0x000388f4 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000388f8 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| if (v0 == 0) {
0x000388fc beqz v0, 0x38c80 | goto label_9;
| }
0x00038900 lw a0, -0x7cfc(gp) | a0 = *(gp);
| /* str.ignore_broadcast_ssid1 */
0x00038904 addiu a0, a0, 0x7b14 | a0 += 0x7b14;
| label_2:
0x00038908 jalr t9 | t9 ();
0x0003890c nop |
0x00038910 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038914 move a1, v0 | a1 = v0;
0x00038918 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0003891c move a0, s0 | a0 = s0;
0x00038920 jalr t9 | t9 ();
0x00038924 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038928 move s0, v0 | s0 = v0;
0x0003892c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00038930 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.ieee80211n1 */
0x00038934 addiu a0, a0, 0x7b44 | a0 += 0x7b44;
0x00038938 jalr t9 | t9 ();
0x0003893c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038940 move a1, v0 | a1 = v0;
0x00038944 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00038948 move a0, s0 | a0 = s0;
0x0003894c jalr t9 | t9 ();
0x00038950 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038954 move s0, v0 | s0 = v0;
0x00038958 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0003895c lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.own_ip_addr127.0.0.1 */
0x00038960 addiu a0, a0, 0x7b54 | a0 += 0x7b54;
0x00038964 jalr t9 | t9 ();
0x00038968 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003896c move a0, s0 | a0 = s0;
0x00038970 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00038974 move a1, v0 | a1 = v0;
0x00038978 jalr t9 | t9 ();
0x0003897c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038980 move a0, s1 | a0 = s1;
0x00038984 lw t9, -0x7d38(gp) | t9 = sym.netd_device_wlan_ap_get_wpa_personal_enabled;
0x00038988 move s0, v0 | s0 = v0;
0x0003898c bal 0x3a02c | sym_netd_device_wlan_ap_get_wpa_personal_enabled ();
0x00038990 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038994 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| if (v0 == 0) {
0x00038998 beqz v0, 0x38c74 | goto label_10;
| }
0x0003899c lw a0, -0x7cfc(gp) | a0 = *(gp);
| /* str.wpa2 */
0x000389a0 addiu a0, a0, 0x7b6c | a0 += 0x7b6c;
0x000389a4 jalr t9 | t9 ();
0x000389a8 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000389ac move a1, v0 | a1 = v0;
0x000389b0 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x000389b4 move a0, s0 | a0 = s0;
0x000389b8 jalr t9 | t9 ();
0x000389bc lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000389c0 move a0, s1 | a0 = s1;
0x000389c4 lw t9, -0x7dcc(gp) | t9 = sym.netd_device_wlan_ap_get_wpa_personal_passphrase;
0x000389c8 move s2, v0 | s2 = v0;
0x000389cc bal 0x3a1ac | sym_netd_device_wlan_ap_get_wpa_personal_passphrase ();
0x000389d0 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000389d4 move a1, v0 | a1 = v0;
0x000389d8 move s0, v0 | s0 = v0;
0x000389dc lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000389e0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str.wpa_passphrase_s */
0x000389e4 addiu a0, a0, 0x7b74 | a0 += 0x7b74;
0x000389e8 jalr t9 | t9 ();
0x000389ec lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000389f0 move a1, v0 | a1 = v0;
0x000389f4 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x000389f8 move a0, s2 | a0 = s2;
0x000389fc jalr t9 | t9 ();
0x00038a00 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038a04 move a0, s0 | a0 = s0;
0x00038a08 lw t9, -0x7dc8(gp) | t9 = sym.netd_util_clear_string;
0x00038a0c move s2, v0 | s2 = v0;
0x00038a10 bal 0x524c0 | sym_netd_util_clear_string ();
0x00038a14 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038a18 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00038a1c move a0, s0 | a0 = s0;
0x00038a20 jalr t9 | t9 ();
0x00038a24 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038a28 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00038a2c lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str.wpa_key_mgmtWPA_PSK */
0x00038a30 addiu a0, a0, 0x7b88 | a0 += 0x7b88;
0x00038a34 jalr t9 | t9 ();
0x00038a38 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038a3c move a0, s2 | a0 = s2;
0x00038a40 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00038a44 move a1, v0 | a1 = v0;
0x00038a48 jalr t9 | t9 ();
0x00038a4c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038a50 move s0, v0 | s0 = v0;
0x00038a54 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00038a58 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str.wpa_pairwiseCCMP */
0x00038a5c addiu a0, a0, 0x7ba0 | a0 += 0x7ba0;
| label_1:
0x00038a60 jalr t9 | t9 ();
0x00038a64 nop |
0x00038a68 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038a6c move a1, v0 | a1 = v0;
0x00038a70 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00038a74 move a0, s0 | a0 = s0;
0x00038a78 jalr t9 | t9 ();
0x00038a7c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038a80 move s2, v0 | s2 = v0;
0x00038a84 lw s0, -0x7cfc(gp) | s0 = *(gp);
0x00038a88 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00038a8c addiu a0, s0, 0x7bbc | a0 = s0 + 0x7bbc;
0x00038a90 jalr t9 | t9 ();
0x00038a94 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038a98 move a1, v0 | a1 = v0;
0x00038a9c lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00038aa0 move a0, s2 | a0 = s2;
0x00038aa4 jalr t9 | t9 ();
0x00038aa8 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038aac move a0, v0 | a0 = v0;
0x00038ab0 lw t9, -0x765c(gp) | t9 = sym.imp.g_list_length;
0x00038ab4 move s6, v0 | s6 = v0;
0x00038ab8 jalr t9 | t9 ();
0x00038abc lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038ac0 addiu v0, v0, 1 | v0++;
0x00038ac4 lw t9, -0x783c(gp) | t9 = sym.imp.g_malloc0;
0x00038ac8 sll a0, v0, 2 | a0 = v0 << 2;
0x00038acc jalr t9 | t9 ();
0x00038ad0 move s2, v0 | s2 = v0;
0x00038ad4 lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (s6 == 0) {
0x00038ad8 beqz s6, 0x38af8 | goto label_11;
| }
0x00038adc move v1, v0 | v1 = v0;
0x00038ae0 move v0, s6 | v0 = s6;
| do {
0x00038ae4 lw a0, (v0) | a0 = *(v0);
0x00038ae8 lw v0, 4(v0) | v0 = *((v0 + 1));
0x00038aec addiu v1, v1, 4 | v1 += 4;
0x00038af0 sw a0, -4(v1) | *((v1 - 1)) = a0;
0x00038af4 bnez v0, 0x38ae4 |
| } while (v0 != 0);
| label_11:
0x00038af8 lw t9, -0x75a8(gp) | t9 = sym.imp.g_list_free;
0x00038afc move a0, s6 | a0 = s6;
0x00038b00 jalr t9 | t9 ();
0x00038b04 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038b08 addiu a0, s0, 0x7bbc | a0 = s0 + 0x7bbc;
0x00038b0c lw t9, -0x77b4(gp) | t9 = sym.imp.g_strjoinv;
0x00038b10 move a1, s2 | a1 = s2;
0x00038b14 jalr t9 | t9 ();
0x00038b18 lw a0, (s2) | a0 = *(s2);
0x00038b1c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038b20 move s6, v0 | s6 = v0;
| if (a0 == 0) {
0x00038b24 beqz a0, 0x38b44 | goto label_12;
| }
0x00038b28 addiu s0, s2, 4 | s0 = s2 + 4;
| do {
0x00038b2c lw t9, -0x7dc8(gp) | t9 = sym.netd_util_clear_string;
0x00038b30 addiu s0, s0, 4 | s0 += 4;
0x00038b34 bal 0x524c0 | sym_netd_util_clear_string ();
0x00038b38 lw a0, -4(s0) | a0 = *((s0 - 1));
0x00038b3c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038b40 bnez a0, 0x38b2c |
| } while (a0 != 0);
| label_12:
0x00038b44 lw t9, -0x78d0(gp) | t9 = sym.imp.g_strfreev;
0x00038b48 move a0, s2 | a0 = s2;
0x00038b4c jalr t9 | t9 ();
0x00038b50 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038b54 move a2, s5 | a2 = s5;
| /* str._run_hostapd */
0x00038b58 addiu a1, s4, 0x7a54 | a1 = s4 + 0x7a54;
0x00038b5c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00038b60 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._s__s.conf */
0x00038b64 addiu a0, a0, 0x7bc0 | a0 += 0x7bc0;
0x00038b68 jalr t9 | t9 ();
0x00038b6c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038b70 move s0, v0 | s0 = v0;
0x00038b74 addiu v0, sp, 0x28 | v0 = sp + 0x28;
0x00038b78 sw v0, 0x18(sp) | *(var_18h_4) = v0;
0x00038b7c addiu v0, zero, 1 | v0 = 1;
0x00038b80 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00038b84 lw t9, -0x7ae4(gp) | t9 = sym.netd_util_write_to_file_full;
0x00038b88 addiu v0, zero, 0x120 | v0 = aav.0x00000120;
0x00038b8c sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00038b90 move a3, zero | a3 = 0;
0x00038b94 move a2, zero | a2 = 0;
0x00038b98 move a1, s6 | a1 = s6;
0x00038b9c move a0, s0 | a0 = s0;
0x00038ba0 bal 0x5305c | sym_netd_util_write_to_file_full ();
0x00038ba4 lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 == 0) {
0x00038ba8 beqz v0, 0x38ce8 | goto label_13;
| }
0x00038bac addiu s1, zero, 1 | s1 = 1;
| if (s0 == 0) {
| label_4:
0x00038bb0 beqz s0, 0x38be8 | goto label_14;
| }
0x00038bb4 nop |
0x00038bb8 lw t9, -0x7dc8(gp) | t9 = sym.netd_util_clear_string;
0x00038bbc move a0, s6 | a0 = s6;
0x00038bc0 bal 0x524c0 | sym_netd_util_clear_string ();
0x00038bc4 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038bc8 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00038bcc move a0, s6 | a0 = s6;
0x00038bd0 jalr t9 | t9 ();
0x00038bd4 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038bd8 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00038bdc move a0, s0 | a0 = s0;
0x00038be0 jalr t9 | t9 ();
0x00038be4 lw gp, 0x20(sp) | gp = *(var_20h_2);
| do {
| label_14:
0x00038be8 lw a0, 0x2c(sp) | a0 = *(var_2ch_4);
0x00038bec lw v1, (s3) | v1 = *(s3);
0x00038bf0 move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x00038bf4 bne a0, v1, 0x38d3c | goto label_15;
| }
0x00038bf8 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x00038bfc lw s6, 0x48(sp) | s6 = *(var_48h);
0x00038c00 lw s5, 0x44(sp) | s5 = *(var_44h);
0x00038c04 lw s4, 0x40(sp) | s4 = *(var_40h);
0x00038c08 lw s3, 0x3c(sp) | s3 = *(var_3ch);
0x00038c0c lw s2, 0x38(sp) | s2 = *(var_38h);
0x00038c10 lw s1, 0x34(sp) | s1 = *(var_34h);
0x00038c14 lw s0, 0x30(sp) | s0 = *(var_30h);
0x00038c18 addiu sp, sp, 0x50 |
0x00038c1c jr ra | return v1;
| label_8:
0x00038c20 move a0, s1 | a0 = s1;
0x00038c24 bal 0x23124 | sym_netd_device_get_name ();
0x00038c28 move a0, s1 | a0 = s1;
0x00038c2c move t9, s0 | t9 = s0;
0x00038c30 move s1, v0 | s1 = v0;
0x00038c34 bal 0x3a950 | sym_netd_device_wlan_ap_get_band ();
0x00038c38 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038c3c move a2, s1 | a2 = s1;
0x00038c40 move a3, v0 | a3 = v0;
0x00038c44 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00038c48 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Unknown_WLAN_AP_band_configuration:__d */
0x00038c4c addiu a1, a1, 0x7ab0 | a1 += 0x7ab0;
0x00038c50 addiu a0, zero, 3 | a0 = 3;
0x00038c54 bal 0x434d0 | sym_netd_log_esc ();
0x00038c58 move s1, zero | s1 = 0;
0x00038c5c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038c60 b 0x38be8 |
| } while (1);
| label_7:
0x00038c64 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00038c68 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.hw_modeg */
0x00038c6c addiu a0, a0, 0x7a98 | a0 += 0x7a98;
0x00038c70 b 0x38800 | goto label_0;
| label_10:
0x00038c74 lw a0, -0x7cfc(gp) | a0 = *(gp);
| /* str.wpa0 */
0x00038c78 addiu a0, a0, 0x7bb4 | a0 += 0x7bb4;
0x00038c7c b 0x38a60 | goto label_1;
| label_9:
0x00038c80 lw a0, -0x7cfc(gp) | a0 = *(gp);
| /* str.ignore_broadcast_ssid0 */
0x00038c84 addiu a0, a0, 0x7b2c | a0 += 0x7b2c;
0x00038c88 b 0x38908 | goto label_2;
| label_5:
0x00038c8c lw v0, -0x7cfc(gp) | v0 = *(gp);
0x00038c90 lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x00038c94 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev' */
0x00038c98 addiu v0, v0, 0x7a34 | v0 += 0x7a34;
0x00038c9c lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00038ca0 sw v0, 0x10(sp) | *(var_10h_4) = v0;
| /* str.populate_hostapd_config_files */
0x00038ca4 addiu a3, a3, -0x7f58 | a3 += -0x7f58;
0x00038ca8 addiu a2, zero, 0x78 | a2 = 0x78;
| /* str.src_netd_device_wlan_ap.c */
0x00038cac addiu a1, a1, 0x79b0 | a1 += 0x79b0;
0x00038cb0 jalr t9 | t9 ();
| label_6:
0x00038cb4 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00038cb8 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00038cbc move a1, s0 | a1 = s0;
| /* str.bridge_s */
0x00038cc0 addiu a0, a0, 0x7a38 | a0 += 0x7a38;
0x00038cc4 jalr t9 | t9 ();
0x00038cc8 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038ccc move a1, v0 | a1 = v0;
0x00038cd0 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00038cd4 move a0, zero | a0 = 0;
0x00038cd8 jalr t9 | t9 ();
0x00038cdc move s2, v0 | s2 = v0;
0x00038ce0 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038ce4 b 0x386e0 | goto label_3;
| label_13:
0x00038ce8 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00038cec move a0, s1 | a0 = s1;
0x00038cf0 bal 0x23124 | sym_netd_device_get_name ();
0x00038cf4 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038cf8 lw v1, 0x28(sp) | v1 = *(var_28h_4);
0x00038cfc move a3, s0 | a3 = s0;
0x00038d00 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00038d04 lw v1, 8(v1) | v1 = *((v1 + 2));
0x00038d08 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00038d0c move a2, v0 | a2 = v0;
| /* str.__s__Failed_to_write_hostapd_conf:__s__s */
0x00038d10 addiu a1, a1, 0x7bcc | a1 += 0x7bcc;
0x00038d14 addiu a0, zero, 3 | a0 = 3;
0x00038d18 sw v1, 0x10(sp) | *(var_10h_4) = v1;
0x00038d1c bal 0x434d0 | sym_netd_log_esc ();
0x00038d20 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038d24 lw a0, 0x28(sp) | a0 = *(var_28h_4);
0x00038d28 lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x00038d2c move s1, zero | s1 = 0;
0x00038d30 jalr t9 | t9 ();
0x00038d34 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038d38 b 0x38bb0 | goto label_4;
| label_15:
0x00038d3c lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x00038d40 jalr t9 | t9 ();
0x00038d44 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x3b50c */
| #include <stdint.h>
|
; (fcn) fcn.0003b50c () | void fcn_0003b50c () {
0x0003b50c lui gp, 6 |
0x0003b510 addiu gp, gp, -0x38cc |
0x0003b514 addu gp, gp, t9 | gp += t9;
0x0003b518 addiu sp, sp, -0x240 |
0x0003b51c sw s1, 0x230(sp) | *(var_230h) = s1;
0x0003b520 lw s1, -0x773c(gp) | s1 = *((gp - 7631));
0x0003b524 sw gp, 0x18(sp) | *(var_18h_3) = gp;
0x0003b528 sw ra, 0x23c(sp) | *(var_23ch) = ra;
0x0003b52c lw v0, (s1) | v0 = *(s1);
0x0003b530 sw s3, 0x238(sp) | *(var_238h) = s3;
0x0003b534 sw s2, 0x234(sp) | *(var_234h) = s2;
0x0003b538 sw s0, 0x22c(sp) | *(var_22ch) = s0;
0x0003b53c sw v0, 0x224(sp) | *(var_224h) = v0;
0x0003b540 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| if (a0 == 0) {
0x0003b544 beqz a0, 0x3b610 | goto label_1;
| }
0x0003b548 move a1, a0 | a1 = a0;
0x0003b54c lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
| /* str._sys_class_net__s_phy80211 */
0x0003b550 addiu a0, a0, -0x7c00 | a0 += -0x7c00;
0x0003b554 jalr t9 | t9 ();
0x0003b558 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003b55c addiu s2, sp, 0x24 | s2 = sp + 0x24;
0x0003b560 addiu a2, zero, 0x1ff | a2 = 0x1ff;
0x0003b564 lw t9, -0x782c(gp) | t9 = sym.imp.readlink;
0x0003b568 move a1, s2 | a1 = s2;
0x0003b56c move a0, v0 | a0 = v0;
0x0003b570 move s3, v0 | s3 = v0;
0x0003b574 jalr t9 | t9 ();
0x0003b578 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003b57c move s0, v0 | s0 = v0;
0x0003b580 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0003b584 move a0, s3 | a0 = s3;
0x0003b588 jalr t9 | t9 ();
0x0003b58c lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (s0 < 0) {
0x0003b590 bltz s0, 0x3b65c | goto label_2;
| }
0x0003b594 addiu v0, sp, 0x228 | v0 = sp + aav.0x00000228;
0x0003b598 lw a2, -0x7bf4(gp) | a2 = *((gp - 7933));
0x0003b59c addu v0, v0, s0 | v0 += s0;
0x0003b5a0 lw t9, -0x7688(gp) | t9 = sym.imp.g_strstr_len;
| /* esilref: 'phy' */
0x0003b5a4 addiu a2, a2, -0x7bd0 | a2 += -0x7bd0;
0x0003b5a8 move a1, s0 | a1 = s0;
0x0003b5ac move a0, s2 | a0 = s2;
0x0003b5b0 sb zero, -0x204(v0) | *(v0) = 0;
0x0003b5b4 jalr t9 | t9 ();
0x0003b5b8 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 == 0) {
0x0003b5bc beqz v0, 0x3b638 | goto label_3;
| }
0x0003b5c0 lb v1, 3(v0) | v1 = *((v0 + 3));
0x0003b5c4 addiu v1, v1, -0x30 | v1 += -0x30;
0x0003b5c8 andi a0, v1, 0xff | a0 = v1 & 0xff;
0x0003b5cc sltiu a0, a0, 0xa | a0 = (a0 < 0xa) ? 1 : 0;
0x0003b5d0 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| if (a0 == 0) {
0x0003b5d4 beqz a0, 0x3b63c | goto label_4;
| }
0x0003b5d8 lb v0, 4(v0) | v0 = *((v0 + 4));
0x0003b5dc lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| if (v0 != 0) {
0x0003b5e0 bnez v0, 0x3b640 | goto label_5;
| }
0x0003b5e4 move v0, v1 | v0 = v1;
| do {
| label_0:
0x0003b5e8 lw a0, 0x224(sp) | a0 = *(var_224h);
0x0003b5ec lw v1, (s1) | v1 = *(s1);
0x0003b5f0 lw ra, 0x23c(sp) | ra = *(var_23ch);
| if (a0 != v1) {
0x0003b5f4 bne a0, v1, 0x3b6a0 | goto label_6;
| }
0x0003b5f8 lw s3, 0x238(sp) | s3 = *(var_238h);
0x0003b5fc lw s2, 0x234(sp) | s2 = *(var_234h);
0x0003b600 lw s1, 0x230(sp) | s1 = *(var_230h);
0x0003b604 lw s0, 0x22c(sp) | s0 = *(var_22ch);
0x0003b608 addiu sp, sp, 0x240 |
0x0003b60c jr ra | return v0;
| label_1:
0x0003b610 lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
0x0003b614 lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x0003b618 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| /* str.dev_name___NULL */
0x0003b61c addiu v0, v0, -0x7be4 | v0 += -0x7be4;
0x0003b620 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0003b624 sw v0, 0x10(sp) | *(var_10h_3) = v0;
| /* str.get_device_phy_id */
0x0003b628 addiu a3, a3, -0x76c8 | a3 += -0x76c8;
0x0003b62c addiu a2, zero, 0x54 | a2 = 0x54;
| /* str.src_netd_device_wlan_station.c */
0x0003b630 addiu a1, a1, -0x7c30 | a1 += -0x7c30;
0x0003b634 jalr t9 | t9 ();
| label_3:
0x0003b638 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| label_4:
0x0003b63c lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| label_5:
0x0003b640 move a2, s2 | a2 = s2;
| /* str.Failed_to_get_phy_id_from_path:__s */
0x0003b644 addiu a1, a1, -0x7bcc | a1 += -0x7bcc;
0x0003b648 addiu a0, zero, 3 | a0 = 3;
0x0003b64c bal 0x434d0 | sym_netd_log_esc ();
0x0003b650 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003b654 addiu v0, zero, -1 | v0 = -1;
0x0003b658 b 0x3b5e8 |
| } while (1);
| label_2:
0x0003b65c lw t9, -0x7488(gp) | t9 = sym.imp.__errno_location;
0x0003b660 jalr t9 | t9 ();
0x0003b664 nop |
0x0003b668 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003b66c lw t9, -0x74c4(gp) | t9 = sym.imp.strerror;
0x0003b670 lw a0, (v0) | a0 = *(v0);
0x0003b674 jalr t9 | t9 ();
0x0003b678 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003b67c move a2, v0 | a2 = v0;
0x0003b680 addiu a0, zero, 3 | a0 = 3;
0x0003b684 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x0003b688 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.Failed_to_get_path_for_phy_id__error:__s */
0x0003b68c addiu a1, a1, -0x7ba8 | a1 += -0x7ba8;
0x0003b690 bal 0x434d0 | sym_netd_log_esc ();
0x0003b694 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003b698 addiu v0, zero, -1 | v0 = -1;
0x0003b69c b 0x3b5e8 | goto label_0;
| label_6:
0x0003b6a0 lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003b6a4 jalr t9 | t9 ();
0x0003b6a8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x3b6ac */
| #include <stdint.h>
|
; (fcn) fcn.0003b6ac () | void fcn_0003b6ac () {
0x0003b6ac lui gp, 6 |
0x0003b6b0 addiu gp, gp, -0x3a6c |
0x0003b6b4 addu gp, gp, t9 | gp += t9;
0x0003b6b8 addiu sp, sp, -0x58 |
0x0003b6bc sw s1, 0x4c(sp) | *(var_4ch) = s1;
0x0003b6c0 lw s1, -0x773c(gp) | s1 = *((gp - 7631));
0x0003b6c4 sw gp, 0x28(sp) | *(var_28h_3) = gp;
0x0003b6c8 sw ra, 0x54(sp) | *(var_54h) = ra;
0x0003b6cc lw v0, (s1) | v0 = *(s1);
0x0003b6d0 sw s2, 0x50(sp) | *(var_50h) = s2;
0x0003b6d4 sw s0, 0x48(sp) | *(var_48h) = s0;
0x0003b6d8 sw zero, 0x3c(sp) | *(var_3ch) = 0;
0x0003b6dc sw zero, 0x40(sp) | *(var_40h) = 0;
0x0003b6e0 sw v0, 0x44(sp) | *(var_44h) = v0;
0x0003b6e4 lw t9, -0x7cf0(gp) | t9 = sym.netd_device_wlan_station_is_rts_enabled;
| if (a0 == 0) {
0x0003b6e8 beqz a0, 0x3b8e8 | goto label_1;
| }
0x0003b6ec move s0, a0 | s0 = a0;
0x0003b6f0 bal 0x3bf28 | sym_netd_device_wlan_station_is_rts_enabled ();
0x0003b6f4 lw gp, 0x28(sp) | gp = *(var_28h_3);
0x0003b6f8 move a0, s0 | a0 = s0;
0x0003b6fc lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0003b700 move s2, v0 | s2 = v0;
0x0003b704 bal 0x23124 | sym_netd_device_get_name ();
0x0003b708 lw gp, 0x28(sp) | gp = *(var_28h_3);
0x0003b70c lw t9, -0x7a24(gp) | t9 = *(gp);
| /* fcn.0003b50c */
0x0003b710 addiu t9, t9, -0x4af4 | t9 += -0x4af4;
0x0003b714 move a0, v0 | a0 = v0;
0x0003b718 bal 0x3b50c | fcn_0003b50c ();
0x0003b71c move a1, v0 | a1 = v0;
0x0003b720 lw gp, 0x28(sp) | gp = *(var_28h_3);
| if (v0 < 0) {
0x0003b724 bltz v0, 0x3b910 | goto label_2;
| }
| if (s2 != 0) {
0x0003b728 beql s2, zero, 0x3b80c |
0x0003b72c lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x0003b730 lw t9, -0x7cf4(gp) | t9 = sym.netd_device_wlan_station_get_rts_threshold;
0x0003b734 move a0, s0 | a0 = s0;
0x0003b738 sw v0, 0x34(sp) | *(var_34h) = v0;
0x0003b73c bal 0x3c258 | sym_netd_device_wlan_station_get_rts_threshold ();
0x0003b740 lw gp, 0x28(sp) | gp = *(var_28h_3);
0x0003b744 lw a1, 0x34(sp) | a1 = *(var_34h);
0x0003b748 move a2, v0 | a2 = v0;
0x0003b74c lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x0003b750 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._usr_sbin_iw_phy_d_set_rts__d */
0x0003b754 addiu a0, a0, -0x7b68 | a0 += -0x7b68;
0x0003b758 jalr t9 | t9 ();
0x0003b75c lw gp, 0x28(sp) | gp = *(var_28h_3);
0x0003b760 addiu a2, zero, -1 | a2 = -1;
0x0003b764 move a0, v0 | a0 = v0;
0x0003b768 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x0003b76c lw t9, -0x7818(gp) | t9 = sym.imp.g_strsplit;
0x0003b770 addiu a1, a1, -0x7b48 | a1 += -0x7b48;
0x0003b774 move s0, v0 | s0 = v0;
0x0003b778 jalr t9 | t9 ();
0x0003b77c lw gp, 0x28(sp) | gp = *(var_28h_3);
0x0003b780 move a0, s0 | a0 = s0;
0x0003b784 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0003b788 move s0, v0 | s0 = v0;
0x0003b78c jalr t9 | t9 ();
0x0003b790 lw gp, 0x28(sp) | gp = *(var_28h_3);
0x0003b794 addiu v0, sp, 0x3c | v0 = sp + 0x3c;
0x0003b798 sw v0, 0x24(sp) | *(var_24h_3) = v0;
0x0003b79c lw t9, -0x75fc(gp) | t9 = sym.imp.g_spawn_sync;
0x0003b7a0 addiu v0, sp, 0x40 | v0 = sp + 0x40;
0x0003b7a4 move a3, zero | a3 = 0;
0x0003b7a8 move a2, zero | a2 = 0;
0x0003b7ac move a1, s0 | a1 = s0;
0x0003b7b0 move a0, zero | a0 = 0;
0x0003b7b4 sw v0, 0x20(sp) | *(var_20h_2) = v0;
0x0003b7b8 sw zero, 0x1c(sp) | *(var_1ch_2) = 0;
0x0003b7bc sw zero, 0x18(sp) | *(var_18h_5) = 0;
0x0003b7c0 sw zero, 0x14(sp) | *(var_14h) = 0;
0x0003b7c4 sw zero, 0x10(sp) | *(var_10h_4) = 0;
0x0003b7c8 jalr t9 | t9 ();
0x0003b7cc lw gp, 0x28(sp) | gp = *(var_28h_3);
0x0003b7d0 move s2, v0 | s2 = v0;
0x0003b7d4 lw t9, -0x78d0(gp) | t9 = sym.imp.g_strfreev;
0x0003b7d8 move a0, s0 | a0 = s0;
0x0003b7dc jalr t9 | t9 ();
0x0003b7e0 lw gp, 0x28(sp) | gp = *(var_28h_3);
| if (s2 == 0) {
0x0003b7e4 beqz s2, 0x3b940 | goto label_3;
| }
0x0003b7e8 lw a3, 0x40(sp) | a3 = *(var_40h);
0x0003b7ec andi v0, a3, 0x7f | v0 = a3 & 0x7f;
0x0003b7f0 lw a2, -0x7bf4(gp) | a2 = *((gp - 7933));
| if (v0 != 0) {
0x0003b7f4 bnez v0, 0x3b938 | goto label_4;
| }
0x0003b7f8 ext v0, a3, 8, 8 | __asm ("ext v0, a3, 8, 8");
| /* esilref: 'on' */
0x0003b7fc addiu a2, a2, -0x7b7c | a2 += -0x7b7c;
| if (v0 != 0) {
0x0003b800 bnez v0, 0x3b8c8 | goto label_5;
| }
0x0003b804 addiu v0, zero, 1 | v0 = 1;
0x0003b808 b 0x3b914 | goto label_0;
| }
0x0003b80c lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._usr_sbin_iw_phy_d_set_rts_2347 */
0x0003b810 addiu a0, a0, -0x7b44 | a0 += -0x7b44;
0x0003b814 jalr t9 | t9 ();
0x0003b818 lw gp, 0x28(sp) | gp = *(var_28h_3);
0x0003b81c addiu a2, zero, -1 | a2 = -1;
0x0003b820 move a0, v0 | a0 = v0;
0x0003b824 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x0003b828 lw t9, -0x7818(gp) | t9 = sym.imp.g_strsplit;
0x0003b82c addiu a1, a1, -0x7b48 | a1 += -0x7b48;
0x0003b830 move s0, v0 | s0 = v0;
0x0003b834 jalr t9 | t9 ();
0x0003b838 lw gp, 0x28(sp) | gp = *(var_28h_3);
0x0003b83c move a0, s0 | a0 = s0;
0x0003b840 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0003b844 move s0, v0 | s0 = v0;
0x0003b848 jalr t9 | t9 ();
0x0003b84c lw gp, 0x28(sp) | gp = *(var_28h_3);
0x0003b850 addiu v0, sp, 0x3c | v0 = sp + 0x3c;
0x0003b854 sw v0, 0x24(sp) | *(var_24h_3) = v0;
0x0003b858 lw t9, -0x75fc(gp) | t9 = sym.imp.g_spawn_sync;
0x0003b85c addiu v0, sp, 0x40 | v0 = sp + 0x40;
0x0003b860 move a3, zero | a3 = 0;
0x0003b864 move a2, zero | a2 = 0;
0x0003b868 move a1, s0 | a1 = s0;
0x0003b86c move a0, zero | a0 = 0;
0x0003b870 sw v0, 0x20(sp) | *(var_20h_2) = v0;
0x0003b874 sw zero, 0x1c(sp) | *(var_1ch_2) = 0;
0x0003b878 sw zero, 0x18(sp) | *(var_18h_5) = 0;
0x0003b87c sw zero, 0x14(sp) | *(var_14h) = 0;
0x0003b880 sw zero, 0x10(sp) | *(var_10h_4) = 0;
0x0003b884 jalr t9 | t9 ();
0x0003b888 lw gp, 0x28(sp) | gp = *(var_28h_3);
0x0003b88c move s2, v0 | s2 = v0;
0x0003b890 lw t9, -0x78d0(gp) | t9 = sym.imp.g_strfreev;
0x0003b894 move a0, s0 | a0 = s0;
0x0003b898 jalr t9 | t9 ();
0x0003b89c lw gp, 0x28(sp) | gp = *(var_28h_3);
| if (s2 == 0) {
0x0003b8a0 beqz s2, 0x3b980 | goto label_6;
| }
0x0003b8a4 lw a3, 0x40(sp) | a3 = *(var_40h);
0x0003b8a8 andi v0, a3, 0x7f | v0 = a3 & 0x7f;
0x0003b8ac lw a2, -0x7bf4(gp) | a2 = *((gp - 7933));
| if (v0 == 0) {
0x0003b8b0 bnez v0, 0x3b8c4 |
0x0003b8b4 ext v0, a3, 8, 8 | __asm ("ext v0, a3, 8, 8");
| if (v0 == 0) {
0x0003b8b8 beql v0, zero, 0x3b914 | goto label_0;
| }
0x0003b8bc addiu v0, zero, 1 | v0 = 1;
0x0003b8c0 lw a2, -0x7bf4(gp) | a2 = *((gp - 7933));
| }
| /* esilref: 'off' */
0x0003b8c4 addiu a2, a2, -0x7b78 | a2 += -0x7b78;
| do {
| label_5:
0x0003b8c8 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x0003b8cc lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.Failed_to_set_RTS_threshold__s:_iw_returned_exit_status__d */
0x0003b8d0 addiu a1, a1, -0x7afc | a1 += -0x7afc;
0x0003b8d4 addiu a0, zero, 3 | a0 = 3;
0x0003b8d8 bal 0x434d0 | sym_netd_log_esc ();
0x0003b8dc lw gp, 0x28(sp) | gp = *(var_28h_3);
0x0003b8e0 move v0, zero | v0 = 0;
0x0003b8e4 b 0x3b914 | goto label_0;
| label_1:
0x0003b8e8 lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
0x0003b8ec lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x0003b8f0 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| /* esilref: 'dev != NULL' */
0x0003b8f4 addiu v0, v0, -0x7b74 | v0 += -0x7b74;
0x0003b8f8 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0003b8fc sw v0, 0x10(sp) | *(var_10h_4) = v0;
| /* str.set_rts */
0x0003b900 addiu a3, a3, -0x76b4 | a3 += -0x76b4;
0x0003b904 addiu a2, zero, 0x75 | a2 = 0x75;
| /* str.src_netd_device_wlan_station.c */
0x0003b908 addiu a1, a1, -0x7c30 | a1 += -0x7c30;
0x0003b90c jalr t9 | t9 ();
| label_2:
0x0003b910 move v0, zero | v0 = 0;
| label_0:
0x0003b914 lw a0, 0x44(sp) | a0 = *(var_44h);
0x0003b918 lw v1, (s1) | v1 = *(s1);
0x0003b91c lw ra, 0x54(sp) | ra = *(var_54h);
| if (a0 != v1) {
0x0003b920 bne a0, v1, 0x3b98c | goto label_7;
| }
0x0003b924 lw s2, 0x50(sp) | s2 = *(var_50h);
0x0003b928 lw s1, 0x4c(sp) | s1 = *(var_4ch);
0x0003b92c lw s0, 0x48(sp) | s0 = *(var_48h);
0x0003b930 addiu sp, sp, 0x58 |
0x0003b934 jr ra | return v0;
| /* esilref: 'on' */
| label_4:
0x0003b938 addiu a2, a2, -0x7b7c | a2 += -0x7b7c;
0x0003b93c b 0x3b8c8 |
| } while (1);
| label_3:
0x0003b940 lw a2, -0x7bf4(gp) | a2 = *((gp - 7933));
| /* esilref: 'on' */
0x0003b944 addiu a2, a2, -0x7b7c | a2 += -0x7b7c;
| do {
0x0003b948 lw v0, 0x3c(sp) | v0 = *(var_3ch);
0x0003b94c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x0003b950 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x0003b954 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str.Failed_to_set_RTS_threshold__s:__s */
0x0003b958 addiu a1, a1, -0x7b24 | a1 += -0x7b24;
0x0003b95c addiu a0, zero, 3 | a0 = 3;
0x0003b960 bal 0x434d0 | sym_netd_log_esc ();
0x0003b964 lw gp, 0x28(sp) | gp = *(var_28h_3);
0x0003b968 lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x0003b96c lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x0003b970 jalr t9 | t9 ();
0x0003b974 lw gp, 0x28(sp) | gp = *(var_28h_3);
0x0003b978 move v0, zero | v0 = 0;
0x0003b97c b 0x3b914 | goto label_0;
| label_6:
0x0003b980 lw a2, -0x7bf4(gp) | a2 = *((gp - 7933));
| /* esilref: 'off' */
0x0003b984 addiu a2, a2, -0x7b78 | a2 += -0x7b78;
0x0003b988 b 0x3b948 |
| } while (1);
| label_7:
0x0003b98c lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003b990 jalr t9 | t9 ();
0x0003b994 nop |
0x0003b998 lui gp, 6 |
0x0003b99c addiu gp, gp, -0x3d58 |
0x0003b9a0 addu gp, gp, t9 | gp += t9;
0x0003b9a4 addiu sp, sp, -0x20 |
0x0003b9a8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0003b9ac sw s0, 0x18(sp) | *(var_18h_4) = s0;
0x0003b9b0 lw s0, -0x7fd0(gp) | s0 = *((gp - 8180));
0x0003b9b4 sw gp, 0x10(sp) | *(var_10h_5) = gp;
0x0003b9b8 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x0003b9bc lw a0, 0x880(s0) | a0 = *((s0 + 544));
0x0003b9c0 sw zero, 0x884(v0) | *((v0 + 545)) = 0;
| if (a0 == 0) {
0x0003b9c4 bnez a0, 0x3b9dc |
0x0003b9c8 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x0003b9cc lw s0, 0x18(sp) | s0 = *(var_18h_4);
0x0003b9d0 move v0, zero | v0 = 0;
0x0003b9d4 addiu sp, sp, 0x20 |
0x0003b9d8 jr ra | return v0;
| }
0x0003b9dc lw t9, -0x779c(gp) | t9 = sym.imp.g_bus_unwatch_name;
0x0003b9e0 jalr t9 | t9 ();
0x0003b9e4 nop |
0x0003b9e8 lw gp, 0x10(sp) | gp = *(var_10h_5);
0x0003b9ec addiu a0, zero, 3 | a0 = 3;
0x0003b9f0 sw zero, 0x880(s0) | *((s0 + 544)) = 0;
0x0003b9f4 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x0003b9f8 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.WlanManager_didnt_start_in_time_for_WPS */
0x0003b9fc addiu a1, a1, -0x7ac0 | a1 += -0x7ac0;
0x0003ba00 bal 0x434d0 | sym_netd_log_esc ();
0x0003ba04 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x0003ba08 lw s0, 0x18(sp) | s0 = *(var_18h_4);
0x0003ba0c move v0, zero | v0 = 0;
0x0003ba10 addiu sp, sp, 0x20 |
0x0003ba14 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x42844 */
| #include <stdint.h>
|
; (fcn) fcn.00042844 () | void fcn_00042844 () {
0x00042844 lui gp, 5 |
0x00042848 addiu gp, gp, 0x53fc |
0x0004284c addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00042850 beqz a0, 0x429bc | goto label_1;
| }
0x00042854 nop |
0x00042858 addiu sp, sp, -0x40 |
0x0004285c sw s4, 0x2c(sp) | *(var_2ch) = s4;
0x00042860 sw s2, 0x24(sp) | *(var_24h_2) = s2;
0x00042864 sw s1, 0x20(sp) | *(var_20h) = s1;
0x00042868 lw s2, -0x7bf4(gp) | s2 = *((gp - 7933));
0x0004286c lw s1, -0x7bf4(gp) | s1 = *((gp - 7933));
0x00042870 lw s4, -0x7bf4(gp) | s4 = *((gp - 7933));
0x00042874 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x00042878 sw s6, 0x34(sp) | *(var_34h) = s6;
0x0004287c sw s3, 0x28(sp) | *(var_28h) = s3;
0x00042880 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00042884 sw s7, 0x38(sp) | *(var_38h) = s7;
0x00042888 sw s5, 0x30(sp) | *(var_30h) = s5;
0x0004288c sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00042890 move s6, a0 | s6 = a0;
| /* esilref: '&s&' */
0x00042894 addiu s2, s2, -0x60ec | s2 += -0x60ec;
| /* esilref: '&s' */
0x00042898 addiu s1, s1, -0x60e8 | s1 += -0x60e8;
0x0004289c addiu s3, zero, 2 | s3 = 2;
| /* str.Setter:__s_returned_non_zero_exit_code:__d */
0x000428a0 addiu s4, s4, -0x60c8 | s4 += -0x60c8;
0x000428a4 b 0x428b0 |
| while (s5 == 0) {
0x000428a8 lw ra, 0x3c(sp) | ra = *(var_3ch);
| if (s6 == 0) {
0x000428ac beqz s6, 0x42958 | goto label_2;
| }
| label_0:
0x000428b0 lw s0, (s6) | s0 = *(s6);
0x000428b4 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x000428b8 move a1, s0 | a1 = s0;
0x000428bc move a0, s2 | a0 = s2;
0x000428c0 jalr t9 | t9 ();
0x000428c4 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000428c8 move a2, s0 | a2 = s0;
0x000428cc move a1, s1 | a1 = s1;
0x000428d0 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x000428d4 addiu a0, zero, 1 | a0 = 1;
0x000428d8 move s7, v0 | s7 = v0;
0x000428dc bal 0x434d0 | sym_netd_log_esc ();
0x000428e0 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000428e4 lw t9, -0x7594(gp) | t9 = sym.imp.system;
0x000428e8 move a0, s7 | a0 = s7;
0x000428ec jalr t9 | t9 ();
0x000428f0 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000428f4 move s5, v0 | s5 = v0;
0x000428f8 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000428fc move a0, s7 | a0 = s7;
0x00042900 jalr t9 | t9 ();
0x00042904 andi v1, s5, 0x7f | v1 = s5 & 0x7f;
0x00042908 addiu v1, v1, 1 | v1++;
0x0004290c seb v1, v1 | __asm ("seb v1, v1");
0x00042910 sra v1, v1, 1 | v1 >>= 1;
0x00042914 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00042918 andi v0, s5, 0x7e | v0 = s5 & 0x7e;
| if (v1 > 0) {
0x0004291c blez v1, 0x42928 |
0x00042920 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| if (v0 == s3) {
0x00042924 beq v0, s3, 0x42980 | goto label_3;
| }
| }
0x00042928 beql s5, zero, 0x428a8 |
| }
0x0004292c lw s6, 4(s6) | s6 = *((s6 + 1));
0x00042930 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00042934 move a3, s5 | a3 = s5;
0x00042938 move a2, s0 | a2 = s0;
0x0004293c move a1, s4 | a1 = s4;
0x00042940 addiu a0, zero, 3 | a0 = 3;
0x00042944 bal 0x434d0 | sym_netd_log_esc ();
0x00042948 lw s6, 4(s6) | s6 = *((s6 + 1));
0x0004294c lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (s6 != 0) {
0x00042950 bnez s6, 0x428b0 | goto label_0;
| }
0x00042954 lw ra, 0x3c(sp) | ra = *(var_3ch);
| label_2:
0x00042958 lw s7, 0x38(sp) | s7 = *(var_38h);
0x0004295c lw s6, 0x34(sp) | s6 = *(var_34h);
0x00042960 lw s5, 0x30(sp) | s5 = *(var_30h);
0x00042964 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x00042968 lw s3, 0x28(sp) | s3 = *(var_28h);
0x0004296c lw s2, 0x24(sp) | s2 = *(var_24h_2);
0x00042970 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00042974 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00042978 addiu sp, sp, 0x40 |
0x0004297c jr ra | return v0;
| label_3:
0x00042980 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00042984 lw s7, 0x38(sp) | s7 = *(var_38h);
0x00042988 lw s6, 0x34(sp) | s6 = *(var_34h);
0x0004298c lw s5, 0x30(sp) | s5 = *(var_30h);
0x00042990 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x00042994 lw s3, 0x28(sp) | s3 = *(var_28h);
0x00042998 lw s2, 0x24(sp) | s2 = *(var_24h_2);
0x0004299c lw s1, 0x20(sp) | s1 = *(var_20h);
0x000429a0 move a2, s0 | a2 = s0;
0x000429a4 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x000429a8 lw s0, 0x1c(sp) | s0 = *(var_1ch);
| /* str.setter__s_was_interrupted */
0x000429ac addiu a1, a1, -0x60e4 | a1 += -0x60e4;
0x000429b0 addiu a0, zero, 2 | a0 = 2;
0x000429b4 addiu sp, sp, 0x40 |
0x000429b8 b 0x434d0 | void (*0x434d0)() ();
| label_1:
0x000429bc jr ra | return v0;
0x000429c0 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x429c4 */
| #include <stdint.h>
|
; (fcn) fcn.000429c4 () | void fcn_000429c4 () {
0x000429c4 lui gp, 5 |
0x000429c8 addiu gp, gp, 0x527c |
0x000429cc addu gp, gp, t9 | gp += t9;
0x000429d0 lw v0, -0x773c(gp) | v0 = *((gp - 7631));
0x000429d4 addiu sp, sp, -0x58 |
0x000429d8 sw v0, 0x24(sp) | *(var_24h) = v0;
0x000429dc lw v0, (v0) | v0 = *(v0);
0x000429e0 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000429e4 sw ra, 0x54(sp) | *(var_54h) = ra;
0x000429e8 sw fp, 0x50(sp) | *(var_50h) = fp;
0x000429ec sw s7, 0x4c(sp) | *(var_4ch) = s7;
0x000429f0 sw s6, 0x48(sp) | *(var_48h) = s6;
0x000429f4 sw s5, 0x44(sp) | *(var_44h) = s5;
0x000429f8 sw s4, 0x40(sp) | *(var_40h) = s4;
0x000429fc sw s3, 0x3c(sp) | *(var_3ch) = s3;
0x00042a00 sw s2, 0x38(sp) | *(var_38h) = s2;
0x00042a04 sw s1, 0x34(sp) | *(var_34h) = s1;
0x00042a08 sw s0, 0x30(sp) | *(var_30h) = s0;
0x00042a0c sw zero, 0x28(sp) | *(var_28h) = 0;
0x00042a10 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00042a14 lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
| if (a0 == 0) {
0x00042a18 beqz a0, 0x42bc8 | goto label_4;
| }
0x00042a1c lw s6, -0x7bf4(gp) | s6 = *((gp - 7933));
0x00042a20 lw s2, -0x7a24(gp) | s2 = *(gp);
0x00042a24 lw s5, -0x7bf4(gp) | s5 = *((gp - 7933));
0x00042a28 lw s4, -0x7bf4(gp) | s4 = *((gp - 7933));
0x00042a2c sw v0, 0x20(sp) | *(var_20h_2) = v0;
| /* str.Failed_to_write__s_to_disk:__s */
0x00042a30 addiu v0, s6, -0x6038 | v0 = s6 + -0x6038;
0x00042a34 move s0, a0 | s0 = a0;
0x00042a38 lw s3, -0x7bf4(gp) | s3 = *((gp - 7933));
0x00042a3c lw s7, -0x7bf4(gp) | s7 = *((gp - 7933));
| /* fcn.0004256c */
0x00042a40 addiu s2, s2, 0x256c | s2 += 0x256c;
0x00042a44 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00042a48 addiu s5, s5, -0x62a0 | s5 += -0x62a0;
0x00042a4c addiu s4, s4, -0x627c | s4 += -0x627c;
0x00042a50 b 0x42a70 |
| while (a2 != v0) {
| /* str.Unmapped_parser_type:__d */
0x00042a54 addiu a1, s7, -0x6054 | a1 = s7 + -0x6054;
0x00042a58 addiu a0, zero, 3 | a0 = 3;
0x00042a5c bal 0x434d0 | sym_netd_log_esc ();
0x00042a60 lw gp, 0x10(sp) | gp = *(var_10h);
0x00042a64 lw s0, 4(s0) | s0 = *((s0 + 1));
| label_3:
0x00042a68 lw v0, 0x24(sp) | v0 = *(var_24h);
| if (s0 == 0) {
0x00042a6c beqz s0, 0x42bcc | goto label_5;
| }
| label_0:
0x00042a70 lw s1, (s0) | s1 = *(s0);
0x00042a74 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00042a78 move a2, s1 | a2 = s1;
| /* esilref: '&s' */
0x00042a7c addiu a1, s3, -0x60e8 | a1 = s3 + -0x60e8;
0x00042a80 addiu a0, zero, 1 | a0 = 1;
0x00042a84 bal 0x434d0 | sym_netd_log_esc ();
0x00042a88 move a1, zero | a1 = 0;
0x00042a8c move t9, s2 | t9 = s2;
0x00042a90 move a0, s1 | a0 = s1;
0x00042a94 bal 0x4256c | fcn_0004256c ();
0x00042a98 move fp, v0 | fp = v0;
0x00042a9c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00042aa0 beqz v0, 0x42c5c | goto label_6;
| }
0x00042aa4 lw a2, 4(v0) | a2 = *((v0 + 1));
0x00042aa8 addiu v0, zero, 1 | v0 = 1;
0x00042aac addiu v0, zero, 2 | v0 = 2;
| if (a2 == v0) {
0x00042ab0 beq a2, v0, 0x42c08 | goto label_7;
| }
0x00042ab4 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00042ab8 bne a2, v0, 0x42a54 |
| }
0x00042abc lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
0x00042ac0 move a0, s4 | a0 = s4;
0x00042ac4 jalr t9 | t9 ();
0x00042ac8 lw a0, 8(fp) | a0 = *(arg_8h);
0x00042acc lw gp, 0x10(sp) | gp = *(var_10h);
0x00042ad0 lw a2, (a0) | a2 = *(a0);
0x00042ad4 move s6, v0 | s6 = v0;
| if (a2 != 0) {
0x00042ad8 beqz a2, 0x42b0c |
0x00042adc lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x00042ae0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00042ae4 move a1, v0 | a1 = v0;
| /* str._snameserver__s_n */
0x00042ae8 addiu a0, a0, -0x6078 | a0 += -0x6078;
0x00042aec jalr t9 | t9 ();
0x00042af0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00042af4 move a0, s6 | a0 = s6;
0x00042af8 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00042afc move s6, v0 | s6 = v0;
0x00042b00 jalr t9 | t9 ();
0x00042b04 lw gp, 0x10(sp) | gp = *(var_10h);
0x00042b08 lw a0, 8(fp) | a0 = *(arg_8h);
| }
0x00042b0c lw a2, 4(a0) | a2 = *((a0 + 1));
0x00042b10 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| if (a2 != 0) {
0x00042b14 beqz a2, 0x42b44 |
0x00042b18 lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x00042b1c move a1, s6 | a1 = s6;
| /* str._snameserver__s_n */
0x00042b20 addiu a0, a0, -0x6078 | a0 += -0x6078;
0x00042b24 jalr t9 | t9 ();
0x00042b28 lw gp, 0x10(sp) | gp = *(var_10h);
0x00042b2c move a0, s6 | a0 = s6;
0x00042b30 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00042b34 move s6, v0 | s6 = v0;
0x00042b38 jalr t9 | t9 ();
0x00042b3c lw gp, 0x10(sp) | gp = *(var_10h);
0x00042b40 lw a0, 8(fp) | a0 = *(arg_8h);
| }
0x00042b44 lw a2, 8(a0) | a2 = *((a0 + 2));
0x00042b48 lw v0, 0x20(sp) | v0 = *(var_20h_2);
| if (a2 != 0) {
0x00042b4c beqz a2, 0x42b80 |
0x00042b50 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00042b54 move a1, s6 | a1 = s6;
0x00042b58 addiu a0, v0, -0x6064 | a0 = v0 + -0x6064;
0x00042b5c jalr t9 | t9 ();
0x00042b60 lw gp, 0x10(sp) | gp = *(var_10h);
0x00042b64 sw v0, 0x18(sp) | *(var_18h_2) = v0;
0x00042b68 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00042b6c move a0, s6 | a0 = s6;
0x00042b70 jalr t9 | t9 ();
0x00042b74 lw v0, 0x18(sp) | v0 = *(var_18h_2);
0x00042b78 lw gp, 0x10(sp) | gp = *(var_10h);
0x00042b7c move s6, v0 | s6 = v0;
| }
| label_1:
0x00042b80 lw t9, -0x76f8(gp) | t9 = sym.imp.strlen;
0x00042b84 move a0, s6 | a0 = s6;
0x00042b88 jalr t9 | t9 ();
0x00042b8c lw gp, 0x10(sp) | gp = *(var_10h);
0x00042b90 addiu a3, sp, 0x28 | a3 = sp + 0x28;
0x00042b94 move a2, v0 | a2 = v0;
0x00042b98 lw t9, -0x7ae0(gp) | t9 = sym.netd_util_write_to_file;
0x00042b9c move a1, s6 | a1 = s6;
0x00042ba0 move a0, s1 | a0 = s1;
0x00042ba4 bal 0x53018 | sym_netd_util_write_to_file ();
0x00042ba8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00042bac beqz v0, 0x42c24 | goto label_8;
| }
| label_2:
0x00042bb0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00042bb4 move a0, s6 | a0 = s6;
0x00042bb8 jalr t9 | t9 ();
0x00042bbc lw s0, 4(s0) | s0 = *((s0 + 1));
0x00042bc0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s0 != 0) {
0x00042bc4 bnez s0, 0x42a70 | goto label_0;
| }
| label_4:
0x00042bc8 lw v0, 0x24(sp) | v0 = *(var_24h);
| label_5:
0x00042bcc lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x00042bd0 lw v0, (v0) | v0 = *(v0);
0x00042bd4 lw ra, 0x54(sp) | ra = *(var_54h);
| if (v1 == v0) {
0x00042bd8 bne v1, v0, 0x42c80 |
0x00042bdc lw fp, 0x50(sp) | fp = *(var_50h);
0x00042be0 lw s7, 0x4c(sp) | s7 = *(var_4ch);
0x00042be4 lw s6, 0x48(sp) | s6 = *(var_48h);
0x00042be8 lw s5, 0x44(sp) | s5 = *(var_44h);
0x00042bec lw s4, 0x40(sp) | s4 = *(var_40h);
0x00042bf0 lw s3, 0x3c(sp) | s3 = *(var_3ch);
0x00042bf4 lw s2, 0x38(sp) | s2 = *(var_38h);
0x00042bf8 lw s1, 0x34(sp) | s1 = *(var_34h);
0x00042bfc lw s0, 0x30(sp) | s0 = *(var_30h);
0x00042c00 addiu sp, sp, 0x58 |
0x00042c04 jr ra | return v0;
| label_7:
0x00042c08 lw t9, -0x77b4(gp) | t9 = sym.imp.g_strjoinv;
0x00042c0c lw a1, 8(fp) | a1 = *(arg_8h);
0x00042c10 move a0, s5 | a0 = s5;
0x00042c14 jalr t9 | t9 ();
0x00042c18 move s6, v0 | s6 = v0;
0x00042c1c lw gp, 0x10(sp) | gp = *(var_10h);
0x00042c20 b 0x42b80 | goto label_1;
| label_8:
0x00042c24 lw v0, 0x28(sp) | v0 = *(var_28h);
0x00042c28 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00042c2c lw a1, 0x1c(sp) | a1 = *(var_1ch);
0x00042c30 lw a3, 8(v0) | a3 = *((v0 + 2));
0x00042c34 move a2, s1 | a2 = s1;
0x00042c38 addiu a0, zero, 3 | a0 = 3;
0x00042c3c bal 0x434d0 | sym_netd_log_esc ();
0x00042c40 lw gp, 0x10(sp) | gp = *(var_10h);
0x00042c44 lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x00042c48 lw a0, 0x28(sp) | a0 = *(var_28h);
0x00042c4c jalr t9 | t9 ();
0x00042c50 lw gp, 0x10(sp) | gp = *(var_10h);
0x00042c54 sw zero, 0x28(sp) | *(var_28h) = 0;
0x00042c58 b 0x42bb0 | goto label_2;
| label_6:
0x00042c5c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00042c60 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00042c64 move a2, s1 | a2 = s1;
| /* str.Failed_to_find_cache_for_file__s */
0x00042c68 addiu a1, a1, -0x609c | a1 += -0x609c;
0x00042c6c addiu a0, zero, 3 | a0 = 3;
0x00042c70 bal 0x434d0 | sym_netd_log_esc ();
0x00042c74 lw gp, 0x10(sp) | gp = *(var_10h);
0x00042c78 lw s0, 4(s0) | s0 = *((s0 + 1));
0x00042c7c b 0x42a68 | goto label_3;
| }
0x00042c80 lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x00042c84 jalr t9 | t9 ();
0x00042c88 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x43c58 */
| #include <stdint.h>
|
; (fcn) fcn.00043c58 () | void fcn_00043c58 () {
0x00043c58 lui gp, 5 |
0x00043c5c addiu gp, gp, 0x3fe8 |
0x00043c60 addu gp, gp, t9 | gp += t9;
0x00043c64 lw v0, -0x773c(gp) | v0 = *((gp - 7631));
0x00043c68 addiu sp, sp, -0x50 |
0x00043c6c sw v0, 0x1c(sp) | *(var_1ch_2) = v0;
0x00043c70 lw v0, (v0) | v0 = *(v0);
0x00043c74 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x00043c78 sw s4, 0x38(sp) | *(var_38h) = s4;
0x00043c7c sw s3, 0x34(sp) | *(var_34h_2) = s3;
0x00043c80 sw s2, 0x30(sp) | *(var_30h_2) = s2;
0x00043c84 sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x00043c88 sw fp, 0x48(sp) | *(var_48h) = fp;
0x00043c8c sw s7, 0x44(sp) | *(var_44h) = s7;
0x00043c90 sw s6, 0x40(sp) | *(var_40h) = s6;
0x00043c94 sw s5, 0x3c(sp) | *(var_3ch) = s5;
0x00043c98 sw s1, 0x2c(sp) | *(var_2ch_2) = s1;
0x00043c9c sw s0, 0x28(sp) | *(var_28h_2) = s0;
0x00043ca0 move s3, a0 | s3 = a0;
0x00043ca4 move s4, a1 | s4 = a1;
0x00043ca8 move s2, a2 | s2 = a2;
0x00043cac sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x00043cb0 sw zero, 0x20(sp) | *(var_20h) = 0;
| if (a3 == 0) {
0x00043cb4 bnez a3, 0x43cd4 |
0x00043cb8 lw s0, -0x7fd0(gp) | s0 = *((gp - 8180));
0x00043cbc lw t9, -0x7aa0(gp) | t9 = sym.netd_util_compare_string_lists;
0x00043cc0 lw v0, 0x8e0(s0) | v0 = *((s0 + 568));
0x00043cc4 lw a1, 0x10(v0) | a1 = *((v0 + 4));
0x00043cc8 bal 0x52e08 | sym_netd_util_compare_string_lists ();
0x00043ccc lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 != 0) {
0x00043cd0 bnez v0, 0x44080 | goto label_7;
| }
| }
| label_4:
0x00043cd4 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00043cd8 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.Resolver_information_updated */
0x00043cdc addiu a1, a1, -0x5cf8 | a1 += -0x5cf8;
0x00043ce0 move a0, zero | a0 = 0;
0x00043ce4 bal 0x434d0 | sym_netd_log_esc ();
0x00043ce8 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043cec lw t9, -0x7aac(gp) | t9 = sym.netd_util_list_length;
0x00043cf0 move a0, s3 | a0 = s3;
0x00043cf4 bal 0x52cb4 | sym_netd_util_list_length ();
0x00043cf8 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043cfc move a0, s2 | a0 = s2;
0x00043d00 lw t9, -0x7aac(gp) | t9 = sym.netd_util_list_length;
0x00043d04 move s0, v0 | s0 = v0;
0x00043d08 bal 0x52cb4 | sym_netd_util_list_length ();
0x00043d0c addu v0, s0, v0 | v0 = s0 + v0;
0x00043d10 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (s4 == 0) {
0x00043d14 beqz s4, 0x44058 | goto label_8;
| }
0x00043d18 lw t9, -0x783c(gp) | t9 = sym.imp.g_malloc0;
0x00043d1c addiu a0, v0, 2 | a0 = v0 + 2;
0x00043d20 sll a0, a0, 2 | a0 <<= 2;
0x00043d24 jalr t9 | t9 ();
0x00043d28 move s1, v0 | s1 = v0;
0x00043d2c lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (s3 == 0) {
0x00043d30 beqz s3, 0x440c0 | goto label_9;
| }
| label_2:
0x00043d34 lw fp, -0x7bf4(gp) | fp = *((gp - 7933));
0x00043d38 move s7, s1 | s7 = s1;
0x00043d3c move s6, s3 | s6 = s3;
0x00043d40 move s5, zero | s5 = 0;
| /* str.nameserver__s_n */
0x00043d44 addiu fp, fp, -0x5cd8 | fp += -0x5cd8;
0x00043d48 b 0x43d50 |
| while (s6 != 0) {
0x00043d4c move s5, s0 | s5 = s0;
0x00043d50 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00043d54 lw a1, (s6) | a1 = *(s6);
0x00043d58 move a0, fp | a0 = fp;
0x00043d5c jalr t9 | t9 ();
0x00043d60 lw s6, 4(s6) | s6 = *((s6 + 1));
0x00043d64 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043d68 sw v0, (s7) | *(s7) = v0;
0x00043d6c addiu s0, s5, 1 | s0 = s5 + 1;
0x00043d70 addiu s7, s7, 4 | s7 += 4;
0x00043d74 bnez s6, 0x43d4c |
| }
| if (s4 != 0) {
0x00043d78 beqz s4, 0x43da8 |
0x00043d7c nop |
0x00043d80 sll s0, s0, 2 | s0 <<= 2;
0x00043d84 addu s6, s1, s0 | s6 = s1 + s0;
0x00043d88 addiu s0, s5, 2 | s0 = s5 + 2;
| label_6:
0x00043d8c lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x00043d90 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00043d94 move a1, s4 | a1 = s4;
| /* str.domain__s_n */
0x00043d98 addiu a0, a0, -0x5cc8 | a0 += -0x5cc8;
0x00043d9c jalr t9 | t9 ();
0x00043da0 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043da4 sw v0, (s6) | *(s6) = v0;
| }
| label_3:
0x00043da8 lw t9, -0x77b4(gp) | t9 = sym.imp.g_strjoinv;
| if (s2 == 0) {
0x00043dac beqz s2, 0x43dec | goto label_10;
| }
0x00043db0 lw s7, -0x7bf4(gp) | s7 = *((gp - 7933));
0x00043db4 sll s0, s0, 2 | s0 <<= 2;
0x00043db8 addu s0, s1, s0 | s0 = s1 + s0;
0x00043dbc move s6, s2 | s6 = s2;
| /* str.search__s_n */
0x00043dc0 addiu s7, s7, -0x5ca8 | s7 += -0x5ca8;
| do {
0x00043dc4 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00043dc8 lw a1, (s6) | a1 = *(s6);
0x00043dcc move a0, s7 | a0 = s7;
0x00043dd0 jalr t9 | t9 ();
0x00043dd4 lw s6, 4(s6) | s6 = *((s6 + 1));
0x00043dd8 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043ddc sw v0, (s0) | *(s0) = v0;
0x00043de0 addiu s0, s0, 4 | s0 += 4;
0x00043de4 bnez s6, 0x43dc4 |
| } while (s6 != 0);
0x00043de8 lw t9, -0x77b4(gp) | t9 = sym.imp.g_strjoinv;
| label_10:
0x00043dec move a1, s1 | a1 = s1;
0x00043df0 move a0, zero | a0 = 0;
0x00043df4 jalr t9 | t9 ();
0x00043df8 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043dfc move a0, s1 | a0 = s1;
0x00043e00 lw t9, -0x78d0(gp) | t9 = sym.imp.g_strfreev;
0x00043e04 move s1, v0 | s1 = v0;
0x00043e08 jalr t9 | t9 ();
0x00043e0c lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043e10 addiu a2, sp, 0x20 | a2 = sp + 0x20;
0x00043e14 move a1, s1 | a1 = s1;
0x00043e18 lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x00043e1c lw t9, -0x7a24(gp) | t9 = *(gp);
| /* fcn.00043b6c */
0x00043e20 addiu t9, t9, 0x3b6c | t9 += 0x3b6c;
| /* str._etc_resolv.conf */
0x00043e24 addiu a0, a0, -0x5cbc | a0 += -0x5cbc;
0x00043e28 bal 0x43b6c | fcn_00043b6c ();
0x00043e2c lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00043e30 beqz v0, 0x44014 | goto label_11;
| }
0x00043e34 lw s0, -0x7fd0(gp) | s0 = *((gp - 8180));
0x00043e38 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00043e3c move a0, s1 | a0 = s1;
0x00043e40 jalr t9 | t9 ();
0x00043e44 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043e48 lw v0, 0x8e0(s0) | v0 = *((s0 + 568));
0x00043e4c move a1, s3 | a1 = s3;
0x00043e50 lw t9, -0x7aa0(gp) | t9 = sym.netd_util_compare_string_lists;
0x00043e54 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x00043e58 bal 0x52e08 | sym_netd_util_compare_string_lists ();
0x00043e5c lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00043e60 beqz v0, 0x43f04 | goto label_12;
| }
0x00043e64 lw v0, 0x8e0(s0) | v0 = *((s0 + 568));
0x00043e68 lw t9, -0x7aa0(gp) | t9 = sym.netd_util_compare_string_lists;
0x00043e6c move a1, s2 | a1 = s2;
0x00043e70 lw a0, 0x14(v0) | a0 = *((v0 + 5));
0x00043e74 move s1, zero | s1 = 0;
0x00043e78 bal 0x52e08 | sym_netd_util_compare_string_lists ();
0x00043e7c lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00043e80 beqz v0, 0x43f68 | goto label_13;
| }
| do {
0x00043e84 lw v0, 0x8e0(s0) | v0 = *((s0 + 568));
0x00043e88 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00043e8c move a1, s4 | a1 = s4;
0x00043e90 lw a0, 0xc(v0) | a0 = *((v0 + 3));
0x00043e94 jalr t9 | t9 ();
0x00043e98 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 != 0) {
0x00043e9c bnez v0, 0x43fcc | goto label_14;
| }
| label_0:
0x00043ea0 lw t9, -0x7a24(gp) | t9 = *(gp);
| /* fcn.000438f0 */
0x00043ea4 addiu t9, t9, 0x38f0 | t9 += 0x38f0;
0x00043ea8 move a0, s1 | a0 = s1;
0x00043eac bal 0x438f0 | fcn_000438f0 ();
0x00043eb0 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043eb4 lw t9, -0x75a8(gp) | t9 = sym.imp.g_list_free;
0x00043eb8 move a0, s1 | a0 = s1;
0x00043ebc jalr t9 | t9 ();
0x00043ec0 lw gp, 0x10(sp) | gp = *(var_10h_2);
| label_1:
0x00043ec4 lw v0, 0x1c(sp) | v0 = *(var_1ch_2);
| label_5:
0x00043ec8 lw v1, 0x24(sp) | v1 = *(var_24h_2);
0x00043ecc lw v0, (v0) | v0 = *(v0);
0x00043ed0 lw ra, 0x4c(sp) | ra = *(var_4ch);
| if (v1 != v0) {
0x00043ed4 bne v1, v0, 0x440cc | goto label_15;
| }
0x00043ed8 lw fp, 0x48(sp) | fp = *(var_48h);
0x00043edc lw s7, 0x44(sp) | s7 = *(var_44h);
0x00043ee0 lw s6, 0x40(sp) | s6 = *(var_40h);
0x00043ee4 lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x00043ee8 lw s4, 0x38(sp) | s4 = *(var_38h);
0x00043eec lw s3, 0x34(sp) | s3 = *(var_34h_2);
0x00043ef0 lw s2, 0x30(sp) | s2 = *(var_30h_2);
0x00043ef4 lw s1, 0x2c(sp) | s1 = *(var_2ch_2);
0x00043ef8 lw s0, 0x28(sp) | s0 = *(var_28h_2);
0x00043efc addiu sp, sp, 0x50 |
0x00043f00 jr ra | return v0;
| label_12:
0x00043f04 lw v0, 0x8e0(s0) | v0 = *((s0 + 568));
0x00043f08 lw a1, -0x748c(gp) | a1 = *((gp - 7459));
0x00043f0c lw t9, -0x75c8(gp) | t9 = sym.imp.g_list_free_full;
0x00043f10 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x00043f14 jalr t9 | t9 ();
0x00043f18 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043f1c move a0, s3 | a0 = s3;
0x00043f20 lw t9, -0x7a00(gp) | t9 = sym.netd_util_string_list_copy;
0x00043f24 lw s1, 0x8e0(s0) | s1 = *((s0 + 568));
0x00043f28 bal 0x52cd0 | sym_netd_util_string_list_copy ();
0x00043f2c lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043f30 sw v0, 0x10(s1) | *((s1 + 4)) = v0;
0x00043f34 addiu a1, zero, 0x15 | a1 = 0x15;
0x00043f38 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00043f3c move a0, zero | a0 = 0;
0x00043f40 jalr t9 | t9 ();
0x00043f44 move s1, v0 | s1 = v0;
0x00043f48 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043f4c lw v0, 0x8e0(s0) | v0 = *((s0 + 568));
0x00043f50 move a1, s2 | a1 = s2;
0x00043f54 lw t9, -0x7aa0(gp) | t9 = sym.netd_util_compare_string_lists;
0x00043f58 lw a0, 0x14(v0) | a0 = *((v0 + 5));
0x00043f5c bal 0x52e08 | sym_netd_util_compare_string_lists ();
0x00043f60 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043f64 bnez v0, 0x43e84 |
| } while (v0 != 0);
| label_13:
0x00043f68 lw v0, 0x8e0(s0) | v0 = *((s0 + 568));
0x00043f6c lw a1, -0x748c(gp) | a1 = *((gp - 7459));
0x00043f70 lw t9, -0x75c8(gp) | t9 = sym.imp.g_list_free_full;
0x00043f74 lw a0, 0x14(v0) | a0 = *((v0 + 5));
0x00043f78 jalr t9 | t9 ();
0x00043f7c lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043f80 move a0, s2 | a0 = s2;
0x00043f84 lw t9, -0x7a00(gp) | t9 = sym.netd_util_string_list_copy;
0x00043f88 lw s3, 0x8e0(s0) | s3 = *((s0 + 568));
0x00043f8c bal 0x52cd0 | sym_netd_util_string_list_copy ();
0x00043f90 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043f94 move a0, s1 | a0 = s1;
0x00043f98 addiu a1, zero, 0x17 | a1 = 0x17;
0x00043f9c lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00043fa0 sw v0, 0x14(s3) | *((s3 + 5)) = v0;
0x00043fa4 jalr t9 | t9 ();
0x00043fa8 move s1, v0 | s1 = v0;
0x00043fac lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043fb0 lw v0, 0x8e0(s0) | v0 = *((s0 + 568));
0x00043fb4 move a1, s4 | a1 = s4;
0x00043fb8 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00043fbc lw a0, 0xc(v0) | a0 = *((v0 + 3));
0x00043fc0 jalr t9 | t9 ();
0x00043fc4 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00043fc8 beqz v0, 0x43ea0 | goto label_0;
| }
| label_14:
0x00043fcc lw v0, 0x8e0(s0) | v0 = *((s0 + 568));
0x00043fd0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00043fd4 lw a0, 0xc(v0) | a0 = *((v0 + 3));
0x00043fd8 jalr t9 | t9 ();
0x00043fdc lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043fe0 move a0, s4 | a0 = s4;
0x00043fe4 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
0x00043fe8 lw s0, 0x8e0(s0) | s0 = *((s0 + 568));
0x00043fec jalr t9 | t9 ();
0x00043ff0 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00043ff4 move a0, s1 | a0 = s1;
0x00043ff8 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
0x00043ffc lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00044000 addiu a1, zero, 0x19 | a1 = 0x19;
0x00044004 jalr t9 | t9 ();
0x00044008 move s1, v0 | s1 = v0;
0x0004400c lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00044010 b 0x43ea0 | goto label_0;
| label_11:
0x00044014 lw v0, 0x20(sp) | v0 = *(var_20h);
0x00044018 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x0004401c lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00044020 lw a2, 8(v0) | a2 = *((v0 + 2));
| /* str.Failed_to_write_resolv.conf_to_disk:__s */
0x00044024 addiu a1, a1, -0x5c9c | a1 += -0x5c9c;
0x00044028 addiu a0, zero, 3 | a0 = 3;
0x0004402c bal 0x434d0 | sym_netd_log_esc ();
0x00044030 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00044034 lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x00044038 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0004403c jalr t9 | t9 ();
0x00044040 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00044044 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00044048 move a0, s1 | a0 = s1;
0x0004404c jalr t9 | t9 ();
0x00044050 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00044054 b 0x43ec4 | goto label_1;
| label_8:
0x00044058 lw t9, -0x783c(gp) | t9 = sym.imp.g_malloc0;
0x0004405c addiu a0, v0, 1 | a0 = v0 + 1;
0x00044060 sll a0, a0, 2 | a0 <<= 2;
0x00044064 jalr t9 | t9 ();
0x00044068 move s1, v0 | s1 = v0;
0x0004406c lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00044070 move s0, zero | s0 = 0;
| if (s3 != 0) {
0x00044074 bnez s3, 0x43d34 | goto label_2;
| }
0x00044078 b 0x43da8 | goto label_3;
0x0004407c nop |
| label_7:
0x00044080 lw v0, 0x8e0(s0) | v0 = *((s0 + 568));
0x00044084 lw t9, -0x7aa0(gp) | t9 = sym.netd_util_compare_string_lists;
0x00044088 move a0, s2 | a0 = s2;
0x0004408c lw a1, 0x14(v0) | a1 = *((v0 + 5));
0x00044090 bal 0x52e08 | sym_netd_util_compare_string_lists ();
0x00044094 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00044098 beqz v0, 0x43cd4 | goto label_4;
| }
0x0004409c lw v0, 0x8e0(s0) | v0 = *((s0 + 568));
0x000440a0 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x000440a4 move a0, s4 | a0 = s4;
0x000440a8 lw a1, 0xc(v0) | a1 = *((v0 + 3));
0x000440ac jalr t9 | t9 ();
0x000440b0 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 != 0) {
0x000440b4 bnez v0, 0x43cd4 | goto label_4;
| }
0x000440b8 lw v0, 0x1c(sp) | v0 = *(var_1ch_2);
0x000440bc b 0x43ec8 | goto label_5;
| label_9:
0x000440c0 move s6, v0 | s6 = v0;
0x000440c4 addiu s0, zero, 1 | s0 = 1;
0x000440c8 b 0x43d8c | goto label_6;
| label_15:
0x000440cc lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x000440d0 jalr t9 | t9 ();
0x000440d4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x44cc4 */
| #include <stdint.h>
|
; (fcn) fcn.00044cc4 () | void fcn_00044cc4 () {
0x00044cc4 lui gp, 5 |
0x00044cc8 addiu gp, gp, 0x2f7c |
0x00044ccc addu gp, gp, t9 | gp += t9;
0x00044cd0 addiu sp, sp, -0x58 |
0x00044cd4 sw gp, 0x38(sp) | *(var_38h_2) = gp;
0x00044cd8 sw s0, 0x4c(sp) | *(var_4ch) = s0;
0x00044cdc sw ra, 0x54(sp) | *(var_54h) = ra;
0x00044ce0 sw s1, 0x50(sp) | *(var_50h) = s1;
0x00044ce4 move s0, a1 | s0 = a1;
| if (a0 == 0) {
0x00044ce8 beqz a0, 0x44ecc | goto label_1;
| }
0x00044cec lw t9, -0x76f8(gp) | t9 = sym.imp.strlen;
0x00044cf0 move s1, a0 | s1 = a0;
0x00044cf4 jalr t9 | t9 ();
0x00044cf8 addiu v1, zero, 0xc | v1 = 0xc;
0x00044cfc lw gp, 0x38(sp) | gp = *(var_38h_2);
| if (v0 != v1) {
0x00044d00 bne v0, v1, 0x44dec | goto label_2;
| }
0x00044d04 lw t9, -0x769c(gp) | t9 = sym.imp.__ctype_b_loc;
0x00044d08 jalr t9 | t9 ();
0x00044d0c nop |
0x00044d10 lw a0, (v0) | a0 = *(v0);
0x00044d14 lw gp, 0x38(sp) | gp = *(var_38h_2);
0x00044d18 move v1, s1 | v1 = s1;
0x00044d1c addiu a1, s1, 0xc | a1 = s1 + 0xc;
0x00044d20 lb v0, (v1) | v0 = *(v1);
| do {
0x00044d24 sll v0, v0, 1 | v0 <<= 1;
0x00044d28 addu v0, a0, v0 | v0 = a0 + v0;
0x00044d2c lhu v0, (v0) | v0 = *(v0);
0x00044d30 andi v0, v0, 0x1000 | v0 &= 0x1000;
0x00044d34 addiu v1, v1, 1 | v1++;
| if (v0 == 0) {
0x00044d38 beqz v0, 0x44eac | goto label_3;
| }
0x00044d3c lb v0, (v1) | v0 = *(v1);
0x00044d40 bnel a1, v1, 0x44d24 |
| } while (a1 == v1);
0x00044d44 lw t9, -0x7814(gp) | t9 = sym.imp.g_ascii_strup;
0x00044d48 move a0, s1 | a0 = s1;
0x00044d4c addiu a1, zero, -1 | a1 = -1;
0x00044d50 jalr t9 | t9 ();
0x00044d54 lw gp, 0x38(sp) | gp = *(var_38h_2);
0x00044d58 move s0, v0 | s0 = v0;
0x00044d5c lb t6, 0xb(v0) | t6 = *((v0 + 11));
0x00044d60 lb t5, 0xa(v0) | t5 = *((v0 + 10));
0x00044d64 lb t4, 9(v0) | t4 = *((v0 + 9));
0x00044d68 lb t3, 8(v0) | t3 = *((v0 + 8));
0x00044d6c lb t2, 7(v0) | t2 = *((v0 + 7));
0x00044d70 lb t1, 6(v0) | t1 = *((v0 + 6));
0x00044d74 lb t0, 5(v0) | t0 = *((v0 + 5));
0x00044d78 lb v1, 4(v0) | v1 = *((v0 + 4));
0x00044d7c lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x00044d80 lb v0, 3(v0) | v0 = *((v0 + 3));
0x00044d84 lb a3, 2(s0) | a3 = *((s0 + 2));
0x00044d88 lb a2, 1(s0) | a2 = *((s0 + 1));
0x00044d8c lb a1, (s0) | a1 = *(s0);
0x00044d90 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00044d94 sw t6, 0x30(sp) | *(var_30h_2) = t6;
0x00044d98 sw t5, 0x2c(sp) | *(var_2ch_2) = t5;
0x00044d9c sw t4, 0x28(sp) | *(var_28h) = t4;
0x00044da0 sw t3, 0x24(sp) | *(var_24h_2) = t3;
0x00044da4 sw t2, 0x20(sp) | *(var_20h_2) = t2;
0x00044da8 sw t1, 0x1c(sp) | *(var_1ch_2) = t1;
0x00044dac sw t0, 0x18(sp) | *(var_18h_2) = t0;
0x00044db0 sw v1, 0x14(sp) | *(var_14h) = v1;
| /* str._c_c:_c_c:_c_c:_c_c:_c_c:_c_c */
0x00044db4 addiu a0, a0, -0x59bc | a0 += -0x59bc;
0x00044db8 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00044dbc jalr t9 | t9 ();
0x00044dc0 lw gp, 0x38(sp) | gp = *(var_38h_2);
0x00044dc4 move a0, s0 | a0 = s0;
0x00044dc8 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00044dcc sw v0, 0x44(sp) | *(var_44h) = v0;
0x00044dd0 jalr t9 | t9 ();
0x00044dd4 lw ra, 0x54(sp) | ra = *(var_54h);
0x00044dd8 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00044ddc lw s1, 0x50(sp) | s1 = *(var_50h);
0x00044de0 lw s0, 0x4c(sp) | s0 = *(var_4ch);
0x00044de4 addiu sp, sp, 0x58 |
0x00044de8 jr ra | return v0;
| label_2:
0x00044dec lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00044df0 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00044df4 move a2, s1 | a2 = s1;
| /* str.Got_invalid_length_serial_number_when_generating_default_MAC:__s */
0x00044df8 addiu a1, a1, -0x5a74 | a1 += -0x5a74;
0x00044dfc addiu a0, zero, 3 | a0 = 3;
0x00044e00 bal 0x434d0 | sym_netd_log_esc ();
0x00044e04 lw gp, 0x38(sp) | gp = *(var_38h_2);
| do {
| label_0:
0x00044e08 addiu v0, zero, -1 | v0 = -1;
0x00044e0c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| if (s0 != v0) {
0x00044e10 beq s0, v0, 0x44e8c |
0x00044e14 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00044e18 move a2, s0 | a2 = s0;
| /* str.Fallback_default_MAC_to_default_offset___d_ */
0x00044e1c addiu a1, a1, -0x5a04 | a1 += -0x5a04;
0x00044e20 move a0, zero | a0 = 0;
0x00044e24 bal 0x434d0 | sym_netd_log_esc ();
0x00044e28 lw gp, 0x38(sp) | gp = *(var_38h_2);
0x00044e2c addiu a1, zero, 0xf | a1 = 0xf;
0x00044e30 lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x00044e34 lw t9, -0x7620(gp) | t9 = sym.imp.g_strndup;
| /* str.00:40:8C:CD:00:00 */
0x00044e38 addiu a0, a0, -0x59d8 | a0 += -0x59d8;
0x00044e3c jalr t9 | t9 ();
0x00044e40 lw gp, 0x38(sp) | gp = *(var_38h_2);
0x00044e44 move a2, s0 | a2 = s0;
0x00044e48 move a1, v0 | a1 = v0;
0x00044e4c lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x00044e50 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._s_02X */
0x00044e54 addiu a0, a0, -0x59c4 | a0 += -0x59c4;
0x00044e58 move s1, v0 | s1 = v0;
0x00044e5c jalr t9 | t9 ();
0x00044e60 lw gp, 0x38(sp) | gp = *(var_38h_2);
0x00044e64 move a0, s1 | a0 = s1;
0x00044e68 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00044e6c sw v0, 0x44(sp) | *(var_44h) = v0;
0x00044e70 jalr t9 | t9 ();
0x00044e74 lw ra, 0x54(sp) | ra = *(var_54h);
0x00044e78 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00044e7c lw s1, 0x50(sp) | s1 = *(var_50h);
0x00044e80 lw s0, 0x4c(sp) | s0 = *(var_4ch);
0x00044e84 addiu sp, sp, 0x58 |
0x00044e88 jr ra | return v0;
| }
0x00044e8c lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x00044e90 lw ra, 0x54(sp) | ra = *(var_54h);
0x00044e94 lw s1, 0x50(sp) | s1 = *(var_50h);
0x00044e98 lw s0, 0x4c(sp) | s0 = *(var_4ch);
0x00044e9c lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.00:40:8C:CD:00:00 */
0x00044ea0 addiu a0, a0, -0x59d8 | a0 += -0x59d8;
0x00044ea4 addiu sp, sp, 0x58 |
0x00044ea8 jr t9 | t9 ();
| label_3:
0x00044eac lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00044eb0 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00044eb4 move a2, s1 | a2 = s1;
| /* str.Serial_number_not_in_hexadecimal_form:__s */
0x00044eb8 addiu a1, a1, -0x5a30 | a1 += -0x5a30;
0x00044ebc addiu a0, zero, 3 | a0 = 3;
0x00044ec0 bal 0x434d0 | sym_netd_log_esc ();
0x00044ec4 lw gp, 0x38(sp) | gp = *(var_38h_2);
0x00044ec8 b 0x44e08 |
| } while (1);
| label_1:
0x00044ecc lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00044ed0 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.No_serial_number_specified_when_generating_default_MAC */
0x00044ed4 addiu a1, a1, -0x5aac | a1 += -0x5aac;
0x00044ed8 addiu a0, zero, 3 | a0 = 3;
0x00044edc bal 0x434d0 | sym_netd_log_esc ();
0x00044ee0 lw gp, 0x38(sp) | gp = *(var_38h_2);
0x00044ee4 b 0x44e08 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x47d5c */
| #include <stdint.h>
|
; (fcn) fcn.00047d5c () | void fcn_00047d5c () {
0x00047d5c lui gp, 5 |
0x00047d60 addiu gp, gp, -0x11c |
0x00047d64 addu gp, gp, t9 | gp += t9;
0x00047d68 addiu sp, sp, -0x40 |
0x00047d6c lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00047d70 sw s0, 0x28(sp) | *(var_28h) = s0;
0x00047d74 lw s0, -0x773c(gp) | s0 = *((gp - 7631));
0x00047d78 sw s3, 0x34(sp) | *(var_34h) = s3;
0x00047d7c sw s2, 0x30(sp) | *(var_30h) = s2;
0x00047d80 move s3, a1 | s3 = a1;
0x00047d84 lw v0, (s0) | v0 = *(s0);
0x00047d88 move a1, a0 | a1 = a0;
0x00047d8c move s2, a0 | s2 = a0;
0x00047d90 lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x00047d94 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00047d98 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00047d9c sw s4, 0x38(sp) | *(var_38h) = s4;
0x00047da0 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x00047da4 move s4, a2 | s4 = a2;
| /* str._sys_class_net__s_bridge__s */
0x00047da8 addiu a0, a0, -0x4e74 | a0 += -0x4e74;
0x00047dac move a2, s3 | a2 = s3;
0x00047db0 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00047db4 sw zero, 0x20(sp) | *(var_20h) = 0;
0x00047db8 jalr t9 | t9 ();
0x00047dbc nop |
0x00047dc0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00047dc4 addiu a3, sp, 0x20 | a3 = sp + 0x20;
0x00047dc8 move a2, zero | a2 = 0;
0x00047dcc lw t9, -0x7ae0(gp) | t9 = sym.netd_util_write_to_file;
0x00047dd0 move a1, s4 | a1 = s4;
0x00047dd4 move a0, v0 | a0 = v0;
0x00047dd8 move s1, v0 | s1 = v0;
0x00047ddc bal 0x53018 | sym_netd_util_write_to_file ();
0x00047de0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00047de4 beqz v0, 0x47e24 |
| while (1) {
0x00047de8 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00047dec move a0, s1 | a0 = s1;
0x00047df0 jalr t9 | t9 ();
0x00047df4 lw v1, 0x24(sp) | v1 = *(var_24h);
0x00047df8 lw v0, (s0) | v0 = *(s0);
0x00047dfc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v1 != v0) {
0x00047e00 bne v1, v0, 0x47e64 | goto label_0;
| }
0x00047e04 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00047e08 lw s4, 0x38(sp) | s4 = *(var_38h);
0x00047e0c lw s3, 0x34(sp) | s3 = *(var_34h);
0x00047e10 lw s2, 0x30(sp) | s2 = *(var_30h);
0x00047e14 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00047e18 lw s0, 0x28(sp) | s0 = *(var_28h);
0x00047e1c addiu sp, sp, 0x40 |
0x00047e20 jr ra | return v0;
0x00047e24 lw v0, 0x20(sp) | v0 = *(var_20h);
0x00047e28 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00047e2c lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00047e30 lw v0, 8(v0) | v0 = *((v0 + 2));
0x00047e34 move a3, s3 | a3 = s3;
0x00047e38 move a2, s2 | a2 = s2;
| /* str.Failed_to_change__s__s_bridge_value:__s */
0x00047e3c addiu a1, a1, -0x4e58 | a1 += -0x4e58;
0x00047e40 addiu a0, zero, 3 | a0 = 3;
0x00047e44 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00047e48 bal 0x434d0 | sym_netd_log_esc ();
0x00047e4c lw gp, 0x18(sp) | gp = *(var_18h);
0x00047e50 lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x00047e54 lw a0, 0x20(sp) | a0 = *(var_20h);
0x00047e58 jalr t9 | t9 ();
0x00047e5c lw gp, 0x18(sp) | gp = *(var_18h);
0x00047e60 b 0x47de8 |
| }
| label_0:
0x00047e64 lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x00047e68 jalr t9 | t9 ();
0x00047e6c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x4a094 */
| #include <stdint.h>
|
; (fcn) fcn.0004a094 () | void fcn_0004a094 () {
0x0004a094 lui gp, 5 |
0x0004a098 addiu gp, gp, -0x2454 |
0x0004a09c addu gp, gp, t9 | gp += t9;
0x0004a0a0 addiu sp, sp, -0x48 |
0x0004a0a4 sw s3, 0x38(sp) | *(var_38h) = s3;
0x0004a0a8 lw s3, -0x773c(gp) | s3 = *((gp - 7631));
0x0004a0ac sw gp, 0x18(sp) | *(var_18h) = gp;
0x0004a0b0 sw ra, 0x44(sp) | *(var_44h) = ra;
0x0004a0b4 lw v0, (s3) | v0 = *(s3);
0x0004a0b8 sw s5, 0x40(sp) | *(var_40h) = s5;
0x0004a0bc sw s4, 0x3c(sp) | *(var_3ch) = s4;
0x0004a0c0 sw s2, 0x34(sp) | *(var_34h) = s2;
0x0004a0c4 sw s1, 0x30(sp) | *(var_30h) = s1;
0x0004a0c8 sw s0, 0x2c(sp) | *(var_2ch) = s0;
0x0004a0cc sw v0, 0x24(sp) | *(var_24h) = v0;
0x0004a0d0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| if (a0 == 0) {
0x0004a0d4 beqz a0, 0x4a1f0 | goto label_0;
| }
0x0004a0d8 move a1, a0 | a1 = a0;
0x0004a0dc lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
| /* str._sys_class_net__s_uevent */
0x0004a0e0 addiu a0, a0, -0x468c | a0 += -aav.0x0000468c;
0x0004a0e4 jalr t9 | t9 ();
0x0004a0e8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004a0ec move a3, zero | a3 = 0;
0x0004a0f0 move a2, zero | a2 = 0;
0x0004a0f4 lw t9, -0x785c(gp) | t9 = sym.imp.g_file_get_contents;
0x0004a0f8 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x0004a0fc move a0, v0 | a0 = v0;
0x0004a100 move s4, v0 | s4 = v0;
0x0004a104 jalr t9 | t9 ();
0x0004a108 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0004a10c beqz v0, 0x4a1a8 | goto label_1;
| }
0x0004a110 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x0004a114 lw t9, -0x7818(gp) | t9 = sym.imp.g_strsplit;
0x0004a118 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0004a11c move a2, zero | a2 = 0;
0x0004a120 addiu a1, a1, -0x4668 | a1 += -0x4668;
0x0004a124 jalr t9 | t9 ();
0x0004a128 lw s0, (v0) | s0 = *(v0);
0x0004a12c lw gp, 0x18(sp) | gp = *(var_18h);
0x0004a130 move s5, v0 | s5 = v0;
| if (s0 == 0) {
0x0004a134 beqz s0, 0x4a184 | goto label_2;
| }
0x0004a138 lw s2, -0x7bf4(gp) | s2 = *((gp - 7933));
0x0004a13c move s1, v0 | s1 = v0;
| /* str.DEVTYPE */
0x0004a140 addiu s2, s2, -0x4664 | s2 += -0x4664;
0x0004a144 lw t9, -0x778c(gp) | t9 = sym.imp.strstr;
| do {
0x0004a148 move a1, s2 | a1 = s2;
0x0004a14c move a0, s0 | a0 = s0;
0x0004a150 jalr t9 | t9 ();
0x0004a154 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0004a158 beqz v0, 0x4a174 |
0x0004a15c lw t9, -0x758c(gp) | t9 = sym.imp.strchr;
0x0004a160 addiu a1, zero, 0x3d | a1 = 0x3d;
0x0004a164 move a0, s0 | a0 = s0;
0x0004a168 jalr t9 | t9 ();
0x0004a16c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0004a170 bnez v0, 0x4a218 | goto label_3;
| }
| }
0x0004a174 addiu s1, s1, 4 | s1 += 4;
0x0004a178 lw s0, (s1) | s0 = *(s1);
0x0004a17c lw t9, -0x778c(gp) | t9 = sym.imp.strstr;
0x0004a180 bnez s0, 0x4a148 |
| } while (s0 != 0);
| do {
| label_2:
0x0004a184 lw t9, -0x78d0(gp) | t9 = sym.imp.g_strfreev;
0x0004a188 move a0, s5 | a0 = s5;
0x0004a18c jalr t9 | t9 ();
0x0004a190 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004a194 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0004a198 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0004a19c jalr t9 | t9 ();
0x0004a1a0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004a1a4 b 0x4a1ac | goto label_4;
| label_1:
0x0004a1a8 move s0, zero | s0 = 0;
| label_4:
0x0004a1ac lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0004a1b0 move a0, s4 | a0 = s4;
0x0004a1b4 jalr t9 | t9 ();
0x0004a1b8 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0004a1bc lw v1, (s3) | v1 = *(s3);
0x0004a1c0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004a1c4 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x0004a1c8 bne a0, v1, 0x4a230 | goto label_5;
| }
0x0004a1cc lw ra, 0x44(sp) | ra = *(var_44h);
0x0004a1d0 lw s5, 0x40(sp) | s5 = *(var_40h);
0x0004a1d4 lw s4, 0x3c(sp) | s4 = *(var_3ch);
0x0004a1d8 lw s3, 0x38(sp) | s3 = *(var_38h);
0x0004a1dc lw s2, 0x34(sp) | s2 = *(var_34h);
0x0004a1e0 lw s1, 0x30(sp) | s1 = *(var_30h);
0x0004a1e4 lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x0004a1e8 addiu sp, sp, 0x48 |
0x0004a1ec jr ra | return v0;
| label_0:
0x0004a1f0 lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
0x0004a1f4 lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x0004a1f8 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| /* str.ifname */
0x0004a1fc addiu v0, v0, -0x4670 | v0 += -0x4670;
0x0004a200 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0004a204 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.get_kernel_devtype */
0x0004a208 addiu a3, a3, -0x3a54 | a3 += -0x3a54;
0x0004a20c addiu a2, zero, 0xed | a2 = 0xed;
| /* str.src_netd_monitor.c */
0x0004a210 addiu a1, a1, -0x4700 | a1 += -0x4700;
0x0004a214 jalr t9 | t9 ();
| label_3:
0x0004a218 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
0x0004a21c addiu a0, v0, 1 | a0 = v0 + 1;
0x0004a220 jalr t9 | t9 ();
0x0004a224 move s0, v0 | s0 = v0;
0x0004a228 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004a22c b 0x4a184 |
| } while (1);
| label_5:
0x0004a230 lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x0004a234 jalr t9 | t9 ();
0x0004a238 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x4eab4 */
| #include <stdint.h>
|
; (fcn) fcn.0004eab4 () | void fcn_0004eab4 () {
0x0004eab4 lui gp, 5 |
0x0004eab8 addiu gp, gp, -0x6e74 |
0x0004eabc addu gp, gp, t9 | gp += t9;
0x0004eac0 addiu sp, sp, -0x40 |
0x0004eac4 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0004eac8 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x0004eacc sw s6, 0x38(sp) | *(var_38h) = s6;
0x0004ead0 sw s5, 0x34(sp) | *(var_34h) = s5;
0x0004ead4 sw s4, 0x30(sp) | *(var_30h) = s4;
0x0004ead8 sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x0004eadc sw s2, 0x28(sp) | *(var_28h) = s2;
0x0004eae0 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0004eae4 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0004eae8 lw t9, -0x7560(gp) | t9 = sym.imp.g_key_file_new;
| if (a0 == 0) {
0x0004eaec beqz a0, 0x4ec44 | goto label_2;
| }
0x0004eaf0 move s0, a0 | s0 = a0;
0x0004eaf4 move s5, a1 | s5 = a1;
0x0004eaf8 jalr t9 | t9 ();
0x0004eafc lw gp, 0x18(sp) | gp = *(var_18h);
0x0004eb00 addiu a1, zero, 4 | a1 = 4;
0x0004eb04 move a0, s0 | a0 = s0;
0x0004eb08 lw t9, -0x7944(gp) | t9 = sym.imp.g_file_test;
0x0004eb0c move s4, v0 | s4 = v0;
0x0004eb10 jalr t9 | t9 ();
0x0004eb14 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004eb18 bnez v0, 0x4eb48 |
| while (v0 == 0) {
0x0004eb1c lw ra, 0x3c(sp) | ra = *(var_3ch);
0x0004eb20 move v0, s4 | v0 = s4;
0x0004eb24 lw s6, 0x38(sp) | s6 = *(var_38h);
0x0004eb28 lw s5, 0x34(sp) | s5 = *(var_34h);
0x0004eb2c lw s4, 0x30(sp) | s4 = *(var_30h);
0x0004eb30 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x0004eb34 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0004eb38 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0004eb3c lw s0, 0x20(sp) | s0 = *(var_20h);
0x0004eb40 addiu sp, sp, 0x40 |
0x0004eb44 jr ra | return v0;
0x0004eb48 lw t9, -0x7938(gp) | t9 = sym.imp.g_dir_open;
0x0004eb4c move a2, s5 | a2 = s5;
0x0004eb50 move a1, zero | a1 = 0;
0x0004eb54 move a0, s0 | a0 = s0;
0x0004eb58 jalr t9 | t9 ();
0x0004eb5c move s1, v0 | s1 = v0;
0x0004eb60 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004eb64 beqz v0, 0x4eb1c |
| }
0x0004eb68 lw t9, -0x7488(gp) | t9 = sym.imp.__errno_location;
0x0004eb6c jalr t9 | t9 ();
0x0004eb70 nop |
0x0004eb74 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004eb78 sw zero, (v0) | *(v0) = 0;
0x0004eb7c lw t9, -0x7518(gp) | t9 = sym.imp.g_ptr_array_new_with_free_func;
0x0004eb80 lw a0, -0x748c(gp) | a0 = *((gp - 7459));
0x0004eb84 move s6, v0 | s6 = v0;
0x0004eb88 jalr t9 | t9 ();
0x0004eb8c lw gp, 0x18(sp) | gp = *(var_18h);
0x0004eb90 move s2, v0 | s2 = v0;
0x0004eb94 lw s3, -0x7bf4(gp) | s3 = *((gp - 7933));
| /* esilref: '&s/&s' */
0x0004eb98 addiu s3, s3, -0x2e34 | s3 += -0x2e34;
0x0004eb9c b 0x4ebcc |
| while (v0 != 0) {
0x0004eba0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x0004eba4 move a2, v0 | a2 = v0;
0x0004eba8 move a1, s0 | a1 = s0;
0x0004ebac move a0, s3 | a0 = s3;
0x0004ebb0 jalr t9 | t9 ();
0x0004ebb4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004ebb8 move a1, v0 | a1 = v0;
0x0004ebbc lw t9, -0x763c(gp) | t9 = sym.imp.g_ptr_array_add;
0x0004ebc0 move a0, s2 | a0 = s2;
0x0004ebc4 jalr t9 | t9 ();
0x0004ebc8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004ebcc lw t9, -0x7500(gp) | t9 = sym.imp.g_dir_read_name;
0x0004ebd0 move a0, s1 | a0 = s1;
0x0004ebd4 jalr t9 | t9 ();
0x0004ebd8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004ebdc bnez v0, 0x4eba0 |
| }
0x0004ebe0 lw v0, (s6) | v0 = *(s6);
0x0004ebe4 lw t9, -0x7638(gp) | t9 = sym.imp.g_unix_error_quark;
| if (v0 != 0) {
0x0004ebe8 bnez v0, 0x4eca0 | goto label_3;
| }
0x0004ebec lw v0, 4(s2) | v0 = *((s2 + 1));
0x0004ebf0 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0004ebf4 bnez v0, 0x4ec6c |
| while (1) {
0x0004ebf8 lw t9, -0x76a0(gp) | t9 = sym.imp.g_ptr_array_free;
| label_1:
0x0004ebfc addiu a1, zero, 1 | a1 = 1;
0x0004ec00 move a0, s2 | a0 = s2;
0x0004ec04 jalr t9 | t9 ();
0x0004ec08 lw gp, 0x18(sp) | gp = *(var_18h);
| label_0:
0x0004ec0c lw t9, -0x74e4(gp) | t9 = sym.imp.g_dir_close;
0x0004ec10 move a0, s1 | a0 = s1;
0x0004ec14 jalr t9 | t9 ();
0x0004ec18 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x0004ec1c move v0, s4 | v0 = s4;
0x0004ec20 lw s6, 0x38(sp) | s6 = *(var_38h);
0x0004ec24 lw s5, 0x34(sp) | s5 = *(var_34h);
0x0004ec28 lw s4, 0x30(sp) | s4 = *(var_30h);
0x0004ec2c lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x0004ec30 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0004ec34 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0004ec38 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0004ec3c addiu sp, sp, 0x40 |
0x0004ec40 jr ra | return v0;
| label_2:
0x0004ec44 lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
0x0004ec48 lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x0004ec4c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| /* str.dirname___NULL */
0x0004ec50 addiu v0, v0, -0x2e44 | v0 += -aav.0x00002e44;
0x0004ec54 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0004ec58 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.settings_load_dir */
0x0004ec5c addiu a3, a3, -0x2b14 | a3 += -0x2b14;
0x0004ec60 addiu a2, zero, 0x253 | a2 = 0x253;
| /* str.src_netd_settings.c */
0x0004ec64 addiu a1, a1, -0x2ee0 | a1 += -0x2ee0;
0x0004ec68 jalr t9 | t9 ();
0x0004ec6c lw t9, -0x77ec(gp) | t9 = sym.imp.g_ptr_array_sort;
0x0004ec70 addiu a1, a1, -0x1568 | a1 += -0x1568;
0x0004ec74 move a0, s2 | a0 = s2;
0x0004ec78 jalr t9 | t9 ();
0x0004ec7c lw gp, 0x18(sp) | gp = *(var_18h);
0x0004ec80 move a2, s4 | a2 = s4;
0x0004ec84 move a0, s2 | a0 = s2;
0x0004ec88 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0004ec8c lw t9, -0x75e4(gp) | t9 = sym.imp.g_ptr_array_foreach;
0x0004ec90 addiu a1, a1, -0x1658 | a1 += -0x1658;
0x0004ec94 jalr t9 | t9 ();
0x0004ec98 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004ec9c b 0x4ebf8 |
| }
| label_3:
0x0004eca0 jalr t9 | t9 ();
0x0004eca4 nop |
0x0004eca8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004ecac lw a0, (s6) | a0 = *(s6);
0x0004ecb0 lw t9, -0x7880(gp) | t9 = sym.imp.g_strerror;
0x0004ecb4 move s0, v0 | s0 = v0;
0x0004ecb8 jalr t9 | t9 ();
0x0004ecbc lw gp, 0x18(sp) | gp = *(var_18h);
0x0004ecc0 move a3, v0 | a3 = v0;
0x0004ecc4 move a2, zero | a2 = 0;
0x0004ecc8 lw t9, -0x784c(gp) | t9 = sym.imp.g_set_error_literal;
0x0004eccc move a1, s0 | a1 = s0;
0x0004ecd0 move a0, s5 | a0 = s5;
0x0004ecd4 jalr t9 | t9 ();
0x0004ecd8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s2 == 0) {
0x0004ecdc beqz s2, 0x4ec0c | goto label_0;
| }
0x0004ece0 lw t9, -0x76a0(gp) | t9 = sym.imp.g_ptr_array_free;
0x0004ece4 b 0x4ebfc | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x500e0 */
| #include <stdint.h>
|
; (fcn) sym.construct_environment () | void construct_environment () {
0x000500e0 lui gp, 4 |
0x000500e4 addiu gp, gp, 0x7b60 |
0x000500e8 addu gp, gp, t9 | gp += t9;
0x000500ec addiu sp, sp, -0x48 |
0x000500f0 lw t9, -0x765c(gp) | t9 = sym.imp.g_list_length;
0x000500f4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000500f8 sw ra, 0x44(sp) | *(var_44h) = ra;
0x000500fc sw fp, 0x40(sp) | *(var_40h) = fp;
0x00050100 sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x00050104 sw s0, 0x20(sp) | *(var_20h) = s0;
0x00050108 sw s7, 0x3c(sp) | *(var_3ch) = s7;
0x0005010c sw s6, 0x38(sp) | *(var_38h) = s6;
0x00050110 sw s5, 0x34(sp) | *(var_34h) = s5;
0x00050114 sw s4, 0x30(sp) | *(var_30h) = s4;
0x00050118 sw s2, 0x28(sp) | *(var_28h) = s2;
0x0005011c sw s1, 0x24(sp) | *(var_24h) = s1;
0x00050120 move s0, a0 | s0 = a0;
0x00050124 move a0, a1 | a0 = a1;
0x00050128 move fp, a1 | fp = a1;
0x0005012c jalr t9 | t9 ();
0x00050130 lw gp, 0x10(sp) | gp = *(var_10h);
0x00050134 addiu v0, v0, 2 | v0 += 2;
0x00050138 lw t9, -0x783c(gp) | t9 = sym.imp.g_malloc0;
0x0005013c sll a0, v0, 2 | a0 = v0 << 2;
0x00050140 jalr t9 | t9 ();
0x00050144 addiu v1, zero, 2 | v1 = 2;
0x00050148 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005014c move s3, v0 | s3 = v0;
| if (s0 == v1) {
0x00050150 beq s0, v1, 0x50344 | goto label_4;
| }
0x00050154 sltiu v0, s0, 3 | v0 = (s0 < 3) ? 1 : 0;
0x00050158 addiu v0, zero, 3 | v0 = 3;
| if (v0 != 0) {
0x0005015c bnez v0, 0x5028c | goto label_5;
| }
0x00050160 addiu v0, zero, 4 | v0 = 4;
| if (s0 == v0) {
0x00050164 beq s0, v0, 0x50338 | goto label_6;
| }
0x00050168 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| if (s0 != v0) {
0x0005016c bne s0, v0, 0x50354 | goto label_7;
| }
0x00050170 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| /* str.device_ready_changed */
0x00050174 addiu a1, a1, -0x2940 | a1 += -0x2940;
| label_3:
0x00050178 lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x0005017c lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str.event_s */
0x00050180 addiu a0, a0, -0x28bc | a0 += -0x28bc;
0x00050184 jalr t9 | t9 ();
0x00050188 sw v0, (s3) | *(s3) = v0;
0x0005018c lw gp, 0x10(sp) | gp = *(var_10h);
| if (fp == 0) {
0x00050190 beqz fp, 0x502b8 | goto label_8;
| }
| label_2:
0x00050194 lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
0x00050198 lw s5, -0x7bf4(gp) | s5 = *((gp - 7933));
0x0005019c lw s6, -0x7bf4(gp) | s6 = *((gp - 7933));
0x000501a0 lw s2, -0x7bf4(gp) | s2 = *((gp - 7933));
0x000501a4 sw v0, 0x18(sp) | *(var_18h) = v0;
| /* str.unknown */
0x000501a8 addiu v0, s5, -0x29f0 | v0 = s5 + -0x29f0;
0x000501ac lw s1, -0x7bf4(gp) | s1 = *((gp - 7933));
0x000501b0 lw s4, -0x7bf4(gp) | s4 = *((gp - 7933));
0x000501b4 addiu s7, s3, 4 | s7 = s3 + 4;
0x000501b8 addiu s0, zero, 1 | s0 = 1;
| /* str.device_ready */
0x000501bc addiu s6, s6, -0x28f4 | s6 += -0x28f4;
0x000501c0 sw v0, 0x1c(sp) | *(var_1ch) = v0;
| /* str.addr_family */
0x000501c4 addiu s2, s2, -0x290c | s2 += -0x290c;
0x000501c8 b 0x50228 |
| while (a0 == 0) {
0x000501cc addiu a0, zero, 0x7d6 | a0 = 0x7d6;
| if (a2 == a0) {
0x000501d0 beq a2, a0, 0x5027c | goto label_9;
| }
0x000501d4 addiu a0, zero, 0x7d0 | a0 = aav.0x000007d0;
| if (a2 == a0) {
0x000501d8 beq a2, a0, 0x50268 | goto label_10;
| }
0x000501dc lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| if (a2 == a0) {
0x000501e0 beq a2, a0, 0x50260 | goto label_11;
| }
| label_0:
0x000501e4 lw v0, 0x18(sp) | v0 = *(var_18h);
0x000501e8 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x000501ec addiu a1, v0, -0x28b0 | a1 = v0 + -0x28b0;
0x000501f0 addiu a0, zero, 3 | a0 = 3;
0x000501f4 bal 0x434d0 | sym_netd_log_esc ();
0x000501f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000501fc lw a1, 0x1c(sp) | a1 = *(var_1ch);
| label_1:
0x00050200 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00050204 lw a2, 4(s5) | a2 = *((s5 + 1));
| /* str._s_s */
0x00050208 addiu a0, s1, -0x2888 | a0 = s1 + -0x2888;
0x0005020c jalr t9 | t9 ();
0x00050210 lw fp, 4(fp) | fp = *(arg_4h);
0x00050214 lw gp, 0x10(sp) | gp = *(var_10h);
0x00050218 addiu s0, s0, 1 | s0++;
0x0005021c sw v0, (s7) | *(s7) = v0;
0x00050220 addiu s7, s7, 4 | s7 += 4;
| if (fp == 0) {
0x00050224 beqz fp, 0x502f8 | goto label_12;
| }
0x00050228 lw s5, (fp) | s5 = *(fp);
0x0005022c addiu a0, zero, 0x3f2 | a0 = 0x3f2;
0x00050230 lw a2, (s5) | a2 = *(s5);
0x00050234 sltiu a0, a2, 0x3f3 | a0 = (a2 < 0x3f3) ? 1 : 0;
| if (a2 == a0) {
0x00050238 beq a2, a0, 0x50284 | goto label_13;
| }
0x0005023c addiu a0, zero, 0x7d2 | a0 = 0x7d2;
0x00050240 beqz a0, 0x501cc |
| }
0x00050244 addiu a0, zero, 3 | a0 = 3;
0x00050248 addiu a0, zero, 0x3e8 | a0 = 0x3e8;
| if (a2 == a0) {
0x0005024c beq a2, a0, 0x50270 | goto label_14;
| }
0x00050250 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| if (a2 != a0) {
0x00050254 bne a2, a0, 0x501e4 | goto label_0;
| }
| /* str.iface_name */
0x00050258 addiu a1, a1, -0x2918 | a1 += -0x2918;
0x0005025c b 0x50200 | goto label_1;
| /* str.addr_ip */
| label_11:
0x00050260 addiu a1, a1, -0x28e4 | a1 += -0x28e4;
0x00050264 b 0x50200 | goto label_1;
| /* str.addr_origin */
| label_10:
0x00050268 addiu a1, s4, -0x2900 | a1 = s4 + -0x2900;
0x0005026c b 0x50200 | goto label_1;
| label_14:
0x00050270 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'hostname' */
0x00050274 addiu a1, a1, -0x20c8 | a1 += -aav.0x000020c8;
0x00050278 b 0x50200 | goto label_1;
| label_9:
0x0005027c move a1, s2 | a1 = s2;
0x00050280 b 0x50200 | goto label_1;
| label_13:
0x00050284 move a1, s6 | a1 = s6;
0x00050288 b 0x50200 | goto label_1;
| label_5:
0x0005028c addiu v0, zero, 1 | v0 = 1;
0x00050290 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| if (s0 != v0) {
0x00050294 bne s0, v0, 0x50350 | goto label_15;
| }
0x00050298 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x0005029c lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
| /* str.addr_added */
0x000502a0 addiu a1, a1, -0x2960 | a1 += -0x2960;
| /* str.event_s */
0x000502a4 addiu a0, a0, -0x28bc | a0 += -0x28bc;
0x000502a8 jalr t9 | t9 ();
0x000502ac sw v0, (s3) | *(s3) = v0;
0x000502b0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (fp != 0) {
0x000502b4 bnez fp, 0x50194 | goto label_2;
| }
| label_8:
0x000502b8 addiu s0, zero, 4 | s0 = 4;
0x000502bc addu s0, s3, s0 | s0 = s3 + s0;
0x000502c0 lw ra, 0x44(sp) | ra = *(var_44h);
0x000502c4 move v0, s3 | v0 = s3;
0x000502c8 sw zero, (s0) | *(s0) = 0;
0x000502cc lw fp, 0x40(sp) | fp = *(var_40h);
0x000502d0 lw s7, 0x3c(sp) | s7 = *(var_3ch);
0x000502d4 lw s6, 0x38(sp) | s6 = *(var_38h);
0x000502d8 lw s5, 0x34(sp) | s5 = *(var_34h);
0x000502dc lw s4, 0x30(sp) | s4 = *(var_30h);
0x000502e0 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x000502e4 lw s2, 0x28(sp) | s2 = *(var_28h);
0x000502e8 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000502ec lw s0, 0x20(sp) | s0 = *(var_20h);
0x000502f0 addiu sp, sp, 0x48 |
0x000502f4 jr ra | return v0;
| label_12:
0x000502f8 sll s0, s0, 2 | s0 <<= 2;
0x000502fc addu s0, s3, s0 | s0 = s3 + s0;
0x00050300 lw ra, 0x44(sp) | ra = *(var_44h);
0x00050304 move v0, s3 | v0 = s3;
0x00050308 sw zero, (s0) | *(s0) = 0;
0x0005030c lw fp, 0x40(sp) | fp = *(var_40h);
0x00050310 lw s7, 0x3c(sp) | s7 = *(var_3ch);
0x00050314 lw s6, 0x38(sp) | s6 = *(var_38h);
0x00050318 lw s5, 0x34(sp) | s5 = *(var_34h);
0x0005031c lw s4, 0x30(sp) | s4 = *(var_30h);
0x00050320 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00050324 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00050328 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0005032c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00050330 addiu sp, sp, 0x48 |
0x00050334 jr ra | return v0;
| label_6:
0x00050338 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| /* str.hostname_changed */
0x0005033c addiu a1, a1, -0x2954 | a1 += -0x2954;
0x00050340 b 0x50178 | goto label_3;
| label_4:
0x00050344 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| /* str.addr_removed */
0x00050348 addiu a1, a1, -0x2928 | a1 += -0x2928;
0x0005034c b 0x50178 | goto label_3;
| label_15:
0x00050350 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| label_7:
0x00050354 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.Failed_to_map_trigger_event:__d */
0x00050358 addiu a1, a1, -0x28dc | a1 += -0x28dc;
0x0005035c move a2, s0 | a2 = s0;
0x00050360 addiu a0, zero, 3 | a0 = 3;
0x00050364 bal 0x434d0 | sym_netd_log_esc ();
0x00050368 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005036c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| /* str.unknown */
0x00050370 addiu a1, a1, -0x29f0 | a1 += -0x29f0;
0x00050374 b 0x50178 | goto label_3;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0xcbd8 */
| #include <stdint.h>
|
; (fcn) sym.netd_dbus_check_auth () | void netd_dbus_check_auth () {
0x0000cbd8 lui gp, 9 |
0x0000cbdc addiu gp, gp, -0x4f98 |
0x0000cbe0 addu gp, gp, t9 | gp += t9;
0x0000cbe4 addiu sp, sp, -0x38 |
0x0000cbe8 sw s0, 0x28(sp) | *(var_28h) = s0;
0x0000cbec lw s0, -0x773c(gp) | s0 = *((gp - 7631));
0x0000cbf0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000cbf4 sw ra, 0x34(sp) | *(var_34h) = ra;
0x0000cbf8 lw v0, (s0) | v0 = *(s0);
0x0000cbfc sw s2, 0x30(sp) | *(var_30h) = s2;
0x0000cc00 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x0000cc04 sw v0, 0x24(sp) | *(var_24h) = v0;
0x0000cc08 sw zero, 0x20(sp) | *(var_20h) = 0;
| if (a0 != 0) {
0x0000cc0c beqz a0, 0xccc0 |
0x0000cc10 lw v0, -0x7fd8(gp) | v0 = *(gp);
| if (a1 == 0) {
0x0000cc14 beqz a1, 0xcce8 | goto label_0;
| }
0x0000cc18 move s1, a0 | s1 = a0;
| if (a2 == 0) {
0x0000cc1c beqz a2, 0xcd10 | goto label_1;
| }
0x0000cc20 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000cc24 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._s._s */
0x0000cc28 addiu a0, a0, 0x5d74 | a0 += 0x5d74;
0x0000cc2c jalr t9 | t9 ();
0x0000cc30 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000cc34 move a0, s1 | a0 = s1;
0x0000cc38 addiu a2, sp, 0x20 | a2 = sp + 0x20;
0x0000cc3c lw t9, -0x7670(gp) | t9 = sym.imp.apac_check_auth;
0x0000cc40 move a1, v0 | a1 = v0;
0x0000cc44 move s2, v0 | s2 = v0;
0x0000cc48 jalr t9 | t9 ();
0x0000cc4c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000cc50 move a0, s2 | a0 = s2;
0x0000cc54 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0000cc58 move s1, v0 | s1 = v0;
0x0000cc5c jalr t9 | t9 ();
0x0000cc60 lw v1, 0x20(sp) | v1 = *(var_20h);
0x0000cc64 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v1 != 0) {
0x0000cc68 beqz v1, 0xcc98 |
0x0000cc6c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0000cc70 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x0000cc74 lw a2, 8(v1) | a2 = *((v1 + 2));
| /* str.APAC_auth_check_error:__s */
0x0000cc78 addiu a1, a1, 0x5d7c | a1 += 0x5d7c;
0x0000cc7c addiu a0, zero, 2 | a0 = 2;
0x0000cc80 jalr t9 | t9 ();
0x0000cc84 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000cc88 lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x0000cc8c lw a0, 0x20(sp) | a0 = *(var_20h);
0x0000cc90 jalr t9 | t9 ();
0x0000cc94 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x0000cc98 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0000cc9c lw v1, (s0) | v1 = *(s0);
0x0000cca0 move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x0000cca4 bne a0, v1, 0xcd3c | goto label_2;
| }
0x0000cca8 lw ra, 0x34(sp) | ra = *(var_34h);
0x0000ccac lw s2, 0x30(sp) | s2 = *(var_30h);
0x0000ccb0 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x0000ccb4 lw s0, 0x28(sp) | s0 = *(var_28h);
0x0000ccb8 addiu sp, sp, 0x38 |
0x0000ccbc jr ra | return v0;
| }
0x0000ccc0 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0000ccc4 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0000ccc8 lw a1, -0x7fd8(gp) | a1 = *(gp);
| /* str.sender___NULL */
0x0000cccc addiu v0, v0, 0x5d38 | v0 += 0x5d38;
0x0000ccd0 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0000ccd4 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.netd_dbus_check_auth */
0x0000ccd8 addiu a3, a3, 0x5fb0 | a3 += 0x5fb0;
0x0000ccdc addiu a2, zero, 0x315 | a2 = 0x315;
| /* str.src_netd_dbus.c */
0x0000cce0 addiu a1, a1, 0x5900 | a1 += 0x5900;
0x0000cce4 jalr t9 | t9 ();
| label_0:
0x0000cce8 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0000ccec lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0000ccf0 addiu v0, v0, 0x5d48 | v0 += 0x5d48;
0x0000ccf4 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0000ccf8 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.netd_dbus_check_auth */
0x0000ccfc addiu a3, a3, 0x5fb0 | a3 += 0x5fb0;
0x0000cd00 addiu a2, zero, 0x316 | a2 = 0x316;
| /* str.src_netd_dbus.c */
0x0000cd04 addiu a1, a1, 0x5900 | a1 += 0x5900;
0x0000cd08 move a0, zero | a0 = 0;
0x0000cd0c jalr t9 | t9 ();
| label_1:
0x0000cd10 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0000cd14 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0000cd18 lw a1, -0x7fd8(gp) | a1 = *(gp);
| /* str.method_name___NULL */
0x0000cd1c addiu v0, v0, 0x5d60 | v0 += 0x5d60;
0x0000cd20 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0000cd24 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.netd_dbus_check_auth */
0x0000cd28 addiu a3, a3, 0x5fb0 | a3 += 0x5fb0;
0x0000cd2c addiu a2, zero, 0x317 | a2 = 0x317;
| /* str.src_netd_dbus.c */
0x0000cd30 addiu a1, a1, 0x5900 | a1 += 0x5900;
0x0000cd34 move a0, zero | a0 = 0;
0x0000cd38 jalr t9 | t9 ();
| label_2:
0x0000cd3c lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000cd40 jalr t9 | t9 ();
0x0000cd44 nop |
0x0000cd48 nop |
0x0000cd4c nop |
0x0000cd50 lui gp, 9 |
0x0000cd54 addiu gp, gp, -0x5110 |
0x0000cd58 addu gp, gp, t9 | gp += t9;
0x0000cd5c addiu a0, a0, -1 | a0 += -1;
0x0000cd60 sltiu v0, a0, 6 | v0 = (a0 < 6) ? 1 : 0;
0x0000cd64 sll a0, a0, 2 | a0 <<= 2;
| if (v0 != 0) {
0x0000cd68 beqz v0, 0xcd7c |
0x0000cd6c lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0000cd70 addiu v0, v0, 0x74d0 | v0 += 0x74d0;
0x0000cd74 lwx v0, a0(v0) | __asm ("lwx v0, a0(v0)");
0x0000cd78 jr ra | return v0;
| }
0x0000cd7c move v0, zero | v0 = 0;
0x0000cd80 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0xc58c */
| #include <stdint.h>
|
; (fcn) sym.netd_dbus_service_reload () | void netd_dbus_service_reload () {
0x0000c58c lui gp, 9 |
0x0000c590 addiu gp, gp, -0x494c |
0x0000c594 addu gp, gp, t9 | gp += t9;
0x0000c598 addiu sp, sp, -0x30 |
0x0000c59c sw gp, 0x20(sp) | *(var_18h_3) = gp;
0x0000c5a0 sw ra, 0x2c(sp) | *(var_24h_3) = ra;
0x0000c5a4 sw s0, 0x28(sp) | *(var_18h_4) = s0;
0x0000c5a8 lw v0, -0x7fd8(gp) | v0 = *(gp);
| if (a0 == 0) {
0x0000c5ac beqz a0, 0xc644 | goto label_0;
| }
0x0000c5b0 move a2, a1 | a2 = a1;
| if (a1 == 0) {
0x0000c5b4 beqz a1, 0xc668 | goto label_1;
| }
0x0000c5b8 move a1, a0 | a1 = a0;
0x0000c5bc lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000c5c0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._s__s.service */
0x0000c5c4 addiu a0, a0, 0x5c0c | a0 += 0x5c0c;
0x0000c5c8 jalr t9 | t9 ();
0x0000c5cc lw gp, 0x20(sp) | gp = *(var_18h_3);
0x0000c5d0 move s0, v0 | s0 = v0;
| do {
0x0000c5d4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000c5d8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000c5dc lw t9, -0x7930(gp) | t9 = sym.imp.g_variant_new;
0x0000c5e0 move a1, s0 | a1 = s0;
| /* str.replace */
0x0000c5e4 addiu a2, a2, 0x5c28 | a2 += 0x5c28;
| /* esilref: '(ss)' */
0x0000c5e8 addiu a0, a0, 0x5c30 | a0 += 0x5c30;
0x0000c5ec jalr t9 | t9 ();
0x0000c5f0 lw gp, 0x20(sp) | gp = *(var_18h_3);
0x0000c5f4 sw zero, 0x18(sp) | *(var_10h_3) = 0;
0x0000c5f8 sw zero, 0x14(sp) | *(var_14h) = 0;
0x0000c5fc lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000c600 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0000c604 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000c608 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0000c60c lw t9, -0x7f48(gp) | t9 = sym.netd_dbus_call_method;
| /* str.org.freedesktop.systemd1 */
0x0000c610 addiu a0, a0, 0x5c84 | a0 += 0x5c84;
0x0000c614 sw v0, 0x10(sp) | *(var_10h_4) = v0;
| /* str.ReloadUnit */
0x0000c618 addiu a3, a3, 0x5cac | a3 += 0x5cac;
| /* str.org.freedesktop.systemd1.Manager */
0x0000c61c addiu a2, a2, 0x5c44 | a2 += 0x5c44;
| /* str._org_freedesktop_systemd1 */
0x0000c620 addiu a1, a1, 0x5c68 | a1 += 0x5c68;
0x0000c624 bal 0xbcc4 | sym_netd_dbus_call_method ();
0x0000c628 lw gp, 0x20(sp) | gp = *(var_18h_3);
0x0000c62c lw ra, 0x2c(sp) | ra = *(var_24h_3);
0x0000c630 move a0, s0 | a0 = s0;
0x0000c634 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0000c638 lw s0, 0x28(sp) | s0 = *(var_18h_4);
0x0000c63c addiu sp, sp, 0x30 |
0x0000c640 jr t9 | t9 ();
| label_0:
0x0000c644 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0000c648 lw a1, -0x7fd8(gp) | a1 = *(gp);
| /* str.service___NULL */
0x0000c64c addiu v0, v0, 0x5aec | v0 += 0x5aec;
0x0000c650 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0000c654 sw v0, 0x10(sp) | *(var_10h_4) = v0;
| /* str.netd_dbus_service_reload */
0x0000c658 addiu a3, a3, 0x6028 | a3 += 0x6028;
0x0000c65c addiu a2, zero, 0x243 | a2 = 0x243;
| /* str.src_netd_dbus.c */
0x0000c660 addiu a1, a1, 0x5900 | a1 += 0x5900;
0x0000c664 jalr t9 | t9 ();
| label_1:
0x0000c668 move a1, a0 | a1 = a0;
0x0000c66c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000c670 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._s.service */
0x0000c674 addiu a0, a0, 0x5c1c | a0 += 0x5c1c;
0x0000c678 jalr t9 | t9 ();
0x0000c67c move s0, v0 | s0 = v0;
0x0000c680 lw gp, 0x20(sp) | gp = *(var_18h_3);
0x0000c684 b 0xc5d4 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0xc490 */
| #include <stdint.h>
|
; (fcn) sym.netd_dbus_service_restart () | void netd_dbus_service_restart () {
0x0000c490 lui gp, 9 |
0x0000c494 addiu gp, gp, -0x4850 |
0x0000c498 addu gp, gp, t9 | gp += t9;
0x0000c49c addiu sp, sp, -0x30 |
0x0000c4a0 sw gp, 0x20(sp) | *(var_20h) = gp;
0x0000c4a4 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0000c4a8 sw s0, 0x28(sp) | *(var_28h) = s0;
0x0000c4ac lw v0, -0x7fd8(gp) | v0 = *(gp);
| if (a0 == 0) {
0x0000c4b0 beqz a0, 0xc548 | goto label_0;
| }
0x0000c4b4 move a2, a1 | a2 = a1;
| if (a1 == 0) {
0x0000c4b8 beqz a1, 0xc56c | goto label_1;
| }
0x0000c4bc move a1, a0 | a1 = a0;
0x0000c4c0 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000c4c4 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._s__s.service */
0x0000c4c8 addiu a0, a0, 0x5c0c | a0 += 0x5c0c;
0x0000c4cc jalr t9 | t9 ();
0x0000c4d0 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000c4d4 move s0, v0 | s0 = v0;
| do {
0x0000c4d8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000c4dc lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000c4e0 lw t9, -0x7930(gp) | t9 = sym.imp.g_variant_new;
0x0000c4e4 move a1, s0 | a1 = s0;
| /* str.replace */
0x0000c4e8 addiu a2, a2, 0x5c28 | a2 += 0x5c28;
| /* esilref: '(ss)' */
0x0000c4ec addiu a0, a0, 0x5c30 | a0 += 0x5c30;
0x0000c4f0 jalr t9 | t9 ();
0x0000c4f4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000c4f8 sw zero, 0x18(sp) | *(var_18h) = 0;
0x0000c4fc sw zero, 0x14(sp) | *(var_14h) = 0;
0x0000c500 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000c504 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0000c508 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000c50c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0000c510 lw t9, -0x7f48(gp) | t9 = sym.netd_dbus_call_method;
| /* str.org.freedesktop.systemd1 */
0x0000c514 addiu a0, a0, 0x5c84 | a0 += 0x5c84;
0x0000c518 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.RestartUnit */
0x0000c51c addiu a3, a3, 0x5ca0 | a3 += 0x5ca0;
| /* str.org.freedesktop.systemd1.Manager */
0x0000c520 addiu a2, a2, 0x5c44 | a2 += 0x5c44;
| /* str._org_freedesktop_systemd1 */
0x0000c524 addiu a1, a1, 0x5c68 | a1 += 0x5c68;
0x0000c528 bal 0xbcc4 | sym_netd_dbus_call_method ();
0x0000c52c lw gp, 0x20(sp) | gp = *(var_20h);
0x0000c530 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000c534 move a0, s0 | a0 = s0;
0x0000c538 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0000c53c lw s0, 0x28(sp) | s0 = *(var_28h);
0x0000c540 addiu sp, sp, 0x30 |
0x0000c544 jr t9 | t9 ();
| label_0:
0x0000c548 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0000c54c lw a1, -0x7fd8(gp) | a1 = *(gp);
| /* str.service___NULL */
0x0000c550 addiu v0, v0, 0x5aec | v0 += 0x5aec;
0x0000c554 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0000c558 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.netd_dbus_service_restart */
0x0000c55c addiu a3, a3, 0x6044 | a3 += 0x6044;
0x0000c560 addiu a2, zero, 0x22b | a2 = 0x22b;
| /* str.src_netd_dbus.c */
0x0000c564 addiu a1, a1, 0x5900 | a1 += 0x5900;
0x0000c568 jalr t9 | t9 ();
| label_1:
0x0000c56c move a1, a0 | a1 = a0;
0x0000c570 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000c574 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._s.service */
0x0000c578 addiu a0, a0, 0x5c1c | a0 += 0x5c1c;
0x0000c57c jalr t9 | t9 ();
0x0000c580 move s0, v0 | s0 = v0;
0x0000c584 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000c588 b 0xc4d8 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0xc394 */
| #include <stdint.h>
|
; (fcn) sym.netd_dbus_service_start () | void netd_dbus_service_start () {
0x0000c394 lui gp, 9 |
0x0000c398 addiu gp, gp, -0x4754 |
0x0000c39c addu gp, gp, t9 | gp += t9;
0x0000c3a0 addiu sp, sp, -0x30 |
0x0000c3a4 sw gp, 0x20(sp) | *(var_20h) = gp;
0x0000c3a8 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0000c3ac sw s0, 0x28(sp) | *(var_28h) = s0;
0x0000c3b0 lw v0, -0x7fd8(gp) | v0 = *(gp);
| if (a0 == 0) {
0x0000c3b4 beqz a0, 0xc44c | goto label_0;
| }
0x0000c3b8 move a2, a1 | a2 = a1;
| if (a1 == 0) {
0x0000c3bc beqz a1, 0xc470 | goto label_1;
| }
0x0000c3c0 move a1, a0 | a1 = a0;
0x0000c3c4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000c3c8 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._s__s.service */
0x0000c3cc addiu a0, a0, 0x5c0c | a0 += 0x5c0c;
0x0000c3d0 jalr t9 | t9 ();
0x0000c3d4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000c3d8 move s0, v0 | s0 = v0;
| do {
0x0000c3dc lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000c3e0 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000c3e4 lw t9, -0x7930(gp) | t9 = sym.imp.g_variant_new;
0x0000c3e8 move a1, s0 | a1 = s0;
| /* str.replace */
0x0000c3ec addiu a2, a2, 0x5c28 | a2 += 0x5c28;
| /* esilref: '(ss)' */
0x0000c3f0 addiu a0, a0, 0x5c30 | a0 += 0x5c30;
0x0000c3f4 jalr t9 | t9 ();
0x0000c3f8 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000c3fc sw zero, 0x18(sp) | *(var_18h) = 0;
0x0000c400 sw zero, 0x14(sp) | *(var_14h) = 0;
0x0000c404 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000c408 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0000c40c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000c410 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0000c414 lw t9, -0x7f48(gp) | t9 = sym.netd_dbus_call_method;
| /* str.org.freedesktop.systemd1 */
0x0000c418 addiu a0, a0, 0x5c84 | a0 += 0x5c84;
0x0000c41c sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.StartUnit */
0x0000c420 addiu a3, a3, 0x5c38 | a3 += 0x5c38;
| /* str.org.freedesktop.systemd1.Manager */
0x0000c424 addiu a2, a2, 0x5c44 | a2 += 0x5c44;
| /* str._org_freedesktop_systemd1 */
0x0000c428 addiu a1, a1, 0x5c68 | a1 += 0x5c68;
0x0000c42c bal 0xbcc4 | sym_netd_dbus_call_method ();
0x0000c430 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000c434 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000c438 move a0, s0 | a0 = s0;
0x0000c43c lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0000c440 lw s0, 0x28(sp) | s0 = *(var_28h);
0x0000c444 addiu sp, sp, 0x30 |
0x0000c448 jr t9 | t9 ();
| label_0:
0x0000c44c lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0000c450 lw a1, -0x7fd8(gp) | a1 = *(gp);
| /* str.service___NULL */
0x0000c454 addiu v0, v0, 0x5aec | v0 += 0x5aec;
0x0000c458 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0000c45c sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.netd_dbus_service_start */
0x0000c460 addiu a3, a3, 0x6060 | a3 += 0x6060;
0x0000c464 addiu a2, zero, 0x213 | a2 = 0x213;
| /* str.src_netd_dbus.c */
0x0000c468 addiu a1, a1, 0x5900 | a1 += 0x5900;
0x0000c46c jalr t9 | t9 ();
| label_1:
0x0000c470 move a1, a0 | a1 = a0;
0x0000c474 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000c478 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._s.service */
0x0000c47c addiu a0, a0, 0x5c1c | a0 += 0x5c1c;
0x0000c480 jalr t9 | t9 ();
0x0000c484 move s0, v0 | s0 = v0;
0x0000c488 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000c48c b 0xc3dc |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0xc688 */
| #include <stdint.h>
|
; (fcn) sym.netd_dbus_service_stop () | void netd_dbus_service_stop () {
0x0000c688 lui gp, 9 |
0x0000c68c addiu gp, gp, -0x4a48 |
0x0000c690 addu gp, gp, t9 | gp += t9;
0x0000c694 addiu sp, sp, -0x30 |
0x0000c698 sw gp, 0x20(sp) | *(var_20h) = gp;
0x0000c69c sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0000c6a0 sw s0, 0x28(sp) | *(var_28h) = s0;
0x0000c6a4 lw v0, -0x7fd8(gp) | v0 = *(gp);
| if (a0 == 0) {
0x0000c6a8 beqz a0, 0xc740 | goto label_0;
| }
0x0000c6ac move a2, a1 | a2 = a1;
| if (a1 == 0) {
0x0000c6b0 beqz a1, 0xc764 | goto label_1;
| }
0x0000c6b4 move a1, a0 | a1 = a0;
0x0000c6b8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000c6bc lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._s__s.service */
0x0000c6c0 addiu a0, a0, 0x5c0c | a0 += 0x5c0c;
0x0000c6c4 jalr t9 | t9 ();
0x0000c6c8 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000c6cc move s0, v0 | s0 = v0;
| do {
0x0000c6d0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000c6d4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000c6d8 lw t9, -0x7930(gp) | t9 = sym.imp.g_variant_new;
0x0000c6dc move a1, s0 | a1 = s0;
| /* str.replace */
0x0000c6e0 addiu a2, a2, 0x5c28 | a2 += 0x5c28;
| /* esilref: '(ss)' */
0x0000c6e4 addiu a0, a0, 0x5c30 | a0 += 0x5c30;
0x0000c6e8 jalr t9 | t9 ();
0x0000c6ec lw gp, 0x20(sp) | gp = *(var_20h);
0x0000c6f0 sw zero, 0x18(sp) | *(var_18h) = 0;
0x0000c6f4 sw zero, 0x14(sp) | *(var_14h) = 0;
0x0000c6f8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000c6fc lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0000c700 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000c704 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0000c708 lw t9, -0x7f48(gp) | t9 = sym.netd_dbus_call_method;
| /* str.org.freedesktop.systemd1 */
0x0000c70c addiu a0, a0, 0x5c84 | a0 += 0x5c84;
0x0000c710 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.StopUnit */
0x0000c714 addiu a3, a3, 0x5cb8 | a3 += 0x5cb8;
| /* str.org.freedesktop.systemd1.Manager */
0x0000c718 addiu a2, a2, 0x5c44 | a2 += 0x5c44;
| /* str._org_freedesktop_systemd1 */
0x0000c71c addiu a1, a1, 0x5c68 | a1 += 0x5c68;
0x0000c720 bal 0xbcc4 | sym_netd_dbus_call_method ();
0x0000c724 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000c728 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000c72c move a0, s0 | a0 = s0;
0x0000c730 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0000c734 lw s0, 0x28(sp) | s0 = *(var_28h);
0x0000c738 addiu sp, sp, 0x30 |
0x0000c73c jr t9 | t9 ();
| label_0:
0x0000c740 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0000c744 lw a1, -0x7fd8(gp) | a1 = *(gp);
| /* str.service___NULL */
0x0000c748 addiu v0, v0, 0x5aec | v0 += 0x5aec;
0x0000c74c lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0000c750 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.netd_dbus_service_stop */
0x0000c754 addiu a3, a3, 0x6010 | a3 += 0x6010;
0x0000c758 addiu a2, zero, 0x25c | a2 = aav.0x0000025c;
| /* str.src_netd_dbus.c */
0x0000c75c addiu a1, a1, 0x5900 | a1 += 0x5900;
0x0000c760 jalr t9 | t9 ();
| label_1:
0x0000c764 move a1, a0 | a1 = a0;
0x0000c768 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000c76c lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._s.service */
0x0000c770 addiu a0, a0, 0x5c1c | a0 += 0x5c1c;
0x0000c774 jalr t9 | t9 ();
0x0000c778 move s0, v0 | s0 = v0;
0x0000c77c lw gp, 0x20(sp) | gp = *(var_20h);
0x0000c780 b 0xc6d0 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x28798 */
| #include <stdint.h>
|
; (fcn) sym.netd_device_dot1x_client_config_apply () | void netd_device_dot1x_client_config_apply () {
0x00028798 lui gp, 7 |
0x0002879c addiu gp, gp, -0xb58 |
0x000287a0 addu gp, gp, t9 | gp += t9;
0x000287a4 addiu sp, sp, -0x40 |
0x000287a8 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000287ac sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x000287b0 sw s6, 0x38(sp) | *(var_38h) = s6;
0x000287b4 sw s5, 0x34(sp) | *(var_34h) = s5;
0x000287b8 sw s4, 0x30(sp) | *(var_30h) = s4;
0x000287bc sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x000287c0 sw s2, 0x28(sp) | *(var_28h) = s2;
0x000287c4 sw s1, 0x24(sp) | *(var_24h) = s1;
0x000287c8 sw s0, 0x20(sp) | *(var_20h) = s0;
0x000287cc lw v0, -0x7cfc(gp) | v0 = *(gp);
| if (a0 == 0) {
0x000287d0 beqz a0, 0x288e4 | goto label_24;
| }
0x000287d4 move s0, a1 | s0 = a1;
| if (a1 == 0) {
0x000287d8 beqz a1, 0x28908 | goto label_25;
| }
0x000287dc lw v1, (a1) | v1 = *(a1);
0x000287e0 move s1, a0 | s1 = a0;
0x000287e4 andi v0, v1, 8 | v0 = v1 & 8;
0x000287e8 move s4, a2 | s4 = a2;
| if (v0 != 0) {
0x000287ec bnez v0, 0x28bac | goto label_26;
| }
0x000287f0 move s2, zero | s2 = 0;
0x000287f4 addiu s3, zero, 1 | s3 = 1;
| label_7:
0x000287f8 andi v0, v1, 0x20 | v0 = v1 & 0x20;
0x000287fc lw t9, -0x7d88(gp) | t9 = sym.netd_device_dot1x_client_get_wpa_enterprise_method;
| if (v0 != 0) {
0x00028800 bnez v0, 0x28b30 | goto label_27;
| }
| label_6:
0x00028804 andi v0, v1, 4 | v0 = v1 & 4;
0x00028808 lw t9, -0x7d04(gp) | t9 = sym.netd_device_dot1x_client_is_wpa_personal_enabled;
| if (v0 != 0) {
0x0002880c bnez v0, 0x28c90 | goto label_28;
| }
| label_11:
0x00028810 andi v0, v1, 0x10 | v0 = v1 & 0x10;
0x00028814 lw t9, -0x7d8c(gp) | t9 = sym.netd_device_dot1x_client_is_wpa_enterprise_enabled;
| if (v0 != 0) {
0x00028818 bnez v0, 0x28c74 | goto label_29;
| }
| label_10:
0x0002881c andi v0, v1, 1 | v0 = v1 & 1;
0x00028820 lw t9, -0x7db8(gp) | t9 = sym.netd_device_dot1x_client_get_eap_tls_eapol_version;
| if (v0 != 0) {
0x00028824 bnez v0, 0x28c58 | goto label_30;
| }
| label_9:
0x00028828 andi v0, v1, 2 | v0 = v1 & 2;
0x0002882c lw t9, -0x7dbc(gp) | t9 = sym.netd_device_dot1x_client_get_eap_tls_identity;
| if (v0 != 0) {
0x00028830 bnez v0, 0x28c18 | goto label_31;
| }
| label_8:
0x00028834 andi v0, v1, 0x40 | v0 = v1 & 0x40;
0x00028838 lw t9, -0x7dc4(gp) | t9 = sym.netd_device_dot1x_client_get_wpa_personal_passphrase;
| if (v0 != 0) {
0x0002883c bnez v0, 0x28ae0 | goto label_32;
| }
| label_5:
0x00028840 andi v0, v1, 0x80 | v0 = v1 & 0x80;
0x00028844 lw t9, -0x7dc0(gp) | t9 = sym.netd_device_dot1x_client_get_wpa_personal_key;
| if (v0 != 0) {
0x00028848 bnez v0, 0x28a90 | goto label_33;
| }
| label_4:
0x0002884c andi v0, v1, 0x1000 | v0 = v1 & 0x1000;
0x00028850 lw t9, -0x7dac(gp) | t9 = sym.netd_device_dot1x_client_get_eap_peap_mschapv2_eapol_version;
| if (v0 != 0) {
0x00028854 bnez v0, 0x28a74 | goto label_34;
| }
| label_3:
0x00028858 andi v0, v1, 0x100 | v0 = v1 & aav.0x00000100;
0x0002885c andi v0, v1, 0x200 | v0 = v1 & aav.0x00000200;
| if (v0 != 0) {
0x00028860 bnez v0, 0x289b4 | goto label_35;
| }
0x00028864 lw t9, -0x7db0(gp) | t9 = sym.netd_device_dot1x_client_get_eap_peap_mschapv2_password;
| if (v0 != 0) {
0x00028868 bnez v0, 0x28a00 | goto label_36;
| }
| label_1:
0x0002886c andi v0, v1, 0x400 | v0 = v1 & aav.0x00000400;
0x00028870 lw t9, -0x7da8(gp) | t9 = sym.netd_device_dot1x_client_get_eap_peap_mschapv2_version;
| if (v0 != 0) {
0x00028874 bnez v0, 0x28a58 | goto label_37;
| }
| label_2:
0x00028878 andi v1, v1, 0x800 | v1 &= 0x800;
0x0002887c lw t9, -0x7da4(gp) | t9 = sym.netd_device_dot1x_client_get_eap_peap_mschapv2_label;
0x00028880 bnez v1, 0x28934 |
| while (v0 == a1) {
| label_0:
0x00028884 lw ra, 0x3c(sp) | ra = *(var_3ch);
| if (s2 != 0) {
0x00028888 beqz s2, 0x288bc |
0x0002888c lw t9, -0x7c88(gp) | t9 = *(gp);
| if (s4 != 0) {
0x00028890 bnez s4, 0x28cac | goto label_38;
| }
| label_12:
0x00028894 lw t9, -0x7c88(gp) | t9 = *(gp);
0x00028898 lw a0, 0x2c(s1) | a0 = *((s1 + 11));
| /* fcn.00025a38 */
0x0002889c addiu t9, t9, 0x5a38 | t9 += 0x5a38;
0x000288a0 move a1, s2 | a1 = s2;
0x000288a4 bal 0x25a38 | fcn_00025a38 ();
0x000288a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000288ac lw t9, -0x75a8(gp) | t9 = sym.imp.g_list_free;
0x000288b0 move a0, s2 | a0 = s2;
0x000288b4 jalr t9 | t9 ();
0x000288b8 lw ra, 0x3c(sp) | ra = *(var_3ch);
| }
0x000288bc move v0, s3 | v0 = s3;
0x000288c0 lw s6, 0x38(sp) | s6 = *(var_38h);
0x000288c4 lw s5, 0x34(sp) | s5 = *(var_34h);
0x000288c8 lw s4, 0x30(sp) | s4 = *(var_30h);
0x000288cc lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x000288d0 lw s2, 0x28(sp) | s2 = *(var_28h);
0x000288d4 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000288d8 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000288dc addiu sp, sp, 0x40 |
0x000288e0 jr ra | return v1;
| label_24:
0x000288e4 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x000288e8 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev != NULL' */
0x000288ec addiu v0, v0, 0x35a0 | v0 += 0x35a0;
0x000288f0 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x000288f4 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.netd_device_dot1x_client_config_apply */
0x000288f8 addiu a3, a3, 0x4880 | a3 += 0x4880;
0x000288fc addiu a2, zero, 0x4b0 | a2 = 0x4b0;
| /* str.src_netd_device_dot1x_client.c */
0x00028900 addiu a1, a1, 0x3580 | a1 += 0x3580;
0x00028904 jalr t9 | t9 ();
| label_25:
0x00028908 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x0002890c lw a3, -0x7cfc(gp) | a3 = *(gp);
0x00028910 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'cfg != NULL' */
0x00028914 addiu v0, v0, 0x3fa0 | v0 += 0x3fa0;
0x00028918 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0002891c sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.netd_device_dot1x_client_config_apply */
0x00028920 addiu a3, a3, 0x4880 | a3 += 0x4880;
0x00028924 addiu a2, zero, 0x4b1 | a2 = 0x4b1;
| /* str.src_netd_device_dot1x_client.c */
0x00028928 addiu a1, a1, 0x3580 | a1 += 0x3580;
0x0002892c move a0, zero | a0 = 0;
0x00028930 jalr t9 | t9 ();
0x00028934 move a0, s1 | a0 = s1;
0x00028938 bal 0x28150 | sym_netd_device_dot1x_client_get_eap_peap_mschapv2_label ();
0x0002893c lw a1, 0x28(s0) | a1 = *((s0 + 10));
0x00028940 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028944 beq v0, a1, 0x28884 |
| }
0x00028948 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0002894c lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* esilref: '&d' */
0x00028950 addiu a0, a0, 0x409c | a0 += 0x409c;
0x00028954 jalr t9 | t9 ();
0x00028958 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002895c move a0, s1 | a0 = s1;
0x00028960 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00028964 move s0, v0 | s0 = v0;
0x00028968 bal 0x23124 | sym_netd_device_get_name ();
0x0002896c lw gp, 0x18(sp) | gp = *(var_18h);
0x00028970 move a0, v0 | a0 = v0;
0x00028974 move a2, s0 | a2 = s0;
0x00028978 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x0002897c addiu a1, zero, 0x419 | a1 = 0x419;
0x00028980 jalr t9 | t9 ();
0x00028984 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028988 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002898c move a0, s0 | a0 = s0;
0x00028990 jalr t9 | t9 ();
0x00028994 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028998 move a0, s2 | a0 = s2;
0x0002899c lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x000289a0 addiu a1, zero, 0x419 | a1 = 0x419;
0x000289a4 jalr t9 | t9 ();
0x000289a8 move s2, v0 | s2 = v0;
0x000289ac lw gp, 0x18(sp) | gp = *(var_18h);
0x000289b0 b 0x28884 | goto label_0;
| label_35:
0x000289b4 lw t9, -0x7db4(gp) | t9 = sym.netd_device_dot1x_client_get_eap_peap_mschapv2_identity;
0x000289b8 move a0, s1 | a0 = s1;
0x000289bc bal 0x27f60 | sym_netd_device_dot1x_client_get_eap_peap_mschapv2_identity ();
0x000289c0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000289c4 lw a0, 0x2c(s0) | a0 = *((s0 + 11));
0x000289c8 move a1, v0 | a1 = v0;
0x000289cc lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x000289d0 move s5, v0 | s5 = v0;
0x000289d4 jalr t9 | t9 ();
0x000289d8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000289dc bnez v0, 0x2904c | goto label_39;
| }
| label_17:
0x000289e0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000289e4 move a0, s5 | a0 = s5;
0x000289e8 jalr t9 | t9 ();
0x000289ec lw v1, (s0) | v1 = *(s0);
0x000289f0 andi v0, v1, 0x200 | v0 = v1 & aav.0x00000200;
0x000289f4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000289f8 beqz v0, 0x2886c | goto label_1;
| }
0x000289fc lw t9, -0x7db0(gp) | t9 = sym.netd_device_dot1x_client_get_eap_peap_mschapv2_password;
| label_36:
0x00028a00 move a0, s1 | a0 = s1;
0x00028a04 bal 0x280e4 | sym_netd_device_dot1x_client_get_eap_peap_mschapv2_password ();
0x00028a08 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028a0c lw a0, 0x30(s0) | a0 = *((s0 + 12));
0x00028a10 move a1, v0 | a1 = v0;
0x00028a14 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00028a18 move s5, v0 | s5 = v0;
0x00028a1c jalr t9 | t9 ();
0x00028a20 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00028a24 bnez v0, 0x29008 | goto label_40;
| }
| label_16:
0x00028a28 lw t9, -0x7dc8(gp) | t9 = sym.netd_util_clear_string;
0x00028a2c move a0, s5 | a0 = s5;
0x00028a30 jalr t9 | t9 ();
0x00028a34 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028a38 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00028a3c move a0, s5 | a0 = s5;
0x00028a40 jalr t9 | t9 ();
0x00028a44 lw v1, (s0) | v1 = *(s0);
0x00028a48 andi v0, v1, 0x400 | v0 = v1 & aav.0x00000400;
0x00028a4c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00028a50 beqz v0, 0x28878 | goto label_2;
| }
0x00028a54 lw t9, -0x7da8(gp) | t9 = sym.netd_device_dot1x_client_get_eap_peap_mschapv2_version;
| label_37:
0x00028a58 move a0, s1 | a0 = s1;
0x00028a5c bal 0x27fcc | sym_netd_device_dot1x_client_get_eap_peap_mschapv2_version ();
0x00028a60 lw a1, 0x24(s0) | a1 = *((s0 + 9));
0x00028a64 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != a1) {
0x00028a68 bne v0, a1, 0x28d90 | goto label_41;
| }
0x00028a6c lw v1, (s0) | v1 = *(s0);
0x00028a70 b 0x28878 | goto label_2;
| label_34:
0x00028a74 lw s5, 0x34(s0) | s5 = *((s0 + 13));
0x00028a78 move a0, s1 | a0 = s1;
0x00028a7c bal 0x27e44 | sym_netd_device_dot1x_client_get_eap_peap_mschapv2_eapol_version ();
0x00028a80 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s5 != v0) {
0x00028a84 bne s5, v0, 0x28e00 | goto label_42;
| }
0x00028a88 lw v1, (s0) | v1 = *(s0);
0x00028a8c b 0x28858 | goto label_3;
| label_33:
0x00028a90 move a0, s1 | a0 = s1;
0x00028a94 bal 0x28618 | sym_netd_device_dot1x_client_get_wpa_personal_key ();
0x00028a98 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028a9c lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x00028aa0 move a1, v0 | a1 = v0;
0x00028aa4 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00028aa8 move s5, v0 | s5 = v0;
0x00028aac jalr t9 | t9 ();
0x00028ab0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00028ab4 bnez v0, 0x28fc4 | goto label_43;
| }
| label_15:
0x00028ab8 lw t9, -0x7dc8(gp) | t9 = sym.netd_util_clear_string;
0x00028abc move a0, s5 | a0 = s5;
0x00028ac0 jalr t9 | t9 ();
0x00028ac4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028ac8 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00028acc move a0, s5 | a0 = s5;
0x00028ad0 jalr t9 | t9 ();
0x00028ad4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028ad8 lw v1, (s0) | v1 = *(s0);
0x00028adc b 0x2884c | goto label_4;
| label_32:
0x00028ae0 move a0, s1 | a0 = s1;
0x00028ae4 bal 0x285ac | sym_netd_device_dot1x_client_get_wpa_personal_passphrase ();
0x00028ae8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028aec lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x00028af0 move a1, v0 | a1 = v0;
0x00028af4 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00028af8 move s5, v0 | s5 = v0;
0x00028afc jalr t9 | t9 ();
0x00028b00 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00028b04 bnez v0, 0x28f80 | goto label_44;
| }
| label_14:
0x00028b08 lw t9, -0x7dc8(gp) | t9 = sym.netd_util_clear_string;
0x00028b0c move a0, s5 | a0 = s5;
0x00028b10 jalr t9 | t9 ();
0x00028b14 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028b18 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00028b1c move a0, s5 | a0 = s5;
0x00028b20 jalr t9 | t9 ();
0x00028b24 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028b28 lw v1, (s0) | v1 = *(s0);
0x00028b2c b 0x28840 | goto label_5;
| label_27:
0x00028b30 move a0, s1 | a0 = s1;
0x00028b34 bal 0x28684 | sym_netd_device_dot1x_client_get_wpa_enterprise_method ();
0x00028b38 lw v1, 0x18(s0) | v1 = *((s0 + 6));
0x00028b3c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == v1) {
0x00028b40 beq v0, v1, 0x28f24 | goto label_45;
| }
0x00028b44 addiu s6, zero, 1 | s6 = 1;
0x00028b48 lw a2, -0x7cfc(gp) | a2 = *(gp);
| if (v1 == s6) {
0x00028b4c beq v1, s6, 0x29158 | goto label_46;
| }
0x00028b50 addiu s5, zero, 2 | s5 = 2;
0x00028b54 lw a2, -0x7cfc(gp) | a2 = *(gp);
| if (v1 == s5) {
0x00028b58 beq v1, s5, 0x290e0 | goto label_47;
| }
0x00028b5c lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00028b60 move a0, s1 | a0 = s1;
0x00028b64 bal 0x23124 | sym_netd_device_get_name ();
0x00028b68 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028b6c lw a3, 0x18(s0) | a3 = *((s0 + 6));
0x00028b70 move a2, v0 | a2 = v0;
0x00028b74 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00028b78 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Tried_to_set_invalid_WPA_Enterprise_method___d_ */
0x00028b7c addiu a1, a1, 0x3fe0 | a1 += 0x3fe0;
0x00028b80 addiu a0, zero, 3 | a0 = 3;
0x00028b84 bal 0x434d0 | sym_netd_log_esc ();
0x00028b88 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028b8c lw t9, -0x7f1c(gp) | t9 = sym.netd_device_get_type;
0x00028b90 move a0, s1 | a0 = s1;
0x00028b94 bal 0x231a4 | sym_netd_device_get_type ();
0x00028b98 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == s5) {
0x00028b9c beq v0, s5, 0x28ee8 | goto label_48;
| }
0x00028ba0 lw v1, (s0) | v1 = *(s0);
| do {
0x00028ba4 move s3, zero | s3 = 0;
0x00028ba8 b 0x28804 | goto label_6;
| label_26:
0x00028bac lw t9, -0x7d00(gp) | t9 = sym.netd_device_dot1x_client_get_wpa_personal_method;
0x00028bb0 bal 0x28498 | sym_netd_device_dot1x_client_get_wpa_personal_method ();
0x00028bb4 nop |
0x00028bb8 lw v1, 8(s0) | v1 = *((s0 + 2));
0x00028bbc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == v1) {
0x00028bc0 beq v0, v1, 0x28f2c | goto label_49;
| }
0x00028bc4 addiu v0, zero, 1 | v0 = 1;
0x00028bc8 addiu v0, zero, 2 | v0 = 2;
| if (v1 == v0) {
0x00028bcc beq v1, v0, 0x29160 | goto label_50;
| }
| if (v1 == v0) {
0x00028bd0 beql v1, v0, 0x29090 | goto label_51;
| }
0x00028bd4 lw s2, -0x7cfc(gp) | s2 = *(gp);
0x00028bd8 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00028bdc move a0, s1 | a0 = s1;
0x00028be0 bal 0x23124 | sym_netd_device_get_name ();
0x00028be4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028be8 lw a3, 8(s0) | a3 = *((s0 + 2));
0x00028bec move a2, v0 | a2 = v0;
0x00028bf0 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00028bf4 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Tried_to_set_invalid_WPA_Personal_method___d_ */
0x00028bf8 addiu a1, a1, 0x3fac | a1 += 0x3fac;
0x00028bfc addiu a0, zero, 3 | a0 = 3;
0x00028c00 bal 0x434d0 | sym_netd_log_esc ();
0x00028c04 move s2, zero | s2 = 0;
0x00028c08 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028c0c lw v1, (s0) | v1 = *(s0);
0x00028c10 move s3, zero | s3 = 0;
0x00028c14 b 0x287f8 | goto label_7;
| label_31:
0x00028c18 move a0, s1 | a0 = s1;
0x00028c1c bal 0x27dd8 | sym_netd_device_dot1x_client_get_eap_tls_identity ();
0x00028c20 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028c24 lw a0, 0x1c(s0) | a0 = *((s0 + 7));
0x00028c28 move a1, v0 | a1 = v0;
0x00028c2c lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00028c30 move s5, v0 | s5 = v0;
0x00028c34 jalr t9 | t9 ();
0x00028c38 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00028c3c bnez v0, 0x28f3c | goto label_52;
| }
| label_13:
0x00028c40 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00028c44 move a0, s5 | a0 = s5;
0x00028c48 jalr t9 | t9 ();
0x00028c4c lw gp, 0x18(sp) | gp = *(var_18h);
0x00028c50 lw v1, (s0) | v1 = *(s0);
0x00028c54 b 0x28834 | goto label_8;
| label_30:
0x00028c58 lw s5, 0x20(s0) | s5 = *((s0 + 8));
0x00028c5c move a0, s1 | a0 = s1;
0x00028c60 bal 0x27cbc | sym_netd_device_dot1x_client_get_eap_tls_eapol_version ();
0x00028c64 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s5 == v0) {
0x00028c68 bne s5, v0, 0x28e74 |
0x00028c6c lw v1, (s0) | v1 = *(s0);
0x00028c70 b 0x28828 | goto label_9;
| label_29:
0x00028c74 lw s5, 0x14(s0) | s5 = *((s0 + 5));
0x00028c78 move a0, s1 | a0 = s1;
0x00028c7c bal 0x28380 | sym_netd_device_dot1x_client_is_wpa_enterprise_enabled ();
0x00028c80 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s5 == v0) {
0x00028c84 bne s5, v0, 0x28d14 |
0x00028c88 lw v1, (s0) | v1 = *(s0);
0x00028c8c b 0x2881c | goto label_10;
| label_28:
0x00028c90 lw s5, 4(s0) | s5 = *((s0 + 1));
0x00028c94 move a0, s1 | a0 = s1;
0x00028c98 bal 0x28268 | sym_netd_device_dot1x_client_is_wpa_personal_enabled ();
0x00028c9c lw gp, 0x18(sp) | gp = *(var_18h);
| if (s5 == v0) {
0x00028ca0 bne s5, v0, 0x28cc0 |
0x00028ca4 lw v1, (s0) | v1 = *(s0);
0x00028ca8 b 0x28810 | goto label_11;
| /* fcn.000275fc */
| label_38:
0x00028cac addiu t9, t9, 0x75fc | t9 += 0x75fc;
0x00028cb0 move a0, s1 | a0 = s1;
0x00028cb4 bal 0x275fc | fcn_000275fc ();
0x00028cb8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028cbc b 0x28894 | goto label_12;
| }
0x00028cc0 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00028cc4 move a0, s1 | a0 = s1;
0x00028cc8 bal 0x23124 | sym_netd_device_get_name ();
0x00028ccc lw v1, 4(s0) | v1 = *((s0 + 1));
0x00028cd0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v1 != 0) {
0x00028cd4 bnez v1, 0x2914c | goto label_53;
| }
0x00028cd8 lw a2, -0x7cfc(gp) | a2 = *(gp);
| /* esilref: 'no' */
0x00028cdc addiu a2, a2, 0x3d38 | a2 += 0x3d38;
| label_18:
0x00028ce0 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x00028ce4 move a0, v0 | a0 = v0;
0x00028ce8 addiu a1, zero, 0x41b | a1 = 0x41b;
0x00028cec jalr t9 | t9 ();
0x00028cf0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028cf4 move a0, s2 | a0 = s2;
0x00028cf8 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00028cfc addiu a1, zero, 0x41b | a1 = 0x41b;
0x00028d00 jalr t9 | t9 ();
0x00028d04 move s2, v0 | s2 = v0;
0x00028d08 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028d0c lw v1, (s0) | v1 = *(s0);
0x00028d10 b 0x28810 | goto label_11;
| }
0x00028d14 lw t9, -0x7f1c(gp) | t9 = sym.netd_device_get_type;
0x00028d18 move a0, s1 | a0 = s1;
0x00028d1c bal 0x231a4 | sym_netd_device_get_type ();
0x00028d20 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028d24 addiu v1, zero, 2 | v1 = 2;
0x00028d28 move a0, s1 | a0 = s1;
0x00028d2c lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
| if (v0 == v1) {
0x00028d30 bne v0, v1, 0x28d40 |
0x00028d34 lw v0, 0x14(s0) | v0 = *((s0 + 5));
| if (v0 == 0) {
0x00028d38 beqz v0, 0x29178 | goto label_54;
| }
0x00028d3c nop |
| }
0x00028d40 bal 0x23124 | sym_netd_device_get_name ();
0x00028d44 nop |
0x00028d48 lw v1, 0x14(s0) | v1 = *((s0 + 5));
0x00028d4c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v1 != 0) {
0x00028d50 bnez v1, 0x2916c | goto label_55;
| }
0x00028d54 lw a2, -0x7cfc(gp) | a2 = *(gp);
| /* esilref: 'no' */
0x00028d58 addiu a2, a2, 0x3d38 | a2 += 0x3d38;
| label_21:
0x00028d5c lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x00028d60 move a0, v0 | a0 = v0;
0x00028d64 addiu a1, zero, 0x41f | a1 = 0x41f;
0x00028d68 jalr t9 | t9 ();
0x00028d6c lw gp, 0x18(sp) | gp = *(var_18h);
0x00028d70 move a0, s2 | a0 = s2;
0x00028d74 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00028d78 addiu a1, zero, 0x41f | a1 = 0x41f;
0x00028d7c jalr t9 | t9 ();
0x00028d80 move s2, v0 | s2 = v0;
0x00028d84 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028d88 lw v1, (s0) | v1 = *(s0);
0x00028d8c b 0x2881c | goto label_10;
| label_41:
0x00028d90 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00028d94 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* esilref: '&d' */
0x00028d98 addiu a0, a0, 0x409c | a0 += 0x409c;
0x00028d9c jalr t9 | t9 ();
0x00028da0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028da4 move a0, s1 | a0 = s1;
0x00028da8 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00028dac move s5, v0 | s5 = v0;
0x00028db0 bal 0x23124 | sym_netd_device_get_name ();
0x00028db4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028db8 move a0, v0 | a0 = v0;
0x00028dbc move a2, s5 | a2 = s5;
0x00028dc0 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x00028dc4 addiu a1, zero, 0x418 | a1 = 0x418;
0x00028dc8 jalr t9 | t9 ();
0x00028dcc lw gp, 0x18(sp) | gp = *(var_18h);
0x00028dd0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00028dd4 move a0, s5 | a0 = s5;
0x00028dd8 jalr t9 | t9 ();
0x00028ddc lw gp, 0x18(sp) | gp = *(var_18h);
0x00028de0 move a0, s2 | a0 = s2;
0x00028de4 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00028de8 addiu a1, zero, 0x418 | a1 = 0x418;
0x00028dec jalr t9 | t9 ();
0x00028df0 move s2, v0 | s2 = v0;
0x00028df4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028df8 lw v1, (s0) | v1 = *(s0);
0x00028dfc b 0x28878 | goto label_2;
| label_42:
0x00028e00 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00028e04 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00028e08 lw a1, 0x34(s0) | a1 = *((s0 + 13));
| /* esilref: '&d' */
0x00028e0c addiu a0, a0, 0x409c | a0 += 0x409c;
0x00028e10 jalr t9 | t9 ();
0x00028e14 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028e18 move a0, s1 | a0 = s1;
0x00028e1c lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00028e20 move s5, v0 | s5 = v0;
0x00028e24 bal 0x23124 | sym_netd_device_get_name ();
0x00028e28 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028e2c move a0, v0 | a0 = v0;
0x00028e30 move a2, s5 | a2 = s5;
0x00028e34 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x00028e38 addiu a1, zero, 0x41a | a1 = 0x41a;
0x00028e3c jalr t9 | t9 ();
0x00028e40 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028e44 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00028e48 move a0, s5 | a0 = s5;
0x00028e4c jalr t9 | t9 ();
0x00028e50 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028e54 move a0, s2 | a0 = s2;
0x00028e58 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00028e5c addiu a1, zero, 0x41a | a1 = 0x41a;
0x00028e60 jalr t9 | t9 ();
0x00028e64 move s2, v0 | s2 = v0;
0x00028e68 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028e6c lw v1, (s0) | v1 = *(s0);
0x00028e70 b 0x28858 | goto label_3;
| }
0x00028e74 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00028e78 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00028e7c lw a1, 0x20(s0) | a1 = *((s0 + 8));
| /* esilref: '&d' */
0x00028e80 addiu a0, a0, 0x409c | a0 += 0x409c;
0x00028e84 jalr t9 | t9 ();
0x00028e88 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028e8c move a0, s1 | a0 = s1;
0x00028e90 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00028e94 move s5, v0 | s5 = v0;
0x00028e98 bal 0x23124 | sym_netd_device_get_name ();
0x00028e9c lw gp, 0x18(sp) | gp = *(var_18h);
0x00028ea0 move a0, v0 | a0 = v0;
0x00028ea4 move a2, s5 | a2 = s5;
0x00028ea8 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x00028eac addiu a1, zero, 0x414 | a1 = 0x414;
0x00028eb0 jalr t9 | t9 ();
0x00028eb4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028eb8 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00028ebc move a0, s5 | a0 = s5;
0x00028ec0 jalr t9 | t9 ();
0x00028ec4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028ec8 move a0, s2 | a0 = s2;
0x00028ecc lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00028ed0 addiu a1, zero, 0x414 | a1 = 0x414;
0x00028ed4 jalr t9 | t9 ();
0x00028ed8 move s2, v0 | s2 = v0;
0x00028edc lw gp, 0x18(sp) | gp = *(var_18h);
0x00028ee0 lw v1, (s0) | v1 = *(s0);
0x00028ee4 b 0x28828 | goto label_9;
| label_48:
0x00028ee8 lw v0, 0x18(s0) | v0 = *((s0 + 6));
0x00028eec beql v0, s6, 0x28ba4 |
| } while (v0 == s6);
0x00028ef0 lw v1, (s0) | v1 = *(s0);
0x00028ef4 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
| label_23:
0x00028ef8 move a0, s1 | a0 = s1;
0x00028efc bal 0x23124 | sym_netd_device_get_name ();
0x00028f00 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028f04 move a2, v0 | a2 = v0;
0x00028f08 addiu a0, zero, 2 | a0 = 2;
0x00028f0c lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00028f10 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Tried_to_set_unsupported_WPA_Enterprise_method_on_wired_device_ */
0x00028f14 addiu a1, a1, 0x4018 | a1 += 0x4018;
0x00028f18 bal 0x434d0 | sym_netd_log_esc ();
0x00028f1c lw gp, 0x18(sp) | gp = *(var_18h);
0x00028f20 move s3, zero | s3 = 0;
| label_45:
0x00028f24 lw v1, (s0) | v1 = *(s0);
0x00028f28 b 0x28804 | goto label_6;
| label_49:
0x00028f2c lw v1, (s0) | v1 = *(s0);
0x00028f30 move s2, zero | s2 = 0;
0x00028f34 addiu s3, zero, 1 | s3 = 1;
0x00028f38 b 0x287f8 | goto label_7;
| label_52:
0x00028f3c lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00028f40 move a0, s1 | a0 = s1;
0x00028f44 bal 0x23124 | sym_netd_device_get_name ();
0x00028f48 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028f4c lw a2, 0x1c(s0) | a2 = *((s0 + 7));
0x00028f50 move a0, v0 | a0 = v0;
0x00028f54 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x00028f58 addiu a1, zero, 0x415 | a1 = 0x415;
0x00028f5c jalr t9 | t9 ();
0x00028f60 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028f64 move a0, s2 | a0 = s2;
0x00028f68 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00028f6c addiu a1, zero, 0x415 | a1 = 0x415;
0x00028f70 jalr t9 | t9 ();
0x00028f74 move s2, v0 | s2 = v0;
0x00028f78 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028f7c b 0x28c40 | goto label_13;
| label_44:
0x00028f80 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00028f84 move a0, s1 | a0 = s1;
0x00028f88 bal 0x23124 | sym_netd_device_get_name ();
0x00028f8c lw gp, 0x18(sp) | gp = *(var_18h);
0x00028f90 lw a2, 0xc(s0) | a2 = *((s0 + 3));
0x00028f94 move a0, v0 | a0 = v0;
0x00028f98 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x00028f9c addiu a1, zero, 0x41d | a1 = 0x41d;
0x00028fa0 jalr t9 | t9 ();
0x00028fa4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028fa8 move a0, s2 | a0 = s2;
0x00028fac lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00028fb0 addiu a1, zero, 0x41d | a1 = 0x41d;
0x00028fb4 jalr t9 | t9 ();
0x00028fb8 move s2, v0 | s2 = v0;
0x00028fbc lw gp, 0x18(sp) | gp = *(var_18h);
0x00028fc0 b 0x28b08 | goto label_14;
| label_43:
0x00028fc4 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00028fc8 move a0, s1 | a0 = s1;
0x00028fcc bal 0x23124 | sym_netd_device_get_name ();
0x00028fd0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028fd4 lw a2, 0x10(s0) | a2 = *((s0 + 4));
0x00028fd8 move a0, v0 | a0 = v0;
0x00028fdc lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x00028fe0 addiu a1, zero, 0x41e | a1 = 0x41e;
0x00028fe4 jalr t9 | t9 ();
0x00028fe8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028fec move a0, s2 | a0 = s2;
0x00028ff0 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00028ff4 addiu a1, zero, 0x41e | a1 = 0x41e;
0x00028ff8 jalr t9 | t9 ();
0x00028ffc move s2, v0 | s2 = v0;
0x00029000 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029004 b 0x28ab8 | goto label_15;
| label_40:
0x00029008 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0002900c move a0, s1 | a0 = s1;
0x00029010 bal 0x23124 | sym_netd_device_get_name ();
0x00029014 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029018 lw a2, 0x30(s0) | a2 = *((s0 + 12));
0x0002901c move a0, v0 | a0 = v0;
0x00029020 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x00029024 addiu a1, zero, 0x417 | a1 = 0x417;
0x00029028 jalr t9 | t9 ();
0x0002902c lw gp, 0x18(sp) | gp = *(var_18h);
0x00029030 move a0, s2 | a0 = s2;
0x00029034 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00029038 addiu a1, zero, 0x417 | a1 = 0x417;
0x0002903c jalr t9 | t9 ();
0x00029040 move s2, v0 | s2 = v0;
0x00029044 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029048 b 0x28a28 | goto label_16;
| label_39:
0x0002904c lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00029050 move a0, s1 | a0 = s1;
0x00029054 bal 0x23124 | sym_netd_device_get_name ();
0x00029058 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002905c lw a2, 0x2c(s0) | a2 = *((s0 + 11));
0x00029060 move a0, v0 | a0 = v0;
0x00029064 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x00029068 addiu a1, zero, 0x416 | a1 = 0x416;
0x0002906c jalr t9 | t9 ();
0x00029070 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029074 move a0, s2 | a0 = s2;
0x00029078 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0002907c addiu a1, zero, 0x416 | a1 = 0x416;
0x00029080 jalr t9 | t9 ();
0x00029084 move s2, v0 | s2 = v0;
0x00029088 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002908c b 0x289e0 | goto label_17;
| /* esilref: 'psk-hex' */
| label_51:
0x00029090 addiu s2, s2, 0x3f00 | s2 += 0x3f00;
| label_20:
0x00029094 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00029098 move a0, s1 | a0 = s1;
0x0002909c bal 0x23124 | sym_netd_device_get_name ();
0x000290a0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000290a4 move a0, v0 | a0 = v0;
0x000290a8 move a2, s2 | a2 = s2;
0x000290ac lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x000290b0 addiu a1, zero, 0x41c | a1 = 0x41c;
0x000290b4 jalr t9 | t9 ();
0x000290b8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000290bc addiu a1, zero, 0x41c | a1 = 0x41c;
0x000290c0 move a0, zero | a0 = 0;
0x000290c4 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x000290c8 addiu s3, zero, 1 | s3 = 1;
0x000290cc jalr t9 | t9 ();
0x000290d0 move s2, v0 | s2 = v0;
0x000290d4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000290d8 lw v1, (s0) | v1 = *(s0);
0x000290dc b 0x287f8 | goto label_7;
| /* esilref: 'EAPPEAP_MSCHAPv2' */
| label_47:
0x000290e0 addiu s5, a2, 0x3f4c | s5 = a2 + 0x3f4c;
| label_19:
0x000290e4 lw t9, -0x7f1c(gp) | t9 = sym.netd_device_get_type;
0x000290e8 move a0, s1 | a0 = s1;
0x000290ec bal 0x231a4 | sym_netd_device_get_type ();
0x000290f0 addiu v1, zero, 2 | v1 = 2;
0x000290f4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == v1) {
0x000290f8 beq v0, v1, 0x291a8 | goto label_56;
| }
| if (s3 == 0) {
| label_22:
0x000290fc beql s3, zero, 0x28804 | goto label_6;
| }
0x00029100 lw v1, (s0) | v1 = *(s0);
0x00029104 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00029108 move a0, s1 | a0 = s1;
0x0002910c bal 0x23124 | sym_netd_device_get_name ();
0x00029110 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029114 move a0, v0 | a0 = v0;
0x00029118 move a2, s5 | a2 = s5;
0x0002911c lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x00029120 addiu a1, zero, 0x420 | a1 = 0x420;
0x00029124 jalr t9 | t9 ();
0x00029128 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002912c move a0, s2 | a0 = s2;
0x00029130 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00029134 addiu a1, zero, 0x420 | a1 = 0x420;
0x00029138 jalr t9 | t9 ();
0x0002913c move s2, v0 | s2 = v0;
0x00029140 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029144 lw v1, (s0) | v1 = *(s0);
0x00029148 b 0x28804 | goto label_6;
| label_53:
0x0002914c lw a2, -0x7cfc(gp) | a2 = *(gp);
| /* esilref: 'yes' */
0x00029150 addiu a2, a2, 0x3d34 | a2 += 0x3d34;
0x00029154 b 0x28ce0 | goto label_18;
| /* esilref: 'EAPTLS' */
| label_46:
0x00029158 addiu s5, a2, 0x3f44 | s5 = a2 + 0x3f44;
0x0002915c b 0x290e4 | goto label_19;
| label_50:
0x00029160 lw s2, -0x7cfc(gp) | s2 = *(gp);
| /* esilref: 'psk-phrase' */
0x00029164 addiu s2, s2, 0x3ef4 | s2 += 0x3ef4;
0x00029168 b 0x29094 | goto label_20;
| label_55:
0x0002916c lw a2, -0x7cfc(gp) | a2 = *(gp);
| /* esilref: 'yes' */
0x00029170 addiu a2, a2, 0x3d34 | a2 += 0x3d34;
0x00029174 b 0x28d5c | goto label_21;
| label_54:
0x00029178 move s3, zero | s3 = 0;
0x0002917c bal 0x23124 | sym_netd_device_get_name ();
0x00029180 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029184 move a2, v0 | a2 = v0;
0x00029188 addiu a0, zero, 2 | a0 = 2;
0x0002918c lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00029190 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Tried_to_set_disable_WPA_Enterprise_on_wired_device_ */
0x00029194 addiu a1, a1, 0x4060 | a1 += 0x4060;
0x00029198 bal 0x434d0 | sym_netd_log_esc ();
0x0002919c lw gp, 0x18(sp) | gp = *(var_18h);
0x000291a0 lw v1, (s0) | v1 = *(s0);
0x000291a4 b 0x2881c | goto label_10;
| label_56:
0x000291a8 lw v1, 0x18(s0) | v1 = *((s0 + 6));
0x000291ac addiu v0, zero, 1 | v0 = 1;
0x000291b0 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
| if (v1 == v0) {
0x000291b4 beq v1, v0, 0x290fc | goto label_22;
| }
0x000291b8 b 0x28ef8 | goto label_23;
0x000291bc nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x2932c */
| #include <stdint.h>
|
; (fcn) sym.netd_device_dot1x_client_read_from_config_file () | void netd_device_dot1x_client_read_from_config_file () {
0x0002932c lui gp, 7 |
0x00029330 addiu gp, gp, -0x16ec |
0x00029334 addu gp, gp, t9 | gp += t9;
0x00029338 addiu sp, sp, -0x70 |
0x0002933c sw s5, 0x5c(sp) | *(var_5ch) = s5;
0x00029340 lw s5, -0x773c(gp) | s5 = *((gp - 7631));
0x00029344 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00029348 sw ra, 0x6c(sp) | *(var_6ch) = ra;
0x0002934c lw v0, (s5) | v0 = *(s5);
0x00029350 sw fp, 0x68(sp) | *(var_68h) = fp;
0x00029354 sw s7, 0x64(sp) | *(var_64h) = s7;
0x00029358 sw s6, 0x60(sp) | *(var_60h) = s6;
0x0002935c sw s4, 0x58(sp) | *(var_58h) = s4;
0x00029360 sw s3, 0x54(sp) | *(var_54h) = s3;
0x00029364 sw s2, 0x50(sp) | *(var_50h) = s2;
0x00029368 sw s1, 0x4c(sp) | *(var_4ch) = s1;
0x0002936c sw s0, 0x48(sp) | *(var_48h) = s0;
0x00029370 sw a1, 0x24(sp) | *(var_24h) = a1;
0x00029374 sw a2, 0x28(sp) | *(var_28h) = a2;
0x00029378 sw v0, 0x44(sp) | *(var_44h) = v0;
0x0002937c sw zero, 0x38(sp) | *(var_38h) = 0;
0x00029380 sw zero, 0x3c(sp) | *(var_3ch) = 0;
0x00029384 sw zero, 0x40(sp) | *(var_40h) = 0;
| if (a0 == 0) {
0x00029388 beqz a0, 0x29738 | goto label_8;
| }
0x0002938c lw v0, 0x34(a0) | v0 = *((a0 + 13));
0x00029390 move s3, a0 | s3 = a0;
| if (v0 == 0) {
0x00029394 beqz v0, 0x29760 | goto label_9;
| }
0x00029398 lw v0, 4(v0) | v0 = *((v0 + 1));
0x0002939c lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
| if (v0 == 0) {
0x000293a0 beqz v0, 0x2978c | goto label_10;
| }
0x000293a4 bal 0x23124 | sym_netd_device_get_name ();
0x000293a8 nop |
0x000293ac lw gp, 0x18(sp) | gp = *(var_18h);
0x000293b0 move a2, v0 | a2 = v0;
0x000293b4 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x000293b8 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000293bc lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._run_wpa_supplicant */
0x000293c0 addiu a1, a1, 0x3888 | a1 += 0x3888;
| /* esilref: '&s/&s.conf' */
0x000293c4 addiu a0, a0, 0x3bb0 | a0 += 0x3bb0;
0x000293c8 jalr t9 | t9 ();
0x000293cc lw gp, 0x18(sp) | gp = *(var_18h);
0x000293d0 move s4, v0 | s4 = v0;
0x000293d4 move v1, zero | v1 = 0;
0x000293d8 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x000293dc lw t9, -0x7ac4(gp) | t9 = sym.netd_util_verify_file;
0x000293e0 addiu v0, zero, 0x400 | v0 = aav.0x00000400;
0x000293e4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000293e8 sw v1, 0x14(sp) | *(var_14h) = v1;
0x000293ec move a2, zero | a2 = 0;
| /* esilref: 'root' */
0x000293f0 addiu a1, a1, 0x4134 | a1 += 0x4134;
0x000293f4 move a0, s4 | a0 = s4;
0x000293f8 jalr t9 | t9 ();
0x000293fc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00029400 beqz v0, 0x29654 | goto label_11;
| }
0x00029404 lw t9, -0x785c(gp) | t9 = sym.imp.g_file_get_contents;
0x00029408 addiu a3, sp, 0x3c | a3 = sp + 0x3c;
0x0002940c addiu a2, sp, 0x40 | a2 = sp + 0x40;
0x00029410 addiu a1, sp, 0x38 | a1 = sp + 0x38;
0x00029414 move a0, s4 | a0 = s4;
0x00029418 jalr t9 | t9 ();
0x0002941c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00029420 beqz v0, 0x29954 | goto label_12;
| }
0x00029424 lw v0, 0x40(sp) | v0 = *(var_40h);
0x00029428 sltiu v0, v0, 0x401 | v0 = (v0 < 0x401) ? 1 : 0;
0x0002942c lw a1, -0x7cfc(gp) | a1 = *(gp);
| if (v0 == 0) {
0x00029430 beqz v0, 0x298d8 | goto label_13;
| }
0x00029434 lw t9, -0x7818(gp) | t9 = sym.imp.g_strsplit;
0x00029438 lw a0, 0x38(sp) | a0 = *(var_38h);
0x0002943c move a2, zero | a2 = 0;
0x00029440 addiu a1, a1, 0x3bac | a1 += 0x3bac;
0x00029444 jalr t9 | t9 ();
0x00029448 lw a0, (v0) | a0 = *(v0);
0x0002944c lw gp, 0x18(sp) | gp = *(var_18h);
0x00029450 move s6, v0 | s6 = v0;
| if (a0 == 0) {
0x00029454 beqz a0, 0x299ec | goto label_14;
| }
0x00029458 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x0002945c lw s2, -0x7cfc(gp) | s2 = *(gp);
0x00029460 sw v0, 0x34(sp) | *(var_34h) = v0;
0x00029464 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x00029468 move s0, s6 | s0 = s6;
| /* str.key_mgmt */
0x0002946c addiu fp, v0, 0x41b8 | fp = v0 + 0x41b8;
0x00029470 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x00029474 sw zero, 0x2c(sp) | *(var_2ch) = 0;
| /* str.psk */
0x00029478 addiu v0, v0, 0x41c4 | v0 += 0x41c4;
0x0002947c sw zero, 0x20(sp) | *(var_20h) = 0;
0x00029480 move s1, zero | s1 = 0;
0x00029484 sw v0, 0x30(sp) | *(var_30h) = v0;
0x00029488 b 0x294d4 |
| while (v0 != 0) {
0x0002948c lw t9, -0x758c(gp) | t9 = sym.imp.strchr;
0x00029490 lw a0, (s0) | a0 = *(s0);
0x00029494 addiu a1, zero, 0x22 | a1 = 0x22;
0x00029498 jalr t9 | t9 ();
0x0002949c lw gp, 0x18(sp) | gp = *(var_18h);
0x000294a0 addiu s1, v0, 1 | s1 = v0 + 1;
0x000294a4 move a0, s1 | a0 = s1;
0x000294a8 lw t9, -0x76f8(gp) | t9 = sym.imp.strlen;
0x000294ac move s7, v0 | s7 = v0;
0x000294b0 jalr t9 | t9 ();
0x000294b4 addu v1, s7, v0 | v1 = s7 + v0;
0x000294b8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000294bc sw v0, 0x40(sp) | *(var_40h) = v0;
0x000294c0 sb zero, (v1) | *(v1) = 0;
| label_1:
0x000294c4 addiu s0, s0, 4 | s0 += 4;
0x000294c8 lw a0, (s0) | a0 = *(s0);
0x000294cc lw a1, -0x7cfc(gp) | a1 = *(gp);
| if (a0 == 0) {
0x000294d0 beqz a0, 0x29544 | goto label_15;
| }
| label_0:
0x000294d4 lw t9, -0x77a4(gp) | t9 = sym.imp.g_strchug;
0x000294d8 jalr t9 | t9 ();
0x000294dc nop |
0x000294e0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000294e4 sw v0, (s0) | *(s0) = v0;
| /* str.ssid_ */
0x000294e8 addiu a1, s2, 0x41b0 | a1 = s2 + 0x41b0;
0x000294ec lw t9, -0x7794(gp) | t9 = sym.imp.g_str_has_prefix;
0x000294f0 move a0, v0 | a0 = v0;
0x000294f4 jalr t9 | t9 ();
0x000294f8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000294fc bnez v0, 0x2948c |
| }
0x00029500 lw t9, -0x7794(gp) | t9 = sym.imp.g_str_has_prefix;
0x00029504 lw a0, (s0) | a0 = *(s0);
0x00029508 move a1, fp | a1 = fp;
0x0002950c jalr t9 | t9 ();
0x00029510 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00029514 beqz v0, 0x29700 | goto label_16;
| }
0x00029518 lw t9, -0x758c(gp) | t9 = sym.imp.strchr;
0x0002951c lw a0, (s0) | a0 = *(s0);
0x00029520 addiu s0, s0, 4 | s0 += 4;
0x00029524 addiu a1, zero, 0x3d | a1 = 0x3d;
0x00029528 jalr t9 | t9 ();
0x0002952c lw a0, (s0) | a0 = *(s0);
0x00029530 addiu v0, v0, 1 | v0++;
0x00029534 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029538 sw v0, 0x20(sp) | *(var_20h) = v0;
| if (a0 != 0) {
0x0002953c bnez a0, 0x294d4 | goto label_0;
| }
0x00029540 lw a1, -0x7cfc(gp) | a1 = *(gp);
| label_15:
0x00029544 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00029548 lw a0, 0x20(sp) | a0 = *(var_20h);
| /* str.WPA_PSK */
0x0002954c addiu a1, a1, 0x4208 | a1 += 0x4208;
0x00029550 jalr t9 | t9 ();
0x00029554 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00029558 bnez v0, 0x297b8 | goto label_17;
| }
0x0002955c lw v0, 0x2c(sp) | v0 = *(var_2ch);
| if (s1 == 0) {
0x00029560 beqz s1, 0x297e0 | goto label_4;
| }
0x00029564 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
| if (v0 == 0) {
0x00029568 beqz v0, 0x297e4 | goto label_18;
| }
0x0002956c addiu s0, zero, 1 | s0 = 1;
0x00029570 lw t9, -0x76f8(gp) | t9 = sym.imp.strlen;
| do {
0x00029574 move a0, s1 | a0 = s1;
0x00029578 jalr t9 | t9 ();
0x0002957c sltiu v0, v0, 0x21 | v0 = (v0 < 0x21) ? 1 : 0;
0x00029580 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00029584 beqz v0, 0x29918 | goto label_19;
| }
0x00029588 lw t9, -0x7ac0(gp) | t9 = sym.netd_util_string_contains_control_chars;
0x0002958c move a0, s1 | a0 = s1;
0x00029590 jalr t9 | t9 ();
0x00029594 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00029598 bnez v0, 0x29918 | goto label_19;
| }
0x0002959c lw t9, -0x7d78(gp) | t9 = sym.netd_device_dot1x_config_alloc;
0x000295a0 bal 0x2a5f0 | sym_netd_device_dot1x_config_alloc ();
0x000295a4 nop |
0x000295a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000295ac move a1, s0 | a1 = s0;
0x000295b0 move a0, v0 | a0 = v0;
0x000295b4 lw t9, -0x7d24(gp) | t9 = sym.netd_device_dot1x_config_set_wpa_personal_enabled;
0x000295b8 move s2, v0 | s2 = v0;
0x000295bc bal 0x2ad94 | sym_netd_device_dot1x_config_set_wpa_personal_enabled ();
0x000295c0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s0 == 0) {
0x000295c4 beqz s0, 0x29818 | goto label_20;
| }
0x000295c8 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x000295cc lb v1, (v0) | v1 = *(v0);
0x000295d0 addiu v0, zero, 0x22 | v0 = 0x22;
0x000295d4 lw t9, -0x7ce4(gp) | t9 = sym.netd_device_dot1x_config_set_wpa_personal_key;
| if (v1 == v0) {
0x000295d8 beq v1, v0, 0x29a44 | goto label_21;
| }
0x000295dc lw a1, 0x2c(sp) | a1 = *(var_2ch);
0x000295e0 move a0, s2 | a0 = s2;
0x000295e4 bal 0x2b008 | sym_netd_device_dot1x_config_set_wpa_personal_key ();
0x000295e8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000295ec beqz v0, 0x29a84 | goto label_22;
| }
0x000295f0 addiu a1, zero, 2 | a1 = 2;
| label_6:
0x000295f4 lw t9, -0x7ce8(gp) | t9 = sym.netd_device_dot1x_config_set_wpa_personal_method;
0x000295f8 move a0, s2 | a0 = s2;
0x000295fc bal 0x2ae44 | sym_netd_device_dot1x_config_set_wpa_personal_method ();
0x00029600 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00029604 bnez v0, 0x29818 | goto label_20;
| }
0x00029608 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0002960c move a0, s3 | a0 = s3;
0x00029610 bal 0x23124 | sym_netd_device_get_name ();
0x00029614 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029618 move a3, s4 | a3 = s4;
0x0002961c move a2, v0 | a2 = v0;
0x00029620 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00029624 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Invalid_WPA_method_in_file__s */
0x00029628 addiu a1, a1, 0x42e0 | a1 += 0x42e0;
0x0002962c addiu a0, zero, 2 | a0 = 2;
0x00029630 bal 0x434d0 | sym_netd_log_esc ();
0x00029634 lw gp, 0x18(sp) | gp = *(var_18h);
| label_7:
0x00029638 lw t9, -0x7d60(gp) | t9 = sym.netd_device_dot1x_config_free;
| if (s2 == 0) {
0x0002963c beqz s2, 0x29b08 | goto label_23;
| }
0x00029640 move a0, s2 | a0 = s2;
0x00029644 bal 0x2a608 | sym_netd_device_dot1x_config_free ();
0x00029648 move s1, zero | s1 = 0;
0x0002964c lw gp, 0x18(sp) | gp = *(var_18h);
0x00029650 b 0x2983c | goto label_3;
| label_11:
0x00029654 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00029658 move a0, s3 | a0 = s3;
0x0002965c bal 0x23124 | sym_netd_device_get_name ();
0x00029660 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029664 move a3, s4 | a3 = s4;
0x00029668 move a2, v0 | a2 = v0;
0x0002966c lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00029670 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Failed_to_verify_file__s */
0x00029674 addiu a1, a1, 0x413c | a1 += 0x413c;
0x00029678 addiu a0, zero, 2 | a0 = 2;
0x0002967c bal 0x434d0 | sym_netd_log_esc ();
0x00029680 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029684 move s1, zero | s1 = 0;
| label_2:
0x00029688 lw a0, 0x38(sp) | a0 = *(var_38h);
0x0002968c lw t9, -0x7dc8(gp) | t9 = sym.netd_util_clear_string;
| if (a0 != 0) {
0x00029690 beqz a0, 0x296b0 |
0x00029694 jalr t9 | t9 ();
0x00029698 nop |
0x0002969c lw gp, 0x18(sp) | gp = *(var_18h);
0x000296a0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000296a4 lw a0, 0x38(sp) | a0 = *(var_38h);
0x000296a8 jalr t9 | t9 ();
0x000296ac lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x000296b0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000296b4 move a0, s4 | a0 = s4;
0x000296b8 jalr t9 | t9 ();
0x000296bc lw a0, 0x44(sp) | a0 = *(var_44h);
0x000296c0 lw v1, (s5) | v1 = *(s5);
0x000296c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000296c8 move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x000296cc bne a0, v1, 0x29afc | goto label_24;
| }
0x000296d0 lw ra, 0x6c(sp) | ra = *(var_6ch);
0x000296d4 lw fp, 0x68(sp) | fp = *(var_68h);
0x000296d8 lw s7, 0x64(sp) | s7 = *(var_64h);
0x000296dc lw s6, 0x60(sp) | s6 = *(var_60h);
0x000296e0 lw s5, 0x5c(sp) | s5 = *(var_5ch);
0x000296e4 lw s4, 0x58(sp) | s4 = *(var_58h);
0x000296e8 lw s3, 0x54(sp) | s3 = *(var_54h);
0x000296ec lw s2, 0x50(sp) | s2 = *(var_50h);
0x000296f0 lw s1, 0x4c(sp) | s1 = *(var_4ch);
0x000296f4 lw s0, 0x48(sp) | s0 = *(var_48h);
0x000296f8 addiu sp, sp, 0x70 |
0x000296fc jr ra | return v1;
| label_16:
0x00029700 lw t9, -0x7794(gp) | t9 = sym.imp.g_str_has_prefix;
0x00029704 lw a0, (s0) | a0 = *(s0);
0x00029708 lw a1, 0x30(sp) | a1 = *(var_30h);
0x0002970c jalr t9 | t9 ();
0x00029710 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00029714 beqz v0, 0x29888 | goto label_25;
| }
0x00029718 lw t9, -0x758c(gp) | t9 = sym.imp.strchr;
0x0002971c lw a0, (s0) | a0 = *(s0);
0x00029720 addiu a1, zero, 0x3d | a1 = 0x3d;
0x00029724 jalr t9 | t9 ();
0x00029728 addiu v0, v0, 1 | v0++;
0x0002972c lw gp, 0x18(sp) | gp = *(var_18h);
0x00029730 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00029734 b 0x294c4 | goto label_1;
| label_8:
0x00029738 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x0002973c lw a3, -0x7cfc(gp) | a3 = *(gp);
0x00029740 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev' */
0x00029744 addiu v0, v0, 0x38c8 | v0 += 0x38c8;
0x00029748 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0002974c sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.netd_device_dot1x_client_read_from_config_file */
0x00029750 addiu a3, a3, 0x48d0 | a3 += 0x48d0;
0x00029754 addiu a2, zero, 0x5a3 | a2 = 0x5a3;
| /* str.src_netd_device_dot1x_client.c */
0x00029758 addiu a1, a1, 0x3580 | a1 += 0x3580;
0x0002975c jalr t9 | t9 ();
| label_9:
0x00029760 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x00029764 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x00029768 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev->wlan != NULL' */
0x0002976c addiu v0, v0, 0x4104 | v0 += 0x4104;
0x00029770 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00029774 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.netd_device_dot1x_client_read_from_config_file */
0x00029778 addiu a3, a3, 0x48d0 | a3 += 0x48d0;
0x0002977c addiu a2, zero, 0x5a5 | a2 = 0x5a5;
| /* str.src_netd_device_dot1x_client.c */
0x00029780 addiu a1, a1, 0x3580 | a1 += 0x3580;
0x00029784 move a0, zero | a0 = 0;
0x00029788 jalr t9 | t9 ();
| label_10:
0x0002978c lw v0, -0x7cfc(gp) | v0 = *(gp);
0x00029790 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x00029794 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev->wlan->station != NULL' */
0x00029798 addiu v0, v0, 0x4118 | v0 += 0x4118;
0x0002979c lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x000297a0 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.netd_device_dot1x_client_read_from_config_file */
0x000297a4 addiu a3, a3, 0x48d0 | a3 += 0x48d0;
0x000297a8 addiu a2, zero, 0x5a6 | a2 = 0x5a6;
| /* str.src_netd_device_dot1x_client.c */
0x000297ac addiu a1, a1, 0x3580 | a1 += 0x3580;
0x000297b0 move a0, zero | a0 = 0;
0x000297b4 jalr t9 | t9 ();
| label_17:
0x000297b8 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x000297bc lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x000297c0 lw a0, 0x20(sp) | a0 = *(var_20h);
| /* str.NONE */
0x000297c4 addiu a1, a1, 0x4210 | a1 += 0x4210;
0x000297c8 jalr t9 | t9 ();
0x000297cc move s0, v0 | s0 = v0;
0x000297d0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000297d4 bnez v0, 0x299a8 | goto label_26;
| }
0x000297d8 lw t9, -0x76f8(gp) | t9 = sym.imp.strlen;
0x000297dc bnez s1, 0x29574 |
| } while (s1 != 0);
| label_4:
0x000297e0 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
| label_18:
0x000297e4 move a0, s3 | a0 = s3;
0x000297e8 bal 0x23124 | sym_netd_device_get_name ();
0x000297ec lw gp, 0x18(sp) | gp = *(var_18h);
0x000297f0 move a3, s4 | a3 = s4;
0x000297f4 move a2, v0 | a2 = v0;
0x000297f8 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x000297fc lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Incomplete_WPS_PBC_config_in_file__s */
0x00029800 addiu a1, a1, 0x4248 | a1 += aav.0x00004248;
0x00029804 addiu a0, zero, 2 | a0 = 2;
0x00029808 bal 0x434d0 | sym_netd_log_esc ();
0x0002980c move s1, zero | s1 = 0;
0x00029810 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029814 b 0x2983c | goto label_3;
| label_20:
0x00029818 lw v0, 0x24(sp) | v0 = *(var_24h);
0x0002981c lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
0x00029820 move a0, s1 | a0 = s1;
0x00029824 sw s2, (v0) | *(v0) = s2;
0x00029828 jalr t9 | t9 ();
0x0002982c lw v1, 0x28(sp) | v1 = *(var_28h);
0x00029830 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029834 addiu s1, zero, 1 | s1 = 1;
0x00029838 sw v0, (v1) | *(v1) = v0;
| label_3:
0x0002983c lw a0, (s6) | a0 = *(s6);
0x00029840 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
| if (a0 == 0) {
0x00029844 beqz a0, 0x29878 | goto label_27;
| }
0x00029848 move s0, s6 | s0 = s6;
| do {
0x0002984c lw t9, -0x7dc8(gp) | t9 = sym.netd_util_clear_string;
0x00029850 addiu s0, s0, 4 | s0 += 4;
0x00029854 jalr t9 | t9 ();
0x00029858 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002985c lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00029860 lw a0, -4(s0) | a0 = *((s0 - 1));
0x00029864 jalr t9 | t9 ();
0x00029868 lw a0, (s0) | a0 = *(s0);
0x0002986c lw gp, 0x18(sp) | gp = *(var_18h);
0x00029870 bnez a0, 0x2984c |
| } while (a0 != 0);
0x00029874 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
| label_27:
0x00029878 move a0, s6 | a0 = s6;
0x0002987c jalr t9 | t9 ();
0x00029880 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029884 b 0x29688 | goto label_2;
| label_25:
0x00029888 lw v0, 0x34(sp) | v0 = *(var_34h);
0x0002988c lw t9, -0x7794(gp) | t9 = sym.imp.g_str_has_prefix;
0x00029890 lw a0, (s0) | a0 = *(s0);
0x00029894 addiu a1, v0, 0x41cc | a1 = v0 + 0x41cc;
0x00029898 jalr t9 | t9 ();
0x0002989c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000298a0 beqz v0, 0x294c4 | goto label_1;
| }
0x000298a4 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x000298a8 move a0, s3 | a0 = s3;
0x000298ac bal 0x23124 | sym_netd_device_get_name ();
0x000298b0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000298b4 move a2, v0 | a2 = v0;
0x000298b8 addiu a0, zero, 2 | a0 = 2;
0x000298bc lw a1, -0x7cfc(gp) | a1 = *(gp);
0x000298c0 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Found_unsupported_mode__WEP__in_WPS_PBC_config */
0x000298c4 addiu a1, a1, 0x41d4 | a1 += 0x41d4;
0x000298c8 bal 0x434d0 | sym_netd_log_esc ();
0x000298cc move s1, zero | s1 = 0;
0x000298d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000298d4 b 0x2983c | goto label_3;
| label_13:
0x000298d8 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x000298dc move a0, s3 | a0 = s3;
0x000298e0 bal 0x23124 | sym_netd_device_get_name ();
0x000298e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000298e8 lw v1, 0x40(sp) | v1 = *(var_40h);
0x000298ec move a3, s4 | a3 = s4;
0x000298f0 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x000298f4 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x000298f8 sw v1, 0x10(sp) | *(var_10h) = v1;
0x000298fc move a2, v0 | a2 = v0;
| /* str.__s__File__s_contents_unreasonably_long___u_ */
0x00029900 addiu a1, a1, 0x4180 | a1 += 0x4180;
0x00029904 addiu a0, zero, 2 | a0 = 2;
0x00029908 bal 0x434d0 | sym_netd_log_esc ();
0x0002990c move s1, zero | s1 = 0;
0x00029910 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029914 b 0x29688 | goto label_2;
| label_19:
0x00029918 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0002991c move a0, s3 | a0 = s3;
0x00029920 bal 0x23124 | sym_netd_device_get_name ();
0x00029924 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029928 move a3, s1 | a3 = s1;
0x0002992c sw s4, 0x10(sp) | *(var_10h) = s4;
0x00029930 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00029934 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00029938 move a2, v0 | a2 = v0;
| /* str.__s__Invalid_SSID__s_in_file__s */
0x0002993c addiu a1, a1, 0x4274 | a1 += 0x4274;
0x00029940 addiu a0, zero, 2 | a0 = 2;
0x00029944 bal 0x434d0 | sym_netd_log_esc ();
0x00029948 move s1, zero | s1 = 0;
0x0002994c lw gp, 0x18(sp) | gp = *(var_18h);
0x00029950 b 0x2983c | goto label_3;
| label_12:
0x00029954 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00029958 move a0, s3 | a0 = s3;
0x0002995c bal 0x23124 | sym_netd_device_get_name ();
0x00029960 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029964 lw v1, 0x3c(sp) | v1 = *(var_3ch);
0x00029968 move a3, s4 | a3 = s4;
0x0002996c lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00029970 lw v1, 8(v1) | v1 = *((v1 + 2));
0x00029974 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00029978 move a2, v0 | a2 = v0;
| /* str.__s__Could_not_read_file__s:__s */
0x0002997c addiu a1, a1, 0x415c | a1 += 0x415c;
0x00029980 addiu a0, zero, 2 | a0 = 2;
0x00029984 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00029988 bal 0x434d0 | sym_netd_log_esc ();
0x0002998c lw gp, 0x18(sp) | gp = *(var_18h);
0x00029990 lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x00029994 lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x00029998 move s1, zero | s1 = 0;
0x0002999c jalr t9 | t9 ();
0x000299a0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000299a4 b 0x29688 | goto label_2;
| label_26:
0x000299a8 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x000299ac move a0, s3 | a0 = s3;
0x000299b0 bal 0x23124 | sym_netd_device_get_name ();
0x000299b4 lw v1, 0x20(sp) | v1 = *(var_20h);
0x000299b8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v1 == 0) {
0x000299bc beqz v1, 0x29ab8 | goto label_28;
| }
| label_5:
0x000299c0 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x000299c4 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x000299c8 lw a3, 0x20(sp) | a3 = *(var_20h);
0x000299cc sw s4, 0x10(sp) | *(var_10h) = s4;
0x000299d0 move a2, v0 | a2 = v0;
| /* str.__s__Invalid_key_mgmt_value__s_in_file__s */
0x000299d4 addiu a1, a1, 0x4218 | a1 += 0x4218;
0x000299d8 addiu a0, zero, 2 | a0 = 2;
0x000299dc bal 0x434d0 | sym_netd_log_esc ();
0x000299e0 move s1, zero | s1 = 0;
0x000299e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000299e8 b 0x2983c | goto label_3;
| label_14:
0x000299ec lw a1, -0x7cfc(gp) | a1 = *(gp);
0x000299f0 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
| /* str.WPA_PSK */
0x000299f4 addiu a1, a1, 0x4208 | a1 += 0x4208;
0x000299f8 move a0, zero | a0 = 0;
0x000299fc jalr t9 | t9 ();
0x00029a00 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00029a04 beqz v0, 0x297e0 | goto label_4;
| }
0x00029a08 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00029a0c lw t9, -0x7558(gp) | t9 = *((gp - 7510));
| /* str.NONE */
0x00029a10 addiu a1, a1, 0x4210 | a1 += 0x4210;
0x00029a14 move a0, zero | a0 = 0;
0x00029a18 jalr t9 | t9 ();
0x00029a1c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00029a20 beqz v0, 0x297e0 | goto label_4;
| }
0x00029a24 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00029a28 move a0, s3 | a0 = s3;
0x00029a2c bal 0x23124 | sym_netd_device_get_name ();
0x00029a30 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029a34 lw v1, -0x7cfc(gp) | v1 = *(gp);
| /* str._null_ */
0x00029a38 addiu v1, v1, 0x40fc | v1 += 0x40fc;
0x00029a3c sw v1, 0x20(sp) | *(var_20h) = v1;
0x00029a40 b 0x299c0 | goto label_5;
| label_21:
0x00029a44 lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x00029a48 lw t9, -0x76f8(gp) | t9 = sym.imp.strlen;
0x00029a4c move a0, s0 | a0 = s0;
0x00029a50 jalr t9 | t9 ();
0x00029a54 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029a58 addu v1, s0, v0 | v1 = s0 + v0;
0x00029a5c sw v0, 0x40(sp) | *(var_40h) = v0;
0x00029a60 lw t9, -0x7d1c(gp) | t9 = sym.netd_device_dot1x_config_set_wpa_personal_passphrase;
0x00029a64 addiu a1, s0, 1 | a1 = s0 + 1;
0x00029a68 sb zero, -1(v1) | *((v1 - 1)) = 0;
0x00029a6c move a0, s2 | a0 = s2;
0x00029a70 bal 0x2aedc | sym_netd_device_dot1x_config_set_wpa_personal_passphrase ();
0x00029a74 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00029a78 beqz v0, 0x29ac8 |
0x00029a7c addiu a1, zero, 1 | a1 = 1;
0x00029a80 b 0x295f4 | goto label_6;
| label_22:
0x00029a84 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00029a88 move a0, s3 | a0 = s3;
0x00029a8c bal 0x23124 | sym_netd_device_get_name ();
0x00029a90 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029a94 move a3, s4 | a3 = s4;
0x00029a98 move a2, v0 | a2 = v0;
0x00029a9c lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00029aa0 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Invalid_key_in_file__s */
0x00029aa4 addiu a1, a1, 0x42c0 | a1 += aav.0x000042c0;
0x00029aa8 addiu a0, zero, 2 | a0 = 2;
0x00029aac bal 0x434d0 | sym_netd_log_esc ();
0x00029ab0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029ab4 b 0x29638 | goto label_7;
| label_28:
0x00029ab8 lw v1, -0x7cfc(gp) | v1 = *(gp);
| /* str._null_ */
0x00029abc addiu v1, v1, 0x40fc | v1 += 0x40fc;
0x00029ac0 sw v1, 0x20(sp) | *(var_20h) = v1;
0x00029ac4 b 0x299c0 | goto label_5;
| }
0x00029ac8 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00029acc move a0, s3 | a0 = s3;
0x00029ad0 bal 0x23124 | sym_netd_device_get_name ();
0x00029ad4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029ad8 move a3, s4 | a3 = s4;
0x00029adc move a2, v0 | a2 = v0;
0x00029ae0 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00029ae4 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Invalid_passphrase_in_file__s */
0x00029ae8 addiu a1, a1, 0x4298 | a1 += 0x4298;
0x00029aec addiu a0, zero, 2 | a0 = 2;
0x00029af0 bal 0x434d0 | sym_netd_log_esc ();
0x00029af4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00029af8 b 0x29638 | goto label_7;
| label_24:
0x00029afc lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x00029b00 jalr t9 | t9 ();
0x00029b04 nop |
| label_23:
0x00029b08 move s1, zero | s1 = 0;
0x00029b0c b 0x2983c | goto label_3;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x34a28 */
| #include <stdint.h>
|
; (fcn) sym.netd_device_ipv6_add_address_config () | void netd_device_ipv6_add_address_config () {
0x00034a28 lui gp, 6 |
0x00034a2c addiu gp, gp, 0x3218 |
0x00034a30 addu gp, gp, t9 | gp += t9;
0x00034a34 addiu sp, sp, -0x50 |
0x00034a38 sw s2, 0x40(sp) | *(var_40h_2) = s2;
0x00034a3c lw s2, -0x773c(gp) | s2 = *((gp - 7631));
0x00034a40 sw gp, 0x18(sp) | *(var_18h_4) = gp;
0x00034a44 sw ra, 0x4c(sp) | *(var_4ch_2) = ra;
0x00034a48 lw v0, (s2) | v0 = *(s2);
0x00034a4c sw s4, 0x48(sp) | *(var_48h_2) = s4;
0x00034a50 sw s3, 0x44(sp) | *(var_44h_2) = s3;
0x00034a54 sw s1, 0x3c(sp) | *(var_3ch_2) = s1;
0x00034a58 sw s0, 0x38(sp) | *(var_38h) = s0;
0x00034a5c sw v0, 0x34(sp) | *(var_34h_2) = v0;
0x00034a60 lw v0, -0x7cfc(gp) | v0 = *(gp);
| if (a0 == 0) {
0x00034a64 beqz a0, 0x34c08 | goto label_3;
| }
0x00034a68 move s0, a1 | s0 = a1;
| if (a1 == 0) {
0x00034a6c beqz a1, 0x34c2c | goto label_4;
| }
0x00034a70 lw v0, (a1) | v0 = *(a1);
0x00034a74 addiu v1, zero, 5 | v1 = 5;
0x00034a78 andi a1, v0, 5 | a1 = v0 & 5;
0x00034a7c lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
| if (a1 != v1) {
0x00034a80 bne a1, v1, 0x34e5c | goto label_5;
| }
0x00034a84 andi v0, v0, 2 | v0 &= 2;
0x00034a88 move s1, a0 | s1 = a0;
| if (v0 != 0) {
0x00034a8c bnez v0, 0x34c58 | goto label_6;
| }
| label_0:
0x00034a90 lw a1, 4(s0) | a1 = *((s0 + 1));
0x00034a94 lw t9, -0x7654(gp) | t9 = sym.imp.inet_pton;
| if (a1 != 0) {
0x00034a98 beqz a1, 0x34ab4 |
0x00034a9c addiu a2, sp, 0x24 | a2 = sp + 0x24;
0x00034aa0 addiu a0, zero, 0xa | a0 = 0xa;
0x00034aa4 jalr t9 | t9 ();
0x00034aa8 addiu v1, zero, 1 | v1 = 1;
0x00034aac lw gp, 0x18(sp) | gp = *(var_18h_4);
| if (v0 == v1) {
0x00034ab0 beq v0, v1, 0x34b44 | goto label_7;
| }
| }
0x00034ab4 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00034ab8 move a0, s1 | a0 = s1;
0x00034abc bal 0x23124 | sym_netd_device_get_name ();
0x00034ac0 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034ac4 lw a3, 4(s0) | a3 = *((s0 + 1));
0x00034ac8 move a2, v0 | a2 = v0;
0x00034acc lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00034ad0 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Received_invalid_IPv6_address:__s */
0x00034ad4 addiu a1, a1, 0x6820 | a1 += 0x6820;
0x00034ad8 move a0, zero | a0 = 0;
0x00034adc bal 0x434d0 | sym_netd_log_esc ();
0x00034ae0 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034ae4 move s4, zero | s4 = 0;
0x00034ae8 addiu s0, zero, -1 | s0 = -1;
0x00034aec move s3, zero | s3 = 0;
| do {
| label_1:
0x00034af0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00034af4 move a0, s4 | a0 = s4;
0x00034af8 jalr t9 | t9 ();
0x00034afc lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034b00 lw t9, -0x75c8(gp) | t9 = sym.imp.g_list_free_full;
0x00034b04 lw a1, -0x748c(gp) | a1 = *((gp - 7459));
0x00034b08 move a0, s3 | a0 = s3;
0x00034b0c jalr t9 | t9 ();
0x00034b10 lw gp, 0x18(sp) | gp = *(var_18h_4);
| label_2:
0x00034b14 lw a0, 0x34(sp) | a0 = *(var_34h_2);
0x00034b18 lw v1, (s2) | v1 = *(s2);
0x00034b1c move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00034b20 bne a0, v1, 0x34e88 | goto label_8;
| }
0x00034b24 lw ra, 0x4c(sp) | ra = *(var_4ch_2);
0x00034b28 lw s4, 0x48(sp) | s4 = *(var_48h_2);
0x00034b2c lw s3, 0x44(sp) | s3 = *(var_44h_2);
0x00034b30 lw s2, 0x40(sp) | s2 = *(var_40h_2);
0x00034b34 lw s1, 0x3c(sp) | s1 = *(var_3ch_2);
0x00034b38 lw s0, 0x38(sp) | s0 = *(var_38h);
0x00034b3c addiu sp, sp, 0x50 |
0x00034b40 jr ra | return v0;
| label_7:
0x00034b44 lw a2, 0xc(s0) | a2 = *((s0 + 3));
0x00034b48 sltiu v0, a2, 0x81 | v0 = (a2 < 0x81) ? 1 : 0;
0x00034b4c lw a0, -0x7cfc(gp) | a0 = *(gp);
| if (v0 == 0) {
0x00034b50 beqz v0, 0x34df0 | goto label_9;
| }
0x00034b54 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00034b58 lw a1, 4(s0) | a1 = *((s0 + 1));
| /* str._s__d */
0x00034b5c addiu a0, a0, 0x6870 | a0 += 0x6870;
0x00034b60 jalr t9 | t9 ();
0x00034b64 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034b68 move a0, s1 | a0 = s1;
0x00034b6c lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00034b70 move s4, v0 | s4 = v0;
0x00034b74 bal 0x23124 | sym_netd_device_get_name ();
0x00034b78 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034b7c addiu a1, zero, 0x40a | a1 = 0x40a;
0x00034b80 lw t9, -0x7c58(gp) | t9 = sym.netd_settings_get_device_value;
0x00034b84 move a0, v0 | a0 = v0;
0x00034b88 bal 0x4f3a8 | sym_netd_settings_get_device_value ();
0x00034b8c lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034b90 move a0, v0 | a0 = v0;
0x00034b94 lw t9, -0x7a70(gp) | t9 = sym.netd_util_string_to_list;
0x00034b98 move s3, v0 | s3 = v0;
0x00034b9c bal 0x52b84 | sym_netd_util_string_to_list ();
0x00034ba0 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034ba4 move a0, s3 | a0 = s3;
0x00034ba8 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00034bac move s3, v0 | s3 = v0;
0x00034bb0 jalr t9 | t9 ();
0x00034bb4 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034bb8 move a1, s4 | a1 = s4;
0x00034bbc lw t9, -0x77b8(gp) | t9 = sym.imp.g_list_find_custom;
0x00034bc0 lw a2, -0x7558(gp) | a2 = *((gp - 7510));
0x00034bc4 move a0, s3 | a0 = s3;
0x00034bc8 jalr t9 | t9 ();
0x00034bcc lw gp, 0x18(sp) | gp = *(var_18h_4);
| if (v0 == 0) {
0x00034bd0 beqz v0, 0x34c84 | goto label_10;
| }
0x00034bd4 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00034bd8 move a0, s1 | a0 = s1;
0x00034bdc bal 0x23124 | sym_netd_device_get_name ();
0x00034be0 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034be4 move a2, v0 | a2 = v0;
0x00034be8 addiu a0, zero, 2 | a0 = 2;
0x00034bec lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00034bf0 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Tried_to_add_IPv6_address_that_already_exists_ */
0x00034bf4 addiu a1, a1, 0x6878 | a1 += 0x6878;
0x00034bf8 bal 0x434d0 | sym_netd_log_esc ();
0x00034bfc move s0, zero | s0 = 0;
0x00034c00 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034c04 b 0x34af0 |
| } while (1);
| label_3:
0x00034c08 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x00034c0c lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev' */
0x00034c10 addiu v0, v0, 0x60f8 | v0 += 0x60f8;
0x00034c14 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00034c18 sw v0, 0x10(sp) | *(var_10h_4) = v0;
| /* str.netd_device_ipv6_add_address_config */
0x00034c1c addiu a3, a3, 0x6ebc | a3 += 0x6ebc;
0x00034c20 addiu a2, zero, 0x4bd | a2 = 0x4bd;
| /* str.src_netd_device_ipv6.c */
0x00034c24 addiu a1, a1, 0x60e0 | a1 += 0x60e0;
0x00034c28 jalr t9 | t9 ();
| label_4:
0x00034c2c lw v0, -0x7cfc(gp) | v0 = *(gp);
0x00034c30 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x00034c34 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'config' */
0x00034c38 addiu v0, v0, 0x6790 | v0 += 0x6790;
0x00034c3c lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00034c40 sw v0, 0x10(sp) | *(var_10h_4) = v0;
| /* str.netd_device_ipv6_add_address_config */
0x00034c44 addiu a3, a3, 0x6ebc | a3 += 0x6ebc;
0x00034c48 addiu a2, zero, 0x4be | a2 = 0x4be;
| /* str.src_netd_device_ipv6.c */
0x00034c4c addiu a1, a1, 0x60e0 | a1 += 0x60e0;
0x00034c50 move a0, zero | a0 = 0;
0x00034c54 jalr t9 | t9 ();
| label_6:
0x00034c58 bal 0x23124 | sym_netd_device_get_name ();
0x00034c5c nop |
0x00034c60 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034c64 move a2, v0 | a2 = v0;
0x00034c68 addiu a0, zero, 2 | a0 = 2;
0x00034c6c lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00034c70 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Setting_broadcast_in_IPv6_address_config_is_not_supported */
0x00034c74 addiu a1, a1, 0x67e0 | a1 += 0x67e0;
0x00034c78 bal 0x434d0 | sym_netd_log_esc ();
0x00034c7c lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034c80 b 0x34a90 | goto label_0;
| label_10:
0x00034c84 lw t9, -0x765c(gp) | t9 = sym.imp.g_list_length;
0x00034c88 move a0, s3 | a0 = s3;
0x00034c8c jalr t9 | t9 ();
0x00034c90 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034c94 sltiu v0, v0, 5 | v0 = (v0 < 5) ? 1 : 0;
0x00034c98 move a0, s1 | a0 = s1;
0x00034c9c lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
| if (v0 != 0) {
0x00034ca0 beqz v0, 0x34e30 |
0x00034ca4 bal 0x23124 | sym_netd_device_get_name ();
0x00034ca8 nop |
0x00034cac lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034cb0 move a3, s4 | a3 = s4;
0x00034cb4 move a2, v0 | a2 = v0;
0x00034cb8 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00034cbc lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Adding_static_IPv6_address:__s */
0x00034cc0 addiu a1, a1, 0x6900 | a1 += 0x6900;
0x00034cc4 move a0, zero | a0 = 0;
0x00034cc8 bal 0x434d0 | sym_netd_log_esc ();
0x00034ccc lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034cd0 lw t9, -0x7b7c(gp) | t9 = sym.netd_device_is_ready;
0x00034cd4 move a0, s1 | a0 = s1;
0x00034cd8 bal 0x23600 | sym_netd_device_is_ready ();
0x00034cdc lw gp, 0x18(sp) | gp = *(var_18h_4);
| if (v0 != 0) {
0x00034ce0 beqz v0, 0x34d5c |
0x00034ce4 lw t9, -0x7e30(gp) | t9 = sym.netd_device_ipv6_is_enabled;
0x00034ce8 move a0, s1 | a0 = s1;
0x00034cec bal 0x341f8 | sym_netd_device_ipv6_is_enabled ();
0x00034cf0 lw gp, 0x18(sp) | gp = *(var_18h_4);
| if (v0 == 0) {
0x00034cf4 beqz v0, 0x34d5c | goto label_11;
| }
0x00034cf8 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x00034cfc lw t9, -0x7aa8(gp) | t9 = sym.netd_device_common_add_address;
0x00034d00 lw a3, 4(s0) | a3 = *((s0 + 1));
0x00034d04 addiu a2, zero, 5 | a2 = 5;
0x00034d08 sw zero, 0x14(sp) | *(var_14h_2) = 0;
0x00034d0c sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00034d10 addiu a1, zero, 2 | a1 = 2;
0x00034d14 move a0, s1 | a0 = s1;
0x00034d18 bal 0x257ec | sym_netd_device_common_add_address ();
0x00034d1c lw gp, 0x18(sp) | gp = *(var_18h_4);
| if (v0 != 0) {
0x00034d20 bnez v0, 0x34d5c | goto label_11;
| }
0x00034d24 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00034d28 move a0, s1 | a0 = s1;
0x00034d2c bal 0x23124 | sym_netd_device_get_name ();
0x00034d30 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034d34 lw a3, 4(s0) | a3 = *((s0 + 1));
0x00034d38 move a2, v0 | a2 = v0;
0x00034d3c lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00034d40 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Failed_to_add_static_address:__s */
0x00034d44 addiu a1, a1, 0x6270 | a1 += 0x6270;
0x00034d48 addiu a0, zero, 3 | a0 = 3;
0x00034d4c bal 0x434d0 | sym_netd_log_esc ();
0x00034d50 addiu s0, zero, -1 | s0 = -1;
0x00034d54 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034d58 b 0x34af0 | goto label_1;
| }
| label_11:
0x00034d5c lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
0x00034d60 move a0, s4 | a0 = s4;
0x00034d64 jalr t9 | t9 ();
0x00034d68 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034d6c move a1, v0 | a1 = v0;
0x00034d70 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00034d74 move a0, s3 | a0 = s3;
0x00034d78 jalr t9 | t9 ();
0x00034d7c lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034d80 move a0, v0 | a0 = v0;
0x00034d84 lw t9, -0x7c60(gp) | t9 = sym.netd_util_list_to_string;
0x00034d88 move s3, v0 | s3 = v0;
0x00034d8c bal 0x52a64 | sym_netd_util_list_to_string ();
0x00034d90 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034d94 move a0, s1 | a0 = s1;
0x00034d98 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00034d9c move s0, v0 | s0 = v0;
0x00034da0 bal 0x23124 | sym_netd_device_get_name ();
0x00034da4 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034da8 move a0, v0 | a0 = v0;
0x00034dac move a2, s0 | a2 = s0;
0x00034db0 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x00034db4 addiu a1, zero, 0x40a | a1 = 0x40a;
0x00034db8 bal 0x4f38c | sym_netd_settings_store_device_value ();
0x00034dbc lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034dc0 move a0, s0 | a0 = s0;
0x00034dc4 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00034dc8 move s0, zero | s0 = 0;
0x00034dcc jalr t9 | t9 ();
0x00034dd0 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034dd4 addiu a1, zero, 0x40a | a1 = 0x40a;
0x00034dd8 lw t9, -0x7af8(gp) | t9 = *(gp);
| /* fcn.000319d8 */
0x00034ddc addiu t9, t9, 0x19d8 | t9 += aav.0x000019d8;
0x00034de0 move a0, s1 | a0 = s1;
0x00034de4 bal 0x319d8 | fcn_000319d8 ();
0x00034de8 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034dec b 0x34af0 | goto label_1;
| label_9:
0x00034df0 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00034df4 move a0, s1 | a0 = s1;
0x00034df8 bal 0x23124 | sym_netd_device_get_name ();
0x00034dfc lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034e00 lw a3, 0xc(s0) | a3 = *((s0 + 3));
0x00034e04 move a2, v0 | a2 = v0;
0x00034e08 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00034e0c lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Received_invalid_prefix_length:__u */
0x00034e10 addiu a1, a1, 0x6848 | a1 += 0x6848;
0x00034e14 move a0, zero | a0 = 0;
0x00034e18 bal 0x434d0 | sym_netd_log_esc ();
0x00034e1c move s4, zero | s4 = 0;
0x00034e20 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034e24 addiu s0, zero, -2 | s0 = -2;
0x00034e28 move s3, zero | s3 = 0;
0x00034e2c b 0x34af0 | goto label_1;
| }
0x00034e30 addiu s0, zero, -3 | s0 = -3;
0x00034e34 bal 0x23124 | sym_netd_device_get_name ();
0x00034e38 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034e3c move a2, v0 | a2 = v0;
0x00034e40 addiu a0, zero, 2 | a0 = 2;
0x00034e44 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00034e48 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Tried_to_add_a_new_static_IPv6_address_with_an_already_maximum_of_5specified */
0x00034e4c addiu a1, a1, 0x68ac | a1 += 0x68ac;
0x00034e50 bal 0x434d0 | sym_netd_log_esc ();
0x00034e54 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034e58 b 0x34af0 | goto label_1;
| label_5:
0x00034e5c addiu s0, zero, -1 | s0 = -1;
0x00034e60 bal 0x23124 | sym_netd_device_get_name ();
0x00034e64 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034e68 move a2, v0 | a2 = v0;
0x00034e6c addiu a0, zero, 3 | a0 = 3;
0x00034e70 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00034e74 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Invalid_IPv6_address_config__need_both_address_and_prefix_length_ */
0x00034e78 addiu a1, a1, 0x6798 | a1 += 0x6798;
0x00034e7c bal 0x434d0 | sym_netd_log_esc ();
0x00034e80 lw gp, 0x18(sp) | gp = *(var_18h_4);
0x00034e84 b 0x34b14 | goto label_2;
| label_8:
0x00034e88 lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x00034e8c jalr t9 | t9 ();
0x00034e90 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x34e94 */
| #include <stdint.h>
|
; (fcn) sym.netd_device_ipv6_remove_address_config () | void netd_device_ipv6_remove_address_config () {
0x00034e94 lui gp, 6 |
0x00034e98 addiu gp, gp, 0x2dac |
0x00034e9c addu gp, gp, t9 | gp += t9;
0x00034ea0 addiu sp, sp, -0x38 |
0x00034ea4 sw gp, 0x18(sp) | *(var_18h_5) = gp;
0x00034ea8 sw ra, 0x34(sp) | *(var_34h_3) = ra;
0x00034eac sw s4, 0x30(sp) | *(var_30h) = s4;
0x00034eb0 sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x00034eb4 sw s2, 0x28(sp) | *(var_28h) = s2;
0x00034eb8 sw s1, 0x24(sp) | *(var_24h_3) = s1;
0x00034ebc sw s0, 0x20(sp) | *(var_20h) = s0;
0x00034ec0 lw v0, -0x7cfc(gp) | v0 = *(gp);
| if (a0 == 0) {
0x00034ec4 beqz a0, 0x350c0 | goto label_2;
| }
0x00034ec8 move s2, a1 | s2 = a1;
| if (a1 == 0) {
0x00034ecc beqz a1, 0x350e4 | goto label_3;
| }
0x00034ed0 move s0, a0 | s0 = a0;
0x00034ed4 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00034ed8 lw a2, 0xc(a1) | a2 = *((a1 + 3));
0x00034edc lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00034ee0 lw a1, 4(a1) | a1 = *((a1 + 1));
| /* str._s__d */
0x00034ee4 addiu a0, a0, 0x6870 | a0 += 0x6870;
0x00034ee8 jalr t9 | t9 ();
0x00034eec lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00034ef0 move a0, s0 | a0 = s0;
0x00034ef4 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00034ef8 move s4, v0 | s4 = v0;
0x00034efc bal 0x23124 | sym_netd_device_get_name ();
0x00034f00 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00034f04 addiu a1, zero, 0x40a | a1 = 0x40a;
0x00034f08 lw t9, -0x7c58(gp) | t9 = sym.netd_settings_get_device_value;
0x00034f0c move a0, v0 | a0 = v0;
0x00034f10 bal 0x4f3a8 | sym_netd_settings_get_device_value ();
0x00034f14 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00034f18 move a0, v0 | a0 = v0;
0x00034f1c lw t9, -0x7a70(gp) | t9 = sym.netd_util_string_to_list;
0x00034f20 move s1, v0 | s1 = v0;
0x00034f24 bal 0x52b84 | sym_netd_util_string_to_list ();
0x00034f28 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00034f2c move a0, s1 | a0 = s1;
0x00034f30 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00034f34 move s1, v0 | s1 = v0;
0x00034f38 jalr t9 | t9 ();
0x00034f3c lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00034f40 move a1, s4 | a1 = s4;
0x00034f44 lw t9, -0x77b8(gp) | t9 = sym.imp.g_list_find_custom;
0x00034f48 lw a2, -0x7558(gp) | a2 = *((gp - 7510));
0x00034f4c move a0, s1 | a0 = s1;
0x00034f50 jalr t9 | t9 ();
0x00034f54 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00034f58 move s3, v0 | s3 = v0;
0x00034f5c lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00034f60 move a0, s4 | a0 = s4;
0x00034f64 jalr t9 | t9 ();
0x00034f68 lw gp, 0x18(sp) | gp = *(var_18h_5);
| if (s3 == 0) {
0x00034f6c beqz s3, 0x35110 | goto label_4;
| }
0x00034f70 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00034f74 lw a0, (s3) | a0 = *(s3);
0x00034f78 jalr t9 | t9 ();
0x00034f7c lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00034f80 move a1, s3 | a1 = s3;
0x00034f84 lw t9, -0x7764(gp) | t9 = sym.imp.g_list_delete_link;
0x00034f88 move a0, s1 | a0 = s1;
0x00034f8c jalr t9 | t9 ();
0x00034f90 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00034f94 move a0, v0 | a0 = v0;
0x00034f98 lw t9, -0x7c60(gp) | t9 = sym.netd_util_list_to_string;
0x00034f9c move s1, v0 | s1 = v0;
0x00034fa0 bal 0x52a64 | sym_netd_util_list_to_string ();
0x00034fa4 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00034fa8 move a0, s0 | a0 = s0;
0x00034fac lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00034fb0 move s3, v0 | s3 = v0;
0x00034fb4 bal 0x23124 | sym_netd_device_get_name ();
0x00034fb8 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00034fbc move a0, v0 | a0 = v0;
0x00034fc0 move a2, s3 | a2 = s3;
0x00034fc4 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x00034fc8 addiu a1, zero, 0x40a | a1 = 0x40a;
0x00034fcc bal 0x4f38c | sym_netd_settings_store_device_value ();
0x00034fd0 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00034fd4 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00034fd8 move a0, s3 | a0 = s3;
0x00034fdc jalr t9 | t9 ();
0x00034fe0 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00034fe4 lw t9, -0x7b7c(gp) | t9 = sym.netd_device_is_ready;
0x00034fe8 move a0, s0 | a0 = s0;
0x00034fec bal 0x23600 | sym_netd_device_is_ready ();
0x00034ff0 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00034ff4 bnez v0, 0x35048 |
| while (v0 == 0) {
| label_0:
0x00034ff8 lw t9, -0x7af8(gp) | t9 = *(gp);
0x00034ffc move a0, s0 | a0 = s0;
| /* fcn.000319d8 */
0x00035000 addiu t9, t9, 0x19d8 | t9 += aav.0x000019d8;
0x00035004 addiu a1, zero, 0x40a | a1 = 0x40a;
0x00035008 bal 0x319d8 | fcn_000319d8 ();
0x0003500c lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00035010 addiu s0, zero, 1 | s0 = 1;
| label_1:
0x00035014 lw t9, -0x75c8(gp) | t9 = sym.imp.g_list_free_full;
0x00035018 lw a1, -0x748c(gp) | a1 = *((gp - 7459));
0x0003501c move a0, s1 | a0 = s1;
0x00035020 jalr t9 | t9 ();
0x00035024 lw ra, 0x34(sp) | ra = *(var_34h_3);
0x00035028 move v0, s0 | v0 = s0;
0x0003502c lw s4, 0x30(sp) | s4 = *(var_30h);
0x00035030 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00035034 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00035038 lw s1, 0x24(sp) | s1 = *(var_24h_3);
0x0003503c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00035040 addiu sp, sp, 0x38 |
0x00035044 jr ra | return v0;
0x00035048 lw t9, -0x7e30(gp) | t9 = sym.netd_device_ipv6_is_enabled;
0x0003504c move a0, s0 | a0 = s0;
0x00035050 bal 0x341f8 | sym_netd_device_ipv6_is_enabled ();
0x00035054 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00035058 beqz v0, 0x34ff8 |
| }
0x0003505c lw v0, 0xc(s2) | v0 = *((s2 + 3));
0x00035060 lw t9, -0x7aa4(gp) | t9 = sym.netd_device_common_remove_address;
0x00035064 lw a3, 4(s2) | a3 = *((s2 + 1));
0x00035068 addiu a2, zero, 5 | a2 = 5;
0x0003506c sw zero, 0x14(sp) | *(var_14h) = 0;
0x00035070 sw v0, 0x10(sp) | *(var_10h_5) = v0;
0x00035074 addiu a1, zero, 2 | a1 = 2;
0x00035078 move a0, s0 | a0 = s0;
0x0003507c bal 0x25838 | sym_netd_device_common_remove_address ();
0x00035080 lw gp, 0x18(sp) | gp = *(var_18h_5);
| if (v0 != 0) {
0x00035084 bnez v0, 0x34ff8 | goto label_0;
| }
0x00035088 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0003508c move a0, s0 | a0 = s0;
0x00035090 bal 0x23124 | sym_netd_device_get_name ();
0x00035094 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00035098 lw a3, 4(s2) | a3 = *((s2 + 1));
0x0003509c move a2, v0 | a2 = v0;
0x000350a0 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x000350a4 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Failed_to_remove_static_address:__s */
0x000350a8 addiu a1, a1, 0x695c | a1 += 0x695c;
0x000350ac addiu a0, zero, 3 | a0 = 3;
0x000350b0 bal 0x434d0 | sym_netd_log_esc ();
0x000350b4 move s0, zero | s0 = 0;
0x000350b8 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x000350bc b 0x35014 | goto label_1;
| label_2:
0x000350c0 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x000350c4 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev' */
0x000350c8 addiu v0, v0, 0x60f8 | v0 += 0x60f8;
0x000350cc lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x000350d0 sw v0, 0x10(sp) | *(var_10h_5) = v0;
| /* str.netd_device_ipv6_remove_address_config */
0x000350d4 addiu a3, a3, 0x6ee0 | a3 += 0x6ee0;
0x000350d8 addiu a2, zero, 0x519 | a2 = 0x519;
| /* str.src_netd_device_ipv6.c */
0x000350dc addiu a1, a1, 0x60e0 | a1 += 0x60e0;
0x000350e0 jalr t9 | t9 ();
| label_3:
0x000350e4 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x000350e8 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x000350ec lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'config' */
0x000350f0 addiu v0, v0, 0x6790 | v0 += 0x6790;
0x000350f4 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x000350f8 sw v0, 0x10(sp) | *(var_10h_5) = v0;
| /* str.netd_device_ipv6_remove_address_config */
0x000350fc addiu a3, a3, 0x6ee0 | a3 += 0x6ee0;
0x00035100 addiu a2, zero, 0x51a | a2 = 0x51a;
| /* str.src_netd_device_ipv6.c */
0x00035104 addiu a1, a1, 0x60e0 | a1 += 0x60e0;
0x00035108 move a0, zero | a0 = 0;
0x0003510c jalr t9 | t9 ();
| label_4:
0x00035110 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00035114 move a0, s0 | a0 = s0;
0x00035118 bal 0x23124 | sym_netd_device_get_name ();
0x0003511c lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00035120 move a2, v0 | a2 = v0;
0x00035124 addiu a0, zero, 2 | a0 = 2;
0x00035128 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0003512c lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Tried_to_remove_non_existing_IPv6_static_address */
0x00035130 addiu a1, a1, 0x6924 | a1 += 0x6924;
0x00035134 bal 0x434d0 | sym_netd_log_esc ();
0x00035138 move s0, zero | s0 = 0;
0x0003513c lw gp, 0x18(sp) | gp = *(var_18h_5);
0x00035140 b 0x35014 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x33d78 */
| #include <stdint.h>
|
; (fcn) sym.netd_device_ipv6_restart () | void netd_device_ipv6_restart () {
0x00033d78 lui gp, 6 |
0x00033d7c addiu gp, gp, 0x3ec8 |
0x00033d80 addu gp, gp, t9 | gp += t9;
0x00033d84 addiu sp, sp, -0x38 |
0x00033d88 lw t9, -0x7e30(gp) | t9 = sym.netd_device_ipv6_is_enabled;
0x00033d8c sw s1, 0x28(sp) | *(var_28h) = s1;
0x00033d90 lw s1, -0x773c(gp) | s1 = *((gp - 7631));
0x00033d94 sw gp, 0x10(sp) | *(var_18h_3) = gp;
0x00033d98 sw s0, 0x24(sp) | *((sp + 9)) = s0;
0x00033d9c lw v0, (s1) | v0 = *(s1);
0x00033da0 sw ra, 0x34(sp) | *(var_34h) = ra;
0x00033da4 sw s3, 0x30(sp) | *(var_10h_2) = s3;
0x00033da8 sw s2, 0x2c(sp) | *(var_2ch_2) = s2;
0x00033dac sw zero, 0x18(sp) | *((sp + 6)) = 0;
0x00033db0 sw v0, 0x1c(sp) | *(var_24h_3) = v0;
0x00033db4 move s0, a0 | s0 = a0;
0x00033db8 bal 0x341f8 | sym_netd_device_ipv6_is_enabled ();
0x00033dbc lw gp, 0x10(sp) | gp = *(var_18h_3);
0x00033dc0 bnez v0, 0x33dec |
| while (1) {
0x00033dc4 lw v1, 0x1c(sp) | v1 = *(var_24h_3);
0x00033dc8 lw v0, (s1) | v0 = *(s1);
0x00033dcc lw ra, 0x34(sp) | ra = *(var_34h);
| if (v1 != v0) {
0x00033dd0 bne v1, v0, 0x33f3c | goto label_2;
| }
0x00033dd4 lw s3, 0x30(sp) | s3 = *(var_10h_2);
0x00033dd8 lw s2, 0x2c(sp) | s2 = *(var_2ch_2);
0x00033ddc lw s1, 0x28(sp) | s1 = *(var_28h);
0x00033de0 lw s0, 0x24(sp) | s0 = *((sp + 9));
0x00033de4 addiu sp, sp, 0x38 |
0x00033de8 jr ra | return v0;
0x00033dec lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00033df0 move a0, s0 | a0 = s0;
0x00033df4 bal 0x23124 | sym_netd_device_get_name ();
0x00033df8 lw gp, 0x10(sp) | gp = *(var_18h_3);
0x00033dfc move a1, v0 | a1 = v0;
0x00033e00 addiu s3, sp, 0x18 | s3 = sp + 0x18;
0x00033e04 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00033e08 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._proc_sys_net_ipv6_conf__s_disable_ipv6 */
0x00033e0c addiu a0, a0, 0x6634 | a0 += 0x6634;
0x00033e10 jalr t9 | t9 ();
0x00033e14 lw gp, 0x10(sp) | gp = *(var_18h_3);
0x00033e18 move a3, s3 | a3 = s3;
0x00033e1c move a2, zero | a2 = 0;
0x00033e20 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00033e24 lw t9, -0x7ae0(gp) | t9 = sym.netd_util_write_to_file;
0x00033e28 addiu a1, a1, 0x629c | a1 += 0x629c;
0x00033e2c move a0, v0 | a0 = v0;
0x00033e30 move s2, v0 | s2 = v0;
0x00033e34 bal 0x53018 | sym_netd_util_write_to_file ();
0x00033e38 lw gp, 0x10(sp) | gp = *(var_18h_3);
| if (v0 == 0) {
0x00033e3c beqz v0, 0x33ecc | goto label_3;
| }
| label_0:
0x00033e40 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00033e44 lw t9, -0x7ae0(gp) | t9 = sym.netd_util_write_to_file;
0x00033e48 move a3, s3 | a3 = s3;
0x00033e4c move a2, zero | a2 = 0;
| /* esilref: ' ' */
0x00033e50 addiu a1, a1, 0x6298 | a1 += 0x6298;
0x00033e54 move a0, s2 | a0 = s2;
0x00033e58 bal 0x53018 | sym_netd_util_write_to_file ();
0x00033e5c lw gp, 0x10(sp) | gp = *(var_18h_3);
| if (v0 == 0) {
0x00033e60 beqz v0, 0x33f04 | goto label_4;
| }
| label_1:
0x00033e64 lw t9, -0x7af8(gp) | t9 = *(gp);
| /* fcn.000320fc */
0x00033e68 addiu t9, t9, 0x20fc | t9 += 0x20fc;
0x00033e6c move a0, s0 | a0 = s0;
0x00033e70 bal 0x320fc | fcn_000320fc ();
0x00033e74 lw gp, 0x10(sp) | gp = *(var_18h_3);
0x00033e78 lw t9, -0x7af8(gp) | t9 = *(gp);
| /* fcn.0003202c */
0x00033e7c addiu t9, t9, 0x202c | t9 += 0x202c;
0x00033e80 move a0, s0 | a0 = s0;
0x00033e84 bal 0x3202c | fcn_0003202c ();
0x00033e88 lw gp, 0x10(sp) | gp = *(var_18h_3);
0x00033e8c lw t9, -0x7e38(gp) | t9 = sym.netd_device_dhcpv6_get_mode;
0x00033e90 move a0, s0 | a0 = s0;
0x00033e94 bal 0x355cc | sym_netd_device_dhcpv6_get_mode ();
0x00033e98 addiu v1, zero, 1 | v1 = 1;
0x00033e9c lw gp, 0x10(sp) | gp = *(var_18h_3);
| if (v0 != v1) {
0x00033ea0 beq v0, v1, 0x33eb8 |
0x00033ea4 lw t9, -0x7af8(gp) | t9 = *(gp);
| /* fcn.00032898 */
0x00033ea8 addiu t9, t9, 0x2898 | t9 += 0x2898;
0x00033eac move a0, s0 | a0 = s0;
0x00033eb0 bal 0x32898 | fcn_00032898 ();
0x00033eb4 lw gp, 0x10(sp) | gp = *(var_18h_3);
| }
0x00033eb8 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00033ebc move a0, s2 | a0 = s2;
0x00033ec0 jalr t9 | t9 ();
0x00033ec4 lw gp, 0x10(sp) | gp = *(var_18h_3);
0x00033ec8 b 0x33dc4 |
| }
| label_3:
0x00033ecc lw v0, 0x18(sp) | v0 = *((sp + 6));
0x00033ed0 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00033ed4 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00033ed8 lw a2, 8(v0) | a2 = *((v0 + 2));
| /* str.Failed_to_disable_IPv6:__s */
0x00033edc addiu a1, a1, 0x66a0 | a1 += 0x66a0;
0x00033ee0 addiu a0, zero, 3 | a0 = 3;
0x00033ee4 bal 0x434d0 | sym_netd_log_esc ();
0x00033ee8 lw gp, 0x10(sp) | gp = *(var_18h_3);
0x00033eec lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x00033ef0 lw a0, 0x18(sp) | a0 = *((sp + 6));
0x00033ef4 jalr t9 | t9 ();
0x00033ef8 lw gp, 0x10(sp) | gp = *(var_18h_3);
0x00033efc sw zero, 0x18(sp) | *((sp + 6)) = 0;
0x00033f00 b 0x33e40 | goto label_0;
| label_4:
0x00033f04 lw v0, 0x18(sp) | v0 = *((sp + 6));
0x00033f08 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00033f0c lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00033f10 lw a2, 8(v0) | a2 = *((v0 + 2));
| /* str.Failed_to_enable_IPv6:__s */
0x00033f14 addiu a1, a1, 0x665c | a1 += 0x665c;
0x00033f18 addiu a0, zero, 3 | a0 = 3;
0x00033f1c bal 0x434d0 | sym_netd_log_esc ();
0x00033f20 lw gp, 0x10(sp) | gp = *(var_18h_3);
0x00033f24 lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x00033f28 lw a0, 0x18(sp) | a0 = *((sp + 6));
0x00033f2c jalr t9 | t9 ();
0x00033f30 lw gp, 0x10(sp) | gp = *(var_18h_3);
0x00033f34 sw zero, 0x18(sp) | *((sp + 6)) = 0;
0x00033f38 b 0x33e64 | goto label_1;
| label_2:
0x00033f3c lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x00033f40 jalr t9 | t9 ();
0x00033f44 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x33918 */
| #include <stdint.h>
|
; (fcn) sym.netd_device_ipv6_start () | void netd_device_ipv6_start () {
0x00033918 lui gp, 6 |
0x0003391c addiu gp, gp, 0x4328 |
0x00033920 addu gp, gp, t9 | gp += t9;
0x00033924 addiu sp, sp, -0x40 |
0x00033928 sw s1, 0x30(sp) | *(var_10h) = s1;
0x0003392c lw s1, -0x773c(gp) | s1 = *((gp - 7631));
0x00033930 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00033934 sw ra, 0x3c(sp) | *(var_1ch) = ra;
0x00033938 lw v0, (s1) | v0 = *(s1);
0x0003393c sw s3, 0x38(sp) | *(var_18h) = s3;
0x00033940 sw s2, 0x34(sp) | *(var_34h) = s2;
0x00033944 sw s0, 0x2c(sp) | *(var_2ch) = s0;
0x00033948 sw zero, 0x20(sp) | *(var_20h) = 0;
0x0003394c sw v0, 0x24(sp) | *(var_24h) = v0;
0x00033950 lw v0, -0x7cfc(gp) | v0 = *(gp);
| if (a0 == 0) {
0x00033954 beqz a0, 0x33a98 | goto label_2;
| }
0x00033958 lw v0, 0x3c(a0) | v0 = *((a0 + 15));
0x0003395c move s0, a0 | s0 = a0;
| if (v0 == 0) {
0x00033960 beqz v0, 0x33abc | goto label_3;
| }
0x00033964 lw t9, -0x7b7c(gp) | t9 = sym.netd_device_is_ready;
0x00033968 bal 0x23600 | sym_netd_device_is_ready ();
0x0003396c nop |
0x00033970 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033974 bnez v0, 0x339a0 |
| while (v0 == 0) {
| label_0:
0x00033978 lw v1, 0x24(sp) | v1 = *(var_24h);
0x0003397c lw v0, (s1) | v0 = *(s1);
0x00033980 lw ra, 0x3c(sp) | ra = *(var_1ch);
| if (v1 != v0) {
0x00033984 bne v1, v0, 0x33b1c | goto label_4;
| }
0x00033988 lw s3, 0x38(sp) | s3 = *(var_18h);
0x0003398c lw s2, 0x34(sp) | s2 = *(var_34h);
0x00033990 lw s1, 0x30(sp) | s1 = *(var_10h);
0x00033994 lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x00033998 addiu sp, sp, 0x40 |
0x0003399c jr ra | return v0;
0x000339a0 lw t9, -0x7e30(gp) | t9 = sym.netd_device_ipv6_is_enabled;
0x000339a4 move a0, s0 | a0 = s0;
0x000339a8 bal 0x341f8 | sym_netd_device_ipv6_is_enabled ();
0x000339ac lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000339b0 beqz v0, 0x33978 |
| }
0x000339b4 lw t9, -0x7e3c(gp) | t9 = sym.netd_device_ipv6_get_ra_mode;
0x000339b8 move a0, s0 | a0 = s0;
0x000339bc bal 0x34634 | sym_netd_device_ipv6_get_ra_mode ();
0x000339c0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000339c4 move a1, v0 | a1 = v0;
0x000339c8 move a0, s0 | a0 = s0;
0x000339cc lw t9, -0x7af8(gp) | t9 = *(gp);
| /* fcn.000322e0 */
0x000339d0 addiu t9, t9, 0x22e0 | t9 += 0x22e0;
0x000339d4 addiu s3, sp, 0x20 | s3 = sp + 0x20;
0x000339d8 bal 0x322e0 | fcn_000322e0 ();
0x000339dc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000339e0 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x000339e4 move a0, s0 | a0 = s0;
0x000339e8 bal 0x23124 | sym_netd_device_get_name ();
0x000339ec lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000339f0 move a1, v0 | a1 = v0;
0x000339f4 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x000339f8 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._proc_sys_net_ipv6_conf__s_disable_ipv6 */
0x000339fc addiu a0, a0, 0x6634 | a0 += 0x6634;
0x00033a00 jalr t9 | t9 ();
0x00033a04 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033a08 move a3, s3 | a3 = s3;
0x00033a0c move a2, zero | a2 = 0;
0x00033a10 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00033a14 lw t9, -0x7ae0(gp) | t9 = sym.netd_util_write_to_file;
| /* esilref: ' ' */
0x00033a18 addiu a1, a1, 0x6298 | a1 += 0x6298;
0x00033a1c move a0, v0 | a0 = v0;
0x00033a20 move s2, v0 | s2 = v0;
0x00033a24 bal 0x53018 | sym_netd_util_write_to_file ();
0x00033a28 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00033a2c beqz v0, 0x33ae8 | goto label_5;
| }
| label_1:
0x00033a30 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00033a34 move a0, s2 | a0 = s2;
0x00033a38 jalr t9 | t9 ();
0x00033a3c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033a40 lw t9, -0x7af8(gp) | t9 = *(gp);
| /* fcn.000320fc */
0x00033a44 addiu t9, t9, 0x20fc | t9 += 0x20fc;
0x00033a48 move a0, s0 | a0 = s0;
0x00033a4c bal 0x320fc | fcn_000320fc ();
0x00033a50 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033a54 lw t9, -0x7af8(gp) | t9 = *(gp);
| /* fcn.0003202c */
0x00033a58 addiu t9, t9, 0x202c | t9 += 0x202c;
0x00033a5c move a0, s0 | a0 = s0;
0x00033a60 bal 0x3202c | fcn_0003202c ();
0x00033a64 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033a68 lw t9, -0x7e38(gp) | t9 = sym.netd_device_dhcpv6_get_mode;
0x00033a6c move a0, s0 | a0 = s0;
0x00033a70 bal 0x355cc | sym_netd_device_dhcpv6_get_mode ();
0x00033a74 addiu v1, zero, 1 | v1 = 1;
0x00033a78 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == v1) {
0x00033a7c beq v0, v1, 0x33978 | goto label_0;
| }
0x00033a80 lw t9, -0x7af8(gp) | t9 = *(gp);
| /* fcn.00032898 */
0x00033a84 addiu t9, t9, 0x2898 | t9 += 0x2898;
0x00033a88 move a0, s0 | a0 = s0;
0x00033a8c bal 0x32898 | fcn_00032898 ();
0x00033a90 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033a94 b 0x33978 | goto label_0;
| label_2:
0x00033a98 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x00033a9c lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev' */
0x00033aa0 addiu v0, v0, 0x60f8 | v0 += 0x60f8;
0x00033aa4 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00033aa8 sw v0, 0x10(sp) | *(var_10h_2) = v0;
| /* str.netd_device_ipv6_start */
0x00033aac addiu a3, a3, 0x6d7c | a3 += 0x6d7c;
0x00033ab0 addiu a2, zero, 0x332 | a2 = 0x332;
| /* str.src_netd_device_ipv6.c */
0x00033ab4 addiu a1, a1, 0x60e0 | a1 += 0x60e0;
0x00033ab8 jalr t9 | t9 ();
| label_3:
0x00033abc lw v0, -0x7cfc(gp) | v0 = *(gp);
0x00033ac0 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x00033ac4 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* str.dev__ipv6 */
0x00033ac8 addiu v0, v0, 0x60fc | v0 += 0x60fc;
0x00033acc lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00033ad0 sw v0, 0x10(sp) | *(var_10h_2) = v0;
| /* str.netd_device_ipv6_start */
0x00033ad4 addiu a3, a3, 0x6d7c | a3 += 0x6d7c;
0x00033ad8 addiu a2, zero, 0x333 | a2 = 0x333;
| /* str.src_netd_device_ipv6.c */
0x00033adc addiu a1, a1, 0x60e0 | a1 += 0x60e0;
0x00033ae0 move a0, zero | a0 = 0;
0x00033ae4 jalr t9 | t9 ();
| label_5:
0x00033ae8 lw v0, 0x20(sp) | v0 = *(var_20h);
0x00033aec lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00033af0 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00033af4 lw a2, 8(v0) | a2 = *((v0 + 2));
| /* str.Failed_to_enable_IPv6:__s */
0x00033af8 addiu a1, a1, 0x665c | a1 += 0x665c;
0x00033afc addiu a0, zero, 3 | a0 = 3;
0x00033b00 bal 0x434d0 | sym_netd_log_esc ();
0x00033b04 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033b08 lw t9, -0x756c(gp) | t9 = sym.imp.g_clear_error;
0x00033b0c move a0, s3 | a0 = s3;
0x00033b10 jalr t9 | t9 ();
0x00033b14 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033b18 b 0x33a30 | goto label_1;
| label_4:
0x00033b1c lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x00033b20 jalr t9 | t9 ();
0x00033b24 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x33b28 */
| #include <stdint.h>
|
; (fcn) sym.netd_device_ipv6_stop () | void netd_device_ipv6_stop () {
0x00033b28 lui gp, 6 |
0x00033b2c addiu gp, gp, 0x4118 |
0x00033b30 addu gp, gp, t9 | gp += t9;
0x00033b34 addiu sp, sp, -0x38 |
0x00033b38 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x00033b3c lw s1, -0x773c(gp) | s1 = *((gp - 7631));
0x00033b40 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00033b44 sw ra, 0x34(sp) | *(var_1ch) = ra;
0x00033b48 lw v0, (s1) | v0 = *(s1);
0x00033b4c sw s2, 0x30(sp) | *(var_18h) = s2;
0x00033b50 sw s0, 0x28(sp) | *(var_10h) = s0;
0x00033b54 sw zero, 0x20(sp) | *(var_20h) = 0;
0x00033b58 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00033b5c lw v0, -0x7cfc(gp) | v0 = *(gp);
| if (a0 == 0) {
0x00033b60 beqz a0, 0x33cc8 | goto label_2;
| }
0x00033b64 lw v0, 0x3c(a0) | v0 = *((a0 + 15));
0x00033b68 move s0, a0 | s0 = a0;
| if (v0 == 0) {
0x00033b6c beqz v0, 0x33cec | goto label_3;
| }
0x00033b70 lw t9, -0x7e08(gp) | t9 = sym.netd_device_ipv6_get_static_default_router;
0x00033b74 bal 0x3496c | sym_netd_device_ipv6_get_static_default_router ();
0x00033b78 nop |
0x00033b7c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033b80 move a0, v0 | a0 = v0;
0x00033b84 lw t9, -0x7ec0(gp) | t9 = sym.netd_util_is_empty;
0x00033b88 move s2, v0 | s2 = v0;
0x00033b8c bal 0x53510 | sym_netd_util_is_empty ();
0x00033b90 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00033b94 beqz v0, 0x33d18 | goto label_4;
| }
| label_0:
0x00033b98 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00033b9c move a0, s2 | a0 = s2;
0x00033ba0 jalr t9 | t9 ();
0x00033ba4 lw v0, 0x3c(s0) | v0 = *((s0 + 15));
0x00033ba8 lw a0, (v0) | a0 = *(v0);
0x00033bac lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (a0 != 0) {
0x00033bb0 beqz a0, 0x33c14 |
0x00033bb4 lw a1, -0x748c(gp) | a1 = *((gp - 7459));
0x00033bb8 lw t9, -0x75c8(gp) | t9 = sym.imp.g_list_free_full;
0x00033bbc jalr t9 | t9 ();
0x00033bc0 nop |
0x00033bc4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033bc8 lw v0, 0x3c(s0) | v0 = *((s0 + 15));
0x00033bcc move a0, s0 | a0 = s0;
0x00033bd0 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00033bd4 sw zero, (v0) | *(v0) = 0;
0x00033bd8 bal 0x23124 | sym_netd_device_get_name ();
0x00033bdc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033be0 move a2, v0 | a2 = v0;
0x00033be4 move a0, zero | a0 = 0;
0x00033be8 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00033bec lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Default_IPv6_routers_updated:_ */
0x00033bf0 addiu a1, a1, 0x6678 | a1 += 0x6678;
0x00033bf4 bal 0x434d0 | sym_netd_log_esc ();
0x00033bf8 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033bfc addiu a1, zero, 0x40c | a1 = 0x40c;
0x00033c00 lw t9, -0x7af8(gp) | t9 = *(gp);
| /* fcn.000319d8 */
0x00033c04 addiu t9, t9, 0x19d8 | t9 += aav.0x000019d8;
0x00033c08 move a0, s0 | a0 = s0;
0x00033c0c bal 0x319d8 | fcn_000319d8 ();
0x00033c10 lw gp, 0x18(sp) | gp = *(var_18h_2);
| }
0x00033c14 lw t9, -0x7e38(gp) | t9 = sym.netd_device_dhcpv6_get_mode;
0x00033c18 move a0, s0 | a0 = s0;
0x00033c1c bal 0x355cc | sym_netd_device_dhcpv6_get_mode ();
0x00033c20 addiu v1, zero, 1 | v1 = 1;
0x00033c24 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033c28 bne v0, v1, 0x33cb0 |
| while (1) {
0x00033c2c lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x00033c30 move a0, s0 | a0 = s0;
0x00033c34 bal 0x23124 | sym_netd_device_get_name ();
0x00033c38 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033c3c move a1, v0 | a1 = v0;
0x00033c40 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x00033c44 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* str._proc_sys_net_ipv6_conf__s_disable_ipv6 */
0x00033c48 addiu a0, a0, 0x6634 | a0 += 0x6634;
0x00033c4c jalr t9 | t9 ();
0x00033c50 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033c54 addiu a3, sp, 0x20 | a3 = sp + 0x20;
0x00033c58 move a2, zero | a2 = 0;
0x00033c5c lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00033c60 lw t9, -0x7ae0(gp) | t9 = sym.netd_util_write_to_file;
0x00033c64 addiu a1, a1, 0x629c | a1 += 0x629c;
0x00033c68 move a0, v0 | a0 = v0;
0x00033c6c move s0, v0 | s0 = v0;
0x00033c70 bal 0x53018 | sym_netd_util_write_to_file ();
0x00033c74 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00033c78 beqz v0, 0x33d38 | goto label_5;
| }
| label_1:
0x00033c7c lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00033c80 move a0, s0 | a0 = s0;
0x00033c84 jalr t9 | t9 ();
0x00033c88 lw v1, 0x24(sp) | v1 = *(var_24h);
0x00033c8c lw v0, (s1) | v0 = *(s1);
0x00033c90 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v1 != v0) {
0x00033c94 bne v1, v0, 0x33d6c | goto label_6;
| }
0x00033c98 lw ra, 0x34(sp) | ra = *(var_1ch);
0x00033c9c lw s2, 0x30(sp) | s2 = *(var_18h);
0x00033ca0 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00033ca4 lw s0, 0x28(sp) | s0 = *(var_10h);
0x00033ca8 addiu sp, sp, 0x38 |
0x00033cac jr ra | return v0;
0x00033cb0 lw t9, -0x7af8(gp) | t9 = *(gp);
| /* fcn.00032a84 */
0x00033cb4 addiu t9, t9, 0x2a84 | t9 += 0x2a84;
0x00033cb8 move a0, s0 | a0 = s0;
0x00033cbc bal 0x32a84 | fcn_00032a84 ();
0x00033cc0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033cc4 b 0x33c2c |
| }
| label_2:
0x00033cc8 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x00033ccc lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev' */
0x00033cd0 addiu v0, v0, 0x60f8 | v0 += 0x60f8;
0x00033cd4 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00033cd8 sw v0, 0x10(sp) | *(var_10h_2) = v0;
| /* str.netd_device_ipv6_stop */
0x00033cdc addiu a3, a3, 0x6d94 | a3 += 0x6d94;
0x00033ce0 addiu a2, zero, 0x35f | a2 = 0x35f;
| /* str.src_netd_device_ipv6.c */
0x00033ce4 addiu a1, a1, 0x60e0 | a1 += 0x60e0;
0x00033ce8 jalr t9 | t9 ();
| label_3:
0x00033cec lw v0, -0x7cfc(gp) | v0 = *(gp);
0x00033cf0 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x00033cf4 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* str.dev__ipv6 */
0x00033cf8 addiu v0, v0, 0x60fc | v0 += 0x60fc;
0x00033cfc lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00033d00 sw v0, 0x10(sp) | *(var_10h_2) = v0;
| /* str.netd_device_ipv6_stop */
0x00033d04 addiu a3, a3, 0x6d94 | a3 += 0x6d94;
0x00033d08 addiu a2, zero, 0x360 | a2 = 0x360;
| /* str.src_netd_device_ipv6.c */
0x00033d0c addiu a1, a1, 0x60e0 | a1 += 0x60e0;
0x00033d10 move a0, zero | a0 = 0;
0x00033d14 jalr t9 | t9 ();
| label_4:
0x00033d18 lw t9, -0x7ab0(gp) | t9 = sym.netd_device_common_set_default_router;
0x00033d1c move a3, s2 | a3 = s2;
0x00033d20 move a2, zero | a2 = 0;
0x00033d24 addiu a1, zero, 2 | a1 = 2;
0x00033d28 move a0, s0 | a0 = s0;
0x00033d2c bal 0x25880 | sym_netd_device_common_set_default_router ();
0x00033d30 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033d34 b 0x33b98 | goto label_0;
| label_5:
0x00033d38 lw v0, 0x20(sp) | v0 = *(var_20h);
0x00033d3c lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00033d40 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00033d44 lw a2, 8(v0) | a2 = *((v0 + 2));
| /* str.Failed_to_disable_IPv6:__s */
0x00033d48 addiu a1, a1, 0x66a0 | a1 += 0x66a0;
0x00033d4c addiu a0, zero, 3 | a0 = 3;
0x00033d50 bal 0x434d0 | sym_netd_log_esc ();
0x00033d54 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033d58 lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x00033d5c lw a0, 0x20(sp) | a0 = *(var_20h);
0x00033d60 jalr t9 | t9 ();
0x00033d64 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00033d68 b 0x33c7c | goto label_1;
| label_6:
0x00033d6c lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x00033d70 jalr t9 | t9 ();
0x00033d74 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x22f50 */
| #include <stdint.h>
|
; (fcn) sym.netd_device_set_static_mtu () | void netd_device_set_static_mtu () {
0x00022f50 lui gp, 7 |
0x00022f54 addiu gp, gp, 0x4cf0 |
0x00022f58 addu gp, gp, t9 | gp += t9;
0x00022f5c addiu sp, sp, -0x38 |
0x00022f60 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00022f64 sw ra, 0x34(sp) | *(var_34h) = ra;
0x00022f68 sw s2, 0x30(sp) | *(var_30h) = s2;
0x00022f6c sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x00022f70 sw s0, 0x28(sp) | *(var_28h) = s0;
0x00022f74 sltiu v0, a1, 0x44 | v0 = (a1 < 0x44) ? 1 : 0;
| if (a0 == 0) {
0x00022f78 beqz a0, 0x23000 | goto label_3;
| }
0x00022f7c move s1, a0 | s1 = a0;
0x00022f80 move s0, a1 | s0 = a1;
| if (v0 != 0) {
0x00022f84 bnez v0, 0x22fc8 | goto label_4;
| }
0x00022f88 sltiu v0, a1, 0x5dd | v0 = (a1 < 0x5dd) ? 1 : 0;
0x00022f8c move a3, a1 | a3 = a1;
| if (v0 != 0) {
0x00022f90 bnez v0, 0x23028 | goto label_5;
| }
0x00022f94 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00022f98 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00022f9c lw a2, (a0) | a2 = *(a0);
| /* str.__s__Tried_to_set_too_high_MTU_value___1500_:__d */
0x00022fa0 addiu a1, a1, 0x27b8 | a1 += 0x27b8;
0x00022fa4 addiu a0, zero, 2 | a0 = 2;
0x00022fa8 jalr t9 | t9 ();
0x00022fac move v0, zero | v0 = 0;
| do {
| label_1:
0x00022fb0 lw ra, 0x34(sp) | ra = *(var_34h);
0x00022fb4 lw s2, 0x30(sp) | s2 = *(var_30h);
0x00022fb8 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00022fbc lw s0, 0x28(sp) | s0 = *(var_28h);
0x00022fc0 addiu sp, sp, 0x38 |
0x00022fc4 jr ra | return v0;
| label_4:
0x00022fc8 move a3, a1 | a3 = a1;
0x00022fcc lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00022fd0 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00022fd4 lw a2, (a0) | a2 = *(a0);
| /* str.__s__Tried_to_set_too_low_MTU_value:__d */
0x00022fd8 addiu a1, a1, 0x2790 | a1 += 0x2790;
0x00022fdc addiu a0, zero, 2 | a0 = 2;
0x00022fe0 jalr t9 | t9 ();
0x00022fe4 lw ra, 0x34(sp) | ra = *(var_34h);
0x00022fe8 lw s2, 0x30(sp) | s2 = *(var_30h);
0x00022fec lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00022ff0 lw s0, 0x28(sp) | s0 = *(var_28h);
0x00022ff4 move v0, zero | v0 = 0;
0x00022ff8 addiu sp, sp, 0x38 |
0x00022ffc jr ra | return v0;
| label_3:
0x00023000 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x00023004 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x00023008 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev != NULL' */
0x0002300c addiu v0, v0, 0x2320 | v0 += 0x2320;
0x00023010 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00023014 sw v0, 0x10(sp) | *(var_10h_2) = v0;
| /* str.netd_device_set_static_mtu */
0x00023018 addiu a3, a3, 0x2e1c | a3 += 0x2e1c;
0x0002301c addiu a2, zero, 0x2c9 | a2 = 0x2c9;
| /* str.src_netd_device.c */
0x00023020 addiu a1, a1, 0x230c | a1 += 0x230c;
0x00023024 jalr t9 | t9 ();
| label_5:
0x00023028 lw t9, -0x7e30(gp) | t9 = sym.netd_device_ipv6_is_enabled;
0x0002302c bal 0x341f8 | sym_netd_device_ipv6_is_enabled ();
0x00023030 nop |
0x00023034 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00023038 beqz v0, 0x23068 |
0x0002303c sltiu v0, s0, 0x500 | v0 = (s0 < 0x500) ? 1 : 0;
| if (v0 == 0) {
0x00023040 beql v0, zero, 0x2306c | goto label_6;
| }
0x00023044 lw v0, 0x1c(s1) | v0 = *((s1 + 7));
0x00023048 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0002304c lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00023050 lw a2, (s1) | a2 = *(s1);
0x00023054 move a3, s0 | a3 = s0;
| /* str.__s__Setting_MTU___d__lower_than_IPv6_requires__1280_ */
0x00023058 addiu a1, a1, 0x27ec | a1 += 0x27ec;
0x0002305c addiu a0, zero, 2 | a0 = 2;
0x00023060 jalr t9 | t9 ();
0x00023064 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00023068 lw v0, 0x1c(s1) | v0 = *((s1 + 7));
| label_6:
0x0002306c lw a0, -0x7cfc(gp) | a0 = *(gp);
| if (s0 == v0) {
0x00023070 bnel s0, v0, 0x230c4 | goto label_7;
| }
| label_2:
0x00023074 lw v0, 0x18(s1) | v0 = *((s1 + 6));
0x00023078 lw t9, -0x7c88(gp) | t9 = *(gp);
| if (s0 != v0) {
0x0002307c bne s0, v0, 0x23088 | goto label_8;
| }
| label_0:
0x00023080 addiu v0, zero, 1 | v0 = 1;
0x00023084 b 0x22fb0 |
| } while (1);
| label_8:
0x00023088 move a1, s0 | a1 = s0;
| /* fcn.00021d08 */
0x0002308c addiu t9, t9, 0x1d08 | t9 += 0x1d08;
0x00023090 move a0, s1 | a0 = s1;
0x00023094 bal 0x21d08 | fcn_00021d08 ();
0x00023098 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0002309c bnez v0, 0x23080 | goto label_0;
| }
0x000230a0 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x000230a4 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x000230a8 lw a2, (s1) | a2 = *(s1);
0x000230ac sw v0, 0x24(sp) | *(var_24h) = v0;
| /* str.__s__Failed_to_set_device_MTU_ */
0x000230b0 addiu a1, a1, 0x2828 | a1 += 0x2828;
0x000230b4 addiu a0, zero, 3 | a0 = 3;
0x000230b8 jalr t9 | t9 ();
0x000230bc lw v0, 0x24(sp) | v0 = *(var_24h);
0x000230c0 b 0x22fb0 | goto label_1;
| label_7:
0x000230c4 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x000230c8 move a1, s0 | a1 = s0;
| /* esilref: '&d' */
0x000230cc addiu a0, a0, 0x2824 | a0 += 0x2824;
0x000230d0 sw s0, 0x1c(s1) | *((s1 + 7)) = s0;
0x000230d4 jalr t9 | t9 ();
0x000230d8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000230dc lw a0, (s1) | a0 = *(s1);
0x000230e0 move a2, v0 | a2 = v0;
0x000230e4 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x000230e8 addiu a1, zero, 0x3ed | a1 = 0x3ed;
0x000230ec move s2, v0 | s2 = v0;
0x000230f0 jalr t9 | t9 ();
0x000230f4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000230f8 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000230fc move a0, s2 | a0 = s2;
0x00023100 jalr t9 | t9 ();
0x00023104 lw gp, 0x18(sp) | gp = *(var_18h);
0x00023108 addiu a1, zero, 0x3ed | a1 = 0x3ed;
0x0002310c lw t9, -0x7c88(gp) | t9 = *(gp);
| /* fcn.000219f8 */
0x00023110 addiu t9, t9, 0x19f8 | t9 += 0x19f8;
0x00023114 move a0, s1 | a0 = s1;
0x00023118 bal 0x219f8 | fcn_000219f8 ();
0x0002311c lw gp, 0x18(sp) | gp = *(var_18h);
0x00023120 b 0x23074 | goto label_2;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x3a280 */
| #include <stdint.h>
|
; (fcn) sym.netd_device_wlan_ap_set_channel_configuration () | void netd_device_wlan_ap_set_channel_configuration () {
0x0003a280 lui gp, 6 |
0x0003a284 addiu gp, gp, -0x2640 |
0x0003a288 addu gp, gp, t9 | gp += t9;
0x0003a28c addiu sp, sp, -0x38 |
0x0003a290 sw gp, 0x18(sp) | *(var_18h_3) = gp;
0x0003a294 sw ra, 0x34(sp) | *(var_34h) = ra;
0x0003a298 sw s4, 0x30(sp) | *(var_30h) = s4;
0x0003a29c sw s3, 0x2c(sp) | *(var_2ch_2) = s3;
0x0003a2a0 sw s2, 0x28(sp) | *(var_28h_2) = s2;
0x0003a2a4 sw s1, 0x24(sp) | *(var_24h_3) = s1;
0x0003a2a8 sw s0, 0x20(sp) | *(var_20h_2) = s0;
0x0003a2ac lw v0, -0x7cfc(gp) | v0 = *(gp);
| if (a0 == 0) {
0x0003a2b0 beqz a0, 0x3a4b0 | goto label_4;
| }
0x0003a2b4 lw v0, 0x34(a0) | v0 = *((a0 + 13));
0x0003a2b8 move s0, a0 | s0 = a0;
| if (v0 == 0) {
0x0003a2bc beqz v0, 0x3a4d4 | goto label_5;
| }
0x0003a2c0 lw v0, (v0) | v0 = *(v0);
0x0003a2c4 lw t9, -0x7d4c(gp) | t9 = sym.netd_device_wlan_ap_get_band;
| if (v0 == 0) {
0x0003a2c8 beqz v0, 0x3a500 | goto label_6;
| }
0x0003a2cc move s1, a1 | s1 = a1;
0x0003a2d0 move s2, a2 | s2 = a2;
0x0003a2d4 bal 0x3a950 | sym_netd_device_wlan_ap_get_band ();
0x0003a2d8 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 == s1) {
0x0003a2dc beq v0, s1, 0x3a494 | goto label_7;
| }
0x0003a2e0 addiu v0, s1, -1 | v0 = s1 + -1;
0x0003a2e4 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x0003a2e8 lw t9, -0x7d14(gp) | t9 = sym.netd_device_wlan_ap_get_supported_bands;
| if (v0 == 0) {
0x0003a2ec beqz v0, 0x3a558 | goto label_8;
| }
0x0003a2f0 move a0, s0 | a0 = s0;
0x0003a2f4 bal 0x3a63c | sym_netd_device_wlan_ap_get_supported_bands ();
0x0003a2f8 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a2fc move a1, s1 | a1 = s1;
0x0003a300 move a0, v0 | a0 = v0;
0x0003a304 lw t9, -0x74b4(gp) | t9 = sym.imp.g_list_find;
0x0003a308 move s3, v0 | s3 = v0;
0x0003a30c jalr t9 | t9 ();
0x0003a310 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a314 move s4, v0 | s4 = v0;
0x0003a318 lw t9, -0x75a8(gp) | t9 = sym.imp.g_list_free;
0x0003a31c move a0, s3 | a0 = s3;
0x0003a320 jalr t9 | t9 ();
0x0003a324 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (s4 == 0) {
0x0003a328 beqz s4, 0x3a608 | goto label_9;
| }
0x0003a32c addiu v0, zero, 1 | v0 = 1;
0x0003a330 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0003a334 move a0, s0 | a0 = s0;
| if (s1 == v0) {
0x0003a338 beq s1, v0, 0x3a5a8 | goto label_10;
| }
0x0003a33c bal 0x23124 | sym_netd_device_get_name ();
0x0003a340 nop |
0x0003a344 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a348 addiu a1, zero, 0x42c | a1 = 0x42c;
0x0003a34c move a0, v0 | a0 = v0;
0x0003a350 lw a2, -0x7cfc(gp) | a2 = *(gp);
0x0003a354 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
| /* str.5GHz */
0x0003a358 addiu a2, a2, 0x7e60 | a2 += 0x7e60;
0x0003a35c bal 0x4f38c | sym_netd_settings_store_device_value ();
0x0003a360 lw gp, 0x18(sp) | gp = *(var_18h_3);
| label_3:
0x0003a364 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0003a368 addiu a1, zero, 0x42c | a1 = 0x42c;
0x0003a36c move a0, zero | a0 = 0;
0x0003a370 jalr t9 | t9 ();
0x0003a374 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a378 move s4, v0 | s4 = v0;
| label_0:
0x0003a37c lw t9, -0x7d10(gp) | t9 = sym.netd_device_wlan_ap_get_supported_channels;
0x0003a380 move a1, s1 | a1 = s1;
0x0003a384 move a0, s0 | a0 = s0;
0x0003a388 bal 0x3a714 | sym_netd_device_wlan_ap_get_supported_channels ();
0x0003a38c lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a390 move a1, s2 | a1 = s2;
0x0003a394 move a0, v0 | a0 = v0;
0x0003a398 lw t9, -0x74b4(gp) | t9 = sym.imp.g_list_find;
0x0003a39c move s1, v0 | s1 = v0;
0x0003a3a0 jalr t9 | t9 ();
0x0003a3a4 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a3a8 move s3, v0 | s3 = v0;
0x0003a3ac lw t9, -0x75a8(gp) | t9 = sym.imp.g_list_free;
0x0003a3b0 move a0, s1 | a0 = s1;
0x0003a3b4 jalr t9 | t9 ();
0x0003a3b8 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (s3 == 0) {
0x0003a3bc beqz s3, 0x3a5d4 | goto label_11;
| }
0x0003a3c0 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0003a3c4 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x0003a3c8 move a1, s2 | a1 = s2;
| /* esilref: '&d' */
0x0003a3cc addiu a0, a0, 0x7e94 | a0 += 0x7e94;
0x0003a3d0 jalr t9 | t9 ();
0x0003a3d4 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a3d8 move a0, s0 | a0 = s0;
0x0003a3dc lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0003a3e0 move s1, v0 | s1 = v0;
0x0003a3e4 bal 0x23124 | sym_netd_device_get_name ();
0x0003a3e8 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a3ec move a0, v0 | a0 = v0;
0x0003a3f0 move a2, s1 | a2 = s1;
0x0003a3f4 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x0003a3f8 addiu a1, zero, 0x42d | a1 = 0x42d;
0x0003a3fc bal 0x4f38c | sym_netd_settings_store_device_value ();
0x0003a400 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a404 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0003a408 move a0, s1 | a0 = s1;
0x0003a40c jalr t9 | t9 ();
0x0003a410 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a414 addiu a1, zero, 0x42d | a1 = 0x42d;
0x0003a418 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0003a41c move a0, s4 | a0 = s4;
0x0003a420 jalr t9 | t9 ();
0x0003a424 move s1, v0 | s1 = v0;
0x0003a428 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 == 0) {
0x0003a42c beqz v0, 0x3a470 | goto label_1;
| }
0x0003a430 lw v0, 0x34(s0) | v0 = *((s0 + 13));
0x0003a434 lw t9, -0x7a24(gp) | t9 = *(gp);
0x0003a438 move a1, s1 | a1 = s1;
| /* fcn.00038420 */
0x0003a43c addiu t9, t9, -0x7be0 | t9 += -0x7be0;
0x0003a440 lw a0, (v0) | a0 = *(v0);
0x0003a444 bal 0x38420 | fcn_00038420 ();
0x0003a448 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a44c lw t9, -0x75a8(gp) | t9 = sym.imp.g_list_free;
0x0003a450 move a0, s1 | a0 = s1;
0x0003a454 jalr t9 | t9 ();
0x0003a458 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a45c lw t9, -0x7cac(gp) | t9 = sym.netd_device_is_started;
0x0003a460 move a0, s0 | a0 = s0;
0x0003a464 bal 0x23684 | sym_netd_device_is_started ();
0x0003a468 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 != 0) {
0x0003a46c bnez v0, 0x3a52c | goto label_12;
| }
| do {
| label_1:
0x0003a470 move v0, zero | v0 = 0;
| label_2:
0x0003a474 lw ra, 0x34(sp) | ra = *(var_34h);
0x0003a478 lw s4, 0x30(sp) | s4 = *(var_30h);
0x0003a47c lw s3, 0x2c(sp) | s3 = *(var_2ch_2);
0x0003a480 lw s2, 0x28(sp) | s2 = *(var_28h_2);
0x0003a484 lw s1, 0x24(sp) | s1 = *(var_24h_3);
0x0003a488 lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x0003a48c addiu sp, sp, 0x38 |
0x0003a490 jr ra | return v0;
| label_7:
0x0003a494 lw t9, -0x7d44(gp) | t9 = sym.netd_device_wlan_ap_get_channel;
0x0003a498 move a0, s0 | a0 = s0;
0x0003a49c bal 0x3aad0 | sym_netd_device_wlan_ap_get_channel ();
0x0003a4a0 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a4a4 beq s2, v0, 0x3a470 |
| } while (s2 == v0);
0x0003a4a8 move s4, zero | s4 = 0;
0x0003a4ac b 0x3a37c | goto label_0;
| label_4:
0x0003a4b0 lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x0003a4b4 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev != NULL' */
0x0003a4b8 addiu v0, v0, 0x79d8 | v0 += 0x79d8;
0x0003a4bc lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0003a4c0 sw v0, 0x10(sp) | *(var_10h_3) = v0;
| /* str.netd_device_wlan_ap_set_channel_configuration */
0x0003a4c4 addiu a3, a3, -0x7d88 | a3 += -0x7d88;
0x0003a4c8 addiu a2, zero, 0x264 | a2 = aav.0x00000264;
| /* str.src_netd_device_wlan_ap.c */
0x0003a4cc addiu a1, a1, 0x79b0 | a1 += 0x79b0;
0x0003a4d0 jalr t9 | t9 ();
| label_5:
0x0003a4d4 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x0003a4d8 lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x0003a4dc lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev->wlan != NULL' */
0x0003a4e0 addiu v0, v0, 0x7bf8 | v0 += 0x7bf8;
0x0003a4e4 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0003a4e8 sw v0, 0x10(sp) | *(var_10h_3) = v0;
| /* str.netd_device_wlan_ap_set_channel_configuration */
0x0003a4ec addiu a3, a3, -0x7d88 | a3 += -0x7d88;
0x0003a4f0 addiu a2, zero, 0x265 | a2 = 0x265;
| /* str.src_netd_device_wlan_ap.c */
0x0003a4f4 addiu a1, a1, 0x79b0 | a1 += 0x79b0;
0x0003a4f8 move a0, zero | a0 = 0;
0x0003a4fc jalr t9 | t9 ();
| label_6:
0x0003a500 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x0003a504 lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x0003a508 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* str.dev__wlan__ap___NULL */
0x0003a50c addiu v0, v0, 0x7c0c | v0 += 0x7c0c;
0x0003a510 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0003a514 sw v0, 0x10(sp) | *(var_10h_3) = v0;
| /* str.netd_device_wlan_ap_set_channel_configuration */
0x0003a518 addiu a3, a3, -0x7d88 | a3 += -0x7d88;
0x0003a51c addiu a2, zero, 0x266 | a2 = 0x266;
| /* str.src_netd_device_wlan_ap.c */
0x0003a520 addiu a1, a1, 0x79b0 | a1 += 0x79b0;
0x0003a524 move a0, zero | a0 = 0;
0x0003a528 jalr t9 | t9 ();
| label_12:
0x0003a52c lw t9, -0x7d48(gp) | t9 = sym.netd_device_wlan_ap_is_enabled;
0x0003a530 move a0, s0 | a0 = s0;
0x0003a534 bal 0x39548 | sym_netd_device_wlan_ap_is_enabled ();
0x0003a538 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 == 0) {
0x0003a53c beqz v0, 0x3a470 | goto label_1;
| }
0x0003a540 lw t9, -0x7a24(gp) | t9 = *(gp);
| /* fcn.00038d48 */
0x0003a544 addiu t9, t9, -0x72b8 | t9 += -0x72b8;
0x0003a548 move a0, s0 | a0 = s0;
0x0003a54c bal 0x38d48 | fcn_00038d48 ();
0x0003a550 move v0, zero | v0 = 0;
0x0003a554 b 0x3a474 | goto label_2;
| label_8:
0x0003a558 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0003a55c move a0, s0 | a0 = s0;
0x0003a560 bal 0x23124 | sym_netd_device_get_name ();
0x0003a564 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a568 move a3, s1 | a3 = s1;
0x0003a56c move a2, v0 | a2 = v0;
0x0003a570 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0003a574 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Tried_to_set_invalid_band:__d */
0x0003a578 addiu a1, a1, 0x7e0c | a1 += 0x7e0c;
0x0003a57c addiu a0, zero, 2 | a0 = 2;
0x0003a580 bal 0x434d0 | sym_netd_log_esc ();
0x0003a584 lw ra, 0x34(sp) | ra = *(var_34h);
0x0003a588 lw s4, 0x30(sp) | s4 = *(var_30h);
0x0003a58c lw s3, 0x2c(sp) | s3 = *(var_2ch_2);
0x0003a590 lw s2, 0x28(sp) | s2 = *(var_28h_2);
0x0003a594 lw s1, 0x24(sp) | s1 = *(var_24h_3);
0x0003a598 lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x0003a59c addiu v0, zero, 2 | v0 = 2;
0x0003a5a0 addiu sp, sp, 0x38 |
0x0003a5a4 jr ra | return v0;
| label_10:
0x0003a5a8 bal 0x23124 | sym_netd_device_get_name ();
0x0003a5ac nop |
0x0003a5b0 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a5b4 addiu a1, zero, 0x42c | a1 = 0x42c;
0x0003a5b8 move a0, v0 | a0 = v0;
0x0003a5bc lw a2, -0x7cfc(gp) | a2 = *(gp);
0x0003a5c0 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
| /* esilref: '2.4GHz' */
0x0003a5c4 addiu a2, a2, 0x7e58 | a2 += 0x7e58;
0x0003a5c8 bal 0x4f38c | sym_netd_settings_store_device_value ();
0x0003a5cc lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a5d0 b 0x3a364 | goto label_3;
| label_11:
0x0003a5d4 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0003a5d8 move a0, s0 | a0 = s0;
0x0003a5dc bal 0x23124 | sym_netd_device_get_name ();
0x0003a5e0 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a5e4 move a2, v0 | a2 = v0;
0x0003a5e8 move a3, s2 | a3 = s2;
0x0003a5ec lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0003a5f0 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Tried_to_set_unsupported_channel:__d */
0x0003a5f4 addiu a1, a1, 0x7e68 | a1 += 0x7e68;
0x0003a5f8 addiu a0, zero, 2 | a0 = 2;
0x0003a5fc bal 0x434d0 | sym_netd_log_esc ();
0x0003a600 addiu v0, zero, 1 | v0 = 1;
0x0003a604 b 0x3a474 | goto label_2;
| label_9:
0x0003a608 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0003a60c move a0, s0 | a0 = s0;
0x0003a610 bal 0x23124 | sym_netd_device_get_name ();
0x0003a614 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0003a618 move a2, v0 | a2 = v0;
0x0003a61c move a3, s1 | a3 = s1;
0x0003a620 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0003a624 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Tried_to_set_unsupported_band:__d */
0x0003a628 addiu a1, a1, 0x7e30 | a1 += 0x7e30;
0x0003a62c addiu a0, zero, 2 | a0 = 2;
0x0003a630 bal 0x434d0 | sym_netd_log_esc ();
0x0003a634 addiu v0, zero, 1 | v0 = 1;
0x0003a638 b 0x3a474 | goto label_2;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x3af38 */
| #include <stdint.h>
|
; (fcn) sym.netd_device_wlan_ap_setup () | void netd_device_wlan_ap_setup () {
0x0003af38 lui gp, 6 |
0x0003af3c addiu gp, gp, -0x32f8 |
0x0003af40 addu gp, gp, t9 | gp += t9;
0x0003af44 addiu sp, sp, -0x60 |
0x0003af48 sw s1, 0x4c(sp) | *(var_4ch) = s1;
0x0003af4c lw s1, -0x773c(gp) | s1 = *((gp - 7631));
0x0003af50 sw gp, 0x38(sp) | *(var_38h) = gp;
0x0003af54 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x0003af58 lw v0, (s1) | v0 = *(s1);
0x0003af5c sw s4, 0x58(sp) | *(var_58h) = s4;
0x0003af60 sw s3, 0x54(sp) | *(var_54h) = s3;
0x0003af64 sw s2, 0x50(sp) | *(var_50h) = s2;
0x0003af68 sw s0, 0x48(sp) | *(var_48h) = s0;
0x0003af6c sw v0, 0x44(sp) | *(var_44h) = v0;
0x0003af70 lw v0, -0x7cfc(gp) | v0 = *(gp);
| if (a0 == 0) {
0x0003af74 beqz a0, 0x3b0b4 | goto label_2;
| }
0x0003af78 lw v0, 0x34(a0) | v0 = *((a0 + 13));
0x0003af7c move s0, a0 | s0 = a0;
| if (v0 == 0) {
0x0003af80 beqz v0, 0x3b0d8 | goto label_3;
| }
0x0003af84 lw v0, (v0) | v0 = *(v0);
0x0003af88 lw v0, -0x7cfc(gp) | v0 = *(gp);
| if (v0 != 0) {
0x0003af8c beqz v0, 0x3afb8 |
0x0003af90 lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x0003af94 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* str.dev__wlan__ap__NULL */
0x0003af98 addiu v0, v0, 0x7f90 | v0 += 0x7f90;
0x0003af9c lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0003afa0 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.netd_device_wlan_ap_setup */
0x0003afa4 addiu a3, a3, -0x7c74 | a3 += -0x7c74;
0x0003afa8 addiu a2, zero, 0x35b | a2 = 0x35b;
| /* str.src_netd_device_wlan_ap.c */
0x0003afac addiu a1, a1, 0x79b0 | a1 += 0x79b0;
0x0003afb0 move a0, zero | a0 = 0;
0x0003afb4 jalr t9 | t9 ();
| }
0x0003afb8 lw s2, -0x7fd0(gp) | s2 = *((gp - 8180));
0x0003afbc lw v0, 0x870(s2) | v0 = *((s2 + 540));
0x0003afc0 lw a0, -0x7cfc(gp) | a0 = *(gp);
| if (v0 == 0) {
0x0003afc4 beqz v0, 0x3b08c | goto label_4;
| }
0x0003afc8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0003afcc lw v0, 0x874(v0) | v0 = *((v0 + 541));
| do {
0x0003afd0 lw t9, -0x783c(gp) | t9 = sym.imp.g_malloc0;
| if (v0 != 0) {
0x0003afd4 beqz v0, 0x3b060 |
0x0003afd8 addiu a0, zero, 0xc | a0 = 0xc;
0x0003afdc jalr t9 | t9 ();
0x0003afe0 lw gp, 0x38(sp) | gp = *(var_38h);
0x0003afe4 lw v1, 0x34(s0) | v1 = *((s0 + 13));
0x0003afe8 move a0, s0 | a0 = s0;
0x0003afec lw t9, -0x7d3c(gp) | t9 = sym.netd_device_wlan_ap_get_ssid;
0x0003aff0 sw v0, (v1) | *(v1) = v0;
0x0003aff4 sw zero, (v0) | *(v0) = 0;
0x0003aff8 bal 0x39934 | sym_netd_device_wlan_ap_get_ssid ();
0x0003affc lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b000 move a0, v0 | a0 = v0;
0x0003b004 lw t9, -0x7ec0(gp) | t9 = sym.netd_util_is_empty;
0x0003b008 move s2, v0 | s2 = v0;
0x0003b00c bal 0x53510 | sym_netd_util_is_empty ();
0x0003b010 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 != 0) {
0x0003b014 bnez v0, 0x3b104 | goto label_5;
| }
| label_0:
0x0003b018 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0003b01c move a0, s2 | a0 = s2;
0x0003b020 jalr t9 | t9 ();
0x0003b024 lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b028 lw t9, -0x7dcc(gp) | t9 = sym.netd_device_wlan_ap_get_wpa_personal_passphrase;
0x0003b02c move a0, s0 | a0 = s0;
0x0003b030 bal 0x3a1ac | sym_netd_device_wlan_ap_get_wpa_personal_passphrase ();
0x0003b034 lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b038 move a0, v0 | a0 = v0;
0x0003b03c lw t9, -0x7ec0(gp) | t9 = sym.netd_util_is_empty;
0x0003b040 move s2, v0 | s2 = v0;
0x0003b044 bal 0x53510 | sym_netd_util_is_empty ();
0x0003b048 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 != 0) {
0x0003b04c bnez v0, 0x3b1c0 | goto label_6;
| }
| label_1:
0x0003b050 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0003b054 move a0, s2 | a0 = s2;
0x0003b058 jalr t9 | t9 ();
0x0003b05c lw gp, 0x38(sp) | gp = *(var_38h);
| }
0x0003b060 lw v1, 0x44(sp) | v1 = *(var_44h);
0x0003b064 lw v0, (s1) | v0 = *(s1);
0x0003b068 lw ra, 0x5c(sp) | ra = *(var_5ch);
| if (v1 != v0) {
0x0003b06c bne v1, v0, 0x3b33c | goto label_7;
| }
0x0003b070 lw s4, 0x58(sp) | s4 = *(var_58h);
0x0003b074 lw s3, 0x54(sp) | s3 = *(var_54h);
0x0003b078 lw s2, 0x50(sp) | s2 = *(var_50h);
0x0003b07c lw s1, 0x4c(sp) | s1 = *(var_4ch);
0x0003b080 lw s0, 0x48(sp) | s0 = *(var_48h);
0x0003b084 addiu sp, sp, 0x60 |
0x0003b088 jr ra | return v0;
| label_4:
0x0003b08c lw t9, -0x7944(gp) | t9 = sym.imp.g_file_test;
0x0003b090 addiu a1, zero, 8 | a1 = 8;
| /* str._usr_sbin_hostapd */
0x0003b094 addiu a0, a0, 0x7c58 | a0 += 0x7c58;
0x0003b098 jalr t9 | t9 ();
0x0003b09c lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b0a0 lw v1, -0x7fd0(gp) | v1 = *((gp - 8180));
0x0003b0a4 sw v0, 0x874(v1) | *((v1 + 541)) = v0;
0x0003b0a8 addiu v1, zero, 1 | v1 = 1;
0x0003b0ac sw v1, 0x870(s2) | *((s2 + 540)) = v1;
0x0003b0b0 b 0x3afd0 |
| } while (1);
| label_2:
0x0003b0b4 lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x0003b0b8 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev != NULL' */
0x0003b0bc addiu v0, v0, 0x79d8 | v0 += 0x79d8;
0x0003b0c0 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0003b0c4 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.netd_device_wlan_ap_setup */
0x0003b0c8 addiu a3, a3, -0x7c74 | a3 += -0x7c74;
0x0003b0cc addiu a2, zero, 0x359 | a2 = 0x359;
| /* str.src_netd_device_wlan_ap.c */
0x0003b0d0 addiu a1, a1, 0x79b0 | a1 += 0x79b0;
0x0003b0d4 jalr t9 | t9 ();
| label_3:
0x0003b0d8 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x0003b0dc lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x0003b0e0 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev->wlan != NULL' */
0x0003b0e4 addiu v0, v0, 0x7bf8 | v0 += 0x7bf8;
0x0003b0e8 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0003b0ec sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.netd_device_wlan_ap_setup */
0x0003b0f0 addiu a3, a3, -0x7c74 | a3 += -0x7c74;
0x0003b0f4 addiu a2, zero, 0x35a | a2 = 0x35a;
| /* str.src_netd_device_wlan_ap.c */
0x0003b0f8 addiu a1, a1, 0x79b0 | a1 += 0x79b0;
0x0003b0fc move a0, zero | a0 = 0;
0x0003b100 jalr t9 | t9 ();
| label_5:
0x0003b104 lw t9, -0x7c8c(gp) | t9 = sym.netd_settings_get_main_value;
0x0003b108 addiu a0, zero, 0x11 | a0 = 0x11;
0x0003b10c bal 0x4f344 | sym_netd_settings_get_main_value ();
0x0003b110 lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b114 move a0, v0 | a0 = v0;
0x0003b118 lw t9, -0x76f8(gp) | t9 = sym.imp.strlen;
0x0003b11c move s3, v0 | s3 = v0;
0x0003b120 jalr t9 | t9 ();
0x0003b124 addiu v1, zero, 0x11 | v1 = 0x11;
0x0003b128 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 == v1) {
0x0003b12c beq v0, v1, 0x3b2cc | goto label_8;
| }
0x0003b130 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0003b134 move a0, s0 | a0 = s0;
0x0003b138 bal 0x23124 | sym_netd_device_get_name ();
0x0003b13c lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b140 move a2, v0 | a2 = v0;
0x0003b144 addiu a0, zero, 2 | a0 = 2;
0x0003b148 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0003b14c lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Invalid_default_MAC_length__defaulting_WLAN_AP_SSID_to__axis_ */
0x0003b150 addiu a1, a1, 0x7fa8 | a1 += 0x7fa8;
0x0003b154 bal 0x434d0 | sym_netd_log_esc ();
0x0003b158 lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b15c lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0003b160 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* esilref: 'axis' */
0x0003b164 addiu a0, a0, 0x7fec | a0 += 0x7fec;
0x0003b168 jalr t9 | t9 ();
0x0003b16c lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b170 move s4, v0 | s4 = v0;
| do {
0x0003b174 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0003b178 move a0, s0 | a0 = s0;
0x0003b17c bal 0x23124 | sym_netd_device_get_name ();
0x0003b180 lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b184 move a0, v0 | a0 = v0;
0x0003b188 move a2, s4 | a2 = s4;
0x0003b18c lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x0003b190 addiu a1, zero, 0x428 | a1 = 0x428;
0x0003b194 bal 0x4f38c | sym_netd_settings_store_device_value ();
0x0003b198 lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b19c lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0003b1a0 move a0, s4 | a0 = s4;
0x0003b1a4 jalr t9 | t9 ();
0x0003b1a8 lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b1ac lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0003b1b0 move a0, s3 | a0 = s3;
0x0003b1b4 jalr t9 | t9 ();
0x0003b1b8 lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b1bc b 0x3b018 | goto label_0;
| label_6:
0x0003b1c0 lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x0003b1c4 lw t9, -0x785c(gp) | t9 = sym.imp.g_file_get_contents;
0x0003b1c8 move a3, zero | a3 = 0;
0x0003b1cc move a2, zero | a2 = 0;
0x0003b1d0 addiu a1, sp, 0x40 | a1 = sp + 0x40;
| /* str._lib_persistent_hostapd.conf */
0x0003b1d4 addiu a0, a0, -0x7fec | a0 += -0x7fec;
0x0003b1d8 jalr t9 | t9 ();
0x0003b1dc lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 != 0) {
0x0003b1e0 beqz v0, 0x3b264 |
0x0003b1e4 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x0003b1e8 lw t9, -0x7818(gp) | t9 = sym.imp.g_strsplit;
0x0003b1ec lw a0, 0x40(sp) | a0 = *(var_40h);
0x0003b1f0 addiu a2, zero, -1 | a2 = -1;
0x0003b1f4 addiu a1, a1, 0x7bbc | a1 += 0x7bbc;
0x0003b1f8 jalr t9 | t9 ();
0x0003b1fc lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b200 lw a0, 0x40(sp) | a0 = *(var_40h);
0x0003b204 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0003b208 move s4, v0 | s4 = v0;
0x0003b20c jalr t9 | t9 ();
0x0003b210 lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b214 move a0, s4 | a0 = s4;
0x0003b218 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x0003b21c lw t9, -0x7a1c(gp) | t9 = sym.netd_util_get_shellparsed_value;
| /* str.wpa_passphrase */
0x0003b220 addiu a1, a1, -0x7fcc | a1 += -0x7fcc;
0x0003b224 bal 0x538f8 | sym_netd_util_get_shellparsed_value ();
0x0003b228 lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b22c move s3, v0 | s3 = v0;
0x0003b230 lw t9, -0x78d0(gp) | t9 = sym.imp.g_strfreev;
0x0003b234 move a0, s4 | a0 = s4;
0x0003b238 jalr t9 | t9 ();
0x0003b23c lw gp, 0x38(sp) | gp = *(var_38h);
| if (s3 != 0) {
0x0003b240 beqz s3, 0x3b264 |
0x0003b244 lw t9, -0x76f8(gp) | t9 = sym.imp.strlen;
0x0003b248 move a0, s3 | a0 = s3;
0x0003b24c jalr t9 | t9 ();
0x0003b250 sltiu v0, v0, 8 | v0 = (v0 < 8) ? 1 : 0;
0x0003b254 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 == 0) {
0x0003b258 beqz v0, 0x3b290 | goto label_9;
| }
0x0003b25c lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0003b260 b 0x3b26c |
| }
| } else {
0x0003b264 move s3, zero | s3 = 0;
0x0003b268 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
| }
0x0003b26c move a0, s3 | a0 = s3;
0x0003b270 jalr t9 | t9 ();
0x0003b274 lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b278 lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x0003b27c lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
| /* str.12345678 */
0x0003b280 addiu a0, a0, -0x7fbc | a0 += -0x7fbc;
0x0003b284 jalr t9 | t9 ();
0x0003b288 lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b28c move s3, v0 | s3 = v0;
| label_9:
0x0003b290 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0003b294 move a0, s0 | a0 = s0;
0x0003b298 bal 0x23124 | sym_netd_device_get_name ();
0x0003b29c lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b2a0 move a0, v0 | a0 = v0;
0x0003b2a4 move a2, s3 | a2 = s3;
0x0003b2a8 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x0003b2ac addiu a1, zero, 0x42b | a1 = 0x42b;
0x0003b2b0 bal 0x4f38c | sym_netd_settings_store_device_value ();
0x0003b2b4 lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b2b8 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0003b2bc move a0, s3 | a0 = s3;
0x0003b2c0 jalr t9 | t9 ();
0x0003b2c4 lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b2c8 b 0x3b050 | goto label_1;
| label_8:
0x0003b2cc lb v0, 0x10(s3) | v0 = *((s3 + 16));
0x0003b2d0 lb a3, 3(s3) | a3 = *((s3 + 3));
0x0003b2d4 lb a2, 1(s3) | a2 = *((s3 + 1));
0x0003b2d8 lb a1, (s3) | a1 = *(s3);
0x0003b2dc sw v0, 0x30(sp) | *(var_30h) = v0;
0x0003b2e0 lb v0, 0xf(s3) | v0 = *((s3 + 15));
0x0003b2e4 lw a0, -0x7cfc(gp) | a0 = *(gp);
0x0003b2e8 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0003b2ec lb v0, 0xd(s3) | v0 = *((s3 + 13));
0x0003b2f0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x0003b2f4 sw v0, 0x28(sp) | *(var_28h) = v0;
0x0003b2f8 lb v0, 0xc(s3) | v0 = *((s3 + 12));
| /* str.axis__c_c_c_c_c_c_c_c_c_c_c_c */
0x0003b2fc addiu a0, a0, 0x7ff4 | a0 += 0x7ff4;
0x0003b300 sw v0, 0x24(sp) | *(var_24h) = v0;
0x0003b304 lb v0, 0xa(s3) | v0 = *((s3 + 10));
0x0003b308 sw v0, 0x20(sp) | *(var_20h) = v0;
0x0003b30c lb v0, 9(s3) | v0 = *((s3 + 9));
0x0003b310 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x0003b314 lb v0, 7(s3) | v0 = *((s3 + 7));
0x0003b318 sw v0, 0x18(sp) | *(var_18h) = v0;
0x0003b31c lb v0, 6(s3) | v0 = *((s3 + 6));
0x0003b320 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0003b324 lb v0, 4(s3) | v0 = *((s3 + 4));
0x0003b328 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003b32c jalr t9 | t9 ();
0x0003b330 move s4, v0 | s4 = v0;
0x0003b334 lw gp, 0x38(sp) | gp = *(var_38h);
0x0003b338 b 0x3b174 |
| } while (1);
| label_7:
0x0003b33c lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003b340 jalr t9 | t9 ();
0x0003b344 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x3c384 */
| #include <stdint.h>
|
; (fcn) sym.netd_device_wlan_station_set_rts_threshold () | void netd_device_wlan_station_set_rts_threshold () {
0x0003c384 lui gp, 6 |
0x0003c388 addiu gp, gp, -0x4744 |
0x0003c38c addu gp, gp, t9 | gp += t9;
0x0003c390 addiu sp, sp, -0x30 |
0x0003c394 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x0003c398 sw ra, 0x2c(sp) | *(var_2ch_2) = ra;
0x0003c39c sw s1, 0x28(sp) | *(var_28h_2) = s1;
0x0003c3a0 sw s0, 0x24(sp) | *(var_24h) = s0;
0x0003c3a4 lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
| if (a0 == 0) {
0x0003c3a8 beqz a0, 0x3c478 | goto label_0;
| }
0x0003c3ac lw v0, 0x34(a0) | v0 = *((a0 + 13));
0x0003c3b0 move s0, a0 | s0 = a0;
| if (v0 == 0) {
0x0003c3b4 beqz v0, 0x3c49c | goto label_1;
| }
0x0003c3b8 lw v0, 4(v0) | v0 = *((v0 + 1));
0x0003c3bc lw t9, -0x7cf4(gp) | t9 = sym.netd_device_wlan_station_get_rts_threshold;
| if (v0 == 0) {
0x0003c3c0 beqz v0, 0x3c4c8 | goto label_2;
| }
0x0003c3c4 move s1, a1 | s1 = a1;
0x0003c3c8 bal 0x3c258 | sym_netd_device_wlan_station_get_rts_threshold ();
0x0003c3cc lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == s1) {
0x0003c3d0 beq v0, s1, 0x3c524 | goto label_3;
| }
0x0003c3d4 sltiu v0, s1, 0x92c | v0 = (s1 < 0x92c) ? 1 : 0;
0x0003c3d8 lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
| if (v0 == 0) {
0x0003c3dc beqz v0, 0x3c4f4 | goto label_4;
| }
0x0003c3e0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x0003c3e4 move a1, s1 | a1 = s1;
| /* esilref: '&d' */
0x0003c3e8 addiu a0, a0, -0x78a8 | a0 += -0x78a8;
0x0003c3ec jalr t9 | t9 ();
0x0003c3f0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0003c3f4 move a0, s0 | a0 = s0;
0x0003c3f8 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0003c3fc move s1, v0 | s1 = v0;
0x0003c400 bal 0x23124 | sym_netd_device_get_name ();
0x0003c404 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0003c408 move a0, v0 | a0 = v0;
0x0003c40c move a2, s1 | a2 = s1;
0x0003c410 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x0003c414 addiu a1, zero, 0x425 | a1 = 0x425;
0x0003c418 bal 0x4f38c | sym_netd_settings_store_device_value ();
0x0003c41c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0003c420 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0003c424 move a0, s1 | a0 = s1;
0x0003c428 jalr t9 | t9 ();
0x0003c42c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0003c430 lw t9, -0x7a24(gp) | t9 = *(gp);
| /* fcn.0003b6ac */
0x0003c434 addiu t9, t9, -0x4954 | t9 += -0x4954;
0x0003c438 move a0, s0 | a0 = s0;
0x0003c43c bal 0x3b6ac | fcn_0003b6ac ();
0x0003c440 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0003c444 beqz v0, 0x3c53c |
| while (1) {
0x0003c448 lw v0, 0x34(s0) | v0 = *((s0 + 13));
0x0003c44c lw t9, -0x7a24(gp) | t9 = *(gp);
0x0003c450 addiu a1, zero, 0x425 | a1 = 0x425;
| /* fcn.0003b474 */
0x0003c454 addiu t9, t9, -0x4b8c | t9 += -0x4b8c;
0x0003c458 lw a0, 4(v0) | a0 = *((v0 + 1));
0x0003c45c bal 0x3b474 | fcn_0003b474 ();
0x0003c460 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x0003c464 lw s1, 0x28(sp) | s1 = *(var_28h_2);
0x0003c468 lw s0, 0x24(sp) | s0 = *(var_24h);
0x0003c46c addiu v0, zero, 1 | v0 = 1;
0x0003c470 addiu sp, sp, 0x30 |
0x0003c474 jr ra | return v0;
| label_0:
0x0003c478 lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x0003c47c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| /* esilref: 'dev != NULL' */
0x0003c480 addiu v0, v0, -0x7b74 | v0 += -0x7b74;
0x0003c484 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0003c488 sw v0, 0x10(sp) | *(var_10h_2) = v0;
| /* str.netd_device_wlan_station_set_rts_threshold */
0x0003c48c addiu a3, a3, -0x7608 | a3 += -0x7608;
0x0003c490 addiu a2, zero, 0x161 | a2 = 0x161;
| /* str.src_netd_device_wlan_station.c */
0x0003c494 addiu a1, a1, -0x7c30 | a1 += -0x7c30;
0x0003c498 jalr t9 | t9 ();
| label_1:
0x0003c49c lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
0x0003c4a0 lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x0003c4a4 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| /* str.dev__wlan___NULL */
0x0003c4a8 addiu v0, v0, -0x7a58 | v0 += -0x7a58;
0x0003c4ac lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0003c4b0 sw v0, 0x10(sp) | *(var_10h_2) = v0;
| /* str.netd_device_wlan_station_set_rts_threshold */
0x0003c4b4 addiu a3, a3, -0x7608 | a3 += -0x7608;
0x0003c4b8 addiu a2, zero, 0x162 | a2 = 0x162;
| /* str.src_netd_device_wlan_station.c */
0x0003c4bc addiu a1, a1, -0x7c30 | a1 += -0x7c30;
0x0003c4c0 move a0, zero | a0 = 0;
0x0003c4c4 jalr t9 | t9 ();
| label_2:
0x0003c4c8 lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
0x0003c4cc lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x0003c4d0 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| /* str.dev__wlan__station___NULL */
0x0003c4d4 addiu v0, v0, -0x7a44 | v0 += -0x7a44;
0x0003c4d8 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0003c4dc sw v0, 0x10(sp) | *(var_10h_2) = v0;
| /* str.netd_device_wlan_station_set_rts_threshold */
0x0003c4e0 addiu a3, a3, -0x7608 | a3 += -0x7608;
0x0003c4e4 addiu a2, zero, 0x163 | a2 = 0x163;
| /* str.src_netd_device_wlan_station.c */
0x0003c4e8 addiu a1, a1, -0x7c30 | a1 += -0x7c30;
0x0003c4ec move a0, zero | a0 = 0;
0x0003c4f0 jalr t9 | t9 ();
| label_4:
0x0003c4f4 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x0003c4f8 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x0003c4fc move a2, s1 | a2 = s1;
| /* str.Invalid_WLAN_station_RTS_threshold___d_ */
0x0003c500 addiu a1, a1, -0x78d0 | a1 += -0x78d0;
0x0003c504 addiu a0, zero, 3 | a0 = 3;
0x0003c508 bal 0x434d0 | sym_netd_log_esc ();
0x0003c50c lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x0003c510 lw s1, 0x28(sp) | s1 = *(var_28h_2);
0x0003c514 lw s0, 0x24(sp) | s0 = *(var_24h);
0x0003c518 move v0, zero | v0 = 0;
0x0003c51c addiu sp, sp, 0x30 |
0x0003c520 jr ra | return v0;
| label_3:
0x0003c524 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x0003c528 lw s1, 0x28(sp) | s1 = *(var_28h_2);
0x0003c52c lw s0, 0x24(sp) | s0 = *(var_24h);
0x0003c530 addiu v0, zero, 1 | v0 = 1;
0x0003c534 addiu sp, sp, 0x30 |
0x0003c538 jr ra | return v0;
0x0003c53c lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0003c540 move a0, s0 | a0 = s0;
0x0003c544 bal 0x23124 | sym_netd_device_get_name ();
0x0003c548 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0003c54c move a2, v0 | a2 = v0;
0x0003c550 addiu a0, zero, 3 | a0 = 3;
0x0003c554 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x0003c558 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.__s__Failed_to_set_RTS_threshold_ */
0x0003c55c addiu a1, a1, -0x78f4 | a1 += -0x78f4;
0x0003c560 bal 0x434d0 | sym_netd_log_esc ();
0x0003c564 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0003c568 b 0x3c448 |
| }
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x47220 */
| #include <stdint.h>
|
; (fcn) sym.netd_mngr_set_tcp_ecn_mode () | void netd_mngr_set_tcp_ecn_mode () {
0x00047220 lui gp, 5 |
0x00047224 addiu gp, gp, 0xa20 |
0x00047228 addu gp, gp, t9 | gp += t9;
0x0004722c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00047230 addiu sp, sp, -0x28 |
0x00047234 lw v0, 0x8e0(v0) | v0 = *((v0 + 568));
0x00047238 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0004723c sw ra, 0x24(sp) | *(var_24h) = ra;
0x00047240 sw s0, 0x20(sp) | *(var_20h) = s0;
0x00047244 lw t9, -0x7be4(gp) | t9 = sym.netd_mngr_get_tcp_ecn_mode;
| if (v0 != 0) {
0x00047248 beqz v0, 0x4731c |
0x0004724c move s0, a0 | s0 = a0;
0x00047250 bal 0x4735c | sym_netd_mngr_get_tcp_ecn_mode ();
0x00047254 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == s0) {
0x00047258 beq v0, s0, 0x47348 | goto label_0;
| }
0x0004725c sltiu v0, s0, 3 | v0 = (s0 < 3) ? 1 : 0;
0x00047260 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00047264 move a2, s0 | a2 = s0;
| if (v0 != 0) {
0x00047268 beqz v0, 0x472f8 |
0x0004726c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00047270 addiu a0, zero, 1 | a0 = 1;
| /* str.Setting_TCP_ECN:__d */
0x00047274 addiu a1, a1, -0x52d8 | a1 += -0x52d8;
0x00047278 bal 0x434d0 | sym_netd_log_esc ();
0x0004727c lw gp, 0x18(sp) | gp = *(var_18h);
0x00047280 move a1, s0 | a1 = s0;
0x00047284 lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x00047288 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* esilref: '&d' */
0x0004728c addiu a0, a0, -0x52c4 | a0 += -0x52c4;
0x00047290 jalr t9 | t9 ();
0x00047294 lw gp, 0x18(sp) | gp = *(var_18h);
0x00047298 move a1, v0 | a1 = v0;
0x0004729c addiu a0, zero, 0xc | a0 = 0xc;
0x000472a0 lw t9, -0x7ab4(gp) | t9 = sym.netd_settings_store_main_value;
0x000472a4 move s0, v0 | s0 = v0;
0x000472a8 bal 0x4f31c | sym_netd_settings_store_main_value ();
0x000472ac lw gp, 0x18(sp) | gp = *(var_18h);
0x000472b0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000472b4 move a0, s0 | a0 = s0;
0x000472b8 jalr t9 | t9 ();
0x000472bc lw gp, 0x18(sp) | gp = *(var_18h);
0x000472c0 lw t9, -0x7a24(gp) | t9 = *(gp);
| /* fcn.00044580 */
0x000472c4 addiu t9, t9, 0x4580 | t9 += 0x4580;
0x000472c8 bal 0x44580 | fcn_00044580 ();
0x000472cc nop |
0x000472d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000472d4 lw t9, -0x7a24(gp) | t9 = *(gp);
| /* fcn.00043990 */
0x000472d8 addiu t9, t9, 0x3990 | t9 += 0x3990;
0x000472dc addiu a0, zero, 0xc | a0 = 0xc;
0x000472e0 bal 0x43990 | fcn_00043990 ();
0x000472e4 lw ra, 0x24(sp) | ra = *(var_24h);
0x000472e8 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000472ec addiu v0, zero, 1 | v0 = 1;
0x000472f0 addiu sp, sp, 0x28 |
0x000472f4 jr ra | return v0;
| }
0x000472f8 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x000472fc addiu a0, zero, 2 | a0 = 2;
| /* str.Tried_to_set_invalid_TCP_ECN_mode:__d */
0x00047300 addiu a1, a1, -0x5300 | a1 += -0x5300;
0x00047304 bal 0x434d0 | sym_netd_log_esc ();
0x00047308 lw ra, 0x24(sp) | ra = *(var_24h);
0x0004730c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00047310 move v0, zero | v0 = 0;
0x00047314 addiu sp, sp, 0x28 |
0x00047318 jr ra | return v0;
| }
0x0004731c lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
0x00047320 lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x00047324 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| /* str._mngr___NULL */
0x00047328 addiu v0, v0, -0x5da0 | v0 += -0x5da0;
0x0004732c lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00047330 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.netd_mngr_set_tcp_ecn_mode */
0x00047334 addiu a3, a3, -0x503c | a3 += -0x503c;
0x00047338 addiu a2, zero, 0x6ae | a2 = 0x6ae;
| /* str.src_netd_mngr.c */
0x0004733c addiu a1, a1, -0x5db0 | a1 += -0x5db0;
0x00047340 move a0, zero | a0 = 0;
0x00047344 jalr t9 | t9 ();
| label_0:
0x00047348 lw ra, 0x24(sp) | ra = *(var_24h);
0x0004734c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00047350 addiu v0, zero, 1 | v0 = 1;
0x00047354 addiu sp, sp, 0x28 |
0x00047358 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x45ee8 */
| #include <stdint.h>
|
; (fcn) sym.netd_mngr_setup () | void netd_mngr_setup () {
0x00045ee8 lui gp, 5 |
0x00045eec addiu gp, gp, 0x1d58 |
0x00045ef0 addu gp, gp, t9 | gp += t9;
0x00045ef4 addiu sp, sp, -0x58 |
0x00045ef8 sw s3, 0x44(sp) | *(var_44h) = s3;
0x00045efc sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x00045f00 lw s3, -0x773c(gp) | s3 = *((gp - 7631));
0x00045f04 lw s1, -0x7fd0(gp) | s1 = *((gp - 8180));
0x00045f08 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00045f0c lw v1, (s3) | v1 = *(s3);
0x00045f10 lw v0, 0x8e0(s1) | v0 = *((s1 + 568));
0x00045f14 sw ra, 0x54(sp) | *(var_54h) = ra;
0x00045f18 sw s6, 0x50(sp) | *(var_50h) = s6;
0x00045f1c sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x00045f20 sw s4, 0x48(sp) | *(var_48h) = s4;
0x00045f24 sw s2, 0x40(sp) | *(var_40h) = s2;
0x00045f28 sw s0, 0x38(sp) | *(var_38h) = s0;
0x00045f2c sw zero, 0x24(sp) | *(var_24h) = 0;
0x00045f30 sw v1, 0x34(sp) | *(var_34h) = v1;
0x00045f34 lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
| if (v0 != 0) {
0x00045f38 beqz v0, 0x45f64 |
0x00045f3c lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x00045f40 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| /* str._mngr__NULL */
0x00045f44 addiu v0, v0, -0x567c | v0 += -0x567c;
0x00045f48 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00045f4c sw v0, 0x10(sp) | *(var_10h_2) = v0;
| /* str.netd_mngr_setup */
0x00045f50 addiu a3, a3, -0x5064 | a3 += -0x5064;
0x00045f54 addiu a2, zero, 0x493 | a2 = 0x493;
| /* str.src_netd_mngr.c */
0x00045f58 addiu a1, a1, -0x5db0 | a1 += -0x5db0;
0x00045f5c move a0, zero | a0 = 0;
0x00045f60 jalr t9 | t9 ();
| }
0x00045f64 lw t9, -0x783c(gp) | t9 = sym.imp.g_malloc0;
0x00045f68 addiu a0, zero, 0x18 | a0 = 0x18;
0x00045f6c jalr t9 | t9 ();
0x00045f70 lw gp, 0x18(sp) | gp = *(var_18h);
0x00045f74 lw t9, -0x79e0(gp) | t9 = sym.netd_mngr_bridge_setup;
0x00045f78 sw v0, 0x8e0(s1) | *((s1 + 568)) = v0;
0x00045f7c bal 0x485ec | sym_netd_mngr_bridge_setup ();
0x00045f80 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00045f84 beqz v0, 0x462e4 | goto label_5;
| }
| label_2:
0x00045f88 lw t9, -0x79dc(gp) | t9 = sym.netd_mngr_if_switch_setup;
0x00045f8c bal 0x49a94 | sym_netd_mngr_if_switch_setup ();
0x00045f90 nop |
0x00045f94 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00045f98 beqz v0, 0x462c8 | goto label_6;
| }
| label_1:
0x00045f9c lw t9, -0x79d8(gp) | t9 = sym.get_default_offset;
0x00045fa0 lw s4, -0x7bf4(gp) | s4 = *((gp - 7933));
0x00045fa4 bal 0x44a70 | sym_get_default_offset ();
0x00045fa8 nop |
0x00045fac lw gp, 0x18(sp) | gp = *(var_18h);
0x00045fb0 addiu a0, zero, 0x11 | a0 = 0x11;
0x00045fb4 lw t9, -0x7c8c(gp) | t9 = sym.netd_settings_get_main_value;
0x00045fb8 move s6, v0 | s6 = v0;
0x00045fbc bal 0x4f344 | sym_netd_settings_get_main_value ();
0x00045fc0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00045fc4 addiu a1, s4, -0x56dc | a1 = s4 + -0x56dc;
0x00045fc8 move a0, v0 | a0 = v0;
0x00045fcc lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00045fd0 move s0, v0 | s0 = v0;
0x00045fd4 jalr t9 | t9 ();
0x00045fd8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00045fdc beqz v0, 0x4626c | goto label_7;
| }
0x00045fe0 move s2, zero | s2 = 0;
| label_0:
0x00045fe4 lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x00045fe8 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00045fec move a1, s0 | a1 = s0;
| /* str.MAC_s_n */
0x00045ff0 addiu a0, a0, -0x5618 | a0 += -0x5618;
0x00045ff4 jalr t9 | t9 ();
0x00045ff8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00045ffc addiu a3, sp, 0x24 | a3 = sp + 0x24;
0x00046000 addiu a2, zero, 1 | a2 = 1;
0x00046004 lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x00046008 lw t9, -0x7ae0(gp) | t9 = sym.netd_util_write_to_file;
0x0004600c move a1, v0 | a1 = v0;
| /* str._etc_conf.d_mac */
0x00046010 addiu a0, a0, -0x5610 | a0 += -0x5610;
0x00046014 move s5, v0 | s5 = v0;
0x00046018 bal 0x53018 | sym_netd_util_write_to_file ();
0x0004601c lw gp, 0x18(sp) | gp = *(var_18h);
0x00046020 beqz v0, 0x46238 |
| while (1) {
0x00046024 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00046028 move a0, s5 | a0 = s5;
0x0004602c jalr t9 | t9 ();
0x00046030 lw gp, 0x18(sp) | gp = *(var_18h);
0x00046034 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00046038 move a0, s0 | a0 = s0;
0x0004603c jalr t9 | t9 ();
0x00046040 lw gp, 0x18(sp) | gp = *(var_18h);
0x00046044 lw t9, -0x7c8c(gp) | t9 = sym.netd_settings_get_main_value;
0x00046048 addiu a0, zero, 0x12 | a0 = 0x12;
0x0004604c bal 0x4f344 | sym_netd_settings_get_main_value ();
0x00046050 lw gp, 0x18(sp) | gp = *(var_18h);
0x00046054 move a0, v0 | a0 = v0;
0x00046058 move s0, v0 | s0 = v0;
0x0004605c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00046060 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
| /* esilref: '0.0.0.0' */
0x00046064 addiu a1, a1, -0x55d8 | a1 += -0x55d8;
0x00046068 jalr t9 | t9 ();
0x0004606c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00046070 bnez v0, 0x460bc |
0x00046074 addiu v0, zero, -1 | v0 = -1;
0x00046078 lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
| if (s6 == v0) {
0x0004607c beq s6, v0, 0x46300 | goto label_8;
| }
0x00046080 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00046084 move a1, s6 | a1 = s6;
| /* str.192.168.0._d */
0x00046088 addiu a0, a0, -0x55d0 | a0 += -0x55d0;
0x0004608c jalr t9 | t9 ();
0x00046090 lw gp, 0x18(sp) | gp = *(var_18h);
0x00046094 move a1, v0 | a1 = v0;
0x00046098 addiu a0, zero, 0x12 | a0 = 0x12;
0x0004609c lw t9, -0x7ab4(gp) | t9 = sym.netd_settings_store_main_value;
0x000460a0 move s5, v0 | s5 = v0;
0x000460a4 bal 0x4f31c | sym_netd_settings_store_main_value ();
0x000460a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000460ac lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000460b0 move a0, s5 | a0 = s5;
0x000460b4 jalr t9 | t9 ();
0x000460b8 lw gp, 0x18(sp) | gp = *(var_18h);
| }
| label_3:
0x000460bc lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000460c0 move a0, s0 | a0 = s0;
0x000460c4 jalr t9 | t9 ();
0x000460c8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000460cc lw t9, -0x7c8c(gp) | t9 = sym.netd_settings_get_main_value;
0x000460d0 addiu a0, zero, 4 | a0 = 4;
0x000460d4 bal 0x4f344 | sym_netd_settings_get_main_value ();
0x000460d8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000460dc addiu a1, s4, -0x56dc | a1 = s4 + -0x56dc;
0x000460e0 move a0, v0 | a0 = v0;
0x000460e4 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x000460e8 move s0, v0 | s0 = v0;
0x000460ec jalr t9 | t9 ();
0x000460f0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000460f4 bnez v0, 0x46114 |
0x000460f8 lw t9, -0x7a24(gp) | t9 = *(gp);
| if (s2 == 0) {
0x000460fc beqz s2, 0x4631c | goto label_9;
| }
| label_4:
0x00046100 lw t9, -0x7a24(gp) | t9 = *(gp);
| /* fcn.00044ee8 */
0x00046104 addiu t9, t9, 0x4ee8 | t9 += 0x4ee8;
0x00046108 move a0, s2 | a0 = s2;
0x0004610c bal 0x44ee8 | fcn_00044ee8 ();
0x00046110 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00046114 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00046118 move a0, s0 | a0 = s0;
0x0004611c jalr t9 | t9 ();
0x00046120 lw gp, 0x18(sp) | gp = *(var_18h);
0x00046124 addiu a0, sp, 0x28 | a0 = sp + 0x28;
0x00046128 sw zero, 0x30(sp) | *(var_30h) = 0;
0x0004612c lw s0, -0x7a24(gp) | s0 = *(gp);
0x00046130 lw v0, -0x7a24(gp) | v0 = *(gp);
0x00046134 lw t9, -0x79d4(gp) | t9 = sym.netd_monitor_register_callbacks;
0x00046138 addiu s0, s0, 0x55f4 | s0 += 0x55f4;
0x0004613c addiu v0, v0, 0x581c | v0 += 0x581c;
0x00046140 sw s0, 0x28(sp) | *(var_28h) = s0;
0x00046144 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00046148 lw s1, 0x8e0(s1) | s1 = *((s1 + 568));
0x0004614c bal 0x4bea0 | sym_netd_monitor_register_callbacks ();
0x00046150 lw gp, 0x18(sp) | gp = *(var_18h);
0x00046154 lw t9, -0x79d0(gp) | t9 = sym.netd_monitor_get_devices;
0x00046158 sw v0, 4(s1) | *((s1 + 1)) = v0;
0x0004615c bal 0x4c074 | sym_netd_monitor_get_devices ();
0x00046160 lw gp, 0x18(sp) | gp = *(var_18h);
0x00046164 move a0, v0 | a0 = v0;
0x00046168 move a2, zero | a2 = 0;
0x0004616c lw t9, -0x75a0(gp) | t9 = sym.imp.g_list_foreach;
0x00046170 move a1, s0 | a1 = s0;
0x00046174 move s1, v0 | s1 = v0;
0x00046178 jalr t9 | t9 ();
0x0004617c lw gp, 0x18(sp) | gp = *(var_18h);
0x00046180 lw t9, -0x75a8(gp) | t9 = sym.imp.g_list_free;
0x00046184 move a0, s1 | a0 = s1;
0x00046188 jalr t9 | t9 ();
0x0004618c lw gp, 0x18(sp) | gp = *(var_18h);
0x00046190 lw t9, -0x7a24(gp) | t9 = *(gp);
| /* fcn.00044418 */
0x00046194 addiu t9, t9, 0x4418 | t9 += 0x4418;
0x00046198 addiu a0, zero, 1 | a0 = 1;
0x0004619c bal 0x44418 | fcn_00044418 ();
0x000461a0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000461a4 lw t9, -0x7a24(gp) | t9 = *(gp);
| /* fcn.00044884 */
0x000461a8 addiu t9, t9, 0x4884 | t9 += 0x4884;
0x000461ac addiu a0, zero, 1 | a0 = 1;
0x000461b0 bal 0x44884 | fcn_00044884 ();
0x000461b4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000461b8 lw t9, -0x7a24(gp) | t9 = *(gp);
| /* fcn.00044950 */
0x000461bc addiu t9, t9, 0x4950 | t9 += 0x4950;
0x000461c0 bal 0x44950 | fcn_00044950 ();
0x000461c4 nop |
0x000461c8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000461cc lw t9, -0x7a24(gp) | t9 = *(gp);
| /* fcn.00044580 */
0x000461d0 addiu t9, t9, 0x4580 | t9 += 0x4580;
0x000461d4 bal 0x44580 | fcn_00044580 ();
0x000461d8 nop |
0x000461dc lw gp, 0x18(sp) | gp = *(var_18h);
0x000461e0 lw t9, -0x79cc(gp) | t9 = sym.netd_legacy_setter_setup;
0x000461e4 bal 0x431b8 | sym_netd_legacy_setter_setup ();
0x000461e8 nop |
0x000461ec lw gp, 0x18(sp) | gp = *(var_18h);
0x000461f0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000461f4 move a0, s2 | a0 = s2;
0x000461f8 jalr t9 | t9 ();
0x000461fc lw a0, 0x34(sp) | a0 = *(var_34h);
0x00046200 lw v1, (s3) | v1 = *(s3);
0x00046204 lw gp, 0x18(sp) | gp = *(var_18h);
0x00046208 addiu v0, zero, 1 | v0 = 1;
| if (a0 != v1) {
0x0004620c bne a0, v1, 0x46334 | goto label_10;
| }
0x00046210 lw ra, 0x54(sp) | ra = *(var_54h);
0x00046214 lw s6, 0x50(sp) | s6 = *(var_50h);
0x00046218 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x0004621c lw s4, 0x48(sp) | s4 = *(var_48h);
0x00046220 lw s3, 0x44(sp) | s3 = *(var_44h);
0x00046224 lw s2, 0x40(sp) | s2 = *(var_40h);
0x00046228 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x0004622c lw s0, 0x38(sp) | s0 = *(var_38h);
0x00046230 addiu sp, sp, 0x58 |
0x00046234 jr ra | return v0;
0x00046238 lw v0, 0x24(sp) | v0 = *(var_24h);
0x0004623c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00046240 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00046244 lw a2, 8(v0) | a2 = *((v0 + 2));
| /* str.Failed_to_update_legacy_mac_file:__s */
0x00046248 addiu a1, a1, -0x5600 | a1 += -0x5600;
0x0004624c addiu a0, zero, 2 | a0 = 2;
0x00046250 bal 0x434d0 | sym_netd_log_esc ();
0x00046254 lw gp, 0x18(sp) | gp = *(var_18h);
0x00046258 lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x0004625c lw a0, 0x24(sp) | a0 = *(var_24h);
0x00046260 jalr t9 | t9 ();
0x00046264 lw gp, 0x18(sp) | gp = *(var_18h);
0x00046268 b 0x46024 |
| }
| label_7:
0x0004626c lw t9, -0x7a24(gp) | t9 = *(gp);
| /* fcn.00043a28 */
0x00046270 addiu t9, t9, 0x3a28 | t9 += 0x3a28;
0x00046274 bal 0x43a28 | fcn_00043a28 ();
0x00046278 nop |
0x0004627c lw gp, 0x18(sp) | gp = *(var_18h);
0x00046280 move a0, s0 | a0 = s0;
0x00046284 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00046288 move s2, v0 | s2 = v0;
0x0004628c jalr t9 | t9 ();
0x00046290 lw gp, 0x18(sp) | gp = *(var_18h);
0x00046294 move a1, s6 | a1 = s6;
0x00046298 lw t9, -0x7a24(gp) | t9 = *(gp);
| /* fcn.00044cc4 */
0x0004629c addiu t9, t9, 0x4cc4 | t9 += 0x4cc4;
0x000462a0 move a0, s2 | a0 = s2;
0x000462a4 bal 0x44cc4 | fcn_00044cc4 ();
0x000462a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000462ac move a1, v0 | a1 = v0;
0x000462b0 addiu a0, zero, 0x11 | a0 = 0x11;
0x000462b4 lw t9, -0x7ab4(gp) | t9 = sym.netd_settings_store_main_value;
0x000462b8 move s0, v0 | s0 = v0;
0x000462bc bal 0x4f31c | sym_netd_settings_store_main_value ();
0x000462c0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000462c4 b 0x45fe4 | goto label_0;
| label_6:
0x000462c8 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x000462cc lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.Failed_to_set_up_network_interface_switcher */
0x000462d0 addiu a1, a1, -0x5644 | a1 += -0x5644;
0x000462d4 addiu a0, zero, 3 | a0 = 3;
0x000462d8 bal 0x434d0 | sym_netd_log_esc ();
0x000462dc lw gp, 0x18(sp) | gp = *(var_18h);
0x000462e0 b 0x45f9c | goto label_1;
| label_5:
0x000462e4 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x000462e8 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.Failed_to_set_up_network_bridge_manager */
0x000462ec addiu a1, a1, -0x566c | a1 += -0x566c;
0x000462f0 addiu a0, zero, 3 | a0 = 3;
0x000462f4 bal 0x434d0 | sym_netd_log_esc ();
0x000462f8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000462fc b 0x45f88 | goto label_2;
| label_8:
0x00046300 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00046304 lw t9, -0x7ab4(gp) | t9 = sym.netd_settings_store_main_value;
| /* str.192.168.0.90 */
0x00046308 addiu a1, a1, -0x55c0 | a1 += -0x55c0;
0x0004630c addiu a0, zero, 0x12 | a0 = 0x12;
0x00046310 bal 0x4f31c | sym_netd_settings_store_main_value ();
0x00046314 lw gp, 0x18(sp) | gp = *(var_18h);
0x00046318 b 0x460bc | goto label_3;
| /* fcn.00043a28 */
| label_9:
0x0004631c addiu t9, t9, 0x3a28 | t9 += 0x3a28;
0x00046320 bal 0x43a28 | fcn_00043a28 ();
0x00046324 nop |
0x00046328 move s2, v0 | s2 = v0;
0x0004632c lw gp, 0x18(sp) | gp = *(var_18h);
0x00046330 b 0x46100 | goto label_4;
| label_10:
0x00046334 lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x00046338 jalr t9 | t9 ();
0x0004633c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x50e94 */
| #include <stdint.h>
|
; (fcn) sym.netd_trigger_handler_setup () | void netd_trigger_handler_setup () {
0x00050e94 lui gp, 4 |
0x00050e98 addiu gp, gp, 0x6dac |
0x00050e9c addu gp, gp, t9 | gp += t9;
0x00050ea0 lw v0, -0x773c(gp) | v0 = *((gp - 7631));
0x00050ea4 addiu sp, sp, -0x90 |
0x00050ea8 lw t9, -0x783c(gp) | t9 = sym.imp.g_malloc0;
0x00050eac sw s1, 0x6c(sp) | *(var_6ch) = s1;
0x00050eb0 sw s0, 0x68(sp) | *(var_68h) = s0;
0x00050eb4 lw s1, -0x7bf4(gp) | s1 = *((gp - 7933));
0x00050eb8 lw s0, -0x7fd0(gp) | s0 = *((gp - 8180));
0x00050ebc sw v0, 0x40(sp) | *(var_40h) = v0;
0x00050ec0 lw v0, (v0) | v0 = *(v0);
0x00050ec4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00050ec8 sw ra, 0x8c(sp) | *(var_8ch) = ra;
0x00050ecc addiu a0, zero, 0x14 | a0 = 0x14;
0x00050ed0 sw fp, 0x88(sp) | *(var_88h) = fp;
0x00050ed4 sw s7, 0x84(sp) | *(var_84h) = s7;
0x00050ed8 sw s6, 0x80(sp) | *(var_80h) = s6;
0x00050edc sw s5, 0x7c(sp) | *(var_7ch) = s5;
0x00050ee0 sw s4, 0x78(sp) | *(var_78h) = s4;
0x00050ee4 sw s3, 0x74(sp) | *(var_74h) = s3;
0x00050ee8 sw s2, 0x70(sp) | *(var_70h) = s2;
0x00050eec sw s0, 0x28(sp) | *(var_28h) = s0;
0x00050ef0 sw s1, 0x24(sp) | *(var_24h) = s1;
0x00050ef4 sw v0, 0x64(sp) | *(var_64h) = v0;
0x00050ef8 sw zero, 0x58(sp) | *(var_58h) = 0;
0x00050efc jalr t9 | t9 ();
0x00050f00 nop |
0x00050f04 lw gp, 0x10(sp) | gp = *(var_10h);
0x00050f08 addiu a2, sp, 0x58 | a2 = sp + 0x58;
0x00050f0c move a1, zero | a1 = 0;
0x00050f10 lw t9, -0x7938(gp) | t9 = sym.imp.g_dir_open;
| /* str._usr_lib_netd_triggers.d */
0x00050f14 addiu a0, s1, -0x2860 | a0 = s1 + -0x2860;
0x00050f18 sw v0, 0x940(s0) | *((s0 + 592)) = v0;
0x00050f1c jalr t9 | t9 ();
0x00050f20 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00050f24 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00050f28 beqz v0, 0x5189c | goto label_14;
| }
0x00050f2c lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
0x00050f30 lw t9, -0x7500(gp) | t9 = sym.imp.g_dir_read_name;
| /* str.static */
0x00050f34 addiu v0, v0, -0x29e8 | v0 += -0x29e8;
0x00050f38 sw v0, 0x3c(sp) | *(var_3ch) = v0;
0x00050f3c lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
0x00050f40 lw a0, 0x1c(sp) | a0 = *(var_1ch);
| /* str.dhcp */
0x00050f44 addiu v0, v0, -0x29d0 | v0 += -0x29d0;
0x00050f48 sw v0, 0x44(sp) | *(var_44h) = v0;
0x00050f4c lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
| /* esilref: 'ra' */
0x00050f50 addiu v0, v0, -0x29d4 | v0 += -0x29d4;
0x00050f54 sw v0, 0x50(sp) | *(var_50h) = v0;
0x00050f58 jalr t9 | t9 ();
0x00050f5c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00050f60 beqz v0, 0x511a8 | goto label_15;
| }
| label_2:
0x00050f64 move a2, v0 | a2 = v0;
0x00050f68 lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x00050f6c lw v0, 0x24(sp) | v0 = *(var_24h);
0x00050f70 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00050f74 addiu a1, v0, -0x2860 | a1 = v0 + -0x2860;
| /* esilref: '&s/&s' */
0x00050f78 addiu a0, a0, -0x2824 | a0 += -0x2824;
0x00050f7c jalr t9 | t9 ();
0x00050f80 lw gp, 0x10(sp) | gp = *(var_10h);
0x00050f84 addiu a3, sp, 0x60 | a3 = sp + 0x60;
0x00050f88 move a2, zero | a2 = 0;
0x00050f8c lw t9, -0x785c(gp) | t9 = sym.imp.g_file_get_contents;
0x00050f90 addiu a1, sp, 0x5c | a1 = sp + 0x5c;
0x00050f94 move a0, v0 | a0 = v0;
0x00050f98 sw zero, 0x60(sp) | *(var_60h) = 0;
0x00050f9c move s2, v0 | s2 = v0;
0x00050fa0 jalr t9 | t9 ();
0x00050fa4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00050fa8 beqz v0, 0x51428 | goto label_16;
| }
0x00050fac lw v0, 0x5c(sp) | v0 = *(var_5ch);
0x00050fb0 lw t9, -0x783c(gp) | t9 = sym.imp.g_malloc0;
| if (v0 == 0) {
0x00050fb4 beqz v0, 0x51428 | goto label_16;
| }
0x00050fb8 addiu a0, zero, 0xc | a0 = 0xc;
0x00050fbc jalr t9 | t9 ();
0x00050fc0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00050fc4 lw a0, 0x5c(sp) | a0 = *(var_5ch);
0x00050fc8 addiu a2, zero, -1 | a2 = -1;
0x00050fcc lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00050fd0 lw t9, -0x7818(gp) | t9 = sym.imp.g_strsplit;
0x00050fd4 addiu a1, a1, -0x6ff4 | a1 += -0x6ff4;
0x00050fd8 move s4, v0 | s4 = v0;
0x00050fdc jalr t9 | t9 ();
0x00050fe0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00050fe4 move s5, v0 | s5 = v0;
0x00050fe8 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00050fec lw a0, 0x5c(sp) | a0 = *(var_5ch);
0x00050ff0 jalr t9 | t9 ();
0x00050ff4 lw a0, (s5) | a0 = *(s5);
0x00050ff8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (a0 == 0) {
0x00050ffc beqz a0, 0x5114c | goto label_17;
| }
0x00051000 lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
0x00051004 lw fp, -0x7bf4(gp) | fp = *((gp - 7933));
0x00051008 sw v0, 0x18(sp) | *(var_18h_2) = v0;
0x0005100c lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
0x00051010 lw s3, -0x7bf4(gp) | s3 = *((gp - 7933));
0x00051014 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00051018 move s1, s5 | s1 = s5;
0x0005101c sw s5, 0x20(sp) | *(var_20h_2) = s5;
0x00051020 b 0x510c0 | goto label_1;
| label_0:
0x00051024 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00051028 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
| if (a0 == 0) {
0x0005102c beqz a0, 0x5110c | goto label_18;
| }
0x00051030 addiu a1, s3, -0x2454 | a1 = s3 + -0x2454;
0x00051034 jalr t9 | t9 ();
0x00051038 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0005103c beqz v0, 0x5110c | goto label_18;
| }
0x00051040 lw v0, 0x18(sp) | v0 = *(var_18h_2);
0x00051044 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00051048 lw a0, (s0) | a0 = *(s0);
0x0005104c addiu a1, v0, -0x27d8 | a1 = v0 + -0x27d8;
0x00051050 jalr t9 | t9 ();
0x00051054 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00051058 bnez v0, 0x51320 | goto label_19;
| }
0x0005105c lw v0, 8(s4) | v0 = *((s4 + 2));
0x00051060 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| if (v0 != 0) {
0x00051064 beqz v0, 0x51090 |
0x00051068 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x0005106c move a2, s2 | a2 = s2;
| /* str.Multiple_commands_defined_in__s_ */
0x00051070 addiu a1, a1, -0x27d4 | a1 += -0x27d4;
0x00051074 addiu a0, zero, 2 | a0 = 2;
0x00051078 bal 0x434d0 | sym_netd_log_esc ();
0x0005107c lw gp, 0x10(sp) | gp = *(var_10h);
0x00051080 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00051084 lw a0, 8(s4) | a0 = *((s4 + 2));
0x00051088 jalr t9 | t9 ();
0x0005108c lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00051090 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
0x00051094 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00051098 jalr t9 | t9 ();
0x0005109c lw gp, 0x10(sp) | gp = *(var_10h);
0x000510a0 sw v0, 8(s4) | *((s4 + 2)) = v0;
| do {
| label_3:
0x000510a4 lw t9, -0x78d0(gp) | t9 = sym.imp.g_strfreev;
0x000510a8 addiu s1, s1, 4 | s1 += 4;
0x000510ac move a0, s0 | a0 = s0;
0x000510b0 jalr t9 | t9 ();
0x000510b4 lw a0, (s1) | a0 = *(s1);
0x000510b8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (a0 == 0) {
0x000510bc beqz a0, 0x51148 | goto label_20;
| }
| label_1:
0x000510c0 lw t9, -0x7818(gp) | t9 = sym.imp.g_strsplit;
0x000510c4 addiu a2, zero, 2 | a2 = 2;
0x000510c8 addiu a1, fp, -0x6ff0 | a1 = fp + -0x6ff0;
0x000510cc jalr t9 | t9 ();
0x000510d0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000510d4 lw a0, (s1) | a0 = *(s1);
0x000510d8 addiu a1, s3, -0x2454 | a1 = s3 + -0x2454;
0x000510dc lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x000510e0 move s0, v0 | s0 = v0;
0x000510e4 jalr t9 | t9 ();
0x000510e8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000510ec beqz v0, 0x510a4 |
| } while (v0 == 0);
0x000510f0 lw a0, (s0) | a0 = *(s0);
0x000510f4 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
| if (a0 == 0) {
0x000510f8 beqz a0, 0x5110c | goto label_18;
| }
0x000510fc addiu a1, s3, -0x2454 | a1 = s3 + -0x2454;
0x00051100 jalr t9 | t9 ();
0x00051104 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00051108 bnez v0, 0x51024 | goto label_0;
| }
| label_18:
0x0005110c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00051110 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00051114 lw a2, (s1) | a2 = *(s1);
0x00051118 move a3, s2 | a3 = s2;
| /* str.Invalid_line:__s_in__s */
0x0005111c addiu a1, a1, -0x27f4 | a1 += -0x27f4;
0x00051120 addiu a0, zero, 2 | a0 = 2;
0x00051124 bal 0x434d0 | sym_netd_log_esc ();
0x00051128 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005112c addiu s1, s1, 4 | s1 += 4;
0x00051130 lw t9, -0x78d0(gp) | t9 = sym.imp.g_strfreev;
0x00051134 move a0, s0 | a0 = s0;
0x00051138 jalr t9 | t9 ();
0x0005113c lw a0, (s1) | a0 = *(s1);
0x00051140 lw gp, 0x10(sp) | gp = *(var_10h);
| if (a0 != 0) {
0x00051144 bnez a0, 0x510c0 | goto label_1;
| }
| label_20:
0x00051148 lw s5, 0x20(sp) | s5 = *(var_20h_2);
| label_17:
0x0005114c lw t9, -0x78d0(gp) | t9 = sym.imp.g_strfreev;
0x00051150 move a0, s5 | a0 = s5;
0x00051154 jalr t9 | t9 ();
0x00051158 lw v0, 8(s4) | v0 = *((s4 + 2));
0x0005115c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00051160 beqz v0, 0x5182c | goto label_21;
| }
0x00051164 lw v0, 0x28(sp) | v0 = *(var_28h);
0x00051168 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0005116c move a1, s4 | a1 = s4;
0x00051170 lw s0, 0x940(v0) | s0 = *((v0 + 592));
0x00051174 lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x00051178 jalr t9 | t9 ();
0x0005117c lw gp, 0x10(sp) | gp = *(var_10h);
0x00051180 sw v0, 0x10(s0) | *((s0 + 4)) = v0;
| label_4:
0x00051184 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00051188 move a0, s2 | a0 = s2;
0x0005118c jalr t9 | t9 ();
0x00051190 lw gp, 0x10(sp) | gp = *(var_10h);
0x00051194 lw t9, -0x7500(gp) | t9 = sym.imp.g_dir_read_name;
0x00051198 lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x0005119c jalr t9 | t9 ();
0x000511a0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000511a4 bnez v0, 0x50f64 | goto label_2;
| }
| label_15:
0x000511a8 lw t9, -0x74e4(gp) | t9 = sym.imp.g_dir_close;
0x000511ac lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x000511b0 jalr t9 | t9 ();
0x000511b4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000511b8 lw s0, 0x28(sp) | s0 = *(var_28h);
0x000511bc lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x000511c0 lw t9, -0x7c08(gp) | t9 = sym.netd_mngr_register_callback;
0x000511c4 lw s1, 0x940(s0) | s1 = *((s0 + 592));
0x000511c8 addiu a0, a0, -0x3d0 | a0 += -0x3d0;
0x000511cc bal 0x475ac | sym_netd_mngr_register_callback ();
0x000511d0 lw s0, 0x940(s0) | s0 = *((s0 + 592));
0x000511d4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000511d8 sw v0, 0xc(s1) | *((s1 + 3)) = v0;
0x000511dc lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x000511e0 lw t9, -0x76a4(gp) | t9 = sym.imp.g_hash_table_new;
| if (v0 == 0) {
0x000511e4 beqz v0, 0x51864 | goto label_22;
| }
0x000511e8 lw a1, -0x74dc(gp) | a1 = *((gp - 7479));
0x000511ec lw a0, -0x7820(gp) | a0 = *((gp - 7688));
0x000511f0 jalr t9 | t9 ();
0x000511f4 nop |
0x000511f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000511fc lw s2, 0x28(sp) | s2 = *(var_28h);
0x00051200 sw v0, (s0) | *(s0) = v0;
0x00051204 lw t9, -0x76a4(gp) | t9 = sym.imp.g_hash_table_new;
0x00051208 lw a1, -0x74dc(gp) | a1 = *((gp - 7479));
0x0005120c lw a0, -0x7820(gp) | a0 = *((gp - 7688));
0x00051210 lw s1, 0x940(s2) | s1 = *((s2 + 592));
0x00051214 jalr t9 | t9 ();
0x00051218 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005121c sw v0, 4(s1) | *((s1 + 1)) = v0;
0x00051220 lw a1, -0x74dc(gp) | a1 = *((gp - 7479));
0x00051224 lw a0, -0x7820(gp) | a0 = *((gp - 7688));
0x00051228 lw t9, -0x76a4(gp) | t9 = sym.imp.g_hash_table_new;
0x0005122c lw s0, 0x940(s2) | s0 = *((s2 + 592));
0x00051230 jalr t9 | t9 ();
0x00051234 lw gp, 0x10(sp) | gp = *(var_10h);
0x00051238 lw t9, -0x7ba4(gp) | t9 = sym.netd_mngr_get_devices;
0x0005123c sw v0, 8(s0) | *((s0 + 2)) = v0;
0x00051240 bal 0x464b4 | sym_netd_mngr_get_devices ();
0x00051244 lw gp, 0x10(sp) | gp = *(var_10h);
0x00051248 move a0, v0 | a0 = v0;
0x0005124c lw t9, -0x789c(gp) | t9 = sym.imp.g_list_first;
0x00051250 move s2, v0 | s2 = v0;
0x00051254 jalr t9 | t9 ();
0x00051258 move s0, v0 | s0 = v0;
0x0005125c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00051260 beqz v0, 0x51288 | goto label_23;
| }
0x00051264 lw s1, -0x7fd8(gp) | s1 = *(gp);
| /* fcn.00050774 */
0x00051268 addiu s1, s1, 0x774 | s1 += 0x774;
| do {
0x0005126c lw a0, (s0) | a0 = *(s0);
0x00051270 move t9, s1 | t9 = s1;
0x00051274 move a1, zero | a1 = 0;
0x00051278 bal 0x50774 | fcn_00050774 ();
0x0005127c lw s0, 4(s0) | s0 = *((s0 + 1));
0x00051280 lw gp, 0x10(sp) | gp = *(var_10h);
0x00051284 bnez s0, 0x5126c |
| } while (s0 != 0);
| label_23:
0x00051288 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0005128c addiu a1, zero, 3 | a1 = 3;
0x00051290 move a0, zero | a0 = 0;
0x00051294 jalr t9 | t9 ();
0x00051298 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005129c move a0, v0 | a0 = v0;
0x000512a0 move a1, zero | a1 = 0;
0x000512a4 lw t9, -0x7fd8(gp) | t9 = *(gp);
| /* fcn.00050b18 */
0x000512a8 addiu t9, t9, 0xb18 | t9 += 0xb18;
0x000512ac move s0, v0 | s0 = v0;
0x000512b0 bal 0x50b18 | fcn_00050b18 ();
0x000512b4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000512b8 lw t9, -0x75a8(gp) | t9 = sym.imp.g_list_free;
0x000512bc move a0, s0 | a0 = s0;
0x000512c0 jalr t9 | t9 ();
0x000512c4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s2 == 0) {
0x000512c8 beqz s2, 0x51638 | goto label_24;
| }
0x000512cc lw t9, -0x75a8(gp) | t9 = sym.imp.g_list_free;
0x000512d0 move a0, s2 | a0 = s2;
0x000512d4 jalr t9 | t9 ();
0x000512d8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000512dc addiu v0, zero, 1 | v0 = 1;
| label_7:
0x000512e0 lw v1, 0x40(sp) | v1 = *(var_40h);
0x000512e4 lw a0, 0x64(sp) | a0 = *(var_64h);
0x000512e8 lw v1, (v1) | v1 = *(v1);
0x000512ec lw ra, 0x8c(sp) | ra = *(var_8ch);
| if (a0 != v1) {
0x000512f0 bne a0, v1, 0x518dc | goto label_25;
| }
0x000512f4 lw fp, 0x88(sp) | fp = *(var_88h);
0x000512f8 lw s7, 0x84(sp) | s7 = *(var_84h);
0x000512fc lw s6, 0x80(sp) | s6 = *(var_80h);
0x00051300 lw s5, 0x7c(sp) | s5 = *(var_7ch);
0x00051304 lw s4, 0x78(sp) | s4 = *(var_78h);
0x00051308 lw s3, 0x74(sp) | s3 = *(var_74h);
0x0005130c lw s2, 0x70(sp) | s2 = *(var_70h);
0x00051310 lw s1, 0x6c(sp) | s1 = *(var_6ch);
0x00051314 lw s0, 0x68(sp) | s0 = *(var_68h);
0x00051318 addiu sp, sp, 0x90 |
0x0005131c jr ra | return v0;
| label_19:
0x00051320 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x00051324 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00051328 lw a0, (s0) | a0 = *(s0);
0x0005132c addiu a1, v0, -0x27b0 | a1 = v0 + -0x27b0;
0x00051330 jalr t9 | t9 ();
0x00051334 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00051338 beqz v0, 0x516c4 | goto label_26;
| }
0x0005133c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00051340 lw s5, (s0) | s5 = *(s0);
0x00051344 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
| /* str.iface_name */
0x00051348 addiu a1, a1, -0x2918 | a1 += -0x2918;
0x0005134c move a0, s5 | a0 = s5;
0x00051350 jalr t9 | t9 ();
0x00051354 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00051358 beqz v0, 0x51460 |
0x0005135c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00051360 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
| /* str.addr_ip */
0x00051364 addiu a1, a1, -0x28e4 | a1 += -0x28e4;
0x00051368 move a0, s5 | a0 = s5;
0x0005136c jalr t9 | t9 ();
0x00051370 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00051374 beqz v0, 0x51614 | goto label_27;
| }
0x00051378 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x0005137c lw t9, -0x7558(gp) | t9 = *((gp - 7510));
| /* str.addr_family */
0x00051380 addiu a1, a1, -0x290c | a1 += -0x290c;
0x00051384 move a0, s5 | a0 = s5;
0x00051388 jalr t9 | t9 ();
0x0005138c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00051390 beqz v0, 0x5181c | goto label_28;
| }
0x00051394 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00051398 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
| /* str.addr_origin */
0x0005139c addiu a1, a1, -0x2900 | a1 += -0x2900;
0x000513a0 move a0, s5 | a0 = s5;
0x000513a4 jalr t9 | t9 ();
0x000513a8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000513ac beqz v0, 0x51640 | goto label_29;
| }
0x000513b0 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x000513b4 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
| /* esilref: 'hostname' */
0x000513b8 addiu a1, a1, -0x20c8 | a1 += -aav.0x000020c8;
0x000513bc move a0, s5 | a0 = s5;
0x000513c0 jalr t9 | t9 ();
0x000513c4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000513c8 beqz v0, 0x51894 | goto label_30;
| }
0x000513cc lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x000513d0 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
| /* str.device_ready */
0x000513d4 addiu a1, a1, -0x28f4 | a1 += -0x28f4;
0x000513d8 move a0, s5 | a0 = s5;
0x000513dc jalr t9 | t9 ();
0x000513e0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000513e4 beqz v0, 0x5185c | goto label_31;
| }
0x000513e8 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x000513ec lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x000513f0 move a2, s5 | a2 = s5;
| /* str.Unknown_trigger_property:__s */
0x000513f4 addiu a1, a1, -0x2770 | a1 += -0x2770;
0x000513f8 addiu a0, zero, 2 | a0 = 2;
0x000513fc bal 0x434d0 | sym_netd_log_esc ();
0x00051400 lw gp, 0x10(sp) | gp = *(var_10h);
0x00051404 lw a2, (s0) | a2 = *(s0);
0x00051408 move a3, s2 | a3 = s2;
0x0005140c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00051410 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.Unknown_property:__s_in__s */
0x00051414 addiu a1, a1, -0x2750 | a1 += -0x2750;
0x00051418 addiu a0, zero, 2 | a0 = 2;
0x0005141c bal 0x434d0 | sym_netd_log_esc ();
0x00051420 lw gp, 0x10(sp) | gp = *(var_10h);
0x00051424 b 0x510a4 | goto label_3;
| label_16:
0x00051428 lw v0, 0x60(sp) | v0 = *(var_60h);
0x0005142c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00051430 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00051434 lw a3, 8(v0) | a3 = *((v0 + 2));
0x00051438 move a2, s2 | a2 = s2;
| /* str.Failed_to_read_contents_from__s___s_ */
0x0005143c addiu a1, a1, -0x281c | a1 += -0x281c;
0x00051440 addiu a0, zero, 3 | a0 = 3;
0x00051444 bal 0x434d0 | sym_netd_log_esc ();
0x00051448 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005144c lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x00051450 lw a0, 0x60(sp) | a0 = *(var_60h);
0x00051454 jalr t9 | t9 ();
0x00051458 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005145c b 0x51184 | goto label_4;
| }
0x00051460 addiu s5, zero, 0x3e8 | s5 = 0x3e8;
| label_8:
0x00051464 lw v0, 4(s4) | v0 = *((s4 + 1));
0x00051468 lw s6, 4(s0) | s6 = *((s0 + 1));
0x0005146c sw v0, 0x30(sp) | *(var_30h) = v0;
| if (s6 == 0) {
0x00051470 beqz s6, 0x51628 | goto label_32;
| }
| label_6:
0x00051474 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00051478 addiu a1, s3, -0x2454 | a1 = s3 + -0x2454;
0x0005147c move a0, s6 | a0 = s6;
0x00051480 jalr t9 | t9 ();
0x00051484 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00051488 beqz v0, 0x51628 | goto label_32;
| }
0x0005148c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00051490 lw t9, -0x7818(gp) | t9 = sym.imp.g_strsplit;
0x00051494 move a0, s6 | a0 = s6;
0x00051498 addiu a2, zero, -1 | a2 = -1;
0x0005149c addiu a1, a1, -0x27a8 | a1 += -0x27a8;
0x000514a0 jalr t9 | t9 ();
0x000514a4 lw s6, (v0) | s6 = *(v0);
0x000514a8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000514ac move s7, v0 | s7 = v0;
0x000514b0 sw v0, 0x34(sp) | *(var_34h) = v0;
| if (s6 == 0) {
0x000514b4 beqz s6, 0x515f8 | goto label_33;
| }
0x000514b8 lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
0x000514bc sw s0, 0x38(sp) | *(var_38h) = s0;
0x000514c0 sw v0, 0x54(sp) | *(var_54h) = v0;
0x000514c4 lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
0x000514c8 move s0, s7 | s0 = s7;
0x000514cc sw v0, 0x4c(sp) | *(var_4ch) = v0;
0x000514d0 sw s1, 0x48(sp) | *(var_48h) = s1;
0x000514d4 lw s7, 0x30(sp) | s7 = *(var_30h);
0x000514d8 b 0x51530 |
| while (s5 != v0) {
| label_9:
0x000514dc lw t9, -0x783c(gp) | t9 = sym.imp.g_malloc0;
0x000514e0 addiu a0, zero, 8 | a0 = 8;
0x000514e4 jalr t9 | t9 ();
0x000514e8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000514ec move a0, s6 | a0 = s6;
0x000514f0 sw s5, (v0) | *(v0) = s5;
0x000514f4 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
0x000514f8 move s1, v0 | s1 = v0;
0x000514fc jalr t9 | t9 ();
0x00051500 lw gp, 0x10(sp) | gp = *(var_10h);
0x00051504 move a0, s7 | a0 = s7;
0x00051508 sw v0, 4(s1) | *((s1 + 1)) = v0;
0x0005150c lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x00051510 move a1, s1 | a1 = s1;
0x00051514 jalr t9 | t9 ();
0x00051518 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005151c move s7, v0 | s7 = v0;
| label_11:
0x00051520 addiu s0, s0, 4 | s0 += 4;
0x00051524 lw s6, (s0) | s6 = *(s0);
| if (s6 == 0) {
0x00051528 beql s6, zero, 0x515f0 | goto label_34;
| }
0x0005152c lw s0, 0x38(sp) | s0 = *(var_38h);
| label_5:
0x00051530 addiu v0, zero, 0x7d2 | v0 = 0x7d2;
0x00051534 addiu v0, zero, 0x7d6 | v0 = 0x7d6;
| if (s5 == v0) {
0x00051538 beq s5, v0, 0x51650 | goto label_35;
| }
0x0005153c lw s6, (s0) | s6 = *(s0);
0x00051540 bne s5, v0, 0x514dc |
| }
0x00051544 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00051548 lw a1, 0x3c(sp) | a1 = *(var_3ch);
0x0005154c move a0, s6 | a0 = s6;
0x00051550 jalr t9 | t9 ();
0x00051554 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00051558 beqz v0, 0x51648 | goto label_10;
| }
0x0005155c lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00051560 lw a1, 0x44(sp) | a1 = *(var_44h);
0x00051564 move a0, s6 | a0 = s6;
0x00051568 jalr t9 | t9 ();
0x0005156c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00051570 beqz v0, 0x51648 | goto label_10;
| }
0x00051574 lw v0, 0x54(sp) | v0 = *(var_54h);
0x00051578 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x0005157c addiu a1, v0, -0x29e0 | a1 = v0 + -0x29e0;
0x00051580 move a0, s6 | a0 = s6;
0x00051584 jalr t9 | t9 ();
0x00051588 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0005158c beqz v0, 0x51648 | goto label_10;
| }
0x00051590 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00051594 lw a1, 0x50(sp) | a1 = *(var_50h);
0x00051598 move a0, s6 | a0 = s6;
0x0005159c jalr t9 | t9 ();
0x000515a0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000515a4 beqz v0, 0x51648 | goto label_10;
| }
0x000515a8 lw v0, 0x4c(sp) | v0 = *(var_4ch);
0x000515ac lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x000515b0 move a2, s6 | a2 = s6;
0x000515b4 addiu a1, v0, -0x26e8 | a1 = v0 + -0x26e8;
0x000515b8 addiu a0, zero, 2 | a0 = 2;
0x000515bc bal 0x434d0 | sym_netd_log_esc ();
0x000515c0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000515c4 lw a2, (s0) | a2 = *(s0);
0x000515c8 addiu s0, s0, 4 | s0 += 4;
0x000515cc lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x000515d0 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.Unknown_address_origin_value:__s */
0x000515d4 addiu a1, a1, -0x26c4 | a1 += -0x26c4;
0x000515d8 addiu a0, zero, 2 | a0 = 2;
0x000515dc bal 0x434d0 | sym_netd_log_esc ();
0x000515e0 lw s6, (s0) | s6 = *(s0);
0x000515e4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s6 != 0) {
0x000515e8 bnez s6, 0x51530 | goto label_5;
| }
0x000515ec lw s0, 0x38(sp) | s0 = *(var_38h);
| label_34:
0x000515f0 lw s1, 0x48(sp) | s1 = *(var_48h);
0x000515f4 sw s7, 0x30(sp) | *(var_30h) = s7;
| label_33:
0x000515f8 lw t9, -0x78d0(gp) | t9 = sym.imp.g_strfreev;
0x000515fc lw a0, 0x34(sp) | a0 = *(var_34h);
0x00051600 jalr t9 | t9 ();
0x00051604 lw v0, 0x30(sp) | v0 = *(var_30h);
0x00051608 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005160c sw v0, 4(s4) | *((s4 + 1)) = v0;
0x00051610 b 0x510a4 | goto label_3;
| label_27:
0x00051614 lw v0, 4(s4) | v0 = *((s4 + 1));
0x00051618 lw s6, 4(s0) | s6 = *((s0 + 1));
0x0005161c addiu s5, zero, 0x7d0 | s5 = aav.0x000007d0;
0x00051620 sw v0, 0x30(sp) | *(var_30h) = v0;
| if (s6 != 0) {
0x00051624 bnez s6, 0x51474 | goto label_6;
| }
| label_32:
0x00051628 sw zero, 0x30(sp) | *(var_30h) = 0;
0x0005162c lw v0, 0x30(sp) | v0 = *(var_30h);
0x00051630 sw v0, 4(s4) | *((s4 + 1)) = v0;
0x00051634 b 0x510a4 | goto label_3;
| label_24:
0x00051638 addiu v0, zero, 1 | v0 = 1;
0x0005163c b 0x512e0 | goto label_7;
| label_29:
0x00051640 addiu s5, zero, 0x7d6 | s5 = 0x7d6;
0x00051644 b 0x51464 | goto label_8;
| do {
| label_10:
0x00051648 lw s6, (s0) | s6 = *(s0);
0x0005164c b 0x514dc | goto label_9;
| label_35:
0x00051650 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00051654 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
| /* str.inet4 */
0x00051658 addiu a1, a1, -0x29c8 | a1 += -0x29c8;
0x0005165c move a0, s6 | a0 = s6;
0x00051660 jalr t9 | t9 ();
0x00051664 lw gp, 0x10(sp) | gp = *(var_10h);
0x00051668 beqz v0, 0x51648 |
| } while (v0 == 0);
0x0005166c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00051670 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
| /* str.inet6 */
0x00051674 addiu a1, a1, -0x29c0 | a1 += -0x29c0;
0x00051678 move a0, s6 | a0 = s6;
0x0005167c jalr t9 | t9 ();
0x00051680 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00051684 beqz v0, 0x51648 | goto label_10;
| }
0x00051688 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x0005168c lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00051690 move a2, s6 | a2 = s6;
| /* str.Unknown_trigger_address_family:__s */
0x00051694 addiu a1, a1, -0x2730 | a1 += -0x2730;
0x00051698 addiu a0, zero, 2 | a0 = 2;
0x0005169c bal 0x434d0 | sym_netd_log_esc ();
0x000516a0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000516a4 lw a2, (s0) | a2 = *(s0);
0x000516a8 addiu a0, zero, 2 | a0 = 2;
0x000516ac lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x000516b0 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.Unknown_address_family_value:__s */
0x000516b4 addiu a1, a1, -0x270c | a1 += -0x270c;
0x000516b8 bal 0x434d0 | sym_netd_log_esc ();
0x000516bc lw gp, 0x10(sp) | gp = *(var_10h);
0x000516c0 b 0x51520 | goto label_11;
| label_26:
0x000516c4 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x000516c8 lw t9, -0x7818(gp) | t9 = sym.imp.g_strsplit;
0x000516cc lw a0, 4(s0) | a0 = *((s0 + 1));
0x000516d0 addiu a2, zero, -1 | a2 = -1;
0x000516d4 addiu a1, a1, -0x27a8 | a1 += -0x27a8;
0x000516d8 jalr t9 | t9 ();
0x000516dc lw s7, (v0) | s7 = *(v0);
0x000516e0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000516e4 sw v0, 0x4c(sp) | *(var_4ch) = v0;
| if (s7 == 0) {
0x000516e8 beqz s7, 0x517f8 | goto label_36;
| }
0x000516ec lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
0x000516f0 lw s6, -0x7bf4(gp) | s6 = *((gp - 7933));
0x000516f4 sw v0, 0x54(sp) | *(var_54h) = v0;
0x000516f8 lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
0x000516fc lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x00051700 sw v0, 0x34(sp) | *(var_34h) = v0;
0x00051704 lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
| /* str.addr_removed */
0x00051708 addiu v0, v0, -0x2928 | v0 += -0x2928;
0x0005170c sw v0, 0x38(sp) | *(var_38h) = v0;
0x00051710 lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
| /* str.hostname_changed */
0x00051714 addiu v0, v0, -0x2954 | v0 += -0x2954;
0x00051718 sw v0, 0x48(sp) | *(var_48h) = v0;
0x0005171c lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
| /* str.Unknown_trigger_event:__s */
0x00051720 addiu v0, v0, -0x27a4 | v0 += -0x27a4;
0x00051724 sw v0, 0x30(sp) | *(var_30h) = v0;
0x00051728 b 0x517bc |
| while (v0 != 0) {
0x0005172c lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00051730 lw a1, 0x38(sp) | a1 = *(var_38h);
0x00051734 move a0, s7 | a0 = s7;
0x00051738 jalr t9 | t9 ();
0x0005173c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00051740 beqz v0, 0x5180c | goto label_37;
| }
0x00051744 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00051748 lw a1, 0x48(sp) | a1 = *(var_48h);
0x0005174c move a0, s7 | a0 = s7;
0x00051750 jalr t9 | t9 ();
0x00051754 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00051758 beqz v0, 0x51814 | goto label_38;
| }
0x0005175c lw v0, 0x54(sp) | v0 = *(var_54h);
0x00051760 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00051764 addiu a1, v0, -0x2940 | a1 = v0 + -0x2940;
0x00051768 move a0, s7 | a0 = s7;
0x0005176c jalr t9 | t9 ();
0x00051770 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00051774 beqz v0, 0x51824 | goto label_39;
| }
0x00051778 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x0005177c lw a1, 0x30(sp) | a1 = *(var_30h);
0x00051780 move a2, s7 | a2 = s7;
0x00051784 addiu a0, zero, 2 | a0 = 2;
0x00051788 bal 0x434d0 | sym_netd_log_esc ();
0x0005178c lw gp, 0x10(sp) | gp = *(var_10h);
0x00051790 lw v0, 0x34(sp) | v0 = *(var_34h);
0x00051794 lw a2, (s5) | a2 = *(s5);
0x00051798 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x0005179c addiu s5, s5, 4 | s5 += 4;
0x000517a0 move a3, s2 | a3 = s2;
0x000517a4 addiu a1, v0, -0x2788 | a1 = v0 + -0x2788;
0x000517a8 addiu a0, zero, 2 | a0 = 2;
0x000517ac bal 0x434d0 | sym_netd_log_esc ();
0x000517b0 lw s7, (s5) | s7 = *(s5);
0x000517b4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s7 == 0) {
0x000517b8 beqz s7, 0x517f8 | goto label_36;
| }
| label_12:
0x000517bc lw t9, -0x7558(gp) | t9 = *((gp - 7510));
| /* str.addr_added */
0x000517c0 addiu a1, s6, -0x2960 | a1 = s6 + -0x2960;
0x000517c4 move a0, s7 | a0 = s7;
0x000517c8 jalr t9 | t9 ();
0x000517cc lw gp, 0x10(sp) | gp = *(var_10h);
0x000517d0 bnez v0, 0x5172c |
| }
0x000517d4 addiu a1, zero, 1 | a1 = 1;
| label_13:
0x000517d8 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x000517dc lw a0, (s4) | a0 = *(s4);
0x000517e0 addiu s5, s5, 4 | s5 += 4;
0x000517e4 jalr t9 | t9 ();
0x000517e8 lw s7, (s5) | s7 = *(s5);
0x000517ec lw gp, 0x10(sp) | gp = *(var_10h);
0x000517f0 sw v0, (s4) | *(s4) = v0;
| if (s7 != 0) {
0x000517f4 bnez s7, 0x517bc | goto label_12;
| }
| label_36:
0x000517f8 lw t9, -0x78d0(gp) | t9 = sym.imp.g_strfreev;
0x000517fc lw a0, 0x4c(sp) | a0 = *(var_4ch);
0x00051800 jalr t9 | t9 ();
0x00051804 lw gp, 0x10(sp) | gp = *(var_10h);
0x00051808 b 0x510a4 | goto label_3;
| label_37:
0x0005180c addiu a1, zero, 2 | a1 = 2;
0x00051810 b 0x517d8 | goto label_13;
| label_38:
0x00051814 addiu a1, zero, 3 | a1 = 3;
0x00051818 b 0x517d8 | goto label_13;
| label_28:
0x0005181c addiu s5, zero, 0x7d2 | s5 = 0x7d2;
0x00051820 b 0x51464 | goto label_8;
| label_39:
0x00051824 addiu a1, zero, 4 | a1 = 4;
0x00051828 b 0x517d8 | goto label_13;
| label_21:
0x0005182c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00051830 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.One_cmd_needs_to_be_defined_ */
0x00051834 addiu a1, a1, -0x26a0 | a1 += -0x26a0;
0x00051838 addiu a0, zero, 2 | a0 = 2;
0x0005183c bal 0x434d0 | sym_netd_log_esc ();
0x00051840 lw gp, 0x10(sp) | gp = *(var_10h);
0x00051844 lw t9, -0x7fd8(gp) | t9 = *(gp);
| /* fcn.0004fb50 */
0x00051848 addiu t9, t9, -0x4b0 | t9 += -0x4b0;
0x0005184c move a0, s4 | a0 = s4;
0x00051850 bal 0x4fb50 | fcn_0004fb50 ();
0x00051854 lw gp, 0x10(sp) | gp = *(var_10h);
0x00051858 b 0x51184 | goto label_4;
| label_31:
0x0005185c addiu s5, zero, 0x3f2 | s5 = 0x3f2;
0x00051860 b 0x51464 | goto label_8;
| label_22:
0x00051864 lw a1, -0x7cfc(gp) | a1 = *(gp);
0x00051868 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
| /* str.Failed_to_register_callbacks_for_manager_net */
0x0005186c addiu a1, a1, 0x1128 | a1 += 0x1128;
0x00051870 addiu a0, zero, 3 | a0 = 3;
0x00051874 bal 0x434d0 | sym_netd_log_esc ();
0x00051878 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005187c lw t9, -0x7f8c(gp) | t9 = sym.netd_trigger_handler_teardown;
0x00051880 bal 0x50c40 | sym_netd_trigger_handler_teardown ();
0x00051884 nop |
0x00051888 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005188c move v0, zero | v0 = 0;
0x00051890 b 0x512e0 | goto label_7;
| label_30:
0x00051894 addiu s5, zero, 3 | s5 = 3;
0x00051898 b 0x51464 | goto label_8;
| label_14:
0x0005189c lw v0, 0x58(sp) | v0 = *(var_58h);
0x000518a0 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x000518a4 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x000518a8 lw a3, 8(v0) | a3 = *((v0 + 2));
0x000518ac lw v0, 0x24(sp) | v0 = *(var_24h);
| /* str.Failed_to_read_drop_dir__s:__s */
0x000518b0 addiu a1, a1, -0x2844 | a1 += -0x2844;
0x000518b4 addiu a2, v0, -0x2860 | a2 = v0 + -0x2860;
0x000518b8 addiu a0, zero, 3 | a0 = 3;
0x000518bc bal 0x434d0 | sym_netd_log_esc ();
0x000518c0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000518c4 lw t9, -0x78c8(gp) | t9 = sym.imp.g_error_free;
0x000518c8 lw a0, 0x58(sp) | a0 = *(var_58h);
0x000518cc jalr t9 | t9 ();
0x000518d0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000518d4 move v0, zero | v0 = 0;
0x000518d8 b 0x512e0 | goto label_7;
| label_25:
0x000518dc lw t9, -0x77d4(gp) | t9 = sym.imp.__stack_chk_fail;
0x000518e0 jalr t9 | t9 ();
0x000518e4 nop |
0x000518e8 nop |
0x000518ec nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x538f8 */
| #include <stdint.h>
|
; (fcn) sym.netd_util_get_shellparsed_value () | void netd_util_get_shellparsed_value () {
0x000538f8 lui gp, 4 |
0x000538fc addiu gp, gp, 0x4348 |
0x00053900 addu gp, gp, t9 | gp += t9;
0x00053904 addiu sp, sp, -0x38 |
0x00053908 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x0005390c sw ra, 0x34(sp) | *(var_24h) = ra;
0x00053910 sw s3, 0x30(sp) | *(var_20h) = s3;
0x00053914 sw s2, 0x2c(sp) | *(var_2ch) = s2;
0x00053918 sw s1, 0x28(sp) | *(var_18h) = s1;
0x0005391c sw s0, 0x24(sp) | *(var_24h_2) = s0;
0x00053920 lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
| if (a0 == 0) {
0x00053924 beqz a0, 0x53b38 | goto label_2;
| }
0x00053928 move s2, a1 | s2 = a1;
| if (a1 == 0) {
0x0005392c beqz a1, 0x53b5c | goto label_3;
| }
0x00053930 move s0, a0 | s0 = a0;
0x00053934 lw a0, -0x7bf4(gp) | a0 = *((gp - 7933));
0x00053938 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* esilref: '&s=' */
0x0005393c addiu a0, a0, -0x1fbc | a0 += -0x1fbc;
0x00053940 jalr t9 | t9 ();
0x00053944 lw a0, (s0) | a0 = *(s0);
0x00053948 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0005394c move s1, v0 | s1 = v0;
| if (a0 != 0) {
0x00053950 bnez a0, 0x5396c | goto label_4;
| }
0x00053954 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00053958 b 0x53b0c | goto label_5;
| do {
0x0005395c addiu s0, s0, 4 | s0 += 4;
0x00053960 lw a0, (s0) | a0 = *(s0);
0x00053964 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
| if (a0 == 0) {
0x00053968 beqz a0, 0x53b0c | goto label_5;
| }
| label_4:
0x0005396c lw t9, -0x7794(gp) | t9 = sym.imp.g_str_has_prefix;
0x00053970 move a1, s1 | a1 = s1;
0x00053974 jalr t9 | t9 ();
0x00053978 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0005397c beqz v0, 0x5395c |
| } while (v0 == 0);
0x00053980 lw t9, -0x7818(gp) | t9 = sym.imp.g_strsplit;
0x00053984 lw a0, (s0) | a0 = *(s0);
0x00053988 addiu a2, zero, 2 | a2 = 2;
0x0005398c move a1, s1 | a1 = s1;
0x00053990 jalr t9 | t9 ();
0x00053994 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00053998 move a0, v0 | a0 = v0;
0x0005399c lw t9, -0x7634(gp) | t9 = sym.imp.g_strv_length;
0x000539a0 move s3, v0 | s3 = v0;
0x000539a4 jalr t9 | t9 ();
0x000539a8 addiu v1, zero, 2 | v1 = 2;
0x000539ac lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == v1) {
0x000539b0 beq v0, v1, 0x53a14 | goto label_6;
| }
0x000539b4 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x000539b8 lw a3, (s0) | a3 = *(s0);
0x000539bc lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x000539c0 move a2, s2 | a2 = s2;
| /* str.Lines_contained__s_but_no_value____s_ */
0x000539c4 addiu a1, a1, -0x1fb8 | a1 += -0x1fb8;
0x000539c8 addiu a0, zero, 3 | a0 = 3;
0x000539cc bal 0x434d0 | sym_netd_log_esc ();
0x000539d0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000539d4 move a0, s3 | a0 = s3;
0x000539d8 lw t9, -0x78d0(gp) | t9 = sym.imp.g_strfreev;
0x000539dc move s0, zero | s0 = 0;
0x000539e0 jalr t9 | t9 ();
0x000539e4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000539e8 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000539ec move a0, s1 | a0 = s1;
0x000539f0 jalr t9 | t9 ();
| do {
| label_0:
0x000539f4 lw ra, 0x34(sp) | ra = *(var_24h);
| label_1:
0x000539f8 move v0, s0 | v0 = s0;
0x000539fc lw s3, 0x30(sp) | s3 = *(var_20h);
0x00053a00 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x00053a04 lw s1, 0x28(sp) | s1 = *(var_18h);
0x00053a08 lw s0, 0x24(sp) | s0 = *(var_24h_2);
0x00053a0c addiu sp, sp, 0x38 |
0x00053a10 jr ra | return v0;
| label_6:
0x00053a14 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
0x00053a18 lw a0, 4(s3) | a0 = *((s3 + 1));
0x00053a1c jalr t9 | t9 ();
0x00053a20 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00053a24 move a0, s3 | a0 = s3;
0x00053a28 lw t9, -0x78d0(gp) | t9 = sym.imp.g_strfreev;
0x00053a2c move s0, v0 | s0 = v0;
0x00053a30 jalr t9 | t9 ();
0x00053a34 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00053a38 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00053a3c move a0, s1 | a0 = s1;
0x00053a40 jalr t9 | t9 ();
0x00053a44 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00053a48 beqz s0, 0x539f4 |
| } while (s0 == 0);
0x00053a4c lw s1, -0x7bf4(gp) | s1 = *((gp - 7933));
0x00053a50 lw t9, -0x7794(gp) | t9 = sym.imp.g_str_has_prefix;
0x00053a54 addiu a1, s1, -0x1f90 | a1 = s1 + -0x1f90;
0x00053a58 move a0, s0 | a0 = s0;
0x00053a5c jalr t9 | t9 ();
0x00053a60 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x00053a64 bnez v0, 0x53a84 | goto label_7;
| }
0x00053a68 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00053a6c lw t9, -0x7794(gp) | t9 = sym.imp.g_str_has_prefix;
| /* esilref: 'p4' */
0x00053a70 addiu a1, a1, -0x1f8c | a1 += -0x1f8c;
0x00053a74 move a0, s0 | a0 = s0;
0x00053a78 jalr t9 | t9 ();
0x00053a7c lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00053a80 beqz v0, 0x539f4 | goto label_0;
| }
| label_7:
0x00053a84 lw t9, -0x78d4(gp) | t9 = sym.imp.g_str_has_suffix;
0x00053a88 addiu a1, s1, -0x1f90 | a1 = s1 + -0x1f90;
0x00053a8c move a0, s0 | a0 = s0;
0x00053a90 jalr t9 | t9 ();
0x00053a94 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00053a98 beqz v0, 0x53b88 |
| while (v0 != 0) {
0x00053a9c lw t9, -0x76f8(gp) | t9 = sym.imp.strlen;
0x00053aa0 move a0, s0 | a0 = s0;
0x00053aa4 jalr t9 | t9 ();
0x00053aa8 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00053aac addiu s2, v0, -1 | s2 = v0 + -1;
0x00053ab0 lw t9, -0x783c(gp) | t9 = sym.imp.g_malloc0;
0x00053ab4 move a0, s2 | a0 = s2;
0x00053ab8 jalr t9 | t9 ();
0x00053abc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00053ac0 addiu a1, s0, 1 | a1 = s0 + 1;
0x00053ac4 move a2, s2 | a2 = s2;
0x00053ac8 lw t9, -0x795c(gp) | t9 = sym.imp.g_strlcpy;
0x00053acc move a0, v0 | a0 = v0;
0x00053ad0 move s1, v0 | s1 = v0;
0x00053ad4 jalr t9 | t9 ();
0x00053ad8 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00053adc move a0, s0 | a0 = s0;
0x00053ae0 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00053ae4 move s0, s1 | s0 = s1;
0x00053ae8 jalr t9 | t9 ();
0x00053aec lw ra, 0x34(sp) | ra = *(var_24h);
0x00053af0 move v0, s0 | v0 = s0;
0x00053af4 lw s3, 0x30(sp) | s3 = *(var_20h);
0x00053af8 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x00053afc lw s1, 0x28(sp) | s1 = *(var_18h);
0x00053b00 lw s0, 0x24(sp) | s0 = *(var_24h_2);
0x00053b04 addiu sp, sp, 0x38 |
0x00053b08 jr ra | return v0;
| label_5:
0x00053b0c move a0, s1 | a0 = s1;
0x00053b10 jalr t9 | t9 ();
0x00053b14 lw ra, 0x34(sp) | ra = *(var_24h);
0x00053b18 move s0, zero | s0 = 0;
0x00053b1c move v0, s0 | v0 = s0;
0x00053b20 lw s3, 0x30(sp) | s3 = *(var_20h);
0x00053b24 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x00053b28 lw s1, 0x28(sp) | s1 = *(var_18h);
0x00053b2c lw s0, 0x24(sp) | s0 = *(var_24h_2);
0x00053b30 addiu sp, sp, 0x38 |
0x00053b34 jr ra | return v0;
| label_2:
0x00053b38 lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x00053b3c lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| /* str.lines___NULL */
0x00053b40 addiu v0, v0, -0x1fe0 | v0 += -0x1fe0;
0x00053b44 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00053b48 sw v0, 0x10(sp) | *(var_10h_2) = v0;
| /* str.netd_util_get_shellparsed_value */
0x00053b4c addiu a3, a3, -0x1d90 | a3 += -0x1d90;
0x00053b50 addiu a2, zero, 0x2ae | a2 = 0x2ae;
| /* str.src_netd_util.c */
0x00053b54 addiu a1, a1, -0x221c | a1 += -0x221c;
0x00053b58 jalr t9 | t9 ();
| label_3:
0x00053b5c lw v0, -0x7bf4(gp) | v0 = *((gp - 7933));
0x00053b60 lw a3, -0x7bf4(gp) | a3 = *((gp - 7933));
0x00053b64 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| /* str.paramname___NULL */
0x00053b68 addiu v0, v0, -0x1fd0 | v0 += -aav.0x00001fd0;
0x00053b6c lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00053b70 sw v0, 0x10(sp) | *(var_10h_2) = v0;
| /* str.netd_util_get_shellparsed_value */
0x00053b74 addiu a3, a3, -0x1d90 | a3 += -0x1d90;
0x00053b78 addiu a2, zero, 0x2af | a2 = 0x2af;
| /* str.src_netd_util.c */
0x00053b7c addiu a1, a1, -0x221c | a1 += -0x221c;
0x00053b80 move a0, zero | a0 = 0;
0x00053b84 jalr t9 | t9 ();
0x00053b88 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
0x00053b8c lw t9, -0x78d4(gp) | t9 = sym.imp.g_str_has_suffix;
| /* esilref: 'p4' */
0x00053b90 addiu a1, a1, -0x1f8c | a1 += -0x1f8c;
0x00053b94 move a0, s0 | a0 = s0;
0x00053b98 jalr t9 | t9 ();
0x00053b9c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00053ba0 bnez v0, 0x53a9c |
| }
0x00053ba4 lw ra, 0x34(sp) | ra = *(var_24h);
0x00053ba8 b 0x539f8 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x52a64 */
| #include <stdint.h>
|
; (fcn) sym.netd_util_list_to_string () | void netd_util_list_to_string () {
0x00052a64 lui gp, 4 |
0x00052a68 addiu gp, gp, 0x51dc |
0x00052a6c addu gp, gp, t9 | gp += t9;
0x00052a70 addiu sp, sp, -0x38 |
0x00052a74 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00052a78 sw ra, 0x34(sp) | *(var_34h) = ra;
0x00052a7c sw s5, 0x30(sp) | *(var_30h) = s5;
0x00052a80 sw s4, 0x2c(sp) | *(var_2ch) = s4;
0x00052a84 sw s3, 0x28(sp) | *(var_28h) = s3;
0x00052a88 sw s2, 0x24(sp) | *(var_24h) = s2;
0x00052a8c sw s1, 0x20(sp) | *(var_20h) = s1;
0x00052a90 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00052a94 lw s5, -0x7bf4(gp) | s5 = *((gp - 7933));
| if (a0 == 0) {
0x00052a98 beqz a0, 0x52b58 | goto label_2;
| }
0x00052a9c lw s4, -0x7bf4(gp) | s4 = *((gp - 7933));
0x00052aa0 move s0, a0 | s0 = a0;
0x00052aa4 move s2, zero | s2 = 0;
0x00052aa8 addiu s3, s5, -0x2220 | s3 = s5 + -0x2220;
| /* str._s__s */
0x00052aac addiu s4, s4, -0x21a8 | s4 += -0x21a8;
0x00052ab0 b 0x52ae0 | goto label_1;
| label_0:
0x00052ab4 jalr t9 | t9 ();
0x00052ab8 nop |
0x00052abc lw gp, 0x10(sp) | gp = *(var_10h);
0x00052ac0 move a0, s2 | a0 = s2;
0x00052ac4 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x00052ac8 move s2, v0 | s2 = v0;
0x00052acc jalr t9 | t9 ();
0x00052ad0 lw gp, 0x10(sp) | gp = *(var_10h);
| do {
0x00052ad4 lw s0, 4(s0) | s0 = *((s0 + 1));
| if (s0 == 0) {
0x00052ad8 beqz s0, 0x52b2c | goto label_3;
| }
0x00052adc nop |
| label_1:
0x00052ae0 lw s1, (s0) | s1 = *(s0);
0x00052ae4 lw t9, -0x7558(gp) | t9 = *((gp - 7510));
0x00052ae8 move a1, s3 | a1 = s3;
0x00052aec move a0, s1 | a0 = s1;
0x00052af0 jalr t9 | t9 ();
0x00052af4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00052af8 beqz v0, 0x52ad4 |
| } while (v0 == 0);
0x00052afc lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
0x00052b00 move a1, s2 | a1 = s2;
0x00052b04 move a2, s1 | a2 = s1;
0x00052b08 move a0, s4 | a0 = s4;
| if (s2 != 0) {
0x00052b0c bnez s2, 0x52ab4 | goto label_0;
| }
0x00052b10 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
0x00052b14 move a0, s1 | a0 = s1;
0x00052b18 jalr t9 | t9 ();
0x00052b1c lw s0, 4(s0) | s0 = *((s0 + 1));
0x00052b20 lw gp, 0x10(sp) | gp = *(var_10h);
0x00052b24 move s2, v0 | s2 = v0;
| if (s0 != 0) {
0x00052b28 bnez s0, 0x52ae0 | goto label_1;
| }
| label_3:
0x00052b2c lw ra, 0x34(sp) | ra = *(var_34h);
| if (s2 != 0) {
0x00052b30 beqz s2, 0x52b58 |
0x00052b34 move v0, s2 | v0 = s2;
0x00052b38 lw s5, 0x30(sp) | s5 = *(var_30h);
0x00052b3c lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x00052b40 lw s3, 0x28(sp) | s3 = *(var_28h);
0x00052b44 lw s2, 0x24(sp) | s2 = *(var_24h);
0x00052b48 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00052b4c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00052b50 addiu sp, sp, 0x38 |
0x00052b54 jr ra | return v0;
| }
| label_2:
0x00052b58 lw ra, 0x34(sp) | ra = *(var_34h);
0x00052b5c lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x00052b60 lw s3, 0x28(sp) | s3 = *(var_28h);
0x00052b64 lw s2, 0x24(sp) | s2 = *(var_24h);
0x00052b68 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00052b6c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00052b70 addiu a0, s5, -0x2220 | a0 = s5 + -0x2220;
0x00052b74 lw t9, -0x7564(gp) | t9 = sym.imp.g_strdup;
0x00052b78 lw s5, 0x30(sp) | s5 = *(var_30h);
0x00052b7c addiu sp, sp, 0x38 |
0x00052b80 jr t9 | return t9 ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x2db38 */
| #include <stdint.h>
|
; (fcn) sym.store_address_config () | void store_address_config () {
0x0002db38 lui gp, 7 |
0x0002db3c addiu gp, gp, -0x5ef8 |
0x0002db40 addu gp, gp, t9 | gp += t9;
0x0002db44 addiu sp, sp, -0x30 |
0x0002db48 sw gp, 0x18(sp) | *(var_18h_5) = gp;
0x0002db4c sw ra, 0x2c(sp) | *(var_2ch_4) = ra;
0x0002db50 sw s2, 0x28(sp) | *(var_28h_3) = s2;
0x0002db54 sw s1, 0x24(sp) | *(var_24h_5) = s1;
0x0002db58 sw s0, 0x20(sp) | *(var_20h_2) = s0;
0x0002db5c lw v0, -0x7cfc(gp) | v0 = *(gp);
| if (a0 == 0) {
0x0002db60 beqz a0, 0x2dbec | goto label_2;
| }
0x0002db64 lw v0, 0x38(a0) | v0 = *((a0 + 14));
0x0002db68 move s0, a0 | s0 = a0;
| if (v0 == 0) {
0x0002db6c beqz v0, 0x2dc10 | goto label_3;
| }
0x0002db70 lw v1, (a1) | v1 = *(a1);
0x0002db74 andi v0, v1, 1 | v0 = v1 & 1;
0x0002db78 move s2, a1 | s2 = a1;
| if (v0 != 0) {
0x0002db7c bnez v0, 0x2dc3c | goto label_4;
| }
0x0002db80 andi v0, v1, 2 | v0 = v1 & 2;
0x0002db84 move s1, zero | s1 = 0;
| if (v0 != 0) {
0x0002db88 bnez v0, 0x2dc88 | goto label_5;
| }
| do {
0x0002db8c andi v1, v1, 4 | v1 &= 4;
0x0002db90 lw a0, -0x7cfc(gp) | a0 = *(gp);
| if (v1 == 0) {
0x0002db94 bnel v1, zero, 0x2dcdc | goto label_6;
| }
| label_0:
0x0002db98 lw t9, -0x7af8(gp) | t9 = *(gp);
| if (s1 != 0) {
0x0002db9c beqz s1, 0x2dbd4 |
0x0002dba0 move a0, s0 | a0 = s0;
| /* fcn.0002b4cc */
0x0002dba4 addiu t9, t9, -0x4b34 | t9 += -0x4b34;
0x0002dba8 move a1, s1 | a1 = s1;
0x0002dbac bal 0x2b4cc | fcn_0002b4cc ();
0x0002dbb0 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002dbb4 lw ra, 0x2c(sp) | ra = *(var_2ch_4);
0x0002dbb8 lw s2, 0x28(sp) | s2 = *(var_28h_3);
0x0002dbbc lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x0002dbc0 move a0, s1 | a0 = s1;
0x0002dbc4 lw t9, -0x75a8(gp) | t9 = sym.imp.g_list_free;
0x0002dbc8 lw s1, 0x24(sp) | s1 = *(var_24h_5);
0x0002dbcc addiu sp, sp, 0x30 |
0x0002dbd0 jr t9 | t9 ();
| }
0x0002dbd4 lw ra, 0x2c(sp) | ra = *(var_2ch_4);
0x0002dbd8 lw s2, 0x28(sp) | s2 = *(var_28h_3);
0x0002dbdc lw s1, 0x24(sp) | s1 = *(var_24h_5);
0x0002dbe0 lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x0002dbe4 addiu sp, sp, 0x30 |
0x0002dbe8 jr ra | return v1;
| label_2:
0x0002dbec lw a3, -0x7cfc(gp) | a3 = *(gp);
0x0002dbf0 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* esilref: 'dev' */
0x0002dbf4 addiu v0, v0, 0x4ff8 | v0 += 0x4ff8;
0x0002dbf8 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0002dbfc sw v0, 0x10(sp) | *(var_10h_5) = v0;
| /* str.store_address_config */
0x0002dc00 addiu a3, a3, 0x5c4c | a3 += 0x5c4c;
0x0002dc04 addiu a2, zero, 0x36a | a2 = 0x36a;
| /* str.src_netd_device_ipv4.c */
0x0002dc08 addiu a1, a1, 0x4fe0 | a1 += 0x4fe0;
0x0002dc0c jalr t9 | t9 ();
| label_3:
0x0002dc10 lw v0, -0x7cfc(gp) | v0 = *(gp);
0x0002dc14 lw a3, -0x7cfc(gp) | a3 = *(gp);
0x0002dc18 lw a1, -0x7cfc(gp) | a1 = *(gp);
| /* str.dev__ipv4 */
0x0002dc1c addiu v0, v0, 0x4ffc | v0 += 0x4ffc;
0x0002dc20 lw t9, -0x764c(gp) | t9 = sym.imp.g_assertion_message_expr;
0x0002dc24 sw v0, 0x10(sp) | *(var_10h_5) = v0;
| /* str.store_address_config */
0x0002dc28 addiu a3, a3, 0x5c4c | a3 += 0x5c4c;
0x0002dc2c addiu a2, zero, 0x36b | a2 = 0x36b;
| /* str.src_netd_device_ipv4.c */
0x0002dc30 addiu a1, a1, 0x4fe0 | a1 += 0x4fe0;
0x0002dc34 move a0, zero | a0 = 0;
0x0002dc38 jalr t9 | t9 ();
| label_4:
0x0002dc3c lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0002dc40 bal 0x23124 | sym_netd_device_get_name ();
0x0002dc44 nop |
0x0002dc48 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002dc4c lw a2, 4(s2) | a2 = *((s2 + 1));
0x0002dc50 move a0, v0 | a0 = v0;
0x0002dc54 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x0002dc58 addiu a1, zero, 0x3f7 | a1 = 0x3f7;
0x0002dc5c jalr t9 | t9 ();
0x0002dc60 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002dc64 addiu a1, zero, 0x3f7 | a1 = 0x3f7;
0x0002dc68 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0002dc6c move a0, zero | a0 = 0;
0x0002dc70 jalr t9 | t9 ();
0x0002dc74 lw v1, (s2) | v1 = *(s2);
0x0002dc78 move s1, v0 | s1 = v0;
0x0002dc7c andi v0, v1, 2 | v0 = v1 & 2;
0x0002dc80 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002dc84 beqz v0, 0x2db8c |
| } while (v0 == 0);
| label_5:
0x0002dc88 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0002dc8c move a0, s0 | a0 = s0;
0x0002dc90 bal 0x23124 | sym_netd_device_get_name ();
0x0002dc94 lw a2, 8(s2) | a2 = *((s2 + 2));
0x0002dc98 lw gp, 0x18(sp) | gp = *(var_18h_5);
| if (a2 == 0) {
0x0002dc9c beqz a2, 0x2dd48 | goto label_7;
| }
| label_1:
0x0002dca0 lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x0002dca4 move a0, v0 | a0 = v0;
0x0002dca8 addiu a1, zero, 0x3f9 | a1 = 0x3f9;
0x0002dcac jalr t9 | t9 ();
0x0002dcb0 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002dcb4 move a0, s1 | a0 = s1;
0x0002dcb8 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0002dcbc addiu a1, zero, 0x3f9 | a1 = 0x3f9;
0x0002dcc0 jalr t9 | t9 ();
0x0002dcc4 lw v1, (s2) | v1 = *(s2);
0x0002dcc8 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002dccc andi v1, v1, 4 | v1 &= 4;
0x0002dcd0 move s1, v0 | s1 = v0;
| if (v1 == 0) {
0x0002dcd4 beqz v1, 0x2db98 | goto label_0;
| }
0x0002dcd8 lw a0, -0x7cfc(gp) | a0 = *(gp);
| label_6:
0x0002dcdc lw a1, 0xc(s2) | a1 = *((s2 + 3));
0x0002dce0 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf
| /* esilref: '&d' */
0x0002dce4 addiu a0, a0, 0x5524 | a0 += 0x5524;
0x0002dce8 jalr t9 | t9 ();
0x0002dcec lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002dcf0 move a0, s0 | a0 = s0;
0x0002dcf4 lw t9, -0x7f3c(gp) | t9 = sym.netd_device_get_name;
0x0002dcf8 move s2, v0 | s2 = v0;
0x0002dcfc bal 0x23124 | sym_netd_device_get_name ();
0x0002dd00 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002dd04 move a0, v0 | a0 = v0;
0x0002dd08 move a2, s2 | a2 = s2;
0x0002dd0c lw t9, -0x7b5c(gp) | t9 = sym.netd_settings_store_device_value;
0x0002dd10 addiu a1, zero, 0x3f8 | a1 = 0x3f8;
0x0002dd14 jalr t9 | t9 ();
0x0002dd18 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002dd1c lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x0002dd20 move a0, s2 | a0 = s2;
0x0002dd24 jalr t9 | t9 ();
0x0002dd28 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002dd2c move a0, s1 | a0 = s1;
0x0002dd30 lw t9, -0x7778(gp) | t9 = sym.imp.g_list_append;
0x0002dd34 addiu a1, zero, 0x3f8 | a1 = 0x3f8;
0x0002dd38 jalr t9 | t9 ();
0x0002dd3c move s1, v0 | s1 = v0;
0x0002dd40 lw gp, 0x18(sp) | gp = *(var_18h_5);
0x0002dd44 b 0x2db98 | goto label_0;
| label_7:
0x0002dd48 lw a2, -0x7cfc(gp) | a2 = *(gp);
0x0002dd4c addiu a2, a2, 0x51cc | a2 += 0x51cc;
0x0002dd50 b 0x2dca0 | goto label_1;
| }
[*] Function printf used 122 times netd