[*] Binary protection state of wpa_supplicant
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of wpa_supplicant
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/wpa_supplicant @ 0x26298 */
| #include <stdint.h>
|
; (fcn) sym.wpas_wmm_ac_status () | void wpas_wmm_ac_status () {
0x00026298 lui gp, 0xa |
0x0002629c addiu gp, gp, -0x3138 |
0x000262a0 addu gp, gp, t9 | gp += t9;
0x000262a4 addiu sp, sp, -0x90 |
0x000262a8 lw v0, 0x4bc(a0) | v0 = *((a0 + 303));
0x000262ac sw gp, 0x38(sp) | *(var_38h) = gp;
0x000262b0 sw s2, 0x70(sp) | *(var_70h) = s2;
0x000262b4 sw s1, 0x6c(sp) | *(var_6ch) = s1;
0x000262b8 sw ra, 0x8c(sp) | *(var_8ch) = ra;
0x000262bc sw fp, 0x88(sp) | *(var_88h) = fp;
0x000262c0 sw s7, 0x84(sp) | *(var_84h) = s7;
0x000262c4 sw s6, 0x80(sp) | *(var_80h) = s6;
0x000262c8 sw s5, 0x7c(sp) | *(var_7ch) = s5;
0x000262cc sw s4, 0x78(sp) | *(var_78h) = s4;
0x000262d0 sw s3, 0x74(sp) | *(var_74h) = s3;
0x000262d4 sw s0, 0x68(sp) | *(var_68h) = s0;
0x000262d8 move s1, a1 | s1 = a1;
0x000262dc sw v0, 0x50(sp) | *(var_50h) = v0;
0x000262e0 move s2, a2 | s2 = a2;
| if (v0 == 0) {
0x000262e4 beqz v0, 0x26530 | goto label_4;
| }
0x000262e8 lw a2, -0x7f7c(gp) | a2 = *(gp);
0x000262ec lw t9, -0x7d98(gp) | t9 = sym.wpa_scnprintf
0x000262f0 move s7, a0 | s7 = a0;
| /* str.WMM_AC_is_Enabled_n */
0x000262f4 addiu a2, a2, -0xe9c | a2 += -0xe9c;
0x000262f8 move a1, s2 | a1 = s2;
0x000262fc move a0, s1 | a0 = s1;
0x00026300 bal 0x19744 | sym_wpa_scnprintf ()
0x00026304 lw gp, 0x38(sp) | gp = *(var_38h);
0x00026308 move fp, v0 | fp = v0;
0x0002630c sw s7, 0x48(sp) | *(var_40h) = s7;
0x00026310 lw v0, -0x7f7c(gp) | v0 = *(gp);
0x00026314 lw v1, -0x7f7c(gp) | v1 = *(gp);
| /* str.Downlink */
0x00026318 addiu v0, v0, -0xef0 | v0 += -0xef0;
0x0002631c sw v1, 0x54(sp) | *(var_4ch) = v1;
0x00026320 sw v0, 0x5c(sp) | *(var_5ch) = v0;
0x00026324 lw v1, -0x7f7c(gp) | v1 = *(gp);
0x00026328 lw v0, -0x7f7c(gp) | v0 = *(gp);
0x0002632c lw s6, -0x7f7c(gp) | s6 = *(gp);
| /* str.Uplink */
0x00026330 addiu v0, v0, -0xed4 | v0 += -0xed4;
0x00026334 sw v1, 0x64(sp) | *(var_64h) = v1;
0x00026338 lw v1, -0x7f7c(gp) | v1 = *(gp);
0x0002633c sw v0, 0x58(sp) | *(var_58h) = v0;
| /* str.Bi_directional */
0x00026340 addiu v0, s6, -0xee4 | v0 = s6 + -0xee4;
0x00026344 sw v1, 0x60(sp) | *(var_60h) = v1;
0x00026348 move s0, zero | s0 = 0;
0x0002634c sw v0, 0x4c(sp) | *(var_44h_2) = v0;
| label_0:
0x00026350 andi v0, s0, 0xff | v0 = s0 & 0xff;
0x00026354 addiu v1, zero, 2 | v1 = 2;
0x00026358 addu a0, s1, fp | a0 = s1 + fp;
0x0002635c subu a1, s2, fp | __asm ("subu a1, s2, fp");
| if (v0 == v1) {
0x00026360 beq v0, v1, 0x26524 | goto label_5;
| }
0x00026364 addiu v1, zero, 3 | v1 = 3;
0x00026368 addiu v1, zero, 1 | v1 = 1;
| if (v0 == v1) {
0x0002636c beq v0, v1, 0x264f8 | goto label_6;
| }
0x00026370 lw a3, -0x7f7c(gp) | a3 = *(gp);
| if (v0 == v1) {
0x00026374 beq v0, v1, 0x264f0 | goto label_7;
| }
0x00026378 lw a3, -0x7f7c(gp) | a3 = *(gp);
| /* esilref: 'BE' */
0x0002637c addiu a3, a3, -0xef8 | a3 += -0xef8;
| label_2:
0x00026380 lw v1, 0x50(sp) | v1 = *(var_50h);
0x00026384 sll v0, s0, 2 | v0 = s0 << 2;
0x00026388 addu v0, v1, v0 | v0 = v1 + v0;
0x0002638c lw t9, -0x7d98(gp) | t9 = sym.wpa_scnprintf
0x00026390 lw v1, (v0) | v1 = *(v0);
0x00026394 move s6, zero | s6 = 0;
0x00026398 ext v1, v1, 1, 1 | __asm ("ext v1, v1, 1, 1");
0x0002639c sw v1, 0x14(sp) | *(var_14h_2) = v1;
0x000263a0 lw v0, (v0) | v0 = *(v0);
0x000263a4 lw v1, 0x54(sp) | v1 = *(var_4ch);
0x000263a8 andi v0, v0, 1 | v0 &= 1;
0x000263ac addiu a2, v1, -0xe88 | a2 = v1 + -0xe88;
0x000263b0 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x000263b4 bal 0x19744 | sym_wpa_scnprintf ()
0x000263b8 lw gp, 0x38(sp) | gp = *(var_38h);
0x000263bc lw s3, 0x48(sp) | s3 = *(var_40h);
0x000263c0 addu fp, fp, v0 | fp += v0;
0x000263c4 lw v1, -0x7f7c(gp) | v1 = *(gp);
0x000263c8 lw s4, -0x7f7c(gp) | s4 = *(gp);
0x000263cc sw v1, 0x44(sp) | *(var_3ch) = v1;
0x000263d0 move s5, zero | s5 = 0;
| do {
0x000263d4 lw v0, 0x4c0(s3) | v0 = *((s3 + 304));
0x000263d8 addiu a1, zero, 1 | a1 = 1;
0x000263dc addiu a0, zero, 3 | a0 = 3;
| if (v0 != 0) {
0x000263e0 beqz v0, 0x2647c |
0x000263e4 lbu a3, 8(v0) | a3 = *((v0 + 8));
0x000263e8 ext v1, a3, 5, 2 | __asm ("ext v1, a3, 5, 2");
0x000263ec addiu s6, s6, 1 | s6++;
| if (v1 == a1) {
0x000263f0 beq v1, a1, 0x264e8 | goto label_8;
| }
| if (v1 != 0) {
0x000263f4 beql v1, zero, 0x26408 |
0x000263f8 lw a0, 0x58(sp) | a0 = *(var_58h);
0x000263fc lw v1, 0x44(sp) | v1 = *(var_3ch);
| if (v1 != a0) {
0x00026400 bne v1, a0, 0x264e0 | goto label_9;
| }
0x00026404 lw a0, 0x4c(sp) | a0 = *(var_44h_2);
| }
| label_1:
0x00026408 lbu v1, 0x3e(v0) | v1 = *((v0 + 62));
0x0002640c lbu t4, 0x3d(v0) | t4 = *((v0 + 61));
0x00026410 lbu a2, 0xdd(s7) | a2 = *((s7 + 221));
0x00026414 lbu a1, 0xdc(s7) | a1 = *((s7 + 220));
0x00026418 lbu t3, 0xe1(s7) | t3 = *((s7 + 225));
0x0002641c lbu t2, 0xe0(s7) | t2 = *((s7 + 224));
0x00026420 lbu t1, 0xdf(s7) | t1 = *((s7 + 223));
0x00026424 lbu t0, 0xde(s7) | t0 = *((s7 + 222));
0x00026428 sll v1, v1, 8 | v1 <<= 8;
0x0002642c or v1, v1, t4 | v1 |= t4;
0x00026430 sw a0, 0x2c(sp) | *(var_2ch_2) = a0;
0x00026434 sw a2, 0x18(sp) | *(var_10h) = a2;
0x00026438 sw a1, 0x14(sp) | *(var_14h_2) = a1;
0x0002643c sw v1, 0x30(sp) | *(var_30h_2) = v1;
0x00026440 sw t3, 0x28(sp) | *(var_20h) = t3;
0x00026444 sw t2, 0x24(sp) | *(var_24h) = t2;
0x00026448 sw t1, 0x20(sp) | *(var_18h) = t1;
0x0002644c sw t0, 0x1c(sp) | *(var_14h) = t0;
0x00026450 lbu v0, 9(v0) | v0 = *((v0 + 9));
0x00026454 lw t9, -0x7d98(gp) | t9 = sym.wpa_scnprintf
0x00026458 ext v0, v0, 3, 3 | __asm ("ext v0, v0, 3, 3");
0x0002645c subu a1, s2, fp | __asm ("subu a1, s2, fp");
0x00026460 addu a0, s1, fp | a0 = s1 + fp;
0x00026464 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00026468 ext a3, a3, 1, 4 | __asm ("ext a3, a3, 1, 4");
| /* str._tTSID_u_UP_u_n_tAddress___02x:_02x:_02x:_02x:_02x:_02x_n_tWMM_AC_dir___s_n_tTotal_admitted_time___u_n_n */
0x0002646c addiu a2, s4, -0xe70 | a2 = s4 + -0xe70;
0x00026470 bal 0x19744 | sym_wpa_scnprintf ()
0x00026474 lw gp, 0x38(sp) | gp = *(var_38h);
0x00026478 addu fp, fp, v0 | fp += v0;
| }
0x0002647c addiu s5, s5, 1 | s5++;
0x00026480 addiu v0, zero, 3 | v0 = 3;
0x00026484 addiu s3, s3, 4 | s3 += 4;
0x00026488 bne s5, v0, 0x263d4 |
| } while (s5 != v0);
| if (s6 == 0) {
0x0002648c beql s6, zero, 0x26504 | goto label_10;
| }
0x00026490 lw a2, -0x7f7c(gp) | a2 = *(gp);
| label_3:
0x00026494 lw v1, 0x48(sp) | v1 = *(var_40h);
0x00026498 addiu s0, s0, 1 | s0++;
0x0002649c addiu v1, v1, 0xc | v1 += 0xc;
0x000264a0 addiu v0, zero, 4 | v0 = 4;
0x000264a4 sw v1, 0x48(sp) | *(var_40h) = v1;
| if (s0 != v0) {
0x000264a8 bne s0, v0, 0x26350 | goto label_0;
| }
0x000264ac lw ra, 0x8c(sp) | ra = *(var_8ch);
0x000264b0 move v0, fp | v0 = fp;
0x000264b4 lw s7, 0x84(sp) | s7 = *(var_84h);
0x000264b8 lw fp, 0x88(sp) | fp = *(var_88h);
0x000264bc lw s6, 0x80(sp) | s6 = *(var_80h);
0x000264c0 lw s5, 0x7c(sp) | s5 = *(var_7ch);
0x000264c4 lw s4, 0x78(sp) | s4 = *(var_78h);
0x000264c8 lw s3, 0x74(sp) | s3 = *(var_74h);
0x000264cc lw s2, 0x70(sp) | s2 = *(var_70h);
0x000264d0 lw s1, 0x6c(sp) | s1 = *(var_6ch);
0x000264d4 lw s0, 0x68(sp) | s0 = *(var_68h);
0x000264d8 addiu sp, sp, 0x90 |
0x000264dc jr ra | return v0;
| label_9:
0x000264e0 addiu a0, v1, -0xef4 | a0 = v1 + -0xef4;
0x000264e4 b 0x26408 | goto label_1;
| label_8:
0x000264e8 lw a0, 0x5c(sp) | a0 = *(var_5ch);
0x000264ec b 0x26408 | goto label_1;
| /* esilref: 'BK' */
| label_7:
0x000264f0 addiu a3, a3, -0xf04 | a3 += -0xf04;
0x000264f4 b 0x26380 | goto label_2;
| label_6:
0x000264f8 lw v0, 0x60(sp) | v0 = *(var_60h);
0x000264fc addiu a3, v0, -0xf00 | a3 = v0 + -0xf00;
0x00026500 b 0x26380 | goto label_2;
| label_10:
0x00026504 lw t9, -0x7d98(gp) | t9 = sym.wpa_scnprintf
0x00026508 subu a1, s2, fp | __asm ("subu a1, s2, fp");
0x0002650c addu a0, s1, fp | a0 = s1 + fp;
| /* str._t_No_Traffic_Stream__n_n */
0x00026510 addiu a2, a2, -0xe08 | a2 += -0xe08;
0x00026514 bal 0x19744 | sym_wpa_scnprintf ()
0x00026518 addu fp, fp, v0 | fp += v0;
0x0002651c lw gp, 0x38(sp) | gp = *(var_38h);
0x00026520 b 0x26494 | goto label_3;
| label_5:
0x00026524 lw v0, 0x64(sp) | v0 = *(var_64h);
0x00026528 addiu a3, v0, -0xefc | a3 = v0 + -0xefc;
0x0002652c b 0x26380 | goto label_2;
| label_4:
0x00026530 lw a2, -0x7f7c(gp) | a2 = *(gp);
0x00026534 lw ra, 0x8c(sp) | ra = *(var_8ch);
0x00026538 lw fp, 0x88(sp) | fp = *(var_88h);
0x0002653c lw s7, 0x84(sp) | s7 = *(var_84h);
0x00026540 lw s6, 0x80(sp) | s6 = *(var_80h);
0x00026544 lw s5, 0x7c(sp) | s5 = *(var_7ch);
0x00026548 lw s4, 0x78(sp) | s4 = *(var_78h);
0x0002654c lw s3, 0x74(sp) | s3 = *(var_74h);
0x00026550 lw s0, 0x68(sp) | s0 = *(var_68h);
0x00026554 move a1, s2 | a1 = s2;
0x00026558 move a0, s1 | a0 = s1;
0x0002655c lw s2, 0x70(sp) | s2 = *(var_70h);
0x00026560 lw s1, 0x6c(sp) | s1 = *(var_6ch);
0x00026564 lw t9, -0x7d98(gp) | t9 = sym.wpa_scnprintf
| /* str.Not_associated_to_a_WMM_AP__WMM_AC_is_Disabled_n */
0x00026568 addiu a2, a2, -0xecc | a2 += -0xecc;
0x0002656c addiu sp, sp, 0x90 |
0x00026570 b 0x19744 | return void (*0x19744)() ();
| }
[*] Function printf used 10 times wpa_supplicant