[*] Binary protection state of systemd-cgtop
Full RELRO Canary found NX enabled PIE enabled RPATH No RUNPATH No Symbols
[*] Function printf tear down of systemd-cgtop
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/systemd-cgtop @ 0x2c48 */
| #include <stdint.h>
|
| #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
|
; (fcn) fcn.00002c48 () | void fcn_00002c48 (int16_t arg_4h, uint32_t arg1) {
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_18h;
| int16_t var_1ch;
| int16_t var_20h;
| int16_t var_24h;
| int16_t var_28h;
| int16_t var_2ch;
| int16_t var_30h;
| int16_t var_34h;
| int16_t var_38h;
| int16_t var_3ch;
| int16_t var_40h;
| int16_t var_44h;
| int16_t var_48h;
| int16_t var_4ch;
| int16_t var_50h;
| int32_t var_4h_2;
| int32_t var_8h_2;
| int32_t var_8h_3;
| int32_t var_10h_2;
| int32_t var_14h_2;
| int32_t var_18h_2;
| int32_t var_1ch_2;
| int32_t var_20h_2;
| int32_t var_24h_2;
| int32_t var_28h_2;
| int32_t var_2ch_2;
| int32_t var_30h_2;
| int16_t var_34h_2;
| int32_t var_38h_2;
| int16_t var_3ch_2;
| int32_t var_7ch;
| int16_t var_0h_2;
| r0 = arg1;
0x00002c48 ldr.w r3, [pc, 0x454] | r3 = *(0x000030a0);
0x00002c4c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00002c50 vpush {d8} | __asm ("vpush {d8}");
0x00002c54 sub sp, 0xd4 |
0x00002c56 add r3, pc | r3 += pc;
0x00002c58 ldr.w r2, [pc, 0x448] | r2 = *(0x000030a4);
0x00002c5c add r7, sp, 0x50 | r7 += var_50h;
0x00002c5e str r3, [r7, 0x2c] | var_2ch_2 = r3;
0x00002c60 ldr.w r3, [pc, 0x444] |
0x00002c64 add r2, pc | r2 += pc;
0x00002c66 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00002c68 ldr r3, [r3] | r3 = *(0x30a8);
0x00002c6a str r3, [r7, 0x7c] | var_7ch = r3;
0x00002c6c mov.w r3, 0 | r3 = 0;
0x00002c70 cmp r0, 0 |
| if (r0 == 0) {
0x00002c72 beq.w 0x3256 | goto label_20;
| }
0x00002c76 mov r4, r0 | r4 = r0;
0x00002c78 blx 0x179c | r0 = fcn_0000179c ();
0x00002c7c cmp r0, 0 |
| if (r0 == 0) {
0x00002c7e beq.w 0x3216 | goto label_21;
| }
| label_10:
0x00002c82 mov r0, r4 | r0 = r4;
0x00002c84 blx 0x14f8 | r0 = hashmap_size ();
0x00002c88 cmp r0, 0 |
| if (r0 != 0) {
0x00002c8a bne.w 0x326c | goto label_22;
| }
| label_14:
0x00002c8e cmp r0, 1 |
0x00002c90 mov.w sl, 0 | sl = 0;
0x00002c94 it lo |
| if (r0 >= 1) {
0x00002c96 movlo r0, 1 | r0 = 1;
| }
0x00002c98 mvn r2, 1 | r2 = ~1;
0x00002c9c adds r3, r0, 7 | r3 = r0 + 7;
0x00002c9e add.w sb, r7, 0x30 | sb += var_30h_2;
0x00002ca2 bic r3, r3, 7 | r3 = BIT_MASK (r3, 7);
0x00002ca6 add.w r5, r7, 0x34 | r5 += var_34h_2;
0x00002caa sub.w sp, sp, r3 |
0x00002cae str r2, [r7, 0x34] | var_34h_2 = r2;
0x00002cb0 add r6, sp, 0x4c | r6 += var_4ch;
0x00002cb2 add.w r8, sp, 0x50 | r8 += var_50h;
0x00002cb6 str.w sl, [r7, 0x38] | __asm ("str.w sl, [var_38h_2]");
0x00002cba str r6, [r7, 0x18] | var_18h_2 = r6;
0x00002cbc b 0x2cce |
| while (r0 != 0) {
0x00002cbe ldr r3, [r7, 0x30] | r3 = var_30h_2;
0x00002cc0 ldrb r2, [r3, 4] | r2 = *((r3 + 4));
0x00002cc2 lsls r0, r2, 0x1c | r0 = r2 << 0x1c;
0x00002cc4 itt ne |
| if (r0 == r2) {
0x00002cc6 addne sl, sl, 1 | sl++;
| }
| if (r0 != r2) {
0x00002cca str r3, [r6, 4]! | *((r6 += 4)) = r3;
| }
0x00002cce movs r3, 0 | r3 = 0;
0x00002cd0 mov r2, sb | r2 = sb;
0x00002cd2 mov r1, r5 | r1 = r5;
0x00002cd4 mov r0, r4 | r0 = r4;
0x00002cd6 blx 0x1848 | r0 = fcn_00001848 ();
0x00002cda cmp r0, 0 |
0x00002cdc bne 0x2cbe |
| }
0x00002cde cmp.w sl, 1 |
| if (sl < 1) {
0x00002ce2 bls 0x2d76 | goto label_23;
| }
0x00002ce4 ldr r3, [pc, 0x3c4] |
0x00002ce6 movs r2, 4 | r2 = 4;
0x00002ce8 mov r0, r8 | r0 = r8;
0x00002cea mov r1, sl | r1 = sl;
0x00002cec add r3, pc | r3 = 0x5d9c;
0x00002cee blx 0x14b0 | qsort ();
| label_1:
0x00002cf2 ldr r3, [pc, 0x3bc] |
0x00002cf4 mov.w fp, 0 |
0x00002cf8 ldr.w sb, [pc, 0x3b8] | sb = *(0x000030b4);
0x00002cfc mov.w r8, 3 | r8 = 3;
0x00002d00 ldr r5, [r7, 0x18] | r5 = var_18h_2;
0x00002d02 mov r4, fp | r4 = fp;
0x00002d04 add r3, pc | r3 = 0x5dba;
0x00002d06 vmov.i32 d8, 0 | __asm ("vmov.i32 d8, 0");
0x00002d0a add sb, pc | sb += pc;
0x00002d0c add.w r6, r7, 0x3c | r6 += var_3ch_2;
0x00002d10 str r3, [r7, 0x28] | var_28h_2 = r3;
0x00002d12 b 0x2d40 |
| while (ip == 0) {
0x00002d14 movs r1, 0x40 | r1 = 0x40;
0x00002d16 mov r0, r6 | r0 = r6;
0x00002d18 vstr d8, [sp] | __asm ("vstr d8, [sp]");
0x00002d1c blx 0x14d4 | format_timespan ();
| label_0:
0x00002d20 mov r0, r6 | r0 = r6;
0x00002d22 adds r4, 1 | r4++;
0x00002d24 blx 0x15bc | fcn_000015bc ();
0x00002d28 ldr r3, [r5] | r3 = *(r5);
0x00002d2a cmp fp, r0 |
0x00002d2c it lo |
| if (fp >= r0) {
0x00002d2e movlo fp, r0 |
| }
0x00002d30 ldr r0, [r3] | r0 = *(r3);
0x00002d32 blx 0x15bc | fcn_000015bc ();
0x00002d34 mcrr p5, 8, r4, r4, c0 | __asm ("mcrr p5, 8, r4, r4, c0");
0x00002d38 it lo |
| if (fp >= r0) {
0x00002d3a movlo r8, r0 | r8 = r0;
| }
0x00002d3c cmp sl, r4 |
| if (sl < r4) {
0x00002d3e bls 0x2d86 | goto label_24;
| }
0x00002d40 ldr r1, [r5, 4]! | r1 = *((r5 += 4));
0x00002d44 mov.w r2, 0x3e8 | r2 = 0x3e8;
0x00002d48 movs r3, 0 | r3 = 0;
0x00002d4a ldrd r0, r1, [r1, 0x18] | __asm ("ldrd r0, r1, [r1, 0x18]");
0x00002d4e bl 0x420c | fcn_0000420c (r0, r1, r2, r3);
0x00002d52 ldrb.w ip, [sb] | ip = *(sb);
0x00002d56 mov r2, r0 | r2 = r0;
0x00002d58 mov r3, r1 | r3 = r1;
0x00002d5a cmp.w ip, 0 |
0x00002d5e beq 0x2d14 |
| }
0x00002d60 ldr r3, [r7, 0x28] | r3 = var_28h_2;
0x00002d62 movs r2, 1 | r2 = 1;
0x00002d64 strd r0, r1, [sp, 8] | __asm ("strd r0, r1, [sp, 8]");
0x00002d68 mov r0, r6 | r0 = r6;
0x00002d6a str r3, [sp] | *(sp) = r3;
0x00002d6c movs r3, 0x40 | r3 = 0x40;
0x00002d6e mov r1, r3 | r1 = r3;
0x00002d70 blx 0x1658 | fcn_00001658 ();
0x00002d74 b 0x2d20 | goto label_0;
| label_23:
0x00002d76 cmp.w sl, 0 |
| if (sl != 0) {
0x00002d7a bne 0x2cf2 | goto label_1;
| }
0x00002d7c mov fp, sl |
0x00002d7e mov.w r8, 3 | r8 = 3;
0x00002d82 add.w r6, r7, 0x3c | r6 += var_3ch_2;
| label_24:
0x00002d86 ldr r3, [pc, 0x330] |
0x00002d88 add r3, pc |
0x00002d8a ldr r3, [r3] | r3 = *(0x5e46);
0x00002d8c cmp r3, 0 |
| if (r3 == 0) {
0x00002d8e beq.w 0x2f46 | goto label_25;
| }
0x00002d92 ldr r3, [pc, 0x328] |
0x00002d94 movs r2, 1 | r2 = 1;
0x00002d96 mov r0, r6 | r0 = r6;
0x00002d98 str.w fp, [sp, 4] | __asm ("str.w fp, [var_4h]");
0x00002d9c add r3, pc | r3 = 0x5e5e;
0x00002d9e str r3, [sp, 8] | var_8h = r3;
0x00002da0 ldr r3, [pc, 0x31c] |
0x00002da2 add r3, pc | r3 = 0x5e66;
0x00002da4 str r3, [sp] | *(sp) = r3;
0x00002da6 movs r3, 0x40 | r3 = 0x40;
0x00002da8 mov r1, r3 | r1 = r3;
0x00002daa blx 0x1658 | fcn_00001658 ();
| label_3:
0x00002dae blx 0x15ec | r0 = fcn_000015ec ();
0x00002db2 cmp r0, 0xa |
0x00002db4 it lo |
| if (r0 >= 0xa) {
0x00002db6 movlo r0, 0xa | r0 = 0xa;
| }
0x00002db8 str r0, [r7, 0x24] | var_24h_2 = r0;
0x00002dba blx 0x16f4 | r0 = fcn_000016f4 ();
0x00002dbe cmp r0, 0 |
| if (r0 != 0) {
0x00002dc0 bne.w 0x2f60 | goto label_26;
| }
| label_4:
0x00002dc4 cmp.w sl, 0 |
| if (sl == 0) {
0x00002dc8 beq.w 0x31f4 | goto label_27;
| }
0x00002dcc add.w r3, sl, 6 | r3 = sl + 6;
0x00002dd0 ldr.w sl, [pc, 0x2f0] |
0x00002dd4 str r3, [r7, 0x28] | var_28h_2 = r3;
0x00002dd6 mov.w sb, 6 | sb = 6;
0x00002dda ldr r3, [pc, 0x2ec] |
0x00002ddc str.w fp, [r7, 0x1c] | __asm ("str.w fp, [var_1ch_2]");
0x00002de0 add sl, pc | sl = 0x5ea8;
0x00002de2 vldr d8, [pc, 0x2b4] | __asm ("vldr d8, [0x0000309c]");
0x00002de6 add r3, pc | r3 = 0x5eb4;
0x00002de8 ldr.w fp, [r7, 0x18] | fp = var_18h_2;
0x00002dec str r3, [r7, 0x20] | var_20h_2 = r3;
0x00002dee b 0x2ee0 |
| while (r1 < r2) {
0x00002df0 ldr r1, [pc, 0x2d8] |
0x00002df2 movs r0, 1 | r0 = 1;
0x00002df4 ldrd r2, r3, [r3, 8] | __asm ("ldrd r2, r3, [r3, 8]");
0x00002df8 add r1, pc | r1 = 0x5ec8;
0x00002dfa blx 0x1534 | printf_chk ()
0x00002dfe ldr r3, [pc, 0x2d0] | r3 = *(0x30d2);
0x00002e00 ldr r2, [r7, 0x2c] | r2 = var_2ch_2;
0x00002e02 ldr r5, [r2, r3] | r5 = *((r2 + r3));
| label_2:
0x00002e04 ldr r2, [pc, 0x2cc] |
0x00002e06 ldr r3, [r7, 0x30] | r3 = var_30h_2;
0x00002e08 add r2, pc |
0x00002e0a ldr r2, [r2] | r2 = *(0x5ee0);
0x00002e0c cmp r2, 0 |
| if (r2 != 0) {
0x00002e0e bne.w 0x3148 | goto label_28;
| }
0x00002e12 ldrb r2, [r3, 4] | r2 = *((r3 + 4));
0x00002e14 lsls r2, r2, 0x1e | r2 <<= 0x1e;
| if (r2 >= r2) {
0x00002e16 bpl.w 0x3082 | goto label_29;
| }
0x00002e1a vldr d16, [r3, 0x28] | __asm ("vldr d16, [r3, 0x28]");
0x00002e1e movs r0, 1 | r0 = 1;
0x00002e20 ldr r1, [pc, 0x2b4] |
0x00002e22 vmul.f64 d16, d16, d8 | __asm ("vmul.f64 d16, d16, d8");
0x00002e26 add r1, pc | r1 = 0x5f02;
0x00002e28 vmov r2, r3, d16 | __asm ("vmov r2, r3, d16");
0x00002e2c blx 0x1534 | printf_chk ()
| label_9:
0x00002e30 ldr r3, [r7, 0x30] | r3 = var_30h_2;
0x00002e32 ldrb r2, [r3, 4] | r2 = *((r3 + 4));
0x00002e34 lsls r0, r2, 0x1d | r0 = r2 << 0x1d;
| if (r0 >= r2) {
0x00002e36 bpl.w 0x307c | goto label_30;
| }
0x00002e3a ldr r2, [pc, 0x2a0] |
0x00002e3c add r2, pc | r2 = 0x5f1e;
0x00002e3e ldrb r1, [r2] | r1 = *(r2);
0x00002e40 ldrd r2, r3, [r3, 0x30] | __asm ("ldrd r2, r3, [r3, 0x30]");
0x00002e44 cmp r1, 0 |
| if (r1 != 0) {
0x00002e46 bne.w 0x318c | goto label_31;
| }
0x00002e4a movs r1, 7 | r1 = 7;
0x00002e4c mov r0, r6 | r0 = r6;
0x00002e4e str r1, [sp] | *(sp) = r1;
0x00002e50 movs r1, 0x40 | r1 = 0x40;
0x00002e52 blx 0x1860 | r0 = fcn_00001860 ();
0x00002e56 mov r2, r0 | r2 = r0;
| label_8:
0x00002e58 ldr r1, [pc, 0x284] |
0x00002e5a movs r0, 1 | r0 = 1;
0x00002e5c add r1, pc | r1 = 0x5f40;
0x00002e5e blx 0x1534 | printf_chk ()
0x00002e62 ldr r3, [r7, 0x30] | r3 = var_30h_2;
0x00002e64 ldrb r2, [r3, 4] | r2 = *((r3 + 4));
0x00002e66 lsls r1, r2, 0x1c | r1 = r2 << 0x1c;
| if (r1 >= r2) {
0x00002e68 bpl.w 0x3076 | goto label_32;
| }
0x00002e6c ldr r2, [pc, 0x274] |
0x00002e6e add r2, pc | r2 = 0x5f56;
0x00002e70 ldrb r1, [r2] | r1 = *(r2);
0x00002e72 ldrd r2, r3, [r3, 0x58] | __asm ("ldrd r2, r3, [r3, 0x58]");
0x00002e74 movs r3, 0x16 | r3 = 0x16;
0x00002e76 cmp r1, 0 |
| if (r1 != 0) {
0x00002e78 bne.w 0x31c0 | goto label_33;
| }
0x00002e7c movs r1, 7 | r1 = 7;
0x00002e7e mov r0, r6 | r0 = r6;
0x00002e80 str r1, [sp] | *(sp) = r1;
0x00002e82 movs r1, 0x40 | r1 = 0x40;
0x00002e84 blx 0x1860 | r0 = fcn_00001860 ();
0x00002e88 mov r2, r0 | r2 = r0;
| label_7:
0x00002e8a ldr r1, [pc, 0x25c] |
0x00002e8c movs r0, 1 | r0 = 1;
0x00002e8e add r1, pc | r1 = 0x5f7c;
0x00002e90 blx 0x1534 | printf_chk ()
0x00002e94 ldr r3, [r7, 0x30] | r3 = var_30h_2;
0x00002e96 ldrb r2, [r3, 4] | r2 = *((r3 + 4));
0x00002e98 lsls r2, r2, 0x1c | r2 <<= 0x1c;
| if (r2 >= r2) {
0x00002e9a bpl.w 0x3070 | goto label_34;
| }
0x00002e9e ldr r2, [pc, 0x24c] |
0x00002ea0 add r2, pc | r2 = 0x5f92;
0x00002ea2 ldrb r1, [r2] | r1 = *(r2);
0x00002ea4 ldrd r2, r3, [r3, 0x60] | __asm ("ldrd r2, r3, [r3, 0x60]");
0x00002ea8 cmp r1, 0 |
| if (r1 != 0) {
0x00002eaa bne.w 0x31a6 | goto label_35;
| }
0x00002eae movs r1, 7 | r1 = 7;
0x00002eb0 mov r0, r6 | r0 = r6;
0x00002eb2 str r1, [sp] | *(sp) = r1;
0x00002eb4 movs r1, 0x40 | r1 = 0x40;
0x00002eb6 blx 0x1860 | r0 = fcn_00001860 ();
0x00002eba mov r2, r0 | r2 = r0;
| label_6:
0x00002ebc ldr r1, [pc, 0x230] |
0x00002ebe movs r0, 1 | r0 = 1;
0x00002ec0 add.w sb, sb, 1 | sb++;
0x00002ec4 add r1, pc | r1 = 0x5fb8;
0x00002ec6 blx 0x1534 | printf_chk ()
0x00002eca ldr r1, [r5] | r1 = *(r5);
0x00002ecc movs r0, 0xa | r0 = 0xa;
0x00002ece blx 0x1818 | fcn_00001818 ();
0x00002ed0 stc p6, c4, [r4], 0x80 | __asm ("stc p6, c4, [r4], 0x80");
0x00002ed4 blx 0x1580 | fcn_00001580 ();
0x00002ed8 ldr r3, [r7, 0x28] | r3 = var_28h_2;
0x00002eda cmp r3, sb |
| if (r3 == sb) {
0x00002edc beq.w 0x31f4 | goto label_27;
| }
0x00002ee0 blx 0x16f4 | r0 = fcn_000016f4 ();
| if (r0 != 0) {
0x00002ee4 cbz r0, 0x2eee |
0x00002ee6 ldr r3, [r7, 0x24] | r3 = var_24h_2;
0x00002ee8 cmp r3, sb |
| if (r3 <= sb) {
0x00002eea blo.w 0x31f4 | goto label_27;
| }
| }
0x00002eee ldr r3, [fp, 4]! | r3 = *(arg_4h);
0x00002ef2 str r3, [r7, 0x30] | var_30h_2 = r3;
0x00002ef4 ldr r5, [r3] | r5 = *(r3);
0x00002ef6 cmp r5, 0 |
| if (r5 == 0) {
0x00002ef8 beq.w 0x3184 | goto label_36;
| }
0x00002efc ldrb r3, [r5] | r3 = *(r5);
0x00002efe cmp r3, 0 |
| if (r3 == 0) {
0x00002f00 beq.w 0x3068 | goto label_37;
| }
0x00002f04 mov r0, r5 | r0 = r5;
0x00002f06 blx 0x15bc | r0 = fcn_000015bc ();
0x00002f0a mov r1, r0 | r1 = r0;
| label_5:
0x00002f0c movs r3, 0x21 | r3 = 0x21;
0x00002f0e mov r2, r8 | r2 = r8;
0x00002f10 mov r0, r5 | r0 = r5;
0x00002f12 blx 0x189c | r0 = fcn_0000189c ();
0x00002f16 subs r4, r0, 0 | r4 = r0 - 0;
0x00002f18 mov r2, r8 | r2 = r8;
0x00002f1a ite eq |
| if (r4 != r0) {
0x00002f1c moveq r3, r5 | r3 = r5;
| }
| if (r4 == r0) {
0x00002f1e movne r3, r4 | r3 = r4;
| }
0x00002f20 mov r1, sl | r1 = sl;
0x00002f22 movs r0, 1 | r0 = 1;
0x00002f24 blx 0x1534 | printf_chk ()
0x00002f28 ldr r3, [r7, 0x30] | r3 = var_30h_2;
0x00002f2a ldrb r2, [r3, 4] | r2 = *((r3 + 4));
0x00002f2c lsls r1, r2, 0x1f | r1 = r2 << 0x1f;
0x00002f2e bmi.w 0x2df0 |
| }
0x00002f32 ldr r2, [r7, 0x2c] | r2 = var_2ch_2;
0x00002f34 movs r1, 1 | r1 = 1;
0x00002f36 ldr r3, [pc, 0x198] | r3 = *(0x30d2);
0x00002f38 ldr r0, [r7, 0x20] | r0 = var_20h_2;
0x00002f3a ldr r5, [r2, r3] | r5 = *((r2 + r3));
0x00002f3c movs r2, 8 | r2 = 8;
0x00002f3e ldr r3, [r5] | r3 = *(r5);
0x00002f40 blx 0x1694 | fcn_00001694 ();
0x00002f44 b 0x2e04 | goto label_2;
| label_25:
0x00002f46 ldr r3, [pc, 0x1ac] |
0x00002f48 movs r2, 1 | r2 = 1;
0x00002f4a mov r0, r6 | r0 = r6;
0x00002f4c add r3, pc | r3 = 0x6046;
0x00002f4e str r3, [sp, 4] | var_4h = r3;
0x00002f50 ldr r3, [pc, 0x1a4] |
0x00002f52 add r3, pc | r3 = 0x604e;
0x00002f54 str r3, [sp] | *(sp) = r3;
0x00002f56 movs r3, 0x40 | r3 = 0x40;
0x00002f58 mov r1, r3 | r1 = r3;
0x00002f5a blx 0x1658 | fcn_00001658 ();
0x00002f5e b 0x2dae | goto label_3;
| label_26:
0x00002f60 blx 0x17a8 | r0 = fcn_000017a8 ();
0x00002f64 mov r4, r0 | r4 = r0;
0x00002f66 mov r0, r6 | r0 = r6;
0x00002f68 subs r4, 0x24 | r4 -= 0x24;
0x00002f6a blx 0x15bc | r0 = fcn_000015bc ();
0x00002f6e sub.w r8, r4, r0 | r8 = r4 - r0;
0x00002f72 cmp.w r8, 0xa |
0x00002f76 it lt |
| if (r8 >= 0xa) {
0x00002f78 movlt r8, 0xa | r8 = 0xa;
| }
0x00002f7c blx 0x1640 | r0 = fcn_00001640 ();
0x00002f80 cmp r0, 0 |
| if (r0 == 0) {
0x00002f82 beq.w 0x322c | goto label_38;
| }
0x00002f86 ldr.w sb, [pc, 0x174] |
0x00002f8a add sb, pc | sb = 0x608c;
| label_11:
0x00002f8c blx 0x1640 | r0 = fcn_00001640 ();
0x00002f90 cmp r0, 0 |
| if (r0 == 0) {
0x00002f92 beq.w 0x32c2 | goto label_39;
| }
0x00002f96 ldr r5, [pc, 0x168] |
0x00002f98 add r5, pc | r5 = 0x609e;
| label_17:
0x00002f9a blx 0x1640 | r0 = fcn_00001640 ();
0x00002f9e cmp r0, 0 |
| if (r0 == 0) {
0x00002fa0 beq.w 0x32b4 | goto label_40;
| }
0x00002fa4 ldr r3, [pc, 0x15c] |
0x00002fa6 add r3, pc | r3 = 0x60ae;
0x00002fa8 str r3, [r7, 4] | var_4h_2 = r3;
| label_16:
0x00002faa ldr r3, [pc, 0x15c] |
0x00002fac ldr r2, [pc, 0x15c] |
0x00002fae add r3, pc |
0x00002fb0 ldr r3, [r3] | r3 = *(0x60bc);
0x00002fb2 add r2, pc |
0x00002fb4 ldr r2, [r2] | r2 = *(0x60c2);
0x00002fb6 cmp r3, 0 |
| if (r3 != 0) {
0x00002fb8 bne.w 0x3242 | goto label_41;
| }
0x00002fbc cmp r2, 0 |
| if (r2 == 0) {
0x00002fbe beq.w 0x3334 | goto label_42;
| }
0x00002fc2 ldr r1, [pc, 0x14c] |
0x00002fc4 str r5, [r7, 0x1c] | var_1ch_2 = r5;
0x00002fc6 add r1, pc | r1 = 0x60dc;
0x00002fc8 str r1, [r7, 0x14] | var_14h_2 = r1;
0x00002fca mov r1, sb | r1 = sb;
| label_13:
0x00002fcc cmp r2, 1 |
| if (r2 == 1) {
0x00002fce beq.w 0x3306 | goto label_43;
| }
0x00002fd2 ldr r2, [pc, 0x140] |
0x00002fd4 add r2, pc | r2 = 0x60ee;
0x00002fd6 str r2, [r7] | *(r7) = r2;
| label_18:
0x00002fd8 cmp r3, 1 |
| if (r3 == 1) {
0x00002fda beq.w 0x32de | goto label_44;
| }
| label_19:
0x00002fde cmp r3, 2 |
| if (r3 == 2) {
0x00002fe0 beq.w 0x32a4 | goto label_45;
| }
0x00002fe4 cmp r3, 3 |
| if (r3 != 3) {
0x00002fe6 bne.w 0x3290 | goto label_46;
| }
0x00002fea ldr r4, [pc, 0x12c] |
0x00002fec mov r2, sb | r2 = sb;
0x00002fee mov r3, r5 | r3 = r5;
0x00002ff0 add r4, pc | r4 = 0x610e;
0x00002ff2 mov sb, r4 | sb = r4;
0x00002ff4 mov r5, r4 | r5 = r4;
0x00002ff6 str r4, [r7, 0x20] | var_20h_2 = r4;
0x00002ff8 str r4, [r7, 0x28] | var_28h_2 = r4;
| label_15:
0x00002ffa strd r3, r2, [r7, 8] | __asm ("strd r3, r2, [var_8h_2]");
0x00002ffe str r1, [r7, 0x10] | var_10h_2 = r1;
0x00003000 blx 0x161c | fcn_0000161c ();
0x00003002 add.w sb, ip, r7, lsr 27 | sb = ip + (r7 >> 27);
0x00003006 movs r1, 3 | r1 = 3;
0x00003008 ldr r3, [r7, 8] | r3 = var_8h_2;
0x0000300a cmp r0, 0 |
| if (r0 != 0) {
0x0000300c bne.w 0x323c | goto label_47;
| }
0x00003010 ldr r0, [pc, 0x108] |
0x00003012 add r0, pc | r0 = 0x6132;
| label_12:
0x00003014 str r3, [sp, 0x2c] | var_2ch = r3;
0x00003016 ldr r3, [r7, 0x20] | r3 = var_20h_2;
0x00003018 str r2, [sp, 0x24] | var_24h = r2;
0x0000301a str r0, [sp, 0x48] | var_48h = r0;
0x0000301c movs r0, 1 | r0 = 1;
0x0000301e str r3, [sp, 0x20] | var_20h = r3;
0x00003020 ldr r3, [r7, 0x28] | r3 = var_28h_2;
0x00003022 ldr r2, [r7, 4] | r2 = var_4h_2;
0x00003024 str.w sb, [sp, 0x18] | __asm ("str.w sb, [var_18h]");
0x00003028 str r3, [sp, 0x14] | var_14h = r3;
0x0000302a ldr r3, [r7] | r3 = *(r7);
0x0000302c str.w r8, [sp] | __asm ("str.w r8, [sp]");
0x00003030 str r4, [sp, 0x30] | var_30h = r4;
0x00003032 str r3, [sp, 0x10] | var_10h = r3;
0x00003034 ldr r3, [r7, 0x14] | r3 = var_14h_2;
0x00003036 str r4, [sp, 0x3c] | var_3ch = r4;
0x00003038 str r6, [sp, 0x1c] | var_1ch = r6;
0x0000303a str r3, [sp, 0xc] | var_ch = r3;
0x0000303c ldr r3, [r7, 0x1c] | r3 = var_1ch_2;
0x0000303e str r5, [sp, 0x44] | var_44h = r5;
0x00003040 str r5, [sp, 0x38] | var_38h = r5;
0x00003042 str r3, [sp, 8] | var_8h = r3;
0x00003044 mov r3, r1 | r3 = r1;
0x00003046 ldr r1, [pc, 0xd8] |
0x00003048 add r1, pc | r1 = 0x616e;
0x0000304a str r1, [sp, 0x28] | var_28h = r1;
0x0000304c ldr r1, [pc, 0xd4] |
0x0000304e add r1, pc | r1 = 0x6176;
0x00003050 str r1, [sp, 4] | var_4h = r1;
0x00003052 ldr r1, [pc, 0xd4] |
0x00003054 add r1, pc | r1 = 0x6182;
0x00003056 str r1, [sp, 0x40] | var_40h = r1;
0x00003058 ldr r1, [pc, 0xd0] |
0x0000305a add r1, pc | r1 = 0x618a;
0x0000305c str r1, [sp, 0x34] | var_34h = r1;
0x0000305e ldr r1, [pc, 0xd0] |
0x00003060 add r1, pc | r1 = 0x6196;
0x00003062 blx 0x1534 | printf_chk ()
0x00003066 b 0x2dc4 | goto label_4;
| label_37:
0x00003068 ldr r5, [pc, 0xc8] |
0x0000306a movs r1, 1 | r1 = 1;
0x0000306c add r5, pc | r5 = 0x61a4;
0x0000306e b 0x2f0c | goto label_5;
| label_34:
0x00003070 ldr r2, [pc, 0xc4] |
0x00003072 add r2, pc | r2 = 0x61ae;
0x00003074 b 0x2ebc | goto label_6;
| label_32:
0x00003076 ldr r2, [pc, 0xc4] |
0x00003078 add r2, pc | r2 = 0x61ba;
0x0000307a b 0x2e8a | goto label_7;
| label_30:
0x0000307c ldr r2, [pc, 0xc0] |
0x0000307e add r2, pc | r2 = 0x61c2;
0x00003080 b 0x2e58 | goto label_8;
| label_29:
0x00003082 ldr r0, [pc, 0xc0] |
0x00003084 movs r2, 7 | r2 = 7;
0x00003086 ldr r3, [r5] | r3 = *(r5);
0x00003088 movs r1, 1 | r1 = 1;
0x0000308a add r0, pc | r0 = 0x61d4;
0x0000308c blx 0x1694 | fcn_00001694 ();
0x00003090 b 0x2e30 | goto label_9;
| label_28:
0x00003148 ldrd r0, r1, [r3, 0x18] | __asm ("ldrd r0, r1, [r3, 0x18]");
0x0000314c mov.w r2, 0x3e8 | r2 = 0x3e8;
0x00003150 movs r3, 0 | r3 = 0;
0x00003152 bl 0x420c | fcn_0000420c (r0, r1, r2, r3);
0x00003156 mov r3, r1 | r3 = r1;
0x00003158 ldr r1, [pc, 0x21c] |
0x0000315a mov r2, r0 | r2 = r0;
0x0000315c add r1, pc | r1 = 0x64d8;
0x0000315e ldrb r1, [r1] | r1 = *(r1);
0x00003160 cmp r1, 0 |
| if (r1 != 0) {
0x00003162 bne 0x31da | goto label_48;
| }
0x00003164 vmov.i32 d16, 0 | __asm ("vmov.i32 d16, 0");
0x00003168 movs r1, 0x40 | r1 = 0x40;
0x0000316a mov r0, r6 | r0 = r6;
0x0000316c vstr d16, [sp] | __asm ("vstr d16, [sp]");
0x00003170 blx 0x14d4 | r0 = format_timespan ();
0x00003174 mov r3, r0 | r3 = r0;
| do {
0x00003176 ldr r1, [pc, 0x204] |
0x00003178 movs r0, 1 | r0 = 1;
0x0000317a ldr r2, [r7, 0x1c] | r2 = var_1ch_2;
0x0000317c add r1, pc | r1 = 0x64fe;
0x0000317e blx 0x1534 | printf_chk ()
0x00003182 b 0x2e30 | goto label_9;
| label_36:
0x00003184 ldr r5, [pc, 0x1f8] |
0x00003186 movs r1, 1 | r1 = 1;
0x00003188 add r5, pc | r5 = 0x650c;
0x0000318a b 0x2f0c | goto label_5;
| label_31:
0x0000318c strd r2, r3, [sp, 8] | __asm ("strd r2, r3, [var_ch]");
0x00003190 mov r0, r6 | r0 = r6;
0x00003192 ldr r3, [pc, 0x1f0] |
0x00003194 movs r2, 1 | r2 = 1;
0x00003196 add r3, pc | r3 = 0x6520;
0x00003198 str r3, [sp] | *(sp) = r3;
0x0000319a movs r3, 0x40 | r3 = 0x40;
0x0000319c mov r1, r3 | r1 = r3;
0x0000319e blx 0x1658 | fcn_00001658 ();
0x000031a2 mov r2, r6 | r2 = r6;
0x000031a4 b 0x2e58 | goto label_8;
| label_35:
0x000031a6 strd r2, r3, [sp, 8] | __asm ("strd r2, r3, [var_ch]");
0x000031aa mov r0, r6 | r0 = r6;
0x000031ac ldr r3, [pc, 0x1d8] |
0x000031ae movs r2, 1 | r2 = 1;
0x000031b0 add r3, pc | r3 = 0x653c;
0x000031b2 str r3, [sp] | *(sp) = r3;
0x000031b4 movs r3, 0x40 | r3 = 0x40;
0x000031b6 mov r1, r3 | r1 = r3;
0x000031b8 blx 0x1658 | fcn_00001658 ();
0x000031bc mov r2, r6 | r2 = r6;
0x000031be b 0x2ebc | goto label_6;
| label_33:
0x000031c0 strd r2, r3, [sp, 8] | __asm ("strd r2, r3, [var_ch]");
0x000031c4 mov r0, r6 | r0 = r6;
0x000031c6 ldr r3, [pc, 0x1c4] |
0x000031c8 movs r2, 1 | r2 = 1;
0x000031ca add r3, pc | r3 = 0x655c;
0x000031cc str r3, [sp] | *(sp) = r3;
0x000031ce movs r3, 0x40 | r3 = 0x40;
0x000031d0 mov r1, r3 | r1 = r3;
0x000031d2 blx 0x1658 | fcn_00001658 ();
0x000031d6 mov r2, r6 | r2 = r6;
0x000031d8 b 0x2e8a | goto label_7;
| label_48:
0x000031da strd r2, r3, [sp, 8] | __asm ("strd r2, r3, [var_ch]");
0x000031de mov r0, r6 | r0 = r6;
0x000031e0 ldr r3, [pc, 0x1ac] |
0x000031e2 movs r2, 1 | r2 = 1;
0x000031e4 add r3, pc | r3 = 0x6578;
0x000031e6 str r3, [sp] | *(sp) = r3;
0x000031e8 movs r3, 0x40 | r3 = 0x40;
0x000031ea mov r1, r3 | r1 = r3;
0x000031ec blx 0x1658 | fcn_00001658 ();
0x000031f0 mov r3, r6 | r3 = r6;
0x000031f2 b 0x3176 |
| } while (1);
| label_27:
0x000031f4 ldr r2, [pc, 0x19c] |
0x000031f6 ldr r3, [pc, 0x1a0] | r3 = *(0x339a);
0x000031f8 add r2, pc | r2 = 0x6590;
0x000031fa ldr r3, [r2, r3] | r3 = *(0x6590);
0x000031fc ldr r2, [r3] | r2 = *(0x6590);
0x000031fe ldr r3, [r7, 0x7c] | r3 = var_7ch;
0x00003200 eors r2, r3 | r2 ^= r3;
0x00003202 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00003206 bne.w 0x3352 | goto label_49;
| }
0x0000320a adds r7, 0x84 | r7 += 0x84;
0x0000320c mov sp, r7 |
0x0000320e vpop {d8} | __asm ("vpop {d8}");
0x00003212 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_21:
0x00003216 ldr r5, [r7, 0x2c] | r5 = var_2ch_2;
0x00003218 movs r2, 7 | r2 = 7;
0x0000321a ldr r3, [pc, 0x180] |
0x0000321c movs r1, 1 | r1 = 1;
0x0000321e ldr r0, [pc, 0x180] |
0x00003220 ldr r3, [r5, r3] | r3 = *((r5 + r3));
0x00003222 add r0, pc | r0 = 0x65c8;
0x00003224 ldr r3, [r3] | r3 = *(0x339e);
0x00003226 blx 0x1694 | fcn_00001694 ();
0x0000322a b 0x2c82 | goto label_10;
| label_38:
0x0000322c blx 0x161c | r0 = fcn_0000161c ();
0x00003230 cmp r0, 0 |
| if (r0 == 0) {
0x00003232 beq 0x32f0 | goto label_50;
| }
0x00003234 ldr.w sb, [pc, 0x16c] |
0x00003238 add sb, pc | sb = 0x65e0;
0x0000323a b 0x2f8c | goto label_11;
| label_47:
0x0000323c ldr r0, [pc, 0x168] |
0x0000323e add r0, pc | r0 = 0x65ea;
0x00003240 b 0x3014 | goto label_12;
| label_41:
0x00003242 cmp r3, 1 |
| if (r3 != 1) {
0x00003244 bne 0x330e | goto label_51;
| }
0x00003246 cmp r2, 0 |
| if (r2 == 0) {
0x00003248 beq 0x32ce | goto label_52;
| }
0x0000324a ldr r1, [pc, 0x160] |
0x0000324c str.w sb, [r7, 0x14] | __asm ("str.w sb, [var_14h_2]");
0x00003250 add r1, pc | r1 = 0x6602;
0x00003252 str r1, [r7, 0x1c] | var_1ch_2 = r1;
0x00003254 b 0x2fcc | goto label_13;
| label_20:
0x00003256 ldr r1, [pc, 0x158] |
0x00003258 movw r2, 0x259 | r2 = 0x259;
0x0000325c ldr r3, [pc, 0x154] |
0x0000325e ldr r0, [pc, 0x158] |
0x00003260 add r1, pc | r1 = 0x6616;
0x00003262 add r3, pc | r3 = 0x661a;
0x00003264 adds r1, 7 | r1 += 7;
0x00003266 add r0, pc | r0 = 0x6624;
0x00003268 blx 0x15f8 | r0 = fcn_000015f8 ();
| label_22:
0x0000326c lsrs r3, r0, 0x1e | r3 = r0 >> 0x1e;
| if (r3 != r0) {
0x0000326e bne 0x3356 | goto label_53;
| }
0x00003270 lsls r0, r0, 2 | r0 <<= 2;
0x00003272 cmp.w r0, 0x400000 |
| if (r0 < 0x400000) {
0x00003276 bls.w 0x2c8e | goto label_14;
| }
0x0000327a ldr r1, [pc, 0x140] |
0x0000327c movw r2, 0x25e | r2 = 0x25e;
0x00003280 ldr r3, [pc, 0x13c] |
0x00003282 ldr r0, [pc, 0x140] |
0x00003284 add r1, pc | r1 = 0x6646;
0x00003286 add r3, pc | r3 = 0x664a;
0x00003288 adds r1, 7 | r1 += 7;
0x0000328a add r0, pc | r0 = 0x6654;
0x0000328c blx 0x15f8 | fcn_000015f8 ();
| label_46:
0x00003290 cmp r3, 4 |
| if (r3 == 4) {
0x00003292 bne 0x3322 |
0x00003294 ldr r3, [pc, 0x130] |
0x00003296 mov r4, sb | r4 = sb;
0x00003298 add r3, pc | r3 = 0x6664;
0x0000329a mov sb, r3 | sb = r3;
0x0000329c mov r2, r3 | r2 = r3;
0x0000329e str r3, [r7, 0x20] | var_20h_2 = r3;
0x000032a0 str r3, [r7, 0x28] | var_28h_2 = r3;
0x000032a2 b 0x2ffa | goto label_15;
| label_45:
0x000032a4 ldr r4, [pc, 0x124] |
0x000032a6 str r5, [r7, 0x20] | var_20h_2 = r5;
0x000032a8 add r4, pc | r4 = 0x6678;
0x000032aa mov r3, r4 | r3 = r4;
0x000032ac mov r2, r4 | r2 = r4;
0x000032ae mov r5, r4 | r5 = r4;
0x000032b0 str r4, [r7, 0x28] | var_28h_2 = r4;
0x000032b2 b 0x2ffa | goto label_15;
| label_40:
0x000032b4 blx 0x161c | r0 = fcn_0000161c ();
| if (r0 != 0) {
0x000032b8 cbz r0, 0x32fe |
0x000032ba ldr r3, [pc, 0x114] |
0x000032bc add r3, pc | r3 = 0x6692;
0x000032be str r3, [r7, 4] | var_4h_2 = r3;
0x000032c0 b 0x2faa | goto label_16;
| label_39:
0x000032c2 blx 0x161c | r0 = fcn_0000161c ();
| if (r0 != 0) {
0x000032c6 cbz r0, 0x32f8 |
0x000032c8 ldr r5, [pc, 0x108] |
0x000032ca add r5, pc | r5 = 0x66a2;
0x000032cc b 0x2f9a | goto label_17;
| label_52:
0x000032ce ldr r1, [pc, 0x108] |
0x000032d0 ldr r3, [pc, 0x108] |
0x000032d2 str.w sb, [r7, 0x14] | __asm ("str.w sb, [var_14h_2]");
0x000032d6 add r1, pc | r1 = 0x66b4;
0x000032d8 add r3, pc | r3 = 0x66b8;
0x000032da str r1, [r7, 0x1c] | var_1ch_2 = r1;
0x000032dc str r3, [r7] | *(r7) = r3;
| label_44:
0x000032de ldr r4, [pc, 0x100] |
0x000032e0 str r5, [r7, 0x28] | var_28h_2 = r5;
0x000032e2 add r4, pc | r4 = 0x66c8;
0x000032e4 mov r3, r4 | r3 = r4;
0x000032e6 mov r2, r4 | r2 = r4;
0x000032e8 mov sb, r4 | sb = r4;
0x000032ea mov r5, r4 | r5 = r4;
0x000032ec str r4, [r7, 0x20] | var_20h_2 = r4;
0x000032ee b 0x2ffa | goto label_15;
| label_50:
0x000032f0 ldr.w sb, [pc, 0xf0] |
0x000032f4 add sb, pc | sb = 0x66dc;
0x000032f6 b 0x2f8c | goto label_11;
| }
0x000032f8 ldr r5, [pc, 0xec] |
0x000032fa add r5, pc | r5 = 0x66e6;
0x000032fc b 0x2f9a | goto label_17;
| }
0x000032fe ldr r3, [pc, 0xec] |
0x00003300 add r3, pc | r3 = 0x66f2;
0x00003302 str r3, [r7, 4] | var_4h_2 = r3;
0x00003304 b 0x2faa | goto label_16;
| label_43:
0x00003306 ldr r2, [pc, 0xe8] |
0x00003308 add r2, pc | r2 = 0x66fe;
0x0000330a str r2, [r7] | *(r7) = r2;
0x0000330c b 0x2fd8 | goto label_18;
| if (r2 != 0) {
| label_51:
0x0000330e cbnz r2, 0x336c | goto label_54;
| }
0x00003310 ldr r2, [pc, 0xe0] |
0x00003312 ldr r1, [pc, 0xe4] |
0x00003314 add r2, pc | r2 = 0x670c;
0x00003316 add r1, pc | r1 = 0x6714;
0x00003318 str r2, [r7, 0x14] | var_14h_2 = r2;
0x0000331a str r1, [r7] | *(r7) = r1;
0x0000331c mov r1, r2 | r1 = r2;
0x0000331e str r2, [r7, 0x1c] | var_1ch_2 = r2;
0x00003320 b 0x2fde | goto label_19;
| }
0x00003322 ldr r4, [pc, 0xd8] |
0x00003324 add r4, pc | r4 = 0x6726;
0x00003326 mov sb, r4 | sb = r4;
0x00003328 mov r3, r4 | r3 = r4;
0x0000332a mov r2, r4 | r2 = r4;
0x0000332c mov r5, r4 | r5 = r4;
0x0000332e str r4, [r7, 0x20] | var_20h_2 = r4;
0x00003330 str r4, [r7, 0x28] | var_28h_2 = r4;
0x00003332 b 0x2ffa | goto label_15;
| label_42:
0x00003334 ldr r4, [pc, 0xc8] |
0x00003336 mov r1, sb | r1 = sb;
0x00003338 ldr r3, [pc, 0xc8] |
0x0000333a str r5, [r7, 0x1c] | var_1ch_2 = r5;
0x0000333c add r4, pc | r4 = 0x6740;
0x0000333e add r3, pc | r3 = 0x6746;
0x00003340 mov sb, r4 | sb = r4;
0x00003342 str r3, [r7] | *(r7) = r3;
0x00003344 mov r2, r4 | r2 = r4;
0x00003346 mov r3, r4 | r3 = r4;
0x00003348 mov r5, r4 | r5 = r4;
0x0000334a str r4, [r7, 0x20] | var_20h_2 = r4;
0x0000334c str r4, [r7, 0x28] | var_28h_2 = r4;
0x0000334e str r4, [r7, 0x14] | var_14h_2 = r4;
0x00003350 b 0x2ffa | goto label_15;
| label_49:
0x00003352 blx 0x16e8 | fcn_000016e8 ();
| label_53:
0x00003356 ldr r1, [pc, 0xb0] |
0x00003358 movw r2, 0x25e | r2 = 0x25e;
0x0000335c ldr r3, [pc, 0xac] |
0x0000335e ldr r0, [pc, 0xb0] |
0x00003360 add r1, pc | r1 = 0x676e;
0x00003362 add r3, pc | r3 = 0x6772;
0x00003364 adds r1, 7 | r1 += 7;
0x00003366 add r0, pc | r0 = 0x677c;
0x00003368 blx 0x15f8 | fcn_000015f8 ();
| label_54:
0x0000336c ldr r1, [pc, 0xa4] |
0x0000336e add r1, pc | r1 = 0x6786;
0x00003370 str r1, [r7, 0x14] | var_14h_2 = r1;
0x00003372 str r1, [r7, 0x1c] | var_1ch_2 = r1;
0x00003374 b 0x2fcc | goto label_13;
| }
[*] Function printf used 9 times systemd-cgtop