[*] Binary protection state of wpa_supplicant
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function fprintf 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 @ 0x1b848 */
| #include <stdint.h>
|
; (fcn) sym.wpa_printf () | void wpa_printf () {
0x0001b848 lui gp, 0xa |
0x0001b84c addiu gp, gp, 0x7918 |
0x0001b850 addu gp, gp, t9 | gp += t9;
0x0001b854 addiu sp, sp, -0x30 |
0x0001b858 lw v0, -0x7e34(gp) | v0 = *(gp);
0x0001b85c sw s0, 0x20(sp) | *(var_58h) = s0;
0x0001b860 lw s0, -0x7254(gp) | s0 = *((gp - 7317));
0x0001b864 lw v0, (v0) | v0 = *(v0);
0x0001b868 sw gp, 0x10(sp) | *(var_48h) = gp;
0x0001b86c lw v1, (s0) | v1 = *(s0);
0x0001b870 slt v0, a0, v0 | v0 = (a0 < v0) ? 1 : 0;
0x0001b874 sw ra, 0x2c(sp) | *(var_64h) = ra;
0x0001b878 sw s2, 0x28(sp) | *(var_60h) = s2;
0x0001b87c sw s1, 0x24(sp) | *(var_5ch) = s1;
0x0001b880 sw a2, 0x38(sp) | *(arg_38h) = a2;
0x0001b884 sw a3, 0x3c(sp) | *(arg_3ch) = a3;
0x0001b888 sw v1, 0x1c(sp) | *(var_54h) = v1;
0x0001b88c lw s1, -0x7e38(gp) | s1 = *(gp);
| if (v0 != 0) {
0x0001b890 bnez v0, 0x1b8f0 | goto label_1;
| }
0x0001b894 lw v0, (s1) | v0 = *(s1);
0x0001b898 move s2, a1 | s2 = a1;
0x0001b89c bnez v0, 0x1b914 |
| while (1) {
0x0001b8a0 lw t9, -0x7e30(gp) | t9 = sym.wpa_debug_print_timestamp;
0x0001b8a4 bal 0x1b730 | sym_wpa_debug_print_timestamp ();
0x0001b8a8 nop |
0x0001b8ac lw v0, (s1) | v0 = *(s1);
0x0001b8b0 lw gp, 0x10(sp) | gp = *(var_48h);
| if (v0 == 0) {
0x0001b8b4 bnez v0, 0x1b8f0 |
0x0001b8b8 lw v1, -0x739c(gp) | v1 = *((gp - 7399));
0x0001b8bc lw t9, -0x7150(gp) | t9 = sym.imp.__vfprintf_chk
0x0001b8c0 addiu v0, sp, 0x38 | v0 = sp + 0x38;
0x0001b8c4 lw a0, (v1) | a0 = *(v1);
0x0001b8c8 move a3, v0 | a3 = v0;
0x0001b8cc move a2, s2 | a2 = s2;
0x0001b8d0 addiu a1, zero, 1 | a1 = 1;
0x0001b8d4 sw v0, 0x18(sp) | *(var_50h) = v0;
0x0001b8d8 jalr t9 | t9 ();
0x0001b8dc lw gp, 0x10(sp) | gp = *(var_48h);
0x0001b8e0 lw t9, -0x703c(gp) | t9 = sym.imp.putchar;
0x0001b8e4 addiu a0, zero, 0xa | a0 = 0xa;
0x0001b8e8 jalr t9 | t9 ();
0x0001b8ec lw gp, 0x10(sp) | gp = *(var_48h);
| }
| label_1:
0x0001b8f0 lw v1, 0x1c(sp) | v1 = *(var_54h);
0x0001b8f4 lw v0, (s0) | v0 = *(s0);
0x0001b8f8 lw ra, 0x2c(sp) | ra = *(var_64h);
| if (v1 != v0) {
0x0001b8fc bne v1, v0, 0x1b95c | goto label_2;
| }
0x0001b900 lw s2, 0x28(sp) | s2 = *(var_60h);
0x0001b904 lw s1, 0x24(sp) | s1 = *(var_5ch);
0x0001b908 lw s0, 0x20(sp) | s0 = *(var_58h);
0x0001b90c addiu sp, sp, 0x30 |
0x0001b910 jr ra | return v0;
0x0001b914 addiu a0, a0, -1 | a0 += -1;
0x0001b918 addiu v1, sp, 0x38 | v1 = sp + 0x38;
0x0001b91c sltiu v0, a0, 5 | v0 = (a0 < 5) ? 1 : 0;
0x0001b920 sw v1, 0x18(sp) | *(var_50h) = v1;
| if (v0 == 0) {
0x0001b924 beqz v0, 0x1b954 | goto label_3;
| }
0x0001b928 lw v0, -0x7f7c(gp) | v0 = *(gp);
0x0001b92c sll a0, a0, 2 | a0 <<= 2;
0x0001b930 addiu v0, v0, -0x3b48 | v0 += -0x3b48;
0x0001b934 lwx a0, a0(v0) | __asm ("lwx a0, a0(v0)");
| label_0:
0x0001b938 lw t9, -0x72fc(gp) | t9 = sym.imp.__vsyslog_chk;
0x0001b93c lw a3, 0x18(sp) | a3 = *(var_50h);
0x0001b940 move a2, s2 | a2 = s2;
0x0001b944 addiu a1, zero, 1 | a1 = 1;
0x0001b948 jalr t9 | t9 ();
0x0001b94c lw gp, 0x10(sp) | gp = *(var_48h);
0x0001b950 b 0x1b8a0 |
| }
| label_3:
0x0001b954 addiu a0, zero, 6 | a0 = 6;
0x0001b958 b 0x1b938 | goto label_0;
| label_2:
0x0001b95c lw t9, -0x7308(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001b960 jalr t9 | t9 ();
0x0001b964 nop |
| }
[*] Function fprintf used 2 times wpa_supplicant