[*] Binary protection state of ssid
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function strcat tear down of ssid
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/ssid @ 0x3774 */
| #include <stdint.h>
|
; (fcn) fcn.00003774 () | void fcn_00003774 (int16_t arg_14h, char * arg_1f8h, int16_t arg_1fch, int16_t arg_200h, int16_t arg_204h, int16_t arg_208h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
| 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_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;
| char * 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;
| int16_t var_54h;
| int16_t var_58h;
| int16_t var_5ch;
| int16_t var_60h;
| int16_t var_64h;
| int16_t var_68h;
| int16_t var_6ch;
| int16_t var_70h;
| int16_t var_74h;
| int16_t var_78h;
| int32_t var_78h_2;
| int32_t var_80h;
| int32_t var_80h_2;
| void * s;
| int16_t var_8dh;
| char * dest;
| int8_t var_1h;
| void * var_d0h;
| int8_t var_7fh;
| int16_t var_1cch;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
| r3 = arg4;
0x00003774 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00003778 mov r4, r2 | r4 = r2;
0x0000377a sub sp, 0x1d4 |
0x0000377c ldr.w r2, [pc, 0x6c4] | r2 = *(0x00003e44);
0x00003780 ldr r5, [sp, 0x1f8] | r5 = *(arg_1f8h);
0x00003782 str r3, [sp, 0x60] | var_60h = r3;
0x00003784 add r2, pc | r2 += pc;
0x00003786 ldr.w r3, [pc, 0x6c0] |
0x0000378a str r5, [sp, 0x28] | var_28h = r5;
0x0000378c str r0, [sp, 0x3c] | var_3ch = r0;
0x0000378e str r1, [sp, 0x54] | var_54h = r1;
0x00003790 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00003792 ldr.w r0, [pc, 0x6b8] |
0x00003796 ldr r1, [sp, 0x208] | r1 = *(arg_208h);
0x00003798 ldr r3, [r3] | r3 = *(0x3e4a);
0x0000379a str r3, [sp, 0x1cc] | var_1cch = r3;
0x0000379c mov.w r3, 0 | r3 = 0;
0x000037a0 add r3, sp, 0x70 | r3 += var_70h;
0x000037a2 mov r2, r3 | r2 = r3;
0x000037a4 str r3, [sp, 0x1c] | var_1ch = r3;
0x000037a6 movs r3, 0 | r3 = 0;
0x000037a8 add r0, pc | r0 = 0x75fa;
0x000037aa str r3, [r2] | *(r2) = r3;
0x000037ac ldr r3, [sp, 0x204] | r3 = *(arg_204h);
0x000037ae str r1, [sp, 0x58] | var_58h = r1;
0x000037b0 str r3, [sp, 0x50] | var_50h = r3;
0x000037b2 bl 0x4784 | fcn_00004784 (r0, r1);
0x000037b6 ldr r1, [r5, 0xc] | r1 = *((r5 + 0xc));
0x000037b8 ldr r2, [r5, 0x18] | r2 = *((r5 + 0x18));
0x000037ba ldr r3, [r5, 0x24] | r3 = *((r5 + 0x24));
0x000037bc str r0, [sp, 0x40] | var_40h = r0;
0x000037be ldr r0, [r5] | r0 = *(r5);
0x000037c0 add r5, sp, 0x78 | r5 += var_78h;
0x000037c2 str r5, [sp, 0x2c] | var_2ch = r5;
0x000037c4 strd r2, r3, [sp, 0x80] | __asm ("strd r2, r3, [var_80h]");
0x000037c8 strd r0, r1, [sp, 0x78] | __asm ("strd r0, r1, [var_78h]");
0x000037cc cmp r4, 0 |
| if (r4 == 0) {
0x000037ce beq.w 0x3c1e | goto label_20;
| }
0x000037d2 ldr.w r3, [pc, 0x67c] |
0x000037d6 ldr.w r2, [pc, 0x67c] |
0x000037da add r3, pc | r3 = 0x7630;
0x000037dc add r2, pc | r2 = 0x7636;
0x000037de str r3, [sp, 0x6c] | var_6ch = r3;
0x000037e0 adds r3, 0x70 | r3 += 0x70;
0x000037e2 str r2, [sp, 0x68] | var_68h = r2;
0x000037e4 str r3, [sp, 0x64] | var_64h = r3;
| do {
0x000037e6 movs r1, 0x2c | r1 = 0x2c;
0x000037e8 mov r0, r4 | r0 = r4;
0x000037ea blx 0x18ac | r0 = strchr (r0, r1);
0x000037ee mov r2, r0 | r2 = r0;
0x000037f0 str r0, [sp, 0x30] | var_30h = r0;
| if (r0 != 0) {
0x000037f2 cbz r0, 0x37fc |
0x000037f4 movs r3, 0 | r3 = 0;
0x000037f6 strb r3, [r2], 1 | *(r2) = r3;
| r2++;
0x000037fa str r2, [sp, 0x30] | var_30h = r2;
| }
0x000037fc ldr r5, [sp, 0x1c] | r5 = var_1ch;
0x000037fe mov r0, r4 | r0 = r4;
0x00003800 ldr.w r1, [pc, 0x654] | r1 = *(0x00003e58);
0x00003804 mov r2, r5 | r2 = r5;
0x00003806 add r1, pc | r1 += pc;
0x00003808 blx 0x1ae8 | fcn_00001ae8 ();
0x0000380c ldr r3, [r5] | r3 = *(r5);
0x0000380e mov r6, r0 | r6 = r0;
0x00003810 adds r2, r3, 2 | r2 = r3 + 2;
| if (r2 == r3) {
0x00003812 beq.w 0x3c60 | goto label_21;
| }
| label_12:
0x00003816 ldr r2, [sp, 0x60] | r2 = var_60h;
0x00003818 orrs r3, r2 | r3 |= r2;
| if (r3 == r2) {
0x0000381a beq.w 0x3be4 | goto label_22;
| }
0x0000381e mov r0, r6 | r0 = r6;
0x00003820 ldr.w r5, [pc, 0x638] | r5 = *(0x00003e5c);
0x00003824 blx 0x197c | fcn_0000197c ();
0x00003828 ldr r6, [sp, 0x1c] | r6 = var_1ch;
0x0000382a mov r0, r4 | r0 = r4;
0x0000382c add r5, pc | r5 += pc;
0x0000382e mov r1, r5 | r1 = r5;
0x00003830 mov r2, r6 | r2 = r6;
0x00003832 blx 0x1870 | cli_getParamsInGroup ();
0x00003836 ldr r3, [r6] | r3 = *(r6);
0x00003838 mov fp, r0 |
| if (r3 == 0) {
0x0000383a cbnz r3, 0x3856 |
0x0000383c mov r0, r4 | r0 = r4;
0x0000383e blx 0x1a00 | fcn_00001a00 ();
0x00003842 mov r1, r5 | r1 = r5;
0x00003844 ldr r5, [sp, 0x1c] | r5 = var_1ch;
0x00003846 mov r4, r0 | r4 = r0;
0x00003848 mov r0, fp | r0 = fp;
0x0000384a mov r2, r5 | r2 = r5;
0x0000384c blx 0x1c14 | fcn_00001c14 ();
0x00003850 ldr r1, [r5] | r1 = *(r5);
| if (r1 == 0) {
0x00003852 cbz r1, 0x3866 | goto label_23;
| }
| label_1:
0x00003854 mov r0, fp | r0 = fp;
| }
0x00003856 blx 0x1bd8 | fcn_00001bd8 ();
0x0000385a ldr r3, [sp, 0x30] | r3 = var_30h;
0x0000385c cmp r3, 0 |
| if (r3 == 0) {
0x0000385e beq.w 0x3c1e | goto label_20;
| }
| label_10:
0x00003862 ldr r4, [sp, 0x30] | r4 = var_30h;
0x00003864 b 0x37e6 |
| } while (1);
| label_23:
0x00003866 adds r3, r4, 1 | r3 = r4 + 1;
0x00003868 movs r2, 0x41 | r2 = 0x41;
0x0000386a str r3, [sp, 0x34] | var_34h = r3;
0x0000386c ldr.w r3, [pc, 0x5f0] | r3 = *(0x00003e60);
0x00003870 str r1, [sp, 0x48] | var_48h = r1;
0x00003872 add r3, pc | r3 += pc;
0x00003874 str r3, [sp, 0x44] | var_44h = r3;
0x00003876 add r3, sp, 0x88 | r3 += s;
0x00003878 mov r0, r3 | r0 = r3;
0x0000387a str r3, [sp, 0x38] | var_38h = r3;
0x0000387c blx 0x1900 | memset (r0, r1, r2);
| label_0:
0x00003880 ldr.w r3, [fp] | r3 = *(fp);
0x00003884 str r3, [sp, 0x20] | var_20h = r3;
0x00003886 cmp r3, 0 |
| if (r3 == 0) {
0x00003888 beq.w 0x3b00 | goto label_24;
| }
0x0000388c ldr r3, [sp, 0x200] | r3 = *(arg_200h);
0x0000388e clz r7, r3 | r7 &= r3;
0x00003892 ldr r3, [sp, 0x1fc] | r3 = *(arg_1fch);
0x00003894 lsrs r7, r7, 5 | r7 >>= 5;
0x00003896 cmp r3, 0 |
| if (r3 != 0) {
0x00003898 bne.w 0x3a00 | goto label_25;
| }
0x0000389c ldr r5, [sp, 0x1fc] | r5 = *(arg_1fch);
0x0000389e movs r3, 1 | r3 = 1;
| label_5:
0x000038a0 ldr r2, [sp, 0x200] | r2 = *(arg_200h);
0x000038a2 cmp r2, 0 |
0x000038a4 ite eq |
| if (r2 != 0) {
0x000038a6 moveq r3, 0 | r3 = 0;
| }
| if (r2 == 0) {
0x000038a8 andne r3, r3, 1 | r3 &= 1;
| }
0x000038ac cmp r3, 0 |
| if (r3 != 0) {
0x000038ae bne.w 0x39da | goto label_26;
| }
| label_4:
0x000038b2 ldr r3, [sp, 0x200] | r3 = *(arg_200h);
0x000038b4 cmp r5, r3 |
0x000038b6 it le |
| if (r5 > r3) {
0x000038b8 orrle r7, r7, 1 | r7 |= 1;
| }
0x000038ba lsls r1, r0, 0x1c | r1 = r0 << 0x1c;
| if (r7 != 0) {
0x000038bc cbnz r7, 0x3916 | goto label_27;
| }
0x000038be ldr.w r1, [pc, 0x5a4] | r1 = *(0x00003e64);
0x000038c2 mov r0, fp | r0 = fp;
0x000038c4 ldr r2, [sp, 0x1c] | r2 = var_1ch;
0x000038c6 add r1, pc | r1 += pc;
0x000038c8 blx 0x1c14 | fcn_00001c14 ();
| label_3:
0x000038cc ldr r3, [sp, 0x28] | r3 = var_28h;
0x000038ce movs r5, 0 | r5 = 0;
0x000038d0 ldr r6, [sp, 0x2c] | r6 = var_2ch;
0x000038d2 adds r7, r3, 4 | r7 = r3 + 4;
| do {
0x000038d4 ldr r4, [r6] | r4 = *(r6);
0x000038d6 ldr r3, [sp, 0x28] | r3 = var_28h;
0x000038d8 mov r0, r4 | r0 = r4;
0x000038da ldr.w r8, [r3, r5, lsl 2] | offset_0 = r5 << 2;
| r8 = *((r3 + offset_0));
0x000038de blx 0x1a00 | fcn_00001a00 ();
0x000038e2 ldr.w r3, [r7, r5, lsl 2] | offset_1 = r5 << 2;
| r3 = *((r7 + offset_1));
0x000038e6 adds r0, 1 | r0++;
0x000038e8 add r0, r4 | r0 += r4;
0x000038ea adds r5, 3 | r5 += 3;
0x000038ec cmp r3, r0 |
0x000038ee it eq |
| if (r3 != r0) {
0x000038f0 moveq r0, r8 | r0 = r8;
| }
0x000038f2 cmp r5, 0xc |
0x000038f4 str r0, [r6], 4 | *(r6) = r0;
| r6 += 4;
0x000038f8 bne 0x38d4 |
| } while (r5 != 0xc);
0x000038fa movs r3, 0 | r3 = 0;
0x000038fc str r3, [sp, 0x48] | var_48h = r3;
| label_2:
0x000038fe ldr.w r3, [fp, 0x14] | r3 = *(arg_14h);
0x00003902 cmp r3, 0 |
| if (r3 == 0) {
0x00003904 beq 0x3880 | goto label_0;
| }
0x00003906 ldr r2, [sp, 0x48] | r2 = var_48h;
0x00003908 cmp r2, 0 |
| if (r2 == 0) {
0x0000390a beq 0x3854 | goto label_1;
| }
0x0000390c ldr r1, [sp, 0x3c] | r1 = var_3ch;
0x0000390e ldr r3, [r1, 8] | r3 = *((r1 + 8));
0x00003910 subs r3, r3, r2 | r3 -= r2;
0x00003912 str r3, [r1, 8] | *((r1 + 8)) = r3;
0x00003914 b 0x3854 | goto label_1;
| label_27:
0x00003916 ldr r1, [sp, 0x40] | r1 = var_40h;
| if (r1 == 0) {
0x00003918 cbz r1, 0x3962 | goto label_28;
| }
0x0000391a add r3, sp, 0xcc | r3 += dest;
0x0000391c movs r2, 0x7f | r2 = 0x7f;
0x0000391e mov r0, r3 | r0 = r3;
0x00003920 ldr.w r4, [fp, 4] | r4 = *(arg_1fch);
0x00003924 blx 0x187c | strncpy (r0, r1, r2);
0x00003928 ldr.w r1, [pc, 0x53c] |
0x0000392c movs r2, 0 | r2 = 0;
0x0000392e strb.w r2, [r0, 0x7f] | var_7fh = r2;
0x00003932 add r1, pc | r1 = 0x779e;
0x00003934 blx 0x1b9c | r0 = fcn_00001b9c ();
0x00003938 mov r1, r0 | r1 = r0;
0x0000393a cmp r0, 0 |
| if (r0 == 0) {
0x0000393c beq.w 0x3b0e | goto label_29;
| }
0x00003940 ldr.w r5, [pc, 0x528] |
0x00003944 add r5, pc | r5 = 0x77b4;
0x00003946 b 0x3958 |
| while (r0 != 0) {
0x00003948 mov r1, r5 | r1 = r5;
0x0000394a movs r0, 0 | r0 = 0;
0x0000394c blx 0x1b9c | r0 = fcn_00001b9c ();
0x00003950 mov r1, r0 | r1 = r0;
0x00003952 cmp r0, 0 |
| if (r0 == 0) {
0x00003954 beq.w 0x3b0e | goto label_29;
| }
0x00003958 mov r0, r4 | r0 = r4;
0x0000395a blx 0x1cbc | r0 = fcn_00001cbc ();
0x0000395e cmp r0, 0 |
0x00003960 bne 0x3948 |
| }
| label_28:
0x00003962 ldr r4, [sp, 0x1c] | r4 = var_1ch;
0x00003964 ldr.w r0, [fp] | r0 = *(fp);
0x00003968 ldr r1, [sp, 0x44] | r1 = var_44h;
0x0000396a mov r2, r4 | r2 = r4;
0x0000396c blx 0x1ae8 | fcn_00001ae8 ();
0x00003970 ldr r3, [r4] | r3 = *(r4);
0x00003972 mov sb, r0 | sb = r0;
0x00003974 cmp r3, 0 |
| if (r3 != 0) {
0x00003976 bne.w 0x3b1c | goto label_30;
| }
0x0000397a ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x0000397c ldr r2, [sp, 0x64] | r2 = var_64h;
0x0000397e ldr r1, [sp, 0x50] | r1 = var_50h;
0x00003980 ldr r3, [r3] | r3 = *(r3);
0x00003982 cmp r1, 0 |
0x00003984 sub.w r2, r3, r2 | r2 = r3 - r2;
0x00003988 clz r2, r2 | r2 &= r2;
0x0000398c lsr.w r2, r2, 5 | r2 >>= 5;
0x00003990 it eq |
| if (r1 != 0) {
0x00003992 moveq r2, 0 | r2 = 0;
| }
0x00003994 cmp r2, 0 |
| if (r2 != 0) {
0x00003996 bne.w 0x3c78 | goto label_31;
| }
| label_13:
0x0000399a ldr r1, [sp, 0x2c] | r1 = var_2ch;
0x0000399c str r3, [sp] | *(sp) = r3;
0x0000399e ldr r3, [sp, 0x58] | r3 = var_58h;
0x000039a0 ldr r2, [sp, 0x20] | r2 = var_20h;
0x000039a2 ldr r0, [sp, 0x3c] | r0 = var_3ch;
0x000039a4 str r3, [sp, 0x14] | var_14h = r3;
0x000039a6 ldr r3, [r1, 0xc] | r3 = *((r1 + 0xc));
0x000039a8 str r3, [sp, 0xc] | var_ch = r3;
0x000039aa ldr r3, [r1, 8] | r3 = *((r1 + 8));
0x000039ac str r3, [sp, 8] | var_8h = r3;
0x000039ae ldr r3, [r1, 4] | r3 = *((r1 + 4));
0x000039b0 ldr r1, [sp, 0x54] | r1 = var_54h;
0x000039b2 str r3, [sp, 4] | var_4h = r3;
0x000039b4 movs r3, 0 | r3 = 0;
0x000039b6 str r3, [sp, 0x10] | var_10h = r3;
0x000039b8 mov r3, sb | r3 = sb;
0x000039ba bl 0x34c4 | r0 = fcn_000034c4 (r0, r1, r2, r3, r4, r5, r6);
0x000039be mov r4, r0 | r4 = r0;
| label_9:
0x000039c0 mov r0, sb | r0 = sb;
0x000039c2 blx 0x197c | fcn_0000197c ();
0x000039c6 ldr.w r1, [pc, 0x4a8] | r1 = *(0x00003e70);
0x000039ca mov r0, fp | r0 = fp;
0x000039cc ldr r2, [sp, 0x1c] | r2 = var_1ch;
0x000039ce add r1, pc | r1 += pc;
0x000039d0 blx 0x1c14 | fcn_00001c14 ();
0x000039d4 cmp r4, 1 |
| if (r4 != 1) {
0x000039d6 bne 0x38fe | goto label_2;
| }
0x000039d8 b 0x38cc | goto label_3;
| label_26:
0x000039da ldr r3, [sp, 0x34] | r3 = var_34h;
0x000039dc movs r1, 0x2e | r1 = 0x2e;
0x000039de ldr.w r0, [fp] | r0 = *(fp);
0x000039e2 movs r5, 1 | r5 = 1;
0x000039e4 add r0, r3 | r0 += r3;
0x000039e6 blx 0x18ac | r0 = strchr (r0, r1);
0x000039ea cmp r0, 0 |
| if (r0 == 0) {
0x000039ec beq.w 0x38b2 | goto label_4;
| }
| do {
0x000039f0 adds r0, 1 | r0++;
0x000039f2 movs r1, 0x2e | r1 = 0x2e;
0x000039f4 adds r5, 1 | r5++;
0x000039f6 blx 0x18ac | r0 = strchr (r0, r1);
0x000039fa cmp r0, 0 |
0x000039fc bne 0x39f0 |
| } while (r0 != 0);
0x000039fe b 0x38b2 | goto label_4;
| label_25:
0x00003a00 ldr r3, [sp, 0x20] | r3 = var_20h;
0x00003a02 movs r1, 0x2e | r1 = 0x2e;
0x00003a04 ldr r5, [sp, 0x34] | r5 = var_34h;
0x00003a06 add.w sl, r3, r5 | sl = r3 + r5;
0x00003a0a mov r0, sl | r0 = sl;
0x00003a0c blx 0x18ac | strchr (r0, r1);
0x00003a10 ldr r3, [sp, 0x38] | r3 = var_38h;
0x00003a12 mov r4, r0 | r4 = r0;
0x00003a14 movs r1, 0x2e | r1 = 0x2e;
0x00003a16 add r3, r5 | r3 += r5;
0x00003a18 mov r0, r3 | r0 = r3;
0x00003a1a mov r8, r3 | r8 = r3;
0x00003a1c blx 0x18ac | strchr (r0, r1);
0x00003a1e vmax.s8 d20, d6, d6 | __asm ("vmax.s8 d20, d6, d6");
0x00003a22 cmp r4, 0 |
| if (r4 == 0) {
0x00003a24 beq.w 0x3dae | goto label_32;
| }
0x00003a28 ldr.w r2, [pc, 0x448] |
0x00003a2c movs r5, 0 | r5 = 0;
0x00003a2e str.w fp, [sp, 0x24] | __asm ("str.w fp, [var_24h]");
0x00003a32 mov fp, r8 |
0x00003a34 add r2, pc | r2 = 0x78ac;
0x00003a36 str r2, [sp, 0x5c] | var_5ch = r2;
| do {
| label_7:
0x00003a38 add.w sb, r4, 1 | sb = r4 + 1;
0x00003a3c movs r1, 0x2e | r1 = 0x2e;
0x00003a3e mov r0, sb | r0 = sb;
0x00003a40 sub.w r8, r4, sl | r8 = r4 - sl;
0x00003a44 blx 0x18ac | strchr (r0, r1);
0x00003a48 adds r5, 1 | r5++;
0x00003a4a mov r4, r0 | r4 = r0;
| if (r6 == 0) {
0x00003a4c cbz r6, 0x3a78 | goto label_33;
| }
0x00003a4e sub.w r3, r6, fp | r3 = r6 - fp;
0x00003a52 cmp r8, r3 |
| if (r8 != r3) {
0x00003a54 bne 0x3a78 | goto label_33;
| }
0x00003a56 mov r2, r8 | r2 = r8;
0x00003a58 mov r1, fp | r1 = fp;
0x00003a5a mov r0, sl | r0 = sl;
0x00003a5c blx 0x1c50 | r0 = fcn_00001c50 ();
| if (r0 != 0) {
0x00003a60 cbnz r0, 0x3a7a | goto label_34;
| }
| label_6:
0x00003a62 adds r0, r6, 1 | r0 = r6 + 1;
0x00003a64 movs r1, 0x2e | r1 = 0x2e;
0x00003a66 blx 0x18ac | r0 = strchr (r0, r1);
0x00003a6a mov r6, r0 | r6 = r0;
0x00003a6c cmp r4, 0 |
0x00003a6e bne 0x3a38 |
| } while (r4 != 0);
| label_8:
0x00003a70 ldr.w fp, [sp, 0x24] | fp = var_24h;
0x00003a74 mov r3, r4 | r3 = r4;
0x00003a76 b 0x38a0 | goto label_5;
| label_33:
0x00003a78 cbz r4, 0x3a8e |
| while (r0 != 0) {
| label_34:
0x00003a7a ldr r3, [sp, 0x200] | r3 = *(arg_200h);
0x00003a7c cmp r5, r3 |
0x00003a7e ite gt |
| if (r5 <= r3) {
0x00003a80 movgt r3, r7 | r3 = r7;
| }
| if (r5 > r3) {
0x00003a82 orrle r3, r7, 1 | r3 = r7 | 1;
| }
| if (r3 != 0) {
0x00003a86 cbnz r3, 0x3aa4 | goto label_35;
| }
0x00003a88 ldr.w fp, [sp, 0x24] | fp = var_24h;
0x00003a8c b 0x38a0 | goto label_5;
0x00003a8e mov r2, r8 | r2 = r8;
0x00003a90 mov r1, fp | r1 = fp;
0x00003a92 mov r0, sl | r0 = sl;
0x00003a94 blx 0x1c50 | r0 = fcn_00001c50 ();
0x00003a98 cmp r0, 0 |
0x00003a9a bne 0x3a7a |
| }
0x00003a9c ldr.w fp, [sp, 0x24] | fp = var_24h;
0x00003aa0 mov r3, r4 | r3 = r4;
0x00003aa2 b 0x38a0 | goto label_5;
| label_35:
0x00003aa4 ldr r3, [sp, 0x34] | r3 = var_34h;
0x00003aa6 ldr r1, [sp, 0x20] | r1 = var_20h;
0x00003aa8 ldr r0, [sp, 0x38] | r0 = var_38h;
0x00003aaa add.w r2, r3, r8 | r2 = r3 + r8;
0x00003aae movs r3, 0x41 | r3 = 0x41;
0x00003ab0 str r2, [sp, 0x4c] | var_4ch = r2;
0x00003ab2 add.w r8, sp, 0xcc | r8 += dest;
0x00003ab6 blx 0x1930 | strncpy_chk ();
0x00003ab8 invalid |
0x00003abc movs r3, 0 | r3 = 0;
0x00003abe ldr r2, [sp, 0x4c] | r2 = var_4ch;
0x00003ac0 mov r0, r8 | r0 = r8;
0x00003ac2 strb r3, [r1, r2] | *((r1 + r2)) = r3;
0x00003ac4 movs r3, 0x41 | r3 = 0x41;
0x00003ac6 add.w r1, sp, 0x8d | r1 += var_8dh;
0x00003aca blx 0x1930 | strncpy_chk ();
0x00003ace ldrb.w r3, [r8] | r3 = *(r8);
0x00003ad2 mov r2, r8 | r2 = r8;
| if (r3 == 0) {
0x00003ad4 cbz r3, 0x3ae6 | goto label_36;
| }
| do {
0x00003ad6 cmp r3, 0x2e |
0x00003ad8 itt eq |
| if (r3 != 0x2e) {
0x00003ada moveq r3, 0x20 | r3 = 0x20;
| }
| if (r3 != 0x2e) {
0x00003adc strbeq r3, [r2] | *(r2) = r3;
| }
0x00003ade ldrb r3, [r2, 1]! | r3 = var_1h;
0x00003ae2 cmp r3, 0 |
0x00003ae4 bne 0x3ad6 |
| } while (r3 != 0);
| label_36:
0x00003ae6 cmp r4, 0 |
| if (r4 == 0) {
0x00003ae8 beq.w 0x3c3a | goto label_37;
| }
| label_11:
0x00003aec mov r0, sb | r0 = sb;
0x00003aee movs r1, 0x2e | r1 = 0x2e;
0x00003af0 blx 0x18ac | r0 = strchr (r0, r1);
0x00003af4 mov r4, r0 | r4 = r0;
0x00003af6 cmp r6, 0 |
| if (r6 != 0) {
0x00003af8 bne 0x3a62 | goto label_6;
| }
0x00003afa cmp r4, 0 |
| if (r4 != 0) {
0x00003afc bne 0x3a38 | goto label_7;
| }
0x00003afe b 0x3a70 | goto label_8;
| label_24:
0x00003b00 ldr r1, [pc, 0x374] |
0x00003b02 mov r0, fp | r0 = fp;
0x00003b04 ldr r2, [sp, 0x1c] | r2 = var_1ch;
0x00003b06 add r1, pc | r1 = 0x7982;
0x00003b08 blx 0x1c14 | fcn_00001c14 ();
0x00003b0c b 0x38cc | goto label_3;
| label_29:
0x00003b0e ldr r1, [pc, 0x36c] |
0x00003b10 mov r0, fp | r0 = fp;
0x00003b12 ldr r2, [sp, 0x1c] | r2 = var_1ch;
0x00003b14 add r1, pc | r1 = 0x7996;
0x00003b16 blx 0x1c14 | fcn_00001c14 ();
0x00003b1a b 0x38cc | goto label_3;
| label_30:
0x00003b1c movs r1, 1 | r1 = 1;
0x00003b1e mov.w r0, 0x2000 | r0 = 0x2000;
0x00003b22 blx 0x18e8 | r0 = calloc (r0, r1);
0x00003b26 mov sl, r0 | sl = r0;
0x00003b28 cmp r0, 0 |
| if (r0 == 0) {
0x00003b2a beq.w 0x3e28 | goto label_38;
| }
0x00003b2c strh r5, [r7, 0xa] | *((r7 + 0xa)) = r5;
0x00003b2e movs r4, 0 | r4 = 0;
0x00003b30 add r5, sp, 0xcc | r5 += dest;
0x00003b32 ldr.w r6, [fp] | r6 = *(fp);
0x00003b34 str r0, [r0] | *(r0) = r0;
0x00003b36 mov r1, r4 | r1 = r4;
0x00003b38 movs r2, 0xfc | r2 = 0xfc;
0x00003b3a add r0, sp, 0xd0 | r0 += var_d0h;
0x00003b3c str r4, [r5] | *(r5) = r4;
0x00003b3e blx 0x1900 | memset (r0, r1, r2);
0x00003b42 ldr r1, [pc, 0x33c] |
0x00003b44 mov r0, r6 | r0 = r6;
0x00003b46 add r1, pc | r1 = 0x79cc;
0x00003b48 blx 0x1b9c | r0 = fcn_00001b9c ();
0x00003b4c cmp r0, 0 |
| if (r0 == 0) {
0x00003b4e beq.w 0x3db4 | goto label_39;
| }
0x00003b50 strh r1, [r6, 8] | *((r6 + 8)) = r1;
0x00003b52 str.w fp, [sp, 0x24] | __asm ("str.w fp, [var_24h]");
0x00003b56 add r7, sp, 0x74 | r7 += var_74h;
0x00003b58 ldr.w r8, [sp, 0x44] | r8 = var_44h;
0x00003b5c movs r6, 0xa | r6 = 0xa;
0x00003b5e ldr.w fp, [sp, 0x68] | fp = var_68h;
0x00003b62 str.w sb, [sp, 0x4c] | __asm ("str.w sb, [var_4ch]");
0x00003b64 str r0, [sp, 0x130] | *((sp + 0x130)) = r0;
0x00003b66 mov sb, r0 | sb = r0;
0x00003b68 str r4, [r7] | *(r7) = r4;
| do {
0x00003b6a mov r1, sb | r1 = sb;
0x00003b6c mov.w r2, 0x100 | r2 = 0x100;
0x00003b70 mov r0, r5 | r0 = r5;
0x00003b72 blx 0x1864 | strcat_chk ()
0x00003b74 mrc p6, 3, r4, c8, c10, 1 | __asm ("mrc p6, 3, r4, c8, c10, 1");
0x00003b76 mov r2, r7 | r2 = r7;
0x00003b78 mov r1, r8 | r1 = r8;
0x00003b7a mov r0, r5 | r0 = r5;
0x00003b7c blx 0x1b90 | fcn_00001b90 ();
0x00003b7e invalid |
0x00003b82 mov r4, r0 | r4 = r0;
0x00003b84 cmp r3, 0 |
| if (r3 == 0) {
0x00003b86 beq.w 0x3ce8 | goto label_40;
| }
0x00003b8a mov r1, fp | r1 = fp;
0x00003b8c movs r0, 0 | r0 = 0;
0x00003b8e blx 0x1b9c | r0 = fcn_00001b9c ();
0x00003b92 mov sb, r0 | sb = r0;
0x00003b94 cmp r0, 0 |
| if (r0 == 0) {
0x00003b96 beq.w 0x3d36 | goto label_41;
| }
0x00003b9a mov.w r2, 0x100 | r2 = 0x100;
0x00003b9e mov r1, fp | r1 = fp;
0x00003ba0 mov r0, r5 | r0 = r5;
0x00003ba2 blx 0x1864 | strcat_chk ()
0x00003ba6 mov r0, r4 | r0 = r4;
0x00003ba8 blx 0x1bfc | fcn_00001bfc ();
0x00003bac subs r6, 1 | r6--;
0x00003bae bne 0x3b6a |
| } while (r6 != 1);
0x00003bb0 ldr.w fp, [sp, 0x24] | fp = var_24h;
0x00003bb4 ldr.w sb, [sp, 0x4c] | sb = var_4ch;
| label_15:
0x00003bb8 ldr r3, [r7] | r3 = *(r7);
0x00003bba cmp r3, 0 |
| if (r3 != 0) {
0x00003bbc bne 0x3c86 | goto label_42;
| }
| label_14:
0x00003bbe ldr r1, [sp, 0x2c] | r1 = var_2ch;
0x00003bc0 movs r4, 1 | r4 = 1;
0x00003bc2 str.w sl, [sp, 4] | __asm ("str.w sl, [var_4h]");
0x00003bc6 ldr r3, [sp, 0x20] | r3 = var_20h;
0x00003bc8 ldr r2, [r1, 8] | r2 = *((r1 + 8));
0x00003bca ldr r0, [sp, 0x3c] | r0 = var_3ch;
0x00003bcc str r2, [sp, 8] | var_8h = r2;
0x00003bce ldr r2, [r1, 4] | r2 = *((r1 + 4));
0x00003bd0 str r2, [sp] | *(sp) = r2;
0x00003bd2 ldr r2, [r1] | r2 = *(r1);
0x00003bd4 ldr r1, [pc, 0x2ac] |
0x00003bd6 add r1, pc | r1 = 0x7a5e;
0x00003bd8 bl 0x204c | fcn_0000204c (r0);
| label_16:
0x00003bdc mov r0, sl | r0 = sl;
0x00003bde blx 0x197c | fcn_0000197c ();
0x00003be2 b 0x39c0 | goto label_9;
| label_22:
0x00003be4 ldr r3, [sp, 0x58] | r3 = var_58h;
0x00003be6 mov r2, r4 | r2 = r4;
0x00003be8 ldr r1, [sp, 0x2c] | r1 = var_2ch;
0x00003bea ldr r0, [sp, 0x3c] | r0 = var_3ch;
0x00003bec str r3, [sp, 0x14] | var_14h = r3;
0x00003bee ldr r3, [sp, 0x50] | r3 = var_50h;
0x00003bf0 str r3, [sp, 0x10] | var_10h = r3;
0x00003bf2 ldr r4, [r1] | r4 = *(r1);
0x00003bf4 str r4, [sp] | *(sp) = r4;
0x00003bf6 ldr r3, [r1, 0xc] | r3 = *((r1 + 0xc));
0x00003bf8 str r3, [sp, 0xc] | var_ch = r3;
0x00003bfa ldr r3, [r1, 8] | r3 = *((r1 + 8));
0x00003bfc str r3, [sp, 8] | var_8h = r3;
0x00003bfe ldr r3, [r1, 4] | r3 = *((r1 + 4));
0x00003c00 ldr r1, [sp, 0x54] | r1 = var_54h;
0x00003c02 str r3, [sp, 4] | var_4h = r3;
0x00003c04 mov r3, r6 | r3 = r6;
0x00003c06 bl 0x34c4 | r0 = fcn_000034c4 (r0, r1, r2, r3, r4, r5, r6);
0x00003c0a cmp r0, 1 |
| if (r0 == 1) {
0x00003c0c beq.w 0x3d7e | goto label_43;
| }
| label_17:
0x00003c10 mov r0, r6 | r0 = r6;
0x00003c12 blx 0x197c | fcn_0000197c ();
0x00003c16 ldr r3, [sp, 0x30] | r3 = var_30h;
0x00003c18 cmp r3, 0 |
| if (r3 != 0) {
0x00003c1a bne.w 0x3862 | goto label_10;
| }
| label_20:
0x00003c1e ldr r2, [pc, 0x268] |
0x00003c20 ldr r3, [pc, 0x224] | r3 = *(0x3e48);
0x00003c22 add r2, pc | r2 = 0x7ab0;
0x00003c24 ldr r3, [r2, r3] | r3 = *(0x7ab0);
0x00003c26 ldr r2, [r3] | r2 = *(0x7ab0);
0x00003c28 ldr r3, [sp, 0x1cc] | r3 = var_1cch;
0x00003c2a eors r2, r3 | r2 ^= r3;
0x00003c2c mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00003c30 bne.w 0x3dfc | goto label_44;
| }
0x00003c34 add sp, 0x1d4 |
0x00003c36 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_37:
0x00003c3a ldr r2, [sp, 0x48] | r2 = var_48h;
| if (r2 != 0) {
0x00003c3c cbz r2, 0x3c46 |
0x00003c3e ldr r1, [sp, 0x3c] | r1 = var_3ch;
0x00003c40 ldr r3, [r1, 8] | r3 = *((r1 + 8));
0x00003c42 subs r3, r3, r2 | r3 -= r2;
0x00003c44 str r3, [r1, 8] | *((r1 + 8)) = r3;
| }
0x00003c46 ldr r1, [sp, 0x2c] | r1 = var_2ch;
0x00003c48 mov r3, r8 | r3 = r8;
0x00003c4a ldr r0, [sp, 0x3c] | r0 = var_3ch;
0x00003c4c ldr r2, [r1, 8] | r2 = *((r1 + 8));
0x00003c4e str r2, [sp, 4] | var_4h = r2;
0x00003c50 ldr r2, [r1, 4] | r2 = *((r1 + 4));
0x00003c52 str r2, [sp] | *(sp) = r2;
0x00003c54 ldr r2, [r1] | r2 = *(r1);
0x00003c56 ldr r1, [sp, 0x5c] | r1 = var_5ch;
0x00003c58 bl 0x204c | fcn_0000204c (r0);
0x00003c5c str r0, [sp, 0x48] | var_48h = r0;
0x00003c5e b 0x3aec | goto label_11;
| label_21:
0x00003c60 movs r0, 1 | r0 = 1;
0x00003c62 blx 0x1b54 | r0 = fcn_00001b54 ();
0x00003c66 mov r6, r0 | r6 = r0;
0x00003c68 cmp r0, 0 |
| if (r0 == 0) {
0x00003c6a beq.w 0x3e00 | goto label_45;
| }
0x00003c6e ldr r2, [sp, 0x1c] | r2 = var_1ch;
0x00003c70 movs r3, 0 | r3 = 0;
0x00003c72 strb r3, [r0] | *(r0) = r3;
0x00003c74 str r3, [r2] | *(r2) = r3;
0x00003c76 b 0x3816 | goto label_12;
| label_31:
0x00003c78 blx 0x1cbc | r0 = fcn_00001cbc ();
0x00003c7c cmp r0, 0 |
| if (r0 != 0) {
0x00003c7e bne 0x3d32 | goto label_46;
| }
0x00003c80 ldr r3, [sp, 0x6c] | r3 = var_6ch;
0x00003c82 adds r3, 0x5c | r3 += 0x5c;
0x00003c84 b 0x399a | goto label_13;
| label_42:
0x00003c86 ldr r7, [pc, 0x204] |
0x00003c88 mov r0, sl | r0 = sl;
0x00003c8a blx 0x1a00 | r0 = fcn_00001a00 ();
0x00003c8e add.w lr, sl, r0 | lr = sl + r0;
0x00003c92 add r7, pc | r7 = 0x7b24;
0x00003c94 mov r6, lr | r6 = lr;
0x00003c96 add.w ip, r7, 0x20 |
| do {
0x00003c9a mov r4, r7 | r4 = r7;
0x00003c9c adds r6, 0x10 | r6 += 0x10;
0x00003c9e ldm r4!, {r0, r1, r2, r3} | r0 = *(r4!);
| r1 = *((r4! + 4));
| r2 = *((r4! + 8));
| r3 = *((r4! + 12));
0x00003ca0 adds r7, 0x10 | r7 += 0x10;
0x00003ca2 cmp r4, ip |
0x00003ca4 str r0, [r6, -0x10] | *((r6 - 0x10)) = r0;
0x00003ca8 str r1, [r6, -0xc] | *((r6 - 0xc)) = r1;
0x00003cac str r2, [r6, -0x8] | *((r6 - 0x8)) = r2;
0x00003cb0 str r3, [r6, -0x4] | *((r6 - 0x4)) = r3;
0x00003cb4 bne 0x3c9a |
| } while (r4 != ip);
0x00003cb6 ldm r7!, {r0, r1} | r0 = *(r7!);
| r1 = *((r7! + 4));
0x00003cb8 add.w lr, lr, 0x29 | lr += 0x29;
0x00003cbc sub.w r2, sl, lr | r2 = sl - lr;
0x00003cc0 add.w r2, r2, 0x2000 | r2 += 0x2000;
0x00003cc4 str r1, [r6, 4] | *((r6 + 4)) = r1;
0x00003cc6 ldrh r1, [r7] | r1 = *(r7);
0x00003cc8 str r0, [r6] | *(r6) = r0;
0x00003cca mov r0, lr | r0 = lr;
0x00003ccc strh r1, [r6, 8] | *((r6 + 8)) = r1;
0x00003cce mov r1, r5 | r1 = r5;
0x00003cd0 blx 0x1af4 | fcn_00001af4 ();
0x00003cd4 ldr r1, [pc, 0x1b8] |
0x00003cd6 sub.w r3, sl, r0 | r3 = sl - r0;
0x00003cda add.w r3, r3, 0x2000 | r3 += 0x2000;
0x00003cde movs r2, 2 | r2 = 2;
0x00003ce0 add r1, pc | r1 = 0x7b74;
0x00003ce2 blx 0x19d0 | fcn_000019d0 ();
0x00003ce6 b 0x3bbe | goto label_14;
| label_40:
0x00003ce8 mov r0, sl | r0 = sl;
0x00003cea ldr.w fp, [sp, 0x24] | fp = var_24h;
0x00003cee blx 0x1a00 | fcn_00001a00 ();
0x00003cf2 mov r1, r5 | r1 = r5;
0x00003cf4 add r0, sl | r0 += sl;
0x00003cf6 mov.w r2, 0x2000 | r2 = 0x2000;
0x00003cfa ldr.w sb, [sp, 0x4c] | sb = var_4ch;
0x00003cfe blx 0x1af4 | fcn_00001af4 ();
0x00003d02 ldr r1, [pc, 0x190] |
0x00003d04 sub.w r3, sl, r0 | r3 = sl - r0;
0x00003d08 add.w r3, r3, 0x2000 | r3 += 0x2000;
0x00003d0c movs r2, 2 | r2 = 2;
0x00003d0e add r1, pc | r1 = 0x7ba8;
0x00003d10 blx 0x19d0 | fcn_000019d0 ();
0x00003d14 mov r1, r4 | r1 = r4;
0x00003d16 mov r0, sl | r0 = sl;
0x00003d18 bl 0x2120 | fcn_00002120 (r0, r1);
0x00003d1c ldr r1, [pc, 0x178] |
0x00003d1e mov.w r2, 0x2000 | r2 = 0x2000;
0x00003d22 mov r0, sl | r0 = sl;
0x00003d24 add r1, pc | r1 = 0x7bc0;
0x00003d26 blx 0x1864 | strcat_chk ()
0x00003d2a mov r0, r4 | r0 = r4;
0x00003d2c blx 0x1bfc | fcn_00001bfc ();
0x00003d30 b 0x3bb8 | goto label_15;
| label_46:
0x00003d32 ldr r3, [sp, 0x64] | r3 = var_64h;
0x00003d34 b 0x399a | goto label_13;
| label_41:
0x00003d36 ldr r1, [pc, 0x164] |
0x00003d38 mov.w r2, 0x2000 | r2 = 0x2000;
0x00003d3c mov r0, sl | r0 = sl;
0x00003d3e ldr.w fp, [sp, 0x24] | fp = var_24h;
0x00003d42 ldr.w sb, [sp, 0x4c] | sb = var_4ch;
0x00003d46 add r1, pc | r1 = 0x7be8;
0x00003d48 blx 0x1864 | strcat_chk ()
0x00003d4c mov r0, r4 | r0 = r4;
0x00003d4e blx 0x1bfc | fcn_00001bfc ();
| label_19:
0x00003d52 ldr r3, [sp, 0x58] | r3 = var_58h;
0x00003d54 ldr r1, [sp, 0x2c] | r1 = var_2ch;
0x00003d56 ldr r2, [sp, 0x20] | r2 = var_20h;
0x00003d58 str r3, [sp, 0x14] | var_14h = r3;
0x00003d5a ldr r3, [sp, 0x50] | r3 = var_50h;
0x00003d5c ldr r0, [sp, 0x3c] | r0 = var_3ch;
0x00003d5e str r3, [sp, 0x10] | var_10h = r3;
0x00003d60 ldr r3, [r1, 0xc] | r3 = *((r1 + 0xc));
0x00003d62 str r3, [sp, 0xc] | var_ch = r3;
0x00003d64 ldr r3, [r1, 8] | r3 = *((r1 + 8));
0x00003d66 str r3, [sp, 8] | var_8h = r3;
0x00003d68 ldr r3, [r1, 4] | r3 = *((r1 + 4));
0x00003d6a str r3, [sp, 4] | var_4h = r3;
0x00003d6c ldr r3, [r1] | r3 = *(r1);
0x00003d6e ldr r1, [sp, 0x54] | r1 = var_54h;
0x00003d70 str r3, [sp] | *(sp) = r3;
0x00003d72 ldr r3, [pc, 0x12c] |
0x00003d74 add r3, pc | r3 = 0x7c1a;
0x00003d76 bl 0x34c4 | fcn_000034c4 (r0, r1, r2, r3, r4, r5, r6);
0x00003d78 umull r4, r6, r5, r4 | r4:r6 = r5 * r4;
0x00003d7c b 0x3bdc | goto label_16;
| label_43:
0x00003d7e ldrd r3, r7, [sp, 0x28] | __asm ("ldrd r3, r7, [var_28h]");
0x00003d82 add r5, sp, 0x88 | r5 += s;
0x00003d84 add.w r8, r3, 4 | r8 = r3 + 4;
| label_18:
0x00003d88 mov r0, r4 | r0 = r4;
0x00003d8a blx 0x1a00 | fcn_00001a00 ();
0x00003d8e ldr r2, [r8, -0x4] | r2 = *((r8 - 0x4));
0x00003d92 adds r3, r0, 1 | r3 = r0 + 1;
0x00003d94 ldr r1, [r8], 0xc | r1 = *(r8);
| r8 += 0xc;
0x00003d98 add r3, r4 | r3 += r4;
0x00003d9a cmp r1, r3 |
0x00003d9c it eq |
| if (r1 != r3) {
0x00003d9e moveq r3, r2 | r3 = r2;
| }
0x00003da0 str r3, [r7], 4 | *(r7) = r3;
| r7 += 4;
0x00003da4 cmp r5, r7 |
| if (r5 == r7) {
0x00003da6 beq.w 0x3c10 | goto label_17;
| }
0x00003daa ldr r4, [r7] | r4 = *(r7);
0x00003dac b 0x3d88 | goto label_18;
| label_32:
0x00003dae mov r5, r4 | r5 = r4;
0x00003db0 movs r3, 1 | r3 = 1;
0x00003db2 b 0x38a0 | goto label_5;
| label_39:
0x00003db4 ldr r4, [pc, 0xec] |
0x00003db6 mov r0, sl | r0 = sl;
0x00003db8 blx 0x1a00 | r0 = fcn_00001a00 ();
0x00003dbc add.w r5, sl, r0 | r5 = sl + r0;
0x00003dc0 mov r7, r0 | r7 = r0;
0x00003dc2 add r4, pc | r4 = 0x7c6a;
0x00003dc4 add.w ip, r5, 0x13 |
0x00003dc8 ldm r4!, {r0, r1, r2, r3} | r0 = *(r4!);
| r1 = *((r4! + 4));
| r2 = *((r4! + 8));
| r3 = *((r4! + 12));
0x00003dca sub.w lr, sl, ip | lr = sl - ip;
0x00003dce str.w r0, [sl, r7] | __asm ("str.w r0, [sl, r7]");
0x00003dd2 ldr r0, [r4] | r0 = *(0x7c6a);
0x00003dd4 str r1, [r5, 4] | *((r5 + 4)) = r1;
0x00003dd6 mov r1, r6 | r1 = r6;
0x00003dd8 str r2, [r5, 8] | *((r5 + 8)) = r2;
0x00003dda add.w r2, lr, 0x2000 | r2 = lr + 0x2000;
0x00003dde str r3, [r5, 0xc] | *((r5 + 0xc)) = r3;
0x00003de0 str r0, [r5, 0x10] | *((r5 + 0x10)) = r0;
0x00003de2 mov r0, ip | r0 = ip;
0x00003de4 blx 0x1af4 | fcn_00001af4 ();
0x00003de8 ldr r1, [pc, 0xbc] |
0x00003dea sub.w r3, sl, r0 | r3 = sl - r0;
0x00003dee add.w r3, r3, 0x2000 | r3 += 0x2000;
0x00003df2 movs r2, 2 | r2 = 2;
0x00003df4 add r1, pc | r1 = 0x7ca0;
0x00003df6 blx 0x19d0 | fcn_000019d0 ();
0x00003dfa b 0x3d52 | goto label_19;
| label_44:
0x00003dfc blx 0x1b60 | fcn_00001b60 ();
| label_45:
0x00003e00 ldr r2, [pc, 0xa8] |
0x00003e02 movs r0, 2 | r0 = 2;
0x00003e04 movs r1, 1 | r1 = 1;
0x00003e06 mov.w r4, 0x608 | r4 = 0x608;
0x00003e08 str r1, [r0, 0x4c] | *((r0 + 0x4c)) = r1;
0x00003e0a add r2, pc | r2 = 0x7cba;
0x00003e0c blx 0x1a9c | fcn_00001a9c ();
0x00003e10 ldr r3, [pc, 0x9c] |
0x00003e12 movs r0, 2 | r0 = 2;
0x00003e14 ldr r2, [pc, 0x9c] |
0x00003e16 add r3, pc | r3 = 0x7cca;
0x00003e18 add r2, pc | r2 = 0x7cd0;
| do {
0x00003e1a movs r1, 1 | r1 = 1;
0x00003e1c str r4, [sp] | *(sp) = r4;
0x00003e1e blx 0x1a9c | fcn_00001a9c ();
0x00003e22 movs r0, 1 | r0 = 1;
0x00003e24 blx 0x1cd4 | fcn_00001cd4 ();
| label_38:
0x00003e28 ldr r2, [pc, 0x8c] |
0x00003e2a movs r0, 2 | r0 = 2;
0x00003e2c movs r1, 1 | r1 = 1;
0x00003e2e movw r4, 0x6af | r4 = 0x6af;
0x00003e32 add r2, pc | r2 = 0x7cee;
0x00003e34 blx 0x1a9c | fcn_00001a9c ();
0x00003e38 ldr r3, [pc, 0x80] |
0x00003e3a movs r0, 2 | r0 = 2;
0x00003e3c ldr r2, [pc, 0x80] |
0x00003e3e add r3, pc | r3 = 0x7cfe;
0x00003e40 add r2, pc | r2 = 0x7d04;
0x00003e42 b 0x3e1a |
| } while (1);
| }
[*] Function strcat used 5 times ssid