[*] Binary protection state of fwmgr
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function strcpy tear down of fwmgr
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/fwmgr @ 0x67a8 */
| #include <stdint.h>
|
; (fcn) fcn.000067a8 () | void fcn_000067a8 (uint32_t arg1, int16_t arg2) {
| int16_t var_0h;
| char * str;
| int16_t var_4ch;
| int16_t var_0h_2;
| int16_t var_ch_2;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_1ch;
| char * dest;
| int16_t var_60h;
| char * path;
| char * s2;
| int16_t var_e4h;
| r0 = arg1;
| r1 = arg2;
0x000067a8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x000067ac sub sp, 0xec |
0x000067ae ldr.w r4, [pc, 0x530] | r4 = *(0x00006ce0);
0x000067b2 ldr.w r2, [pc, 0x530] |
0x000067b6 add r4, pc | r4 += pc;
0x000067b8 ldr.w r6, [pc, 0x52c] | r6 = *(0x00006ce8);
0x000067bc ldr.w r3, [pc, 0x52c] | r3 = *(0x6cec);
0x000067c0 ldr r2, [r4, r2] | r2 = *((r4 + r2));
0x000067c2 add r6, pc | r6 += pc;
0x000067c4 ldr r2, [r2] | r2 = *(0x6ce6);
0x000067c6 str r2, [sp, 0xe4] | var_e4h = r2;
0x000067c8 mov.w r2, 0 | r2 = 0;
0x000067cc ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x000067ce ldrb r3, [r3] | r3 = *(r3);
| if (r3 == 0) {
0x000067d0 cbz r3, 0x6804 | goto label_13;
| }
0x000067d2 ldr.w r7, [pc, 0x51c] | r7 = *(0x00006cf0);
0x000067d6 add r7, pc | r7 += pc;
0x000067d8 ldrb r3, [r7, 8] | r3 = *((r7 + 8));
0x000067da cmp r3, 0 |
| if (r3 == 0) {
0x000067dc beq.w 0x6986 | goto label_14;
| }
| do {
| label_0:
0x000067e0 movs r4, 0 | r4 = 0;
| label_1:
0x000067e2 ldr.w r2, [pc, 0x510] | r2 = *(0x00006cf4);
0x000067e6 ldr.w r3, [pc, 0x4fc] | r3 = *(0x6ce6);
0x000067ea add r2, pc | r2 += pc;
0x000067ec ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x000067ee ldr r2, [r3] | r2 = *(0x6ce6);
0x000067f0 ldr r3, [sp, 0xe4] | r3 = var_e4h;
0x000067f2 eors r2, r3 | r2 ^= r3;
0x000067f4 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x000067f8 bne.w 0x6cdc | goto label_15;
| }
0x000067fc mov r0, r4 | r0 = r4;
0x000067fe add sp, 0xec |
0x00006800 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_13:
0x00006804 ldr.w r3, [pc, 0x4f0] | r3 = *(0x00006cf8);
0x00006808 mov r4, r0 | r4 = r0;
0x0000680a add r3, pc | r3 += pc;
0x0000680c ldr r2, [r3] | r2 = *(r3);
0x0000680e cmp r2, r0 |
0x00006810 beq 0x67e0 |
| } while (r2 == r0);
0x00006812 ldr.w r2, [r3, 0xc4] | r2 = *((r3 + 0xc4));
0x00006816 cmp r2, r0 |
| if (r2 == r0) {
0x00006818 beq 0x67e0 | goto label_0;
| }
0x0000681a sub.w r7, r1, 1 | r7 = r1 - 1;
0x0000681e mov r5, r1 | r5 = r1;
0x00006820 clz r7, r7 | r7 &= r7;
0x00006824 lsrs r7, r7, 5 | r7 >>= 5;
0x00006826 lsls r1, r7, 2 | r1 = r7 << 2;
0x00006828 add.w sb, r3, r1 | sb = r3 + r1;
0x0000682c ldr.w r8, [sb, 0x188] | r8 = *((sb + 0x188));
0x0000682e strh r0, [r1, 0xc] | *((r1 + 0xc)) = r0;
0x00006830 cmp.w r8, 0 |
| if (r8 < 0) {
0x00006834 blt.w 0x6a90 | goto label_16;
| }
0x00006838 cmp.w r8, 0 |
| if (r8 == 0) {
0x0000683c beq 0x67e0 | goto label_0;
| }
| label_2:
0x0000683e blx 0x2f88 | cxa_finalize ();
0x00006842 cmp.w r8, 1 |
0x00006846 mov sl, r0 | sl = r0;
| if (r8 > 1) {
0x00006848 bgt.w 0x6be4 | goto label_17;
| }
0x0000684a strh r4, [r1, 0xe] | *((r1 + 0xe)) = r4;
0x0000684c ldr.w r3, [pc, 0x4ac] | r3 = *(0x00006cfc);
0x00006850 add r3, pc | r3 += pc;
0x00006852 ldr r2, [r3] | r2 = *(r3);
0x00006854 adds r2, 1 | r2++;
| if (r2 == 1) {
0x00006856 beq.w 0x6ac8 | goto label_18;
| }
0x0000685a ldr.w r3, [r3, 0xc4] | r3 = *((r3 + 0xc4));
0x0000685e adds r3, 1 | r3++;
0x00006860 it eq |
| if (r3 != 1) {
0x00006862 moveq fp, 1 |
| }
| if (r3 != 1) {
0x00006866 bne.w 0x6c3e | goto label_19;
| }
| label_4:
0x0000686a cmp r5, 4 |
| if (r5 == 4) {
0x0000686c beq.w 0x6bfa | goto label_20;
| }
0x00006870 cmp r5, 1 |
| if (r5 < 1) {
0x00006872 bls.w 0x6b18 | goto label_21;
| }
0x00006874 strh r1, [r2, 0xa] | *((r2 + 0xa)) = r1;
0x00006876 movs r3, 0xc4 | r3 = 0xc4;
0x00006878 ldr.w ip, [pc, 0x484] | ip = *(0x00006d00);
0x0000687c mul r7, r3, fp | r7 = r3 * fp;
0x00006880 ldr.w sb, [pc, 0x480] | sb = *(0x00006d04);
0x00006884 add ip, pc |
0x00006886 add sb, pc | sb += pc;
0x00006888 add.w ip, ip, 0x4c |
0x0000688a lsrs r4, r1, 0x11 | r4 = r1 >> 0x11;
0x0000688c add.w r3, sb, r7 | r3 = sb + r7;
0x00006890 add.w r2, r7, 0x44 | r2 = r7 + 0x44;
0x00006894 add.w lr, r3, 4 | lr = r3 + 4;
0x00006898 str r3, [sp, 0x10] | var_10h = r3;
0x0000689a str r2, [sp, 0xc] | var_ch_2 = r2;
0x0000689c add.w r8, r7, 4 | r8 = r7 + 4;
0x000068a0 ldm.w ip!, {r0, r1, r2, r3} | r0 = *(ip!);
| r1 = *((ip! + 4));
| r2 = *((ip! + 8));
| r3 = *((ip! + 12));
0x000068a4 add r8, sb | r8 += sb;
0x000068a6 stm.w lr!, {r0, r1, r2, r3} | *(lr!) = r0;
| *((lr! + 4)) = r1;
| *((lr! + 8)) = r2;
| *((lr! + 12)) = r3;
0x000068aa ldm.w ip!, {r0, r1, r2, r3} | r0 = *(ip!);
| r1 = *((ip! + 4));
| r2 = *((ip! + 8));
| r3 = *((ip! + 12));
0x000068ae stm.w lr!, {r0, r1, r2, r3} | *(lr!) = r0;
| *((lr! + 4)) = r1;
| *((lr! + 8)) = r2;
| *((lr! + 12)) = r3;
0x000068b2 ldm.w ip!, {r0, r1, r2, r3} | r0 = *(ip!);
| r1 = *((ip! + 4));
| r2 = *((ip! + 8));
| r3 = *((ip! + 12));
0x000068b6 stm.w lr!, {r0, r1, r2, r3} | *(lr!) = r0;
| *((lr! + 4)) = r1;
| *((lr! + 8)) = r2;
| *((lr! + 12)) = r3;
0x000068ba ldm.w ip, {r0, r1, r2, r3} | r0 = *(ip);
| r1 = *((ip + 4));
| r2 = *((ip + 8));
| r3 = *((ip + 12));
0x000068be stm.w lr, {r0, r1, r2, r3} | *(lr) = r0;
| *((lr + 4)) = r1;
| *((lr + 8)) = r2;
| *((lr + 12)) = r3;
0x000068c2 movs r1, 0x40 | r1 = 0x40;
0x000068c4 ldr r2, [sp, 0xc] | r2 = var_ch_2;
0x000068c6 add.w r0, sb, r2 | r0 = sb + r2;
0x000068ca movs r2, 0 | r2 = 0;
0x000068cc blx 0x2abc | r0 = fcn_00002abc ();
0x000068d0 cmp r0, 0 |
| if (r0 < 0) {
0x000068d2 blt.w 0x6aba | goto label_8;
| }
0x000068d6 cmp r5, 3 |
| if (r5 != 3) {
0x000068d8 bne.w 0x6c26 | goto label_22;
| }
0x000068dc movs r3, 0xc4 | r3 = 0xc4;
0x000068de rsb.w r0, fp, 1 | r0 = 1 - fp;
0x000068e2 mla r0, r3, r0, sb | __asm ("mla r0, r3, r0, sb");
0x000068e6 add r5, sp, 0xa4 | r5 += s2;
0x000068e8 mov r2, r5 | r2 = r5;
0x000068ea movs r1, 0xc0 | r1 = 0xc0;
0x000068ec adds r0, 4 | r0 += 4;
0x000068ee mov r7, r5 | r7 = r5;
0x000068f0 blx 0x27cc | SHA512 ();
0x000068f4 ldr r3, [sp, 0x10] | r3 = var_10h;
0x000068f6 add.w fp, r3, 0x84 |
0x000068fa ldm r7!, {r0, r1, r2, r3} | r0 = *(r7!);
| r1 = *((r7! + 4));
| r2 = *((r7! + 8));
| r3 = *((r7! + 12));
0x000068fc stm.w fp!, {r0, r1, r2, r3} | *(fp!) = r0;
| *((fp! + 4)) = r1;
| *((fp! + 8)) = r2;
| *((fp! + 12)) = r3;
0x00006900 ldm r7!, {r0, r1, r2, r3} | r0 = *(r7!);
| r1 = *((r7! + 4));
| r2 = *((r7! + 8));
| r3 = *((r7! + 12));
0x00006902 stm.w fp!, {r0, r1, r2, r3} | *(fp!) = r0;
| *((fp! + 4)) = r1;
| *((fp! + 8)) = r2;
| *((fp! + 12)) = r3;
0x00006906 ldm r7!, {r0, r1, r2, r3} | r0 = *(r7!);
| r1 = *((r7! + 4));
| r2 = *((r7! + 8));
| r3 = *((r7! + 12));
0x00006908 stm.w fp!, {r0, r1, r2, r3} | *(fp!) = r0;
| *((fp! + 4)) = r1;
| *((fp! + 8)) = r2;
| *((fp! + 12)) = r3;
0x0000690c ldm.w r7, {r0, r1, r2, r3} | r0 = *(r7);
| r1 = *((r7 + 4));
| r2 = *((r7 + 8));
| r3 = *((r7 + 12));
0x00006910 stm.w fp, {r0, r1, r2, r3} | *(fp) = r0;
| *((fp + 4)) = r1;
| *((fp + 8)) = r2;
| *((fp + 12)) = r3;
| label_9:
0x00006914 ldr r3, [pc, 0x3f0] |
0x00006916 movs r1, 1 | r1 = 1;
0x00006918 movs r2, 0x40 | r2 = 0x40;
0x0000691a mov r0, r5 | r0 = r5;
0x0000691c str r4, [sp] | *(sp) = r4;
0x0000691e add r3, pc | r3 = 0xd62a;
0x00006920 blx 0x2e80 | strncmp (r0, r1, r2);
0x00006924 ldr r0, [pc, 0x3e4] |
0x00006926 movw r1, 0x1ed | r1 = 0x1ed;
0x0000692a add r0, pc | r0 = 0xd63a;
0x0000692c bl 0x10804 | r0 = fcn_00010804 (r0, r1);
0x00006930 cmp r0, 0 |
| if (r0 != 0) {
0x00006932 bne.w 0x6aba | goto label_8;
| }
0x00006936 mov r3, r0 | r3 = r0;
0x00006938 movs r2, 0xc0 | r2 = 0xc0;
0x0000693a mov r1, r8 | r1 = r8;
0x0000693c mov r0, r5 | r0 = r5;
0x0000693e bl 0x10488 | r0 = fcn_00010488 (r0, r1, r2, r3);
0x00006942 cmp r0, 0 |
| if (r0 != 0) {
0x00006944 bne.w 0x6aba | goto label_8;
| }
0x00006948 ldr r0, [pc, 0x3c4] |
0x0000694a add r0, pc | r0 = 0xd65e;
0x0000694c bl 0x102dc | r0 = fcn_000102dc (r0);
0x00006950 cmp r0, 0 |
| if (r0 != 0) {
0x00006952 bne.w 0x6aba | goto label_8;
| }
| label_3:
0x00006956 movs r1, 0xc0 | r1 = 0xc0;
0x00006958 mov r2, r5 | r2 = r5;
0x0000695a mov r0, r8 | r0 = r8;
0x0000695c blx 0x27cc | SHA512 ();
0x00006960 ldr r3, [pc, 0x3b0] | r3 = *(0x6d14);
0x00006962 ldr r1, [pc, 0x3b4] |
0x00006964 ldr r0, [r6, r3] | r0 = *((r6 + r3));
0x00006966 add r1, pc | r1 = 0xd684;
0x00006968 blx 0x2f70 | r0 = vdprintf_chk ();
0x0000696c cmp r0, 0 |
| if (r0 != 0) {
0x0000696e bne.w 0x6afc | goto label_23;
| }
0x00006972 ldr r1, [pc, 0x3a8] |
0x00006974 add r1, pc | r1 = 0xd696;
| label_6:
0x00006976 movs r0, 2 | r0 = 2;
0x00006978 bl 0xfcdc | fcn_0000fcdc (r0);
0x0000697c movs r3, 0x16 | r3 = 0x16;
0x0000697e mov r4, r3 | r4 = r3;
0x00006980 str.w r3, [sl] | __asm ("str.w r3, [sl]");
0x00006984 b 0x67e2 | goto label_1;
| label_14:
0x00006986 add r5, sp, 0xa4 | r5 += s2;
0x00006988 mov r0, r5 | r0 = r5;
0x0000698a bl 0x65e0 | r0 = fcn_000065e0 (r0);
0x0000698e cmp r0, 0 |
| if (r0 != 0) {
0x00006990 bne.w 0x6bd2 | goto label_24;
| }
0x00006994 ldr r3, [pc, 0x37c] | r3 = *(0x6d14);
0x00006996 ldr r1, [pc, 0x388] |
0x00006998 ldr r0, [r6, r3] | r0 = *((r6 + r3));
0x0000699a add r1, pc | r1 = 0xd6c0;
0x0000699c blx 0x2f70 | vdprintf_chk ();
0x0000699e invalid |
| if (r0 != 0) {
0x000069a2 bne.w 0x6b02 | goto label_25;
| }
0x000069a6 ldr r1, [pc, 0x37c] |
0x000069a8 movs r2, 0x40 | r2 = 0x40;
0x000069aa ldr r3, [pc, 0x37c] |
0x000069ac add.w r0, r7, 0xc | r0 = r7 + 0xc;
0x000069b0 ldr.w sb, [pc, 0x378] |
0x000069b4 subs r6, r7, 1 | r6 = r7 - 1;
0x000069b6 add r1, pc | r1 = 0xd6e0;
0x000069b8 add.w r4, r7, 0x14 | r4 = r7 + 0x14;
0x000069bc str r1, [sp] | *(sp) = r1;
0x000069be add r3, pc | r3 = 0xd6ec;
0x000069c0 movs r1, 1 | r1 = 1;
0x000069c2 add sb, pc | sb = 0xd6f2;
0x000069c4 add.w r8, r7, 7 | r8 = r7 + 7;
0x000069c8 blx 0x2e80 | strncmp (r0, r1, r2);
| do {
0x000069cc ldrb r2, [r6, 1]! | r2 = *((r6 += 1));
0x000069d0 mov r0, r4 | r0 = r4;
0x000069d2 mov r3, sb | r3 = sb;
0x000069d4 movs r1, 1 | r1 = 1;
0x000069d6 adds r4, 2 | r4 += 2;
0x000069d8 str r2, [sp] | *(sp) = r2;
0x000069da mov.w r2, -1 | r2 = -1;
0x000069de blx 0x2e80 | strncmp (r0, r1, r2);
0x000069e2 cmp r8, r6 |
0x000069e4 bne 0x69cc |
| } while (r8 != r6);
0x000069e6 mov r6, r5 | r6 = r5;
0x000069e8 add r7, sp, 0x20 | r7 += dest;
0x000069ea ldm r6!, {r0, r1, r2, r3} | r0 = *(r6!);
| r1 = *((r6! + 4));
| r2 = *((r6! + 8));
| r3 = *((r6! + 12));
0x000069ec mov.w r8, 0x40 | r8 = 0x40;
0x000069f0 mov r4, r7 | r4 = r7;
0x000069f2 mov.w ip, 0 |
0x000069f6 str.w r8, [sp, 0x60] | __asm ("str.w r8, [var_60h]");
0x000069fa str.w ip, [sp, 0x1c] | __asm ("str.w ip, [var_1ch]");
0x000069fe stm r4!, {r0, r1, r2, r3} | *(r4!) = r0;
| *((r4! + 4)) = r1;
| *((r4! + 8)) = r2;
| *((r4! + 12)) = r3;
0x00006a00 ldm r6!, {r0, r1, r2, r3} | r0 = *(r6!);
| r1 = *((r6! + 4));
| r2 = *((r6! + 8));
| r3 = *((r6! + 12));
0x00006a02 stm r4!, {r0, r1, r2, r3} | *(r4!) = r0;
| *((r4! + 4)) = r1;
| *((r4! + 8)) = r2;
| *((r4! + 12)) = r3;
0x00006a04 ldm r6!, {r0, r1, r2, r3} | r0 = *(r6!);
| r1 = *((r6! + 4));
| r2 = *((r6! + 8));
| r3 = *((r6! + 12));
0x00006a06 stm r4!, {r0, r1, r2, r3} | *(r4!) = r0;
| *((r4! + 4)) = r1;
| *((r4! + 8)) = r2;
| *((r4! + 12)) = r3;
0x00006a08 ldm.w r6, {r0, r1, r2, r3} | r0 = *(r6);
| r1 = *((r6 + 4));
| r2 = *((r6 + 8));
| r3 = *((r6 + 12));
0x00006a0c stm.w r4, {r0, r1, r2, r3} | *(r4) = r0;
| *((r4 + 4)) = r1;
| *((r4 + 8)) = r2;
| *((r4 + 12)) = r3;
0x00006a10 mov r1, ip | r1 = ip;
0x00006a12 mvn r0, 2 | r0 = ~2;
0x00006a16 blx 0x2980 | r0 = fcn_00002980 ();
0x00006a1a adds r2, r0, 1 | r2 = r0 + 1;
| if (r2 == r0) {
0x00006a1c beq.w 0x6c52 | goto label_26;
| }
0x00006a20 ldr r4, [pc, 0x30c] |
0x00006a22 movs r3, 0x48 | r3 = 0x48;
0x00006a24 ldr.w sb, [pc, 0x30c] |
0x00006a28 add r2, sp, 0x1c | r2 += var_1ch;
0x00006a2a str r0, [sp] | *(sp) = r0;
0x00006a2c add r4, pc | r4 = 0xd760;
0x00006a2e add sb, pc | sb = 0xd766;
0x00006a30 adds r4, 0xc | r4 += 0xc;
0x00006a32 mov r1, r4 | r1 = r4;
0x00006a34 mov r0, sb | r0 = sb;
0x00006a36 blx 0x2f4c | r0 = strcmp (r0, r1);
0x00006a3a adds r3, r0, 1 | r3 = r0 + 1;
0x00006a3c mov r6, r0 | r6 = r0;
| if (r3 == r0) {
0x00006a3e beq.w 0x6c64 | goto label_27;
| }
0x00006a42 mvn r1, 3 | r1 = ~3;
0x00006a46 blx 0x2cd0 | r0 = bootblock_get ();
0x00006a4a cmp r0, 0 |
| if (r0 != 0) {
0x00006a4c bne 0x6ace | goto label_28;
| }
0x00006a4e movs r1, 0 | r1 = 0;
0x00006a50 mov r0, r6 | r0 = r6;
0x00006a52 movt r1, 0xc19 | r1 = (r1 & 0xFFFF) | 0xc190000;
0x00006a56 blx 0x2e10 | r0 = fcn_00002e10 ();
0x00006a5a cmp r0, 0 |
| if (r0 < 0) {
0x00006a5c blt.w 0x6cae | goto label_29;
| }
0x00006a60 ldr r1, [pc, 0x2d4] |
0x00006a62 mov r3, r6 | r3 = r6;
0x00006a64 mov r2, sb | r2 = sb;
0x00006a66 movs r0, 6 | r0 = 6;
0x00006a68 str r4, [sp] | *(sp) = r4;
0x00006a6a add r1, pc | r1 = 0xd7a6;
0x00006a6c bl 0xfcdc | fcn_0000fcdc (r0);
0x00006a70 mov r1, r8 | r1 = r8;
0x00006a72 mov r0, r7 | r0 = r7;
0x00006a74 movs r2, 0x44 | r2 = 0x44;
0x00006a76 blx 0x2b2c | strcpy (r0, r1)
0x00006a7a mov r2, r8 | r2 = r8;
0x00006a7c mov r1, r8 | r1 = r8;
0x00006a7e mov r0, r5 | r0 = r5;
0x00006a80 blx 0x2b2c | strcpy (r0, r1)
| label_5:
0x00006a84 ldr r3, [pc, 0x2b4] |
0x00006a86 movs r2, 1 | r2 = 1;
0x00006a88 movs r4, 0 | r4 = 0;
0x00006a8a add r3, pc | r3 = 0xd7ca;
0x00006a8c strb r2, [r3, 8] | *((r3 + 8)) = r2;
0x00006a8e b 0x67e2 | goto label_1;
| label_16:
0x00006a90 ldr r0, [pc, 0x2ac] |
0x00006a92 add.w r3, r3, 0x188 | r3 += 0x188;
0x00006a96 add r1, r3 | r1 += r3;
0x00006a98 mov r2, r7 | r2 = r7;
0x00006a9a add r0, pc | r0 = 0xd7de;
0x00006a9c adds r0, 0x4c | r0 += 0x4c;
0x00006a9e add.w r0, r0, r7, lsl 6 | r0 += (r7 << 6);
0x00006aa2 bl 0x6e58 | r0 = fcn_00006e58 (r0, r1, r2);
0x00006aa6 cmp r0, 0 |
| if (r0 != 0) {
0x00006aa8 bne.w 0x6c1e | goto label_30;
| }
0x00006aac ldr.w r8, [sb, 0x188] | r8 = *((sb + 0x188));
0x00006ab0 cmp.w r8, 0 |
| if (r8 != 0) {
0x00006ab4 bne.w 0x683e | goto label_2;
| }
0x00006ab8 b 0x67e0 | goto label_0;
| label_8:
0x00006aba ldr.w r4, [sl] | r4 = *(sl);
0x00006abe cmp r4, 0 |
| if (r4 != 0) {
0x00006ac0 bne.w 0x67e2 | goto label_1;
| }
| label_7:
0x00006ac4 add r5, sp, 0xa4 | r5 += s2;
0x00006ac6 b 0x6956 | goto label_3;
| label_18:
0x00006ac8 mov.w fp, 0 |
0x00006acc b 0x686a | goto label_4;
| label_28:
0x00006ace ldr r1, [pc, 0x274] |
0x00006ad0 add r1, pc | r1 = 0xd81a;
| label_11:
0x00006ad2 mov r2, r6 | r2 = r6;
0x00006ad4 movs r0, 3 | r0 = 3;
0x00006ad6 bl 0xfcdc | r0 = fcn_0000fcdc (r0);
0x00006ada blx 0x2f88 | r0 = cxa_finalize ();
0x00006ade ldr r4, [r0] | r4 = *(r0);
| label_10:
0x00006ae0 movs r2, 0x44 | r2 = 0x44;
0x00006ae2 movs r1, 0x40 | r1 = 0x40;
0x00006ae4 mov r0, r7 | r0 = r7;
0x00006ae6 blx 0x2b2c | strcpy (r0, r1)
0x00006aea movs r2, 0x40 | r2 = 0x40;
0x00006aec mov r0, r5 | r0 = r5;
0x00006aee mov r1, r2 | r1 = r2;
0x00006af0 blx 0x2b2c | strcpy (r0, r1)
0x00006af4 cmp r4, 0 |
| if (r4 != 0) {
0x00006af6 bne.w 0x67e2 | goto label_1;
| }
0x00006afa b 0x6a84 | goto label_5;
| label_23:
0x00006afc ldr r1, [pc, 0x248] |
0x00006afe add r1, pc | r1 = 0xd84a;
0x00006b00 b 0x6976 | goto label_6;
| label_25:
0x00006b02 ldr r1, [pc, 0x248] |
0x00006b04 movs r0, 2 | r0 = 2;
0x00006b06 add r1, pc | r1 = 0xd858;
0x00006b08 bl 0xfcdc | r0 = fcn_0000fcdc (r0);
0x00006b0c blx 0x2f88 | cxa_finalize ();
0x00006b10 movs r3, 0x16 | r3 = 0x16;
0x00006b12 mov r4, r3 | r4 = r3;
0x00006b14 str r3, [r0] | *(r0) = r3;
0x00006b16 b 0x67e2 | goto label_1;
| label_21:
0x00006b18 ldr r3, [pc, 0x234] |
0x00006b1a add.w sb, sp, 0x64 | sb += path;
0x00006b1e movs r2, 0x40 | r2 = 0x40;
0x00006b20 movs r1, 1 | r1 = 1;
0x00006b22 mov r0, sb | r0 = sb;
0x00006b24 str r4, [sp] | *(sp) = r4;
0x00006b26 add r3, pc | r3 = 0xd87a;
0x00006b28 blx 0x2e80 | strncmp (r0, r1, r2);
0x00006b2c movs r1, 0 | r1 = 0;
0x00006b2e mov r0, sb | r0 = sb;
0x00006b30 blx 0x2730 | open (r0, r1, r2);
0x00006b34 subs r3, r0, 0 | r3 -= path;
| if (r3 < path) {
0x00006b36 blt.w 0x6cb4 | goto label_31;
| }
0x00006b3a str r3, [sp, 0x10] | var_10h = r3;
0x00006b3c movs r1, 0xc4 | r1 = 0xc4;
0x00006b3e ldr r3, [pc, 0x214] |
0x00006b40 movs r2, 0xc0 | r2 = 0xc0;
0x00006b42 add r3, pc | r3 = 0xd89c;
0x00006b44 mla r8, r1, fp, r3 | __asm ("mla r8, r1, fp, r3");
0x00006b48 str r3, [sp, 0x14] | var_14h = r3;
0x00006b4a add.w r8, r8, 4 | r8 += 4;
0x00006b4e mov r1, r8 | r1 = r8;
0x00006b50 invalid |
0x00006b54 ldr r3, [sp, 0x10] | r3 = var_10h;
0x00006b56 str r0, [sp, 0xc] | var_ch_2 = r0;
0x00006b58 mov r0, r3 | r0 = r3;
0x00006b5a and fp, sb, 0xa000000 |
0x00006b5e ldr r2, [sp, 0xc] | r2 = var_ch_2;
0x00006b60 cmp r2, 0xbf |
| if (r2 <= 0xbf) {
0x00006b62 ble.w 0x6c76 | goto label_32;
| }
0x00006b64 strh r0, [r1, 4] | *((r1 + 4)) = r0;
0x00006b66 ldr r1, [pc, 0x1f0] |
0x00006b68 movs r2, 0x40 | r2 = 0x40;
0x00006b6a mov r0, r8 | r0 = r8;
0x00006b6c add r1, pc | r1 = 0xd8ca;
0x00006b6e adds r1, 0x4c | r1 += 0x4c;
0x00006b70 add.w r1, r1, r7, lsl 6 | r1 += (r7 << 6);
0x00006b74 blx 0x27e4 | r0 = memcmp (r0, r1, r2);
0x00006b78 cmp r0, 0 |
| if (r0 != 0) {
0x00006b7a bne.w 0x6cc6 | goto label_33;
| }
0x00006b7e cmp r5, 1 |
| if (r5 != 1) {
0x00006b80 bne 0x6ac4 | goto label_7;
| }
0x00006b82 movs r3, 0xc4 | r3 = 0xc4;
0x00006b84 rsb.w r7, fp, 1 | r7 = 1 - fp;
0x00006b88 mul r7, r3, r7 | r7 = r3 * r7;
0x00006b8c ldr r3, [sp, 0x14] | r3 = var_14h;
0x00006b8e add r5, sp, 0xa4 | r5 += s2;
0x00006b90 ldr r3, [r3, r7] | r3 = *((r3 + r7));
0x00006b92 adds r3, 1 | r3++;
| if (r3 == 1) {
0x00006b94 beq.w 0x6956 | goto label_3;
| }
0x00006b98 movs r1, 0xc0 | r1 = 0xc0;
0x00006b9a mov r2, r5 | r2 = r5;
0x00006b9c mov r0, r8 | r0 = r8;
0x00006b9e blx 0x27cc | SHA512 ();
0x00006ba2 ldr r3, [sp, 0x14] | r3 = var_14h;
0x00006ba4 add.w r0, r7, 0x84 | r0 = r7 + 0x84;
0x00006ba8 movs r2, 0x40 | r2 = 0x40;
0x00006baa mov r1, r5 | r1 = r5;
0x00006bac add r0, r3 | r0 += r3;
0x00006bae blx 0x27e4 | r0 = memcmp (r0, r1, r2);
0x00006bb2 cmp r0, 0 |
| if (r0 == 0) {
0x00006bb4 beq.w 0x6956 | goto label_3;
| }
0x00006bb8 ldr r3, [sp, 0x14] | r3 = var_14h;
0x00006bba mov r2, r4 | r2 = r4;
0x00006bbc ldr r1, [pc, 0x19c] |
0x00006bbe movs r0, 3 | r0 = 3;
0x00006bc0 ldr r3, [r3, r7] | r3 = *((r3 + r7));
0x00006bc2 add r1, pc | r1 = 0xd922;
0x00006bc4 bl 0xfcdc | fcn_0000fcdc (r0);
0x00006bc8 movs r3, 0xd | r3 = 0xd;
0x00006bca mov r4, r3 | r4 = r3;
0x00006bcc str.w r3, [sl] | __asm ("str.w r3, [sl]");
0x00006bd0 b 0x67e2 | goto label_1;
| label_24:
0x00006bd2 ldr r1, [pc, 0x18c] |
0x00006bd4 movs r0, 2 | r0 = 2;
0x00006bd6 add r1, pc | r1 = 0xd93c;
0x00006bd8 bl 0xfcdc | r0 = fcn_0000fcdc (r0);
0x00006bdc blx 0x2f88 | r0 = cxa_finalize ();
0x00006be0 ldr r4, [r0] | r4 = *(r0);
0x00006be2 b 0x67e2 | goto label_1;
| label_17:
0x00006be4 ldr r1, [pc, 0x17c] |
0x00006be6 mov r2, r8 | r2 = r8;
0x00006be8 movs r0, 2 | r0 = 2;
0x00006bea add r1, pc | r1 = 0xd952;
0x00006bec bl 0xfcdc | fcn_0000fcdc (r0);
0x00006bf0 movs r3, 0x47 | r3 = 0x47;
0x00006bf2 mov r4, r3 | r4 = r3;
0x00006bf4 str.w r3, [sl] | __asm ("str.w r3, [sl]");
0x00006bf8 b 0x67e2 | goto label_1;
| label_20:
0x00006bfa ldr r1, [pc, 0x16c] |
0x00006bfc movs r3, 0xc4 | r3 = 0xc4;
0x00006bfe rsb.w r2, fp, 1 | r2 = 1 - fp;
0x00006c02 add r5, sp, 0xa4 | r5 += s2;
0x00006c04 add r1, pc | r1 = 0xd972;
0x00006c06 mla r8, r3, fp, r1 | __asm ("mla r8, r3, fp, r1");
0x00006c0a mla r1, r3, r2, r1 | __asm ("mla r1, r3, r2, r1");
0x00006c0e add.w r8, r8, 4 | r8 += 4;
0x00006c12 movs r2, 0xc0 | r2 = 0xc0;
0x00006c14 mov r0, r8 | r0 = r8;
0x00006c16 adds r1, 4 | r1 += 4;
0x00006c18 blx 0x2b08 | EVP_MD_CTX_new ();
0x00006c1c b 0x6956 | goto label_3;
| label_30:
0x00006c1e blx 0x2f88 | r0 = cxa_finalize ();
0x00006c22 ldr r4, [r0] | r4 = *(r0);
0x00006c24 b 0x67e2 | goto label_1;
| label_22:
0x00006c26 add.w r0, r7, 0x84 | r0 = r7 + 0x84;
0x00006c2a movs r2, 0 | r2 = 0;
0x00006c2c add r0, sb | r0 += sb;
0x00006c2e movs r1, 0x40 | r1 = 0x40;
0x00006c30 blx 0x2abc | r0 = fcn_00002abc ();
0x00006c34 cmp r0, 0 |
| if (r0 < 0) {
0x00006c36 blt.w 0x6aba | goto label_8;
| }
0x00006c3a add r5, sp, 0xa4 | r5 += s2;
0x00006c3c b 0x6914 | goto label_9;
| label_19:
0x00006c3e ldr r1, [pc, 0x12c] |
0x00006c40 movs r0, 2 | r0 = 2;
0x00006c42 add r1, pc | r1 = 0xd9b4;
0x00006c44 bl 0xfcdc | fcn_0000fcdc (r0);
0x00006c48 movs r3, 0xe | r3 = 0xe;
0x00006c4a mov r4, r3 | r4 = r3;
0x00006c4c str.w r3, [sl] | __asm ("str.w r3, [sl]");
0x00006c50 b 0x67e2 | goto label_1;
| label_26:
0x00006c52 ldr r1, [pc, 0x11c] |
0x00006c54 movs r0, 3 | r0 = 3;
0x00006c56 add r1, pc | r1 = 0xd9cc;
0x00006c58 bl 0xfcdc | r0 = fcn_0000fcdc (r0);
0x00006c5c blx 0x2f88 | r0 = cxa_finalize ();
0x00006c60 ldr r4, [r0] | r4 = *(r0);
0x00006c62 b 0x6ae0 | goto label_10;
| label_27:
0x00006c64 ldr r1, [pc, 0x10c] |
0x00006c66 movs r0, 3 | r0 = 3;
0x00006c68 add r1, pc | r1 = 0xd9e0;
0x00006c6a bl 0xfcdc | fcn_0000fcdc (r0);
0x00006c6c invalid |
0x00006c70 invalid |
0x00006c74 b 0x6ae0 | goto label_10;
| label_32:
0x00006c76 ldr r1, [pc, 0x100] |
0x00006c78 cmp r2, 0 |
0x00006c7a it ge |
| if (r2 < 0) {
0x00006c7c movge r3, 0x47 | r3 = 0x47;
| }
0x00006c7e mov r2, sb | r2 = sb;
0x00006c80 mov.w r0, 2 | r0 = 2;
0x00006c84 it ge |
| if (r2 < 0) {
0x00006c86 strge r3, [sl] | *(sl) = r3;
| }
0x00006c8a add r1, pc | r1 = 0xda08;
0x00006c8c bl 0xfcdc | fcn_0000fcdc (r0);
0x00006c90 ldr.w r4, [sl] | r4 = *(sl);
| label_12:
0x00006c94 cmp r4, 0 |
| if (r4 != 0) {
0x00006c96 bne.w 0x67e2 | goto label_1;
| }
0x00006c9a ldr.w r8, [pc, 0xe0] | r8 = *(0x00006d7c);
0x00006c9e movs r3, 0xc4 | r3 = 0xc4;
0x00006ca0 add r5, sp, 0xa4 | r5 += s2;
0x00006ca2 add r8, pc | r8 += pc;
0x00006ca4 mla r8, r3, fp, r8 | __asm ("mla r8, r3, fp, r8");
0x00006ca8 add.w r8, r8, 4 | r8 += 4;
0x00006cac b 0x6956 | goto label_3;
| label_29:
0x00006cae ldr r1, [pc, 0xd0] |
0x00006cb0 add r1, pc | r1 = 0xda36;
0x00006cb2 b 0x6ad2 | goto label_11;
| label_31:
0x00006cb4 ldr r1, [pc, 0xcc] |
0x00006cb6 mov r2, sb | r2 = sb;
0x00006cb8 movs r0, 2 | r0 = 2;
0x00006cba add r1, pc | r1 = 0xda42;
0x00006cbc bl 0xfcdc | fcn_0000fcdc (r0);
0x00006cc0 ldr.w r4, [sl] | r4 = *(sl);
0x00006cc4 b 0x6c94 | goto label_12;
| label_33:
0x00006cc6 ldr r1, [pc, 0xc0] |
0x00006cc8 mov r2, r4 | r2 = r4;
0x00006cca movs r0, 3 | r0 = 3;
0x00006ccc add r1, pc | r1 = 0xda5a;
0x00006cce bl 0xfcdc | fcn_0000fcdc (r0);
0x00006cd2 movs r3, 0xd | r3 = 0xd;
0x00006cd4 mov r4, r3 | r4 = r3;
0x00006cd6 str.w r3, [sl] | __asm ("str.w r3, [sl]");
0x00006cda b 0x67e2 | goto label_1;
| label_15:
0x00006cdc blx 0x2cdc | fprintf_chk ();
0x00006ce0 strh r6, [r0, 0x24] | *((r0 + 0x24)) = r6;
0x00006ce2 movs r2, r0 | r2 = r0;
0x00006ce4 lsls r4, r1, 0xd | r4 = r1 << 0xd;
0x00006ce6 movs r0, r0 |
0x00006ce8 strh r2, [r7, 0x22] | *((r7 + 0x22)) = r2;
0x00006cea movs r2, r0 | r2 = r0;
0x00006cec lsls r4, r4, 0xe | r4 <<= 0xe;
0x00006cee movs r0, r0 |
0x00006cf0 ldrh r2, [r7, 0xe] | r2 = *((r7 + 0xe));
0x00006cf2 movs r2, r0 | r2 = r0;
0x00006cf4 strh r2, [r2, 0x22] | *((r2 + 0x22)) = r2;
0x00006cf6 movs r2, r0 | r2 = r0;
0x00006cf8 strh r6, [r7, 0x3e] | *((r7 + 0x3e)) = r6;
0x00006cfa movs r2, r0 | r2 = r0;
0x00006cfc strh r0, [r7, 0x3c] | *((r7 + 0x3c)) = r0;
0x00006cfe movs r2, r0 | r2 = r0;
0x00006d00 ldrh r4, [r1, 0xa] | r4 = *((r1 + 0xa));
0x00006d02 movs r2, r0 | r2 = r0;
0x00006d04 strh r2, [r0, 0x3c] | *((r0 + 0x3c)) = r2;
0x00006d06 movs r2, r0 | r2 = r0;
0x00006d08 lsrs r2, r4, 0xc | r2 = r4 >> 0xc;
0x00006d0a movs r1, r0 | r1 = r0;
0x00006d0c lsrs r2, r1, 0x10 | r2 = r1 >> 0x10;
0x00006d0e movs r1, r0 | r1 = r0;
0x00006d10 lsrs r2, r1, 0x10 | r2 = r1 >> 0x10;
0x00006d12 movs r1, r0 | r1 = r0;
0x00006d14 lsls r0, r2, 0xd | r0 = r2 << 0xd;
0x00006d16 movs r0, r0 |
0x00006d18 lsrs r6, r4, 5 | r6 = r4 >> 5;
0x00006d1a movs r1, r0 | r1 = r0;
0x00006d1c lsrs r0, r6, 0xf | r0 = r6 >> 0xf;
0x00006d1e movs r1, r0 | r1 = r0;
0x00006d20 lsrs r2, r6, 4 | r2 = r6 >> 4;
0x00006d22 movs r1, r0 | r1 = r0;
0x00006d24 lsrs r2, r4, 4 | r2 = r4 >> 4;
0x00006d26 movs r1, r0 | r1 = r0;
0x00006d28 lsrs r6, r2, 4 | r6 = r2 >> 4;
0x00006d2a movs r1, r0 | r1 = r0;
0x00006d2c lsrs r6, r3, 4 | r6 = r3 >> 4;
0x00006d2e movs r1, r0 | r1 = r0;
0x00006d30 strh r4, [r4, 0x3c] | *((r4 + 0x3c)) = r4;
0x00006d32 movs r2, r0 | r2 = r0;
0x00006d34 lsrs r6, r3, 3 | r6 = r3 >> 3;
0x00006d36 movs r1, r0 | r1 = r0;
0x00006d38 lsrs r6, r5, 4 | r6 = r5 >> 4;
0x00006d3a movs r1, r0 | r1 = r0;
0x00006d3c strh r6, [r0, 0x3a] | *((r0 + 0x3a)) = r6;
0x00006d3e movs r2, r0 | r2 = r0;
0x00006d40 strh r6, [r6, 0x38] | *((r6 + 0x38)) = r6;
0x00006d42 movs r2, r0 | r2 = r0;
0x00006d44 lsrs r0, r5, 1 | r0 = r5 >> 1;
0x00006d46 movs r1, r0 | r1 = r0;
0x00006d48 lsrs r2, r7, 2 | r2 = r7 >> 2;
0x00006d4a movs r1, r0 | r1 = r0;
0x00006d4c lsrs r2, r6, 2 | r2 = r6 >> 2;
0x00006d4e movs r1, r0 | r1 = r0;
0x00006d50 lsrs r2, r3, 4 | r2 = r3 >> 4;
0x00006d52 movs r1, r0 | r1 = r0;
0x00006d54 strh r6, [r0, 0x26] | *((r0 + 0x26)) = r6;
0x00006d56 movs r2, r0 | r2 = r0;
0x00006d58 strh r4, [r4, 0x32] | *((r4 + 0x32)) = r4;
0x00006d5a movs r2, r0 | r2 = r0;
0x00006d5c lsrs r6, r3, 4 | r6 = r3 >> 4;
0x00006d5e movs r1, r0 | r1 = r0;
0x00006d60 lsls r2, r1, 0x1b | r2 = r1 << 0x1b;
0x00006d62 movs r1, r0 | r1 = r0;
0x00006d64 lsrs r2, r1, 0x20 | r2 = r1 >> 0x20;
0x00006d66 movs r1, r0 | r1 = r0;
0x00006d68 strh r4, [r0, 0x20] | *((r0 + 0x20)) = r4;
0x00006d6a movs r2, r0 | r2 = r0;
0x00006d6c lsls r6, r2, 0x1f | r6 = r2 << 0x1f;
0x00006d6e movs r1, r0 | r1 = r0;
0x00006d70 lsls r2, r2, 0x1a | r2 <<= 0x1a;
0x00006d72 movs r1, r0 | r1 = r0;
0x00006d74 lsls r4, r5, 0x1a | r4 = r5 << 0x1a;
0x00006d76 movs r1, r0 | r1 = r0;
0x00006d78 lsls r6, r6, 0x1f | r6 <<= 0x1f;
0x00006d7a movs r1, r0 | r1 = r0;
0x00006d7c strh r6, [r4, 0x1a] | *((r4 + 0x1a)) = r6;
0x00006d7e movs r2, r0 | r2 = r0;
0x00006d80 lsls r0, r7, 0x1a | r0 = r7 << 0x1a;
0x00006d82 movs r1, r0 | r1 = r0;
0x00006d84 lsls r6, r5, 0x1e | r6 = r5 << 0x1e;
0x00006d86 movs r1, r0 | r1 = r0;
0x00006d88 lsls r4, r2, 0x1f | r4 = r2 << 0x1f;
0x00006d8a movs r1, r0 | r1 = r0;
0x00006d8c push {r4, lr} |
0x00006d8e sub sp, 0x50 |
0x00006d90 ldr r4, [pc, 0x70] |
0x00006d92 ldr r1, [pc, 0x74] | r1 = *(0x6e0a);
0x00006d94 add r4, pc | r4 = 0xdb9c;
0x00006d96 ldr r3, [pc, 0x74] |
0x00006d98 ldr r2, [pc, 0x74] | r2 = *(0x6e10);
0x00006d9a ldr r1, [r4, r1] |
0x00006d9c add r3, pc |
0x00006d9e ldr r1, [r1] | r1 = *(0xdb9c);
0x00006da0 str r1, [sp, 0x4c] | var_4ch = r1;
0x00006da2 mov.w r1, 0 | r1 = 0;
0x00006da6 ldr r3, [r3, r2] | r3 = *(0xdbae);
0x00006da8 ldrb r3, [r3] | r3 = *(r3);
| if (r3 == 0) {
0x00006daa cbnz r3, 0x6de8 |
0x00006dac ldr r3, [pc, 0x64] |
0x00006dae add r4, sp, 0xc | r4 += str;
0x00006db0 movs r1, 1 | r1 = 1;
0x00006db2 add r3, pc | r3 = 0xdbca;
0x00006db4 ldr r2, [r3] | r2 = *(0xdbca);
0x00006db6 cmp r2, r0 |
0x00006db8 itt eq |
| if (r2 != r0) {
0x00006dba moveq r2, -1 | r2 = -1;
| }
| if (r2 == r0) {
0x00006dbe str r2, [r3] | *(r3) = r2;
| }
0x00006dc0 ldr r3, [pc, 0x54] |
0x00006dc2 add r3, pc | r3 = 0xdbde;
0x00006dc4 ldr.w r2, [r3, 0xc4] | r2 = *(0xdca2);
0x00006dc8 cmp r2, r0 |
0x00006dca itt eq |
| if (r2 != r0) {
0x00006dcc moveq r2, -1 | r2 = -1;
| }
| if (r2 == r0) {
0x00006dd0 str.w r2, [r3, 0xc4] | __asm ("str.w r2, [r3, 0xc4]");
| }
0x00006dd4 movs r2, 0x40 | r2 = 0x40;
0x00006dd6 ldr r3, [pc, 0x44] |
0x00006dd8 str r0, [sp] | *(sp) = r0;
0x00006dda mov r0, r4 | r0 = r4;
0x00006ddc add r3, pc | r3 = 0xdbfe;
0x00006dde blx 0x2e80 | strncmp (r0, r1, r2);
0x00006de2 mov r0, r4 | r0 = r4;
0x00006de4 blx 0x2acc | strtoul (r0, r1, r2);
| }
0x00006de8 ldr r2, [pc, 0x34] |
0x00006dea ldr r3, [pc, 0x1c] | r3 = *(0x6e0a);
0x00006dec add r2, pc | r2 = 0xdc10;
0x00006dee ldr r3, [r2, r3] | r3 = *(0xdc10);
0x00006df0 ldr r2, [r3] | r2 = *(0xdc10);
0x00006df2 ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x00006df4 eors r2, r3 | r2 ^= r3;
0x00006df6 mov.w r3, 0 | r3 = 0;
| if (r2 == r3) {
0x00006dfa bne 0x6e00 |
0x00006dfc add sp, 0x50 |
0x00006dfe pop {r4, pc} |
| }
0x00006e00 blx 0x2cdc | fprintf_chk ();
0x00006e04 ldrb r0, [r5, 0x1a] | r0 = *((r5 + 0x1a));
0x00006e06 movs r2, r0 | r2 = r0;
0x00006e08 lsls r4, r1, 0xd | r4 = r1 << 0xd;
0x00006e0a movs r0, r0 |
0x00006e0c ldrb r0, [r4, 0x1a] | r0 = *((r4 + 0x1a));
0x00006e0e movs r2, r0 | r2 = r0;
0x00006e10 lsls r4, r4, 0xe | r4 <<= 0xe;
0x00006e12 movs r0, r0 |
0x00006e14 strh r6, [r2, 0x12] | *((r2 + 0x12)) = r6;
0x00006e16 movs r2, r0 | r2 = r0;
0x00006e18 strh r6, [r0, 0x12] | *((r0 + 0x12)) = r6;
0x00006e1a movs r2, r0 | r2 = r0;
0x00006e1c lsls r4, r4, 0x19 | r4 <<= 0x19;
0x00006e1e movs r1, r0 | r1 = r0;
0x00006e20 ldrb r0, [r2, 0x19] | r0 = *((r2 + 0x19));
0x00006e22 movs r2, r0 | r2 = r0;
| }
[*] Function strcpy used 5 times fwmgr