[*] Binary protection state of xtables-legacy-multi
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of xtables-legacy-multi
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/xtables-legacy-multi @ 0x47f4 */
| #include <stdint.h>
|
| #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
|
; (fcn) fcn.000047f4 () | void fcn_000047f4 (int16_t arg_200h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
| int16_t var_0h;
| int16_t var_ch_2;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_sp_0h;
| int16_t var_28h;
| int16_t var_2ch;
| int16_t var_30h;
| int16_t var_34h;
| int16_t var_38h;
| int16_t var_3ch;
| char * s1;
| 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;
| int16_t var_7ch;
| int16_t var_80h;
| int16_t var_84h;
| int16_t var_88h;
| int16_t var_8ch;
| int16_t var_90h;
| int16_t var_94h;
| int16_t var_98h;
| int16_t var_9ch;
| int16_t var_a0h;
| int16_t var_a4h;
| int16_t var_ach;
| size_t n;
| int16_t var_b8h;
| int16_t var_bch;
| int16_t var_c0h;
| int32_t var_c0h_3;
| int16_t var_c8h;
| int32_t var_c8h_2;
| int16_t var_d0h;
| int32_t var_8h;
| int16_t var_e0h;
| int16_t var_e8h;
| int16_t var_f0h;
| int32_t var_24h;
| int32_t var_28h_2;
| int16_t var_100h;
| int16_t var_110h;
| int8_t var_52h;
| int16_t var_123h;
| int32_t var_54h_2;
| int32_t var_58h_2;
| int16_t var_130h;
| int32_t var_70h_2;
| int32_t var_c0h_2;
| int32_t var_c4h;
| int16_t var_198h;
| int16_t var_19ch;
| int32_t var_d4h;
| int32_t var_f0h_2;
| int32_t var_f4h;
| int16_t var_1d4h;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
| r3 = arg4;
0x000047f4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x000047f8 sub sp, 0x1dc |
0x000047fa str r2, [sp, 0x50] | var_50h = r2;
0x000047fc mov r4, r1 | r4 = r1;
0x000047fe add r5, sp, 0xd0 | r5 += var_d0h;
0x00004800 mov r7, r0 | r7 = r0;
0x00004802 ldr.w r2, [pc, 0xad8] | r2 = *(0x000052dc);
0x00004806 mov r0, r5 | r0 = r5;
0x00004808 str r3, [sp, 0x3c] | var_3ch = r3;
0x0000480a add.w fp, sp, 0xa8 |
0x0000480e ldrb.w r1, [sp, 0x200] | r1 = *(arg_200h);
0x00004812 ldr.w r3, [pc, 0xacc] |
0x00004816 add r2, pc | r2 += pc;
0x00004818 ldr.w r6, [pc, 0xac8] | r6 = *(0x000052e4);
0x0000481c str r1, [sp, 0x30] | var_30h = r1;
0x0000481e movs r1, 0 | r1 = 0;
0x00004820 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00004822 mov.w r2, 0x100 | r2 = 0x100;
0x00004826 add r6, pc | r6 += pc;
0x00004828 ldr r3, [r3] | r3 = *(0x52e2);
0x0000482a str r3, [sp, 0x1d4] | var_1d4h = r3;
0x0000482c mov.w r3, 0 | r3 = 0;
0x00004830 blx 0x24b8 | iptc_next_chain ();
0x00004834 add r1, sp, 0x90 | r1 += var_90h;
0x00004836 ldr.w r3, [pc, 0xab0] |
0x0000483a str r1, [sp, 0x5c] | var_5ch = r1;
0x0000483c add r1, sp, 0x94 | r1 += var_94h;
0x0000483e str r1, [sp, 0x60] | var_60h = r1;
0x00004840 add r1, sp, 0x98 | r1 += var_98h;
0x00004842 str r1, [sp, 0x64] | var_64h = r1;
0x00004844 add r3, pc | r3 = 0x9b32;
0x00004846 add r1, sp, 0x9c | r1 += var_9ch;
0x00004848 str.w r3, [r5, 0xf0] | __asm ("str.w r3, [var_f0h_2]");
0x0000484c str r1, [sp, 0x68] | var_68h = r1;
0x0000484e add r1, sp, 0xa0 | r1 += var_a0h;
0x00004850 ldr.w r3, [pc, 0xa98] | r3 = *(0x52ec);
0x00004854 movs r2, 0 | r2 = 0;
0x00004856 str r1, [sp, 0x6c] | var_6ch = r1;
0x00004858 add r1, sp, 0xa4 | r1 += var_a4h;
0x0000485a str r1, [sp, 0x70] | var_70h = r1;
0x0000485c add r0, sp, 0xb8 | r0 += var_b8h;
0x0000485e movs r1, 1 | r1 = 1;
0x00004860 str.w r4, [r5, 0xf4] | __asm ("str.w r4, [var_f4h]");
0x00004864 str r0, [sp, 0x74] | var_74h = r0;
0x00004866 str r2, [sp, 0xbc] | var_bch = r2;
0x00004868 str r2, [sp, 0x90] | var_90h = r2;
0x0000486a str r2, [sp, 0x94] | var_94h = r2;
0x0000486c str r2, [sp, 0x98] | var_98h = r2;
0x0000486e str r2, [sp, 0x9c] | var_9ch = r2;
0x00004870 str r2, [sp, 0xa0] | var_a0h = r2;
0x00004872 str r2, [sp, 0xa4] | var_a4h = r2;
0x00004874 str r1, [sp, 0xb8] | var_b8h = r1;
0x00004876 str.w r2, [fp] | __asm ("str.w r2, [fp]");
0x0000487a ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x0000487c str r2, [r3] | *(r3) = r2;
0x0000487e str r3, [sp, 0x28] | var_28h = r3;
0x00004880 ldr.w r3, [pc, 0xa6c] |
0x00004884 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004886 ldr r3, [r3] | r3 = *(0x52f0);
| if (r3 == 0) {
0x00004888 cbz r3, 0x4892 | goto label_55;
| }
| do {
0x0000488a str r2, [r3, 0x5c] | *((r3 + 0x5c)) = r2;
0x0000488c ldr r3, [r3, 4] | r3 = *((r3 + 4));
0x0000488e cmp r3, 0 |
0x00004890 bne 0x488a |
| } while (r3 != 0);
| label_55:
0x00004892 ldr.w r3, [pc, 0xa60] |
0x00004896 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004898 str r3, [sp, 0x84] | var_84h = r3;
0x0000489a ldr r3, [r3] | r3 = *(0x52f6);
| if (r3 == 0) {
0x0000489c cbz r3, 0x48aa | goto label_56;
| }
0x0000489e movs r2, 0 | r2 = 0;
| do {
0x000048a0 strd r2, r2, [r3, 0x5c] | __asm ("strd r2, r2, [r3, 0x5c]");
0x000048a4 ldr r3, [r3, 4] | r3 = *((r3 + 4));
0x000048a6 cmp r3, 0 |
0x000048a8 bne 0x48a0 |
| } while (r3 != 0);
| label_56:
0x000048aa ldr.w r3, [pc, 0xa4c] | r3 = *(0x52fa);
0x000048ae movs r2, 0 | r2 = 0;
0x000048b0 mov sb, r2 | sb = r2;
0x000048b2 ldr.w r8, [pc, 0xa48] |
0x000048b6 ldr r1, [r6, r3] | r1 = *((r6 + r3));
0x000048b8 ldr.w r3, [pc, 0xa44] |
0x000048bc add r8, pc | r8 = 0x9bbe;
0x000048be str r2, [r1] | *(r1) = r2;
0x000048c0 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x000048c2 ldr.w r2, [pc, 0xa40] | r2 = *(0x00005304);
0x000048c6 ldr.w r1, [pc, 0xa40] | r1 = *(0x00005308);
0x000048ca str r3, [sp, 0x78] | var_78h = r3;
0x000048cc ldr r3, [r3] |
0x000048ce add r2, pc | r2 += pc;
0x000048d0 add r1, pc | r1 += pc;
0x000048d2 str.w sb, [sp, 0x34] | __asm ("str.w sb, [var_34h]");
0x000048d6 str r1, [sp, 0x80] | var_80h = r1;
0x000048d8 ldr r3, [r3, 0xc] | r3 = *(0x530c);
0x000048da str.w sb, [sp, 0x7c] | __asm ("str.w sb, [var_7ch]");
0x000048de str.w sb, [sp, 0x58] | __asm ("str.w sb, [var_58h]");
0x000048e2 str r3, [r2, 0x10] | *((r2 + 0x10)) = r3;
0x000048e4 ldr.w r2, [pc, 0xa24] |
0x000048e8 str.w sb, [sp, 0x4c] | __asm ("str.w sb, [var_4ch]");
0x000048ec str.w sb, [sp, 0x38] | __asm ("str.w sb, [var_38h]");
0x000048f0 add r2, pc | r2 = 0x9c00;
0x000048f2 str.w sb, [sp, 0x48] | __asm ("str.w sb, [var_48h]");
0x000048f6 str r2, [sp, 0x40] | s1 = r2;
0x000048f8 str.w sb, [sp, 0x2c] | __asm ("str.w sb, [var_2ch]");
0x000048fc str.w sb, [sp, 0x54] | __asm ("str.w sb, [var_54h]");
0x00004900 str.w sb, [sp, 0x44] | __asm ("str.w sb, [var_44h]");
| do {
0x00004904 movs r2, 0 | r2 = 0;
0x00004906 mov r1, r4 | r1 = r4;
0x00004908 str r2, [sp] | *(sp) = r2;
0x0000490a mov r0, r7 | r0 = r7;
0x0000490c mov r2, r8 | r2 = r8;
0x0000490e blx 0x23c8 | r0 = ctype_b_loc ();
0x00004912 adds r1, r0, 1 | r1 = r0 + 1;
0x00004914 str.w r0, [r5, 0xc4] | __asm ("str.w r0, [var_c4h]");
0x00004916 lsls r4, r0, 3 | r4 = r0 << 3;
| if (r4 == r0) {
0x00004918 beq.w 0x4fbe | goto label_57;
| }
0x0000491c subs r0, 1 | r0--;
0x0000491e cmp r0, 0x77 |
| if (r0 > 0x77) {
0x00004920 bhi.w 0x4a42 | goto label_58;
| }
| /* switch table (121 cases) at 0x4928 */
0x00004924 tbh [pc, r0, lsl 1] | __asm ("tbh [pc, r0, lsl 1]");
0x00004a18 ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004a1c movs r2, 0 | r2 = 0;
0x00004a1e mov.w r1, 0x4000 | r1 = 0x4000;
| label_5:
0x00004a22 mov r0, fp | r0 = fp;
0x00004a24 bl 0x9a10 | fcn_00009a10 (r0, r1);
0x00004a28 ldr.w r3, [pc, 0x8e4] | r3 = *(0x5310);
0x00004a2c ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004a2e ldr.w sb, [r3] | sb = *(0x5310);
| label_0:
0x00004a32 movs r3, 0 | r3 = 0;
0x00004a34 str.w r3, [r5, 0xc0] | __asm ("str.w r3, [var_c0h_2]");
| label_1:
0x00004a38 ldr.w r3, [pc, 0x8d8] | r3 = *(0x00005314);
0x00004a3c add r3, pc | r3 += pc;
0x00004a3e ldr r3, [r3, 0x10] | r3 = *((r3 + 0x10));
0x00004a40 b 0x4904 |
| } while (1);
| label_58:
0x00004a42 ldr r1, [sp, 0x80] | r1 = var_80h;
0x00004a44 mov r0, r5 | r0 = r5;
0x00004a46 bl 0x8cf0 | r0 = fcn_00008cf0 (r0, r1);
0x00004a4a cmp r0, 1 |
| if (r0 != 1) {
0x00004a4c bne 0x4a32 | goto label_0;
| }
0x00004a4e b 0x4a38 | goto label_1;
0x00004a50 ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004a54 addw r2, sp, 0x123 | __asm ("addw r2, var_123h");
0x00004a58 movs r1, 0x40 | r1 = 0x40;
0x00004a5a add r0, sp, 0x198 | r0 += var_198h;
0x00004a5c bl 0x410c | fcn_0000410c (r0, r1, r2, r3);
0x00004a60 b 0x4a32 | goto label_0;
0x00004a62 ldr r3, [sp, 0x30] | r3 = var_30h;
0x00004a64 cmp r3, 0 |
| if (r3 != 0) {
0x00004a66 bne.w 0x6064 | goto label_59;
| }
0x00004a6a mov r1, r4 | r1 = r4;
0x00004a6c mov r0, r7 | r0 = r7;
0x00004a6e bl 0x9074 | fcn_00009074 (r0, r1);
0x00004a72 str r0, [sp, 0x48] | var_48h = r0;
0x00004a74 b 0x4a32 | goto label_0;
0x00004a76 ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x00004a78 cmp r3, 0 |
| if (r3 == 0) {
0x00004a7a beq.w 0x558e | goto label_60;
| }
| label_14:
0x00004a7e ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x00004a80 adds r3, 1 | r3++;
0x00004a82 str r3, [sp, 0x2c] | var_2ch = r3;
0x00004a84 b 0x4a32 | goto label_0;
0x00004a86 ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004a8a cmp r3, 0 |
| if (r3 != 0) {
0x00004a8c bne.w 0x6016 | goto label_61;
| }
0x00004a90 ldr r3, [sp, 0x44] | r3 = var_44h;
0x00004a92 ldr r2, [sp, 0x30] | r2 = var_30h;
0x00004a94 tst r3, r2 |
| if ((r3 & r2) != 0) {
0x00004a96 bne.w 0x6024 | goto label_62;
| }
0x00004a9a ldr.w r3, [pc, 0x874] |
0x00004a9e ldr r2, [sp, 0x50] | r2 = var_50h;
0x00004aa0 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004aa2 ldr r3, [r3] | r3 = *(0x5312);
0x00004aa4 str r3, [r2] | *(r2) = r3;
0x00004aa6 movs r3, 1 | r3 = 1;
0x00004aa8 str r3, [sp, 0x44] | var_44h = r3;
0x00004aaa b 0x4a32 | goto label_0;
0x00004aac ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004ab0 addw r2, sp, 0x123 | __asm ("addw r2, var_123h");
0x00004ab4 movs r1, 2 | r1 = 2;
0x00004ab6 add r0, sp, 0x198 | r0 += var_198h;
0x00004ab8 bl 0x410c | fcn_0000410c (r0, r1, r2, r3);
0x00004abc ldr.w r3, [pc, 0x850] |
0x00004ac0 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004ac2 ldr r3, [r3] | r3 = *(0x5310);
0x00004ac4 str r3, [sp, 0x38] | var_38h = r3;
0x00004ac6 b 0x4a32 | goto label_0;
0x00004ac8 ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004acc addw r2, sp, 0x123 | __asm ("addw r2, var_123h");
0x00004ad0 movs r1, 8 | r1 = 8;
0x00004ad2 add r0, sp, 0x198 | r0 += var_198h;
0x00004ad4 bl 0x410c | fcn_0000410c (r0, r1, r2, r3);
0x00004ad8 ldr.w r3, [pc, 0x834] | r3 = *(0x5310);
0x00004adc ldr.w sl, [r6, r3] | sl = *((r6 + r3));
0x00004ae0 ldr.w r3, [sl] | r3 = *(sl);
0x00004ae4 str.w r3, [r5, 0xe8] | __asm ("str.w r3, [r5, 0xe8]");
0x00004ae6 adds r0, 0xe8 | r0 += 0xe8;
0x00004ae8 ldrb r2, [r3] | r2 = *(r3);
0x00004aea str r2, [sp, 0x88] | var_88h = r2;
| if (r2 == 0) {
0x00004aec cbz r2, 0x4b14 | goto label_63;
| }
0x00004aee str r3, [sp, 0x8c] | var_8ch = r3;
0x00004af0 blx 0x23b0 | loc_imp_gmon_start_ ();
0x00004af4 ldrd r2, r3, [sp, 0x88] | __asm ("ldrd r2, r3, [var_88h]");
| do {
0x00004af8 ldr r1, [r0] | r1 = *(r0);
0x00004afa ldr.w r2, [r1, r2, lsl 2] | offset_0 = r2 << 2;
| r2 = *((r1 + offset_0));
0x00004afe strb r2, [r3] | *(r3) = r2;
0x00004b00 ldr.w r2, [r5, 0xe8] | r2 = *((r5 + 0xe8));
0x00004b04 adds r3, r2, 1 | r3 = r2 + 1;
0x00004b06 str.w r3, [r5, 0xe8] | __asm ("str.w r3, [r5, 0xe8]");
0x00004b0a ldrb r2, [r2, 1] | r2 = *((r2 + 1));
0x00004b0c cmp r2, 0 |
0x00004b0e bne 0x4af8 |
| } while (r2 != 0);
0x00004b10 ldr.w r3, [sl] | r3 = *(sl);
| label_63:
0x00004b14 mov r0, r3 | r0 = r3;
0x00004b16 str.w r3, [r5, 0xe8] | __asm ("str.w r3, [r5, 0xe8]");
0x00004b1a blx 0x20d4 | xtables_parse_protocol ();
0x00004b1e strh.w r0, [r5, 0x50] | *((r5 + 0x50)) = r0;
0x00004b22 cmp r0, 0 |
| if (r0 != 0) {
0x00004b24 bne 0x4a32 | goto label_0;
| }
0x00004b26 ldrb.w r3, [r5, 0x53] | r3 = *((r5 + 0x53));
0x00004b2a lsls r0, r3, 0x19 | r0 = r3 << 0x19;
| if (r0 >= r3) {
0x00004b2c bpl 0x4a32 | goto label_0;
| }
0x00004b2e ldr r3, [sp, 0x78] | r3 = var_78h;
0x00004b30 movs r0, 2 | r0 = 2;
0x00004b32 ldr.w r1, [pc, 0x7e4] |
0x00004b36 ldr r3, [r3] | r3 = *(r3);
0x00004b38 add r1, pc | r1 = 0x9e56;
0x00004b3a ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x00004b3c blx r3 | uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
0x00004b3e ldr.w r3, [pc, 0x7d0] | r3 = *(0x5312);
0x00004b42 ldr.w sl, [r6, r3] | sl = *((r6 + r3));
0x00004b46 ldr.w r3, [sl] | r3 = *(sl);
0x00004b48 adds r0, 0 | r0 += 0;
0x00004b4a ldrb r3, [r3] | r3 = *(r3);
0x00004b4c cmp r3, 0 |
| if (r3 == 0) {
0x00004b4e beq.w 0x6080 | goto label_64;
| }
0x00004b52 addw r2, sp, 0x123 | __asm ("addw r2, var_123h");
0x00004b56 add r0, sp, 0x198 | r0 += var_198h;
0x00004b58 ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004b5c mov.w r1, 0x100 | r1 = 0x100;
0x00004b60 bl 0x410c | fcn_0000410c (r0, r1, r2, r3);
0x00004b64 ldr.w r0, [sl] | r0 = *(sl);
0x00004b68 add r2, sp, 0x110 | r2 += var_110h;
0x00004b6a add r1, sp, 0xf0 | r1 += var_f0h;
0x00004b6c blx 0x211c | xtables_parse_interface ();
0x00004b70 b 0x4a32 | goto label_0;
0x00004b72 ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004b76 addw r2, sp, 0x123 | __asm ("addw r2, var_123h");
0x00004b78 asrs r3, r4, 8 | r3 = r4 >> 8;
0x00004b7a movs r1, 1 | r1 = 1;
0x00004b7c add r0, sp, 0x198 | r0 += var_198h;
0x00004b7e bl 0x410c | fcn_0000410c (r0, r1, r2, r3);
0x00004b82 b 0x4a32 | goto label_0;
0x00004b84 mov r0, r5 | r0 = r5;
0x00004b86 bl 0x9770 | fcn_00009770 (r0);
0x00004b8a b 0x4a32 | goto label_0;
0x00004b8c ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004b90 add r0, sp, 0x198 | r0 += var_198h;
0x00004b92 addw r2, sp, 0x123 | __asm ("addw r2, var_123h");
0x00004b96 movs r1, 0x10 | r1 = 0x10;
0x00004b98 bl 0x410c | fcn_0000410c (r0, r1, r2, r3);
0x00004b9c ldr.w r3, [pc, 0x770] | r3 = *(0x5310);
0x00004ba0 mov r0, r5 | r0 = r5;
0x00004ba2 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004ba4 ldr r1, [r3] | r1 = *(0x5310);
0x00004ba6 bl 0x98e0 | fcn_000098e0 (r0, r1);
0x00004baa b 0x4a32 | goto label_0;
0x00004bac ldr.w r3, [pc, 0x760] | r3 = *(0x5310);
0x00004bb0 ldr.w sl, [r6, r3] | sl = *((r6 + r3));
0x00004bb4 ldr.w r3, [sl] | r3 = *(sl);
0x00004bb8 ldrb r3, [r3] | r3 = *(r3);
0x00004bba cmp r3, 0 |
| if (r3 == 0) {
0x00004bbc beq.w 0x5f66 | goto label_65;
| }
0x00004bc0 addw r2, sp, 0x123 | __asm ("addw r2, var_123h");
0x00004bc4 add r0, sp, 0x198 | r0 += var_198h;
0x00004bc6 ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004bca movs r1, 0x80 | r1 = 0x80;
0x00004bcc bl 0x410c | fcn_0000410c (r0, r1, r2, r3);
0x00004bd0 ldr.w r0, [sl] | r0 = *(sl);
0x00004bd4 add r2, sp, 0x100 | r2 += var_100h;
0x00004bd6 add r1, sp, 0xe0 | r1 += var_e0h;
0x00004bd8 blx 0x211c | xtables_parse_interface ();
0x00004bdc b 0x4a32 | goto label_0;
0x00004bde ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004be2 addw r2, sp, 0x123 | __asm ("addw r2, var_123h");
0x00004be4 asrs r3, r4, 8 | r3 = r4 >> 8;
0x00004be6 movs r1, 0x10 | r1 = 0x10;
0x00004be8 add r0, sp, 0x198 | r0 += var_198h;
0x00004bea bl 0x410c | fcn_0000410c (r0, r1, r2, r3);
0x00004bec qdadd r8, r5, pc | __asm ("qdadd r8, r5, pc");
0x00004bee ldrb.w r3, [r5, 0x52] | r3 = *((r5 + 0x52));
0x00004bf2 orr r3, r3, 2 | r3 |= 2;
0x00004bf6 strb.w r3, [r5, 0x52] | *((r5 + 0x52)) = r3;
0x00004bfa ldr.w r3, [pc, 0x714] | r3 = *(0x5312);
0x00004bfe ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004c00 ldr r0, [r3] | r0 = *(0x5312);
0x00004c02 bl 0x9864 | fcn_00009864 (r0);
0x00004c06 str.w r0, [r5, 0xf0] | __asm ("str.w r0, [r5, 0xf0]");
0x00004c0a b 0x4a32 | goto label_0;
0x00004c0c ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004c10 addw r2, sp, 0x123 | __asm ("addw r2, var_123h");
0x00004c14 mov.w r1, 0x800 | r1 = 0x800;
0x00004c16 str r0, [r0, 0x10] | *((r0 + 0x10)) = r0;
0x00004c18 add r0, sp, 0x198 | r0 += var_198h;
0x00004c1a bl 0x410c | fcn_0000410c (r0, r1, r2, r3);
0x00004c1e ldrb.w r3, [r5, 0x52] | r3 = *((r5 + 0x52));
0x00004c22 orr r3, r3, 1 | r3 |= 1;
0x00004c26 strb.w r3, [r5, 0x52] | *((r5 + 0x52)) = r3;
0x00004c2a b 0x4a32 | goto label_0;
0x00004c2c ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004c30 addw r2, sp, 0x123 | __asm ("addw r2, var_123h");
0x00004c34 movs r1, 4 | r1 = 4;
0x00004c36 add r0, sp, 0x198 | r0 += var_198h;
0x00004c38 bl 0x410c | fcn_0000410c (r0, r1, r2, r3);
0x00004c3c ldr.w r3, [pc, 0x6d0] |
0x00004c40 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004c42 ldr r3, [r3] | r3 = *(0x5310);
0x00004c44 str r3, [sp, 0x4c] | var_4ch = r3;
0x00004c46 b 0x4a32 | goto label_0;
0x00004c48 ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004c4c addw r2, sp, 0x123 | __asm ("addw r2, var_123h");
0x00004c50 mov.w r1, 0x400 | r1 = 0x400;
0x00004c54 add r0, sp, 0x198 | r0 += var_198h;
0x00004c56 bl 0x410c | fcn_0000410c (r0, r1, r2, r3);
0x00004c5a ldr.w r3, [pc, 0x6b4] |
0x00004c5e movs r1, 0x2c | r1 = 0x2c;
0x00004c60 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004c62 ldr r3, [r3] | r3 = *(0x5312);
0x00004c64 adds r0, r3, 1 | r0 = r3 + 1;
0x00004c66 str r3, [sp, 0x88] | var_88h = r3;
0x00004c68 blx 0x241c | iptc_is_chain ();
0x00004c6c ldr r3, [sp, 0x88] | r3 = var_88h;
0x00004c6e add.w sl, r0, 1 | sl = r0 + 1;
0x00004c72 cmp r0, 0 |
| if (r0 == 0) {
0x00004c74 beq.w 0x5688 | goto label_66;
| }
| label_21:
0x00004c78 add r2, sp, 0xb0 | r2 += n;
0x00004c7a ldr r1, [sp, 0x40] | r1 = s1;
0x00004c7c mov r0, r3 | r0 = r3;
0x00004c7e str r2, [sp, 0x88] | var_88h = r2;
0x00004c80 blx 0x24ac | r0 = memset (r0, r1, r2);
0x00004c84 cmp r0, 1 |
0x00004c86 ldr r2, [sp, 0x88] | r2 = var_88h;
| if (r0 != 1) {
0x00004c88 bne.w 0x5f36 | goto label_67;
| }
0x00004c8c vldr d16, [sp, 0xb0] | __asm ("vldr d16, [sp, 0xb0]");
0x00004c90 mov r0, sl | r0 = sl;
0x00004c92 ldr r1, [sp, 0x40] | r1 = s1;
0x00004c94 vstr d16, [r5, 0x60] | __asm ("vstr d16, [r5, 0x60]");
0x00004c98 blx 0x24ac | r0 = memset (r0, r1, r2);
0x00004c9c cmp r0, 1 |
| if (r0 != 1) {
0x00004c9e bne.w 0x5f4e | goto label_68;
| }
0x00004ca0 strh r6, [r2, 0xa] | *((r2 + 0xa)) = r6;
0x00004ca2 ldrd r2, r3, [sp, 0xb0] | __asm ("ldrd r2, r3, [n]");
0x00004ca6 strd r2, r3, [r5, 0x68] | __asm ("strd r2, r3, [r5, 0x68]");
0x00004caa b 0x4a32 | goto label_0;
0x00004cac ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004cb0 mov.w r2, 0x1020 | r2 = 0x1020;
0x00004cb4 movs r1, 0x80 | r1 = 0x80;
0x00004cb6 mov r0, fp | r0 = fp;
0x00004cb8 bl 0x9a10 | fcn_00009a10 (r0, r1);
0x00004cbc ldr.w r3, [pc, 0x650] |
0x00004cc0 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004cc2 ldr r3, [r3] | r3 = *(0x5310);
0x00004cc4 cmp r3, 0 |
| if (r3 == 0) {
0x00004cc6 beq.w 0x566a | goto label_69;
| }
0x00004cca mov sb, r3 | sb = r3;
| label_20:
0x00004ccc mov r1, r4 | r1 = r4;
0x00004cce mov r0, r7 | r0 = r7;
0x00004cd0 bl 0x92d4 | r0 = fcn_000092d4 (r0, r1);
0x00004cd4 cmp r0, 0 |
| if (r0 == 0) {
0x00004cd6 beq.w 0x4a32 | goto label_0;
| }
0x00004cda ldr r1, [sp, 0x28] | r1 = var_28h;
0x00004cdc ldr r3, [r1] | r3 = *(r1);
0x00004cde adds r2, r3, 1 | r2 = r3 + 1;
0x00004ce0 ldr.w r0, [r4, r3, lsl 2] | offset_1 = r3 << 2;
| r0 = *((r4 + offset_1));
0x00004ce4 str r2, [r1] | *(r1) = r2;
0x00004ce6 bl 0x9a74 | fcn_00009a74 (r0, r1);
0x00004cea mov.w r3, 0x2000 | r3 = 0x2000;
0x00004cee str r0, [sp, 0x34] | var_34h = r0;
0x00004cf0 str.w r3, [fp] | __asm ("str.w r3, [fp]");
0x00004cf4 b 0x4a32 | goto label_0;
0x00004cf6 ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004cfa movs r2, 0 | r2 = 0;
0x00004cfc mov.w r1, 0x200 | r1 = 0x200;
| label_4:
0x00004d00 mov r0, fp | r0 = fp;
0x00004d02 bl 0x9a10 | fcn_00009a10 (r0, r1);
0x00004d06 ldr.w r3, [pc, 0x608] |
0x00004d0a ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004d0c ldr r3, [r3] | r3 = *(0x5312);
0x00004d0e cmp r3, 0 |
| if (r3 == 0) {
0x00004d10 beq.w 0x5552 | goto label_70;
| }
0x00004d14 mov sb, r3 | sb = r3;
0x00004d16 b 0x4a32 | goto label_0;
0x00004d18 ldr r3, [sp, 0x30] | r3 = var_30h;
0x00004d1a cmp r3, 0 |
| if (r3 != 0) {
0x00004d1c bne.w 0x5f28 | goto label_71;
| }
0x00004d20 ldr r2, [sp, 0x74] | r2 = var_74h;
0x00004d22 mov r1, r4 | r1 = r4;
0x00004d24 mov r0, r7 | r0 = r7;
0x00004d26 bl 0x9140 | fcn_00009140 (r0, r1, r2);
0x00004d2a movs r3, 1 | r3 = 1;
0x00004d2c str r3, [sp, 0x54] | var_54h = r3;
0x00004d2e b 0x4a32 | goto label_0;
0x00004d30 ldr.w r2, [pc, 0x5e8] | r2 = *(0x0000531c);
0x00004d34 ldr.w r1, [r5, 0xc0] | r1 = *((r5 + 0xc0));
0x00004d38 add r2, pc | r2 += pc;
0x00004d3a ldr r3, [r2, 8] | r3 = *((r2 + 8));
0x00004d3c cmp r1, 0 |
| if (r1 != 0) {
0x00004d3e bne.w 0x5232 | goto label_72;
| }
0x00004d42 ldr.w r1, [pc, 0x5dc] |
0x00004d46 movs r0, 1 | r0 = 1;
0x00004d48 ldr r2, [r2, 4] | r2 = *((r2 + 4));
0x00004d4a add r1, pc | r1 = 0xa070;
0x00004d4c blx 0x2530 | ip6tc_flush_entries ();
| label_6:
0x00004d50 movs r0, 0 | r0 = 0;
0x00004d52 blx 0x23e0 | xtables_ipaddr_to_anyname ();
0x00004d56 ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004d5a mov.w r2, 0x2080 | r2 = 0x2080;
0x00004d5e mov.w r1, 0x1000 | r1 = 0x1000;
| label_2:
0x00004d62 mov r0, fp | r0 = fp;
0x00004d64 bl 0x9a10 | fcn_00009a10 (r0, r1);
0x00004d68 ldr.w r3, [pc, 0x5a4] |
0x00004d6c ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004d6e ldr r3, [r3] | r3 = *(0x5310);
0x00004d70 cmp r3, 0 |
| if (r3 == 0) {
0x00004d72 beq.w 0x5570 | goto label_73;
| }
0x00004d76 mov sb, r3 | sb = r3;
| label_13:
0x00004d78 mov r1, r4 | r1 = r4;
0x00004d7a mov r0, r7 | r0 = r7;
0x00004d7c bl 0x92d4 | r0 = fcn_000092d4 (r0, r1);
0x00004d80 cmp r0, 0 |
| if (r0 == 0) {
0x00004d82 beq.w 0x4a32 | goto label_0;
| }
| do {
| label_3:
0x00004d86 ldr r1, [sp, 0x28] | r1 = var_28h;
0x00004d88 ldr r3, [r1] | r3 = *(r1);
0x00004d8a adds r2, r3, 1 | r2 = r3 + 1;
0x00004d8c ldr.w r0, [r4, r3, lsl 2] | offset_2 = r3 << 2;
| r0 = *((r4 + offset_2));
0x00004d90 str r2, [r1] | *(r1) = r2;
0x00004d92 bl 0x9a74 | fcn_00009a74 (r0, r1);
0x00004d96 str r0, [sp, 0x34] | var_34h = r0;
0x00004d98 b 0x4a32 | goto label_0;
0x00004d9a ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004d9e movs r1, 8 | r1 = 8;
0x00004da0 mov r0, fp | r0 = fp;
0x00004da2 movs r2, 0 | r2 = 0;
0x00004da4 bl 0x9a10 | fcn_00009a10 (r0, r1);
0x00004da8 ldr.w r3, [pc, 0x564] | r3 = *(0x5310);
0x00004dac mov r1, r4 | r1 = r4;
0x00004dae mov r0, r7 | r0 = r7;
0x00004db0 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004db2 ldr.w sb, [r3] | sb = *(0x5310);
0x00004db6 bl 0x92d4 | r0 = fcn_000092d4 (r0, r1);
0x00004dba cmp r0, 0 |
0x00004dbc bne 0x4d86 |
| } while (r0 != 0);
0x00004dbe ldr r3, [sp, 0x78] | r3 = var_78h;
0x00004dc0 movs r0, 8 | r0 = 8;
0x00004dc2 ldr r3, [r3] | r3 = *(r3);
0x00004dc4 ldr r4, [r3, 0x14] | r4 = *((r3 + 0x14));
0x00004dc6 bl 0x99c4 | fcn_000099c4 (r0);
0x00004dca ldr.w r1, [pc, 0x558] |
0x00004dce mov r2, r0 | r2 = r0;
0x00004dd0 movs r0, 2 | r0 = 2;
0x00004dd2 add r1, pc | r1 = 0xa0fc;
0x00004dd4 blx r4 | uint32_t (*r4)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
0x00004dd6 ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004dda mov.w r1, 0x400 | r1 = 0x400;
0x00004dde mov r0, fp | r0 = fp;
0x00004de0 movs r2, 0 | r2 = 0;
0x00004de2 bl 0x9a10 | fcn_00009a10 (r0, r1);
0x00004de6 ldr.w r3, [pc, 0x528] | r3 = *(0x5312);
0x00004dea mov r1, r4 | r1 = r4;
0x00004dec mov r0, r7 | r0 = r7;
0x00004dee ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004df0 ldr.w sb, [r3] | sb = *(0x5312);
0x00004df4 bl 0x92d4 | r0 = fcn_000092d4 (r0, r1);
0x00004df8 cmp r0, 0 |
| if (r0 == 0) {
0x00004dfa beq.w 0x603a | goto label_74;
| }
0x00004dfe ldr r1, [sp, 0x28] | r1 = var_28h;
0x00004e00 ldr r3, [r1] | r3 = *(r1);
0x00004e02 adds r2, r3, 1 | r2 = r3 + 1;
0x00004e04 ldr.w r3, [r4, r3, lsl 2] | offset_3 = r3 << 2;
| r3 = *((r4 + offset_3));
0x00004e08 str r2, [r1] | *(r1) = r2;
0x00004e0a str r3, [sp, 0x58] | var_58h = r3;
0x00004e0c b 0x4a32 | goto label_0;
0x00004e0e ldr.w r3, [pc, 0x500] | r3 = *(0x5312);
0x00004e12 ldr.w sl, [r6, r3] | sl = *((r6 + r3));
0x00004e16 ldr.w sb, [sl] | sb = *(sl);
0x00004e1a mov r0, sb | r0 = sb;
0x00004e1c blx 0x2404 | r0 = iptc_free ();
0x00004e20 cmp r0, 0x1c |
| if (r0 > 0x1c) {
0x00004e22 bhi.w 0x6052 | goto label_75;
| }
0x00004e26 ldrb.w r3, [sb] | r3 = *(sb);
0x00004e2a cmp r3, 0x21 |
0x00004e2c it ne |
| if (r3 != 0x21) {
0x00004e2e cmpne r3, 0x2d | __asm ("cmpne r3, 0x2d");
| }
| if (r3 == 0x21) {
0x00004e30 beq.w 0x60aa | goto label_76;
| }
0x00004e34 movs r1, 2 | r1 = 2;
0x00004e36 mov r0, sb | r0 = sb;
0x00004e38 blx 0x25b0 | r0 = fcn_000025b0 ();
0x00004e3c cmp r0, 0 |
| if (r0 != 0) {
0x00004e3e bne.w 0x60ba | goto label_77;
| }
0x00004e42 ldrb.w r3, [sb] | r3 = *(sb);
| if (r3 == 0) {
0x00004e46 cbz r3, 0x4e66 | goto label_78;
| }
0x00004e48 str r3, [sp, 0x88] | var_88h = r3;
0x00004e4a blx 0x23d4 | exit (r0);
0x00004e4e ldr r3, [sp, 0x88] | r3 = var_88h;
0x00004e50 mov r1, sb | r1 = sb;
0x00004e52 ldr r0, [r0] | r0 = *(r0);
| do {
0x00004e54 ldrh.w r3, [r0, r3, lsl 1] | offset_4 = r3 << 1;
| r3 = *((r0 + offset_4));
0x00004e58 lsls r3, r3, 0x12 | r3 <<= 0x12;
| if (r3 < r3) {
0x00004e5a bmi.w 0x5eda | goto label_79;
| }
0x00004e5e ldrb r3, [r1, 1]! | r3 = *((r1 += 1));
0x00004e62 cmp r3, 0 |
0x00004e64 bne 0x4e54 |
| } while (r3 != 0);
| label_78:
0x00004e66 ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004e6a movs r2, 0 | r2 = 0;
0x00004e6c mov.w r1, 0x100 | r1 = 0x100;
0x00004e70 mov r0, fp | r0 = fp;
0x00004e72 bl 0x9a10 | fcn_00009a10 (r0, r1);
0x00004e76 ldr.w sb, [sl] | sb = *(sl);
0x00004e7a b 0x4a32 | goto label_0;
0x00004e7c ldr.w r3, [pc, 0x490] | r3 = *(0x5310);
0x00004e80 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004e82 ldr r2, [r3] | r2 = *(0x5310);
0x00004e84 ldr.w r3, [pc, 0x4a0] | r3 = *(0x5328);
0x00004e88 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004e8a str r2, [r3] | *(r3) = r2;
0x00004e8c b 0x4a32 | goto label_0;
0x00004e8e ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004e92 mov.w r2, 0x2080 | r2 = 0x2080;
0x00004e96 movs r1, 0x20 | r1 = 0x20;
0x00004e98 b 0x4d62 | goto label_2;
0x00004e9a ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004e9e movs r1, 1 | r1 = 1;
0x00004ea0 mov r0, fp | r0 = fp;
0x00004ea2 movs r2, 0 | r2 = 0;
0x00004ea4 bl 0x9a10 | fcn_00009a10 (r0, r1);
0x00004ea8 ldr.w r3, [pc, 0x464] | r3 = *(0x5310);
0x00004eac mov r1, r4 | r1 = r4;
0x00004eae mov r0, r7 | r0 = r7;
0x00004eb0 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004eb2 ldr.w sb, [r3] | sb = *(0x5310);
0x00004eb6 bl 0x92d4 | r0 = fcn_000092d4 (r0, r1);
0x00004eba cmp r0, 0 |
| if (r0 != 0) {
0x00004ebc bne.w 0x4d86 | goto label_3;
| }
0x00004ec0 movs r3, 1 | r3 = 1;
0x00004ec2 str r3, [sp, 0x34] | var_34h = r3;
0x00004ec4 b 0x4a32 | goto label_0;
0x00004ec6 ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004eca movs r2, 0 | r2 = 0;
0x00004ecc movs r1, 0x40 | r1 = 0x40;
0x00004ece b 0x4d00 | goto label_4;
0x00004ed0 ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004ed4 mov.w r1, 0x800 | r1 = 0x800;
0x00004ed8 mov r0, fp | r0 = fp;
0x00004eda movs r2, 0 | r2 = 0;
0x00004edc bl 0x9a10 | fcn_00009a10 (r0, r1);
0x00004ee0 ldr.w r3, [pc, 0x42c] | r3 = *(0x5310);
0x00004ee4 mov r1, r4 | r1 = r4;
0x00004ee6 mov r0, r7 | r0 = r7;
0x00004ee8 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004eea ldr.w sb, [r3] | sb = *(0x5310);
0x00004eee bl 0x92d4 | r0 = fcn_000092d4 (r0, r1);
0x00004ef2 cmp r0, 0 |
| if (r0 == 0) {
0x00004ef4 beq.w 0x60c8 | goto label_80;
| }
0x00004ef8 ldr r1, [sp, 0x28] | r1 = var_28h;
0x00004efa ldr r3, [r1] | r3 = *(r1);
0x00004efc adds r2, r3, 1 | r2 = r3 + 1;
0x00004efe ldr.w r3, [r4, r3, lsl 2] | offset_5 = r3 << 2;
| r3 = *((r4 + offset_5));
0x00004f02 str r2, [r1] | *(r1) = r2;
0x00004f04 str r3, [sp, 0x7c] | var_7ch = r3;
0x00004f06 b 0x4a32 | goto label_0;
0x00004f08 ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004f0c movs r1, 2 | r1 = 2;
0x00004f0e mov r0, fp | r0 = fp;
0x00004f10 movs r2, 0 | r2 = 0;
0x00004f12 bl 0x9a10 | fcn_00009a10 (r0, r1);
0x00004f16 ldr r3, [pc, 0x3f8] | r3 = *(0x5312);
0x00004f18 mov r1, r4 | r1 = r4;
0x00004f1a mov r0, r7 | r0 = r7;
0x00004f1c ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004f1e ldr.w sb, [r3] | sb = *(0x5312);
0x00004f22 bl 0x92d4 | r0 = fcn_000092d4 (r0, r1);
0x00004f26 cmp r0, 0 |
| if (r0 == 0) {
0x00004f28 beq.w 0x4a32 | goto label_0;
| }
0x00004f2c ldr r1, [sp, 0x28] | r1 = var_28h;
0x00004f2e ldr r3, [r1] | r3 = *(r1);
0x00004f30 adds r2, r3, 1 | r2 = r3 + 1;
0x00004f32 ldr.w r0, [r4, r3, lsl 2] | offset_6 = r3 << 2;
| r0 = *((r4 + offset_6));
0x00004f36 str r2, [r1] | *(r1) = r2;
0x00004f38 bl 0x9a74 | fcn_00009a74 (r0, r1);
0x00004f3c movs r3, 4 | r3 = 4;
0x00004f3e str r0, [sp, 0x34] | var_34h = r0;
0x00004f40 str.w r3, [fp] | __asm ("str.w r3, [fp]");
0x00004f44 b 0x4a32 | goto label_0;
0x00004f46 ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004f4a movs r2, 0 | r2 = 0;
0x00004f4c movs r1, 0x10 | r1 = 0x10;
0x00004f4e b 0x4a22 | goto label_5;
0x00004f50 ldr r3, [pc, 0x3d8] |
0x00004f52 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004f54 ldr r3, [r3] | r3 = *(0x532c);
0x00004f56 adds r3, 1 | r3++;
0x00004f58 it ne |
| if (r3 == 1) {
0x00004f5a movne sb, 1 | sb = 1;
| }
| if (r3 == 1) {
0x00004f5e beq.w 0x5f74 | goto label_81;
| }
| label_9:
0x00004f62 ldr r2, [pc, 0x3cc] |
0x00004f64 ldr r3, [pc, 0x378] | r3 = *(0x52e0);
0x00004f66 add r2, pc | r2 = 0xa29c;
0x00004f68 ldr r3, [r2, r3] | r3 = *(0xa29c);
0x00004f6a ldr r2, [r3] | r2 = *(0xa29c);
0x00004f6c ldr r3, [sp, 0x1d4] | r3 = var_1d4h;
0x00004f6e eors r2, r3 | r2 ^= r3;
0x00004f70 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00004f74 bne.w 0x5f8a | goto label_82;
| }
0x00004f78 mov r0, sb | r0 = sb;
0x00004f7a add sp, 0x1dc |
0x00004f7c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
0x00004f80 ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00004f84 addw r2, sp, 0x123 | __asm ("addw r2, var_123h");
0x00004f88 mov.w r1, 0x200 | r1 = 0x200;
0x00004f8c add r0, sp, 0x198 | r0 += var_198h;
0x00004f8e bl 0x410c | fcn_0000410c (r0, r1, r2, r3);
0x00004f92 b 0x4a32 | goto label_0;
0x00004f94 ldr r3, [pc, 0x378] |
0x00004f96 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00004f98 ldr r3, [r3] | r3 = *(0x5310);
0x00004f9a ldrb r2, [r3] | r2 = *(r3);
0x00004f9c cmp r2, 0x21 |
| if (r2 != 0x21) {
0x00004f9e bne.w 0x5f14 | goto label_83;
| }
0x00004fa2 ldrb r2, [r3, 1] | r2 = *((r3 + 1));
0x00004fa4 cmp r2, 0 |
| if (r2 != 0) {
0x00004fa6 bne.w 0x5f14 | goto label_83;
| }
0x00004faa ldr.w r2, [r5, 0xc0] | r2 = var_c0h_2;
0x00004fae cmp r2, 0 |
| if (r2 != 0) {
0x00004fb0 bne.w 0x6072 | goto label_84;
| }
0x00004fb4 movs r1, 1 | r1 = 1;
0x00004fb6 str.w r1, [r5, 0xc0] | __asm ("str.w r1, [var_c0h_2]");
0x00004fba strb r2, [r3] | *(r3) = r2;
0x00004fbc b 0x4a38 | goto label_1;
| label_57:
0x00004fbe ldr r3, [sp, 0x54] | r3 = var_54h;
0x00004fc0 ldr r2, [sp, 0x48] | r2 = var_48h;
0x00004fc2 str.w sb, [sp, 0x40] | __asm ("str.w sb, [s1]");
0x00004fc6 cmp r2, 0 |
0x00004fc8 ite ne |
| if (r2 == 0) {
0x00004fca movne r3, 0 | r3 = 0;
| }
| if (r2 != 0) {
0x00004fcc andeq r3, r3, 1 | r3 &= 1;
| }
0x00004fd0 cmp r3, 0 |
| if (r3 != 0) {
0x00004fd2 bne.w 0x608e | goto label_85;
| }
0x00004fd6 ldr r1, [pc, 0x35c] |
0x00004fd8 ldr r3, [sp, 0x50] | r3 = var_50h;
0x00004fda add r1, pc | r1 = 0xa314;
0x00004fdc ldr r0, [r3] | r0 = *(r3);
0x00004fde blx 0x2110 | r0 = strcmp (r0, r1);
| if (r0 == 0) {
0x00004fe2 cbnz r0, 0x500c |
0x00004fe4 ldr r3, [sp, 0x58] | r3 = var_58h;
| if (r3 != 0) {
0x00004fe6 cbz r3, 0x4ff8 |
0x00004fe8 ldr r1, [pc, 0x34c] |
0x00004fea mov r0, r3 | r0 = r3;
0x00004fec add r1, pc | r1 = 0xa328;
0x00004fee blx 0x2110 | r0 = strcmp (r0, r1);
0x00004ff2 cmp r0, 0 |
| if (r0 == 0) {
0x00004ff4 beq.w 0x5fde | goto label_86;
| }
| }
0x00004ff8 ldr.w r0, [r5, 0xf0] | r0 = var_f0h_2;
| if (r0 == 0) {
0x00004ffc cbz r0, 0x500c | goto label_87;
| }
0x00004ffe ldr r1, [pc, 0x33c] |
0x00005000 add r1, pc | r1 = 0xa342;
0x00005002 blx 0x2110 | r0 = strcmp (r0, r1);
0x00005006 cmp r0, 0 |
| if (r0 == 0) {
0x00005008 beq.w 0x5fde | goto label_86;
| }
| }
| label_87:
0x0000500c ldr.w r4, [r5, 0xcc] | r4 = var_19ch;
| if (r4 == 0) {
0x00005010 cbz r4, 0x501e | goto label_88;
| }
| do {
0x00005012 ldr r0, [r4, 4] | r0 = *((r4 + 4));
0x00005014 blx 0x222c | fcn_0000222c ();
0x00005016 invalid |
0x0000501a cmp r4, 0 |
0x0000501c bne 0x5012 |
| } while (r4 != 0);
| label_88:
0x0000501e ldr.w r0, [r5, 0xd4] | r0 = var_d4h;
| if (r0 != 0) {
0x00005022 cbz r0, 0x5028 |
0x00005024 blx 0x21ec | fcn_000021ec ();
| }
0x00005028 ldr r3, [sp, 0x28] | r3 = var_28h;
0x0000502a ldr r3, [r3] | r3 = *(r3);
0x0000502c cmp r3, r7 |
| if (r3 < r7) {
0x0000502e blt.w 0x609c | goto label_89;
| }
0x00005032 ldr.w r3, [fp] | r3 = *(fp);
0x00005036 cmp r3, 0 |
| if (r3 == 0) {
0x00005038 beq.w 0x5ffa | goto label_90;
| }
0x0000503c ldr.w sb, [r5, 0xc0] | sb = var_c0h_2;
0x00005040 cmp.w sb, 0 |
| if (sb != 0) {
0x00005044 bne.w 0x6008 | goto label_91;
| }
0x00005048 movw r2, 0x401b | r2 = 0x401b;
0x0000504c tst r3, r2 |
| if ((r3 & r2) != 0) {
0x0000504e bne.w 0x5240 | goto label_92;
| }
0x00005050 strh r7, [r6, 6] | *((r6 + 6)) = r7;
| label_7:
0x00005052 ldr r3, [sp, 0x38] | r3 = var_38h;
0x00005054 cmp r3, 0 |
| if (r3 != 0) {
0x00005056 bne.w 0x525a | goto label_93;
| }
| label_8:
0x0000505a ldr r3, [sp, 0x4c] | r3 = var_4ch;
| if (r3 != 0) {
0x0000505c cbz r3, 0x506a |
0x0000505e mov r0, r3 | r0 = r3;
0x00005060 ldrd r1, r2, [sp, 0x6c] | __asm ("ldrd r1, r2, [var_6ch]");
0x00005064 ldr r3, [sp, 0x60] | r3 = var_60h;
0x00005066 blx 0x2494 | iptc_init ();
| }
0x0000506a ldr r3, [sp, 0x5c] | r3 = var_5ch;
0x0000506c ldr r2, [r3] | r2 = *(r3);
0x0000506e ldr r3, [sp, 0x60] | r3 = var_60h;
0x00005070 ldr r3, [r3] | r3 = *(r3);
0x00005072 orr.w r1, r2, r3 | r1 = r2 | r3;
0x00005076 cmp r1, 1 |
| if (r1 >= 1) {
0x00005078 bls 0x5086 |
0x0000507a ldrb.w r1, [r5, 0x53] | r1 = var_123h;
0x0000507e tst.w r1, 0x18 |
| if ((r1 & 0x18) != 0) {
0x00005082 bne.w 0x5fec | goto label_94;
| }
| }
0x00005086 ldr.w r0, [fp] | r0 = *(fp);
0x0000508a cmp r0, 8 |
| if (r0 == 8) {
0x0000508c bne 0x509a |
0x0000508e cmp r2, 1 |
| if (r2 != 1) {
0x00005090 bne.w 0x5f8e | goto label_95;
| }
0x00005094 cmp r3, 1 |
| if (r3 != 1) {
0x00005096 bne.w 0x5f8e | goto label_95;
| }
| }
0x0000509a ldr.w r1, [r5, 0xc8] | r1 = var_198h;
0x0000509e bl 0x9ae8 | fcn_00009ae8 (r0, r1);
0x000050a2 ldr r3, [sp, 0x30] | r3 = var_30h;
0x000050a4 cmp r3, 0 |
| if (r3 == 0) {
0x000050a6 beq.w 0x55ac | goto label_96;
| }
| label_16:
0x000050aa ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x000050ac ldr r7, [r3] | r7 = *(r3);
0x000050ae cmp r7, 0 |
| if (r7 == 0) {
0x000050b0 beq.w 0x5c30 | goto label_97;
| }
| label_41:
0x000050b4 ldr.w r3, [fp] | r3 = *(fp);
0x000050b8 subs r4, r3, 1 | r4 = r3 - 1;
0x000050ba sub.w r2, r3, 8 | r2 = r3 - 8;
0x000050be cmp.w r3, 0x4000 |
0x000050c2 it ne |
| if (r3 != 0x4000) {
0x000050c4 cmpne r4, 1 | __asm ("cmpne r4, 1");
| }
0x000050c6 ite ls |
| if (r3 > 0x4000) {
0x000050c8 movls r4, 1 | r4 = 1;
| }
| if (r3 <= 0x4000) {
0x000050ca movhi r4, 0 | r4 = 0;
| }
0x000050cc bics r2, r2, 8 | __asm ("bics r2, r2, 8");
0x000050d0 it eq |
| if (r3 != 0x4000) {
0x000050d2 orreq r4, r4, 1 | r4 |= 1;
| }
0x000050d6 cmp r4, 0 |
| if (r4 == 0) {
0x000050d8 beq 0x51d2 | goto label_18;
| }
0x000050da ldr r1, [pc, 0x264] |
0x000050dc ldr r4, [sp, 0x40] | r4 = s1;
0x000050de add r1, pc | r1 = 0xa424;
0x000050e0 mov r0, r4 | r0 = r4;
0x000050e2 blx 0x2110 | r0 = strcmp (r0, r1);
| if (r0 != 0) {
0x000050e6 cbz r0, 0x50f4 |
0x000050e8 ldr r1, [pc, 0x258] |
0x000050ea mov r0, r4 | r0 = r4;
0x000050ec add r1, pc | r1 = 0xa434;
0x000050ee blx 0x2110 | r0 = strcmp (r0, r1);
| if (r0 != 0) {
0x000050f2 cbnz r0, 0x50fe | goto label_98;
| }
| }
0x000050f4 ldr.w r3, [r5, 0xc8] | r3 = var_198h;
0x000050f8 lsls r0, r3, 0x17 | r0 = r3 << 0x17;
| if (r0 < r3) {
0x000050fa bmi.w 0x5fb4 | goto label_99;
| }
| label_98:
0x000050fe ldr r1, [pc, 0x248] |
0x00005100 ldr r4, [sp, 0x40] | r4 = s1;
0x00005102 add r1, pc | r1 = 0xa450;
0x00005104 mov r0, r4 | r0 = r4;
0x00005106 blx 0x2110 | r0 = strcmp (r0, r1);
| if (r0 != 0) {
0x0000510a cbz r0, 0x5118 |
0x0000510c ldr r1, [pc, 0x23c] |
0x0000510e mov r0, r4 | r0 = r4;
0x00005110 add r1, pc | r1 = 0xa460;
0x00005112 blx 0x2110 | r0 = strcmp (r0, r1);
| if (r0 != 0) {
0x00005116 cbnz r0, 0x5122 | goto label_100;
| }
| }
0x00005118 ldr.w r3, [r5, 0xc8] | r3 = var_198h;
0x0000511c lsls r1, r3, 0x18 | r1 = r3 << 0x18;
| if (r1 < r3) {
0x0000511e bmi.w 0x5f9c | goto label_101;
| }
| label_100:
0x00005122 ldr.w r3, [r5, 0xd4] | r3 = var_d4h;
0x00005126 ldr.w r0, [r5, 0xf0] | r0 = var_f0h_2;
0x0000512a cmp r3, 0 |
| if (r3 == 0) {
0x0000512c beq.w 0x55e0 | goto label_102;
| }
0x00005130 mov r1, r7 | r1 = r7;
0x00005132 blx 0x2428 | r0 = ip6tc_is_chain ();
0x00005136 cmp r0, 0 |
| if (r0 != 0) {
0x00005138 bne.w 0x55b6 | goto label_103;
| }
0x0000513c ldr.w r4, [r5, 0xd4] | r4 = var_d4h;
0x00005140 cmp r4, 0 |
| if (r4 == 0) {
0x00005142 beq.w 0x55e0 | goto label_102;
| }
| label_17:
0x00005146 ldr r3, [r4, 0x58] | r3 = *((r4 + 0x58));
0x00005148 ldr.w sl, [r5, 0xcc] | sl = var_19ch;
0x0000514c ldrh r0, [r3] | r0 = *(r3);
0x0000514e str r3, [sp, 0x28] | var_28h = r3;
0x00005150 cmp.w sl, 0 |
| if (sl == 0) {
0x00005154 beq.w 0x5dd4 | goto label_104;
| }
0x00005158 mov r7, sl | r7 = sl;
0x0000515a mov.w r8, 0x70 | r8 = 0x70;
| do {
0x0000515e ldrd r7, r3, [r7] | __asm ("ldrd r7, r3, [r7]");
0x00005162 ldr r3, [r3, 0x58] | r3 = *((r3 + 0x58));
0x00005164 ldrh r3, [r3] | r3 = *(r3);
0x00005166 add r8, r3 | r8 += r3;
0x00005168 cmp r7, 0 |
0x0000516a bne 0x515e |
| } while (r7 != 0);
0x0000516c add r0, r8 | r0 += r8;
0x0000516e uxth.w r8, r8 | r8 = (int16_t) r8;
0x00005172 blx 0x235c | xtables_ip6addr_to_anyname ();
0x00005176 movs r2, 0x70 | r2 = 0x70;
0x00005178 mov r1, r5 | r1 = r5;
0x0000517a mov r4, r0 | r4 = r0;
0x0000517c blx 0x21b0 | fcn_000021b0 ();
0x00005180 ldr r3, [sp, 0x28] | r3 = var_28h;
0x00005182 strh.w r8, [r4, 0x58] | *((r4 + 0x58)) = r8;
0x00005186 ldrh r3, [r3] | r3 = *(r3);
0x00005188 add r8, r3 | r8 += r3;
0x0000518a mov r3, sl | r3 = sl;
0x0000518c strh.w r8, [r4, 0x5a] | *((r4 + 0x5a)) = r8;
0x00005190 mov sl, r4 | sl = r4;
0x00005192 add.w r8, r4, 0x70 | r8 = r4 + 0x70;
0x00005196 mov r4, r3 | r4 = r3;
| do {
0x00005198 ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x0000519a add.w r0, r8, r7 | r0 = r8 + r7;
0x0000519e ldr r1, [r3, 0x58] | r1 = *((r3 + 0x58));
0x000051a0 ldrh r2, [r1] | r2 = *(r1);
0x000051a2 blx 0x21b0 | fcn_000021b0 ();
0x000051a6 ldrd r4, r3, [r4] | __asm ("ldrd r4, r3, [r4]");
0x000051aa ldr r3, [r3, 0x58] | r3 = *((r3 + 0x58));
0x000051ac ldrh r3, [r3] | r3 = *(r3);
0x000051ae add r7, r3 | r7 += r3;
0x000051b0 cmp r4, 0 |
0x000051b2 bne 0x5198 |
| } while (r4 != 0);
0x000051b4 ldr r3, [sp, 0x28] | r3 = var_28h;
0x000051b6 mov r4, sl | r4 = sl;
0x000051b8 add.w r0, r8, r7 | r0 = r8 + r7;
0x000051bc ldrh r2, [r3] | r2 = *(r3);
| label_45:
0x000051be ldr r1, [sp, 0x28] | r1 = var_28h;
0x000051c0 blx 0x21b0 | fcn_000021b0 ();
0x000051c4 ldr.w r3, [r5, 0xd4] | r3 = var_d4h;
0x000051c8 ldr r0, [r3, 0x58] | r0 = *((r3 + 0x58));
0x000051ca blx 0x218c | fcn_0000218c ();
0x000051ce ldr.w r3, [fp] | r3 = *(fp);
| label_18:
0x000051d2 cmp r3, 0xa0 |
| if (r3 == 0xa0) {
0x000051d4 beq.w 0x59c4 | goto label_105;
| }
| if (r3 > 0xa0) {
0x000051d8 bhi.w 0x535c | goto label_106;
| }
0x000051dc cmp r3, 0x20 |
| if (r3 > 0x20) {
0x000051de bhi 0x5268 | goto label_107;
| }
0x000051e0 cmp r3, 0 |
| if (r3 == 0) {
0x000051e2 beq.w 0x54a6 | goto label_108;
| }
0x000051e6 subs r3, 1 | r3--;
0x000051e8 cmp r3, 0x1f |
| if (r3 > 0x1f) {
0x000051ea bhi.w 0x54a6 | goto label_108;
| }
| /* switch table (33 cases) at 0x51f2 */
0x000051ee tbh [pc, r3, lsl 1] | __asm ("tbh [pc, r3, lsl 1]");
| label_72:
0x00005232 ldr r1, [pc, 0x11c] |
0x00005234 mov r2, r3 | r2 = r3;
0x00005236 movs r0, 1 | r0 = 1;
0x00005238 add r1, pc | r1 = 0xa58e;
0x0000523a blx 0x2530 | ip6tc_flush_entries ();
0x0000523e b 0x4d50 | goto label_6;
| label_92:
0x00005240 ldr.w r3, [r5, 0xc8] | r3 = var_198h;
0x00005244 lsls r2, r3, 0x1d | r2 = r3 << 0x1d;
| if (r2 >= r3) {
0x00005246 bmi 0x524e |
0x00005248 ldr r2, [pc, 0x108] |
0x0000524a add r2, pc | r2 = 0xa5a2;
0x0000524c str r2, [sp, 0x4c] | var_4ch = r2;
| }
0x0000524e lsls r3, r3, 0x1e | r3 <<= 0x1e;
| if (r3 < r3) {
0x00005250 bmi.w 0x5052 | goto label_7;
| }
0x00005254 ldr r3, [pc, 0x100] |
0x00005256 add r3, pc | r3 = 0xa5b2;
0x00005258 str r3, [sp, 0x38] | var_38h = r3;
| label_93:
0x0000525a ldr r0, [sp, 0x38] | r0 = var_38h;
0x0000525c ldr r3, [sp, 0x5c] | r3 = var_5ch;
0x0000525e ldrd r1, r2, [sp, 0x64] | __asm ("ldrd r1, r2, [var_64h]");
0x00005262 blx 0x2494 | iptc_init ();
0x00005266 b 0x505a | goto label_8;
| label_107:
0x00005268 cmp r3, 0x40 |
| if (r3 != 0x40) {
0x0000526a bne 0x52be | goto label_109;
| }
0x0000526c ldr.w r1, [r5, 0xc8] | r1 = var_198h;
0x00005270 ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x00005272 ldr r0, [sp, 0x40] | r0 = s1;
0x00005274 and r1, r1, 0x20 | r1 &= 0x20;
0x00005278 ldr r2, [r3] | r2 = *(r3);
0x0000527a bl 0x4338 | r0 = fcn_00004338 (r0, r1, r2);
0x0000527e mov sb, r0 | sb = r0;
| do {
| label_11:
0x00005280 ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x00005282 cmp r3, 1 |
| if (r3 > 1) {
0x00005284 bgt.w 0x55a2 | goto label_24;
| }
| label_15:
0x00005288 add r0, sp, 0x19c | r0 += var_19ch;
0x0000528a blx 0x2668 | ip6tc_builtin ();
| if (r4 != 0) {
0x0000528e cbz r4, 0x5296 |
| label_25:
0x00005290 mov r0, r4 | r0 = r4;
0x00005292 blx 0x218c | fcn_0000218c ();
| }
0x00005296 ldr r3, [sp, 0x64] | r3 = var_64h;
0x00005298 ldr r0, [r3] | r0 = *(r3);
0x0000529a blx 0x218c | fcn_0000218c ();
0x0000529e ldr r3, [sp, 0x68] | r3 = var_68h;
0x000052a0 ldr r0, [r3] | r0 = *(r3);
0x000052a2 blx 0x218c | fcn_0000218c ();
0x000052a6 ldr r3, [sp, 0x6c] | r3 = var_6ch;
0x000052a8 ldr r0, [r3] | r0 = *(r3);
0x000052aa blx 0x218c | fcn_0000218c ();
0x000052ae ldr r3, [sp, 0x70] | r3 = var_70h;
0x000052b0 ldr r0, [r3] | r0 = *(r3);
0x000052b2 blx 0x218c | fcn_0000218c ();
0x000052b6 movs r0, 1 | r0 = 1;
0x000052b8 blx 0x2214 | fcn_00002214 ();
0x000052bc b 0x4f62 | goto label_9;
| label_109:
0x000052be cmp r3, 0x80 |
| if (r3 != 0x80) {
0x000052c0 bne.w 0x54a6 | goto label_108;
| }
0x000052c4 ldr.w r1, [r5, 0xc8] | r1 = var_198h;
0x000052c8 ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x000052ca ldr r0, [sp, 0x40] | r0 = s1;
0x000052cc and r1, r1, 0x20 | r1 &= 0x20;
0x000052d0 ldr r2, [r3] | r2 = *(r3);
0x000052d2 bl 0x43f0 | r0 = fcn_000043f0 (r0, r1, r2);
0x000052d6 mov sb, r0 | sb = r0;
0x000052d8 b 0x5280 |
| } while (1);
| label_106:
0x0000535c cmp.w r3, 0x800 |
| if (r3 == 0x800) {
0x00005360 beq.w 0x5dc2 | goto label_110;
| }
| if (r3 < 0x800) {
0x00005364 bls 0x544c | goto label_111;
| }
0x00005366 movw r2, 0x2020 | r2 = 0x2020;
0x0000536a cmp r3, r2 |
| if (r3 == r2) {
0x0000536c beq.w 0x59c4 | goto label_105;
| }
| if (r3 < r2) {
0x00005370 bls.w 0x547a | goto label_112;
| }
0x00005374 cmp.w r3, 0x3000 |
| if (r3 == 0x3000) {
0x00005378 beq.w 0x54b4 | goto label_113;
| }
0x0000537c cmp.w r3, 0x4000 |
| if (r3 != 0x4000) {
0x00005380 bne.w 0x54a6 | goto label_108;
| }
0x00005384 ldr r3, [sp, 0x5c] | r3 = var_5ch;
0x00005386 ldr.w r1, [r5, 0xd4] | r1 = var_d4h;
0x0000538a ldr.w r0, [r5, 0xcc] | r0 = var_19ch;
0x0000538e ldr r7, [r3] | r7 = *(r3);
0x00005390 ldr r3, [sp, 0x60] | r3 = var_60h;
0x00005392 str r7, [sp, 0x48] | var_48h = r7;
0x00005394 ldr.w fp, [r3] | fp = *(r3);
0x00005398 ldr.w r3, [r5, 0xc8] | r3 = var_198h;
0x0000539c and r3, r3, 0x20 | r3 &= 0x20;
0x000053a0 str r3, [sp, 0x30] | var_30h = r3;
0x000053a2 ldr r3, [sp, 0x64] | r3 = var_64h;
0x000053a4 ldr r6, [r3] | r6 = *(r3);
0x000053a6 ldr r3, [sp, 0x68] | r3 = var_68h;
0x000053a8 ldr r5, [r3] | r5 = *(r3);
0x000053aa ldr r3, [sp, 0x6c] | r3 = var_6ch;
0x000053ac ldr r3, [r3] | r3 = *(r3);
0x000053ae str r3, [sp, 0x4c] | var_4ch = r3;
0x000053b0 ldr r3, [sp, 0x70] | r3 = var_70h;
0x000053b2 ldr r3, [r3] | r3 = *(r3);
0x000053b4 str r3, [sp, 0x50] | var_50h = r3;
0x000053b6 ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x000053b8 ldr.w r8, [r3] | r8 = *(r3);
0x000053bc bl 0x402c | r0 = fcn_0000402c (r0, r1, r2);
0x000053c0 mov sl, r0 | sl = r0;
0x000053c2 cmp r7, 0 |
| if (r7 == 0) {
0x000053c4 beq.w 0x5b2c | goto label_114;
| }
0x000053c8 str.w fp, [sp, 0x28] | __asm ("str.w fp, [var_28h]");
0x000053cc subs r3, r6, 4 | r3 = r6 - 4;
0x000053ce ldr.w fp, [sp, 0x40] | fp = s1;
0x000053d2 mov.w sb, 1 | sb = 1;
0x000053d6 str r3, [sp, 0x38] | var_38h = r3;
0x000053d8 subs r3, r5, 4 | r3 = r5 - 4;
0x000053da str r3, [sp, 0x34] | var_34h = r3;
0x000053dc movs r3, 0 | r3 = 0;
0x000053de str r3, [sp, 0x44] | var_44h = r3;
| label_32:
0x000053e0 ldr r2, [sp, 0x38] | r2 = var_38h;
0x000053e2 ldr r3, [r2, 4]! | r3 = *((r2 += 4));
0x000053e6 str r2, [sp, 0x38] | var_38h = r2;
0x000053e8 ldr r2, [sp, 0x34] | r2 = var_34h;
0x000053ea str r3, [r4] | *(r4) = r3;
0x000053ec ldr r3, [r2, 4]! | r3 = *((r2 += 4));
0x000053f0 str r3, [r4, 8] | *((r4 + 8)) = r3;
0x000053f2 ldr r3, [sp, 0x28] | r3 = var_28h;
0x000053f4 str r2, [sp, 0x34] | var_34h = r2;
0x000053f6 cmp r3, 0 |
| if (r3 == 0) {
0x000053f8 beq.w 0x5b4a | goto label_115;
| }
0x000053fc ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x000053fe movs r5, 0 | r5 = 0;
0x00005400 subs r7, r3, 4 | r7 = r3 - 4;
0x00005402 ldr r3, [sp, 0x50] | r3 = var_50h;
0x00005404 subs r6, r3, 4 | r6 = r3 - 4;
0x00005406 b 0x5422 |
| while (r3 == 0) {
| label_10:
0x00005408 mov r3, r8 | r3 = r8;
0x0000540a mov r2, sl | r2 = sl;
0x0000540c mov r1, r4 | r1 = r4;
0x0000540e mov r0, fp | r0 = fp;
0x00005410 blx 0x26cc | fcn_000026cc ();
0x00005414 ldr r3, [sp, 0x28] | r3 = var_28h;
0x00005416 adds r5, 1 | r5++;
0x00005418 and.w sb, sb, r0 | sb &= r0;
0x0000541c cmp r3, r5 |
| if (r3 == r5) {
0x0000541e beq.w 0x5b4a | goto label_115;
| }
0x00005422 ldr r3, [r7, 4]! | r3 = *((r7 += 4));
0x00005426 str r3, [r4, 4] | *((r4 + 4)) = r3;
0x00005428 ldr r3, [r6, 4]! | r3 = *((r6 += 4));
0x0000542c str r3, [r4, 0xc] | *((r4 + 0xc)) = r3;
0x0000542e ldr r3, [sp, 0x30] | r3 = var_30h;
0x00005430 cmp r3, 0 |
0x00005432 beq 0x5408 |
| }
0x00005434 ldrh.w r1, [r4, 0x58] | r1 = *((r4 + 0x58));
0x00005438 movs r3, 0x5b | r3 = 0x5b;
0x0000543a movs r2, 0 | r2 = 0;
0x0000543c mov r0, r4 | r0 = r4;
0x0000543e str.w r8, [sp] | __asm ("str.w r8, [sp]");
0x00005442 add r1, r4 | r1 += r4;
0x00005444 adds r1, 2 | r1 += 2;
0x00005446 bl 0x3d40 | fcn_00003d40 (r0, r1, r2, r3, r4);
0x0000544a b 0x5408 | goto label_10;
| label_111:
0x0000544c cmp.w r3, 0x200 |
| if (r3 == fcn.00000004) {
0x00005450 beq.w 0x5daa | goto label_116;
| }
0x00005454 cmp.w r3, 0x400 |
| if (r3 == 0x400) {
0x00005458 bne 0x5490 |
0x0000545a ldr.w r3, [r5, 0xc8] | r3 = var_198h;
0x0000545e ldr r1, [sp, 0x58] | r1 = var_58h;
0x00005460 ands r3, r3, 0x400 | r3 &= 0x400;
0x00005464 it eq |
| if (r3 != r3) {
0x00005466 moveq r2, r3 | r2 = r3;
| }
0x00005468 ldrd r3, r0, [sp, 0x3c] | __asm ("ldrd r3, r0, [var_3ch]");
0x0000546c it ne |
| if (r3 == r3) {
0x0000546e addne r2, sp, 0x130 | r2 += var_130h;
| }
0x00005470 ldr r3, [r3] | r3 = *(r3);
0x00005472 blx 0x2638 | r0 = ip6tc_zero_counter ();
0x00005476 mov sb, r0 | sb = r0;
0x00005478 b 0x5280 | goto label_11;
| label_112:
0x0000547a cmp.w r3, 0x2000 |
| if (r3 != 0x2000) {
0x0000547e bne 0x54a4 | goto label_117;
| }
| label_12:
0x00005480 ldrd r3, r0, [sp, 0x3c] | __asm ("ldrd r3, r0, [var_3ch]");
0x00005484 ldr r1, [sp, 0x34] | r1 = var_34h;
0x00005486 ldr r2, [r3] | r2 = *(r3);
0x00005488 blx 0x25bc | r0 = fcn_000025bc ();
0x0000548c mov sb, r0 | sb = r0;
0x0000548e b 0x5280 | goto label_11;
| }
0x00005490 cmp.w r3, 0x100 |
| if (r3 != 0x100) {
0x00005494 bne 0x54a6 | goto label_108;
| }
0x00005496 ldrd r3, r0, [sp, 0x3c] | __asm ("ldrd r3, r0, [var_3ch]");
0x0000549a ldr r1, [r3] | r1 = *(r3);
0x0000549c blx 0x2298 | r0 = fcn_00002298 ();
0x000054a0 mov sb, r0 | sb = r0;
0x000054a2 b 0x5280 | goto label_11;
| label_117:
0x000054a4 bls 0x54aa |
| while (r3 != 0x1000) {
| label_108:
0x000054a6 bl 0x4190 | fcn_00004190 ();
0x000054aa bic r3, r3, 0x80 | r3 = BIT_MASK (r3, 0x80);
0x000054ae cmp.w r3, 0x1000 |
0x000054b2 bne 0x54a6 |
| }
| label_113:
0x000054b4 ldr.w r3, [r5, 0xc8] | r3 = var_198h;
0x000054b8 ldr r2, [sp, 0x3c] | r2 = var_3ch;
0x000054ba ldr r7, [r2] | r7 = *(r2);
0x000054bc and r2, r3, 0x20 | r2 = r3 & 0x20;
0x000054c0 sbfx r3, r3, 5, 1 | __asm ("sbfx r3, r3, 5, 1");
0x000054c4 str r2, [sp, 0x30] | var_30h = r2;
0x000054c6 str r3, [sp, 0x28] | var_28h = r3;
0x000054c8 ldr r3, [sp, 0x34] | r3 = var_34h;
0x000054ca cmp r3, 0 |
| if (r3 == 0) {
0x000054cc beq.w 0x5ab2 | goto label_118;
| }
| label_29:
0x000054d0 mov r0, r7 | r0 = r7;
0x000054d2 blx 0x2238 | r0 = fcn_00002238 ();
0x000054d6 mov r8, r0 | r8 = r0;
0x000054d8 blx 0x247c | ip6tc_free ();
0x000054dc str r0, [sp, 0x30] | var_30h = r0;
0x000054de cmp.w r8, 0 |
| if (r8 == 0) {
0x000054e2 beq.w 0x5ec8 | goto label_119;
| }
0x000054e6 str.w sb, [sp, 0x44] | __asm ("str.w sb, [var_44h]");
0x000054ea movs r6, 0 | r6 = 0;
0x000054ec str.w fp, [sp, 0x48] | __asm ("str.w fp, [var_48h]");
0x000054f0 mov fp, r5 |
0x000054f2 ldr.w sl, [sp, 0x28] | sl = var_28h;
0x000054f6 mov r5, r8 | r5 = r8;
0x000054f8 ldr.w sb, [sp, 0x40] | sb = s1;
0x000054fc ldr.w r8, [sp, 0x34] | r8 = var_34h;
0x00005500 str r4, [sp, 0x38] | var_38h = r4;
| do {
0x00005502 cmp.w sb, 0 |
| if (sb == 0) {
0x00005506 beq.w 0x5be2 | goto label_120;
| }
0x0000550a mov r1, sb | r1 = sb;
0x0000550c mov r0, r5 | r0 = r5;
0x0000550e blx 0x2110 | r0 = strcmp (r0, r1);
0x00005512 cmp r0, 0 |
| if (r0 == 0) {
0x00005514 beq.w 0x5be2 | goto label_120;
| }
0x00005516 strh r5, [r4, 0x1a] | *((r4 + 0x1a)) = r5;
| label_40:
0x00005518 mov r0, r7 | r0 = r7;
0x0000551a blx 0x24c4 | r0 = putchar (r0);
0x0000551e mov r5, r0 | r5 = r0;
0x00005520 cmp r0, 0 |
0x00005522 bne 0x5502 |
| } while (r0 != 0);
0x00005524 ldr r2, [sp, 0x30] | r2 = var_30h;
0x00005526 movs r3, 2 | r3 = 2;
0x00005528 mov r5, fp | r5 = fp;
0x0000552a ldr r4, [sp, 0x38] | r4 = var_38h;
0x0000552c ldr.w sb, [sp, 0x44] | sb = var_44h;
0x00005530 ldr.w fp, [sp, 0x48] | fp = var_48h;
0x00005534 str r3, [r2] | *(r2) = r3;
0x00005536 cmp r6, 0 |
| if (r6 == 0) {
0x00005538 beq.w 0x5280 | goto label_11;
| }
0x0000553c ldr.w r2, [fp] | r2 = *(fp);
0x00005540 lsls r1, r2, 0x18 | r1 = r2 << 0x18;
0x00005542 it pl |
| if (r1 < r2) {
0x00005544 movpl sb, r6 | sb = r6;
| }
| if (r1 < r2) {
0x00005546 bmi.w 0x5a92 | goto label_121;
| }
| label_28:
0x0000554a lsls r3, r2, 0x12 | r3 = r2 << 0x12;
| if (r3 >= r2) {
0x0000554c bpl.w 0x5280 | goto label_11;
| }
0x00005550 b 0x5480 | goto label_12;
| label_70:
0x00005552 mov r1, r4 | r1 = r4;
0x00005554 mov r0, r7 | r0 = r7;
0x00005556 bl 0x92d4 | r0 = fcn_000092d4 (r0, r1);
0x0000555a cmp r0, 0 |
| if (r0 == 0) {
0x0000555c beq.w 0x4a32 | goto label_0;
| }
0x00005560 ldr r1, [sp, 0x28] | r1 = var_28h;
0x00005562 ldr r3, [r1] | r3 = *(r1);
0x00005564 adds r2, r3, 1 | r2 = r3 + 1;
0x00005566 ldr.w sb, [r4, r3, lsl 2] | offset_7 = r3 << 2;
| sb = *((r4 + offset_7));
0x0000556a str r2, [r1] | *(r1) = r2;
0x0000556c b.w 0x4a32 | goto label_0;
| label_73:
0x00005570 mov r1, r4 | r1 = r4;
0x00005572 mov r0, r7 | r0 = r7;
0x00005574 bl 0x92d4 | r0 = fcn_000092d4 (r0, r1);
0x00005578 cmp r0, 0 |
| if (r0 == 0) {
0x0000557a beq.w 0x4d78 | goto label_13;
| }
0x0000557e ldr r1, [sp, 0x28] | r1 = var_28h;
0x00005580 ldr r3, [r1] | r3 = *(r1);
0x00005582 adds r2, r3, 1 | r2 = r3 + 1;
0x00005584 ldr.w sb, [r4, r3, lsl 2] | offset_8 = r3 << 2;
| sb = *((r4 + offset_8));
0x00005588 str r2, [r1] | *(r1) = r2;
0x0000558a b.w 0x4d78 | goto label_13;
| label_60:
0x0000558e ldr.w r3, [r5, 0xc0] | r3 = *((r5 + 0xc0));
0x00005592 addw r2, sp, 0x123 | __asm ("addw r2, var_123h");
0x00005596 movs r1, 0x20 | r1 = 0x20;
0x00005598 add r0, sp, 0x198 | r0 += var_198h;
0x0000559a bl 0x410c | fcn_0000410c (r0, r1, r2, r3);
0x0000559e b.w 0x4a7e | goto label_14;
| label_24:
0x000055a2 ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x000055a4 ldr r0, [r3] | r0 = *(r3);
0x000055a6 blx 0x257c | fcn_0000257c ();
0x000055aa b 0x5288 | goto label_15;
| label_96:
0x000055ac ldr r1, [sp, 0x74] | r1 = var_74h;
0x000055ae ldr r0, [sp, 0x48] | r0 = var_48h;
0x000055b0 bl 0x8e7c | fcn_00008e7c (r0, r1, r2);
0x000055b4 b 0x50aa | goto label_16;
| label_103:
0x000055b6 ldr.w r3, [pc, 0xb28] | r3 = *(0x60e2);
0x000055ba movs r1, 1 | r1 = 1;
0x000055bc ldr.w r2, [pc, 0xb24] |
0x000055c0 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x000055c2 add r2, pc | r2 = 0xb6aa;
0x000055c4 ldr r0, [r3] | r0 = *(0x60e2);
0x000055c6 ldr.w r3, [r5, 0xf0] | r3 = var_f0h_2;
0x000055ca blx 0x2570 | fcn_00002570 ();
0x000055ce ldr.w r3, [r5, 0xd4] | r3 = var_d4h;
0x000055d2 ldr r0, [r3, 0x58] | r0 = *(0x613a);
| if (r0 != 0) {
0x000055d4 cbz r0, 0x55da |
0x000055d6 blx 0x218c | fcn_0000218c ();
| }
0x000055da movs r3, 0 | r3 = 0;
0x000055dc str.w r3, [r5, 0xd4] | __asm ("str.w r3, [var_d4h]");
| label_102:
0x000055e0 ldr.w r0, [r5, 0xf0] | r0 = var_f0h_2;
0x000055e4 ldrb r3, [r0] | r3 = *(r0);
| if (r3 == 0) {
0x000055e6 cbz r3, 0x5616 | goto label_122;
| }
0x000055e8 ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x000055ea ldr r1, [r3] | r1 = *(r3);
0x000055ec blx 0x2428 | r0 = ip6tc_is_chain ();
| if (r0 != 0) {
0x000055f0 cbnz r0, 0x5616 | goto label_122;
| }
| label_19:
0x000055f2 ldr.w r4, [r5, 0xd4] | r4 = var_d4h;
0x000055f6 cmp r4, 0 |
| if (r4 != 0) {
0x000055f8 bne.w 0x5146 | goto label_17;
| }
0x000055fc ldrb.w r3, [r5, 0x52] | r3 = var_52h;
0x00005600 ldr.w r0, [r5, 0xf0] | r0 = var_f0h_2;
0x00005604 lsls r2, r3, 0x1e | r2 = r3 << 0x1e;
| if (r2 < r3) {
0x00005606 bmi.w 0x5fce | goto label_123;
| }
0x0000560a movs r1, 3 | r1 = 3;
0x0000560c blx 0x25b0 | fcn_000025b0 ();
0x00005610 ldr.w r3, [fp] | r3 = *(fp);
0x00005614 b 0x51d2 | goto label_18;
| label_122:
0x00005616 ldr.w r0, [pc, 0xad0] |
0x0000561a movs r1, 3 | r1 = 3;
0x0000561c add r0, pc | r0 = 0xb70a;
0x0000561e blx 0x25b0 | fcn_000025b0 ();
0x00005622 ldr r7, [r0, 0x14] | r7 = *(0xb71e);
0x00005624 mov r4, r0 | r4 = r0;
0x00005626 str.w r0, [r5, 0xd4] | __asm ("str.w r0, [var_d4h]");
0x0000562a movs r0, 1 | r0 = 1;
0x0000562c adds r7, 0x20 | r7 += 0x20;
0x0000562e mov r1, r7 | r1 = r7;
0x00005630 blx 0x2564 | fcn_00002564 ();
0x00005634 ldr.w r3, [r5, 0xd4] | r3 = var_d4h;
0x00005638 movs r2, 0x1d | r2 = 0x1d;
0x0000563a str r0, [r4, 0x58] | *((r4 + 0x58)) = r0;
0x0000563c ldr.w r1, [r5, 0xf0] | r1 = var_f0h_2;
0x00005640 ldr r0, [r3, 0x58] | r0 = *((r3 + 0x58));
0x00005642 strh r7, [r0], 2 | *(r0) = r7;
| r0 += 2;
0x00005646 blx 0x22f8 | fcn_000022f8 ();
0x0000564a ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x0000564c ldr.w r0, [r5, 0xf0] | r0 = var_f0h_2;
0x00005650 ldr r1, [r3] | r1 = *(r3);
0x00005652 blx 0x2428 | r0 = ip6tc_is_chain ();
0x00005656 cmp r0, 0 |
| if (r0 != 0) {
0x00005658 bne 0x5720 | goto label_124;
| }
0x0000565a ldr.w r0, [r5, 0xd4] | r0 = var_d4h;
0x0000565e ldr r3, [r0, 0x58] | r3 = *((r0 + 0x58));
0x00005660 ldrb r2, [r0, 0x10] | r2 = *((r0 + 0x10));
0x00005662 strb r2, [r3, 0x1f] | *((r3 + 0x1f)) = r2;
| label_22:
0x00005664 bl 0x8c58 | fcn_00008c58 (r0);
0x00005668 b 0x55f2 | goto label_19;
| label_69:
0x0000566a mov r1, r4 | r1 = r4;
0x0000566c mov r0, r7 | r0 = r7;
0x0000566e bl 0x92d4 | r0 = fcn_000092d4 (r0, r1);
0x00005672 cmp r0, 0 |
| if (r0 == 0) {
0x00005674 beq.w 0x4ccc | goto label_20;
| }
0x00005678 ldr r1, [sp, 0x28] | r1 = var_28h;
0x0000567a ldr r3, [r1] | r3 = *(r1);
0x0000567c adds r2, r3, 1 | r2 = r3 + 1;
0x0000567e ldr.w sb, [r4, r3, lsl 2] | offset_9 = r3 << 2;
| sb = *((r4 + offset_9));
0x00005682 str r2, [r1] | *(r1) = r2;
0x00005684 b.w 0x4ccc | goto label_20;
| label_66:
0x00005688 mov r1, r4 | r1 = r4;
0x0000568a mov r0, r7 | r0 = r7;
0x0000568c str r3, [sp, 0x88] | var_88h = r3;
0x0000568e bl 0x92d4 | fcn_000092d4 (r0, r1);
0x00005692 ldr r3, [sp, 0x88] | r3 = var_88h;
| if (r0 == 0) {
0x00005694 cbz r0, 0x56aa | goto label_125;
| }
0x00005696 ldr r1, [sp, 0x28] | r1 = var_28h;
0x00005698 ldr r2, [r1] | r2 = *(r1);
0x0000569a ldr.w sl, [r4, r2, lsl 2] | offset_10 = r2 << 2;
| sl = *((r4 + offset_10));
0x0000569e adds r2, 1 | r2++;
0x000056a0 str r2, [r1] | *(r1) = r2;
0x000056a2 cmp.w sl, 0 |
| if (sl != 0) {
0x000056a6 bne.w 0x4c78 | goto label_21;
| }
| label_125:
0x000056aa ldr r3, [sp, 0x78] | r3 = var_78h;
0x000056ac mov.w r0, 0x400 | r0 = 0x400;
0x000056b0 ldr r3, [r3] | r3 = *(r3);
0x000056b2 ldr r4, [r3, 0x14] | r4 = *((r3 + 0x14));
0x000056b4 bl 0x9b94 | fcn_00009b94 (r0);
0x000056b8 ldr.w r1, [pc, 0xa30] |
0x000056bc mov r2, r0 | r2 = r0;
0x000056be movs r0, 2 | r0 = 2;
0x000056c0 add r1, pc | r1 = 0xb7b0;
0x000056c2 blx r4 | uint32_t (*r4)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
0x000056c4 ldr.w r3, [pc, 0xa28] | r3 = *(0x60f0);
0x000056c8 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x000056ca ldr r2, [r3] | r2 = *(0x60f0);
0x000056cc cmp r2, 0 |
| if (r2 == 0) {
0x000056ce beq.w 0x5f06 | goto label_126;
| }
| label_52:
0x000056d2 ldr.w r4, [r5, 0xcc] | r4 = *((r5 + 0xcc));
0x000056d6 cmp r4, 0 |
| if (r4 == 0) {
0x000056d8 beq.w 0x5eea | goto label_127;
| }
| label_51:
0x000056dc ldr.w r3, [pc, 0xa14] | r3 = *(0x000060f4);
0x000056e0 movs r0, 1 | r0 = 1;
0x000056e2 ldr.w r1, [pc, 0xa14] |
0x000056e6 add r3, pc | r3 += pc;
0x000056e8 ldrd r2, r3, [r3, 4] | __asm ("ldrd r2, r3, [r3, 4]");
0x000056ec add r1, pc | r1 = 0xb7ea;
0x000056ee strd r2, r2, [sp, 0x20] | __asm ("strd r2, r2, [sp, 0x20]");
0x000056f2 strd r2, r2, [sp, 0x18] | __asm ("strd r2, r2, [sp, 0x18]");
0x000056f4 movs r2, 6 | r2 = 6;
0x000056f6 strd r2, r2, [sp, 0x10] | __asm ("strd r2, r2, [sp, 0x10]");
0x000056fa strd r2, r2, [sp, 8] | __asm ("strd r2, r2, [sp, 8]");
0x000056fe strd r2, r2, [sp] | __asm ("strd r2, r2, [sp]");
0x00005702 blx 0x2530 | ip6tc_flush_entries ();
0x00005706 ldr.w r0, [pc, 0x9f4] |
0x0000570a add r0, pc | r0 = 0xb80c;
0x0000570c blx 0x2344 | ip6tc_next_rule ();
0x00005710 ldr r3, [sp, 0x84] | r3 = var_84h;
0x00005712 mov r1, r4 | r1 = r4;
0x00005714 ldr r0, [r3] | r0 = *(r3);
0x00005716 bl 0x8a20 | fcn_00008a20 (r0, r1);
0x0000571a movs r0, 0 | r0 = 0;
0x0000571c blx 0x23e0 | xtables_ipaddr_to_anyname ();
| label_124:
0x00005720 ldr.w r0, [r5, 0xd4] | r0 = var_d4h;
0x00005724 b 0x5664 | goto label_22;
0x00005726 ldr r0, [sp, 0x6c] | r0 = var_6ch;
0x00005728 ldr r3, [sp, 0x5c] | r3 = var_5ch;
0x0000572a ldr r2, [sp, 0x60] | r2 = var_60h;
0x0000572c ldr r0, [r0] | r0 = *(r0);
0x0000572e ldr r1, [r3] | r1 = *(r3);
0x00005730 ldr.w r3, [r5, 0xc8] | r3 = *((r5 + 0xc8));
0x00005734 str r0, [sp, 0x48] | var_48h = r0;
0x00005736 ldr r0, [sp, 0x70] | r0 = var_70h;
0x00005738 and sl, r3, 0x20 | sl = r3 & 0x20;
0x0000573c ldr r3, [sp, 0x64] | r3 = var_64h;
0x0000573e ldr.w fp, [r2] | fp = *(r2);
0x00005742 ldr r0, [r0] | r0 = *(r0);
0x00005744 ldr r2, [r3] | r2 = *(r3);
0x00005746 ldr r3, [sp, 0x68] | r3 = var_68h;
0x00005748 str r0, [sp, 0x4c] | var_4ch = r0;
0x0000574a ldr r0, [sp, 0x3c] | r0 = var_3ch;
0x0000574c ldr r3, [r3] | r3 = *(r3);
0x0000574e str r1, [sp, 0x44] | var_44h = r1;
0x00005750 ldr.w r8, [r0] | r8 = *(r0);
0x00005754 cmp r1, 0 |
| if (r1 == 0) {
0x00005756 beq.w 0x5ed2 | goto label_128;
| }
0x0000575a str.w sl, [sp, 0x28] | __asm ("str.w sl, [var_28h]");
0x0000575e subs r3, 4 | r3 -= 4;
0x00005760 ldr.w sl, [sp, 0x40] | sl = s1;
0x00005764 mov.w sb, 1 | sb = 1;
0x00005768 subs r2, 4 | r2 -= 4;
0x0000576a str r3, [sp, 0x30] | var_30h = r3;
0x0000576c movs r3, 0 | r3 = 0;
0x0000576e str r2, [sp, 0x34] | var_34h = r2;
0x00005770 str r3, [sp, 0x38] | var_38h = r3;
| label_30:
0x00005772 ldr r2, [sp, 0x34] | r2 = var_34h;
0x00005774 ldr r3, [r2, 4]! | r3 = *((r2 += 4));
0x00005778 str r2, [sp, 0x34] | var_34h = r2;
0x0000577a ldr r2, [sp, 0x30] | r2 = var_30h;
0x0000577c str r3, [r4] | *(r4) = r3;
0x0000577e ldr r3, [r2, 4]! | r3 = *((r2 += 4));
0x00005782 str r2, [sp, 0x30] | var_30h = r2;
0x00005784 str r3, [r4, 8] | *((r4 + 8)) = r3;
0x00005786 cmp.w fp, 0 |
| if (fp == 0) {
0x0000578a beq.w 0x5b3a | goto label_129;
| }
0x0000578e ldr r3, [sp, 0x48] | r3 = var_48h;
0x00005790 movs r5, 0 | r5 = 0;
0x00005792 subs r7, r3, 4 | r7 = r3 - 4;
0x00005794 ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x00005796 subs r6, r3, 4 | r6 = r3 - 4;
0x00005798 b 0x57b0 |
| while (r3 == 0) {
| label_23:
0x0000579a adds r5, 1 | r5++;
0x0000579c mov r2, r8 | r2 = r8;
0x0000579e mov r1, r4 | r1 = r4;
0x000057a0 mov r0, sl | r0 = sl;
0x000057a2 blx 0x25f8 | fcn_000025f8 ();
0x000057a6 cmp fp, r5 |
0x000057a8 and.w sb, sb, r0 | sb &= r0;
| if (fp == r5) {
0x000057ac beq.w 0x5b3a | goto label_129;
| }
0x000057b0 ldr r3, [r7, 4]! | r3 = *((r7 += 4));
0x000057b4 str r3, [r4, 4] | *((r4 + 4)) = r3;
0x000057b6 ldr r3, [r6, 4]! | r3 = *((r6 += 4));
0x000057ba str r3, [r4, 0xc] | *((r4 + 0xc)) = r3;
0x000057bc ldr r3, [sp, 0x28] | r3 = var_28h;
0x000057be cmp r3, 0 |
0x000057c0 beq 0x579a |
| }
0x000057c2 ldrh.w r1, [r4, 0x58] | r1 = *((r4 + 0x58));
0x000057c6 movs r3, 0x5b | r3 = 0x5b;
0x000057c8 movs r2, 0 | r2 = 0;
0x000057ca mov r0, r4 | r0 = r4;
0x000057cc str.w r8, [sp] | __asm ("str.w r8, [sp]");
0x000057d0 add r1, r4 | r1 += r4;
0x000057d2 adds r1, 2 | r1 += 2;
0x000057d4 bl 0x3d40 | fcn_00003d40 (r0, r1, r2, r3, r4);
0x000057d8 b 0x579a | goto label_23;
0x000057da ldr r2, [sp, 0x34] | r2 = var_34h;
0x000057dc ldr.w r3, [r5, 0xc8] | r3 = *((r5 + 0xc8));
0x000057e0 subs r6, r2, 1 | r6 = r2 - 1;
0x000057e2 ldr r2, [sp, 0x64] | r2 = var_64h;
0x000057e4 lsls r3, r3, 0x1a | r3 <<= 0x1a;
0x000057e6 ldr r2, [r2] | r2 = *(r2);
0x000057e8 ldr r7, [r2] | r7 = *(r2);
0x000057ea ldr r2, [sp, 0x6c] | r2 = var_6ch;
0x000057ec ldr r0, [r2] | r0 = *(r2);
0x000057ee ldr r2, [sp, 0x3c] | r2 = var_3ch;
0x000057f0 ldr r5, [r2] | r5 = *(r2);
0x000057f2 ldr r2, [sp, 0x68] | r2 = var_68h;
0x000057f4 ldr r1, [r2] | r1 = *(r2);
0x000057f6 ldr r2, [sp, 0x70] | r2 = var_70h;
0x000057f8 ldr r2, [r2] | r2 = *(r2);
0x000057fa str r7, [r4] | *(r4) = r7;
0x000057fc ldr r0, [r0] | r0 = *(r0);
0x000057fe str r0, [r4, 4] | *((r4 + 4)) = r0;
0x00005800 ldr r1, [r1] | r1 = *(r1);
0x00005802 str r1, [r4, 8] | *((r4 + 8)) = r1;
0x00005804 ldr r2, [r2] | r2 = *(r2);
0x00005806 str r2, [r4, 0xc] | *((r4 + 0xc)) = r2;
| if (r3 < r3) {
0x00005808 bmi.w 0x5e9c | goto label_130;
| }
| label_49:
0x0000580c ldr r0, [sp, 0x40] | r0 = s1;
0x0000580e mov r3, r5 | r3 = r5;
0x00005810 mov r2, r6 | r2 = r6;
0x00005812 mov r1, r4 | r1 = r4;
0x00005814 blx 0x22e0 | fcn_000022e0 (r0);
0x00005816 stcl p6, c4, [r4, -0x204]! | __asm ("stcl p6, c4, [r4, -0x204]!");
| label_31:
0x0000581a ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x0000581c cmp r3, 1 |
| if (r3 > 1) {
0x0000581e bgt.w 0x55a2 | goto label_24;
| }
0x00005822 add r0, sp, 0x19c | r0 += var_19ch;
0x00005824 blx 0x2668 | ip6tc_builtin ();
0x00005828 b 0x5290 | goto label_25;
0x0000582a ldr r3, [sp, 0x34] | r3 = var_34h;
0x0000582c subs r1, r3, 1 | r1 = r3 - 1;
0x0000582e ldrd r3, r0, [sp, 0x3c] | __asm ("ldrd r3, r0, [var_3ch]");
0x00005832 ldr r2, [r3] | r2 = *(r3);
0x00005834 blx 0x2280 | r0 = fcn_00002280 ();
0x00005838 mov sb, r0 | sb = r0;
0x0000583a b 0x5280 | goto label_11;
0x0000583c ldr r3, [sp, 0x5c] | r3 = var_5ch;
0x0000583e ldr.w r1, [r5, 0xd4] | r1 = var_d4h;
0x00005842 ldr.w r0, [r5, 0xcc] | r0 = var_19ch;
0x00005846 ldr r7, [r3] | r7 = *(r3);
0x00005848 ldr r3, [sp, 0x60] | r3 = var_60h;
0x0000584a str r7, [sp, 0x48] | var_48h = r7;
0x0000584c ldr.w fp, [r3] | fp = *(r3);
0x00005850 ldr.w r3, [r5, 0xc8] | r3 = var_198h;
0x00005854 and r3, r3, 0x20 | r3 &= 0x20;
0x00005858 str r3, [sp, 0x30] | var_30h = r3;
0x0000585a ldr r3, [sp, 0x64] | r3 = var_64h;
0x0000585c ldr r6, [r3] | r6 = *(r3);
0x0000585e ldr r3, [sp, 0x68] | r3 = var_68h;
0x00005860 ldr r5, [r3] | r5 = *(r3);
0x00005862 ldr r3, [sp, 0x6c] | r3 = var_6ch;
0x00005864 ldr r3, [r3] | r3 = *(r3);
0x00005866 str r3, [sp, 0x4c] | var_4ch = r3;
0x00005868 ldr r3, [sp, 0x70] | r3 = var_70h;
0x0000586a ldr r3, [r3] | r3 = *(r3);
0x0000586c str r3, [sp, 0x50] | var_50h = r3;
0x0000586e ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x00005870 ldr.w r8, [r3] | r8 = *(r3);
0x00005874 bl 0x402c | r0 = fcn_0000402c (r0, r1, r2);
0x00005878 mov sl, r0 | sl = r0;
0x0000587a cmp r7, 0 |
| if (r7 == 0) {
0x0000587c beq.w 0x5b2c | goto label_114;
| }
0x00005880 str.w fp, [sp, 0x28] | __asm ("str.w fp, [var_28h]");
0x00005884 subs r3, r6, 4 | r3 = r6 - 4;
0x00005886 ldr.w fp, [sp, 0x40] | fp = s1;
0x0000588a mov.w sb, 1 | sb = 1;
0x0000588e str r3, [sp, 0x44] | var_44h = r3;
0x00005890 subs r3, r5, 4 | r3 = r5 - 4;
0x00005892 str r3, [sp, 0x38] | var_38h = r3;
0x00005894 movs r3, 0 | r3 = 0;
0x00005896 str r3, [sp, 0x34] | var_34h = r3;
| label_35:
0x00005898 ldr r2, [sp, 0x44] | r2 = var_44h;
0x0000589a ldr r3, [r2, 4]! | r3 = *((r2 += 4));
0x0000589e str r2, [sp, 0x44] | var_44h = r2;
0x000058a0 ldr r2, [sp, 0x38] | r2 = var_38h;
0x000058a2 str r3, [r4] | *(r4) = r3;
0x000058a4 ldr r3, [r2, 4]! | r3 = *((r2 += 4));
0x000058a8 str r3, [r4, 8] | *((r4 + 8)) = r3;
0x000058aa ldr r3, [sp, 0x28] | r3 = var_28h;
0x000058ac str r2, [sp, 0x38] | var_38h = r2;
0x000058ae cmp r3, 0 |
| if (r3 == 0) {
0x000058b0 beq.w 0x5b6a | goto label_131;
| }
0x000058b4 ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x000058b6 movs r5, 0 | r5 = 0;
0x000058b8 subs r7, r3, 4 | r7 = r3 - 4;
0x000058ba ldr r3, [sp, 0x50] | r3 = var_50h;
0x000058bc subs r6, r3, 4 | r6 = r3 - 4;
0x000058be b 0x58da |
| while (r3 == 0) {
| label_26:
0x000058c0 mov r3, r8 | r3 = r8;
0x000058c2 mov r2, sl | r2 = sl;
0x000058c4 mov r1, r4 | r1 = r4;
0x000058c6 mov r0, fp | r0 = fp;
0x000058c8 blx 0x26f0 | fcn_000026f0 ();
0x000058cc ldr r3, [sp, 0x28] | r3 = var_28h;
0x000058ce adds r5, 1 | r5++;
0x000058d0 and.w sb, sb, r0 | sb &= r0;
0x000058d4 cmp r3, r5 |
| if (r3 == r5) {
0x000058d6 beq.w 0x5b6a | goto label_131;
| }
0x000058da ldr r3, [r7, 4]! | r3 = *((r7 += 4));
0x000058de str r3, [r4, 4] | *((r4 + 4)) = r3;
0x000058e0 ldr r3, [r6, 4]! | r3 = *((r6 += 4));
0x000058e4 str r3, [r4, 0xc] | *((r4 + 0xc)) = r3;
0x000058e6 ldr r3, [sp, 0x30] | r3 = var_30h;
0x000058e8 cmp r3, 0 |
0x000058ea beq 0x58c0 |
| }
0x000058ec ldrh.w r1, [r4, 0x58] | r1 = *((r4 + 0x58));
0x000058f0 movs r3, 0x5b | r3 = 0x5b;
0x000058f2 movs r2, 0 | r2 = 0;
0x000058f4 mov r0, r4 | r0 = r4;
0x000058f6 str.w r8, [sp] | __asm ("str.w r8, [sp]");
0x000058fa add r1, r4 | r1 += r4;
0x000058fc adds r1, 2 | r1 += 2;
0x000058fe bl 0x3d40 | fcn_00003d40 (r0, r1, r2, r3, r4);
0x00005902 b 0x58c0 | goto label_26;
0x00005904 ldr r0, [sp, 0x6c] | r0 = var_6ch;
0x00005906 ldr r3, [sp, 0x5c] | r3 = var_5ch;
0x00005908 ldr r2, [sp, 0x60] | r2 = var_60h;
0x0000590a ldr r0, [r0] | r0 = *(r0);
0x0000590c ldr r1, [r3] | r1 = *(r3);
0x0000590e ldr.w r3, [r5, 0xc8] | r3 = var_198h;
0x00005912 str r0, [sp, 0x4c] | var_4ch = r0;
0x00005914 ldr r0, [sp, 0x70] | r0 = var_70h;
0x00005916 and r3, r3, 0x20 | r3 &= 0x20;
0x0000591a ldr.w sl, [r2] | sl = *(r2);
0x0000591e str r3, [sp, 0x30] | var_30h = r3;
0x00005920 ldr r2, [sp, 0x34] | r2 = var_34h;
0x00005922 ldr r3, [sp, 0x64] | r3 = var_64h;
0x00005924 ldr r0, [r0] | r0 = *(r0);
0x00005926 add.w fp, r2, -1 |
0x0000592a str r1, [sp, 0x48] | var_48h = r1;
0x0000592c ldr r2, [r3] | r2 = *(r3);
0x0000592e str r0, [sp, 0x50] | var_50h = r0;
0x00005930 ldr r3, [sp, 0x68] | r3 = var_68h;
0x00005932 ldr r0, [sp, 0x3c] | r0 = var_3ch;
0x00005934 ldr r3, [r3] | r3 = *(r3);
0x00005936 ldr.w r8, [r0] | r8 = *(r0);
0x0000593a cmp r1, 0 |
| if (r1 == 0) {
0x0000593c beq.w 0x5ed2 | goto label_128;
| }
0x00005940 str.w sl, [sp, 0x28] | __asm ("str.w sl, [var_28h]");
0x00005944 subs r3, 4 | r3 -= 4;
0x00005946 ldr.w sl, [sp, 0x40] | sl = s1;
0x0000594a mov.w sb, 1 | sb = 1;
0x0000594e subs r2, 4 | r2 -= 4;
0x00005950 str r3, [sp, 0x38] | var_38h = r3;
0x00005952 movs r3, 0 | r3 = 0;
0x00005954 str r2, [sp, 0x44] | var_44h = r2;
0x00005956 str r3, [sp, 0x34] | var_34h = r3;
| label_34:
0x00005958 ldr r2, [sp, 0x44] | r2 = var_44h;
0x0000595a ldr r3, [r2, 4]! | r3 = *((r2 += 4));
0x0000595e str r2, [sp, 0x44] | var_44h = r2;
0x00005960 ldr r2, [sp, 0x38] | r2 = var_38h;
0x00005962 str r3, [r4] | *(r4) = r3;
0x00005964 ldr r3, [r2, 4]! | r3 = *((r2 += 4));
0x00005968 str r3, [r4, 8] | *((r4 + 8)) = r3;
0x0000596a ldr r3, [sp, 0x28] | r3 = var_28h;
0x0000596c str r2, [sp, 0x38] | var_38h = r2;
0x0000596e cmp r3, 0 |
| if (r3 == 0) {
0x00005970 beq.w 0x5b5a | goto label_132;
| }
0x00005974 ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x00005976 movs r5, 0 | r5 = 0;
0x00005978 subs r7, r3, 4 | r7 = r3 - 4;
0x0000597a ldr r3, [sp, 0x50] | r3 = var_50h;
0x0000597c subs r6, r3, 4 | r6 = r3 - 4;
0x0000597e b 0x599a |
| while (r3 == 0) {
| label_27:
0x00005980 mov r3, r8 | r3 = r8;
0x00005982 mov r2, fp | r2 = fp;
0x00005984 mov r1, r4 | r1 = r4;
0x00005986 mov r0, sl | r0 = sl;
0x00005988 blx 0x2680 | iptc_commit ();
0x0000598c ldr r3, [sp, 0x28] | r3 = var_28h;
0x0000598e adds r5, 1 | r5++;
0x00005990 and.w sb, sb, r0 | sb &= r0;
0x00005994 cmp r3, r5 |
| if (r3 == r5) {
0x00005996 beq.w 0x5b5a | goto label_132;
| }
0x0000599a ldr r3, [r7, 4]! | r3 = *((r7 += 4));
0x0000599e str r3, [r4, 4] | *((r4 + 4)) = r3;
0x000059a0 ldr r3, [r6, 4]! | r3 = *((r6 += 4));
0x000059a4 str r3, [r4, 0xc] | *((r4 + 0xc)) = r3;
0x000059a6 ldr r3, [sp, 0x30] | r3 = var_30h;
0x000059a8 cmp r3, 0 |
0x000059aa beq 0x5980 |
| }
0x000059ac ldrh.w r1, [r4, 0x58] | r1 = *((r4 + 0x58));
0x000059b0 movs r3, 0x5b | r3 = 0x5b;
0x000059b2 movs r2, 0 | r2 = 0;
0x000059b4 mov r0, r4 | r0 = r4;
0x000059b6 str.w r8, [sp] | __asm ("str.w r8, [sp]");
0x000059ba add r1, r4 | r1 += r4;
0x000059bc adds r1, 2 | r1 += 2;
0x000059be bl 0x3d40 | fcn_00003d40 (r0, r1, r2, r3, r4);
0x000059c2 b 0x5980 | goto label_27;
| label_105:
0x000059c4 ldr.w r3, [r5, 0xc8] | r3 = var_198h;
0x000059c8 ldr r2, [sp, 0x3c] | r2 = var_3ch;
0x000059ca tst.w r3, 0x20 |
0x000059ce and r1, r3, 0x40 | r1 = r3 & 0x40;
0x000059d2 ite eq |
| if ((r3 & 0x20) != 0) {
0x000059d4 moveq r0, 0xa | r0 = 0xa;
| }
| if ((r3 & 0x20) == 0) {
0x000059d6 movne r0, 0x48 | r0 = 0x48;
| }
0x000059d8 lsls r7, r3, 0x1f | r7 = r3 << 0x1f;
0x000059da ldr.w sl, [r2] | sl = *(r2);
0x000059de and r2, r3, 0x200 | r2 = r3 & 0x200;
0x000059e2 it mi |
| if (r7 >= r3) {
0x000059e4 orrmi r3, r0, 1 | r3 = r0 | 1;
| }
0x000059e8 str r0, [sp, 0x28] | var_28h = r0;
0x000059ea it mi |
| if (r7 >= r3) {
0x000059ec strmi r3, [sp, 0x28] | var_28h = r3;
| }
| if (r1 == 0) {
0x000059ee cbnz r1, 0x59f8 |
0x000059f0 ldr r3, [sp, 0x28] | r3 = var_28h;
0x000059f2 orr r3, r3, 4 | r3 |= 4;
0x000059f6 str r3, [sp, 0x28] | var_28h = r3;
| }
| if (r2 != 0) {
0x000059f8 cbz r2, 0x5a02 |
0x000059fa ldr r3, [sp, 0x28] | r3 = var_28h;
0x000059fc orr r3, r3, 0x100 | r3 |= 0x100;
0x00005a00 str r3, [sp, 0x28] | var_28h = r3;
| }
0x00005a02 mov r0, sl | r0 = sl;
0x00005a04 blx 0x2238 | r0 = fcn_00002238 ();
0x00005a08 mov r8, r0 | r8 = r0;
0x00005a0a blx 0x247c | ip6tc_free ();
0x00005a0e str r0, [sp, 0x30] | var_30h = r0;
0x00005a10 cmp.w r8, 0 |
| if (r8 == 0) {
0x00005a14 beq.w 0x5ec8 | goto label_119;
| }
0x00005a16 strh r0, [r3, 0x12] | *((r3 + 0x12)) = r0;
0x00005a18 ldr.w r3, [pc, 0x6e4] |
0x00005a1c movs r7, 0 | r7 = 0;
0x00005a1e str.w sb, [sp, 0x54] | __asm ("str.w sb, [var_54h]");
0x00005a22 mov sb, r7 | sb = r7;
0x00005a24 str.w fp, [sp, 0x58] | __asm ("str.w fp, [var_58h]");
0x00005a28 mov fp, r6 |
0x00005a2a add r3, pc | r3 = 0xbb2e;
0x00005a2c str r5, [sp, 0x5c] | var_5ch = r5;
0x00005a2e str r3, [sp, 0x44] | var_44h = r3;
0x00005a30 mov r5, r8 | r5 = r8;
0x00005a32 ldr.w r3, [pc, 0x6d0] |
0x00005a36 ldr r7, [sp, 0x40] | r7 = s1;
0x00005a38 ldr r6, [sp, 0x34] | r6 = var_34h;
0x00005a3a add r3, pc | r3 = 0xbb44;
0x00005a3c ldr.w r8, [sp, 0x28] | r8 = var_28h;
0x00005a40 str r3, [sp, 0x48] | var_48h = r3;
0x00005a42 ldr.w r3, [pc, 0x6c4] |
0x00005a46 str r4, [sp, 0x50] | var_50h = r4;
0x00005a48 mov r4, sl | r4 = sl;
0x00005a4a add r3, pc | r3 = 0xbb58;
0x00005a4c str r3, [sp, 0x4c] | var_4ch = r3;
| do {
0x00005a4e cmp r7, 0 |
| if (r7 == 0) {
0x00005a50 beq.w 0x5b7a | goto label_133;
| }
0x00005a54 mov r1, r5 | r1 = r5;
0x00005a56 mov r0, r7 | r0 = r7;
0x00005a58 blx 0x2110 | r0 = strcmp (r0, r1);
0x00005a5c cmp r0, 0 |
| if (r0 == 0) {
0x00005a5e beq.w 0x5b7a | goto label_133;
| }
| label_38:
0x00005a62 mov r0, r4 | r0 = r4;
0x00005a64 blx 0x24c4 | r0 = putchar (r0);
0x00005a68 mov r5, r0 | r5 = r0;
0x00005a6a cmp r0, 0 |
0x00005a6c bne 0x5a4e |
| } while (r0 != 0);
0x00005a6e ldr r2, [sp, 0x30] | r2 = var_30h;
0x00005a70 mov r7, sb | r7 = sb;
0x00005a72 movs r3, 2 | r3 = 2;
0x00005a74 ldr r4, [sp, 0x50] | r4 = var_50h;
0x00005a76 ldrd sb, fp, [sp, 0x54] | __asm ("ldrd sb, fp, [var_58h]");
0x00005a7a ldr r5, [sp, 0x5c] | r5 = var_5ch;
0x00005a7c str r3, [r2] | *(r2) = r3;
0x00005a7e cmp r7, 0 |
| if (r7 == 0) {
0x00005a80 beq.w 0x5280 | goto label_11;
| }
0x00005a84 ldr.w r2, [fp] | r2 = *(fp);
0x00005a88 lsls r0, r2, 0x18 | r0 = r2 << 0x18;
0x00005a8a it pl |
| if (r0 >= r2) {
0x00005a8c movpl sb, r7 | sb = r7;
| goto label_134;
| }
| if (r0 >= r2) {
| label_134:
0x00005a8e bpl.w 0x554a | goto label_28;
| }
| label_121:
0x00005a92 ldr.w r1, [r5, 0xc8] | r1 = *((r5 + 0xc8));
0x00005a96 ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x00005a98 ldr r0, [sp, 0x40] | r0 = s1;
0x00005a9a and r1, r1, 0x20 | r1 &= 0x20;
0x00005a9e ldr r2, [r3] | r2 = *(r3);
0x00005aa0 bl 0x43f0 | r0 = fcn_000043f0 (r0, r1, r2);
0x00005aa4 cmp r0, 0 |
| if (r0 == 0) {
0x00005aa6 beq.w 0x5280 | goto label_11;
| }
0x00005aaa ldr.w r2, [fp] | r2 = *(fp);
0x00005aae mov sb, r0 | sb = r0;
0x00005ab0 b 0x554a | goto label_28;
| label_118:
0x00005ab2 mov r0, r7 | r0 = r7;
0x00005ab4 blx 0x2238 | r0 = fcn_00002238 ();
0x00005ab8 mov r6, r0 | r6 = r0;
0x00005aba cmp r0, 0 |
| if (r0 == 0) {
0x00005abc beq.w 0x54d0 | goto label_29;
| }
0x00005ac0 ldr.w r3, [pc, 0x648] |
0x00005ac4 ldr.w sl, [pc, 0x648] |
0x00005ac8 add r3, pc | r3 = 0xbbd8;
0x00005aca str r3, [sp, 0x38] | var_38h = r3;
0x00005acc add sl, pc | sl = 0xbbe0;
0x00005ace ldr.w r3, [pc, 0x644] |
0x00005ad2 add r3, pc | r3 = 0xbbec;
0x00005ad4 strd r3, r4, [sp, 0x44] | __asm ("strd r3, r4, [var_48h]");
0x00005ad8 ldr r4, [sp, 0x40] | r4 = s1;
| if (r4 != 0) {
| do {
0x00005ada cbz r4, 0x5ae6 |
0x00005adc mov r1, r4 | r1 = r4;
0x00005ade mov r0, r6 | r0 = r6;
0x00005ae0 blx 0x2110 | r0 = strcmp (r0, r1);
| if (r0 != 0) {
0x00005ae4 cbnz r0, 0x5b1c | goto label_44;
| }
| }
0x00005ae6 mov r1, r7 | r1 = r7;
0x00005ae8 mov r0, r6 | r0 = r6;
0x00005aea blx 0x2380 | r0 = vfprintf_chk ()
0x00005aee cmp r0, 0 |
| if (r0 == 0) {
0x00005af0 beq.w 0x5d9e | goto label_135;
| }
0x00005af4 add.w r8, sp, 0xc0 | r8 += var_c0h;
0x00005af8 mov r2, r7 | r2 = r7;
0x00005afa mov r1, r8 | r1 = r8;
0x00005afc mov r0, r6 | r0 = r6;
0x00005afe blx 0x25c8 | fcn_000025c8 ();
0x00005b02 ldr r1, [sp, 0x38] | r1 = var_38h;
0x00005b04 mov r3, r0 | r3 = r0;
0x00005b06 mov r2, r6 | r2 = r6;
0x00005b08 movs r0, 1 | r0 = 1;
0x00005b0a blx 0x2530 | ip6tc_flush_entries ();
0x00005b0e ldr r3, [sp, 0x30] | r3 = var_30h;
0x00005b10 cmp r3, 0 |
| if (r3 != 0) {
0x00005b12 bne.w 0x5e1c | goto label_136;
| }
| label_46:
0x00005b16 movs r0, 0xa | r0 = 0xa;
0x00005b18 blx 0x24d4 | fcn_000024d4 ();
| label_44:
0x00005b1c mov r0, r7 | r0 = r7;
0x00005b1e blx 0x24c4 | r0 = putchar (r0);
0x00005b22 mov r6, r0 | r6 = r0;
0x00005b24 cmp r0, 0 |
0x00005b26 bne 0x5ada |
| } while (r0 != 0);
0x00005b28 ldr r4, [sp, 0x48] | r4 = var_48h;
0x00005b2a b 0x54d0 | goto label_29;
| label_114:
0x00005b2c mov.w sb, 1 | sb = 1;
| label_33:
0x00005b30 mov r0, sl | r0 = sl;
0x00005b32 blx 0x218c | fcn_0000218c ();
0x00005b36 b.w 0x5280 | goto label_11;
| label_129:
0x00005b3a ldr r3, [sp, 0x38] | r3 = var_38h;
0x00005b3c ldr r2, [sp, 0x44] | r2 = var_44h;
0x00005b3e adds r3, 1 | r3++;
0x00005b40 cmp r2, r3 |
0x00005b42 str r3, [sp, 0x38] | var_38h = r3;
| if (r2 != r3) {
0x00005b44 bne.w 0x5772 | goto label_30;
| }
0x00005b48 b 0x581a | goto label_31;
| label_115:
0x00005b4a ldr r3, [sp, 0x44] | r3 = var_44h;
0x00005b4c ldr r2, [sp, 0x48] | r2 = var_48h;
0x00005b4e adds r3, 1 | r3++;
0x00005b50 cmp r2, r3 |
0x00005b52 str r3, [sp, 0x44] | var_44h = r3;
| if (r2 != r3) {
0x00005b54 bne.w 0x53e0 | goto label_32;
| }
0x00005b58 b 0x5b30 | goto label_33;
| label_132:
0x00005b5a ldr r3, [sp, 0x34] | r3 = var_34h;
0x00005b5c ldr r2, [sp, 0x48] | r2 = var_48h;
0x00005b5e adds r3, 1 | r3++;
0x00005b60 cmp r2, r3 |
0x00005b62 str r3, [sp, 0x34] | var_34h = r3;
| if (r2 != r3) {
0x00005b64 bne.w 0x5958 | goto label_34;
| }
0x00005b68 b 0x581a | goto label_31;
| label_131:
0x00005b6a ldr r3, [sp, 0x34] | r3 = var_34h;
0x00005b6c ldr r2, [sp, 0x48] | r2 = var_48h;
0x00005b6e adds r3, 1 | r3++;
0x00005b70 cmp r2, r3 |
0x00005b72 str r3, [sp, 0x34] | var_34h = r3;
| if (r2 != r3) {
0x00005b74 bne.w 0x5898 | goto label_35;
| }
0x00005b78 b 0x5b30 | goto label_33;
| label_133:
0x00005b7a cmp.w sb, 0 |
| if (sb != 0) {
0x00005b7e bne 0x5bd4 | goto label_137;
| }
| label_37:
0x00005b80 cmp r6, 0 |
| if (r6 == 0) {
0x00005b82 beq 0x5c82 | goto label_138;
| }
| label_42:
0x00005b84 mov r0, r5 | r0 = r5;
0x00005b86 mov r1, r4 | r1 = r4;
0x00005b88 clz sb, r6 | sb &= r6;
0x00005b8c mov.w sl, 0 | sl = 0;
0x00005b90 blx 0x262c | putc (r0, r1);
0x00005b94 lsr.w sb, sb, 5 | sb >>= 5;
0x00005b98 mov r5, r0 | r5 = r0;
| if (r0 != 0) {
0x00005b9a cbnz r0, 0x5baa | goto label_139;
| }
0x00005b9c b 0x5bdc | goto label_140;
| do {
| label_36:
0x00005b9e mov r0, r5 | r0 = r5;
0x00005ba0 mov r1, r4 | r1 = r4;
0x00005ba2 blx 0x26e4 | r0 = fcn_000026e4 ();
0x00005ba6 mov r5, r0 | r5 = r0;
| if (r0 == 0) {
0x00005ba8 cbz r0, 0x5bdc | goto label_140;
| }
| label_139:
0x00005baa add.w sl, sl, 1 | sl++;
0x00005bae cmp r6, sl |
0x00005bb0 ite ne |
| if (r6 == sl) {
0x00005bb2 movne r3, sb | r3 = sb;
| }
| if (r6 != sl) {
0x00005bb4 orreq r3, sb, 1 | r3 = sb | 1;
| }
0x00005bb8 cmp r3, 0 |
0x00005bba beq 0x5b9e |
| } while (r3 == 0);
0x00005bbc mov r1, r4 | r1 = r4;
0x00005bbe mov r0, r5 | r0 = r5;
0x00005bc0 blx 0x2520 | fcn_00002520 ();
0x00005bc4 mov r3, r8 | r3 = r8;
0x00005bc6 mov r1, r0 | r1 = r0;
0x00005bc8 mov r2, sl | r2 = sl;
0x00005bca mov r0, r5 | r0 = r5;
0x00005bcc str r4, [sp] | *(sp) = r4;
0x00005bce bl 0x3d40 | fcn_00003d40 (r0, r1, r2, r3, r4);
0x00005bd2 b 0x5b9e | goto label_36;
| label_137:
0x00005bd4 movs r0, 0xa | r0 = 0xa;
0x00005bd6 blx 0x24d4 | fcn_000024d4 ();
0x00005bda b 0x5b80 | goto label_37;
| label_140:
0x00005bdc mov.w sb, 1 | sb = 1;
0x00005be0 b 0x5a62 | goto label_38;
| label_120:
0x00005be2 mov r1, r7 | r1 = r7;
0x00005be4 mov r0, r5 | r0 = r5;
0x00005be6 blx 0x262c | r0 = putc (r0, r1);
| if (r0 == 0) {
0x00005bea cbz r0, 0x5c2c | goto label_141;
| }
0x00005bec movs r4, 0 | r4 = 0;
0x00005bee mov r3, r5 | r3 = r5;
0x00005bf0 clz r6, r8 | r6 &= r8;
0x00005bf4 mov r5, r4 | r5 = r4;
0x00005bf6 lsrs r6, r6, 5 | r6 >>= 5;
0x00005bf8 mov r4, sb | r4 = sb;
0x00005bfa mov sb, r7 | sb = r7;
0x00005bfc mov r7, r3 | r7 = r3;
0x00005bfe b 0x5c08 |
| while (r3 == 0) {
| label_39:
0x00005c00 mov r1, sb | r1 = sb;
0x00005c02 blx 0x26e4 | r0 = fcn_000026e4 ();
| if (r0 == 0) {
0x00005c06 cbz r0, 0x5c28 | goto label_142;
| }
0x00005c08 adds r5, 1 | r5++;
0x00005c0a cmp r8, r5 |
0x00005c0c ite ne |
| if (r8 == r5) {
0x00005c0e movne r3, r6 | r3 = r6;
| }
| if (r8 != r5) {
0x00005c10 orreq r3, r6, 1 | r3 = r6 | 1;
| }
0x00005c14 cmp r3, 0 |
0x00005c16 beq 0x5c00 |
| }
0x00005c18 mov r3, sl | r3 = sl;
0x00005c1a mov r2, r7 | r2 = r7;
0x00005c1c mov r1, sb | r1 = sb;
0x00005c1e str r0, [sp, 0x28] | var_28h = r0;
0x00005c20 bl 0x444c | fcn_0000444c (r0, r1, r2, r3);
0x00005c24 ldr r0, [sp, 0x28] | r0 = var_28h;
0x00005c26 b 0x5c00 | goto label_39;
| label_142:
0x00005c28 mov r7, sb | r7 = sb;
0x00005c2a mov sb, r4 | sb = r4;
| label_141:
0x00005c2c movs r6, 1 | r6 = 1;
0x00005c2e b 0x5518 | goto label_40;
| label_97:
0x00005c30 ldr r3, [sp, 0x50] | r3 = var_50h;
0x00005c32 ldr r0, [r3] | r0 = *(r3);
0x00005c34 blx 0x24a0 | isoc99_sscanf ();
0x00005c38 ldr r4, [sp, 0x3c] | r4 = var_3ch;
0x00005c3a mov r7, r0 | r7 = r0;
0x00005c3c str r0, [r4] | *(r4) = r0;
0x00005c3e cmp r0, 0 |
| if (r0 != 0) {
0x00005c40 bne.w 0x50b4 | goto label_41;
| }
0x00005c44 ldr.w r3, [pc, 0x4d0] | r3 = *(0x6118);
0x00005c48 mov r1, r0 | r1 = r0;
0x00005c4a ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00005c4c ldr r0, [r3] | r0 = *(0x6118);
0x00005c4e blx 0x2598 | r0 = fcn_00002598 ();
0x00005c52 adds r7, r0, 1 | r7 = r0 + 1;
| if (r7 != r0) {
0x00005c54 bne.w 0x5d8e | goto label_143;
| }
0x00005c58 ldr r7, [r4] | r7 = *(r4);
| label_43:
0x00005c5a cmp r7, 0 |
| if (r7 != 0) {
0x00005c5c bne.w 0x50b4 | goto label_41;
| }
0x00005c60 ldr r3, [sp, 0x78] | r3 = var_78h;
0x00005c62 ldr r2, [sp, 0x50] | r2 = var_50h;
0x00005c64 ldr r3, [r3] | r3 = *(r3);
0x00005c66 ldr r5, [r2] | r5 = *(r2);
0x00005c68 ldr r4, [r3, 0x14] | r4 = *((r3 + 0x14));
0x00005c6a blx 0x247c | r0 = ip6tc_free ();
0x00005c6e ldr r0, [r0] | r0 = *(r0);
0x00005c70 blx 0x22b0 | fcn_000022b0 ();
0x00005c74 ldr.w r1, [pc, 0x4a4] |
0x00005c78 mov r3, r0 | r3 = r0;
0x00005c7a mov r2, r5 | r2 = r5;
0x00005c7c movs r0, 3 | r0 = 3;
0x00005c7e add r1, pc | r1 = 0xbd9e;
0x00005c80 blx r4 | uint32_t (*r4)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
| label_138:
0x00005c82 add r3, sp, 0xc0 | r3 += var_c0h;
0x00005c84 mov r2, r4 | r2 = r4;
0x00005c86 mov r1, r3 | r1 = r3;
0x00005c88 mov r0, r5 | r0 = r5;
0x00005c8a str r3, [sp, 0x38] | var_38h = r3;
0x00005c8c blx 0x25c8 | fcn_000025c8 ();
0x00005c90 ldr r1, [sp, 0x44] | r1 = var_44h;
0x00005c92 mov sb, r0 | sb = r0;
0x00005c94 mov r2, r5 | r2 = r5;
0x00005c96 movs r0, 1 | r0 = 1;
0x00005c98 blx 0x2530 | ip6tc_flush_entries ();
0x00005c9c and r3, r8, 2 | r3 = r8 & 2;
0x00005ca0 str r3, [sp, 0x28] | var_28h = r3;
0x00005ca2 cmp.w sb, 0 |
| if (sb == 0) {
0x00005ca6 beq.w 0x5dfa | goto label_144;
| }
0x00005caa ldr.w r1, [pc, 0x474] |
0x00005cae mov r2, sb | r2 = sb;
0x00005cb0 movs r0, 1 | r0 = 1;
0x00005cb2 add r1, pc | r1 = 0xbdd8;
0x00005cb4 blx 0x2530 | ip6tc_flush_entries ();
0x00005cb8 ldr r3, [sp, 0x28] | r3 = var_28h;
0x00005cba cmp r3, 0 |
| if (r3 == 0) {
0x00005cbc beq.w 0x5e32 | goto label_145;
| }
0x00005cc0 ldr.w r3, [pc, 0x460] | r3 = *(0x6124);
0x00005cc4 ldr.w sb, [fp, r3] | sb = *((fp + r3));
| label_47:
0x00005cc8 ldr.w r0, [pc, 0x45c] |
0x00005ccc add r0, pc | r0 = 0xbdf8;
0x00005cce blx 0x2344 | ip6tc_next_rule ();
| do {
| label_50:
0x00005cd2 tst.w r8, 0x100 |
| if ((r8 & 0x100) != 0) {
0x00005cd6 beq 0x5cea |
0x00005cd8 ldr.w r2, [pc, 0x450] |
0x00005cdc movs r0, 1 | r0 = 1;
0x00005cde ldr.w r1, [pc, 0x450] |
0x00005ce2 add r2, pc | r2 = 0xbe12;
0x00005ce4 add r1, pc | r1 = 0xbe1a;
0x00005ce6 blx 0x2530 | ip6tc_flush_entries ();
| }
0x00005cea ldr r3, [sp, 0x28] | r3 = var_28h;
| if (r3 == 0) {
0x00005cec cbnz r3, 0x5d18 |
0x00005cee tst.w r8, 4 |
| if ((r8 & 4) == 0) {
0x00005cf2 beq.w 0x5e7e | goto label_146;
| }
0x00005cf6 ldr.w sl, [pc, 0x43c] |
0x00005cfa movs r0, 1 | r0 = 1;
0x00005cfc ldr.w r2, [pc, 0x438] |
0x00005d00 add sl, pc | sl = 0xbe3a;
0x00005d02 add r2, pc | r2 = 0xbe3e;
0x00005d04 mov r1, sl | r1 = sl;
0x00005d06 blx 0x2530 | ip6tc_flush_entries ();
0x00005d0a ldr.w r2, [pc, 0x430] |
0x00005d0e mov r1, sl | r1 = sl;
0x00005d10 movs r0, 1 | r0 = 1;
0x00005d12 add r2, pc | r2 = 0xbe54;
0x00005d14 blx 0x2530 | ip6tc_flush_entries ();
0x00005d16 invalid |
| }
| label_48:
0x00005d18 ldrd r2, r1, [sp, 0x48] | __asm ("ldrd r2, r1, [var_4ch]");
0x00005d1c movs r0, 1 | r0 = 1;
0x00005d1e blx 0x2530 | ip6tc_flush_entries ();
0x00005d22 ldr.w r0, [pc, 0x41c] |
0x00005d26 movs r2, 6 | r2 = 6;
0x00005d28 ldr.w r3, [sb] | r3 = *(sb);
0x00005d2c movs r1, 1 | r1 = 1;
0x00005d2e add r0, pc | r0 = 0xbe74;
0x00005d30 blx 0x22d4 | fcn_000022d4 ();
0x00005d34 ldr.w r0, [pc, 0x40c] |
0x00005d38 movs r2, 3 | r2 = 3;
0x00005d3a ldr.w r3, [sb] | r3 = *(sb);
0x00005d3e movs r1, 1 | r1 = 1;
0x00005d40 add r0, pc | r0 = 0xbe88;
0x00005d42 blx 0x22d4 | fcn_000022d4 ();
0x00005d46 tst.w r8, 0x40 |
| if ((r8 & 0x40) != 0) {
0x00005d4a beq 0x5d68 |
0x00005d4c ldr r2, [pc, 0x3f8] |
0x00005d4e movs r0, 1 | r0 = 1;
0x00005d50 ldr r1, [pc, 0x3f8] |
0x00005d52 add r2, pc | r2 = 0xbe9e;
0x00005d54 add r1, pc | r1 = 0xbea4;
0x00005d56 blx 0x2530 | ip6tc_flush_entries ();
0x00005d5a ldr r2, [pc, 0x3f4] |
0x00005d5c movs r0, 1 | r0 = 1;
0x00005d5e ldr r1, [pc, 0x3f4] |
0x00005d60 add r2, pc | r2 = 0xbeb6;
0x00005d62 add r1, pc | r1 = 0xbebc;
0x00005d64 blx 0x2530 | ip6tc_flush_entries ();
| }
0x00005d68 ldr.w sb, [pc, 0x3ec] |
0x00005d6c movs r0, 1 | r0 = 1;
0x00005d6e ldr r2, [pc, 0x3ec] |
0x00005d70 add sb, pc | sb = 0xbecc;
0x00005d72 mov r1, sb | r1 = sb;
0x00005d74 add r2, pc | r2 = 0xbed6;
0x00005d76 blx 0x2530 | ip6tc_flush_entries ();
0x00005d7a ldr r2, [pc, 0x3e4] |
0x00005d7c mov r1, sb | r1 = sb;
0x00005d7e movs r0, 1 | r0 = 1;
0x00005d80 add r2, pc | r2 = 0xbee6;
0x00005d82 blx 0x2530 | ip6tc_flush_entries ();
0x00005d86 movs r0, 0xa | r0 = 0xa;
0x00005d88 blx 0x24d4 | fcn_000024d4 ();
0x00005d8c b 0x5b84 | goto label_42;
| label_143:
0x00005d8e ldr r3, [sp, 0x50] | r3 = var_50h;
0x00005d90 ldr r0, [r3] | r0 = *(r3);
0x00005d92 blx 0x24a0 | isoc99_sscanf ();
0x00005d96 ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x00005d98 mov r7, r0 | r7 = r0;
0x00005d9a str r0, [r3] | *(r3) = r0;
0x00005d9c b 0x5c5a | goto label_43;
| label_135:
0x00005d9e mov r2, r6 | r2 = r6;
0x00005da0 mov r1, sl | r1 = sl;
0x00005da2 movs r0, 1 | r0 = 1;
0x00005da4 blx 0x2530 | ip6tc_flush_entries ();
0x00005da8 b 0x5b1c | goto label_44;
| label_116:
0x00005daa ldr.w r1, [r5, 0xc8] | r1 = var_198h;
0x00005dae ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x00005db0 ldr r0, [sp, 0x40] | r0 = s1;
0x00005db2 and r1, r1, 0x20 | r1 &= 0x20;
0x00005db6 ldr r2, [r3] | r2 = *(r3);
0x00005db8 bl 0x4394 | r0 = fcn_00004394 (r0, r1, r2);
0x00005dbc mov sb, r0 | sb = r0;
0x00005dbe b.w 0x5280 | goto label_11;
| label_110:
0x00005dc2 ldrd r3, r0, [sp, 0x3c] | __asm ("ldrd r3, r0, [var_3ch]");
0x00005dc6 ldr r1, [sp, 0x7c] | r1 = var_7ch;
0x00005dc8 ldr r2, [r3] | r2 = *(r3);
0x00005dca blx 0x20ec | r0 = iptc_rename_chain ();
0x00005dce mov sb, r0 | sb = r0;
0x00005dd0 b.w 0x5280 | goto label_11;
| label_104:
0x00005dd4 movs r7, 0x70 | r7 = 0x70;
0x00005dd6 adds r0, 0x70 | r0 += 0x70;
0x00005dd8 blx 0x235c | xtables_ip6addr_to_anyname ();
0x00005ddc mov r2, r7 | r2 = r7;
0x00005dde mov r1, r5 | r1 = r5;
0x00005de0 mov r4, r0 | r4 = r0;
0x00005de2 blx 0x21b0 | fcn_000021b0 ();
0x00005de6 ldr r3, [sp, 0x28] | r3 = var_28h;
0x00005de8 adds r0, r4, r7 | r0 = r4 + r7;
0x00005dea strh.w r7, [r4, 0x58] | *((r4 + 0x58)) = r7;
0x00005dee ldrh r2, [r3] | r2 = *(r3);
0x00005df0 adds r3, r2, r7 | r3 = r2 + r7;
0x00005df2 strh.w r3, [r4, 0x5a] | *((r4 + 0x5a)) = r3;
0x00005df6 b.w 0x51be | goto label_45;
| label_144:
0x00005dfa add.w sb, sp, 0xac | sb += var_ach;
0x00005dfe mov r2, r4 | r2 = r4;
0x00005e00 mov r1, r5 | r1 = r5;
0x00005e02 mov r0, sb | r0 = sb;
0x00005e04 blx 0x23a4 | r0 = ctype_tolower_loc ();
0x00005e08 cmp r0, 0 |
| if (r0 != 0) {
0x00005e0a bne 0x5eb2 | goto label_147;
| }
0x00005e0c ldr r0, [pc, 0x354] |
0x00005e0e add r0, pc | r0 = 0xbf76;
0x00005e10 blx 0x2344 | ip6tc_next_rule ();
0x00005e14 ldr r3, [pc, 0x30c] | r3 = *(0x6124);
0x00005e16 ldr.w sb, [fp, r3] | sb = *((fp + r3));
0x00005e1a b 0x5cd2 |
| } while (1);
| label_136:
0x00005e1c ldrd r2, r3, [sp, 0xc8] | __asm ("ldrd r2, r3, [var_c8h]");
0x00005e20 movs r0, 1 | r0 = 1;
0x00005e22 ldr r1, [sp, 0x44] | r1 = var_44h;
0x00005e24 strd r2, r3, [sp] | __asm ("strd r2, r3, [sp]");
0x00005e28 ldrd r2, r3, [sp, 0xc0] | __asm ("ldrd r2, r3, [var_c0h]");
0x00005e2c blx 0x2530 | ip6tc_flush_entries ();
0x00005e30 b 0x5b16 | goto label_46;
| label_145:
0x00005e32 ldr r3, [pc, 0x2f0] | r3 = *(0x6126);
0x00005e34 orr sl, r8, 0x10 | sl = r8 | 0x10;
0x00005e38 movs r0, 0x20 | r0 = 0x20;
0x00005e3a ldr.w sb, [fp, r3] | sb = *((fp + r3));
0x00005e3e ldr.w r1, [sb] | r1 = *(sb);
0x00005e42 blx 0x2620 | ip6tc_init ();
0x00005e46 ldrd r0, r1, [sp, 0xc0] | __asm ("ldrd r0, r1, [var_c0h]");
0x00005e4a mov r2, sl | r2 = sl;
0x00005e4c blx 0x26d8 | fcn_000026d8 ();
0x00005e50 ldr r0, [pc, 0x314] |
0x00005e52 movs r1, 1 | r1 = 1;
0x00005e54 ldr.w r3, [sb] | r3 = *(sb);
0x00005e58 movs r2, 9 | r2 = 9;
0x00005e5a add r0, pc | r0 = 0xbfc6;
0x00005e5c blx 0x22d4 | fcn_000022d4 ();
0x00005e60 ldr r3, [sp, 0x38] | r3 = var_38h;
0x00005e62 mov r2, sl | r2 = sl;
0x00005e64 ldrd r0, r1, [r3, 8] | __asm ("ldrd r0, r1, [r3, 8]");
0x00005e68 blx 0x26d8 | fcn_000026d8 ();
0x00005e6c ldr r0, [pc, 0x2fc] |
0x00005e6e movs r2, 5 | r2 = 5;
0x00005e70 ldr.w r3, [sb] | r3 = *(sb);
0x00005e74 movs r1, 1 | r1 = 1;
0x00005e76 add r0, pc | r0 = 0xbfe6;
0x00005e78 blx 0x22d4 | fcn_000022d4 ();
0x00005e7c b 0x5cc8 | goto label_47;
| label_146:
0x00005e7e ldr r2, [pc, 0x2f0] |
0x00005e80 movs r0, 1 | r0 = 1;
0x00005e82 ldr r1, [pc, 0x2f0] |
0x00005e84 add r2, pc | r2 = 0xbffa;
0x00005e86 add r1, pc | r1 = 0xc000;
0x00005e88 blx 0x2530 | ip6tc_flush_entries ();
0x00005e8c ldr r2, [pc, 0x2e8] |
0x00005e8e movs r0, 1 | r0 = 1;
0x00005e90 ldr r1, [pc, 0x2e8] |
0x00005e92 add r2, pc | r2 = 0xc00e;
0x00005e94 add r1, pc | r1 = 0xc014;
0x00005e96 blx 0x2530 | ip6tc_flush_entries ();
0x00005e9a b 0x5d18 | goto label_48;
| label_130:
0x00005e9c ldrh.w r1, [r4, 0x58] | r1 = *((r4 + 0x58));
0x00005ea0 movs r3, 0x5b | r3 = 0x5b;
0x00005ea2 movs r2, 0 | r2 = 0;
0x00005ea4 mov r0, r4 | r0 = r4;
0x00005ea6 str r5, [sp] | *(sp) = r5;
0x00005ea8 add r1, r4 | r1 += r4;
0x00005eaa adds r1, 2 | r1 += 2;
0x00005eac bl 0x3d40 | fcn_00003d40 (r0, r1, r2, r3, r4);
0x00005eb0 b 0x580c | goto label_49;
| label_147:
0x00005eb2 ldr r1, [pc, 0x2cc] |
0x00005eb4 movs r0, 1 | r0 = 1;
0x00005eb6 ldr.w r2, [sb] | r2 = *(sb);
0x00005eba add r1, pc | r1 = 0xc040;
0x00005ebc blx 0x2530 | ip6tc_flush_entries ();
0x00005ec0 ldr r3, [pc, 0x260] | r3 = *(0x6124);
0x00005ec2 ldr.w sb, [fp, r3] | sb = *((fp + r3));
0x00005ec6 b 0x5cd2 | goto label_50;
| label_119:
0x00005ec8 ldr r2, [sp, 0x30] | r2 = var_30h;
0x00005eca movs r3, 2 | r3 = 2;
0x00005ecc str r3, [r2] | *(r2) = r3;
0x00005ece b.w 0x5280 | goto label_11;
| label_128:
0x00005ed2 mov.w sb, 1 | sb = 1;
0x00005ed6 b.w 0x5280 | goto label_11;
| label_79:
0x00005eda ldr r3, [sp, 0x78] | r3 = var_78h;
0x00005edc mov r2, sb | r2 = sb;
0x00005ede ldr r1, [pc, 0x2a4] |
0x00005ee0 movs r0, 2 | r0 = 2;
0x00005ee2 ldr r3, [r3] | r3 = *(r3);
0x00005ee4 add r1, pc | r1 = 0xc06e;
0x00005ee6 ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x00005ee8 blx r3 | uint32_t (*r3)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
| label_127:
0x00005eea ldr.w r4, [r5, 0xe8] | r4 = *((r5 + 0xe8));
0x00005eee cmp r4, 0 |
| if (r4 == 0) {
0x00005ef0 beq.w 0x56dc | goto label_51;
| }
0x00005ef4 mov r0, r4 | r0 = r4;
0x00005ef6 add r2, sp, 0x19c | r2 += var_19ch;
0x00005ef8 movs r1, 2 | r1 = 2;
0x00005efa blx 0x25ec | fcn_000025ec ();
0x00005efe ldr.w r4, [r5, 0xcc] | r4 = *((r5 + 0xcc));
0x00005f02 b.w 0x56dc | goto label_51;
| label_126:
0x00005f06 ldr r2, [sp, 0x28] | r2 = var_28h;
0x00005f08 ldr r2, [r2] | r2 = *(r2);
0x00005f0a ldr.w r2, [r4, r2, lsl 2] | offset_11 = r2 << 2;
| r2 = *((r4 + offset_11));
0x00005f0e str r2, [r3] | *(r3) = r2;
0x00005f10 b.w 0x56d2 | goto label_52;
| label_83:
0x00005f14 ldr r0, [pc, 0x1c8] |
0x00005f16 movs r1, 1 | r1 = 1;
0x00005f18 ldr r2, [pc, 0x26c] |
0x00005f1a ldr r0, [r6, r0] | r0 = *((r6 + r0));
0x00005f1c add r2, pc | r2 = 0xc0a8;
0x00005f1e ldr r0, [r0] | r0 = *(0x60e0);
0x00005f20 blx 0x2570 | fcn_00002570 ();
0x00005f24 bl 0x4190 | fcn_00004190 ();
| label_71:
0x00005f28 ldr r3, [sp, 0x78] | r3 = var_78h;
0x00005f2a movs r0, 2 | r0 = 2;
0x00005f2c ldr r1, [pc, 0x25c] |
0x00005f2e ldr r3, [r3] | r3 = *(r3);
0x00005f30 add r1, pc | r1 = 0xc0c0;
0x00005f32 ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x00005f34 blx r3 | uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
| label_67:
0x00005f36 ldr r3, [sp, 0x78] | r3 = var_78h;
0x00005f38 mov.w r0, 0x400 | r0 = 0x400;
0x00005f3c ldr r3, [r3] | r3 = *(r3);
0x00005f3e ldr r4, [r3, 0x14] | r4 = *((r3 + 0x14));
0x00005f40 bl 0x9b94 | fcn_00009b94 (r0);
0x00005f44 ldr r1, [pc, 0x248] |
0x00005f46 mov r2, r0 | r2 = r0;
0x00005f48 movs r0, 2 | r0 = 2;
0x00005f4a add r1, pc | r1 = 0xc0de;
0x00005f4c blx r4 | uint32_t (*r4)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
| label_68:
0x00005f4e ldr r3, [sp, 0x78] | r3 = var_78h;
0x00005f50 mov.w r0, 0x400 | r0 = 0x400;
0x00005f54 ldr r3, [r3] | r3 = *(r3);
0x00005f56 ldr r4, [r3, 0x14] | r4 = *((r3 + 0x14));
0x00005f58 bl 0x9b94 | fcn_00009b94 (r0);
0x00005f5c ldr r1, [pc, 0x234] |
0x00005f5e mov r2, r0 | r2 = r0;
0x00005f60 movs r0, 2 | r0 = 2;
0x00005f62 add r1, pc | r1 = 0xc0fa;
0x00005f64 blx r4 | uint32_t (*r4)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
| label_65:
0x00005f66 ldr r3, [sp, 0x78] | r3 = var_78h;
0x00005f68 movs r0, 2 | r0 = 2;
0x00005f6a ldr r1, [pc, 0x22c] |
0x00005f6c ldr r3, [r3] | r3 = *(r3);
0x00005f6e add r1, pc | r1 = 0xc10c;
0x00005f70 ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x00005f72 blx r3 | uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
| label_81:
0x00005f74 ldr r3, [pc, 0x168] |
0x00005f76 movs r2, 0x26 | r2 = 0x26;
0x00005f78 ldr r0, [pc, 0x220] |
0x00005f7a movs r1, 1 | r1 = 1;
0x00005f7c ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00005f7e add r0, pc | r0 = 0xc11e;
0x00005f80 ldr r3, [r3] | r3 = *(0x60e0);
0x00005f82 blx 0x22d4 | fcn_000022d4 ();
0x00005f86 bl 0x4190 | fcn_00004190 ();
| label_82:
0x00005f8a blx 0x2250 | fcn_00002250 ();
| label_95:
0x00005f8e ldr r3, [sp, 0x78] | r3 = var_78h;
0x00005f90 movs r0, 2 | r0 = 2;
0x00005f92 ldr r1, [pc, 0x20c] |
0x00005f94 ldr r3, [r3] | r3 = *(r3);
0x00005f96 add r1, pc | r1 = 0xc13c;
0x00005f98 ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x00005f9a blx r3 | uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
| label_101:
0x00005f9c ldr r3, [sp, 0x78] | r3 = var_78h;
0x00005f9e movs r0, 0x80 | r0 = 0x80;
0x00005fa0 ldr r3, [r3] | r3 = *(r3);
0x00005fa2 ldr r4, [r3, 0x14] | r4 = *((r3 + 0x14));
0x00005fa4 bl 0x9b94 | fcn_00009b94 (r0);
0x00005fa8 ldr r1, [pc, 0x1f8] |
0x00005faa mov r2, r0 | r2 = r0;
0x00005fac ldr r3, [sp, 0x40] | r3 = s1;
0x00005fae movs r0, 2 | r0 = 2;
0x00005fb0 add r1, pc | r1 = 0xc158;
0x00005fb2 blx r4 | uint32_t (*r4)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
| label_99:
0x00005fb4 ldr r3, [sp, 0x78] | r3 = var_78h;
0x00005fb6 mov.w r0, 0x100 | r0 = 0x100;
0x00005fba ldr r3, [r3] | r3 = *(r3);
0x00005fbc ldr r4, [r3, 0x14] | r4 = *((r3 + 0x14));
0x00005fbe bl 0x9b94 | fcn_00009b94 (r0);
0x00005fc2 ldr r1, [pc, 0x1e4] |
0x00005fc4 mov r2, r0 | r2 = r0;
0x00005fc6 ldr r3, [sp, 0x40] | r3 = s1;
0x00005fc8 movs r0, 2 | r0 = 2;
0x00005fca add r1, pc | r1 = 0xc178;
0x00005fcc blx r4 | uint32_t (*r4)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
| label_123:
0x00005fce ldr r3, [sp, 0x78] | r3 = var_78h;
0x00005fd0 mov r2, r0 | r2 = r0;
0x00005fd2 ldr r1, [pc, 0x1d8] |
0x00005fd4 movs r0, 2 | r0 = 2;
0x00005fd6 ldr r3, [r3] | r3 = *(r3);
0x00005fd8 add r1, pc | r1 = 0xc18a;
0x00005fda ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x00005fdc blx r3 | uint32_t (*r3)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
| label_86:
0x00005fde ldr r3, [sp, 0x78] | r3 = var_78h;
0x00005fe0 movs r0, 2 | r0 = 2;
0x00005fe2 ldr r1, [pc, 0x1cc] |
0x00005fe4 ldr r3, [r3] | r3 = *(r3);
0x00005fe6 add r1, pc | r1 = 0xc19c;
0x00005fe8 ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x00005fea blx r3 | uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
| label_94:
0x00005fec ldr r3, [sp, 0x78] | r3 = var_78h;
0x00005fee movs r0, 2 | r0 = 2;
0x00005ff0 ldr r1, [pc, 0x1c0] |
0x00005ff2 ldr r3, [r3] | r3 = *(r3);
0x00005ff4 add r1, pc | r1 = 0xc1ac;
0x00005ff6 ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x00005ff8 blx r3 | uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
| label_90:
0x00005ffa ldr r3, [sp, 0x78] | r3 = var_78h;
0x00005ffc movs r0, 2 | r0 = 2;
0x00005ffe ldr r1, [pc, 0x1b8] |
0x00006000 ldr r3, [r3] | r3 = *(r3);
0x00006002 add r1, pc | r1 = 0xc1c0;
0x00006004 ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x00006006 blx r3 | uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
| label_91:
0x00006008 ldr r3, [sp, 0x78] | r3 = var_78h;
0x0000600a movs r0, 2 | r0 = 2;
0x0000600c ldr r1, [pc, 0x1ac] |
0x0000600e ldr r3, [r3] | r3 = *(r3);
0x00006010 add r1, pc | r1 = 0xc1d0;
0x00006012 ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x00006014 blx r3 | uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
| label_61:
0x00006016 ldr r3, [sp, 0x78] | r3 = var_78h;
0x00006018 movs r0, 2 | r0 = 2;
0x0000601a ldr r1, [pc, 0x1a4] |
0x0000601c ldr r3, [r3] | r3 = *(r3);
0x0000601e add r1, pc | r1 = "\nThe \"nat\" table is not intended for filtering, the use of DROP is therefore inhibited.\n\n";
0x00006020 ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x00006022 blx r3 | uint32_t (*r3)(uint32_t, char*, uint32_t) (r0, "\nThe \"nat\" table is not intended for filtering, the use of DROP is therefore inhibited.\n\n", r3);
| label_62:
0x00006024 ldr r3, [pc, 0x19c] | r3 = *(0x61c4);
0x00006026 movs r0, 2 | r0 = 2;
0x00006028 ldr r2, [sp, 0x78] | r2 = var_78h;
0x0000602a ldr r1, [pc, 0x19c] |
0x0000602c ldr r5, [r6, r3] | r5 = *((r6 + r3));
0x0000602e ldr r2, [r2] | r2 = *(r2);
0x00006030 add r1, pc | r1 = 0xc1fe;
0x00006032 ldr r4, [r2, 0x14] | r4 = *((r2 + 0x14));
0x00006034 ldr r3, [r2, 4] | r3 = *((r2 + 4));
0x00006036 ldr r2, [r5] | r2 = *(r5);
0x00006038 blx r4 | uint32_t (*r4)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
| label_74:
0x0000603a ldr r3, [sp, 0x78] | r3 = var_78h;
0x0000603c mov.w r0, 0x400 | r0 = 0x400;
0x00006040 ldr r3, [r3] | r3 = *(r3);
0x00006042 ldr r4, [r3, 0x14] | r4 = *((r3 + 0x14));
0x00006044 bl 0x99c4 | fcn_000099c4 (r0);
0x00006048 ldr r1, [pc, 0x180] |
0x0000604a mov r2, r0 | r2 = r0;
0x0000604c movs r0, 2 | r0 = 2;
0x0000604e add r1, pc | r1 = 0xc21e;
0x00006050 blx r4 | uint32_t (*r4)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
| label_75:
0x00006052 ldr r3, [sp, 0x78] | r3 = var_78h;
0x00006054 mov r2, sb | r2 = sb;
0x00006056 ldr r1, [pc, 0x178] |
0x00006058 movs r0, 2 | r0 = 2;
0x0000605a ldr r4, [r3] | r4 = *(r3);
0x0000605c movs r3, 0x1d | r3 = 0x1d;
0x0000605e add r1, pc | r1 = 0xc234;
0x00006060 ldr r4, [r4, 0x14] | r4 = *((r4 + 0x14));
0x00006062 blx r4 | uint32_t (*r4)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
| label_59:
0x00006064 ldr r3, [sp, 0x78] | r3 = var_78h;
0x00006066 movs r0, 2 | r0 = 2;
0x00006068 ldr r1, [pc, 0x168] |
0x0000606a ldr r3, [r3] | r3 = *(r3);
0x0000606c add r1, pc | r1 = 0xc244;
0x0000606e ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x00006070 blx r3 | uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
| label_84:
0x00006072 ldr r3, [sp, 0x78] | r3 = var_78h;
0x00006074 movs r0, 2 | r0 = 2;
0x00006076 ldr r1, [pc, 0x160] |
0x00006078 ldr r3, [r3] | r3 = *(r3);
0x0000607a add r1, pc | r1 = 0xc258;
0x0000607c ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x0000607e blx r3 | uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
| label_64:
0x00006080 ldr r3, [sp, 0x78] | r3 = var_78h;
0x00006082 movs r0, 2 | r0 = 2;
0x00006084 ldr r1, [pc, 0x154] |
0x00006086 ldr r3, [r3] | r3 = *(r3);
0x00006088 add r1, pc | r1 = "no command specified";
0x0000608a ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x0000608c blx r3 | uint32_t (*r3)(uint32_t, char*, uint32_t) (r0, "no command specified", r3);
| label_85:
0x0000608e ldr r3, [sp, 0x78] | r3 = var_78h;
0x00006090 movs r0, 2 | r0 = 2;
0x00006092 ldr r1, [pc, 0x14c] |
0x00006094 ldr r3, [r3] | r3 = *(r3);
0x00006096 add r1, pc | r1 = 0xc27c;
0x00006098 ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x0000609a blx r3 | uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
| label_89:
0x0000609c ldr r3, [sp, 0x78] | r3 = var_78h;
0x0000609e movs r0, 2 | r0 = 2;
0x000060a0 ldr r1, [pc, 0x140] |
0x000060a2 ldr r3, [r3] | r3 = *(r3);
0x000060a4 add r1, pc | r1 = 0xc28c;
0x000060a6 ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x000060a8 blx r3 | uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
| label_76:
0x000060aa ldr r2, [sp, 0x78] | r2 = var_78h;
0x000060ac movs r0, 2 | r0 = 2;
0x000060ae ldr r1, [pc, 0x138] |
0x000060b0 ldr r4, [r2] | r4 = *(r2);
0x000060b2 mov r2, r3 | r2 = r3;
0x000060b4 add r1, pc | r1 = 0xc2a2;
0x000060b6 ldr r3, [r4, 0x14] | r3 = *((r4 + 0x14));
0x000060b8 blx r3 | uint32_t (*r3)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
| label_77:
0x000060ba ldr r3, [sp, 0x78] | r3 = var_78h;
0x000060bc movs r0, 2 | r0 = 2;
0x000060be ldr r1, [pc, 0x12c] |
0x000060c0 ldr r3, [r3] | r3 = *(r3);
0x000060c2 add r1, pc | r1 = 0xc2b4;
0x000060c4 ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x000060c6 blx r3 | uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
| label_80:
0x000060c8 ldr r3, [sp, 0x78] | r3 = var_78h;
0x000060ca mov.w r0, 0x800 | r0 = 0x800;
0x000060ce ldr r3, [r3] | r3 = *(r3);
0x000060d0 ldr r4, [r3, 0x14] | r4 = *((r3 + 0x14));
0x000060d2 bl 0x99c4 | fcn_000099c4 (r0);
0x000060d6 ldr r1, [pc, 0x118] |
0x000060d8 mov r2, r0 | r2 = r0;
0x000060da movs r0, 2 | r0 = 2;
0x000060dc add r1, pc | r1 = 0xc2d2;
0x000060de blx r4 | uint32_t (*r4)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
0x000060e0 lsls r0, r2, 9 | r0 = r2 << 9;
0x000060e2 movs r0, r0 |
0x000060e4 ldr r2, [r7, 0x58] | r2 = *((r7 + 0x58));
0x000060e6 movs r0, r0 |
0x000060e8 strh r4, [r4, 0x20] | *((r4 + 0x20)) = r4;
0x000060ea movs r0, r0 |
0x000060ec ldr r0, [r2, 0x1c] | r0 = *((r2 + 0x1c));
0x000060ee movs r0, r0 |
0x000060f0 lsls r4, r7, 9 | r4 = r7 << 9;
0x000060f2 movs r0, r0 |
0x000060f4 ldr r1, [sp, 0xe8] | r1 = var_e8h;
0x000060f6 movs r1, r0 | r1 = r0;
0x000060f8 ldrb r4, [r3, r6] | r4 = *((r3 + r6));
0x000060fa movs r0, r0 |
0x000060fc ldrsh r2, [r6, r4] | r2 = *((r6 + r4));
0x000060fe movs r0, r0 |
0x00006100 ldr r6, [r2, 0x18] | r6 = *((r2 + 0x18));
0x00006102 movs r0, r0 |
0x00006104 ldr r2, [r1, 0x20] | r2 = *(0xc2f2);
0x00006106 movs r0, r0 |
0x00006108 ldrsb r2, [r5, r2] | r2 = *((r5 + r2));
0x0000610a movs r0, r0 |
0x0000610c ldr r4, [r0, 0x1c] | r4 = *((r0 + 0x1c));
0x0000610e movs r0, r0 |
0x00006110 ldr r4, [r1, 0x1c] | r4 = *(0xc2ee);
0x00006112 movs r0, r0 |
0x00006114 ldr r2, [r4, r0] | r2 = *(0xc2ee);
0x00006116 movs r0, r0 |
0x00006118 lsls r0, r0, 0xa | r0 <<= 0xa;
0x0000611a movs r0, r0 |
0x0000611c str r2, [r2, 0x68] | *((r2 + 0x68)) = r2;
0x0000611e movs r0, r0 |
0x00006120 str r2, [r3, 0x70] | *((r3 + 0x70)) = r2;
0x00006122 movs r0, r0 |
0x00006124 lsls r0, r4, 9 | r0 = r4 << 9;
0x00006126 movs r0, r0 |
0x00006128 ldrsb r4, [r6, r3] | r4 = *((r6 + r3));
0x0000612a movs r0, r0 |
0x0000612c str r6, [r6, 0x70] | *((r6 + 0x70)) = r6;
0x0000612e movs r0, r0 |
0x00006130 str r0, [r7, 0x70] | *((r7 + 0x70)) = r0;
0x00006132 movs r0, r0 |
0x00006134 str r4, [r5, 0x70] | var_70h_2 = r4;
0x00006136 movs r0, r0 |
0x00006138 str r2, [r4, 0x70] | *((r4 + 0x70)) = r2;
0x0000613a movs r0, r0 |
0x0000613c str r2, [r2, 0x6c] | *((r2 + 0x6c)) = r2;
0x0000613e movs r0, r0 |
0x00006140 str r6, [r3, 0x70] | *((r3 + 0x70)) = r6;
0x00006142 movs r0, r0 |
0x00006144 str r4, [r2, 0x70] | *((r2 + 0x70)) = r4;
0x00006146 movs r0, r0 |
0x00006148 str r6, [r0, 0x70] | *((r0 + 0x70)) = r6;
0x0000614a movs r0, r0 |
0x0000614c str r0, [r1, 0x70] | *((r1 + 0x70)) = r0;
0x0000614e movs r0, r0 |
0x00006150 str r4, [r0, 0x70] | *((r0 + 0x70)) = r4;
0x00006152 movs r0, r0 |
0x00006154 str r6, [r0, 0x70] | *((r0 + 0x70)) = r6;
0x00006156 movs r0, r0 |
0x00006158 str r0, [r1, 0x70] | *((r1 + 0x70)) = r0;
0x0000615a movs r0, r0 |
0x0000615c str r4, [r7, 0x6c] | *((r7 + 0x6c)) = r4;
0x0000615e movs r0, r0 |
0x00006160 str r0, [r0, 0x70] | *((r0 + 0x70)) = r0;
0x00006162 movs r0, r0 |
0x00006164 str r6, [r3, 0x5c] | *((r3 + 0x5c)) = r6;
0x00006166 movs r0, r0 |
0x00006168 str r6, [r7, 0x54] | *((r7 + 0x54)) = r6;
0x0000616a movs r0, r0 |
0x0000616c str r6, [r5, 0x54] | var_54h_2 = r6;
0x0000616e movs r0, r0 |
0x00006170 str r0, [r4, 0x58] | *((r4 + 0x58)) = r0;
0x00006172 movs r0, r0 |
0x00006174 str r6, [r5, 0x58] | var_58h_2 = r6;
0x00006176 movs r0, r0 |
0x00006178 str r2, [r2, 0x54] | *((r2 + 0x54)) = r2;
0x0000617a movs r0, r0 |
0x0000617c str r0, [r5, 0x58] | var_58h_2 = r0;
0x0000617e movs r0, r0 |
0x00006180 str r2, [r1, 0x54] | *((r1 + 0x54)) = r2;
0x00006182 movs r0, r0 |
0x00006184 strb r0, [r7, r4] | *((r7 + r4)) = r0;
0x00006186 movs r0, r0 |
0x00006188 str r0, [r6, 0x20] | *((r6 + 0x20)) = r0;
0x0000618a movs r0, r0 |
0x0000618c str r0, [r7, 8] | *((r7 + 8)) = r0;
0x0000618e movs r0, r0 |
0x00006190 str r6, [r6, 0x14] | *((r6 + 0x14)) = r6;
0x00006192 movs r0, r0 |
0x00006194 str r6, [r7, 0x14] | *((r7 + 0x14)) = r6;
0x00006196 movs r0, r0 |
0x00006198 str r2, [r4] | *(r4) = r2;
0x0000619a movs r0, r0 |
0x0000619c str r2, [r0, 0x18] | *((r0 + 0x18)) = r2;
0x0000619e movs r0, r0 |
0x000061a0 str r6, [r0, 0x34] | *((r0 + 0x34)) = r6;
0x000061a2 movs r0, r0 |
0x000061a4 str r0, [r4, 0x38] | *((r4 + 0x38)) = r0;
0x000061a6 movs r0, r0 |
0x000061a8 str r6, [r0, 0x38] | *((r0 + 0x38)) = r6;
0x000061aa movs r0, r0 |
0x000061ac str r4, [r1, 0x3c] | *((r1 + 0x3c)) = r4;
0x000061ae movs r0, r0 |
0x000061b0 str r2, [r7, 0x1c] | *((r7 + 0x1c)) = r2;
0x000061b2 movs r0, r0 |
0x000061b4 str r0, [r5, 0x28] | var_28h_2 = r0;
0x000061b6 movs r0, r0 |
0x000061b8 str r2, [r4, 0x24] | *((r4 + 0x24)) = r2;
0x000061ba movs r0, r0 |
0x000061bc str r4, [r5, 0x24] | var_24h = r4;
0x000061be movs r0, r0 |
0x000061c0 ldrsh r6, [r6, r7] | r6 = *((r6 + r7));
0x000061c2 movs r0, r0 |
0x000061c4 lsls r0, r5, 9 | r0 = r5 << 9;
0x000061c6 movs r0, r0 |
0x000061c8 str r0, [r1] | *(r1) = r0;
0x000061ca movs r0, r0 |
0x000061cc strb r6, [r2, r0] | *((r2 + r0)) = r6;
0x000061ce movs r0, r0 |
0x000061d0 strh r2, [r6, r4] | *((r6 + r4)) = r2;
0x000061d2 movs r0, r0 |
0x000061d4 ldrsh r0, [r2, r5] | r0 = *((r2 + r5));
0x000061d6 movs r0, r0 |
0x000061d8 str r6, [r5, 8] | var_8h = r6;
0x000061da movs r0, r0 |
0x000061dc ldrsh r0, [r1, r4] | r0 = *((r1 + r4));
0x000061de movs r0, r0 |
0x000061e0 str r6, [r2, 0x10] | *((r2 + 0x10)) = r6;
0x000061e2 movs r0, r0 |
0x000061e4 str r0, [r3, 0x18] | *((r3 + 0x18)) = r0;
0x000061e6 movs r0, r0 |
0x000061e8 strh r0, [r2, r4] | *((r2 + r4)) = r0;
0x000061ea movs r0, r0 |
0x000061ec strh r6, [r5, r4] | *((r5 + r4)) = r6;
0x000061ee movs r0, r0 |
0x000061f0 strh r0, [r3, r5] | *((r3 + r5)) = r0;
0x000061f2 movs r0, r0 |
0x000061f4 push.w {r4, r5, r6, r7, r8, lr} |
0x000061f8 sub sp, 0x18 |
0x000061fa ldr r6, [pc, 0xd0] |
0x000061fc movs r7, 0 | r7 = 0;
0x000061fe mov r8, r1 | r8 = r1;
0x00006200 movs r1, 0xa | r1 = 0xa;
0x00006202 ldr r4, [pc, 0xcc] | r4 = *(0x62d2);
0x00006204 add r6, pc | r6 = 0xc4d6;
0x00006206 ldr r5, [pc, 0xcc] |
0x00006208 ldr r2, [pc, 0xcc] |
0x0000620a ldr r4, [r6, r4] |
0x0000620c mov r6, r0 | r6 = r0;
0x0000620e ldr r3, [pc, 0xcc] | r3 = *(0x62de);
0x00006210 add r5, pc | r5 = 0xc4ea;
0x00006212 add r2, pc | r2 = 0xc4ee;
0x00006214 ldr r4, [r4] | r4 = *(0xc4d6);
0x00006216 str r4, [sp, 0x14] | var_14h = r4;
0x00006218 mov.w r4, 0 | r4 = 0;
0x0000621c strd r2, r7, [sp, 0xc] | __asm ("strd r2, r7, [var_10h]");
0x00006220 ldr r4, [r5, r3] | r4 = *(0xc4ea);
0x00006222 ldr r3, [pc, 0xbc] |
0x00006224 mov r0, r4 | r0 = r4;
0x00006226 add r3, pc | r3 = "rename-chain";
0x00006228 str r3, [r4, 4] | *((r4 + 4)) = r3;
0x0000622a blx 0x2748 | r0 = fcn_00002748 ();
0x0000622e cmp r0, r7 |
| if (r0 < r7) {
0x00006230 blt 0x627c | goto label_148;
| }
0x00006232 add r3, sp, 0x10 | r3 += var_10h;
0x00006234 mov r1, r8 | r1 = r8;
0x00006236 mov r0, r6 | r0 = r6;
0x00006238 add r2, sp, 0xc | r2 += var_ch_2;
0x0000623a str r7, [sp] | *(sp) = r7;
0x0000623c bl 0x6e5c | r0 = fcn_00006e5c (r0, r1, r2, r3, r4);
| if (r0 != 0) {
0x00006240 cbnz r0, 0x6298 | goto label_149;
| }
0x00006242 blx 0x2458 | xtables_merge_options ();
| label_53:
0x00006246 blx 0x247c | ip6tc_free ();
0x0000624a ldr r3, [pc, 0x98] | r3 = *(0x62e6);
0x0000624c mov r4, r0 | r4 = r0;
0x0000624e ldr r0, [r0] | r0 = *(r0);
0x00006250 ldr r3, [r5, r3] | r3 = *((r5 + r3));
0x00006252 cmp r0, 0x16 |
0x00006254 ldr r5, [r3] | r5 = *(0x62e6);
| if (r0 == 0x16) {
0x00006256 beq 0x62b0 | goto label_150;
| }
0x00006258 blx 0x2610 | fcn_00002610 ();
0x0000625c ldr r2, [pc, 0x88] |
0x0000625e mov r3, r0 | r3 = r0;
0x00006260 movs r1, 1 | r1 = 1;
0x00006262 mov r0, r5 | r0 = r5;
0x00006264 add r2, pc | r2 = "numeric";
0x00006266 blx 0x2570 | fcn_00002570 ();
| label_54:
0x0000626a ldr r3, [r4] | r3 = *(r4);
0x0000626c cmp r3, 0xb |
| if (r3 == 0xb) {
0x0000626e beq 0x62c4 | goto label_151;
| }
0x00006270 movs r4, 0 | r4 = 0;
| do {
0x00006272 clz r0, r4 | r0 &= r4;
0x00006276 lsrs r0, r0, 5 | r0 >>= 5;
0x00006278 blx 0x23e0 | xtables_ipaddr_to_anyname ();
| label_148:
0x0000627c ldr r1, [pc, 0x64] | r1 = *(0x62e4);
0x0000627e ldrd r3, r6, [r4, 4] | __asm ("ldrd r3, r6, [r4, 4]");
0x00006282 ldr r2, [pc, 0x68] |
0x00006284 ldr r0, [r5, r1] | r0 = *((r5 + r1));
0x00006286 movs r1, 1 | r1 = 1;
0x00006288 str r6, [sp] | *(sp) = r6;
0x0000628a add r2, pc | r2 = 0xc57c;
0x0000628c ldr r0, [r0] | r0 = *(r0);
0x0000628e blx 0x2570 | fcn_00002570 ();
0x00006292 movs r0, 1 | r0 = 1;
0x00006294 blx 0x23e0 | xtables_ipaddr_to_anyname ();
| label_149:
0x00006298 ldr r0, [sp, 0x10] | r0 = var_10h;
0x0000629a blx 0x25e0 | r0 = fcn_000025e0 ();
0x0000629e mov r4, r0 | r4 = r0;
0x000062a0 ldr r0, [sp, 0x10] | r0 = var_10h;
0x000062a2 blx 0x2488 | xtables_ipparse_multiple ();
0x000062a6 blx 0x2458 | xtables_merge_options ();
0x000062a8 invalid |
0x000062ac bne 0x6272 |
| } while (r0 != 1);
0x000062ae b 0x6246 | goto label_53;
| label_150:
0x000062b0 blx 0x2610 | fcn_00002610 ();
0x000062b4 ldr r2, [pc, 0x38] |
0x000062b6 mov r3, r0 | r3 = r0;
0x000062b8 movs r1, 1 | r1 = 1;
0x000062ba mov r0, r5 | r0 = r5;
0x000062bc add r2, pc | r2 = 0xc5b0;
0x000062be blx 0x2570 | fcn_00002570 ();
0x000062c2 b 0x626a | goto label_54;
| label_151:
0x000062c4 movs r0, 4 | r0 = 4;
0x000062c6 blx 0x23e0 | xtables_ipaddr_to_anyname ();
0x000062ca nop |
0x000062cc ldrh r4, [r6, 0x1a] | r4 = *((r6 + 0x1a));
0x000062ce movs r1, r0 | r1 = r0;
0x000062d0 lsls r0, r0, 9 | r0 <<= 9;
0x000062d2 movs r0, r0 |
0x000062d4 ldrh r0, [r5, 0x1a] | r0 = *((r5 + 0x1a));
0x000062d6 movs r1, r0 | r1 = r0;
0x000062d8 ldr r6, [pc, 0xd8] | r6 = *(0x63b4);
0x000062da movs r0, r0 |
0x000062dc lsls r4, r6, 8 | r4 = r6 << 8;
0x000062de movs r0, r0 |
0x000062e0 ldr r1, [pc, 0x3a8] | r1 = *(0x668c);
0x000062e2 movs r0, r0 |
0x000062e4 lsls r0, r2, 9 | r0 = r2 << 9;
0x000062e6 movs r0, r0 |
0x000062e8 str r4, [r0, 0x40] | *((r0 + 0x40)) = r4;
0x000062ea movs r0, r0 |
0x000062ec ldr r5, [pc, 0x318] | r5 = *(0x6608);
0x000062ee movs r0, r0 |
0x000062f0 str r0, [r7, 0x34] | *((r7 + 0x34)) = r0;
0x000062f2 movs r0, r0 |
| }
[*] Function fprintf used 2 times xtables-legacy-multi