[*] Binary protection state of indexer
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function sprintf tear down of indexer
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x45950 */
| #include <stdint.h>
|
; (fcn) sym.rec_cont_get_recording_parameters () | void rec_cont_get_recording_parameters () {
0x00045950 lui gp, 4 |
0x00045954 addiu gp, gp, 0x7b0 |
0x00045958 addu gp, gp, t9 | gp += t9;
0x0004595c addiu sp, sp, -0x48 |
0x00045960 lw t9, -0x7688(gp) | t9 = sym.imp.g_rec_mutex_lock;
0x00045964 sw s0, 0x3c(sp) | *(var_3ch) = s0;
0x00045968 move s0, a0 | s0 = a0;
0x0004596c lw a0, 4(a0) | a0 = *((a0 + 1));
0x00045970 sw gp, 0x30(sp) | *(var_30h) = gp;
0x00045974 sw ra, 0x44(sp) | *(var_44h) = ra;
0x00045978 sw a1, 0x4c(sp) | *(arg_4ch) = a1;
0x0004597c sw s1, 0x40(sp) | *(var_40h) = s1;
0x00045980 jalr t9 | t9 ();
0x00045984 nop |
0x00045988 lw gp, 0x30(sp) | gp = *(var_30h);
0x0004598c lw a1, 0x4c(sp) | a1 = *(arg_4ch);
0x00045990 lw t9, -0x7a8c(gp) | t9 = *(gp);
| /* fcn.00044f20 */
0x00045994 addiu t9, t9, 0x4f20 | t9 += 0x4f20;
0x00045998 move a0, s0 | a0 = s0;
0x0004599c bal 0x44f20 | fcn_00044f20 ();
0x000459a0 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x000459a4 beqz v0, 0x45a28 | goto label_0;
| }
0x000459a8 lw v0, 0x18(v0) | v0 = *((v0 + 6));
0x000459ac lw t9, -0x79ec(gp) | t9 = sym.create_recording_parameter_struct;
0x000459b0 lw v1, 0x28(v0) | v1 = *((v0 + 10));
0x000459b4 lw a3, 0xc(v0) | a3 = *((v0 + 3));
0x000459b8 lw a2, 8(v0) | a2 = *((v0 + 2));
0x000459bc lw a1, 4(v0) | a1 = *((v0 + 1));
0x000459c0 lw a0, (v0) | a0 = *(v0);
0x000459c4 sw v1, 0x28(sp) | *(var_28h) = v1;
0x000459c8 lw v1, 0x24(v0) | v1 = *((v0 + 9));
0x000459cc sw v1, 0x24(sp) | *(var_24h) = v1;
0x000459d0 lw v1, 0x20(v0) | v1 = *((v0 + 8));
0x000459d4 sw v1, 0x20(sp) | *(var_20h) = v1;
0x000459d8 lw v1, 0x1c(v0) | v1 = *((v0 + 7));
0x000459dc sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x000459e0 lw v1, 0x18(v0) | v1 = *((v0 + 6));
0x000459e4 sw v1, 0x18(sp) | *(var_18h) = v1;
0x000459e8 lw v1, 0x14(v0) | v1 = *((v0 + 5));
0x000459ec sw v1, 0x14(sp) | *(var_14h) = v1;
0x000459f0 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x000459f4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000459f8 bal 0x44ba0 | sym_create_recording_parameter_struct ();
0x000459fc lw gp, 0x30(sp) | gp = *(var_30h);
0x00045a00 move s1, v0 | s1 = v0;
| do {
0x00045a04 lw t9, -0x76cc(gp) | t9 = sym.imp.g_rec_mutex_unlock;
0x00045a08 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00045a0c jalr t9 | t9 ();
0x00045a10 lw ra, 0x44(sp) | ra = *(var_44h);
0x00045a14 move v0, s1 | v0 = s1;
0x00045a18 lw s0, 0x3c(sp) | s0 = *(var_3ch);
0x00045a1c lw s1, 0x40(sp) | s1 = *(var_40h);
0x00045a20 addiu sp, sp, 0x48 |
0x00045a24 jr ra | return v0;
| label_0:
0x00045a28 move s1, zero | s1 = 0;
0x00045a2c b 0x45a04 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x46378 */
| #include <stdint.h>
|
; (fcn) sym.rec_cont_is_recorder_oneshot () | void rec_cont_is_recorder_oneshot () {
0x00046378 lui gp, 4 |
0x0004637c addiu gp, gp, -0x278 |
0x00046380 addu gp, gp, t9 | gp += t9;
0x00046384 addiu sp, sp, -0x28 |
0x00046388 lw t9, -0x7688(gp) | t9 = sym.imp.g_rec_mutex_lock;
0x0004638c sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00046390 move s0, a0 | s0 = a0;
0x00046394 lw a0, 4(a0) | a0 = *((a0 + 1));
0x00046398 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0004639c sw ra, 0x24(sp) | *(var_24h) = ra;
0x000463a0 sw a1, 0x2c(sp) | *(arg_2ch) = a1;
0x000463a4 sw s1, 0x20(sp) | *(var_20h) = s1;
0x000463a8 jalr t9 | t9 ();
0x000463ac nop |
0x000463b0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000463b4 lw a1, 0x2c(sp) | a1 = *(arg_2ch);
0x000463b8 lw t9, -0x7a8c(gp) | t9 = *(gp);
| /* fcn.00044f20 */
0x000463bc addiu t9, t9, 0x4f20 | t9 += 0x4f20;
0x000463c0 move a0, s0 | a0 = s0;
0x000463c4 bal 0x44f20 | fcn_00044f20 ();
0x000463c8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000463cc beqz v0, 0x46400 | goto label_0;
| }
0x000463d0 lw v0, 0x18(v0) | v0 = *((v0 + 6));
0x000463d4 lw s1, (v0) | s1 = *(v0);
0x000463d8 sltiu s1, s1, 1 | s1 = (s1 < 1) ? 1 : 0;
| do {
0x000463dc lw t9, -0x76cc(gp) | t9 = sym.imp.g_rec_mutex_unlock;
0x000463e0 lw a0, 4(s0) | a0 = *((s0 + 1));
0x000463e4 jalr t9 | t9 ();
0x000463e8 lw ra, 0x24(sp) | ra = *(var_24h);
0x000463ec move v0, s1 | v0 = s1;
0x000463f0 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000463f4 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000463f8 addiu sp, sp, 0x28 |
0x000463fc jr ra | return v0;
| label_0:
0x00046400 move s1, zero | s1 = 0;
0x00046404 b 0x463dc |
| } while (1);
| }
[*] Function sprintf used 1 times indexer